3270 строки
6.1 MiB
3270 строки
6.1 MiB
<!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>Org Insights | Employee Experience Report</title>
|
||
|
||
<meta property="og:title" content="Org Insights | Employee Experience Report" />
|
||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||
|
||
<link rel="icon" href="data:image/x-icon;" type="image/x-icon">
|
||
|
||
|
||
<script type="text/javascript">
|
||
window.FlexDashboardComponents = [];
|
||
</script>
|
||
|
||
<script src="data:application/javascript;base64,Ly8gUGFuZG9jIDIuOSBhZGRzIGF0dHJpYnV0ZXMgb24gYm90aCBoZWFkZXIgYW5kIGRpdi4gV2UgcmVtb3ZlIHRoZSBmb3JtZXIgKHRvCi8vIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgYmVoYXZpb3Igb2YgUGFuZG9jIDwgMi44KS4KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKGUpIHsKICB2YXIgaHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuc2VjdGlvbltjbGFzcyo9J2xldmVsJ10gPiA6Zmlyc3QtY2hpbGQiKTsKICB2YXIgaSwgaCwgYTsKICBmb3IgKGkgPSAwOyBpIDwgaHMubGVuZ3RoOyBpKyspIHsKICAgIGggPSBoc1tpXTsKICAgIGlmICghL15oWzEtNl0kL2kudGVzdChoLnRhZ05hbWUpKSBjb250aW51ZTsgIC8vIGl0IHNob3VsZCBiZSBhIGhlYWRlciBoMS1oNgogICAgYSA9IGguYXR0cmlidXRlczsKICAgIHdoaWxlIChhLmxlbmd0aCA+IDApIGgucmVtb3ZlQXR0cmlidXRlKGFbMF0ubmFtZSk7CiAgfQp9KTsK"></script>
|
||
<script src="data:application/javascript;base64,LyohIGpRdWVyeSB2My42LjAgfCAoYykgT3BlbkpTIEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycyB8IGpxdWVyeS5vcmcvbGljZW5zZSAqLwohZnVuY3Rpb24oZSx0KXsidXNlIHN0cmljdCI7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9ZS5kb2N1bWVudD90KGUsITApOmZ1bmN0aW9uKGUpe2lmKCFlLmRvY3VtZW50KXRocm93IG5ldyBFcnJvcigialF1ZXJ5IHJlcXVpcmVzIGEgd2luZG93IHdpdGggYSBkb2N1bWVudCIpO3JldHVybiB0KGUpfTp0KGUpfSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6dGhpcyxmdW5jdGlvbihDLGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1bXSxyPU9iamVjdC5nZXRQcm90b3R5cGVPZixzPXQuc2xpY2UsZz10LmZsYXQ/ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZmxhdC5jYWxsKGUpfTpmdW5jdGlvbihlKXtyZXR1cm4gdC5jb25jYXQuYXBwbHkoW10sZSl9LHU9dC5wdXNoLGk9dC5pbmRleE9mLG49e30sbz1uLnRvU3RyaW5nLHY9bi5oYXNPd25Qcm9wZXJ0eSxhPXYudG9TdHJpbmcsbD1hLmNhbGwoT2JqZWN0KSx5PXt9LG09ZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJiJudW1iZXIiIT10eXBlb2YgZS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUuaXRlbX0seD1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZSYmZT09PWUud2luZG93fSxFPUMuZG9jdW1lbnQsYz17dHlwZTohMCxzcmM6ITAsbm9uY2U6ITAsbm9Nb2R1bGU6ITB9O2Z1bmN0aW9uIGIoZSx0LG4pe3ZhciByLGksbz0obj1ufHxFKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihvLnRleHQ9ZSx0KWZvcihyIGluIGMpKGk9dFtyXXx8dC5nZXRBdHRyaWJ1dGUmJnQuZ2V0QXR0cmlidXRlKHIpKSYmby5zZXRBdHRyaWJ1dGUocixpKTtuLmhlYWQuYXBwZW5kQ2hpbGQobykucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKX1mdW5jdGlvbiB3KGUpe3JldHVybiBudWxsPT1lP2UrIiI6Im9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZT9uW28uY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfXZhciBmPSIzLjYuMCIsUz1mdW5jdGlvbihlLHQpe3JldHVybiBuZXcgUy5mbi5pbml0KGUsdCl9O2Z1bmN0aW9uIHAoZSl7dmFyIHQ9ISFlJiYibGVuZ3RoImluIGUmJmUubGVuZ3RoLG49dyhlKTtyZXR1cm4hbShlKSYmIXgoZSkmJigiYXJyYXkiPT09bnx8MD09PXR8fCJudW1iZXIiPT10eXBlb2YgdCYmMDx0JiZ0LTEgaW4gZSl9Uy5mbj1TLnByb3RvdHlwZT17anF1ZXJ5OmYsY29uc3RydWN0b3I6UyxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHMuY2FsbCh0aGlzKX0sZ2V0OmZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lP3MuY2FsbCh0aGlzKTplPDA/dGhpc1tlK3RoaXMubGVuZ3RoXTp0aGlzW2VdfSxwdXNoU3RhY2s6ZnVuY3Rpb24oZSl7dmFyIHQ9Uy5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksZSk7cmV0dXJuIHQucHJldk9iamVjdD10aGlzLHR9LGVhY2g6ZnVuY3Rpb24oZSl7cmV0dXJuIFMuZWFjaCh0aGlzLGUpfSxtYXA6ZnVuY3Rpb24obil7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMubWFwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbi5jYWxsKGUsdCxlKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2socy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKHQrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKFMuZ3JlcCh0aGlzLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQlMn0pKX0sZXE6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5sZW5ndGgsbj0rZSsoZTwwP3Q6MCk7cmV0dXJuIHRoaXMucHVzaFN0YWNrKDA8PW4mJm48dD9bdGhpc1tuXV06W10pfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmV2T2JqZWN0fHx0aGlzLmNvbnN0cnVjdG9yKCl9LHB1c2g6dSxzb3J0OnQuc29ydCxzcGxpY2U6dC5zcGxpY2V9LFMuZXh0ZW5kPVMuZm4uZXh0ZW5kPWZ1bmN0aW9uKCl7dmFyIGUsdCxuLHIsaSxvLGE9YXJndW1lbnRzWzBdfHx7fSxzPTEsdT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7Zm9yKCJib29sZWFuIj09dHlwZW9mIGEmJihsPWEsYT1hcmd1bWVudHNbc118fHt9LHMrKyksIm9iamVjdCI9PXR5cGVvZiBhfHxtKGEpfHwoYT17fSkscz09PXUmJihhPXRoaXMscy0tKTtzPHU7cysrKWlmKG51bGwhPShlPWFyZ3VtZW50c1tzXSkpZm9yKHQgaW4gZSlyPWVbdF0sIl9fcHJvdG9fXyIhPT10JiZhIT09ciYmKGwmJnImJihTLmlzUGxhaW5PYmplY3Qocil8fChpPUFycmF5LmlzQXJyYXkocikpKT8obj1hW3RdLG89aSYmIUFycmF5LmlzQXJyYXkobik/W106aXx8Uy5pc1BsYWluT2JqZWN0KG4pP246e30saT0hMSxhW3RdPVMuZXh0ZW5kKGwsbyxyKSk6dm9pZCAwIT09ciYmKGFbdF09cikpO3JldHVybiBhfSxTLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoZitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcihlKX0sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihlKXt2YXIgdCxuO3JldHVybiEoIWV8fCJbb2JqZWN0IE9iamVjdF0iIT09by5jYWxsKGUpKSYmKCEodD1yKGUpKXx8ImZ1bmN0aW9uIj09dHlwZW9mKG49di5jYWxsKHQsImNvbnN0cnVjdG9yIikmJnQuY29uc3RydWN0b3IpJiZhLmNhbGwobik9PT1sKX0saXNFbXB0eU9iamVjdDpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXJldHVybiExO3JldHVybiEwfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKGUsdCxuKXtiKGUse25vbmNlOnQmJnQubm9uY2V9LG4pfSxlYWNoOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0wO2lmKHAoZSkpe2ZvcihuPWUubGVuZ3RoO3I8bjtyKyspaWYoITE9PT10LmNhbGwoZVtyXSxyLGVbcl0pKWJyZWFrfWVsc2UgZm9yKHIgaW4gZSlpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWs7cmV0dXJuIGV9LG1ha2VBcnJheTpmdW5jdGlvbihlLHQpe3ZhciBuPXR8fFtdO3JldHVybiBudWxsIT1lJiYocChPYmplY3QoZSkpP1MubWVyZ2Uobiwic3RyaW5nIj09dHlwZW9mIGU/W2VdOmUpOnUuY2FsbChuLGUpKSxufSxpbkFycmF5OmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09dD8tMTppLmNhbGwodCxlLG4pfSxtZXJnZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0rdC5sZW5ndGgscj0wLGk9ZS5sZW5ndGg7cjxuO3IrKyllW2krK109dFtyXTtyZXR1cm4gZS5sZW5ndGg9aSxlfSxncmVwOmZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9W10saT0wLG89ZS5sZW5ndGgsYT0hbjtpPG87aSsrKSF0KGVbaV0saSkhPT1hJiZyLnB1c2goZVtpXSk7cmV0dXJuIHJ9LG1hcDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPTAsYT1bXTtpZihwKGUpKWZvcihyPWUubGVuZ3RoO288cjtvKyspbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7ZWxzZSBmb3IobyBpbiBlKW51bGwhPShpPXQoZVtvXSxvLG4pKSYmYS5wdXNoKGkpO3JldHVybiBnKGEpfSxndWlkOjEsc3VwcG9ydDp5fSksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFMuZm5bU3ltYm9sLml0ZXJhdG9yXT10W1N5bWJvbC5pdGVyYXRvcl0pLFMuZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtuWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pO3ZhciBkPWZ1bmN0aW9uKG4pe3ZhciBlLGQsYixvLGksaCxmLGcsdyx1LGwsVCxDLGEsRSx2LHMsYyx5LFM9InNpenpsZSIrMSpuZXcgRGF0ZSxwPW4uZG9jdW1lbnQsaz0wLHI9MCxtPXVlKCkseD11ZSgpLEE9dWUoKSxOPXVlKCksaj1mdW5jdGlvbihlLHQpe3JldHVybiBlPT09dCYmKGw9ITApLDB9LEQ9e30uaGFzT3duUHJvcGVydHksdD1bXSxxPXQucG9wLEw9dC5wdXNoLEg9dC5wdXNoLE89dC5zbGljZSxQPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj1lLmxlbmd0aDtuPHI7bisrKWlmKGVbbl09PT10KXJldHVybiBuO3JldHVybi0xfSxSPSJjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCIsTT0iW1xceDIwXFx0XFxyXFxuXFxmXSIsST0iKD86XFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15cMC1cXHg3Zl0pKyIsVz0iXFxbIitNKyIqKCIrSSsiKSg/OiIrTSsiKihbKl4kfCF+XT89KSIrTSsiKig/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwifCgiK0krIikpfCkiK00rIipcXF0iLEY9IjooIitJKyIpKD86XFwoKCgnKCg/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg/OlxcXFwufFteXFxcXCgpW1xcXV18IitXKyIpKil8LiopXFwpfCkiLEI9bmV3IFJlZ0V4cChNKyIrIiwiZyIpLCQ9bmV3IFJlZ0V4cCgiXiIrTSsiK3woKD86XnxbXlxcXFxdKSg/OlxcXFwuKSopIitNKyIrJCIsImciKSxfPW5ldyBSZWdFeHAoIl4iK00rIiosIitNKyIqIiksej1uZXcgUmVnRXhwKCJeIitNKyIqKFs+K35dfCIrTSsiKSIrTSsiKiIpLFU9bmV3IFJlZ0V4cChNKyJ8PiIpLFg9bmV3IFJlZ0V4cChGKSxWPW5ldyBSZWdFeHAoIl4iK0krIiQiKSxHPXtJRDpuZXcgUmVnRXhwKCJeIygiK0krIikiKSxDTEFTUzpuZXcgUmVnRXhwKCJeXFwuKCIrSSsiKSIpLFRBRzpuZXcgUmVnRXhwKCJeKCIrSSsifFsqXSkiKSxBVFRSOm5ldyBSZWdFeHAoIl4iK1cpLFBTRVVETzpuZXcgUmVnRXhwKCJeIitGKSxDSElMRDpuZXcgUmVnRXhwKCJeOihvbmx5fGZpcnN0fGxhc3R8bnRofG50aC1sYXN0KS0oY2hpbGR8b2YtdHlwZSkoPzpcXCgiK00rIiooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufCkiK00rIiooPzooWystXXwpIitNKyIqKFxcZCspfCkpIitNKyIqXFwpfCkiLCJpIiksYm9vbDpuZXcgUmVnRXhwKCJeKD86IitSKyIpJCIsImkiKSxuZWVkc0NvbnRleHQ6bmV3IFJlZ0V4cCgiXiIrTSsiKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoIitNKyIqKCg/Oi1cXGQpP1xcZCopIitNKyIqXFwpfCkoPz1bXi1dfCQpIiwiaSIpfSxZPS9IVE1MJC9pLFE9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxKPS9eaFxkJC9pLEs9L15bXntdK1x7XHMqXFtuYXRpdmUgXHcvLFo9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxlZT0vWyt+XS8sdGU9bmV3IFJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn0iK00rIj98XFxcXChbXlxcclxcblxcZl0pIiwiZyIpLG5lPWZ1bmN0aW9uKGUsdCl7dmFyIG49IjB4IitlLnNsaWNlKDEpLTY1NTM2O3JldHVybiB0fHwobjwwP1N0cmluZy5mcm9tQ2hhckNvZGUobis2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShuPj4xMHw1NTI5NiwxMDIzJm58NTYzMjApKX0scmU9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15cMC1ceDFmXHg3Zi1cdUZGRkZcdy1dL2csaWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8iXHVmZmZkIjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfSxvZT1mdW5jdGlvbigpe1QoKX0sYWU9YmUoZnVuY3Rpb24oZSl7cmV0dXJuITA9PT1lLmRpc2FibGVkJiYiZmllbGRzZXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e0guYXBwbHkodD1PLmNhbGwocC5jaGlsZE5vZGVzKSxwLmNoaWxkTm9kZXMpLHRbcC5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goZSl7SD17YXBwbHk6dC5sZW5ndGg/ZnVuY3Rpb24oZSx0KXtMLmFwcGx5KGUsTy5jYWxsKHQpKX06ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmxlbmd0aCxyPTA7d2hpbGUoZVtuKytdPXRbcisrXSk7ZS5sZW5ndGg9bi0xfX19ZnVuY3Rpb24gc2UodCxlLG4scil7dmFyIGksbyxhLHMsdSxsLGMsZj1lJiZlLm93bmVyRG9jdW1lbnQscD1lP2Uubm9kZVR5cGU6OTtpZihuPW58fFtdLCJzdHJpbmciIT10eXBlb2YgdHx8IXR8fDEhPT1wJiY5IT09cCYmMTEhPT1wKXJldHVybiBuO2lmKCFyJiYoVChlKSxlPWV8fEMsRSkpe2lmKDExIT09cCYmKHU9Wi5leGVjKHQpKSlpZihpPXVbMV0pe2lmKDk9PT1wKXtpZighKGE9ZS5nZXRFbGVtZW50QnlJZChpKSkpcmV0dXJuIG47aWYoYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2UgaWYoZiYmKGE9Zi5nZXRFbGVtZW50QnlJZChpKSkmJnkoZSxhKSYmYS5pZD09PWkpcmV0dXJuIG4ucHVzaChhKSxufWVsc2V7aWYodVsyXSlyZXR1cm4gSC5hcHBseShuLGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUodCkpLG47aWYoKGk9dVszXSkmJmQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiBILmFwcGx5KG4sZS5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGkpKSxufWlmKGQucXNhJiYhTlt0KyIgIl0mJighdnx8IXYudGVzdCh0KSkmJigxIT09cHx8Im9iamVjdCIhPT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpKXtpZihjPXQsZj1lLDE9PT1wJiYoVS50ZXN0KHQpfHx6LnRlc3QodCkpKXsoZj1lZS50ZXN0KHQpJiZ5ZShlLnBhcmVudE5vZGUpfHxlKT09PWUmJmQuc2NvcGV8fCgocz1lLmdldEF0dHJpYnV0ZSgiaWQiKSk/cz1zLnJlcGxhY2UocmUsaWUpOmUuc2V0QXR0cmlidXRlKCJpZCIscz1TKSksbz0obD1oKHQpKS5sZW5ndGg7d2hpbGUoby0tKWxbb109KHM/IiMiK3M6IjpzY29wZSIpKyIgIit4ZShsW29dKTtjPWwuam9pbigiLCIpfXRyeXtyZXR1cm4gSC5hcHBseShuLGYucXVlcnlTZWxlY3RvckFsbChjKSksbn1jYXRjaChlKXtOKHQsITApfWZpbmFsbHl7cz09PVMmJmUucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIGcodC5yZXBsYWNlKCQsIiQxIiksZSxuLHIpfWZ1bmN0aW9uIHVlKCl7dmFyIHI9W107cmV0dXJuIGZ1bmN0aW9uIGUodCxuKXtyZXR1cm4gci5wdXNoKHQrIiAiKT5iLmNhY2hlTGVuZ3RoJiZkZWxldGUgZVtyLnNoaWZ0KCldLGVbdCsiICJdPW59fWZ1bmN0aW9uIGxlKGUpe3JldHVybiBlW1NdPSEwLGV9ZnVuY3Rpb24gY2UoZSl7dmFyIHQ9Qy5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpO3RyeXtyZXR1cm4hIWUodCl9Y2F0Y2goZSl7cmV0dXJuITF9ZmluYWxseXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KSx0PW51bGx9fWZ1bmN0aW9uIGZlKGUsdCl7dmFyIG49ZS5zcGxpdCgifCIpLHI9bi5sZW5ndGg7d2hpbGUoci0tKWIuYXR0ckhhbmRsZVtuW3JdXT10fWZ1bmN0aW9uIHBlKGUsdCl7dmFyIG49dCYmZSxyPW4mJjE9PT1lLm5vZGVUeXBlJiYxPT09dC5ub2RlVHlwZSYmZS5zb3VyY2VJbmRleC10LnNvdXJjZUluZGV4O2lmKHIpcmV0dXJuIHI7aWYobil3aGlsZShuPW4ubmV4dFNpYmxpbmcpaWYobj09PXQpcmV0dXJuLTE7cmV0dXJuIGU/MTotMX1mdW5jdGlvbiBkZSh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZS50eXBlPT09dH19ZnVuY3Rpb24gaGUobil7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4oImlucHV0Ij09PXR8fCJidXR0b24iPT09dCkmJmUudHlwZT09PW59fWZ1bmN0aW9uIGdlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iZm9ybSJpbiBlP2UucGFyZW50Tm9kZSYmITE9PT1lLmRpc2FibGVkPyJsYWJlbCJpbiBlPyJsYWJlbCJpbiBlLnBhcmVudE5vZGU/ZS5wYXJlbnROb2RlLmRpc2FibGVkPT09dDplLmRpc2FibGVkPT09dDplLmlzRGlzYWJsZWQ9PT10fHxlLmlzRGlzYWJsZWQhPT0hdCYmYWUoZSk9PT10OmUuZGlzYWJsZWQ9PT10OiJsYWJlbCJpbiBlJiZlLmRpc2FibGVkPT09dH19ZnVuY3Rpb24gdmUoYSl7cmV0dXJuIGxlKGZ1bmN0aW9uKG8pe3JldHVybiBvPStvLGxlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKFtdLGUubGVuZ3RoLG8pLGk9ci5sZW5ndGg7d2hpbGUoaS0tKWVbbj1yW2ldXSYmKGVbbl09ISh0W25dPWVbbl0pKX0pfSl9ZnVuY3Rpb24geWUoZSl7cmV0dXJuIGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZSYmZX1mb3IoZSBpbiBkPXNlLnN1cHBvcnQ9e30saT1zZS5pc1hNTD1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLm5hbWVzcGFjZVVSSSxuPWUmJihlLm93bmVyRG9jdW1lbnR8fGUpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hWS50ZXN0KHR8fG4mJm4ubm9kZU5hbWV8fCJIVE1MIil9LFQ9c2Uuc2V0RG9jdW1lbnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbixyPWU/ZS5vd25lckRvY3VtZW50fHxlOnA7cmV0dXJuIHIhPUMmJjk9PT1yLm5vZGVUeXBlJiZyLmRvY3VtZW50RWxlbWVudCYmKGE9KEM9cikuZG9jdW1lbnRFbGVtZW50LEU9IWkoQykscCE9QyYmKG49Qy5kZWZhdWx0VmlldykmJm4udG9wIT09biYmKG4uYWRkRXZlbnRMaXN0ZW5lcj9uLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsb2UsITEpOm4uYXR0YWNoRXZlbnQmJm4uYXR0YWNoRXZlbnQoIm9udW5sb2FkIixvZSkpLGQuc2NvcGU9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuYXBwZW5kQ2hpbGQoQy5jcmVhdGVFbGVtZW50KCJkaXYiKSksInVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGwmJiFlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBmaWVsZHNldCBkaXYiKS5sZW5ndGh9KSxkLmF0dHJpYnV0ZXM9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGUuY2xhc3NOYW1lPSJpIiwhZS5nZXRBdHRyaWJ1dGUoImNsYXNzTmFtZSIpfSksZC5nZXRFbGVtZW50c0J5VGFnTmFtZT1jZShmdW5jdGlvbihlKXtyZXR1cm4gZS5hcHBlbmRDaGlsZChDLmNyZWF0ZUNvbW1lbnQoIiIpKSwhZS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aH0pLGQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZT1LLnRlc3QoQy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKSxkLmdldEJ5SWQ9Y2UoZnVuY3Rpb24oZSl7cmV0dXJuIGEuYXBwZW5kQ2hpbGQoZSkuaWQ9UywhQy5nZXRFbGVtZW50c0J5TmFtZXx8IUMuZ2V0RWxlbWVudHNCeU5hbWUoUykubGVuZ3RofSksZC5nZXRCeUlkPyhiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UodGUsbmUpO3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImlkIik9PT10fX0sYi5maW5kLklEPWZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRCeUlkJiZFKXt2YXIgbj10LmdldEVsZW1lbnRCeUlkKGUpO3JldHVybiBuP1tuXTpbXX19KTooYi5maWx0ZXIuSUQ9ZnVuY3Rpb24oZSl7dmFyIG49ZS5yZXBsYWNlKHRlLG5lKTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEF0dHJpYnV0ZU5vZGUmJmUuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKTtyZXR1cm4gdCYmdC52YWx1ZT09PW59fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJkUpe3ZhciBuLHIsaSxvPXQuZ2V0RWxlbWVudEJ5SWQoZSk7aWYobyl7aWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dO2k9dC5nZXRFbGVtZW50c0J5TmFtZShlKSxyPTA7d2hpbGUobz1pW3IrK10paWYoKG49by5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmbi52YWx1ZT09PWUpcmV0dXJuW29dfXJldHVybltdfX0pLGIuZmluZC5UQUc9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZT9mdW5jdGlvbihlLHQpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50c0J5VGFnTmFtZT90LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpOmQucXNhP3QucXVlcnlTZWxlY3RvckFsbChlKTp2b2lkIDB9OmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPTAsbz10LmdldEVsZW1lbnRzQnlUYWdOYW1lKGUpO2lmKCIqIj09PWUpe3doaWxlKG49b1tpKytdKTE9PT1uLm5vZGVUeXBlJiZyLnB1c2gobik7cmV0dXJuIHJ9cmV0dXJuIG99LGIuZmluZC5DTEFTUz1kLmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmZ1bmN0aW9uKGUsdCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJkUpcmV0dXJuIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShlKX0scz1bXSx2PVtdLChkLnFzYT1LLnRlc3QoQy5xdWVyeVNlbGVjdG9yQWxsKSkmJihjZShmdW5jdGlvbihlKXt2YXIgdDthLmFwcGVuZENoaWxkKGUpLmlubmVySFRNTD0iPGEgaWQ9JyIrUysiJz48L2E+PHNlbGVjdCBpZD0nIitTKyItXHJcXCcgbXNhbGxvd2NhcHR1cmU9Jyc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iLGUucXVlcnlTZWxlY3RvckFsbCgiW21zYWxsb3djYXB0dXJlXj0nJ10iKS5sZW5ndGgmJnYucHVzaCgiWypeJF09IitNKyIqKD86Jyd8XCJcIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqKD86dmFsdWV8IitSKyIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrUysiLV0iKS5sZW5ndGh8fHYucHVzaCgifj0iKSwodD1DLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpLGUuYXBwZW5kQ2hpbGQodCksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fHYucHVzaCgiXFxbIitNKyIqbmFtZSIrTSsiKj0iK00rIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiOmNoZWNrZWQiKS5sZW5ndGh8fHYucHVzaCgiOmNoZWNrZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitTKyIrKiIpLmxlbmd0aHx8di5wdXNoKCIuIy4rWyt+XSIpLGUucXVlcnlTZWxlY3RvckFsbCgiXFxcZiIpLHYucHVzaCgiW1xcclxcblxcZl0iKX0pLGNlKGZ1bmN0aW9uKGUpe2UuaW5uZXJIVE1MPSI8YSBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD4iO3ZhciB0PUMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTt0LnNldEF0dHJpYnV0ZSgidHlwZSIsImhpZGRlbiIpLGUuYXBwZW5kQ2hpbGQodCkuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpLGUucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9ZF0iKS5sZW5ndGgmJnYucHVzaCgibmFtZSIrTSsiKlsqXiR8IX5dPz0iKSwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZW5hYmxlZCIpLmxlbmd0aCYmdi5wdXNoKCI6ZW5hYmxlZCIsIjpkaXNhYmxlZCIpLGEuYXBwZW5kQ2hpbGQoZSkuZGlzYWJsZWQ9ITAsMiE9PWUucXVlcnlTZWxlY3RvckFsbCgiOmRpc2FibGVkIikubGVuZ3RoJiZ2LnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksZS5xdWVyeVNlbGVjdG9yQWxsKCIqLDp4Iiksdi5wdXNoKCIsLio6Iil9KSksKGQubWF0Y2hlc1NlbGVjdG9yPUsudGVzdChjPWEubWF0Y2hlc3x8YS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fGEubW96TWF0Y2hlc1NlbGVjdG9yfHxhLm9NYXRjaGVzU2VsZWN0b3J8fGEubXNNYXRjaGVzU2VsZWN0b3IpKSYmY2UoZnVuY3Rpb24oZSl7ZC5kaXNjb25uZWN0ZWRNYXRjaD1jLmNhbGwoZSwiKiIpLGMuY2FsbChlLCJbcyE9JyddOngiKSxzLnB1c2goIiE9IixGKX0pLHY9di5sZW5ndGgmJm5ldyBSZWdFeHAodi5qb2luKCJ8IikpLHM9cy5sZW5ndGgmJm5ldyBSZWdFeHAocy5qb2luKCJ8IikpLHQ9Sy50ZXN0KGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24pLHk9dHx8Sy50ZXN0KGEuY29udGFpbnMpP2Z1bmN0aW9uKGUsdCl7dmFyIG49OT09PWUubm9kZVR5cGU/ZS5kb2N1bWVudEVsZW1lbnQ6ZSxyPXQmJnQucGFyZW50Tm9kZTtyZXR1cm4gZT09PXJ8fCEoIXJ8fDEhPT1yLm5vZGVUeXBlfHwhKG4uY29udGFpbnM/bi5jb250YWlucyhyKTplLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYxNiZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHIpKSl9OmZ1bmN0aW9uKGUsdCl7aWYodCl3aGlsZSh0PXQucGFyZW50Tm9kZSlpZih0PT09ZSlyZXR1cm4hMDtyZXR1cm4hMX0saj10P2Z1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbj0hZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtyZXR1cm4gbnx8KDEmKG49KGUub3duZXJEb2N1bWVudHx8ZSk9PSh0Lm93bmVyRG9jdW1lbnR8fHQpP2UuY29tcGFyZURvY3VtZW50UG9zaXRpb24odCk6MSl8fCFkLnNvcnREZXRhY2hlZCYmdC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlKT09PW4/ZT09Q3x8ZS5vd25lckRvY3VtZW50PT1wJiZ5KHAsZSk/LTE6dD09Q3x8dC5vd25lckRvY3VtZW50PT1wJiZ5KHAsdCk/MTp1P1AodSxlKS1QKHUsdCk6MDo0Jm4/LTE6MSl9OmZ1bmN0aW9uKGUsdCl7aWYoZT09PXQpcmV0dXJuIGw9ITAsMDt2YXIgbixyPTAsaT1lLnBhcmVudE5vZGUsbz10LnBhcmVudE5vZGUsYT1bZV0scz1bdF07aWYoIWl8fCFvKXJldHVybiBlPT1DPy0xOnQ9PUM/MTppPy0xOm8/MTp1P1AodSxlKS1QKHUsdCk6MDtpZihpPT09bylyZXR1cm4gcGUoZSx0KTtuPWU7d2hpbGUobj1uLnBhcmVudE5vZGUpYS51bnNoaWZ0KG4pO249dDt3aGlsZShuPW4ucGFyZW50Tm9kZSlzLnVuc2hpZnQobik7d2hpbGUoYVtyXT09PXNbcl0pcisrO3JldHVybiByP3BlKGFbcl0sc1tyXSk6YVtyXT09cD8tMTpzW3JdPT1wPzE6MH0pLEN9LHNlLm1hdGNoZXM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gc2UoZSxudWxsLG51bGwsdCl9LHNlLm1hdGNoZXNTZWxlY3Rvcj1mdW5jdGlvbihlLHQpe2lmKFQoZSksZC5tYXRjaGVzU2VsZWN0b3ImJkUmJiFOW3QrIiAiXSYmKCFzfHwhcy50ZXN0KHQpKSYmKCF2fHwhdi50ZXN0KHQpKSl0cnl7dmFyIG49Yy5jYWxsKGUsdCk7aWYobnx8ZC5kaXNjb25uZWN0ZWRNYXRjaHx8ZS5kb2N1bWVudCYmMTEhPT1lLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBufWNhdGNoKGUpe04odCwhMCl9cmV0dXJuIDA8c2UodCxDLG51bGwsW2VdKS5sZW5ndGh9LHNlLmNvbnRhaW5zPWZ1bmN0aW9uKGUsdCl7cmV0dXJuKGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSkseShlLHQpfSxzZS5hdHRyPWZ1bmN0aW9uKGUsdCl7KGUub3duZXJEb2N1bWVudHx8ZSkhPUMmJlQoZSk7dmFyIG49Yi5hdHRySGFuZGxlW3QudG9Mb3dlckNhc2UoKV0scj1uJiZELmNhbGwoYi5hdHRySGFuZGxlLHQudG9Mb3dlckNhc2UoKSk/bihlLHQsIUUpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cj9yOmQuYXR0cmlidXRlc3x8IUU/ZS5nZXRBdHRyaWJ1dGUodCk6KHI9ZS5nZXRBdHRyaWJ1dGVOb2RlKHQpKSYmci5zcGVjaWZpZWQ/ci52YWx1ZTpudWxsfSxzZS5lc2NhcGU9ZnVuY3Rpb24oZSl7cmV0dXJuKGUrIiIpLnJlcGxhY2UocmUsaWUpfSxzZS5lcnJvcj1mdW5jdGlvbihlKXt0aHJvdyBuZXcgRXJyb3IoIlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrZSl9LHNlLnVuaXF1ZVNvcnQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj1bXSxyPTAsaT0wO2lmKGw9IWQuZGV0ZWN0RHVwbGljYXRlcyx1PSFkLnNvcnRTdGFibGUmJmUuc2xpY2UoMCksZS5zb3J0KGopLGwpe3doaWxlKHQ9ZVtpKytdKXQ9PT1lW2ldJiYocj1uLnB1c2goaSkpO3doaWxlKHItLSllLnNwbGljZShuW3JdLDEpfXJldHVybiB1PW51bGwsZX0sbz1zZS5nZXRUZXh0PWZ1bmN0aW9uKGUpe3ZhciB0LG49IiIscj0wLGk9ZS5ub2RlVHlwZTtpZihpKXtpZigxPT09aXx8OT09PWl8fDExPT09aSl7aWYoInN0cmluZyI9PXR5cGVvZiBlLnRleHRDb250ZW50KXJldHVybiBlLnRleHRDb250ZW50O2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZyluKz1vKGUpfWVsc2UgaWYoMz09PWl8fDQ9PT1pKXJldHVybiBlLm5vZGVWYWx1ZX1lbHNlIHdoaWxlKHQ9ZVtyKytdKW4rPW8odCk7cmV0dXJuIG59LChiPXNlLnNlbGVjdG9ycz17Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmxlLG1hdGNoOkcsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGUpe3JldHVybiBlWzFdPWVbMV0ucmVwbGFjZSh0ZSxuZSksZVszXT0oZVszXXx8ZVs0XXx8ZVs1XXx8IiIpLnJlcGxhY2UodGUsbmUpLCJ+PSI9PT1lWzJdJiYoZVszXT0iICIrZVszXSsiICIpLGUuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09ZVsxXS5zbGljZSgwLDMpPyhlWzNdfHxzZS5lcnJvcihlWzBdKSxlWzRdPSsoZVs0XT9lWzVdKyhlWzZdfHwxKToyKigiZXZlbiI9PT1lWzNdfHwib2RkIj09PWVbM10pKSxlWzVdPSsoZVs3XStlWzhdfHwib2RkIj09PWVbM10pKTplWzNdJiZzZS5lcnJvcihlWzBdKSxlfSxQU0VVRE86ZnVuY3Rpb24oZSl7dmFyIHQsbj0hZVs2XSYmZVsyXTtyZXR1cm4gRy5DSElMRC50ZXN0KGVbMF0pP251bGw6KGVbM10/ZVsyXT1lWzRdfHxlWzVdfHwiIjpuJiZYLnRlc3QobikmJih0PWgobiwhMCkpJiYodD1uLmluZGV4T2YoIikiLG4ubGVuZ3RoLXQpLW4ubGVuZ3RoKSYmKGVbMF09ZVswXS5zbGljZSgwLHQpLGVbMl09bi5zbGljZSgwLHQpKSxlLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5yZXBsYWNlKHRlLG5lKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWU/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXR9fSxDTEFTUzpmdW5jdGlvbihlKXt2YXIgdD1tW2UrIiAiXTtyZXR1cm4gdHx8KHQ9bmV3IFJlZ0V4cCgiKF58IitNKyIpIitlKyIoIitNKyJ8JCkiKSkmJm0oZSxmdW5jdGlvbihlKXtyZXR1cm4gdC50ZXN0KCJzdHJpbmciPT10eXBlb2YgZS5jbGFzc05hbWUmJmUuY2xhc3NOYW1lfHwidW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlJiZlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpfSl9LEFUVFI6ZnVuY3Rpb24obixyLGkpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD1zZS5hdHRyKGUsbik7cmV0dXJuIG51bGw9PXQ/IiE9Ij09PXI6IXJ8fCh0Kz0iIiwiPSI9PT1yP3Q9PT1pOiIhPSI9PT1yP3QhPT1pOiJePSI9PT1yP2kmJjA9PT10LmluZGV4T2YoaSk6Iio9Ij09PXI/aSYmLTE8dC5pbmRleE9mKGkpOiIkPSI9PT1yP2kmJnQuc2xpY2UoLWkubGVuZ3RoKT09PWk6In49Ij09PXI/LTE8KCIgIit0LnJlcGxhY2UoQiwiICIpKyIgIikuaW5kZXhPZihpKToifD0iPT09ciYmKHQ9PT1pfHx0LnNsaWNlKDAsaS5sZW5ndGgrMSk9PT1pKyItIikpfX0sQ0hJTEQ6ZnVuY3Rpb24oaCxlLHQsZyx2KXt2YXIgeT0ibnRoIiE9PWguc2xpY2UoMCwzKSxtPSJsYXN0IiE9PWguc2xpY2UoLTQpLHg9Im9mLXR5cGUiPT09ZTtyZXR1cm4gMT09PWcmJjA9PT12P2Z1bmN0aW9uKGUpe3JldHVybiEhZS5wYXJlbnROb2RlfTpmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGEscyx1LGw9eSE9PW0/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIixjPWUucGFyZW50Tm9kZSxmPXgmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxwPSFuJiYheCxkPSExO2lmKGMpe2lmKHkpe3doaWxlKGwpe2E9ZTt3aGlsZShhPWFbbF0paWYoeD9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1mOjE9PT1hLm5vZGVUeXBlKXJldHVybiExO3U9bD0ib25seSI9PT1oJiYhdSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZih1PVttP2MuZmlyc3RDaGlsZDpjLmxhc3RDaGlsZF0sbSYmcCl7ZD0ocz0ocj0oaT0obz0oYT1jKVtTXXx8KGFbU109e30pKVthLnVuaXF1ZUlEXXx8KG9bYS51bmlxdWVJRF09e30pKVtoXXx8W10pWzBdPT09ayYmclsxXSkmJnJbMl0sYT1zJiZjLmNoaWxkTm9kZXNbc107d2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoMT09PWEubm9kZVR5cGUmJisrZCYmYT09PWUpe2lbaF09W2sscyxkXTticmVha319ZWxzZSBpZihwJiYoZD1zPShyPShpPShvPShhPWUpW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdfHxbXSlbMF09PT1rJiZyWzFdKSwhMT09PWQpd2hpbGUoYT0rK3MmJmEmJmFbbF18fChkPXM9MCl8fHUucG9wKCkpaWYoKHg/YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09ZjoxPT09YS5ub2RlVHlwZSkmJisrZCYmKHAmJigoaT0obz1hW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdPVtrLGRdKSxhPT09ZSkpYnJlYWs7cmV0dXJuKGQtPXYpPT09Z3x8ZCVnPT0wJiYwPD1kL2d9fX0sUFNFVURPOmZ1bmN0aW9uKGUsbyl7dmFyIHQsYT1iLnBzZXVkb3NbZV18fGIuc2V0RmlsdGVyc1tlLnRvTG93ZXJDYXNlKCldfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2UpO3JldHVybiBhW1NdP2Eobyk6MTxhLmxlbmd0aD8odD1bZSxlLCIiLG9dLGIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShlLnRvTG93ZXJDYXNlKCkpP2xlKGZ1bmN0aW9uKGUsdCl7dmFyIG4scj1hKGUsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPVAoZSxyW2ldKV09ISh0W25dPXJbaV0pfSk6ZnVuY3Rpb24oZSl7cmV0dXJuIGEoZSwwLHQpfSk6YX19LHBzZXVkb3M6e25vdDpsZShmdW5jdGlvbihlKXt2YXIgcj1bXSxpPVtdLHM9ZihlLnJlcGxhY2UoJCwiJDEiKSk7cmV0dXJuIHNbU10/bGUoZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbz1zKGUsbnVsbCxyLFtdKSxhPWUubGVuZ3RoO3doaWxlKGEtLSkoaT1vW2FdKSYmKGVbYV09ISh0W2FdPWkpKX0pOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gclswXT1lLHMocixudWxsLG4saSksclswXT1udWxsLCFpLnBvcCgpfX0pLGhhczpsZShmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIDA8c2UodCxlKS5sZW5ndGh9fSksY29udGFpbnM6bGUoZnVuY3Rpb24odCl7cmV0dXJuIHQ9dC5yZXBsYWNlKHRlLG5lKSxmdW5jdGlvbihlKXtyZXR1cm4tMTwoZS50ZXh0Q29udGVudHx8byhlKSkuaW5kZXhPZih0KX19KSxsYW5nOmxlKGZ1bmN0aW9uKG4pe3JldHVybiBWLnRlc3Qobnx8IiIpfHxzZS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIituKSxuPW4ucmVwbGFjZSh0ZSxuZSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihlKXt2YXIgdDtkb3tpZih0PUU/ZS5sYW5nOmUuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxlLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybih0PXQudG9Mb3dlckNhc2UoKSk9PT1ufHwwPT09dC5pbmRleE9mKG4rIi0iKX13aGlsZSgoZT1lLnBhcmVudE5vZGUpJiYxPT09ZS5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGUpe3ZhciB0PW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gdCYmdC5zbGljZSgxKT09PWUuaWR9LHJvb3Q6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1hfSxmb2N1czpmdW5jdGlvbihlKXtyZXR1cm4gZT09PUMuYWN0aXZlRWxlbWVudCYmKCFDLmhhc0ZvY3VzfHxDLmhhc0ZvY3VzKCkpJiYhIShlLnR5cGV8fGUuaHJlZnx8fmUudGFiSW5kZXgpfSxlbmFibGVkOmdlKCExKSxkaXNhYmxlZDpnZSghMCksY2hlY2tlZDpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiEhZS5jaGVja2VkfHwib3B0aW9uIj09PXQmJiEhZS5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1lLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihlKXtmb3IoZT1lLmZpcnN0Q2hpbGQ7ZTtlPWUubmV4dFNpYmxpbmcpaWYoZS5ub2RlVHlwZTw2KXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIWIucHNldWRvcy5lbXB0eShlKX0saGVhZGVyOmZ1bmN0aW9uKGUpe3JldHVybiBKLnRlc3QoZS5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBRLnRlc3QoZS5ub2RlTmFtZSl9LGJ1dHRvbjpmdW5jdGlvbihlKXt2YXIgdD1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuImlucHV0Ij09PXQmJiJidXR0b24iPT09ZS50eXBlfHwiYnV0dG9uIj09PXR9LHRleHQ6ZnVuY3Rpb24oZSl7dmFyIHQ7cmV0dXJuImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmInRleHQiPT09ZS50eXBlJiYobnVsbD09KHQ9ZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSl8fCJ0ZXh0Ij09PXQudG9Mb3dlckNhc2UoKSl9LGZpcnN0OnZlKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDp2ZShmdW5jdGlvbihlLHQpe3JldHVyblt0LTFdfSksZXE6dmUoZnVuY3Rpb24oZSx0LG4pe3JldHVybltuPDA/bit0Om5dfSksZXZlbjp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLG9kZDp2ZShmdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0xO248dDtuKz0yKWUucHVzaChuKTtyZXR1cm4gZX0pLGx0OnZlKGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9bjwwP24rdDp0PG4/dDpuOzA8PS0tcjspZS5wdXNoKHIpO3JldHVybiBlfSksZ3Q6dmUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0Om47KytyPHQ7KWUucHVzaChyKTtyZXR1cm4gZX0pfX0pLnBzZXVkb3MubnRoPWIucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pYi5wc2V1ZG9zW2VdPWRlKGUpO2ZvcihlIGlue3N1Ym1pdDohMCxyZXNldDohMH0pYi5wc2V1ZG9zW2VdPWhlKGUpO2Z1bmN0aW9uIG1lKCl7fWZ1bmN0aW9uIHhlKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgscj0iIjt0PG47dCsrKXIrPWVbdF0udmFsdWU7cmV0dXJuIHJ9ZnVuY3Rpb24gYmUocyxlLHQpe3ZhciB1PWUuZGlyLGw9ZS5uZXh0LGM9bHx8dSxmPXQmJiJwYXJlbnROb2RlIj09PWMscD1yKys7cmV0dXJuIGUuZmlyc3Q/ZnVuY3Rpb24oZSx0LG4pe3doaWxlKGU9ZVt1XSlpZigxPT09ZS5ub2RlVHlwZXx8ZilyZXR1cm4gcyhlLHQsbik7cmV0dXJuITF9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYT1bayxwXTtpZihuKXt3aGlsZShlPWVbdV0paWYoKDE9PT1lLm5vZGVUeXBlfHxmKSYmcyhlLHQsbikpcmV0dXJuITB9ZWxzZSB3aGlsZShlPWVbdV0paWYoMT09PWUubm9kZVR5cGV8fGYpaWYoaT0obz1lW1NdfHwoZVtTXT17fSkpW2UudW5pcXVlSURdfHwob1tlLnVuaXF1ZUlEXT17fSksbCYmbD09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSllPWVbdV18fGU7ZWxzZXtpZigocj1pW2NdKSYmclswXT09PWsmJnJbMV09PT1wKXJldHVybiBhWzJdPXJbMl07aWYoKGlbY109YSlbMl09cyhlLHQsbikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIHdlKGkpe3JldHVybiAxPGkubGVuZ3RoP2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj1pLmxlbmd0aDt3aGlsZShyLS0paWYoIWlbcl0oZSx0LG4pKXJldHVybiExO3JldHVybiEwfTppWzBdfWZ1bmN0aW9uIFRlKGUsdCxuLHIsaSl7Zm9yKHZhciBvLGE9W10scz0wLHU9ZS5sZW5ndGgsbD1udWxsIT10O3M8dTtzKyspKG89ZVtzXSkmJihuJiYhbihvLHIsaSl8fChhLnB1c2gobyksbCYmdC5wdXNoKHMpKSk7cmV0dXJuIGF9ZnVuY3Rpb24gQ2UoZCxoLGcsdix5LGUpe3JldHVybiB2JiYhdltTXSYmKHY9Q2UodikpLHkmJiF5W1NdJiYoeT1DZSh5LGUpKSxsZShmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscz1bXSx1PVtdLGw9dC5sZW5ndGgsYz1lfHxmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT10Lmxlbmd0aDtyPGk7cisrKXNlKGUsdFtyXSxuKTtyZXR1cm4gbn0oaHx8IioiLG4ubm9kZVR5cGU/W25dOm4sW10pLGY9IWR8fCFlJiZoP2M6VGUoYyxzLGQsbixyKSxwPWc/eXx8KGU/ZDpsfHx2KT9bXTp0OmY7aWYoZyYmZyhmLHAsbixyKSx2KXtpPVRlKHAsdSksdihpLFtdLG4sciksbz1pLmxlbmd0aDt3aGlsZShvLS0pKGE9aVtvXSkmJihwW3Vbb11dPSEoZlt1W29dXT1hKSl9aWYoZSl7aWYoeXx8ZCl7aWYoeSl7aT1bXSxvPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmaS5wdXNoKGZbb109YSk7eShudWxsLHA9W10saSxyKX1vPXAubGVuZ3RoO3doaWxlKG8tLSkoYT1wW29dKSYmLTE8KGk9eT9QKGUsYSk6c1tvXSkmJihlW2ldPSEodFtpXT1hKSl9fWVsc2UgcD1UZShwPT09dD9wLnNwbGljZShsLHAubGVuZ3RoKTpwKSx5P3kobnVsbCx0LHAscik6SC5hcHBseSh0LHApfSl9ZnVuY3Rpb24gRWUoZSl7Zm9yKHZhciBpLHQsbixyPWUubGVuZ3RoLG89Yi5yZWxhdGl2ZVtlWzBdLnR5cGVdLGE9b3x8Yi5yZWxhdGl2ZVsiICJdLHM9bz8xOjAsdT1iZShmdW5jdGlvbihlKXtyZXR1cm4gZT09PWl9LGEsITApLGw9YmUoZnVuY3Rpb24oZSl7cmV0dXJuLTE8UChpLGUpfSxhLCEwKSxjPVtmdW5jdGlvbihlLHQsbil7dmFyIHI9IW8mJihufHx0IT09dyl8fCgoaT10KS5ub2RlVHlwZT91KGUsdCxuKTpsKGUsdCxuKSk7cmV0dXJuIGk9bnVsbCxyfV07czxyO3MrKylpZih0PWIucmVsYXRpdmVbZVtzXS50eXBlXSljPVtiZSh3ZShjKSx0KV07ZWxzZXtpZigodD1iLmZpbHRlcltlW3NdLnR5cGVdLmFwcGx5KG51bGwsZVtzXS5tYXRjaGVzKSlbU10pe2ZvcihuPSsrcztuPHI7bisrKWlmKGIucmVsYXRpdmVbZVtuXS50eXBlXSlicmVhaztyZXR1cm4gQ2UoMTxzJiZ3ZShjKSwxPHMmJnhlKGUuc2xpY2UoMCxzLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09ZVtzLTJdLnR5cGU/IioiOiIifSkpLnJlcGxhY2UoJCwiJDEiKSx0LHM8biYmRWUoZS5zbGljZShzLG4pKSxuPHImJkVlKGU9ZS5zbGljZShuKSksbjxyJiZ4ZShlKSl9Yy5wdXNoKHQpfXJldHVybiB3ZShjKX1yZXR1cm4gbWUucHJvdG90eXBlPWIuZmlsdGVycz1iLnBzZXVkb3MsYi5zZXRGaWx0ZXJzPW5ldyBtZSxoPXNlLnRva2VuaXplPWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzLHUsbD14W2UrIiAiXTtpZihsKXJldHVybiB0PzA6bC5zbGljZSgwKTthPWUscz1bXSx1PWIucHJlRmlsdGVyO3doaWxlKGEpe2ZvcihvIGluIG4mJiEocj1fLmV4ZWMoYSkpfHwociYmKGE9YS5zbGljZShyWzBdLmxlbmd0aCl8fGEpLHMucHVzaChpPVtdKSksbj0hMSwocj16LmV4ZWMoYSkpJiYobj1yLnNoaWZ0KCksaS5wdXNoKHt2YWx1ZTpuLHR5cGU6clswXS5yZXBsYWNlKCQsIiAiKX0pLGE9YS5zbGljZShuLmxlbmd0aCkpLGIuZmlsdGVyKSEocj1HW29dLmV4ZWMoYSkpfHx1W29dJiYhKHI9dVtvXShyKSl8fChuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpvLG1hdGNoZXM6cn0pLGE9YS5zbGljZShuLmxlbmd0aCkpO2lmKCFuKWJyZWFrfXJldHVybiB0P2EubGVuZ3RoOmE/c2UuZXJyb3IoZSk6eChlLHMpLnNsaWNlKDApfSxmPXNlLmNvbXBpbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbix2LHksbSx4LHIsaT1bXSxvPVtdLGE9QVtlKyIgIl07aWYoIWEpe3R8fCh0PWgoZSkpLG49dC5sZW5ndGg7d2hpbGUobi0tKShhPUVlKHRbbl0pKVtTXT9pLnB1c2goYSk6by5wdXNoKGEpOyhhPUEoZSwodj1vLG09MDwoeT1pKS5sZW5ndGgseD0wPHYubGVuZ3RoLHI9ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdT0wLGw9IjAiLGM9ZSYmW10sZj1bXSxwPXcsZD1lfHx4JiZiLmZpbmQuVEFHKCIqIixpKSxoPWsrPW51bGw9PXA/MTpNYXRoLnJhbmRvbSgpfHwuMSxnPWQubGVuZ3RoO2ZvcihpJiYodz10PT1DfHx0fHxpKTtsIT09ZyYmbnVsbCE9KG89ZFtsXSk7bCsrKXtpZih4JiZvKXthPTAsdHx8by5vd25lckRvY3VtZW50PT1DfHwoVChvKSxuPSFFKTt3aGlsZShzPXZbYSsrXSlpZihzKG8sdHx8QyxuKSl7ci5wdXNoKG8pO2JyZWFrfWkmJihrPWgpfW0mJigobz0hcyYmbykmJnUtLSxlJiZjLnB1c2gobykpfWlmKHUrPWwsbSYmbCE9PXUpe2E9MDt3aGlsZShzPXlbYSsrXSlzKGMsZix0LG4pO2lmKGUpe2lmKDA8dSl3aGlsZShsLS0pY1tsXXx8ZltsXXx8KGZbbF09cS5jYWxsKHIpKTtmPVRlKGYpfUguYXBwbHkocixmKSxpJiYhZSYmMDxmLmxlbmd0aCYmMTx1K3kubGVuZ3RoJiZzZS51bmlxdWVTb3J0KHIpfXJldHVybiBpJiYoaz1oLHc9cCksY30sbT9sZShyKTpyKSkpLnNlbGVjdG9yPWV9cmV0dXJuIGF9LGc9c2Uuc2VsZWN0PWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD0iZnVuY3Rpb24iPT10eXBlb2YgZSYmZSxjPSFyJiZoKGU9bC5zZWxlY3Rvcnx8ZSk7aWYobj1ufHxbXSwxPT09Yy5sZW5ndGgpe2lmKDI8KG89Y1swXT1jWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oYT1vWzBdKS50eXBlJiY5PT09dC5ub2RlVHlwZSYmRSYmYi5yZWxhdGl2ZVtvWzFdLnR5cGVdKXtpZighKHQ9KGIuZmluZC5JRChhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksdCl8fFtdKVswXSkpcmV0dXJuIG47bCYmKHQ9dC5wYXJlbnROb2RlKSxlPWUuc2xpY2Uoby5zaGlmdCgpLnZhbHVlLmxlbmd0aCl9aT1HLm5lZWRzQ29udGV4dC50ZXN0KGUpPzA6by5sZW5ndGg7d2hpbGUoaS0tKXtpZihhPW9baV0sYi5yZWxhdGl2ZVtzPWEudHlwZV0pYnJlYWs7aWYoKHU9Yi5maW5kW3NdKSYmKHI9dShhLm1hdGNoZXNbMF0ucmVwbGFjZSh0ZSxuZSksZWUudGVzdChvWzBdLnR5cGUpJiZ5ZSh0LnBhcmVudE5vZGUpfHx0KSkpe2lmKG8uc3BsaWNlKGksMSksIShlPXIubGVuZ3RoJiZ4ZShvKSkpcmV0dXJuIEguYXBwbHkobixyKSxuO2JyZWFrfX19cmV0dXJuKGx8fGYoZSxjKSkocix0LCFFLG4sIXR8fGVlLnRlc3QoZSkmJnllKHQucGFyZW50Tm9kZSl8fHQpLG59LGQuc29ydFN0YWJsZT1TLnNwbGl0KCIiKS5zb3J0KGopLmpvaW4oIiIpPT09UyxkLmRldGVjdER1cGxpY2F0ZXM9ISFsLFQoKSxkLnNvcnREZXRhY2hlZD1jZShmdW5jdGlvbihlKXtyZXR1cm4gMSZlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKEMuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKSl9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iLCIjIj09PWUuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKX0pfHxmZSgidHlwZXxocmVmfGhlaWdodHx3aWR0aCIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuKXJldHVybiBlLmdldEF0dHJpYnV0ZSh0LCJ0eXBlIj09PXQudG9Mb3dlckNhc2UoKT8xOjIpfSksZC5hdHRyaWJ1dGVzJiZjZShmdW5jdGlvbihlKXtyZXR1cm4gZS5pbm5lckhUTUw9IjxpbnB1dC8+IixlLmZpcnN0Q2hpbGQuc2V0QXR0cmlidXRlKCJ2YWx1ZSIsIiIpLCIiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgidmFsdWUiKX0pfHxmZSgidmFsdWUiLGZ1bmN0aW9uKGUsdCxuKXtpZighbiYmImlucHV0Ij09PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlyZXR1cm4gZS5kZWZhdWx0VmFsdWV9KSxjZShmdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZS5nZXRBdHRyaWJ1dGUoImRpc2FibGVkIil9KXx8ZmUoUixmdW5jdGlvbihlLHQsbil7dmFyIHI7aWYoIW4pcmV0dXJuITA9PT1lW3RdP3QudG9Mb3dlckNhc2UoKToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9KSxzZX0oQyk7Uy5maW5kPWQsUy5leHByPWQuc2VsZWN0b3JzLFMuZXhwclsiOiJdPVMuZXhwci5wc2V1ZG9zLFMudW5pcXVlU29ydD1TLnVuaXF1ZT1kLnVuaXF1ZVNvcnQsUy50ZXh0PWQuZ2V0VGV4dCxTLmlzWE1MRG9jPWQuaXNYTUwsUy5jb250YWlucz1kLmNvbnRhaW5zLFMuZXNjYXBlU2VsZWN0b3I9ZC5lc2NhcGU7dmFyIGg9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPVtdLGk9dm9pZCAwIT09bjt3aGlsZSgoZT1lW3RdKSYmOSE9PWUubm9kZVR5cGUpaWYoMT09PWUubm9kZVR5cGUpe2lmKGkmJlMoZSkuaXMobikpYnJlYWs7ci5wdXNoKGUpfXJldHVybiByfSxUPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPVtdO2U7ZT1lLm5leHRTaWJsaW5nKTE9PT1lLm5vZGVUeXBlJiZlIT09dCYmbi5wdXNoKGUpO3JldHVybiBufSxrPVMuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQ7ZnVuY3Rpb24gQShlLHQpe3JldHVybiBlLm5vZGVOYW1lJiZlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT10LnRvTG93ZXJDYXNlKCl9dmFyIE49L148KFthLXpdW15cL1wwPjpceDIwXHRcclxuXGZdKilbXHgyMFx0XHJcblxmXSpcLz8+KD86PFwvXDE+fCkkL2k7ZnVuY3Rpb24gaihlLG4scil7cmV0dXJuIG0obik/Uy5ncmVwKGUsZnVuY3Rpb24oZSx0KXtyZXR1cm4hIW4uY2FsbChlLHQsZSkhPT1yfSk6bi5ub2RlVHlwZT9TLmdyZXAoZSxmdW5jdGlvbihlKXtyZXR1cm4gZT09PW4hPT1yfSk6InN0cmluZyIhPXR5cGVvZiBuP1MuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybi0xPGkuY2FsbChuLGUpIT09cn0pOlMuZmlsdGVyKG4sZSxyKX1TLmZpbHRlcj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dFswXTtyZXR1cm4gbiYmKGU9Ijpub3QoIitlKyIpIiksMT09PXQubGVuZ3RoJiYxPT09ci5ub2RlVHlwZT9TLmZpbmQubWF0Y2hlc1NlbGVjdG9yKHIsZSk/W3JdOltdOlMuZmluZC5tYXRjaGVzKGUsUy5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfSkpfSxTLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihlKXt2YXIgdCxuLHI9dGhpcy5sZW5ndGgsaT10aGlzO2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gdGhpcy5wdXNoU3RhY2soUyhlKS5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodD0wO3Q8cjt0KyspaWYoUy5jb250YWlucyhpW3RdLHRoaXMpKXJldHVybiEwfSkpO2ZvcihuPXRoaXMucHVzaFN0YWNrKFtdKSx0PTA7dDxyO3QrKylTLmZpbmQoZSxpW3RdLG4pO3JldHVybiAxPHI/Uy51bmlxdWVTb3J0KG4pOm59LGZpbHRlcjpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soaih0aGlzLGV8fFtdLCEwKSl9LGlzOmZ1bmN0aW9uKGUpe3JldHVybiEhaih0aGlzLCJzdHJpbmciPT10eXBlb2YgZSYmay50ZXN0KGUpP1MoZSk6ZXx8W10sITEpLmxlbmd0aH19KTt2YXIgRCxxPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KFMuZm4uaW5pdD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaTtpZighZSlyZXR1cm4gdGhpcztpZihuPW58fEQsInN0cmluZyI9PXR5cGVvZiBlKXtpZighKHI9IjwiPT09ZVswXSYmIj4iPT09ZVtlLmxlbmd0aC0xXSYmMzw9ZS5sZW5ndGg/W251bGwsZSxudWxsXTpxLmV4ZWMoZSkpfHwhclsxXSYmdClyZXR1cm4hdHx8dC5qcXVlcnk/KHR8fG4pLmZpbmQoZSk6dGhpcy5jb25zdHJ1Y3Rvcih0KS5maW5kKGUpO2lmKHJbMV0pe2lmKHQ9dCBpbnN0YW5jZW9mIFM/dFswXTp0LFMubWVyZ2UodGhpcyxTLnBhcnNlSFRNTChyWzFdLHQmJnQubm9kZVR5cGU/dC5vd25lckRvY3VtZW50fHx0OkUsITApKSxOLnRlc3QoclsxXSkmJlMuaXNQbGFpbk9iamVjdCh0KSlmb3IociBpbiB0KW0odGhpc1tyXSk/dGhpc1tyXSh0W3JdKTp0aGlzLmF0dHIocix0W3JdKTtyZXR1cm4gdGhpc31yZXR1cm4oaT1FLmdldEVsZW1lbnRCeUlkKHJbMl0pKSYmKHRoaXNbMF09aSx0aGlzLmxlbmd0aD0xKSx0aGlzfXJldHVybiBlLm5vZGVUeXBlPyh0aGlzWzBdPWUsdGhpcy5sZW5ndGg9MSx0aGlzKTptKGUpP3ZvaWQgMCE9PW4ucmVhZHk/bi5yZWFkeShlKTplKFMpOlMubWFrZUFycmF5KGUsdGhpcyl9KS5wcm90b3R5cGU9Uy5mbixEPVMoRSk7dmFyIEw9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sSD17Y2hpbGRyZW46ITAsY29udGVudHM6ITAsbmV4dDohMCxwcmV2OiEwfTtmdW5jdGlvbiBPKGUsdCl7d2hpbGUoKGU9ZVt0XSkmJjEhPT1lLm5vZGVUeXBlKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7aGFzOmZ1bmN0aW9uKGUpe3ZhciB0PVMoZSx0aGlzKSxuPXQubGVuZ3RoO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8bjtlKyspaWYoUy5jb250YWlucyh0aGlzLHRbZV0pKXJldHVybiEwfSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTAsaT10aGlzLmxlbmd0aCxvPVtdLGE9InN0cmluZyIhPXR5cGVvZiBlJiZTKGUpO2lmKCFrLnRlc3QoZSkpZm9yKDtyPGk7cisrKWZvcihuPXRoaXNbcl07biYmbiE9PXQ7bj1uLnBhcmVudE5vZGUpaWYobi5ub2RlVHlwZTwxMSYmKGE/LTE8YS5pbmRleChuKToxPT09bi5ub2RlVHlwZSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihuLGUpKSl7by5wdXNoKG4pO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPG8ubGVuZ3RoP1MudW5pcXVlU29ydChvKTpvKX0saW5kZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGU/InN0cmluZyI9PXR5cGVvZiBlP2kuY2FsbChTKGUpLHRoaXNbMF0pOmkuY2FsbCh0aGlzLGUuanF1ZXJ5P2VbMF06ZSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy51bmlxdWVTb3J0KFMubWVyZ2UodGhpcy5nZXQoKSxTKGUsdCkpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfX0pLFMuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGUpe3ZhciB0PWUucGFyZW50Tm9kZTtyZXR1cm4gdCYmMTEhPT10Lm5vZGVUeXBlP3Q6bnVsbH0scGFyZW50czpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgoZSwicGFyZW50Tm9kZSIsbil9LG5leHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIE8oZSwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihlKXtyZXR1cm4gTyhlLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihlKXtyZXR1cm4gaChlLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKGUsIm5leHRTaWJsaW5nIixuKX0scHJldlVudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaChlLCJwcmV2aW91c1NpYmxpbmciLG4pfSxzaWJsaW5nczpmdW5jdGlvbihlKXtyZXR1cm4gVCgoZS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxlKX0sY2hpbGRyZW46ZnVuY3Rpb24oZSl7cmV0dXJuIFQoZS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWUuY29udGVudERvY3VtZW50JiZyKGUuY29udGVudERvY3VtZW50KT9lLmNvbnRlbnREb2N1bWVudDooQShlLCJ0ZW1wbGF0ZSIpJiYoZT1lLmNvbnRlbnR8fGUpLFMubWVyZ2UoW10sZS5jaGlsZE5vZGVzKSl9fSxmdW5jdGlvbihyLGkpe1MuZm5bcl09ZnVuY3Rpb24oZSx0KXt2YXIgbj1TLm1hcCh0aGlzLGksZSk7cmV0dXJuIlVudGlsIiE9PXIuc2xpY2UoLTUpJiYodD1lKSx0JiYic3RyaW5nIj09dHlwZW9mIHQmJihuPVMuZmlsdGVyKHQsbikpLDE8dGhpcy5sZW5ndGgmJihIW3JdfHxTLnVuaXF1ZVNvcnQobiksTC50ZXN0KHIpJiZuLnJldmVyc2UoKSksdGhpcy5wdXNoU3RhY2sobil9fSk7dmFyIFA9L1teXHgyMFx0XHJcblxmXSsvZztmdW5jdGlvbiBSKGUpe3JldHVybiBlfWZ1bmN0aW9uIE0oZSl7dGhyb3cgZX1mdW5jdGlvbiBJKGUsdCxuLHIpe3ZhciBpO3RyeXtlJiZtKGk9ZS5wcm9taXNlKT9pLmNhbGwoZSkuZG9uZSh0KS5mYWlsKG4pOmUmJm0oaT1lLnRoZW4pP2kuY2FsbChlLHQsbik6dC5hcHBseSh2b2lkIDAsW2VdLnNsaWNlKHIpKX1jYXRjaChlKXtuLmFwcGx5KHZvaWQgMCxbZV0pfX1TLkNhbGxiYWNrcz1mdW5jdGlvbihyKXt2YXIgZSxuO3I9InN0cmluZyI9PXR5cGVvZiByPyhlPXIsbj17fSxTLmVhY2goZS5tYXRjaChQKXx8W10sZnVuY3Rpb24oZSx0KXtuW3RdPSEwfSksbik6Uy5leHRlbmQoe30scik7dmFyIGksdCxvLGEscz1bXSx1PVtdLGw9LTEsYz1mdW5jdGlvbigpe2ZvcihhPWF8fHIub25jZSxvPWk9ITA7dS5sZW5ndGg7bD0tMSl7dD11LnNoaWZ0KCk7d2hpbGUoKytsPHMubGVuZ3RoKSExPT09c1tsXS5hcHBseSh0WzBdLHRbMV0pJiZyLnN0b3BPbkZhbHNlJiYobD1zLmxlbmd0aCx0PSExKX1yLm1lbW9yeXx8KHQ9ITEpLGk9ITEsYSYmKHM9dD9bXToiIil9LGY9e2FkZDpmdW5jdGlvbigpe3JldHVybiBzJiYodCYmIWkmJihsPXMubGVuZ3RoLTEsdS5wdXNoKHQpKSxmdW5jdGlvbiBuKGUpe1MuZWFjaChlLGZ1bmN0aW9uKGUsdCl7bSh0KT9yLnVuaXF1ZSYmZi5oYXModCl8fHMucHVzaCh0KTp0JiZ0Lmxlbmd0aCYmInN0cmluZyIhPT13KHQpJiZuKHQpfSl9KGFyZ3VtZW50cyksdCYmIWkmJmMoKSksdGhpc30scmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIFMuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oZSx0KXt2YXIgbjt3aGlsZSgtMTwobj1TLmluQXJyYXkodCxzLG4pKSlzLnNwbGljZShuLDEpLG48PWwmJmwtLX0pLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4gZT8tMTxTLmluQXJyYXkoZSxzKTowPHMubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBzJiYocz1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBhPXU9W10scz10PSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXN9LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gYT11PVtdLHR8fGl8fChzPXQ9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhYX0sZmlyZVdpdGg6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXx8KHQ9W2UsKHQ9dHx8W10pLnNsaWNlP3Quc2xpY2UoKTp0XSx1LnB1c2godCksaXx8YygpKSx0aGlzfSxmaXJlOmZ1bmN0aW9uKCl7cmV0dXJuIGYuZmlyZVdpdGgodGhpcyxhcmd1bWVudHMpLHRoaXN9LGZpcmVkOmZ1bmN0aW9uKCl7cmV0dXJuISFvfX07cmV0dXJuIGZ9LFMuZXh0ZW5kKHtEZWZlcnJlZDpmdW5jdGlvbihlKXt2YXIgbz1bWyJub3RpZnkiLCJwcm9ncmVzcyIsUy5DYWxsYmFja3MoIm1lbW9yeSIpLFMuQ2FsbGJhY2tzKCJtZW1vcnkiKSwyXSxbInJlc29sdmUiLCJkb25lIixTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwwLCJyZXNvbHZlZCJdLFsicmVqZWN0IiwiZmFpbCIsUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksUy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMSwicmVqZWN0ZWQiXV0saT0icGVuZGluZyIsYT17c3RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gaX0sYWx3YXlzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuZG9uZShhcmd1bWVudHMpLmZhaWwoYXJndW1lbnRzKSx0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGUpe3JldHVybiBhLnRoZW4obnVsbCxlKX0scGlwZTpmdW5jdGlvbigpe3ZhciBpPWFyZ3VtZW50cztyZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihyKXtTLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBuPW0oaVt0WzRdXSkmJmlbdFs0XV07c1t0WzFdXShmdW5jdGlvbigpe3ZhciBlPW4mJm4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2UmJm0oZS5wcm9taXNlKT9lLnByb21pc2UoKS5wcm9ncmVzcyhyLm5vdGlmeSkuZG9uZShyLnJlc29sdmUpLmZhaWwoci5yZWplY3QpOnJbdFswXSsiV2l0aCJdKHRoaXMsbj9bZV06YXJndW1lbnRzKX0pfSksaT1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKHQsbixyKXt2YXIgdT0wO2Z1bmN0aW9uIGwoaSxvLGEscyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49dGhpcyxyPWFyZ3VtZW50cyxlPWZ1bmN0aW9uKCl7dmFyIGUsdDtpZighKGk8dSkpe2lmKChlPWEuYXBwbHkobixyKSk9PT1vLnByb21pc2UoKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGVuYWJsZSBzZWxmLXJlc29sdXRpb24iKTt0PWUmJigib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlKSYmZS50aGVuLG0odCk/cz90LmNhbGwoZSxsKHUsbyxSLHMpLGwodSxvLE0scykpOih1KyssdC5jYWxsKGUsbCh1LG8sUixzKSxsKHUsbyxNLHMpLGwodSxvLFIsby5ub3RpZnlXaXRoKSkpOihhIT09UiYmKG49dm9pZCAwLHI9W2VdKSwoc3x8by5yZXNvbHZlV2l0aCkobixyKSl9fSx0PXM/ZTpmdW5jdGlvbigpe3RyeXtlKCl9Y2F0Y2goZSl7Uy5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2soZSx0LnN0YWNrVHJhY2UpLHU8PWkrMSYmKGEhPT1NJiYobj12b2lkIDAscj1bZV0pLG8ucmVqZWN0V2l0aChuLHIpKX19O2k/dCgpOihTLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKHQuc3RhY2tUcmFjZT1TLkRlZmVycmVkLmdldFN0YWNrSG9vaygpKSxDLnNldFRpbWVvdXQodCkpfX1yZXR1cm4gUy5EZWZlcnJlZChmdW5jdGlvbihlKXtvWzBdWzNdLmFkZChsKDAsZSxtKHIpP3I6UixlLm5vdGlmeVdpdGgpKSxvWzFdWzNdLmFkZChsKDAsZSxtKHQpP3Q6UikpLG9bMl1bM10uYWRkKGwoMCxlLG0obik/bjpNKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPWU/Uy5leHRlbmQoZSxhKTphfX0scz17fTtyZXR1cm4gUy5lYWNoKG8sZnVuY3Rpb24oZSx0KXt2YXIgbj10WzJdLHI9dFs1XTthW3RbMV1dPW4uYWRkLHImJm4uYWRkKGZ1bmN0aW9uKCl7aT1yfSxvWzMtZV1bMl0uZGlzYWJsZSxvWzMtZV1bM10uZGlzYWJsZSxvWzBdWzJdLmxvY2ssb1swXVszXS5sb2NrKSxuLmFkZCh0WzNdLmZpcmUpLHNbdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gc1t0WzBdKyJXaXRoIl0odGhpcz09PXM/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfSxzW3RbMF0rIldpdGgiXT1uLmZpcmVXaXRofSksYS5wcm9taXNlKHMpLGUmJmUuY2FsbChzLHMpLHN9LHdoZW46ZnVuY3Rpb24oZSl7dmFyIG49YXJndW1lbnRzLmxlbmd0aCx0PW4scj1BcnJheSh0KSxpPXMuY2FsbChhcmd1bWVudHMpLG89Uy5EZWZlcnJlZCgpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JbdF09dGhpcyxpW3RdPTE8YXJndW1lbnRzLmxlbmd0aD9zLmNhbGwoYXJndW1lbnRzKTplLC0tbnx8by5yZXNvbHZlV2l0aChyLGkpfX07aWYobjw9MSYmKEkoZSxvLmRvbmUoYSh0KSkucmVzb2x2ZSxvLnJlamVjdCwhbiksInBlbmRpbmciPT09by5zdGF0ZSgpfHxtKGlbdF0mJmlbdF0udGhlbikpKXJldHVybiBvLnRoZW4oKTt3aGlsZSh0LS0pSShpW3RdLGEodCksby5yZWplY3QpO3JldHVybiBvLnByb21pc2UoKX19KTt2YXIgVz0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oZSx0KXtDLmNvbnNvbGUmJkMuY29uc29sZS53YXJuJiZlJiZXLnRlc3QoZS5uYW1lKSYmQy5jb25zb2xlLndhcm4oImpRdWVyeS5EZWZlcnJlZCBleGNlcHRpb246ICIrZS5tZXNzYWdlLGUuc3RhY2ssdCl9LFMucmVhZHlFeGNlcHRpb249ZnVuY3Rpb24oZSl7Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dGhyb3cgZX0pfTt2YXIgRj1TLkRlZmVycmVkKCk7ZnVuY3Rpb24gQigpe0UucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiksQy5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixCKSxTLnJlYWR5KCl9Uy5mbi5yZWFkeT1mdW5jdGlvbihlKXtyZXR1cm4gRi50aGVuKGUpWyJjYXRjaCJdKGZ1bmN0aW9uKGUpe1MucmVhZHlFeGNlcHRpb24oZSl9KSx0aGlzfSxTLmV4dGVuZCh7aXNSZWFkeTohMSxyZWFkeVdhaXQ6MSxyZWFkeTpmdW5jdGlvbihlKXsoITA9PT1lPy0tUy5yZWFkeVdhaXQ6Uy5pc1JlYWR5KXx8KFMuaXNSZWFkeT0hMCkhPT1lJiYwPC0tUy5yZWFkeVdhaXR8fEYucmVzb2x2ZVdpdGgoRSxbU10pfX0pLFMucmVhZHkudGhlbj1GLnRoZW4sImNvbXBsZXRlIj09PUUucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09RS5yZWFkeVN0YXRlJiYhRS5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw/Qy5zZXRUaW1lb3V0KFMucmVhZHkpOihFLmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLEIpLEMuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsQikpO3ZhciAkPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEpe3ZhciBzPTAsdT1lLmxlbmd0aCxsPW51bGw9PW47aWYoIm9iamVjdCI9PT13KG4pKWZvcihzIGluIGk9ITAsbikkKGUsdCxzLG5bc10sITAsbyxhKTtlbHNlIGlmKHZvaWQgMCE9PXImJihpPSEwLG0ocil8fChhPSEwKSxsJiYoYT8odC5jYWxsKGUsciksdD1udWxsKToobD10LHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBsLmNhbGwoUyhlKSxuKX0pKSx0KSlmb3IoO3M8dTtzKyspdChlW3NdLG4sYT9yOnIuY2FsbChlW3NdLHMsdChlW3NdLG4pKSk7cmV0dXJuIGk/ZTpsP3QuY2FsbChlKTp1P3QoZVswXSxuKTpvfSxfPS9eLW1zLS8sej0vLShbYS16XSkvZztmdW5jdGlvbiBVKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX1mdW5jdGlvbiBYKGUpe3JldHVybiBlLnJlcGxhY2UoXywibXMtIikucmVwbGFjZSh6LFUpfXZhciBWPWZ1bmN0aW9uKGUpe3JldHVybiAxPT09ZS5ub2RlVHlwZXx8OT09PWUubm9kZVR5cGV8fCErZS5ub2RlVHlwZX07ZnVuY3Rpb24gRygpe3RoaXMuZXhwYW5kbz1TLmV4cGFuZG8rRy51aWQrK31HLnVpZD0xLEcucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHR8fCh0PXt9LFYoZSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT10Ok9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHRoaXMuZXhwYW5kbyx7dmFsdWU6dCxjb25maWd1cmFibGU6ITB9KSkpLHR9LHNldDpmdW5jdGlvbihlLHQsbil7dmFyIHIsaT10aGlzLmNhY2hlKGUpO2lmKCJzdHJpbmciPT10eXBlb2YgdClpW1godCldPW47ZWxzZSBmb3IociBpbiB0KWlbWChyKV09dFtyXTtyZXR1cm4gaX0sZ2V0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5jYWNoZShlKTplW3RoaXMuZXhwYW5kb10mJmVbdGhpcy5leHBhbmRvXVtYKHQpXX0sYWNjZXNzOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdm9pZCAwPT09dHx8dCYmInN0cmluZyI9PXR5cGVvZiB0JiZ2b2lkIDA9PT1uP3RoaXMuZ2V0KGUsdCk6KHRoaXMuc2V0KGUsdCxuKSx2b2lkIDAhPT1uP246dCl9LHJlbW92ZTpmdW5jdGlvbihlLHQpe3ZhciBuLHI9ZVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PXIpe2lmKHZvaWQgMCE9PXQpe249KHQ9QXJyYXkuaXNBcnJheSh0KT90Lm1hcChYKToodD1YKHQpKWluIHI/W3RdOnQubWF0Y2goUCl8fFtdKS5sZW5ndGg7d2hpbGUobi0tKWRlbGV0ZSByW3Rbbl1dfSh2b2lkIDA9PT10fHxTLmlzRW1wdHlPYmplY3QocikpJiYoZS5ub2RlVHlwZT9lW3RoaXMuZXhwYW5kb109dm9pZCAwOmRlbGV0ZSBlW3RoaXMuZXhwYW5kb10pfX0saGFzRGF0YTpmdW5jdGlvbihlKXt2YXIgdD1lW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PXQmJiFTLmlzRW1wdHlPYmplY3QodCl9fTt2YXIgWT1uZXcgRyxRPW5ldyBHLEo9L14oPzpce1tcd1xXXSpcfXxcW1tcd1xXXSpcXSkkLyxLPS9bQS1aXS9nO2Z1bmN0aW9uIFooZSx0LG4pe3ZhciByLGk7aWYodm9pZCAwPT09biYmMT09PWUubm9kZVR5cGUpaWYocj0iZGF0YS0iK3QucmVwbGFjZShLLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2Yobj1lLmdldEF0dHJpYnV0ZShyKSkpe3RyeXtuPSJ0cnVlIj09PShpPW4pfHwiZmFsc2UiIT09aSYmKCJudWxsIj09PWk/bnVsbDppPT09K2krIiI/K2k6Si50ZXN0KGkpP0pTT04ucGFyc2UoaSk6aSl9Y2F0Y2goZSl7fVEuc2V0KGUsdCxuKX1lbHNlIG49dm9pZCAwO3JldHVybiBufVMuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiBRLmhhc0RhdGEoZSl8fFkuaGFzRGF0YShlKX0sZGF0YTpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFEuYWNjZXNzKGUsdCxuKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1EucmVtb3ZlKGUsdCl9LF9kYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gWS5hY2Nlc3MoZSx0LG4pfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihlLHQpe1kucmVtb3ZlKGUsdCl9fSksUy5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24obixlKXt2YXIgdCxyLGksbz10aGlzWzBdLGE9byYmby5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PW4pe2lmKHRoaXMubGVuZ3RoJiYoaT1RLmdldChvKSwxPT09by5ub2RlVHlwZSYmIVkuZ2V0KG8sImhhc0RhdGFBdHRycyIpKSl7dD1hLmxlbmd0aDt3aGlsZSh0LS0pYVt0XSYmMD09PShyPWFbdF0ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKHI9WChyLnNsaWNlKDUpKSxaKG8scixpW3JdKSk7WS5zZXQobywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGl9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBuP3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbil9KTokKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ7aWYobyYmdm9pZCAwPT09ZSlyZXR1cm4gdm9pZCAwIT09KHQ9US5nZXQobyxuKSk/dDp2b2lkIDAhPT0odD1aKG8sbikpP3Q6dm9pZCAwO3RoaXMuZWFjaChmdW5jdGlvbigpe1Euc2V0KHRoaXMsbixlKX0pfSxudWxsLGUsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtRLnJlbW92ZSh0aGlzLGUpfSl9fSksUy5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZihlKXJldHVybiB0PSh0fHwiZngiKSsicXVldWUiLHI9WS5nZXQoZSx0KSxuJiYoIXJ8fEFycmF5LmlzQXJyYXkobik/cj1ZLmFjY2VzcyhlLHQsUy5tYWtlQXJyYXkobikpOnIucHVzaChuKSkscnx8W119LGRlcXVldWU6ZnVuY3Rpb24oZSx0KXt0PXR8fCJmeCI7dmFyIG49Uy5xdWV1ZShlLHQpLHI9bi5sZW5ndGgsaT1uLnNoaWZ0KCksbz1TLl9xdWV1ZUhvb2tzKGUsdCk7ImlucHJvZ3Jlc3MiPT09aSYmKGk9bi5zaGlmdCgpLHItLSksaSYmKCJmeCI9PT10JiZuLnVuc2hpZnQoImlucHJvZ3Jlc3MiKSxkZWxldGUgby5zdG9wLGkuY2FsbChlLGZ1bmN0aW9uKCl7Uy5kZXF1ZXVlKGUsdCl9LG8pKSwhciYmbyYmby5lbXB0eS5maXJlKCl9LF9xdWV1ZUhvb2tzOmZ1bmN0aW9uKGUsdCl7dmFyIG49dCsicXVldWVIb29rcyI7cmV0dXJuIFkuZ2V0KGUsbil8fFkuYWNjZXNzKGUsbix7ZW1wdHk6Uy5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IikuYWRkKGZ1bmN0aW9uKCl7WS5yZW1vdmUoZSxbdCsicXVldWUiLG5dKX0pfSl9fSksUy5mbi5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKHQsbil7dmFyIGU9MjtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihuPXQsdD0iZngiLGUtLSksYXJndW1lbnRzLmxlbmd0aDxlP1MucXVldWUodGhpc1swXSx0KTp2b2lkIDA9PT1uP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9Uy5xdWV1ZSh0aGlzLHQsbik7Uy5fcXVldWVIb29rcyh0aGlzLHQpLCJmeCI9PT10JiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZTLmRlcXVldWUodGhpcyx0KX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLmRlcXVldWUodGhpcyxlKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnF1ZXVlKGV8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj0xLGk9Uy5EZWZlcnJlZCgpLG89dGhpcyxhPXRoaXMubGVuZ3RoLHM9ZnVuY3Rpb24oKXstLXJ8fGkucmVzb2x2ZVdpdGgobyxbb10pfTsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLGU9ZXx8ImZ4Ijt3aGlsZShhLS0pKG49WS5nZXQob1thXSxlKyJxdWV1ZUhvb2tzIikpJiZuLmVtcHR5JiYocisrLG4uZW1wdHkuYWRkKHMpKTtyZXR1cm4gcygpLGkucHJvbWlzZSh0KX19KTt2YXIgZWU9L1srLV0/KD86XGQqXC58KVxkKyg/OltlRV1bKy1dP1xkK3wpLy5zb3VyY2UsdGU9bmV3IFJlZ0V4cCgiXig/OihbKy1dKT18KSgiK2VlKyIpKFthLXolXSopJCIsImkiKSxuZT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLHJlPUUuZG9jdW1lbnRFbGVtZW50LGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKX0sb2U9e2NvbXBvc2VkOiEwfTtyZS5nZXRSb290Tm9kZSYmKGllPWZ1bmN0aW9uKGUpe3JldHVybiBTLmNvbnRhaW5zKGUub3duZXJEb2N1bWVudCxlKXx8ZS5nZXRSb290Tm9kZShvZSk9PT1lLm93bmVyRG9jdW1lbnR9KTt2YXIgYWU9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ibm9uZSI9PT0oZT10fHxlKS5zdHlsZS5kaXNwbGF5fHwiIj09PWUuc3R5bGUuZGlzcGxheSYmaWUoZSkmJiJub25lIj09PVMuY3NzKGUsImRpc3BsYXkiKX07ZnVuY3Rpb24gc2UoZSx0LG4scil7dmFyIGksbyxhPTIwLHM9cj9mdW5jdGlvbigpe3JldHVybiByLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBTLmNzcyhlLHQsIiIpfSx1PXMoKSxsPW4mJm5bM118fChTLmNzc051bWJlclt0XT8iIjoicHgiKSxjPWUubm9kZVR5cGUmJihTLmNzc051bWJlclt0XXx8InB4IiE9PWwmJit1KSYmdGUuZXhlYyhTLmNzcyhlLHQpKTtpZihjJiZjWzNdIT09bCl7dS89MixsPWx8fGNbM10sYz0rdXx8MTt3aGlsZShhLS0pUy5zdHlsZShlLHQsYytsKSwoMS1vKSooMS0obz1zKCkvdXx8LjUpKTw9MCYmKGE9MCksYy89bztjKj0yLFMuc3R5bGUoZSx0LGMrbCksbj1ufHxbXX1yZXR1cm4gbiYmKGM9K2N8fCt1fHwwLGk9blsxXT9jKyhuWzFdKzEpKm5bMl06K25bMl0sciYmKHIudW5pdD1sLHIuc3RhcnQ9YyxyLmVuZD1pKSksaX12YXIgdWU9e307ZnVuY3Rpb24gbGUoZSx0KXtmb3IodmFyIG4scixpLG8sYSxzLHUsbD1bXSxjPTAsZj1lLmxlbmd0aDtjPGY7YysrKShyPWVbY10pLnN0eWxlJiYobj1yLnN0eWxlLmRpc3BsYXksdD8oIm5vbmUiPT09biYmKGxbY109WS5nZXQociwiZGlzcGxheSIpfHxudWxsLGxbY118fChyLnN0eWxlLmRpc3BsYXk9IiIpKSwiIj09PXIuc3R5bGUuZGlzcGxheSYmYWUocikmJihsW2NdPSh1PWE9bz12b2lkIDAsYT0oaT1yKS5vd25lckRvY3VtZW50LHM9aS5ub2RlTmFtZSwodT11ZVtzXSl8fChvPWEuYm9keS5hcHBlbmRDaGlsZChhLmNyZWF0ZUVsZW1lbnQocykpLHU9Uy5jc3MobywiZGlzcGxheSIpLG8ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvKSwibm9uZSI9PT11JiYodT0iYmxvY2siKSx1ZVtzXT11KSkpKToibm9uZSIhPT1uJiYobFtjXT0ibm9uZSIsWS5zZXQociwiZGlzcGxheSIsbikpKTtmb3IoYz0wO2M8ZjtjKyspbnVsbCE9bFtjXSYmKGVbY10uc3R5bGUuZGlzcGxheT1sW2NdKTtyZXR1cm4gZX1TLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiBsZSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGUpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGU/ZT90aGlzLnNob3coKTp0aGlzLmhpZGUoKTp0aGlzLmVhY2goZnVuY3Rpb24oKXthZSh0aGlzKT9TKHRoaXMpLnNob3coKTpTKHRoaXMpLmhpZGUoKX0pfX0pO3ZhciBjZSxmZSxwZT0vXig/OmNoZWNrYm94fHJhZGlvKSQvaSxkZT0vPChbYS16XVteXC9cMD5ceDIwXHRcclxuXGZdKikvaSxoZT0vXiR8Xm1vZHVsZSR8XC8oPzpqYXZhfGVjbWEpc2NyaXB0L2k7Y2U9RS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuYXBwZW5kQ2hpbGQoRS5jcmVhdGVFbGVtZW50KCJkaXYiKSksKGZlPUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwicmFkaW8iKSxmZS5zZXRBdHRyaWJ1dGUoImNoZWNrZWQiLCJjaGVja2VkIiksZmUuc2V0QXR0cmlidXRlKCJuYW1lIiwidCIpLGNlLmFwcGVuZENoaWxkKGZlKSx5LmNoZWNrQ2xvbmU9Y2UuY2xvbmVOb2RlKCEwKS5jbG9uZU5vZGUoITApLmxhc3RDaGlsZC5jaGVja2VkLGNlLmlubmVySFRNTD0iPHRleHRhcmVhPng8L3RleHRhcmVhPiIseS5ub0Nsb25lQ2hlY2tlZD0hIWNlLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZSxjZS5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+Iix5Lm9wdGlvbj0hIWNlLmxhc3RDaGlsZDt2YXIgZ2U9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtmdW5jdGlvbiB2ZShlLHQpe3ZhciBuO3JldHVybiBuPSJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRFbGVtZW50c0J5VGFnTmFtZT9lLmdldEVsZW1lbnRzQnlUYWdOYW1lKHR8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBlLnF1ZXJ5U2VsZWN0b3JBbGw/ZS5xdWVyeVNlbGVjdG9yQWxsKHR8fCIqIik6W10sdm9pZCAwPT09dHx8dCYmQShlLHQpP1MubWVyZ2UoW2VdLG4pOm59ZnVuY3Rpb24geWUoZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspWS5zZXQoZVtuXSwiZ2xvYmFsRXZhbCIsIXR8fFkuZ2V0KHRbbl0sImdsb2JhbEV2YWwiKSl9Z2UudGJvZHk9Z2UudGZvb3Q9Z2UuY29sZ3JvdXA9Z2UuY2FwdGlvbj1nZS50aGVhZCxnZS50aD1nZS50ZCx5Lm9wdGlvbnx8KGdlLm9wdGdyb3VwPWdlLm9wdGlvbj1bMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdKTt2YXIgbWU9Lzx8JiM/XHcrOy87ZnVuY3Rpb24geGUoZSx0LG4scixpKXtmb3IodmFyIG8sYSxzLHUsbCxjLGY9dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscD1bXSxkPTAsaD1lLmxlbmd0aDtkPGg7ZCsrKWlmKChvPWVbZF0pfHwwPT09bylpZigib2JqZWN0Ij09PXcobykpUy5tZXJnZShwLG8ubm9kZVR5cGU/W29dOm8pO2Vsc2UgaWYobWUudGVzdChvKSl7YT1hfHxmLmFwcGVuZENoaWxkKHQuY3JlYXRlRWxlbWVudCgiZGl2IikpLHM9KGRlLmV4ZWMobyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCksdT1nZVtzXXx8Z2UuX2RlZmF1bHQsYS5pbm5lckhUTUw9dVsxXStTLmh0bWxQcmVmaWx0ZXIobykrdVsyXSxjPXVbMF07d2hpbGUoYy0tKWE9YS5sYXN0Q2hpbGQ7Uy5tZXJnZShwLGEuY2hpbGROb2RlcyksKGE9Zi5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHAucHVzaCh0LmNyZWF0ZVRleHROb2RlKG8pKTtmLnRleHRDb250ZW50PSIiLGQ9MDt3aGlsZShvPXBbZCsrXSlpZihyJiYtMTxTLmluQXJyYXkobyxyKSlpJiZpLnB1c2gobyk7ZWxzZSBpZihsPWllKG8pLGE9dmUoZi5hcHBlbmRDaGlsZChvKSwic2NyaXB0IiksbCYmeWUoYSksbil7Yz0wO3doaWxlKG89YVtjKytdKWhlLnRlc3Qoby50eXBlfHwiIikmJm4ucHVzaChvKX1yZXR1cm4gZn12YXIgYmU9L14oW14uXSopKD86XC4oLispfCkvO2Z1bmN0aW9uIHdlKCl7cmV0dXJuITB9ZnVuY3Rpb24gVGUoKXtyZXR1cm4hMX1mdW5jdGlvbiBDZShlLHQpe3JldHVybiBlPT09ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIEUuYWN0aXZlRWxlbWVudH1jYXRjaChlKXt9fSgpPT0oImZvY3VzIj09PXQpfWZ1bmN0aW9uIEVlKGUsdCxuLHIsaSxvKXt2YXIgYSxzO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHMgaW4ic3RyaW5nIiE9dHlwZW9mIG4mJihyPXJ8fG4sbj12b2lkIDApLHQpRWUoZSxzLG4scix0W3NdLG8pO3JldHVybiBlfWlmKG51bGw9PXImJm51bGw9PWk/KGk9bixyPW49dm9pZCAwKTpudWxsPT1pJiYoInN0cmluZyI9PXR5cGVvZiBuPyhpPXIscj12b2lkIDApOihpPXIscj1uLG49dm9pZCAwKSksITE9PT1pKWk9VGU7ZWxzZSBpZighaSlyZXR1cm4gZTtyZXR1cm4gMT09PW8mJihhPWksKGk9ZnVuY3Rpb24oZSl7cmV0dXJuIFMoKS5vZmYoZSksYS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWEuZ3VpZHx8KGEuZ3VpZD1TLmd1aWQrKykpLGUuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQuYWRkKHRoaXMsdCxpLHIsbil9KX1mdW5jdGlvbiBTZShlLGksbyl7bz8oWS5zZXQoZSxpLCExKSxTLmV2ZW50LmFkZChlLGkse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj1ZLmdldCh0aGlzLGkpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbaV0pe2lmKHIubGVuZ3RoKShTLmV2ZW50LnNwZWNpYWxbaV18fHt9KS5kZWxlZ2F0ZVR5cGUmJmUuc3RvcFByb3BhZ2F0aW9uKCk7ZWxzZSBpZihyPXMuY2FsbChhcmd1bWVudHMpLFkuc2V0KHRoaXMsaSxyKSx0PW8odGhpcyxpKSx0aGlzW2ldKCksciE9PShuPVkuZ2V0KHRoaXMsaSkpfHx0P1kuc2V0KHRoaXMsaSwhMSk6bj17fSxyIT09bilyZXR1cm4gZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnByZXZlbnREZWZhdWx0KCksbiYmbi52YWx1ZX1lbHNlIHIubGVuZ3RoJiYoWS5zZXQodGhpcyxpLHt2YWx1ZTpTLmV2ZW50LnRyaWdnZXIoUy5leHRlbmQoclswXSxTLkV2ZW50LnByb3RvdHlwZSksci5zbGljZSgxKSx0aGlzKX0pLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfX0pKTp2b2lkIDA9PT1ZLmdldChlLGkpJiZTLmV2ZW50LmFkZChlLGksd2UpfVMuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24odCxlLG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5nZXQodCk7aWYoVih0KSl7bi5oYW5kbGVyJiYobj0obz1uKS5oYW5kbGVyLGk9by5zZWxlY3RvciksaSYmUy5maW5kLm1hdGNoZXNTZWxlY3RvcihyZSxpKSxuLmd1aWR8fChuLmd1aWQ9Uy5ndWlkKyspLCh1PXYuZXZlbnRzKXx8KHU9di5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGE9di5oYW5kbGUpfHwoYT12LmhhbmRsZT1mdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFMmJlMuZXZlbnQudHJpZ2dlcmVkIT09ZS50eXBlP1MuZXZlbnQuZGlzcGF0Y2guYXBwbHkodCxhcmd1bWVudHMpOnZvaWQgMH0pLGw9KGU9KGV8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlkPWc9KHM9YmUuZXhlYyhlW2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkJiYoZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGQ9KGk/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGQsZj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LGM9Uy5leHRlbmQoe3R5cGU6ZCxvcmlnVHlwZTpnLGRhdGE6cixoYW5kbGVyOm4sZ3VpZDpuLmd1aWQsc2VsZWN0b3I6aSxuZWVkc0NvbnRleHQ6aSYmUy5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGkpLG5hbWVzcGFjZTpoLmpvaW4oIi4iKX0sbyksKHA9dVtkXSl8fCgocD11W2RdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsZi5zZXR1cCYmITEhPT1mLnNldHVwLmNhbGwodCxyLGgsYSl8fHQuYWRkRXZlbnRMaXN0ZW5lciYmdC5hZGRFdmVudExpc3RlbmVyKGQsYSkpLGYuYWRkJiYoZi5hZGQuY2FsbCh0LGMpLGMuaGFuZGxlci5ndWlkfHwoYy5oYW5kbGVyLmd1aWQ9bi5ndWlkKSksaT9wLnNwbGljZShwLmRlbGVnYXRlQ291bnQrKywwLGMpOnAucHVzaChjKSxTLmV2ZW50Lmdsb2JhbFtkXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oZSx0LG4scixpKXt2YXIgbyxhLHMsdSxsLGMsZixwLGQsaCxnLHY9WS5oYXNEYXRhKGUpJiZZLmdldChlKTtpZih2JiYodT12LmV2ZW50cykpe2w9KHQ9KHR8fCIiKS5tYXRjaChQKXx8WyIiXSkubGVuZ3RoO3doaWxlKGwtLSlpZihkPWc9KHM9YmUuZXhlYyh0W2xdKXx8W10pWzFdLGg9KHNbMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSxkKXtmPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scD11W2Q9KHI/Zi5kZWxlZ2F0ZVR5cGU6Zi5iaW5kVHlwZSl8fGRdfHxbXSxzPXNbMl0mJm5ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIiksYT1vPXAubGVuZ3RoO3doaWxlKG8tLSljPXBbb10sIWkmJmchPT1jLm9yaWdUeXBlfHxuJiZuLmd1aWQhPT1jLmd1aWR8fHMmJiFzLnRlc3QoYy5uYW1lc3BhY2UpfHxyJiZyIT09Yy5zZWxlY3RvciYmKCIqKiIhPT1yfHwhYy5zZWxlY3Rvcil8fChwLnNwbGljZShvLDEpLGMuc2VsZWN0b3ImJnAuZGVsZWdhdGVDb3VudC0tLGYucmVtb3ZlJiZmLnJlbW92ZS5jYWxsKGUsYykpO2EmJiFwLmxlbmd0aCYmKGYudGVhcmRvd24mJiExIT09Zi50ZWFyZG93bi5jYWxsKGUsaCx2LmhhbmRsZSl8fFMucmVtb3ZlRXZlbnQoZSxkLHYuaGFuZGxlKSxkZWxldGUgdVtkXSl9ZWxzZSBmb3IoZCBpbiB1KVMuZXZlbnQucmVtb3ZlKGUsZCt0W2xdLG4sciwhMCk7Uy5pc0VtcHR5T2JqZWN0KHUpJiZZLnJlbW92ZShlLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihlKXt2YXIgdCxuLHIsaSxvLGEscz1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksdT1TLmV2ZW50LmZpeChlKSxsPShZLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbdS50eXBlXXx8W10sYz1TLmV2ZW50LnNwZWNpYWxbdS50eXBlXXx8e307Zm9yKHNbMF09dSx0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylzW3RdPWFyZ3VtZW50c1t0XTtpZih1LmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWMucHJlRGlzcGF0Y2h8fCExIT09Yy5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsdSkpe2E9Uy5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsdSxsKSx0PTA7d2hpbGUoKGk9YVt0KytdKSYmIXUuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSl7dS5jdXJyZW50VGFyZ2V0PWkuZWxlbSxuPTA7d2hpbGUoKG89aS5oYW5kbGVyc1tuKytdKSYmIXUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl1LnJuYW1lc3BhY2UmJiExIT09by5uYW1lc3BhY2UmJiF1LnJuYW1lc3BhY2UudGVzdChvLm5hbWVzcGFjZSl8fCh1LmhhbmRsZU9iaj1vLHUuZGF0YT1vLmRhdGEsdm9pZCAwIT09KHI9KChTLmV2ZW50LnNwZWNpYWxbby5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fG8uaGFuZGxlcikuYXBwbHkoaS5lbGVtLHMpKSYmITE9PT0odS5yZXN1bHQ9cikmJih1LnByZXZlbnREZWZhdWx0KCksdS5zdG9wUHJvcGFnYXRpb24oKSkpfXJldHVybiBjLnBvc3REaXNwYXRjaCYmYy5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLHUpLHUucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHM9W10sdT10LmRlbGVnYXRlQ291bnQsbD1lLnRhcmdldDtpZih1JiZsLm5vZGVUeXBlJiYhKCJjbGljayI9PT1lLnR5cGUmJjE8PWUuYnV0dG9uKSlmb3IoO2whPT10aGlzO2w9bC5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1sLm5vZGVUeXBlJiYoImNsaWNrIiE9PWUudHlwZXx8ITAhPT1sLmRpc2FibGVkKSl7Zm9yKG89W10sYT17fSxuPTA7bjx1O24rKyl2b2lkIDA9PT1hW2k9KHI9dFtuXSkuc2VsZWN0b3IrIiAiXSYmKGFbaV09ci5uZWVkc0NvbnRleHQ/LTE8UyhpLHRoaXMpLmluZGV4KGwpOlMuZmluZChpLHRoaXMsbnVsbCxbbF0pLmxlbmd0aCksYVtpXSYmby5wdXNoKHIpO28ubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczpvfSl9cmV0dXJuIGw9dGhpcyx1PHQubGVuZ3RoJiZzLnB1c2goe2VsZW06bCxoYW5kbGVyczp0LnNsaWNlKHUpfSksc30sYWRkUHJvcDpmdW5jdGlvbih0LGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShTLkV2ZW50LnByb3RvdHlwZSx0LHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6bShlKT9mdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gZSh0aGlzLm9yaWdpbmFsRXZlbnQpfTpmdW5jdGlvbigpe2lmKHRoaXMub3JpZ2luYWxFdmVudClyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50W3RdfSxzZXQ6ZnVuY3Rpb24oZSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZX0pfX0pfSxmaXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbUy5leHBhbmRvXT9lOm5ldyBTLkV2ZW50KGUpfSxzcGVjaWFsOntsb2FkOntub0J1YmJsZTohMH0sY2xpY2s6e3NldHVwOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIsd2UpLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXN8fGU7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZTZSh0LCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtyZXR1cm4gcGUudGVzdCh0LnR5cGUpJiZ0LmNsaWNrJiZBKHQsImlucHV0IikmJlkuZ2V0KHQsImNsaWNrIil8fEEodCwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dm9pZCAwIT09ZS5yZXN1bHQmJmUub3JpZ2luYWxFdmVudCYmKGUub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1lLnJlc3VsdCl9fX19LFMucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oZSx0LG4pe2UucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKHQsbil9LFMuRXZlbnQ9ZnVuY3Rpb24oZSx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBTLkV2ZW50KSlyZXR1cm4gbmV3IFMuRXZlbnQoZSx0KTtlJiZlLnR5cGU/KHRoaXMub3JpZ2luYWxFdmVudD1lLHRoaXMudHlwZT1lLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9ZS5kZWZhdWx0UHJldmVudGVkfHx2b2lkIDA9PT1lLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09ZS5yZXR1cm5WYWx1ZT93ZTpUZSx0aGlzLnRhcmdldD1lLnRhcmdldCYmMz09PWUudGFyZ2V0Lm5vZGVUeXBlP2UudGFyZ2V0LnBhcmVudE5vZGU6ZS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWUuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9ZS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9ZSx0JiZTLmV4dGVuZCh0aGlzLHQpLHRoaXMudGltZVN0YW1wPWUmJmUudGltZVN0YW1wfHxEYXRlLm5vdygpLHRoaXNbUy5leHBhbmRvXT0hMH0sUy5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlMuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOlRlLGlzUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOlRlLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnByZXZlbnREZWZhdWx0KCl9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkPXdlLGUmJiF0aGlzLmlzU2ltdWxhdGVkJiZlLnN0b3BQcm9wYWdhdGlvbigpfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD13ZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSx0aGlzLnN0b3BQcm9wYWdhdGlvbigpfX0sUy5lYWNoKHthbHRLZXk6ITAsYnViYmxlczohMCxjYW5jZWxhYmxlOiEwLGNoYW5nZWRUb3VjaGVzOiEwLGN0cmxLZXk6ITAsZGV0YWlsOiEwLGV2ZW50UGhhc2U6ITAsbWV0YUtleTohMCxwYWdlWDohMCxwYWdlWTohMCxzaGlmdEtleTohMCx2aWV3OiEwLCJjaGFyIjohMCxjb2RlOiEwLGNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxTLmV2ZW50LmFkZFByb3ApLFMuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXtTLmV2ZW50LnNwZWNpYWxbZV09e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIFNlKHRoaXMsZSxDZSksITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gU2UodGhpcyxlKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZGVsZWdhdGVUeXBlOnR9fSksUy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe1MuZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOmksYmluZFR5cGU6aSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnJlbGF0ZWRUYXJnZXQscj1lLmhhbmRsZU9iajtyZXR1cm4gbiYmKG49PT10aGlzfHxTLmNvbnRhaW5zKHRoaXMsbikpfHwoZS50eXBlPXIub3JpZ1R5cGUsdD1yLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT1pKSx0fX19KSxTLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIEVlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4gRWUodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosUyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49VGUpLHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIGtlPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLEFlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLE5lPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBqZShlLHQpe3JldHVybiBBKGUsInRhYmxlIikmJkEoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLCJ0ciIpJiZTKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIERlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gcWUoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIExlKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihZLmhhc0RhdGEoZSkmJihzPVkuZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gWS5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspUy5ldmVudC5hZGQodCxpLHNbaV1bbl0pO1EuaGFzRGF0YShlKSYmKG89US5hY2Nlc3MoZSksYT1TLmV4dGVuZCh7fSxvKSxRLnNldCh0LGEpKX19ZnVuY3Rpb24gSGUobixyLGksbyl7cj1nKHIpO3ZhciBlLHQsYSxzLHUsbCxjPTAsZj1uLmxlbmd0aCxwPWYtMSxkPXJbMF0saD1tKGQpO2lmKGh8fDE8ZiYmInN0cmluZyI9PXR5cGVvZiBkJiYheS5jaGVja0Nsb25lJiZBZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksSGUodCxyLGksbyl9KTtpZihmJiYodD0oZT14ZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Uy5tYXAodmUoZSwic2NyaXB0IiksRGUpKS5sZW5ndGg7YzxmO2MrKyl1PWUsYyE9PXAmJih1PVMuY2xvbmUodSwhMCwhMCkscyYmUy5tZXJnZShhLHZlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxTLm1hcChhLHFlKSxjPTA7YzxzO2MrKyl1PWFbY10saGUudGVzdCh1LnR5cGV8fCIiKSYmIVkuYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmUy5jb250YWlucyhsLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/Uy5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJlMuX2V2YWxVcmwodS5zcmMse25vbmNlOnUubm9uY2V8fHUuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxsKTpiKHUudGV4dENvbnRlbnQucmVwbGFjZShOZSwiIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gT2UoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Uy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fFMuY2xlYW5EYXRhKHZlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZpZShyKSYmeWUodmUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Uy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPWllKGUpO2lmKCEoeS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Uy5pc1hNTERvYyhlKSkpZm9yKGE9dmUoYykscj0wLGk9KG89dmUoZSkpLmxlbmd0aDtyPGk7cisrKXM9b1tyXSx1PWFbcl0sdm9pZCAwLCJpbnB1dCI9PT0obD11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZwZS50ZXN0KHMudHlwZSk/dS5jaGVja2VkPXMuY2hlY2tlZDoiaW5wdXQiIT09bCYmInRleHRhcmVhIiE9PWx8fCh1LmRlZmF1bHRWYWx1ZT1zLmRlZmF1bHRWYWx1ZSk7aWYodClpZihuKWZvcihvPW98fHZlKGUpLGE9YXx8dmUoYykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylMZShvW3JdLGFbcl0pO2Vsc2UgTGUoZSxjKTtyZXR1cm4gMDwoYT12ZShjLCJzY3JpcHQiKSkubGVuZ3RoJiZ5ZShhLCFmJiZ2ZShlLCJzY3JpcHQiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1TLmV2ZW50LnNwZWNpYWwsbz0wO3ZvaWQgMCE9PShuPWVbb10pO28rKylpZihWKG4pKXtpZih0PW5bWS5leHBhbmRvXSl7aWYodC5ldmVudHMpZm9yKHIgaW4gdC5ldmVudHMpaVtyXT9TLmV2ZW50LnJlbW92ZShuLHIpOlMucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW1kuZXhwYW5kb109dm9pZCAwfW5bUS5leHBhbmRvXSYmKG5bUS5leHBhbmRvXT12b2lkIDApfX19KSxTLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiBPZSh0aGlzLGUsITApfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIE9lKHRoaXMsZSl9LHRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT9TLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gSGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fGplKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9amUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBIZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoUy5jbGVhbkRhdGEodmUoZSwhMSkpLGUudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBTLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIWtlLnRlc3QoZSkmJiFnZVsoZGUuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Uy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKFMuY2xlYW5EYXRhKHZlKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIEhlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtTLmluQXJyYXkodGhpcyxuKTwwJiYoUy5jbGVhbkRhdGEodmUodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxTLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLGEpe1MuZm5bZV09ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W10scj1TKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLFMocltvXSlbYV0odCksdS5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgUGU9bmV3IFJlZ0V4cCgiXigiK2VlKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksUmU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9QyksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxNZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sSWU9bmV3IFJlZ0V4cChuZS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBXZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fFJlKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8aWUoZSl8fChhPVMuc3R5bGUoZSx0KSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmUGUudGVzdChhKSYmSWUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIscmUuYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9Qy5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxyZS5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9RS5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIseS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsUy5leHRlbmQoeSx7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxvfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxufSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHN9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLGl9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7cmV0dXJuIG51bGw9PWEmJihlPUUuY3JlYXRlRWxlbWVudCgidGFibGUiKSx0PUUuY3JlYXRlRWxlbWVudCgidHIiKSxuPUUuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdC5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix0LnN0eWxlLmhlaWdodD0iMXB4IixuLnN0eWxlLmhlaWdodD0iOXB4IixuLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixyZS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPUMuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxhPXBhcnNlSW50KHIuaGVpZ2h0LDEwKStwYXJzZUludChyLmJvcmRlclRvcFdpZHRoLDEwKStwYXJzZUludChyLmJvcmRlckJvdHRvbVdpZHRoLDEwKT09PXQub2Zmc2V0SGVpZ2h0LHJlLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgQmU9WyJXZWJraXQiLCJNb3oiLCJtcyJdLCRlPUUuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsX2U9e307ZnVuY3Rpb24gemUoZSl7dmFyIHQ9Uy5jc3NQcm9wc1tlXXx8X2VbZV07cmV0dXJuIHR8fChlIGluICRlP2U6X2VbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1CZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPUJlW25dK3QpaW4gJGUpcmV0dXJuIGV9KGUpfHxlKX12YXIgVWU9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLFhlPS9eLS0vLFZlPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxHZT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZnVuY3Rpb24gWWUoZSx0LG4pe3ZhciByPXRlLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gUWUoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9Uy5jc3MoZSxuK25lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09Uy5jc3MoZSwicGFkZGluZyIrbmVbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz1TLmNzcyhlLCJwYWRkaW5nIituZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKTpzKz1TLmNzcyhlLCJib3JkZXIiK25lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKXx8MCksdX1mdW5jdGlvbiBKZShlLHQsbil7dmFyIHI9UmUoZSksaT0oIXkuYm94U2l6aW5nUmVsaWFibGUoKXx8bikmJiJib3JkZXItYm94Ij09PVMuY3NzKGUsImJveFNpemluZyIsITEsciksbz1pLGE9V2UoZSx0LHIpLHM9Im9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoUGUudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT0iYXV0byJ9cmV0dXJuKCF5LmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCF5LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJkEoZSwidHIiKXx8ImF1dG8iPT09YXx8IXBhcnNlRmxvYXQoYSkmJiJpbmxpbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1TLmNzcyhlLCJib3hTaXppbmciLCExLHIpLChvPXMgaW4gZSkmJihhPWVbc10pKSwoYT1wYXJzZUZsb2F0KGEpfHwwKStRZShlLHQsbnx8KGk/ImJvcmRlciI6ImNvbnRlbnQiKSxvLHIsYSkrInB4In1mdW5jdGlvbiBLZShlLHQsbixyLGkpe3JldHVybiBuZXcgS2UucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX1TLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPVdlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9WCh0KSx1PVhlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PXplKHMpKSxhPVMuY3NzSG9va3NbdF18fFMuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihpPXRlLmV4ZWMobikpJiZpWzFdJiYobj1zZShlLHQsaSksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiIT09b3x8dXx8KG4rPWkmJmlbM118fChTLmNzc051bWJlcltzXT8iIjoicHgiKSkseS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVgodCk7cmV0dXJuIFhlLnRlc3QodCl8fCh0PXplKHMpKSwoYT1TLmNzc0hvb2tzW3RdfHxTLmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1XZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBHZSYmKGk9R2VbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLFMuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtTLmNzc0hvb2tzW3VdPXtnZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHQpcmV0dXJuIVVlLnRlc3QoUy5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9KZShlLHUsbik6TWUoZSxWZSxmdW5jdGlvbigpe3JldHVybiBKZShlLHUsbil9KX0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPVJlKGUpLG89IXkuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Uy5jc3MoZSwiYm94U2l6aW5nIiwhMSxpKSxzPW4/UWUoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbIm9mZnNldCIrdVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSldLXBhcnNlRmxvYXQoaVt1XSktUWUoZSx1LCJib3JkZXIiLCExLGkpLS41KSkscyYmKHI9dGUuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1TLmNzcyhlLHUpKSxZZSgwLHQscyl9fX0pLFMuY3NzSG9va3MubWFyZ2luTGVmdD1GZSh5LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoV2UoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LU1lKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxTLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLG8pe1MuY3NzSG9va3NbaStvXT17ZXhwYW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49e30scj0ic3RyaW5nIj09dHlwZW9mIGU/ZS5zcGxpdCgiICIpOltlXTt0PDQ7dCsrKW5baStuZVt0XStvXT1yW3RdfHxyW3QtMl18fHJbMF07cmV0dXJuIG59fSwibWFyZ2luIiE9PWkmJihTLmNzc0hvb2tzW2krb10uc2V0PVllKX0pLFMuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPVJlKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPVMuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9TLnN0eWxlKGUsdCxuKTpTLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKFMuVHdlZW49S2UpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6S2UsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Uy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fChTLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9S2UucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOktlLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPUtlLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1TLmVhc2luZ1t0aGlzLmVhc2luZ10oZSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz10PWUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6S2UucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPUtlLnByb3RvdHlwZSwoS2UucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9Uy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe1MuZnguc3RlcFtlLnByb3BdP1MuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fCFTLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVt6ZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpTLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPUtlLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LFMuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn0sUy5meD1LZS5wcm90b3R5cGUuaW5pdCxTLmZ4LnN0ZXA9e307dmFyIFplLGV0LHR0LG50LHJ0PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxpdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIG90KCl7ZXQmJighMT09PUUuaGlkZGVuJiZDLnJlcXVlc3RBbmltYXRpb25GcmFtZT9DLnJlcXVlc3RBbmltYXRpb25GcmFtZShvdCk6Qy5zZXRUaW1lb3V0KG90LFMuZnguaW50ZXJ2YWwpLFMuZngudGljaygpKX1mdW5jdGlvbiBhdCgpe3JldHVybiBDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtaZT12b2lkIDB9KSxaZT1EYXRlLm5vdygpfWZ1bmN0aW9uIHN0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49bmVbcl0pXT1pWyJwYWRkaW5nIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiB1dChlLHQsbil7Zm9yKHZhciByLGk9KGx0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KGx0LnR3ZWVuZXJzWyIqIl0pLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGx0KG8sZSx0KXt2YXIgbixhLHI9MCxpPWx0LnByZWZpbHRlcnMubGVuZ3RoLHM9Uy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9WmV8fGF0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpTLmV4dGVuZCh7fSxlKSxvcHRzOlMuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpTLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOlplfHxhdCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Uy5Ud2VlbihvLGwub3B0cyxlLHQsbC5vcHRzLnNwZWNpYWxFYXNpbmdbZV18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKG4pLG59LHN0b3A6ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWU/bC50d2VlbnMubGVuZ3RoOjA7aWYoYSlyZXR1cm4gdGhpcztmb3IoYT0hMDt0PG47dCsrKWwudHdlZW5zW3RdLnJ1bigxKTtyZXR1cm4gZT8ocy5ub3RpZnlXaXRoKG8sW2wsMSwwXSkscy5yZXNvbHZlV2l0aChvLFtsLGVdKSk6cy5yZWplY3RXaXRoKG8sW2wsZV0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcighZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhO2ZvcihuIGluIGUpaWYoaT10W3I9WChuKV0sbz1lW25dLEFycmF5LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSwoYT1TLmNzc0hvb2tzW3JdKSYmImV4cGFuZCJpbiBhKWZvcihuIGluIG89YS5leHBhbmQobyksZGVsZXRlIGVbcl0sbyluIGluIGV8fChlW25dPW9bbl0sdFtuXT1pKTtlbHNlIHRbcl09aX0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7cjxpO3IrKylpZihuPWx0LnByZWZpbHRlcnNbcl0uY2FsbChsLG8sYyxsLm9wdHMpKXJldHVybiBtKG4uc3RvcCkmJihTLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIFMubWFwKGMsdXQsbCksbShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLFMuZngudGltZXIoUy5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1TLkFuaW1hdGlvbj1TLmV4dGVuZChsdCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHNlKG4uZWxlbSxlLHRlLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7bShlKT8odD1lLGU9WyIqIl0pOmU9ZS5tYXRjaChQKTtmb3IodmFyIG4scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluPWVbcl0sbHQudHdlZW5lcnNbbl09bHQudHdlZW5lcnNbbl18fFtdLGx0LnR3ZWVuZXJzW25dLnVuc2hpZnQodCl9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjLGY9IndpZHRoImluIHR8fCJoZWlnaHQiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx2PVkuZ2V0KGUsImZ4c2hvdyIpO2ZvcihyIGluIG4ucXVldWV8fChudWxsPT0oYT1TLl9xdWV1ZUhvb2tzKGUsImZ4IikpLnVucXVldWVkJiYoYS51bnF1ZXVlZD0wLHM9YS5lbXB0eS5maXJlLGEuZW1wdHkuZmlyZT1mdW5jdGlvbigpe2EudW5xdWV1ZWR8fHMoKX0pLGEudW5xdWV1ZWQrKyxwLmFsd2F5cyhmdW5jdGlvbigpe3AuYWx3YXlzKGZ1bmN0aW9uKCl7YS51bnF1ZXVlZC0tLFMucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0scnQudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Uy5zdHlsZShlLHIpfWlmKCh1PSFTLmlzRW1wdHlPYmplY3QodCkpfHwhUy5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9WS5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1TLmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGxlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz1TLmNzcyhlLCJkaXNwbGF5IiksbGUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PVMuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9WS5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZsZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fGxlKFtlXSksWS5yZW1vdmUoZSwiZnhzaG93IiksZClTLnN0eWxlKGUscixkW3JdKX0pKSx1PXV0KGc/dltyXTowLHIscCksciBpbiB2fHwodltyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9sdC5wcmVmaWx0ZXJzLnVuc2hpZnQoZSk6bHQucHJlZmlsdGVycy5wdXNoKGUpfX0pLFMuc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9TLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fG0oZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIW0odCkmJnR9O3JldHVybiBTLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiByLmR1cmF0aW9uJiYoci5kdXJhdGlvbiBpbiBTLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPVMuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Uy5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPXIucXVldWUmJiEwIT09ci5xdWV1ZXx8KHIucXVldWU9ImZ4Iiksci5vbGQ9ci5jb21wbGV0ZSxyLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bShyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmUy5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LFMuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGFlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1TLmlzRW1wdHlPYmplY3QodCksbz1TLnNwZWVkKGUsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIGU9bHQodGhpcyxTLmV4dGVuZCh7fSx0KSxvKTsoaXx8WS5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Uy50aW1lcnMscj1ZLmdldCh0aGlzKTtpZih0KXJbdF0mJnJbdF0uc3RvcCYmYShyW3RdKTtlbHNlIGZvcih0IGluIHIpclt0XSYmclt0XS5zdG9wJiZpdC50ZXN0KHQpJiZhKHJbdF0pO2Zvcih0PW4ubGVuZ3RoO3QtLTspblt0XS5lbGVtIT09dGhpc3x8bnVsbCE9aSYmblt0XS5xdWV1ZSE9PWl8fChuW3RdLmFuaW0uc3RvcChvKSxlPSExLG4uc3BsaWNlKHQsMSkpOyFlJiZvfHxTLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PVkuZ2V0KHRoaXMpLG49dFthKyJxdWV1ZSJdLHI9dFthKyJxdWV1ZUhvb2tzIl0saT1TLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsUy5xdWV1ZSh0aGlzLGEsW10pLHImJnIuc3RvcCYmci5zdG9wLmNhbGwodGhpcywhMCksZT1pLmxlbmd0aDtlLS07KWlbZV0uZWxlbT09PXRoaXMmJmlbZV0ucXVldWU9PT1hJiYoaVtlXS5hbmltLnN0b3AoITApLGkuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxvO2UrKyluW2VdJiZuW2VdLmZpbmlzaCYmbltlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgdC5maW5pc2h9KX19KSxTLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Uy5mbltyXTtTLmZuW3JdPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUoc3QociwhMCksZSx0LG4pfX0pLFMuZWFjaCh7c2xpZGVEb3duOnN0KCJzaG93Iiksc2xpZGVVcDpzdCgiaGlkZSIpLHNsaWRlVG9nZ2xlOnN0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUscil7Uy5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxTLnRpbWVycz1bXSxTLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj1TLnRpbWVycztmb3IoWmU9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxTLmZ4LnN0b3AoKSxaZT12b2lkIDB9LFMuZngudGltZXI9ZnVuY3Rpb24oZSl7Uy50aW1lcnMucHVzaChlKSxTLmZ4LnN0YXJ0KCl9LFMuZnguaW50ZXJ2YWw9MTMsUy5meC5zdGFydD1mdW5jdGlvbigpe2V0fHwoZXQ9ITAsb3QoKSl9LFMuZnguc3RvcD1mdW5jdGlvbigpe2V0PW51bGx9LFMuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LFMuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1TLmZ4JiZTLmZ4LnNwZWVkc1tyXXx8cixlPWV8fCJmeCIsdGhpcy5xdWV1ZShlLGZ1bmN0aW9uKGUsdCl7dmFyIG49Qy5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7Qy5jbGVhclRpbWVvdXQobil9fSl9LHR0PUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxudD1FLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEUuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLHR0LnR5cGU9ImNoZWNrYm94Iix5LmNoZWNrT249IiIhPT10dC52YWx1ZSx5Lm9wdFNlbGVjdGVkPW50LnNlbGVjdGVkLCh0dD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0Iix0dC50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPSJ0Ij09PXR0LnZhbHVlO3ZhciBjdCxmdD1TLmV4cHIuYXR0ckhhbmRsZTtTLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiAkKHRoaXMsUy5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLnJlbW92ZUF0dHIodGhpcyxlKX0pfX0pLFMuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Uy5wcm9wKGUsdCxuKTooMT09PW8mJlMuaXNYTUxEb2MoZSl8fChpPVMuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChTLmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP2N0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCBTLnJlbW92ZUF0dHIoZSx0KTppJiYic2V0ImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjooZS5zZXRBdHRyaWJ1dGUodCxuKyIiKSxuKTppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPVMuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZigheS5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmQShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goUCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSksY3Q9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P1MucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LFMuZWFjaChTLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLHQpe3ZhciBhPWZ0W3RdfHxTLmZpbmQuYXR0cjtmdFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9ZnRbb10sZnRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCxmdFtvXT1pKSxyfX0pO3ZhciBwdD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGR0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiBodChlKXtyZXR1cm4oZS5tYXRjaChQKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiBndChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiB2dChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChQKXx8W119Uy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLFMucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbUy5wcm9wRml4W2VdfHxlXX0pfX0pLFMuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmUy5pc1hNTERvYyhlKXx8KHQ9Uy5wcm9wRml4W3RdfHx0LGk9Uy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmInNldCJpbiBpJiZ2b2lkIDAhPT0ocj1pLnNldChlLG4sdCkpP3I6ZVt0XT1uOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6cHQudGVzdChlLm5vZGVOYW1lKXx8ZHQudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KFMucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7dCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxTLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe1MucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxTLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsdT0wO2lmKG0odCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUsZ3QodGhpcykpKX0pO2lmKChlPXZ0KHQpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT1ndChuKSxyPTE9PT1uLm5vZGVUeXBlJiYiICIraHQoaSkrIiAiKXthPTA7d2hpbGUobz1lW2ErK10pci5pbmRleE9mKCIgIitvKyIgIik8MCYmKHIrPW8rIiAiKTtpIT09KHM9aHQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyx1PTA7aWYobSh0KSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1ModGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSxndCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigoZT12dCh0KSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9Z3Qobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK2h0KGkpKyIgIil7YT0wO3doaWxlKG89ZVthKytdKXdoaWxlKC0xPHIuaW5kZXhPZigiICIrbysiICIpKXI9ci5yZXBsYWNlKCIgIitvKyIgIiwiICIpO2khPT0ocz1odChyKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyl9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksdCl7dmFyIG89dHlwZW9mIGksYT0ic3RyaW5nIj09PW98fEFycmF5LmlzQXJyYXkoaSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdCYmYT90P3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKTptKGkpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLnRvZ2dsZUNsYXNzKGkuY2FsbCh0aGlzLGUsZ3QodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtpZihhKXt0PTAsbj1TKHRoaXMpLHI9dnQoaSk7d2hpbGUoZT1yW3QrK10pbi5oYXNDbGFzcyhlKT9uLnJlbW92ZUNsYXNzKGUpOm4uYWRkQ2xhc3MoZSl9ZWxzZSB2b2lkIDAhPT1pJiYiYm9vbGVhbiIhPT1vfHwoKGU9Z3QodGhpcykpJiZZLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWk/IiI6WS5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK2h0KGd0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHl0PS9cci9nO1MuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1tKG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxTKHRoaXMpLnZhbCgpKTpuKT90PSIiOiJudW1iZXIiPT10eXBlb2YgdD90Kz0iIjpBcnJheS5pc0FycmF5KHQpJiYodD1TLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Uy52YWxIb29rc1t0aGlzLnR5cGVdfHxTLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIHImJnZvaWQgMCE9PXIuc2V0KHRoaXMsdCwidmFsdWUiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Uy52YWxIb29rc1t0LnR5cGVdfHxTLnZhbEhvb2tzW3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHImJnZvaWQgMCE9PShlPXIuZ2V0KHQsInZhbHVlIikpP2U6InN0cmluZyI9PXR5cGVvZihlPXQudmFsdWUpP2UucmVwbGFjZSh5dCwiIik6bnVsbD09ZT8iIjplOnZvaWQgMH19KSxTLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDpodChTLnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhQShuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PVMobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1TLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Uy5pbkFycmF5KFMudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLFMuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe1MudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD0tMTxTLmluQXJyYXkoUyhlKS52YWwoKSx0KX19LHkuY2hlY2tPbnx8KFMudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSx5LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBDO3ZhciBtdD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8seHQ9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Uy5leHRlbmQoUy5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fEVdLGQ9di5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXYuY2FsbChlLCJuYW1lc3BhY2UiKT9lLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKG89Zj1hPW49bnx8RSwzIT09bi5ub2RlVHlwZSYmOCE9PW4ubm9kZVR5cGUmJiFtdC50ZXN0KGQrUy5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKCIuIikmJihkPShoPWQuc3BsaXQoIi4iKSkuc2hpZnQoKSxoLnNvcnQoKSksdT1kLmluZGV4T2YoIjoiKTwwJiYib24iK2QsKGU9ZVtTLmV4cGFuZG9dP2U6bmV3IFMuRXZlbnQoZCwib2JqZWN0Ij09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKCIuIiksZS5ybmFtZXNwYWNlPWUubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxlLnJlc3VsdD12b2lkIDAsZS50YXJnZXR8fChlLnRhcmdldD1uKSx0PW51bGw9PXQ/W2VdOlMubWFrZUFycmF5KHQsW2VdKSxjPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXgobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLG10LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEUpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fEMpfWk9MDt3aGlsZSgobz1wW2krK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWY9byxlLnR5cGU9MTxpP3M6Yy5iaW5kVHlwZXx8ZCwobD0oWS5nZXQobywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJlkuZ2V0KG8sImhhbmRsZSIpKSYmbC5hcHBseShvLHQpLChsPXUmJm9bdV0pJiZsLmFwcGx5JiZWKG8pJiYoZS5yZXN1bHQ9bC5hcHBseShvLHQpLCExPT09ZS5yZXN1bHQmJmUucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGUudHlwZT1kLHJ8fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGMuX2RlZmF1bHQmJiExIT09Yy5fZGVmYXVsdC5hcHBseShwLnBvcCgpLHQpfHwhVihuKXx8dSYmbShuW2RdKSYmIXgobikmJigoYT1uW3VdKSYmKG5bdV09bnVsbCksUy5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLHh0KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx4dCksUy5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TLmV4dGVuZChuZXcgUy5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtTLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLFMuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIFMuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSkseS5mb2N1c2lufHxTLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7Uy5ldmVudC5zaW11bGF0ZShyLGUudGFyZ2V0LFMuZXZlbnQuZml4KGUpKX07Uy5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyx0PVkuYWNjZXNzKGUscik7dHx8ZS5hZGRFdmVudExpc3RlbmVyKG4saSwhMCksWS5hY2Nlc3MoZSxyLCh0fHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1ZLmFjY2VzcyhlLHIpLTE7dD9ZLmFjY2VzcyhlLHIsdCk6KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLGksITApLFkucmVtb3ZlKGUscikpfX19KTt2YXIgYnQ9Qy5sb2NhdGlvbix3dD17Z3VpZDpEYXRlLm5vdygpfSxUdD0vXD8vO1MucGFyc2VYTUw9ZnVuY3Rpb24oZSl7dmFyIHQsbjtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiBudWxsO3RyeXt0PShuZXcgQy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhlLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gbj10JiZ0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLHQmJiFufHxTLmVycm9yKCJJbnZhbGlkIFhNTDogIisobj9TLm1hcChuLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmUpKSx0fTt2YXIgQ3Q9L1xbXF0kLyxFdD0vXHI/XG4vZyxTdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksa3Q9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIEF0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpUy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtyfHxDdC50ZXN0KG4pP2kobix0KTpBdChuKyJbIisoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10P2U6IiIpKyJdIix0LHIsaSl9KTtlbHNlIGlmKHJ8fCJvYmplY3QiIT09dyhlKSlpKG4sZSk7ZWxzZSBmb3IodCBpbiBlKUF0KG4rIlsiK3QrIl0iLGVbdF0scixpKX1TLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49bSh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhUy5pc1BsYWluT2JqZWN0KGUpKVMuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpQXQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbigiJiIpfSxTLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT1TLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT9TLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFTKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYma3QudGVzdCh0aGlzLm5vZGVOYW1lKSYmIVN0LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPVModGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP1MubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShFdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2UoRXQsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIgTnQ9LyUyMC9nLGp0PS8jLiokLyxEdD0vKFs/Jl0pXz1bXiZdKi8scXQ9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxMdD0vXig/OkdFVHxIRUFEKSQvLEh0PS9eXC9cLy8sT3Q9e30sUHQ9e30sUnQ9IiovIi5jb25jYXQoIioiKSxNdD1FLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBJdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChQKXx8W107aWYobSh0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIFd0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PVB0O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsUy5lYWNoKHRbZV18fFtdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dChpLG8sYSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHx1fHxzW25dP3U/IShyPW4pOnZvaWQgMDooaS5kYXRhVHlwZXMudW5zaGlmdChuKSxsKG4pLCExKX0pLHJ9cmV0dXJuIGwoaS5kYXRhVHlwZXNbMF0pfHwhc1siKiJdJiZsKCIqIil9ZnVuY3Rpb24gRnQoZSx0KXt2YXIgbixyLGk9Uy5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmUy5leHRlbmQoITAsZSxyKSxlfU10LmhyZWY9YnQuaHJlZixTLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6YnQuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChidC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpSdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6Uy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/RnQoRnQoZSxTLmFqYXhTZXR0aW5ncyksdCk6RnQoUy5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6SXQoT3QpLGFqYXhUcmFuc3BvcnQ6SXQoUHQpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIGMsZixwLG4sZCxyLGgsZyxpLG8sdj1TLmFqYXhTZXR1cCh7fSx0KSx5PXYuY29udGV4dHx8dixtPXYuY29udGV4dCYmKHkubm9kZVR5cGV8fHkuanF1ZXJ5KT9TKHkpOlMuZXZlbnQseD1TLkRlZmVycmVkKCksYj1TLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1xdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxidC5ocmVmKSsiIikucmVwbGFjZShIdCxidC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFApfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9RS5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49TXQucHJvdG9jb2wrIi8vIitNdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Uy5wYXJhbSh2LmRhdGEsdi50cmFkaXRpb25hbCkpLFd0KE90LHYsdCxUKSxoKXJldHVybiBUO2ZvcihpIGluKGc9Uy5ldmVudCYmdi5nbG9iYWwpJiYwPT1TLmFjdGl2ZSsrJiZTLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHYudHlwZT12LnR5cGUudG9VcHBlckNhc2UoKSx2Lmhhc0NvbnRlbnQ9IUx0LnRlc3Qodi50eXBlKSxmPXYudXJsLnJlcGxhY2UoanQsIiIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYodi5kYXRhPXYuZGF0YS5yZXBsYWNlKE50LCIrIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHYuZGF0YSkmJihmKz0oVHQudGVzdChmKT8iJiI6Ij8iKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoRHQsIiQxIiksbz0oVHQudGVzdChmKT8iJiI6Ij8iKSsiXz0iK3d0Lmd1aWQrKytvKSx2LnVybD1mK28pLHYuaWZNb2RpZmllZCYmKFMubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixTLmxhc3RNb2RpZmllZFtmXSksUy5ldGFnW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLFMuZXRhZ1tmXSkpLCh2LmRhdGEmJnYuaGFzQ29udGVudCYmITEhPT12LmNvbnRlbnRUeXBlfHx0LmNvbnRlbnRUeXBlKSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iix2LmRhdGFUeXBlc1swXSYmdi5hY2NlcHRzW3YuZGF0YVR5cGVzWzBdXT92LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dKygiKiIhPT12LmRhdGFUeXBlc1swXT8iLCAiK1J0KyI7IHE9MC4wMSI6IiIpOnYuYWNjZXB0c1siKiJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PSJhYm9ydCIsYi5hZGQodi5jb21wbGV0ZSksVC5kb25lKHYuc3VjY2VzcyksVC5mYWlsKHYuZXJyb3IpLGM9V3QoUHQsdix0LFQpKXtpZihULnJlYWR5U3RhdGU9MSxnJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbVCx2XSksaClyZXR1cm4gVDt2LmFzeW5jJiYwPHYudGltZW91dCYmKGQ9Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJkMuY2xlYXJUaW1lb3V0KGQpLGM9dm9pZCAwLHA9cnx8IiIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYocilmb3IoaSBpbiBzKWlmKHNbaV0mJnNbaV0udGVzdChyKSl7dS51bnNoaWZ0KGkpO2JyZWFrfWlmKHVbMF1pbiBuKW89dVswXTtlbHNle2ZvcihpIGluIG4pe2lmKCF1WzBdfHxlLmNvbnZlcnRlcnNbaSsiICIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxTLmluQXJyYXkoInNjcmlwdCIsdi5kYXRhVHlwZXMpJiZTLmluQXJyYXkoImpzb24iLHYuZGF0YVR5cGVzKTwwJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoUy5sYXN0TW9kaWZpZWRbZl09dSksKHU9VC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKFMuZXRhZ1tmXT11KSksMjA0PT09ZXx8IkhFQUQiPT09di50eXBlP2w9Im5vY29udGVudCI6MzA0PT09ZT9sPSJub3Rtb2RpZmllZCI6KGw9cy5zdGF0ZSxvPXMuZGF0YSxpPSEoYT1zLmVycm9yKSkpOihhPWwsIWUmJmx8fChsPSJlcnJvciIsZTwwJiYoZT0wKSkpLFQuc3RhdHVzPWUsVC5zdGF0dXNUZXh0PSh0fHxsKSsiIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbVCx2LGk/bzphXSksYi5maXJlV2l0aCh5LFtULGxdKSxnJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtULHZdKSwtLVMuYWN0aXZlfHxTLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gVH0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFMuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBTLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxTLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSxpKXtTW2ldPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBtKHQpJiYocj1yfHxuLG49dCx0PXZvaWQgMCksUy5hamF4KFMuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxTLmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSxTLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLFMuX2V2YWxVcmw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBTLmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe1MuZ2xvYmFsRXZhbChlLHQsbil9fSl9LFMuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYobShlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PVMoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKG4pe3JldHVybiBtKG4pP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TKHRoaXMpLHQ9ZS5jb250ZW50cygpO3QubGVuZ3RoP3Qud3JhcEFsbChuKTplLmFwcGVuZChuKX0pfSx3cmFwOmZ1bmN0aW9uKHQpe3ZhciBuPW0odCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBBbGwobj90LmNhbGwodGhpcyxlKTp0KX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLFMuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hUy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sUy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LFMuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEMuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIEJ0PXswOjIwMCwxMjIzOjIwNH0sJHQ9Uy5hamF4U2V0dGluZ3MueGhyKCk7eS5jb3JzPSEhJHQmJiJ3aXRoQ3JlZGVudGlhbHMiaW4gJHQseS5hamF4PSR0PSEhJHQsUy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYoeS5jb3JzfHwkdCYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkueGhyKCk7aWYoci5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKG4gaW4gaS54aHJGaWVsZHMpcltuXT1pLnhockZpZWxkc1tuXTtmb3IobiBpbiBpLm1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSxpLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSlyLnNldFJlcXVlc3RIZWFkZXIobixlW25dKTtvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe28mJihvPWE9ci5vbmxvYWQ9ci5vbmVycm9yPXIub25hYm9ydD1yLm9udGltZW91dD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3IuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHIuc3RhdHVzP3QoMCwiZXJyb3IiKTp0KHIuc3RhdHVzLHIuc3RhdHVzVGV4dCk6dChCdFtyLnN0YXR1c118fHIuc3RhdHVzLHIuc3RhdHVzVGV4dCwidGV4dCIhPT0oci5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygci5yZXNwb25zZVRleHQ/e2JpbmFyeTpyLnJlc3BvbnNlfTp7dGV4dDpyLnJlc3BvbnNlVGV4dH0sci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sci5vbmxvYWQ9bygpLGE9ci5vbmVycm9yPXIub250aW1lb3V0PW8oImVycm9yIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmQy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7byYmYSgpfSl9LG89bygiYWJvcnQiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksUy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxTLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gUy5nbG9iYWxFdmFsKGUpLGV9fX0pLFMuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxTLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24obil7dmFyIHIsaTtpZihuLmNyb3NzRG9tYWlufHxuLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7cj1TKCI8c2NyaXB0PiIpLmF0dHIobi5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6bi5zY3JpcHRDaGFyc2V0LHNyYzpuLnVybH0pLm9uKCJsb2FkIGVycm9yIixpPWZ1bmN0aW9uKGUpe3IucmVtb3ZlKCksaT1udWxsLGUmJnQoImVycm9yIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxFLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgX3QsenQ9W10sVXQ9Lyg9KVw/KD89JnwkKXxcP1w/LztTLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9enQucG9wKCl8fFMuZXhwYW5kbysiXyIrd3QuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksUy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoVXQudGVzdChlLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZVdC50ZXN0KGUuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz1tKGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoVXQsIiQxIityKTohMSE9PWUuanNvbnAmJihlLnVybCs9KFR0LnRlc3QoZS51cmwpPyImIjoiPyIpK2UuanNvbnArIj0iK3IpLGUuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBvfHxTLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPUNbcl0sQ1tyXT1mdW5jdGlvbigpe289YXJndW1lbnRzfSxuLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWk/UyhDKS5yZW1vdmVQcm9wKHIpOkNbcl09aSxlW3JdJiYoZS5qc29ucENhbGxiYWNrPXQuanNvbnBDYWxsYmFjayx6dC5wdXNoKHIpKSxvJiZtKGkpJiZpKG9bMF0pLG89aT12b2lkIDB9KSwic2NyaXB0In0pLHkuY3JlYXRlSFRNTERvY3VtZW50PSgoX3Q9RS5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1fdC5jaGlsZE5vZGVzLmxlbmd0aCksUy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9bXTooImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0fHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUUuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUUubG9jYXRpb24uaHJlZix0LmhlYWQuYXBwZW5kQ2hpbGQocikpOnQ9RSksbz0hbiYmW10sKGk9Ti5leGVjKGUpKT9bdC5jcmVhdGVFbGVtZW50KGlbMV0pXTooaT14ZShbZV0sdCxvKSxvJiZvLmxlbmd0aCYmUyhvKS5yZW1vdmUoKSxTLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LFMuZm4ubG9hZD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9dGhpcyxzPWUuaW5kZXhPZigiICIpO3JldHVybi0xPHMmJihyPWh0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxtKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSwwPGEubGVuZ3RoJiZTLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/UygiPGRpdj4iKS5hcHBlbmQoUy5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSxTLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gUy5ncmVwKFMudGltZXJzLGZ1bmN0aW9uKGUpe3JldHVybiB0PT09ZS5lbGVtfSkubGVuZ3RofSxTLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1TLmNzcyhlLCJwb3NpdGlvbiIpLGM9UyhlKSxmPXt9OyJzdGF0aWMiPT09bCYmKGUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIikscz1jLm9mZnNldCgpLG89Uy5jc3MoZSwidG9wIiksdT1TLmNzcyhlLCJsZWZ0IiksKCJhYnNvbHV0ZSI9PT1sfHwiZml4ZWQiPT09bCkmJi0xPChvK3UpLmluZGV4T2YoImF1dG8iKT8oYT0ocj1jLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLG0odCkmJih0PXQuY2FsbChlLG4sUy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOmMuY3NzKGYpfX0sUy5mbi5leHRlbmQoe29mZnNldDpmdW5jdGlvbih0KXtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10P3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1Mub2Zmc2V0LnNldE9mZnNldCh0aGlzLHQsZSl9KTt2YXIgZSxuLHI9dGhpc1swXTtyZXR1cm4gcj9yLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhlPXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbj1yLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDplLnRvcCtuLnBhZ2VZT2Zmc2V0LGxlZnQ6ZS5sZWZ0K24ucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGUsdCxuLHI9dGhpc1swXSxpPXt0b3A6MCxsZWZ0OjB9O2lmKCJmaXhlZCI9PT1TLmNzcyhyLCJwb3NpdGlvbiIpKXQ9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle3Q9dGhpcy5vZmZzZXQoKSxuPXIub3duZXJEb2N1bWVudCxlPXIub2Zmc2V0UGFyZW50fHxuLmRvY3VtZW50RWxlbWVudDt3aGlsZShlJiYoZT09PW4uYm9keXx8ZT09PW4uZG9jdW1lbnRFbGVtZW50KSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5wYXJlbnROb2RlO2UmJmUhPT1yJiYxPT09ZS5ub2RlVHlwZSYmKChpPVMoZSkub2Zmc2V0KCkpLnRvcCs9Uy5jc3MoZSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxpLmxlZnQrPVMuY3NzKGUsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOnQudG9wLWkudG9wLVMuY3NzKHIsIm1hcmdpblRvcCIsITApLGxlZnQ6dC5sZWZ0LWkubGVmdC1TLmNzcyhyLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vZmZzZXRQYXJlbnQ7d2hpbGUoZSYmInN0YXRpYyI9PT1TLmNzcyhlLCJwb3NpdGlvbiIpKWU9ZS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGV8fHJlfSl9fSksUy5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKHQsaSl7dmFyIG89InBhZ2VZT2Zmc2V0Ij09PWk7Uy5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZih4KGUpP3I9ZTo5PT09ZS5ub2RlVHlwZSYmKHI9ZS5kZWZhdWx0Vmlldyksdm9pZCAwPT09bilyZXR1cm4gcj9yW2ldOmVbdF07cj9yLnNjcm9sbFRvKG8/ci5wYWdlWE9mZnNldDpuLG8/bjpyLnBhZ2VZT2Zmc2V0KTplW3RdPW59LHQsZSxhcmd1bWVudHMubGVuZ3RoKX19KSxTLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oZSxuKXtTLmNzc0hvb2tzW25dPUZlKHkucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuIHQ9V2UoZSxuKSxQZS50ZXN0KHQpP1MoZSkucG9zaXRpb24oKVtuXSsicHgiOnR9KX0pLFMuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEscyl7Uy5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OnMsIiI6Im91dGVyIithfSxmdW5jdGlvbihyLG8pe1MuZm5bb109ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoJiYocnx8ImJvb2xlYW4iIT10eXBlb2YgZSksaT1yfHwoITA9PT1lfHwhMD09PXQ/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiB4KGUpPzA9PT1vLmluZGV4T2YoIm91dGVyIik/ZVsiaW5uZXIiK2FdOmUuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1lLm5vZGVUeXBlPyhyPWUuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGUuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGUuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT1uP1MuY3NzKGUsdCxpKTpTLnN0eWxlKGUsdCxuLGkpfSxzLG4/ZTp2b2lkIDAsbil9fSl9KSxTLmVhY2goWyJhamF4U3RhcnQiLCJhamF4U3RvcCIsImFqYXhDb21wbGV0ZSIsImFqYXhFcnJvciIsImFqYXhTdWNjZXNzIiwiYWpheFNlbmQiXSxmdW5jdGlvbihlLHQpe1MuZm5bdF09ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub24odCxlKX19KSxTLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMub24oZSxudWxsLHQsbil9LHVuYmluZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm9mZihlLG51bGwsdCl9LGRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiB0aGlzLm9uKHQsZSxuLHIpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vZmYoZSwiKioiKTp0aGlzLm9mZih0LGV8fCIqKiIsbil9LGhvdmVyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMubW91c2VlbnRlcihlKS5tb3VzZWxlYXZlKHR8fGUpfX0pLFMuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLG4pe1MuZm5bbl09ZnVuY3Rpb24oZSx0KXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24obixudWxsLGUsdCk6dGhpcy50cmlnZ2VyKG4pfX0pO3ZhciBYdD0vXltcc1x1RkVGRlx4QTBdK3xbXHNcdUZFRkZceEEwXSskL2c7Uy5wcm94eT1mdW5jdGlvbihlLHQpe3ZhciBuLHIsaTtpZigic3RyaW5nIj09dHlwZW9mIHQmJihuPWVbdF0sdD1lLGU9biksbShlKSlyZXR1cm4gcj1zLmNhbGwoYXJndW1lbnRzLDIpLChpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkodHx8dGhpcyxyLmNvbmNhdChzLmNhbGwoYXJndW1lbnRzKSkpfSkuZ3VpZD1lLmd1aWQ9ZS5ndWlkfHxTLmd1aWQrKyxpfSxTLmhvbGRSZWFkeT1mdW5jdGlvbihlKXtlP1MucmVhZHlXYWl0Kys6Uy5yZWFkeSghMCl9LFMuaXNBcnJheT1BcnJheS5pc0FycmF5LFMucGFyc2VKU09OPUpTT04ucGFyc2UsUy5ub2RlTmFtZT1BLFMuaXNGdW5jdGlvbj1tLFMuaXNXaW5kb3c9eCxTLmNhbWVsQ2FzZT1YLFMudHlwZT13LFMubm93PURhdGUubm93LFMuaXNOdW1lcmljPWZ1bmN0aW9uKGUpe3ZhciB0PVMudHlwZShlKTtyZXR1cm4oIm51bWJlciI9PT10fHwic3RyaW5nIj09PXQpJiYhaXNOYU4oZS1wYXJzZUZsb2F0KGUpKX0sUy50cmltPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOihlKyIiKS5yZXBsYWNlKFh0LCIiKX0sImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIFN9KTt2YXIgVnQ9Qy5qUXVlcnksR3Q9Qy4kO3JldHVybiBTLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIEMuJD09PVMmJihDLiQ9R3QpLGUmJkMualF1ZXJ5PT09UyYmKEMualF1ZXJ5PVZ0KSxTfSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihDLmpRdWVyeT1DLiQ9UyksU30pOwo="></script>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<link href="data:text/css,%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Sans%20Pro%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20300%3B%0Asrc%3A%20url%28data%3Aapplication%2Ffont%2Dsfnt%3Bbase64%2CAAEAAAARAQAABAAQR0RFRgNEA3IAAG%2BkAAAAQEdQT1PXveeXAABv5AAAGWRHU1VC8WfWVwAAiUgAAADgT1MvMlpQkwsAAGZkAAAAYGNtYXDzMPm1AABmxAAAAeZjdnQgDXMAuAAAamwAAAAoZnBnbQZZnDcAAGisAAABc2dhc3D%2F%2FwADAABvnAAAAAhnbHlm4G%2FpBAAAARwAAF8kaGVhZP4Fs%2FYAAGJEAAAANmhoZWEHlAOiAABmQAAAACRobXR4l6Yq6AAAYnwAAAPEbG9jYV5idvoAAGBgAAAB5G1heHADCwJJAABgQAAAACBuYW1lIvc8kwAAapQAAAHKcG9zdGxQSG8AAGxgAAADOXByZXAtaIB5AABqIAAAAEsABQBeAAACGgKUAAMABgAJAA8AFQBnALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAIvG7kAAgAEPlm6AAUAAgAAERI5ugAGAAIAABESOboABwACAAAREjm6AAgAAgAAERI5uQAKAAH0ugANAAIAABESObgAABC5ABIAAfQwMRMhESETAxEhEQMTLwEjDwETPwEhHwFeAbz%2BRMCTAWCRfF07BD1foDVW%2FuRXNgKU%2FWwBVAEE%2FfwCBP78%2FtOkaWmkAU1cm5tcAAIACAAAAgYCkwAJABEAVAC4AABFWLgADi8buQAOABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4ABEvG7kAEQAEPlm6AAUADAAOERI5ugALAAwADhESObgACy%2B5AAkAAfQwMQEnLgEnIw4BDwEXIQcjEzMTIwF8KhQkEQQRJBQq9%2F77Ti7oLugwAQl7O2w9PWw7eyfiApP9bQAAAAMAYQAAAhUCkwARABoAIwBbALgAAEVYuAAALxu5AAAAED5ZuAAARVi4ABEvG7kAEQAEPlm6ACEAAAARERI5uAAhL7oACAAhABIREjm4AAAQuQAZAAH0uAAhELkAGgAB9LgAERC5ACMAAfQwMRMzMhYVFAYHFR4BFRQOAisBEzI2NTQmKwEVEzI2NTQmKwERYbJkdjs6SVQjQFo4v6BmWF5bd4VjcW5mhQKTTVM0TQ8EC09FMEgwGAFxQUJAOfz%2BtUpQR0X%2B2gAAAQA3%2F%2FQCDwKfACEAOQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAdLxu5AB0ABD5ZuAAFELkADAAB9LgAHRC5ABYAAfQwMRM0PgIzMhYXBy4BIyIOAhUUHgIzMjY3Fw4BIyIuAjcpSmg%2FOVgaHBpILTZXPSAgPFU1M08kHCZeQD1mSSgBS05%2BWS8wHx4eJSpNbkVFb04rKCkdLDIwWX8AAAIAYQAAAiUCkwAMABkANQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuQANAAH0uAAAELkAFwAB9DAxEzMyHgIVFA4CKwE3Mj4CNTQuAisBEWGZTHFKJCRKcEyalENhPh4ePmFDZgKTLlZ4S0t7Vy8nK05rQUBqTCr9uwAAAAABAGEAAAHUApMACwBNALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm4AAAQuQADAAH0ugAHAAAACxESObgABy%2B5AAUAAfS4AAsQuQAIAAH0MDETIRUhFSEVIREhFSFhAWn%2BxQEI%2FvgBRf6NApMo%2BSj%2B3igAAQBhAAAByAKTAAkAQwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAJLxu5AAkABD5ZuAAAELkAAwAB9LoABwAAAAkREjm4AAcvuQAFAAH0MDETIRUhESEVIREjYQFn%2FscBCf73LgKTKP76KP7DAAAAAAEAN%2F%2F0AhUCnwAnAE0AuAAARVi4AAUvG7kABQAQPlm4AABFWLgAIy8buQAjAAQ%2BWbgABRC5AA4AAfS4ACMQuQAYAAH0ugAfAAUAIxESObgAHy%2B5AB0AAfQwMRM0PgIzMh4CFwcuASMiDgIVFB4CMzI2NzUjNTMRDgEjIi4CNypNa0IhNiwjDRsaSDY5Wj8iID1ZOC1PGJ7KH2NCP2hKKQFLTn5ZLw4XHA4eHCcqTW5FRW9OKxoYzSf%2B%2ByEqMFl%2FAAEAYQAAAh4CkwALAEkAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACy8buQALAAQ%2BWboACQAAAAsREjm4AAkvuQADAAH0uAAAELgABNC4AAsQuAAH0DAxEzMRIREzESMRIREjYS4BYS4u%2Fp8uApP%2B3wEh%2FW0BSv62AAEAYQAAAI8CkwADACUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAAy8buQADAAQ%2BWTAxEzMRI2EuLgKT%2FW0AAAABACn%2F9AFvApMAEQArALgAAEVYuAAHLxu5AAcAED5ZuAAARVi4AA4vG7kADgAEPlm5AAMAAfQwMTceATMyNjURMxEUDgIjIiYnTBg9Kjw6LhInPi03UhlsKiRJUQHb%2FiAoRTQeMi8AAAEAYQAAAiQCkwAMAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABC8buQAEABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIAAAAMERI5ugAJAAQACBESOTAxEzMRMwEzBxMjAwcVI2EuAgE%2FN9LvNdqGLgKT%2FpIBbvT%2BYQF8meMAAAEAYQAAAb8CkwAFACsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABS8buQAFAAQ%2BWbkAAgAB9DAxEzMRIRUhYS4BMP6iApP9lSgAAAABAGEAAAJhApMAGQBvALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAYvG7kABgAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZugADAAYACRESOboADgAGAAkREjm6ABEAGQAGERI5ugAUAAAAGRESOTAxEzMTFzM3EzMRIxE0NjcjBwMjAycjHgEVESNhQYo0BDKKQS0EAgQ0jSmONAQCBCsCk%2F59kpIBg%2F1tAbEpXyqR%2FnYBipEqXyn%2BTwAAAAEAYQAAAhsCkwATAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACC8buQAIABA%2BWbgAAEVYuAATLxu5ABMABD5ZuAAARVi4AAsvG7kACwAEPlm6AAQACwAIERI5ugAOAAAAExESOTAxEzMBFzMuATURMxEjAScjHgEVESNhMAEWSgQCBCww%2FupKBAIELAKT%2Fi%2BDMGAwAZT9bQHRgzBbMP5nAAAAAgA3%2F%2FQCVgKfABMAJwA1ALgAAEVYuAAKLxu5AAoAED5ZuAAARVi4AAAvG7kAAAAEPlm5ABQAAfS4AAoQuQAeAAH0MDEFIi4CNTQ%2BAjMyHgIVFA4CJzI%2BAjU0LgIjIg4CFRQeAgFGO2RIKChIZDs8ZEgoKEhkPDJSOyAgO1IyMlM6ICA6UwwxWn9OTn1ZLy9ZfU5Of1oxKitPb0VEbk0qKk1uREVvTysAAgBhAAACAAKTAAwAFwBDALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAwvG7kADAAEPlm6AAoAAAAMERI5uAAKL7kADQAB9LgAABC5ABYAAfQwMRMzMh4CFRQGKwERIxMyNjU0LgIrARFhtDdXPSB8b4YuqWViGTFLMnsCkxMsRjNhX%2F7lAUJIUSo3Ig7%2B1gAAAgA3%2F2UCWAKfABMANABLALgAAEVYuAAkLxu5ACQAED5ZuAAARVi4ABovG7kAGgAEPlm7ADEAAQAXAAQruAAaELkABQAB9LgAJBC5AA8AAfS4ABoQuAAu0DAxExQeAjMyPgI1NC4CIyIOAgEOASMiJicuAzU0PgIzMh4CFRQOAgceATMyNjdnIDpTMjJSOyAgO1IyMlM6IAHxDSsZU28ZNlpBJChIZDs8ZEgoJEFbNxdXPhcfDQFMRXFPLCxPcUVEbk0qKk1u%2FeAEB1I%2BBTVZekpOfVkvL1l9Tkp6WTUFMjQFBAAAAgBhAAACAwKTAAgAGABUALgAAEVYuAAOLxu5AA4AED5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgACS8buQAJAAQ%2BWbsAAAABAAoABCu4AA4QuQAGAAH0ugAXAAAAChESOTAxATI2NTQmKwERAQMjESMRMzIeAhUUBgcTARJYXV5XgwE%2Fs4wuvTFQOB9bTrYBVUdJSj3%2B6f6rAS%2F%2B0QKTEypCL09aCv7OAAAAAAEALv%2F0AeACnwAzAEkAuAAARVi4ABYvG7kAFgAQPlm4AABFWLgAMC8buQAwAAQ%2BWbkAAwAB9LoACwAWADAREjm4ABYQuQAdAAH0ugAlADAAFhESOTAxNx4BMzI2NTQuAi8BLgM1ND4CMzIWFwcuASMiBhUUHgIfAR4DFRQOAiMiJidMJGQ5TFgTICsYZBYvJxodM0cpPF0eGh1OMkJQFiIoEmQcMiYXHjdOMEhwJ3cpMEk7HyofFwstCRonNSUkOysYLyAfHyVANh0oHRUILAweKDcmJkEvGzcsAAABAB0AAAHvApMABwAzALgAAEVYuAACLxu5AAIAED5ZuAAARVi4AAcvG7kABwAEPlm4AAIQuQAAAAH0uAAF0DAxEyM1IRUjESPv0gHS0i4Caygo%2FZUAAAAAAQBf%2F%2FQCGwKTABkAPAC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAANLxu5AA0AED5ZuAAARVi4ABQvG7kAFAAEPlm5AAcAAfQwMRMzERQeAjMyPgI1ETMRFA4CIyIuAjVfLh0wPyMkQTEeKyY%2BUCsqUD4lApP%2Bb0JXNRYWNVdCAZH%2Bak1mPRkZPWZNAAABAAQAAAHnApMADwBAALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAwvG7kADAAQPlm4AABFWLgADy8buQAPAAQ%2BWboABQAAAA8REjkwMRMzEx4BFzM%2BAzcTMwMjBDF6Ex8UBAoREBEJei%2FYMQKT%2Fn88ZTweNjU2HgGB%2FW0AAQAcAAAC5AKTACEAdgC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAKLxu5AAoAED5ZuAAARVi4ABQvG7kAFAAQPlm4AABFWLgAIS8buQAhAAQ%2BWbgAAEVYuAAXLxu5ABcABD5ZugAFAAAAIRESOboADwAUABcREjm6ABwAIQAKERI5MDETMxMeARczPgE3EzMTHgEXMz4BNxMzAyMDLgEnIw4BBwMjHDBTCxcLBAwZDmcvZw4ZDgQLFQtTLZMzeAkSCAQIFAl2MgKT%2Fnw2azY2azYBhP58Nms2Nms2AYT9bQHEJ0cnJ0cn%2FjwAAAABABEAAAHRApMAGQBbALgAAEVYuAABLxu5AAEAED5ZuAAARVi4AAsvG7kACwAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAPLxu5AA8ABD5ZugAGAAEAGRESOboAEwAPAAsREjkwMRMDMxceARczPgE%2FATMDEyMnLgEnIw4BDwEj17gybA4XEQQOFQ5sL7jGMnMOHRIEEBoOcy8BVQE%2BwhcoGxsoF8L%2BwP6tyhkyHh4yGcoAAAAAAQADAAABvAKTAA8AQAC4AABFWLgAAS8buQABABA%2BWbgAAEVYuAALLxu5AAsAED5ZuAAARVi4AA8vG7kADwAEPlm6AAYAAQAPERI5MDETAzMXHgEXMz4BPwEzAxEjyMUxZBEhFAQTJBBkL8YuAQsBiM4kRiQkRiTO%2Fnj%2B9QAAAAABADIAAAHqApMACQA9ALgAAEVYuAADLxu5AAMAED5ZuAAARVi4AAgvG7kACAAEPlm5AAYAAfS4AADQuAADELkAAQAB9LgABdAwMTcBITUhFQEhFSEyAXv%2BpgGU%2FoQBf%2F5IGwJQKBv9sCgAAAACAEH%2F9AGjAewAIQAtAHYAuAAARVi4ABEvG7kAEQAIPlm4AABFWLgAHS8buQAdAAQ%2BWbgAAEVYuAAYLxu5ABgABD5ZugADABEAHRESObgAAy%2B4ABEQuQAIAAH0ugAZABgAERESObgAHRC5ACUAAfS4ABkQuQAoAAH0uAADELkAKQAB9DAxNzQ2NzYuAiMiBgcnPgMzMh4CFREjJyMOASMiLgI3FBYzMjY3NQ4DQZagAQkZLSMxUBgUDSUtNh0rOiQPJQUCJVUwHTInFi48KSpMLUplPht4T1QSGzcrGyYSIQkWEg0dMkMn%2Fs0%2BHS0QIDIkNCwoJqMJGiQuAAACAFz%2F9AHsAs8AFAAlAIMAuAAARVi4AAAvG7kAAAASPlm4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAOLxu5AA4ABD5ZuAAARVi4ABQvG7kAFAAEPlm6AAMABgAOERI5ugARAA4ABhESObgAERC5ABUAAfS4AA4QuQAYAAH0uAAGELkAIgAB9LgAAxC5ACUAAfQwMRMzFQc%2BATMyFhUUDgIjIiYnIwcjNx4BMzI%2BAjU0LgIjIgYHXCwCJVQtYGAiO00qI0siAgUlLChKHCQ%2BLBkRJDopJE4rAs%2FQXh8shXA9YEMjHxotWSIcIDpRMSxMNx8pJgAAAQA0%2F%2FQBpwHsACEAOQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAdLxu5AB0ABD5ZuAAFELkADAAB9LgAHRC5ABYAAfQwMTc0PgIzMhYXBy4BIyIOAhUUHgIzMjY3Fw4BIyIuAjQkPE8sMkMYGhc4IyU%2FLxsZLUEnJkEZFx9MLi9POyHvPF9AIiQXHxYdHzlOMC9OOB8gFx4cJCJAXQAAAAIANP%2F0AcQCzwAUACUAgwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAKLxu5AAoAEj5ZuAAARVi4ABIvG7kAEgAEPlm4AABFWLgADS8buQANAAQ%2BWboACAASAAUREjm6AA4ABQASERI5uAASELkAGgAB9LgADhC5AB0AAfS4AAgQuQAeAAH0uAAFELkAIQAB9DAxNzQ%2BAjMyFhcnNTMRIycjDgEjIiY3FB4CMzI2NxEuASMiDgI0IjtNKyxBJAIsJgQDHU8wW2wvFSg7JihJJiZDIyQ%2BLRrvOl5CIx8cWMb9MT4dLYF6ME43HykmAR0iHCE5TwACADT%2F9AG9AewAHAAlAFEAuAAARVi4AAUvG7kABQAIPlm4AABFWLgAGC8buQAYAAQ%2BWboACwAFABgREjm4AAsvuAAYELkAEQAB9LgABRC5ACAAAfS4AAsQuQAlAAH0MDE3ND4CMzIWFRwBByEeAzMyNjcXDgEjIi4CJTQmIyIOAgc0IztLKFZiAv6mARovQiknPxsSHUU1LlE8IwFfTEEfOC0dBO87XkEjdGoJEgktTTcfFxQiER4iQV1YXV0aMEUrAAAAAQAhAAABIALbABYAVgC4AABFWLgABy8buQAHAAg%2BWbgAAEVYuAAULxu5ABQAEj5ZuAAARVi4AAsvG7kACwAEPlm4ABQQuQADAAH0uAAHELkACgAB9LgADdC4AAcQuAAQ0DAxAS4BIyIGHQEzFSMRIxEjNTc1NDYzMhcBFA8dDiYlb28sQkI%2BOSMjAqcIBjk0aCb%2BRgG6IgRrSEgQAAAAAAMANP8ZAdwB7AARAEcAWwBtALgAAEVYuAAlLxu5ACUACD5ZuAAARVi4AEUvG7kARQAGPlm5AAMAAfS6ADwAJQBFERI5uAA8L7kACwAB9LgAJRC4ACnQuAApL7kAKgAB9LgAPBC4ADPQuAAzL7kASAAB9LgAJRC5AFIAAfQwMRcUFjMyPgI1NCYrASImJw4BBzQ2NzUuATU0Njc1LgE1ND4CMzIWFzMVIx4BFRQOAiMiJicOARUUFjsBMhYVFA4CIyImEzI%2BAjU0LgIjIg4CFRQeAl5TTShCLhk5NmcIIRMhHiomIRIYJBAXJRouPiMUIAujcBceGi09IxQrERAXJjZnUU0gO1Q0W2q%2BGS0iFBQhLhkaLSIUFCMtXi04FSIrFyghAwUXNB4gPBgECyYcIC0LBBRELCU%2BLRkHBSUUPyYlPi0ZCgoNIBgaJTU5HzstG0gBWxMkMh4eMiITEyIxHx4yJBMAAQBcAAABvwLPABQAWAC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAAEj5ZuAAARVi4ABQvG7kAFAAEPlm6AAMABgAUERI5uAAL0LgABhC5AA8AAfS4AAMQuQASAAH0MDETMx0BPgEzMhYVESMRNCYjIgYHESNcLCZOMktGLDM7K0YsLALP0GomMVpe%2FswBLk1JLS3%2BlgAAAgBLAAAAmwKjAAsADwAtALgAAEVYuAAMLxu5AAwACD5ZuAAARVi4AA4vG7kADgAEPlm6AAYAAAADKzAxEyImNTQ2MzIWFRQGBzMRI3MRFxcRERcXKCwsAlQWERMVFRMRFnT%2BIAAAAAAC%2F9%2F%2FGwCcAqMADwAbADcAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgABS8buQAFAAY%2BWboAFgAQAAMruAAFELkADAAB9DAxEzMRFAYjIiYnNx4BMzI2NRMiJjU0NjMyFhUUBlwtNDgRIgsLCRsOKBgXEBgYEBEYGAHg%2FcdHRQcFJAMHOy4CqhYRExUVExEWAAABAFwAAAHEAs8ADABbALgAAEVYuAAELxu5AAQACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAILxu5AAgABD5ZugACAAAADBESOboACQAAAAgREjkwMRMzETMTMwcTIwMHFSNcLALtM5y2MZ9sLALP%2Fe4BI77%2B3gEBfoMAAAABAFz%2F9AC3As8ADgArALgAAEVYuAAALxu5AAAAEj5ZuAAARVi4AAwvG7kADAAEPlm5AAUAAfQwMRMzERQWMzoBNxcOASMiNVwsDAkDBwgIBw4LOwLP%2FWsQDwIkAgNMAAABAFwAAALYAewAIACYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAIC8buQAgAAQ%2BWbgAAEVYuAAYLxu5ABgABD5ZuAAARVi4ABAvG7kAEAAEPlm6AAIAAAAgERI5ugAJAAAAIBESObgABhC4AAzQuQAUAAH0uAAJELkAFgAB9LgABhC5ABwAAfS4AAIQuQAeAAH0MDETMxczPgEzMhYXPgEzMhURIxE0JiMiBxEjETQmIyIHESNcJgQDIE8oOj4NKk8qkC00N0FPLDQ4QU8sAeBKJTE1LS01uP7MAS5NSVr%2BlgEuTUla%2FpYAAAABAFwAAAG%2FAewAFABlALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAFC8buQAUAAQ%2BWbgAAEVYuAALLxu5AAsABD5ZugACAAAAFBESObgABhC5AA8AAfS4AAIQuQASAAH0MDETMxczPgEzMhYVESMRNCYjIgYHESNcJgQDJU4yS0YsMzsrRiwsAeBKJTFaXv7MAS5NSS0t%2FpYAAAAAAgA0%2F%2FQB4wHsABMAJwA1ALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AA8vG7kADwAEPlm5ABkAAfS4AAUQuQAjAAH0MDE3ND4CMzIeAhUUDgIjIi4CNxQeAjMyPgI1NC4CIyIOAjQjO04rK087IyM7TysrTjsjLhotPiQkPy0aGi0%2FJCQ%2BLRrvPF9AIiJAXzw8XUAiIkBdPC9OOB8fOE4vME45Hx85TgAAAgBc%2FycB7AHsABQAJQCDALgAAEVYuAAJLxu5AAkACD5ZuAAARVi4AAMvG7kAAwAIPlm4AABFWLgAAi8buQACAAY%2BWbgAAEVYuAARLxu5ABEABD5ZugAFAAkAERESOboAFAARAAkREjm4ABQQuQAVAAH0uAARELkAGAAB9LgACRC5ACIAAfS4AAUQuQAlAAH0MDEXFSMRMxczPgEzMhYVFA4CIyImJzUeATMyPgI1NC4CIyIGB4gsJgQDI1MtYGAiO00qIkgmKkgcJD4sGREkOikkTSwqrwK5PBwshXA9YEMjHxwqIhwgOlExLEw3HykmAAAAAAIANP8nAcQB7AAUACUAfwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4AA0vG7kADQAGPlm4AABFWLgAEi8buQASAAQ%2BWboACAAFABIREjm6AA8AEgAFERI5uQAaAAH0uAAPELkAHQAB9LgACBC5AB4AAfS4AAUQuQAhAAH0MDE3ND4CMzIWFzM3MxEjNTcOASMiJjcUHgIzMjY3ES4BIyIOAjQiO00rLEEiAgUlLAIgTzBbbC8VKDsmKEkmJkMjJD4tGu86XkIjHhos%2FUe5XR0sgXowTjcfKSYBHSIcITlPAAEAXAAAAUEB7AASAFIAuAAARVi4AAYvG7kABgAIPlm4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAASLxu5ABIABD5ZugACAAAAEhESObgABhC4AA3cuAACELkAEAAB9DAxEzMXMz4BMzIWFwcuASMiBgcRI1wmBAMYRSsOFgwKDBIOIEccLAHgWS04BAYoBQM3RP65AAABACD%2F9AFyAewAMwBJALgAAEVYuAAVLxu5ABUACD5ZuAAARVi4ADAvG7kAMAAEPlm5AAMAAfS6AAsAMAAVERI5uAAVELkAHAAB9LoAJgAVADAREjkwMTceATMyNjU0LgInLgM1ND4CMzIWFwcuASMiDgIVFB4CFx4DFRQOAiMiJic6H0Y0OTkVIikVGzcsGxQoOSYmSRoYGDYlHCgbDRMgKRUcOC0cFSo8JzZaIFcaIzkmFiIYEggKFh8rHxovIxQcFh8SGQ8YIBAVHRYRCAsWIC8jGzElFicbAAAAAQAc%2F%2FQBLQJrABsARQC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAWLxu5ABYABD5ZuAAGELkACQAB9LgAANC4AAYQuAAD0LgAFhC5AA8AAfQwMRMjNT8BMxUzFSMRFB4CMzI2NxcOASMiLgI1Z0tMBiaLiwcSHxkOIQ0MFSoPIy4cCwG6IgSLiyb%2BxxclGw8JBiQIChUmNiAAAAAAAQBV%2F%2FQBtQHgABQAZQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAJLxu5AAkACD5ZuAAARVi4ABEvG7kAEQAEPlm4AABFWLgADC8buQAMAAQ%2BWbgAERC5AAUAAfS6AA0ACQAMERI5uAANELkACAAB9DAxEzMRFBYzMjY3ETMRIycjDgEjIiY1VSwzOitGKiwlBQIjTjJLRgHg%2FtJNSS8zAWL%2BIFAqMlpeAAAAAAEADAAAAaYB4AANAEAAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAANLxu5AA0ABD5ZugAFAAAADRESOTAxEzMTHgEXMz4BNxMzAyMMMGwLGgsEDBkMbC2yNAHg%2FtMjRiEhRiMBLf4gAAEAGAAAApUB4AAhAHYAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAAULxu5ABQACD5ZuAAARVi4ACEvG7kAIQAEPlm4AABFWLgAFy8buQAXAAQ%2BWboABQAhAAAREjm6AA8AFwAUERI5ugAcAAAAIBESOTAxEzMTHgEXMz4BNxMzEx4BFzM%2BATcTMwMjAy4BJyMOAQcDIxgwVgkQCAQIEglXNVcJEgkECBIIVS2KOlQLDwsECBMLUzUB4P7JIT8gID8hATf%2BySE%2FICA%2FIQE3%2FiABKiNDIyNFI%2F7YAAAAAQAOAAABiQHgABkAWwC4AABFWLgAAS8buQABAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4ABkvG7kAGQAEPlm4AABFWLgADy8buQAPAAQ%2BWboABgALAA8REjm6ABQAAQAZERI5MDE3JzMXHgEXMz4BPwEzBxcjJy4BJyMOAQ8BI7GWMU4MGQ4EDRcNSy6VozFVDhwPBA4bDlIv%2B%2BV6FCcUFCcUeun3gxcsFRUsF4MAAAAAAQAM%2FyUBqAHgABwARgC4AABFWLgACC8buQAIAAg%2BWbgAAEVYuAASLxu5ABIACD5ZuAAARVi4ABkvG7kAGQAGPlm5AAMAAfS6AA0ACAAZERI5MDEXHgEzMjY%2FAQMzEx4BFzM%2BATcTMwMOAyMiJzciCBQLLTwSDcUwdAsbDgQLFwpnLb4KHSczIBsWCqoDBUg3KgHp%2FtIeSCAgSB4BLv3kHjktGwonAAAAAQAbAAABegHgAAkAPQC4AABFWLgAAy8buQADAAg%2BWbgAAEVYuAAILxu5AAgABD5ZuQAGAAH0uAAA0LgAAxC5AAEAAfS4AAXQMDE3ASM1IRUBIRUhGwEc%2FQE2%2FuUBJf6hGAGiJhf%2BXicAAAD%2F%2FwAIAAACBgMvAiYABAAAAAcA4QEHAAD%2F%2FwAIAAACBgMvAiYABAAAAAcA4wEHAAD%2F%2FwAIAAACBgMvAiYABAAAAAcA5QEHAAD%2F%2FwAIAAACBgMoAiYABAAAAAcA5wEHAAD%2F%2FwAIAAACBgMeAiYABAAAAAcA6gEHAAD%2F%2FwAIAAACBgNgAiYABAAAAAcA7AEHAAAAAgAVAAAC%2BgKTAAYAFgB8ALgAAEVYuAAOLxu5AA4AED5ZuAAARVi4AA0vG7kADQAEPlm4AABFWLgACS8buQAJAAQ%2BWboAAgAOAA0REjm6AAoADgANERI5uAAKL7kABgAB9LgACRC5AAcAAfS4AA4QuQAQAAH0ugAVAA4ACRESObgAFS%2B5ABMAAfQwMSURIw4BDwEFFSE1IwcjASEVIRUzFSMRAZsEHz0gSQIo%2FqHedzEBbQFu%2Ftn19f8BbDhzPIXXKNnZApMo%2BSj%2B3gD%2F%2FwA3%2FzACDwKfAiYABgAAAAcA7gFTAAD%2F%2FwBhAAAB1AMvAiYACAAAAAcA4QEaAAD%2F%2FwBhAAAB1AMvAiYACAAAAAcA4wEaAAD%2F%2FwBhAAAB1AMvAiYACAAAAAcA5QEaAAD%2F%2FwBhAAAB1AMeAiYACAAAAAcA6gEaAAD%2F%2FwAHAAAAnQMvAiYADAAAAAYA4XgAAAD%2F%2FwBTAAAA6QMvAiYADAAAAAYA43gAAAD%2F%2FwADAAAA7QMvAiYADAAAAAYA5XgAAAD%2F%2FwAFAAAA6wMeAiYADAAAAAYA6ngAAAD%2F%2FwBhAAACGwMoAiYAEQAAAAcA5wFDAAD%2F%2FwA3%2F%2FQCVgMvAiYAEgAAAAcA4QFGAAD%2F%2FwA3%2F%2FQCVgMvAiYAEgAAAAcA4wFGAAD%2F%2FwA3%2F%2FQCVgMvAiYAEgAAAAcA5QFGAAD%2F%2FwA3%2F%2FQCVgMoAiYAEgAAAAcA5wFGAAD%2F%2FwA3%2F%2FQCVgMeAiYAEgAAAAcA6gFGAAAAAwA4%2F%2BkCWQKqAAsAFwAzAIUAuAAARVi4AC4vG7kALgAQPlm4AABFWLgAIC8buQAgAAQ%2BWboAAAAgAC4REjm5AAMAAfS6AAsALgAgERI5ugAMAC4AIBESObgALhC5AA8AAfS6ABcAIAAuERI5ugAYAC4AIBESOboAIwAgAC4REjm6ACYAIAAuERI5ugAxAC4AIBESOTAxNx4BMzI%2BAjU0Ji8BLgEjIg4CFRQWFwEeARUUDgIjIiYnByc3LgE1ND4CMzIWFzcXsR1NLzJSOyAbGRcdSi0yUzogGRcBdyIlKEhkOzZcI0EcRiAkKEhkPDRYIz0dZSIlK09vRT9mJh4fISpNbkQ9ZSYBuSx6S05%2FWjEnJVcWXi14Sk59WS8kIlEWAAAAAAIANwAAAxICkwAUACEAVQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAQLxu5ABAABD5ZuAAFELkAHAAB9LgAB9C6AAwABQAQERI5uAAML7kACgAB9LgAEBC5ABsAAfS4AA7QMDETND4CMyEVIRUzFSMRIRUhIi4CNxQeAjsBESMiDgI3J091TgGY%2Ftn19QEx%2Fl1OdU4nMCBDZUU%2FP0VlQyABTEt4Vi4o%2BSj%2B3igvV3tLQWtOKwJFKktrAAD%2F%2FwBf%2F%2FQCGwMvAiYAGAAAAAcA4QE9AAD%2F%2FwBf%2F%2FQCGwMvAiYAGAAAAAcA4wE9AAD%2F%2FwBf%2F%2FQCGwMvAiYAGAAAAAcA5QE9AAD%2F%2FwBf%2F%2FQCGwMeAiYAGAAAAAcA6gE9AAD%2F%2FwADAAABvAMvAiYAHAAAAAcA4wDfAAAAAgAlAAACOgKTABAAIQBZALgAAEVYuAAhLxu5ACEAED5ZuAAARVi4ABwvG7kAHAAEPlm5AAAAAfS4ACEQuQAKAAH0ugAOACEAHBESObgADi%2B5AA0AAfS4AA4QuAAe0LgADRC4AB%2FQMDElMj4CNTQuAisBFTMVIxETMh4CFRQOAisBESM1NxEBCkNgPx4eP2BDZqOjakxxSyQkSnFMmVFRJytOa0FAakwq%2FyH%2B2wJsLlZ4S0t7Vy8BTB8CASYAAAAAAgBhAAACAAKTAA4AFwA5ALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AA4vG7kADgAEPlm7ABcAAQAMAAQruwACAAEAFgAEKzAxEzMVMzIeAhUUBisBFSM3MjY1NCYrARFhLoY3Vz0gfG%2BGLqllYmNkewKTdRQrRjNhX6bNSFFSP%2F7WAAD%2F%2FwBB%2F%2FQBowLEAiYAHgAAAAcA4AEGAAD%2F%2FwBB%2F%2FQBowLEAiYAHgAAAAcA4gEGAAD%2F%2FwBB%2F%2FQBowLEAiYAHgAAAAcA5AEGAAD%2F%2FwBB%2F%2FQBowKeAiYAHgAAAAcA5gEGAAD%2F%2FwBB%2F%2FQBowKfAiYAHgAAAAcA6QEGAAD%2F%2FwBB%2F%2FQBowLIAiYAHgAAAAcA6wEGAAAAAwBB%2F%2FQC6gHsABAASQBSAJsAuAAARVi4ABYvG7kAFgAIPlm4AABFWLgAHC8buQAcAAg%2BWbgAAEVYuAA5Lxu5ADkABD5ZuAAARVi4ADEvG7kAMQAEPlm4ADkQuQADAAH0ugBBADkAFhESObgAQS%2B5AAwAAfS6ACIAHAAxERI5uAAiL7gAMRC5ACgAAfS4ABYQuQBGAAH0uAAcELkATQAB9LgAIhC5AFIAAfQwMTcUFjMyPgI3LgE1Jw4DAz4DMzIWFz4BMzIWFRwBByEUHgIzMjY3Fw4DIyIuAicOASMiLgI1NDY3NC4CIyIGBwU0JiMiDgIHbzwpEy4vLhULCgFGYj4cFg0kLTMbO0UMGlc2VV0C%2FrQaLj8kJzsbEw4eJCoaIDQqIQ0wbS0dMicWlpsIGS0jLU8YAlRJQR41KRsEejQsDBgjFhZBIhsJGiQuARgJFhINQTc3QXRqCRIJLUw3HxcUIwkQDggRHCMTLjUQIDEiUFQSGzcrGyYSgV1dGzFFKQAA%2F%2F8ANP8wAacB7AImACAAAAAHAO0BCQAA%2F%2F8ANP%2F0Ab0CxAImACIAAAAHAOABBQAA%2F%2F8ANP%2F0Ab0CxAImACIAAAAHAOIBBQAA%2F%2F8ANP%2F0Ab0CxAImACIAAAAHAOQBBQAA%2F%2F8ANP%2F0Ab0CnwImACIAAAAHAOkBBQAA%2F%2F8AGgAAAKoCxAImAGcAAAAGAOByAAAA%2F%2F8AOgAAAMoCxAImAGcAAAAGAOJyAAAA%2F%2F8AAAAAAOQCxAImAGcAAAAGAORyAAAA%2F%2F%2F%2F%2FwAAAOUCnwImAGcAAAAGAOlyAAAAAAEAXAAAAIgB4AADACUAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAAi8buQACAAQ%2BWTAxEzMRI1wsLAHg%2FiAAAP%2F%2FAFwAAAG%2FAp4CJgArAAAABwDmARsAAP%2F%2FADT%2F9AHjAsQCJgAsAAAABwDgAQsAAP%2F%2FADT%2F9AHjAsQCJgAsAAAABwDiAQsAAP%2F%2FADT%2F9AHjAsQCJgAsAAAABwDkAQsAAP%2F%2FADT%2F9AHjAp4CJgAsAAAABwDmAQsAAP%2F%2FADT%2F9AHjAp8CJgAsAAAABwDpAQsAAAADAC7%2F6gHpAfUACQATAC4ASQC4AABFWLgAKS8buQApAAg%2BWbgAAEVYuAAcLxu5ABwABD5ZugAAABwAKRESObkAAgAB9LoACgApABwREjm4ACkQuQAMAAH0MDE3FjMyPgI1NC8BJiMiDgIVFBcBHgEVFA4CIyInByc3LgE1ND4CMzIWFzcXmS9DJD8uGiQULkUkPy0aJAEqGBwjO08rUjs2GjoYHCM7TisoSR02GkwyHzhOL1I4GzMfOU8vUTgBNCBWNjxdQCI4QhVGIFQ2PF9AIhwcQRUAAAADADT%2F9AMrAewAEwA7AEQAcQC4AABFWLgAGS8buQAZAAg%2BWbgAAEVYuAA3Lxu5ADcABD5ZuQAFAAH0uAAZELkADwAB9LgAGRC4AB%2FQuAA3ELgAMdC6ACQAHwAxERI5uAAkL7gAMRC5ACoAAfS4AB8QuQA%2FAAH0uAAkELkARAAB9DAxNxQeAjMyPgI1NC4CIyIOAgc0PgIzMhYXPgEzMhYVFAchFB4CMzI2NxcOASMiJicOASMiLgIlNCYjIg4CB2IZLD0jJD0rGRkrPSQjPSwZLiI7TCo6ZhoaXzpVYgP%2BrxsuQCQnPhsTHUU2P2QaHGA%2FKkw7IgLNTUAeNiobBO8vTjgfHzhOLzBOOR8fOU4wPF9AIkdHQkx0ahISLUw3HxcUIxEeTEFGRyJAXVldXRsxRSkAAAEAXP%2F0AgEC2QA5AGQAuAAARVi4AAMvG7kAAwASPlm4AABFWLgAOS8buQA5AAQ%2BWbgAAEVYuAAZLxu5ABkABD5ZugANABkAAxESObkAIAAB9LoAJQAZAAMREjm6ADEAGQADERI5uAADELkANAAB9DAxEzQ2MzIeAhUUDgIVFB4EFRQOAiMiJic3HgEzMj4CNTQuBDU0PgI1NCYjIgYVESNcXU4hMyQTHyUfHy82Lx8WJzUgJ0QdFh01IBkmGQ0fLjcuHx8kHy8wOUUsAhRdaBUkMRwnNy8vHh0kGxokNioeMiYVHBchFxcRGyQTIywfGSAtJCQ0LzEiLDhUWv37AP%2F%2FAFX%2F9AG1AsQCJgAyAAAABwDgAQgAAP%2F%2FAFX%2F9AG1AsQCJgAyAAAABwDiAQgAAP%2F%2FAFX%2F9AG1AsQCJgAyAAAABwDkAQgAAP%2F%2FAFX%2F9AG1Ap8CJgAyAAAABwDpAQgAAP%2F%2FAAz%2FJQGoAsQCJgA2AAAABwDiAOUAAP%2F%2FAAz%2FJQGoAp8CJgA2AAAABwDpAOUAAAACADz%2F9AHWAtQAFQA8AFkAuAAARVi4ADcvG7kANwASPlm4AABFWLgAIC8buQAgAAQ%2BWbsAKgABAAwABCu6ADMAMAADK7gAIBC5AAAAAfS4ADAQuAAW0LgAMxC4ADfcuAAzELgAOtAwMSUyPgI1NCcuAyMiDgIVFB4CEx4DFRQOAiMiLgI1ND4CMzIWFy4BJwcnNy4BJzceARc3FwELKTsnEwMTJyYmEyk9KhUaLDxlHjEkFB41Sy0oSzkjHjdMLitMHQ48Ko4PhBw%2BIRYlRSCODxsjPFIvIB4cJBQHHjNDJSpHMxwCRB5JV2g9PGJFJSA7VjYxUzohJiZKaipKHEQYKRMeFC4dShsAAAAAAgBc%2FycB7ALPABYAJwBXALgAAEVYuAAILxu5AAgACD5ZuAAARVi4AAIvG7kAAgASPlm4AABFWLgAAS8buQABAAY%2BWbgAAEVYuAASLxu5ABIABD5ZuQAaAAH0uAAIELkAJAAB9DAxFyMRMx0BPgEzMh4CFRQOAiMiJicVNR4BMzI%2BAjU0LgIjIgYHiCwsJFItMEkwGCI7TSojRyYqSBwkPiwZESQ6KSRNLNkDqM9bHCsjQFo4PWBDIx4cWIMiHCA6UTEsTDcfKSYAAAAAAQAiAAACKgLbACoAfAC4AABFWLgAFC8buQAUAAg%2BWbgAAEVYuAAoLxu5ACgAEj5ZuAAARVi4ABAvG7kAEAAEPlm4ACgQuQADAAH0uAAUELgAJNC4AAjQuAAUELkAEQAB9LgADdC4AAnQuAAQELgADNC4ABQQuAAT0LgAKBC4ABjQuQAfAAH0MDEBLgEjIgYdATMVIxEjESMRIxEjNTc1NDYzMhYXBy4BIyIGHQEzNTQ2MzIXAh4PHQ4mJW9vLN4sQUFEPhQpFAwSIhErK94%2BOSMjAqcIBjk0aCb%2BRgG6%2FkYBuiIEWUtNCQkkCQc9OFZrSEgQAAEAIf%2F0AhAC2wAuAIkAuAAARVi4ABAvG7kAEAAIPlm4AABFWLgAFC8buQAUABI%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAMvG7kAAwAEPlm4ABAQuQANAAH0uAAJ0LgAEBC4AA%2FQuAAPL7gAFBC5ABoAAfS4ABAQuAAf0LgAI9C4AAkQuAAk0LgAAxC5ACsAAfQwMSUOASMiLgI1ESMRIxEjNTc1NDYzMhcHLgEjIgYdATM3MxUzFSMRFB4CMzI2NwIQFSsPIy0cC7ssQkI%2BOSMjDA8dDiYlvAYljIwHEiAZDiENBggKFSY2IAE1%2FkYBuiIEa0hIECQIBjk0aIuLJv7HFyUbDwkGAAADACT%2F9AIyAp8ADwAfAEwAjAC4AABFWLgANy8buQA3ABA%2BWbgAAEVYuAAlLxu5ACUABD5ZuAAARVi4ACAvG7kAIAAEPlm6AEIAIgADK7gAJRC5AAMAAfS6AAYAIgBCERI5ugALACUANxESObgACy%2B4ABPcuAA3ELkAHQAB9LoALwALABMREjm6AD8ACwATERI5ugBJACIAQhESOTAxNzI2Ny4BJw4DFRQeAgMUFhc%2BAzU0LgIjIgYBJicOASMiLgI1ND4CNy4BNTQ%2BAjMyFhUUDgIHHgEXPgE3Mw4BBx4BF%2BYpSh81YyMWJx4RGCg3IBQRGS4kFQgRGxQsMQF7QUwkWDgnRjMeFyUxGhQYFCQyHjY4Gis3HCNhMyM0ESsUOSgjQB0aJyAweEARJCcrGCE1JRUB9CFHJBIkKCsaEB8YD0D9uRc8JS4ZL0IpITYvKRMqUyYgNicWRDQgNi8rFT92LS1tP0R7MxwlCwAAAgAw%2F%2FQBrgKLAAsAFwA1ALgAAEVYuAAGLxu5AAYADj5ZuAAARVi4AAAvG7kAAAAEPlm5AAwAAfS4AAYQuQASAAH0MDEXIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBbvXGNjXFxjY1xDT09DQlBQDK2hoKmpoKGtJpWTk5CQk5OVAAABAFQAAAGiAn8ADABDALgAAEVYuAAHLxu5AAcADj5ZuAAARVi4AAwvG7kADAAEPlm5AAEAAfS4AAcQuQAEAAH0uQACAAH0uAABELgACdAwMTczESM1PgE3MxEzFSFUlnInPRcki%2F6yJwISHgcUDf2oJwAAAAEAJwAAAbECiwAdAD0AuAAARVi4AA8vG7kADwAOPlm4AABFWLgAHC8buQAcAAQ%2BWbkAGgAB9LgAF9C4AADQuAAPELkACAAB9DAxNz4DNTQmIyIGByc%2BATMyFhUUDgIHPgE7ARUhKU92TydDSCxMHR0kVztWXipMbUIaNxra%2FngcUH9pWSo8UjAkHCg2YlEwX2l3RgIDKAAAAQAd%2F%2FQBqwKLADcAUwC4AABFWLgAHy8buQAfAA4%2BWbgAAEVYuAAyLxu5ADIABD5ZuQAFAAH0ugAPAB8AMhESObgADy%2B5ABAAAfS4AB8QuQAYAAH0ugAoABAADxESOTAxNx4DMzI%2BAjU0LgIjNTI%2BAjU0JiMiBgcnPgEzMh4CFRQGBxUeAxUUDgIjIi4CJzcOIis1ISA3KBYZNlQ8N00vFUY7LUocGiFUOCVALxtFNR40KBceNUcpJj4xJw9tEB0XDhQlNCAhNicWJxYlMx02QSkdHiAuFSc5JT9NEgQGHSo3IipDLxkQGiAQAAACABAAAAHAAn8ACQAUAFcAuAAARVi4ABIvG7kAEgAOPlm4AABFWLgADS8buQANAAQ%2BWbsADgABAAAABCu4ABIQuAAE3LgAABC4AAnQuAAOELgAC9C4AAkQuAAQ0LgAABC4ABPQMDElNTQ2NyMOAQcDBSMVIzUhNQEzETMBNgICBAwaDrwBel8r%2FtoBKShf5eoWQhYUJhb%2B%2BCa%2FvxoBpv5mAAAAAAEAGv%2F0Aa8CfwAoAEcAuAAARVi4ABIvG7kAEgAOPlm4AABFWLgAIy8buQAjAAQ%2BWbkABQAB9LoAGQASACMREjm4ABkvuAAN3LgAEhC5ABQAAfQwMTceAzMyPgI1NCYjIgYHJxMhFSMHPgEzMh4CFRQOAiMiLgInMw4iKjQhIDorGlRIJTUdHxcBJ%2F8UGTYjKEg0HyM5SScmPTEmD2kPHBYNGS0%2FJ05XFxQTASsn5w8TGDFNNDNPNxwPGR8PAAAAAAIANP%2F0AbQCiwARADAAQwC4AABFWLgALS8buQAtAA4%2BWbgAAEVYuAAlLxu5ACUABD5ZuwAdAAEACgAEK7gAJRC5AAAAAfS4AC0QuQAVAAH0MDElMj4CNTQuAiMiBgceAxMuASMiDgIHPgEzMhYVFA4CIyImNTQ%2BAjMyFhcBBhwvIhQQITUkIlInAxcoO6wVOB8mRDQfASFTLVVdHDA%2FJGFwJ0FVLi1BGRoZLDsiIjsrGCs1M1M7IQIVGhsgSnlYKTBlYSxJNR6ckmSKViUiHAABACwAAAG1An8ADwAzALgAAEVYuAAHLxu5AAcADj5ZuAAARVi4AAAvG7kAAAAEPlm4AAcQuQAFAAH0uAAJ0DAxMz4DNyE1IRUOAwcjvAQZLkYw%2Fq8BiTlLLRQEMGGhj4NEJxpMjJGeXgAAAAADACj%2F9AG1AosAEQAjAE0AVwC4AABFWLgANC8buQA0AA4%2BWbgAAEVYuABJLxu5AEkABD5ZuQAFAAH0ugAPAEkANBESObgADy%2B4ABLQuAA0ELkAGgAB9LgADxC4ACncuAASELgAPtwwMTcUHgIzMj4CNTQuAicOATc%2BATU0LgIjIg4CFRQeAgc0PgI3NS4DNTQ%2BAjMyHgIVFA4CBxUeAxUUDgIjIi4CVBgqOiMiNycVITdGJTFAzikrEiExHxstIRIdMD3aFyUtFxIhGRAaLT0jKUAtFxIbIA4VKB8UHDNIKyxKNh%2BmHjMmFhQkMBslMycdDx1PdCFJKhsvJBUSHywaIjElHLcgOC0jDAQMHSUrGiI6KRcZLT0kGjEqIgsEDR4mMiAjPS0aGy9AAAACACv%2F9AGqAosAEQAwAEMAuAAARVi4ACUvG7kAJQAOPlm4AABFWLgALS8buQAtAAQ%2BWbsAAAABAB0ABCu4ACUQuQAIAAH0uAAtELkAFQAB9DAxEzI2Ny4DIyIOAhUUHgIHHgEzMj4CNw4BIyImNTQ%2BAjMyFhUUDgIjIiYn4iJSJwMXKTsnGzAiFBAiNGoVOCAmRDQfASFULVRdHDA%2FJGBwJ0BWLi1CGAEjLTQzUzsgGSs7IiM7KxjTGhsgSnlYKDBlYStKNB6bkmWKVSYiHAAAAQBD%2F%2FQAmABPAAsAGAC4AABFWLgACS8buQAJAAQ%2BWbgAA9wwMTc0NjMyFhUUBiMiJkMaEREZGRERGiEWGBgWFRgYAAABADD%2FZQClAE8AEQAYALgAAEVYuAAFLxu5AAUABD5ZuAAL3DAxFz4BNwYjIiY1NDYzMhYVFAYHMCIqAQQIERkaERccOi19Ej0qARYUFBYmITdUGP%2F%2FAEP%2F9ACYAc0CJwCGAAABfgAGAIYAAP%2F%2FADD%2FZQClAc0CJwCGAAABfgAGAIcAAAACAFf%2F9ACsAp4ABQARACkAuAAARVi4AAEvG7kAAQAQPlm4AABFWLgADy8buQAPAAQ%2BWbgACdwwMRM1MwcDIwc0NjMyFhUUBiMiJmsuAQYhGhoRERkZEREaAldHR%2F5ckhYYGBYVGBgAAAIAV%2F9CAKwB7AAFABEAGAC4AABFWLgADy8buQAPAAg%2BWbgACdwwMR8BIzUTMzcUBiMiJjU0NjMyFpgBLgYhGhkRERoaEREZd0dHAaSTFxgYFxQYGAAAAAACACX%2F9AFgAqoAHwArACYAuAAARVi4ACkvG7kAKQAEPlm7ABMAAQAMAAQruAApELgAI9wwMTcmPgQ1NC4CIyIGByc%2BATMyHgIVFA4EFwc0NjMyFhUUBiMiJqMGESAoJBgNHCsdJUMZGx1ONCU6KBUZJCkhEwU7GRERGhoRERmzKUM5MjE0HxcrIBMhHxkhLRcpOCEiOTQzNz8mkhYYGBYVGBgAAAIAM%2F82AW4B7AAfACsAJgC4AABFWLgAKS8buQApAAg%2BWbsADAABABMABCu4ACkQuAAj3DAxExYOBBUUHgIzMjY3Fw4BIyIuAjU0PgQnNxQGIyImNTQ2MzIW8AURICgkGA0cKx4kQxkcHU8zJTooFRkkKSESBTsZEREZGRERGQEtKUM5MjE0HxcqIRMiHhkgLhcpOCEiOTUyNz8mkxcYGBcUGBgAAQBTAd0AhgK1AAUACwC6AAIABAADKzAxEyczFQcjVAEzCSECcEVFkwAAAP%2F%2FAFMB3QETArUAJgCOAAAABwCOAI0AAAABADoB4AChAr8AEQANALsABQABAAsABCswMRMOARU2MzIWFRQGIyImNTQ2N6EhIgIGDxkXERQYLSgCqBs2KwESExMVIyA2TBoAAAAAAQA6Ad0AogK8ABEADQC7AAsAAQAFAAQrMDETPgE1BiMiJjU0NjMyFhUUBgc6ISICBg4ZFhEUGS0pAfQbNisBEhMTFSMgNkwaAAAA%2F%2F8AOgHgAS4CvwAmAJAAAAAHAJAAjQAA%2F%2F8AOgHdAS8CvAAmAJEAAAAHAJEAjQAA%2F%2F8AOv9%2BAKIAXQIHAJEAAP2hAAD%2F%2FwA6%2F34BLwBdACcAkQAA%2FaEABwCRAI39oQAAAAEAKwBIAM0BsAAGAAsAugACAAYAAyswMTc1NxcHFwcriRl7exnpJqEVn6ETAAAAAAEANgBIANgBsAAGAAsAugACAAUAAyswMTcnNxcVByewehiKihj8nxWhJqETAAAA%2F%2F8AKwBIAVoBsAAmAJYAAAAHAJYAjQAA%2F%2F8ANgBIAWUBsAAmAJcAAAAHAJcAjQAAAAEAKADmAQQBDQADAA0AuwABAAEAAgAEKzAxEzMVIyjc3AENJwAAAP%2F%2FACgA5gEEAQ0CBgCaAAAAAQAoAOgBuAEMAAMADQC7AAEAAQACAAQrMDETIRUhKAGQ%2FnABDCQAAAEAKADoAvgBDAADAA0AuwABAAEAAgAEKzAxEyEVISgC0P0wAQwkAP%2F%2FAEMBFQCYAXACBwCGAAABIQAAAAEAKACaAPEBdgATAAsAugAKAAAAAyswMTciLgI1ND4CMzIeAhUUDgKMEyQcEREcJBMTJRwRERwlmg8dKBoZKRwQEBwpGRooHQ8AAAABAAz%2FiwHo%2F7EAAwANALsAAAABAAEABCswMQUVITUB6P4kTyYmAAAAAQBY%2F1EA9wLbAA4ACwC6AAYAAAADKzAxFy4BNTQ2NxcOARUUFhcH3D5GRj4bPDw8PBuvZN2EhN1kEF%2Ffd3ffXxAAAAABACD%2FUQC%2FAtsADgALALoABwANAAMrMDEXPgE1NCYnNx4BFRQGBycgPDw8PBs9R0c9G59f33d3318QZN2EhN1kEAAAAAEAYv9oAQICxAAHABcAuwAFAAEABgAEK7sAAQABAAIABCswMRMzFSMRMxUjYqB9faACxB383h0AAQAV%2F2gAtQLEAAcAFwC7AAAAAQAFAAQruwAEAAEAAQAEKzAxFxEjNTMRIzWSfaCgewMiHfykHQABACP%2FaAECAsQAMwArALsAAAABAAEABCu7AB4AAQAfAAQruwAQAAEADwAEK7oAKgAPABAREjkwMQUVIyIuAjU0NjU0LgIjNTI%2BAjU0JjU0PgI7ARUjIgYVFBYVFAYHFR4BFRQGFRQWMwECIhwpHA4IBxMiGhoiEwcIDhwpHCIfLh8GFR4eFQYfLnsdDB0xJjhhNA8eFg4gDhYcDzZhOCYxHQwdMjUxWTYtMgkECTQrNlkxNTIAAAAAAQAV%2F2gA9ALEADMAKwC7AAAAAQAxAAQruwAWAAEAEwAEK7sAIwABACQABCu6AAoAJAAjERI5MDEXMjY1NCY1NDY3NS4BNTQ2NTQmKwE1MzIeAhUUBhUUHgIzFSIOAhUUFhUUDgIrATU0Lh8GFh0dFgYfLh8iHCkcDggHEyIaGiITBwgOHCkcInsyNTFZNis0CQQJMi02WTE1Mh0MHTEmOGE2DxwWDiAOFh4PNGE4JjEdDB0AAQAJ%2F2ABYALGAAMAGAC4AABFWLgAAC8buQAAABI%2BWbgAAtwwMQEzASMBOib%2BzyYCxvyaAAEAX%2F8GAIMC7gADAAsAugABAAIAAyswMRMzESNfJCQC7vwYAAEABf9gAV0CxgADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDETMwEjBSYBMiYCxvyaAAACAF%2F%2FBgCDAu4AAwAHAAsAugABAAUAAyswMRMzESMXESMRXyQkJCQC7v4pO%2F4qAdYAAAAAAQBGAc4BRQLIAA4AFAC4AABFWLgABS8buQAFABI%2BWTAxEzcnNxc3Mxc3FwcXBycHaTdaCV8HIAdfClo2G0BCAeJYJB4aZmUZHiRYFFNTAAACADL%2FzAGtAqkADwBJABcAuwAxAAEAKgAEK7sARgABABMABCswMSU%2BATU0LgInDgEVFB4CEy4BIyIOAhUUHgQVFAYHHgEVFA4CIyImJzceATMyNjU0LgQ1NDY3LgE1ND4CMzIWFwE4JCctQ0wfIiotQ0xNGDUmGSQWCyo%2BST4qMSYQEhcnNB00UB0eGjsuLjYqP0k%2FKjMmDxIQIjIjKkYctREqKSgzJB8UFC4mJzEjHgGLFBoNFRwOISkhHSk8LjI5FRApGxsuIRIjHBwYHjIjIisgHSg6LjA%2FFA8oGhUqIRUeFwACACr%2FsAGjApMAAwAQACUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADi8buQAOABA%2BWTAxATMRIwMiLgI1ND4COwERAXUuLlI3XEIkIj5WMywCk%2F0dAUQXMU84OE8yF%2F5hAAAAAwAz%2F%2FQCsgKMABMAJwBFADMAuwA6AAEAQQAEK7sALQABADQABCu4AC0QuAAj3LkABQAB9LgAQRC4ABncuQAPAAH0MDETND4CMzIeAhUUDgIjIi4CNxQeAjMyPgI1NC4CIyIOAhc0PgIzMhYXBy4BIyIGFRQWMzI2NxcOASMiLgIzM1h0QUB0WDMzWHRAQXRYMyMuTmc6OWdOLi5OZzk6Z04ucx4xQSQoOBgXFy0ePExJPSQ4FxQbPjAkPzAcAUJLelYvL1Z6S0x7VzAwV3tMRHBPLCxPcERDb08rK09vQytGMBofGBoWFlJES1YdFRwYIxszSQAAAAAEABIBRAF%2BAsgAEwAnADcAQABXALgANi%2B4ACkvuAA2ELgAFNy5AAAAAfS4ACkQuAAe3LkACgAB9LoANAA2ACkREjm4ADQvuQA4AAH0ugAxADgANBESObgANhC4ADPQuAApELkAPgAB9DAxEyIuAjU0PgIzMh4CFRQOAicyPgI1NC4CIyIOAhUUHgIDMzIeAhUUBgcXIycjFSM3MjY1NCYrARXIJUIyHR0yQiUlQzEdHTFDJR84KBgYKDgfIDcoGBgoNyRFDxsWDRcRMSUnLyA9FxwVGyABRBwyRywsSDMcHDNILCxHMhwdGSs8JCQ9LRkZLT0kJDwrGQEPBg8YExMgBVZMTGcRFBEVSwAAAgA0%2F24C%2BwJ5AEYAVAA%2FALsAPAABAEIABCu7ACgAAQAPAAQruwBKAAEAFgAEK7sAIAABAFAABCu7AAUAAQAyAAQrugAjAFAAIBESOTAxNzQ%2BAjMyHgIVFA4CIyImJyMOASMiLgI1ND4CMzIXMzczBwYzMj4CNTQuAiMiDgIVFB4CMzI2NxcGIyIuAjcUFjMyPwEuASMiDgI0QW2QT0h1USwiNkEfKDUEAho9IxcqHxIZMEUsNR4CCSIkIl4YMykbJ0hnQUWAYzwsT29DMlIkEFZlSHtaM%2BguIjI6HxIhFyI2JRTKYp9xPS5TdUdAYUIhJScdKREiMyIkUEIrMCi9hx45UjVAakopOGeRWUl1USwaFh42L1mBUjkuQ60cFSM2QgAAAAIAJAAAAcECigAbAB8AmwC4AABFWLgACC8buQAIAA4%2BWbgAAEVYuAAMLxu5AAwADj5ZuAAARVi4ABYvG7kAFgAEPlm4AABFWLgAGi8buQAaAAQ%2BWbsAAwABAAAABCu7AAcAAQAEAAQruAAHELgACtC4AAcQuAAO0LgABBC4ABDQuAADELgAEtC4AAAQuAAU0LgAABC4ABjQuAADELgAHNC4AAQQuAAd0DAxNyM1MzcjNTM3MwczNzMHMxUjBzMVIwcjNyMHIz8BIwd3U1cVWFwZIxmVGiIZUlUVVlsZIxmVGiPXFZYV1iSqJMLCwsIkqiTW1tb6qqr%2F%2FwBeAbgA1gM%2BAgcAtwAAAbgAAP%2F%2FAC8BuAE3A0oCBwC4AAABuAAA%2F%2F8AKAGsATQDSgIHALkAAAG4AAD%2F%2FwAuAbgBPQM%2BAgcAugAAAbgAAAACACj%2F9AFCAZIACwAXACgAuAAGL7gAAEVYuAAALxu5AAAABD5ZuQAMAAH0uAAGELkAEgAB9DAxFyImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWtUJLS0JCS0tCLzc3Ly83NwxrZWRqamRlayFbVFRZWVRUWwAAAAEAXgAAANYBhgAIACIAuAAGL7gAAEVYuAAILxu5AAgABD5ZuAAGELkAAAAB9DAxEyM1PgE3MxEjsFIdKREhJgFEGwYTDv56AAEALwAAATcBkgAaACwAuAAPL7gAAEVYuAAZLxu5ABkABD5ZuQAXAAH0uAAA0LgADxC5AAgAAfQwMTc%2BAzU0JiMiBgcnPgEzMhYVFA4CBzMVIzgySS8XLycbLxEZEkElNkMZLD8lwP8ZLkg6MRkrMiQaFx4rPT4fODo%2FJSIAAAAAAQAo%2F%2FQBNAGSACoAPgC4ABcvuAAARVi4ACcvG7kAJwAEPlm6AAoACQADK7gAJxC5AAMAAfS4ABcQuQAQAAH0ugAdAAkAChESOTAxNx4BMzI2NTQmIzUyNjU0JiMiBgcnPgEzMhYVFAYHHgMVFA4CIyImJ0USOSIlNkpAOz8tJhcvExkVOyYxRSsgEiAaDxQkMBsuRxRVHSMrKCYqHDIiICkdFxYbJDYxJTENAxAYIRUbKx0QLR4AAAIALgAAAT0BhgAFABAATAC4AA4vuAAARVi4AAkvG7kACQAEPlm7AAAAAQAKAAQruAAOELkAAgAB9LgAABC4AAXQuAAKELgAB9C4AAUQuAAM0LgAABC4AA%2FQMDE3NTcjDwEXIxUjNSM1NzMVM98EBDhJ3zoksbEkOpJXaFNsIHJyFf%2F0%2F%2F8AKgEFAR0CUwIGAL0AAP%2F%2FACEBBQFFAlMCBgC%2BAAAAAgAqAQUBHQJTABsAJAA7ALgAAC%2B4ABIvuwAGAAEAHwAEK7gAEhC5AAsAAfS4AAAQuAAX0LgAABC5ABwAAfS6ABkAAAAcERI5MDETIiY1NDY3NC4CIyIGByc%2BATMyFh0BIycjDgEnMjc1DgEVFBaLKzZibAcQGhUePBEPFEMnOi0eBgQVNRcvNV1KJAEFMCs1NwoTIhkOGQwbDh1FOcgnEh0gMWYKLSIgHgAAAAIAIQEFAUUCUwATAB8AGwC4AAovuAAAL7kAFAAB9LgAChC5ABoAAfQwMRMiLgI1ND4CMzIeAhUUDgInMjY1NCYjIgYVFBazHjYnFxcnNh4eNicXFyc2HjA7OzAwOzsBBRcrPicoPisWFis%2BKCc%2BKxchSjw8Sko8PEoAAAACACoBvwEOAqwAEwAfABcAuwAUAAEAAAAEK7sACgABABoABCswMRMiLgI1ND4CMzIeAhUUDgInMjY1NCYjIgYVFBacFikgExMgKRYWKSATEyApFiMtLSMjLS0BvxAeLBwcLB8QEB8sHBwsHhAgMSUmMjImJTEAAAACAB4AcgHAAiIAIgA2AEoAuAAARVi4AAgvG7kACAAKPlm4AABFWLgADS8buQANAAo%2BWbgAAEVYuAASLxu5ABIACj5ZuwAoAAEAHwAEK7gADRC5ADIAAfQwMT8BLgE1NDY3JzcXPgEzMhYXNxcHHgEVFAYHFwcnDgEjIicHNxQeAjMyPgI1NC4CIyIOAh5CEhQUEkIbQhc9ICA9F0MaQhIUFBFBGkMXPSBCMkItFiUyHBwyJRYWJTIcHDIlFo5DGDwjJD4YRBxFFRcXFUUcRBg%2BJCM8GEMcRBYXLUTWIjkoFxcoOSIiOikXFyk6AAEAO%2F%2BSAaMC7QAxAF0AuAAARVi4ACsvG7kAKwAOPlm4AABFWLgAFS8buQAVAAQ%2BWbgAKxC5AAUAAfS6AAgAFQArERI5uAAVELgAEtC4ABUQuQAcAAH0ugAfACsAFRESObgAKxC4AC7QMDEBLgMjIgYVFB4EFRQGBxUjNS4BJzceATMyNjU0LgQ1ND4CNzUzFR4BFwF4DhseJBc0QCtAS0ArV0MnNFYdGB1QND9DK0BLQCsVJTQfJzE%2BGgIoDhYQCEEyLDUnIS9HOUhWBmNjBC0cHxosRDcxPSsiLD8zHzYpGgNjYwMoGwABADYAAAGsAosALABZALgAAEVYuAATLxu5ABMADj5ZuAAARVi4AAIvG7kAAgAEPlm5AAAAAfS6ACQAEwACERI5uAAkL7gACtC4ACQQuQAjAAH0uAAL0LgACy%2B4ABMQuQAaAAH0MDElFSE1PgE1NCYnIzU3My4BNTQ2MzIWFwcuASMiDgIVFBYXMxUjHgEVFAYHFQGs%2Fo04MgUEZEIYCxVbTzRFFx0VNigfLx8QFQulnQQEJiIoKBsgaDoTJBEhAyZLJ09bKh0bGSIUJDAbKEknJBEjFD5SIQQAAAAAAQAeAAABwQJ%2FAB0AhAC4AABFWLgAHS8buQAdAA4%2BWbgAAEVYuAAJLxu5AAkADj5ZuAAARVi4ABQvG7kAFAAEPlm6AAQAHQAUERI5ugAZAB0AFBESObgAGS%2B5AAwAAfS4ABkQuAAN0LgAGRC4ABjQuAAYL7gAENC4ABgQuQAVAAH0uAAR0LgAGRC5ABsAAfQwMRMXHgEXMz4BPwEzAzMVIxUzFSMVIzUjNTM1IzUzA05eECASBBMfEV4urpqoqKgtpqammKwCf8EhQyUlQyHB%2FrAhRyKlpSJHIQFQAAEAGP%2F0AdoCiwA1AG0AuAAARVi4ABkvG7kAGQAOPlm4AABFWLgAAy8buQADAAQ%2BWbsALQABAC4ABCu4AC4QuAAJ0LgALRC4AArQuAAtELgAJdy4ABLQuAAlELkAJAAB9LgAE9C4ABkQuQAgAAH0uAADELkAMgAB9DAxJQ4BIyIuAicjNTcmNDU8ATcjNTc%2BAzMyFhcHLgEjIgYHIRUhBhQVHAEXMxUjHgEzMjY3AdogTjgsSjgmB0E%2BAQE%2BQQcmPFEwLUoWHRY3I1BgCwEW%2FucBAfHuDVpIKj8dUiwyJENfPB0ECxQLCRIIHQQ9YUQkLiAbHiV3aSEIEQkLFQshZnYoKQAAAgA%2B%2F%2BQBswKMAAgAJwA3ALsAJAABAAwABCu7ABwAAQAjAAQruAAjELgAANC4ACQQuAAI0LgADBC4AA%2FQuAAcELgAGdAwMRMOAxUUFhc3DgEHFSM1LgM1ND4CNzUzFR4BFwcuAScRPgE3%2FyA3JxZPRbQdSSwiKkczHR41RigiMEAXGBc2IiU%2BGAH2BSAxQidOZgoXGyMCbG0EIjtSMzRROyIEb20CIxccFBsC%2Fn8CHhYAAAAAAf9b%2F%2FQA8QKfAAMAGAC4AABFWLgAAC8buQAAAAQ%2BWbgAAdwwMQcBMwGlAXAm%2FpEMAqv9VQAAAP%2F%2F%2F1v%2F9ADxAp8CBgDGAAD%2F%2FwAo%2F%2FQC%2FQKfACcAtgAAAQ0AJwDGAWsAAAAHALYBuwAAAAD%2F%2FwBK%2F%2FQCzwKfACcAt%2F%2FsAQ0AJwDGAVYAAAAHALoBkgAAAAD%2F%2FwBK%2F%2FQC3wKfACcAt%2F%2FsAQ0AJwDGAT8AAAAHALgBqAAAAAD%2F%2FwAo%2F%2FQC4gKfACcAuQAAAQ0AJwDGAYUAAAAHALoBpQAAAAAAAQAiAG4BvQImAAsAHQC7AAMAAQAAAAQruAADELgABtC4AAAQuAAI0DAxEyM1MzUzFTMVIxUj27m5Kbm5KQE3JsnJJskAAAAAAQAiATcBvQFdAAMADQC7AAEAAQACAAQrMDETIRUhIgGb%2FmUBXSYAAAEAMwCHAasCDQALACUAuAAARVi4AAMvG7kAAwAKPlm4AABFWLgABS8buQAFAAo%2BWTAxPwEnNxc3FwcXBycHM6KiG6GiGqGhGqKho6enHKmpHKenHKioAAADACIAbQG9AiUACwAXABsAIQC7AA8AAQAVAAQruwAGAAEAAAAEK7sAGQABABoABCswMRMiJjU0NjMyFhUUBgM0NjMyFhUUBiMiJichFSHvEBYWEBEVFTcWEBEVFREQFqcBm%2F5lAdUWExEWFhETFv7BERYWERMWFtomAAD%2F%2FwAiANIBvQHDAiYAzQBmAAYAzQCbAAAAAQAiAJIBvQIGAAkAFAC4AABFWLgAAS8buQABAAo%2BWTAxEyUVDwEVHwEVJSIBm%2BiFhej%2BZQFipCtaMwQzWiukAAEAIgCSAb0CBgAJABQAuAAARVi4AAgvG7kACAAKPlkwMQEFNT8BNS8BNQUBvf5l6IWF6AGbATakK1ozBDNaK6QAAAAAAgAiAAABvQImAAsADwA4ALgAAEVYuAAOLxu5AA4ABD5ZuwADAAEAAAAEK7gAAxC4AAbQuAAAELgACNC4AA4QuQAMAAH0MDETIzUzNTMVMxUjFSMHIRUh27m5Kbm5KbkBm%2F5lATYly8slyUglAAAAAAEAQgEiAZ0CngAJABoAuAAARVi4AAAvG7kAAAAQPlm5AAUAAfQwMRMzEyMvASMPASPYLpcrTTQEM00rAp7%2BhMuFhcsAAQAoAQoBtgGKABcAJwC7AAgAAQAPAAQruAAPELgAFNy5AAMAAfS4AAvQuAAPELgAF9AwMRM%2BATMyHgIzMjY3Fw4BIyIuAiMiBgcoFjsdHS8rKBYXJhIcFTsdHS8rKBYXJhIBNyopHCIcHCMUKSgcIhwcIwABACIAbgG9AV0ABQANALsAAQABAAQABCswMRMhFSM1ISIBmyn%2BjgFd78kAAAEAXP84Ab0B4AAXABoAuAAARVi4ABEvG7kAEQAEPlm5AAUAAfQwMRMzERQWMzI2NxEzESMnIw4BIyImJxcVI1wsNDorRSssJgQDIkswJTQUAiwB4P7STUkvMwFi%2FiBQKjEWIVqaAAD%2F%2FwCzAjwBQwLEAAcA4AELAAAAAP%2F%2FANMCPAFjAsQABwDiAQsAAAAA%2F%2F8AmQI8AX0CxAAHAOQBCwAAAAD%2F%2FwCPAkUBhwKeAAcA5gELAAAAAP%2F%2FAJgCVgF%2BAp8ABwDpAQsAAAAA%2F%2F8AmgJeAXwCggAHAOgBCwAAAAD%2F%2FwC5AhsBXQLIAAcA6wELAAAAAP%2F%2FAMr%2FMAFOAAIABwDtARQAAAAAAAH%2FqAI8ADgCxAADABgAuAAARVi4AAMvG7kAAwAMPlm4AAHcMDEDMxcjWDRcJgLEiAAAAAAB%2F48CxQAlAy8AAwALALoAAQADAAMrMDEDMxcjcTpcKAMvagAB%2F8gCPABYAsQAAwAYALgAAEVYuAAALxu5AAAADD5ZuAAC3DAxAyM3MxImXDQCPIgAAAAAAf%2FbAsUAcQMvAAMACwC6AAIAAAADKzAxEyM3MwMoXDoCxWoAAf%2BOAjwAcgLEAAcANwC4AABFWLgABi8buQAGAAw%2BWbgAAEVYuAADLxu5AAMADD5ZuAAGELgAANy6AAUAAAAGERI5MDEDMxcjJyMHIxMmXyVLBEslAsSIY2MAAAAB%2F4sCxQB1Ay8ABwAXALoABgABAAMruAAGELgAB9y4AAPQMDEDNzMXIycjB3VgKmAoSwRLAsVqakhIAAAB%2F4QCRQB8Ap4AGwBBALgAAEVYuAAALxu5AAAADD5ZuAAARVi4ABMvG7kAEwAMPlm7ABgAAQAFAAQruAATELkACgAB9LgABRC4AA7QMDEDPgMzMh4CMzI2NzMOAyMiLgIjIgcjfAEIERkSEh4aGA0QEgQeAQgRGRISHhkZDR4IHgJFECAZEBEVER0aECAZEBEVETcAAf9%2BAswAggMoABsAIwC6AAAAEwADK7oABQAOAAMruAAAELgACNC4AA4QuAAW0DAxEyIuAiMiBgcjPgMzMh4CMzI2NzMOAzsUHxsaDxAWAx0BChIZERQeGxsPEBYDHQEKEhkCzBIVEh8aESEaEBIVER4aESAbEAAAAf%2BPAl4AcQKCAAMACwC4AAMvuAAB3DAxAzMVI3Hi4gKCJAAAAv%2BNAlYAcwKfAAsAFwAoALgAAEVYuAAALxu5AAAADD5ZuAAG3LgAABC4AAzQuAAGELgAEtAwMQMiJjU0NjMyFhUUBjMiJjU0NjMyFhUUBk8QFBQQEBUVjhAVFRAQFBQCVhUQDxUVDxAVFRAPFRUPEBUAAAAC%2F40C1QBzAx4ACwAXABsAugAGAAAAAyu4AAAQuAAM0LgABhC4ABLQMDEDIiY1NDYzMhYVFAYzIiY1NDYzMhYVFAZPEBQUEBAVFY4QFRUQEBQUAtUTEREUFBERExMRERQUERETAAAAAAL%2FrgIbAFICyAALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYjLy8jIy8vIxYeHhYWHh4CGzAmJzAwJyYwGiEbHCEhHBshAAAAAAL%2FrgK8AFIDYAALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYjLy8jIjAwIhQfHxQWHh4CvCwmJS0tJSYsGhwcGh4eGhwcAAAAAAH%2Ftv8wADoAAgARABMAugACABEAAyu6AAsACgADKzAxJzMHHgEVFA4CByc%2BATU0JicIIx0YJBUjLRgHKjMmHQI4CB8eFB0UDQMeBhgVFxYIAAAAAAH%2Ftv8wADoAAgARABMAugARAAIAAyu6AAoACwADKzAxJzMHHgEVFA4CByc%2BATU0JicIIx0YJBUjLRgHKjMmHQI4CB8eFB0UDQMeBhgVFxYIAAAA%2F%2F8ASwAAAJsCowIGACYAAAABAAAA8QBcAAcAeAAFAAEAAAAAAAoAAAIAAXMAAwABAAAAYgBiAGIAYgCwARQBZAGoAeYCHgJ%2BAroC2gMOA1YDfAPgBDIEhgTOBUAFlgYEBjAGdga0ByoHhgfGB%2FwIegj0CUQJvgogCnALIgtwC6QL7Aw0DGQM4g04DYwOBg5%2BDsgPNg%2BED9oQFhCMEOYROhFwEXwRiBGUEaARrBG4Eh4SKhI2EkISThJaEmYSchJ%2BEooSlhKiEq4SuhLGEtITZBPCE84T2hPmE%2FIT%2FhReFKAUrBS4FMQU0BTcFOgVqhW2FcIVzhXaFeYV8hX%2BFgoWFhY2FkIWThZaFmYWchZ%2BFuoXhBgEGBAYHBgoGDQYQBhMGNIZOBmyGjga7hsuG2gbtBwqHHwc3B1EHXoeEB54HpoexB7QHtwfEB88H44f4B%2F2IAIgKCBOIFogZiBwIH4gliCuILogxiDaIOIg9iEKIRQhOiFOIXAhkiGuIcoiJiKAIpoirCLGIuAjCCN6I6wkKCSuJUAlvCXGJdAl2iXkJh4mQiaCJt4nICcoJzAnhifEKAAodijqKVgpxipIKqIqvirGKtgq6ir8Kw4rMitGK3IrsCu8K9wr%2Fiw2LFgskiyoLNws5izwLPotBC0OLRgtIi0sLUYtWC1yLYQtsi3QLhouVi5oLqIu1i8GLzYvYC%2BKL4ovkgABAAAAAQzMmt50Tl8PPPUACQPoAAAAAM2XgKMAAAAAzZfjFP9X%2FuIEYgOrAAAACQACAAAAAAAAAngAXgAAAAAAxwAAAMcAAAIOAAgCQgBhAjQANwJcAGECAwBhAd0AYQJdADcCfwBhAPAAYQHOACkCLgBhAdMAYQLCAGECfABhAowANwIvAGECjAA3AjAAYQIJAC4CDAAdAnoAXwHrAAQDAgAcAeIAEQG%2FAAMCGgAyAfMAQQIgAFwBwQA0AiAANAHjADQBBwAhAecANAIQAFwA5QBLAOX%2F3wHQAFwA7QBcAywAXAIUAFwCFwA0AiAAXAIZADQBPQBcAZUAIAE4ABwCEQBVAbIADAKtABgBlwAOAbQADAGUABsCDgAIAg4ACAIOAAgCDgAIAg4ACAIOAAgDKQAVAjQANwIDAGECAwBhAgMAYQIDAGEA8AAHAPAAUwDwAAMA8AAFAnwAYQKMADcCjAA3AowANwKMADcCjAA3AowAOANBADcCegBfAnoAXwJ6AF8CegBfAb8AAwJxACUCMwBhAfMAQQHzAEEB8wBBAfMAQQHzAEEB8wBBAxAAQQHBADQB4wA0AeMANAHjADQB4wA0AOUAGgDlADoA5QAAAOX%2F%2FwDlAFwCFABcAhcANAIXADQCFwA0AhcANAIXADQCFwAuA1AANAIeAFwCEQBVAhEAVQIRAFUCEQBVAbQADAG0AAwCFwA8AiAAXAIOACICGwAhAj8AJAHfADAB3wBUAd8AJwHfAB0B3wAQAd8AGgHfADQB3wAsAd8AKAHfACsA2wBDANsAMADbAEMA2wAwAQMAVwEDAFcBkgAlAZIAMwDbAFMBaABTANsAOgDbADoBaAA6AWgAOgDbADoBaAA6AQMAKwEDADYBkAArAZAANgErACgBKwAoAeAAKAMgACgA2wBDARkAKAH0AAwBFwBYARcAIAEXAGIBFwAVARcAIwEXABUBZQAJAOIAXwFlAAUA4gBfAYsARgHfADICAwAqAuUAMwGRABIDLgA0Ad8AJAFqAF4BagAvAWoAKAFqAC4BagAoAWoAXgFqAC8BagAoAWoALgFRACoBaAAhAVEAKgFoACEBNwAqAd8AHgHfADsB3wA2Ad8AHgHfABgB3wA%2BAFD%2FWwBQ%2F1sDJQAoAvwASgMSAEoDDwAoAd8AIgHfACIB3wAzAd8AIgHfACIB3wAiAd8AIgHfACIB3wBCAd8AKAHfACICGQBcAhcAswIXANMCFwCZAhcAjwIXAJgCFwCaAhcAuQIXAMoAAP%2BoAAD%2FjwAA%2F8gAAP%2FbAAD%2FjgAA%2F4sAAP%2BEAAD%2FfgAA%2F48AAP%2BNAAD%2FjQAA%2F64AAP%2BuAAD%2FtgAA%2F7YAxwAAAOUASwABAAAD2P7vAAAEiv9X%2FzcEYgABAAAAAAAAAAAAAAAAAAAA8QADAbcBLAAFAAACigJYAAAASwKKAlgAAAFeADIBIAAAAgsEAwMEAwICBCAAAAcAAAABAAAAAAAAAABBREJFAAAAAP7%2FAu7%2FBgAAA9gBESAAAZMAAAAAAeAClAAAACAAAwAAAAIAAAADAAAAFAADAAEAAAAUAAQB0gAAADwAIAAEABwAAAANAC8AOQBAAFoAYAB6AH4AvwDPAN8A7wD%2FATEBUwLGAtoC3CAUIBogHiAiIDogRCB0IKwiEiIV%2F%2F8AAAAAAA0AIAAwADoAQQBbAGEAewCgAMAA0ADgAPABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrCISIhX%2F%2FwAB%2F%2FUAAABMAAD%2FwwAA%2F70AAAAA%2F3gAAP93AAD%2FNgAA%2FhT%2BBP3%2F4IkAAAAA4H3gXeCC4EHgGN673rIAAQAAAAAAOAAAAFQAAABeAAAAZgBsAAAAqAAAAMQAAADgAAAAAAAAAAAA2gDeAAAAAAAAAAAAAAAAAAAAAAADAIoAjwCxAMEAyAB7AI4AoQCiAKsAzACHAJoAhgCnAIgAiQDRANAA0gCMALAAowCpAKQA1ACgANgApQCoAKYA1QDvAIsAxQDCAMAAwwCqAKwA3ACuALsAmADWAJsArwDdAL8A0wCzALQA2QDXAK0AngDfALIAvACZAMkAygDLAI0AVQBIAEkASgBLAEwATQDOAE4AUABRAFIAUwBUAFYAcAB3AGgAaQBqAGsAbABtAM8AbgBxAHIAcwB0AHUAeAB2AE8AbwCQAJEAlACSAJMAlQAAuAAALEu4AAlQWLEBAY5ZuAH%2FhbgARB25AAkAA19eLbgAASwgIEVpRLABYC24AAIsuAABKiEtuAADLCBGsAMlRlJYI1kgiiCKSWSKIEYgaGFksAQlRiBoYWRSWCNlilkvILAAU1hpILAAVFghsEBZG2kgsABUWCGwQGVZWTotuAAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS%2F9LbgABSxLILADJlBYUViwgEQbsEBEWRshISBFsMBQWLDARBshWVktuAAGLCAgRWlEsAFgICBFfWkYRLABYC24AAcsuAAGKi24AAgsSyCwAyZTWLBAG7AAWYqKILADJlNYIyGwgIqKG4ojWSCwAyZTWCMhuADAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSC4AAMmU1iwAyVFuAGAUFgjIbgBgCMhG7ADJUUjISMhWRshWUQtuAAJLEtTWEVEGyEhWS0AsAArALIBAQIrAbICAgIrAbcCfWNROiMACCu3A3NjUTojAAgrALcBinFROiYACCsAsgQIByuwACBFfWkYREuwYFJYsAEbsABZsAGOAAAUACgALAAwAAAADP8zAAwB5gAMAgYADAI%2BAAwCfgAMApAADALIAAwAAAAHAFoAAwABBAkAAQAqAAAAAwABBAkAAgAOACoAAwABBAkAAwBIADgAAwABBAkABAAqAAAAAwABBAkABQCCAIAAAwABBAkABgAmAQIAAwABBAkADgBIASgAUwBvAHUAcgBjAGUAIABTAGEAbgBzACAAUAByAG8AIABMAGkAZwBoAHQAUgBlAGcAdQBsAGEAcgAxAC4AMAA1ADAAOwBBAEQAQgBFADsAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAEwAaQBnAGgAdAA7AEEARABPAEIARQBWAGUAcgBzAGkAbwBuACAAMQAuADAANQAwADsAUABTACAAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMAA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOQAwADAAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAEwAaQBnAGgAdABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBkAG8AYgBlAC4AYwBvAG0ALwB0AHkAcABlAC8AbABlAGcAYQBsAC4AaAB0AG0AbAAAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAAA8QAAAQIBAwADACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0ArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgBmANMA0ADRAK8AZwCRALAA1gDUANUAaADrAOkA7QBqAGkAawBtAGwAbgCgAG8AcQBwAHIAcwB1AHQAdgB3ANcAeAB6AHkAewB9AHwAoQCxAIkAfwB%2BAIAAgQDsALoA6gDuAQQBBQAJABMAFAAVABYAFwAYABkAGgAbABwAEQAPAB0AHgAEAKMAIgCiAAoABQC2ALcAtAC1AMQAxQC%2BAL8AqQCqABABBgCyALMAwwCHAEIACwAMAD4AQABeAGAAEgBfAD8A6AANAIYAiACLAIoAIwAGAQcBCAEJAQoBCwEMAQ0BDgEPAJ0AngEQAREAgwC9AAcAhQCWARIAhAC8ARMACAD1APQA9gAOAO8A8AC4ACAAHwAhAJMAQQBhAKQBFABDAI0A2ADZAI4A2gDdAN4BFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElBE5VTEwCQ1IDZl9mA2ZfdAd1bmkwMEFECG9uZS5zdXBzCHR3by5zdXBzCnRocmVlLnN1cHMJZm91ci5zdXBzCXplcm8uZG5vbQhvbmUuZG5vbQh0d28uZG5vbQp0aHJlZS5kbm9tCWZvdXIuZG5vbQZhLnN1cHMGby5zdXBzBEV1cm8HdW5pMjIxNQd1bmkwMEI1B3VuaTAzMDALdW5pMDMwMC5jYXAHdW5pMDMwMQt1bmkwMzAxLmNhcAd1bmkwMzAyC3VuaTAzMDIuY2FwB3VuaTAzMDMLdW5pMDMwMy5jYXAHdW5pMDMwNAd1bmkwMzA4C3VuaTAzMDguY2FwB3VuaTAzMEELdW5pMDMwQS5jYXAHdW5pMDMyNwt1bmkwMzI3LmNhcAd1bmkwMEEwBWkudHJrAAAAAAAAAf%2F%2FAAIAAQAAAAwAAAAAAAAAAgAIAAQANwABAD4APgABAE4ATwABAGcAZwABAG4AbwABAHgAeAABAHkAegACANoA2gABAAEAAAAKADAARAACREZMVAAObGF0bgAaAAQAAAAA%2F%2F8AAQAAAAQAAAAA%2F%2F8AAQABAAJrZXJuAA5rZXJuAA4AAAABAAAAAQAEAAIAAAACAAoBPAABACYABAAAAA4ARgBsAIIApAC6AMgA2gDoAPoBAAEKARgBHgEoAAEADgAJABMAGQAbADMANQBWAHAAiwCNAJ4ApwCpAMIACQAZAAoAG%2F%2FrADP%2F9QA1%2F%2BwAZQAVAGYAJwCe%2F%2FUAp%2F%2BvAK8AHQAFABv%2F6wA1%2F%2FUAnv%2F1AKf%2FpgCvACcACAAz%2F%2FgANf%2FzAGMABgBlACgAZgArAJ7%2F8ACn%2F8YArwA2AAUAM%2F%2F2ADX%2F9gCe%2F9gAq%2F%2F2AK8AFAADAKf%2F7ACr%2F%2FUArwA4AAQAG%2F%2F2AJ7%2F7ACr%2F%2BoArwA2AAMAp%2F%2B2AKn%2F2ACr%2F7UABAAz%2F%2FYANQAJAKn%2F7ACv%2F%2BgAAQAZ%2F%2BwAAgAZ%2F9cAG%2F%2FmAAMAGf%2FsABv%2F7AA1%2F%2BwAAQDwACQAAgAZ%2F8YAM%2F%2FsAAIAf%2F%2F3AIH%2F9wACFIwABAAAFN4WLAA5AC4AAP%2Fc%2F6D%2F2%2F%2Fc%2F7IAJgBO%2F%2FcAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9v%2FiAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8MAAAAA%2F9cAAAAAAAAAAAAAAAD%2F6%2F%2Fr%2F9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Frv%2Fh%2F%2BH%2FvAAAAEMAAAAAAAAAAP%2FS%2F%2BwAAP%2Fr%2F%2Bj%2F0v%2FzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FYAJAAAAAAAAAAA%2F9gAAAAAAAD%2F6wAA%2F9f%2FsAAkABH%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9j%2F7wAA%2F%2FUAAAAAAAD%2F9f%2FYAAAAAAAA%2F%2FX%2F9gAA%2F%2FYAAAAAAAD%2F9f%2F3%2F5z%2F2P%2Fr%2F7kAAAAAAAAAAP%2F1AAr%2F7P%2FY%2F9P%2F9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAD%2F9QAAAAD%2F9v%2F1AAAAAAAA%2F%2FUAAAAAAAAAAAAA%2F%2FEAAP%2F2AAD%2F4gAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F1%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fr%2F%2FUAAAAA%2F%2BwAAP%2F2%2F%2FUAAAAAAAD%2F6%2F%2F2%2F%2BgAAAAAAAD%2F9gAA%2F%2FX%2F9gAAAAD%2F2AAUAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FUAAP%2Fs%2F%2FUAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BEAAAAAABQAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9v%2F1%2F%2Fb%2F9gAA%2F%2Fb%2F9v%2F1AAAAAP%2F2%2F%2FYAAP%2FtAAAAAAAAAAAAAP%2Fs%2F%2FH%2F9QAA%2F9gAEwAAAAAAAAAA%2F%2FcAAAAA%2F%2FUAAP%2F1%2F%2Fb%2F7%2F%2F2AAAAAP%2F1AAAAAAAAAAAAAP%2BI%2F%2Bj%2Fyf%2B6AAAAAP%2Fh%2F%2Bb%2FwwAAAAj%2F7QAA%2F%2BwAAP%2F1%2F%2FUAAAAA%2F%2FD%2F9v90%2F7D%2FsP%2BwAAAAAAAAAAD%2FtQAA%2F%2Bz%2Fxf%2FD%2F%2BYAAP%2FE%2F9gAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAP%2F3%2F%2BwAAAAAAAAAAAAAAAD%2F9gAA%2F%2BwAAAAAAAAAAP%2FhAAAAAAAA%2F9gAAAAAAAn%2F7AAAAAAAAP%2F2%2F%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAD%2F9f%2F2AAAAAAAAAAAAAP%2F2%2F%2FL%2F9gAA%2F%2FYAAP%2F2%2F%2BsAAAAAAAD%2F9gAA%2F%2FYAFAAAAAAAAAAA%2F%2FX%2F9gAAAAAAAAAA%2F%2FX%2F1%2F%2FiAAAAAP%2F1%2F%2FUAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9QAAAAAAAAAAAAD%2F9QAAAAAAAP%2FrAAD%2F9QAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAAAAAAA%2F%2FX%2FsgAA%2F9j%2F2gAA%2F5z%2F2P%2FR%2F8T%2F6%2F%2By%2F%2Bv%2FxP9%2FAAD%2F6%2F%2FPAAAAAP%2FDABT%2FmwAAAAAAAAAA%2F%2BwAAAAAAAD%2F2v%2FR%2F7D%2F1v%2FP%2F8b%2Frv%2FYAAAAAAAAAAAAAAAAAAD%2F9f%2F2AAAAAAAAAAD%2F9v%2Fr%2F%2FYAAAAAAAAAAAAA%2F9YAAAAAAAAAAAAAAAAAAP%2FXAAAAAAAA%2F%2Fb%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B4AAAAAAAAAAP%2FhAAD%2F9%2F%2F3%2F%2Ff%2F7QAAAAD%2FtAAAAAAAAAAAAAAAAAAv%2F9cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FYAAAAA%2F%2Fb%2F9gAAAAAAAAAA%2F%2FX%2F9gAAAAD%2FxAAA%2F%2Bv%2F9QAR%2F7H%2F9f%2Fx%2F%2BP%2F9f%2FCAAD%2F3%2F%2BcAAD%2F9f%2FhAAAAAP%2FYACb%2FsgAAAAAAAAAAAAAAAAAAAAD%2F9f%2Fh%2F8T%2F1P%2FY%2F9%2F%2F1v%2Fi%2F%2B4AAAAAAAAAAP%2F2%2F%2Ff%2F9f%2FxAAD%2F7f%2FtAAAAAP%2F3%2F%2BL%2F9v%2Fs%2F%2B3%2F7P%2Fm%2F9oAAP%2F1%2F%2BQAAAAA%2F8QAFAAAAAAAAAAA%2F%2FcAAAAAAAAAAP%2FtAAD%2F2P%2FYAAAAAAAAAAAAAAAAAAAAAP%2FrAAAAAP%2FrAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FEAAAAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2Bv%2F9gAAAAkACQAAAAAAAAAAAAAAAP%2F2AAD%2F7wAAAAAAAAAAAAAAAP%2F1AB0AAAAAAAAAAP%2F1AAAAAAAAAAAACQAP%2F%2FUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Bc%2F%2FD%2F4f%2BwAAAAFP%2Fx%2F%2Bz%2FrwAAAAAAAAAAAAAAAAAA%2F%2FUAAAAA%2F%2BEAAP%2BHAAAAAAAAAAAAAAAAAAD%2FxAAAAAD%2Fs%2F%2FD%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BsAAP%2F2%2F%2Bz%2F9gAAAAwADP%2F2AAAAAP%2FsAAAAAP%2FxAAAAAP%2FsAAD%2F9QAA%2F9j%2F9QAAAAcAAAAAAAAAAP%2F2AAAAAAAAAAAADAAAAAkABwAAAAAABQAAAAAAAAAAAAAAMQAAADEAMf%2Fx%2F%2FYAAAAAACj%2F1wAAAAAAAAAA%2F%2BwAAP%2F2AAAAAAAA%2F%2BoAAABP%2F%2BwAWv%2FsABQAAAAAADMAJgAdACgAKAASAAD%2F9QAAAAAAAP%2F1AAAAAAA5AAAAAP%2FsAAAAAP%2F1AAAAIAAAAAAAAAAAAAAAAAAAAAD%2F8QAA%2F%2FUAAAAAAAAAAP%2FYAAD%2F9QAUADwAAAAAAAAAAAAA%2F%2BIAAAAAAAAAAAAAAAAAAAAA%2F%2FUAAAAAABQAAAAA%2F%2FoAAAAA%2F%2Fn%2F9v%2F2AAAAAP%2FsABQAAAAAAAAAAP%2F2AAD%2F9AAAAAD%2F9f%2F1%2F%2BwAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bv%2F7AAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F2AAAAAAAAAAAAAAAAAAA%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FIAAAAAP%2FYAAAAAAAAAAD%2F7P%2F2AAAAAAAAAAD%2F8QAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAD%2F7gAAAAAAAP%2FsAAD%2F9AAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH%2F2gAAAAAAAAAA%2F8X%2F2AAAAAAAAP%2FQ%2F%2FX%2F2gAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8b%2FdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2%2F%2FcAEgAbAAD%2F2f%2FuAAD%2F9gAA%2F%2BkAAP%2F2%2F9QAAAAAAAAAAAAS%2F%2B0AT%2F%2FYAAAAAAAAAAAAAAAAAAAAKAAbAAD%2F6%2F%2FsAAD%2F9v%2F2AAAAAAAAAAAAAP%2FrAAAAAP%2FsAAAAAAAAAAD%2F%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FDAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2F0AAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FUAAAAAAAD%2F9gAAAAAAAAAAABQAAAAAAAAAAP%2FrAAD%2F9gAAAAAAAP%2F3AAAAAP%2FsACgAFAAAAAAAAAAAAAD%2F7AAAAAAAAAAA%2F%2Bz%2F6wAAAAAAAAAAABQAAAAAAAD%2F7AAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F4gAAAAAAAAAAAAAAAAAA%2F%2FUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FrAAAAAP%2F9AAD%2F9gAAAAAAAP%2FxAAAAAAAAAAD%2F9gAAAAD%2F4gAAAAAAAP%2F1AAAAAAA2%2F%2FUAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAA%2F%2FQAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAP%2F2AAAAAAAA%2F%2BwAAAAAAAAAAP%2FsAAAAAP%2FYAAAAAAAAAAAAAAAAADj%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAAAAAAAAAD%2F4wAAAAAAAP%2F3AAAAAAAAAAAAAAAAAAAAAAAA%2F%2BQAAP%2F2AAAAAAAA%2F%2FYAAAAA%2F%2FUAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAv%2F6wAA%2F%2Fb%2F9gAA%2F8T%2F3P%2Fw%2F%2BL%2F9v%2FhAAD%2F9f9zAAD%2F9v%2FxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7P%2Fs%2F%2FD%2F7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BsAAAAAAAAAAAAAAAAAAP%2FaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F4gAAAAD%2F9v%2FZAAAAAAAAAAD%2FnP%2FO%2F%2Fb%2FogAA%2F9AAAP%2Fn%2F2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3P%2FsAAD%2F9v%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAD%2F6gAA%2F%2Fj%2F%2BAAA%2F8b%2F9f%2Ft%2F%2B7%2F9v%2FxAAD%2F8%2F%2By%2F%2FwAAP%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B7%2F6v%2Fs%2F%2Ff%2F5f%2FyAAAAAAAAAAD%2F7P%2F2AAAAAAAAAAD%2F9f%2F2AAAAAAAI%2F%2FUAAP%2F0%2F%2Fb%2F9gAAAAAAAP%2F2%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6v%2F1AAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9wAAAAA%2F8QAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fs%2F%2BwAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9f%2F2%2F9sAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2%2F8L%2F3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FYAAD%2F9P%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9AAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9gAAP%2F2%2F9QAAAAAAAAAAAAAAAAAAP%2Fi%2F%2BsAAAAAAAAAAP%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fq%2F%2FUAAAAAAAAAAP%2FrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2BY%2F9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F2gAAAAAAAAAA%2F4j%2F0wAAAAAAAP%2Fh%2F%2B3%2F2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8cAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAA%2F%2FYAAAAAAAD%2F7P%2F2AAAAAAAA%2F%2BwAAAAA%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FrAAAAAAAAAAAAAP%2FaAAAAAP%2F8AAAAAAAA%2F%2FUAAAAAAAAAAAAA%2F%2Fb%2F9gAA%2F%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F1%2F%2BsAAAAAAAD%2F7AAAAAAAAgANAAQAIAAAACIAJQAdACgAKAAhACoAYgAiAGcAdgBbAHgAegBrAIYAkwBuAJYAngB8AKEAoQCFAKMAowCGAKUApQCHAKcApwCIAKkAqQCJAAEABACkAAYABwAIAAwAJgAnAAkAKAApACoACgALACgAKAAMACsADAANAA4ADwAQAC0AEQAuABIAEwAUAB0AFQAAABgAGQAaABwAAAAAABsAAAAcABwAHQAdACIAHwAgACEAIgA3ACMAOAAkACUABgAGAAYABgAGAAYAJgAIACYAJgAmACYAKQApACkAKQAoAAwADAAMAAwADAAMACYAEAAQABAAEAASAAwALAAUABQAFAAUABQAFAAYABUAGAAYABgAGAAAAAAAAAAAACIAHAAdAB0AHQAdAB0AHQAYADEAIgAiACIAIgAkACQAAAAdABkAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAXABYAFgABAAIANAAEADUANQAeADYAHgA2AAAAAAAyADMAMgAzADAAMAAwADAAAwAAAAAALwAAAC8AAAAvAAAABQACAEgABAAEAAwABgAGAA8ACgAKAA8ADQANABMAEgASAA8AFAAUAA8AFgAWAA0AFwAXAAIAGAAYAAMAGQAZAB8AGgAaAAQAGwAbACAAHAAcAAUAHQAdAA4AHgAeABAAIAAiABIAIwAjABEAJAAkAAYAJgAmABQAJwAnAAcAKgArACgALAAsABIALQAtACgALgAuABIALwAvACgAMAAwACkAMQAxABUAMgAyABYAMwAzACQANAA0AAgANQA1ACUANgA2AAkANwA3ACoAOAA9AAwAPwA%2FAA8ASQBPAA8AUABTAAMAVABUAAUAVQBVAAEAVwBdABAAXgBiABIAYwBmABQAZwBoACgAaQBvABIAcQB0ABYAdQB2AAkAeQB6ABEAhgCHAAsAiACJACwAigCKABwAiwCLAB0AjACMACEAjQCNAB4AjgCPACIAkACQACMAkQCRAAoAkgCSACMAkwCTAAoAlgCWACcAlwCXACsAmACYACcAmQCZACsAmgCdACYAngCeABkAogCiAC0ApACkAC0ApgCmAC0ApwCnABsAqQCpABgAqwCrABcArwCvABoA8ADwABQAAQAAAAoAYACeAAJERkxUAA5sYXRuABoABAAAAAD%2F%2FwABAAAAFgADQVpFIAAeQ1JUIAAoVFJLIAAyAAD%2F%2FwABAAEAAP%2F%2FAAIAAgAFAAD%2F%2FwACAAMABgAA%2F%2F8AAgAEAAcACGxpZ2EAMmxpZ2EAMmxpZ2EAMmxpZ2EAMmxpZ2EAMmxvY2wAOGxvY2wAOGxvY2wAOAAAAAEAAQAAAAEAAAACAAYAGgABAAAAAQAIAAEABgDKAAEAAQAmAAQAAAABAAgAAQAaAAEACAACAAYADAB5AAIAIwB6AAIAMQABAAEAIw%3D%3D%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Sans%20Pro%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20400%3B%0Asrc%3A%20url%28data%3Aapplication%2Ffont%2Dsfnt%3Bbase64%2CAAEAAAARAQAABAAQR0RFRgNEA3IAAG5oAAAAQEdQT1PUveN5AABuqAAAGXBHU1VC8WfWVwAAiBgAAADgT1MvMlq0lFsAAGUsAAAAYGNtYXDzMPm1AABljAAAAeZjdnQgDZkA%2BgAAaTQAAAAoZnBnbQZZnDcAAGd0AAABc2dhc3D%2F%2FwADAABuYAAAAAhnbHlmIymUiAAAARwAAF3saGVhZP4Us%2BIAAGEMAAAANmhoZWEHowOhAABlCAAAACRobXR4pqgmOgAAYUQAAAPEbG9jYTiIUNQAAF8oAAAB5G1heHADCwJAAABfCAAAACBuYW1lIro8MAAAaVwAAAHGcG9zdGxQSG8AAGskAAADOXByZXCWBPrrAABo6AAAAEsABQBZAAACNQKUAAMABgAJAA8AFQBnALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAIvG7kAAgAEPlm6AAUAAgAAERI5ugAGAAIAABESOboABwACAAAREjm6AAgAAgAAERI5uQAKAAH0ugANAAIAABESObgAABC5ABIAAfQwMRMhESETJxEhEQcTLwEjDwETPwEjHwFZAdz%2BJMB%2FAVh%2BUkk0BDZKhDFC60IyApT9bAFU6P4yAc7o%2FuaEZ2eEAUled3deAAAAAAIAAwAAAh0CkAAJABEAVAC4AABFWLgADi8buQAOABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4ABEvG7kAEQAEPlm6AAUADAAOERI5ugALAAwADhESObgACy%2B5AAkAAfQwMQEnLgEnIw4BDwEXIwcjEzMTIwFxHxIgEAQPIBIf2u8%2FVd5e3lkBC2Q3bTk5bTdkQ8gCkP1wAAAAAAMAWgAAAiQCkAATABwAJQBbALgAAEVYuAAALxu5AAAAED5ZuAAARVi4ABMvG7kAEwAEPlm6ACMAAAATERI5uAAjL7oACgAjABQREjm4AAAQuQAbAAH0uAAjELkAHAAB9LgAExC5ACUAAfQwMRMzMh4CFRQGBxUeARUUDgIrARMyNjU0JisBFRMyNjU0JisBFVrDMlM7ITg6SFAkQlw30bRVSU1NZXJVXlxXcgKQEiY9KzFPDwQLTkQwSDAYAXg6NzYv1v7KP0M9OfgAAAEANP%2F0AhsCnAAhADkAuAAARVi4AAUvG7kABQAQPlm4AABFWLgAHS8buQAdAAQ%2BWbgABRC5AAwAAfS4AB0QuQAWAAH0MDETND4CMzIWFwcuASMiDgIVFB4CMzI2NxcOASMiLgI0LE5rPzxaHS8aPyovTDYeHTRLLzBHIC8nYj8%2BaU0rAUhPflgvMSA1HCElRWI9PmNGJiYjMy0yLld%2FAAACAFoAAAI0ApAACgATADUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACi8buQAKAAQ%2BWbkACwAB9LgAABC5ABEAAfQwMRMzMhYVFA4CKwE3MjY1NCYrARFapJieKE5ySqiec3Nzc0sCkKidTntVLUSKfX2E%2FfgAAAABAFoAAAHeApAACwBNALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm4AAAQuQADAAH0ugAHAAAACxESObgABy%2B5AAUAAfS4AAsQuQAIAAH0MDETIRUhFTMVIxUhFSFaAXr%2B2fn5ATH%2BfAKQRs5H7kcAAAAAAQBaAAAB1AKQAAkAQwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAJLxu5AAkABD5ZuAAAELkAAwAB9LoABwAAAAkREjm4AAcvuQAFAAH0MDETIRUhFTMVIxEjWgF6%2Ftn6%2BlMCkEbeRv7aAAAAAQA0%2F%2FQCJgKcACUATQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAhLxu5ACEABD5ZuAAFELkADAAB9LgAIRC5ABYAAfS6AB0ABQAhERI5uAAdL7kAGwAB9DAxEzQ%2BAjMyFhcHLgEjIg4CFRQeAjMyNjc1IzUzEQ4BIyIuAjQtUW5CRFsdLxlBMjJQOB8dN1E1Iz8Ui9cgaUJBbE4sAUhPflgvMx41GiMlRWI9PmNGJhUSq0X%2B7CErLld%2FAAABAFoAAAIyApAACwBJALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm6AAkAAAALERI5uAAJL7kAAwAB9LgAABC4AATQuAALELgAB9AwMRMzESERMxEjESERI1pTATFUVP7PUwKQ%2Fu0BE%2F1wATX%2BywABAFoAAACtApAAAwAlALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAMvG7kAAwAEPlkwMRMzESNaU1MCkP1wAAAAAQAf%2F%2FQBiQKQABAAKwC4AABFWLgABy8buQAHABA%2BWbgAAEVYuAAOLxu5AA4ABD5ZuQADAAH0MDE3HgEzMjY1ETMRFA4CIyInWxY4IzU0VBUrRTB7OocnI0FLAcf%2BMSpLOCBpAAEAWgAAAj8CkAAMAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABC8buQAEABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIAAAAMERI5ugAJAAQACBESOTAxEzMRMwEzBxMjAwcVI1pTAwERXs3tXcRxUwKQ%2FrcBSfr%2BagFVhdAAAAEAWgAAAcwCkAAFACsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABS8buQAFAAQ%2BWbkAAgAB9DAxEzMRIRUhWlMBH%2F6OApD9t0cAAAABAFoAAAJ9ApAAGQBvALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAYvG7kABgAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZugADAAYACRESOboADgAGAAkREjm6ABEAGQAGERI5ugAUAAAAGRESOTAxEzMTFzM3EzMRIxE0NjcjBwMjAycjHgEVESNaYn8wBC5%2BYk8HBAQ1fi9%2FNAQDCE0CkP6ghoYBYP1wAWksaiyS%2FqkBV5Isaiz%2BlwAAAAEAWgAAAi0CkAATAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACC8buQAIABA%2BWbgAAEVYuAATLxu5ABMABD5ZuAAARVi4AAsvG7kACwAEPlm6AAQACwAIERI5ugAOAAAAExESOTAxEzMTFzMuATURMxEjAycjHgEVESNaVu1HBAMHT1buRwQEB08CkP5kiDJrNAFT%2FXABnYcyZzT%2BqQACADT%2F9AJlApwAEwAnADUAuAAARVi4AAovG7kACgAQPlm4AABFWLgAAC8buQAAAAQ%2BWbkAFAAB9LgAChC5AB4AAfQwMQUiLgI1ND4CMzIeAhUUDgInMj4CNTQuAiMiDgIVFB4CAUw%2BZ0opKUpnPj5nSykpS2c%2BLEczHBwzRywsRzMcHDNHDDBZf09PfVcuL1d9Tk9%2FWTBJJkdjPj1iRCUlRGI9PmNHJgACAFoAAAIVApAADgAXAEMAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADi8buQAOAAQ%2BWboADAAAAA4REjm4AAwvuQAPAAH0uAAAELkAFgAB9DAxEzMyHgIVFA4CKwERIxMyNjU0JisBEVrJNlo%2FIyNAWTZ2U79WU1RVbAKQFC1KNjRMMhn%2B%2FAFIQUZHN%2F77AAACADT%2FXAJzApwAEwA0AEsAuAAARVi4ACQvG7kAJAAQPlm4AABFWLgAGi8buQAaAAQ%2BWbsAMQABABcABCu4ABoQuQAFAAH0uAAkELkADwAB9LgAGhC4AC7QMDETFB4CMzI%2BAjU0LgIjIg4CAQ4BIyImJy4DNTQ%2BAjMyHgIVFA4CBx4BMzI2N4ocM0csLEczHBwzRywsRzMcAekPMh1beh02WD8iKUpnPj5nSykhPVY0F1Q2FiEOAUs%2FZUgmJkhlPz1iRCUlRGL94wUKV0QHNlh3SE99Vy4vV31OR3VXNwksKgYEAAACAFoAAAIgApAACAAYAFQAuAAARVi4AA4vG7kADgAQPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZuwABAAEACgAEK7gADhC5AAgAAfS6ABcAAQAKERI5MDETMzI2NTQmKwEBAyMRIxEzMh4CFRQGBxOtbk1SUk1uARWed1PNMlU9IlBDpgFZP0BBNP2zARX%2B6wKQEyxGM01cEf7iAAABACr%2F9AHvApwAMwBJALgAAEVYuAAWLxu5ABYAED5ZuAAARVi4ADAvG7kAMAAEPlm5AAMAAfS6AAsAFgAwERI5uAAWELkAHQAB9LoAJQAwABYREjkwMTceATMyNjU0LgIvAS4DNTQ%2BAjMyFhcHLgEjIgYVFB4CHwEeAxUUDgIjIiYnXCNfM0FIER0oF14XMCYYHzdLLTtkIy0eSS43QxMgJhRdHDIkFR86UjRFdiuPJS07MBkjGRQLKQocKDckJUAvGi0kNh0hMy0YIRkTCCgMHyk3JCdEMx00LQAAAQAcAAAB%2FAKQAAcAMwC4AABFWLgAAi8buQACABA%2BWbgAAEVYuAAHLxu5AAcABD5ZuAACELkAAAAB9LgABdAwMRMjNSEVIxEj4sYB4MZUAkpGRv22AAAAAAEAV%2F%2F0Ai4CkAAZADwAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADS8buQANABA%2BWbgAAEVYuAAULxu5ABQABD5ZuQAHAAH0MDETMxEUHgIzMj4CNREzERQOAiMiLgI1V1MYKTggITgqGFAkP1YyMlc%2FJAKQ%2Fn07UDAVFTBQOwGD%2Fn9PbEMdHUNsTwAAAQAAAAACAwKQAA0AQAC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAKLxu5AAoAED5ZuAAARVi4AA0vG7kADQAEPlm6AAUAAAANERI5MDERMxMeARczPgE3EzMDI1lpEhsTBBIcEWlV0GECkP6eO2Q6OmQ7AWL9cAAAAQAXAAAC%2BgKQACEAdgC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAKLxu5AAoAED5ZuAAARVi4ABQvG7kAFAAQPlm4AABFWLgAIS8buQAhAAQ%2BWbgAAEVYuAAXLxu5ABcABD5ZugAFAAAAIRESOboADwAUABcREjm6ABwAIQAKERI5MDETMxMeARczPgE3EzMTHgEXMz4BNxMzAyMDLgEnIw4BBwMjF1ZFCRQJBAsYC1tMWwwYDAQJEgpFUIhkYwkPCAQIEQhhYwKQ%2Fps2aDY2aTUBZf6bNGo2Nmk1AWX9cAGLJkkmJkkm%2FnUAAAABAA8AAAHyApAAGQBbALgAAEVYuAABLxu5AAEAED5ZuAAARVi4AAsvG7kACwAQPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAPLxu5AA8ABD5ZugAGAAEAGRESOboAEwAPAAsREjkwMRMDMxceARczPgE%2FATMDEyMnLgEnIw4BDwEjzrJcWQ0XDwQOFQxXWLO%2FXGANGxAEDhoMX1gBUwE9qBcrHR0rF6j%2Bv%2F6xsRgzHh4zGLEAAAAAAf%2F%2FAAAB3QKQAA8AQAC4AABFWLgAAS8buQABABA%2BWbgAAEVYuAALLxu5AAsAED5ZuAAARVi4AA8vG7kADwAEPlm6AAYAAQAPERI5MDE3AzMXHgEXMz4BPwEzAxUjxMVZVRAeEQQRIg9UV8VU%2FgGSuSRGJSVGJLn%2Bbv4AAAEALQAAAfECkAAJAD0AuAAARVi4AAMvG7kAAwAQPlm4AABFWLgACC8buQAIAAQ%2BWbkABgAB9LgAANC4AAMQuQABAAH0uAAF0DAxNwEhNSEVASEVIS0BWf7GAaL%2BpgFd%2FjwyAhhGMf3oRwAAAAIAOv%2F0AbcB8gAbACcAdgC4AABFWLgADy8buQAPAAg%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAARVi4ABQvG7kAFAAEPlm6AAMADwAZERI5uAADL7gADxC5AAgAAfS6ABUAFAAPERI5uAAZELkAHwAB9LgAFRC5ACIAAfS4AAMQuQAjAAH0MDE3NDY3NC4CIyIGByc%2BATMyFhURIycjDgEjIiY3FBYzMjY3NQ4DOo%2BcCRcmHitJHSEiYjtZUEQHAiNRLT5RUTEkIz8jPVQzFn5QVREXLCIVIBQ5FiltW%2F7WOh0pSEgqJCEghwgWHicAAgBS%2F%2FQB%2BwLIABYAJgCDALgAAEVYuAAALxu5AAAAEj5ZuAAARVi4AAYvG7kABgAIPlm4AABFWLgAEC8buQAQAAQ%2BWbgAAEVYuAAWLxu5ABYABD5ZugADAAYAEBESOboAEwAQAAYREjm4ABMQuQAXAAH0uAAQELkAGgAB9LgABhC5ACQAAfS4AAMQuQAmAAH0MDETMxUHPgEzMh4CFRQOAiMiJicjByM3HgEzMj4CNTQuAiMiB1JSAiFOKS9IMRkiOkwqIkkgAwdCUiA%2FGB4zJRUOHzEiO0cCyMJYHScjQVs4PmJEIx8dMGwcFxsxSC0oQi8aQgAAAAABAC7%2F9AGwAfIAIQA5ALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AB0vG7kAHQAEPlm4AAUQuQAMAAH0uAAdELkAFgAB9DAxNzQ%2BAjMyFhcHLgEjIg4CFRQeAjMyNjcXDgEjIi4CLiZAVS8wRRkpFi8dITgoFxYnOCEjORYlIVEsMFQ9I%2FI9X0IiIxc1ExgbMkUqKkQxGx0UNh0iIkFfAAAAAgAv%2F%2FQB2QLIABQAIwCDALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AAovG7kACgASPlm4AABFWLgAEi8buQASAAQ%2BWbgAAEVYuAANLxu5AA0ABD5ZugAIABIABRESOboADgAFABIREjm4ABIQuQAYAAH0uAAOELkAGwAB9LgACBC5ABwAAfS4AAUQuQAfAAH0MDE3ND4CMzIWFyc1MxEjJyMOASMiJjcUFjMyNjc1LgEjIg4CLyM6TCoqPiAEU0QHAx1LK1xtVUZAIjweHzkeHTMmFvI7X0IkHhpTu%2F04ORwphHtYYiEi%2FhwXGzFEAAAAAgAu%2F%2FQBygHyABsAJABRALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4ABcvG7kAFwAEPlm6AAwABQAXERI5uAAML7gAFxC5ABAAAfS4AAUQuQAfAAH0uAAMELkAJAAB9DAxNzQ%2BAjMyHgIVFAchHgEzMjY3Fw4BIyIuAiU0JiMiDgIHLiU9TiouSTEaA%2F64BVdGIzsbHSBOMjFVPyQBVD85Gi8mGQTyPF9CIyA8VDQbEk9cFRE2FB4jQV5hS08VJzklAAAAAAEAHgAAAT8C1AAVAFYAuAAARVi4AAUvG7kABQAIPlm4AABFWLgAEi8buQASABI%2BWbgAAEVYuAAJLxu5AAkABD5ZuAASELkAAgAB9LgABRC5AAgAAfS4AAvQuAAFELgADtAwMQEmIyIdATMVIxEjESM1NzU0NjMyFhcBLRscRGdnUkJCRUkXKREChQxeTUP%2BXQGjPgVNS1YJBwAAAAMALf8gAewB8gARAEkAWQBtALgAAEVYuAAlLxu5ACUACD5ZuAAARVi4AEUvG7kARQAGPlm5AAMAAfS6ADwAJQBFERI5uAA8L7kACwAB9LgAJRC4ACnQuAApL7kAKgAB9LgAPBC4ADPQuAAzL7kASgAB9LgAJRC5AFIAAfQwMRcUFjMyPgI1NCYrASImJw4BBzQ2NzUuATU0Njc1LgE1ND4CMzIWFzMVIx4BFRQOAiMiJicOARUUFjsBMhYVFA4CIyIuAhMyPgI1NCYjIgYVFB4CdUtCIzkoFjIwVA4hEBoYSCYhEhkiExgnHTJDJRQjDqlkERccMEElEiYRDRIkMl5VVSJAWzktSjUdyRUlHRA8Kys8EB0lUicuERskEyIaAwUTKiAfOBcECycdHy4NBBRDLChALRgHBT8RNB8nPysYCQgLGxQXHjc9Ij0uGxEiMAFOEB4rGzY7OzYbKx4QAAABAFIAAAHXAsgAFABYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgAFC8buQAUAAQ%2BWboAAwAGABQREjm4AAvQuAAGELkADwAB9LgAAxC5ABIAAfQwMRMzFQc%2BATMyFhURIxE0JiMiBgcRI1JSAyNMM01HUiwwJjolUgLIwmQhL2Be%2FswBKUU9JiX%2BoAACAEMAAAC1ArQACwAPAC0AuAAARVi4AAwvG7kADAAIPlm4AABFWLgADi8buQAOAAQ%2BWboABgAAAAMrMDETIiY1NDYzMhYVFAYHMxEjfBghIRgYISFCUlICSh4XGB0dGBceZP4aAAAAAAL%2F2P8nALUCtAAPABsANwC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAFLxu5AAUABj5ZugAWABAAAyu4AAUQuQAMAAH0MDETMxEUBiMiJic3HgEzMjY1EyImNTQ2MzIWFRQGU1I8SRckDREJGA0kGCoYISEYFyEhAeb940pYCAU%2BAwUyLQKBHhcYHR0YFx4AAAEAUgAAAeYCyAAMAFsAuAAARVi4AAQvG7kABAAIPlm4AABFWLgAAC8buQAAABI%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIAAAAMERI5ugAJAAAACBESOTAxEzMRMxMzBxMjJwcVI1JRA89bo7lajltRAsj%2BHgEAw%2F7d6mqAAAAAAAEAUv%2F0ANgCyAAPACsAuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbkABQAB9DAxEzMRFBYzOgE3Fw4BIyImNVJSDgkEBwcLCBYRLygCyP2UFBACPgQEODYAAAABAFIAAALxAfIAIQCYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAIS8buQAhAAQ%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAARVi4ABEvG7kAEQAEPlm6AAIAAAAhERI5ugAJAAAAIRESObgABhC4AAzQuQAVAAH0uAAJELkAFwAB9LgABhC5AB0AAfS4AAIQuQAfAAH0MDETMxczPgEzMhYXPgEzMhYVESMRNCYjIgcRIxE0JiMiBxEjUkQHAyBLLDg%2FDyZNLUtJUiwuN0NSLC83Q1IB5kYjLzEsKjNgXv7MASlFPUv%2BoAEpRT1L%2FqAAAAAAAQBSAAAB1wHyABQAZQC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAACD5ZuAAARVi4ABQvG7kAFAAEPlm4AABFWLgACy8buQALAAQ%2BWboAAgAAABQREjm4AAYQuQAPAAH0uAACELkAEgAB9DAxEzMXMz4BMzIWFREjETQmIyIGBxEjUkQHAyNNM01HUiwwJjolUgHmRiMvYF7%2BzAEpRT0mJf6gAAAAAAIALv%2F0AfAB8gATACcANQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAPLxu5AA8ABD5ZuQAZAAH0uAAFELkAIwAB9DAxNzQ%2BAjMyHgIVFA4CIyIuAjcUHgIzMj4CNTQuAiMiDgIuJT5RLS1RPiUlPlEtLVE%2BJVUUJTQfHzQlFBQlNB8fNCUU8j1fQiIiQl89PF9BIiJBXzwqRDEbGzFEKipFMhsbMkUAAAIAUv8zAfsB8gAWACcAgwC4AABFWLgACS8buQAJAAg%2BWbgAAEVYuAADLxu5AAMACD5ZuAAARVi4AAIvG7kAAgAGPlm4AABFWLgAEy8buQATAAQ%2BWboABQAJABMREjm6ABYAEwAJERI5uAAWELkAFwAB9LgAExC5ABoAAfS4AAkQuQAkAAH0uAAFELkAJwAB9DAxFxUjETMXMz4BMzIeAhUUDgIjIiYnNx4BMzI%2BAjU0LgIjIgYHpFJEBwMhTysvSDAZIjpMKiJDIgIhPhgeMyUVDh8xIh8%2FJCmkArM4HCgjQVs5PmFEIx4aQBwXGzFILShCLxoiIAAAAgAv%2FzMB2QHyABQAIwB%2FALgAAEVYuAAFLxu5AAUACD5ZuAAARVi4AAsvG7kACwAIPlm4AABFWLgADS8buQANAAY%2BWbgAAEVYuAASLxu5ABIABD5ZugAIAAUAEhESOboADwASAAUREjm5ABgAAfS4AA8QuQAbAAH0uAAIELkAHAAB9LgABRC5AB8AAfQwMTc0PgIzMhYXMzczESM1Nw4BIyImNxQWMzI2NzUuASMiDgIvIzpMKipAIQIIQlMEHUsqXG1VRkAiPB4fOR4dMyYW8jtfQiQdHS79Ta1WGyeEe1hiISL%2BHBcbMUQAAAABAFIAAAFeAfIAEQBSALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAES8buQARAAQ%2BWboAAgAAABEREjm4AAYQuAAM3LgAAhC5AA8AAfQwMRMzFzM%2BATMyFwcuASMiBgcRI1JEBwMZRyodFxAMFA8fQxlSAeZYLjYKSAQEMj7%2ByAABABz%2F9AGDAfIAMQBJALgAAEVYuAAVLxu5ABUACD5ZuAAARVi4AC4vG7kALgAEPlm5AAMAAfS6AAsALgAVERI5uAAVELkAHAAB9LoAJAAVAC4REjkwMTceATMyNjU0LgInLgM1ND4CMzIWFwcuASMiBhUUHgIXHgMVFA4CIyImJ0UgQywwMBQfKBQaNCkaFys%2BJy5NHCcZNiAuKxIeJxUaNSobFy1DKzReI24aICwgExwVEAgJFyEsHx0zJRUgFzQTGCocERkTDwgKFiEwIh40KBcmHQAAAAABABj%2F9AFFAm4AGQBFALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4ABQvG7kAFAAEPlm4AAYQuQAJAAH0uAAA0LgABhC4AAPQuAAUELkADQAB9DAxEyM1PwEzFTMVIxEUFjMyNjcXDgEjIi4CNWBITApFg4MhKg0eDBAULxcnNSEOAaM%2BBYiIQ%2F7yLTEIBT4HCxgqPCQAAQBL%2F%2FQBzgHmABQAZQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAJLxu5AAkACD5ZuAAARVi4ABEvG7kAEQAEPlm4AABFWLgADC8buQAMAAQ%2BWbgAERC5AAUAAfS6AA0ACQAMERI5uAANELkACAAB9DAxEzMRFBYzMjY3ETMRIycjDgEjIiY1S1MrMCY6I1JEBwMiSzNORwHm%2FtdFPScrAVn%2BGkwoMGBeAAAAAAEADAAAAccB5gANAEAAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAANLxu5AA0ABD5ZugAFAAAADRESOTAxEzMTHgEXMz4BNxMzAyMMVVwLFwsECxYLXFGsYAHm%2FuwkSCMjSCQBFP4aAAEAGAAAArYB5gAhAHYAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACi8buQAKAAg%2BWbgAAEVYuAAULxu5ABQACD5ZuAAARVi4ACEvG7kAIQAEPlm4AABFWLgAFy8buQAXAAQ%2BWboABQAhAAAREjm6AA8AFwAUERI5ugAcAAAAIBESOTAxEzMTHgEXMz4BNxMzEx4BFzM%2BATcTMwMjAy4BJyMOAQcDIxhUSAgOBwQIEAlLUEwJEQgECA4IR06CZEYJDwkECBAKRGAB5v7nI0IiIkMiARn%2B5yNCIiJCIwEZ%2FhoBBSNEJSVFI%2F78AAAAAQAOAAABsAHmABkAWwC4AABFWLgAAS8buQABAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4ABkvG7kAGQAEPlm4AABFWLgADy8buQAPAAQ%2BWboABgALAA8REjm6ABQAAQAZERI5MDE3JzMXHgEXMz4BPwEzBxcjJy4BJyMOAQ8BI62TWUELGA0ECxYLO1aTnllHDRoOBA0YDEJW%2FuhrFCkUFCkUa%2FH1cRYsFRUrF3EAAAAAAQAM%2Fy8BxwHmAB0ARgC4AABFWLgACC8buQAIAAg%2BWbgAAEVYuAASLxu5ABIACD5ZuAAARVi4ABkvG7kAGQAGPlm5AAMAAfS6AA0ACAAZERI5MDEXHgEzMjY%2FAQMzEx4BFzM%2BATcTMwMOAyMiJic3MQgUCSo1DwvDVWMLGQsECxQKV1C3DSAsOCURHAwQhgIFOy0kAef%2B8yBHIiFIIAEN%2FfIkPi0aBQVBAAAAAAEAHwAAAY8B5gAJAD0AuAAARVi4AAMvG7kAAwAIPlm4AABFWLgACC8buQAIAAQ%2BWbkABgAB9LgAANC4AAMQuQABAAH0uAAF0DAxNwEjNSEVASEVIR8BAOQBTP8AAQj%2BkCwBd0Ms%2FolDAAAA%2F%2F8AAwAAAh0DMgImAAQAAAAHAOEBDwAA%2F%2F8AAwAAAh0DMgImAAQAAAAHAOMBDwAA%2F%2F8AAwAAAh0DMgImAAQAAAAHAOUBDwAA%2F%2F8AAwAAAh0DMwImAAQAAAAHAOcBDwAA%2F%2F8AAwAAAh0DLQImAAQAAAAHAOoBDwAA%2F%2F8AAwAAAh0DawImAAQAAAAHAOwBDwAAAAIACAAAAwUCkAAFABUAfAC4AABFWLgADS8buQANABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAgvG7kACAAEPlm6AAIADQAMERI5ugAJAA0ADBESObgACS%2B5AAUAAfS4AAgQuQAGAAH0uAANELkADwAB9LoAFAANAAgREjm4ABQvuQASAAH0MDEBESMGDwEFFSE1IwcjASEVIRUzFSMVAZEENTY9AiD%2BjM5jWAFYAZv%2B6ujoAQIBTGtrdrtHv78CkEbOR%2B7%2F%2FwA0%2FysCGwKcAiYABgAAAAcA7gFXAAD%2F%2FwBaAAAB3gMyAiYACAAAAAcA4QEcAAD%2F%2FwBaAAAB3gMyAiYACAAAAAcA4wEcAAD%2F%2FwBaAAAB3gMyAiYACAAAAAcA5QEcAAD%2F%2FwBaAAAB3gMtAiYACAAAAAcA6gEcAAD%2F%2FwAAAAAAtgMyAiYADAAAAAcA4QCDAAD%2F%2FwBQAAABBgMyAiYADAAAAAcA4wCDAAD%2F%2F%2F%2F7AAABCwMyAiYADAAAAAcA5QCDAAD%2F%2F%2F%2F8AAABCgMtAiYADAAAAAcA6gCDAAD%2F%2FwBaAAACLQMzAiYAEQAAAAcA5wFGAAD%2F%2FwA0%2F%2FQCZQMyAiYAEgAAAAcA4QFMAAD%2F%2FwA0%2F%2FQCZQMyAiYAEgAAAAcA4wFMAAD%2F%2FwA0%2F%2FQCZQMyAiYAEgAAAAcA5QFMAAD%2F%2FwA0%2F%2FQCZQMzAiYAEgAAAAcA5wFMAAD%2F%2FwA0%2F%2FQCZQMtAiYAEgAAAAcA6gFMAAAAAwAy%2F%2BICawKuAAsAFQAwAIUAuAAARVi4ACwvG7kALAAQPlm4AABFWLgAHi8buQAeAAQ%2BWboAAAAeACwREjm5AAMAAfS6AAsALAAeERI5ugAMACwAHhESObgALBC5AA4AAfS6ABUAHgAsERI5ugAWACwAHhESOboAIQAeACwREjm6ACQAHgAsERI5ugAuACwAHhESOTAxNx4BMzI%2BAjU0Ji8BJiMiDgIVFBcBHgEVFA4CIyImJwcnNy4BNTQ%2BAjMyFzcX0BlAJixHMxwRECIzTCxIMxwiAXgfIilLZz00WSM%2FLkYgIilLZz5oRz8udBodJkdjPjBQIDI2JURiPWBEAYorc0hPf1kwISBTJFssdkhPfVcuP1EjAAIANAAAAx4CkAASABsAVQC4AABFWLgAAy8buQADABA%2BWbgAAEVYuAAOLxu5AA4ABD5ZuAADELkAGAAB9LgABdC6AAoAAwAOERI5uAAKL7kACAAB9LgADhC5ABcAAfS4AAzQMDETNDYzIRUhFTMVIxUhFSEiLgI3FBY7AREjIgY0qJkBn%2F7q6OgBIP5TS3VSK1Z6dzAwd3oBS52oRs5H7kctVXtOfokCCIQAAP%2F%2FAFf%2F9AIuAzICJgAYAAAABwDhAUIAAP%2F%2FAFf%2F9AIuAzICJgAYAAAABwDjAUIAAP%2F%2FAFf%2F9AIuAzICJgAYAAAABwDlAUIAAP%2F%2FAFf%2F9AIuAy0CJgAYAAAABwDqAUIAAP%2F%2F%2F%2F8AAAHdAzICJgAcAAAABwDjAO4AAAACACEAAAJKApAADAAbAFkAuAAARVi4ABsvG7kAGwAQPlm4AABFWLgAFi8buQAWAAQ%2BWbkAAAAB9LgAGxC5AAYAAfS6AAoAGwAWERI5uAAKL7kACQAB9LgAChC4ABjQuAAJELgAGdAwMSUyNjU0JisBFTMVIxUTMhYVFA4CKwERIzU3EQEOc3Nzc0uVlVGYnihOckqoT09Ein19hNwv%2FQJMqJ1Oe1UtAUErBAEgAAAAAAIAWgAAAhUCkAAQABkAOQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAQLxu5ABAABD5ZuwAZAAEADgAEK7sAAgABABgABCswMRMzFTMyHgIVFA4CKwEVIzcyNjU0JisBEVpTdjZaPyMjQFk2dlO%2FVlNUVWwCkG4ULkk2NE0yGJbaQEdHNv78AP%2F%2FADr%2F9AG3AsoCJgAeAAAABwDgAQ0AAP%2F%2FADr%2F9AG3AsoCJgAeAAAABwDiAQ0AAP%2F%2FADr%2F9AG3AsoCJgAeAAAABwDkAQ0AAP%2F%2FADr%2F9AG3Aq0CJgAeAAAABwDmAQ0AAP%2F%2FADr%2F9AG3Aq4CJgAeAAAABwDpAQ0AAP%2F%2FADr%2F9AG3AtcCJgAeAAAABwDrAQ0AAAADADr%2F9ALrAfIADgBAAEcAmwC4AABFWLgAEi8buQASAAg%2BWbgAAEVYuAAYLxu5ABgACD5ZuAAARVi4ADIvG7kAMgAEPlm4AABFWLgALC8buQAsAAQ%2BWbgAMhC5AAMAAfS6ADgAMgASERI5uAA4L7kACgAB9LoAHwAYACwREjm4AB8vuAAsELkAJQAB9LgAEhC5AD0AAfS4ABgQuQBEAAH0uAAfELkARwAB9DAxNxQWMzI2Ny4BJzUOAwM%2BATMyFhc%2BATMyHgIVFAchHgMzMjY3Fw4BIyImJw4BIyImNTQ2NzQuAiMiBgcFNCYjIgYHizEkIlAhCAoBOlEzFzwiYDY2Rg8dUTItRS8YA%2F7FARkoNh8jOBseIEwyPVIcMmUvPlGOmAgXJh4oSB0CMzs4M0kHhCokJyQTNRwZCBYeJwEYFik3MDA3IDxVNBwSJj4sGBcRORQeNyQtLkhCUFURFywiFSAUZEtQU0gAAAD%2F%2FwAu%2FysBsAHyAiYAIAAAAAcA7QEQAAD%2F%2FwAu%2F%2FQBygLKAiYAIgAAAAcA4AEJAAD%2F%2FwAu%2F%2FQBygLKAiYAIgAAAAcA4gEJAAD%2F%2FwAu%2F%2FQBygLKAiYAIgAAAAcA5AEJAAD%2F%2FwAu%2F%2FQBygKuAiYAIgAAAAcA6QEJAAD%2F%2FwAMAAAAvALKAiYAZwAAAAYA4HsAAAD%2F%2FwA6AAAA6gLKAiYAZwAAAAYA4nsAAAD%2F%2F%2F%2F6AAAA%2FALKAiYAZwAAAAYA5HsAAAD%2F%2F%2F%2F0AAABAgKuAiYAZwAAAAYA6XsAAAAAAQBSAAAApAHmAAMAJQC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAACLxu5AAIABD5ZMDETMxEjUlJSAeb%2BGgAA%2F%2F8AUgAAAdcCrQImACsAAAAHAOYBJAAA%2F%2F8ALv%2F0AfACygImACwAAAAHAOABDwAA%2F%2F8ALv%2F0AfACygImACwAAAAHAOIBDwAA%2F%2F8ALv%2F0AfACygImACwAAAAHAOQBDwAA%2F%2F8ALv%2F0AfACrQImACwAAAAHAOYBDwAA%2F%2F8ALv%2F0AfACrgImACwAAAAHAOkBDwAAAAMALv%2FpAfAB%2FQAJABMALgBJALgAAEVYuAApLxu5ACkACD5ZuAAARVi4ABwvG7kAHAAEPlm6AAAAHAApERI5uQACAAH0ugAKACkAHBESObgAKRC5AAwAAfQwMTcWMzI%2BAjU0LwEmIyIOAhUUFwEeARUUDgIjIicHJzcuATU0PgIzMhYXNxeyJzYfNScVGBslOB81JhYXASQZHSU%2BUS1PPDElNhkdJT5RLSZIHTIkXScbMUQpQy8nKBsxRSlDLgEaIFc2PF9BIjE8HUEgVTY9X0IiGRk9HQAAAAMALv%2F0AyEB8gATADwAQwBxALgAAEVYuAAZLxu5ABkACD5ZuAAARVi4ADgvG7kAOAAEPlm5AAUAAfS4ABkQuQAPAAH0uAAZELgAH9C4ADgQuAAz0LoAJgAfADMREjm4ACYvuAAzELkALAAB9LgAHxC5AEAAAfS4ACYQuQBDAAH0MDE3FB4CMzI%2BAjU0LgIjIg4CBzQ%2BAjMyFhc%2BATMyHgIVFAchHgMzMjY3Fw4BIyImJwYjIi4CJTQmIyIGB4IUJDIeHjIkFBQkMh4eMiQUVCQ8UCw4XhocWTYtRjAZA%2F7BARkpNx8jOhseIE4yOV4cOXosTzwjAqs%2BODNKB%2FIqRDEbGzFEKipFMhsbMkUqPV9CIj48OUEgPFU0HBImPiwYFxE5FB5AOXkiQV9gS1BTSAABAFL%2F9AIjAtIANwBkALgAAEVYuAADLxu5AAMAEj5ZuAAARVi4ADcvG7kANwAEPlm4AABFWLgAGS8buQAZAAQ%2BWboADQAZAAMREjm5ACAAAfS6ACMAGQADERI5ugAvABkAAxESObgAAxC5ADIAAfQwMRM0NjMyHgIVFA4CFRQeBBUUDgIjIiYnNx4BMzI2NTQuBDU0PgI1NCYjIgYVESNSZl4nPSoVHCMcHSwzLB0WKjslKkQfIRozHSoqHSwzLB0bIRwpKjY7UgIDXnEXKDUeJjUsKRoYIBkaJDYoIDYoFxoXOhYVMCAdJhwZIC0jIjAsLiAmMU1O%2FgwAAP%2F%2FAEv%2F9AHOAsoCJgAyAAAABwDgARAAAP%2F%2FAEv%2F9AHOAsoCJgAyAAAABwDiARAAAP%2F%2FAEv%2F9AHOAsoCJgAyAAAABwDkARAAAP%2F%2FAEv%2F9AHOAq4CJgAyAAAABwDpARAAAP%2F%2FAAz%2FLwHHAsoCJgA2AAAABwDiAPIAAP%2F%2FAAz%2FLwHHAq4CJgA2AAAABwDpAPIAAAACADX%2F9AHlAtoAFAA4AFkAuAAARVi4ADMvG7kAMwASPlm4AABFWLgAHS8buQAdAAQ%2BWbsAJwABAAsABCu6ADAALQADK7gAHRC5AAAAAfS4AC0QuAAV0LgAMBC4ADPcuAAwELgANtAwMSUyPgI1NCYnLgEjIg4CFRQeAhMeARUUDgIjIi4CNTQ%2BAjMyFhcuAScHJzcmJzceARc3FwEPIjIiEQEBIUIiITQkExYnMms8TB85TzEqTjwkIDdLLCZGGg43Jo0YfzQ8JiRGII4YOB00SSwOHA0sHhgsOyImPSsYAiU9qHc8Y0cnID1XNjNTOyAgIj5cJkkpQSggNBQsG0kpAAAAAAIAUv8zAfsCyAAWACcAVwC4AABFWLgACC8buQAIAAg%2BWbgAAEVYuAACLxu5AAIAEj5ZuAAARVi4AAEvG7kAAQAGPlm4AABFWLgAEi8buQASAAQ%2BWbkAGgAB9LgACBC5ACQAAfQwMRcjETMVBz4BMzIeAhUUDgIjIiYnFzUeATMyPgI1NC4CIyIGB6RSUgEgTCgwSTIZIjpMKiNCIQEhPhgeMyUVDh8xIh8%2FJM0DlcJTGiUjQVs5PmFEIxwaU5UcFxsxSC0oQi8aIiAAAAEAHgAAAlsC1AAoAHwAuAAARVi4ABIvG7kAEgAIPlm4AABFWLgAJS8buQAlABI%2BWbgAAEVYuAAOLxu5AA4ABD5ZuAAlELkAAgAB9LgAEhC4ACHQuAAG0LgAEhC5AA8AAfS4AAvQuAAH0LgADhC4AArQuAASELgAEdC4ACUQuAAW0LkAHAAB9DAxASYjIh0BMxUjESMRIxEjESM1NzU0NjMyFhcHJiMiBh0BMzU0NjMyFhcCSh0aRWdnUspSQkJLTBgvEhEeIyQoykVJFykRAoUMXk1D%2Fl0Bo%2F5dAaM%2BBUBMWAoIPg0zMD5NS1YJBwAAAAEAHv%2F0AkUC1AArAIkAuAAARVi4ABAvG7kAEAAIPlm4AABFWLgAFC8buQAUABI%2BWbgAAEVYuAAMLxu5AAwABD5ZuAAARVi4AAMvG7kAAwAEPlm4ABAQuQANAAH0uAAJ0LgAEBC4AA%2FQuAAPL7gAFBC5ABoAAfS4ABAQuAAe0LgAItC4AAkQuAAj0LgAAxC5ACgAAfQwMSUOASMiLgI1ESMRIxEjNTc1NDYzMhYXByYjIh0BMzczFTMVIxEUFjMyNjcCRRQvFyc1IQ6uUkJCRUkXKRESGxxEsgpEhIQiKg0eDAYHCxgqPCQBDf5dAaM%2BBU1LVgkHPwxeTYiIQ%2F7yLTEIBQAAAwAg%2F%2FQCUgKcAA0AGwBJAIwAuAAARVi4ADQvG7kANAAQPlm4AABFWLgAIi8buQAiAAQ%2BWbgAAEVYuAAcLxu5ABwABD5ZugA%2FAB8AAyu4ACIQuQAFAAH0ugAIAB8APxESOboACwAiADQREjm4AAsvuAAR3LgANBC5ABkAAfS6ACwACwARERI5ugA8AAsAERESOboARgAfAD8REjkwMTcUHgIzMjY3LgEnDgETFBYXPgM1NCYjIgYBLgEnDgEjIi4CNTQ%2BAjcuATU0PgIzMhYVFA4CBx4BFz4BNzMOAQceARdwFCMvGyI%2BHTBZIyMvTREOFikfEh0hJSwBfyNMKCZdOi1JNR0VJC8ZFBcWKDgiPUQaKjUbIFcvHi8PTRQ4JyI%2BG68bLSARHBkqZDUcPQEtGzoeDx8hJRYdKzb9yQolHCIpGzBDKCE2LicRKU0kITgqGEg6IDYvKRQzXicpYDlBdjQXIAgAAAAAAgAs%2F%2FQBxQKKAAsAHQA1ALgAAEVYuAAGLxu5AAYADj5ZuAAARVi4AAAvG7kAAAAEPlm5AAwAAfS4AAYQuQAWAAH0MDEXIiY1NDYzMhYVFAYnMj4CNTQuAiMiDgIVFBb5YWxsYWBsbGAcLSESEiEtHBwuIRJFDKyhoaiooaGsQh9BZUZGZD8eHj9kRox%2FAAAAAQBPAAABtwJ%2BAAwAQwC4AABFWLgABy8buQAHAA4%2BWbgAAEVYuAAMLxu5AAwABD5ZuQABAAH0uAAHELkABAAB9LkAAgAB9LgAARC4AAnQMDE3MxEjNT4BNzMRMxUhT5J0LEEaP4T%2BmEQB1jUIFxD9xkQAAAABACQAAAHEAooAHQA9ALgAAEVYuAAPLxu5AA8ADj5ZuAAARVi4ABwvG7kAHAAEPlm5ABoAAfS4ABfQuAAA0LgADxC5AAgAAfQwMTc%2BAzU0JiMiBgcnPgEzMhYVFA4CBz4BOwEVIShIcEwoPD0oRBwvKFo%2FWWYnRV85GjgZuf5kMUh0Y1MnN0YtIC8sNWdVLVthaTsCBEcAAAEAGv%2F0Ab4CigAzAFMAuAAARVi4ABsvG7kAGwAOPlm4AABFWLgALi8buQAuAAQ%2BWbkAAwAB9LoACwAbAC4REjm4AAsvuQAMAAH0uAAbELkAFAAB9LoAJAAMAAsREjkwMTceATMyNjU0LgIjNTI%2BAjU0JiMiBgcnPgEzMh4CFRQGBxUeAxUUDgIjIi4CJ0QdTTk6ShUwTjkzRSsSOzMoQx0sJVk5KkYzHEA0HTImFSE5TCwmPzQpEIQeLj82HC8iEj8SICwZLzYkHTQjLRYpPCc6ShQEBxspNiEqRC8ZDxkgEgAAAAIAEQAAAdUCfgAJABQAVwC4AABFWLgAEi8buQASAA4%2BWbgAAEVYuAANLxu5AA0ABD5ZuwAOAAEAAAAEK7gAEhC4AATcuAAAELgACdC4AA4QuAAL0LgACRC4ABDQuAAAELgAE9AwMSU1NDY3Iw4BDwEFIxUjNSE1ATMRMwEwAwIEDBoOlQFtV07%2B4QERXFfyuRpHGhcsF9pCsLA2AZj%2BdAABABn%2F9AHBAn4AJgBHALgAAEVYuAAQLxu5ABAADj5ZuAAARVi4ACEvG7kAIQAEPlm5AAMAAfS6ABcAEAAhERI5uAAXL7gAC9y4ABAQuQASAAH0MDE3HgEzMj4CNTQmIyIGBycTIRUjBz4BMzIeAhUUDgIjIi4CJ0EcTTgdMyYWSj4hLx0sFQE%2F9xEXLh0pSDYfJDxNKiY%2FMykQgR0sFSY2IUJKFBMcATNHvQwOGDFLNDRQNx0PGB8RAAAAAAIAMP%2F0AckCigANAC4AQwC4AABFWLgAKy8buQArAA4%2BWbgAAEVYuAAhLxu5ACEABD5ZuwAZAAEACAAEK7gAIRC5AAAAAfS4ACsQuQARAAH0MDElMj4CNTQmIyIGBx4BEy4BIyIOAgc%2BATMyFhUUDgIjIi4CNTQ%2BAjMyFhcBDBgoHhE6PB5HIAhHwBQ3HiE8LhwBHlAnU2MeNEQnL1A7IihEVzA0Sxs1FCUzID9IJy1eYQHeFxscQGdMJStiYy5LNh4mTXNNYIdVJycdAAEALAAAAccCfgAPADMAuAAARVi4AAcvG7kABwAOPlm4AABFWLgAAC8buQAAAAQ%2BWbgABxC5AAUAAfS4AAnQMDEzPgM3ITUhFQ4DByOxBBgrQy%2F%2BwgGbOUcqEwRVWpaHfkJHM0iEiZldAAAAAAMAKf%2F0AcgCigAPAB0ARQBXALgAAEVYuAAsLxu5ACwADj5ZuAAARVi4AEEvG7kAQQAEPlm5AAUAAfS6AA0AQQAsERI5uAANL7gAENC4ACwQuQAWAAH0uAANELgAI9y4ABAQuAA23DAxNxQeAjMyNjU0LgInDgE3PgE1NCYjIgYVFB4CBzQ%2BAjc1LgE1ND4CMzIeAhUUDgIHFR4DFRQOAiMiLgJzFSUyHThFHDA%2FIiYztCAjOjUtOhgpNeEVISsXIzYcMEInKkIvGREZHw8VKB8THjZMLi1NNyCrGywhEj4yHywhGw4aRYUdQCMwQTgvHSkgGcQfNSshDAQZRzMlPCsYGS0%2FJRkuKCALBAwfJzIgJD4uGhovQAACACj%2F9AHAAooADQAuAEMAuAAARVi4ACEvG7kAIQAOPlm4AABFWLgAKy8buQArAAQ%2BWbsAAAABABkABCu4ACEQuQAGAAH0uAArELkAEQAB9DAxEzI2Ny4BIyIOAhUUFgceATMyPgI3DgEjIiY1ND4CMzIeAhUUDgIjIiYn6x9HIAhIPRcpHhE6ThQ3HiI8LhwBHlAoU2IeM0UmL1E7IShEVzAzTRoBNicuXmAUJTQfP0jLFxwcQWhNJixiYy5LNh4mTXNNYIdVJyYdAAABAEH%2F9AC4AHIACwAYALgAAEVYuAAJLxu5AAkABD5ZuAAD3DAxNzQ2MzIWFRQGIyImQSMZGCMjGBkjMh0jIx0bIyMAAAEAL%2F9WAMYAcgARABgAuAAARVi4AAUvG7kABQAEPlm4AAvcMDEXPgE1BiMiJjU0NjMyFhUUBgcvKjADBxgjJBkgJUY9ehM%2BKQEdHBsfNC1BYBoA%2F%2F8AQf%2F0ALgB2wInAIYAAAFpAAYAhgAA%2F%2F8AL%2F9WAMYB2wInAIYAAAFpAAYAhwAAAAIAVf%2F0AMwCngAFABEAGgC4AABFWLgADy8buQAPAAQ%2BWbkACQAB9DAxEyczBwMjBzQ2MzIWFRQGIyImaQJTAgs5HyMZGCMjGBkjAkBeXv6GlB0jIx0bIyMAAAAAAgBV%2F0gAzAHyAAUAEQAaALgAAEVYuAAPLxu5AA8ACD5ZuQAJAAH0MDEfASM3EzM3FAYjIiY1NDYzMha4AlMCCzkfIxgZIyMZGCNaXl4BepQdIyMdGyMjAAIAJv%2F0AXkCqgAbACcAKAC4AABFWLgAJS8buQAlAAQ%2BWbsAEQABAAoABCu4ACUQuQAfAAH0MDE3Jj4ENTQmIyIGByc%2BATMyFhUUDgQXBzQ2MzIWFRQGIyImoAYRHiciFzEwITsXLyBSNk5dGCMnIRIEXSIZGSMjGRkixic%2FNS4tLhsoOR8bKyQvVUshNjAvMjkjlB0jIx0bIyMAAAIAMP88AYMB8gAbACcAKAC4AABFWLgAJS8buQAlAAg%2BWbsACgABABEABCu4ACUQuQAfAAH0MDEBFg4EFRQWMzI2NxcOASMiJjU0PgQnNxQGIyImNTQ2MzIWAQkFEB4nIhcwMSE6FzAgUjZOXRgjJyASBF4jGBkjIxkYIwEgJz81Li0vGig4HhsrIzBVSyE2MC8yOSOUHSMjHRsjIwAAAAABAFABrwCoArIABQALALoAAgAEAAMrMDETJzMPASNTA1gDEDICVlxcpwAA%2F%2F8AUAGvAVgCsgAmAI4AAAAHAI4AsAAAAAEAOQGsALsCuAARAA0AuwAFAAEACwAEKzAxEw4BFTYzMhYVFAYjIiY1NDY3uyYmAwYUIR4XHiE2NAKRGTgrARoZGh0uLDxYHgAAAAABAD8BrwDBArsAEQANALsACwABAAUABCswMRM%2BATUGIyImNTQ2MzIWFRQGBz8mJQMFFSAeFx0iNzQB1Rk4LAEaGBoeLyw8Vx4AAAD%2F%2FwA5AawBawK4ACYAkAAAAAcAkACwAAD%2F%2FwA%2FAa8BcQK7ACYAkQAAAAcAkQCwAAD%2F%2FwA%2F%2F3AAwQB8AgcAkQAA%2FcEAAP%2F%2FAD%2F%2FcAFxAHwAJwCRAAD9wQAHAJEAsP3BAAAAAQAtAEIA2QG2AAYACwC6AAIABgADKzAxNzU3FwcXBy2IJHZ2JN0%2Bmx6cnhwAAAAAAQA2AEIA4gG2AAYACwC6AAIABQADKzAxNyc3FxUHJ6x2I4mJI%2FycHps%2BmxwAAAD%2F%2FwAtAEIBdwG2ACYAlgAAAAcAlgCeAAD%2F%2FwA2AEIBgAG2ACYAlwAAAAcAlwCeAAAAAQApANsBDwEaAAMADQC7AAEAAQACAAQrMDETMxUjKebmARo%2FAAAA%2F%2F8AKQDbAQ8BGgIGAJoAAAABACkA3wG3ARgAAwANALsAAQABAAIABCswMRMhFSEpAY7%2BcgEYOQAAAQApAN8C9wEYAAMADQC7AAEAAQACAAQrMDETIRUhKQLO%2FTIBGDkA%2F%2F8AQQEDALgBgQIHAIYAAAEPAAAAAQAoAI8BCAGAABMACwC6AAoAAAADKzAxNyIuAjU0PgIzMh4CFRQOApgXKB8SEh8oFxYpHxISHymPESAsGxstHxISHy0bGywgEQAAAAEADP%2BCAej%2FuQADAA0AuwAAAAEAAQAEKzAxBRUhNQHo%2FiRHNzcAAAABAFL%2FUAEJAtwADgALALoABgAAAAMrMDEXLgE1NDY3Fw4BFRQWFwfWPkZGPjM6OTk6M7Bk3oSE3WUYYNtzc9tgGAAAAAEAJv9QAN0C3AAOAAsAugAHAA0AAyswMRc%2BATU0Jic3HgEVFAYHJyY6OTk6Mz5GRj4zmGDbc3PbYBhl3YSE3mQYAAAAAQBe%2F2gBEQLEAAcAFwC7AAUAAQAGAAQruwABAAEAAgAEKzAxEzMVIxEzFSNes3V1swLEL%2F0CLwABAB%2F%2FaADRAsQABwAXALsAAAABAAUABCu7AAQAAQABAAQrMDEXESM1MxEjNZN0srJpAv4v%2FKQvAAEAIv9oARECxAAxACsAuwAAAAEAAQAEK7sAHAABAB0ABCu7ABAAAQAPAAQrugAoAA8AEBESOTAxBRUjIiY1ND4CNTQuAiM1Mj4CNTQmNTQ2OwEVIyIGFRQWFRQGBxUeARUUBhUUFjMBES07OgMDAwgTIhkZIhMICTo7LRspGwYcICAcBhspaS84TRsxLi4ZDxsWDjQOFRwOM1g3TTgvKjEuVDMxMwkECTQwM1QuMSoAAQAf%2F2gBDQLEADMAKwC7AAAAAQAxAAQruwAWAAEAEwAEK7sAIQABACIABCu6AAoAIgAhERI5MDEXMjY1NCY1NDY3NS4BNTQ2NTQmKwE1MzIeAhUUBhUUFhcVIg4CFRQeAhUUDgIrATU5KRsFGyAgGwUbKRosHiwdDgkkMhkhFAgDAwMOHSweLGkqMS5UMzA0CQQJMzEzVC4xKi8NHjMnN1gzHS8BNA4WGw8ZLi4xGyczHg0vAAAAAAEACv9gAVECxgADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDEBMwEjARU8%2FvU8Asb8mgABAFz%2FBgCWAu4AAwALALoAAQACAAMrMDETMxEjXDo6Au78GAABAA7%2FYAFUAsYAAwAYALgAAEVYuAAALxu5AAAAEj5ZuAAC3DAxEzMBIw47AQs7Asb8mgAAAgBc%2FwYAlgLuAAMABwALALoAAQAFAAMrMDETMxEjFxEjEVw6Ojo6Au7%2BNU3%2BMAHQAAAAAAEAOgGkAWgCyAAOABQAuAAARVi4AAUvG7kABQASPlkwMRM3JzcXNzMXNxcHFwcnB2I5YQ9mCTEJZw9hOCdHRwHBXiguGWxrGC4oXh1WVgAAAgAt%2F8ABxAKsAA8ARwAXALsALwABACgABCu7AEQAAQATAAQrMDElPgE1NC4CJw4BFRQeAhMuASMiBhUUHgQVFAYHHgEVFA4CIyImJzceATMyNjU0LgQ1NDY3LgE1ND4CMzIWFwFAHR8oPEcfHSAoPUdMGDYhKiUpPkc%2BKS8mDhAYKzsjNlgfMhk6KCgtKT1IPSkwJg8REyc4JjBNHcEOJiEiLCEcEhAoHyErIB0BaxQaJRobJB4eKz0uMDsWEScaHjIkFSYhLRgcKB0cJh4dKj0uLEAVECgaGi8kFSIXAAACACn%2FsAHQApAAAwAQACUAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgADi8buQAOABA%2BWTAxATMRIwMiLgI1ND4COwERAXxUVFc2XUMmJEFYNCwCkP0gATIZNVI5O1EzFv5SAAAAAwAx%2F%2FUCtwKNABMAJwBFADMAuwA6AAEAQQAEK7sALQABADQABCu4AC0QuAAj3LkABQAB9LgAQRC4ABncuQAPAAH0MDETND4CMzIeAhUUDgIjIi4CNxQeAjMyPgI1NC4CIyIOAhc0PgIzMhYXBy4BIyIGFRQWMzI2NxcOASMiLgIxNFh2QUF1WTQ0WXVBQXZYNC8sS2Q5OWRLLCxLZDk5ZEssZh8zQyQqOxgjFCkaN0NBNiAwFh4cPi0mQjIcAUNMelYuLlZ6TE17Vy8vV3tNQmtNKipNa0JBa0wpKUxrQStGMhohGCcUFUs7Qk0ZEyoYIRszSQAAAAAEABcBPwGQAskAEwAnADUAPQBXALgANC%2B4ACkvuAA0ELgAFNy5AAAAAfS4ACkQuAAe3LkACgAB9LoAMgA0ACkREjm4ADIvuQA2AAH0ugAvADYAMhESObgANBC4ADHQuAApELkAOwAB9DAxEyIuAjU0PgIzMh4CFRQOAicyPgI1NC4CIyIOAhUUHgIDMzIWFRQGBxcjJyMVIzcyNTQmKwEV0ydEMx4eM0QnJ0UzHh4zRScfNygXFyg3HyA2JxcXJzYoTCAuFBEuLiMpKUMrEhccAT8dNEgsLEg0HR00SCwsSDQdJRcqOyQjOysYGCs7IyQ7KhcBCB0kEh8GU0ZGZiIPEkMAAAIAM%2F9lAxwChgBFAFQAPwC7ADsAAQBBAAQruwAnAAEADwAEK7sASQABABYABCu7AB4AAQBQAAQruwAFAAEAMQAEK7oAIgBQAB4REjkwMTc0PgIzMh4CFRQOAiMiJicjDgEjIiY1ND4CMzIWFzM3MwcGMzI%2BAjU0LgIjIg4CFRQeAjMyNjcXBiMiLgIlFBYzMjY%2FAS4BIyIOAjNDc5dUTHlVLiU6RyIpOQUCGUAhM0UbMkcsGigOAgs3Jx5UGC8nGCNGaERDfmI7LVBtQC5SIhZVaUqAXzcBCCgeFS0aHQ4eFB4vIRHLZKR0PzBXekpCY0MiJiYdJ0hFKFNDKhcZKMh1HDVNMTxnSio3ZI5YSXJOKRkUMTMuW4ZXMCocH58XEyAyPAACACMAAAHTAooAGwAfAJsAuAAARVi4AAgvG7kACAAOPlm4AABFWLgADC8buQAMAA4%2BWbgAAEVYuAAWLxu5ABYABD5ZuAAARVi4ABovG7kAGgAEPlm7AAMAAQAAAAQruwAHAAEABAAEK7gABxC4AArQuAAHELgADtC4AAQQuAAQ0LgAAxC4ABLQuAAAELgAFNC4AAAQuAAY0LgAAxC4ABzQuAAEELgAHdAwMTcjNTM3IzUzNzMHMzczBzMVIwczFSMHIzcjByMTNyMHc1BXElVcFzUXhRg1GFFXElVcGTUYhBk22hKEEsw5lDq3t7e3OpQ5zMzMAQWUlAAAAP%2F%2FAFcBuADsAz4CBwC3AAABuAAA%2F%2F8AKAG4AUADSgIHALgAAAG4AAD%2F%2FwAjAawBPwNKAgcAuQAAAbgAAP%2F%2FACoBuAFQAz4CBwC6AAABuAAAAAIAI%2F%2F0AU0BkgALABcAKAC4AAYvuAAARVi4AAAvG7kAAAAEPlm5AAwAAfS4AAYQuQASAAH0MDEXIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBa4RFFRRENSUkMmMDAmJzAwDGxkY2trY2RsM09OTk1NTk5PAAAAAQBXAAAA7AGGAAgAIgC4AAYvuAAARVi4AAgvG7kACAAEPlm4AAYQuQAAAAH0MDETIzU%2BATczESOsVSEsFDRAATQqBhMP%2FnoAAQAoAAABQAGSABoALAC4AA8vuAAARVi4ABkvG7kAGQAEPlm5ABcAAfS4AADQuAAPELkACAAB9DAxNz4DNTQmIyIGByc%2BATMyFhUUDgIHMxUhNC1GLhgoIxkqESYXQyg7RxYnNR%2Bl%2FvQlKUE2LxYmLCEYIyIqQD4cNDU4IDcAAAABACP%2F9AE%2FAZIAKgA%2BALgAFy%2B4AABFWLgAJy8buQAnAAQ%2BWboACgAJAAMruAAnELkAAwAB9LgAFxC5ABAAAfS6AB8ACQAKERI5MDE3HgEzMjY1NCYjNTI2NTQmIyIGByc%2BATMyHgIVFAYHHgEVFA4CIyImJ04SMh8gLkA5MzcnIBYoEScaPSkZLSIUJh4hMxYmMxwwShdhGx8kIiIjKSgeHCIbFCIdIw4bJxkjLw4IMScbKx8QKyEAAgAqAAABUAGGAAUAEABMALgADi%2B4AABFWLgACS8buQAJAAQ%2BWbsAAAABAAoABCu4AA4QuQACAAH0uAAAELgABdC4AAoQuAAH0LgABRC4AAzQuAAAELgAD9AwMTc1NyMPARcjFSM1IzU3MxUz3AQEMj3jOjqypEg6lkZtUWIuaGgh%2FfD%2F%2FwAlAQIBKgJUAgYAvQAA%2F%2F8AHgECAU4CVAIGAL4AAAACACUBAgEqAlQAGQAiADsAuAAAL7gAEC%2B7AAYAAQAdAAQruAAQELkACQAB9LgAABC4ABXQuAAAELkAGgAB9LoAFwAAABoREjkwMRMiJjU0NjcuASMiBgcnPgEzMhYdASMnIw4BJzI3NQ4BFRQWiC02X2gBGiMaNxQXGUUnPDcyBwQUMg0nK009HgECNCs1NwogKhUNKhAbRkDEJRIbMihVCSYcGhgAAAACAB4BAgFOAlQAEwAfABsAuAAKL7gAAC%2B5ABQAAfS4AAoQuQAaAAH0MDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWth83KhgYKjcfHzcqGBgqNx8qLi4qKi8vAQIXKz8oKD8rFxcrPygoPysXM0E1NkBANjVBAAAAAgApAa0BIwKtABMAHwAXALsAFAABAAAABCu7AAoAAQAaAAQrMDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWphktIxQUIy0ZGS0jFBQjLRkhKiohISoqAa0SIS8dHi8iEhIiLx4dLyESLi4jJS4uJSMuAAAAAgAaAGcB1wItACEANQAoALgAAEVYuAAMLxu5AAwACj5ZuwAnAAEAHgAEK7gADBC5ADEAAfQwMT8BLgE1NDY3JzcXNjMyFhc3FwceARUUBgcXBycOASMiJwc3FB4CMzI%2BAjU0LgIjIg4CGkARExMRQCxEMD8dOhdELEERFBQRQSxEFzodQC9EPBMgLBgYKyATEyArGBgsIBOUQRc6IyM7F0ItRiUTEkYtQhc7IyM6F0EtRRMTJkXiHjEkExMkMR4eMSQTEyQxAAABADT%2FkgG1AuwALQBdALgAAEVYuAAnLxu5ACcADj5ZuAAARVi4ABMvG7kAEwAEPlm4ACcQuQADAAH0ugAGABMAJxESObgAExC4ABDQuAATELkAGgAB9LoAHQAnABMREjm4ACcQuAAq0DAxAS4BIyIGFRQeBBUUBgcVIzUuASc3HgEzMjY1NC4ENTQ2NzUzFR4BFwF8HDUpLjYpPkk%2BKVNIPDBaICYgTS44Nyk%2BST4pT0I8MEMbAgwbHjQsJC4jIS9FNkhcCmVjBSsdORwnOC8oNSciLD8xQ1kLZGMFKh0AAAEANQAAAcUCigAsAFkAuAAARVi4ABUvG7kAFQAOPlm4AABFWLgAAi8buQACAAQ%2BWbkAAAAB9LoAJAAVAAIREjm4ACQvuAAK0LgAJBC5ACMAAfS4AAvQuAALL7gAFRC5ABwAAfQwMSUVITU%2BATU0JicjNTczLgE1ND4CMzIWFwcuASMiBhUUFhczFSMeARUUBgcVAcX%2BcTM3BANkQxIKERsxRCo2SxowEzAiNjkPCZ%2BSAgMgHkdHMhxfOQ4bDjQEID0gKkQwGisgLxceQTQgOyA4DhsPNUYfBAAAAAABABcAAAHaAn4AHQCEALgAAEVYuAAdLxu5AB0ADj5ZuAAARVi4AAkvG7kACQAOPlm4AABFWLgAFC8buQAUAAQ%2BWboABAAdABQREjm6ABkAHQAUERI5uAAZL7kADAAB9LgAGRC4AA3QuAAZELgAGNC4ABgvuAAQ0LgAGBC5ABUAAfS4ABHQuAAZELkAGwAB9DAxExceARczPgE%2FATMDMxUjFTMVIxUjNSM1MzUjNTMDbU4PHRAEER0PTlSkjqOjo1KioqKNowJ%2BqyFDIyNDIav%2BwC9BMJ6eMEEvAUAAAQAX%2F%2FQB6wKKADUAbQC4AABFWLgAGS8buQAZAA4%2BWbgAAEVYuAADLxu5AAMABD5ZuwAtAAEALgAEK7gALhC4AAnQuAAtELgACtC4AC0QuAAl3LgAEtC4ACUQuQAkAAH0uAAT0LgAGRC5ACAAAfS4AAMQuQAyAAH0MDElDgEjIi4CJyM1NyY0NTwBNyM1Nz4DMzIWFwcuASMiBgczFSEGFBUcARczFSMeATMyNjcB6yFUNy1NPCkJQDsBATtACSo%2FUzEtThoxFTIgQlEM%2Fv7%2BAQHa1Q1NPiU3GlEsMSFAWzsrBAkSCQgQCCwFO11BIi0hLxohYlcxBw4IChMJMFVgJCMAAAACAD3%2F3wHGAo0ABgAlADcAuwAiAAEACgAEK7sAGgABACEABCu4ACEQuAAA0LgAIhC4AAbQuAAKELgADdC4ABoQuAAX0DAxAQ4BFRQWHwEOAQcVIzUuAzU0PgI3NTMVHgEXBy4BJxE%2BATcBBjdAPjnAHUgnNC1KNR0fNkoqNCxAFygULRogNBQB3Q1YQkNYDQkaIgNnaAUlPFQ1NFI8JQZqZwIiFjQSFgL%2BqAIbEgAAAAH%2FWf%2F0APsCnAADABgAuAAARVi4AAAvG7kAAAAEPlm4AAHcMDEHATMBpwFqOP6WDAKo%2FVgAAAD%2F%2F%2F9Z%2F%2FQA%2BwKcAgYAxgAA%2F%2F8AI%2F%2F0AxYCnAAnALYAAAEKACcAxgFxAAAABwC2AckAAAAA%2F%2F8AQP%2F0Au0CnAAnALf%2F6QEKACcAxgFbAAAABwC6AZ0AAAAA%2F%2F8AQP%2F0AvkCnAAnALf%2F6QEKACcAxgFGAAAABwC4AbkAAAAA%2F%2F8AI%2F%2F0AvwCnAAnALkAAAEKACcAxgGAAAAABwC6AawAAAAAAAEAIgBoAc8CLAALAB0AuwADAAEAAAAEK7gAAxC4AAbQuAAAELgACNAwMRMjNTM1MxUzFSMVI9i2tkG2tkEBKz7Dwz7DAAAAAAEAIgErAc8BaQADAA0AuwABAAEAAgAEKzAxEyEVISIBrf5TAWk%2BAAABADIAfgG%2FAhUACwALALoABQAJAAMrMDE%2FASc3FzcXBxcHJwcym5ssm5osm5ssmpurn54tn58tnp8toKAAAAAAAwAiAGABzwIzAAsAFwAbACEAuwAPAAEAFQAEK7sABgABAAAABCu7ABkAAQAaAAQrMDETIiY1NDYzMhYVFAYDNDYzMhYVFAYjIiYnIRUh%2BRcgIBcXHx9OIBcXHx8XFyCgAa3%2BUwHIHhgXHh4XGB7%2BzhceHhcYHh7rPgAA%2F%2F8AIgDBAc8B1AImAM0AawAGAM0AlgAAAAEAIgCDAc8CFQAJABUAugABAAgAAyu6AAUACAABERI5MDETJRUPARUfARUlIgGt04aG0%2F5TAW2oR04yBDJOR6gAAAAAAQAiAIMBzwIVAAkAFQC6AAgAAQADK7oABQABAAgREjkwMQEFNT8BNS8BNQUBz%2F5T04aG0wGtASuoR04yBDJOR6gAAAACACIAAAHPAiwACwAPADgAuAAARVi4AA4vG7kADgAEPlm7AAMAAQAAAAQruAADELgABtC4AAAQuAAI0LgADhC5AAwAAfQwMRMjNTM1MxUzFSMVIwchFSHYtrZBtrZBtgGt%2FlMBMD6%2Bvj6xQT4AAAAAAQA8ARwBtQKeAAkAGgC4AABFWLgAAC8buQAAABA%2BWbkABQAB9DAxEzMTIy8BIw8BI9RJmEhBMQQyQUgCnv5%2BsIWFsAABACQBAQHNAZMAFwAnALsACAABAA8ABCu4AA8QuAAU3LkAAwAB9LgAC9C4AA8QuAAX0DAxEz4BMzIeAjMyNjcXDgEjIi4CIyIGByQbQiAeLykmFRYmES4bQiAeLykmFRYmEQE5MCoaIBodICIwKRogGh0gAAEAIgBoAc8BaQAFAA0AuwABAAEABAAEKzAxEyERIzUhIgGtQv6VAWn%2B%2F8MAAQBS%2FzgB1AHmABcAJAC4AABFWLgAES8buQARAAQ%2BWbkABQAB9LoAFAARAAUREjkwMRMzERQWMzI2NxEzESMnIw4BIyImJxcVI1JSLDAmOSNSRAcCHUUqHS4RBVIB5v7XRT0nKwFZ%2FhpMJy0RGlqR%2F%2F8AoAI9AVACygAHAOABDwAAAAD%2F%2FwDOAj0BfgLKAAcA4gEPAAAAAP%2F%2FAI4CPQGQAsoABwDkAQ8AAAAA%2F%2F8AhAJDAZoCrQAHAOYBDwAAAAD%2F%2FwCIAkwBlgKuAAcA6QEPAAAAAP%2F%2FAJQCWQGKApIABwDoAQ8AAAAA%2F%2F8AsgIeAWwC1wAHAOsBDwAAAAD%2F%2FwDA%2FysBWQADAAcA7QEVAAAAAAAB%2F5ECPQBBAsoAAwAYALgAAEVYuAADLxu5AAMADD5ZuAAB3DAxAzMXI29WWj8Cyo0AAAAAAf99AsIAMwMyAAMACwC6AAEAAwADKzAxAzMXI4NeWEUDMnAAAf%2B%2FAj0AbwLKAAMAGAC4AABFWLgAAC8buQAAAAw%2BWbgAAtwwMQMjNzMCP1pWAj2NAAAAAAH%2FzQLCAIMDMgADAAsAugACAAAAAyswMRMjNzMSRVheAsJwAAH%2FfwI9AIECygAHADcAuAAARVi4AAYvG7kABgAMPlm4AABFWLgAAy8buQADAAw%2BWbgABhC4AADcugAFAAAABhESOTAxAzMXIycjByMiRF88QwRDPALKjVtbAAAAAf94AsIAiAMyAAcAFwC6AAYAAQADK7gABhC4AAfcuAAD0DAxAzczFyMnIweIYFBgQ0MEQwLCcHBERAAAAf91AkMAiwKtABYAQQC4AABFWLgAAC8buQAAAAw%2BWbgAAEVYuAAOLxu5AA4ADD5ZuwATAAEAAwAEK7gADhC5AAgAAfS4AAMQuAAL0DAxAz4BMzIeAjMyNzMOASMiLgIjIgcjiwQoJRMgGxgMHAkuBCglEx8bGA0cCS4CQy09EBMQMy09EBMQMwAAAAAB%2F28CxwCRAzMAFwAjALoAAAARAAMrugAFAAwAAyu4AAAQuAAI0LgADBC4ABTQMDETIi4CIyIGByM%2BATMyHgIzMjY3Mw4BPBQgGxoODhYELgUsJBQgGxoODhYELgUsAscQFBAaGi89EBQQGxkuPgAAAf%2BFAlkAewKSAAMACwC4AAMvuAAB3DAxAzMVI3v29gKSOQAAAv95AkwAhwKuAAsAFwAoALgAAEVYuAAALxu5AAAADD5ZuAAG3LgAABC4AAzQuAAGELgAEtAwMQMiJjU0NjMyFhUUBjMiJjU0NjMyFhUUBlYWGxsWFRwclxUcHBUWGxsCTBwVFRwcFRUcHBUVHBwVFRwAAAAC%2F3kCywCHAy0ACwAXABsAugAGAAAAAyu4AAAQuAAM0LgABhC4ABLQMDEDIiY1NDYzMhYVFAYzIiY1NDYzMhYVFAZWFhsbFhUcHJcVHBwVFhsbAsscFRYbGxYVHBwVFhsbFhUcAAAAAAL%2FowIeAF0C1wALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYpNDQpKTQ0KRQcHBQUHBwCHjMqKjIyKiozJR4aGR4eGRoeAAAAAAL%2FowK7AF0DawALABcAEwC6AAwAAAADK7oABgASAAMrMDERIiY1NDYzMhYVFAYnMjY1NCYjIgYVFBYpNDQpKDU1KBMcHBMUHBwCuy8pKDAwKCkvJBsZFxwcFxkbAAAAAAH%2Fq%2F8rAEQAAwARABMAugACABEAAyu6AAsACgADKzAxJzMHHgEVFA4CByc%2BATU0JicTNRkYIxgoNRwIKDEhHgM1CCAfFiAWDQMpBRcUFBUIAAAAAAH%2Fq%2F8rAEQAAwARABMAugARAAIAAyu6AAoACwADKzAxJzMHHgEVFA4CByc%2BATU0JicTNRkYIxgoNRwIKDEhHgM1CCAfFiAWDQMpBRcUFBUIAAAA%2F%2F8AQwAAALUCtAIGACYAAAABAAAA8QBaAAcAcQAFAAEAAAAAAAoAAAIAAXMAAwABAAAAYgBiAGIAYgCwARYBZgGiAeACFgJ0ArAC0AMCA0oDcAPUBCQEeATABTIFhgX0BiAGZgaiBxgHdAeyB%2BgIXgjaCSoJogoEClILAgtQC4QLzAwUDEYMxg0cDXAN7A5iDqoPFg9gD7YP8hBoEMIRGBFOEVoRZhFyEX4RihGWEfoSBhISEh4SKhI2EkISThJaEmYSchJ%2BEooSlhKiEq4TOhOQE5wTqBO0E8ATzBQkFGgUdBSAFIwUmBSkFLAVZhVyFX4VihWWFaIVrhW6FcYV0hXyFf4WChYWFiIWLhY6FqYXPhe8F8gX1BfgF%2BwX%2BBgEGIYY7BlkGeYamhriGxwbaBvaHCociBzuHSQdsB4WHjgeYh5uHnoeqB7UHyIfch%2BIH5Qfuh%2FgH%2Bwf%2BCACIBAgKCBAIEwgWCBsIHQgiCCcIKYgzCDgIQIhJCFAIVwhtCIQIioiPCJWInAimCMIIzojtiQ4JMolSCVSJVwlZiVwJaolziYOJmomrCa0JrwnECdOJ4on7iheKMwpOim8KhQqMCo4KkoqXCpuKoAqpCq4KtgrFisiK0QrZiueK8Ar%2BiwQLEgsUixcLGYscCx6LIQsjiyYLLIsxCzeLPAtHi08LYItui3MLgYuOi5qLpouxC7uLu4u9gABAAAAAQzMdwyY3F8PPPUACQPoAAAAAM2XgKUAAAAAzZfjFv9A%2Fr0EiAO4AAAACQACAAAAAAAAAo0AWQAAAAAAygAAAMoAAAIgAAMCTABaAjsANAJnAFoCDwBaAe4AWgJpADQCjABaAQcAWgHgAB8CQwBaAeYAWgLXAFoChwBaApgANAJAAFoCmAA0AkUAWgIWACoCGAAcAoUAVwIDAAADEgAXAgEADwHc%2F%2F8CGwAtAgAAOgIrAFIByAAuAisALwHwAC4BJAAeAfgALQIgAFIA9gBDAPf%2F2AHvAFIA%2FwBSAz0AUgIjAFICHgAuAisAUgImAC8BWwBSAaMAHAFSABgCIABLAdMADALOABgBvgAOAdMADAGpAB8CIAADAiAAAwIgAAMCIAADAiAAAwIgAAMDNgAIAjsANAIPAFoCDwBaAg8AWgIPAFoBBwAAAQcAUAEH%2F%2FsBB%2F%2F8AocAWgKYADQCmAA0ApgANAKYADQCmAA0ApgAMgNPADQChQBXAoUAVwKFAFcChQBXAdz%2F%2FwJ%2BACECRwBaAgAAOgIAADoCAAA6AgAAOgIAADoCAAA6AxEAOgHIAC4B8AAuAfAALgHwAC4B8AAuAPYADAD2ADoA9v%2F6APb%2F9AD2AFICIwBSAh4ALgIeAC4CHgAuAh4ALgIeAC4CHgAuA0cALgJAAFICIABLAiAASwIgAEsCIABLAdMADAHTAAwCIQA1AisAUgI%2BAB4CUgAeAmEAIAHxACwB8QBPAfEAJAHxABoB8QARAfEAGQHxADAB8QAsAfEAKQHxACgA%2BQBBAPkALwD5AEEA%2BQAvASEAVQEhAFUBqQAmAakAMAD5AFABqQBQAPkAOQD5AD8BqQA5AakAPwD5AD8BqQA%2FAQ8ALQEPADYBrQAtAa0ANgE3ACkBNwApAeAAKQMgACkA%2BQBBATAAKAH0AAwBLwBSAS8AJgEvAF4BLwAfAS8AIgEvAB8BXgAKAPEAXAFeAA4A8QBcAaIAOgHxAC0CMAApAugAMQGnABcDTwAzAfEAIwFvAFcBbwAoAW8AIwFvACoBbwAjAW8AVwFvACgBbwAjAW8AKgFZACUBbQAeAVkAJQFtAB4BSwApAfEAGgHxADQB8QA1AfEAFwHxABcB8QA9AFb%2FWQBW%2F1kDOAAjAw0AQAMoAEADHAAjAfEAIgHxACIB8QAyAfEAIgHxACIB8QAiAfEAIgHxACIB8QA8AfEAJAHxACICJgBSAh4AoAIeAM4CHgCOAh4AhAIeAIgCHgCUAh4AsgIeAMAAAP%2BRAAD%2FfQAA%2F78AAP%2FNAAD%2FfwAA%2F3gAAP91AAD%2FbwAA%2F4UAAP95AAD%2FeQAA%2F6MAAP%2BjAAD%2FqwAA%2F6sAygAAAPYAQwABAAAD2P7vAAAEqv9A%2FxYEiAABAAAAAAAAAAAAAAAAAAAA8QADAccBkAAFAAACigJYAAAASwKKAlgAAAFeADIBIAAAAgsFAwMEAwICBCAAAAcAAAABAAAAAAAAAABBREJFAEAAAP7%2FAu7%2FBgAAA9gBESAAAZMAAAAAAeAClAAAACAAAwAAAAIAAAADAAAAFAADAAEAAAAUAAQB0gAAADwAIAAEABwAAAANAC8AOQBAAFoAYAB6AH4AvwDPAN8A7wD%2FATEBUwLGAtoC3CAUIBogHiAiIDogRCB0IKwiEiIV%2F%2F8AAAAAAA0AIAAwADoAQQBbAGEAewCgAMAA0ADgAPABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrCISIhX%2F%2FwAB%2F%2FUAAABMAAD%2FwwAA%2F70AAAAA%2F3gAAP93AAD%2FNgAA%2FhT%2BBP3%2F4IkAAAAA4H3gXeCC4EHgGN673rIAAQAAAAAAOAAAAFQAAABeAAAAZgBsAAAAqAAAAMQAAADgAAAAAAAAAAAA2gDeAAAAAAAAAAAAAAAAAAAAAAADAIoAjwCxAMEAyAB7AI4AoQCiAKsAzACHAJoAhgCnAIgAiQDRANAA0gCMALAAowCpAKQA1ACgANgApQCoAKYA1QDvAIsAxQDCAMAAwwCqAKwA3ACuALsAmADWAJsArwDdAL8A0wCzALQA2QDXAK0AngDfALIAvACZAMkAygDLAI0AVQBIAEkASgBLAEwATQDOAE4AUABRAFIAUwBUAFYAcAB3AGgAaQBqAGsAbABtAM8AbgBxAHIAcwB0AHUAeAB2AE8AbwCQAJEAlACSAJMAlQAAuAAALEu4AAlQWLEBAY5ZuAH%2FhbgARB25AAkAA19eLbgAASwgIEVpRLABYC24AAIsuAABKiEtuAADLCBGsAMlRlJYI1kgiiCKSWSKIEYgaGFksAQlRiBoYWRSWCNlilkvILAAU1hpILAAVFghsEBZG2kgsABUWCGwQGVZWTotuAAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS%2F9LbgABSxLILADJlBYUViwgEQbsEBEWRshISBFsMBQWLDARBshWVktuAAGLCAgRWlEsAFgICBFfWkYRLABYC24AAcsuAAGKi24AAgsSyCwAyZTWLBAG7AAWYqKILADJlNYIyGwgIqKG4ojWSCwAyZTWCMhuADAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSC4AAMmU1iwAyVFuAGAUFgjIbgBgCMhG7ADJUUjISMhWRshWUQtuAAJLEtTWEVEGyEhWS0AsAArALIBAQIrAbICAgIrAbcCRDYqIRQACCu3A0A2KiEUAAgrALcBUUM0JBcACCsAsgQIByuwACBFfWkYREuwYFJYsAEbsABZsAGOAAAUAEQAUgBWAAAADP8zAAwB5gAMAgYADAI%2BAAwCfgAMApAADALIAAwAAAAHAFoAAwABBAkAAQAeAAAAAwABBAkAAgAOAB4AAwABBAkAAwBMACwAAwABBAkABAAeAAAAAwABBAkABQCCAHgAAwABBAkABgAqAPoAAwABBAkADgBIASQAUwBvAHUAcgBjAGUAIABTAGEAbgBzACAAUAByAG8AUgBlAGcAdQBsAGEAcgAxAC4AMAA1ADAAOwBBAEQAQgBFADsAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAFIAZQBnAHUAbABhAHIAOwBBAEQATwBCAEUAVgBlAHIAcwBpAG8AbgAgADEALgAwADUAMAA7AFAAUwAgAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAwADAAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADkAMAAwAFMAbwB1AHIAYwBlAFMAYQBuAHMAUAByAG8ALQBSAGUAZwB1AGwAYQByAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAGQAbwBiAGUALgBjAG8AbQAvAHQAeQBwAGUALwBsAGUAZwBhAGwALgBoAHQAbQBsAAAAAgAAAAAAAP%2B1ADIAAAAAAAAAAAAAAAAAAAAAAAAAAADxAAABAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnAJEAsADWANQA1QBoAOsA6QDtAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA1wB4AHoAeQB7AH0AfAChALEAiQB%2FAH4AgACBAOwAugDqAO4BBAEFAAkAEwAUABUAFgAXABgAGQAaABsAHAARAA8AHQAeAAQAowAiAKIACgAFALYAtwC0ALUAxADFAL4AvwCpAKoAEAEGALIAswDDAIcAQgALAAwAPgBAAF4AYAASAF8APwDoAA0AhgCIAIsAigAjAAYBBwEIAQkBCgELAQwBDQEOAQ8AnQCeARABEQCDAL0ABwCFAJYBEgCEALwBEwAIAPUA9AD2AA4A7wDwALgAIAAfACEAkwBBAGEApAEUAEMAjQDYANkAjgDaAN0A3gEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUETlVMTAJDUgNmX2YDZl90B3VuaTAwQUQIb25lLnN1cHMIdHdvLnN1cHMKdGhyZWUuc3Vwcwlmb3VyLnN1cHMJemVyby5kbm9tCG9uZS5kbm9tCHR3by5kbm9tCnRocmVlLmRub20JZm91ci5kbm9tBmEuc3VwcwZvLnN1cHMERXVybwd1bmkyMjE1B3VuaTAwQjUHdW5pMDMwMAt1bmkwMzAwLmNhcAd1bmkwMzAxC3VuaTAzMDEuY2FwB3VuaTAzMDILdW5pMDMwMi5jYXAHdW5pMDMwMwt1bmkwMzAzLmNhcAd1bmkwMzA0B3VuaTAzMDgLdW5pMDMwOC5jYXAHdW5pMDMwQQt1bmkwMzBBLmNhcAd1bmkwMzI3C3VuaTAzMjcuY2FwB3VuaTAwQTAFaS50cmsAAAAAAAAB%2F%2F8AAgABAAAADAAAAAAAAAACAAgABAA3AAEAPgA%2BAAEATgBPAAEAZwBnAAEAbgBvAAEAeAB4AAEAeQB6AAIA2gDaAAEAAQAAAAoAMABEAAJERkxUAA5sYXRuABoABAAAAAD%2F%2FwABAAAABAAAAAD%2F%2FwABAAEAAmtlcm4ADmtlcm4ADgAAAAEAAAABAAQAAgAAAAIACgFIAAEAJgAEAAAADgBGAGwAggCkALoAzADiAPABAgEIARIBIAEqATQAAQAOAAkAEwAZABsAMwA1AFYAcACLAI0AngCnAKkAwgAJABkABAAb%2F%2BgAM%2F%2FsADX%2F5gBlABIAZgAkAJ7%2F8gCn%2F7sArwAUAAUAG%2F%2FoADX%2F8gCe%2F%2FgAp%2F%2B1AK8AHgAIADP%2F9wA1%2F%2FEAYwAKAGUAKABmADMAnv%2F1AKf%2F0QCvADUABQAz%2F%2FAANf%2F2AJ7%2F2ACr%2F%2FYArwAIAAQAGf%2F8AKf%2F7ACr%2F%2FgArwAtAAUAGf%2F5ABv%2F9gCe%2F%2BwAq%2F%2FxAK8AJgADAKf%2FxgCp%2F9gAq%2F%2FCAAQAM%2F%2FwADUABgCp%2F%2BYAr%2F%2FdAAEAGf%2FgAAIAGf%2FGABv%2F1gADABn%2F5gAb%2F%2BYANf%2FsAAIAZgAHAPAAGQACABn%2FywAz%2F%2BwAAgB%2F%2F%2FoAgf%2F6AAIUjAAEAAAU3hYsADkALgAA%2F%2Bf%2Fq%2F%2Fj%2F%2Bf%2FtwAhAEn%2F%2BgANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fw%2F9MAAAAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FwAAAAAD%2FxgAAAAAAAAAAAAAAAP%2Fo%2F%2Bj%2F2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Bp%2F9j%2F2P%2BnAAAAOwAAAAAAAAAA%2F8L%2F3QAA%2F9T%2F3f%2FC%2F%2BsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAZAAAAAAAAAAD%2F2AAAAAAAAP%2FoAAD%2F4f%2BwABkACf%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F2P%2FxAAD%2F8gAAAAD%2F%2FP%2Fy%2F8kAAAAAAAD%2F%2BP%2F2AAD%2F9gAAAAAAAP%2Fy%2F%2Fr%2Fov%2FY%2F%2Bj%2FsAAAAAAAAAAA%2F%2FIABP%2Fm%2F8z%2Fxv%2FyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAD%2F%2FP%2FyAAAAAP%2F2%2F%2FIAAAAAAAD%2F8v%2F8AAAAAAAAAAD%2F8AAA%2F%2FYAAP%2FiAAD%2F7AAAAAAAAAAAAAD%2F%2Bv%2F8AAAAAAAA%2F%2FL%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B7%2F8v%2F8%2F%2Fn%2F7AAA%2F%2Fb%2F8gAAAAAAAP%2Fo%2F%2Fb%2F4wAAAAAAAP%2F2AAD%2F8v%2F2AAAAAP%2FMAA4AAAAAAAAAAP%2F8%2F%2FwAAAAAAAD%2F8gAA%2F%2Bb%2F8gAAAAAAAAAAAAAAAAAAAAD%2F7AAA%2F%2FwAAAAAAAAAAAAAAAAAAP%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAAAAAACAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fw%2F%2FL%2F9v%2FwAAD%2F9v%2Fw%2F%2Bz%2F7gAA%2F%2Fb%2F8gAA%2F%2BoAAAAA%2F%2FkAAAAA%2F%2Bb%2F8v%2FsAAD%2F0gAAAAAAAAAAAAD%2F9AAA%2F%2Fn%2F7P%2Fu%2F%2Bz%2F8P%2Fi%2F%2FYAAAAA%2F%2FIAAAAAAAAAAAAA%2F4j%2F4%2F%2FI%2F7T%2F%2FAAA%2F97%2F3P%2ByAAAAA%2F%2FqAAD%2F5gAA%2F%2FL%2F9AAAAAD%2F7P%2F2%2F2j%2FsP%2Bk%2F6QAAAAAAAAAAP%2B0AAD%2F4P%2Bn%2F7L%2F3AAA%2F8r%2F3gAAAAAAAAAAAAAAAAAAAAD%2F7AAA%2F%2Fr%2F7AAAAAAAAAAAAAAAAP%2F2AAD%2F7AAAAAAAAAAA%2F9gAAAAAAAD%2F3gAAAAAABv%2FyAAAAAAAA%2F%2Fb%2F7wAAAAAAAAAAAAAAAAAAAAAAAP%2F5AAAAAAAAAAAAAP%2FsAAAAAP%2Fy%2F%2FYAAAAAAAAAAAAA%2F%2Fb%2F8v%2F2AAD%2F9gAA%2F%2Fb%2F7gAAAAAAAP%2F2AAD%2F9gAOAAAAAAAAAAD%2F8v%2F2AAAAAAAAAAD%2F8v%2Fa%2F%2BIAAAAA%2F%2FL%2F8gAAAAAAAAAA%2F%2BwAAAAA%2F%2FkAAAAAAAAAAAAAAAAAAP%2FyAAAAAAAAAAAAAP%2FyAAAAAAAA%2F%2B4AAP%2F4AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8v%2B3AAD%2F3v%2FfAAD%2Flv%2FY%2F9n%2Fyv%2Fo%2F7f%2F7v%2B%2B%2F4IAAP%2Fu%2F9IAAAAA%2F8AAFP%2BnAAAAAAAAAAD%2F7AAAAAAAAP%2Ff%2F9n%2FsP%2FR%2F9L%2Fxf%2B1%2F9gAAAAAAAAAAAAAAAAAAP%2Fy%2F%2FYAAAAAAAAAAP%2Fw%2F%2B7%2F9gAAAAD%2F%2FAAAAAD%2F0QAAAAAAAAAAAAAAAAAA%2F%2BEAAAAAAAD%2F9v%2F2AAAAAAAAAAD%2F%2BQAAAAAAAP%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8wAAAAAAAAAA%2F94AAP%2F6%2F%2Fr%2F%2Bv%2FwAAAAAP%2B%2FAAAAAAAAAAAAAAAAACf%2F4wAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Fz%2F9gAAAAD%2F9v%2FwAAAAAAAAAAD%2F8v%2F2AAAAAP%2FEAAD%2F6P%2FyAAn%2Fpf%2Fy%2F%2FD%2F5v%2Fy%2F70AAP%2FX%2F5wAAP%2Fy%2F94AAAAA%2F9IAIf%2B9AAAAAAAAAAAAAP%2F5AAAAAP%2Fy%2F97%2Fvv%2FJ%2F9j%2F1%2F%2FR%2F9P%2F5wAAAAAAAAAA%2F%2Fb%2F%2Bv%2Fy%2F%2FIAAP%2Fw%2F%2FAAAAAA%2F%2Fr%2F4v%2F2%2F%2Bz%2F8P%2Fs%2F%2Bv%2F3wAA%2F%2FL%2F6QAAAAD%2FxAAUAAAAAAAAAAD%2F%2BgAAAAAAAAAA%2F%2FAAAP%2Fe%2F94AAAAAAAAAAAAAAAAAAAAA%2F%2BgAAP%2F8%2F%2BgAAAAAAAAAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8oAAAAAAAAAAAAAAAAAAP%2FwAAD%2F9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAD%2F6P%2F2AAAABgAGAAAAAAAAAAAAAAAA%2F%2FYAAP%2FrAAAAAAAAAAAAAAAA%2F%2FIAFAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAGAAj%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FmAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F5b%2F7P%2Fe%2F6QAAAAa%2F%2Br%2F7P%2BYAAAAAAAAAAAAAAAAAAD%2F%2BAAAAAD%2F5AAA%2F3YAAAAAAAAAAAAAAAAAAP%2B4AAAAAP%2Bg%2F6z%2F3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6AAA%2F%2Fb%2F5v%2F2AAAABQAF%2F%2FYAAAAA%2F%2BwAAAAA%2F%2FIAAAAA%2F%2BwAAP%2FyAAD%2F3v%2Fs%2F%2FwAAAAAAAAAAAAA%2F%2FAAAP%2F5AAAAAAAF%2F%2FkABgAAAAAAAAAEAAAAAAAAAAAAAAAuAAAALgAu%2F%2FL%2F9gAAAAAAIv%2FOAAAAAAAAAAD%2F7AAA%2F%2FYAAAAAAAD%2F8QAAAD7%2F7ABL%2F%2FIADgAAAAAANgAhABoAKAAiAA3%2F%2FP%2FyAAAAAP%2F8%2F%2FIAAAAAADEAAAAA%2F%2BYAAAAA%2F%2FIAAAAl%2F%2Fz%2F%2FAAAAAAAAAAAAAAAAP%2FwAAD%2F8gAAAAAAAAAA%2F94AAP%2F4AA4AMAAAAAAAAAAAAAD%2F3AAAAAD%2F%2FAAAAAAAAAAAAAD%2F8gAAAAAADgAAAAD%2F6gAAAAD%2F9f%2F2%2F%2FYAAAAA%2F%2BYADgAAAAAAAAAA%2F%2FYAAP%2FuAAAAAP%2Fy%2F%2FL%2F8gAA%2F%2Bb%2F%2BQAAAAAAAAAAAAAAAP%2F0AAAAAAAA%2F%2Fz%2F1P%2FmAAAAAP%2F5%2F%2FkAAAAAAAAAAP%2FoAAAAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FeAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2FkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8cAAAAA%2F9IAAAAA%2F%2Fz%2F%2FP%2Fm%2F%2FYAAAAAAAAAAP%2FyAAAAAAAAAAAAAAAAAAD%2F5gAA%2F%2FkAAAAAAAAAAP%2Ft%2F%2Fz%2F9AAA%2F%2FL%2F%2FP%2FvAAYAAAAAAAD%2F%2BgAAAAAAAAAAAAAAAAAAAAAACf%2FfAAAAAAAAAAD%2Frf%2FJAAAAAAAA%2F9X%2F8v%2FfAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Fy%2F97AAD%2F%2BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Fb%2F%2BgANABP%2F%2Bf%2FH%2F%2B0AAP%2F2AAD%2F5wAA%2F%2Fb%2FyQAAAAAAAAAAAA3%2F8AA%2B%2F94AAAAAAAAAAAAAAAAAAAAiABMAAP%2Fo%2F%2BwAAP%2F2%2F%2FYAAAAAAAAAAAAA%2F%2BgAAAAA%2F%2BwAAAAAAAAAAP%2F1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F88AAAAAAAAAAAAAAAAAAP%2F2AAD%2F9QAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAD%2F8gAAAAD%2F%2FP%2F2AAAAAAAAAAAADgAAAAAAAAAA%2F%2B4AAP%2F2AAAAAAAA%2F%2FoAAAAA%2F%2BwAIgAOAAAAAAAAAAAAAP%2FmAAAAAAAAAAD%2F5v%2FuAAAAAAAAAAAADgAAAAAAAP%2FsAAAAAP%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAAAAAAAAAAAAAAAAAD%2F8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BgAAAAA%2F%2FUAAP%2F2AAAAAAAA%2F9f%2F%2FAAAAAAAAP%2F2AAD%2F%2FP%2FiAAAAAAAA%2F%2FgAAAAAACb%2F%2BAAAAAAAAP%2F8%2F%2FIAAAAAAAAAAAAAAAAAAAAAAAD%2F7wAAAAAAAAAAAAD%2F7AAAAAD%2F%2BQAA%2F%2FYAAAAAAAD%2F3QAAAAAAAAAA%2F%2BwAAP%2F8%2F9gAAAAAAAAAAAAAAAAALf%2FyAAAAAAAA%2F%2Fz%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAAAAAAAAAAAAP%2FmAAAAAP%2F8%2F%2FoAAAAA%2F%2FwAAAAAAAAAAAAAAAD%2F6QAA%2F%2FYAAAAAAAD%2F9gAAAAD%2F%2BAAZAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FwAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAP%2FoAAD%2F8P%2FwAAD%2FuP%2Fb%2F%2Bz%2F4v%2F2%2F94AAP%2Fy%2F3YAAP%2F2%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fs%2F%2Bz%2F7P%2FiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6AAAAAAAAAAAAAAAAAAA%2F9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FoAAAAAP%2F2%2F%2BIAAAAAAAAAAP%2BQ%2F87%2F9v%2ByAAD%2F1QAA%2F%2Bj%2FbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fn%2F%2BwAAP%2F2%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2AAAAAP%2FrAAD%2F9%2F%2F3AAD%2Fv%2F%2Fy%2F%2FD%2F7f%2F2%2F%2BoAAP%2Fx%2F7f%2F%2FQAA%2F%2BIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7f%2Fr%2F%2Bz%2F9P%2Fn%2F%2B0AAAAAAAAAAP%2Fs%2F%2FYAAAAAAAAAAP%2Fy%2F%2FD%2F%2BQAAAAP%2F8gAA%2F%2B%2F%2F9v%2Fw%2F%2Fn%2F%2BwAA%2F%2FD%2F9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2FP%2F5AAAAAP%2Fl%2F%2FIAAAAA%2F%2FL%2F%2BQAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5wAA%2F%2Fz%2FvgAAAAAAAAAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bb%2F5gAAAAAAAP%2F8%2F%2FIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fy%2F%2FD%2FyAAAAAAAAAAAAAAAAP%2F8AAAAAAAA%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FD%2Fvf%2FQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9gAAP%2Fv%2F9MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fv%2F%2FkAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F0gAA%2F%2Fb%2FyQAAAAAAAAAAAAAAAAAA%2F%2BL%2F7gAAAAAAAAAA%2F%2BIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bv%2F8gAAAAAAAAAA%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F43%2FyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FwAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FfAAAAAAAAAAD%2FfP%2FGAAAAAAAA%2F97%2F8P%2FfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2BQAAAAAAAAAAAAAAAAAAAAD%2FzwAAAAAAAAAAAAAAAP%2FsAAAAAP%2F5AAD%2F9gAAAAAAAP%2Fd%2F%2FUAAP%2F8AAD%2F7AAA%2F%2Fz%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F5AAAAAAAA%2F%2BgAAAAAAAAAAAAA%2F98AAAAA%2F%2FEAAAAAAAD%2F8gAAAAAAAP%2F8AAD%2F9v%2F2AAD%2F7wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FL%2F6AAAAAAAAP%2FsAAAAAAACAA0ABAAgAAAAIgAlAB0AKAAoACEAKgBiACIAZwB2AFsAeAB6AGsAhgCTAG4AlgCeAHwAoQChAIUAowCjAIYApQClAIcApwCnAIgAqQCpAIkAAQAEAKQABgAHAAgADAAmACcACQAoACkAKgAKAAsAKAAoAAwAKwAMAA0ADgAPABAALQARAC4AEgATABQAHQAVAAAAGAAZABoAHAAAAAAAGwAAABwAHAAdAB0AIgAfACAAIQAiADcAIwA4ACQAJQAGAAYABgAGAAYABgAmAAgAJgAmACYAJgApACkAKQApACgADAAMAAwADAAMAAwAJgAQABAAEAAQABIADAAsABQAFAAUABQAFAAUABgAFQAYABgAGAAYAAAAAAAAAAAAIgAcAB0AHQAdAB0AHQAdABgAMQAiACIAIgAiACQAJAAAAB0AGQAhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABcAFgAWAAEAAgA0AAQANQA1AB4ANgAeADYAAAAAADIAMwAyADMAMAAwADAAMAADAAAAAAAvAAAALwAAAC8AAAAFAAIASAAEAAQADAAGAAYADwAKAAoADwANAA0AEwASABIADwAUABQADwAWABYADQAXABcAAgAYABgAAwAZABkAHwAaABoABAAbABsAIAAcABwABQAdAB0ADgAeAB4AEAAgACIAEgAjACMAEQAkACQABgAmACYAFAAnACcABwAqACsAKAAsACwAEgAtAC0AKAAuAC4AEgAvAC8AKAAwADAAKQAxADEAFQAyADIAFgAzADMAJAA0ADQACAA1ADUAJQA2ADYACQA3ADcAKgA4AD0ADAA%2FAD8ADwBJAE8ADwBQAFMAAwBUAFQABQBVAFUAAQBXAF0AEABeAGIAEgBjAGYAFABnAGgAKABpAG8AEgBxAHQAFgB1AHYACQB5AHoAEQCGAIcACwCIAIkALACKAIoAHACLAIsAHQCMAIwAIQCNAI0AHgCOAI8AIgCQAJAAIwCRAJEACgCSAJIAIwCTAJMACgCWAJYAJwCXAJcAKwCYAJgAJwCZAJkAKwCaAJ0AJgCeAJ4AGQCiAKIALQCkAKQALQCmAKYALQCnAKcAGwCpAKkAGACrAKsAFwCvAK8AGgDwAPAAFAABAAAACgBgAJ4AAkRGTFQADmxhdG4AGgAEAAAAAP%2F%2FAAEAAAAWAANBWkUgAB5DUlQgAChUUksgADIAAP%2F%2FAAEAAQAA%2F%2F8AAgACAAUAAP%2F%2FAAIAAwAGAAD%2F%2FwACAAQABwAIbGlnYQAybGlnYQAybGlnYQAybGlnYQAybGlnYQAybG9jbAA4bG9jbAA4bG9jbAA4AAAAAQABAAAAAQAAAAIABgAaAAEAAAABAAgAAQAGAMoAAQABACYABAAAAAEACAABABoAAQAIAAIABgAMAHkAAgAjAHoAAgAxAAEAAQAj%29%20format%28%27truetype%27%29%3B%0A%7D%0A%40font%2Dface%20%7B%0Afont%2Dfamily%3A%20%27Source%20Sans%20Pro%27%3B%0Afont%2Dstyle%3A%20normal%3B%0Afont%2Dweight%3A%20700%3B%0Asrc%3A%20url%28data%3Aapplication%2Ffont%2Dsfnt%3Bbase64%2CAAEAAAARAQAABAAQR0RFRgNEA3IAAG3kAAAAQEdQT1Pl%2B8B5AABuJAAAGVZHU1VC8WfWVwAAh3wAAADgT1MvMlvgllUAAGSUAAAAYGNtYXDzMPm1AABk9AAAAeZjdnQgDdkBaQAAaJwAAAAoZnBnbQZZnDcAAGbcAAABc2dhc3D%2F%2FwADAABt3AAAAAhnbHlm8iwszwAAARwAAF1UaGVhZP4ts7AAAGB0AAAANmhoZWEHuwObAABkcAAAACRobXR4wFMeHQAAYKwAAAPEbG9jYRMoKywAAF6QAAAB5G1heHADCwJCAABecAAAACBuYW1lJBs%2BoAAAaMQAAAHccG9zdGxQSG8AAGqgAAADOXByZXBFzLadAABoUAAAAEsABQBQAAACYgKUAAMABgAJAA8AFQBnALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAIvG7kAAgAEPlm6AAUAAgAAERI5ugAGAAIAABESOboABwACAAAREjm6AAgAAgAAERI5uQAKAAH0ugANAAIAABESObgAABC5ABIAAfQwMRMhESETJxEhEQcXLwEjDwETPwEjHwFQAhL97sFfAU1eCicpBCknVCogmB8rApT9bAFUuv6NAXO6%2BU1iYk0BQ187O18AAv%2F6AAACQwKMAAkAEQBUALgAAEVYuAAOLxu5AA4AED5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgAES8buQARAAQ%2BWboABQAMAA4REjm6AAsADAAOERI5uAALL7kACQAB9DAxAScuAScjDgEPARcjByMTMxMjAWEPDhoNBAwZDhCpxyiWzLHMnAEOPDFuMzRtMTxzmwKM%2FXQAAAAAAwBNAAACPAKMABUAHgAmAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAFS8buQAVAAQ%2BWboAJAAAABUREjm4ACQvugAMACQAFhESObgAABC5AB0AAfS4ACQQuQAeAAH0uAAVELkAJgAB9DAxEzMyHgIVFA4CBxUeARUUDgIrARMyNjU0JisBFRMyNTQmKwEVTd8zV0ElDRoqHEZHJ0VcNfLYNjEyNEZTeTw9UwKMDyY%2BLxYsJh4HBA1KQjJILxcBhSslJSCV%2Fu1ZKyerAAAAAAEALv%2F0AjACmAAfADkAuAAARVi4AAUvG7kABQAQPlm4AABFWLgAGy8buQAbAAQ%2BWbgABRC5AAwAAfS4ABsQuQAUAAH0MDETND4CMzIWFwcuASMiDgIVFBYzMjY3Fw4BIyIuAi4yVXE%2FPWMhURkzIiI7LBlWSCg8GFEpaT0%2FcFQwAUJRf1guMyJbFxodNk4xZW8gGlkwMCtUfQAAAAIATQAAAkwCjAAMABkANQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAMLxu5AAwABD5ZuQANAAH0uAAAELkAFwAB9DAxEzMyHgIVFA4CKwE3Mj4CNTQuAisBEU24S3hWLi5UdUjArypEMBsbMEQqHAKMJk96VFR8USh3FjFQOzpPLxT%2BYgAAAAABAE0AAAHvAowACwBNALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAsvG7kACwAEPlm4AAAQuQADAAH0ugAHAAAACxESObgABy%2B5AAUAAfS4AAsQuQAIAAH0MDETIRUhFTMVIxUhFSFNAZj%2B%2B97eAQ%2F%2BXgKMfIN7lnwAAAAAAQBNAAAB6AKMAAkAQwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAJLxu5AAkABD5ZuAAAELkAAwAB9LoABwAAAAkREjm4AAcvuQAFAAH0MDETIRUhFTMVIxUjTQGb%2Fvji4pMCjHyXfP0AAAAAAQAu%2F%2FQCRAKYACMATQC4AABFWLgABS8buQAFABA%2BWbgAAEVYuAAfLxu5AB8ABD5ZuAAFELkADAAB9LgAHxC5ABQAAfS6ABsABQAfERI5uAAbL7kAGQAB9DAxEzQ%2BAjMyFhcHLgEjIg4CFRQWMzI2NzUjNTMRDgEjIi4CLjNXdUJFZSBRGDUqJj8uGVtcFCYMbO4jckVCc1YxAUJRf1guNCFbFxodNk4xZW8KCnB4%2FtQhLitUfQAAAAEATQAAAlUCjAALAEkAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACy8buQALAAQ%2BWboACQAAAAsREjm4AAkvuQADAAH0uAAAELgABNC4AAsQuAAH0DAxEzMVMzUzESMRIxEjTZPhlJThkwKM%2B%2Fv9dAEQ%2FvAAAQBNAAAA4AKMAAMAJQC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAADLxu5AAMABD5ZMDETMxEjTZOTAoz9dAAAAAEAEP%2F0AbMCjAARACsAuAAARVi4AAcvG7kABwAQPlm4AABFWLgADi8buQAOAAQ%2BWbkAAwAB9DAxNx4BMzI2NREzERQOAiMiJid0EjAZKCmTGTNPNktlIrQhIDFBAaf%2BTS9UPiQ6PAAAAQBNAAACbAKMAAwAWwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAELxu5AAQAED5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgACC8buQAIAAQ%2BWboAAgAAAAwREjm6AAkABAAIERI5MDETMxEzEzMDEyMDBxUjTZMEwqLF6aGfTJMCjP71AQv%2B%2FP54ARNkrwAAAQBNAAAB4gKMAAUAKwC4AABFWLgAAC8buQAAABA%2BWbgAAEVYuAAFLxu5AAUABD5ZuQACAAH0MDETMxEhFSFNkwEC%2FmsCjP3wfAAAAAEATQAAAq0CjAAdAG8AuAAARVi4AAAvG7kAAAAQPlm4AABFWLgABi8buQAGABA%2BWbgAAEVYuAAdLxu5AB0ABD5ZuAAARVi4AAkvG7kACQAEPlm6AAMABgAJERI5ugAQAAYACRESOboAEwAdAAYREjm6ABYAAAAdERI5MDETMxMXMzcTMxEjNTQ%2BAjcjDwEjLwEjHgMdASNNnG0nBCdqm4kEBgYDBDZkO2Q0BAMGBQSHAoz%2B23JyASX9dO8YOjs5GJf9%2FZcYOTs6GO8AAAEATQAAAkwCjAATAFsAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgACC8buQAIABA%2BWbgAAEVYuAATLxu5ABMABD5ZuAAARVi4AAsvG7kACwAEPlm6AAQACwAIERI5ugAOAAAAExESOTAxEzMTFzMuAT0BMxEjAycjHgEdASNNl6pABAUNjJeqQAQFDYwCjP68kDSAOub9dAFFjjZ8OucAAAACAC7%2F9AJ%2BApgAEwAfADUAuAAARVi4AAovG7kACgAQPlm4AABFWLgAAC8buQAAAAQ%2BWbkAFAAB9LgAChC5ABoAAfQwMQUiLgI1ND4CMzIeAhUUDgInMjY1NCYjIgYVFBYBVkJtTisrTm1CQm1OKytObUJDTk5DQ05ODC9YflBQfVUtLVZ9T1B%2BWC9%2Fc2Nibm5iY3MAAgBNAAACOgKMAA4AFgBDALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AA4vG7kADgAEPlm6AAwAAAAOERI5uAAML7kADwAB9LgAABC5ABUAAfQwMRMzMh4CFRQOAisBFSMTMjU0JisBFU3uNV1FKClGXDRbk%2BV4PTtSAowVMVE7OVQ2Gt0BUmgzKsUAAAACAC7%2FTgKgApgACwAqAEsAuAAARVi4ABwvG7kAHAAQPlm4AABFWLgAEi8buQASAAQ%2BWbsAJwABAA8ABCu4ABIQuQADAAH0uAAcELkACQAB9LgAEhC4ACTQMDETFBYzMjY1NCYjIgYBDgEjIiYnLgM1ND4CMzIeAhUUBgceATMyNjfFTkNDTk5DQ04B2xI7JmiPIzRVPCArTm1CQm1OK3BfF04qFSUOAUlpdHRpYm5u%2FbgJDGBNCzdWcUVQfVUtLVZ9T4SqGyIbBwUAAAACAE0AAAJTAowACAAYAFQAuAAARVi4AA4vG7kADgAQPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAJLxu5AAkABD5ZuwABAAEACgAEK7gADhC5AAgAAfS6ABcAAQAKERI5MDETMzI2NTQmKwETJyMVIxEzMh4CFRQGBxPgTDo9PTpMzn1Rk%2Bs0W0QoPzWUAWAxMDAm%2Fenr6wKMFC9OOkhdF%2F77AAEAI%2F%2F0AgoCmAAxAEkAuAAARVi4ABYvG7kAFgAQPlm4AABFWLgALi8buQAuAAQ%2BWbkAAwAB9LoACwAWAC4REjm4ABYQuQAdAAH0ugAlAC4AFhESOTAxNx4BMzI2NTQuAi8BLgM1ND4CMzIWFwcuASMiBhUUHgIfAR4BFRQOAiMiJid3I1UpLi0NGSMVVRkvJRYiPlUzOW8qSyBAJyYtDxskFVQ8RSE%2FXDpAfzK3HiYiHQ8WEQ8JJAogKzkkKEc1HiwqXRkbHxwPFREPCSIYVEUpSTchLy8AAAEAGQAAAhMCjAAHADMAuAAARVi4AAIvG7kAAgAQPlm4AABFWLgABy8buQAHAAQ%2BWbgAAhC5AAAAAfS4AAXQMDETIzUhFSMRI8yzAfqzlAIQfHz98AAAAAABAEn%2F9AJPAowAEQA8ALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAkvG7kACQAQPlm4AABFWLgADi8buQAOAAQ%2BWbkABQAB9DAxEzMRFBYzMjY1ETMRFAYjIiY1SZQ6Nzc8joN%2Bf4YCjP6TYExMYAFt%2FqKklpakAAAB%2F%2FkAAAIzAowADQBAALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAovG7kACgAQPlm4AABFWLgADS8buQANAAQ%2BWboABQAAAA0REjkwMQMzEx4BFzM%2BATcTMwMjB5xODxcPBA4YDk2WxLECjP7QNmU2NmU2ATD9dAABAA4AAAMgAowAIQB2ALgAAEVYuAAALxu5AAAAED5ZuAAARVi4AAovG7kACgAQPlm4AABFWLgAFC8buQAUABA%2BWbgAAEVYuAAhLxu5ACEABD5ZuAAARVi4ABcvG7kAFwAEPlm6AAUAAAAhERI5ugAPABQAFxESOboAHAAhAAoREjkwMRMzEx4BFzM%2BATcTMxMeARczPgE3EzMDIwMuAScjDgEHAyMOly0GDgYEChMKRn1GChMKBAcNBy2NdLlACA0FBAYNCD22Aoz%2BzzNnNDRnMwEx%2Fs8yZzU1ZjMBMf10ASgmTSQkTSb%2B2AAAAAEACwAAAiwCjAAZAFsAuAAARVi4AAEvG7kAAQAQPlm4AABFWLgACy8buQALABA%2BWbgAAEVYuAAZLxu5ABkABD5ZuAAARVi4AA8vG7kADwAEPlm6AAYAAQAZERI5ugATAA8ACxESOTAxEwMzFx4BFzM%2BAT8BMwMTIycuAScjDgEPASPAqqQ5CxYOBAsVCjSdqbSkQQwXDgQLFgs9ngFPAT17FzMfHzMXe%2F68%2FriFGjMeHjMahQAAAAAB%2F%2FgAAAIVAowADwBAALgAAEVYuAABLxu5AAEAED5ZuAAARVi4AAsvG7kACwAQPlm4AABFWLgADy8buQAPAAQ%2BWboABgABAA8REjkwMTcDMxceARczPgE%2FATMDFSO9xZ46DhkOBA4bDjuaxZPoAaSWJUUmJkUllv5c6AAAAQAkAAAB%2FAKMAAkAPQC4AABFWLgAAy8buQADABA%2BWbgAAEVYuAAILxu5AAgABD5ZuQAGAAH0uAAA0LgAAxC5AAEAAfS4AAXQMDE3ASE1IRUBIRUhJAEg%2FvsBuv7gASP%2BKFkBt3xZ%2Fkl8AAAAAgAv%2F%2FQB2QH8ABsAJQB2ALgAAEVYuAANLxu5AA0ACD5ZuAAARVi4ABcvG7kAFwAEPlm4AABFWLgAEi8buQASAAQ%2BWboAAwANABcREjm4AAMvuAANELkABgAB9LoAEwASAA0REjm4ABcQuQAfAAH0uAATELkAIgAB9LgAAxC5ACMAAfQwMTc0NjcuASMiBgcnPgEzMhYVESMnIw4BIyIuAjcUFjMyNjc1DgEvhJMCJCggQCQ0MGk7YGV4CwMgRyoiNiYVjB8aGiQUTzyKTlgPIScYFWEdJG1z%2FuQzHCMXKTYrGBcWFFcLKgAAAAACAEH%2F9AIWAr0AFgAhAIMAuAAARVi4AAAvG7kAAAASPlm4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAQLxu5ABAABD5ZuAAARVi4ABYvG7kAFgAEPlm6AAMABgAQERI5ugATABAABhESObgAExC5ABcAAfS4ABAQuQAaAAH0uAAGELkAHwAB9LgAAxC5ACEAAfQwMRMzFQc%2BATMyHgIVFA4CIyImJyMHIzceATMyNjU0IyIHQZMEHUMjLUgzGyM7SyghQx0EDHOTFCgTJjZWLCkCvaxMGh0kQV05QGRFJCAgNIwSDkVNhi0AAQAk%2F%2FQBvgH8ABwAOQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAYLxu5ABgABD5ZuAAFELkACwAB9LgAGBC5ABEAAfQwMTc0PgIzMhYXByYjIgYVFBYzMjY3Fw4BIyIuAiQqR14zLkoZQyMiNj4%2FMBssEjskWCk0WUIm%2BD5hQiMfGlsdTEFBTBYOXSAeI0JhAAAAAAIAJ%2F%2F0AfwCvQAWACMAgwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAKLxu5AAoAEj5ZuAAARVi4ABIvG7kAEgAEPlm4AABFWLgADS8buQANAAQ%2BWboACAASAAUREjm6AA4ABQASERI5uAASELkAGgAB9LgADhC5AB0AAfS4AAgQuQAeAAH0uAAFELkAIQAB9DAxNzQ%2BAjMyFhcnNTMRIycjDgEjIi4CNxQWMzI2NzUuASMiBicjOUsnKjYaBpN4CgQaRiQuSzUdly8rGCcSFCoUIzb4PWBDJBwYTKn9QzEaIyRDYD9KRBQZyxIOQwAAAAIAJP%2F0AeEB%2FAAbACIAUQC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAAXLxu5ABcABD5ZugANAAUAFxESObgADS%2B4ABcQuQARAAH0uAAFELkAHwAB9LgADRC5ACIAAfQwMTc0PgIzMh4CFRQGByEeATMyNxcOASMiLgIlNCYjIgYHJChBVC01TzUaBAL%2B1wpFMjU2MSZdLTVcRCYBQCYtIzUI%2BDxhQyQkQFczFCEJOTMhWRoeI0NgcSs2LzIAAQAYAAABdALJABgAVgC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAVLxu5ABUAEj5ZuAAARVi4AAovG7kACgAEPlm4ABUQuQACAAH0uAAGELkACQAB9LgADNC4AAYQuAAP0DAxASYjIgYdATMVIxEjESM1NzU0PgIzMhYXAVkcFxseWVmTQkITLEYyHzMRAksKISYec%2F6DAX1tBRsnRjQeDAYAAAADACL%2FLQIHAfwADgBDAE8AbQC4AABFWLgAIS8buQAhAAg%2BWbgAAEVYuAA%2FLxu5AD8ABj5ZuQADAAH0ugA2ACEAPxESObgANi%2B5AAkAAfS4ACEQuAAk0LgAJC%2B5ACUAAfS4ADYQuAAu0LgALi%2B5AEQAAfS4ACEQuQBKAAH0MDEXFBYzMjY1NCYrASImJwYHNDc1LgE1NDY3NS4BNTQ%2BAjMyFzMVIx4BFRQOAiMiJw4BFRQWOwEyFhUUDgIjIi4CEzI2NTQmIyIGFRQWmzwyMkAnJTMaIAwbeUcUGiAYGikiOUooLCG1TwcJHjVHKR0fCgghKlBcYSdIZkAsSzkg2x0nJx0dJyc%2BHB0jGhcQAwMYMDwoBA0oHxsxEQQSQywtQy0WDGsLIhQrPykUCggQDRMSO0MnQS8bDx4wAWwpKicpKCgqKQABAEEAAAIAAr0AFABYALgAAEVYuAAGLxu5AAYACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgAFC8buQAUAAQ%2BWboAAwAGABQREjm4AAvQuAAGELkADwAB9LgAAxC5ABIAAfQwMRMzFQc%2BATMyFhURIxE0JiMiBgcRI0GTBxxKM1FJkx0gHCgYkwK9rFkZK2pe%2FswBITYoGRf%2BsQACADUAAADfAtIACwAPAC0AuAAARVi4AAwvG7kADAAIPlm4AABFWLgADi8buQAOAAQ%2BWboABgAAAAMrMDETIiY1NDYzMhYVFAYHMxEjiiUwMCUmLy9vk5MCOSsiIioqIiIrSf4QAAAAAAL%2Fzf88AOEC0gARAB0ANwC4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAHLxu5AAcABj5ZugAYABIAAyu4AAcQuQAOAAH0MDETMxEUDgIjIiYnNx4BMzI2NRMiJjU0NjMyFhUUBkKTESlEMx8pDxoKEgsdF0olMDAlJTAwAfD%2BEylINiAIBmwDBCYqAjorIiIqKiIiKwABAEEAAAIeAr0ADABbALgAAEVYuAAELxu5AAQACD5ZuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbgAAEVYuAAILxu5AAgABD5ZugACAAAADBESOboACQAAAAgREjkwMRMzETM3MwcTIycHFSNBjwSdoK67n3A%2FjwK9%2Fm7FzP7cwUd6AAEAQf%2F0ARICvQARACsAuAAARVi4AAAvG7kAAAASPlm4AABFWLgADC8buQAMAAQ%2BWbkABQAB9DAxEzMRFBYzOgE3Fw4BIyIuAjVBkxEJBQcGEgwlGSY0Hw4Cvf3XFxICbQUHGCs9JgAAAQBBAAADHQH8ACEAmAC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAACD5ZuAAARVi4ACEvG7kAIQAEPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAARLxu5ABEABD5ZugACAAAAIRESOboACQAAACEREjm4AAYQuAAM0LkAFQAB9LgACRC5ABcAAfS4AAYQuQAdAAH0uAACELkAHwAB9DAxEzMXMz4BMzIWFz4BMzIWFREjETQmIyIHESMRNCYjIgcRI0F4CgQfRjE1QRMhSTJQS5MdICUwkx0gJi6TAfBAHy0rKCIxa13%2BzAEhNigw%2FrEBITYoMP6xAAAAAAEAQQAAAgAB%2FAAUAGUAuAAARVi4AAYvG7kABgAIPlm4AABFWLgAAC8buQAAAAg%2BWbgAAEVYuAAULxu5ABQABD5ZuAAARVi4AAsvG7kACwAEPlm6AAIAAAAUERI5uAAGELkADwAB9LgAAhC5ABIAAfQwMRMzFzM%2BATMyFhURIxE0JiMiBgcRI0F4CgQgTDNRSZMdIBwoGJMB8D8eLWpe%2FswBITYoGRf%2BsQAAAAACACT%2F9AIHAfwAEwAfADUAuAAARVi4AAUvG7kABQAIPlm4AABFWLgADy8buQAPAAQ%2BWbkAFwAB9LgABRC5AB0AAfQwMTc0PgIzMh4CFRQOAiMiLgI3FBYzMjY1NCYjIgYkKENYLy9XQygoQ1cvL1hDKJctLi0uLi0uLfg%2BYUIjI0JhPj5hQiMjQmE%2BQUxMQUFMTAAAAgBB%2F0gCFgH8ABYAIQCDALgAAEVYuAAJLxu5AAkACD5ZuAAARVi4AAMvG7kAAwAIPlm4AABFWLgAAi8buQACAAY%2BWbgAAEVYuAATLxu5ABMABD5ZugAFAAkAExESOboAFgATAAkREjm4ABYQuQAXAAH0uAATELkAGgAB9LgACRC5AB8AAfS4AAUQuQAhAAH0MDEXFSMRMxczPgEzMh4CFRQOAiMiJic3HgEzMjY1NCMiB9STeAoEHUknLUgyGyM7SyggPBoFFCgTJjZWKyonkQKoMRojJEJdOUBjRSQbGWQSDkVNhi0AAAIAJ%2F9IAfwB%2FAAWACMAfwC4AABFWLgABS8buQAFAAg%2BWbgAAEVYuAALLxu5AAsACD5ZuAAARVi4AA0vG7kADQAGPlm4AABFWLgAEi8buQASAAQ%2BWboACAAFABIREjm6AA8AEgAFERI5uQAaAAH0uAAPELkAHQAB9LgACBC5AB4AAfS4AAUQuQAhAAH0MDE3ND4CMzIWFzM3MxEjNTcOASMiLgI3FBYzMjY3NS4BIyIGJyM5SycpPh0EDHOTBhlCIi5LNR2XLysYJxIUKhQjNvg9YEMkHSAx%2FViXTBgfJENgP0pEFBnLEg5DAAAAAQBBAAABjwH8ABIAUgC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAALxu5AAAACD5ZuAAARVi4ABIvG7kAEgAEPlm6AAIAAAASERI5uAAGELgADdy4AAIQuQAQAAH0MDETMxczPgEzMhYXBy4BIyIGBxEjQXgKBBtMJhUbCxgOGBAcPRSTAfBXMzAFBX8EBCgz%2FuAAAAEAFf%2F0AZ8B%2FAAwAEkAuAAARVi4ABUvG7kAFQAIPlm4AABFWLgALS8buQAtAAQ%2BWbkAAwAB9LoACwAtABUREjm4ABUQuQAcAAH0ugAjABUALRESOTAxNx4BMzI2NTQuAicuAzU0PgIzMhYXBy4BIyIVFB4CFx4DFRQOAiMiJidXIj4gIR4RHSQTFy4mGBsyRis5ViBCGzQaOBAbIxMYLycYGjRMMjFnJpUaGhYUDBMQDQgJGCMvHyI6KBcnGFgUFicMEQ4NBwkXIjEiIjorGSYfAAAAAQAR%2F%2FQBbgJ0ABkARQC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAULxu5ABQABD5ZuAAGELkACQAB9LgAANC4AAYQuAAD0LgAFBC5AA0AAfQwMRMjNT8BMxUzFSMVFBYzMjY3Fw4BIyIuAjVVREwRend3Ix0MGQoXFDYkLkEpEwF9bQaEhHPHKiUGBGsGDBwyRysAAAEAPP%2F0AfgB8AAUAGUAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgACS8buQAJAAg%2BWbgAAEVYuAARLxu5ABEABD5ZuAAARVi4AAwvG7kADAAEPlm4ABEQuQAFAAH0ugANAAkADBESObgADRC5AAgAAfQwMRMzERQWMzI2NxEzESMnIw4BIyImNTyTHiAcJhaTeAsDIEkzUUkB8P7fNigaHQFI%2FhBFJitqXgAAAAABAAwAAAH%2FAfAADQBAALgAAEVYuAAALxu5AAAACD5ZuAAARVi4AAovG7kACgAIPlm4AABFWLgADS8buQANAAQ%2BWboABQAAAA0REjkwMRMzFx4BFzM%2BAT8BMwMjDJRAChMKBAkTCkGNoqoB8OolTScnTSXq%2FhAAAAABABgAAALwAfAAIQB2ALgAAEVYuAAALxu5AAAACD5ZuAAARVi4AAovG7kACgAIPlm4AABFWLgAFC8buQAUAAg%2BWbgAAEVYuAAhLxu5ACEABD5ZuAAARVi4ABcvG7kAFwAEPlm6AAUAIQAAERI5ugAPABcAFBESOboAHAAAACAREjkwMRMzFx4BFzM%2BAT8BMxceARczPgE%2FATMDIycuAScjDgEPASMYkjAGCgYEBw0JN384CQ4IBAcJBy%2BId6wtCAwHBAcLByyoAfDmJUgmJkoj5uYlSCYmSCXm%2FhDGI0YoKEYjxgABAA4AAAH0AfAAGQBbALgAAEVYuAABLxu5AAEACD5ZuAAARVi4AAsvG7kACwAIPlm4AABFWLgAGS8buQAZAAQ%2BWbgAAEVYuAAPLxu5AA8ABD5ZugAGAAsADxESOboAFAABABkREjkwMRMnMxceARczPgE%2FATMHFyMnLgEnIw4BDwEjpo%2BeLAoVCwQIEggimJCZnjAMFwwECRQJJ5gBAu5QFSsVFSsVUP%2FxUhUsFRUrFlIAAAABAAz%2FPgH9AfAAHQBGALgAAEVYuAAILxu5AAgACD5ZuAAARVi4ABIvG7kAEgAIPlm4AABFWLgAGS8buQAZAAY%2BWbkAAwAB9LoADQAIABkREjkwMRceATMyNj8BAzMXHgEXMz4BPwEzAw4DIyImJzdMBxIIJSgKB7%2BURwsSCgQIEQk8jawSJzNBLBcgDxpIAgQkHRoB49UiRiUjRyPV%2FgsvRy8YBQVwAAABACYAAAG0AfAACQA9ALgAAEVYuAADLxu5AAMACD5ZuAAARVi4AAgvG7kACAAEPlm5AAYAAfS4AADQuAADELkAAQAB9LgABdAwMTcTIzUhFQMzFSEm0LkBcNDX%2FnJPAS5zTv7RcwAA%2F%2F%2F%2F%2BgAAAkMDNgImAAQAAAAHAOEBGwAA%2F%2F%2F%2F%2BgAAAkMDNgImAAQAAAAHAOMBGwAA%2F%2F%2F%2F%2BgAAAkMDNgImAAQAAAAHAOUBGwAA%2F%2F%2F%2F%2BgAAAkMDRwImAAQAAAAHAOcBGwAA%2F%2F%2F%2F%2BgAAAkMDSAImAAQAAAAHAOoBGwAA%2F%2F%2F%2F%2BgAAAkMDfQImAAQAAAAHAOwBGwAAAAL%2F8gAAAxkCjAAGABYAfAC4AABFWLgADi8buQAOABA%2BWbgAAEVYuAANLxu5AA0ABD5ZuAAARVi4AAkvG7kACQAEPlm6AAIADgANERI5ugAKAA4ADRESObgACi%2B5AAYAAfS4AAkQuQAHAAH0uAAOELkAEAAB9LoAFQAOAAkREjm4ABUvuQATAAH0MDEBESMOAQ8BBRUhNSMHIwEhFSMVMxUjFQGCBBQnFCoCFP5psUSbATYB5%2FrT0wEHARYwXitdi3yVlQKMfIN7lgAA%2F%2F8ALv8jAjACmAImAAYAAAAHAO4BXgAA%2F%2F8ATQAAAe8DNgImAAgAAAAHAOEBIAAA%2F%2F8ATQAAAe8DNgImAAgAAAAHAOMBIAAA%2F%2F8ATQAAAe8DNgImAAgAAAAHAOUBIAAA%2F%2F8ATQAAAe8DSAImAAgAAAAHAOoBIAAA%2F%2F%2F%2F9AAAAOEDNgImAAwAAAAHAOEAlgAA%2F%2F8ASwAAATgDNgImAAwAAAAHAOMAlgAA%2F%2F%2F%2F7gAAAT4DNgImAAwAAAAHAOUAlgAA%2F%2F%2F%2F7QAAAT8DSAImAAwAAAAHAOoAlgAA%2F%2F8ATQAAAkwDRwImABEAAAAHAOcBTQAA%2F%2F8ALv%2F0An4DNgImABIAAAAHAOEBVgAA%2F%2F8ALv%2F0An4DNgImABIAAAAHAOMBVgAA%2F%2F8ALv%2F0An4DNgImABIAAAAHAOUBVgAA%2F%2F8ALv%2F0An4DRwImABIAAAAHAOcBVgAA%2F%2F8ALv%2F0An4DSAImABIAAAAHAOoBVgAAAAMAKP%2FXApQCtQAHABAAKgCFALgAAEVYuAAmLxu5ACYAED5ZuAAARVi4ABkvG7kAGQAEPlm6AAAAGQAmERI5uQACAAH0ugAHACYAGRESOboACAAmABkREjm4ACYQuQAKAAH0ugAQABkAJhESOboAEQAmABkREjm6ABsAGQAmERI5ugAeABkAJhESOboAKAAmABkREjkwMSUWMzI2NTQvASYjIgYVFBYXAR4BFRQOAiMiJwcnNy4BNTQ%2BAjMyFzcXAQgiLUNOCTAkNENOBwYBdRodK05tQl5HPkxFHSErTm1CZklCTI8cc2MtJF0ibmIcMhUBNilpQVB%2BWC8wTTpWK3JFUH1VLTVSOwAAAAACAC4AAAMyAowAFAAhAFUAuAAARVi4AAUvG7kABQAQPlm4AABFWLgAEC8buQAQAAQ%2BWbgABRC5ABwAAfS4AAfQugAMAAUAEBESObgADC%2B5AAoAAfS4ABAQuQAbAAH0uAAO0DAxEzQ%2BAjMhFSMVMxUjFSEVISIuAjcUHgI7AREjIg4CLjJZe0kBq%2FfQ0AEB%2FkNGd1gylxwzRysXFytHMxwBSVR6TyZ8g3uWfChRfFQ7UTEVAZ4UL07%2F%2FwBJ%2F%2FQCTwM2AiYAGAAAAAcA4QFMAAD%2F%2FwBJ%2F%2FQCTwM2AiYAGAAAAAcA4wFMAAD%2F%2FwBJ%2F%2FQCTwM2AiYAGAAAAAcA5QFMAAD%2F%2FwBJ%2F%2FQCTwNIAiYAGAAAAAcA6gFMAAD%2F%2F%2F%2F4AAACFQM2AiYAHAAAAAcA4wEGAAAAAgAaAAACZQKMABAAIQBZALgAAEVYuAAhLxu5ACEAED5ZuAAARVi4ABwvG7kAHAAEPlm5AAAAAfS4ACEQuQAKAAH0ugAOACEAHBESObgADi%2B5AA0AAfS4AA4QuAAe0LgADRC4AB%2FQMDElMj4CNTQuAisBFTMVIxUTMh4CFRQOAisBESM1NxEBFSpEMBsbMEQqHH19JUt4Vi4uVHVIwExMdxYxUDs6Ty8UoUe2AhUmT3pUVHxRKAEtQgUBGAACAE0AAAI6AowAEAAYADkAuAAARVi4AAAvG7kAAAAQPlm4AABFWLgAEC8buQAQAAQ%2BWbsAGAABAA4ABCu7AAIAAQAXAAQrMDETMxUzMh4CFRQOAisBFSM3MjU0JisBFU2TWzVdRSgpRlw0W5PleD07UgKMYxUxUDs6UzYae%2FBoMynEAP%2F%2FAC%2F%2F9AHZAtQCJgAeAAAABwDgARkAAP%2F%2FAC%2F%2F9AHZAtQCJgAeAAAABwDiARkAAP%2F%2FAC%2F%2F9AHZAtQCJgAeAAAABwDkARkAAP%2F%2FAC%2F%2F9AHZAsYCJgAeAAAABwDmARkAAP%2F%2FAC%2F%2F9AHZAsYCJgAeAAAABwDpARkAAP%2F%2FAC%2F%2F9AHZAvACJgAeAAAABwDrARkAAAADAC%2F%2F9ALtAfwACwA8AEMAmwC4AABFWLgADy8buQAPAAg%2BWbgAAEVYuAAVLxu5ABUACD5ZuAAARVi4AC4vG7kALgAEPlm4AABFWLgAKC8buQAoAAQ%2BWbgALhC5AAMAAfS6ADYALgAPERI5uAA2L7kACQAB9LoAHQAVACgREjm4AB0vuAAoELkAIQAB9LgADxC5ADkAAfS4ABUQuQBAAAH0uAAdELkAQwAB9DAxNxQWMzI2NyYvAQ4BAz4BMzIWFz4BMzIeAhUUBgchHgEzMjY3Fw4BIyImJw4BIyIuAjU0NjcuASMiBgcFNCYjIgYHux8aGi8UCwMBST57MGU2LkYWIEYtMUoxGQQC%2FuIIQi0cMhsyJl0sOFMgNVgyIjYmFYKSAiEqHkAkAfwkKSMxBpUYFxYUHyMVCyoBCR0kKCMkJyVBWDMUIQk0MhQQXxoeKiMqIxcpNh9PWQ8gJxgVMy04MTQA%2F%2F8AJP8jAb4B%2FAImACAAAAAHAO0BGgAA%2F%2F8AJP%2F0AeEC1AImACIAAAAHAOABDgAA%2F%2F8AJP%2F0AeEC1AImACIAAAAHAOIBDgAA%2F%2F8AJP%2F0AeEC1AImACIAAAAHAOQBDgAA%2F%2F8AJP%2F0AeECxgImACIAAAAHAOkBDgAA%2F%2F%2F%2F9QAAANwC1AImAGcAAAAHAOAAigAA%2F%2F8AOAAAAR8C1AImAGcAAAAHAOIAigAA%2F%2F%2F%2F8AAAASQC1AImAGcAAAAHAOQAigAA%2F%2F%2F%2F4QAAATMCxgImAGcAAAAHAOkAigAAAAEAQQAAANQB8AADACUAuAAARVi4AAAvG7kAAAAIPlm4AABFWLgAAi8buQACAAQ%2BWTAxEzMRI0GTkwHw%2FhAAAP%2F%2FAEEAAAIAAsYCJgArAAAABwDmATQAAP%2F%2FACT%2F9AIHAtQCJgAsAAAABwDgARUAAP%2F%2FACT%2F9AIHAtQCJgAsAAAABwDiARUAAP%2F%2FACT%2F9AIHAtQCJgAsAAAABwDkARUAAP%2F%2FACT%2F9AIHAsYCJgAsAAAABwDmARUAAP%2F%2FACT%2F9AIHAsYCJgAsAAAABwDpARUAAAADACT%2F5wIHAgsABwAPACoASQC4AABFWLgAJS8buQAlAAg%2BWbgAAEVYuAAYLxu5ABgABD5ZugAAABgAJRESObkAAgAB9LoACAAlABgREjm4ACUQuQAKAAH0MDE3FjMyNjU0LwEmIyIGFRQXJR4BFRQOAiMiJwcnNy4BNTQ%2BAjMyFhc3F9wXIy02ByQWIi42BwEVGh8oQ1cvSjwrNy8aHyhDWC8jRB0sN3oUSz8pG0MTSz8oG%2BkhVzY%2BYUIjKDUqOiBXNj5hQiMUEzYrAAADACT%2F9AMSAfwACwA0ADsAcQC4AABFWLgAES8buQARAAg%2BWbgAAEVYuAAwLxu5ADAABD5ZuQADAAH0uAARELkACQAB9LgAERC4ABfQuAAwELgAKtC6AB8AFwAqERI5uAAfL7gAKhC5ACMAAfS4ABcQuQA4AAH0uAAfELkAOwAB9DAxNxQWMzI2NTQmIyIGBzQ%2BAjMyFhc%2BATMyHgIVFAYHIR4BMzI2NxcOASMiJicOASMiLgIlNCYjIgYHuSwpKS4uKSkslSZAVS81Tx0eUi0xSjIZBAL%2B4QhCLRwyGzMmXiwtVB8fTzcwVD8kAnAkKSMxBvhBTExBQUxMQT5hQiMuKSotJUFYMxQhCTQyFBBfGh4tKissI0JhbS04MTQAAAABAEH%2F9AJdAscAOABkALgAAEVYuAAFLxu5AAUAEj5ZuAAARVi4ADgvG7kAOAAEPlm4AABFWLgAGy8buQAbAAQ%2BWboADwAbAAUREjm5ACEAAfS6ACQAGwAFERI5ugAwABsABRESObgABRC5ADMAAfQwMRM0PgIzMh4CFRQOAhUUHgQVFA4CIyImJzcWMzI2NTQuBDU0PgI1NCYjIgYVESNBHTpaPDNNMxoYHhgaJy4nGhcvRS0tRiQzMS4aHRonLicaFhsWIR8uLpEB5zBSPCIcLzwgJDEnIRMRFxYaJTUmIjwsGhgVZCQbFRMbFxkhLSEdKiYpGx0nQzr%2BKv%2F%2FADz%2F9AH4AtQCJgAyAAAABwDgAR0AAP%2F%2FADz%2F9AH4AtQCJgAyAAAABwDiAR0AAP%2F%2FADz%2F9AH4AtQCJgAyAAAABwDkAR0AAP%2F%2FADz%2F9AH4AsYCJgAyAAAABwDpAR0AAP%2F%2FAAz%2FPgH9AtQCJgA2AAAABwDiAQoAAP%2F%2FAAz%2FPgH9AsYCJgA2AAAABwDpAQoAAAACACr%2F9AH%2BAuQADgAyAFkAuAAARVi4AC0vG7kALQASPlm4AABFWLgAFy8buQAXAAQ%2BWbsAIQABAAkABCu6ACkAJgADK7gAFxC5AAAAAfS4ACYQuAAP0LgAKRC4AC3cuAApELgAMNAwMSUyNjU8AScuASMiBhUUFhMeARUUDgIjIi4CNTQ%2BAjMyFhcmJwcnNy4BJzceARc3FwEWKjUBFzAaLDc9ijtMIT1YNy9TQCUiOUknHTgVGjuOJnQULRlAI0YhjyZrSU4MFgsZEjo8Oz4B7jyjcDxmSioiPlk3NlQ6HxMXTThHQToOGg1ZEioZSEEAAAAAAgBB%2F0gCFgK9ABYAIQBXALgAAEVYuAAILxu5AAgACD5ZuAAARVi4AAIvG7kAAgASPlm4AABFWLgAAS8buQABAAY%2BWbgAAEVYuAASLxu5ABIABD5ZuQAaAAH0uAAIELkAHwAB9DAxFyMRMxUHPgEzMh4CFRQOAiMiJicXNR4BMzI2NTQjIgfUk5MEGkAiL0s0HCM7SygkNxoEFCgTJjZWKyq4A3WsRhcaJEJdOUBjRSQYF0qzEg5FTYYtAAABABgAAAKvAskALgB8ALgAAEVYuAATLxu5ABMACD5ZuAAARVi4ACsvG7kAKwASPlm4AABFWLgADy8buQAPAAQ%2BWbgAKxC5AAIAAfS4ABMQuAAl0LgAB9C4ABMQuQAQAAH0uAAM0LgACNC4AA8QuAAL0LgAExC4ABLQuAArELgAGdC5ACAAAfQwMQEmIyIGHQEzFSMRIxEjESMRIzU3NTQ%2BAjMyFhcHLgEjIgYdATM1ND4CMzIWFwKVHBcbHllZk6mTQkIVLUczIDYRGwwaFBohqRMsRTIgMhECSwohJh5z%2FoMBff6DAX1tBRcmRDIdCwdtBQYhIxcaJ0Y0HgwGAAAAAQAY%2F%2FQCnwLJAC4AiQC4AABFWLgAEC8buQAQAAg%2BWbgAAEVYuAAWLxu5ABYAEj5ZuAAARVi4AAwvG7kADAAEPlm4AABFWLgAAy8buQADAAQ%2BWbgAEBC5AA0AAfS4AAnQuAAQELgAD9C4AA8vuAAWELkAHAAB9LgAEBC4ACHQuAAl0LgACRC4ACbQuAADELkAKwAB9DAxJQ4BIyIuAj0BIxEjESM1NzU0PgIzMhYXByYjIgYdATM3MxUzFSMVFBYzMjY3Ap8UNiQuQSkTmZNCQhMsRjIfMxEbHBcbHqERend3Ix0MGQoGBgwcMkcryf6DAX1tBRsnRjQeDAZsCiEmHoSEc8cqJQYEAAAAAAMAGf%2F0AokCmAAKABYARACMALgAAEVYuAAvLxu5AC8AED5ZuAAARVi4AB0vG7kAHQAEPlm4AABFWLgAFy8buQAXAAQ%2BWboAOgAaAAMruAAdELkAAwAB9LoABQAaADoREjm6AAgAHQAvERI5uAAIL7gADty4AC8QuQAUAAH0ugAnAAgADhESOboANwAIAA4REjm6AEEAGgA6ERI5MDE3FBYzMjcuAScOARMUFhc%2BATU0JiMiBgEuAScOASMiLgI1ND4CNy4BNTQ%2BAjMyFhUUDgIHHgEXPgE3Mw4BBx4BF6Q1LCgrJkUdFBg9CwojMBYXGSIBhSlUKiplPjVRNxwTISsYExUZLkEpSlYXJzEZHEMkGSYMhhI1Jh85GbclLhofRCQRJgEgEigUFS4hFxwn%2FeQIIhgfIx4zQyYiNywkDyNFHyM%2BLxtQRCA1LSYRID0aIE4uPG0zEBUEAAAAAAIAJf%2F0AesChwATACcANQC4AABFWLgACi8buQAKAA4%2BWbgAAEVYuAAALxu5AAAABD5ZuQAUAAH0uAAKELkAHgAB9DAxBSIuAjU0PgIzMh4CFRQOAicyPgI1NC4CIyIOAhUUHgIBCDNUOyEhO1QzM1Q7ISE7VDMTIBgNDRggExIgGA4OGCAMK1R8UVF6UykpU3pRUXxUK3ITMlRBQVMvEhIvU0FBVDITAAEARgAAAdoCewAMAEMAuAAARVi4AAcvG7kABwAOPlm4AABFWLgADC8buQAMAAQ%2BWbkAAQAB9LgABxC5AAQAAfS5AAIAAfS4AAEQuAAJ0DAxNzMRIzU%2BATczETMVIUaKdzRIImx3%2Fmx3AW9bChwU%2Ffx3AAAAAQAeAAAB5AKHAB8APQC4AABFWLgADy8buQAPAA4%2BWbgAAEVYuAAeLxu5AB4ABD5ZuQAcAAH0uAAZ0LgAANC4AA8QuQAIAAH0MDE3PgM1NCYjIgYHJz4BMzIeAhUUDgIHPgE7ARUhJT1lSSkwKiM2GFAvYkQvTTgeIjlJJxg7F4D%2BQVQ5Y1dLIi8xJxpPMjMdNUouKFNTUygDBXwAAQAW%2F%2FQB3wKHAC8AUwC4AABFWLgAGy8buQAbAA4%2BWbgAAEVYuAAsLxu5ACwABD5ZuQADAAH0ugALABsALBESObgACy%2B5AAwAAfS4ABsQuQAUAAH0ugAkAAwACxESOTAxNx4BMzI2NTQuAiM1Mj4CNTQmIyIGByc%2BATMyHgIVFAYHFR4BFRQOAiMiJidaHUUpLzgPJkI0KzkjDygmIjceSixhOzFROSA3MzdHJkBWME5sI6scJCckFSIXDWgMFx8TISUeGlomKxctQCoyRRYEEE0%2BLEUvGTEpAAAAAAIAEwAAAfgCewAJABQAVwC4AABFWLgAEi8buQASAA4%2BWbgAAEVYuAANLxu5AA0ABD5ZuwAOAAEAAAAEK7gAEhC4AATcuAAAELgACdC4AA4QuAAL0LgACRC4ABDQuAAAELgAE9AwMQE1NDY3Iw4BDwEFIxUjNSE1EzMRMwEmBAIEDBoOVAFYSYn%2B7ei0SQEIZx9RHho2G4pwmJhlAX7%2BjQABABf%2F9AHgAnsAJABHALgAAEVYuAAQLxu5ABAADj5ZuAAARVi4ACEvG7kAIQAEPlm5AAMAAfS6ABcAEAAhERI5uAAXL7gACdy4ABAQuQASAAH0MDE3HgEzMjY1NCYjIg4CBycTIRUjBz4BMzIeAhUUDgIjIiYnWR1DKTE6Ny0OFhUXDkISAWjpCxIhFClJOCAmQFUuTmwmqholMjEwMgMIDAkqAUF8dwgHGDBKMzVSOR4zJgACACn%2F9AHsAocADQAyAEMAuAAARVi4AC8vG7kALwAOPlm4AABFWLgAJS8buQAlAAQ%2BWbsAGwABAAYABCu4ACUQuQAAAAH0uAAvELkAEQAB9DAxJTI2NTQmIyIGBx4DEy4BIyIOAgc%2BAzMyHgIVFA4CIyIuAjU0PgIzMhYXARYhLy8kGDIWBRQaH5ERNhwaLiMWAgwgIiIPKUUzHCI5TSsuV0MoK0ddMj9cHmIxNjMpHCMmMh8NAYESGxQvTDcQGREJGDBKMjJOOB0kTHdUWYJUKS0fAAEALAAAAeYCewAPADMAuAAARVi4AAcvG7kABwAOPlm4AABFWLgAAC8buQAAAAQ%2BWbgABxC5AAUAAfS4AAnQMDEzPgM3ITUhFQ4DByOfBBUnPS3%2B4wG6N0MlEASUT4V5dD58WkN1fY9dAAAAAAMAKv%2F0AegChwANABgAOgBXALgAAEVYuAAlLxu5ACUADj5ZuAAARVi4ADYvG7kANgAEPlm5AAMAAfS6AAsANgAlERI5uAALL7gADtC4ACUQuQATAAH0uAALELgAHNy4AA4QuAAt3DAxNxQWMzI2NTQuAicOATc2NTQmIyIGFRQWBzQ2NzUuATU0PgIzMh4CFRQGBxUeARUUDgIjIi4CqDooJTATJDEeFRyHJykkHSo81D8tJTAeNkssK0gyHDIhLkAgO1MzMFE7IbMqLycoFR4ZFg0UNKItMCUtJCUnLOM6ShgEHEczKEEuGBktQScuRxYEGU4%2FJkAvGxkuQAAAAAACACL%2F9AHmAocACwAwAEMAuAAARVi4ACMvG7kAIwAOPlm4AABFWLgALS8buQAtAAQ%2BWbsAAAABABkABCu4ACMQuQAGAAH0uAAtELkADwAB9DAxEzI2Ny4BIyIGFRQWBx4BMzI%2BAjcOAyMiLgI1ND4CMzIeAhUUDgIjIiYn%2FBgyFQo3IiAwMF8QNhwbLiMVAgwgIiIPKUUyHSI5TSsuV0MpK0ddMj9dHgFWHCNLOTE2Mym%2BEhsUL0s4EBkRCRgwSjIxTzgdJEx3VFmCVCkuHgAAAQA9%2F%2FQA7wCtAAsAGAC4AABFWLgACS8buQAJAAQ%2BWbgAA9wwMTc0NjMyFhUUBiMiJj0zJiYzMyYmM1AoNTUoJzU1AAABAC7%2FPgEAAK0AEAAYALgAAEVYuAAELxu5AAQABD5ZuAAK3DAxFz4BNSMiJjU0NjMyFhUUBgcuNzoIIzY2JjI0XFh0FEAmKygmLklCU3ca%2F%2F8APf%2F0AO8B8QInAIYAAAFEAAYAhgAA%2F%2F8ALv8%2BAQAB8QInAIYAAAFEAAYAhwAAAAIAUf%2F0AQMCngAFABEAGgC4AABFWLgADy8buQAPAAQ%2BWbkACQAB9DAxEyczBwMjBzQ2MzIWFRQGIyImZQWUBRVgKTMmJjMzJiYzAhmFhf7Olyg1NSgnNTUAAAAAAgBR%2F1IBAwH8AAUAEQANALgADy%2B5AAkAAfQwMR8BIzcTMzcUBiMiJjU0NjMyFu8FlAUVYCkzJiYzMyYmMymFhQEylyg1NSgnNTUAAAIAKf%2F0AaUCqgAdACkAKAC4AABFWLgAJy8buQAnAAQ%2BWbsAEQABAAoABCu4ACcQuQAhAAH0MDE3Jj4ENTQmIyIGByc%2BATMyHgIVFA4EFwc0NjMyFhUUBiMiJpoFDxwjIBUlHhwrFFEiXDgqSTUeFiElHxIDmTImJjMzJiYy5yI4MCglIxMfIBoUSikyFCpBLB8xKicqLx6XKDU1KCc1NQACACr%2FRgGmAfwAHQApABsAuAAnL7sACgABABEABCu4ACcQuQAhAAH0MDEBFg4EFRQWMzI2NxcOASMiLgI1ND4EJzcUBiMiJjU0NjMyFgE1BQ8cIyAVJh0cKxRRIlw4Kkk1HhYhJR8TA5kzJiYzMyYmMwEJIjgwKCUjEx8gGhRKKTIUKkEtHzEqJykvHpcoNTUoJzU1AAAAAAEATAFiAOACrgAFAAsAugACAAQAAyswMRMnMw8BI1EFlAUdUAIphYXHAAD%2F%2FwBMAWIBzAKuACYAjgAAAAcAjgDsAAAAAQA3AVIA5QKrABEAKwC4AABFWLgAAy8buQADAAg%2BWbgAAEVYuAAFLxu5AAUACD5ZuQALAAH0MDETDgEVNjMyFhUUBiMiJjU0NjflLS0DByAtLCEvL0ZIAmsXOy0BJyImLEU%2BR2wjAAABAEcBYAD2ArkAEQANALsACwABAAUABCswMRM%2BATUGIyImNTQ2MzIWFRQGB0ctLQMGIC0rIi4wR0gBoBc7LQEnIiYsRD9HbCMAAAD%2F%2FwA3AVIB0QKrACYAkAAAAAcAkADsAAD%2F%2FwBHAWAB4gK5ACYAkQAAAAcAkQDsAAD%2F%2FwBH%2F1gA9gCxAgcAkQAA%2FfgAAP%2F%2FAEf%2FWAHiALEAJwCRAAD9%2BAAHAJEA7P34AAAAAQAxADgA7gHAAAYACwC6AAIABgADKzAxNzU3FwcXBzGGN29vN8hokCyYmCwAAAAAAQA2ADgA8wHAAAYACwC6AAIABQADKzAxNyc3FxUHJ6VvN4aGN%2FyYLJBokCwAAAD%2F%2FwAxADgBqgHAACYAlgAAAAcAlgC8AAD%2F%2FwA2ADgBrwHAACYAlwAAAAcAlwC8AAAAAQArAMkBIQExAAMADQC7AAEAAQACAAQrMDETMxUjK%2Fb2ATFoAAAA%2F%2F8AKwDJASEBMQIGAJoAAAABACsAzgG1ASwAAwANALsAAQABAAIABCswMRMhFSErAYr%2BdgEsXgAAAQArAM4C9QEsAAMADQC7AAEAAQACAAQrMDETIRUhKwLK%2FTYBLF4A%2F%2F8APQDkAO8BnQIHAIYAAADwAAAAAQAoAHsBMQGRABMACwC6AAoAAAADKzAxNyIuAjU0PgIzMh4CFRQOAqwcMCQUFCQwHBwxJBQUJDF7FSYyHh4zJRUVJTMeHjImFQAAAAEADP90Aej%2FxwADAA0AuwAAAAEAAQAEKzAxBRUhNQHo%2FiQ5U1MAAAABAEj%2FTQEoAt8ADgALALoABgAAAAMrMDEXLgE1NDY3Fw4BFRQWFwfMP0VFP1w3MjI3XLNn3oSE3mcmYtZra9ZiJgAAAAEAMP9NARAC3wAOAAsAugAHAA0AAyswMRc%2BATU0Jic3HgEVFAYHJzA4MjI4XD9FRT9cjWLWa2vWYiZn3oSE3mcmAAAAAQBX%2F2gBKgLEAAcAFwC7AAUAAQAGAAQruwABAAEAAgAEKzAxEzMVIxEzFSNX02Vl0wLETv1ATgABAC7%2FaAEBAsQABwAXALsAAAABAAYABCu7AAMAAQACAAQrMDEXESM1MxEjNZRm09NKAsBO%2FKROAAEAH%2F9oASoCxAAzACsAuwAAAAEAAQAEK7sAHgABAB8ABCu7ABAAAQAPAAQrugAqAA8AEBESOTAxBRUjIiY1ND4CNTQuAic1PgM1NC4CNTQ2OwEVIyIGFRQWFRQGBxUeARUUBhUUFjMBKj9CPgMEAwkUIRgYIRQJAwQDPkI%2FEx8WBCQmJiQEFh9KTj1RGyonJxgNGhUNAVYBDRUaDRgnJyobUT1OHSkpTC45MwkECTM5LkwpKR0AAAABAC7%2FaAE5AsQAMwArALsAAAABADIABCu7ABUAAQAUAAQruwAjAAEAJAAEK7oACgAkACMREjkwMRcyNjU0JjU0Njc1LgE1NDY1NCYrATUzMhYVFA4CFRQeAhcVDgMVFB4CFRQGKwE1QR8WBCQmJiQEFh8TP0I%2BAwQDCRQhGBghFAkDBAM%2BQj9KHSkpTC45MwkECTM5LkwpKR1OPVEbKicnGA0aFQ0BVgENFRoNGCcnKhtRPU4AAAAAAQAN%2F2ABNgLGAAMAGAC4AABFWLgAAC8buQAAABI%2BWbgAAtwwMRMzAyPWYMlgAsb8mgAAAAEAVv8GALYC7gADAAsAugABAAIAAyswMRMzESNWYGAC7vwYAAEAHP9gAUYCxgADABgAuAAARVi4AAAvG7kAAAASPlm4AALcMDETMxMjHGDKYALG%2FJoAAAACAFb%2FBgC2Au4AAwAHAAsAugABAAUAAyswMRMzESMXESMRVmBgYGAC7v5KbP46AcYAAAAAAQAmAV0BowLIAA4AFAC4AABFWLgABS8buQAFABI%2BWTAxEzcnNxc3Mxc3FwcXBycHVztsF3QNTQ1zGGw7PVBRAYloMUgYdncZSDFoLFlZAAACACX%2FrAHrArIADQBBACgAuAAARVi4ACgvG7kAKAAEPlm7ACsAAQAlAAQruwA%2BAAEAEQAEKzAxExQeAhc2NTQuAicGNy4BIyIVFB4EFRQGBx4BFRQOAiMiJic3FjMyNjU0LgQ1NDY3LgE1NDYzMhYXoSAyPR0iIDE9HSPaFzgaNig8RzwoKycLDBkwSC83aSJVMTwfHSc6RTonKyUOD11VOlsfAVEYIRsZDxUmGCEbGA8XoRQcJxIbGyAtQC0sQRgQJhciOioYKStLMxgTExwaHi1ALyZDFxApGkRVKRgAAAIAJ%2F%2BwAhwCjAADABAAJQC4AABFWLgAAC8buQAAAA4%2BWbgAAEVYuAAOLxu5AA4ADj5ZMDEBMxEjAyIuAjU0PgI7AREBiZOTYDVeRikoRV00LAKM%2FSQBFR07Vzk%2FVTUW%2FjkAAAADAC3%2F9wLAAo8AEwAnAEUAMwC7ADoAAQBBAAQruwAtAAEANAAEK7gALRC4ACPcuQAFAAH0uABBELgAGdy5AA8AAfQwMRM0PgIzMh4CFRQOAiMiLgI3FB4CMzI%2BAjU0LgIjIg4CFzQ%2BAjMyFhcHLgEjIgYVFBYzMjY3Fw4BIyIuAi01W3hCQnhaNTVaeEJCeFs1RClGYDc3YEYpKUZgNzdgRilRIDVGJi4%2BGDcQIBQwMTIqGSQTMB1AJypHMx0BRU56VS0tVXtNTntXLi5Xe04%2BZEgnJ0hkPj1kRyYmR2Q%2BLEcyGyMYPRERPS0zPBMPRBcdHDNJAAAAAAQAIAE3Aa0CywATACMAMAA5AFcAuAAvL7gAJS%2B4AC8QuAAU3LkAAAAB9LgAJRC4ABrcuQAKAAH0ugAtAC8AJRESObgALS%2B5ADEAAfS6ACoAMQAtERI5uAAvELgALNC4ACUQuQA3AAH0MDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIOAhUUHgInMzIWFRQHFyMnIxUjNzI2NTQmKwEV5ylJNh8fNkkpKUg2Hx82SCk%2FUFA%2FIDQnFRUnNDFZIy4jKTweHTlODw8PDxUBNx42SiwsSjYeHjZKLCxKNh4xU0ZGUxYoOCMjOCgW%2FSAiJRFNPDxkEQsLDzYAAgAx%2F1QDVgKdAEYAUwA%2FALsAOwABAEIABCu7ACcAAQAPAAQruwBJAAEAFgAEK7sAHgABAE8ABCu7AAUAAQAxAAQrugAiAE8AHhESOTAxNzQ%2BAjMyHgIVFA4CIyImJyMOASMiJjU0PgIzMhYXMzczBwYzMj4CNTQuAiMiDgIVFB4CMzI2NxcOASMiLgIlFDMyNj8BJiMiDgIxSHukXFGDXDIqQlEnK0AIAhVEHzxIHzZKKxkmDQIOWy4VQxYrIhQeQmhJQHpgOi9RaTsnUSAgLmA2S4lpPgE%2FNBAfExgPHxcjGQ3Naat6QjRfg05FZ0UiKCQdJVFFLlhFKhcbKtxWGS9DKTZiSyw1YYlUSm5IJBYRUBkXLl6NYkMUGYcdHCoyAAAAAAIAIgAAAfICigAbAB8AoAC4AABFWLgABi8buQAGAAg%2BWbgAAEVYuAAKLxu5AAoACD5ZuAAARVi4AA4vG7kADgAIPlm4AABFWLgAFi8buQAWAAQ%2BWbgAAEVYuAAaLxu5ABoABD5ZuwADAAEAAAAEK7gABhC5AAQAAfS4ABDQuAAR0LgAAxC4ABLQuAAAELgAFNC4AAAQuAAY0LgAAxC4ABzQuAARELgAHdC4AB7QMDE3IzUzNyM1MzczBzM3MwczFSMHMxUjByM3IwcjEzcjB2xKVQ5PWxVUFGgVVBRPWw1UXxdVFmcXVd4OaA27Xm5epaWlpV5uXru7uwEZbm4AAP%2F%2FAEwBuAESAz4CBwC3AAABuAAA%2F%2F8AGwG4AU4DSgIHALgAAAG4AAD%2F%2FwAbAawBUQNKAgcAuQAAAbgAAP%2F%2FACMBuAFwAz4CBwC6AAABuAAAAAIAGv%2F0AV8BkgATAB8AKAC4AAovuAAARVi4AAAvG7kAAAAEPlm5ABQAAfS4AAoQuQAaAAH0MDEXIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWvCM8KxgYKzwjIzwrGRkrPCMZIyMZGSMjDBw2TTExTDUcHDVMMTFNNhxSOEZGNjZGRjgAAAABAEwAAAESAYYACgAiALgACC%2B4AABFWLgACi8buQAKAAQ%2BWbgACBC5AAAAAfQwMRMjNT4DNzMRI6VZFB8aFwxWbQEZQgMICg0J%2FnoAAQAbAAABTgGSABcALAC4AAwvuAAARVi4ABYvG7kAFgAEPlm5ABQAAfS4AADQuAAMELkABgAB9DAxNz4BNTQmIyIGByc2MzIWFRQOAgczFSEtS2AeGxQiET08WUFPER0lFXb%2B3zo%2BXyUdIBkWOFBFPxgtLCwXWgAAAQAb%2F%2FQBUQGSACgAPgC4ABUvuAAARVi4ACUvG7kAJQAEPlm6AAgABwADK7gAJRC5AAIAAfS4ABUQuQAOAAH0ugAdAAcACBESOTAxNxYzMjY1NCM1MjY1NCYjIgYHJz4BMzIeAhUUBgceARUUDgIjIiYnXCMwFyFdJCsaFxMfDj0gQi4bMSYWHhseKRkpNx4zUhp2MBgXMz4XGRQWFhE2IyAPHCkZHysQDC8jGy0fEikmAAAAAgAjAAABcAGGAAUAEABMALgADi%2B4AABFWLgACS8buQAJAAQ%2BWbsAAAABAAoABCu4AA4QuQACAAH0uAAAELgABdC4AAoQuAAH0LgABRC4AAzQuAAAELgAD9AwMTc1NyMPARcjFSM1IzU3MxUz1gYEKCrqOmCzjYY6nSl1TVFGV1c2%2Ben%2F%2FwAdAP4BQAJXAgYAvQAA%2F%2F8AGAD%2BAVwCVwIGAL4AAAACAB0A%2FgFAAlcAGQAiADsAuAAAL7gAEC%2B7AAYAAQAeAAQruAAQELkACQAB9LgAABC4ABXQuAAAELkAGgAB9LoAFwAAABoREjkwMTciJjU0NjcuASMiBgcnPgEzMhYdASMnIw4BNzI2NzUOARUUgi82WGMCFxgULhglIUknQEdTCgQSLgYPFw0yJv46KjU5CRYWEA5EFBhJS70hEhdODgw3BRwSHgAAAAACABgA%2FgFcAlcAEwAfABsAuAAKL7gAAC%2B5ABQAAfS4AAoQuQAaAAH0MDE3Ii4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWuiA6LRsbLTogIDotGxstOiAdHBwdHRsb%2FhcsQCkpQC0XFy1AKSlALBdSMSkqMTEqKTEAAAAAAgAnAY4BSAKuABMAHwAXALsAFAABAAAABCu7AAoAAQAaAAQrMDETIi4CNTQ%2BAjMyHgIVFA4CJzI2NTQmIyIGFRQWtx41JxYWJzUeHjUnFxcnNR4eJSUeHSYmAY4VJzQgHzUnFRUnNR8gNCcVRikhICkpICEpAAAAAgAUAFMB%2FAI%2FAB4AKgAoALgAAEVYuAALLxu5AAsACj5ZuwAiAAEAGwAEK7gACxC5ACgAAfQwMT8BJjU0NjcnNxc2MzIXNxcHFhUUBgcXBycOASMiJwc3FBYzMjY1NCYjIgYUPSIREDxJRTA2NDJFST0iEhA9SUYXNBo3LkZVMiQkMjIkJDKdPi5BIDcWPkpGGRlGSj4tQCE3Fz5KRwwMGEf3LTU1LS01NQAAAAEAJ%2F%2BSAdQC6QAtAF0AuAAARVi4ACcvG7kAJwAOPlm4AABFWLgAEy8buQATAAQ%2BWbgAJxC5AAMAAfS6AAYAEwAnERI5uAATELgAENC4ABMQuQAaAAH0ugAdACcAExESObgAJxC4ACrQMDEBLgEjIgYVFB4EFRQGBxUjNS4BJzceATMyNjU0LgQ1NDY3NTMVHgEXAYMbMiAkJic7RDsnTk5hLGEjQCZFJConJztEOydRR2EwSB0B3hkZHiIYIR4gLkEwSGcRaGQFJyBjHR0iIxokISEuPi1KYQ5nZQcsHwAAAQAwAAAB8QKHACwAVwC4AABFWLgAFi8buQAWAA4%2BWbgAAEVYuAADLxu5AAMABD5ZuwAkAAEAJQAEK7gAAxC5AAEAAfS4AATQuAAlELgAC9C4ACQQuAAM0LgAFhC5AB0AAfQwMTchFSE1PgE1NCYnIzU3My4BNTQ%2BAjMyFhcHLgEjIgYVFBYXMxUjHgEVFAYH7gED%2Fj8tPQEBZEQGBwkgOU4vOFMiUBEmGCgvBgWUgQEBFRh8fFsUTzYHDQdWBRQoFC9MNR0qJ1AVFS4wEiQSWwcOByQ0GwAAAQAMAAACBAJ7AB0AhAC4AABFWLgAHS8buQAdAA4%2BWbgAAEVYuAAJLxu5AAkADj5ZuAAARVi4ABQvG7kAFAAEPlm6AAQAHQAUERI5ugAZAB0AFBESObgAGS%2B5AAwAAfS4ABkQuAAN0LgAGRC4ABjQuAAYL7gAENC4ABgQuQAVAAH0uAAR0LgAGRC5ABsAAfQwMRMXHgEXMz4BPwEzAzMVIxUzFSMVIzUjNTM1IzUzA6MzDBgOBA0YDTKUk3qampqTmZmZepMCe4UhQiAhQiCF%2FttGN0aTk0Y3RgElAAEAFf%2F0AgcChwAxAG0AuAAARVi4ABcvG7kAFwAOPlm4AABFWLgAAy8buQADAAQ%2BWbsAKQABACoABCu4ACoQuAAH0LgAKRC4AAjQuAApELgAI9y4ABDQuAAjELkAIgAB9LgAEdC4ABcQuQAeAAH0uAADELkALgAB9DAxJQ4BIyImJyM1NyY0NTwBNyM1Nz4DMzIWFwcuASMiBgczFSMVHAEXMxUjHgEzMjY3AgckXDZeiRc%2BNgEBNj4MMEVWMi1WIFITKRorOQzW3wG2rA45Kh0rFFAtL3NwRQQHDAcHDAdEBThXPB8oJk8TGD45ShUIDgdLNzocGgAAAgA8%2F9cB5wKPAAYAJAA3ALsAIQABAAoABCu7ABoAAQAgAAQruAAgELgAANC4ACEQuAAG0LgAChC4AA3QuAAaELgAF9AwMQEOARUUFh8BDgEHFSM1LgM1ND4CNzUzFR4BFwcmJxE%2BATcBEyQkJSPUHUQiUTFPOB8gOk4vUSc%2FFkMeGxUkDwGwEEAtLUEPRRkdBV9fBihBWDY1Vj8pCGFdBB0XWhgD%2FvAEEwwAAAH%2FVf%2F0AQoCmAADABgAuAAARVi4AAAvG7kAAAAEPlm4AAHcMDEHATMBqwFgVf6gDAKk%2FVwAAAD%2F%2F%2F9V%2F%2FQBCgKYAgYAxgAA%2F%2F8AGv%2F0A0ACmAAnALYAAAEGACcAxgF9AAAABwC2AeEAAAAA%2F%2F8AL%2F%2F0AyECmAAnALf%2F4wEGACcAxgFkAAAABwC6AbEAAAAA%2F%2F8AL%2F%2F0AyMCmAAnALf%2F4wEGACcAxgFVAAAABwC4AdUAAAAA%2F%2F8AGf%2F0AykCmAAnALn%2F%2FgEGACcAxgF6AAAABwC6AbkAAAAAAAEAIgBeAe4CNgALAB0AuwADAAEAAAAEK7gAAxC4AAbQuAAAELgACNAwMRMjNTM1MxUzFSMVI9KwsGywsGwBFmi4uGi4AAAAAAEAIgEWAe4BfgADAA0AuwABAAEAAgAEKzAxEyEVISIBzP40AX5oAAABADAAcAHgAiMACwALALoABQAJAAMrMDE%2FASc3FzcXBxcHJwcwjo5Jj49Jjo5Jj4%2B6j5BKkJBKkI9KkJAAAAAAAwAiAEkB7gJLAAsAFwAbADIAuAAARVi4AAYvG7kABgAMPlm7AA8AAQAVAAQruwAZAAEAGgAEK7gABhC5AAAAAfQwMQEiJjU0NjMyFhUUBgM0NjMyFhUUBiMiJgMhFSEBCCMuLiMjLi50LiMjLi4jIy6VAcz%2BNAGxKyIiKysiIiv%2B5SIrKyIiKysBCmgAAAD%2F%2FwAiAKMB7gHyAiYAzQB0AAYAzQCNAAAAAQAiAGgB7gIwAAkAFQC6AAEACAADK7oABQAIAAEREjkwMRMlFQ8BFR8BFSUiAcywh4ew%2FjQBf7F5Oi8ELzp5sQAAAAABACIAaAHuAjAACQAVALoACAABAAMrugAFAAEACBESOTAxAQU1PwE1LwE1BQHu%2FjSwh4ewAcwBGbF5Oi8ELzp5sQAAAAIAIgAAAe4CNgALAA8AOAC4AABFWLgADi8buQAOAAQ%2BWbsAAwABAAAABCu4AAMQuAAG0LgAABC4AAjQuAAOELkADAAB9DAxEyM1MzUzFTMVIxUjByEVIdKwsGywsGywAcz%2BNAEmaKioaIg2aAAAAAABADIBEgHeAp4ACQA4ALgAAEVYuAAALxu5AAAAED5ZuAAC3LgAABC5AAUAAfS6AAYAAAACERI5uAACELgACNC4AAnQMDETMxMjLwEjDwEjzXabeS4tBC0ueQKe%2FnSAh4eAAAAAAQAdAPAB8wGkABcAJwC7AAgAAQAPAAQruAAPELgAFNy5AAMAAfS4AAvQuAAPELgAF9AwMRM%2BATMyHgIzMjY3Fw4BIyIuAiMiBgcdJUsmHy4nIxUVIxBMJUsmHy4nIxUUJBABPTkuGBwYHhw7OS4YHBgeHAABACIAXgHuAX4ABQANALsAAQABAAQABCswMRMhESM1ISIBzGz%2BoAF%2B%2FuC4AAEAQf84Af0B8AAXAD8AuAAARVi4AAsvG7kACwAEPlm4AABFWLgAES8buQARAAQ%2BWbkABQAB9LoADgARAAUREjm6ABQAEQAFERI5MDETMxEUFjMyNjcRMxEjJyMOASMiJicXFSNBkx0gHCcWk3gLBBM5IRIfDQmTAfD%2B3zYoGh0BSP4QRSQlCA5agAD%2F%2FwCBAj4BaALUAAcA4AEWAAAAAP%2F%2FAMQCPgGrAtQABwDiARYAAAAA%2F%2F8AfAI%2BAbAC1AAHAOQBFgAAAAD%2F%2FwBwAj8BvALGAAcA5gEWAAAAAP%2F%2FAG0COwG%2FAsYABwDpARYAAAAA%2F%2F8AjAJQAaACrQAHAOgBFgAAAAD%2F%2FwClAiQBhwLwAAcA6wEWAAAAAP%2F%2FALD%2FIwFsAAQABwDtARcAAAAAAAH%2FawI%2BAFIC1AADABgAuAAARVi4AAMvG7kAAwAMPlm4AAHcMDEDMxcjlY5ZawLUlgAAAAAB%2F14CvgBLAzYAAwALALoAAQADAAMrMDEDMxcjopxRdQM2eAAB%2F64CPgCVAtQAAwAYALgAAEVYuAAALxu5AAAADD5ZuAAC3DAxEyM3MxlrWY4CPpYAAAAAAf%2B1Ar4AogM2AAMACwC6AAIAAAADKzAxEyM3Myp1UZwCvngAAf9mAj4AmgLUAAcANwC4AABFWLgABi8buQAGAAw%2BWbgAAEVYuAADLxu5AAMADD5ZuAAGELgAANy6AAUAAAAGERI5MDEDMxcjJyMHIzp0YGM1BDVjAtSWT08AAAAB%2F1gCvgCoAzYABwAXALoABgABAAMruAAGELgAB9y4AAPQMDEDNzMXIycjB6hgkGBxNQQ1Ar54eD09AAAB%2F1oCPwCmAsYAGABBALgAAEVYuAAALxu5AAAADD5ZuAAARVi4AA8vG7kADwAMPlm7ABQAAQADAAQruAAPELkACAAB9LgAAxC4AAzQMDEDPgEzMh4CMzI2NzMOASMiLgIjIgYHI6YIOCgUIhwZCw0QBksIOCgUIR0ZCw0QBksCP0VCDhAOFBhEQw4RDhQZAAAB%2F1YCvwCqA0cAFwAjALoAAAARAAMrugAFAAwAAyu4AAAQuAAI0LgADBC4ABTQMDETIi4CIyIGByM%2BATMyHgIzMjY3Mw4BPxQiHRkMDRQFSwg8JxQiHRkMDRQFSwg8Ar8OEQ4UGUVDDhEOFBlFQwAAAf92AlAAigKtAAMACwC4AAMvuAAB3DAxAyEVIYoBFP7sAq1dAAAAAAL%2FVwI7AKkCxgALABcAKAC4AABFWLgAAC8buQAAAAw%2BWbgABty4AAAQuAAM0LgABhC4ABLQMDEDIiY1NDYzMhYVFAYzIiY1NDYzMhYVFAZjHycnHx8nJ6cfJycfHycnAjsoHh0oKB0eKCgeHSgoHR4oAAAAAv9XArwAqQNIAAsAFwAbALoABgAAAAMruAAAELgADNC4AAYQuAAS0DAxAyImNTQ2MzIWFRQGMyImNTQ2MzIWFRQGYx8nJx8fJyenHycnHx8nJwK8KB4eKCgeHigoHh4oKB4eKAAAAAAC%2F48CJABxAvAACwAXABMAugAMAAAAAyu6AAYAEgADKzAxESImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWMz4%2BMzM%2BPjMRGBgRERgYAiQ3Ly83Ny8vNzcaFRUaGhUVGgAAAAAC%2F48CuQBxA30ACwAXABMAugAMAAAAAyu6AAYAEgADKzAxESImNTQ2MzIWFRQGJzI2NTQmIyIGFRQWMz4%2BMzM%2BPjMRFxcRERgYArk1LS01NS0tNTcXFBQXFxQUFwAAAAAB%2F5n%2FIwBVAAQAEQATALoAAgARAAMrugALAAoAAyswMSczBx4BFRQOAgcnPgE1NCYnJ1YUGiAdMEAkCyQvGSIELwgjHxolGg0COwQUFA0VCAAAAAAB%2F5n%2FIwBVAAQAEQATALoAEQACAAMrugAKAAsAAyswMSczBx4BFRQOAgcnPgE1NCYnJ1YUGiAdMEAkCyQvGSIELwgjHxolGg0COwQUFA0VCAAAAP%2F%2FADUAAADfAtICBgAmAAAAAQAAAPEAZAAHAGkABQABAAAAAAAKAAACAAFzAAMAAQAAAGAAYABgAGAArgEWAWQBqAHmAhwCeAKyAtIDBgNOA3QD2gQqBHQEugUgBXIF3gYKBkYGggb4B1QHkgfICD4Isgj8CXQJ0gokCsYLFAtIC5IL2AwMDIwM4g0sDaAOFg5gDsoPFA9qD6YQGBByEMYQ%2BhEGERIRHhEqETYRQhGoEbQRwBHMEdgR5BHwEfwSCBIUEiASLBI4EkQSUBJcEuITPhNKE1YTYhNuE3oT2BQaFCYUMhQ%2BFEoUVhRiFRQVIBUsFTgVRBVQFVwVaBV0FYAVoBWsFbgVxBXQFdwV6BZOFt4XXBdoF3QXgBeMF5gXpBgeGHwY%2FBmCGjAahBq%2BGwwbehvKHCQcjhzEHUQdrB3OHfYeAh4OHjweYh6yHv4fFB8gH1Qfeh%2BGH5IfnB%2BqH8If2h%2FmH%2FIgBiAOICIgNiBAIGYgeiCcIL4g2iD2IVIhriHIIdoh9CIOIjYipiLYI1Qj0CRiJOIk7CT2JQAlCiVOJXQlsCYKJkwmVCZcJrAm7icqJ4An8ChcKMopRimcKbgpwCnSKeQp9ioIKiwqQCpgKqgqtCrWKvgrMCtiK5wrsiv4LAIsDCwWLCAsKiw0LD4sSCxiLHQsjiygLM4s7C00LWwtgC26Le4uHi5OLnguoi6iLqoAAQAAAAEMzGhqkv5fDzz1AAkD6AAAAADNl4CfAAAAAM2X4xD%2FGf6BBMcDzgABAAkAAgAAAAAAAAKyAFAAAAAAANAAAADQAAACPf%2F6Al0ATQJGAC4CewBNAiQATQIMAE0CfgAuAqIATQEtAE0B%2FQAQAmYATQIGAE0C%2BgBNApkATQKsAC4CXgBNAqwALgJoAE0CLAAjAiwAGQKZAEkCLP%2F5Ay0ADgI3AAsCDf%2F4Ah0AJAIWAC8CPQBBAdMAJAI9ACcCBgAkAVUAGAIWACICOwBBARQANQEW%2F80CJABBAR4AQQNZAEECPABBAisAJAI9AEECPAAnAY4AQQG7ABUBfwARAjgAPAILAAwDCAAYAgIADgIJAAwBzAAmAj3%2F%2BgI9%2F%2FoCPf%2F6Aj3%2F%2BgI9%2F%2FoCPf%2F6A03%2F8gJGAC4CJABNAiQATQIkAE0CJABNAS3%2F9AEtAEsBLf%2FuAS3%2F7QKZAE0CrAAuAqwALgKsAC4CrAAuAqwALgKsACgDZwAuApkASQKZAEkCmQBJApkASQIN%2F%2FgClAAaAmkATQIWAC8CFgAvAhYALwIWAC8CFgAvAhYALwMSAC8B0wAkAgYAJAIGACQCBgAkAgYAJAEU%2F%2FUBFAA4ART%2F8AEU%2F%2BEBFABBAjwAQQIrACQCKwAkAisAJAIrACQCKwAkAisAJAM2ACQCeABBAjgAPAI4ADwCOAA8AjgAPAIJAAwCCQAMAjAAKgI9AEECkAAYArAAGAKbABkCEAAlAhAARgIQAB4CEAAWAhAAEwIQABcCEAApAhAALAIQACoCEAAiASwAPQEsAC4BLAA9ASwALgFUAFEBVABRAc8AKQHPACoBLABMAhgATAEsADcBLABHAhgANwIYAEcBLABHAhgARwEkADEBJAA2AeAAMQHgADYBTAArAUwAKwHgACsDIAArASwAPQFZACgB9AAMAVgASAFYADABWABXAVgALgFYAB8BWAAuAVMADQEMAFYBUwAcAQwAVgHJACYCEAAlAnwAJwLuAC0BzgAgA4cAMQIQACIBeABMAXgAGwF4ABsBeAAjAXgAGgF4AEwBeAAbAXgAGwF4ACMBZwAdAXUAGAFnAB0BdQAYAW0AJwIQABQCEAAnAhAAMAIQAAwCEAAVAhAAPABg%2F1UAYP9VA1kAGgMpAC8DTgAvAzIAGQIQACICEAAiAhAAMAIQACICEAAiAhAAIgIQACICEAAiAhAAMgIQAB0CEAAiAj0AQQIrAIECKwDEAisAfAIrAHACKwBtAisAjAIrAKUCKwCwAAD%2FawAA%2F14AAP%2BuAAD%2FtQAA%2F2YAAP9YAAD%2FWgAA%2F1YAAP92AAD%2FVwAA%2F1cAAP%2BPAAD%2FjwAA%2F5kAAP%2BZANAAAAEUADUAAQAAA9j%2B7wAABOH%2FGf7ZBMcAAQAAAAAAAAAAAAAAAAAAAPEAAwHhArwABQAAAooCWAAAAEsCigJYAAABXgAyASAAAAILBwMDBAMCAgQgAAAHAAAAAQAAAAAAAAAAQURCRQAgAAD%2B%2FwLu%2FwYAAAPYAREgAAGTAAAAAAHgApQAAAAgAAMAAAACAAAAAwAAABQAAwABAAAAFAAEAdIAAAA8ACAABAAcAAAADQAvADkAQABaAGAAegB%2BAL8AzwDfAO8A%2FwExAVMCxgLaAtwgFCAaIB4gIiA6IEQgdCCsIhIiFf%2F%2FAAAAAAANACAAMAA6AEEAWwBhAHsAoADAANAA4ADwATEBUgLGAtoC3CATIBggHCAiIDkgRCB0IKwiEiIV%2F%2F8AAf%2F1AAAATAAA%2F8MAAP%2B9AAAAAP94AAD%2FdwAA%2FzYAAP4U%2FgT9%2F%2BCJAAAAAOB94F3gguBB4Bjeu96yAAEAAAAAADgAAABUAAAAXgAAAGYAbAAAAKgAAADEAAAA4AAAAAAAAAAAANoA3gAAAAAAAAAAAAAAAAAAAAAAAwCKAI8AsQDBAMgAewCOAKEAogCrAMwAhwCaAIYApwCIAIkA0QDQANIAjACwAKMAqQCkANQAoADYAKUAqACmANUA7wCLAMUAwgDAAMMAqgCsANwArgC7AJgA1gCbAK8A3QC%2FANMAswC0ANkA1wCtAJ4A3wCyALwAmQDJAMoAywCNAFUASABJAEoASwBMAE0AzgBOAFAAUQBSAFMAVABWAHAAdwBoAGkAagBrAGwAbQDPAG4AcQByAHMAdAB1AHgAdgBPAG8AkACRAJQAkgCTAJUAALgAACxLuAAJUFixAQGOWbgB%2F4W4AEQduQAJAANfXi24AAEsICBFaUSwAWAtuAACLLgAASohLbgAAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbgABCwgRrAEJUZSWCOKWSBGIGphZLAEJUYgamFkUlgjilkv%2FS24AAUsSyCwAyZQWFFYsIBEG7BARFkbISEgRbDAUFiwwEQbIVlZLbgABiwgIEVpRLABYCAgRX1pGESwAWAtuAAHLLgABiotuAAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbgAwIqKG4ojWSCwAyZTWCMhuAEAioobiiNZILADJlNYIyG4AUCKihuKI1kguAADJlNYsAMlRbgBgFBYIyG4AYAjIRuwAyVFIyEjIVkbIVlELbgACSxLU1hFRBshIVktALAAKwCyAQECKwGyAgICKwG3AiYeGBMMAAgrtwMlHhgTDAAIKwC3ATAoIhgQAAgrALIECAcrsAAgRX1pGERLsGBSWLABG7AAWbABjgAAFABzAJIAlgAAAAz%2FMwAMAeYADAIGAAwCPgAMAn4ADAKQAAwCyAAMAAAABwBaAAMAAQQJAAEAHgAAAAMAAQQJAAIACAAeAAMAAQQJAAMARgAmAAMAAQQJAAQAKABsAAMAAQQJAAUAggCUAAMAAQQJAAYAJAEWAAMAAQQJAA4ASAE6AFMAbwB1AHIAYwBlACAAUwBhAG4AcwAgAFAAcgBvAEIAbwBsAGQAMQAuADAANQAwADsAQQBEAEIARQA7AFMAbwB1AHIAYwBlAFMAYQBuAHMAUAByAG8ALQBCAG8AbABkADsAQQBEAE8AQgBFAFMAbwB1AHIAYwBlACAAUwBhAG4AcwAgAFAAcgBvACAAQgBvAGwAZABWAGUAcgBzAGkAbwBuACAAMQAuADAANQAwADsAUABTACAAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAMAA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOQAwADAAUwBvAHUAcgBjAGUAUwBhAG4AcwBQAHIAbwAtAEIAbwBsAGQAaAB0AHQAcAA6AC8ALwB3AHcAdwAuAGEAZABvAGIAZQAuAGMAbwBtAC8AdAB5AHAAZQAvAGwAZQBnAGEAbAAuAGgAdABtAGwAAgAAAAAAAP%2B1ADIAAAAAAAAAAAAAAAAAAAAAAAAAAADxAAABAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAGYA0wDQANEArwBnAJEAsADWANQA1QBoAOsA6QDtAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA1wB4AHoAeQB7AH0AfAChALEAiQB%2FAH4AgACBAOwAugDqAO4BBAEFAAkAEwAUABUAFgAXABgAGQAaABsAHAARAA8AHQAeAAQAowAiAKIACgAFALYAtwC0ALUAxADFAL4AvwCpAKoAEAEGALIAswDDAIcAQgALAAwAPgBAAF4AYAASAF8APwDoAA0AhgCIAIsAigAjAAYBBwEIAQkBCgELAQwBDQEOAQ8AnQCeARABEQCDAL0ABwCFAJYBEgCEALwBEwAIAPUA9AD2AA4A7wDwALgAIAAfACEAkwBBAGEApAEUAEMAjQDYANkAjgDaAN0A3gEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUETlVMTAJDUgNmX2YDZl90B3VuaTAwQUQIb25lLnN1cHMIdHdvLnN1cHMKdGhyZWUuc3Vwcwlmb3VyLnN1cHMJemVyby5kbm9tCG9uZS5kbm9tCHR3by5kbm9tCnRocmVlLmRub20JZm91ci5kbm9tBmEuc3VwcwZvLnN1cHMERXVybwd1bmkyMjE1B3VuaTAwQjUHdW5pMDMwMAt1bmkwMzAwLmNhcAd1bmkwMzAxC3VuaTAzMDEuY2FwB3VuaTAzMDILdW5pMDMwMi5jYXAHdW5pMDMwMwt1bmkwMzAzLmNhcAd1bmkwMzA0B3VuaTAzMDgLdW5pMDMwOC5jYXAHdW5pMDMwQQt1bmkwMzBBLmNhcAd1bmkwMzI3C3VuaTAzMjcuY2FwB3VuaTAwQTAFaS50cmsAAAAAAAAB%2F%2F8AAgABAAAADAAAAAAAAAACAAgABAA3AAEAPgA%2BAAEATgBPAAEAZwBnAAEAbgBvAAEAeAB4AAEAeQB6AAIA2gDaAAEAAQAAAAoAMABEAAJERkxUAA5sYXRuABoABAAAAAD%2F%2FwABAAAABAAAAAD%2F%2FwABAAEAAmtlcm4ADmtlcm4ADgAAAAEAAAABAAQAAgAAAAIACgEuAAEAJAAEAAAADQBCAGgAegCcALIAwADWAOQA8gD4AQIBEAEaAAEADQAJABMAGQAbADMANQBWAHAAiwCNAJ4ApwCpAAkAGf%2F6ABv%2F5AAz%2F94ANf%2FcAGUADABmACAAnv%2FuAKf%2F0ACvAAYABAAb%2F%2BQANf%2FuAKf%2FzgCvABAACAAz%2F%2FYANf%2FtAGMAEQBlACgAZgBBAJ7%2F%2FQCn%2F%2BUArwAzAAUAM%2F%2FmADX%2F9gCe%2F9gAq%2F%2F2AK%2F%2F9AADABn%2F%2BACn%2F%2BwArwAbAAUAGf%2FwABv%2F9gCe%2F%2BwAq%2F%2F8AK8ACwADAKf%2F4QCp%2F9gAq%2F%2FZAAMAM%2F%2FmAKn%2F3ACv%2F8sAAQAZ%2F8wAAgAZ%2F6gAG%2F%2B7AAMAGf%2FcABv%2F3AA1%2F%2BwAAgBmABAA8AAHAAIAGf%2FUADP%2F7AACFIwABAAAFN4WLAA5AC4AAP%2F5%2F73%2F8f%2F5%2F8AAGABAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2B6AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F7wAAAAA%2F6gAAAAAAAAAAAAA%2F%2BT%2F5P%2FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2FoP%2FK%2F8r%2FggAAAC0AAAAAAAD%2Fp%2F%2FEAAD%2Fq%2F%2FL%2F6f%2F3QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FYABwAAAAAAAP%2FYAAAAAAAA%2F%2BQAAP%2Fw%2F7AAB%2F%2F7%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F9j%2F9QAA%2F%2B4AAAAA%2F%2B7%2FsAAAAAAAAAAA%2F%2FYAAP%2F2AAAAAAAA%2F%2B4AAP%2Bs%2F9j%2F5P%2BiAAAAAAAAAAD%2F7v%2F6%2F9z%2FuP%2Bv%2F%2B7%2F%2BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAA%2F%2Fj%2F7gAAAAD%2F7gAAAAAAAP%2Fu%2F%2FgAAAAAAAAAAP%2FtAAD%2F9gAA%2F%2BIAAP%2FsAAAAAAAAAAAAAP%2Fz%2F%2FgAAAAAAAD%2F7v%2F2%2F%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F0%2F%2B7%2F%2BP%2Fw%2F%2BwAAP%2FuAAAAAAAA%2F%2BT%2F9v%2FbAAAAAAAA%2F%2FYAAP%2Fu%2F%2FYAAAAA%2F7gABAAAAAAAAAAA%2F%2Fj%2F%2BAAAAAAAAP%2Fu%2F%2FYAAP%2Fc%2F%2B4AAAAAAAAAAAAAAAAAAAAA%2F%2BwAAP%2F4AAAAAAAAAAAAAAAA%2F%2FgAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FqAAAAAP%2F0AAAAAAAAAAD%2F7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2Fu%2F%2Fb%2F5gAA%2F%2Fb%2F3v%2FQAAD%2F9v%2FrAAD%2F5AAAAAD%2F8AAAAAD%2F3P%2F1%2F94AAP%2FI%2F%2BQAAAAAAAAAAP%2FuAAD%2F8P%2Fe%2F9D%2F3v%2Fm%2F%2Bb%2FzP%2F2AAAAAP%2FuAAAAAAAAAAAAAP%2BI%2F9v%2Fxf%2Bq%2F%2FgAAP%2FL%2F5QAAP%2F6%2F%2BQAAP%2FcAAD%2F7v%2FyAAAAAP%2Fl%2F%2Fb%2FVP%2Bw%2F5D%2FkAAAAAAAAAAA%2F7EAAP%2FM%2F3T%2FlP%2FL%2F9oAAP%2FU%2F%2BgAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2BwAAAAAAAAAAAAA%2F%2FYAAP%2FsAAAAAAAAAAD%2FygAAAAAAAP%2FoAAAAAAAA%2F%2FwAAAAAAAD%2F9v%2FmAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8AAAAAAAAAAAAAD%2F7AAAAAD%2F7v%2F2AAAAAAAAAAD%2F9v%2Fy%2F%2FYAAP%2F2AAD%2F9v%2F0AAAAAAAA%2F%2FYAAP%2F2AAQAAAAAAAAAAP%2Fu%2F%2FYAAAAAAAAAAAAA%2F%2B7%2F4P%2FiAAAAAP%2Fu%2F%2B4AAAAAAAAAAP%2FsAAAAAP%2FwAAAAAAAAAAAAAAAA%2F%2B4AAAAAAAAAAAAA%2F%2B4AAAAAAAD%2F9AAAAAD%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAAAAAAAAAA%2F%2B7%2FwAAA%2F%2BgAAP%2BM%2F9j%2F5%2F%2FU%2F%2BT%2FwP%2F0%2F7T%2FhgAA%2F%2FT%2F1gAAAAD%2FvAAU%2F7wAAAAAAAAAAP%2FsAAAAAAAA%2F%2Bj%2F6P%2Fn%2F7D%2FyP%2FW%2F8T%2FwP%2FYAAAAAAAAAAAAAAAAAAD%2F7v%2F2AAAAAAAA%2F%2Bb%2F9P%2F2AAAAAP%2F4AAAAAP%2FIAAAAAAAAAAAAAAAAAAD%2F8AAAAAAAAP%2F2%2F%2FYAAAAAAAAAAAAA%2F%2FAAAAAAAAD%2F%2BAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FwAAAAAAAD%2F2gAAAAAAAAAA%2F%2FQAAAAA%2F9EAAAAAAAAAAAAAAAAAGf%2F4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F4%2F%2FYAAAAA%2F%2Fb%2F5gAAAAAAAAAA%2F%2B7%2F9gAAAAD%2FxAAA%2F%2B7%2F%2B%2F%2BQ%2F%2B7%2F7f%2Fq%2F%2B7%2FtAAA%2F8n%2FnAAA%2F%2B7%2F2gAAAAD%2FyAAY%2F9EAAAAAAAAAAAAA%2F%2FAAAAAA%2F%2B7%2F5P%2Fa%2F7T%2Ft%2F%2FY%2F8n%2FyP%2B6%2F9wAAAAAAAAAAP%2F2AAD%2F7v%2F1AAD%2F9AAAAAAAAP%2Fi%2F%2Fb%2F7P%2F0%2F%2Bz%2F8%2F%2FoAAD%2F7v%2FyAAAAAP%2FEABQAAAAAAAAAAAAAAAAAAAAAAAD%2F9P%2F0AAD%2F6P%2FoAAAAAAAAAAAAAAAAAAAAAP%2FkAAD%2F%2BP%2FkAAAAAAAA%2F%2BYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F1AAAAAAAAAAAAAAAAAAA%2F%2BYAAP%2FgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2BT%2F9gAAAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2BQAAAAAAAAAAAAAAAD%2F7gAGAAAAAAAAAAD%2F7gAAAAAAAAAAAAAAAP%2F7%2F94AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2BM%2F%2BX%2F2v%2BQAAAAJP%2Fs%2F28AAAAAAAAAAAAAAAAAAAAAAAAAAP%2FqAAD%2FWAAAAAAAAAAAAAAAAAAA%2F6QAAAAA%2F4D%2Fg%2F%2FE%2F90AAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BQAAP%2F2%2F9z%2F9gAA%2F%2Fr%2F9gAAAAD%2F7AAAAAD%2F9f%2F7AAD%2F7AAA%2F%2B4AAP%2Fo%2F97%2F%2BP%2FxAAAAAAAAAAD%2F5gAA%2F%2FAAAAAA%2F%2Fr%2F%2Bv%2FwAAD%2F8QAAAAAAAAAAAAAAAAAAAAAAKgAAACoAKv%2F1%2F%2FYAAAAY%2F8AAAAAAAAAAAP%2FsAAD%2F9gAAAAAAAP%2F8AAAAIP%2FsADL%2F%2FAAEAAAAAAA6ABgAFgAoABgABAAA%2F%2Fj%2F7gAAAAD%2F%2BP%2FuAAAAAAAjAAAAAP%2FcAAAAAP%2FuAAAALv%2F4AAAAAAAAAAAAAAAA%2F%2B0AAP%2FuAAAAAAAAAAD%2F6AAAAAAABAAcAAAAAAAAAAAAAP%2FSAAAAAP%2F4%2F%2FgAAAAAAAAAAAAA%2F%2B4AAAAAAAQAAAAA%2F88AAAAA%2F%2B7%2F9v%2F2AAD%2F3AAEAAAAAAAAAAD%2F9gAA%2F%2BQAAAAA%2F%2B7%2F7v%2F8AAD%2F3P%2FwAAAAAAAAAAAAAAAA%2F%2BAAAAAAAAAAAP%2F4%2F6v%2F3AAAAAD%2F8P%2FwAAAAAAAAAAD%2F5AAAAAD%2F5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BgAAAAAAAAAAAAAAAAAAP%2F2AAD%2F8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FFAAAAAP%2FIAAAAAP%2F4%2F9z%2F9gAAAAAAAAAA%2F%2FX%2F%2BwAAAAAAAAAAAAAAAP%2FcAAD%2F8AAAAAAAAAAA%2F%2Bz%2F%2BP%2FgAAD%2F%2FP%2F4%2F%2Fj%2F5gAAAAAAAP%2F7%2F%2FMAAAAAAAAAAAAAAAAAAAAA%2F%2Fv%2F6AAAAAAAAP%2BE%2F7AAAAAAAAD%2F3v%2Fu%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FU%2F4QAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F2AAAABf%2Fw%2F6j%2F7AAA%2F%2FYAAP%2FjAAD%2F9v%2B3AAAAAAAAAAAABP%2F0ACD%2F6AAAAAAAAAAAAAAAAAAAABgABQAEAAD%2F5P%2FsAAD%2F9v%2F2AAAAAAAAAAAAAP%2FkAAAAAP%2FsAAAAAAAA%2F%2BcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAAAAAAAAAAAAAAAAAA%2F%2FYAAP%2FnAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAA%2F%2B4AAAAA%2F%2Fj%2F9gAAAAAAAAAEAAAAAAAAAAD%2F9AAA%2F%2FYAAAAAAAAAAAAAAAD%2F7AAYAAQAAAAAAAAAAAAA%2F9wAAAAAAAAAAAAA%2F9z%2F9AAAAAAAAAAAAAQAAAAAAAD%2F7AAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FIAAAAAAAAAAAAAAAAAAP%2FuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FkAAAAAP%2FnAAD%2F9gAAAAD%2Frf%2F4AAAAAAAA%2F%2FYAAP%2F4%2F%2BIAAAAAAAAAAAAAAAAACwAAAAAAAAAA%2F%2Fj%2F7gAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BYAAAAAAAAAAAAA%2F%2BwAAAAA%2F%2FAAAP%2F2AAAAAP%2FEAAAAAAAAAAD%2F7AAA%2F%2Fj%2F2AAAAAAAAAAAAAAAAAAb%2F%2FwAAAAAAAD%2F%2BP%2F4AAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5AAAAAAAAAAAAAD%2F6gAAAAD%2F%2BAAAAAD%2F%2BAAAAAAAAAAAAAAAAP%2FyAAD%2F9gAAAAAAAP%2F2AAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAD%2F%2BAAAAAD%2F5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F6%2F%2FL%2F5AAA%2F%2BYAAP%2Bk%2F9n%2F5f%2Fi%2F%2Fb%2F2gAA%2F%2B7%2FegAA%2F%2Fb%2F7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5gAAAAD%2F7P%2Fs%2F%2BX%2FzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FkAAAAAAAAAAAAAAAAAAD%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8gAAAAD%2F9v%2FwAAAAAAAA%2F3z%2Fzv%2F2%2F80AAP%2FeAAD%2F6%2F9yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2Bf%2FsAAD%2F9v%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAAAAD%2F7AAA%2F%2FYAAP%2B0%2F%2B7%2F9P%2Fs%2F%2Fb%2F3QAA%2F%2B3%2FwAAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F9gAA%2F%2Bz%2F7P%2Fs%2F%2B7%2F6%2F%2FlAAAAAAAAAAD%2F7P%2F2AAAAAAAAAAD%2F5v%2FwAAD%2F%2Bv%2FuAAD%2F5v%2F2%2F%2Bb%2F8P%2FwAAD%2F5v%2F2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2F4%2F%2FAAAP%2FuAAD%2F3P%2FuAAAAAP%2Fu%2F%2FAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2BwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2FkAAP%2F4%2F7QAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F3P%2FcAAAAAAAA%2F%2FgAAP%2FuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2BoAAAAAAAAAAAAAAAA%2F%2FgAAAAAAAD%2F7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F5v%2B0%2F7kAAP%2FuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FYAAD%2F5v%2B6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%2F%2Bb%2F8AAAAAAAAAAAAAD%2F7AAAAAAAAAAAAAAAAAAAAAAAAAAA%2F8gAAP%2F2%2F7cAAAAAAAAAAAAAAAD%2F4v%2F0AAAAAAAAAAD%2F4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F7P%2FuAAAAAAAAAAAAAP%2FkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2Fe%2F%2B3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F%2BAAAAAAAAAAAAAAAAAAAAAAAAP%2FsAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F6AAAAAAAAP9o%2F68AAAAAAAD%2F2v%2F0%2F%2BgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2FwAAAAAAAAAAAAAAAAAAAAAAAA%2F90AAAAAAAAAAAAAAAD%2F7AAAAAD%2F8AAA%2F%2FYAAAAA%2F8T%2F8wAA%2F%2FgAAP%2FsAAD%2F%2BP%2FYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD%2F8AAAAAAAAP%2FkAAAAAAAAAAAAAP%2FoAAAAAP%2FfAAAAAP%2FuAAAAAAAA%2F%2FgAAP%2F2%2F%2FYAAP%2FmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP%2Fu%2F%2BQAAAAAAAD%2F7AAAAAAAAgANAAQAIAAAACIAJQAdACgAKAAhACoAYgAiAGcAdgBbAHgAegBrAIYAkwBuAJYAngB8AKEAoQCFAKMAowCGAKUApQCHAKcApwCIAKkAqQCJAAEABACkAAYABwAIAAwAJgAnAAkAKAApACoACgALACgAKAAMACsADAANAA4ADwAQAC0AEQAuABIAEwAUAB0AFQAAABgAGQAaABwAAAAAABsAAAAcABwAHQAdACIAHwAgACEAIgA3ACMAOAAkACUABgAGAAYABgAGAAYAJgAIACYAJgAmACYAKQApACkAKQAoAAwADAAMAAwADAAMACYAEAAQABAAEAASAAwALAAUABQAFAAUABQAFAAYABUAGAAYABgAGAAAAAAAAAAAACIAHAAdAB0AHQAdAB0AHQAYADEAIgAiACIAIgAkACQAAAAdABkAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAXABYAFgABAAIANAAEADUANQAeADYAHgA2AAAAAAAyADMAMgAzADAAMAAwADAAAwAAAAAALwAAAC8AAAAvAAAABQACAEgABAAEAAsABgAGAA4ACgAKAA4ADQANABIAEgASAA4AFAAUAA4AFgAWAAwAFwAXAAIAGAAYAAMAGQAZAB4AGgAaAAQAGwAbAB8AHAAcAAUAHQAdAA0AHgAeAA8AIAAiABEAIwAjABAAJAAkAAYAJgAmABMAJwAnAAcAKgArACgALAAsABEALQAtACgALgAuABEALwAvACgAMAAwACkAMQAxABQAMgAyABUAMwAzACMANAA0ACQANQA1ACUANgA2AAgANwA3ACoAOAA9AAsAPwA%2FAA4ASQBPAA4AUABTAAMAVABUAAUAVQBVAAEAVwBdAA8AXgBiABEAYwBmABMAZwBoACgAaQBvABEAcQB0ABUAdQB2AAgAeQB6ABAAhgCHAAoAiACJACwAigCKABsAiwCLABwAjACMACAAjQCNAB0AjgCPACEAkACQACIAkQCRAAkAkgCSACIAkwCTAAkAlgCWACcAlwCXACsAmACYACcAmQCZACsAmgCdACYAngCeABgAogCiAC0ApACkAC0ApgCmAC0ApwCnABoAqQCpABcAqwCrABYArwCvABkA8ADwABMAAAABAAAACgBgAJ4AAkRGTFQADmxhdG4AGgAEAAAAAP%2F%2FAAEAAAAWAANBWkUgAB5DUlQgAChUUksgADIAAP%2F%2FAAEAAQAA%2F%2F8AAgACAAUAAP%2F%2FAAIAAwAGAAD%2F%2FwACAAQABwAIbGlnYQAybGlnYQAybGlnYQAybGlnYQAybGlnYQAybG9jbAA4bG9jbAA4bG9jbAA4AAAAAQABAAAAAQAAAAIABgAaAAEAAAABAAgAAQAGAMoAAQABACYABAAAAAEACAABABoAAQAIAAIABgAMAHkAAgAjAHoAAgAxAAEAAQAj%29%20format%28%27truetype%27%29%3B%0A%7D%0Ahtml%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctemplate%7Bdisplay%3Anone%7Da%7Bbackground%2Dcolor%3Atransparent%7Da%3Aactive%2Ca%3Ahover%7Boutline%3A0%7Dabbr%5Btitle%5D%7Bborder%2Dbottom%3A1px%20dotted%7Db%2Cstrong%7Bfont%2Dweight%3Abold%7Ddfn%7Bfont%2Dstyle%3Aitalic%7Dh1%7Bfont%2Dsize%3A2em%3Bmargin%3A0%2E67em%200%7Dmark%7Bbackground%3A%23ff0%3Bcolor%3A%23000%7Dsmall%7Bfont%2Dsize%3A80%25%7Dsub%2Csup%7Bfont%2Dsize%3A75%25%3Bline%2Dheight%3A0%3Bposition%3Arelative%3Bvertical%2Dalign%3Abaseline%7Dsup%7Btop%3A%2D0%2E5em%7Dsub%7Bbottom%3A%2D0%2E25em%7Dimg%7Bborder%3A0%7Dsvg%3Anot%28%3Aroot%29%7Boverflow%3Ahidden%7Dfigure%7Bmargin%3A1em%2040px%7Dhr%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3Bheight%3A0%7Dpre%7Boverflow%3Aauto%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%2C%20monospace%3Bfont%2Dsize%3A1em%7Dbutton%2Cinput%2Coptgroup%2Cselect%2Ctextarea%7Bcolor%3Ainherit%3Bfont%3Ainherit%3Bmargin%3A0%7Dbutton%7Boverflow%3Avisible%7Dbutton%2Cselect%7Btext%2Dtransform%3Anone%7Dbutton%2Chtml%20input%5Btype%3D%22button%22%5D%2Cinput%5Btype%3D%22reset%22%5D%2Cinput%5Btype%3D%22submit%22%5D%7B%2Dwebkit%2Dappearance%3Abutton%3Bcursor%3Apointer%7Dbutton%5Bdisabled%5D%2Chtml%20input%5Bdisabled%5D%7Bcursor%3Adefault%7Dbutton%3A%3A%2Dmoz%2Dfocus%2Dinner%2Cinput%3A%3A%2Dmoz%2Dfocus%2Dinner%7Bborder%3A0%3Bpadding%3A0%7Dinput%7Bline%2Dheight%3Anormal%7Dinput%5Btype%3D%22checkbox%22%5D%2Cinput%5Btype%3D%22radio%22%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%3Bpadding%3A0%7Dinput%5Btype%3D%22number%22%5D%3A%3A%2Dwebkit%2Dinner%2Dspin%2Dbutton%2Cinput%5Btype%3D%22number%22%5D%3A%3A%2Dwebkit%2Douter%2Dspin%2Dbutton%7Bheight%3Aauto%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dappearance%3Atextfield%3B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7Dinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Dcancel%2Dbutton%2Cinput%5Btype%3D%22search%22%5D%3A%3A%2Dwebkit%2Dsearch%2Ddecoration%7B%2Dwebkit%2Dappearance%3Anone%7Dfieldset%7Bborder%3A1px%20solid%20%23c0c0c0%3Bmargin%3A0%202px%3Bpadding%3A0%2E35em%200%2E625em%200%2E75em%7Dlegend%7Bborder%3A0%3Bpadding%3A0%7Dtextarea%7Boverflow%3Aauto%7Doptgroup%7Bfont%2Dweight%3Abold%7Dtable%7Bborder%2Dcollapse%3Acollapse%3Bborder%2Dspacing%3A0%7Dtd%2Cth%7Bpadding%3A0%7D%40media%20print%7B%2A%2C%2A%3Abefore%2C%2A%3Aafter%7Bbackground%3Atransparent%20%21important%3Bcolor%3A%23000%20%21important%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%20%21important%3Bbox%2Dshadow%3Anone%20%21important%3Btext%2Dshadow%3Anone%20%21important%7Da%2Ca%3Avisited%7Btext%2Ddecoration%3Aunderline%7Da%5Bhref%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28href%29%20%22%29%22%7Dabbr%5Btitle%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28title%29%20%22%29%22%7Da%5Bhref%5E%3D%22%23%22%5D%3Aafter%2Ca%5Bhref%5E%3D%22javascript%3A%22%5D%3Aafter%7Bcontent%3A%22%22%7Dpre%2Cblockquote%7Bborder%3A1px%20solid%20%23999%3Bpage%2Dbreak%2Dinside%3Aavoid%7Dthead%7Bdisplay%3Atable%2Dheader%2Dgroup%7Dtr%2Cimg%7Bpage%2Dbreak%2Dinside%3Aavoid%7Dimg%7Bmax%2Dwidth%3A100%25%20%21important%7Dp%2Ch2%2Ch3%7Borphans%3A3%3Bwidows%3A3%7Dh2%2Ch3%7Bpage%2Dbreak%2Dafter%3Aavoid%7D%2Enavbar%7Bdisplay%3Anone%7D%2Ebtn%3E%2Ecaret%2C%2Edropup%3E%2Ebtn%3E%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23000%20%21important%7D%2Elabel%7Bborder%3A1px%20solid%20%23000%7D%2Etable%7Bborder%2Dcollapse%3Acollapse%20%21important%7D%2Etable%20td%2C%2Etable%20th%7Bbackground%2Dcolor%3A%23fff%20%21important%7D%2Etable%2Dbordered%20th%2C%2Etable%2Dbordered%20td%7Bborder%3A1px%20solid%20%23ddd%20%21important%7D%7D%40font%2Dface%7Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%20format%28%27embedded%2Dopentype%27%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAFuAAA8AAAAAsVwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAcbSqX3EdERUYAAAF0AAAAHwAAACABRAAET1MvMgAAAZQAAABFAAAAYGe5a4ljbWFwAAAB3AAAAsAAAAZy2q3jgWN2dCAAAAScAAAABAAAAAQAKAL4Z2FzcAAABKAAAAAIAAAACP%2F%2FAANnbHlmAAAEqAAATRcAAJSkfV3Cb2hlYWQAAFHAAAAANAAAADYFTS%2FYaGhlYQAAUfQAAAAcAAAAJApEBBFobXR4AABSEAAAAU8AAAN00scgYGxvY2EAAFNgAAACJwAAAjBv%2B5XObWF4cAAAVYgAAAAgAAAAIAFqANhuYW1lAABVqAAAAZ4AAAOisyygm3Bvc3QAAFdIAAAELQAACtG6o%2BU1d2ViZgAAW3gAAAAGAAAABsMYVFAAAAABAAAAAMw9os8AAAAA0HaBdQAAAADQdnOXeNpjYGRgYOADYgkGEGBiYGRgZBQDkixgHgMABUgASgB42mNgZulmnMDAysDCzMN0gYGBIQpCMy5hMGLaAeQDpRCACYkd6h3ux%2BDAoPD%2FP%2FOB%2FwJAdSIM1UBhRiQlCgyMADGWCwwAAAB42u2UP2hTQRzHf5ekaVPExv6JjW3fvTQ0sa3QLA5xylBLgyBx0gzSWEUaXbIoBBQyCQGHLqXUqYNdtIIgIg5FHJxEtwqtpbnfaV1E1KFaSvX5vVwGEbW6OPngk8%2FvvXfv7pt3v4SImojIDw6BViKxRgIVBaZwVdSv%2BxvXA%2BIuzqcog2cOkkvDNE8Lbqs74k64i%2B5Sf3u8Z2AnIRLbyVCyTflVSEXVoEqrrMqrgiqqsqqqWQ5xlAc5zWOc5TwXucxVnuE5HdQhHdFRHdNJndZZndeFLc%2FzsKJLQ%2FWV6BcrCdWkwspVKZVROaw0qUqqoqZZcJhdTnGGxznHBS5xhad5VhNWCuturBTXKZ3RObuS98pb9c57k6ql9rp2v1as5deb1r6s9q1GV2IrHSt73T631424YXzjgPwqt%2BRn%2BVG%2BlRvyirwsS%2FKCPCfPytPypDwhj8mjctRZd9acF86y89x55jxxHjkPnXstXfbt%2FpNjj%2FnwXW%2BcHa6%2FSYvZ7yEwbDYazDcIgoUGzY3h2HtqgUcs1AFPWKgTXrRQF7xkoQhRf7uF9hPFeyzUTTSwY6EoUUJY6AC8bSGMS4Ys1Au3WaiPSGGsMtkdGH2rzJgYHAaYjxIwQqtB1CnYkEZ9BM6ALOpROAfyqI%2FDBQudgidBETXuqRIooz4DV0AV9UV4GsyivkTEyMMmw1UYGdhkuAYjA5sMGMvIwCbDDRgZeAz1TXgcmDy3YeRhk%2BcOjCxsMjyAkYFNhscwMrDJ8BQ2886gXoaRhedQvyTSkDZ7uA6HLLQBI5vGntAbGHugTc53cMxC7%2BE4SKL%2BACOzNpk3YWTWJid%2BiRo5NXIKM3fBItAPW55FdJLY3FeHBDr90606JCIU9Jk%2BMs3%2FY%2F8L8jUq3y79bJ%2F0%2F%2BROoP4v9v%2F4%2Fmj%2Bi7HBXUd0%2FelU6IHfHt8Aj9EPGAAoAvgAAAAB%2F%2F8AAnjaxb0JfBvVtTA%2BdxaN1hltI1m2ZVuSJVneLVlSHCdy9oTEWchqtrBEJRAgCYEsQNhC2EsbWmpI2dqkQBoSYgKlpaQthVL0yusrpW77aEubfq%2Fly%2BujvJampSTW5Dvnzmi1E%2Bjr%2F%2F3%2BXmbu3Llz77nnbuece865DMu0MAy5jGtiOEZkOp8lTNeUwyLP%2FDH%2BrEH41ZTDHAtB5lkOowWMPiwayNiUwwTjE46AI5xwhFrINPXYn%2F7ENY0dbWHfZAiTZbL8ID%2FInAd5xz2NpIH4STpDGonHIJNE3OP1KG4ISaSNeBuITAyRLgIxoiEUhFAnmUpEiXSRSGqAQEw0kuyFUIb0k2gnGSApyBFi0il2SI5YLGb5MdFjXCey4mNHzQ7WwLGEdZiPPgYR64we8THZHAt%2BwnT84D%2Fx8YTpGPgheKH4CMEDVF9xBOIeP3EbQgGH29BGgpGkIxCMTCW9qUTA0Zsir%2BQUP1mt%2BP2KusevwIO6Bx%2FIaj8%2FOD5O0VNrZW2EsqZBWbO1skRiEKE0DdlKKaSVO5VAuRpqk8VQJAqY7ydxaK44YJvrO2EWjOoDBoFYzQbDNkON%2BUbiKoRkywMWWf1j4bEY2iIY1AeMgvmEz%2FkVo9v4FSc%2FaMZMrFbjl4zWLL0%2BY5FlyzNlEVYDudJohg8gPUP7kcB%2Fmn%2BG6cd%2B5PV4Q72dXCgocWJADBgUuDTwiXiGSyZo14HOEQ2lE6k0XDIEusexDzZOMXwt1Dutz%2BtqmxTvlskNWXXUQIbhaurum9GrePqm9Yaeabjkiqf%2BbUvzDOvb2Y1E%2BEX2DnemcTP%2FzLcuu7xjQXdAtjR0Lo5n4%2FHs%2FGtntMlysHt%2B29NXbH6se%2F%2FWbFcyu%2Br28H0MwzI30DYeYTLMXIA2EG8QlHpAsyS0EfEToR0a3utIxFPJ3kiIHCCrZ66b0e2xEmL1dM9YN%2FMwS5p01N5jMX%2FBLKt%2F1R83l0LyC29M6%2BiYxo%2FUNg%2FEF7c2WyyW5tYl8WnhWg2%2FhyySbD5UhnDyS7OcU0dnrFw%2BDfGdI7v4QfYIIzOMq9hFtY55gmvC7jZ2FK7sEdrn6IXBuucYhjsGdQ8z0yEbWkkczjjsE5hNAIZrPx2zOLZDmKNXcXtg7EMqidAEEWg%2BSJCBBNwxvxJfc%2FbZa%2BKKf%2BxoKZybnq5vaqpPTye7CiF%2BZFjxZ8%2F7Qij0hfOG%2FcowPA1rT1l4ymWnrKmxxqfErTVrpgwPlz1kC%2BOy8NMDz6c%2BIO38K%2Fx0xkPnLW8Kx6qGAoQdL%2BTD9V9rb%2B%2Fctn%2F%2Ftrxz8dUrZrD%2Fzk%2FferF0cNt1BzctmX2FZPXt%2FjnFCQNz4Ah%2FiKllGiCMs1w5Lkg0kiEwj6VTXCDKsX9rMpnvIj9pcDecXAIXMnqn2dTUbN6w0XQ9ue6FV%2FnnXCH7S3lPWGltVcLsH75ub3ab7A8M28caNrIeOr3o5Q0yFsYL80xaa0EY%2FUEczV7icUMY5pnelAkmUAXmHYjvFWFGxuqlSaow3OM%2B%2FiYY7%2Fl%2FhVELF4EjRqNR%2FbvRbOY%2BDUGzGR%2FOh3EqmE%2FugIQQguGt%2FeMYz%2F%2BL0cimjeZfQDI3phXMbMQsqH%2BCjwVz%2Fhf4idHovgVmB8gLvjbicDcC%2FNypP536E%2F9N%2FpuMibExdohBmNwyiaZdJGoigos7GpF222xrfnZhML%2F7Z%2BylaqP63Hr%2Bm7bdUkQ6%2F2cXqdfmvwixY%2Bs2ksXFeXcE%2BiX0Z%2BIow76DBNgjJ7TOdUK18iPsPflfQD%2BDPsZG2Aj9VmKMMJ4fYRrhIaxhTDR0Elh2vA6h%2FAE6xUb29mj3sjmL72petXjejPy%2Boel60M99tFduCI59N3221xe7apOvxs6aHs7vab1IqY2tv7q2xsHeHGml%2FcV06u%2F8S%2FxTjJ%2BJYc0bWEX0ukW6YmIbGkJRMdjJ9mYIH5QIdJF4hvRGyK7cC7ctImQRcUET99fGXOoft35GYLMQu%2Bg2smnkgZUrH8AL%2F9Si217IssJ916nv14ZrJrvdxLkQvrvtBcjgPC0NXOicO8Qf4mcxPqh3hgUw3DDfdvLJXngg7N3dN2zbPJSaed3OfZnMU7dvmznp3C3bruO%2BNmue0LFsy7S%2B6265%2BfCKFYdvvuW6vmlblnUI8xCXp37CrOZv4B9gauDBlYp7adcUXB5DNCwYImlXOJJKkAdvExXxVvKEYnCo%2B3eIskP9qrrfIYs71CccBjfXRC52udTHHdaP1A1ui%2FVvH1otbrLrpNXBsGX5B89QghDyimlvNB2KfkxZ5C9%2Fem3%2Bd1%2Bd%2F%2FIfFp2%2B2Oxn%2Fs%2B9n%2F79p39S3s8idN6g0yZObwJOgKUpNB3GyU0Ls0PbRzIRq4lcarLKOJBkLRzJQD4j2090XrbA7DW8K3jNF5hlGS5e4V2D17zgss4T20egOJte5iD0bReM9yjTxnQxCRj3c5kFzGJmGbNKmwGw39IJDJcXJZGMkaAB4jyJAKw0jt5IAuIE%2BA%2BU3cVAZZrq9zhDyBrU8oosuxcGNTzCKJfla7JjNVmuSb%2F%2BtuzN2H%2BX4vlB%2BPpdfMXXmuVsNiub1T34SFbjYw5itEvVi0K0Nt9pNJUMI7SLGRhf2xipfCYf8z5OdlGKayOucFeVPeS%2Fdbo3lBrbSMmwUiQN5%2Fed7g0Ds1s17IuZC5kNzM3MZ6EWCa0DtekdJfAxz%2BR%2FOX28sND7yRMTBcf%2B%2Bs8mQCQWHya4qBv%2FufeMoWyslPA9DtMxUknxkH%2FyfTnm2CMYzs%2BCq3r7PxY%2FMXomrvTEsRpfEGHa%2BWN8E1AHjElb7d06ddA7oK%2F%2B5Mdsv9EtPms0jv0Z5kf1FqPxWdFtfFr0kHfgDX0Y%2B5PRSG7RUj0tQr7rmfX8DH4G5W28kKeJLtmQsQkuwMP1pk16EV4sl7vrMJATfyUWo%2FGwEco4rh4XFQgaiUX9qxZHrMQqKnz%2Fc2d8b9TysYrAuXpP%2FRf%2FGr8b1qwwc5a%2BeuLa6S6sneNXToG2XrEJi4R5SGs8Sq2S3d97bsfCRaTdaLwKClRHt37mkudvXbjwVrLhuYeGhh56bvfQkHpk2CwvwClqgWwuBfndC3c8dwmstj81KkagcUgbfPY8Zje0W%2F82VPWJHmSq6pP8hPWpotc%2FEexDOK3qU%2BwngPhOCiO9MJRm8TJefjelrzoKnG2Bn%2B1NCUmPE4gHFmBN9jrTigRIpsACrc9Gstg58ULkp9467%2BGf%2FeFnD5%2F31lNrt2967dhrm7bzI%2BVT5m%2BfzKhvf2MzpICEm79Bopkn07lt1762adNr127LwVqQLdJ5%2BlpQDcvHPQtVY5knhYrK6q8%2FJsiP6EuhGZdFdaNszjvpqvc%2BPI0CdjN0AXsFOC3ZfALDJwr4q2Xq%2BGF%2BGNbsxUg5NLLIEXi8otcDQcUts0D8eQ1iVDRAMBTsYiNdRIxE09EIBJO9A2xqgERTaW86BUFn0OD2xFO97FAgFhF6OoQ7prYt4XwSeUgQHiJyDbeke9IdQntciLQ1FlJMaYcUNvZBg%2BFB1ubjlnRNvl3o6IEU2w7fdNPhm%2Fhh%2BFLysUu6%2B%2BDLHkOkrSHYEjH0tEPe7WdD3uyDgvAgK%2Fm4szFFR7ch0toUgBTdWHr7EpaWru6%2B6dmbbnqWEbV2EtxAsXiZAPTtGPSbHsotI2leoM8TePEqgSQprs7AGFf8kuOkPdZPXGb55POAW1d%2FjLST9v5YflasP6v%2FCO7%2BGNAPC2BMZWmsOjp2NNbfHwMCJD%2BLPVL%2BD%2FOYlWEEI%2F9jpPddOFkB5d1GSuKZYggmCCd7JUxD7EXAzxyirYnNDLdDZoFdx14kivkvGc3579Jm36reTTvDgBnaO6vzyQ6chQmlsMoIkIQ2%2BbBDWBud1Va4pcCn8CPqxlh%2FfgtG8IPaPH8C5wk6%2FnZDv69jurV5QhtwE0x2iqOsj9Mx8B9%2F0EaUdiPfOYYDCi%2Fq9jhWRuupMDEU0%2BCtX0sDFxv07T%2FK5niBPqN9%2BtQjgEc31NGCXFeMcCEuQBIc%2FBK4CO78u7EPYvl3yaEfK3vcb6qP1R2tI7vUjVDDUdKubsSrNjYKY1qBEa2P50SJoaXiksIoLiCwnxS6EBuBde87botNfdEWwYvF%2FR0%2Fu5yCqhGeEOR2ynSeyXjt6ka7neyye8kryBSWE52y%2BRBgogrXPZ8E1yIHoHIFUM%2BAbJhE7lbMtt8ApL%2BxmZW7PwbjAO0fAVoXQOuiSP%2FksIVdFZ0aulsamKUzwPZ%2FNYDMJRBPCxsBqLzqHyneXF6Ej9HlIFo7%2Bpg%2BjUb3unRmGpstGkm6etOuDBGA5wCMefp1gTHcdZlvPBXlOslvYTp1cd8UjYLVd%2FJ5awNrIOKLnIt9MD9qdrKrWCvA6ALm3QV9VrsPm60Q7%2BRHJHP%2B2hqfugo%2FMvI2H%2Fmqr4b9tFnKSRY1Y5Ek80Nm%2FWIhr1ikKnxGz9TWXrokf9xwujfvcOTtNTWnxd0F37Y2W79tteBqZ4G5qLCuomw%2BnSr28QESCRVLTyYKILGJOPfcnaIFOsewhRdvv%2BrWa%2FWih0vlbX6Zb75T5C0qNKVFvH1QL%2FvazSWgC2s6oWXXIuUxQelKiJbowuJDQViatLmLijg9CQBMg8WiPgiw3LEeYRmm5f%2BXdnvkDnxLLjMLxtvX74C3OlwPQqx4xwIdpPx38LrlDphiyWUWHWKAzzxurS%2FxTo%2BP5wGFak62ap1PVFFN4v%2Fy%2BxuR39WnIO7lsWfwgVsK17wxrs9K8ltIKuhkw7f%2F6dhK6gQokFKhWX3urrjk%2FrnI0pgfpGMeuQIUaEM7%2BGF5q2iMkCaMQwxxOzcvU0eXbsnS9XknXvP7Gtw5dwPXlFu2ecvSHEZgNDsU6x%2FGdXBYXyOQjzZReSedeEPY6nEv9gJR4oBQJtFO6Kd0fwC6BO4LNHDeBujB6dSNcUQC9zIv2LnAzGk99bUDrdFY%2B9yGFQtEo0GQPNv6vS2drj4%2B1jHbv3aJSMUWP%2BQTZrmbNTjU8wyG%2FiXNNpskybLcJ3CiTF5Ir%2BJYzmJwE0mSVhlxbtbmvweB3ulB6Til5UuUZydpgiFVeobhU0WaBqpJ198d%2B%2FXeNRTZ9%2F1OPfG7%2B2hwzd5W3D%2BhmyjsRcUg%2F%2BCavb%2B%2BVh2ls3L7zT%2FetOnHNxeerv313vzLVqPai4nJv%2BK1FC6040%2F4udw7sAb3laSg0XCkAAs0npBO6VJabS4Elk%2FU%2BD4gTXW%2Bj0wnrMlqNamq4tMIYB87tE10i0FR3LZNhJsb7%2FR561btmes8YBCRkhYNByRtKd55mqTas9FYhJnbRGHuOh3M4QTdgQSqmgRxuzGdSvZGcbMxNQGk5C3ebLjoXIOFM4l%2BWKHmLTJwRv9E8GWJ6dYvf%2FFmEyEGr%2Bgyrr1p5zrgkz0Cw2j94Hv8Jdx7dIVegBSNtgsqGsRQEYiIBoXwD0LNvQ5d7s5Z00QzwNhqZA0b%2BtMG1tQq5nd84uq8R0zPvX35G8uRaze4jcOHzz0w1%2BQ2BIRvf6J6Kgatnrbiem%2BCFvAxfkrndzD9MFPP1GWTUHclpASUkCNAQkpCCcCgDSUDAhDZ%2BCuEkgn8J7i9nMA7pA4lISappxILKfAeSAbIcSDuN2bJcfZILqeO5rLs0MnngSHYRdrHjmaz7JEsEPw51ZqDJDmUIOZIe34WaQeegNsJn1qz8AIpT3yCjyEih%2FxELkuJ0lEMYTLVCiWpo5oYMleMH6USyYJcD%2BuOe%2BkWKpn1Qns34iyYDjkSLvgnZXcgVQNeqINXr48m3iS7cjm8tedyY0f1QvTnHHdsrKby%2F%2BSSbPY8%2FNH6vpl%2FEsq3Ae4ZU1HC44KFiI9o7CEgab%2FRqHbj7s5KAg06s39ZP%2FzxI%2FmVuF%2FTbTSy%2B3Fb8If9%2Fcv7%2Bwt91yy8RfP1QXtW5RzQn7qIiZyuFM5QfJ5E9uVnqT85TanFx0lkP3ukBAMprvsRyi%2FC8NAJL1xbIIirSvnSj4O5netb4JxmNANHPssHAcHMHsFRgEug816gDBeMbdfiuRcghqYcm0%2BXxx%2F5IAEtN3fqFF3LzAXqwoT0PN0OVTNqxo8sxMkd5Ig6k79Zk7VxxX6gMLOZFQgvpW2RrMW1D0BDihaXQ9wVRoBxPLfpknmkeMtoB%2FqM9cRc9IqmMD2XUmdZ7GSRKPUZvChf8BoykriM2MnKYbOHX8R7cLdNCxSFFVQqoYswnlWtlFS2mNkhswVpZiQW1J%2FUKFfipHGlUkM6UKBhMz1istELIHJLMSctu3ugzfaVSOjKvUgc%2FTHK4Sdg2Wscz69leKIkkrwuuWiOe9yGYKQXRumkC3qbRcMwrvhjNXgdZk3RxAUEhuSPvn3nnd%2B%2BU%2F3vlVOmrJzCD8JLxV1OHRjrZifbcFDOuRNTGqdgQm1tSNJ2OcQ04YiEXuxtII1ECSQRoQGYioEsgCfchB4ghAtw7FfJre4WZ9hkVi9MtjuWqtdNDlpMrfEG9fOT6q21okg%2Be4As38MfGquNt7oUws6Ysarj1%2FefE%2Byst86YUVNvDdts3Pv5c8m%2FaP0C%2Bf8%2FQb%2BIMnGq09BgwN01oIOAnAdagI8mBSrqk1gxTDUBOtk2ousEtBH2z4Ir2d3f6k8PXXVlt2qN9RODxRuoJT%2Fv27wm09jRYVc%2Fe%2B%2Biyx2tyzJb%2Fn3J0htXP87eSsQaf2Ly0s6Zmxela88REy1cf4273mI3iXNJ7KxrZibOm9xm6rl4fqy%2Ft27smU8tOfdW2ucBzg2UfmOIVyLIl3kpYlwphDISTXJXsctmiDtN7fNV6zelgxwnWxsVr83Aj%2FS5ki1jL%2Fa0GC6%2B2L6Um%2BaoddlNFuj%2BbJ8mH%2FiaLh8I0%2FU51NspIEfq0dohwyFXKgm4NggwQ4rRhCOUFtxxo8XnitT4cnGfT93IS8FaT85XE3H5LMY4zIEPL1hw443wz%2B1UmhTJyJGxZzw%2BwsKkKZgUiVtKOKMEb2AKHTv61FNc01PQFwKnvsZ%2F9pPA4RKTASWahmh%2B8MxwzHxKy74IRn5LGRjsPUUwTu64UYNY38caqd7HKucZ%2FtHnODtENw%2F2UfHRMaq1UUPDJQ0OKkWCeet5fYOhII1VRz8%2B%2FElg5j4Gxur3J8o2PJ4rg%2B2d08T%2FfwEzSVbyZ9XPro95T477lRKqUSRXQnauHNsISAl27oWi6Fv9z48JMv8r%2FaMMj8onCP%2FDuDZOuN%2BGPPr%2F%2Bp7bx%2B7JlbYdppcNhzKU%2F1Px5aiaGDn%2Fs1iGMaBcleKUo%2Fv9rcxkZj7DBEKOfrayytXNLYiUdBY%2BpleQXdnscKlQcpzuWluxsieeyuXIK6SdxozitWyGOV3vOHHjguyCQ6fpIYy2JwvrQEF%2FQa9Pdf%2FQqOSqCiE%2FEE1%2FXIVKTc2tzWbHnimrEd%2BVyz311Ml3P0GVTj7PD5aDnsvCvH36alEaPMePcMegXs7x8igTu4B9v7G9vTHvhCu%2FkzIdx%2BBxC0ay9zRSvoS0F2lIxI%2BX7klU63I40gLQ3w5ep5na%2BSFnba3z5D64zv%2BQtM4n4ffG3tq4aNHGRfxgrXPMim%2B5487abL7xhdseIRn1KDl%2B7aINixdv0OD%2BJSPwKf5%2BxoP6aiTeQIDVlIhMcL1H5R9PYXvprs3fv2bO7MOplCmweuiq2JRZ1zz%2B9a%2Fv2PH1Hfz9236w%2BZrPXvWfAxlj4NLLHpq3c%2FPQ3uvmvbrjG7fe%2Bo2y%2FcLdtE6VUlXi0ASb1VLUBVSUWSU4HdvAraTyS8xzM8NxvxFkXV6pUVRiJwcgC5zEeht4rwcp7ki0k41G0qlQhG1Vzlq8alEmnFi58caB5Q9vn988MLhqyVlHvLEWjtQFeupdiocF%2FtkkOGPW2ibWaBTkeZ%2FdvPWazXfOnnvL6jkRXpi85sFzZt%2B55ZptW3bl1cCCHZPD06MhySha7UFzjcjbp8fOecFCirzAG%2FyVjBX6OFIaadSjQq1nNhyIe8tVbaaSdHlXIWKacMeuZA1uxS95zILhyrxAdsXTL6m7kNQlx2P9uZf2qhufePFFbpI6%2FOU0WcP99RrCsrwseVot5mtytpf6Y0gm9sdeyKnPQ7onyK4nXlR%2Frg7H95M1upzu89DH6pgUcikoiihJ6NJKmRxV1x%2BMJiOA3YwhDRQrWU0u%2F0rvq0VYXnyCwsLeTJYBq3dAtJDavuzyoVpzZ99Z0%2Ba0uoiFH%2FxcqgDR7rUFeOrUn6Cywb8ZeNMbhLV5ugP9l0zv9UN5b5mFkjzxUcpPJCn3V402pRxtJd2GrnLdhtVk9ZSZh9W91fCSH5B7ofxPiWL%2Bj3D%2FuwhBRdyAyozeZwvQzs79soi%2BBKSnafLviZCcfrpBpLyimfLfTyJtbyruIQKD01tUwJyKEo%2FybaxkSNFUMdMkhQoJyRBQFhnUkDQSXhTM%2B3NmY0EDM7ffLIjqWEGt8lCO6mLia3PukFnghosJD5p5SIho%2FVDkzQfLE%2BIrYoJXkD19pdP7OwG%2FvoIUtagiWiZ4PAFTHHlTVhRZ7dYmPar%2BNJ%2B8JhmR6DFK5DV1foHoLNO%2FpHrvZfmWZ15RQlwvoVDKhCWNK3CCch9lfFBuAqUgpFSShmNaPj%2Bi5%2B%2BWZfKeViJfW5HnUakVL4UCNVkA4%2BETfIqx4B5xSaP2L1yn0zn2ltPn4%2BOqZGmwwEVCaCSqG53ldtL1oLGAhdMLd09MpCCF6tD6ZnAZBY9hDaYsP0jzZ0j5ZjKsF4i1UmLuhbJMCnYJPt5VwFNvmZawXjEvLJqIH8STonZjq7BZ8gKgR20C9MDFqJAX1H64QW2NEup6qgzLP8cvppL%2FNNTOBTCJABOHeWoXzLhw4Wuy7gaBtjKr9kgKq8ZlRYBS32Lpxc8vIhpNDTfyNXWybMJbn2RyQ5EmWc2QF9wmSZ0KYCE%2BcPuYO6b15Uotj2Kd4MItLS7gtFbkTdrFND6pvEZqv5Yv7jXAus7Pg7avo7KDot50NX3CPkP%2BKps8J9%2F3mGQIteY%2FLGPC%2BL7872SPR2br5fy8MtKBMHedGuM28%2FMZmPJMrGgi3Gb1S%2BSi1%2FL%2FzrZwO9XH1ce%2Fz7ZQ1WSoY%2F%2BpMb5FT4ua0Wm%2BJf%2F298nFmChEQ%2BTi71est4mq9VYI6RsymoRJKYidElT2FGnDTZvqtfhGAFTbeqEw68GqtfmbVa%2F1IFO1%2FjdWr%2F8BDRRtQh9XNjubEm4aWVpVonpTGR7PVGc%2BKJNoBIWF7kYi4gUV3r1U6723i6TxUl3n3%2FtM27aZfKb7THiHW9VzFSwHJ05VfK6Ar7kaB0XgPPE0BSkSFKsBUpaLihEWoA9wBt8qirh2VSOkZwXEwyrxZ5jyt2rJmSo9gX7cg6jsEUGJU9z9xJPOEM3uQQxKgkh35DNATnVyrmJ3mbCNyIB%2Fyox4wH1bg2DwN7q9kov4pFqny8oSm3RQbGgJ1QQTs6ZMLilOVYJ9v6Wha3HcJ9jddsXp9YhGUXLXt%2FqMDnvLpPNTXfNa60z5%2FyjXQOMq%2BlNmwh5egpYrdfZQZV9rI47xlRkuyTjpzsmCBSWNkAXVoK8sgYWqQJWbo1RLo6QH0YW6pxqfCnRgkd%2BRiFjUQUQ7poIaYoakgXxwFd9BuuI38H1xBxXSFb%2FpBDIKQFn7YB3dB36l7sG1FLaKiBdp1KxLvfswap%2F30lnVESgNnvjbUoT6w9N%2BXoio0qcYOIM%2Bheg940YimsucQVvli9NEcft2UZwGQwLuilj1fFr1i3NP94X%2BPE7Hpvtj6lBJfJ4R6NvWiaL6MgzWHxiN66DExa%2BdAdAbMYX6HVF8A%2B7rjEZIXAVbDe7PVI9rmN69JOLV1DOSvRPxWNPZBZf%2FNf%2BNy65BhYxxxV%2B77XJ2wfQ389%2FIQPgajXbwMsuAz%2F0IaQcXJavKbRqR2IqyZruXjVC2%2Bhdee%2F5vdnYOedpmVtR3NGXldxSzDSIiBVpkGb9by89UpEPKrSLZmyFDzMab%2FwXl2CNe7s%2FqCtTvWgG5kpBmCBlSzDS%2Fr8N4uwBwohRW63JTS1y32f0TQsPfXVGEHQrV8%2FNCfiOUVirYcBbIeA2%2BiF68rQIo3B%2FS628vYESr79ehzS7Q9LEL9UXmik9XVHb1yBO3Ngvt5935%2Bk1efkV51mzzrM0LL3%2F20avnwMeKuWyOUZg2TasSqZ%2BKcZQiOn1Iu2Vh497ALUVZiCKt%2Fgh6IvTIj1ZLRjWAkpHKOKovNwp00eqPROiAbiNEKieXwMLcXhVJ1%2FuzmLP4tfxaHR59cBdJVG1kTAgl9ze9QKUEQ946Hkb%2BokJ5JRDyf54Axur1D%2BWS49cLr0tTPEu7UmXrxcSr3XNvumv4yXzInXKH4F7Tc7p17Zt%2Bt%2FqW2%2B93k063X7VW6lALxTY7i1nBXMxcxmzQbabxz%2BtJo%2BwijYaIGMNS8AoSMgAPt84DdHOoMPfjXhF%2BkuH1tZvuFQrRCN07xGcXRX9MYxYchDe5BcHj%2BZ4i%2B42WyPc8Xofi7bbZJN5nJLJ5qr6IqRtzqNlM17SpFsnkEyTWoABEjz4JXOQvzWYuwdnV5LNGOwTM5v9r4RpQ8ZXsYodks3o31JBlzbYtNotisnm22MxiwGFXam5oN1n0TA%2FhRvshvTSDwHff4nNzRo9Dum6PaJbMXzDz%2Bx%2BFkj4L4bFNBb1asqsgH7Dyh4DvbkPtf5yMDKzEwyoaESMSNS9P9gJVA3%2FRTlwoMwZvxECFWxIPNw9gi01nOHjP32esZTtmXHnxvZd8ZtakqQ7ekajbXetpNa6ocTVxJtY%2BuSe69OLz77zh5bDR3xjZMzUz6fxrz1nqrZGcHQHfPVefN%2BfiK86LeXj%2BSc5lPKy%2Bk%2FvCUI%2FDaLFYCWHr6nbXuILTIsb5imNKY%2FrCm28fSMxPhkN1XbNMNZGuqwOBhtTSxWuTk6bw0ZaG86b1hKddePOKuBvmiguYBn4T%2FyOqOyGRBt7bKUI1GjioBC8aUKwF7Q319UgcmtFGIzCJGBqwQij0ynDsfdFGc3TS3BlNfJ25xmzniMkpXXTPvCaD3ZaZvyzjmZdudBostmhb0ORZNN2sJBeed1HXkrUsywueQH%2BL0eCPxmsa5ZpgRJSDZ11yDv%2Bjmbd86vxZfc1WcZJ3UkMq1BOOOVtvu%2F%2BpB%2Ben186d3GTwWAw2jheaJs09%2F%2BLNfZft37DALyrNj1wABMuUKbODyTVnT%2FKYbJ3Tpq8IrNh92dkxOj5P%2FYpZx4%2FycyiVcDYdn4JbEoKdQi9054iBKsygLW46FRGxAb0NPNCm8BSNCPjoKcj6EAus4SuP3rB%2BcV99%2FeTF6294dA8%2BTK6v74MHVpYNRt%2FI30e8QGTOOdfGWzzxcy%2B87a7bLjw37rHw1nPzp0KyyRSeZO%2BQQhInt3dYgvycjrPOv%2BT8s1rptaP84VeywdWX2T4ysr0%2F7TLIs6%2Bx9zib56ye1dM9e%2FXsZmePY3NDs9zlnNVt4%2BWgHJbbz3Livg4P9WWgviOMm4kCRT6I8vw0NbUUEnFvOuFKoxQW1gTsvFirsF5pb7qTUCx4i7VmtToveaDxvK9uOaedVvPRpVOnNz0Q6bry7uiSdQ8t7Vy4JQKVS%2BXPplV2ts4bvCwZu%2BKzgITtxepaPRzWdpv74muvv6RO0SorX6cu%2FdqKn%2FXWnrtp%2FZragz13DUCl5myiFW2Ycvb0PtsXnU%2Btx8pvLFbUspLX68mdegwmOif%2FNPDONajTGoUh6tU56HBJCTBASVvNUB5VIiKpc9kd7kludodSFz7xQbiOmMk5dOYk56gzL6uaf7N8a6MQOHm0ae6snZpFDfuT3%2FjdYzjzwkXXIVHoXNuCfQslQZqBZjTsoHMqrkE4jaYdgkGz2ATOgB3cPkSukD01DnV3ttb1wx%2B6arPqbkcNAHoFPzKUUQ%2BqL0k97pjbZv1I%2FegC9zTFbrrlFpNdmea%2BgIgfWW3wqkcis8ky5FAcRd1If5nNZrl2FFpungc8wpoCl1BpQV%2FScS%2BzjlASyUTVv%2FAJ46gkJI4bHX4lTnloctxPZE1ckS3%2BjG2fKIjkQFyzuo8jvYQG1OrGvJPSTu%2FnSp9PHNTl4z5hK%2F8gtXVKF6gEKiglgcKiRlCESsQCV5QIlKWKpr34lt%2FwkSx%2FJCmP5%2FcBKQfl%2F5gd%2BrOS%2F%2Bp91%2F%2BYCg5CXK2W4M9fu%2B%2F6xxX%2BvnelVuldIDCG0VQTpU9Dw4pRfei%2B6zWx0MLie0gPbyrkmRU7OwT16JGeyXLHqOLqAfVN1GPlBzWtFNzj0TRTCjogtP1NjIvu5habN5Aoa1k66wGpqriVetJgiGdwDZtKhnN0y4n9sXYnsqGmZfDSR15%2B5NLBlhoDaedEm7sxmpqRija6ZEEg2EAnTiAC8IrmFbGz1q08P9PSkjl%2F5bqzYqT9hMmptEXDgTqP3Wiye%2BsD4Wir4jCeoHbbp5hRfpB7BakUIppIlPCD30dR1GtslDz8OsqbXmejFC%2Fv8wu5X2myq7SJ8Avzv9DFUJySf5uNvq4%2BTi7W9D%2FOZrLChdwxmPNiBRqVjnpK%2FaGxRCDspVYKAW9AN1JANoo8wP4BJUlGqdgw6m1qPQ2QW3%2BOfU5%2FieLS%2FNuKpDU3uf8bcAXyBal5jMR2NEAbPAZt0K3hvxHBEDlUxfIGcD%2BN2gNSNx36nfqlAYow0puatNpRz0e4W2oahKzQHsjf2c16ad%2F3t2KTtPobnX6D8C8pd0MDP%2BKx7wnXqGGlLQcvikMErm6TmfsuxJXbSAxqNjOogJLQBLiKEHAE%2BJGTS3JoEhTrz8%2FCB%2B5YlupJ58aOat8Kv4JvregxwcU5Cp8GFAFm1FyOfto6GS2m1NGTS6CPNKkbsTdCBlnN9onMho55BX8IJZtEQ35lk%2BhtwN5A0V3RCPoD%2FyXAcv6pAtbZczRUA64JmcUf4q7Q89ZHLeJVZ5D1Ps%2Ft%2B0iCT3AHVtZC7JDCXfR7OSb%2FXja5H3zQbZL1B%2BULX1BMTEk3AseSpmnKEK4T9ekMIidUCRQFfcbj7z8gNLvzF7mbhQN8h6ZbRset%2BnQWdS%2FZX3k7WpS8P9sfo0iGS64wV516pOhjI6TZ2dApgI5%2BLhxywYoWxKUrykKJsIoDsR4mSrCTg0egMPnLW%2F3Q5Nn8BZEuzqEI7HK3n0%2BzFmuO3TtWQ5WJoG9YqCD6Gc32SxnbnVPfsxvrFXK2dILl7bLthDp6glhcsfp4bYvbSmj%2FmQ94uBTw0E73x2jbNRCvC6VL6GCFDwU7eWQDcC5FY5s0slieRDwtAbRsbLXbaXAuu14e2OJw1dc6jQ3ZdY8v7rv2%2FBWZLqvFWVvvcmwZkK9f5jS4muO9yR5res4kfkRxhV03L1RfPOiPtYi8pd7jNEsOpyTwxpaY%2FyCZu%2FAmd5Or9uS3DYaeqVOhH7gZN%2F8I%2Fwi1fEuLXvyNivibjuKvN%2B1Nc01HF%2F3h%2Bef%2FsOhox8MPd5SFucPjorQwXT%2BytA8EmA5mamHNFDVhBI5pjZbQpugBNkO8MvRub8KVDKST1Wag7D3xlin1ZF7LFP%2F79nbvCXFOY%2BPUjrT7%2FotsPXXZ4exdPzuhZuL5LUXVAn7k7PbhG89uz3b41X01gbjP1xwlu5rrvvf9%2Bpbs6E%2FVu7Nk642%2FPYRaAiUBdrmO6CDTBLPQFA1ur0uXoBR1INDMkypKpoTqnSMx5GiEdTEaSHLs0Alvu%2F19%2F5QW9Rv1U1ridT22i%2B53pzumbs%2BXFFXYC%2B%2BCGsTj5JUT%2FGCgRt3n78i2n71FHG4%2Fu6X%2B%2B9%2Braya7os3ZbDmgWfXun44e%2Bu2NZKuGZ0HiF8M4TlMPR%2BEU6rPKRJ8wOU2RFUFLex3egEsz3YqEAq0cqhAAW19dBZIlVzR61tuIdTnpXH7l%2BuXrbjPUyep%2B8cl6aXKWhPHpDcXl9KiTWDNr4mBQc8Tq%2BNzK%2FOKSbsfl79o9G20R%2BbrBXYvUg0rLHhtrc4TN81TTOWSZ0gL1ZVlOYH2ery%2F7XVUjFMbzYpg7UswcqJPQwBd0LKLabJ8IaCr2otcjSkIrGwootKECaUd4XH1%2BSdazRrfddkBU98t1htvWrbjqSqjaCguxrffM%2F5zDCpBALUycmajhd%2BR6ww4SWafuZ5eU%2BtPid4lgd3gt%2Bb%2FY9rQoZNmiXYPXyRHbRs8zX%2Ff4WIFjWZJtUdSD55AP3xtXH%2BZipC0EqdBGDA4CoYEU6gRLGPU11QhkLTBiEYPiqOeQgwTCl9aok1Qr5pFf71qEeNxjy%2F8F0GoqYPv75Yh9j3x4DuJ%2BuEzHRpAq2lMqb%2BqfTdiq6kGtzfOWsv0c7lSeMXDHBDe1MT%2BLUgx0Pg%2Fp87u2UicdIvqQi8DkxhcUwUXCedMpb4NQjwY3npTmgsURJavLwCRyEcN2HfWsDVGfv%2Fu9ZUWUx%2BPYFueUKwaNvbtu%2BXps3eVWbN1GcgVrdMnWJ7WmJz9SD66EBidag0NF1Ukep0t5A7sFCWdhzvYwHv6L%2FBehXuHqfaBwBEU7hfVLcXvS4VQv%2BT%2FvaSIl7cbeMc7ekv9i8S3e1L5xxpvMGcu1EYPbKyCiijjGXcDKckm43PqU2qNWlXusZMiqF82cuVzolUHN9NNR0HZPxFPV9V0wLtvq%2Bk4DqOwVWDlzuQLVdqFiP08cRX7aRlBVfR8cb55bWe5LExnlcsDp1vAP8Q9BucPMk1Ulh4GnN0SAdxcNHv3q9ohx1Ati4S%2FtkWjIDe3hQdkUGrGRaFBiUdiTSkI41UkMuuQHP%2BEaSQYlPQTFWJF03BNPpTu5KFAdkWgDukzsZKMG0Q1TAQQglScOaP%2FdsZ8%2BfP75D%2F9Uu5Gs3FY%2F2SxPld0DHOciXI9gqjcEidXjE%2B3BLosy0OcX3T7O5g65ROGyzQ2BZs7WbZVnO5ydLe32hMwTQ4wnnKXW6XW5LAa7oaXOIHoUl0FgLQLH2by8wSTWeAx2Y5PDazK3BqZbeJZwXGPaYhX87ZNszoDdaRxotXO1nNlpdvAPFWHDm8PqEE0sZxDEqGzxisFNnuCWetPcGrObN0p23tTZwMuRVodSV8%2BLTrOV3eRvzjQZiSjaLYS1WEJe0kNsJlZu9LFun7%2B%2BwW4gRDRbaxw2nrOGm%2BxOj9cmtbp9ZqeTM1m8UXfQQCSTVSQox6pvtjot%2FFpHvIUjJovFEoYvHYV9C5Y%2FxN9OfcalvII37UEhTbTg%2FAQIaPb4Vz6j5u8%2FaViycMod%2FfkDcpu8QZbZoeBi%2FvbzP3XPsZvOubMtaPHkD9jt6%2BU2O7vqU%2F9C9SMvgrXpQNG%2FE0oJxun%2BCiElUa0IKQSUwERxOntKSV7ekcuh9VBZBBo3VUcB58ofKBHCwLyf9qFosz9Ibf8dGqwaBMjRig4SGOZ2UkWI7UiO9OfUPdxOYFApUZyfpY7mgEc5rtNGGk2H1lPhAk1Hp%2FVAMqQEHEUfEYkkUQq1JMdzsX7kklRrTrUi1wMcDjmu1YYfATj7Y%2BpGpPEBXuoQIj8rR9mgCl4C9yqmF7xnVWxGVniNqtpVmXBvQ6iwni5YQ8a1jYrXtc2J13HvgkvqWxuva1sbr%2BP2S5ceKGyBwDv2DbrToe1u6BkAJV7xnVLUaq0sJB8pFqcUIPi3yuwxi4JuLr%2BP30f3OkPQ72aO0xYo3%2FEsmO3QO5qEF8S0qQH0UsKXv0brnl9%2B8M7jF174%2BDsfvPOl1au%2FRL5%2F9DsbNnwHL2pHR1NTRxMZhJtHktOOxLxErPF6YlLvpC9YP73x%2B4ofw%2B3xVdrHcDE0dQQCmCRgvt9b35xINDf1CDcRSfJ%2BpYl%2BSf8YcurfmXP5F%2Fkj6J82jNsrkWiEuhVlgFfyNkB3S5MUzLhoNiwSCYcxQ7Ui4J0Xh7fmqRbaPa1tzujxkBRlsEHy0%2FOM4pYLPb7g9O6BQJN6l9zQ0OGyCaZz0vMTbHOzXfQ7a2tsterTcqxeInODoemdktw%2B1SbVhKwtW9ffe8VKadK0OVuC3bWzyKm5LeddsWTeorWyY9IMtUFutdu5g%2BRn533qkocdvLs2HmhU75br%2FMmWtD8zA3OP2t1ea636jEzqYxJZGAwFiDEd61oTsrRuW3%2F3pYNi3bS%2BRd%2BGjOfVpAPNd6y64Gsz1GaZleWIPoYL%2Fv9mTeQBENVEguiF1aC4YeXxFETw6QyPfn0m9g8IrMFAvKM1EI11DARnbqibHk%2FIojy5rSdgCyZi06y8sS024PeuO4MfwQ5Y9yKRZCqyYaF30vzeHlmUprR21tR0t0yz8KZY66zWuGvxVQB%2F36kP%2BK38t2Hu6NQ9SFJfw0AdpqPEK2qTMpf2VCqJwqPoJezTL824b8akoL%2Bx03nhh%2BoNo5e77psxg9Q5LzebIKD%2BfsY34f2MtB9fk9v5b8PT6tYrgv4kRPwd0q9z3gdJSJ0653KjCYPwCaR5aUY63eW48O%2Fkdo33yxX9wCiMv2QTrk8eGSI6Ag6moG9t2P%2FF7GRNlDjl0gw7pJ5aOXXqyqn8SENnXBmbSwUYLyqJjv3UmY1nKr4t80no0faXsaIEiF%2FBRaIBnItSce4OUif7W6Vm9T9H1X9Vj71BEm%2BRdmIJQST%2FZfVdudUvh9S%2FqqNvqT98g9SQ3lHibZY0mRVHooyDN%2FFHmTgzjdozKw28NwQ0hwN6BCoPKaEk3YtKwNhwRLXuk076CGoZNXDQcRwZvreTZY9EZi%2Bd0s4%2Bztv8iei04JQl6ZbDD2eHV7X4uHuFVfPrOmcs6m6Kr7hssr%2B1VZFcEZ%2FPdJkn1hOs8SXS%2FNFFgqt94PIZzZ3tdaL6Q5vo6piSzdy737pwsX1VyxUrF15iJ4uNkq%2Brbyg1Z%2BO8VsNC1UmcvORPRfxtPrfRwL2p%2FoA1eZp6Z%2FaGffoewaXcA%2FxBlKlQLfhQL%2FoPgBGP3qsA7IQS8qDVNswHKRSheDUvA3Q7MZoRcJMxlEygujn1QdyzfPfq3dEp%2FbXh5e5YXW2Ngfvza0ZF6UgFL%2FE0fTq4LBlvTE2qb%2FKuuzYSXVnjTfM1osvqMHVbm9950quIZlbqaL6YP7jk3kUtA0GnX2nvq53f3WoSsvEdDRnULgo2fN7lNZJgI8%2FVWi33c3bBZnGY05%2Bdm%2B3qc7fNmj4YGKLj2nfqFP%2Bg7jdDlxEV5XsJQZP6hYrS1l0VQr4c69Xueixp90gnZPmE5OF22j%2BSYEWHlZ0K%2FHgsh%2FZtsbh6h2DNRlvv6jJh9XaJaHCZDiUDKNTMkvb8vsqCyf3ZNdSmO0fa0Y4baJTtpbKzuVzeeSI7fCKr2Z0WypapnXJ4gnoWy3PoUIlIQ1TXdqhQJIXp9Wx5fYdpeWh2TY5D%2BYVyKd0jw3iumwi%2FBC3cEy4o83QlZnW79MrCgCjbhWXBlRZVVZZv4rIKpXC01HFlHdHLoeWVl6UVc%2FJ5uGm6CViW5mulYMk%2BHqNYr0AyUPivLg2oMs2MPqtuhHyRyiwvNJej1Br%2BfcLyoAyu8D9B7bgmzUqfFobF5nKnK4%2Bt8MPJkI%2FxHUNWk117jugWF%2BxazTAALQn6%2BUE9lhoI5ApGA%2FiuJOsrlNP28SVVuBVajXmircLel46w2bJS1Q0Ft0KDuikDFL%2F3pYrid1Q4FvofwRIo4R9h2ftSwc6jHAMqLcCql8YPHtlzGoByNXYN6v8hXnRaOhUvx0sVLCexwupGDR4NOYC7PePa5keIPACnuAdD7dEadRuTIiS6Lb7uskb381My5yjzF8lGCjBRqdwrWJCagfB3yCy7XT1i92hbcZ5Ci1FJkgYMDf6n%2BjspIsHFjJrTOdzSMuOa9DbDcj%2FnH9N9bIoGVgzHPWIQuFuYtaMRaq8eCKI0gEF6lPOZjBz3EEvaaxwSUT9U%2F8JbJZPJJLBLolH1La%2FRbF9AbC8JJjv%2FmMnssKjLRBJyqj9QXxNko0Ux%2FX79epfiXkm6fmKwF%2Fen1HLc6LxloXWKvGa5rVCVL83VuiPcDEX%2FK5pTXOxHfx6HHB0t2FI0qI2rCZFTrvPWU67zVuS%2FkTsLnc7IKhFg30e4FOkqNSfH5PtkmUy6Cpiv%2F36k2sbqCeCFNa%2BURpoY0sZoYmCgCr3qgZz6s8I0gP1bYiR%2BD79H56NOz0EVWCTy2%2FfffvSCCx59W7uRV9995eqrX8GLesOXNm360iZ%2BT%2FEl3uZqL%2BFyzSZ8XxpTiI%2FG0nkT4zznFZ0t4ipMz5v4q9ssqbdKUZt6u82knPCrt6PZwsnn0XySVnyPR1ZXAn72yx48bWJsu7apnI3Hy8bygUK5Js32qcytapqgmn95uexccj205vGgJ%2BeuOeG2SORmKZr%2FqKzcx9SFctMJdwMUFZDJITs7dnOp1EKZCxg304Cevyfya%2BvlKqv6aXK1qIj3imL%2BL6hL%2ByvUlFfE0VKZ7E8gBY3M%2F8VoJCFgizH1W6VyC76nH6b7jiibYVxUmVIEspry%2FLgZIlCeP11Z4zs%2FAwvVwtGFEut5S1JY4lfyT0N%2FevOLo%2BrUEgjcqc9IkGpQbv3iW7Co5b%2BKgjvpzYdH85PLcc4X21ouwEGl%2FS4qnUAvoSlXUUhR1eKr2VWFTB%2BGMl6FsiQsVD1R3urlAAIoSn7JQkmiVVCHSpCwDH%2FqPepXQ0Db77CJOAImohB%2BRPWr31ev5g%2FkE%2BzTa4lbvZo8xdWPffQu9yJTPCNB66s%2BzXoJt%2F0L6hSoCuBIoK8fnBGG87OoRckJpLqyWe4YbpGi50g0%2B3I3UD85Oa0fzubfoXxPLbW3FDWzigmyJeM0tQkax7PqTy80%2BUxfUHPlBZIRVNQ%2Bv0xRm8REKPoLmNr0%2BUo48v9GFbXPKylqQ2IKm00QddgyWGMROCTxdLB9nCY8P7j2DjlsV%2F%2Bmfr0C0r%2FNkeXbbpPlOTBBwT0mVz1zx9S%2FwJecBF9Wgv3p032iP2v4VSgfgW2G%2BHUEdEXU6iq4CtpLJfIN9XQG8dwa1VoO8XC2SrPDDyCOQptXgbcPvlAgBfxBoGwftQKeKFrNTASPt3pGGqDt%2FQRasn2kri%2BH6L80MJRsmVYJrAKyDItpJUy3%2F15WYIJqcJ9Q5N%2FLFJ4c3dc1URpWl9hW6mu50MUIelg4ucTPf15zs5DFo1c0VSp1tKB9jkwIyuM45kb%2BIP8gHed%2B6jO3v0KbIknzLy636E8KPTdCuUpB0wLo9JKnAO6pv0vS31EtBha%2FfJemkgLVVnd8KCk4qBTpQ5m7FbifBKrPJcq0pZAFVG%2FXbOFz%2BTcq2MLrcmV28Nmi%2FOHskh82bau0k8eWCaPijQPWQ5lUvslwVCfHkXBMIehqUgtDNLeauH1huvZTbYmw%2BluPjyWoNGEuxRLR7LK5fSyXFUyK7PURQv2v8D3XOt2NJ6liBbmPGOsakw1kbeOs%2B31Wm5qpH%2BiJWSzqdPr2O7zc2TmtnrzCig6bBd%2FvgQmzOlz0STWIlmZEQfupogOZFHUZ7EkUnMn0RrpIMqAgHRJAOjIJ3yGw1I%2FMAp9q9S3Q%2FclADNm1wEeO%2Bxbwg5OIYHZLY3ehG5lJk2xhco%2B6JWybpEVz2wrR6hZyD0QXZbeDVB%2BonmlimpkWprdAs4WEZDSQppsDlcdCBJJESIYFuAtUnC4GIF2C3Uu2Kv7L1bdz6FxtqxpG4TqQOqOUNAJ2HLvPWA2GgDy4O4vaDrtyl6P%2B1fAll%2BSyFcQ28GHqh7fvvf37udylf0fNwhzgz87Y%2Bcf5x9GnF6ygHu18sAbipWeF0YPBgp2GaKeQduxxdEr3SgbH1kvH7tvqSLhedomOvZyts2dw8acu3dY%2Ff%2BucuMtCuP%2Fe4zC4XnH3OLZ8ZuxTWxy8dJfU5dhDeKPSlJy5pn%2F%2B7u3XrJhmr9C5CuleGflGQocKnlAUaRKp0BAHV0ZwUt9VCqk6zYOgRIuMfePJzdmBdpPJ7%2F6B23%2Bf%2Bsp9NMDZevovvfYHG5dGPISQq1DojqNckchVrCcCYz%2FQ0hI0m3NKDRfkgsrnamo%2Bp0CAq1FyvC3a3Nak%2Fs5VX282x9Ufy3E39VAx6o7LpCvO2wK%2Bch9jNqpJCutcIOooKnYWtDK8gTRVYygRQfwgzKM5%2BjP2jOZdx3r32Py7rQUPOzAnoRs95NvRAR0qLGU11Taqu1bUYSzMcWjMEir067JQQHfIrLBHsrgv00%2FWavd8HRLMEEYFSW3HCSNQehnrHztKqHcDyo4VfZ6gPKCR%2BgufwA8GegxUEo4A%2Bgd0BASHiH6jYMLIsUdQJTs%2FC641KN4oCHWolCMLlMfIdtWKScjx7SM5LD9HnfmhrGI0S139UWfUnxgOXdJFW%2BAMcGjKr6eHAttHF5sUoeArYKDcxMSYcKA%2FxUDhPiEOEAPafSIUFArN0r24ynI91EPARDXvIDYyvqZaWeroBOUABQA%2FE%2BDXC7PWafDLQY2oiwpUEyj4RQtVlUp1GrM7In2p2A7VuiOW6otMiGOo5Mrp05ejVuTy6dNX%2Fk%2F7mybZQ0nUmfrbx3U4KueDnlHm5wdh8FFeKnoaKKh%2FTK18StOPhwG9Xo5mqXAxvw%2F79YQwwDR%2BnAKQQ4izVXioB84qcppWB7IqjU45z4CE17OvF1Dw%2BoTFqxtz8dxwtogBnF9MjIl%2Fin%2BK8s3hM9laIn0TiCbTAXL0T798bPXqx36p3chrv0O%2BGC9Xaj48Ecv8U8UEeBvUEsDlTepiU5OvlpeNGvpnKF0RvUooWhIjnx6GeBapXCQYTw9DNg6%2FOC3gZjp76oNTj9Kz6Jqobxb9NDqc08vcKReOpcsQV2K8InXFaXW3aI6Ofr1k48rp7CX7rx%2Bv1UKPsfvzQU0Kc83i2VdILmd2%2FyX55zT9luN2%2BCu4nKfwPcK%2FCvDVU%2BpHh8%2BLaldIf1fA5h3ndT6Fln9%2FW%2F9Ce1vndfvJtnPVO2xhm3qbafHVCN1X363UXHq9xuVD8OSD29Z8pZ5cZrern9cAdGW%2Fuib%2Fud%2BVK0L9a42r6C90kL8KzxwLQw9NkIQJL0ASU8M%2BVG0KsUdgdvpgP%2F6NqqP0%2FgHZFUfGEijZLHpiIgvV5%2FBltrj8Qd7XQd5p4P%2B7tJo30NMO6VGBwahSPMYiaaBYoLY6uEnciyhhh1Z%2FvvacG%2Frjpsvnpzs0B1Id6fmX8119l88XnOxe%2FuGrzzHcdu7UtY3%2B2vmXN5zUyj3ZcPl8p1sZSs6%2FnGXtwrV7Ka0XZdz83fwjjINpZWYw85lL8BRK4nGyIir2RiOsEyipuEcIakpGjWgBjLiHWOgj0Yi34gW1kKPxHt2Na5q%2Blwg1RdRSpFDNzosb44YJXnAfoEOpZW%2F%2F6u1lhYA6leevezbI26zNHO811M2dc5HFxpk4i1jPC0s21%2FBWW5DnPQbn2X1WK43%2FaM2n18DfSoybbNHijFpamzXI31eRibGUOxSu%2FlT96YZlq1Yt20DaSBuG6knw2eusHs5EPBfNmVvHKdaQzcDfz9ZsXmLDWGXy2U5OsYSsIn8CS12jQIyD12KKqZrLPy7mSPdICmd6WGHG8NDZkkHuE4h9TU8FpmUO%2FVjC%2FEinToFyoNDz2p9XD6g78WgQdPG7Z3R0T%2FZ5dTM9lsL8Ktek7szl2L%2BgQwGgwkZHc2g5Su7NvVqwGy2Ua4KSXUwt1X4PaM5paaEu6jQ5zVFyNabxvUksVt2T%2F4VeamYPlLtffdQsk%2B2sUTY%2FzDXl%2F05W53%2FBz9UK3p7LjapZ2ZxOm%2BUlZXrL3HHGqO8%2BwVroDaCTTnTxitMxmiAAYQzVJQH%2Bnj3oIHnPaN6Zq6sNSLjBl8tKgVr2mj%2F9CWi9dnKca8rBQBsd5R1tzVlgrl5pbnPw6kZclCr2CHxMnHohLz%2B3KRQokzALyeIKFU1TNCiayJdoHvDYe7K6mZLm8S3uJ9dojuaJ62%2FqN%2FtjQxnSnhnKPw%2BLNrLi8ZKyJ3x1YhiI1aNAtP6NzCGzYv3DmaGh%2FLvQZnt0evgIhTFV0kE%2FPYxAnOHhCQUZdCWY5JWJwMzlAGl1mpNbDU7yyGnhRMILsYhH3VRAijrPcBU8%2FCj1Y9NY6cnGVW0CjTLaz7E3epvaT%2FLtTV72Rs%2B0WVVmd0dz%2FMGTI5F0OsIviaqDlbbO5X6xT3PeXbXHRtf%2Fz%2Bfdka%2BeKPr8KF7IF4vBsT9MFPuPJMBTBMq9hQxXelQ%2Bbewnf18ap4Ib%2BmSMrtDU5zqlD8QANa5MBGh%2FOwOvSDfcV2d66mfEWsbGWmIz6nsyZDWQSmqmxDneYyvjHPmRXHZxeueyRGLZzvRioKnGto9nIPkibAJA16adcOZRQr1iAP3bUyBR7T4RgAWTKxhkCYFwshq%2B7iV9r0whk50cmRcTg4fy5x4OmmNkHndIA2%2BYuMbmE9dwGYB4KFTsvnDE6Ah47r%2FfE3AYI%2BoXADpkdlENcZ8OZEEf8FFGZNxMs6ZLpG3SUFLL7Q2kcFU%2FA%2FJsw%2BvWDa%2F7emewLaoeibaF1B9qUNnuqWK3%2BUfXYVL1v%2FomD15xxeDkPnXTOKSVcCbDGtOu0YQNpGAP7U1HU58UrqGu8xIbHtkQ3LVhb7Dx46ET3Ffcm1q0YcOizNmf3bC3VjWfAcpSv3MyTlgJ23FHQgmgvk%2Bgk8pL0mcCDOn08MDAQlf%2B%2FSlTZ1z12fnqntOhbOTL9%2FZdevbAPN%2Byby1f%2FuUtC%2Fixm8ZBo59LTXEW060hGrTDplNprWd58fwB%2Fb%2FE27BdS%2Fs7U%2BrGVCeQ46nzaw9QccnmZerGZZs3Yw9aVHt%2BKh6HN4ti6lxIhT%2FwahnZtWwzlY9QHQ2c79C%2BdxzvVDKy8GqKWQERO9YAKbpsDUTLdWV5dE8PVPjvj9pqw7ah%2FPFVtkit7aj6G5xY9mfJrCz1j1e0BcnPol4UjtrCdbahIVtd2HaURujnFJR8CuOuUUfhrGhgKKgjCYNSvCc1WKlEp8wHUaAYynFNyzZn%2B2MnYv36dbMDBTonl%2FT%2Fma5IKAyEGz%2B4eRnVtaX6tss2o34u8mWorFtuFgm4A6qK%2Fyp%2FgLEBVat5WnPDdKA574ubuFJ%2FIUfZ%2FY2Nt6mN%2BZNNTSTaeI56gKwkXerTe9DDHUw8%2FH35FY3nNN7GGuBKWhrV9ep%2B0k1WjNWVaHkW1yA%2BQHWNu8rtBw2a5YXuE40rs7%2FGA%2Bj09V3hA98yRnFPOGr8ltGlsFdD%2F7tRce3LH6Trcneuiy7K7J3khKu%2B3qUaXPWaX7T6%2FKfj9BX2eZq2XAcZT79u1ClJzUtHUqfqSMWBcZS43Ena0cUGLgpkKxB1QM%2B0Fxz10wgg6r5rltnFpH05pepUq3Y2HfYqeKRntmUFNz%2BXmcOs1H31U6cC6RTVLfCg7RNBF1UF2%2FwBgu0fFQtPEU1sSg3VcNsR7dWq3af87tUFn1l3ltXpaJxpNvtcZkH2WmMst3JqRpxUH%2BWC0E1qOGtP66s1MYv%2BVLu8%2FXFXvV%2FZbunYYBeVN64ls0ur6NzpV9xzlmQwB5qC4Tq70WC0tk8dWJXeHvkD0h9zJOM0vD86%2F1NJMaIAolctvlByferCsqOKDKceOfUu1PsmoFCamV5mCrMUOCi6V6FJosMF22AcrKJgQDVhfYh6tepp%2FlYgvnCEAbJQ1L0rOpajEmRcasMiPfxhgGoVo4rwreQpV6fUJHH2e8fa1s2c13Apl1b89a58ozdoap2sjgLN9uISl7P1DrulyeIkt0zr6JjWocoPOZsaXPb6jtqBblsgsaRre2xHi4nELm0MhG1%2Bx1SXwLpFi53b%2BaHRYo%2FIrbZtuWAKu5cSEXfybnnmUCaXGTpQr0xK2O2WWY76f%2BnAjNVf7nCZHU5XqIkTnpt6VtvsFlPXg1031g%2FVRdpkkyVpD7jnmax88QwDvg%2F66NnMRdRXTcGTmQc3cuINwN5IQqi0yzb%2BYFVHuVqI5s4ADfg5oE4ybDLd28mFSFmYvRoomsWXEdLU2Wl3GJy93ZNb%2Fd5gqmNaqJZSO1l6PVRy0nZIj%2F45EetjLguh1rLqR%2BSK0hO6NrsqcNX8zoUdjQYDJ7tb4os6%2Bi%2BY0qpY2AWlnLRDWdGFTfGY1gV0zNAtJ7pdo24se0D88AwLY%2FgZmE9iuP4V5v7CSR%2FRThaHLh%2BUeBkXwU6BC7lGOevK65udTv%2BtS%2FPfW7qj3ljTcj3b9OkbV85t8xsMj7Ddj7DGpthZKwKPvso%2Fc%2F1K9aLE12fMWLV1y1D9ua8lyJdWXr%2FbG%2BnoCFutf%2FmLILe39ITUV4igr3876fpX5g2zeB52sWnIL4fXHlgeUzOx5QfIvJQyrKQE9wHUqVq%2BPEaOrz0wVvNbJZVSfsuMzxN4l9PkedFzw9V5Dj%2BnzpgoT4ZxCxJfC5RWLc74YVHxKlExCYt0JAOMatREhHBSCAtSfod6x6Ls8HCWECLwXZ9nd5Dz1T24JUdWs6fU3%2B%2BfcnT49Qe%2BkBs%2BwdsMZgPXMp3U5S958snPP%2FEE7bvkOPCuTUDTUQ%2FUzirLhML9yPahoe1D5Fj5jWsaoveyP00PehdUAHk%2FseDVWsvDWXXXsyn%2F4wfpXc2V3%2FQxli3jl%2F5hj%2F83avSCfpTNxOEKLmTjxOEKuxgNlsQn0xgct724mhynupNW1Ph6o3RYS3%2F%2B2TJrzLlkFz%2Bip3qCHKf6eqW02QJLjBYuuj4sobhCWqa%2FYHGEHpcnumuWSOhxeaL7sOakNR6vvmo%2BYcfFA8UFXEPZf9UjyudIOyNwx%2Fi90DdsujS%2FFX2UAwvWSVK4NxaMhAGw3oowp%2Fuc8CTi7D2rBgZWwb%2F60faR7SPsEbjkXy4G0XaqhXPwe2cePjxjxuHD6ssQuR1fq6PF0E%2Bo2t1nePTn8TUmxz%2FA3crMoCc7egESuoTHYc7mYdg6etORoOhR7BBGD%2BqJopELrl4S6cJNRtEAsLP%2FOdvnJq0Wo0GolY2Et9VFB2Kf%2B4bZvVyxfOMz3WdFfSIryj6DwWghre7aQbdiDrkTL3A3vNDuDpk93HqXwam%2BbWmUJZfNn5ozKV5Pmmq8PF%2FjVY%2B2Tlk2M2RzSXKjmbQ4RZcQavEYrN%2F9rlXwtIQqzxQNMzPPfHYLvuPoO9TbT8bpGw5CQPGd%2BSyX%2FCyf0Vxjd2R9NmsunnXYa8xGHzn%2BsSfM5J0y0DZEXWWxkXjcR75KBLNLHi7XvX2G8VOrf4Ykg0AMdBESIpo7MgAfyakA6rkqpI6UjNs0px7cMV%2BD5BF49Tez1VGnYmq0WIijp985m4Sn2gJR9b07riPPFo97OYbUZbxJCpot7H%2FlpZBicglCPN7WOfJkcHqc3ElWqvvz%2F1E6bIQrG%2Btz6WkM1SM9FBTR7FSs8KyBBytSmNEoquJNFN5EQyTiCrnKDx1h58yxCepPHU5nxGoxEQeeOZi2m80DxNxncVhr6BmEfUarxejw%2BWSiHhWk19bSY7aKR5MsteblJpfTLtjimBouXsm3d3djjYM%2BwEW0El9dM%2FueVRWIsXwe43R7SgbVZqrnqoJ1X%2FkuF7pcgf8duv4q6vayV5U9zMV91GxO59UUjW8rHV6u799WzKMT7umRCXbYUKM%2BfoaCcwgaoqZUtmodV3p%2BX7akb4dnU9B9La38RPFUG2SCC90tVA4XwEFhyOpZZrUCsgWYHsczLFBBVGNtstoN1bw0Z%2BO4fYIbvZVt4EUcJEKOhHeincWqONw%2Bq6w5Go%2BWGOSR7LhKV%2BKBqbBPpfUvOf9QqkpDyVhBeyyZQGMsdA5FBUqvFMtUyGq9vjnsAJU4UcrxldP1CCaofyDkSAifoP5QwWx%2BSyUGxp75BzGAvtG7uQ38LehlyEQMeh0TeE6Bm7tYdXqdkt0uOb3kfYlNwmOdDyacOq%2FqlFo1v%2BPTmTi3E%2FglC9W11b34A22zmLzvb231Q0L2Bgg60OTW4YdstO%2BYOJnO38TtpH7zy9ymokWyA79qlVSn38HtpFlImFnhu3b4boNWXklOXV0Iwo7lQ1hrZyPFcwtjwFP7iEKSHSSJw509kh8kj6pr%2BH1jR7km9vcvqN9657vffefkv%2BfKxge1X%2B7RdjYUPIESN7gTvRkB%2FRMYtEkaVkdHApmdBPpnKmz0n1xSWFOyVIuLrinZwpoCRe6kyiVZoHX088F%2BUX4%2BWKS4iBTP0IWxGtZgOdMaV4KTayqHQF%2FVihBwTbgDXTCmKoOBJeNhwJMzEVjtjIFLuU38fPR7hqNG1JS7g%2FqRCuy3vmQ3W9Vu8qbVbP%2BSzazGRJH83MzP90Ck2m31mMjP8TiLn5uwD2Ugr2PFvPQjB5BnSJvQxGQZZEB%2BLopqzGzDbMmbkAPkZVJjeO5FzOSBKCgJze2ZS4Gemc9twrwY6u9H61iUQTcRvtdT9RW3tRxAWwFs2tcuJRnI6xjmBdWjbgFNRHMHiF1uHYBfUR%2Fut5Ug2jXAaT96%2B9RH%2FFToRwIzGbKmVJ1AZQnoabSB1yyIg7ByAridHApPMjyw0OiV6RjSbCuzwLAvFizBliWJua1tsuAgvNPbmljYbpt8lkWam7b3XZiOiKJskMOtmfScnsbPW208knwjuXrXK4Q1iKIgNyYXXDVT9C2Ye%2F78GQ5BEEXfFdde2RwauOysdJNL5AzCy84ard%2FnGAVN8alecnFdgu5Gbd5DJTL%2BhHZK0vApVy3OfU8XTSJg1TlssivsPYUlIqvn66PzrVTymCc4wgF6SDNR0pDf%2B9Gp%2BVnsUH5WtpHYsuhOaey8zdwLN47V8MTbm78g687%2BP3cx6tcAeNpjYGRgYGBk8s0%2FzBIfz2%2FzlUGeZQNQhOFCWfF0GP0%2F8P8c1jusIkAuBwMTSBQAYwQM6HjaY2BkYGAV%2Bd8KJgP%2FXWG9wwAUQQGLAYqPBl942n1TvUoDQRCe1VM8kWARjNrZGIurBAsRBIuA2vkAFsJiKTYW4guIjT5ARMgTxCLoA1hcb5OgDyGHrY7f7M65e8fpLF%2B%2B2W%2FnZ2eTmGfaIJi5I0qGDlZZcD51QzTTJirZPAI9JIwVA%2BwT8L5nOdMaV0AuMJ%2BicRHq8of6LSD18fzq8ds7xjpwBnQiSI9V5QVl6NwPvgM15NXn%2FAtWZyj3W0HjEXitOc%2FdIdbetPdFTZ%2BP6t%2BX7xU0%2Fk6GJtOe1%2FB3arN0%2Fpmz1J4UZc%2BD6ExwjD7vioeGd5HvhvU%2BR%2BDZcGZ6YBPNfAi0G97iBPwFXqph2cW8%2BD7kjMfwtinHb6kLb6Wygk3cZytSEoptGrlScdHtLPeri1JKueACMZfU1ViJG1Sq5E43dIt7SZZFl1zuRhb%2FGOs44xFVDbrJzB5tYs35OmaXTrEmkv0DajnMWQB42mNgYNCCwk0MLxheMPrhgUuY2JiUmOqY2pjWMD1hdmPOY%2B5hPsLCwWLEksSyiOUOawzrLrYiti%2FsCuxJ7Kc45DiSOPZxmnG2cG7jvMelweXDNYXrEbcBdxf3KR4OngheLd443g18fHwZfFv4NfiX8T8TEBIIEZggsEpQS7BMcJsQl5CFUI3QAWEp4RLhCyJaIldEbURXiJ4RYxEzE0sQ2yD2TzxIfJkEk4SeRJbENIkNEg8k%2FklqSGZITpE8InlL8p2UmVSG1A6pb9Jx0ltkjGSmyDySlZF1kc2RnSK7R%2FaZnJ5cmdwB%2BST5SwpuCvsUjRTLFHcoOShNU9qhzKespGyhXKV8SPmBCpOKgUqcyjSVR6omqgmqe9RE1OrUnqkHqO9R%2F6FholGgsUZzgeYZLTUtL60WbS7tKh0OnQydXTpvdGV0O3S%2F6Gnopekt0ruhz6fvpl%2Bnv0n%2Fh4GdQYvBJUMhwwTDdYYvjFSM4oxmGd0zVjK2M84w3mYiYZJgssLkkqmO6TzTF2Z2ZjVmd8ylzP3MJ5lfsRCwcLJoszhhyWXpZdlhecZKxirHapbVPesF1ndsJGwCbBbZ%2FLA1sn1jZ2XXY3fFXsM%2Bz36V%2FS8HD4cGh2OOTI51ThJOK5zeOUs4OzmXOS9wPuUi4JLgss7lm2uU6zY3NrcSty1u39zN3Mvct7l%2F8xDzMPLw88jyaPM44ynkaeEZ59niucqLyUvPKwgAn3OqOQAAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAHjarZK9TgJBEMf%2Fd6CRaAyRhMLqCgsbL4ciglTGRPEjSiSKlnLycXJ86CEniU%2FhM9jYWPgIFkYfwd6nsDD%2Bd1mBIIUx3mZnfzs3MzszuwDCeIYG8UUwQxmAFgxxPeeuyxrmcaNYxzTuFAewi0fFQSTxqXgM11pC8TgS2oPiCUS1d8Uh8ofiSczpYcVT5LjiCPlY8Qui%2BncOr7D02y6%2FBTCrP%2Fm%2Bb5bdTrPi2I26Z9qNGtbRQBMdXMJBGRW0YOCecxEWYoiTCvxrYBunqHPdoX2bLOyrMKlZg8thDETw5K7Itci1TXlGy0124QRZZLDFU%2FexhxztMozlosTpMH6ZPge0L%2BOKGnFKjJ4WRwppHPL0PP3SI2P9jLQwFOu3GRhDfkeyDo%2F%2FG7IHgzllZQxLdquvrdCyBVvat3seJlYo06gxapUxhU2JWnFygR03sSxnEkvcpf5Y5eibGq315TDp7fKWm8zbUVl71Aqq%2FZtNnlkWmLnQtno9ycvXYbA6W2pF3aKfCayyC0Ja7Fr%2FPW70%2FHO4YM0OKxFvzf0C1MyPjwAAeNpt1VWUU2cYRuHsgxenQt1d8%2F3JOUnqAyR1d%2FcCLQVKO22pu7tQd3d3d3d3d3cXmGzumrWy3pWLs%2FNdPDMpZaWu1783l1Lpf14MnfzO6FbqVupfGkD30iR60JNe9KYP09CXfvRnAAMZxGCGMG3pW6ZjemZgKDMyEzMzC7MyG7MzB3MyF3MzD%2FMyH%2FOzAAuyEAuzCIuyGIuzBGWCRIUqOQU16jRYkqVYmmVYluVYng6GMZwRNGmxAiuyEiuzCquyGquzBmuyFmuzDuuyHuuzARuyERuzCZuyGZuzBVuyFVuzDduyHdszklGMZgd2ZAw7MZZxjGdnJrALu9LJbuzOHkxkT%2FZib%2FZhX%2FZjfw7gQA7iYA7hUA7jcI7gSI7iaI7hWI7jeE7gRE7iZE5hEqdyGqdzBmdyFmdzDudyHudzARdyERdzCZdyGZdzBVdyFVdzDddyHddzAzdyEzdzC7dyG7dzB3dyF3dzD%2FdyH%2FfzAA%2FyEA%2FzCI%2FyGI%2FzBE%2FyFE%2FzDM%2FyHM%2FzAi%2FyEi%2FzCq%2FyGq%2FzBm%2FyFm%2FzDu%2FyHu%2FzAR%2FyER%2FzCZ%2FyGZ%2FzBV%2FyFV%2FzDd%2FyHd%2FzAz%2FyEz%2FzC7%2FyG7%2FzB3%2FyF3%2FzD%2F9mpYwsy7pl3bMeWc%2BsV9Y765NNk%2FXN%2BmX9swHZwGxQNjgb0nPkmInjR0V7Uq%2FOsaPL5Y7ylE3l8tQNN7kVt%2BrmbuHW3LrbcDvam1rtzVvdm50TxrU%2FDBvRtZUY1rV5a3jXFn550Wo%2FXDNWK3dFmh7X9LimxzU9qulRTY9qelTTo5rlKLt2wk7YiaprL%2ByFvbAX9pK9ZC%2FZS%2FaSvWQv2Uv2kr1kr2KvYq9ir2KvYq9ir2KvYq9ir2Kvaq9qr2qvaq9qr2qvaq9qr2qvai%2B3l9vL7eX2cnu5vdxebi%2B3l9sr7BV2CjuFncJOYaewU9gp7NTs1LyrZq9mr2avZq9mr2avZq9mr26vbq9ur26vbq9ur26vbq9ur26vYa9hr2GvYa9hr2GvYa%2FR7oXuQ%2Feh%2B2j%2FUU7e3C3cqc%2FV3fYdof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D92H7kP3ofvQfeg%2BdB%2B6D92H7kP3ofvQfRT29B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6j6nuG3Ya7U5q%2F0hN3nCTW3Grbu4Wrs%2FrP%2Bk%2F6T%2FpP%2Bk%2F6T%2FpP%2Bk%2B6T7pPek86TzpPOk86TzpOuk66TrpOuk66TrpOlWmPu%2F36zrpOuk66TrpOuk66TrpOvl%2FPek76TvpO%2Bk76TvpO%2Bk76TvpO%2Bk76TvpO7V9t%2BqtVs%2FOaOURU6bo6PgPt6rZbwAAAAABVFDDFwAA%29%20format%28%27woff%27%29%2Curl%28data%3Aapplication%2Ffont%2Dsfnt%3Bbase64%2CAAEAAAAPAIAAAwBwRkZUTW0ql9wAAAD8AAAAHEdERUYBRAAEAAABGAAAACBPUy8yZ7lriQAAATgAAABgY21hcNqt44EAAAGYAAAGcmN2dCAAKAL4AAAIDAAAAARnYXNw%2F%2F8AAwAACBAAAAAIZ2x5Zn1dwm8AAAgYAACUpGhlYWQFTS%2FYAACcvAAAADZoaGVhCkQEEQAAnPQAAAAkaG10eNLHIGAAAJ0YAAADdGxvY2Fv%2B5XOAACgjAAAAjBtYXhwAWoA2AAAorwAAAAgbmFtZbMsoJsAAKLcAAADonBvc3S6o%2BU1AACmgAAACtF3ZWJmwxhUUAAAsVQAAAAGAAAAAQAAAADMPaLPAAAAANB2gXUAAAAA0HZzlwABAAAADgAAABgAAAAAAAIAAQABARYAAQAEAAAAAgAAAAMEiwGQAAUABAMMAtAAAABaAwwC0AAAAaQAMgK4AAAAAAUAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAFVLV04AQAAg%2F%2F8DwP8QAAAFFAB7AAAAAQAAAAAAAAAAAAAAIAABAAAABQAAAAMAAAAsAAAACgAAAdwAAQAAAAAEaAADAAEAAAAsAAMACgAAAdwABAGwAAAAaABAAAUAKAAgACsAoAClIAogLyBfIKwgvSISIxsl%2FCYBJvonCScP4APgCeAZ4CngOeBJ4FngYOBp4HngieCX4QnhGeEp4TnhRuFJ4VnhaeF54YnhleGZ4gbiCeIW4hniIeIn4jniSeJZ4mD4%2F%2F%2F%2FAAAAIAAqAKAApSAAIC8gXyCsIL0iEiMbJfwmASb6JwknD%2BAB4AXgEOAg4DDgQOBQ4GDgYuBw4IDgkOEB4RDhIOEw4UDhSOFQ4WDhcOGA4ZDhl%2BIA4gniEOIY4iHiI%2BIw4kDiUOJg%2BP%2F%2F%2F%2F%2Fj%2F9r%2FZv9i4Ajf5N%2B132nfWd4F3P3aHdoZ2SHZE9kOIB0gHCAWIBAgCiAEH%2F4f%2BB%2F3H%2FEf6x%2FlH3wfdh9wH2ofZB9jH10fVx9RH0sfRR9EHt4e3B7WHtUezh7NHsUevx65HrMIFQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAACjAAAAAAAAAA1AAAAIAAAACAAAAADAAAAKgAAACsAAAAEAAAAoAAAAKAAAAAGAAAApQAAAKUAAAAHAAAgAAAAIAoAAAAIAAAgLwAAIC8AAAATAAAgXwAAIF8AAAAUAAAgrAAAIKwAAAAVAAAgvQAAIL0AAAAWAAAiEgAAIhIAAAAXAAAjGwAAIxsAAAAYAAAl%2FAAAJfwAAAAZAAAmAQAAJgEAAAAaAAAm%2BgAAJvoAAAAbAAAnCQAAJwkAAAAcAAAnDwAAJw8AAAAdAADgAQAA4AMAAAAeAADgBQAA4AkAAAAhAADgEAAA4BkAAAAmAADgIAAA4CkAAAAwAADgMAAA4DkAAAA6AADgQAAA4EkAAABEAADgUAAA4FkAAABOAADgYAAA4GAAAABYAADgYgAA4GkAAABZAADgcAAA4HkAAABhAADggAAA4IkAAABrAADgkAAA4JcAAAB1AADhAQAA4QkAAAB9AADhEAAA4RkAAACGAADhIAAA4SkAAACQAADhMAAA4TkAAACaAADhQAAA4UYAAACkAADhSAAA4UkAAACrAADhUAAA4VkAAACtAADhYAAA4WkAAAC3AADhcAAA4XkAAADBAADhgAAA4YkAAADLAADhkAAA4ZUAAADVAADhlwAA4ZkAAADbAADiAAAA4gYAAADeAADiCQAA4gkAAADlAADiEAAA4hYAAADmAADiGAAA4hkAAADtAADiIQAA4iEAAADvAADiIwAA4icAAADwAADiMAAA4jkAAAD1AADiQAAA4kkAAAD%2FAADiUAAA4lkAAAEJAADiYAAA4mAAAAETAAD4%2FwAA%2BP8AAAEUAAH1EQAB9REAAAEVAAH2qgAB9qoAAAEWAAYCCgAAAAABAAABAAAAAAAAAAAAAAAAAAAAAQACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAEAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAL4AAAAAf%2F%2FAAIAAgAoAAABaAMgAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCxAwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIRElMxEjKAFA%2Fujw8AMg%2FOAoAtAAAQBkAGQETARMAFsAAAEyFh8BHgEdATc%2BAR8BFgYPATMyFhcWFRQGDwEOASsBFx4BDwEGJi8BFRQGBwYjIiYvAS4BPQEHDgEvASY2PwEjIiYnJjU0Nj8BPgE7AScuAT8BNhYfATU0Njc2AlgPJgsLCg%2BeBxYIagcCB57gChECBgMCAQIRCuCeBwIHaggWB54PCikiDyYLCwoPngcWCGoHAgee4AoRAgYDAgECEQrgngcCB2oIFgeeDwopBEwDAgECEQrgngcCB2oIFgeeDwopIg8mCwsKD54HFghqBwIHnuAKEQIGAwIBAhEK4J4HAgdqCBYHng8KKSIPJgsLCg%2BeBxYIagcCB57gChECBgAAAAABAAAAAARMBEwAIwAAATMyFhURITIWHQEUBiMhERQGKwEiJjURISImPQE0NjMhETQ2AcLIFR0BXhUdHRX%2Boh0VyBUd%2FqIVHR0VAV4dBEwdFf6iHRXIFR3%2BohUdHRUBXh0VyBUdAV4VHQAAAAABAHAAAARABEwARQAAATMyFgcBBgchMhYPAQ4BKwEVITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ASYnASY2OwEyHwEWMj8BNgM5%2BgoFCP6UBgUBDAoGBngGGAp9ARMKBgZ4BhgKfQ8LlAsP%2Fu0KBgZ4BhgKff7tCgYGeAYYCnYFBv6UCAUK%2BhkSpAgUCKQSBEwKCP6UBgwMCKAIDGQMCKAIDK4LDw8LrgwIoAgMZAwIoAgMDAYBbAgKEqQICKQSAAABAGQABQSMBK4AOwAAATIXFhcjNC4DIyIOAwchByEGFSEHIR4EMzI%2BAzUzBgcGIyInLgEnIzczNjcjNzM%2BATc2AujycDwGtSM0QDkXEys4MjAPAXtk%2FtQGAZZk%2FtQJMDlCNBUWOUA0I64eYmunznYkQgzZZHABBdpkhhQ%2BH3UErr1oaS1LMCEPCx4uTzJkMjJkSnRCKw8PIjBKK6trdZ4wqndkLzVkV4UljQAAAgB7AAAETASwAD4ARwAAASEyHgUVHAEVFA4FKwEHITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ARE0NhcRMzI2NTQmIwGsAV5DakIwFgwBAQwWMEJqQ7ICASAKBgZ4BhgKigsKlQoP%2FvUKBgZ4BhgKdf71CgYGeAYYCnUPtstALS1ABLAaJD8yTyokCwsLJCpQMkAlGmQMCKAIDK8LDg8KrwwIoAgMZAwIoAgMAdsKD8j%2B1EJWVEAAAAEAyAGQBEwCvAAPAAATITIWHQEUBiMhIiY9ATQ2%2BgMgFR0dFfzgFR0dArwdFcgVHR0VyBUdAAAAAgDIAAAD6ASwACUAQQAAARUUBisBFRQGBx4BHQEzMhYdASE1NDY7ATU0NjcuAT0BIyImPQEXFRQWFx4BFAYHDgEdASE1NCYnLgE0Njc%2BAT0BA%2BgdFTJjUVFjMhUd%2FOAdFTJjUVFjMhUdyEE3HCAgHDdBAZBBNxwgIBw3QQSwlhUdZFuVIyOVW5YdFZaWFR2WW5UjI5VbZB0VlshkPGMYDDI8MgwYYzyWljxjGAwyPDIMGGM8ZAAAAAEAAAAAAAAAAAAAAAAxAAAB%2F%2FIBLATCBEEAFgAAATIWFzYzMhYVFAYjISImNTQ2NyY1NDYB9261LCwueKqqeP0ST3FVQgLYBEF3YQ6teHmtclBFaw4MGZnXAAAAAgAAAGQEsASvABoAHgAAAB4BDwEBMzIWHQEhNTQ2OwEBJyY%2BARYfATc2AyEnAwL2IAkKiAHTHhQe%2B1AeFB4B1IcKCSAkCm9wCXoBebbDBLMTIxC7%2FRYlFSoqFSUC6rcQJBQJEJSWEPwecAIWAAAAAAQAAABkBLAETAALABcAIwA3AAATITIWBwEGIicBJjYXARYUBwEGJjURNDYJATYWFREUBicBJjQHARYGIyEiJjcBNjIfARYyPwE2MhkEfgoFCP3MCBQI%2FcwIBQMBCAgI%2FvgICgoDjAEICAoKCP74CFwBbAgFCvuCCgUIAWwIFAikCBQIpAgUBEwKCP3JCAgCNwgK2v74CBQI%2FvgIBQoCJgoF%2FvABCAgFCv3aCgUIAQgIFID%2BlAgKCggBbAgIpAgIpAgAAAAD%2F%2FD%2F8AS6BLoACQANABAAAAAyHwEWFA8BJzcTAScJAQUTA%2BAmDpkNDWPWXyL9mdYCZv4f%2FrNuBLoNmQ4mDlzWYP50%2FZrWAmb8anABTwAAAAEAAAAABLAEsAAPAAABETMyFh0BITU0NjsBEQEhArz6FR384B0V%2Bv4MBLACiv3aHRUyMhUdAiYCJgAAAAEADgAIBEwEnAAfAAABJTYWFREUBgcGLgE2NzYXEQURFAYHBi4BNjc2FxE0NgFwAoUnMFNGT4gkV09IQv2oWEFPiCRXT0hCHQP5ow8eIvzBN1EXGSltchkYEAIJm%2F2iKmAVGilucRoYEQJ%2FJioAAAACAAn%2F%2BAS7BKcAHQApAAAAMh4CFQcXFAcBFgYPAQYiJwEGIycHIi4CND4BBCIOARQeATI%2BATQmAZDItoNOAQFOARMXARY7GikT%2Fu13jgUCZLaDTk6DAXKwlFZWlLCUVlYEp06DtmQCBY15%2Fu4aJRg6FBQBEk0BAU6Dtsi2g1tWlLCUVlaUsJQAAQBkAFgErwREABkAAAE%2BAh4CFRQOAwcuBDU0PgIeAQKJMHt4dVg2Q3mEqD4%2Bp4V4Qzhadnh5A7VESAUtU3ZAOXmAf7JVVbJ%2FgHk5QHZTLQVIAAAAAf%2FTAF4EewSUABgAAAETNjIXEyEyFgcFExYGJyUFBiY3EyUmNjMBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAyABYRMT%2Fp8RDPn%2BbxQLDPb3DAsUAZD7DBEAAv%2FTAF4EewSUABgAIgAAARM2MhcTITIWBwUTFgYnJQUGJjcTJSY2MwUjFwc3Fyc3IycBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAfPwxUrBw0rA6k4DIAFhExP%2BnxEM%2Bf5vFAsM9vcMCxQBkPsMEWSO4ouM5YzTAAABAAAAAASwBLAAJgAAATIWHQEUBiMVFBYXBR4BHQEUBiMhIiY9ATQ2NyU%2BAT0BIiY9ATQ2Alh8sD4mDAkBZgkMDwr7ggoPDAkBZgkMJj6wBLCwfPouaEsKFwbmBRcKXQoPDwpdChcF5gYXCktoLvp8sAAAAA0AAAAABLAETAAPABMAIwAnACsALwAzADcARwBLAE8AUwBXAAATITIWFREUBiMhIiY1ETQ2FxUzNSkBIgYVERQWMyEyNjURNCYzFTM1BRUzNSEVMzUFFTM1IRUzNQchIgYVERQWMyEyNjURNCYFFTM1IRUzNQUVMzUhFTM1GQR%2BCg8PCvuCCg8PVWQCo%2F3aCg8PCgImCg8Pc2T8GGQDIGT8GGQDIGTh%2FdoKDw8KAiYKDw%2F872QDIGT8GGQDIGQETA8K%2B%2BYKDw8KBBoKD2RkZA8K%2FqIKDw8KAV4KD2RkyGRkZGTIZGRkZGQPCv6iCg8PCgFeCg9kZGRkZMhkZGRkAAAEAAAAAARMBEwADwAfAC8APwAAEyEyFhURFAYjISImNRE0NikBMhYVERQGIyEiJjURNDYBITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NjIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR39vQGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHQRMHRX%2BcBUdHRUBkBUdHRX%2BcBUdHRUBkBUd%2FagdFf5wFR0dFQGQFR0dFf5wFR0dFQGQFR0AAAkAAAAABEwETAAPAB8ALwA%2FAE8AXwBvAH8AjwAAEzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2MsgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR0ETB0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHf5wHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0ABgAAAAAEsARMAA8AHwAvAD8ATwBfAAATMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYyyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHQRMHRXIFR0dFcgVHR0VyBUdHRXIFR3%2BcB0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHQAAAAABACYALAToBCAAFwAACQE2Mh8BFhQHAQYiJwEmND8BNjIfARYyAdECOwgUB7EICPzxBxUH%2FoAICLEHFAirBxYB3QI7CAixBxQI%2FPAICAGACBQHsQgIqwcAAQBuAG4EQgRCACMAAAEXFhQHCQEWFA8BBiInCQEGIi8BJjQ3CQEmND8BNjIXCQE2MgOIsggI%2FvUBCwgIsggVB%2F70%2FvQHFQiyCAgBC%2F71CAiyCBUHAQwBDAcVBDuzCBUH%2FvT%2B9AcVCLIICAEL%2FvUICLIIFQcBDAEMBxUIsggI%2FvUBDAcAAwAX%2F%2BsExQSZABkAJQBJAAAAMh4CFRQHARYUDwEGIicBBiMiLgI0PgEEIg4BFB4BMj4BNCYFMzIWHQEzMhYdARQGKwEVFAYrASImPQEjIiY9ATQ2OwE1NDYBmcSzgk1OASwICG0HFQj%2B1HeOYrSBTU2BAW%2BzmFhYmLOZWFj%2BvJYKD0sKDw8KSw8KlgoPSwoPDwpLDwSZTYKzYo15%2FtUIFQhsCAgBK01NgbTEs4JNWJmzmFhYmLOZIw8KSw8KlgoPSwoPDwpLDwqWCg9LCg8AAAMAF%2F%2FrBMUEmQAZACUANQAAADIeAhUUBwEWFA8BBiInAQYjIi4CND4BBCIOARQeATI%2BATQmBSEyFh0BFAYjISImPQE0NgGZxLOCTU4BLAgIbQcVCP7Ud45itIFNTYEBb7OYWFiYs5lYWP5YAV4KDw8K%2FqIKDw8EmU2Cs2KNef7VCBUIbAgIAStNTYG0xLOCTViZs5hYWJizmYcPCpYKDw8KlgoPAAAAAAIAFwAXBJkEsAAPAC0AAAEzMhYVERQGKwEiJjURNDYFNRYSFRQOAiIuAjU0EjcVDgEVFB4BMj4BNTQmAiZkFR0dFWQVHR0BD6fSW5vW6tabW9KnZ3xyxejFcnwEsB0V%2FnAVHR0VAZAVHeGmPv7ZuHXWm1tbm9Z1uAEnPqY3yHh0xXJyxXR4yAAEAGQAAASwBLAADwAfAC8APwAAATMyFhURFAYrASImNRE0NgEzMhYVERQGKwEiJjURNDYBMzIWFREUBisBIiY1ETQ2BTMyFh0BFAYrASImPQE0NgQBlgoPDwqWCg8P%2Ft6WCg8PCpYKDw%2F%2B3pYKDw8KlgoPD%2F7elgoPDwqWCg8PBLAPCvuCCg8PCgR%2BCg%2F%2BcA8K%2FRIKDw8KAu4KD%2F7UDwr%2BPgoPDwoBwgoPyA8K%2BgoPDwr6Cg8AAAAAAgAaABsElgSWAEcATwAAATIfAhYfATcWFwcXFh8CFhUUDwIGDwEXBgcnBwYPAgYjIi8CJi8BByYnNycmLwImNTQ%2FAjY%2FASc2Nxc3Nj8CNhIiBhQWMjY0AlghKSYFMS0Fhj0rUAMZDgGYBQWYAQ8YA1AwOIYFLDIFJisfISkmBTEtBYY8LFADGQ0ClwYGlwINGQNQLzqFBS0xBSYreLJ%2BfrJ%2BBJYFmAEOGQJQMDmGBSwxBiYrHiIoJgYxLAWGPSxRAxkOApcFBZcCDhkDUTA5hgUtMAYmKiAhKCYGMC0Fhj0sUAIZDgGYBf6ZfrF%2BfrEABwBkAAAEsAUUABMAFwAhACUAKQAtADEAAAEhMhYdASEyFh0BITU0NjMhNTQ2FxUhNQERFAYjISImNREXETMRMxEzETMRMxEzETMRAfQBLCk7ARMKD%2Fu0DwoBEzspASwBLDsp%2FUQpO2RkZGRkZGRkBRQ7KWQPCktLCg9kKTtkZGT%2B1PzgKTs7KQMgZP1EArz9RAK8%2FUQCvP1EArwAAQAMAAAFCATRAB8AABMBNjIXARYGKwERFAYrASImNREhERQGKwEiJjURIyImEgJsCBUHAmAIBQqvDwr6Cg%2F%2B1A8K%2BgoPrwoFAmoCYAcH%2FaAICv3BCg8PCgF3%2FokKDw8KAj8KAAIAZAAAA%2BgEsAARABcAAAERFBYzIREUBiMhIiY1ETQ2MwEjIiY9AQJYOykBLB0V%2FOAVHR0VA1L6FR0EsP5wKTv9dhUdHRUETBUd%2FnAdFfoAAwAXABcEmQSZAA8AGwAwAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBTMyFhURMzIWHQEUBisBIiY1ETQ2AePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnL%2BfDIKD68KDw8K%2BgoPDwSZW5vW6tabW1ub1urWmztyxejFcnLF6MUNDwr%2B7Q8KMgoPDwoBXgoPAAAAAAL%2FnAAABRQEsAALAA8AACkBAyMDIQEzAzMDMwEDMwMFFP3mKfIp%2FeYBr9EVohTQ%2Fp4b4BsBkP5wBLD%2B1AEs%2FnD%2B1AEsAAAAAAIAZAAABLAEsAAVAC8AAAEzMhYVETMyFgcBBiInASY2OwERNDYBMzIWFREUBiMhIiY1ETQ2OwEyFh0BITU0NgImyBUdvxQLDf65DSYN%2FrkNCxS%2FHQJUMgoPDwr75goPDwoyCg8DhA8EsB0V%2Fj4XEP5wEBABkBAXAcIVHfzgDwr%2BogoPDwoBXgoPDwqvrwoPAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUzMhYVETMyFgcDBiInAyY2OwERNDYB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv58lgoPiRUKDd8NJg3fDQoViQ8EmVub1urWm1tbm9bq1ps7csXoxXJyxejFDQ8K%2Fu0XEP7tEBABExAXARMKDwAAAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiUTFgYrAREUBisBIiY1ESMiJjcTNjIB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv7n3w0KFYkPCpYKD4kVCg3fDSYEmVub1urWm1tbm9bq1ps7csXoxXJyxejFAf7tEBf%2B7QoPDwoBExcQARMQAAAAAAIAAAAABLAEsAAZADkAABMhMhYXExYVERQGBwYjISImJyY1EzQ3Ez4BBSEiBgcDBhY7ATIWHwEeATsBMjY%2FAT4BOwEyNicDLgHhAu4KEwO6BwgFDBn7tAweAgYBB7kDEwKX%2FdQKEgJXAgwKlgoTAiYCEwr6ChMCJgITCpYKDAJXAhIEsA4K%2FXQYGf5XDB4CBggEDRkBqRkYAowKDsgOC%2F4%2BCw4OCpgKDg4KmAoODgsBwgsOAAMAFwAXBJkEmQAPABsAJwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUXFhQPAQYmNRE0NgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJy%2Fov9ERH9EBgYBJlbm9bq1ptbW5vW6tabO3LF6MVycsXoxV2%2BDCQMvgwLFQGQFQsAAQAXABcEmQSwACgAAAE3NhYVERQGIyEiJj8BJiMiDgEUHgEyPgE1MxQOAiIuAjQ%2BAjMyA7OHBwsPCv6WCwQHhW2BdMVycsXoxXKWW5vW6tabW1ub1nXABCSHBwQL%2FpYKDwsHhUxyxejFcnLFdHXWm1tbm9bq1ptbAAAAAAIAFwABBJkEsAAaADUAAAE3NhYVERQGIyEiJj8BJiMiDgEVIzQ%2BAjMyEzMUDgIjIicHBiY1ETQ2MyEyFg8BFjMyPgEDs4cHCw8L%2FpcLBAeGboF0xXKWW5vWdcDrllub1nXAnIYHCw8LAWgKBQiFboJ0xXIEJIcHBAv%2BlwsPCweGS3LFdHXWm1v9v3XWm1t2hggFCgFoCw8LB4VMcsUAAAAKAGQAAASwBLAADwAfAC8APwBPAF8AbwB%2FAI8AnwAAEyEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0NgczMhYdARQGKwEiJj0BNDYzITIWHQEUBiMhIiY9ATQ2BzMyFh0BFAYrASImPQE0NjMhMhYdARQGIyEiJj0BNDYHMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0Nn0EGgoPDwr75goPDwPA%2FK4KDw8KA1IKDw%2F9CDIKDw8KMgoPD9IBwgoPDwr%2BPgoPD74yCg8PCjIKDw%2FSAcIKDw8K%2Fj4KDw%2B%2BMgoPDwoyCg8P0gHCCg8PCv4%2BCg8PvjIKDw8KMgoPD9IBwgoPDwr%2BPgoPDwSwDwr7ggoPDwoEfgoPyA8K%2FK4KDw8KA1IKD2QPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKDwAAAAACAAAAAARMBLAAGQAjAAABNTQmIyEiBh0BIyIGFREUFjMhMjY1ETQmIyE1NDY7ATIWHQEDhHVT%2FtRSdmQpOzspA4QpOzsp%2FageFMgUHgMgyFN1dlLIOyn9qCk7OykCWCk7lhUdHRWWAAIAZAAABEwETAAJADcAABMzMhYVESMRNDYFMhcWFREUBw4DIyIuAScuAiMiBwYjIicmNRE%2BATc2HgMXHgIzMjc2fTIKD2QPA8AEBRADIUNAMRwaPyonKSxHHlVLBwgGBQ4WeDsXKC4TOQQpLUUdZ1AHBEwPCvvNBDMKDzACBhH%2BWwYGO1AkDQ0ODg8PDzkFAwcPAbY3VwMCAwsGFAEODg5XCAAAAwAAAAAEsASXACEAMQBBAAAAMh4CFREUBisBIiY1ETQuASAOARURFAYrASImNRE0PgEDMzIWFREUBisBIiY1ETQ2ITMyFhURFAYrASImNRE0NgHk6N6jYw8KMgoPjeT%2B%2BuSNDwoyCg9joyqgCAwMCKAIDAwCYKAIDAwIoAgMDASXY6PedP7UCg8PCgEsf9FyctF%2F%2FtQKDw8KASx03qP9wAwI%2FjQIDAwIAcwIDAwI%2FjQIDAwIAcwIDAAAAAACAAAA0wRHA90AFQA5AAABJTYWFREUBiclJisBIiY1ETQ2OwEyBTc2Mh8BFhQPARcWFA8BBiIvAQcGIi8BJjQ%2FAScmND8BNjIXAUEBAgkMDAn%2B%2FhUZ%2BgoPDwr6GQJYeAcUByIHB3h4BwciBxQHeHgHFAciBwd3dwcHIgcUBwMurAYHCv0SCgcGrA4PCgFeCg%2BEeAcHIgcUB3h4BxQHIgcHd3cHByIHFAd4eAcUByIICAAAAAACAAAA0wNyA90AFQAvAAABJTYWFREUBiclJisBIiY1ETQ2OwEyJTMWFxYVFAcGDwEiLwEuATc2NTQnJjY%2FATYBQQECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcDLqwGBwr9EgoHBqwODwoBXgoPZAEJgaGafwkBAQYXBxMIZ36EaggUBxYFAAAAAAMAAADEBGID7AAbADEASwAAATMWFxYVFAYHBgcjIi8BLgE3NjU0JicmNj8BNgUlNhYVERQGJyUmKwEiJjURNDY7ATIlMxYXFhUUBwYPASIvAS4BNzY1NCcmNj8BNgPHAwsGh0RABwoDCQcqCAIGbzs3BgIJKgf9ggECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcD7AEJs9lpy1QJAQYiBhQIlrJarEcJFAYhBb6sBgcK%2FRIKBwasDg8KAV4KD2QBCYGhmn8JAQEGFwcTCGd%2BhGoIFQYWBQAAAAANAAAAAASwBLAACQAVABkAHQAhACUALQA7AD8AQwBHAEsATwAAATMVIxUhFSMRIQEjFTMVIREjESM1IQURIREhESERBSM1MwUjNTMBMxEhETM1MwEzFSMVIzUjNTM1IzUhBREhEQcjNTMFIzUzASM1MwUhNSEB9GRk%2FnBkAfQCvMjI%2FtTIZAJY%2B7QBLAGQASz84GRkArxkZP1EyP4MyGQB9MhkyGRkyAEs%2FUQBLGRkZAOEZGT%2BDGRkAfT%2B1AEsA4RkZGQCWP4MZMgBLAEsyGT%2B1AEs%2FtQBLMhkZGT%2BDP4MAfRk%2FtRkZGRkyGTI%2FtQBLMhkZGT%2B1GRkZAAAAAAJAAAAAASwBLAAAwAHAAsADwATABcAGwAfACMAADcjETMTIxEzASMRMxMjETMBIxEzASE1IRcjNTMXIzUzBSM1M2RkZMhkZAGQyMjIZGQBLMjI%2FOD%2B1AEsyGRkyGRkASzIyMgD6PwYA%2Bj8GAPo%2FBgD6PwYA%2Bj7UGRkW1tbW1sAAAIAAAAKBKYEsAANABUAAAkBFhQHAQYiJwETNDYzBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAUM7Uzs7UzsEsP1WCBQI%2FjAICAKqAdsKD807O1Q7OwAAAAADAAAACgXSBLAADQAZACEAAAkBFhQHAQYiJwETNDYzIQEWFAcBBiIvAQkBBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAwYCqggI%2FjAIFAg4Aaj9RP7TO1M7O1M7BLD9VggUCP4wCAgCqgHbCg%2F9VggUCP4wCAg4AaoCvM07O1Q7OwAAAAABAGQAAASwBLAAJgAAASEyFREUDwEGJjURNCYjISIPAQYWMyEyFhURFAYjISImNRE0PwE2ASwDOUsSQAgKDwr9RBkSQAgFCgK8Cg8PCvyuCg8SixIEsEv8fBkSQAgFCgO2Cg8SQAgKDwr8SgoPDwoDzxkSixIAAAABAMj%2F%2FwRMBLAACgAAEyEyFhURCQERNDb6AyAVHf4%2B%2Fj4dBLAdFfuCAbz%2BQwR%2FFR0AAAAAAwAAAAAEsASwABUARQBVAAABISIGBwMGHwEeATMhMjY%2FATYnAy4BASMiBg8BDgEjISImLwEuASsBIgYVERQWOwEyNj0BNDYzITIWHQEUFjsBMjY1ETQmASEiBg8BBhYzITI2LwEuAQM2%2FkQLEAFOBw45BhcKAcIKFwY%2BDgdTARABVpYKFgROBBYK%2FdoKFgROBBYKlgoPDwqWCg8PCgLuCg8PCpYKDw%2F%2Bsf4MChMCJgILCgJYCgsCJgITBLAPCv7TGBVsCQwMCWwVGAEtCg%2F%2BcA0JnAkNDQmcCQ0PCv12Cg8PCpYKDw8KlgoPDwoCigoP%2FagOCpgKDg4KmAoOAAAAAAQAAABkBLAETAAdACEAKQAxAAABMzIeAh8BMzIWFREUBiMhIiY1ETQ2OwE%2BBAEVMzUEIgYUFjI2NCQyFhQGIiY0AfTIOF00JAcGlik7Oyn8GCk7OymWAgknM10ByGT%2Bz76Hh76H%2Fu9WPDxWPARMKTs7FRQ7Kf2oKTs7KQJYKTsIG0U1K%2F7UZGRGh76Hh74IPFY8PFYAAAAAAgA1AAAEsASvACAAIwAACQEWFx4BHwEVITUyNi8BIQYHBh4CMxUhNTY3PgE%2FAQEDIQMCqQGBFCgSJQkK%2Fl81LBFS%2Fnk6IgsJKjIe%2FpM4HAwaBwcBj6wBVKIEr%2FwaMioTFQECQkJXLd6RWSIuHAxCQhgcDCUNDQPu%2FVoByQAAAAADAGQAAAPwBLAAJwAyADsAAAEeBhUUDgMjITU%2BATURNC4EJzUFMh4CFRQOAgclMzI2NTQuAisBETMyNjU0JisBAvEFEzUwOyodN1htbDD%2BDCk7AQYLFyEaAdc5dWM%2BHy0tEP6Pi05pESpTPnbYUFJ9Xp8CgQEHGB0zOlIuQ3VONxpZBzMoAzsYFBwLEAkHRwEpSXNDM1s6KwkxYUopOzQb%2FK5lUFqBAAABAMgAAANvBLAAGQAAARcOAQcDBhYXFSE1NjcTNjQuBCcmJzUDbQJTQgeECSxK%2Fgy6Dq0DAw8MHxUXDQYEsDkTNSj8uTEoBmFhEFIDQBEaExAJCwYHAwI5AAAAAAL%2FtQAABRQEsAAlAC8AAAEjNC4FKwERFBYfARUhNTI%2BAzURIyIOBRUjESEFIxEzByczESM3BRQyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj7m0tLfX1LS30DhBUgFQ4IAwH8rhYZAQJkZAEFCRUOA1IBAwgOFSAVASzI%2FOCnpwMgpwACACH%2FtQSPBLAAJQAvAAABIzQuBSsBERQWHwEVITUyPgM1ESMiDgUVIxEhEwc1IRUnNxUhNQRMMggLGRMmGBnIMhkZ%2FnAEDiIaFsgZGCYTGQsIMgPoQ6f84KenAyADhBUgFQ4IAwH9dhYZAQJkZAEFCRUOAooBAwgOFSAVASz7gn1LS319S0sABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyAlgVHR0V%2FagVHR0VA%2BgVHR0V%2FBgVHR0VAyAVHR0V%2FOAVHR0VBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYDITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NgMhMhYdARQGIyEiJj0BNDb6ArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR3dArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AAAE1NDYzITIWHQEUBiMhIiYBNTQ2MyEyFh0BFAYjISImEzU0NjMhMhYdARQGIyEiJgE1NDYzITIWHQEUBiMhIiYB9B0VAlgVHR0V%2FagVHf5wHRUD6BUdHRX8GBUdyB0VAyAVHR0V%2FOAVHf7UHRUETBUdHRX7tBUdA7ZkFR0dFWQVHR3%2B6WQVHR0VZBUdHf7pZBUdHRVkFR0d%2FulkFR0dFWQVHR0AAAQAAAAABLAETAAPAB8ALwA%2FAAATITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2MgRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dBEwdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAgAAAAABLAETAAPAB8ALwA%2FAE8AXwBvAH8AABMzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2MmQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR0ETB0VZBUdHRVkFR0dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdHRVkFR0dFWQVHf7UHRVkFR0dFWQVHR0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0dFWQVHR0VZBUdAAAG%2F5wAAASwBEwAAwATACMAKgA6AEoAACEjETsCMhYdARQGKwEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2BQc1IzUzNQUhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2AZBkZJZkFR0dFWQVHR0VAfQVHR0V%2FgwVHR3%2B%2BqfIyAHCASwVHR0V%2FtQVHR0VAlgVHR0V%2FagVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR36fUtkS68dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAAABgAAAAAFFARMAA8AEwAjACoAOgBKAAATMzIWHQEUBisBIiY9ATQ2ASMRMwEhMhYdARQGIyEiJj0BNDYFMxUjFSc3BSEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyZBUdHRVkFR0dA2dkZPyuAfQVHR0V%2FgwVHR0EL8jIp6f75gEsFR0dFf7UFR0dFQJYFR0dFf2oFR0dBEwdFWQVHR0VZBUd%2B7QETP7UHRVkFR0dFWQVHchkS319rx0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0AAAAAAgAAAMgEsAPoAA8AEgAAEyEyFhURFAYjISImNRE0NgkCSwLuHywsH%2F0SHywsBIT%2B1AEsA%2BgsH%2F12HywsHwKKHyz9RAEsASwAAwAAAAAEsARMAA8AFwAfAAATITIWFREUBiMhIiY1ETQ2FxE3BScBExEEMhYUBiImNCwEWBIaGhL7qBIaGkr3ASpKASXs%2FNJwTk5wTgRMGhL8DBIaGhID9BIaZP0ftoOcAT7%2B4AH0dE5vT09vAAAAAAIA2wAFBDYEkQAWAB4AAAEyHgEVFAcOAQ8BLgQnJjU0PgIWIgYUFjI2NAKIdcZzRkWyNjYJIV5YbSk8RHOft7eCgreCBJF4ynVzj23pPz4IIWZomEiEdVijeUjDgriBgbgAAAACABcAFwSZBJkADwAXAAAAMh4CFA4CIi4CND4BAREiDgEUHgEB4%2BrWm1tbm9bq1ptbW5sBS3TFcnLFBJlbm9bq1ptbW5vW6tab%2FG8DVnLF6MVyAAACAHUAAwPfBQ8AGgA1AAABHgYVFA4DBy4DNTQ%2BBQMOAhceBBcWNj8BNiYnLgInJjc2IyYCKhVJT1dOPiUzVnB9P1SbfEokP0xXUEm8FykoAwEbITEcExUWAgYCCQkFEikMGiACCAgFD0iPdXdzdYdFR4BeRiYEBTpjl1lFh3ZzeHaQ%2Ff4hS4I6JUEnIw4IBwwQIgoYBwQQQSlZtgsBAAAAAwAAAAAEywRsAAwAKgAvAAABNz4CHgEXHgEPAiUhMhcHISIGFREUFjMhMjY9ATcRFAYjISImNRE0NgkBBzcBA%2BhsAgYUFR0OFgoFBmz9BQGQMje7%2FpApOzspAfQpO8i7o%2F5wpbm5Azj%2BlqE3AWMD9XMBAgIEDw4WKgsKc8gNuzsp%2FgwpOzsptsj%2BtKW5uaUBkKW5%2Ftf%2BljKqAWMAAgAAAAAEkwRMABsANgAAASEGByMiBhURFBYzITI2NTcVFAYjISImNRE0NgUBFhQHAQYmJzUmDgMHPgY3NT4BAV4BaaQ0wyk7OykB9Ck7yLml%2FnClubkCfwFTCAj%2BrAcLARo5ZFRYGgouOUlARioTAQsETJI2Oyn%2BDCk7OymZZ6W5uaUBkKW5G%2F7TBxUH%2Fs4GBAnLAQINFjAhO2JBNB0UBwHSCgUAAAAAAgAAAAAEnQRMAB0ANQAAASEyFwchIgYVERQWMyEyNj0BNxUUBiMhIiY1ETQ2CQE2Mh8BFhQHAQYiLwEmND8BNjIfARYyAV4BXjxDsv6jKTs7KQH0KTvIuaX%2BcKW5uQHKAYsHFQdlBwf97QcVB%2FgHB2UHFQdvCBQETBexOyn%2BDCk7OylFyNulubmlAZCluf4zAYsHB2UHFQf97AcH%2BAcVB2UHB28HAAAAAQAKAAoEpgSmADsAAAkBNjIXARYGKwEVMzU0NhcBFhQHAQYmPQEjFTMyFgcBBiInASY2OwE1IxUUBicBJjQ3ATYWHQEzNSMiJgE%2BAQgIFAgBBAcFCqrICggBCAgI%2FvgICsiqCgUH%2FvwIFAj%2B%2BAgFCq%2FICgj%2B%2BAgIAQgICsivCgUDlgEICAj%2B%2BAgKyK0KBAf%2B%2FAcVB%2F73BwQKrcgKCP74CAgBCAgKyK0KBAcBCQcVBwEEBwQKrcgKAAEAyAAAA4QETAAZAAATMzIWFREBNhYVERQGJwERFAYrASImNRE0NvpkFR0B0A8VFQ%2F%2BMB0VZBUdHQRMHRX%2BSgHFDggV%2FBgVCA4Bxf5KFR0dFQPoFR0AAAABAAAAAASwBEwAIwAAEzMyFhURATYWFREBNhYVERQGJwERFAYnAREUBisBIiY1ETQ2MmQVHQHQDxUB0A8VFQ%2F%2BMBUP%2FjAdFWQVHR0ETB0V%2FkoBxQ4IFf5KAcUOCBX8GBUIDgHF%2FkoVCA4Bxf5KFR0dFQPoFR0AAAABAJ0AGQSwBDMAFQAAAREUBicBERQGJwEmNDcBNhYVEQE2FgSwFQ%2F%2BMBUP%2FhQPDwHsDxUB0A8VBBr8GBUIDgHF%2FkoVCA4B4A4qDgHgDggV%2FkoBxQ4IAAAAAQDIABYEMwQ2AAsAABMBFhQHAQYmNRE0NvMDLhIS%2FNISGRkEMv4OCx4L%2Fg4LDhUD6BUOAAIAyABkA4QD6AAPAB8AABMzMhYVERQGKwEiJjURNDYhMzIWFREUBisBIiY1ETQ2%2BsgVHR0VyBUdHQGlyBUdHRXIFR0dA%2BgdFfzgFR0dFQMgFR0dFfzgFR0dFQMgFR0AAAEAyABkBEwD6AAPAAABERQGIyEiJjURNDYzITIWBEwdFfzgFR0dFQMgFR0DtvzgFR0dFQMgFR0dAAAAAAEAAAAZBBMEMwAVAAABETQ2FwEWFAcBBiY1EQEGJjURNDYXAfQVDwHsDw%2F%2BFA8V%2FjAPFRUPAmQBthUIDv4gDioO%2FiAOCBUBtv47DggVA%2BgVCA4AAAH%2F%2FgACBLMETwAjAAABNzIWFRMUBiMHIiY1AwEGJjUDAQYmNQM0NhcBAzQ2FwEDNDYEGGQUHgUdFWQVHQL%2BMQ4VAv4yDxUFFQ8B0gIVDwHSAh0ETgEdFfwYFR0BHRUBtf46DwkVAbX%2BOQ4JFAPoFQkP%2Fj4BthQJDv49AbYVHQAAAQEsAAAD6ARMABkAAAEzMhYVERQGKwEiJjURAQYmNRE0NhcBETQ2A1JkFR0dFWQVHf4wDxUVDwHQHQRMHRX8GBUdHRUBtv47DggVA%2BgVCA7%2BOwG2FR0AAAIAZADIBLAESAALABsAAAkBFgYjISImNwE2MgEhMhYdARQGIyEiJj0BNDYCrgH1DwkW%2B%2B4WCQ8B9Q8q%2FfcD6BUdHRX8GBUdHQQ5%2FeQPFhYPAhwP%2FUgdFWQVHR0VZBUdAAEAiP%2F8A3UESgAFAAAJAgcJAQN1%2FqABYMX92AIoA4T%2Bn%2F6fxgIoAiYAAAAAAQE7%2F%2FwEKARKAAUAAAkBJwkBNwQo%2FdnGAWH%2Bn8YCI%2F3ZxgFhAWHGAAIAFwAXBJkEmQAPADMAAAAyHgIUDgIiLgI0PgEFIyIGHQEjIgYdARQWOwEVFBY7ATI2PQEzMjY9ATQmKwE1NCYB4%2BrWm1tbm9bq1ptbW5sBfWQVHZYVHR0Vlh0VZBUdlhUdHRWWHQSZW5vW6tabW1ub1urWm7odFZYdFWQVHZYVHR0Vlh0VZBUdlhUdAAAAAAIAFwAXBJkEmQAPAB8AAAAyHgIUDgIiLgI0PgEBISIGHQEUFjMhMjY9ATQmAePq1ptbW5vW6tabW1ubAkX%2BDBUdHRUB9BUdHQSZW5vW6tabW1ub1urWm%2F5%2BHRVkFR0dFWQVHQACABcAFwSZBJkADwAzAAAAMh4CFA4CIi4CND4BBCIPAScmIg8BBhQfAQcGFB8BFjI%2FARcWMj8BNjQvATc2NC8BAePq1ptbW5vW6tabW1ubAeUZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0JCXh4CQmNBJlbm9bq1ptbW5vW6tabrQl4eAkJjQkZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0AAgAXABcEmQSZAA8AJAAAADIeAhQOAiIuAjQ%2BAQEnJiIPAQYUHwEWMjcBNjQvASYiBwHj6tabW1ub1urWm1tbmwEVVAcVCIsHB%2FIHFQcBdwcHiwcVBwSZW5vW6tabW1ub1urWm%2F4xVQcHiwgUCPEICAF3BxUIiwcHAAAAAAMAFwAXBJkEmQAPADsASwAAADIeAhQOAiIuAjQ%2BAQUiDgMVFDsBFjc%2BATMyFhUUBgciDgUHBhY7ATI%2BAzU0LgMTIyIGHQEUFjsBMjY9ATQmAePq1ptbW5vW6tabW1ubAT8dPEIyIRSDHgUGHR8UFw4TARkOGhITDAIBDQ6tBx4oIxgiM0Q8OpYKDw8KlgoPDwSZW5vW6tabW1ub1urWm5ELHi9PMhkFEBQQFRIXFgcIBw4UHCoZCBEQKDhcNi9IKhsJ%2FeMPCpYKDw8KlgoPAAADABcAFwSZBJkADwAfAD4AAAAyHgIUDgIiLgI0PgEFIyIGHQEUFjsBMjY9ATQmAyMiBh0BFBY7ARUjIgYdARQWMyEyNj0BNCYrARE0JgHj6tabW1ub1urWm1tbmwGWlgoPDwqWCg8PCvoKDw8KS0sKDw8KAV4KDw8KSw8EmVub1urWm1tbm9bq1ptWDwqWCg8PCpYKD%2F7UDwoyCg%2FIDwoyCg8PCjIKDwETCg8AAgAAAAAEsASwAC8AXwAAATMyFh0BHgEXMzIWHQEUBisBDgEHFRQGKwEiJj0BLgEnIyImPQE0NjsBPgE3NTQ2ExUUBisBIiY9AQ4BBzMyFh0BFAYrAR4BFzU0NjsBMhYdAT4BNyMiJj0BNDY7AS4BAg2WCg9nlxvCCg8PCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw%2B5DwqWCg9EZheoCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmBLAPCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw8KlgoPZ5cbwgoP%2Fs2oCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmRA8KlgoPRGYAAwAXABcEmQSZAA8AGwA%2FAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBxcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyAePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnKaQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwdABxUHfHwHFQSZW5vW6tabW1ub1urWmztyxejFcnLF6MVaQAcVB3x8BxUHQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwAAAAMAFwAXBJkEmQAPABsAMAAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcXFhQHAQYiLwEmND8BNjIfATc2MgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJyg2oHB%2F7ACBQIyggIagcVB0%2FFBxUEmVub1urWm1tbm9bq1ps7csXoxXJyxejFfWoHFQf%2BvwcHywcVB2oICE%2FFBwAAAAMAFwAXBJkEmQAPABgAIQAAADIeAhQOAiIuAjQ%2BAQUiDgEVFBcBJhcBFjMyPgE1NAHj6tabW1ub1urWm1tbmwFLdMVyQQJLafX9uGhzdMVyBJlbm9bq1ptbW5vW6tabO3LFdHhpAktB0P24PnLFdHMAAAAAAQAXAFMEsAP5ABUAABMBNhYVESEyFh0BFAYjIREUBicBJjQnAgoQFwImFR0dFf3aFxD99hACRgGrDQoV%2Ft0dFcgVHf7dFQoNAasNJgAAAAABAAAAUwSZA%2FkAFQAACQEWFAcBBiY1ESEiJj0BNDYzIRE0NgJ%2FAgoQEP32EBf92hUdHRUCJhcD8f5VDSYN%2FlUNChUBIx0VyBUdASMVCgAAAAEAtwAABF0EmQAVAAAJARYGIyERFAYrASImNREhIiY3ATYyAqoBqw0KFf7dHRXIFR3%2B3RUKDQGrDSYEif32EBf92hUdHRUCJhcQAgoQAAAAAQC3ABcEXQSwABUAAAEzMhYVESEyFgcBBiInASY2MyERNDYCJsgVHQEjFQoN%2FlUNJg3%2BVQ0KFQEjHQSwHRX92hcQ%2FfYQEAIKEBcCJhUdAAABAAAAtwSZBF0AFwAACQEWFAcBBiY1EQ4DBz4ENxE0NgJ%2FAgoQEP32EBdesKWBJAUsW4fHfhcEVf5VDSYN%2FlUNChUBIwIkRHVNabGdcUYHAQYVCgACAAAAAASwBLAAFQArAAABITIWFREUBi8BBwYiLwEmND8BJyY2ASEiJjURNDYfATc2Mh8BFhQPARcWBgNSASwVHRUOXvkIFAhqBwf5Xg4I%2FiH%2B1BUdFQ5e%2BQgUCGoHB%2FleDggEsB0V%2FtQVCA5e%2BQcHaggUCPleDhX7UB0VASwVCA5e%2BQcHaggUCPleDhUAAAACAEkASQRnBGcAFQArAAABFxYUDwEXFgYjISImNRE0Nh8BNzYyASEyFhURFAYvAQcGIi8BJjQ%2FAScmNgP2agcH%2BV4OCBX%2B1BUdFQ5e%2BQgU%2FQwBLBUdFQ5e%2BQgUCGoHB%2FleDggEYGoIFAj5Xg4VHRUBLBUIDl75B%2F3xHRX%2B1BUIDl75BwdqCBQI%2BV4OFQAAAAADABcAFwSZBJkADwAfAC8AAAAyHgIUDgIiLgI0PgEFIyIGFxMeATsBMjY3EzYmAyMiBh0BFBY7ATI2PQE0JgHj6tabW1ub1urWm1tbmwGz0BQYBDoEIxQ2FCMEOgQYMZYKDw8KlgoPDwSZW5vW6tabW1ub1urWm7odFP7SFB0dFAEuFB3%2BDA8KlgoPDwqWCg8AAAAABQAAAAAEsASwAEkAVQBhAGgAbwAAATIWHwEWHwEWFxY3Nj8BNjc2MzIWHwEWHwIeATsBMhYdARQGKwEiBh0BIREjESE1NCYrASImPQE0NjsBMjY1ND8BNjc%2BBAUHBhY7ATI2LwEuAQUnJgYPAQYWOwEyNhMhIiY1ESkBERQGIyERAQQJFAUFFhbEFQ8dCAsmxBYXERUXMA0NDgQZCAEPCj0KDw8KMgoP%2FnDI%2FnAPCjIKDw8KPQsOCRkFDgIGFRYfAp2mBwQK2woKAzMDEP41sQgQAzMDCgrnCwMe%2FokKDwGQAlgPCv6JBLAEAgIKDXYNCxUJDRZ2DQoHIREQFRh7LAkLDwoyCg8PCq8BLP7UrwoPDwoyCg8GBQQwgBkUAwgWEQ55ogcKDgqVCgSqnQcECo8KDgr8cg8KAXf%2BiQoPAZAAAAAAAgAAAAwErwSmACsASQAAATYWFQYCDgQuAScmByYOAQ8BBiY1NDc%2BATc%2BAScuAT4BNz4GFyYGBw4BDwEOBAcOARY2Nz4CNz4DNz4BBI0IGgItQmxhi2KORDg9EQQRMxuZGhYqCFUYEyADCQIQOjEnUmFch3vAJQgdHyaiPT44XHRZUhcYDhItIRmKcVtGYWtbKRYEBKYDEwiy%2Ft3IlVgxEQgLCwwBAQIbG5kYEyJAJghKFRE8Hzdff4U%2FM0o1JSMbL0QJGCYvcSEhHjZST2c1ODwEJygeW0AxJUBff1UyFAABAF0AHgRyBM8ATwAAAQ4BHgQXLgc%2BATceAwYHDgQHBicmNzY3PgQuAScWDgMmJy4BJyY%2BBDcGHgM3PgEuAicmPgMCjScfCic4R0IgBBsKGAoQAwEJEg5gikggBhANPkpTPhZINx8SBgsNJysiCRZOQQoVNU1bYC9QZwICBAUWITsoCAYdJzIYHw8YIiYHDyJJYlkEz0OAZVxEOSQMBzgXOB42IzElKRIqg5Gnl0o3Z0c6IAYWCwYNAwQFIDhHXGF1OWiqb0sdBxUknF0XNTQ8PEUiNWNROBYJDS5AQVUhVZloUSkAAAAAA%2F%2FcAGoE1ARGABsAPwBRAAAAMh4FFA4FIi4FND4EBSYGFxYVFAYiJjU0NzYmBwYHDgEXHgQyPgM3NiYnJgUHDgEXFhcWNj8BNiYnJicuAQIGpJ17bk85HBw6T257naKde25POhwcOU9uewIPDwYIGbD4sBcIBw5GWg0ECxYyWl%2BDiINfWjIWCwQMWv3%2FIw8JCSU4EC0OIw4DDywtCyIERi1JXGJcSSpJXGJcSS0tSVxiXEkqSVxiXEncDwYTOT58sLB8OzcTBg9FcxAxEiRGXkQxMEVeRSQSMRF1HiQPLxJEMA0EDyIPJQ8sSRIEAAAABP%2FcAAAE1ASwABQAJwA7AEwAACEjNy4ENTQ%2BBTMyFzczEzceARUUDgMHNz4BNzYmJyYlBgcOARceBBc3LgE1NDc2JhcHDgEXFhcWNj8CJyYnLgECUJQfW6l2WSwcOU9ue51SPUEglCYvbIknUGqYUi5NdiYLBAw2%2FVFGWg0ECxIqSExoNSlrjxcIB3wjDwkJJTgQLQ4MFgMsLQsieBRhdHpiGxVJXGJcSS0Pef5StVXWNBpacm5jGq0xiD8SMRFGckVzEDESHjxRQTkNmhKnbjs3EwZwJA8vEkQwDQQPC1YELEkSBAAAAAP%2FngAABRIEqwALABgAKAAAJwE2FhcBFgYjISImJSE1NDY7ATIWHQEhAQczMhYPAQ4BKwEiJi8BJjZaAoIUOBQCghUbJfryJRsBCgFZDwqWCg8BWf5DaNAUGAQ6BCMUNhQjBDoEGGQEKh8FIfvgIEdEhEsKDw8KSwLT3x0U%2FBQdHRT8FB0AAAABAGQAFQSwBLAAKAAAADIWFREBHgEdARQGJyURFh0BFAYvAQcGJj0BNDcRBQYmPQE0NjcBETQCTHxYAWsPFhgR%2FplkGhPNzRMaZP6ZERgWDwFrBLBYPv6t%2FrsOMRQpFA0M%2Bf75XRRAFRAJgIAJEBVAFF0BB%2FkMDRQpFDEOAUUBUz4AAAARAAAAAARMBLAAHQAnACsALwAzADcAOwA%2FAEMARwBLAE8AUwBXAFsAXwBjAAABMzIWHQEzMhYdASE1NDY7ATU0NjsBMhYdASE1NDYBERQGIyEiJjURFxUzNTMVMzUzFTM1MxUzNTMVMzUFFTM1MxUzNTMVMzUzFTM1MxUzNQUVMzUzFTM1MxUzNTMVMzUzFTM1A1JkFR0yFR37tB0VMh0VZBUdAfQdAQ8dFfwYFR1kZGRkZGRkZGRk%2FHxkZGRkZGRkZGT8fGRkZGRkZGRkZASwHRUyHRWWlhUdMhUdHRUyMhUd%2FnD9EhUdHRUC7shkZGRkZGRkZGRkyGRkZGRkZGRkZGTIZGRkZGRkZGRkZAAAAAMAAAAZBXcElwAZACUANwAAARcWFA8BBiY9ASMBISImPQE0NjsBATM1NDYBBycjIiY9ATQ2MyEBFxYUDwEGJj0BIyc3FzM1NDYEb%2FkPD%2FkOFZ%2F9qP7dFR0dFdECWPEV%2FamNetEVHR0VASMDGvkPD%2FkOFfG1jXqfFQSN5g4qDuYOCBWW%2FagdFWQVHQJYlhUI%2FpiNeh0VZBUd%2Fk3mDioO5g4IFZa1jXqWFQgAAAABAAAAAASwBEwAEgAAEyEyFhURFAYjIQERIyImNRE0NmQD6Ck7Oyn9rP7QZCk7OwRMOyn9qCk7%2FtQBLDspAlgpOwAAAAMAZAAABEwEsAAJABMAPwAAEzMyFh0BITU0NiEzMhYdASE1NDYBERQOBSIuBTURIRUUFRwBHgYyPgYmNTQ9AZbIFR3%2B1B0C0cgVHf7UHQEPBhgoTGacwJxmTCgYBgEsAwcNFB8nNkI2Jx8TDwUFAQSwHRX6%2BhUdHRX6%2BhUd%2FnD%2B1ClJalZcPigoPlxWakkpASz6CRIVKyclIRsWEAgJEBccISUnKhURCPoAAAAB%2F%2F8A1ARMA8IABQAAAQcJAScBBEzG%2Fp%2F%2Bn8UCJwGbxwFh%2Fp%2FHAicAAQAAAO4ETQPcAAUAAAkCNwkBBE392v3ZxgFhAWEDFf3ZAifH%2Fp8BYQAAAAAC%2F1EAZAVfA%2BgAFAApAAABITIWFREzMhYPAQYiLwEmNjsBESElFxYGKwERIRchIiY1ESMiJj8BNjIBlALqFR2WFQgO5g4qDuYOCBWW%2FoP%2BHOYOCBWWAYHX%2FRIVHZYVCA7mDioD6B0V%2FdkVDvkPD%2FkOFQGRuPkOFf5wyB0VAiYVDvkPAAABAAYAAASeBLAAMAAAEzMyFh8BITIWBwMOASMhFyEyFhQGKwEVFAYiJj0BIRUUBiImPQEjIiYvAQMjIiY0NjheERwEJgOAGB4FZAUsIf2HMAIXFR0dFTIdKh3%2B1B0qHR8SHQYFyTYUHh4EsBYQoiUY%2FiUVK8gdKh0yFR0dFTIyFR0dFTIUCQoDwR0qHQAAAAACAAAAAASwBEwACwAPAAABFSE1MzQ2MyEyFhUFIREhBLD7UMg7KQEsKTv9RASw%2B1AD6GRkKTs7Kcj84AACAAAAAAXcBEwADAAQAAATAxEzNDYzITIWFSEVBQEhAcjIyDspASwqOgH0ASz%2B1PtQASwDIP5wAlgpOzspyGT9RAK8AAEBRQAAA2sErwAbAAABFxYGKwERMzIWDwEGIi8BJjY7AREjIiY%2FATYyAnvmDggVlpYVCA7mDioO5g4IFZaWFQgO5g4qBKD5DhX9pxUO%2BQ8P%2BQ4VAlkVDvkPAAAAAQABAUQErwNrABsAAAEXFhQPAQYmPQEhFRQGLwEmND8BNhYdASE1NDYDqPkODvkPFf2oFQ%2F5Dg75DxUCWBUDYOUPKQ%2FlDwkUl5cUCQ%2FlDykP5Q8JFZWVFQkAAAAEAAAAAASwBLAACQAZAB0AIQAAAQMuASMhIgYHAwUhIgYdARQWMyEyNj0BNCYFNTMVMzUzFQSRrAUkFP1gFCQFrAQt%2FBgpOzspA%2BgpOzv%2Bq2RkZAGQAtwXLSgV%2FR1kOylkKTs7KWQpO8hkZGRkAAAAA%2F%2BcAGQEsARMAAsAIwAxAAAAMhYVERQGIiY1ETQDJSMTFgYjIisBIiYnAj0BNDU0PgE7ASUBFSIuAz0BND4CNwRpKh0dKh1k%2FV0mLwMRFQUCVBQdBDcCCwzIAqP8GAQOIhoWFR0dCwRMHRX8rhUdHRUDUhX8mcj%2B7BAIHBUBUQ76AgQQDw36%2FtT6AQsTKRwyGigUDAEAAAACAEoAAARmBLAALAA1AAABMzIWDwEeARcTFzMyFhQGBw4EIyIuBC8BLgE0NjsBNxM%2BATcnJjYDFjMyNw4BIiYCKV4UEgYSU3oPP3YRExwaEggeZGqfTzl0XFU%2BLwwLEhocExF2Pw96UxIGEyQyNDUxDDdGOASwFRMlE39N%2FrmtHSkoBwQLHBYSCg4REg4FBAgoKR2tAUdNfhQgExr7vgYGMT09AAEAFAAUBJwEnAAXAAABNwcXBxcHFycHJwcnBzcnNyc3Jxc3FzcDIOBO6rS06k7gLZubLeBO6rS06k7gLZubA7JO4C2bmy3gTuq0tOpO4C2bmy3gTuq0tAADAAAAZASwBLAAIQAtAD0AAAEzMhYdAQchMhYdARQHAw4BKwEiJi8BIyImNRE0PwI%2BARcPAREzFzMTNSE3NQEzMhYVERQGKwEiJjURNDYCijIoPBwBSCg8He4QLBf6B0YfHz0tNxSRYA0xG2SWZIjW%2Bv4%2BMv12ZBUdHRVkFR0dBLBRLJZ9USxkLR3%2BqBghMhkZJCcBkCQbxMYcKGTU1f6JZAF3feGv%2FtQdFf4MFR0dFQH0FR0AAAAAAwAAAAAEsARMACAAMAA8AAABMzIWFxMWHQEUBiMhFh0BFAYrASImLwImNRE0NjsBNgUzMhYVERQGKwEiJjURNDYhByMRHwEzNSchNQMCWPoXLBDuHTwo%2FrgcPCgyGzENYJEUNy09fP3pZBUdHRVkFR0dAl%2BIZJZkMjIBwvoETCEY%2FqgdLWQsUXYHlixRKBzGxBskAZAnJGRkHRX%2BDBUdHRUB9BUdZP6J1dSv4X0BdwADAAAAZAUOBE8AGwA3AEcAAAElNh8BHgEPASEyFhQGKwEDDgEjISImNRE0NjcXERchEz4BOwEyNiYjISoDLgQnJj8BJwUzMhYVERQGKwEiJjURNDYBZAFrHxZuDQEMVAEuVGxuVGqDBhsP%2FqoHphwOOmQBJYMGGw%2FLFRMSFv44AgoCCQMHAwUDAQwRklb9T2QVHR0VZBUdHQNp5hAWcA0mD3lMkE7%2BrRUoog0CDRElCkj%2BCVkBUxUoMjIBAgIDBQIZFrdT5B0V%2FgwVHR0VAfQVHQAAAAP%2FnABkBLAETwAdADYARgAAAQUeBBURFAYjISImJwMjIiY0NjMhJyY2PwE2BxcWBw4FKgIjIRUzMhYXEyE3ESUFMzIWFREUBisBIiY1ETQ2AdsBbgIIFBANrAf%2Bqg8bBoNqVW1sVAEuVQsBDW4WSpIRDAIDBQMHAwkDCgH%2BJd0PHAaCASZq%2FqoCUGQVHR0VZBUdHQRP5gEFEBEXC%2F3zDaIoFQFTTpBMeQ8mDXAWrrcWGQIFAwICAWQoFf6tWQH37OQdFf4MFR0dFQH0FR0AAAADAGEAAARMBQ4AGwA3AEcAAAAyFh0BBR4BFREUBiMhIiYvAQMmPwE%2BAR8BETQXNTQmBhURHAMOBAcGLwEHEyE3ESUuAQMhMhYdARQGIyEiJj0BNDYB3pBOAVMVKKIN%2FfMRJQoJ5hAWcA0mD3nGMjIBAgIDBQIZFrdT7AH3Wf6tFSiWAfQVHR0V%2FgwVHR0FDm5UaoMGGw%2F%2BqgemHA4OAWsfFm4NAQxUAS5U1ssVExIW%2FjgCCgIJAwcDBQMBDBGSVv6tZAElgwYb%2FQsdFWQVHR0VZBUdAAP%2F%2FQAGA%2BgFFAAPAC0ASQAAASEyNj0BNCYjISIGHQEUFgEVFAYiJjURBwYmLwEmNxM%2BBDMhMhYVERQGBwEDFzc2Fx4FHAIVERQWNj0BNDY3JREnAV4B9BUdHRX%2BDBUdHQEPTpBMeQ8mDXAWEOYBBRARFwsCDQ2iKBX9iexTtxYZAgUDAgIBMjIoFQFTWQRMHRVkFR0dFWQVHfzmalRubFQBLlQMAQ1uFh8BawIIEw8Mpgf%2Bqg8bBgHP%2Fq1WkhEMAQMFAwcDCQIKAv44FhITFcsPGwaDASVkAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBJSYGHQEhIgYdARQWMyEVFBY3JTY0AeLs1ptbW5vW7NabW1ubAob%2B7RAX%2Fu0KDw8KARMXEAETEASaW5vW7NabW1ub1uzWm%2F453w0KFYkPCpYKD4kVCg3fDSYAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgENAQYUFwUWNj0BITI2PQE0JiMhNTQmAeLs1ptbW5vW7NabW1ubASX%2B7RAQARMQFwETCg8PCv7tFwSaW5vW7NabW1ub1uzWm%2BjfDSYN3w0KFYkPCpYKD4kVCgAAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBAyYiBwMGFjsBERQWOwEyNjURMzI2AeLs1ptbW5vW7NabW1ubAkvfDSYN3w0KFYkPCpYKD4kVCgSaW5vW7NabW1ub1uzWm%2F5AARMQEP7tEBf%2B7QoPDwoBExcAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEFIyIGFREjIgYXExYyNxM2JisBETQmAeLs1ptbW5vW7NabW1ubAZeWCg%2BJFQoN3w0mDd8NChWJDwSaW5vW7NabW1ub1uzWm7sPCv7tFxD%2B7RAQARMQFwETCg8AAAMAGAAYBJgEmAAPAJYApgAAADIeAhQOAiIuAjQ%2BASUOAwcGJgcOAQcGFgcOAQcGFgcUFgcyHgEXHgIXHgI3Fg4BFx4CFxQGFBcWNz4CNy4BJy4BJyIOAgcGJyY2NS4BJzYuAQYHBicmNzY3HgIXHgMfAT4CJyY%2BATc%2BAzcmNzIWMjY3LgMnND4CJiceAT8BNi4CJwYHFB4BFS4CJz4BNxYyPgEB5OjVm1xcm9Xo1ZtcXJsBZA8rHDoKDz0PFD8DAxMBAzEFCRwGIgEMFhkHECIvCxU%2FOR0HFBkDDRQjEwcFaHUeISQDDTAMD0UREi4oLBAzDwQBBikEAQMLGhIXExMLBhAGKBsGBxYVEwYFAgsFAwMNFwQGCQcYFgYQCCARFwkKKiFBCwQCAQMDHzcLDAUdLDgNEiEQEgg%2FKhADGgMKEgoRBJhcm9Xo1ZtcXJvV6NWbEQwRBwkCAwYFBycPCxcHInIWInYcCUcYChQECA4QBAkuHgQPJioRFRscBAcSCgwCch0kPiAIAQcHEAsBAgsLIxcBMQENCQIPHxkCFBkdHB4QBgEBBwoMGBENBAMMJSAQEhYXDQ4qFBkKEhIDCQsXJxQiBgEOCQwHAQ0DBAUcJAwSCwRnETIoAwEJCwsLJQcKDBEAAAAAAQAAAAIErwSFABYAAAE2FwUXNxYGBw4BJwEGIi8BJjQ3ASY2AvSkjv79kfsGUE08hjv9rA8rD28PDwJYIk8EhVxliuh%2BWYcrIgsW%2FawQEG4PKxACV2XJAAYAAABgBLAErAAPABMAIwAnADcAOwAAEyEyFh0BFAYjISImPQE0NgUjFTMFITIWHQEUBiMhIiY9ATQ2BSEVIQUhMhYdARQGIyEiJj0BNDYFIRUhZAPoKTs7KfwYKTs7BBHIyPwYA%2BgpOzsp%2FBgpOzsEEf4MAfT8GAPoKTs7KfwYKTs7BBH%2B1AEsBKw7KWQpOzspZCk7ZGTIOylkKTs7KWQpO2RkyDspZCk7OylkKTtkZAAAAAIAZAAABEwEsAALABEAABMhMhYUBiMhIiY0NgERBxEBIZYDhBUdHRX8fBUdHQI7yP6iA4QEsB0qHR0qHf1E%2FtTIAfQB9AAAAAMAAABkBLAEsAAXABsAJQAAATMyFh0BITIWFREhNSMVIRE0NjMhNTQ2FxUzNQEVFAYjISImPQEB9MgpOwEsKTv%2BDMj%2BDDspASw7KcgB9Dsp%2FBgpOwSwOylkOyn%2BcGRkAZApO2QpO2RkZP1EyCk7OynIAAAABAAAAAAEsASwABUAKwBBAFcAABMhMhYPARcWFA8BBiIvAQcGJjURNDYpATIWFREUBi8BBwYiLwEmND8BJyY2ARcWFA8BFxYGIyEiJjURNDYfATc2MgU3NhYVERQGIyEiJj8BJyY0PwE2MhcyASwVCA5exwcHaggUCMdeDhUdAzUBLBUdFQ5exwgUCGoHB8deDgj%2BL2oHB8deDggV%2FtQVHRUOXscIFALLXg4VHRX%2B1BUIDl7HBwdqCBQIBLAVDl7HCBQIagcHx14OCBUBLBUdHRX%2B1BUIDl7HBwdqCBQIx14OFf0maggUCMdeDhUdFQEsFQgOXscHzl4OCBX%2B1BUdFQ5exwgUCGoHBwAAAAYAAAAABKgEqAAPABsAIwA7AEMASwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiQyFhQGIiY0JDIWFAYjIicHFhUUBiImNTQ2PwImNTQEMhYUBiImNCQyFhQGIiY0Advy3Z9fX5%2Fd8t2gXl6gAcbgv29vv%2BC%2Fb2%2F%2BLS0gIC0gAUwtICAWDg83ETNIMykfegEJ%2FoctICAtIAIdLSAgLSAEqF%2Bf3fLdoF5eoN3y3Z9Xb7%2Fgv29vv%2BC%2FBiAtISEtICAtIQqRFxwkMzMkIDEFfgEODhekIC0gIC0gIC0gIC0AAf%2FYAFoEuQS8AFsAACUBNjc2JicmIyIOAwcABw4EFx4BMzI3ATYnLgEjIgcGBwEOASY0NwA3PgEzMhceARcWBgcOBgcGIyImJyY2NwE2NzYzMhceARcWBgcBDgEnLgECIgHVWwgHdl8WGSJBMD8hIP6IDx4eLRMNBQlZN0ozAiQkEAcdEhoYDRr%2Bqw8pHA4BRyIjQS4ODyw9DQ4YIwwod26La1YOOEBGdiIwGkQB%2F0coW2tQSE5nDxE4Qv4eDyoQEAOtAdZbZWKbEQQUGjIhH%2F6JDxsdNSg3HT5CMwIkJCcQFBcMGv6uDwEcKQ4BTSIjIQEINykvYyMLKnhuiWZMBxtAOU6%2BRAH%2FSBg3ISSGV121Qv4kDwIPDyYAAAACAGQAWASvBEQAGQBEAAABPgIeAhUUDgMHLgQ1ND4CHgEFIg4DIi4DIyIGFRQeAhcWFx4EMj4DNzY3PgQ1NCYCiTB7eHVYNkN5hKg%2BPqeFeEM4WnZ4eQEjIT8yLSohJyktPyJDbxtBMjMPBw86KzEhDSIzKUAMBAgrKT8dF2oDtURIBS1TdkA5eYB%2FslVVsn%2BAeTlAdlMtBUgtJjY1JiY1NiZvTRc4SjQxDwcOPCouGBgwKEALBAkpKkQqMhNPbQACADn%2F8gR3BL4AFwAuAAAAMh8BFhUUBg8BJi8BNycBFwcvASY0NwEDNxYfARYUBwEGIi8BJjQ%2FARYfAQcXAQKru0KNQjgiHR8uEl%2F3%2FnvUaRONQkIBGxJpCgmNQkL%2B5UK6Qo1CQjcdLhJf9wGFBL5CjUJeKmsiHTUuEl%2F4%2FnvUahKNQrpCARv%2BRmkICY1CukL%2B5UJCjUK7Qjc3LxFf%2BAGFAAAAAAMAyAAAA%2BgEsAARABUAHQAAADIeAhURFAYjISImNRE0PgEHESERACIGFBYyNjQCBqqaZDo7Kf2oKTs8Zj4CWP7%2FVj09Vj0EsB4uMhX8Ryk7OykDuRUzLar9RAK8%2FRY9Vj09VgABAAAAAASwBLAAFgAACQEWFAYiLwEBEScBBRMBJyEBJyY0NjIDhgEbDx0qDiT%2B6dT%2BzP7oywEz0gEsAQsjDx0qBKH%2B5g8qHQ8j%2FvX%2B1NL%2BzcsBGAE01AEXJA4qHQAAAAADAScAEQQJBOAAMgBAAEsAAAEVHgQXIy4DJxEXHgQVFAYHFSM1JicuASczHgEXEScuBDU0PgI3NRkBDgMVFB4DFxYXET4ENC4CArwmRVI8LAKfBA0dMydAIjxQNyiym2SWVygZA4sFV0obLkJOMCAyVWg6HSoqFQ4TJhkZCWgWKTEiGBkzNwTgTgUTLD9pQiQuLBsH%2Fs0NBxMtPGQ%2Bi6oMTU8QVyhrVk1iEAFPCA4ZLzlYNkZwSCoGTf4SARIEDh02Jh0rGRQIBgPQ%2FsoCCRYgNEM0JRkAAAABAGQAZgOUBK0ASgAAATIeARUjNC4CIyIGBwYVFB4BFxYXMxUjFgYHBgc%2BATM2FjMyNxcOAyMiLgEHDgEPASc%2BBTc%2BAScjNTMmJy4CPgE3NgIxVJlemSc8OxolVBQpGxoYBgPxxQgVFS02ImIWIIwiUzUyHzY4HCAXanQmJ1YYFzcEGAcTDBEJMAwk3aYXFQcKAg4tJGEErVCLTig%2FIhIdFSw5GkowKgkFZDKCHj4yCg8BIh6TExcIASIfBAMaDAuRAxAFDQsRCjePR2QvORQrREFMIVgAAAACABn%2F%2FwSXBLAADwAfAAABMzIWDwEGIi8BJjY7AREzBRcWBisBESMRIyImPwE2MgGQlhUIDuYOKg7mDggVlsgCF%2BYOCBWWyJYVCA7mDioBLBYO%2Bg8P%2Bg4WA4QQ%2BQ4V%2FHwDhBUO%2BQ8AAAQAGf%2F%2FA%2BgEsAAHABcAGwAlAAABIzUjFSMRIQEzMhYPAQYiLwEmNjsBETMFFTM1EwczFSE1NyM1IQPoZGRkASz9qJYVCA7mDioO5g4IFZbIAZFkY8jI%2FtTIyAEsArxkZAH0%2FHwWDvoPD%2FoOFgOEZMjI%2FRL6ZJb6ZAAAAAAEABn%2F%2FwPoBLAADwAZACEAJQAAATMyFg8BBiIvASY2OwERMwUHMxUhNTcjNSERIzUjFSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAljIyP7UyMgBLGRkZAEsx2QBLBYO%2Bg8P%2Bg4WA4SW%2BmSW%2BmT7UGRkAfRkyMgAAAAEABn%2F%2FwRMBLAADwAVABsAHwAAATMyFg8BBiIvASY2OwERMwEjESM1MxMjNSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAlhkZMhkZMgBLMdkASwWDvoPD%2FoOFgOE%2FgwBkGT7UGQBkGTIyAAAAAAEABn%2F%2FwRMBLAADwAVABkAHwAAATMyFg8BBiIvASY2OwERMwEjNSMRIQcVMzUDIxEjNTMBkJYVCA7mDioO5g4IFZbIArxkyAEsx2QBZGTIASwWDvoPD%2FoOFgOE%2FgxkAZBkyMj7tAGQZAAAAAAFABn%2F%2FwSwBLAADwATABcAGwAfAAABMzIWDwEGIi8BJjY7AREzBSM1MxMhNSETITUhEyE1IQGQlhUIDuYOKg7mDggVlsgB9MjIZP7UASxk%2FnABkGT%2BDAH0ASwWDvoPD%2FoOFgOEyMj%2BDMj%2BDMj%2BDMgABQAZ%2F%2F8EsASwAA8AEwAXABsAHwAAATMyFg8BBiIvASY2OwERMwUhNSEDITUhAyE1IQMjNTMBkJYVCA7mDioO5g4IFZbIAyD%2BDAH0ZP5wAZBk%2FtQBLGTIyAEsFg76Dw%2F6DhYDhMjI%2FgzI%2FgzI%2FgzIAAIAAAAABEwETAAPAB8AAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmAV4BkKK8u6P%2BcKW5uQJn%2FgwpOzspAfQpOzsETLuj%2FnClubmlAZClucg7Kf4MKTs7KQH0KTsAAAAAAwAAAAAETARMAA8AHwArAAABITIWFREUBiMhIiY1ETQ2BSEiBhURFBYzITI2NRE0JgUXFhQPAQYmNRE0NgFeAZClubml%2FnCju7wCZP4MKTs7KQH0KTs7%2Fm%2F9ERH9EBgYBEy5pf5wpbm5pQGQo7vIOyn%2BDCk7OykB9Ck7gr4MJAy%2BDAsVAZAVCwAAAAADAAAAAARMBEwADwAfACsAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFg8BBiIvASY2AV4BkKO7uaX%2BcKW5uQJn%2FgwpOzspAfQpOzv%2BFQGQFQsMvgwkDL4MCwRMvKL%2BcKW5uaUBkKO7yDsp%2FgwpOzspAfQpO8gYEP0REf0QGAAAAAMAAAAABEwETAAPAB8AKwAAASEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFFxYGIyEiJj8BNjIBXgGQpbm5pf5wo7u5Amf%2BDCk7OykB9Ck7O%2F77vgwLFf5wFQsMvgwkBEy5pf5wo7u8ogGQpbnIOyn%2BDCk7OykB9Ck7z%2F0QGBgQ%2FREAAAAAAgAAAAAFFARMAB8ANQAAASEyFhURFAYjISImPQE0NjMhMjY1ETQmIyEiJj0BNDYHARYUBwEGJj0BIyImPQE0NjsBNTQ2AiYBkKW5uaX%2BcBUdHRUBwik7Oyn%2BPhUdHb8BRBAQ%2FrwQFvoVHR0V%2BhYETLml%2FnCluR0VZBUdOykB9Ck7HRVkFR3p%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgAAAQDZAAID1wSeACMAAAEXFgcGAgclMhYHIggBBwYrAScmNz4BPwEhIicmNzYANjc2MwMZCQgDA5gCASwYEQ4B%2Fvf%2B8wQMDgkJCQUCUCcn%2FtIXCAoQSwENuwUJEASeCQoRC%2F5TBwEjEv7K%2FsUFDwgLFQnlbm4TFRRWAS%2FTBhAAAAACAAAAAAT%2BBEwAHwA1AAABITIWHQEUBiMhIgYVERQWMyEyFh0BFAYjISImNRE0NgUBFhQHAQYmPQEjIiY9ATQ2OwE1NDYBXgGQFR0dFf4%2BKTs7KQHCFR0dFf5wpbm5AvEBRBAQ%2FrwQFvoVHR0V%2BhYETB0VZBUdOyn%2BDCk7HRVkFR25pQGQpbnp%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgACAAAAAASwBLAAFQAxAAABITIWFREUBi8BAQYiLwEmNDcBJyY2ASMiBhURFBYzITI2PQE3ERQGIyEiJjURNDYzIQLuAZAVHRUObf7IDykPjQ8PAThtDgj%2B75wpOzspAfQpO8i7o%2F5wpbm5pQEsBLAdFf5wFQgObf7IDw%2BNDykPAThtDhX%2B1Dsp%2FgwpOzsplMj%2B1qW5uaUBkKW5AAADAA4ADgSiBKIADwAbACMAAAAyHgIUDgIiLgI0PgEEIg4BFB4BMj4BNCYEMhYUBiImNAHh7tmdXV2d2e7ZnV1dnQHD5sJxccLmwnFx%2FnugcnKgcgSiXZ3Z7tmdXV2d2e7ZnUdxwubCcXHC5sJzcqBycqAAAAMAAAAABEwEsAAVAB8AIwAAATMyFhURMzIWBwEGIicBJjY7ARE0NgEhMhYdASE1NDYFFTM1AcLIFR31FAoO%2FoEOJw3%2BhQ0JFfod%2FoUD6BUd%2B7QdA2dkBLAdFf6iFg%2F%2BVg8PAaoPFgFeFR38fB0V%2BvoVHWQyMgAAAAMAAAAABEwErAAVAB8AIwAACQEWBisBFRQGKwEiJj0BIyImNwE%2BAQEhMhYdASE1NDYFFTM1AkcBeg4KFfQiFsgUGPoUCw4Bfw4n%2FfkD6BUd%2B7QdA2dkBJ7%2BTQ8g%2BhQeHRX6IQ8BrxAC%2FH8dFfr6FR1kMjIAAwAAAAAETARLABQAHgAiAAAJATYyHwEWFAcBBiInASY0PwE2MhcDITIWHQEhNTQ2BRUzNQGMAXEHFQeLBwf98wcVB%2F7cBweLCBUH1APoFR37tB0DZ2QC0wFxBweLCBUH%2FfMICAEjCBQIiwcH%2FdIdFfr6FR1kMjIABAAAAAAETASbAAkAGQAjACcAABM3NjIfAQcnJjQFNzYWFQMOASMFIiY%2FASc3ASEyFh0BITU0NgUVMzWHjg4qDk3UTQ4CFtIOFQIBHRX9qxUIDtCa1P49A%2BgVHfu0HQNnZAP%2Fjg4OTdRMDyqa0g4IFf2pFB4BFQ7Qm9T9Oh0V%2BvoVHWQyMgAAAAQAAAAABEwEsAAPABkAIwAnAAABBR4BFRMUBi8BByc3JyY2EwcGIi8BJjQ%2FAQEhMhYdASE1NDYFFTM1AV4CVxQeARUO0JvUm9IOCMNMDyoOjg4OTf76A%2BgVHfu0HQNnZASwAgEdFf2rFQgO0JrUmtIOFf1QTQ4Ojg4qDk3%2BWB0V%2BvoVHWQyMgACAAT%2F7ASwBK8ABQAIAAAlCQERIQkBFQEEsP4d%2Fsb%2BcQSs%2FTMCq2cBFP5xAacDHPz55gO5AAAAAAIAAABkBEwEsAAVABkAAAERFAYrAREhESMiJjURNDY7AREhETMHIzUzBEwdFZb9RJYVHR0V%2BgH0ZMhkZAPo%2FK4VHQGQ%2FnAdFQPoFB7%2B1AEsyMgAAAMAAABFBN0EsAAWABoALwAAAQcBJyYiDwEhESMiJjURNDY7AREhETMHIzUzARcWFAcBBiIvASY0PwE2Mh8BATYyBEwC%2FtVfCRkJlf7IlhUdHRX6AfRkyGRkAbBqBwf%2BXAgUCMoICGoHFQdPASkHFQPolf7VXwkJk%2F5wHRUD6BQe%2FtQBLMjI%2Fc5qBxUH%2FlsHB8sHFQdqCAhPASkHAAMAAAANBQcEsAAWABoAPgAAAREHJy4BBwEhESMiJjURNDY7AREhETMHIzUzARcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyBExnhg8lEP72%2FreWFR0dFfoB9GTIZGQB9kYPD4ODDw9GDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykD6P7zZ4YPAw7%2B9v5wHRUD6BQe%2FtQBLMjI%2FYxGDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykPRg8Pg4MPAAADAAAAFQSXBLAAFQAZAC8AAAERISIGHQEhESMiJjURNDY7AREhETMHIzUzEzMyFh0BMzIWDwEGIi8BJjY7ATU0NgRM%2FqIVHf4MlhUdHRX6AfRkyGRklmQVHZYVCA7mDioO5g4IFZYdA%2Bj%2B1B0Vlv5wHRUD6BQe%2FtQBLMjI%2FagdFfoVDuYODuYOFfoVHQAAAAADAAAAAASXBLAAFQAZAC8AAAERJyYiBwEhESMiJjURNDY7AREhETMHIzUzExcWBisBFRQGKwEiJj0BIyImPwE2MgRMpQ4qDv75%2Fm6WFR0dFfoB9GTIZGTr5g4IFZYdFWQVHZYVCA7mDioD6P5wpQ8P%2Fvf%2BcB0VA%2BgUHv7UASzIyP2F5Q8V%2BhQeHhT6FQ%2FlDwADAAAAyASwBEwACQATABcAABMhMhYdASE1NDYBERQGIyEiJjURExUhNTIETBUd%2B1AdBJMdFfu0FR1kAZAETB0VlpYVHf7U%2FdoVHR0VAib%2B1MjIAAAGAAMAfQStBJcADwAZAB0ALQAxADsAAAEXFhQPAQYmPQEhNSE1NDYBIyImPQE0NjsBFyM1MwE3NhYdASEVIRUUBi8BJjQFIzU7AjIWHQEUBisBA6f4Dg74DhX%2BcAGQFf0vMhUdHRUyyGRk%2FoL3DhUBkP5wFQ73DwOBZGRkMxQdHRQzBI3mDioO5g4IFZbIlhUI%2FoUdFWQVHcjI%2FcvmDggVlsiWFQgO5g4qecgdFWQVHQAAAAACAGQAAASwBLAAFgBRAAABJTYWFREUBisBIiY1ES4ENRE0NiUyFh8BERQOAg8BERQGKwEiJjURLgQ1ETQ%2BAzMyFh8BETMRPAE%2BAjMyFh8BETMRND4DA14BFBklHRXIFR0EDiIaFiX%2B4RYZAgEVHR0LCh0VyBUdBA4iGhYBBwoTDRQZAgNkBQkVDxcZAQFkAQUJFQQxdBIUH%2FuuFR0dFQGNAQgbHzUeAWcfRJEZDA3%2BPhw%2FMSkLC%2F5BFR0dFQG%2FBA8uLkAcAcICBxENCxkMDf6iAV4CBxENCxkMDf6iAV4CBxENCwABAGQAAASwBEwAMwAAARUiDgMVERQWHwEVITUyNjURIREUFjMVITUyPgM1ETQmLwE1IRUiBhURIRE0JiM1BLAEDiIaFjIZGf5wSxn%2BDBlL%2FnAEDiIaFjIZGQGQSxkB9BlLBEw4AQUKFA78iBYZAQI4OA0lAYr%2BdiUNODgBBQoUDgN4FhkBAjg4DSX%2BdgGKJQ04AAAABgAAAAAETARMAAwAHAAgACQAKAA0AAABITIWHQEjBTUnITchBSEyFhURFAYjISImNRE0NhcVITUBBTUlBRUhNQUVFAYjIQchJyE3MwKjAXcVHWn%2B2cj%2BcGQBd%2F4lASwpOzsp%2FtQpOzspASwCvP5wAZD8GAEsArwdFf6JZP6JZAGQyGkD6B0VlmJiyGTIOyn%2BDCk7OykB9Ck7ZMjI%2FveFo4XGyMhm%2BBUdZGTIAAEAEAAQBJ8EnwAmAAATNzYWHwEWBg8BHgEXNz4BHwEeAQ8BBiIuBicuBTcRohEuDosOBhF3ZvyNdxEzE8ATBxGjAw0uMUxPZWZ4O0p3RjITCwED76IRBhPCFDERdo78ZXYRBA6IDi8RogEECBUgNUNjO0qZfHNVQBAAAAACAAAAAASwBEwAIwBBAAAAMh4EHwEVFAYvAS4BPQEmIAcVFAYPAQYmPQE%2BBRIyHgIfARUBHgEdARQGIyEiJj0BNDY3ATU0PgIB%2FLimdWQ%2FLAkJHRTKFB2N%2FsKNHRTKFB0DDTE7ZnTKcFImFgEBAW0OFR0V%2B7QVHRUOAW0CFiYETBUhKCgiCgrIFRgDIgMiFZIYGJIVIgMiAxgVyAQNJyQrIP7kExwcCgoy%2FtEPMhTUFR0dFdQUMg8BLzIEDSEZAAADAAAAAASwBLAADQAdACcAAAEHIScRMxUzNTMVMzUzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYETMj9qMjIyMjIyPyuArwVHR0VDIn8SokMFR0dswRMFR37UB0CvMjIAfTIyMjI%2FOAdKh1kZB0qHf7UHRUyMhUdAAAAAwBkAAAEsARMAAkAEwAdAAABIyIGFREhETQmASMiBhURIRE0JgEhETQ2OwEyFhUCvGQpOwEsOwFnZCk7ASw7%2FRv%2B1DspZCk7BEw7KfwYA%2BgpO%2F7UOyn9RAK8KTv84AGQKTs7KQAAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQURByMRMwcRMxHIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkyMhkZARMsHz%2BDHywsHwB9HywyP1EArzIZP7UZGQBLGT%2B1GQB9GT%2B1AEsAAAABf%2BcAAAEsARMAA8AEwAfACUAKQAAEyEyFhURFAYjISImNRE0NhcRIREBIzUjFSMRMxUzNTMFEQcjETMHETMRyAK8fLCwfP1EfLCwGAOE%2FgxkZGRkZGQBkGTIyGRkBEywfP4MfLCwfAH0fLDI%2FUQCvP2oyMgB9MjIZP7UZAH0ZP7UASwABP%2BcAAAEsARMAA8AEwAbACMAABMhMhYVERQGIyEiJjURNDYXESERBSMRMxUhESEFIxEzFSERIcgCvHywsHz9RHywsBgDhP4MyMj%2B1AEsAZDIyP7UASwETLB8%2Fgx8sLB8AfR8sMj9RAK8yP7UZAH0ZP7UZAH0AAAABP%2BcAAAEsARMAA8AEwAWABkAABMhMhYVERQGIyEiJjURNDYXESERAS0BDQERyAK8fLCwfP1EfLCwGAOE%2Fgz%2B1AEsAZD%2B1ARMsHz%2BDHywsHwB9HywyP1EArz%2BDJaWlpYBLAAAAAX%2FnAAABLAETAAPABMAFwAgACkAABMhMhYVERQGIyEiJjURNDYXESERAyERIQcjIgYVFBY7AQERMzI2NTQmI8gCvHywsHz9RHywsBgDhGT9RAK8ZIImOTYpgv4Mgik2OSYETLB8%2Fgx8sLB8AfR8sMj9RAK8%2FagB9GRWQUFUASz%2B1FRBQVYAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkZMjIZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yGT%2B1GRkASz%2BDAGQZP4MZAAG%2F5wAAASwBEwADwATABkAHwAjACcAABMhMhYVERQGIyEiJjURNDYXESERBTMRIREzASMRIzUzBRUzNQEjNTPIArx8sLB8%2FUR8sLAYA4T9RMj%2B1GQCWGRkyP2oZAEsZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yP5wAfT%2BDAGQZMjIyP7UZAAF%2F5wAAASwBEwADwATABwAIgAmAAATITIWFREUBiMhIiY1ETQ2FxEhEQEHIzU3NSM1IQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMdkx8gBLAGQZGTIx2RkBEywfP4MfLCwfAH0fLDI%2FUQCvP5wyDLIlmT%2BDAGQZP4MZAAAAAMACQAJBKcEpwAPABsAJQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgchFSEVISc1NyEB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWz%2B1AEs%2FtRkZAEsBKdentvw255eXp7b8NueTHHC5MJxccLkwtDIZGTIZAAAAAAEAAkACQSnBKcADwAbACcAKwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcVBxcVIycjFSMRIQcVMzUB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWwyZGRklmQBLMjIBKdentvw255eXp7b8NueTHHC5MJxccLkwtBkMmQyZGQBkGRkZAAAAv%2Fy%2F50EwgRBACAANgAAATIWFzYzMhYUBisBNTQmIyEiBh0BIyImNTQ2NyY1ND4BEzMyFhURMzIWDwEGIi8BJjY7ARE0NgH3brUsLC54qqp4gB0V%2FtQVHd5QcFZBAmKqepYKD4kVCg3fDSYN3w0KFYkPBEF3YQ6t8a36FR0dFfpzT0VrDhMSZKpi%2FbMPCv7tFxD0EBD0EBcBEwoPAAAAAAL%2F8v%2BcBMMEQQAcADMAAAEyFhc2MzIWFxQGBwEmIgcBIyImNTQ2NyY1ND4BExcWBisBERQGKwEiJjURIyImNzY3NjIB9m62LCsueaoBeFr%2Bhg0lDf6DCU9xVkECYqnm3w0KFYkPCpYKD4kVCg3HGBMZBEF3YQ%2BteGOkHAFoEBD%2Bk3NPRWsOExNkqWP9kuQQF%2F7tCg8PCgETFxDMGBMAAAABAGQAAARMBG0AGAAAJTUhATMBMwkBMwEzASEVIyIGHQEhNTQmIwK8AZD%2B8qr%2B8qr%2B1P7Uqv7yqv7yAZAyFR0BkB0VZGQBLAEsAU3%2Bs%2F7U%2FtRkHRUyMhUdAAAAAAEAeQAABDcEmwAvAAABMhYXHgEVFAYHFhUUBiMiJxUyFh0BITU0NjM1BiMiJjU0Ny4BNTQ2MzIXNCY1NDYCWF6TGll7OzIJaUo3LRUd%2FtQdFS03SmkELzlpSgUSAqMEm3FZBoNaPWcfHRpKaR77HRUyMhUd%2Bx5pShIUFVg1SmkCAhAFdKMAAAAGACcAFASJBJwAEQAqAEIASgBiAHsAAAEWEgIHDgEiJicmAhI3PgEyFgUiBw4BBwYWHwEWMzI3Njc2Nz4BLwEmJyYXIgcOAQcGFh8BFjMyNz4BNz4BLwEmJyYWJiIGFBYyNjciBw4BBw4BHwEWFxYzMjc%2BATc2Ji8BJhciBwYHBgcOAR8BFhcWMzI3PgE3NiYvASYD8m9PT29T2dzZU29PT29T2dzZ%2Fj0EBHmxIgQNDCQDBBcGG0dGYAsNAwkDCwccBAVQdRgEDA0iBAQWBhJROQwMAwkDCwf5Y4xjY4xjVhYGElE6CwwDCQMLBwgEBVB1GAQNDCIEjRcGG0dGYAsNAwkDCwcIBAR5sSIEDQwkAwPyb%2F7V%2FtVvU1dXU28BKwErb1NXVxwBIrF5DBYDCQEWYEZHGwMVDCMNBgSRAhh1UA0WAwkBFTpREgMVCyMMBwT6Y2OMY2MVFTpREQQVCyMMBwQCGHVQDRYDCQEkFmBGRxsDFQwjDQYEASKxeQwWAwkBAAAABQBkAAAD6ASwAAwADwAWABwAIgAAASERIzUhFSERNDYzIQEjNQMzByczNTMDISImNREFFRQGKwECvAEstP6s%2FoQPCgI%2FASzIZKLU1KJktP51Cg8DhA8KwwMg%2FoTIyALzCg%2F%2B1Mj84NTUyP4MDwoBi8jDCg8AAAAABQBkAAAD6ASwAAkADAATABoAIQAAASERCQERNDYzIQEjNRMjFSM1IzcDISImPQEpARUUBisBNQK8ASz%2Bov3aDwoCPwEsyD6iZKLUqv6dCg8BfAIIDwqbAyD9%2BAFe%2FdoERwoP%2FtTI%2FHzIyNT%2BZA8KNzcKD1AAAAAAAwAAAAAEsAP0AAgAGQAfAAABIxUzFyERIzcFMzIeAhUhFSEDETM0PgIBMwMhASEEiqJkZP7UotT9EsgbGiEOASz9qMhkDiEaAnPw8PzgASwB9AMgyGQBLNTUBBErJGT%2BogHCJCsRBP5w%2FnAB9AAAAAMAAAAABEwETAAZADIAOQAAATMyFh0BMzIWHQEUBiMhIiY9ATQ2OwE1NDYFNTIWFREUBiMhIic3ARE0NjMVFBYzITI2AQc1IzUzNQKKZBUdMhUdHRX%2B1BUdHRUyHQFzKTs7Kf2oARP2%2Fro7KVg%2BASw%2BWP201MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7KfzgKTsE9gFGAUQpO5Y%2BWFj95tSiZKIAAwBkAAAEvARMABkANgA9AAABMzIWHQEzMhYdARQGIyEiJj0BNDY7ATU0NgU1MhYVESMRMxQOAiMhIiY1ETQ2MxUUFjMhMjYBBzUjNTM1AcJkFR0yFR0dFf7UFR0dFTIdAXMpO8jIDiEaG%2F2oKTs7KVg%2BASw%2BWAGc1MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7Kf4M%2FtQkKxEEOykDICk7lj5YWP3m1KJkogAAAAP%2FogAABRYE1AALABsAHwAACQEWBiMhIiY3ATYyEyMiBhcTHgE7ATI2NxM2JgMVMzUCkgJ9FyAs%2BwQsIBcCfRZARNAUGAQ6BCMUNhQjBDoEGODIBK37sCY3NyYEUCf%2BTB0U%2FtIUHR0UAS4UHf4MZGQAAAAACQAAAAAETARMAA8AHwAvAD8ATwBfAG8AfwCPAAABMzIWHQEUBisBIiY9ATQ2EzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBqfoKDw8K%2BgoPDwr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPDwRMDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg%2F%2B1A8KlgoPDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKDw8KlgoPAAAAAwAAAAAEsAUUABkAKQAzAAABMxUjFSEyFg8BBgchJi8BJjYzITUjNTM1MwEhMhYUBisBFyE3IyImNDYDITIWHQEhNTQ2ArxkZAFePjEcQiko%2FPwoKUIcMT4BXmRkyP4%2BArwVHR0VDIn8SooNFR0dswRMFR37UB0EsMhkTzeEUzMzU4Q3T2TIZPx8HSodZGQdKh3%2B1B0VMjIVHQAABAAAAAAEsAUUAAUAGQArADUAAAAyFhUjNAchFhUUByEyFg8BIScmNjMhJjU0AyEyFhQGKwEVBSElNSMiJjQ2AyEyFh0BITU0NgIwUDnCPAE6EgMBSCkHIq%2F9WrIiCikBSAOvArwVHR0VlgET%2FEoBE5YVHR2zBEwVHftQHQUUOykpjSUmCBEhFpGRFiERCCb%2BlR0qHcjIyMgdKh39qB0VMjIVHQAEAAAAAASwBJ0ABwAUACQALgAAADIWFAYiJjQTMzIWFRQXITY1NDYzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYCDZZqapZqty4iKyf%2BvCcrI%2F7NArwVHR0VDYr8SokMFR0dswRMFR37UB0EnWqWamqW%2Fus5Okxra0w6Of5yHSodZGQdKh3%2B1B0VMjIVHQAEAAAAAASwBRQADwAcACwANgAAATIeARUUBiImNTQ3FzcnNhMzMhYVFBchNjU0NjMBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYL1szb5xvIpBvoyIfLiIrJ%2F68Jysj%2Fs0CvBUdHRUNivxKiQwVHR2zBEwVHftQHQUUa4s2Tm9vTj5Rj2%2BjGv4KOTpMa2tMOjn%2Bch0qHWRkHSod%2FtQdFTIyFR0AAAADAAAAAASwBRIAEgAiACwAAAEFFSEUHgMXIS4BNTQ%2BAjcBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYASz%2B1CU%2FP00T%2Fe48PUJtj0r%2BogK8FR0dFQ2K%2FEqJDBUdHbMETBUd%2B1AdBLChizlmUT9IGVO9VFShdksE%2FH4dKh1kZB0qHf7UHRUyMhUdAAIAyAAAA%2BgFFAAPACkAAAAyFh0BHgEdASE1NDY3NTQDITIWFyMVMxUjFTMVIxUzFAYjISImNRE0NgIvUjsuNv5wNi5kAZA2XBqsyMjIyMh1U%2F5wU3V1BRQ7KU4aXDYyMjZcGk4p%2Fkc2LmRkZGRkU3V1UwGQU3UAAAMAZP%2F%2FBEwETAAPAC8AMwAAEyEyFhURFAYjISImNRE0NgMhMhYdARQGIyEXFhQGIi8BIQcGIiY0PwEhIiY9ATQ2BQchJ5YDhBUdHRX8fBUdHQQDtgoPDwr%2B5eANGiUNWP30Vw0mGg3g%2Ft8KDw8BqmQBRGQETB0V%2FgwVHR0VAfQVHf1EDwoyCg%2FgDSUbDVhYDRslDeAPCjIKD2RkZAAAAAAEAAAAAASwBEwAGQAjAC0ANwAAEyEyFh0BIzQmKwEiBhUjNCYrASIGFSM1NDYDITIWFREhETQ2ExUUBisBIiY9ASEVFAYrASImPQHIAyBTdWQ7KfopO2Q7KfopO2R1EQPoKTv7UDvxHRVkFR0D6B0VZBUdBEx1U8gpOzspKTs7KchTdf4MOyn%2B1AEsKTv%2BDDIVHR0VMjIVHR0VMgADAAEAAASpBKwADQARABsAAAkBFhQPASEBJjQ3ATYyCQMDITIWHQEhNTQ2AeACqh8fg%2F4f%2FfsgIAEnH1n%2BrAFWAS%2F%2Bq6IDIBUd%2FHwdBI39VR9ZH4MCBh9ZHwEoH%2F5u%2FqoBMAFV%2FBsdFTIyFR0AAAAAAgCPAAAEIQSwABcALwAAAQMuASMhIgYHAwYWMyEVFBYyNj0BMzI2AyE1NDY7ATU0NjsBETMRMzIWHQEzMhYVBCG9CCcV%2FnAVJwi9CBMVAnEdKh19FROo%2Fa0dFTIdFTDILxUdMhUdAocB%2BhMcHBP%2BBhMclhUdHRWWHP2MMhUdMhUdASz%2B1B0VMh0VAAAEAAAAAASwBLAADQAQAB8AIgAAASERFAYjIREBNTQ2MyEBIzUBIREUBiMhIiY1ETQ2MyEBIzUDhAEsDwr%2Bif7UDwoBdwEsyP2oASwPCv12Cg8PCgF3ASzIAyD9wQoPAk8BLFQKD%2F7UyP4M%2FcEKDw8KA7YKD%2F7UyAAC%2F5wAZAUUBEcARgBWAAABMzIeAhcWFxY2NzYnJjc%2BARYXFgcOASsBDgEPAQ4BKwEiJj8BBisBIicHDgErASImPwEmLwEuAT0BNDY7ATY3JyY2OwE2BSMiBh0BFBY7ATI2PQE0JgHkw0uOakkMEhEfQwoKGRMKBQ8XDCkCA1Y9Pgc4HCcDIhVkFRgDDDEqwxgpCwMiFWQVGAMaVCyfExwdFXwLLW8QBxXLdAFF%2BgoPDwr6Cg8PBEdBa4pJDgYKISAiJRsQCAYIDCw9P1c3fCbqFB0dFEYOCEAUHR0UnUplNQcmFTIVHVdPXw4TZV8PCjIKDw8KMgoPAAb%2FnP%2FmBRQEfgAJACQANAA8AFIAYgAAASU2Fh8BFgYPASUzMhYfASEyFh0BFAYHBQYmJyYjISImPQE0NhcjIgYdARQ7ATI2NTQmJyYEIgYUFjI2NAE3PgEeARceAT8BFxYGDwEGJi8BJjYlBwYfAR4BPwE2Jy4BJy4BAoEBpxMuDiAOAxCL%2FCtqQ0geZgM3FR0cE%2F0fFyIJKjr%2B1D5YWLlQExIqhhALIAsSAYBALS1ALf4PmBIgHhMQHC0aPzANITNQL3wpgigJASlmHyElDR0RPRMFAhQHCxADhPcICxAmDyoNeMgiNtQdFTIVJgeEBBQPQ1g%2ByD5YrBwVODMQEAtEERzJLUAtLUD%2B24ITChESEyMgAwWzPUkrRSgJL5cvfRxYGyYrDwkLNRAhFEgJDAQAAAAAAwBkAAAEOQSwAFEAYABvAAABMzIWHQEeARcWDgIPATIeBRUUDgUjFRQGKwEiJj0BIxUUBisBIiY9ASMiJj0BNDY7AREjIiY9ATQ2OwE1NDY7ATIWHQEzNTQ2AxUhMj4CNTc0LgMjARUhMj4CNTc0LgMjAnGWCg9PaAEBIC4uEBEGEjQwOiodFyI2LUAjGg8KlgoPZA8KlgoPrwoPDwpLSwoPDwqvDwqWCg9kD9cBBxwpEwsBAQsTKRz%2B%2BQFrHCkTCwEBCxMpHASwDwptIW1KLk0tHwYGAw8UKDJOLTtdPCoVCwJLCg8PCktLCg8PCksPCpYKDwJYDwqWCg9LCg8PCktLCg%2F%2B1MgVHR0LCgQOIhoW%2FnDIFR0dCwoEDiIaFgAAAwAEAAIEsASuABcAKQAsAAATITIWFREUBg8BDgEjISImJy4CNRE0NgQiDgQPARchNy4FAyMT1AMMVnokEhIdgVL9xFKCHAgYKHoCIIx9VkcrHQYGnAIwnAIIIClJVSGdwwSuelb%2BYDO3QkJXd3ZYHFrFMwGgVnqZFyYtLSUMDPPzBQ8sKDEj%2FsIBBQACAMgAAAOEBRQADwAZAAABMzIWFREUBiMhIiY1ETQ2ARUUBisBIiY9AQHblmesVCn%2BPilUrAFINhWWFTYFFKxn%2FgwpVFQpAfRnrPwY4RU2NhXhAAACAMgAAAOEBRQADwAZAAABMxQWMxEUBiMhIiY1ETQ2ARUUBisBIiY9AQHbYLOWVCn%2BPilUrAFINhWWFTYFFJaz%2FkIpVFQpAfRnrPwY4RU2NhXhAAACAAAAFAUOBBoAFAAaAAAJASUHFRcVJwc1NzU0Jj4CPwEnCQEFJTUFJQUO%2FYL%2Bhk5klpZkAQEBBQQvkwKCAVz%2Bov6iAV4BXgL%2F%2FuWqPOCWx5SVyJb6BA0GCgYDKEEBG%2F1ipqaTpaUAAAMAZAH0BLADIAAHAA8AFwAAEjIWFAYiJjQkMhYUBiImNCQyFhQGIiY0vHxYWHxYAeh8WFh8WAHofFhYfFgDIFh8WFh8WFh8WFh8WFh8WFh8AAAAAAMBkAAAArwETAAHAA8AFwAAADIWFAYiJjQSMhYUBiImNBIyFhQGIiY0Aeh8WFh8WFh8WFh8WFh8WFh8WARMWHxYWHz%2ByFh8WFh8%2FshYfFhYfAAAAAMAZABkBEwETAAPAB8ALwAAEyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2fQO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PBEwPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoPAAAABAAAAAAEsASwAA8AHwAvADMAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFhURFAYjISImNRE0NhcVITUBXgH0ory7o%2F4Mpbm5Asv9qCk7OykCWCk7O%2F2xAfQVHR0V%2FgwVHR1HAZAEsLuj%2FgylubmlAfSlucg7Kf2oKTs7KQJYKTtkHRX%2B1BUdHRUBLBUdZMjIAAAAAAEAZABkBLAETAA7AAATITIWFAYrARUzMhYUBisBFTMyFhQGKwEVMzIWFAYjISImNDY7ATUjIiY0NjsBNSMiJjQ2OwE1IyImNDaWA%2BgVHR0VMjIVHR0VMjIVHR0VMjIVHR0V%2FBgVHR0VMjIVHR0VMjIVHR0VMjIVHR0ETB0qHcgdKh3IHSodyB0qHR0qHcgdKh3IHSodyB0qHQAAAAYBLAAFA%2BgEowAHAA0AEwAZAB8AKgAAAR4BBgcuATYBMhYVIiYlFAYjNDYBMhYVIiYlFAYjNDYDFRQGIiY9ARYzMgKKVz8%2FV1c%2FP%2F75fLB8sAK8sHyw%2FcB8sHywArywfLCwHSodKAMRBKNDsrJCQrKy%2FsCwfLB8fLB8sP7UsHywfHywfLD%2B05AVHR0VjgQAAAH%2FtQDIBJQDgQBCAAABNzYXAR4BBw4BKwEyFRQOBCsBIhE0NyYiBxYVECsBIi4DNTQzIyImJyY2NwE2HwEeAQ4BLwEHIScHBi4BNgLpRRkUASoLCAYFGg8IAQQNGyc%2FKZK4ChRUFQu4jjBJJxkHAgcPGQYGCAsBKhQaTBQVCiMUM7YDe7YsFCMKFgNuEwYS%2FtkLHw8OEw0dNkY4MhwBIBgXBAQYF%2F7gKjxTQyMNEw4PHwoBKBIHEwUjKBYGDMHBDAUWKCMAAAAAAgAAAAAEsASwACUAQwAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjNC4DKwERFBYXMxUjNTI1ESMiDgMVIzUhBLAyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj9RBkIChgQEWQZDQzIMmQREBgKCBkB9AOEFSAVDggDAfyuFhkBAmRkAQUJFQ4DUgEDCA4VIBUBLP0SDxMKBQH%2BVwsNATIyGQGpAQUKEw%2BWAAAAAAMAAAAABEwErgAdACAAMAAAATUiJy4BLwEBIwEGBw4BDwEVITUiJj8BIRcWBiMVARsBARUUBiMhIiY9ATQ2MyEyFgPoGR4OFgUE%2Ft9F%2FtQSFQkfCwsBETE7EkUBJT0NISf%2B7IZ5AbEdFfwYFR0dFQPoFR0BLDIgDiIKCwLr%2FQ4jFQkTBQUyMisusKYiQTIBhwFW%2Fqr942QVHR0VZBUdHQADAAAAAASwBLAADwBHAEoAABMhMhYVERQGIyEiJjURNDYFIyIHAQYHBgcGHQEUFjMhMjY9ATQmIyInJj8BIRcWBwYjIgYdARQWMyEyNj0BNCYnIicmJyMBJhMjEzIETBUdHRX7tBUdHQJGRg0F%2FtUREhImDAsJAREIDAwINxAKCj8BCjkLEQwYCAwMCAE5CAwLCBEZGQ8B%2FuAFDsVnBLAdFfu0FR0dFQRMFR1SDP0PIBMSEAUNMggMDAgyCAwXDhmjmR8YEQwIMggMDAgyBwwBGRskAuwM%2FgUBCAAABAAAAAAEsASwAAMAEwAjACcAAAEhNSEFITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NhcRIREEsPtQBLD7ggGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHUcBLARMZMgdFfx8FR0dFQOEFR0dFf5wFR0dFQGQFR1k%2FtQBLAAEAAAAAASwBLAADwAfACMAJwAAEyEyFhURFAYjISImNRE0NgEhMhYVERQGIyEiJjURNDYXESEREyE1ITIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR1HASzI%2B1AEsASwHRX8fBUdHRUDhBUd%2FgwdFf5wFR0dFQGQFR1k%2FtQBLP2oZAAAAAACAAAAZASwA%2BgAJwArAAATITIWFREzNTQ2MyEyFh0BMxUjFRQGIyEiJj0BIxEUBiMhIiY1ETQ2AREhETIBkBUdZB0VAZAVHWRkHRX%2BcBUdZB0V%2FnAVHR0CnwEsA%2BgdFf6ilhUdHRWWZJYVHR0Vlv6iFR0dFQMgFR3%2B1P7UASwAAAQAAAAABLAEsAADABMAFwAnAAAzIxEzFyEyFhURFAYjISImNRE0NhcRIREBITIWFREUBiMhIiY1ETQ2ZGRklgGQFR0dFf5wFR0dRwEs%2FqIDhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAAAAgBkAAAETASwACcAKwAAATMyFhURFAYrARUhMhYVERQGIyEiJjURNDYzITUjIiY1ETQ2OwE1MwcRIRECWJYVHR0VlgHCFR0dFfx8FR0dFQFelhUdHRWWZMgBLARMHRX%2BcBUdZB0V%2FnAVHR0VAZAVHWQdFQGQFR1kyP7UASwAAAAEAAAAAASwBLAAAwATABcAJwAAISMRMwUhMhYVERQGIyEiJjURNDYXESERASEyFhURFAYjISImNRE0NgSwZGT9dgGQFR0dFf5wFR0dRwEs%2FK4DhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAEBLAAwA28EgAAPAAAJAQYjIiY1ETQ2MzIXARYUA2H%2BEhcSDhAQDhIXAe4OAjX%2BEhcbGQPoGRsX%2FhIOKgAAAAABAUEAMgOEBH4ACwAACQE2FhURFAYnASY0AU8B7h0qKh3%2BEg4CewHuHREp%2FBgpER0B7g4qAAAAAAEAMgFBBH4DhAALAAATITIWBwEGIicBJjZkA%2BgpER3%2BEg4qDv4SHREDhCod%2FhIODgHuHSoAAAAAAQAyASwEfgNvAAsAAAkBFgYjISImNwE2MgJ7Ae4dESn8GCkRHQHuDioDYf4SHSoqHQHuDgAAAAACAAgAAASwBCgABgAKAAABFQE1LQE1ASE1IQK8%2FUwBnf5jBKj84AMgAuW2%2Fr3dwcHd%2B9jIAAAAAAIAAABkBLAEsAALADEAAAEjFTMVIREzNSM1IQEzND4FOwERFAYPARUhNSIuAzURMzIeBRUzESEEsMjI%2FtTIyAEs%2B1AyCAsZEyYYGWQyGRkBkAQOIhoWZBkYJhMZCwgy%2FOADhGRkASxkZP4MFSAVDggDAf3aFhkBAmRkAQUJFQ4CJgEDCA4VIBUBLAAAAgAAAAAETAPoACUAMQAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjFTMVIREzNSM1IQMgMggLGRMmGBlkMhkZ%2FnAEDiIaFmQZGCYTGQsIMgMgASzIyP7UyMgBLAK8FSAVDggDAf3aFhkCAWRkAQUJFQ4CJgEDCA4VIBUBLPzgZGQBLGRkAAABAMgAZgNyBEoAEgAAATMyFgcJARYGKwEiJwEmNDcBNgK9oBAKDP4wAdAMChCgDQr%2BKQcHAdcKBEoWDP4w%2FjAMFgkB1wgUCAHXCQAAAQE%2BAGYD6ARKABIAAAEzMhcBFhQHAQYrASImNwkBJjYBU6ANCgHXBwf%2BKQoNoBAKDAHQ%2FjAMCgRKCf4pCBQI%2FikJFgwB0AHQDBYAAAEAZgDIBEoDcgASAAAAFh0BFAcBBiInASY9ATQ2FwkBBDQWCf4pCBQI%2FikJFgwB0AHQA3cKEKANCv4pBwcB1woNoBAKDP4wAdAAAAABAGYBPgRKA%2BgAEgAACQEWHQEUBicJAQYmPQE0NwE2MgJqAdcJFgz%2BMP4wDBYJAdcIFAPh%2FikKDaAQCgwB0P4wDAoQoA0KAdcHAAAAAgDZ%2F%2FkEPQSwAAUAOgAAARQGIzQ2BTMyFh8BNjc%2BAh4EBgcOBgcGIiYjIgYiJy4DLwEuAT4EHgEXJyY2A%2BiwfLD%2BVmQVJgdPBQsiKFAzRyorDwURAQQSFyozTSwNOkkLDkc3EDlfNyYHBw8GDyUqPjdGMR%2BTDA0EsHywfLDIHBPCAQIGBwcFDx81S21DBxlLR1xKQhEFBQcHGWt0bCQjP2hJNyATBwMGBcASGAAAAAACAMgAFQOEBLAAFgAaAAATITIWFREUBisBEQcGJjURIyImNRE0NhcVITX6AlgVHR0Vlv8TGpYVHR2rASwEsB0V%2FnAVHf4MsgkQFQKKHRUBkBUdZGRkAAAAAgDIABkETASwAA4AEgAAEyEyFhURBRElIREjETQ2ARU3NfoC7ic9%2FUQCWP1EZB8BDWQEsFEs%2FFt1A7Z9%2FBgEARc0%2FV1kFGQAAQAAAAECTW%2FDBF9fDzz1AB8EsAAAAADQdnOXAAAAANB2c5f%2FUf%2BcBdwFFAAAAAgAAgAAAAAAAAABAAAFFP%2BFAAAFFP9R%2FtQF3AABAAAAAAAAAAAAAAAAAAAAowG4ACgAAAAAAZAAAASwAAAEsABkBLAAAASwAAAEsABwAooAAAUUAAACigAABRQAAAGxAAABRQAAANgAAADYAAAAogAAAQQAAABIAAABBAAAAUUAAASwAGQEsAB7BLAAyASwAMgB9AAABLD%2F8gSwAAAEsAAABLD%2F8ASwAAAEsAAOBLAACQSwAGQEsP%2FTBLD%2F0wSwAAAEsAAABLAAAASwAAAEsAAABLAAJgSwAG4EsAAXBLAAFwSwABcEsABkBLAAGgSwAGQEsAAMBLAAZASwABcEsP%2BcBLAAZASwABcEsAAXBLAAAASwABcEsAAXBLAAFwSwAGQEsAAABLAAZASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAZASwAMgEsAAABLAAAASwADUEsABkBLAAyASw%2F7UEsAAhBLAAAASwAAAEsAAABLAAAASwAAAEsP%2BcBLAAAASwAAAEsAAABLAA2wSwABcEsAB1BLAAAASwAAAEsAAABLAACgSwAMgEsAAABLAAnQSwAMgEsADIBLAAyASwAAAEsP%2F%2BBLABLASwAGQEsACIBLABOwSwABcEsAAXBLAAFwSwABcEsAAXBLAAFwSwAAAEsAAXBLAAFwSwABcEsAAXBLAAAASwALcEsAC3BLAAAASwAAAEsABJBLAAFwSwAAAEsAAABLAAXQSw%2F9wEsP%2FcBLD%2FnwSwAGQEsAAABLAAAASwAAAEsABkBLD%2F%2FwSwAAAEsP9RBLAABgSwAAAEsAAABLABRQSwAAEEsAAABLD%2FnASwAEoEsAAUBLAAAASwAAAEsAAABLD%2FnASwAGEEsP%2F9BLAAFgSwABYEsAAWBLAAFgSwABgEsAAABMQAAASwAGQAAAAAAAD%2F2ABkADkAyAAAAScAZAAZABkAGQAZABkAGQAZAAAAAAAAAAAAAADZAAAAAAAOAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAMAZABkAAAAEAAAAAAAZP%2Bc%2F5z%2FnP%2Bc%2F5z%2FnP%2Bc%2F5wACQAJ%2F%2FL%2F8gBkAHkAJwBkAGQAAAAAAGT%2FogAAAAAAAAAAAAAAAADIAGQAAAABAI8AAP%2Bc%2F5wAZAAEAMgAyAAAAGQBkABkAAAAZAEs%2F7UAAAAAAAAAAAAAAAAAAABkAAABLAFBADIAMgAIAAAAAADIAT4AZgBmANkAyADIAAAAKgAqACoAKgCyAOgA6AFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BpAIGAiICfgKGAqwC5ANGA24DjAPEBAgEMgRiBKIE3AVcBboGcgb0ByAHYgfKCB4IYgi%2BCTYJhAm2Cd4KKApMCpQK4gswC4oLygwIDFgNKg1eDbAODg5oDrQPKA%2BmD%2BYQEhBUEJAQqhEqEXYRthIKEjgSfBLAExoTdBPQFCoU1BU8FagVzBYEFjYWYBawFv4XUhemGAIYLhhqGJYYsBjgGP4ZKBloGZQZxBnaGe4aNhpoGrga9hteG7QcMhyUHOIdHB1EHWwdlB28HeYeLh52HsAfYh%2FSIEYgviEyIXYhuCJAIpYiuCMOIyIjOCN6I8Ij4CQCJDAkXiSWJOIlNCVgJbwmFCZ%2BJuYnUCe8J%2FgoNChwKKwpoCnMKiYqSiqEKworeiwILGgsuizsLRwtiC30LiguZi6iLtgvDi9GL34vsi%2F4MD4whDDSMRIxYDGuMegyJDJeMpoy3jMiMz4zaDO2NBg0YDSoNNI1LDWeNeg2PjZ8Ntw3GjdON5I31DgQOEI4hjjIOQo5SjmIOcw6HDpsOpo63jugO9w8GDxQPKI8%2BD0yPew%2BOj6MPtQ%2FKD9uP6o%2F%2BkBIQIBAxkECQX5CGEKoQu5DGENCQ3ZDoEPKRBBEYESuRPZFWkW2RgZGdEa0RvZHNkd2R7ZH9kgWSDJITkhqSIZIzEkSSThJXkmESapKAkouSlIAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAAAAABAAxgABAAAAAAATABIAAAADAAEECQAAAGoAEgADAAEECQABACgAfAADAAEECQACAA4ApAADAAEECQADAEwAsgADAAEECQAEADgA%2FgADAAEECQAFAHgBNgADAAEECQAGADYBrgADAAEECQAIABYB5AADAAEECQAJABYB%2BgADAAEECQALACQCEAADAAEECQAMACQCNAADAAEECQATACQCWAADAAEECQDIABYCfAADAAEECQDJADACkgADAAEECdkDABoCwnd3dy5nbHlwaGljb25zLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMQA0ACAAYgB5ACAASgBhAG4AIABLAG8AdgBhAHIAaQBrAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4ARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAFIAZQBnAHUAbABhAHIAMQAuADAAMAA5ADsAVQBLAFcATgA7AEcATABZAFAASABJAEMATwBOAFMASABhAGwAZgBsAGkAbgBnAHMALQBSAGUAZwB1AGwAYQByAEcATABZAFAASABJAEMATwBOAFMAIABIAGEAbABmAGwAaQBuAGcAcwAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAOQA7AFAAUwAgADAAMAAxAC4AMAAwADkAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADgAMwAyADkARwBMAFkAUABIAEkAQwBPAE4AUwBIAGEAbABmAGwAaQBuAGcAcwAtAFIAZQBnAHUAbABhAHIASgBhAG4AIABLAG8AdgBhAHIAaQBrAEoAYQBuACAASwBvAHYAYQByAGkAawB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQBXAGUAYgBmAG8AbgB0ACAAMQAuADAAVwBlAGQAIABPAGMAdAAgADIAOQAgADAANgA6ADMANgA6ADAANwAgADIAMAAxADQARgBvAG4AdAAgAFMAcQB1AGkAcgByAGUAbAAAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAABFwAAAQIBAwADAA0ADgEEAJYBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMA7wEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE%2BAT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG%2FAcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB%2BgH7AfwB%2FQH%2BAf8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgZnbHlwaDEGZ2x5cGgyB3VuaTAwQTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMkYHdW5pMjA1RgRFdXJvB3VuaTIwQkQHdW5pMjMxQgd1bmkyNUZDB3VuaTI2MDEHdW5pMjZGQQd1bmkyNzA5B3VuaTI3MEYHdW5pRTAwMQd1bmlFMDAyB3VuaUUwMDMHdW5pRTAwNQd1bmlFMDA2B3VuaUUwMDcHdW5pRTAwOAd1bmlFMDA5B3VuaUUwMTAHdW5pRTAxMQd1bmlFMDEyB3VuaUUwMTMHdW5pRTAxNAd1bmlFMDE1B3VuaUUwMTYHdW5pRTAxNwd1bmlFMDE4B3VuaUUwMTkHdW5pRTAyMAd1bmlFMDIxB3VuaUUwMjIHdW5pRTAyMwd1bmlFMDI0B3VuaUUwMjUHdW5pRTAyNgd1bmlFMDI3B3VuaUUwMjgHdW5pRTAyOQd1bmlFMDMwB3VuaUUwMzEHdW5pRTAzMgd1bmlFMDMzB3VuaUUwMzQHdW5pRTAzNQd1bmlFMDM2B3VuaUUwMzcHdW5pRTAzOAd1bmlFMDM5B3VuaUUwNDAHdW5pRTA0MQd1bmlFMDQyB3VuaUUwNDMHdW5pRTA0NAd1bmlFMDQ1B3VuaUUwNDYHdW5pRTA0Nwd1bmlFMDQ4B3VuaUUwNDkHdW5pRTA1MAd1bmlFMDUxB3VuaUUwNTIHdW5pRTA1Mwd1bmlFMDU0B3VuaUUwNTUHdW5pRTA1Ngd1bmlFMDU3B3VuaUUwNTgHdW5pRTA1OQd1bmlFMDYwB3VuaUUwNjIHdW5pRTA2Mwd1bmlFMDY0B3VuaUUwNjUHdW5pRTA2Ngd1bmlFMDY3B3VuaUUwNjgHdW5pRTA2OQd1bmlFMDcwB3VuaUUwNzEHdW5pRTA3Mgd1bmlFMDczB3VuaUUwNzQHdW5pRTA3NQd1bmlFMDc2B3VuaUUwNzcHdW5pRTA3OAd1bmlFMDc5B3VuaUUwODAHdW5pRTA4MQd1bmlFMDgyB3VuaUUwODMHdW5pRTA4NAd1bmlFMDg1B3VuaUUwODYHdW5pRTA4Nwd1bmlFMDg4B3VuaUUwODkHdW5pRTA5MAd1bmlFMDkxB3VuaUUwOTIHdW5pRTA5Mwd1bmlFMDk0B3VuaUUwOTUHdW5pRTA5Ngd1bmlFMDk3B3VuaUUxMDEHdW5pRTEwMgd1bmlFMTAzB3VuaUUxMDQHdW5pRTEwNQd1bmlFMTA2B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaUUxMTAHdW5pRTExMQd1bmlFMTEyB3VuaUUxMTMHdW5pRTExNAd1bmlFMTE1B3VuaUUxMTYHdW5pRTExNwd1bmlFMTE4B3VuaUUxMTkHdW5pRTEyMAd1bmlFMTIxB3VuaUUxMjIHdW5pRTEyMwd1bmlFMTI0B3VuaUUxMjUHdW5pRTEyNgd1bmlFMTI3B3VuaUUxMjgHdW5pRTEyOQd1bmlFMTMwB3VuaUUxMzEHdW5pRTEzMgd1bmlFMTMzB3VuaUUxMzQHdW5pRTEzNQd1bmlFMTM2B3VuaUUxMzcHdW5pRTEzOAd1bmlFMTM5B3VuaUUxNDAHdW5pRTE0MQd1bmlFMTQyB3VuaUUxNDMHdW5pRTE0NAd1bmlFMTQ1B3VuaUUxNDYHdW5pRTE0OAd1bmlFMTQ5B3VuaUUxNTAHdW5pRTE1MQd1bmlFMTUyB3VuaUUxNTMHdW5pRTE1NAd1bmlFMTU1B3VuaUUxNTYHdW5pRTE1Nwd1bmlFMTU4B3VuaUUxNTkHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTE2Mwd1bmlFMTY0B3VuaUUxNjUHdW5pRTE2Ngd1bmlFMTY3B3VuaUUxNjgHdW5pRTE2OQd1bmlFMTcwB3VuaUUxNzEHdW5pRTE3Mgd1bmlFMTczB3VuaUUxNzQHdW5pRTE3NQd1bmlFMTc2B3VuaUUxNzcHdW5pRTE3OAd1bmlFMTc5B3VuaUUxODAHdW5pRTE4MQd1bmlFMTgyB3VuaUUxODMHdW5pRTE4NAd1bmlFMTg1B3VuaUUxODYHdW5pRTE4Nwd1bmlFMTg4B3VuaUUxODkHdW5pRTE5MAd1bmlFMTkxB3VuaUUxOTIHdW5pRTE5Mwd1bmlFMTk0B3VuaUUxOTUHdW5pRTE5Nwd1bmlFMTk4B3VuaUUxOTkHdW5pRTIwMAd1bmlFMjAxB3VuaUUyMDIHdW5pRTIwMwd1bmlFMjA0B3VuaUUyMDUHdW5pRTIwNgd1bmlFMjA5B3VuaUUyMTAHdW5pRTIxMQd1bmlFMjEyB3VuaUUyMTMHdW5pRTIxNAd1bmlFMjE1B3VuaUUyMTYHdW5pRTIxOAd1bmlFMjE5B3VuaUUyMjEHdW5pRTIyMwd1bmlFMjI0B3VuaUUyMjUHdW5pRTIyNgd1bmlFMjI3B3VuaUUyMzAHdW5pRTIzMQd1bmlFMjMyB3VuaUUyMzMHdW5pRTIzNAd1bmlFMjM1B3VuaUUyMzYHdW5pRTIzNwd1bmlFMjM4B3VuaUUyMzkHdW5pRTI0MAd1bmlFMjQxB3VuaUUyNDIHdW5pRTI0Mwd1bmlFMjQ0B3VuaUUyNDUHdW5pRTI0Ngd1bmlFMjQ3B3VuaUUyNDgHdW5pRTI0OQd1bmlFMjUwB3VuaUUyNTEHdW5pRTI1Mgd1bmlFMjUzB3VuaUUyNTQHdW5pRTI1NQd1bmlFMjU2B3VuaUUyNTcHdW5pRTI1OAd1bmlFMjU5B3VuaUUyNjAHdW5pRjhGRgZ1MUY1MTEGdTFGNkFBAAAAAAFUUMMXAAA%3D%29%20format%28%27truetype%27%29%2Curl%28data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE%2BPC9tZXRhZGF0YT4KPGRlZnM%2BCjxmb250IGlkPSJnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIiIGhvcml6LWFkdi14PSIxMjAwIiA%2BCjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMjAwIiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTI0MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUwMCIgLz4KPGdseXBoIGhvcml6LWFkdi14PSIwIiAvPgo8Z2x5cGggaG9yaXotYWR2LXg9IjQwMCIgLz4KPGdseXBoIHVuaWNvZGU9IiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSIqIiBkPSJNNjAwIDExMDBxMTUgMCAzNCAtMS41dDMwIC0zLjVsMTEgLTFxMTAgLTIgMTcuNSAtMTAuNXQ3LjUgLTE4LjV2LTIyNGwxNTggMTU4cTcgNyAxOCA4dDE5IC02bDEwNiAtMTA2cTcgLTggNiAtMTl0LTggLTE4bC0xNTggLTE1OGgyMjRxMTAgMCAxOC41IC03LjV0MTAuNSAtMTcuNXE2IC00MSA2IC03NXEwIC0xNSAtMS41IC0zNHQtMy41IC0zMGwtMSAtMTFxLTIgLTEwIC0xMC41IC0xNy41dC0xOC41IC03LjVoLTIyNGwxNTggLTE1OCBxNyAtNyA4IC0xOHQtNiAtMTlsLTEwNiAtMTA2cS04IC03IC0xOSAtNnQtMTggOGwtMTU4IDE1OHYtMjI0cTAgLTEwIC03LjUgLTE4LjV0LTE3LjUgLTEwLjVxLTQxIC02IC03NSAtNnEtMTUgMCAtMzQgMS41dC0zMCAzLjVsLTExIDFxLTEwIDIgLTE3LjUgMTAuNXQtNy41IDE4LjV2MjI0bC0xNTggLTE1OHEtNyAtNyAtMTggLTh0LTE5IDZsLTEwNiAxMDZxLTcgOCAtNiAxOXQ4IDE4bDE1OCAxNThoLTIyNHEtMTAgMCAtMTguNSA3LjUgdC0xMC41IDE3LjVxLTYgNDEgLTYgNzVxMCAxNSAxLjUgMzR0My41IDMwbDEgMTFxMiAxMCAxMC41IDE3LjV0MTguNSA3LjVoMjI0bC0xNTggMTU4cS03IDcgLTggMTh0NiAxOWwxMDYgMTA2cTggNyAxOSA2dDE4IC04bDE1OCAtMTU4djIyNHEwIDEwIDcuNSAxOC41dDE3LjUgMTAuNXE0MSA2IDc1IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iKyIgZD0iTTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzUwaDM1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zNTB2LTM1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzNTBoLTM1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNSBoMzUwdjM1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTA7IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTU7IiBkPSJNODI1IDExMDBoMjUwcTEwIDAgMTIuNSAtNXQtNS41IC0xM2wtMzY0IC0zNjRxLTYgLTYgLTExIC0xOGgyNjhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTEwMGgyNzVxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTE3NHEwIC0xMSAtNy41IC0xOC41dC0xOC41IC03LjVoLTE0OHEtMTEgMCAtMTguNSA3LjV0LTcuNSAxOC41djE3NCBoLTI3NXEtMTAgMCAtMTMgNnQzIDE0bDEyMCAxNjBxNiA4IDE4IDE0dDIyIDZoMTI1djEwMGgtMjc1cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMThxLTUgMTIgLTExIDE4bC0zNjQgMzY0cS04IDggLTUuNSAxM3QxMi41IDVoMjUwcTI1IDAgNDMgLTE4bDE2NCAtMTY0cTggLTggMTggLTh0MTggOGwxNjQgMTY0cTE4IDE4IDQzIDE4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDA7IiBob3Jpei1hZHYteD0iNjUwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMTsiIGhvcml6LWFkdi14PSIxMzAwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMjsiIGhvcml6LWFkdi14PSI2NTAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDAzOyIgaG9yaXotYWR2LXg9IjEzMDAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA0OyIgaG9yaXotYWR2LXg9IjQzMyIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDU7IiBob3Jpei1hZHYteD0iMzI1IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwNjsiIGhvcml6LWFkdi14PSIyMTYiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA3OyIgaG9yaXotYWR2LXg9IjIxNiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDg7IiBob3Jpei1hZHYteD0iMTYyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwOTsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDBhOyIgaG9yaXotYWR2LXg9IjcyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAyZjsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDVmOyIgaG9yaXotYWR2LXg9IjMyNSIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwYWM7IiBkPSJNNzQ0IDExOThxMjQyIDAgMzU0IC0xODlxNjAgLTEwNCA2NiAtMjA5aC0xODFxMCA0NSAtMTcuNSA4Mi41dC00My41IDYxLjV0LTU4IDQwLjV0LTYwLjUgMjR0LTUxLjUgNy41cS0xOSAwIC00MC41IC01LjV0LTQ5LjUgLTIwLjV0LTUzIC0zOHQtNDkgLTYyLjV0LTM5IC04OS41aDM3OWwtMTAwIC0xMDBoLTMwMHEtNiAtNTAgLTYgLTEwMGg0MDZsLTEwMCAtMTAwaC0zMDBxOSAtNzQgMzMgLTEzMnQ1Mi41IC05MXQ2MS41IC01NC41dDU5IC0yOSB0NDcgLTcuNXEyMiAwIDUwLjUgNy41dDYwLjUgMjQuNXQ1OCA0MXQ0My41IDYxdDE3LjUgODBoMTc0cS0zMCAtMTcxIC0xMjggLTI3OHEtMTA3IC0xMTcgLTI3NCAtMTE3cS0yMDYgMCAtMzI0IDE1OHEtMzYgNDggLTY5IDEzM3QtNDUgMjA0aC0yMTdsMTAwIDEwMGgxMTJxMSA0NyA2IDEwMGgtMjE4bDEwMCAxMDBoMTM0cTIwIDg3IDUxIDE1My41dDYyIDEwMy41cTExNyAxNDEgMjk3IDE0MXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMGJkOyIgZD0iTTQyOCAxMjAwaDM1MHE2NyAwIDEyMCAtMTN0ODYgLTMxdDU3IC00OS41dDM1IC01Ni41dDE3IC02NC41dDYuNSAtNjAuNXQwLjUgLTU3di0xNi41di0xNi41cTAgLTM2IC0wLjUgLTU3dC02LjUgLTYxdC0xNyAtNjV0LTM1IC01N3QtNTcgLTUwLjV0LTg2IC0zMS41dC0xMjAgLTEzaC0xNzhsLTIgLTEwMGgyODhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMzh2LTE3NXEwIC0xMSAtNS41IC0xOCB0LTE1LjUgLTdoLTE0OXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE3NWgtMjY3cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMTd2MTAwaC0yNjdxLTEwIDAgLTEzIDZ0MyAxNGwxMjAgMTYwcTYgOCAxOCAxNHQyMiA2aDExN3Y0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNjAwIDEwMDB2LTMwMGgyMDNxNjQgMCA4Ni41IDMzdDIyLjUgMTE5cTAgODQgLTIyLjUgMTE2dC04Ni41IDMyaC0yMDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjIxMjsiIGQ9Ik0yNTAgNzAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjMxYjsiIGQ9Ik0xMDAwIDEyMDB2LTE1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTEwMHEwIC05MSAtNDkuNSAtMTY1LjV0LTEzMC41IC0xMDkuNXE4MSAtMzUgMTMwLjUgLTEwOS41dDQ5LjUgLTE2NS41di0xNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtODAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MTUwcTAgOTEgNDkuNSAxNjUuNXQxMzAuNSAxMDkuNXEtODEgMzUgLTEzMC41IDEwOS41IHQtNDkuNSAxNjUuNXYxMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxNTBoODAwek00MDAgMTAwMHYtMTAwcTAgLTYwIDMyLjUgLTEwOS41dDg3LjUgLTczLjVxMjggLTEyIDQ0IC0zN3QxNiAtNTV0LTE2IC01NXQtNDQgLTM3cS01NSAtMjQgLTg3LjUgLTczLjV0LTMyLjUgLTEwOS41di0xNTBoNDAwdjE1MHEwIDYwIC0zMi41IDEwOS41dC04Ny41IDczLjVxLTI4IDEyIC00NCAzN3QtMTYgNTV0MTYgNTV0NDQgMzcgcTU1IDI0IDg3LjUgNzMuNXQzMi41IDEwOS41djEwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI1ZmM7IiBob3Jpei1hZHYteD0iNTAwIiBkPSJNMCAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI2MDE7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA2LjVxMCAtMTIxIC04NSAtMjA3LjV0LTIwNSAtODYuNWgtNzUwcS03OSAwIC0xMzUuNSA1N3QtNTYuNSAxMzdxMCA2OSA0Mi41IDEyMi41dDEwOC41IDY3LjVxLTIgMTIgLTIgMzdxMCAxNTMgMTA4IDI2MC41dDI2MCAxMDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNmZhOyIgZD0iTTc3NCAxMTkzLjVxMTYgLTkuNSAyMC41IC0yN3QtNS41IC0zMy41bC0xMzYgLTE4N2w0NjcgLTc0NmgzMHEyMCAwIDM1IC0xOC41dDE1IC0zOS41di00MmgtMTIwMHY0MnEwIDIxIDE1IDM5LjV0MzUgMTguNWgzMGw0NjggNzQ2bC0xMzUgMTgzcS0xMCAxNiAtNS41IDM0dDIwLjUgMjh0MzQgNS41dDI4IC0yMC41bDExMSAtMTQ4bDExMiAxNTBxOSAxNiAyNyAyMC41dDM0IC01ek02MDAgMjAwaDM3N2wtMTgyIDExMmwtMTk1IDUzNHYtNjQ2eiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNzA5OyIgZD0iTTI1IDExMDBoMTE1MHExMCAwIDEyLjUgLTV0LTUuNSAtMTNsLTU2NCAtNTY3cS04IC04IC0xOCAtOHQtMTggOGwtNTY0IDU2N3EtOCA4IC01LjUgMTN0MTIuNSA1ek0xOCA4ODJsMjY0IC0yNjRxOCAtOCA4IC0xOHQtOCAtMThsLTI2NCAtMjY0cS04IC04IC0xMyAtNS41dC01IDEyLjV2NTUwcTAgMTAgNSAxMi41dDEzIC01LjV6TTkxOCA2MThsMjY0IDI2NHE4IDggMTMgNS41dDUgLTEyLjV2LTU1MHEwIC0xMCAtNSAtMTIuNXQtMTMgNS41IGwtMjY0IDI2NHEtOCA4IC04IDE4dDggMTh6TTgxOCA0ODJsMzY0IC0zNjRxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xMTUwcS0xMCAwIC0xMi41IDV0NS41IDEzbDM2NCAzNjRxOCA4IDE4IDh0MTggLThsMTY0IC0xNjRxOCAtOCAxOCAtOHQxOCA4bDE2NCAxNjRxOCA4IDE4IDh0MTggLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjcwZjsiIGQ9Ik0xMDExIDEyMTBxMTkgMCAzMyAtMTNsMTUzIC0xNTNxMTMgLTE0IDEzIC0zM3QtMTMgLTMzbC05OSAtOTJsLTIxNCAyMTRsOTUgOTZxMTMgMTQgMzIgMTR6TTEwMTMgODAwbC02MTUgLTYxNGwtMjE0IDIxNGw2MTQgNjE0ek0zMTcgOTZsLTMzMyAtMTEybDExMCAzMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik03MDAgNjUwdi01NTBoMjUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtODAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyNTB2NTUwbC01MDAgNTUwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik0zNjggMTAxN2w2NDUgMTYzcTM5IDE1IDYzIDB0MjQgLTQ5di04MzFxMCAtNTUgLTQxLjUgLTk1LjV0LTExMS41IC02My41cS03OSAtMjUgLTE0NyAtNC41dC04NiA3NXQyNS41IDExMS41dDEyMi41IDgycTcyIDI0IDEzOCA4djUyMWwtNjAwIC0xNTV2LTYwNnEwIC00MiAtNDQgLTkwdC0xMDkgLTY5cS03OSAtMjYgLTE0NyAtNS41dC04NiA3NS41dDI1LjUgMTExLjV0MTIyLjUgODIuNXE3MiAyNCAxMzggN3Y2MzlxMCAzOCAxNC41IDU5IHQ1My41IDM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNNTAwIDExOTFxMTAwIDAgMTkxIC0zOXQxNTYuNSAtMTA0LjV0MTA0LjUgLTE1Ni41dDM5IC0xOTFsLTEgLTJsMSAtNXEwIC0xNDEgLTc4IC0yNjJsMjc1IC0yNzRxMjMgLTI2IDIyLjUgLTQ0LjV0LTIyLjUgLTQyLjVsLTU5IC01OHEtMjYgLTIwIC00Ni41IC0yMHQtMzkuNSAyMGwtMjc1IDI3NHEtMTE5IC03NyAtMjYxIC03N2wtNSAxbC0yIC0xcS0xMDAgMCAtMTkxIDM5dC0xNTYuNSAxMDQuNXQtMTA0LjUgMTU2LjV0LTM5IDE5MSB0MzkgMTkxdDEwNC41IDE1Ni41dDE1Ni41IDEwNC41dDE5MSAzOXpNNTAwIDEwMjJxLTg4IDAgLTE2MiAtNDN0LTExNyAtMTE3dC00MyAtMTYydDQzIC0xNjJ0MTE3IC0xMTd0MTYyIC00M3QxNjIgNDN0MTE3IDExN3Q0MyAxNjJ0LTQzIDE2MnQtMTE3IDExN3QtMTYyIDQzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDU7IiBkPSJNNjQ5IDk0OXE0OCA2OCAxMDkuNSAxMDR0MTIxLjUgMzguNXQxMTguNSAtMjB0MTAyLjUgLTY0dDcxIC0xMDAuNXQyNyAtMTIzcTAgLTU3IC0zMy41IC0xMTcuNXQtOTQgLTEyNC41dC0xMjYuNSAtMTI3LjV0LTE1MCAtMTUyLjV0LTE0NiAtMTc0cS02MiA4NSAtMTQ1LjUgMTc0dC0xNTAgMTUyLjV0LTEyNi41IDEyNy41dC05My41IDEyNC41dC0zMy41IDExNy41cTAgNjQgMjggMTIzdDczIDEwMC41dDEwNCA2NHQxMTkgMjAgdDEyMC41IC0zOC41dDEwNC41IC0xMDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNjsiIGQ9Ik00MDcgODAwbDEzMSAzNTNxNyAxOSAxNy41IDE5dDE3LjUgLTE5bDEyOSAtMzUzaDQyMXEyMSAwIDI0IC04LjV0LTE0IC0yMC41bC0zNDIgLTI0OWwxMzAgLTQwMXE3IC0yMCAtMC41IC0yNS41dC0yNC41IDYuNWwtMzQzIDI0NmwtMzQyIC0yNDdxLTE3IC0xMiAtMjQuNSAtNi41dC0wLjUgMjUuNWwxMzAgNDAwbC0zNDcgMjUxcS0xNyAxMiAtMTQgMjAuNXQyMyA4LjVoNDI5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNNDA3IDgwMGwxMzEgMzUzcTcgMTkgMTcuNSAxOXQxNy41IC0xOWwxMjkgLTM1M2g0MjFxMjEgMCAyNCAtOC41dC0xNCAtMjAuNWwtMzQyIC0yNDlsMTMwIC00MDFxNyAtMjAgLTAuNSAtMjUuNXQtMjQuNSA2LjVsLTM0MyAyNDZsLTM0MiAtMjQ3cS0xNyAtMTIgLTI0LjUgLTYuNXQtMC41IDI1LjVsMTMwIDQwMGwtMzQ3IDI1MXEtMTcgMTIgLTE0IDIwLjV0MjMgOC41aDQyOXpNNDc3IDcwMGgtMjQwbDE5NyAtMTQybC03NCAtMjI2IGwxOTMgMTM5bDE5NSAtMTQwbC03NCAyMjlsMTkyIDE0MGgtMjM0bC03OCAyMTF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwODsiIGQ9Ik02MDAgMTIwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTI1MHEwIC00NiAtMzEgLTk4dC02OSAtNTJ2LTc1cTAgLTEwIDYgLTIxLjV0MTUgLTE3LjVsMzU4IC0yMzBxOSAtNSAxNSAtMTYuNXQ2IC0yMS41di05M3EwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5M3EwIDEwIDYgMjEuNXQxNSAxNi41bDM1OCAyMzBxOSA2IDE1IDE3LjV0NiAyMS41djc1cS0zOCAwIC02OSA1MiB0LTMxIDk4djI1MHEwIDEyNCA4OCAyMTJ0MjEyIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDk7IiBkPSJNMjUgMTEwMGgxMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTA1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMDUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwMCAxMDAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgMTAwMGgtNTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMzUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNTUwIHExMCAwIDE3LjUgNy41dDcuNSAxNy41djM1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTEwMDAgMTAwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwIDgwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA4MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgNjAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgNTAwaC01NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0zNTBxMCAtMTAgNy41IC0xNy41IHQxNy41IC03LjVoNTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MzUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMTAwIDQwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCAyMDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCA1MDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMTsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTEwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODUwIDcwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoMjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTg1MCAzMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41IHQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNDUwIDcwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoNzAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik00NjUgNDc3bDU3MSA1NzFxOCA4IDE4IDh0MTcgLThsMTc3IC0xNzdxOCAtNyA4IC0xN3QtOCAtMThsLTc4MyAtNzg0cS03IC04IC0xNy41IC04dC0xNy41IDhsLTM4NCAzODRxLTggOCAtOCAxOHQ4IDE3bDE3NyAxNzdxNyA4IDE3IDh0MTggLThsMTcxIC0xNzFxNyAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNOTA0IDEwODNsMTc4IC0xNzlxOCAtOCA4IC0xOC41dC04IC0xNy41bC0yNjcgLTI2OGwyNjcgLTI2OHE4IC03IDggLTE3LjV0LTggLTE4LjVsLTE3OCAtMTc4cS04IC04IC0xOC41IC04dC0xNy41IDhsLTI2OCAyNjdsLTI2OCAtMjY3cS03IC04IC0xNy41IC04dC0xOC41IDhsLTE3OCAxNzhxLTggOCAtOCAxOC41dDggMTcuNWwyNjcgMjY4bC0yNjcgMjY4cS04IDcgLTggMTcuNXQ4IDE4LjVsMTc4IDE3OHE4IDggMTguNSA4dDE3LjUgLTggbDI2OCAtMjY3bDI2OCAyNjhxNyA3IDE3LjUgN3QxOC41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTU7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNNDI1IDkwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWg3NXExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41IHQtMTcuNSAtNy41aC03NXYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtNzVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg3NXY3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNMzI1IDgwMGgzNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik01NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04MDAgOTc1djE2NnExNjcgLTYyIDI3MiAtMjA5LjV0MTA1IC0zMzEuNXEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNSB0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHEwIDE4NCAxMDUgMzMxLjV0MjcyIDIwOS41di0xNjZxLTEwMyAtNTUgLTE2NSAtMTU1dC02MiAtMjIwcTAgLTExNiA1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXEwIDEyMCAtNjIgMjIwdC0xNjUgMTU1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTg7IiBkPSJNMTAyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTExNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTcyNSA4MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgNTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTQ1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djQ1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0xMjUgMzAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41IHYyNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDE5OyIgZD0iTTYwMCAxMTc0cTMzIDAgNzQgLTVsMzggLTE1Mmw1IC0xcTQ5IC0xNCA5NCAtMzlsNSAtMmwxMzQgODBxNjEgLTQ4IDEwNCAtMTA1bC04MCAtMTM0bDMgLTVxMjUgLTQ0IDM5IC05M2wxIC02bDE1MiAtMzhxNSAtNDMgNSAtNzNxMCAtMzQgLTUgLTc0bC0xNTIgLTM4bC0xIC02cS0xNSAtNDkgLTM5IC05M2wtMyAtNWw4MCAtMTM0cS00OCAtNjEgLTEwNCAtMTA1bC0xMzQgODFsLTUgLTNxLTQ0IC0yNSAtOTQgLTM5bC01IC0ybC0zOCAtMTUxIHEtNDMgLTUgLTc0IC01cS0zMyAwIC03NCA1bC0zOCAxNTFsLTUgMnEtNDkgMTQgLTk0IDM5bC01IDNsLTEzNCAtODFxLTYwIDQ4IC0xMDQgMTA1bDgwIDEzNGwtMyA1cS0yNSA0NSAtMzggOTNsLTIgNmwtMTUxIDM4cS02IDQyIC02IDc0cTAgMzMgNiA3M2wxNTEgMzhsMiA2cTEzIDQ4IDM4IDkzbDMgNWwtODAgMTM0cTQ3IDYxIDEwNSAxMDVsMTMzIC04MGw1IDJxNDUgMjUgOTQgMzlsNSAxbDM4IDE1MnE0MyA1IDc0IDV6TTYwMCA4MTUgcS04OSAwIC0xNTIgLTYzdC02MyAtMTUxLjV0NjMgLTE1MS41dDE1MiAtNjN0MTUyIDYzdDYzIDE1MS41dC02MyAxNTEuNXQtMTUyIDYzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNNTAwIDEzMDBoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBoMjc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoLTExMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNzV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNTAwIDEyMDB2LTEwMGgzMDB2MTAwaC0zMDB6TTExMDAgOTAwdi04MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTcwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjUgdjgwMGg5MDB6TTMwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTUwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTcwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTkwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMTsiIGQ9Ik0xOCA2MThsNjIwIDYwOHE4IDcgMTguNSA3dDE3LjUgLTdsNjA4IC02MDhxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xNzV2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWgtMzAwdi0zNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NzVoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDIyOyIgZD0iTTYwMCAxMjAwdi00MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDMwMHYtNjUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djExMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHpNMTAwMCA4MDBoLTI1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxMDI3cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd0MjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjV0LTU3IDIxNC41dC0xNTUuNSAxNTUuNXQtMjE0LjUgNTd6TTUyNSA5MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0yNzVoMTc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI0OyIgZD0iTTEzMDAgMGgtNTM4bC00MSA0MDBoLTI0MmwtNDEgLTQwMGgtNTM4bDQzMSAxMjAwaDIwOWwtMjEgLTMwMGgxNjJsLTIwIDMwMGgyMDh6TTUxNSA4MDBsLTI3IC0zMDBoMjI0bC0yNyAzMDBoLTE3MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDUwaDE5MXEyMCAwIDI1LjUgLTExLjV0LTcuNSAtMjcuNWwtMzI3IC00MDBxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMzI3IDQwMHEtMTMgMTYgLTcuNSAyNy41dDI1LjUgMTEuNWgxOTF2NDUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEyNSA0MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0zNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41IGgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTc1aDkwMHYxNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01MjUgOTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI3NWgxMzdxMjEgMCAyNiAtMTEuNXQtOCAtMjcuNWwtMjIzIC0yNzVxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMjIzIDI3NXEtMTMgMTYgLTggMjcuNXQyNiAxMS41aDEzN3YyNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNzsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNjMyIDkxNGwyMjMgLTI3NXExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTEzN3YtMjc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2Mjc1aC0xMzdxLTIxIDAgLTI2IDExLjV0OCAyNy41bDIyMyAyNzVxMTMgMTYgMzIgMTYgdDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI4OyIgZD0iTTIyNSAxMjAwaDc1MHExMCAwIDE5LjUgLTd0MTIuNSAtMTdsMTg2IC02NTJxNyAtMjQgNyAtNDl2LTQyNXEwIC0xMiAtNCAtMjd0LTkgLTE3cS0xMiAtNiAtMzcgLTZoLTExMDBxLTEyIDAgLTI3IDR0LTE3IDhxLTYgMTMgLTYgMzhsMSA0MjVxMCAyNSA3IDQ5bDE4NSA2NTJxMyAxMCAxMi41IDE3dDE5LjUgN3pNODc4IDEwMDBoLTU1NnEtMTAgMCAtMTkgLTd0LTExIC0xOGwtODcgLTQ1MHEtMiAtMTEgNCAtMTh0MTYgLTdoMTUwIHExMCAwIDE5LjUgLTd0MTEuNSAtMTdsMzggLTE1MnEyIC0xMCAxMS41IC0xN3QxOS41IC03aDI1MHExMCAwIDE5LjUgN3QxMS41IDE3bDM4IDE1MnEyIDEwIDExLjUgMTd0MTkuNSA3aDE1MHExMCAwIDE2IDd0NCAxOGwtODcgNDUwcS0yIDExIC0xMSAxOHQtMTkgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI5OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01NDAgODIwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMDsiIGQ9Ik05NDcgMTA2MGwxMzUgMTM1cTcgNyAxMi41IDV0NS41IC0xM3YtMzYycTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMzYycS0xMSAwIC0xMyA1LjV0NSAxMi41bDEzMyAxMzNxLTEwOSA3NiAtMjM4IDc2cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNWgxNTBxMCAtMTE3IC00NS41IC0yMjQgdC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMxOyIgZD0iTTk0NyAxMDYwbDEzNSAxMzVxNyA3IDEyLjUgNXQ1LjUgLTEzdi0zNjFxMCAtMTEgLTcuNSAtMTguNXQtMTguNSAtNy41aC0zNjFxLTExIDAgLTEzIDUuNXQ1IDEyLjVsMTM0IDEzNHEtMTEwIDc1IC0yMzkgNzVxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41aC0xNTBxMCAxMTcgNDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3pNMTAyNyA2MDBoMTUwIHEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41cS0xOTIgMCAtMzQ4IDExOGwtMTM0IC0xMzRxLTcgLTggLTEyLjUgLTUuNXQtNS41IDEyLjV2MzYwcTAgMTEgNy41IDE4LjV0MTguNSA3LjVoMzYwcTEwIDAgMTIuNSAtNS41dC01LjUgLTEyLjVsLTEzMyAtMTMzcTExMCAtNzYgMjQwIC03NnExMTYgMCAyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMyOyIgZD0iTTEyNSAxMjAwaDEwNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djExNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMTA3NSAxMDAwaC04NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di04NTBxMCAtMTAgNy41IC0xNy41dDE3LjUgLTcuNWg4NTBxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXY4NTAgcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMzI1IDkwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgOTAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTMyNSA3MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNTI1IDcwMGg0NTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTQ1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0zMjUgNTAwaDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTUyNSA1MDBoNDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC00NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMzI1IDMwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgMzAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMzsiIGQ9Ik05MDAgODAwdjIwMHEwIDgzIC01OC41IDE0MS41dC0xNDEuNSA1OC41aC0zMDBxLTgyIDAgLTE0MSAtNTl0LTU5IC0xNDF2LTIwMGgtMTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDkwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NjAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC0xMDB6TTQwMCA4MDB2MTUwcTAgMjEgMTUgMzUuNXQzNSAxNC41aDIwMCBxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNXYtMTUwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0xMjUgMTEwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwNzVoLTEwMHYxMDc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwNzUgMTA1MnE0IDAgOSAtMnExNiAtNiAxNiAtMjN2LTQyMXEwIC02IC0zIC0xMnEtMzMgLTU5IC02Ni41IC05OXQtNjUuNSAtNTh0LTU2LjUgLTI0LjV0LTUyLjUgLTYuNXEtMjYgMCAtNTcuNSA2LjV0LTUyLjUgMTMuNXQtNjAgMjFxLTQxIDE1IC02MyAyMi41dC01Ny41IDE1dC02NS41IDcuNSBxLTg1IDAgLTE2MCAtNTdxLTcgLTUgLTE1IC01cS02IDAgLTExIDNxLTE0IDcgLTE0IDIydjQzOHEyMiA1NSA4MiA5OC41dDExOSA0Ni41cTIzIDIgNDMgMC41dDQzIC03dDMyLjUgLTguNXQzOCAtMTN0MzIuNSAtMTFxNDEgLTE0IDYzLjUgLTIxdDU3IC0xNHQ2My41IC03cTEwMyAwIDE4MyA4N3E3IDggMTggOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTTYwMCAxMTc1cTExNiAwIDIyNyAtNDkuNXQxOTIuNSAtMTMxdDEzMSAtMTkyLjV0NDkuNSAtMjI3di0zMDBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djMwMHEwIDEyNyAtNzAuNSAyMzEuNXQtMTg0LjUgMTYxLjV0LTI0NSA1N3QtMjQ1IC01N3QtMTg0LjUgLTE2MS41dC03MC41IC0yMzEuNXYtMzAwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTAgcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzAwcTAgMTE2IDQ5LjUgMjI3dDEzMSAxOTIuNXQxOTIuNSAxMzF0MjI3IDQ5LjV6TTIyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwcTAgOCA2IDE0dDE0IDZ6TTgyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwIHEwIDggNiAxNHQxNCA2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzY7IiBkPSJNMzIxIDgxNGwyNTggMTcycTkgNiAxNSAyLjV0NiAtMTMuNXYtNzUwcTAgLTEwIC02IC0xMy41dC0xNSAyLjVsLTI1OCAxNzJxLTIxIDE0IC00NiAxNGgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMjUwcTI1IDAgNDYgMTR6TTkwMCA2NjhsMTIwIDEyMHE3IDcgMTcgN3QxNyAtN2wzNCAtMzRxNyAtNyA3IC0xN3QtNyAtMTdsLTEyMCAtMTIwbDEyMCAtMTIwcTcgLTcgNyAtMTcgdC03IC0xN2wtMzQgLTM0cS03IC03IC0xNyAtN3QtMTcgN2wtMTIwIDExOWwtMTIwIC0xMTlxLTcgLTcgLTE3IC03dC0xNyA3bC0zNCAzNHEtNyA3IC03IDE3dDcgMTdsMTE5IDEyMGwtMTE5IDEyMHEtNyA3IC03IDE3dDcgMTdsMzQgMzRxNyA4IDE3IDh0MTcgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNzsiIGQ9Ik0zMjEgODE0bDI1OCAxNzJxOSA2IDE1IDIuNXQ2IC0xMy41di03NTBxMCAtMTAgLTYgLTEzLjV0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNiBsLTI5IDIzcS03IDcgLTguNSAxNi41dDQuNSAxNy41cTcyIDEwMyA3MiAyMjlxMCAxMzIgLTc4IDIzOHEtNiA4IC00LjUgMTh0OS41IDE3bDI5IDIycTcgNSAxNSA1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzg7IiBkPSJNOTY3IDEwMDRoM3ExMSAtMSAxNyAtMTBxMTM1IC0xNzkgMTM1IC0zOTZxMCAtMTA1IC0zNCAtMjA2LjV0LTk4IC0xODUuNXEtNyAtOSAtMTcgLTEwaC0zcS05IDAgLTE2IDZsLTQyIDM0cS04IDYgLTkgMTZ0NSAxOHExMTEgMTUwIDExMSAzMjhxMCA5MCAtMjkuNSAxNzZ0LTg0LjUgMTU3cS02IDkgLTUgMTl0MTAgMTZsNDIgMzNxNyA1IDE1IDV6TTMyMSA4MTRsMjU4IDE3MnE5IDYgMTUgMi41dDYgLTEzLjV2LTc1MHEwIC0xMCAtNiAtMTMuNSB0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNmwtMjkgMjNxLTcgNyAtOC41IDE2LjV0NC41IDE3LjVxNzIgMTAzIDcyIDIyOXEwIDEzMiAtNzggMjM4IHEtNiA4IC00LjUgMTguNXQ5LjUgMTYuNWwyOSAyMnE3IDUgMTUgNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM5OyIgZD0iTTUwMCA5MDBoMTAwdi0xMDBoLTEwMHYtMTAwaC00MDB2LTEwMGgtMTAwdjYwMGg1MDB2LTMwMHpNMTIwMCA3MDBoLTIwMHYtMTAwaDIwMHYtMjAwaC0zMDB2MzAwaC0yMDB2MzAwaC0xMDB2MjAwaDYwMHYtNTAwek0xMDAgMTEwMHYtMzAwaDMwMHYzMDBoLTMwMHpNODAwIDExMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTMwMCA5MDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEwMDAgOTAwaC0xMDB2MTAwaDEwMHYtMTAwek0zMDAgNTAwaDIwMHYtNTAwIGgtNTAwdjUwMGgyMDB2MTAwaDEwMHYtMTAwek04MDAgMzAwaDIwMHYtMTAwaC0xMDB2LTEwMGgtMjAwdjEwMGgtMTAwdjEwMGgxMDB2MjAwaC0yMDB2MTAwaDMwMHYtMzAwek0xMDAgNDAwdi0zMDBoMzAwdjMwMGgtMzAwek0zMDAgMjAwaC0xMDB2MTAwaDEwMHYtMTAwek0xMjAwIDIwMGgtMTAwdjEwMGgxMDB2LTEwMHpNNzAwIDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEyMDAgMGgtMzAwdjEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQwOyIgZD0iTTEwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMzAwIDIwMGgtMTAwdjEwMDBoMTAwdi0xMDAwek03MDAgMjAwaC0yMDB2MTAwMGgyMDB2LTEwMDB6TTkwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMTIwMCAyMDBoLTIwMHYxMDAwaDIwMHYtMTAwMHpNNDAwIDBoLTMwMHYxMDBoMzAwdi0xMDB6TTYwMCAwaC0xMDB2OTFoMTAwdi05MXpNODAwIDBoLTEwMHY5MWgxMDB2LTkxek0xMTAwIDBoLTIwMHY5MWgyMDB2LTkxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNDE7IiBkPSJNNTAwIDEyMDBsNjgyIC02ODJxOCAtOCA4IC0xOHQtOCAtMThsLTQ2NCAtNDY0cS04IC04IC0xOCAtOHQtMTggOGwtNjgyIDY4MmwxIDQ3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDQ3NHpNMzE5LjUgMTAyNC41cS0yOS41IDI5LjUgLTcxIDI5LjV0LTcxIC0yOS41dC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQyOyIgZD0iTTUwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTY4MiA2ODJsMSA0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg0NzR6TTgwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTU2IDU2bDQyNCA0MjZsLTcwMCA3MDBoMTUwek0zMTkuNSAxMDI0LjVxLTI5LjUgMjkuNSAtNzEgMjkuNXQtNzEgLTI5LjUgdC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQzOyIgZD0iTTMwMCAxMjAwaDgyNXE3NSAwIDc1IC03NXYtOTAwcTAgLTI1IC0xOCAtNDNsLTY0IC02NHEtOCAtOCAtMTMgLTUuNXQtNSAxMi41djk1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjVoLTcwMHEtMjUgMCAtNDMgLTE4bC02NCAtNjRxLTggLTggLTUuNSAtMTN0MTIuNSAtNWg3MDBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di05NTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC04NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NzUgcTAgMjUgMTggNDNsMTM5IDEzOXExOCAxOCA0MyAxOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ0OyIgZD0iTTI1MCAxMjAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTE1MGwtNDUwIDQ0NGwtNDUwIC00NDV2MTE1MXEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NTsiIGQ9Ik04MjIgMTIwMGgtNDQ0cS0xMSAwIC0xOSAtNy41dC05IC0xNy41bC03OCAtMzAxcS03IC0yNCA3IC00NWw1NyAtMTA4cTYgLTkgMTcuNSAtMTV0MjEuNSAtNmg0NTBxMTAgMCAyMS41IDZ0MTcuNSAxNWw2MiAxMDhxMTQgMjEgNyA0NWwtODMgMzAxcS0xIDEwIC05IDE3LjV0LTE5IDcuNXpNMTE3NSA4MDBoLTE1MHEtMTAgMCAtMjEgLTYuNXQtMTUgLTE1LjVsLTc4IC0xNTZxLTQgLTkgLTE1IC0xNS41dC0yMSAtNi41aC01NTAgcS0xMCAwIC0yMSA2LjV0LTE1IDE1LjVsLTc4IDE1NnEtNCA5IC0xNSAxNS41dC0yMSA2LjVoLTE1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTY1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDc1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41IHQ3LjUgMTcuNXY2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41ek04NTAgMjAwaC01MDBxLTEwIDAgLTE5LjUgLTd0LTExLjUgLTE3bC0zOCAtMTUycS0yIC0xMCAzLjUgLTE3dDE1LjUgLTdoNjAwcTEwIDAgMTUuNSA3dDMuNSAxN2wtMzggMTUycS0yIDEwIC0xMS41IDE3dC0xOS41IDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NjsiIGQ9Ik01MDAgMTEwMGgyMDBxNTYgMCAxMDIuNSAtMjAuNXQ3Mi41IC01MHQ0NCAtNTl0MjUgLTUwLjVsNiAtMjBoMTUwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di02MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djYwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMTUwcTIgOCA2LjUgMjEuNXQyNCA0OHQ0NSA2MXQ3MiA0OHQxMDIuNSAyMS41ek05MDAgODAwdi0xMDAgaDEwMHYxMDBoLTEwMHpNNjAwIDczMHEtOTUgMCAtMTYyLjUgLTY3LjV0LTY3LjUgLTE2Mi41dDY3LjUgLTE2Mi41dDE2Mi41IC02Ny41dDE2Mi41IDY3LjV0NjcuNSAxNjIuNXQtNjcuNSAxNjIuNXQtMTYyLjUgNjcuNXpNNjAwIDYwM3E0MyAwIDczIC0zMHQzMCAtNzN0LTMwIC03M3QtNzMgLTMwdC03MyAzMHQtMzAgNzN0MzAgNzN0NzMgMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NzsiIGQ9Ik02ODEgMTE5OWwzODUgLTk5OHEyMCAtNTAgNjAgLTkycTE4IC0xOSAzNi41IC0yOS41dDI3LjUgLTExLjVsMTAgLTJ2LTY2aC00MTd2NjZxNTMgMCA3NSA0My41dDUgODguNWwtODIgMjIyaC0zOTFxLTU4IC0xNDUgLTkyIC0yMzRxLTExIC0zNCAtNi41IC01N3QyNS41IC0zN3Q0NiAtMjB0NTUgLTZ2LTY2aC0zNjV2NjZxNTYgMjQgODQgNTJxMTIgMTIgMjUgMzAuNXQyMCAzMS41bDcgMTNsMzk5IDEwMDZoOTN6TTQxNiA1MjFoMzQwIGwtMTYyIDQ1N3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ4OyIgZD0iTTc1MyA2NDFxNSAtMSAxNC41IC00LjV0MzYgLTE1LjV0NTAuNSAtMjYuNXQ1My41IC00MHQ1MC41IC01NC41dDM1LjUgLTcwdDE0LjUgLTg3cTAgLTY3IC0yNy41IC0xMjUuNXQtNzEuNSAtOTcuNXQtOTguNSAtNjYuNXQtMTA4LjUgLTQwLjV0LTEwMiAtMTNoLTUwMHY4OXE0MSA3IDcwLjUgMzIuNXQyOS41IDY1LjV2ODI3cTAgMjQgLTAuNSAzNHQtMy41IDI0dC04LjUgMTkuNXQtMTcgMTMuNXQtMjggMTIuNXQtNDIuNSAxMS41djcxIGw0NzEgLTFxNTcgMCAxMTUuNSAtMjAuNXQxMDggLTU3dDgwLjUgLTk0dDMxIC0xMjQuNXEwIC01MSAtMTUuNSAtOTYuNXQtMzggLTc0LjV0LTQ1IC01MC41dC0zOC41IC0zMC41ek00MDAgNzAwaDEzOXE3OCAwIDEzMC41IDQ4LjV0NTIuNSAxMjIuNXEwIDQxIC04LjUgNzAuNXQtMjkuNSA1NS41dC02Mi41IDM5LjV0LTEwMy41IDEzLjVoLTExOHYtMzUwek00MDAgMjAwaDIxNnE4MCAwIDEyMSA1MC41dDQxIDEzMC41cTAgOTAgLTYyLjUgMTU0LjUgdC0xNTYuNSA2NC41aC0xNTl2LTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ5OyIgZD0iTTg3NyAxMjAwbDIgLTU3cS04MyAtMTkgLTExNiAtNDUuNXQtNDAgLTY2LjVsLTEzMiAtODM5cS05IC00OSAxMyAtNjl0OTYgLTI2di05N2gtNTAwdjk3cTE4NiAxNiAyMDAgOThsMTczIDgzMnEzIDE3IDMgMzB0LTEuNSAyMi41dC05IDE3LjV0LTEzLjUgMTIuNXQtMjEuNSAxMHQtMjYgOC41dC0zMy41IDEwcS0xMyAzIC0xOSA1djU3aDQyNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDUwOyIgZD0iTTEzMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTE3NSAxMDAwaC03NXYtODAwaDc1bC0xMjUgLTE2N2wtMTI1IDE2N2g3NXY4MDBoLTc1bDEyNSAxNjd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MTsiIGQ9Ik0xMTAwIDkwMGgtNTBxMCAyMSAtNCAzN3QtOS41IDI2LjV0LTE4IDE3LjV0LTIyIDExdC0yOC41IDUuNXQtMzEgMnQtMzcgMC41aC0yMDB2LTY1MHEwIC0yMiAyNSAtMzQuNXQ1MCAtMTMuNWwyNSAtMnYtMTAwaC00MDB2MTAwcTQgMCAxMSAwLjV0MjQgM3QzMCA3dDI0IDE1dDExIDI0LjV2NjUwaC0yMDBxLTI1IDAgLTM3IC0wLjV0LTMxIC0ydC0yOC41IC01LjV0LTIyIC0xMXQtMTggLTE3LjV0LTkuNSAtMjYuNXQtNCAtMzdoLTUwdjMwMCBoMTAwMHYtMzAwek0xMTY3IDUwbC0xNjcgLTEyNXY3NWgtODAwdi03NWwtMTY3IDEyNWwxNjcgMTI1di03NWg4MDB2NzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MjsiIGQ9Ik01MCAxMTAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDgwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MzsiIGQ9Ik0yNTAgMTEwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjUwIDUwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU0OyIgZD0iTTUwMCA5NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg2MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNMTAwIDY1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek0zMDAgMzUwdjEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU1OyIgZD0iTTUwIDExMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1NjsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCAxMTAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMzUwIDgwMGg4MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zNTAgMjAwaDgwMCBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNTc7IiBkPSJNNDAwIDBoLTEwMHYxMTAwaDEwMHYtMTEwMHpNNTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjY3IDU1MGwtMTY3IC0xMjV2NzVoLTIwMHYxMDBoMjAwdjc1ek01NTAgNTAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTU1MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1ODsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAwaC0xMDB2MTEwMGgxMDB2LTExMDB6TTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEwMCA2MDBoMjAwdi0xMDBoLTIwMHYtNzVsLTE2NyAxMjVsMTY3IDEyNXYtNzV6TTUwIDUwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1OTsiIGQ9Ik03NSAxMDAwaDc1MHEzMSAwIDUzIC0yMnQyMiAtNTN2LTY1MHEwIC0zMSAtMjIgLTUzdC01MyAtMjJoLTc1MHEtMzEgMCAtNTMgMjJ0LTIyIDUzdjY1MHEwIDMxIDIyIDUzdDUzIDIyek0xMjAwIDMwMGwtMzAwIDMwMGwzMDAgMzAwdi02MDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2MDsiIGQ9Ik00NCAxMTAwaDExMTJxMTggMCAzMSAtMTN0MTMgLTMxdi0xMDEycTAgLTE4IC0xMyAtMzF0LTMxIC0xM2gtMTExMnEtMTggMCAtMzEgMTN0LTEzIDMxdjEwMTJxMCAxOCAxMyAzMXQzMSAxM3pNMTAwIDEwMDB2LTczN2wyNDcgMTgybDI5OCAtMTMxbC03NCAxNTZsMjkzIDMxOGwyMzYgLTI4OHY1MDBoLTEwMDB6TTM0MiA4ODRxNTYgMCA5NSAtMzl0MzkgLTk0LjV0LTM5IC05NXQtOTUgLTM5LjV0LTk1IDM5LjV0LTM5IDk1dDM5IDk0LjUgdDk1IDM5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjI7IiBkPSJNNjQ4IDExNjlxMTE3IDAgMjE2IC02MHQxNTYuNSAtMTYxdDU3LjUgLTIxOHEwIC0xMTUgLTcwIC0yNThxLTY5IC0xMDkgLTE1OCAtMjI1LjV0LTE0MyAtMTc5LjVsLTU0IC02MnEtOSA4IC0yNS41IDI0LjV0LTYzLjUgNjcuNXQtOTEgMTAzdC05OC41IDEyOHQtOTUuNSAxNDhxLTYwIDEzMiAtNjAgMjQ5cTAgODggMzQgMTY5LjV0OTEuNSAxNDJ0MTM3IDk2LjV0MTY2LjUgMzZ6TTY1Mi41IDk3NHEtOTEuNSAwIC0xNTYuNSAtNjUgdC02NSAtMTU3dDY1IC0xNTYuNXQxNTYuNSAtNjQuNXQxNTYuNSA2NC41dDY1IDE1Ni41dC02NSAxNTd0LTE1Ni41IDY1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxNzN2ODU0cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2NDsiIGQ9Ik01NTQgMTI5NXEyMSAtNzIgNTcuNSAtMTQzLjV0NzYgLTEzMHQ4MyAtMTE4dDgyLjUgLTExN3Q3MCAtMTE2dDQ5LjUgLTEyNnQxOC41IC0xMzYuNXEwIC03MSAtMjUuNSAtMTM1dC02OC41IC0xMTF0LTk5IC04MnQtMTE4LjUgLTU0dC0xMjUuNSAtMjNxLTg0IDUgLTE2MS41IDM0dC0xMzkuNSA3OC41dC05OSAxMjV0LTM3IDE2NC41cTAgNjkgMTggMTM2LjV0NDkuNSAxMjYuNXQ2OS41IDExNi41dDgxLjUgMTE3LjV0ODMuNSAxMTkgdDc2LjUgMTMxdDU4LjUgMTQzek0zNDQgNzEwcS0yMyAtMzMgLTQzLjUgLTcwLjV0LTQwLjUgLTEwMi41dC0xNyAtMTIzcTEgLTM3IDE0LjUgLTY5LjV0MzAgLTUydDQxIC0zN3QzOC41IC0yNC41dDMzIC0xNXEyMSAtNyAzMiAtMXQxMyAyMmw2IDM0cTIgMTAgLTIuNSAyMnQtMTMuNSAxOXEtNSA0IC0xNCAxMnQtMjkuNSA0MC41dC0zMi41IDczLjVxLTI2IDg5IDYgMjcxcTIgMTEgLTYgMTFxLTggMSAtMTUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjU7IiBkPSJNMTAwMCAxMDEzbDEwOCAxMTVxMiAxIDUgMnQxMyAydDIwLjUgLTF0MjUgLTkuNXQyOC41IC0yMS41cTIyIC0yMiAyNyAtNDN0MCAtMzJsLTYgLTEwbC0xMDggLTExNXpNMzUwIDExMDBoNDAwcTUwIDAgMTA1IC0xM2wtMTg3IC0xODdoLTM2OHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djE4MmwyMDAgMjAwdi0zMzIgcTAgLTE2NSAtOTMuNSAtMjU3LjV0LTI1Ni41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTEwMDkgODAzbC0zNjIgLTM2MmwtMTYxIC01MGw1NSAxNzBsMzU1IDM1NXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY2OyIgZD0iTTM1MCAxMTAwaDM2MXEtMTY0IC0xNDYgLTIxNiAtMjAwaC0xOTVxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNWwyMDAgMTUzdi0xMDNxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTgyNCAxMDczbDMzOSAtMzAxcTggLTcgOCAtMTcuNXQtOCAtMTcuNWwtMzQwIC0zMDZxLTcgLTYgLTEyLjUgLTR0LTYuNSAxMXYyMDNxLTI2IDEgLTU0LjUgMHQtNzguNSAtNy41dC05MiAtMTcuNXQtODYgLTM1dC03MCAtNTdxMTAgNTkgMzMgMTA4dDUxLjUgODEuNXQ2NSA1OC41dDY4LjUgNDAuNXQ2NyAyNC41dDU2IDEzLjV0NDAgNC41djIxMHExIDEwIDYuNSAxMi41dDEzLjUgLTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY3OyIgZD0iTTM1MCAxMTAwaDM1MHE2MCAwIDEyNyAtMjNsLTE3OCAtMTc3aC0zNDlxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY2OWwyMDAgMjAwdi0yMTlxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTY0MyA2MzlsMzk1IDM5NXE3IDcgMTcuNSA3dDE3LjUgLTdsMTAxIC0xMDFxNyAtNyA3IC0xNy41dC03IC0xNy41bC01MzEgLTUzMnEtNyAtNyAtMTcuNSAtN3QtMTcuNSA3bC0yNDggMjQ4cS03IDcgLTcgMTcuNXQ3IDE3LjVsMTAxIDEwMXE3IDcgMTcuNSA3dDE3LjUgLTdsMTExIC0xMTFxOCAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjg7IiBkPSJNMzE4IDkxOGwyNjQgMjY0cTggOCAxOCA4dDE4IC04bDI2MCAtMjY0cTcgLTggNC41IC0xM3QtMTIuNSAtNWgtMTcwdi0yMDBoMjAwdjE3M3EwIDEwIDUgMTJ0MTMgLTVsMjY0IC0yNjBxOCAtNyA4IC0xNy41dC04IC0xNy41bC0yNjQgLTI2NXEtOCAtNyAtMTMgLTV0LTUgMTJ2MTczaC0yMDB2LTIwMGgxNzBxMTAgMCAxMi41IC01dC00LjUgLTEzbC0yNjAgLTI2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTI2NCAyNjRxLTggOCAtNS41IDEzIHQxMi41IDVoMTc1djIwMGgtMjAwdi0xNzNxMCAtMTAgLTUgLTEydC0xMyA1bC0yNjQgMjY1cS04IDcgLTggMTcuNXQ4IDE3LjVsMjY0IDI2MHE4IDcgMTMgNXQ1IC0xMnYtMTczaDIwMHYyMDBoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY5OyIgZD0iTTI1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDM4bDQ2NCA0NTNxMTUgMTQgMjUuNSAxMHQxMC41IC0yNXYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcwOyIgZD0iTTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di0xMDAwcTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcxOyIgZD0iTTEyMDAgMTA1MHYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ5MiA0ODBxLTE1IDE0IC0xNSAzNXQxNSAzNWw0OTIgNDgwcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV2LTQzOGw0NjQgNDUzcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MjsiIGQ9Ik0yNDMgMTA3NGw4MTQgLTQ5OHExOCAtMTEgMTggLTI2dC0xOCAtMjZsLTgxNCAtNDk4cS0xOCAtMTEgLTMwLjUgLTR0LTEyLjUgMjh2MTAwMHEwIDIxIDEyLjUgMjh0MzAuNSAtNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDczOyIgZD0iTTI1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzQ7IiBkPSJNMTEwMCA5NTB2LTgwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY4MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc1OyIgZD0iTTUwMCA2MTJ2NDM4cTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0OTIgLTQ4MHExNSAtMTQgMTUgLTM1dC0xNSAtMzVsLTQ5MiAtNDgwcS0xNSAtMTQgLTI1LjUgLTEwdC0xMC41IDI1djQzOGwtNDY0IC00NTNxLTE1IC0xNCAtMjUuNSAtMTB0LTEwLjUgMjV2MTAwMHEwIDIxIDEwLjUgMjV0MjUuNSAtMTB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NjsiIGQ9Ik0xMDQ4IDExMDJsMTAwIDFxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNWw1IC0xMDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41bC0xMDAgLTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41bC0yIDQzN2wtNDYzIC00NTRxLTE0IC0xNSAtMjQuNSAtMTAuNXQtMTAuNSAyNS41bC0yIDQzN2wtNDYyIC00NTVxLTE1IC0xNCAtMjUuNSAtOS41dC0xMC41IDI0LjVsLTUgMTAwMHEwIDIxIDEwLjUgMjUuNXQyNS41IC0xMC41bDQ2NiAtNDUwIGwtMiA0MzhxMCAyMCAxMC41IDI0LjV0MjUuNSAtOS41bDQ2NiAtNDUxbC0yIDQzOHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NzsiIGQ9Ik04NTAgMTEwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDM4bC00NjQgLTQ1M3EtMTUgLTE0IC0yNS41IC0xMHQtMTAuNSAyNXYxMDAwcTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0NjQgLTQ1M3Y0MzhxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzg7IiBkPSJNNjg2IDEwODFsNTAxIC01NDBxMTUgLTE1IDEwLjUgLTI2dC0yNi41IC0xMWgtMTA0MnEtMjIgMCAtMjYuNSAxMXQxMC41IDI2bDUwMSA1NDBxMTUgMTUgMzYgMTV0MzYgLTE1ek0xNTAgNDAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc5OyIgZD0iTTg4NSA5MDBsLTM1MiAtMzUzbDM1MiAtMzUzbC0xOTcgLTE5OGwtNTUyIDU1Mmw1NTIgNTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODA7IiBkPSJNMTA2NCA1NDdsLTU1MSAtNTUxbC0xOTggMTk4bDM1MyAzNTNsLTM1MyAzNTNsMTk4IDE5OHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NTAgOTAwaC0xMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2LTE1MGgtMTUwIHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTAwcTAgLTIxIDE0LjUgLTM1LjV0MzUuNSAtMTQuNWgxNTB2LTE1MHEwIC0yMSAxNC41IC0zNS41dDM1LjUgLTE0LjVoMTAwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxNTBoMTUwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTE1MHYxNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4MjsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNODUwIDcwMGgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNSB0MzUuNSAtMTQuNWg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgzOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03NDEuNSA5MTNxLTEyLjUgMCAtMjEuNSAtOWwtMTIwIC0xMjBsLTEyMCAxMjBxLTkgOSAtMjEuNSA5IHQtMjEuNSAtOWwtMTQxIC0xNDFxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxMjAgLTEyMGwtMTIwIC0xMjBxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxNDEgLTE0MXE5IC05IDIxLjUgLTl0MjEuNSA5bDEyMCAxMjBsMTIwIC0xMjBxOSAtOSAyMS41IC05dDIxLjUgOWwxNDEgMTQxcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTIwIDEyMGwxMjAgMTIwcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTQxIDE0MXEtOSA5IC0yMS41IDl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NDsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNTQ2IDYyM2wtODQgODVxLTcgNyAtMTcuNSA3dC0xOC41IC03bC0xMzkgLTEzOXEtNyAtOCAtNyAtMTh0NyAtMTggbDI0MiAtMjQxcTcgLTggMTcuNSAtOHQxNy41IDhsMzc1IDM3NXE3IDcgNyAxNy41dC03IDE4LjVsLTEzOSAxMzlxLTcgNyAtMTcuNSA3dC0xNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODU7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTU4OCA5NDFxLTI5IDAgLTU5IC01LjV0LTYzIC0yMC41dC01OCAtMzguNXQtNDEuNSAtNjN0LTE2LjUgLTg5LjUgcTAgLTI1IDIwIC0yNWgxMzFxMzAgLTUgMzUgMTFxNiAyMCAyMC41IDI4dDQ1LjUgOHEyMCAwIDMxLjUgLTEwLjV0MTEuNSAtMjguNXEwIC0yMyAtNyAtMzR0LTI2IC0xOHEtMSAwIC0xMy41IC00dC0xOS41IC03LjV0LTIwIC0xMC41dC0yMiAtMTd0LTE4LjUgLTI0dC0xNS41IC0zNXQtOCAtNDZxLTEgLTggNS41IC0xNi41dDIwLjUgLTguNWgxNzNxNyAwIDIyIDh0MzUgMjh0MzcuNSA0OHQyOS41IDc0dDEyIDEwMHEwIDQ3IC0xNyA4MyB0LTQyLjUgNTd0LTU5LjUgMzQuNXQtNjQgMTh0LTU5IDQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NzUgMTAwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNSB0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTY3NSA3MDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNzV2LTIwMGgtNzVxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di01MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDM1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djUwcTAgMTAgLTcuNSAxNy41IHQtMTcuNSA3LjVoLTc1djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NzsiIGQ9Ik01MjUgMTIwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xOTRxMTAzIC0yNyAxNzguNSAtMTAyLjV0MTAyLjUgLTE3OC41aDE5NHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE5NHEtMjcgLTEwMyAtMTAyLjUgLTE3OC41dC0xNzguNSAtMTAyLjV2LTE5NHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE5NCBxLTEwMyAyNyAtMTc4LjUgMTAyLjV0LTEwMi41IDE3OC41aC0xOTRxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxOTRxMjcgMTAzIDEwMi41IDE3OC41dDE3OC41IDEwMi41djE5NHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek03MDAgODkzdi0xNjhxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNjhxLTY4IC0yMyAtMTE5IC03NCB0LTc0IC0xMTloMTY4cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTY4cTIzIC02OCA3NCAtMTE5dDExOSAtNzR2MTY4cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTY4cTY4IDIzIDExOSA3NHQ3NCAxMTloLTE2OHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDE2OCBxLTIzIDY4IC03NCAxMTl0LTExOSA3NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg4OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek03NTkgODIzbDY0IC02NHE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTEyNCAtMTI0bDEyNCAtMTI0cTcgLTcgNyAtMTcuNXQtNyAtMTcuNWwtNjQgLTY0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTEyNCAxMjRsLTEyNCAtMTI0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTY0IDY0IHEtNyA3IC03IDE3LjV0NyAxNy41bDEyNCAxMjRsLTEyNCAxMjRxLTcgNyAtNyAxNy41dDcgMTcuNWw2NCA2NHE3IDcgMTcuNSA3dDE3LjUgLTdsMTI0IC0xMjRsMTI0IDEyNHE3IDcgMTcuNSA3dDE3LjUgLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4OTsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNzgyIDc4OGwxMDYgLTEwNnE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTMyMCAtMzIxcS04IC03IC0xOCAtN3QtMTggN2wtMjAyIDIwM3EtOCA3IC04IDE3LjV0OCAxNy41bDEwNiAxMDZxNyA4IDE3LjUgOHQxNy41IC04bDc5IC03OWwxOTcgMTk3cTcgNyAxNy41IDd0MTcuNSAtN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkwOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjVxMCAtMTIwIDY1IC0yMjUgbDU4NyA1ODdxLTEwNSA2NSAtMjI1IDY1ek05NjUgODE5bC01ODQgLTU4NHExMDQgLTYyIDIxOSAtNjJxMTE2IDAgMjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjVxMCAxMTUgLTYyIDIxOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkxOyIgZD0iTTM5IDU4Mmw1MjIgNDI3cTE2IDEzIDI3LjUgOHQxMS41IC0yNnYtMjkxaDU1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC01NTB2LTI5MXEwIC0yMSAtMTEuNSAtMjZ0LTI3LjUgOGwtNTIyIDQyN3EtMTYgMTMgLTE2IDMydDE2IDMyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwOTI7IiBkPSJNNjM5IDEwMDlsNTIyIC00MjdxMTYgLTEzIDE2IC0zMnQtMTYgLTMybC01MjIgLTQyN3EtMTYgLTEzIC0yNy41IC04dC0xMS41IDI2djI5MWgtNTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDU1MHYyOTFxMCAyMSAxMS41IDI2dDI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5MzsiIGQ9Ik02ODIgMTE2MWw0MjcgLTUyMnExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTI5MXYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djU1MGgtMjkxcS0yMSAwIC0yNiAxMS41dDggMjcuNWw0MjcgNTIycTEzIDE2IDMyIDE2dDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk0OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUwaDI5MXEyMSAwIDI2IC0xMS41dC04IC0yNy41bC00MjcgLTUyMnEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC00MjcgNTIycS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMjkxdjU1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NTsiIGQ9Ik02MzkgMTEwOWw1MjIgLTQyN3ExNiAtMTMgMTYgLTMydC0xNiAtMzJsLTUyMiAtNDI3cS0xNiAtMTMgLTI3LjUgLTh0LTExLjUgMjZ2MjkxcS05NCAtMiAtMTgyIC0yMHQtMTcwLjUgLTUydC0xNDcgLTkyLjV0LTEwMC41IC0xMzUuNXE1IDEwNSAyNyAxOTMuNXQ2Ny41IDE2N3QxMTMgMTM1dDE2NyA5MS41dDIyNS41IDQydjI2MnEwIDIxIDExLjUgMjZ0MjcuNSAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk2OyIgZD0iTTg1MCAxMjAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzAwcTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtOTQgOTRsLTI0OSAtMjQ5cS04IC03IC0xOCAtN3QtMTggN2wtMTA2IDEwNnEtNyA4IC03IDE4dDcgMThsMjQ5IDI0OWwtOTQgOTRxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjV6TTM1MCAwaC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djMwMHEwIDIxIDEwLjUgMjV0MjQuNSAtMTBsOTQgLTk0bDI0OSAyNDkgcTggNyAxOCA3dDE4IC03bDEwNiAtMTA2cTcgLTggNyAtMTh0LTcgLTE4bC0yNDkgLTI0OWw5NCAtOTRxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk3OyIgZD0iTTEwMTQgMTEyMGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMjQ5IC0yNDlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMjQ5IDI0OXE4IDcgMTggN3QxOCAtN3pNMjUwIDYwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMjQ5IC0yNDlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwyNDkgMjQ5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03MDQgOTAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNSB0MzcuNSAtMTQuNWg1NHEyMCAwIDM3LjUgMTQuNXQyMS41IDM0LjVsNTggMzAycTQgMjAgLTggMzQuNXQtMzIgMTQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAyOyIgZD0iTTI2MCAxMjAwcTkgMCAxOSAtMnQxNSAtNGw1IC0ycTIyIC0xMCA0NCAtMjNsMTk2IC0xMThxMjEgLTEzIDM2IC0yNHEyOSAtMjEgMzcgLTEycTExIDEzIDQ5IDM1bDE5NiAxMThxMjIgMTMgNDUgMjNxMTcgNyAzOCA3cTIzIDAgNDcgLTE2LjV0MzcgLTMzLjVsMTMgLTE2cTE0IC0yMSAxOCAtNDVsMjUgLTEyM2w4IC00NHExIC05IDguNSAtMTQuNXQxNy41IC01LjVoNjFxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MCBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE3NWgtNDAwdjMwMGgtMjAwdi0zMDBoLTQwMHYxNzVxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNjFxMTEgMCAxOCAzdDcgOHEwIDQgOSA1MmwyNSAxMjhxNSAyNSAxOSA0NXEyIDMgNSA3dDEzLjUgMTV0MjEuNSAxOS41dDI2LjUgMTUuNSB0MjkuNSA3ek05MTUgMTA3OWwtMTY2IC0xNjJxLTcgLTcgLTUgLTEydDEyIC01aDIxOXExMCAwIDE1IDd0MiAxN2wtNTEgMTQ5cS0zIDEwIC0xMSAxMnQtMTUgLTZ6TTQ2MyA5MTdsLTE3NyAxNTdxLTggNyAtMTYgNXQtMTEgLTEybC01MSAtMTQzcS0zIC0xMCAyIC0xN3QxNSAtN2gyMzFxMTEgMCAxMi41IDV0LTUuNSAxMnpNNTAwIDBoLTM3NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWg0MDB2LTQwMHpNMTEwMCA0MDB2LTM3NSBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNzV2NDAwaDQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAzOyIgZD0iTTExNjUgMTE5MHE4IDMgMjEgLTYuNXQxMyAtMTcuNXEtMiAtMTc4IC0yNC41IC0zMjMuNXQtNTUuNSAtMjQ1LjV0LTg3IC0xNzQuNXQtMTAyLjUgLTExOC41dC0xMTggLTY4LjV0LTExOC41IC0zM3QtMTIwIC00LjV0LTEwNSA5LjV0LTkwIDE2LjVxLTYxIDEyIC03OCAxMXEtNCAxIC0xMi41IDB0LTM0IC0xNC41dC01Mi41IC00MC41bC0xNTMgLTE1M3EtMjYgLTI0IC0zNyAtMTQuNXQtMTEgNDMuNXEwIDY0IDQyIDEwMnE4IDggNTAuNSA0NSB0NjYuNSA1OHExOSAxNyAzNSA0N3QxMyA2MXEtOSA1NSAtMTAgMTAyLjV0NyAxMTF0MzcgMTMwdDc4IDEyOS41cTM5IDUxIDgwIDg4dDg5LjUgNjMuNXQ5NC41IDQ1dDExMy41IDM2dDEyOSAzMXQxNTcuNSAzN3QxODIgNDcuNXpNMTExNiAxMDk4cS04IDkgLTIyLjUgLTN0LTQ1LjUgLTUwcS0zOCAtNDcgLTExOSAtMTAzLjV0LTE0MiAtODkuNWwtNjIgLTMzcS01NiAtMzAgLTEwMiAtNTd0LTEwNCAtNjh0LTEwMi41IC04MC41dC04NS41IC05MSB0LTY0IC0xMDQuNXEtMjQgLTU2IC0zMSAtODZ0MiAtMzJ0MzEuNSAxNy41dDU1LjUgNTkuNXEyNSAzMCA5NCA3NS41dDEyNS41IDc3LjV0MTQ3LjUgODFxNzAgMzcgMTE4LjUgNjl0MTAyIDc5LjV0OTkgMTExdDg2LjUgMTQ4LjVxMjIgNTAgMjQgNjB0LTYgMTl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNDsiIGQ9Ik02NTMgMTIzMXEtMzkgLTY3IC01NC41IC0xMzF0LTEwLjUgLTExNC41dDI0LjUgLTk2LjV0NDcuNSAtODB0NjMuNSAtNjIuNXQ2OC41IC00Ni41dDY1IC0zMHEtNCA3IC0xNy41IDM1dC0xOC41IDM5LjV0LTE3IDM5LjV0LTE3IDQzdC0xMyA0MnQtOS41IDQ0LjV0LTIgNDJ0NCA0M3QxMy41IDM5dDIzIDM4LjVxOTYgLTQyIDE2NSAtMTA3LjV0MTA1IC0xMzh0NTIgLTE1NnQxMyAtMTU5dC0xOSAtMTQ5LjVxLTEzIC01NSAtNDQgLTEwNi41IHQtNjggLTg3dC03OC41IC02NC41dC03Mi41IC00NXQtNTMgLTIycS03MiAtMjIgLTEyNyAtMTFxLTMxIDYgLTEzIDE5cTYgMyAxNyA3cTEzIDUgMzIuNSAyMXQ0MSA0NHQzOC41IDYzLjV0MjEuNSA4MS41dC02LjUgOTQuNXQtNTAgMTA3dC0xMDQgMTE1LjVxMTAgLTEwNCAtMC41IC0xODl0LTM3IC0xNDAuNXQtNjUgLTkzdC04NCAtNTJ0LTkzLjUgLTExdC05NSAyNC41cS04MCAzNiAtMTMxLjUgMTE0dC01My41IDE3MXEtMiAyMyAwIDQ5LjUgdDQuNSA1Mi41dDEzLjUgNTZ0MjcuNSA2MHQ0NiA2NC41dDY5LjUgNjguNXEtOCAtNTMgLTUgLTEwMi41dDE3LjUgLTkwdDM0IC02OC41dDQ0LjUgLTM5dDQ5IC0ycTMxIDEzIDM4LjUgMzZ0LTQuNSA1NXQtMjkgNjQuNXQtMzYgNzV0LTI2IDc1LjVxLTE1IDg1IDIgMTYxLjV0NTMuNSAxMjguNXQ4NS41IDkyLjV0OTMuNSA2MXQ4MS41IDI1LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNTsiIGQ9Ik02MDAgMTA5NHE4MiAwIDE2MC41IC0yMi41dDE0MCAtNTl0MTE2LjUgLTgyLjV0OTQuNSAtOTV0NjggLTk1dDQyLjUgLTgyLjV0MTQgLTU3LjV0LTE0IC01Ny41dC00MyAtODIuNXQtNjguNSAtOTV0LTk0LjUgLTk1dC0xMTYuNSAtODIuNXQtMTQwIC01OXQtMTU5LjUgLTIyLjV0LTE1OS41IDIyLjV0LTE0MCA1OXQtMTE2LjUgODIuNXQtOTQuNSA5NXQtNjguNSA5NXQtNDMgODIuNXQtMTQgNTcuNXQxNCA1Ny41dDQyLjUgODIuNXQ2OCA5NSB0OTQuNSA5NXQxMTYuNSA4Mi41dDE0MCA1OXQxNjAuNSAyMi41ek04ODggODI5cS0xNSAxNSAtMTggMTJ0NSAtMjJxMjUgLTU3IDI1IC0xMTlxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4dC0yMTIgODh0LTg4IDIxMnEwIDU5IDIzIDExNHE4IDE5IDQuNSAyMnQtMTcuNSAtMTJxLTcwIC02OSAtMTYwIC0xODRxLTEzIC0xNiAtMTUgLTQwLjV0OSAtNDIuNXEyMiAtMzYgNDcgLTcxdDcwIC04MnQ5Mi41IC04MXQxMTMgLTU4LjV0MTMzLjUgLTI0LjUgdDEzMy41IDI0dDExMyA1OC41dDkyLjUgODEuNXQ3MCA4MS41dDQ3IDcwLjVxMTEgMTggOSA0Mi41dC0xNCA0MS41cS05MCAxMTcgLTE2MyAxODl6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wzNSAzNHExNCAxNSAxMi41IDMzLjV0LTE2LjUgMzMuNXEtNDQgNDQgLTg5IDExN3EtMTEgMTggLTI4IDIwdC0zMiAtMTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNjsiIGQ9Ik01OTIgMGgtMTQ4bDMxIDEyMHEtOTEgMjAgLTE3NS41IDY4LjV0LTE0My41IDEwNi41dC0xMDMuNSAxMTl0LTY2LjUgMTEwdC0yMiA3NnEwIDIxIDE0IDU3LjV0NDIuNSA4Mi41dDY4IDk1dDk0LjUgOTV0MTE2LjUgODIuNXQxNDAgNTl0MTYwLjUgMjIuNXE2MSAwIDEyNiAtMTVsMzIgMTIxaDE0OHpNOTQ0IDc3MGw0NyAxODFxMTA4IC04NSAxNzYuNSAtMTkydDY4LjUgLTE1OXEwIC0yNiAtMTkuNSAtNzF0LTU5LjUgLTEwMnQtOTMgLTExMiB0LTEyOSAtMTA0LjV0LTE1OCAtNzUuNWw0NiAxNzNxNzcgNDkgMTM2IDExN3Q5NyAxMzFxMTEgMTggOSA0Mi41dC0xNCA0MS41cS01NCA3MCAtMTA3IDEzMHpNMzEwIDgyNHEtNzAgLTY5IC0xNjAgLTE4NHEtMTMgLTE2IC0xNSAtNDAuNXQ5IC00Mi41cTE4IC0zMCAzOSAtNjB0NTcgLTcwLjV0NzQgLTczdDkwIC02MXQxMDUgLTQxLjVsNDEgMTU0cS0xMDcgMTggLTE3OC41IDEwMS41dC03MS41IDE5My41cTAgNTkgMjMgMTE0cTggMTkgNC41IDIyIHQtMTcuNSAtMTJ6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wxMiAxMWwyMiA4NmwtMyA0cS00NCA0NCAtODkgMTE3cS0xMSAxOCAtMjggMjB0LTMyIC0xMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTA3OyIgZD0iTS05MCAxMDBsNjQyIDEwNjZxMjAgMzEgNDggMjguNXQ0OCAtMzUuNWw2NDIgLTEwNTZxMjEgLTMyIDcuNSAtNjcuNXQtNTAuNSAtMzUuNWgtMTI5NHEtMzcgMCAtNTAuNSAzNHQ3LjUgNjZ6TTE1NSAyMDBoMzQ1djc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoMzQ1bC00NDUgNzIzek00OTYgNzAwaDIwOHEyMCAwIDMyIC0xNC41dDggLTM0LjVsLTU4IC0yNTIgcS00IC0yMCAtMjEuNSAtMzQuNXQtMzcuNSAtMTQuNWgtNTRxLTIwIDAgLTM3LjUgMTQuNXQtMjEuNSAzNC41bC01OCAyNTJxLTQgMjAgOCAzNC41dDMyIDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwODsiIGQ9Ik02NTAgMTIwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnYtMzM5bDM2MyAtMzI1cTE1IC0xNCAyNiAtMzguNXQxMSAtNDQuNXYtNDFxMCAtMjAgLTEyIC0yNi41dC0yOSA1LjVsLTM1OSAyNDl2LTI2M3ExMDAgLTkzIDEwMCAtMTEzdi02NHEwIC0yMSAtMTMgLTI5dC0zMiAxbC0yMDUgMTI4bC0yMDUgLTEyOHEtMTkgLTkgLTMyIC0xdC0xMyAyOXY2NHEwIDIwIDEwMCAxMTN2MjYzbC0zNTkgLTI0OXEtMTcgLTEyIC0yOSAtNS41dC0xMiAyNi41djQxIHEwIDIwIDExIDQ0LjV0MjYgMzguNWwzNjMgMzI1djMzOXEwIDYyIDQ0IDEwNnQxMDYgNDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwOTsiIGQ9Ik04NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTExMDB2MTUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMTAwIDgwMHYtNzUwcTAgLTIxIC0xNC41IC0zNS41IHQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NzUwaDExMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTcwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTkwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA0MDAgdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek0xMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek0zMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek01MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTA7IiBkPSJNMTEzNSAxMTY1bDI0OSAtMjMwcTE1IC0xNCAxNSAtMzV0LTE1IC0zNWwtMjQ5IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC0xNTlsLTYwMCAtNjAwaC0yOTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjA5bDYwMCA2MDBoMjQxdjE1MHEwIDIxIDEwLjUgMjV0MjQuNSAtMTB6TTUyMiA4MTlsLTE0MSAtMTQxbC0xMjIgMTIyaC0yMDlxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI5MXpNMTEzNSA1NjVsMjQ5IC0yMzBxMTUgLTE0IDE1IC0zNXQtMTUgLTM1bC0yNDkgLTIzMHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYxNTBoLTI0MWwtMTgxIDE4MWwxNDEgMTQxbDEyMiAtMTIyaDE1OXYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTE7IiBkPSJNMTAwIDExMDBoMTAwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC01OTZsLTMwNCAtMzAwdjMwMGgtMTAwcS00MSAwIC03MC41IDI5LjV0LTI5LjUgNzAuNXY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTI7IiBkPSJNMTUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTMwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMzAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTExMDAgODAwdi0zMDBxMCAtNDEgLTMgLTc3LjV0LTE1IC04OS41dC0zMiAtOTZ0LTU4IC04OXQtODkgLTc3dC0xMjkgLTUxdC0xNzQgLTIwdC0xNzQgMjAgdC0xMjkgNTF0LTg5IDc3dC01OCA4OXQtMzIgOTZ0LTE1IDg5LjV0LTMgNzcuNXYzMDBoMzAwdi0yNTB2LTI3di00Mi41dDEuNSAtNDF0NSAtMzh0MTAgLTM1dDE2LjUgLTMwdDI1LjUgLTI0LjV0MzUgLTE5dDQ2LjUgLTEydDYwIC00dDYwIDQuNXQ0Ni41IDEyLjV0MzUgMTkuNXQyNSAyNS41dDE3IDMwLjV0MTAgMzV0NSAzOHQyIDQwLjV0LTAuNSA0MnYyNXYyNTBoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTM7IiBkPSJNMTEwMCA0MTFsLTE5OCAtMTk5bC0zNTMgMzUzbC0zNTMgLTM1M2wtMTk3IDE5OWw1NTEgNTUxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTQ7IiBkPSJNMTEwMSA3ODlsLTU1MCAtNTUxbC01NTEgNTUxbDE5OCAxOTlsMzUzIC0zNTNsMzUzIDM1M3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE1OyIgZD0iTTQwNCAxMDAwaDc0NnEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUxaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtMjMwIC0yNDlxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI0OXEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNWgxNTB2NDAxaC0zODF6TTEzNSA5ODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi00MDBoMzg1bDIxNSAtMjAwaC03NTBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXY1NTBoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTY7IiBkPSJNNTYgMTIwMGg5NHExNyAwIDMxIC0xMXQxOCAtMjdsMzggLTE2Mmg4OTZxMjQgMCAzOSAtMTguNXQxMCAtNDIuNWwtMTAwIC00NzVxLTUgLTIxIC0yNyAtNDIuNXQtNTUgLTIxLjVoLTYzM2w0OCAtMjAwaDUzNXEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41dC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MGgtMzAwdi01MCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaC0zMXEtMTggMCAtMzIuNSAxMHQtMjAuNSAxOWwtNSAxMGwtMjAxIDk2MWgtNTRxLTIwIDAgLTM1IDE0LjV0LTE1IDM1LjV0MTUgMzUuNXQzNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTc7IiBkPSJNMTIwMCAxMDAwdi0xMDBoLTEyMDB2MTAwaDIwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41aDUwMHpNMCA4MDBoMTIwMHYtODAwaC0xMjAwdjgwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE4OyIgZD0iTTIwMCA4MDBsLTIwMCAtNDAwdjYwMGgyMDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDMwMHE0MiAwIDcxIC0yOS41dDI5IC03MC41aDUwMHYtMjAwaC0xMDAwek0xNTAwIDcwMGwtMzAwIC03MDBoLTEyMDBsMzAwIDcwMGgxMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTk7IiBkPSJNNjM1IDExODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi02MDFoMTUwcTIxIDAgMjUgLTEwLjV0LTEwIC0yNC41bC0yMzAgLTI0OXEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjQ5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41aDE1MHY2MDFoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjA7IiBkPSJNOTM2IDg2NGwyNDkgLTIyOXExNCAtMTUgMTQgLTM1LjV0LTE0IC0zNS41bC0yNDkgLTIyOXEtMTUgLTE1IC0yNS41IC0xMC41dC0xMC41IDI0LjV2MTUxaC02MDB2LTE1MXEwIC0yMCAtMTAuNSAtMjQuNXQtMjUuNSAxMC41bC0yNDkgMjI5cS0xNCAxNSAtMTQgMzUuNXQxNCAzNS41bDI0OSAyMjlxMTUgMTUgMjUuNSAxMC41dDEwLjUgLTI1LjV2LTE0OWg2MDB2MTQ5cTAgMjEgMTAuNSAyNS41dDI1LjUgLTEwLjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMTsiIGQ9Ik0xMTY5IDQwMGwtMTcyIDczMnEtNSAyMyAtMjMgNDUuNXQtMzggMjIuNWgtNjcycS0yMCAwIC0zOCAtMjB0LTIzIC00MWwtMTcyIC03MzloMTEzOHpNMTEwMCAzMDBoLTEwMDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTEwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoMTAwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek04MDAgMTAwdjEwMGgxMDB2LTEwMGgtMTAwIHpNMTAwMCAxMDB2MTAwaDEwMHYtMTAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMjsiIGQ9Ik0xMTUwIDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTg1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUuNSAxNC41dC0xNC41IDM1LjV2ODUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTAwMCAyMDBsLTY3NSAyMDBoLTM4bDQ3IC0yNzZxMyAtMTYgLTUuNSAtMjB0LTI5LjUgLTRoLTdoLTg0cS0yMCAwIC0zNC41IDE0dC0xOC41IDM1cS01NSAzMzcgLTU1IDM1MXYyNTB2NnEwIDE2IDEgMjMuNXQ2LjUgMTQgdDE3LjUgNi41aDIwMGw2NzUgMjUwdi04NTB6TTAgNzUwdi0yNTBxLTQgMCAtMTEgMC41dC0yNCA2dC0zMCAxNXQtMjQgMzB0LTExIDQ4LjV2NTBxMCAyNiAxMC41IDQ2dDI1IDMwdDI5IDE2dDI1LjUgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTIzOyIgZD0iTTU1MyAxMjAwaDk0cTIwIDAgMjkgLTEwLjV0MyAtMjkuNWwtMTggLTM3cTgzIC0xOSAxNDQgLTgyLjV0NzYgLTE0MC41bDYzIC0zMjdsMTE4IC0xNzNoMTdxMTkgMCAzMyAtMTQuNXQxNCAtMzV0LTEzIC00MC41dC0zMSAtMjdxLTggLTQgLTIzIC05LjV0LTY1IC0xOS41dC0xMDMgLTI1dC0xMzIuNSAtMjB0LTE1OC41IC05cS01NyAwIC0xMTUgNXQtMTA0IDEydC04OC41IDE1LjV0LTczLjUgMTcuNXQtNTQuNSAxNnQtMzUuNSAxMmwtMTEgNCBxLTE4IDggLTMxIDI4dC0xMyA0MC41dDE0IDM1dDMzIDE0LjVoMTdsMTE4IDE3M2w2MyAzMjdxMTUgNzcgNzYgMTQwdDE0NCA4M2wtMTggMzJxLTYgMTkgMy41IDMydDI4LjUgMTN6TTQ5OCAxMTBxNTAgLTYgMTAyIC02cTUzIDAgMTAyIDZxLTEyIC00OSAtMzkuNSAtNzkuNXQtNjIuNSAtMzAuNXQtNjMgMzAuNXQtMzkgNzkuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI0OyIgZD0iTTgwMCA5NDZsMjI0IDc4bC03OCAtMjI0bDIzNCAtNDVsLTE4MCAtMTU1bDE4MCAtMTU1bC0yMzQgLTQ1bDc4IC0yMjRsLTIyNCA3OGwtNDUgLTIzNGwtMTU1IDE4MGwtMTU1IC0xODBsLTQ1IDIzNGwtMjI0IC03OGw3OCAyMjRsLTIzNCA0NWwxODAgMTU1bC0xODAgMTU1bDIzNCA0NWwtNzggMjI0bDIyNCAtNzhsNDUgMjM0bDE1NSAtMTgwbDE1NSAxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyNTsiIGQ9Ik02NTAgMTIwMGg1MHE0MCAwIDcwIC00MC41dDMwIC04NC41di0xNTBsLTI4IC0xMjVoMzI4cTQwIDAgNzAgLTQwLjV0MzAgLTg0LjV2LTEwMHEwIC00NSAtMjkgLTc0bC0yMzggLTM0NHEtMTYgLTI0IC0zOCAtNDAuNXQtNDUgLTE2LjVoLTI1MHEtNyAwIC00MiAyNXQtNjYgNTBsLTMxIDI1aC02MXEtNDUgMCAtNzIuNSAxOHQtMjcuNSA1N3Y0MDBxMCAzNiAyMCA2M2wxNDUgMTk2bDk2IDE5OHExMyAyOCAzNy41IDQ4dDUxLjUgMjB6IE02NTAgMTEwMGwtMTAwIC0yMTJsLTE1MCAtMjEzdi0zNzVoMTAwbDEzNiAtMTAwaDIxNGwyNTAgMzc1djEyNWgtNDUwbDUwIDIyNXYxNzVoLTUwek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI2OyIgZD0iTTYwMCAxMTAwaDI1MHEyMyAwIDQ1IC0xNi41dDM4IC00MC41bDIzOCAtMzQ0cTI5IC0yOSAyOSAtNzR2LTEwMHEwIC00NCAtMzAgLTg0LjV0LTcwIC00MC41aC0zMjhxMjggLTExOCAyOCAtMTI1di0xNTBxMCAtNDQgLTMwIC04NC41dC03MCAtNDAuNWgtNTBxLTI3IDAgLTUxLjUgMjB0LTM3LjUgNDhsLTk2IDE5OGwtMTQ1IDE5NnEtMjAgMjcgLTIwIDYzdjQwMHEwIDM5IDI3LjUgNTd0NzIuNSAxOGg2MXExMjQgMTAwIDEzOSAxMDB6IE01MCAxMDAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTYzNiAxMDAwbC0xMzYgLTEwMGgtMTAwdi0zNzVsMTUwIC0yMTNsMTAwIC0yMTJoNTB2MTc1bC01MCAyMjVoNDUwdjEyNWwtMjUwIDM3NWgtMjE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjc7IiBkPSJNMzU2IDg3M2wzNjMgMjMwcTMxIDE2IDUzIC02bDExMCAtMTEycTEzIC0xMyAxMy41IC0zMnQtMTEuNSAtMzRsLTg0IC0xMjFoMzAycTg0IDAgMTM4IC0zOHQ1NCAtMTEwdC01NSAtMTExdC0xMzkgLTM5aC0xMDZsLTEzMSAtMzM5cS02IC0yMSAtMTkuNSAtNDF0LTI4LjUgLTIwaC0zNDJxLTcgMCAtOTAgODF0LTgzIDk0djUyNXEwIDE3IDE0IDM1LjV0MjggMjguNXpNNDAwIDc5MnYtNTAzbDEwMCAtODloMjkzbDEzMSAzMzkgcTYgMjEgMTkuNSA0MXQyOC41IDIwaDIwM3EyMSAwIDMwLjUgMjV0MC41IDUwdC0zMSAyNWgtNDU2aC03aC02aC01LjV0LTYgMC41dC01IDEuNXQtNSAydC00IDIuNXQtNCA0dC0yLjUgNC41cS0xMiAyNSA1IDQ3bDE0NiAxODNsLTg2IDgzek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwIHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyODsiIGQ9Ik00NzUgMTEwM2wzNjYgLTIzMHEyIC0xIDYgLTMuNXQxNCAtMTAuNXQxOCAtMTYuNXQxNC41IC0yMHQ2LjUgLTIyLjV2LTUyNXEwIC0xMyAtODYgLTk0dC05MyAtODFoLTM0MnEtMTUgMCAtMjguNSAyMHQtMTkuNSA0MWwtMTMxIDMzOWgtMTA2cS04NSAwIC0xMzkuNSAzOXQtNTQuNSAxMTF0NTQgMTEwdDEzOCAzOGgzMDJsLTg1IDEyMXEtMTEgMTUgLTEwLjUgMzR0MTMuNSAzMmwxMTAgMTEycTIyIDIyIDUzIDZ6TTM3MCA5NDVsMTQ2IC0xODMgcTE3IC0yMiA1IC00N3EtMiAtMiAtMy41IC00LjV0LTQgLTR0LTQgLTIuNXQtNSAtMnQtNSAtMS41dC02IC0wLjVoLTZoLTYuNWgtNmgtNDc1di0xMDBoMjIxcTE1IDAgMjkgLTIwdDIwIC00MWwxMzAgLTMzOWgyOTRsMTA2IDg5djUwM2wtMzQyIDIzNnpNMTA1MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjUgdjUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyOTsiIGQ9Ik01NTAgMTI5NHE3MiAwIDExMSAtNTV0MzkgLTEzOXYtMTA2bDMzOSAtMTMxcTIxIC02IDQxIC0xOS41dDIwIC0yOC41di0zNDJxMCAtNyAtODEgLTkwdC05NCAtODNoLTUyNXEtMTcgMCAtMzUuNSAxNHQtMjguNSAyOGwtOSAxNGwtMjMwIDM2M3EtMTYgMzEgNiA1M2wxMTIgMTEwcTEzIDEzIDMyIDEzLjV0MzQgLTExLjVsMTIxIC04NHYzMDJxMCA4NCAzOCAxMzh0MTEwIDU0ek02MDAgOTcydjIwM3EwIDIxIC0yNSAzMC41dC01MCAwLjUgdC0yNSAtMzF2LTQ1NnYtN3YtNnYtNS41dC0wLjUgLTZ0LTEuNSAtNXQtMiAtNXQtMi41IC00dC00IC00dC00LjUgLTIuNXEtMjUgLTEyIC00NyA1bC0xODMgMTQ2bC04MyAtODZsMjM2IC0zMzloNTAzbDg5IDEwMHYyOTNsLTMzOSAxMzFxLTIxIDYgLTQxIDE5LjV0LTIwIDI4LjV6TTQ1MCAyMDBoNTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTUwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMDsiIGQ9Ik0zNTAgMTEwMGg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41ek02MDAgMzA2di0xMDZxMCAtODQgLTM5IC0xMzl0LTExMSAtNTV0LTExMCA1NHQtMzggMTM4djMwMmwtMTIxIC04NHEtMTUgLTEyIC0zNCAtMTEuNXQtMzIgMTMuNWwtMTEyIDExMCBxLTIyIDIyIC02IDUzbDIzMCAzNjNxMSAyIDMuNSA2dDEwLjUgMTMuNXQxNi41IDE3dDIwIDEzLjV0MjIuNSA2aDUyNXExMyAwIDk0IC04M3Q4MSAtOTB2LTM0MnEwIC0xNSAtMjAgLTI4LjV0LTQxIC0xOS41ek0zMDggOTAwbC0yMzYgLTMzOWw4MyAtODZsMTgzIDE0NnEyMiAxNyA0NyA1cTIgLTEgNC41IC0yLjV0NCAtNHQyLjUgLTR0MiAtNXQxLjUgLTV0MC41IC02di01LjV2LTZ2LTd2LTQ1NnEwIC0yMiAyNSAtMzF0NTAgMC41dDI1IDMwLjUgdjIwM3EwIDE1IDIwIDI4LjV0NDEgMTkuNWwzMzkgMTMxdjI5M2wtODkgMTAwaC01MDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMTsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNOTE0IDYzMmwtMjc1IDIyM3EtMTYgMTMgLTI3LjUgOHQtMTEuNSAtMjZ2LTEzN2gtMjc1IHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDI3NXYtMTM3cTAgLTIxIDExLjUgLTI2dDI3LjUgOGwyNzUgMjIzcTE2IDEzIDE2IDMydC0xNiAzMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTMyOyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek01NjEgODU1bC0yNzUgLTIyM3EtMTYgLTEzIC0xNiAtMzJ0MTYgLTMybDI3NSAtMjIzcTE2IC0xMyAyNy41IC04IHQxMS41IDI2djEzN2gyNzVxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXYxNTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC0yNzV2MTM3cTAgMjEgLTExLjUgMjZ0LTI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMzsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNODU1IDYzOWwtMjIzIDI3NXEtMTMgMTYgLTMyIDE2dC0zMiAtMTZsLTIyMyAtMjc1cS0xMyAtMTYgLTggLTI3LjUgdDI2IC0xMS41aDEzN3YtMjc1cTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2Mjc1aDEzN3EyMSAwIDI2IDExLjV0LTggMjcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM0OyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek02NzUgOTAwaC0xNTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0yNzVoLTEzN3EtMjEgMCAtMjYgLTExLjUgdDggLTI3LjVsMjIzIC0yNzVxMTMgLTE2IDMyIC0xNnQzMiAxNmwyMjMgMjc1cTEzIDE2IDggMjcuNXQtMjYgMTEuNWgtMTM3djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzNTsiIGQ9Ik02MDAgMTE3NnExMTYgMCAyMjIuNSAtNDZ0MTg0IC0xMjMuNXQxMjMuNSAtMTg0dDQ2IC0yMjIuNXQtNDYgLTIyMi41dC0xMjMuNSAtMTg0dC0xODQgLTEyMy41dC0yMjIuNSAtNDZ0LTIyMi41IDQ2dC0xODQgMTIzLjV0LTEyMy41IDE4NHQtNDYgMjIyLjV0NDYgMjIyLjV0MTIzLjUgMTg0dDE4NCAxMjMuNXQyMjIuNSA0NnpNNjI3IDExMDFxLTE1IC0xMiAtMzYuNSAtMjAuNXQtMzUuNSAtMTJ0LTQzIC04dC0zOSAtNi41IHEtMTUgLTMgLTQ1LjUgMHQtNDUuNSAtMnEtMjAgLTcgLTUxLjUgLTI2LjV0LTM0LjUgLTM0LjVxLTMgLTExIDYuNSAtMjIuNXQ4LjUgLTE4LjVxLTMgLTM0IC0yNy41IC05MXQtMjkuNSAtNzlxLTkgLTM0IDUgLTkzdDggLTg3cTAgLTkgMTcgLTQ0LjV0MTYgLTU5LjVxMTIgMCAyMyAtNXQyMy41IC0xNXQxOS41IC0xNHExNiAtOCAzMyAtMTV0NDAuNSAtMTV0MzQuNSAtMTJxMjEgLTkgNTIuNSAtMzJ0NjAgLTM4dDU3LjUgLTExIHE3IC0xNSAtMyAtMzR0LTIyLjUgLTQwdC05LjUgLTM4cTEzIC0yMSAyMyAtMzQuNXQyNy41IC0yNy41dDM2LjUgLTE4cTAgLTcgLTMuNSAtMTZ0LTMuNSAtMTR0NSAtMTdxMTA0IC0yIDIyMSAxMTJxMzAgMjkgNDYuNSA0N3QzNC41IDQ5dDIxIDYzcS0xMyA4IC0zNyA4LjV0LTM2IDcuNXEtMTUgNyAtNDkuNSAxNXQtNTEuNSAxOXEtMTggMCAtNDEgLTAuNXQtNDMgLTEuNXQtNDIgLTYuNXQtMzggLTE2LjVxLTUxIC0zNSAtNjYgLTEyIHEtNCAxIC0zLjUgMjUuNXQwLjUgMjUuNXEtNiAxMyAtMjYuNSAxNy41dC0yNC41IDYuNXExIDE1IC0wLjUgMzAuNXQtNyAyOHQtMTguNSAxMS41dC0zMSAtMjFxLTIzIC0yNSAtNDIgNHEtMTkgMjggLTggNThxNiAxNiAyMiAyMnE2IC0xIDI2IC0xLjV0MzMuNSAtNHQxOS41IC0xMy41cTcgLTEyIDE4IC0yNHQyMS41IC0yMC41dDIwIC0xNXQxNS41IC0xMC41bDUgLTNxMiAxMiA3LjUgMzAuNXQ4IDM0LjV0LTAuNSAzMnEtMyAxOCAzLjUgMjkgdDE4IDIyLjV0MTUuNSAyNC41cTYgMTQgMTAuNSAzNXQ4IDMxdDE1LjUgMjIuNXQzNCAyMi41cS02IDE4IDEwIDM2cTggMCAyNCAtMS41dDI0LjUgLTEuNXQyMCA0LjV0MjAuNSAxNS41cS0xMCAyMyAtMzEgNDIuNXQtMzcuNSAyOS41dC00OSAyN3QtNDMuNSAyM3EwIDEgMiA4dDMgMTEuNXQxLjUgMTAuNXQtMSA5LjV0LTQuNSA0LjVxMzEgLTEzIDU4LjUgLTE0LjV0MzguNSAyLjVsMTIgNXE1IDI4IC05LjUgNDZ0LTM2LjUgMjR0LTUwIDE1IHQtNDEgMjBxLTE4IC00IC0zNyAwek02MTMgOTk0cTAgLTE3IDggLTQydDE3IC00NXQ5IC0yM3EtOCAxIC0zOS41IDUuNXQtNTIuNSAxMHQtMzcgMTYuNXEzIDExIDE2IDI5LjV0MTYgMjUuNXExMCAtMTAgMTkgLTEwdDE0IDZ0MTMuNSAxNC41dDE2LjUgMTIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM2OyIgZD0iTTc1NiAxMTU3cTE2NCA5MiAzMDYgLTlsLTI1OSAtMTM4bDE0NSAtMjMybDI1MSAxMjZxNiAtODkgLTM0IC0xNTYuNXQtMTE3IC0xMTAuNXEtNjAgLTM0IC0xMjcgLTM5LjV0LTEyNiAxNi41bC01OTYgLTU5NnEtMTUgLTE2IC0zNi41IC0xNnQtMzYuNSAxNmwtMTExIDExMHEtMTUgMTUgLTE1IDM2LjV0MTUgMzcuNWw2MDAgNTk5cS0zNCAxMDEgNS41IDIwMS41dDEzNS41IDE1NC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzc7IiBob3Jpei1hZHYteD0iMTIyMCIgZD0iTTEwMCAxMTk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAxMDk2aC0yMDB2LTEwMGgyMDB2MTAwek0xMDAgNzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMCBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTExMDAgNjk2aC01MDB2LTEwMGg1MDB2MTAwek0xMDAgMzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAyOTZoLTMwMHYtMTAwaDMwMHYxMDB6ICIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzg7IiBkPSJNMTUwIDEyMDBoOTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41dC0xNC41IC0zNS41dC0zNS41IC0xNC41aC05MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA1MDB2LTMwMGwtMjAwIC0yMDB2NTAwbC0zNTAgNTAwaDkwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM5OyIgZD0iTTUwMCAxMjAwaDIwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtMTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNDAwaC01MDB2MTAwaC0yMDB2LTEwMGgtNTAwdjQwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwdjEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTUwMCAxMTAwdi0xMDBoMjAwdjEwMGgtMjAwek0xMjAwIDQwMHYtMjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0xMDAwIHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MjAwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MDsiIGQ9Ik01MCAxMjAwaDMwMHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtOTQgLTk0bDE5OSAtMTk5cTcgLTggNyAtMTh0LTcgLTE4bC0xMDYgLTEwNnEtOCAtNyAtMTggLTd0LTE4IDdsLTE5OSAxOTlsLTk0IC05NHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMTk5IC0xOTlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwxOTkgMTk5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNMzY0IDQ3MGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMTk5IC0xOTlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMTk5IDE5OSBxOCA3IDE4IDd0MTggLTd6TTEwNzEgMjcxbDk0IDk0cTE0IDE0IDI0LjUgMTB0MTAuNSAtMjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0yNSAxMC41dDEwIDI0LjVsOTQgOTRsLTE5OSAxOTlxLTcgOCAtNyAxOHQ3IDE4bDEwNiAxMDZxOCA3IDE4IDd0MTggLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MTsiIGQ9Ik01OTYgMTE5MnExMjEgMCAyMzEuNSAtNDcuNXQxOTAgLTEyN3QxMjcgLTE5MHQ0Ny41IC0yMzEuNXQtNDcuNSAtMjMxLjV0LTEyNyAtMTkwLjV0LTE5MCAtMTI3dC0yMzEuNSAtNDd0LTIzMS41IDQ3dC0xOTAuNSAxMjd0LTEyNyAxOTAuNXQtNDcgMjMxLjV0NDcgMjMxLjV0MTI3IDE5MHQxOTAuNSAxMjd0MjMxLjUgNDcuNXpNNTk2IDEwMTBxLTExMiAwIC0yMDcuNSAtNTUuNXQtMTUxIC0xNTF0LTU1LjUgLTIwNy41dDU1LjUgLTIwNy41IHQxNTEgLTE1MXQyMDcuNSAtNTUuNXQyMDcuNSA1NS41dDE1MSAxNTF0NTUuNSAyMDcuNXQtNTUuNSAyMDcuNXQtMTUxIDE1MXQtMjA3LjUgNTUuNXpNNDU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOC41IC0xNi41dC0zOC41IDE2LjV0LTE2IDM5dDE2IDM4LjV0MzguNSAxNnpNNzU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOCAtMTYuNXEtMTQgMCAtMjkgMTBsLTU1IC0xNDUgcTE3IC0yMyAxNyAtNTFxMCAtMzYgLTI1LjUgLTYxLjV0LTYxLjUgLTI1LjV0LTYxLjUgMjUuNXQtMjUuNSA2MS41cTAgMzIgMjAuNSA1Ni41dDUxLjUgMjkuNWwxMjIgMTI2bDEgMXEtOSAxNCAtOSAyOHEwIDIzIDE2IDM5dDM4LjUgMTZ6TTM0NS41IDcwOXEyMi41IDAgMzguNSAtMTZ0MTYgLTM4LjV0LTE2IC0zOC41dC0zOC41IC0xNnQtMzguNSAxNnQtMTYgMzguNXQxNiAzOC41dDM4LjUgMTZ6TTg1NC41IDcwOXEyMi41IDAgMzguNSAtMTYgdDE2IC0zOC41dC0xNiAtMzguNXQtMzguNSAtMTZ0LTM4LjUgMTZ0LTE2IDM4LjV0MTYgMzguNXQzOC41IDE2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDI7IiBkPSJNNTQ2IDE3M2w0NjkgNDcwcTkxIDkxIDk5IDE5MnE3IDk4IC01MiAxNzUuNXQtMTU0IDk0LjVxLTIyIDQgLTQ3IDRxLTM0IDAgLTY2LjUgLTEwdC01Ni41IC0yM3QtNTUuNSAtMzh0LTQ4IC00MS41dC00OC41IC00Ny41cS0zNzYgLTM3NSAtMzkxIC0zOTBxLTMwIC0yNyAtNDUgLTQxLjV0LTM3LjUgLTQxdC0zMiAtNDYuNXQtMTYgLTQ3LjV0LTEuNSAtNTYuNXE5IC02MiA1My41IC05NXQ5OS41IC0zM3E3NCAwIDEyNSA1MWw1NDggNTQ4IHEzNiAzNiAyMCA3NXEtNyAxNiAtMjEuNSAyNnQtMzIuNSAxMHEtMjYgMCAtNTAgLTIzcS0xMyAtMTIgLTM5IC0zOGwtMzQxIC0zMzhxLTE1IC0xNSAtMzUuNSAtMTUuNXQtMzQuNSAxMy41dC0xNCAzNC41dDE0IDM0LjVxMzI3IDMzMyAzNjEgMzY3cTM1IDM1IDY3LjUgNTEuNXQ3OC41IDE2LjVxMTQgMCAyOSAtMXE0NCAtOCA3NC41IC0zNS41dDQzLjUgLTY4LjVxMTQgLTQ3IDIgLTk2LjV0LTQ3IC04NC41cS0xMiAtMTEgLTMyIC0zMiB0LTc5LjUgLTgxdC0xMTQuNSAtMTE1dC0xMjQuNSAtMTIzLjV0LTEyMyAtMTE5LjV0LTk2LjUgLTg5dC01NyAtNDVxLTU2IC0yNyAtMTIwIC0yN3EtNzAgMCAtMTI5IDMydC05MyA4OXEtNDggNzggLTM1IDE3M3Q4MSAxNjNsNTExIDUxMXE3MSA3MiAxMTEgOTZxOTEgNTUgMTk4IDU1cTgwIDAgMTUyIC0zM3E3OCAtMzYgMTI5LjUgLTEwM3Q2Ni41IC0xNTRxMTcgLTkzIC0xMSAtMTgzLjV0LTk0IC0xNTYuNWwtNDgyIC00NzYgcS0xNSAtMTUgLTM2IC0xNnQtMzcgMTR0LTE3LjUgMzR0MTQuNSAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQzOyIgZD0iTTY0OSA5NDlxNDggNjggMTA5LjUgMTA0dDEyMS41IDM4LjV0MTE4LjUgLTIwdDEwMi41IC02NHQ3MSAtMTAwLjV0MjcgLTEyM3EwIC01NyAtMzMuNSAtMTE3LjV0LTk0IC0xMjQuNXQtMTI2LjUgLTEyNy41dC0xNTAgLTE1Mi41dC0xNDYgLTE3NHEtNjIgODUgLTE0NS41IDE3NHQtMTUwIDE1Mi41dC0xMjYuNSAxMjcuNXQtOTMuNSAxMjQuNXQtMzMuNSAxMTcuNXEwIDY0IDI4IDEyM3Q3MyAxMDAuNXQxMDQgNjR0MTE5IDIwIHQxMjAuNSAtMzguNXQxMDQuNSAtMTA0ek04OTYgOTcycS0zMyAwIC02NC41IC0xOXQtNTYuNSAtNDZ0LTQ3LjUgLTUzLjV0LTQzLjUgLTQ1LjV0LTM3LjUgLTE5dC0zNiAxOXQtNDAgNDUuNXQtNDMgNTMuNXQtNTQgNDZ0LTY1LjUgMTlxLTY3IDAgLTEyMi41IC01NS41dC01NS41IC0xMzIuNXEwIC0yMyAxMy41IC01MXQ0NiAtNjV0NTcuNSAtNjN0NzYgLTc1bDIyIC0yMnExNSAtMTQgNDQgLTQ0dDUwLjUgLTUxdDQ2IC00NHQ0MSAtMzV0MjMgLTEyIHQyMy41IDEydDQyLjUgMzZ0NDYgNDR0NTIuNSA1MnQ0NCA0M3E0IDQgMTIgMTNxNDMgNDEgNjMuNSA2MnQ1MiA1NXQ0NiA1NXQyNiA0NnQxMS41IDQ0cTAgNzkgLTUzIDEzMy41dC0xMjAgNTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQ0OyIgZD0iTTc3Ni41IDEyMTRxOTMuNSAwIDE1OS41IC02NmwxNDEgLTE0MXE2NiAtNjYgNjYgLTE2MHEwIC00MiAtMjggLTk1LjV0LTYyIC04Ny41bC0yOSAtMjlxLTMxIDUzIC03NyA5OWwtMTggMThsOTUgOTVsLTI0NyAyNDhsLTM4OSAtMzg5bDIxMiAtMjEybC0xMDUgLTEwNmwtMTkgMThsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTl0NjYgMTU5bDI4MyAyODNxNjUgNjYgMTU4LjUgNjZ6TTYwMCA3MDZsMTA1IDEwNXExMCAtOCAxOSAtMTdsMTQxIC0xNDEgcTY2IC02NiA2NiAtMTU5dC02NiAtMTU5bC0yODMgLTI4M3EtNjYgLTY2IC0xNTkgLTY2dC0xNTkgNjZsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTkuNXQ2NiAxNTkuNWw1NSA1NXEyOSAtNTUgNzUgLTEwMmwxOCAtMTdsLTk1IC05NWwyNDcgLTI0OGwzODkgMzg5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDU7IiBkPSJNNjAzIDEyMDBxODUgMCAxNjIgLTE1dDEyNyAtMzh0NzkgLTQ4dDI5IC00NnYtOTUzcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djk1M3EwIDIxIDMwIDQ2LjV0ODEgNDh0MTI5IDM3LjV0MTYzIDE1ek0zMDAgMTAwMHYtNzAwaDYwMHY3MDBoLTYwMHpNNjAwIDI1NHEtNDMgMCAtNzMuNSAtMzAuNXQtMzAuNSAtNzMuNXQzMC41IC03My41dDczLjUgLTMwLjV0NzMuNSAzMC41IHQzMC41IDczLjV0LTMwLjUgNzMuNXQtNzMuNSAzMC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDY7IiBkPSJNOTAyIDExODVsMjgzIC0yODJxMTUgLTE1IDE1IC0zNnQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUgMTVsLTM2IDM1bC0yNzkgLTI2N3YtMzAwbC0yMTIgMjEwbC0zMDggLTMwN2wtMjgwIC0yMDNsMjAzIDI4MGwzMDcgMzA4bC0yMTAgMjEyaDMwMGwyNjcgMjc5bC0zNSAzNnEtMTUgMTQgLTE1IDM1dDE0LjUgMzUuNXQzNS41IDE0LjV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDg7IiBkPSJNNzAwIDEyNDh2LTc4cTM4IC01IDcyLjUgLTE0LjV0NzUuNSAtMzEuNXQ3MSAtNTMuNXQ1MiAtODR0MjQgLTExOC41aC0xNTlxLTQgMzYgLTEwLjUgNTl0LTIxIDQ1dC00MCAzNS41dC02NC41IDIwLjV2LTMwN2w2NCAtMTNxMzQgLTcgNjQgLTE2LjV0NzAgLTMydDY3LjUgLTUyLjV0NDcuNSAtODB0MjAgLTExMnEwIC0xMzkgLTg5IC0yMjR0LTI0NCAtOTd2LTc3aC0xMDB2NzlxLTE1MCAxNiAtMjM3IDEwM3EtNDAgNDAgLTUyLjUgOTMuNSB0LTE1LjUgMTM5LjVoMTM5cTUgLTc3IDQ4LjUgLTEyNnQxMTcuNSAtNjV2MzM1bC0yNyA4cS00NiAxNCAtNzkgMjYuNXQtNzIgMzZ0LTYzIDUydC00MCA3Mi41dC0xNiA5OHEwIDcwIDI1IDEyNnQ2Ny41IDkydDk0LjUgNTd0MTEwIDI3djc3aDEwMHpNNjAwIDc1NHYyNzRxLTI5IC00IC01MCAtMTF0LTQyIC0yMS41dC0zMS41IC00MS41dC0xMC41IC02NXEwIC0yOSA3IC01MC41dDE2LjUgLTM0dDI4LjUgLTIyLjV0MzEuNSAtMTR0MzcuNSAtMTAgcTkgLTMgMTMgLTR6TTcwMCA1NDd2LTMxMHEyMiAyIDQyLjUgNi41dDQ1IDE1LjV0NDEuNSAyN3QyOSA0MnQxMiA1OS41dC0xMi41IDU5LjV0LTM4IDQ0LjV0LTUzIDMxdC02Ni41IDI0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0OTsiIGQ9Ik01NjEgMTE5N3E4NCAwIDE2MC41IC00MHQxMjMuNSAtMTA5LjV0NDcgLTE0Ny41aC0xNTNxMCA0MCAtMTkuNSA3MS41dC00OS41IDQ4LjV0LTU5LjUgMjZ0LTU1LjUgOXEtMzcgMCAtNzkgLTE0LjV0LTYyIC0zNS41cS00MSAtNDQgLTQxIC0xMDFxMCAtMjYgMTMuNSAtNjN0MjYuNSAtNjF0MzcgLTY2cTYgLTkgOSAtMTRoMjQxdi0xMDBoLTE5N3E4IC01MCAtMi41IC0xMTV0LTMxLjUgLTk1cS00NSAtNjIgLTk5IC0xMTIgcTM0IDEwIDgzIDE3LjV0NzEgNy41cTMyIDEgMTAyIC0xNnQxMDQgLTE3cTgzIDAgMTM2IDMwbDUwIC0xNDdxLTMxIC0xOSAtNTggLTMwLjV0LTU1IC0xNS41dC00MiAtNC41dC00NiAtMC41cS0yMyAwIC03NiAxN3QtMTExIDMyLjV0LTk2IDExLjVxLTM5IC0zIC04MiAtMTZ0LTY3IC0yNWwtMjMgLTExbC01NSAxNDVxNCAzIDE2IDExdDE1LjUgMTAuNXQxMyA5dDE1LjUgMTJ0MTQuNSAxNHQxNy41IDE4LjVxNDggNTUgNTQgMTI2LjUgdC0zMCAxNDIuNWgtMjIxdjEwMGgxNjZxLTIzIDQ3IC00NCAxMDRxLTcgMjAgLTEyIDQxLjV0LTYgNTUuNXQ2IDY2LjV0MjkuNSA3MC41dDU4LjUgNzFxOTcgODggMjYzIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTA7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkzNSAxMTg0bDIzMCAtMjQ5cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTE1MHYtOTAwaC0yMDB2OTAwaC0xNTBxLTIxIDAgLTI1IDEwLjV0MTAgMjQuNWwyMzAgMjQ5cTE0IDE1IDM1IDE1dDM1IC0xNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUxOyIgZD0iTTEwMDAgNzAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwdjUwMGgzMDB2LTUwMHpNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTgwMSAxMTAwdi0yMDBoMTAwdjIwMGgtMTAwek0xMDAwIDM1MGwtMjAwIC0yNTBoMjAwdi0xMDBoLTMwMHYxNTBsMjAwIDI1MGgtMjAwdjEwMGgzMDB2LTE1MHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1MjsiIGQ9Ik00MDAgMzAwaDE1MHEyMSAwIDI1IC0xMXQtMTAgLTI1bC0yMzAgLTI1MHEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjUwcS0xNCAxNCAtMTAgMjV0MjUgMTFoMTUwdjkwMGgyMDB2LTkwMHpNMTAwMCAxMDUwbC0yMDAgLTI1MGgyMDB2LTEwMGgtMzAwdjE1MGwyMDAgMjUwaC0yMDB2MTAwaDMwMHYtMTUwek0xMDAwIDBoLTEwMHYxMDBoLTEwMHYtMTAwaC0xMDB2NTAwaDMwMHYtNTAwek04MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUzOyIgZD0iTTQwMCAzMDBoMTUwcTIxIDAgMjUgLTExdC0xMCAtMjVsLTIzMCAtMjUwcS0xNCAtMTUgLTM1IC0xNXQtMzUgMTVsLTIzMCAyNTBxLTE0IDE0IC0xMCAyNXQyNSAxMWgxNTB2OTAwaDIwMHYtOTAwek0xMDAwIDcwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMTEwMCAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTQ7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTExMDAgNzAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgMTEwMHYtMjAwaDEwMHYyMDBoLTEwMHpNMTAwMCAwaC0xMDB2NDAwaC0xMDB2MTAwaDIwMHYtNTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTU7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkwMCAxMDAwaC0yMDB2MjAwaDIwMHYtMjAwek0xMDAwIDcwMGgtMzAwdjIwMGgzMDB2LTIwMHpNMTEwMCA0MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEyMDAgMTAwaC01MDB2MjAwaDUwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTY7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTEyMDAgMTAwMGgtNTAwdjIwMGg1MDB2LTIwMHpNMTEwMCA3MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEwMDAgNDAwaC0zMDB2MjAwaDMwMHYtMjAwek05MDAgMTAwaC0yMDB2MjAwaDIwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTc7IiBkPSJNMzUwIDExMDBoNDAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTQwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTg7IiBkPSJNMzUwIDExMDBoNDAwcTE2NSAwIDI1Ny41IC05Mi41dDkyLjUgLTI1Ny41di00MDBxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTYzIDAgLTI1Ni41IDkyLjV0LTkzLjUgMjU3LjV2NDAwcTAgMTYzIDk0IDI1Ni41dDI1NiA5My41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek00NDAgNzcwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1OTsiIGQ9Ik0zNTAgMTEwMGg0MDBxMTYzIDAgMjU2LjUgLTk0dDkzLjUgLTI1NnYtNDAwcTAgLTE2NSAtOTIuNSAtMjU3LjV0LTI1Ny41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2MyA5Mi41IDI1Ni41dDI1Ny41IDkzLjV6TTgwMCA5MDBoLTUwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41IHY1MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTM1MCA3MDBoNDAwcTIxIDAgMjYuNSAtMTJ0LTYuNSAtMjhsLTE5MCAtMjUzcS0xMiAtMTcgLTMwIC0xN3QtMzAgMTdsLTE5MCAyNTNxLTEyIDE2IC02LjUgMjh0MjYuNSAxMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYwOyIgZD0iTTM1MCAxMTAwaDQwMHExNjUgMCAyNTcuNSAtOTIuNXQ5Mi41IC0yNTcuNXYtNDAwcTAgLTE2MyAtOTIuNSAtMjU2LjV0LTI1Ny41IC05My41aC00MDBxLTE2MyAwIC0yNTYuNSA5NHQtOTMuNSAyNTZ2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXpNODAwIDkwMGgtNTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjUgdjUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNNTgwIDY5M2wxOTAgLTI1M3ExMiAtMTYgNi41IC0yOHQtMjYuNSAtMTJoLTQwMHEtMjEgMCAtMjYuNSAxMnQ2LjUgMjhsMTkwIDI1M3ExMiAxNyAzMCAxN3QzMCAtMTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MTsiIGQ9Ik01NTAgMTEwMGg0MDBxMTY1IDAgMjU3LjUgLTkyLjV0OTIuNSAtMjU3LjV2LTQwMHEwIC0xNjUgLTkyLjUgLTI1Ny41dC0yNTcuNSAtOTIuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC00NTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMzggODY3bDMyNCAtMjg0cTE2IC0xNCAxNiAtMzN0LTE2IC0zM2wtMzI0IC0yODRxLTE2IC0xNCAtMjcgLTl0LTExIDI2djE1MGgtMjUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI1MHYxNTBxMCAyMSAxMSAyNnQyNyAtOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYyOyIgZD0iTTc5MyAxMTgybDkgLTlxOCAtMTAgNSAtMjdxLTMgLTExIC03OSAtMjI1LjV0LTc4IC0yMjEuNWwzMDAgMXEyNCAwIDMyLjUgLTE3LjV0LTUuNSAtMzUuNXEtMSAwIC0xMzMuNSAtMTU1dC0yNjcgLTMxMi41dC0xMzguNSAtMTYyLjVxLTEyIC0xNSAtMjYgLTE1aC05bC05IDhxLTkgMTEgLTQgMzJxMiA5IDQyIDEyMy41dDc5IDIyNC41bDM5IDExMGgtMzAycS0yMyAwIC0zMSAxOXEtMTAgMjEgNiA0MXE3NSA4NiAyMDkuNSAyMzcuNSB0MjI4IDI1N3Q5OC41IDExMS41cTkgMTYgMjUgMTZoOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYzOyIgZD0iTTM1MCAxMTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00NTBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwIHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTkzOCA4NjdsMzI0IC0yODRxMTYgLTE0IDE2IC0zM3QtMTYgLTMzbC0zMjQgLTI4NHEtMTYgLTE0IC0yNyAtOXQtMTEgMjZ2MTUwaC0yNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjUwdjE1MHEwIDIxIDExIDI2dDI3IC05eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjQ7IiBkPSJNNzUwIDEyMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTEwLjUgLTI1dC0yNC41IDEwbC0xMDkgMTA5bC0zMTIgLTMxMnEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtMTQxIDE0MXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWwzMTIgMzEybC0xMDkgMTA5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41ek00NTYgOTAwaC0xNTZxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMCBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTQ4bDIwMCAyMDB2LTI5OHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41aDMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY1OyIgZD0iTTYwMCAxMTg2cTExOSAwIDIyNy41IC00Ni41dDE4NyAtMTI1dDEyNSAtMTg3dDQ2LjUgLTIyNy41dC00Ni41IC0yMjcuNXQtMTI1IC0xODd0LTE4NyAtMTI1dC0yMjcuNSAtNDYuNXQtMjI3LjUgNDYuNXQtMTg3IDEyNXQtMTI1IDE4N3QtNDYuNSAyMjcuNXQ0Ni41IDIyNy41dDEyNSAxODd0MTg3IDEyNXQyMjcuNSA0Ni41ek02MDAgMTAyMnEtMTE1IDAgLTIxMiAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTJ0NTYuNSAtMjEyIHQxNTMuNSAtMTUzLjV0MjEyIC01Ni41dDIxMiA1Ni41dDE1My41IDE1My41dDU2LjUgMjEydC01Ni41IDIxMnQtMTUzLjUgMTUzLjV0LTIxMiA1Ni41ek02MDAgNzk0cTgwIDAgMTM3IC01N3Q1NyAtMTM3dC01NyAtMTM3dC0xMzcgLTU3dC0xMzcgNTd0LTU3IDEzN3Q1NyAxMzd0MTM3IDU3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjY7IiBkPSJNNDUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMjQ1cTIwIDAgMjUgLTExdC05IC0yNmwtMzgzIC00MjZxLTE0IC0xNSAtMzMuNSAtMTV0LTMyLjUgMTVsLTM3OSA0MjZxLTEzIDE1IC04LjUgMjZ0MjUuNSAxMWgyNTB2MzUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMTEwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiBNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NzsiIGQ9Ik01ODMgMTE4MmwzNzggLTQzNXExNCAtMTUgOSAtMzF0LTI2IC0xNmgtMjQ0di0yNTBxMCAtMjAgLTE3IC0zNXQtMzkgLTE1aC0yMDBxLTIwIDAgLTMyIDE0LjV0LTEyIDM1LjV2MjUwaC0yNTBxLTIwIDAgLTI1LjUgMTYuNXQ4LjUgMzEuNWwzODMgNDMxcTE0IDE2IDMzLjUgMTd0MzMuNSAtMTR6TTUwIDMwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXogTTkwMCAyMDB2LTUwaDEwMHY1MGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjg7IiBkPSJNMzk2IDcyM2wzNjkgMzY5cTcgNyAxNy41IDd0MTcuNSAtN2wxMzkgLTEzOXE3IC04IDcgLTE4LjV0LTcgLTE3LjVsLTUyNSAtNTI1cS03IC04IC0xNy41IC04dC0xNy41IDhsLTI5MiAyOTFxLTcgOCAtNyAxOHQ3IDE4bDEzOSAxMzlxOCA3IDE4LjUgN3QxNy41IC03ek01MCAzMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaC0xMTAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAyMDB2LTUwaDEwMHY1MCBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY5OyIgZD0iTTEzNSAxMDIzbDE0MiAxNDJxMTQgMTQgMzUgMTR0MzUgLTE0bDc3IC03N2wtMjEyIC0yMTJsLTc3IDc2cS0xNCAxNSAtMTQgMzZ0MTQgMzV6TTY1NSA4NTVsMjEwIDIxMHExNCAxNCAyNC41IDEwdDEwLjUgLTI1bC0yIC01OTlxLTEgLTIwIC0xNS41IC0zNXQtMzUuNSAtMTVsLTU5NyAtMXEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIwOCAyMDhsLTE1NCAxNTVsMjEyIDIxMnpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjUgdi0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MDsiIGQ9Ik0zNTAgMTIwMGw1OTkgLTJxMjAgLTEgMzUgLTE1LjV0MTUgLTM1LjVsMSAtNTk3cTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtMjA4IDIwOGwtMTU1IC0xNTRsLTIxMiAyMTJsMTU1IDE1NGwtMjEwIDIxMHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNNTI0IDUxMmwtNzYgLTc3cS0xNSAtMTQgLTM2IC0xNHQtMzUgMTRsLTE0MiAxNDJxLTE0IDE0IC0xNCAzNXQxNCAzNWw3NyA3N3pNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41IHQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MTsiIGQ9Ik0xMjAwIDEwM2wtNDgzIDI3NmwtMzE0IC0zOTl2NDIzaC0zOTlsMTE5NiA3OTZ2LTEwOTZ6TTQ4MyA0MjR2LTIzMGw2ODMgOTUzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzI7IiBkPSJNMTEwMCAxMDAwdi04NTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTE1MHY0MDBoLTcwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzM7IiBkPSJNMTEwMCAxMDAwbC0yIC0xNDlsLTI5OSAtMjk5bC05NSA5NXEtOSA5IC0yMS41IDl0LTIxLjUgLTlsLTE0OSAtMTQ3aC0zMTJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTEzMiA2MzhsMTA2IC0xMDZxNyAtNyA3IC0xNy41dC03IC0xNy41bC00MjAgLTQyMXEtOCAtNyAtMTggLTcgdC0xOCA3bC0yMDIgMjAzcS04IDcgLTggMTcuNXQ4IDE3LjVsMTA2IDEwNnE3IDggMTcuNSA4dDE3LjUgLThsNzkgLTc5bDI5NyAyOTdxNyA3IDE3LjUgN3QxNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzQ7IiBkPSJNMTEwMCAxMDAwdi0yNjlsLTEwMyAtMTAzbC0xMzQgMTM0cS0xNSAxNSAtMzMuNSAxNi41dC0zNC41IC0xMi41bC0yNjYgLTI2NmgtMzI5di00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwMHEwIDIwIDE0LjUgMzV0MzUuNSAxNWgyNTB2LTMwMGg1MDB2MzAwaDEwMHpNNzAwIDEwMDBoLTEwMHYyMDBoMTAwdi0yMDB6TTEyMDIgNTcybDcwIC03MHExNSAtMTUgMTUgLTM1LjV0LTE1IC0zNS41bC0xMzEgLTEzMSBsMTMxIC0xMzFxMTUgLTE1IDE1IC0zNS41dC0xNSAtMzUuNWwtNzAgLTcwcS0xNSAtMTUgLTM1LjUgLTE1dC0zNS41IDE1bC0xMzEgMTMxbC0xMzEgLTEzMXEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtNzAgNzBxLTE1IDE1IC0xNSAzNS41dDE1IDM1LjVsMTMxIDEzMWwtMTMxIDEzMXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWw3MCA3MHExNSAxNSAzNS41IDE1dDM1LjUgLTE1bDEzMSAtMTMxbDEzMSAxMzFxMTUgMTUgMzUuNSAxNSB0MzUuNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NTsiIGQ9Ik0xMTAwIDEwMDB2LTMwMGgtMzUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xNTBoLTUwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAwek04NTAgNjAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNSBsLTIzMCAtMjMwcS0xNCAtMTQgLTM1IC0xNHQtMzUgMTRsLTIzMCAyMzBxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjVoMTUwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NjsiIGQ9Ik0xMTAwIDEwMDB2LTQwMGwtMTY1IDE2NXEtMTQgMTUgLTM1IDE1dC0zNSAtMTVsLTI2MyAtMjY1aC00MDJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNOTM1IDU2NWwyMzAgLTIyOXExNCAtMTUgMTAgLTI1LjV0LTI1IC0xMC41aC0xNTB2LTI1MHEwIC0yMCAtMTQuNSAtMzUgdC0zNS41IC0xNWgtMTAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1djI1MGgtMTUwcS0yMSAwIC0yNSAxMC41dDEwIDI1LjVsMjMwIDIyOXExNCAxNSAzNSAxNXQzNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NzsiIGQ9Ik01MCAxMTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtMTIwMHYxNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjAwIDgwMHYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1NTBoMTIwMHpNMTAwIDUwMHYtMjAwaDQwMHYyMDBoLTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTc4OyIgZD0iTTkzNSAxMTY1bDI0OCAtMjMwcTE0IC0xNCAxNCAtMzV0LTE0IC0zNWwtMjQ4IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC00MDB2MjAwaDQwMHYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEwek0yMDAgODAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHYtMjAwek00MDAgODAwaC0xMDB2MjAwaDEwMHYtMjAwek0xOCA0MzVsMjQ3IDIzMCBxMTQgMTQgMjQuNSAxMHQxMC41IC0yNXYtMTUwaDQwMHYtMjAwaC00MDB2LTE1MHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTI0NyAyMzBxLTE1IDE0IC0xNSAzNXQxNSAzNXpNOTAwIDMwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTAwMCA1MDBoNTFxMjAgMCAzNC41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzQuNSAtMTQuNWgtNTF2MjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzk7IiBkPSJNODYyIDEwNzNsMjc2IDExNnEyNSAxOCA0My41IDh0MTguNSAtNDF2LTExMDZxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2Mzk3cS00IDEgLTExIDV0LTI0IDE3LjV0LTMwIDI5dC0yNCA0MnQtMTEgNTYuNXYzNTlxMCAzMSAxOC41IDY1dDQzLjUgNTJ6TTU1MCAxMjAwcTIyIDAgMzQuNSAtMTIuNXQxNC41IC0yNC41bDEgLTEzdi00NTBxMCAtMjggLTEwLjUgLTU5LjUgdC0yNSAtNTZ0LTI5IC00NXQtMjUuNSAtMzEuNWwtMTAgLTExdi00NDdxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDQ3cS00IDQgLTExIDExLjV0LTI0IDMwLjV0LTMwIDQ2dC0yNCA1NXQtMTEgNjB2NDUwcTAgMiAwLjUgNS41dDQgMTJ0OC41IDE1dDE0LjUgMTJ0MjIuNSA1LjVxMjAgMCAzMi41IC0xMi41dDE0LjUgLTI0LjVsMyAtMTN2LTM1MGgxMDB2MzUwdjUuNXQyLjUgMTIgdDcgMTV0MTUgMTJ0MjUuNSA1LjVxMjMgMCAzNS41IC0xMi41dDEzLjUgLTI0LjVsMSAtMTN2LTM1MGgxMDB2MzUwcTAgMiAwLjUgNS41dDMgMTJ0NyAxNXQxNSAxMnQyNC41IDUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgwOyIgZD0iTTEyMDAgMTEwMHYtNTZxLTQgMCAtMTEgLTAuNXQtMjQgLTN0LTMwIC03LjV0LTI0IC0xNXQtMTEgLTI0di04ODhxMCAtMjIgMjUgLTM0LjV0NTAgLTEzLjVsMjUgLTJ2LTU2aC00MDB2NTZxNzUgMCA4Ny41IDYuNXQxMi41IDQzLjV2Mzk0aC01MDB2LTM5NHEwIC0zNyAxMi41IC00My41dDg3LjUgLTYuNXYtNTZoLTQwMHY1NnE0IDAgMTEgMC41dDI0IDN0MzAgNy41dDI0IDE1dDExIDI0djg4OHEwIDIyIC0yNSAzNC41dC01MCAxMy41IGwtMjUgMnY1Nmg0MDB2LTU2cS03NSAwIC04Ny41IC02LjV0LTEyLjUgLTQzLjV2LTM5NGg1MDB2Mzk0cTAgMzcgLTEyLjUgNDMuNXQtODcuNSA2LjV2NTZoNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODE7IiBkPSJNNjc1IDEwMDBoMzc1cTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTEwNWwtMjk1IC05OHY5OGwtMjAwIDIwMGgtNDAwbDEwMCAxMDBoMzc1ek0xMDAgOTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNTAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0zMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTEwMCA4MDB2LTIwMGgzMDB2MjAwIGgtMzAwek0xMTAwIDUzNWwtNDAwIC0xMzN2MTYzbDQwMCAxMzN2LTE2M3pNMTAwIDUwMHYtMjAwaDMwMHYyMDBoLTMwMHpNMTEwMCAzOTh2LTI0OHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzc1bC0xMDAgLTEwMGgtMzc1bC0xMDAgMTAwaDQwMGwyMDAgMjAwaDEwNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgyOyIgZD0iTTE3IDEwMDdsMTYyIDE2MnExNyAxNyA0MCAxNHQzNyAtMjJsMTM5IC0xOTRxMTQgLTIwIDExIC00NC41dC0yMCAtNDEuNWwtMTE5IC0xMThxMTAyIC0xNDIgMjI4IC0yNjh0MjY3IC0yMjdsMTE5IDExOHExNyAxNyA0Mi41IDE5dDQ0LjUgLTEybDE5MiAtMTM2cTE5IC0xNCAyMi41IC0zNy41dC0xMy41IC00MC41bC0xNjMgLTE2MnEtMyAtMSAtOS41IC0xdC0yOS41IDJ0LTQ3LjUgNnQtNjIuNSAxNC41dC03Ny41IDI2LjV0LTkwIDQyLjUgdC0xMDEuNSA2MHQtMTExIDgzdC0xMTkgMTA4LjVxLTc0IDc0IC0xMzMuNSAxNTAuNXQtOTQuNSAxMzguNXQtNjAgMTE5LjV0LTM0LjUgMTAwdC0xNSA3NC41dC00LjUgNDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MzsiIGQ9Ik02MDAgMTEwMHE5MiAwIDE3NSAtMTAuNXQxNDEuNSAtMjd0MTA4LjUgLTM2LjV0ODEuNSAtNDB0NTMuNSAtMzd0MzEgLTI3bDkgLTEwdi0yMDBxMCAtMjEgLTE0LjUgLTMzdC0zNC41IC05bC0yMDIgMzRxLTIwIDMgLTM0LjUgMjB0LTE0LjUgMzh2MTQ2cS0xNDEgMjQgLTMwMCAyNHQtMzAwIC0yNHYtMTQ2cTAgLTIxIC0xNC41IC0zOHQtMzQuNSAtMjBsLTIwMiAtMzRxLTIwIC0zIC0zNC41IDl0LTE0LjUgMzN2MjAwcTMgNCA5LjUgMTAuNSB0MzEgMjZ0NTQgMzcuNXQ4MC41IDM5LjV0MTA5IDM3LjV0MTQxIDI2LjV0MTc1IDEwLjV6TTYwMCA3OTVxNTYgMCA5NyAtOS41dDYwIC0yMy41dDMwIC0yOHQxMiAtMjRsMSAtMTB2LTUwbDM2NSAtMzAzcTE0IC0xNSAyNC41IC00MHQxMC41IC00NXYtMjEycTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMTJxMCAyMCAxMC41IDQ1dDI0LjUgNDBsMzY1IDMwM3Y1MCBxMCA0IDEgMTAuNXQxMiAyM3QzMCAyOXQ2MCAyMi41dDk3IDEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODQ7IiBkPSJNMTEwMCA3MDBsLTIwMCAtMjAwaC02MDBsLTIwMCAyMDB2NTAwaDIwMHYtMjAwaDIwMHYyMDBoMjAwdi0yMDBoMjAwdjIwMGgyMDB2LTUwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODU7IiBkPSJNNzAwIDExMDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtMTAwMGgzMDB2MTAwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMTEwMCA4MDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNzAwaDMwMHY3MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTQwMCAwaC0zMDB2NDAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTQwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4NjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDcwMHYtMzAwbC0xMDAgLTEwMGgtMjAwdjUwMGgyMDB6IE03MDAgNzAwdi0zMDBoMTAwdjMwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODc7IiBkPSJNMjAwIDExMDBoNzAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnYtNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OGgtNzAwcS0xMjQgMCAtMjEyIDg4dC04OCAyMTJ2NTAwcTAgMTI0IDg4IDIxMnQyMTIgODh6TTEwMCA5MDB2LTcwMGg5MDB2NzAwaC05MDB6TTUwMCAzMDBoLTEwMHYyMDBoLTEwMHYtMjAwaC0xMDB2NTAwaDEwMHYtMjAwaDEwMHYyMDBoMTAwdi01MDB6TTkwMCA3MDB2LTMwMGwtMTAwIC0xMDBoLTIwMHY1MDBoMjAweiBNNzAwIDcwMHYtMzAwaDEwMHYzMDBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTg4OyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek01MDAgNzAwaC0yMDB2LTMwMGgyMDB2LTEwMGgtMzAwdjUwMGgzMDB2LTEwMHpNOTAwIDcwMGgtMjAwdi0zMDBoMjAwdi0xMDBoLTMwMHY1MDBoMzAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4OTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDQwMGwtMzAwIDE1MGwzMDAgMTUwdi0zMDB6TTkwMCA1NTBsLTMwMCAtMTUwdjMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTkwOyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek05MDAgMzAwaC03MDB2NTAwaDcwMHYtNTAwek04MDAgNzAwaC0xMzBxLTM4IDAgLTY2LjUgLTQzdC0yOC41IC0xMDh0MjcgLTEwN3Q2OCAtNDJoMTMwdjMwMHpNMzAwIDcwMHYtMzAwIGgxMzBxNDEgMCA2OCA0MnQyNyAxMDd0LTI4LjUgMTA4dC02Ni41IDQzaC0xMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNMzAwIDcwMGgyMDB2LTQwMGgtMzAwdjUwMGgxMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMzAwIDYwMHYtMjAwaDEwMHYyMDBoLTEwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MzsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDUwMGwtMTk5IC0yMDBoLTEwMHY1MGwxOTkgMjAwdjE1MGgtMjAwdjEwMGgzMDB2LTMwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNNzAxIDMwMGgtMTAwIHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5NDsiIGQ9Ik02MDAgMTE5MXExMjAgMCAyMjkuNSAtNDd0MTg4LjUgLTEyNnQxMjYgLTE4OC41dDQ3IC0yMjkuNXQtNDcgLTIyOS41dC0xMjYgLTE4OC41dC0xODguNSAtMTI2dC0yMjkuNSAtNDd0LTIyOS41IDQ3dC0xODguNSAxMjZ0LTEyNiAxODguNXQtNDcgMjI5LjV0NDcgMjI5LjV0MTI2IDE4OC41dDE4OC41IDEyNnQyMjkuNSA0N3pNNjAwIDEwMjFxLTExNCAwIC0yMTEgLTU2LjV0LTE1My41IC0xNTMuNXQtNTYuNSAtMjExdDU2LjUgLTIxMSB0MTUzLjUgLTE1My41dDIxMSAtNTYuNXQyMTEgNTYuNXQxNTMuNSAxNTMuNXQ1Ni41IDIxMXQtNTYuNSAyMTF0LTE1My41IDE1My41dC0yMTEgNTYuNXpNODAwIDcwMGgtMzAwdi0yMDBoMzAwdi0xMDBoLTMwMGwtMTAwIDEwMHYyMDBsMTAwIDEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk1OyIgZD0iTTYwMCAxMTkxcTEyMCAwIDIyOS41IC00N3QxODguNSAtMTI2dDEyNiAtMTg4LjV0NDcgLTIyOS41dC00NyAtMjI5LjV0LTEyNiAtMTg4LjV0LTE4OC41IC0xMjZ0LTIyOS41IC00N3QtMjI5LjUgNDd0LTE4OC41IDEyNnQtMTI2IDE4OC41dC00NyAyMjkuNXQ0NyAyMjkuNXQxMjYgMTg4LjV0MTg4LjUgMTI2dDIyOS41IDQ3ek02MDAgMTAyMXEtMTE0IDAgLTIxMSAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTF0NTYuNSAtMjExIHQxNTMuNSAtMTUzLjV0MjExIC01Ni41dDIxMSA1Ni41dDE1My41IDE1My41dDU2LjUgMjExdC01Ni41IDIxMXQtMTUzLjUgMTUzLjV0LTIxMSA1Ni41ek04MDAgNzAwdi0xMDBsLTUwIC01MGwxMDAgLTEwMHYtNTBoLTEwMGwtMTAwIDEwMGgtMTUwdi0xMDBoLTEwMHY0MDBoMzAwek01MDAgNzAwdi0xMDBoMjAwdjEwMGgtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTc7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA3dC04NSAtMjA3dC0yMDUgLTg2LjVoLTEyOHYyNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTMwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMjUwaC0yMjJxLTgwIDAgLTEzNiA1Ny41dC01NiAxMzYuNXEwIDY5IDQzIDEyMi41dDEwOCA2Ny41cS0yIDE5IC0yIDM3cTAgMTAwIDQ5IDE4NSB0MTM0IDEzNHQxODUgNDl6TTUyNSA1MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMjc1aDEzN3EyMSAwIDI2IC0xMS41dC04IC0yNy41bC0yMjMgLTI0NHEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC0yMjMgMjQ0cS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMTM3djI3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTg7IiBkPSJNNTAyIDEwODlxMTEwIDAgMjAxIC01OS41dDEzNSAtMTU2LjVxNDMgMTUgODkgMTVxMTIxIDAgMjA2IC04Ni41dDg2IC0yMDYuNXEwIC05OSAtNjAgLTE4MXQtMTUwIC0xMTBsLTM3OCAzNjBxLTEzIDE2IC0zMS41IDE2dC0zMS41IC0xNmwtMzgxIC0zNjVoLTlxLTc5IDAgLTEzNS41IDU3LjV0LTU2LjUgMTM2LjVxMCA2OSA0MyAxMjIuNXQxMDggNjcuNXEtMiAxOSAtMiAzOHEwIDEwMCA0OSAxODQuNXQxMzMuNSAxMzR0MTg0LjUgNDkuNXogTTYzMiA0NjdsMjIzIC0yMjhxMTMgLTE2IDggLTI3LjV0LTI2IC0xMS41aC0xMzd2LTI3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djI3NWgtMTM3cS0yMSAwIC0yNiAxMS41dDggMjcuNXExOTkgMjA0IDIyMyAyMjhxMTkgMTkgMzEuNSAxOXQzMi41IC0xOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk5OyIgZD0iTTcwMCAxMDB2MTAwaDQwMGwtMjcwIDMwMGgxNzBsLTI3MCAzMDBoMTcwbC0zMDAgMzMzbC0zMDAgLTMzM2gxNzBsLTI3MCAtMzAwaDE3MGwtMjcwIC0zMDBoNDAwdi0xMDBoLTUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di01MGg0MDB2NTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDA7IiBkPSJNNjAwIDExNzlxOTQgMCAxNjcuNSAtNTYuNXQ5OS41IC0xNDUuNXE4OSAtNiAxNTAuNSAtNzEuNXQ2MS41IC0xNTUuNXEwIC02MSAtMjkuNSAtMTEyLjV0LTc5LjUgLTgyLjVxOSAtMjkgOSAtNTVxMCAtNzQgLTUyLjUgLTEyNi41dC0xMjYuNSAtNTIuNXEtNTUgMCAtMTAwIDMwdi0yNTFxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaC0zMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41djI1MXEtNDUgLTMwIC0xMDAgLTMwIHEtNzQgMCAtMTI2LjUgNTIuNXQtNTIuNSAxMjYuNXEwIDE4IDQgMzhxLTQ3IDIxIC03NS41IDY1dC0yOC41IDk3cTAgNzQgNTIuNSAxMjYuNXQxMjYuNSA1Mi41cTUgMCAyMyAtMnEwIDIgLTEgMTB0LTEgMTNxMCAxMTYgODEuNSAxOTcuNXQxOTcuNSA4MS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDE7IiBkPSJNMTAxMCAxMDEwcTExMSAtMTExIDE1MC41IC0yNjAuNXQwIC0yOTl0LTE1MC41IC0yNjAuNXEtODMgLTgzIC0xOTEuNSAtMTI2LjV0LTIxOC41IC00My41dC0yMTguNSA0My41dC0xOTEuNSAxMjYuNXEtMTExIDExMSAtMTUwLjUgMjYwLjV0MCAyOTl0MTUwLjUgMjYwLjVxODMgODMgMTkxLjUgMTI2LjV0MjE4LjUgNDMuNXQyMTguNSAtNDMuNXQxOTEuNSAtMTI2LjV6TTQ3NiAxMDY1cS00IDAgLTggLTFxLTEyMSAtMzQgLTIwOS41IC0xMjIuNSB0LTEyMi41IC0yMDkuNXEtNCAtMTIgMi41IC0yM3QxOC41IC0xNGwzNiAtOXEzIC0xIDcgLTFxMjMgMCAyOSAyMnEyNyA5NiA5OCAxNjZxNzAgNzEgMTY2IDk4cTExIDMgMTcuNSAxMy41dDMuNSAyMi41bC05IDM1cS0zIDEzIC0xNCAxOXEtNyA0IC0xNSA0ek01MTIgOTIwcS00IDAgLTkgLTJxLTgwIC0yNCAtMTM4LjUgLTgyLjV0LTgyLjUgLTEzOC41cS00IC0xMyAyIC0yNHQxOSAtMTRsMzQgLTlxNCAtMSA4IC0xcTIyIDAgMjggMjEgcTE4IDU4IDU4LjUgOTguNXQ5Ny41IDU4LjVxMTIgMyAxOCAxMy41dDMgMjEuNWwtOSAzNXEtMyAxMiAtMTQgMTlxLTcgNCAtMTUgNHpNNzE5LjUgNzE5LjVxLTQ5LjUgNDkuNSAtMTE5LjUgNDkuNXQtMTE5LjUgLTQ5LjV0LTQ5LjUgLTExOS41dDQ5LjUgLTExOS41dDExOS41IC00OS41dDExOS41IDQ5LjV0NDkuNSAxMTkuNXQtNDkuNSAxMTkuNXpNODU1IDU1MXEtMjIgMCAtMjggLTIxcS0xOCAtNTggLTU4LjUgLTk4LjV0LTk4LjUgLTU3LjUgcS0xMSAtNCAtMTcgLTE0LjV0LTMgLTIxLjVsOSAtMzVxMyAtMTIgMTQgLTE5cTcgLTQgMTUgLTRxNCAwIDkgMnE4MCAyNCAxMzguNSA4Mi41dDgyLjUgMTM4LjVxNCAxMyAtMi41IDI0dC0xOC41IDE0bC0zNCA5cS00IDEgLTggMXpNMTAwMCA1MTVxLTIzIDAgLTI5IC0yMnEtMjcgLTk2IC05OCAtMTY2cS03MCAtNzEgLTE2NiAtOThxLTExIC0zIC0xNy41IC0xMy41dC0zLjUgLTIyLjVsOSAtMzVxMyAtMTMgMTQgLTE5cTcgLTQgMTUgLTQgcTQgMCA4IDFxMTIxIDM0IDIwOS41IDEyMi41dDEyMi41IDIwOS41cTQgMTIgLTIuNSAyM3QtMTguNSAxNGwtMzYgOXEtMyAxIC03IDF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMjsiIGQ9Ik03MDAgODAwaDMwMHYtMzgwaC0xODB2MjAwaC0zNDB2LTIwMGgtMzgwdjc1NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDU3NXYtNDAwek0xMDAwIDkwMGgtMjAwdjIwMHpNNzAwIDMwMGgxNjJsLTIxMiAtMjEybC0yMTIgMjEyaDE2MnYyMDBoMTAwdi0yMDB6TTUyMCAwaC0zOTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzOTV6TTEwMDAgMjIwdi0xOTVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xOTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMzsiIGQ9Ik03MDAgODAwaDMwMHYtNTIwbC0zNTAgMzUwbC01NTAgLTU1MHYxMDk1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNTc1di00MDB6TTEwMDAgOTAwaC0yMDB2MjAwek04NjIgMjAwaC0xNjJ2LTIwMGgtMTAwdjIwMGgtMTYybDIxMiAyMTJ6TTQ4MCAwaC0zNTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NWgzODB2LTgwek0xMDAwIDgwdi01NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1NXY4MGgxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwNDsiIGQ9Ik0xMTYyIDgwMGgtMTYydi0yMDBoMTAwbDEwMCAtMTAwaC0zMDB2MzAwaC0xNjJsMjEyIDIxMnpNMjAwIDgwMGgyMDBxMjcgMCA0MCAtMnQyOS41IC0xMC41dDIzLjUgLTMwdDcgLTU3LjVoMzAwdi0xMDBoLTYwMGwtMjAwIC0zNTB2NDUwaDEwMHEwIDM2IDcgNTcuNXQyMy41IDMwdDI5LjUgMTAuNXQ0MCAyek04MDAgNDAwaDI0MGwtMjQwIC00MDBoLTgwMGwzMDAgNTAwaDUwMHYtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDU7IiBkPSJNNjUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMDAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTgwMCBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTYwMHEtMSAwIC0yMCA0bDI0NiAyNDZsLTMyNiAzMjZ2MzI0cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXYtMTUwcTAgLTYyIDQ0IC0xMDZ0MTA2IC00NGgzMDBxNjIgMCAxMDYgNDR0NDQgMTA2ek00MTIgMjUwbC0yMTIgLTIxMnYxNjJoLTIwMHYxMDBoMjAwdjE2MnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjA2OyIgZD0iTTQ1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDUwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTUwMCBoLTIwMHYtMzAwaDIwMHEwIC0zNiAtNyAtNTcuNXQtMjMuNSAtMzB0LTI5LjUgLTEwLjV0LTQwIC0yaC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djgwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV2LTE1MHEwIC02MiA0NCAtMTA2dDEwNiAtNDRoMzAwcTYyIDAgMTA2IDQ0dDQ0IDEwNnpNMTIxMiAyNTBsLTIxMiAtMjEydjE2MmgtMjAwdjEwMGgyMDB2MTYyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDk7IiBkPSJNNjU4IDExOTdsNjM3IC0xMTA0cTIzIC0zOCA3IC02NS41dC02MCAtMjcuNWgtMTI3NnEtNDQgMCAtNjAgMjcuNXQ3IDY1LjVsNjM3IDExMDRxMjIgMzkgNTQgMzl0NTQgLTM5ek03MDQgODAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNXQzNy41IC0xNC41aDU0cTIwIDAgMzcuNSAxNC41dDIxLjUgMzQuNWw1OCAzMDJxNCAyMCAtOCAzNC41dC0zMiAxNC41ek01MDAgMzAwdi0xMDBoMjAwIHYxMDBoLTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjEwOyIgZD0iTTQyNSAxMTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgODAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41IHQxNy41IDcuNXpNODI1IDgwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMjUgNTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNODI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNSB2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTgyNSAyMDBoMjUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxMTsiIGQ9Ik03MDAgMTIwMGgxMDB2LTIwMGgtMTAwdi0xMDBoMzUwcTYyIDAgODYuNSAtMzkuNXQtMy41IC05NC41bC02NiAtMTMycS00MSAtODMgLTgxIC0xMzRoLTc3MnEtNDAgNTEgLTgxIDEzNGwtNjYgMTMycS0yOCA1NSAtMy41IDk0LjV0ODYuNSAzOS41aDM1MHYxMDBoLTEwMHYyMDBoMTAwdjEwMGgyMDB2LTEwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwIGgtOTUwbDEzOCAxMDBoLTEzcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTI7IiBkPSJNNjAwIDEzMDBxNDAgMCA2OC41IC0yOS41dDI4LjUgLTcwLjVoLTE5NHEwIDQxIDI4LjUgNzAuNXQ2OC41IDI5LjV6TTQ0MyAxMTAwaDMxNHExOCAtMzcgMTggLTc1cTAgLTggLTMgLTI1aDMyOHE0MSAwIDQ0LjUgLTE2LjV0LTMwLjUgLTM4LjVsLTE3NSAtMTQ1aC02NzhsLTE3OCAxNDVxLTM0IDIyIC0yOSAzOC41dDQ2IDE2LjVoMzI4cS0zIDE3IC0zIDI1cTAgMzggMTggNzV6TTI1MCA3MDBoNzAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTUwdi0yMDBsMjc1IC0yMDBoLTk1MGwyNzUgMjAwdjIwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTM7IiBkPSJNNjAwIDExODFxNzUgMCAxMjggLTUzdDUzIC0xMjh0LTUzIC0xMjh0LTEyOCAtNTN0LTEyOCA1M3QtNTMgMTI4dDUzIDEyOHQxMjggNTN6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTMgbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNDsiIGQ9Ik02MDAgMTMwMHE0NyAwIDkyLjUgLTUzLjV0NzEgLTEyM3QyNS41IC0xMjMuNXEwIC03OCAtNTUuNSAtMTMzLjV0LTEzMy41IC01NS41dC0xMzMuNSA1NS41dC01NS41IDEzMy41cTAgNjIgMzQgMTQzbDE0NCAtMTQzbDExMSAxMTFsLTE2MyAxNjNxMzQgMjYgNjMgMjZ6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1IHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEzbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNTsiIGQ9Ik02MDAgMTIwMGwzMDAgLTE2MXYtMTM5aC0zMDBxMCAtNTcgMTguNSAtMTA4dDUwIC05MS41dDYzIC03MnQ3MCAtNjcuNXQ1Ny41IC02MWgtNTMwcS02MCA4MyAtOTAuNSAxNzcuNXQtMzAuNSAxNzguNXQzMyAxNjQuNXQ4Ny41IDEzOS41dDEyNiA5Ni41dDE0NS41IDQxLjV2LTk4ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTNsMTM4IC0xMDBoLTk1MGwxMzcgMTAwIGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNjsiIGQ9Ik02MDAgMTMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNzhxNDYgLTI2IDczIC03MnQyNyAtMTAwdi01MGgtNDAwdjUwcTAgNTQgMjcgMTAwdDczIDcydjc4cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNDAwIDgwMGg0MDBxNTQgMCAxMDAgLTI3dDcyIC03M2gtMTcydi0xMDBoMjAwdi0xMDBoLTIwMHYtMTAwaDIwMHYtMTAwaC0yMDB2LTEwMGgyMDBxMCAtODMgLTU4LjUgLTE0MS41dC0xNDEuNSAtNTguNWgtNDAwIHEtODMgMCAtMTQxLjUgNTguNXQtNTguNSAxNDEuNXY0MDBxMCA4MyA1OC41IDE0MS41dDE0MS41IDU4LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxODsiIGQ9Ik0xNTAgMTEwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjUgNDAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjgzbDIyNCAtMjI0cTEzIC0xMyAxMyAtMzEuNXQtMTMgLTMyIHQtMzEuNSAtMTMuNXQtMzEuNSAxM2wtODggODhoLTUyNGwtODcgLTg4cS0xMyAtMTMgLTMyIC0xM3QtMzIgMTMuNXQtMTMgMzJ0MTMgMzEuNWwyMjQgMjI0aC0yODlxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01NDEgMzAwbC0xMDAgLTEwMGgzMjRsLTEwMCAxMDBoLTEyNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjE5OyIgZD0iTTIwMCAxMTAwaDgwMHE4MyAwIDE0MS41IC01OC41dDU4LjUgLTE0MS41di0yMDBoLTEwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNWgtMjUwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41aC0xMDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjVoLTI1MHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNWgtMTAwdjIwMHEwIDgzIDU4LjUgMTQxLjV0MTQxLjUgNTguNXpNMTAwIDYwMGgxMDAwcTQxIDAgNzAuNSAtMjkuNSB0MjkuNSAtNzAuNXYtMzAwaC0xMjAwdjMwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTMwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHpNMTEwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIxOyIgZD0iTTQ4MCAxMTY1bDY4MiAtNjgzcTMxIC0zMSAzMSAtNzUuNXQtMzEgLTc1LjVsLTEzMSAtMTMxaC00ODFsLTUxNyA1MThxLTMyIDMxIC0zMiA3NS41dDMyIDc1LjVsMjk1IDI5NnEzMSAzMSA3NS41IDMxdDc2LjUgLTMxek0xMDggNzk0bDM0MiAtMzQybDMwMyAzMDRsLTM0MSAzNDF6TTI1MCAxMDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtOTAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIzOyIgZD0iTTEwNTcgNjQ3bC0xODkgNTA2cS04IDE5IC0yNy41IDMzdC00MC41IDE0aC00MDBxLTIxIDAgLTQwLjUgLTE0dC0yNy41IC0zM2wtMTg5IC01MDZxLTggLTE5IDEuNSAtMzN0MzAuNSAtMTRoNjI1di0xNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41dDM1LjUgMTQuNXQxNC41IDM1LjV2MTUwaDEyNXEyMSAwIDMwLjUgMTR0MS41IDMzek04OTcgMGgtNTk1djUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ4djMwMGgyMDB2LTMwMGg0N3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjQ7IiBkPSJNOTAwIDgwMGgzMDB2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTM3NXY1OTFsLTMwMCAzMDB2ODRxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNMTIwMCA5MDBoLTIwMHYyMDB6TTQwMCA2MDBoMzAwdi01NzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC02NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNNzAwIDcwMGgtMjAwdjIwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIyNTsiIGQ9Ik00ODQgMTA5NWgxOTVxNzUgMCAxNDYgLTMyLjV0MTI0IC04NnQ4OS41IC0xMjIuNXQ0OC41IC0xNDJxMTggLTE0IDM1IC0yMHEzMSAtMTAgNjQuNSA2LjV0NDMuNSA0OC41cTEwIDM0IC0xNSA3MXEtMTkgMjcgLTkgNDNxNSA4IDEyLjUgMTF0MTkgLTF0MjMuNSAtMTZxNDEgLTQ0IDM5IC0xMDVxLTMgLTYzIC00NiAtMTA2LjV0LTEwNCAtNDMuNWgtNjJxLTcgLTU1IC0zNSAtMTE3dC01NiAtMTAwbC0zOSAtMjM0cS0zIC0yMCAtMjAgLTM0LjUgdC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMTIgNzBxLTQ5IC0xNCAtOTEgLTE0aC0xOTVxLTI0IDAgLTY1IDhsLTExIC02NHEtMyAtMjAgLTIwIC0zNC41dC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMjYgMTU3cS04NCA3NCAtMTI4IDE3NWwtMTU5IDUzcS0xOSA3IC0zMyAyNnQtMTQgNDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEyNHExMSA4NyA1NiAxNjZsLTExMSA5NSBxLTE2IDE0IC0xMi41IDIzLjV0MjQuNSA5LjVoMjAzcTExNiAxMDEgMjUwIDEwMXpNNjc1IDEwMDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMjUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjY7IiBkPSJNNjQxIDkwMGw0MjMgMjQ3cTE5IDggNDIgMi41dDM3IC0yMS41bDMyIC0zOHExNCAtMTUgMTIuNSAtMzZ0LTE3LjUgLTM0bC0xMzkgLTEyMGgtMzkwek01MCAxMTAwaDEwNnE2NyAwIDEwMyAtMTd0NjYgLTcxbDEwMiAtMjEyaDgyM3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBxMCAtMjEgLTE0IC00MHQtMzMgLTI2bC03MzcgLTEzMnEtMjMgLTQgLTQwIDZ0LTI2IDI1cS00MiA2NyAtMTAwIDY3aC0zMDBxLTYyIDAgLTEwNiA0NCB0LTQ0IDEwNnYyMDBxMCA2MiA0NCAxMDZ0MTA2IDQ0ek0xNzMgOTI4aC04MHEtMTkgMCAtMjggLTE0dC05IC0zNXYtNTZxMCAtNTEgNDIgLTUxaDEzNHExNiAwIDIxLjUgOHQ1LjUgMjRxMCAxMSAtMTYgNDV0LTI3IDUxcS0xOCAyOCAtNDMgMjh6TTU1MCA3MjdxLTMyIDAgLTU0LjUgLTIyLjV0LTIyLjUgLTU0LjV0MjIuNSAtNTQuNXQ1NC41IC0yMi41dDU0LjUgMjIuNXQyMi41IDU0LjV0LTIyLjUgNTQuNXQtNTQuNSAyMi41ek0xMzAgMzg5IGwxNTIgMTMwcTE4IDE5IDM0IDI0dDMxIC0zLjV0MjQuNSAtMTcuNXQyNS41IC0yOHEyOCAtMzUgNTAuNSAtNTF0NDguNSAtMTNsNjMgNWw0OCAtMTc5cTEzIC02MSAtMy41IC05Ny41dC02Ny41IC03OS41bC04MCAtNjlxLTQ3IC00MCAtMTA5IC0zNS41dC0xMDMgNTEuNWwtMTMwIDE1MXEtNDAgNDcgLTM1LjUgMTA5LjV0NTEuNSAxMDIuNXpNMzgwIDM3N2wtMTAyIC04OHEtMzEgLTI3IDIgLTY1bDM3IC00M3ExMyAtMTUgMjcuNSAtMTkuNSB0MzEuNSA2LjVsNjEgNTNxMTkgMTYgMTQgNDlxLTIgMjAgLTEyIDU2dC0xNyA0NXEtMTEgMTIgLTE5IDE0dC0yMyAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjI3OyIgZD0iTTYyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwOXE3OSAtMzMgMTMxIC04Ny41dDUzIC0xMjguNXExIC00NiAtMTUgLTg0LjV0LTM5IC02MXQtNDYgLTM4dC0zOSAtMjEuNWwtMTcgLTZxNiAwIDE1IC0xLjV0MzUgLTl0NTAgLTE3LjV0NTMgLTMwdDUwIC00NXQzNS41IC02NHQxNC41IC04NHEwIC01OSAtMTEuNSAtMTA1LjV0LTI4LjUgLTc2LjV0LTQ0IC01MXQtNDkuNSAtMzEuNXQtNTQuNSAtMTZ0LTQ5LjUgLTYuNSB0LTQzLjUgLTF2LTc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzVoLTEwMHYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtMTc1cS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNzV2NjAwaC03NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNzV2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWgxMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDAwIDkwMHYtMjAwaDI2M3EyOCAwIDQ4LjUgMTAuNXQzMCAyNXQxNSAyOXQ1LjUgMjUuNWwxIDEwcTAgNCAtMC41IDExdC02IDI0dC0xNSAzMHQtMzAgMjR0LTQ4LjUgMTFoLTI2M3pNNDAwIDUwMHYtMjAwaDM2M3EyOCAwIDQ4LjUgMTAuNSB0MzAgMjV0MTUgMjl0NS41IDI1LjVsMSAxMHEwIDQgLTAuNSAxMXQtNiAyNHQtMTUgMzB0LTMwIDI0dC00OC41IDExaC0zNjN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMDsiIGQ9Ik0yMTIgMTE5OGg3ODBxODYgMCAxNDcgLTYxdDYxIC0xNDd2LTQxNnEwIC01MSAtMTggLTE0Mi41dC0zNiAtMTU3LjVsLTE4IC02NnEtMjkgLTg3IC05My41IC0xNDYuNXQtMTQ2LjUgLTU5LjVoLTU3MnEtODIgMCAtMTQ3IDU5dC05MyAxNDdxLTggMjggLTIwIDczdC0zMiAxNDMuNXQtMjAgMTQ5LjV2NDE2cTAgODYgNjEgMTQ3dDE0NyA2MXpNNjAwIDEwNDVxLTcwIDAgLTEzMi41IC0xMS41dC0xMDUuNSAtMzAuNXQtNzguNSAtNDEuNSB0LTU3IC00NXQtMzYgLTQxdC0yMC41IC0zMC41bC02IC0xMmwxNTYgLTI0M2g1NjBsMTU2IDI0M3EtMiA1IC02IDEyLjV0LTIwIDI5LjV0LTM2LjUgNDJ0LTU3IDQ0LjV0LTc5IDQydC0xMDUgMjkuNXQtMTMyLjUgMTJ6TTc2MiA3MDNoLTE1N2wxOTUgMjYxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzE7IiBkPSJNNDc1IDEzMDBoMTUwcTEwMyAwIDE4OSAtODZ0ODYgLTE4OXYtNTAwcTAgLTQxIC00MiAtODN0LTgzIC00MmgtNDUwcS00MSAwIC04MyA0MnQtNDIgODN2NTAwcTAgMTAzIDg2IDE4OXQxODkgODZ6TTcwMCAzMDB2LTIyNXEwIC0yMSAtMjcgLTQ4dC00OCAtMjdoLTE1MHEtMjEgMCAtNDggMjd0LTI3IDQ4djIyNWgzMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMjsiIGQ9Ik00NzUgMTMwMGg5NnEwIC0xNTAgODkuNSAtMjM5LjV0MjM5LjUgLTg5LjV2LTQ0NnEwIC00MSAtNDIgLTgzdC04MyAtNDJoLTQ1MHEtNDEgMCAtODMgNDJ0LTQyIDgzdjUwMHEwIDEwMyA4NiAxODl0MTg5IDg2ek03MDAgMzAwdi0yMjVxMCAtMjEgLTI3IC00OHQtNDggLTI3aC0xNTBxLTIxIDAgLTQ4IDI3dC0yNyA0OHYyMjVoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzM7IiBkPSJNMTI5NCA3NjdsLTYzOCAtMjgzbC0zNzggMTcwbC03OCAtNjB2LTIyNGwxMDAgLTE1MHYtMTk5bC0xNTAgMTQ4bC0xNTAgLTE0OXYyMDBsMTAwIDE1MHYyNTBxMCA0IC0wLjUgMTAuNXQwIDkuNXQxIDh0MyA4dDYuNSA2bDQ3IDQwbC0xNDcgNjVsNjQyIDI4M3pNMTAwMCAzODBsLTM1MCAtMTY2bC0zNTAgMTY2djE0N2wzNTAgLTE2NWwzNTAgMTY1di0xNDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzNDsiIGQ9Ik0yNTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek02NTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek0xMDUwIDgwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnQtNDQgLTEwNnQtMTA2IC00NHQtMTA2IDQ0dC00NCAxMDZ0NDQgMTA2dDEwNiA0NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjM1OyIgZD0iTTU1MCAxMTAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgNzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgMzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzY7IiBkPSJNMTI1IDExMDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEyNSA3MDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjUgdDE3LjUgNy41ek0xMjUgMzAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTk1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzc7IiBkPSJNMzUwIDEyMDBoNTAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTUwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNTAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY1MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek05MDAgMTAwMGgtNjAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDYwMHE0MSAwIDcwLjUgMjkuNSB0MjkuNSA3MC41djYwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMzUwIDkwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek00MDAgODAwdi0yMDBoNDAwdjIwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzg7IiBkPSJNMTUwIDExMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNSB0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MjAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV0MTQuNSAzNS41dDM1LjUgMTQuNWg1MHYyMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41aDUwdjIwMGgtNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzOTsiIGQ9Ik02NTAgMTE4N3E4NyAtNjcgMTE4LjUgLTE1NnQwIC0xNzh0LTExOC41IC0xNTVxLTg3IDY2IC0xMTguNSAxNTV0MCAxNzh0MTE4LjUgMTU2ek0zMDAgODAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAwIDgwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhxMCAxMjQgODggMjEydDIxMiA4OHpNMzAwIDUwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnogTTEwMDAgNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek03MDAgMTk5di0xNDRxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djE0MnE0MCAtNCA0MyAtNHExNyAwIDU3IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0MDsiIGQ9Ik03NDUgODc4bDY5IDE5cTI1IDYgNDUgLTEybDI5OCAtMjk1cTExIC0xMSAxNSAtMjYuNXQtMiAtMzAuNXEtNSAtMTQgLTE4IC0yMy41dC0yOCAtOS41aC04cTEgMCAxIC0xM3EwIC0yOSAtMiAtNTZ0LTguNSAtNjJ0LTIwIC02M3QtMzMgLTUzdC01MSAtMzl0LTcyLjUgLTE0aC0xNDZxLTE4NCAwIC0xODQgMjg4cTAgMjQgMTAgNDdxLTIwIDQgLTYyIDR0LTYzIC00cTExIC0yNCAxMSAtNDdxMCAtMjg4IC0xODQgLTI4OGgtMTQyIHEtNDggMCAtODQuNSAyMXQtNTYgNTF0LTMyIDcxLjV0LTE2IDc1dC0zLjUgNjguNXEwIDEzIDIgMTNoLTdxLTE1IDAgLTI3LjUgOS41dC0xOC41IDIzLjVxLTYgMTUgLTIgMzAuNXQxNSAyNS41bDI5OCAyOTZxMjAgMTggNDYgMTFsNzYgLTE5cTIwIC01IDMwLjUgLTIyLjV0NS41IC0zNy41dC0yMi41IC0zMXQtMzcuNSAtNWwtNTEgMTJsLTE4MiAtMTkzaDg5MWwtMTgyIDE5M2wtNDQgLTEycS0yMCAtNSAtMzcuNSA2dC0yMi41IDMxdDYgMzcuNSB0MzEgMjIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQxOyIgZD0iTTEyMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTUwMCA0NTBoLTI1cTAgMTUgLTQgMjQuNXQtOSAxNC41dC0xNyA3LjV0LTIwIDN0LTI1IDAuNWgtMTAwdi00MjVxMCAtMTEgMTIuNSAtMTcuNXQyNS41IC03LjVoMTJ2LTUwaC0yMDB2NTBxNTAgMCA1MCAyNXY0MjVoLTEwMHEtMTcgMCAtMjUgLTAuNXQtMjAgLTN0LTE3IC03LjV0LTkgLTE0LjV0LTQgLTI0LjVoLTI1djE1MGg1MDB2LTE1MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQyOyIgZD0iTTEwMDAgMzAwdjUwcS0yNSAwIC01NSAzMnEtMTQgMTQgLTI1IDMxdC0xNiAyN2wtNCAxMWwtMjg5IDc0N2gtNjlsLTMwMCAtNzU0cS0xOCAtMzUgLTM5IC01NnEtOSAtOSAtMjQuNSAtMTguNXQtMjYuNSAtMTQuNWwtMTEgLTV2LTUwaDI3M3Y1MHEtNDkgMCAtNzguNSAyMS41dC0xMS41IDY3LjVsNjkgMTc2aDI5M2w2MSAtMTY2cTEzIC0zNCAtMy41IC02Ni41dC01NS41IC0zMi41di01MGgzMTJ6TTQxMiA2OTFsMTM0IDM0MmwxMjEgLTM0MiBoLTI1NXpNMTEwMCAxNTB2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDM7IiBkPSJNNTAgMTIwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjExIDExMThoLTcwcS0xMyAwIC0xOCAtMTJsLTI5OSAtNzUzcS0xNyAtMzIgLTM1IC01MXEtMTggLTE4IC01NiAtMzRxLTEyIC01IC0xMiAtMTh2LTUwcTAgLTggNS41IC0xNHQxNC41IC02IGgyNzNxOCAwIDE0IDZ0NiAxNHY1MHEwIDggLTYgMTR0LTE0IDZxLTU1IDAgLTcxIDIzcS0xMCAxNCAwIDM5bDYzIDE2M2gyNjZsNTcgLTE1M3ExMSAtMzEgLTYgLTU1cS0xMiAtMTcgLTM2IC0xN3EtOCAwIC0xNCAtNnQtNiAtMTR2LTUwcTAgLTggNiAtMTR0MTQgLTZoMzEzcTggMCAxNCA2dDYgMTR2NTBxMCA3IC01LjUgMTN0LTEzLjUgN3EtMTcgMCAtNDIgMjVxLTI1IDI3IC00MCA2M2gtMWwtMjg4IDc0OHEtNSAxMiAtMTkgMTJ6TTYzOSA2MTEgaC0xOTdsMTAzIDI2NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ0OyIgZD0iTTEyMDAgMTEwMGgtMTIwMHYxMDBoMTIwMHYtMTAwek01MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtOTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djkwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDAgcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgOTAwdi0zMDBoMzAwdjMwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDU7IiBkPSJNNTAgMTIwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTkwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY5MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgNzAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgNjAwdi0zMDBoMzAwdjMwMGgtMzAwek0xMjAwIDBoLTEyMDB2MTAwaDEyMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ2OyIgZD0iTTUwIDEwMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMTAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoMTAwdi0xMDBoLTEwMHYtMTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djE1MGgtMTAwdi0zNTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA3MDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0NzsiIGQ9Ik0xMDAgMGgtMTAwdjEyMDBoMTAwdi0xMjAwek0yNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMDAgMTAwMHYtMzAwaDMwMHYzMDBoLTMwMHpNMjUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ4OyIgZD0iTTYwMCAxMTAwaDE1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTEwMGg0NTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDM1MHYxMDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41IHQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTUwdjEwMGgxMDB2LTEwMHpNNDAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0OTsiIGQ9Ik0xMjAwIDBoLTEwMHYxMjAwaDEwMHYtMTIwMHpNNTUwIDExMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUwOyIgZD0iTTg2NSA1NjVsLTQ5NCAtNDk0cS0yMyAtMjMgLTQxIC0yM3EtMTQgMCAtMjIgMTMuNXQtOCAzOC41djEwMDBxMCAyNSA4IDM4LjV0MjIgMTMuNXExOCAwIDQxIC0yM2w0OTQgLTQ5NHExNCAtMTQgMTQgLTM1dC0xNCAtMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI1MTsiIGQ9Ik0zMzUgNjM1bDQ5NCA0OTRxMjkgMjkgNTAgMjAuNXQyMSAtNDkuNXYtMTAwMHEwIC00MSAtMjEgLTQ5LjV0LTUwIDIwLjVsLTQ5NCA0OTRxLTE0IDE0IC0xNCAzNXQxNCAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUyOyIgZD0iTTEwMCA5MDBoMTAwMHE0MSAwIDQ5LjUgLTIxdC0yMC41IC01MGwtNDk0IC00OTRxLTE0IC0xNCAtMzUgLTE0dC0zNSAxNGwtNDk0IDQ5NHEtMjkgMjkgLTIwLjUgNTB0NDkuNSAyMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUzOyIgZD0iTTYzNSA4NjVsNDk0IC00OTRxMjkgLTI5IDIwLjUgLTUwdC00OS41IC0yMWgtMTAwMHEtNDEgMCAtNDkuNSAyMXQyMC41IDUwbDQ5NCA0OTRxMTQgMTQgMzUgMTR0MzUgLTE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTQ7IiBkPSJNNzAwIDc0MXYtMTgybC02OTIgLTMyM3YyMjFsNDEzIDE5M2wtNDEzIDE5M3YyMjF6TTEyMDAgMGgtODAwdjIwMGg4MDB2LTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU1OyIgZD0iTTEyMDAgOTAwaC0yMDB2LTEwMGgyMDB2LTEwMGgtMzAwdjMwMGgyMDB2MTAwaC0yMDB2MTAwaDMwMHYtMzAwek0wIDcwMGg1MHEwIDIxIDQgMzd0OS41IDI2LjV0MTggMTcuNXQyMiAxMXQyOC41IDUuNXQzMSAydDM3IDAuNWgxMDB2LTU1MHEwIC0yMiAtMjUgLTM0LjV0LTUwIC0xMy41bC0yNSAtMnYtMTAwaDQwMHYxMDBxLTQgMCAtMTEgMC41dC0yNCAzdC0zMCA3dC0yNCAxNXQtMTEgMjQuNXY1NTBoMTAwcTI1IDAgMzcgLTAuNXQzMSAtMiB0MjguNSAtNS41dDIyIC0xMXQxOCAtMTcuNXQ5LjUgLTI2LjV0NCAtMzdoNTB2MzAwaC04MDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU2OyIgZD0iTTgwMCA3MDBoLTUwcTAgMjEgLTQgMzd0LTkuNSAyNi41dC0xOCAxNy41dC0yMiAxMXQtMjguNSA1LjV0LTMxIDJ0LTM3IDAuNWgtMTAwdi01NTBxMCAtMjIgMjUgLTM0LjV0NTAgLTE0LjVsMjUgLTF2LTEwMGgtNDAwdjEwMHE0IDAgMTEgMC41dDI0IDN0MzAgN3QyNCAxNXQxMSAyNC41djU1MGgtMTAwcS0yNSAwIC0zNyAtMC41dC0zMSAtMnQtMjguNSAtNS41dC0yMiAtMTF0LTE4IC0xNy41dC05LjUgLTI2LjV0LTQgLTM3aC01MHYzMDAgaDgwMHYtMzAwek0xMTAwIDIwMGgtMjAwdi0xMDBoMjAwdi0xMDBoLTMwMHYzMDBoMjAwdjEwMGgtMjAwdjEwMGgzMDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU3OyIgZD0iTTcwMSAxMDk4aDE2MHExNiAwIDIxIC0xMXQtNyAtMjNsLTQ2NCAtNDY0bDQ2NCAtNDY0cTEyIC0xMiA3IC0yM3QtMjEgLTExaC0xNjBxLTEzIDAgLTIzIDlsLTQ3MSA0NzFxLTcgOCAtNyAxOHQ3IDE4bDQ3MSA0NzFxMTAgOSAyMyA5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTg7IiBkPSJNMzM5IDEwOThoMTYwcTEzIDAgMjMgLTlsNDcxIC00NzFxNyAtOCA3IC0xOHQtNyAtMThsLTQ3MSAtNDcxcS0xMCAtOSAtMjMgLTloLTE2MHEtMTYgMCAtMjEgMTF0NyAyM2w0NjQgNDY0bC00NjQgNDY0cS0xMiAxMiAtNyAyM3QyMSAxMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU5OyIgZD0iTTEwODcgODgycTExIC01IDExIC0yMXYtMTYwcTAgLTEzIC05IC0yM2wtNDcxIC00NzFxLTggLTcgLTE4IC03dC0xOCA3bC00NzEgNDcxcS05IDEwIC05IDIzdjE2MHEwIDE2IDExIDIxdDIzIC03bDQ2NCAtNDY0bDQ2NCA0NjRxMTIgMTIgMjMgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjYwOyIgZD0iTTYxOCA5OTNsNDcxIC00NzFxOSAtMTAgOSAtMjN2LTE2MHEwIC0xNiAtMTEgLTIxdC0yMyA3bC00NjQgNDY0bC00NjQgLTQ2NHEtMTIgLTEyIC0yMyAtN3QtMTEgMjF2MTYwcTAgMTMgOSAyM2w0NzEgNDcxcTggNyAxOCA3dDE4IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGY4ZmY7IiBkPSJNMTAwMCAxMjAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek00NTAgMTAwMGgxMDBxMjEgMCA0MCAtMTR0MjYgLTMzbDc5IC0xOTRxNSAxIDE2IDNxMzQgNiA1NCA5LjV0NjAgN3Q2NS41IDF0NjEgLTEwdDU2LjUgLTIzdDQyLjUgLTQydDI5IC02NHQ1IC05MnQtMTkuNSAtMTIxLjVxLTEgLTcgLTMgLTE5LjV0LTExIC01MHQtMjAuNSAtNzN0LTMyLjUgLTgxLjV0LTQ2LjUgLTgzdC02NCAtNzAgdC04Mi41IC01MHEtMTMgLTUgLTQyIC01dC02NS41IDIuNXQtNDcuNSAyLjVxLTE0IDAgLTQ5LjUgLTMuNXQtNjMgLTMuNXQtNDMuNSA3cS01NyAyNSAtMTA0LjUgNzguNXQtNzUgMTExLjV0LTQ2LjUgMTEydC0yNiA5MGwtNyAzNXEtMTUgNjMgLTE4IDExNXQ0LjUgODguNXQyNiA2NHQzOS41IDQzLjV0NTIgMjUuNXQ1OC41IDEzdDYyLjUgMnQ1OS41IC00LjV0NTUuNSAtOGwtMTQ3IDE5MnEtMTIgMTggLTUuNSAzMHQyNy41IDEyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNTExOyIgZD0iTTI1MCAxMjAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTUwMGwtMjU1IC0xNzhxLTE5IC05IC0zMiAtMXQtMTMgMjl2NjUwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQwMCAxMTAwdi0xMDBoMzAwdjEwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNmFhOyIgZD0iTTI1MCAxMjAwaDc1MHEzOSAwIDY5LjUgLTQwLjV0MzAuNSAtODQuNXYtOTMzbC03MDAgLTExN3Y5NTBsNjAwIDEyNWgtNzAwdi0xMDAwaC0xMDB2MTAyNXEwIDIzIDE1LjUgNDl0MzQuNSAyNnpNNTAwIDUyNXYtMTAwbDEwMCAyMHYxMDB6IiAvPgo8L2ZvbnQ%2BCjwvZGVmcz48L3N2Zz4g%29%20format%28%27svg%27%29%7D%2Eglyphicon%7Bposition%3Arelative%3Btop%3A1px%3Bdisplay%3Ainline%2Dblock%3Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3B%2Dwebkit%2Dfont%2Dsmoothing%3Aantialiased%3B%2Dmoz%2Dosx%2Dfont%2Dsmoothing%3Agrayscale%7D%2Eglyphicon%2Dasterisk%3Abefore%7Bcontent%3A%22%5C002a%22%7D%2Eglyphicon%2Dplus%3Abefore%7Bcontent%3A%22%5C002b%22%7D%2Eglyphicon%2Deuro%3Abefore%2C%2Eglyphicon%2Deur%3Abefore%7Bcontent%3A%22%5C20ac%22%7D%2Eglyphicon%2Dminus%3Abefore%7Bcontent%3A%22%5C2212%22%7D%2Eglyphicon%2Dcloud%3Abefore%7Bcontent%3A%22%5C2601%22%7D%2Eglyphicon%2Denvelope%3Abefore%7Bcontent%3A%22%5C2709%22%7D%2Eglyphicon%2Dpencil%3Abefore%7Bcontent%3A%22%5C270f%22%7D%2Eglyphicon%2Dglass%3Abefore%7Bcontent%3A%22%5Ce001%22%7D%2Eglyphicon%2Dmusic%3Abefore%7Bcontent%3A%22%5Ce002%22%7D%2Eglyphicon%2Dsearch%3Abefore%7Bcontent%3A%22%5Ce003%22%7D%2Eglyphicon%2Dheart%3Abefore%7Bcontent%3A%22%5Ce005%22%7D%2Eglyphicon%2Dstar%3Abefore%7Bcontent%3A%22%5Ce006%22%7D%2Eglyphicon%2Dstar%2Dempty%3Abefore%7Bcontent%3A%22%5Ce007%22%7D%2Eglyphicon%2Duser%3Abefore%7Bcontent%3A%22%5Ce008%22%7D%2Eglyphicon%2Dfilm%3Abefore%7Bcontent%3A%22%5Ce009%22%7D%2Eglyphicon%2Dth%2Dlarge%3Abefore%7Bcontent%3A%22%5Ce010%22%7D%2Eglyphicon%2Dth%3Abefore%7Bcontent%3A%22%5Ce011%22%7D%2Eglyphicon%2Dth%2Dlist%3Abefore%7Bcontent%3A%22%5Ce012%22%7D%2Eglyphicon%2Dok%3Abefore%7Bcontent%3A%22%5Ce013%22%7D%2Eglyphicon%2Dremove%3Abefore%7Bcontent%3A%22%5Ce014%22%7D%2Eglyphicon%2Dzoom%2Din%3Abefore%7Bcontent%3A%22%5Ce015%22%7D%2Eglyphicon%2Dzoom%2Dout%3Abefore%7Bcontent%3A%22%5Ce016%22%7D%2Eglyphicon%2Doff%3Abefore%7Bcontent%3A%22%5Ce017%22%7D%2Eglyphicon%2Dsignal%3Abefore%7Bcontent%3A%22%5Ce018%22%7D%2Eglyphicon%2Dcog%3Abefore%7Bcontent%3A%22%5Ce019%22%7D%2Eglyphicon%2Dtrash%3Abefore%7Bcontent%3A%22%5Ce020%22%7D%2Eglyphicon%2Dhome%3Abefore%7Bcontent%3A%22%5Ce021%22%7D%2Eglyphicon%2Dfile%3Abefore%7Bcontent%3A%22%5Ce022%22%7D%2Eglyphicon%2Dtime%3Abefore%7Bcontent%3A%22%5Ce023%22%7D%2Eglyphicon%2Droad%3Abefore%7Bcontent%3A%22%5Ce024%22%7D%2Eglyphicon%2Ddownload%2Dalt%3Abefore%7Bcontent%3A%22%5Ce025%22%7D%2Eglyphicon%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce026%22%7D%2Eglyphicon%2Dupload%3Abefore%7Bcontent%3A%22%5Ce027%22%7D%2Eglyphicon%2Dinbox%3Abefore%7Bcontent%3A%22%5Ce028%22%7D%2Eglyphicon%2Dplay%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce029%22%7D%2Eglyphicon%2Drepeat%3Abefore%7Bcontent%3A%22%5Ce030%22%7D%2Eglyphicon%2Drefresh%3Abefore%7Bcontent%3A%22%5Ce031%22%7D%2Eglyphicon%2Dlist%2Dalt%3Abefore%7Bcontent%3A%22%5Ce032%22%7D%2Eglyphicon%2Dlock%3Abefore%7Bcontent%3A%22%5Ce033%22%7D%2Eglyphicon%2Dflag%3Abefore%7Bcontent%3A%22%5Ce034%22%7D%2Eglyphicon%2Dheadphones%3Abefore%7Bcontent%3A%22%5Ce035%22%7D%2Eglyphicon%2Dvolume%2Doff%3Abefore%7Bcontent%3A%22%5Ce036%22%7D%2Eglyphicon%2Dvolume%2Ddown%3Abefore%7Bcontent%3A%22%5Ce037%22%7D%2Eglyphicon%2Dvolume%2Dup%3Abefore%7Bcontent%3A%22%5Ce038%22%7D%2Eglyphicon%2Dqrcode%3Abefore%7Bcontent%3A%22%5Ce039%22%7D%2Eglyphicon%2Dbarcode%3Abefore%7Bcontent%3A%22%5Ce040%22%7D%2Eglyphicon%2Dtag%3Abefore%7Bcontent%3A%22%5Ce041%22%7D%2Eglyphicon%2Dtags%3Abefore%7Bcontent%3A%22%5Ce042%22%7D%2Eglyphicon%2Dbook%3Abefore%7Bcontent%3A%22%5Ce043%22%7D%2Eglyphicon%2Dbookmark%3Abefore%7Bcontent%3A%22%5Ce044%22%7D%2Eglyphicon%2Dprint%3Abefore%7Bcontent%3A%22%5Ce045%22%7D%2Eglyphicon%2Dcamera%3Abefore%7Bcontent%3A%22%5Ce046%22%7D%2Eglyphicon%2Dfont%3Abefore%7Bcontent%3A%22%5Ce047%22%7D%2Eglyphicon%2Dbold%3Abefore%7Bcontent%3A%22%5Ce048%22%7D%2Eglyphicon%2Ditalic%3Abefore%7Bcontent%3A%22%5Ce049%22%7D%2Eglyphicon%2Dtext%2Dheight%3Abefore%7Bcontent%3A%22%5Ce050%22%7D%2Eglyphicon%2Dtext%2Dwidth%3Abefore%7Bcontent%3A%22%5Ce051%22%7D%2Eglyphicon%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce052%22%7D%2Eglyphicon%2Dalign%2Dcenter%3Abefore%7Bcontent%3A%22%5Ce053%22%7D%2Eglyphicon%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce054%22%7D%2Eglyphicon%2Dalign%2Djustify%3Abefore%7Bcontent%3A%22%5Ce055%22%7D%2Eglyphicon%2Dlist%3Abefore%7Bcontent%3A%22%5Ce056%22%7D%2Eglyphicon%2Dindent%2Dleft%3Abefore%7Bcontent%3A%22%5Ce057%22%7D%2Eglyphicon%2Dindent%2Dright%3Abefore%7Bcontent%3A%22%5Ce058%22%7D%2Eglyphicon%2Dfacetime%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce059%22%7D%2Eglyphicon%2Dpicture%3Abefore%7Bcontent%3A%22%5Ce060%22%7D%2Eglyphicon%2Dmap%2Dmarker%3Abefore%7Bcontent%3A%22%5Ce062%22%7D%2Eglyphicon%2Dadjust%3Abefore%7Bcontent%3A%22%5Ce063%22%7D%2Eglyphicon%2Dtint%3Abefore%7Bcontent%3A%22%5Ce064%22%7D%2Eglyphicon%2Dedit%3Abefore%7Bcontent%3A%22%5Ce065%22%7D%2Eglyphicon%2Dshare%3Abefore%7Bcontent%3A%22%5Ce066%22%7D%2Eglyphicon%2Dcheck%3Abefore%7Bcontent%3A%22%5Ce067%22%7D%2Eglyphicon%2Dmove%3Abefore%7Bcontent%3A%22%5Ce068%22%7D%2Eglyphicon%2Dstep%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce069%22%7D%2Eglyphicon%2Dfast%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce070%22%7D%2Eglyphicon%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce071%22%7D%2Eglyphicon%2Dplay%3Abefore%7Bcontent%3A%22%5Ce072%22%7D%2Eglyphicon%2Dpause%3Abefore%7Bcontent%3A%22%5Ce073%22%7D%2Eglyphicon%2Dstop%3Abefore%7Bcontent%3A%22%5Ce074%22%7D%2Eglyphicon%2Dforward%3Abefore%7Bcontent%3A%22%5Ce075%22%7D%2Eglyphicon%2Dfast%2Dforward%3Abefore%7Bcontent%3A%22%5Ce076%22%7D%2Eglyphicon%2Dstep%2Dforward%3Abefore%7Bcontent%3A%22%5Ce077%22%7D%2Eglyphicon%2Deject%3Abefore%7Bcontent%3A%22%5Ce078%22%7D%2Eglyphicon%2Dchevron%2Dleft%3Abefore%7Bcontent%3A%22%5Ce079%22%7D%2Eglyphicon%2Dchevron%2Dright%3Abefore%7Bcontent%3A%22%5Ce080%22%7D%2Eglyphicon%2Dplus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce081%22%7D%2Eglyphicon%2Dminus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce082%22%7D%2Eglyphicon%2Dremove%2Dsign%3Abefore%7Bcontent%3A%22%5Ce083%22%7D%2Eglyphicon%2Dok%2Dsign%3Abefore%7Bcontent%3A%22%5Ce084%22%7D%2Eglyphicon%2Dquestion%2Dsign%3Abefore%7Bcontent%3A%22%5Ce085%22%7D%2Eglyphicon%2Dinfo%2Dsign%3Abefore%7Bcontent%3A%22%5Ce086%22%7D%2Eglyphicon%2Dscreenshot%3Abefore%7Bcontent%3A%22%5Ce087%22%7D%2Eglyphicon%2Dremove%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce088%22%7D%2Eglyphicon%2Dok%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce089%22%7D%2Eglyphicon%2Dban%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce090%22%7D%2Eglyphicon%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce091%22%7D%2Eglyphicon%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce092%22%7D%2Eglyphicon%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce093%22%7D%2Eglyphicon%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce094%22%7D%2Eglyphicon%2Dshare%2Dalt%3Abefore%7Bcontent%3A%22%5Ce095%22%7D%2Eglyphicon%2Dresize%2Dfull%3Abefore%7Bcontent%3A%22%5Ce096%22%7D%2Eglyphicon%2Dresize%2Dsmall%3Abefore%7Bcontent%3A%22%5Ce097%22%7D%2Eglyphicon%2Dexclamation%2Dsign%3Abefore%7Bcontent%3A%22%5Ce101%22%7D%2Eglyphicon%2Dgift%3Abefore%7Bcontent%3A%22%5Ce102%22%7D%2Eglyphicon%2Dleaf%3Abefore%7Bcontent%3A%22%5Ce103%22%7D%2Eglyphicon%2Dfire%3Abefore%7Bcontent%3A%22%5Ce104%22%7D%2Eglyphicon%2Deye%2Dopen%3Abefore%7Bcontent%3A%22%5Ce105%22%7D%2Eglyphicon%2Deye%2Dclose%3Abefore%7Bcontent%3A%22%5Ce106%22%7D%2Eglyphicon%2Dwarning%2Dsign%3Abefore%7Bcontent%3A%22%5Ce107%22%7D%2Eglyphicon%2Dplane%3Abefore%7Bcontent%3A%22%5Ce108%22%7D%2Eglyphicon%2Dcalendar%3Abefore%7Bcontent%3A%22%5Ce109%22%7D%2Eglyphicon%2Drandom%3Abefore%7Bcontent%3A%22%5Ce110%22%7D%2Eglyphicon%2Dcomment%3Abefore%7Bcontent%3A%22%5Ce111%22%7D%2Eglyphicon%2Dmagnet%3Abefore%7Bcontent%3A%22%5Ce112%22%7D%2Eglyphicon%2Dchevron%2Dup%3Abefore%7Bcontent%3A%22%5Ce113%22%7D%2Eglyphicon%2Dchevron%2Ddown%3Abefore%7Bcontent%3A%22%5Ce114%22%7D%2Eglyphicon%2Dretweet%3Abefore%7Bcontent%3A%22%5Ce115%22%7D%2Eglyphicon%2Dshopping%2Dcart%3Abefore%7Bcontent%3A%22%5Ce116%22%7D%2Eglyphicon%2Dfolder%2Dclose%3Abefore%7Bcontent%3A%22%5Ce117%22%7D%2Eglyphicon%2Dfolder%2Dopen%3Abefore%7Bcontent%3A%22%5Ce118%22%7D%2Eglyphicon%2Dresize%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce119%22%7D%2Eglyphicon%2Dresize%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce120%22%7D%2Eglyphicon%2Dhdd%3Abefore%7Bcontent%3A%22%5Ce121%22%7D%2Eglyphicon%2Dbullhorn%3Abefore%7Bcontent%3A%22%5Ce122%22%7D%2Eglyphicon%2Dbell%3Abefore%7Bcontent%3A%22%5Ce123%22%7D%2Eglyphicon%2Dcertificate%3Abefore%7Bcontent%3A%22%5Ce124%22%7D%2Eglyphicon%2Dthumbs%2Dup%3Abefore%7Bcontent%3A%22%5Ce125%22%7D%2Eglyphicon%2Dthumbs%2Ddown%3Abefore%7Bcontent%3A%22%5Ce126%22%7D%2Eglyphicon%2Dhand%2Dright%3Abefore%7Bcontent%3A%22%5Ce127%22%7D%2Eglyphicon%2Dhand%2Dleft%3Abefore%7Bcontent%3A%22%5Ce128%22%7D%2Eglyphicon%2Dhand%2Dup%3Abefore%7Bcontent%3A%22%5Ce129%22%7D%2Eglyphicon%2Dhand%2Ddown%3Abefore%7Bcontent%3A%22%5Ce130%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce131%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce132%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce133%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce134%22%7D%2Eglyphicon%2Dglobe%3Abefore%7Bcontent%3A%22%5Ce135%22%7D%2Eglyphicon%2Dwrench%3Abefore%7Bcontent%3A%22%5Ce136%22%7D%2Eglyphicon%2Dtasks%3Abefore%7Bcontent%3A%22%5Ce137%22%7D%2Eglyphicon%2Dfilter%3Abefore%7Bcontent%3A%22%5Ce138%22%7D%2Eglyphicon%2Dbriefcase%3Abefore%7Bcontent%3A%22%5Ce139%22%7D%2Eglyphicon%2Dfullscreen%3Abefore%7Bcontent%3A%22%5Ce140%22%7D%2Eglyphicon%2Ddashboard%3Abefore%7Bcontent%3A%22%5Ce141%22%7D%2Eglyphicon%2Dpaperclip%3Abefore%7Bcontent%3A%22%5Ce142%22%7D%2Eglyphicon%2Dheart%2Dempty%3Abefore%7Bcontent%3A%22%5Ce143%22%7D%2Eglyphicon%2Dlink%3Abefore%7Bcontent%3A%22%5Ce144%22%7D%2Eglyphicon%2Dphone%3Abefore%7Bcontent%3A%22%5Ce145%22%7D%2Eglyphicon%2Dpushpin%3Abefore%7Bcontent%3A%22%5Ce146%22%7D%2Eglyphicon%2Dusd%3Abefore%7Bcontent%3A%22%5Ce148%22%7D%2Eglyphicon%2Dgbp%3Abefore%7Bcontent%3A%22%5Ce149%22%7D%2Eglyphicon%2Dsort%3Abefore%7Bcontent%3A%22%5Ce150%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%3Abefore%7Bcontent%3A%22%5Ce151%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%2Dalt%3Abefore%7Bcontent%3A%22%5Ce152%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%3Abefore%7Bcontent%3A%22%5Ce153%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%2Dalt%3Abefore%7Bcontent%3A%22%5Ce154%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%3Abefore%7Bcontent%3A%22%5Ce155%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%2Dalt%3Abefore%7Bcontent%3A%22%5Ce156%22%7D%2Eglyphicon%2Dunchecked%3Abefore%7Bcontent%3A%22%5Ce157%22%7D%2Eglyphicon%2Dexpand%3Abefore%7Bcontent%3A%22%5Ce158%22%7D%2Eglyphicon%2Dcollapse%2Ddown%3Abefore%7Bcontent%3A%22%5Ce159%22%7D%2Eglyphicon%2Dcollapse%2Dup%3Abefore%7Bcontent%3A%22%5Ce160%22%7D%2Eglyphicon%2Dlog%2Din%3Abefore%7Bcontent%3A%22%5Ce161%22%7D%2Eglyphicon%2Dflash%3Abefore%7Bcontent%3A%22%5Ce162%22%7D%2Eglyphicon%2Dlog%2Dout%3Abefore%7Bcontent%3A%22%5Ce163%22%7D%2Eglyphicon%2Dnew%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce164%22%7D%2Eglyphicon%2Drecord%3Abefore%7Bcontent%3A%22%5Ce165%22%7D%2Eglyphicon%2Dsave%3Abefore%7Bcontent%3A%22%5Ce166%22%7D%2Eglyphicon%2Dopen%3Abefore%7Bcontent%3A%22%5Ce167%22%7D%2Eglyphicon%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce168%22%7D%2Eglyphicon%2Dimport%3Abefore%7Bcontent%3A%22%5Ce169%22%7D%2Eglyphicon%2Dexport%3Abefore%7Bcontent%3A%22%5Ce170%22%7D%2Eglyphicon%2Dsend%3Abefore%7Bcontent%3A%22%5Ce171%22%7D%2Eglyphicon%2Dfloppy%2Ddisk%3Abefore%7Bcontent%3A%22%5Ce172%22%7D%2Eglyphicon%2Dfloppy%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce173%22%7D%2Eglyphicon%2Dfloppy%2Dremove%3Abefore%7Bcontent%3A%22%5Ce174%22%7D%2Eglyphicon%2Dfloppy%2Dsave%3Abefore%7Bcontent%3A%22%5Ce175%22%7D%2Eglyphicon%2Dfloppy%2Dopen%3Abefore%7Bcontent%3A%22%5Ce176%22%7D%2Eglyphicon%2Dcredit%2Dcard%3Abefore%7Bcontent%3A%22%5Ce177%22%7D%2Eglyphicon%2Dtransfer%3Abefore%7Bcontent%3A%22%5Ce178%22%7D%2Eglyphicon%2Dcutlery%3Abefore%7Bcontent%3A%22%5Ce179%22%7D%2Eglyphicon%2Dheader%3Abefore%7Bcontent%3A%22%5Ce180%22%7D%2Eglyphicon%2Dcompressed%3Abefore%7Bcontent%3A%22%5Ce181%22%7D%2Eglyphicon%2Dearphone%3Abefore%7Bcontent%3A%22%5Ce182%22%7D%2Eglyphicon%2Dphone%2Dalt%3Abefore%7Bcontent%3A%22%5Ce183%22%7D%2Eglyphicon%2Dtower%3Abefore%7Bcontent%3A%22%5Ce184%22%7D%2Eglyphicon%2Dstats%3Abefore%7Bcontent%3A%22%5Ce185%22%7D%2Eglyphicon%2Dsd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce186%22%7D%2Eglyphicon%2Dhd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce187%22%7D%2Eglyphicon%2Dsubtitles%3Abefore%7Bcontent%3A%22%5Ce188%22%7D%2Eglyphicon%2Dsound%2Dstereo%3Abefore%7Bcontent%3A%22%5Ce189%22%7D%2Eglyphicon%2Dsound%2Ddolby%3Abefore%7Bcontent%3A%22%5Ce190%22%7D%2Eglyphicon%2Dsound%2D5%2D1%3Abefore%7Bcontent%3A%22%5Ce191%22%7D%2Eglyphicon%2Dsound%2D6%2D1%3Abefore%7Bcontent%3A%22%5Ce192%22%7D%2Eglyphicon%2Dsound%2D7%2D1%3Abefore%7Bcontent%3A%22%5Ce193%22%7D%2Eglyphicon%2Dcopyright%2Dmark%3Abefore%7Bcontent%3A%22%5Ce194%22%7D%2Eglyphicon%2Dregistration%2Dmark%3Abefore%7Bcontent%3A%22%5Ce195%22%7D%2Eglyphicon%2Dcloud%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce197%22%7D%2Eglyphicon%2Dcloud%2Dupload%3Abefore%7Bcontent%3A%22%5Ce198%22%7D%2Eglyphicon%2Dtree%2Dconifer%3Abefore%7Bcontent%3A%22%5Ce199%22%7D%2Eglyphicon%2Dtree%2Ddeciduous%3Abefore%7Bcontent%3A%22%5Ce200%22%7D%2Eglyphicon%2Dcd%3Abefore%7Bcontent%3A%22%5Ce201%22%7D%2Eglyphicon%2Dsave%2Dfile%3Abefore%7Bcontent%3A%22%5Ce202%22%7D%2Eglyphicon%2Dopen%2Dfile%3Abefore%7Bcontent%3A%22%5Ce203%22%7D%2Eglyphicon%2Dlevel%2Dup%3Abefore%7Bcontent%3A%22%5Ce204%22%7D%2Eglyphicon%2Dcopy%3Abefore%7Bcontent%3A%22%5Ce205%22%7D%2Eglyphicon%2Dpaste%3Abefore%7Bcontent%3A%22%5Ce206%22%7D%2Eglyphicon%2Dalert%3Abefore%7Bcontent%3A%22%5Ce209%22%7D%2Eglyphicon%2Dequalizer%3Abefore%7Bcontent%3A%22%5Ce210%22%7D%2Eglyphicon%2Dking%3Abefore%7Bcontent%3A%22%5Ce211%22%7D%2Eglyphicon%2Dqueen%3Abefore%7Bcontent%3A%22%5Ce212%22%7D%2Eglyphicon%2Dpawn%3Abefore%7Bcontent%3A%22%5Ce213%22%7D%2Eglyphicon%2Dbishop%3Abefore%7Bcontent%3A%22%5Ce214%22%7D%2Eglyphicon%2Dknight%3Abefore%7Bcontent%3A%22%5Ce215%22%7D%2Eglyphicon%2Dbaby%2Dformula%3Abefore%7Bcontent%3A%22%5Ce216%22%7D%2Eglyphicon%2Dtent%3Abefore%7Bcontent%3A%22%5C26fa%22%7D%2Eglyphicon%2Dblackboard%3Abefore%7Bcontent%3A%22%5Ce218%22%7D%2Eglyphicon%2Dbed%3Abefore%7Bcontent%3A%22%5Ce219%22%7D%2Eglyphicon%2Dapple%3Abefore%7Bcontent%3A%22%5Cf8ff%22%7D%2Eglyphicon%2Derase%3Abefore%7Bcontent%3A%22%5Ce221%22%7D%2Eglyphicon%2Dhourglass%3Abefore%7Bcontent%3A%22%5C231b%22%7D%2Eglyphicon%2Dlamp%3Abefore%7Bcontent%3A%22%5Ce223%22%7D%2Eglyphicon%2Dduplicate%3Abefore%7Bcontent%3A%22%5Ce224%22%7D%2Eglyphicon%2Dpiggy%2Dbank%3Abefore%7Bcontent%3A%22%5Ce225%22%7D%2Eglyphicon%2Dscissors%3Abefore%7Bcontent%3A%22%5Ce226%22%7D%2Eglyphicon%2Dbitcoin%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dbtc%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dxbt%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dyen%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Djpy%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Druble%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Drub%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Dscale%3Abefore%7Bcontent%3A%22%5Ce230%22%7D%2Eglyphicon%2Dice%2Dlolly%3Abefore%7Bcontent%3A%22%5Ce231%22%7D%2Eglyphicon%2Dice%2Dlolly%2Dtasted%3Abefore%7Bcontent%3A%22%5Ce232%22%7D%2Eglyphicon%2Deducation%3Abefore%7Bcontent%3A%22%5Ce233%22%7D%2Eglyphicon%2Doption%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce234%22%7D%2Eglyphicon%2Doption%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce235%22%7D%2Eglyphicon%2Dmenu%2Dhamburger%3Abefore%7Bcontent%3A%22%5Ce236%22%7D%2Eglyphicon%2Dmodal%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce237%22%7D%2Eglyphicon%2Doil%3Abefore%7Bcontent%3A%22%5Ce238%22%7D%2Eglyphicon%2Dgrain%3Abefore%7Bcontent%3A%22%5Ce239%22%7D%2Eglyphicon%2Dsunglasses%3Abefore%7Bcontent%3A%22%5Ce240%22%7D%2Eglyphicon%2Dtext%2Dsize%3Abefore%7Bcontent%3A%22%5Ce241%22%7D%2Eglyphicon%2Dtext%2Dcolor%3Abefore%7Bcontent%3A%22%5Ce242%22%7D%2Eglyphicon%2Dtext%2Dbackground%3Abefore%7Bcontent%3A%22%5Ce243%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dtop%3Abefore%7Bcontent%3A%22%5Ce244%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce245%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce246%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce247%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce248%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce249%22%7D%2Eglyphicon%2Dtriangle%2Dright%3Abefore%7Bcontent%3A%22%5Ce250%22%7D%2Eglyphicon%2Dtriangle%2Dleft%3Abefore%7Bcontent%3A%22%5Ce251%22%7D%2Eglyphicon%2Dtriangle%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce252%22%7D%2Eglyphicon%2Dtriangle%2Dtop%3Abefore%7Bcontent%3A%22%5Ce253%22%7D%2Eglyphicon%2Dconsole%3Abefore%7Bcontent%3A%22%5Ce254%22%7D%2Eglyphicon%2Dsuperscript%3Abefore%7Bcontent%3A%22%5Ce255%22%7D%2Eglyphicon%2Dsubscript%3Abefore%7Bcontent%3A%22%5Ce256%22%7D%2Eglyphicon%2Dmenu%2Dleft%3Abefore%7Bcontent%3A%22%5Ce257%22%7D%2Eglyphicon%2Dmenu%2Dright%3Abefore%7Bcontent%3A%22%5Ce258%22%7D%2Eglyphicon%2Dmenu%2Ddown%3Abefore%7Bcontent%3A%22%5Ce259%22%7D%2Eglyphicon%2Dmenu%2Dup%3Abefore%7Bcontent%3A%22%5Ce260%22%7D%2A%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%2A%3Abefore%2C%2A%3Aafter%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dhtml%7Bfont%2Dsize%3A10px%3B%2Dwebkit%2Dtap%2Dhighlight%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7Dbody%7Bfont%2Dfamily%3A%22Source%20Sans%20Pro%22%2CCalibri%2CCandara%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A15px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333333%3Bbackground%2Dcolor%3A%23ffffff%7Dinput%2Cbutton%2Cselect%2Ctextarea%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dsize%3Ainherit%3Bline%2Dheight%3Ainherit%7Da%7Bcolor%3A%232780e3%3Btext%2Ddecoration%3Anone%7Da%3Ahover%2Ca%3Afocus%7Bcolor%3A%23165ba8%3Btext%2Ddecoration%3Aunderline%7Da%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Dfigure%7Bmargin%3A0%7Dimg%7Bvertical%2Dalign%3Amiddle%7D%2Eimg%2Dresponsive%2C%2Ethumbnail%3Eimg%2C%2Ethumbnail%20a%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%7Bdisplay%3Ablock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Drounded%7Bborder%2Dradius%3A0%7D%2Eimg%2Dthumbnail%7Bpadding%3A4px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Dcircle%7Bborder%2Dradius%3A50%25%7Dhr%7Bmargin%2Dtop%3A21px%3Bmargin%2Dbottom%3A21px%3Bborder%3A0%3Bborder%2Dtop%3A1px%20solid%20%23e6e6e6%7D%2Esr%2Donly%7Bposition%3Aabsolute%3Bwidth%3A1px%3Bheight%3A1px%3Bmargin%3A%2D1px%3Bpadding%3A0%3Boverflow%3Ahidden%3Bclip%3Arect%280%2C%200%2C%200%2C%200%29%3Bborder%3A0%7D%2Esr%2Donly%2Dfocusable%3Aactive%2C%2Esr%2Donly%2Dfocusable%3Afocus%7Bposition%3Astatic%3Bwidth%3Aauto%3Bheight%3Aauto%3Bmargin%3A0%3Boverflow%3Avisible%3Bclip%3Aauto%7D%5Brole%3D%22button%22%5D%7Bcursor%3Apointer%7Dh1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%2C%2Eh1%2C%2Eh2%2C%2Eh3%2C%2Eh4%2C%2Eh5%2C%2Eh6%7Bfont%2Dfamily%3A%22Source%20Sans%20Pro%22%2CCalibri%2CCandara%2CArial%2Csans%2Dserif%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E1%3Bcolor%3Ainherit%7Dh1%20small%2Ch2%20small%2Ch3%20small%2Ch4%20small%2Ch5%20small%2Ch6%20small%2C%2Eh1%20small%2C%2Eh2%20small%2C%2Eh3%20small%2C%2Eh4%20small%2C%2Eh5%20small%2C%2Eh6%20small%2Ch1%20%2Esmall%2Ch2%20%2Esmall%2Ch3%20%2Esmall%2Ch4%20%2Esmall%2Ch5%20%2Esmall%2Ch6%20%2Esmall%2C%2Eh1%20%2Esmall%2C%2Eh2%20%2Esmall%2C%2Eh3%20%2Esmall%2C%2Eh4%20%2Esmall%2C%2Eh5%20%2Esmall%2C%2Eh6%20%2Esmall%7Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3Bcolor%3A%23999999%7Dh1%2C%2Eh1%2Ch2%2C%2Eh2%2Ch3%2C%2Eh3%7Bmargin%2Dtop%3A21px%3Bmargin%2Dbottom%3A10%2E5px%7Dh1%20small%2C%2Eh1%20small%2Ch2%20small%2C%2Eh2%20small%2Ch3%20small%2C%2Eh3%20small%2Ch1%20%2Esmall%2C%2Eh1%20%2Esmall%2Ch2%20%2Esmall%2C%2Eh2%20%2Esmall%2Ch3%20%2Esmall%2C%2Eh3%20%2Esmall%7Bfont%2Dsize%3A65%25%7Dh4%2C%2Eh4%2Ch5%2C%2Eh5%2Ch6%2C%2Eh6%7Bmargin%2Dtop%3A10%2E5px%3Bmargin%2Dbottom%3A10%2E5px%7Dh4%20small%2C%2Eh4%20small%2Ch5%20small%2C%2Eh5%20small%2Ch6%20small%2C%2Eh6%20small%2Ch4%20%2Esmall%2C%2Eh4%20%2Esmall%2Ch5%20%2Esmall%2C%2Eh5%20%2Esmall%2Ch6%20%2Esmall%2C%2Eh6%20%2Esmall%7Bfont%2Dsize%3A75%25%7Dh1%2C%2Eh1%7Bfont%2Dsize%3A39px%7Dh2%2C%2Eh2%7Bfont%2Dsize%3A32px%7Dh3%2C%2Eh3%7Bfont%2Dsize%3A26px%7Dh4%2C%2Eh4%7Bfont%2Dsize%3A19px%7Dh5%2C%2Eh5%7Bfont%2Dsize%3A15px%7Dh6%2C%2Eh6%7Bfont%2Dsize%3A13px%7Dp%7Bmargin%3A0%200%2010%2E5px%7D%2Elead%7Bmargin%2Dbottom%3A21px%3Bfont%2Dsize%3A17px%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E4%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Elead%7Bfont%2Dsize%3A22%2E5px%7D%7Dsmall%2C%2Esmall%7Bfont%2Dsize%3A86%25%7Dmark%2C%2Emark%7Bbackground%2Dcolor%3A%23ff7518%3Bpadding%3A%2E2em%7D%2Etext%2Dleft%7Btext%2Dalign%3Aleft%7D%2Etext%2Dright%7Btext%2Dalign%3Aright%7D%2Etext%2Dcenter%7Btext%2Dalign%3Acenter%7D%2Etext%2Djustify%7Btext%2Dalign%3Ajustify%7D%2Etext%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7D%2Etext%2Dlowercase%7Btext%2Dtransform%3Alowercase%7D%2Etext%2Duppercase%7Btext%2Dtransform%3Auppercase%7D%2Etext%2Dcapitalize%7Btext%2Dtransform%3Acapitalize%7D%2Etext%2Dmuted%7Bcolor%3A%23999999%7D%2Etext%2Dprimary%7Bcolor%3A%232780e3%7Da%2Etext%2Dprimary%3Ahover%2Ca%2Etext%2Dprimary%3Afocus%7Bcolor%3A%231967be%7D%2Etext%2Dsuccess%7Bcolor%3A%23ffffff%7Da%2Etext%2Dsuccess%3Ahover%2Ca%2Etext%2Dsuccess%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Etext%2Dinfo%7Bcolor%3A%23ffffff%7Da%2Etext%2Dinfo%3Ahover%2Ca%2Etext%2Dinfo%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Etext%2Dwarning%7Bcolor%3A%23ffffff%7Da%2Etext%2Dwarning%3Ahover%2Ca%2Etext%2Dwarning%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Etext%2Ddanger%7Bcolor%3A%23ffffff%7Da%2Etext%2Ddanger%3Ahover%2Ca%2Etext%2Ddanger%3Afocus%7Bcolor%3A%23e6e6e6%7D%2Ebg%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%232780e3%7Da%2Ebg%2Dprimary%3Ahover%2Ca%2Ebg%2Dprimary%3Afocus%7Bbackground%2Dcolor%3A%231967be%7D%2Ebg%2Dsuccess%7Bbackground%2Dcolor%3A%233fb618%7Da%2Ebg%2Dsuccess%3Ahover%2Ca%2Ebg%2Dsuccess%3Afocus%7Bbackground%2Dcolor%3A%232f8912%7D%2Ebg%2Dinfo%7Bbackground%2Dcolor%3A%239954bb%7Da%2Ebg%2Dinfo%3Ahover%2Ca%2Ebg%2Dinfo%3Afocus%7Bbackground%2Dcolor%3A%237e3f9d%7D%2Ebg%2Dwarning%7Bbackground%2Dcolor%3A%23ff7518%7Da%2Ebg%2Dwarning%3Ahover%2Ca%2Ebg%2Dwarning%3Afocus%7Bbackground%2Dcolor%3A%23e45c00%7D%2Ebg%2Ddanger%7Bbackground%2Dcolor%3A%23ff0039%7Da%2Ebg%2Ddanger%3Ahover%2Ca%2Ebg%2Ddanger%3Afocus%7Bbackground%2Dcolor%3A%23cc002e%7D%2Epage%2Dheader%7Bpadding%2Dbottom%3A9%2E5px%3Bmargin%3A42px%200%2021px%3Bborder%2Dbottom%3A1px%20solid%20%23e6e6e6%7Dul%2Col%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A10%2E5px%7Dul%20ul%2Col%20ul%2Cul%20ol%2Col%20ol%7Bmargin%2Dbottom%3A0%7D%2Elist%2Dunstyled%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dinline%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%3Bmargin%2Dleft%3A%2D5px%7D%2Elist%2Dinline%3Eli%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A5px%3Bpadding%2Dright%3A5px%7Ddl%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A21px%7Ddt%2Cdd%7Bline%2Dheight%3A1%2E42857143%7Ddt%7Bfont%2Dweight%3Abold%7Ddd%7Bmargin%2Dleft%3A0%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Edl%2Dhorizontal%20dt%7Bfloat%3Aleft%3Bwidth%3A160px%3Bclear%3Aleft%3Btext%2Dalign%3Aright%3Boverflow%3Ahidden%3Btext%2Doverflow%3Aellipsis%3Bwhite%2Dspace%3Anowrap%7D%2Edl%2Dhorizontal%20dd%7Bmargin%2Dleft%3A180px%7D%7Dabbr%5Btitle%5D%2Cabbr%5Bdata%2Doriginal%2Dtitle%5D%7Bcursor%3Ahelp%3Bborder%2Dbottom%3A1px%20dotted%20%23999999%7D%2Einitialism%7Bfont%2Dsize%3A90%25%3Btext%2Dtransform%3Auppercase%7Dblockquote%7Bpadding%3A10%2E5px%2021px%3Bmargin%3A0%200%2021px%3Bfont%2Dsize%3A18%2E75px%3Bborder%2Dleft%3A5px%20solid%20%23e6e6e6%7Dblockquote%20p%3Alast%2Dchild%2Cblockquote%20ul%3Alast%2Dchild%2Cblockquote%20ol%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7Dblockquote%20footer%2Cblockquote%20small%2Cblockquote%20%2Esmall%7Bdisplay%3Ablock%3Bfont%2Dsize%3A80%25%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23999999%7Dblockquote%20footer%3Abefore%2Cblockquote%20small%3Abefore%2Cblockquote%20%2Esmall%3Abefore%7Bcontent%3A%27%5C2014%20%5C00A0%27%7D%2Eblockquote%2Dreverse%2Cblockquote%2Epull%2Dright%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A0%3Bborder%2Dright%3A5px%20solid%20%23e6e6e6%3Bborder%2Dleft%3A0%3Btext%2Dalign%3Aright%7D%2Eblockquote%2Dreverse%20footer%3Abefore%2Cblockquote%2Epull%2Dright%20footer%3Abefore%2C%2Eblockquote%2Dreverse%20small%3Abefore%2Cblockquote%2Epull%2Dright%20small%3Abefore%2C%2Eblockquote%2Dreverse%20%2Esmall%3Abefore%2Cblockquote%2Epull%2Dright%20%2Esmall%3Abefore%7Bcontent%3A%27%27%7D%2Eblockquote%2Dreverse%20footer%3Aafter%2Cblockquote%2Epull%2Dright%20footer%3Aafter%2C%2Eblockquote%2Dreverse%20small%3Aafter%2Cblockquote%2Epull%2Dright%20small%3Aafter%2C%2Eblockquote%2Dreverse%20%2Esmall%3Aafter%2Cblockquote%2Epull%2Dright%20%2Esmall%3Aafter%7Bcontent%3A%27%5C00A0%20%5C2014%27%7Daddress%7Bmargin%2Dbottom%3A21px%3Bfont%2Dstyle%3Anormal%3Bline%2Dheight%3A1%2E42857143%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%7Dcode%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23c7254e%3Bbackground%2Dcolor%3A%23f9f2f4%3Bborder%2Dradius%3A0%7Dkbd%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23333333%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E25%29%7Dkbd%20kbd%7Bpadding%3A0%3Bfont%2Dsize%3A100%25%3Bfont%2Dweight%3Abold%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Dpre%7Bdisplay%3Ablock%3Bpadding%3A10px%3Bmargin%3A0%200%2010%2E5px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bword%2Dbreak%3Abreak%2Dall%3Bword%2Dwrap%3Abreak%2Dword%3Bcolor%3A%23333333%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%2Dradius%3A0%7Dpre%20code%7Bpadding%3A0%3Bfont%2Dsize%3Ainherit%3Bcolor%3Ainherit%3Bwhite%2Dspace%3Apre%2Dwrap%3Bbackground%2Dcolor%3Atransparent%3Bborder%2Dradius%3A0%7D%2Epre%2Dscrollable%7Bmax%2Dheight%3A340px%3Boverflow%2Dy%3Ascroll%7D%2Econtainer%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%7Bwidth%3A750px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Econtainer%7Bwidth%3A970px%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Econtainer%7Bwidth%3A1170px%7D%7D%2Econtainer%2Dfluid%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Erow%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dsm%2D1%2C%2Ecol%2Dmd%2D1%2C%2Ecol%2Dlg%2D1%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dxs%2D9%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dxs%2D12%2C%2Ecol%2Dsm%2D12%2C%2Ecol%2Dmd%2D12%2C%2Ecol%2Dlg%2D12%7Bposition%3Arelative%3Bmin%2Dheight%3A1px%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dxs%2D9%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dxs%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dxs%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dxs%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dxs%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dxs%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dxs%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dxs%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dxs%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dxs%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dxs%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dxs%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dxs%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dxs%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dxs%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dxs%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dxs%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dxs%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dxs%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dxs%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dxs%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dxs%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dxs%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dxs%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dxs%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dxs%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dxs%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dxs%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Ecol%2Dsm%2D1%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dsm%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dsm%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dsm%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dsm%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dsm%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dsm%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dsm%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dsm%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dsm%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dsm%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dsm%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dsm%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dsm%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dsm%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dsm%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dsm%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dsm%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dsm%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dsm%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dsm%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dsm%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dsm%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dsm%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dsm%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dsm%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dsm%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dsm%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Ecol%2Dmd%2D1%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dmd%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dmd%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dmd%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dmd%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dmd%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dmd%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dmd%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dmd%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dmd%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dmd%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dmd%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dmd%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dmd%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dmd%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dmd%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dmd%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dmd%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dmd%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dmd%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dmd%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dmd%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dmd%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dmd%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dmd%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dmd%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dmd%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dmd%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ecol%2Dlg%2D1%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dlg%2D12%7Bfloat%3Aleft%7D%2Ecol%2Dlg%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dlg%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dlg%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dlg%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dlg%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dlg%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dlg%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dlg%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dlg%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dlg%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dlg%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dlg%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dlg%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dlg%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dlg%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dlg%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dlg%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dlg%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dlg%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dlg%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dlg%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dlg%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dlg%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dlg%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dlg%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dlg%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D0%7Bmargin%2Dleft%3A0%25%7D%7Dtable%7Bbackground%2Dcolor%3Atransparent%7Dcaption%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bcolor%3A%23999999%3Btext%2Dalign%3Aleft%7Dth%7B%7D%2Etable%7Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A21px%7D%2Etable%3Ethead%3Etr%3Eth%2C%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%3Etfoot%3Etr%3Etd%7Bpadding%3A8px%3Bline%2Dheight%3A1%2E42857143%3Bvertical%2Dalign%3Atop%3Bborder%2Dtop%3A1px%20solid%20%23dddddd%7D%2Etable%3Ethead%3Etr%3Eth%7Bvertical%2Dalign%3Abottom%3Bborder%2Dbottom%3A2px%20solid%20%23dddddd%7D%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Etd%7Bborder%2Dtop%3A0%7D%2Etable%3Etbody%2Btbody%7Bborder%2Dtop%3A2px%20solid%20%23dddddd%7D%2Etable%20%2Etable%7Bbackground%2Dcolor%3A%23ffffff%7D%2Etable%2Dcondensed%3Ethead%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Eth%2C%2Etable%2Dcondensed%3Ethead%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Etd%7Bpadding%3A5px%7D%2Etable%2Dbordered%7Bborder%3A1px%20solid%20%23dddddd%7D%2Etable%2Dbordered%3Ethead%3Etr%3Eth%2C%2Etable%2Dbordered%3Etbody%3Etr%3Eth%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%2C%2Etable%2Dbordered%3Etbody%3Etr%3Etd%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%7Bborder%3A1px%20solid%20%23dddddd%7D%2Etable%2Dbordered%3Ethead%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%7Bborder%2Dbottom%2Dwidth%3A2px%7D%2Etable%2Dstriped%3Etbody%3Etr%3Anth%2Dof%2Dtype%28odd%29%7Bbackground%2Dcolor%3A%23f9f9f9%7D%2Etable%2Dhover%3Etbody%3Etr%3Ahover%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%20col%5Bclass%2A%3D%22col%2D%22%5D%7Bposition%3Astatic%3Bfloat%3Anone%3Bdisplay%3Atable%2Dcolumn%7Dtable%20td%5Bclass%2A%3D%22col%2D%22%5D%2Ctable%20th%5Bclass%2A%3D%22col%2D%22%5D%7Bposition%3Astatic%3Bfloat%3Anone%3Bdisplay%3Atable%2Dcell%7D%2Etable%3Ethead%3Etr%3Etd%2Eactive%2C%2Etable%3Etbody%3Etr%3Etd%2Eactive%2C%2Etable%3Etfoot%3Etr%3Etd%2Eactive%2C%2Etable%3Ethead%3Etr%3Eth%2Eactive%2C%2Etable%3Etbody%3Etr%3Eth%2Eactive%2C%2Etable%3Etfoot%3Etr%3Eth%2Eactive%2C%2Etable%3Ethead%3Etr%2Eactive%3Etd%2C%2Etable%3Etbody%3Etr%2Eactive%3Etd%2C%2Etable%3Etfoot%3Etr%2Eactive%3Etd%2C%2Etable%3Ethead%3Etr%2Eactive%3Eth%2C%2Etable%3Etbody%3Etr%2Eactive%3Eth%2C%2Etable%3Etfoot%3Etr%2Eactive%3Eth%7Bbackground%2Dcolor%3A%23f5f5f5%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Eactive%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23e8e8e8%7D%2Etable%3Ethead%3Etr%3Etd%2Esuccess%2C%2Etable%3Etbody%3Etr%3Etd%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Etd%2Esuccess%2C%2Etable%3Ethead%3Etr%3Eth%2Esuccess%2C%2Etable%3Etbody%3Etr%3Eth%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Eth%2Esuccess%2C%2Etable%3Ethead%3Etr%2Esuccess%3Etd%2C%2Etable%3Etbody%3Etr%2Esuccess%3Etd%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Etd%2C%2Etable%3Ethead%3Etr%2Esuccess%3Eth%2C%2Etable%3Etbody%3Etr%2Esuccess%3Eth%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Eth%7Bbackground%2Dcolor%3A%233fb618%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Esuccess%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23379f15%7D%2Etable%3Ethead%3Etr%3Etd%2Einfo%2C%2Etable%3Etbody%3Etr%3Etd%2Einfo%2C%2Etable%3Etfoot%3Etr%3Etd%2Einfo%2C%2Etable%3Ethead%3Etr%3Eth%2Einfo%2C%2Etable%3Etbody%3Etr%3Eth%2Einfo%2C%2Etable%3Etfoot%3Etr%3Eth%2Einfo%2C%2Etable%3Ethead%3Etr%2Einfo%3Etd%2C%2Etable%3Etbody%3Etr%2Einfo%3Etd%2C%2Etable%3Etfoot%3Etr%2Einfo%3Etd%2C%2Etable%3Ethead%3Etr%2Einfo%3Eth%2C%2Etable%3Etbody%3Etr%2Einfo%3Eth%2C%2Etable%3Etfoot%3Etr%2Einfo%3Eth%7Bbackground%2Dcolor%3A%239954bb%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Einfo%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Eth%7Bbackground%2Dcolor%3A%238d46b0%7D%2Etable%3Ethead%3Etr%3Etd%2Ewarning%2C%2Etable%3Etbody%3Etr%3Etd%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Etd%2Ewarning%2C%2Etable%3Ethead%3Etr%3Eth%2Ewarning%2C%2Etable%3Etbody%3Etr%3Eth%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Eth%2Ewarning%2C%2Etable%3Ethead%3Etr%2Ewarning%3Etd%2C%2Etable%3Etbody%3Etr%2Ewarning%3Etd%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Etd%2C%2Etable%3Ethead%3Etr%2Ewarning%3Eth%2C%2Etable%3Etbody%3Etr%2Ewarning%3Eth%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Eth%7Bbackground%2Dcolor%3A%23ff7518%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Ewarning%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23fe6600%7D%2Etable%3Ethead%3Etr%3Etd%2Edanger%2C%2Etable%3Etbody%3Etr%3Etd%2Edanger%2C%2Etable%3Etfoot%3Etr%3Etd%2Edanger%2C%2Etable%3Ethead%3Etr%3Eth%2Edanger%2C%2Etable%3Etbody%3Etr%3Eth%2Edanger%2C%2Etable%3Etfoot%3Etr%3Eth%2Edanger%2C%2Etable%3Ethead%3Etr%2Edanger%3Etd%2C%2Etable%3Etbody%3Etr%2Edanger%3Etd%2C%2Etable%3Etfoot%3Etr%2Edanger%3Etd%2C%2Etable%3Ethead%3Etr%2Edanger%3Eth%2C%2Etable%3Etbody%3Etr%2Edanger%3Eth%2C%2Etable%3Etfoot%3Etr%2Edanger%3Eth%7Bbackground%2Dcolor%3A%23ff0039%7D%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Edanger%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Eth%7Bbackground%2Dcolor%3A%23e60033%7D%2Etable%2Dresponsive%7Boverflow%2Dx%3Aauto%3Bmin%2Dheight%3A0%2E01%25%7D%40media%20screen%20and%20%28max%2Dwidth%3A767px%29%7B%2Etable%2Dresponsive%7Bwidth%3A100%25%3Bmargin%2Dbottom%3A15%2E75px%3Boverflow%2Dy%3Ahidden%3B%2Dms%2Doverflow%2Dstyle%3A%2Dms%2Dautohiding%2Dscrollbar%3Bborder%3A1px%20solid%20%23dddddd%7D%2Etable%2Dresponsive%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Etd%7Bwhite%2Dspace%3Anowrap%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%7Bborder%2Dbottom%3A0%7D%7Dfieldset%7Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%3Bmin%2Dwidth%3A0%7Dlegend%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bpadding%3A0%3Bmargin%2Dbottom%3A21px%3Bfont%2Dsize%3A22%2E5px%3Bline%2Dheight%3Ainherit%3Bcolor%3A%23333333%3Bborder%3A0%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7Dlabel%7Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A5px%3Bfont%2Dweight%3Abold%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dinput%5Btype%3D%22radio%22%5D%2Cinput%5Btype%3D%22checkbox%22%5D%7Bmargin%3A4px%200%200%3Bmargin%2Dtop%3A1px%20%5C9%3Bline%2Dheight%3Anormal%7Dinput%5Btype%3D%22file%22%5D%7Bdisplay%3Ablock%7Dinput%5Btype%3D%22range%22%5D%7Bdisplay%3Ablock%3Bwidth%3A100%25%7Dselect%5Bmultiple%5D%2Cselect%5Bsize%5D%7Bheight%3Aauto%7Dinput%5Btype%3D%22file%22%5D%3Afocus%2Cinput%5Btype%3D%22radio%22%5D%3Afocus%2Cinput%5Btype%3D%22checkbox%22%5D%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Doutput%7Bdisplay%3Ablock%3Bpadding%2Dtop%3A11px%3Bfont%2Dsize%3A15px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333333%7D%2Eform%2Dcontrol%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bheight%3A43px%3Bpadding%3A10px%2018px%3Bfont%2Dsize%3A15px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333333%3Bbackground%2Dcolor%3A%23ffffff%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3B%2Dwebkit%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2C%2Dwebkit%2Dbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3B%2Do%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3Btransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%7D%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%2366afe9%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C0%2E6%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C0%2E6%29%7D%2Eform%2Dcontrol%3A%3A%2Dmoz%2Dplaceholder%7Bcolor%3A%23999999%3Bopacity%3A1%7D%2Eform%2Dcontrol%3A%2Dms%2Dinput%2Dplaceholder%7Bcolor%3A%23999999%7D%2Eform%2Dcontrol%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%7Bcolor%3A%23999999%7D%2Eform%2Dcontrol%3A%3A%2Dms%2Dexpand%7Bborder%3A0%3Bbackground%2Dcolor%3Atransparent%7D%2Eform%2Dcontrol%5Bdisabled%5D%2C%2Eform%2Dcontrol%5Breadonly%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bbackground%2Dcolor%3A%23e6e6e6%3Bopacity%3A1%7D%2Eform%2Dcontrol%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bcursor%3Anot%2Dallowed%7Dtextarea%2Eform%2Dcontrol%7Bheight%3Aauto%7Dinput%5Btype%3D%22search%22%5D%7B%2Dwebkit%2Dappearance%3Anone%7D%40media%20screen%20and%20%28%2Dwebkit%2Dmin%2Ddevice%2Dpixel%2Dratio%3A0%29%7Binput%5Btype%3D%22date%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22time%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Eform%2Dcontrol%2Cinput%5Btype%3D%22month%22%5D%2Eform%2Dcontrol%7Bline%2Dheight%3A43px%7Dinput%5Btype%3D%22date%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22time%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Einput%2Dsm%2Cinput%5Btype%3D%22month%22%5D%2Einput%2Dsm%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22date%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22time%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22datetime%2Dlocal%22%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3D%22month%22%5D%7Bline%2Dheight%3A31px%7Dinput%5Btype%3D%22date%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22time%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22datetime%2Dlocal%22%5D%2Einput%2Dlg%2Cinput%5Btype%3D%22month%22%5D%2Einput%2Dlg%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22date%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22time%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22datetime%2Dlocal%22%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3D%22month%22%5D%7Bline%2Dheight%3A64px%7D%7D%2Eform%2Dgroup%7Bmargin%2Dbottom%3A15px%7D%2Eradio%2C%2Echeckbox%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Eradio%20label%2C%2Echeckbox%20label%7Bmin%2Dheight%3A21px%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3Anormal%3Bcursor%3Apointer%7D%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eradio%2Dinline%20input%5Btype%3D%22radio%22%5D%2C%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%2C%2Echeckbox%2Dinline%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Aabsolute%3Bmargin%2Dleft%3A%2D20px%3Bmargin%2Dtop%3A4px%20%5C9%7D%2Eradio%2B%2Eradio%2C%2Echeckbox%2B%2Echeckbox%7Bmargin%2Dtop%3A%2D5px%7D%2Eradio%2Dinline%2C%2Echeckbox%2Dinline%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%3Bfont%2Dweight%3Anormal%3Bcursor%3Apointer%7D%2Eradio%2Dinline%2B%2Eradio%2Dinline%2C%2Echeckbox%2Dinline%2B%2Echeckbox%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dleft%3A10px%7Dinput%5Btype%3D%22radio%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22checkbox%22%5D%5Bdisabled%5D%2Cinput%5Btype%3D%22radio%22%5D%2Edisabled%2Cinput%5Btype%3D%22checkbox%22%5D%2Edisabled%2Cfieldset%5Bdisabled%5D%20input%5Btype%3D%22radio%22%5D%2Cfieldset%5Bdisabled%5D%20input%5Btype%3D%22checkbox%22%5D%7Bcursor%3Anot%2Dallowed%7D%2Eradio%2Dinline%2Edisabled%2C%2Echeckbox%2Dinline%2Edisabled%2Cfieldset%5Bdisabled%5D%20%2Eradio%2Dinline%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%2Dinline%7Bcursor%3Anot%2Dallowed%7D%2Eradio%2Edisabled%20label%2C%2Echeckbox%2Edisabled%20label%2Cfieldset%5Bdisabled%5D%20%2Eradio%20label%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%20label%7Bcursor%3Anot%2Dallowed%7D%2Eform%2Dcontrol%2Dstatic%7Bpadding%2Dtop%3A11px%3Bpadding%2Dbottom%3A11px%3Bmargin%2Dbottom%3A0%3Bmin%2Dheight%3A36px%7D%2Eform%2Dcontrol%2Dstatic%2Einput%2Dlg%2C%2Eform%2Dcontrol%2Dstatic%2Einput%2Dsm%7Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%2Einput%2Dsm%7Bheight%3A31px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A0%7Dselect%2Einput%2Dsm%7Bheight%3A31px%3Bline%2Dheight%3A31px%7Dtextarea%2Einput%2Dsm%2Cselect%5Bmultiple%5D%2Einput%2Dsm%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%7Bheight%3A31px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A0%7D%2Eform%2Dgroup%2Dsm%20select%2Eform%2Dcontrol%7Bheight%3A31px%3Bline%2Dheight%3A31px%7D%2Eform%2Dgroup%2Dsm%20textarea%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dsm%20select%5Bmultiple%5D%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A31px%3Bmin%2Dheight%3A34px%3Bpadding%3A6px%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E5%7D%2Einput%2Dlg%7Bheight%3A64px%3Bpadding%3A18px%2030px%3Bfont%2Dsize%3A19px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A0%7Dselect%2Einput%2Dlg%7Bheight%3A64px%3Bline%2Dheight%3A64px%7Dtextarea%2Einput%2Dlg%2Cselect%5Bmultiple%5D%2Einput%2Dlg%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%7Bheight%3A64px%3Bpadding%3A18px%2030px%3Bfont%2Dsize%3A19px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A0%7D%2Eform%2Dgroup%2Dlg%20select%2Eform%2Dcontrol%7Bheight%3A64px%3Bline%2Dheight%3A64px%7D%2Eform%2Dgroup%2Dlg%20textarea%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dlg%20select%5Bmultiple%5D%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A64px%3Bmin%2Dheight%3A40px%3Bpadding%3A19px%2030px%3Bfont%2Dsize%3A19px%3Bline%2Dheight%3A1%2E3333333%7D%2Ehas%2Dfeedback%7Bposition%3Arelative%7D%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%7Bpadding%2Dright%3A53%2E75px%7D%2Eform%2Dcontrol%2Dfeedback%7Bposition%3Aabsolute%3Btop%3A0%3Bright%3A0%3Bz%2Dindex%3A2%3Bdisplay%3Ablock%3Bwidth%3A43px%3Bheight%3A43px%3Bline%2Dheight%3A43px%3Btext%2Dalign%3Acenter%3Bpointer%2Devents%3Anone%7D%2Einput%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A64px%3Bheight%3A64px%3Bline%2Dheight%3A64px%7D%2Einput%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A31px%3Bheight%3A31px%3Bline%2Dheight%3A31px%7D%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%7Bcolor%3A%23ffffff%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23e6e6e6%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%7D%2Ehas%2Dsuccess%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%233fb618%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ffffff%7D%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%7Bcolor%3A%23ffffff%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23e6e6e6%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%7D%2Ehas%2Dwarning%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff7518%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ffffff%7D%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%7Bcolor%3A%23ffffff%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23e6e6e6%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E075%29%2C0%200%206px%20%23fff%7D%2Ehas%2Derror%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff0039%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ffffff%7D%2Ehas%2Dfeedback%20label%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A26px%7D%2Ehas%2Dfeedback%20label%2Esr%2Donly%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%2Ehelp%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dtop%3A5px%3Bmargin%2Dbottom%3A10px%3Bcolor%3A%23737373%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dinline%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Eform%2Dinline%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bwidth%3Aauto%7D%2Eform%2Dinline%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Eform%2Dinline%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eradio%2C%2Eform%2Dinline%20%2Echeckbox%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eradio%20label%2C%2Eform%2Dinline%20%2Echeckbox%20label%7Bpadding%2Dleft%3A0%7D%2Eform%2Dinline%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Eform%2Dinline%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Eform%2Dinline%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Echeckbox%2C%2Eform%2Dhorizontal%20%2Eradio%2Dinline%2C%2Eform%2Dhorizontal%20%2Echeckbox%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bpadding%2Dtop%3A11px%7D%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Echeckbox%7Bmin%2Dheight%3A32px%7D%2Eform%2Dhorizontal%20%2Eform%2Dgroup%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Econtrol%2Dlabel%7Btext%2Dalign%3Aright%3Bmargin%2Dbottom%3A0%3Bpadding%2Dtop%3A11px%7D%7D%2Eform%2Dhorizontal%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Bright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dlg%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A19px%3Bfont%2Dsize%3A19px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dsm%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A6px%3Bfont%2Dsize%3A13px%7D%7D%2Ebtn%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3Anormal%3Btext%2Dalign%3Acenter%3Bvertical%2Dalign%3Amiddle%3B%2Dms%2Dtouch%2Daction%3Amanipulation%3Btouch%2Daction%3Amanipulation%3Bcursor%3Apointer%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bwhite%2Dspace%3Anowrap%3Bpadding%3A10px%2018px%3Bfont%2Dsize%3A15px%3Bline%2Dheight%3A1%2E42857143%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%7D%2Ebtn%3Afocus%2C%2Ebtn%3Aactive%3Afocus%2C%2Ebtn%2Eactive%3Afocus%2C%2Ebtn%2Efocus%2C%2Ebtn%3Aactive%2Efocus%2C%2Ebtn%2Eactive%2Efocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7D%2Ebtn%3Ahover%2C%2Ebtn%3Afocus%2C%2Ebtn%2Efocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%7D%2Ebtn%3Aactive%2C%2Ebtn%2Eactive%7Boutline%3A0%3Bbackground%2Dimage%3Anone%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%7D%2Ebtn%2Edisabled%2C%2Ebtn%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%7Bcursor%3Anot%2Dallowed%3Bopacity%3A0%2E65%3Bfilter%3Aalpha%28opacity%3D65%29%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Da%2Ebtn%2Edisabled%2Cfieldset%5Bdisabled%5D%20a%2Ebtn%7Bpointer%2Devents%3Anone%7D%2Ebtn%2Ddefault%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23222222%3Bborder%2Dcolor%3A%23222222%7D%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23090909%3Bborder%2Dcolor%3A%23000000%7D%2Ebtn%2Ddefault%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23090909%3Bborder%2Dcolor%3A%23040404%7D%2Ebtn%2Ddefault%3Aactive%2C%2Ebtn%2Ddefault%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23090909%3Bborder%2Dcolor%3A%23040404%7D%2Ebtn%2Ddefault%3Aactive%3Ahover%2C%2Ebtn%2Ddefault%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Ahover%2C%2Ebtn%2Ddefault%3Aactive%3Afocus%2C%2Ebtn%2Ddefault%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%3Aactive%2Efocus%2C%2Ebtn%2Ddefault%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23000000%3Bborder%2Dcolor%3A%23000000%7D%2Ebtn%2Ddefault%3Aactive%2C%2Ebtn%2Ddefault%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddefault%2Edisabled%3Ahover%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Ahover%2C%2Ebtn%2Ddefault%2Edisabled%3Afocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Afocus%2C%2Ebtn%2Ddefault%2Edisabled%2Efocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Efocus%7Bbackground%2Dcolor%3A%23222222%3Bborder%2Dcolor%3A%23222222%7D%2Ebtn%2Ddefault%20%2Ebadge%7Bcolor%3A%23222222%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dprimary%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232780e3%3Bborder%2Dcolor%3A%232780e3%7D%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231967be%3Bborder%2Dcolor%3A%2310427b%7D%2Ebtn%2Dprimary%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231967be%3Bborder%2Dcolor%3A%231862b5%7D%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231967be%3Bborder%2Dcolor%3A%231862b5%7D%2Ebtn%2Dprimary%3Aactive%3Ahover%2C%2Ebtn%2Dprimary%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%3Aactive%3Afocus%2C%2Ebtn%2Dprimary%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%3Aactive%2Efocus%2C%2Ebtn%2Dprimary%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2315569f%3Bborder%2Dcolor%3A%2310427b%7D%2Ebtn%2Dprimary%3Aactive%2C%2Ebtn%2Dprimary%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dprimary%2Edisabled%3Ahover%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Ahover%2C%2Ebtn%2Dprimary%2Edisabled%3Afocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Afocus%2C%2Ebtn%2Dprimary%2Edisabled%2Efocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Efocus%7Bbackground%2Dcolor%3A%232780e3%3Bborder%2Dcolor%3A%232780e3%7D%2Ebtn%2Dprimary%20%2Ebadge%7Bcolor%3A%232780e3%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%233fb618%3Bborder%2Dcolor%3A%233fb618%7D%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232f8912%3Bborder%2Dcolor%3A%23184509%7D%2Ebtn%2Dsuccess%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232f8912%3Bborder%2Dcolor%3A%232c8011%7D%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232f8912%3Bborder%2Dcolor%3A%232c8011%7D%2Ebtn%2Dsuccess%3Aactive%3Ahover%2C%2Ebtn%2Dsuccess%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%3Aactive%3Afocus%2C%2Ebtn%2Dsuccess%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%3Aactive%2Efocus%2C%2Ebtn%2Dsuccess%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%2324690e%3Bborder%2Dcolor%3A%23184509%7D%2Ebtn%2Dsuccess%3Aactive%2C%2Ebtn%2Dsuccess%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dsuccess%2Edisabled%3Ahover%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Ahover%2C%2Ebtn%2Dsuccess%2Edisabled%3Afocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Afocus%2C%2Ebtn%2Dsuccess%2Edisabled%2Efocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Efocus%7Bbackground%2Dcolor%3A%233fb618%3Bborder%2Dcolor%3A%233fb618%7D%2Ebtn%2Dsuccess%20%2Ebadge%7Bcolor%3A%233fb618%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%239954bb%3Bborder%2Dcolor%3A%239954bb%7D%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%237e3f9d%3Bborder%2Dcolor%3A%23522967%7D%2Ebtn%2Dinfo%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%237e3f9d%3Bborder%2Dcolor%3A%23783c96%7D%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%237e3f9d%3Bborder%2Dcolor%3A%23783c96%7D%2Ebtn%2Dinfo%3Aactive%3Ahover%2C%2Ebtn%2Dinfo%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%3Aactive%3Afocus%2C%2Ebtn%2Dinfo%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%3Aactive%2Efocus%2C%2Ebtn%2Dinfo%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%236a3484%3Bborder%2Dcolor%3A%23522967%7D%2Ebtn%2Dinfo%3Aactive%2C%2Ebtn%2Dinfo%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dinfo%2Edisabled%3Ahover%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Ahover%2C%2Ebtn%2Dinfo%2Edisabled%3Afocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Afocus%2C%2Ebtn%2Dinfo%2Edisabled%2Efocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Efocus%7Bbackground%2Dcolor%3A%239954bb%3Bborder%2Dcolor%3A%239954bb%7D%2Ebtn%2Dinfo%20%2Ebadge%7Bcolor%3A%239954bb%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff7518%3Bborder%2Dcolor%3A%23ff7518%7D%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23e45c00%3Bborder%2Dcolor%3A%23983d00%7D%2Ebtn%2Dwarning%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23e45c00%3Bborder%2Dcolor%3A%23da5800%7D%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23e45c00%3Bborder%2Dcolor%3A%23da5800%7D%2Ebtn%2Dwarning%3Aactive%3Ahover%2C%2Ebtn%2Dwarning%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%3Aactive%3Afocus%2C%2Ebtn%2Dwarning%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%3Aactive%2Efocus%2C%2Ebtn%2Dwarning%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23c04d00%3Bborder%2Dcolor%3A%23983d00%7D%2Ebtn%2Dwarning%3Aactive%2C%2Ebtn%2Dwarning%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dwarning%2Edisabled%3Ahover%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Ahover%2C%2Ebtn%2Dwarning%2Edisabled%3Afocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Afocus%2C%2Ebtn%2Dwarning%2Edisabled%2Efocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Efocus%7Bbackground%2Dcolor%3A%23ff7518%3Bborder%2Dcolor%3A%23ff7518%7D%2Ebtn%2Dwarning%20%2Ebadge%7Bcolor%3A%23ff7518%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff0039%3Bborder%2Dcolor%3A%23ff0039%7D%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23cc002e%3Bborder%2Dcolor%3A%2380001c%7D%2Ebtn%2Ddanger%3Ahover%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23cc002e%3Bborder%2Dcolor%3A%23c2002b%7D%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23cc002e%3Bborder%2Dcolor%3A%23c2002b%7D%2Ebtn%2Ddanger%3Aactive%3Ahover%2C%2Ebtn%2Ddanger%2Eactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%3Aactive%3Afocus%2C%2Ebtn%2Ddanger%2Eactive%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%3Aactive%2Efocus%2C%2Ebtn%2Ddanger%2Eactive%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%2Efocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23a80026%3Bborder%2Dcolor%3A%2380001c%7D%2Ebtn%2Ddanger%3Aactive%2C%2Ebtn%2Ddanger%2Eactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddanger%2Edisabled%3Ahover%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Ahover%2C%2Ebtn%2Ddanger%2Edisabled%3Afocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Afocus%2C%2Ebtn%2Ddanger%2Edisabled%2Efocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Efocus%7Bbackground%2Dcolor%3A%23ff0039%3Bborder%2Dcolor%3A%23ff0039%7D%2Ebtn%2Ddanger%20%2Ebadge%7Bcolor%3A%23ff0039%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ebtn%2Dlink%7Bcolor%3A%232780e3%3Bfont%2Dweight%3Anormal%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%2Eactive%2C%2Ebtn%2Dlink%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%7Bbackground%2Dcolor%3Atransparent%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%3Afocus%2C%2Ebtn%2Dlink%3Aactive%7Bborder%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23165ba8%3Btext%2Ddecoration%3Aunderline%3Bbackground%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Ahover%2C%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23999999%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Dlg%2C%2Ebtn%2Dgroup%2Dlg%3E%2Ebtn%7Bpadding%3A18px%2030px%3Bfont%2Dsize%3A19px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dsm%2C%2Ebtn%2Dgroup%2Dsm%3E%2Ebtn%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dxs%2C%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%7Bpadding%3A1px%205px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dblock%7Bdisplay%3Ablock%3Bwidth%3A100%25%7D%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dtop%3A5px%7Dinput%5Btype%3D%22submit%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22reset%22%5D%2Ebtn%2Dblock%2Cinput%5Btype%3D%22button%22%5D%2Ebtn%2Dblock%7Bwidth%3A100%25%7D%2Efade%7Bopacity%3A0%3B%2Dwebkit%2Dtransition%3Aopacity%200%2E15s%20linear%3B%2Do%2Dtransition%3Aopacity%200%2E15s%20linear%3Btransition%3Aopacity%200%2E15s%20linear%7D%2Efade%2Ein%7Bopacity%3A1%7D%2Ecollapse%7Bdisplay%3Anone%7D%2Ecollapse%2Ein%7Bdisplay%3Ablock%7Dtr%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%7Dtbody%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%2Dgroup%7D%2Ecollapsing%7Bposition%3Arelative%3Bheight%3A0%3Boverflow%3Ahidden%3B%2Dwebkit%2Dtransition%2Dproperty%3Aheight%2C%20visibility%3B%2Do%2Dtransition%2Dproperty%3Aheight%2C%20visibility%3Btransition%2Dproperty%3Aheight%2C%20visibility%3B%2Dwebkit%2Dtransition%2Dduration%3A0%2E35s%3B%2Do%2Dtransition%2Dduration%3A0%2E35s%3Btransition%2Dduration%3A0%2E35s%3B%2Dwebkit%2Dtransition%2Dtiming%2Dfunction%3Aease%3B%2Do%2Dtransition%2Dtiming%2Dfunction%3Aease%3Btransition%2Dtiming%2Dfunction%3Aease%7D%2Ecaret%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A0%3Bheight%3A0%3Bmargin%2Dleft%3A2px%3Bvertical%2Dalign%3Amiddle%3Bborder%2Dtop%3A4px%20dashed%3Bborder%2Dtop%3A4px%20solid%20%5C9%3Bborder%2Dright%3A4px%20solid%20transparent%3Bborder%2Dleft%3A4px%20solid%20transparent%7D%2Edropup%2C%2Edropdown%7Bposition%3Arelative%7D%2Edropdown%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Edropdown%2Dmenu%7Bposition%3Aabsolute%3Btop%3A100%25%3Bleft%3A0%3Bz%2Dindex%3A1000%3Bdisplay%3Anone%3Bfloat%3Aleft%3Bmin%2Dwidth%3A160px%3Bpadding%3A5px%200%3Bmargin%3A2px%200%200%3Blist%2Dstyle%3Anone%3Bfont%2Dsize%3A15px%3Btext%2Dalign%3Aleft%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E15%29%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C0%2E175%29%3Bbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C0%2E175%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%7D%2Edropdown%2Dmenu%2Epull%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%20%2Edivider%7Bheight%3A1px%3Bmargin%3A9%2E5px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Edropdown%2Dmenu%3Eli%3Ea%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bclear%3Aboth%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333333%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232780e3%7D%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Boutline%3A0%3Bbackground%2Dcolor%3A%232780e3%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23999999%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%3Bcursor%3Anot%2Dallowed%7D%2Eopen%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Eopen%3Ea%7Boutline%3A0%7D%2Edropdown%2Dmenu%2Dright%7Bleft%3Aauto%3Bright%3A0%7D%2Edropdown%2Dmenu%2Dleft%7Bleft%3A0%3Bright%3Aauto%7D%2Edropdown%2Dheader%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23999999%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dbackdrop%7Bposition%3Afixed%3Bleft%3A0%3Bright%3A0%3Bbottom%3A0%3Btop%3A0%3Bz%2Dindex%3A990%7D%2Epull%2Dright%3E%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Edropup%20%2Ecaret%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Ecaret%7Bborder%2Dtop%3A0%3Bborder%2Dbottom%3A4px%20dashed%3Bborder%2Dbottom%3A4px%20solid%20%5C9%3Bcontent%3A%22%22%7D%2Edropup%20%2Edropdown%2Dmenu%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bbottom%3A100%25%3Bmargin%2Dbottom%3A2px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dright%20%2Edropdown%2Dmenu%7Bleft%3Aauto%3Bright%3A0%7D%2Enavbar%2Dright%20%2Edropdown%2Dmenu%2Dleft%7Bleft%3A0%3Bright%3Aauto%7D%7D%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Amiddle%7D%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%7Bposition%3Arelative%3Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Eactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Eactive%7Bz%2Dindex%3A2%7D%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A%2D1px%7D%2Ebtn%2Dtoolbar%7Bmargin%2Dleft%3A%2D5px%7D%2Ebtn%2Dtoolbar%20%2Ebtn%2C%2Ebtn%2Dtoolbar%20%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%20%2Einput%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dtoolbar%3E%2Ebtn%2C%2Ebtn%2Dtoolbar%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%3E%2Einput%2Dgroup%7Bmargin%2Dleft%3A5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%2C%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%20%2Edropdown%2Dtoggle%3Aactive%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7Boutline%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2B%2Edropdown%2Dtoggle%7Bpadding%2Dleft%3A8px%3Bpadding%2Dright%3A8px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dlg%2B%2Edropdown%2Dtoggle%7Bpadding%2Dleft%3A12px%3Bpadding%2Dright%3A12px%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C0%2E125%29%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dlink%7B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%20%2Ecaret%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Edropup%20%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A0%205px%205px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bfloat%3Anone%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dtop%3A%2D1px%3Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Djustified%7Bdisplay%3Atable%3Bwidth%3A100%25%3Btable%2Dlayout%3Afixed%3Bborder%2Dcollapse%3Aseparate%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%7Bfloat%3Anone%3Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Ebtn%7Bwidth%3A100%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Edropdown%2Dmenu%7Bleft%3Aauto%7D%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%20input%5Btype%3D%22radio%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3D%22radio%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%20input%5Btype%3D%22checkbox%22%5D%2C%5Bdata%2Dtoggle%3D%22buttons%22%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Aabsolute%3Bclip%3Arect%280%2C%200%2C%200%2C%200%29%3Bpointer%2Devents%3Anone%7D%2Einput%2Dgroup%7Bposition%3Arelative%3Bdisplay%3Atable%3Bborder%2Dcollapse%3Aseparate%7D%2Einput%2Dgroup%5Bclass%2A%3D%22col%2D%22%5D%7Bfloat%3Anone%3Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bposition%3Arelative%3Bz%2Dindex%3A2%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmargin%2Dbottom%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afocus%7Bz%2Dindex%3A3%7D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A64px%3Bpadding%3A18px%2030px%3Bfont%2Dsize%3A19px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A0%7Dselect%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A64px%3Bline%2Dheight%3A64px%7Dtextarea%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A31px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A0%7Dselect%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A31px%3Bline%2Dheight%3A31px%7Dtextarea%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%2C%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bdisplay%3Atable%2Dcell%7D%2Einput%2Dgroup%2Daddon%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%7Bwidth%3A1%25%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%7D%2Einput%2Dgroup%2Daddon%7Bpadding%3A10px%2018px%3Bfont%2Dsize%3A15px%3Bfont%2Dweight%3Anormal%3Bline%2Dheight%3A1%3Bcolor%3A%23333333%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dsm%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A13px%3Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dlg%7Bpadding%3A18px%2030px%3Bfont%2Dsize%3A19px%3Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%20input%5Btype%3D%22radio%22%5D%2C%2Einput%2Dgroup%2Daddon%20input%5Btype%3D%22checkbox%22%5D%7Bmargin%2Dtop%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%7Bborder%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Alast%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%7Bborder%2Dleft%3A0%7D%2Einput%2Dgroup%2Dbtn%7Bposition%3Arelative%3Bfont%2Dsize%3A0%3Bwhite%2Dspace%3Anowrap%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bposition%3Arelative%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Ahover%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Afocus%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Aactive%7Bz%2Dindex%3A2%7D%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%7Bmargin%2Dright%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%7Bz%2Dindex%3A2%3Bmargin%2Dleft%3A%2D1px%7D%2Enav%7Bmargin%2Dbottom%3A0%3Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Enav%3Eli%7Bposition%3Arelative%3Bdisplay%3Ablock%7D%2Enav%3Eli%3Ea%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%7D%2Enav%3Eli%3Ea%3Ahover%2C%2Enav%3Eli%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23e6e6e6%7D%2Enav%3Eli%2Edisabled%3Ea%7Bcolor%3A%23999999%7D%2Enav%3Eli%2Edisabled%3Ea%3Ahover%2C%2Enav%3Eli%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23999999%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bcursor%3Anot%2Dallowed%7D%2Enav%20%2Eopen%3Ea%2C%2Enav%20%2Eopen%3Ea%3Ahover%2C%2Enav%20%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%232780e3%7D%2Enav%20%2Enav%2Ddivider%7Bheight%3A1px%3Bmargin%3A9%2E5px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Enav%3Eli%3Ea%3Eimg%7Bmax%2Dwidth%3Anone%7D%2Enav%2Dtabs%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%7D%2Enav%2Dtabs%3Eli%7Bfloat%3Aleft%3Bmargin%2Dbottom%3A%2D1px%7D%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dright%3A2px%3Bline%2Dheight%3A1%2E42857143%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A0%200%200%200%7D%2Enav%2Dtabs%3Eli%3Ea%3Ahover%7Bborder%2Dcolor%3A%23e6e6e6%20%23e6e6e6%20%23dddddd%7D%2Enav%2Dtabs%3Eli%2Eactive%3Ea%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Afocus%7Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dbottom%2Dcolor%3Atransparent%3Bcursor%3Adefault%7D%2Enav%2Dtabs%2Enav%2Djustified%7Bwidth%3A100%25%3Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Btext%2Dalign%3Acenter%3Bmargin%2Dbottom%3A5px%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A0%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%3A1px%20solid%20%23dddddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A0%200%200%200%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%2Dbottom%2Dcolor%3A%23ffffff%7D%7D%2Enav%2Dpills%3Eli%7Bfloat%3Aleft%7D%2Enav%2Dpills%3Eli%3Ea%7Bborder%2Dradius%3A0%7D%2Enav%2Dpills%3Eli%2Bli%7Bmargin%2Dleft%3A2px%7D%2Enav%2Dpills%3Eli%2Eactive%3Ea%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Ahover%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232780e3%7D%2Enav%2Dstacked%3Eli%7Bfloat%3Anone%7D%2Enav%2Dstacked%3Eli%2Bli%7Bmargin%2Dtop%3A2px%3Bmargin%2Dleft%3A0%7D%2Enav%2Djustified%7Bwidth%3A100%25%7D%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Djustified%3Eli%3Ea%7Btext%2Dalign%3Acenter%3Bmargin%2Dbottom%3A5px%7D%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Djustified%7Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A0%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%3A1px%20solid%20%23dddddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A0%200%200%200%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%7Bborder%2Dbottom%2Dcolor%3A%23ffffff%7D%7D%2Etab%2Dcontent%3E%2Etab%2Dpane%7Bdisplay%3Anone%7D%2Etab%2Dcontent%3E%2Eactive%7Bdisplay%3Ablock%7D%2Enav%2Dtabs%20%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A%2D1px%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Enavbar%7Bposition%3Arelative%3Bmin%2Dheight%3A50px%3Bmargin%2Dbottom%3A21px%3Bborder%3A1px%20solid%20transparent%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%7Bborder%2Dradius%3A0%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dheader%7Bfloat%3Aleft%7D%7D%2Enavbar%2Dcollapse%7Boverflow%2Dx%3Avisible%3Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bborder%2Dtop%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dcollapse%7Bwidth%3Aauto%3Bborder%2Dtop%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dcollapse%2Ecollapse%7Bdisplay%3Ablock%20%21important%3Bheight%3Aauto%20%21important%3Bpadding%2Dbottom%3A0%3Boverflow%3Avisible%20%21important%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Avisible%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bpadding%2Dleft%3A0%3Bpadding%2Dright%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A340px%7D%40media%20%28max%2Ddevice%2Dwidth%3A480px%29%20and%20%28orientation%3Alandscape%29%7B%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A200px%7D%7D%2Econtainer%3E%2Enavbar%2Dheader%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%3E%2Enavbar%2Dheader%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%7Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%7D%7D%2Enavbar%2Dstatic%2Dtop%7Bz%2Dindex%3A1000%3Bborder%2Dwidth%3A0%200%201px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dstatic%2Dtop%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bposition%3Afixed%3Bright%3A0%3Bleft%3A0%3Bz%2Dindex%3A1030%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dfixed%2Dtop%2C%2Enavbar%2Dfixed%2Dbottom%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%7Btop%3A0%3Bborder%2Dwidth%3A0%200%201px%7D%2Enavbar%2Dfixed%2Dbottom%7Bbottom%3A0%3Bmargin%2Dbottom%3A0%3Bborder%2Dwidth%3A1px%200%200%7D%2Enavbar%2Dbrand%7Bfloat%3Aleft%3Bpadding%3A14%2E5px%2015px%3Bfont%2Dsize%3A19px%3Bline%2Dheight%3A21px%3Bheight%3A50px%7D%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Dbrand%3Afocus%7Btext%2Ddecoration%3Anone%7D%2Enavbar%2Dbrand%3Eimg%7Bdisplay%3Ablock%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%3E%2Econtainer%20%2Enavbar%2Dbrand%2C%2Enavbar%3E%2Econtainer%2Dfluid%20%2Enavbar%2Dbrand%7Bmargin%2Dleft%3A%2D15px%7D%7D%2Enavbar%2Dtoggle%7Bposition%3Arelative%3Bfloat%3Aright%3Bmargin%2Dright%3A15px%3Bpadding%3A9px%2010px%3Bmargin%2Dtop%3A8px%3Bmargin%2Dbottom%3A8px%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A0%7D%2Enavbar%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bdisplay%3Ablock%3Bwidth%3A22px%3Bheight%3A2px%3Bborder%2Dradius%3A1px%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%2B%2Eicon%2Dbar%7Bmargin%2Dtop%3A4px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtoggle%7Bdisplay%3Anone%7D%7D%2Enavbar%2Dnav%7Bmargin%3A7%2E25px%20%2D15px%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A10px%3Bpadding%2Dbottom%3A10px%3Bline%2Dheight%3A21px%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%7Bposition%3Astatic%3Bfloat%3Anone%3Bwidth%3Aauto%3Bmargin%2Dtop%3A0%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edropdown%2Dheader%7Bpadding%3A5px%2015px%205px%2025px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bline%2Dheight%3A21px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bbackground%2Dimage%3Anone%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dnav%7Bfloat%3Aleft%3Bmargin%3A0%7D%2Enavbar%2Dnav%3Eli%7Bfloat%3Aleft%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A14%2E5px%3Bpadding%2Dbottom%3A14%2E5px%7D%7D%2Enavbar%2Dform%7Bmargin%2Dleft%3A%2D15px%3Bmargin%2Dright%3A%2D15px%3Bpadding%3A10px%2015px%3Bborder%2Dtop%3A1px%20solid%20transparent%3Bborder%2Dbottom%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C0%2E1%29%3Bmargin%2Dtop%3A3%2E5px%3Bmargin%2Dbottom%3A3%2E5px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bwidth%3Aauto%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Enavbar%2Dform%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eradio%2C%2Enavbar%2Dform%20%2Echeckbox%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eradio%20label%2C%2Enavbar%2Dform%20%2Echeckbox%20label%7Bpadding%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Eradio%20input%5Btype%3D%22radio%22%5D%2C%2Enavbar%2Dform%20%2Echeckbox%20input%5Btype%3D%22checkbox%22%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bmargin%2Dbottom%3A5px%7D%2Enavbar%2Dform%20%2Eform%2Dgroup%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%7Bwidth%3Aauto%3Bborder%3A0%3Bmargin%2Dleft%3A0%3Bmargin%2Dright%3A0%3Bpadding%2Dtop%3A0%3Bpadding%2Dbottom%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%7D%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dbottom%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dbtn%7Bmargin%2Dtop%3A3%2E5px%3Bmargin%2Dbottom%3A3%2E5px%7D%2Enavbar%2Dbtn%2Ebtn%2Dsm%7Bmargin%2Dtop%3A9%2E5px%3Bmargin%2Dbottom%3A9%2E5px%7D%2Enavbar%2Dbtn%2Ebtn%2Dxs%7Bmargin%2Dtop%3A14px%3Bmargin%2Dbottom%3A14px%7D%2Enavbar%2Dtext%7Bmargin%2Dtop%3A14%2E5px%3Bmargin%2Dbottom%3A14%2E5px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtext%7Bfloat%3Aleft%3Bmargin%2Dleft%3A15px%3Bmargin%2Dright%3A15px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dleft%7Bfloat%3Aleft%20%21important%7D%2Enavbar%2Dright%7Bfloat%3Aright%20%21important%3Bmargin%2Dright%3A%2D15px%7D%2Enavbar%2Dright%7E%2Enavbar%2Dright%7Bmargin%2Dright%3A0%7D%7D%2Enavbar%2Ddefault%7Bbackground%2Dcolor%3A%23222222%3Bborder%2Dcolor%3A%23121212%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Anone%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtext%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23090909%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23090909%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23cccccc%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Afocus%7Bbackground%2Dcolor%3A%23090909%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23121212%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3A%23090909%3Bcolor%3A%23ffffff%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23090909%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23090909%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23cccccc%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23ffffff%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23cccccc%7D%2Enavbar%2Dinverse%7Bbackground%2Dcolor%3A%232780e3%3Bborder%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Anone%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtext%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Afocus%7Bbackground%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%231a6ecc%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%7Bbackground%2Dcolor%3A%231967be%3Bcolor%3A%23ffffff%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edropdown%2Dheader%7Bborder%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edivider%7Bbackground%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%231967be%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23ffffff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%7Bcolor%3A%23ffffff%7D%2Ebreadcrumb%7Bpadding%3A8px%2015px%3Bmargin%2Dbottom%3A21px%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dradius%3A0%7D%2Ebreadcrumb%3Eli%7Bdisplay%3Ainline%2Dblock%7D%2Ebreadcrumb%3Eli%2Bli%3Abefore%7Bcontent%3A%22%2F%5C00a0%22%3Bpadding%3A0%205px%3Bcolor%3A%23cccccc%7D%2Ebreadcrumb%3E%2Eactive%7Bcolor%3A%23999999%7D%2Epagination%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A0%3Bmargin%3A21px%200%3Bborder%2Dradius%3A0%7D%2Epagination%3Eli%7Bdisplay%3Ainline%7D%2Epagination%3Eli%3Ea%2C%2Epagination%3Eli%3Espan%7Bposition%3Arelative%3Bfloat%3Aleft%3Bpadding%3A10px%2018px%3Bline%2Dheight%3A1%2E42857143%3Btext%2Ddecoration%3Anone%3Bcolor%3A%232780e3%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%3Bmargin%2Dleft%3A%2D1px%7D%2Epagination%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%3Eli%3Afirst%2Dchild%3Espan%7Bmargin%2Dleft%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Epagination%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Epagination%3Eli%3Ea%3Ahover%2C%2Epagination%3Eli%3Espan%3Ahover%2C%2Epagination%3Eli%3Ea%3Afocus%2C%2Epagination%3Eli%3Espan%3Afocus%7Bz%2Dindex%3A2%3Bcolor%3A%23165ba8%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%23dddddd%7D%2Epagination%3E%2Eactive%3Ea%2C%2Epagination%3E%2Eactive%3Espan%2C%2Epagination%3E%2Eactive%3Ea%3Ahover%2C%2Epagination%3E%2Eactive%3Espan%3Ahover%2C%2Epagination%3E%2Eactive%3Ea%3Afocus%2C%2Epagination%3E%2Eactive%3Espan%3Afocus%7Bz%2Dindex%3A3%3Bcolor%3A%23999999%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dcolor%3A%23dddddd%3Bcursor%3Adefault%7D%2Epagination%3E%2Edisabled%3Espan%2C%2Epagination%3E%2Edisabled%3Espan%3Ahover%2C%2Epagination%3E%2Edisabled%3Espan%3Afocus%2C%2Epagination%3E%2Edisabled%3Ea%2C%2Epagination%3E%2Edisabled%3Ea%3Ahover%2C%2Epagination%3E%2Edisabled%3Ea%3Afocus%7Bcolor%3A%23999999%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23dddddd%3Bcursor%3Anot%2Dallowed%7D%2Epagination%2Dlg%3Eli%3Ea%2C%2Epagination%2Dlg%3Eli%3Espan%7Bpadding%3A18px%2030px%3Bfont%2Dsize%3A19px%3Bline%2Dheight%3A1%2E3333333%7D%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Epagination%2Dsm%3Eli%3Ea%2C%2Epagination%2Dsm%3Eli%3Espan%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E5%7D%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dbottom%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Epager%7Bpadding%2Dleft%3A0%3Bmargin%3A21px%200%3Blist%2Dstyle%3Anone%3Btext%2Dalign%3Acenter%7D%2Epager%20li%7Bdisplay%3Ainline%7D%2Epager%20li%3Ea%2C%2Epager%20li%3Espan%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A5px%2014px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A0%7D%2Epager%20li%3Ea%3Ahover%2C%2Epager%20li%3Ea%3Afocus%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23e6e6e6%7D%2Epager%20%2Enext%3Ea%2C%2Epager%20%2Enext%3Espan%7Bfloat%3Aright%7D%2Epager%20%2Eprevious%3Ea%2C%2Epager%20%2Eprevious%3Espan%7Bfloat%3Aleft%7D%2Epager%20%2Edisabled%3Ea%2C%2Epager%20%2Edisabled%3Ea%3Ahover%2C%2Epager%20%2Edisabled%3Ea%3Afocus%2C%2Epager%20%2Edisabled%3Espan%7Bcolor%3A%23999999%3Bbackground%2Dcolor%3A%23ffffff%3Bcursor%3Anot%2Dallowed%7D%2Elabel%7Bdisplay%3Ainline%3Bpadding%3A%2E2em%20%2E6em%20%2E3em%3Bfont%2Dsize%3A75%25%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A1%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Abaseline%3Bborder%2Dradius%3A%2E25em%7Da%2Elabel%3Ahover%2Ca%2Elabel%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elabel%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Elabel%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Elabel%2Ddefault%7Bbackground%2Dcolor%3A%23222222%7D%2Elabel%2Ddefault%5Bhref%5D%3Ahover%2C%2Elabel%2Ddefault%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23090909%7D%2Elabel%2Dprimary%7Bbackground%2Dcolor%3A%232780e3%7D%2Elabel%2Dprimary%5Bhref%5D%3Ahover%2C%2Elabel%2Dprimary%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%231967be%7D%2Elabel%2Dsuccess%7Bbackground%2Dcolor%3A%233fb618%7D%2Elabel%2Dsuccess%5Bhref%5D%3Ahover%2C%2Elabel%2Dsuccess%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%232f8912%7D%2Elabel%2Dinfo%7Bbackground%2Dcolor%3A%239954bb%7D%2Elabel%2Dinfo%5Bhref%5D%3Ahover%2C%2Elabel%2Dinfo%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%237e3f9d%7D%2Elabel%2Dwarning%7Bbackground%2Dcolor%3A%23ff7518%7D%2Elabel%2Dwarning%5Bhref%5D%3Ahover%2C%2Elabel%2Dwarning%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23e45c00%7D%2Elabel%2Ddanger%7Bbackground%2Dcolor%3A%23ff0039%7D%2Elabel%2Ddanger%5Bhref%5D%3Ahover%2C%2Elabel%2Ddanger%5Bhref%5D%3Afocus%7Bbackground%2Dcolor%3A%23cc002e%7D%2Ebadge%7Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A10px%3Bpadding%3A3px%207px%3Bfont%2Dsize%3A13px%3Bfont%2Dweight%3Abold%3Bcolor%3A%23ffffff%3Bline%2Dheight%3A1%3Bvertical%2Dalign%3Amiddle%3Bwhite%2Dspace%3Anowrap%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%232780e3%3Bborder%2Dradius%3A10px%7D%2Ebadge%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Ebadge%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Ebtn%2Dxs%20%2Ebadge%2C%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%20%2Ebadge%7Btop%3A0%3Bpadding%3A1px%205px%7Da%2Ebadge%3Ahover%2Ca%2Ebadge%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elist%2Dgroup%2Ditem%2Eactive%3E%2Ebadge%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3E%2Ebadge%7Bcolor%3A%232780e3%3Bbackground%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%7Bfloat%3Aright%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%2B%2Ebadge%7Bmargin%2Dright%3A5px%7D%2Enav%2Dpills%3Eli%3Ea%3E%2Ebadge%7Bmargin%2Dleft%3A3px%7D%2Ejumbotron%7Bpadding%2Dtop%3A30px%3Bpadding%2Dbottom%3A30px%3Bmargin%2Dbottom%3A30px%3Bcolor%3Ainherit%3Bbackground%2Dcolor%3A%23e6e6e6%7D%2Ejumbotron%20h1%2C%2Ejumbotron%20%2Eh1%7Bcolor%3Ainherit%7D%2Ejumbotron%20p%7Bmargin%2Dbottom%3A15px%3Bfont%2Dsize%3A23px%3Bfont%2Dweight%3A200%7D%2Ejumbotron%3Ehr%7Bborder%2Dtop%2Dcolor%3A%23cccccc%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bborder%2Dradius%3A0%3Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Ejumbotron%20%2Econtainer%7Bmax%2Dwidth%3A100%25%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ejumbotron%7Bpadding%2Dtop%3A48px%3Bpadding%2Dbottom%3A48px%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bpadding%2Dleft%3A60px%3Bpadding%2Dright%3A60px%7D%2Ejumbotron%20h1%2C%2Ejumbotron%20%2Eh1%7Bfont%2Dsize%3A68px%7D%7D%2Ethumbnail%7Bdisplay%3Ablock%3Bpadding%3A4px%3Bmargin%2Dbottom%3A21px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aborder%20%2E2s%20ease%2Din%2Dout%7D%2Ethumbnail%3Eimg%2C%2Ethumbnail%20a%3Eimg%7Bmargin%2Dleft%3Aauto%3Bmargin%2Dright%3Aauto%7Da%2Ethumbnail%3Ahover%2Ca%2Ethumbnail%3Afocus%2Ca%2Ethumbnail%2Eactive%7Bborder%2Dcolor%3A%232780e3%7D%2Ethumbnail%20%2Ecaption%7Bpadding%3A9px%3Bcolor%3A%23333333%7D%2Ealert%7Bpadding%3A15px%3Bmargin%2Dbottom%3A21px%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A0%7D%2Ealert%20h4%7Bmargin%2Dtop%3A0%3Bcolor%3Ainherit%7D%2Ealert%20%2Ealert%2Dlink%7Bfont%2Dweight%3Abold%7D%2Ealert%3Ep%2C%2Ealert%3Eul%7Bmargin%2Dbottom%3A0%7D%2Ealert%3Ep%2Bp%7Bmargin%2Dtop%3A5px%7D%2Ealert%2Ddismissable%2C%2Ealert%2Ddismissible%7Bpadding%2Dright%3A35px%7D%2Ealert%2Ddismissable%20%2Eclose%2C%2Ealert%2Ddismissible%20%2Eclose%7Bposition%3Arelative%3Btop%3A%2D2px%3Bright%3A%2D21px%3Bcolor%3Ainherit%7D%2Ealert%2Dsuccess%7Bbackground%2Dcolor%3A%233fb618%3Bborder%2Dcolor%3A%234e9f15%3Bcolor%3A%23ffffff%7D%2Ealert%2Dsuccess%20hr%7Bborder%2Dtop%2Dcolor%3A%23438912%7D%2Ealert%2Dsuccess%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%2Ealert%2Dinfo%7Bbackground%2Dcolor%3A%239954bb%3Bborder%2Dcolor%3A%237643a8%3Bcolor%3A%23ffffff%7D%2Ealert%2Dinfo%20hr%7Bborder%2Dtop%2Dcolor%3A%23693c96%7D%2Ealert%2Dinfo%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%2Ealert%2Dwarning%7Bbackground%2Dcolor%3A%23ff7518%3Bborder%2Dcolor%3A%23ff4309%3Bcolor%3A%23ffffff%7D%2Ealert%2Dwarning%20hr%7Bborder%2Dtop%2Dcolor%3A%23ee3800%7D%2Ealert%2Dwarning%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%2Ealert%2Ddanger%7Bbackground%2Dcolor%3A%23ff0039%3Bborder%2Dcolor%3A%23f0005e%3Bcolor%3A%23ffffff%7D%2Ealert%2Ddanger%20hr%7Bborder%2Dtop%2Dcolor%3A%23d60054%7D%2Ealert%2Ddanger%20%2Ealert%2Dlink%7Bcolor%3A%23e6e6e6%7D%40%2Dwebkit%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Do%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40keyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%2Eprogress%7Boverflow%3Ahidden%3Bheight%3A21px%3Bmargin%2Dbottom%3A21px%3Bbackground%2Dcolor%3A%23cccccc%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C0%2E1%29%7D%2Eprogress%2Dbar%7Bfloat%3Aleft%3Bwidth%3A0%25%3Bheight%3A100%25%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A21px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%232780e3%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C0%2E15%29%3B%2Dwebkit%2Dtransition%3Awidth%200%2E6s%20ease%3B%2Do%2Dtransition%3Awidth%200%2E6s%20ease%3Btransition%3Awidth%200%2E6s%20ease%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2C%2Eprogress%2Dbar%2Dstriped%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3B%2Dwebkit%2Dbackground%2Dsize%3A40px%2040px%3Bbackground%2Dsize%3A40px%2040px%7D%2Eprogress%2Eactive%20%2Eprogress%2Dbar%2C%2Eprogress%2Dbar%2Eactive%7B%2Dwebkit%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Do%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3Banimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%7D%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dcolor%3A%233fb618%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dcolor%3A%239954bb%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dcolor%3A%23ff7518%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dcolor%3A%23ff0039%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2025%25%2C%20transparent%2025%25%2C%20transparent%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2050%25%2C%20rgba%28255%2C255%2C255%2C0%2E15%29%2075%25%2C%20transparent%2075%25%2C%20transparent%29%7D%2Emedia%7Bmargin%2Dtop%3A15px%7D%2Emedia%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emedia%2C%2Emedia%2Dbody%7Bzoom%3A1%3Boverflow%3Ahidden%7D%2Emedia%2Dbody%7Bwidth%3A10000px%7D%2Emedia%2Dobject%7Bdisplay%3Ablock%7D%2Emedia%2Dobject%2Eimg%2Dthumbnail%7Bmax%2Dwidth%3Anone%7D%2Emedia%2Dright%2C%2Emedia%3E%2Epull%2Dright%7Bpadding%2Dleft%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%3E%2Epull%2Dleft%7Bpadding%2Dright%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%2Dright%2C%2Emedia%2Dbody%7Bdisplay%3Atable%2Dcell%3Bvertical%2Dalign%3Atop%7D%2Emedia%2Dmiddle%7Bvertical%2Dalign%3Amiddle%7D%2Emedia%2Dbottom%7Bvertical%2Dalign%3Abottom%7D%2Emedia%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Emedia%2Dlist%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dgroup%7Bmargin%2Dbottom%3A20px%3Bpadding%2Dleft%3A0%7D%2Elist%2Dgroup%2Ditem%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%3Bmargin%2Dbottom%3A%2D1px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23dddddd%7D%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7Da%2Elist%2Dgroup%2Ditem%2Cbutton%2Elist%2Dgroup%2Ditem%7Bcolor%3A%23555555%7Da%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3A%23333333%7Da%2Elist%2Dgroup%2Ditem%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%3Afocus%7Btext%2Ddecoration%3Anone%3Bcolor%3A%23555555%3Bbackground%2Dcolor%3A%23f5f5f5%7Dbutton%2Elist%2Dgroup%2Ditem%7Bwidth%3A100%25%3Btext%2Dalign%3Aleft%7D%2Elist%2Dgroup%2Ditem%2Edisabled%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%7Bbackground%2Dcolor%3A%23e6e6e6%3Bcolor%3A%23999999%3Bcursor%3Anot%2Dallowed%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23999999%7D%2Elist%2Dgroup%2Ditem%2Eactive%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%7Bz%2Dindex%3A2%3Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232780e3%3Bborder%2Dcolor%3A%23dddddd%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23dceafa%7D%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%233fb618%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23379f15%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%239954bb%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%238d46b0%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff7518%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23fe6600%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff0039%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23ffffff%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23e60033%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%2Dcolor%3A%23ffffff%7D%2Elist%2Dgroup%2Ditem%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Elist%2Dgroup%2Ditem%2Dtext%7Bmargin%2Dbottom%3A0%3Bline%2Dheight%3A1%2E3%7D%2Epanel%7Bmargin%2Dbottom%3A21px%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Epanel%2Dbody%7Bpadding%3A15px%7D%2Epanel%2Dheading%7Bpadding%3A10px%2015px%3Bborder%2Dbottom%3A1px%20solid%20transparent%3Bborder%2Dtop%2Dright%2Dradius%3A%2D1%3Bborder%2Dtop%2Dleft%2Dradius%3A%2D1%7D%2Epanel%2Dheading%3E%2Edropdown%20%2Edropdown%2Dtoggle%7Bcolor%3Ainherit%7D%2Epanel%2Dtitle%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A17px%3Bcolor%3Ainherit%7D%2Epanel%2Dtitle%3Ea%2C%2Epanel%2Dtitle%3Esmall%2C%2Epanel%2Dtitle%3E%2Esmall%2C%2Epanel%2Dtitle%3Esmall%3Ea%2C%2Epanel%2Dtitle%3E%2Esmall%3Ea%7Bcolor%3Ainherit%7D%2Epanel%2Dfooter%7Bpadding%3A10px%2015px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dtop%3A1px%20solid%20%23dddddd%3Bborder%2Dbottom%2Dright%2Dradius%3A%2D1%3Bborder%2Dbottom%2Dleft%2Dradius%3A%2D1%7D%2Epanel%3E%2Elist%2Dgroup%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%7Bborder%2Dwidth%3A1px%200%3Bborder%2Dradius%3A0%7D%2Epanel%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A%2D1%3Bborder%2Dtop%2Dleft%2Dradius%3A%2D1%7D%2Epanel%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bborder%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A%2D1%3Bborder%2Dbottom%2Dleft%2Dradius%3A%2D1%7D%2Epanel%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Epanel%2Dheading%2B%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dwidth%3A0%7D%2Elist%2Dgroup%2B%2Epanel%2Dfooter%7Bborder%2Dtop%2Dwidth%3A0%7D%2Epanel%3E%2Etable%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Etable%20caption%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%20caption%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%20caption%7Bpadding%2Dleft%3A15px%3Bpadding%2Dright%3A15px%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A%2D1%3Bborder%2Dtop%2Dleft%2Dradius%3A%2D1%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A%2D1%3Bborder%2Dtop%2Dright%2Dradius%3A%2D1%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A%2D1%7D%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A%2D1%7D%2Epanel%3E%2Etable%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A%2D1%3Bborder%2Dbottom%2Dleft%2Dradius%3A%2D1%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A%2D1%3Bborder%2Dbottom%2Dright%2Dradius%3A%2D1%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A%2D1%7D%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A%2D1%7D%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2C%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2Dresponsive%2C%2Epanel%3E%2Etable%2B%2Epanel%2Dbody%2C%2Epanel%3E%2Etable%2Dresponsive%2B%2Epanel%2Dbody%7Bborder%2Dtop%3A1px%20solid%20%23dddddd%7D%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%2C%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3A0%7D%2Epanel%3E%2Etable%2Dbordered%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dresponsive%7Bborder%3A0%3Bmargin%2Dbottom%3A0%7D%2Epanel%2Dgroup%7Bmargin%2Dbottom%3A21px%7D%2Epanel%2Dgroup%20%2Epanel%7Bmargin%2Dbottom%3A0%3Bborder%2Dradius%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2B%2Epanel%7Bmargin%2Dtop%3A5px%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%7Bborder%2Dbottom%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%2C%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bborder%2Dtop%3A1px%20solid%20%23dddddd%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%7Bborder%2Dtop%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%20%2Epanel%2Dbody%7Bborder%2Dbottom%3A1px%20solid%20%23dddddd%7D%2Epanel%2Ddefault%7Bborder%2Dcolor%3A%23dddddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%7Bcolor%3A%23333333%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dcolor%3A%23dddddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23dddddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23f5f5f5%3Bbackground%2Dcolor%3A%23333333%7D%2Epanel%2Ddefault%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23dddddd%7D%2Epanel%2Dprimary%7Bborder%2Dcolor%3A%232780e3%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%232780e3%3Bborder%2Dcolor%3A%232780e3%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%232780e3%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%232780e3%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dprimary%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%232780e3%7D%2Epanel%2Dsuccess%7Bborder%2Dcolor%3A%234e9f15%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%233fb618%3Bborder%2Dcolor%3A%234e9f15%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%234e9f15%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%233fb618%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%234e9f15%7D%2Epanel%2Dinfo%7Bborder%2Dcolor%3A%237643a8%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%239954bb%3Bborder%2Dcolor%3A%237643a8%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%237643a8%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%239954bb%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dinfo%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%237643a8%7D%2Epanel%2Dwarning%7Bborder%2Dcolor%3A%23ff4309%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff7518%3Bborder%2Dcolor%3A%23ff4309%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23ff4309%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23ff7518%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Dwarning%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23ff4309%7D%2Epanel%2Ddanger%7Bborder%2Dcolor%3A%23f0005e%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%7Bcolor%3A%23ffffff%3Bbackground%2Dcolor%3A%23ff0039%3Bborder%2Dcolor%3A%23f0005e%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23f0005e%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23ff0039%3Bbackground%2Dcolor%3A%23ffffff%7D%2Epanel%2Ddanger%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23f0005e%7D%2Eembed%2Dresponsive%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bheight%3A0%3Bpadding%3A0%3Boverflow%3Ahidden%7D%2Eembed%2Dresponsive%20%2Eembed%2Dresponsive%2Ditem%2C%2Eembed%2Dresponsive%20iframe%2C%2Eembed%2Dresponsive%20embed%2C%2Eembed%2Dresponsive%20object%2C%2Eembed%2Dresponsive%20video%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bbottom%3A0%3Bheight%3A100%25%3Bwidth%3A100%25%3Bborder%3A0%7D%2Eembed%2Dresponsive%2D16by9%7Bpadding%2Dbottom%3A56%2E25%25%7D%2Eembed%2Dresponsive%2D4by3%7Bpadding%2Dbottom%3A75%25%7D%2Ewell%7Bmin%2Dheight%3A20px%3Bpadding%3A19px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23e3e3e3%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C0%2E05%29%7D%2Ewell%20blockquote%7Bborder%2Dcolor%3A%23ddd%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C0%2E15%29%7D%2Ewell%2Dlg%7Bpadding%3A24px%3Bborder%2Dradius%3A0%7D%2Ewell%2Dsm%7Bpadding%3A9px%3Bborder%2Dradius%3A0%7D%2Eclose%7Bfloat%3Aright%3Bfont%2Dsize%3A22%2E5px%3Bfont%2Dweight%3Abold%3Bline%2Dheight%3A1%3Bcolor%3A%23ffffff%3Btext%2Dshadow%3A0%201px%200%20%23ffffff%3Bopacity%3A0%2E2%3Bfilter%3Aalpha%28opacity%3D20%29%7D%2Eclose%3Ahover%2C%2Eclose%3Afocus%7Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%3Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%7Dbutton%2Eclose%7Bpadding%3A0%3Bcursor%3Apointer%3Bbackground%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dappearance%3Anone%7D%2Emodal%2Dopen%7Boverflow%3Ahidden%7D%2Emodal%7Bdisplay%3Anone%3Boverflow%3Ahidden%3Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1050%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%3Boutline%3A0%7D%2Emodal%2Efade%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Do%2Dtransform%3Atranslate%280%2C%20%2D25%25%29%3Btransform%3Atranslate%280%2C%20%2D25%25%29%3B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E3s%20ease%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E3s%20ease%2Dout%3Btransition%3Atransform%20%2E3s%20ease%2Dout%7D%2Emodal%2Ein%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C%200%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%200%29%3B%2Do%2Dtransform%3Atranslate%280%2C%200%29%3Btransform%3Atranslate%280%2C%200%29%7D%2Emodal%2Dopen%20%2Emodal%7Boverflow%2Dx%3Ahidden%3Boverflow%2Dy%3Aauto%7D%2Emodal%2Ddialog%7Bposition%3Arelative%3Bwidth%3Aauto%3Bmargin%3A10px%7D%2Emodal%2Dcontent%7Bposition%3Arelative%3Bbackground%2Dcolor%3A%23ffffff%3Bborder%3A1px%20solid%20%23999999%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C0%2E5%29%3Bbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C0%2E5%29%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Boutline%3A0%7D%2Emodal%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1040%3Bbackground%2Dcolor%3A%23000000%7D%2Emodal%2Dbackdrop%2Efade%7Bopacity%3A0%3Bfilter%3Aalpha%28opacity%3D0%29%7D%2Emodal%2Dbackdrop%2Ein%7Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%7D%2Emodal%2Dheader%7Bpadding%3A15px%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dheader%20%2Eclose%7Bmargin%2Dtop%3A%2D2px%7D%2Emodal%2Dtitle%7Bmargin%3A0%3Bline%2Dheight%3A1%2E42857143%7D%2Emodal%2Dbody%7Bposition%3Arelative%3Bpadding%3A20px%7D%2Emodal%2Dfooter%7Bpadding%3A20px%3Btext%2Dalign%3Aright%3Bborder%2Dtop%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dfooter%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A5px%3Bmargin%2Dbottom%3A0%7D%2Emodal%2Dfooter%20%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dleft%3A0%7D%2Emodal%2Dscrollbar%2Dmeasure%7Bposition%3Aabsolute%3Btop%3A%2D9999px%3Bwidth%3A50px%3Bheight%3A50px%3Boverflow%3Ascroll%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Emodal%2Ddialog%7Bwidth%3A600px%3Bmargin%3A30px%20auto%7D%2Emodal%2Dcontent%7B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C0%2E5%29%3Bbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C0%2E5%29%7D%2Emodal%2Dsm%7Bwidth%3A300px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Emodal%2Dlg%7Bwidth%3A900px%7D%7D%2Etooltip%7Bposition%3Aabsolute%3Bz%2Dindex%3A1070%3Bdisplay%3Ablock%3Bfont%2Dfamily%3A%22Source%20Sans%20Pro%22%2CCalibri%2CCandara%2CArial%2Csans%2Dserif%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bletter%2Dspacing%3Anormal%3Bline%2Dbreak%3Aauto%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bwhite%2Dspace%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bfont%2Dsize%3A13px%3Bopacity%3A0%3Bfilter%3Aalpha%28opacity%3D0%29%7D%2Etooltip%2Ein%7Bopacity%3A0%2E9%3Bfilter%3Aalpha%28opacity%3D90%29%7D%2Etooltip%2Etop%7Bmargin%2Dtop%3A%2D3px%3Bpadding%3A5px%200%7D%2Etooltip%2Eright%7Bmargin%2Dleft%3A3px%3Bpadding%3A0%205px%7D%2Etooltip%2Ebottom%7Bmargin%2Dtop%3A3px%3Bpadding%3A5px%200%7D%2Etooltip%2Eleft%7Bmargin%2Dleft%3A%2D3px%3Bpadding%3A0%205px%7D%2Etooltip%2Dinner%7Bmax%2Dwidth%3A200px%3Bpadding%3A3px%208px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23000000%3Bborder%2Dradius%3A0%7D%2Etooltip%2Darrow%7Bposition%3Aabsolute%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Etooltip%2Etop%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Etop%2Dleft%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bright%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Etop%2Dright%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000000%7D%2Etooltip%2Eright%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bleft%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%205px%200%3Bborder%2Dright%2Dcolor%3A%23000000%7D%2Etooltip%2Eleft%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bright%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%200%205px%205px%3Bborder%2Dleft%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%2Dleft%20%2Etooltip%2Darrow%7Btop%3A0%3Bright%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Etooltip%2Ebottom%2Dright%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000000%7D%2Epopover%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bz%2Dindex%3A1060%3Bdisplay%3Anone%3Bmax%2Dwidth%3A276px%3Bpadding%3A1px%3Bfont%2Dfamily%3A%22Source%20Sans%20Pro%22%2CCalibri%2CCandara%2CArial%2Csans%2Dserif%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3Anormal%3Bletter%2Dspacing%3Anormal%3Bline%2Dbreak%3Aauto%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bwhite%2Dspace%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bfont%2Dsize%3A15px%3Bbackground%2Dcolor%3A%23ffffff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23cccccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E2%29%3Bborder%2Dradius%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%3Bbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C0%2E2%29%7D%2Epopover%2Etop%7Bmargin%2Dtop%3A%2D10px%7D%2Epopover%2Eright%7Bmargin%2Dleft%3A10px%7D%2Epopover%2Ebottom%7Bmargin%2Dtop%3A10px%7D%2Epopover%2Eleft%7Bmargin%2Dleft%3A%2D10px%7D%2Epopover%2Dtitle%7Bmargin%3A0%3Bpadding%3A8px%2014px%3Bfont%2Dsize%3A15px%3Bbackground%2Dcolor%3A%23f7f7f7%3Bborder%2Dbottom%3A1px%20solid%20%23ebebeb%3Bborder%2Dradius%3A%2D1%20%2D1%200%200%7D%2Epopover%2Dcontent%7Bpadding%3A9px%2014px%7D%2Epopover%3E%2Earrow%2C%2Epopover%3E%2Earrow%3Aafter%7Bposition%3Aabsolute%3Bdisplay%3Ablock%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Epopover%3E%2Earrow%7Bborder%2Dwidth%3A11px%7D%2Epopover%3E%2Earrow%3Aafter%7Bborder%2Dwidth%3A10px%3Bcontent%3A%22%22%7D%2Epopover%2Etop%3E%2Earrow%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dbottom%2Dwidth%3A0%3Bborder%2Dtop%2Dcolor%3A%23999999%3Bborder%2Dtop%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Bbottom%3A%2D11px%7D%2Epopover%2Etop%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bbottom%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dbottom%2Dwidth%3A0%3Bborder%2Dtop%2Dcolor%3A%23ffffff%7D%2Epopover%2Eright%3E%2Earrow%7Btop%3A50%25%3Bleft%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dleft%2Dwidth%3A0%3Bborder%2Dright%2Dcolor%3A%23999999%3Bborder%2Dright%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%7D%2Epopover%2Eright%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bleft%3A1px%3Bbottom%3A%2D10px%3Bborder%2Dleft%2Dwidth%3A0%3Bborder%2Dright%2Dcolor%3A%23ffffff%7D%2Epopover%2Ebottom%3E%2Earrow%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23999999%3Bborder%2Dbottom%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%3Btop%3A%2D11px%7D%2Epopover%2Ebottom%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Btop%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23ffffff%7D%2Epopover%2Eleft%3E%2Earrow%7Btop%3A50%25%3Bright%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23999999%3Bborder%2Dleft%2Dcolor%3Argba%280%2C0%2C0%2C0%2E25%29%7D%2Epopover%2Eleft%3E%2Earrow%3Aafter%7Bcontent%3A%22%20%22%3Bright%3A1px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23ffffff%3Bbottom%3A%2D10px%7D%2Ecarousel%7Bposition%3Arelative%7D%2Ecarousel%2Dinner%7Bposition%3Arelative%3Boverflow%3Ahidden%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eitem%7Bdisplay%3Anone%3Bposition%3Arelative%3B%2Dwebkit%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3B%2Do%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3Btransition%3A%2E6s%20ease%2Din%2Dout%20left%7D%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%7Bline%2Dheight%3A1%7D%40media%20all%20and%20%28transform%2D3d%29%2C%28%2Dwebkit%2Dtransform%2D3d%29%7B%2Ecarousel%2Dinner%3E%2Eitem%7B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E6s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E6s%20ease%2Din%2Dout%3Btransition%3Atransform%20%2E6s%20ease%2Din%2Dout%3B%2Dwebkit%2Dbackface%2Dvisibility%3Ahidden%3Bbackface%2Dvisibility%3Ahidden%3B%2Dwebkit%2Dperspective%3A1000px%3Bperspective%3A1000px%7D%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eright%7B%2Dwebkit%2Dtransform%3Atranslate3d%28100%25%2C%200%2C%200%29%3Btransform%3Atranslate3d%28100%25%2C%200%2C%200%29%3Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eleft%7B%2Dwebkit%2Dtransform%3Atranslate3d%28%2D100%25%2C%200%2C%200%29%3Btransform%3Atranslate3d%28%2D100%25%2C%200%2C%200%29%3Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2Eright%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%7B%2Dwebkit%2Dtransform%3Atranslate3d%280%2C%200%2C%200%29%3Btransform%3Atranslate3d%280%2C%200%2C%200%29%3Bleft%3A0%7D%7D%2Ecarousel%2Dinner%3E%2Eactive%2C%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bdisplay%3Ablock%7D%2Ecarousel%2Dinner%3E%2Eactive%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bposition%3Aabsolute%3Btop%3A0%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Enext%7Bleft%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eprev%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eprev%2Eright%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eleft%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eright%7Bleft%3A100%25%7D%2Ecarousel%2Dcontrol%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bbottom%3A0%3Bwidth%3A15%25%3Bopacity%3A0%2E5%3Bfilter%3Aalpha%28opacity%3D50%29%3Bfont%2Dsize%3A20px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E6%29%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7D%2Ecarousel%2Dcontrol%2Eleft%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20from%28rgba%280%2C0%2C0%2C0%2E5%29%29%2C%20to%28rgba%280%2C0%2C0%2C0%2E0001%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%20rgba%280%2C0%2C0%2C0%2E5%29%200%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%20100%25%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2380000000%27%2C%20endColorstr%3D%27%2300000000%27%2C%20GradientType%3D1%29%7D%2Ecarousel%2Dcontrol%2Eright%7Bleft%3Aauto%3Bright%3A0%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20from%28rgba%280%2C0%2C0%2C0%2E0001%29%29%2C%20to%28rgba%280%2C0%2C0%2C0%2E5%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2C%20rgba%280%2C0%2C0%2C0%2E0001%29%200%2C%20rgba%280%2C0%2C0%2C0%2E5%29%20100%25%29%3Bbackground%2Drepeat%3Arepeat%2Dx%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2300000000%27%2C%20endColorstr%3D%27%2380000000%27%2C%20GradientType%3D1%29%7D%2Ecarousel%2Dcontrol%3Ahover%2C%2Ecarousel%2Dcontrol%3Afocus%7Boutline%3A0%3Bcolor%3A%23ffffff%3Btext%2Ddecoration%3Anone%3Bopacity%3A0%2E9%3Bfilter%3Aalpha%28opacity%3D90%29%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%7Bposition%3Aabsolute%3Btop%3A50%25%3Bmargin%2Dtop%3A%2D10px%3Bz%2Dindex%3A5%3Bdisplay%3Ainline%2Dblock%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%7Bright%3A50%25%3Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bwidth%3A20px%3Bheight%3A20px%3Bline%2Dheight%3A1%3Bfont%2Dfamily%3Aserif%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%3Abefore%7Bcontent%3A%27%5C2039%27%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%3Abefore%7Bcontent%3A%27%5C203a%27%7D%2Ecarousel%2Dindicators%7Bposition%3Aabsolute%3Bbottom%3A10px%3Bleft%3A50%25%3Bz%2Dindex%3A15%3Bwidth%3A60%25%3Bmargin%2Dleft%3A%2D30%25%3Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%3Btext%2Dalign%3Acenter%7D%2Ecarousel%2Dindicators%20li%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A10px%3Bheight%3A10px%3Bmargin%3A1px%3Btext%2Dindent%3A%2D999px%3Bborder%3A1px%20solid%20%23ffffff%3Bborder%2Dradius%3A10px%3Bcursor%3Apointer%3Bbackground%2Dcolor%3A%23000%20%5C9%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7D%2Ecarousel%2Dindicators%20%2Eactive%7Bmargin%3A0%3Bwidth%3A12px%3Bheight%3A12px%3Bbackground%2Dcolor%3A%23ffffff%7D%2Ecarousel%2Dcaption%7Bposition%3Aabsolute%3Bleft%3A15%25%3Bright%3A15%25%3Bbottom%3A20px%3Bz%2Dindex%3A10%3Bpadding%2Dtop%3A20px%3Bpadding%2Dbottom%3A20px%3Bcolor%3A%23ffffff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C0%2E6%29%7D%2Ecarousel%2Dcaption%20%2Ebtn%7Btext%2Dshadow%3Anone%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bwidth%3A30px%3Bheight%3A30px%3Bmargin%2Dtop%3A%2D10px%3Bfont%2Dsize%3A30px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcaption%7Bleft%3A20%25%3Bright%3A20%25%3Bpadding%2Dbottom%3A30px%7D%2Ecarousel%2Dindicators%7Bbottom%3A20px%7D%7D%2Eclearfix%3Abefore%2C%2Eclearfix%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Abefore%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Econtainer%3Abefore%2C%2Econtainer%3Aafter%2C%2Econtainer%2Dfluid%3Abefore%2C%2Econtainer%2Dfluid%3Aafter%2C%2Erow%3Abefore%2C%2Erow%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Abefore%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Abefore%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Abefore%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Enav%3Abefore%2C%2Enav%3Aafter%2C%2Enavbar%3Abefore%2C%2Enavbar%3Aafter%2C%2Enavbar%2Dheader%3Abefore%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dcollapse%3Abefore%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Epager%3Abefore%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Abefore%2C%2Epanel%2Dbody%3Aafter%2C%2Emodal%2Dheader%3Abefore%2C%2Emodal%2Dheader%3Aafter%2C%2Emodal%2Dfooter%3Abefore%2C%2Emodal%2Dfooter%3Aafter%7Bcontent%3A%22%20%22%3Bdisplay%3Atable%7D%2Eclearfix%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Econtainer%3Aafter%2C%2Econtainer%2Dfluid%3Aafter%2C%2Erow%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Enav%3Aafter%2C%2Enavbar%3Aafter%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Aafter%2C%2Emodal%2Dheader%3Aafter%2C%2Emodal%2Dfooter%3Aafter%7Bclear%3Aboth%7D%2Ecenter%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dleft%3Aauto%3Bmargin%2Dright%3Aauto%7D%2Epull%2Dright%7Bfloat%3Aright%20%21important%7D%2Epull%2Dleft%7Bfloat%3Aleft%20%21important%7D%2Ehide%7Bdisplay%3Anone%20%21important%7D%2Eshow%7Bdisplay%3Ablock%20%21important%7D%2Einvisible%7Bvisibility%3Ahidden%7D%2Etext%2Dhide%7Bfont%3A0%2F0%20a%3Bcolor%3Atransparent%3Btext%2Dshadow%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Ehidden%7Bdisplay%3Anone%20%21important%7D%2Eaffix%7Bposition%3Afixed%7D%40%2Dms%2Dviewport%7Bwidth%3Adevice%2Dwidth%7D%2Evisible%2Dxs%2C%2Evisible%2Dsm%2C%2Evisible%2Dmd%2C%2Evisible%2Dlg%7Bdisplay%3Anone%20%21important%7D%2Evisible%2Dxs%2Dblock%2C%2Evisible%2Dxs%2Dinline%2C%2Evisible%2Dxs%2Dinline%2Dblock%2C%2Evisible%2Dsm%2Dblock%2C%2Evisible%2Dsm%2Dinline%2C%2Evisible%2Dsm%2Dinline%2Dblock%2C%2Evisible%2Dmd%2Dblock%2C%2Evisible%2Dmd%2Dinline%2C%2Evisible%2Dmd%2Dinline%2Dblock%2C%2Evisible%2Dlg%2Dblock%2C%2Evisible%2Dlg%2Dinline%2C%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dxs%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dxs%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dxs%2Ctd%2Evisible%2Dxs%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dsm%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dsm%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dsm%2Ctd%2Evisible%2Dsm%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dmd%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dmd%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dmd%2Ctd%2Evisible%2Dmd%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dlg%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dlg%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dlg%2Ctd%2Evisible%2Dlg%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Ehidden%2Dxs%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Ehidden%2Dsm%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Ehidden%2Dmd%7Bdisplay%3Anone%20%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ehidden%2Dlg%7Bdisplay%3Anone%20%21important%7D%7D%2Evisible%2Dprint%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%7Bdisplay%3Ablock%20%21important%7Dtable%2Evisible%2Dprint%7Bdisplay%3Atable%20%21important%7Dtr%2Evisible%2Dprint%7Bdisplay%3Atable%2Drow%20%21important%7Dth%2Evisible%2Dprint%2Ctd%2Evisible%2Dprint%7Bdisplay%3Atable%2Dcell%20%21important%7D%7D%2Evisible%2Dprint%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dblock%7Bdisplay%3Ablock%20%21important%7D%7D%2Evisible%2Dprint%2Dinline%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%7Bdisplay%3Ainline%20%21important%7D%7D%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Anone%20%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%20%21important%7D%7D%40media%20print%7B%2Ehidden%2Dprint%7Bdisplay%3Anone%20%21important%7D%7D%2Enavbar%2Dinverse%20%2Ebadge%7Bbackground%2Dcolor%3A%23fff%3Bcolor%3A%232780e3%7Dbody%7B%2Dwebkit%2Dfont%2Dsmoothing%3Aantialiased%7D%2Etext%2Dprimary%2C%2Etext%2Dprimary%3Ahover%7Bcolor%3A%232780e3%7D%2Etext%2Dsuccess%2C%2Etext%2Dsuccess%3Ahover%7Bcolor%3A%233fb618%7D%2Etext%2Ddanger%2C%2Etext%2Ddanger%3Ahover%7Bcolor%3A%23ff0039%7D%2Etext%2Dwarning%2C%2Etext%2Dwarning%3Ahover%7Bcolor%3A%23ff7518%7D%2Etext%2Dinfo%2C%2Etext%2Dinfo%3Ahover%7Bcolor%3A%239954bb%7Dtable%20a%3Anot%28%2Ebtn%29%2C%2Etable%20a%3Anot%28%2Ebtn%29%7Btext%2Ddecoration%3Aunderline%7Dtable%20%2Edropdown%2Dmenu%20a%2C%2Etable%20%2Edropdown%2Dmenu%20a%7Btext%2Ddecoration%3Anone%7Dtable%20%2Esuccess%2C%2Etable%20%2Esuccess%2Ctable%20%2Ewarning%2C%2Etable%20%2Ewarning%2Ctable%20%2Edanger%2C%2Etable%20%2Edanger%2Ctable%20%2Einfo%2C%2Etable%20%2Einfo%7Bcolor%3A%23fff%7Dtable%20%2Esuccess%20a%2C%2Etable%20%2Esuccess%20a%2Ctable%20%2Ewarning%20a%2C%2Etable%20%2Ewarning%20a%2Ctable%20%2Edanger%20a%2C%2Etable%20%2Edanger%20a%2Ctable%20%2Einfo%20a%2C%2Etable%20%2Einfo%20a%7Bcolor%3A%23fff%7D%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ff7518%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2C%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%2C%2Ehas%2Dwarning%20%2Einput%2Dgroup%2Daddon%7Bborder%3A1px%20solid%20%23ff7518%7D%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%2C%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23ff0039%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2C%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%2C%2Ehas%2Derror%20%2Einput%2Dgroup%2Daddon%7Bborder%3A1px%20solid%20%23ff0039%7D%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%233fb618%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2C%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%2C%2Ehas%2Dsuccess%20%2Einput%2Dgroup%2Daddon%7Bborder%3A1px%20solid%20%233fb618%7D%2Enav%2Dpills%3Eli%3Ea%7Bborder%2Dradius%3A0%7D%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%7Bbackground%2Dimage%3Anone%7D%2Eclose%7Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Bopacity%3A0%2E4%7D%2Eclose%3Ahover%2C%2Eclose%3Afocus%7Bopacity%3A1%7D%2Ealert%7Bborder%3Anone%7D%2Ealert%20%2Ealert%2Dlink%7Btext%2Ddecoration%3Aunderline%3Bcolor%3A%23fff%7D%2Elabel%7Bborder%2Dradius%3A0%7D%2Eprogress%7Bheight%3A8px%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Eprogress%20%2Eprogress%2Dbar%7Bfont%2Dsize%3A8px%3Bline%2Dheight%3A8px%7D%2Epanel%2Dheading%2C%2Epanel%2Dfooter%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%7D%2Epanel%2Ddefault%20%2Eclose%7Bcolor%3A%23333333%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%7Bbackground%2Dcolor%3A%233fb618%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%7Bbackground%2Dcolor%3A%23379f15%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%7Bbackground%2Dcolor%3A%23ff7518%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%7Bbackground%2Dcolor%3A%23fe6600%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%7Bbackground%2Dcolor%3A%23ff0039%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%7Bbackground%2Dcolor%3A%23e60033%7D%2Emodal%20%2Eclose%7Bcolor%3A%23333333%7D%2Epopover%7Bcolor%3A%23333333%7D%0A" rel="stylesheet" />
|
||
<script src="data:application/javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyIil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYm9vdHN0cmFwIiksYj17V2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIG90cmFuc2l0aW9uZW5kIix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIn07Zm9yKHZhciBjIGluIGIpaWYodm9pZCAwIT09YS5zdHlsZVtjXSlyZXR1cm57ZW5kOmJbY119O3JldHVybiExfWEuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oYil7dmFyIGM9ITEsZD10aGlzO2EodGhpcykub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Yz0hMH0pO3ZhciBlPWZ1bmN0aW9uKCl7Y3x8YShkKS50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCl9O3JldHVybiBzZXRUaW1lb3V0KGUsYiksdGhpc30sYShmdW5jdGlvbigpe2Euc3VwcG9ydC50cmFuc2l0aW9uPWIoKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGEuZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQ9e2JpbmRUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxkZWxlZ2F0ZVR5cGU6YS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLGhhbmRsZTpmdW5jdGlvbihiKXtyZXR1cm4gYShiLnRhcmdldCkuaXModGhpcyk/Yi5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjUiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YShmKTtiJiZiLnByZXZlbnREZWZhdWx0KCksZy5sZW5ndGh8fChnPWUuY2xvc2VzdCgiLmFsZXJ0IikpLGcudHJpZ2dlcihiPWEuRXZlbnQoImNsb3NlLmJzLmFsZXJ0IikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChnLnJlbW92ZUNsYXNzKCJpbiIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZnLmhhc0NsYXNzKCJmYWRlIik/Zy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYykuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTpjKCkpfTt2YXIgZT1hLmZuLmFsZXJ0O2EuZm4uYWxlcnQ9YixhLmZuLmFsZXJ0LkNvbnN0cnVjdG9yPWQsYS5mbi5hbGVydC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWxlcnQ9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuYWxlcnQuZGF0YS1hcGkiLGMsZC5wcm90b3R5cGUuY2xvc2UpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMuYnV0dG9uIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5idXR0b24iLGU9bmV3IGModGhpcyxmKSksInRvZ2dsZSI9PWI/ZS50b2dnbGUoKTpiJiZlLnNldFN0YXRlKGIpfSl9dmFyIGM9ZnVuY3Rpb24oYixkKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy5pc0xvYWRpbmc9ITF9O2MuVkVSU0lPTj0iMy4zLjUiLGMuREVGQVVMVFM9e2xvYWRpbmdUZXh0OiJsb2FkaW5nLi4uIn0sYy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYil7dmFyIGM9ImRpc2FibGVkIixkPXRoaXMuJGVsZW1lbnQsZT1kLmlzKCJpbnB1dCIpPyJ2YWwiOiJodG1sIixmPWQuZGF0YSgpO2IrPSJUZXh0IixudWxsPT1mLnJlc2V0VGV4dCYmZC5kYXRhKCJyZXNldFRleHQiLGRbZV0oKSksc2V0VGltZW91dChhLnByb3h5KGZ1bmN0aW9uKCl7ZFtlXShudWxsPT1mW2JdP3RoaXMub3B0aW9uc1tiXTpmW2JdKSwibG9hZGluZ1RleHQiPT1iPyh0aGlzLmlzTG9hZGluZz0hMCxkLmFkZENsYXNzKGMpLmF0dHIoYyxjKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxkLnJlbW92ZUNsYXNzKGMpLnJlbW92ZUF0dHIoYykpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KTtkLmhhc0NsYXNzKCJidG4iKXx8KGQ9ZC5jbG9zZXN0KCIuYnRuIikpLGIuY2FsbChkLCJ0b2dnbGUiKSxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0icmFkaW8iXScpfHxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpfHxjLnByZXZlbnREZWZhdWx0KCl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO3JldHVybiBhPnRoaXMuJGl0ZW1zLmxlbmd0aC0xfHwwPmE/dm9pZCAwOnRoaXMuc2xpZGluZz90aGlzLiRlbGVtZW50Lm9uZSgic2xpZC5icy5jYXJvdXNlbCIsZnVuY3Rpb24oKXtiLnRvKGEpfSk6Yz09YT90aGlzLnBhdXNlKCkuY3ljbGUoKTp0aGlzLnNsaWRlKGE+Yz8ibmV4dCI6InByZXYiLHRoaXMuJGl0ZW1zLmVxKGEpKX0sYy5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oYil7cmV0dXJuIGJ8fCh0aGlzLnBhdXNlZD0hMCksdGhpcy4kZWxlbWVudC5maW5kKCIubmV4dCwgLnByZXYiKS5sZW5ndGgmJmEuc3VwcG9ydC50cmFuc2l0aW9uJiYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCksdGhpcy5jeWNsZSghMCkpLHRoaXMuaW50ZXJ2YWw9Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzfSxjLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgibmV4dCIpfSxjLnByb3RvdHlwZS5wcmV2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgicHJldiIpfSxjLnByb3RvdHlwZS5zbGlkZT1mdW5jdGlvbihiLGQpe3ZhciBlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIiksZj1kfHx0aGlzLmdldEl0ZW1Gb3JEaXJlY3Rpb24oYixlKSxnPXRoaXMuaW50ZXJ2YWwsaD0ibmV4dCI9PWI/ImxlZnQiOiJyaWdodCIsaT10aGlzO2lmKGYuaGFzQ2xhc3MoImFjdGl2ZSIpKXJldHVybiB0aGlzLnNsaWRpbmc9ITE7dmFyIGo9ZlswXSxrPWEuRXZlbnQoInNsaWRlLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGspLCFrLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZih0aGlzLnNsaWRpbmc9ITAsZyYmdGhpcy5wYXVzZSgpLHRoaXMuJGluZGljYXRvcnMubGVuZ3RoKXt0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7dmFyIGw9YSh0aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKClbdGhpcy5nZXRJdGVtSW5kZXgoZildKTtsJiZsLmFkZENsYXNzKCJhY3RpdmUiKX12YXIgbT1hLkV2ZW50KCJzbGlkLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJzbGlkZSIpPyhmLmFkZENsYXNzKGIpLGZbMF0ub2Zmc2V0V2lkdGgsZS5hZGRDbGFzcyhoKSxmLmFkZENsYXNzKGgpLGUub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcyhbYixoXS5qb2luKCIgIikpLmFkZENsYXNzKCJhY3RpdmUiKSxlLnJlbW92ZUNsYXNzKFsiYWN0aXZlIixoXS5qb2luKCIgIikpLGkuc2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS4kZWxlbWVudC50cmlnZ2VyKG0pfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTikpOihlLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxmLmFkZENsYXNzKCJhY3RpdmUiKSx0aGlzLnNsaWRpbmc9ITEsdGhpcy4kZWxlbWVudC50cmlnZ2VyKG0pKSxnJiZ0aGlzLmN5Y2xlKCksdGhpc319O3ZhciBkPWEuZm4uY2Fyb3VzZWw7YS5mbi5jYXJvdXNlbD1iLGEuZm4uY2Fyb3VzZWwuQ29uc3RydWN0b3I9YyxhLmZuLmNhcm91c2VsLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jYXJvdXNlbD1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe3ZhciBkLGU9YSh0aGlzKSxmPWEoZS5hdHRyKCJkYXRhLXRhcmdldCIpfHwoZD1lLmF0dHIoImhyZWYiKSkmJmQucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKSk7aWYoZi5oYXNDbGFzcygiY2Fyb3VzZWwiKSl7dmFyIGc9YS5leHRlbmQoe30sZi5kYXRhKCksZS5kYXRhKCkpLGg9ZS5hdHRyKCJkYXRhLXNsaWRlLXRvIik7aCYmKGcuaW50ZXJ2YWw9ITEpLGIuY2FsbChmLGcpLGgmJmYuZGF0YSgiYnMuY2Fyb3VzZWwiKS50byhoKSxjLnByZXZlbnREZWZhdWx0KCl9fTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCJbZGF0YS1zbGlkZV0iLGUpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlLXRvXSIsZSksYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXJpZGU9ImNhcm91c2VsIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKTtiLmNhbGwoYyxjLmRhdGEoKSl9KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXt2YXIgYyxkPWIuYXR0cigiZGF0YS10YXJnZXQiKXx8KGM9Yi5hdHRyKCJocmVmIikpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIik7cmV0dXJuIGEoZCl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuY29sbGFwc2UiKSxmPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYy5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTshZSYmZi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoYikmJihmLnRvZ2dsZT0hMSksZXx8Yy5kYXRhKCJicy5jb2xsYXBzZSIsZT1uZXcgZCh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBkPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxkLkRFRkFVTFRTLGMpLHRoaXMuJHRyaWdnZXI9YSgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2hyZWY9IiMnK2IuaWQrJyJdLFtkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXRhcmdldD0iIycrYi5pZCsnIl0nKSx0aGlzLnRyYW5zaXRpb25pbmc9bnVsbCx0aGlzLm9wdGlvbnMucGFyZW50P3RoaXMuJHBhcmVudD10aGlzLmdldFBhcmVudCgpOnRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuJGVsZW1lbnQsdGhpcy4kdHJpZ2dlciksdGhpcy5vcHRpb25zLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX07ZC5WRVJTSU9OPSIzLjMuNSIsZC5UUkFOU0lUSU9OX0RVUkFUSU9OPTM1MCxkLkRFRkFVTFRTPXt0b2dnbGU6ITB9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmNoaWxkcmVuKCIucGFuZWwiKS5jaGlsZHJlbigiLmluLCAuY29sbGFwc2luZyIpO2lmKCEoZSYmZS5sZW5ndGgmJihiPWUuZGF0YSgiYnMuY29sbGFwc2UiKSxiJiZiLnRyYW5zaXRpb25pbmcpKSl7dmFyIGY9YS5FdmVudCgic2hvdy5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihmKSwhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ZSYmZS5sZW5ndGgmJihjLmNhbGwoZSwiaGlkZSIpLGJ8fGUuZGF0YSgiYnMuY29sbGFwc2UiLG51bGwpKTt2YXIgZz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIikuYWRkQ2xhc3MoImNvbGxhcHNpbmciKVtnXSgwKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy4kdHJpZ2dlci5yZW1vdmVDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBoPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSBpbiIpW2ddKCIiKSx0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLmNvbGxhcHNlIil9O2lmKCFhLnN1cHBvcnQudHJhbnNpdGlvbilyZXR1cm4gaC5jYWxsKHRoaXMpO3ZhciBpPWEuY2FtZWxDYXNlKFsic2Nyb2xsIixnXS5qb2luKCItIikpO3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoaCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKVtnXSh0aGlzLiRlbGVtZW50WzBdW2ldKX19fX0sZC5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiPWEuRXZlbnQoImhpZGUuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksIWIuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBjPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudFtjXSh0aGlzLiRlbGVtZW50W2NdKCkpWzBdLm9mZnNldEhlaWdodCx0aGlzLiRlbGVtZW50LmFkZENsYXNzKCJjb2xsYXBzaW5nIikucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIGluIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMuJHRyaWdnZXIuYWRkQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgZT1mdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UiKS50cmlnZ2VyKCJoaWRkZW4uYnMuY29sbGFwc2UiKX07cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uP3ZvaWQgdGhpcy4kZWxlbWVudFtjXSgwKS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShlLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmUuY2FsbCh0aGlzKX19fSxkLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIik/ImhpZGUiOiJzaG93Il0oKX0sZC5wcm90b3R5cGUuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5vcHRpb25zLnBhcmVudCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtcGFyZW50PSInK3RoaXMub3B0aW9ucy5wYXJlbnQrJyJdJykuZWFjaChhLnByb3h5KGZ1bmN0aW9uKGMsZCl7dmFyIGU9YShkKTt0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhiKGUpLGUpfSx0aGlzKSkuZW5kKCl9LGQucHJvdG90eXBlLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuaGFzQ2xhc3MoImluIik7YS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKSxiLnRvZ2dsZUNsYXNzKCJjb2xsYXBzZWQiLCFjKS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKX07dmFyIGU9YS5mbi5jb2xsYXBzZTthLmZuLmNvbGxhcHNlPWMsYS5mbi5jb2xsYXBzZS5Db25zdHJ1Y3Rvcj1kLGEuZm4uY29sbGFwc2Uubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNvbGxhcHNlPWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdJyxmdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2UuYXR0cigiZGF0YS10YXJnZXQiKXx8ZC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBmPWIoZSksZz1mLmRhdGEoImJzLmNvbGxhcHNlIiksaD1nPyJ0b2dnbGUiOmUuZGF0YSgpO2MuY2FsbChmLGgpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjPWIuYXR0cigiZGF0YS10YXJnZXQiKTtjfHwoYz1iLmF0dHIoImhyZWYiKSxjPWMmJi8jW0EtWmEtel0vLnRlc3QoYykmJmMucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGQ9YyYmYShjKTtyZXR1cm4gZCYmZC5sZW5ndGg/ZDpiLnBhcmVudCgpfWZ1bmN0aW9uIGMoYyl7YyYmMz09PWMud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1iKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoYyYmImNsaWNrIj09Yy50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpJiZhLmNvbnRhaW5zKGVbMF0sYy50YXJnZXQpfHwoZS50cmlnZ2VyKGM9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGMuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSkpfSkpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoImJzLmRyb3Bkb3duIik7ZHx8Yy5kYXRhKCJicy5kcm9wZG93biIsZD1uZXcgZyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZkW2JdLmNhbGwoYyl9KX12YXIgZT0iLmRyb3Bkb3duLWJhY2tkcm9wIixmPSdbZGF0YS10b2dnbGU9ImRyb3Bkb3duIl0nLGc9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2suYnMuZHJvcGRvd24iLHRoaXMudG9nZ2xlKX07Zy5WRVJTSU9OPSIzLjMuNSIsZy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7aWYoIWUuaXMoIi5kaXNhYmxlZCwgOmRpc2FibGVkIikpe3ZhciBmPWIoZSksZz1mLmhhc0NsYXNzKCJvcGVuIik7aWYoYygpLCFnKXsib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWYuY2xvc2VzdCgiLm5hdmJhci1uYXYiKS5sZW5ndGgmJmEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJkcm9wZG93bi1iYWNrZHJvcCIpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYyk7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGMpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGMud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChjLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YihkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWMud2hpY2h8fGcmJjI3PT1jLndoaWNoKXJldHVybiAyNz09Yy53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhIixpPWUuZmluZCgiLmRyb3Bkb3duLW1lbnUiK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGMudGFyZ2V0KTszOD09Yy53aGljaCYmaj4wJiZqLS0sNDA9PWMud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYykub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsIi5kcm9wZG93bi1tZW51IixnLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYixkKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YSgiYnMubW9kYWwiKSxnPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZS5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTtmfHxlLmRhdGEoImJzLm1vZGFsIixmPW5ldyBjKHRoaXMsZykpLCJzdHJpbmciPT10eXBlb2YgYj9mW2JdKGQpOmcuc2hvdyYmZi5zaG93KGQpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLm9wdGlvbnM9Yyx0aGlzLiRib2R5PWEoZG9jdW1lbnQuYm9keSksdGhpcy4kZWxlbWVudD1hKGIpLHRoaXMuJGRpYWxvZz10aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1kaWFsb2ciKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLm9wdGlvbnMucmVtb3RlJiZ0aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1jb250ZW50IikubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLGEucHJveHkoZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoImxvYWRlZC5icy5tb2RhbCIpfSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj0zMDAsYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzaG93OiEwfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3coYSl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPWEuRXZlbnQoInNob3cuYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTt0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSksdGhpcy5pc1Nob3dufHxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodGhpcy5pc1Nob3duPSEwLHRoaXMuY2hlY2tTY3JvbGxiYXIoKSx0aGlzLnNldFNjcm9sbGJhcigpLHRoaXMuJGJvZHkuYWRkQ2xhc3MoIm1vZGFsLW9wZW4iKSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksdGhpcy4kZWxlbWVudC5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsJ1tkYXRhLWRpc21pc3M9Im1vZGFsIl0nLGEucHJveHkodGhpcy5oaWRlLHRoaXMpKSx0aGlzLiRkaWFsb2cub24oIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuJGVsZW1lbnQub25lKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmlzKGQuJGVsZW1lbnQpJiYoZC5pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLGQuZW5mb3JjZUZvY3VzKCk7dmFyIGY9YS5FdmVudCgic2hvd24uYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTtlP2QuJGRpYWxvZy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KSl9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGI9YS5FdmVudCgiaGlkZS5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSx0aGlzLmlzU2hvd24mJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYodGhpcy5pc1Nob3duPSExLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSxhKGRvY3VtZW50KS5vZmYoImZvY3VzaW4uYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJpbiIpLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLm9mZigibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsIiksdGhpcy4kZGlhbG9nLm9mZigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkodGhpcy5oaWRlTW9kYWwsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6dGhpcy5oaWRlTW9kYWwoKSl9LGMucHJvdG90eXBlLmVuZm9yY2VGb2N1cz1mdW5jdGlvbigpe2EoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLm9uKCJmb2N1c2luLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3RoaXMuJGVsZW1lbnRbMF09PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudC5oYXMoYS50YXJnZXQpLmxlbmd0aHx8dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpfSx0aGlzKSl9LGMucHJvdG90eXBlLmVzY2FwZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmtleWJvYXJkP3RoaXMuJGVsZW1lbnQub24oImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXsyNz09YS53aGljaCYmdGhpcy5oaWRlKCl9LHRoaXMpKTp0aGlzLmlzU2hvd258fHRoaXMuJGVsZW1lbnQub2ZmKCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duP2Eod2luZG93KS5vbigicmVzaXplLmJzLm1vZGFsIixhLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLHRoaXMpKTphKHdpbmRvdykub2ZmKCJyZXNpemUuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUuaGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLiRlbGVtZW50LmhpZGUoKSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7YS4kYm9keS5yZW1vdmVDbGFzcygibW9kYWwtb3BlbiIpLGEucmVzZXRBZGp1c3RtZW50cygpLGEucmVzZXRTY3JvbGxiYXIoKSxhLiRlbGVtZW50LnRyaWdnZXIoImhpZGRlbi5icy5tb2RhbCIpfSl9LGMucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy4kYmFja2Ryb3AmJnRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpLHRoaXMuJGJhY2tkcm9wPW51bGx9LGMucHJvdG90eXBlLmJhY2tkcm9wPWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/ImZhZGUiOiIiO2lmKHRoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmJhY2tkcm9wKXt2YXIgZj1hLnN1cHBvcnQudHJhbnNpdGlvbiYmZTtpZih0aGlzLiRiYWNrZHJvcD1hKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5hZGRDbGFzcygibW9kYWwtYmFja2Ryb3AgIitlKS5hcHBlbmRUbyh0aGlzLiRib2R5KSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s/dm9pZCh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITEpOnZvaWQoYS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJigic3RhdGljIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSkpfSx0aGlzKSksZiYmdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGgsdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoImluIiksIWIpcmV0dXJuO2Y/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6YigpfWVsc2UgaWYoIXRoaXMuaXNTaG93biYmdGhpcy4kYmFja2Ryb3Ape3RoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCJpbiIpO3ZhciBnPWZ1bmN0aW9uKCl7ZC5yZW1vdmVCYWNrZHJvcCgpLGImJmIoKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpnKCl9ZWxzZSBiJiZiKCl9LGMucHJvdG90eXBlLmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYWRqdXN0RGlhbG9nKCl9LGMucHJvdG90eXBlLmFkanVzdERpYWxvZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiF0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiFhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiJ9KX0sYy5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDoiIixwYWRkaW5nUmlnaHQ6IiJ9KX0sYy5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aDtpZighYSl7dmFyIGI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2E9Yi5yaWdodC1NYXRoLmFicyhiLmxlZnQpfXRoaXMuYm9keUlzT3ZlcmZsb3dpbmc9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDxhLHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMub3JpZ2luYWxCb2R5UGFkPWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0fHwiIix0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZ0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsYSt0aGlzLnNjcm9sbGJhcldpZHRoKX0sYy5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsdGhpcy5vcmlnaW5hbEJvZHlQYWQpfSxjLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9Im1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIix0aGlzLiRib2R5LmFwcGVuZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGg7cmV0dXJuIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoYSksYn07dmFyIGQ9YS5mbi5tb2RhbDthLmZuLm1vZGFsPWIsYS5mbi5tb2RhbC5Db25zdHJ1Y3Rvcj1jLGEuZm4ubW9kYWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLm1vZGFsPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJtb2RhbCJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKHRoaXMpLGU9ZC5hdHRyKCJocmVmIiksZj1hKGQuYXR0cigiZGF0YS10YXJnZXQiKXx8ZSYmZS5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKSxnPWYuZGF0YSgiYnMubW9kYWwiKT8idG9nZ2xlIjphLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChlKSYmZX0sZi5kYXRhKCksZC5kYXRhKCkpO2QuaXMoImEiKSYmYy5wcmV2ZW50RGVmYXVsdCgpLGYub25lKCJzaG93LmJzLm1vZGFsIixmdW5jdGlvbihhKXthLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxmLm9uZSgiaGlkZGVuLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuaXMoIjp2aXNpYmxlIikmJmQudHJpZ2dlcigiZm9jdXMiKX0pfSksYi5jYWxsKGYsZyx0aGlzKX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMudG9vbHRpcCIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy41IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxiIGluc3RhbmNlb2YgYS5FdmVudCYmKGMuaW5TdGF0ZVsiZm9jdXNvdXQiPT1iLnR5cGU/ImZvY3VzIjoiaG92ZXIiXT0hMSksYy5pc0luU3RhdGVUcnVlKCk/dm9pZCAwOihjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCkpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9YS5FdmVudCgic2hvdy5icy4iK3RoaXMudHlwZSk7aWYodGhpcy5oYXNDb250ZW50KCkmJnRoaXMuZW5hYmxlZCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpO3ZhciBkPWEuY29udGFpbnModGhpcy4kZWxlbWVudFswXS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLiRlbGVtZW50WzBdKTtpZihiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwhZClyZXR1cm47dmFyIGU9dGhpcyxmPXRoaXMudGlwKCksZz10aGlzLmdldFVJRCh0aGlzLnR5cGUpO3RoaXMuc2V0Q29udGVudCgpLGYuYXR0cigiaWQiLGcpLHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZyksdGhpcy5vcHRpb25zLmFuaW1hdGlvbiYmZi5hZGRDbGFzcygiZmFkZSIpO3ZhciBoPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMucGxhY2VtZW50P3RoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLGZbMF0sdGhpcy4kZWxlbWVudFswXSk6dGhpcy5vcHRpb25zLnBsYWNlbWVudCxpPS9ccz9hdXRvP1xzPy9pLGo9aS50ZXN0KGgpO2omJihoPWgucmVwbGFjZShpLCIiKXx8InRvcCIpLGYuZGV0YWNoKCkuY3NzKHt0b3A6MCxsZWZ0OjAsZGlzcGxheToiYmxvY2sifSkuYWRkQ2xhc3MoaCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsdGhpcyksdGhpcy5vcHRpb25zLmNvbnRhaW5lcj9mLmFwcGVuZFRvKHRoaXMub3B0aW9ucy5jb250YWluZXIpOmYuaW5zZXJ0QWZ0ZXIodGhpcy4kZWxlbWVudCksdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJpbnNlcnRlZC5icy4iK3RoaXMudHlwZSk7dmFyIGs9dGhpcy5nZXRQb3NpdGlvbigpLGw9ZlswXS5vZmZzZXRXaWR0aCxtPWZbMF0ub2Zmc2V0SGVpZ2h0O2lmKGope3ZhciBuPWgsbz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPm8uYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPG8udG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5vLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPG8ubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcD10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChwLGgpO3ZhciBxPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpxKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wKz1nLGIubGVmdCs9aCxhLm9mZnNldC5zZXRPZmZzZXQoZFswXSxhLmV4dGVuZCh7dXNpbmc6ZnVuY3Rpb24oYSl7ZC5jc3Moe3RvcDpNYXRoLnJvdW5kKGEudG9wKSxsZWZ0Ok1hdGgucm91bmQoYS5sZWZ0KX0pfX0sYiksMCksZC5hZGRDbGFzcygiaW4iKTt2YXIgaT1kWzBdLm9mZnNldFdpZHRoLGo9ZFswXS5vZmZzZXRIZWlnaHQ7InRvcCI9PWMmJmohPWYmJihiLnRvcD1iLnRvcCtmLWopO3ZhciBrPXRoaXMuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhKGMsYixpLGopO2subGVmdD9iLmxlZnQrPWsubGVmdDpiLnRvcCs9ay50b3A7dmFyIGw9L3RvcHxib3R0b20vLnRlc3QoYyksbT1sPzIqay5sZWZ0LWUraToyKmsudG9wLWYraixuPWw/Im9mZnNldFdpZHRoIjoib2Zmc2V0SGVpZ2h0IjtkLm9mZnNldChiKSx0aGlzLnJlcGxhY2VBcnJvdyhtLGRbMF1bbl0sbCl9LGMucHJvdG90eXBlLnJlcGxhY2VBcnJvdz1mdW5jdGlvbihhLGIsYyl7dGhpcy5hcnJvdygpLmNzcyhjPyJsZWZ0IjoidG9wIiw1MCooMS1hL2IpKyIlIikuY3NzKGM/InRvcCI6ImxlZnQiLCIiKX0sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCk7YS5maW5kKCIudG9vbHRpcC1pbm5lciIpW3RoaXMub3B0aW9ucy5odG1sPyJodG1sIjoidGV4dCJdKGIpLGEucmVtb3ZlQ2xhc3MoImZhZGUgaW4gdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0Iil9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCgpeyJpbiIhPWUuaG92ZXJTdGF0ZSYmZi5kZXRhY2goKSxlLiRlbGVtZW50LnJlbW92ZUF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKS50cmlnZ2VyKCJoaWRkZW4uYnMuIitlLnR5cGUpLGImJmIoKX12YXIgZT10aGlzLGY9YSh0aGlzLiR0aXApLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXMpfSxjLnByb3RvdHlwZS5maXhUaXRsZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQ7KGEuYXR0cigidGl0bGUiKXx8InN0cmluZyIhPXR5cGVvZiBhLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKSkmJmEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIsYS5hdHRyKCJ0aXRsZSIpfHwiIikuYXR0cigidGl0bGUiLCIiKX0sYy5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl9LGMucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGIpe2I9Ynx8dGhpcy4kZWxlbWVudDt2YXIgYz1iWzBdLGQ9IkJPRFkiPT1jLnRhZ05hbWUsZT1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO251bGw9PWUud2lkdGgmJihlPWEuZXh0ZW5kKHt9LGUse3dpZHRoOmUucmlnaHQtZS5sZWZ0LGhlaWdodDplLmJvdHRvbS1lLnRvcH0pKTt2YXIgZj1kP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCksZz17c2Nyb2xsOmQ/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A6Yi5zY3JvbGxUb3AoKX0saD1kP3t3aWR0aDphKHdpbmRvdykud2lkdGgoKSxoZWlnaHQ6YSh3aW5kb3cpLmhlaWdodCgpfTpudWxsO3JldHVybiBhLmV4dGVuZCh7fSxlLGcsaCxmKX0sYy5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZE9mZnNldD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4iYm90dG9tIj09YT97dG9wOmIudG9wK2IuaGVpZ2h0LGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJ0b3AiPT1hP3t0b3A6Yi50b3AtZCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToibGVmdCI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdC1jfTp7dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0K2Iud2lkdGh9fSxjLnByb3RvdHlwZS5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e3RvcDowLGxlZnQ6MH07aWYoIXRoaXMuJHZpZXdwb3J0KXJldHVybiBlO3ZhciBmPXRoaXMub3B0aW9ucy52aWV3cG9ydCYmdGhpcy5vcHRpb25zLnZpZXdwb3J0LnBhZGRpbmd8fDAsZz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtpZigvcmlnaHR8bGVmdC8udGVzdChhKSl7dmFyIGg9Yi50b3AtZi1nLnNjcm9sbCxpPWIudG9wK2YtZy5zY3JvbGwrZDtoPGcudG9wP2UudG9wPWcudG9wLWg6aT5nLnRvcCtnLmhlaWdodCYmKGUudG9wPWcudG9wK2cuaGVpZ2h0LWkpfWVsc2V7dmFyIGo9Yi5sZWZ0LWYsaz1iLmxlZnQrZitjO2o8Zy5sZWZ0P2UubGVmdD1nLmxlZnQtajprPmcucmlnaHQmJihlLmxlZnQ9Zy5sZWZ0K2cud2lkdGgtayl9cmV0dXJuIGV9LGMucHJvdG90eXBlLmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRlbGVtZW50LGM9dGhpcy5vcHRpb25zO3JldHVybiBhPWIuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGMudGl0bGU/Yy50aXRsZS5jYWxsKGJbMF0pOmMudGl0bGUpfSxjLnByb3RvdHlwZS5nZXRVSUQ9ZnVuY3Rpb24oYSl7ZG8gYSs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpO3doaWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKTtyZXR1cm4gYX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7aWYoIXRoaXMuJHRpcCYmKHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSksMSE9dGhpcy4kdGlwLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiIGB0ZW1wbGF0ZWAgb3B0aW9uIG11c3QgY29uc2lzdCBvZiBleGFjdGx5IDEgdG9wLWxldmVsIGVsZW1lbnQhIik7cmV0dXJuIHRoaXMuJHRpcH0sYy5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZCgiLnRvb2x0aXAtYXJyb3ciKX0sYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExfSxjLnByb3RvdHlwZS50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSF0aGlzLmVuYWJsZWR9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2ImJihjPWEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSksY3x8KGM9bmV3IHRoaXMuY29uc3RydWN0b3IoYi5jdXJyZW50VGFyZ2V0LHRoaXMuZ2V0RGVsZWdhdGVPcHRpb25zKCkpLGEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSxjKSkpLGI/KGMuaW5TdGF0ZS5jbGljaz0hYy5pblN0YXRlLmNsaWNrLGMuaXNJblN0YXRlVHJ1ZSgpP2MuZW50ZXIoYyk6Yy5sZWF2ZShjKSk6Yy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKSxhLiR0aXAmJmEuJHRpcC5kZXRhY2goKSxhLiR0aXA9bnVsbCxhLiRhcnJvdz1udWxsLGEuJHZpZXdwb3J0PW51bGx9KX07dmFyIGQ9YS5mbi50b29sdGlwO2EuZm4udG9vbHRpcD1iLGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvcj1jLGEuZm4udG9vbHRpcC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udG9vbHRpcD1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMucG9wb3ZlciIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyIHJlcXVpcmVzIHRvb2x0aXAuanMiKTtjLlZFUlNJT049IjMuMy41IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNSIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpe3RoaXMuYWN0aXZlVGFyZ2V0PWIsdGhpcy5jbGVhcigpO3ZhciBjPXRoaXMuc2VsZWN0b3IrJ1tkYXRhLXRhcmdldD0iJytiKyciXSwnK3RoaXMuc2VsZWN0b3IrJ1tocmVmPSInK2IrJyJdJyxkPWEoYykucGFyZW50cygibGkiKS5hZGRDbGFzcygiYWN0aXZlIik7ZC5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiYoZD1kLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpKSwKZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gYz5lPyJ0b3AiOiExO2lmKCJib3R0b20iPT10aGlzLmFmZml4ZWQpcmV0dXJuIG51bGwhPWM/ZSt0aGlzLnVucGluPD1mLnRvcD8hMToiYm90dG9tIjphLWQ+PWUrZz8hMToiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmYz49ZT8idG9wIjpudWxsIT1kJiZpK2o+PWEtZD8iYm90dG9tIjohMX0sYy5wcm90b3R5cGUuZ2V0UGlubmVkT2Zmc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5waW5uZWRPZmZzZXQpcmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0O3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoImFmZml4Iik7dmFyIGE9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGI9dGhpcy4kZWxlbWVudC5vZmZzZXQoKTtyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ9Yi50b3AtYX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3A9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpLDEpfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy4kZWxlbWVudC5pcygiOnZpc2libGUiKSl7dmFyIGI9dGhpcy4kZWxlbWVudC5oZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQsZT1kLnRvcCxmPWQuYm90dG9tLGc9TWF0aC5tYXgoYShkb2N1bWVudCkuaGVpZ2h0KCksYShkb2N1bWVudC5ib2R5KS5oZWlnaHQoKSk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script>
|
||
<script src="data:application/javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLmluc2VydEJlZm9yZShjLmxhc3RDaGlsZCxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGQoKXt2YXIgYT10LmVsZW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT9hLnNwbGl0KCIgIik6YX1mdW5jdGlvbiBlKGEsYil7dmFyIGM9dC5lbGVtZW50czsic3RyaW5nIiE9dHlwZW9mIGMmJihjPWMuam9pbigiICIpKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEuam9pbigiICIpKSx0LmVsZW1lbnRzPWMrIiAiK2EsaihiKX1mdW5jdGlvbiBmKGEpe3ZhciBiPXNbYVtxXV07cmV0dXJuIGJ8fChiPXt9LHIrKyxhW3FdPXIsc1tyXT1iKSxifWZ1bmN0aW9uIGcoYSxjLGQpe2lmKGN8fChjPWIpLGwpcmV0dXJuIGMuY3JlYXRlRWxlbWVudChhKTtkfHwoZD1mKGMpKTt2YXIgZTtyZXR1cm4gZT1kLmNhY2hlW2FdP2QuY2FjaGVbYV0uY2xvbmVOb2RlKCk6cC50ZXN0KGEpPyhkLmNhY2hlW2FdPWQuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6ZC5jcmVhdGVFbGVtKGEpLCFlLmNhbkhhdmVDaGlsZHJlbnx8by50ZXN0KGEpfHxlLnRhZ1Vybj9lOmQuZnJhZy5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBoKGEsYyl7aWYoYXx8KGE9YiksbClyZXR1cm4gYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yz1jfHxmKGEpO2Zvcih2YXIgZT1jLmZyYWcuY2xvbmVOb2RlKCksZz0wLGg9ZCgpLGk9aC5sZW5ndGg7aT5nO2crKyllLmNyZWF0ZUVsZW1lbnQoaFtnXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaShhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gdC5zaGl2TWV0aG9kcz9nKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitkKCkuam9pbigpLnJlcGxhY2UoL1tcd1wtOl0rL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3JlYXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKSh0LGIuZnJhZyl9ZnVuY3Rpb24gaihhKXthfHwoYT1iKTt2YXIgZD1mKGEpO3JldHVybiF0LnNoaXZDU1N8fGt8fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSksbHx8aShhLGQpLGF9dmFyIGssbCxtPSIzLjcuMiIsbj1hLmh0bWw1fHx7fSxvPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLHA9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLHE9Il9odG1sNXNoaXYiLHI9MCxzPXt9OyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEiKTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLGs9ImhpZGRlbiJpbiBhLGw9MT09YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQoImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7az0hMCxsPSEwfX0oKTt2YXIgdD17ZWxlbWVudHM6bi5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcGljdHVyZSBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlbyIsdmVyc2lvbjptLHNoaXZDU1M6bi5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6bCxzaGl2TWV0aG9kczpuLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OmosY3JlYXRlRWxlbWVudDpnLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6aCxhZGRFbGVtZW50czplfTthLmh0bWw1PXQsaihiKX0odGhpcyxkb2N1bWVudCk7Cn07Cg=="></script>
|
||
<script src="data:application/javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG9jdW1lbnRFbGVtZW50LGQ9Yy5maXJzdEVsZW1lbnRDaGlsZHx8Yy5maXJzdENoaWxkLGU9YS5jcmVhdGVFbGVtZW50KCJib2R5IiksZj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmlkPSJtcS10ZXN0LTEiLGYuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMDBlbSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIixlLmFwcGVuZENoaWxkKGYpLGZ1bmN0aW9uKGEpe3JldHVybiBmLmlubmVySFRNTD0nJnNoeTs8c3R5bGUgbWVkaWE9IicrYSsnIj4gI21xLXRlc3QtMSB7IHdpZHRoOiA0MnB4OyB9PC9zdHlsZT4nLGMuaW5zZXJ0QmVmb3JlKGUsZCksYj00Mj09PWYub2Zmc2V0V2lkdGgsYy5yZW1vdmVDaGlsZChlKSx7bWF0Y2hlczpiLG1lZGlhOmF9fX0oYS5kb2N1bWVudCl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dSghMCl9dmFyIGM9e307YS5yZXNwb25kPWMsYy51cGRhdGU9ZnVuY3Rpb24oKXt9O3ZhciBkPVtdLGU9ZnVuY3Rpb24oKXt2YXIgYj0hMTt0cnl7Yj1uZXcgYS5YTUxIdHRwUmVxdWVzdH1jYXRjaChjKXtiPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSgpLGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1lKCk7YyYmKGMub3BlbigiR0VUIixhLCEwKSxjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQhPT1jLnJlYWR5U3RhdGV8fDIwMCE9PWMuc3RhdHVzJiYzMDQhPT1jLnN0YXR1c3x8YihjLnJlc3BvbnNlVGV4dCl9LDQhPT1jLnJlYWR5U3RhdGUmJmMuc2VuZChudWxsKSl9O2lmKGMuYWpheD1mLGMucXVldWU9ZCxjLnJlZ2V4PXttZWRpYTovQG1lZGlhW15ce10rXHsoW15ce1x9XSpce1teXH1ce10qXH0pKy9naSxrZXlmcmFtZXM6L0AoPzpcLSg/Om98bW96fHdlYmtpdClcLSk/a2V5ZnJhbWVzW15ce10rXHsoPzpbXlx7XH1dKlx7W15cfVx7XSpcfSkrW15cfV0qXH0vZ2ksdXJsczovKHVybFwoKVsnIl0/KFteXC9cKSciXVteOlwpJyJdKylbJyJdPyhcKSkvZyxmaW5kU3R5bGVzOi9AbWVkaWEgKihbXlx7XSspXHsoW1xTXHNdKz8pJC8sb25seTovKG9ubHlccyspPyhbYS16QS1aXSspXHM/LyxtaW53Oi9cKFtcc10qbWluXC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpLyxtYXh3Oi9cKFtcc10qbWF4XC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpL30sYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQ9YS5tYXRjaE1lZGlhJiZudWxsIT09YS5tYXRjaE1lZGlhKCJvbmx5IGFsbCIpJiZhLm1hdGNoTWVkaWEoIm9ubHkgYWxsIikubWF0Y2hlcywhYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQpe3ZhciBnLGgsaSxqPWEuZG9jdW1lbnQsaz1qLmRvY3VtZW50RWxlbWVudCxsPVtdLG09W10sbj1bXSxvPXt9LHA9MzAscT1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGsscj1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJiYXNlIilbMF0scz1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksdD1mdW5jdGlvbigpe3ZhciBhLGI9ai5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWouYm9keSxkPWsuc3R5bGUuZm9udFNpemUsZT1jJiZjLnN0eWxlLmZvbnRTaXplLGY9ITE7cmV0dXJuIGIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFlbTt3aWR0aDoxZW0iLGN8fChjPWY9ai5jcmVhdGVFbGVtZW50KCJib2R5IiksYy5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIiksay5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5hcHBlbmRDaGlsZChiKSxmJiZrLmluc2VydEJlZm9yZShjLGsuZmlyc3RDaGlsZCksYT1iLm9mZnNldFdpZHRoLGY/ay5yZW1vdmVDaGlsZChjKTpjLnJlbW92ZUNoaWxkKGIpLGsuc3R5bGUuZm9udFNpemU9ZCxlJiYoYy5zdHlsZS5mb250U2l6ZT1lKSxhPWk9cGFyc2VGbG9hdChhKX0sdT1mdW5jdGlvbihiKXt2YXIgYz0iY2xpZW50V2lkdGgiLGQ9a1tjXSxlPSJDU1MxQ29tcGF0Ij09PWouY29tcGF0TW9kZSYmZHx8ai5ib2R5W2NdfHxkLGY9e30sbz1zW3MubGVuZ3RoLTFdLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYiYmZyYmcD5yLWcpcmV0dXJuIGEuY2xlYXJUaW1lb3V0KGgpLGg9YS5zZXRUaW1lb3V0KHUscCksdm9pZCAwO2c9cjtmb3IodmFyIHYgaW4gbClpZihsLmhhc093blByb3BlcnR5KHYpKXt2YXIgdz1sW3ZdLHg9dy5taW53LHk9dy5tYXh3LHo9bnVsbD09PXgsQT1udWxsPT09eSxCPSJlbSI7eCYmKHg9cGFyc2VGbG9hdCh4KSooeC5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSkseSYmKHk9cGFyc2VGbG9hdCh5KSooeS5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSksdy5oYXNxdWVyeSYmKHomJkF8fCEoenx8ZT49eCl8fCEoQXx8eT49ZSkpfHwoZlt3Lm1lZGlhXXx8KGZbdy5tZWRpYV09W10pLGZbdy5tZWRpYV0ucHVzaChtW3cucnVsZXNdKSl9Zm9yKHZhciBDIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShDKSYmbltDXSYmbltDXS5wYXJlbnROb2RlPT09cSYmcS5yZW1vdmVDaGlsZChuW0NdKTtuLmxlbmd0aD0wO2Zvcih2YXIgRCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoRCkpe3ZhciBFPWouY3JlYXRlRWxlbWVudCgic3R5bGUiKSxGPWZbRF0uam9pbigiXG4iKTtFLnR5cGU9InRleHQvY3NzIixFLm1lZGlhPUQscS5pbnNlcnRCZWZvcmUoRSxvLm5leHRTaWJsaW5nKSxFLnN0eWxlU2hlZXQ/RS5zdHlsZVNoZWV0LmNzc1RleHQ9RjpFLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoRikpLG4ucHVzaChFKX19LHY9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEucmVwbGFjZShjLnJlZ2V4LmtleWZyYW1lcywiIikubWF0Y2goYy5yZWdleC5tZWRpYSksZj1lJiZlLmxlbmd0aHx8MDtiPWIuc3Vic3RyaW5nKDAsYi5sYXN0SW5kZXhPZigiLyIpKTt2YXIgZz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGMucmVnZXgudXJscywiJDEiK2IrIiQyJDMiKX0saD0hZiYmZDtiLmxlbmd0aCYmKGIrPSIvIiksaCYmKGY9MSk7Zm9yKHZhciBpPTA7Zj5pO2krKyl7dmFyIGosayxuLG87aD8oaj1kLG0ucHVzaChnKGEpKSk6KGo9ZVtpXS5tYXRjaChjLnJlZ2V4LmZpbmRTdHlsZXMpJiZSZWdFeHAuJDEsbS5wdXNoKFJlZ0V4cC4kMiYmZyhSZWdFeHAuJDIpKSksbj1qLnNwbGl0KCIsIiksbz1uLmxlbmd0aDtmb3IodmFyIHA9MDtvPnA7cCsrKWs9bltwXSxsLnB1c2goe21lZGlhOmsuc3BsaXQoIigiKVswXS5tYXRjaChjLnJlZ2V4Lm9ubHkpJiZSZWdFeHAuJDJ8fCJhbGwiLHJ1bGVzOm0ubGVuZ3RoLTEsaGFzcXVlcnk6ay5pbmRleE9mKCIoIik+LTEsbWludzprLm1hdGNoKGMucmVnZXgubWludykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIiksbWF4dzprLm1hdGNoKGMucmVnZXgubWF4dykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIil9KX11KCl9LHc9ZnVuY3Rpb24oKXtpZihkLmxlbmd0aCl7dmFyIGI9ZC5zaGlmdCgpO2YoYi5ocmVmLGZ1bmN0aW9uKGMpe3YoYyxiLmhyZWYsYi5tZWRpYSksb1tiLmhyZWZdPSEwLGEuc2V0VGltZW91dChmdW5jdGlvbigpe3coKX0sMCl9KX19LHg9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPHMubGVuZ3RoO2IrKyl7dmFyIGM9c1tiXSxlPWMuaHJlZixmPWMubWVkaWEsZz1jLnJlbCYmInN0eWxlc2hlZXQiPT09Yy5yZWwudG9Mb3dlckNhc2UoKTtlJiZnJiYhb1tlXSYmKGMuc3R5bGVTaGVldCYmYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQ/KHYoYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQsZSxmKSxvW2VdPSEwKTooIS9eKFthLXpBLVo6XSpcL1wvKS8udGVzdChlKSYmIXJ8fGUucmVwbGFjZShSZWdFeHAuJDEsIiIpLnNwbGl0KCIvIilbMF09PT1hLmxvY2F0aW9uLmhvc3QpJiYoIi8vIj09PWUuc3Vic3RyaW5nKDAsMikmJihlPWEubG9jYXRpb24ucHJvdG9jb2wrZSksZC5wdXNoKHtocmVmOmUsbWVkaWE6Zn0pKSl9dygpfTt4KCksYy51cGRhdGU9eCxjLmdldEVtVmFsdWU9dCxhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGIsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixiKX19KHRoaXMpOwp9Owo="></script>
|
||
<style>h1 {font-size: 34px;}
|
||
h1.title {font-size: 38px;}
|
||
h2 {font-size: 30px;}
|
||
h3 {font-size: 24px;}
|
||
h4 {font-size: 18px;}
|
||
h5 {font-size: 16px;}
|
||
h6 {font-size: 12px;}
|
||
code {color: inherit; background-color: rgba(0, 0, 0, 0.04);}
|
||
pre:not([class]) { background-color: white }</style>
|
||
<script src="data:application/javascript;base64,IWZ1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYyxnKXt2YXIgaD10aGlzO2guJGVsPWEoYyksaC5lbD1jLGguaWQ9ZSsrLGguJGVsLmJpbmQoImRlc3Ryb3llZCIsYS5wcm94eShoLnRlYXJkb3duLGgpKSxoLiRjbG9uZWRIZWFkZXI9bnVsbCxoLiRvcmlnaW5hbEhlYWRlcj1udWxsLGguY2FjaGVkSGVhZGVySGVpZ2h0PW51bGwsaC5pc1N0aWNreT0hMSxoLmhhc0JlZW5TdGlja3k9ITEsaC5sZWZ0T2Zmc2V0PW51bGwsaC50b3BPZmZzZXQ9bnVsbCxoLmluaXQ9ZnVuY3Rpb24oKXtoLnNldE9wdGlvbnMoZyksaC4kZWwuZWFjaChmdW5jdGlvbigpe3ZhciBiPWEodGhpcyk7Yi5jc3MoInBhZGRpbmciLDApLGguJG9yaWdpbmFsSGVhZGVyPWEoInRoZWFkOmZpcnN0Iix0aGlzKSxoLiRjbG9uZWRIZWFkZXI9aC4kb3JpZ2luYWxIZWFkZXIuY2xvbmUoKSxiLnRyaWdnZXIoImNsb25lZEhlYWRlci4iK2QsW2guJGNsb25lZEhlYWRlcl0pLGguJGNsb25lZEhlYWRlci5hZGRDbGFzcygidGFibGVGbG9hdGluZ0hlYWRlciIpLGguJGNsb25lZEhlYWRlci5jc3Moe2Rpc3BsYXk6Im5vbmUiLG9wYWNpdHk6MH0pLGguJG9yaWdpbmFsSGVhZGVyLmFkZENsYXNzKCJ0YWJsZUZsb2F0aW5nSGVhZGVyT3JpZ2luYWwiKSxoLiRvcmlnaW5hbEhlYWRlci5hZnRlcihoLiRjbG9uZWRIZWFkZXIpLGguJHByaW50U3R5bGU9YSgnPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0icHJpbnQiPi50YWJsZUZsb2F0aW5nSGVhZGVye2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O30udGFibGVGbG9hdGluZ0hlYWRlck9yaWdpbmFse3Bvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50O308L3N0eWxlPicpLGguJGhlYWQuYXBwZW5kKGguJHByaW50U3R5bGUpfSksaC51cGRhdGVXaWR0aCgpLGgudG9nZ2xlSGVhZGVycygpLGguYmluZCgpfSxoLmRlc3Ryb3k9ZnVuY3Rpb24oKXtoLiRlbC51bmJpbmQoImRlc3Ryb3llZCIsaC50ZWFyZG93biksaC50ZWFyZG93bigpfSxoLnRlYXJkb3duPWZ1bmN0aW9uKCl7aC5pc1N0aWNreSYmaC4kb3JpZ2luYWxIZWFkZXIuY3NzKCJwb3NpdGlvbiIsInN0YXRpYyIpLGEucmVtb3ZlRGF0YShoLmVsLCJwbHVnaW5fIitkKSxoLnVuYmluZCgpLGguJGNsb25lZEhlYWRlci5yZW1vdmUoKSxoLiRvcmlnaW5hbEhlYWRlci5yZW1vdmVDbGFzcygidGFibGVGbG9hdGluZ0hlYWRlck9yaWdpbmFsIiksaC4kb3JpZ2luYWxIZWFkZXIuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpLGguJHByaW50U3R5bGUucmVtb3ZlKCksaC5lbD1udWxsLGguJGVsPW51bGx9LGguYmluZD1mdW5jdGlvbigpe2guJHNjcm9sbGFibGVBcmVhLm9uKCJzY3JvbGwuIitkLGgudG9nZ2xlSGVhZGVycyksaC5pc1dpbmRvd1Njcm9sbGluZ3x8KGguJHdpbmRvdy5vbigic2Nyb2xsLiIrZCtoLmlkLGguc2V0UG9zaXRpb25WYWx1ZXMpLGguJHdpbmRvdy5vbigicmVzaXplLiIrZCtoLmlkLGgudG9nZ2xlSGVhZGVycykpLGguJHNjcm9sbGFibGVBcmVhLm9uKCJyZXNpemUuIitkLGgudG9nZ2xlSGVhZGVycyksaC4kc2Nyb2xsYWJsZUFyZWEub24oInJlc2l6ZS4iK2QsaC51cGRhdGVXaWR0aCl9LGgudW5iaW5kPWZ1bmN0aW9uKCl7aC4kc2Nyb2xsYWJsZUFyZWEub2ZmKCIuIitkLGgudG9nZ2xlSGVhZGVycyksaC5pc1dpbmRvd1Njcm9sbGluZ3x8KGguJHdpbmRvdy5vZmYoIi4iK2QraC5pZCxoLnNldFBvc2l0aW9uVmFsdWVzKSxoLiR3aW5kb3cub2ZmKCIuIitkK2guaWQsaC50b2dnbGVIZWFkZXJzKSksaC4kc2Nyb2xsYWJsZUFyZWEub2ZmKCIuIitkLGgudXBkYXRlV2lkdGgpfSxoLmRlYm91bmNlPWZ1bmN0aW9uKGEsYil7dmFyIGM9bnVsbDtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZD10aGlzLGU9YXJndW1lbnRzO2NsZWFyVGltZW91dChjKSxjPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmFwcGx5KGQsZSl9LGIpfX0saC50b2dnbGVIZWFkZXJzPWguZGVib3VuY2UoZnVuY3Rpb24oKXtoLiRlbCYmaC4kZWwuZWFjaChmdW5jdGlvbigpe3ZhciBiLGM9YSh0aGlzKSxlPWguaXNXaW5kb3dTY3JvbGxpbmc/aXNOYU4oaC5vcHRpb25zLmZpeGVkT2Zmc2V0KT9oLm9wdGlvbnMuZml4ZWRPZmZzZXQub3V0ZXJIZWlnaHQoKTpoLm9wdGlvbnMuZml4ZWRPZmZzZXQ6aC4kc2Nyb2xsYWJsZUFyZWEub2Zmc2V0KCkudG9wKyhpc05hTihoLm9wdGlvbnMuZml4ZWRPZmZzZXQpPzA6aC5vcHRpb25zLmZpeGVkT2Zmc2V0KSxmPWMub2Zmc2V0KCksZz1oLiRzY3JvbGxhYmxlQXJlYS5zY3JvbGxUb3AoKStlLGk9aC4kc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsTGVmdCgpLGo9aC5vcHRpb25zLmNhY2hlSGVhZGVySGVpZ2h0P2guY2FjaGVkSGVhZGVySGVpZ2h0OmguJGNsb25lZEhlYWRlci5oZWlnaHQoKSxrPWguaXNXaW5kb3dTY3JvbGxpbmc/Zz5mLnRvcDplPmYudG9wLGw9KGguaXNXaW5kb3dTY3JvbGxpbmc/ZzowKTxmLnRvcCtjLmhlaWdodCgpLWotKGguaXNXaW5kb3dTY3JvbGxpbmc/MDplKTtrJiZsPyhiPWYubGVmdC1pK2gub3B0aW9ucy5sZWZ0T2Zmc2V0LGguJG9yaWdpbmFsSGVhZGVyLmNzcyh7cG9zaXRpb246ImZpeGVkIiwibWFyZ2luLXRvcCI6aC5vcHRpb25zLm1hcmdpblRvcCxsZWZ0OmIsInotaW5kZXgiOjN9KSxoLmxlZnRPZmZzZXQ9YixoLnRvcE9mZnNldD1lLGguJGNsb25lZEhlYWRlci5jc3MoImRpc3BsYXkiLCIiKSxoLmlzU3RpY2t5fHwoaC5pc1N0aWNreT0hMCxoLnVwZGF0ZVdpZHRoKCksYy50cmlnZ2VyKCJlbmFibGVkU3RpY2tpbmVzcy4iK2QpKSxoLnNldFBvc2l0aW9uVmFsdWVzKCkpOmguaXNTdGlja3kmJihoLiRvcmlnaW5hbEhlYWRlci5jc3MoInBvc2l0aW9uIiwic3RhdGljIiksaC4kY2xvbmVkSGVhZGVyLmNzcygiZGlzcGxheSIsIm5vbmUiKSxoLmlzU3RpY2t5PSExLGgucmVzZXRXaWR0aChhKCJ0ZCx0aCIsaC4kY2xvbmVkSGVhZGVyKSxhKCJ0ZCx0aCIsaC4kb3JpZ2luYWxIZWFkZXIpKSxjLnRyaWdnZXIoImRpc2FibGVkU3RpY2tpbmVzcy4iK2QpKX0pfSwwKSxoLnNldFBvc2l0aW9uVmFsdWVzPWguZGVib3VuY2UoZnVuY3Rpb24oKXt2YXIgYT1oLiR3aW5kb3cuc2Nyb2xsVG9wKCksYj1oLiR3aW5kb3cuc2Nyb2xsTGVmdCgpOyFoLmlzU3RpY2t5fHwwPmF8fGEraC4kd2luZG93LmhlaWdodCgpPmguJGRvY3VtZW50LmhlaWdodCgpfHwwPmJ8fGIraC4kd2luZG93LndpZHRoKCk+aC4kZG9jdW1lbnQud2lkdGgoKXx8aC4kb3JpZ2luYWxIZWFkZXIuY3NzKHt0b3A6aC50b3BPZmZzZXQtKGguaXNXaW5kb3dTY3JvbGxpbmc/MDphKSxsZWZ0OmgubGVmdE9mZnNldC0oaC5pc1dpbmRvd1Njcm9sbGluZz8wOmIpfSl9LDApLGgudXBkYXRlV2lkdGg9aC5kZWJvdW5jZShmdW5jdGlvbigpe2lmKGguaXNTdGlja3kpe2guJG9yaWdpbmFsSGVhZGVyQ2VsbHN8fChoLiRvcmlnaW5hbEhlYWRlckNlbGxzPWEoInRoLHRkIixoLiRvcmlnaW5hbEhlYWRlcikpLGguJGNsb25lZEhlYWRlckNlbGxzfHwoaC4kY2xvbmVkSGVhZGVyQ2VsbHM9YSgidGgsdGQiLGguJGNsb25lZEhlYWRlcikpO3ZhciBiPWguZ2V0V2lkdGgoaC4kY2xvbmVkSGVhZGVyQ2VsbHMpO2guc2V0V2lkdGgoYixoLiRjbG9uZWRIZWFkZXJDZWxscyxoLiRvcmlnaW5hbEhlYWRlckNlbGxzKSxoLiRvcmlnaW5hbEhlYWRlci5jc3MoIndpZHRoIixoLiRjbG9uZWRIZWFkZXIud2lkdGgoKSksaC5vcHRpb25zLmNhY2hlSGVhZGVySGVpZ2h0JiYoaC5jYWNoZWRIZWFkZXJIZWlnaHQ9aC4kY2xvbmVkSGVhZGVyLmhlaWdodCgpKX19LDApLGguZ2V0V2lkdGg9ZnVuY3Rpb24oYyl7dmFyIGQ9W107cmV0dXJuIGMuZWFjaChmdW5jdGlvbihjKXt2YXIgZSxmPWEodGhpcyk7aWYoImJvcmRlci1ib3giPT09Zi5jc3MoImJveC1zaXppbmciKSl7dmFyIGc9ZlswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlPWcud2lkdGg/Zy53aWR0aDpnLnJpZ2h0LWcubGVmdH1lbHNle3ZhciBpPWEoInRoIixoLiRvcmlnaW5hbEhlYWRlcik7aWYoImNvbGxhcHNlIj09PWkuY3NzKCJib3JkZXItY29sbGFwc2UiKSlpZihiLmdldENvbXB1dGVkU3R5bGUpZT1wYXJzZUZsb2F0KGIuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLG51bGwpLndpZHRoKTtlbHNle3ZhciBqPXBhcnNlRmxvYXQoZi5jc3MoInBhZGRpbmctbGVmdCIpKSxrPXBhcnNlRmxvYXQoZi5jc3MoInBhZGRpbmctcmlnaHQiKSksbD1wYXJzZUZsb2F0KGYuY3NzKCJib3JkZXItd2lkdGgiKSk7ZT1mLm91dGVyV2lkdGgoKS1qLWstbH1lbHNlIGU9Zi53aWR0aCgpfWRbY109ZX0pLGR9LGguc2V0V2lkdGg9ZnVuY3Rpb24oYSxiLGMpe2IuZWFjaChmdW5jdGlvbihiKXt2YXIgZD1hW2JdO2MuZXEoYikuY3NzKHsibWluLXdpZHRoIjpkLCJtYXgtd2lkdGgiOmR9KX0pfSxoLnJlc2V0V2lkdGg9ZnVuY3Rpb24oYixjKXtiLmVhY2goZnVuY3Rpb24oYil7dmFyIGQ9YSh0aGlzKTtjLmVxKGIpLmNzcyh7Im1pbi13aWR0aCI6ZC5jc3MoIm1pbi13aWR0aCIpLCJtYXgtd2lkdGgiOmQuY3NzKCJtYXgtd2lkdGgiKX0pfSl9LGguc2V0T3B0aW9ucz1mdW5jdGlvbihiKXtoLm9wdGlvbnM9YS5leHRlbmQoe30sZixiKSxoLiR3aW5kb3c9YShoLm9wdGlvbnMub2JqV2luZG93KSxoLiRoZWFkPWEoaC5vcHRpb25zLm9iakhlYWQpLGguJGRvY3VtZW50PWEoaC5vcHRpb25zLm9iakRvY3VtZW50KSxoLiRzY3JvbGxhYmxlQXJlYT1hKGgub3B0aW9ucy5zY3JvbGxhYmxlQXJlYSksaC5pc1dpbmRvd1Njcm9sbGluZz1oLiRzY3JvbGxhYmxlQXJlYVswXT09PWguJHdpbmRvd1swXX0saC51cGRhdGVPcHRpb25zPWZ1bmN0aW9uKGEpe2guc2V0T3B0aW9ucyhhKSxoLnVuYmluZCgpLGguYmluZCgpLGgudXBkYXRlV2lkdGgoKSxoLnRvZ2dsZUhlYWRlcnMoKX0saC5pbml0KCl9dmFyIGQ9InN0aWNreVRhYmxlSGVhZGVycyIsZT0wLGY9e2ZpeGVkT2Zmc2V0OjAsbGVmdE9mZnNldDowLG1hcmdpblRvcDowLG9iakRvY3VtZW50OmRvY3VtZW50LG9iakhlYWQ6ImhlYWQiLG9ialdpbmRvdzpiLHNjcm9sbGFibGVBcmVhOmIsY2FjaGVIZWFkZXJIZWlnaHQ6ITF9O2EuZm5bZF09ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWEuZGF0YSh0aGlzLCJwbHVnaW5fIitkKTtlPyJzdHJpbmciPT10eXBlb2YgYj9lW2JdLmFwcGx5KGUpOmUudXBkYXRlT3B0aW9ucyhiKToiZGVzdHJveSIhPT1iJiZhLmRhdGEodGhpcywicGx1Z2luXyIrZCxuZXcgYyh0aGlzLGIpKX0pfX0oalF1ZXJ5LHdpbmRvdyk7"></script>
|
||
<script src="data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gdHJ5RXZhbCh0YXNrKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgLy8gQXR0ZW1wdCBldmFsKCkgYm90aCB3aXRoIGFuZCB3aXRob3V0IGVuY2xvc2luZyBpbiBwYXJlbnRoZXNlcy4KICAvLyBOb3RlIHRoYXQgZW5jbG9zaW5nIGNvZXJjZXMgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpbnRvCiAgLy8gYW4gZXhwcmVzc2lvbiB0aGF0IGV2YWwoKSBjYW4gcGFyc2UKICAvLyAob3RoZXJ3aXNlLCBhIFN5bnRheEVycm9yIGlzIHRocm93bikKICBmdW5jdGlvbiB0cnlFdmFsKGNvZGUpIHsKICAgIHZhciByZXN1bHQgPSBudWxsOwogICAgdHJ5IHsKICAgICAgcmVzdWx0ID0gZXZhbCgiKCIgKyBjb2RlICsgIikiKTsKICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgaWYgKCEoZXJyb3IgaW5zdGFuY2VvZiBTeW50YXhFcnJvcikpIHsKICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgfQogICAgICB0cnkgewogICAgICAgIHJlc3VsdCA9IGV2YWwoY29kZSk7CiAgICAgIH0gY2F0Y2goZSkgewogICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3ludGF4RXJyb3IpIHsKICAgICAgICAgIHRocm93IGVycm9yOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBlOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKICB9CgogIGZ1bmN0aW9uIGluaXRTaXppbmcoZWwpIHsKICAgIHZhciBzaXppbmcgPSBzaXppbmdQb2xpY3koZWwpOwogICAgaWYgKCFzaXppbmcpCiAgICAgIHJldHVybjsKCiAgICB2YXIgY2VsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImh0bWx3aWRnZXRfY29udGFpbmVyIik7CiAgICBpZiAoIWNlbCkKICAgICAgcmV0dXJuOwoKICAgIGlmICh0eXBlb2Yoc2l6aW5nLnBhZGRpbmcpICE9PSAidW5kZWZpbmVkIikgewogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm1hcmdpbiA9ICIwIjsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nID0gcGFkZGluZ1RvQ3NzKHVucGFja1BhZGRpbmcoc2l6aW5nLnBhZGRpbmcpKTsKICAgIH0KCiAgICBpZiAoc2l6aW5nLmZpbGwpIHsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICJoaWRkZW4iOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLmhlaWdodCA9ICIxMDAlIjsKICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLndpZHRoID0gIjEwMCUiOwogICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gIjEwMCUiOwogICAgICBpZiAoY2VsKSB7CiAgICAgICAgY2VsLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKICAgICAgICB2YXIgcGFkID0gdW5wYWNrUGFkZGluZyhzaXppbmcucGFkZGluZyk7CiAgICAgICAgY2VsLnN0eWxlLnRvcCA9IHBhZC50b3AgKyAicHgiOwogICAgICAgIGNlbC5zdHlsZS5yaWdodCA9IHBhZC5yaWdodCArICJweCI7CiAgICAgICAgY2VsLnN0eWxlLmJvdHRvbSA9IHBhZC5ib3R0b20gKyAicHgiOwogICAgICAgIGNlbC5zdHlsZS5sZWZ0ID0gcGFkLmxlZnQgKyAicHgiOwogICAgICAgIGVsLnN0eWxlLndpZHRoID0gIjEwMCUiOwogICAgICAgIGVsLnN0eWxlLmhlaWdodCA9ICIxMDAlIjsKICAgICAgfQoKICAgICAgcmV0dXJuIHsKICAgICAgICBnZXRXaWR0aDogZnVuY3Rpb24oKSB7IHJldHVybiBjZWwub2Zmc2V0V2lkdGg7IH0sCiAgICAgICAgZ2V0SGVpZ2h0OiBmdW5jdGlvbigpIHsgcmV0dXJuIGNlbC5vZmZzZXRIZWlnaHQ7IH0KICAgICAgfTsKCiAgICB9IGVsc2UgewogICAgICBlbC5zdHlsZS53aWR0aCA9IHB4KHNpemluZy53aWR0aCk7CiAgICAgIGVsLnN0eWxlLmhlaWdodCA9IHB4KHNpemluZy5oZWlnaHQpOwoKICAgICAgcmV0dXJuIHsKICAgICAgICBnZXRXaWR0aDogZnVuY3Rpb24oKSB7IHJldHVybiBlbC5vZmZzZXRXaWR0aDsgfSwKICAgICAgICBnZXRIZWlnaHQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gZWwub2Zmc2V0SGVpZ2h0OyB9CiAgICAgIH07CiAgICB9CiAgfQoKICAvLyBEZWZhdWx0IGltcGxlbWVudGF0aW9ucyBmb3IgbWV0aG9kcwogIHZhciBkZWZhdWx0cyA9IHsKICAgIGZpbmQ6IGZ1bmN0aW9uKHNjb3BlKSB7CiAgICAgIHJldHVybiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCAiLiIgKyB0aGlzLm5hbWUpOwogICAgfSwKICAgIHJlbmRlckVycm9yOiBmdW5jdGlvbihlbCwgZXJyKSB7CiAgICAgIHZhciAkZWwgPSAkKGVsKTsKCiAgICAgIHRoaXMuY2xlYXJFcnJvcihlbCk7CgogICAgICAvLyBBZGQgYWxsIHRoZXNlIGVycm9yIGNsYXNzZXMsIGFzIFNoaW55IGRvZXMKICAgICAgdmFyIGVyckNsYXNzID0gInNoaW55LW91dHB1dC1lcnJvciI7CiAgICAgIGlmIChlcnIudHlwZSAhPT0gbnVsbCkgewogICAgICAgIC8vIHVzZSB0aGUgY2xhc3NlcyBvZiB0aGUgZXJyb3IgY29uZGl0aW9uIGFzIENTUyBjbGFzcyBuYW1lcwogICAgICAgIGVyckNsYXNzID0gZXJyQ2xhc3MgKyAiICIgKyAkLm1hcChhc0FycmF5KGVyci50eXBlKSwgZnVuY3Rpb24odHlwZSkgewogICAgICAgICAgcmV0dXJuIGVyckNsYXNzICsgIi0iICsgdHlwZTsKICAgICAgICB9KS5qb2luKCIgIik7CiAgICAgIH0KICAgICAgZXJyQ2xhc3MgPSBlcnJDbGFzcyArICIgaHRtbHdpZGdldHMtZXJyb3IiOwoKICAgICAgLy8gSXMgZWwgaW5saW5lIG9yIGJsb2NrPyBJZiBpbmxpbmUgb3IgaW5saW5lLWJsb2NrLCBqdXN0IGRpc3BsYXk6bm9uZSBpdAogICAgICAvLyBhbmQgYWRkIGFuIGlubGluZSBlcnJvci4KICAgICAgdmFyIGRpc3BsYXkgPSAkZWwuY3NzKCJkaXNwbGF5Iik7CiAgICAgICRlbC5kYXRhKCJyZXN0b3JlLWRpc3BsYXktbW9kZSIsIGRpc3BsYXkpOwoKICAgICAgaWYgKGRpc3BsYXkgPT09ICJpbmxpbmUiIHx8IGRpc3BsYXkgPT09ICJpbmxpbmUtYmxvY2siKSB7CiAgICAgICAgJGVsLmhpZGUoKTsKICAgICAgICBpZiAoZXJyLm1lc3NhZ2UgIT09ICIiKSB7CiAgICAgICAgICB2YXIgZXJyb3JTcGFuID0gJCgiPHNwYW4+IikuYWRkQ2xhc3MoZXJyQ2xhc3MpOwogICAgICAgICAgZXJyb3JTcGFuLnRleHQoZXJyLm1lc3NhZ2UpOwogICAgICAgICAgJGVsLmFmdGVyKGVycm9yU3Bhbik7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGRpc3BsYXkgPT09ICJibG9jayIpIHsKICAgICAgICAvLyBJZiBibG9jaywgYWRkIGFuIGVycm9yIGp1c3QgYWZ0ZXIgdGhlIGVsLCBzZXQgdmlzaWJpbGl0eTpub25lIG9uIHRoZQogICAgICAgIC8vIGVsLCBhbmQgcG9zaXRpb24gdGhlIGVycm9yIHRvIGJlIG9uIHRvcCBvZiB0aGUgZWwuCiAgICAgICAgLy8gTWFyayBpdCB3aXRoIGEgdW5pcXVlIElEIGFuZCBDU1MgY2xhc3Mgc28gd2UgY2FuIHJlbW92ZSBpdCBsYXRlci4KICAgICAgICAkZWwuY3NzKCJ2aXNpYmlsaXR5IiwgImhpZGRlbiIpOwogICAgICAgIGlmIChlcnIubWVzc2FnZSAhPT0gIiIpIHsKICAgICAgICAgIHZhciBlcnJvckRpdiA9ICQoIjxkaXY+IikuYWRkQ2xhc3MoZXJyQ2xhc3MpLmNzcygicG9zaXRpb24iLCAiYWJzb2x1dGUiKQogICAgICAgICAgICAuY3NzKCJ0b3AiLCBlbC5vZmZzZXRUb3ApCiAgICAgICAgICAgIC5jc3MoImxlZnQiLCBlbC5vZmZzZXRMZWZ0KQogICAgICAgICAgICAvLyBzZXR0aW5nIHdpZHRoIGNhbiBwdXNoIG91dCB0aGUgcGFnZSBzaXplLCBmb3JjaW5nIG90aGVyd2lzZQogICAgICAgICAgICAvLyB1bm5lY2Vzc2FyeSBzY3JvbGxiYXJzIHRvIGFwcGVhciBhbmQgbWFraW5nIGl0IGltcG9zc2libGUgZm9yCiAgICAgICAgICAgIC8vIHRoZSBlbGVtZW50IHRvIHNocmluazsgc28gdXNlIG1heC13aWR0aCBpbnN0ZWFkCiAgICAgICAgICAgIC5jc3MoIm1heFdpZHRoIiwgZWwub2Zmc2V0V2lkdGgpCiAgICAgICAgICAgIC5jc3MoImhlaWdodCIsIGVsLm9mZnNldEhlaWdodCk7CiAgICAgICAgICBlcnJvckRpdi50ZXh0KGVyci5tZXNzYWdlKTsKICAgICAgICAgICRlbC5hZnRlcihlcnJvckRpdik7CgogICAgICAgICAgLy8gUmVhbGx5IGR1bWIgd2F5IHRvIGtlZXAgdGhlIHNpemUvcG9zaXRpb24gb2YgdGhlIGVycm9yIGluIHN5bmMgd2l0aAogICAgICAgICAgLy8gdGhlIHBhcmVudCBlbGVtZW50IGFzIHRoZSB3aW5kb3cgaXMgcmVzaXplZCBvciB3aGF0ZXZlci4KICAgICAgICAgIHZhciBpbnRJZCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoIWVycm9yRGl2WzBdLnBhcmVudEVsZW1lbnQpIHsKICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludElkKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZXJyb3JEaXYKICAgICAgICAgICAgICAuY3NzKCJ0b3AiLCBlbC5vZmZzZXRUb3ApCiAgICAgICAgICAgICAgLmNzcygibGVmdCIsIGVsLm9mZnNldExlZnQpCiAgICAgICAgICAgICAgLmNzcygibWF4V2lkdGgiLCBlbC5vZmZzZXRXaWR0aCkKICAgICAgICAgICAgICAuY3NzKCJoZWlnaHQiLCBlbC5vZmZzZXRIZWlnaHQpOwogICAgICAgICAgfSwgNTAwKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICBjbGVhckVycm9yOiBmdW5jdGlvbihlbCkgewogICAgICB2YXIgJGVsID0gJChlbCk7CiAgICAgIHZhciBkaXNwbGF5ID0gJGVsLmRhdGEoInJlc3RvcmUtZGlzcGxheS1tb2RlIik7CiAgICAgICRlbC5kYXRhKCJyZXN0b3JlLWRpc3BsYXktbW9kZSIsIG51bGwpOwoKICAgICAgaWYgKGRpc3BsYXkgPT09ICJpbmxpbmUiIHx8IGRpc3BsYXkgPT09ICJpbmxpbmUtYmxvY2siKSB7CiAgICAgICAgaWYgKGRpc3BsYXkpCiAgICAgICAgICAkZWwuY3NzKCJkaXNwbGF5IiwgZGlzcGxheSk7CiAgICAgICAgJChlbC5uZXh0U2libGluZykuZmlsdGVyKCIuaHRtbHdpZGdldHMtZXJyb3IiKS5yZW1vdmUoKTsKICAgICAgfSBlbHNlIGlmIChkaXNwbGF5ID09PSAiYmxvY2siKXsKICAgICAgICAkZWwuY3NzKCJ2aXNpYmlsaXR5IiwgImluaGVyaXQiKTsKICAgICAgICAkKGVsLm5leHRTaWJsaW5nKS5maWx0ZXIoIi5odG1sd2lkZ2V0cy1lcnJvciIpLnJlbW92ZSgpOwogICAgICB9CiAgICB9LAogICAgc2l6aW5nOiB7fQogIH07CgogIC8vIENhbGxlZCBieSB3aWRnZXQgYmluZGluZ3MgdG8gcmVnaXN0ZXIgYSBuZXcgdHlwZSBvZiB3aWRnZXQuIFRoZSBkZWZpbml0aW9uCiAgLy8gb2JqZWN0IGNhbiBjb250YWluIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAvLyAtIG5hbWUgKHJlcXVpcmVkKSAtIEEgc3RyaW5nIGluZGljYXRpbmcgdGhlIGJpbmRpbmcgbmFtZSwgd2hpY2ggd2lsbCBiZQogIC8vICAgdXNlZCBieSBkZWZhdWx0IGFzIHRoZSBDU1MgY2xhc3NuYW1lIHRvIGxvb2sgZm9yLgogIC8vIC0gaW5pdGlhbGl6ZSAob3B0aW9uYWwpIC0gQSBmdW5jdGlvbihlbCkgdGhhdCB3aWxsIGJlIGNhbGxlZCBvbmNlIHBlcgogIC8vICAgd2lkZ2V0IGVsZW1lbnQ7IGlmIGEgdmFsdWUgaXMgcmV0dXJuZWQsIGl0IHdpbGwgYmUgcGFzc2VkIGFzIHRoZSB0aGlyZAogIC8vICAgdmFsdWUgdG8gcmVuZGVyVmFsdWUuCiAgLy8gLSByZW5kZXJWYWx1ZSAocmVxdWlyZWQpIC0gQSBmdW5jdGlvbihlbCwgZGF0YSwgaW5pdFZhbHVlKSB0aGF0IHdpbGwgYmUKICAvLyAgIGNhbGxlZCB3aXRoIGRhdGEuIFN0YXRpYyBjb250ZXh0cyB3aWxsIGNhdXNlIHRoaXMgdG8gYmUgY2FsbGVkIG9uY2UgcGVyCiAgLy8gICBlbGVtZW50OyBTaGlueSBhcHBzIHdpbGwgY2F1c2UgdGhpcyB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgcGVyCiAgLy8gICBlbGVtZW50LCBhcyB0aGUgZGF0YSBjaGFuZ2VzLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXQgPSBmdW5jdGlvbihkZWZpbml0aW9uKSB7CiAgICBpZiAoIWRlZmluaXRpb24ubmFtZSkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldpZGdldCBtdXN0IGhhdmUgYSBuYW1lIik7CiAgICB9CiAgICBpZiAoIWRlZmluaXRpb24udHlwZSkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldpZGdldCBtdXN0IGhhdmUgYSB0eXBlIik7CiAgICB9CiAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG91dHB1dCB3aWRnZXRzCiAgICBpZiAoZGVmaW5pdGlvbi50eXBlICE9PSAib3V0cHV0IikgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB3aWRnZXQgdHlwZSAnIiArIGRlZmluaXRpb24udHlwZSArICInIik7CiAgICB9CiAgICAvLyBUT0RPOiBWZXJpZnkgdGhhdCAubmFtZSBpcyBhIHZhbGlkIENTUyBjbGFzc25hbWUKCiAgICAvLyBTdXBwb3J0IG5ldy1zdHlsZSBpbnN0YW5jZS1ib3VuZCBkZWZpbml0aW9ucy4gT2xkLXN0eWxlIGNsYXNzLWJvdW5kCiAgICAvLyBkZWZpbml0aW9ucyBoYXZlIG9uZSB3aWRnZXQgIm9iamVjdCIgcGVyIHdpZGdldCBwZXIgdHlwZS9jbGFzcyBvZgogICAgLy8gd2lkZ2V0OyB0aGUgcmVuZGVyVmFsdWUgYW5kIHJlc2l6ZSBtZXRob2RzIG9uIHN1Y2ggd2lkZ2V0IG9iamVjdHMKICAgIC8vIHRha2UgZWwgYW5kIGluc3RhbmNlIGFyZ3VtZW50cywgYmVjYXVzZSB0aGUgd2lkZ2V0IG9iamVjdCBjYW4ndAogICAgLy8gc3RvcmUgdGhlbS4gTmV3LXN0eWxlIGluc3RhbmNlLWJvdW5kIGRlZmluaXRpb25zIGhhdmUgb25lIHdpZGdldAogICAgLy8gb2JqZWN0IHBlciB3aWRnZXQgaW5zdGFuY2U7IHRoZSBkZWZpbml0aW9uIHRoYXQncyBwYXNzZWQgaW4gZG9lc24ndAogICAgLy8gcHJvdmlkZSByZW5kZXJWYWx1ZSBvciByZXNpemUgbWV0aG9kcyBhdCBhbGwsIGp1c3QgdGhlIHNpbmdsZSBtZXRob2QKICAgIC8vICAgZmFjdG9yeShlbCwgd2lkdGgsIGhlaWdodCkKICAgIC8vIHdoaWNoIHJldHVybnMgYW4gb2JqZWN0IHRoYXQgaGFzIHJlbmRlclZhbHVlKHgpIGFuZCByZXNpemUodywgaCkuCiAgICAvLyBUaGlzIGVuYWJsZXMgYSBmYXIgbW9yZSBuYXR1cmFsIHByb2dyYW1taW5nIHN0eWxlIGZvciB0aGUgd2lkZ2V0CiAgICAvLyBhdXRob3IsIHdobyBjYW4gc3RvcmUgcGVyLWluc3RhbmNlIHN0YXRlIHVzaW5nIGVpdGhlciBPTy1zdHlsZQogICAgLy8gaW5zdGFuY2UgZmllbGRzIG9yIGZ1bmN0aW9uYWwtc3R5bGUgY2xvc3VyZSB2YXJpYWJsZXMgKEkgZ3Vlc3MgdGhpcwogICAgLy8gaXMgaW4gY29udHJhc3QgdG8gd2hhdCBjYW4gb25seSBiZSBjYWxsZWQgQy1zdHlsZSBwc2V1ZG8tT08gd2hpY2ggaXMKICAgIC8vIHdoYXQgd2UgcmVxdWlyZWQgYmVmb3JlKS4KICAgIGlmIChkZWZpbml0aW9uLmZhY3RvcnkpIHsKICAgICAgZGVmaW5pdGlvbiA9IGNyZWF0ZUxlZ2FjeURlZmluaXRpb25BZGFwdGVyKGRlZmluaXRpb24pOwogICAgfQoKICAgIGlmICghZGVmaW5pdGlvbi5yZW5kZXJWYWx1ZSkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldpZGdldCBtdXN0IGhhdmUgYSByZW5kZXJWYWx1ZSBmdW5jdGlvbiIpOwogICAgfQoKICAgIC8vIEZvciBzdGF0aWMgcmVuZGVyaW5nIChub24tU2hpbnkpLCB1c2UgYSBzaW1wbGUgd2lkZ2V0IHJlZ2lzdHJhdGlvbgogICAgLy8gc2NoZW1lLiBXZSBhbHNvIHVzZSB0aGlzIHNjaGVtZSBmb3IgU2hpbnkgYXBwcy9kb2N1bWVudHMgdGhhdCBhbHNvCiAgICAvLyBjb250YWluIHN0YXRpYyB3aWRnZXRzLgogICAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMgPSB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyB8fCBbXTsKICAgIC8vIE1lcmdlIGRlZmF1bHRzIGludG8gdGhlIGRlZmluaXRpb247IGRvbid0IG11dGF0ZSB0aGUgb3JpZ2luYWwgZGVmaW5pdGlvbi4KICAgIHZhciBzdGF0aWNCaW5kaW5nID0gZXh0ZW5kKHt9LCBkZWZhdWx0cywgZGVmaW5pdGlvbik7CiAgICBvdmVycmlkZU1ldGhvZChzdGF0aWNCaW5kaW5nLCAiZmluZCIsIGZ1bmN0aW9uKHN1cGVyZnVuYykgewogICAgICByZXR1cm4gZnVuY3Rpb24oc2NvcGUpIHsKICAgICAgICB2YXIgcmVzdWx0cyA9IHN1cGVyZnVuYyhzY29wZSk7CiAgICAgICAgLy8gRmlsdGVyIG91dCBTaGlueSBvdXRwdXRzLCB3ZSBvbmx5IHdhbnQgdGhlIHN0YXRpYyBraW5kCiAgICAgICAgcmV0dXJuIGZpbHRlckJ5Q2xhc3MocmVzdWx0cywgImh0bWwtd2lkZ2V0LW91dHB1dCIsIGZhbHNlKTsKICAgICAgfTsKICAgIH0pOwogICAgd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMucHVzaChzdGF0aWNCaW5kaW5nKTsKCiAgICBpZiAoc2hpbnlNb2RlKSB7CiAgICAgIC8vIFNoaW55IGlzIHJ1bm5pbmcuIFJlZ2lzdGVyIHRoZSBkZWZpbml0aW9uIHdpdGggYW4gb3V0cHV0IGJpbmRpbmcuCiAgICAgIC8vIFRoZSBkZWZpbml0aW9uIGl0c2VsZiB3aWxsIG5vdCBiZSB0aGUgb3V0cHV0IGJpbmRpbmcsIGluc3RlYWQKICAgICAgLy8gd2Ugd2lsbCBtYWtlIGFuIG91dHB1dCBiaW5kaW5nIG9iamVjdCB0aGF0IGRlbGVnYXRlcyB0byB0aGUKICAgICAgLy8gZGVmaW5pdGlvbi4gVGhpcyBpcyBiZWNhdXNlIHdlIGZvb2xpc2hseSB1c2VkIHRoZSBzYW1lIG1ldGhvZAogICAgICAvLyBuYW1lIChyZW5kZXJWYWx1ZSkgZm9yIGh0bWx3aWRnZXRzIGRlZmluaXRpb24gYW5kIFNoaW55IGJpbmRpbmdzCiAgICAgIC8vIGJ1dCB0aGV5IGFjdHVhbGx5IGhhdmUgcXVpdGUgZGlmZmVyZW50IHNlbWFudGljcyAodGhlIFNoaW55CiAgICAgIC8vIGJpbmRpbmdzIHJlY2VpdmUgZGF0YSB0aGF0IGluY2x1ZGVzIGxvdHMgb2YgbWV0YWRhdGEgdGhhdCBpdAogICAgICAvLyBzdHJpcHMgb2ZmIGJlZm9yZSBjYWxsaW5nIGh0bWx3aWRnZXRzIHJlbmRlclZhbHVlKS4gV2UgY2FuJ3QKICAgICAgLy8ganVzdCBpZ25vcmUgdGhlIGRpZmZlcmVuY2UgYmVjYXVzZSBpbiBzb21lIHdpZGdldHMgaXQncyBoZWxwZnVsCiAgICAgIC8vIHRvIGNhbGwgdGhpcy5yZW5kZXJWYWx1ZSgpIGZyb20gaW5zaWRlIG9mIHJlc2l6ZSgpLCBhbmQgaWYKICAgICAgLy8gd2UncmUgbm90IGRlbGVnYXRpbmcsIHRoZW4gdGhhdCBjYWxsIHdpbGwgZ28gdG8gdGhlIFNoaW55CiAgICAgIC8vIHZlcnNpb24gaW5zdGVhZCBvZiB0aGUgaHRtbHdpZGdldHMgdmVyc2lvbi4KCiAgICAgIC8vIE1lcmdlIGRlZmF1bHRzIHdpdGggZGVmaW5pdGlvbiwgd2l0aG91dCBtdXRhdGluZyBlaXRoZXIuCiAgICAgIHZhciBiaW5kaW5nRGVmID0gZXh0ZW5kKHt9LCBkZWZhdWx0cywgZGVmaW5pdGlvbik7CgogICAgICAvLyBUaGlzIG9iamVjdCB3aWxsIGJlIG91ciBhY3R1YWwgU2hpbnkgYmluZGluZy4KICAgICAgdmFyIHNoaW55QmluZGluZyA9IG5ldyBTaGlueS5PdXRwdXRCaW5kaW5nKCk7CgogICAgICAvLyBXaXRoIGEgZmV3IGV4Y2VwdGlvbnMsIHdlJ2xsIHdhbnQgdG8gc2ltcGx5IHVzZSB0aGUgYmluZGluZ0RlZidzCiAgICAgIC8vIHZlcnNpb24gb2YgbWV0aG9kcyBpZiB0aGV5IGFyZSBhdmFpbGFibGUsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8KICAgICAgLy8gU2hpbnkncyBkZWZhdWx0cy4gTk9URTogSWYgU2hpbnkncyBvdXRwdXQgYmluZGluZ3MgZ2FpbiBhZGRpdGlvbmFsCiAgICAgIC8vIG1ldGhvZHMgaW4gdGhlIGZ1dHVyZSwgYW5kIHdlIHdhbnQgdGhlbSB0byBiZSBvdmVycmlkZWFibGUgYnkKICAgICAgLy8gSFRNTFdpZGdldCBiaW5kaW5nIGRlZmluaXRpb25zLCB0aGVuIHdlJ2xsIG5lZWQgdG8gYWRkIHRoZW0gdG8gdGhpcwogICAgICAvLyBsaXN0LgogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJnZXRJZCIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJvblZhbHVlQ2hhbmdlIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgIm9uVmFsdWVFcnJvciIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJyZW5kZXJFcnJvciIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJjbGVhckVycm9yIik7CiAgICAgIGRlbGVnYXRlTWV0aG9kKHNoaW55QmluZGluZywgYmluZGluZ0RlZiwgInNob3dQcm9ncmVzcyIpOwoKICAgICAgLy8gVGhlIGZpbmQsIHJlbmRlclZhbHVlLCBhbmQgcmVzaXplIGFyZSBoYW5kbGVkIGRpZmZlcmVudGx5LCBiZWNhdXNlIHdlCiAgICAgIC8vIHdhbnQgdG8gYWN0dWFsbHkgZGVjb3JhdGUgdGhlIGJlaGF2aW9yIG9mIHRoZSBiaW5kaW5nRGVmIG1ldGhvZHMuCgogICAgICBzaGlueUJpbmRpbmcuZmluZCA9IGZ1bmN0aW9uKHNjb3BlKSB7CiAgICAgICAgdmFyIHJlc3VsdHMgPSBiaW5kaW5nRGVmLmZpbmQoc2NvcGUpOwoKICAgICAgICAvLyBPbmx5IHJldHVybiBlbGVtZW50cyB0aGF0IGFyZSBTaGlueSBvdXRwdXRzLCBub3Qgc3RhdGljIG9uZXMKICAgICAgICB2YXIgZHluYW1pY1Jlc3VsdHMgPSByZXN1bHRzLmZpbHRlcigiLmh0bWwtd2lkZ2V0LW91dHB1dCIpOwoKICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgd2hhdGV2ZXIgY2F1c2VkIFNoaW55IHRvIHRoaW5rIHRoZXJlIG1pZ2h0IGJlCiAgICAgICAgLy8gbmV3IGR5bmFtaWMgb3V0cHV0cywgYWxzbyBjYXVzZWQgdGhlcmUgdG8gYmUgbmV3IHN0YXRpYyBvdXRwdXRzLgogICAgICAgIC8vIFNpbmNlIHRoZXJlIG1pZ2h0IGJlIGxvdHMgb2YgZGlmZmVyZW50IGh0bWx3aWRnZXRzIGJpbmRpbmdzLCB3ZQogICAgICAgIC8vIHNjaGVkdWxlIGV4ZWN1dGlvbiBmb3IgbGF0ZXItLW5vIG5lZWQgdG8gc3RhdGljUmVuZGVyIG11bHRpcGxlCiAgICAgICAgLy8gdGltZXMuCiAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoICE9PSBkeW5hbWljUmVzdWx0cy5sZW5ndGgpCiAgICAgICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlcigpOwoKICAgICAgICByZXR1cm4gZHluYW1pY1Jlc3VsdHM7CiAgICAgIH07CgogICAgICAvLyBXcmFwIHJlbmRlclZhbHVlIHRvIGhhbmRsZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggdW5mb3J0dW5hdGVseSBpc24ndAogICAgICAvLyBzdXBwb3J0ZWQgbmF0aXZlbHkgYnkgU2hpbnkgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLgoKICAgICAgc2hpbnlCaW5kaW5nLnJlbmRlclZhbHVlID0gZnVuY3Rpb24oZWwsIGRhdGEpIHsKICAgICAgICBTaGlueS5yZW5kZXJEZXBlbmRlbmNpZXMoZGF0YS5kZXBzKTsKICAgICAgICAvLyBSZXNvbHZlIHN0cmluZ3MgbWFya2VkIGFzIGphdmFzY3JpcHQgbGl0ZXJhbHMgdG8gb2JqZWN0cwogICAgICAgIGlmICghKGRhdGEuZXZhbHMgaW5zdGFuY2VvZiBBcnJheSkpIGRhdGEuZXZhbHMgPSBbZGF0YS5ldmFsc107CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGRhdGEuZXZhbHMgJiYgaSA8IGRhdGEuZXZhbHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlcihkYXRhLngsIGRhdGEuZXZhbHNbaV0pOwogICAgICAgIH0KICAgICAgICBpZiAoIWJpbmRpbmdEZWYucmVuZGVyT25OdWxsVmFsdWUpIHsKICAgICAgICAgIGlmIChkYXRhLnggPT09IG51bGwpIHsKICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBlbC5zdHlsZS52aXNpYmlsaXR5ID0gImluaGVyaXQiOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIWVsZW1lbnREYXRhKGVsLCAiaW5pdGlhbGl6ZWQiKSkgewogICAgICAgICAgaW5pdFNpemluZyhlbCk7CgogICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIsIHRydWUpOwogICAgICAgICAgaWYgKGJpbmRpbmdEZWYuaW5pdGlhbGl6ZSkgewogICAgICAgICAgICB2YXIgcmVzdWx0ID0gYmluZGluZ0RlZi5pbml0aWFsaXplKGVsLCBlbC5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgICBlbC5vZmZzZXRIZWlnaHQpOwogICAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgcmVzdWx0KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYmluZGluZ0RlZi5yZW5kZXJWYWx1ZShlbCwgZGF0YS54LCBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IikpOwogICAgICAgIGV2YWxBbmRSdW4oZGF0YS5qc0hvb2tzLnJlbmRlciwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpLCBbZWwsIGRhdGEueF0pOwogICAgICB9OwoKICAgICAgLy8gT25seSBvdmVycmlkZSByZXNpemUgaWYgYmluZGluZ0RlZiBpbXBsZW1lbnRzIGl0CiAgICAgIGlmIChiaW5kaW5nRGVmLnJlc2l6ZSkgewogICAgICAgIHNoaW55QmluZGluZy5yZXNpemUgPSBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCkgewogICAgICAgICAgLy8gU2hpbnkgY2FuIGNhbGwgcmVzaXplIGJlZm9yZSBpbml0aWFsaXplL3JlbmRlclZhbHVlIGhhdmUgYmVlbgogICAgICAgICAgLy8gY2FsbGVkLCB3aGljaCBkb2Vzbid0IG1ha2Ugc2Vuc2UgZm9yIHdpZGdldHMuCiAgICAgICAgICBpZiAoZWxlbWVudERhdGEoZWwsICJpbml0aWFsaXplZCIpKSB7CiAgICAgICAgICAgIGJpbmRpbmdEZWYucmVzaXplKGVsLCB3aWR0aCwgaGVpZ2h0LCBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IikpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgIH0KCiAgICAgIFNoaW55Lm91dHB1dEJpbmRpbmdzLnJlZ2lzdGVyKHNoaW55QmluZGluZywgYmluZGluZ0RlZi5uYW1lKTsKICAgIH0KICB9OwoKICB2YXIgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gbnVsbDsKICBmdW5jdGlvbiBzY2hlZHVsZVN0YXRpY1JlbmRlcigpIHsKICAgIGlmICghc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkKSB7CiAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXJUaW1lcklkID0gbnVsbDsKICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKCk7CiAgICAgIH0sIDEpOwogICAgfQogIH0KCiAgLy8gUmVuZGVyIHN0YXRpYyB3aWRnZXRzIGFmdGVyIHRoZSBkb2N1bWVudCBmaW5pc2hlcyBsb2FkaW5nCiAgLy8gU3RhdGljYWxseSByZW5kZXIgYWxsIGVsZW1lbnRzIHRoYXQgYXJlIG9mIHRoaXMgd2lkZ2V0J3MgY2xhc3MKICB3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgYmluZGluZ3MgPSB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0cyB8fCBbXTsKICAgIGZvckVhY2goYmluZGluZ3MsIGZ1bmN0aW9uKGJpbmRpbmcpIHsKICAgICAgdmFyIG1hdGNoZXMgPSBiaW5kaW5nLmZpbmQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTsKICAgICAgZm9yRWFjaChtYXRjaGVzLCBmdW5jdGlvbihlbCkgewogICAgICAgIHZhciBzaXplT2JqID0gaW5pdFNpemluZyhlbCwgYmluZGluZyk7CgogICAgICAgIGlmIChoYXNDbGFzcyhlbCwgImh0bWwtd2lkZ2V0LXN0YXRpYy1ib3VuZCIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGVsLmNsYXNzTmFtZSA9IGVsLmNsYXNzTmFtZSArICIgaHRtbC13aWRnZXQtc3RhdGljLWJvdW5kIjsKCiAgICAgICAgdmFyIGluaXRSZXN1bHQ7CiAgICAgICAgaWYgKGJpbmRpbmcuaW5pdGlhbGl6ZSkgewogICAgICAgICAgaW5pdFJlc3VsdCA9IGJpbmRpbmcuaW5pdGlhbGl6ZShlbCwKICAgICAgICAgICAgc2l6ZU9iaiA/IHNpemVPYmouZ2V0V2lkdGgoKSA6IGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICBzaXplT2JqID8gc2l6ZU9iai5nZXRIZWlnaHQoKSA6IGVsLm9mZnNldEhlaWdodAogICAgICAgICAgKTsKICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiLCBpbml0UmVzdWx0KTsKICAgICAgICB9CgogICAgICAgIGlmIChiaW5kaW5nLnJlc2l6ZSkgewogICAgICAgICAgdmFyIGxhc3RTaXplID0gewogICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgIGg6IHNpemVPYmogPyBzaXplT2JqLmdldEhlaWdodCgpIDogZWwub2Zmc2V0SGVpZ2h0CiAgICAgICAgICB9OwogICAgICAgICAgdmFyIHJlc2l6ZUhhbmRsZXIgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciBzaXplID0gewogICAgICAgICAgICAgIHc6IHNpemVPYmogPyBzaXplT2JqLmdldFdpZHRoKCkgOiBlbC5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgICBoOiBzaXplT2JqID8gc2l6ZU9iai5nZXRIZWlnaHQoKSA6IGVsLm9mZnNldEhlaWdodAogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSAwICYmIHNpemUuaCA9PT0gMCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGlmIChzaXplLncgPT09IGxhc3RTaXplLncgJiYgc2l6ZS5oID09PSBsYXN0U2l6ZS5oKQogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgbGFzdFNpemUgPSBzaXplOwogICAgICAgICAgICBiaW5kaW5nLnJlc2l6ZShlbCwgc2l6ZS53LCBzaXplLmgsIGluaXRSZXN1bHQpOwogICAgICAgICAgfTsKCiAgICAgICAgICBvbih3aW5kb3csICJyZXNpemUiLCByZXNpemVIYW5kbGVyKTsKCiAgICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgY2FzZXMgd2hlcmUgd2UncmUgcnVubmluZyBpbiBhIFNoaW55CiAgICAgICAgICAvLyBhcHAsIGJ1dCB0aGUgd2lkZ2V0IGl0c2VsZiBpcyBub3QgYSBTaGlueSBvdXRwdXQsIGJ1dAogICAgICAgICAgLy8gcmF0aGVyIGEgc2ltcGxlIHN0YXRpYyB3aWRnZXQuIE9uZSBleGFtcGxlIG9mIHRoaXMgaXMKICAgICAgICAgIC8vIGFuIHJtYXJrZG93biBkb2N1bWVudCB0aGF0IGhhcyBydW50aW1lOnNoaW55IGFuZCB3aWRnZXQKICAgICAgICAgIC8vIHRoYXQgaXNuJ3QgaW4gYSByZW5kZXIgZnVuY3Rpb24uIFNoaW55IG9ubHkga25vd3MgdG8KICAgICAgICAgIC8vIGNhbGwgcmVzaXplIGhhbmRsZXJzIGZvciBTaGlueSBvdXRwdXRzLCBub3QgZm9yIHN0YXRpYwogICAgICAgICAgLy8gd2lkZ2V0cywgc28gd2UgZG8gaXQgb3Vyc2VsdmVzLgogICAgICAgICAgaWYgKHdpbmRvdy5qUXVlcnkpIHsKICAgICAgICAgICAgd2luZG93LmpRdWVyeShkb2N1bWVudCkub24oCiAgICAgICAgICAgICAgInNob3duLmh0bWx3aWRnZXRzIHNob3duLmJzLnRhYi5odG1sd2lkZ2V0cyBzaG93bi5icy5jb2xsYXBzZS5odG1sd2lkZ2V0cyIsCiAgICAgICAgICAgICAgcmVzaXplSGFuZGxlcgogICAgICAgICAgICApOwogICAgICAgICAgICB3aW5kb3cualF1ZXJ5KGRvY3VtZW50KS5vbigKICAgICAgICAgICAgICAiaGlkZGVuLmh0bWx3aWRnZXRzIGhpZGRlbi5icy50YWIuaHRtbHdpZGdldHMgaGlkZGVuLmJzLmNvbGxhcHNlLmh0bWx3aWRnZXRzIiwKICAgICAgICAgICAgICByZXNpemVIYW5kbGVyCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBzcGVjaWZpYyBjYXNlIG9mIGlvc2xpZGVzLCB3aGljaAogICAgICAgICAgLy8gZmxpcHMgc2xpZGVzIGJldHdlZW4gZGlzcGxheTpub25lIGFuZCBkaXNwbGF5OmJsb2NrLgogICAgICAgICAgLy8gSWRlYWxseSB3ZSB3b3VsZCBub3QgaGF2ZSB0byBoYXZlIGlvc2xpZGUtc3BlY2lmaWMgY29kZQogICAgICAgICAgLy8gaGVyZSwgYnV0IHJhdGhlciBoYXZlIGlvc2xpZGVzIHJhaXNlIGEgZ2VuZXJpYyBldmVudCwKICAgICAgICAgIC8vIGJ1dCB0aGUgcm1hcmtkb3duIHBhY2thZ2UganVzdCB3ZW50IHRvIENSQU4gc28gdGhlCiAgICAgICAgICAvLyB3aW5kb3cgdG8gZ2V0dGluZyB0aGF0IGZpeGVkIG1heSBiZSBsb25nLgogICAgICAgICAgaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgICAgICAgIC8vIEl0J3MgT0sgdG8gbGltaXQgdGhpcyB0byB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcgogICAgICAgICAgICAvLyBicm93c2VycyBiZWNhdXNlIGlvc2xpZGVzIGl0c2VsZiBvbmx5IHN1cHBvcnRzCiAgICAgICAgICAgIC8vIHN1Y2ggYnJvd3NlcnMuCiAgICAgICAgICAgIG9uKGRvY3VtZW50LCAic2xpZGVlbnRlciIsIHJlc2l6ZUhhbmRsZXIpOwogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlbGVhdmUiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHZhciBzY3JpcHREYXRhID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vanNvbiddIik7CiAgICAgICAgaWYgKHNjcmlwdERhdGEpIHsKICAgICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShzY3JpcHREYXRhLnRleHRDb250ZW50IHx8IHNjcmlwdERhdGEudGV4dCk7CiAgICAgICAgICAvLyBSZXNvbHZlIHN0cmluZ3MgbWFya2VkIGFzIGphdmFzY3JpcHQgbGl0ZXJhbHMgdG8gb2JqZWN0cwogICAgICAgICAgaWYgKCEoZGF0YS5ldmFscyBpbnN0YW5jZW9mIEFycmF5KSkgZGF0YS5ldmFscyA9IFtkYXRhLmV2YWxzXTsKICAgICAgICAgIGZvciAodmFyIGsgPSAwOyBkYXRhLmV2YWxzICYmIGsgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaysrKSB7CiAgICAgICAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlcihkYXRhLngsIGRhdGEuZXZhbHNba10pOwogICAgICAgICAgfQogICAgICAgICAgYmluZGluZy5yZW5kZXJWYWx1ZShlbCwgZGF0YS54LCBpbml0UmVzdWx0KTsKICAgICAgICAgIGV2YWxBbmRSdW4oZGF0YS5qc0hvb2tzLnJlbmRlciwgaW5pdFJlc3VsdCwgW2VsLCBkYXRhLnhdKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSk7CgogICAgaW52b2tlUG9zdFJlbmRlckhhbmRsZXJzKCk7CiAgfQoKCiAgZnVuY3Rpb24gaGFzX2pRdWVyeTMoKSB7CiAgICBpZiAoIXdpbmRvdy5qUXVlcnkpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgdmFyICR2ZXJzaW9uID0gd2luZG93LmpRdWVyeS5mbi5qcXVlcnk7CiAgICB2YXIgJG1ham9yX3ZlcnNpb24gPSBwYXJzZUludCgkdmVyc2lvbi5zcGxpdCgiLiIpWzBdKTsKICAgIHJldHVybiAkbWFqb3JfdmVyc2lvbiA+PSAzOwogIH0KCiAgLyoKICAvIFNoaW55IDEuNCBidW1wZWQgalF1ZXJ5IGZyb20gMS54IHRvIDMueCB3aGljaCBtZWFucyBqUXVlcnkncwogIC8gb24tcmVhZHkgaGFuZGxlciAoaS5lLiwgJChmbikpIGlzIG5vdyBhc3luY3Jvbm91cyAoaS5lLiwgaXQgbm93CiAgLyByZWFsbHkgbWVhbnMgJChzZXRUaW1lb3V0KGZuKSkuCiAgLyBodHRwczovL2pxdWVyeS5jb20vdXBncmFkZS1ndWlkZS8zLjAvI2JyZWFraW5nLWNoYW5nZS1kb2N1bWVudC1yZWFkeS1oYW5kbGVycy1hcmUtbm93LWFzeW5jaHJvbm91cwogIC8KICAvIFNpbmNlIFNoaW55IHVzZXMgJCgpIHRvIHNjaGVkdWxlIGluaXRTaGlueSwgc2hpbnk+PTEuNCBjYWxscyBpbml0U2hpbnkKICAvIG9uZSB0aWNrIGxhdGVyIHRoYW4gaXQgZGlkIGJlZm9yZSwgd2hpY2ggbWVhbnMgc3RhdGljUmVuZGVyKCkgaXMKICAvIGNhbGxlZCByZW5kZXJWYWx1ZSgpIGVhcmxpZXIgdGhhbiAoYWR2YW5jZWQpIHdpZGdldCBhdXRob3JzIG1pZ2h0IGJlIGV4cGVjdGluZy4KICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL3NoaW55L2lzc3Vlcy8yNjMwCiAgLwogIC8gRm9yIGEgY29uY3JldGUgZXhhbXBsZSwgbGVhZmxldCBoYXMgc29tZSBtZXRob2RzIChlLmcuLCB1cGRhdGVCb3VuZHMpCiAgLyB3aGljaCByZWZlcmVuY2UgU2hpbnkgbWV0aG9kcyByZWdpc3RlcmVkIGluIGluaXRTaGlueSAoZS5nLiwgc2V0SW5wdXRWYWx1ZSkuCiAgLyBTaW5jZSBsZWFmbGV0IGlzIHByaXZ5IHRvIHRoaXMgbGlmZS1jeWNsZSwgaXQga25vd3MgdG8gdXNlIHNldFRpbWVvdXQoKSB0bwogIC8gZGVsYXkgZXhlY3V0aW9uIG9mIHRob3NlIG1ldGhvZHMgKHVudGlsIFNoaW55IG1ldGhvZHMgYXJlIHJlYWR5KQogIC8gaHR0cHM6Ly9naXRodWIuY29tL3JzdHVkaW8vbGVhZmxldC9ibG9iLzE4ZWM5ODEvamF2YXNjcmlwdC9zcmMvaW5kZXguanMjTDI2Ni1MMjY4CiAgLwogIC8gSWRlYWxseSB3aWRnZXQgYXV0aG9ycyB3b3VsZG4ndCBuZWVkIHRvIHVzZSB0aGlzIHNldFRpbWVvdXQoKSBoYWNrIHRoYXQKICAvIGxlYWZsZXQgdXNlcyB0byBjYWxsIFNoaW55IG1ldGhvZHMgb24gYSBzdGF0aWNSZW5kZXIoKS4gSW4gdGhlIGxvbmcgcnVuLAogIC8gdGhlIGxvZ2ljIGluaXRTaGlueSBzaG91bGQgYmUgYnJva2VuIHVwIHNvIHRoYXQgbWV0aG9kIHJlZ2lzdHJhdGlvbiBoYXBwZW5zCiAgLyByaWdodCBhd2F5LCBidXQgYmluZGluZyBoYXBwZW5zIGxhdGVyLgogICovCiAgZnVuY3Rpb24gbWF5YmVTdGF0aWNSZW5kZXJMYXRlcigpIHsKICAgIGlmIChzaGlueU1vZGUgJiYgaGFzX2pRdWVyeTMoKSkgewogICAgICB3aW5kb3cualF1ZXJ5KHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIpOwogICAgfSBlbHNlIHsKICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgfQogIH0KCiAgaWYgKGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpIHsKICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGFyZ3VtZW50cy5jYWxsZWUsIGZhbHNlKTsKICAgICAgbWF5YmVTdGF0aWNSZW5kZXJMYXRlcigpOwogICAgfSwgZmFsc2UpOwogIH0gZWxzZSBpZiAoZG9jdW1lbnQuYXR0YWNoRXZlbnQpIHsKICAgIGRvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLCBmdW5jdGlvbigpIHsKICAgICAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICJjb21wbGV0ZSIpIHsKICAgICAgICBkb2N1bWVudC5kZXRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgYXJndW1lbnRzLmNhbGxlZSk7CiAgICAgICAgbWF5YmVTdGF0aWNSZW5kZXJMYXRlcigpOwogICAgICB9CiAgICB9KTsKICB9CgoKICB3aW5kb3cuSFRNTFdpZGdldHMuZ2V0QXR0YWNobWVudFVybCA9IGZ1bmN0aW9uKGRlcG5hbWUsIGtleSkgewogICAgLy8gSWYgbm8ga2V5LCBkZWZhdWx0IHRvIHRoZSBmaXJzdCBpdGVtCiAgICBpZiAodHlwZW9mKGtleSkgPT09ICJ1bmRlZmluZWQiKQogICAgICBrZXkgPSAxOwoKICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGVwbmFtZSArICItIiArIGtleSArICItYXR0YWNobWVudCIpOwogICAgaWYgKCFsaW5rKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiQXR0YWNobWVudCAiICsgZGVwbmFtZSArICIvIiArIGtleSArICIgbm90IGZvdW5kIGluIGRvY3VtZW50Iik7CiAgICB9CiAgICByZXR1cm4gbGluay5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMuZGF0YWZyYW1lVG9EMyA9IGZ1bmN0aW9uKGRmKSB7CiAgICB2YXIgbmFtZXMgPSBbXTsKICAgIHZhciBsZW5ndGg7CiAgICBmb3IgKHZhciBuYW1lIGluIGRmKSB7CiAgICAgICAgaWYgKGRmLmhhc093blByb3BlcnR5KG5hbWUpKQogICAgICAgICAgICBuYW1lcy5wdXNoKG5hbWUpOwogICAgICAgIGlmICh0eXBlb2YoZGZbbmFtZV0pICE9PSAib2JqZWN0IiB8fCB0eXBlb2YoZGZbbmFtZV0ubGVuZ3RoKSA9PT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIik7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YobGVuZ3RoKSAhPT0gInVuZGVmaW5lZCIgJiYgbGVuZ3RoICE9PSBkZltuYW1lXS5sZW5ndGgpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpOwogICAgICAgIH0KICAgICAgICBsZW5ndGggPSBkZltuYW1lXS5sZW5ndGg7CiAgICB9CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGl0ZW07CiAgICBmb3IgKHZhciByb3cgPSAwOyByb3cgPCBsZW5ndGg7IHJvdysrKSB7CiAgICAgICAgaXRlbSA9IHt9OwogICAgICAgIGZvciAodmFyIGNvbCA9IDA7IGNvbCA8IG5hbWVzLmxlbmd0aDsgY29sKyspIHsKICAgICAgICAgICAgaXRlbVtuYW1lc1tjb2xdXSA9IGRmW25hbWVzW2NvbF1dW3Jvd107CiAgICAgICAgfQogICAgICAgIHJlc3VsdHMucHVzaChpdGVtKTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH07CgogIHdpbmRvdy5IVE1MV2lkZ2V0cy50cmFuc3Bvc2VBcnJheTJEID0gZnVuY3Rpb24oYXJyYXkpIHsKICAgICAgaWYgKGFycmF5Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIGFycmF5OwogICAgICB2YXIgbmV3QXJyYXkgPSBhcnJheVswXS5tYXAoZnVuY3Rpb24oY29sLCBpKSB7CiAgICAgICAgICByZXR1cm4gYXJyYXkubWFwKGZ1bmN0aW9uKHJvdykgewogICAgICAgICAgICAgIHJldHVybiByb3dbaV0KICAgICAgICAgIH0pCiAgICAgIH0pOwogICAgICByZXR1cm4gbmV3QXJyYXk7CiAgfTsKICAvLyBTcGxpdCB2YWx1ZSBhdCBzcGxpdENoYXIsIGJ1dCBhbGxvdyBzcGxpdENoYXIgdG8gYmUgZXNjYXBlZAogIC8vIHVzaW5nIGVzY2FwZUNoYXIuIEFueSBvdGhlciBjaGFyYWN0ZXJzIGVzY2FwZWQgYnkgZXNjYXBlQ2hhcgogIC8vIHdpbGwgYmUgaW5jbHVkZWQgYXMgdXN1YWwgKGluY2x1ZGluZyBlc2NhcGVDaGFyIGl0c2VsZikuCiAgZnVuY3Rpb24gc3BsaXRXaXRoRXNjYXBlKHZhbHVlLCBzcGxpdENoYXIsIGVzY2FwZUNoYXIpIHsKICAgIHZhciByZXN1bHRzID0gW107CiAgICB2YXIgZXNjYXBlTW9kZSA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgIGZvciAodmFyIHBvcyA9IDA7IHBvcyA8IHZhbHVlLmxlbmd0aDsgcG9zKyspIHsKICAgICAgaWYgKCFlc2NhcGVNb2RlKSB7CiAgICAgICAgaWYgKHZhbHVlW3Bvc10gPT09IHNwbGl0Q2hhcikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKGN1cnJlbnRSZXN1bHQpOwogICAgICAgICAgY3VycmVudFJlc3VsdCA9ICIiOwogICAgICAgIH0gZWxzZSBpZiAodmFsdWVbcG9zXSA9PT0gZXNjYXBlQ2hhcikgewogICAgICAgICAgZXNjYXBlTW9kZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY3VycmVudFJlc3VsdCArPSB2YWx1ZVtwb3NdOwogICAgICAgIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKGN1cnJlbnRSZXN1bHQgIT09ICIiKSB7CiAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgIH0KICAgIHJldHVybiByZXN1bHRzOwogIH0KICAvLyBGdW5jdGlvbiBhdXRob3JlZCBieSBZaWh1aS9KSiBBbGxhaXJlCiAgd2luZG93LkhUTUxXaWRnZXRzLmV2YWx1YXRlU3RyaW5nTWVtYmVyID0gZnVuY3Rpb24obywgbWVtYmVyKSB7CiAgICB2YXIgcGFydHMgPSBzcGxpdFdpdGhFc2NhcGUobWVtYmVyLCAnLicsICdcXCcpOwogICAgZm9yICh2YXIgaSA9IDAsIGwgPSBwYXJ0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgICAgdmFyIHBhcnQgPSBwYXJ0c1tpXTsKICAgICAgLy8gcGFydCBtYXkgYmUgYSBjaGFyYWN0ZXIgb3IgJ251bWVyaWMnIG1lbWJlciBuYW1lCiAgICAgIGlmIChvICE9PSBudWxsICYmIHR5cGVvZiBvID09PSAib2JqZWN0IiAmJiBwYXJ0IGluIG8pIHsKICAgICAgICBpZiAoaSA9PSAobCAtIDEpKSB7IC8vIGlmIHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHRoZW4gZXZhbHVsYXRlCiAgICAgICAgICBpZiAodHlwZW9mIG9bcGFydF0gPT09ICJzdHJpbmciKQogICAgICAgICAgICBvW3BhcnRdID0gdHJ5RXZhbChvW3BhcnRdKTsKICAgICAgICB9IGVsc2UgeyAvLyBvdGhlcndpc2UgY29udGludWUgdG8gbmV4dCBlbWJlZGRlZCBvYmplY3QKICAgICAgICAgIG8gPSBvW3BhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07CgogIC8vIFJldHJpZXZlIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YgYW4KICAvLyBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCBhbiBlbGVtZW50LCBvciBudWxsIGlmIG5vbmUuCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0Iik7CiAgfTsKCiAgLy8gRmluZHMgdGhlIGZpcnN0IGVsZW1lbnQgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2hlcyB0aGUgc2VsZWN0b3IsCiAgLy8gYW5kIHJldHVybnMgdGhlIEhUTUxXaWRnZXQgaW5zdGFuY2UgKGkuZS4gdGhlIHJldHVybiB2YWx1ZSBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoYXQgZWxlbWVudCwgaWYgYW55LiBJZiBubyBlbGVtZW50IG1hdGNoZXMgdGhlCiAgLy8gc2VsZWN0b3IsIG9yIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50IGhhcyBubyBIVE1MV2lkZ2V0CiAgLy8gaW5zdGFuY2UgYXNzb2NpYXRlZCB3aXRoIGl0LCB0aGVuIG51bGwgaXMgcmV0dXJuZWQuCiAgLy8KICAvLyBUaGUgc2NvcGUgYXJndW1lbnQgaXMgb3B0aW9uYWwsIGFuZCBkZWZhdWx0cyB0byB3aW5kb3cuZG9jdW1lbnQuCiAgd2luZG93LkhUTUxXaWRnZXRzLmZpbmQgPSBmdW5jdGlvbihzY29wZSwgc2VsZWN0b3IpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgc2VsZWN0b3IgPSBzY29wZTsKICAgICAgc2NvcGUgPSBkb2N1bWVudDsKICAgIH0KCiAgICB2YXIgZWwgPSBzY29wZS5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTsKICAgIGlmIChlbCA9PT0gbnVsbCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiB3aW5kb3cuSFRNTFdpZGdldHMuZ2V0SW5zdGFuY2UoZWwpOwogICAgfQogIH07CgogIC8vIEZpbmRzIGFsbCBlbGVtZW50cyBpbiB0aGUgc2NvcGUgdGhhdCBtYXRjaCB0aGUgc2VsZWN0b3IsIGFuZAogIC8vIHJldHVybnMgdGhlIEhUTUxXaWRnZXQgaW5zdGFuY2VzIChpLmUuIHRoZSByZXR1cm4gdmFsdWVzIG9mCiAgLy8gYW4gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggdGhlIGVsZW1lbnRzLCBpbiBhbiBhcnJheS4gSWYgZWxlbWVudHMgdGhhdAogIC8vIG1hdGNoIHRoZSBzZWxlY3RvciBkb24ndCBoYXZlIGFuIGFzc29jaWF0ZWQgSFRNTFdpZGdldAogIC8vIGluc3RhbmNlLCB0aGUgcmV0dXJuZWQgYXJyYXkgd2lsbCBjb250YWluIG51bGxzLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kQWxsID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIG5vZGVzID0gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewogICAgICByZXN1bHRzLnB1c2god2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKG5vZGVzW2ldKSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB2YXIgcG9zdFJlbmRlckhhbmRsZXJzID0gW107CiAgZnVuY3Rpb24gaW52b2tlUG9zdFJlbmRlckhhbmRsZXJzKCkgewogICAgd2hpbGUgKHBvc3RSZW5kZXJIYW5kbGVycy5sZW5ndGgpIHsKICAgICAgdmFyIGhhbmRsZXIgPSBwb3N0UmVuZGVySGFuZGxlcnMuc2hpZnQoKTsKICAgICAgaWYgKGhhbmRsZXIpIHsKICAgICAgICBoYW5kbGVyKCk7CiAgICAgIH0KICAgIH0KICB9CgogIC8vIFJlZ2lzdGVyIHRoZSBnaXZlbiBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIGFmdGVyIHRoZQogIC8vIG5leHQgdGltZSBzdGF0aWMgd2lkZ2V0cyBhcmUgcmVuZGVyZWQuCiAgd2luZG93LkhUTUxXaWRnZXRzLmFkZFBvc3RSZW5kZXJIYW5kbGVyID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgIHBvc3RSZW5kZXJIYW5kbGVycy5wdXNoKGNhbGxiYWNrKTsKICB9OwoKICAvLyBUYWtlcyBhIG5ldy1zdHlsZSBpbnN0YW5jZS1ib3VuZCBkZWZpbml0aW9uLCBhbmQgcmV0dXJucyBhbgogIC8vIG9sZC1zdHlsZSBjbGFzcy1ib3VuZCBkZWZpbml0aW9uLiBUaGlzIHNhdmVzIHVzIGZyb20gaGF2aW5nCiAgLy8gdG8gcmV3cml0ZSBhbGwgdGhlIGxvZ2ljIGluIHRoaXMgZmlsZSB0byBhY2NvbW9kYXRlIGJvdGgKICAvLyB0eXBlcyBvZiBkZWZpbml0aW9ucy4KICBmdW5jdGlvbiBjcmVhdGVMZWdhY3lEZWZpbml0aW9uQWRhcHRlcihkZWZuKSB7CiAgICB2YXIgcmVzdWx0ID0gewogICAgICBuYW1lOiBkZWZuLm5hbWUsCiAgICAgIHR5cGU6IGRlZm4udHlwZSwKICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICByZXR1cm4gZGVmbi5mYWN0b3J5KGVsLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgfSwKICAgICAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgICAgIHJldHVybiBpbnN0YW5jZS5yZW5kZXJWYWx1ZSh4KTsKICAgICAgfSwKICAgICAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVzaXplKHdpZHRoLCBoZWlnaHQpOwogICAgICB9CiAgICB9OwoKICAgIGlmIChkZWZuLmZpbmQpCiAgICAgIHJlc3VsdC5maW5kID0gZGVmbi5maW5kOwogICAgaWYgKGRlZm4ucmVuZGVyRXJyb3IpCiAgICAgIHJlc3VsdC5yZW5kZXJFcnJvciA9IGRlZm4ucmVuZGVyRXJyb3I7CiAgICBpZiAoZGVmbi5jbGVhckVycm9yKQogICAgICByZXN1bHQuY2xlYXJFcnJvciA9IGRlZm4uY2xlYXJFcnJvcjsKCiAgICByZXR1cm4gcmVzdWx0OwogIH0KfSkoKTsKCg=="></script>
|
||
<script src="data:application/javascript;base64,Ly8g4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQIFxcCi8vIOKUgiBSYXBoYcOrbCAyLjEuNCAtIEphdmFTY3JpcHQgVmVjdG9yIExpYnJhcnkgICAgICAgICAgICAgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIENvcHlyaWdodCDCqSAyMDA4LTIwMTIgRG1pdHJ5IEJhcmFub3Zza2l5IChodHRwOi8vcmFwaGFlbGpzLmNvbSkgICAg4pSCIFxcCi8vIOKUgiBDb3B5cmlnaHQgwqkgMjAwOC0yMDEyIFNlbmNoYSBMYWJzIChodHRwOi8vc2VuY2hhLmNvbSkgICAgICAgICAgICAgIOKUgiBcXAovLyDilJzilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilKQgXFwKLy8g4pSCIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgKGh0dHA6Ly9yYXBoYWVsanMuY29tL2xpY2Vuc2UuaHRtbCkgbGljZW5zZS7ilIIgXFwKLy8g4pSU4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYIFxcCiFmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJldmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGIoKX0pOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1iKCk6YS5ldmU9YigpfSh0aGlzLGZ1bmN0aW9uKCl7dmFyIGEsYixjPSIwLjQuMiIsZD0iaGFzT3duUHJvcGVydHkiLGU9L1tcLlwvXS8sZj0iKiIsZz1mdW5jdGlvbigpe30saD1mdW5jdGlvbihhLGIpe3JldHVybiBhLWJ9LGk9e246e319LGo9ZnVuY3Rpb24oYyxkKXtjPVN0cmluZyhjKTt2YXIgZSxmPWIsZz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMiksaT1qLmxpc3RlbmVycyhjKSxrPTAsbD1bXSxtPXt9LG49W10sbz1hO2E9YyxiPTA7Zm9yKHZhciBwPTAscT1pLmxlbmd0aDtxPnA7cCsrKSJ6SW5kZXgiaW4gaVtwXSYmKGwucHVzaChpW3BdLnpJbmRleCksaVtwXS56SW5kZXg8MCYmKG1baVtwXS56SW5kZXhdPWlbcF0pKTtmb3IobC5zb3J0KGgpO2xba108MDspaWYoZT1tW2xbaysrXV0sbi5wdXNoKGUuYXBwbHkoZCxnKSksYilyZXR1cm4gYj1mLG47Zm9yKHA9MDtxPnA7cCsrKWlmKGU9aVtwXSwiekluZGV4ImluIGUpaWYoZS56SW5kZXg9PWxba10pe2lmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7ZG8gaWYoaysrLGU9bVtsW2tdXSxlJiZuLnB1c2goZS5hcHBseShkLGcpKSxiKWJyZWFrO3doaWxlKGUpfWVsc2UgbVtlLnpJbmRleF09ZTtlbHNlIGlmKG4ucHVzaChlLmFwcGx5KGQsZykpLGIpYnJlYWs7cmV0dXJuIGI9ZixhPW8sbi5sZW5ndGg/bjpudWxsfTtyZXR1cm4gai5fZXZlbnRzPWksai5saXN0ZW5lcnM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkLGcsaCxqLGssbCxtPWEuc3BsaXQoZSksbj1pLG89W25dLHA9W107Zm9yKGc9MCxoPW0ubGVuZ3RoO2g+ZztnKyspe2ZvcihsPVtdLGo9MCxrPW8ubGVuZ3RoO2s+ajtqKyspZm9yKG49b1tqXS5uLGM9W25bbVtnXV0sbltmXV0sZD0yO2QtLTspYj1jW2RdLGImJihsLnB1c2goYikscD1wLmNvbmNhdChiLmZ8fFtdKSk7bz1sfXJldHVybiBwfSxqLm9uPWZ1bmN0aW9uKGEsYil7aWYoYT1TdHJpbmcoYSksImZ1bmN0aW9uIiE9dHlwZW9mIGIpcmV0dXJuIGZ1bmN0aW9uKCl7fTtmb3IodmFyIGM9YS5zcGxpdChlKSxkPWksZj0wLGg9Yy5sZW5ndGg7aD5mO2YrKylkPWQubixkPWQuaGFzT3duUHJvcGVydHkoY1tmXSkmJmRbY1tmXV18fChkW2NbZl1dPXtuOnt9fSk7Zm9yKGQuZj1kLmZ8fFtdLGY9MCxoPWQuZi5sZW5ndGg7aD5mO2YrKylpZihkLmZbZl09PWIpcmV0dXJuIGc7cmV0dXJuIGQuZi5wdXNoKGIpLGZ1bmN0aW9uKGEpeythPT0rYSYmKGIuekluZGV4PSthKX19LGouZj1mdW5jdGlvbihhKXt2YXIgYj1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gZnVuY3Rpb24oKXtqLmFwcGx5KG51bGwsW2EsbnVsbF0uY29uY2F0KGIpLmNvbmNhdChbXS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSkpfX0sai5zdG9wPWZ1bmN0aW9uKCl7Yj0xfSxqLm50PWZ1bmN0aW9uKGIpe3JldHVybiBiP25ldyBSZWdFeHAoIig/OlxcLnxcXC98XikiK2IrIig/OlxcLnxcXC98JCkiKS50ZXN0KGEpOmF9LGoubnRzPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc3BsaXQoZSl9LGoub2ZmPWoudW5iaW5kPWZ1bmN0aW9uKGEsYil7aWYoIWEpcmV0dXJuIHZvaWQoai5fZXZlbnRzPWk9e246e319KTt2YXIgYyxnLGgsayxsLG0sbixvPWEuc3BsaXQoZSkscD1baV07Zm9yKGs9MCxsPW8ubGVuZ3RoO2w+aztrKyspZm9yKG09MDttPHAubGVuZ3RoO20rPWgubGVuZ3RoLTIpe2lmKGg9W20sMV0sYz1wW21dLm4sb1trXSE9ZiljW29ba11dJiZoLnB1c2goY1tvW2tdXSk7ZWxzZSBmb3IoZyBpbiBjKWNbZF0oZykmJmgucHVzaChjW2ddKTtwLnNwbGljZS5hcHBseShwLGgpfWZvcihrPTAsbD1wLmxlbmd0aDtsPms7aysrKWZvcihjPXBba107Yy5uOyl7aWYoYil7aWYoYy5mKXtmb3IobT0wLG49Yy5mLmxlbmd0aDtuPm07bSsrKWlmKGMuZlttXT09Yil7Yy5mLnNwbGljZShtLDEpO2JyZWFrfSFjLmYubGVuZ3RoJiZkZWxldGUgYy5mfWZvcihnIGluIGMubilpZihjLm5bZF0oZykmJmMubltnXS5mKXt2YXIgcT1jLm5bZ10uZjtmb3IobT0wLG49cS5sZW5ndGg7bj5tO20rKylpZihxW21dPT1iKXtxLnNwbGljZShtLDEpO2JyZWFrfSFxLmxlbmd0aCYmZGVsZXRlIGMubltnXS5mfX1lbHNle2RlbGV0ZSBjLmY7Zm9yKGcgaW4gYy5uKWMubltkXShnKSYmYy5uW2ddLmYmJmRlbGV0ZSBjLm5bZ10uZn1jPWMubn19LGoub25jZT1mdW5jdGlvbihhLGIpe3ZhciBjPWZ1bmN0aW9uKCl7cmV0dXJuIGoudW5iaW5kKGEsYyksYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3JldHVybiBqLm9uKGEsYyl9LGoudmVyc2lvbj1jLGoudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iWW91IGFyZSBydW5uaW5nIEV2ZSAiK2N9LGp9KSxmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJyYXBoYWVsLmNvcmUiLFsiZXZlIl0sZnVuY3Rpb24oYSl7cmV0dXJuIGIoYSl9KToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/bW9kdWxlLmV4cG9ydHM9YihyZXF1aXJlKCJldmUiKSk6YS5SYXBoYWVsPWIoYS5ldmUpfSh0aGlzLGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoYyl7aWYoYi5pcyhjLCJmdW5jdGlvbiIpKXJldHVybiB0P2MoKTphLm9uKCJyYXBoYWVsLkRPTWxvYWQiLGMpO2lmKGIuaXMoYyxVKSlyZXR1cm4gYi5fZW5naW5lLmNyZWF0ZVtDXShiLGMuc3BsaWNlKDAsMytiLmlzKGNbMF0sUykpKS5hZGQoYyk7dmFyIGQ9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO2lmKGIuaXMoZFtkLmxlbmd0aC0xXSwiZnVuY3Rpb24iKSl7dmFyIGU9ZC5wb3AoKTtyZXR1cm4gdD9lLmNhbGwoYi5fZW5naW5lLmNyZWF0ZVtDXShiLGQpKTphLm9uKCJyYXBoYWVsLkRPTWxvYWQiLGZ1bmN0aW9uKCl7ZS5jYWxsKGIuX2VuZ2luZS5jcmVhdGVbQ10oYixkKSl9KX1yZXR1cm4gYi5fZW5naW5lLmNyZWF0ZVtDXShiLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYyhhKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgYXx8T2JqZWN0KGEpIT09YSlyZXR1cm4gYTt2YXIgYj1uZXcgYS5jb25zdHJ1Y3Rvcjtmb3IodmFyIGQgaW4gYSlhW3ldKGQpJiYoYltkXT1jKGFbZF0pKTtyZXR1cm4gYn1mdW5jdGlvbiBkKGEsYil7Zm9yKHZhciBjPTAsZD1hLmxlbmd0aDtkPmM7YysrKWlmKGFbY109PT1iKXJldHVybiBhLnB1c2goYS5zcGxpY2UoYywxKVswXSl9ZnVuY3Rpb24gZShhLGIsYyl7ZnVuY3Rpb24gZSgpe3ZhciBmPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKSxnPWYuam9pbigi4pCAIiksaD1lLmNhY2hlPWUuY2FjaGV8fHt9LGk9ZS5jb3VudD1lLmNvdW50fHxbXTtyZXR1cm4gaFt5XShnKT8oZChpLGcpLGM/YyhoW2ddKTpoW2ddKTooaS5sZW5ndGg+PTFlMyYmZGVsZXRlIGhbaS5zaGlmdCgpXSxpLnB1c2goZyksaFtnXT1hW0NdKGIsZiksYz9jKGhbZ10pOmhbZ10pfXJldHVybiBlfWZ1bmN0aW9uIGYoKXtyZXR1cm4gdGhpcy5oZXh9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYz1bXSxkPTAsZT1hLmxlbmd0aDtlLTIqIWI+ZDtkKz0yKXt2YXIgZj1be3g6K2FbZC0yXSx5OithW2QtMV19LHt4OithW2RdLHk6K2FbZCsxXX0se3g6K2FbZCsyXSx5OithW2QrM119LHt4OithW2QrNF0seTorYVtkKzVdfV07Yj9kP2UtND09ZD9mWzNdPXt4OithWzBdLHk6K2FbMV19OmUtMj09ZCYmKGZbMl09e3g6K2FbMF0seTorYVsxXX0sZlszXT17eDorYVsyXSx5OithWzNdfSk6ZlswXT17eDorYVtlLTJdLHk6K2FbZS0xXX06ZS00PT1kP2ZbM109ZlsyXTpkfHwoZlswXT17eDorYVtkXSx5OithW2QrMV19KSxjLnB1c2goWyJDIiwoLWZbMF0ueCs2KmZbMV0ueCtmWzJdLngpLzYsKC1mWzBdLnkrNipmWzFdLnkrZlsyXS55KS82LChmWzFdLngrNipmWzJdLngtZlszXS54KS82LChmWzFdLnkrNipmWzJdLnktZlszXS55KS82LGZbMl0ueCxmWzJdLnldKX1yZXR1cm4gY31mdW5jdGlvbiBoKGEsYixjLGQsZSl7dmFyIGY9LTMqYis5KmMtOSpkKzMqZSxnPWEqZis2KmItMTIqYys2KmQ7cmV0dXJuIGEqZy0zKmIrMypjfWZ1bmN0aW9uIGkoYSxiLGMsZCxlLGYsZyxpLGope251bGw9PWomJihqPTEpLGo9aj4xPzE6MD5qPzA6ajtmb3IodmFyIGs9ai8yLGw9MTIsbT1bLS4xMjUyLC4xMjUyLC0uMzY3OCwuMzY3OCwtLjU4NzMsLjU4NzMsLS43Njk5LC43Njk5LC0uOTA0MSwuOTA0MSwtLjk4MTYsLjk4MTZdLG49Wy4yNDkxLC4yNDkxLC4yMzM1LC4yMzM1LC4yMDMyLC4yMDMyLC4xNjAxLC4xNjAxLC4xMDY5LC4xMDY5LC4wNDcyLC4wNDcyXSxvPTAscD0wO2w+cDtwKyspe3ZhciBxPWsqbVtwXStrLHI9aChxLGEsYyxlLGcpLHM9aChxLGIsZCxmLGkpLHQ9cipyK3MqcztvKz1uW3BdKk0uc3FydCh0KX1yZXR1cm4gaypvfWZ1bmN0aW9uIGooYSxiLGMsZCxlLGYsZyxoLGope2lmKCEoMD5qfHxpKGEsYixjLGQsZSxmLGcsaCk8aikpe3ZhciBrLGw9MSxtPWwvMixuPWwtbSxvPS4wMTtmb3Ioaz1pKGEsYixjLGQsZSxmLGcsaCxuKTtQKGstaik+bzspbS89MixuKz0oaj5rPzE6LTEpKm0saz1pKGEsYixjLGQsZSxmLGcsaCxuKTtyZXR1cm4gbn19ZnVuY3Rpb24gayhhLGIsYyxkLGUsZixnLGgpe2lmKCEoTihhLGMpPE8oZSxnKXx8TyhhLGMpPk4oZSxnKXx8TihiLGQpPE8oZixoKXx8TyhiLGQpPk4oZixoKSkpe3ZhciBpPShhKmQtYipjKSooZS1nKS0oYS1jKSooZSpoLWYqZyksaj0oYSpkLWIqYykqKGYtaCktKGItZCkqKGUqaC1mKmcpLGs9KGEtYykqKGYtaCktKGItZCkqKGUtZyk7aWYoayl7dmFyIGw9aS9rLG09ai9rLG49K2wudG9GaXhlZCgyKSxvPSttLnRvRml4ZWQoMik7aWYoIShuPCtPKGEsYykudG9GaXhlZCgyKXx8bj4rTihhLGMpLnRvRml4ZWQoMil8fG48K08oZSxnKS50b0ZpeGVkKDIpfHxuPitOKGUsZykudG9GaXhlZCgyKXx8bzwrTyhiLGQpLnRvRml4ZWQoMil8fG8+K04oYixkKS50b0ZpeGVkKDIpfHxvPCtPKGYsaCkudG9GaXhlZCgyKXx8bz4rTihmLGgpLnRvRml4ZWQoMikpKXJldHVybnt4OmwseTptfX19fWZ1bmN0aW9uIGwoYSxjLGQpe3ZhciBlPWIuYmV6aWVyQkJveChhKSxmPWIuYmV6aWVyQkJveChjKTtpZighYi5pc0JCb3hJbnRlcnNlY3QoZSxmKSlyZXR1cm4gZD8wOltdO2Zvcih2YXIgZz1pLmFwcGx5KDAsYSksaD1pLmFwcGx5KDAsYyksaj1OKH5+KGcvNSksMSksbD1OKH5+KGgvNSksMSksbT1bXSxuPVtdLG89e30scD1kPzA6W10scT0wO2orMT5xO3ErKyl7dmFyIHI9Yi5maW5kRG90c0F0U2VnbWVudC5hcHBseShiLGEuY29uY2F0KHEvaikpO20ucHVzaCh7eDpyLngseTpyLnksdDpxL2p9KX1mb3IocT0wO2wrMT5xO3ErKylyPWIuZmluZERvdHNBdFNlZ21lbnQuYXBwbHkoYixjLmNvbmNhdChxL2wpKSxuLnB1c2goe3g6ci54LHk6ci55LHQ6cS9sfSk7Zm9yKHE9MDtqPnE7cSsrKWZvcih2YXIgcz0wO2w+cztzKyspe3ZhciB0PW1bcV0sdT1tW3ErMV0sdj1uW3NdLHc9bltzKzFdLHg9UCh1LngtdC54KTwuMDAxPyJ5IjoieCIseT1QKHcueC12LngpPC4wMDE/InkiOiJ4Iix6PWsodC54LHQueSx1LngsdS55LHYueCx2Lnksdy54LHcueSk7aWYoeil7aWYob1t6LngudG9GaXhlZCg0KV09PXoueS50b0ZpeGVkKDQpKWNvbnRpbnVlO29bei54LnRvRml4ZWQoNCldPXoueS50b0ZpeGVkKDQpO3ZhciBBPXQudCtQKCh6W3hdLXRbeF0pLyh1W3hdLXRbeF0pKSoodS50LXQudCksQj12LnQrUCgoelt5XS12W3ldKS8od1t5XS12W3ldKSkqKHcudC12LnQpO0E+PTAmJjEuMDAxPj1BJiZCPj0wJiYxLjAwMT49QiYmKGQ/cCsrOnAucHVzaCh7eDp6LngseTp6LnksdDE6TyhBLDEpLHQyOk8oQiwxKX0pKX19cmV0dXJuIHB9ZnVuY3Rpb24gbShhLGMsZCl7YT1iLl9wYXRoMmN1cnZlKGEpLGM9Yi5fcGF0aDJjdXJ2ZShjKTtmb3IodmFyIGUsZixnLGgsaSxqLGssbSxuLG8scD1kPzA6W10scT0wLHI9YS5sZW5ndGg7cj5xO3ErKyl7dmFyIHM9YVtxXTtpZigiTSI9PXNbMF0pZT1pPXNbMV0sZj1qPXNbMl07ZWxzZXsiQyI9PXNbMF0/KG49W2UsZl0uY29uY2F0KHMuc2xpY2UoMSkpLGU9bls2XSxmPW5bN10pOihuPVtlLGYsZSxmLGksaixpLGpdLGU9aSxmPWopO2Zvcih2YXIgdD0wLHU9Yy5sZW5ndGg7dT50O3QrKyl7dmFyIHY9Y1t0XTtpZigiTSI9PXZbMF0pZz1rPXZbMV0saD1tPXZbMl07ZWxzZXsiQyI9PXZbMF0/KG89W2csaF0uY29uY2F0KHYuc2xpY2UoMSkpLGc9b1s2XSxoPW9bN10pOihvPVtnLGgsZyxoLGssbSxrLG1dLGc9ayxoPW0pO3ZhciB3PWwobixvLGQpO2lmKGQpcCs9dztlbHNle2Zvcih2YXIgeD0wLHk9dy5sZW5ndGg7eT54O3grKyl3W3hdLnNlZ21lbnQxPXEsd1t4XS5zZWdtZW50Mj10LHdbeF0uYmV6MT1uLHdbeF0uYmV6Mj1vO3A9cC5jb25jYXQodyl9fX19fXJldHVybiBwfWZ1bmN0aW9uIG4oYSxiLGMsZCxlLGYpe251bGwhPWE/KHRoaXMuYT0rYSx0aGlzLmI9K2IsdGhpcy5jPStjLHRoaXMuZD0rZCx0aGlzLmU9K2UsdGhpcy5mPStmKToodGhpcy5hPTEsdGhpcy5iPTAsdGhpcy5jPTAsdGhpcy5kPTEsdGhpcy5lPTAsdGhpcy5mPTApfWZ1bmN0aW9uIG8oKXtyZXR1cm4gdGhpcy54K0crdGhpcy55K0crdGhpcy53aWR0aCsiIMOXICIrdGhpcy5oZWlnaHR9ZnVuY3Rpb24gcChhLGIsYyxkLGUsZil7ZnVuY3Rpb24gZyhhKXtyZXR1cm4oKGwqYStrKSphK2opKmF9ZnVuY3Rpb24gaChhLGIpe3ZhciBjPWkoYSxiKTtyZXR1cm4oKG8qYytuKSpjK20pKmN9ZnVuY3Rpb24gaShhLGIpe3ZhciBjLGQsZSxmLGgsaTtmb3IoZT1hLGk9MDs4Pmk7aSsrKXtpZihmPWcoZSktYSxQKGYpPGIpcmV0dXJuIGU7aWYoaD0oMypsKmUrMiprKSplK2osUChoKTwxZS02KWJyZWFrO2UtPWYvaH1pZihjPTAsZD0xLGU9YSxjPmUpcmV0dXJuIGM7aWYoZT5kKXJldHVybiBkO2Zvcig7ZD5jOyl7aWYoZj1nKGUpLFAoZi1hKTxiKXJldHVybiBlO2E+Zj9jPWU6ZD1lLGU9KGQtYykvMitjfXJldHVybiBlfXZhciBqPTMqYixrPTMqKGQtYiktaixsPTEtai1rLG09MypjLG49MyooZS1jKS1tLG89MS1tLW47cmV0dXJuIGgoYSwxLygyMDAqZikpfWZ1bmN0aW9uIHEoYSxiKXt2YXIgYz1bXSxkPXt9O2lmKHRoaXMubXM9Yix0aGlzLnRpbWVzPTEsYSl7Zm9yKHZhciBlIGluIGEpYVt5XShlKSYmKGRbJChlKV09YVtlXSxjLnB1c2goJChlKSkpO2Muc29ydChrYSl9dGhpcy5hbmltPWQsdGhpcy50b3A9Y1tjLmxlbmd0aC0xXSx0aGlzLnBlcmNlbnRzPWN9ZnVuY3Rpb24gcihjLGQsZSxmLGcsaCl7ZT0kKGUpO3ZhciBpLGosayxsLG0sbyxxPWMubXMscj17fSxzPXt9LHQ9e307aWYoZilmb3Iodz0wLHg9ZmIubGVuZ3RoO3g+dzt3Kyspe3ZhciB1PWZiW3ddO2lmKHUuZWwuaWQ9PWQuaWQmJnUuYW5pbT09Yyl7dS5wZXJjZW50IT1lPyhmYi5zcGxpY2UodywxKSxrPTEpOmo9dSxkLmF0dHIodS50b3RhbE9yaWdpbik7YnJlYWt9fWVsc2UgZj0rcztmb3IodmFyIHc9MCx4PWMucGVyY2VudHMubGVuZ3RoO3g+dzt3Kyspe2lmKGMucGVyY2VudHNbd109PWV8fGMucGVyY2VudHNbd10+ZipjLnRvcCl7ZT1jLnBlcmNlbnRzW3ddLG09Yy5wZXJjZW50c1t3LTFdfHwwLHE9cS9jLnRvcCooZS1tKSxsPWMucGVyY2VudHNbdysxXSxpPWMuYW5pbVtlXTticmVha31mJiZkLmF0dHIoYy5hbmltW2MucGVyY2VudHNbd11dKX1pZihpKXtpZihqKWouaW5pdHN0YXR1cz1mLGouc3RhcnQ9bmV3IERhdGUtai5tcypmO2Vsc2V7Zm9yKHZhciB6IGluIGkpaWYoaVt5XSh6KSYmKGNhW3ldKHopfHxkLnBhcGVyLmN1c3RvbUF0dHJpYnV0ZXNbeV0oeikpKXN3aXRjaChyW3pdPWQuYXR0cih6KSxudWxsPT1yW3pdJiYoclt6XT1iYVt6XSksc1t6XT1pW3pdLGNhW3pdKXtjYXNlIFM6dFt6XT0oc1t6XS1yW3pdKS9xO2JyZWFrO2Nhc2UiY29sb3VyIjpyW3pdPWIuZ2V0UkdCKHJbel0pO3ZhciBBPWIuZ2V0UkdCKHNbel0pO3Rbel09e3I6KEEuci1yW3pdLnIpL3EsZzooQS5nLXJbel0uZykvcSxiOihBLmItclt6XS5iKS9xfTticmVhaztjYXNlInBhdGgiOnZhciBCPUlhKHJbel0sc1t6XSksQz1CWzFdO2ZvcihyW3pdPUJbMF0sdFt6XT1bXSx3PTAseD1yW3pdLmxlbmd0aDt4Pnc7dysrKXt0W3pdW3ddPVswXTtmb3IodmFyIEU9MSxGPXJbel1bd10ubGVuZ3RoO0Y+RTtFKyspdFt6XVt3XVtFXT0oQ1t3XVtFXS1yW3pdW3ddW0VdKS9xfWJyZWFrO2Nhc2UidHJhbnNmb3JtIjp2YXIgRz1kLl8sSj1OYShHW3pdLHNbel0pO2lmKEopZm9yKHJbel09Si5mcm9tLHNbel09Si50byx0W3pdPVtdLHRbel0ucmVhbD0hMCx3PTAseD1yW3pdLmxlbmd0aDt4Pnc7dysrKWZvcih0W3pdW3ddPVtyW3pdW3ddWzBdXSxFPTEsRj1yW3pdW3ddLmxlbmd0aDtGPkU7RSsrKXRbel1bd11bRV09KHNbel1bd11bRV0tclt6XVt3XVtFXSkvcTtlbHNle3ZhciBLPWQubWF0cml4fHxuZXcgbixMPXtfOnt0cmFuc2Zvcm06Ry50cmFuc2Zvcm19LGdldEJCb3g6ZnVuY3Rpb24oKXtyZXR1cm4gZC5nZXRCQm94KDEpfX07clt6XT1bSy5hLEsuYixLLmMsSy5kLEsuZSxLLmZdLExhKEwsc1t6XSksc1t6XT1MLl8udHJhbnNmb3JtLHRbel09WyhMLm1hdHJpeC5hLUsuYSkvcSwoTC5tYXRyaXguYi1LLmIpL3EsKEwubWF0cml4LmMtSy5jKS9xLChMLm1hdHJpeC5kLUsuZCkvcSwoTC5tYXRyaXguZS1LLmUpL3EsKEwubWF0cml4LmYtSy5mKS9xXX1icmVhaztjYXNlImNzdiI6dmFyIE09SChpW3pdKVtJXSh2KSxOPUgoclt6XSlbSV0odik7aWYoImNsaXAtcmVjdCI9PXopZm9yKHJbel09Tix0W3pdPVtdLHc9Ti5sZW5ndGg7dy0tOyl0W3pdW3ddPShNW3ddLXJbel1bd10pL3E7c1t6XT1NO2JyZWFrO2RlZmF1bHQ6Zm9yKE09W11bRF0oaVt6XSksTj1bXVtEXShyW3pdKSx0W3pdPVtdLHc9ZC5wYXBlci5jdXN0b21BdHRyaWJ1dGVzW3pdLmxlbmd0aDt3LS07KXRbel1bd109KChNW3ddfHwwKS0oTlt3XXx8MCkpL3F9dmFyIE89aS5lYXNpbmcsUD1iLmVhc2luZ19mb3JtdWxhc1tPXTtpZighUClpZihQPUgoTykubWF0Y2goWSksUCYmNT09UC5sZW5ndGgpe3ZhciBRPVA7UD1mdW5jdGlvbihhKXtyZXR1cm4gcChhLCtRWzFdLCtRWzJdLCtRWzNdLCtRWzRdLHEpfX1lbHNlIFA9bGE7aWYobz1pLnN0YXJ0fHxjLnN0YXJ0fHwrbmV3IERhdGUsdT17YW5pbTpjLHBlcmNlbnQ6ZSx0aW1lc3RhbXA6byxzdGFydDpvKyhjLmRlbHx8MCksc3RhdHVzOjAsaW5pdHN0YXR1czpmfHwwLHN0b3A6ITEsbXM6cSxlYXNpbmc6UCxmcm9tOnIsZGlmZjp0LHRvOnMsZWw6ZCxjYWxsYmFjazppLmNhbGxiYWNrLHByZXY6bSxuZXh0OmwscmVwZWF0Omh8fGMudGltZXMsb3JpZ2luOmQuYXR0cigpLHRvdGFsT3JpZ2luOmd9LGZiLnB1c2godSksZiYmIWomJiFrJiYodS5zdG9wPSEwLHUuc3RhcnQ9bmV3IERhdGUtcSpmLDE9PWZiLmxlbmd0aCkpcmV0dXJuIGhiKCk7ayYmKHUuc3RhcnQ9bmV3IERhdGUtdS5tcypmKSwxPT1mYi5sZW5ndGgmJmdiKGhiKX1hKCJyYXBoYWVsLmFuaW0uc3RhcnQuIitkLmlkLGQsYyl9fWZ1bmN0aW9uIHMoYSl7Zm9yKHZhciBiPTA7YjxmYi5sZW5ndGg7YisrKWZiW2JdLmVsLnBhcGVyPT1hJiZmYi5zcGxpY2UoYi0tLDEpfWIudmVyc2lvbj0iMi4xLjQiLGIuZXZlPWE7dmFyIHQsdSx2PS9bLCBdKy8sdz17Y2lyY2xlOjEscmVjdDoxLHBhdGg6MSxlbGxpcHNlOjEsdGV4dDoxLGltYWdlOjF9LHg9L1x7KFxkKylcfS9nLHk9Imhhc093blByb3BlcnR5Iix6PXtkb2M6ZG9jdW1lbnQsd2luOndpbmRvd30sQT17d2FzOk9iamVjdC5wcm90b3R5cGVbeV0uY2FsbCh6LndpbiwiUmFwaGFlbCIpLGlzOnoud2luLlJhcGhhZWx9LEI9ZnVuY3Rpb24oKXt0aGlzLmNhPXRoaXMuY3VzdG9tQXR0cmlidXRlcz17fX0sQz0iYXBwbHkiLEQ9ImNvbmNhdCIsRT0ib250b3VjaHN0YXJ0ImluIHoud2lufHx6Lndpbi5Eb2N1bWVudFRvdWNoJiZ6LmRvYyBpbnN0YW5jZW9mIERvY3VtZW50VG91Y2gsRj0iIixHPSIgIixIPVN0cmluZyxJPSJzcGxpdCIsSj0iY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNlbW92ZSBtb3VzZW91dCBtb3VzZW92ZXIgbW91c2V1cCB0b3VjaHN0YXJ0IHRvdWNobW92ZSB0b3VjaGVuZCB0b3VjaGNhbmNlbCJbSV0oRyksSz17bW91c2Vkb3duOiJ0b3VjaHN0YXJ0Iixtb3VzZW1vdmU6InRvdWNobW92ZSIsbW91c2V1cDoidG91Y2hlbmQifSxMPUgucHJvdG90eXBlLnRvTG93ZXJDYXNlLE09TWF0aCxOPU0ubWF4LE89TS5taW4sUD1NLmFicyxRPU0ucG93LFI9TS5QSSxTPSJudW1iZXIiLFQ9InN0cmluZyIsVT0iYXJyYXkiLFY9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxXPShiLl9JU1VSTD0vXnVybFwoWyciXT8oLis/KVsnIl0/XCkkL2ksL15ccyooKCNbYS1mXGRdezZ9KXwoI1thLWZcZF17M30pfHJnYmE/XChccyooW1xkXC5dKyU/XHMqLFxzKltcZFwuXSslP1xzKixccypbXGRcLl0rJT8oPzpccyosXHMqW1xkXC5dKyU/KT8pXHMqXCl8aHNiYT9cKFxzKihbXGRcLl0rKD86ZGVnfFx4YjB8JSk/XHMqLFxzKltcZFwuXSslP1xzKixccypbXGRcLl0rKD86JT9ccyosXHMqW1xkXC5dKyk/KSU/XHMqXCl8aHNsYT9cKFxzKihbXGRcLl0rKD86ZGVnfFx4YjB8JSk/XHMqLFxzKltcZFwuXSslP1xzKixccypbXGRcLl0rKD86JT9ccyosXHMqW1xkXC5dKyk/KSU/XHMqXCkpXHMqJC9pKSxYPXtOYU46MSxJbmZpbml0eToxLCItSW5maW5pdHkiOjF9LFk9L14oPzpjdWJpYy0pP2JlemllclwoKFteLF0rKSwoW14sXSspLChbXixdKyksKFteXCldKylcKS8sWj1NLnJvdW5kLCQ9cGFyc2VGbG9hdCxfPXBhcnNlSW50LGFhPUgucHJvdG90eXBlLnRvVXBwZXJDYXNlLGJhPWIuX2F2YWlsYWJsZUF0dHJzPXsiYXJyb3ctZW5kIjoibm9uZSIsImFycm93LXN0YXJ0Ijoibm9uZSIsYmx1cjowLCJjbGlwLXJlY3QiOiIwIDAgMWU5IDFlOSIsY3Vyc29yOiJkZWZhdWx0IixjeDowLGN5OjAsZmlsbDoiI2ZmZiIsImZpbGwtb3BhY2l0eSI6MSxmb250OicxMHB4ICJBcmlhbCInLCJmb250LWZhbWlseSI6JyJBcmlhbCInLCJmb250LXNpemUiOiIxMCIsImZvbnQtc3R5bGUiOiJub3JtYWwiLCJmb250LXdlaWdodCI6NDAwLGdyYWRpZW50OjAsaGVpZ2h0OjAsaHJlZjoiaHR0cDovL3JhcGhhZWxqcy5jb20vIiwibGV0dGVyLXNwYWNpbmciOjAsb3BhY2l0eToxLHBhdGg6Ik0wLDAiLHI6MCxyeDowLHJ5OjAsc3JjOiIiLHN0cm9rZToiIzAwMCIsInN0cm9rZS1kYXNoYXJyYXkiOiIiLCJzdHJva2UtbGluZWNhcCI6ImJ1dHQiLCJzdHJva2UtbGluZWpvaW4iOiJidXR0Iiwic3Ryb2tlLW1pdGVybGltaXQiOjAsInN0cm9rZS1vcGFjaXR5IjoxLCJzdHJva2Utd2lkdGgiOjEsdGFyZ2V0OiJfYmxhbmsiLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSIsdGl0bGU6IlJhcGhhZWwiLHRyYW5zZm9ybToiIix3aWR0aDowLHg6MCx5OjB9LGNhPWIuX2F2YWlsYWJsZUFuaW1BdHRycz17Ymx1cjpTLCJjbGlwLXJlY3QiOiJjc3YiLGN4OlMsY3k6UyxmaWxsOiJjb2xvdXIiLCJmaWxsLW9wYWNpdHkiOlMsImZvbnQtc2l6ZSI6UyxoZWlnaHQ6UyxvcGFjaXR5OlMscGF0aDoicGF0aCIscjpTLHJ4OlMscnk6UyxzdHJva2U6ImNvbG91ciIsInN0cm9rZS1vcGFjaXR5IjpTLCJzdHJva2Utd2lkdGgiOlMsdHJhbnNmb3JtOiJ0cmFuc2Zvcm0iLHdpZHRoOlMseDpTLHk6U30sZGE9L1tceDA5XHgwYVx4MGJceDBjXHgwZFx4MjBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XSosW1x4MDlceDBhXHgwYlx4MGNceDBkXHgyMFx4YTBcdTE2ODBcdTE4MGVcdTIwMDBcdTIwMDFcdTIwMDJcdTIwMDNcdTIwMDRcdTIwMDVcdTIwMDZcdTIwMDdcdTIwMDhcdTIwMDlcdTIwMGFcdTIwMmZcdTIwNWZcdTMwMDBcdTIwMjhcdTIwMjldKi8sZWE9e2hzOjEscmc6MX0sZmE9Lyw/KFthY2hsbXFyc3R2eHpdKSw/L2dpLGdhPS8oW2FjaGxtcnFzdHZ6XSlbXHgwOVx4MGFceDBiXHgwY1x4MGRceDIwXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOSxdKigoLT9cZCpcLj9cZCooPzplW1wtK10/XGQrKT9bXHgwOVx4MGFceDBiXHgwY1x4MGRceDIwXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOV0qLD9bXHgwOVx4MGFceDBiXHgwY1x4MGRceDIwXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOV0qKSspL2dpLGhhPS8oW3JzdG1dKVtceDA5XHgwYVx4MGJceDBjXHgwZFx4MjBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5LF0qKCgtP1xkKlwuP1xkKig/OmVbXC0rXT9cZCspP1tceDA5XHgwYVx4MGJceDBjXHgwZFx4MjBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XSosP1tceDA5XHgwYVx4MGJceDBjXHgwZFx4MjBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XSopKykvZ2ksaWE9LygtP1xkKlwuP1xkKig/OmVbXC0rXT9cZCspPylbXHgwOVx4MGFceDBiXHgwY1x4MGRceDIwXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOV0qLD9bXHgwOVx4MGFceDBiXHgwY1x4MGRceDIwXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOV0qL2dpLGphPShiLl9yYWRpYWxfZ3JhZGllbnQ9L15yKD86XCgoW14sXSs/KVtceDA5XHgwYVx4MGJceDBjXHgwZFx4MjBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XSosW1x4MDlceDBhXHgwYlx4MGNceDBkXHgyMFx4YTBcdTE2ODBcdTE4MGVcdTIwMDBcdTIwMDFcdTIwMDJcdTIwMDNcdTIwMDRcdTIwMDVcdTIwMDZcdTIwMDdcdTIwMDhcdTIwMDlcdTIwMGFcdTIwMmZcdTIwNWZcdTMwMDBcdTIwMjhcdTIwMjldKihbXlwpXSs/KVwpKT8vLHt9KSxrYT1mdW5jdGlvbihhLGIpe3JldHVybiAkKGEpLSQoYil9LGxhPWZ1bmN0aW9uKGEpe3JldHVybiBhfSxtYT1iLl9yZWN0UGF0aD1mdW5jdGlvbihhLGIsYyxkLGUpe3JldHVybiBlP1tbIk0iLGErZSxiXSxbImwiLGMtMiplLDBdLFsiYSIsZSxlLDAsMCwxLGUsZV0sWyJsIiwwLGQtMiplXSxbImEiLGUsZSwwLDAsMSwtZSxlXSxbImwiLDIqZS1jLDBdLFsiYSIsZSxlLDAsMCwxLC1lLC1lXSxbImwiLDAsMiplLWRdLFsiYSIsZSxlLDAsMCwxLGUsLWVdLFsieiJdXTpbWyJNIixhLGJdLFsibCIsYywwXSxbImwiLDAsZF0sWyJsIiwtYywwXSxbInoiXV19LG5hPWZ1bmN0aW9uKGEsYixjLGQpe3JldHVybiBudWxsPT1kJiYoZD1jKSxbWyJNIixhLGJdLFsibSIsMCwtZF0sWyJhIixjLGQsMCwxLDEsMCwyKmRdLFsiYSIsYyxkLDAsMSwxLDAsLTIqZF0sWyJ6Il1dfSxvYT1iLl9nZXRQYXRoPXtwYXRoOmZ1bmN0aW9uKGEpe3JldHVybiBhLmF0dHIoInBhdGgiKX0sY2lyY2xlOmZ1bmN0aW9uKGEpe3ZhciBiPWEuYXR0cnM7cmV0dXJuIG5hKGIuY3gsYi5jeSxiLnIpfSxlbGxpcHNlOmZ1bmN0aW9uKGEpe3ZhciBiPWEuYXR0cnM7cmV0dXJuIG5hKGIuY3gsYi5jeSxiLnJ4LGIucnkpfSxyZWN0OmZ1bmN0aW9uKGEpe3ZhciBiPWEuYXR0cnM7cmV0dXJuIG1hKGIueCxiLnksYi53aWR0aCxiLmhlaWdodCxiLnIpfSxpbWFnZTpmdW5jdGlvbihhKXt2YXIgYj1hLmF0dHJzO3JldHVybiBtYShiLngsYi55LGIud2lkdGgsYi5oZWlnaHQpfSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiPWEuX2dldEJCb3goKTtyZXR1cm4gbWEoYi54LGIueSxiLndpZHRoLGIuaGVpZ2h0KX0sc2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWEuX2dldEJCb3goKTtyZXR1cm4gbWEoYi54LGIueSxiLndpZHRoLGIuaGVpZ2h0KX19LHBhPWIubWFwUGF0aD1mdW5jdGlvbihhLGIpe2lmKCFiKXJldHVybiBhO3ZhciBjLGQsZSxmLGcsaCxpO2ZvcihhPUlhKGEpLGU9MCxnPWEubGVuZ3RoO2c+ZTtlKyspZm9yKGk9YVtlXSxmPTEsaD1pLmxlbmd0aDtoPmY7Zis9MiljPWIueChpW2ZdLGlbZisxXSksZD1iLnkoaVtmXSxpW2YrMV0pLGlbZl09YyxpW2YrMV09ZDtyZXR1cm4gYX07aWYoYi5fZz16LGIudHlwZT16Lndpbi5TVkdBbmdsZXx8ei5kb2MuaW1wbGVtZW50YXRpb24uaGFzRmVhdHVyZSgiaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNCYXNpY1N0cnVjdHVyZSIsIjEuMSIpPyJTVkciOiJWTUwiLCJWTUwiPT1iLnR5cGUpe3ZhciBxYSxyYT16LmRvYy5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZihyYS5pbm5lckhUTUw9Jzx2OnNoYXBlIGFkaj0iMSIvPicscWE9cmEuZmlyc3RDaGlsZCxxYS5zdHlsZS5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I1ZNTCkiLCFxYXx8Im9iamVjdCIhPXR5cGVvZiBxYS5hZGopcmV0dXJuIGIudHlwZT1GO3JhPW51bGx9Yi5zdmc9IShiLnZtbD0iVk1MIj09Yi50eXBlKSxiLl9QYXBlcj1CLGIuZm49dT1CLnByb3RvdHlwZT1iLnByb3RvdHlwZSxiLl9pZD0wLGIuX29pZD0wLGIuaXM9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj1MLmNhbGwoYiksImZpbml0ZSI9PWI/IVhbeV0oK2EpOiJhcnJheSI9PWI/YSBpbnN0YW5jZW9mIEFycmF5OiJudWxsIj09YiYmbnVsbD09PWF8fGI9PXR5cGVvZiBhJiZudWxsIT09YXx8Im9iamVjdCI9PWImJmE9PT1PYmplY3QoYSl8fCJhcnJheSI9PWImJkFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkoYSl8fFYuY2FsbChhKS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpPT1ifSxiLmFuZ2xlPWZ1bmN0aW9uKGEsYyxkLGUsZixnKXtpZihudWxsPT1mKXt2YXIgaD1hLWQsaT1jLWU7cmV0dXJuIGh8fGk/KDE4MCsxODAqTS5hdGFuMigtaSwtaCkvUiszNjApJTM2MDowfXJldHVybiBiLmFuZ2xlKGEsYyxmLGcpLWIuYW5nbGUoZCxlLGYsZyl9LGIucmFkPWZ1bmN0aW9uKGEpe3JldHVybiBhJTM2MCpSLzE4MH0sYi5kZWc9ZnVuY3Rpb24oYSl7cmV0dXJuIE1hdGgucm91bmQoMTgwKmEvUiUzNjAqMWUzKS8xZTN9LGIuc25hcFRvPWZ1bmN0aW9uKGEsYyxkKXtpZihkPWIuaXMoZCwiZmluaXRlIik/ZDoxMCxiLmlzKGEsVSkpe2Zvcih2YXIgZT1hLmxlbmd0aDtlLS07KWlmKFAoYVtlXS1jKTw9ZClyZXR1cm4gYVtlXX1lbHNle2E9K2E7dmFyIGY9YyVhO2lmKGQ+ZilyZXR1cm4gYy1mO2lmKGY+YS1kKXJldHVybiBjLWYrYX1yZXR1cm4gY307Yi5jcmVhdGVVVUlEPWZ1bmN0aW9uKGEsYil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuInh4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4eCIucmVwbGFjZShhLGIpLnRvVXBwZXJDYXNlKCl9fSgvW3h5XS9nLGZ1bmN0aW9uKGEpe3ZhciBiPTE2Kk0ucmFuZG9tKCl8MCxjPSJ4Ij09YT9iOjMmYnw4O3JldHVybiBjLnRvU3RyaW5nKDE2KX0pO2Iuc2V0V2luZG93PWZ1bmN0aW9uKGMpe2EoInJhcGhhZWwuc2V0V2luZG93IixiLHoud2luLGMpLHoud2luPWMsei5kb2M9ei53aW4uZG9jdW1lbnQsYi5fZW5naW5lLmluaXRXaW4mJmIuX2VuZ2luZS5pbml0V2luKHoud2luKX07dmFyIHNhPWZ1bmN0aW9uKGEpe2lmKGIudm1sKXt2YXIgYyxkPS9eXHMrfFxzKyQvZzt0cnl7dmFyIGY9bmV3IEFjdGl2ZVhPYmplY3QoImh0bWxmaWxlIik7Zi53cml0ZSgiPGJvZHk+IiksZi5jbG9zZSgpLGM9Zi5ib2R5fWNhdGNoKGcpe2M9Y3JlYXRlUG9wdXAoKS5kb2N1bWVudC5ib2R5fXZhciBoPWMuY3JlYXRlVGV4dFJhbmdlKCk7c2E9ZShmdW5jdGlvbihhKXt0cnl7Yy5zdHlsZS5jb2xvcj1IKGEpLnJlcGxhY2UoZCxGKTt2YXIgYj1oLnF1ZXJ5Q29tbWFuZFZhbHVlKCJGb3JlQ29sb3IiKTtyZXR1cm4gYj0oMjU1JmIpPDwxNnw2NTI4MCZifCgxNjcxMTY4MCZiKT4+PjE2LCIjIisoIjAwMDAwMCIrYi50b1N0cmluZygxNikpLnNsaWNlKC02KX1jYXRjaChlKXtyZXR1cm4ibm9uZSJ9fSl9ZWxzZXt2YXIgaT16LmRvYy5jcmVhdGVFbGVtZW50KCJpIik7aS50aXRsZT0iUmFwaGHDq2wgQ29sb3VyIFBpY2tlciIsaS5zdHlsZS5kaXNwbGF5PSJub25lIix6LmRvYy5ib2R5LmFwcGVuZENoaWxkKGkpLHNhPWUoZnVuY3Rpb24oYSl7cmV0dXJuIGkuc3R5bGUuY29sb3I9YSx6LmRvYy5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGksRikuZ2V0UHJvcGVydHlWYWx1ZSgiY29sb3IiKX0pfXJldHVybiBzYShhKX0sdGE9ZnVuY3Rpb24oKXtyZXR1cm4iaHNiKCIrW3RoaXMuaCx0aGlzLnMsdGhpcy5iXSsiKSJ9LHVhPWZ1bmN0aW9uKCl7cmV0dXJuImhzbCgiK1t0aGlzLmgsdGhpcy5zLHRoaXMubF0rIikifSx2YT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmhleH0sd2E9ZnVuY3Rpb24oYSxjLGQpe2lmKG51bGw9PWMmJmIuaXMoYSwib2JqZWN0IikmJiJyImluIGEmJiJnImluIGEmJiJiImluIGEmJihkPWEuYixjPWEuZyxhPWEuciksbnVsbD09YyYmYi5pcyhhLFQpKXt2YXIgZT1iLmdldFJHQihhKTthPWUucixjPWUuZyxkPWUuYn1yZXR1cm4oYT4xfHxjPjF8fGQ+MSkmJihhLz0yNTUsYy89MjU1LGQvPTI1NSksW2EsYyxkXX0seGE9ZnVuY3Rpb24oYSxjLGQsZSl7YSo9MjU1LGMqPTI1NSxkKj0yNTU7dmFyIGY9e3I6YSxnOmMsYjpkLGhleDpiLnJnYihhLGMsZCksdG9TdHJpbmc6dmF9O3JldHVybiBiLmlzKGUsImZpbml0ZSIpJiYoZi5vcGFjaXR5PWUpLGZ9O2IuY29sb3I9ZnVuY3Rpb24oYSl7dmFyIGM7cmV0dXJuIGIuaXMoYSwib2JqZWN0IikmJiJoImluIGEmJiJzImluIGEmJiJiImluIGE/KGM9Yi5oc2IycmdiKGEpLGEucj1jLnIsYS5nPWMuZyxhLmI9Yy5iLGEuaGV4PWMuaGV4KTpiLmlzKGEsIm9iamVjdCIpJiYiaCJpbiBhJiYicyJpbiBhJiYibCJpbiBhPyhjPWIuaHNsMnJnYihhKSxhLnI9Yy5yLGEuZz1jLmcsYS5iPWMuYixhLmhleD1jLmhleCk6KGIuaXMoYSwic3RyaW5nIikmJihhPWIuZ2V0UkdCKGEpKSxiLmlzKGEsIm9iamVjdCIpJiYiciJpbiBhJiYiZyJpbiBhJiYiYiJpbiBhPyhjPWIucmdiMmhzbChhKSxhLmg9Yy5oLGEucz1jLnMsYS5sPWMubCxjPWIucmdiMmhzYihhKSxhLnY9Yy5iKTooYT17aGV4OiJub25lIn0sYS5yPWEuZz1hLmI9YS5oPWEucz1hLnY9YS5sPS0xKSksYS50b1N0cmluZz12YSxhfSxiLmhzYjJyZ2I9ZnVuY3Rpb24oYSxiLGMsZCl7dGhpcy5pcyhhLCJvYmplY3QiKSYmImgiaW4gYSYmInMiaW4gYSYmImIiaW4gYSYmKGM9YS5iLGI9YS5zLGQ9YS5vLGE9YS5oKSxhKj0zNjA7dmFyIGUsZixnLGgsaTtyZXR1cm4gYT1hJTM2MC82MCxpPWMqYixoPWkqKDEtUChhJTItMSkpLGU9Zj1nPWMtaSxhPX5+YSxlKz1baSxoLDAsMCxoLGldW2FdLGYrPVtoLGksaSxoLDAsMF1bYV0sZys9WzAsMCxoLGksaSxoXVthXSx4YShlLGYsZyxkKX0sYi5oc2wycmdiPWZ1bmN0aW9uKGEsYixjLGQpe3RoaXMuaXMoYSwib2JqZWN0IikmJiJoImluIGEmJiJzImluIGEmJiJsImluIGEmJihjPWEubCxiPWEucyxhPWEuaCksKGE+MXx8Yj4xfHxjPjEpJiYoYS89MzYwLGIvPTEwMCxjLz0xMDApLGEqPTM2MDt2YXIgZSxmLGcsaCxpO3JldHVybiBhPWElMzYwLzYwLGk9MipiKiguNT5jP2M6MS1jKSxoPWkqKDEtUChhJTItMSkpLGU9Zj1nPWMtaS8yLGE9fn5hLGUrPVtpLGgsMCwwLGgsaV1bYV0sZis9W2gsaSxpLGgsMCwwXVthXSxnKz1bMCwwLGgsaSxpLGhdW2FdLHhhKGUsZixnLGQpfSxiLnJnYjJoc2I9ZnVuY3Rpb24oYSxiLGMpe2M9d2EoYSxiLGMpLGE9Y1swXSxiPWNbMV0sYz1jWzJdO3ZhciBkLGUsZixnO3JldHVybiBmPU4oYSxiLGMpLGc9Zi1PKGEsYixjKSxkPTA9PWc/bnVsbDpmPT1hPyhiLWMpL2c6Zj09Yj8oYy1hKS9nKzI6KGEtYikvZys0LGQ9KGQrMzYwKSU2KjYwLzM2MCxlPTA9PWc/MDpnL2Yse2g6ZCxzOmUsYjpmLHRvU3RyaW5nOnRhfX0sYi5yZ2IyaHNsPWZ1bmN0aW9uKGEsYixjKXtjPXdhKGEsYixjKSxhPWNbMF0sYj1jWzFdLGM9Y1syXTt2YXIgZCxlLGYsZyxoLGk7cmV0dXJuIGc9TihhLGIsYyksaD1PKGEsYixjKSxpPWctaCxkPTA9PWk/bnVsbDpnPT1hPyhiLWMpL2k6Zz09Yj8oYy1hKS9pKzI6KGEtYikvaSs0LGQ9KGQrMzYwKSU2KjYwLzM2MCxmPShnK2gpLzIsZT0wPT1pPzA6LjU+Zj9pLygyKmYpOmkvKDItMipmKSx7aDpkLHM6ZSxsOmYsdG9TdHJpbmc6dWF9fSxiLl9wYXRoMnN0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmpvaW4oIiwiKS5yZXBsYWNlKGZhLCIkMSIpfTtiLl9wcmVsb2FkPWZ1bmN0aW9uKGEsYil7dmFyIGM9ei5kb2MuY3JlYXRlRWxlbWVudCgiaW1nIik7Yy5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi05OTk5ZW07dG9wOi05OTk5ZW0iLGMub25sb2FkPWZ1bmN0aW9uKCl7Yi5jYWxsKHRoaXMpLHRoaXMub25sb2FkPW51bGwsei5kb2MuYm9keS5yZW1vdmVDaGlsZCh0aGlzKX0sYy5vbmVycm9yPWZ1bmN0aW9uKCl7ei5kb2MuYm9keS5yZW1vdmVDaGlsZCh0aGlzKX0sei5kb2MuYm9keS5hcHBlbmRDaGlsZChjKSxjLnNyYz1hfTtiLmdldFJHQj1lKGZ1bmN0aW9uKGEpe2lmKCFhfHwoYT1IKGEpKS5pbmRleE9mKCItIikrMSlyZXR1cm57cjotMSxnOi0xLGI6LTEsaGV4OiJub25lIixlcnJvcjoxLHRvU3RyaW5nOmZ9O2lmKCJub25lIj09YSlyZXR1cm57cjotMSxnOi0xLGI6LTEsaGV4OiJub25lIix0b1N0cmluZzpmfTshKGVhW3ldKGEudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoMCwyKSl8fCIjIj09YS5jaGFyQXQoKSkmJihhPXNhKGEpKTt2YXIgYyxkLGUsZyxoLGksaj1hLm1hdGNoKFcpO3JldHVybiBqPyhqWzJdJiYoZT1fKGpbMl0uc3Vic3RyaW5nKDUpLDE2KSxkPV8oalsyXS5zdWJzdHJpbmcoMyw1KSwxNiksYz1fKGpbMl0uc3Vic3RyaW5nKDEsMyksMTYpKSxqWzNdJiYoZT1fKChoPWpbM10uY2hhckF0KDMpKStoLDE2KSxkPV8oKGg9alszXS5jaGFyQXQoMikpK2gsMTYpLGM9XygoaD1qWzNdLmNoYXJBdCgxKSkraCwxNikpLGpbNF0mJihpPWpbNF1bSV0oZGEpLGM9JChpWzBdKSwiJSI9PWlbMF0uc2xpY2UoLTEpJiYoYyo9Mi41NSksZD0kKGlbMV0pLCIlIj09aVsxXS5zbGljZSgtMSkmJihkKj0yLjU1KSxlPSQoaVsyXSksIiUiPT1pWzJdLnNsaWNlKC0xKSYmKGUqPTIuNTUpLCJyZ2JhIj09alsxXS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsNCkmJihnPSQoaVszXSkpLGlbM10mJiIlIj09aVszXS5zbGljZSgtMSkmJihnLz0xMDApKSxqWzVdPyhpPWpbNV1bSV0oZGEpLGM9JChpWzBdKSwiJSI9PWlbMF0uc2xpY2UoLTEpJiYoYyo9Mi41NSksZD0kKGlbMV0pLCIlIj09aVsxXS5zbGljZSgtMSkmJihkKj0yLjU1KSxlPSQoaVsyXSksIiUiPT1pWzJdLnNsaWNlKC0xKSYmKGUqPTIuNTUpLCgiZGVnIj09aVswXS5zbGljZSgtMyl8fCLCsCI9PWlbMF0uc2xpY2UoLTEpKSYmKGMvPTM2MCksImhzYmEiPT1qWzFdLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw0KSYmKGc9JChpWzNdKSksaVszXSYmIiUiPT1pWzNdLnNsaWNlKC0xKSYmKGcvPTEwMCksYi5oc2IycmdiKGMsZCxlLGcpKTpqWzZdPyhpPWpbNl1bSV0oZGEpLGM9JChpWzBdKSwiJSI9PWlbMF0uc2xpY2UoLTEpJiYoYyo9Mi41NSksZD0kKGlbMV0pLCIlIj09aVsxXS5zbGljZSgtMSkmJihkKj0yLjU1KSxlPSQoaVsyXSksIiUiPT1pWzJdLnNsaWNlKC0xKSYmKGUqPTIuNTUpLCgiZGVnIj09aVswXS5zbGljZSgtMyl8fCLCsCI9PWlbMF0uc2xpY2UoLTEpKSYmKGMvPTM2MCksImhzbGEiPT1qWzFdLnRvTG93ZXJDYXNlKCkuc2xpY2UoMCw0KSYmKGc9JChpWzNdKSksaVszXSYmIiUiPT1pWzNdLnNsaWNlKC0xKSYmKGcvPTEwMCksYi5oc2wycmdiKGMsZCxlLGcpKTooaj17cjpjLGc6ZCxiOmUsdG9TdHJpbmc6Zn0sai5oZXg9IiMiKygxNjc3NzIxNnxlfGQ8PDh8Yzw8MTYpLnRvU3RyaW5nKDE2KS5zbGljZSgxKSxiLmlzKGcsImZpbml0ZSIpJiYoai5vcGFjaXR5PWcpLGopKTp7cjotMSxnOi0xLGI6LTEsaGV4OiJub25lIixlcnJvcjoxLHRvU3RyaW5nOmZ9fSxiKSxiLmhzYj1lKGZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gYi5oc2IycmdiKGEsYyxkKS5oZXh9KSxiLmhzbD1lKGZ1bmN0aW9uKGEsYyxkKXtyZXR1cm4gYi5oc2wycmdiKGEsYyxkKS5oZXh9KSxiLnJnYj1lKGZ1bmN0aW9uKGEsYixjKXtmdW5jdGlvbiBkKGEpe3JldHVybiBhKy41fDB9cmV0dXJuIiMiKygxNjc3NzIxNnxkKGMpfGQoYik8PDh8ZChhKTw8MTYpLnRvU3RyaW5nKDE2KS5zbGljZSgxKX0pLGIuZ2V0Q29sb3I9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5nZXRDb2xvci5zdGFydD10aGlzLmdldENvbG9yLnN0YXJ0fHx7aDowLHM6MSxiOmF8fC43NX0sYz10aGlzLmhzYjJyZ2IoYi5oLGIucyxiLmIpO3JldHVybiBiLmgrPS4wNzUsYi5oPjEmJihiLmg9MCxiLnMtPS4yLGIuczw9MCYmKHRoaXMuZ2V0Q29sb3Iuc3RhcnQ9e2g6MCxzOjEsYjpiLmJ9KSksYy5oZXh9LGIuZ2V0Q29sb3IucmVzZXQ9ZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5zdGFydH0sYi5wYXJzZVBhdGhTdHJpbmc9ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIG51bGw7dmFyIGM9eWEoYSk7aWYoYy5hcnIpcmV0dXJuIEFhKGMuYXJyKTt2YXIgZD17YTo3LGM6NixoOjEsbDoyLG06MixyOjQscTo0LHM6NCx0OjIsdjoxLHo6MH0sZT1bXTtyZXR1cm4gYi5pcyhhLFUpJiZiLmlzKGFbMF0sVSkmJihlPUFhKGEpKSxlLmxlbmd0aHx8SChhKS5yZXBsYWNlKGdhLGZ1bmN0aW9uKGEsYixjKXt2YXIgZj1bXSxnPWIudG9Mb3dlckNhc2UoKTtpZihjLnJlcGxhY2UoaWEsZnVuY3Rpb24oYSxiKXtiJiZmLnB1c2goK2IpfSksIm0iPT1nJiZmLmxlbmd0aD4yJiYoZS5wdXNoKFtiXVtEXShmLnNwbGljZSgwLDIpKSksZz0ibCIsYj0ibSI9PWI/ImwiOiJMIiksInIiPT1nKWUucHVzaChbYl1bRF0oZikpO2Vsc2UgZm9yKDtmLmxlbmd0aD49ZFtnXSYmKGUucHVzaChbYl1bRF0oZi5zcGxpY2UoMCxkW2ddKSkpLGRbZ10pOyk7fSksZS50b1N0cmluZz1iLl9wYXRoMnN0cmluZyxjLmFycj1BYShlKSxlfSxiLnBhcnNlVHJhbnNmb3JtU3RyaW5nPWUoZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIG51bGw7dmFyIGM9W107cmV0dXJuIGIuaXMoYSxVKSYmYi5pcyhhWzBdLFUpJiYoYz1BYShhKSksYy5sZW5ndGh8fEgoYSkucmVwbGFjZShoYSxmdW5jdGlvbihhLGIsZCl7e3ZhciBlPVtdO0wuY2FsbChiKX1kLnJlcGxhY2UoaWEsZnVuY3Rpb24oYSxiKXtiJiZlLnB1c2goK2IpfSksYy5wdXNoKFtiXVtEXShlKSl9KSxjLnRvU3RyaW5nPWIuX3BhdGgyc3RyaW5nLGN9KTt2YXIgeWE9ZnVuY3Rpb24oYSl7dmFyIGI9eWEucHM9eWEucHN8fHt9O3JldHVybiBiW2FdP2JbYV0uc2xlZXA9MTAwOmJbYV09e3NsZWVwOjEwMH0sc2V0VGltZW91dChmdW5jdGlvbigpe2Zvcih2YXIgYyBpbiBiKWJbeV0oYykmJmMhPWEmJihiW2NdLnNsZWVwLS0sIWJbY10uc2xlZXAmJmRlbGV0ZSBiW2NdKX0pLGJbYV19O2IuZmluZERvdHNBdFNlZ21lbnQ9ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyxoLGkpe3ZhciBqPTEtaSxrPVEoaiwzKSxsPVEoaiwyKSxtPWkqaSxuPW0qaSxvPWsqYSszKmwqaSpjKzMqaippKmkqZStuKmcscD1rKmIrMypsKmkqZCszKmoqaSppKmYrbipoLHE9YSsyKmkqKGMtYSkrbSooZS0yKmMrYSkscj1iKzIqaSooZC1iKSttKihmLTIqZCtiKSxzPWMrMippKihlLWMpK20qKGctMiplK2MpLHQ9ZCsyKmkqKGYtZCkrbSooaC0yKmYrZCksdT1qKmEraSpjLHY9aipiK2kqZCx3PWoqZStpKmcseD1qKmYraSpoLHk9OTAtMTgwKk0uYXRhbjIocS1zLHItdCkvUjtyZXR1cm4ocT5zfHx0PnIpJiYoeSs9MTgwKSx7eDpvLHk6cCxtOnt4OnEseTpyfSxuOnt4OnMseTp0fSxzdGFydDp7eDp1LHk6dn0sZW5kOnt4OncseTp4fSxhbHBoYTp5fX0sYi5iZXppZXJCQm94PWZ1bmN0aW9uKGEsYyxkLGUsZixnLGgsaSl7Yi5pcyhhLCJhcnJheSIpfHwoYT1bYSxjLGQsZSxmLGcsaCxpXSk7dmFyIGo9SGEuYXBwbHkobnVsbCxhKTtyZXR1cm57eDpqLm1pbi54LHk6ai5taW4ueSx4MjpqLm1heC54LHkyOmoubWF4Lnksd2lkdGg6ai5tYXgueC1qLm1pbi54LGhlaWdodDpqLm1heC55LWoubWluLnl9fSxiLmlzUG9pbnRJbnNpZGVCQm94PWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYj49YS54JiZiPD1hLngyJiZjPj1hLnkmJmM8PWEueTJ9LGIuaXNCQm94SW50ZXJzZWN0PWZ1bmN0aW9uKGEsYyl7dmFyIGQ9Yi5pc1BvaW50SW5zaWRlQkJveDtyZXR1cm4gZChjLGEueCxhLnkpfHxkKGMsYS54MixhLnkpfHxkKGMsYS54LGEueTIpfHxkKGMsYS54MixhLnkyKXx8ZChhLGMueCxjLnkpfHxkKGEsYy54MixjLnkpfHxkKGEsYy54LGMueTIpfHxkKGEsYy54MixjLnkyKXx8KGEueDxjLngyJiZhLng+Yy54fHxjLng8YS54MiYmYy54PmEueCkmJihhLnk8Yy55MiYmYS55PmMueXx8Yy55PGEueTImJmMueT5hLnkpfSxiLnBhdGhJbnRlcnNlY3Rpb249ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbShhLGIpfSxiLnBhdGhJbnRlcnNlY3Rpb25OdW1iZXI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbShhLGIsMSl9LGIuaXNQb2ludEluc2lkZVBhdGg9ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWIucGF0aEJCb3goYSk7cmV0dXJuIGIuaXNQb2ludEluc2lkZUJCb3goZSxjLGQpJiZtKGEsW1siTSIsYyxkXSxbIkgiLGUueDIrMTBdXSwxKSUyPT0xfSxiLl9yZW1vdmVkRmFjdG9yeT1mdW5jdGlvbihiKXtyZXR1cm4gZnVuY3Rpb24oKXthKCJyYXBoYWVsLmxvZyIsbnVsbCwiUmFwaGHDq2w6IHlvdSBhcmUgY2FsbGluZyB0byBtZXRob2Qg4oCcIitiKyLigJ0gb2YgcmVtb3ZlZCBvYmplY3QiLGIpfX07dmFyIHphPWIucGF0aEJCb3g9ZnVuY3Rpb24oYSl7dmFyIGI9eWEoYSk7aWYoYi5iYm94KXJldHVybiBjKGIuYmJveCk7aWYoIWEpcmV0dXJue3g6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MCx4MjowLHkyOjB9O2E9SWEoYSk7Zm9yKHZhciBkLGU9MCxmPTAsZz1bXSxoPVtdLGk9MCxqPWEubGVuZ3RoO2o+aTtpKyspaWYoZD1hW2ldLCJNIj09ZFswXSllPWRbMV0sZj1kWzJdLGcucHVzaChlKSxoLnB1c2goZik7ZWxzZXt2YXIgaz1IYShlLGYsZFsxXSxkWzJdLGRbM10sZFs0XSxkWzVdLGRbNl0pO2c9Z1tEXShrLm1pbi54LGsubWF4LngpLGg9aFtEXShrLm1pbi55LGsubWF4LnkpLGU9ZFs1XSxmPWRbNl19dmFyIGw9T1tDXSgwLGcpLG09T1tDXSgwLGgpLG49TltDXSgwLGcpLG89TltDXSgwLGgpLHA9bi1sLHE9by1tLHI9e3g6bCx5Om0seDI6bix5MjpvLHdpZHRoOnAsaGVpZ2h0OnEsY3g6bCtwLzIsY3k6bStxLzJ9O3JldHVybiBiLmJib3g9YyhyKSxyfSxBYT1mdW5jdGlvbihhKXt2YXIgZD1jKGEpO3JldHVybiBkLnRvU3RyaW5nPWIuX3BhdGgyc3RyaW5nLGR9LEJhPWIuX3BhdGhUb1JlbGF0aXZlPWZ1bmN0aW9uKGEpe3ZhciBjPXlhKGEpO2lmKGMucmVsKXJldHVybiBBYShjLnJlbCk7Yi5pcyhhLFUpJiZiLmlzKGEmJmFbMF0sVSl8fChhPWIucGFyc2VQYXRoU3RyaW5nKGEpKTt2YXIgZD1bXSxlPTAsZj0wLGc9MCxoPTAsaT0wOyJNIj09YVswXVswXSYmKGU9YVswXVsxXSxmPWFbMF1bMl0sZz1lLGg9ZixpKyssZC5wdXNoKFsiTSIsZSxmXSkpO2Zvcih2YXIgaj1pLGs9YS5sZW5ndGg7az5qO2orKyl7dmFyIGw9ZFtqXT1bXSxtPWFbal07aWYobVswXSE9TC5jYWxsKG1bMF0pKXN3aXRjaChsWzBdPUwuY2FsbChtWzBdKSxsWzBdKXtjYXNlImEiOmxbMV09bVsxXSxsWzJdPW1bMl0sbFszXT1tWzNdLGxbNF09bVs0XSxsWzVdPW1bNV0sbFs2XT0rKG1bNl0tZSkudG9GaXhlZCgzKSxsWzddPSsobVs3XS1mKS50b0ZpeGVkKDMpO2JyZWFrO2Nhc2UidiI6bFsxXT0rKG1bMV0tZikudG9GaXhlZCgzKTticmVhaztjYXNlIm0iOmc9bVsxXSxoPW1bMl07ZGVmYXVsdDpmb3IodmFyIG49MSxvPW0ubGVuZ3RoO28+bjtuKyspbFtuXT0rKG1bbl0tKG4lMj9lOmYpKS50b0ZpeGVkKDMpfWVsc2V7bD1kW2pdPVtdLCJtIj09bVswXSYmKGc9bVsxXStlLGg9bVsyXStmKTtmb3IodmFyIHA9MCxxPW0ubGVuZ3RoO3E+cDtwKyspZFtqXVtwXT1tW3BdfXZhciByPWRbal0ubGVuZ3RoO3N3aXRjaChkW2pdWzBdKXtjYXNlInoiOmU9ZyxmPWg7YnJlYWs7Y2FzZSJoIjplKz0rZFtqXVtyLTFdO2JyZWFrO2Nhc2UidiI6Zis9K2Rbal1bci0xXTticmVhaztkZWZhdWx0OmUrPStkW2pdW3ItMl0sZis9K2Rbal1bci0xXX19cmV0dXJuIGQudG9TdHJpbmc9Yi5fcGF0aDJzdHJpbmcsYy5yZWw9QWEoZCksZH0sQ2E9Yi5fcGF0aFRvQWJzb2x1dGU9ZnVuY3Rpb24oYSl7dmFyIGM9eWEoYSk7aWYoYy5hYnMpcmV0dXJuIEFhKGMuYWJzKTtpZihiLmlzKGEsVSkmJmIuaXMoYSYmYVswXSxVKXx8KGE9Yi5wYXJzZVBhdGhTdHJpbmcoYSkpLCFhfHwhYS5sZW5ndGgpcmV0dXJuW1siTSIsMCwwXV07dmFyIGQ9W10sZT0wLGY9MCxoPTAsaT0wLGo9MDsiTSI9PWFbMF1bMF0mJihlPSthWzBdWzFdLGY9K2FbMF1bMl0saD1lLGk9ZixqKyssZFswXT1bIk0iLGUsZl0pO2Zvcih2YXIgayxsLG09Mz09YS5sZW5ndGgmJiJNIj09YVswXVswXSYmIlIiPT1hWzFdWzBdLnRvVXBwZXJDYXNlKCkmJiJaIj09YVsyXVswXS50b1VwcGVyQ2FzZSgpLG49aixvPWEubGVuZ3RoO28+bjtuKyspe2lmKGQucHVzaChrPVtdKSxsPWFbbl0sbFswXSE9YWEuY2FsbChsWzBdKSlzd2l0Y2goa1swXT1hYS5jYWxsKGxbMF0pLGtbMF0pe2Nhc2UiQSI6a1sxXT1sWzFdLGtbMl09bFsyXSxrWzNdPWxbM10sa1s0XT1sWzRdLGtbNV09bFs1XSxrWzZdPSsobFs2XStlKSxrWzddPSsobFs3XStmKTticmVhaztjYXNlIlYiOmtbMV09K2xbMV0rZjticmVhaztjYXNlIkgiOmtbMV09K2xbMV0rZTticmVhaztjYXNlIlIiOmZvcih2YXIgcD1bZSxmXVtEXShsLnNsaWNlKDEpKSxxPTIscj1wLmxlbmd0aDtyPnE7cSsrKXBbcV09K3BbcV0rZSxwWysrcV09K3BbcV0rZjtkLnBvcCgpLGQ9ZFtEXShnKHAsbSkpO2JyZWFrO2Nhc2UiTSI6aD0rbFsxXStlLGk9K2xbMl0rZjtkZWZhdWx0OmZvcihxPTEscj1sLmxlbmd0aDtyPnE7cSsrKWtbcV09K2xbcV0rKHElMj9lOmYpfWVsc2UgaWYoIlIiPT1sWzBdKXA9W2UsZl1bRF0obC5zbGljZSgxKSksZC5wb3AoKSxkPWRbRF0oZyhwLG0pKSxrPVsiUiJdW0RdKGwuc2xpY2UoLTIpKTtlbHNlIGZvcih2YXIgcz0wLHQ9bC5sZW5ndGg7dD5zO3MrKylrW3NdPWxbc107c3dpdGNoKGtbMF0pe2Nhc2UiWiI6ZT1oLGY9aTticmVhaztjYXNlIkgiOmU9a1sxXTticmVhaztjYXNlIlYiOmY9a1sxXTticmVhaztjYXNlIk0iOmg9a1trLmxlbmd0aC0yXSxpPWtbay5sZW5ndGgtMV07ZGVmYXVsdDplPWtbay5sZW5ndGgtMl0sZj1rW2subGVuZ3RoLTFdfX1yZXR1cm4gZC50b1N0cmluZz1iLl9wYXRoMnN0cmluZyxjLmFicz1BYShkKSxkfSxEYT1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm5bYSxiLGMsZCxjLGRdfSxFYT1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGc9MS8zLGg9Mi8zO3JldHVybltnKmEraCpjLGcqYitoKmQsZyplK2gqYyxnKmYraCpkLGUsZl19LEZhPWZ1bmN0aW9uKGEsYixjLGQsZixnLGgsaSxqLGspe3ZhciBsLG09MTIwKlIvMTgwLG49Ui8xODAqKCtmfHwwKSxvPVtdLHA9ZShmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YSpNLmNvcyhjKS1iKk0uc2luKGMpLGU9YSpNLnNpbihjKStiKk0uY29zKGMpO3JldHVybnt4OmQseTplfX0pO2lmKGspeT1rWzBdLHo9a1sxXSx3PWtbMl0seD1rWzNdO2Vsc2V7bD1wKGEsYiwtbiksYT1sLngsYj1sLnksbD1wKGksaiwtbiksaT1sLngsaj1sLnk7dmFyIHE9KE0uY29zKFIvMTgwKmYpLE0uc2luKFIvMTgwKmYpLChhLWkpLzIpLHI9KGItaikvMixzPXEqcS8oYypjKStyKnIvKGQqZCk7cz4xJiYocz1NLnNxcnQocyksYz1zKmMsZD1zKmQpO3ZhciB0PWMqYyx1PWQqZCx2PShnPT1oPy0xOjEpKk0uc3FydChQKCh0KnUtdCpyKnItdSpxKnEpLyh0KnIqcit1KnEqcSkpKSx3PXYqYypyL2QrKGEraSkvMix4PXYqLWQqcS9jKyhiK2opLzIseT1NLmFzaW4oKChiLXgpL2QpLnRvRml4ZWQoOSkpLHo9TS5hc2luKCgoai14KS9kKS50b0ZpeGVkKDkpKTt5PXc+YT9SLXk6eSx6PXc+aT9SLXo6eiwwPnkmJih5PTIqUit5KSwwPnomJih6PTIqUit6KSxoJiZ5PnomJih5LT0yKlIpLCFoJiZ6PnkmJih6LT0yKlIpfXZhciBBPXoteTtpZihQKEEpPm0pe3ZhciBCPXosQz1pLEU9ajt6PXkrbSooaCYmej55PzE6LTEpLGk9dytjKk0uY29zKHopLGo9eCtkKk0uc2luKHopLG89RmEoaSxqLGMsZCxmLDAsaCxDLEUsW3osQix3LHhdKX1BPXoteTt2YXIgRj1NLmNvcyh5KSxHPU0uc2luKHkpLEg9TS5jb3MoeiksSj1NLnNpbih6KSxLPU0udGFuKEEvNCksTD00LzMqYypLLE49NC8zKmQqSyxPPVthLGJdLFE9W2ErTCpHLGItTipGXSxTPVtpK0wqSixqLU4qSF0sVD1baSxqXTtpZihRWzBdPTIqT1swXS1RWzBdLFFbMV09MipPWzFdLVFbMV0saylyZXR1cm5bUSxTLFRdW0RdKG8pO289W1EsUyxUXVtEXShvKS5qb2luKClbSV0oIiwiKTtmb3IodmFyIFU9W10sVj0wLFc9by5sZW5ndGg7Vz5WO1YrKylVW1ZdPVYlMj9wKG9bVi0xXSxvW1ZdLG4pLnk6cChvW1ZdLG9bVisxXSxuKS54O3JldHVybiBVfSxHYT1mdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsaSl7dmFyIGo9MS1pO3JldHVybnt4OlEoaiwzKSphKzMqUShqLDIpKmkqYyszKmoqaSppKmUrUShpLDMpKmcseTpRKGosMykqYiszKlEoaiwyKSppKmQrMypqKmkqaSpmK1EoaSwzKSpofX0sSGE9ZShmdW5jdGlvbihhLGIsYyxkLGUsZixnLGgpe3ZhciBpLGo9ZS0yKmMrYS0oZy0yKmUrYyksaz0yKihjLWEpLTIqKGUtYyksbD1hLWMsbT0oLWsrTS5zcXJ0KGsqay00KmoqbCkpLzIvaixuPSgtay1NLnNxcnQoayprLTQqaipsKSkvMi9qLG89W2IsaF0scD1bYSxnXTtyZXR1cm4gUChtKT4iMWUxMiImJihtPS41KSxQKG4pPiIxZTEyIiYmKG49LjUpLG0+MCYmMT5tJiYoaT1HYShhLGIsYyxkLGUsZixnLGgsbSkscC5wdXNoKGkueCksby5wdXNoKGkueSkpLG4+MCYmMT5uJiYoaT1HYShhLGIsYyxkLGUsZixnLGgsbikscC5wdXNoKGkueCksby5wdXNoKGkueSkpLGo9Zi0yKmQrYi0oaC0yKmYrZCksaz0yKihkLWIpLTIqKGYtZCksbD1iLWQsbT0oLWsrTS5zcXJ0KGsqay00KmoqbCkpLzIvaixuPSgtay1NLnNxcnQoayprLTQqaipsKSkvMi9qLFAobSk+IjFlMTIiJiYobT0uNSksUChuKT4iMWUxMiImJihuPS41KSxtPjAmJjE+bSYmKGk9R2EoYSxiLGMsZCxlLGYsZyxoLG0pLHAucHVzaChpLngpLG8ucHVzaChpLnkpKSxuPjAmJjE+biYmKGk9R2EoYSxiLGMsZCxlLGYsZyxoLG4pLHAucHVzaChpLngpLG8ucHVzaChpLnkpKSx7bWluOnt4Ok9bQ10oMCxwKSx5Ok9bQ10oMCxvKX0sbWF4Ont4Ok5bQ10oMCxwKSx5Ok5bQ10oMCxvKX19fSksSWE9Yi5fcGF0aDJjdXJ2ZT1lKGZ1bmN0aW9uKGEsYil7dmFyIGM9IWImJnlhKGEpO2lmKCFiJiZjLmN1cnZlKXJldHVybiBBYShjLmN1cnZlKTtmb3IodmFyIGQ9Q2EoYSksZT1iJiZDYShiKSxmPXt4OjAseTowLGJ4OjAsYnk6MCxYOjAsWTowLHF4Om51bGwscXk6bnVsbH0sZz17eDowLHk6MCxieDowLGJ5OjAsWDowLFk6MCxxeDpudWxsLHF5Om51bGx9LGg9KGZ1bmN0aW9uKGEsYixjKXt2YXIgZCxlLGY9e1Q6MSxROjF9O2lmKCFhKXJldHVyblsiQyIsYi54LGIueSxiLngsYi55LGIueCxiLnldO3N3aXRjaCghKGFbMF1pbiBmKSYmKGIucXg9Yi5xeT1udWxsKSxhWzBdKXtjYXNlIk0iOmIuWD1hWzFdLGIuWT1hWzJdO2JyZWFrO2Nhc2UiQSI6YT1bIkMiXVtEXShGYVtDXSgwLFtiLngsYi55XVtEXShhLnNsaWNlKDEpKSkpO2JyZWFrO2Nhc2UiUyI6IkMiPT1jfHwiUyI9PWM/KGQ9MipiLngtYi5ieCxlPTIqYi55LWIuYnkpOihkPWIueCxlPWIueSksYT1bIkMiLGQsZV1bRF0oYS5zbGljZSgxKSk7YnJlYWs7Y2FzZSJUIjoiUSI9PWN8fCJUIj09Yz8oYi5xeD0yKmIueC1iLnF4LGIucXk9MipiLnktYi5xeSk6KGIucXg9Yi54LGIucXk9Yi55KSxhPVsiQyJdW0RdKEVhKGIueCxiLnksYi5xeCxiLnF5LGFbMV0sYVsyXSkpO2JyZWFrO2Nhc2UiUSI6Yi5xeD1hWzFdLGIucXk9YVsyXSxhPVsiQyJdW0RdKEVhKGIueCxiLnksYVsxXSxhWzJdLGFbM10sYVs0XSkpO2JyZWFrO2Nhc2UiTCI6YT1bIkMiXVtEXShEYShiLngsYi55LGFbMV0sYVsyXSkpO2JyZWFrO2Nhc2UiSCI6YT1bIkMiXVtEXShEYShiLngsYi55LGFbMV0sYi55KSk7YnJlYWs7Y2FzZSJWIjphPVsiQyJdW0RdKERhKGIueCxiLnksYi54LGFbMV0pKTticmVhaztjYXNlIloiOmE9WyJDIl1bRF0oRGEoYi54LGIueSxiLlgsYi5ZKSl9cmV0dXJuIGF9KSxpPWZ1bmN0aW9uKGEsYil7aWYoYVtiXS5sZW5ndGg+Nyl7YVtiXS5zaGlmdCgpO2Zvcih2YXIgYz1hW2JdO2MubGVuZ3RoOylrW2JdPSJBIixlJiYobFtiXT0iQSIpLGEuc3BsaWNlKGIrKywwLFsiQyJdW0RdKGMuc3BsaWNlKDAsNikpKTthLnNwbGljZShiLDEpLHA9TihkLmxlbmd0aCxlJiZlLmxlbmd0aHx8MCl9fSxqPWZ1bmN0aW9uKGEsYixjLGYsZyl7YSYmYiYmIk0iPT1hW2ddWzBdJiYiTSIhPWJbZ11bMF0mJihiLnNwbGljZShnLDAsWyJNIixmLngsZi55XSksYy5ieD0wLGMuYnk9MCxjLng9YVtnXVsxXSxjLnk9YVtnXVsyXSxwPU4oZC5sZW5ndGgsZSYmZS5sZW5ndGh8fDApKX0saz1bXSxsPVtdLG09IiIsbj0iIixvPTAscD1OKGQubGVuZ3RoLGUmJmUubGVuZ3RofHwwKTtwPm87bysrKXtkW29dJiYobT1kW29dWzBdKSwiQyIhPW0mJihrW29dPW0sbyYmKG49a1tvLTFdKSksZFtvXT1oKGRbb10sZixuKSwiQSIhPWtbb10mJiJDIj09bSYmKGtbb109IkMiKSxpKGQsbyksZSYmKGVbb10mJihtPWVbb11bMF0pLCJDIiE9bSYmKGxbb109bSxvJiYobj1sW28tMV0pKSxlW29dPWgoZVtvXSxnLG4pLCJBIiE9bFtvXSYmIkMiPT1tJiYobFtvXT0iQyIpLGkoZSxvKSksaihkLGUsZixnLG8pLGooZSxkLGcsZixvKTt2YXIgcT1kW29dLHI9ZSYmZVtvXSxzPXEubGVuZ3RoLHQ9ZSYmci5sZW5ndGg7Zi54PXFbcy0yXSxmLnk9cVtzLTFdLGYuYng9JChxW3MtNF0pfHxmLngsZi5ieT0kKHFbcy0zXSl8fGYueSxnLmJ4PWUmJigkKHJbdC00XSl8fGcueCksZy5ieT1lJiYoJChyW3QtM10pfHxnLnkpLGcueD1lJiZyW3QtMl0sZy55PWUmJnJbdC0xXX1yZXR1cm4gZXx8KGMuY3VydmU9QWEoZCkpLGU/W2QsZV06ZH0sbnVsbCxBYSksSmE9KGIuX3BhcnNlRG90cz1lKGZ1bmN0aW9uKGEpe2Zvcih2YXIgYz1bXSxkPTAsZT1hLmxlbmd0aDtlPmQ7ZCsrKXt2YXIgZj17fSxnPWFbZF0ubWF0Y2goL14oW146XSopOj8oW1xkXC5dKikvKTtpZihmLmNvbG9yPWIuZ2V0UkdCKGdbMV0pLGYuY29sb3IuZXJyb3IpcmV0dXJuIG51bGw7Zi5vcGFjaXR5PWYuY29sb3Iub3BhY2l0eSxmLmNvbG9yPWYuY29sb3IuaGV4LGdbMl0mJihmLm9mZnNldD1nWzJdKyIlIiksYy5wdXNoKGYpfWZvcihkPTEsZT1jLmxlbmd0aC0xO2U+ZDtkKyspaWYoIWNbZF0ub2Zmc2V0KXtmb3IodmFyIGg9JChjW2QtMV0ub2Zmc2V0fHwwKSxpPTAsaj1kKzE7ZT5qO2orKylpZihjW2pdLm9mZnNldCl7aT1jW2pdLm9mZnNldDticmVha31pfHwoaT0xMDAsaj1lKSxpPSQoaSk7Zm9yKHZhciBrPShpLWgpLyhqLWQrMSk7aj5kO2QrKyloKz1rLGNbZF0ub2Zmc2V0PWgrIiUifXJldHVybiBjfSksYi5fdGVhcj1mdW5jdGlvbihhLGIpe2E9PWIudG9wJiYoYi50b3A9YS5wcmV2KSxhPT1iLmJvdHRvbSYmKGIuYm90dG9tPWEubmV4dCksYS5uZXh0JiYoYS5uZXh0LnByZXY9YS5wcmV2KSxhLnByZXYmJihhLnByZXYubmV4dD1hLm5leHQpfSksS2E9KGIuX3RvZnJvbnQ9ZnVuY3Rpb24oYSxiKXtiLnRvcCE9PWEmJihKYShhLGIpLGEubmV4dD1udWxsLGEucHJldj1iLnRvcCxiLnRvcC5uZXh0PWEsYi50b3A9YSl9LGIuX3RvYmFjaz1mdW5jdGlvbihhLGIpe2IuYm90dG9tIT09YSYmKEphKGEsYiksYS5uZXh0PWIuYm90dG9tLGEucHJldj1udWxsLGIuYm90dG9tLnByZXY9YSxiLmJvdHRvbT1hKX0sYi5faW5zZXJ0YWZ0ZXI9ZnVuY3Rpb24oYSxiLGMpe0phKGEsYyksYj09Yy50b3AmJihjLnRvcD1hKSxiLm5leHQmJihiLm5leHQucHJldj1hKSxhLm5leHQ9Yi5uZXh0LGEucHJldj1iLGIubmV4dD1hfSxiLl9pbnNlcnRiZWZvcmU9ZnVuY3Rpb24oYSxiLGMpe0phKGEsYyksYj09Yy5ib3R0b20mJihjLmJvdHRvbT1hKSxiLnByZXYmJihiLnByZXYubmV4dD1hKSxhLnByZXY9Yi5wcmV2LGIucHJldj1hLGEubmV4dD1ifSxiLnRvTWF0cml4PWZ1bmN0aW9uKGEsYil7dmFyIGM9emEoYSksZD17Xzp7dHJhbnNmb3JtOkZ9LGdldEJCb3g6ZnVuY3Rpb24oKXtyZXR1cm4gY319O3JldHVybiBMYShkLGIpLGQubWF0cml4fSksTGE9KGIudHJhbnNmb3JtUGF0aD1mdW5jdGlvbihhLGIpe3JldHVybiBwYShhLEthKGEsYikpfSxiLl9leHRyYWN0VHJhbnNmb3JtPWZ1bmN0aW9uKGEsYyl7aWYobnVsbD09YylyZXR1cm4gYS5fLnRyYW5zZm9ybTtjPUgoYykucmVwbGFjZSgvXC57M318XHUyMDI2L2csYS5fLnRyYW5zZm9ybXx8Rik7dmFyIGQ9Yi5wYXJzZVRyYW5zZm9ybVN0cmluZyhjKSxlPTAsZj0wLGc9MCxoPTEsaT0xLGo9YS5fLGs9bmV3IG47aWYoai50cmFuc2Zvcm09ZHx8W10sZClmb3IodmFyIGw9MCxtPWQubGVuZ3RoO20+bDtsKyspe3ZhciBvLHAscSxyLHMsdD1kW2xdLHU9dC5sZW5ndGgsdj1IKHRbMF0pLnRvTG93ZXJDYXNlKCksdz10WzBdIT12LHg9dz9rLmludmVydCgpOjA7InQiPT12JiYzPT11P3c/KG89eC54KDAsMCkscD14LnkoMCwwKSxxPXgueCh0WzFdLHRbMl0pLHI9eC55KHRbMV0sdFsyXSksay50cmFuc2xhdGUocS1vLHItcCkpOmsudHJhbnNsYXRlKHRbMV0sdFsyXSk6InIiPT12PzI9PXU/KHM9c3x8YS5nZXRCQm94KDEpLGsucm90YXRlKHRbMV0scy54K3Mud2lkdGgvMixzLnkrcy5oZWlnaHQvMiksZSs9dFsxXSk6ND09dSYmKHc/KHE9eC54KHRbMl0sdFszXSkscj14LnkodFsyXSx0WzNdKSxrLnJvdGF0ZSh0WzFdLHEscikpOmsucm90YXRlKHRbMV0sdFsyXSx0WzNdKSxlKz10WzFdKToicyI9PXY/Mj09dXx8Mz09dT8ocz1zfHxhLmdldEJCb3goMSksay5zY2FsZSh0WzFdLHRbdS0xXSxzLngrcy53aWR0aC8yLHMueStzLmhlaWdodC8yKSxoKj10WzFdLGkqPXRbdS0xXSk6NT09dSYmKHc/KHE9eC54KHRbM10sdFs0XSkscj14LnkodFszXSx0WzRdKSxrLnNjYWxlKHRbMV0sdFsyXSxxLHIpKTprLnNjYWxlKHRbMV0sdFsyXSx0WzNdLHRbNF0pLGgqPXRbMV0saSo9dFsyXSk6Im0iPT12JiY3PT11JiZrLmFkZCh0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sdFs2XSksai5kaXJ0eVQ9MSxhLm1hdHJpeD1rfWEubWF0cml4PWssai5zeD1oLGouc3k9aSxqLmRlZz1lLGouZHg9Zj1rLmUsai5keT1nPWsuZiwxPT1oJiYxPT1pJiYhZSYmai5iYm94PyhqLmJib3gueCs9K2Ysai5iYm94LnkrPStnKTpqLmRpcnR5VD0xfSksTWE9ZnVuY3Rpb24oYSl7dmFyIGI9YVswXTtzd2l0Y2goYi50b0xvd2VyQ2FzZSgpKXtjYXNlInQiOnJldHVybltiLDAsMF07Y2FzZSJtIjpyZXR1cm5bYiwxLDAsMCwxLDAsMF07Y2FzZSJyIjpyZXR1cm4gND09YS5sZW5ndGg/W2IsMCxhWzJdLGFbM11dOltiLDBdO2Nhc2UicyI6cmV0dXJuIDU9PWEubGVuZ3RoP1tiLDEsMSxhWzNdLGFbNF1dOjM9PWEubGVuZ3RoP1tiLDEsMV06W2IsMV19fSxOYT1iLl9lcXVhbGlzZVRyYW5zZm9ybT1mdW5jdGlvbihhLGMpewpjPUgoYykucmVwbGFjZSgvXC57M318XHUyMDI2L2csYSksYT1iLnBhcnNlVHJhbnNmb3JtU3RyaW5nKGEpfHxbXSxjPWIucGFyc2VUcmFuc2Zvcm1TdHJpbmcoYyl8fFtdO2Zvcih2YXIgZCxlLGYsZyxoPU4oYS5sZW5ndGgsYy5sZW5ndGgpLGk9W10saj1bXSxrPTA7aD5rO2srKyl7aWYoZj1hW2tdfHxNYShjW2tdKSxnPWNba118fE1hKGYpLGZbMF0hPWdbMF18fCJyIj09ZlswXS50b0xvd2VyQ2FzZSgpJiYoZlsyXSE9Z1syXXx8ZlszXSE9Z1szXSl8fCJzIj09ZlswXS50b0xvd2VyQ2FzZSgpJiYoZlszXSE9Z1szXXx8Zls0XSE9Z1s0XSkpcmV0dXJuO2ZvcihpW2tdPVtdLGpba109W10sZD0wLGU9TihmLmxlbmd0aCxnLmxlbmd0aCk7ZT5kO2QrKylkIGluIGYmJihpW2tdW2RdPWZbZF0pLGQgaW4gZyYmKGpba11bZF09Z1tkXSl9cmV0dXJue2Zyb206aSx0bzpqfX07Yi5fZ2V0Q29udGFpbmVyPWZ1bmN0aW9uKGEsYyxkLGUpe3ZhciBmO3JldHVybiBmPW51bGwhPWV8fGIuaXMoYSwib2JqZWN0Iik/YTp6LmRvYy5nZXRFbGVtZW50QnlJZChhKSxudWxsIT1mP2YudGFnTmFtZT9udWxsPT1jP3tjb250YWluZXI6Zix3aWR0aDpmLnN0eWxlLnBpeGVsV2lkdGh8fGYub2Zmc2V0V2lkdGgsaGVpZ2h0OmYuc3R5bGUucGl4ZWxIZWlnaHR8fGYub2Zmc2V0SGVpZ2h0fTp7Y29udGFpbmVyOmYsd2lkdGg6YyxoZWlnaHQ6ZH06e2NvbnRhaW5lcjoxLHg6YSx5OmMsd2lkdGg6ZCxoZWlnaHQ6ZX06dm9pZCAwfSxiLnBhdGhUb1JlbGF0aXZlPUJhLGIuX2VuZ2luZT17fSxiLnBhdGgyY3VydmU9SWEsYi5tYXRyaXg9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3JldHVybiBuZXcgbihhLGIsYyxkLGUsZil9LGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGMoYSl7cmV0dXJuIGFbMF0qYVswXSthWzFdKmFbMV19ZnVuY3Rpb24gZChhKXt2YXIgYj1NLnNxcnQoYyhhKSk7YVswXSYmKGFbMF0vPWIpLGFbMV0mJihhWzFdLz1iKX1hLmFkZD1mdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIGcsaCxpLGosaz1bW10sW10sW11dLGw9W1t0aGlzLmEsdGhpcy5jLHRoaXMuZV0sW3RoaXMuYix0aGlzLmQsdGhpcy5mXSxbMCwwLDFdXSxtPVtbYSxjLGVdLFtiLGQsZl0sWzAsMCwxXV07Zm9yKGEmJmEgaW5zdGFuY2VvZiBuJiYobT1bW2EuYSxhLmMsYS5lXSxbYS5iLGEuZCxhLmZdLFswLDAsMV1dKSxnPTA7Mz5nO2crKylmb3IoaD0wOzM+aDtoKyspe2ZvcihqPTAsaT0wOzM+aTtpKyspais9bFtnXVtpXSptW2ldW2hdO2tbZ11baF09an10aGlzLmE9a1swXVswXSx0aGlzLmI9a1sxXVswXSx0aGlzLmM9a1swXVsxXSx0aGlzLmQ9a1sxXVsxXSx0aGlzLmU9a1swXVsyXSx0aGlzLmY9a1sxXVsyXX0sYS5pbnZlcnQ9ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGI9YS5hKmEuZC1hLmIqYS5jO3JldHVybiBuZXcgbihhLmQvYiwtYS5iL2IsLWEuYy9iLGEuYS9iLChhLmMqYS5mLWEuZCphLmUpL2IsKGEuYiphLmUtYS5hKmEuZikvYil9LGEuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG4odGhpcy5hLHRoaXMuYix0aGlzLmMsdGhpcy5kLHRoaXMuZSx0aGlzLmYpfSxhLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe3RoaXMuYWRkKDEsMCwwLDEsYSxiKX0sYS5zY2FsZT1mdW5jdGlvbihhLGIsYyxkKXtudWxsPT1iJiYoYj1hKSwoY3x8ZCkmJnRoaXMuYWRkKDEsMCwwLDEsYyxkKSx0aGlzLmFkZChhLDAsMCxiLDAsMCksKGN8fGQpJiZ0aGlzLmFkZCgxLDAsMCwxLC1jLC1kKX0sYS5yb3RhdGU9ZnVuY3Rpb24oYSxjLGQpe2E9Yi5yYWQoYSksYz1jfHwwLGQ9ZHx8MDt2YXIgZT0rTS5jb3MoYSkudG9GaXhlZCg5KSxmPStNLnNpbihhKS50b0ZpeGVkKDkpO3RoaXMuYWRkKGUsZiwtZixlLGMsZCksdGhpcy5hZGQoMSwwLDAsMSwtYywtZCl9LGEueD1mdW5jdGlvbihhLGIpe3JldHVybiBhKnRoaXMuYStiKnRoaXMuYyt0aGlzLmV9LGEueT1mdW5jdGlvbihhLGIpe3JldHVybiBhKnRoaXMuYitiKnRoaXMuZCt0aGlzLmZ9LGEuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybit0aGlzW0guZnJvbUNoYXJDb2RlKDk3K2EpXS50b0ZpeGVkKDQpfSxhLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIGIuc3ZnPyJtYXRyaXgoIitbdGhpcy5nZXQoMCksdGhpcy5nZXQoMSksdGhpcy5nZXQoMiksdGhpcy5nZXQoMyksdGhpcy5nZXQoNCksdGhpcy5nZXQoNSldLmpvaW4oKSsiKSI6W3RoaXMuZ2V0KDApLHRoaXMuZ2V0KDIpLHRoaXMuZ2V0KDEpLHRoaXMuZ2V0KDMpLDAsMF0uam9pbigpfSxhLnRvRmlsdGVyPWZ1bmN0aW9uKCl7cmV0dXJuInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPSIrdGhpcy5nZXQoMCkrIiwgTTEyPSIrdGhpcy5nZXQoMikrIiwgTTIxPSIrdGhpcy5nZXQoMSkrIiwgTTIyPSIrdGhpcy5nZXQoMykrIiwgRHg9Iit0aGlzLmdldCg0KSsiLCBEeT0iK3RoaXMuZ2V0KDUpKyIsIHNpemluZ21ldGhvZD0nYXV0byBleHBhbmQnKSJ9LGEub2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuZS50b0ZpeGVkKDQpLHRoaXMuZi50b0ZpeGVkKDQpXX0sYS5zcGxpdD1mdW5jdGlvbigpe3ZhciBhPXt9O2EuZHg9dGhpcy5lLGEuZHk9dGhpcy5mO3ZhciBlPVtbdGhpcy5hLHRoaXMuY10sW3RoaXMuYix0aGlzLmRdXTthLnNjYWxleD1NLnNxcnQoYyhlWzBdKSksZChlWzBdKSxhLnNoZWFyPWVbMF1bMF0qZVsxXVswXStlWzBdWzFdKmVbMV1bMV0sZVsxXT1bZVsxXVswXS1lWzBdWzBdKmEuc2hlYXIsZVsxXVsxXS1lWzBdWzFdKmEuc2hlYXJdLGEuc2NhbGV5PU0uc3FydChjKGVbMV0pKSxkKGVbMV0pLGEuc2hlYXIvPWEuc2NhbGV5O3ZhciBmPS1lWzBdWzFdLGc9ZVsxXVsxXTtyZXR1cm4gMD5nPyhhLnJvdGF0ZT1iLmRlZyhNLmFjb3MoZykpLDA+ZiYmKGEucm90YXRlPTM2MC1hLnJvdGF0ZSkpOmEucm90YXRlPWIuZGVnKE0uYXNpbihmKSksYS5pc1NpbXBsZT0hKCthLnNoZWFyLnRvRml4ZWQoOSl8fGEuc2NhbGV4LnRvRml4ZWQoOSkhPWEuc2NhbGV5LnRvRml4ZWQoOSkmJmEucm90YXRlKSxhLmlzU3VwZXJTaW1wbGU9ISthLnNoZWFyLnRvRml4ZWQoOSkmJmEuc2NhbGV4LnRvRml4ZWQoOSk9PWEuc2NhbGV5LnRvRml4ZWQoOSkmJiFhLnJvdGF0ZSxhLm5vUm90YXRpb249ISthLnNoZWFyLnRvRml4ZWQoOSkmJiFhLnJvdGF0ZSxhfSxhLnRvVHJhbnNmb3JtU3RyaW5nPWZ1bmN0aW9uKGEpe3ZhciBiPWF8fHRoaXNbSV0oKTtyZXR1cm4gYi5pc1NpbXBsZT8oYi5zY2FsZXg9K2Iuc2NhbGV4LnRvRml4ZWQoNCksYi5zY2FsZXk9K2Iuc2NhbGV5LnRvRml4ZWQoNCksYi5yb3RhdGU9K2Iucm90YXRlLnRvRml4ZWQoNCksKGIuZHh8fGIuZHk/InQiK1tiLmR4LGIuZHldOkYpKygxIT1iLnNjYWxleHx8MSE9Yi5zY2FsZXk/InMiK1tiLnNjYWxleCxiLnNjYWxleSwwLDBdOkYpKyhiLnJvdGF0ZT8iciIrW2Iucm90YXRlLDAsMF06RikpOiJtIitbdGhpcy5nZXQoMCksdGhpcy5nZXQoMSksdGhpcy5nZXQoMiksdGhpcy5nZXQoMyksdGhpcy5nZXQoNCksdGhpcy5nZXQoNSldfX0obi5wcm90b3R5cGUpO2Zvcih2YXIgT2E9ZnVuY3Rpb24oKXt0aGlzLnJldHVyblZhbHVlPSExfSxQYT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9yaWdpbmFsRXZlbnQucHJldmVudERlZmF1bHQoKX0sUWE9ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbEJ1YmJsZT0hMH0sUmE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcmlnaW5hbEV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfSxTYT1mdW5jdGlvbihhKXt2YXIgYj16LmRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHx6LmRvYy5ib2R5LnNjcm9sbFRvcCxjPXouZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHx6LmRvYy5ib2R5LnNjcm9sbExlZnQ7cmV0dXJue3g6YS5jbGllbnRYK2MseTphLmNsaWVudFkrYn19LFRhPWZ1bmN0aW9uKCl7cmV0dXJuIHouZG9jLmFkZEV2ZW50TGlzdGVuZXI/ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZnVuY3Rpb24oYSl7dmFyIGI9U2EoYSk7cmV0dXJuIGMuY2FsbChkLGEsYi54LGIueSl9O2lmKGEuYWRkRXZlbnRMaXN0ZW5lcihiLGUsITEpLEUmJktbYl0pe3ZhciBmPWZ1bmN0aW9uKGIpe2Zvcih2YXIgZT1TYShiKSxmPWIsZz0wLGg9Yi50YXJnZXRUb3VjaGVzJiZiLnRhcmdldFRvdWNoZXMubGVuZ3RoO2g+ZztnKyspaWYoYi50YXJnZXRUb3VjaGVzW2ddLnRhcmdldD09YSl7Yj1iLnRhcmdldFRvdWNoZXNbZ10sYi5vcmlnaW5hbEV2ZW50PWYsYi5wcmV2ZW50RGVmYXVsdD1QYSxiLnN0b3BQcm9wYWdhdGlvbj1SYTticmVha31yZXR1cm4gYy5jYWxsKGQsYixlLngsZS55KX07YS5hZGRFdmVudExpc3RlbmVyKEtbYl0sZiwhMSl9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGUsITEpLEUmJktbYl0mJmEucmVtb3ZlRXZlbnRMaXN0ZW5lcihLW2JdLGYsITEpLCEwfX06ei5kb2MuYXR0YWNoRXZlbnQ/ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9ZnVuY3Rpb24oYSl7YT1hfHx6Lndpbi5ldmVudDt2YXIgYj16LmRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wfHx6LmRvYy5ib2R5LnNjcm9sbFRvcCxlPXouZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0fHx6LmRvYy5ib2R5LnNjcm9sbExlZnQsZj1hLmNsaWVudFgrZSxnPWEuY2xpZW50WStiO3JldHVybiBhLnByZXZlbnREZWZhdWx0PWEucHJldmVudERlZmF1bHR8fE9hLGEuc3RvcFByb3BhZ2F0aW9uPWEuc3RvcFByb3BhZ2F0aW9ufHxRYSxjLmNhbGwoZCxhLGYsZyl9O2EuYXR0YWNoRXZlbnQoIm9uIitiLGUpO3ZhciBmPWZ1bmN0aW9uKCl7cmV0dXJuIGEuZGV0YWNoRXZlbnQoIm9uIitiLGUpLCEwfTtyZXR1cm4gZn06dm9pZCAwfSgpLFVhPVtdLFZhPWZ1bmN0aW9uKGIpe2Zvcih2YXIgYyxkPWIuY2xpZW50WCxlPWIuY2xpZW50WSxmPXouZG9jLmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3B8fHouZG9jLmJvZHkuc2Nyb2xsVG9wLGc9ei5kb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnR8fHouZG9jLmJvZHkuc2Nyb2xsTGVmdCxoPVVhLmxlbmd0aDtoLS07KXtpZihjPVVhW2hdLEUmJmIudG91Y2hlcyl7Zm9yKHZhciBpLGo9Yi50b3VjaGVzLmxlbmd0aDtqLS07KWlmKGk9Yi50b3VjaGVzW2pdLGkuaWRlbnRpZmllcj09Yy5lbC5fZHJhZy5pZCl7ZD1pLmNsaWVudFgsZT1pLmNsaWVudFksKGIub3JpZ2luYWxFdmVudD9iLm9yaWdpbmFsRXZlbnQ6YikucHJldmVudERlZmF1bHQoKTticmVha319ZWxzZSBiLnByZXZlbnREZWZhdWx0KCk7dmFyIGssbD1jLmVsLm5vZGUsbT1sLm5leHRTaWJsaW5nLG49bC5wYXJlbnROb2RlLG89bC5zdHlsZS5kaXNwbGF5O3oud2luLm9wZXJhJiZuLnJlbW92ZUNoaWxkKGwpLGwuc3R5bGUuZGlzcGxheT0ibm9uZSIsaz1jLmVsLnBhcGVyLmdldEVsZW1lbnRCeVBvaW50KGQsZSksbC5zdHlsZS5kaXNwbGF5PW8sei53aW4ub3BlcmEmJihtP24uaW5zZXJ0QmVmb3JlKGwsbSk6bi5hcHBlbmRDaGlsZChsKSksayYmYSgicmFwaGFlbC5kcmFnLm92ZXIuIitjLmVsLmlkLGMuZWwsayksZCs9ZyxlKz1mLGEoInJhcGhhZWwuZHJhZy5tb3ZlLiIrYy5lbC5pZCxjLm1vdmVfc2NvcGV8fGMuZWwsZC1jLmVsLl9kcmFnLngsZS1jLmVsLl9kcmFnLnksZCxlLGIpfX0sV2E9ZnVuY3Rpb24oYyl7Yi51bm1vdXNlbW92ZShWYSkudW5tb3VzZXVwKFdhKTtmb3IodmFyIGQsZT1VYS5sZW5ndGg7ZS0tOylkPVVhW2VdLGQuZWwuX2RyYWc9e30sYSgicmFwaGFlbC5kcmFnLmVuZC4iK2QuZWwuaWQsZC5lbmRfc2NvcGV8fGQuc3RhcnRfc2NvcGV8fGQubW92ZV9zY29wZXx8ZC5lbCxjKTtVYT1bXX0sWGE9Yi5lbD17fSxZYT1KLmxlbmd0aDtZYS0tOykhZnVuY3Rpb24oYSl7YlthXT1YYVthXT1mdW5jdGlvbihjLGQpe3JldHVybiBiLmlzKGMsImZ1bmN0aW9uIikmJih0aGlzLmV2ZW50cz10aGlzLmV2ZW50c3x8W10sdGhpcy5ldmVudHMucHVzaCh7bmFtZTphLGY6Yyx1bmJpbmQ6VGEodGhpcy5zaGFwZXx8dGhpcy5ub2RlfHx6LmRvYyxhLGMsZHx8dGhpcyl9KSksdGhpc30sYlsidW4iK2FdPVhhWyJ1biIrYV09ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPXRoaXMuZXZlbnRzfHxbXSxlPWQubGVuZ3RoO2UtLTspZFtlXS5uYW1lIT1hfHwhYi5pcyhjLCJ1bmRlZmluZWQiKSYmZFtlXS5mIT1jfHwoZFtlXS51bmJpbmQoKSxkLnNwbGljZShlLDEpLCFkLmxlbmd0aCYmZGVsZXRlIHRoaXMuZXZlbnRzKTtyZXR1cm4gdGhpc319KEpbWWFdKTtYYS5kYXRhPWZ1bmN0aW9uKGMsZCl7dmFyIGU9amFbdGhpcy5pZF09amFbdGhpcy5pZF18fHt9O2lmKDA9PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGU7aWYoMT09YXJndW1lbnRzLmxlbmd0aCl7aWYoYi5pcyhjLCJvYmplY3QiKSl7Zm9yKHZhciBmIGluIGMpY1t5XShmKSYmdGhpcy5kYXRhKGYsY1tmXSk7cmV0dXJuIHRoaXN9cmV0dXJuIGEoInJhcGhhZWwuZGF0YS5nZXQuIit0aGlzLmlkLHRoaXMsZVtjXSxjKSxlW2NdfXJldHVybiBlW2NdPWQsYSgicmFwaGFlbC5kYXRhLnNldC4iK3RoaXMuaWQsdGhpcyxkLGMpLHRoaXN9LFhhLnJlbW92ZURhdGE9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE/amFbdGhpcy5pZF09e306amFbdGhpcy5pZF0mJmRlbGV0ZSBqYVt0aGlzLmlkXVthXSx0aGlzfSxYYS5nZXREYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIGMoamFbdGhpcy5pZF18fHt9KX0sWGEuaG92ZXI9ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMubW91c2VvdmVyKGEsYykubW91c2VvdXQoYixkfHxjKX0sWGEudW5ob3Zlcj1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLnVubW91c2VvdmVyKGEpLnVubW91c2VvdXQoYil9O3ZhciBaYT1bXTtYYS5kcmFnPWZ1bmN0aW9uKGMsZCxlLGYsZyxoKXtmdW5jdGlvbiBpKGkpeyhpLm9yaWdpbmFsRXZlbnR8fGkpLnByZXZlbnREZWZhdWx0KCk7dmFyIGo9aS5jbGllbnRYLGs9aS5jbGllbnRZLGw9ei5kb2MuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ei5kb2MuYm9keS5zY3JvbGxUb3AsbT16LmRvYy5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdHx8ei5kb2MuYm9keS5zY3JvbGxMZWZ0O2lmKHRoaXMuX2RyYWcuaWQ9aS5pZGVudGlmaWVyLEUmJmkudG91Y2hlcylmb3IodmFyIG4sbz1pLnRvdWNoZXMubGVuZ3RoO28tLTspaWYobj1pLnRvdWNoZXNbb10sdGhpcy5fZHJhZy5pZD1uLmlkZW50aWZpZXIsbi5pZGVudGlmaWVyPT10aGlzLl9kcmFnLmlkKXtqPW4uY2xpZW50WCxrPW4uY2xpZW50WTticmVha310aGlzLl9kcmFnLng9aittLHRoaXMuX2RyYWcueT1rK2wsIVVhLmxlbmd0aCYmYi5tb3VzZW1vdmUoVmEpLm1vdXNldXAoV2EpLFVhLnB1c2goe2VsOnRoaXMsbW92ZV9zY29wZTpmLHN0YXJ0X3Njb3BlOmcsZW5kX3Njb3BlOmh9KSxkJiZhLm9uKCJyYXBoYWVsLmRyYWcuc3RhcnQuIit0aGlzLmlkLGQpLGMmJmEub24oInJhcGhhZWwuZHJhZy5tb3ZlLiIrdGhpcy5pZCxjKSxlJiZhLm9uKCJyYXBoYWVsLmRyYWcuZW5kLiIrdGhpcy5pZCxlKSxhKCJyYXBoYWVsLmRyYWcuc3RhcnQuIit0aGlzLmlkLGd8fGZ8fHRoaXMsaS5jbGllbnRYK20saS5jbGllbnRZK2wsaSl9cmV0dXJuIHRoaXMuX2RyYWc9e30sWmEucHVzaCh7ZWw6dGhpcyxzdGFydDppfSksdGhpcy5tb3VzZWRvd24oaSksdGhpc30sWGEub25EcmFnT3Zlcj1mdW5jdGlvbihiKXtiP2Eub24oInJhcGhhZWwuZHJhZy5vdmVyLiIrdGhpcy5pZCxiKTphLnVuYmluZCgicmFwaGFlbC5kcmFnLm92ZXIuIit0aGlzLmlkKX0sWGEudW5kcmFnPWZ1bmN0aW9uKCl7Zm9yKHZhciBjPVphLmxlbmd0aDtjLS07KVphW2NdLmVsPT10aGlzJiYodGhpcy51bm1vdXNlZG93bihaYVtjXS5zdGFydCksWmEuc3BsaWNlKGMsMSksYS51bmJpbmQoInJhcGhhZWwuZHJhZy4qLiIrdGhpcy5pZCkpOyFaYS5sZW5ndGgmJmIudW5tb3VzZW1vdmUoVmEpLnVubW91c2V1cChXYSksVWE9W119LHUuY2lyY2xlPWZ1bmN0aW9uKGEsYyxkKXt2YXIgZT1iLl9lbmdpbmUuY2lyY2xlKHRoaXMsYXx8MCxjfHwwLGR8fDApO3JldHVybiB0aGlzLl9fc2V0X18mJnRoaXMuX19zZXRfXy5wdXNoKGUpLGV9LHUucmVjdD1mdW5jdGlvbihhLGMsZCxlLGYpe3ZhciBnPWIuX2VuZ2luZS5yZWN0KHRoaXMsYXx8MCxjfHwwLGR8fDAsZXx8MCxmfHwwKTtyZXR1cm4gdGhpcy5fX3NldF9fJiZ0aGlzLl9fc2V0X18ucHVzaChnKSxnfSx1LmVsbGlwc2U9ZnVuY3Rpb24oYSxjLGQsZSl7dmFyIGY9Yi5fZW5naW5lLmVsbGlwc2UodGhpcyxhfHwwLGN8fDAsZHx8MCxlfHwwKTtyZXR1cm4gdGhpcy5fX3NldF9fJiZ0aGlzLl9fc2V0X18ucHVzaChmKSxmfSx1LnBhdGg9ZnVuY3Rpb24oYSl7YSYmIWIuaXMoYSxUKSYmIWIuaXMoYVswXSxVKSYmKGErPUYpO3ZhciBjPWIuX2VuZ2luZS5wYXRoKGIuZm9ybWF0W0NdKGIsYXJndW1lbnRzKSx0aGlzKTtyZXR1cm4gdGhpcy5fX3NldF9fJiZ0aGlzLl9fc2V0X18ucHVzaChjKSxjfSx1LmltYWdlPWZ1bmN0aW9uKGEsYyxkLGUsZil7dmFyIGc9Yi5fZW5naW5lLmltYWdlKHRoaXMsYXx8ImFib3V0OmJsYW5rIixjfHwwLGR8fDAsZXx8MCxmfHwwKTtyZXR1cm4gdGhpcy5fX3NldF9fJiZ0aGlzLl9fc2V0X18ucHVzaChnKSxnfSx1LnRleHQ9ZnVuY3Rpb24oYSxjLGQpe3ZhciBlPWIuX2VuZ2luZS50ZXh0KHRoaXMsYXx8MCxjfHwwLEgoZCkpO3JldHVybiB0aGlzLl9fc2V0X18mJnRoaXMuX19zZXRfXy5wdXNoKGUpLGV9LHUuc2V0PWZ1bmN0aW9uKGEpeyFiLmlzKGEsImFycmF5IikmJihhPUFycmF5LnByb3RvdHlwZS5zcGxpY2UuY2FsbChhcmd1bWVudHMsMCxhcmd1bWVudHMubGVuZ3RoKSk7dmFyIGM9bmV3IGpiKGEpO3JldHVybiB0aGlzLl9fc2V0X18mJnRoaXMuX19zZXRfXy5wdXNoKGMpLGMucGFwZXI9dGhpcyxjLnR5cGU9InNldCIsY30sdS5zZXRTdGFydD1mdW5jdGlvbihhKXt0aGlzLl9fc2V0X189YXx8dGhpcy5zZXQoKX0sdS5zZXRGaW5pc2g9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5fX3NldF9fO3JldHVybiBkZWxldGUgdGhpcy5fX3NldF9fLGJ9LHUuZ2V0U2l6ZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuY2FudmFzLnBhcmVudE5vZGU7cmV0dXJue3dpZHRoOmEub2Zmc2V0V2lkdGgsaGVpZ2h0OmEub2Zmc2V0SGVpZ2h0fX0sdS5zZXRTaXplPWZ1bmN0aW9uKGEsYyl7cmV0dXJuIGIuX2VuZ2luZS5zZXRTaXplLmNhbGwodGhpcyxhLGMpfSx1LnNldFZpZXdCb3g9ZnVuY3Rpb24oYSxjLGQsZSxmKXtyZXR1cm4gYi5fZW5naW5lLnNldFZpZXdCb3guY2FsbCh0aGlzLGEsYyxkLGUsZil9LHUudG9wPXUuYm90dG9tPW51bGwsdS5yYXBoYWVsPWI7dmFyICRhPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1hLm93bmVyRG9jdW1lbnQsZD1jLmJvZHksZT1jLmRvY3VtZW50RWxlbWVudCxmPWUuY2xpZW50VG9wfHxkLmNsaWVudFRvcHx8MCxnPWUuY2xpZW50TGVmdHx8ZC5jbGllbnRMZWZ0fHwwLGg9Yi50b3ArKHoud2luLnBhZ2VZT2Zmc2V0fHxlLnNjcm9sbFRvcHx8ZC5zY3JvbGxUb3ApLWYsaT1iLmxlZnQrKHoud2luLnBhZ2VYT2Zmc2V0fHxlLnNjcm9sbExlZnR8fGQuc2Nyb2xsTGVmdCktZztyZXR1cm57eTpoLHg6aX19O3UuZ2V0RWxlbWVudEJ5UG9pbnQ9ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLGQ9Yy5jYW52YXMsZT16LmRvYy5lbGVtZW50RnJvbVBvaW50KGEsYik7aWYoei53aW4ub3BlcmEmJiJzdmciPT1lLnRhZ05hbWUpe3ZhciBmPSRhKGQpLGc9ZC5jcmVhdGVTVkdSZWN0KCk7Zy54PWEtZi54LGcueT1iLWYueSxnLndpZHRoPWcuaGVpZ2h0PTE7dmFyIGg9ZC5nZXRJbnRlcnNlY3Rpb25MaXN0KGcsbnVsbCk7aC5sZW5ndGgmJihlPWhbaC5sZW5ndGgtMV0pfWlmKCFlKXJldHVybiBudWxsO2Zvcig7ZS5wYXJlbnROb2RlJiZlIT1kLnBhcmVudE5vZGUmJiFlLnJhcGhhZWw7KWU9ZS5wYXJlbnROb2RlO3JldHVybiBlPT1jLmNhbnZhcy5wYXJlbnROb2RlJiYoZT1kKSxlPWUmJmUucmFwaGFlbD9jLmdldEJ5SWQoZS5yYXBoYWVsaWQpOm51bGx9LHUuZ2V0RWxlbWVudHNCeUJCb3g9ZnVuY3Rpb24oYSl7dmFyIGM9dGhpcy5zZXQoKTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGQpe2IuaXNCQm94SW50ZXJzZWN0KGQuZ2V0QkJveCgpLGEpJiZjLnB1c2goZCl9KSxjfSx1LmdldEJ5SWQ9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPXRoaXMuYm90dG9tO2I7KXtpZihiLmlkPT1hKXJldHVybiBiO2I9Yi5uZXh0fXJldHVybiBudWxsfSx1LmZvckVhY2g9ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9dGhpcy5ib3R0b207Yzspe2lmKGEuY2FsbChiLGMpPT09ITEpcmV0dXJuIHRoaXM7Yz1jLm5leHR9cmV0dXJuIHRoaXN9LHUuZ2V0RWxlbWVudHNCeVBvaW50PWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5zZXQoKTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGQpe2QuaXNQb2ludEluc2lkZShhLGIpJiZjLnB1c2goZCl9KSxjfSxYYS5pc1BvaW50SW5zaWRlPWZ1bmN0aW9uKGEsYyl7dmFyIGQ9dGhpcy5yZWFsUGF0aD1vYVt0aGlzLnR5cGVdKHRoaXMpO3JldHVybiB0aGlzLmF0dHIoInRyYW5zZm9ybSIpJiZ0aGlzLmF0dHIoInRyYW5zZm9ybSIpLmxlbmd0aCYmKGQ9Yi50cmFuc2Zvcm1QYXRoKGQsdGhpcy5hdHRyKCJ0cmFuc2Zvcm0iKSkpLGIuaXNQb2ludEluc2lkZVBhdGgoZCxhLGMpfSxYYS5nZXRCQm94PWZ1bmN0aW9uKGEpe2lmKHRoaXMucmVtb3ZlZClyZXR1cm57fTt2YXIgYj10aGlzLl87cmV0dXJuIGE/KChiLmRpcnR5fHwhYi5iYm94d3QpJiYodGhpcy5yZWFsUGF0aD1vYVt0aGlzLnR5cGVdKHRoaXMpLGIuYmJveHd0PXphKHRoaXMucmVhbFBhdGgpLGIuYmJveHd0LnRvU3RyaW5nPW8sYi5kaXJ0eT0wKSxiLmJib3h3dCk6KChiLmRpcnR5fHxiLmRpcnR5VHx8IWIuYmJveCkmJigoYi5kaXJ0eXx8IXRoaXMucmVhbFBhdGgpJiYoYi5iYm94d3Q9MCx0aGlzLnJlYWxQYXRoPW9hW3RoaXMudHlwZV0odGhpcykpLGIuYmJveD16YShwYSh0aGlzLnJlYWxQYXRoLHRoaXMubWF0cml4KSksYi5iYm94LnRvU3RyaW5nPW8sYi5kaXJ0eT1iLmRpcnR5VD0wKSxiLmJib3gpfSxYYS5jbG9uZT1mdW5jdGlvbigpe2lmKHRoaXMucmVtb3ZlZClyZXR1cm4gbnVsbDt2YXIgYT10aGlzLnBhcGVyW3RoaXMudHlwZV0oKS5hdHRyKHRoaXMuYXR0cigpKTtyZXR1cm4gdGhpcy5fX3NldF9fJiZ0aGlzLl9fc2V0X18ucHVzaChhKSxhfSxYYS5nbG93PWZ1bmN0aW9uKGEpe2lmKCJ0ZXh0Ij09dGhpcy50eXBlKXJldHVybiBudWxsO2E9YXx8e307dmFyIGI9e3dpZHRoOihhLndpZHRofHwxMCkrKCt0aGlzLmF0dHIoInN0cm9rZS13aWR0aCIpfHwxKSxmaWxsOmEuZmlsbHx8ITEsb3BhY2l0eTpudWxsPT1hLm9wYWNpdHk/LjU6YS5vcGFjaXR5LG9mZnNldHg6YS5vZmZzZXR4fHwwLG9mZnNldHk6YS5vZmZzZXR5fHwwLGNvbG9yOmEuY29sb3J8fCIjMDAwIn0sYz1iLndpZHRoLzIsZD10aGlzLnBhcGVyLGU9ZC5zZXQoKSxmPXRoaXMucmVhbFBhdGh8fG9hW3RoaXMudHlwZV0odGhpcyk7Zj10aGlzLm1hdHJpeD9wYShmLHRoaXMubWF0cml4KTpmO2Zvcih2YXIgZz0xO2MrMT5nO2crKyllLnB1c2goZC5wYXRoKGYpLmF0dHIoe3N0cm9rZTpiLmNvbG9yLGZpbGw6Yi5maWxsP2IuY29sb3I6Im5vbmUiLCJzdHJva2UtbGluZWpvaW4iOiJyb3VuZCIsInN0cm9rZS1saW5lY2FwIjoicm91bmQiLCJzdHJva2Utd2lkdGgiOisoYi53aWR0aC9jKmcpLnRvRml4ZWQoMyksb3BhY2l0eTorKGIub3BhY2l0eS9jKS50b0ZpeGVkKDMpfSkpO3JldHVybiBlLmluc2VydEJlZm9yZSh0aGlzKS50cmFuc2xhdGUoYi5vZmZzZXR4LGIub2Zmc2V0eSl9O3ZhciBfYT1mdW5jdGlvbihhLGMsZCxlLGYsZyxoLGssbCl7cmV0dXJuIG51bGw9PWw/aShhLGMsZCxlLGYsZyxoLGspOmIuZmluZERvdHNBdFNlZ21lbnQoYSxjLGQsZSxmLGcsaCxrLGooYSxjLGQsZSxmLGcsaCxrLGwpKX0sYWI9ZnVuY3Rpb24oYSxjKXtyZXR1cm4gZnVuY3Rpb24oZCxlLGYpe2Q9SWEoZCk7Zm9yKHZhciBnLGgsaSxqLGssbD0iIixtPXt9LG49MCxvPTAscD1kLmxlbmd0aDtwPm87bysrKXtpZihpPWRbb10sIk0iPT1pWzBdKWc9K2lbMV0saD0raVsyXTtlbHNle2lmKGo9X2EoZyxoLGlbMV0saVsyXSxpWzNdLGlbNF0saVs1XSxpWzZdKSxuK2o+ZSl7aWYoYyYmIW0uc3RhcnQpe2lmKGs9X2EoZyxoLGlbMV0saVsyXSxpWzNdLGlbNF0saVs1XSxpWzZdLGUtbiksbCs9WyJDIitrLnN0YXJ0Lngsay5zdGFydC55LGsubS54LGsubS55LGsueCxrLnldLGYpcmV0dXJuIGw7bS5zdGFydD1sLGw9WyJNIitrLngsay55KyJDIitrLm4ueCxrLm4ueSxrLmVuZC54LGsuZW5kLnksaVs1XSxpWzZdXS5qb2luKCksbis9aixnPStpWzVdLGg9K2lbNl07Y29udGludWV9aWYoIWEmJiFjKXJldHVybiBrPV9hKGcsaCxpWzFdLGlbMl0saVszXSxpWzRdLGlbNV0saVs2XSxlLW4pLHt4OmsueCx5OmsueSxhbHBoYTprLmFscGhhfX1uKz1qLGc9K2lbNV0saD0raVs2XX1sKz1pLnNoaWZ0KCkraX1yZXR1cm4gbS5lbmQ9bCxrPWE/bjpjP206Yi5maW5kRG90c0F0U2VnbWVudChnLGgsaVswXSxpWzFdLGlbMl0saVszXSxpWzRdLGlbNV0sMSksay5hbHBoYSYmKGs9e3g6ay54LHk6ay55LGFscGhhOmsuYWxwaGF9KSxrfX0sYmI9YWIoMSksY2I9YWIoKSxkYj1hYigwLDEpO2IuZ2V0VG90YWxMZW5ndGg9YmIsYi5nZXRQb2ludEF0TGVuZ3RoPWNiLGIuZ2V0U3VicGF0aD1mdW5jdGlvbihhLGIsYyl7aWYodGhpcy5nZXRUb3RhbExlbmd0aChhKS1jPDFlLTYpcmV0dXJuIGRiKGEsYikuZW5kO3ZhciBkPWRiKGEsYywxKTtyZXR1cm4gYj9kYihkLGIpLmVuZDpkfSxYYS5nZXRUb3RhbExlbmd0aD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuZ2V0UGF0aCgpO2lmKGEpcmV0dXJuIHRoaXMubm9kZS5nZXRUb3RhbExlbmd0aD90aGlzLm5vZGUuZ2V0VG90YWxMZW5ndGgoKTpiYihhKX0sWGEuZ2V0UG9pbnRBdExlbmd0aD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmdldFBhdGgoKTtpZihiKXJldHVybiBjYihiLGEpfSxYYS5nZXRQYXRoPWZ1bmN0aW9uKCl7dmFyIGEsYz1iLl9nZXRQYXRoW3RoaXMudHlwZV07aWYoInRleHQiIT10aGlzLnR5cGUmJiJzZXQiIT10aGlzLnR5cGUpcmV0dXJuIGMmJihhPWModGhpcykpLGF9LFhhLmdldFN1YnBhdGg9ZnVuY3Rpb24oYSxjKXt2YXIgZD10aGlzLmdldFBhdGgoKTtpZihkKXJldHVybiBiLmdldFN1YnBhdGgoZCxhLGMpfTt2YXIgZWI9Yi5lYXNpbmdfZm9ybXVsYXM9e2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sIjwiOmZ1bmN0aW9uKGEpe3JldHVybiBRKGEsMS43KX0sIj4iOmZ1bmN0aW9uKGEpe3JldHVybiBRKGEsLjQ4KX0sIjw+IjpmdW5jdGlvbihhKXt2YXIgYj0uNDgtYS8xLjA0LGM9TS5zcXJ0KC4xNzM0K2IqYiksZD1jLWIsZT1RKFAoZCksMS8zKSooMD5kPy0xOjEpLGY9LWMtYixnPVEoUChmKSwxLzMpKigwPmY/LTE6MSksaD1lK2crLjU7cmV0dXJuIDMqKDEtaCkqaCpoK2gqaCpofSxiYWNrSW46ZnVuY3Rpb24oYSl7dmFyIGI9MS43MDE1ODtyZXR1cm4gYSphKigoYisxKSphLWIpfSxiYWNrT3V0OmZ1bmN0aW9uKGEpe2EtPTE7dmFyIGI9MS43MDE1ODtyZXR1cm4gYSphKigoYisxKSphK2IpKzF9LGVsYXN0aWM6ZnVuY3Rpb24oYSl7cmV0dXJuIGE9PSEhYT9hOlEoMiwtMTAqYSkqTS5zaW4oMiooYS0uMDc1KSpSLy4zKSsxfSxib3VuY2U6ZnVuY3Rpb24oYSl7dmFyIGIsYz03LjU2MjUsZD0yLjc1O3JldHVybiAxL2Q+YT9iPWMqYSphOjIvZD5hPyhhLT0xLjUvZCxiPWMqYSphKy43NSk6Mi41L2Q+YT8oYS09Mi4yNS9kLGI9YyphKmErLjkzNzUpOihhLT0yLjYyNS9kLGI9YyphKmErLjk4NDM3NSksYn19O2ViLmVhc2VJbj1lYlsiZWFzZS1pbiJdPWViWyI8Il0sZWIuZWFzZU91dD1lYlsiZWFzZS1vdXQiXT1lYlsiPiJdLGViLmVhc2VJbk91dD1lYlsiZWFzZS1pbi1vdXQiXT1lYlsiPD4iXSxlYlsiYmFjay1pbiJdPWViLmJhY2tJbixlYlsiYmFjay1vdXQiXT1lYi5iYWNrT3V0O3ZhciBmYj1bXSxnYj13aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHx3aW5kb3cub1JlcXVlc3RBbmltYXRpb25GcmFtZXx8d2luZG93Lm1zUmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxmdW5jdGlvbihhKXtzZXRUaW1lb3V0KGEsMTYpfSxoYj1mdW5jdGlvbigpe2Zvcih2YXIgYz0rbmV3IERhdGUsZD0wO2Q8ZmIubGVuZ3RoO2QrKyl7dmFyIGU9ZmJbZF07aWYoIWUuZWwucmVtb3ZlZCYmIWUucGF1c2VkKXt2YXIgZixnLGg9Yy1lLnN0YXJ0LGk9ZS5tcyxqPWUuZWFzaW5nLGs9ZS5mcm9tLGw9ZS5kaWZmLG09ZS50byxuPShlLnQsZS5lbCksbz17fSxwPXt9O2lmKGUuaW5pdHN0YXR1cz8oaD0oZS5pbml0c3RhdHVzKmUuYW5pbS50b3AtZS5wcmV2KS8oZS5wZXJjZW50LWUucHJldikqaSxlLnN0YXR1cz1lLmluaXRzdGF0dXMsZGVsZXRlIGUuaW5pdHN0YXR1cyxlLnN0b3AmJmZiLnNwbGljZShkLS0sMSkpOmUuc3RhdHVzPShlLnByZXYrKGUucGVyY2VudC1lLnByZXYpKihoL2kpKS9lLmFuaW0udG9wLCEoMD5oKSlpZihpPmgpe3ZhciBxPWooaC9pKTtmb3IodmFyIHMgaW4gaylpZihrW3ldKHMpKXtzd2l0Y2goY2Fbc10pe2Nhc2UgUzpmPStrW3NdK3EqaSpsW3NdO2JyZWFrO2Nhc2UiY29sb3VyIjpmPSJyZ2IoIitbaWIoWihrW3NdLnIrcSppKmxbc10ucikpLGliKFooa1tzXS5nK3EqaSpsW3NdLmcpKSxpYihaKGtbc10uYitxKmkqbFtzXS5iKSldLmpvaW4oIiwiKSsiKSI7YnJlYWs7Y2FzZSJwYXRoIjpmPVtdO2Zvcih2YXIgdD0wLHU9a1tzXS5sZW5ndGg7dT50O3QrKyl7Zlt0XT1ba1tzXVt0XVswXV07Zm9yKHZhciB2PTEsdz1rW3NdW3RdLmxlbmd0aDt3PnY7disrKWZbdF1bdl09K2tbc11bdF1bdl0rcSppKmxbc11bdF1bdl07Zlt0XT1mW3RdLmpvaW4oRyl9Zj1mLmpvaW4oRyk7YnJlYWs7Y2FzZSJ0cmFuc2Zvcm0iOmlmKGxbc10ucmVhbClmb3IoZj1bXSx0PTAsdT1rW3NdLmxlbmd0aDt1PnQ7dCsrKWZvcihmW3RdPVtrW3NdW3RdWzBdXSx2PTEsdz1rW3NdW3RdLmxlbmd0aDt3PnY7disrKWZbdF1bdl09a1tzXVt0XVt2XStxKmkqbFtzXVt0XVt2XTtlbHNle3ZhciB4PWZ1bmN0aW9uKGEpe3JldHVybitrW3NdW2FdK3EqaSpsW3NdW2FdfTtmPVtbIm0iLHgoMCkseCgxKSx4KDIpLHgoMykseCg0KSx4KDUpXV19YnJlYWs7Y2FzZSJjc3YiOmlmKCJjbGlwLXJlY3QiPT1zKWZvcihmPVtdLHQ9NDt0LS07KWZbdF09K2tbc11bdF0rcSppKmxbc11bdF07YnJlYWs7ZGVmYXVsdDp2YXIgej1bXVtEXShrW3NdKTtmb3IoZj1bXSx0PW4ucGFwZXIuY3VzdG9tQXR0cmlidXRlc1tzXS5sZW5ndGg7dC0tOylmW3RdPSt6W3RdK3EqaSpsW3NdW3RdfW9bc109Zn1uLmF0dHIobyksZnVuY3Rpb24oYixjLGQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXthKCJyYXBoYWVsLmFuaW0uZnJhbWUuIitiLGMsZCl9KX0obi5pZCxuLGUuYW5pbSl9ZWxzZXtpZihmdW5jdGlvbihjLGQsZSl7c2V0VGltZW91dChmdW5jdGlvbigpe2EoInJhcGhhZWwuYW5pbS5mcmFtZS4iK2QuaWQsZCxlKSxhKCJyYXBoYWVsLmFuaW0uZmluaXNoLiIrZC5pZCxkLGUpLGIuaXMoYywiZnVuY3Rpb24iKSYmYy5jYWxsKGQpfSl9KGUuY2FsbGJhY2ssbixlLmFuaW0pLG4uYXR0cihtKSxmYi5zcGxpY2UoZC0tLDEpLGUucmVwZWF0PjEmJiFlLm5leHQpe2ZvcihnIGluIG0pbVt5XShnKSYmKHBbZ109ZS50b3RhbE9yaWdpbltnXSk7ZS5lbC5hdHRyKHApLHIoZS5hbmltLGUuZWwsZS5hbmltLnBlcmNlbnRzWzBdLG51bGwsZS50b3RhbE9yaWdpbixlLnJlcGVhdC0xKX1lLm5leHQmJiFlLnN0b3AmJnIoZS5hbmltLGUuZWwsZS5uZXh0LG51bGwsZS50b3RhbE9yaWdpbixlLnJlcGVhdCl9fX1mYi5sZW5ndGgmJmdiKGhiKX0saWI9ZnVuY3Rpb24oYSl7cmV0dXJuIGE+MjU1PzI1NTowPmE/MDphfTtYYS5hbmltYXRlV2l0aD1mdW5jdGlvbihhLGMsZCxlLGYsZyl7dmFyIGg9dGhpcztpZihoLnJlbW92ZWQpcmV0dXJuIGcmJmcuY2FsbChoKSxoO3ZhciBpPWQgaW5zdGFuY2VvZiBxP2Q6Yi5hbmltYXRpb24oZCxlLGYsZyk7cihpLGgsaS5wZXJjZW50c1swXSxudWxsLGguYXR0cigpKTtmb3IodmFyIGo9MCxrPWZiLmxlbmd0aDtrPmo7aisrKWlmKGZiW2pdLmFuaW09PWMmJmZiW2pdLmVsPT1hKXtmYltrLTFdLnN0YXJ0PWZiW2pdLnN0YXJ0O2JyZWFrfXJldHVybiBofSxYYS5vbkFuaW1hdGlvbj1mdW5jdGlvbihiKXtyZXR1cm4gYj9hLm9uKCJyYXBoYWVsLmFuaW0uZnJhbWUuIit0aGlzLmlkLGIpOmEudW5iaW5kKCJyYXBoYWVsLmFuaW0uZnJhbWUuIit0aGlzLmlkKSx0aGlzfSxxLnByb3RvdHlwZS5kZWxheT1mdW5jdGlvbihhKXt2YXIgYj1uZXcgcSh0aGlzLmFuaW0sdGhpcy5tcyk7cmV0dXJuIGIudGltZXM9dGhpcy50aW1lcyxiLmRlbD0rYXx8MCxifSxxLnByb3RvdHlwZS5yZXBlYXQ9ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IHEodGhpcy5hbmltLHRoaXMubXMpO3JldHVybiBiLmRlbD10aGlzLmRlbCxiLnRpbWVzPU0uZmxvb3IoTihhLDApKXx8MSxifSxiLmFuaW1hdGlvbj1mdW5jdGlvbihhLGMsZCxlKXtpZihhIGluc3RhbmNlb2YgcSlyZXR1cm4gYTsoYi5pcyhkLCJmdW5jdGlvbiIpfHwhZCkmJihlPWV8fGR8fG51bGwsZD1udWxsKSxhPU9iamVjdChhKSxjPStjfHwwO3ZhciBmLGcsaD17fTtmb3IoZyBpbiBhKWFbeV0oZykmJiQoZykhPWcmJiQoZykrIiUiIT1nJiYoZj0hMCxoW2ddPWFbZ10pO2lmKGYpcmV0dXJuIGQmJihoLmVhc2luZz1kKSxlJiYoaC5jYWxsYmFjaz1lKSxuZXcgcSh7MTAwOmh9LGMpO2lmKGUpe3ZhciBpPTA7Zm9yKHZhciBqIGluIGEpe3ZhciBrPV8oaik7YVt5XShqKSYmaz5pJiYoaT1rKX1pKz0iJSIsIWFbaV0uY2FsbGJhY2smJihhW2ldLmNhbGxiYWNrPWUpfXJldHVybiBuZXcgcShhLGMpfSxYYS5hbmltYXRlPWZ1bmN0aW9uKGEsYyxkLGUpe3ZhciBmPXRoaXM7aWYoZi5yZW1vdmVkKXJldHVybiBlJiZlLmNhbGwoZiksZjt2YXIgZz1hIGluc3RhbmNlb2YgcT9hOmIuYW5pbWF0aW9uKGEsYyxkLGUpO3JldHVybiByKGcsZixnLnBlcmNlbnRzWzBdLG51bGwsZi5hdHRyKCkpLGZ9LFhhLnNldFRpbWU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYSYmbnVsbCE9YiYmdGhpcy5zdGF0dXMoYSxPKGIsYS5tcykvYS5tcyksdGhpc30sWGEuc3RhdHVzPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlPVtdLGY9MDtpZihudWxsIT1iKXJldHVybiByKGEsdGhpcywtMSxPKGIsMSkpLHRoaXM7Zm9yKGM9ZmIubGVuZ3RoO2M+ZjtmKyspaWYoZD1mYltmXSxkLmVsLmlkPT10aGlzLmlkJiYoIWF8fGQuYW5pbT09YSkpe2lmKGEpcmV0dXJuIGQuc3RhdHVzO2UucHVzaCh7YW5pbTpkLmFuaW0sc3RhdHVzOmQuc3RhdHVzfSl9cmV0dXJuIGE/MDplfSxYYS5wYXVzZT1mdW5jdGlvbihiKXtmb3IodmFyIGM9MDtjPGZiLmxlbmd0aDtjKyspZmJbY10uZWwuaWQhPXRoaXMuaWR8fGImJmZiW2NdLmFuaW0hPWJ8fGEoInJhcGhhZWwuYW5pbS5wYXVzZS4iK3RoaXMuaWQsdGhpcyxmYltjXS5hbmltKSE9PSExJiYoZmJbY10ucGF1c2VkPSEwKTtyZXR1cm4gdGhpc30sWGEucmVzdW1lPWZ1bmN0aW9uKGIpe2Zvcih2YXIgYz0wO2M8ZmIubGVuZ3RoO2MrKylpZihmYltjXS5lbC5pZD09dGhpcy5pZCYmKCFifHxmYltjXS5hbmltPT1iKSl7dmFyIGQ9ZmJbY107YSgicmFwaGFlbC5hbmltLnJlc3VtZS4iK3RoaXMuaWQsdGhpcyxkLmFuaW0pIT09ITEmJihkZWxldGUgZC5wYXVzZWQsdGhpcy5zdGF0dXMoZC5hbmltLGQuc3RhdHVzKSl9cmV0dXJuIHRoaXN9LFhhLnN0b3A9ZnVuY3Rpb24oYil7Zm9yKHZhciBjPTA7YzxmYi5sZW5ndGg7YysrKWZiW2NdLmVsLmlkIT10aGlzLmlkfHxiJiZmYltjXS5hbmltIT1ifHxhKCJyYXBoYWVsLmFuaW0uc3RvcC4iK3RoaXMuaWQsdGhpcyxmYltjXS5hbmltKSE9PSExJiZmYi5zcGxpY2UoYy0tLDEpO3JldHVybiB0aGlzfSxhLm9uKCJyYXBoYWVsLnJlbW92ZSIscyksYS5vbigicmFwaGFlbC5jbGVhciIscyksWGEudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iUmFwaGHDq2zigJlzIG9iamVjdCJ9O3ZhciBqYj1mdW5jdGlvbihhKXtpZih0aGlzLml0ZW1zPVtdLHRoaXMubGVuZ3RoPTAsdGhpcy50eXBlPSJzZXQiLGEpZm9yKHZhciBiPTAsYz1hLmxlbmd0aDtjPmI7YisrKSFhW2JdfHxhW2JdLmNvbnN0cnVjdG9yIT1YYS5jb25zdHJ1Y3RvciYmYVtiXS5jb25zdHJ1Y3RvciE9amJ8fCh0aGlzW3RoaXMuaXRlbXMubGVuZ3RoXT10aGlzLml0ZW1zW3RoaXMuaXRlbXMubGVuZ3RoXT1hW2JdLHRoaXMubGVuZ3RoKyspfSxrYj1qYi5wcm90b3R5cGU7a2IucHVzaD1mdW5jdGlvbigpe2Zvcih2YXIgYSxiLGM9MCxkPWFyZ3VtZW50cy5sZW5ndGg7ZD5jO2MrKylhPWFyZ3VtZW50c1tjXSwhYXx8YS5jb25zdHJ1Y3RvciE9WGEuY29uc3RydWN0b3ImJmEuY29uc3RydWN0b3IhPWpifHwoYj10aGlzLml0ZW1zLmxlbmd0aCx0aGlzW2JdPXRoaXMuaXRlbXNbYl09YSx0aGlzLmxlbmd0aCsrKTtyZXR1cm4gdGhpc30sa2IucG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RoJiZkZWxldGUgdGhpc1t0aGlzLmxlbmd0aC0tXSx0aGlzLml0ZW1zLnBvcCgpfSxrYi5mb3JFYWNoPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPTAsZD10aGlzLml0ZW1zLmxlbmd0aDtkPmM7YysrKWlmKGEuY2FsbChiLHRoaXMuaXRlbXNbY10sYyk9PT0hMSlyZXR1cm4gdGhpcztyZXR1cm4gdGhpc307Zm9yKHZhciBsYiBpbiBYYSlYYVt5XShsYikmJihrYltsYl09ZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9YXJndW1lbnRzO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oYyl7Y1thXVtDXShjLGIpfSl9fShsYikpO3JldHVybiBrYi5hdHRyPWZ1bmN0aW9uKGEsYyl7aWYoYSYmYi5pcyhhLFUpJiZiLmlzKGFbMF0sIm9iamVjdCIpKWZvcih2YXIgZD0wLGU9YS5sZW5ndGg7ZT5kO2QrKyl0aGlzLml0ZW1zW2RdLmF0dHIoYVtkXSk7ZWxzZSBmb3IodmFyIGY9MCxnPXRoaXMuaXRlbXMubGVuZ3RoO2c+ZjtmKyspdGhpcy5pdGVtc1tmXS5hdHRyKGEsYyk7cmV0dXJuIHRoaXN9LGtiLmNsZWFyPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aDspdGhpcy5wb3AoKX0sa2Iuc3BsaWNlPWZ1bmN0aW9uKGEsYixjKXthPTA+YT9OKHRoaXMubGVuZ3RoK2EsMCk6YSxiPU4oMCxPKHRoaXMubGVuZ3RoLWEsYikpO3ZhciBkLGU9W10sZj1bXSxnPVtdO2ZvcihkPTI7ZDxhcmd1bWVudHMubGVuZ3RoO2QrKylnLnB1c2goYXJndW1lbnRzW2RdKTtmb3IoZD0wO2I+ZDtkKyspZi5wdXNoKHRoaXNbYStkXSk7Zm9yKDtkPHRoaXMubGVuZ3RoLWE7ZCsrKWUucHVzaCh0aGlzW2ErZF0pO3ZhciBoPWcubGVuZ3RoO2ZvcihkPTA7ZDxoK2UubGVuZ3RoO2QrKyl0aGlzLml0ZW1zW2ErZF09dGhpc1thK2RdPWg+ZD9nW2RdOmVbZC1oXTtmb3IoZD10aGlzLml0ZW1zLmxlbmd0aD10aGlzLmxlbmd0aC09Yi1oO3RoaXNbZF07KWRlbGV0ZSB0aGlzW2QrK107cmV0dXJuIG5ldyBqYihmKX0sa2IuZXhjbHVkZT1mdW5jdGlvbihhKXtmb3IodmFyIGI9MCxjPXRoaXMubGVuZ3RoO2M+YjtiKyspaWYodGhpc1tiXT09YSlyZXR1cm4gdGhpcy5zcGxpY2UoYiwxKSwhMH0sa2IuYW5pbWF0ZT1mdW5jdGlvbihhLGMsZCxlKXsoYi5pcyhkLCJmdW5jdGlvbiIpfHwhZCkmJihlPWR8fG51bGwpO3ZhciBmLGcsaD10aGlzLml0ZW1zLmxlbmd0aCxpPWgsaj10aGlzO2lmKCFoKXJldHVybiB0aGlzO2UmJihnPWZ1bmN0aW9uKCl7IS0taCYmZS5jYWxsKGopfSksZD1iLmlzKGQsVCk/ZDpnO3ZhciBrPWIuYW5pbWF0aW9uKGEsYyxkLGcpO2ZvcihmPXRoaXMuaXRlbXNbLS1pXS5hbmltYXRlKGspO2ktLTspdGhpcy5pdGVtc1tpXSYmIXRoaXMuaXRlbXNbaV0ucmVtb3ZlZCYmdGhpcy5pdGVtc1tpXS5hbmltYXRlV2l0aChmLGssayksdGhpcy5pdGVtc1tpXSYmIXRoaXMuaXRlbXNbaV0ucmVtb3ZlZHx8aC0tO3JldHVybiB0aGlzfSxrYi5pbnNlcnRBZnRlcj1mdW5jdGlvbihhKXtmb3IodmFyIGI9dGhpcy5pdGVtcy5sZW5ndGg7Yi0tOyl0aGlzLml0ZW1zW2JdLmluc2VydEFmdGVyKGEpO3JldHVybiB0aGlzfSxrYi5nZXRCQm94PWZ1bmN0aW9uKCl7Zm9yKHZhciBhPVtdLGI9W10sYz1bXSxkPVtdLGU9dGhpcy5pdGVtcy5sZW5ndGg7ZS0tOylpZighdGhpcy5pdGVtc1tlXS5yZW1vdmVkKXt2YXIgZj10aGlzLml0ZW1zW2VdLmdldEJCb3goKTthLnB1c2goZi54KSxiLnB1c2goZi55KSxjLnB1c2goZi54K2Yud2lkdGgpLGQucHVzaChmLnkrZi5oZWlnaHQpfXJldHVybiBhPU9bQ10oMCxhKSxiPU9bQ10oMCxiKSxjPU5bQ10oMCxjKSxkPU5bQ10oMCxkKSx7eDphLHk6Yix4MjpjLHkyOmQsd2lkdGg6Yy1hLGhlaWdodDpkLWJ9fSxrYi5jbG9uZT1mdW5jdGlvbihhKXthPXRoaXMucGFwZXIuc2V0KCk7Zm9yKHZhciBiPTAsYz10aGlzLml0ZW1zLmxlbmd0aDtjPmI7YisrKWEucHVzaCh0aGlzLml0ZW1zW2JdLmNsb25lKCkpO3JldHVybiBhfSxrYi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJSYXBoYcOrbOKAmHMgc2V0In0sa2IuZ2xvdz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLnBhcGVyLnNldCgpO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oYyxkKXt2YXIgZT1jLmdsb3coYSk7bnVsbCE9ZSYmZS5mb3JFYWNoKGZ1bmN0aW9uKGEsYyl7Yi5wdXNoKGEpfSl9KSxifSxrYi5pc1BvaW50SW5zaWRlPWZ1bmN0aW9uKGEsYil7dmFyIGM9ITE7cmV0dXJuIHRoaXMuZm9yRWFjaChmdW5jdGlvbihkKXtyZXR1cm4gZC5pc1BvaW50SW5zaWRlKGEsYik/KGM9ITAsITEpOnZvaWQgMH0pLGN9LGIucmVnaXN0ZXJGb250PWZ1bmN0aW9uKGEpe2lmKCFhLmZhY2UpcmV0dXJuIGE7dGhpcy5mb250cz10aGlzLmZvbnRzfHx7fTt2YXIgYj17dzphLncsZmFjZTp7fSxnbHlwaHM6e319LGM9YS5mYWNlWyJmb250LWZhbWlseSJdO2Zvcih2YXIgZCBpbiBhLmZhY2UpYS5mYWNlW3ldKGQpJiYoYi5mYWNlW2RdPWEuZmFjZVtkXSk7aWYodGhpcy5mb250c1tjXT90aGlzLmZvbnRzW2NdLnB1c2goYik6dGhpcy5mb250c1tjXT1bYl0sIWEuc3ZnKXtiLmZhY2VbInVuaXRzLXBlci1lbSJdPV8oYS5mYWNlWyJ1bml0cy1wZXItZW0iXSwxMCk7Zm9yKHZhciBlIGluIGEuZ2x5cGhzKWlmKGEuZ2x5cGhzW3ldKGUpKXt2YXIgZj1hLmdseXBoc1tlXTtpZihiLmdseXBoc1tlXT17dzpmLncsazp7fSxkOmYuZCYmIk0iK2YuZC5yZXBsYWNlKC9bbWxjeHRydl0vZyxmdW5jdGlvbihhKXtyZXR1cm57bDoiTCIsYzoiQyIseDoieiIsdDoibSIscjoibCIsdjoiYyJ9W2FdfHwiTSJ9KSsieiJ9LGYuaylmb3IodmFyIGcgaW4gZi5rKWZbeV0oZykmJihiLmdseXBoc1tlXS5rW2ddPWYua1tnXSl9fXJldHVybiBhfSx1LmdldEZvbnQ9ZnVuY3Rpb24oYSxjLGQsZSl7aWYoZT1lfHwibm9ybWFsIixkPWR8fCJub3JtYWwiLGM9K2N8fHtub3JtYWw6NDAwLGJvbGQ6NzAwLGxpZ2h0ZXI6MzAwLGJvbGRlcjo4MDB9W2NdfHw0MDAsYi5mb250cyl7dmFyIGY9Yi5mb250c1thXTtpZighZil7dmFyIGc9bmV3IFJlZ0V4cCgiKF58XFxzKSIrYS5yZXBsYWNlKC9bXlx3XGRccyshfi46Xy1dL2csRikrIihcXHN8JCkiLCJpIik7Zm9yKHZhciBoIGluIGIuZm9udHMpaWYoYi5mb250c1t5XShoKSYmZy50ZXN0KGgpKXtmPWIuZm9udHNbaF07YnJlYWt9fXZhciBpO2lmKGYpZm9yKHZhciBqPTAsaz1mLmxlbmd0aDtrPmomJihpPWZbal0saS5mYWNlWyJmb250LXdlaWdodCJdIT1jfHxpLmZhY2VbImZvbnQtc3R5bGUiXSE9ZCYmaS5mYWNlWyJmb250LXN0eWxlIl18fGkuZmFjZVsiZm9udC1zdHJldGNoIl0hPWUpO2orKyk7cmV0dXJuIGl9fSx1LnByaW50PWZ1bmN0aW9uKGEsYyxkLGUsZixnLGgsaSl7Zz1nfHwibWlkZGxlIixoPU4oTyhofHwwLDEpLC0xKSxpPU4oTyhpfHwxLDMpLDEpO3ZhciBqLGs9SChkKVtJXShGKSxsPTAsbT0wLG49RjtpZihiLmlzKGUsInN0cmluZyIpJiYoZT10aGlzLmdldEZvbnQoZSkpLGUpe2o9KGZ8fDE2KS9lLmZhY2VbInVuaXRzLXBlci1lbSJdO2Zvcih2YXIgbz1lLmZhY2UuYmJveFtJXSh2KSxwPStvWzBdLHE9b1szXS1vWzFdLHI9MCxzPStvWzFdKygiYmFzZWxpbmUiPT1nP3ErICtlLmZhY2UuZGVzY2VudDpxLzIpLHQ9MCx1PWsubGVuZ3RoO3U+dDt0Kyspe2lmKCJcbiI9PWtbdF0pbD0wLHg9MCxtPTAscis9cSppO2Vsc2V7dmFyIHc9bSYmZS5nbHlwaHNba1t0LTFdXXx8e30seD1lLmdseXBoc1trW3RdXTtsKz1tPyh3Lnd8fGUudykrKHcuayYmdy5rW2tbdF1dfHwwKStlLncqaDowLG09MX14JiZ4LmQmJihuKz1iLnRyYW5zZm9ybVBhdGgoeC5kLFsidCIsbCpqLHIqaiwicyIsaixqLHAscywidCIsKGEtcCkvaiwoYy1zKS9qXSkpfX1yZXR1cm4gdGhpcy5wYXRoKG4pLmF0dHIoe2ZpbGw6IiMwMDAiLHN0cm9rZToibm9uZSJ9KX0sdS5hZGQ9ZnVuY3Rpb24oYSl7aWYoYi5pcyhhLCJhcnJheSIpKWZvcih2YXIgYyxkPXRoaXMuc2V0KCksZT0wLGY9YS5sZW5ndGg7Zj5lO2UrKyljPWFbZV18fHt9LHdbeV0oYy50eXBlKSYmZC5wdXNoKHRoaXNbYy50eXBlXSgpLmF0dHIoYykpO3JldHVybiBkfSxiLmZvcm1hdD1mdW5jdGlvbihhLGMpe3ZhciBkPWIuaXMoYyxVKT9bMF1bRF0oYyk6YXJndW1lbnRzO3JldHVybiBhJiZiLmlzKGEsVCkmJmQubGVuZ3RoLTEmJihhPWEucmVwbGFjZSh4LGZ1bmN0aW9uKGEsYil7cmV0dXJuIG51bGw9PWRbKytiXT9GOmRbYl19KSksYXx8Rn0sYi5mdWxsZmlsbD1mdW5jdGlvbigpe3ZhciBhPS9ceyhbXlx9XSspXH0vZyxiPS8oPzooPzpefFwuKSguKz8pKD89XFt8XC58JHxcKCl8XFsoJ3wiKSguKz8pXDJcXSkoXChcKSk/L2csYz1mdW5jdGlvbihhLGMsZCl7dmFyIGU9ZDtyZXR1cm4gYy5yZXBsYWNlKGIsZnVuY3Rpb24oYSxiLGMsZCxmKXtiPWJ8fGQsZSYmKGIgaW4gZSYmKGU9ZVtiXSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmYmJihlPWUoKSkpfSksZT0obnVsbD09ZXx8ZT09ZD9hOmUpKyIifTtyZXR1cm4gZnVuY3Rpb24oYixkKXtyZXR1cm4gU3RyaW5nKGIpLnJlcGxhY2UoYSxmdW5jdGlvbihhLGIpe3JldHVybiBjKGEsYixkKX0pfX0oKSxiLm5pbmphPWZ1bmN0aW9uKCl7cmV0dXJuIEEud2FzP3oud2luLlJhcGhhZWw9QS5pczpkZWxldGUgUmFwaGFlbCxifSxiLnN0PWtiLGEub24oInJhcGhhZWwuRE9NbG9hZCIsZnVuY3Rpb24oKXt0PSEwfSksZnVuY3Rpb24oYSxjLGQpe2Z1bmN0aW9uIGUoKXsvaW4vLnRlc3QoYS5yZWFkeVN0YXRlKT9zZXRUaW1lb3V0KGUsOSk6Yi5ldmUoInJhcGhhZWwuRE9NbG9hZCIpfW51bGw9PWEucmVhZHlTdGF0ZSYmYS5hZGRFdmVudExpc3RlbmVyJiYoYS5hZGRFdmVudExpc3RlbmVyKGMsZD1mdW5jdGlvbigpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lcihjLGQsITEpLGEucmVhZHlTdGF0ZT0iY29tcGxldGUifSwhMSksYS5yZWFkeVN0YXRlPSJsb2FkaW5nIiksZSgpfShkb2N1bWVudCwiRE9NQ29udGVudExvYWRlZCIpLGJ9KSxmdW5jdGlvbihhLGIpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCJyYXBoYWVsLnN2ZyIsWyJyYXBoYWVsLmNvcmUiXSxmdW5jdGlvbihhKXtyZXR1cm4gYihhKX0pOmIoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzP3JlcXVpcmUoIi4vcmFwaGFlbC5jb3JlIik6YS5SYXBoYWVsKX0odGhpcyxmdW5jdGlvbihhKXtpZighYXx8YS5zdmcpe3ZhciBiPSJoYXNPd25Qcm9wZXJ0eSIsYz1TdHJpbmcsZD1wYXJzZUZsb2F0LGU9cGFyc2VJbnQsZj1NYXRoLGc9Zi5tYXgsaD1mLmFicyxpPWYucG93LGo9L1ssIF0rLyxrPWEuZXZlLGw9IiIsbT0iICIsbj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsbz17YmxvY2s6Ik01LDAgMCwyLjUgNSw1eiIsY2xhc3NpYzoiTTUsMCAwLDIuNSA1LDUgMy41LDMgMy41LDJ6IixkaWFtb25kOiJNMi41LDAgNSwyLjUgMi41LDUgMCwyLjV6IixvcGVuOiJNNiwxIDEsMy41IDYsNiIsb3ZhbDoiTTIuNSwwQTIuNSwyLjUsMCwwLDEsMi41LDUgMi41LDIuNSwwLDAsMSwyLjUsMHoifSxwPXt9O2EudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iWW91ciBicm93c2VyIHN1cHBvcnRzIFNWRy5cbllvdSBhcmUgcnVubmluZyBSYXBoYcOrbCAiK3RoaXMudmVyc2lvbn07dmFyIHE9ZnVuY3Rpb24oZCxlKXtpZihlKXsic3RyaW5nIj09dHlwZW9mIGQmJihkPXEoZCkpO2Zvcih2YXIgZiBpbiBlKWVbYl0oZikmJigieGxpbms6Ij09Zi5zdWJzdHJpbmcoMCw2KT9kLnNldEF0dHJpYnV0ZU5TKG4sZi5zdWJzdHJpbmcoNiksYyhlW2ZdKSk6ZC5zZXRBdHRyaWJ1dGUoZixjKGVbZl0pKSl9ZWxzZSBkPWEuX2cuZG9jLmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLGQpLGQuc3R5bGUmJihkLnN0eWxlLndlYmtpdFRhcEhpZ2hsaWdodENvbG9yPSJyZ2JhKDAsMCwwLDApIik7cmV0dXJuIGR9LHI9ZnVuY3Rpb24oYixlKXt2YXIgaj0ibGluZWFyIixrPWIuaWQrZSxtPS41LG49LjUsbz1iLm5vZGUscD1iLnBhcGVyLHI9by5zdHlsZSxzPWEuX2cuZG9jLmdldEVsZW1lbnRCeUlkKGspO2lmKCFzKXtpZihlPWMoZSkucmVwbGFjZShhLl9yYWRpYWxfZ3JhZGllbnQsZnVuY3Rpb24oYSxiLGMpe2lmKGo9InJhZGlhbCIsYiYmYyl7bT1kKGIpLG49ZChjKTt2YXIgZT0yKihuPi41KS0xO2kobS0uNSwyKStpKG4tLjUsMik+LjI1JiYobj1mLnNxcnQoLjI1LWkobS0uNSwyKSkqZSsuNSkmJi41IT1uJiYobj1uLnRvRml4ZWQoNSktMWUtNSplKX1yZXR1cm4gbH0pLGU9ZS5zcGxpdCgvXHMqXC1ccyovKSwibGluZWFyIj09ail7dmFyIHQ9ZS5zaGlmdCgpO2lmKHQ9LWQodCksaXNOYU4odCkpcmV0dXJuIG51bGw7dmFyIHU9WzAsMCxmLmNvcyhhLnJhZCh0KSksZi5zaW4oYS5yYWQodCkpXSx2PTEvKGcoaCh1WzJdKSxoKHVbM10pKXx8MSk7dVsyXSo9dix1WzNdKj12LHVbMl08MCYmKHVbMF09LXVbMl0sdVsyXT0wKSx1WzNdPDAmJih1WzFdPS11WzNdLHVbM109MCl9dmFyIHc9YS5fcGFyc2VEb3RzKGUpO2lmKCF3KXJldHVybiBudWxsO2lmKGs9ay5yZXBsYWNlKC9bXChcKVxzLFx4YjAjXS9nLCJfIiksYi5ncmFkaWVudCYmayE9Yi5ncmFkaWVudC5pZCYmKHAuZGVmcy5yZW1vdmVDaGlsZChiLmdyYWRpZW50KSxkZWxldGUgYi5ncmFkaWVudCksIWIuZ3JhZGllbnQpe3M9cShqKyJHcmFkaWVudCIse2lkOmt9KSxiLmdyYWRpZW50PXMscShzLCJyYWRpYWwiPT1qP3tmeDptLGZ5Om59Ont4MTp1WzBdLHkxOnVbMV0seDI6dVsyXSx5Mjp1WzNdLGdyYWRpZW50VHJhbnNmb3JtOmIubWF0cml4LmludmVydCgpfSkscC5kZWZzLmFwcGVuZENoaWxkKHMpO2Zvcih2YXIgeD0wLHk9dy5sZW5ndGg7eT54O3grKylzLmFwcGVuZENoaWxkKHEoInN0b3AiLHtvZmZzZXQ6d1t4XS5vZmZzZXQ/d1t4XS5vZmZzZXQ6eD8iMTAwJSI6IjAlIiwic3RvcC1jb2xvciI6d1t4XS5jb2xvcnx8IiNmZmYiLCJzdG9wLW9wYWNpdHkiOmlzRmluaXRlKHdbeF0ub3BhY2l0eSk/d1t4XS5vcGFjaXR5OjF9KSl9fXJldHVybiBxKG8se2ZpbGw6InVybCgnIitkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4rZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWUrIiMiK2srIicpIixvcGFjaXR5OjEsImZpbGwtb3BhY2l0eSI6MX0pLHIuZmlsbD1sLHIub3BhY2l0eT0xLHIuZmlsbE9wYWNpdHk9MSwxfSxzPWZ1bmN0aW9uKGEpe3ZhciBiPWEuZ2V0QkJveCgxKTtxKGEucGF0dGVybix7cGF0dGVyblRyYW5zZm9ybTphLm1hdHJpeC5pbnZlcnQoKSsiIHRyYW5zbGF0ZSgiK2IueCsiLCIrYi55KyIpIn0pfSx0PWZ1bmN0aW9uKGQsZSxmKXtpZigicGF0aCI9PWQudHlwZSl7Zm9yKHZhciBnLGgsaSxqLGssbT1jKGUpLnRvTG93ZXJDYXNlKCkuc3BsaXQoIi0iKSxuPWQucGFwZXIscj1mPyJlbmQiOiJzdGFydCIscz1kLm5vZGUsdD1kLmF0dHJzLHU9dFsic3Ryb2tlLXdpZHRoIl0sdj1tLmxlbmd0aCx3PSJjbGFzc2ljIix4PTMseT0zLHo9NTt2LS07KXN3aXRjaChtW3ZdKXtjYXNlImJsb2NrIjpjYXNlImNsYXNzaWMiOmNhc2Uib3ZhbCI6Y2FzZSJkaWFtb25kIjpjYXNlIm9wZW4iOmNhc2Uibm9uZSI6dz1tW3ZdO2JyZWFrO2Nhc2Uid2lkZSI6eT01O2JyZWFrO2Nhc2UibmFycm93Ijp5PTI7YnJlYWs7Y2FzZSJsb25nIjp4PTU7YnJlYWs7Y2FzZSJzaG9ydCI6eD0yfWlmKCJvcGVuIj09dz8oeCs9Mix5Kz0yLHorPTIsaT0xLGo9Zj80OjEsaz17ZmlsbDoibm9uZSIsc3Ryb2tlOnQuc3Ryb2tlfSk6KGo9aT14LzIsaz17ZmlsbDp0LnN0cm9rZSxzdHJva2U6Im5vbmUifSksZC5fLmFycm93cz9mPyhkLl8uYXJyb3dzLmVuZFBhdGgmJnBbZC5fLmFycm93cy5lbmRQYXRoXS0tLGQuXy5hcnJvd3MuZW5kTWFya2VyJiZwW2QuXy5hcnJvd3MuZW5kTWFya2VyXS0tKTooZC5fLmFycm93cy5zdGFydFBhdGgmJnBbZC5fLmFycm93cy5zdGFydFBhdGhdLS0sZC5fLmFycm93cy5zdGFydE1hcmtlciYmcFtkLl8uYXJyb3dzLnN0YXJ0TWFya2VyXS0tKTpkLl8uYXJyb3dzPXt9LCJub25lIiE9dyl7dmFyIEE9InJhcGhhZWwtbWFya2VyLSIrdyxCPSJyYXBoYWVsLW1hcmtlci0iK3Irdyt4K3krIi1vYmoiK2QuaWQ7YS5fZy5kb2MuZ2V0RWxlbWVudEJ5SWQoQSk/cFtBXSsrOihuLmRlZnMuYXBwZW5kQ2hpbGQocShxKCJwYXRoIikseyJzdHJva2UtbGluZWNhcCI6InJvdW5kIixkOm9bd10saWQ6QX0pKSxwW0FdPTEpO3ZhciBDLEQ9YS5fZy5kb2MuZ2V0RWxlbWVudEJ5SWQoQik7RD8ocFtCXSsrLEM9RC5nZXRFbGVtZW50c0J5VGFnTmFtZSgidXNlIilbMF0pOihEPXEocSgibWFya2VyIikse2lkOkIsbWFya2VySGVpZ2h0OnksbWFya2VyV2lkdGg6eCxvcmllbnQ6ImF1dG8iLHJlZlg6aixyZWZZOnkvMn0pLEM9cShxKCJ1c2UiKSx7InhsaW5rOmhyZWYiOiIjIitBLHRyYW5zZm9ybTooZj8icm90YXRlKDE4MCAiK3gvMisiICIreS8yKyIpICI6bCkrInNjYWxlKCIreC96KyIsIit5L3orIikiLCJzdHJva2Utd2lkdGgiOigxLygoeC96K3kveikvMikpLnRvRml4ZWQoNCl9KSxELmFwcGVuZENoaWxkKEMpLG4uZGVmcy5hcHBlbmRDaGlsZChEKSxwW0JdPTEpLHEoQyxrKTt2YXIgRT1pKigiZGlhbW9uZCIhPXcmJiJvdmFsIiE9dyk7Zj8oZz1kLl8uYXJyb3dzLnN0YXJ0ZHgqdXx8MCxoPWEuZ2V0VG90YWxMZW5ndGgodC5wYXRoKS1FKnUpOihnPUUqdSxoPWEuZ2V0VG90YWxMZW5ndGgodC5wYXRoKS0oZC5fLmFycm93cy5lbmRkeCp1fHwwKSksaz17fSxrWyJtYXJrZXItIityXT0idXJsKCMiK0IrIikiLChofHxnKSYmKGsuZD1hLmdldFN1YnBhdGgodC5wYXRoLGcsaCkpLHEocyxrKSxkLl8uYXJyb3dzW3IrIlBhdGgiXT1BLGQuXy5hcnJvd3NbcisiTWFya2VyIl09QixkLl8uYXJyb3dzW3IrImR4Il09RSxkLl8uYXJyb3dzW3IrIlR5cGUiXT13LGQuXy5hcnJvd3NbcisiU3RyaW5nIl09ZX1lbHNlIGY/KGc9ZC5fLmFycm93cy5zdGFydGR4KnV8fDAsaD1hLmdldFRvdGFsTGVuZ3RoKHQucGF0aCktZyk6KGc9MCxoPWEuZ2V0VG90YWxMZW5ndGgodC5wYXRoKS0oZC5fLmFycm93cy5lbmRkeCp1fHwwKSksZC5fLmFycm93c1tyKyJQYXRoIl0mJnEocyx7ZDphLmdldFN1YnBhdGgodC5wYXRoLGcsaCl9KSxkZWxldGUgZC5fLmFycm93c1tyKyJQYXRoIl0sZGVsZXRlIGQuXy5hcnJvd3NbcisiTWFya2VyIl0sZGVsZXRlIGQuXy5hcnJvd3NbcisiZHgiXSxkZWxldGUgZC5fLmFycm93c1tyKyJUeXBlIl0sZGVsZXRlIGQuXy5hcnJvd3NbcisiU3RyaW5nIl07Zm9yKGsgaW4gcClpZihwW2JdKGspJiYhcFtrXSl7dmFyIEY9YS5fZy5kb2MuZ2V0RWxlbWVudEJ5SWQoayk7RiYmRi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEYpfX19LHU9eyItIjpbMywxXSwiLiI6WzEsMV0sIi0uIjpbMywxLDEsMV0sIi0uLiI6WzMsMSwxLDEsMSwxXSwiLiAiOlsxLDNdLCItICI6WzQsM10sIi0tIjpbOCwzXSwiLSAuIjpbNCwzLDEsM10sIi0tLiI6WzgsMywxLDNdLCItLS4uIjpbOCwzLDEsMywxLDNdfSx2PWZ1bmN0aW9uKGEsYixkKXtpZihiPXVbYyhiKS50b0xvd2VyQ2FzZSgpXSl7Zm9yKHZhciBlPWEuYXR0cnNbInN0cm9rZS13aWR0aCJdfHwiMSIsZj17cm91bmQ6ZSxzcXVhcmU6ZSxidXR0OjB9W2EuYXR0cnNbInN0cm9rZS1saW5lY2FwIl18fGRbInN0cm9rZS1saW5lY2FwIl1dfHwwLGc9W10saD1iLmxlbmd0aDtoLS07KWdbaF09YltoXSplKyhoJTI/MTotMSkqZjtxKGEubm9kZSx7InN0cm9rZS1kYXNoYXJyYXkiOmcuam9pbigiLCIpfSl9ZWxzZSBxKGEubm9kZSx7InN0cm9rZS1kYXNoYXJyYXkiOiJub25lIn0pfSx3PWZ1bmN0aW9uKGQsZil7dmFyIGk9ZC5ub2RlLGs9ZC5hdHRycyxtPWkuc3R5bGUudmlzaWJpbGl0eTtpLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7Zm9yKHZhciBvIGluIGYpaWYoZltiXShvKSl7aWYoIWEuX2F2YWlsYWJsZUF0dHJzW2JdKG8pKWNvbnRpbnVlO3ZhciBwPWZbb107c3dpdGNoKGtbb109cCxvKXtjYXNlImJsdXIiOmQuYmx1cihwKTticmVhaztjYXNlInRpdGxlIjp2YXIgdT1pLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0aXRsZSIpO2lmKHUubGVuZ3RoJiYodT11WzBdKSl1LmZpcnN0Q2hpbGQubm9kZVZhbHVlPXA7ZWxzZXt1PXEoInRpdGxlIik7dmFyIHc9YS5fZy5kb2MuY3JlYXRlVGV4dE5vZGUocCk7dS5hcHBlbmRDaGlsZCh3KSxpLmFwcGVuZENoaWxkKHUpfWJyZWFrO2Nhc2UiaHJlZiI6Y2FzZSJ0YXJnZXQiOnZhciB4PWkucGFyZW50Tm9kZTtpZigiYSIhPXgudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXt2YXIgej1xKCJhIik7eC5pbnNlcnRCZWZvcmUoeixpKSx6LmFwcGVuZENoaWxkKGkpLHg9en0idGFyZ2V0Ij09bz94LnNldEF0dHJpYnV0ZU5TKG4sInNob3ciLCJibGFuayI9PXA/Im5ldyI6cCk6eC5zZXRBdHRyaWJ1dGVOUyhuLG8scCk7YnJlYWs7Y2FzZSJjdXJzb3IiOmkuc3R5bGUuY3Vyc29yPXA7YnJlYWs7Y2FzZSJ0cmFuc2Zvcm0iOmQudHJhbnNmb3JtKHApO2JyZWFrO2Nhc2UiYXJyb3ctc3RhcnQiOnQoZCxwKTticmVhaztjYXNlImFycm93LWVuZCI6dChkLHAsMSk7YnJlYWs7Y2FzZSJjbGlwLXJlY3QiOnZhciBBPWMocCkuc3BsaXQoaik7aWYoND09QS5sZW5ndGgpe2QuY2xpcCYmZC5jbGlwLnBhcmVudE5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkLmNsaXAucGFyZW50Tm9kZSk7dmFyIEI9cSgiY2xpcFBhdGgiKSxDPXEoInJlY3QiKTtCLmlkPWEuY3JlYXRlVVVJRCgpLHEoQyx7eDpBWzBdLHk6QVsxXSx3aWR0aDpBWzJdLGhlaWdodDpBWzNdfSksQi5hcHBlbmRDaGlsZChDKSxkLnBhcGVyLmRlZnMuYXBwZW5kQ2hpbGQoQikscShpLHsiY2xpcC1wYXRoIjoidXJsKCMiK0IuaWQrIikifSksZC5jbGlwPUN9aWYoIXApe3ZhciBEPWkuZ2V0QXR0cmlidXRlKCJjbGlwLXBhdGgiKTtpZihEKXt2YXIgRT1hLl9nLmRvYy5nZXRFbGVtZW50QnlJZChELnJlcGxhY2UoLyhedXJsXCgjfFwpJCkvZyxsKSk7RSYmRS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEUpLHEoaSx7ImNsaXAtcGF0aCI6bH0pLGRlbGV0ZSBkLmNsaXB9fWJyZWFrO2Nhc2UicGF0aCI6InBhdGgiPT1kLnR5cGUmJihxKGkse2Q6cD9rLnBhdGg9YS5fcGF0aFRvQWJzb2x1dGUocCk6Ik0wLDAifSksZC5fLmRpcnR5PTEsZC5fLmFycm93cyYmKCJzdGFydFN0cmluZyJpbiBkLl8uYXJyb3dzJiZ0KGQsZC5fLmFycm93cy5zdGFydFN0cmluZyksImVuZFN0cmluZyJpbiBkLl8uYXJyb3dzJiZ0KGQsZC5fLmFycm93cy5lbmRTdHJpbmcsMSkpKTticmVhaztjYXNlIndpZHRoIjppZihpLnNldEF0dHJpYnV0ZShvLHApLGQuXy5kaXJ0eT0xLCFrLmZ4KWJyZWFrO289IngiLHA9ay54O2Nhc2UieCI6ay5meCYmKHA9LWsueC0oay53aWR0aHx8MCkpO2Nhc2UicngiOmlmKCJyeCI9PW8mJiJyZWN0Ij09ZC50eXBlKWJyZWFrO2Nhc2UiY3giOmkuc2V0QXR0cmlidXRlKG8scCksZC5wYXR0ZXJuJiZzKGQpLGQuXy5kaXJ0eT0xO2JyZWFrO2Nhc2UiaGVpZ2h0IjppZihpLnNldEF0dHJpYnV0ZShvLHApLGQuXy5kaXJ0eT0xLCFrLmZ5KWJyZWFrO289InkiLHA9ay55O2Nhc2UieSI6ay5meSYmKHA9LWsueS0oay5oZWlnaHR8fDApKTtjYXNlInJ5IjppZigicnkiPT1vJiYicmVjdCI9PWQudHlwZSlicmVhaztjYXNlImN5IjppLnNldEF0dHJpYnV0ZShvLHApLGQucGF0dGVybiYmcyhkKSxkLl8uZGlydHk9MTticmVhaztjYXNlInIiOiJyZWN0Ij09ZC50eXBlP3EoaSx7cng6cCxyeTpwfSk6aS5zZXRBdHRyaWJ1dGUobyxwKSxkLl8uZGlydHk9MTticmVhaztjYXNlInNyYyI6ImltYWdlIj09ZC50eXBlJiZpLnNldEF0dHJpYnV0ZU5TKG4sImhyZWYiLHApO2JyZWFrO2Nhc2Uic3Ryb2tlLXdpZHRoIjooMSE9ZC5fLnN4fHwxIT1kLl8uc3kpJiYocC89ZyhoKGQuXy5zeCksaChkLl8uc3kpKXx8MSksaS5zZXRBdHRyaWJ1dGUobyxwKSxrWyJzdHJva2UtZGFzaGFycmF5Il0mJnYoZCxrWyJzdHJva2UtZGFzaGFycmF5Il0sZiksZC5fLmFycm93cyYmKCJzdGFydFN0cmluZyJpbiBkLl8uYXJyb3dzJiZ0KGQsZC5fLmFycm93cy5zdGFydFN0cmluZyksImVuZFN0cmluZyJpbiBkLl8uYXJyb3dzJiZ0KGQsZC5fLmFycm93cy5lbmRTdHJpbmcsMSkpO2JyZWFrO2Nhc2Uic3Ryb2tlLWRhc2hhcnJheSI6dihkLHAsZik7YnJlYWs7Y2FzZSJmaWxsIjp2YXIgRj1jKHApLm1hdGNoKGEuX0lTVVJMKTtpZihGKXtCPXEoInBhdHRlcm4iKTt2YXIgRz1xKCJpbWFnZSIpO0IuaWQ9YS5jcmVhdGVVVUlEKCkscShCLHt4OjAseTowLHBhdHRlcm5Vbml0czoidXNlclNwYWNlT25Vc2UiLGhlaWdodDoxLHdpZHRoOjF9KSxxKEcse3g6MCx5OjAsInhsaW5rOmhyZWYiOkZbMV19KSxCLmFwcGVuZENoaWxkKEcpLGZ1bmN0aW9uKGIpe2EuX3ByZWxvYWQoRlsxXSxmdW5jdGlvbigpe3ZhciBhPXRoaXMub2Zmc2V0V2lkdGgsYz10aGlzLm9mZnNldEhlaWdodDtxKGIse3dpZHRoOmEsaGVpZ2h0OmN9KSxxKEcse3dpZHRoOmEsaGVpZ2h0OmN9KX0pfShCKSxkLnBhcGVyLmRlZnMuYXBwZW5kQ2hpbGQoQikscShpLHtmaWxsOiJ1cmwoIyIrQi5pZCsiKSJ9KSxkLnBhdHRlcm49QixkLnBhdHRlcm4mJnMoZCk7YnJlYWt9dmFyIEg9YS5nZXRSR0IocCk7aWYoSC5lcnJvcil7aWYoKCJjaXJjbGUiPT1kLnR5cGV8fCJlbGxpcHNlIj09ZC50eXBlfHwiciIhPWMocCkuY2hhckF0KCkpJiZyKGQscCkpe2lmKCJvcGFjaXR5ImluIGt8fCJmaWxsLW9wYWNpdHkiaW4gayl7dmFyIEk9YS5fZy5kb2MuZ2V0RWxlbWVudEJ5SWQoaS5nZXRBdHRyaWJ1dGUoImZpbGwiKS5yZXBsYWNlKC9edXJsXCgjfFwpJC9nLGwpKTtpZihJKXt2YXIgSj1JLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzdG9wIik7cShKW0oubGVuZ3RoLTFdLHsic3RvcC1vcGFjaXR5IjooIm9wYWNpdHkiaW4gaz9rLm9wYWNpdHk6MSkqKCJmaWxsLW9wYWNpdHkiaW4gaz9rWyJmaWxsLW9wYWNpdHkiXToxKX0pfX1rLmdyYWRpZW50PXAsay5maWxsPSJub25lIjticmVha319ZWxzZSBkZWxldGUgZi5ncmFkaWVudCxkZWxldGUgay5ncmFkaWVudCwhYS5pcyhrLm9wYWNpdHksInVuZGVmaW5lZCIpJiZhLmlzKGYub3BhY2l0eSwidW5kZWZpbmVkIikmJnEoaSx7b3BhY2l0eTprLm9wYWNpdHl9KSwhYS5pcyhrWyJmaWxsLW9wYWNpdHkiXSwidW5kZWZpbmVkIikmJmEuaXMoZlsiZmlsbC1vcGFjaXR5Il0sInVuZGVmaW5lZCIpJiZxKGkseyJmaWxsLW9wYWNpdHkiOmtbImZpbGwtb3BhY2l0eSJdfSk7SFtiXSgib3BhY2l0eSIpJiZxKGkseyJmaWxsLW9wYWNpdHkiOkgub3BhY2l0eT4xP0gub3BhY2l0eS8xMDA6SC5vcGFjaXR5fSk7Y2FzZSJzdHJva2UiOkg9YS5nZXRSR0IocCksaS5zZXRBdHRyaWJ1dGUobyxILmhleCksInN0cm9rZSI9PW8mJkhbYl0oIm9wYWNpdHkiKSYmcShpLHsic3Ryb2tlLW9wYWNpdHkiOkgub3BhY2l0eT4xP0gub3BhY2l0eS8xMDA6SC5vcGFjaXR5fSksInN0cm9rZSI9PW8mJmQuXy5hcnJvd3MmJigic3RhcnRTdHJpbmciaW4gZC5fLmFycm93cyYmdChkLGQuXy5hcnJvd3Muc3RhcnRTdHJpbmcpLCJlbmRTdHJpbmciaW4gZC5fLmFycm93cyYmdChkLGQuXy5hcnJvd3MuZW5kU3RyaW5nLDEpKTticmVhaztjYXNlImdyYWRpZW50IjooImNpcmNsZSI9PWQudHlwZXx8ImVsbGlwc2UiPT1kLnR5cGV8fCJyIiE9YyhwKS5jaGFyQXQoKSkmJnIoZCxwKTsKCmJyZWFrO2Nhc2Uib3BhY2l0eSI6ay5ncmFkaWVudCYmIWtbYl0oInN0cm9rZS1vcGFjaXR5IikmJnEoaSx7InN0cm9rZS1vcGFjaXR5IjpwPjE/cC8xMDA6cH0pO2Nhc2UiZmlsbC1vcGFjaXR5IjppZihrLmdyYWRpZW50KXtJPWEuX2cuZG9jLmdldEVsZW1lbnRCeUlkKGkuZ2V0QXR0cmlidXRlKCJmaWxsIikucmVwbGFjZSgvXnVybFwoI3xcKSQvZyxsKSksSSYmKEo9SS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic3RvcCIpLHEoSltKLmxlbmd0aC0xXSx7InN0b3Atb3BhY2l0eSI6cH0pKTticmVha31kZWZhdWx0OiJmb250LXNpemUiPT1vJiYocD1lKHAsMTApKyJweCIpO3ZhciBLPW8ucmVwbGFjZSgvKFwtLikvZyxmdW5jdGlvbihhKXtyZXR1cm4gYS5zdWJzdHJpbmcoMSkudG9VcHBlckNhc2UoKX0pO2kuc3R5bGVbS109cCxkLl8uZGlydHk9MSxpLnNldEF0dHJpYnV0ZShvLHApfX15KGQsZiksaS5zdHlsZS52aXNpYmlsaXR5PW19LHg9MS4yLHk9ZnVuY3Rpb24oZCxmKXtpZigidGV4dCI9PWQudHlwZSYmKGZbYl0oInRleHQiKXx8ZltiXSgiZm9udCIpfHxmW2JdKCJmb250LXNpemUiKXx8ZltiXSgieCIpfHxmW2JdKCJ5IikpKXt2YXIgZz1kLmF0dHJzLGg9ZC5ub2RlLGk9aC5maXJzdENoaWxkP2UoYS5fZy5kb2MuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShoLmZpcnN0Q2hpbGQsbCkuZ2V0UHJvcGVydHlWYWx1ZSgiZm9udC1zaXplIiksMTApOjEwO2lmKGZbYl0oInRleHQiKSl7Zm9yKGcudGV4dD1mLnRleHQ7aC5maXJzdENoaWxkOyloLnJlbW92ZUNoaWxkKGguZmlyc3RDaGlsZCk7Zm9yKHZhciBqLGs9YyhmLnRleHQpLnNwbGl0KCJcbiIpLG09W10sbj0wLG89ay5sZW5ndGg7bz5uO24rKylqPXEoInRzcGFuIiksbiYmcShqLHtkeTppKngseDpnLnh9KSxqLmFwcGVuZENoaWxkKGEuX2cuZG9jLmNyZWF0ZVRleHROb2RlKGtbbl0pKSxoLmFwcGVuZENoaWxkKGopLG1bbl09an1lbHNlIGZvcihtPWguZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRzcGFuIiksbj0wLG89bS5sZW5ndGg7bz5uO24rKyluP3EobVtuXSx7ZHk6aSp4LHg6Zy54fSk6cShtWzBdLHtkeTowfSk7cShoLHt4OmcueCx5OmcueX0pLGQuXy5kaXJ0eT0xO3ZhciBwPWQuX2dldEJCb3goKSxyPWcueS0ocC55K3AuaGVpZ2h0LzIpO3ImJmEuaXMociwiZmluaXRlIikmJnEobVswXSx7ZHk6cn0pfX0sej1mdW5jdGlvbihhKXtyZXR1cm4gYS5wYXJlbnROb2RlJiYiYSI9PT1hLnBhcmVudE5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpP2EucGFyZW50Tm9kZTphfSxBPWZ1bmN0aW9uKGIsYyl7dGhpc1swXT10aGlzLm5vZGU9YixiLnJhcGhhZWw9ITAsdGhpcy5pZD1hLl9vaWQrKyxiLnJhcGhhZWxpZD10aGlzLmlkLHRoaXMubWF0cml4PWEubWF0cml4KCksdGhpcy5yZWFsUGF0aD1udWxsLHRoaXMucGFwZXI9Yyx0aGlzLmF0dHJzPXRoaXMuYXR0cnN8fHt9LHRoaXMuXz17dHJhbnNmb3JtOltdLHN4OjEsc3k6MSxkZWc6MCxkeDowLGR5OjAsZGlydHk6MX0sIWMuYm90dG9tJiYoYy5ib3R0b209dGhpcyksdGhpcy5wcmV2PWMudG9wLGMudG9wJiYoYy50b3AubmV4dD10aGlzKSxjLnRvcD10aGlzLHRoaXMubmV4dD1udWxsfSxCPWEuZWw7QS5wcm90b3R5cGU9QixCLmNvbnN0cnVjdG9yPUEsYS5fZW5naW5lLnBhdGg9ZnVuY3Rpb24oYSxiKXt2YXIgYz1xKCJwYXRoIik7Yi5jYW52YXMmJmIuY2FudmFzLmFwcGVuZENoaWxkKGMpO3ZhciBkPW5ldyBBKGMsYik7cmV0dXJuIGQudHlwZT0icGF0aCIsdyhkLHtmaWxsOiJub25lIixzdHJva2U6IiMwMDAiLHBhdGg6YX0pLGR9LEIucm90YXRlPWZ1bmN0aW9uKGEsYixlKXtpZih0aGlzLnJlbW92ZWQpcmV0dXJuIHRoaXM7aWYoYT1jKGEpLnNwbGl0KGopLGEubGVuZ3RoLTEmJihiPWQoYVsxXSksZT1kKGFbMl0pKSxhPWQoYVswXSksbnVsbD09ZSYmKGI9ZSksbnVsbD09Ynx8bnVsbD09ZSl7dmFyIGY9dGhpcy5nZXRCQm94KDEpO2I9Zi54K2Yud2lkdGgvMixlPWYueStmLmhlaWdodC8yfXJldHVybiB0aGlzLnRyYW5zZm9ybSh0aGlzLl8udHJhbnNmb3JtLmNvbmNhdChbWyJyIixhLGIsZV1dKSksdGhpc30sQi5zY2FsZT1mdW5jdGlvbihhLGIsZSxmKXtpZih0aGlzLnJlbW92ZWQpcmV0dXJuIHRoaXM7aWYoYT1jKGEpLnNwbGl0KGopLGEubGVuZ3RoLTEmJihiPWQoYVsxXSksZT1kKGFbMl0pLGY9ZChhWzNdKSksYT1kKGFbMF0pLG51bGw9PWImJihiPWEpLG51bGw9PWYmJihlPWYpLG51bGw9PWV8fG51bGw9PWYpdmFyIGc9dGhpcy5nZXRCQm94KDEpO3JldHVybiBlPW51bGw9PWU/Zy54K2cud2lkdGgvMjplLGY9bnVsbD09Zj9nLnkrZy5oZWlnaHQvMjpmLHRoaXMudHJhbnNmb3JtKHRoaXMuXy50cmFuc2Zvcm0uY29uY2F0KFtbInMiLGEsYixlLGZdXSkpLHRoaXN9LEIudHJhbnNsYXRlPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMucmVtb3ZlZD90aGlzOihhPWMoYSkuc3BsaXQoaiksYS5sZW5ndGgtMSYmKGI9ZChhWzFdKSksYT1kKGFbMF0pfHwwLGI9K2J8fDAsdGhpcy50cmFuc2Zvcm0odGhpcy5fLnRyYW5zZm9ybS5jb25jYXQoW1sidCIsYSxiXV0pKSx0aGlzKX0sQi50cmFuc2Zvcm09ZnVuY3Rpb24oYyl7dmFyIGQ9dGhpcy5fO2lmKG51bGw9PWMpcmV0dXJuIGQudHJhbnNmb3JtO2lmKGEuX2V4dHJhY3RUcmFuc2Zvcm0odGhpcyxjKSx0aGlzLmNsaXAmJnEodGhpcy5jbGlwLHt0cmFuc2Zvcm06dGhpcy5tYXRyaXguaW52ZXJ0KCl9KSx0aGlzLnBhdHRlcm4mJnModGhpcyksdGhpcy5ub2RlJiZxKHRoaXMubm9kZSx7dHJhbnNmb3JtOnRoaXMubWF0cml4fSksMSE9ZC5zeHx8MSE9ZC5zeSl7dmFyIGU9dGhpcy5hdHRyc1tiXSgic3Ryb2tlLXdpZHRoIik/dGhpcy5hdHRyc1sic3Ryb2tlLXdpZHRoIl06MTt0aGlzLmF0dHIoeyJzdHJva2Utd2lkdGgiOmV9KX1yZXR1cm4gdGhpc30sQi5oaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVtb3ZlZHx8KHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5PSJub25lIiksdGhpc30sQi5zaG93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVtb3ZlZHx8KHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5PSIiKSx0aGlzfSxCLnJlbW92ZT1mdW5jdGlvbigpe3ZhciBiPXoodGhpcy5ub2RlKTtpZighdGhpcy5yZW1vdmVkJiZiLnBhcmVudE5vZGUpe3ZhciBjPXRoaXMucGFwZXI7Yy5fX3NldF9fJiZjLl9fc2V0X18uZXhjbHVkZSh0aGlzKSxrLnVuYmluZCgicmFwaGFlbC4qLiouIit0aGlzLmlkKSx0aGlzLmdyYWRpZW50JiZjLmRlZnMucmVtb3ZlQ2hpbGQodGhpcy5ncmFkaWVudCksYS5fdGVhcih0aGlzLGMpLGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSx0aGlzLnJlbW92ZURhdGEoKTtmb3IodmFyIGQgaW4gdGhpcyl0aGlzW2RdPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW2RdP2EuX3JlbW92ZWRGYWN0b3J5KGQpOm51bGw7dGhpcy5yZW1vdmVkPSEwfX0sQi5fZ2V0QkJveD1mdW5jdGlvbigpe2lmKCJub25lIj09dGhpcy5ub2RlLnN0eWxlLmRpc3BsYXkpe3RoaXMuc2hvdygpO3ZhciBhPSEwfXZhciBiLGM9ITE7dGhpcy5wYXBlci5jYW52YXMucGFyZW50RWxlbWVudD9iPXRoaXMucGFwZXIuY2FudmFzLnBhcmVudEVsZW1lbnQuc3R5bGU6dGhpcy5wYXBlci5jYW52YXMucGFyZW50Tm9kZSYmKGI9dGhpcy5wYXBlci5jYW52YXMucGFyZW50Tm9kZS5zdHlsZSksYiYmIm5vbmUiPT1iLmRpc3BsYXkmJihjPSEwLGIuZGlzcGxheT0iIik7dmFyIGQ9e307dHJ5e2Q9dGhpcy5ub2RlLmdldEJCb3goKX1jYXRjaChlKXtkPXt4OnRoaXMubm9kZS5jbGllbnRMZWZ0LHk6dGhpcy5ub2RlLmNsaWVudFRvcCx3aWR0aDp0aGlzLm5vZGUuY2xpZW50V2lkdGgsaGVpZ2h0OnRoaXMubm9kZS5jbGllbnRIZWlnaHR9fWZpbmFsbHl7ZD1kfHx7fSxjJiYoYi5kaXNwbGF5PSJub25lIil9cmV0dXJuIGEmJnRoaXMuaGlkZSgpLGR9LEIuYXR0cj1mdW5jdGlvbihjLGQpe2lmKHRoaXMucmVtb3ZlZClyZXR1cm4gdGhpcztpZihudWxsPT1jKXt2YXIgZT17fTtmb3IodmFyIGYgaW4gdGhpcy5hdHRycyl0aGlzLmF0dHJzW2JdKGYpJiYoZVtmXT10aGlzLmF0dHJzW2ZdKTtyZXR1cm4gZS5ncmFkaWVudCYmIm5vbmUiPT1lLmZpbGwmJihlLmZpbGw9ZS5ncmFkaWVudCkmJmRlbGV0ZSBlLmdyYWRpZW50LGUudHJhbnNmb3JtPXRoaXMuXy50cmFuc2Zvcm0sZX1pZihudWxsPT1kJiZhLmlzKGMsInN0cmluZyIpKXtpZigiZmlsbCI9PWMmJiJub25lIj09dGhpcy5hdHRycy5maWxsJiZ0aGlzLmF0dHJzLmdyYWRpZW50KXJldHVybiB0aGlzLmF0dHJzLmdyYWRpZW50O2lmKCJ0cmFuc2Zvcm0iPT1jKXJldHVybiB0aGlzLl8udHJhbnNmb3JtO2Zvcih2YXIgZz1jLnNwbGl0KGopLGg9e30saT0wLGw9Zy5sZW5ndGg7bD5pO2krKyljPWdbaV0sYyBpbiB0aGlzLmF0dHJzP2hbY109dGhpcy5hdHRyc1tjXTphLmlzKHRoaXMucGFwZXIuY3VzdG9tQXR0cmlidXRlc1tjXSwiZnVuY3Rpb24iKT9oW2NdPXRoaXMucGFwZXIuY3VzdG9tQXR0cmlidXRlc1tjXS5kZWY6aFtjXT1hLl9hdmFpbGFibGVBdHRyc1tjXTtyZXR1cm4gbC0xP2g6aFtnWzBdXX1pZihudWxsPT1kJiZhLmlzKGMsImFycmF5Iikpe2ZvcihoPXt9LGk9MCxsPWMubGVuZ3RoO2w+aTtpKyspaFtjW2ldXT10aGlzLmF0dHIoY1tpXSk7cmV0dXJuIGh9aWYobnVsbCE9ZCl7dmFyIG09e307bVtjXT1kfWVsc2UgbnVsbCE9YyYmYS5pcyhjLCJvYmplY3QiKSYmKG09Yyk7Zm9yKHZhciBuIGluIG0paygicmFwaGFlbC5hdHRyLiIrbisiLiIrdGhpcy5pZCx0aGlzLG1bbl0pO2ZvcihuIGluIHRoaXMucGFwZXIuY3VzdG9tQXR0cmlidXRlcylpZih0aGlzLnBhcGVyLmN1c3RvbUF0dHJpYnV0ZXNbYl0obikmJm1bYl0obikmJmEuaXModGhpcy5wYXBlci5jdXN0b21BdHRyaWJ1dGVzW25dLCJmdW5jdGlvbiIpKXt2YXIgbz10aGlzLnBhcGVyLmN1c3RvbUF0dHJpYnV0ZXNbbl0uYXBwbHkodGhpcyxbXS5jb25jYXQobVtuXSkpO3RoaXMuYXR0cnNbbl09bVtuXTtmb3IodmFyIHAgaW4gbylvW2JdKHApJiYobVtwXT1vW3BdKX1yZXR1cm4gdyh0aGlzLG0pLHRoaXN9LEIudG9Gcm9udD1mdW5jdGlvbigpe2lmKHRoaXMucmVtb3ZlZClyZXR1cm4gdGhpczt2YXIgYj16KHRoaXMubm9kZSk7Yi5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGIpO3ZhciBjPXRoaXMucGFwZXI7cmV0dXJuIGMudG9wIT10aGlzJiZhLl90b2Zyb250KHRoaXMsYyksdGhpc30sQi50b0JhY2s9ZnVuY3Rpb24oKXtpZih0aGlzLnJlbW92ZWQpcmV0dXJuIHRoaXM7dmFyIGI9eih0aGlzLm5vZGUpLGM9Yi5wYXJlbnROb2RlO2MuaW5zZXJ0QmVmb3JlKGIsYy5maXJzdENoaWxkKSxhLl90b2JhY2sodGhpcyx0aGlzLnBhcGVyKTt0aGlzLnBhcGVyO3JldHVybiB0aGlzfSxCLmluc2VydEFmdGVyPWZ1bmN0aW9uKGIpe2lmKHRoaXMucmVtb3ZlZHx8IWIpcmV0dXJuIHRoaXM7dmFyIGM9eih0aGlzLm5vZGUpLGQ9eihiLm5vZGV8fGJbYi5sZW5ndGgtMV0ubm9kZSk7cmV0dXJuIGQubmV4dFNpYmxpbmc/ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLGQubmV4dFNpYmxpbmcpOmQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChjKSxhLl9pbnNlcnRhZnRlcih0aGlzLGIsdGhpcy5wYXBlciksdGhpc30sQi5pbnNlcnRCZWZvcmU9ZnVuY3Rpb24oYil7aWYodGhpcy5yZW1vdmVkfHwhYilyZXR1cm4gdGhpczt2YXIgYz16KHRoaXMubm9kZSksZD16KGIubm9kZXx8YlswXS5ub2RlKTtyZXR1cm4gZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShjLGQpLGEuX2luc2VydGJlZm9yZSh0aGlzLGIsdGhpcy5wYXBlciksdGhpc30sQi5ibHVyPWZ1bmN0aW9uKGIpe3ZhciBjPXRoaXM7aWYoMCE9PStiKXt2YXIgZD1xKCJmaWx0ZXIiKSxlPXEoImZlR2F1c3NpYW5CbHVyIik7Yy5hdHRycy5ibHVyPWIsZC5pZD1hLmNyZWF0ZVVVSUQoKSxxKGUse3N0ZERldmlhdGlvbjorYnx8MS41fSksZC5hcHBlbmRDaGlsZChlKSxjLnBhcGVyLmRlZnMuYXBwZW5kQ2hpbGQoZCksYy5fYmx1cj1kLHEoYy5ub2RlLHtmaWx0ZXI6InVybCgjIitkLmlkKyIpIn0pfWVsc2UgYy5fYmx1ciYmKGMuX2JsdXIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChjLl9ibHVyKSxkZWxldGUgYy5fYmx1cixkZWxldGUgYy5hdHRycy5ibHVyKSxjLm5vZGUucmVtb3ZlQXR0cmlidXRlKCJmaWx0ZXIiKTtyZXR1cm4gY30sYS5fZW5naW5lLmNpcmNsZT1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1xKCJjaXJjbGUiKTthLmNhbnZhcyYmYS5jYW52YXMuYXBwZW5kQ2hpbGQoZSk7dmFyIGY9bmV3IEEoZSxhKTtyZXR1cm4gZi5hdHRycz17Y3g6YixjeTpjLHI6ZCxmaWxsOiJub25lIixzdHJva2U6IiMwMDAifSxmLnR5cGU9ImNpcmNsZSIscShlLGYuYXR0cnMpLGZ9LGEuX2VuZ2luZS5yZWN0PWZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1xKCJyZWN0Iik7YS5jYW52YXMmJmEuY2FudmFzLmFwcGVuZENoaWxkKGcpO3ZhciBoPW5ldyBBKGcsYSk7cmV0dXJuIGguYXR0cnM9e3g6Yix5OmMsd2lkdGg6ZCxoZWlnaHQ6ZSxyeDpmfHwwLHJ5OmZ8fDAsZmlsbDoibm9uZSIsc3Ryb2tlOiIjMDAwIn0saC50eXBlPSJyZWN0IixxKGcsaC5hdHRycyksaH0sYS5fZW5naW5lLmVsbGlwc2U9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgZj1xKCJlbGxpcHNlIik7YS5jYW52YXMmJmEuY2FudmFzLmFwcGVuZENoaWxkKGYpO3ZhciBnPW5ldyBBKGYsYSk7cmV0dXJuIGcuYXR0cnM9e2N4OmIsY3k6YyxyeDpkLHJ5OmUsZmlsbDoibm9uZSIsc3Ryb2tlOiIjMDAwIn0sZy50eXBlPSJlbGxpcHNlIixxKGYsZy5hdHRycyksZ30sYS5fZW5naW5lLmltYWdlPWZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgZz1xKCJpbWFnZSIpO3EoZyx7eDpjLHk6ZCx3aWR0aDplLGhlaWdodDpmLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSksZy5zZXRBdHRyaWJ1dGVOUyhuLCJocmVmIixiKSxhLmNhbnZhcyYmYS5jYW52YXMuYXBwZW5kQ2hpbGQoZyk7dmFyIGg9bmV3IEEoZyxhKTtyZXR1cm4gaC5hdHRycz17eDpjLHk6ZCx3aWR0aDplLGhlaWdodDpmLHNyYzpifSxoLnR5cGU9ImltYWdlIixofSxhLl9lbmdpbmUudGV4dD1mdW5jdGlvbihiLGMsZCxlKXt2YXIgZj1xKCJ0ZXh0Iik7Yi5jYW52YXMmJmIuY2FudmFzLmFwcGVuZENoaWxkKGYpO3ZhciBnPW5ldyBBKGYsYik7cmV0dXJuIGcuYXR0cnM9e3g6Yyx5OmQsInRleHQtYW5jaG9yIjoibWlkZGxlIix0ZXh0OmUsImZvbnQtZmFtaWx5IjphLl9hdmFpbGFibGVBdHRyc1siZm9udC1mYW1pbHkiXSwiZm9udC1zaXplIjphLl9hdmFpbGFibGVBdHRyc1siZm9udC1zaXplIl0sc3Ryb2tlOiJub25lIixmaWxsOiIjMDAwIn0sZy50eXBlPSJ0ZXh0Iix3KGcsZy5hdHRycyksZ30sYS5fZW5naW5lLnNldFNpemU9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy53aWR0aD1hfHx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0PWJ8fHRoaXMuaGVpZ2h0LHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgid2lkdGgiLHRoaXMud2lkdGgpLHRoaXMuY2FudmFzLnNldEF0dHJpYnV0ZSgiaGVpZ2h0Iix0aGlzLmhlaWdodCksdGhpcy5fdmlld0JveCYmdGhpcy5zZXRWaWV3Qm94LmFwcGx5KHRoaXMsdGhpcy5fdmlld0JveCksdGhpc30sYS5fZW5naW5lLmNyZWF0ZT1mdW5jdGlvbigpe3ZhciBiPWEuX2dldENvbnRhaW5lci5hcHBseSgwLGFyZ3VtZW50cyksYz1iJiZiLmNvbnRhaW5lcixkPWIueCxlPWIueSxmPWIud2lkdGgsZz1iLmhlaWdodDtpZighYyl0aHJvdyBuZXcgRXJyb3IoIlNWRyBjb250YWluZXIgbm90IGZvdW5kLiIpO3ZhciBoLGk9cSgic3ZnIiksaj0ib3ZlcmZsb3c6aGlkZGVuOyI7cmV0dXJuIGQ9ZHx8MCxlPWV8fDAsZj1mfHw1MTIsZz1nfHwzNDIscShpLHtoZWlnaHQ6Zyx2ZXJzaW9uOjEuMSx3aWR0aDpmLHhtbG5zOiJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInhtbG5zOnhsaW5rIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayJ9KSwxPT1jPyhpLnN0eWxlLmNzc1RleHQ9aisicG9zaXRpb246YWJzb2x1dGU7bGVmdDoiK2QrInB4O3RvcDoiK2UrInB4IixhLl9nLmRvYy5ib2R5LmFwcGVuZENoaWxkKGkpLGg9MSk6KGkuc3R5bGUuY3NzVGV4dD1qKyJwb3NpdGlvbjpyZWxhdGl2ZSIsYy5maXJzdENoaWxkP2MuaW5zZXJ0QmVmb3JlKGksYy5maXJzdENoaWxkKTpjLmFwcGVuZENoaWxkKGkpKSxjPW5ldyBhLl9QYXBlcixjLndpZHRoPWYsYy5oZWlnaHQ9ZyxjLmNhbnZhcz1pLGMuY2xlYXIoKSxjLl9sZWZ0PWMuX3RvcD0wLGgmJihjLnJlbmRlcmZpeD1mdW5jdGlvbigpe30pLGMucmVuZGVyZml4KCksY30sYS5fZW5naW5lLnNldFZpZXdCb3g9ZnVuY3Rpb24oYSxiLGMsZCxlKXtrKCJyYXBoYWVsLnNldFZpZXdCb3giLHRoaXMsdGhpcy5fdmlld0JveCxbYSxiLGMsZCxlXSk7dmFyIGYsaCxpPXRoaXMuZ2V0U2l6ZSgpLGo9ZyhjL2kud2lkdGgsZC9pLmhlaWdodCksbD10aGlzLnRvcCxuPWU/InhNaWRZTWlkIG1lZXQiOiJ4TWluWU1pbiI7Zm9yKG51bGw9PWE/KHRoaXMuX3ZiU2l6ZSYmKGo9MSksZGVsZXRlIHRoaXMuX3ZiU2l6ZSxmPSIwIDAgIit0aGlzLndpZHRoK20rdGhpcy5oZWlnaHQpOih0aGlzLl92YlNpemU9aixmPWErbStiK20rYyttK2QpLHEodGhpcy5jYW52YXMse3ZpZXdCb3g6ZixwcmVzZXJ2ZUFzcGVjdFJhdGlvOm59KTtqJiZsOyloPSJzdHJva2Utd2lkdGgiaW4gbC5hdHRycz9sLmF0dHJzWyJzdHJva2Utd2lkdGgiXToxLGwuYXR0cih7InN0cm9rZS13aWR0aCI6aH0pLGwuXy5kaXJ0eT0xLGwuXy5kaXJ0eVQ9MSxsPWwucHJldjtyZXR1cm4gdGhpcy5fdmlld0JveD1bYSxiLGMsZCwhIWVdLHRoaXN9LGEucHJvdG90eXBlLnJlbmRlcmZpeD1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy5jYW52YXMsYz1iLnN0eWxlO3RyeXthPWIuZ2V0U2NyZWVuQ1RNKCl8fGIuY3JlYXRlU1ZHTWF0cml4KCl9Y2F0Y2goZCl7YT1iLmNyZWF0ZVNWR01hdHJpeCgpfXZhciBlPS1hLmUlMSxmPS1hLmYlMTsoZXx8ZikmJihlJiYodGhpcy5fbGVmdD0odGhpcy5fbGVmdCtlKSUxLGMubGVmdD10aGlzLl9sZWZ0KyJweCIpLGYmJih0aGlzLl90b3A9KHRoaXMuX3RvcCtmKSUxLGMudG9wPXRoaXMuX3RvcCsicHgiKSl9LGEucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7YS5ldmUoInJhcGhhZWwuY2xlYXIiLHRoaXMpO2Zvcih2YXIgYj10aGlzLmNhbnZhcztiLmZpcnN0Q2hpbGQ7KWIucmVtb3ZlQ2hpbGQoYi5maXJzdENoaWxkKTt0aGlzLmJvdHRvbT10aGlzLnRvcD1udWxsLCh0aGlzLmRlc2M9cSgiZGVzYyIpKS5hcHBlbmRDaGlsZChhLl9nLmRvYy5jcmVhdGVUZXh0Tm9kZSgiQ3JlYXRlZCB3aXRoIFJhcGhhw6tsICIrYS52ZXJzaW9uKSksYi5hcHBlbmRDaGlsZCh0aGlzLmRlc2MpLGIuYXBwZW5kQ2hpbGQodGhpcy5kZWZzPXEoImRlZnMiKSl9LGEucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe2soInJhcGhhZWwucmVtb3ZlIix0aGlzKSx0aGlzLmNhbnZhcy5wYXJlbnROb2RlJiZ0aGlzLmNhbnZhcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY2FudmFzKTtmb3IodmFyIGIgaW4gdGhpcyl0aGlzW2JdPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW2JdP2EuX3JlbW92ZWRGYWN0b3J5KGIpOm51bGx9O3ZhciBDPWEuc3Q7Zm9yKHZhciBEIGluIEIpQltiXShEKSYmIUNbYl0oRCkmJihDW0RdPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBiPWFyZ3VtZW50cztyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2NbYV0uYXBwbHkoYyxiKX0pfX0oRCkpfX0pLGZ1bmN0aW9uKGEsYil7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoInJhcGhhZWwudm1sIixbInJhcGhhZWwuY29yZSJdLGZ1bmN0aW9uKGEpe3JldHVybiBiKGEpfSk6Yigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM/cmVxdWlyZSgiLi9yYXBoYWVsLmNvcmUiKTphLlJhcGhhZWwpfSh0aGlzLGZ1bmN0aW9uKGEpe2lmKCFhfHxhLnZtbCl7dmFyIGI9Imhhc093blByb3BlcnR5IixjPVN0cmluZyxkPXBhcnNlRmxvYXQsZT1NYXRoLGY9ZS5yb3VuZCxnPWUubWF4LGg9ZS5taW4saT1lLmFicyxqPSJmaWxsIixrPS9bLCBdKy8sbD1hLmV2ZSxtPSIgcHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0IixuPSIgIixvPSIiLHA9e006Im0iLEw6ImwiLEM6ImMiLFo6IngiLG06InQiLGw6InIiLGM6InYiLHo6IngifSxxPS8oW2NsbXpdKSw/KFteY2xtel0qKS9naSxyPS8gcHJvZ2lkOlxTK0JsdXJcKFteXCldK1wpL2cscz0vLT9bXixccy1dKy9nLHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKSIsdT0yMTYwMCx2PXtwYXRoOjEscmVjdDoxLGltYWdlOjF9LHc9e2NpcmNsZToxLGVsbGlwc2U6MX0seD1mdW5jdGlvbihiKXt2YXIgZD0vW2FocXN0dl0vZ2ksZT1hLl9wYXRoVG9BYnNvbHV0ZTtpZihjKGIpLm1hdGNoKGQpJiYoZT1hLl9wYXRoMmN1cnZlKSxkPS9bY2xtel0vZyxlPT1hLl9wYXRoVG9BYnNvbHV0ZSYmIWMoYikubWF0Y2goZCkpe3ZhciBnPWMoYikucmVwbGFjZShxLGZ1bmN0aW9uKGEsYixjKXt2YXIgZD1bXSxlPSJtIj09Yi50b0xvd2VyQ2FzZSgpLGc9cFtiXTtyZXR1cm4gYy5yZXBsYWNlKHMsZnVuY3Rpb24oYSl7ZSYmMj09ZC5sZW5ndGgmJihnKz1kK3BbIm0iPT1iPyJsIjoiTCJdLGQ9W10pLGQucHVzaChmKGEqdSkpfSksZytkfSk7cmV0dXJuIGd9dmFyIGgsaSxqPWUoYik7Zz1bXTtmb3IodmFyIGs9MCxsPWoubGVuZ3RoO2w+aztrKyspe2g9altrXSxpPWpba11bMF0udG9Mb3dlckNhc2UoKSwieiI9PWkmJihpPSJ4Iik7Zm9yKHZhciBtPTEscj1oLmxlbmd0aDtyPm07bSsrKWkrPWYoaFttXSp1KSsobSE9ci0xPyIsIjpvKTtnLnB1c2goaSl9cmV0dXJuIGcuam9pbihuKX0seT1mdW5jdGlvbihiLGMsZCl7dmFyIGU9YS5tYXRyaXgoKTtyZXR1cm4gZS5yb3RhdGUoLWIsLjUsLjUpLHtkeDplLngoYyxkKSxkeTplLnkoYyxkKX19LHo9ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe3ZhciBnPWEuXyxoPWEubWF0cml4LGs9Zy5maWxscG9zLGw9YS5ub2RlLG09bC5zdHlsZSxvPTEscD0iIixxPXUvYixyPXUvYztpZihtLnZpc2liaWxpdHk9ImhpZGRlbiIsYiYmYyl7aWYobC5jb29yZHNpemU9aShxKStuK2kociksbS5yb3RhdGlvbj1mKigwPmIqYz8tMToxKSxmKXt2YXIgcz15KGYsZCxlKTtkPXMuZHgsZT1zLmR5fWlmKDA+YiYmKHArPSJ4IiksMD5jJiYocCs9IiB5IikmJihvPS0xKSxtLmZsaXA9cCxsLmNvb3Jkb3JpZ2luPWQqLXErbitlKi1yLGt8fGcuZmlsbHNpemUpe3ZhciB0PWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaik7dD10JiZ0WzBdLGwucmVtb3ZlQ2hpbGQodCksayYmKHM9eShmLGgueChrWzBdLGtbMV0pLGgueShrWzBdLGtbMV0pKSx0LnBvc2l0aW9uPXMuZHgqbytuK3MuZHkqbyksZy5maWxsc2l6ZSYmKHQuc2l6ZT1nLmZpbGxzaXplWzBdKmkoYikrbitnLmZpbGxzaXplWzFdKmkoYykpLGwuYXBwZW5kQ2hpbGQodCl9bS52aXNpYmlsaXR5PSJ2aXNpYmxlIn19O2EudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iWW91ciBicm93c2VyIGRvZXNu4oCZdCBzdXBwb3J0IFNWRy4gRmFsbGluZyBkb3duIHRvIFZNTC5cbllvdSBhcmUgcnVubmluZyBSYXBoYcOrbCAiK3RoaXMudmVyc2lvbn07dmFyIEE9ZnVuY3Rpb24oYSxiLGQpe2Zvcih2YXIgZT1jKGIpLnRvTG93ZXJDYXNlKCkuc3BsaXQoIi0iKSxmPWQ/ImVuZCI6InN0YXJ0IixnPWUubGVuZ3RoLGg9ImNsYXNzaWMiLGk9Im1lZGl1bSIsaj0ibWVkaXVtIjtnLS07KXN3aXRjaChlW2ddKXtjYXNlImJsb2NrIjpjYXNlImNsYXNzaWMiOmNhc2Uib3ZhbCI6Y2FzZSJkaWFtb25kIjpjYXNlIm9wZW4iOmNhc2Uibm9uZSI6aD1lW2ddO2JyZWFrO2Nhc2Uid2lkZSI6Y2FzZSJuYXJyb3ciOmo9ZVtnXTticmVhaztjYXNlImxvbmciOmNhc2Uic2hvcnQiOmk9ZVtnXX12YXIgaz1hLm5vZGUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9rZSIpWzBdO2tbZisiYXJyb3ciXT1oLGtbZisiYXJyb3dsZW5ndGgiXT1pLGtbZisiYXJyb3d3aWR0aCJdPWp9LEI9ZnVuY3Rpb24oZSxpKXtlLmF0dHJzPWUuYXR0cnN8fHt9O3ZhciBsPWUubm9kZSxtPWUuYXR0cnMscD1sLnN0eWxlLHE9dltlLnR5cGVdJiYoaS54IT1tLnh8fGkueSE9bS55fHxpLndpZHRoIT1tLndpZHRofHxpLmhlaWdodCE9bS5oZWlnaHR8fGkuY3ghPW0uY3h8fGkuY3khPW0uY3l8fGkucnghPW0ucnh8fGkucnkhPW0ucnl8fGkuciE9bS5yKSxyPXdbZS50eXBlXSYmKG0uY3ghPWkuY3h8fG0uY3khPWkuY3l8fG0uciE9aS5yfHxtLnJ4IT1pLnJ4fHxtLnJ5IT1pLnJ5KSxzPWU7Zm9yKHZhciB0IGluIGkpaVtiXSh0KSYmKG1bdF09aVt0XSk7aWYocSYmKG0ucGF0aD1hLl9nZXRQYXRoW2UudHlwZV0oZSksZS5fLmRpcnR5PTEpLGkuaHJlZiYmKGwuaHJlZj1pLmhyZWYpLGkudGl0bGUmJihsLnRpdGxlPWkudGl0bGUpLGkudGFyZ2V0JiYobC50YXJnZXQ9aS50YXJnZXQpLGkuY3Vyc29yJiYocC5jdXJzb3I9aS5jdXJzb3IpLCJibHVyImluIGkmJmUuYmx1cihpLmJsdXIpLChpLnBhdGgmJiJwYXRoIj09ZS50eXBlfHxxKSYmKGwucGF0aD14KH5jKG0ucGF0aCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJyIik/YS5fcGF0aFRvQWJzb2x1dGUobS5wYXRoKTptLnBhdGgpLGUuXy5kaXJ0eT0xLCJpbWFnZSI9PWUudHlwZSYmKGUuXy5maWxscG9zPVttLngsbS55XSxlLl8uZmlsbHNpemU9W20ud2lkdGgsbS5oZWlnaHRdLHooZSwxLDEsMCwwLDApKSksInRyYW5zZm9ybSJpbiBpJiZlLnRyYW5zZm9ybShpLnRyYW5zZm9ybSkscil7dmFyIHk9K20uY3gsQj0rbS5jeSxEPSttLnJ4fHwrbS5yfHwwLEU9K20ucnl8fCttLnJ8fDA7bC5wYXRoPWEuZm9ybWF0KCJhcnswfSx7MX0sezJ9LHszfSx7NH0sezF9LHs0fSx7MX14IixmKCh5LUQpKnUpLGYoKEItRSkqdSksZigoeStEKSp1KSxmKChCK0UpKnUpLGYoeSp1KSksZS5fLmRpcnR5PTF9aWYoImNsaXAtcmVjdCJpbiBpKXt2YXIgRz1jKGlbImNsaXAtcmVjdCJdKS5zcGxpdChrKTtpZig0PT1HLmxlbmd0aCl7R1syXT0rR1syXSsgK0dbMF0sR1szXT0rR1szXSsgK0dbMV07dmFyIEg9bC5jbGlwUmVjdHx8YS5fZy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2IiksST1ILnN0eWxlO0kuY2xpcD1hLmZvcm1hdCgicmVjdCh7MX1weCB7Mn1weCB7M31weCB7MH1weCkiLEcpLGwuY2xpcFJlY3R8fChJLnBvc2l0aW9uPSJhYnNvbHV0ZSIsSS50b3A9MCxJLmxlZnQ9MCxJLndpZHRoPWUucGFwZXIud2lkdGgrInB4IixJLmhlaWdodD1lLnBhcGVyLmhlaWdodCsicHgiLGwucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoSCxsKSxILmFwcGVuZENoaWxkKGwpLGwuY2xpcFJlY3Q9SCl9aVsiY2xpcC1yZWN0Il18fGwuY2xpcFJlY3QmJihsLmNsaXBSZWN0LnN0eWxlLmNsaXA9ImF1dG8iKX1pZihlLnRleHRwYXRoKXt2YXIgSj1lLnRleHRwYXRoLnN0eWxlO2kuZm9udCYmKEouZm9udD1pLmZvbnQpLGlbImZvbnQtZmFtaWx5Il0mJihKLmZvbnRGYW1pbHk9JyInK2lbImZvbnQtZmFtaWx5Il0uc3BsaXQoIiwiKVswXS5yZXBsYWNlKC9eWyciXSt8WyciXSskL2csbykrJyInKSxpWyJmb250LXNpemUiXSYmKEouZm9udFNpemU9aVsiZm9udC1zaXplIl0pLGlbImZvbnQtd2VpZ2h0Il0mJihKLmZvbnRXZWlnaHQ9aVsiZm9udC13ZWlnaHQiXSksaVsiZm9udC1zdHlsZSJdJiYoSi5mb250U3R5bGU9aVsiZm9udC1zdHlsZSJdKX1pZigiYXJyb3ctc3RhcnQiaW4gaSYmQShzLGlbImFycm93LXN0YXJ0Il0pLCJhcnJvdy1lbmQiaW4gaSYmQShzLGlbImFycm93LWVuZCJdLDEpLG51bGwhPWkub3BhY2l0eXx8bnVsbCE9aVsic3Ryb2tlLXdpZHRoIl18fG51bGwhPWkuZmlsbHx8bnVsbCE9aS5zcmN8fG51bGwhPWkuc3Ryb2tlfHxudWxsIT1pWyJzdHJva2Utd2lkdGgiXXx8bnVsbCE9aVsic3Ryb2tlLW9wYWNpdHkiXXx8bnVsbCE9aVsiZmlsbC1vcGFjaXR5Il18fG51bGwhPWlbInN0cm9rZS1kYXNoYXJyYXkiXXx8bnVsbCE9aVsic3Ryb2tlLW1pdGVybGltaXQiXXx8bnVsbCE9aVsic3Ryb2tlLWxpbmVqb2luIl18fG51bGwhPWlbInN0cm9rZS1saW5lY2FwIl0pe3ZhciBLPWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaiksTD0hMTtpZihLPUsmJktbMF0sIUsmJihMPUs9RihqKSksImltYWdlIj09ZS50eXBlJiZpLnNyYyYmKEsuc3JjPWkuc3JjKSxpLmZpbGwmJihLLm9uPSEwKSwobnVsbD09Sy5vbnx8Im5vbmUiPT1pLmZpbGx8fG51bGw9PT1pLmZpbGwpJiYoSy5vbj0hMSksSy5vbiYmaS5maWxsKXt2YXIgTT1jKGkuZmlsbCkubWF0Y2goYS5fSVNVUkwpO2lmKE0pe0sucGFyZW50Tm9kZT09bCYmbC5yZW1vdmVDaGlsZChLKSxLLnJvdGF0ZT0hMCxLLnNyYz1NWzFdLEsudHlwZT0idGlsZSI7dmFyIE49ZS5nZXRCQm94KDEpO0sucG9zaXRpb249Ti54K24rTi55LGUuXy5maWxscG9zPVtOLngsTi55XSxhLl9wcmVsb2FkKE1bMV0sZnVuY3Rpb24oKXtlLl8uZmlsbHNpemU9W3RoaXMub2Zmc2V0V2lkdGgsdGhpcy5vZmZzZXRIZWlnaHRdfSl9ZWxzZSBLLmNvbG9yPWEuZ2V0UkdCKGkuZmlsbCkuaGV4LEsuc3JjPW8sSy50eXBlPSJzb2xpZCIsYS5nZXRSR0IoaS5maWxsKS5lcnJvciYmKHMudHlwZSBpbntjaXJjbGU6MSxlbGxpcHNlOjF9fHwiciIhPWMoaS5maWxsKS5jaGFyQXQoKSkmJkMocyxpLmZpbGwsSykmJihtLmZpbGw9Im5vbmUiLG0uZ3JhZGllbnQ9aS5maWxsLEsucm90YXRlPSExKX1pZigiZmlsbC1vcGFjaXR5ImluIGl8fCJvcGFjaXR5ImluIGkpe3ZhciBPPSgoK21bImZpbGwtb3BhY2l0eSJdKzF8fDIpLTEpKigoK20ub3BhY2l0eSsxfHwyKS0xKSooKCthLmdldFJHQihpLmZpbGwpLm8rMXx8MiktMSk7Tz1oKGcoTywwKSwxKSxLLm9wYWNpdHk9TyxLLnNyYyYmKEsuY29sb3I9Im5vbmUiKX1sLmFwcGVuZENoaWxkKEspO3ZhciBQPWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInN0cm9rZSIpJiZsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzdHJva2UiKVswXSxRPSExOyFQJiYoUT1QPUYoInN0cm9rZSIpKSwoaS5zdHJva2UmJiJub25lIiE9aS5zdHJva2V8fGlbInN0cm9rZS13aWR0aCJdfHxudWxsIT1pWyJzdHJva2Utb3BhY2l0eSJdfHxpWyJzdHJva2UtZGFzaGFycmF5Il18fGlbInN0cm9rZS1taXRlcmxpbWl0Il18fGlbInN0cm9rZS1saW5lam9pbiJdfHxpWyJzdHJva2UtbGluZWNhcCJdKSYmKFAub249ITApLCgibm9uZSI9PWkuc3Ryb2tlfHxudWxsPT09aS5zdHJva2V8fG51bGw9PVAub258fDA9PWkuc3Ryb2tlfHwwPT1pWyJzdHJva2Utd2lkdGgiXSkmJihQLm9uPSExKTt2YXIgUj1hLmdldFJHQihpLnN0cm9rZSk7UC5vbiYmaS5zdHJva2UmJihQLmNvbG9yPVIuaGV4KSxPPSgoK21bInN0cm9rZS1vcGFjaXR5Il0rMXx8MiktMSkqKCgrbS5vcGFjaXR5KzF8fDIpLTEpKigoK1IubysxfHwyKS0xKTt2YXIgUz0uNzUqKGQoaVsic3Ryb2tlLXdpZHRoIl0pfHwxKTtpZihPPWgoZyhPLDApLDEpLG51bGw9PWlbInN0cm9rZS13aWR0aCJdJiYoUz1tWyJzdHJva2Utd2lkdGgiXSksaVsic3Ryb2tlLXdpZHRoIl0mJihQLndlaWdodD1TKSxTJiYxPlMmJihPKj1TKSYmKFAud2VpZ2h0PTEpLFAub3BhY2l0eT1PLGlbInN0cm9rZS1saW5lam9pbiJdJiYoUC5qb2luc3R5bGU9aVsic3Ryb2tlLWxpbmVqb2luIl18fCJtaXRlciIpLFAubWl0ZXJsaW1pdD1pWyJzdHJva2UtbWl0ZXJsaW1pdCJdfHw4LGlbInN0cm9rZS1saW5lY2FwIl0mJihQLmVuZGNhcD0iYnV0dCI9PWlbInN0cm9rZS1saW5lY2FwIl0/ImZsYXQiOiJzcXVhcmUiPT1pWyJzdHJva2UtbGluZWNhcCJdPyJzcXVhcmUiOiJyb3VuZCIpLCJzdHJva2UtZGFzaGFycmF5ImluIGkpe3ZhciBUPXsiLSI6InNob3J0ZGFzaCIsIi4iOiJzaG9ydGRvdCIsIi0uIjoic2hvcnRkYXNoZG90IiwiLS4uIjoic2hvcnRkYXNoZG90ZG90IiwiLiAiOiJkb3QiLCItICI6ImRhc2giLCItLSI6ImxvbmdkYXNoIiwiLSAuIjoiZGFzaGRvdCIsIi0tLiI6ImxvbmdkYXNoZG90IiwiLS0uLiI6ImxvbmdkYXNoZG90ZG90In07UC5kYXNoc3R5bGU9VFtiXShpWyJzdHJva2UtZGFzaGFycmF5Il0pP1RbaVsic3Ryb2tlLWRhc2hhcnJheSJdXTpvfVEmJmwuYXBwZW5kQ2hpbGQoUCl9aWYoInRleHQiPT1zLnR5cGUpe3MucGFwZXIuY2FudmFzLnN0eWxlLmRpc3BsYXk9bzt2YXIgVT1zLnBhcGVyLnNwYW4sVj0xMDAsVz1tLmZvbnQmJm0uZm9udC5tYXRjaCgvXGQrKD86XC5cZCopPyg/PXB4KS8pO3A9VS5zdHlsZSxtLmZvbnQmJihwLmZvbnQ9bS5mb250KSxtWyJmb250LWZhbWlseSJdJiYocC5mb250RmFtaWx5PW1bImZvbnQtZmFtaWx5Il0pLG1bImZvbnQtd2VpZ2h0Il0mJihwLmZvbnRXZWlnaHQ9bVsiZm9udC13ZWlnaHQiXSksbVsiZm9udC1zdHlsZSJdJiYocC5mb250U3R5bGU9bVsiZm9udC1zdHlsZSJdKSxXPWQobVsiZm9udC1zaXplIl18fFcmJldbMF0pfHwxMCxwLmZvbnRTaXplPVcqVisicHgiLHMudGV4dHBhdGguc3RyaW5nJiYoVS5pbm5lckhUTUw9YyhzLnRleHRwYXRoLnN0cmluZykucmVwbGFjZSgvPC9nLCImIzYwOyIpLnJlcGxhY2UoLyYvZywiJiMzODsiKS5yZXBsYWNlKC9cbi9nLCI8YnI+IikpO3ZhciBYPVUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cy5XPW0udz0oWC5yaWdodC1YLmxlZnQpL1Yscy5IPW0uaD0oWC5ib3R0b20tWC50b3ApL1Yscy5YPW0ueCxzLlk9bS55K3MuSC8yLCgieCJpbiBpfHwieSJpbiBpKSYmKHMucGF0aC52PWEuZm9ybWF0KCJtezB9LHsxfWx7Mn0sezF9IixmKG0ueCp1KSxmKG0ueSp1KSxmKG0ueCp1KSsxKSk7Zm9yKHZhciBZPVsieCIsInkiLCJ0ZXh0IiwiZm9udCIsImZvbnQtZmFtaWx5IiwiZm9udC13ZWlnaHQiLCJmb250LXN0eWxlIiwiZm9udC1zaXplIl0sWj0wLCQ9WS5sZW5ndGg7JD5aO1orKylpZihZW1pdaW4gaSl7cy5fLmRpcnR5PTE7YnJlYWt9c3dpdGNoKG1bInRleHQtYW5jaG9yIl0pe2Nhc2Uic3RhcnQiOnMudGV4dHBhdGguc3R5bGVbInYtdGV4dC1hbGlnbiJdPSJsZWZ0IixzLmJieD1zLlcvMjticmVhaztjYXNlImVuZCI6cy50ZXh0cGF0aC5zdHlsZVsidi10ZXh0LWFsaWduIl09InJpZ2h0IixzLmJieD0tcy5XLzI7YnJlYWs7ZGVmYXVsdDpzLnRleHRwYXRoLnN0eWxlWyJ2LXRleHQtYWxpZ24iXT0iY2VudGVyIixzLmJieD0wfXMudGV4dHBhdGguc3R5bGVbInYtdGV4dC1rZXJuIl09ITB9fSxDPWZ1bmN0aW9uKGIsZixnKXtiLmF0dHJzPWIuYXR0cnN8fHt9O3ZhciBoPShiLmF0dHJzLE1hdGgucG93KSxpPSJsaW5lYXIiLGo9Ii41IC41IjtpZihiLmF0dHJzLmdyYWRpZW50PWYsZj1jKGYpLnJlcGxhY2UoYS5fcmFkaWFsX2dyYWRpZW50LGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gaT0icmFkaWFsIixiJiZjJiYoYj1kKGIpLGM9ZChjKSxoKGItLjUsMikraChjLS41LDIpPi4yNSYmKGM9ZS5zcXJ0KC4yNS1oKGItLjUsMikpKigyKihjPi41KS0xKSsuNSksaj1iK24rYyksb30pLGY9Zi5zcGxpdCgvXHMqXC1ccyovKSwibGluZWFyIj09aSl7dmFyIGs9Zi5zaGlmdCgpO2lmKGs9LWQoayksaXNOYU4oaykpcmV0dXJuIG51bGx9dmFyIGw9YS5fcGFyc2VEb3RzKGYpO2lmKCFsKXJldHVybiBudWxsO2lmKGI9Yi5zaGFwZXx8Yi5ub2RlLGwubGVuZ3RoKXtiLnJlbW92ZUNoaWxkKGcpLGcub249ITAsZy5tZXRob2Q9Im5vbmUiLGcuY29sb3I9bFswXS5jb2xvcixnLmNvbG9yMj1sW2wubGVuZ3RoLTFdLmNvbG9yO2Zvcih2YXIgbT1bXSxwPTAscT1sLmxlbmd0aDtxPnA7cCsrKWxbcF0ub2Zmc2V0JiZtLnB1c2gobFtwXS5vZmZzZXQrbitsW3BdLmNvbG9yKTtnLmNvbG9ycz1tLmxlbmd0aD9tLmpvaW4oKToiMCUgIitnLmNvbG9yLCJyYWRpYWwiPT1pPyhnLnR5cGU9ImdyYWRpZW50VGl0bGUiLGcuZm9jdXM9IjEwMCUiLGcuZm9jdXNzaXplPSIwIDAiLGcuZm9jdXNwb3NpdGlvbj1qLGcuYW5nbGU9MCk6KGcudHlwZT0iZ3JhZGllbnQiLGcuYW5nbGU9KDI3MC1rKSUzNjApLGIuYXBwZW5kQ2hpbGQoZyl9cmV0dXJuIDF9LEQ9ZnVuY3Rpb24oYixjKXt0aGlzWzBdPXRoaXMubm9kZT1iLGIucmFwaGFlbD0hMCx0aGlzLmlkPWEuX29pZCsrLGIucmFwaGFlbGlkPXRoaXMuaWQsdGhpcy5YPTAsdGhpcy5ZPTAsdGhpcy5hdHRycz17fSx0aGlzLnBhcGVyPWMsdGhpcy5tYXRyaXg9YS5tYXRyaXgoKSx0aGlzLl89e3RyYW5zZm9ybTpbXSxzeDoxLHN5OjEsZHg6MCxkeTowLGRlZzowLGRpcnR5OjEsZGlydHlUOjF9LCFjLmJvdHRvbSYmKGMuYm90dG9tPXRoaXMpLHRoaXMucHJldj1jLnRvcCxjLnRvcCYmKGMudG9wLm5leHQ9dGhpcyksYy50b3A9dGhpcyx0aGlzLm5leHQ9bnVsbH0sRT1hLmVsO0QucHJvdG90eXBlPUUsRS5jb25zdHJ1Y3Rvcj1ELEUudHJhbnNmb3JtPWZ1bmN0aW9uKGIpe2lmKG51bGw9PWIpcmV0dXJuIHRoaXMuXy50cmFuc2Zvcm07dmFyIGQsZT10aGlzLnBhcGVyLl92aWV3Qm94U2hpZnQsZj1lPyJzIitbZS5zY2FsZSxlLnNjYWxlXSsiLTEtMXQiK1tlLmR4LGUuZHldOm87ZSYmKGQ9Yj1jKGIpLnJlcGxhY2UoL1wuezN9fFx1MjAyNi9nLHRoaXMuXy50cmFuc2Zvcm18fG8pKSxhLl9leHRyYWN0VHJhbnNmb3JtKHRoaXMsZitiKTt2YXIgZyxoPXRoaXMubWF0cml4LmNsb25lKCksaT10aGlzLnNrZXcsaj10aGlzLm5vZGUsaz1+Yyh0aGlzLmF0dHJzLmZpbGwpLmluZGV4T2YoIi0iKSxsPSFjKHRoaXMuYXR0cnMuZmlsbCkuaW5kZXhPZigidXJsKCIpO2lmKGgudHJhbnNsYXRlKDEsMSksbHx8a3x8ImltYWdlIj09dGhpcy50eXBlKWlmKGkubWF0cml4PSIxIDAgMCAxIixpLm9mZnNldD0iMCAwIixnPWguc3BsaXQoKSxrJiZnLm5vUm90YXRpb258fCFnLmlzU2ltcGxlKXtqLnN0eWxlLmZpbHRlcj1oLnRvRmlsdGVyKCk7dmFyIG09dGhpcy5nZXRCQm94KCkscD10aGlzLmdldEJCb3goMSkscT1tLngtcC54LHI9bS55LXAueTtqLmNvb3Jkb3JpZ2luPXEqLXUrbityKi11LHoodGhpcywxLDEscSxyLDApfWVsc2Ugai5zdHlsZS5maWx0ZXI9byx6KHRoaXMsZy5zY2FsZXgsZy5zY2FsZXksZy5keCxnLmR5LGcucm90YXRlKTtlbHNlIGouc3R5bGUuZmlsdGVyPW8saS5tYXRyaXg9YyhoKSxpLm9mZnNldD1oLm9mZnNldCgpO3JldHVybiBudWxsIT09ZCYmKHRoaXMuXy50cmFuc2Zvcm09ZCxhLl9leHRyYWN0VHJhbnNmb3JtKHRoaXMsZCkpLHRoaXN9LEUucm90YXRlPWZ1bmN0aW9uKGEsYixlKXtpZih0aGlzLnJlbW92ZWQpcmV0dXJuIHRoaXM7aWYobnVsbCE9YSl7aWYoYT1jKGEpLnNwbGl0KGspLGEubGVuZ3RoLTEmJihiPWQoYVsxXSksZT1kKGFbMl0pKSxhPWQoYVswXSksbnVsbD09ZSYmKGI9ZSksbnVsbD09Ynx8bnVsbD09ZSl7dmFyIGY9dGhpcy5nZXRCQm94KDEpO2I9Zi54K2Yud2lkdGgvMixlPWYueStmLmhlaWdodC8yfXJldHVybiB0aGlzLl8uZGlydHlUPTEsdGhpcy50cmFuc2Zvcm0odGhpcy5fLnRyYW5zZm9ybS5jb25jYXQoW1siciIsYSxiLGVdXSkpLHRoaXN9fSxFLnRyYW5zbGF0ZT1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLnJlbW92ZWQ/dGhpczooYT1jKGEpLnNwbGl0KGspLGEubGVuZ3RoLTEmJihiPWQoYVsxXSkpLGE9ZChhWzBdKXx8MCxiPStifHwwLHRoaXMuXy5iYm94JiYodGhpcy5fLmJib3gueCs9YSx0aGlzLl8uYmJveC55Kz1iKSx0aGlzLnRyYW5zZm9ybSh0aGlzLl8udHJhbnNmb3JtLmNvbmNhdChbWyJ0IixhLGJdXSkpLHRoaXMpfSxFLnNjYWxlPWZ1bmN0aW9uKGEsYixlLGYpe2lmKHRoaXMucmVtb3ZlZClyZXR1cm4gdGhpcztpZihhPWMoYSkuc3BsaXQoayksYS5sZW5ndGgtMSYmKGI9ZChhWzFdKSxlPWQoYVsyXSksZj1kKGFbM10pLGlzTmFOKGUpJiYoZT1udWxsKSxpc05hTihmKSYmKGY9bnVsbCkpLGE9ZChhWzBdKSxudWxsPT1iJiYoYj1hKSxudWxsPT1mJiYoZT1mKSxudWxsPT1lfHxudWxsPT1mKXZhciBnPXRoaXMuZ2V0QkJveCgxKTtyZXR1cm4gZT1udWxsPT1lP2cueCtnLndpZHRoLzI6ZSxmPW51bGw9PWY/Zy55K2cuaGVpZ2h0LzI6Zix0aGlzLnRyYW5zZm9ybSh0aGlzLl8udHJhbnNmb3JtLmNvbmNhdChbWyJzIixhLGIsZSxmXV0pKSx0aGlzLl8uZGlydHlUPTEsdGhpc30sRS5oaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVtb3ZlZCYmKHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5PSJub25lIiksdGhpc30sRS5zaG93PWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVtb3ZlZCYmKHRoaXMubm9kZS5zdHlsZS5kaXNwbGF5PW8pLHRoaXN9LEUuYXV4R2V0QkJveD1hLmVsLmdldEJCb3gsRS5nZXRCQm94PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5hdXhHZXRCQm94KCk7aWYodGhpcy5wYXBlciYmdGhpcy5wYXBlci5fdmlld0JveFNoaWZ0KXt2YXIgYj17fSxjPTEvdGhpcy5wYXBlci5fdmlld0JveFNoaWZ0LnNjYWxlO3JldHVybiBiLng9YS54LXRoaXMucGFwZXIuX3ZpZXdCb3hTaGlmdC5keCxiLngqPWMsYi55PWEueS10aGlzLnBhcGVyLl92aWV3Qm94U2hpZnQuZHksYi55Kj1jLGIud2lkdGg9YS53aWR0aCpjLGIuaGVpZ2h0PWEuaGVpZ2h0KmMsYi54Mj1iLngrYi53aWR0aCxiLnkyPWIueStiLmhlaWdodCxifXJldHVybiBhfSxFLl9nZXRCQm94PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVtb3ZlZD97fTp7eDp0aGlzLlgrKHRoaXMuYmJ4fHwwKS10aGlzLlcvMix5OnRoaXMuWS10aGlzLkgsd2lkdGg6dGhpcy5XLGhlaWdodDp0aGlzLkh9fSxFLnJlbW92ZT1mdW5jdGlvbigpe2lmKCF0aGlzLnJlbW92ZWQmJnRoaXMubm9kZS5wYXJlbnROb2RlKXt0aGlzLnBhcGVyLl9fc2V0X18mJnRoaXMucGFwZXIuX19zZXRfXy5leGNsdWRlKHRoaXMpLGEuZXZlLnVuYmluZCgicmFwaGFlbC4qLiouIit0aGlzLmlkKSxhLl90ZWFyKHRoaXMsdGhpcy5wYXBlciksdGhpcy5ub2RlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5ub2RlKSx0aGlzLnNoYXBlJiZ0aGlzLnNoYXBlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zaGFwZSk7Zm9yKHZhciBiIGluIHRoaXMpdGhpc1tiXT0iZnVuY3Rpb24iPT10eXBlb2YgdGhpc1tiXT9hLl9yZW1vdmVkRmFjdG9yeShiKTpudWxsO3RoaXMucmVtb3ZlZD0hMH19LEUuYXR0cj1mdW5jdGlvbihjLGQpe2lmKHRoaXMucmVtb3ZlZClyZXR1cm4gdGhpcztpZihudWxsPT1jKXt2YXIgZT17fTtmb3IodmFyIGYgaW4gdGhpcy5hdHRycyl0aGlzLmF0dHJzW2JdKGYpJiYoZVtmXT10aGlzLmF0dHJzW2ZdKTtyZXR1cm4gZS5ncmFkaWVudCYmIm5vbmUiPT1lLmZpbGwmJihlLmZpbGw9ZS5ncmFkaWVudCkmJmRlbGV0ZSBlLmdyYWRpZW50LGUudHJhbnNmb3JtPXRoaXMuXy50cmFuc2Zvcm0sZX1pZihudWxsPT1kJiZhLmlzKGMsInN0cmluZyIpKXtpZihjPT1qJiYibm9uZSI9PXRoaXMuYXR0cnMuZmlsbCYmdGhpcy5hdHRycy5ncmFkaWVudClyZXR1cm4gdGhpcy5hdHRycy5ncmFkaWVudDtmb3IodmFyIGc9Yy5zcGxpdChrKSxoPXt9LGk9MCxtPWcubGVuZ3RoO20+aTtpKyspYz1nW2ldLGMgaW4gdGhpcy5hdHRycz9oW2NdPXRoaXMuYXR0cnNbY106YS5pcyh0aGlzLnBhcGVyLmN1c3RvbUF0dHJpYnV0ZXNbY10sImZ1bmN0aW9uIik/aFtjXT10aGlzLnBhcGVyLmN1c3RvbUF0dHJpYnV0ZXNbY10uZGVmOmhbY109YS5fYXZhaWxhYmxlQXR0cnNbY107cmV0dXJuIG0tMT9oOmhbZ1swXV19aWYodGhpcy5hdHRycyYmbnVsbD09ZCYmYS5pcyhjLCJhcnJheSIpKXtmb3IoaD17fSxpPTAsbT1jLmxlbmd0aDttPmk7aSsrKWhbY1tpXV09dGhpcy5hdHRyKGNbaV0pO3JldHVybiBofXZhciBuO251bGwhPWQmJihuPXt9LG5bY109ZCksbnVsbD09ZCYmYS5pcyhjLCJvYmplY3QiKSYmKG49Yyk7Zm9yKHZhciBvIGluIG4pbCgicmFwaGFlbC5hdHRyLiIrbysiLiIrdGhpcy5pZCx0aGlzLG5bb10pO2lmKG4pe2ZvcihvIGluIHRoaXMucGFwZXIuY3VzdG9tQXR0cmlidXRlcylpZih0aGlzLnBhcGVyLmN1c3RvbUF0dHJpYnV0ZXNbYl0obykmJm5bYl0obykmJmEuaXModGhpcy5wYXBlci5jdXN0b21BdHRyaWJ1dGVzW29dLCJmdW5jdGlvbiIpKXt2YXIgcD10aGlzLnBhcGVyLmN1c3RvbUF0dHJpYnV0ZXNbb10uYXBwbHkodGhpcyxbXS5jb25jYXQobltvXSkpO3RoaXMuYXR0cnNbb109bltvXTtmb3IodmFyIHEgaW4gcClwW2JdKHEpJiYobltxXT1wW3FdKX1uLnRleHQmJiJ0ZXh0Ij09dGhpcy50eXBlJiYodGhpcy50ZXh0cGF0aC5zdHJpbmc9bi50ZXh0KSxCKHRoaXMsbil9cmV0dXJuIHRoaXN9LEUudG9Gcm9udD1mdW5jdGlvbigpe3JldHVybiF0aGlzLnJlbW92ZWQmJnRoaXMubm9kZS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMubm9kZSksdGhpcy5wYXBlciYmdGhpcy5wYXBlci50b3AhPXRoaXMmJmEuX3RvZnJvbnQodGhpcyx0aGlzLnBhcGVyKSx0aGlzfSxFLnRvQmFjaz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJlbW92ZWQ/dGhpczoodGhpcy5ub2RlLnBhcmVudE5vZGUuZmlyc3RDaGlsZCE9dGhpcy5ub2RlJiYodGhpcy5ub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMubm9kZSx0aGlzLm5vZGUucGFyZW50Tm9kZS5maXJzdENoaWxkKSxhLl90b2JhY2sodGhpcyx0aGlzLnBhcGVyKSksdGhpcyl9LEUuaW5zZXJ0QWZ0ZXI9ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMucmVtb3ZlZD90aGlzOihiLmNvbnN0cnVjdG9yPT1hLnN0LmNvbnN0cnVjdG9yJiYoYj1iW2IubGVuZ3RoLTFdKSxiLm5vZGUubmV4dFNpYmxpbmc/Yi5ub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMubm9kZSxiLm5vZGUubmV4dFNpYmxpbmcpOmIubm9kZS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMubm9kZSksYS5faW5zZXJ0YWZ0ZXIodGhpcyxiLHRoaXMucGFwZXIpLHRoaXMpfSxFLmluc2VydEJlZm9yZT1mdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5yZW1vdmVkP3RoaXM6KGIuY29uc3RydWN0b3I9PWEuc3QuY29uc3RydWN0b3ImJihiPWJbMF0pLGIubm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0aGlzLm5vZGUsYi5ub2RlKSxhLl9pbnNlcnRiZWZvcmUodGhpcyxiLHRoaXMucGFwZXIpLHRoaXMpfSxFLmJsdXI9ZnVuY3Rpb24oYil7dmFyIGM9dGhpcy5ub2RlLnJ1bnRpbWVTdHlsZSxkPWMuZmlsdGVyO3JldHVybiBkPWQucmVwbGFjZShyLG8pLDAhPT0rYj8odGhpcy5hdHRycy5ibHVyPWIsYy5maWx0ZXI9ZCtuK20rIi5CbHVyKHBpeGVscmFkaXVzPSIrKCtifHwxLjUpKyIpIixjLm1hcmdpbj1hLmZvcm1hdCgiLXswfXB4IDAgMCAtezB9cHgiLGYoK2J8fDEuNSkpKTooYy5maWx0ZXI9ZCxjLm1hcmdpbj0wLGRlbGV0ZSB0aGlzLmF0dHJzLmJsdXIpLHRoaXN9LGEuX2VuZ2luZS5wYXRoPWZ1bmN0aW9uKGEsYil7dmFyIGM9Rigic2hhcGUiKTtjLnN0eWxlLmNzc1RleHQ9dCxjLmNvb3Jkc2l6ZT11K24rdSxjLmNvb3Jkb3JpZ2luPWIuY29vcmRvcmlnaW47dmFyIGQ9bmV3IEQoYyxiKSxlPXtmaWxsOiJub25lIixzdHJva2U6IiMwMDAifTthJiYoZS5wYXRoPWEpLGQudHlwZT0icGF0aCIsZC5wYXRoPVtdLGQuUGF0aD1vLEIoZCxlKSxiLmNhbnZhcy5hcHBlbmRDaGlsZChjKTt2YXIgZj1GKCJza2V3Iik7cmV0dXJuIGYub249ITAsYy5hcHBlbmRDaGlsZChmKSxkLnNrZXc9ZixkLnRyYW5zZm9ybShvKSxkfSxhLl9lbmdpbmUucmVjdD1mdW5jdGlvbihiLGMsZCxlLGYsZyl7dmFyIGg9YS5fcmVjdFBhdGgoYyxkLGUsZixnKSxpPWIucGF0aChoKSxqPWkuYXR0cnM7cmV0dXJuIGkuWD1qLng9YyxpLlk9ai55PWQsaS5XPWoud2lkdGg9ZSxpLkg9ai5oZWlnaHQ9ZixqLnI9ZyxqLnBhdGg9aCxpLnR5cGU9InJlY3QiLGl9LGEuX2VuZ2luZS5lbGxpcHNlPWZ1bmN0aW9uKGEsYixjLGQsZSl7e3ZhciBmPWEucGF0aCgpO2YuYXR0cnN9cmV0dXJuIGYuWD1iLWQsZi5ZPWMtZSxmLlc9MipkLGYuSD0yKmUsZi50eXBlPSJlbGxpcHNlIixCKGYse2N4OmIsY3k6YyxyeDpkLHJ5OmV9KSxmfSxhLl9lbmdpbmUuY2lyY2xlPWZ1bmN0aW9uKGEsYixjLGQpe3t2YXIgZT1hLnBhdGgoKTtlLmF0dHJzfXJldHVybiBlLlg9Yi1kLGUuWT1jLWQsZS5XPWUuSD0yKmQsZS50eXBlPSJjaXJjbGUiLEIoZSx7Y3g6YixjeTpjLHI6ZH0pLGV9LGEuX2VuZ2luZS5pbWFnZT1mdW5jdGlvbihiLGMsZCxlLGYsZyl7dmFyIGg9YS5fcmVjdFBhdGgoZCxlLGYsZyksaT1iLnBhdGgoaCkuYXR0cih7c3Ryb2tlOiJub25lIn0pLGs9aS5hdHRycyxsPWkubm9kZSxtPWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoailbMF07cmV0dXJuIGsuc3JjPWMsaS5YPWsueD1kLGkuWT1rLnk9ZSxpLlc9ay53aWR0aD1mLGkuSD1rLmhlaWdodD1nLGsucGF0aD1oLGkudHlwZT0iaW1hZ2UiLG0ucGFyZW50Tm9kZT09bCYmbC5yZW1vdmVDaGlsZChtKSxtLnJvdGF0ZT0hMCxtLnNyYz1jLG0udHlwZT0idGlsZSIsaS5fLmZpbGxwb3M9W2QsZV0saS5fLmZpbGxzaXplPVtmLGddLGwuYXBwZW5kQ2hpbGQobSkseihpLDEsMSwwLDAsMCksaX0sYS5fZW5naW5lLnRleHQ9ZnVuY3Rpb24oYixkLGUsZyl7dmFyIGg9Rigic2hhcGUiKSxpPUYoInBhdGgiKSxqPUYoInRleHRwYXRoIik7ZD1kfHwwLGU9ZXx8MCxnPWd8fCIiLGkudj1hLmZvcm1hdCgibXswfSx7MX1sezJ9LHsxfSIsZihkKnUpLGYoZSp1KSxmKGQqdSkrMSksaS50ZXh0cGF0aG9rPSEwLGouc3RyaW5nPWMoZyksai5vbj0hMCxoLnN0eWxlLmNzc1RleHQ9dCxoLmNvb3Jkc2l6ZT11K24rdSxoLmNvb3Jkb3JpZ2luPSIwIDAiO3ZhciBrPW5ldyBEKGgsYiksbD17ZmlsbDoiIzAwMCIsc3Ryb2tlOiJub25lIixmb250OmEuX2F2YWlsYWJsZUF0dHJzLmZvbnQsdGV4dDpnfTtrLnNoYXBlPWgsay5wYXRoPWksay50ZXh0cGF0aD1qLGsudHlwZT0idGV4dCIsay5hdHRycy50ZXh0PWMoZyksay5hdHRycy54PWQsay5hdHRycy55PWUsay5hdHRycy53PTEsay5hdHRycy5oPTEsQihrLGwpLGguYXBwZW5kQ2hpbGQoaiksaC5hcHBlbmRDaGlsZChpKSxiLmNhbnZhcy5hcHBlbmRDaGlsZChoKTt2YXIgbT1GKCJza2V3Iik7cmV0dXJuIG0ub249ITAsaC5hcHBlbmRDaGlsZChtKSxrLnNrZXc9bSxrLnRyYW5zZm9ybShvKSxrfSxhLl9lbmdpbmUuc2V0U2l6ZT1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMuY2FudmFzLnN0eWxlO3JldHVybiB0aGlzLndpZHRoPWIsdGhpcy5oZWlnaHQ9YyxiPT0rYiYmKGIrPSJweCIpLGM9PStjJiYoYys9InB4IiksZC53aWR0aD1iLGQuaGVpZ2h0PWMsZC5jbGlwPSJyZWN0KDAgIitiKyIgIitjKyIgMCkiLHRoaXMuX3ZpZXdCb3gmJmEuX2VuZ2luZS5zZXRWaWV3Qm94LmFwcGx5KHRoaXMsdGhpcy5fdmlld0JveCksdGhpc30sYS5fZW5naW5lLnNldFZpZXdCb3g9ZnVuY3Rpb24oYixjLGQsZSxmKXthLmV2ZSgicmFwaGFlbC5zZXRWaWV3Qm94Iix0aGlzLHRoaXMuX3ZpZXdCb3gsW2IsYyxkLGUsZl0pO3ZhciBnLGgsaT10aGlzLmdldFNpemUoKSxqPWkud2lkdGgsaz1pLmhlaWdodDtyZXR1cm4gZiYmKGc9ay9lLGg9ai9kLGo+ZCpnJiYoYi09KGotZCpnKS8yL2cpLGs+ZSpoJiYoYy09KGstZSpoKS8yL2gpKSx0aGlzLl92aWV3Qm94PVtiLGMsZCxlLCEhZl0sdGhpcy5fdmlld0JveFNoaWZ0PXtkeDotYixkeTotYyxzY2FsZTppfSx0aGlzLmZvckVhY2goZnVuY3Rpb24oYSl7YS50cmFuc2Zvcm0oIi4uLiIpfSksdGhpc307dmFyIEY7YS5fZW5naW5lLmluaXRXaW49ZnVuY3Rpb24oYSl7dmFyIGI9YS5kb2N1bWVudDtiLnN0eWxlU2hlZXRzLmxlbmd0aDwzMT9iLmNyZWF0ZVN0eWxlU2hlZXQoKS5hZGRSdWxlKCIucnZtbCIsImJlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpIik6Yi5zdHlsZVNoZWV0c1swXS5hZGRSdWxlKCIucnZtbCIsImJlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpIik7dHJ5eyFiLm5hbWVzcGFjZXMucnZtbCYmYi5uYW1lc3BhY2VzLmFkZCgicnZtbCIsInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIiksRj1mdW5jdGlvbihhKXtyZXR1cm4gYi5jcmVhdGVFbGVtZW50KCI8cnZtbDoiK2ErJyBjbGFzcz0icnZtbCI+Jyl9fWNhdGNoKGMpe0Y9ZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbWVudCgiPCIrYSsnIHhtbG5zPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQuY29tOnZtbCIgY2xhc3M9InJ2bWwiPicpfX19LGEuX2VuZ2luZS5pbml0V2luKGEuX2cud2luKSxhLl9lbmdpbmUuY3JlYXRlPWZ1bmN0aW9uKCl7dmFyIGI9YS5fZ2V0Q29udGFpbmVyLmFwcGx5KDAsYXJndW1lbnRzKSxjPWIuY29udGFpbmVyLGQ9Yi5oZWlnaHQsZT1iLndpZHRoLGY9Yi54LGc9Yi55O2lmKCFjKXRocm93IG5ldyBFcnJvcigiVk1MIGNvbnRhaW5lciBub3QgZm91bmQuIik7dmFyIGg9bmV3IGEuX1BhcGVyLGk9aC5jYW52YXM9YS5fZy5kb2MuY3JlYXRlRWxlbWVudCgiZGl2Iiksaj1pLnN0eWxlO3JldHVybiBmPWZ8fDAsZz1nfHwwLGU9ZXx8NTEyLGQ9ZHx8MzQyLGgud2lkdGg9ZSxoLmhlaWdodD1kLGU9PStlJiYoZSs9InB4IiksZD09K2QmJihkKz0icHgiKSxoLmNvb3Jkc2l6ZT0xZTMqdStuKzFlMyp1LGguY29vcmRvcmlnaW49IjAgMCIsaC5zcGFuPWEuX2cuZG9jLmNyZWF0ZUVsZW1lbnQoInNwYW4iKSxoLnNwYW4uc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OWVtO3RvcDotOTk5OWVtO3BhZGRpbmc6MDttYXJnaW46MDtsaW5lLWhlaWdodDoxOyIsaS5hcHBlbmRDaGlsZChoLnNwYW4pLGouY3NzVGV4dD1hLmZvcm1hdCgidG9wOjA7bGVmdDowO3dpZHRoOnswfTtoZWlnaHQ6ezF9O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2NsaXA6cmVjdCgwIHswfSB7MX0gMCk7b3ZlcmZsb3c6aGlkZGVuIixlLGQpLDE9PWM/KGEuX2cuZG9jLmJvZHkuYXBwZW5kQ2hpbGQoaSksai5sZWZ0PWYrInB4IixqLnRvcD1nKyJweCIsai5wb3NpdGlvbj0iYWJzb2x1dGUiKTpjLmZpcnN0Q2hpbGQ/Yy5pbnNlcnRCZWZvcmUoaSxjLmZpcnN0Q2hpbGQpOmMuYXBwZW5kQ2hpbGQoaSksaC5yZW5kZXJmaXg9ZnVuY3Rpb24oKXt9LGh9LGEucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7YS5ldmUoInJhcGhhZWwuY2xlYXIiLHRoaXMpLHRoaXMuY2FudmFzLmlubmVySFRNTD1vLHRoaXMuc3Bhbj1hLl9nLmRvYy5jcmVhdGVFbGVtZW50KCJzcGFuIiksdGhpcy5zcGFuLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTllbTt0b3A6LTk5OTllbTtwYWRkaW5nOjA7bWFyZ2luOjA7bGluZS1oZWlnaHQ6MTtkaXNwbGF5OmlubGluZTsiLHRoaXMuY2FudmFzLmFwcGVuZENoaWxkKHRoaXMuc3BhbiksdGhpcy5ib3R0b209dGhpcy50b3A9bnVsbH0sYS5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKCl7YS5ldmUoInJhcGhhZWwucmVtb3ZlIix0aGlzKSx0aGlzLmNhbnZhcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY2FudmFzKTtmb3IodmFyIGIgaW4gdGhpcyl0aGlzW2JdPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzW2JdP2EuX3JlbW92ZWRGYWN0b3J5KGIpOm51bGw7cmV0dXJuITB9O3ZhciBHPWEuc3Q7Zm9yKHZhciBIIGluIEUpRVtiXShIKSYmIUdbYl0oSCkmJihHW0hdPWZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpe3ZhciBiPWFyZ3VtZW50cztyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGMpe2NbYV0uYXBwbHkoYyxiKX0pfX0oSCkpfX0pOw=="></script>
|
||
<link href="data:text/css,%0A%2Ehtml%2Dwidget%2Egauge%20%7B%0Aheight%3A%20160px%3B%0A%7D%0A%2Ehtml%2Dwidget%2Egauge%20svg%20%7B%0Aheight%3A%20160px%3B%0Amargin%2Dtop%3A%20%2D10px%3B%0Amargin%2Dbottom%3A%20%2D40px%3B%0A%7D%0A" rel="stylesheet" />
|
||
<script src="data:application/javascript;base64,LyoqCiAqIEp1c3RHYWdlIC0gYW5pbWF0ZWQgZ2F1Z2VzIHVzaW5nIFJhcGhhZWxKUwogKiBDaGVjayBodHRwOi8vd3d3Lmp1c3RnYWdlLmNvbSBmb3Igb2ZmaWNpYWwgcmVsZWFzZXMKICogTGljZW5zZWQgdW5kZXIgTUlULgogKiBAYXV0aG9yIEJvamFuIERqdXJpY2ljIChAVG9vcnNoaWEpCiAqKi8KCkp1c3RHYWdlID0gZnVuY3Rpb24oY29uZmlnKSB7CgogIHZhciBvYmogPSB0aGlzOwoKICAvLyBIZWxwcyBpbiBjYXNlIGRldmVsb3BlciB3YW50cyB0byBkZWJ1ZyBpdC4gdW5vYnRydXNpdmUKICBpZiAoY29uZmlnID09PSBudWxsIHx8IGNvbmZpZyA9PT0gdW5kZWZpbmVkKSB7CiAgICBjb25zb2xlLmxvZygnKiBqdXN0Z2FnZTogTWFrZSBzdXJlIHRvIHBhc3Mgb3B0aW9ucyB0byB0aGUgY29uc3RydWN0b3IhJyk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICB2YXIgbm9kZTsKCiAgaWYgKGNvbmZpZy5pZCAhPT0gbnVsbCAmJiBjb25maWcuaWQgIT09IHVuZGVmaW5lZCkgewogICAgbm9kZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNvbmZpZy5pZCk7CiAgICBpZiAoIW5vZGUpIHsKICAgICAgY29uc29sZS5sb2coJyoganVzdGdhZ2U6IE5vIGVsZW1lbnQgd2l0aCBpZCA6ICVzIGZvdW5kJywgY29uZmlnLmlkKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogIH0gZWxzZSBpZiAoY29uZmlnLnBhcmVudE5vZGUgIT09IG51bGwgJiYgY29uZmlnLnBhcmVudE5vZGUgIT09IHVuZGVmaW5lZCkgewogICAgbm9kZSA9IGNvbmZpZy5wYXJlbnROb2RlOwogIH0gZWxzZSB7CiAgICBjb25zb2xlLmxvZygnKiBqdXN0Z2FnZTogTWFrZSBzdXJlIHRvIHBhc3MgdGhlIGV4aXN0aW5nIGVsZW1lbnQgaWQgb3IgcGFyZW50Tm9kZSB0byB0aGUgY29uc3RydWN0b3IuJyk7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICB2YXIgZGF0YXNldCA9IG5vZGUuZGF0YXNldCA/IG5vZGUuZGF0YXNldCA6IHt9OwoKICAvLyBjaGVjayBmb3IgZGVmYXVsdHMKICB2YXIgZGVmYXVsdHMgPSAoY29uZmlnLmRlZmF1bHRzICE9PSBudWxsICYmIGNvbmZpZy5kZWZhdWx0cyAhPT0gdW5kZWZpbmVkKSA/IGNvbmZpZy5kZWZhdWx0cyA6IGZhbHNlOwogIGlmIChkZWZhdWx0cyAhPT0gZmFsc2UpIHsKICAgIGNvbmZpZyA9IGV4dGVuZCh7fSwgY29uZmlnLCBkZWZhdWx0cyk7CiAgICBkZWxldGUgY29uZmlnLmRlZmF1bHRzOwogIH0KCiAgLy8gY29uZmlndXJhYmxlIHBhcmFtZXRlcnMKICBvYmouY29uZmlnID0gewogICAgLy8gaWQgOiBzdHJpbmcKICAgIC8vIHRoaXMgaXMgY29udGFpbmVyIGVsZW1lbnQgaWQKICAgIGlkOiBjb25maWcuaWQsCgogICAgLy8gdmFsdWUgOiBmbG9hdAogICAgLy8gdmFsdWUgZ2F1Z2UgaXMgc2hvd2luZwogICAgdmFsdWU6IGt2TG9va3VwKCd2YWx1ZScsIGNvbmZpZywgZGF0YXNldCwgMCwgJ2Zsb2F0JyksCgogICAgLy8gZGVmYXVsdHMgOiBib29sCiAgICAvLyBkZWZhdWx0cyBwYXJhbWV0ZXIgdG8gdXNlCiAgICBkZWZhdWx0czoga3ZMb29rdXAoJ2RlZmF1bHRzJywgY29uZmlnLCBkYXRhc2V0LCAwLCBmYWxzZSksCgogICAgLy8gcGFyZW50Tm9kZSA6IG5vZGUgb2JqZWN0CiAgICAvLyB0aGlzIGlzIGNvbnRhaW5lciBlbGVtZW50CiAgICBwYXJlbnROb2RlOiBrdkxvb2t1cCgncGFyZW50Tm9kZScsIGNvbmZpZywgZGF0YXNldCwgbnVsbCksCgogICAgLy8gd2lkdGggOiBpbnQKICAgIC8vIGdhdWdlIHdpZHRoCiAgICB3aWR0aDoga3ZMb29rdXAoJ3dpZHRoJywgY29uZmlnLCBkYXRhc2V0LCBudWxsKSwKCiAgICAvLyBoZWlnaHQgOiBpbnQKICAgIC8vIGdhdWdlIGhlaWdodAogICAgaGVpZ2h0OiBrdkxvb2t1cCgnaGVpZ2h0JywgY29uZmlnLCBkYXRhc2V0LCBudWxsKSwKCiAgICAvLyB0aXRsZSA6IHN0cmluZwogICAgLy8gZ2F1Z2UgdGl0bGUKICAgIHRpdGxlOiBrdkxvb2t1cCgndGl0bGUnLCBjb25maWcsIGRhdGFzZXQsICIiKSwKCiAgICAvLyB0aXRsZUZvbnRDb2xvciA6IHN0cmluZwogICAgLy8gY29sb3Igb2YgZ2F1Z2UgdGl0bGUKICAgIHRpdGxlRm9udENvbG9yOiBrdkxvb2t1cCgndGl0bGVGb250Q29sb3InLCBjb25maWcsIGRhdGFzZXQsICIjOTk5OTk5IiksCgogICAgLy8gdGl0bGVGb250RmFtaWx5IDogc3RyaW5nCiAgICAvLyBjb2xvciBvZiBnYXVnZSB0aXRsZQogICAgdGl0bGVGb250RmFtaWx5OiBrdkxvb2t1cCgndGl0bGVGb250RmFtaWx5JywgY29uZmlnLCBkYXRhc2V0LCAic2Fucy1zZXJpZiIpLAoKICAgIC8vIHRpdGxlUG9zaXRpb24gOiBzdHJpbmcKICAgIC8vICdhYm92ZScgb3IgJ2JlbG93JwogICAgdGl0bGVQb3NpdGlvbjoga3ZMb29rdXAoJ3RpdGxlUG9zaXRpb24nLCBjb25maWcsIGRhdGFzZXQsICJhYm92ZSIpLAoKICAgIC8vIHZhbHVlRm9udENvbG9yIDogc3RyaW5nCiAgICAvLyBjb2xvciBvZiBsYWJlbCBzaG93aW5nIGN1cnJlbnQgdmFsdWUKICAgIHZhbHVlRm9udENvbG9yOiBrdkxvb2t1cCgndmFsdWVGb250Q29sb3InLCBjb25maWcsIGRhdGFzZXQsICIjMDEwMTAxIiksCgogICAgLy8gdmFsdWVGb250RmFtaWx5IDogc3RyaW5nCiAgICAvLyBjb2xvciBvZiBsYWJlbCBzaG93aW5nIGN1cnJlbnQgdmFsdWUKICAgIHZhbHVlRm9udEZhbWlseToga3ZMb29rdXAoJ3ZhbHVlRm9udEZhbWlseScsIGNvbmZpZywgZGF0YXNldCwgIkFyaWFsIiksCgogICAgLy8gc3ltYm9sIDogc3RyaW5nCiAgICAvLyBzcGVjaWFsIHN5bWJvbCB0byBzaG93IG5leHQgdG8gdmFsdWUKICAgIHN5bWJvbDoga3ZMb29rdXAoJ3N5bWJvbCcsIGNvbmZpZywgZGF0YXNldCwgJycpLAoKICAgIC8vIG1pbiA6IGZsb2F0CiAgICAvLyBtaW4gdmFsdWUKICAgIG1pbjoga3ZMb29rdXAoJ21pbicsIGNvbmZpZywgZGF0YXNldCwgMCwgJ2Zsb2F0JyksCgogICAgLy8gbWluVHh0IDogc3RyaW5nCiAgICAvLyBtaW4gdmFsdWUgdGV4dAogICAgbWluVHh0OiBrdkxvb2t1cCgnbWluVHh0JywgY29uZmlnLCBkYXRhc2V0LCBmYWxzZSksCgogICAgLy8gbWF4IDogZmxvYXQKICAgIC8vIG1heCB2YWx1ZQogICAgbWF4OiBrdkxvb2t1cCgnbWF4JywgY29uZmlnLCBkYXRhc2V0LCAxMDAsICdmbG9hdCcpLAoKICAgIC8vIG1heFR4dCA6IHN0cmluZwogICAgLy8gbWF4IHZhbHVlIHRleHQKICAgIG1heFR4dDoga3ZMb29rdXAoJ21heFR4dCcsIGNvbmZpZywgZGF0YXNldCwgZmFsc2UpLAoKICAgIC8vIHJldmVyc2UgOiBib29sCiAgICAvLyByZXZlcnNlIG1pbiBhbmQgbWF4CiAgICByZXZlcnNlOiBrdkxvb2t1cCgncmV2ZXJzZScsIGNvbmZpZywgZGF0YXNldCwgZmFsc2UpLAoKICAgIC8vIGh1bWFuRnJpZW5kbHlEZWNpbWFsIDogaW50CiAgICAvLyBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgZm9yIG91ciBodW1hbiBmcmllbmRseSBudW1iZXIgdG8gY29udGFpbgogICAgaHVtYW5GcmllbmRseURlY2ltYWw6IGt2TG9va3VwKCdodW1hbkZyaWVuZGx5RGVjaW1hbCcsIGNvbmZpZywgZGF0YXNldCwgMCksCgoKICAgIC8vIHRleHRSZW5kZXJlcjogZnVuYwogICAgLy8gZnVuY3Rpb24gYXBwbGllZCBiZWZvcmUgcmVuZGVyaW5nIHRleHQKICAgIHRleHRSZW5kZXJlcjoga3ZMb29rdXAoJ3RleHRSZW5kZXJlcicsIGNvbmZpZywgZGF0YXNldCwgbnVsbCksCgogICAgLy8gb25BbmltYXRpb25FbmQ6IGZ1bmMKICAgIC8vIGZ1bmN0aW9uIGFwcGxpZWQgYWZ0ZXIgYW5pbWF0aW9uIGlzIGRvbmUKICAgIG9uQW5pbWF0aW9uRW5kOiBrdkxvb2t1cCgnb25BbmltYXRpb25FbmQnLCBjb25maWcsIGRhdGFzZXQsIG51bGwpLAoKICAgIC8vIGdhdWdlV2lkdGhTY2FsZSA6IGZsb2F0CiAgICAvLyB3aWR0aCBvZiB0aGUgZ2F1Z2UgZWxlbWVudAogICAgZ2F1Z2VXaWR0aFNjYWxlOiBrdkxvb2t1cCgnZ2F1Z2VXaWR0aFNjYWxlJywgY29uZmlnLCBkYXRhc2V0LCAxLjApLAoKICAgIC8vIGdhdWdlQ29sb3IgOiBzdHJpbmcKICAgIC8vIGJhY2tncm91bmQgY29sb3Igb2YgZ2F1Z2UgZWxlbWVudAogICAgZ2F1Z2VDb2xvcjoga3ZMb29rdXAoJ2dhdWdlQ29sb3InLCBjb25maWcsIGRhdGFzZXQsICIjZWRlYmViIiksCgogICAgLy8gbGFiZWwgOiBzdHJpbmcKICAgIC8vIHRleHQgdG8gc2hvdyBiZWxvdyB2YWx1ZQogICAgbGFiZWw6IGt2TG9va3VwKCdsYWJlbCcsIGNvbmZpZywgZGF0YXNldCwgJycpLAoKICAgIC8vIGxhYmVsRm9udENvbG9yIDogc3RyaW5nCiAgICAvLyBjb2xvciBvZiBsYWJlbCBzaG93aW5nIGxhYmVsIHVuZGVyIHZhbHVlCiAgICBsYWJlbEZvbnRDb2xvcjoga3ZMb29rdXAoJ2xhYmVsRm9udENvbG9yJywgY29uZmlnLCBkYXRhc2V0LCAiI2IzYjNiMyIpLAoKICAgIC8vIHNoYWRvd09wYWNpdHkgOiBpbnQKICAgIC8vIDAgfiAxCiAgICBzaGFkb3dPcGFjaXR5OiBrdkxvb2t1cCgnc2hhZG93T3BhY2l0eScsIGNvbmZpZywgZGF0YXNldCwgMC4yKSwKCiAgICAvLyBzaGFkb3dTaXplOiBpbnQKICAgIC8vIGlubmVyIHNoYWRvdyBzaXplCiAgICBzaGFkb3dTaXplOiBrdkxvb2t1cCgnc2hhZG93U2l6ZScsIGNvbmZpZywgZGF0YXNldCwgNSksCgogICAgLy8gc2hhZG93VmVydGljYWxPZmZzZXQgOiBpbnQKICAgIC8vIGhvdyBtdWNoIHNoYWRvdyBpcyBvZmZzZXQgZnJvbSB0b3AKICAgIHNoYWRvd1ZlcnRpY2FsT2Zmc2V0OiBrdkxvb2t1cCgnc2hhZG93VmVydGljYWxPZmZzZXQnLCBjb25maWcsIGRhdGFzZXQsIDMpLAoKICAgIC8vIGxldmVsQ29sb3JzIDogc3RyaW5nW10KICAgIC8vIGNvbG9ycyBvZiBpbmRpY2F0b3IsIGZyb20gbG93ZXIgdG8gdXBwZXIsIGluIFJHQiBmb3JtYXQKICAgIGxldmVsQ29sb3JzOiBrdkxvb2t1cCgnbGV2ZWxDb2xvcnMnLCBjb25maWcsIGRhdGFzZXQsIFsiI2E5ZDcwYiIsICIjZjljODAyIiwgIiNmZjAwMDAiXSwgJ2FycmF5JywgJywnKSwKCiAgICAvLyBzdGFydEFuaW1hdGlvblRpbWUgOiBpbnQKICAgIC8vIGxlbmd0aCBvZiBpbml0aWFsIGFuaW1hdGlvbgogICAgc3RhcnRBbmltYXRpb25UaW1lOiBrdkxvb2t1cCgnc3RhcnRBbmltYXRpb25UaW1lJywgY29uZmlnLCBkYXRhc2V0LCA3MDApLAoKICAgIC8vIHN0YXJ0QW5pbWF0aW9uVHlwZSA6IHN0cmluZwogICAgLy8gdHlwZSBvZiBpbml0aWFsIGFuaW1hdGlvbiAobGluZWFyLCA+LCA8LCAgPD4sIGJvdW5jZSkKICAgIHN0YXJ0QW5pbWF0aW9uVHlwZToga3ZMb29rdXAoJ3N0YXJ0QW5pbWF0aW9uVHlwZScsIGNvbmZpZywgZGF0YXNldCwgJz4nKSwKCiAgICAvLyByZWZyZXNoQW5pbWF0aW9uVGltZSA6IGludAogICAgLy8gbGVuZ3RoIG9mIHJlZnJlc2ggYW5pbWF0aW9uCiAgICByZWZyZXNoQW5pbWF0aW9uVGltZToga3ZMb29rdXAoJ3JlZnJlc2hBbmltYXRpb25UaW1lJywgY29uZmlnLCBkYXRhc2V0LCA3MDApLAoKICAgIC8vIHJlZnJlc2hBbmltYXRpb25UeXBlIDogc3RyaW5nCiAgICAvLyB0eXBlIG9mIHJlZnJlc2ggYW5pbWF0aW9uIChsaW5lYXIsID4sIDwsICA8PiwgYm91bmNlKQogICAgcmVmcmVzaEFuaW1hdGlvblR5cGU6IGt2TG9va3VwKCdyZWZyZXNoQW5pbWF0aW9uVHlwZScsIGNvbmZpZywgZGF0YXNldCwgJz4nKSwKCiAgICAvLyBkb251dFN0YXJ0QW5nbGUgOiBpbnQKICAgIC8vIGFuZ2xlIHRvIHN0YXJ0IGZyb20gd2hlbiBpbiBkb251dCBtb2RlCiAgICBkb251dFN0YXJ0QW5nbGU6IGt2TG9va3VwKCdkb251dFN0YXJ0QW5nbGUnLCBjb25maWcsIGRhdGFzZXQsIDkwKSwKCiAgICAvLyB2YWx1ZU1pbkZvbnRTaXplIDogaW50CiAgICAvLyBhYnNvbHV0ZSBtaW5pbXVtIGZvbnQgc2l6ZSBmb3IgdGhlIHZhbHVlCiAgICB2YWx1ZU1pbkZvbnRTaXplOiBrdkxvb2t1cCgndmFsdWVNaW5Gb250U2l6ZScsIGNvbmZpZywgZGF0YXNldCwgMTYpLAoKICAgIC8vIHRpdGxlTWluRm9udFNpemUKICAgIC8vIGFic29sdXRlIG1pbmltdW0gZm9udCBzaXplIGZvciB0aGUgdGl0bGUKICAgIHRpdGxlTWluRm9udFNpemU6IGt2TG9va3VwKCd0aXRsZU1pbkZvbnRTaXplJywgY29uZmlnLCBkYXRhc2V0LCAxMCksCgogICAgLy8gbGFiZWxNaW5Gb250U2l6ZQogICAgLy8gYWJzb2x1dGUgbWluaW11bSBmb250IHNpemUgZm9yIHRoZSBsYWJlbAogICAgbGFiZWxNaW5Gb250U2l6ZToga3ZMb29rdXAoJ2xhYmVsTWluRm9udFNpemUnLCBjb25maWcsIGRhdGFzZXQsIDEwKSwKCiAgICAvLyBtaW5MYWJlbE1pbkZvbnRTaXplCiAgICAvLyBhYnNvbHV0ZSBtaW5pbXVtIGZvbnQgc2l6ZSBmb3IgdGhlIG1pbmltdW0gbGFiZWwKICAgIG1pbkxhYmVsTWluRm9udFNpemU6IGt2TG9va3VwKCdtaW5MYWJlbE1pbkZvbnRTaXplJywgY29uZmlnLCBkYXRhc2V0LCAxMCksCgogICAgLy8gbWF4TGFiZWxNaW5Gb250U2l6ZQogICAgLy8gYWJzb2x1dGUgbWluaW11bSBmb250IHNpemUgZm9yIHRoZSBtYXhpbXVtIGxhYmVsCiAgICBtYXhMYWJlbE1pbkZvbnRTaXplOiBrdkxvb2t1cCgnbWF4TGFiZWxNaW5Gb250U2l6ZScsIGNvbmZpZywgZGF0YXNldCwgMTApLAoKICAgIC8vIGhpZGVWYWx1ZSA6IGJvb2wKICAgIC8vIGhpZGUgdmFsdWUgdGV4dAogICAgaGlkZVZhbHVlOiBrdkxvb2t1cCgnaGlkZVZhbHVlJywgY29uZmlnLCBkYXRhc2V0LCBmYWxzZSksCgogICAgLy8gaGlkZU1pbk1heCA6IGJvb2wKICAgIC8vIGhpZGUgbWluIGFuZCBtYXggdmFsdWVzCiAgICBoaWRlTWluTWF4OiBrdkxvb2t1cCgnaGlkZU1pbk1heCcsIGNvbmZpZywgZGF0YXNldCwgZmFsc2UpLAoKICAgIC8vIGhpZGVJbm5lclNoYWRvdyA6IGJvb2wKICAgIC8vIGhpZGUgaW5uZXIgc2hhZG93CiAgICBoaWRlSW5uZXJTaGFkb3c6IGt2TG9va3VwKCdoaWRlSW5uZXJTaGFkb3cnLCBjb25maWcsIGRhdGFzZXQsIGZhbHNlKSwKCiAgICAvLyBodW1hbkZyaWVuZGx5IDogYm9vbAogICAgLy8gY29udmVydCBsYXJnZSBudW1iZXJzIGZvciBtaW4sIG1heCwgdmFsdWUgdG8gaHVtYW4gZnJpZW5kbHkgKGUuZy4gMTIzNDU2NyAtPiAxLjIzTSkKICAgIGh1bWFuRnJpZW5kbHk6IGt2TG9va3VwKCdodW1hbkZyaWVuZGx5JywgY29uZmlnLCBkYXRhc2V0LCBmYWxzZSksCgogICAgLy8gbm9HcmFkaWVudCA6IGJvb2wKICAgIC8vIHdoZXRoZXIgdG8gdXNlIGdyYWR1YWwgY29sb3IgY2hhbmdlIGZvciB2YWx1ZSwgb3Igc2VjdG9yLWJhc2VkCiAgICBub0dyYWRpZW50OiBrdkxvb2t1cCgnbm9HcmFkaWVudCcsIGNvbmZpZywgZGF0YXNldCwgZmFsc2UpLAoKICAgIC8vIGRvbnV0IDogYm9vbAogICAgLy8gc2hvdyBmdWxsIGRvbnV0IGdhdWdlCiAgICBkb251dDoga3ZMb29rdXAoJ2RvbnV0JywgY29uZmlnLCBkYXRhc2V0LCBmYWxzZSksCgogICAgLy8gcmVsYXRpdmVHYXVnZVNpemUgOiBib29sCiAgICAvLyB3aGV0aGVyIGdhdWdlIHNpemUgc2hvdWxkIGZvbGxvdyBjaGFuZ2VzIGluIGNvbnRhaW5lciBlbGVtZW50IHNpemUKICAgIHJlbGF0aXZlR2F1Z2VTaXplOiBrdkxvb2t1cCgncmVsYXRpdmVHYXVnZVNpemUnLCBjb25maWcsIGRhdGFzZXQsIGZhbHNlKSwKCiAgICAvLyBjb3VudGVyIDogYm9vbAogICAgLy8gYW5pbWF0ZSBsZXZlbCBudW1iZXIgY2hhbmdlCiAgICBjb3VudGVyOiBrdkxvb2t1cCgnY291bnRlcicsIGNvbmZpZywgZGF0YXNldCwgZmFsc2UpLAoKICAgIC8vIGRlY2ltYWxzIDogaW50CiAgICAvLyBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIGZsb2F0aW5nIHBvaW50CiAgICBkZWNpbWFsczoga3ZMb29rdXAoJ2RlY2ltYWxzJywgY29uZmlnLCBkYXRhc2V0LCAwKSwKCiAgICAvLyBjdXN0b21TZWN0b3JzIDogW10gb2Ygb2JqZWN0cwogICAgLy8gbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciBmbG9hdGluZyBwb2ludAogICAgY3VzdG9tU2VjdG9yczoga3ZMb29rdXAoJ2N1c3RvbVNlY3RvcnMnLCBjb25maWcsIGRhdGFzZXQsIFtdKSwKCiAgICAvLyBmb3JtYXROdW1iZXI6IGJvb2xlYW4KICAgIC8vIGZvcm1hdHMgbnVtYmVycyB3aXRoIGNvbW1hcyB3aGVyZSBhcHByb3ByaWF0ZQogICAgZm9ybWF0TnVtYmVyOiBrdkxvb2t1cCgnZm9ybWF0TnVtYmVyJywgY29uZmlnLCBkYXRhc2V0LCBmYWxzZSksCgogICAgLy8gcG9pbnRlciA6IGJvb2wKICAgIC8vIHNob3cgdmFsdWUgcG9pbnRlcgogICAgcG9pbnRlcjoga3ZMb29rdXAoJ3BvaW50ZXInLCBjb25maWcsIGRhdGFzZXQsIGZhbHNlKSwKCiAgICAvLyBwb2ludGVyT3B0aW9ucyA6IG9iamVjdAogICAgLy8gZGVmaW5lIHBvaW50ZXIgbG9vawogICAgcG9pbnRlck9wdGlvbnM6IGt2TG9va3VwKCdwb2ludGVyT3B0aW9ucycsIGNvbmZpZywgZGF0YXNldCwgW10pCiAgfTsKCiAgLy8gdmFyaWFibGVzCiAgdmFyCiAgICBjYW52YXNXLAogICAgY2FudmFzSCwKICAgIHdpZGdldFcsCiAgICB3aWRnZXRILAogICAgYXNwZWN0LAogICAgZHgsCiAgICBkeSwKICAgIHRpdGxlRm9udFNpemUsCiAgICB0aXRsZVgsCiAgICB0aXRsZVksCiAgICB2YWx1ZUZvbnRTaXplLAogICAgdmFsdWVYLAogICAgdmFsdWVZLAogICAgbGFiZWxGb250U2l6ZSwKICAgIGxhYmVsWCwKICAgIGxhYmVsWSwKICAgIG1pbkZvbnRTaXplLAogICAgbWluWCwKICAgIG1pblksCiAgICBtYXhGb250U2l6ZSwKICAgIG1heFgsCiAgICBtYXhZOwoKICAvLyBvdmVyZmxvdyB2YWx1ZXMKICBpZiAob2JqLmNvbmZpZy52YWx1ZSA+IG9iai5jb25maWcubWF4KSBvYmouY29uZmlnLnZhbHVlID0gb2JqLmNvbmZpZy5tYXg7CiAgaWYgKG9iai5jb25maWcudmFsdWUgPCBvYmouY29uZmlnLm1pbikgb2JqLmNvbmZpZy52YWx1ZSA9IG9iai5jb25maWcubWluOwogIG9iai5vcmlnaW5hbFZhbHVlID0ga3ZMb29rdXAoJ3ZhbHVlJywgY29uZmlnLCBkYXRhc2V0LCAtMSwgJ2Zsb2F0Jyk7CgogIC8vIGNyZWF0ZSBjYW52YXMKICBpZiAob2JqLmNvbmZpZy5pZCAhPT0gbnVsbCAmJiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob2JqLmNvbmZpZy5pZCkpICE9PSBudWxsKSB7CiAgICBvYmouY2FudmFzID0gUmFwaGFlbChvYmouY29uZmlnLmlkLCAiMTAwJSIsICIxMDAlIik7CiAgfSBlbHNlIGlmIChvYmouY29uZmlnLnBhcmVudE5vZGUgIT09IG51bGwpIHsKICAgIG9iai5jYW52YXMgPSBSYXBoYWVsKG9iai5jb25maWcucGFyZW50Tm9kZSwgIjEwMCUiLCAiMTAwJSIpOwogIH0KCiAgaWYgKG9iai5jb25maWcucmVsYXRpdmVHYXVnZVNpemUgPT09IHRydWUpIHsKICAgIG9iai5jYW52YXMuc2V0Vmlld0JveCgwLCAwLCAyMDAsIDE1MCwgdHJ1ZSk7CiAgfQoKICAvLyBjYW52YXMgZGltZW5zaW9ucwogIGlmIChvYmouY29uZmlnLnJlbGF0aXZlR2F1Z2VTaXplID09PSB0cnVlKSB7CiAgICBjYW52YXNXID0gMjAwOwogICAgY2FudmFzSCA9IDE1MDsKICB9IGVsc2UgaWYgKG9iai5jb25maWcud2lkdGggIT09IG51bGwgJiYgb2JqLmNvbmZpZy5oZWlnaHQgIT09IG51bGwpIHsKICAgIGNhbnZhc1cgPSBvYmouY29uZmlnLndpZHRoOwogICAgY2FudmFzSCA9IG9iai5jb25maWcuaGVpZ2h0OwogIH0gZWxzZSBpZiAob2JqLmNvbmZpZy5wYXJlbnROb2RlICE9PSBudWxsKSB7CiAgICBvYmouY2FudmFzLnNldFZpZXdCb3goMCwgMCwgMjAwLCAxNTAsIHRydWUpOwogICAgY2FudmFzVyA9IDIwMDsKICAgIGNhbnZhc0ggPSAxNTA7CiAgfSBlbHNlIHsKICAgIGNhbnZhc1cgPSBnZXRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvYmouY29uZmlnLmlkKSwgIndpZHRoIikuc2xpY2UoMCwgLTIpICogMTsKICAgIGNhbnZhc0ggPSBnZXRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvYmouY29uZmlnLmlkKSwgImhlaWdodCIpLnNsaWNlKDAsIC0yKSAqIDE7CiAgfQoKICAvLyB3aWRnZXQgZGltZW5zaW9ucwogIGlmIChvYmouY29uZmlnLmRvbnV0ID09PSB0cnVlKSB7CgogICAgLy8gRE9OVVQgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICAgIC8vIHdpZHRoIG1vcmUgdGhhbiBoZWlnaHQKICAgIGlmIChjYW52YXNXID4gY2FudmFzSCkgewogICAgICB3aWRnZXRIID0gY2FudmFzSDsKICAgICAgd2lkZ2V0VyA9IHdpZGdldEg7CiAgICAgIC8vIHdpZHRoIGxlc3MgdGhhbiBoZWlnaHQKICAgIH0gZWxzZSBpZiAoY2FudmFzVyA8IGNhbnZhc0gpIHsKICAgICAgd2lkZ2V0VyA9IGNhbnZhc1c7CiAgICAgIHdpZGdldEggPSB3aWRnZXRXOwogICAgICAvLyBpZiBoZWlnaHQgZG9uJ3QgZml0LCByZXNjYWxlIGJvdGgKICAgICAgaWYgKHdpZGdldEggPiBjYW52YXNIKSB7CiAgICAgICAgYXNwZWN0ID0gd2lkZ2V0SCAvIGNhbnZhc0g7CiAgICAgICAgd2lkZ2V0SCA9IHdpZGdldEggLyBhc3BlY3Q7CiAgICAgICAgd2lkZ2V0VyA9IHdpZGdldEggLyBhc3BlY3Q7CiAgICAgIH0KICAgICAgLy8gZXF1YWwKICAgIH0gZWxzZSB7CiAgICAgIHdpZGdldFcgPSBjYW52YXNXOwogICAgICB3aWRnZXRIID0gd2lkZ2V0VzsKICAgIH0KCiAgICAvLyBkZWx0YQogICAgZHggPSAoY2FudmFzVyAtIHdpZGdldFcpIC8gMjsKICAgIGR5ID0gKGNhbnZhc0ggLSB3aWRnZXRIKSAvIDI7CgogICAgLy8gdGl0bGUKICAgIHRpdGxlRm9udFNpemUgPSAoKHdpZGdldEggLyA4KSA+IDEwKSA/ICh3aWRnZXRIIC8gMTApIDogMTA7CiAgICB0aXRsZVggPSBkeCArIHdpZGdldFcgLyAyOwogICAgdGl0bGVZID0gZHkgKyB3aWRnZXRIIC8gMTE7CgogICAgLy8gdmFsdWUKICAgIHZhbHVlRm9udFNpemUgPSAoKHdpZGdldEggLyA2LjQpID4gMTYpID8gKHdpZGdldEggLyA1LjQpIDogMTg7CiAgICB2YWx1ZVggPSBkeCArIHdpZGdldFcgLyAyOwogICAgaWYgKG9iai5jb25maWcubGFiZWwgIT09ICcnKSB7CiAgICAgIHZhbHVlWSA9IGR5ICsgd2lkZ2V0SCAvIDEuODU7CiAgICB9IGVsc2UgewogICAgICB2YWx1ZVkgPSBkeSArIHdpZGdldEggLyAxLjc7CiAgICB9CgogICAgLy8gbGFiZWwKICAgIGxhYmVsRm9udFNpemUgPSAoKHdpZGdldEggLyAxNikgPiAxMCkgPyAod2lkZ2V0SCAvIDE2KSA6IDEwOwogICAgbGFiZWxYID0gZHggKyB3aWRnZXRXIC8gMjsKICAgIGxhYmVsWSA9IHZhbHVlWSArIGxhYmVsRm9udFNpemU7CgogICAgLy8gbWluCiAgICBtaW5Gb250U2l6ZSA9ICgod2lkZ2V0SCAvIDE2KSA+IDEwKSA/ICh3aWRnZXRIIC8gMTYpIDogMTA7CiAgICBtaW5YID0gZHggKyAod2lkZ2V0VyAvIDEwKSArICh3aWRnZXRXIC8gNi42NjY2NjY2NjY2NjY2NjcgKiBvYmouY29uZmlnLmdhdWdlV2lkdGhTY2FsZSkgLyAyOwogICAgbWluWSA9IGxhYmVsWTsKCiAgICAvLyBtYXgKICAgIG1heEZvbnRTaXplID0gKCh3aWRnZXRIIC8gMTYpID4gMTApID8gKHdpZGdldEggLyAxNikgOiAxMDsKICAgIG1heFggPSBkeCArIHdpZGdldFcgLSAod2lkZ2V0VyAvIDEwKSAtICh3aWRnZXRXIC8gNi42NjY2NjY2NjY2NjY2NjcgKiBvYmouY29uZmlnLmdhdWdlV2lkdGhTY2FsZSkgLyAyOwogICAgbWF4WSA9IGxhYmVsWTsKCiAgfSBlbHNlIHsKICAgIC8vIEhBTEYgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKICAgIC8vIHdpZHRoIG1vcmUgdGhhbiBoZWlnaHQKICAgIGlmIChjYW52YXNXID4gY2FudmFzSCkgewogICAgICB3aWRnZXRIID0gY2FudmFzSDsKICAgICAgd2lkZ2V0VyA9IHdpZGdldEggKiAxLjI1OwogICAgICAvL2lmIHdpZHRoIGRvZXNuJ3QgZml0LCByZXNjYWxlIGJvdGgKICAgICAgaWYgKHdpZGdldFcgPiBjYW52YXNXKSB7CiAgICAgICAgYXNwZWN0ID0gd2lkZ2V0VyAvIGNhbnZhc1c7CiAgICAgICAgd2lkZ2V0VyA9IHdpZGdldFcgLyBhc3BlY3Q7CiAgICAgICAgd2lkZ2V0SCA9IHdpZGdldEggLyBhc3BlY3Q7CiAgICAgIH0KICAgICAgLy8gd2lkdGggbGVzcyB0aGFuIGhlaWdodAogICAgfSBlbHNlIGlmIChjYW52YXNXIDwgY2FudmFzSCkgewogICAgICB3aWRnZXRXID0gY2FudmFzVzsKICAgICAgd2lkZ2V0SCA9IHdpZGdldFcgLyAxLjI1OwogICAgICAvLyBpZiBoZWlnaHQgZG9uJ3QgZml0LCByZXNjYWxlIGJvdGgKICAgICAgaWYgKHdpZGdldEggPiBjYW52YXNIKSB7CiAgICAgICAgYXNwZWN0ID0gd2lkZ2V0SCAvIGNhbnZhc0g7CiAgICAgICAgd2lkZ2V0SCA9IHdpZGdldEggLyBhc3BlY3Q7CiAgICAgICAgd2lkZ2V0VyA9IHdpZGdldEggLyBhc3BlY3Q7CiAgICAgIH0KICAgICAgLy8gZXF1YWwKICAgIH0gZWxzZSB7CiAgICAgIHdpZGdldFcgPSBjYW52YXNXOwogICAgICB3aWRnZXRIID0gd2lkZ2V0VyAqIDAuNzU7CiAgICB9CgogICAgLy8gZGVsdGEKICAgIGR4ID0gKGNhbnZhc1cgLSB3aWRnZXRXKSAvIDI7CiAgICBkeSA9IChjYW52YXNIIC0gd2lkZ2V0SCkgLyAyOwogICAgaWYgKG9iai5jb25maWcudGl0bGVQb3NpdGlvbiA9PT0gJ2JlbG93JykgewogICAgICAvLyBzaGlmdCB3aG9sZSB0aGluZyBkb3duCiAgICAgIGR5IC09ICh3aWRnZXRIIC8gNi40KTsKICAgIH0KCiAgICAvLyB0aXRsZQogICAgdGl0bGVGb250U2l6ZSA9ICgod2lkZ2V0SCAvIDgpID4gb2JqLmNvbmZpZy50aXRsZU1pbkZvbnRTaXplKSA/ICh3aWRnZXRIIC8gMTApIDogb2JqLmNvbmZpZy50aXRsZU1pbkZvbnRTaXplOwogICAgdGl0bGVYID0gZHggKyB3aWRnZXRXIC8gMjsKICAgIHRpdGxlWSA9IGR5ICsgKG9iai5jb25maWcudGl0bGVQb3NpdGlvbiA9PT0gJ2JlbG93JyA/ICh3aWRnZXRIICogMS4wNykgOiAod2lkZ2V0SCAvIDYuNCkpOwoKICAgIC8vIHZhbHVlCiAgICB2YWx1ZUZvbnRTaXplID0gKCh3aWRnZXRIIC8gNi41KSA+IG9iai5jb25maWcudmFsdWVNaW5Gb250U2l6ZSkgPyAod2lkZ2V0SCAvIDYuNSkgOiBvYmouY29uZmlnLnZhbHVlTWluRm9udFNpemU7CiAgICB2YWx1ZVggPSBkeCArIHdpZGdldFcgLyAyOwogICAgdmFsdWVZID0gZHkgKyB3aWRnZXRIIC8gMS4yNzU7CgogICAgLy8gbGFiZWwKICAgIGxhYmVsRm9udFNpemUgPSAoKHdpZGdldEggLyAxNikgPiBvYmouY29uZmlnLmxhYmVsTWluRm9udFNpemUpID8gKHdpZGdldEggLyAxNikgOiBvYmouY29uZmlnLmxhYmVsTWluRm9udFNpemU7CiAgICBsYWJlbFggPSBkeCArIHdpZGdldFcgLyAyOwogICAgbGFiZWxZID0gdmFsdWVZICsgdmFsdWVGb250U2l6ZSAvIDIgKyA1OwoKICAgIC8vIG1pbgogICAgbWluRm9udFNpemUgPSAoKHdpZGdldEggLyAxNikgPiBvYmouY29uZmlnLm1pbkxhYmVsTWluRm9udFNpemUpID8gKHdpZGdldEggLyAxNikgOiBvYmouY29uZmlnLm1pbkxhYmVsTWluRm9udFNpemU7CiAgICBtaW5YID0gZHggKyAod2lkZ2V0VyAvIDEwKSArICh3aWRnZXRXIC8gNi42NjY2NjY2NjY2NjY2NjcgKiBvYmouY29uZmlnLmdhdWdlV2lkdGhTY2FsZSkgLyAyOwogICAgbWluWSA9IGxhYmVsWTsKCiAgICAvLyBtYXgKICAgIG1heEZvbnRTaXplID0gKCh3aWRnZXRIIC8gMTYpID4gb2JqLmNvbmZpZy5tYXhMYWJlbE1pbkZvbnRTaXplKSA/ICh3aWRnZXRIIC8gMTYpIDogb2JqLmNvbmZpZy5tYXhMYWJlbE1pbkZvbnRTaXplOwogICAgbWF4WCA9IGR4ICsgd2lkZ2V0VyAtICh3aWRnZXRXIC8gMTApIC0gKHdpZGdldFcgLyA2LjY2NjY2NjY2NjY2NjY2NyAqIG9iai5jb25maWcuZ2F1Z2VXaWR0aFNjYWxlKSAvIDI7CiAgICBtYXhZID0gbGFiZWxZOwogIH0KCiAgLy8gcGFyYW1ldGVycwogIG9iai5wYXJhbXMgPSB7CiAgICBjYW52YXNXOiBjYW52YXNXLAogICAgY2FudmFzSDogY2FudmFzSCwKICAgIHdpZGdldFc6IHdpZGdldFcsCiAgICB3aWRnZXRIOiB3aWRnZXRILAogICAgZHg6IGR4LAogICAgZHk6IGR5LAogICAgdGl0bGVGb250U2l6ZTogdGl0bGVGb250U2l6ZSwKICAgIHRpdGxlWDogdGl0bGVYLAogICAgdGl0bGVZOiB0aXRsZVksCiAgICB2YWx1ZUZvbnRTaXplOiB2YWx1ZUZvbnRTaXplLAogICAgdmFsdWVYOiB2YWx1ZVgsCiAgICB2YWx1ZVk6IHZhbHVlWSwKICAgIGxhYmVsRm9udFNpemU6IGxhYmVsRm9udFNpemUsCiAgICBsYWJlbFg6IGxhYmVsWCwKICAgIGxhYmVsWTogbGFiZWxZLAogICAgbWluRm9udFNpemU6IG1pbkZvbnRTaXplLAogICAgbWluWDogbWluWCwKICAgIG1pblk6IG1pblksCiAgICBtYXhGb250U2l6ZTogbWF4Rm9udFNpemUsCiAgICBtYXhYOiBtYXhYLAogICAgbWF4WTogbWF4WQogIH07CgogIC8vIHZhciBjbGVhcgogIGNhbnZhc1csIGNhbnZhc0gsIHdpZGdldFcsIHdpZGdldEgsIGFzcGVjdCwgZHgsIGR5LCB0aXRsZUZvbnRTaXplLCB0aXRsZVgsIHRpdGxlWSwgdmFsdWVGb250U2l6ZSwgdmFsdWVYLCB2YWx1ZVksIGxhYmVsRm9udFNpemUsIGxhYmVsWCwgbGFiZWxZLCBtaW5Gb250U2l6ZSwgbWluWCwgbWluWSwgbWF4Rm9udFNpemUsIG1heFgsIG1heFkgPSBudWxsOwoKICAvLyBwa2kgLSBjdXN0b20gYXR0cmlidXRlIGZvciBnZW5lcmF0aW5nIGdhdWdlIHBhdGhzCiAgb2JqLmNhbnZhcy5jdXN0b21BdHRyaWJ1dGVzLnBraSA9IGZ1bmN0aW9uKHZhbHVlLCBtaW4sIG1heCwgdywgaCwgZHgsIGR5LCBnd3MsIGRvbnV0LCByZXZlcnNlKSB7CgogICAgdmFyIGFscGhhLCBSbywgUmksIEN4LCBDeSwgWG8sIFlvLCBYaSwgWWksIHBhdGg7CgogICAgaWYgKGRvbnV0KSB7CiAgICAgIGFscGhhID0gKDEgLSAyICogKHZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pKSAqIE1hdGguUEk7CiAgICAgIFJvID0gdyAvIDIgLSB3IC8gNzsKICAgICAgUmkgPSBSbyAtIHcgLyA2LjY2NjY2NjY2NjY2NjY2NyAqIGd3czsKCiAgICAgIEN4ID0gdyAvIDIgKyBkeDsKICAgICAgQ3kgPSBoIC8gMS45NSArIGR5OwoKICAgICAgWG8gPSB3IC8gMiArIGR4ICsgUm8gKiBNYXRoLmNvcyhhbHBoYSk7CiAgICAgIFlvID0gaCAtIChoIC0gQ3kpIC0gUm8gKiBNYXRoLnNpbihhbHBoYSk7CiAgICAgIFhpID0gdyAvIDIgKyBkeCArIFJpICogTWF0aC5jb3MoYWxwaGEpOwogICAgICBZaSA9IGggLSAoaCAtIEN5KSAtIFJpICogTWF0aC5zaW4oYWxwaGEpOwoKICAgICAgcGF0aCA9ICJNIiArIChDeCAtIFJpKSArICIsIiArIEN5ICsgIiAiOwogICAgICBwYXRoICs9ICJMIiArIChDeCAtIFJvKSArICIsIiArIEN5ICsgIiAiOwogICAgICBpZiAodmFsdWUgPiAoKG1heCAtIG1pbikgLyAyKSkgewogICAgICAgIHBhdGggKz0gIkEiICsgUm8gKyAiLCIgKyBSbyArICIgMCAwIDEgIiArIChDeCArIFJvKSArICIsIiArIEN5ICsgIiAiOwogICAgICB9CiAgICAgIHBhdGggKz0gIkEiICsgUm8gKyAiLCIgKyBSbyArICIgMCAwIDEgIiArIFhvICsgIiwiICsgWW8gKyAiICI7CiAgICAgIHBhdGggKz0gIkwiICsgWGkgKyAiLCIgKyBZaSArICIgIjsKICAgICAgaWYgKHZhbHVlID4gKChtYXggLSBtaW4pIC8gMikpIHsKICAgICAgICBwYXRoICs9ICJBIiArIFJpICsgIiwiICsgUmkgKyAiIDAgMCAwICIgKyAoQ3ggKyBSaSkgKyAiLCIgKyBDeSArICIgIjsKICAgICAgfQogICAgICBwYXRoICs9ICJBIiArIFJpICsgIiwiICsgUmkgKyAiIDAgMCAwICIgKyAoQ3ggLSBSaSkgKyAiLCIgKyBDeSArICIgIjsKICAgICAgcGF0aCArPSAiWiAiOwoKICAgICAgcmV0dXJuIHsKICAgICAgICBwYXRoOiBwYXRoCiAgICAgIH07CgogICAgfSBlbHNlIHsKICAgICAgYWxwaGEgPSAoMSAtICh2YWx1ZSAtIG1pbikgLyAobWF4IC0gbWluKSkgKiBNYXRoLlBJOwogICAgICBSbyA9IHcgLyAyIC0gdyAvIDEwOwogICAgICBSaSA9IFJvIC0gdyAvIDYuNjY2NjY2NjY2NjY2NjY3ICogZ3dzOwoKICAgICAgQ3ggPSB3IC8gMiArIGR4OwogICAgICBDeSA9IGggLyAxLjI1ICsgZHk7CgogICAgICBYbyA9IHcgLyAyICsgZHggKyBSbyAqIE1hdGguY29zKGFscGhhKTsKICAgICAgWW8gPSBoIC0gKGggLSBDeSkgLSBSbyAqIE1hdGguc2luKGFscGhhKTsKICAgICAgWGkgPSB3IC8gMiArIGR4ICsgUmkgKiBNYXRoLmNvcyhhbHBoYSk7CiAgICAgIFlpID0gaCAtIChoIC0gQ3kpIC0gUmkgKiBNYXRoLnNpbihhbHBoYSk7CgogICAgICBwYXRoID0gIk0iICsgKEN4IC0gUmkpICsgIiwiICsgQ3kgKyAiICI7CiAgICAgIHBhdGggKz0gIkwiICsgKEN4IC0gUm8pICsgIiwiICsgQ3kgKyAiICI7CiAgICAgIHBhdGggKz0gIkEiICsgUm8gKyAiLCIgKyBSbyArICIgMCAwIDEgIiArIFhvICsgIiwiICsgWW8gKyAiICI7CiAgICAgIHBhdGggKz0gIkwiICsgWGkgKyAiLCIgKyBZaSArICIgIjsKICAgICAgcGF0aCArPSAiQSIgKyBSaSArICIsIiArIFJpICsgIiAwIDAgMCAiICsgKEN4IC0gUmkpICsgIiwiICsgQ3kgKyAiICI7CiAgICAgIHBhdGggKz0gIlogIjsKCiAgICAgIHJldHVybiB7CiAgICAgICAgcGF0aDogcGF0aAogICAgICB9OwogICAgfQoKICAgIC8vIHZhciBjbGVhcgogICAgYWxwaGEsIFJvLCBSaSwgQ3gsIEN5LCBYbywgWW8sIFhpLCBZaSwgcGF0aCA9IG51bGw7CiAgfTsKCiAgLy8gbmRsIC0gY3VzdG9tIGF0dHJpYnV0ZSBmb3IgZ2VuZXJhdGluZyBuZWVkbGUgcGF0aAogIG9iai5jYW52YXMuY3VzdG9tQXR0cmlidXRlcy5uZGwgPSBmdW5jdGlvbih2YWx1ZSwgbWluLCBtYXgsIHcsIGgsIGR4LCBkeSwgZ3dzLCBkb251dCkgewoKICAgIHZhciBkbHQgPSB3ICogMy41IC8gMTAwOwogICAgdmFyIGRsYiA9IHcgLyAxNTsKICAgIHZhciBkdyA9IHcgLyAxMDA7CgogICAgaWYgKG9iai5jb25maWcucG9pbnRlck9wdGlvbnMudG9wbGVuZ3RoICE9IG51bGwgJiYgb2JqLmNvbmZpZy5wb2ludGVyT3B0aW9ucy50b3BsZW5ndGggIT0gdW5kZWZpbmVkKSBkbHQgPSBvYmouY29uZmlnLnBvaW50ZXJPcHRpb25zLnRvcGxlbmd0aDsKICAgIGlmIChvYmouY29uZmlnLnBvaW50ZXJPcHRpb25zLmJvdHRvbWxlbmd0aCAhPSBudWxsICYmIG9iai5jb25maWcucG9pbnRlck9wdGlvbnMuYm90dG9tbGVuZ3RoICE9IHVuZGVmaW5lZCkgZGxiID0gb2JqLmNvbmZpZy5wb2ludGVyT3B0aW9ucy5ib3R0b21sZW5ndGg7CiAgICBpZiAob2JqLmNvbmZpZy5wb2ludGVyT3B0aW9ucy5ib3R0b213aWR0aCAhPSBudWxsICYmIG9iai5jb25maWcucG9pbnRlck9wdGlvbnMuYm90dG9td2lkdGggIT0gdW5kZWZpbmVkKSBkdyA9IG9iai5jb25maWcucG9pbnRlck9wdGlvbnMuYm90dG9td2lkdGg7CgogICAgdmFyIGFscGhhLCBSbywgUmksIEN4LCBDeSwgWG8sIFlvLCBYaSwgWWksIFhjLCBZYywgWHosIFl6LCBYYSwgWWEsIFhiLCBZYiwgcGF0aDsKCiAgICBpZiAoZG9udXQpIHsKCiAgICAgIGFscGhhID0gKDEgLSAyICogKHZhbHVlIC0gbWluKSAvIChtYXggLSBtaW4pKSAqIE1hdGguUEk7CiAgICAgIFJvID0gdyAvIDIgLSB3IC8gNzsKICAgICAgUmkgPSBSbyAtIHcgLyA2LjY2NjY2NjY2NjY2NjY2NyAqIGd3czsKCiAgICAgIEN4ID0gdyAvIDIgKyBkeDsKICAgICAgQ3kgPSBoIC8gMS45NSArIGR5OwoKICAgICAgWG8gPSB3IC8gMiArIGR4ICsgUm8gKiBNYXRoLmNvcyhhbHBoYSk7CiAgICAgIFlvID0gaCAtIChoIC0gQ3kpIC0gUm8gKiBNYXRoLnNpbihhbHBoYSk7CiAgICAgIFhpID0gdyAvIDIgKyBkeCArIFJpICogTWF0aC5jb3MoYWxwaGEpOwogICAgICBZaSA9IGggLSAoaCAtIEN5KSAtIFJpICogTWF0aC5zaW4oYWxwaGEpOwoKICAgICAgWGMgPSBYbyArIGRsdCAqIE1hdGguY29zKGFscGhhKTsKICAgICAgWWMgPSBZbyAtIGRsdCAqIE1hdGguc2luKGFscGhhKTsKICAgICAgWHogPSBYaSAtIGRsYiAqIE1hdGguY29zKGFscGhhKTsKICAgICAgWXogPSBZaSArIGRsYiAqIE1hdGguc2luKGFscGhhKTsKCiAgICAgIFhhID0gWHogKyBkdyAqIE1hdGguc2luKGFscGhhKTsKICAgICAgWWEgPSBZeiArIGR3ICogTWF0aC5jb3MoYWxwaGEpOwogICAgICBYYiA9IFh6IC0gZHcgKiBNYXRoLnNpbihhbHBoYSk7CiAgICAgIFliID0gWXogLSBkdyAqIE1hdGguY29zKGFscGhhKTsKCiAgICAgIHBhdGggPSAnTScgKyBYYSArICcsJyArIFlhICsgJyAnOwogICAgICBwYXRoICs9ICdMJyArIFhiICsgJywnICsgWWIgKyAnICc7CiAgICAgIHBhdGggKz0gJ0wnICsgWGMgKyAnLCcgKyBZYyArICcgJzsKICAgICAgcGF0aCArPSAnWiAnOwoKICAgICAgcmV0dXJuIHsKICAgICAgICBwYXRoOiBwYXRoCiAgICAgIH07CgogICAgfSBlbHNlIHsKICAgICAgYWxwaGEgPSAoMSAtICh2YWx1ZSAtIG1pbikgLyAobWF4IC0gbWluKSkgKiBNYXRoLlBJOwogICAgICBSbyA9IHcgLyAyIC0gdyAvIDEwOwogICAgICBSaSA9IFJvIC0gdyAvIDYuNjY2NjY2NjY2NjY2NjY3ICogZ3dzOwoKICAgICAgQ3ggPSB3IC8gMiArIGR4OwogICAgICBDeSA9IGggLyAxLjI1ICsgZHk7CgogICAgICBYbyA9IHcgLyAyICsgZHggKyBSbyAqIE1hdGguY29zKGFscGhhKTsKICAgICAgWW8gPSBoIC0gKGggLSBDeSkgLSBSbyAqIE1hdGguc2luKGFscGhhKTsKICAgICAgWGkgPSB3IC8gMiArIGR4ICsgUmkgKiBNYXRoLmNvcyhhbHBoYSk7CiAgICAgIFlpID0gaCAtIChoIC0gQ3kpIC0gUmkgKiBNYXRoLnNpbihhbHBoYSk7CgogICAgICBYYyA9IFhvICsgZGx0ICogTWF0aC5jb3MoYWxwaGEpOwogICAgICBZYyA9IFlvIC0gZGx0ICogTWF0aC5zaW4oYWxwaGEpOwogICAgICBYeiA9IFhpIC0gZGxiICogTWF0aC5jb3MoYWxwaGEpOwogICAgICBZeiA9IFlpICsgZGxiICogTWF0aC5zaW4oYWxwaGEpOwoKICAgICAgWGEgPSBYeiArIGR3ICogTWF0aC5zaW4oYWxwaGEpOwogICAgICBZYSA9IFl6ICsgZHcgKiBNYXRoLmNvcyhhbHBoYSk7CiAgICAgIFhiID0gWHogLSBkdyAqIE1hdGguc2luKGFscGhhKTsKICAgICAgWWIgPSBZeiAtIGR3ICogTWF0aC5jb3MoYWxwaGEpOwoKICAgICAgcGF0aCA9ICdNJyArIFhhICsgJywnICsgWWEgKyAnICc7CiAgICAgIHBhdGggKz0gJ0wnICsgWGIgKyAnLCcgKyBZYiArICcgJzsKICAgICAgcGF0aCArPSAnTCcgKyBYYyArICcsJyArIFljICsgJyAnOwogICAgICBwYXRoICs9ICdaICc7CgogICAgICByZXR1cm4gewogICAgICAgIHBhdGg6IHBhdGgKICAgICAgfTsKICAgIH0KCiAgICAvLyB2YXIgY2xlYXIKICAgIGFscGhhLCBSbywgUmksIEN4LCBDeSwgWG8sIFlvLCBYaSwgWWksIFhjLCBZYywgWHosIFl6LCBYYSwgWWEsIFhiLCBZYiwgcGF0aCA9IG51bGw7CiAgfTsKCiAgLy8gZ2F1Z2UKICBvYmouZ2F1Z2UgPSBvYmouY2FudmFzLnBhdGgoKS5hdHRyKHsKICAgICJzdHJva2UiOiAibm9uZSIsCiAgICAiZmlsbCI6IG9iai5jb25maWcuZ2F1Z2VDb2xvciwKICAgIHBraTogWwogICAgICBvYmouY29uZmlnLm1heCwKICAgICAgb2JqLmNvbmZpZy5taW4sCiAgICAgIG9iai5jb25maWcubWF4LAogICAgICBvYmoucGFyYW1zLndpZGdldFcsCiAgICAgIG9iai5wYXJhbXMud2lkZ2V0SCwKICAgICAgb2JqLnBhcmFtcy5keCwKICAgICAgb2JqLnBhcmFtcy5keSwKICAgICAgb2JqLmNvbmZpZy5nYXVnZVdpZHRoU2NhbGUsCiAgICAgIG9iai5jb25maWcuZG9udXQsCiAgICAgIG9iai5jb25maWcucmV2ZXJzZQogICAgXQogIH0pOwoKICAvLyBsZXZlbAogIG9iai5sZXZlbCA9IG9iai5jYW52YXMucGF0aCgpLmF0dHIoewogICAgInN0cm9rZSI6ICJub25lIiwKICAgICJmaWxsIjogZ2V0Q29sb3Iob2JqLmNvbmZpZy52YWx1ZSwgKG9iai5jb25maWcudmFsdWUgLSBvYmouY29uZmlnLm1pbikgLyAob2JqLmNvbmZpZy5tYXggLSBvYmouY29uZmlnLm1pbiksIG9iai5jb25maWcubGV2ZWxDb2xvcnMsIG9iai5jb25maWcubm9HcmFkaWVudCwgb2JqLmNvbmZpZy5jdXN0b21TZWN0b3JzKSwKICAgIHBraTogWwogICAgICBvYmouY29uZmlnLm1pbiwKICAgICAgb2JqLmNvbmZpZy5taW4sCiAgICAgIG9iai5jb25maWcubWF4LAogICAgICBvYmoucGFyYW1zLndpZGdldFcsCiAgICAgIG9iai5wYXJhbXMud2lkZ2V0SCwKICAgICAgb2JqLnBhcmFtcy5keCwKICAgICAgb2JqLnBhcmFtcy5keSwKICAgICAgb2JqLmNvbmZpZy5nYXVnZVdpZHRoU2NhbGUsCiAgICAgIG9iai5jb25maWcuZG9udXQsCiAgICAgIG9iai5jb25maWcucmV2ZXJzZQogICAgXQogIH0pOwogIGlmIChvYmouY29uZmlnLmRvbnV0KSB7CiAgICBvYmoubGV2ZWwudHJhbnNmb3JtKCJyIiArIG9iai5jb25maWcuZG9udXRTdGFydEFuZ2xlICsgIiwgIiArIChvYmoucGFyYW1zLndpZGdldFcgLyAyICsgb2JqLnBhcmFtcy5keCkgKyAiLCAiICsgKG9iai5wYXJhbXMud2lkZ2V0SCAvIDEuOTUgKyBvYmoucGFyYW1zLmR5KSk7CiAgfQoKICBpZiAob2JqLmNvbmZpZy5wb2ludGVyKSB7CiAgICAvLyBuZWVkbGUKICAgIG9iai5uZWVkbGUgPSBvYmouY2FudmFzLnBhdGgoKS5hdHRyKHsKICAgICAgInN0cm9rZSI6IChvYmouY29uZmlnLnBvaW50ZXJPcHRpb25zLnN0cm9rZSAhPT0gbnVsbCAmJiBvYmouY29uZmlnLnBvaW50ZXJPcHRpb25zLnN0cm9rZSAhPT0gdW5kZWZpbmVkKSA/IG9iai5jb25maWcucG9pbnRlck9wdGlvbnMuc3Ryb2tlIDogIm5vbmUiLAogICAgICAic3Ryb2tlLXdpZHRoIjogKG9iai5jb25maWcucG9pbnRlck9wdGlvbnMuc3Ryb2tlX3dpZHRoICE9PSBudWxsICYmIG9iai5jb25maWcucG9pbnRlck9wdGlvbnMuc3Ryb2tlX3dpZHRoICE9PSB1bmRlZmluZWQpID8gb2JqLmNvbmZpZy5wb2ludGVyT3B0aW9ucy5zdHJva2Vfd2lkdGggOiAwLAogICAgICAic3Ryb2tlLWxpbmVjYXAiOiAob2JqLmNvbmZpZy5wb2ludGVyT3B0aW9ucy5zdHJva2VfbGluZWNhcCAhPT0gbnVsbCAmJiBvYmouY29uZmlnLnBvaW50ZXJPcHRpb25zLnN0cm9rZV9saW5lY2FwICE9PSB1bmRlZmluZWQpID8gb2JqLmNvbmZpZy5wb2ludGVyT3B0aW9ucy5zdHJva2VfbGluZWNhcCA6ICJzcXVhcmUiLAogICAgICAiZmlsbCI6IChvYmouY29uZmlnLnBvaW50ZXJPcHRpb25zLmNvbG9yICE9PSBudWxsICYmIG9iai5jb25maWcucG9pbnRlck9wdGlvbnMuY29sb3IgIT09IHVuZGVmaW5lZCkgPyBvYmouY29uZmlnLnBvaW50ZXJPcHRpb25zLmNvbG9yIDogIiMwMDAwMDAiLAogICAgICBuZGw6IFsKICAgICAgICBvYmouY29uZmlnLm1pbiwKICAgICAgICBvYmouY29uZmlnLm1pbiwKICAgICAgICBvYmouY29uZmlnLm1heCwKICAgICAgICBvYmoucGFyYW1zLndpZGdldFcsCiAgICAgICAgb2JqLnBhcmFtcy53aWRnZXRILAogICAgICAgIG9iai5wYXJhbXMuZHgsCiAgICAgICAgb2JqLnBhcmFtcy5keSwKICAgICAgICBvYmouY29uZmlnLmdhdWdlV2lkdGhTY2FsZSwKICAgICAgICBvYmouY29uZmlnLmRvbnV0CiAgICAgIF0KICAgIH0pOwoKICAgIGlmIChvYmouY29uZmlnLmRvbnV0KSB7CiAgICAgIG9iai5uZWVkbGUudHJhbnNmb3JtKCJyIiArIG9iai5jb25maWcuZG9udXRTdGFydEFuZ2xlICsgIiwgIiArIChvYmoucGFyYW1zLndpZGdldFcgLyAyICsgb2JqLnBhcmFtcy5keCkgKyAiLCAiICsgKG9iai5wYXJhbXMud2lkZ2V0SCAvIDEuOTUgKyBvYmoucGFyYW1zLmR5KSk7CiAgICB9CgogIH0KCiAgLy8gdGl0bGUKICBvYmoudHh0VGl0bGUgPSBvYmouY2FudmFzLnRleHQob2JqLnBhcmFtcy50aXRsZVgsIG9iai5wYXJhbXMudGl0bGVZLCBvYmouY29uZmlnLnRpdGxlKTsKICBvYmoudHh0VGl0bGUuYXR0cih7CiAgICAiZm9udC1zaXplIjogb2JqLnBhcmFtcy50aXRsZUZvbnRTaXplLAogICAgImZvbnQtd2VpZ2h0IjogImJvbGQiLAogICAgImZvbnQtZmFtaWx5Ijogb2JqLmNvbmZpZy50aXRsZUZvbnRGYW1pbHksCiAgICAiZmlsbCI6IG9iai5jb25maWcudGl0bGVGb250Q29sb3IsCiAgICAiZmlsbC1vcGFjaXR5IjogIjEiCiAgfSk7CiAgc2V0RHkob2JqLnR4dFRpdGxlLCBvYmoucGFyYW1zLnRpdGxlRm9udFNpemUsIG9iai5wYXJhbXMudGl0bGVZKTsKCiAgLy8gdmFsdWUKICBvYmoudHh0VmFsdWUgPSBvYmouY2FudmFzLnRleHQob2JqLnBhcmFtcy52YWx1ZVgsIG9iai5wYXJhbXMudmFsdWVZLCAwKTsKICBvYmoudHh0VmFsdWUuYXR0cih7CiAgICAiZm9udC1zaXplIjogb2JqLnBhcmFtcy52YWx1ZUZvbnRTaXplLAogICAgImZvbnQtd2VpZ2h0IjogImJvbGQiLAogICAgImZvbnQtZmFtaWx5Ijogb2JqLmNvbmZpZy52YWx1ZUZvbnRGYW1pbHksCiAgICAiZmlsbCI6IG9iai5jb25maWcudmFsdWVGb250Q29sb3IsCiAgICAiZmlsbC1vcGFjaXR5IjogIjAiCiAgfSk7CiAgc2V0RHkob2JqLnR4dFZhbHVlLCBvYmoucGFyYW1zLnZhbHVlRm9udFNpemUsIG9iai5wYXJhbXMudmFsdWVZKTsKCiAgLy8gbGFiZWwKICBvYmoudHh0TGFiZWwgPSBvYmouY2FudmFzLnRleHQob2JqLnBhcmFtcy5sYWJlbFgsIG9iai5wYXJhbXMubGFiZWxZLCBvYmouY29uZmlnLmxhYmVsKTsKICBvYmoudHh0TGFiZWwuYXR0cih7CiAgICAiZm9udC1zaXplIjogb2JqLnBhcmFtcy5sYWJlbEZvbnRTaXplLAogICAgImZvbnQtd2VpZ2h0IjogIm5vcm1hbCIsCiAgICAiZm9udC1mYW1pbHkiOiAiQXJpYWwiLAogICAgImZpbGwiOiBvYmouY29uZmlnLmxhYmVsRm9udENvbG9yLAogICAgImZpbGwtb3BhY2l0eSI6ICIwIgogIH0pOwogIHNldER5KG9iai50eHRMYWJlbCwgb2JqLnBhcmFtcy5sYWJlbEZvbnRTaXplLCBvYmoucGFyYW1zLmxhYmVsWSk7CgogIC8vIG1pbgogIHZhciBtaW4gPSBvYmouY29uZmlnLm1pbjsKICBpZiAob2JqLmNvbmZpZy5yZXZlcnNlKSB7CiAgICBtaW4gPSBvYmouY29uZmlnLm1heDsKICB9CgogIG9iai50eHRNaW5pbXVtID0gbWluOwogIGlmIChvYmouY29uZmlnLm1pblR4dCkgewogICAgb2JqLnR4dE1pbmltdW0gPSBvYmouY29uZmlnLm1pblR4dDsKICB9IGVsc2UgaWYgKG9iai5jb25maWcuaHVtYW5GcmllbmRseSkgewogICAgb2JqLnR4dE1pbmltdW0gPSBodW1hbkZyaWVuZGx5TnVtYmVyKG1pbiwgb2JqLmNvbmZpZy5odW1hbkZyaWVuZGx5RGVjaW1hbCk7CiAgfSBlbHNlIGlmIChvYmouY29uZmlnLmZvcm1hdE51bWJlcikgewogICAgb2JqLnR4dE1pbmltdW0gPSBmb3JtYXROdW1iZXIobWluKTsKICB9CiAgb2JqLnR4dE1pbiA9IG9iai5jYW52YXMudGV4dChvYmoucGFyYW1zLm1pblgsIG9iai5wYXJhbXMubWluWSwgb2JqLnR4dE1pbmltdW0pOwogIG9iai50eHRNaW4uYXR0cih7CiAgICAiZm9udC1zaXplIjogb2JqLnBhcmFtcy5taW5Gb250U2l6ZSwKICAgICJmb250LXdlaWdodCI6ICJub3JtYWwiLAogICAgImZvbnQtZmFtaWx5IjogIkFyaWFsIiwKICAgICJmaWxsIjogb2JqLmNvbmZpZy5sYWJlbEZvbnRDb2xvciwKICAgICJmaWxsLW9wYWNpdHkiOiAob2JqLmNvbmZpZy5oaWRlTWluTWF4IHx8IG9iai5jb25maWcuZG9udXQpID8gIjAiIDogIjEiCiAgfSk7CiAgc2V0RHkob2JqLnR4dE1pbiwgb2JqLnBhcmFtcy5taW5Gb250U2l6ZSwgb2JqLnBhcmFtcy5taW5ZKTsKCiAgLy8gbWF4CiAgdmFyIG1heCA9IG9iai5jb25maWcubWF4OwogIGlmIChvYmouY29uZmlnLnJldmVyc2UpIHsKICAgIG1heCA9IG9iai5jb25maWcubWluOwogIH0KICBvYmoudHh0TWF4aW11bSA9IG1heDsKICBpZiAob2JqLmNvbmZpZy5tYXhUeHQpIHsKICAgIG9iai50eHRNYXhpbXVtID0gb2JqLmNvbmZpZy5tYXhUeHQ7CiAgfSBlbHNlIGlmIChvYmouY29uZmlnLmh1bWFuRnJpZW5kbHkpIHsKICAgIG9iai50eHRNYXhpbXVtID0gaHVtYW5GcmllbmRseU51bWJlcihtYXgsIG9iai5jb25maWcuaHVtYW5GcmllbmRseURlY2ltYWwpOwogIH0gZWxzZSBpZiAob2JqLmNvbmZpZy5mb3JtYXROdW1iZXIpIHsKICAgIG9iai50eHRNYXhpbXVtID0gZm9ybWF0TnVtYmVyKG1heCk7CiAgfQogIG9iai50eHRNYXggPSBvYmouY2FudmFzLnRleHQob2JqLnBhcmFtcy5tYXhYLCBvYmoucGFyYW1zLm1heFksIG9iai50eHRNYXhpbXVtKTsKICBvYmoudHh0TWF4LmF0dHIoewogICAgImZvbnQtc2l6ZSI6IG9iai5wYXJhbXMubWF4Rm9udFNpemUsCiAgICAiZm9udC13ZWlnaHQiOiAibm9ybWFsIiwKICAgICJmb250LWZhbWlseSI6ICJBcmlhbCIsCiAgICAiZmlsbCI6IG9iai5jb25maWcubGFiZWxGb250Q29sb3IsCiAgICAiZmlsbC1vcGFjaXR5IjogKG9iai5jb25maWcuaGlkZU1pbk1heCB8fCBvYmouY29uZmlnLmRvbnV0KSA/ICIwIiA6ICIxIgogIH0pOwogIHNldER5KG9iai50eHRNYXgsIG9iai5wYXJhbXMubWF4Rm9udFNpemUsIG9iai5wYXJhbXMubWF4WSk7CgogIHZhciBkZWZzID0gb2JqLmNhbnZhcy5jYW52YXMuY2hpbGROb2Rlc1sxXTsKICB2YXIgc3ZnID0gImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIjsKCiAgaWYgKGllICE9PSAndW5kZWZpbmVkJyAmJiBpZSA8IDkpIHsKICAgIC8vIFZNTCBtb2RlIC0gbm8gU1ZHICYgU1ZHIGZpbHRlciBzdXBwb3J0CiAgfSBlbHNlIGlmIChpZSAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIG9uQ3JlYXRlRWxlbWVudE5zUmVhZHkoZnVuY3Rpb24oKSB7CiAgICAgIG9iai5nZW5lcmF0ZVNoYWRvdyhzdmcsIGRlZnMpOwogICAgfSk7CiAgfSBlbHNlIHsKICAgIG9iai5nZW5lcmF0ZVNoYWRvdyhzdmcsIGRlZnMpOwogIH0KCiAgLy8gdmFyIGNsZWFyCiAgZGVmcywgc3ZnID0gbnVsbDsKCiAgLy8gc2V0IHZhbHVlIHRvIGRpc3BsYXkKICBpZiAob2JqLmNvbmZpZy50ZXh0UmVuZGVyZXIpIHsKICAgIG9iai5vcmlnaW5hbFZhbHVlID0gb2JqLmNvbmZpZy50ZXh0UmVuZGVyZXIob2JqLm9yaWdpbmFsVmFsdWUpOwogIH0gZWxzZSBpZiAob2JqLmNvbmZpZy5odW1hbkZyaWVuZGx5KSB7CiAgICBvYmoub3JpZ2luYWxWYWx1ZSA9IGh1bWFuRnJpZW5kbHlOdW1iZXIob2JqLm9yaWdpbmFsVmFsdWUsIG9iai5jb25maWcuaHVtYW5GcmllbmRseURlY2ltYWwpICsgb2JqLmNvbmZpZy5zeW1ib2w7CiAgfSBlbHNlIGlmIChvYmouY29uZmlnLmZvcm1hdE51bWJlcikgewogICAgb2JqLm9yaWdpbmFsVmFsdWUgPSBmb3JtYXROdW1iZXIob2JqLm9yaWdpbmFsVmFsdWUpICsgb2JqLmNvbmZpZy5zeW1ib2w7CiAgfSBlbHNlIHsKICAgIG9iai5vcmlnaW5hbFZhbHVlID0gKG9iai5vcmlnaW5hbFZhbHVlICogMSkudG9GaXhlZChvYmouY29uZmlnLmRlY2ltYWxzKSArIG9iai5jb25maWcuc3ltYm9sOwogIH0KCiAgaWYgKG9iai5jb25maWcuY291bnRlciA9PT0gdHJ1ZSkgewogICAgLy9vbiBlYWNoIGFuaW1hdGlvbiBmcmFtZQogICAgZXZlLm9uKCJyYXBoYWVsLmFuaW0uZnJhbWUuIiArIChvYmoubGV2ZWwuaWQpLCBmdW5jdGlvbigpIHsKICAgICAgdmFyIGN1cnJlbnRWYWx1ZSA9IG9iai5sZXZlbC5hdHRyKCJwa2kiKVswXTsKICAgICAgaWYgKG9iai5jb25maWcucmV2ZXJzZSkgewogICAgICAgIGN1cnJlbnRWYWx1ZSA9IChvYmouY29uZmlnLm1heCAqIDEpICsgKG9iai5jb25maWcubWluICogMSkgLSAob2JqLmxldmVsLmF0dHIoInBraSIpWzBdICogMSk7CiAgICAgIH0KICAgICAgaWYgKG9iai5jb25maWcudGV4dFJlbmRlcmVyKSB7CiAgICAgICAgb2JqLnR4dFZhbHVlLmF0dHIoInRleHQiLCBvYmouY29uZmlnLnRleHRSZW5kZXJlcihNYXRoLmZsb29yKGN1cnJlbnRWYWx1ZSkpKTsKICAgICAgfSBlbHNlIGlmIChvYmouY29uZmlnLmh1bWFuRnJpZW5kbHkpIHsKICAgICAgICBvYmoudHh0VmFsdWUuYXR0cigidGV4dCIsIGh1bWFuRnJpZW5kbHlOdW1iZXIoTWF0aC5mbG9vcihjdXJyZW50VmFsdWUpLCBvYmouY29uZmlnLmh1bWFuRnJpZW5kbHlEZWNpbWFsKSArIG9iai5jb25maWcuc3ltYm9sKTsKICAgICAgfSBlbHNlIGlmIChvYmouY29uZmlnLmZvcm1hdE51bWJlcikgewogICAgICAgIG9iai50eHRWYWx1ZS5hdHRyKCJ0ZXh0IiwgZm9ybWF0TnVtYmVyKE1hdGguZmxvb3IoY3VycmVudFZhbHVlKSkgKyBvYmouY29uZmlnLnN5bWJvbCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgb2JqLnR4dFZhbHVlLmF0dHIoInRleHQiLCAoY3VycmVudFZhbHVlICogMSkudG9GaXhlZChvYmouY29uZmlnLmRlY2ltYWxzKSArIG9iai5jb25maWcuc3ltYm9sKTsKICAgICAgfQogICAgICBzZXREeShvYmoudHh0VmFsdWUsIG9iai5wYXJhbXMudmFsdWVGb250U2l6ZSwgb2JqLnBhcmFtcy52YWx1ZVkpOwogICAgICBjdXJyZW50VmFsdWUgPSBudWxsOwogICAgfSk7CiAgICAvL29uIGFuaW1hdGlvbiBlbmQKICAgIGV2ZS5vbigicmFwaGFlbC5hbmltLmZpbmlzaC4iICsgKG9iai5sZXZlbC5pZCksIGZ1bmN0aW9uKCkgewogICAgICBvYmoudHh0VmFsdWUuYXR0cih7CiAgICAgICAgInRleHQiOiBvYmoub3JpZ2luYWxWYWx1ZQogICAgICB9KTsKICAgICAgc2V0RHkob2JqLnR4dFZhbHVlLCBvYmoucGFyYW1zLnZhbHVlRm9udFNpemUsIG9iai5wYXJhbXMudmFsdWVZKTsKICAgIH0pOwogIH0gZWxzZSB7CiAgICAvL29uIGFuaW1hdGlvbiBzdGFydAogICAgZXZlLm9uKCJyYXBoYWVsLmFuaW0uc3RhcnQuIiArIChvYmoubGV2ZWwuaWQpLCBmdW5jdGlvbigpIHsKICAgICAgb2JqLnR4dFZhbHVlLmF0dHIoewogICAgICAgICJ0ZXh0Ijogb2JqLm9yaWdpbmFsVmFsdWUKICAgICAgfSk7CiAgICAgIHNldER5KG9iai50eHRWYWx1ZSwgb2JqLnBhcmFtcy52YWx1ZUZvbnRTaXplLCBvYmoucGFyYW1zLnZhbHVlWSk7CiAgICB9KTsKICB9CgogIC8vIGFuaW1hdGUgZ2F1Z2UgbGV2ZWwsIHZhbHVlICYgbGFiZWwKICB2YXIgcnZsID0gb2JqLmNvbmZpZy52YWx1ZTsKICBpZiAob2JqLmNvbmZpZy5yZXZlcnNlKSB7CiAgICBydmwgPSAob2JqLmNvbmZpZy5tYXggKiAxKSArIChvYmouY29uZmlnLm1pbiAqIDEpIC0gKG9iai5jb25maWcudmFsdWUgKiAxKTsKICB9CiAgb2JqLmxldmVsLmFuaW1hdGUoewogICAgcGtpOiBbCiAgICAgIHJ2bCwKICAgICAgb2JqLmNvbmZpZy5taW4sCiAgICAgIG9iai5jb25maWcubWF4LAogICAgICBvYmoucGFyYW1zLndpZGdldFcsCiAgICAgIG9iai5wYXJhbXMud2lkZ2V0SCwKICAgICAgb2JqLnBhcmFtcy5keCwKICAgICAgb2JqLnBhcmFtcy5keSwKICAgICAgb2JqLmNvbmZpZy5nYXVnZVdpZHRoU2NhbGUsCiAgICAgIG9iai5jb25maWcuZG9udXQsCiAgICAgIG9iai5jb25maWcucmV2ZXJzZQogICAgXQogIH0sIG9iai5jb25maWcuc3RhcnRBbmltYXRpb25UaW1lLCBvYmouY29uZmlnLnN0YXJ0QW5pbWF0aW9uVHlwZSwgb2JqLmNvbmZpZy5vbkFuaW1hdGlvbkVuZCk7CgogIGlmIChvYmouY29uZmlnLnBvaW50ZXIpIHsKICAgIG9iai5uZWVkbGUuYW5pbWF0ZSh7CiAgICAgIG5kbDogWwogICAgICAgIHJ2bCwKICAgICAgICBvYmouY29uZmlnLm1pbiwKICAgICAgICBvYmouY29uZmlnLm1heCwKICAgICAgICBvYmoucGFyYW1zLndpZGdldFcsCiAgICAgICAgb2JqLnBhcmFtcy53aWRnZXRILAogICAgICAgIG9iai5wYXJhbXMuZHgsCiAgICAgICAgb2JqLnBhcmFtcy5keSwKICAgICAgICBvYmouY29uZmlnLmdhdWdlV2lkdGhTY2FsZSwKICAgICAgICBvYmouY29uZmlnLmRvbnV0CiAgICAgIF0KICAgIH0sIG9iai5jb25maWcuc3RhcnRBbmltYXRpb25UaW1lLCBvYmouY29uZmlnLnN0YXJ0QW5pbWF0aW9uVHlwZSk7CiAgfQoKICBvYmoudHh0VmFsdWUuYW5pbWF0ZSh7CiAgICAiZmlsbC1vcGFjaXR5IjogKG9iai5jb25maWcuaGlkZVZhbHVlKSA/ICIwIiA6ICIxIgogIH0sIG9iai5jb25maWcuc3RhcnRBbmltYXRpb25UaW1lLCBvYmouY29uZmlnLnN0YXJ0QW5pbWF0aW9uVHlwZSk7CiAgb2JqLnR4dExhYmVsLmFuaW1hdGUoewogICAgImZpbGwtb3BhY2l0eSI6ICIxIgogIH0sIG9iai5jb25maWcuc3RhcnRBbmltYXRpb25UaW1lLCBvYmouY29uZmlnLnN0YXJ0QW5pbWF0aW9uVHlwZSk7Cn07CgovKiogUmVmcmVzaCBnYXVnZSBsZXZlbCAqLwpKdXN0R2FnZS5wcm90b3R5cGUucmVmcmVzaCA9IGZ1bmN0aW9uKHZhbCwgbWF4LCBjb25maWcpIHsKCiAgdmFyIG9iaiA9IHRoaXM7CiAgdmFyIGRpc3BsYXlWYWwsIGNvbG9yLCBtYXggPSBtYXggfHwgbnVsbDsKCiAgaWYoY29uZmlnICYmICh0eXBlb2YgY29uZmlnICA9PT0gIm9iamVjdCIpKSB7CiAgICBmb3IodmFyIGtleSBpbiBjb25maWcpIHsKICAgICAgaWYoIWNvbmZpZy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgb2JqLmNvbmZpZ1trZXldID0gY29uZmlnW2tleV07CiAgICB9CiAgfQoKICAvLyBzZXQgbmV3IG1heAogIGlmIChtYXggIT09IG51bGwpIHsKICAgIG9iai5jb25maWcubWF4ID0gbWF4OwogICAgLy8gVE9ETzogdXBkYXRlIGN1c3RvbVNlY3RvcnMKCiAgICBvYmoudHh0TWF4aW11bSA9IG9iai5jb25maWcubWF4OwogICAgaWYgKG9iai5jb25maWcubWF4VHh0KSB7CiAgICAgIG9iai50eHRNYXhpbXVtID0gb2JqLmNvbmZpZy5tYXhUeHQ7CiAgICB9IGVsc2UgaWYgKG9iai5jb25maWcuaHVtYW5GcmllbmRseSkgewogICAgICBvYmoudHh0TWF4aW11bSA9IGh1bWFuRnJpZW5kbHlOdW1iZXIob2JqLmNvbmZpZy5tYXgsIG9iai5jb25maWcuaHVtYW5GcmllbmRseURlY2ltYWwpOwogICAgfSBlbHNlIGlmIChvYmouY29uZmlnLmZvcm1hdE51bWJlcikgewogICAgICBvYmoudHh0TWF4aW11bSA9IGZvcm1hdE51bWJlcihvYmouY29uZmlnLm1heCk7CiAgICB9CiAgICBpZiAoIW9iai5jb25maWcucmV2ZXJzZSkgewogICAgICBvYmoudHh0TWF4LmF0dHIoewogICAgICAgICJ0ZXh0Ijogb2JqLnR4dE1heGltdW0KICAgICAgfSk7CiAgICAgIHNldER5KG9iai50eHRNYXgsIG9iai5wYXJhbXMubWF4Rm9udFNpemUsIG9iai5wYXJhbXMubWF4WSk7CiAgICB9IGVsc2UgewogICAgICBvYmoudHh0TWluLmF0dHIoewogICAgICAgICJ0ZXh0Ijogb2JqLnR4dE1heGltdW0KICAgICAgfSk7CiAgICAgIG9iai50eHRNYXguYXR0cih7CiAgICAgICAgInRleHQiOiBvYmoudHh0TWluaW11bQogICAgICB9KTsKICAgICAgc2V0RHkob2JqLnR4dE1pbiwgb2JqLnBhcmFtcy5taW5Gb250U2l6ZSwgb2JqLnBhcmFtcy5taW5ZKTsKICAgICAgc2V0RHkob2JqLnR4dE1heCwgb2JqLnBhcmFtcy5taW5Gb250U2l6ZSwgb2JqLnBhcmFtcy5taW5ZKTsKICAgIH0KICB9CgogIC8vIG92ZXJmbG93IHZhbHVlcwogIGRpc3BsYXlWYWwgPSB2YWw7CiAgaWYgKCh2YWwgKiAxKSA+IChvYmouY29uZmlnLm1heCAqIDEpKSB7CiAgICB2YWwgPSAob2JqLmNvbmZpZy5tYXggKiAxKTsKICB9CiAgaWYgKCh2YWwgKiAxKSA8IChvYmouY29uZmlnLm1pbiAqIDEpKSB7CiAgICB2YWwgPSAob2JqLmNvbmZpZy5taW4gKiAxKTsKICB9CgogIGNvbG9yID0gZ2V0Q29sb3IodmFsLCAodmFsIC0gb2JqLmNvbmZpZy5taW4pIC8gKG9iai5jb25maWcubWF4IC0gb2JqLmNvbmZpZy5taW4pLCBvYmouY29uZmlnLmxldmVsQ29sb3JzLCBvYmouY29uZmlnLm5vR3JhZGllbnQsIG9iai5jb25maWcuY3VzdG9tU2VjdG9ycyk7CgogIGlmIChvYmouY29uZmlnLnRleHRSZW5kZXJlcikgewogICAgZGlzcGxheVZhbCA9IG9iai5jb25maWcudGV4dFJlbmRlcmVyKGRpc3BsYXlWYWwpOwogIH0gZWxzZSBpZiAob2JqLmNvbmZpZy5odW1hbkZyaWVuZGx5KSB7CiAgICBkaXNwbGF5VmFsID0gaHVtYW5GcmllbmRseU51bWJlcihkaXNwbGF5VmFsLCBvYmouY29uZmlnLmh1bWFuRnJpZW5kbHlEZWNpbWFsKSArIG9iai5jb25maWcuc3ltYm9sOwogIH0gZWxzZSBpZiAob2JqLmNvbmZpZy5mb3JtYXROdW1iZXIpIHsKICAgIGRpc3BsYXlWYWwgPSBmb3JtYXROdW1iZXIoKGRpc3BsYXlWYWwgKiAxKS50b0ZpeGVkKG9iai5jb25maWcuZGVjaW1hbHMpKSArIG9iai5jb25maWcuc3ltYm9sOwogIH0gZWxzZSB7CiAgICBkaXNwbGF5VmFsID0gKGRpc3BsYXlWYWwgKiAxKS50b0ZpeGVkKG9iai5jb25maWcuZGVjaW1hbHMpICsgb2JqLmNvbmZpZy5zeW1ib2w7CiAgfQogIG9iai5vcmlnaW5hbFZhbHVlID0gZGlzcGxheVZhbDsKICBvYmouY29uZmlnLnZhbHVlID0gdmFsICogMTsKCiAgaWYgKCFvYmouY29uZmlnLmNvdW50ZXIpIHsKICAgIG9iai50eHRWYWx1ZS5hdHRyKHsKICAgICAgInRleHQiOiBkaXNwbGF5VmFsCiAgICB9KTsKICAgIHNldER5KG9iai50eHRWYWx1ZSwgb2JqLnBhcmFtcy52YWx1ZUZvbnRTaXplLCBvYmoucGFyYW1zLnZhbHVlWSk7CiAgfQoKICB2YXIgcnZsID0gb2JqLmNvbmZpZy52YWx1ZTsKICBpZiAob2JqLmNvbmZpZy5yZXZlcnNlKSB7CiAgICBydmwgPSAob2JqLmNvbmZpZy5tYXggKiAxKSArIChvYmouY29uZmlnLm1pbiAqIDEpIC0gKG9iai5jb25maWcudmFsdWUgKiAxKTsKICB9CiAgb2JqLmxldmVsLmFuaW1hdGUoewogICAgcGtpOiBbCiAgICAgIHJ2bCwKICAgICAgb2JqLmNvbmZpZy5taW4sCiAgICAgIG9iai5jb25maWcubWF4LAogICAgICBvYmoucGFyYW1zLndpZGdldFcsCiAgICAgIG9iai5wYXJhbXMud2lkZ2V0SCwKICAgICAgb2JqLnBhcmFtcy5keCwKICAgICAgb2JqLnBhcmFtcy5keSwKICAgICAgb2JqLmNvbmZpZy5nYXVnZVdpZHRoU2NhbGUsCiAgICAgIG9iai5jb25maWcuZG9udXQsCiAgICAgIG9iai5jb25maWcucmV2ZXJzZQogICAgXSwKICAgICJmaWxsIjogY29sb3IKICB9LCBvYmouY29uZmlnLnJlZnJlc2hBbmltYXRpb25UaW1lLCBvYmouY29uZmlnLnJlZnJlc2hBbmltYXRpb25UeXBlLCBvYmouY29uZmlnLm9uQW5pbWF0aW9uRW5kKTsKCiAgaWYgKG9iai5jb25maWcucG9pbnRlcikgewogICAgb2JqLm5lZWRsZS5hbmltYXRlKHsKICAgICAgbmRsOiBbCiAgICAgICAgcnZsLAogICAgICAgIG9iai5jb25maWcubWluLAogICAgICAgIG9iai5jb25maWcubWF4LAogICAgICAgIG9iai5wYXJhbXMud2lkZ2V0VywKICAgICAgICBvYmoucGFyYW1zLndpZGdldEgsCiAgICAgICAgb2JqLnBhcmFtcy5keCwKICAgICAgICBvYmoucGFyYW1zLmR5LAogICAgICAgIG9iai5jb25maWcuZ2F1Z2VXaWR0aFNjYWxlLAogICAgICAgIG9iai5jb25maWcuZG9udXQKICAgICAgXQogICAgfSwgb2JqLmNvbmZpZy5yZWZyZXNoQW5pbWF0aW9uVGltZSwgb2JqLmNvbmZpZy5yZWZyZXNoQW5pbWF0aW9uVHlwZSk7CiAgfQoKICAvLyB2YXIgY2xlYXIKICBvYmosIGRpc3BsYXlWYWwsIGNvbG9yLCBtYXggPSBudWxsOwp9OwoKLyoqIEdlbmVyYXRlIHNoYWRvdyAqLwpKdXN0R2FnZS5wcm90b3R5cGUuZ2VuZXJhdGVTaGFkb3cgPSBmdW5jdGlvbihzdmcsIGRlZnMpIHsKCiAgdmFyIG9iaiA9IHRoaXM7CiAgdmFyIHNpZCA9ICJpbm5lci1zaGFkb3ctIiArIG9iai5jb25maWcuaWQ7CiAgdmFyIGdhdXNzRmlsdGVyLCBmZU9mZnNldCwgZmVHYXVzc2lhbkJsdXIsIGZlQ29tcG9zaXRlMSwgZmVGbG9vZCwgZmVDb21wb3NpdGUyLCBmZUNvbXBvc2l0ZTM7CgogIC8vIEZJTFRFUgogIGdhdXNzRmlsdGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2ZywgImZpbHRlciIpOwogIGdhdXNzRmlsdGVyLnNldEF0dHJpYnV0ZSgiaWQiLCBzaWQpOwogIGRlZnMuYXBwZW5kQ2hpbGQoZ2F1c3NGaWx0ZXIpOwoKICAvLyBvZmZzZXQKICBmZU9mZnNldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmcsICJmZU9mZnNldCIpOwogIGZlT2Zmc2V0LnNldEF0dHJpYnV0ZSgiZHgiLCAwKTsKICBmZU9mZnNldC5zZXRBdHRyaWJ1dGUoImR5Iiwgb2JqLmNvbmZpZy5zaGFkb3dWZXJ0aWNhbE9mZnNldCk7CiAgZ2F1c3NGaWx0ZXIuYXBwZW5kQ2hpbGQoZmVPZmZzZXQpOwoKICAvLyBibHVyCiAgZmVHYXVzc2lhbkJsdXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoc3ZnLCAiZmVHYXVzc2lhbkJsdXIiKTsKICBmZUdhdXNzaWFuQmx1ci5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsICJvZmZzZXQtYmx1ciIpOwogIGZlR2F1c3NpYW5CbHVyLnNldEF0dHJpYnV0ZSgic3RkRGV2aWF0aW9uIiwgb2JqLmNvbmZpZy5zaGFkb3dTaXplKTsKICBnYXVzc0ZpbHRlci5hcHBlbmRDaGlsZChmZUdhdXNzaWFuQmx1cik7CgogIC8vIGNvbXBvc2l0ZSAxCiAgZmVDb21wb3NpdGUxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2ZywgImZlQ29tcG9zaXRlIik7CiAgZmVDb21wb3NpdGUxLnNldEF0dHJpYnV0ZSgib3BlcmF0b3IiLCAib3V0Iik7CiAgZmVDb21wb3NpdGUxLnNldEF0dHJpYnV0ZSgiaW4iLCAiU291cmNlR3JhcGhpYyIpOwogIGZlQ29tcG9zaXRlMS5zZXRBdHRyaWJ1dGUoImluMiIsICJvZmZzZXQtYmx1ciIpOwogIGZlQ29tcG9zaXRlMS5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsICJpbnZlcnNlIik7CiAgZ2F1c3NGaWx0ZXIuYXBwZW5kQ2hpbGQoZmVDb21wb3NpdGUxKTsKCiAgLy8gZmxvb2QKICBmZUZsb29kID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKHN2ZywgImZlRmxvb2QiKTsKICBmZUZsb29kLnNldEF0dHJpYnV0ZSgiZmxvb2QtY29sb3IiLCAiYmxhY2siKTsKICBmZUZsb29kLnNldEF0dHJpYnV0ZSgiZmxvb2Qtb3BhY2l0eSIsIG9iai5jb25maWcuc2hhZG93T3BhY2l0eSk7CiAgZmVGbG9vZC5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsICJjb2xvciIpOwogIGdhdXNzRmlsdGVyLmFwcGVuZENoaWxkKGZlRmxvb2QpOwoKICAvLyBjb21wb3NpdGUgMgogIGZlQ29tcG9zaXRlMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmcsICJmZUNvbXBvc2l0ZSIpOwogIGZlQ29tcG9zaXRlMi5zZXRBdHRyaWJ1dGUoIm9wZXJhdG9yIiwgImluIik7CiAgZmVDb21wb3NpdGUyLnNldEF0dHJpYnV0ZSgiaW4iLCAiY29sb3IiKTsKICBmZUNvbXBvc2l0ZTIuc2V0QXR0cmlidXRlKCJpbjIiLCAiaW52ZXJzZSIpOwogIGZlQ29tcG9zaXRlMi5zZXRBdHRyaWJ1dGUoInJlc3VsdCIsICJzaGFkb3ciKTsKICBnYXVzc0ZpbHRlci5hcHBlbmRDaGlsZChmZUNvbXBvc2l0ZTIpOwoKICAvLyBjb21wb3NpdGUgMwogIGZlQ29tcG9zaXRlMyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhzdmcsICJmZUNvbXBvc2l0ZSIpOwogIGZlQ29tcG9zaXRlMy5zZXRBdHRyaWJ1dGUoIm9wZXJhdG9yIiwgIm92ZXIiKTsKICBmZUNvbXBvc2l0ZTMuc2V0QXR0cmlidXRlKCJpbiIsICJzaGFkb3ciKTsKICBmZUNvbXBvc2l0ZTMuc2V0QXR0cmlidXRlKCJpbjIiLCAiU291cmNlR3JhcGhpYyIpOwogIGdhdXNzRmlsdGVyLmFwcGVuZENoaWxkKGZlQ29tcG9zaXRlMyk7CgogIC8vIHNldCBzaGFkb3cKICBpZiAoIW9iai5jb25maWcuaGlkZUlubmVyU2hhZG93KSB7CiAgICBvYmouY2FudmFzLmNhbnZhcy5jaGlsZE5vZGVzWzJdLnNldEF0dHJpYnV0ZSgiZmlsdGVyIiwgInVybCgjIiArIHNpZCArICIpIik7CiAgICBvYmouY2FudmFzLmNhbnZhcy5jaGlsZE5vZGVzWzNdLnNldEF0dHJpYnV0ZSgiZmlsdGVyIiwgInVybCgjIiArIHNpZCArICIpIik7CiAgfQoKICAvLyB2YXIgY2xlYXIKICBnYXVzc0ZpbHRlciwgZmVPZmZzZXQsIGZlR2F1c3NpYW5CbHVyLCBmZUNvbXBvc2l0ZTEsIGZlRmxvb2QsIGZlQ29tcG9zaXRlMiwgZmVDb21wb3NpdGUzID0gbnVsbDsKfTsKCi8vCi8vIHRpbnkgaGVscGVyIGZ1bmN0aW9uIHRvIGxvb2t1cCB2YWx1ZSBvZiBhIGtleSBmcm9tIHR3byBoYXNoIHRhYmxlcwovLyBpZiBub25lIGZvdW5kLCByZXR1cm4gZGVmYXVsdHZhbHVlCi8vCi8vIGtleTogc3RyaW5nCi8vIHRhYmxlYTogb2JqZWN0Ci8vIHRhYmxlYjogRE9NU3RyaW5nTWFwfG9iamVjdAovLyBkZWZ2YWw6IHN0cmluZ3xpbnRlZ2VyfGZsb2F0fG51bGwKLy8gZGF0YXR5cGU6IHJldHVybiBkYXRhdHlwZQovLyBkZWxpbWl0ZXI6IGRlbGltaXRlciB0byBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggZGF0YXR5cGUgZm9ybWF0dGluZwovLwpmdW5jdGlvbiBrdkxvb2t1cChrZXksIHRhYmxlYSwgdGFibGViLCBkZWZ2YWwsIGRhdGF0eXBlLCBkZWxpbWl0ZXIpIHsKICB2YXIgdmFsID0gZGVmdmFsOwogIHZhciBjYW5Db252ZXJ0ID0gZmFsc2U7CiAgaWYgKCEoa2V5ID09PSBudWxsIHx8IGtleSA9PT0gdW5kZWZpbmVkKSkgewogICAgaWYgKHRhYmxlYiAhPT0gbnVsbCAmJiB0YWJsZWIgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgdGFibGViID09PSAib2JqZWN0IiAmJiBrZXkgaW4gdGFibGViKSB7CiAgICAgIHZhbCA9IHRhYmxlYltrZXldOwogICAgICBjYW5Db252ZXJ0ID0gdHJ1ZTsKICAgIH0gZWxzZSBpZiAodGFibGVhICE9PSBudWxsICYmIHRhYmxlYSAhPT0gdW5kZWZpbmVkICYmIHR5cGVvZiB0YWJsZWEgPT09ICJvYmplY3QiICYmIGtleSBpbiB0YWJsZWEpIHsKICAgICAgdmFsID0gdGFibGVhW2tleV07CiAgICAgIGNhbkNvbnZlcnQgPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgdmFsID0gZGVmdmFsOwogICAgfQogICAgaWYgKGNhbkNvbnZlcnQgPT09IHRydWUpIHsKICAgICAgaWYgKGRhdGF0eXBlICE9PSBudWxsICYmIGRhdGF0eXBlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICBzd2l0Y2ggKGRhdGF0eXBlKSB7CiAgICAgICAgICBjYXNlICdpbnQnOgogICAgICAgICAgICB2YWwgPSBwYXJzZUludCh2YWwsIDEwKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdmbG9hdCc6CiAgICAgICAgICAgIHZhbCA9IHBhcnNlRmxvYXQodmFsKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9CiAgcmV0dXJuIHZhbDsKfTsKCi8qKiBHZXQgY29sb3IgZm9yIHZhbHVlICovCmZ1bmN0aW9uIGdldENvbG9yKHZhbCwgcGN0LCBjb2wsIG5vR3JhZGllbnQsIGN1c3RTZWMpIHsKCiAgdmFyIG5vLCBpbmMsIGNvbG9ycywgcGVyY2VudGFnZSwgcnZhbCwgZ3ZhbCwgYnZhbCwgbG93ZXIsIHVwcGVyLCByYW5nZSwgcmFuZ2VQY3QsIHBjdExvd2VyLCBwY3RVcHBlciwgY29sb3I7CiAgdmFyIG5vR3JhZGllbnQgPSBub0dyYWRpZW50IHx8IGN1c3RTZWMubGVuZ3RoID4gMDsKCiAgaWYgKGN1c3RTZWMubGVuZ3RoID4gMCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjdXN0U2VjLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh2YWwgPj0gY3VzdFNlY1tpXS5sbyAmJiB2YWwgPD0gY3VzdFNlY1tpXS5oaSkgewogICAgICAgIHJldHVybiBjdXN0U2VjW2ldLmNvbG9yOwogICAgICB9CiAgICB9CiAgfQoKICBubyA9IGNvbC5sZW5ndGg7CiAgaWYgKG5vID09PSAxKSByZXR1cm4gY29sWzBdOwogIGluYyA9IChub0dyYWRpZW50KSA/ICgxIC8gbm8pIDogKDEgLyAobm8gLSAxKSk7CiAgY29sb3JzID0gW107CiAgZm9yIChpID0gMDsgaSA8IGNvbC5sZW5ndGg7IGkrKykgewogICAgcGVyY2VudGFnZSA9IChub0dyYWRpZW50KSA/IChpbmMgKiAoaSArIDEpKSA6IChpbmMgKiBpKTsKICAgIHJ2YWwgPSBwYXJzZUludCgoY3V0SGV4KGNvbFtpXSkpLnN1YnN0cmluZygwLCAyKSwgMTYpOwogICAgZ3ZhbCA9IHBhcnNlSW50KChjdXRIZXgoY29sW2ldKSkuc3Vic3RyaW5nKDIsIDQpLCAxNik7CiAgICBidmFsID0gcGFyc2VJbnQoKGN1dEhleChjb2xbaV0pKS5zdWJzdHJpbmcoNCwgNiksIDE2KTsKICAgIGNvbG9yc1tpXSA9IHsKICAgICAgcGN0OiBwZXJjZW50YWdlLAogICAgICBjb2xvcjogewogICAgICAgIHI6IHJ2YWwsCiAgICAgICAgZzogZ3ZhbCwKICAgICAgICBiOiBidmFsCiAgICAgIH0KICAgIH07CiAgfQoKICBpZiAocGN0ID09PSAwKSB7CiAgICByZXR1cm4gJ3JnYignICsgW2NvbG9yc1swXS5jb2xvci5yLCBjb2xvcnNbMF0uY29sb3IuZywgY29sb3JzWzBdLmNvbG9yLmJdLmpvaW4oJywnKSArICcpJzsKICB9CgogIGZvciAodmFyIGogPSAwOyBqIDwgY29sb3JzLmxlbmd0aDsgaisrKSB7CiAgICBpZiAocGN0IDw9IGNvbG9yc1tqXS5wY3QpIHsKICAgICAgaWYgKG5vR3JhZGllbnQpIHsKICAgICAgICByZXR1cm4gJ3JnYignICsgW2NvbG9yc1tqXS5jb2xvci5yLCBjb2xvcnNbal0uY29sb3IuZywgY29sb3JzW2pdLmNvbG9yLmJdLmpvaW4oJywnKSArICcpJzsKICAgICAgfSBlbHNlIHsKICAgICAgICBsb3dlciA9IGNvbG9yc1tqIC0gMV07CiAgICAgICAgdXBwZXIgPSBjb2xvcnNbal07CiAgICAgICAgcmFuZ2UgPSB1cHBlci5wY3QgLSBsb3dlci5wY3Q7CiAgICAgICAgcmFuZ2VQY3QgPSAocGN0IC0gbG93ZXIucGN0KSAvIHJhbmdlOwogICAgICAgIHBjdExvd2VyID0gMSAtIHJhbmdlUGN0OwogICAgICAgIHBjdFVwcGVyID0gcmFuZ2VQY3Q7CiAgICAgICAgY29sb3IgPSB7CiAgICAgICAgICByOiBNYXRoLmZsb29yKGxvd2VyLmNvbG9yLnIgKiBwY3RMb3dlciArIHVwcGVyLmNvbG9yLnIgKiBwY3RVcHBlciksCiAgICAgICAgICBnOiBNYXRoLmZsb29yKGxvd2VyLmNvbG9yLmcgKiBwY3RMb3dlciArIHVwcGVyLmNvbG9yLmcgKiBwY3RVcHBlciksCiAgICAgICAgICBiOiBNYXRoLmZsb29yKGxvd2VyLmNvbG9yLmIgKiBwY3RMb3dlciArIHVwcGVyLmNvbG9yLmIgKiBwY3RVcHBlcikKICAgICAgICB9OwogICAgICAgIHJldHVybiAncmdiKCcgKyBbY29sb3IuciwgY29sb3IuZywgY29sb3IuYl0uam9pbignLCcpICsgJyknOwogICAgICB9CiAgICB9CiAgfQoKfQoKLyoqIEZpeCBSYXBoYWVsIGRpc3BsYXk6bm9uZSB0c3BhbiBkeSBhdHRyaWJ1dGUgYnVnICovCmZ1bmN0aW9uIHNldER5KGVsZW0sIGZvbnRTaXplLCB0eHRZcG9zKSB7CiAgaWYgKCghaWUgfHwgaWUgPiA5KSAmJiBlbGVtLm5vZGUuZmlyc3RDaGlsZC5hdHRyaWJ1dGVzLmR5KSB7CiAgICBlbGVtLm5vZGUuZmlyc3RDaGlsZC5hdHRyaWJ1dGVzLmR5LnZhbHVlID0gMDsKICB9Cn0KCi8qKiBSYW5kb20gaW50ZWdlciAgKi8KZnVuY3Rpb24gZ2V0UmFuZG9tSW50KG1pbiwgbWF4KSB7CiAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSkgKyBtaW47Cn0KCi8qKiAgQ3V0IGhleCAgKi8KZnVuY3Rpb24gY3V0SGV4KHN0cikgewogIHJldHVybiAoc3RyLmNoYXJBdCgwKSA9PSAiIyIpID8gc3RyLnN1YnN0cmluZygxLCA3KSA6IHN0cjsKfQoKLyoqICBIdW1hbiBmcmllbmRseSBudW1iZXIgc3VmZml4IC0gRnJvbTogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNjkyMzIzL2NvZGUtZ29sZi1mcmllbmRseS1udW1iZXItYWJicmV2aWF0b3IgKi8KZnVuY3Rpb24gaHVtYW5GcmllbmRseU51bWJlcihuLCBkKSB7CiAgdmFyIHAsIGQyLCBpLCBzOwoKICBwID0gTWF0aC5wb3c7CiAgZDIgPSBwKDEwLCBkKTsKICBpID0gNzsKICB3aGlsZSAoaSkgewogICAgcyA9IHAoMTAsIGktLSAqIDMpOwogICAgaWYgKHMgPD0gbikgewogICAgICBuID0gTWF0aC5yb3VuZChuICogZDIgLyBzKSAvIGQyICsgIktNR1RQRSIgW2ldOwogICAgfQogIH0KICByZXR1cm4gbjsKfQoKLyoqIEZvcm1hdCBudW1iZXJzIHdpdGggY29tbWFzIC0gRnJvbTogaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yOTAxMTAyL2hvdy10by1wcmludC1hLW51bWJlci13aXRoLWNvbW1hcy1hcy10aG91c2FuZHMtc2VwYXJhdG9ycy1pbi1qYXZhc2NyaXB0ICovCmZ1bmN0aW9uIGZvcm1hdE51bWJlcih4KSB7CiAgdmFyIHBhcnRzID0geC50b1N0cmluZygpLnNwbGl0KCIuIik7CiAgcGFydHNbMF0gPSBwYXJ0c1swXS5yZXBsYWNlKC9cQig/PShcZHszfSkrKD8hXGQpKS9nLCAiLCIpOwogIHJldHVybiBwYXJ0cy5qb2luKCIuIik7Cn0KCi8qKiAgR2V0IHN0eWxlICAqLwpmdW5jdGlvbiBnZXRTdHlsZShvRWxtLCBzdHJDc3NSdWxlKSB7CiAgdmFyIHN0clZhbHVlID0gIiI7CiAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3ICYmIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpIHsKICAgIHN0clZhbHVlID0gZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShvRWxtLCAiIikuZ2V0UHJvcGVydHlWYWx1ZShzdHJDc3NSdWxlKTsKICB9IGVsc2UgaWYgKG9FbG0uY3VycmVudFN0eWxlKSB7CiAgICBzdHJDc3NSdWxlID0gc3RyQ3NzUnVsZS5yZXBsYWNlKC9cLShcdykvZywgZnVuY3Rpb24oc3RyTWF0Y2gsIHAxKSB7CiAgICAgIHJldHVybiBwMS50b1VwcGVyQ2FzZSgpOwogICAgfSk7CiAgICBzdHJWYWx1ZSA9IG9FbG0uY3VycmVudFN0eWxlW3N0ckNzc1J1bGVdOwogIH0KICByZXR1cm4gc3RyVmFsdWU7Cn0KCi8qKiAgQ3JlYXRlIEVsZW1lbnQgTlMgUmVhZHkgICovCmZ1bmN0aW9uIG9uQ3JlYXRlRWxlbWVudE5zUmVhZHkoZnVuYykgewogIGlmIChkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMgIT09IHVuZGVmaW5lZCkgewogICAgZnVuYygpOwogIH0gZWxzZSB7CiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICBvbkNyZWF0ZUVsZW1lbnROc1JlYWR5KGZ1bmMpOwogICAgfSwgMTAwKTsKICB9Cn0KCi8qKiAgR2V0IElFIHZlcnNpb24gICovCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gQSBzaG9ydCBzbmlwcGV0IGZvciBkZXRlY3RpbmcgdmVyc2lvbnMgb2YgSUUgaW4gSmF2YVNjcmlwdAovLyB3aXRob3V0IHJlc29ydGluZyB0byB1c2VyLWFnZW50IHNuaWZmaW5nCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gSWYgeW91J3JlIG5vdCBpbiBJRSAob3IgSUUgdmVyc2lvbiBpcyBsZXNzIHRoYW4gNSkgdGhlbjoKLy8gaWUgPT09IHVuZGVmaW5lZAovLyBJZiB5b3UncmUgaW4gSUUgKD49NSkgdGhlbiB5b3UgY2FuIGRldGVybWluZSB3aGljaCB2ZXJzaW9uOgovLyBpZSA9PT0gNzsgLy8gSUU3Ci8vIFRodXMsIHRvIGRldGVjdCBJRToKLy8gaWYgKGllKSB7fQovLyBBbmQgdG8gZGV0ZWN0IHRoZSB2ZXJzaW9uOgovLyBpZSA9PT0gNiAvLyBJRTYKLy8gaWUgPiA3IC8vIElFOCwgSUU5IC4uLgovLyBpZSA8IDkgLy8gQW55dGhpbmcgbGVzcyB0aGFuIElFOQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIFVQREFURTogTm93IHVzaW5nIExpdmUgTm9kZUxpc3QgaWRlYSBmcm9tIEBqZGFsdG9uCnZhciBpZSA9IChmdW5jdGlvbigpIHsKCiAgdmFyIHVuZGVmLAogICAgdiA9IDMsCiAgICBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwKICAgIGFsbCA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaScpOwoKICB3aGlsZSAoCiAgICBkaXYuaW5uZXJIVE1MID0gJzwhLS1baWYgZ3QgSUUgJyArICgrK3YpICsgJ10+PGk+PC9pPjwhW2VuZGlmXS0tPicsCiAgICBhbGxbMF0KICApOwogIHJldHVybiB2ID4gNCA/IHYgOiB1bmRlZjsKfSgpKTsKCi8vIGV4dGVuZCB0YXJnZXQgb2JqZWN0IHdpdGggc2Vjb25kIG9iamVjdApmdW5jdGlvbiBleHRlbmQob3V0KSB7CiAgb3V0ID0gb3V0IHx8IHt9OwoKICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewogICAgaWYgKCFhcmd1bWVudHNbaV0pCiAgICAgIGNvbnRpbnVlOwoKICAgIGZvciAodmFyIGtleSBpbiBhcmd1bWVudHNbaV0pIHsKICAgICAgaWYgKGFyZ3VtZW50c1tpXS5oYXNPd25Qcm9wZXJ0eShrZXkpKQogICAgICAgIG91dFtrZXldID0gYXJndW1lbnRzW2ldW2tleV07CiAgICB9CiAgfQoKICByZXR1cm4gb3V0Owp9Owo="></script>
|
||
<script src="data:application/javascript;base64,SFRNTFdpZGdldHMud2lkZ2V0KHsKCiAgbmFtZTogJ2dhdWdlJywKCiAgdHlwZTogJ291dHB1dCcsCgogIGZhY3Rvcnk6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CgogICAgdmFyIGp1c3RnYWdlID0gbnVsbDsKCiAgICByZXR1cm4gewoKICAgICAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKHgpIHsKCiAgICAgICAgLy8gcmVzb2x2ZSB0aGVtZSBjb2xvcnMgZm9yIHNlY3RvcnMKICAgICAgICBmdW5jdGlvbiB0aGVtZUNvbG9yKGNvbG9yTmFtZSwgZGVmYXVsdENvbG9yKSB7CiAgICAgICAgICAvLyBqdXN0IGluIGNhc2Ugc29tZW9uZSB0cmllcyB0byB1c2UgdGhpcyBvdXRzaWRlIG9mIGZsZXhkYXNoYm9hcmQKICAgICAgICAgIGlmICh3aW5kb3cuRmxleERhc2hib2FyZCkgewogICAgICAgICAgICB2YXIgY29sb3IgPSB3aW5kb3cuRmxleERhc2hib2FyZC50aGVtZUNvbG9yKGNvbG9yTmFtZSk7CiAgICAgICAgICAgIGlmICghY29sb3IpCiAgICAgICAgICAgICAgY29sb3IgPSBkZWZhdWx0Q29sb3I7CiAgICAgICAgICAgIHJldHVybiBjb2xvcjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Q29sb3I7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAodmFyIGk9MDsgaTx4LmN1c3RvbVNlY3RvcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBzZWN0b3IgPSB4LmN1c3RvbVNlY3RvcnNbaV07CiAgICAgICAgICBpZiAoc2VjdG9yLmNvbG9yID09PSAicHJpbWFyeSIpCiAgICAgICAgICAgIHNlY3Rvci5jb2xvciA9IHRoZW1lQ29sb3IoInByaW1hcnkiLCAgIiNhOWQ3MGIiKTsKICAgICAgICAgIGVsc2UgaWYgKHNlY3Rvci5jb2xvciA9PT0gImluZm8iKQogICAgICAgICAgICBzZWN0b3IuY29sb3IgPSB0aGVtZUNvbG9yKCJpbmZvIiwgICIjYTlkNzBiIik7CiAgICAgICAgICBlbHNlIGlmIChzZWN0b3IuY29sb3IgPT09ICJzdWNjZXNzIikKICAgICAgICAgICAgc2VjdG9yLmNvbG9yID0gdGhlbWVDb2xvcigic3VjY2VzcyIsICAiI2E5ZDcwYiIpOwogICAgICAgICAgZWxzZSBpZiAoc2VjdG9yLmNvbG9yID09PSAid2FybmluZyIpCiAgICAgICAgICAgIHNlY3Rvci5jb2xvciA9IHRoZW1lQ29sb3IoIndhcm5pbmciLCAgIiNmOWM4MDIiKTsKICAgICAgICAgIGVsc2UgaWYgKHNlY3Rvci5jb2xvciA9PT0gImRhbmdlciIpCiAgICAgICAgICAgIHNlY3Rvci5jb2xvciA9IHRoZW1lQ29sb3IoImRhbmdlciIsICIjZmYwMDAwIik7CiAgICAgICAgfQoKICAgICAgICAvLyBqdXN0Z2FnZSBjb25maWcKICAgICAgICB2YXIgY29uZmlnID0gewogICAgICAgICAgaWQ6IGVsLmlkLAogICAgICAgICAgdGl0bGU6ICIgIiwKICAgICAgICAgIHZhbHVlRm9udENvbG9yOiAiZ3JheSIsCiAgICAgICAgICB2YWx1ZTogeC52YWx1ZSwKICAgICAgICAgIG1pbjogeC5taW4sCiAgICAgICAgICBtYXg6IHgubWF4LAogICAgICAgICAgdGl0bGVQb3NpdGlvbjogImJlbG93IiwKICAgICAgICAgIHJlbGF0aXZlR2F1Z2VTaXplOiB0cnVlLAogICAgICAgICAgZm9ybWF0TnVtYmVyOiB0cnVlLAogICAgICAgICAgaHVtYW5GcmllbmRseTogeC5odW1hbkZyaWVuZGx5LAogICAgICAgICAgaHVtYW5GcmllbmRseURlY2ltYWw6IHguaHVtYW5GcmllbmRseURlY2ltYWwsCiAgICAgICAgICBjdXN0b21TZWN0b3JzOiB4LmN1c3RvbVNlY3RvcnMKICAgICAgICB9OwoKICAgICAgICAvLyBhZGQgc3ltYm9sIGlmIHNwZWNpZmllZAogICAgICAgIGlmICh4LnN5bWJvbCAhPT0gbnVsbCkKICAgICAgICAgIGNvbmZpZy5zeW1ib2wgPSB4LnN5bWJvbDsKCiAgICAgICAgLy8gYWRkIGxhYmVsIGlmIHNwZWNpZmVkCiAgICAgICAgaWYgKHgubGFiZWwgIT09IG51bGwpCiAgICAgICAgICBjb25maWcubGFiZWwgPSB4LmxhYmVsOwoKICAgICAgICAvLyBhZGQgbGlua2VkIHZhbHVlIGNsYXNzIGlmIGFwcHJvcHJpYXRlCiAgICAgICAgaWYgKHguaHJlZiAhPT0gbnVsbCAmJiB3aW5kb3cuRmxleERhc2hib2FyZCkgewogICAgICAgICAgJChlbCkuYWRkQ2xhc3MoJ2xpbmtlZC12YWx1ZScpOwogICAgICAgICAgJChlbCkub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB3aW5kb3cuRmxleERhc2hib2FyZFV0aWxzLnNob3dMaW5rZWRWYWx1ZSh4LmhyZWYpOwogICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICAvLyBjcmVhdGUgdGhlIGp1c3RnYWdlIGlmIHdlIG5lZWQgdG8KICAgICAgICBpZiAoanVzdGdhZ2UgPT09IG51bGwpCiAgICAgICAgICBqdXN0Z2FnZSA9IG5ldyBKdXN0R2FnZShjb25maWcpOwogICAgICAgIGVsc2UKICAgICAgICAgIGp1c3RnYWdlLnJlZnJlc2goeC52YWx1ZSwgeC5tYXgsIGNvbmZpZyk7CgogICAgICAgIC8vIGZpeHVwIHN2ZyBwYXRoIGZpbHRlcnMgc28gdGhleSBkb24ndCB1c2UgcmVsYXRpdmUgaHJlZnMKICAgICAgICAvLyBlLmcuIHVybCgjaW5uZXItc2hhZG93LWh0bWx3aWRnZXQtMDY4YzRjYzgyMTc3MmIwYTJlZjUpCiAgICAgICAgLy8gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vcnN0dWRpby9mbGV4ZGFzaGJvYXJkL2lzc3Vlcy85NCkKICAgICAgICB2YXIgYmFzZVVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnJlcGxhY2Uod2luZG93LmxvY2F0aW9uLmhhc2gsICIiKTsKICAgICAgICAkKGVsKS5maW5kKCdzdmc+cGF0aCcpLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZmlsdGVyID0gJCh0aGlzKS5hdHRyKCdmaWx0ZXInKTsKICAgICAgICAgIGlmIChmaWx0ZXIpIHsKICAgICAgICAgICAgdmFyIG1hdGNoID0gL3VybFwoIyhbXlwpXSspXCkvLmV4ZWMoZmlsdGVyKTsKICAgICAgICAgICAgaWYgKG1hdGNoKQogICAgICAgICAgICAgICQodGhpcykuYXR0cignZmlsdGVyJywgJ3VybCgnICsgYmFzZVVybCArICcjJyArIG1hdGNoWzFdICsgJyknKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSwKCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24od2lkdGgsIGhlaWdodCkgewogICAgICB9CiAgICB9OwogIH0KfSk7Cg=="></script>
|
||
<link href="data:text/css,%2Edt%2Dcrosstalk%2Dfade%20%7B%0Aopacity%3A%200%2E2%3B%0A%7D%0Ahtml%20body%20div%2EDTS%20div%2EdataTables%5FscrollBody%20%7B%0Abackground%3A%20none%3B%0A%7D%0A%0Atable%2EdataTable%20%7B%0Adisplay%3A%20table%3B%0A%7D%0A" rel="stylesheet" />
|
||
<script src="data:application/javascript;base64,KGZ1bmN0aW9uKCkgewoKLy8gc29tZSBoZWxwZXIgZnVuY3Rpb25zOiB1c2luZyBhIGdsb2JhbCBvYmplY3QgRFRXaWRnZXQgc28gdGhhdCBpdCBjYW4gYmUgdXNlZAovLyBpbiBKUygpIGNvZGUsIGUuZy4gZGF0YXRhYmxlKG9wdGlvbnMgPSBsaXN0KGZvbyA9IEpTKCdjb2RlJykpKTsgdW5saWtlIFIncwovLyBkeW5hbWljIHNjb3BpbmcsIHdoZW4gJ2NvZGUnIGlzIGV2YWwoKSdlZCwgSmF2YVNjcmlwdCBkb2VzIG5vdCBrbm93IG9iamVjdHMKLy8gZnJvbSB0aGUgInBhcmVudCBmcmFtZSIsIGUuZy4gSlMoJ0RUV2lkZ2V0Jykgd2lsbCBub3Qgd29yayB1bmxlc3MgaXQgd2FzIG1hZGUKLy8gYSBnbG9iYWwgb2JqZWN0CnZhciBEVFdpZGdldCA9IHt9OwoKLy8gMTIzNDU2NjY2Ljc4OTAgLT4gMTIzLDQ1Niw2NjYuNzg5MAp2YXIgbWFya0ludGVydmFsID0gZnVuY3Rpb24oZCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaywgcHJlY2lzaW9uKSB7CiAgeCA9IHByZWNpc2lvbiA/IGQudG9QcmVjaXNpb24oZGlnaXRzKSA6IGQudG9GaXhlZChkaWdpdHMpOwogIGlmICghL14tP1tcZC5dKyQvLnRlc3QoeCkpIHJldHVybiB4OwogIHZhciB4diA9IHguc3BsaXQoJy4nKTsKICBpZiAoeHYubGVuZ3RoID4gMikgcmV0dXJuIHg7ICAvLyBzaG91bGQgaGF2ZSBhdCBtb3N0IG9uZSBkZWNpbWFsIHBvaW50CiAgeHZbMF0gPSB4dlswXS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1xcQig/PShcXGR7JyArIGludGVydmFsICsgJ30pKyg/IVxcZCkpJywgJ2cnKSwgbWFyayk7CiAgcmV0dXJuIHh2LmpvaW4oZGVjTWFyayk7Cn07CgpEVFdpZGdldC5mb3JtYXRDdXJyZW5jeSA9IGZ1bmN0aW9uKGRhdGEsIGN1cnJlbmN5LCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrLCBiZWZvcmUpIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YSk7CiAgaWYgKGlzTmFOKGQpKSByZXR1cm4gJyc7CiAgdmFyIHJlcyA9IG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKTsKICByZXMgPSBiZWZvcmUgPyAoL14tLy50ZXN0KHJlcykgPyAnLScgKyBjdXJyZW5jeSArIHJlcy5yZXBsYWNlKC9eLS8sICcnKSA6IGN1cnJlbmN5ICsgcmVzKSA6CiAgICByZXMgKyBjdXJyZW5jeTsKICByZXR1cm4gcmVzOwp9OwoKRFRXaWRnZXQuZm9ybWF0U3RyaW5nID0gZnVuY3Rpb24oZGF0YSwgcHJlZml4LCBzdWZmaXgpIHsKICB2YXIgZCA9IGRhdGE7CiAgaWYgKGQgPT09IG51bGwpIHJldHVybiAnJzsKICByZXR1cm4gcHJlZml4ICsgZCArIHN1ZmZpeDsKfTsKCkRUV2lkZ2V0LmZvcm1hdFBlcmNlbnRhZ2UgPSBmdW5jdGlvbihkYXRhLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKSB7CiAgdmFyIGQgPSBwYXJzZUZsb2F0KGRhdGEpOwogIGlmIChpc05hTihkKSkgcmV0dXJuICcnOwogIHJldHVybiBtYXJrSW50ZXJ2YWwoZCAqIDEwMCwgZGlnaXRzLCBpbnRlcnZhbCwgbWFyaywgZGVjTWFyaykgKyAnJSc7Cn07CgpEVFdpZGdldC5mb3JtYXRSb3VuZCA9IGZ1bmN0aW9uKGRhdGEsIGRpZ2l0cywgaW50ZXJ2YWwsIG1hcmssIGRlY01hcmspIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YSk7CiAgaWYgKGlzTmFOKGQpKSByZXR1cm4gJyc7CiAgcmV0dXJuIG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrKTsKfTsKCkRUV2lkZ2V0LmZvcm1hdFNpZ25pZiA9IGZ1bmN0aW9uKGRhdGEsIGRpZ2l0cywgaW50ZXJ2YWwsIG1hcmssIGRlY01hcmspIHsKICB2YXIgZCA9IHBhcnNlRmxvYXQoZGF0YSk7CiAgaWYgKGlzTmFOKGQpKSByZXR1cm4gJyc7CiAgcmV0dXJuIG1hcmtJbnRlcnZhbChkLCBkaWdpdHMsIGludGVydmFsLCBtYXJrLCBkZWNNYXJrLCB0cnVlKTsKfTsKCkRUV2lkZ2V0LmZvcm1hdERhdGUgPSBmdW5jdGlvbihkYXRhLCBtZXRob2QsIHBhcmFtcykgewogIHZhciBkID0gZGF0YTsKICBpZiAoZCA9PT0gbnVsbCkgcmV0dXJuICcnOwogIC8vIChuZXcgRGF0ZSgnMjAxNS0xMC0yOCcpKS50b0RhdGVTdHJpbmcoKSBtYXkgcmV0dXJuIDIwMTUtMTAtMjcgYmVjYXVzZSB0aGUKICAvLyBhY3R1YWwgdGltZSBjcmVhdGVkIGNvdWxkIGJlIGxpa2UgJ1R1ZSBPY3QgMjcgMjAxNSAxOTowMDowMCBHTVQtMDUwMCAoQ0RUKScsCiAgLy8gaS5lLiB0aGUgZGF0ZS1vbmx5IHN0cmluZyBpcyB0cmVhdGVkIGFzIFVUQyB0aW1lIGluc3RlYWQgb2YgbG9jYWwgdGltZQogIGlmICgobWV0aG9kID09PSAndG9EYXRlU3RyaW5nJyB8fCBtZXRob2QgPT09ICd0b0xvY2FsZURhdGVTdHJpbmcnKSAmJiAvXlxkezQsfVxEXGR7Mn1cRFxkezJ9JC8udGVzdChkKSkgewogICAgZCA9IGQuc3BsaXQoL1xELyk7CiAgICBkID0gbmV3IERhdGUoZFswXSwgZFsxXSAtIDEsIGRbMl0pOwogIH0gZWxzZSB7CiAgICBkID0gbmV3IERhdGUoZCk7CiAgfQogIHJldHVybiBkW21ldGhvZF0uYXBwbHkoZCwgcGFyYW1zKTsKfTsKCndpbmRvdy5EVFdpZGdldCA9IERUV2lkZ2V0OwoKdmFyIHRyYW5zcG9zZUFycmF5MkQgPSBmdW5jdGlvbihhKSB7CiAgcmV0dXJuIGEubGVuZ3RoID09PSAwID8gYSA6IEhUTUxXaWRnZXRzLnRyYW5zcG9zZUFycmF5MkQoYSk7Cn07Cgp2YXIgY3Jvc3N0YWxrUGx1Z2luc0luc3RhbGxlZCA9IGZhbHNlOwoKZnVuY3Rpb24gbWF5YmVJbnN0YWxsQ3Jvc3N0YWxrUGx1Z2lucygpIHsKICBpZiAoY3Jvc3N0YWxrUGx1Z2luc0luc3RhbGxlZCkKICAgIHJldHVybjsKICBjcm9zc3RhbGtQbHVnaW5zSW5zdGFsbGVkID0gdHJ1ZTsKCiAgJC5mbi5kYXRhVGFibGUuZXh0LmFmbkZpbHRlcmluZy5wdXNoKAogICAgZnVuY3Rpb24ob1NldHRpbmdzLCBhRGF0YSwgaURhdGFJbmRleCkgewogICAgICB2YXIgY3RmaWx0ZXIgPSBvU2V0dGluZ3MublRhYmxlLmN0ZmlsdGVyOwogICAgICBpZiAoY3RmaWx0ZXIgJiYgIWN0ZmlsdGVyW2lEYXRhSW5kZXhdKQogICAgICAgIHJldHVybiBmYWxzZTsKCiAgICAgIHZhciBjdHNlbGVjdCA9IG9TZXR0aW5ncy5uVGFibGUuY3RzZWxlY3Q7CiAgICAgIGlmIChjdHNlbGVjdCAmJiAhY3RzZWxlY3RbaURhdGFJbmRleF0pCiAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgKTsKfQoKSFRNTFdpZGdldHMud2lkZ2V0KHsKICBuYW1lOiAiZGF0YXRhYmxlcyIsCiAgdHlwZTogIm91dHB1dCIsCiAgcmVuZGVyT25OdWxsVmFsdWU6IHRydWUsCiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICQoZWwpLmh0bWwoJyZuYnNwOycpOwogICAgcmV0dXJuIHsKICAgICAgZGF0YTogbnVsbCwKICAgICAgY3RmaWx0ZXJIYW5kbGU6IG5ldyBjcm9zc3RhbGsuRmlsdGVySGFuZGxlKCksCiAgICAgIGN0ZmlsdGVyU3Vic2NyaXB0aW9uOiBudWxsLAogICAgICBjdHNlbGVjdEhhbmRsZTogbmV3IGNyb3NzdGFsay5TZWxlY3Rpb25IYW5kbGUoKSwKICAgICAgY3RzZWxlY3RTdWJzY3JpcHRpb246IG51bGwKICAgIH07CiAgfSwKICByZW5kZXJWYWx1ZTogZnVuY3Rpb24oZWwsIGRhdGEsIGluc3RhbmNlKSB7CiAgICBpZiAoZWwub2Zmc2V0V2lkdGggPT09IDAgfHwgZWwub2Zmc2V0SGVpZ2h0ID09PSAwKSB7CiAgICAgIGluc3RhbmNlLmRhdGEgPSBkYXRhOwogICAgICByZXR1cm47CiAgICB9CiAgICBpbnN0YW5jZS5kYXRhID0gbnVsbDsKICAgIHZhciAkZWwgPSAkKGVsKTsKICAgICRlbC5lbXB0eSgpOwoKICAgIGlmIChkYXRhID09PSBudWxsKSB7CiAgICAgICRlbC5hcHBlbmQoJyZuYnNwOycpOwogICAgICAvLyBjbGVhciBwcmV2aW91cyBTaGlueSBpbnB1dHMgKGlmIGFueSkKICAgICAgZm9yICh2YXIgaSBpbiBpbnN0YW5jZS5jbGVhcklucHV0cykgaW5zdGFuY2UuY2xlYXJJbnB1dHNbaV0oKTsKICAgICAgaW5zdGFuY2UuY2xlYXJJbnB1dHMgPSB7fTsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhciBjcm9zc3RhbGtPcHRpb25zID0gZGF0YS5jcm9zc3RhbGtPcHRpb25zOwogICAgaWYgKCFjcm9zc3RhbGtPcHRpb25zKSBjcm9zc3RhbGtPcHRpb25zID0gewogICAgICAna2V5JzogbnVsbCwgJ2dyb3VwJzogbnVsbAogICAgfTsKICAgIGlmIChjcm9zc3RhbGtPcHRpb25zLmdyb3VwKSB7CiAgICAgIG1heWJlSW5zdGFsbENyb3NzdGFsa1BsdWdpbnMoKTsKICAgICAgaW5zdGFuY2UuY3RmaWx0ZXJIYW5kbGUuc2V0R3JvdXAoY3Jvc3N0YWxrT3B0aW9ucy5ncm91cCk7CiAgICAgIGluc3RhbmNlLmN0c2VsZWN0SGFuZGxlLnNldEdyb3VwKGNyb3NzdGFsa09wdGlvbnMuZ3JvdXApOwogICAgfQoKICAgIC8vIGlmIHdlIGFyZSBpbiB0aGUgdmlld2VyIHRoZW4gd2UgYWx3YXlzIHdhbnQgdG8gZmlsbENvbnRhaW5lciBhbmQKICAgIC8vIGFuZCBhdXRvSGlkZU5hdmlnYXRpb24gKHVubGVzcyB0aGUgdXNlciBoYXMgZXhwbGljaXRseSBzZXQgdGhlc2UpCiAgICBpZiAod2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUpIHsKICAgICAgaWYgKCFkYXRhLmhhc093blByb3BlcnR5KCJmaWxsQ29udGFpbmVyIikpCiAgICAgICAgZGF0YS5maWxsQ29udGFpbmVyID0gdHJ1ZTsKICAgICAgaWYgKCFkYXRhLmhhc093blByb3BlcnR5KCJhdXRvSGlkZU5hdmlnYXRpb24iKSkKICAgICAgICBkYXRhLmF1dG9IaWRlTmF2aWdhdGlvbiA9IHRydWU7CiAgICB9CgogICAgLy8gcHJvcGFnYXRlIGZpbGxDb250YWluZXIgdG8gaW5zdGFuY2UgKHNvIHdlIGhhdmUgaXQgaW4gcmVzaXplKQogICAgaW5zdGFuY2UuZmlsbENvbnRhaW5lciA9IGRhdGEuZmlsbENvbnRhaW5lcjsKCiAgICB2YXIgY2VsbHMgPSBkYXRhLmRhdGE7CgogICAgaWYgKGNlbGxzIGluc3RhbmNlb2YgQXJyYXkpIGNlbGxzID0gdHJhbnNwb3NlQXJyYXkyRChjZWxscyk7CgogICAgJGVsLmFwcGVuZChkYXRhLmNvbnRhaW5lcik7CiAgICB2YXIgJHRhYmxlID0gJGVsLmZpbmQoJ3RhYmxlJyk7CiAgICBpZiAoZGF0YS5jbGFzcykgJHRhYmxlLmFkZENsYXNzKGRhdGEuY2xhc3MpOwogICAgaWYgKGRhdGEuY2FwdGlvbikgJHRhYmxlLnByZXBlbmQoZGF0YS5jYXB0aW9uKTsKCiAgICBpZiAoIWRhdGEuc2VsZWN0aW9uKSBkYXRhLnNlbGVjdGlvbiA9IHsKICAgICAgbW9kZTogJ25vbmUnLCBzZWxlY3RlZDogbnVsbCwgdGFyZ2V0OiAncm93Jywgc2VsZWN0YWJsZTogbnVsbAogICAgfTsKICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgZGF0YS5zZWxlY3Rpb24ubW9kZSAhPT0gJ25vbmUnICYmCiAgICAgICAgZGF0YS5zZWxlY3Rpb24udGFyZ2V0ID09PSAncm93K2NvbHVtbicpIHsKICAgICAgaWYgKCR0YWJsZS5jaGlsZHJlbigndGZvb3QnKS5sZW5ndGggPT09IDApIHsKICAgICAgICAkdGFibGUuYXBwZW5kKCQoJzx0Zm9vdD4nKSk7CiAgICAgICAgJHRhYmxlLmZpbmQoJ3RoZWFkIHRyJykuY2xvbmUoKS5hcHBlbmRUbygkdGFibGUuZmluZCgndGZvb3QnKSk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBjb2x1bW4gZmlsdGVycwogICAgdmFyIGZpbHRlclJvdzsKICAgIHN3aXRjaCAoZGF0YS5maWx0ZXIpIHsKICAgICAgY2FzZSAndG9wJzoKICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3RoZWFkJykuYXBwZW5kKGRhdGEuZmlsdGVySFRNTCk7CiAgICAgICAgZmlsdGVyUm93ID0gJHRhYmxlLmZpbmQoJ3RoZWFkIHRyOmxhc3QgdGQnKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAnYm90dG9tJzoKICAgICAgICBpZiAoJHRhYmxlLmNoaWxkcmVuKCd0Zm9vdCcpLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgJHRhYmxlLmFwcGVuZCgkKCc8dGZvb3Q+JykpOwogICAgICAgIH0KICAgICAgICAkdGFibGUuY2hpbGRyZW4oJ3Rmb290JykucHJlcGVuZChkYXRhLmZpbHRlckhUTUwpOwogICAgICAgIGZpbHRlclJvdyA9ICR0YWJsZS5maW5kKCd0Zm9vdCB0cjpmaXJzdCB0ZCcpOwogICAgICAgIGJyZWFrOwogICAgfQoKICAgIHZhciBvcHRpb25zID0geyBzZWFyY2hEZWxheTogMTAwMCB9OwogICAgaWYgKGNlbGxzICE9PSBudWxsKSAkLmV4dGVuZChvcHRpb25zLCB7CiAgICAgIGRhdGE6IGNlbGxzCiAgICB9KTsKCiAgICAvLyBvcHRpb25zIGZvciBmaWxsQ29udGFpbmVyCiAgICB2YXIgYm9vdHN0cmFwQWN0aXZlID0gdHlwZW9mKCQuZm4ucG9wb3ZlcikgIT0gJ3VuZGVmaW5lZCc7CiAgICBpZiAoaW5zdGFuY2UuZmlsbENvbnRhaW5lcikgewoKICAgICAgLy8gZm9yY2Ugc2Nyb2xsWC9zY3JvbGxZIGFuZCB0dXJuIG9mZiBhdXRvV2lkdGgKICAgICAgb3B0aW9ucy5zY3JvbGxYID0gdHJ1ZTsKICAgICAgb3B0aW9ucy5zY3JvbGxZID0gIjEwMHB4IjsgLy8gY2FuIGJlIGFueSB2YWx1ZSwgd2UnbGwgYWRqdXN0IGJlbG93CgogICAgICAvLyBpZiB3ZSBhcmVuJ3QgcGFnaW5hdGluZyB0aGVuIG1vdmUgYXJvdW5kIHRoZSBpbmZvL2ZpbHRlciBjb250cm9scwogICAgICAvLyB0byBzYXZlIHNwYWNlIGF0IHRoZSBib3R0b20gYW5kIHJlcGhyYXNlIHRoZSBpbmZvIGNhbGxiYWNrCiAgICAgIGlmIChkYXRhLm9wdGlvbnMucGFnaW5nID09PSBmYWxzZSkgewoKICAgICAgICAvLyB3ZSBrbm93IGhvdyB0byBkbyB0aGlzIGNsZWFubHkgZm9yIGJvb3RzdHJhcCwgbm90IHNvIG11Y2gKICAgICAgICAvLyBmb3Igb3RoZXIgdGhlbWVzL2xheW91dHMKICAgICAgICBpZiAoYm9vdHN0cmFwQWN0aXZlKSB7CiAgICAgICAgICBvcHRpb25zLmRvbSA9ICI8J3Jvdyc8J2NvbC1zbS00J2k+PCdjb2wtc20tOCdmPj4iICsKICAgICAgICAgICAgICAgICAgICAgICAgIjwncm93JzwnY29sLXNtLTEyJ3RyPj4iOwogICAgICAgIH0KCiAgICAgICAgb3B0aW9ucy5mbkluZm9DYWxsYmFjayA9IGZ1bmN0aW9uKG9TZXR0aW5ncywgaVN0YXJ0LCBpRW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaU1heCwgaVRvdGFsLCBzUHJlKSB7CiAgICAgICAgICByZXR1cm4gTnVtYmVyKGlUb3RhbCkudG9Mb2NhbGVTdHJpbmcoKSArICIgcmVjb3JkcyI7CiAgICAgICAgfTsKICAgICAgfQogICAgfQoKICAgIC8vIGF1dG8gaGlkZSBuYXZpZ2F0aW9uIGlmIHJlcXVlc3RlZAogICAgLy8gTm90ZSwgdGhpcyBvbmx5IHdvcmtzIG9uIGNsaWVudC1zaWRlIHByb2Nlc3NpbmcgbW9kZSBhcyBvbiBzZXJ2ZXItc2lkZSwKICAgIC8vIGNlbGxzIChkYXRhLmRhdGEpIGlzIG51bGw7IEluIGFkZGl0aW9uLCB3ZSByZXF1aXJlIHRoZSBwYWdlTGVuZ3RoIG9wdGlvbgogICAgLy8gYmVpbmcgcHJvdmlkZWQgZXhwbGljaXRseSB0byBlbmFibGUgdGhpcy4gRGVzcGl0ZSB3ZSBtYXkgYmUgYWJsZSB0byBkZWR1Y2UKICAgIC8vIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHBhZ2VMZW5ndGgsIGl0IG1heSBjb21wbGljYXRlIHRoaW5ncyBzbyB3ZSdkIHJhdGhlcgogICAgLy8gcHV0IHRoaXMgcmVzcG9uc2libGl0eSB0byB1c2VycyBhbmQgd2FybiB0aGVtIG9uIHRoZSBSIHNpZGUuCiAgICBpZiAoZGF0YS5hdXRvSGlkZU5hdmlnYXRpb24gPT09IHRydWUgJiYgZGF0YS5vcHRpb25zLnBhZ2luZyAhPT0gZmFsc2UpIHsKICAgICAgLy8gc3RyaXAgYWxsIG5hdiBpZiBsZW5ndGggPj0gY2VsbHMKICAgICAgaWYgKChjZWxscyBpbnN0YW5jZW9mIEFycmF5KSAmJiBkYXRhLm9wdGlvbnMucGFnZUxlbmd0aCA+PSBjZWxscy5sZW5ndGgpCiAgICAgICAgb3B0aW9ucy5kb20gPSBib290c3RyYXBBY3RpdmUgPyAiPCdyb3cnPCdjb2wtc20tMTIndHI+PiIgOiAidCI7CiAgICAgIC8vIGFsdGVybmF0aXZlbHkgbGVhbiB0aGluZ3Mgb3V0IGZvciBmbGV4ZGFzaGJvYXJkIG1vYmlsZSBwb3J0cmFpdAogICAgICBlbHNlIGlmIChib290c3RyYXBBY3RpdmUgJiYgd2luZG93LkZsZXhEYXNoYm9hcmQgJiYgd2luZG93LkZsZXhEYXNoYm9hcmQuaXNNb2JpbGVQaG9uZSgpKQogICAgICAgIG9wdGlvbnMuZG9tID0gIjwncm93JzwnY29sLXNtLTEyJ2Y+PiIgKwogICAgICAgICAgICAgICAgICAgICAgIjwncm93JzwnY29sLXNtLTEyJ3RyPj4iICArCiAgICAgICAgICAgICAgICAgICAgICAiPCdyb3cnPCdjb2wtc20tMTIncD4+IjsKICAgIH0KCiAgICAkLmV4dGVuZCh0cnVlLCBvcHRpb25zLCBkYXRhLm9wdGlvbnMgfHwge30pOwoKICAgIHZhciBzZWFyY2hDb2xzID0gb3B0aW9ucy5zZWFyY2hDb2xzOwogICAgaWYgKHNlYXJjaENvbHMpIHsKICAgICAgc2VhcmNoQ29scyA9IHNlYXJjaENvbHMubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICByZXR1cm4geCA9PT0gbnVsbCA/ICcnIDogeC5zZWFyY2g7CiAgICAgIH0pOwogICAgICAvLyBGSVhNRTogdGhpcyBtZWFucyBJIGRvbid0IHJlc3BlY3QgdGhlIGVzY2FwZVJlZ2V4IHNldHRpbmcKICAgICAgZGVsZXRlIG9wdGlvbnMuc2VhcmNoQ29sczsKICAgIH0KCiAgICAvLyBzZXJ2ZXItc2lkZSBwcm9jZXNzaW5nPwogICAgdmFyIHNlcnZlciA9IG9wdGlvbnMuc2VydmVyU2lkZSA9PT0gdHJ1ZTsKCiAgICAvLyB1c2UgdGhlIGRhdGFTcmMgZnVuY3Rpb24gdG8gcHJlLXByb2Nlc3MgSlNPTiBkYXRhIHJldHVybmVkIGZyb20gUgogICAgdmFyIERUX3Jvd3NfYWxsID0gW10sIERUX3Jvd3NfY3VycmVudCA9IFtdOwogICAgaWYgKHNlcnZlciAmJiBIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgdHlwZW9mIG9wdGlvbnMuYWpheCA9PT0gJ29iamVjdCcgJiYKICAgICAgICAvXnNlc3Npb25cL1tcZGEtel0rXC9kYXRhb2JqLy50ZXN0KG9wdGlvbnMuYWpheC51cmwpICYmICFvcHRpb25zLmFqYXguZGF0YVNyYykgewogICAgICBvcHRpb25zLmFqYXguZGF0YVNyYyA9IGZ1bmN0aW9uKGpzb24pIHsKICAgICAgICBEVF9yb3dzX2FsbCA9ICQubWFrZUFycmF5KGpzb24uRFRfcm93c19hbGwpOwogICAgICAgIERUX3Jvd3NfY3VycmVudCA9ICQubWFrZUFycmF5KGpzb24uRFRfcm93c19jdXJyZW50KTsKICAgICAgICB2YXIgZGF0YSA9IGpzb24uZGF0YTsKICAgICAgICBpZiAoIWNvbFJlb3JkZXJFbmFibGVkKCkpIHJldHVybiBkYXRhOwogICAgICAgIHZhciB0YWJsZSA9ICR0YWJsZS5EYXRhVGFibGUoKSwgb3JkZXIgPSB0YWJsZS5jb2xSZW9yZGVyLm9yZGVyKCksIGZsYWcgPSB0cnVlLCBpLCBqLCByb3c7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IG9yZGVyLmxlbmd0aDsgKytpKSBpZiAob3JkZXJbaV0gIT09IGkpIGZsYWcgPSBmYWxzZTsKICAgICAgICBpZiAoZmxhZykgcmV0dXJuIGRhdGE7CiAgICAgICAgZm9yIChpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsKICAgICAgICAgIHJvdyA9IGRhdGFbaV0uc2xpY2UoKTsKICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBvcmRlci5sZW5ndGg7ICsraikgZGF0YVtpXVtqXSA9IHJvd1tvcmRlcltqXV07CiAgICAgICAgfQogICAgICAgIHJldHVybiBkYXRhOwogICAgICB9OwogICAgfQoKICAgIHZhciB0aGl6ID0gdGhpczsKICAgIGlmIChpbnN0YW5jZS5maWxsQ29udGFpbmVyKSAkdGFibGUub24oJ2luaXQuZHQnLCBmdW5jdGlvbihlKSB7CiAgICAgIHRoaXouZmlsbEF2YWlsYWJsZUhlaWdodChlbCwgJChlbCkuaW5uZXJIZWlnaHQoKSk7CiAgICB9KTsKICAgIC8vIElmIHRoZSBwYWdlIGNvbnRhaW5zIHNlcnZlcmFsIGRhdGF0YWJsZXMgYW5kIG9uZSBvZiB3aGljaCBlbmFibGVzIGNvbFJlb3JkZXIsCiAgICAvLyB0aGUgdGFibGUuY29sUmVvcmRlci5vcmRlcigpIGZ1bmN0aW9uIHdpbGwgZXhpc3QgYnV0IHRocm93cyBlcnJvciB3aGVuIGNhbGxlZC4KICAgIC8vIFNvIGl0IHNlZW1zIGxpa2UgdGhlIG9ubHkgd2F5IHRvIGtub3cgaWYgY29sUmVvcmRlciBpcyBlbmFibGVkIG9yIG5vdCBpcyB0bwogICAgLy8gY2hlY2sgdGhlIG9wdGlvbnMuCiAgICB2YXIgY29sUmVvcmRlckVuYWJsZWQgPSBmdW5jdGlvbigpIHsgcmV0dXJuICJjb2xSZW9yZGVyIiBpbiBvcHRpb25zOyB9OwogICAgdmFyIHRhYmxlID0gJHRhYmxlLkRhdGFUYWJsZShvcHRpb25zKTsKICAgICRlbC5kYXRhKCdkYXRhdGFibGUnLCB0YWJsZSk7CgogICAgLy8gVW5yZWdpc3RlciBwcmV2aW91cyBDcm9zc3RhbGsgZXZlbnQgc3Vic2NyaXB0aW9ucywgaWYgdGhleSBleGlzdAogICAgaWYgKGluc3RhbmNlLmN0ZmlsdGVyU3Vic2NyaXB0aW9uKSB7CiAgICAgIGluc3RhbmNlLmN0ZmlsdGVySGFuZGxlLm9mZigiY2hhbmdlIiwgaW5zdGFuY2UuY3RmaWx0ZXJTdWJzY3JpcHRpb24pOwogICAgICBpbnN0YW5jZS5jdGZpbHRlclN1YnNjcmlwdGlvbiA9IG51bGw7CiAgICB9CiAgICBpZiAoaW5zdGFuY2UuY3RzZWxlY3RTdWJzY3JpcHRpb24pIHsKICAgICAgaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUub2ZmKCJjaGFuZ2UiLCBpbnN0YW5jZS5jdHNlbGVjdFN1YnNjcmlwdGlvbik7CiAgICAgIGluc3RhbmNlLmN0c2VsZWN0U3Vic2NyaXB0aW9uID0gbnVsbDsKICAgIH0KCiAgICBpZiAoIWNyb3NzdGFsa09wdGlvbnMuZ3JvdXApIHsKICAgICAgJHRhYmxlWzBdLmN0ZmlsdGVyID0gbnVsbDsKICAgICAgJHRhYmxlWzBdLmN0c2VsZWN0ID0gbnVsbDsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBrZXkgPSBjcm9zc3RhbGtPcHRpb25zLmtleTsKICAgICAgZnVuY3Rpb24ga2V5c1RvTWF0Y2hlcyhrZXlzKSB7CiAgICAgICAgaWYgKCFrZXlzKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIHNlbGVjdGVkS2V5cyA9IHt9OwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHNlbGVjdGVkS2V5c1trZXlzW2ldXSA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbWF0Y2hlcyA9IHt9OwogICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBrZXkubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1trZXlbal1dKQogICAgICAgICAgICAgIG1hdGNoZXNbal0gPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG1hdGNoZXM7CiAgICAgICAgfQogICAgICB9CgogICAgICBmdW5jdGlvbiBhcHBseUNyb3NzdGFsa0ZpbHRlcihlKSB7CiAgICAgICAgJHRhYmxlWzBdLmN0ZmlsdGVyID0ga2V5c1RvTWF0Y2hlcyhlLnZhbHVlKTsKICAgICAgICB0YWJsZS5kcmF3KCk7CiAgICAgIH0KICAgICAgaW5zdGFuY2UuY3RmaWx0ZXJTdWJzY3JpcHRpb24gPSBpbnN0YW5jZS5jdGZpbHRlckhhbmRsZS5vbigiY2hhbmdlIiwgYXBwbHlDcm9zc3RhbGtGaWx0ZXIpOwogICAgICBhcHBseUNyb3NzdGFsa0ZpbHRlcih7dmFsdWU6IGluc3RhbmNlLmN0ZmlsdGVySGFuZGxlLmZpbHRlcmVkS2V5c30pOwoKICAgICAgZnVuY3Rpb24gYXBwbHlDcm9zc3RhbGtTZWxlY3Rpb24oZSkgewogICAgICAgIGlmIChlLnNlbmRlciAhPT0gaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUpIHsKICAgICAgICAgIHRhYmxlCiAgICAgICAgICAgIC5yb3dzKCcuJyArIHNlbENsYXNzLCB7c2VhcmNoOiAnYXBwbGllZCd9KQogICAgICAgICAgICAubm9kZXMoKQogICAgICAgICAgICAudG8kKCkKICAgICAgICAgICAgLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgIGlmIChzZWxlY3RlZFJvd3MpCiAgICAgICAgICAgIGNoYW5nZUlucHV0KCdyb3dzX3NlbGVjdGVkJywgc2VsZWN0ZWRSb3dzKCksIHZvaWQgMCwgdHJ1ZSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoZS5zZW5kZXIgIT09IGluc3RhbmNlLmN0c2VsZWN0SGFuZGxlICYmIGUudmFsdWUgJiYgZS52YWx1ZS5sZW5ndGgpIHsKICAgICAgICAgIHZhciBtYXRjaGVzID0ga2V5c1RvTWF0Y2hlcyhlLnZhbHVlKTsKCiAgICAgICAgICAvLyBwZXJzaXN0ZW50IHNlbGVjdGlvbiB3aXRoIHBsb3RseSAoJiBsZWFmbGV0KQogICAgICAgICAgdmFyIGN0T3B0cyA9IGNyb3NzdGFsay52YXIoInBsb3RseUNyb3NzdGFsa09wdHMiKS5nZXQoKSB8fCB7fTsKICAgICAgICAgIGlmIChjdE9wdHMucGVyc2lzdGVudCA9PT0gdHJ1ZSkgewogICAgICAgICAgICB2YXIgbWF0Y2hlcyA9ICQuZXh0ZW5kKG1hdGNoZXMsICR0YWJsZVswXS5jdHNlbGVjdCk7CiAgICAgICAgICB9CgogICAgICAgICAgJHRhYmxlWzBdLmN0c2VsZWN0ID0gbWF0Y2hlczsKICAgICAgICAgIHRhYmxlLmRyYXcoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCR0YWJsZVswXS5jdHNlbGVjdCkgewogICAgICAgICAgICAkdGFibGVbMF0uY3RzZWxlY3QgPSBudWxsOwogICAgICAgICAgICB0YWJsZS5kcmF3KCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGluc3RhbmNlLmN0c2VsZWN0U3Vic2NyaXB0aW9uID0gaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUub24oImNoYW5nZSIsIGFwcGx5Q3Jvc3N0YWxrU2VsZWN0aW9uKTsKICAgICAgLy8gVE9ETzogVGhpcyBuZXh0IGxpbmUgZG9lc24ndCBzZWVtIHRvIHdvcmsgd2hlbiByZW5kZXJEYXRhVGFibGUgaXMgdXNlZAogICAgICBhcHBseUNyb3NzdGFsa1NlbGVjdGlvbih7dmFsdWU6IGluc3RhbmNlLmN0c2VsZWN0SGFuZGxlLnZhbHVlfSk7CiAgICB9CgogICAgdmFyIGluQXJyYXkgPSBmdW5jdGlvbih2YWwsIGFycmF5KSB7CiAgICAgIHJldHVybiAkLmluQXJyYXkodmFsLCAkLm1ha2VBcnJheShhcnJheSkpID4gLTE7CiAgICB9OwoKICAgIC8vIGVuY29kZSArIHRvICUyQiB3aGVuIHNlYXJjaGluZyBpbiB0aGUgdGFibGUgb24gc2VydmVyIHNpZGUsIGJlY2F1c2UKICAgIC8vIHNoaW55OjpwYXJzZVF1ZXJ5U3RyaW5nKCkgdHJlYXRzICsgYXMgc3BhY2VzLCBhbmQgRGF0YVRhYmxlcyBkb2VzIG5vdAogICAgLy8gZW5jb2RlICsgdG8gJTJCIChvciAlIHRvICUyNSkgd2hlbiBzZW5kaW5nIHRoZSByZXF1ZXN0CiAgICB2YXIgZW5jb2RlX3BsdXMgPSBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiBzZXJ2ZXIgPyB4LnJlcGxhY2UoLyUvZywgJyUyNScpLnJlcGxhY2UoL1wrL2csICclMkInKSA6IHg7CiAgICB9OwoKICAgIC8vIHNlYXJjaCB0aGUgaS10aCBjb2x1bW4KICAgIHZhciBzZWFyY2hDb2x1bW4gPSBmdW5jdGlvbihpLCB2YWx1ZSkgewogICAgICB2YXIgcmVnZXggPSBmYWxzZSwgY2kgPSB0cnVlOwogICAgICBpZiAob3B0aW9ucy5zZWFyY2gpIHsKICAgICAgICByZWdleCA9IG9wdGlvbnMuc2VhcmNoLnJlZ2V4LAogICAgICAgIGNpID0gb3B0aW9ucy5zZWFyY2guY2FzZUluc2Vuc2l0aXZlICE9PSBmYWxzZTsKICAgICAgfQogICAgICByZXR1cm4gdGFibGUuY29sdW1uKGkpLnNlYXJjaChlbmNvZGVfcGx1cyh2YWx1ZSksIHJlZ2V4LCAhcmVnZXgsIGNpKTsKICAgIH07CgogICAgaWYgKGRhdGEuZmlsdGVyICE9PSAnbm9uZScpIHsKCiAgICAgIGZpbHRlclJvdy5lYWNoKGZ1bmN0aW9uKGksIHRkKSB7CgogICAgICAgIHZhciAkdGQgPSAkKHRkKSwgdHlwZSA9ICR0ZC5kYXRhKCd0eXBlJyksIGZpbHRlcjsKICAgICAgICB2YXIgJGlucHV0ID0gJHRkLmNoaWxkcmVuKCdkaXYnKS5maXJzdCgpLmNoaWxkcmVuKCdpbnB1dCcpOwogICAgICAgICRpbnB1dC5wcm9wKCdkaXNhYmxlZCcsICF0YWJsZS5zZXR0aW5ncygpWzBdLmFvQ29sdW1uc1tpXS5iU2VhcmNoYWJsZSB8fCB0eXBlID09PSAnZGlzYWJsZWQnKTsKICAgICAgICAkaW5wdXQub24oJ2lucHV0IGJsdXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICRpbnB1dC5uZXh0KCdzcGFuJykudG9nZ2xlKEJvb2xlYW4oJGlucHV0LnZhbCgpKSk7CiAgICAgICAgfSk7CiAgICAgICAgLy8gQm9vdHN0cmFwIHNldHMgcG9pbnRlci1ldmVudHMgdG8gbm9uZSBhbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byBjbGljawogICAgICAgIC8vIHRoZSBjbGVhciBidXR0b24KICAgICAgICAkaW5wdXQubmV4dCgnc3BhbicpLmNzcygncG9pbnRlci1ldmVudHMnLCAnYXV0bycpLmhpZGUoKS5jbGljayhmdW5jdGlvbigpIHsKICAgICAgICAgICQodGhpcykuaGlkZSgpLnByZXYoJ2lucHV0JykudmFsKCcnKS50cmlnZ2VyKCdpbnB1dCcpLmZvY3VzKCk7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIHNlYXJjaENvbDsgIC8vIHNlYXJjaCBzdHJpbmcgZm9yIHRoaXMgY29sdW1uCiAgICAgICAgaWYgKHNlYXJjaENvbHMgJiYgc2VhcmNoQ29sc1tpXSkgewogICAgICAgICAgc2VhcmNoQ29sID0gc2VhcmNoQ29sc1tpXTsKICAgICAgICAgICRpbnB1dC52YWwoc2VhcmNoQ29sKS50cmlnZ2VyKCdpbnB1dCcpOwogICAgICAgIH0KICAgICAgICB2YXIgJHggPSAkdGQuY2hpbGRyZW4oJ2RpdicpLmxhc3QoKTsKCiAgICAgICAgLy8gcmVtb3ZlIHRoZSBvdmVyZmxvdzogaGlkZGVuIGF0dHJpYnV0ZSBvZiB0aGUgc2Nyb2xsSGVhZAogICAgICAgIC8vIChvdGhlcndpc2UgdGhlIHNjcm9sbGluZyB0YWJsZSBib2R5IG9ic2N1cmVzIHRoZSBmaWx0ZXJzKQogICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGFuZCB0aGUgZGlzY3Vzc2lvbiBmcm9tCiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JzdHVkaW8vRFQvaXNzdWVzLzU1NCNpc3N1ZWNvbW1lbnQtNTE4MDA3MzQ3CiAgICAgICAgLy8gT3RoZXJ3aXNlIHRoZSBmaWx0ZXIgc2VsZWN0aW9uIHdpbGwgbm90IGJlIGFuY2hvcmVkIHRvIHRoZSB2YWx1ZXMKICAgICAgICAvLyB3aGVuIHRoZSBjb2x1bW5zIG51bWJlciBpcyBtYW55IGFuZCBzY3JvbGxYIGlzIGVuYWJsZWQuCiAgICAgICAgdmFyIHNjcm9sbEhlYWQgPSAkKGVsKS5maW5kKCcuZGF0YVRhYmxlc19zY3JvbGxIZWFkLC5kYXRhVGFibGVzX3Njcm9sbEZvb3QnKTsKICAgICAgICB2YXIgY3NzT3ZlcmZsb3dIZWFkID0gc2Nyb2xsSGVhZC5jc3MoJ292ZXJmbG93Jyk7CiAgICAgICAgdmFyIHNjcm9sbEJvZHkgPSAkKGVsKS5maW5kKCcuZGF0YVRhYmxlc19zY3JvbGxCb2R5Jyk7CiAgICAgICAgdmFyIGNzc092ZXJmbG93Qm9keSA9IHNjcm9sbEJvZHkuY3NzKCdvdmVyZmxvdycpOwogICAgICAgIHZhciBzY3JvbGxUYWJsZSA9ICQoZWwpLmZpbmQoJy5kYXRhVGFibGVzX3Njcm9sbCcpOwogICAgICAgIHZhciBjc3NPdmVyZmxvd1RhYmxlID0gc2Nyb2xsVGFibGUuY3NzKCdvdmVyZmxvdycpOwogICAgICAgIGlmIChjc3NPdmVyZmxvd0hlYWQgPT09ICdoaWRkZW4nKSB7CiAgICAgICAgICAkeC5vbignc2hvdyBoaWRlJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICBpZiAoZS50eXBlID09PSAnc2hvdycpIHsKICAgICAgICAgICAgICBzY3JvbGxIZWFkLmNzcygnb3ZlcmZsb3cnLCAndmlzaWJsZScpOwogICAgICAgICAgICAgIHNjcm9sbEJvZHkuY3NzKCdvdmVyZmxvdycsICd2aXNpYmxlJyk7CiAgICAgICAgICAgICAgc2Nyb2xsVGFibGUuY3NzKCdvdmVyZmxvdy14JywgJ3Njcm9sbCcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjcm9sbEhlYWQuY3NzKCdvdmVyZmxvdycsIGNzc092ZXJmbG93SGVhZCk7CiAgICAgICAgICAgICAgc2Nyb2xsQm9keS5jc3MoJ292ZXJmbG93JywgY3NzT3ZlcmZsb3dCb2R5KTsKICAgICAgICAgICAgICBzY3JvbGxUYWJsZS5jc3MoJ292ZXJmbG93LXgnLCBjc3NPdmVyZmxvd1RhYmxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICAkeC5jc3MoJ3otaW5kZXgnLCAyNSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaW5BcnJheSh0eXBlLCBbJ2ZhY3RvcicsICdsb2dpY2FsJ10pKSB7CiAgICAgICAgICAkaW5wdXQub24oewogICAgICAgICAgICBjbGljazogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgJGlucHV0LnBhcmVudCgpLmhpZGUoKTsgJHguc2hvdygpLnRyaWdnZXIoJ3Nob3cnKTsgZmlsdGVyWzBdLnNlbGVjdGl6ZS5mb2N1cygpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBpbnB1dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKCRpbnB1dC52YWwoKSA9PT0gJycpIGZpbHRlclswXS5zZWxlY3RpemUuc2V0VmFsdWUoW10pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIHZhciAkaW5wdXQyID0gJHguY2hpbGRyZW4oJ3NlbGVjdCcpOwogICAgICAgICAgZmlsdGVyID0gJGlucHV0Mi5zZWxlY3RpemUoewogICAgICAgICAgICBvcHRpb25zOiAkaW5wdXQyLmRhdGEoJ29wdGlvbnMnKS5tYXAoZnVuY3Rpb24odiwgaSkgewogICAgICAgICAgICAgIHJldHVybiAoe3RleHQ6IHYsIHZhbHVlOiB2fSk7CiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBwbHVnaW5zOiBbJ3JlbW92ZV9idXR0b24nXSwKICAgICAgICAgICAgaGlkZVNlbGVjdGVkOiB0cnVlLAogICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IG51bGwpIHZhbHVlID0gW107IC8vIGNvbXBhdGliaWxpdHkgd2l0aCBqUXVlcnkgMy4wCiAgICAgICAgICAgICAgJGlucHV0LnZhbCh2YWx1ZS5sZW5ndGggPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiAnJyk7CiAgICAgICAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCkgJGlucHV0LnRyaWdnZXIoJ2lucHV0Jyk7CiAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3RpdGxlJywgJGlucHV0LnZhbCgpKTsKICAgICAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgICAgICB0YWJsZS5jb2x1bW4oaSkuc2VhcmNoKHZhbHVlLmxlbmd0aCA/IGVuY29kZV9wbHVzKEpTT04uc3RyaW5naWZ5KHZhbHVlKSkgOiAnJykuZHJhdygpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyB0dXJuIG9mZiBmaWx0ZXIgaWYgbm90aGluZyBzZWxlY3RlZAogICAgICAgICAgICAgICR0ZC5kYXRhKCdmaWx0ZXInLCB2YWx1ZS5sZW5ndGggPiAwKTsKICAgICAgICAgICAgICB0YWJsZS5kcmF3KCk7ICAvLyByZWRyYXcgdGFibGUsIGFuZCBmaWx0ZXJzIHdpbGwgYmUgYXBwbGllZAogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIGlmIChzZWFyY2hDb2wpIGZpbHRlclswXS5zZWxlY3RpemUuc2V0VmFsdWUoSlNPTi5wYXJzZShzZWFyY2hDb2wpKTsKICAgICAgICAgIGZpbHRlclswXS5zZWxlY3RpemUub24oJ2JsdXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgJHguaGlkZSgpLnRyaWdnZXIoJ2hpZGUnKTsgJGlucHV0LnBhcmVudCgpLnNob3coKTsgJGlucHV0LnRyaWdnZXIoJ2JsdXInKTsKICAgICAgICAgIH0pOwogICAgICAgICAgZmlsdGVyLm5leHQoJ2RpdicpLmNzcygnbWFyZ2luLWJvdHRvbScsICdhdXRvJyk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnY2hhcmFjdGVyJykgewogICAgICAgICAgdmFyIGZ1biA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBzZWFyY2hDb2x1bW4oaSwgJGlucHV0LnZhbCgpKS5kcmF3KCk7CiAgICAgICAgICB9OwogICAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgICBmdW4gPSAkLmZuLmRhdGFUYWJsZS51dGlsLnRocm90dGxlKGZ1biwgb3B0aW9ucy5zZWFyY2hEZWxheSk7CiAgICAgICAgICB9CiAgICAgICAgICAkaW5wdXQub24oJ2lucHV0JywgZnVuKTsKICAgICAgICB9IGVsc2UgaWYgKGluQXJyYXkodHlwZSwgWydudW1iZXInLCAnaW50ZWdlcicsICdkYXRlJywgJ3RpbWUnXSkpIHsKICAgICAgICAgIHZhciAkeDAgPSAkeDsKICAgICAgICAgICR4ID0gJHgwLmNoaWxkcmVuKCdkaXYnKS5maXJzdCgpOwogICAgICAgICAgJHgwLmNzcyh7CiAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmZmYnLAogICAgICAgICAgICAnYm9yZGVyJzogJzFweCAjZGRkIHNvbGlkJywKICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JywKICAgICAgICAgICAgJ3BhZGRpbmcnOiBkYXRhLnZlcnRpY2FsID8gJzM1cHggMjBweCc6ICcyMHB4IDIwcHggMTBweCAyMHB4JwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgJHNwYW5zID0gJHgwLmNoaWxkcmVuKCdzcGFuJykuY3NzKHsKICAgICAgICAgICAgJ21hcmdpbi10b3AnOiBkYXRhLnZlcnRpY2FsID8gJzAnIDogJzEwcHgnLAogICAgICAgICAgICAnd2hpdGUtc3BhY2UnOiAnbm93cmFwJwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgJHNwYW4xID0gJHNwYW5zLmZpcnN0KCksICRzcGFuMiA9ICRzcGFucy5sYXN0KCk7CiAgICAgICAgICB2YXIgcjEgPSArJHguZGF0YSgnbWluJyksIHIyID0gKyR4LmRhdGEoJ21heCcpOwogICAgICAgICAgLy8gd2hlbiB0aGUgbnVtYmVycyBhcmUgdG9vIHNtYWxsIG9yIGhhdmUgbWFueSBkZWNpbWFsIHBsYWNlcywgdGhlCiAgICAgICAgICAvLyBzbGlkZXIgbWF5IGhhdmUgbnVtZXJpYyBwcmVjaXNpb24gcHJvYmxlbXMgKCMxNTApCiAgICAgICAgICB2YXIgc2NhbGUgPSBNYXRoLnBvdygxMCwgTWF0aC5tYXgoMCwgKyR4LmRhdGEoJ3NjYWxlJykgfHwgMCkpOwogICAgICAgICAgcjEgPSBNYXRoLnJvdW5kKHIxICogc2NhbGUpOyByMiA9IE1hdGgucm91bmQocjIgKiBzY2FsZSk7CiAgICAgICAgICB2YXIgc2NhbGVCYWNrID0gZnVuY3Rpb24oeCwgc2NhbGUpIHsKICAgICAgICAgICAgaWYgKHNjYWxlID09PSAxKSByZXR1cm4geDsKICAgICAgICAgICAgdmFyIGQgPSBNYXRoLnJvdW5kKE1hdGgubG9nKHNjYWxlKSAvIE1hdGgubG9nKDEwKSk7CiAgICAgICAgICAgIC8vIHRvIGF2b2lkIHByb2JsZW1zIGxpa2UgMy40MjMvMTAwIC0+IDAuMDM0MjMwMDAwMDAwMDAwMDAzCiAgICAgICAgICAgIHJldHVybiAoeCAvIHNjYWxlKS50b0ZpeGVkKGQpOwogICAgICAgICAgfTsKICAgICAgICAgIHZhciBzbGlkZXJfbWluID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBmaWx0ZXIubm9VaVNsaWRlcignb3B0aW9ucycpLnJhbmdlLm1pbjsKICAgICAgICAgIH07CiAgICAgICAgICB2YXIgc2xpZGVyX21heCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gZmlsdGVyLm5vVWlTbGlkZXIoJ29wdGlvbnMnKS5yYW5nZS5tYXg7CiAgICAgICAgICB9OwogICAgICAgICAgJGlucHV0Lm9uKHsKICAgICAgICAgICAgZm9jdXM6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICR4MC5zaG93KCkudHJpZ2dlcignc2hvdycpOwogICAgICAgICAgICAgIC8vIGZpcnN0LCBtYWtlIHN1cmUgdGhlIHNsaWRlciBkaXYgbGVhdmVzIGF0IGxlYXN0IDIwcHggYmV0d2VlbgogICAgICAgICAgICAgIC8vIHRoZSB0d28gKHNsaWRlciB2YWx1ZSkgc3BhbidzCiAgICAgICAgICAgICAgJHgwLndpZHRoKE1hdGgubWF4KDE2MCwgJHNwYW4xLm91dGVyV2lkdGgoKSArICRzcGFuMi5vdXRlcldpZHRoKCkgKyAyMCkpOwogICAgICAgICAgICAgIC8vIHRoZW4sIGlmIHRoZSBpbnB1dCBpcyByZWFsbHkgd2lkZSBvciBzbGlkZXIgaXMgdmVydGljYWwsCiAgICAgICAgICAgICAgLy8gbWFrZSB0aGUgc2xpZGVyIHRoZSBzYW1lIHdpZHRoIGFzIHRoZSBpbnB1dAogICAgICAgICAgICAgIGlmICgkeDAub3V0ZXJXaWR0aCgpIDwgJGlucHV0Lm91dGVyV2lkdGgoKSB8fCBkYXRhLnZlcnRpY2FsKSB7CiAgICAgICAgICAgICAgICAkeDAub3V0ZXJXaWR0aCgkaW5wdXQub3V0ZXJXaWR0aCgpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoZSBzbGlkZXIgZGl2IGRvZXMgbm90IHJlYWNoIGJleW9uZCB0aGUgcmlnaHQgbWFyZ2luCiAgICAgICAgICAgICAgaWYgKCQod2luZG93KS53aWR0aCgpIDwgJHgwLm9mZnNldCgpLmxlZnQgKyAkeDAud2lkdGgoKSkgewogICAgICAgICAgICAgICAgJHgwLm9mZnNldCh7CiAgICAgICAgICAgICAgICAgICdsZWZ0JzogJGlucHV0Lm9mZnNldCgpLmxlZnQgKyAkaW5wdXQub3V0ZXJXaWR0aCgpIC0gJHgwLm91dGVyV2lkdGgoKQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBibHVyOiBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAkeDAuaGlkZSgpLnRyaWdnZXIoJ2hpZGUnKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlmICgkaW5wdXQudmFsKCkgPT09ICcnKSBmaWx0ZXIudmFsKFtzbGlkZXJfbWluKCksIHNsaWRlcl9tYXgoKV0pOwogICAgICAgICAgICB9LAogICAgICAgICAgICBjaGFuZ2U6IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciB2ID0gJGlucHV0LnZhbCgpLnJlcGxhY2UoL1xzL2csICcnKTsKICAgICAgICAgICAgICBpZiAodiA9PT0gJycpIHJldHVybjsKICAgICAgICAgICAgICB2ID0gdi5zcGxpdCgnLi4uJyk7CiAgICAgICAgICAgICAgaWYgKHYubGVuZ3RoICE9PSAyKSB7CiAgICAgICAgICAgICAgICAkaW5wdXQucGFyZW50KCkuYWRkQ2xhc3MoJ2hhcy1lcnJvcicpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodlswXSA9PT0gJycpIHZbMF0gPSBzbGlkZXJfbWluKCk7CiAgICAgICAgICAgICAgaWYgKHZbMV0gPT09ICcnKSB2WzFdID0gc2xpZGVyX21heCgpOwogICAgICAgICAgICAgICRpbnB1dC5wYXJlbnQoKS5yZW1vdmVDbGFzcygnaGFzLWVycm9yJyk7CiAgICAgICAgICAgICAgLy8gdHJlYXQgZGF0ZSBhcyBVVEMgdGltZSBhdCBtaWRuaWdodAogICAgICAgICAgICAgIHZhciBzdHJUaW1lID0gZnVuY3Rpb24oeCkgewogICAgICAgICAgICAgICAgdmFyIHMgPSB0eXBlID09PSAnZGF0ZScgPyAnVDAwOjAwOjAwWicgOiAnJzsKICAgICAgICAgICAgICAgIHZhciB0ID0gbmV3IERhdGUoeCArIHMpLmdldFRpbWUoKTsKICAgICAgICAgICAgICAgIC8vIGFkZCAxMCBtaW51dGVzIHRvIGRhdGUgc2luY2UgaXQgZG9lcyBub3QgaHVydCB0aGUgZGF0ZSwgYW5kCiAgICAgICAgICAgICAgICAvLyBpdCBoZWxwcyBhdm9pZCB0aGUgdHJpY2t5IGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgcHJvYmxlbXMsCiAgICAgICAgICAgICAgICAvLyBlLmcuIHNvbWV0aW1lcyB0aGUgZGF0ZSBtYXkgYmUgYSBmZXcgbWlsbGlzZWNvbmRzIGVhcmxpZXIKICAgICAgICAgICAgICAgIC8vIHRoYW4gdGhlIG1pZG5pZ2h0IGR1ZSB0byBwcmVjaXNpb24gcHJvYmxlbXMgaW4gbm9VaVNsaWRlcgogICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUgPT09ICdkYXRlJyA/IHQgKyAzNjAwMDAwIDogdDsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGlmIChpbkFycmF5KHR5cGUsIFsnZGF0ZScsICd0aW1lJ10pKSB7CiAgICAgICAgICAgICAgICB2WzBdID0gc3RyVGltZSh2WzBdKTsKICAgICAgICAgICAgICAgIHZbMV0gPSBzdHJUaW1lKHZbMV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodlswXSAhPSBzbGlkZXJfbWluKCkpIHZbMF0gKj0gc2NhbGU7CiAgICAgICAgICAgICAgaWYgKHZbMV0gIT0gc2xpZGVyX21heCgpKSB2WzFdICo9IHNjYWxlOwogICAgICAgICAgICAgIGZpbHRlci52YWwodik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgdmFyIGZvcm1hdERhdGUgPSBmdW5jdGlvbihkLCBpc29GbXQpIHsKICAgICAgICAgICAgZCA9IHNjYWxlQmFjayhkLCBzY2FsZSk7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJykgcmV0dXJuIGQ7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnaW50ZWdlcicpIHJldHVybiBwYXJzZUludChkKTsKICAgICAgICAgICAgdmFyIHggPSBuZXcgRGF0ZSgrZCk7CiAgICAgICAgICAgIHZhciBmbXQgPSAoJ2ZpbHRlckRhdGVGbXQnIGluIGRhdGEpID8gZGF0YS5maWx0ZXJEYXRlRm10W2ldIDogdW5kZWZpbmVkOwogICAgICAgICAgICBpZiAoZm10ICE9PSB1bmRlZmluZWQgJiYgaXNvRm10ID09PSBmYWxzZSkgcmV0dXJuIHhbZm10Lm1ldGhvZF0uYXBwbHkoeCwgZm10LnBhcmFtcyk7CiAgICAgICAgICAgIGlmICh0eXBlID09PSAnZGF0ZScpIHsKICAgICAgICAgICAgICB2YXIgcGFkMCA9IGZ1bmN0aW9uKHgpIHsKICAgICAgICAgICAgICAgIHJldHVybiAoJzAnICsgeCkuc3Vic3RyKC0yLCAyKTsKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIHJldHVybiB4LmdldFVUQ0Z1bGxZZWFyKCkgKyAnLScgKyBwYWQwKDEgKyB4LmdldFVUQ01vbnRoKCkpCiAgICAgICAgICAgICAgICAgICAgICArICctJyArIHBhZDAoeC5nZXRVVENEYXRlKCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJldHVybiB4LnRvSVNPU3RyaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICB2YXIgb3B0cyA9IHR5cGUgPT09ICdkYXRlJyA/IHsgc3RlcDogNjAgKiA2MCAqIDEwMDAgfSA6CiAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT09ICdpbnRlZ2VyJyA/IHsgc3RlcDogMSB9IDoge307CgogICAgICAgICAgb3B0cy5vcmllbnRhdGlvbiA9IGRhdGEudmVydGljYWwgPyAndmVydGljYWwnOiAnaG9yaXpvbnRhbCc7CiAgICAgICAgICBvcHRzLmRpcmVjdGlvbiA9IGRhdGEudmVydGljYWwgPyAncnRsJzogJ2x0cic7CgogICAgICAgICAgZmlsdGVyID0gJHgubm9VaVNsaWRlcigkLmV4dGVuZCh7CiAgICAgICAgICAgIHN0YXJ0OiBbcjEsIHIyXSwKICAgICAgICAgICAgcmFuZ2U6IHttaW46IHIxLCBtYXg6IHIyfSwKICAgICAgICAgICAgY29ubmVjdDogdHJ1ZQogICAgICAgICAgfSwgb3B0cykpOwogICAgICAgICAgaWYgKHNjYWxlID4gMSkgKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgdDEgPSByMSwgdDIgPSByMjsKICAgICAgICAgICAgdmFyIHZhbCA9IGZpbHRlci52YWwoKTsKICAgICAgICAgICAgd2hpbGUgKHZhbFswXSA+IHIxIHx8IHZhbFsxXSA8IHIyKSB7CiAgICAgICAgICAgICAgaWYgKHZhbFswXSA+IHIxKSB7CiAgICAgICAgICAgICAgICB0MSAtPSB2YWxbMF0gLSByMTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHZhbFsxXSA8IHIyKSB7CiAgICAgICAgICAgICAgICB0MiArPSByMiAtIHZhbFsxXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZmlsdGVyID0gJHgubm9VaVNsaWRlcigkLmV4dGVuZCh7CiAgICAgICAgICAgICAgICBzdGFydDogW3QxLCB0Ml0sCiAgICAgICAgICAgICAgICByYW5nZToge21pbjogdDEsIG1heDogdDJ9LAogICAgICAgICAgICAgICAgY29ubmVjdDogdHJ1ZQogICAgICAgICAgICAgIH0sIG9wdHMpLCB0cnVlKTsKICAgICAgICAgICAgICB2YWwgPSBmaWx0ZXIudmFsKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcjEgID0gdDE7IHIyID0gdDI7CiAgICAgICAgICB9KSgpOwogICAgICAgICAgdmFyIHVwZGF0ZVNsaWRlclRleHQgPSBmdW5jdGlvbih2MSwgdjIpIHsKICAgICAgICAgICAgJHNwYW4xLnRleHQoZm9ybWF0RGF0ZSh2MSwgZmFsc2UpKTsgJHNwYW4yLnRleHQoZm9ybWF0RGF0ZSh2MiwgZmFsc2UpKTsKICAgICAgICAgIH07CiAgICAgICAgICB1cGRhdGVTbGlkZXJUZXh0KHIxLCByMik7CiAgICAgICAgICB2YXIgdXBkYXRlU2xpZGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgdmFsID0gZmlsdGVyLnZhbCgpOwogICAgICAgICAgICAvLyB0dXJuIG9mZiBmaWx0ZXIgaWYgaW4gZnVsbCByYW5nZQogICAgICAgICAgICAkdGQuZGF0YSgnZmlsdGVyJywgdmFsWzBdID4gc2xpZGVyX21pbigpIHx8IHZhbFsxXSA8IHNsaWRlcl9tYXgoKSk7CiAgICAgICAgICAgIHZhciB2MSA9IGZvcm1hdERhdGUodmFsWzBdKSwgdjIgPSBmb3JtYXREYXRlKHZhbFsxXSksIGl2YWw7CiAgICAgICAgICAgIGlmICgkdGQuZGF0YSgnZmlsdGVyJykpIHsKICAgICAgICAgICAgICBpdmFsID0gdjEgKyAnIC4uLiAnICsgdjI7CiAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3RpdGxlJywgaXZhbCkudmFsKGl2YWwpLnRyaWdnZXIoJ2lucHV0Jyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3RpdGxlJywgJycpLnZhbCgnJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdXBkYXRlU2xpZGVyVGV4dCh2YWxbMF0sIHZhbFsxXSk7CiAgICAgICAgICAgIGlmIChlLnR5cGUgPT09ICdzbGlkZScpIHJldHVybjsgIC8vIG5vIHNlYXJjaGluZyB3aGVuIHNsaWRpbmcgb25seQogICAgICAgICAgICBpZiAoc2VydmVyKSB7CiAgICAgICAgICAgICAgdGFibGUuY29sdW1uKGkpLnNlYXJjaCgkdGQuZGF0YSgnZmlsdGVyJykgPyBpdmFsIDogJycpLmRyYXcoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFibGUuZHJhdygpOwogICAgICAgICAgfTsKICAgICAgICAgIGZpbHRlci5vbih7CiAgICAgICAgICAgIHNldDogdXBkYXRlU2xpZGVyLAogICAgICAgICAgICBzbGlkZTogdXBkYXRlU2xpZGVyCiAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICAgIC8vIHNlcnZlci1zaWRlIHByb2Nlc3Npbmcgd2lsbCBiZSBoYW5kbGVkIGJ5IFIgKG9yIHdoYXRldmVyIHNlcnZlcgogICAgICAgIC8vIGxhbmd1YWdlIHlvdSB1c2UpOyB0aGUgZm9sbG93aW5nIGNvZGUgaXMgb25seSBuZWVkZWQgZm9yIGNsaWVudC1zaWRlCiAgICAgICAgLy8gcHJvY2Vzc2luZwogICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgIC8vIGlmIGEgc2VhcmNoIHN0cmluZyBoYXMgYmVlbiBwcmUtc2V0LCBzZWFyY2ggbm93CiAgICAgICAgICBpZiAoc2VhcmNoQ29sKSBzZWFyY2hDb2x1bW4oaSwgc2VhcmNoQ29sKS5kcmF3KCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgY3VzdG9tRmlsdGVyID0gZnVuY3Rpb24oc2V0dGluZ3MsIGRhdGEsIGRhdGFJbmRleCkgewogICAgICAgICAgLy8gdGhlcmUgaXMgbm8gd2F5IHRvIGF0dGFjaCBhIHNlYXJjaCBmdW5jdGlvbiB0byBhIHNwZWNpZmljIHRhYmxlLAogICAgICAgICAgLy8gYW5kIHdlIG5lZWQgdG8gbWFrZSBzdXJlIGEgZ2xvYmFsIHNlYXJjaCBmdW5jdGlvbiBpcyBub3QgYXBwbGllZCB0bwogICAgICAgICAgLy8gYWxsIHRhYmxlcyAoaS5lLiBhIHJhbmdlIGZpbHRlciBpbiBhIHByZXZpb3VzIHRhYmxlIHNob3VsZCBub3QgYmUKICAgICAgICAgIC8vIGFwcGxpZWQgdG8gdGhlIGN1cnJlbnQgdGFibGUpOyB3ZSB1c2UgdGhlIHNldHRpbmdzIG9iamVjdCB0bwogICAgICAgICAgLy8gZGV0ZXJtaW5lIGlmIHdlIHdhbnQgdG8gcGVyZm9ybSBzZWFyY2hpbmcgb24gdGhlIGN1cnJlbnQgdGFibGUsCiAgICAgICAgICAvLyBzaW5jZSBzZXR0aW5ncy5zVGFibGVJZCB3aWxsIGJlIGRpZmZlcmVudCB0byBkaWZmZXJlbnQgdGFibGVzCiAgICAgICAgICBpZiAodGFibGUuc2V0dGluZ3MoKVswXSAhPT0gc2V0dGluZ3MpIHJldHVybiB0cnVlOwogICAgICAgICAgLy8gbm8gZmlsdGVyIG9uIHRoaXMgY29sdW1uIG9yIG5vIG5lZWQgdG8gZmlsdGVyIHRoaXMgY29sdW1uCiAgICAgICAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ3VuZGVmaW5lZCcgfHwgISR0ZC5kYXRhKCdmaWx0ZXInKSkgcmV0dXJuIHRydWU7CgogICAgICAgICAgdmFyIHIgPSBmaWx0ZXIudmFsKCksIHYsIHIwLCByMTsKICAgICAgICAgIHZhciBpX2RhdGEgPSBmdW5jdGlvbihpKSB7CiAgICAgICAgICAgIGlmICghY29sUmVvcmRlckVuYWJsZWQoKSkgcmV0dXJuIGk7CiAgICAgICAgICAgIHZhciBvcmRlciA9IHRhYmxlLmNvbFJlb3JkZXIub3JkZXIoKSwgazsKICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IG9yZGVyLmxlbmd0aDsgKytrKSBpZiAob3JkZXJba10gPT09IGkpIHJldHVybiBrOwogICAgICAgICAgICByZXR1cm4gaTsgLy8gaW4gdGhlb3J5IGl0IHdpbGwgbmV2ZXIgYmUgaGVyZS4uLgogICAgICAgICAgfQogICAgICAgICAgdiA9IGRhdGFbaV9kYXRhKGkpXTsKICAgICAgICAgIGlmICh0eXBlID09PSAnbnVtYmVyJyB8fCB0eXBlID09PSAnaW50ZWdlcicpIHsKICAgICAgICAgICAgdiA9IHBhcnNlRmxvYXQodik7CiAgICAgICAgICAgIC8vIGhvdyB0byBoYW5kbGUgTmFOPyBjdXJyZW50bHkgZXhjbHVkZSB0aGVzZSByb3dzCiAgICAgICAgICAgIGlmIChpc05hTih2KSkgcmV0dXJuKGZhbHNlKTsKICAgICAgICAgICAgcjAgPSBwYXJzZUZsb2F0KHNjYWxlQmFjayhyWzBdLCBzY2FsZSkpCiAgICAgICAgICAgIHIxID0gcGFyc2VGbG9hdChzY2FsZUJhY2soclsxXSwgc2NhbGUpKTsKICAgICAgICAgICAgaWYgKHYgPj0gcjAgJiYgdiA8PSByMSkgcmV0dXJuIHRydWU7CiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdkYXRlJyB8fCB0eXBlID09PSAndGltZScpIHsKICAgICAgICAgICAgdiA9IG5ldyBEYXRlKHYpOwogICAgICAgICAgICByMCA9IG5ldyBEYXRlKHJbMF0gLyBzY2FsZSk7IHIxID0gbmV3IERhdGUoclsxXSAvIHNjYWxlKTsKICAgICAgICAgICAgaWYgKHYgPj0gcjAgJiYgdiA8PSByMSkgcmV0dXJuIHRydWU7CiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdmYWN0b3InKSB7CiAgICAgICAgICAgIGlmIChyLmxlbmd0aCA9PT0gMCB8fCBpbkFycmF5KHYsIHIpKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2xvZ2ljYWwnKSB7CiAgICAgICAgICAgIGlmIChyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIGlmIChpbkFycmF5KHYgPT09ICcnID8gJ25hJyA6IHYsIHIpKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9OwoKICAgICAgICAkLmZuLmRhdGFUYWJsZS5leHQuc2VhcmNoLnB1c2goY3VzdG9tRmlsdGVyKTsKCiAgICAgICAgLy8gc2VhcmNoIGZvciB0aGUgcHJlc2V0IHNlYXJjaCBzdHJpbmdzIGlmIGl0IGlzIG5vbi1lbXB0eQogICAgICAgIGlmIChzZWFyY2hDb2wpIHsKICAgICAgICAgIGlmIChpbkFycmF5KHR5cGUsIFsnZmFjdG9yJywgJ2xvZ2ljYWwnXSkpIHsKICAgICAgICAgICAgZmlsdGVyWzBdLnNlbGVjdGl6ZS5zZXRWYWx1ZShKU09OLnBhcnNlKHNlYXJjaENvbCkpOwogICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnY2hhcmFjdGVyJykgewogICAgICAgICAgICAkaW5wdXQudHJpZ2dlcignaW5wdXQnKTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5BcnJheSh0eXBlLCBbJ251bWJlcicsICdpbnRlZ2VyJywgJ2RhdGUnLCAndGltZSddKSkgewogICAgICAgICAgICAkaW5wdXQudHJpZ2dlcignY2hhbmdlJyk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgfSk7CgogICAgfQoKICAgIC8vIGhpZ2hsaWdodCBzZWFyY2gga2V5d29yZHMKICAgIHZhciBoaWdobGlnaHQgPSBmdW5jdGlvbigpIHsKICAgICAgdmFyIGJvZHkgPSAkKHRhYmxlLnRhYmxlKCkuYm9keSgpKTsKICAgICAgLy8gcmVtb3ZpbmcgdGhlIG9sZCBoaWdobGlnaHRpbmcgZmlyc3QKICAgICAgYm9keS51bmhpZ2hsaWdodCgpOwoKICAgICAgLy8gZG9uJ3QgaGlnaGxpZ2h0IHRoZSAibm90IGZvdW5kIiByb3csIHNvIHdlIGdldCB0aGUgcm93cyB1c2luZyB0aGUgYXBpCiAgICAgIGlmICh0YWJsZS5yb3dzKHsgZmlsdGVyOiAnYXBwbGllZCcgfSkuZGF0YSgpLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAvLyBoaWdobGlnaHQgZ2xvYmFsIHNlYXJjaCBrZXl3b3JkcwogICAgICBib2R5LmhpZ2hsaWdodCgkLnRyaW0odGFibGUuc2VhcmNoKCkpLnNwbGl0KC9ccysvKSk7CiAgICAgIC8vIHRoZW4gaGlnaGxpZ2h0IGtleXdvcmRzIGZyb20gaW5kaXZpZHVhbCBjb2x1bW4gZmlsdGVycwogICAgICBpZiAoZmlsdGVyUm93KSBmaWx0ZXJSb3cuZWFjaChmdW5jdGlvbihpLCB0ZCkgewogICAgICAgIHZhciAkdGQgPSAkKHRkKSwgdHlwZSA9ICR0ZC5kYXRhKCd0eXBlJyk7CiAgICAgICAgaWYgKHR5cGUgIT09ICdjaGFyYWN0ZXInKSByZXR1cm47CiAgICAgICAgdmFyICRpbnB1dCA9ICR0ZC5jaGlsZHJlbignZGl2JykuZmlyc3QoKS5jaGlsZHJlbignaW5wdXQnKTsKICAgICAgICB2YXIgY29sdW1uID0gdGFibGUuY29sdW1uKGkpLm5vZGVzKCkudG8kKCksCiAgICAgICAgICAgIHZhbCA9ICQudHJpbSgkaW5wdXQudmFsKCkpOwogICAgICAgIGlmICh0eXBlICE9PSAnY2hhcmFjdGVyJyB8fCB2YWwgPT09ICcnKSByZXR1cm47CiAgICAgICAgY29sdW1uLmhpZ2hsaWdodCh2YWwuc3BsaXQoL1xzKy8pKTsKICAgICAgfSk7CiAgICB9OwoKICAgIGlmIChvcHRpb25zLnNlYXJjaEhpZ2hsaWdodCkgewogICAgICB0YWJsZQogICAgICAub24oJ2RyYXcuZHQuZHRoIGNvbHVtbi12aXNpYmlsaXR5LmR0LmR0aCBjb2x1bW4tcmVvcmRlci5kdC5kdGgnLCBoaWdobGlnaHQpCiAgICAgIC5vbignZGVzdHJveScsIGZ1bmN0aW9uKCkgewogICAgICAgIC8vIHJlbW92ZSBldmVudCBoYW5kbGVyCiAgICAgICAgdGFibGUub2ZmKCdkcmF3LmR0LmR0aCBjb2x1bW4tdmlzaWJpbGl0eS5kdC5kdGggY29sdW1uLXJlb3JkZXIuZHQuZHRoJyk7CiAgICAgIH0pOwoKICAgICAgLy8gU2V0IHRoZSBvcHRpb24gZm9yIGVzY2FwaW5nIHJlZ2V4IGNoYXJhY3RlcnMgaW4gb3VyIHNlYXJjaCBzdHJpbmcuICBUaGlzIHdpbGwgYmUgdXNlZAogICAgICAvLyBmb3IgYWxsIGZ1dHVyZSBtYXRjaGluZy4KICAgICAgalF1ZXJ5LmZuLmhpZ2hsaWdodC5vcHRpb25zLmVzY2FwZVJlZ2V4ID0gKCFvcHRpb25zLnNlYXJjaCB8fCAhb3B0aW9ucy5zZWFyY2gucmVnZXgpOwoKICAgICAgLy8gaW5pdGlhbCBoaWdobGlnaHQgZm9yIHN0YXRlIHNhdmVkIGNvbmRpdGlvbnMgYW5kIGluaXRpYWwgc3RhdGVzCiAgICAgIGhpZ2hsaWdodCgpOwogICAgfQoKICAgIC8vIHJ1biB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gb24gdGhlIHRhYmxlIGluc3RhbmNlCiAgICBpZiAodHlwZW9mIGRhdGEuY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIGRhdGEuY2FsbGJhY2sodGFibGUpOwoKICAgIC8vIGRvdWJsZSBjbGljayB0byBlZGl0IHRoZSBjZWxsLCByb3csIGNvbHVtbiwgb3IgYWxsIGNlbGxzCiAgICBpZiAoZGF0YS5lZGl0YWJsZSkgdGFibGUub24oJ2RibGNsaWNrLmR0JywgJ3Rib2R5IHRkJywgZnVuY3Rpb24oZSkgewogICAgICAvLyBvbmx5IGJyaW5nIHVwIHRoZSBlZGl0b3Igd2hlbiB0aGUgY2VsbCBpdHNlbGYgaXMgZGJjbGlja2VkLCBhbmQgaWdub3JlCiAgICAgIC8vIG90aGVyIGRiY2xpY2sgZXZlbnRzIGJ1YmJsZWQgdXAgKGUuZy4gZnJvbSB0aGUgPGlucHV0PikKICAgICAgaWYgKGUudGFyZ2V0ICE9PSB0aGlzKSByZXR1cm47CiAgICAgIHZhciB0YXJnZXQgPSBbXSwgaW1tZWRpYXRlID0gZmFsc2U7CiAgICAgIHN3aXRjaCAoZGF0YS5lZGl0YWJsZS50YXJnZXQpIHsKICAgICAgICBjYXNlICdjZWxsJzoKICAgICAgICAgIHRhcmdldCA9IFt0aGlzXTsKICAgICAgICAgIGltbWVkaWF0ZSA9IHRydWU7ICAvLyBlZGl0IHdpbGwgdGFrZSBlZmZlY3QgaW1tZWRpYXRlbHkKICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgJ3Jvdyc6CiAgICAgICAgICB0YXJnZXQgPSB0YWJsZS5jZWxscyh0YWJsZS5jZWxsKHRoaXMpLmluZGV4KCkucm93LCAnKicpLm5vZGVzKCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdjb2x1bW4nOgogICAgICAgICAgdGFyZ2V0ID0gdGFibGUuY2VsbHMoJyonLCB0YWJsZS5jZWxsKHRoaXMpLmluZGV4KCkuY29sdW1uKS5ub2RlcygpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnYWxsJzoKICAgICAgICAgIHRhcmdldCA9IHRhYmxlLmNlbGxzKCkubm9kZXMoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyAnVGhlIGVkaXRhYmxlIHBhcmFtZXRlciBtdXN0IGJlICJjZWxsIiwgInJvdyIsICJjb2x1bW4iLCBvciAiYWxsIic7CiAgICAgIH0KICAgICAgdmFyIGRpc2FibGVDb2xzID0gZGF0YS5lZGl0YWJsZS5kaXNhYmxlID8gZGF0YS5lZGl0YWJsZS5kaXNhYmxlLmNvbHVtbnMgOiBudWxsOwogICAgICB2YXIgbnVtZXJpY0NvbHMgPSBkYXRhLmVkaXRhYmxlLm51bWVyaWM7CiAgICAgIHZhciBhcmVhQ29scyA9IGRhdGEuZWRpdGFibGUuYXJlYTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YXJnZXQubGVuZ3RoOyBpKyspIHsKICAgICAgICAoZnVuY3Rpb24oY2VsbCwgY3VycmVudCkgewogICAgICAgICAgdmFyICRjZWxsID0gJChjZWxsKSwgaHRtbCA9ICRjZWxsLmh0bWwoKTsKICAgICAgICAgIHZhciBfY2VsbCA9IHRhYmxlLmNlbGwoY2VsbCksIHZhbHVlID0gX2NlbGwuZGF0YSgpLCBpbmRleCA9IF9jZWxsLmluZGV4KCkuY29sdW1uOwogICAgICAgICAgdmFyICRpbnB1dDsKICAgICAgICAgIGlmIChpbkFycmF5KGluZGV4LCBudW1lcmljQ29scykpIHsKICAgICAgICAgICAgJGlucHV0ID0gJCgnPGlucHV0IHR5cGU9Im51bWJlciI+Jyk7CiAgICAgICAgICB9IGVsc2UgaWYgKGluQXJyYXkoaW5kZXgsIGFyZWFDb2xzKSkgewogICAgICAgICAgICAkaW5wdXQgPSAkKCc8dGV4dGFyZWE+PC90ZXh0YXJlYT4nKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRpbnB1dCA9ICQoJzxpbnB1dCB0eXBlPSJ0ZXh0Ij4nKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghaW1tZWRpYXRlKSB7CiAgICAgICAgICAgICRjZWxsLmRhdGEoJ2lucHV0JywgJGlucHV0KS5kYXRhKCdodG1sJywgaHRtbCk7CiAgICAgICAgICAgICRpbnB1dC5hdHRyKCd0aXRsZScsICdIaXQgQ3RybCtFbnRlciB0byBmaW5pc2ggZWRpdGluZywgb3IgRXNjIHRvIGNhbmNlbCcpOwogICAgICAgICAgfQogICAgICAgICAgJGlucHV0LnZhbCh2YWx1ZSk7CiAgICAgICAgICBpZiAoaW5BcnJheShpbmRleCwgZGlzYWJsZUNvbHMpKSB7CiAgICAgICAgICAgICRpbnB1dC5hdHRyKCdyZWFkb25seScsICcnKS5jc3MoJ2ZpbHRlcicsICdpbnZlcnQoMjUlKScpOwogICAgICAgICAgfQogICAgICAgICAgJGNlbGwuZW1wdHkoKS5hcHBlbmQoJGlucHV0KTsKICAgICAgICAgIGlmIChjZWxsID09PSBjdXJyZW50KSAkaW5wdXQuZm9jdXMoKTsKICAgICAgICAgICRpbnB1dC5jc3MoJ3dpZHRoJywgJzEwMCUnKTsKCiAgICAgICAgICBpZiAoaW1tZWRpYXRlKSAkaW5wdXQub24oJ2JsdXInLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIHZhciB2YWx1ZU5ldyA9ICRpbnB1dC52YWwoKTsKICAgICAgICAgICAgaWYgKHZhbHVlTmV3ICE9IHZhbHVlKSB7CiAgICAgICAgICAgICAgX2NlbGwuZGF0YSh2YWx1ZU5ldyk7CiAgICAgICAgICAgICAgaWYgKEhUTUxXaWRnZXRzLnNoaW55TW9kZSkgewogICAgICAgICAgICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxfZWRpdCcsIFtjZWxsSW5mbyhjZWxsKV0sICdEVC5jZWxsSW5mbycsIG51bGwsIHtwcmlvcml0eTogJ2V2ZW50J30pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyBmb3Igc2VydmVyLXNpZGUgcHJvY2Vzc2luZywgdXNlcnMgaGF2ZSB0byBjYWxsIHJlcGxhY2VEYXRhKCkgdG8gdXBkYXRlIHRoZSB0YWJsZQogICAgICAgICAgICAgIGlmICghc2VydmVyKSB0YWJsZS5kcmF3KGZhbHNlKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAkY2VsbC5odG1sKGh0bWwpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KS5vbigna2V5dXAnLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgIC8vIGhpdCBFc2NhcGUgdG8gY2FuY2VsIGVkaXRpbmcKICAgICAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMjcpICRpbnB1dC50cmlnZ2VyKCdibHVyJyk7CiAgICAgICAgICB9KTsKCiAgICAgICAgICAvLyBidWxrIGVkaXQgKHJvdywgY29sdW1uLCBvciBhbGwpCiAgICAgICAgICBpZiAoIWltbWVkaWF0ZSkgJGlucHV0Lm9uKCdrZXl1cCcsIGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgdmFyIHJlbW92ZUlucHV0ID0gZnVuY3Rpb24oJGNlbGwsIHJlc3RvcmUpIHsKICAgICAgICAgICAgICAkY2VsbC5kYXRhKCdpbnB1dCcpLnJlbW92ZSgpOwogICAgICAgICAgICAgIGlmIChyZXN0b3JlKSAkY2VsbC5odG1sKCRjZWxsLmRhdGEoJ2h0bWwnKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGUua2V5Q29kZSA9PT0gMjcpIHsKICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhcmdldC5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgcmVtb3ZlSW5wdXQoJCh0YXJnZXRbaV0pLCB0cnVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5rZXlDb2RlID09PSAxMyAmJiBlLmN0cmxLZXkpIHsKICAgICAgICAgICAgICAvLyBDdHJsICsgRW50ZXIKICAgICAgICAgICAgICB2YXIgY2VsbCwgJGNlbGwsIF9jZWxsLCBjZWxsRGF0YSA9IFtdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFyZ2V0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBjZWxsID0gdGFyZ2V0W2ldOyAkY2VsbCA9ICQoY2VsbCk7IF9jZWxsID0gdGFibGUuY2VsbChjZWxsKTsKICAgICAgICAgICAgICAgIF9jZWxsLmRhdGEoJGNlbGwuZGF0YSgnaW5wdXQnKS52YWwoKSk7CiAgICAgICAgICAgICAgICBIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgY2VsbERhdGEucHVzaChjZWxsSW5mbyhjZWxsKSk7CiAgICAgICAgICAgICAgICByZW1vdmVJbnB1dCgkY2VsbCwgZmFsc2UpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoSFRNTFdpZGdldHMuc2hpbnlNb2RlKSB7CiAgICAgICAgICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbF9lZGl0JywgY2VsbERhdGEsICdEVC5jZWxsSW5mbycsIG51bGwsIHtwcmlvcml0eTogImV2ZW50In0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIXNlcnZlcikgdGFibGUuZHJhdyhmYWxzZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0pKHRhcmdldFtpXSwgdGhpcyk7CiAgICAgIH0KICAgIH0pOwoKICAgIC8vIGludGVyYWN0aW9uIHdpdGggc2hpbnkKICAgIGlmICghSFRNTFdpZGdldHMuc2hpbnlNb2RlICYmICFjcm9zc3RhbGtPcHRpb25zLmdyb3VwKSByZXR1cm47CgogICAgdmFyIG1ldGhvZHMgPSB7fTsKICAgIHZhciBzaGlueURhdGEgPSB7fTsKCiAgICBtZXRob2RzLnVwZGF0ZUNhcHRpb24gPSBmdW5jdGlvbihjYXB0aW9uKSB7CiAgICAgIGlmICghY2FwdGlvbikgcmV0dXJuOwogICAgICAkdGFibGUuY2hpbGRyZW4oJ2NhcHRpb24nKS5yZXBsYWNlV2l0aChjYXB0aW9uKTsKICAgIH0KCiAgICAvLyByZWdpc3RlciBjbGVhciBmdW5jdGlvbnMgdG8gcmVtb3ZlIGlucHV0IHZhbHVlcyB3aGVuIHRoZSB0YWJsZSBpcyByZW1vdmVkCiAgICBpbnN0YW5jZS5jbGVhcklucHV0cyA9IHt9OwoKICAgIHZhciBjaGFuZ2VJbnB1dCA9IGZ1bmN0aW9uKGlkLCB2YWx1ZSwgdHlwZSwgbm9Dcm9zc3RhbGssIG9wdHMpIHsKICAgICAgdmFyIGV2ZW50ID0gaWQ7CiAgICAgIGlkID0gZWwuaWQgKyAnXycgKyBpZDsKICAgICAgaWYgKHR5cGUpIGlkID0gaWQgKyAnOicgKyB0eXBlOwogICAgICAvLyBkbyBub3QgdXBkYXRlIGlmIHRoZSBuZXcgdmFsdWUgaXMgdGhlIHNhbWUgYXMgb2xkIHZhbHVlCiAgICAgIGlmIChldmVudCAhPT0gJ2NlbGxfZWRpdCcgJiYgIS9fY2xpY2tlZCQvLnRlc3QoZXZlbnQpICYmIHNoaW55RGF0YS5oYXNPd25Qcm9wZXJ0eShpZCkgJiYgc2hpbnlEYXRhW2lkXSA9PT0gSlNPTi5zdHJpbmdpZnkodmFsdWUpKQogICAgICAgIHJldHVybjsKICAgICAgc2hpbnlEYXRhW2lkXSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKTsKICAgICAgaWYgKEhUTUxXaWRnZXRzLnNoaW55TW9kZSAmJiBTaGlueS5zZXRJbnB1dFZhbHVlKSB7CiAgICAgICAgU2hpbnkuc2V0SW5wdXRWYWx1ZShpZCwgdmFsdWUsIG9wdHMpOwogICAgICAgIGlmICghaW5zdGFuY2UuY2xlYXJJbnB1dHNbaWRdKSBpbnN0YW5jZS5jbGVhcklucHV0c1tpZF0gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIFNoaW55LnNldElucHV0VmFsdWUoaWQsIG51bGwpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gSEFDSwogICAgICBpZiAoZXZlbnQgPT09ICJyb3dzX3NlbGVjdGVkIiAmJiAhbm9Dcm9zc3RhbGspIHsKICAgICAgICBpZiAoY3Jvc3N0YWxrT3B0aW9ucy5ncm91cCkgewogICAgICAgICAgdmFyIGtleXMgPSBjcm9zc3RhbGtPcHRpb25zLmtleTsKICAgICAgICAgIHZhciBzZWxlY3RlZEtleXMgPSBudWxsOwogICAgICAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgICAgIHNlbGVjdGVkS2V5cyA9IFtdOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgLy8gVGhlIHZhbHVlIGFycmF5J3MgY29udGVudHMgdXNlIDEtYmFzZWQgcm93IG51bWJlcnMsIHNvIHdlIG11c3QKICAgICAgICAgICAgICAvLyBjb252ZXJ0IHRvIDAtYmFzZWQgYmVmb3JlIGluZGV4aW5nIGludG8gdGhlIGtleXMgYXJyYXkuCiAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzLnB1c2goa2V5c1t2YWx1ZVtpXSAtIDFdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaW5zdGFuY2UuY3RzZWxlY3RIYW5kbGUuc2V0KHNlbGVjdGVkS2V5cyk7CiAgICAgICAgfQogICAgICB9CiAgICB9OwoKICAgIHZhciBhZGRPbmUgPSBmdW5jdGlvbih4KSB7CiAgICAgIHJldHVybiB4Lm1hcChmdW5jdGlvbihpKSB7IHJldHVybiAxICsgaTsgfSk7CiAgICB9OwoKICAgIHZhciB1bmlxdWUgPSBmdW5jdGlvbih4KSB7CiAgICAgIHZhciB1eCA9IFtdOwogICAgICAkLmVhY2goeCwgZnVuY3Rpb24oaSwgZWwpewogICAgICAgIGlmICgkLmluQXJyYXkoZWwsIHV4KSA9PT0gLTEpIHV4LnB1c2goZWwpOwogICAgICB9KTsKICAgICAgcmV0dXJuIHV4OwogICAgfQoKICAgIC8vIGNoYW5nZSB0aGUgcm93IGluZGV4IG9mIGEgY2VsbAogICAgdmFyIHR3ZWFrQ2VsbEluZGV4ID0gZnVuY3Rpb24oY2VsbCkgewogICAgICB2YXIgaW5mbyA9IGNlbGwuaW5kZXgoKTsKICAgICAgLy8gc29tZSBjZWxsIG1heSBub3QgYmUgdmFsaWQuIGUuZywgIzc1OQogICAgICAvLyB3aGVuIHVzaW5nIHRoZSBSb3dHcm91cCBleHRlbnNpb24sIGRhdGF0YWJsZXMgd2lsbAogICAgICAvLyBnZW5lcmF0ZSB0aGUgcm93IGxhYmVsIGFuZCB0aGUgY2VsbHMgYXJlIG5vdCBwYXJ0IG9mCiAgICAgIC8vIHRoZSBkYXRhIHRodXMgY29udGFpbiBubyByb3cvY29sIGluZm8KICAgICAgaWYgKGluZm8gPT09IHVuZGVmaW5lZCkKICAgICAgICByZXR1cm4ge3JvdzogbnVsbCwgY29sOiBudWxsfTsKICAgICAgaWYgKHNlcnZlcikgewogICAgICAgIGluZm8ucm93ID0gRFRfcm93c19jdXJyZW50W2luZm8ucm93XTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpbmZvLnJvdyArPSAxOwogICAgICB9CiAgICAgIHJldHVybiB7cm93OiBpbmZvLnJvdywgY29sOiBpbmZvLmNvbHVtbn07CiAgICB9CgogICAgdmFyIGNsZWFuU2VsZWN0ZWRWYWx1ZXMgPSBmdW5jdGlvbigpIHsKICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBbXSk7CiAgICAgIGNoYW5nZUlucHV0KCdjb2x1bW5zX3NlbGVjdGVkJywgW10pOwogICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKFtdKSwgJ3NoaW55Lm1hdHJpeCcpOwogICAgfQogICAgLy8gIzgyOCB3ZSBzaG91bGQgY2xlYW4gdGhlIHNlbGVjdGlvbiBvbiB0aGUgc2VydmVyLXNpZGUgd2hlbiB0aGUgdGFibGUgcmVsb2FkcwogICAgY2xlYW5TZWxlY3RlZFZhbHVlcygpOwoKICAgIC8vIGEgZmxhZyB0byBpbmRpY2F0ZXMgaWYgc2VsZWN0IGV4dGVuc2lvbiBpcyBpbml0aWFsaXplZCBvciBub3QKICAgIHZhciBmbGFnU2VsZWN0RXh0ID0gdGFibGUuc2V0dGluZ3MoKVswXS5fc2VsZWN0ICE9PSB1bmRlZmluZWQ7CiAgICAvLyB0aGUgU2VsZWN0IGV4dGVuc2lvbiBzaG91bGQgb25seSBiZSB1c2VkIGluIHRoZSBjbGllbnQgbW9kZSBhbmQKICAgIC8vIHdoZW4gdGhlIHNlbGVjdGlvbi5tb2RlIGlzIHNldCB0byBub25lCiAgICBpZiAoZGF0YS5zZWxlY3Rpb24ubW9kZSA9PT0gJ25vbmUnICYmICFzZXJ2ZXIgJiYgZmxhZ1NlbGVjdEV4dCkgewogICAgICB2YXIgdXBkYXRlUm93c1NlbGVjdGVkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHJvd3MgPSB0YWJsZS5yb3dzKHtzZWxlY3RlZDogdHJ1ZX0pOwogICAgICAgIHZhciBzZWxlY3RlZCA9IFtdOwogICAgICAgICQuZWFjaChyb3dzLmluZGV4ZXMoKS50b0FycmF5KCksIGZ1bmN0aW9uKGksIHYpIHsKICAgICAgICAgIHNlbGVjdGVkLnB1c2godiArIDEpOwogICAgICAgIH0pOwogICAgICAgIGNoYW5nZUlucHV0KCdyb3dzX3NlbGVjdGVkJywgc2VsZWN0ZWQpOwogICAgICB9CiAgICAgIHZhciB1cGRhdGVDb2xzU2VsZWN0ZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgY29sdW1ucyA9IHRhYmxlLmNvbHVtbnMoe3NlbGVjdGVkOiB0cnVlfSk7CiAgICAgICAgY2hhbmdlSW5wdXQoJ2NvbHVtbnNfc2VsZWN0ZWQnLCBjb2x1bW5zLmluZGV4ZXMoKS50b0FycmF5KCkpOwogICAgICB9CiAgICAgIHZhciB1cGRhdGVDZWxsc1NlbGVjdGVkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGNlbGxzID0gdGFibGUuY2VsbHMoe3NlbGVjdGVkOiB0cnVlfSk7CiAgICAgICAgdmFyIHNlbGVjdGVkID0gW107CiAgICAgICAgY2VsbHMuZXZlcnkoZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgcm93ID0gdGhpcy5pbmRleCgpLnJvdzsKICAgICAgICAgIHZhciBjb2wgPSB0aGlzLmluZGV4KCkuY29sdW1uOwogICAgICAgICAgc2VsZWN0ZWQgPSBzZWxlY3RlZC5jb25jYXQoW1tyb3cgKyAxLCBjb2xdXSk7CiAgICAgICAgfSk7CiAgICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxzX3NlbGVjdGVkJywgdHJhbnNwb3NlQXJyYXkyRChzZWxlY3RlZCksICdzaGlueS5tYXRyaXgnKTsKICAgICAgfQogICAgICB0YWJsZS5vbignc2VsZWN0IGRlc2VsZWN0JywgZnVuY3Rpb24oZSwgZHQsIHR5cGUsIGluZGV4ZXMpIHsKICAgICAgICB1cGRhdGVSb3dzU2VsZWN0ZWQoKTsKICAgICAgICB1cGRhdGVDb2xzU2VsZWN0ZWQoKTsKICAgICAgICB1cGRhdGVDZWxsc1NlbGVjdGVkKCk7CiAgICAgIH0pCiAgICB9CgogICAgdmFyIHNlbE1vZGUgPSBkYXRhLnNlbGVjdGlvbi5tb2RlLCBzZWxUYXJnZXQgPSBkYXRhLnNlbGVjdGlvbi50YXJnZXQ7CiAgICB2YXIgc2VsRGlzYWJsZSA9IGRhdGEuc2VsZWN0aW9uLnNlbGVjdGFibGUgPT09IGZhbHNlOwogICAgaWYgKGluQXJyYXkoc2VsTW9kZSwgWydzaW5nbGUnLCAnbXVsdGlwbGUnXSkpIHsKICAgICAgdmFyIHNlbENsYXNzID0gaW5BcnJheShkYXRhLnN0eWxlLCBbJ2Jvb3RzdHJhcCcsICdib290c3RyYXA0J10pID8gJ2FjdGl2ZScgOiAnc2VsZWN0ZWQnOwogICAgICAvLyBzZWxlY3RlZDE6IHJvdyBpbmRpY2VzOyBzZWxlY3RlZDI6IGNvbHVtbiBpbmRpY2VzCiAgICAgIHZhciBpbml0U2VsID0gZnVuY3Rpb24oeCkgewogICAgICAgIGlmICh4ID09PSBudWxsIHx8IHR5cGVvZiB4ID09PSAnYm9vbGVhbicgfHwgc2VsVGFyZ2V0ID09PSAnY2VsbCcpIHsKICAgICAgICAgIHJldHVybiB7cm93czogW10sIGNvbHM6IFtdfTsKICAgICAgICB9IGVsc2UgaWYgKHNlbFRhcmdldCA9PT0gJ3JvdycpIHsKICAgICAgICAgIHJldHVybiB7cm93czogJC5tYWtlQXJyYXkoeCksIGNvbHM6IFtdfTsKICAgICAgICB9IGVsc2UgaWYgKHNlbFRhcmdldCA9PT0gJ2NvbHVtbicpIHsKICAgICAgICAgIHJldHVybiB7cm93czogW10sIGNvbHM6ICQubWFrZUFycmF5KHgpfTsKICAgICAgICB9IGVsc2UgaWYgKHNlbFRhcmdldCA9PT0gJ3Jvdytjb2x1bW4nKSB7CiAgICAgICAgICByZXR1cm4ge3Jvd3M6ICQubWFrZUFycmF5KHgucm93cyksIGNvbHM6ICQubWFrZUFycmF5KHguY29scyl9OwogICAgICAgIH0KICAgICAgfQogICAgICB2YXIgc2VsZWN0ZWQgPSBkYXRhLnNlbGVjdGlvbi5zZWxlY3RlZDsKICAgICAgdmFyIHNlbGVjdGVkMSA9IGluaXRTZWwoc2VsZWN0ZWQpLnJvd3MsIHNlbGVjdGVkMiA9IGluaXRTZWwoc2VsZWN0ZWQpLmNvbHM7CiAgICAgIC8vIHNlbGVjdGFibGUgc2hvdWxkIGNvbnRhaW4gZWl0aGVyIGFsbCBwb3NpdGl2ZSBvciBhbGwgbm9uLXBvc2l0aXZlIHZhbHVlcywgbm90IGJvdGgKICAgICAgLy8gcG9zaXRpdmUgdmFsdWVzIGluZGljYXRlICJzZWxlY3RhYmxlIiB3aGlsZSBub24tcG9zaXRpdmUgdmFsdWVzIG1lYW5zICJub25zZWxlY3RhYmxlIgogICAgICAvLyB0aGUgYXNzZXJ0aW9uIGlzIHBlcmZvcm1lZCBvbiBSIHNpZGUuIChvbmx5IGNvbHVtbiBpbmRpY2lkZXMgY291bGQgYmUgemVybyB3aGljaCBpbmRpY2F0ZXMKICAgICAgLy8gdGhlIHJvdyBuYW1lKQogICAgICB2YXIgc2VsZWN0YWJsZSA9IGRhdGEuc2VsZWN0aW9uLnNlbGVjdGFibGU7CiAgICAgIHZhciBzZWxlY3RhYmxlMSA9IGluaXRTZWwoc2VsZWN0YWJsZSkucm93cywgc2VsZWN0YWJsZTIgPSBpbml0U2VsKHNlbGVjdGFibGUpLmNvbHM7CgogICAgICAvLyBBZnRlciB1c2VycyByZW9yZGVyIHRoZSByb3dzIG9yIGZpbHRlciB0aGUgdGFibGUsIHdlIGNhbm5vdCB1c2UgdGhlIHRhYmxlIGluZGV4CiAgICAgIC8vIGRpcmVjdGx5LiBJbnN0ZWFkLCB3ZSBuZWVkIHRoaXMgZnVuY3Rpb24gdG8gZmluZCBvdXQgdGhlIHJvd3MgYmV0d2VlbiB0aGUgdHdvIGNsaWNrcy4KICAgICAgLy8gSWYgdXNlciBmaWx0ZXIgdGhlIHRhYmxlIGFnYWluIGJldHdlZW4gdGhlIHN0YXJ0IGNsaWNrIGFuZCB0aGUgZW5kIGNsaWNrLCB0aGUgYmVoYXZpb3IKICAgICAgLy8gd291bGQgYmUgdW5kZWZpbmVkLCBidXQgaXQgc2hvdWxkIG5vdCBiZSBhIHByb2JsZW0uCiAgICAgIHZhciBzaGlmdFNlbFJvd3NJbmRleCA9IGZ1bmN0aW9uKHN0YXJ0LCBlbmQpIHsKICAgICAgICB2YXIgaW5kZXhlcyA9IHNlcnZlciA/IERUX3Jvd3NfYWxsIDogdGFibGUucm93cyh7IHNlYXJjaDogJ2FwcGxpZWQnIH0pLmluZGV4ZXMoKS50b0FycmF5KCk7CiAgICAgICAgc3RhcnQgPSBpbmRleGVzLmluZGV4T2Yoc3RhcnQpOyBlbmQgPSBpbmRleGVzLmluZGV4T2YoZW5kKTsKICAgICAgICAvLyBpZiBzdGFydCBpcyBsYXJnZXIgdGhhbiBlbmQsIHdlIG5lZWQgdG8gc3dhcAogICAgICAgIGlmIChzdGFydCA+IGVuZCkgewogICAgICAgICAgdmFyIHRtcCA9IGVuZDsgZW5kID0gc3RhcnQ7IHN0YXJ0ID0gdG1wOwogICAgICAgIH0KICAgICAgICByZXR1cm4gaW5kZXhlcy5zbGljZShzdGFydCwgZW5kICsgMSk7CiAgICAgIH0KCiAgICAgIHZhciBzZXJ2ZXJSb3dJbmRleCA9IGZ1bmN0aW9uKGNsaWVudFJvd0luZGV4KSB7CiAgICAgICAgcmV0dXJuIHNlcnZlciA/IERUX3Jvd3NfY3VycmVudFtjbGllbnRSb3dJbmRleF0gOiBjbGllbnRSb3dJbmRleCArIDE7CiAgICAgIH0KCiAgICAgIC8vIHJvdywgY29sdW1uLCBvciBjZWxsIHNlbGVjdGlvbgogICAgICB2YXIgbGFzdENsaWNrZWRSb3c7CiAgICAgIGlmIChpbkFycmF5KHNlbFRhcmdldCwgWydyb3cnLCAncm93K2NvbHVtbiddKSkgewogICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzZWxlY3RlZCByb3dzLiBJdCB3aWxsIGFsc28KICAgICAgICAvLyB1cGRhdGUgdGhlIHNlbGVjdGVkMSdzIHZhbHVlIGJhc2VkIG9uIHRoZSBjdXJyZW50IHJvdyBzZWxlY3Rpb24gc3RhdGUKICAgICAgICAvLyBOb3RlIHdlIGNhbid0IHB1dCB0aGlzIGZ1bmN0aW9uIGluc2lkZSBzZWxlY3RSb3dzKCkgZGlyZWN0bHksCiAgICAgICAgLy8gdGhlIHJlYXNvbiBpcyBtZXRob2Quc2VsZWN0Um93cygpIHdpbGwgb3ZlcnJpZGUgc2VsZWN0ZWQxJ3MgdmFsdWUgYnV0IHRoaXMKICAgICAgICAvLyBmdW5jdGlvbiB3aWxsIGFkZCByb3dzIHRvIHNlbGVjdGVkMSAoa2VlcCB0aGUgZXhpc3Rpbmcgc2VsZWN0aW9uKSwgd2hpY2ggaXMKICAgICAgICAvLyBpbmNvbnNpc3RlbnQgd2l0aCBjb2x1bW4gYW5kIGNlbGwgc2VsZWN0aW9uLgogICAgICAgIHZhciBzZWxlY3RlZFJvd3MgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciByb3dzID0gdGFibGUucm93cygnLicgKyBzZWxDbGFzcyk7CiAgICAgICAgICB2YXIgaWR4ID0gcm93cy5pbmRleGVzKCkudG9BcnJheSgpOwogICAgICAgICAgaWYgKCFzZXJ2ZXIpIHsKICAgICAgICAgICAgc2VsZWN0ZWQxID0gYWRkT25lKGlkeCk7CiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZDE7CiAgICAgICAgICB9CiAgICAgICAgICBpZHggPSBpZHgubWFwKGZ1bmN0aW9uKGkpIHsKICAgICAgICAgICAgcmV0dXJuIERUX3Jvd3NfY3VycmVudFtpXTsKICAgICAgICAgIH0pOwogICAgICAgICAgc2VsZWN0ZWQxID0gc2VsTW9kZSA9PT0gJ211bHRpcGxlJyA/IHVuaXF1ZShzZWxlY3RlZDEuY29uY2F0KGlkeCkpIDogaWR4OwogICAgICAgICAgcmV0dXJuIHNlbGVjdGVkMTsKICAgICAgICB9CiAgICAgICAgLy8gQ2hhbmdlIHNlbGVjdGVkMSdzIHZhbHVlIGJhc2VkIG9uIHNlbGVjdGFibGUxLCB0aGVuIHJlZnJlc2ggdGhlIHJvdyBzdGF0ZQogICAgICAgIHZhciBvbmx5S2VlcFNlbGVjdGFibGVSb3dzID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoc2VsRGlzYWJsZSkgeyAvLyB1c2VycyBjYW4ndCBzZWxlY3Q7IHVzZWZ1bCB3aGVuIG9ubHkgd2FudCBiYWNrZW5kIHNlbGVjdAogICAgICAgICAgICBzZWxlY3RlZDEgPSBbXTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNlbGVjdGFibGUxLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICAgICAgdmFyIG5vbnNlbGVjdGFibGUgPSBzZWxlY3RhYmxlMVswXSA8PSAwOwogICAgICAgICAgaWYgKG5vbnNlbGVjdGFibGUpIHsKICAgICAgICAgICAgLy8gc2hvdWxkIG1ha2Ugc2VsZWN0YWJsZTEgcG9zaXRpdmUKICAgICAgICAgICAgc2VsZWN0ZWQxID0gJChzZWxlY3RlZDEpLm5vdChzZWxlY3RhYmxlMS5tYXAoZnVuY3Rpb24oaSkgeyByZXR1cm4gLWk7IH0pKS5nZXQoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNlbGVjdGVkMSA9ICQoc2VsZWN0ZWQxKS5maWx0ZXIoc2VsZWN0YWJsZTEpLmdldCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBDaGFuZ2Ugc2VsZWN0ZWQxJ3MgdmFsdWUgYmFzZWQgb24gc2VsZWN0YWJsZTEsIHRoZW4KICAgICAgICAvLyByZWZyZXNoIHRoZSByb3cgc2VsZWN0aW9uIHN0YXRlIGFjY29yZGluZyB0byB2YWx1ZXMgaW4gc2VsZWN0ZWQxCiAgICAgICAgdmFyIHNlbGVjdFJvd3MgPSBmdW5jdGlvbihpZ25vcmVTZWxlY3RhYmxlKSB7CiAgICAgICAgICBpZiAoIWlnbm9yZVNlbGVjdGFibGUpIG9ubHlLZWVwU2VsZWN0YWJsZVJvd3MoKTsKICAgICAgICAgIHRhYmxlLiQoJ3RyLicgKyBzZWxDbGFzcykucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgaWYgKHNlbGVjdGVkMS5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgdGFibGUucm93cyh7cGFnZTogJ2N1cnJlbnQnfSkuZXZlcnkoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKGluQXJyYXkoRFRfcm93c19jdXJyZW50W3RoaXMuaW5kZXgoKV0sIHNlbGVjdGVkMSkpIHsKICAgICAgICAgICAgICAgICQodGhpcy5ub2RlKCkpLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIHNlbGVjdGVkMCA9IHNlbGVjdGVkMS5tYXAoZnVuY3Rpb24oaSkgeyByZXR1cm4gaSAtIDE7IH0pOwogICAgICAgICAgICAkKHRhYmxlLnJvd3Moc2VsZWN0ZWQwKS5ub2RlcygpKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRhYmxlLm9uKCdtb3VzZWRvd24uZHQnLCAndGJvZHkgdHInLCBmdW5jdGlvbihlKSB7CiAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpLCB0aGlzUm93ID0gdGFibGUucm93KHRoaXMpOwogICAgICAgICAgaWYgKHNlbE1vZGUgPT09ICdtdWx0aXBsZScpIHsKICAgICAgICAgICAgaWYgKGUuc2hpZnRLZXkgJiYgbGFzdENsaWNrZWRSb3cgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgIC8vIHNlbGVjdCBvciBkZS1zZWxlY3QgZGVwZW5kcyBvbiB0aGUgbGFzdCBjbGlja2VkIHJvdydzIHN0YXR1cwogICAgICAgICAgICAgIHZhciBmbGFnU2VsID0gISR0aGlzLmhhc0NsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICB2YXIgY3J0Q2xpY2tlZFJvdyA9IHNlcnZlclJvd0luZGV4KHRoaXNSb3cuaW5kZXgoKSk7CiAgICAgICAgICAgICAgaWYgKHNlcnZlcikgewogICAgICAgICAgICAgICAgdmFyIHJvd3NJbmRleCA9IHNoaWZ0U2VsUm93c0luZGV4KGxhc3RDbGlja2VkUm93LCBjcnRDbGlja2VkUm93KTsKICAgICAgICAgICAgICAgIC8vIHVwZGF0ZSBjdXJyZW50IHBhZ2UncyBzZWxDbGFzcwogICAgICAgICAgICAgICAgcm93c0luZGV4Lm1hcChmdW5jdGlvbihpKSB7CiAgICAgICAgICAgICAgICAgIHZhciByb3dJbmRleCA9IERUX3Jvd3NfY3VycmVudC5pbmRleE9mKGkpOwogICAgICAgICAgICAgICAgICBpZiAocm93SW5kZXggPj0gMCkgewogICAgICAgICAgICAgICAgICAgIHZhciByb3cgPSB0YWJsZS5yb3cocm93SW5kZXgpLm5vZGVzKCkudG8kKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGZsYWdSb3dTZWwgPSAhcm93Lmhhc0NsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ1NlbCA9PT0gZmxhZ1Jvd1NlbCkgcm93LnRvZ2dsZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAvLyB1cGRhdGUgc2VsZWN0ZWQxCiAgICAgICAgICAgICAgICBpZiAoZmxhZ1NlbCkgewogICAgICAgICAgICAgICAgICBzZWxlY3RlZDEgPSB1bmlxdWUoc2VsZWN0ZWQxLmNvbmNhdChyb3dzSW5kZXgpKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkMSA9IHNlbGVjdGVkMS5maWx0ZXIoZnVuY3Rpb24oaW5kZXgpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gIWluQXJyYXkoaW5kZXgsIHJvd3NJbmRleCk7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBqcyBzdGFydHMgZnJvbSAwCiAgICAgICAgICAgICAgICBzaGlmdFNlbFJvd3NJbmRleChsYXN0Q2xpY2tlZFJvdyAtIDEsIGNydENsaWNrZWRSb3cgLSAxKS5tYXAoZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICAgICAgdmFyIHJvdyA9IHRhYmxlLnJvdyh2YWx1ZSkubm9kZXMoKS50byQoKTsKICAgICAgICAgICAgICAgICAgdmFyIGZsYWdSb3dTZWwgPSAhcm93Lmhhc0NsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICAgICAgaWYgKGZsYWdTZWwgPT09IGZsYWdSb3dTZWwpIHJvdy50b2dnbGVDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICR0aGlzLnRvZ2dsZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKCR0aGlzLmhhc0NsYXNzKHNlbENsYXNzKSkgewogICAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0YWJsZS4kKCd0ci4nICsgc2VsQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgICAkdGhpcy5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZXJ2ZXIgJiYgISR0aGlzLmhhc0NsYXNzKHNlbENsYXNzKSkgewogICAgICAgICAgICB2YXIgaWQgPSBEVF9yb3dzX2N1cnJlbnRbdGhpc1Jvdy5pbmRleCgpXTsKICAgICAgICAgICAgLy8gcmVtb3ZlIGlkIGZyb20gc2VsZWN0ZWQxIHNpbmNlIGl0cyBjbGFzcyAuc2VsZWN0ZWQgaGFzIGJlZW4gcmVtb3ZlZAogICAgICAgICAgICBpZiAoaW5BcnJheShpZCwgc2VsZWN0ZWQxKSkgc2VsZWN0ZWQxLnNwbGljZSgkLmluQXJyYXkoaWQsIHNlbGVjdGVkMSksIDEpOwogICAgICAgICAgfQogICAgICAgICAgc2VsZWN0ZWRSb3dzKCk7IC8vIHVwZGF0ZSBzZWxlY3RlZDEncyB2YWx1ZSBiYXNlZCBvbiBzZWxDbGFzcwogICAgICAgICAgc2VsZWN0Um93cyhmYWxzZSk7IC8vIG9ubHkga2VlcCB0aGUgc2VsZWN0YWJsZSByb3dzCiAgICAgICAgICBjaGFuZ2VJbnB1dCgncm93c19zZWxlY3RlZCcsIHNlbGVjdGVkMSk7CiAgICAgICAgICBjaGFuZ2VJbnB1dCgncm93X2xhc3RfY2xpY2tlZCcsIHNlcnZlclJvd0luZGV4KHRoaXNSb3cuaW5kZXgoKSksIG51bGwsIG51bGwsIHtwcmlvcml0eTogJ2V2ZW50J30pOwogICAgICAgICAgbGFzdENsaWNrZWRSb3cgPSBzZXJ2ZXJSb3dJbmRleCh0aGlzUm93LmluZGV4KCkpOwogICAgICAgIH0pOwogICAgICAgIHNlbGVjdFJvd3MoZmFsc2UpOyAgLy8gaW4gY2FzZSB1c2VycyBoYXZlIHNwZWNpZmllZCBwcmUtc2VsZWN0ZWQgcm93cwogICAgICAgIC8vIHJlc3RvcmUgc2VsZWN0ZWQgcm93cyBhZnRlciB0aGUgdGFibGUgaXMgcmVkcmF3biAoZS5nLiBzb3J0L3NlYXJjaC9wYWdlKTsKICAgICAgICAvLyBjbGllbnQtc2lkZSB0YWJsZXMgd2lsbCBwcmVzZXJ2ZSB0aGUgc2VsZWN0aW9ucyBhdXRvbWF0aWNhbGx5OyBmb3IKICAgICAgICAvLyBzZXJ2ZXItc2lkZSB0YWJsZXMsIHdlIGhhdmUgdG8gKnJlYWwqIHJvdyBpbmRpY2VzIGFyZSBpbiBgc2VsZWN0ZWQxYAogICAgICAgIGNoYW5nZUlucHV0KCdyb3dzX3NlbGVjdGVkJywgc2VsZWN0ZWQxKTsKICAgICAgICBpZiAoc2VydmVyKSB0YWJsZS5vbignZHJhdy5kdCcsIGZ1bmN0aW9uKGUpIHsgc2VsZWN0Um93cyhmYWxzZSk7IH0pOwogICAgICAgIG1ldGhvZHMuc2VsZWN0Um93cyA9IGZ1bmN0aW9uKHNlbGVjdGVkLCBpZ25vcmVTZWxlY3RhYmxlKSB7CiAgICAgICAgICBzZWxlY3RlZDEgPSAkLm1ha2VBcnJheShzZWxlY3RlZCk7CiAgICAgICAgICBzZWxlY3RSb3dzKGlnbm9yZVNlbGVjdGFibGUpOwogICAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3Nfc2VsZWN0ZWQnLCBzZWxlY3RlZDEpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGluQXJyYXkoc2VsVGFyZ2V0LCBbJ2NvbHVtbicsICdyb3crY29sdW1uJ10pKSB7CiAgICAgICAgaWYgKHNlbFRhcmdldCA9PT0gJ3Jvdytjb2x1bW4nKSB7CiAgICAgICAgICAkKHRhYmxlLmNvbHVtbnMoKS5mb290ZXIoKSkuY3NzKCdjdXJzb3InLCAncG9pbnRlcicpOwogICAgICAgIH0KICAgICAgICAvLyB1cGRhdGUgc2VsZWN0ZWQyJ3MgdmFsdWUgYmFzZWQgb24gc2VsZWN0YWJsZTIKICAgICAgICB2YXIgb25seUtlZXBTZWxlY3RhYmxlQ29scyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKHNlbERpc2FibGUpIHsgLy8gdXNlcnMgY2FuJ3Qgc2VsZWN0OyB1c2VmdWwgd2hlbiBvbmx5IHdhbnQgYmFja2VuZCBzZWxlY3QKICAgICAgICAgICAgc2VsZWN0ZWQyID0gW107CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZWxlY3RhYmxlMi5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgICAgIHZhciBub25zZWxlY3RhYmxlID0gc2VsZWN0YWJsZTJbMF0gPD0gMDsKICAgICAgICAgIGlmIChub25zZWxlY3RhYmxlKSB7CiAgICAgICAgICAgIC8vIG5lZWQgdG8gbWFrZSBzZWxlY3RhYmxlMiBwb3NpdGl2ZQogICAgICAgICAgICBzZWxlY3RlZDIgPSAkKHNlbGVjdGVkMikubm90KHNlbGVjdGFibGUyLm1hcChmdW5jdGlvbihpKSB7IHJldHVybiAtaTsgfSkpLmdldCgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2VsZWN0ZWQyID0gJChzZWxlY3RlZDIpLmZpbHRlcihzZWxlY3RhYmxlMikuZ2V0KCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIHVwZGF0ZSBzZWxlY3RlZDIgYW5kIHRoZW4KICAgICAgICAvLyByZWZyZXNoIHRoZSBjb2wgc2VsZWN0aW9uIHN0YXRlIGFjY29yZGluZyB0byB2YWx1ZXMgaW4gc2VsZWN0ZWQyCiAgICAgICAgdmFyIHNlbGVjdENvbHMgPSBmdW5jdGlvbihpZ25vcmVTZWxlY3RhYmxlKSB7CiAgICAgICAgICBpZiAoIWlnbm9yZVNlbGVjdGFibGUpIG9ubHlLZWVwU2VsZWN0YWJsZUNvbHMoKTsKICAgICAgICAgIC8vIGlmIHNlbGVjdGVkMiBpcyBub3QgYSB2YWxpZGUgaW5kZXggKGUuZy4sIGxhcmdlciB0aGFuIHRoZSBjb2x1bW4gbnVtYmVyKQogICAgICAgICAgLy8gdGFibGUuY29sdW1ucyhzZWxlY3RlZDIpIHdpbGwgZmFpbCBhbmQgcmVzdWx0IGluIGEgYmxhbmsgdGFibGUKICAgICAgICAgIC8vIHRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIHRhYmxlLnJvd3MoKSwgd2hlcmUgdGhlIG91dC1vZi1yYW5nZSBpbmRleGVzCiAgICAgICAgICAvLyBkb2Vzbid0IGFmZmVjdCBhdCBhbGwKICAgICAgICAgIHNlbGVjdGVkMiA9ICQoc2VsZWN0ZWQyKS5maWx0ZXIodGFibGUuY29sdW1ucygpLmluZGV4ZXMoKSkuZ2V0KCk7CiAgICAgICAgICB0YWJsZS5jb2x1bW5zKCkubm9kZXMoKS5mbGF0dGVuKCkudG8kKCkucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgaWYgKHNlbGVjdGVkMi5sZW5ndGggPiAwKQogICAgICAgICAgICB0YWJsZS5jb2x1bW5zKHNlbGVjdGVkMikubm9kZXMoKS5mbGF0dGVuKCkudG8kKCkuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgIH0KICAgICAgICB2YXIgY2FsbGJhY2sgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBjb2xJZHggPSBzZWxUYXJnZXQgPT09ICdjb2x1bW4nID8gdGFibGUuY2VsbCh0aGlzKS5pbmRleCgpLmNvbHVtbiA6CiAgICAgICAgICAgICAgJC5pbkFycmF5KHRoaXMsIHRhYmxlLmNvbHVtbnMoKS5mb290ZXIoKSksCiAgICAgICAgICAgICAgdGhpc0NvbCA9ICQodGFibGUuY29sdW1uKGNvbElkeCkubm9kZXMoKSk7CiAgICAgICAgICBpZiAoY29sSWR4ID09PSAtMSkgcmV0dXJuOwogICAgICAgICAgaWYgKHRoaXNDb2wuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgIHRoaXNDb2wucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICBzZWxlY3RlZDIuc3BsaWNlKCQuaW5BcnJheShjb2xJZHgsIHNlbGVjdGVkMiksIDEpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHNlbE1vZGUgPT09ICdzaW5nbGUnKSAkKHRhYmxlLmNlbGxzKCkubm9kZXMoKSkucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB0aGlzQ29sLmFkZENsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgc2VsZWN0ZWQyID0gc2VsTW9kZSA9PT0gJ3NpbmdsZScgPyBbY29sSWR4XSA6IHVuaXF1ZShzZWxlY3RlZDIuY29uY2F0KFtjb2xJZHhdKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzZWxlY3RDb2xzKGZhbHNlKTsgLy8gdXBkYXRlIHNlbGVjdGVkMiBiYXNlZCBvbiBzZWxlY3RhYmxlCiAgICAgICAgICBjaGFuZ2VJbnB1dCgnY29sdW1uc19zZWxlY3RlZCcsIHNlbGVjdGVkMik7CiAgICAgICAgfQogICAgICAgIGlmIChzZWxUYXJnZXQgPT09ICdjb2x1bW4nKSB7CiAgICAgICAgICAkKHRhYmxlLnRhYmxlKCkuYm9keSgpKS5vbignY2xpY2suZHQnLCAndGQnLCBjYWxsYmFjayk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICQodGFibGUudGFibGUoKS5mb290ZXIoKSkub24oJ2NsaWNrLmR0JywgJ3RyIHRoJywgY2FsbGJhY2spOwogICAgICAgIH0KICAgICAgICBzZWxlY3RDb2xzKGZhbHNlKTsgIC8vIGluIGNhc2UgdXNlcnMgaGF2ZSBzcGVjaWZpZWQgcHJlLXNlbGVjdGVkIGNvbHVtbnMKICAgICAgICBjaGFuZ2VJbnB1dCgnY29sdW1uc19zZWxlY3RlZCcsIHNlbGVjdGVkMik7CiAgICAgICAgaWYgKHNlcnZlcikgdGFibGUub24oJ2RyYXcuZHQnLCBmdW5jdGlvbihlKSB7IHNlbGVjdENvbHMoZmFsc2UpOyB9KTsKICAgICAgICBtZXRob2RzLnNlbGVjdENvbHVtbnMgPSBmdW5jdGlvbihzZWxlY3RlZCwgaWdub3JlU2VsZWN0YWJsZSkgewogICAgICAgICAgc2VsZWN0ZWQyID0gJC5tYWtlQXJyYXkoc2VsZWN0ZWQpOwogICAgICAgICAgc2VsZWN0Q29scyhpZ25vcmVTZWxlY3RhYmxlKTsKICAgICAgICAgIGNoYW5nZUlucHV0KCdjb2x1bW5zX3NlbGVjdGVkJywgc2VsZWN0ZWQyKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmIChzZWxUYXJnZXQgPT09ICdjZWxsJykgewogICAgICAgIHZhciBzZWxlY3RlZDMgPSBbXSwgc2VsZWN0YWJsZTMgPSBbXTsKICAgICAgICBpZiAoc2VsZWN0ZWQgIT09IG51bGwpIHNlbGVjdGVkMyA9IHNlbGVjdGVkOwogICAgICAgIGlmIChzZWxlY3RhYmxlICE9PSBudWxsICYmIHR5cGVvZiBzZWxlY3RhYmxlICE9PSAnYm9vbGVhbicpIHNlbGVjdGFibGUzID0gc2VsZWN0YWJsZTsKICAgICAgICB2YXIgZmluZEluZGV4ID0gZnVuY3Rpb24oaWosIHNlbCkgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWwubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGlqWzBdID09PSBzZWxbaV1bMF0gJiYgaWpbMV0gPT09IHNlbFtpXVsxXSkgcmV0dXJuIGk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgICAvLyBDaGFuZ2Ugc2VsZWN0ZWQzJ3MgdmFsdWUgYmFzZWQgb24gc2VsZWN0YWJsZTMsIHRoZW4gcmVmcmVzaCB0aGUgY2VsbCBzdGF0ZQogICAgICAgIHZhciBvbmx5S2VlcFNlbGVjdGFibGVDZWxscyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKHNlbERpc2FibGUpIHsgLy8gdXNlcnMgY2FuJ3Qgc2VsZWN0OyB1c2VmdWwgd2hlbiBvbmx5IHdhbnQgYmFja2VuZCBzZWxlY3QKICAgICAgICAgICAgc2VsZWN0ZWQzID0gW107CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZWxlY3RhYmxlMy5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgICAgIHZhciBub25zZWxlY3RhYmxlID0gc2VsZWN0YWJsZTNbMF1bMF0gPD0gMDsKICAgICAgICAgIHZhciBvdXQgPSBbXTsKICAgICAgICAgIGlmIChub25zZWxlY3RhYmxlKSB7CiAgICAgICAgICAgIHNlbGVjdGVkMy5tYXAoZnVuY3Rpb24oaWopIHsKICAgICAgICAgICAgICAvLyBzaG91bGQgbWFrZSBzZWxlY3RhYmxlMyBwb3NpdGl2ZQogICAgICAgICAgICAgIGlmIChmaW5kSW5kZXgoWy1palswXSwgLWlqWzFdXSwgc2VsZWN0YWJsZTMpID09PSAtMSkgeyBvdXQucHVzaChpaik7IH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzZWxlY3RlZDMubWFwKGZ1bmN0aW9uKGlqKSB7CiAgICAgICAgICAgICAgaWYgKGZpbmRJbmRleChpaiwgc2VsZWN0YWJsZTMpID4gLTEpIHsgb3V0LnB1c2goaWopOyB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgICAgc2VsZWN0ZWQzID0gb3V0OwogICAgICAgIH0KICAgICAgICAvLyBDaGFuZ2Ugc2VsZWN0ZWQzJ3MgdmFsdWUgYmFzZWQgb24gc2VsZWN0YWJsZTMsIHRoZW4KICAgICAgICAvLyByZWZyZXNoIHRoZSBjZWxsIHNlbGVjdGlvbiBzdGF0ZSBhY2NvcmRpbmcgdG8gdmFsdWVzIGluIHNlbGVjdGVkMwogICAgICAgIHZhciBzZWxlY3RDZWxscyA9IGZ1bmN0aW9uKGlnbm9yZVNlbGVjdGFibGUpIHsKICAgICAgICAgIGlmICghaWdub3JlU2VsZWN0YWJsZSkgb25seUtlZXBTZWxlY3RhYmxlQ2VsbHMoKTsKICAgICAgICAgIHRhYmxlLiQoJ3RkLicgKyBzZWxDbGFzcykucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgaWYgKHNlbGVjdGVkMy5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgICAgdGFibGUuY2VsbHMoe3BhZ2U6ICdjdXJyZW50J30pLmV2ZXJ5KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBpbmZvID0gdHdlYWtDZWxsSW5kZXgodGhpcyk7CiAgICAgICAgICAgICAgaWYgKGZpbmRJbmRleChbaW5mby5yb3csIGluZm8uY29sXSwgc2VsZWN0ZWQzKSA+IC0xKQogICAgICAgICAgICAgICAgJCh0aGlzLm5vZGUoKSkuYWRkQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNlbGVjdGVkMy5tYXAoZnVuY3Rpb24oaWopIHsKICAgICAgICAgICAgICAkKHRhYmxlLmNlbGwoaWpbMF0gLSAxLCBpalsxXSkubm9kZSgpKS5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgdGFibGUub24oJ2NsaWNrLmR0JywgJ3Rib2R5IHRkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpLCBpbmZvID0gdHdlYWtDZWxsSW5kZXgodGFibGUuY2VsbCh0aGlzKSk7CiAgICAgICAgICBpZiAoJHRoaXMuaGFzQ2xhc3Moc2VsQ2xhc3MpKSB7CiAgICAgICAgICAgICR0aGlzLnJlbW92ZUNsYXNzKHNlbENsYXNzKTsKICAgICAgICAgICAgc2VsZWN0ZWQzLnNwbGljZShmaW5kSW5kZXgoW2luZm8ucm93LCBpbmZvLmNvbF0sIHNlbGVjdGVkMyksIDEpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHNlbE1vZGUgPT09ICdzaW5nbGUnKSAkKHRhYmxlLmNlbGxzKCkubm9kZXMoKSkucmVtb3ZlQ2xhc3Moc2VsQ2xhc3MpOwogICAgICAgICAgICAkdGhpcy5hZGRDbGFzcyhzZWxDbGFzcyk7CiAgICAgICAgICAgIHNlbGVjdGVkMyA9IHNlbE1vZGUgPT09ICdzaW5nbGUnID8gW1tpbmZvLnJvdywgaW5mby5jb2xdXSA6CiAgICAgICAgICAgICAgdW5pcXVlKHNlbGVjdGVkMy5jb25jYXQoW1tpbmZvLnJvdywgaW5mby5jb2xdXSkpOwogICAgICAgICAgfQogICAgICAgICAgc2VsZWN0Q2VsbHMoZmFsc2UpOyAvLyBtdXN0IGNhbGwgdGhpcyB0byB1cGRhdGUgc2VsZWN0ZWQzIGJhc2VkIG9uIHNlbGVjdGFibGUzCiAgICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKHNlbGVjdGVkMyksICdzaGlueS5tYXRyaXgnKTsKICAgICAgICB9KTsKICAgICAgICBzZWxlY3RDZWxscyhmYWxzZSk7ICAvLyBpbiBjYXNlIHVzZXJzIGhhdmUgc3BlY2lmaWVkIHByZS1zZWxlY3RlZCBjb2x1bW5zCiAgICAgICAgY2hhbmdlSW5wdXQoJ2NlbGxzX3NlbGVjdGVkJywgdHJhbnNwb3NlQXJyYXkyRChzZWxlY3RlZDMpLCAnc2hpbnkubWF0cml4Jyk7CgogICAgICAgIGlmIChzZXJ2ZXIpIHRhYmxlLm9uKCdkcmF3LmR0JywgZnVuY3Rpb24oZSkgeyBzZWxlY3RDZWxscyhmYWxzZSk7IH0pOwogICAgICAgIG1ldGhvZHMuc2VsZWN0Q2VsbHMgPSBmdW5jdGlvbihzZWxlY3RlZCwgaWdub3JlU2VsZWN0YWJsZSkgewogICAgICAgICAgc2VsZWN0ZWQzID0gc2VsZWN0ZWQgPyBzZWxlY3RlZCA6IFtdOwogICAgICAgICAgc2VsZWN0Q2VsbHMoaWdub3JlU2VsZWN0YWJsZSk7CiAgICAgICAgICBjaGFuZ2VJbnB1dCgnY2VsbHNfc2VsZWN0ZWQnLCB0cmFuc3Bvc2VBcnJheTJEKHNlbGVjdGVkMyksICdzaGlueS5tYXRyaXgnKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICAvLyBleHBvc2Ugc29tZSB0YWJsZSBpbmZvIHRvIFNoaW55CiAgICB2YXIgdXBkYXRlVGFibGVJbmZvID0gZnVuY3Rpb24oZSwgc2V0dGluZ3MpIHsKICAgICAgLy8gVE9ETzogaXMgYW55b25lIGludGVyZXN0ZWQgaW4gdGhlIHBhZ2UgaW5mbz8KICAgICAgLy8gY2hhbmdlSW5wdXQoJ3BhZ2VfaW5mbycsIHRhYmxlLnBhZ2UuaW5mbygpKTsKICAgICAgdmFyIHVwZGF0ZVJvd0luZm8gPSBmdW5jdGlvbihpZCwgbW9kaWZpZXIpIHsKICAgICAgICB2YXIgaWR4OwogICAgICAgIGlmIChzZXJ2ZXIpIHsKICAgICAgICAgIGlkeCA9IG1vZGlmaWVyLnBhZ2UgPT09ICdjdXJyZW50JyA/IERUX3Jvd3NfY3VycmVudCA6IERUX3Jvd3NfYWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgcm93cyA9IHRhYmxlLnJvd3MoJC5leHRlbmQoewogICAgICAgICAgICBzZWFyY2g6ICdhcHBsaWVkJywKICAgICAgICAgICAgcGFnZTogJ2FsbCcKICAgICAgICAgIH0sIG1vZGlmaWVyKSk7CiAgICAgICAgICBpZHggPSBhZGRPbmUocm93cy5pbmRleGVzKCkudG9BcnJheSgpKTsKICAgICAgICB9CiAgICAgICAgY2hhbmdlSW5wdXQoJ3Jvd3MnICsgJ18nICsgaWQsIGlkeCk7CiAgICAgIH07CiAgICAgIHVwZGF0ZVJvd0luZm8oJ2N1cnJlbnQnLCB7cGFnZTogJ2N1cnJlbnQnfSk7CiAgICAgIHVwZGF0ZVJvd0luZm8oJ2FsbCcsIHt9KTsKICAgIH0KICAgIHRhYmxlLm9uKCdkcmF3LmR0JywgdXBkYXRlVGFibGVJbmZvKTsKICAgIHVwZGF0ZVRhYmxlSW5mbygpOwoKICAgIC8vIHN0YXRlIGluZm8KICAgIHRhYmxlLm9uKCdkcmF3LmR0IGNvbHVtbi12aXNpYmlsaXR5LmR0JywgZnVuY3Rpb24oKSB7CiAgICAgIGNoYW5nZUlucHV0KCdzdGF0ZScsIHRhYmxlLnN0YXRlKCkpOwogICAgfSk7CiAgICBjaGFuZ2VJbnB1dCgnc3RhdGUnLCB0YWJsZS5zdGF0ZSgpKTsKCiAgICAvLyBzZWFyY2ggaW5mbwogICAgdmFyIHVwZGF0ZVNlYXJjaEluZm8gPSBmdW5jdGlvbigpIHsKICAgICAgY2hhbmdlSW5wdXQoJ3NlYXJjaCcsIHRhYmxlLnNlYXJjaCgpKTsKICAgICAgaWYgKGZpbHRlclJvdykgY2hhbmdlSW5wdXQoJ3NlYXJjaF9jb2x1bW5zJywgZmlsdGVyUm93LnRvQXJyYXkoKS5tYXAoZnVuY3Rpb24odGQpIHsKICAgICAgICByZXR1cm4gJCh0ZCkuZmluZCgnaW5wdXQnKS5maXJzdCgpLnZhbCgpOwogICAgICB9KSk7CiAgICB9CiAgICB0YWJsZS5vbignZHJhdy5kdCcsIHVwZGF0ZVNlYXJjaEluZm8pOwogICAgdXBkYXRlU2VhcmNoSW5mbygpOwoKICAgIHZhciBjZWxsSW5mbyA9IGZ1bmN0aW9uKHRoaXopIHsKICAgICAgdmFyIGluZm8gPSB0d2Vha0NlbGxJbmRleCh0YWJsZS5jZWxsKHRoaXopKTsKICAgICAgaW5mby52YWx1ZSA9IHRhYmxlLmNlbGwodGhpeikuZGF0YSgpOwogICAgICByZXR1cm4gaW5mbzsKICAgIH0KICAgIC8vIHRoZSBjdXJyZW50IGNlbGwgY2xpY2tlZCBvbgogICAgdGFibGUub24oJ2NsaWNrLmR0JywgJ3Rib2R5IHRkJywgZnVuY3Rpb24oKSB7CiAgICAgIGNoYW5nZUlucHV0KCdjZWxsX2NsaWNrZWQnLCBjZWxsSW5mbyh0aGlzKSwgbnVsbCwgbnVsbCwge3ByaW9yaXR5OiAnZXZlbnQnfSk7CiAgICB9KQogICAgY2hhbmdlSW5wdXQoJ2NlbGxfY2xpY2tlZCcsIHt9KTsKCiAgICAvLyBkbyBub3QgdHJpZ2dlciB0YWJsZSBzZWxlY3Rpb24gd2hlbiBjbGlja2luZyBvbiBsaW5rcyB1bmxlc3MgdGhleSBoYXZlIGNsYXNzZXMKICAgIHRhYmxlLm9uKCdjbGljay5kdCcsICd0Ym9keSB0ZCBhJywgZnVuY3Rpb24oZSkgewogICAgICBpZiAodGhpcy5jbGFzc05hbWUgPT09ICcnKSBlLnN0b3BQcm9wYWdhdGlvbigpOwogICAgfSk7CgogICAgbWV0aG9kcy5hZGRSb3cgPSBmdW5jdGlvbihkYXRhLCByb3duYW1lLCByZXNldFBhZ2luZykgewogICAgICB2YXIgbiA9IHRhYmxlLmNvbHVtbnMoKS5pbmRleGVzKCkubGVuZ3RoLCBkID0gbiAtIGRhdGEubGVuZ3RoOwogICAgICBpZiAoZCA9PT0gMSkgewogICAgICAgIGRhdGEgPSByb3duYW1lLmNvbmNhdChkYXRhKQogICAgICB9IGVsc2UgaWYgKGQgIT09IDApIHsKICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgICBjb25zb2xlLmxvZyh0YWJsZS5jb2x1bW5zKCkuaW5kZXhlcygpKTsKICAgICAgICB0aHJvdyAnTmV3IGRhdGEgbXVzdCBiZSBvZiB0aGUgc2FtZSBsZW5ndGggYXMgY3VycmVudCBkYXRhICgnICsgbiArICcpJzsKICAgICAgfTsKICAgICAgdGFibGUucm93LmFkZChkYXRhKS5kcmF3KHJlc2V0UGFnaW5nKTsKICAgIH0KCiAgICBtZXRob2RzLnVwZGF0ZVNlYXJjaCA9IGZ1bmN0aW9uKGtleXdvcmRzKSB7CiAgICAgIGlmIChrZXl3b3Jkcy5nbG9iYWwgIT09IG51bGwpCiAgICAgICAgJCh0YWJsZS50YWJsZSgpLmNvbnRhaW5lcigpKS5maW5kKCdpbnB1dFt0eXBlPXNlYXJjaF0nKS5maXJzdCgpCiAgICAgICAgICAgICAudmFsKGtleXdvcmRzLmdsb2JhbCkudHJpZ2dlcignaW5wdXQnKTsKICAgICAgdmFyIGNvbHVtbnMgPSBrZXl3b3Jkcy5jb2x1bW5zOwogICAgICBpZiAoIWZpbHRlclJvdyB8fCBjb2x1bW5zID09PSBudWxsKSByZXR1cm47CiAgICAgIGZpbHRlclJvdy50b0FycmF5KCkubWFwKGZ1bmN0aW9uKHRkLCBpKSB7CiAgICAgICAgdmFyIHYgPSB0eXBlb2YgY29sdW1ucyA9PT0gJ3N0cmluZycgPyBjb2x1bW5zIDogY29sdW1uc1tpXTsKICAgICAgICBpZiAodHlwZW9mIHYgPT09ICd1bmRlZmluZWQnKSB7CiAgICAgICAgICBjb25zb2xlLmxvZygnVGhlIHNlYXJjaCBrZXl3b3JkIGZvciBjb2x1bW4gJyArIGkgKyAnIGlzIHVuZGVmaW5lZCcpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgICQodGQpLmZpbmQoJ2lucHV0JykuZmlyc3QoKS52YWwodik7CiAgICAgICAgc2VhcmNoQ29sdW1uKGksIHYpOwogICAgICB9KTsKICAgICAgdGFibGUuZHJhdygpOwogICAgfQoKICAgIG1ldGhvZHMuaGlkZUNvbHMgPSBmdW5jdGlvbihoaWRlLCByZXNldCkgewogICAgICBpZiAocmVzZXQpIHRhYmxlLmNvbHVtbnMoKS52aXNpYmxlKHRydWUsIGZhbHNlKTsKICAgICAgdGFibGUuY29sdW1ucyhoaWRlKS52aXNpYmxlKGZhbHNlKTsKICAgIH0KCiAgICBtZXRob2RzLnNob3dDb2xzID0gZnVuY3Rpb24oc2hvdywgcmVzZXQpIHsKICAgICAgaWYgKHJlc2V0KSB0YWJsZS5jb2x1bW5zKCkudmlzaWJsZShmYWxzZSwgZmFsc2UpOwogICAgICB0YWJsZS5jb2x1bW5zKHNob3cpLnZpc2libGUodHJ1ZSk7CiAgICB9CgogICAgbWV0aG9kcy5jb2xSZW9yZGVyID0gZnVuY3Rpb24ob3JkZXIsIG9yaWdPcmRlcikgewogICAgICB0YWJsZS5jb2xSZW9yZGVyLm9yZGVyKG9yZGVyLCBvcmlnT3JkZXIpOwogICAgfQoKICAgIG1ldGhvZHMuc2VsZWN0UGFnZSA9IGZ1bmN0aW9uKHBhZ2UpIHsKICAgICAgaWYgKHRhYmxlLnBhZ2UuaW5mbygpLnBhZ2VzIDwgcGFnZSB8fCBwYWdlIDwgMSkgewogICAgICAgIHRocm93ICdTZWxlY3RlZCBwYWdlIGlzIG91dCBvZiByYW5nZSc7CiAgICAgIH07CiAgICAgIHRhYmxlLnBhZ2UocGFnZSAtIDEpLmRyYXcoZmFsc2UpOwogICAgfQoKICAgIG1ldGhvZHMucmVsb2FkRGF0YSA9IGZ1bmN0aW9uKHJlc2V0UGFnaW5nLCBjbGVhclNlbGVjdGlvbikgewogICAgICAvLyBlbXB0eSBzZWxlY3Rpb25zIGZpcnN0IGlmIG5lY2Vzc2FyeQogICAgICBpZiAobWV0aG9kcy5zZWxlY3RSb3dzICYmIGluQXJyYXkoJ3JvdycsIGNsZWFyU2VsZWN0aW9uKSkgbWV0aG9kcy5zZWxlY3RSb3dzKFtdKTsKICAgICAgaWYgKG1ldGhvZHMuc2VsZWN0Q29sdW1ucyAmJiBpbkFycmF5KCdjb2x1bW4nLCBjbGVhclNlbGVjdGlvbikpIG1ldGhvZHMuc2VsZWN0Q29sdW1ucyhbXSk7CiAgICAgIGlmIChtZXRob2RzLnNlbGVjdENlbGxzICYmIGluQXJyYXkoJ2NlbGwnLCBjbGVhclNlbGVjdGlvbikpIG1ldGhvZHMuc2VsZWN0Q2VsbHMoW10pOwogICAgICB0YWJsZS5hamF4LnJlbG9hZChudWxsLCByZXNldFBhZ2luZyk7CiAgICB9CgogICAgdGFibGUuc2hpbnlNZXRob2RzID0gbWV0aG9kczsKICB9LAogIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICBpZiAoaW5zdGFuY2UuZGF0YSkgdGhpcy5yZW5kZXJWYWx1ZShlbCwgaW5zdGFuY2UuZGF0YSwgaW5zdGFuY2UpOwoKICAgIC8vIGR5bmFtaWNhbGx5IGFkanVzdCBoZWlnaHQgaWYgZmlsbENvbnRhaW5lciA9IFRSVUUKICAgIGlmIChpbnN0YW5jZS5maWxsQ29udGFpbmVyKQogICAgICB0aGlzLmZpbGxBdmFpbGFibGVIZWlnaHQoZWwsIGhlaWdodCk7CgogICAgdGhpcy5hZGp1c3RXaWR0aChlbCk7CiAgfSwKCiAgLy8gZHluYW1pY2FsbHkgc2V0IHRoZSBzY3JvbGwgYm9keSB0byBmaWxsIGF2YWlsYWJsZSBoZWlnaHQKICAvLyAodXNlZCB3aXRoIGZpbGxDb250YWluZXIgPSBUUlVFKQogIGZpbGxBdmFpbGFibGVIZWlnaHQ6IGZ1bmN0aW9uKGVsLCBhdmFpbGFibGVIZWlnaHQpIHsKCiAgICAvLyBzZWUgaG93IG11Y2ggb2YgdGhlIHRhYmxlIGlzIG9jY3VwaWVkIGJ5IGhlYWRlci9mb290ZXIgZWxlbWVudHMKICAgIC8vIGFuZCB1c2UgdGhhdCB0byBjb21wdXRlIGEgdGFyZ2V0IHNjcm9sbCBib2R5IGhlaWdodAogICAgdmFyIGR0V3JhcHBlciA9ICQoZWwpLmZpbmQoJ2Rpdi5kYXRhVGFibGVzX3dyYXBwZXInKTsKICAgIHZhciBkdFNjcm9sbEJvZHkgPSAkKGVsKS5maW5kKCQoJ2Rpdi5kYXRhVGFibGVzX3Njcm9sbEJvZHknKSk7CiAgICB2YXIgZnJhbWluZ0hlaWdodCA9IGR0V3JhcHBlci5pbm5lckhlaWdodCgpIC0gZHRTY3JvbGxCb2R5LmlubmVySGVpZ2h0KCk7CiAgICB2YXIgc2Nyb2xsQm9keUhlaWdodCA9IGF2YWlsYWJsZUhlaWdodCAtIGZyYW1pbmdIZWlnaHQ7CgogICAgLy8gc2V0IHRoZSBoZWlnaHQKICAgIGR0U2Nyb2xsQm9keS5oZWlnaHQoc2Nyb2xsQm9keUhlaWdodCArICdweCcpOwogIH0sCgogIC8vIGFkanVzdCB0aGUgd2lkdGggb2YgY29sdW1uczsgcmVtb3ZlIHRoZSBoYXJkLWNvZGVkIHdpZHRocyBvbiB0YWJsZSBhbmQgdGhlCiAgLy8gc2Nyb2xsIGhlYWRlciB3aGVuIHNjcm9sbFgvWSBhcmUgZW5hYmxlZAogIGFkanVzdFdpZHRoOiBmdW5jdGlvbihlbCkgewogICAgdmFyICRlbCA9ICQoZWwpLCB0YWJsZSA9ICRlbC5kYXRhKCdkYXRhdGFibGUnKTsKICAgIGlmICh0YWJsZSkgdGFibGUuY29sdW1ucy5hZGp1c3QoKTsKICAgICRlbC5maW5kKCcuZGF0YVRhYmxlc19zY3JvbGxIZWFkSW5uZXInKS5jc3MoJ3dpZHRoJywgJycpCiAgICAgICAgLmNoaWxkcmVuKCd0YWJsZScpLmNzcygnbWFyZ2luLWxlZnQnLCAnJyk7CiAgfQp9KTsKCiAgaWYgKCFIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHJldHVybjsKCiAgU2hpbnkuYWRkQ3VzdG9tTWVzc2FnZUhhbmRsZXIoJ2RhdGF0YWJsZS1jYWxscycsIGZ1bmN0aW9uKGRhdGEpIHsKICAgIHZhciBpZCA9IGRhdGEuaWQ7CiAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CiAgICB2YXIgdGFibGUgPSBlbCA/ICQoZWwpLmRhdGEoJ2RhdGF0YWJsZScpIDogbnVsbDsKICAgIGlmICghdGFibGUpIHsKICAgICAgY29uc29sZS5sb2coIkNvdWxkbid0IGZpbmQgdGFibGUgd2l0aCBpZCAiICsgaWQpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIG1ldGhvZHMgPSB0YWJsZS5zaGlueU1ldGhvZHMsIGNhbGwgPSBkYXRhLmNhbGw7CiAgICBpZiAobWV0aG9kc1tjYWxsLm1ldGhvZF0pIHsKICAgICAgbWV0aG9kc1tjYWxsLm1ldGhvZF0uYXBwbHkodGFibGUsIGNhbGwuYXJncyk7CiAgICB9IGVsc2UgewogICAgICBjb25zb2xlLmxvZygiVW5rbm93biBtZXRob2QgIiArIGNhbGwubWV0aG9kKTsKICAgIH0KICB9KTsKCn0pKCk7Cg=="></script>
|
||
<link href="data:text/css,table%2EdataTable%7Bwidth%3A100%25%3Bmargin%3A0%20auto%3Bclear%3Aboth%3Bborder%2Dcollapse%3Aseparate%3Bborder%2Dspacing%3A0%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20tfoot%20th%7Bfont%2Dweight%3Abold%7Dtable%2EdataTable%20thead%20th%2Ctable%2EdataTable%20thead%20td%7Bpadding%3A10px%2018px%3Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20th%3Aactive%2Ctable%2EdataTable%20thead%20td%3Aactive%7Boutline%3Anone%7Dtable%2EdataTable%20tfoot%20th%2Ctable%2EdataTable%20tfoot%20td%7Bpadding%3A10px%2018px%206px%2018px%3Bborder%2Dtop%3A1px%20solid%20%23111%7Dtable%2EdataTable%20thead%20%2Esorting%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%2Ctable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%2Ctable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bbackground%2Drepeat%3Ano%2Drepeat%3Bbackground%2Dposition%3Acenter%20right%7Dtable%2EdataTable%20thead%20%2Esorting%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7XQMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL%2BTq%2FQCM1oNiJidwox0355mXnG%2FDrEtIQ6azioNZQxI0ykPhTQIwhCR%2BBmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P%2BGtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS%2FgDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM%2BwTENuQahAvEO9DMwiGdwAxOymGJQLxTyD%2BjgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA%2FBOIv2PBIPFEUgxjB%2BIdQPwfC94HxLykus4GiD%2BhGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL%2BAuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fasc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAW0lEQVQoz2NgoCm4w3Vnwh02wspK7%2Fy6k01Ikdadx3f%2B37l9RxmfIsY7c4GKQHDiHUbcyhzvvIMq%2B3THBpci3jv7oIpAcMcdduzKEu%2F8vPMdDn%2FeiWQYBYMKAAC3ykIEuYQJUgAAAABJRU5ErkJggg%3D%3D%29%7Dtable%2EdataTable%20thead%20%2Esorting%5Fdesc%5Fdisabled%7Bbackground%2Dimage%3Aurl%28data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAWUlEQVQoz2NgGAWDCtyJvPPzznc4%2FHknEbsy9js77vyHw313eHGZZ3PnE1TRuzuOuK1lvDMRqmzuHUZ87lO%2Bcxuo6PEdLUIeyb7z604pYf%2By3Zlwh4u2YQoAc7ZCBHH4jigAAAAASUVORK5CYII%3D%29%7Dtable%2EdataTable%20tbody%20tr%7Bbackground%2Dcolor%3A%23ffffff%7Dtable%2EdataTable%20tbody%20tr%2Eselected%7Bbackground%2Dcolor%3A%23B0BED9%7Dtable%2EdataTable%20tbody%20th%2Ctable%2EdataTable%20tbody%20td%7Bpadding%3A8px%2010px%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Erow%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20td%7Bborder%2Dtop%3A1px%20solid%20%23ddd%3Bborder%2Dright%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20th%3Afirst%2Dchild%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%20td%3Afirst%2Dchild%7Bborder%2Dleft%3A1px%20solid%20%23ddd%7Dtable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20th%2Ctable%2EdataTable%2Ecell%2Dborder%20tbody%20tr%3Afirst%2Dchild%20td%7Bborder%2Dtop%3Anone%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%7Bbackground%2Dcolor%3A%23f9f9f9%7Dtable%2EdataTable%2Estripe%20tbody%20tr%2Eodd%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%7Bbackground%2Dcolor%3A%23acbad4%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%7Bbackground%2Dcolor%3A%23f6f6f6%7Dtable%2EdataTable%2Ehover%20tbody%20tr%3Ahover%2Eselected%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%7Bbackground%2Dcolor%3A%23aab7d1%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%20tbody%20tr%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Edisplay%20tbody%20tr%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23f1f1f1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23f3f3f3%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%3E%2Esorting%5F3%7Bbackground%2Dcolor%3Awhitesmoke%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a6b4cd%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a8b5cf%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eodd%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a9b7d1%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23fafafa%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23fcfcfc%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23fefefe%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23acbad5%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23aebcd6%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Estripe%20tbody%20tr%2Eeven%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23afbdd8%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23eaeaea%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23ececec%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23efefef%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F1%7Bbackground%2Dcolor%3A%23a2aec7%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F2%7Bbackground%2Dcolor%3A%23a3b0c9%7Dtable%2EdataTable%2Edisplay%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%2Ctable%2EdataTable%2Eorder%2Dcolumn%2Ehover%20tbody%20tr%3Ahover%2Eselected%3E%2Esorting%5F3%7Bbackground%2Dcolor%3A%23a5b2cb%7Dtable%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3A1px%20solid%20%23111%7Dtable%2EdataTable%2Enowrap%20th%2Ctable%2EdataTable%2Enowrap%20td%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ecompact%20thead%20th%2Ctable%2EdataTable%2Ecompact%20thead%20td%7Bpadding%3A4px%2017px%204px%204px%7Dtable%2EdataTable%2Ecompact%20tfoot%20th%2Ctable%2EdataTable%2Ecompact%20tfoot%20td%7Bpadding%3A4px%7Dtable%2EdataTable%2Ecompact%20tbody%20th%2Ctable%2EdataTable%2Ecompact%20tbody%20td%7Bpadding%3A4px%7Dtable%2EdataTable%20th%2Edt%2Dleft%2Ctable%2EdataTable%20td%2Edt%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20th%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2Edt%2Dcenter%2Ctable%2EdataTable%20td%2EdataTables%5Fempty%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20th%2Edt%2Dright%2Ctable%2EdataTable%20td%2Edt%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20th%2Edt%2Djustify%2Ctable%2EdataTable%20td%2Edt%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20th%2Edt%2Dnowrap%2Ctable%2EdataTable%20td%2Edt%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dleft%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dcenter%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dright%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Djustify%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20thead%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20thead%20td%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20th%2Edt%2Dhead%2Dnowrap%2Ctable%2EdataTable%20tfoot%20td%2Edt%2Dhead%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dleft%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dleft%7Btext%2Dalign%3Aleft%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dcenter%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dcenter%7Btext%2Dalign%3Acenter%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dright%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dright%7Btext%2Dalign%3Aright%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Djustify%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Djustify%7Btext%2Dalign%3Ajustify%7Dtable%2EdataTable%20tbody%20th%2Edt%2Dbody%2Dnowrap%2Ctable%2EdataTable%20tbody%20td%2Edt%2Dbody%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7Dtable%2EdataTable%2Ctable%2EdataTable%20th%2Ctable%2EdataTable%20td%7Bbox%2Dsizing%3Acontent%2Dbox%7D%2EdataTables%5Fwrapper%7Bposition%3Arelative%3Bclear%3Aboth%3B%2Azoom%3A1%3Bzoom%3A1%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%7Bfloat%3Aleft%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Aright%3Btext%2Dalign%3Aright%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%20input%7Bmargin%2Dleft%3A0%2E5em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%7Bclear%3Aboth%3Bfloat%3Aleft%3Bpadding%2Dtop%3A0%2E755em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Aright%3Btext%2Dalign%3Aright%3Bpadding%2Dtop%3A0%2E25em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%7Bbox%2Dsizing%3Aborder%2Dbox%3Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A1%2E5em%3Bpadding%3A0%2E5em%201em%3Bmargin%2Dleft%3A2px%3Btext%2Dalign%3Acenter%3Btext%2Ddecoration%3Anone%20%21important%3Bcursor%3Apointer%3B%2Acursor%3Ahand%3Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A2px%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Ecurrent%3Ahover%7Bcolor%3A%23333%20%21important%3Bborder%3A1px%20solid%20%23979797%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23fff%29%2C%20color%2Dstop%28100%25%2C%20%23dcdcdc%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23dcdcdc%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Ahover%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%2Edisabled%3Aactive%7Bcursor%3Adefault%3Bcolor%3A%23666%20%21important%3Bborder%3A1px%20solid%20transparent%3Bbackground%3Atransparent%3Bbox%2Dshadow%3Anone%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Ahover%7Bcolor%3Awhite%20%21important%3Bborder%3A1px%20solid%20%23111%3Bbackground%2Dcolor%3A%23585858%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%23585858%29%2C%20color%2Dstop%28100%25%2C%20%23111%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23585858%200%25%2C%20%23111%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%23585858%200%25%2C%20%23111%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Epaginate%5Fbutton%3Aactive%7Boutline%3Anone%3Bbackground%2Dcolor%3A%232b2b2b%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20left%20bottom%2C%20color%2Dstop%280%25%2C%20%232b2b2b%29%2C%20color%2Dstop%28100%25%2C%20%230c0c0c%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20bottom%2C%20%232b2b2b%200%25%2C%20%230c0c0c%20100%25%29%3Bbox%2Dshadow%3Ainset%200%200%203px%20%23111%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%20%2Eellipsis%7Bpadding%3A0%201em%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%7Bposition%3Aabsolute%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A100%25%3Bheight%3A40px%3Bmargin%2Dleft%3A%2D50%25%3Bmargin%2Dtop%3A%2D25px%3Bpadding%2Dtop%3A20px%3Btext%2Dalign%3Acenter%3Bfont%2Dsize%3A1%2E2em%3Bbackground%2Dcolor%3Awhite%3Bbackground%3A%2Dwebkit%2Dgradient%28linear%2C%20left%20top%2C%20right%20top%2C%20color%2Dstop%280%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%2C%20color%2Dstop%2825%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%2875%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%29%2C%20color%2Dstop%28100%25%2C%20rgba%28255%2C255%2C255%2C0%29%29%29%3Bbackground%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Dms%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3A%2Do%2Dlinear%2Dgradient%28left%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%3Bbackground%3Alinear%2Dgradient%28to%20right%2C%20rgba%28255%2C255%2C255%2C0%29%200%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2025%25%2C%20rgba%28255%2C255%2C255%2C0%2E9%29%2075%25%2C%20rgba%28255%2C255%2C255%2C0%29%20100%25%29%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fprocessing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bcolor%3A%23333%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%7Bclear%3Aboth%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%7B%2Amargin%2Dtop%3A%2D1px%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Eth%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Etd%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Eth%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Etd%7Bvertical%2Dalign%3Amiddle%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Eth%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Ethead%3Etr%3Etd%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Eth%3Ediv%2EdataTables%5Fsizing%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fscroll%20div%2EdataTables%5FscrollBody%3Etable%3Etbody%3Etr%3Etd%3Ediv%2EdataTables%5Fsizing%7Bheight%3A0%3Boverflow%3Ahidden%3Bmargin%3A0%20%21important%3Bpadding%3A0%20%21important%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20%2EdataTables%5FscrollBody%7Bborder%2Dbottom%3A1px%20solid%20%23111%7D%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollHead%20table%2EdataTable%2C%2EdataTables%5Fwrapper%2Eno%2Dfooter%20div%2EdataTables%5FscrollBody%3Etable%7Bborder%2Dbottom%3Anone%7D%2EdataTables%5Fwrapper%3Aafter%7Bvisibility%3Ahidden%3Bdisplay%3Ablock%3Bcontent%3A%22%22%3Bclear%3Aboth%3Bheight%3A0%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20767px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Finfo%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Fpaginate%7Bmargin%2Dtop%3A0%2E5em%7D%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7B%2EdataTables%5Fwrapper%20%2EdataTables%5Flength%2C%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bfloat%3Anone%3Btext%2Dalign%3Acenter%7D%2EdataTables%5Fwrapper%20%2EdataTables%5Ffilter%7Bmargin%2Dtop%3A0%2E5em%7D%7D%0A" rel="stylesheet" />
|
||
<link href="data:text/css,%0Atable%2EdataTable%20tr%2Eselected%20td%2C%20table%2EdataTable%20td%2Eselected%20%7B%0Abackground%2Dcolor%3A%20%23b0bed9%20%21important%3B%0A%7D%0A%0A%2EdataTables%5FscrollBody%20%2EdataTables%5Fsizing%20%7B%0Avisibility%3A%20hidden%3B%0A%7D%0A%0Adiv%2Edatatables%20%7B%0Acolor%3A%20%23333%3B%0A%7D%0A" rel="stylesheet" />
|
||
<script src="data:application/javascript;base64,LyohCiAgIENvcHlyaWdodCAyMDA4LTIwMTkgU3ByeU1lZGlhIEx0ZC4KCiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2U6CiAgIE1JVCBsaWNlbnNlIC0gaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2UKCiBUaGlzIHNvdXJjZSBmaWxlIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkKIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIGxpY2Vuc2UgZmlsZXMgZm9yIGRldGFpbHMuCgogRm9yIGRldGFpbHMgcGxlYXNlIHJlZmVyIHRvOiBodHRwOi8vd3d3LmRhdGF0YWJsZXMubmV0CiBEYXRhVGFibGVzIDEuMTAuMjAKIMKpMjAwOC0yMDE5IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiovCnZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5maW5kSW50ZXJuYWw9ZnVuY3Rpb24oZix6LHkpe2YgaW5zdGFuY2VvZiBTdHJpbmcmJihmPVN0cmluZyhmKSk7Zm9yKHZhciBwPWYubGVuZ3RoLEg9MDtIPHA7SCsrKXt2YXIgTD1mW0hdO2lmKHouY2FsbCh5LEwsSCxmKSlyZXR1cm57aTpILHY6TH19cmV0dXJue2k6LTEsdjp2b2lkIDB9fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTsKJGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZix6LHkpe2YhPUFycmF5LnByb3RvdHlwZSYmZiE9T2JqZWN0LnByb3RvdHlwZSYmKGZbel09eS52YWx1ZSl9OyRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGYpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3c9PT1mP2Y6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJm51bGwhPWdsb2JhbD9nbG9iYWw6Zn07JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7CiRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oZix6LHkscCl7aWYoeil7eT0kanNjb21wLmdsb2JhbDtmPWYuc3BsaXQoIi4iKTtmb3IocD0wO3A8Zi5sZW5ndGgtMTtwKyspe3ZhciBIPWZbcF07SCBpbiB5fHwoeVtIXT17fSk7eT15W0hdfWY9ZltmLmxlbmd0aC0xXTtwPXlbZl07ej16KHApO3ohPXAmJm51bGwhPXomJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoeSxmLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6en0pfX07JGpzY29tcC5wb2x5ZmlsbCgiQXJyYXkucHJvdG90eXBlLmZpbmQiLGZ1bmN0aW9uKGYpe3JldHVybiBmP2Y6ZnVuY3Rpb24oZix5KXtyZXR1cm4gJGpzY29tcC5maW5kSW50ZXJuYWwodGhpcyxmLHkpLnZ9fSwiZXM2IiwiZXMzIik7CihmdW5jdGlvbihmKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbih6KXtyZXR1cm4gZih6LHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHoseSl7enx8KHo9d2luZG93KTt5fHwoeT0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3c/cmVxdWlyZSgianF1ZXJ5Iik6cmVxdWlyZSgianF1ZXJ5IikoeikpO3JldHVybiBmKHkseix6LmRvY3VtZW50KX06ZihqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGYseix5LHApe2Z1bmN0aW9uIEgoYSl7dmFyIGIsYyxkPXt9O2YuZWFjaChhLGZ1bmN0aW9uKGUsaCl7KGI9ZS5tYXRjaCgvXihbXkEtWl0rPykoW0EtWl0pLykpJiYtMSE9PSJhIGFhIGFpIGFvIGFzIGIgZm4gaSBtIG8gcyAiLmluZGV4T2YoYlsxXSsiICIpJiYoYz1lLnJlcGxhY2UoYlswXSxiWzJdLnRvTG93ZXJDYXNlKCkpLApkW2NdPWUsIm8iPT09YlsxXSYmSChhW2VdKSl9KTthLl9odW5nYXJpYW5NYXA9ZH1mdW5jdGlvbiBMKGEsYixjKXthLl9odW5nYXJpYW5NYXB8fEgoYSk7dmFyIGQ7Zi5lYWNoKGIsZnVuY3Rpb24oZSxoKXtkPWEuX2h1bmdhcmlhbk1hcFtlXTtkPT09cHx8IWMmJmJbZF0hPT1wfHwoIm8iPT09ZC5jaGFyQXQoMCk/KGJbZF18fChiW2RdPXt9KSxmLmV4dGVuZCghMCxiW2RdLGJbZV0pLEwoYVtkXSxiW2RdLGMpKTpiW2RdPWJbZV0pfSl9ZnVuY3Rpb24gR2EoYSl7dmFyIGI9cS5kZWZhdWx0cy5vTGFuZ3VhZ2UsYz1iLnNEZWNpbWFsO2MmJkhhKGMpO2lmKGEpe3ZhciBkPWEuc1plcm9SZWNvcmRzOyFhLnNFbXB0eVRhYmxlJiZkJiYiTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUiPT09Yi5zRW1wdHlUYWJsZSYmTShhLGEsInNaZXJvUmVjb3JkcyIsInNFbXB0eVRhYmxlIik7IWEuc0xvYWRpbmdSZWNvcmRzJiZkJiYiTG9hZGluZy4uLiI9PT1iLnNMb2FkaW5nUmVjb3JkcyYmTShhLGEsCiJzWmVyb1JlY29yZHMiLCJzTG9hZGluZ1JlY29yZHMiKTthLnNJbmZvVGhvdXNhbmRzJiYoYS5zVGhvdXNhbmRzPWEuc0luZm9UaG91c2FuZHMpOyhhPWEuc0RlY2ltYWwpJiZjIT09YSYmSGEoYSl9fWZ1bmN0aW9uIGpiKGEpe0YoYSwib3JkZXJpbmciLCJiU29ydCIpO0YoYSwib3JkZXJNdWx0aSIsImJTb3J0TXVsdGkiKTtGKGEsIm9yZGVyQ2xhc3NlcyIsImJTb3J0Q2xhc3NlcyIpO0YoYSwib3JkZXJDZWxsc1RvcCIsImJTb3J0Q2VsbHNUb3AiKTtGKGEsIm9yZGVyIiwiYWFTb3J0aW5nIik7RihhLCJvcmRlckZpeGVkIiwiYWFTb3J0aW5nRml4ZWQiKTtGKGEsInBhZ2luZyIsImJQYWdpbmF0ZSIpO0YoYSwicGFnaW5nVHlwZSIsInNQYWdpbmF0aW9uVHlwZSIpO0YoYSwicGFnZUxlbmd0aCIsImlEaXNwbGF5TGVuZ3RoIik7RihhLCJzZWFyY2hpbmciLCJiRmlsdGVyIik7ImJvb2xlYW4iPT09dHlwZW9mIGEuc1Njcm9sbFgmJihhLnNTY3JvbGxYPWEuc1Njcm9sbFg/IjEwMCUiOgoiIik7ImJvb2xlYW4iPT09dHlwZW9mIGEuc2Nyb2xsWCYmKGEuc2Nyb2xsWD1hLnNjcm9sbFg/IjEwMCUiOiIiKTtpZihhPWEuYW9TZWFyY2hDb2xzKWZvcih2YXIgYj0wLGM9YS5sZW5ndGg7YjxjO2IrKylhW2JdJiZMKHEubW9kZWxzLm9TZWFyY2gsYVtiXSl9ZnVuY3Rpb24ga2IoYSl7RihhLCJvcmRlcmFibGUiLCJiU29ydGFibGUiKTtGKGEsIm9yZGVyRGF0YSIsImFEYXRhU29ydCIpO0YoYSwib3JkZXJTZXF1ZW5jZSIsImFzU29ydGluZyIpO0YoYSwib3JkZXJEYXRhVHlwZSIsInNvcnREYXRhVHlwZSIpO3ZhciBiPWEuYURhdGFTb3J0OyJudW1iZXIiIT09dHlwZW9mIGJ8fGYuaXNBcnJheShiKXx8KGEuYURhdGFTb3J0PVtiXSl9ZnVuY3Rpb24gbGIoYSl7aWYoIXEuX19icm93c2VyKXt2YXIgYj17fTtxLl9fYnJvd3Nlcj1iO3ZhciBjPWYoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6MCxsZWZ0Oi0xKmYoeikuc2Nyb2xsTGVmdCgpLGhlaWdodDoxLHdpZHRoOjEsCm92ZXJmbG93OiJoaWRkZW4ifSkuYXBwZW5kKGYoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MSxsZWZ0OjEsd2lkdGg6MTAwLG92ZXJmbG93OiJzY3JvbGwifSkuYXBwZW5kKGYoIjxkaXYvPiIpLmNzcyh7d2lkdGg6IjEwMCUiLGhlaWdodDoxMH0pKSkuYXBwZW5kVG8oImJvZHkiKSxkPWMuY2hpbGRyZW4oKSxlPWQuY2hpbGRyZW4oKTtiLmJhcldpZHRoPWRbMF0ub2Zmc2V0V2lkdGgtZFswXS5jbGllbnRXaWR0aDtiLmJTY3JvbGxPdmVyc2l6ZT0xMDA9PT1lWzBdLm9mZnNldFdpZHRoJiYxMDAhPT1kWzBdLmNsaWVudFdpZHRoO2IuYlNjcm9sbGJhckxlZnQ9MSE9PU1hdGgucm91bmQoZS5vZmZzZXQoKS5sZWZ0KTtiLmJCb3VuZGluZz1jWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoPyEwOiExO2MucmVtb3ZlKCl9Zi5leHRlbmQoYS5vQnJvd3NlcixxLl9fYnJvd3Nlcik7YS5vU2Nyb2xsLmlCYXJXaWR0aD1xLl9fYnJvd3Nlci5iYXJXaWR0aH0KZnVuY3Rpb24gbWIoYSxiLGMsZCxlLGgpe3ZhciBnPSExO2lmKGMhPT1wKXt2YXIgaz1jO2c9ITB9Zm9yKDtkIT09ZTspYS5oYXNPd25Qcm9wZXJ0eShkKSYmKGs9Zz9iKGssYVtkXSxkLGEpOmFbZF0sZz0hMCxkKz1oKTtyZXR1cm4ga31mdW5jdGlvbiBJYShhLGIpe3ZhciBjPXEuZGVmYXVsdHMuY29sdW1uLGQ9YS5hb0NvbHVtbnMubGVuZ3RoO2M9Zi5leHRlbmQoe30scS5tb2RlbHMub0NvbHVtbixjLHtuVGg6Yj9iOnkuY3JlYXRlRWxlbWVudCgidGgiKSxzVGl0bGU6Yy5zVGl0bGU/Yy5zVGl0bGU6Yj9iLmlubmVySFRNTDoiIixhRGF0YVNvcnQ6Yy5hRGF0YVNvcnQ/Yy5hRGF0YVNvcnQ6W2RdLG1EYXRhOmMubURhdGE/Yy5tRGF0YTpkLGlkeDpkfSk7YS5hb0NvbHVtbnMucHVzaChjKTtjPWEuYW9QcmVTZWFyY2hDb2xzO2NbZF09Zi5leHRlbmQoe30scS5tb2RlbHMub1NlYXJjaCxjW2RdKTttYShhLGQsZihiKS5kYXRhKCkpfWZ1bmN0aW9uIG1hKGEsYixjKXtiPWEuYW9Db2x1bW5zW2JdOwp2YXIgZD1hLm9DbGFzc2VzLGU9ZihiLm5UaCk7aWYoIWIuc1dpZHRoT3JpZyl7Yi5zV2lkdGhPcmlnPWUuYXR0cigid2lkdGgiKXx8bnVsbDt2YXIgaD0oZS5hdHRyKCJzdHlsZSIpfHwiIikubWF0Y2goL3dpZHRoOlxzKihcZCtbcHhlbSVdKykvKTtoJiYoYi5zV2lkdGhPcmlnPWhbMV0pfWMhPT1wJiZudWxsIT09YyYmKGtiKGMpLEwocS5kZWZhdWx0cy5jb2x1bW4sYywhMCksYy5tRGF0YVByb3A9PT1wfHxjLm1EYXRhfHwoYy5tRGF0YT1jLm1EYXRhUHJvcCksYy5zVHlwZSYmKGIuX3NNYW51YWxUeXBlPWMuc1R5cGUpLGMuY2xhc3NOYW1lJiYhYy5zQ2xhc3MmJihjLnNDbGFzcz1jLmNsYXNzTmFtZSksYy5zQ2xhc3MmJmUuYWRkQ2xhc3MoYy5zQ2xhc3MpLGYuZXh0ZW5kKGIsYyksTShiLGMsInNXaWR0aCIsInNXaWR0aE9yaWciKSxjLmlEYXRhU29ydCE9PXAmJihiLmFEYXRhU29ydD1bYy5pRGF0YVNvcnRdKSxNKGIsYywiYURhdGFTb3J0IikpO3ZhciBnPWIubURhdGEsaz1VKGcpLApsPWIubVJlbmRlcj9VKGIubVJlbmRlcik6bnVsbDtjPWZ1bmN0aW9uKGEpe3JldHVybiJzdHJpbmciPT09dHlwZW9mIGEmJi0xIT09YS5pbmRleE9mKCJAIil9O2IuX2JBdHRyU3JjPWYuaXNQbGFpbk9iamVjdChnKSYmKGMoZy5zb3J0KXx8YyhnLnR5cGUpfHxjKGcuZmlsdGVyKSk7Yi5fc2V0dGVyPW51bGw7Yi5mbkdldERhdGE9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWsoYSxiLHAsYyk7cmV0dXJuIGwmJmI/bChkLGIsYSxjKTpkfTtiLmZuU2V0RGF0YT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIFEoZykoYSxiLGMpfTsibnVtYmVyIiE9PXR5cGVvZiBnJiYoYS5fcm93UmVhZE9iamVjdD0hMCk7YS5vRmVhdHVyZXMuYlNvcnR8fChiLmJTb3J0YWJsZT0hMSxlLmFkZENsYXNzKGQuc1NvcnRhYmxlTm9uZSkpO2E9LTEhPT1mLmluQXJyYXkoImFzYyIsYi5hc1NvcnRpbmcpO2M9LTEhPT1mLmluQXJyYXkoImRlc2MiLGIuYXNTb3J0aW5nKTtiLmJTb3J0YWJsZSYmKGF8fGMpP2EmJiFjPyhiLnNTb3J0aW5nQ2xhc3M9CmQuc1NvcnRhYmxlQXNjLGIuc1NvcnRpbmdDbGFzc0pVST1kLnNTb3J0SlVJQXNjQWxsb3dlZCk6IWEmJmM/KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZURlc2MsYi5zU29ydGluZ0NsYXNzSlVJPWQuc1NvcnRKVUlEZXNjQWxsb3dlZCk6KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZSxiLnNTb3J0aW5nQ2xhc3NKVUk9ZC5zU29ydEpVSSk6KGIuc1NvcnRpbmdDbGFzcz1kLnNTb3J0YWJsZU5vbmUsYi5zU29ydGluZ0NsYXNzSlVJPSIiKX1mdW5jdGlvbiBhYShhKXtpZighMSE9PWEub0ZlYXR1cmVzLmJBdXRvV2lkdGgpe3ZhciBiPWEuYW9Db2x1bW5zO0phKGEpO2Zvcih2YXIgYz0wLGQ9Yi5sZW5ndGg7YzxkO2MrKyliW2NdLm5UaC5zdHlsZS53aWR0aD1iW2NdLnNXaWR0aH1iPWEub1Njcm9sbDsiIj09PWIuc1kmJiIiPT09Yi5zWHx8bmEoYSk7QShhLG51bGwsImNvbHVtbi1zaXppbmciLFthXSl9ZnVuY3Rpb24gYmEoYSxiKXthPW9hKGEsImJWaXNpYmxlIik7cmV0dXJuIm51bWJlciI9PT0KdHlwZW9mIGFbYl0/YVtiXTpudWxsfWZ1bmN0aW9uIGNhKGEsYil7YT1vYShhLCJiVmlzaWJsZSIpO2I9Zi5pbkFycmF5KGIsYSk7cmV0dXJuLTEhPT1iP2I6bnVsbH1mdW5jdGlvbiBXKGEpe3ZhciBiPTA7Zi5lYWNoKGEuYW9Db2x1bW5zLGZ1bmN0aW9uKGEsZCl7ZC5iVmlzaWJsZSYmIm5vbmUiIT09ZihkLm5UaCkuY3NzKCJkaXNwbGF5IikmJmIrK30pO3JldHVybiBifWZ1bmN0aW9uIG9hKGEsYil7dmFyIGM9W107Zi5tYXAoYS5hb0NvbHVtbnMsZnVuY3Rpb24oYSxlKXthW2JdJiZjLnB1c2goZSl9KTtyZXR1cm4gY31mdW5jdGlvbiBLYShhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPWEuYW9EYXRhLGQ9cS5leHQudHlwZS5kZXRlY3QsZSxoLGc7dmFyIGs9MDtmb3IoZT1iLmxlbmd0aDtrPGU7aysrKXt2YXIgZj1iW2tdO3ZhciBuPVtdO2lmKCFmLnNUeXBlJiZmLl9zTWFudWFsVHlwZSlmLnNUeXBlPWYuX3NNYW51YWxUeXBlO2Vsc2UgaWYoIWYuc1R5cGUpe3ZhciBtPTA7Zm9yKGg9CmQubGVuZ3RoO208aDttKyspe3ZhciB3PTA7Zm9yKGc9Yy5sZW5ndGg7dzxnO3crKyl7blt3XT09PXAmJihuW3ddPUkoYSx3LGssInR5cGUiKSk7dmFyIHU9ZFttXShuW3ddLGEpO2lmKCF1JiZtIT09ZC5sZW5ndGgtMSlicmVhaztpZigiaHRtbCI9PT11KWJyZWFrfWlmKHUpe2Yuc1R5cGU9dTticmVha319Zi5zVHlwZXx8KGYuc1R5cGU9InN0cmluZyIpfX19ZnVuY3Rpb24gbmIoYSxiLGMsZCl7dmFyIGUsaCxnLGs9YS5hb0NvbHVtbnM7aWYoYilmb3IoZT1iLmxlbmd0aC0xOzA8PWU7ZS0tKXt2YXIgbD1iW2VdO3ZhciBuPWwudGFyZ2V0cyE9PXA/bC50YXJnZXRzOmwuYVRhcmdldHM7Zi5pc0FycmF5KG4pfHwobj1bbl0pO3ZhciBtPTA7Zm9yKGg9bi5sZW5ndGg7bTxoO20rKylpZigibnVtYmVyIj09PXR5cGVvZiBuW21dJiYwPD1uW21dKXtmb3IoO2subGVuZ3RoPD1uW21dOylJYShhKTtkKG5bbV0sbCl9ZWxzZSBpZigibnVtYmVyIj09PXR5cGVvZiBuW21dJiYwPm5bbV0pZChrLmxlbmd0aCsKblttXSxsKTtlbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIG5bbV0pe3ZhciB3PTA7Zm9yKGc9ay5sZW5ndGg7dzxnO3crKykoIl9hbGwiPT1uW21dfHxmKGtbd10ublRoKS5oYXNDbGFzcyhuW21dKSkmJmQodyxsKX19aWYoYylmb3IoZT0wLGE9Yy5sZW5ndGg7ZTxhO2UrKylkKGUsY1tlXSl9ZnVuY3Rpb24gUihhLGIsYyxkKXt2YXIgZT1hLmFvRGF0YS5sZW5ndGgsaD1mLmV4dGVuZCghMCx7fSxxLm1vZGVscy5vUm93LHtzcmM6Yz8iZG9tIjoiZGF0YSIsaWR4OmV9KTtoLl9hRGF0YT1iO2EuYW9EYXRhLnB1c2goaCk7Zm9yKHZhciBnPWEuYW9Db2x1bW5zLGs9MCxsPWcubGVuZ3RoO2s8bDtrKyspZ1trXS5zVHlwZT1udWxsO2EuYWlEaXNwbGF5TWFzdGVyLnB1c2goZSk7Yj1hLnJvd0lkRm4oYik7YiE9PXAmJihhLmFJZHNbYl09aCk7IWMmJmEub0ZlYXR1cmVzLmJEZWZlclJlbmRlcnx8TGEoYSxlLGMsZCk7cmV0dXJuIGV9ZnVuY3Rpb24gcGEoYSxiKXt2YXIgYztiIGluc3RhbmNlb2YKZnx8KGI9ZihiKSk7cmV0dXJuIGIubWFwKGZ1bmN0aW9uKGIsZSl7Yz1NYShhLGUpO3JldHVybiBSKGEsYy5kYXRhLGUsYy5jZWxscyl9KX1mdW5jdGlvbiBJKGEsYixjLGQpe3ZhciBlPWEuaURyYXcsaD1hLmFvQ29sdW1uc1tjXSxnPWEuYW9EYXRhW2JdLl9hRGF0YSxrPWguc0RlZmF1bHRDb250ZW50LGY9aC5mbkdldERhdGEoZyxkLHtzZXR0aW5nczphLHJvdzpiLGNvbDpjfSk7aWYoZj09PXApcmV0dXJuIGEuaURyYXdFcnJvciE9ZSYmbnVsbD09PWsmJihPKGEsMCwiUmVxdWVzdGVkIHVua25vd24gcGFyYW1ldGVyICIrKCJmdW5jdGlvbiI9PXR5cGVvZiBoLm1EYXRhPyJ7ZnVuY3Rpb259IjoiJyIraC5tRGF0YSsiJyIpKyIgZm9yIHJvdyAiK2IrIiwgY29sdW1uICIrYyw0KSxhLmlEcmF3RXJyb3I9ZSksaztpZigoZj09PWd8fG51bGw9PT1mKSYmbnVsbCE9PWsmJmQhPT1wKWY9aztlbHNlIGlmKCJmdW5jdGlvbiI9PT10eXBlb2YgZilyZXR1cm4gZi5jYWxsKGcpO3JldHVybiBudWxsPT09CmYmJiJkaXNwbGF5Ij09ZD8iIjpmfWZ1bmN0aW9uIG9iKGEsYixjLGQpe2EuYW9Db2x1bW5zW2NdLmZuU2V0RGF0YShhLmFvRGF0YVtiXS5fYURhdGEsZCx7c2V0dGluZ3M6YSxyb3c6Yixjb2w6Y30pfWZ1bmN0aW9uIE5hKGEpe3JldHVybiBmLm1hcChhLm1hdGNoKC8oXFwufFteXC5dKSsvZyl8fFsiIl0sZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvXFxcLi9nLCIuIil9KX1mdW5jdGlvbiBVKGEpe2lmKGYuaXNQbGFpbk9iamVjdChhKSl7dmFyIGI9e307Zi5lYWNoKGEsZnVuY3Rpb24oYSxjKXtjJiYoYlthXT1VKGMpKX0pO3JldHVybiBmdW5jdGlvbihhLGMsaCxnKXt2YXIgZD1iW2NdfHxiLl87cmV0dXJuIGQhPT1wP2QoYSxjLGgsZyk6YX19aWYobnVsbD09PWEpcmV0dXJuIGZ1bmN0aW9uKGEpe3JldHVybiBhfTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpcmV0dXJuIGZ1bmN0aW9uKGIsYyxoLGcpe3JldHVybiBhKGIsYyxoLGcpfTtpZigic3RyaW5nIiE9PXR5cGVvZiBhfHwKLTE9PT1hLmluZGV4T2YoIi4iKSYmLTE9PT1hLmluZGV4T2YoIlsiKSYmLTE9PT1hLmluZGV4T2YoIigiKSlyZXR1cm4gZnVuY3Rpb24oYixjKXtyZXR1cm4gYlthXX07dmFyIGM9ZnVuY3Rpb24oYSxiLGgpe2lmKCIiIT09aCl7dmFyIGQ9TmEoaCk7Zm9yKHZhciBlPTAsbD1kLmxlbmd0aDtlPGw7ZSsrKXtoPWRbZV0ubWF0Y2goZGEpO3ZhciBuPWRbZV0ubWF0Y2goWCk7aWYoaCl7ZFtlXT1kW2VdLnJlcGxhY2UoZGEsIiIpOyIiIT09ZFtlXSYmKGE9YVtkW2VdXSk7bj1bXTtkLnNwbGljZSgwLGUrMSk7ZD1kLmpvaW4oIi4iKTtpZihmLmlzQXJyYXkoYSkpZm9yKGU9MCxsPWEubGVuZ3RoO2U8bDtlKyspbi5wdXNoKGMoYVtlXSxiLGQpKTthPWhbMF0uc3Vic3RyaW5nKDEsaFswXS5sZW5ndGgtMSk7YT0iIj09PWE/bjpuLmpvaW4oYSk7YnJlYWt9ZWxzZSBpZihuKXtkW2VdPWRbZV0ucmVwbGFjZShYLCIiKTthPWFbZFtlXV0oKTtjb250aW51ZX1pZihudWxsPT09YXx8YVtkW2VdXT09PQpwKXJldHVybiBwO2E9YVtkW2VdXX19cmV0dXJuIGF9O3JldHVybiBmdW5jdGlvbihiLGUpe3JldHVybiBjKGIsZSxhKX19ZnVuY3Rpb24gUShhKXtpZihmLmlzUGxhaW5PYmplY3QoYSkpcmV0dXJuIFEoYS5fKTtpZihudWxsPT09YSlyZXR1cm4gZnVuY3Rpb24oKXt9O2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlyZXR1cm4gZnVuY3Rpb24oYixkLGUpe2EoYiwic2V0IixkLGUpfTtpZigic3RyaW5nIiE9PXR5cGVvZiBhfHwtMT09PWEuaW5kZXhPZigiLiIpJiYtMT09PWEuaW5kZXhPZigiWyIpJiYtMT09PWEuaW5kZXhPZigiKCIpKXJldHVybiBmdW5jdGlvbihiLGQpe2JbYV09ZH07dmFyIGI9ZnVuY3Rpb24oYSxkLGUpe2U9TmEoZSk7dmFyIGM9ZVtlLmxlbmd0aC0xXTtmb3IodmFyIGcsayxsPTAsbj1lLmxlbmd0aC0xO2w8bjtsKyspe2c9ZVtsXS5tYXRjaChkYSk7az1lW2xdLm1hdGNoKFgpO2lmKGcpe2VbbF09ZVtsXS5yZXBsYWNlKGRhLCIiKTthW2VbbF1dPVtdO2M9ZS5zbGljZSgpOwpjLnNwbGljZSgwLGwrMSk7Zz1jLmpvaW4oIi4iKTtpZihmLmlzQXJyYXkoZCkpZm9yKGs9MCxuPWQubGVuZ3RoO2s8bjtrKyspYz17fSxiKGMsZFtrXSxnKSxhW2VbbF1dLnB1c2goYyk7ZWxzZSBhW2VbbF1dPWQ7cmV0dXJufWsmJihlW2xdPWVbbF0ucmVwbGFjZShYLCIiKSxhPWFbZVtsXV0oZCkpO2lmKG51bGw9PT1hW2VbbF1dfHxhW2VbbF1dPT09cClhW2VbbF1dPXt9O2E9YVtlW2xdXX1pZihjLm1hdGNoKFgpKWFbYy5yZXBsYWNlKFgsIiIpXShkKTtlbHNlIGFbYy5yZXBsYWNlKGRhLCIiKV09ZH07cmV0dXJuIGZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIoYyxkLGEpfX1mdW5jdGlvbiBPYShhKXtyZXR1cm4gSihhLmFvRGF0YSwiX2FEYXRhIil9ZnVuY3Rpb24gcWEoYSl7YS5hb0RhdGEubGVuZ3RoPTA7YS5haURpc3BsYXlNYXN0ZXIubGVuZ3RoPTA7YS5haURpc3BsYXkubGVuZ3RoPTA7YS5hSWRzPXt9fWZ1bmN0aW9uIHJhKGEsYixjKXtmb3IodmFyIGQ9LTEsZT0wLGg9YS5sZW5ndGg7ZTwKaDtlKyspYVtlXT09Yj9kPWU6YVtlXT5iJiZhW2VdLS07IC0xIT1kJiZjPT09cCYmYS5zcGxpY2UoZCwxKX1mdW5jdGlvbiBlYShhLGIsYyxkKXt2YXIgZT1hLmFvRGF0YVtiXSxoLGc9ZnVuY3Rpb24oYyxkKXtmb3IoO2MuY2hpbGROb2Rlcy5sZW5ndGg7KWMucmVtb3ZlQ2hpbGQoYy5maXJzdENoaWxkKTtjLmlubmVySFRNTD1JKGEsYixkLCJkaXNwbGF5Iil9O2lmKCJkb20iIT09YyYmKGMmJiJhdXRvIiE9PWN8fCJkb20iIT09ZS5zcmMpKXt2YXIgaz1lLmFuQ2VsbHM7aWYoaylpZihkIT09cClnKGtbZF0sZCk7ZWxzZSBmb3IoYz0wLGg9ay5sZW5ndGg7YzxoO2MrKylnKGtbY10sYyl9ZWxzZSBlLl9hRGF0YT1NYShhLGUsZCxkPT09cD9wOmUuX2FEYXRhKS5kYXRhO2UuX2FTb3J0RGF0YT1udWxsO2UuX2FGaWx0ZXJEYXRhPW51bGw7Zz1hLmFvQ29sdW1ucztpZihkIT09cClnW2RdLnNUeXBlPW51bGw7ZWxzZXtjPTA7Zm9yKGg9Zy5sZW5ndGg7YzxoO2MrKylnW2NdLnNUeXBlPW51bGw7ClBhKGEsZSl9fWZ1bmN0aW9uIE1hKGEsYixjLGQpe3ZhciBlPVtdLGg9Yi5maXJzdENoaWxkLGcsaz0wLGwsbj1hLmFvQ29sdW1ucyxtPWEuX3Jvd1JlYWRPYmplY3Q7ZD1kIT09cD9kOm0/e306W107dmFyIHc9ZnVuY3Rpb24oYSxiKXtpZigic3RyaW5nIj09PXR5cGVvZiBhKXt2YXIgYz1hLmluZGV4T2YoIkAiKTstMSE9PWMmJihjPWEuc3Vic3RyaW5nKGMrMSksUShhKShkLGIuZ2V0QXR0cmlidXRlKGMpKSl9fSx1PWZ1bmN0aW9uKGEpe2lmKGM9PT1wfHxjPT09aylnPW5ba10sbD1mLnRyaW0oYS5pbm5lckhUTUwpLGcmJmcuX2JBdHRyU3JjPyhRKGcubURhdGEuXykoZCxsKSx3KGcubURhdGEuc29ydCxhKSx3KGcubURhdGEudHlwZSxhKSx3KGcubURhdGEuZmlsdGVyLGEpKTptPyhnLl9zZXR0ZXJ8fChnLl9zZXR0ZXI9UShnLm1EYXRhKSksZy5fc2V0dGVyKGQsbCkpOmRba109bDtrKyt9O2lmKGgpZm9yKDtoOyl7dmFyIHE9aC5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpO2lmKCJURCI9PQpxfHwiVEgiPT1xKXUoaCksZS5wdXNoKGgpO2g9aC5uZXh0U2libGluZ31lbHNlIGZvcihlPWIuYW5DZWxscyxoPTAscT1lLmxlbmd0aDtoPHE7aCsrKXUoZVtoXSk7KGI9Yi5maXJzdENoaWxkP2I6Yi5uVHIpJiYoYj1iLmdldEF0dHJpYnV0ZSgiaWQiKSkmJlEoYS5yb3dJZCkoZCxiKTtyZXR1cm57ZGF0YTpkLGNlbGxzOmV9fWZ1bmN0aW9uIExhKGEsYixjLGQpe3ZhciBlPWEuYW9EYXRhW2JdLGg9ZS5fYURhdGEsZz1bXSxrLGw7aWYobnVsbD09PWUublRyKXt2YXIgbj1jfHx5LmNyZWF0ZUVsZW1lbnQoInRyIik7ZS5uVHI9bjtlLmFuQ2VsbHM9ZztuLl9EVF9Sb3dJbmRleD1iO1BhKGEsZSk7dmFyIG09MDtmb3Ioaz1hLmFvQ29sdW1ucy5sZW5ndGg7bTxrO20rKyl7dmFyIHc9YS5hb0NvbHVtbnNbbV07dmFyIHA9KGw9Yz8hMTohMCk/eS5jcmVhdGVFbGVtZW50KHcuc0NlbGxUeXBlKTpkW21dO3AuX0RUX0NlbGxJbmRleD17cm93OmIsY29sdW1uOm19O2cucHVzaChwKTtpZihsfHwKIShjJiYhdy5tUmVuZGVyJiZ3Lm1EYXRhPT09bXx8Zi5pc1BsYWluT2JqZWN0KHcubURhdGEpJiZ3Lm1EYXRhLl89PT1tKyIuZGlzcGxheSIpKXAuaW5uZXJIVE1MPUkoYSxiLG0sImRpc3BsYXkiKTt3LnNDbGFzcyYmKHAuY2xhc3NOYW1lKz0iICIrdy5zQ2xhc3MpO3cuYlZpc2libGUmJiFjP24uYXBwZW5kQ2hpbGQocCk6IXcuYlZpc2libGUmJmMmJnAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChwKTt3LmZuQ3JlYXRlZENlbGwmJncuZm5DcmVhdGVkQ2VsbC5jYWxsKGEub0luc3RhbmNlLHAsSShhLGIsbSksaCxiLG0pfUEoYSwiYW9Sb3dDcmVhdGVkQ2FsbGJhY2siLG51bGwsW24saCxiLGddKX1lLm5Uci5zZXRBdHRyaWJ1dGUoInJvbGUiLCJyb3ciKX1mdW5jdGlvbiBQYShhLGIpe3ZhciBjPWIublRyLGQ9Yi5fYURhdGE7aWYoYyl7aWYoYT1hLnJvd0lkRm4oZCkpYy5pZD1hO2QuRFRfUm93Q2xhc3MmJihhPWQuRFRfUm93Q2xhc3Muc3BsaXQoIiAiKSxiLl9fcm93Yz1iLl9fcm93Yz8KdGEoYi5fX3Jvd2MuY29uY2F0KGEpKTphLGYoYykucmVtb3ZlQ2xhc3MoYi5fX3Jvd2Muam9pbigiICIpKS5hZGRDbGFzcyhkLkRUX1Jvd0NsYXNzKSk7ZC5EVF9Sb3dBdHRyJiZmKGMpLmF0dHIoZC5EVF9Sb3dBdHRyKTtkLkRUX1Jvd0RhdGEmJmYoYykuZGF0YShkLkRUX1Jvd0RhdGEpfX1mdW5jdGlvbiBwYihhKXt2YXIgYixjLGQ9YS5uVEhlYWQsZT1hLm5URm9vdCxoPTA9PT1mKCJ0aCwgdGQiLGQpLmxlbmd0aCxnPWEub0NsYXNzZXMsaz1hLmFvQ29sdW1ucztoJiYoYz1mKCI8dHIvPiIpLmFwcGVuZFRvKGQpKTt2YXIgbD0wO2ZvcihiPWsubGVuZ3RoO2w8YjtsKyspe3ZhciBuPWtbbF07dmFyIG09ZihuLm5UaCkuYWRkQ2xhc3Mobi5zQ2xhc3MpO2gmJm0uYXBwZW5kVG8oYyk7YS5vRmVhdHVyZXMuYlNvcnQmJihtLmFkZENsYXNzKG4uc1NvcnRpbmdDbGFzcyksITEhPT1uLmJTb3J0YWJsZSYmKG0uYXR0cigidGFiaW5kZXgiLGEuaVRhYkluZGV4KS5hdHRyKCJhcmlhLWNvbnRyb2xzIiwKYS5zVGFibGVJZCksUWEoYSxuLm5UaCxsKSkpO24uc1RpdGxlIT1tWzBdLmlubmVySFRNTCYmbS5odG1sKG4uc1RpdGxlKTtSYShhLCJoZWFkZXIiKShhLG0sbixnKX1oJiZmYShhLmFvSGVhZGVyLGQpO2YoZCkuZmluZCgiPnRyIikuYXR0cigicm9sZSIsInJvdyIpO2YoZCkuZmluZCgiPnRyPnRoLCA+dHI+dGQiKS5hZGRDbGFzcyhnLnNIZWFkZXJUSCk7ZihlKS5maW5kKCI+dHI+dGgsID50cj50ZCIpLmFkZENsYXNzKGcuc0Zvb3RlclRIKTtpZihudWxsIT09ZSlmb3IoYT1hLmFvRm9vdGVyWzBdLGw9MCxiPWEubGVuZ3RoO2w8YjtsKyspbj1rW2xdLG4ublRmPWFbbF0uY2VsbCxuLnNDbGFzcyYmZihuLm5UZikuYWRkQ2xhc3Mobi5zQ2xhc3MpfWZ1bmN0aW9uIGhhKGEsYixjKXt2YXIgZCxlLGg9W10sZz1bXSxrPWEuYW9Db2x1bW5zLmxlbmd0aDtpZihiKXtjPT09cCYmKGM9ITEpO3ZhciBsPTA7Zm9yKGQ9Yi5sZW5ndGg7bDxkO2wrKyl7aFtsXT1iW2xdLnNsaWNlKCk7aFtsXS5uVHI9CmJbbF0ublRyO2ZvcihlPWstMTswPD1lO2UtLSlhLmFvQ29sdW1uc1tlXS5iVmlzaWJsZXx8Y3x8aFtsXS5zcGxpY2UoZSwxKTtnLnB1c2goW10pfWw9MDtmb3IoZD1oLmxlbmd0aDtsPGQ7bCsrKXtpZihhPWhbbF0ublRyKWZvcig7ZT1hLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoZSk7ZT0wO2ZvcihiPWhbbF0ubGVuZ3RoO2U8YjtlKyspe3ZhciBuPWs9MTtpZihnW2xdW2VdPT09cCl7YS5hcHBlbmRDaGlsZChoW2xdW2VdLmNlbGwpO2ZvcihnW2xdW2VdPTE7aFtsK2tdIT09cCYmaFtsXVtlXS5jZWxsPT1oW2wra11bZV0uY2VsbDspZ1tsK2tdW2VdPTEsaysrO2Zvcig7aFtsXVtlK25dIT09cCYmaFtsXVtlXS5jZWxsPT1oW2xdW2Urbl0uY2VsbDspe2ZvcihjPTA7YzxrO2MrKylnW2wrY11bZStuXT0xO24rK31mKGhbbF1bZV0uY2VsbCkuYXR0cigicm93c3BhbiIsaykuYXR0cigiY29sc3BhbiIsbil9fX19fWZ1bmN0aW9uIFMoYSl7dmFyIGI9QShhLCJhb1ByZURyYXdDYWxsYmFjayIsCiJwcmVEcmF3IixbYV0pO2lmKC0xIT09Zi5pbkFycmF5KCExLGIpKUsoYSwhMSk7ZWxzZXtiPVtdO3ZhciBjPTAsZD1hLmFzU3RyaXBlQ2xhc3NlcyxlPWQubGVuZ3RoLGg9YS5vTGFuZ3VhZ2UsZz1hLmlJbml0RGlzcGxheVN0YXJ0LGs9InNzcCI9PUQoYSksbD1hLmFpRGlzcGxheTthLmJEcmF3aW5nPSEwO2chPT1wJiYtMSE9PWcmJihhLl9pRGlzcGxheVN0YXJ0PWs/ZzpnPj1hLmZuUmVjb3Jkc0Rpc3BsYXkoKT8wOmcsYS5pSW5pdERpc3BsYXlTdGFydD0tMSk7Zz1hLl9pRGlzcGxheVN0YXJ0O3ZhciBuPWEuZm5EaXNwbGF5RW5kKCk7aWYoYS5iRGVmZXJMb2FkaW5nKWEuYkRlZmVyTG9hZGluZz0hMSxhLmlEcmF3KyssSyhhLCExKTtlbHNlIGlmKCFrKWEuaURyYXcrKztlbHNlIGlmKCFhLmJEZXN0cm95aW5nJiYhcWIoYSkpcmV0dXJuO2lmKDAhPT1sLmxlbmd0aClmb3IoaD1rP2EuYW9EYXRhLmxlbmd0aDpuLGs9az8wOmc7azxoO2srKyl7dmFyIG09bFtrXSx3PWEuYW9EYXRhW21dOwpudWxsPT09dy5uVHImJkxhKGEsbSk7dmFyIHU9dy5uVHI7aWYoMCE9PWUpe3ZhciBxPWRbYyVlXTt3Ll9zUm93U3RyaXBlIT1xJiYoZih1KS5yZW1vdmVDbGFzcyh3Ll9zUm93U3RyaXBlKS5hZGRDbGFzcyhxKSx3Ll9zUm93U3RyaXBlPXEpfUEoYSwiYW9Sb3dDYWxsYmFjayIsbnVsbCxbdSx3Ll9hRGF0YSxjLGssbV0pO2IucHVzaCh1KTtjKyt9ZWxzZSBjPWguc1plcm9SZWNvcmRzLDE9PWEuaURyYXcmJiJhamF4Ij09RChhKT9jPWguc0xvYWRpbmdSZWNvcmRzOmguc0VtcHR5VGFibGUmJjA9PT1hLmZuUmVjb3Jkc1RvdGFsKCkmJihjPWguc0VtcHR5VGFibGUpLGJbMF09ZigiPHRyLz4iLHsiY2xhc3MiOmU/ZFswXToiIn0pLmFwcGVuZChmKCI8dGQgLz4iLHt2YWxpZ246InRvcCIsY29sU3BhbjpXKGEpLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUm93RW1wdHl9KS5odG1sKGMpKVswXTtBKGEsImFvSGVhZGVyQ2FsbGJhY2siLCJoZWFkZXIiLFtmKGEublRIZWFkKS5jaGlsZHJlbigidHIiKVswXSwKT2EoYSksZyxuLGxdKTtBKGEsImFvRm9vdGVyQ2FsbGJhY2siLCJmb290ZXIiLFtmKGEublRGb290KS5jaGlsZHJlbigidHIiKVswXSxPYShhKSxnLG4sbF0pO2Q9ZihhLm5UQm9keSk7ZC5jaGlsZHJlbigpLmRldGFjaCgpO2QuYXBwZW5kKGYoYikpO0EoYSwiYW9EcmF3Q2FsbGJhY2siLCJkcmF3IixbYV0pO2EuYlNvcnRlZD0hMTthLmJGaWx0ZXJlZD0hMTthLmJEcmF3aW5nPSExfX1mdW5jdGlvbiBWKGEsYil7dmFyIGM9YS5vRmVhdHVyZXMsZD1jLmJGaWx0ZXI7Yy5iU29ydCYmcmIoYSk7ZD9pYShhLGEub1ByZXZpb3VzU2VhcmNoKTphLmFpRGlzcGxheT1hLmFpRGlzcGxheU1hc3Rlci5zbGljZSgpOyEwIT09YiYmKGEuX2lEaXNwbGF5U3RhcnQ9MCk7YS5fZHJhd0hvbGQ9YjtTKGEpO2EuX2RyYXdIb2xkPSExfWZ1bmN0aW9uIHNiKGEpe3ZhciBiPWEub0NsYXNzZXMsYz1mKGEublRhYmxlKTtjPWYoIjxkaXYvPiIpLmluc2VydEJlZm9yZShjKTt2YXIgZD1hLm9GZWF0dXJlcyxlPQpmKCI8ZGl2Lz4iLHtpZDphLnNUYWJsZUlkKyJfd3JhcHBlciIsImNsYXNzIjpiLnNXcmFwcGVyKyhhLm5URm9vdD8iIjoiICIrYi5zTm9Gb290ZXIpfSk7YS5uSG9sZGluZz1jWzBdO2EublRhYmxlV3JhcHBlcj1lWzBdO2EublRhYmxlUmVpbnNlcnRCZWZvcmU9YS5uVGFibGUubmV4dFNpYmxpbmc7Zm9yKHZhciBoPWEuc0RvbS5zcGxpdCgiIiksZyxrLGwsbixtLHAsdT0wO3U8aC5sZW5ndGg7dSsrKXtnPW51bGw7az1oW3VdO2lmKCI8Ij09ayl7bD1mKCI8ZGl2Lz4iKVswXTtuPWhbdSsxXTtpZigiJyI9PW58fCciJz09bil7bT0iIjtmb3IocD0yO2hbdStwXSE9bjspbSs9aFt1K3BdLHArKzsiSCI9PW0/bT1iLnNKVUlIZWFkZXI6IkYiPT1tJiYobT1iLnNKVUlGb290ZXIpOy0xIT1tLmluZGV4T2YoIi4iKT8obj1tLnNwbGl0KCIuIiksbC5pZD1uWzBdLnN1YnN0cigxLG5bMF0ubGVuZ3RoLTEpLGwuY2xhc3NOYW1lPW5bMV0pOiIjIj09bS5jaGFyQXQoMCk/bC5pZD1tLnN1YnN0cigxLAptLmxlbmd0aC0xKTpsLmNsYXNzTmFtZT1tO3UrPXB9ZS5hcHBlbmQobCk7ZT1mKGwpfWVsc2UgaWYoIj4iPT1rKWU9ZS5wYXJlbnQoKTtlbHNlIGlmKCJsIj09ayYmZC5iUGFnaW5hdGUmJmQuYkxlbmd0aENoYW5nZSlnPXRiKGEpO2Vsc2UgaWYoImYiPT1rJiZkLmJGaWx0ZXIpZz11YihhKTtlbHNlIGlmKCJyIj09ayYmZC5iUHJvY2Vzc2luZylnPXZiKGEpO2Vsc2UgaWYoInQiPT1rKWc9d2IoYSk7ZWxzZSBpZigiaSI9PWsmJmQuYkluZm8pZz14YihhKTtlbHNlIGlmKCJwIj09ayYmZC5iUGFnaW5hdGUpZz15YihhKTtlbHNlIGlmKDAhPT1xLmV4dC5mZWF0dXJlLmxlbmd0aClmb3IobD1xLmV4dC5mZWF0dXJlLHA9MCxuPWwubGVuZ3RoO3A8bjtwKyspaWYoaz09bFtwXS5jRmVhdHVyZSl7Zz1sW3BdLmZuSW5pdChhKTticmVha31nJiYobD1hLmFhbkZlYXR1cmVzLGxba118fChsW2tdPVtdKSxsW2tdLnB1c2goZyksZS5hcHBlbmQoZykpfWMucmVwbGFjZVdpdGgoZSk7YS5uSG9sZGluZz0KbnVsbH1mdW5jdGlvbiBmYShhLGIpe2I9ZihiKS5jaGlsZHJlbigidHIiKTt2YXIgYyxkLGU7YS5zcGxpY2UoMCxhLmxlbmd0aCk7dmFyIGg9MDtmb3IoZT1iLmxlbmd0aDtoPGU7aCsrKWEucHVzaChbXSk7aD0wO2ZvcihlPWIubGVuZ3RoO2g8ZTtoKyspe3ZhciBnPWJbaF07Zm9yKGM9Zy5maXJzdENoaWxkO2M7KXtpZigiVEQiPT1jLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCl8fCJUSCI9PWMubm9kZU5hbWUudG9VcHBlckNhc2UoKSl7dmFyIGs9MSpjLmdldEF0dHJpYnV0ZSgiY29sc3BhbiIpO3ZhciBsPTEqYy5nZXRBdHRyaWJ1dGUoInJvd3NwYW4iKTtrPWsmJjAhPT1rJiYxIT09az9rOjE7bD1sJiYwIT09bCYmMSE9PWw/bDoxO3ZhciBuPTA7Zm9yKGQ9YVtoXTtkW25dOyluKys7dmFyIG09bjt2YXIgcD0xPT09az8hMDohMTtmb3IoZD0wO2Q8aztkKyspZm9yKG49MDtuPGw7bisrKWFbaCtuXVttK2RdPXtjZWxsOmMsdW5pcXVlOnB9LGFbaCtuXS5uVHI9Z31jPWMubmV4dFNpYmxpbmd9fX0KZnVuY3Rpb24gdWEoYSxiLGMpe3ZhciBkPVtdO2N8fChjPWEuYW9IZWFkZXIsYiYmKGM9W10sZmEoYyxiKSkpO2I9MDtmb3IodmFyIGU9Yy5sZW5ndGg7YjxlO2IrKylmb3IodmFyIGg9MCxnPWNbYl0ubGVuZ3RoO2g8ZztoKyspIWNbYl1baF0udW5pcXVlfHxkW2hdJiZhLmJTb3J0Q2VsbHNUb3B8fChkW2hdPWNbYl1baF0uY2VsbCk7cmV0dXJuIGR9ZnVuY3Rpb24gdmEoYSxiLGMpe0EoYSwiYW9TZXJ2ZXJQYXJhbXMiLCJzZXJ2ZXJQYXJhbXMiLFtiXSk7aWYoYiYmZi5pc0FycmF5KGIpKXt2YXIgZD17fSxlPS8oLio/KVxbXF0kLztmLmVhY2goYixmdW5jdGlvbihhLGIpeyhhPWIubmFtZS5tYXRjaChlKSk/KGE9YVswXSxkW2FdfHwoZFthXT1bXSksZFthXS5wdXNoKGIudmFsdWUpKTpkW2IubmFtZV09Yi52YWx1ZX0pO2I9ZH12YXIgaD1hLmFqYXgsZz1hLm9JbnN0YW5jZSxrPWZ1bmN0aW9uKGIpe0EoYSxudWxsLCJ4aHIiLFthLGIsYS5qcVhIUl0pO2MoYil9O2lmKGYuaXNQbGFpbk9iamVjdChoKSYmCmguZGF0YSl7dmFyIGw9aC5kYXRhO3ZhciBuPSJmdW5jdGlvbiI9PT10eXBlb2YgbD9sKGIsYSk6bDtiPSJmdW5jdGlvbiI9PT10eXBlb2YgbCYmbj9uOmYuZXh0ZW5kKCEwLGIsbik7ZGVsZXRlIGguZGF0YX1uPXtkYXRhOmIsc3VjY2VzczpmdW5jdGlvbihiKXt2YXIgYz1iLmVycm9yfHxiLnNFcnJvcjtjJiZPKGEsMCxjKTthLmpzb249YjtrKGIpfSxkYXRhVHlwZToianNvbiIsY2FjaGU6ITEsdHlwZTphLnNTZXJ2ZXJNZXRob2QsZXJyb3I6ZnVuY3Rpb24oYixjLGQpe2Q9QShhLG51bGwsInhociIsW2EsbnVsbCxhLmpxWEhSXSk7LTE9PT1mLmluQXJyYXkoITAsZCkmJigicGFyc2VyZXJyb3IiPT1jP08oYSwwLCJJbnZhbGlkIEpTT04gcmVzcG9uc2UiLDEpOjQ9PT1iLnJlYWR5U3RhdGUmJk8oYSwwLCJBamF4IGVycm9yIiw3KSk7SyhhLCExKX19O2Eub0FqYXhEYXRhPWI7QShhLG51bGwsInByZVhociIsW2EsYl0pO2EuZm5TZXJ2ZXJEYXRhP2EuZm5TZXJ2ZXJEYXRhLmNhbGwoZywKYS5zQWpheFNvdXJjZSxmLm1hcChiLGZ1bmN0aW9uKGEsYil7cmV0dXJue25hbWU6Yix2YWx1ZTphfX0pLGssYSk6YS5zQWpheFNvdXJjZXx8InN0cmluZyI9PT10eXBlb2YgaD9hLmpxWEhSPWYuYWpheChmLmV4dGVuZChuLHt1cmw6aHx8YS5zQWpheFNvdXJjZX0pKToiZnVuY3Rpb24iPT09dHlwZW9mIGg/YS5qcVhIUj1oLmNhbGwoZyxiLGssYSk6KGEuanFYSFI9Zi5hamF4KGYuZXh0ZW5kKG4saCkpLGguZGF0YT1sKX1mdW5jdGlvbiBxYihhKXtyZXR1cm4gYS5iQWpheERhdGFHZXQ/KGEuaURyYXcrKyxLKGEsITApLHZhKGEsemIoYSksZnVuY3Rpb24oYil7QWIoYSxiKX0pLCExKTohMH1mdW5jdGlvbiB6YihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPWIubGVuZ3RoLGQ9YS5vRmVhdHVyZXMsZT1hLm9QcmV2aW91c1NlYXJjaCxoPWEuYW9QcmVTZWFyY2hDb2xzLGc9W10saz1ZKGEpO3ZhciBsPWEuX2lEaXNwbGF5U3RhcnQ7dmFyIG49ITEhPT1kLmJQYWdpbmF0ZT9hLl9pRGlzcGxheUxlbmd0aDoKLTE7dmFyIG09ZnVuY3Rpb24oYSxiKXtnLnB1c2goe25hbWU6YSx2YWx1ZTpifSl9O20oInNFY2hvIixhLmlEcmF3KTttKCJpQ29sdW1ucyIsYyk7bSgic0NvbHVtbnMiLEooYiwic05hbWUiKS5qb2luKCIsIikpO20oImlEaXNwbGF5U3RhcnQiLGwpO20oImlEaXNwbGF5TGVuZ3RoIixuKTt2YXIgcD17ZHJhdzphLmlEcmF3LGNvbHVtbnM6W10sb3JkZXI6W10sc3RhcnQ6bCxsZW5ndGg6bixzZWFyY2g6e3ZhbHVlOmUuc1NlYXJjaCxyZWdleDplLmJSZWdleH19O2ZvcihsPTA7bDxjO2wrKyl7dmFyIHU9YltsXTt2YXIgc2E9aFtsXTtuPSJmdW5jdGlvbiI9PXR5cGVvZiB1Lm1EYXRhPyJmdW5jdGlvbiI6dS5tRGF0YTtwLmNvbHVtbnMucHVzaCh7ZGF0YTpuLG5hbWU6dS5zTmFtZSxzZWFyY2hhYmxlOnUuYlNlYXJjaGFibGUsb3JkZXJhYmxlOnUuYlNvcnRhYmxlLHNlYXJjaDp7dmFsdWU6c2Euc1NlYXJjaCxyZWdleDpzYS5iUmVnZXh9fSk7bSgibURhdGFQcm9wXyIrbCxuKTtkLmJGaWx0ZXImJgoobSgic1NlYXJjaF8iK2wsc2Euc1NlYXJjaCksbSgiYlJlZ2V4XyIrbCxzYS5iUmVnZXgpLG0oImJTZWFyY2hhYmxlXyIrbCx1LmJTZWFyY2hhYmxlKSk7ZC5iU29ydCYmbSgiYlNvcnRhYmxlXyIrbCx1LmJTb3J0YWJsZSl9ZC5iRmlsdGVyJiYobSgic1NlYXJjaCIsZS5zU2VhcmNoKSxtKCJiUmVnZXgiLGUuYlJlZ2V4KSk7ZC5iU29ydCYmKGYuZWFjaChrLGZ1bmN0aW9uKGEsYil7cC5vcmRlci5wdXNoKHtjb2x1bW46Yi5jb2wsZGlyOmIuZGlyfSk7bSgiaVNvcnRDb2xfIithLGIuY29sKTttKCJzU29ydERpcl8iK2EsYi5kaXIpfSksbSgiaVNvcnRpbmdDb2xzIixrLmxlbmd0aCkpO2I9cS5leHQubGVnYWN5LmFqYXg7cmV0dXJuIG51bGw9PT1iP2Euc0FqYXhTb3VyY2U/ZzpwOmI/ZzpwfWZ1bmN0aW9uIEFiKGEsYil7dmFyIGM9ZnVuY3Rpb24oYSxjKXtyZXR1cm4gYlthXSE9PXA/YlthXTpiW2NdfSxkPXdhKGEsYiksZT1jKCJzRWNobyIsImRyYXciKSxoPWMoImlUb3RhbFJlY29yZHMiLAoicmVjb3Jkc1RvdGFsIik7Yz1jKCJpVG90YWxEaXNwbGF5UmVjb3JkcyIsInJlY29yZHNGaWx0ZXJlZCIpO2lmKGUpe2lmKDEqZTxhLmlEcmF3KXJldHVybjthLmlEcmF3PTEqZX1xYShhKTthLl9pUmVjb3Jkc1RvdGFsPXBhcnNlSW50KGgsMTApO2EuX2lSZWNvcmRzRGlzcGxheT1wYXJzZUludChjLDEwKTtlPTA7Zm9yKGg9ZC5sZW5ndGg7ZTxoO2UrKylSKGEsZFtlXSk7YS5haURpc3BsYXk9YS5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTthLmJBamF4RGF0YUdldD0hMTtTKGEpO2EuX2JJbml0Q29tcGxldGV8fHhhKGEsYik7YS5iQWpheERhdGFHZXQ9ITA7SyhhLCExKX1mdW5jdGlvbiB3YShhLGIpe2E9Zi5pc1BsYWluT2JqZWN0KGEuYWpheCkmJmEuYWpheC5kYXRhU3JjIT09cD9hLmFqYXguZGF0YVNyYzphLnNBamF4RGF0YVByb3A7cmV0dXJuImRhdGEiPT09YT9iLmFhRGF0YXx8YlthXToiIiE9PWE/VShhKShiKTpifWZ1bmN0aW9uIHViKGEpe3ZhciBiPWEub0NsYXNzZXMsYz0KYS5zVGFibGVJZCxkPWEub0xhbmd1YWdlLGU9YS5vUHJldmlvdXNTZWFyY2gsaD1hLmFhbkZlYXR1cmVzLGc9JzxpbnB1dCB0eXBlPSJzZWFyY2giIGNsYXNzPSInK2Iuc0ZpbHRlcklucHV0KyciLz4nLGs9ZC5zU2VhcmNoO2s9ay5tYXRjaCgvX0lOUFVUXy8pP2sucmVwbGFjZSgiX0lOUFVUXyIsZyk6aytnO2I9ZigiPGRpdi8+Iix7aWQ6aC5mP251bGw6YysiX2ZpbHRlciIsImNsYXNzIjpiLnNGaWx0ZXJ9KS5hcHBlbmQoZigiPGxhYmVsLz4iKS5hcHBlbmQoaykpO2g9ZnVuY3Rpb24oKXt2YXIgYj10aGlzLnZhbHVlP3RoaXMudmFsdWU6IiI7YiE9ZS5zU2VhcmNoJiYoaWEoYSx7c1NlYXJjaDpiLGJSZWdleDplLmJSZWdleCxiU21hcnQ6ZS5iU21hcnQsYkNhc2VJbnNlbnNpdGl2ZTplLmJDYXNlSW5zZW5zaXRpdmV9KSxhLl9pRGlzcGxheVN0YXJ0PTAsUyhhKSl9O2c9bnVsbCE9PWEuc2VhcmNoRGVsYXk/YS5zZWFyY2hEZWxheToic3NwIj09PUQoYSk/NDAwOjA7dmFyIGw9ZigiaW5wdXQiLApiKS52YWwoZS5zU2VhcmNoKS5hdHRyKCJwbGFjZWhvbGRlciIsZC5zU2VhcmNoUGxhY2Vob2xkZXIpLm9uKCJrZXl1cC5EVCBzZWFyY2guRFQgaW5wdXQuRFQgcGFzdGUuRFQgY3V0LkRUIixnP1NhKGgsZyk6aCkub24oImtleXByZXNzLkRUIixmdW5jdGlvbihhKXtpZigxMz09YS5rZXlDb2RlKXJldHVybiExfSkuYXR0cigiYXJpYS1jb250cm9scyIsYyk7ZihhLm5UYWJsZSkub24oInNlYXJjaC5kdC5EVCIsZnVuY3Rpb24oYixjKXtpZihhPT09Yyl0cnl7bFswXSE9PXkuYWN0aXZlRWxlbWVudCYmbC52YWwoZS5zU2VhcmNoKX1jYXRjaCh3KXt9fSk7cmV0dXJuIGJbMF19ZnVuY3Rpb24gaWEoYSxiLGMpe3ZhciBkPWEub1ByZXZpb3VzU2VhcmNoLGU9YS5hb1ByZVNlYXJjaENvbHMsaD1mdW5jdGlvbihhKXtkLnNTZWFyY2g9YS5zU2VhcmNoO2QuYlJlZ2V4PWEuYlJlZ2V4O2QuYlNtYXJ0PWEuYlNtYXJ0O2QuYkNhc2VJbnNlbnNpdGl2ZT1hLmJDYXNlSW5zZW5zaXRpdmV9LGc9ZnVuY3Rpb24oYSl7cmV0dXJuIGEuYkVzY2FwZVJlZ2V4IT09CnA/IWEuYkVzY2FwZVJlZ2V4OmEuYlJlZ2V4fTtLYShhKTtpZigic3NwIiE9RChhKSl7QmIoYSxiLnNTZWFyY2gsYyxnKGIpLGIuYlNtYXJ0LGIuYkNhc2VJbnNlbnNpdGl2ZSk7aChiKTtmb3IoYj0wO2I8ZS5sZW5ndGg7YisrKUNiKGEsZVtiXS5zU2VhcmNoLGIsZyhlW2JdKSxlW2JdLmJTbWFydCxlW2JdLmJDYXNlSW5zZW5zaXRpdmUpO0RiKGEpfWVsc2UgaChiKTthLmJGaWx0ZXJlZD0hMDtBKGEsbnVsbCwic2VhcmNoIixbYV0pfWZ1bmN0aW9uIERiKGEpe2Zvcih2YXIgYj1xLmV4dC5zZWFyY2gsYz1hLmFpRGlzcGxheSxkLGUsaD0wLGc9Yi5sZW5ndGg7aDxnO2grKyl7Zm9yKHZhciBrPVtdLGw9MCxuPWMubGVuZ3RoO2w8bjtsKyspZT1jW2xdLGQ9YS5hb0RhdGFbZV0sYltoXShhLGQuX2FGaWx0ZXJEYXRhLGUsZC5fYURhdGEsbCkmJmsucHVzaChlKTtjLmxlbmd0aD0wO2YubWVyZ2UoYyxrKX19ZnVuY3Rpb24gQ2IoYSxiLGMsZCxlLGgpe2lmKCIiIT09Yil7dmFyIGc9W10saz0KYS5haURpc3BsYXk7ZD1UYShiLGQsZSxoKTtmb3IoZT0wO2U8ay5sZW5ndGg7ZSsrKWI9YS5hb0RhdGFba1tlXV0uX2FGaWx0ZXJEYXRhW2NdLGQudGVzdChiKSYmZy5wdXNoKGtbZV0pO2EuYWlEaXNwbGF5PWd9fWZ1bmN0aW9uIEJiKGEsYixjLGQsZSxoKXtlPVRhKGIsZCxlLGgpO3ZhciBnPWEub1ByZXZpb3VzU2VhcmNoLnNTZWFyY2gsaz1hLmFpRGlzcGxheU1hc3RlcjtoPVtdOzAhPT1xLmV4dC5zZWFyY2gubGVuZ3RoJiYoYz0hMCk7dmFyIGY9RWIoYSk7aWYoMD49Yi5sZW5ndGgpYS5haURpc3BsYXk9ay5zbGljZSgpO2Vsc2V7aWYoZnx8Y3x8ZHx8Zy5sZW5ndGg+Yi5sZW5ndGh8fDAhPT1iLmluZGV4T2YoZyl8fGEuYlNvcnRlZClhLmFpRGlzcGxheT1rLnNsaWNlKCk7Yj1hLmFpRGlzcGxheTtmb3IoYz0wO2M8Yi5sZW5ndGg7YysrKWUudGVzdChhLmFvRGF0YVtiW2NdXS5fc0ZpbHRlclJvdykmJmgucHVzaChiW2NdKTthLmFpRGlzcGxheT1ofX1mdW5jdGlvbiBUYShhLGIsCmMsZCl7YT1iP2E6VWEoYSk7YyYmKGE9Il4oPz0uKj8iK2YubWFwKGEubWF0Y2goLyJbXiJdKyJ8W14gXSsvZyl8fFsiIl0sZnVuY3Rpb24oYSl7aWYoJyInPT09YS5jaGFyQXQoMCkpe3ZhciBiPWEubWF0Y2goL14iKC4qKSIkLyk7YT1iP2JbMV06YX1yZXR1cm4gYS5yZXBsYWNlKCciJywiIil9KS5qb2luKCIpKD89Lio/IikrIikuKiQiKTtyZXR1cm4gbmV3IFJlZ0V4cChhLGQ/ImkiOiIiKX1mdW5jdGlvbiBFYihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjLGQsZT1xLmV4dC50eXBlLnNlYXJjaDt2YXIgaD0hMTt2YXIgZz0wO2ZvcihjPWEuYW9EYXRhLmxlbmd0aDtnPGM7ZysrKXt2YXIgaz1hLmFvRGF0YVtnXTtpZighay5fYUZpbHRlckRhdGEpe3ZhciBmPVtdO3ZhciBuPTA7Zm9yKGQ9Yi5sZW5ndGg7bjxkO24rKyl7aD1iW25dO2lmKGguYlNlYXJjaGFibGUpe3ZhciBtPUkoYSxnLG4sImZpbHRlciIpO2VbaC5zVHlwZV0mJihtPWVbaC5zVHlwZV0obSkpO251bGw9PT1tJiYobT0iIik7CiJzdHJpbmciIT09dHlwZW9mIG0mJm0udG9TdHJpbmcmJihtPW0udG9TdHJpbmcoKSl9ZWxzZSBtPSIiO20uaW5kZXhPZiYmLTEhPT1tLmluZGV4T2YoIiYiKSYmKHlhLmlubmVySFRNTD1tLG09JGI/eWEudGV4dENvbnRlbnQ6eWEuaW5uZXJUZXh0KTttLnJlcGxhY2UmJihtPW0ucmVwbGFjZSgvW1xyXG5cdTIwMjhdL2csIiIpKTtmLnB1c2gobSl9ay5fYUZpbHRlckRhdGE9ZjtrLl9zRmlsdGVyUm93PWYuam9pbigiICAiKTtoPSEwfX1yZXR1cm4gaH1mdW5jdGlvbiBGYihhKXtyZXR1cm57c2VhcmNoOmEuc1NlYXJjaCxzbWFydDphLmJTbWFydCxyZWdleDphLmJSZWdleCxjYXNlSW5zZW5zaXRpdmU6YS5iQ2FzZUluc2Vuc2l0aXZlfX1mdW5jdGlvbiBHYihhKXtyZXR1cm57c1NlYXJjaDphLnNlYXJjaCxiU21hcnQ6YS5zbWFydCxiUmVnZXg6YS5yZWdleCxiQ2FzZUluc2Vuc2l0aXZlOmEuY2FzZUluc2Vuc2l0aXZlfX1mdW5jdGlvbiB4YihhKXt2YXIgYj1hLnNUYWJsZUlkLGM9YS5hYW5GZWF0dXJlcy5pLApkPWYoIjxkaXYvPiIseyJjbGFzcyI6YS5vQ2xhc3Nlcy5zSW5mbyxpZDpjP251bGw6YisiX2luZm8ifSk7Y3x8KGEuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46SGIsc05hbWU6ImluZm9ybWF0aW9uIn0pLGQuYXR0cigicm9sZSIsInN0YXR1cyIpLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpLGYoYS5uVGFibGUpLmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLGIrIl9pbmZvIikpO3JldHVybiBkWzBdfWZ1bmN0aW9uIEhiKGEpe3ZhciBiPWEuYWFuRmVhdHVyZXMuaTtpZigwIT09Yi5sZW5ndGgpe3ZhciBjPWEub0xhbmd1YWdlLGQ9YS5faURpc3BsYXlTdGFydCsxLGU9YS5mbkRpc3BsYXlFbmQoKSxoPWEuZm5SZWNvcmRzVG90YWwoKSxnPWEuZm5SZWNvcmRzRGlzcGxheSgpLGs9Zz9jLnNJbmZvOmMuc0luZm9FbXB0eTtnIT09aCYmKGsrPSIgIitjLnNJbmZvRmlsdGVyZWQpO2srPWMuc0luZm9Qb3N0Rml4O2s9SWIoYSxrKTtjPWMuZm5JbmZvQ2FsbGJhY2s7bnVsbCE9PWMmJihrPWMuY2FsbChhLm9JbnN0YW5jZSwKYSxkLGUsaCxnLGspKTtmKGIpLmh0bWwoayl9fWZ1bmN0aW9uIEliKGEsYil7dmFyIGM9YS5mbkZvcm1hdE51bWJlcixkPWEuX2lEaXNwbGF5U3RhcnQrMSxlPWEuX2lEaXNwbGF5TGVuZ3RoLGg9YS5mblJlY29yZHNEaXNwbGF5KCksZz0tMT09PWU7cmV0dXJuIGIucmVwbGFjZSgvX1NUQVJUXy9nLGMuY2FsbChhLGQpKS5yZXBsYWNlKC9fRU5EXy9nLGMuY2FsbChhLGEuZm5EaXNwbGF5RW5kKCkpKS5yZXBsYWNlKC9fTUFYXy9nLGMuY2FsbChhLGEuZm5SZWNvcmRzVG90YWwoKSkpLnJlcGxhY2UoL19UT1RBTF8vZyxjLmNhbGwoYSxoKSkucmVwbGFjZSgvX1BBR0VfL2csYy5jYWxsKGEsZz8xOk1hdGguY2VpbChkL2UpKSkucmVwbGFjZSgvX1BBR0VTXy9nLGMuY2FsbChhLGc/MTpNYXRoLmNlaWwoaC9lKSkpfWZ1bmN0aW9uIGphKGEpe3ZhciBiPWEuaUluaXREaXNwbGF5U3RhcnQsYz1hLmFvQ29sdW1uczt2YXIgZD1hLm9GZWF0dXJlczt2YXIgZT1hLmJEZWZlckxvYWRpbmc7aWYoYS5iSW5pdGlhbGlzZWQpe3NiKGEpOwpwYihhKTtoYShhLGEuYW9IZWFkZXIpO2hhKGEsYS5hb0Zvb3Rlcik7SyhhLCEwKTtkLmJBdXRvV2lkdGgmJkphKGEpO3ZhciBoPTA7Zm9yKGQ9Yy5sZW5ndGg7aDxkO2grKyl7dmFyIGc9Y1toXTtnLnNXaWR0aCYmKGcublRoLnN0eWxlLndpZHRoPUIoZy5zV2lkdGgpKX1BKGEsbnVsbCwicHJlSW5pdCIsW2FdKTtWKGEpO2M9RChhKTtpZigic3NwIiE9Y3x8ZSkiYWpheCI9PWM/dmEoYSxbXSxmdW5jdGlvbihjKXt2YXIgZD13YShhLGMpO2ZvcihoPTA7aDxkLmxlbmd0aDtoKyspUihhLGRbaF0pO2EuaUluaXREaXNwbGF5U3RhcnQ9YjtWKGEpO0soYSwhMSk7eGEoYSxjKX0sYSk6KEsoYSwhMSkseGEoYSkpfWVsc2Ugc2V0VGltZW91dChmdW5jdGlvbigpe2phKGEpfSwyMDApfWZ1bmN0aW9uIHhhKGEsYil7YS5fYkluaXRDb21wbGV0ZT0hMDsoYnx8YS5vSW5pdC5hYURhdGEpJiZhYShhKTtBKGEsbnVsbCwicGx1Z2luLWluaXQiLFthLGJdKTtBKGEsImFvSW5pdENvbXBsZXRlIiwiaW5pdCIsClthLGJdKX1mdW5jdGlvbiBWYShhLGIpe2I9cGFyc2VJbnQoYiwxMCk7YS5faURpc3BsYXlMZW5ndGg9YjtXYShhKTtBKGEsbnVsbCwibGVuZ3RoIixbYSxiXSl9ZnVuY3Rpb24gdGIoYSl7dmFyIGI9YS5vQ2xhc3NlcyxjPWEuc1RhYmxlSWQsZD1hLmFMZW5ndGhNZW51LGU9Zi5pc0FycmF5KGRbMF0pLGg9ZT9kWzBdOmQ7ZD1lP2RbMV06ZDtlPWYoIjxzZWxlY3QvPiIse25hbWU6YysiX2xlbmd0aCIsImFyaWEtY29udHJvbHMiOmMsImNsYXNzIjpiLnNMZW5ndGhTZWxlY3R9KTtmb3IodmFyIGc9MCxrPWgubGVuZ3RoO2c8aztnKyspZVswXVtnXT1uZXcgT3B0aW9uKCJudW1iZXIiPT09dHlwZW9mIGRbZ10/YS5mbkZvcm1hdE51bWJlcihkW2ddKTpkW2ddLGhbZ10pO3ZhciBsPWYoIjxkaXY+PGxhYmVsLz48L2Rpdj4iKS5hZGRDbGFzcyhiLnNMZW5ndGgpO2EuYWFuRmVhdHVyZXMubHx8KGxbMF0uaWQ9YysiX2xlbmd0aCIpO2wuY2hpbGRyZW4oKS5hcHBlbmQoYS5vTGFuZ3VhZ2Uuc0xlbmd0aE1lbnUucmVwbGFjZSgiX01FTlVfIiwKZVswXS5vdXRlckhUTUwpKTtmKCJzZWxlY3QiLGwpLnZhbChhLl9pRGlzcGxheUxlbmd0aCkub24oImNoYW5nZS5EVCIsZnVuY3Rpb24oYil7VmEoYSxmKHRoaXMpLnZhbCgpKTtTKGEpfSk7ZihhLm5UYWJsZSkub24oImxlbmd0aC5kdC5EVCIsZnVuY3Rpb24oYixjLGQpe2E9PT1jJiZmKCJzZWxlY3QiLGwpLnZhbChkKX0pO3JldHVybiBsWzBdfWZ1bmN0aW9uIHliKGEpe3ZhciBiPWEuc1BhZ2luYXRpb25UeXBlLGM9cS5leHQucGFnZXJbYl0sZD0iZnVuY3Rpb24iPT09dHlwZW9mIGMsZT1mdW5jdGlvbihhKXtTKGEpfTtiPWYoIjxkaXYvPiIpLmFkZENsYXNzKGEub0NsYXNzZXMuc1BhZ2luZytiKVswXTt2YXIgaD1hLmFhbkZlYXR1cmVzO2R8fGMuZm5Jbml0KGEsYixlKTtoLnB8fChiLmlkPWEuc1RhYmxlSWQrIl9wYWdpbmF0ZSIsYS5hb0RyYXdDYWxsYmFjay5wdXNoKHtmbjpmdW5jdGlvbihhKXtpZihkKXt2YXIgYj1hLl9pRGlzcGxheVN0YXJ0LGc9YS5faURpc3BsYXlMZW5ndGgsCmY9YS5mblJlY29yZHNEaXNwbGF5KCksbT0tMT09PWc7Yj1tPzA6TWF0aC5jZWlsKGIvZyk7Zz1tPzE6TWF0aC5jZWlsKGYvZyk7Zj1jKGIsZyk7dmFyIHA7bT0wO2ZvcihwPWgucC5sZW5ndGg7bTxwO20rKylSYShhLCJwYWdlQnV0dG9uIikoYSxoLnBbbV0sbSxmLGIsZyl9ZWxzZSBjLmZuVXBkYXRlKGEsZSl9LHNOYW1lOiJwYWdpbmF0aW9uIn0pKTtyZXR1cm4gYn1mdW5jdGlvbiBYYShhLGIsYyl7dmFyIGQ9YS5faURpc3BsYXlTdGFydCxlPWEuX2lEaXNwbGF5TGVuZ3RoLGg9YS5mblJlY29yZHNEaXNwbGF5KCk7MD09PWh8fC0xPT09ZT9kPTA6Im51bWJlciI9PT10eXBlb2YgYj8oZD1iKmUsZD5oJiYoZD0wKSk6ImZpcnN0Ij09Yj9kPTA6InByZXZpb3VzIj09Yj8oZD0wPD1lP2QtZTowLDA+ZCYmKGQ9MCkpOiJuZXh0Ij09Yj9kK2U8aCYmKGQrPWUpOiJsYXN0Ij09Yj9kPU1hdGguZmxvb3IoKGgtMSkvZSkqZTpPKGEsMCwiVW5rbm93biBwYWdpbmcgYWN0aW9uOiAiK2IsNSk7Yj0KYS5faURpc3BsYXlTdGFydCE9PWQ7YS5faURpc3BsYXlTdGFydD1kO2ImJihBKGEsbnVsbCwicGFnZSIsW2FdKSxjJiZTKGEpKTtyZXR1cm4gYn1mdW5jdGlvbiB2YihhKXtyZXR1cm4gZigiPGRpdi8+Iix7aWQ6YS5hYW5GZWF0dXJlcy5yP251bGw6YS5zVGFibGVJZCsiX3Byb2Nlc3NpbmciLCJjbGFzcyI6YS5vQ2xhc3Nlcy5zUHJvY2Vzc2luZ30pLmh0bWwoYS5vTGFuZ3VhZ2Uuc1Byb2Nlc3NpbmcpLmluc2VydEJlZm9yZShhLm5UYWJsZSlbMF19ZnVuY3Rpb24gSyhhLGIpe2Eub0ZlYXR1cmVzLmJQcm9jZXNzaW5nJiZmKGEuYWFuRmVhdHVyZXMucikuY3NzKCJkaXNwbGF5IixiPyJibG9jayI6Im5vbmUiKTtBKGEsbnVsbCwicHJvY2Vzc2luZyIsW2EsYl0pfWZ1bmN0aW9uIHdiKGEpe3ZhciBiPWYoYS5uVGFibGUpO2IuYXR0cigicm9sZSIsImdyaWQiKTt2YXIgYz1hLm9TY3JvbGw7aWYoIiI9PT1jLnNYJiYiIj09PWMuc1kpcmV0dXJuIGEublRhYmxlO3ZhciBkPWMuc1gsZT1jLnNZLApoPWEub0NsYXNzZXMsZz1iLmNoaWxkcmVuKCJjYXB0aW9uIiksaz1nLmxlbmd0aD9nWzBdLl9jYXB0aW9uU2lkZTpudWxsLGw9ZihiWzBdLmNsb25lTm9kZSghMSkpLG49ZihiWzBdLmNsb25lTm9kZSghMSkpLG09Yi5jaGlsZHJlbigidGZvb3QiKTttLmxlbmd0aHx8KG09bnVsbCk7bD1mKCI8ZGl2Lz4iLHsiY2xhc3MiOmguc1Njcm9sbFdyYXBwZXJ9KS5hcHBlbmQoZigiPGRpdi8+Iix7ImNsYXNzIjpoLnNTY3JvbGxIZWFkfSkuY3NzKHtvdmVyZmxvdzoiaGlkZGVuIixwb3NpdGlvbjoicmVsYXRpdmUiLGJvcmRlcjowLHdpZHRoOmQ/ZD9CKGQpOm51bGw6IjEwMCUifSkuYXBwZW5kKGYoIjxkaXYvPiIseyJjbGFzcyI6aC5zU2Nyb2xsSGVhZElubmVyfSkuY3NzKHsiYm94LXNpemluZyI6ImNvbnRlbnQtYm94Iix3aWR0aDpjLnNYSW5uZXJ8fCIxMDAlIn0pLmFwcGVuZChsLnJlbW92ZUF0dHIoImlkIikuY3NzKCJtYXJnaW4tbGVmdCIsMCkuYXBwZW5kKCJ0b3AiPT09az9nOm51bGwpLmFwcGVuZChiLmNoaWxkcmVuKCJ0aGVhZCIpKSkpKS5hcHBlbmQoZigiPGRpdi8+IiwKeyJjbGFzcyI6aC5zU2Nyb2xsQm9keX0pLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIixvdmVyZmxvdzoiYXV0byIsd2lkdGg6ZD9CKGQpOm51bGx9KS5hcHBlbmQoYikpO20mJmwuYXBwZW5kKGYoIjxkaXYvPiIseyJjbGFzcyI6aC5zU2Nyb2xsRm9vdH0pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiIsYm9yZGVyOjAsd2lkdGg6ZD9kP0IoZCk6bnVsbDoiMTAwJSJ9KS5hcHBlbmQoZigiPGRpdi8+Iix7ImNsYXNzIjpoLnNTY3JvbGxGb290SW5uZXJ9KS5hcHBlbmQobi5yZW1vdmVBdHRyKCJpZCIpLmNzcygibWFyZ2luLWxlZnQiLDApLmFwcGVuZCgiYm90dG9tIj09PWs/ZzpudWxsKS5hcHBlbmQoYi5jaGlsZHJlbigidGZvb3QiKSkpKSk7Yj1sLmNoaWxkcmVuKCk7dmFyIHA9YlswXTtoPWJbMV07dmFyIHU9bT9iWzJdOm51bGw7aWYoZClmKGgpLm9uKCJzY3JvbGwuRFQiLGZ1bmN0aW9uKGEpe2E9dGhpcy5zY3JvbGxMZWZ0O3Auc2Nyb2xsTGVmdD1hO20mJih1LnNjcm9sbExlZnQ9YSl9KTsKZihoKS5jc3MoZSYmYy5iQ29sbGFwc2U/Im1heC1oZWlnaHQiOiJoZWlnaHQiLGUpO2EublNjcm9sbEhlYWQ9cDthLm5TY3JvbGxCb2R5PWg7YS5uU2Nyb2xsRm9vdD11O2EuYW9EcmF3Q2FsbGJhY2sucHVzaCh7Zm46bmEsc05hbWU6InNjcm9sbGluZyJ9KTtyZXR1cm4gbFswXX1mdW5jdGlvbiBuYShhKXt2YXIgYj1hLm9TY3JvbGwsYz1iLnNYLGQ9Yi5zWElubmVyLGU9Yi5zWTtiPWIuaUJhcldpZHRoO3ZhciBoPWYoYS5uU2Nyb2xsSGVhZCksZz1oWzBdLnN0eWxlLGs9aC5jaGlsZHJlbigiZGl2IiksbD1rWzBdLnN0eWxlLG49ay5jaGlsZHJlbigidGFibGUiKTtrPWEublNjcm9sbEJvZHk7dmFyIG09ZihrKSx3PWsuc3R5bGUsdT1mKGEublNjcm9sbEZvb3QpLmNoaWxkcmVuKCJkaXYiKSxxPXUuY2hpbGRyZW4oInRhYmxlIiksdD1mKGEublRIZWFkKSxyPWYoYS5uVGFibGUpLHY9clswXSx6YT12LnN0eWxlLFQ9YS5uVEZvb3Q/ZihhLm5URm9vdCk6bnVsbCxBPWEub0Jyb3dzZXIsCng9QS5iU2Nyb2xsT3ZlcnNpemUsYWM9SihhLmFvQ29sdW1ucywiblRoIiksWWE9W10seT1bXSx6PVtdLEM9W10sRyxIPWZ1bmN0aW9uKGEpe2E9YS5zdHlsZTthLnBhZGRpbmdUb3A9IjAiO2EucGFkZGluZ0JvdHRvbT0iMCI7YS5ib3JkZXJUb3BXaWR0aD0iMCI7YS5ib3JkZXJCb3R0b21XaWR0aD0iMCI7YS5oZWlnaHQ9MH07dmFyIEQ9ay5zY3JvbGxIZWlnaHQ+ay5jbGllbnRIZWlnaHQ7aWYoYS5zY3JvbGxCYXJWaXMhPT1EJiZhLnNjcm9sbEJhclZpcyE9PXApYS5zY3JvbGxCYXJWaXM9RCxhYShhKTtlbHNle2Euc2Nyb2xsQmFyVmlzPUQ7ci5jaGlsZHJlbigidGhlYWQsIHRmb290IikucmVtb3ZlKCk7aWYoVCl7dmFyIEU9VC5jbG9uZSgpLnByZXBlbmRUbyhyKTt2YXIgRj1ULmZpbmQoInRyIik7RT1FLmZpbmQoInRyIil9dmFyIEk9dC5jbG9uZSgpLnByZXBlbmRUbyhyKTt0PXQuZmluZCgidHIiKTtEPUkuZmluZCgidHIiKTtJLmZpbmQoInRoLCB0ZCIpLnJlbW92ZUF0dHIoInRhYmluZGV4Iik7CmN8fCh3LndpZHRoPSIxMDAlIixoWzBdLnN0eWxlLndpZHRoPSIxMDAlIik7Zi5lYWNoKHVhKGEsSSksZnVuY3Rpb24oYixjKXtHPWJhKGEsYik7Yy5zdHlsZS53aWR0aD1hLmFvQ29sdW1uc1tHXS5zV2lkdGh9KTtUJiZOKGZ1bmN0aW9uKGEpe2Euc3R5bGUud2lkdGg9IiJ9LEUpO2g9ci5vdXRlcldpZHRoKCk7IiI9PT1jPyh6YS53aWR0aD0iMTAwJSIseCYmKHIuZmluZCgidGJvZHkiKS5oZWlnaHQoKT5rLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PW0uY3NzKCJvdmVyZmxvdy15IikpJiYoemEud2lkdGg9QihyLm91dGVyV2lkdGgoKS1iKSksaD1yLm91dGVyV2lkdGgoKSk6IiIhPT1kJiYoemEud2lkdGg9QihkKSxoPXIub3V0ZXJXaWR0aCgpKTtOKEgsRCk7TihmdW5jdGlvbihhKXt6LnB1c2goYS5pbm5lckhUTUwpO1lhLnB1c2goQihmKGEpLmNzcygid2lkdGgiKSkpfSxEKTtOKGZ1bmN0aW9uKGEsYil7LTEhPT1mLmluQXJyYXkoYSxhYykmJihhLnN0eWxlLndpZHRoPVlhW2JdKX0sCnQpO2YoRCkuaGVpZ2h0KDApO1QmJihOKEgsRSksTihmdW5jdGlvbihhKXtDLnB1c2goYS5pbm5lckhUTUwpO3kucHVzaChCKGYoYSkuY3NzKCJ3aWR0aCIpKSl9LEUpLE4oZnVuY3Rpb24oYSxiKXthLnN0eWxlLndpZHRoPXlbYl19LEYpLGYoRSkuaGVpZ2h0KDApKTtOKGZ1bmN0aW9uKGEsYil7YS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImRhdGFUYWJsZXNfc2l6aW5nIj4nK3pbYl0rIjwvZGl2PiI7YS5jaGlsZE5vZGVzWzBdLnN0eWxlLmhlaWdodD0iMCI7YS5jaGlsZE5vZGVzWzBdLnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Euc3R5bGUud2lkdGg9WWFbYl19LEQpO1QmJk4oZnVuY3Rpb24oYSxiKXthLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZGF0YVRhYmxlc19zaXppbmciPicrQ1tiXSsiPC9kaXY+IjthLmNoaWxkTm9kZXNbMF0uc3R5bGUuaGVpZ2h0PSIwIjthLmNoaWxkTm9kZXNbMF0uc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiI7YS5zdHlsZS53aWR0aD15W2JdfSxFKTtyLm91dGVyV2lkdGgoKTwKaD8oRj1rLnNjcm9sbEhlaWdodD5rLm9mZnNldEhlaWdodHx8InNjcm9sbCI9PW0uY3NzKCJvdmVyZmxvdy15Iik/aCtiOmgseCYmKGsuc2Nyb2xsSGVpZ2h0Pmsub2Zmc2V0SGVpZ2h0fHwic2Nyb2xsIj09bS5jc3MoIm92ZXJmbG93LXkiKSkmJih6YS53aWR0aD1CKEYtYikpLCIiIT09YyYmIiI9PT1kfHxPKGEsMSwiUG9zc2libGUgY29sdW1uIG1pc2FsaWdubWVudCIsNikpOkY9IjEwMCUiO3cud2lkdGg9QihGKTtnLndpZHRoPUIoRik7VCYmKGEublNjcm9sbEZvb3Quc3R5bGUud2lkdGg9QihGKSk7IWUmJngmJih3LmhlaWdodD1CKHYub2Zmc2V0SGVpZ2h0K2IpKTtjPXIub3V0ZXJXaWR0aCgpO25bMF0uc3R5bGUud2lkdGg9QihjKTtsLndpZHRoPUIoYyk7ZD1yLmhlaWdodCgpPmsuY2xpZW50SGVpZ2h0fHwic2Nyb2xsIj09bS5jc3MoIm92ZXJmbG93LXkiKTtlPSJwYWRkaW5nIisoQS5iU2Nyb2xsYmFyTGVmdD8iTGVmdCI6IlJpZ2h0Iik7bFtlXT1kP2IrInB4IjoiMHB4IjtUJiYKKHFbMF0uc3R5bGUud2lkdGg9QihjKSx1WzBdLnN0eWxlLndpZHRoPUIoYyksdVswXS5zdHlsZVtlXT1kP2IrInB4IjoiMHB4Iik7ci5jaGlsZHJlbigiY29sZ3JvdXAiKS5pbnNlcnRCZWZvcmUoci5jaGlsZHJlbigidGhlYWQiKSk7bS50cmlnZ2VyKCJzY3JvbGwiKTshYS5iU29ydGVkJiYhYS5iRmlsdGVyZWR8fGEuX2RyYXdIb2xkfHwoay5zY3JvbGxUb3A9MCl9fWZ1bmN0aW9uIE4oYSxiLGMpe2Zvcih2YXIgZD0wLGU9MCxoPWIubGVuZ3RoLGcsaztlPGg7KXtnPWJbZV0uZmlyc3RDaGlsZDtmb3Ioaz1jP2NbZV0uZmlyc3RDaGlsZDpudWxsO2c7KTE9PT1nLm5vZGVUeXBlJiYoYz9hKGcsayxkKTphKGcsZCksZCsrKSxnPWcubmV4dFNpYmxpbmcsaz1jP2submV4dFNpYmxpbmc6bnVsbDtlKyt9fWZ1bmN0aW9uIEphKGEpe3ZhciBiPWEublRhYmxlLGM9YS5hb0NvbHVtbnMsZD1hLm9TY3JvbGwsZT1kLnNZLGg9ZC5zWCxnPWQuc1hJbm5lcixrPWMubGVuZ3RoLGw9b2EoYSwiYlZpc2libGUiKSwKbj1mKCJ0aCIsYS5uVEhlYWQpLG09Yi5nZXRBdHRyaWJ1dGUoIndpZHRoIikscD1iLnBhcmVudE5vZGUsdT0hMSxxLHQ9YS5vQnJvd3NlcjtkPXQuYlNjcm9sbE92ZXJzaXplOyhxPWIuc3R5bGUud2lkdGgpJiYtMSE9PXEuaW5kZXhPZigiJSIpJiYobT1xKTtmb3IocT0wO3E8bC5sZW5ndGg7cSsrKXt2YXIgcj1jW2xbcV1dO251bGwhPT1yLnNXaWR0aCYmKHIuc1dpZHRoPUpiKHIuc1dpZHRoT3JpZyxwKSx1PSEwKX1pZihkfHwhdSYmIWgmJiFlJiZrPT1XKGEpJiZrPT1uLmxlbmd0aClmb3IocT0wO3E8aztxKyspbD1iYShhLHEpLG51bGwhPT1sJiYoY1tsXS5zV2lkdGg9QihuLmVxKHEpLndpZHRoKCkpKTtlbHNle2s9ZihiKS5jbG9uZSgpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLnJlbW92ZUF0dHIoImlkIik7ay5maW5kKCJ0Ym9keSB0ciIpLnJlbW92ZSgpO3ZhciB2PWYoIjx0ci8+IikuYXBwZW5kVG8oay5maW5kKCJ0Ym9keSIpKTtrLmZpbmQoInRoZWFkLCB0Zm9vdCIpLnJlbW92ZSgpOwprLmFwcGVuZChmKGEublRIZWFkKS5jbG9uZSgpKS5hcHBlbmQoZihhLm5URm9vdCkuY2xvbmUoKSk7ay5maW5kKCJ0Zm9vdCB0aCwgdGZvb3QgdGQiKS5jc3MoIndpZHRoIiwiIik7bj11YShhLGsuZmluZCgidGhlYWQiKVswXSk7Zm9yKHE9MDtxPGwubGVuZ3RoO3ErKylyPWNbbFtxXV0sbltxXS5zdHlsZS53aWR0aD1udWxsIT09ci5zV2lkdGhPcmlnJiYiIiE9PXIuc1dpZHRoT3JpZz9CKHIuc1dpZHRoT3JpZyk6IiIsci5zV2lkdGhPcmlnJiZoJiZmKG5bcV0pLmFwcGVuZChmKCI8ZGl2Lz4iKS5jc3Moe3dpZHRoOnIuc1dpZHRoT3JpZyxtYXJnaW46MCxwYWRkaW5nOjAsYm9yZGVyOjAsaGVpZ2h0OjF9KSk7aWYoYS5hb0RhdGEubGVuZ3RoKWZvcihxPTA7cTxsLmxlbmd0aDtxKyspdT1sW3FdLHI9Y1t1XSxmKEtiKGEsdSkpLmNsb25lKCExKS5hcHBlbmQoci5zQ29udGVudFBhZGRpbmcpLmFwcGVuZFRvKHYpO2YoIltuYW1lXSIsaykucmVtb3ZlQXR0cigibmFtZSIpO3I9ZigiPGRpdi8+IikuY3NzKGh8fAplP3twb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MCxoZWlnaHQ6MSxyaWdodDowLG92ZXJmbG93OiJoaWRkZW4ifTp7fSkuYXBwZW5kKGspLmFwcGVuZFRvKHApO2gmJmc/ay53aWR0aChnKTpoPyhrLmNzcygid2lkdGgiLCJhdXRvIiksay5yZW1vdmVBdHRyKCJ3aWR0aCIpLGsud2lkdGgoKTxwLmNsaWVudFdpZHRoJiZtJiZrLndpZHRoKHAuY2xpZW50V2lkdGgpKTplP2sud2lkdGgocC5jbGllbnRXaWR0aCk6bSYmay53aWR0aChtKTtmb3IocT1lPTA7cTxsLmxlbmd0aDtxKyspcD1mKG5bcV0pLGc9cC5vdXRlcldpZHRoKCktcC53aWR0aCgpLHA9dC5iQm91bmRpbmc/TWF0aC5jZWlsKG5bcV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGgpOnAub3V0ZXJXaWR0aCgpLGUrPXAsY1tsW3FdXS5zV2lkdGg9QihwLWcpO2Iuc3R5bGUud2lkdGg9QihlKTtyLnJlbW92ZSgpfW0mJihiLnN0eWxlLndpZHRoPUIobSkpOyFtJiYhaHx8YS5fcmVzekV2dHx8KGI9ZnVuY3Rpb24oKXtmKHopLm9uKCJyZXNpemUuRFQtIisKYS5zSW5zdGFuY2UsU2EoZnVuY3Rpb24oKXthYShhKX0pKX0sZD9zZXRUaW1lb3V0KGIsMUUzKTpiKCksYS5fcmVzekV2dD0hMCl9ZnVuY3Rpb24gSmIoYSxiKXtpZighYSlyZXR1cm4gMDthPWYoIjxkaXYvPiIpLmNzcygid2lkdGgiLEIoYSkpLmFwcGVuZFRvKGJ8fHkuYm9keSk7Yj1hWzBdLm9mZnNldFdpZHRoO2EucmVtb3ZlKCk7cmV0dXJuIGJ9ZnVuY3Rpb24gS2IoYSxiKXt2YXIgYz1MYihhLGIpO2lmKDA+YylyZXR1cm4gbnVsbDt2YXIgZD1hLmFvRGF0YVtjXTtyZXR1cm4gZC5uVHI/ZC5hbkNlbGxzW2JdOmYoIjx0ZC8+IikuaHRtbChJKGEsYyxiLCJkaXNwbGF5IikpWzBdfWZ1bmN0aW9uIExiKGEsYil7Zm9yKHZhciBjLGQ9LTEsZT0tMSxoPTAsZz1hLmFvRGF0YS5sZW5ndGg7aDxnO2grKyljPUkoYSxoLGIsImRpc3BsYXkiKSsiIixjPWMucmVwbGFjZShiYywiIiksYz1jLnJlcGxhY2UoLyZuYnNwOy9nLCIgIiksYy5sZW5ndGg+ZCYmKGQ9Yy5sZW5ndGgsZT1oKTtyZXR1cm4gZX0KZnVuY3Rpb24gQihhKXtyZXR1cm4gbnVsbD09PWE/IjBweCI6Im51bWJlciI9PXR5cGVvZiBhPzA+YT8iMHB4IjphKyJweCI6YS5tYXRjaCgvXGQkLyk/YSsicHgiOmF9ZnVuY3Rpb24gWShhKXt2YXIgYj1bXSxjPWEuYW9Db2x1bW5zO3ZhciBkPWEuYWFTb3J0aW5nRml4ZWQ7dmFyIGU9Zi5pc1BsYWluT2JqZWN0KGQpO3ZhciBoPVtdO3ZhciBnPWZ1bmN0aW9uKGEpe2EubGVuZ3RoJiYhZi5pc0FycmF5KGFbMF0pP2gucHVzaChhKTpmLm1lcmdlKGgsYSl9O2YuaXNBcnJheShkKSYmZyhkKTtlJiZkLnByZSYmZyhkLnByZSk7ZyhhLmFhU29ydGluZyk7ZSYmZC5wb3N0JiZnKGQucG9zdCk7Zm9yKGE9MDthPGgubGVuZ3RoO2ErKyl7dmFyIGs9aFthXVswXTtnPWNba10uYURhdGFTb3J0O2Q9MDtmb3IoZT1nLmxlbmd0aDtkPGU7ZCsrKXt2YXIgbD1nW2RdO3ZhciBuPWNbbF0uc1R5cGV8fCJzdHJpbmciO2hbYV0uX2lkeD09PXAmJihoW2FdLl9pZHg9Zi5pbkFycmF5KGhbYV1bMV0sY1tsXS5hc1NvcnRpbmcpKTsKYi5wdXNoKHtzcmM6ayxjb2w6bCxkaXI6aFthXVsxXSxpbmRleDpoW2FdLl9pZHgsdHlwZTpuLGZvcm1hdHRlcjpxLmV4dC50eXBlLm9yZGVyW24rIi1wcmUiXX0pfX1yZXR1cm4gYn1mdW5jdGlvbiByYihhKXt2YXIgYixjPVtdLGQ9cS5leHQudHlwZS5vcmRlcixlPWEuYW9EYXRhLGg9MCxnPWEuYWlEaXNwbGF5TWFzdGVyO0thKGEpO3ZhciBrPVkoYSk7dmFyIGY9MDtmb3IoYj1rLmxlbmd0aDtmPGI7ZisrKXt2YXIgbj1rW2ZdO24uZm9ybWF0dGVyJiZoKys7TWIoYSxuLmNvbCl9aWYoInNzcCIhPUQoYSkmJjAhPT1rLmxlbmd0aCl7Zj0wO2ZvcihiPWcubGVuZ3RoO2Y8YjtmKyspY1tnW2ZdXT1mO2g9PT1rLmxlbmd0aD9nLnNvcnQoZnVuY3Rpb24oYSxiKXt2YXIgZCxoPWsubGVuZ3RoLGc9ZVthXS5fYVNvcnREYXRhLGY9ZVtiXS5fYVNvcnREYXRhO2ZvcihkPTA7ZDxoO2QrKyl7dmFyIGw9a1tkXTt2YXIgbT1nW2wuY29sXTt2YXIgbj1mW2wuY29sXTttPW08bj8tMTptPm4/MTowOwppZigwIT09bSlyZXR1cm4iYXNjIj09PWwuZGlyP206LW19bT1jW2FdO249Y1tiXTtyZXR1cm4gbTxuPy0xOm0+bj8xOjB9KTpnLnNvcnQoZnVuY3Rpb24oYSxiKXt2YXIgaCxnPWsubGVuZ3RoLGY9ZVthXS5fYVNvcnREYXRhLGw9ZVtiXS5fYVNvcnREYXRhO2ZvcihoPTA7aDxnO2grKyl7dmFyIG09a1toXTt2YXIgbj1mW20uY29sXTt2YXIgcD1sW20uY29sXTttPWRbbS50eXBlKyItIittLmRpcl18fGRbInN0cmluZy0iK20uZGlyXTtuPW0obixwKTtpZigwIT09bilyZXR1cm4gbn1uPWNbYV07cD1jW2JdO3JldHVybiBuPHA/LTE6bj5wPzE6MH0pfWEuYlNvcnRlZD0hMH1mdW5jdGlvbiBOYihhKXt2YXIgYj1hLmFvQ29sdW1ucyxjPVkoYSk7YT1hLm9MYW5ndWFnZS5vQXJpYTtmb3IodmFyIGQ9MCxlPWIubGVuZ3RoO2Q8ZTtkKyspe3ZhciBoPWJbZF07dmFyIGc9aC5hc1NvcnRpbmc7dmFyIGs9aC5zVGl0bGUucmVwbGFjZSgvPC4qPz4vZywiIik7dmFyIGY9aC5uVGg7Zi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtc29ydCIpOwpoLmJTb3J0YWJsZSYmKDA8Yy5sZW5ndGgmJmNbMF0uY29sPT1kPyhmLnNldEF0dHJpYnV0ZSgiYXJpYS1zb3J0IiwiYXNjIj09Y1swXS5kaXI/ImFzY2VuZGluZyI6ImRlc2NlbmRpbmciKSxoPWdbY1swXS5pbmRleCsxXXx8Z1swXSk6aD1nWzBdLGsrPSJhc2MiPT09aD9hLnNTb3J0QXNjZW5kaW5nOmEuc1NvcnREZXNjZW5kaW5nKTtmLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsayl9fWZ1bmN0aW9uIFphKGEsYixjLGQpe3ZhciBlPWEuYWFTb3J0aW5nLGg9YS5hb0NvbHVtbnNbYl0uYXNTb3J0aW5nLGc9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLl9pZHg7Yz09PXAmJihjPWYuaW5BcnJheShhWzFdLGgpKTtyZXR1cm4gYysxPGgubGVuZ3RoP2MrMTpiP251bGw6MH07Im51bWJlciI9PT10eXBlb2YgZVswXSYmKGU9YS5hYVNvcnRpbmc9W2VdKTtjJiZhLm9GZWF0dXJlcy5iU29ydE11bHRpPyhjPWYuaW5BcnJheShiLEooZSwiMCIpKSwtMSE9PWM/KGI9ZyhlW2NdLCEwKSxudWxsPT09CmImJjE9PT1lLmxlbmd0aCYmKGI9MCksbnVsbD09PWI/ZS5zcGxpY2UoYywxKTooZVtjXVsxXT1oW2JdLGVbY10uX2lkeD1iKSk6KGUucHVzaChbYixoWzBdLDBdKSxlW2UubGVuZ3RoLTFdLl9pZHg9MCkpOmUubGVuZ3RoJiZlWzBdWzBdPT1iPyhiPWcoZVswXSksZS5sZW5ndGg9MSxlWzBdWzFdPWhbYl0sZVswXS5faWR4PWIpOihlLmxlbmd0aD0wLGUucHVzaChbYixoWzBdXSksZVswXS5faWR4PTApO1YoYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGQmJmQoYSl9ZnVuY3Rpb24gUWEoYSxiLGMsZCl7dmFyIGU9YS5hb0NvbHVtbnNbY107JGEoYix7fSxmdW5jdGlvbihiKXshMSE9PWUuYlNvcnRhYmxlJiYoYS5vRmVhdHVyZXMuYlByb2Nlc3Npbmc/KEsoYSwhMCksc2V0VGltZW91dChmdW5jdGlvbigpe1phKGEsYyxiLnNoaWZ0S2V5LGQpOyJzc3AiIT09RChhKSYmSyhhLCExKX0sMCkpOlphKGEsYyxiLnNoaWZ0S2V5LGQpKX0pfWZ1bmN0aW9uIEFhKGEpe3ZhciBiPWEuYUxhc3RTb3J0LApjPWEub0NsYXNzZXMuc1NvcnRDb2x1bW4sZD1ZKGEpLGU9YS5vRmVhdHVyZXMsaDtpZihlLmJTb3J0JiZlLmJTb3J0Q2xhc3Nlcyl7ZT0wO2ZvcihoPWIubGVuZ3RoO2U8aDtlKyspe3ZhciBnPWJbZV0uc3JjO2YoSihhLmFvRGF0YSwiYW5DZWxscyIsZykpLnJlbW92ZUNsYXNzKGMrKDI+ZT9lKzE6MykpfWU9MDtmb3IoaD1kLmxlbmd0aDtlPGg7ZSsrKWc9ZFtlXS5zcmMsZihKKGEuYW9EYXRhLCJhbkNlbGxzIixnKSkuYWRkQ2xhc3MoYysoMj5lP2UrMTozKSl9YS5hTGFzdFNvcnQ9ZH1mdW5jdGlvbiBNYihhLGIpe3ZhciBjPWEuYW9Db2x1bW5zW2JdLGQ9cS5leHQub3JkZXJbYy5zU29ydERhdGFUeXBlXSxlO2QmJihlPWQuY2FsbChhLm9JbnN0YW5jZSxhLGIsY2EoYSxiKSkpO2Zvcih2YXIgaCxnPXEuZXh0LnR5cGUub3JkZXJbYy5zVHlwZSsiLXByZSJdLGs9MCxmPWEuYW9EYXRhLmxlbmd0aDtrPGY7aysrKWlmKGM9YS5hb0RhdGFba10sYy5fYVNvcnREYXRhfHwoYy5fYVNvcnREYXRhPQpbXSksIWMuX2FTb3J0RGF0YVtiXXx8ZCloPWQ/ZVtrXTpJKGEsayxiLCJzb3J0IiksYy5fYVNvcnREYXRhW2JdPWc/ZyhoKTpofWZ1bmN0aW9uIEJhKGEpe2lmKGEub0ZlYXR1cmVzLmJTdGF0ZVNhdmUmJiFhLmJEZXN0cm95aW5nKXt2YXIgYj17dGltZTorbmV3IERhdGUsc3RhcnQ6YS5faURpc3BsYXlTdGFydCxsZW5ndGg6YS5faURpc3BsYXlMZW5ndGgsb3JkZXI6Zi5leHRlbmQoITAsW10sYS5hYVNvcnRpbmcpLHNlYXJjaDpGYihhLm9QcmV2aW91c1NlYXJjaCksY29sdW1uczpmLm1hcChhLmFvQ29sdW1ucyxmdW5jdGlvbihiLGQpe3JldHVybnt2aXNpYmxlOmIuYlZpc2libGUsc2VhcmNoOkZiKGEuYW9QcmVTZWFyY2hDb2xzW2RdKX19KX07QShhLCJhb1N0YXRlU2F2ZVBhcmFtcyIsInN0YXRlU2F2ZVBhcmFtcyIsW2EsYl0pO2Eub1NhdmVkU3RhdGU9YjthLmZuU3RhdGVTYXZlQ2FsbGJhY2suY2FsbChhLm9JbnN0YW5jZSxhLGIpfX1mdW5jdGlvbiBPYihhLGIsYyl7dmFyIGQsCmUsaD1hLmFvQ29sdW1ucztiPWZ1bmN0aW9uKGIpe2lmKGImJmIudGltZSl7dmFyIGc9QShhLCJhb1N0YXRlTG9hZFBhcmFtcyIsInN0YXRlTG9hZFBhcmFtcyIsW2EsYl0pO2lmKC0xPT09Zi5pbkFycmF5KCExLGcpJiYoZz1hLmlTdGF0ZUR1cmF0aW9uLCEoMDxnJiZiLnRpbWU8K25ldyBEYXRlLTFFMypnfHxiLmNvbHVtbnMmJmgubGVuZ3RoIT09Yi5jb2x1bW5zLmxlbmd0aCkpKXthLm9Mb2FkZWRTdGF0ZT1mLmV4dGVuZCghMCx7fSxiKTtiLnN0YXJ0IT09cCYmKGEuX2lEaXNwbGF5U3RhcnQ9Yi5zdGFydCxhLmlJbml0RGlzcGxheVN0YXJ0PWIuc3RhcnQpO2IubGVuZ3RoIT09cCYmKGEuX2lEaXNwbGF5TGVuZ3RoPWIubGVuZ3RoKTtiLm9yZGVyIT09cCYmKGEuYWFTb3J0aW5nPVtdLGYuZWFjaChiLm9yZGVyLGZ1bmN0aW9uKGIsYyl7YS5hYVNvcnRpbmcucHVzaChjWzBdPj1oLmxlbmd0aD9bMCxjWzFdXTpjKX0pKTtiLnNlYXJjaCE9PXAmJmYuZXh0ZW5kKGEub1ByZXZpb3VzU2VhcmNoLApHYihiLnNlYXJjaCkpO2lmKGIuY29sdW1ucylmb3IoZD0wLGU9Yi5jb2x1bW5zLmxlbmd0aDtkPGU7ZCsrKWc9Yi5jb2x1bW5zW2RdLGcudmlzaWJsZSE9PXAmJihoW2RdLmJWaXNpYmxlPWcudmlzaWJsZSksZy5zZWFyY2ghPT1wJiZmLmV4dGVuZChhLmFvUHJlU2VhcmNoQ29sc1tkXSxHYihnLnNlYXJjaCkpO0EoYSwiYW9TdGF0ZUxvYWRlZCIsInN0YXRlTG9hZGVkIixbYSxiXSl9fWMoKX07aWYoYS5vRmVhdHVyZXMuYlN0YXRlU2F2ZSl7dmFyIGc9YS5mblN0YXRlTG9hZENhbGxiYWNrLmNhbGwoYS5vSW5zdGFuY2UsYSxiKTtnIT09cCYmYihnKX1lbHNlIGMoKX1mdW5jdGlvbiBDYShhKXt2YXIgYj1xLnNldHRpbmdzO2E9Zi5pbkFycmF5KGEsSihiLCJuVGFibGUiKSk7cmV0dXJuLTEhPT1hP2JbYV06bnVsbH1mdW5jdGlvbiBPKGEsYixjLGQpe2M9IkRhdGFUYWJsZXMgd2FybmluZzogIisoYT8idGFibGUgaWQ9IithLnNUYWJsZUlkKyIgLSAiOiIiKStjO2QmJihjKz0iLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGVycm9yLCBwbGVhc2Ugc2VlIGh0dHA6Ly9kYXRhdGFibGVzLm5ldC90bi8iKwpkKTtpZihiKXouY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKGMpO2Vsc2UgaWYoYj1xLmV4dCxiPWIuc0Vyck1vZGV8fGIuZXJyTW9kZSxhJiZBKGEsbnVsbCwiZXJyb3IiLFthLGQsY10pLCJhbGVydCI9PWIpYWxlcnQoYyk7ZWxzZXtpZigidGhyb3ciPT1iKXRocm93IEVycm9yKGMpOyJmdW5jdGlvbiI9PXR5cGVvZiBiJiZiKGEsZCxjKX19ZnVuY3Rpb24gTShhLGIsYyxkKXtmLmlzQXJyYXkoYyk/Zi5lYWNoKGMsZnVuY3Rpb24oYyxkKXtmLmlzQXJyYXkoZCk/TShhLGIsZFswXSxkWzFdKTpNKGEsYixkKX0pOihkPT09cCYmKGQ9YyksYltjXSE9PXAmJihhW2RdPWJbY10pKX1mdW5jdGlvbiBhYihhLGIsYyl7dmFyIGQ7Zm9yKGQgaW4gYilpZihiLmhhc093blByb3BlcnR5KGQpKXt2YXIgZT1iW2RdO2YuaXNQbGFpbk9iamVjdChlKT8oZi5pc1BsYWluT2JqZWN0KGFbZF0pfHwoYVtkXT17fSksZi5leHRlbmQoITAsYVtkXSxlKSk6YyYmImRhdGEiIT09ZCYmImFhRGF0YSIhPT0KZCYmZi5pc0FycmF5KGUpP2FbZF09ZS5zbGljZSgpOmFbZF09ZX1yZXR1cm4gYX1mdW5jdGlvbiAkYShhLGIsYyl7ZihhKS5vbigiY2xpY2suRFQiLGIsZnVuY3Rpb24oYil7ZihhKS5ibHVyKCk7YyhiKX0pLm9uKCJrZXlwcmVzcy5EVCIsYixmdW5jdGlvbihhKXsxMz09PWEud2hpY2gmJihhLnByZXZlbnREZWZhdWx0KCksYyhhKSl9KS5vbigic2VsZWN0c3RhcnQuRFQiLGZ1bmN0aW9uKCl7cmV0dXJuITF9KX1mdW5jdGlvbiBFKGEsYixjLGQpe2MmJmFbYl0ucHVzaCh7Zm46YyxzTmFtZTpkfSl9ZnVuY3Rpb24gQShhLGIsYyxkKXt2YXIgZT1bXTtiJiYoZT1mLm1hcChhW2JdLnNsaWNlKCkucmV2ZXJzZSgpLGZ1bmN0aW9uKGIsYyl7cmV0dXJuIGIuZm4uYXBwbHkoYS5vSW5zdGFuY2UsZCl9KSk7bnVsbCE9PWMmJihiPWYuRXZlbnQoYysiLmR0IiksZihhLm5UYWJsZSkudHJpZ2dlcihiLGQpLGUucHVzaChiLnJlc3VsdCkpO3JldHVybiBlfWZ1bmN0aW9uIFdhKGEpe3ZhciBiPWEuX2lEaXNwbGF5U3RhcnQsCmM9YS5mbkRpc3BsYXlFbmQoKSxkPWEuX2lEaXNwbGF5TGVuZ3RoO2I+PWMmJihiPWMtZCk7Yi09YiVkO2lmKC0xPT09ZHx8MD5iKWI9MDthLl9pRGlzcGxheVN0YXJ0PWJ9ZnVuY3Rpb24gUmEoYSxiKXthPWEucmVuZGVyZXI7dmFyIGM9cS5leHQucmVuZGVyZXJbYl07cmV0dXJuIGYuaXNQbGFpbk9iamVjdChhKSYmYVtiXT9jW2FbYl1dfHxjLl86InN0cmluZyI9PT10eXBlb2YgYT9jW2FdfHxjLl86Yy5ffWZ1bmN0aW9uIEQoYSl7cmV0dXJuIGEub0ZlYXR1cmVzLmJTZXJ2ZXJTaWRlPyJzc3AiOmEuYWpheHx8YS5zQWpheFNvdXJjZT8iYWpheCI6ImRvbSJ9ZnVuY3Rpb24ga2EoYSxiKXt2YXIgYz1QYi5udW1iZXJzX2xlbmd0aCxkPU1hdGguZmxvb3IoYy8yKTtiPD1jP2E9WigwLGIpOmE8PWQ/KGE9WigwLGMtMiksYS5wdXNoKCJlbGxpcHNpcyIpLGEucHVzaChiLTEpKTooYT49Yi0xLWQ/YT1aKGItKGMtMiksYik6KGE9WihhLWQrMixhK2QtMSksYS5wdXNoKCJlbGxpcHNpcyIpLAphLnB1c2goYi0xKSksYS5zcGxpY2UoMCwwLCJlbGxpcHNpcyIpLGEuc3BsaWNlKDAsMCwwKSk7YS5EVF9lbD0ic3BhbiI7cmV0dXJuIGF9ZnVuY3Rpb24gSGEoYSl7Zi5lYWNoKHtudW06ZnVuY3Rpb24oYil7cmV0dXJuIERhKGIsYSl9LCJudW0tZm10IjpmdW5jdGlvbihiKXtyZXR1cm4gRGEoYixhLGJiKX0sImh0bWwtbnVtIjpmdW5jdGlvbihiKXtyZXR1cm4gRGEoYixhLEVhKX0sImh0bWwtbnVtLWZtdCI6ZnVuY3Rpb24oYil7cmV0dXJuIERhKGIsYSxFYSxiYil9fSxmdW5jdGlvbihiLGMpe0MudHlwZS5vcmRlcltiK2ErIi1wcmUiXT1jO2IubWF0Y2goL15odG1sXC0vKSYmKEMudHlwZS5zZWFyY2hbYithXT1DLnR5cGUuc2VhcmNoLmh0bWwpfSl9ZnVuY3Rpb24gUWIoYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGI9W0NhKHRoaXNbcS5leHQuaUFwaUluZGV4XSldLmNvbmNhdChBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpKTtyZXR1cm4gcS5leHQuaW50ZXJuYWxbYV0uYXBwbHkodGhpcywKYil9fXZhciBxPWZ1bmN0aW9uKGEpe3RoaXMuJD1mdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmFwaSghMCkuJChhLGIpfTt0aGlzLl89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvd3MoYSxiKS5kYXRhKCl9O3RoaXMuYXBpPWZ1bmN0aW9uKGEpe3JldHVybiBhP25ldyB2KENhKHRoaXNbQy5pQXBpSW5kZXhdKSk6bmV3IHYodGhpcyl9O3RoaXMuZm5BZGREYXRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5hcGkoITApO2E9Zi5pc0FycmF5KGEpJiYoZi5pc0FycmF5KGFbMF0pfHxmLmlzUGxhaW5PYmplY3QoYVswXSkpP2Mucm93cy5hZGQoYSk6Yy5yb3cuYWRkKGEpOyhiPT09cHx8YikmJmMuZHJhdygpO3JldHVybiBhLmZsYXR0ZW4oKS50b0FycmF5KCl9O3RoaXMuZm5BZGp1c3RDb2x1bW5TaXppbmc9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApLmNvbHVtbnMuYWRqdXN0KCksYz1iLnNldHRpbmdzKClbMF0sZD1jLm9TY3JvbGw7YT09PXB8fGE/Yi5kcmF3KCExKToKKCIiIT09ZC5zWHx8IiIhPT1kLnNZKSYmbmEoYyl9O3RoaXMuZm5DbGVhclRhYmxlPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuYXBpKCEwKS5jbGVhcigpOyhhPT09cHx8YSkmJmIuZHJhdygpfTt0aGlzLmZuQ2xvc2U9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZC5oaWRlKCl9O3RoaXMuZm5EZWxldGVSb3c9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPXRoaXMuYXBpKCEwKTthPWQucm93cyhhKTt2YXIgZT1hLnNldHRpbmdzKClbMF0saD1lLmFvRGF0YVthWzBdWzBdXTthLnJlbW92ZSgpO2ImJmIuY2FsbCh0aGlzLGUsaCk7KGM9PT1wfHxjKSYmZC5kcmF3KCk7cmV0dXJuIGh9O3RoaXMuZm5EZXN0cm95PWZ1bmN0aW9uKGEpe3RoaXMuYXBpKCEwKS5kZXN0cm95KGEpfTt0aGlzLmZuRHJhdz1mdW5jdGlvbihhKXt0aGlzLmFwaSghMCkuZHJhdyhhKX07dGhpcy5mbkZpbHRlcj1mdW5jdGlvbihhLGIsYyxkLGUsZil7ZT10aGlzLmFwaSghMCk7bnVsbD09PWJ8fGI9PT1wPwplLnNlYXJjaChhLGMsZCxmKTplLmNvbHVtbihiKS5zZWFyY2goYSxjLGQsZik7ZS5kcmF3KCl9O3RoaXMuZm5HZXREYXRhPWZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5hcGkoITApO2lmKGEhPT1wKXt2YXIgZD1hLm5vZGVOYW1lP2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKToiIjtyZXR1cm4gYiE9PXB8fCJ0ZCI9PWR8fCJ0aCI9PWQ/Yy5jZWxsKGEsYikuZGF0YSgpOmMucm93KGEpLmRhdGEoKXx8bnVsbH1yZXR1cm4gYy5kYXRhKCkudG9BcnJheSgpfTt0aGlzLmZuR2V0Tm9kZXM9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApO3JldHVybiBhIT09cD9iLnJvdyhhKS5ub2RlKCk6Yi5yb3dzKCkubm9kZXMoKS5mbGF0dGVuKCkudG9BcnJheSgpfTt0aGlzLmZuR2V0UG9zaXRpb249ZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5hcGkoITApLGM9YS5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpO3JldHVybiJUUiI9PWM/Yi5yb3coYSkuaW5kZXgoKToiVEQiPT1jfHwiVEgiPT1jPyhhPWIuY2VsbChhKS5pbmRleCgpLApbYS5yb3csYS5jb2x1bW5WaXNpYmxlLGEuY29sdW1uXSk6bnVsbH07dGhpcy5mbklzT3Blbj1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZC5pc1Nob3duKCl9O3RoaXMuZm5PcGVuPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5hcGkoITApLnJvdyhhKS5jaGlsZChiLGMpLnNob3coKS5jaGlsZCgpWzBdfTt0aGlzLmZuUGFnZUNoYW5nZT1mdW5jdGlvbihhLGIpe2E9dGhpcy5hcGkoITApLnBhZ2UoYSk7KGI9PT1wfHxiKSYmYS5kcmF3KCExKX07dGhpcy5mblNldENvbHVtblZpcz1mdW5jdGlvbihhLGIsYyl7YT10aGlzLmFwaSghMCkuY29sdW1uKGEpLnZpc2libGUoYik7KGM9PT1wfHxjKSYmYS5jb2x1bW5zLmFkanVzdCgpLmRyYXcoKX07dGhpcy5mblNldHRpbmdzPWZ1bmN0aW9uKCl7cmV0dXJuIENhKHRoaXNbQy5pQXBpSW5kZXhdKX07dGhpcy5mblNvcnQ9ZnVuY3Rpb24oYSl7dGhpcy5hcGkoITApLm9yZGVyKGEpLmRyYXcoKX07dGhpcy5mblNvcnRMaXN0ZW5lcj0KZnVuY3Rpb24oYSxiLGMpe3RoaXMuYXBpKCEwKS5vcmRlci5saXN0ZW5lcihhLGIsYyl9O3RoaXMuZm5VcGRhdGU9ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgaD10aGlzLmFwaSghMCk7Yz09PXB8fG51bGw9PT1jP2gucm93KGIpLmRhdGEoYSk6aC5jZWxsKGIsYykuZGF0YShhKTsoZT09PXB8fGUpJiZoLmNvbHVtbnMuYWRqdXN0KCk7KGQ9PT1wfHxkKSYmaC5kcmF3KCk7cmV0dXJuIDB9O3RoaXMuZm5WZXJzaW9uQ2hlY2s9Qy5mblZlcnNpb25DaGVjazt2YXIgYj10aGlzLGM9YT09PXAsZD10aGlzLmxlbmd0aDtjJiYoYT17fSk7dGhpcy5vQXBpPXRoaXMuaW50ZXJuYWw9Qy5pbnRlcm5hbDtmb3IodmFyIGUgaW4gcS5leHQuaW50ZXJuYWwpZSYmKHRoaXNbZV09UWIoZSkpO3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPXt9LGc9MTxkP2FiKGUsYSwhMCk6YSxrPTAsbDtlPXRoaXMuZ2V0QXR0cmlidXRlKCJpZCIpO3ZhciBuPSExLG09cS5kZWZhdWx0cyx3PWYodGhpcyk7aWYoInRhYmxlIiE9CnRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSlPKG51bGwsMCwiTm9uLXRhYmxlIG5vZGUgaW5pdGlhbGlzYXRpb24gKCIrdGhpcy5ub2RlTmFtZSsiKSIsMik7ZWxzZXtqYihtKTtrYihtLmNvbHVtbik7TChtLG0sITApO0wobS5jb2x1bW4sbS5jb2x1bW4sITApO0wobSxmLmV4dGVuZChnLHcuZGF0YSgpKSwhMCk7dmFyIHU9cS5zZXR0aW5ncztrPTA7Zm9yKGw9dS5sZW5ndGg7azxsO2srKyl7dmFyIHQ9dVtrXTtpZih0Lm5UYWJsZT09dGhpc3x8dC5uVEhlYWQmJnQublRIZWFkLnBhcmVudE5vZGU9PXRoaXN8fHQublRGb290JiZ0Lm5URm9vdC5wYXJlbnROb2RlPT10aGlzKXt2YXIgdj1nLmJSZXRyaWV2ZSE9PXA/Zy5iUmV0cmlldmU6bS5iUmV0cmlldmU7aWYoY3x8dilyZXR1cm4gdC5vSW5zdGFuY2U7aWYoZy5iRGVzdHJveSE9PXA/Zy5iRGVzdHJveTptLmJEZXN0cm95KXt0Lm9JbnN0YW5jZS5mbkRlc3Ryb3koKTticmVha31lbHNle08odCwwLCJDYW5ub3QgcmVpbml0aWFsaXNlIERhdGFUYWJsZSIsCjMpO3JldHVybn19aWYodC5zVGFibGVJZD09dGhpcy5pZCl7dS5zcGxpY2UoaywxKTticmVha319aWYobnVsbD09PWV8fCIiPT09ZSl0aGlzLmlkPWU9IkRhdGFUYWJsZXNfVGFibGVfIitxLmV4dC5fdW5pcXVlKys7dmFyIHI9Zi5leHRlbmQoITAse30scS5tb2RlbHMub1NldHRpbmdzLHtzRGVzdHJveVdpZHRoOndbMF0uc3R5bGUud2lkdGgsc0luc3RhbmNlOmUsc1RhYmxlSWQ6ZX0pO3IublRhYmxlPXRoaXM7ci5vQXBpPWIuaW50ZXJuYWw7ci5vSW5pdD1nO3UucHVzaChyKTtyLm9JbnN0YW5jZT0xPT09Yi5sZW5ndGg/Yjp3LmRhdGFUYWJsZSgpO2piKGcpO0dhKGcub0xhbmd1YWdlKTtnLmFMZW5ndGhNZW51JiYhZy5pRGlzcGxheUxlbmd0aCYmKGcuaURpc3BsYXlMZW5ndGg9Zi5pc0FycmF5KGcuYUxlbmd0aE1lbnVbMF0pP2cuYUxlbmd0aE1lbnVbMF1bMF06Zy5hTGVuZ3RoTWVudVswXSk7Zz1hYihmLmV4dGVuZCghMCx7fSxtKSxnKTtNKHIub0ZlYXR1cmVzLGcsImJQYWdpbmF0ZSBiTGVuZ3RoQ2hhbmdlIGJGaWx0ZXIgYlNvcnQgYlNvcnRNdWx0aSBiSW5mbyBiUHJvY2Vzc2luZyBiQXV0b1dpZHRoIGJTb3J0Q2xhc3NlcyBiU2VydmVyU2lkZSBiRGVmZXJSZW5kZXIiLnNwbGl0KCIgIikpOwpNKHIsZyxbImFzU3RyaXBlQ2xhc3NlcyIsImFqYXgiLCJmblNlcnZlckRhdGEiLCJmbkZvcm1hdE51bWJlciIsInNTZXJ2ZXJNZXRob2QiLCJhYVNvcnRpbmciLCJhYVNvcnRpbmdGaXhlZCIsImFMZW5ndGhNZW51Iiwic1BhZ2luYXRpb25UeXBlIiwic0FqYXhTb3VyY2UiLCJzQWpheERhdGFQcm9wIiwiaVN0YXRlRHVyYXRpb24iLCJzRG9tIiwiYlNvcnRDZWxsc1RvcCIsImlUYWJJbmRleCIsImZuU3RhdGVMb2FkQ2FsbGJhY2siLCJmblN0YXRlU2F2ZUNhbGxiYWNrIiwicmVuZGVyZXIiLCJzZWFyY2hEZWxheSIsInJvd0lkIixbImlDb29raWVEdXJhdGlvbiIsImlTdGF0ZUR1cmF0aW9uIl0sWyJvU2VhcmNoIiwib1ByZXZpb3VzU2VhcmNoIl0sWyJhb1NlYXJjaENvbHMiLCJhb1ByZVNlYXJjaENvbHMiXSxbImlEaXNwbGF5TGVuZ3RoIiwiX2lEaXNwbGF5TGVuZ3RoIl1dKTtNKHIub1Njcm9sbCxnLFtbInNTY3JvbGxYIiwic1giXSxbInNTY3JvbGxYSW5uZXIiLCJzWElubmVyIl0sClsic1Njcm9sbFkiLCJzWSJdLFsiYlNjcm9sbENvbGxhcHNlIiwiYkNvbGxhcHNlIl1dKTtNKHIub0xhbmd1YWdlLGcsImZuSW5mb0NhbGxiYWNrIik7RShyLCJhb0RyYXdDYWxsYmFjayIsZy5mbkRyYXdDYWxsYmFjaywidXNlciIpO0UociwiYW9TZXJ2ZXJQYXJhbXMiLGcuZm5TZXJ2ZXJQYXJhbXMsInVzZXIiKTtFKHIsImFvU3RhdGVTYXZlUGFyYW1zIixnLmZuU3RhdGVTYXZlUGFyYW1zLCJ1c2VyIik7RShyLCJhb1N0YXRlTG9hZFBhcmFtcyIsZy5mblN0YXRlTG9hZFBhcmFtcywidXNlciIpO0UociwiYW9TdGF0ZUxvYWRlZCIsZy5mblN0YXRlTG9hZGVkLCJ1c2VyIik7RShyLCJhb1Jvd0NhbGxiYWNrIixnLmZuUm93Q2FsbGJhY2ssInVzZXIiKTtFKHIsImFvUm93Q3JlYXRlZENhbGxiYWNrIixnLmZuQ3JlYXRlZFJvdywidXNlciIpO0UociwiYW9IZWFkZXJDYWxsYmFjayIsZy5mbkhlYWRlckNhbGxiYWNrLCJ1c2VyIik7RShyLCJhb0Zvb3RlckNhbGxiYWNrIixnLmZuRm9vdGVyQ2FsbGJhY2ssCiJ1c2VyIik7RShyLCJhb0luaXRDb21wbGV0ZSIsZy5mbkluaXRDb21wbGV0ZSwidXNlciIpO0UociwiYW9QcmVEcmF3Q2FsbGJhY2siLGcuZm5QcmVEcmF3Q2FsbGJhY2ssInVzZXIiKTtyLnJvd0lkRm49VShnLnJvd0lkKTtsYihyKTt2YXIgeD1yLm9DbGFzc2VzO2YuZXh0ZW5kKHgscS5leHQuY2xhc3NlcyxnLm9DbGFzc2VzKTt3LmFkZENsYXNzKHguc1RhYmxlKTtyLmlJbml0RGlzcGxheVN0YXJ0PT09cCYmKHIuaUluaXREaXNwbGF5U3RhcnQ9Zy5pRGlzcGxheVN0YXJ0LHIuX2lEaXNwbGF5U3RhcnQ9Zy5pRGlzcGxheVN0YXJ0KTtudWxsIT09Zy5pRGVmZXJMb2FkaW5nJiYoci5iRGVmZXJMb2FkaW5nPSEwLGU9Zi5pc0FycmF5KGcuaURlZmVyTG9hZGluZyksci5faVJlY29yZHNEaXNwbGF5PWU/Zy5pRGVmZXJMb2FkaW5nWzBdOmcuaURlZmVyTG9hZGluZyxyLl9pUmVjb3Jkc1RvdGFsPWU/Zy5pRGVmZXJMb2FkaW5nWzFdOmcuaURlZmVyTG9hZGluZyk7dmFyIHk9ci5vTGFuZ3VhZ2U7CmYuZXh0ZW5kKCEwLHksZy5vTGFuZ3VhZ2UpO3kuc1VybCYmKGYuYWpheCh7ZGF0YVR5cGU6Impzb24iLHVybDp5LnNVcmwsc3VjY2VzczpmdW5jdGlvbihhKXtHYShhKTtMKG0ub0xhbmd1YWdlLGEpO2YuZXh0ZW5kKCEwLHksYSk7amEocil9LGVycm9yOmZ1bmN0aW9uKCl7amEocil9fSksbj0hMCk7bnVsbD09PWcuYXNTdHJpcGVDbGFzc2VzJiYoci5hc1N0cmlwZUNsYXNzZXM9W3guc1N0cmlwZU9kZCx4LnNTdHJpcGVFdmVuXSk7ZT1yLmFzU3RyaXBlQ2xhc3Nlczt2YXIgej13LmNoaWxkcmVuKCJ0Ym9keSIpLmZpbmQoInRyIikuZXEoMCk7LTEhPT1mLmluQXJyYXkoITAsZi5tYXAoZSxmdW5jdGlvbihhLGIpe3JldHVybiB6Lmhhc0NsYXNzKGEpfSkpJiYoZigidGJvZHkgdHIiLHRoaXMpLnJlbW92ZUNsYXNzKGUuam9pbigiICIpKSxyLmFzRGVzdHJveVN0cmlwZXM9ZS5zbGljZSgpKTtlPVtdO3U9dGhpcy5nZXRFbGVtZW50c0J5VGFnTmFtZSgidGhlYWQiKTswIT09dS5sZW5ndGgmJgooZmEoci5hb0hlYWRlcix1WzBdKSxlPXVhKHIpKTtpZihudWxsPT09Zy5hb0NvbHVtbnMpZm9yKHU9W10saz0wLGw9ZS5sZW5ndGg7azxsO2srKyl1LnB1c2gobnVsbCk7ZWxzZSB1PWcuYW9Db2x1bW5zO2s9MDtmb3IobD11Lmxlbmd0aDtrPGw7aysrKUlhKHIsZT9lW2tdOm51bGwpO25iKHIsZy5hb0NvbHVtbkRlZnMsdSxmdW5jdGlvbihhLGIpe21hKHIsYSxiKX0pO2lmKHoubGVuZ3RoKXt2YXIgQj1mdW5jdGlvbihhLGIpe3JldHVybiBudWxsIT09YS5nZXRBdHRyaWJ1dGUoImRhdGEtIitiKT9iOm51bGx9O2YoelswXSkuY2hpbGRyZW4oInRoLCB0ZCIpLmVhY2goZnVuY3Rpb24oYSxiKXt2YXIgYz1yLmFvQ29sdW1uc1thXTtpZihjLm1EYXRhPT09YSl7dmFyIGQ9QihiLCJzb3J0Iil8fEIoYiwib3JkZXIiKTtiPUIoYiwiZmlsdGVyIil8fEIoYiwic2VhcmNoIik7aWYobnVsbCE9PWR8fG51bGwhPT1iKWMubURhdGE9e186YSsiLmRpc3BsYXkiLHNvcnQ6bnVsbCE9PWQ/YSsiLkBkYXRhLSIrCmQ6cCx0eXBlOm51bGwhPT1kP2ErIi5AZGF0YS0iK2Q6cCxmaWx0ZXI6bnVsbCE9PWI/YSsiLkBkYXRhLSIrYjpwfSxtYShyLGEpfX0pfXZhciBDPXIub0ZlYXR1cmVzO2U9ZnVuY3Rpb24oKXtpZihnLmFhU29ydGluZz09PXApe3ZhciBhPXIuYWFTb3J0aW5nO2s9MDtmb3IobD1hLmxlbmd0aDtrPGw7aysrKWFba11bMV09ci5hb0NvbHVtbnNba10uYXNTb3J0aW5nWzBdfUFhKHIpO0MuYlNvcnQmJkUociwiYW9EcmF3Q2FsbGJhY2siLGZ1bmN0aW9uKCl7aWYoci5iU29ydGVkKXt2YXIgYT1ZKHIpLGI9e307Zi5lYWNoKGEsZnVuY3Rpb24oYSxjKXtiW2Muc3JjXT1jLmRpcn0pO0EocixudWxsLCJvcmRlciIsW3IsYSxiXSk7TmIocil9fSk7RShyLCJhb0RyYXdDYWxsYmFjayIsZnVuY3Rpb24oKXsoci5iU29ydGVkfHwic3NwIj09PUQocil8fEMuYkRlZmVyUmVuZGVyKSYmQWEocil9LCJzYyIpO2E9dy5jaGlsZHJlbigiY2FwdGlvbiIpLmVhY2goZnVuY3Rpb24oKXt0aGlzLl9jYXB0aW9uU2lkZT0KZih0aGlzKS5jc3MoImNhcHRpb24tc2lkZSIpfSk7dmFyIGI9dy5jaGlsZHJlbigidGhlYWQiKTswPT09Yi5sZW5ndGgmJihiPWYoIjx0aGVhZC8+IikuYXBwZW5kVG8odykpO3IublRIZWFkPWJbMF07Yj13LmNoaWxkcmVuKCJ0Ym9keSIpOzA9PT1iLmxlbmd0aCYmKGI9ZigiPHRib2R5Lz4iKS5hcHBlbmRUbyh3KSk7ci5uVEJvZHk9YlswXTtiPXcuY2hpbGRyZW4oInRmb290Iik7MD09PWIubGVuZ3RoJiYwPGEubGVuZ3RoJiYoIiIhPT1yLm9TY3JvbGwuc1h8fCIiIT09ci5vU2Nyb2xsLnNZKSYmKGI9ZigiPHRmb290Lz4iKS5hcHBlbmRUbyh3KSk7MD09PWIubGVuZ3RofHwwPT09Yi5jaGlsZHJlbigpLmxlbmd0aD93LmFkZENsYXNzKHguc05vRm9vdGVyKTowPGIubGVuZ3RoJiYoci5uVEZvb3Q9YlswXSxmYShyLmFvRm9vdGVyLHIublRGb290KSk7aWYoZy5hYURhdGEpZm9yKGs9MDtrPGcuYWFEYXRhLmxlbmd0aDtrKyspUihyLGcuYWFEYXRhW2tdKTtlbHNlKHIuYkRlZmVyTG9hZGluZ3x8CiJkb20iPT1EKHIpKSYmcGEocixmKHIublRCb2R5KS5jaGlsZHJlbigidHIiKSk7ci5haURpc3BsYXk9ci5haURpc3BsYXlNYXN0ZXIuc2xpY2UoKTtyLmJJbml0aWFsaXNlZD0hMDshMT09PW4mJmphKHIpfTtnLmJTdGF0ZVNhdmU/KEMuYlN0YXRlU2F2ZT0hMCxFKHIsImFvRHJhd0NhbGxiYWNrIixCYSwic3RhdGVfc2F2ZSIpLE9iKHIsZyxlKSk6ZSgpfX0pO2I9bnVsbDtyZXR1cm4gdGhpc30sQyx0LHgsY2I9e30sUmI9L1tcclxuXHUyMDI4XS9nLEVhPS88Lio/Pi9nLGNjPS9eXGR7Miw0fVtcLlwvXC1dXGR7MSwyfVtcLlwvXC1dXGR7MSwyfShbVCBdezF9XGR7MSwyfVs6XC5dXGR7Mn0oW1wuOl1cZHsyfSk/KT8kLyxkYz0vKFwvfFwufFwqfFwrfFw/fFx8fFwofFwpfFxbfFxdfFx7fFx9fFxcfFwkfFxefFwtKS9nLGJiPS9bJywkwqPigqzCpSVcdTIwMDlcdTIwMkZcdTIwQkRcdTIwYTlcdTIwQkFyZmvJg86eXS9naSxQPWZ1bmN0aW9uKGEpe3JldHVybiBhJiYhMCE9PWEmJiItIiE9PWE/ITE6CiEwfSxTYj1mdW5jdGlvbihhKXt2YXIgYj1wYXJzZUludChhLDEwKTtyZXR1cm4haXNOYU4oYikmJmlzRmluaXRlKGEpP2I6bnVsbH0sVGI9ZnVuY3Rpb24oYSxiKXtjYltiXXx8KGNiW2JdPW5ldyBSZWdFeHAoVWEoYiksImciKSk7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYSYmIi4iIT09Yj9hLnJlcGxhY2UoL1wuL2csIiIpLnJlcGxhY2UoY2JbYl0sIi4iKTphfSxkYj1mdW5jdGlvbihhLGIsYyl7dmFyIGQ9InN0cmluZyI9PT10eXBlb2YgYTtpZihQKGEpKXJldHVybiEwO2ImJmQmJihhPVRiKGEsYikpO2MmJmQmJihhPWEucmVwbGFjZShiYiwiIikpO3JldHVybiFpc05hTihwYXJzZUZsb2F0KGEpKSYmaXNGaW5pdGUoYSl9LFViPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gUChhKT8hMDpQKGEpfHwic3RyaW5nIj09PXR5cGVvZiBhP2RiKGEucmVwbGFjZShFYSwiIiksYixjKT8hMDpudWxsOm51bGx9LEo9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPVtdLGU9MCxoPWEubGVuZ3RoO2lmKGMhPT0KcClmb3IoO2U8aDtlKyspYVtlXSYmYVtlXVtiXSYmZC5wdXNoKGFbZV1bYl1bY10pO2Vsc2UgZm9yKDtlPGg7ZSsrKWFbZV0mJmQucHVzaChhW2VdW2JdKTtyZXR1cm4gZH0sbGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9W10saD0wLGc9Yi5sZW5ndGg7aWYoZCE9PXApZm9yKDtoPGc7aCsrKWFbYltoXV1bY10mJmUucHVzaChhW2JbaF1dW2NdW2RdKTtlbHNlIGZvcig7aDxnO2grKyllLnB1c2goYVtiW2hdXVtjXSk7cmV0dXJuIGV9LFo9ZnVuY3Rpb24oYSxiKXt2YXIgYz1bXTtpZihiPT09cCl7Yj0wO3ZhciBkPWF9ZWxzZSBkPWIsYj1hO2ZvcihhPWI7YTxkO2ErKyljLnB1c2goYSk7cmV0dXJuIGN9LFZiPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1bXSxjPTAsZD1hLmxlbmd0aDtjPGQ7YysrKWFbY10mJmIucHVzaChhW2NdKTtyZXR1cm4gYn0sdGE9ZnVuY3Rpb24oYSl7YTp7aWYoISgyPmEubGVuZ3RoKSl7dmFyIGI9YS5zbGljZSgpLnNvcnQoKTtmb3IodmFyIGM9YlswXSxkPTEsCmU9Yi5sZW5ndGg7ZDxlO2QrKyl7aWYoYltkXT09PWMpe2I9ITE7YnJlYWsgYX1jPWJbZF19fWI9ITB9aWYoYilyZXR1cm4gYS5zbGljZSgpO2I9W107ZT1hLmxlbmd0aDt2YXIgaCxnPTA7ZD0wO2E6Zm9yKDtkPGU7ZCsrKXtjPWFbZF07Zm9yKGg9MDtoPGc7aCsrKWlmKGJbaF09PT1jKWNvbnRpbnVlIGE7Yi5wdXNoKGMpO2crK31yZXR1cm4gYn07cS51dGlsPXt0aHJvdHRsZTpmdW5jdGlvbihhLGIpe3ZhciBjPWIhPT1wP2I6MjAwLGQsZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYj10aGlzLGc9K25ldyBEYXRlLGY9YXJndW1lbnRzO2QmJmc8ZCtjPyhjbGVhclRpbWVvdXQoZSksZT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZD1wO2EuYXBwbHkoYixmKX0sYykpOihkPWcsYS5hcHBseShiLGYpKX19LGVzY2FwZVJlZ2V4OmZ1bmN0aW9uKGEpe3JldHVybiBhLnJlcGxhY2UoZGMsIlxcJDEiKX19O3ZhciBGPWZ1bmN0aW9uKGEsYixjKXthW2JdIT09cCYmKGFbY109YVtiXSl9LGRhPS9cWy4qP1xdJC8sClg9L1woXCkkLyxVYT1xLnV0aWwuZXNjYXBlUmVnZXgseWE9ZigiPGRpdj4iKVswXSwkYj15YS50ZXh0Q29udGVudCE9PXAsYmM9LzwuKj8+L2csU2E9cS51dGlsLnRocm90dGxlLFdiPVtdLEc9QXJyYXkucHJvdG90eXBlLGVjPWZ1bmN0aW9uKGEpe3ZhciBiLGM9cS5zZXR0aW5ncyxkPWYubWFwKGMsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5uVGFibGV9KTtpZihhKXtpZihhLm5UYWJsZSYmYS5vQXBpKXJldHVyblthXTtpZihhLm5vZGVOYW1lJiYidGFibGUiPT09YS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXt2YXIgZT1mLmluQXJyYXkoYSxkKTtyZXR1cm4tMSE9PWU/W2NbZV1dOm51bGx9aWYoYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBhLnNldHRpbmdzKXJldHVybiBhLnNldHRpbmdzKCkudG9BcnJheSgpOyJzdHJpbmciPT09dHlwZW9mIGE/Yj1mKGEpOmEgaW5zdGFuY2VvZiBmJiYoYj1hKX1lbHNlIHJldHVybltdO2lmKGIpcmV0dXJuIGIubWFwKGZ1bmN0aW9uKGEpe2U9Zi5pbkFycmF5KHRoaXMsCmQpO3JldHVybi0xIT09ZT9jW2VdOm51bGx9KS50b0FycmF5KCl9O3ZhciB2PWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YgdikpcmV0dXJuIG5ldyB2KGEsYik7dmFyIGM9W10sZD1mdW5jdGlvbihhKXsoYT1lYyhhKSkmJmMucHVzaC5hcHBseShjLGEpfTtpZihmLmlzQXJyYXkoYSkpZm9yKHZhciBlPTAsaD1hLmxlbmd0aDtlPGg7ZSsrKWQoYVtlXSk7ZWxzZSBkKGEpO3RoaXMuY29udGV4dD10YShjKTtiJiZmLm1lcmdlKHRoaXMsYik7dGhpcy5zZWxlY3Rvcj17cm93czpudWxsLGNvbHM6bnVsbCxvcHRzOm51bGx9O3YuZXh0ZW5kKHRoaXMsdGhpcyxXYil9O3EuQXBpPXY7Zi5leHRlbmQodi5wcm90b3R5cGUse2FueTpmdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5jb3VudCgpfSxjb25jYXQ6Ry5jb25jYXQsY29udGV4dDpbXSxjb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZsYXR0ZW4oKS5sZW5ndGh9LGVhY2g6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsYz0KdGhpcy5sZW5ndGg7YjxjO2IrKylhLmNhbGwodGhpcyx0aGlzW2JdLGIsdGhpcyk7cmV0dXJuIHRoaXN9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuY29udGV4dDtyZXR1cm4gYi5sZW5ndGg+YT9uZXcgdihiW2FdLHRoaXNbYV0pOm51bGx9LGZpbHRlcjpmdW5jdGlvbihhKXt2YXIgYj1bXTtpZihHLmZpbHRlciliPUcuZmlsdGVyLmNhbGwodGhpcyxhLHRoaXMpO2Vsc2UgZm9yKHZhciBjPTAsZD10aGlzLmxlbmd0aDtjPGQ7YysrKWEuY2FsbCh0aGlzLHRoaXNbY10sYyx0aGlzKSYmYi5wdXNoKHRoaXNbY10pO3JldHVybiBuZXcgdih0aGlzLmNvbnRleHQsYil9LGZsYXR0ZW46ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LGEuY29uY2F0LmFwcGx5KGEsdGhpcy50b0FycmF5KCkpKX0sam9pbjpHLmpvaW4saW5kZXhPZjpHLmluZGV4T2Z8fGZ1bmN0aW9uKGEsYil7Yj1ifHwwO2Zvcih2YXIgYz10aGlzLmxlbmd0aDtiPGM7YisrKWlmKHRoaXNbYl09PT0KYSlyZXR1cm4gYjtyZXR1cm4tMX0saXRlcmF0b3I6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9W10saCxnLGY9dGhpcy5jb250ZXh0LGwsbj10aGlzLnNlbGVjdG9yOyJzdHJpbmciPT09dHlwZW9mIGEmJihkPWMsYz1iLGI9YSxhPSExKTt2YXIgbT0wO2ZvcihoPWYubGVuZ3RoO208aDttKyspe3ZhciBxPW5ldyB2KGZbbV0pO2lmKCJ0YWJsZSI9PT1iKXt2YXIgdT1jLmNhbGwocSxmW21dLG0pO3UhPT1wJiZlLnB1c2godSl9ZWxzZSBpZigiY29sdW1ucyI9PT1ifHwicm93cyI9PT1iKXU9Yy5jYWxsKHEsZlttXSx0aGlzW21dLG0pLHUhPT1wJiZlLnB1c2godSk7ZWxzZSBpZigiY29sdW1uIj09PWJ8fCJjb2x1bW4tcm93cyI9PT1ifHwicm93Ij09PWJ8fCJjZWxsIj09PWIpe3ZhciB0PXRoaXNbbV07ImNvbHVtbi1yb3dzIj09PWImJihsPUZhKGZbbV0sbi5vcHRzKSk7dmFyIHg9MDtmb3IoZz10Lmxlbmd0aDt4PGc7eCsrKXU9dFt4XSx1PSJjZWxsIj09PWI/Yy5jYWxsKHEsZlttXSx1LnJvdywKdS5jb2x1bW4sbSx4KTpjLmNhbGwocSxmW21dLHUsbSx4LGwpLHUhPT1wJiZlLnB1c2godSl9fXJldHVybiBlLmxlbmd0aHx8ZD8oYT1uZXcgdihmLGE/ZS5jb25jYXQuYXBwbHkoW10sZSk6ZSksYj1hLnNlbGVjdG9yLGIucm93cz1uLnJvd3MsYi5jb2xzPW4uY29scyxiLm9wdHM9bi5vcHRzLGEpOnRoaXN9LGxhc3RJbmRleE9mOkcubGFzdEluZGV4T2Z8fGZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuaW5kZXhPZi5hcHBseSh0aGlzLnRvQXJyYXkucmV2ZXJzZSgpLGFyZ3VtZW50cyl9LGxlbmd0aDowLG1hcDpmdW5jdGlvbihhKXt2YXIgYj1bXTtpZihHLm1hcCliPUcubWFwLmNhbGwodGhpcyxhLHRoaXMpO2Vsc2UgZm9yKHZhciBjPTAsZD10aGlzLmxlbmd0aDtjPGQ7YysrKWIucHVzaChhLmNhbGwodGhpcyx0aGlzW2NdLGMpKTtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LGIpfSxwbHVjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGJbYV19KX0sCnBvcDpHLnBvcCxwdXNoOkcucHVzaCxyZWR1Y2U6Ry5yZWR1Y2V8fGZ1bmN0aW9uKGEsYil7cmV0dXJuIG1iKHRoaXMsYSxiLDAsdGhpcy5sZW5ndGgsMSl9LHJlZHVjZVJpZ2h0OkcucmVkdWNlUmlnaHR8fGZ1bmN0aW9uKGEsYil7cmV0dXJuIG1iKHRoaXMsYSxiLHRoaXMubGVuZ3RoLTEsLTEsLTEpfSxyZXZlcnNlOkcucmV2ZXJzZSxzZWxlY3RvcjpudWxsLHNoaWZ0Okcuc2hpZnQsc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LHRoaXMpfSxzb3J0Okcuc29ydCxzcGxpY2U6Ry5zcGxpY2UsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiBHLnNsaWNlLmNhbGwodGhpcyl9LHRvJDpmdW5jdGlvbigpe3JldHVybiBmKHRoaXMpfSx0b0pRdWVyeTpmdW5jdGlvbigpe3JldHVybiBmKHRoaXMpfSx1bmlxdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHYodGhpcy5jb250ZXh0LHRhKHRoaXMpKX0sdW5zaGlmdDpHLnVuc2hpZnR9KTt2LmV4dGVuZD1mdW5jdGlvbihhLApiLGMpe2lmKGMubGVuZ3RoJiZiJiYoYiBpbnN0YW5jZW9mIHZ8fGIuX19kdF93cmFwcGVyKSl7dmFyIGQsZT1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGQ9Yi5hcHBseShhLGFyZ3VtZW50cyk7di5leHRlbmQoZCxkLGMubWV0aG9kRXh0KTtyZXR1cm4gZH19O3ZhciBoPTA7Zm9yKGQ9Yy5sZW5ndGg7aDxkO2grKyl7dmFyIGc9Y1toXTtiW2cubmFtZV09ImZ1bmN0aW9uIj09PWcudHlwZT9lKGEsZy52YWwsZyk6Im9iamVjdCI9PT1nLnR5cGU/e306Zy52YWw7YltnLm5hbWVdLl9fZHRfd3JhcHBlcj0hMDt2LmV4dGVuZChhLGJbZy5uYW1lXSxnLnByb3BFeHQpfX19O3YucmVnaXN0ZXI9dD1mdW5jdGlvbihhLGIpe2lmKGYuaXNBcnJheShhKSlmb3IodmFyIGM9MCxkPWEubGVuZ3RoO2M8ZDtjKyspdi5yZWdpc3RlcihhW2NdLGIpO2Vsc2V7ZD1hLnNwbGl0KCIuIik7dmFyIGU9V2IsaDthPTA7Zm9yKGM9ZC5sZW5ndGg7YTxjO2ErKyl7dmFyIGc9KGg9LTEhPT0KZFthXS5pbmRleE9mKCIoKSIpKT9kW2FdLnJlcGxhY2UoIigpIiwiIik6ZFthXTthOnt2YXIgaz0wO2Zvcih2YXIgbD1lLmxlbmd0aDtrPGw7aysrKWlmKGVba10ubmFtZT09PWcpe2s9ZVtrXTticmVhayBhfWs9bnVsbH1rfHwoaz17bmFtZTpnLHZhbDp7fSxtZXRob2RFeHQ6W10scHJvcEV4dDpbXSx0eXBlOiJvYmplY3QifSxlLnB1c2goaykpO2E9PT1jLTE/KGsudmFsPWIsay50eXBlPSJmdW5jdGlvbiI9PT10eXBlb2YgYj8iZnVuY3Rpb24iOmYuaXNQbGFpbk9iamVjdChiKT8ib2JqZWN0Ijoib3RoZXIiKTplPWg/ay5tZXRob2RFeHQ6ay5wcm9wRXh0fX19O3YucmVnaXN0ZXJQbHVyYWw9eD1mdW5jdGlvbihhLGIsYyl7di5yZWdpc3RlcihhLGMpO3YucmVnaXN0ZXIoYixmdW5jdGlvbigpe3ZhciBhPWMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBhPT09dGhpcz90aGlzOmEgaW5zdGFuY2VvZiB2P2EubGVuZ3RoP2YuaXNBcnJheShhWzBdKT9uZXcgdihhLmNvbnRleHQsCmFbMF0pOmFbMF06cDphfSl9O3ZhciBmYz1mdW5jdGlvbihhLGIpe2lmKCJudW1iZXIiPT09dHlwZW9mIGEpcmV0dXJuW2JbYV1dO3ZhciBjPWYubWFwKGIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5uVGFibGV9KTtyZXR1cm4gZihjKS5maWx0ZXIoYSkubWFwKGZ1bmN0aW9uKGEpe2E9Zi5pbkFycmF5KHRoaXMsYyk7cmV0dXJuIGJbYV19KS50b0FycmF5KCl9O3QoInRhYmxlcygpIixmdW5jdGlvbihhKXtyZXR1cm4gYT9uZXcgdihmYyhhLHRoaXMuY29udGV4dCkpOnRoaXN9KTt0KCJ0YWJsZSgpIixmdW5jdGlvbihhKXthPXRoaXMudGFibGVzKGEpO3ZhciBiPWEuY29udGV4dDtyZXR1cm4gYi5sZW5ndGg/bmV3IHYoYlswXSk6YX0pO3goInRhYmxlcygpLm5vZGVzKCkiLCJ0YWJsZSgpLm5vZGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5UYWJsZX0sMSl9KTt4KCJ0YWJsZXMoKS5ib2R5KCkiLCJ0YWJsZSgpLmJvZHkoKSIsCmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtyZXR1cm4gYS5uVEJvZHl9LDEpfSk7eCgidGFibGVzKCkuaGVhZGVyKCkiLCJ0YWJsZSgpLmhlYWRlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRIZWFkfSwxKX0pO3goInRhYmxlcygpLmZvb3RlcigpIiwidGFibGUoKS5mb290ZXIoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5URm9vdH0sMSl9KTt4KCJ0YWJsZXMoKS5jb250YWluZXJzKCkiLCJ0YWJsZSgpLmNvbnRhaW5lcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRhYmxlV3JhcHBlcn0sMSl9KTt0KCJkcmF3KCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7InBhZ2UiPT09CmE/UyhiKTooInN0cmluZyI9PT10eXBlb2YgYSYmKGE9ImZ1bGwtaG9sZCI9PT1hPyExOiEwKSxWKGIsITE9PT1hKSl9KX0pO3QoInBhZ2UoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wP3RoaXMucGFnZS5pbmZvKCkucGFnZTp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7WGEoYixhKX0pfSk7dCgicGFnZS5pbmZvKCkiLGZ1bmN0aW9uKGEpe2lmKDA9PT10aGlzLmNvbnRleHQubGVuZ3RoKXJldHVybiBwO2E9dGhpcy5jb250ZXh0WzBdO3ZhciBiPWEuX2lEaXNwbGF5U3RhcnQsYz1hLm9GZWF0dXJlcy5iUGFnaW5hdGU/YS5faURpc3BsYXlMZW5ndGg6LTEsZD1hLmZuUmVjb3Jkc0Rpc3BsYXkoKSxlPS0xPT09YztyZXR1cm57cGFnZTplPzA6TWF0aC5mbG9vcihiL2MpLHBhZ2VzOmU/MTpNYXRoLmNlaWwoZC9jKSxzdGFydDpiLGVuZDphLmZuRGlzcGxheUVuZCgpLGxlbmd0aDpjLHJlY29yZHNUb3RhbDphLmZuUmVjb3Jkc1RvdGFsKCkscmVjb3Jkc0Rpc3BsYXk6ZCwKc2VydmVyU2lkZToic3NwIj09PUQoYSl9fSk7dCgicGFnZS5sZW4oKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wPzAhPT10aGlzLmNvbnRleHQubGVuZ3RoP3RoaXMuY29udGV4dFswXS5faURpc3BsYXlMZW5ndGg6cDp0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7VmEoYixhKX0pfSk7dmFyIFhiPWZ1bmN0aW9uKGEsYixjKXtpZihjKXt2YXIgZD1uZXcgdihhKTtkLm9uZSgiZHJhdyIsZnVuY3Rpb24oKXtjKGQuYWpheC5qc29uKCkpfSl9aWYoInNzcCI9PUQoYSkpVihhLGIpO2Vsc2V7SyhhLCEwKTt2YXIgZT1hLmpxWEhSO2UmJjQhPT1lLnJlYWR5U3RhdGUmJmUuYWJvcnQoKTt2YShhLFtdLGZ1bmN0aW9uKGMpe3FhKGEpO2M9d2EoYSxjKTtmb3IodmFyIGQ9MCxlPWMubGVuZ3RoO2Q8ZTtkKyspUihhLGNbZF0pO1YoYSxiKTtLKGEsITEpfSl9fTt0KCJhamF4Lmpzb24oKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7aWYoMDxhLmxlbmd0aClyZXR1cm4gYVswXS5qc29ufSk7CnQoImFqYXgucGFyYW1zKCkiLGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5jb250ZXh0O2lmKDA8YS5sZW5ndGgpcmV0dXJuIGFbMF0ub0FqYXhEYXRhfSk7dCgiYWpheC5yZWxvYWQoKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGMpe1hiKGMsITE9PT1iLGEpfSl9KTt0KCJhamF4LnVybCgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQ7aWYoYT09PXApe2lmKDA9PT1iLmxlbmd0aClyZXR1cm4gcDtiPWJbMF07cmV0dXJuIGIuYWpheD9mLmlzUGxhaW5PYmplY3QoYi5hamF4KT9iLmFqYXgudXJsOmIuYWpheDpiLnNBamF4U291cmNlfXJldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7Zi5pc1BsYWluT2JqZWN0KGIuYWpheCk/Yi5hamF4LnVybD1hOmIuYWpheD1hfSl9KTt0KCJhamF4LnVybCgpLmxvYWQoKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGMpe1hiKGMsCiExPT09YixhKX0pfSk7dmFyIGViPWZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIGg9W10sZyxrLGw7dmFyIG49dHlwZW9mIGI7YiYmInN0cmluZyIhPT1uJiYiZnVuY3Rpb24iIT09biYmYi5sZW5ndGghPT1wfHwoYj1bYl0pO249MDtmb3Ioaz1iLmxlbmd0aDtuPGs7bisrKXt2YXIgbT1iW25dJiZiW25dLnNwbGl0JiYhYltuXS5tYXRjaCgvW1xbXCg6XS8pP2Jbbl0uc3BsaXQoIiwiKTpbYltuXV07dmFyIHE9MDtmb3IobD1tLmxlbmd0aDtxPGw7cSsrKShnPWMoInN0cmluZyI9PT10eXBlb2YgbVtxXT9mLnRyaW0obVtxXSk6bVtxXSkpJiZnLmxlbmd0aCYmKGg9aC5jb25jYXQoZykpfWE9Qy5zZWxlY3RvclthXTtpZihhLmxlbmd0aClmb3Iobj0wLGs9YS5sZW5ndGg7bjxrO24rKyloPWFbbl0oZCxlLGgpO3JldHVybiB0YShoKX0sZmI9ZnVuY3Rpb24oYSl7YXx8KGE9e30pO2EuZmlsdGVyJiZhLnNlYXJjaD09PXAmJihhLnNlYXJjaD1hLmZpbHRlcik7cmV0dXJuIGYuZXh0ZW5kKHtzZWFyY2g6Im5vbmUiLApvcmRlcjoiY3VycmVudCIscGFnZToiYWxsIn0sYSl9LGdiPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wLGM9YS5sZW5ndGg7YjxjO2IrKylpZigwPGFbYl0ubGVuZ3RoKXJldHVybiBhWzBdPWFbYl0sYVswXS5sZW5ndGg9MSxhLmxlbmd0aD0xLGEuY29udGV4dD1bYS5jb250ZXh0W2JdXSxhO2EubGVuZ3RoPTA7cmV0dXJuIGF9LEZhPWZ1bmN0aW9uKGEsYil7dmFyIGM9W10sZD1hLmFpRGlzcGxheTt2YXIgZT1hLmFpRGlzcGxheU1hc3Rlcjt2YXIgaD1iLnNlYXJjaDt2YXIgZz1iLm9yZGVyO2I9Yi5wYWdlO2lmKCJzc3AiPT1EKGEpKXJldHVybiJyZW1vdmVkIj09PWg/W106WigwLGUubGVuZ3RoKTtpZigiY3VycmVudCI9PWIpZm9yKGc9YS5faURpc3BsYXlTdGFydCxhPWEuZm5EaXNwbGF5RW5kKCk7ZzxhO2crKyljLnB1c2goZFtnXSk7ZWxzZSBpZigiY3VycmVudCI9PWd8fCJhcHBsaWVkIj09ZylpZigibm9uZSI9PWgpYz1lLnNsaWNlKCk7ZWxzZSBpZigiYXBwbGllZCI9PWgpYz0KZC5zbGljZSgpO2Vsc2V7aWYoInJlbW92ZWQiPT1oKXt2YXIgaz17fTtnPTA7Zm9yKGE9ZC5sZW5ndGg7ZzxhO2crKylrW2RbZ11dPW51bGw7Yz1mLm1hcChlLGZ1bmN0aW9uKGEpe3JldHVybiBrLmhhc093blByb3BlcnR5KGEpP251bGw6YX0pfX1lbHNlIGlmKCJpbmRleCI9PWd8fCJvcmlnaW5hbCI9PWcpZm9yKGc9MCxhPWEuYW9EYXRhLmxlbmd0aDtnPGE7ZysrKSJub25lIj09aD9jLnB1c2goZyk6KGU9Zi5pbkFycmF5KGcsZCksKC0xPT09ZSYmInJlbW92ZWQiPT1ofHwwPD1lJiYiYXBwbGllZCI9PWgpJiZjLnB1c2goZykpO3JldHVybiBjfSxnYz1mdW5jdGlvbihhLGIsYyl7dmFyIGQ7cmV0dXJuIGViKCJyb3ciLGIsZnVuY3Rpb24oYil7dmFyIGU9U2IoYiksZz1hLmFvRGF0YTtpZihudWxsIT09ZSYmIWMpcmV0dXJuW2VdO2R8fChkPUZhKGEsYykpO2lmKG51bGwhPT1lJiYtMSE9PWYuaW5BcnJheShlLGQpKXJldHVybltlXTtpZihudWxsPT09Ynx8Yj09PXB8fCIiPT09YilyZXR1cm4gZDsKaWYoImZ1bmN0aW9uIj09PXR5cGVvZiBiKXJldHVybiBmLm1hcChkLGZ1bmN0aW9uKGEpe3ZhciBjPWdbYV07cmV0dXJuIGIoYSxjLl9hRGF0YSxjLm5Ucik/YTpudWxsfSk7aWYoYi5ub2RlTmFtZSl7ZT1iLl9EVF9Sb3dJbmRleDt2YXIgaz1iLl9EVF9DZWxsSW5kZXg7aWYoZSE9PXApcmV0dXJuIGdbZV0mJmdbZV0ublRyPT09Yj9bZV06W107aWYoaylyZXR1cm4gZ1trLnJvd10mJmdbay5yb3ddLm5Ucj09PWIucGFyZW50Tm9kZT9bay5yb3ddOltdO2U9ZihiKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpO3JldHVybiBlLmxlbmd0aD9bZS5kYXRhKCJkdC1yb3ciKV06W119aWYoInN0cmluZyI9PT10eXBlb2YgYiYmIiMiPT09Yi5jaGFyQXQoMCkmJihlPWEuYUlkc1tiLnJlcGxhY2UoL14jLywiIildLGUhPT1wKSlyZXR1cm5bZS5pZHhdO2U9VmIobGEoYS5hb0RhdGEsZCwiblRyIikpO3JldHVybiBmKGUpLmZpbHRlcihiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fRFRfUm93SW5kZXh9KS50b0FycmF5KCl9LAphLGMpfTt0KCJyb3dzKCkiLGZ1bmN0aW9uKGEsYil7YT09PXA/YT0iIjpmLmlzUGxhaW5PYmplY3QoYSkmJihiPWEsYT0iIik7Yj1mYihiKTt2YXIgYz10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7cmV0dXJuIGdjKGMsYSxiKX0sMSk7Yy5zZWxlY3Rvci5yb3dzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTt0KCJyb3dzKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvRGF0YVtiXS5uVHJ8fHB9LDEpfSk7dCgicm93cygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcighMCwicm93cyIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gbGEoYS5hb0RhdGEsYiwiX2FEYXRhIil9LDEpfSk7eCgicm93cygpLmNhY2hlKCkiLCJyb3coKS5jYWNoZSgpIixmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihiLGMpe2I9Yi5hb0RhdGFbY107CnJldHVybiJzZWFyY2giPT09YT9iLl9hRmlsdGVyRGF0YTpiLl9hU29ydERhdGF9LDEpfSk7eCgicm93cygpLmludmFsaWRhdGUoKSIsInJvdygpLmludmFsaWRhdGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInJvdyIsZnVuY3Rpb24oYixjKXtlYShiLGMsYSl9KX0pO3goInJvd3MoKS5pbmRleGVzKCkiLCJyb3coKS5pbmRleCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGJ9LDEpfSk7eCgicm93cygpLmlkcygpIiwicm93KCkuaWQoKSIsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9dGhpcy5jb250ZXh0LGQ9MCxlPWMubGVuZ3RoO2Q8ZTtkKyspZm9yKHZhciBoPTAsZz10aGlzW2RdLmxlbmd0aDtoPGc7aCsrKXt2YXIgZj1jW2RdLnJvd0lkRm4oY1tkXS5hb0RhdGFbdGhpc1tkXVtoXV0uX2FEYXRhKTtiLnB1c2goKCEwPT09YT8iIyI6IiIpK2YpfXJldHVybiBuZXcgdihjLGIpfSk7eCgicm93cygpLnJlbW92ZSgpIiwKInJvdygpLnJlbW92ZSgpIixmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5pdGVyYXRvcigicm93IixmdW5jdGlvbihiLGMsZCl7dmFyIGU9Yi5hb0RhdGEsaD1lW2NdLGcsZjtlLnNwbGljZShjLDEpO3ZhciBsPTA7Zm9yKGc9ZS5sZW5ndGg7bDxnO2wrKyl7dmFyIG49ZVtsXTt2YXIgbT1uLmFuQ2VsbHM7bnVsbCE9PW4ublRyJiYobi5uVHIuX0RUX1Jvd0luZGV4PWwpO2lmKG51bGwhPT1tKWZvcihuPTAsZj1tLmxlbmd0aDtuPGY7bisrKW1bbl0uX0RUX0NlbGxJbmRleC5yb3c9bH1yYShiLmFpRGlzcGxheU1hc3RlcixjKTtyYShiLmFpRGlzcGxheSxjKTtyYShhW2RdLGMsITEpOzA8Yi5faVJlY29yZHNEaXNwbGF5JiZiLl9pUmVjb3Jkc0Rpc3BsYXktLTtXYShiKTtjPWIucm93SWRGbihoLl9hRGF0YSk7YyE9PXAmJmRlbGV0ZSBiLmFJZHNbY119KTt0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTAsZD1hLmFvRGF0YS5sZW5ndGg7YjxkO2IrKylhLmFvRGF0YVtiXS5pZHg9CmJ9KTtyZXR1cm4gdGhpc30pO3QoInJvd3MuYWRkKCkiLGZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXt2YXIgYyxkPVtdO3ZhciBnPTA7Zm9yKGM9YS5sZW5ndGg7ZzxjO2crKyl7dmFyIGY9YVtnXTtmLm5vZGVOYW1lJiYiVFIiPT09Zi5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpP2QucHVzaChwYShiLGYpWzBdKTpkLnB1c2goUihiLGYpKX1yZXR1cm4gZH0sMSksYz10aGlzLnJvd3MoLTEpO2MucG9wKCk7Zi5tZXJnZShjLGIpO3JldHVybiBjfSk7dCgicm93KCkiLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGdiKHRoaXMucm93cyhhLGIpKX0pO3QoInJvdygpLmRhdGEoKSIsZnVuY3Rpb24oYSl7dmFyIGI9dGhpcy5jb250ZXh0O2lmKGE9PT1wKXJldHVybiBiLmxlbmd0aCYmdGhpcy5sZW5ndGg/YlswXS5hb0RhdGFbdGhpc1swXV0uX2FEYXRhOnA7dmFyIGM9YlswXS5hb0RhdGFbdGhpc1swXV07Yy5fYURhdGE9YTtmLmlzQXJyYXkoYSkmJmMublRyLmlkJiYKUShiWzBdLnJvd0lkKShhLGMublRyLmlkKTtlYShiWzBdLHRoaXNbMF0sImRhdGEiKTtyZXR1cm4gdGhpc30pO3QoInJvdygpLm5vZGUoKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoJiZ0aGlzLmxlbmd0aD9hWzBdLmFvRGF0YVt0aGlzWzBdXS5uVHJ8fG51bGw6bnVsbH0pO3QoInJvdy5hZGQoKSIsZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIGYmJmEubGVuZ3RoJiYoYT1hWzBdKTt2YXIgYj10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYil7cmV0dXJuIGEubm9kZU5hbWUmJiJUUiI9PT1hLm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk/cGEoYixhKVswXTpSKGIsYSl9KTtyZXR1cm4gdGhpcy5yb3coYlswXSl9KTt2YXIgaGM9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9W10saD1mdW5jdGlvbihiLGMpe2lmKGYuaXNBcnJheShiKXx8YiBpbnN0YW5jZW9mIGYpZm9yKHZhciBkPTAsZz1iLmxlbmd0aDtkPGc7ZCsrKWgoYltkXSxjKTtlbHNlIGIubm9kZU5hbWUmJgoidHIiPT09Yi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP2UucHVzaChiKTooZD1mKCI8dHI+PHRkLz48L3RyPiIpLmFkZENsYXNzKGMpLGYoInRkIixkKS5hZGRDbGFzcyhjKS5odG1sKGIpWzBdLmNvbFNwYW49VyhhKSxlLnB1c2goZFswXSkpfTtoKGMsZCk7Yi5fZGV0YWlscyYmYi5fZGV0YWlscy5kZXRhY2goKTtiLl9kZXRhaWxzPWYoZSk7Yi5fZGV0YWlsc1Nob3cmJmIuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoYi5uVHIpfSxoYj1mdW5jdGlvbihhLGIpe3ZhciBjPWEuY29udGV4dDtjLmxlbmd0aCYmKGE9Y1swXS5hb0RhdGFbYiE9PXA/YjphWzBdXSkmJmEuX2RldGFpbHMmJihhLl9kZXRhaWxzLnJlbW92ZSgpLGEuX2RldGFpbHNTaG93PXAsYS5fZGV0YWlscz1wKX0sWWI9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hLmNvbnRleHQ7Yy5sZW5ndGgmJmEubGVuZ3RoJiYoYT1jWzBdLmFvRGF0YVthWzBdXSxhLl9kZXRhaWxzJiYoKGEuX2RldGFpbHNTaG93PWIpP2EuX2RldGFpbHMuaW5zZXJ0QWZ0ZXIoYS5uVHIpOgphLl9kZXRhaWxzLmRldGFjaCgpLGljKGNbMF0pKSl9LGljPWZ1bmN0aW9uKGEpe3ZhciBiPW5ldyB2KGEpLGM9YS5hb0RhdGE7Yi5vZmYoImRyYXcuZHQuRFRfZGV0YWlscyBjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVF9kZXRhaWxzIGRlc3Ryb3kuZHQuRFRfZGV0YWlscyIpOzA8SihjLCJfZGV0YWlscyIpLmxlbmd0aCYmKGIub24oImRyYXcuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oZCxlKXthPT09ZSYmYi5yb3dzKHtwYWdlOiJjdXJyZW50In0pLmVxKDApLmVhY2goZnVuY3Rpb24oYSl7YT1jW2FdO2EuX2RldGFpbHNTaG93JiZhLl9kZXRhaWxzLmluc2VydEFmdGVyKGEublRyKX0pfSksYi5vbigiY29sdW1uLXZpc2liaWxpdHkuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oYixlLGYsZyl7aWYoYT09PWUpZm9yKGU9VyhlKSxmPTAsZz1jLmxlbmd0aDtmPGc7ZisrKWI9Y1tmXSxiLl9kZXRhaWxzJiZiLl9kZXRhaWxzLmNoaWxkcmVuKCJ0ZFtjb2xzcGFuXSIpLmF0dHIoImNvbHNwYW4iLAplKX0pLGIub24oImRlc3Ryb3kuZHQuRFRfZGV0YWlscyIsZnVuY3Rpb24oZCxlKXtpZihhPT09ZSlmb3IoZD0wLGU9Yy5sZW5ndGg7ZDxlO2QrKyljW2RdLl9kZXRhaWxzJiZoYihiLGQpfSkpfTt0KCJyb3coKS5jaGlsZCgpIixmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY29udGV4dDtpZihhPT09cClyZXR1cm4gYy5sZW5ndGgmJnRoaXMubGVuZ3RoP2NbMF0uYW9EYXRhW3RoaXNbMF1dLl9kZXRhaWxzOnA7ITA9PT1hP3RoaXMuY2hpbGQuc2hvdygpOiExPT09YT9oYih0aGlzKTpjLmxlbmd0aCYmdGhpcy5sZW5ndGgmJmhjKGNbMF0sY1swXS5hb0RhdGFbdGhpc1swXV0sYSxiKTtyZXR1cm4gdGhpc30pO3QoWyJyb3coKS5jaGlsZC5zaG93KCkiLCJyb3coKS5jaGlsZCgpLnNob3coKSJdLGZ1bmN0aW9uKGEpe1liKHRoaXMsITApO3JldHVybiB0aGlzfSk7dChbInJvdygpLmNoaWxkLmhpZGUoKSIsInJvdygpLmNoaWxkKCkuaGlkZSgpIl0sZnVuY3Rpb24oKXtZYih0aGlzLCExKTsKcmV0dXJuIHRoaXN9KTt0KFsicm93KCkuY2hpbGQucmVtb3ZlKCkiLCJyb3coKS5jaGlsZCgpLnJlbW92ZSgpIl0sZnVuY3Rpb24oKXtoYih0aGlzKTtyZXR1cm4gdGhpc30pO3QoInJvdygpLmNoaWxkLmlzU2hvd24oKSIsZnVuY3Rpb24oKXt2YXIgYT10aGlzLmNvbnRleHQ7cmV0dXJuIGEubGVuZ3RoJiZ0aGlzLmxlbmd0aD9hWzBdLmFvRGF0YVt0aGlzWzBdXS5fZGV0YWlsc1Nob3d8fCExOiExfSk7dmFyIGpjPS9eKFteOl0rKToobmFtZXx2aXNJZHh8dmlzaWJsZSkkLyxaYj1mdW5jdGlvbihhLGIsYyxkLGUpe2M9W107ZD0wO2Zvcih2YXIgZj1lLmxlbmd0aDtkPGY7ZCsrKWMucHVzaChJKGEsZVtkXSxiKSk7cmV0dXJuIGN9LGtjPWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1hLmFvQ29sdW1ucyxlPUooZCwic05hbWUiKSxoPUooZCwiblRoIik7cmV0dXJuIGViKCJjb2x1bW4iLGIsZnVuY3Rpb24oYil7dmFyIGc9U2IoYik7aWYoIiI9PT1iKXJldHVybiBaKGQubGVuZ3RoKTtpZihudWxsIT09CmcpcmV0dXJuWzA8PWc/ZzpkLmxlbmd0aCtnXTtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGIpe3ZhciBsPUZhKGEsYyk7cmV0dXJuIGYubWFwKGQsZnVuY3Rpb24oYyxkKXtyZXR1cm4gYihkLFpiKGEsZCwwLDAsbCksaFtkXSk/ZDpudWxsfSl9dmFyIG49InN0cmluZyI9PT10eXBlb2YgYj9iLm1hdGNoKGpjKToiIjtpZihuKXN3aXRjaChuWzJdKXtjYXNlICJ2aXNJZHgiOmNhc2UgInZpc2libGUiOmc9cGFyc2VJbnQoblsxXSwxMCk7aWYoMD5nKXt2YXIgbT1mLm1hcChkLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYlZpc2libGU/YjpudWxsfSk7cmV0dXJuW21bbS5sZW5ndGgrZ11dfXJldHVybltiYShhLGcpXTtjYXNlICJuYW1lIjpyZXR1cm4gZi5tYXAoZSxmdW5jdGlvbihhLGIpe3JldHVybiBhPT09blsxXT9iOm51bGx9KTtkZWZhdWx0OnJldHVybltdfWlmKGIubm9kZU5hbWUmJmIuX0RUX0NlbGxJbmRleClyZXR1cm5bYi5fRFRfQ2VsbEluZGV4LmNvbHVtbl07Zz1mKGgpLmZpbHRlcihiKS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZi5pbkFycmF5KHRoaXMsCmgpfSkudG9BcnJheSgpO2lmKGcubGVuZ3RofHwhYi5ub2RlTmFtZSlyZXR1cm4gZztnPWYoYikuY2xvc2VzdCgiKltkYXRhLWR0LWNvbHVtbl0iKTtyZXR1cm4gZy5sZW5ndGg/W2cuZGF0YSgiZHQtY29sdW1uIildOltdfSxhLGMpfTt0KCJjb2x1bW5zKCkiLGZ1bmN0aW9uKGEsYil7YT09PXA/YT0iIjpmLmlzUGxhaW5PYmplY3QoYSkmJihiPWEsYT0iIik7Yj1mYihiKTt2YXIgYz10aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyl7cmV0dXJuIGtjKGMsYSxiKX0sMSk7Yy5zZWxlY3Rvci5jb2xzPWE7Yy5zZWxlY3Rvci5vcHRzPWI7cmV0dXJuIGN9KTt4KCJjb2x1bW5zKCkuaGVhZGVyKCkiLCJjb2x1bW4oKS5oZWFkZXIoKSIsZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uIixmdW5jdGlvbihhLGIpe3JldHVybiBhLmFvQ29sdW1uc1tiXS5uVGh9LDEpfSk7eCgiY29sdW1ucygpLmZvb3RlcigpIiwiY29sdW1uKCkuZm9vdGVyKCkiLGZ1bmN0aW9uKGEsCmIpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYW9Db2x1bW5zW2JdLm5UZn0sMSl9KTt4KCJjb2x1bW5zKCkuZGF0YSgpIiwiY29sdW1uKCkuZGF0YSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4tcm93cyIsWmIsMSl9KTt4KCJjb2x1bW5zKCkuZGF0YVNyYygpIiwiY29sdW1uKCkuZGF0YVNyYygpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGEuYW9Db2x1bW5zW2JdLm1EYXRhfSwxKX0pO3goImNvbHVtbnMoKS5jYWNoZSgpIiwiY29sdW1uKCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbi1yb3dzIixmdW5jdGlvbihiLGMsZCxlLGYpe3JldHVybiBsYShiLmFvRGF0YSxmLCJzZWFyY2giPT09YT8iX2FGaWx0ZXJEYXRhIjoiX2FTb3J0RGF0YSIsYyl9LDEpfSk7eCgiY29sdW1ucygpLm5vZGVzKCkiLAoiY29sdW1uKCkubm9kZXMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY29sdW1uLXJvd3MiLGZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGxhKGEuYW9EYXRhLGUsImFuQ2VsbHMiLGIpfSwxKX0pO3goImNvbHVtbnMoKS52aXNpYmxlKCkiLCJjb2x1bW4oKS52aXNpYmxlKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcyxkPXRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYixjKXtpZihhPT09cClyZXR1cm4gYi5hb0NvbHVtbnNbY10uYlZpc2libGU7dmFyIGQ9Yi5hb0NvbHVtbnMsZT1kW2NdLGg9Yi5hb0RhdGEsbjtpZihhIT09cCYmZS5iVmlzaWJsZSE9PWEpe2lmKGEpe3ZhciBtPWYuaW5BcnJheSghMCxKKGQsImJWaXNpYmxlIiksYysxKTtkPTA7Zm9yKG49aC5sZW5ndGg7ZDxuO2QrKyl7dmFyIHE9aFtkXS5uVHI7Yj1oW2RdLmFuQ2VsbHM7cSYmcS5pbnNlcnRCZWZvcmUoYltjXSxiW21dfHxudWxsKX19ZWxzZSBmKEooYi5hb0RhdGEsImFuQ2VsbHMiLApjKSkuZGV0YWNoKCk7ZS5iVmlzaWJsZT1hfX0pO2EhPT1wJiZ0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oZCl7aGEoZCxkLmFvSGVhZGVyKTtoYShkLGQuYW9Gb290ZXIpO2QuYWlEaXNwbGF5Lmxlbmd0aHx8ZihkLm5UQm9keSkuZmluZCgidGRbY29sc3Bhbl0iKS5hdHRyKCJjb2xzcGFuIixXKGQpKTtCYShkKTtjLml0ZXJhdG9yKCJjb2x1bW4iLGZ1bmN0aW9uKGMsZCl7QShjLG51bGwsImNvbHVtbi12aXNpYmlsaXR5IixbYyxkLGEsYl0pfSk7KGI9PT1wfHxiKSYmYy5jb2x1bW5zLmFkanVzdCgpfSk7cmV0dXJuIGR9KTt4KCJjb2x1bW5zKCkuaW5kZXhlcygpIiwiY29sdW1uKCkuaW5kZXgoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oYixjKXtyZXR1cm4idmlzaWJsZSI9PT1hP2NhKGIsYyk6Y30sMSl9KTt0KCJjb2x1bW5zLmFkanVzdCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7YWEoYSl9LAoxKX0pO3QoImNvbHVtbi5pbmRleCgpIixmdW5jdGlvbihhLGIpe2lmKDAhPT10aGlzLmNvbnRleHQubGVuZ3RoKXt2YXIgYz10aGlzLmNvbnRleHRbMF07aWYoImZyb21WaXNpYmxlIj09PWF8fCJ0b0RhdGEiPT09YSlyZXR1cm4gYmEoYyxiKTtpZigiZnJvbURhdGEiPT09YXx8InRvVmlzaWJsZSI9PT1hKXJldHVybiBjYShjLGIpfX0pO3QoImNvbHVtbigpIixmdW5jdGlvbihhLGIpe3JldHVybiBnYih0aGlzLmNvbHVtbnMoYSxiKSl9KTt2YXIgbGM9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEuYW9EYXRhLGU9RmEoYSxjKSxoPVZiKGxhKGQsZSwiYW5DZWxscyIpKSxnPWYoW10uY29uY2F0LmFwcGx5KFtdLGgpKSxrLGw9YS5hb0NvbHVtbnMubGVuZ3RoLG4sbSxxLHUsdCx2O3JldHVybiBlYigiY2VsbCIsYixmdW5jdGlvbihiKXt2YXIgYz0iZnVuY3Rpb24iPT09dHlwZW9mIGI7aWYobnVsbD09PWJ8fGI9PT1wfHxjKXtuPVtdO209MDtmb3IocT1lLmxlbmd0aDttPHE7bSsrKWZvcihrPQplW21dLHU9MDt1PGw7dSsrKXQ9e3JvdzprLGNvbHVtbjp1fSxjPyh2PWRba10sYih0LEkoYSxrLHUpLHYuYW5DZWxscz92LmFuQ2VsbHNbdV06bnVsbCkmJm4ucHVzaCh0KSk6bi5wdXNoKHQpO3JldHVybiBufWlmKGYuaXNQbGFpbk9iamVjdChiKSlyZXR1cm4gYi5jb2x1bW4hPT1wJiZiLnJvdyE9PXAmJi0xIT09Zi5pbkFycmF5KGIucm93LGUpP1tiXTpbXTtjPWcuZmlsdGVyKGIpLm1hcChmdW5jdGlvbihhLGIpe3JldHVybntyb3c6Yi5fRFRfQ2VsbEluZGV4LnJvdyxjb2x1bW46Yi5fRFRfQ2VsbEluZGV4LmNvbHVtbn19KS50b0FycmF5KCk7aWYoYy5sZW5ndGh8fCFiLm5vZGVOYW1lKXJldHVybiBjO3Y9ZihiKS5jbG9zZXN0KCIqW2RhdGEtZHQtcm93XSIpO3JldHVybiB2Lmxlbmd0aD9be3Jvdzp2LmRhdGEoImR0LXJvdyIpLGNvbHVtbjp2LmRhdGEoImR0LWNvbHVtbiIpfV06W119LGEsYyl9O3QoImNlbGxzKCkiLGZ1bmN0aW9uKGEsYixjKXtmLmlzUGxhaW5PYmplY3QoYSkmJgooYS5yb3c9PT1wPyhjPWEsYT1udWxsKTooYz1iLGI9bnVsbCkpO2YuaXNQbGFpbk9iamVjdChiKSYmKGM9YixiPW51bGwpO2lmKG51bGw9PT1ifHxiPT09cClyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe3JldHVybiBsYyhiLGEsZmIoYykpfSk7dmFyIGQ9Yz97cGFnZTpjLnBhZ2Usb3JkZXI6Yy5vcmRlcixzZWFyY2g6Yy5zZWFyY2h9Ont9LGU9dGhpcy5jb2x1bW5zKGIsZCksaD10aGlzLnJvd3MoYSxkKSxnLGssbCxuO2Q9dGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEsYil7YT1bXTtnPTA7Zm9yKGs9aFtiXS5sZW5ndGg7ZzxrO2crKylmb3IobD0wLG49ZVtiXS5sZW5ndGg7bDxuO2wrKylhLnB1c2goe3JvdzpoW2JdW2ddLGNvbHVtbjplW2JdW2xdfSk7cmV0dXJuIGF9LDEpO2Q9YyYmYy5zZWxlY3RlZD90aGlzLmNlbGxzKGQsYyk6ZDtmLmV4dGVuZChkLnNlbGVjdG9yLHtjb2xzOmIscm93czphLG9wdHM6Y30pO3JldHVybiBkfSk7eCgiY2VsbHMoKS5ub2RlcygpIiwKImNlbGwoKS5ub2RlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4oYT1hLmFvRGF0YVtiXSkmJmEuYW5DZWxscz9hLmFuQ2VsbHNbY106cH0sMSl9KTt0KCJjZWxscygpLmRhdGEoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigiY2VsbCIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBJKGEsYixjKX0sMSl9KTt4KCJjZWxscygpLmNhY2hlKCkiLCJjZWxsKCkuY2FjaGUoKSIsZnVuY3Rpb24oYSl7YT0ic2VhcmNoIj09PWE/Il9hRmlsdGVyRGF0YSI6Il9hU29ydERhdGEiO3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7cmV0dXJuIGIuYW9EYXRhW2NdW2FdW2RdfSwxKX0pO3goImNlbGxzKCkucmVuZGVyKCkiLCJjZWxsKCkucmVuZGVyKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7cmV0dXJuIEkoYixjLGQsYSl9LAoxKX0pO3goImNlbGxzKCkuaW5kZXhlcygpIiwiY2VsbCgpLmluZGV4KCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNlbGwiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm57cm93OmIsY29sdW1uOmMsY29sdW1uVmlzaWJsZTpjYShhLGMpfX0sMSl9KTt4KCJjZWxscygpLmludmFsaWRhdGUoKSIsImNlbGwoKS5pbnZhbGlkYXRlKCkiLGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIixmdW5jdGlvbihiLGMsZCl7ZWEoYixjLGEsZCl9KX0pO3QoImNlbGwoKSIsZnVuY3Rpb24oYSxiLGMpe3JldHVybiBnYih0aGlzLmNlbGxzKGEsYixjKSl9KTt0KCJjZWxsKCkuZGF0YSgpIixmdW5jdGlvbihhKXt2YXIgYj10aGlzLmNvbnRleHQsYz10aGlzWzBdO2lmKGE9PT1wKXJldHVybiBiLmxlbmd0aCYmYy5sZW5ndGg/SShiWzBdLGNbMF0ucm93LGNbMF0uY29sdW1uKTpwO29iKGJbMF0sY1swXS5yb3csY1swXS5jb2x1bW4sYSk7ZWEoYlswXSxjWzBdLnJvdywKImRhdGEiLGNbMF0uY29sdW1uKTtyZXR1cm4gdGhpc30pO3QoIm9yZGVyKCkiLGZ1bmN0aW9uKGEsYil7dmFyIGM9dGhpcy5jb250ZXh0O2lmKGE9PT1wKXJldHVybiAwIT09Yy5sZW5ndGg/Y1swXS5hYVNvcnRpbmc6cDsibnVtYmVyIj09PXR5cGVvZiBhP2E9W1thLGJdXTphLmxlbmd0aCYmIWYuaXNBcnJheShhWzBdKSYmKGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihiKXtiLmFhU29ydGluZz1hLnNsaWNlKCl9KX0pO3QoIm9yZGVyLmxpc3RlbmVyKCkiLGZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGQpe1FhKGQsYSxiLGMpfSl9KTt0KCJvcmRlci5maXhlZCgpIixmdW5jdGlvbihhKXtpZighYSl7dmFyIGI9dGhpcy5jb250ZXh0O2I9Yi5sZW5ndGg/YlswXS5hYVNvcnRpbmdGaXhlZDpwO3JldHVybiBmLmlzQXJyYXkoYik/e3ByZTpifToKYn1yZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe2IuYWFTb3J0aW5nRml4ZWQ9Zi5leHRlbmQoITAse30sYSl9KX0pO3QoWyJjb2x1bW5zKCkub3JkZXIoKSIsImNvbHVtbigpLm9yZGVyKCkiXSxmdW5jdGlvbihhKXt2YXIgYj10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYyxkKXt2YXIgZT1bXTtmLmVhY2goYltkXSxmdW5jdGlvbihiLGMpe2UucHVzaChbYyxhXSl9KTtjLmFhU29ydGluZz1lfSl9KTt0KCJzZWFyY2goKSIsZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9dGhpcy5jb250ZXh0O3JldHVybiBhPT09cD8wIT09ZS5sZW5ndGg/ZVswXS5vUHJldmlvdXNTZWFyY2guc1NlYXJjaDpwOnRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihlKXtlLm9GZWF0dXJlcy5iRmlsdGVyJiZpYShlLGYuZXh0ZW5kKHt9LGUub1ByZXZpb3VzU2VhcmNoLHtzU2VhcmNoOmErIiIsYlJlZ2V4Om51bGw9PT1iPyExOmIsYlNtYXJ0Om51bGw9PT0KYz8hMDpjLGJDYXNlSW5zZW5zaXRpdmU6bnVsbD09PWQ/ITA6ZH0pLDEpfSl9KTt4KCJjb2x1bW5zKCkuc2VhcmNoKCkiLCJjb2x1bW4oKS5zZWFyY2goKSIsZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoImNvbHVtbiIsZnVuY3Rpb24oZSxoKXt2YXIgZz1lLmFvUHJlU2VhcmNoQ29scztpZihhPT09cClyZXR1cm4gZ1toXS5zU2VhcmNoO2Uub0ZlYXR1cmVzLmJGaWx0ZXImJihmLmV4dGVuZChnW2hdLHtzU2VhcmNoOmErIiIsYlJlZ2V4Om51bGw9PT1iPyExOmIsYlNtYXJ0Om51bGw9PT1jPyEwOmMsYkNhc2VJbnNlbnNpdGl2ZTpudWxsPT09ZD8hMDpkfSksaWEoZSxlLm9QcmV2aW91c1NlYXJjaCwxKSl9KX0pO3QoInN0YXRlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29udGV4dC5sZW5ndGg/dGhpcy5jb250ZXh0WzBdLm9TYXZlZFN0YXRlOm51bGx9KTt0KCJzdGF0ZS5jbGVhcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsCmZ1bmN0aW9uKGEpe2EuZm5TdGF0ZVNhdmVDYWxsYmFjay5jYWxsKGEub0luc3RhbmNlLGEse30pfSl9KTt0KCJzdGF0ZS5sb2FkZWQoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0Lmxlbmd0aD90aGlzLmNvbnRleHRbMF0ub0xvYWRlZFN0YXRlOm51bGx9KTt0KCJzdGF0ZS5zYXZlKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXRlcmF0b3IoInRhYmxlIixmdW5jdGlvbihhKXtCYShhKX0pfSk7cS52ZXJzaW9uQ2hlY2s9cS5mblZlcnNpb25DaGVjaz1mdW5jdGlvbihhKXt2YXIgYj1xLnZlcnNpb24uc3BsaXQoIi4iKTthPWEuc3BsaXQoIi4iKTtmb3IodmFyIGMsZCxlPTAsZj1hLmxlbmd0aDtlPGY7ZSsrKWlmKGM9cGFyc2VJbnQoYltlXSwxMCl8fDAsZD1wYXJzZUludChhW2VdLDEwKXx8MCxjIT09ZClyZXR1cm4gYz5kO3JldHVybiEwfTtxLmlzRGF0YVRhYmxlPXEuZm5Jc0RhdGFUYWJsZT1mdW5jdGlvbihhKXt2YXIgYj1mKGEpLmdldCgwKSxjPSExO2lmKGEgaW5zdGFuY2VvZgpxLkFwaSlyZXR1cm4hMDtmLmVhY2gocS5zZXR0aW5ncyxmdW5jdGlvbihhLGUpe2E9ZS5uU2Nyb2xsSGVhZD9mKCJ0YWJsZSIsZS5uU2Nyb2xsSGVhZClbMF06bnVsbDt2YXIgZD1lLm5TY3JvbGxGb290P2YoInRhYmxlIixlLm5TY3JvbGxGb290KVswXTpudWxsO2lmKGUublRhYmxlPT09Ynx8YT09PWJ8fGQ9PT1iKWM9ITB9KTtyZXR1cm4gY307cS50YWJsZXM9cS5mblRhYmxlcz1mdW5jdGlvbihhKXt2YXIgYj0hMTtmLmlzUGxhaW5PYmplY3QoYSkmJihiPWEuYXBpLGE9YS52aXNpYmxlKTt2YXIgYz1mLm1hcChxLnNldHRpbmdzLGZ1bmN0aW9uKGIpe2lmKCFhfHxhJiZmKGIublRhYmxlKS5pcygiOnZpc2libGUiKSlyZXR1cm4gYi5uVGFibGV9KTtyZXR1cm4gYj9uZXcgdihjKTpjfTtxLmNhbWVsVG9IdW5nYXJpYW49TDt0KCIkKCkiLGZ1bmN0aW9uKGEsYil7Yj10aGlzLnJvd3MoYikubm9kZXMoKTtiPWYoYik7cmV0dXJuIGYoW10uY29uY2F0KGIuZmlsdGVyKGEpLnRvQXJyYXkoKSwKYi5maW5kKGEpLnRvQXJyYXkoKSkpfSk7Zi5lYWNoKFsib24iLCJvbmUiLCJvZmYiXSxmdW5jdGlvbihhLGIpe3QoYisiKCkiLGZ1bmN0aW9uKCl7dmFyIGE9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTthWzBdPWYubWFwKGFbMF0uc3BsaXQoL1xzLyksZnVuY3Rpb24oYSl7cmV0dXJuIGEubWF0Y2goL1wuZHRcYi8pP2E6YSsiLmR0In0pLmpvaW4oIiAiKTt2YXIgZD1mKHRoaXMudGFibGVzKCkubm9kZXMoKSk7ZFtiXS5hcHBseShkLGEpO3JldHVybiB0aGlzfSl9KTt0KCJjbGVhcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7cWEoYSl9KX0pO3QoInNldHRpbmdzKCkiLGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyB2KHRoaXMuY29udGV4dCx0aGlzLmNvbnRleHQpfSk7dCgiaW5pdCgpIixmdW5jdGlvbigpe3ZhciBhPXRoaXMuY29udGV4dDtyZXR1cm4gYS5sZW5ndGg/YVswXS5vSW5pdDpudWxsfSk7dCgiZGF0YSgpIiwKZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGEpe3JldHVybiBKKGEuYW9EYXRhLCJfYURhdGEiKX0pLmZsYXR0ZW4oKX0pO3QoImRlc3Ryb3koKSIsZnVuY3Rpb24oYSl7YT1hfHwhMTtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLGZ1bmN0aW9uKGIpe3ZhciBjPWIublRhYmxlV3JhcHBlci5wYXJlbnROb2RlLGQ9Yi5vQ2xhc3NlcyxlPWIublRhYmxlLGg9Yi5uVEJvZHksZz1iLm5USGVhZCxrPWIublRGb290LGw9ZihlKTtoPWYoaCk7dmFyIG49ZihiLm5UYWJsZVdyYXBwZXIpLG09Zi5tYXAoYi5hb0RhdGEsZnVuY3Rpb24oYSl7cmV0dXJuIGEublRyfSkscDtiLmJEZXN0cm95aW5nPSEwO0EoYiwiYW9EZXN0cm95Q2FsbGJhY2siLCJkZXN0cm95IixbYl0pO2F8fChuZXcgdihiKSkuY29sdW1ucygpLnZpc2libGUoITApO24ub2ZmKCIuRFQiKS5maW5kKCI6bm90KHRib2R5ICopIikub2ZmKCIuRFQiKTtmKHopLm9mZigiLkRULSIrYi5zSW5zdGFuY2UpOwplIT1nLnBhcmVudE5vZGUmJihsLmNoaWxkcmVuKCJ0aGVhZCIpLmRldGFjaCgpLGwuYXBwZW5kKGcpKTtrJiZlIT1rLnBhcmVudE5vZGUmJihsLmNoaWxkcmVuKCJ0Zm9vdCIpLmRldGFjaCgpLGwuYXBwZW5kKGspKTtiLmFhU29ydGluZz1bXTtiLmFhU29ydGluZ0ZpeGVkPVtdO0FhKGIpO2YobSkucmVtb3ZlQ2xhc3MoYi5hc1N0cmlwZUNsYXNzZXMuam9pbigiICIpKTtmKCJ0aCwgdGQiLGcpLnJlbW92ZUNsYXNzKGQuc1NvcnRhYmxlKyIgIitkLnNTb3J0YWJsZUFzYysiICIrZC5zU29ydGFibGVEZXNjKyIgIitkLnNTb3J0YWJsZU5vbmUpO2guY2hpbGRyZW4oKS5kZXRhY2goKTtoLmFwcGVuZChtKTtnPWE/InJlbW92ZSI6ImRldGFjaCI7bFtnXSgpO25bZ10oKTshYSYmYyYmKGMuaW5zZXJ0QmVmb3JlKGUsYi5uVGFibGVSZWluc2VydEJlZm9yZSksbC5jc3MoIndpZHRoIixiLnNEZXN0cm95V2lkdGgpLnJlbW92ZUNsYXNzKGQuc1RhYmxlKSwocD1iLmFzRGVzdHJveVN0cmlwZXMubGVuZ3RoKSYmCmguY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKGEpe2YodGhpcykuYWRkQ2xhc3MoYi5hc0Rlc3Ryb3lTdHJpcGVzW2ElcF0pfSkpO2M9Zi5pbkFycmF5KGIscS5zZXR0aW5ncyk7LTEhPT1jJiZxLnNldHRpbmdzLnNwbGljZShjLDEpfSl9KTtmLmVhY2goWyJjb2x1bW4iLCJyb3ciLCJjZWxsIl0sZnVuY3Rpb24oYSxiKXt0KGIrInMoKS5ldmVyeSgpIixmdW5jdGlvbihhKXt2YXIgYz10aGlzLnNlbGVjdG9yLm9wdHMsZT10aGlzO3JldHVybiB0aGlzLml0ZXJhdG9yKGIsZnVuY3Rpb24oZCxmLGssbCxuKXthLmNhbGwoZVtiXShmLCJjZWxsIj09PWI/azpjLCJjZWxsIj09PWI/YzpwKSxmLGssbCxuKX0pfSl9KTt0KCJpMThuKCkiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZD10aGlzLmNvbnRleHRbMF07YT1VKGEpKGQub0xhbmd1YWdlKTthPT09cCYmKGE9Yik7YyE9PXAmJmYuaXNQbGFpbk9iamVjdChhKSYmKGE9YVtjXSE9PXA/YVtjXTphLl8pO3JldHVybiBhLnJlcGxhY2UoIiVkIixjKX0pOwpxLnZlcnNpb249IjEuMTAuMjAiO3Euc2V0dGluZ3M9W107cS5tb2RlbHM9e307cS5tb2RlbHMub1NlYXJjaD17YkNhc2VJbnNlbnNpdGl2ZTohMCxzU2VhcmNoOiIiLGJSZWdleDohMSxiU21hcnQ6ITB9O3EubW9kZWxzLm9Sb3c9e25UcjpudWxsLGFuQ2VsbHM6bnVsbCxfYURhdGE6W10sX2FTb3J0RGF0YTpudWxsLF9hRmlsdGVyRGF0YTpudWxsLF9zRmlsdGVyUm93Om51bGwsX3NSb3dTdHJpcGU6IiIsc3JjOm51bGwsaWR4Oi0xfTtxLm1vZGVscy5vQ29sdW1uPXtpZHg6bnVsbCxhRGF0YVNvcnQ6bnVsbCxhc1NvcnRpbmc6bnVsbCxiU2VhcmNoYWJsZTpudWxsLGJTb3J0YWJsZTpudWxsLGJWaXNpYmxlOm51bGwsX3NNYW51YWxUeXBlOm51bGwsX2JBdHRyU3JjOiExLGZuQ3JlYXRlZENlbGw6bnVsbCxmbkdldERhdGE6bnVsbCxmblNldERhdGE6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxuVGg6bnVsbCxuVGY6bnVsbCxzQ2xhc3M6bnVsbCxzQ29udGVudFBhZGRpbmc6bnVsbCwKc0RlZmF1bHRDb250ZW50Om51bGwsc05hbWU6bnVsbCxzU29ydERhdGFUeXBlOiJzdGQiLHNTb3J0aW5nQ2xhc3M6bnVsbCxzU29ydGluZ0NsYXNzSlVJOm51bGwsc1RpdGxlOm51bGwsc1R5cGU6bnVsbCxzV2lkdGg6bnVsbCxzV2lkdGhPcmlnOm51bGx9O3EuZGVmYXVsdHM9e2FhRGF0YTpudWxsLGFhU29ydGluZzpbWzAsImFzYyJdXSxhYVNvcnRpbmdGaXhlZDpbXSxhamF4Om51bGwsYUxlbmd0aE1lbnU6WzEwLDI1LDUwLDEwMF0sYW9Db2x1bW5zOm51bGwsYW9Db2x1bW5EZWZzOm51bGwsYW9TZWFyY2hDb2xzOltdLGFzU3RyaXBlQ2xhc3NlczpudWxsLGJBdXRvV2lkdGg6ITAsYkRlZmVyUmVuZGVyOiExLGJEZXN0cm95OiExLGJGaWx0ZXI6ITAsYkluZm86ITAsYkxlbmd0aENoYW5nZTohMCxiUGFnaW5hdGU6ITAsYlByb2Nlc3Npbmc6ITEsYlJldHJpZXZlOiExLGJTY3JvbGxDb2xsYXBzZTohMSxiU2VydmVyU2lkZTohMSxiU29ydDohMCxiU29ydE11bHRpOiEwLGJTb3J0Q2VsbHNUb3A6ITEsCmJTb3J0Q2xhc3NlczohMCxiU3RhdGVTYXZlOiExLGZuQ3JlYXRlZFJvdzpudWxsLGZuRHJhd0NhbGxiYWNrOm51bGwsZm5Gb290ZXJDYWxsYmFjazpudWxsLGZuRm9ybWF0TnVtYmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvU3RyaW5nKCkucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg/IVxkKSkvZyx0aGlzLm9MYW5ndWFnZS5zVGhvdXNhbmRzKX0sZm5IZWFkZXJDYWxsYmFjazpudWxsLGZuSW5mb0NhbGxiYWNrOm51bGwsZm5Jbml0Q29tcGxldGU6bnVsbCxmblByZURyYXdDYWxsYmFjazpudWxsLGZuUm93Q2FsbGJhY2s6bnVsbCxmblNlcnZlckRhdGE6bnVsbCxmblNlcnZlclBhcmFtczpudWxsLGZuU3RhdGVMb2FkQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7dHJ5e3JldHVybiBKU09OLnBhcnNlKCgtMT09PWEuaVN0YXRlRHVyYXRpb24/c2Vzc2lvblN0b3JhZ2U6bG9jYWxTdG9yYWdlKS5nZXRJdGVtKCJEYXRhVGFibGVzXyIrYS5zSW5zdGFuY2UrIl8iK2xvY2F0aW9uLnBhdGhuYW1lKSl9Y2F0Y2goYil7fX0sCmZuU3RhdGVMb2FkUGFyYW1zOm51bGwsZm5TdGF0ZUxvYWRlZDpudWxsLGZuU3RhdGVTYXZlQ2FsbGJhY2s6ZnVuY3Rpb24oYSxiKXt0cnl7KC0xPT09YS5pU3RhdGVEdXJhdGlvbj9zZXNzaW9uU3RvcmFnZTpsb2NhbFN0b3JhZ2UpLnNldEl0ZW0oIkRhdGFUYWJsZXNfIithLnNJbnN0YW5jZSsiXyIrbG9jYXRpb24ucGF0aG5hbWUsSlNPTi5zdHJpbmdpZnkoYikpfWNhdGNoKGMpe319LGZuU3RhdGVTYXZlUGFyYW1zOm51bGwsaVN0YXRlRHVyYXRpb246NzIwMCxpRGVmZXJMb2FkaW5nOm51bGwsaURpc3BsYXlMZW5ndGg6MTAsaURpc3BsYXlTdGFydDowLGlUYWJJbmRleDowLG9DbGFzc2VzOnt9LG9MYW5ndWFnZTp7b0FyaWE6e3NTb3J0QXNjZW5kaW5nOiI6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGFzY2VuZGluZyIsc1NvcnREZXNjZW5kaW5nOiI6IGFjdGl2YXRlIHRvIHNvcnQgY29sdW1uIGRlc2NlbmRpbmcifSxvUGFnaW5hdGU6e3NGaXJzdDoiRmlyc3QiLHNMYXN0OiJMYXN0IiwKc05leHQ6Ik5leHQiLHNQcmV2aW91czoiUHJldmlvdXMifSxzRW1wdHlUYWJsZToiTm8gZGF0YSBhdmFpbGFibGUgaW4gdGFibGUiLHNJbmZvOiJTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzIixzSW5mb0VtcHR5OiJTaG93aW5nIDAgdG8gMCBvZiAwIGVudHJpZXMiLHNJbmZvRmlsdGVyZWQ6IihmaWx0ZXJlZCBmcm9tIF9NQVhfIHRvdGFsIGVudHJpZXMpIixzSW5mb1Bvc3RGaXg6IiIsc0RlY2ltYWw6IiIsc1Rob3VzYW5kczoiLCIsc0xlbmd0aE1lbnU6IlNob3cgX01FTlVfIGVudHJpZXMiLHNMb2FkaW5nUmVjb3JkczoiTG9hZGluZy4uLiIsc1Byb2Nlc3Npbmc6IlByb2Nlc3NpbmcuLi4iLHNTZWFyY2g6IlNlYXJjaDoiLHNTZWFyY2hQbGFjZWhvbGRlcjoiIixzVXJsOiIiLHNaZXJvUmVjb3JkczoiTm8gbWF0Y2hpbmcgcmVjb3JkcyBmb3VuZCJ9LG9TZWFyY2g6Zi5leHRlbmQoe30scS5tb2RlbHMub1NlYXJjaCksc0FqYXhEYXRhUHJvcDoiZGF0YSIsCnNBamF4U291cmNlOm51bGwsc0RvbToibGZydGlwIixzZWFyY2hEZWxheTpudWxsLHNQYWdpbmF0aW9uVHlwZToic2ltcGxlX251bWJlcnMiLHNTY3JvbGxYOiIiLHNTY3JvbGxYSW5uZXI6IiIsc1Njcm9sbFk6IiIsc1NlcnZlck1ldGhvZDoiR0VUIixyZW5kZXJlcjpudWxsLHJvd0lkOiJEVF9Sb3dJZCJ9O0gocS5kZWZhdWx0cyk7cS5kZWZhdWx0cy5jb2x1bW49e2FEYXRhU29ydDpudWxsLGlEYXRhU29ydDotMSxhc1NvcnRpbmc6WyJhc2MiLCJkZXNjIl0sYlNlYXJjaGFibGU6ITAsYlNvcnRhYmxlOiEwLGJWaXNpYmxlOiEwLGZuQ3JlYXRlZENlbGw6bnVsbCxtRGF0YTpudWxsLG1SZW5kZXI6bnVsbCxzQ2VsbFR5cGU6InRkIixzQ2xhc3M6IiIsc0NvbnRlbnRQYWRkaW5nOiIiLHNEZWZhdWx0Q29udGVudDpudWxsLHNOYW1lOiIiLHNTb3J0RGF0YVR5cGU6InN0ZCIsc1RpdGxlOm51bGwsc1R5cGU6bnVsbCxzV2lkdGg6bnVsbH07SChxLmRlZmF1bHRzLmNvbHVtbik7cS5tb2RlbHMub1NldHRpbmdzPQp7b0ZlYXR1cmVzOntiQXV0b1dpZHRoOm51bGwsYkRlZmVyUmVuZGVyOm51bGwsYkZpbHRlcjpudWxsLGJJbmZvOm51bGwsYkxlbmd0aENoYW5nZTpudWxsLGJQYWdpbmF0ZTpudWxsLGJQcm9jZXNzaW5nOm51bGwsYlNlcnZlclNpZGU6bnVsbCxiU29ydDpudWxsLGJTb3J0TXVsdGk6bnVsbCxiU29ydENsYXNzZXM6bnVsbCxiU3RhdGVTYXZlOm51bGx9LG9TY3JvbGw6e2JDb2xsYXBzZTpudWxsLGlCYXJXaWR0aDowLHNYOm51bGwsc1hJbm5lcjpudWxsLHNZOm51bGx9LG9MYW5ndWFnZTp7Zm5JbmZvQ2FsbGJhY2s6bnVsbH0sb0Jyb3dzZXI6e2JTY3JvbGxPdmVyc2l6ZTohMSxiU2Nyb2xsYmFyTGVmdDohMSxiQm91bmRpbmc6ITEsYmFyV2lkdGg6MH0sYWpheDpudWxsLGFhbkZlYXR1cmVzOltdLGFvRGF0YTpbXSxhaURpc3BsYXk6W10sYWlEaXNwbGF5TWFzdGVyOltdLGFJZHM6e30sYW9Db2x1bW5zOltdLGFvSGVhZGVyOltdLGFvRm9vdGVyOltdLG9QcmV2aW91c1NlYXJjaDp7fSwKYW9QcmVTZWFyY2hDb2xzOltdLGFhU29ydGluZzpudWxsLGFhU29ydGluZ0ZpeGVkOltdLGFzU3RyaXBlQ2xhc3NlczpudWxsLGFzRGVzdHJveVN0cmlwZXM6W10sc0Rlc3Ryb3lXaWR0aDowLGFvUm93Q2FsbGJhY2s6W10sYW9IZWFkZXJDYWxsYmFjazpbXSxhb0Zvb3RlckNhbGxiYWNrOltdLGFvRHJhd0NhbGxiYWNrOltdLGFvUm93Q3JlYXRlZENhbGxiYWNrOltdLGFvUHJlRHJhd0NhbGxiYWNrOltdLGFvSW5pdENvbXBsZXRlOltdLGFvU3RhdGVTYXZlUGFyYW1zOltdLGFvU3RhdGVMb2FkUGFyYW1zOltdLGFvU3RhdGVMb2FkZWQ6W10sc1RhYmxlSWQ6IiIsblRhYmxlOm51bGwsblRIZWFkOm51bGwsblRGb290Om51bGwsblRCb2R5Om51bGwsblRhYmxlV3JhcHBlcjpudWxsLGJEZWZlckxvYWRpbmc6ITEsYkluaXRpYWxpc2VkOiExLGFvT3BlblJvd3M6W10sc0RvbTpudWxsLHNlYXJjaERlbGF5Om51bGwsc1BhZ2luYXRpb25UeXBlOiJ0d29fYnV0dG9uIixpU3RhdGVEdXJhdGlvbjowLAphb1N0YXRlU2F2ZTpbXSxhb1N0YXRlTG9hZDpbXSxvU2F2ZWRTdGF0ZTpudWxsLG9Mb2FkZWRTdGF0ZTpudWxsLHNBamF4U291cmNlOm51bGwsc0FqYXhEYXRhUHJvcDpudWxsLGJBamF4RGF0YUdldDohMCxqcVhIUjpudWxsLGpzb246cCxvQWpheERhdGE6cCxmblNlcnZlckRhdGE6bnVsbCxhb1NlcnZlclBhcmFtczpbXSxzU2VydmVyTWV0aG9kOm51bGwsZm5Gb3JtYXROdW1iZXI6bnVsbCxhTGVuZ3RoTWVudTpudWxsLGlEcmF3OjAsYkRyYXdpbmc6ITEsaURyYXdFcnJvcjotMSxfaURpc3BsYXlMZW5ndGg6MTAsX2lEaXNwbGF5U3RhcnQ6MCxfaVJlY29yZHNUb3RhbDowLF9pUmVjb3Jkc0Rpc3BsYXk6MCxvQ2xhc3Nlczp7fSxiRmlsdGVyZWQ6ITEsYlNvcnRlZDohMSxiU29ydENlbGxzVG9wOm51bGwsb0luaXQ6bnVsbCxhb0Rlc3Ryb3lDYWxsYmFjazpbXSxmblJlY29yZHNUb3RhbDpmdW5jdGlvbigpe3JldHVybiJzc3AiPT1EKHRoaXMpPzEqdGhpcy5faVJlY29yZHNUb3RhbDoKdGhpcy5haURpc3BsYXlNYXN0ZXIubGVuZ3RofSxmblJlY29yZHNEaXNwbGF5OmZ1bmN0aW9uKCl7cmV0dXJuInNzcCI9PUQodGhpcyk/MSp0aGlzLl9pUmVjb3Jkc0Rpc3BsYXk6dGhpcy5haURpc3BsYXkubGVuZ3RofSxmbkRpc3BsYXlFbmQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9pRGlzcGxheUxlbmd0aCxiPXRoaXMuX2lEaXNwbGF5U3RhcnQsYz1iK2EsZD10aGlzLmFpRGlzcGxheS5sZW5ndGgsZT10aGlzLm9GZWF0dXJlcyxmPWUuYlBhZ2luYXRlO3JldHVybiBlLmJTZXJ2ZXJTaWRlPyExPT09Znx8LTE9PT1hP2IrZDpNYXRoLm1pbihiK2EsdGhpcy5faVJlY29yZHNEaXNwbGF5KTohZnx8Yz5kfHwtMT09PWE/ZDpjfSxvSW5zdGFuY2U6bnVsbCxzSW5zdGFuY2U6bnVsbCxpVGFiSW5kZXg6MCxuU2Nyb2xsSGVhZDpudWxsLG5TY3JvbGxGb290Om51bGwsYUxhc3RTb3J0OltdLG9QbHVnaW5zOnt9LHJvd0lkRm46bnVsbCxyb3dJZDpudWxsfTtxLmV4dD1DPXtidXR0b25zOnt9LApjbGFzc2VzOnt9LGJ1aWxkZXI6Ii1zb3VyY2UtIixlcnJNb2RlOiJhbGVydCIsZmVhdHVyZTpbXSxzZWFyY2g6W10sc2VsZWN0b3I6e2NlbGw6W10sY29sdW1uOltdLHJvdzpbXX0saW50ZXJuYWw6e30sbGVnYWN5OnthamF4Om51bGx9LHBhZ2VyOnt9LHJlbmRlcmVyOntwYWdlQnV0dG9uOnt9LGhlYWRlcjp7fX0sb3JkZXI6e30sdHlwZTp7ZGV0ZWN0OltdLHNlYXJjaDp7fSxvcmRlcjp7fX0sX3VuaXF1ZTowLGZuVmVyc2lvbkNoZWNrOnEuZm5WZXJzaW9uQ2hlY2ssaUFwaUluZGV4OjAsb0pVSUNsYXNzZXM6e30sc1ZlcnNpb246cS52ZXJzaW9ufTtmLmV4dGVuZChDLHthZm5GaWx0ZXJpbmc6Qy5zZWFyY2gsYVR5cGVzOkMudHlwZS5kZXRlY3Qsb2ZuU2VhcmNoOkMudHlwZS5zZWFyY2gsb1NvcnQ6Qy50eXBlLm9yZGVyLGFmblNvcnREYXRhOkMub3JkZXIsYW9GZWF0dXJlczpDLmZlYXR1cmUsb0FwaTpDLmludGVybmFsLG9TdGRDbGFzc2VzOkMuY2xhc3NlcyxvUGFnaW5hdGlvbjpDLnBhZ2VyfSk7CmYuZXh0ZW5kKHEuZXh0LmNsYXNzZXMse3NUYWJsZToiZGF0YVRhYmxlIixzTm9Gb290ZXI6Im5vLWZvb3RlciIsc1BhZ2VCdXR0b246InBhZ2luYXRlX2J1dHRvbiIsc1BhZ2VCdXR0b25BY3RpdmU6ImN1cnJlbnQiLHNQYWdlQnV0dG9uRGlzYWJsZWQ6ImRpc2FibGVkIixzU3RyaXBlT2RkOiJvZGQiLHNTdHJpcGVFdmVuOiJldmVuIixzUm93RW1wdHk6ImRhdGFUYWJsZXNfZW1wdHkiLHNXcmFwcGVyOiJkYXRhVGFibGVzX3dyYXBwZXIiLHNGaWx0ZXI6ImRhdGFUYWJsZXNfZmlsdGVyIixzSW5mbzoiZGF0YVRhYmxlc19pbmZvIixzUGFnaW5nOiJkYXRhVGFibGVzX3BhZ2luYXRlIHBhZ2luZ18iLHNMZW5ndGg6ImRhdGFUYWJsZXNfbGVuZ3RoIixzUHJvY2Vzc2luZzoiZGF0YVRhYmxlc19wcm9jZXNzaW5nIixzU29ydEFzYzoic29ydGluZ19hc2MiLHNTb3J0RGVzYzoic29ydGluZ19kZXNjIixzU29ydGFibGU6InNvcnRpbmciLHNTb3J0YWJsZUFzYzoic29ydGluZ19hc2NfZGlzYWJsZWQiLApzU29ydGFibGVEZXNjOiJzb3J0aW5nX2Rlc2NfZGlzYWJsZWQiLHNTb3J0YWJsZU5vbmU6InNvcnRpbmdfZGlzYWJsZWQiLHNTb3J0Q29sdW1uOiJzb3J0aW5nXyIsc0ZpbHRlcklucHV0OiIiLHNMZW5ndGhTZWxlY3Q6IiIsc1Njcm9sbFdyYXBwZXI6ImRhdGFUYWJsZXNfc2Nyb2xsIixzU2Nyb2xsSGVhZDoiZGF0YVRhYmxlc19zY3JvbGxIZWFkIixzU2Nyb2xsSGVhZElubmVyOiJkYXRhVGFibGVzX3Njcm9sbEhlYWRJbm5lciIsc1Njcm9sbEJvZHk6ImRhdGFUYWJsZXNfc2Nyb2xsQm9keSIsc1Njcm9sbEZvb3Q6ImRhdGFUYWJsZXNfc2Nyb2xsRm9vdCIsc1Njcm9sbEZvb3RJbm5lcjoiZGF0YVRhYmxlc19zY3JvbGxGb290SW5uZXIiLHNIZWFkZXJUSDoiIixzRm9vdGVyVEg6IiIsc1NvcnRKVUlBc2M6IiIsc1NvcnRKVUlEZXNjOiIiLHNTb3J0SlVJOiIiLHNTb3J0SlVJQXNjQWxsb3dlZDoiIixzU29ydEpVSURlc2NBbGxvd2VkOiIiLHNTb3J0SlVJV3JhcHBlcjoiIixzU29ydEljb246IiIsCnNKVUlIZWFkZXI6IiIsc0pVSUZvb3RlcjoiIn0pO3ZhciBQYj1xLmV4dC5wYWdlcjtmLmV4dGVuZChQYix7c2ltcGxlOmZ1bmN0aW9uKGEsYil7cmV0dXJuWyJwcmV2aW91cyIsIm5leHQiXX0sZnVsbDpmdW5jdGlvbihhLGIpe3JldHVyblsiZmlyc3QiLCJwcmV2aW91cyIsIm5leHQiLCJsYXN0Il19LG51bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5ba2EoYSxiKV19LHNpbXBsZV9udW1iZXJzOmZ1bmN0aW9uKGEsYil7cmV0dXJuWyJwcmV2aW91cyIsa2EoYSxiKSwibmV4dCJdfSxmdWxsX251bWJlcnM6ZnVuY3Rpb24oYSxiKXtyZXR1cm5bImZpcnN0IiwicHJldmlvdXMiLGthKGEsYiksIm5leHQiLCJsYXN0Il19LGZpcnN0X2xhc3RfbnVtYmVyczpmdW5jdGlvbihhLGIpe3JldHVyblsiZmlyc3QiLGthKGEsYiksImxhc3QiXX0sX251bWJlcnM6a2EsbnVtYmVyc19sZW5ndGg6N30pO2YuZXh0ZW5kKCEwLHEuZXh0LnJlbmRlcmVyLHtwYWdlQnV0dG9uOntfOmZ1bmN0aW9uKGEsYiwKYyxkLGUsaCl7dmFyIGc9YS5vQ2xhc3NlcyxrPWEub0xhbmd1YWdlLm9QYWdpbmF0ZSxsPWEub0xhbmd1YWdlLm9BcmlhLnBhZ2luYXRlfHx7fSxuLG0scT0wLHQ9ZnVuY3Rpb24oYixkKXt2YXIgcCxyPWcuc1BhZ2VCdXR0b25EaXNhYmxlZCx1PWZ1bmN0aW9uKGIpe1hhKGEsYi5kYXRhLmFjdGlvbiwhMCl9O3ZhciB3PTA7Zm9yKHA9ZC5sZW5ndGg7dzxwO3crKyl7dmFyIHY9ZFt3XTtpZihmLmlzQXJyYXkodikpe3ZhciB4PWYoIjwiKyh2LkRUX2VsfHwiZGl2IikrIi8+IikuYXBwZW5kVG8oYik7dCh4LHYpfWVsc2V7bj1udWxsO209djt4PWEuaVRhYkluZGV4O3N3aXRjaCh2KXtjYXNlICJlbGxpcHNpcyI6Yi5hcHBlbmQoJzxzcGFuIGNsYXNzPSJlbGxpcHNpcyI+JiN4MjAyNjs8L3NwYW4+Jyk7YnJlYWs7Y2FzZSAiZmlyc3QiOm49ay5zRmlyc3Q7MD09PWUmJih4PS0xLG0rPSIgIityKTticmVhaztjYXNlICJwcmV2aW91cyI6bj1rLnNQcmV2aW91czswPT09ZSYmKHg9LTEsbSs9CiIgIityKTticmVhaztjYXNlICJuZXh0IjpuPWsuc05leHQ7ZT09PWgtMSYmKHg9LTEsbSs9IiAiK3IpO2JyZWFrO2Nhc2UgImxhc3QiOm49ay5zTGFzdDtlPT09aC0xJiYoeD0tMSxtKz0iICIrcik7YnJlYWs7ZGVmYXVsdDpuPXYrMSxtPWU9PT12P2cuc1BhZ2VCdXR0b25BY3RpdmU6IiJ9bnVsbCE9PW4mJih4PWYoIjxhPiIseyJjbGFzcyI6Zy5zUGFnZUJ1dHRvbisiICIrbSwiYXJpYS1jb250cm9scyI6YS5zVGFibGVJZCwiYXJpYS1sYWJlbCI6bFt2XSwiZGF0YS1kdC1pZHgiOnEsdGFiaW5kZXg6eCxpZDowPT09YyYmInN0cmluZyI9PT10eXBlb2Ygdj9hLnNUYWJsZUlkKyJfIit2Om51bGx9KS5odG1sKG4pLmFwcGVuZFRvKGIpLCRhKHgse2FjdGlvbjp2fSx1KSxxKyspfX19O3RyeXt2YXIgdj1mKGIpLmZpbmQoeS5hY3RpdmVFbGVtZW50KS5kYXRhKCJkdC1pZHgiKX1jYXRjaChtYyl7fXQoZihiKS5lbXB0eSgpLGQpO3YhPT1wJiZmKGIpLmZpbmQoIltkYXRhLWR0LWlkeD0iKwp2KyJdIikuZm9jdXMoKX19fSk7Zi5leHRlbmQocS5leHQudHlwZS5kZXRlY3QsW2Z1bmN0aW9uKGEsYil7Yj1iLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gZGIoYSxiKT8ibnVtIitiOm51bGx9LGZ1bmN0aW9uKGEsYil7aWYoYSYmIShhIGluc3RhbmNlb2YgRGF0ZSkmJiFjYy50ZXN0KGEpKXJldHVybiBudWxsO2I9RGF0ZS5wYXJzZShhKTtyZXR1cm4gbnVsbCE9PWImJiFpc05hTihiKXx8UChhKT8iZGF0ZSI6bnVsbH0sZnVuY3Rpb24oYSxiKXtiPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBkYihhLGIsITApPyJudW0tZm10IitiOm51bGx9LGZ1bmN0aW9uKGEsYil7Yj1iLm9MYW5ndWFnZS5zRGVjaW1hbDtyZXR1cm4gVWIoYSxiKT8iaHRtbC1udW0iK2I6bnVsbH0sZnVuY3Rpb24oYSxiKXtiPWIub0xhbmd1YWdlLnNEZWNpbWFsO3JldHVybiBVYihhLGIsITApPyJodG1sLW51bS1mbXQiK2I6bnVsbH0sZnVuY3Rpb24oYSxiKXtyZXR1cm4gUChhKXx8InN0cmluZyI9PT0KdHlwZW9mIGEmJi0xIT09YS5pbmRleE9mKCI8Iik/Imh0bWwiOm51bGx9XSk7Zi5leHRlbmQocS5leHQudHlwZS5zZWFyY2gse2h0bWw6ZnVuY3Rpb24oYSl7cmV0dXJuIFAoYSk/YToic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZShSYiwiICIpLnJlcGxhY2UoRWEsIiIpOiIifSxzdHJpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuIFAoYSk/YToic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZShSYiwiICIpOmF9fSk7dmFyIERhPWZ1bmN0aW9uKGEsYixjLGQpe2lmKDAhPT1hJiYoIWF8fCItIj09PWEpKXJldHVybi1JbmZpbml0eTtiJiYoYT1UYihhLGIpKTthLnJlcGxhY2UmJihjJiYoYT1hLnJlcGxhY2UoYywiIikpLGQmJihhPWEucmVwbGFjZShkLCIiKSkpO3JldHVybiAxKmF9O2YuZXh0ZW5kKEMudHlwZS5vcmRlcix7ImRhdGUtcHJlIjpmdW5jdGlvbihhKXthPURhdGUucGFyc2UoYSk7cmV0dXJuIGlzTmFOKGEpPy1JbmZpbml0eTphfSwiaHRtbC1wcmUiOmZ1bmN0aW9uKGEpe3JldHVybiBQKGEpPwoiIjphLnJlcGxhY2U/YS5yZXBsYWNlKC88Lio/Pi9nLCIiKS50b0xvd2VyQ2FzZSgpOmErIiJ9LCJzdHJpbmctcHJlIjpmdW5jdGlvbihhKXtyZXR1cm4gUChhKT8iIjoic3RyaW5nIj09PXR5cGVvZiBhP2EudG9Mb3dlckNhc2UoKTphLnRvU3RyaW5nP2EudG9TdHJpbmcoKToiIn0sInN0cmluZy1hc2MiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yj8tMTphPmI/MTowfSwic3RyaW5nLWRlc2MiOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE8Yj8xOmE+Yj8tMTowfX0pO0hhKCIiKTtmLmV4dGVuZCghMCxxLmV4dC5yZW5kZXJlcix7aGVhZGVyOntfOmZ1bmN0aW9uKGEsYixjLGQpe2YoYS5uVGFibGUpLm9uKCJvcmRlci5kdC5EVCIsZnVuY3Rpb24oZSxmLGcsayl7YT09PWYmJihlPWMuaWR4LGIucmVtb3ZlQ2xhc3MoYy5zU29ydGluZ0NsYXNzKyIgIitkLnNTb3J0QXNjKyIgIitkLnNTb3J0RGVzYykuYWRkQ2xhc3MoImFzYyI9PWtbZV0/ZC5zU29ydEFzYzoiZGVzYyI9PWtbZV0/ZC5zU29ydERlc2M6CmMuc1NvcnRpbmdDbGFzcykpfSl9LGpxdWVyeXVpOmZ1bmN0aW9uKGEsYixjLGQpe2YoIjxkaXYvPiIpLmFkZENsYXNzKGQuc1NvcnRKVUlXcmFwcGVyKS5hcHBlbmQoYi5jb250ZW50cygpKS5hcHBlbmQoZigiPHNwYW4vPiIpLmFkZENsYXNzKGQuc1NvcnRJY29uKyIgIitjLnNTb3J0aW5nQ2xhc3NKVUkpKS5hcHBlbmRUbyhiKTtmKGEublRhYmxlKS5vbigib3JkZXIuZHQuRFQiLGZ1bmN0aW9uKGUsZixnLGspe2E9PT1mJiYoZT1jLmlkeCxiLnJlbW92ZUNsYXNzKGQuc1NvcnRBc2MrIiAiK2Quc1NvcnREZXNjKS5hZGRDbGFzcygiYXNjIj09a1tlXT9kLnNTb3J0QXNjOiJkZXNjIj09a1tlXT9kLnNTb3J0RGVzYzpjLnNTb3J0aW5nQ2xhc3MpLGIuZmluZCgic3Bhbi4iK2Quc1NvcnRJY29uKS5yZW1vdmVDbGFzcyhkLnNTb3J0SlVJQXNjKyIgIitkLnNTb3J0SlVJRGVzYysiICIrZC5zU29ydEpVSSsiICIrZC5zU29ydEpVSUFzY0FsbG93ZWQrIiAiK2Quc1NvcnRKVUlEZXNjQWxsb3dlZCkuYWRkQ2xhc3MoImFzYyI9PQprW2VdP2Quc1NvcnRKVUlBc2M6ImRlc2MiPT1rW2VdP2Quc1NvcnRKVUlEZXNjOmMuc1NvcnRpbmdDbGFzc0pVSSkpfSl9fX0pO3ZhciBpYj1mdW5jdGlvbihhKXtyZXR1cm4ic3RyaW5nIj09PXR5cGVvZiBhP2EucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKTphfTtxLnJlbmRlcj17bnVtYmVyOmZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJue2Rpc3BsYXk6ZnVuY3Rpb24oZil7aWYoIm51bWJlciIhPT10eXBlb2YgZiYmInN0cmluZyIhPT10eXBlb2YgZilyZXR1cm4gZjt2YXIgZz0wPmY/Ii0iOiIiLGg9cGFyc2VGbG9hdChmKTtpZihpc05hTihoKSlyZXR1cm4gaWIoZik7aD1oLnRvRml4ZWQoYyk7Zj1NYXRoLmFicyhoKTtoPXBhcnNlSW50KGYsMTApO2Y9Yz9iKyhmLWgpLnRvRml4ZWQoYykuc3Vic3RyaW5nKDIpOiIiO3JldHVybiBnKyhkfHwiIikraC50b1N0cmluZygpLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csCmEpK2YrKGV8fCIiKX19fSx0ZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2Rpc3BsYXk6aWIsZmlsdGVyOmlifX19O2YuZXh0ZW5kKHEuZXh0LmludGVybmFsLHtfZm5FeHRlcm5BcGlGdW5jOlFiLF9mbkJ1aWxkQWpheDp2YSxfZm5BamF4VXBkYXRlOnFiLF9mbkFqYXhQYXJhbWV0ZXJzOnpiLF9mbkFqYXhVcGRhdGVEcmF3OkFiLF9mbkFqYXhEYXRhU3JjOndhLF9mbkFkZENvbHVtbjpJYSxfZm5Db2x1bW5PcHRpb25zOm1hLF9mbkFkanVzdENvbHVtblNpemluZzphYSxfZm5WaXNpYmxlVG9Db2x1bW5JbmRleDpiYSxfZm5Db2x1bW5JbmRleFRvVmlzaWJsZTpjYSxfZm5WaXNibGVDb2x1bW5zOlcsX2ZuR2V0Q29sdW1uczpvYSxfZm5Db2x1bW5UeXBlczpLYSxfZm5BcHBseUNvbHVtbkRlZnM6bmIsX2ZuSHVuZ2FyaWFuTWFwOkgsX2ZuQ2FtZWxUb0h1bmdhcmlhbjpMLF9mbkxhbmd1YWdlQ29tcGF0OkdhLF9mbkJyb3dzZXJEZXRlY3Q6bGIsX2ZuQWRkRGF0YTpSLF9mbkFkZFRyOnBhLF9mbk5vZGVUb0RhdGFJbmRleDpmdW5jdGlvbihhLApiKXtyZXR1cm4gYi5fRFRfUm93SW5kZXghPT1wP2IuX0RUX1Jvd0luZGV4Om51bGx9LF9mbk5vZGVUb0NvbHVtbkluZGV4OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZi5pbkFycmF5KGMsYS5hb0RhdGFbYl0uYW5DZWxscyl9LF9mbkdldENlbGxEYXRhOkksX2ZuU2V0Q2VsbERhdGE6b2IsX2ZuU3BsaXRPYmpOb3RhdGlvbjpOYSxfZm5HZXRPYmplY3REYXRhRm46VSxfZm5TZXRPYmplY3REYXRhRm46USxfZm5HZXREYXRhTWFzdGVyOk9hLF9mbkNsZWFyVGFibGU6cWEsX2ZuRGVsZXRlSW5kZXg6cmEsX2ZuSW52YWxpZGF0ZTplYSxfZm5HZXRSb3dFbGVtZW50czpNYSxfZm5DcmVhdGVUcjpMYSxfZm5CdWlsZEhlYWQ6cGIsX2ZuRHJhd0hlYWQ6aGEsX2ZuRHJhdzpTLF9mblJlRHJhdzpWLF9mbkFkZE9wdGlvbnNIdG1sOnNiLF9mbkRldGVjdEhlYWRlcjpmYSxfZm5HZXRVbmlxdWVUaHM6dWEsX2ZuRmVhdHVyZUh0bWxGaWx0ZXI6dWIsX2ZuRmlsdGVyQ29tcGxldGU6aWEsX2ZuRmlsdGVyQ3VzdG9tOkRiLApfZm5GaWx0ZXJDb2x1bW46Q2IsX2ZuRmlsdGVyOkJiLF9mbkZpbHRlckNyZWF0ZVNlYXJjaDpUYSxfZm5Fc2NhcGVSZWdleDpVYSxfZm5GaWx0ZXJEYXRhOkViLF9mbkZlYXR1cmVIdG1sSW5mbzp4YixfZm5VcGRhdGVJbmZvOkhiLF9mbkluZm9NYWNyb3M6SWIsX2ZuSW5pdGlhbGlzZTpqYSxfZm5Jbml0Q29tcGxldGU6eGEsX2ZuTGVuZ3RoQ2hhbmdlOlZhLF9mbkZlYXR1cmVIdG1sTGVuZ3RoOnRiLF9mbkZlYXR1cmVIdG1sUGFnaW5hdGU6eWIsX2ZuUGFnZUNoYW5nZTpYYSxfZm5GZWF0dXJlSHRtbFByb2Nlc3Npbmc6dmIsX2ZuUHJvY2Vzc2luZ0Rpc3BsYXk6SyxfZm5GZWF0dXJlSHRtbFRhYmxlOndiLF9mblNjcm9sbERyYXc6bmEsX2ZuQXBwbHlUb0NoaWxkcmVuOk4sX2ZuQ2FsY3VsYXRlQ29sdW1uV2lkdGhzOkphLF9mblRocm90dGxlOlNhLF9mbkNvbnZlcnRUb1dpZHRoOkpiLF9mbkdldFdpZGVzdE5vZGU6S2IsX2ZuR2V0TWF4TGVuU3RyaW5nOkxiLF9mblN0cmluZ1RvQ3NzOkIsCl9mblNvcnRGbGF0dGVuOlksX2ZuU29ydDpyYixfZm5Tb3J0QXJpYTpOYixfZm5Tb3J0TGlzdGVuZXI6WmEsX2ZuU29ydEF0dGFjaExpc3RlbmVyOlFhLF9mblNvcnRpbmdDbGFzc2VzOkFhLF9mblNvcnREYXRhOk1iLF9mblNhdmVTdGF0ZTpCYSxfZm5Mb2FkU3RhdGU6T2IsX2ZuU2V0dGluZ3NGcm9tTm9kZTpDYSxfZm5Mb2c6TyxfZm5NYXA6TSxfZm5CaW5kQWN0aW9uOiRhLF9mbkNhbGxiYWNrUmVnOkUsX2ZuQ2FsbGJhY2tGaXJlOkEsX2ZuTGVuZ3RoT3ZlcmZsb3c6V2EsX2ZuUmVuZGVyZXI6UmEsX2ZuRGF0YVNvdXJjZTpELF9mblJvd0F0dHJpYnV0ZXM6UGEsX2ZuRXh0ZW5kOmFiLF9mbkNhbGN1bGF0ZUVuZDpmdW5jdGlvbigpe319KTtmLmZuLmRhdGFUYWJsZT1xO3EuJD1mO2YuZm4uZGF0YVRhYmxlU2V0dGluZ3M9cS5zZXR0aW5ncztmLmZuLmRhdGFUYWJsZUV4dD1xLmV4dDtmLmZuLkRhdGFUYWJsZT1mdW5jdGlvbihhKXtyZXR1cm4gZih0aGlzKS5kYXRhVGFibGUoYSkuYXBpKCl9OwpmLmVhY2gocSxmdW5jdGlvbihhLGIpe2YuZm4uRGF0YVRhYmxlW2FdPWJ9KTtyZXR1cm4gZi5mbi5kYXRhVGFibGV9KTsK"></script>
|
||
<script src="data:application/javascript;base64,LyohCgpKU1ppcCAtIEEgSmF2YXNjcmlwdCBjbGFzcyBmb3IgZ2VuZXJhdGluZyBhbmQgcmVhZGluZyB6aXAgZmlsZXMKPGh0dHA6Ly9zdHVhcnRrLmNvbS9qc3ppcD4KCihjKSAyMDA5LTIwMTQgU3R1YXJ0IEtuaWdodGxleSA8c3R1YXJ0IFthdF0gc3R1YXJ0ay5jb20+CkR1YWwgbGljZW5jZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIG9yIEdQTHYzLiBTZWUgaHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9TdHVrL2pzemlwL21hc3Rlci9MSUNFTlNFLm1hcmtkb3duLgoKSlNaaXAgdXNlcyB0aGUgbGlicmFyeSBwYWtvIHJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSA6Cmh0dHBzOi8vZ2l0aHViLmNvbS9ub2RlY2EvcGFrby9ibG9iL21hc3Rlci9MSUNFTlNFCiovCiFmdW5jdGlvbihhKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPWEoKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpZGVmaW5lKFtdLGEpO2Vsc2V7dmFyIGI7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/Yj13aW5kb3c6InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Yj1nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYoYj1zZWxmKSxiLkpTWmlwPWEoKX19KGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGEoYixjLGQpe2Z1bmN0aW9uIGUoZyxoKXtpZighY1tnXSl7aWYoIWJbZ10pe3ZhciBpPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFoJiZpKXJldHVybiBpKGcsITApO2lmKGYpcmV0dXJuIGYoZywhMCk7dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrZysiJyIpfXZhciBqPWNbZ109e2V4cG9ydHM6e319O2JbZ11bMF0uY2FsbChqLmV4cG9ydHMsZnVuY3Rpb24oYSl7dmFyIGM9YltnXVsxXVthXTtyZXR1cm4gZShjP2M6YSl9LGosai5leHBvcnRzLGEsYixjLGQpfXJldHVybiBjW2ddLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGc9MDtnPGQubGVuZ3RoO2crKyllKGRbZ10pO3JldHVybiBlfSh7MTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iO2MuZW5jb2RlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYixjLGUsZixnLGgsaSxqPSIiLGs9MDtrPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChrKyspLGM9YS5jaGFyQ29kZUF0KGsrKyksZT1hLmNoYXJDb2RlQXQoaysrKSxmPWI+PjIsZz0oMyZiKTw8NHxjPj40LGg9KDE1JmMpPDwyfGU+PjYsaT02MyZlLGlzTmFOKGMpP2g9aT02NDppc05hTihlKSYmKGk9NjQpLGo9aitkLmNoYXJBdChmKStkLmNoYXJBdChnKStkLmNoYXJBdChoKStkLmNoYXJBdChpKTtyZXR1cm4gan0sYy5kZWNvZGU9ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoLGksaj0iIixrPTA7Zm9yKGE9YS5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7azxhLmxlbmd0aDspZj1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksZz1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaD1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksaT1kLmluZGV4T2YoYS5jaGFyQXQoaysrKSksYj1mPDwyfGc+PjQsYz0oMTUmZyk8PDR8aD4+MixlPSgzJmgpPDw2fGksais9U3RyaW5nLmZyb21DaGFyQ29kZShiKSw2NCE9aCYmKGorPVN0cmluZy5mcm9tQ2hhckNvZGUoYykpLDY0IT1pJiYoais9U3RyaW5nLmZyb21DaGFyQ29kZShlKSk7cmV0dXJuIGp9fSx7fV0sMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe3RoaXMuY29tcHJlc3NlZFNpemU9MCx0aGlzLnVuY29tcHJlc3NlZFNpemU9MCx0aGlzLmNyYzMyPTAsdGhpcy5jb21wcmVzc2lvbk1ldGhvZD1udWxsLHRoaXMuY29tcHJlc3NlZENvbnRlbnQ9bnVsbH1jLnByb3RvdHlwZT17Z2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxnZXRDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfX0sYi5leHBvcnRzPWN9LHt9XSwzOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuU1RPUkU9e21hZ2ljOiJceDAwXHgwMCIsY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LHVuY29tcHJlc3M6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGNvbXByZXNzSW5wdXRUeXBlOm51bGwsdW5jb21wcmVzc0lucHV0VHlwZTpudWxsfSxjLkRFRkxBVEU9YSgiLi9mbGF0ZSIpfSx7Ii4vZmxhdGUiOjh9XSw0OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3V0aWxzIiksZD1bMCwxOTk2OTU5ODk0LDM5OTM5MTk3ODgsMjU2NzUyNDc5NCwxMjQ2MzQxMzcsMTg4NjA1NzYxNSwzOTE1NjIxNjg1LDI2NTczOTIwMzUsMjQ5MjY4Mjc0LDIwNDQ1MDgzMjQsMzc3MjExNTIzMCwyNTQ3MTc3ODY0LDE2Mjk0MTk5NSwyMTI1NTYxMDIxLDM4ODc2MDcwNDcsMjQyODQ0NDA0OSw0OTg1MzY1NDgsMTc4OTkyNzY2Niw0MDg5MDE2NjQ4LDIyMjcwNjEyMTQsNDUwNTQ4ODYxLDE4NDMyNTg2MDMsNDEwNzU4MDc1MywyMjExNjc3NjM5LDMyNTg4Mzk5MCwxNjg0Nzc3MTUyLDQyNTExMjIwNDIsMjMyMTkyNjYzNiwzMzU2MzM0ODcsMTY2MTM2NTQ2NSw0MTk1MzAyNzU1LDIzNjYxMTUzMTcsOTk3MDczMDk2LDEyODE5NTM4ODYsMzU3OTg1NTMzMiwyNzI0Njg4MjQyLDEwMDY4ODgxNDUsMTI1ODYwNzY4NywzNTI0MTAxNjI5LDI3Njg5NDI0NDMsOTAxMDk3NzIyLDExMTkwMDA2ODQsMzY4NjUxNzIwNiwyODk4MDY1NzI4LDg1MzA0NDQ1MSwxMTcyMjY2MTAxLDM3MDUwMTU3NTksMjg4MjYxNjY2NSw2NTE3Njc5ODAsMTM3MzUwMzU0NiwzMzY5NTU0MzA0LDMyMTgxMDQ1OTgsNTY1NTA3MjUzLDE0NTQ2MjE3MzEsMzQ4NTExMTcwNSwzMDk5NDM2MzAzLDY3MTI2Njk3NCwxNTk0MTk4MDI0LDMzMjI3MzA5MzAsMjk3MDM0NzgxMiw3OTU4MzU1MjcsMTQ4MzIzMDIyNSwzMjQ0MzY3Mjc1LDMwNjAxNDk1NjUsMTk5NDE0NjE5MiwzMTE1ODUzNCwyNTYzOTA3NzcyLDQwMjM3MTc5MzAsMTkwNzQ1OTQ2NSwxMTI2MzcyMTUsMjY4MDE1MzI1MywzOTA0NDI3MDU5LDIwMTM3NzYyOTAsMjUxNzIyMDM2LDI1MTcyMTUzNzQsMzc3NTgzMDA0MCwyMTM3NjU2NzYzLDE0MTM3NjgxMywyNDM5Mjc3NzE5LDM4NjUyNzEyOTcsMTgwMjE5NTQ0NCw0NzY4NjQ4NjYsMjIzODAwMTM2OCw0MDY2NTA4ODc4LDE4MTIzNzA5MjUsNDUzMDkyNzMxLDIxODE2MjUwMjUsNDExMTQ1MTIyMywxNzA2MDg4OTAyLDMxNDA0MjcwNCwyMzQ0NTMyMjAyLDQyNDAwMTc1MzIsMTY1ODY1ODI3MSwzNjY2MTk5NzcsMjM2MjY3MDMyMyw0MjI0OTk0NDA1LDEzMDM1MzU5NjAsOTg0OTYxNDg2LDI3NDcwMDcwOTIsMzU2OTAzNzUzOCwxMjU2MTcwODE3LDEwMzc2MDQzMTEsMjc2NTIxMDczMywzNTU0MDc5OTk1LDExMzEwMTQ1MDYsODc5Njc5OTk2LDI5MDkyNDM0NjIsMzY2Mzc3MTg1NiwxMTQxMTI0NDY3LDg1NTg0MjI3NywyODUyODAxNjMxLDM3MDg2NDg2NDksMTM0MjUzMzk0OCw2NTQ0NTkzMDYsMzE4ODM5NjA0OCwzMzczMDE1MTc0LDE0NjY0Nzk5MDksNTQ0MTc5NjM1LDMxMTA1MjM5MTMsMzQ2MjUyMjAxNSwxNTkxNjcxMDU0LDcwMjEzODc3NiwyOTY2NDYwNDUwLDMzNTI3OTk0MTIsMTUwNDkxODgwNyw3ODM1NTE4NzMsMzA4MjY0MDQ0MywzMjMzNDQyOTg5LDM5ODgyOTIzODQsMjU5NjI1NDY0Niw2MjMxNzA2OCwxOTU3ODEwODQyLDM5Mzk4NDU5NDUsMjY0NzgxNjExMSw4MTQ3MDk5NywxOTQzODAzNTIzLDM4MTQ5MTg5MzAsMjQ4OTU5NjgwNCwyMjUyNzQ0MzAsMjA1Mzc5MDM3NiwzODI2MTc1NzU1LDI0NjY5MDYwMTMsMTY3ODE2NzQzLDIwOTc2NTEzNzcsNDAyNzU1MjU4MCwyMjY1NDkwMzg2LDUwMzQ0NDA3MiwxNzYyMDUwODE0LDQxNTA0MTcyNDUsMjE1NDEyOTM1NSw0MjY1MjIyMjUsMTg1MjUwNzg3OSw0Mjc1MzEzNTI2LDIzMTIzMTc5MjAsMjgyNzUzNjI2LDE3NDI1NTU4NTIsNDE4OTcwODE0MywyMzk0ODc3OTQ1LDM5NzkxNzc2MywxNjIyMTgzNjM3LDM2MDQzOTA4ODgsMjcxNDg2NjU1OCw5NTM3Mjk3MzIsMTM0MDA3NjYyNiwzNTE4NzE5OTg1LDI3OTczNjA5OTksMTA2ODgyODM4MSwxMjE5NjM4ODU5LDM2MjQ3NDE4NTAsMjkzNjY3NTE0OCw5MDYxODU0NjIsMTA5MDgxMjUxMiwzNzQ3NjcyMDAzLDI4MjUzNzk2NjksODI5MzI5MTM1LDExODEzMzUxNjEsMzQxMjE3NzgwNCwzMTYwODM0ODQyLDYyODA4NTQwOCwxMzgyNjA1MzY2LDM0MjMzNjkxMDksMzEzODA3ODQ2Nyw1NzA1NjIyMzMsMTQyNjQwMDgxNSwzMzE3MzE2NTQyLDI5OTg3MzM2MDgsNzMzMjM5OTU0LDE1NTUyNjE5NTYsMzI2ODkzNTU5MSwzMDUwMzYwNjI1LDc1MjQ1OTQwMywxNTQxMzIwMjIxLDI2MDcwNzE5MjAsMzk2NTk3MzAzMCwxOTY5OTIyOTcyLDQwNzM1NDk4LDI2MTc4MzcyMjUsMzk0MzU3NzE1MSwxOTEzMDg3ODc3LDgzOTA4MzcxLDI1MTIzNDE2MzQsMzgwMzc0MDY5MiwyMDc1MjA4NjIyLDIxMzI2MTExMiwyNDYzMjcyNjAzLDM4NTU5OTAyODUsMjA5NDg1NDA3MSwxOTg5NTg4ODEsMjI2MjAyOTAxMiw0MDU3MjYwNjEwLDE3NTkzNTk5OTIsNTM0NDE0MTkwLDIxNzY3MTg1NDEsNDEzOTMyOTExNSwxODczODM2MDAxLDQxNDY2NDU2NywyMjgyMjQ4OTM0LDQyNzkyMDAzNjgsMTcxMTY4NDU1NCwyODUyODExMTYsMjQwNTgwMTcyNyw0MTY3MjE2NzQ1LDE2MzQ0Njc3OTUsMzc2MjI5NzAxLDI2ODUwNjc4OTYsMzYwODAwNzQwNiwxMzA4OTE4NjEyLDk1NjU0MzkzOCwyODA4NTU1MTA1LDM0OTU5NTgyNjMsMTIzMTYzNjMwMSwxMDQ3NDI3MDM1LDI5MzI5NTk4MTgsMzY1NDcwMzgzNiwxMDg4MzU5MjcwLDkzNjkxOGUzLDI4NDc3MTQ4OTksMzczNjgzNzgyOSwxMjAyOTAwODYzLDgxNzIzMzg5NywzMTgzMzQyMTA4LDM0MDEyMzcxMzAsMTQwNDI3NzU1Miw2MTU4MTgxNTAsMzEzNDIwNzQ5MywzNDUzNDIxMjAzLDE0MjM4NTc0NDksNjAxNDUwNDMxLDMwMDk4Mzc2MTQsMzI5NDcxMDQ1NiwxNTY3MTAzNzQ2LDcxMTkyODcyNCwzMDIwNjY4NDcxLDMyNzIzODAwNjUsMTUxMDMzNDIzNSw3NTUxNjcxMTddO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8IWEubGVuZ3RoKXJldHVybiAwO3ZhciBlPSJzdHJpbmciIT09Yy5nZXRUeXBlT2YoYSk7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0wKTt2YXIgZj0wLGc9MCxoPTA7Yj0tMV5iO2Zvcih2YXIgaT0wLGo9YS5sZW5ndGg7aj5pO2krKyloPWU/YVtpXTphLmNoYXJDb2RlQXQoaSksZz0yNTUmKGJeaCksZj1kW2ddLGI9Yj4+PjheZjtyZXR1cm4tMV5ifX0seyIuL3V0aWxzIjoyMX1dLDU6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3V0aWxzIik7Yy5wcm90b3R5cGU9e2NoZWNrT2Zmc2V0OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleCh0aGlzLmluZGV4K2EpfSxjaGVja0luZGV4OmZ1bmN0aW9uKGEpe2lmKHRoaXMubGVuZ3RoPGF8fDA+YSl0aHJvdyBuZXcgRXJyb3IoIkVuZCBvZiBkYXRhIHJlYWNoZWQgKGRhdGEgbGVuZ3RoID0gIit0aGlzLmxlbmd0aCsiLCBhc2tlZCBpbmRleCA9ICIrYSsiKS4gQ29ycnVwdGVkIHppcCA/Iil9LHNldEluZGV4OmZ1bmN0aW9uKGEpe3RoaXMuY2hlY2tJbmRleChhKSx0aGlzLmluZGV4PWF9LHNraXA6ZnVuY3Rpb24oYSl7dGhpcy5zZXRJbmRleCh0aGlzLmluZGV4K2EpfSxieXRlQXQ6ZnVuY3Rpb24oKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0wO2Zvcih0aGlzLmNoZWNrT2Zmc2V0KGEpLGI9dGhpcy5pbmRleCthLTE7Yj49dGhpcy5pbmRleDtiLS0pYz0oYzw8OCkrdGhpcy5ieXRlQXQoYik7cmV0dXJuIHRoaXMuaW5kZXgrPWEsY30scmVhZFN0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKGEpKX0scmVhZERhdGE6ZnVuY3Rpb24oKXt9LGxhc3RJbmRleE9mU2lnbmF0dXJlOmZ1bmN0aW9uKCl7fSxyZWFkRGF0ZTpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZEludCg0KTtyZXR1cm4gbmV3IERhdGUoKGE+PjI1JjEyNykrMTk4MCwoYT4+MjEmMTUpLTEsYT4+MTYmMzEsYT4+MTEmMzEsYT4+NSY2MywoMzEmYSk8PDEpfX0sYi5leHBvcnRzPWN9LHsiLi91dGlscyI6MjF9XSw2OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2MuYmFzZTY0PSExLGMuYmluYXJ5PSExLGMuZGlyPSExLGMuY3JlYXRlRm9sZGVycz0hMSxjLmRhdGU9bnVsbCxjLmNvbXByZXNzaW9uPW51bGwsYy5jb21wcmVzc2lvbk9wdGlvbnM9bnVsbCxjLmNvbW1lbnQ9bnVsbCxjLnVuaXhQZXJtaXNzaW9ucz1udWxsLGMuZG9zUGVybWlzc2lvbnM9bnVsbH0se31dLDc6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9YSgiLi91dGlscyIpO2Muc3RyaW5nMmJpbmFyeT1mdW5jdGlvbihhKXtyZXR1cm4gZC5zdHJpbmcyYmluYXJ5KGEpfSxjLnN0cmluZzJVaW50OEFycmF5PWZ1bmN0aW9uKGEpe3JldHVybiBkLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKX0sYy51aW50OEFycmF5MlN0cmluZz1mdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIixhKX0sYy5zdHJpbmcyQmxvYj1mdW5jdGlvbihhKXt2YXIgYj1kLnRyYW5zZm9ybVRvKCJhcnJheWJ1ZmZlciIsYSk7cmV0dXJuIGQuYXJyYXlCdWZmZXIyQmxvYihiKX0sYy5hcnJheUJ1ZmZlcjJCbG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmFycmF5QnVmZmVyMkJsb2IoYSl9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZC50cmFuc2Zvcm1UbyhhLGIpfSxjLmdldFR5cGVPZj1mdW5jdGlvbihhKXtyZXR1cm4gZC5nZXRUeXBlT2YoYSl9LGMuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGEpe3JldHVybiBkLmNoZWNrU3VwcG9ydChhKX0sYy5NQVhfVkFMVUVfMTZCSVRTPWQuTUFYX1ZBTFVFXzE2QklUUyxjLk1BWF9WQUxVRV8zMkJJVFM9ZC5NQVhfVkFMVUVfMzJCSVRTLGMucHJldHR5PWZ1bmN0aW9uKGEpe3JldHVybiBkLnByZXR0eShhKX0sYy5maW5kQ29tcHJlc3Npb249ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZmluZENvbXByZXNzaW9uKGEpfSxjLmlzUmVnRXhwPWZ1bmN0aW9uKGEpe3JldHVybiBkLmlzUmVnRXhwKGEpfX0seyIuL3V0aWxzIjoyMX1dLDg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7dmFyIGQ9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQzMkFycmF5LGU9YSgicGFrbyIpO2MudW5jb21wcmVzc0lucHV0VHlwZT1kPyJ1aW50OGFycmF5IjoiYXJyYXkiLGMuY29tcHJlc3NJbnB1dFR5cGU9ZD8idWludDhhcnJheSI6ImFycmF5IixjLm1hZ2ljPSJcYlx4MDAiLGMuY29tcHJlc3M9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gZS5kZWZsYXRlUmF3KGEse2xldmVsOmIubGV2ZWx8fC0xfSl9LGMudW5jb21wcmVzcz1mdW5jdGlvbihhKXtyZXR1cm4gZS5pbmZsYXRlUmF3KGEpfX0se3Bha286MjR9XSw5OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBjPyh0aGlzLmZpbGVzPXt9LHRoaXMuY29tbWVudD1udWxsLHRoaXMucm9vdD0iIixhJiZ0aGlzLmxvYWQoYSxiKSx2b2lkKHRoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgYztmb3IodmFyIGIgaW4gdGhpcykiZnVuY3Rpb24iIT10eXBlb2YgdGhpc1tiXSYmKGFbYl09dGhpc1tiXSk7cmV0dXJuIGF9KSk6bmV3IGMoYSxiKX12YXIgZD1hKCIuL2Jhc2U2NCIpO2MucHJvdG90eXBlPWEoIi4vb2JqZWN0IiksYy5wcm90b3R5cGUubG9hZD1hKCIuL2xvYWQiKSxjLnN1cHBvcnQ9YSgiLi9zdXBwb3J0IiksYy5kZWZhdWx0cz1hKCIuL2RlZmF1bHRzIiksYy51dGlscz1hKCIuL2RlcHJlY2F0ZWRQdWJsaWNVdGlscyIpLGMuYmFzZTY0PXtlbmNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZW5jb2RlKGEpfSxkZWNvZGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZGVjb2RlKGEpfX0sYy5jb21wcmVzc2lvbnM9YSgiLi9jb21wcmVzc2lvbnMiKSxiLmV4cG9ydHM9Y30seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2lvbnMiOjMsIi4vZGVmYXVsdHMiOjYsIi4vZGVwcmVjYXRlZFB1YmxpY1V0aWxzIjo3LCIuL2xvYWQiOjEwLCIuL29iamVjdCI6MTMsIi4vc3VwcG9ydCI6MTd9XSwxMDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9iYXNlNjQiKSxkPWEoIi4vemlwRW50cmllcyIpO2IuZXhwb3J0cz1mdW5jdGlvbihhLGIpe3ZhciBlLGYsZyxoO2ZvcihiPWJ8fHt9LGIuYmFzZTY0JiYoYT1jLmRlY29kZShhKSksZj1uZXcgZChhLGIpLGU9Zi5maWxlcyxnPTA7ZzxlLmxlbmd0aDtnKyspaD1lW2ddLHRoaXMuZmlsZShoLmZpbGVOYW1lLGguZGVjb21wcmVzc2VkLHtiaW5hcnk6ITAsb3B0aW1pemVkQmluYXJ5U3RyaW5nOiEwLGRhdGU6aC5kYXRlLGRpcjpoLmRpcixjb21tZW50OmguZmlsZUNvbW1lbnQubGVuZ3RoP2guZmlsZUNvbW1lbnQ6bnVsbCx1bml4UGVybWlzc2lvbnM6aC51bml4UGVybWlzc2lvbnMsZG9zUGVybWlzc2lvbnM6aC5kb3NQZXJtaXNzaW9ucyxjcmVhdGVGb2xkZXJzOmIuY3JlYXRlRm9sZGVyc30pO3JldHVybiBmLnppcENvbW1lbnQubGVuZ3RoJiYodGhpcy5jb21tZW50PWYuemlwQ29tbWVudCksdGhpc319LHsiLi9iYXNlNjQiOjEsIi4vemlwRW50cmllcyI6MjJ9XSwxMTpbZnVuY3Rpb24oYSxiKXsoZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2IuZXhwb3J0cz1mdW5jdGlvbihiLGMpe3JldHVybiBuZXcgYShiLGMpfSxiLmV4cG9ydHMudGVzdD1mdW5jdGlvbihiKXtyZXR1cm4gYS5pc0J1ZmZlcihiKX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXI/QnVmZmVyOnZvaWQgMCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhKXt0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MH12YXIgZD1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKTtjLnByb3RvdHlwZT1uZXcgZCxjLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihhKXt0aGlzLmNoZWNrT2Zmc2V0KGEpO3ZhciBiPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi91aW50OEFycmF5UmVhZGVyIjoxOH1dLDEzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0Ijt2YXIgYz1hKCIuL3N1cHBvcnQiKSxkPWEoIi4vdXRpbHMiKSxlPWEoIi4vY3JjMzIiKSxmPWEoIi4vc2lnbmF0dXJlIiksZz1hKCIuL2RlZmF1bHRzIiksaD1hKCIuL2Jhc2U2NCIpLGk9YSgiLi9jb21wcmVzc2lvbnMiKSxqPWEoIi4vY29tcHJlc3NlZE9iamVjdCIpLGs9YSgiLi9ub2RlQnVmZmVyIiksbD1hKCIuL3V0ZjgiKSxtPWEoIi4vc3RyaW5nV3JpdGVyIiksbj1hKCIuL3VpbnQ4QXJyYXlXcml0ZXIiKSxvPWZ1bmN0aW9uKGEpe2lmKGEuX2RhdGEgaW5zdGFuY2VvZiBqJiYoYS5fZGF0YT1hLl9kYXRhLmdldENvbnRlbnQoKSxhLm9wdGlvbnMuYmluYXJ5PSEwLGEub3B0aW9ucy5iYXNlNjQ9ITEsInVpbnQ4YXJyYXkiPT09ZC5nZXRUeXBlT2YoYS5fZGF0YSkpKXt2YXIgYj1hLl9kYXRhO2EuX2RhdGE9bmV3IFVpbnQ4QXJyYXkoYi5sZW5ndGgpLDAhPT1iLmxlbmd0aCYmYS5fZGF0YS5zZXQoYiwwKX1yZXR1cm4gYS5fZGF0YX0scD1mdW5jdGlvbihhKXt2YXIgYj1vKGEpLGU9ZC5nZXRUeXBlT2YoYik7cmV0dXJuInN0cmluZyI9PT1lPyFhLm9wdGlvbnMuYmluYXJ5JiZjLm5vZGVidWZmZXI/ayhiLCJ1dGYtOCIpOmEuYXNCaW5hcnkoKTpifSxxPWZ1bmN0aW9uKGEpe3ZhciBiPW8odGhpcyk7cmV0dXJuIG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGI/IiI6KHRoaXMub3B0aW9ucy5iYXNlNjQmJihiPWguZGVjb2RlKGIpKSxiPWEmJnRoaXMub3B0aW9ucy5iaW5hcnk/RC51dGY4ZGVjb2RlKGIpOmQudHJhbnNmb3JtVG8oInN0cmluZyIsYiksYXx8dGhpcy5vcHRpb25zLmJpbmFyeXx8KGI9ZC50cmFuc2Zvcm1Ubygic3RyaW5nIixELnV0ZjhlbmNvZGUoYikpKSxiKX0scj1mdW5jdGlvbihhLGIsYyl7dGhpcy5uYW1lPWEsdGhpcy5kaXI9Yy5kaXIsdGhpcy5kYXRlPWMuZGF0ZSx0aGlzLmNvbW1lbnQ9Yy5jb21tZW50LHRoaXMudW5peFBlcm1pc3Npb25zPWMudW5peFBlcm1pc3Npb25zLHRoaXMuZG9zUGVybWlzc2lvbnM9Yy5kb3NQZXJtaXNzaW9ucyx0aGlzLl9kYXRhPWIsdGhpcy5vcHRpb25zPWMsdGhpcy5faW5pdGlhbE1ldGFkYXRhPXtkaXI6Yy5kaXIsZGF0ZTpjLmRhdGV9fTtyLnByb3RvdHlwZT17YXNUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIHEuY2FsbCh0aGlzLCEwKX0sYXNCaW5hcnk6ZnVuY3Rpb24oKXtyZXR1cm4gcS5jYWxsKHRoaXMsITEpfSxhc05vZGVCdWZmZXI6ZnVuY3Rpb24oKXt2YXIgYT1wKHRoaXMpO3JldHVybiBkLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixhKX0sYXNVaW50OEFycmF5OmZ1bmN0aW9uKCl7dmFyIGE9cCh0aGlzKTtyZXR1cm4gZC50cmFuc2Zvcm1UbygidWludDhhcnJheSIsYSl9LGFzQXJyYXlCdWZmZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hc1VpbnQ4QXJyYXkoKS5idWZmZXJ9fTt2YXIgcz1mdW5jdGlvbihhLGIpe3ZhciBjLGQ9IiI7Zm9yKGM9MDtiPmM7YysrKWQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmEpLGE+Pj49ODtyZXR1cm4gZH0sdD1mdW5jdGlvbigpe3ZhciBhLGIsYz17fTtmb3IoYT0wO2E8YXJndW1lbnRzLmxlbmd0aDthKyspZm9yKGIgaW4gYXJndW1lbnRzW2FdKWFyZ3VtZW50c1thXS5oYXNPd25Qcm9wZXJ0eShiKSYmInVuZGVmaW5lZCI9PXR5cGVvZiBjW2JdJiYoY1tiXT1hcmd1bWVudHNbYV1bYl0pO3JldHVybiBjfSx1PWZ1bmN0aW9uKGEpe3JldHVybiBhPWF8fHt9LGEuYmFzZTY0IT09ITB8fG51bGwhPT1hLmJpbmFyeSYmdm9pZCAwIT09YS5iaW5hcnl8fChhLmJpbmFyeT0hMCksYT10KGEsZyksYS5kYXRlPWEuZGF0ZXx8bmV3IERhdGUsbnVsbCE9PWEuY29tcHJlc3Npb24mJihhLmNvbXByZXNzaW9uPWEuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSksYX0sdj1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZj1kLmdldFR5cGVPZihiKTtpZihjPXUoYyksInN0cmluZyI9PXR5cGVvZiBjLnVuaXhQZXJtaXNzaW9ucyYmKGMudW5peFBlcm1pc3Npb25zPXBhcnNlSW50KGMudW5peFBlcm1pc3Npb25zLDgpKSxjLnVuaXhQZXJtaXNzaW9ucyYmMTYzODQmYy51bml4UGVybWlzc2lvbnMmJihjLmRpcj0hMCksYy5kb3NQZXJtaXNzaW9ucyYmMTYmYy5kb3NQZXJtaXNzaW9ucyYmKGMuZGlyPSEwKSxjLmRpciYmKGE9eChhKSksYy5jcmVhdGVGb2xkZXJzJiYoZT13KGEpKSYmeS5jYWxsKHRoaXMsZSwhMCksYy5kaXJ8fG51bGw9PT1ifHwidW5kZWZpbmVkIj09dHlwZW9mIGIpYy5iYXNlNjQ9ITEsYy5iaW5hcnk9ITEsYj1udWxsLGY9bnVsbDtlbHNlIGlmKCJzdHJpbmciPT09ZiljLmJpbmFyeSYmIWMuYmFzZTY0JiZjLm9wdGltaXplZEJpbmFyeVN0cmluZyE9PSEwJiYoYj1kLnN0cmluZzJiaW5hcnkoYikpO2Vsc2V7aWYoYy5iYXNlNjQ9ITEsYy5iaW5hcnk9ITAsIShmfHxiIGluc3RhbmNlb2YgaikpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBvZiAnIithKyInIGlzIGluIGFuIHVuc3VwcG9ydGVkIGZvcm1hdCAhIik7ImFycmF5YnVmZmVyIj09PWYmJihiPWQudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLGIpKX12YXIgZz1uZXcgcihhLGIsYyk7cmV0dXJuIHRoaXMuZmlsZXNbYV09ZyxnfSx3PWZ1bmN0aW9uKGEpeyIvIj09YS5zbGljZSgtMSkmJihhPWEuc3Vic3RyaW5nKDAsYS5sZW5ndGgtMSkpO3ZhciBiPWEubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4gYj4wP2Euc3Vic3RyaW5nKDAsYik6IiJ9LHg9ZnVuY3Rpb24oYSl7cmV0dXJuIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYX0seT1mdW5jdGlvbihhLGIpe3JldHVybiBiPSJ1bmRlZmluZWQiIT10eXBlb2YgYj9iOiExLGE9eChhKSx0aGlzLmZpbGVzW2FdfHx2LmNhbGwodGhpcyxhLG51bGwse2RpcjohMCxjcmVhdGVGb2xkZXJzOmJ9KSx0aGlzLmZpbGVzW2FdfSx6PWZ1bmN0aW9uKGEsYixjKXt2YXIgZixnPW5ldyBqO3JldHVybiBhLl9kYXRhIGluc3RhbmNlb2Ygaj8oZy51bmNvbXByZXNzZWRTaXplPWEuX2RhdGEudW5jb21wcmVzc2VkU2l6ZSxnLmNyYzMyPWEuX2RhdGEuY3JjMzIsMD09PWcudW5jb21wcmVzc2VkU2l6ZXx8YS5kaXI/KGI9aS5TVE9SRSxnLmNvbXByZXNzZWRDb250ZW50PSIiLGcuY3JjMzI9MCk6YS5fZGF0YS5jb21wcmVzc2lvbk1ldGhvZD09PWIubWFnaWM/Zy5jb21wcmVzc2VkQ29udGVudD1hLl9kYXRhLmdldENvbXByZXNzZWRDb250ZW50KCk6KGY9YS5fZGF0YS5nZXRDb250ZW50KCksZy5jb21wcmVzc2VkQ29udGVudD1iLmNvbXByZXNzKGQudHJhbnNmb3JtVG8oYi5jb21wcmVzc0lucHV0VHlwZSxmKSxjKSkpOihmPXAoYSksKCFmfHwwPT09Zi5sZW5ndGh8fGEuZGlyKSYmKGI9aS5TVE9SRSxmPSIiKSxnLnVuY29tcHJlc3NlZFNpemU9Zi5sZW5ndGgsZy5jcmMzMj1lKGYpLGcuY29tcHJlc3NlZENvbnRlbnQ9Yi5jb21wcmVzcyhkLnRyYW5zZm9ybVRvKGIuY29tcHJlc3NJbnB1dFR5cGUsZiksYykpLGcuY29tcHJlc3NlZFNpemU9Zy5jb21wcmVzc2VkQ29udGVudC5sZW5ndGgsZy5jb21wcmVzc2lvbk1ldGhvZD1iLm1hZ2ljLGd9LEE9ZnVuY3Rpb24oYSxiKXt2YXIgYz1hO3JldHVybiBhfHwoYz1iPzE2ODkzOjMzMjA0KSwoNjU1MzUmYyk8PDE2fSxCPWZ1bmN0aW9uKGEpe3JldHVybiA2MyYoYXx8MCl9LEM9ZnVuY3Rpb24oYSxiLGMsZyxoKXt2YXIgaSxqLGssbSxuPShjLmNvbXByZXNzZWRDb250ZW50LGQudHJhbnNmb3JtVG8oInN0cmluZyIsbC51dGY4ZW5jb2RlKGIubmFtZSkpKSxvPWIuY29tbWVudHx8IiIscD1kLnRyYW5zZm9ybVRvKCJzdHJpbmciLGwudXRmOGVuY29kZShvKSkscT1uLmxlbmd0aCE9PWIubmFtZS5sZW5ndGgscj1wLmxlbmd0aCE9PW8ubGVuZ3RoLHQ9Yi5vcHRpb25zLHU9IiIsdj0iIix3PSIiO2s9Yi5faW5pdGlhbE1ldGFkYXRhLmRpciE9PWIuZGlyP2IuZGlyOnQuZGlyLG09Yi5faW5pdGlhbE1ldGFkYXRhLmRhdGUhPT1iLmRhdGU/Yi5kYXRlOnQuZGF0ZTt2YXIgeD0wLHk9MDtrJiYoeHw9MTYpLCJVTklYIj09PWg/KHk9Nzk4LHh8PUEoYi51bml4UGVybWlzc2lvbnMsaykpOih5PTIwLHh8PUIoYi5kb3NQZXJtaXNzaW9ucyxrKSksaT1tLmdldEhvdXJzKCksaTw8PTYsaXw9bS5nZXRNaW51dGVzKCksaTw8PTUsaXw9bS5nZXRTZWNvbmRzKCkvMixqPW0uZ2V0RnVsbFllYXIoKS0xOTgwLGo8PD00LGp8PW0uZ2V0TW9udGgoKSsxLGo8PD01LGp8PW0uZ2V0RGF0ZSgpLHEmJih2PXMoMSwxKStzKGUobiksNCkrbix1Kz0idXAiK3Modi5sZW5ndGgsMikrdiksciYmKHc9cygxLDEpK3ModGhpcy5jcmMzMihwKSw0KStwLHUrPSJ1YyIrcyh3Lmxlbmd0aCwyKSt3KTt2YXIgej0iIjt6Kz0iXG5ceDAwIix6Kz1xfHxyPyJceDAwXGIiOiJceDAwXHgwMCIseis9Yy5jb21wcmVzc2lvbk1ldGhvZCx6Kz1zKGksMikseis9cyhqLDIpLHorPXMoYy5jcmMzMiw0KSx6Kz1zKGMuY29tcHJlc3NlZFNpemUsNCkseis9cyhjLnVuY29tcHJlc3NlZFNpemUsNCkseis9cyhuLmxlbmd0aCwyKSx6Kz1zKHUubGVuZ3RoLDIpO3ZhciBDPWYuTE9DQUxfRklMRV9IRUFERVIreituK3UsRD1mLkNFTlRSQUxfRklMRV9IRUFERVIrcyh5LDIpK3orcyhwLmxlbmd0aCwyKSsiXHgwMFx4MDBceDAwXHgwMCIrcyh4LDQpK3MoZyw0KStuK3UrcDtyZXR1cm57ZmlsZVJlY29yZDpDLGRpclJlY29yZDpELGNvbXByZXNzZWRPYmplY3Q6Y319LEQ9e2xvYWQ6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIkxvYWQgbWV0aG9kIGlzIG5vdCBkZWZpbmVkLiBJcyB0aGUgZmlsZSBqc3ppcC1sb2FkLmpzIGluY2x1ZGVkID8iKX0sZmlsdGVyOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGY9W107Zm9yKGIgaW4gdGhpcy5maWxlcyl0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGIpJiYoZD10aGlzLmZpbGVzW2JdLGU9bmV3IHIoZC5uYW1lLGQuX2RhdGEsdChkLm9wdGlvbnMpKSxjPWIuc2xpY2UodGhpcy5yb290Lmxlbmd0aCxiLmxlbmd0aCksYi5zbGljZSgwLHRoaXMucm9vdC5sZW5ndGgpPT09dGhpcy5yb290JiZhKGMsZSkmJmYucHVzaChlKSk7cmV0dXJuIGZ9LGZpbGU6ZnVuY3Rpb24oYSxiLGMpe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihkLmlzUmVnRXhwKGEpKXt2YXIgZT1hO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihhLGIpe3JldHVybiFiLmRpciYmZS50ZXN0KGEpfSl9cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKGIsYyl7cmV0dXJuIWMuZGlyJiZiPT09YX0pWzBdfHxudWxsfXJldHVybiBhPXRoaXMucm9vdCthLHYuY2FsbCh0aGlzLGEsYixjKSx0aGlzfSxmb2xkZXI6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIHRoaXM7aWYoZC5pc1JlZ0V4cChhKSlyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5kaXImJmEudGVzdChiKX0pO3ZhciBiPXRoaXMucm9vdCthLGM9eS5jYWxsKHRoaXMsYiksZT10aGlzLmNsb25lKCk7cmV0dXJuIGUucm9vdD1jLm5hbWUsZX0scmVtb3ZlOmZ1bmN0aW9uKGEpe2E9dGhpcy5yb290K2E7dmFyIGI9dGhpcy5maWxlc1thXTtpZihifHwoIi8iIT1hLnNsaWNlKC0xKSYmKGErPSIvIiksYj10aGlzLmZpbGVzW2FdKSxiJiYhYi5kaXIpZGVsZXRlIHRoaXMuZmlsZXNbYV07ZWxzZSBmb3IodmFyIGM9dGhpcy5maWx0ZXIoZnVuY3Rpb24oYixjKXtyZXR1cm4gYy5uYW1lLnNsaWNlKDAsYS5sZW5ndGgpPT09YX0pLGQ9MDtkPGMubGVuZ3RoO2QrKylkZWxldGUgdGhpcy5maWxlc1tjW2RdLm5hbWVdO3JldHVybiB0aGlzfSxnZW5lcmF0ZTpmdW5jdGlvbihhKXthPXQoYXx8e30se2Jhc2U2NDohMCxjb21wcmVzc2lvbjoiU1RPUkUiLGNvbXByZXNzaW9uT3B0aW9uczpudWxsLHR5cGU6ImJhc2U2NCIscGxhdGZvcm06IkRPUyIsY29tbWVudDpudWxsLG1pbWVUeXBlOiJhcHBsaWNhdGlvbi96aXAifSksZC5jaGVja1N1cHBvcnQoYS50eXBlKSwoImRhcndpbiI9PT1hLnBsYXRmb3JtfHwiZnJlZWJzZCI9PT1hLnBsYXRmb3JtfHwibGludXgiPT09YS5wbGF0Zm9ybXx8InN1bm9zIj09PWEucGxhdGZvcm0pJiYoYS5wbGF0Zm9ybT0iVU5JWCIpLCJ3aW4zMiI9PT1hLnBsYXRmb3JtJiYoYS5wbGF0Zm9ybT0iRE9TIik7dmFyIGIsYyxlPVtdLGc9MCxqPTAsaz1kLnRyYW5zZm9ybVRvKCJzdHJpbmciLHRoaXMudXRmOGVuY29kZShhLmNvbW1lbnR8fHRoaXMuY29tbWVudHx8IiIpKTtmb3IodmFyIGwgaW4gdGhpcy5maWxlcylpZih0aGlzLmZpbGVzLmhhc093blByb3BlcnR5KGwpKXt2YXIgbz10aGlzLmZpbGVzW2xdLHA9by5vcHRpb25zLmNvbXByZXNzaW9ufHxhLmNvbXByZXNzaW9uLnRvVXBwZXJDYXNlKCkscT1pW3BdO2lmKCFxKXRocm93IG5ldyBFcnJvcihwKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0aG9kICEiKTt2YXIgcj1vLm9wdGlvbnMuY29tcHJlc3Npb25PcHRpb25zfHxhLmNvbXByZXNzaW9uT3B0aW9uc3x8e30sdT16LmNhbGwodGhpcyxvLHEsciksdj1DLmNhbGwodGhpcyxsLG8sdSxnLGEucGxhdGZvcm0pO2crPXYuZmlsZVJlY29yZC5sZW5ndGgrdS5jb21wcmVzc2VkU2l6ZSxqKz12LmRpclJlY29yZC5sZW5ndGgsZS5wdXNoKHYpfXZhciB3PSIiO3c9Zi5DRU5UUkFMX0RJUkVDVE9SWV9FTkQrIlx4MDBceDAwXHgwMFx4MDAiK3MoZS5sZW5ndGgsMikrcyhlLmxlbmd0aCwyKStzKGosNCkrcyhnLDQpK3Moay5sZW5ndGgsMikrazt2YXIgeD1hLnR5cGUudG9Mb3dlckNhc2UoKTtmb3IoYj0idWludDhhcnJheSI9PT14fHwiYXJyYXlidWZmZXIiPT09eHx8ImJsb2IiPT09eHx8Im5vZGVidWZmZXIiPT09eD9uZXcgbihnK2ordy5sZW5ndGgpOm5ldyBtKGcrait3Lmxlbmd0aCksYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZmlsZVJlY29yZCksYi5hcHBlbmQoZVtjXS5jb21wcmVzc2VkT2JqZWN0LmNvbXByZXNzZWRDb250ZW50KTtmb3IoYz0wO2M8ZS5sZW5ndGg7YysrKWIuYXBwZW5kKGVbY10uZGlyUmVjb3JkKTtiLmFwcGVuZCh3KTt2YXIgeT1iLmZpbmFsaXplKCk7c3dpdGNoKGEudHlwZS50b0xvd2VyQ2FzZSgpKXtjYXNlInVpbnQ4YXJyYXkiOmNhc2UiYXJyYXlidWZmZXIiOmNhc2Uibm9kZWJ1ZmZlciI6cmV0dXJuIGQudHJhbnNmb3JtVG8oYS50eXBlLnRvTG93ZXJDYXNlKCkseSk7Y2FzZSJibG9iIjpyZXR1cm4gZC5hcnJheUJ1ZmZlcjJCbG9iKGQudHJhbnNmb3JtVG8oImFycmF5YnVmZmVyIix5KSxhLm1pbWVUeXBlKTtjYXNlImJhc2U2NCI6cmV0dXJuIGEuYmFzZTY0P2guZW5jb2RlKHkpOnk7ZGVmYXVsdDpyZXR1cm4geX19LGNyYzMyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGUoYSxiKX0sdXRmOGVuY29kZTpmdW5jdGlvbihhKXtyZXR1cm4gZC50cmFuc2Zvcm1Ubygic3RyaW5nIixsLnV0ZjhlbmNvZGUoYSkpfSx1dGY4ZGVjb2RlOmZ1bmN0aW9uKGEpe3JldHVybiBsLnV0ZjhkZWNvZGUoYSl9fTtiLmV4cG9ydHM9RH0seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL2NvbXByZXNzaW9ucyI6MywiLi9jcmMzMiI6NCwiLi9kZWZhdWx0cyI6NiwiLi9ub2RlQnVmZmVyIjoxMSwiLi9zaWduYXR1cmUiOjE0LCIuL3N0cmluZ1dyaXRlciI6MTYsIi4vc3VwcG9ydCI6MTcsIi4vdWludDhBcnJheVdyaXRlciI6MTksIi4vdXRmOCI6MjAsIi4vdXRpbHMiOjIxfV0sMTQ6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7Yy5MT0NBTF9GSUxFX0hFQURFUj0iUEsDBCIsYy5DRU5UUkFMX0ZJTEVfSEVBREVSPSJQSwECIixjLkNFTlRSQUxfRElSRUNUT1JZX0VORD0iUEsFBiIsYy5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SPSJQSwYHIixjLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORD0iUEsGBiIsYy5EQVRBX0RFU0NSSVBUT1I9IlBLB1xiIn0se31dLDE1OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEsYil7dGhpcy5kYXRhPWEsYnx8KHRoaXMuZGF0YT1lLnN0cmluZzJiaW5hcnkodGhpcy5kYXRhKSksdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTB9dmFyIGQ9YSgiLi9kYXRhUmVhZGVyIiksZT1hKCIuL3V0aWxzIik7Yy5wcm90b3R5cGU9bmV3IGQsYy5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGEuY2hhckNvZGVBdChhKX0sYy5wcm90b3R5cGUubGFzdEluZGV4T2ZTaWduYXR1cmU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZGF0YS5sYXN0SW5kZXhPZihhKX0sYy5wcm90b3R5cGUucmVhZERhdGE9ZnVuY3Rpb24oYSl7dGhpcy5jaGVja09mZnNldChhKTt2YXIgYj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K2EpO3JldHVybiB0aGlzLmluZGV4Kz1hLGJ9LGIuZXhwb3J0cz1jfSx7Ii4vZGF0YVJlYWRlciI6NSwiLi91dGlscyI6MjF9XSwxNjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi91dGlscyIpLGQ9ZnVuY3Rpb24oKXt0aGlzLmRhdGE9W119O2QucHJvdG90eXBlPXthcHBlbmQ6ZnVuY3Rpb24oYSl7YT1jLnRyYW5zZm9ybVRvKCJzdHJpbmciLGEpLHRoaXMuZGF0YS5wdXNoKGEpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGEuam9pbigiIil9fSxiLmV4cG9ydHM9ZH0seyIuL3V0aWxzIjoyMX1dLDE3OltmdW5jdGlvbihhLGIsYyl7KGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtpZihjLmJhc2U2ND0hMCxjLmFycmF5PSEwLGMuc3RyaW5nPSEwLGMuYXJyYXlidWZmZXI9InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5LGMubm9kZWJ1ZmZlcj0idW5kZWZpbmVkIiE9dHlwZW9mIGEsYy51aW50OGFycmF5PSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSwidW5kZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyKWMuYmxvYj0hMTtlbHNle3ZhciBiPW5ldyBBcnJheUJ1ZmZlcigwKTt0cnl7Yy5ibG9iPTA9PT1uZXcgQmxvYihbYl0se3R5cGU6ImFwcGxpY2F0aW9uL3ppcCJ9KS5zaXplfWNhdGNoKGQpe3RyeXt2YXIgZT13aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcixmPW5ldyBlO2YuYXBwZW5kKGIpLGMuYmxvYj0wPT09Zi5nZXRCbG9iKCJhcHBsaWNhdGlvbi96aXAiKS5zaXplfWNhdGNoKGQpe2MuYmxvYj0hMX19fX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIEJ1ZmZlcj9CdWZmZXI6dm9pZCAwKX0se31dLDE4OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKGEpe2EmJih0aGlzLmRhdGE9YSx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuaW5kZXg9MCl9dmFyIGQ9YSgiLi9kYXRhUmVhZGVyIik7Yy5wcm90b3R5cGU9bmV3IGQsYy5wcm90b3R5cGUuYnl0ZUF0PWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmRhdGFbYV19LGMucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKGEpe2Zvcih2YXIgYj1hLmNoYXJDb2RlQXQoMCksYz1hLmNoYXJDb2RlQXQoMSksZD1hLmNoYXJDb2RlQXQoMiksZT1hLmNoYXJDb2RlQXQoMyksZj10aGlzLmxlbmd0aC00O2Y+PTA7LS1mKWlmKHRoaXMuZGF0YVtmXT09PWImJnRoaXMuZGF0YVtmKzFdPT09YyYmdGhpcy5kYXRhW2YrMl09PT1kJiZ0aGlzLmRhdGFbZiszXT09PWUpcmV0dXJuIGY7cmV0dXJuLTF9LGMucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKGEpe2lmKHRoaXMuY2hlY2tPZmZzZXQoYSksMD09PWEpcmV0dXJuIG5ldyBVaW50OEFycmF5KDApO3ZhciBiPXRoaXMuZGF0YS5zdWJhcnJheSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrYSk7cmV0dXJuIHRoaXMuaW5kZXgrPWEsYn0sYi5leHBvcnRzPWN9LHsiLi9kYXRhUmVhZGVyIjo1fV0sMTk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO3ZhciBjPWEoIi4vdXRpbHMiKSxkPWZ1bmN0aW9uKGEpe3RoaXMuZGF0YT1uZXcgVWludDhBcnJheShhKSx0aGlzLmluZGV4PTB9O2QucHJvdG90eXBlPXthcHBlbmQ6ZnVuY3Rpb24oYSl7MCE9PWEubGVuZ3RoJiYoYT1jLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKSx0aGlzLmRhdGEuc2V0KGEsdGhpcy5pbmRleCksdGhpcy5pbmRleCs9YS5sZW5ndGgpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGF9fSxiLmV4cG9ydHM9ZH0seyIuL3V0aWxzIjoyMX1dLDIwOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Zvcih2YXIgZD1hKCIuL3V0aWxzIiksZT1hKCIuL3N1cHBvcnQiKSxmPWEoIi4vbm9kZUJ1ZmZlciIpLGc9bmV3IEFycmF5KDI1NiksaD0wOzI1Nj5oO2grKylnW2hdPWg+PTI1Mj82Omg+PTI0OD81Omg+PTI0MD80Omg+PTIyND8zOmg+PTE5Mj8yOjE7Z1syNTRdPWdbMjU0XT0xO3ZhciBpPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxmLGcsaD1hLmxlbmd0aCxpPTA7Zm9yKGY9MDtoPmY7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLGkrPTEyOD5jPzE6MjA0OD5jPzI6NjU1MzY+Yz8zOjQ7Zm9yKGI9ZS51aW50OGFycmF5P25ldyBVaW50OEFycmF5KGkpOm5ldyBBcnJheShpKSxnPTAsZj0wO2k+ZztmKyspYz1hLmNoYXJDb2RlQXQoZiksNTUyOTY9PT0oNjQ1MTImYykmJmg+ZisxJiYoZD1hLmNoYXJDb2RlQXQoZisxKSw1NjMyMD09PSg2NDUxMiZkKSYmKGM9NjU1MzYrKGMtNTUyOTY8PDEwKSsoZC01NjMyMCksZisrKSksMTI4PmM/YltnKytdPWM6MjA0OD5jPyhiW2crK109MTkyfGM+Pj42LGJbZysrXT0xMjh8NjMmYyk6NjU1MzY+Yz8oYltnKytdPTIyNHxjPj4+MTIsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpOihiW2crK109MjQwfGM+Pj4xOCxiW2crK109MTI4fGM+Pj4xMiY2MyxiW2crK109MTI4fGM+Pj42JjYzLGJbZysrXT0xMjh8NjMmYyk7cmV0dXJuIGJ9LGo9ZnVuY3Rpb24oYSxiKXt2YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYoYj1hLmxlbmd0aCksYz1iLTE7Yz49MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiAwPmM/YjowPT09Yz9iOmMrZ1thW2NdXT5iP2M6Yn0saz1mdW5jdGlvbihhKXt2YXIgYixjLGUsZixoPWEubGVuZ3RoLGk9bmV3IEFycmF5KDIqaCk7Zm9yKGM9MCxiPTA7aD5iOylpZihlPWFbYisrXSwxMjg+ZSlpW2MrK109ZTtlbHNlIGlmKGY9Z1tlXSxmPjQpaVtjKytdPTY1NTMzLGIrPWYtMTtlbHNle2ZvcihlJj0yPT09Zj8zMTozPT09Zj8xNTo3O2Y+MSYmaD5iOyllPWU8PDZ8NjMmYVtiKytdLGYtLTtmPjE/aVtjKytdPTY1NTMzOjY1NTM2PmU/aVtjKytdPWU6KGUtPTY1NTM2LGlbYysrXT01NTI5NnxlPj4xMCYxMDIzLGlbYysrXT01NjMyMHwxMDIzJmUpfXJldHVybiBpLmxlbmd0aCE9PWMmJihpLnN1YmFycmF5P2k9aS5zdWJhcnJheSgwLGMpOmkubGVuZ3RoPWMpLGQuYXBwbHlGcm9tQ2hhckNvZGUoaSl9O2MudXRmOGVuY29kZT1mdW5jdGlvbihhKXtyZXR1cm4gZS5ub2RlYnVmZmVyP2YoYSwidXRmLTgiKTppKGEpfSxjLnV0ZjhkZWNvZGU9ZnVuY3Rpb24oYSl7aWYoZS5ub2RlYnVmZmVyKXJldHVybiBkLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixhKS50b1N0cmluZygidXRmLTgiKTthPWQudHJhbnNmb3JtVG8oZS51aW50OGFycmF5PyJ1aW50OGFycmF5IjoiYXJyYXkiLGEpO2Zvcih2YXIgYj1bXSxjPTAsZj1hLmxlbmd0aCxnPTY1NTM2O2Y+Yzspe3ZhciBoPWooYSxNYXRoLm1pbihjK2csZikpO2IucHVzaChlLnVpbnQ4YXJyYXk/ayhhLnN1YmFycmF5KGMsaCkpOmsoYS5zbGljZShjLGgpKSksYz1ofXJldHVybiBiLmpvaW4oIiIpfX0seyIuL25vZGVCdWZmZXIiOjExLCIuL3N1cHBvcnQiOjE3LCIuL3V0aWxzIjoyMX1dLDIxOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gZShhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7KytjKWJbY109MjU1JmEuY2hhckNvZGVBdChjKTtyZXR1cm4gYn1mdW5jdGlvbiBmKGEpe3ZhciBiPTY1NTM2LGQ9W10sZT1hLmxlbmd0aCxmPWMuZ2V0VHlwZU9mKGEpLGc9MCxoPSEwO3RyeXtzd2l0Y2goZil7Y2FzZSJ1aW50OGFycmF5IjpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMCkpO2JyZWFrO2Nhc2Uibm9kZWJ1ZmZlciI6U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGooMCkpfX1jYXRjaChpKXtoPSExfWlmKCFoKXtmb3IodmFyIGs9IiIsbD0wO2w8YS5sZW5ndGg7bCsrKWsrPVN0cmluZy5mcm9tQ2hhckNvZGUoYVtsXSk7cmV0dXJuIGt9Zm9yKDtlPmcmJmI+MTspdHJ5e2QucHVzaCgiYXJyYXkiPT09Znx8Im5vZGVidWZmZXIiPT09Zj9TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsYS5zbGljZShnLE1hdGgubWluKGcrYixlKSkpOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhLnN1YmFycmF5KGcsTWF0aC5taW4oZytiLGUpKSkpLGcrPWJ9Y2F0Y2goaSl7Yj1NYXRoLmZsb29yKGIvMil9cmV0dXJuIGQuam9pbigiIil9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKWJbY109YVtjXTtyZXR1cm4gYn12YXIgaD1hKCIuL3N1cHBvcnQiKSxpPWEoIi4vY29tcHJlc3Npb25zIiksaj1hKCIuL25vZGVCdWZmZXIiKTtjLnN0cmluZzJiaW5hcnk9ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGM9MDtjPGEubGVuZ3RoO2MrKyliKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZhLmNoYXJDb2RlQXQoYykpO3JldHVybiBifSxjLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oYSxiKXtjLmNoZWNrU3VwcG9ydCgiYmxvYiIpLGI9Ynx8ImFwcGxpY2F0aW9uL3ppcCI7dHJ5e3JldHVybiBuZXcgQmxvYihbYV0se3R5cGU6Yn0pfWNhdGNoKGQpe3RyeXt2YXIgZT13aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcixmPW5ldyBlO3JldHVybiBmLmFwcGVuZChhKSxmLmdldEJsb2IoYil9Y2F0Y2goZCl7dGhyb3cgbmV3IEVycm9yKCJCdWcgOiBjYW4ndCBjb25zdHJ1Y3QgdGhlIEJsb2IuIil9fX0sYy5hcHBseUZyb21DaGFyQ29kZT1mO3ZhciBrPXt9O2suc3RyaW5nPXtzdHJpbmc6ZCxhcnJheTpmdW5jdGlvbihhKXtyZXR1cm4gZShhLG5ldyBBcnJheShhLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gay5zdHJpbmcudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGUoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEsaihhLmxlbmd0aCkpfX0say5hcnJheT17c3RyaW5nOmYsYXJyYXk6ZCxhcnJheWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoYSkuYnVmZmVyfSx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihhKX19LGsuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gZihuZXcgVWludDhBcnJheShhKSl9LGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKG5ldyBVaW50OEFycmF5KGEpLG5ldyBBcnJheShhLmJ5dGVMZW5ndGgpKX0sYXJyYXlidWZmZXI6ZCx1aW50OGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgVWludDhBcnJheShhKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihhKXtyZXR1cm4gaihuZXcgVWludDhBcnJheShhKSl9fSxrLnVpbnQ4YXJyYXk9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBhLmJ1ZmZlcn0sdWludDhhcnJheTpkLG5vZGVidWZmZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGooYSl9fSxrLm5vZGVidWZmZXI9e3N0cmluZzpmLGFycmF5OmZ1bmN0aW9uKGEpe3JldHVybiBnKGEsbmV3IEFycmF5KGEubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKGEpe3JldHVybiBrLm5vZGVidWZmZXIudWludDhhcnJheShhKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVuY3Rpb24oYSl7cmV0dXJuIGcoYSxuZXcgVWludDhBcnJheShhLmxlbmd0aCkpfSxub2RlYnVmZmVyOmR9LGMudHJhbnNmb3JtVG89ZnVuY3Rpb24oYSxiKXtpZihifHwoYj0iIiksIWEpcmV0dXJuIGI7Yy5jaGVja1N1cHBvcnQoYSk7dmFyIGQ9Yy5nZXRUeXBlT2YoYiksZT1rW2RdW2FdKGIpO3JldHVybiBlfSxjLmdldFR5cGVPZj1mdW5jdGlvbihhKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGE/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKT8iYXJyYXkiOmgubm9kZWJ1ZmZlciYmai50ZXN0KGEpPyJub2RlYnVmZmVyIjpoLnVpbnQ4YXJyYXkmJmEgaW5zdGFuY2VvZiBVaW50OEFycmF5PyJ1aW50OGFycmF5IjpoLmFycmF5YnVmZmVyJiZhIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/ImFycmF5YnVmZmVyIjp2b2lkIDB9LGMuY2hlY2tTdXBwb3J0PWZ1bmN0aW9uKGEpe3ZhciBiPWhbYS50b0xvd2VyQ2FzZSgpXTtpZighYil0aHJvdyBuZXcgRXJyb3IoYSsiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyIil9LGMuTUFYX1ZBTFVFXzE2QklUUz02NTUzNSxjLk1BWF9WQUxVRV8zMkJJVFM9LTEsYy5wcmV0dHk9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPSIiO2ZvcihjPTA7YzwoYXx8IiIpLmxlbmd0aDtjKyspYj1hLmNoYXJDb2RlQXQoYyksZCs9IlxceCIrKDE2PmI/IjAiOiIiKStiLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpO3JldHVybiBkfSxjLmZpbmRDb21wcmVzc2lvbj1mdW5jdGlvbihhKXtmb3IodmFyIGIgaW4gaSlpZihpLmhhc093blByb3BlcnR5KGIpJiZpW2JdLm1hZ2ljPT09YSlyZXR1cm4gaVtiXTtyZXR1cm4gbnVsbH0sYy5pc1JlZ0V4cD1mdW5jdGlvbihhKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX19LHsiLi9jb21wcmVzc2lvbnMiOjMsIi4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTd9XSwyMjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMuZmlsZXM9W10sdGhpcy5sb2FkT3B0aW9ucz1iLGEmJnRoaXMubG9hZChhKX12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi9ub2RlQnVmZmVyUmVhZGVyIiksZj1hKCIuL3VpbnQ4QXJyYXlSZWFkZXIiKSxnPWEoIi4vdXRpbHMiKSxoPWEoIi4vc2lnbmF0dXJlIiksaT1hKCIuL3ppcEVudHJ5Iiksaj1hKCIuL3N1cHBvcnQiKSxrPWEoIi4vb2JqZWN0Iik7Yy5wcm90b3R5cGU9e2NoZWNrU2lnbmF0dXJlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk7aWYoYiE9PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZyA6IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK2cucHJldHR5KGIpKyIsIGV4cGVjdGVkICIrZy5wcmV0dHkoYSkrIikiKX0scmVhZEJsb2NrRW5kT2ZDZW50cmFsOmZ1bmN0aW9uKCl7dGhpcy5kaXNrTnVtYmVyPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclJlY29yZHNPblRoaXNEaXNrPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyUmVjb3Jkcz10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuY2VudHJhbERpclNpemU9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJPZmZzZXQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLnppcENvbW1lbnRMZW5ndGg9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLnppcENvbW1lbnQ9dGhpcy5yZWFkZXIucmVhZFN0cmluZyh0aGlzLnppcENvbW1lbnRMZW5ndGgpLHRoaXMuemlwQ29tbWVudD1rLnV0ZjhkZWNvZGUodGhpcy56aXBDb21tZW50KX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMudmVyc2lvbk1hZGVCeT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuY2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIgYSxiLGMsZD10aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZS00NCxlPTA7ZD5lOylhPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksYj10aGlzLnJlYWRlci5yZWFkSW50KDQpLGM9dGhpcy5yZWFkZXIucmVhZFN0cmluZyhiKSx0aGlzLnppcDY0RXh0ZW5zaWJsZURhdGFbYV09e2lkOmEsbGVuZ3RoOmIsdmFsdWU6Y319LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpcj10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza3NDb3VudD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktdm9sdW1lcyB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKX0scmVhZExvY2FsRmlsZXM6ZnVuY3Rpb24oKXt2YXIgYSxiO2ZvcihhPTA7YTx0aGlzLmZpbGVzLmxlbmd0aDthKyspYj10aGlzLmZpbGVzW2FdLHRoaXMucmVhZGVyLnNldEluZGV4KGIubG9jYWxIZWFkZXJPZmZzZXQpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5MT0NBTF9GSUxFX0hFQURFUiksYi5yZWFkTG9jYWxQYXJ0KHRoaXMucmVhZGVyKSxiLmhhbmRsZVVURjgoKSxiLnByb2Nlc3NBdHRyaWJ1dGVzKCl9LHJlYWRDZW50cmFsRGlyOmZ1bmN0aW9uKCl7dmFyIGE7Zm9yKHRoaXMucmVhZGVyLnNldEluZGV4KHRoaXMuY2VudHJhbERpck9mZnNldCk7dGhpcy5yZWFkZXIucmVhZFN0cmluZyg0KT09PWguQ0VOVFJBTF9GSUxFX0hFQURFUjspYT1uZXcgaSh7emlwNjQ6dGhpcy56aXA2NH0sdGhpcy5sb2FkT3B0aW9ucyksYS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChhKX0scmVhZEVuZE9mQ2VudHJhbDpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVhZGVyLmxhc3RJbmRleE9mU2lnbmF0dXJlKGguQ0VOVFJBTF9ESVJFQ1RPUllfRU5EKTtpZigtMT09PWEpe3ZhciBiPSEwO3RyeXt0aGlzLnJlYWRlci5zZXRJbmRleCgwKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGguTE9DQUxfRklMRV9IRUFERVIpLGI9ITF9Y2F0Y2goYyl7fXRocm93IG5ldyBFcnJvcihiPyJDYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSA6IGlzIHRoaXMgYSB6aXAgZmlsZSA/IElmIGl0IGlzLCBzZWUgaHR0cDovL3N0dWsuZ2l0aHViLmlvL2pzemlwL2RvY3VtZW50YXRpb24vaG93dG8vcmVhZF96aXAuaHRtbCI6IkNvcnJ1cHRlZCB6aXAgOiBjYW4ndCBmaW5kIGVuZCBvZiBjZW50cmFsIGRpcmVjdG9yeSIpfWlmKHRoaXMucmVhZGVyLnNldEluZGV4KGEpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrRW5kT2ZDZW50cmFsKCksdGhpcy5kaXNrTnVtYmVyPT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PT09Zy5NQVhfVkFMVUVfMTZCSVRTfHx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkcz09PWcuTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyU2l6ZT09PWcuTUFYX1ZBTFVFXzMyQklUU3x8dGhpcy5jZW50cmFsRGlyT2Zmc2V0PT09Zy5NQVhfVkFMVUVfMzJCSVRTKXtpZih0aGlzLnppcDY0PSEwLGE9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSwtMT09PWEpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxvY2F0b3IiKTt0aGlzLnJlYWRlci5zZXRJbmRleChhKSx0aGlzLmNoZWNrU2lnbmF0dXJlKGguWklQNjRfQ0VOVFJBTF9ESVJFQ1RPUllfTE9DQVRPUiksdGhpcy5yZWFkQmxvY2taaXA2NEVuZE9mQ2VudHJhbExvY2F0b3IoKSx0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLnJlbGF0aXZlT2Zmc2V0RW5kT2ZaaXA2NENlbnRyYWxEaXIpLHRoaXMuY2hlY2tTaWduYXR1cmUoaC5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX19LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oYSl7dmFyIGI9Zy5nZXRUeXBlT2YoYSk7dGhpcy5yZWFkZXI9InN0cmluZyIhPT1ifHxqLnVpbnQ4YXJyYXk/Im5vZGVidWZmZXIiPT09Yj9uZXcgZShhKTpuZXcgZihnLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixhKSk6bmV3IGQoYSx0aGlzLmxvYWRPcHRpb25zLm9wdGltaXplZEJpbmFyeVN0cmluZyl9LGxvYWQ6ZnVuY3Rpb24oYSl7dGhpcy5wcmVwYXJlUmVhZGVyKGEpLHRoaXMucmVhZEVuZE9mQ2VudHJhbCgpLHRoaXMucmVhZENlbnRyYWxEaXIoKSx0aGlzLnJlYWRMb2NhbEZpbGVzKCl9fSxiLmV4cG9ydHM9Y30seyIuL25vZGVCdWZmZXJSZWFkZXIiOjEyLCIuL29iamVjdCI6MTMsIi4vc2lnbmF0dXJlIjoxNCwiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4LCIuL3V0aWxzIjoyMSwiLi96aXBFbnRyeSI6MjN9XSwyMzpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYyhhLGIpe3RoaXMub3B0aW9ucz1hLHRoaXMubG9hZE9wdGlvbnM9Yn12YXIgZD1hKCIuL3N0cmluZ1JlYWRlciIpLGU9YSgiLi91dGlscyIpLGY9YSgiLi9jb21wcmVzc2VkT2JqZWN0IiksZz1hKCIuL29iamVjdCIpLGg9MCxpPTM7Yy5wcm90b3R5cGU9e2lzRW5jcnlwdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIDE9PT0oMSZ0aGlzLmJpdEZsYWcpfSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0dXJuIDIwNDg9PT0oMjA0OCZ0aGlzLmJpdEZsYWcpfSxwcmVwYXJlQ29tcHJlc3NlZENvbnRlbnQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBkPWEuaW5kZXg7YS5zZXRJbmRleChiKTt2YXIgZT1hLnJlYWREYXRhKGMpO3JldHVybiBhLnNldEluZGV4KGQpLGV9fSxwcmVwYXJlQ29udGVudDpmdW5jdGlvbihhLGIsYyxkLGYpe3JldHVybiBmdW5jdGlvbigpe3ZhciBhPWUudHJhbnNmb3JtVG8oZC51bmNvbXByZXNzSW5wdXRUeXBlLHRoaXMuZ2V0Q29tcHJlc3NlZENvbnRlbnQoKSksYj1kLnVuY29tcHJlc3MoYSk7aWYoYi5sZW5ndGghPT1mKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiBifX0scmVhZExvY2FsUGFydDpmdW5jdGlvbihhKXt2YXIgYixjO2lmKGEuc2tpcCgyMiksdGhpcy5maWxlTmFtZUxlbmd0aD1hLnJlYWRJbnQoMiksYz1hLnJlYWRJbnQoMiksdGhpcy5maWxlTmFtZT1hLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksYS5za2lwKGMpLC0xPT10aGlzLmNvbXByZXNzZWRTaXplfHwtMT09dGhpcy51bmNvbXByZXNzZWRTaXplKXRocm93IG5ldyBFcnJvcigiQnVnIG9yIGNvcnJ1cHRlZCB6aXAgOiBkaWRuJ3QgZ2V0IGVub3VnaCBpbmZvcm1hdGlvbnMgZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnkgKGNvbXByZXNzZWRTaXplID09IC0xIHx8IHVuY29tcHJlc3NlZFNpemUgPT0gLTEpIik7aWYoYj1lLmZpbmRDb21wcmVzc2lvbih0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSxudWxsPT09Yil0aHJvdyBuZXcgRXJyb3IoIkNvcnJ1cHRlZCB6aXAgOiBjb21wcmVzc2lvbiAiK2UucHJldHR5KHRoaXMuY29tcHJlc3Npb25NZXRob2QpKyIgdW5rbm93biAoaW5uZXIgZmlsZSA6ICIrdGhpcy5maWxlTmFtZSsiKSIpO2lmKHRoaXMuZGVjb21wcmVzc2VkPW5ldyBmLHRoaXMuZGVjb21wcmVzc2VkLmNvbXByZXNzZWRTaXplPXRoaXMuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQudW5jb21wcmVzc2VkU2l6ZT10aGlzLnVuY29tcHJlc3NlZFNpemUsdGhpcy5kZWNvbXByZXNzZWQuY3JjMzI9dGhpcy5jcmMzMix0aGlzLmRlY29tcHJlc3NlZC5jb21wcmVzc2lvbk1ldGhvZD10aGlzLmNvbXByZXNzaW9uTWV0aG9kLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbXByZXNzZWRDb250ZW50PXRoaXMucHJlcGFyZUNvbXByZXNzZWRDb250ZW50KGEsYS5pbmRleCx0aGlzLmNvbXByZXNzZWRTaXplLGIpLHRoaXMuZGVjb21wcmVzc2VkLmdldENvbnRlbnQ9dGhpcy5wcmVwYXJlQ29udGVudChhLGEuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxiLHRoaXMudW5jb21wcmVzc2VkU2l6ZSksdGhpcy5sb2FkT3B0aW9ucy5jaGVja0NSQzMyJiYodGhpcy5kZWNvbXByZXNzZWQ9ZS50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLmRlY29tcHJlc3NlZC5nZXRDb250ZW50KCkpLGcuY3JjMzIodGhpcy5kZWNvbXByZXNzZWQpIT09dGhpcy5jcmMzMikpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogQ1JDMzIgbWlzbWF0Y2giKX0scmVhZENlbnRyYWxQYXJ0OmZ1bmN0aW9uKGEpe2lmKHRoaXMudmVyc2lvbk1hZGVCeT1hLnJlYWRJbnQoMiksdGhpcy52ZXJzaW9uTmVlZGVkPWEucmVhZEludCgyKSx0aGlzLmJpdEZsYWc9YS5yZWFkSW50KDIpLHRoaXMuY29tcHJlc3Npb25NZXRob2Q9YS5yZWFkU3RyaW5nKDIpLHRoaXMuZGF0ZT1hLnJlYWREYXRlKCksdGhpcy5jcmMzMj1hLnJlYWRJbnQoNCksdGhpcy5jb21wcmVzc2VkU2l6ZT1hLnJlYWRJbnQoNCksdGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg0KSx0aGlzLmZpbGVOYW1lTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmV4dHJhRmllbGRzTGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmZpbGVDb21tZW50TGVuZ3RoPWEucmVhZEludCgyKSx0aGlzLmRpc2tOdW1iZXJTdGFydD1hLnJlYWRJbnQoMiksdGhpcy5pbnRlcm5hbEZpbGVBdHRyaWJ1dGVzPWEucmVhZEludCgyKSx0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM9YS5yZWFkSW50KDQpLHRoaXMubG9jYWxIZWFkZXJPZmZzZXQ9YS5yZWFkSW50KDQpLHRoaXMuaXNFbmNyeXB0ZWQoKSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRlZCB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKTt0aGlzLmZpbGVOYW1lPWEucmVhZFN0cmluZyh0aGlzLmZpbGVOYW1lTGVuZ3RoKSx0aGlzLnJlYWRFeHRyYUZpZWxkcyhhKSx0aGlzLnBhcnNlWklQNjRFeHRyYUZpZWxkKGEpLHRoaXMuZmlsZUNvbW1lbnQ9YS5yZWFkU3RyaW5nKHRoaXMuZmlsZUNvbW1lbnRMZW5ndGgpfSxwcm9jZXNzQXR0cmlidXRlczpmdW5jdGlvbigpe3RoaXMudW5peFBlcm1pc3Npb25zPW51bGwsdGhpcy5kb3NQZXJtaXNzaW9ucz1udWxsO3ZhciBhPXRoaXMudmVyc2lvbk1hZGVCeT4+ODt0aGlzLmRpcj0xNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM/ITA6ITEsYT09PWgmJih0aGlzLmRvc1Blcm1pc3Npb25zPTYzJnRoaXMuZXh0ZXJuYWxGaWxlQXR0cmlidXRlcyksYT09PWkmJih0aGlzLnVuaXhQZXJtaXNzaW9ucz10aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXM+PjE2JjY1NTM1KSx0aGlzLmRpcnx8Ii8iIT09dGhpcy5maWxlTmFtZS5zbGljZSgtMSl8fCh0aGlzLmRpcj0hMCl9LHBhcnNlWklQNjRFeHRyYUZpZWxkOmZ1bmN0aW9uKCl7aWYodGhpcy5leHRyYUZpZWxkc1sxXSl7dmFyIGE9bmV3IGQodGhpcy5leHRyYUZpZWxkc1sxXS52YWx1ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPWEucmVhZEludCg4KSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PWUuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3NlZFNpemU9YS5yZWFkSW50KDgpKSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD1hLnJlYWRJbnQoOCkpLHRoaXMuZGlza051bWJlclN0YXJ0PT09ZS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3RhcnQ9YS5yZWFkSW50KDQpKX19LHJlYWRFeHRyYUZpZWxkczpmdW5jdGlvbihhKXt2YXIgYixjLGQsZT1hLmluZGV4O2Zvcih0aGlzLmV4dHJhRmllbGRzPXRoaXMuZXh0cmFGaWVsZHN8fHt9O2EuaW5kZXg8ZSt0aGlzLmV4dHJhRmllbGRzTGVuZ3RoOyliPWEucmVhZEludCgyKSxjPWEucmVhZEludCgyKSxkPWEucmVhZFN0cmluZyhjKSx0aGlzLmV4dHJhRmllbGRzW2JdPXtpZDpiLGxlbmd0aDpjLHZhbHVlOmR9fSxoYW5kbGVVVEY4OmZ1bmN0aW9uKCl7aWYodGhpcy51c2VVVEY4KCkpdGhpcy5maWxlTmFtZT1nLnV0ZjhkZWNvZGUodGhpcy5maWxlTmFtZSksdGhpcy5maWxlQ29tbWVudD1nLnV0ZjhkZWNvZGUodGhpcy5maWxlQ29tbWVudCk7ZWxzZXt2YXIgYT10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZVBhdGgoKTtudWxsIT09YSYmKHRoaXMuZmlsZU5hbWU9YSk7dmFyIGI9dGhpcy5maW5kRXh0cmFGaWVsZFVuaWNvZGVDb21tZW50KCk7bnVsbCE9PWImJih0aGlzLmZpbGVDb21tZW50PWIpfX0sZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjg3ODldO2lmKGEpe3ZhciBiPW5ldyBkKGEudmFsdWUpO3JldHVybiAxIT09Yi5yZWFkSW50KDEpP251bGw6Zy5jcmMzMih0aGlzLmZpbGVOYW1lKSE9PWIucmVhZEludCg0KT9udWxsOmcudXRmOGRlY29kZShiLnJlYWRTdHJpbmcoYS5sZW5ndGgtNSkpCn1yZXR1cm4gbnVsbH0sZmluZEV4dHJhRmllbGRVbmljb2RlQ29tbWVudDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuZXh0cmFGaWVsZHNbMjU0NjFdO2lmKGEpe3ZhciBiPW5ldyBkKGEudmFsdWUpO3JldHVybiAxIT09Yi5yZWFkSW50KDEpP251bGw6Zy5jcmMzMih0aGlzLmZpbGVDb21tZW50KSE9PWIucmVhZEludCg0KT9udWxsOmcudXRmOGRlY29kZShiLnJlYWRTdHJpbmcoYS5sZW5ndGgtNSkpfXJldHVybiBudWxsfX0sYi5leHBvcnRzPWN9LHsiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL29iamVjdCI6MTMsIi4vc3RyaW5nUmVhZGVyIjoxNSwiLi91dGlscyI6MjF9XSwyNDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi9saWIvdXRpbHMvY29tbW9uIikuYXNzaWduLGQ9YSgiLi9saWIvZGVmbGF0ZSIpLGU9YSgiLi9saWIvaW5mbGF0ZSIpLGY9YSgiLi9saWIvemxpYi9jb25zdGFudHMiKSxnPXt9O2MoZyxkLGUsZiksYi5leHBvcnRzPWd9LHsiLi9saWIvZGVmbGF0ZSI6MjUsIi4vbGliL2luZmxhdGUiOjI2LCIuL2xpYi91dGlscy9jb21tb24iOjI3LCIuL2xpYi96bGliL2NvbnN0YW50cyI6MzB9XSwyNTpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBkKGEsYil7dmFyIGM9bmV3IHMoYik7aWYoYy5wdXNoKGEsITApLGMuZXJyKXRocm93IGMubXNnO3JldHVybiBjLnJlc3VsdH1mdW5jdGlvbiBlKGEsYil7cmV0dXJuIGI9Ynx8e30sYi5yYXc9ITAsZChhLGIpfWZ1bmN0aW9uIGYoYSxiKXtyZXR1cm4gYj1ifHx7fSxiLmd6aXA9ITAsZChhLGIpfXZhciBnPWEoIi4vemxpYi9kZWZsYXRlLmpzIiksaD1hKCIuL3V0aWxzL2NvbW1vbiIpLGk9YSgiLi91dGlscy9zdHJpbmdzIiksaj1hKCIuL3psaWIvbWVzc2FnZXMiKSxrPWEoIi4vemxpYi96c3RyZWFtIiksbD0wLG09NCxuPTAsbz0xLHA9LTEscT0wLHI9OCxzPWZ1bmN0aW9uKGEpe3RoaXMub3B0aW9ucz1oLmFzc2lnbih7bGV2ZWw6cCxtZXRob2Q6cixjaHVua1NpemU6MTYzODQsd2luZG93Qml0czoxNSxtZW1MZXZlbDo4LHN0cmF0ZWd5OnEsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5yYXcmJmIud2luZG93Qml0cz4wP2Iud2luZG93Qml0cz0tYi53aW5kb3dCaXRzOmIuZ3ppcCYmYi53aW5kb3dCaXRzPjAmJmIud2luZG93Qml0czwxNiYmKGIud2luZG93Qml0cys9MTYpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGssdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBjPWcuZGVmbGF0ZUluaXQyKHRoaXMuc3RybSxiLmxldmVsLGIubWV0aG9kLGIud2luZG93Qml0cyxiLm1lbUxldmVsLGIuc3RyYXRlZ3kpO2lmKGMhPT1uKXRocm93IG5ldyBFcnJvcihqW2NdKTtiLmhlYWRlciYmZy5kZWZsYXRlU2V0SGVhZGVyKHRoaXMuc3RybSxiLmhlYWRlcil9O3MucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkLGU9dGhpcy5zdHJtLGY9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO2Q9Yj09PX5+Yj9iOmI9PT0hMD9tOmwsZS5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIGE/aS5zdHJpbmcyYnVmKGEpOmEsZS5uZXh0X2luPTAsZS5hdmFpbF9pbj1lLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09ZS5hdmFpbF9vdXQmJihlLm91dHB1dD1uZXcgaC5CdWY4KGYpLGUubmV4dF9vdXQ9MCxlLmF2YWlsX291dD1mKSxjPWcuZGVmbGF0ZShlLGQpLGMhPT1vJiZjIT09bilyZXR1cm4gdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLCExOygwPT09ZS5hdmFpbF9vdXR8fDA9PT1lLmF2YWlsX2luJiZkPT09bSkmJnRoaXMub25EYXRhKCJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP2kuYnVmMmJpbnN0cmluZyhoLnNocmlua0J1ZihlLm91dHB1dCxlLm5leHRfb3V0KSk6aC5zaHJpbmtCdWYoZS5vdXRwdXQsZS5uZXh0X291dCkpfXdoaWxlKChlLmF2YWlsX2luPjB8fDA9PT1lLmF2YWlsX291dCkmJmMhPT1vKTtyZXR1cm4gZD09PW0/KGM9Zy5kZWZsYXRlRW5kKHRoaXMuc3RybSksdGhpcy5vbkVuZChjKSx0aGlzLmVuZGVkPSEwLGM9PT1uKTohMH0scy5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2h1bmtzLnB1c2goYSl9LHMucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGEpe2E9PT1uJiYodGhpcy5yZXN1bHQ9InN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/dGhpcy5jaHVua3Muam9pbigiIik6aC5mbGF0dGVuQ2h1bmtzKHRoaXMuY2h1bmtzKSksdGhpcy5jaHVua3M9W10sdGhpcy5lcnI9YSx0aGlzLm1zZz10aGlzLnN0cm0ubXNnfSxjLkRlZmxhdGU9cyxjLmRlZmxhdGU9ZCxjLmRlZmxhdGVSYXc9ZSxjLmd6aXA9Zn0seyIuL3V0aWxzL2NvbW1vbiI6MjcsIi4vdXRpbHMvc3RyaW5ncyI6MjgsIi4vemxpYi9kZWZsYXRlLmpzIjozMiwiLi96bGliL21lc3NhZ2VzIjozNywiLi96bGliL3pzdHJlYW0iOjM5fV0sMjY6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe3ZhciBjPW5ldyBtKGIpO2lmKGMucHVzaChhLCEwKSxjLmVycil0aHJvdyBjLm1zZztyZXR1cm4gYy5yZXN1bHR9ZnVuY3Rpb24gZShhLGIpe3JldHVybiBiPWJ8fHt9LGIucmF3PSEwLGQoYSxiKX12YXIgZj1hKCIuL3psaWIvaW5mbGF0ZS5qcyIpLGc9YSgiLi91dGlscy9jb21tb24iKSxoPWEoIi4vdXRpbHMvc3RyaW5ncyIpLGk9YSgiLi96bGliL2NvbnN0YW50cyIpLGo9YSgiLi96bGliL21lc3NhZ2VzIiksaz1hKCIuL3psaWIvenN0cmVhbSIpLGw9YSgiLi96bGliL2d6aGVhZGVyIiksbT1mdW5jdGlvbihhKXt0aGlzLm9wdGlvbnM9Zy5hc3NpZ24oe2NodW5rU2l6ZToxNjM4NCx3aW5kb3dCaXRzOjAsdG86IiJ9LGF8fHt9KTt2YXIgYj10aGlzLm9wdGlvbnM7Yi5yYXcmJmIud2luZG93Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2JiYoYi53aW5kb3dCaXRzPS1iLndpbmRvd0JpdHMsMD09PWIud2luZG93Qml0cyYmKGIud2luZG93Qml0cz0tMTUpKSwhKGIud2luZG93Qml0cz49MCYmYi53aW5kb3dCaXRzPDE2KXx8YSYmYS53aW5kb3dCaXRzfHwoYi53aW5kb3dCaXRzKz0zMiksYi53aW5kb3dCaXRzPjE1JiZiLndpbmRvd0JpdHM8NDgmJjA9PT0oMTUmYi53aW5kb3dCaXRzKSYmKGIud2luZG93Qml0c3w9MTUpLHRoaXMuZXJyPTAsdGhpcy5tc2c9IiIsdGhpcy5lbmRlZD0hMSx0aGlzLmNodW5rcz1bXSx0aGlzLnN0cm09bmV3IGssdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBjPWYuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSxiLndpbmRvd0JpdHMpO2lmKGMhPT1pLlpfT0spdGhyb3cgbmV3IEVycm9yKGpbY10pO3RoaXMuaGVhZGVyPW5ldyBsLGYuaW5mbGF0ZUdldEhlYWRlcih0aGlzLnN0cm0sdGhpcy5oZWFkZXIpfTttLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGosayxsPXRoaXMuc3RybSxtPXRoaXMub3B0aW9ucy5jaHVua1NpemU7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtkPWI9PT1+fmI/YjpiPT09ITA/aS5aX0ZJTklTSDppLlpfTk9fRkxVU0gsbC5pbnB1dD0ic3RyaW5nIj09dHlwZW9mIGE/aC5iaW5zdHJpbmcyYnVmKGEpOmEsbC5uZXh0X2luPTAsbC5hdmFpbF9pbj1sLmlucHV0Lmxlbmd0aDtkb3tpZigwPT09bC5hdmFpbF9vdXQmJihsLm91dHB1dD1uZXcgZy5CdWY4KG0pLGwubmV4dF9vdXQ9MCxsLmF2YWlsX291dD1tKSxjPWYuaW5mbGF0ZShsLGkuWl9OT19GTFVTSCksYyE9PWkuWl9TVFJFQU1fRU5EJiZjIT09aS5aX09LKXJldHVybiB0aGlzLm9uRW5kKGMpLHRoaXMuZW5kZWQ9ITAsITE7bC5uZXh0X291dCYmKDA9PT1sLmF2YWlsX291dHx8Yz09PWkuWl9TVFJFQU1fRU5EfHwwPT09bC5hdmFpbF9pbiYmZD09PWkuWl9GSU5JU0gpJiYoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/KGU9aC51dGY4Ym9yZGVyKGwub3V0cHV0LGwubmV4dF9vdXQpLGo9bC5uZXh0X291dC1lLGs9aC5idWYyc3RyaW5nKGwub3V0cHV0LGUpLGwubmV4dF9vdXQ9aixsLmF2YWlsX291dD1tLWosaiYmZy5hcnJheVNldChsLm91dHB1dCxsLm91dHB1dCxlLGosMCksdGhpcy5vbkRhdGEoaykpOnRoaXMub25EYXRhKGcuc2hyaW5rQnVmKGwub3V0cHV0LGwubmV4dF9vdXQpKSl9d2hpbGUobC5hdmFpbF9pbj4wJiZjIT09aS5aX1NUUkVBTV9FTkQpO3JldHVybiBjPT09aS5aX1NUUkVBTV9FTkQmJihkPWkuWl9GSU5JU0gpLGQ9PT1pLlpfRklOSVNIPyhjPWYuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoYyksdGhpcy5lbmRlZD0hMCxjPT09aS5aX09LKTohMH0sbS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGEpe3RoaXMuY2h1bmtzLnB1c2goYSl9LG0ucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGEpe2E9PT1pLlpfT0smJih0aGlzLnJlc3VsdD0ic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLmNodW5rcy5qb2luKCIiKTpnLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj1hLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LGMuSW5mbGF0ZT1tLGMuaW5mbGF0ZT1kLGMuaW5mbGF0ZVJhdz1lLGMudW5nemlwPWR9LHsiLi91dGlscy9jb21tb24iOjI3LCIuL3V0aWxzL3N0cmluZ3MiOjI4LCIuL3psaWIvY29uc3RhbnRzIjozMCwiLi96bGliL2d6aGVhZGVyIjozMywiLi96bGliL2luZmxhdGUuanMiOjM1LCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNzpbZnVuY3Rpb24oYSxiLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDE2QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgSW50MzJBcnJheTtjLmFzc2lnbj1mdW5jdGlvbihhKXtmb3IodmFyIGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2IubGVuZ3RoOyl7dmFyIGM9Yi5zaGlmdCgpO2lmKGMpe2lmKCJvYmplY3QiIT10eXBlb2YgYyl0aHJvdyBuZXcgVHlwZUVycm9yKGMrIm11c3QgYmUgbm9uLW9iamVjdCIpO2Zvcih2YXIgZCBpbiBjKWMuaGFzT3duUHJvcGVydHkoZCkmJihhW2RdPWNbZF0pfX1yZXR1cm4gYX0sYy5zaHJpbmtCdWY9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5sZW5ndGg9PT1iP2E6YS5zdWJhcnJheT9hLnN1YmFycmF5KDAsYik6KGEubGVuZ3RoPWIsYSl9O3ZhciBlPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxkLGUpe2lmKGIuc3ViYXJyYXkmJmEuc3ViYXJyYXkpcmV0dXJuIHZvaWQgYS5zZXQoYi5zdWJhcnJheShjLGMrZCksZSk7Zm9yKHZhciBmPTA7ZD5mO2YrKylhW2UrZl09YltjK2ZdfSxmbGF0dGVuQ2h1bmtzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZCxlLGYsZztmb3IoZD0wLGI9MCxjPWEubGVuZ3RoO2M+YjtiKyspZCs9YVtiXS5sZW5ndGg7Zm9yKGc9bmV3IFVpbnQ4QXJyYXkoZCksZT0wLGI9MCxjPWEubGVuZ3RoO2M+YjtiKyspZj1hW2JdLGcuc2V0KGYsZSksZSs9Zi5sZW5ndGg7cmV0dXJuIGd9fSxmPXthcnJheVNldDpmdW5jdGlvbihhLGIsYyxkLGUpe2Zvcih2YXIgZj0wO2Q+ZjtmKyspYVtlK2ZdPWJbYytmXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihhKXtyZXR1cm5bXS5jb25jYXQuYXBwbHkoW10sYSl9fTtjLnNldFR5cGVkPWZ1bmN0aW9uKGEpe2E/KGMuQnVmOD1VaW50OEFycmF5LGMuQnVmMTY9VWludDE2QXJyYXksYy5CdWYzMj1JbnQzMkFycmF5LGMuYXNzaWduKGMsZSkpOihjLkJ1Zjg9QXJyYXksYy5CdWYxNj1BcnJheSxjLkJ1ZjMyPUFycmF5LGMuYXNzaWduKGMsZikpfSxjLnNldFR5cGVkKGQpfSx7fV0sMjg6W2Z1bmN0aW9uKGEsYixjKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZChhLGIpe2lmKDY1NTM3PmImJihhLnN1YmFycmF5JiZnfHwhYS5zdWJhcnJheSYmZikpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxlLnNocmlua0J1ZihhLGIpKTtmb3IodmFyIGM9IiIsZD0wO2I+ZDtkKyspYys9U3RyaW5nLmZyb21DaGFyQ29kZShhW2RdKTtyZXR1cm4gY312YXIgZT1hKCIuL2NvbW1vbiIpLGY9ITAsZz0hMDt0cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLFswXSl9Y2F0Y2goaCl7Zj0hMX10cnl7U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLG5ldyBVaW50OEFycmF5KDEpKX1jYXRjaChoKXtnPSExfWZvcih2YXIgaT1uZXcgZS5CdWY4KDI1Niksaj0wOzI1Nj5qO2orKylpW2pdPWo+PTI1Mj82Omo+PTI0OD81Omo+PTI0MD80Omo+PTIyND8zOmo+PTE5Mj8yOjE7aVsyNTRdPWlbMjU0XT0xLGMuc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXt2YXIgYixjLGQsZixnLGg9YS5sZW5ndGgsaT0wO2ZvcihmPTA7aD5mO2YrKyljPWEuY2hhckNvZGVBdChmKSw1NTI5Nj09PSg2NDUxMiZjKSYmaD5mKzEmJihkPWEuY2hhckNvZGVBdChmKzEpLDU2MzIwPT09KDY0NTEyJmQpJiYoYz02NTUzNisoYy01NTI5Njw8MTApKyhkLTU2MzIwKSxmKyspKSxpKz0xMjg+Yz8xOjIwNDg+Yz8yOjY1NTM2PmM/Mzo0O2ZvcihiPW5ldyBlLkJ1ZjgoaSksZz0wLGY9MDtpPmc7ZisrKWM9YS5jaGFyQ29kZUF0KGYpLDU1Mjk2PT09KDY0NTEyJmMpJiZoPmYrMSYmKGQ9YS5jaGFyQ29kZUF0KGYrMSksNTYzMjA9PT0oNjQ1MTImZCkmJihjPTY1NTM2KyhjLTU1Mjk2PDwxMCkrKGQtNTYzMjApLGYrKykpLDEyOD5jP2JbZysrXT1jOjIwNDg+Yz8oYltnKytdPTE5MnxjPj4+NixiW2crK109MTI4fDYzJmMpOjY1NTM2PmM/KGJbZysrXT0yMjR8Yz4+PjEyLGJbZysrXT0xMjh8Yz4+PjYmNjMsYltnKytdPTEyOHw2MyZjKTooYltnKytdPTI0MHxjPj4+MTgsYltnKytdPTEyOHxjPj4+MTImNjMsYltnKytdPTEyOHxjPj4+NiY2MyxiW2crK109MTI4fDYzJmMpO3JldHVybiBifSxjLmJ1ZjJiaW5zdHJpbmc9ZnVuY3Rpb24oYSl7cmV0dXJuIGQoYSxhLmxlbmd0aCl9LGMuYmluc3RyaW5nMmJ1Zj1mdW5jdGlvbihhKXtmb3IodmFyIGI9bmV3IGUuQnVmOChhLmxlbmd0aCksYz0wLGQ9Yi5sZW5ndGg7ZD5jO2MrKyliW2NdPWEuY2hhckNvZGVBdChjKTtyZXR1cm4gYn0sYy5idWYyc3RyaW5nPWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGcsaD1ifHxhLmxlbmd0aCxqPW5ldyBBcnJheSgyKmgpO2ZvcihlPTAsYz0wO2g+YzspaWYoZj1hW2MrK10sMTI4PmYpaltlKytdPWY7ZWxzZSBpZihnPWlbZl0sZz40KWpbZSsrXT02NTUzMyxjKz1nLTE7ZWxzZXtmb3IoZiY9Mj09PWc/MzE6Mz09PWc/MTU6NztnPjEmJmg+YzspZj1mPDw2fDYzJmFbYysrXSxnLS07Zz4xP2pbZSsrXT02NTUzMzo2NTUzNj5mP2pbZSsrXT1mOihmLT02NTUzNixqW2UrK109NTUyOTZ8Zj4+MTAmMTAyMyxqW2UrK109NTYzMjB8MTAyMyZmKX1yZXR1cm4gZChqLGUpfSxjLnV0Zjhib3JkZXI9ZnVuY3Rpb24oYSxiKXt2YXIgYztmb3IoYj1ifHxhLmxlbmd0aCxiPmEubGVuZ3RoJiYoYj1hLmxlbmd0aCksYz1iLTE7Yz49MCYmMTI4PT09KDE5MiZhW2NdKTspYy0tO3JldHVybiAwPmM/YjowPT09Yz9iOmMraVthW2NdXT5iP2M6Yn19LHsiLi9jb21tb24iOjI3fV0sMjk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoYSxiLGMsZCl7Zm9yKHZhciBlPTY1NTM1JmF8MCxmPWE+Pj4xNiY2NTUzNXwwLGc9MDswIT09Yzspe2c9Yz4yZTM/MmUzOmMsYy09ZztkbyBlPWUrYltkKytdfDAsZj1mK2V8MDt3aGlsZSgtLWcpO2UlPTY1NTIxLGYlPTY1NTIxfXJldHVybiBlfGY8PDE2fDB9Yi5leHBvcnRzPWN9LHt9XSwzMDpbZnVuY3Rpb24oYSxiKXtiLmV4cG9ydHM9e1pfTk9fRkxVU0g6MCxaX1BBUlRJQUxfRkxVU0g6MSxaX1NZTkNfRkxVU0g6MixaX0ZVTExfRkxVU0g6MyxaX0ZJTklTSDo0LFpfQkxPQ0s6NSxaX1RSRUVTOjYsWl9PSzowLFpfU1RSRUFNX0VORDoxLFpfTkVFRF9ESUNUOjIsWl9FUlJOTzotMSxaX1NUUkVBTV9FUlJPUjotMixaX0RBVEFfRVJST1I6LTMsWl9CVUZfRVJST1I6LTUsWl9OT19DT01QUkVTU0lPTjowLFpfQkVTVF9TUEVFRDoxLFpfQkVTVF9DT01QUkVTU0lPTjo5LFpfREVGQVVMVF9DT01QUkVTU0lPTjotMSxaX0ZJTFRFUkVEOjEsWl9IVUZGTUFOX09OTFk6MixaX1JMRTozLFpfRklYRUQ6NCxaX0RFRkFVTFRfU1RSQVRFR1k6MCxaX0JJTkFSWTowLFpfVEVYVDoxLFpfVU5LTk9XTjoyLFpfREVGTEFURUQ6OH19LHt9XSwzMTpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYygpe2Zvcih2YXIgYSxiPVtdLGM9MDsyNTY+YztjKyspe2E9Yztmb3IodmFyIGQ9MDs4PmQ7ZCsrKWE9MSZhPzM5ODgyOTIzODReYT4+PjE6YT4+PjE7YltjXT1hfXJldHVybiBifWZ1bmN0aW9uIGQoYSxiLGMsZCl7dmFyIGY9ZSxnPWQrYzthPS0xXmE7Zm9yKHZhciBoPWQ7Zz5oO2grKylhPWE+Pj44XmZbMjU1JihhXmJbaF0pXTtyZXR1cm4tMV5hfXZhciBlPWMoKTtiLmV4cG9ydHM9ZH0se31dLDMyOltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSxiKXtyZXR1cm4gYS5tc2c9R1tiXSxifWZ1bmN0aW9uIGUoYSl7cmV0dXJuKGE8PDEpLShhPjQ/OTowKX1mdW5jdGlvbiBmKGEpe2Zvcih2YXIgYj1hLmxlbmd0aDstLWI+PTA7KWFbYl09MH1mdW5jdGlvbiBnKGEpe3ZhciBiPWEuc3RhdGUsYz1iLnBlbmRpbmc7Yz5hLmF2YWlsX291dCYmKGM9YS5hdmFpbF9vdXQpLDAhPT1jJiYoQy5hcnJheVNldChhLm91dHB1dCxiLnBlbmRpbmdfYnVmLGIucGVuZGluZ19vdXQsYyxhLm5leHRfb3V0KSxhLm5leHRfb3V0Kz1jLGIucGVuZGluZ19vdXQrPWMsYS50b3RhbF9vdXQrPWMsYS5hdmFpbF9vdXQtPWMsYi5wZW5kaW5nLT1jLDA9PT1iLnBlbmRpbmcmJihiLnBlbmRpbmdfb3V0PTApKX1mdW5jdGlvbiBoKGEsYil7RC5fdHJfZmx1c2hfYmxvY2soYSxhLmJsb2NrX3N0YXJ0Pj0wP2EuYmxvY2tfc3RhcnQ6LTEsYS5zdHJzdGFydC1hLmJsb2NrX3N0YXJ0LGIpLGEuYmxvY2tfc3RhcnQ9YS5zdHJzdGFydCxnKGEuc3RybSl9ZnVuY3Rpb24gaShhLGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWJ9ZnVuY3Rpb24gaihhLGIpe2EucGVuZGluZ19idWZbYS5wZW5kaW5nKytdPWI+Pj44JjI1NSxhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYn1mdW5jdGlvbiBrKGEsYixjLGQpe3ZhciBlPWEuYXZhaWxfaW47cmV0dXJuIGU+ZCYmKGU9ZCksMD09PWU/MDooYS5hdmFpbF9pbi09ZSxDLmFycmF5U2V0KGIsYS5pbnB1dCxhLm5leHRfaW4sZSxjKSwxPT09YS5zdGF0ZS53cmFwP2EuYWRsZXI9RShhLmFkbGVyLGIsZSxjKToyPT09YS5zdGF0ZS53cmFwJiYoYS5hZGxlcj1GKGEuYWRsZXIsYixlLGMpKSxhLm5leHRfaW4rPWUsYS50b3RhbF9pbis9ZSxlKX1mdW5jdGlvbiBsKGEsYil7dmFyIGMsZCxlPWEubWF4X2NoYWluX2xlbmd0aCxmPWEuc3Ryc3RhcnQsZz1hLnByZXZfbGVuZ3RoLGg9YS5uaWNlX21hdGNoLGk9YS5zdHJzdGFydD5hLndfc2l6ZS1qYj9hLnN0cnN0YXJ0LShhLndfc2l6ZS1qYik6MCxqPWEud2luZG93LGs9YS53X21hc2ssbD1hLnByZXYsbT1hLnN0cnN0YXJ0K2liLG49altmK2ctMV0sbz1qW2YrZ107YS5wcmV2X2xlbmd0aD49YS5nb29kX21hdGNoJiYoZT4+PTIpLGg+YS5sb29rYWhlYWQmJihoPWEubG9va2FoZWFkKTtkbyBpZihjPWIsaltjK2ddPT09byYmaltjK2ctMV09PT1uJiZqW2NdPT09altmXSYmalsrK2NdPT09altmKzFdKXtmKz0yLGMrKztkbzt3aGlsZShqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmalsrK2ZdPT09alsrK2NdJiZqWysrZl09PT1qWysrY10mJmpbKytmXT09PWpbKytjXSYmbT5mKTtpZihkPWliLShtLWYpLGY9bS1pYixkPmcpe2lmKGEubWF0Y2hfc3RhcnQ9YixnPWQsZD49aClicmVhaztuPWpbZitnLTFdLG89altmK2ddfX13aGlsZSgoYj1sW2Ima10pPmkmJjAhPT0tLWUpO3JldHVybiBnPD1hLmxvb2thaGVhZD9nOmEubG9va2FoZWFkfWZ1bmN0aW9uIG0oYSl7dmFyIGIsYyxkLGUsZixnPWEud19zaXplO2Rve2lmKGU9YS53aW5kb3dfc2l6ZS1hLmxvb2thaGVhZC1hLnN0cnN0YXJ0LGEuc3Ryc3RhcnQ+PWcrKGctamIpKXtDLmFycmF5U2V0KGEud2luZG93LGEud2luZG93LGcsZywwKSxhLm1hdGNoX3N0YXJ0LT1nLGEuc3Ryc3RhcnQtPWcsYS5ibG9ja19zdGFydC09ZyxjPWEuaGFzaF9zaXplLGI9YztkbyBkPWEuaGVhZFstLWJdLGEuaGVhZFtiXT1kPj1nP2QtZzowO3doaWxlKC0tYyk7Yz1nLGI9YztkbyBkPWEucHJldlstLWJdLGEucHJldltiXT1kPj1nP2QtZzowO3doaWxlKC0tYyk7ZSs9Z31pZigwPT09YS5zdHJtLmF2YWlsX2luKWJyZWFrO2lmKGM9ayhhLnN0cm0sYS53aW5kb3csYS5zdHJzdGFydCthLmxvb2thaGVhZCxlKSxhLmxvb2thaGVhZCs9YyxhLmxvb2thaGVhZCthLmluc2VydD49aGIpZm9yKGY9YS5zdHJzdGFydC1hLmluc2VydCxhLmluc19oPWEud2luZG93W2ZdLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1tmKzFdKSZhLmhhc2hfbWFzazthLmluc2VydCYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1tmK2hiLTFdKSZhLmhhc2hfbWFzayxhLnByZXZbZiZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1mLGYrKyxhLmluc2VydC0tLCEoYS5sb29rYWhlYWQrYS5pbnNlcnQ8aGIpKTspO313aGlsZShhLmxvb2thaGVhZDxqYiYmMCE9PWEuc3RybS5hdmFpbF9pbil9ZnVuY3Rpb24gbihhLGIpe3ZhciBjPTY1NTM1O2ZvcihjPmEucGVuZGluZ19idWZfc2l6ZS01JiYoYz1hLnBlbmRpbmdfYnVmX3NpemUtNSk7Oyl7aWYoYS5sb29rYWhlYWQ8PTEpe2lmKG0oYSksMD09PWEubG9va2FoZWFkJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWEuc3Ryc3RhcnQrPWEubG9va2FoZWFkLGEubG9va2FoZWFkPTA7dmFyIGQ9YS5ibG9ja19zdGFydCtjO2lmKCgwPT09YS5zdHJzdGFydHx8YS5zdHJzdGFydD49ZCkmJihhLmxvb2thaGVhZD1hLnN0cnN0YXJ0LWQsYS5zdHJzdGFydD1kLGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYjtpZihhLnN0cnN0YXJ0LWEuYmxvY2tfc3RhcnQ+PWEud19zaXplLWpiJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifXJldHVybiBhLmluc2VydD0wLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLnN0cnN0YXJ0PmEuYmxvY2tfc3RhcnQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjpzYn1mdW5jdGlvbiBvKGEsYil7Zm9yKHZhciBjLGQ7Oyl7aWYoYS5sb29rYWhlYWQ8amIpe2lmKG0oYSksYS5sb29rYWhlYWQ8amImJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9aWYoYz0wLGEubG9va2FoZWFkPj1oYiYmKGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQpLDAhPT1jJiZhLnN0cnN0YXJ0LWM8PWEud19zaXplLWpiJiYoYS5tYXRjaF9sZW5ndGg9bChhLGMpKSxhLm1hdGNoX2xlbmd0aD49aGIpaWYoZD1ELl90cl90YWxseShhLGEuc3Ryc3RhcnQtYS5tYXRjaF9zdGFydCxhLm1hdGNoX2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPD1hLm1heF9sYXp5X21hdGNoJiZhLmxvb2thaGVhZD49aGIpe2EubWF0Y2hfbGVuZ3RoLS07ZG8gYS5zdHJzdGFydCsrLGEuaW5zX2g9KGEuaW5zX2g8PGEuaGFzaF9zaGlmdF5hLndpbmRvd1thLnN0cnN0YXJ0K2hiLTFdKSZhLmhhc2hfbWFzayxjPWEucHJldlthLnN0cnN0YXJ0JmEud19tYXNrXT1hLmhlYWRbYS5pbnNfaF0sYS5oZWFkW2EuaW5zX2hdPWEuc3Ryc3RhcnQ7d2hpbGUoMCE9PS0tYS5tYXRjaF9sZW5ndGgpO2Euc3Ryc3RhcnQrK31lbHNlIGEuc3Ryc3RhcnQrPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPTAsYS5pbnNfaD1hLndpbmRvd1thLnN0cnN0YXJ0XSxhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCsxXSkmYS5oYXNoX21hc2s7ZWxzZSBkPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0Kys7aWYoZCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpKXJldHVybiBzYn1yZXR1cm4gYS5pbnNlcnQ9YS5zdHJzdGFydDxoYi0xP2Euc3Ryc3RhcnQ6aGItMSxiPT09Sz8oaChhLCEwKSwwPT09YS5zdHJtLmF2YWlsX291dD91Yjp2Yik6YS5sYXN0X2xpdCYmKGgoYSwhMSksMD09PWEuc3RybS5hdmFpbF9vdXQpP3NiOnRifWZ1bmN0aW9uIHAoYSxiKXtmb3IodmFyIGMsZCxlOzspe2lmKGEubG9va2FoZWFkPGpiKXtpZihtKGEpLGEubG9va2FoZWFkPGpiJiZiPT09SClyZXR1cm4gc2I7aWYoMD09PWEubG9va2FoZWFkKWJyZWFrfWlmKGM9MCxhLmxvb2thaGVhZD49aGImJihhLmluc19oPShhLmluc19oPDxhLmhhc2hfc2hpZnReYS53aW5kb3dbYS5zdHJzdGFydCtoYi0xXSkmYS5oYXNoX21hc2ssYz1hLnByZXZbYS5zdHJzdGFydCZhLndfbWFza109YS5oZWFkW2EuaW5zX2hdLGEuaGVhZFthLmluc19oXT1hLnN0cnN0YXJ0KSxhLnByZXZfbGVuZ3RoPWEubWF0Y2hfbGVuZ3RoLGEucHJldl9tYXRjaD1hLm1hdGNoX3N0YXJ0LGEubWF0Y2hfbGVuZ3RoPWhiLTEsMCE9PWMmJmEucHJldl9sZW5ndGg8YS5tYXhfbGF6eV9tYXRjaCYmYS5zdHJzdGFydC1jPD1hLndfc2l6ZS1qYiYmKGEubWF0Y2hfbGVuZ3RoPWwoYSxjKSxhLm1hdGNoX2xlbmd0aDw9NSYmKGEuc3RyYXRlZ3k9PT1TfHxhLm1hdGNoX2xlbmd0aD09PWhiJiZhLnN0cnN0YXJ0LWEubWF0Y2hfc3RhcnQ+NDA5NikmJihhLm1hdGNoX2xlbmd0aD1oYi0xKSksYS5wcmV2X2xlbmd0aD49aGImJmEubWF0Y2hfbGVuZ3RoPD1hLnByZXZfbGVuZ3RoKXtlPWEuc3Ryc3RhcnQrYS5sb29rYWhlYWQtaGIsZD1ELl90cl90YWxseShhLGEuc3Ryc3RhcnQtMS1hLnByZXZfbWF0Y2gsYS5wcmV2X2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEucHJldl9sZW5ndGgtMSxhLnByZXZfbGVuZ3RoLT0yO2RvKythLnN0cnN0YXJ0PD1lJiYoYS5pbnNfaD0oYS5pbnNfaDw8YS5oYXNoX3NoaWZ0XmEud2luZG93W2Euc3Ryc3RhcnQraGItMV0pJmEuaGFzaF9tYXNrLGM9YS5wcmV2W2Euc3Ryc3RhcnQmYS53X21hc2tdPWEuaGVhZFthLmluc19oXSxhLmhlYWRbYS5pbnNfaF09YS5zdHJzdGFydCk7d2hpbGUoMCE9PS0tYS5wcmV2X2xlbmd0aCk7aWYoYS5tYXRjaF9hdmFpbGFibGU9MCxhLm1hdGNoX2xlbmd0aD1oYi0xLGEuc3Ryc3RhcnQrKyxkJiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCkpcmV0dXJuIHNifWVsc2UgaWYoYS5tYXRjaF9hdmFpbGFibGUpe2lmKGQ9RC5fdHJfdGFsbHkoYSwwLGEud2luZG93W2Euc3Ryc3RhcnQtMV0pLGQmJmgoYSwhMSksYS5zdHJzdGFydCsrLGEubG9va2FoZWFkLS0sMD09PWEuc3RybS5hdmFpbF9vdXQpcmV0dXJuIHNifWVsc2UgYS5tYXRjaF9hdmFpbGFibGU9MSxhLnN0cnN0YXJ0KyssYS5sb29rYWhlYWQtLX1yZXR1cm4gYS5tYXRjaF9hdmFpbGFibGUmJihkPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0LTFdKSxhLm1hdGNoX2F2YWlsYWJsZT0wKSxhLmluc2VydD1hLnN0cnN0YXJ0PGhiLTE/YS5zdHJzdGFydDpoYi0xLGI9PT1LPyhoKGEsITApLDA9PT1hLnN0cm0uYXZhaWxfb3V0P3ViOnZiKTphLmxhc3RfbGl0JiYoaChhLCExKSwwPT09YS5zdHJtLmF2YWlsX291dCk/c2I6dGJ9ZnVuY3Rpb24gcShhLGIpe2Zvcih2YXIgYyxkLGUsZixnPWEud2luZG93Ozspe2lmKGEubG9va2FoZWFkPD1pYil7aWYobShhKSxhLmxvb2thaGVhZDw9aWImJmI9PT1IKXJldHVybiBzYjtpZigwPT09YS5sb29rYWhlYWQpYnJlYWt9aWYoYS5tYXRjaF9sZW5ndGg9MCxhLmxvb2thaGVhZD49aGImJmEuc3Ryc3RhcnQ+MCYmKGU9YS5zdHJzdGFydC0xLGQ9Z1tlXSxkPT09Z1srK2VdJiZkPT09Z1srK2VdJiZkPT09Z1srK2VdKSl7Zj1hLnN0cnN0YXJ0K2liO2RvO3doaWxlKGQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmQ9PT1nWysrZV0mJmY+ZSk7YS5tYXRjaF9sZW5ndGg9aWItKGYtZSksYS5tYXRjaF9sZW5ndGg+YS5sb29rYWhlYWQmJihhLm1hdGNoX2xlbmd0aD1hLmxvb2thaGVhZCl9aWYoYS5tYXRjaF9sZW5ndGg+PWhiPyhjPUQuX3RyX3RhbGx5KGEsMSxhLm1hdGNoX2xlbmd0aC1oYiksYS5sb29rYWhlYWQtPWEubWF0Y2hfbGVuZ3RoLGEuc3Ryc3RhcnQrPWEubWF0Y2hfbGVuZ3RoLGEubWF0Y2hfbGVuZ3RoPTApOihjPUQuX3RyX3RhbGx5KGEsMCxhLndpbmRvd1thLnN0cnN0YXJ0XSksYS5sb29rYWhlYWQtLSxhLnN0cnN0YXJ0KyspLGMmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiByKGEsYil7Zm9yKHZhciBjOzspe2lmKDA9PT1hLmxvb2thaGVhZCYmKG0oYSksMD09PWEubG9va2FoZWFkKSl7aWYoYj09PUgpcmV0dXJuIHNiO2JyZWFrfWlmKGEubWF0Y2hfbGVuZ3RoPTAsYz1ELl90cl90YWxseShhLDAsYS53aW5kb3dbYS5zdHJzdGFydF0pLGEubG9va2FoZWFkLS0sYS5zdHJzdGFydCsrLGMmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gc2J9cmV0dXJuIGEuaW5zZXJ0PTAsYj09PUs/KGgoYSwhMCksMD09PWEuc3RybS5hdmFpbF9vdXQ/dWI6dmIpOmEubGFzdF9saXQmJihoKGEsITEpLDA9PT1hLnN0cm0uYXZhaWxfb3V0KT9zYjp0Yn1mdW5jdGlvbiBzKGEpe2Eud2luZG93X3NpemU9MiphLndfc2l6ZSxmKGEuaGVhZCksYS5tYXhfbGF6eV9tYXRjaD1CW2EubGV2ZWxdLm1heF9sYXp5LGEuZ29vZF9tYXRjaD1CW2EubGV2ZWxdLmdvb2RfbGVuZ3RoLGEubmljZV9tYXRjaD1CW2EubGV2ZWxdLm5pY2VfbGVuZ3RoLGEubWF4X2NoYWluX2xlbmd0aD1CW2EubGV2ZWxdLm1heF9jaGFpbixhLnN0cnN0YXJ0PTAsYS5ibG9ja19zdGFydD0wLGEubG9va2FoZWFkPTAsYS5pbnNlcnQ9MCxhLm1hdGNoX2xlbmd0aD1hLnByZXZfbGVuZ3RoPWhiLTEsYS5tYXRjaF9hdmFpbGFibGU9MCxhLmluc19oPTB9ZnVuY3Rpb24gdCgpe3RoaXMuc3RybT1udWxsLHRoaXMuc3RhdHVzPTAsdGhpcy5wZW5kaW5nX2J1Zj1udWxsLHRoaXMucGVuZGluZ19idWZfc2l6ZT0wLHRoaXMucGVuZGluZ19vdXQ9MCx0aGlzLnBlbmRpbmc9MCx0aGlzLndyYXA9MCx0aGlzLmd6aGVhZD1udWxsLHRoaXMuZ3ppbmRleD0wLHRoaXMubWV0aG9kPVksdGhpcy5sYXN0X2ZsdXNoPS0xLHRoaXMud19zaXplPTAsdGhpcy53X2JpdHM9MCx0aGlzLndfbWFzaz0wLHRoaXMud2luZG93PW51bGwsdGhpcy53aW5kb3dfc2l6ZT0wLHRoaXMucHJldj1udWxsLHRoaXMuaGVhZD1udWxsLHRoaXMuaW5zX2g9MCx0aGlzLmhhc2hfc2l6ZT0wLHRoaXMuaGFzaF9iaXRzPTAsdGhpcy5oYXNoX21hc2s9MCx0aGlzLmhhc2hfc2hpZnQ9MCx0aGlzLmJsb2NrX3N0YXJ0PTAsdGhpcy5tYXRjaF9sZW5ndGg9MCx0aGlzLnByZXZfbWF0Y2g9MCx0aGlzLm1hdGNoX2F2YWlsYWJsZT0wLHRoaXMuc3Ryc3RhcnQ9MCx0aGlzLm1hdGNoX3N0YXJ0PTAsdGhpcy5sb29rYWhlYWQ9MCx0aGlzLnByZXZfbGVuZ3RoPTAsdGhpcy5tYXhfY2hhaW5fbGVuZ3RoPTAsdGhpcy5tYXhfbGF6eV9tYXRjaD0wLHRoaXMubGV2ZWw9MCx0aGlzLnN0cmF0ZWd5PTAsdGhpcy5nb29kX21hdGNoPTAsdGhpcy5uaWNlX21hdGNoPTAsdGhpcy5keW5fbHRyZWU9bmV3IEMuQnVmMTYoMipmYiksdGhpcy5keW5fZHRyZWU9bmV3IEMuQnVmMTYoMiooMipkYisxKSksdGhpcy5ibF90cmVlPW5ldyBDLkJ1ZjE2KDIqKDIqZWIrMSkpLGYodGhpcy5keW5fbHRyZWUpLGYodGhpcy5keW5fZHRyZWUpLGYodGhpcy5ibF90cmVlKSx0aGlzLmxfZGVzYz1udWxsLHRoaXMuZF9kZXNjPW51bGwsdGhpcy5ibF9kZXNjPW51bGwsdGhpcy5ibF9jb3VudD1uZXcgQy5CdWYxNihnYisxKSx0aGlzLmhlYXA9bmV3IEMuQnVmMTYoMipjYisxKSxmKHRoaXMuaGVhcCksdGhpcy5oZWFwX2xlbj0wLHRoaXMuaGVhcF9tYXg9MCx0aGlzLmRlcHRoPW5ldyBDLkJ1ZjE2KDIqY2IrMSksZih0aGlzLmRlcHRoKSx0aGlzLmxfYnVmPTAsdGhpcy5saXRfYnVmc2l6ZT0wLHRoaXMubGFzdF9saXQ9MCx0aGlzLmRfYnVmPTAsdGhpcy5vcHRfbGVuPTAsdGhpcy5zdGF0aWNfbGVuPTAsdGhpcy5tYXRjaGVzPTAsdGhpcy5pbnNlcnQ9MCx0aGlzLmJpX2J1Zj0wLHRoaXMuYmlfdmFsaWQ9MH1mdW5jdGlvbiB1KGEpe3ZhciBiO3JldHVybiBhJiZhLnN0YXRlPyhhLnRvdGFsX2luPWEudG90YWxfb3V0PTAsYS5kYXRhX3R5cGU9WCxiPWEuc3RhdGUsYi5wZW5kaW5nPTAsYi5wZW5kaW5nX291dD0wLGIud3JhcDwwJiYoYi53cmFwPS1iLndyYXApLGIuc3RhdHVzPWIud3JhcD9sYjpxYixhLmFkbGVyPTI9PT1iLndyYXA/MDoxLGIubGFzdF9mbHVzaD1ILEQuX3RyX2luaXQoYiksTSk6ZChhLE8pfWZ1bmN0aW9uIHYoYSl7dmFyIGI9dShhKTtyZXR1cm4gYj09PU0mJnMoYS5zdGF0ZSksYn1mdW5jdGlvbiB3KGEsYil7cmV0dXJuIGEmJmEuc3RhdGU/MiE9PWEuc3RhdGUud3JhcD9POihhLnN0YXRlLmd6aGVhZD1iLE0pOk99ZnVuY3Rpb24geChhLGIsYyxlLGYsZyl7aWYoIWEpcmV0dXJuIE87dmFyIGg9MTtpZihiPT09UiYmKGI9NiksMD5lPyhoPTAsZT0tZSk6ZT4xNSYmKGg9MixlLT0xNiksMT5mfHxmPlp8fGMhPT1ZfHw4PmV8fGU+MTV8fDA+Ynx8Yj45fHwwPmd8fGc+VilyZXR1cm4gZChhLE8pOzg9PT1lJiYoZT05KTt2YXIgaT1uZXcgdDtyZXR1cm4gYS5zdGF0ZT1pLGkuc3RybT1hLGkud3JhcD1oLGkuZ3poZWFkPW51bGwsaS53X2JpdHM9ZSxpLndfc2l6ZT0xPDxpLndfYml0cyxpLndfbWFzaz1pLndfc2l6ZS0xLGkuaGFzaF9iaXRzPWYrNyxpLmhhc2hfc2l6ZT0xPDxpLmhhc2hfYml0cyxpLmhhc2hfbWFzaz1pLmhhc2hfc2l6ZS0xLGkuaGFzaF9zaGlmdD1+figoaS5oYXNoX2JpdHMraGItMSkvaGIpLGkud2luZG93PW5ldyBDLkJ1ZjgoMippLndfc2l6ZSksaS5oZWFkPW5ldyBDLkJ1ZjE2KGkuaGFzaF9zaXplKSxpLnByZXY9bmV3IEMuQnVmMTYoaS53X3NpemUpLGkubGl0X2J1ZnNpemU9MTw8Zis2LGkucGVuZGluZ19idWZfc2l6ZT00KmkubGl0X2J1ZnNpemUsaS5wZW5kaW5nX2J1Zj1uZXcgQy5CdWY4KGkucGVuZGluZ19idWZfc2l6ZSksaS5kX2J1Zj1pLmxpdF9idWZzaXplPj4xLGkubF9idWY9MyppLmxpdF9idWZzaXplLGkubGV2ZWw9YixpLnN0cmF0ZWd5PWcsaS5tZXRob2Q9Yyx2KGEpfWZ1bmN0aW9uIHkoYSxiKXtyZXR1cm4geChhLGIsWSwkLF8sVyl9ZnVuY3Rpb24geihhLGIpe3ZhciBjLGgsayxsO2lmKCFhfHwhYS5zdGF0ZXx8Yj5MfHwwPmIpcmV0dXJuIGE/ZChhLE8pOk87aWYoaD1hLnN0YXRlLCFhLm91dHB1dHx8IWEuaW5wdXQmJjAhPT1hLmF2YWlsX2lufHxoLnN0YXR1cz09PXJiJiZiIT09SylyZXR1cm4gZChhLDA9PT1hLmF2YWlsX291dD9ROk8pO2lmKGguc3RybT1hLGM9aC5sYXN0X2ZsdXNoLGgubGFzdF9mbHVzaD1iLGguc3RhdHVzPT09bGIpaWYoMj09PWgud3JhcClhLmFkbGVyPTAsaShoLDMxKSxpKGgsMTM5KSxpKGgsOCksaC5nemhlYWQ/KGkoaCwoaC5nemhlYWQudGV4dD8xOjApKyhoLmd6aGVhZC5oY3JjPzI6MCkrKGguZ3poZWFkLmV4dHJhPzQ6MCkrKGguZ3poZWFkLm5hbWU/ODowKSsoaC5nemhlYWQuY29tbWVudD8xNjowKSksaShoLDI1NSZoLmd6aGVhZC50aW1lKSxpKGgsaC5nemhlYWQudGltZT4+OCYyNTUpLGkoaCxoLmd6aGVhZC50aW1lPj4xNiYyNTUpLGkoaCxoLmd6aGVhZC50aW1lPj4yNCYyNTUpLGkoaCw5PT09aC5sZXZlbD8yOmguc3RyYXRlZ3k+PVR8fGgubGV2ZWw8Mj80OjApLGkoaCwyNTUmaC5nemhlYWQub3MpLGguZ3poZWFkLmV4dHJhJiZoLmd6aGVhZC5leHRyYS5sZW5ndGgmJihpKGgsMjU1JmguZ3poZWFkLmV4dHJhLmxlbmd0aCksaShoLGguZ3poZWFkLmV4dHJhLmxlbmd0aD4+OCYyNTUpKSxoLmd6aGVhZC5oY3JjJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmcsMCkpLGguZ3ppbmRleD0wLGguc3RhdHVzPW1iKTooaShoLDApLGkoaCwwKSxpKGgsMCksaShoLDApLGkoaCwwKSxpKGgsOT09PWgubGV2ZWw/MjpoLnN0cmF0ZWd5Pj1UfHxoLmxldmVsPDI/NDowKSxpKGgsd2IpLGguc3RhdHVzPXFiKTtlbHNle3ZhciBtPVkrKGgud19iaXRzLTg8PDQpPDw4LG49LTE7bj1oLnN0cmF0ZWd5Pj1UfHxoLmxldmVsPDI/MDpoLmxldmVsPDY/MTo2PT09aC5sZXZlbD8yOjMsbXw9bjw8NiwwIT09aC5zdHJzdGFydCYmKG18PWtiKSxtKz0zMS1tJTMxLGguc3RhdHVzPXFiLGooaCxtKSwwIT09aC5zdHJzdGFydCYmKGooaCxhLmFkbGVyPj4+MTYpLGooaCw2NTUzNSZhLmFkbGVyKSksYS5hZGxlcj0xfWlmKGguc3RhdHVzPT09bWIpaWYoaC5nemhlYWQuZXh0cmEpe2ZvcihrPWgucGVuZGluZztoLmd6aW5kZXg8KDY1NTM1JmguZ3poZWFkLmV4dHJhLmxlbmd0aCkmJihoLnBlbmRpbmchPT1oLnBlbmRpbmdfYnVmX3NpemV8fChoLmd6aGVhZC5oY3JjJiZoLnBlbmRpbmc+ayYmKGEuYWRsZXI9RihhLmFkbGVyLGgucGVuZGluZ19idWYsaC5wZW5kaW5nLWssaykpLGcoYSksaz1oLnBlbmRpbmcsaC5wZW5kaW5nIT09aC5wZW5kaW5nX2J1Zl9zaXplKSk7KWkoaCwyNTUmaC5nemhlYWQuZXh0cmFbaC5nemluZGV4XSksaC5nemluZGV4Kys7aC5nemhlYWQuaGNyYyYmaC5wZW5kaW5nPmsmJihhLmFkbGVyPUYoYS5hZGxlcixoLnBlbmRpbmdfYnVmLGgucGVuZGluZy1rLGspKSxoLmd6aW5kZXg9PT1oLmd6aGVhZC5leHRyYS5sZW5ndGgmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1uYil9ZWxzZSBoLnN0YXR1cz1uYjtpZihoLnN0YXR1cz09PW5iKWlmKGguZ3poZWFkLm5hbWUpe2s9aC5wZW5kaW5nO2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUpKXtsPTE7YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQubmFtZS5sZW5ndGg/MjU1JmguZ3poZWFkLm5hbWUuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksMD09PWwmJihoLmd6aW5kZXg9MCxoLnN0YXR1cz1vYil9ZWxzZSBoLnN0YXR1cz1vYjtpZihoLnN0YXR1cz09PW9iKWlmKGguZ3poZWFkLmNvbW1lbnQpe2s9aC5wZW5kaW5nO2Rve2lmKGgucGVuZGluZz09PWgucGVuZGluZ19idWZfc2l6ZSYmKGguZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksZyhhKSxrPWgucGVuZGluZyxoLnBlbmRpbmc9PT1oLnBlbmRpbmdfYnVmX3NpemUpKXtsPTE7YnJlYWt9bD1oLmd6aW5kZXg8aC5nemhlYWQuY29tbWVudC5sZW5ndGg/MjU1JmguZ3poZWFkLmNvbW1lbnQuY2hhckNvZGVBdChoLmd6aW5kZXgrKyk6MCxpKGgsbCl9d2hpbGUoMCE9PWwpO2guZ3poZWFkLmhjcmMmJmgucGVuZGluZz5rJiYoYS5hZGxlcj1GKGEuYWRsZXIsaC5wZW5kaW5nX2J1ZixoLnBlbmRpbmctayxrKSksMD09PWwmJihoLnN0YXR1cz1wYil9ZWxzZSBoLnN0YXR1cz1wYjtpZihoLnN0YXR1cz09PXBiJiYoaC5nemhlYWQuaGNyYz8oaC5wZW5kaW5nKzI+aC5wZW5kaW5nX2J1Zl9zaXplJiZnKGEpLGgucGVuZGluZysyPD1oLnBlbmRpbmdfYnVmX3NpemUmJihpKGgsMjU1JmEuYWRsZXIpLGkoaCxhLmFkbGVyPj44JjI1NSksYS5hZGxlcj0wLGguc3RhdHVzPXFiKSk6aC5zdGF0dXM9cWIpLDAhPT1oLnBlbmRpbmcpe2lmKGcoYSksMD09PWEuYXZhaWxfb3V0KXJldHVybiBoLmxhc3RfZmx1c2g9LTEsTX1lbHNlIGlmKDA9PT1hLmF2YWlsX2luJiZlKGIpPD1lKGMpJiZiIT09SylyZXR1cm4gZChhLFEpO2lmKGguc3RhdHVzPT09cmImJjAhPT1hLmF2YWlsX2luKXJldHVybiBkKGEsUSk7aWYoMCE9PWEuYXZhaWxfaW58fDAhPT1oLmxvb2thaGVhZHx8YiE9PUgmJmguc3RhdHVzIT09cmIpe3ZhciBvPWguc3RyYXRlZ3k9PT1UP3IoaCxiKTpoLnN0cmF0ZWd5PT09VT9xKGgsYik6QltoLmxldmVsXS5mdW5jKGgsYik7aWYoKG89PT11Ynx8bz09PXZiKSYmKGguc3RhdHVzPXJiKSxvPT09c2J8fG89PT11YilyZXR1cm4gMD09PWEuYXZhaWxfb3V0JiYoaC5sYXN0X2ZsdXNoPS0xKSxNO2lmKG89PT10YiYmKGI9PT1JP0QuX3RyX2FsaWduKGgpOmIhPT1MJiYoRC5fdHJfc3RvcmVkX2Jsb2NrKGgsMCwwLCExKSxiPT09SiYmKGYoaC5oZWFkKSwwPT09aC5sb29rYWhlYWQmJihoLnN0cnN0YXJ0PTAsaC5ibG9ja19zdGFydD0wLGguaW5zZXJ0PTApKSksZyhhKSwwPT09YS5hdmFpbF9vdXQpKXJldHVybiBoLmxhc3RfZmx1c2g9LTEsTX1yZXR1cm4gYiE9PUs/TTpoLndyYXA8PTA/TjooMj09PWgud3JhcD8oaShoLDI1NSZhLmFkbGVyKSxpKGgsYS5hZGxlcj4+OCYyNTUpLGkoaCxhLmFkbGVyPj4xNiYyNTUpLGkoaCxhLmFkbGVyPj4yNCYyNTUpLGkoaCwyNTUmYS50b3RhbF9pbiksaShoLGEudG90YWxfaW4+PjgmMjU1KSxpKGgsYS50b3RhbF9pbj4+MTYmMjU1KSxpKGgsYS50b3RhbF9pbj4+MjQmMjU1KSk6KGooaCxhLmFkbGVyPj4+MTYpLGooaCw2NTUzNSZhLmFkbGVyKSksZyhhKSxoLndyYXA+MCYmKGgud3JhcD0taC53cmFwKSwwIT09aC5wZW5kaW5nP006Til9ZnVuY3Rpb24gQShhKXt2YXIgYjtyZXR1cm4gYSYmYS5zdGF0ZT8oYj1hLnN0YXRlLnN0YXR1cyxiIT09bGImJmIhPT1tYiYmYiE9PW5iJiZiIT09b2ImJmIhPT1wYiYmYiE9PXFiJiZiIT09cmI/ZChhLE8pOihhLnN0YXRlPW51bGwsYj09PXFiP2QoYSxQKTpNKSk6T312YXIgQixDPWEoIi4uL3V0aWxzL2NvbW1vbiIpLEQ9YSgiLi90cmVlcyIpLEU9YSgiLi9hZGxlcjMyIiksRj1hKCIuL2NyYzMyIiksRz1hKCIuL21lc3NhZ2VzIiksSD0wLEk9MSxKPTMsSz00LEw9NSxNPTAsTj0xLE89LTIsUD0tMyxRPS01LFI9LTEsUz0xLFQ9MixVPTMsVj00LFc9MCxYPTIsWT04LFo9OSwkPTE1LF89OCxhYj0yOSxiYj0yNTYsY2I9YmIrMSthYixkYj0zMCxlYj0xOSxmYj0yKmNiKzEsZ2I9MTUsaGI9MyxpYj0yNTgsamI9aWIraGIrMSxrYj0zMixsYj00MixtYj02OSxuYj03MyxvYj05MSxwYj0xMDMscWI9MTEzLHJiPTY2NixzYj0xLHRiPTIsdWI9Myx2Yj00LHdiPTMseGI9ZnVuY3Rpb24oYSxiLGMsZCxlKXt0aGlzLmdvb2RfbGVuZ3RoPWEsdGhpcy5tYXhfbGF6eT1iLHRoaXMubmljZV9sZW5ndGg9Yyx0aGlzLm1heF9jaGFpbj1kLHRoaXMuZnVuYz1lfTtCPVtuZXcgeGIoMCwwLDAsMCxuKSxuZXcgeGIoNCw0LDgsNCxvKSxuZXcgeGIoNCw1LDE2LDgsbyksbmV3IHhiKDQsNiwzMiwzMixvKSxuZXcgeGIoNCw0LDE2LDE2LHApLG5ldyB4Yig4LDE2LDMyLDMyLHApLG5ldyB4Yig4LDE2LDEyOCwxMjgscCksbmV3IHhiKDgsMzIsMTI4LDI1NixwKSxuZXcgeGIoMzIsMTI4LDI1OCwxMDI0LHApLG5ldyB4YigzMiwyNTgsMjU4LDQwOTYscCldLGMuZGVmbGF0ZUluaXQ9eSxjLmRlZmxhdGVJbml0Mj14LGMuZGVmbGF0ZVJlc2V0PXYsYy5kZWZsYXRlUmVzZXRLZWVwPXUsYy5kZWZsYXRlU2V0SGVhZGVyPXcsYy5kZWZsYXRlPXosYy5kZWZsYXRlRW5kPUEsYy5kZWZsYXRlSW5mbz0icGFrbyBkZWZsYXRlIChmcm9tIE5vZGVjYSBwcm9qZWN0KSJ9LHsiLi4vdXRpbHMvY29tbW9uIjoyNywiLi9hZGxlcjMyIjoyOSwiLi9jcmMzMiI6MzEsIi4vbWVzc2FnZXMiOjM3LCIuL3RyZWVzIjozOH1dLDMzOltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBjKCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9Yi5leHBvcnRzPWN9LHt9XSwzNDpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9MzAsZD0xMjtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiKXt2YXIgZSxmLGcsaCxpLGosayxsLG0sbixvLHAscSxyLHMsdCx1LHYsdyx4LHkseixBLEIsQztlPWEuc3RhdGUsZj1hLm5leHRfaW4sQj1hLmlucHV0LGc9ZisoYS5hdmFpbF9pbi01KSxoPWEubmV4dF9vdXQsQz1hLm91dHB1dCxpPWgtKGItYS5hdmFpbF9vdXQpLGo9aCsoYS5hdmFpbF9vdXQtMjU3KSxrPWUuZG1heCxsPWUud3NpemUsbT1lLndoYXZlLG49ZS53bmV4dCxvPWUud2luZG93LHA9ZS5ob2xkLHE9ZS5iaXRzLHI9ZS5sZW5jb2RlLHM9ZS5kaXN0Y29kZSx0PSgxPDxlLmxlbmJpdHMpLTEsdT0oMTw8ZS5kaXN0Yml0cyktMTthOmRvezE1PnEmJihwKz1CW2YrK108PHEscSs9OCxwKz1CW2YrK108PHEscSs9OCksdj1yW3AmdF07Yjpmb3IoOzspe2lmKHc9dj4+PjI0LHA+Pj49dyxxLT13LHc9dj4+PjE2JjI1NSwwPT09dylDW2grK109NjU1MzUmdjtlbHNle2lmKCEoMTYmdykpe2lmKDA9PT0oNjQmdykpe3Y9clsoNjU1MzUmdikrKHAmKDE8PHcpLTEpXTtjb250aW51ZSBifWlmKDMyJncpe2UubW9kZT1kO2JyZWFrIGF9YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsZS5tb2RlPWM7YnJlYWsgYX14PTY1NTM1JnYsdyY9MTUsdyYmKHc+cSYmKHArPUJbZisrXTw8cSxxKz04KSx4Kz1wJigxPDx3KS0xLHA+Pj49dyxxLT13KSwxNT5xJiYocCs9QltmKytdPDxxLHErPTgscCs9QltmKytdPDxxLHErPTgpLHY9c1twJnVdO2M6Zm9yKDs7KXtpZih3PXY+Pj4yNCxwPj4+PXcscS09dyx3PXY+Pj4xNiYyNTUsISgxNiZ3KSl7aWYoMD09PSg2NCZ3KSl7dj1zWyg2NTUzNSZ2KSsocCYoMTw8dyktMSldO2NvbnRpbnVlIGN9YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgY29kZSIsZS5tb2RlPWM7YnJlYWsgYX1pZih5PTY1NTM1JnYsdyY9MTUsdz5xJiYocCs9QltmKytdPDxxLHErPTgsdz5xJiYocCs9QltmKytdPDxxLHErPTgpKSx5Kz1wJigxPDx3KS0xLHk+ayl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixlLm1vZGU9YzticmVhayBhfWlmKHA+Pj49dyxxLT13LHc9aC1pLHk+dyl7aWYodz15LXcsdz5tJiZlLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsZS5tb2RlPWM7YnJlYWsgYX1pZih6PTAsQT1vLDA9PT1uKXtpZih6Kz1sLXcseD53KXt4LT13O2RvIENbaCsrXT1vW3orK107d2hpbGUoLS13KTt6PWgteSxBPUN9fWVsc2UgaWYodz5uKXtpZih6Kz1sK24tdyx3LT1uLHg+dyl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7aWYoej0wLHg+bil7dz1uLHgtPXc7ZG8gQ1toKytdPW9beisrXTt3aGlsZSgtLXcpO3o9aC15LEE9Q319fWVsc2UgaWYoeis9bi13LHg+dyl7eC09dztkbyBDW2grK109b1t6KytdO3doaWxlKC0tdyk7ej1oLXksQT1DfWZvcig7eD4yOylDW2grK109QVt6KytdLENbaCsrXT1BW3orK10sQ1toKytdPUFbeisrXSx4LT0zO3gmJihDW2grK109QVt6KytdLHg+MSYmKENbaCsrXT1BW3orK10pKX1lbHNle3o9aC15O2RvIENbaCsrXT1DW3orK10sQ1toKytdPUNbeisrXSxDW2grK109Q1t6KytdLHgtPTM7d2hpbGUoeD4yKTt4JiYoQ1toKytdPUNbeisrXSx4PjEmJihDW2grK109Q1t6KytdKSl9YnJlYWt9fWJyZWFrfX13aGlsZShnPmYmJmo+aCk7eD1xPj4zLGYtPXgscS09eDw8MyxwJj0oMTw8cSktMSxhLm5leHRfaW49ZixhLm5leHRfb3V0PWgsYS5hdmFpbF9pbj1nPmY/NSsoZy1mKTo1LShmLWcpLGEuYXZhaWxfb3V0PWo+aD8yNTcrKGotaCk6MjU3LShoLWopLGUuaG9sZD1wLGUuYml0cz1xfX0se31dLDM1OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7cmV0dXJuKGE+Pj4yNCYyNTUpKyhhPj4+OCY2NTI4MCkrKCg2NTI4MCZhKTw8OCkrKCgyNTUmYSk8PDI0KX1mdW5jdGlvbiBlKCl7dGhpcy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhpcy5mbGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRoaXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5ndGg9MCx0aGlzLm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGwsdGhpcy5sZW5zPW5ldyByLkJ1ZjE2KDMyMCksdGhpcy53b3JrPW5ldyByLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWZ1bmN0aW9uIGYoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxhLnRvdGFsX2luPWEudG90YWxfb3V0PWIudG90YWw9MCxhLm1zZz0iIixiLndyYXAmJihhLmFkbGVyPTEmYi53cmFwKSxiLm1vZGU9SyxiLmxhc3Q9MCxiLmhhdmVkaWN0PTAsYi5kbWF4PTMyNzY4LGIuaGVhZD1udWxsLGIuaG9sZD0wLGIuYml0cz0wLGIubGVuY29kZT1iLmxlbmR5bj1uZXcgci5CdWYzMihvYiksYi5kaXN0Y29kZT1iLmRpc3RkeW49bmV3IHIuQnVmMzIocGIpLGIuc2FuZT0xLGIuYmFjaz0tMSxDKTpGfWZ1bmN0aW9uIGcoYSl7dmFyIGI7cmV0dXJuIGEmJmEuc3RhdGU/KGI9YS5zdGF0ZSxiLndzaXplPTAsYi53aGF2ZT0wLGIud25leHQ9MCxmKGEpKTpGfWZ1bmN0aW9uIGgoYSxiKXt2YXIgYyxkO3JldHVybiBhJiZhLnN0YXRlPyhkPWEuc3RhdGUsMD5iPyhjPTAsYj0tYik6KGM9KGI+PjQpKzEsNDg+YiYmKGImPTE1KSksYiYmKDg+Ynx8Yj4xNSk/RjoobnVsbCE9PWQud2luZG93JiZkLndiaXRzIT09YiYmKGQud2luZG93PW51bGwpLGQud3JhcD1jLGQud2JpdHM9YixnKGEpKSk6Rn1mdW5jdGlvbiBpKGEsYil7dmFyIGMsZDtyZXR1cm4gYT8oZD1uZXcgZSxhLnN0YXRlPWQsZC53aW5kb3c9bnVsbCxjPWgoYSxiKSxjIT09QyYmKGEuc3RhdGU9bnVsbCksYyk6Rn1mdW5jdGlvbiBqKGEpe3JldHVybiBpKGEscmIpfWZ1bmN0aW9uIGsoYSl7aWYoc2Ipe3ZhciBiO2ZvcihwPW5ldyByLkJ1ZjMyKDUxMikscT1uZXcgci5CdWYzMigzMiksYj0wOzE0ND5iOylhLmxlbnNbYisrXT04O2Zvcig7MjU2PmI7KWEubGVuc1tiKytdPTk7Zm9yKDsyODA+YjspYS5sZW5zW2IrK109Nztmb3IoOzI4OD5iOylhLmxlbnNbYisrXT04O2Zvcih2KHgsYS5sZW5zLDAsMjg4LHAsMCxhLndvcmsse2JpdHM6OX0pLGI9MDszMj5iOylhLmxlbnNbYisrXT01O3YoeSxhLmxlbnMsMCwzMixxLDAsYS53b3JrLHtiaXRzOjV9KSxzYj0hMX1hLmxlbmNvZGU9cCxhLmxlbmJpdHM9OSxhLmRpc3Rjb2RlPXEsYS5kaXN0Yml0cz01fWZ1bmN0aW9uIGwoYSxiLGMsZCl7dmFyIGUsZj1hLnN0YXRlO3JldHVybiBudWxsPT09Zi53aW5kb3cmJihmLndzaXplPTE8PGYud2JpdHMsZi53bmV4dD0wLGYud2hhdmU9MCxmLndpbmRvdz1uZXcgci5CdWY4KGYud3NpemUpKSxkPj1mLndzaXplPyhyLmFycmF5U2V0KGYud2luZG93LGIsYy1mLndzaXplLGYud3NpemUsMCksZi53bmV4dD0wLGYud2hhdmU9Zi53c2l6ZSk6KGU9Zi53c2l6ZS1mLnduZXh0LGU+ZCYmKGU9ZCksci5hcnJheVNldChmLndpbmRvdyxiLGMtZCxlLGYud25leHQpLGQtPWUsZD8oci5hcnJheVNldChmLndpbmRvdyxiLGMtZCxkLDApLGYud25leHQ9ZCxmLndoYXZlPWYud3NpemUpOihmLnduZXh0Kz1lLGYud25leHQ9PT1mLndzaXplJiYoZi53bmV4dD0wKSxmLndoYXZlPGYud3NpemUmJihmLndoYXZlKz1lKSkpLDB9ZnVuY3Rpb24gbShhLGIpe3ZhciBjLGUsZixnLGgsaSxqLG0sbixvLHAscSxvYixwYixxYixyYixzYix0Yix1Yix2Yix3Yix4Yix5Yix6YixBYj0wLEJiPW5ldyByLkJ1ZjgoNCksQ2I9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdO2lmKCFhfHwhYS5zdGF0ZXx8IWEub3V0cHV0fHwhYS5pbnB1dCYmMCE9PWEuYXZhaWxfaW4pcmV0dXJuIEY7Yz1hLnN0YXRlLGMubW9kZT09PVYmJihjLm1vZGU9VyksaD1hLm5leHRfb3V0LGY9YS5vdXRwdXQsaj1hLmF2YWlsX291dCxnPWEubmV4dF9pbixlPWEuaW5wdXQsaT1hLmF2YWlsX2luLG09Yy5ob2xkLG49Yy5iaXRzLG89aSxwPWoseGI9QzthOmZvcig7Oylzd2l0Y2goYy5tb2RlKXtjYXNlIEs6aWYoMD09PWMud3JhcCl7Yy5tb2RlPVc7YnJlYWt9Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoMiZjLndyYXAmJjM1NjE1PT09bSl7Yy5jaGVjaz0wLEJiWzBdPTI1NSZtLEJiWzFdPW0+Pj44JjI1NSxjLmNoZWNrPXQoYy5jaGVjayxCYiwyLDApLG09MCxuPTAsYy5tb2RlPUw7YnJlYWt9aWYoYy5mbGFncz0wLGMuaGVhZCYmKGMuaGVhZC5kb25lPSExKSwhKDEmYy53cmFwKXx8KCgoMjU1Jm0pPDw4KSsobT4+OCkpJTMxKXthLm1zZz0iaW5jb3JyZWN0IGhlYWRlciBjaGVjayIsYy5tb2RlPWxiO2JyZWFrfWlmKCgxNSZtKSE9PUope2EubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsYy5tb2RlPWxiO2JyZWFrfWlmKG0+Pj49NCxuLT00LHdiPSgxNSZtKSs4LDA9PT1jLndiaXRzKWMud2JpdHM9d2I7ZWxzZSBpZih3Yj5jLndiaXRzKXthLm1zZz0iaW52YWxpZCB3aW5kb3cgc2l6ZSIsYy5tb2RlPWxiO2JyZWFrfWMuZG1heD0xPDx3YixhLmFkbGVyPWMuY2hlY2s9MSxjLm1vZGU9NTEyJm0/VDpWLG09MCxuPTA7YnJlYWs7Y2FzZSBMOmZvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKGMuZmxhZ3M9bSwoMjU1JmMuZmxhZ3MpIT09Sil7YS5tc2c9InVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIixjLm1vZGU9bGI7YnJlYWt9aWYoNTczNDQmYy5mbGFncyl7YS5tc2c9InVua25vd24gaGVhZGVyIGZsYWdzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWMuaGVhZCYmKGMuaGVhZC50ZXh0PW0+PjgmMSksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsYy5jaGVjaz10KGMuY2hlY2ssQmIsMiwwKSksbT0wLG49MCxjLm1vZGU9TTtjYXNlIE06Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5oZWFkJiYoYy5oZWFkLnRpbWU9bSksNTEyJmMuZmxhZ3MmJihCYlswXT0yNTUmbSxCYlsxXT1tPj4+OCYyNTUsQmJbMl09bT4+PjE2JjI1NSxCYlszXT1tPj4+MjQmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDQsMCkpLG09MCxuPTAsYy5tb2RlPU47Y2FzZSBOOmZvcig7MTY+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWMuaGVhZCYmKGMuaGVhZC54ZmxhZ3M9MjU1Jm0sYy5oZWFkLm9zPW0+PjgpLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCkpLG09MCxuPTAsYy5tb2RlPU87Y2FzZSBPOmlmKDEwMjQmYy5mbGFncyl7Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5sZW5ndGg9bSxjLmhlYWQmJihjLmhlYWQuZXh0cmFfbGVuPW0pLDUxMiZjLmZsYWdzJiYoQmJbMF09MjU1Jm0sQmJbMV09bT4+PjgmMjU1LGMuY2hlY2s9dChjLmNoZWNrLEJiLDIsMCkpLG09MCxuPTB9ZWxzZSBjLmhlYWQmJihjLmhlYWQuZXh0cmE9bnVsbCk7Yy5tb2RlPVA7Y2FzZSBQOmlmKDEwMjQmYy5mbGFncyYmKHE9Yy5sZW5ndGgscT5pJiYocT1pKSxxJiYoYy5oZWFkJiYod2I9Yy5oZWFkLmV4dHJhX2xlbi1jLmxlbmd0aCxjLmhlYWQuZXh0cmF8fChjLmhlYWQuZXh0cmE9bmV3IEFycmF5KGMuaGVhZC5leHRyYV9sZW4pKSxyLmFycmF5U2V0KGMuaGVhZC5leHRyYSxlLGcscSx3YikpLDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsYy5sZW5ndGgtPXEpLGMubGVuZ3RoKSlicmVhayBhO2MubGVuZ3RoPTAsYy5tb2RlPVE7Y2FzZSBROmlmKDIwNDgmYy5mbGFncyl7aWYoMD09PWkpYnJlYWsgYTtxPTA7ZG8gd2I9ZVtnK3ErK10sYy5oZWFkJiZ3YiYmYy5sZW5ndGg8NjU1MzYmJihjLmhlYWQubmFtZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh3YikpO3doaWxlKHdiJiZpPnEpO2lmKDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsd2IpYnJlYWsgYX1lbHNlIGMuaGVhZCYmKGMuaGVhZC5uYW1lPW51bGwpO2MubGVuZ3RoPTAsYy5tb2RlPVI7Y2FzZSBSOmlmKDQwOTYmYy5mbGFncyl7aWYoMD09PWkpYnJlYWsgYTtxPTA7ZG8gd2I9ZVtnK3ErK10sYy5oZWFkJiZ3YiYmYy5sZW5ndGg8NjU1MzYmJihjLmhlYWQuY29tbWVudCs9U3RyaW5nLmZyb21DaGFyQ29kZSh3YikpO3doaWxlKHdiJiZpPnEpO2lmKDUxMiZjLmZsYWdzJiYoYy5jaGVjaz10KGMuY2hlY2ssZSxxLGcpKSxpLT1xLGcrPXEsd2IpYnJlYWsgYX1lbHNlIGMuaGVhZCYmKGMuaGVhZC5jb21tZW50PW51bGwpO2MubW9kZT1TO2Nhc2UgUzppZig1MTImYy5mbGFncyl7Zm9yKDsxNj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobSE9PSg2NTUzNSZjLmNoZWNrKSl7YS5tc2c9ImhlYWRlciBjcmMgbWlzbWF0Y2giLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMuaGVhZCYmKGMuaGVhZC5oY3JjPWMuZmxhZ3M+PjkmMSxjLmhlYWQuZG9uZT0hMCksYS5hZGxlcj1jLmNoZWNrPTAsYy5tb2RlPVY7YnJlYWs7Y2FzZSBUOmZvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWEuYWRsZXI9Yy5jaGVjaz1kKG0pLG09MCxuPTAsYy5tb2RlPVU7Y2FzZSBVOmlmKDA9PT1jLmhhdmVkaWN0KXJldHVybiBhLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sRTthLmFkbGVyPWMuY2hlY2s9MSxjLm1vZGU9VjtjYXNlIFY6aWYoYj09PUF8fGI9PT1CKWJyZWFrIGE7Y2FzZSBXOmlmKGMubGFzdCl7bT4+Pj03Jm4sbi09NyZuLGMubW9kZT1pYjticmVha31mb3IoOzM+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fXN3aXRjaChjLmxhc3Q9MSZtLG0+Pj49MSxuLT0xLDMmbSl7Y2FzZSAwOmMubW9kZT1YO2JyZWFrO2Nhc2UgMTppZihrKGMpLGMubW9kZT1iYixiPT09Qil7bT4+Pj0yLG4tPTI7YnJlYWsgYX1icmVhaztjYXNlIDI6Yy5tb2RlPSQ7YnJlYWs7Y2FzZSAzOmEubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLGMubW9kZT1sYn1tPj4+PTIsbi09MjticmVhaztjYXNlIFg6Zm9yKG0+Pj49NyZuLG4tPTcmbjszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoKDY1NTM1Jm0pIT09KG0+Pj4xNl42NTUzNSkpe2EubXNnPSJpbnZhbGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIixjLm1vZGU9bGI7YnJlYWt9aWYoYy5sZW5ndGg9NjU1MzUmbSxtPTAsbj0wLGMubW9kZT1ZLGI9PT1CKWJyZWFrIGE7Y2FzZSBZOmMubW9kZT1aO2Nhc2UgWjppZihxPWMubGVuZ3RoKXtpZihxPmkmJihxPWkpLHE+aiYmKHE9aiksMD09PXEpYnJlYWsgYTtyLmFycmF5U2V0KGYsZSxnLHEsaCksaS09cSxnKz1xLGotPXEsaCs9cSxjLmxlbmd0aC09cTticmVha31jLm1vZGU9VjticmVhaztjYXNlICQ6Zm9yKDsxND5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYoYy5ubGVuPSgzMSZtKSsyNTcsbT4+Pj01LG4tPTUsYy5uZGlzdD0oMzEmbSkrMSxtPj4+PTUsbi09NSxjLm5jb2RlPSgxNSZtKSs0LG0+Pj49NCxuLT00LGMubmxlbj4yODZ8fGMubmRpc3Q+MzApe2EubXNnPSJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scyIsYy5tb2RlPWxiO2JyZWFrfWMuaGF2ZT0wLGMubW9kZT1fO2Nhc2UgXzpmb3IoO2MuaGF2ZTxjLm5jb2RlOyl7Zm9yKDszPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbnNbQ2JbYy5oYXZlKytdXT03Jm0sbT4+Pj0zLG4tPTN9Zm9yKDtjLmhhdmU8MTk7KWMubGVuc1tDYltjLmhhdmUrK11dPTA7aWYoYy5sZW5jb2RlPWMubGVuZHluLGMubGVuYml0cz03LHliPXtiaXRzOmMubGVuYml0c30seGI9dih3LGMubGVucywwLDE5LGMubGVuY29kZSwwLGMud29yayx5YiksYy5sZW5iaXRzPXliLmJpdHMseGIpe2EubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLGMubW9kZT1sYjticmVha31jLmhhdmU9MCxjLm1vZGU9YWI7Y2FzZSBhYjpmb3IoO2MuaGF2ZTxjLm5sZW4rYy5uZGlzdDspe2Zvcig7QWI9Yy5sZW5jb2RlW20mKDE8PGMubGVuYml0cyktMV0scWI9QWI+Pj4yNCxyYj1BYj4+PjE2JjI1NSxzYj02NTUzNSZBYiwhKG4+PXFiKTspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG0rPWVbZysrXTw8bixuKz04fWlmKDE2PnNiKW0+Pj49cWIsbi09cWIsYy5sZW5zW2MuaGF2ZSsrXT1zYjtlbHNle2lmKDE2PT09c2Ipe2Zvcih6Yj1xYisyO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihtPj4+PXFiLG4tPXFiLDA9PT1jLmhhdmUpe2EubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixjLm1vZGU9bGI7YnJlYWt9d2I9Yy5sZW5zW2MuaGF2ZS0xXSxxPTMrKDMmbSksbT4+Pj0yLG4tPTJ9ZWxzZSBpZigxNz09PXNiKXtmb3IoemI9cWIrMzt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9bT4+Pj1xYixuLT1xYix3Yj0wLHE9MysoNyZtKSxtPj4+PTMsbi09M31lbHNle2Zvcih6Yj1xYis3O3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXFiLG4tPXFiLHdiPTAscT0xMSsoMTI3Jm0pLG0+Pj49NyxuLT03fWlmKGMuaGF2ZStxPmMubmxlbitjLm5kaXN0KXthLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsYy5tb2RlPWxiO2JyZWFrfWZvcig7cS0tOyljLmxlbnNbYy5oYXZlKytdPXdifX1pZihjLm1vZGU9PT1sYilicmVhaztpZigwPT09Yy5sZW5zWzI1Nl0pe2EubXNnPSJpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2siLGMubW9kZT1sYjticmVha31pZihjLmxlbmJpdHM9OSx5Yj17Yml0czpjLmxlbmJpdHN9LHhiPXYoeCxjLmxlbnMsMCxjLm5sZW4sYy5sZW5jb2RlLDAsYy53b3JrLHliKSxjLmxlbmJpdHM9eWIuYml0cyx4Yil7YS5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWlmKGMuZGlzdGJpdHM9NixjLmRpc3Rjb2RlPWMuZGlzdGR5bix5Yj17Yml0czpjLmRpc3RiaXRzfSx4Yj12KHksYy5sZW5zLGMubmxlbixjLm5kaXN0LGMuZGlzdGNvZGUsMCxjLndvcmsseWIpLGMuZGlzdGJpdHM9eWIuYml0cyx4Yil7YS5tc2c9ImludmFsaWQgZGlzdGFuY2VzIHNldCIsYy5tb2RlPWxiO2JyZWFrfWlmKGMubW9kZT1iYixiPT09QilicmVhayBhO2Nhc2UgYmI6Yy5tb2RlPWNiO2Nhc2UgY2I6aWYoaT49NiYmaj49MjU4KXthLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sdShhLHApLGg9YS5uZXh0X291dCxmPWEub3V0cHV0LGo9YS5hdmFpbF9vdXQsZz1hLm5leHRfaW4sZT1hLmlucHV0LGk9YS5hdmFpbF9pbixtPWMuaG9sZCxuPWMuYml0cyxjLm1vZGU9PT1WJiYoYy5iYWNrPS0xKTsKYnJlYWt9Zm9yKGMuYmFjaz0wO0FiPWMubGVuY29kZVttJigxPDxjLmxlbmJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZihyYiYmMD09PSgyNDAmcmIpKXtmb3IodGI9cWIsdWI9cmIsdmI9c2I7QWI9Yy5sZW5jb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLGMubGVuZ3RoPXNiLDA9PT1yYil7Yy5tb2RlPWhiO2JyZWFrfWlmKDMyJnJiKXtjLmJhY2s9LTEsYy5tb2RlPVY7YnJlYWt9aWYoNjQmcmIpe2EubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLGMubW9kZT1sYjticmVha31jLmV4dHJhPTE1JnJiLGMubW9kZT1kYjtjYXNlIGRiOmlmKGMuZXh0cmEpe2Zvcih6Yj1jLmV4dHJhO3piPm47KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1jLmxlbmd0aCs9bSYoMTw8Yy5leHRyYSktMSxtPj4+PWMuZXh0cmEsbi09Yy5leHRyYSxjLmJhY2srPWMuZXh0cmF9Yy53YXM9Yy5sZW5ndGgsYy5tb2RlPWViO2Nhc2UgZWI6Zm9yKDtBYj1jLmRpc3Rjb2RlW20mKDE8PGMuZGlzdGJpdHMpLTFdLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj1xYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1pZigwPT09KDI0MCZyYikpe2Zvcih0Yj1xYix1Yj1yYix2Yj1zYjtBYj1jLmRpc3Rjb2RlW3ZiKygobSYoMTw8dGIrdWIpLTEpPj50YildLHFiPUFiPj4+MjQscmI9QWI+Pj4xNiYyNTUsc2I9NjU1MzUmQWIsIShuPj10YitxYik7KXtpZigwPT09aSlicmVhayBhO2ktLSxtKz1lW2crK108PG4sbis9OH1tPj4+PXRiLG4tPXRiLGMuYmFjays9dGJ9aWYobT4+Pj1xYixuLT1xYixjLmJhY2srPXFiLDY0JnJiKXthLm1zZz0iaW52YWxpZCBkaXN0YW5jZSBjb2RlIixjLm1vZGU9bGI7YnJlYWt9Yy5vZmZzZXQ9c2IsYy5leHRyYT0xNSZyYixjLm1vZGU9ZmI7Y2FzZSBmYjppZihjLmV4dHJhKXtmb3IoemI9Yy5leHRyYTt6Yj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9Yy5vZmZzZXQrPW0mKDE8PGMuZXh0cmEpLTEsbT4+Pj1jLmV4dHJhLG4tPWMuZXh0cmEsYy5iYWNrKz1jLmV4dHJhfWlmKGMub2Zmc2V0PmMuZG1heCl7YS5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixjLm1vZGU9bGI7YnJlYWt9Yy5tb2RlPWdiO2Nhc2UgZ2I6aWYoMD09PWopYnJlYWsgYTtpZihxPXAtaixjLm9mZnNldD5xKXtpZihxPWMub2Zmc2V0LXEscT5jLndoYXZlJiZjLnNhbmUpe2EubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsYy5tb2RlPWxiO2JyZWFrfXE+Yy53bmV4dD8ocS09Yy53bmV4dCxvYj1jLndzaXplLXEpOm9iPWMud25leHQtcSxxPmMubGVuZ3RoJiYocT1jLmxlbmd0aCkscGI9Yy53aW5kb3d9ZWxzZSBwYj1mLG9iPWgtYy5vZmZzZXQscT1jLmxlbmd0aDtxPmomJihxPWopLGotPXEsYy5sZW5ndGgtPXE7ZG8gZltoKytdPXBiW29iKytdO3doaWxlKC0tcSk7MD09PWMubGVuZ3RoJiYoYy5tb2RlPWNiKTticmVhaztjYXNlIGhiOmlmKDA9PT1qKWJyZWFrIGE7ZltoKytdPWMubGVuZ3RoLGotLSxjLm1vZGU9Y2I7YnJlYWs7Y2FzZSBpYjppZihjLndyYXApe2Zvcig7MzI+bjspe2lmKDA9PT1pKWJyZWFrIGE7aS0tLG18PWVbZysrXTw8bixuKz04fWlmKHAtPWosYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxwJiYoYS5hZGxlcj1jLmNoZWNrPWMuZmxhZ3M/dChjLmNoZWNrLGYscCxoLXApOnMoYy5jaGVjayxmLHAsaC1wKSkscD1qLChjLmZsYWdzP206ZChtKSkhPT1jLmNoZWNrKXthLm1zZz0iaW5jb3JyZWN0IGRhdGEgY2hlY2siLGMubW9kZT1sYjticmVha31tPTAsbj0wfWMubW9kZT1qYjtjYXNlIGpiOmlmKGMud3JhcCYmYy5mbGFncyl7Zm9yKDszMj5uOyl7aWYoMD09PWkpYnJlYWsgYTtpLS0sbSs9ZVtnKytdPDxuLG4rPTh9aWYobSE9PSg0Mjk0OTY3Mjk1JmMudG90YWwpKXthLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsYy5tb2RlPWxiO2JyZWFrfW09MCxuPTB9Yy5tb2RlPWtiO2Nhc2Uga2I6eGI9RDticmVhayBhO2Nhc2UgbGI6eGI9RzticmVhayBhO2Nhc2UgbWI6cmV0dXJuIEg7Y2FzZSBuYjpkZWZhdWx0OnJldHVybiBGfXJldHVybiBhLm5leHRfb3V0PWgsYS5hdmFpbF9vdXQ9aixhLm5leHRfaW49ZyxhLmF2YWlsX2luPWksYy5ob2xkPW0sYy5iaXRzPW4sKGMud3NpemV8fHAhPT1hLmF2YWlsX291dCYmYy5tb2RlPGxiJiYoYy5tb2RlPGlifHxiIT09eikpJiZsKGEsYS5vdXRwdXQsYS5uZXh0X291dCxwLWEuYXZhaWxfb3V0KT8oYy5tb2RlPW1iLEgpOihvLT1hLmF2YWlsX2luLHAtPWEuYXZhaWxfb3V0LGEudG90YWxfaW4rPW8sYS50b3RhbF9vdXQrPXAsYy50b3RhbCs9cCxjLndyYXAmJnAmJihhLmFkbGVyPWMuY2hlY2s9Yy5mbGFncz90KGMuY2hlY2ssZixwLGEubmV4dF9vdXQtcCk6cyhjLmNoZWNrLGYscCxhLm5leHRfb3V0LXApKSxhLmRhdGFfdHlwZT1jLmJpdHMrKGMubGFzdD82NDowKSsoYy5tb2RlPT09Vj8xMjg6MCkrKGMubW9kZT09PWJifHxjLm1vZGU9PT1ZPzI1NjowKSwoMD09PW8mJjA9PT1wfHxiPT09eikmJnhiPT09QyYmKHhiPUkpLHhiKX1mdW5jdGlvbiBuKGEpe2lmKCFhfHwhYS5zdGF0ZSlyZXR1cm4gRjt2YXIgYj1hLnN0YXRlO3JldHVybiBiLndpbmRvdyYmKGIud2luZG93PW51bGwpLGEuc3RhdGU9bnVsbCxDfWZ1bmN0aW9uIG8oYSxiKXt2YXIgYztyZXR1cm4gYSYmYS5zdGF0ZT8oYz1hLnN0YXRlLDA9PT0oMiZjLndyYXApP0Y6KGMuaGVhZD1iLGIuZG9uZT0hMSxDKSk6Rn12YXIgcCxxLHI9YSgiLi4vdXRpbHMvY29tbW9uIikscz1hKCIuL2FkbGVyMzIiKSx0PWEoIi4vY3JjMzIiKSx1PWEoIi4vaW5mZmFzdCIpLHY9YSgiLi9pbmZ0cmVlcyIpLHc9MCx4PTEseT0yLHo9NCxBPTUsQj02LEM9MCxEPTEsRT0yLEY9LTIsRz0tMyxIPS00LEk9LTUsSj04LEs9MSxMPTIsTT0zLE49NCxPPTUsUD02LFE9NyxSPTgsUz05LFQ9MTAsVT0xMSxWPTEyLFc9MTMsWD0xNCxZPTE1LFo9MTYsJD0xNyxfPTE4LGFiPTE5LGJiPTIwLGNiPTIxLGRiPTIyLGViPTIzLGZiPTI0LGdiPTI1LGhiPTI2LGliPTI3LGpiPTI4LGtiPTI5LGxiPTMwLG1iPTMxLG5iPTMyLG9iPTg1MixwYj01OTIscWI9MTUscmI9cWIsc2I9ITA7Yy5pbmZsYXRlUmVzZXQ9ZyxjLmluZmxhdGVSZXNldDI9aCxjLmluZmxhdGVSZXNldEtlZXA9ZixjLmluZmxhdGVJbml0PWosYy5pbmZsYXRlSW5pdDI9aSxjLmluZmxhdGU9bSxjLmluZmxhdGVFbmQ9bixjLmluZmxhdGVHZXRIZWFkZXI9byxjLmluZmxhdGVJbmZvPSJwYWtvIGluZmxhdGUgKGZyb20gTm9kZWNhIHByb2plY3QpIn0seyIuLi91dGlscy9jb21tb24iOjI3LCIuL2FkbGVyMzIiOjI5LCIuL2NyYzMyIjozMSwiLi9pbmZmYXN0IjozNCwiLi9pbmZ0cmVlcyI6MzZ9XSwzNjpbZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7dmFyIGM9YSgiLi4vdXRpbHMvY29tbW9uIiksZD0xNSxlPTg1MixmPTU5MixnPTAsaD0xLGk9MixqPVszLDQsNSw2LDcsOCw5LDEwLDExLDEzLDE1LDE3LDE5LDIzLDI3LDMxLDM1LDQzLDUxLDU5LDY3LDgzLDk5LDExNSwxMzEsMTYzLDE5NSwyMjcsMjU4LDAsMF0saz1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcsMTgsMTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsNzIsNzhdLGw9WzEsMiwzLDQsNSw3LDksMTMsMTcsMjUsMzMsNDksNjUsOTcsMTI5LDE5MywyNTcsMzg1LDUxMyw3NjksMTAyNSwxNTM3LDIwNDksMzA3Myw0MDk3LDYxNDUsODE5MywxMjI4OSwxNjM4NSwyNDU3NywwLDBdLG09WzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XTtiLmV4cG9ydHM9ZnVuY3Rpb24oYSxiLG4sbyxwLHEscixzKXt2YXIgdCx1LHYsdyx4LHkseixBLEIsQz1zLmJpdHMsRD0wLEU9MCxGPTAsRz0wLEg9MCxJPTAsSj0wLEs9MCxMPTAsTT0wLE49bnVsbCxPPTAsUD1uZXcgYy5CdWYxNihkKzEpLFE9bmV3IGMuQnVmMTYoZCsxKSxSPW51bGwsUz0wO2ZvcihEPTA7ZD49RDtEKyspUFtEXT0wO2ZvcihFPTA7bz5FO0UrKylQW2JbbitFXV0rKztmb3IoSD1DLEc9ZDtHPj0xJiYwPT09UFtHXTtHLS0pO2lmKEg+RyYmKEg9RyksMD09PUcpcmV0dXJuIHBbcSsrXT0yMDk3MTUyMCxwW3ErK109MjA5NzE1MjAscy5iaXRzPTEsMDtmb3IoRj0xO0c+RiYmMD09PVBbRl07RisrKTtmb3IoRj5IJiYoSD1GKSxLPTEsRD0xO2Q+PUQ7RCsrKWlmKEs8PD0xLEstPVBbRF0sMD5LKXJldHVybi0xO2lmKEs+MCYmKGE9PT1nfHwxIT09RykpcmV0dXJuLTE7Zm9yKFFbMV09MCxEPTE7ZD5EO0QrKylRW0QrMV09UVtEXStQW0RdO2ZvcihFPTA7bz5FO0UrKykwIT09YltuK0VdJiYocltRW2JbbitFXV0rK109RSk7aWYoYT09PWc/KE49Uj1yLHk9MTkpOmE9PT1oPyhOPWosTy09MjU3LFI9ayxTLT0yNTcseT0yNTYpOihOPWwsUj1tLHk9LTEpLE09MCxFPTAsRD1GLHg9cSxJPUgsSj0wLHY9LTEsTD0xPDxILHc9TC0xLGE9PT1oJiZMPmV8fGE9PT1pJiZMPmYpcmV0dXJuIDE7Zm9yKHZhciBUPTA7Oyl7VCsrLHo9RC1KLHJbRV08eT8oQT0wLEI9cltFXSk6cltFXT55PyhBPVJbUytyW0VdXSxCPU5bTytyW0VdXSk6KEE9OTYsQj0wKSx0PTE8PEQtSix1PTE8PEksRj11O2RvIHUtPXQscFt4KyhNPj5KKSt1XT16PDwyNHxBPDwxNnxCfDA7d2hpbGUoMCE9PXUpO2Zvcih0PTE8PEQtMTtNJnQ7KXQ+Pj0xO2lmKDAhPT10PyhNJj10LTEsTSs9dCk6TT0wLEUrKywwPT09LS1QW0RdKXtpZihEPT09RylicmVhaztEPWJbbityW0VdXX1pZihEPkgmJihNJncpIT09dil7Zm9yKDA9PT1KJiYoSj1IKSx4Kz1GLEk9RC1KLEs9MTw8STtHPkkrSiYmKEstPVBbSStKXSwhKDA+PUspKTspSSsrLEs8PD0xO2lmKEwrPTE8PEksYT09PWgmJkw+ZXx8YT09PWkmJkw+ZilyZXR1cm4gMTt2PU0mdyxwW3ZdPUg8PDI0fEk8PDE2fHgtcXwwfX1yZXR1cm4gMCE9PU0mJihwW3grTV09RC1KPDwyNHw2NDw8MTZ8MCkscy5iaXRzPUgsMH19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM3OltmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtiLmV4cG9ydHM9ezI6Im5lZWQgZGljdGlvbmFyeSIsMToic3RyZWFtIGVuZCIsMDoiIiwiLTEiOiJmaWxlIGVycm9yIiwiLTIiOiJzdHJlYW0gZXJyb3IiLCItMyI6ImRhdGEgZXJyb3IiLCItNCI6Imluc3VmZmljaWVudCBtZW1vcnkiLCItNSI6ImJ1ZmZlciBlcnJvciIsIi02IjoiaW5jb21wYXRpYmxlIHZlcnNpb24ifX0se31dLDM4OltmdW5jdGlvbihhLGIsYyl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGQoYSl7Zm9yKHZhciBiPWEubGVuZ3RoOy0tYj49MDspYVtiXT0wfWZ1bmN0aW9uIGUoYSl7cmV0dXJuIDI1Nj5hP2diW2FdOmdiWzI1NisoYT4+PjcpXX1mdW5jdGlvbiBmKGEsYil7YS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109MjU1JmIsYS5wZW5kaW5nX2J1ZlthLnBlbmRpbmcrK109Yj4+PjgmMjU1fWZ1bmN0aW9uIGcoYSxiLGMpe2EuYmlfdmFsaWQ+Vi1jPyhhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxmKGEsYS5iaV9idWYpLGEuYmlfYnVmPWI+PlYtYS5iaV92YWxpZCxhLmJpX3ZhbGlkKz1jLVYpOihhLmJpX2J1Znw9Yjw8YS5iaV92YWxpZCY2NTUzNSxhLmJpX3ZhbGlkKz1jKX1mdW5jdGlvbiBoKGEsYixjKXtnKGEsY1syKmJdLGNbMipiKzFdKX1mdW5jdGlvbiBpKGEsYil7dmFyIGM9MDtkbyBjfD0xJmEsYT4+Pj0xLGM8PD0xO3doaWxlKC0tYj4wKTtyZXR1cm4gYz4+PjF9ZnVuY3Rpb24gaihhKXsxNj09PWEuYmlfdmFsaWQ/KGYoYSxhLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTApOmEuYmlfdmFsaWQ+PTgmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT0yNTUmYS5iaV9idWYsYS5iaV9idWY+Pj04LGEuYmlfdmFsaWQtPTgpfWZ1bmN0aW9uIGsoYSxiKXt2YXIgYyxkLGUsZixnLGgsaT1iLmR5bl90cmVlLGo9Yi5tYXhfY29kZSxrPWIuc3RhdF9kZXNjLnN0YXRpY190cmVlLGw9Yi5zdGF0X2Rlc2MuaGFzX3N0cmVlLG09Yi5zdGF0X2Rlc2MuZXh0cmFfYml0cyxuPWIuc3RhdF9kZXNjLmV4dHJhX2Jhc2Usbz1iLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLHA9MDtmb3IoZj0wO1U+PWY7ZisrKWEuYmxfY291bnRbZl09MDtmb3IoaVsyKmEuaGVhcFthLmhlYXBfbWF4XSsxXT0wLGM9YS5oZWFwX21heCsxO1Q+YztjKyspZD1hLmhlYXBbY10sZj1pWzIqaVsyKmQrMV0rMV0rMSxmPm8mJihmPW8scCsrKSxpWzIqZCsxXT1mLGQ+anx8KGEuYmxfY291bnRbZl0rKyxnPTAsZD49biYmKGc9bVtkLW5dKSxoPWlbMipkXSxhLm9wdF9sZW4rPWgqKGYrZyksbCYmKGEuc3RhdGljX2xlbis9aCooa1syKmQrMV0rZykpKTtpZigwIT09cCl7ZG97Zm9yKGY9by0xOzA9PT1hLmJsX2NvdW50W2ZdOylmLS07YS5ibF9jb3VudFtmXS0tLGEuYmxfY291bnRbZisxXSs9MixhLmJsX2NvdW50W29dLS0scC09Mn13aGlsZShwPjApO2ZvcihmPW87MCE9PWY7Zi0tKWZvcihkPWEuYmxfY291bnRbZl07MCE9PWQ7KWU9YS5oZWFwWy0tY10sZT5qfHwoaVsyKmUrMV0hPT1mJiYoYS5vcHRfbGVuKz0oZi1pWzIqZSsxXSkqaVsyKmVdLGlbMiplKzFdPWYpLGQtLSl9fWZ1bmN0aW9uIGwoYSxiLGMpe3ZhciBkLGUsZj1uZXcgQXJyYXkoVSsxKSxnPTA7Zm9yKGQ9MTtVPj1kO2QrKylmW2RdPWc9ZytjW2QtMV08PDE7Zm9yKGU9MDtiPj1lO2UrKyl7dmFyIGg9YVsyKmUrMV07MCE9PWgmJihhWzIqZV09aShmW2hdKyssaCkpfX1mdW5jdGlvbiBtKCl7dmFyIGEsYixjLGQsZSxmPW5ldyBBcnJheShVKzEpO2ZvcihjPTAsZD0wO08tMT5kO2QrKylmb3IoaWJbZF09YyxhPTA7YTwxPDxfW2RdO2ErKyloYltjKytdPWQ7Zm9yKGhiW2MtMV09ZCxlPTAsZD0wOzE2PmQ7ZCsrKWZvcihqYltkXT1lLGE9MDthPDE8PGFiW2RdO2ErKylnYltlKytdPWQ7Zm9yKGU+Pj03O1I+ZDtkKyspZm9yKGpiW2RdPWU8PDcsYT0wO2E8MTw8YWJbZF0tNzthKyspZ2JbMjU2K2UrK109ZDtmb3IoYj0wO1U+PWI7YisrKWZbYl09MDtmb3IoYT0wOzE0Mz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IoOzI1NT49YTspZWJbMiphKzFdPTksYSsrLGZbOV0rKztmb3IoOzI3OT49YTspZWJbMiphKzFdPTcsYSsrLGZbN10rKztmb3IoOzI4Nz49YTspZWJbMiphKzFdPTgsYSsrLGZbOF0rKztmb3IobChlYixRKzEsZiksYT0wO1I+YTthKyspZmJbMiphKzFdPTUsZmJbMiphXT1pKGEsNSk7a2I9bmV3IG5iKGViLF8sUCsxLFEsVSksbGI9bmV3IG5iKGZiLGFiLDAsUixVKSxtYj1uZXcgbmIobmV3IEFycmF5KDApLGJiLDAsUyxXKX1mdW5jdGlvbiBuKGEpe3ZhciBiO2ZvcihiPTA7UT5iO2IrKylhLmR5bl9sdHJlZVsyKmJdPTA7Zm9yKGI9MDtSPmI7YisrKWEuZHluX2R0cmVlWzIqYl09MDtmb3IoYj0wO1M+YjtiKyspYS5ibF90cmVlWzIqYl09MDthLmR5bl9sdHJlZVsyKlhdPTEsYS5vcHRfbGVuPWEuc3RhdGljX2xlbj0wLGEubGFzdF9saXQ9YS5tYXRjaGVzPTB9ZnVuY3Rpb24gbyhhKXthLmJpX3ZhbGlkPjg/ZihhLGEuYmlfYnVmKTphLmJpX3ZhbGlkPjAmJihhLnBlbmRpbmdfYnVmW2EucGVuZGluZysrXT1hLmJpX2J1ZiksYS5iaV9idWY9MCxhLmJpX3ZhbGlkPTB9ZnVuY3Rpb24gcChhLGIsYyxkKXtvKGEpLGQmJihmKGEsYyksZihhLH5jKSksRS5hcnJheVNldChhLnBlbmRpbmdfYnVmLGEud2luZG93LGIsYyxhLnBlbmRpbmcpLGEucGVuZGluZys9Y31mdW5jdGlvbiBxKGEsYixjLGQpe3ZhciBlPTIqYixmPTIqYztyZXR1cm4gYVtlXTxhW2ZdfHxhW2VdPT09YVtmXSYmZFtiXTw9ZFtjXX1mdW5jdGlvbiByKGEsYixjKXtmb3IodmFyIGQ9YS5oZWFwW2NdLGU9Yzw8MTtlPD1hLmhlYXBfbGVuJiYoZTxhLmhlYXBfbGVuJiZxKGIsYS5oZWFwW2UrMV0sYS5oZWFwW2VdLGEuZGVwdGgpJiZlKyssIXEoYixkLGEuaGVhcFtlXSxhLmRlcHRoKSk7KWEuaGVhcFtjXT1hLmhlYXBbZV0sYz1lLGU8PD0xO2EuaGVhcFtjXT1kfWZ1bmN0aW9uIHMoYSxiLGMpe3ZhciBkLGYsaSxqLGs9MDtpZigwIT09YS5sYXN0X2xpdClkbyBkPWEucGVuZGluZ19idWZbYS5kX2J1ZisyKmtdPDw4fGEucGVuZGluZ19idWZbYS5kX2J1ZisyKmsrMV0sZj1hLnBlbmRpbmdfYnVmW2EubF9idWYra10saysrLDA9PT1kP2goYSxmLGIpOihpPWhiW2ZdLGgoYSxpK1ArMSxiKSxqPV9baV0sMCE9PWomJihmLT1pYltpXSxnKGEsZixqKSksZC0tLGk9ZShkKSxoKGEsaSxjKSxqPWFiW2ldLDAhPT1qJiYoZC09amJbaV0sZyhhLGQsaikpKTt3aGlsZShrPGEubGFzdF9saXQpO2goYSxYLGIpfWZ1bmN0aW9uIHQoYSxiKXt2YXIgYyxkLGUsZj1iLmR5bl90cmVlLGc9Yi5zdGF0X2Rlc2Muc3RhdGljX3RyZWUsaD1iLnN0YXRfZGVzYy5oYXNfc3RyZWUsaT1iLnN0YXRfZGVzYy5lbGVtcyxqPS0xO2ZvcihhLmhlYXBfbGVuPTAsYS5oZWFwX21heD1ULGM9MDtpPmM7YysrKTAhPT1mWzIqY10/KGEuaGVhcFsrK2EuaGVhcF9sZW5dPWo9YyxhLmRlcHRoW2NdPTApOmZbMipjKzFdPTA7Zm9yKDthLmhlYXBfbGVuPDI7KWU9YS5oZWFwWysrYS5oZWFwX2xlbl09Mj5qPysrajowLGZbMiplXT0xLGEuZGVwdGhbZV09MCxhLm9wdF9sZW4tLSxoJiYoYS5zdGF0aWNfbGVuLT1nWzIqZSsxXSk7Zm9yKGIubWF4X2NvZGU9aixjPWEuaGVhcF9sZW4+PjE7Yz49MTtjLS0pcihhLGYsYyk7ZT1pO2RvIGM9YS5oZWFwWzFdLGEuaGVhcFsxXT1hLmhlYXBbYS5oZWFwX2xlbi0tXSxyKGEsZiwxKSxkPWEuaGVhcFsxXSxhLmhlYXBbLS1hLmhlYXBfbWF4XT1jLGEuaGVhcFstLWEuaGVhcF9tYXhdPWQsZlsyKmVdPWZbMipjXStmWzIqZF0sYS5kZXB0aFtlXT0oYS5kZXB0aFtjXT49YS5kZXB0aFtkXT9hLmRlcHRoW2NdOmEuZGVwdGhbZF0pKzEsZlsyKmMrMV09ZlsyKmQrMV09ZSxhLmhlYXBbMV09ZSsrLHIoYSxmLDEpO3doaWxlKGEuaGVhcF9sZW4+PTIpO2EuaGVhcFstLWEuaGVhcF9tYXhdPWEuaGVhcFsxXSxrKGEsYiksbChmLGosYS5ibF9jb3VudCl9ZnVuY3Rpb24gdShhLGIsYyl7dmFyIGQsZSxmPS0xLGc9YlsxXSxoPTAsaT03LGo9NDtmb3IoMD09PWcmJihpPTEzOCxqPTMpLGJbMiooYysxKSsxXT02NTUzNSxkPTA7Yz49ZDtkKyspZT1nLGc9YlsyKihkKzEpKzFdLCsraDxpJiZlPT09Z3x8KGo+aD9hLmJsX3RyZWVbMiplXSs9aDowIT09ZT8oZSE9PWYmJmEuYmxfdHJlZVsyKmVdKyssYS5ibF90cmVlWzIqWV0rKyk6MTA+PWg/YS5ibF90cmVlWzIqWl0rKzphLmJsX3RyZWVbMiokXSsrLGg9MCxmPWUsMD09PWc/KGk9MTM4LGo9Myk6ZT09PWc/KGk9NixqPTMpOihpPTcsaj00KSl9ZnVuY3Rpb24gdihhLGIsYyl7dmFyIGQsZSxmPS0xLGk9YlsxXSxqPTAsaz03LGw9NDtmb3IoMD09PWkmJihrPTEzOCxsPTMpLGQ9MDtjPj1kO2QrKylpZihlPWksaT1iWzIqKGQrMSkrMV0sISgrK2o8ayYmZT09PWkpKXtpZihsPmope2RvIGgoYSxlLGEuYmxfdHJlZSk7d2hpbGUoMCE9PS0tail9ZWxzZSAwIT09ZT8oZSE9PWYmJihoKGEsZSxhLmJsX3RyZWUpLGotLSksaChhLFksYS5ibF90cmVlKSxnKGEsai0zLDIpKToxMD49aj8oaChhLFosYS5ibF90cmVlKSxnKGEsai0zLDMpKTooaChhLCQsYS5ibF90cmVlKSxnKGEsai0xMSw3KSk7aj0wLGY9ZSwwPT09aT8oaz0xMzgsbD0zKTplPT09aT8oaz02LGw9Myk6KGs9NyxsPTQpfX1mdW5jdGlvbiB3KGEpe3ZhciBiO2Zvcih1KGEsYS5keW5fbHRyZWUsYS5sX2Rlc2MubWF4X2NvZGUpLHUoYSxhLmR5bl9kdHJlZSxhLmRfZGVzYy5tYXhfY29kZSksdChhLGEuYmxfZGVzYyksYj1TLTE7Yj49MyYmMD09PWEuYmxfdHJlZVsyKmNiW2JdKzFdO2ItLSk7cmV0dXJuIGEub3B0X2xlbis9MyooYisxKSs1KzUrNCxifWZ1bmN0aW9uIHgoYSxiLGMsZCl7dmFyIGU7Zm9yKGcoYSxiLTI1Nyw1KSxnKGEsYy0xLDUpLGcoYSxkLTQsNCksZT0wO2Q+ZTtlKyspZyhhLGEuYmxfdHJlZVsyKmNiW2VdKzFdLDMpO3YoYSxhLmR5bl9sdHJlZSxiLTEpLHYoYSxhLmR5bl9kdHJlZSxjLTEpfWZ1bmN0aW9uIHkoYSl7dmFyIGIsYz00MDkzNjI0NDQ3O2ZvcihiPTA7MzE+PWI7YisrLGM+Pj49MSlpZigxJmMmJjAhPT1hLmR5bl9sdHJlZVsyKmJdKXJldHVybiBHO2lmKDAhPT1hLmR5bl9sdHJlZVsxOF18fDAhPT1hLmR5bl9sdHJlZVsyMF18fDAhPT1hLmR5bl9sdHJlZVsyNl0pcmV0dXJuIEg7Zm9yKGI9MzI7UD5iO2IrKylpZigwIT09YS5keW5fbHRyZWVbMipiXSlyZXR1cm4gSDtyZXR1cm4gR31mdW5jdGlvbiB6KGEpe3BifHwobSgpLHBiPSEwKSxhLmxfZGVzYz1uZXcgb2IoYS5keW5fbHRyZWUsa2IpLGEuZF9kZXNjPW5ldyBvYihhLmR5bl9kdHJlZSxsYiksYS5ibF9kZXNjPW5ldyBvYihhLmJsX3RyZWUsbWIpLGEuYmlfYnVmPTAsYS5iaV92YWxpZD0wLG4oYSl9ZnVuY3Rpb24gQShhLGIsYyxkKXtnKGEsKEo8PDEpKyhkPzE6MCksMykscChhLGIsYywhMCl9ZnVuY3Rpb24gQihhKXtnKGEsSzw8MSwzKSxoKGEsWCxlYiksaihhKX1mdW5jdGlvbiBDKGEsYixjLGQpe3ZhciBlLGYsaD0wO2EubGV2ZWw+MD8oYS5zdHJtLmRhdGFfdHlwZT09PUkmJihhLnN0cm0uZGF0YV90eXBlPXkoYSkpLHQoYSxhLmxfZGVzYyksdChhLGEuZF9kZXNjKSxoPXcoYSksZT1hLm9wdF9sZW4rMys3Pj4+MyxmPWEuc3RhdGljX2xlbiszKzc+Pj4zLGU+PWYmJihlPWYpKTplPWY9Yys1LGU+PWMrNCYmLTEhPT1iP0EoYSxiLGMsZCk6YS5zdHJhdGVneT09PUZ8fGY9PT1lPyhnKGEsKEs8PDEpKyhkPzE6MCksMykscyhhLGViLGZiKSk6KGcoYSwoTDw8MSkrKGQ/MTowKSwzKSx4KGEsYS5sX2Rlc2MubWF4X2NvZGUrMSxhLmRfZGVzYy5tYXhfY29kZSsxLGgrMSkscyhhLGEuZHluX2x0cmVlLGEuZHluX2R0cmVlKSksbihhKSxkJiZvKGEpfWZ1bmN0aW9uIEQoYSxiLGMpe3JldHVybiBhLnBlbmRpbmdfYnVmW2EuZF9idWYrMiphLmxhc3RfbGl0XT1iPj4+OCYyNTUsYS5wZW5kaW5nX2J1ZlthLmRfYnVmKzIqYS5sYXN0X2xpdCsxXT0yNTUmYixhLnBlbmRpbmdfYnVmW2EubF9idWYrYS5sYXN0X2xpdF09MjU1JmMsYS5sYXN0X2xpdCsrLDA9PT1iP2EuZHluX2x0cmVlWzIqY10rKzooYS5tYXRjaGVzKyssYi0tLGEuZHluX2x0cmVlWzIqKGhiW2NdK1ArMSldKyssYS5keW5fZHRyZWVbMiplKGIpXSsrKSxhLmxhc3RfbGl0PT09YS5saXRfYnVmc2l6ZS0xfXZhciBFPWEoIi4uL3V0aWxzL2NvbW1vbiIpLEY9NCxHPTAsSD0xLEk9MixKPTAsSz0xLEw9MixNPTMsTj0yNTgsTz0yOSxQPTI1NixRPVArMStPLFI9MzAsUz0xOSxUPTIqUSsxLFU9MTUsVj0xNixXPTcsWD0yNTYsWT0xNixaPTE3LCQ9MTgsXz1bMCwwLDAsMCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSxhYj1bMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM10sYmI9WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddLGNiPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSxkYj01MTIsZWI9bmV3IEFycmF5KDIqKFErMikpO2QoZWIpO3ZhciBmYj1uZXcgQXJyYXkoMipSKTtkKGZiKTt2YXIgZ2I9bmV3IEFycmF5KGRiKTtkKGdiKTt2YXIgaGI9bmV3IEFycmF5KE4tTSsxKTtkKGhiKTt2YXIgaWI9bmV3IEFycmF5KE8pO2QoaWIpO3ZhciBqYj1uZXcgQXJyYXkoUik7ZChqYik7dmFyIGtiLGxiLG1iLG5iPWZ1bmN0aW9uKGEsYixjLGQsZSl7dGhpcy5zdGF0aWNfdHJlZT1hLHRoaXMuZXh0cmFfYml0cz1iLHRoaXMuZXh0cmFfYmFzZT1jLHRoaXMuZWxlbXM9ZCx0aGlzLm1heF9sZW5ndGg9ZSx0aGlzLmhhc19zdHJlZT1hJiZhLmxlbmd0aH0sb2I9ZnVuY3Rpb24oYSxiKXt0aGlzLmR5bl90cmVlPWEsdGhpcy5tYXhfY29kZT0wLHRoaXMuc3RhdF9kZXNjPWJ9LHBiPSExO2MuX3RyX2luaXQ9eixjLl90cl9zdG9yZWRfYmxvY2s9QSxjLl90cl9mbHVzaF9ibG9jaz1DLGMuX3RyX3RhbGx5PUQsYy5fdHJfYWxpZ249Qn0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzk6W2Z1bmN0aW9uKGEsYil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGMoKXt0aGlzLmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhpcy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxlcj0wfWIuZXhwb3J0cz1jfSx7fV19LHt9LFs5XSkoOSl9KTs="></script>
|
||
<script src="data:application/javascript;base64,LyohIHBkZm1ha2UgdjAuMS4zNiwgQGxpY2Vuc2UgTUlULCBAbGluayBodHRwOi8vcGRmbWFrZS5vcmcgKi8KKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHsKCWlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0JykKCQltb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTsKCWVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKQoJCWRlZmluZShbXSwgZmFjdG9yeSk7CgllbHNlIHsKCQl2YXIgYSA9IGZhY3RvcnkoKTsKCQlmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07Cgl9Cn0pKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyA/IHNlbGYgOiB0aGlzLCBmdW5jdGlvbigpIHsKcmV0dXJuIC8qKioqKiovIChmdW5jdGlvbihtb2R1bGVzKSB7IC8vIHdlYnBhY2tCb290c3RyYXAKLyoqKioqKi8gCS8vIFRoZSBtb2R1bGUgY2FjaGUKLyoqKioqKi8gCXZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307Ci8qKioqKiovCi8qKioqKiovIAkvLyBUaGUgcmVxdWlyZSBmdW5jdGlvbgovKioqKioqLyAJZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkgewovKioqKioqLwovKioqKioqLyAJCS8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZQovKioqKioqLyAJCWlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKSB7Ci8qKioqKiovIAkJCXJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzOwovKioqKioqLyAJCX0KLyoqKioqKi8gCQkvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKQovKioqKioqLyAJCXZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHsKLyoqKioqKi8gCQkJaTogbW9kdWxlSWQsCi8qKioqKiovIAkJCWw6IGZhbHNlLAovKioqKioqLyAJCQlleHBvcnRzOiB7fQovKioqKioqLyAJCX07Ci8qKioqKiovCi8qKioqKiovIAkJLy8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uCi8qKioqKiovIAkJbW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7Ci8qKioqKiovCi8qKioqKiovIAkJLy8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZAovKioqKioqLyAJCW1vZHVsZS5sID0gdHJ1ZTsKLyoqKioqKi8KLyoqKioqKi8gCQkvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZQovKioqKioqLyAJCXJldHVybiBtb2R1bGUuZXhwb3J0czsKLyoqKioqKi8gCX0KLyoqKioqKi8KLyoqKioqKi8KLyoqKioqKi8gCS8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pCi8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzOwovKioqKioqLwovKioqKioqLyAJLy8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGUKLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7Ci8qKioqKiovCi8qKioqKiovIAkvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9uIGZvciBoYXJtb255IGV4cG9ydHMKLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18uZCA9IGZ1bmN0aW9uKGV4cG9ydHMsIG5hbWUsIGdldHRlcikgewovKioqKioqLyAJCWlmKCFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywgbmFtZSkpIHsKLyoqKioqKi8gCQkJT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIG5hbWUsIHsKLyoqKioqKi8gCQkJCWNvbmZpZ3VyYWJsZTogZmFsc2UsCi8qKioqKiovIAkJCQllbnVtZXJhYmxlOiB0cnVlLAovKioqKioqLyAJCQkJZ2V0OiBnZXR0ZXIKLyoqKioqKi8gCQkJfSk7Ci8qKioqKiovIAkJfQovKioqKioqLyAJfTsKLyoqKioqKi8KLyoqKioqKi8gCS8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzCi8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHsKLyoqKioqKi8gCQl2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID8KLyoqKioqKi8gCQkJZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDoKLyoqKioqKi8gCQkJZnVuY3Rpb24gZ2V0TW9kdWxlRXhwb3J0cygpIHsgcmV0dXJuIG1vZHVsZTsgfTsKLyoqKioqKi8gCQlfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7Ci8qKioqKiovIAkJcmV0dXJuIGdldHRlcjsKLyoqKioqKi8gCX07Ci8qKioqKiovCi8qKioqKiovIAkvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwKLyoqKioqKi8gCV9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTsKLyoqKioqKi8KLyoqKioqKi8gCS8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fCi8qKioqKiovIAlfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSAiIjsKLyoqKioqKi8KLyoqKioqKi8gCS8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0cwovKioqKioqLyAJcmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gMTIyKTsKLyoqKioqKi8gfSkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLyoqKioqKi8gKFsKLyogMCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKZnVuY3Rpb24gaXNTdHJpbmcodmFyaWFibGUpIHsKCXJldHVybiB0eXBlb2YgdmFyaWFibGUgPT09ICdzdHJpbmcnIHx8IHZhcmlhYmxlIGluc3RhbmNlb2YgU3RyaW5nOwp9CgpmdW5jdGlvbiBpc051bWJlcih2YXJpYWJsZSkgewoJcmV0dXJuIHR5cGVvZiB2YXJpYWJsZSA9PT0gJ251bWJlcicgfHwgdmFyaWFibGUgaW5zdGFuY2VvZiBOdW1iZXI7Cn0KCmZ1bmN0aW9uIGlzQm9vbGVhbih2YXJpYWJsZSkgewoJcmV0dXJuIHR5cGVvZiB2YXJpYWJsZSA9PT0gJ2Jvb2xlYW4nOwp9CgpmdW5jdGlvbiBpc0FycmF5KHZhcmlhYmxlKSB7CglyZXR1cm4gQXJyYXkuaXNBcnJheSh2YXJpYWJsZSk7Cn0KCmZ1bmN0aW9uIGlzRnVuY3Rpb24odmFyaWFibGUpIHsKCXJldHVybiB0eXBlb2YgdmFyaWFibGUgPT09ICdmdW5jdGlvbic7Cn0KCmZ1bmN0aW9uIGlzT2JqZWN0KHZhcmlhYmxlKSB7CglyZXR1cm4gdmFyaWFibGUgIT09IG51bGwgJiYgdHlwZW9mIHZhcmlhYmxlID09PSAnb2JqZWN0JzsKfQoKZnVuY3Rpb24gaXNOdWxsKHZhcmlhYmxlKSB7CglyZXR1cm4gdmFyaWFibGUgPT09IG51bGw7Cn0KCmZ1bmN0aW9uIGlzVW5kZWZpbmVkKHZhcmlhYmxlKSB7CglyZXR1cm4gdmFyaWFibGUgPT09IHVuZGVmaW5lZDsKfQoKZnVuY3Rpb24gcGFjaygpIHsKCXZhciByZXN1bHQgPSB7fTsKCglmb3IgKHZhciBpID0gMCwgbCA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQl2YXIgb2JqID0gYXJndW1lbnRzW2ldOwoKCQlpZiAob2JqKSB7CgkJCWZvciAodmFyIGtleSBpbiBvYmopIHsKCQkJCWlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkgewoJCQkJCXJlc3VsdFtrZXldID0gb2JqW2tleV07CgkJCQl9CgkJCX0KCQl9Cgl9CgoJcmV0dXJuIHJlc3VsdDsKfQoKZnVuY3Rpb24gb2Zmc2V0VmVjdG9yKHZlY3RvciwgeCwgeSkgewoJc3dpdGNoICh2ZWN0b3IudHlwZSkgewoJCWNhc2UgJ2VsbGlwc2UnOgoJCWNhc2UgJ3JlY3QnOgoJCQl2ZWN0b3IueCArPSB4OwoJCQl2ZWN0b3IueSArPSB5OwoJCQlicmVhazsKCQljYXNlICdsaW5lJzoKCQkJdmVjdG9yLngxICs9IHg7CgkJCXZlY3Rvci54MiArPSB4OwoJCQl2ZWN0b3IueTEgKz0geTsKCQkJdmVjdG9yLnkyICs9IHk7CgkJCWJyZWFrOwoJCWNhc2UgJ3BvbHlsaW5lJzoKCQkJZm9yICh2YXIgaSA9IDAsIGwgPSB2ZWN0b3IucG9pbnRzLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCQkJdmVjdG9yLnBvaW50c1tpXS54ICs9IHg7CgkJCQl2ZWN0b3IucG9pbnRzW2ldLnkgKz0geTsKCQkJfQoJCQlicmVhazsKCX0KfQoKZnVuY3Rpb24gZm9udFN0cmluZ2lmeShrZXksIHZhbCkgewoJaWYgKGtleSA9PT0gJ2ZvbnQnKSB7CgkJcmV0dXJuICdmb250JzsKCX0KCXJldHVybiB2YWw7Cn0KCm1vZHVsZS5leHBvcnRzID0gewoJaXNTdHJpbmc6IGlzU3RyaW5nLAoJaXNOdW1iZXI6IGlzTnVtYmVyLAoJaXNCb29sZWFuOiBpc0Jvb2xlYW4sCglpc0FycmF5OiBpc0FycmF5LAoJaXNGdW5jdGlvbjogaXNGdW5jdGlvbiwKCWlzT2JqZWN0OiBpc09iamVjdCwKCWlzTnVsbDogaXNOdWxsLAoJaXNVbmRlZmluZWQ6IGlzVW5kZWZpbmVkLAoJcGFjazogcGFjaywKCWZvbnRTdHJpbmdpZnk6IGZvbnRTdHJpbmdpZnksCglvZmZzZXRWZWN0b3I6IG9mZnNldFZlY3Rvcgp9OwoKCi8qKiovIH0pLAovKiAxICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKGdsb2JhbCkgey8qIQogKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci4KICoKICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGZlcm9zc0BmZXJvc3Mub3JnPiA8aHR0cDovL2Zlcm9zcy5vcmc+CiAqIEBsaWNlbnNlICBNSVQKICovCi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvICovCgoKCnZhciBiYXNlNjQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyNCkKdmFyIGllZWU3NTQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyNSkKdmFyIGlzQXJyYXkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDc2KQoKZXhwb3J0cy5CdWZmZXIgPSBCdWZmZXIKZXhwb3J0cy5TbG93QnVmZmVyID0gU2xvd0J1ZmZlcgpleHBvcnRzLklOU1BFQ1RfTUFYX0JZVEVTID0gNTAKCi8qKgogKiBJZiBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgOgogKiAgID09PSB0cnVlICAgIFVzZSBVaW50OEFycmF5IGltcGxlbWVudGF0aW9uIChmYXN0ZXN0KQogKiAgID09PSBmYWxzZSAgIFVzZSBPYmplY3QgaW1wbGVtZW50YXRpb24gKG1vc3QgY29tcGF0aWJsZSwgZXZlbiBJRTYpCiAqCiAqIEJyb3dzZXJzIHRoYXQgc3VwcG9ydCB0eXBlZCBhcnJheXMgYXJlIElFIDEwKywgRmlyZWZveCA0KywgQ2hyb21lIDcrLCBTYWZhcmkgNS4xKywKICogT3BlcmEgMTEuNissIGlPUyA0LjIrLgogKgogKiBEdWUgdG8gdmFyaW91cyBicm93c2VyIGJ1Z3MsIHNvbWV0aW1lcyB0aGUgT2JqZWN0IGltcGxlbWVudGF0aW9uIHdpbGwgYmUgdXNlZCBldmVuCiAqIHdoZW4gdGhlIGJyb3dzZXIgc3VwcG9ydHMgdHlwZWQgYXJyYXlzLgogKgogKiBOb3RlOgogKgogKiAgIC0gRmlyZWZveCA0LTI5IGxhY2tzIHN1cHBvcnQgZm9yIGFkZGluZyBuZXcgcHJvcGVydGllcyB0byBgVWludDhBcnJheWAgaW5zdGFuY2VzLAogKiAgICAgU2VlOiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02OTU0MzguCiAqCiAqICAgLSBDaHJvbWUgOS0xMCBpcyBtaXNzaW5nIHRoZSBgVHlwZWRBcnJheS5wcm90b3R5cGUuc3ViYXJyYXlgIGZ1bmN0aW9uLgogKgogKiAgIC0gSUUxMCBoYXMgYSBicm9rZW4gYFR5cGVkQXJyYXkucHJvdG90eXBlLnN1YmFycmF5YCBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFycmF5cyBvZgogKiAgICAgaW5jb3JyZWN0IGxlbmd0aCBpbiBzb21lIHNpdHVhdGlvbnMuCgogKiBXZSBkZXRlY3QgdGhlc2UgYnVnZ3kgYnJvd3NlcnMgYW5kIHNldCBgQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlRgIHRvIGBmYWxzZWAgc28gdGhleQogKiBnZXQgdGhlIE9iamVjdCBpbXBsZW1lbnRhdGlvbiwgd2hpY2ggaXMgc2xvd2VyIGJ1dCBiZWhhdmVzIGNvcnJlY3RseS4KICovCkJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUID0gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlQgIT09IHVuZGVmaW5lZAogID8gZ2xvYmFsLlRZUEVEX0FSUkFZX1NVUFBPUlQKICA6IHR5cGVkQXJyYXlTdXBwb3J0KCkKCi8qCiAqIEV4cG9ydCBrTWF4TGVuZ3RoIGFmdGVyIHR5cGVkIGFycmF5IHN1cHBvcnQgaXMgZGV0ZXJtaW5lZC4KICovCmV4cG9ydHMua01heExlbmd0aCA9IGtNYXhMZW5ndGgoKQoKZnVuY3Rpb24gdHlwZWRBcnJheVN1cHBvcnQgKCkgewogIHRyeSB7CiAgICB2YXIgYXJyID0gbmV3IFVpbnQ4QXJyYXkoMSkKICAgIGFyci5fX3Byb3RvX18gPSB7X19wcm90b19fOiBVaW50OEFycmF5LnByb3RvdHlwZSwgZm9vOiBmdW5jdGlvbiAoKSB7IHJldHVybiA0MiB9fQogICAgcmV0dXJuIGFyci5mb28oKSA9PT0gNDIgJiYgLy8gdHlwZWQgYXJyYXkgaW5zdGFuY2VzIGNhbiBiZSBhdWdtZW50ZWQKICAgICAgICB0eXBlb2YgYXJyLnN1YmFycmF5ID09PSAnZnVuY3Rpb24nICYmIC8vIGNocm9tZSA5LTEwIGxhY2sgYHN1YmFycmF5YAogICAgICAgIGFyci5zdWJhcnJheSgxLCAxKS5ieXRlTGVuZ3RoID09PSAwIC8vIGllMTAgaGFzIGJyb2tlbiBgc3ViYXJyYXlgCiAgfSBjYXRjaCAoZSkgewogICAgcmV0dXJuIGZhbHNlCiAgfQp9CgpmdW5jdGlvbiBrTWF4TGVuZ3RoICgpIHsKICByZXR1cm4gQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQKICAgID8gMHg3ZmZmZmZmZgogICAgOiAweDNmZmZmZmZmCn0KCmZ1bmN0aW9uIGNyZWF0ZUJ1ZmZlciAodGhhdCwgbGVuZ3RoKSB7CiAgaWYgKGtNYXhMZW5ndGgoKSA8IGxlbmd0aCkgewogICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0ludmFsaWQgdHlwZWQgYXJyYXkgbGVuZ3RoJykKICB9CiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7CiAgICAvLyBSZXR1cm4gYW4gYXVnbWVudGVkIGBVaW50OEFycmF5YCBpbnN0YW5jZSwgZm9yIGJlc3QgcGVyZm9ybWFuY2UKICAgIHRoYXQgPSBuZXcgVWludDhBcnJheShsZW5ndGgpCiAgICB0aGF0Ll9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGUKICB9IGVsc2UgewogICAgLy8gRmFsbGJhY2s6IFJldHVybiBhbiBvYmplY3QgaW5zdGFuY2Ugb2YgdGhlIEJ1ZmZlciBjbGFzcwogICAgaWYgKHRoYXQgPT09IG51bGwpIHsKICAgICAgdGhhdCA9IG5ldyBCdWZmZXIobGVuZ3RoKQogICAgfQogICAgdGhhdC5sZW5ndGggPSBsZW5ndGgKICB9CgogIHJldHVybiB0aGF0Cn0KCi8qKgogKiBUaGUgQnVmZmVyIGNvbnN0cnVjdG9yIHJldHVybnMgaW5zdGFuY2VzIG9mIGBVaW50OEFycmF5YCB0aGF0IGhhdmUgdGhlaXIKICogcHJvdG90eXBlIGNoYW5nZWQgdG8gYEJ1ZmZlci5wcm90b3R5cGVgLiBGdXJ0aGVybW9yZSwgYEJ1ZmZlcmAgaXMgYSBzdWJjbGFzcyBvZgogKiBgVWludDhBcnJheWAsIHNvIHRoZSByZXR1cm5lZCBpbnN0YW5jZXMgd2lsbCBoYXZlIGFsbCB0aGUgbm9kZSBgQnVmZmVyYCBtZXRob2RzCiAqIGFuZCB0aGUgYFVpbnQ4QXJyYXlgIG1ldGhvZHMuIFNxdWFyZSBicmFja2V0IG5vdGF0aW9uIHdvcmtzIGFzIGV4cGVjdGVkIC0tIGl0CiAqIHJldHVybnMgYSBzaW5nbGUgb2N0ZXQuCiAqCiAqIFRoZSBgVWludDhBcnJheWAgcHJvdG90eXBlIHJlbWFpbnMgdW5tb2RpZmllZC4KICovCgpmdW5jdGlvbiBCdWZmZXIgKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7CiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJiAhKHRoaXMgaW5zdGFuY2VvZiBCdWZmZXIpKSB7CiAgICByZXR1cm4gbmV3IEJ1ZmZlcihhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkKICB9CgogIC8vIENvbW1vbiBjYXNlLgogIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykgewogICAgaWYgKHR5cGVvZiBlbmNvZGluZ09yT2Zmc2V0ID09PSAnc3RyaW5nJykgewogICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgJ0lmIGVuY29kaW5nIGlzIHNwZWNpZmllZCB0aGVuIHRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nJwogICAgICApCiAgICB9CiAgICByZXR1cm4gYWxsb2NVbnNhZmUodGhpcywgYXJnKQogIH0KICByZXR1cm4gZnJvbSh0aGlzLCBhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkKfQoKQnVmZmVyLnBvb2xTaXplID0gODE5MiAvLyBub3QgdXNlZCBieSB0aGlzIGltcGxlbWVudGF0aW9uCgovLyBUT0RPOiBMZWdhY3ksIG5vdCBuZWVkZWQgYW55bW9yZS4gUmVtb3ZlIGluIG5leHQgbWFqb3IgdmVyc2lvbi4KQnVmZmVyLl9hdWdtZW50ID0gZnVuY3Rpb24gKGFycikgewogIGFyci5fX3Byb3RvX18gPSBCdWZmZXIucHJvdG90eXBlCiAgcmV0dXJuIGFycgp9CgpmdW5jdGlvbiBmcm9tICh0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7CiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKQogIH0KCiAgaWYgKHR5cGVvZiBBcnJheUJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgewogICAgcmV0dXJuIGZyb21BcnJheUJ1ZmZlcih0aGF0LCB2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKQogIH0KCiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHsKICAgIHJldHVybiBmcm9tU3RyaW5nKHRoYXQsIHZhbHVlLCBlbmNvZGluZ09yT2Zmc2V0KQogIH0KCiAgcmV0dXJuIGZyb21PYmplY3QodGhhdCwgdmFsdWUpCn0KCi8qKgogKiBGdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0byBCdWZmZXIoYXJnLCBlbmNvZGluZykgYnV0IHRocm93cyBhIFR5cGVFcnJvcgogKiBpZiB2YWx1ZSBpcyBhIG51bWJlci4KICogQnVmZmVyLmZyb20oc3RyWywgZW5jb2RpbmddKQogKiBCdWZmZXIuZnJvbShhcnJheSkKICogQnVmZmVyLmZyb20oYnVmZmVyKQogKiBCdWZmZXIuZnJvbShhcnJheUJ1ZmZlclssIGJ5dGVPZmZzZXRbLCBsZW5ndGhdXSkKICoqLwpCdWZmZXIuZnJvbSA9IGZ1bmN0aW9uICh2YWx1ZSwgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKSB7CiAgcmV0dXJuIGZyb20obnVsbCwgdmFsdWUsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkKfQoKaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7CiAgQnVmZmVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBVaW50OEFycmF5LnByb3RvdHlwZQogIEJ1ZmZlci5fX3Byb3RvX18gPSBVaW50OEFycmF5CiAgaWYgKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC5zcGVjaWVzICYmCiAgICAgIEJ1ZmZlcltTeW1ib2wuc3BlY2llc10gPT09IEJ1ZmZlcikgewogICAgLy8gRml4IHN1YmFycmF5KCkgaW4gRVMyMDE2LiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyL3B1bGwvOTcKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShCdWZmZXIsIFN5bWJvbC5zcGVjaWVzLCB7CiAgICAgIHZhbHVlOiBudWxsLAogICAgICBjb25maWd1cmFibGU6IHRydWUKICAgIH0pCiAgfQp9CgpmdW5jdGlvbiBhc3NlcnRTaXplIChzaXplKSB7CiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKQogIH0gZWxzZSBpZiAoc2l6ZSA8IDApIHsKICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCcic2l6ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgbmVnYXRpdmUnKQogIH0KfQoKZnVuY3Rpb24gYWxsb2MgKHRoYXQsIHNpemUsIGZpbGwsIGVuY29kaW5nKSB7CiAgYXNzZXJ0U2l6ZShzaXplKQogIGlmIChzaXplIDw9IDApIHsKICAgIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgc2l6ZSkKICB9CiAgaWYgKGZpbGwgIT09IHVuZGVmaW5lZCkgewogICAgLy8gT25seSBwYXkgYXR0ZW50aW9uIHRvIGVuY29kaW5nIGlmIGl0J3MgYSBzdHJpbmcuIFRoaXMKICAgIC8vIHByZXZlbnRzIGFjY2lkZW50YWxseSBzZW5kaW5nIGluIGEgbnVtYmVyIHRoYXQgd291bGQKICAgIC8vIGJlIGludGVycHJldHRlZCBhcyBhIHN0YXJ0IG9mZnNldC4KICAgIHJldHVybiB0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnCiAgICAgID8gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpLmZpbGwoZmlsbCwgZW5jb2RpbmcpCiAgICAgIDogY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUpLmZpbGwoZmlsbCkKICB9CiAgcmV0dXJuIGNyZWF0ZUJ1ZmZlcih0aGF0LCBzaXplKQp9CgovKioKICogQ3JlYXRlcyBhIG5ldyBmaWxsZWQgQnVmZmVyIGluc3RhbmNlLgogKiBhbGxvYyhzaXplWywgZmlsbFssIGVuY29kaW5nXV0pCiAqKi8KQnVmZmVyLmFsbG9jID0gZnVuY3Rpb24gKHNpemUsIGZpbGwsIGVuY29kaW5nKSB7CiAgcmV0dXJuIGFsbG9jKG51bGwsIHNpemUsIGZpbGwsIGVuY29kaW5nKQp9CgpmdW5jdGlvbiBhbGxvY1Vuc2FmZSAodGhhdCwgc2l6ZSkgewogIGFzc2VydFNpemUoc2l6ZSkKICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIHNpemUgPCAwID8gMCA6IGNoZWNrZWQoc2l6ZSkgfCAwKQogIGlmICghQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgIHRoYXRbaV0gPSAwCiAgICB9CiAgfQogIHJldHVybiB0aGF0Cn0KCi8qKgogKiBFcXVpdmFsZW50IHRvIEJ1ZmZlcihudW0pLCBieSBkZWZhdWx0IGNyZWF0ZXMgYSBub24temVyby1maWxsZWQgQnVmZmVyIGluc3RhbmNlLgogKiAqLwpCdWZmZXIuYWxsb2NVbnNhZmUgPSBmdW5jdGlvbiAoc2l6ZSkgewogIHJldHVybiBhbGxvY1Vuc2FmZShudWxsLCBzaXplKQp9Ci8qKgogKiBFcXVpdmFsZW50IHRvIFNsb3dCdWZmZXIobnVtKSwgYnkgZGVmYXVsdCBjcmVhdGVzIGEgbm9uLXplcm8tZmlsbGVkIEJ1ZmZlciBpbnN0YW5jZS4KICovCkJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cgPSBmdW5jdGlvbiAoc2l6ZSkgewogIHJldHVybiBhbGxvY1Vuc2FmZShudWxsLCBzaXplKQp9CgpmdW5jdGlvbiBmcm9tU3RyaW5nICh0aGF0LCBzdHJpbmcsIGVuY29kaW5nKSB7CiAgaWYgKHR5cGVvZiBlbmNvZGluZyAhPT0gJ3N0cmluZycgfHwgZW5jb2RpbmcgPT09ICcnKSB7CiAgICBlbmNvZGluZyA9ICd1dGY4JwogIH0KCiAgaWYgKCFCdWZmZXIuaXNFbmNvZGluZyhlbmNvZGluZykpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJyJlbmNvZGluZyIgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBlbmNvZGluZycpCiAgfQoKICB2YXIgbGVuZ3RoID0gYnl0ZUxlbmd0aChzdHJpbmcsIGVuY29kaW5nKSB8IDAKICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbmd0aCkKCiAgdmFyIGFjdHVhbCA9IHRoYXQud3JpdGUoc3RyaW5nLCBlbmNvZGluZykKCiAgaWYgKGFjdHVhbCAhPT0gbGVuZ3RoKSB7CiAgICAvLyBXcml0aW5nIGEgaGV4IHN0cmluZywgZm9yIGV4YW1wbGUsIHRoYXQgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzIHdpbGwKICAgIC8vIGNhdXNlIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IGludmFsaWQgY2hhcmFjdGVyIHRvIGJlIGlnbm9yZWQuIChlLmcuCiAgICAvLyAnYWJ4eGNkJyB3aWxsIGJlIHRyZWF0ZWQgYXMgJ2FiJykKICAgIHRoYXQgPSB0aGF0LnNsaWNlKDAsIGFjdHVhbCkKICB9CgogIHJldHVybiB0aGF0Cn0KCmZ1bmN0aW9uIGZyb21BcnJheUxpa2UgKHRoYXQsIGFycmF5KSB7CiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aCA8IDAgPyAwIDogY2hlY2tlZChhcnJheS5sZW5ndGgpIHwgMAogIHRoYXQgPSBjcmVhdGVCdWZmZXIodGhhdCwgbGVuZ3RoKQogIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpICs9IDEpIHsKICAgIHRoYXRbaV0gPSBhcnJheVtpXSAmIDI1NQogIH0KICByZXR1cm4gdGhhdAp9CgpmdW5jdGlvbiBmcm9tQXJyYXlCdWZmZXIgKHRoYXQsIGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpIHsKICBhcnJheS5ieXRlTGVuZ3RoIC8vIHRoaXMgdGhyb3dzIGlmIGBhcnJheWAgaXMgbm90IGEgdmFsaWQgQXJyYXlCdWZmZXIKCiAgaWYgKGJ5dGVPZmZzZXQgPCAwIHx8IGFycmF5LmJ5dGVMZW5ndGggPCBieXRlT2Zmc2V0KSB7CiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignXCdvZmZzZXRcJyBpcyBvdXQgb2YgYm91bmRzJykKICB9CgogIGlmIChhcnJheS5ieXRlTGVuZ3RoIDwgYnl0ZU9mZnNldCArIChsZW5ndGggfHwgMCkpIHsKICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdcJ2xlbmd0aFwnIGlzIG91dCBvZiBib3VuZHMnKQogIH0KCiAgaWYgKGJ5dGVPZmZzZXQgPT09IHVuZGVmaW5lZCAmJiBsZW5ndGggPT09IHVuZGVmaW5lZCkgewogICAgYXJyYXkgPSBuZXcgVWludDhBcnJheShhcnJheSkKICB9IGVsc2UgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkKSB7CiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0KQogIH0gZWxzZSB7CiAgICBhcnJheSA9IG5ldyBVaW50OEFycmF5KGFycmF5LCBieXRlT2Zmc2V0LCBsZW5ndGgpCiAgfQoKICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHsKICAgIC8vIFJldHVybiBhbiBhdWdtZW50ZWQgYFVpbnQ4QXJyYXlgIGluc3RhbmNlLCBmb3IgYmVzdCBwZXJmb3JtYW5jZQogICAgdGhhdCA9IGFycmF5CiAgICB0aGF0Ll9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGUKICB9IGVsc2UgewogICAgLy8gRmFsbGJhY2s6IFJldHVybiBhbiBvYmplY3QgaW5zdGFuY2Ugb2YgdGhlIEJ1ZmZlciBjbGFzcwogICAgdGhhdCA9IGZyb21BcnJheUxpa2UodGhhdCwgYXJyYXkpCiAgfQogIHJldHVybiB0aGF0Cn0KCmZ1bmN0aW9uIGZyb21PYmplY3QgKHRoYXQsIG9iaikgewogIGlmIChCdWZmZXIuaXNCdWZmZXIob2JqKSkgewogICAgdmFyIGxlbiA9IGNoZWNrZWQob2JqLmxlbmd0aCkgfCAwCiAgICB0aGF0ID0gY3JlYXRlQnVmZmVyKHRoYXQsIGxlbikKCiAgICBpZiAodGhhdC5sZW5ndGggPT09IDApIHsKICAgICAgcmV0dXJuIHRoYXQKICAgIH0KCiAgICBvYmouY29weSh0aGF0LCAwLCAwLCBsZW4pCiAgICByZXR1cm4gdGhhdAogIH0KCiAgaWYgKG9iaikgewogICAgaWYgKCh0eXBlb2YgQXJyYXlCdWZmZXIgIT09ICd1bmRlZmluZWQnICYmCiAgICAgICAgb2JqLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB8fCAnbGVuZ3RoJyBpbiBvYmopIHsKICAgICAgaWYgKHR5cGVvZiBvYmoubGVuZ3RoICE9PSAnbnVtYmVyJyB8fCBpc25hbihvYmoubGVuZ3RoKSkgewogICAgICAgIHJldHVybiBjcmVhdGVCdWZmZXIodGhhdCwgMCkKICAgICAgfQogICAgICByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmopCiAgICB9CgogICAgaWYgKG9iai50eXBlID09PSAnQnVmZmVyJyAmJiBpc0FycmF5KG9iai5kYXRhKSkgewogICAgICByZXR1cm4gZnJvbUFycmF5TGlrZSh0aGF0LCBvYmouZGF0YSkKICAgIH0KICB9CgogIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBhcnJheS1saWtlIG9iamVjdC4nKQp9CgpmdW5jdGlvbiBjaGVja2VkIChsZW5ndGgpIHsKICAvLyBOb3RlOiBjYW5ub3QgdXNlIGBsZW5ndGggPCBrTWF4TGVuZ3RoKClgIGhlcmUgYmVjYXVzZSB0aGF0IGZhaWxzIHdoZW4KICAvLyBsZW5ndGggaXMgTmFOICh3aGljaCBpcyBvdGhlcndpc2UgY29lcmNlZCB0byB6ZXJvLikKICBpZiAobGVuZ3RoID49IGtNYXhMZW5ndGgoKSkgewogICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0F0dGVtcHQgdG8gYWxsb2NhdGUgQnVmZmVyIGxhcmdlciB0aGFuIG1heGltdW0gJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAnc2l6ZTogMHgnICsga01heExlbmd0aCgpLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnKQogIH0KICByZXR1cm4gbGVuZ3RoIHwgMAp9CgpmdW5jdGlvbiBTbG93QnVmZmVyIChsZW5ndGgpIHsKICBpZiAoK2xlbmd0aCAhPSBsZW5ndGgpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBlcWVxZXEKICAgIGxlbmd0aCA9IDAKICB9CiAgcmV0dXJuIEJ1ZmZlci5hbGxvYygrbGVuZ3RoKQp9CgpCdWZmZXIuaXNCdWZmZXIgPSBmdW5jdGlvbiBpc0J1ZmZlciAoYikgewogIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpCn0KCkJ1ZmZlci5jb21wYXJlID0gZnVuY3Rpb24gY29tcGFyZSAoYSwgYikgewogIGlmICghQnVmZmVyLmlzQnVmZmVyKGEpIHx8ICFCdWZmZXIuaXNCdWZmZXIoYikpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50cyBtdXN0IGJlIEJ1ZmZlcnMnKQogIH0KCiAgaWYgKGEgPT09IGIpIHJldHVybiAwCgogIHZhciB4ID0gYS5sZW5ndGgKICB2YXIgeSA9IGIubGVuZ3RoCgogIGZvciAodmFyIGkgPSAwLCBsZW4gPSBNYXRoLm1pbih4LCB5KTsgaSA8IGxlbjsgKytpKSB7CiAgICBpZiAoYVtpXSAhPT0gYltpXSkgewogICAgICB4ID0gYVtpXQogICAgICB5ID0gYltpXQogICAgICBicmVhawogICAgfQogIH0KCiAgaWYgKHggPCB5KSByZXR1cm4gLTEKICBpZiAoeSA8IHgpIHJldHVybiAxCiAgcmV0dXJuIDAKfQoKQnVmZmVyLmlzRW5jb2RpbmcgPSBmdW5jdGlvbiBpc0VuY29kaW5nIChlbmNvZGluZykgewogIHN3aXRjaCAoU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpKSB7CiAgICBjYXNlICdoZXgnOgogICAgY2FzZSAndXRmOCc6CiAgICBjYXNlICd1dGYtOCc6CiAgICBjYXNlICdhc2NpaSc6CiAgICBjYXNlICdsYXRpbjEnOgogICAgY2FzZSAnYmluYXJ5JzoKICAgIGNhc2UgJ2Jhc2U2NCc6CiAgICBjYXNlICd1Y3MyJzoKICAgIGNhc2UgJ3Vjcy0yJzoKICAgIGNhc2UgJ3V0ZjE2bGUnOgogICAgY2FzZSAndXRmLTE2bGUnOgogICAgICByZXR1cm4gdHJ1ZQogICAgZGVmYXVsdDoKICAgICAgcmV0dXJuIGZhbHNlCiAgfQp9CgpCdWZmZXIuY29uY2F0ID0gZnVuY3Rpb24gY29uY2F0IChsaXN0LCBsZW5ndGgpIHsKICBpZiAoIWlzQXJyYXkobGlzdCkpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKQogIH0KCiAgaWYgKGxpc3QubGVuZ3RoID09PSAwKSB7CiAgICByZXR1cm4gQnVmZmVyLmFsbG9jKDApCiAgfQoKICB2YXIgaQogIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCkgewogICAgbGVuZ3RoID0gMAogICAgZm9yIChpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyArK2kpIHsKICAgICAgbGVuZ3RoICs9IGxpc3RbaV0ubGVuZ3RoCiAgICB9CiAgfQoKICB2YXIgYnVmZmVyID0gQnVmZmVyLmFsbG9jVW5zYWZlKGxlbmd0aCkKICB2YXIgcG9zID0gMAogIGZvciAoaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7CiAgICB2YXIgYnVmID0gbGlzdFtpXQogICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkgewogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJykKICAgIH0KICAgIGJ1Zi5jb3B5KGJ1ZmZlciwgcG9zKQogICAgcG9zICs9IGJ1Zi5sZW5ndGgKICB9CiAgcmV0dXJuIGJ1ZmZlcgp9CgpmdW5jdGlvbiBieXRlTGVuZ3RoIChzdHJpbmcsIGVuY29kaW5nKSB7CiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihzdHJpbmcpKSB7CiAgICByZXR1cm4gc3RyaW5nLmxlbmd0aAogIH0KICBpZiAodHlwZW9mIEFycmF5QnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3ID09PSAnZnVuY3Rpb24nICYmCiAgICAgIChBcnJheUJ1ZmZlci5pc1ZpZXcoc3RyaW5nKSB8fCBzdHJpbmcgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHsKICAgIHJldHVybiBzdHJpbmcuYnl0ZUxlbmd0aAogIH0KICBpZiAodHlwZW9mIHN0cmluZyAhPT0gJ3N0cmluZycpIHsKICAgIHN0cmluZyA9ICcnICsgc3RyaW5nCiAgfQoKICB2YXIgbGVuID0gc3RyaW5nLmxlbmd0aAogIGlmIChsZW4gPT09IDApIHJldHVybiAwCgogIC8vIFVzZSBhIGZvciBsb29wIHRvIGF2b2lkIHJlY3Vyc2lvbgogIHZhciBsb3dlcmVkQ2FzZSA9IGZhbHNlCiAgZm9yICg7OykgewogICAgc3dpdGNoIChlbmNvZGluZykgewogICAgICBjYXNlICdhc2NpaSc6CiAgICAgIGNhc2UgJ2xhdGluMSc6CiAgICAgIGNhc2UgJ2JpbmFyeSc6CiAgICAgICAgcmV0dXJuIGxlbgogICAgICBjYXNlICd1dGY4JzoKICAgICAgY2FzZSAndXRmLTgnOgogICAgICBjYXNlIHVuZGVmaW5lZDoKICAgICAgICByZXR1cm4gdXRmOFRvQnl0ZXMoc3RyaW5nKS5sZW5ndGgKICAgICAgY2FzZSAndWNzMic6CiAgICAgIGNhc2UgJ3Vjcy0yJzoKICAgICAgY2FzZSAndXRmMTZsZSc6CiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzoKICAgICAgICByZXR1cm4gbGVuICogMgogICAgICBjYXNlICdoZXgnOgogICAgICAgIHJldHVybiBsZW4gPj4+IDEKICAgICAgY2FzZSAnYmFzZTY0JzoKICAgICAgICByZXR1cm4gYmFzZTY0VG9CeXRlcyhzdHJpbmcpLmxlbmd0aAogICAgICBkZWZhdWx0OgogICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgcmV0dXJuIHV0ZjhUb0J5dGVzKHN0cmluZykubGVuZ3RoIC8vIGFzc3VtZSB1dGY4CiAgICAgICAgZW5jb2RpbmcgPSAoJycgKyBlbmNvZGluZykudG9Mb3dlckNhc2UoKQogICAgICAgIGxvd2VyZWRDYXNlID0gdHJ1ZQogICAgfQogIH0KfQpCdWZmZXIuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGgKCmZ1bmN0aW9uIHNsb3dUb1N0cmluZyAoZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHsKICB2YXIgbG93ZXJlZENhc2UgPSBmYWxzZQoKICAvLyBObyBuZWVkIHRvIHZlcmlmeSB0aGF0ICJ0aGlzLmxlbmd0aCA8PSBNQVhfVUlOVDMyIiBzaW5jZSBpdCdzIGEgcmVhZC1vbmx5CiAgLy8gcHJvcGVydHkgb2YgYSB0eXBlZCBhcnJheS4KCiAgLy8gVGhpcyBiZWhhdmVzIG5laXRoZXIgbGlrZSBTdHJpbmcgbm9yIFVpbnQ4QXJyYXkgaW4gdGhhdCB3ZSBzZXQgc3RhcnQvZW5kCiAgLy8gdG8gdGhlaXIgdXBwZXIvbG93ZXIgYm91bmRzIGlmIHRoZSB2YWx1ZSBwYXNzZWQgaXMgb3V0IG9mIHJhbmdlLgogIC8vIHVuZGVmaW5lZCBpcyBoYW5kbGVkIHNwZWNpYWxseSBhcyBwZXIgRUNNQS0yNjIgNnRoIEVkaXRpb24sCiAgLy8gU2VjdGlvbiAxMy4zLjMuNyBSdW50aW1lIFNlbWFudGljczogS2V5ZWRCaW5kaW5nSW5pdGlhbGl6YXRpb24uCiAgaWYgKHN0YXJ0ID09PSB1bmRlZmluZWQgfHwgc3RhcnQgPCAwKSB7CiAgICBzdGFydCA9IDAKICB9CiAgLy8gUmV0dXJuIGVhcmx5IGlmIHN0YXJ0ID4gdGhpcy5sZW5ndGguIERvbmUgaGVyZSB0byBwcmV2ZW50IHBvdGVudGlhbCB1aW50MzIKICAvLyBjb2VyY2lvbiBmYWlsIGJlbG93LgogIGlmIChzdGFydCA+IHRoaXMubGVuZ3RoKSB7CiAgICByZXR1cm4gJycKICB9CgogIGlmIChlbmQgPT09IHVuZGVmaW5lZCB8fCBlbmQgPiB0aGlzLmxlbmd0aCkgewogICAgZW5kID0gdGhpcy5sZW5ndGgKICB9CgogIGlmIChlbmQgPD0gMCkgewogICAgcmV0dXJuICcnCiAgfQoKICAvLyBGb3JjZSBjb2Vyc2lvbiB0byB1aW50MzIuIFRoaXMgd2lsbCBhbHNvIGNvZXJjZSBmYWxzZXkvTmFOIHZhbHVlcyB0byAwLgogIGVuZCA+Pj49IDAKICBzdGFydCA+Pj49IDAKCiAgaWYgKGVuZCA8PSBzdGFydCkgewogICAgcmV0dXJuICcnCiAgfQoKICBpZiAoIWVuY29kaW5nKSBlbmNvZGluZyA9ICd1dGY4JwoKICB3aGlsZSAodHJ1ZSkgewogICAgc3dpdGNoIChlbmNvZGluZykgewogICAgICBjYXNlICdoZXgnOgogICAgICAgIHJldHVybiBoZXhTbGljZSh0aGlzLCBzdGFydCwgZW5kKQoKICAgICAgY2FzZSAndXRmOCc6CiAgICAgIGNhc2UgJ3V0Zi04JzoKICAgICAgICByZXR1cm4gdXRmOFNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpCgogICAgICBjYXNlICdhc2NpaSc6CiAgICAgICAgcmV0dXJuIGFzY2lpU2xpY2UodGhpcywgc3RhcnQsIGVuZCkKCiAgICAgIGNhc2UgJ2xhdGluMSc6CiAgICAgIGNhc2UgJ2JpbmFyeSc6CiAgICAgICAgcmV0dXJuIGxhdGluMVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpCgogICAgICBjYXNlICdiYXNlNjQnOgogICAgICAgIHJldHVybiBiYXNlNjRTbGljZSh0aGlzLCBzdGFydCwgZW5kKQoKICAgICAgY2FzZSAndWNzMic6CiAgICAgIGNhc2UgJ3Vjcy0yJzoKICAgICAgY2FzZSAndXRmMTZsZSc6CiAgICAgIGNhc2UgJ3V0Zi0xNmxlJzoKICAgICAgICByZXR1cm4gdXRmMTZsZVNsaWNlKHRoaXMsIHN0YXJ0LCBlbmQpCgogICAgICBkZWZhdWx0OgogICAgICAgIGlmIChsb3dlcmVkQ2FzZSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKQogICAgICAgIGVuY29kaW5nID0gKGVuY29kaW5nICsgJycpLnRvTG93ZXJDYXNlKCkKICAgICAgICBsb3dlcmVkQ2FzZSA9IHRydWUKICAgIH0KICB9Cn0KCi8vIFRoZSBwcm9wZXJ0eSBpcyB1c2VkIGJ5IGBCdWZmZXIuaXNCdWZmZXJgIGFuZCBgaXMtYnVmZmVyYCAoaW4gU2FmYXJpIDUtNykgdG8gZGV0ZWN0Ci8vIEJ1ZmZlciBpbnN0YW5jZXMuCkJ1ZmZlci5wcm90b3R5cGUuX2lzQnVmZmVyID0gdHJ1ZQoKZnVuY3Rpb24gc3dhcCAoYiwgbiwgbSkgewogIHZhciBpID0gYltuXQogIGJbbl0gPSBiW21dCiAgYlttXSA9IGkKfQoKQnVmZmVyLnByb3RvdHlwZS5zd2FwMTYgPSBmdW5jdGlvbiBzd2FwMTYgKCkgewogIHZhciBsZW4gPSB0aGlzLmxlbmd0aAogIGlmIChsZW4gJSAyICE9PSAwKSB7CiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMnKQogIH0KICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSAyKSB7CiAgICBzd2FwKHRoaXMsIGksIGkgKyAxKQogIH0KICByZXR1cm4gdGhpcwp9CgpCdWZmZXIucHJvdG90eXBlLnN3YXAzMiA9IGZ1bmN0aW9uIHN3YXAzMiAoKSB7CiAgdmFyIGxlbiA9IHRoaXMubGVuZ3RoCiAgaWYgKGxlbiAlIDQgIT09IDApIHsKICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cycpCiAgfQogIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpICs9IDQpIHsKICAgIHN3YXAodGhpcywgaSwgaSArIDMpCiAgICBzd2FwKHRoaXMsIGkgKyAxLCBpICsgMikKICB9CiAgcmV0dXJuIHRoaXMKfQoKQnVmZmVyLnByb3RvdHlwZS5zd2FwNjQgPSBmdW5jdGlvbiBzd2FwNjQgKCkgewogIHZhciBsZW4gPSB0aGlzLmxlbmd0aAogIGlmIChsZW4gJSA4ICE9PSAwKSB7CiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMnKQogIH0KICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbjsgaSArPSA4KSB7CiAgICBzd2FwKHRoaXMsIGksIGkgKyA3KQogICAgc3dhcCh0aGlzLCBpICsgMSwgaSArIDYpCiAgICBzd2FwKHRoaXMsIGkgKyAyLCBpICsgNSkKICAgIHN3YXAodGhpcywgaSArIDMsIGkgKyA0KQogIH0KICByZXR1cm4gdGhpcwp9CgpCdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcgKCkgewogIHZhciBsZW5ndGggPSB0aGlzLmxlbmd0aCB8IDAKICBpZiAobGVuZ3RoID09PSAwKSByZXR1cm4gJycKICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHV0ZjhTbGljZSh0aGlzLCAwLCBsZW5ndGgpCiAgcmV0dXJuIHNsb3dUb1N0cmluZy5hcHBseSh0aGlzLCBhcmd1bWVudHMpCn0KCkJ1ZmZlci5wcm90b3R5cGUuZXF1YWxzID0gZnVuY3Rpb24gZXF1YWxzIChiKSB7CiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYikpIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXInKQogIGlmICh0aGlzID09PSBiKSByZXR1cm4gdHJ1ZQogIHJldHVybiBCdWZmZXIuY29tcGFyZSh0aGlzLCBiKSA9PT0gMAp9CgpCdWZmZXIucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbiBpbnNwZWN0ICgpIHsKICB2YXIgc3RyID0gJycKICB2YXIgbWF4ID0gZXhwb3J0cy5JTlNQRUNUX01BWF9CWVRFUwogIGlmICh0aGlzLmxlbmd0aCA+IDApIHsKICAgIHN0ciA9IHRoaXMudG9TdHJpbmcoJ2hleCcsIDAsIG1heCkubWF0Y2goLy57Mn0vZykuam9pbignICcpCiAgICBpZiAodGhpcy5sZW5ndGggPiBtYXgpIHN0ciArPSAnIC4uLiAnCiAgfQogIHJldHVybiAnPEJ1ZmZlciAnICsgc3RyICsgJz4nCn0KCkJ1ZmZlci5wcm90b3R5cGUuY29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUgKHRhcmdldCwgc3RhcnQsIGVuZCwgdGhpc1N0YXJ0LCB0aGlzRW5kKSB7CiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodGFyZ2V0KSkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlcicpCiAgfQoKICBpZiAoc3RhcnQgPT09IHVuZGVmaW5lZCkgewogICAgc3RhcnQgPSAwCiAgfQogIGlmIChlbmQgPT09IHVuZGVmaW5lZCkgewogICAgZW5kID0gdGFyZ2V0ID8gdGFyZ2V0Lmxlbmd0aCA6IDAKICB9CiAgaWYgKHRoaXNTdGFydCA9PT0gdW5kZWZpbmVkKSB7CiAgICB0aGlzU3RhcnQgPSAwCiAgfQogIGlmICh0aGlzRW5kID09PSB1bmRlZmluZWQpIHsKICAgIHRoaXNFbmQgPSB0aGlzLmxlbmd0aAogIH0KCiAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPiB0YXJnZXQubGVuZ3RoIHx8IHRoaXNTdGFydCA8IDAgfHwgdGhpc0VuZCA+IHRoaXMubGVuZ3RoKSB7CiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignb3V0IG9mIHJhbmdlIGluZGV4JykKICB9CgogIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCAmJiBzdGFydCA+PSBlbmQpIHsKICAgIHJldHVybiAwCiAgfQogIGlmICh0aGlzU3RhcnQgPj0gdGhpc0VuZCkgewogICAgcmV0dXJuIC0xCiAgfQogIGlmIChzdGFydCA+PSBlbmQpIHsKICAgIHJldHVybiAxCiAgfQoKICBzdGFydCA+Pj49IDAKICBlbmQgPj4+PSAwCiAgdGhpc1N0YXJ0ID4+Pj0gMAogIHRoaXNFbmQgPj4+PSAwCgogIGlmICh0aGlzID09PSB0YXJnZXQpIHJldHVybiAwCgogIHZhciB4ID0gdGhpc0VuZCAtIHRoaXNTdGFydAogIHZhciB5ID0gZW5kIC0gc3RhcnQKICB2YXIgbGVuID0gTWF0aC5taW4oeCwgeSkKCiAgdmFyIHRoaXNDb3B5ID0gdGhpcy5zbGljZSh0aGlzU3RhcnQsIHRoaXNFbmQpCiAgdmFyIHRhcmdldENvcHkgPSB0YXJnZXQuc2xpY2Uoc3RhcnQsIGVuZCkKCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47ICsraSkgewogICAgaWYgKHRoaXNDb3B5W2ldICE9PSB0YXJnZXRDb3B5W2ldKSB7CiAgICAgIHggPSB0aGlzQ29weVtpXQogICAgICB5ID0gdGFyZ2V0Q29weVtpXQogICAgICBicmVhawogICAgfQogIH0KCiAgaWYgKHggPCB5KSByZXR1cm4gLTEKICBpZiAoeSA8IHgpIHJldHVybiAxCiAgcmV0dXJuIDAKfQoKLy8gRmluZHMgZWl0aGVyIHRoZSBmaXJzdCBpbmRleCBvZiBgdmFsYCBpbiBgYnVmZmVyYCBhdCBvZmZzZXQgPj0gYGJ5dGVPZmZzZXRgLAovLyBPUiB0aGUgbGFzdCBpbmRleCBvZiBgdmFsYCBpbiBgYnVmZmVyYCBhdCBvZmZzZXQgPD0gYGJ5dGVPZmZzZXRgLgovLwovLyBBcmd1bWVudHM6Ci8vIC0gYnVmZmVyIC0gYSBCdWZmZXIgdG8gc2VhcmNoCi8vIC0gdmFsIC0gYSBzdHJpbmcsIEJ1ZmZlciwgb3IgbnVtYmVyCi8vIC0gYnl0ZU9mZnNldCAtIGFuIGluZGV4IGludG8gYGJ1ZmZlcmA7IHdpbGwgYmUgY2xhbXBlZCB0byBhbiBpbnQzMgovLyAtIGVuY29kaW5nIC0gYW4gb3B0aW9uYWwgZW5jb2RpbmcsIHJlbGV2YW50IGlzIHZhbCBpcyBhIHN0cmluZwovLyAtIGRpciAtIHRydWUgZm9yIGluZGV4T2YsIGZhbHNlIGZvciBsYXN0SW5kZXhPZgpmdW5jdGlvbiBiaWRpcmVjdGlvbmFsSW5kZXhPZiAoYnVmZmVyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpIHsKICAvLyBFbXB0eSBidWZmZXIgbWVhbnMgbm8gbWF0Y2gKICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgcmV0dXJuIC0xCgogIC8vIE5vcm1hbGl6ZSBieXRlT2Zmc2V0CiAgaWYgKHR5cGVvZiBieXRlT2Zmc2V0ID09PSAnc3RyaW5nJykgewogICAgZW5jb2RpbmcgPSBieXRlT2Zmc2V0CiAgICBieXRlT2Zmc2V0ID0gMAogIH0gZWxzZSBpZiAoYnl0ZU9mZnNldCA+IDB4N2ZmZmZmZmYpIHsKICAgIGJ5dGVPZmZzZXQgPSAweDdmZmZmZmZmCiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgLTB4ODAwMDAwMDApIHsKICAgIGJ5dGVPZmZzZXQgPSAtMHg4MDAwMDAwMAogIH0KICBieXRlT2Zmc2V0ID0gK2J5dGVPZmZzZXQgIC8vIENvZXJjZSB0byBOdW1iZXIuCiAgaWYgKGlzTmFOKGJ5dGVPZmZzZXQpKSB7CiAgICAvLyBieXRlT2Zmc2V0OiBpdCBpdCdzIHVuZGVmaW5lZCwgbnVsbCwgTmFOLCAiZm9vIiwgZXRjLCBzZWFyY2ggd2hvbGUgYnVmZmVyCiAgICBieXRlT2Zmc2V0ID0gZGlyID8gMCA6IChidWZmZXIubGVuZ3RoIC0gMSkKICB9CgogIC8vIE5vcm1hbGl6ZSBieXRlT2Zmc2V0OiBuZWdhdGl2ZSBvZmZzZXRzIHN0YXJ0IGZyb20gdGhlIGVuZCBvZiB0aGUgYnVmZmVyCiAgaWYgKGJ5dGVPZmZzZXQgPCAwKSBieXRlT2Zmc2V0ID0gYnVmZmVyLmxlbmd0aCArIGJ5dGVPZmZzZXQKICBpZiAoYnl0ZU9mZnNldCA+PSBidWZmZXIubGVuZ3RoKSB7CiAgICBpZiAoZGlyKSByZXR1cm4gLTEKICAgIGVsc2UgYnl0ZU9mZnNldCA9IGJ1ZmZlci5sZW5ndGggLSAxCiAgfSBlbHNlIGlmIChieXRlT2Zmc2V0IDwgMCkgewogICAgaWYgKGRpcikgYnl0ZU9mZnNldCA9IDAKICAgIGVsc2UgcmV0dXJuIC0xCiAgfQoKICAvLyBOb3JtYWxpemUgdmFsCiAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7CiAgICB2YWwgPSBCdWZmZXIuZnJvbSh2YWwsIGVuY29kaW5nKQogIH0KCiAgLy8gRmluYWxseSwgc2VhcmNoIGVpdGhlciBpbmRleE9mIChpZiBkaXIgaXMgdHJ1ZSkgb3IgbGFzdEluZGV4T2YKICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHsKICAgIC8vIFNwZWNpYWwgY2FzZTogbG9va2luZyBmb3IgZW1wdHkgc3RyaW5nL2J1ZmZlciBhbHdheXMgZmFpbHMKICAgIGlmICh2YWwubGVuZ3RoID09PSAwKSB7CiAgICAgIHJldHVybiAtMQogICAgfQogICAgcmV0dXJuIGFycmF5SW5kZXhPZihidWZmZXIsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcikKICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7CiAgICB2YWwgPSB2YWwgJiAweEZGIC8vIFNlYXJjaCBmb3IgYSBieXRlIHZhbHVlIFswLTI1NV0KICAgIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCAmJgogICAgICAgIHR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mID09PSAnZnVuY3Rpb24nKSB7CiAgICAgIGlmIChkaXIpIHsKICAgICAgICByZXR1cm4gVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0KQogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKGJ1ZmZlciwgdmFsLCBieXRlT2Zmc2V0KQogICAgICB9CiAgICB9CiAgICByZXR1cm4gYXJyYXlJbmRleE9mKGJ1ZmZlciwgWyB2YWwgXSwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIGRpcikKICB9CgogIHRocm93IG5ldyBUeXBlRXJyb3IoJ3ZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlcicpCn0KCmZ1bmN0aW9uIGFycmF5SW5kZXhPZiAoYXJyLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBkaXIpIHsKICB2YXIgaW5kZXhTaXplID0gMQogIHZhciBhcnJMZW5ndGggPSBhcnIubGVuZ3RoCiAgdmFyIHZhbExlbmd0aCA9IHZhbC5sZW5ndGgKCiAgaWYgKGVuY29kaW5nICE9PSB1bmRlZmluZWQpIHsKICAgIGVuY29kaW5nID0gU3RyaW5nKGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpCiAgICBpZiAoZW5jb2RpbmcgPT09ICd1Y3MyJyB8fCBlbmNvZGluZyA9PT0gJ3Vjcy0yJyB8fAogICAgICAgIGVuY29kaW5nID09PSAndXRmMTZsZScgfHwgZW5jb2RpbmcgPT09ICd1dGYtMTZsZScpIHsKICAgICAgaWYgKGFyci5sZW5ndGggPCAyIHx8IHZhbC5sZW5ndGggPCAyKSB7CiAgICAgICAgcmV0dXJuIC0xCiAgICAgIH0KICAgICAgaW5kZXhTaXplID0gMgogICAgICBhcnJMZW5ndGggLz0gMgogICAgICB2YWxMZW5ndGggLz0gMgogICAgICBieXRlT2Zmc2V0IC89IDIKICAgIH0KICB9CgogIGZ1bmN0aW9uIHJlYWQgKGJ1ZiwgaSkgewogICAgaWYgKGluZGV4U2l6ZSA9PT0gMSkgewogICAgICByZXR1cm4gYnVmW2ldCiAgICB9IGVsc2UgewogICAgICByZXR1cm4gYnVmLnJlYWRVSW50MTZCRShpICogaW5kZXhTaXplKQogICAgfQogIH0KCiAgdmFyIGkKICBpZiAoZGlyKSB7CiAgICB2YXIgZm91bmRJbmRleCA9IC0xCiAgICBmb3IgKGkgPSBieXRlT2Zmc2V0OyBpIDwgYXJyTGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHJlYWQoYXJyLCBpKSA9PT0gcmVhZCh2YWwsIGZvdW5kSW5kZXggPT09IC0xID8gMCA6IGkgLSBmb3VuZEluZGV4KSkgewogICAgICAgIGlmIChmb3VuZEluZGV4ID09PSAtMSkgZm91bmRJbmRleCA9IGkKICAgICAgICBpZiAoaSAtIGZvdW5kSW5kZXggKyAxID09PSB2YWxMZW5ndGgpIHJldHVybiBmb3VuZEluZGV4ICogaW5kZXhTaXplCiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGZvdW5kSW5kZXggIT09IC0xKSBpIC09IGkgLSBmb3VuZEluZGV4CiAgICAgICAgZm91bmRJbmRleCA9IC0xCiAgICAgIH0KICAgIH0KICB9IGVsc2UgewogICAgaWYgKGJ5dGVPZmZzZXQgKyB2YWxMZW5ndGggPiBhcnJMZW5ndGgpIGJ5dGVPZmZzZXQgPSBhcnJMZW5ndGggLSB2YWxMZW5ndGgKICAgIGZvciAoaSA9IGJ5dGVPZmZzZXQ7IGkgPj0gMDsgaS0tKSB7CiAgICAgIHZhciBmb3VuZCA9IHRydWUKICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB2YWxMZW5ndGg7IGorKykgewogICAgICAgIGlmIChyZWFkKGFyciwgaSArIGopICE9PSByZWFkKHZhbCwgaikpIHsKICAgICAgICAgIGZvdW5kID0gZmFsc2UKICAgICAgICAgIGJyZWFrCiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChmb3VuZCkgcmV0dXJuIGkKICAgIH0KICB9CgogIHJldHVybiAtMQp9CgpCdWZmZXIucHJvdG90eXBlLmluY2x1ZGVzID0gZnVuY3Rpb24gaW5jbHVkZXMgKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpIHsKICByZXR1cm4gdGhpcy5pbmRleE9mKHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcpICE9PSAtMQp9CgpCdWZmZXIucHJvdG90eXBlLmluZGV4T2YgPSBmdW5jdGlvbiBpbmRleE9mICh2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nKSB7CiAgcmV0dXJuIGJpZGlyZWN0aW9uYWxJbmRleE9mKHRoaXMsIHZhbCwgYnl0ZU9mZnNldCwgZW5jb2RpbmcsIHRydWUpCn0KCkJ1ZmZlci5wcm90b3R5cGUubGFzdEluZGV4T2YgPSBmdW5jdGlvbiBsYXN0SW5kZXhPZiAodmFsLCBieXRlT2Zmc2V0LCBlbmNvZGluZykgewogIHJldHVybiBiaWRpcmVjdGlvbmFsSW5kZXhPZih0aGlzLCB2YWwsIGJ5dGVPZmZzZXQsIGVuY29kaW5nLCBmYWxzZSkKfQoKZnVuY3Rpb24gaGV4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkgewogIG9mZnNldCA9IE51bWJlcihvZmZzZXQpIHx8IDAKICB2YXIgcmVtYWluaW5nID0gYnVmLmxlbmd0aCAtIG9mZnNldAogIGlmICghbGVuZ3RoKSB7CiAgICBsZW5ndGggPSByZW1haW5pbmcKICB9IGVsc2UgewogICAgbGVuZ3RoID0gTnVtYmVyKGxlbmd0aCkKICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHsKICAgICAgbGVuZ3RoID0gcmVtYWluaW5nCiAgICB9CiAgfQoKICAvLyBtdXN0IGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGRpZ2l0cwogIHZhciBzdHJMZW4gPSBzdHJpbmcubGVuZ3RoCiAgaWYgKHN0ckxlbiAlIDIgIT09IDApIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgaGV4IHN0cmluZycpCgogIGlmIChsZW5ndGggPiBzdHJMZW4gLyAyKSB7CiAgICBsZW5ndGggPSBzdHJMZW4gLyAyCiAgfQogIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgIHZhciBwYXJzZWQgPSBwYXJzZUludChzdHJpbmcuc3Vic3RyKGkgKiAyLCAyKSwgMTYpCiAgICBpZiAoaXNOYU4ocGFyc2VkKSkgcmV0dXJuIGkKICAgIGJ1ZltvZmZzZXQgKyBpXSA9IHBhcnNlZAogIH0KICByZXR1cm4gaQp9CgpmdW5jdGlvbiB1dGY4V3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkgewogIHJldHVybiBibGl0QnVmZmVyKHV0ZjhUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpCn0KCmZ1bmN0aW9uIGFzY2lpV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkgewogIHJldHVybiBibGl0QnVmZmVyKGFzY2lpVG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKQp9CgpmdW5jdGlvbiBsYXRpbjFXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7CiAgcmV0dXJuIGFzY2lpV3JpdGUoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKQp9CgpmdW5jdGlvbiBiYXNlNjRXcml0ZSAoYnVmLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKSB7CiAgcmV0dXJuIGJsaXRCdWZmZXIoYmFzZTY0VG9CeXRlcyhzdHJpbmcpLCBidWYsIG9mZnNldCwgbGVuZ3RoKQp9CgpmdW5jdGlvbiB1Y3MyV3JpdGUgKGJ1Ziwgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkgewogIHJldHVybiBibGl0QnVmZmVyKHV0ZjE2bGVUb0J5dGVzKHN0cmluZywgYnVmLmxlbmd0aCAtIG9mZnNldCksIGJ1Ziwgb2Zmc2V0LCBsZW5ndGgpCn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiB3cml0ZSAoc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCwgZW5jb2RpbmcpIHsKICAvLyBCdWZmZXIjd3JpdGUoc3RyaW5nKQogIGlmIChvZmZzZXQgPT09IHVuZGVmaW5lZCkgewogICAgZW5jb2RpbmcgPSAndXRmOCcKICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoCiAgICBvZmZzZXQgPSAwCiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgZW5jb2RpbmcpCiAgfSBlbHNlIGlmIChsZW5ndGggPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb2Zmc2V0ID09PSAnc3RyaW5nJykgewogICAgZW5jb2RpbmcgPSBvZmZzZXQKICAgIGxlbmd0aCA9IHRoaXMubGVuZ3RoCiAgICBvZmZzZXQgPSAwCiAgLy8gQnVmZmVyI3dyaXRlKHN0cmluZywgb2Zmc2V0WywgbGVuZ3RoXVssIGVuY29kaW5nXSkKICB9IGVsc2UgaWYgKGlzRmluaXRlKG9mZnNldCkpIHsKICAgIG9mZnNldCA9IG9mZnNldCB8IDAKICAgIGlmIChpc0Zpbml0ZShsZW5ndGgpKSB7CiAgICAgIGxlbmd0aCA9IGxlbmd0aCB8IDAKICAgICAgaWYgKGVuY29kaW5nID09PSB1bmRlZmluZWQpIGVuY29kaW5nID0gJ3V0ZjgnCiAgICB9IGVsc2UgewogICAgICBlbmNvZGluZyA9IGxlbmd0aAogICAgICBsZW5ndGggPSB1bmRlZmluZWQKICAgIH0KICAvLyBsZWdhY3kgd3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0LCBsZW5ndGgpIC0gcmVtb3ZlIGluIHYwLjEzCiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgJ0J1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkJwogICAgKQogIH0KCiAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0CiAgaWYgKGxlbmd0aCA9PT0gdW5kZWZpbmVkIHx8IGxlbmd0aCA+IHJlbWFpbmluZykgbGVuZ3RoID0gcmVtYWluaW5nCgogIGlmICgoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7CiAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMnKQogIH0KCiAgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSAndXRmOCcKCiAgdmFyIGxvd2VyZWRDYXNlID0gZmFsc2UKICBmb3IgKDs7KSB7CiAgICBzd2l0Y2ggKGVuY29kaW5nKSB7CiAgICAgIGNhc2UgJ2hleCc6CiAgICAgICAgcmV0dXJuIGhleFdyaXRlKHRoaXMsIHN0cmluZywgb2Zmc2V0LCBsZW5ndGgpCgogICAgICBjYXNlICd1dGY4JzoKICAgICAgY2FzZSAndXRmLTgnOgogICAgICAgIHJldHVybiB1dGY4V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkKCiAgICAgIGNhc2UgJ2FzY2lpJzoKICAgICAgICByZXR1cm4gYXNjaWlXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKQoKICAgICAgY2FzZSAnbGF0aW4xJzoKICAgICAgY2FzZSAnYmluYXJ5JzoKICAgICAgICByZXR1cm4gbGF0aW4xV3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkKCiAgICAgIGNhc2UgJ2Jhc2U2NCc6CiAgICAgICAgLy8gV2FybmluZzogbWF4TGVuZ3RoIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgaW4gYmFzZTY0V3JpdGUKICAgICAgICByZXR1cm4gYmFzZTY0V3JpdGUodGhpcywgc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCkKCiAgICAgIGNhc2UgJ3VjczInOgogICAgICBjYXNlICd1Y3MtMic6CiAgICAgIGNhc2UgJ3V0ZjE2bGUnOgogICAgICBjYXNlICd1dGYtMTZsZSc6CiAgICAgICAgcmV0dXJuIHVjczJXcml0ZSh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoKQoKICAgICAgZGVmYXVsdDoKICAgICAgICBpZiAobG93ZXJlZENhc2UpIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmNvZGluZykKICAgICAgICBlbmNvZGluZyA9ICgnJyArIGVuY29kaW5nKS50b0xvd2VyQ2FzZSgpCiAgICAgICAgbG93ZXJlZENhc2UgPSB0cnVlCiAgICB9CiAgfQp9CgpCdWZmZXIucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uIHRvSlNPTiAoKSB7CiAgcmV0dXJuIHsKICAgIHR5cGU6ICdCdWZmZXInLAogICAgZGF0YTogQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyIHx8IHRoaXMsIDApCiAgfQp9CgpmdW5jdGlvbiBiYXNlNjRTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7CiAgaWYgKHN0YXJ0ID09PSAwICYmIGVuZCA9PT0gYnVmLmxlbmd0aCkgewogICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1ZikKICB9IGVsc2UgewogICAgcmV0dXJuIGJhc2U2NC5mcm9tQnl0ZUFycmF5KGJ1Zi5zbGljZShzdGFydCwgZW5kKSkKICB9Cn0KCmZ1bmN0aW9uIHV0ZjhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7CiAgZW5kID0gTWF0aC5taW4oYnVmLmxlbmd0aCwgZW5kKQogIHZhciByZXMgPSBbXQoKICB2YXIgaSA9IHN0YXJ0CiAgd2hpbGUgKGkgPCBlbmQpIHsKICAgIHZhciBmaXJzdEJ5dGUgPSBidWZbaV0KICAgIHZhciBjb2RlUG9pbnQgPSBudWxsCiAgICB2YXIgYnl0ZXNQZXJTZXF1ZW5jZSA9IChmaXJzdEJ5dGUgPiAweEVGKSA/IDQKICAgICAgOiAoZmlyc3RCeXRlID4gMHhERikgPyAzCiAgICAgIDogKGZpcnN0Qnl0ZSA+IDB4QkYpID8gMgogICAgICA6IDEKCiAgICBpZiAoaSArIGJ5dGVzUGVyU2VxdWVuY2UgPD0gZW5kKSB7CiAgICAgIHZhciBzZWNvbmRCeXRlLCB0aGlyZEJ5dGUsIGZvdXJ0aEJ5dGUsIHRlbXBDb2RlUG9pbnQKCiAgICAgIHN3aXRjaCAoYnl0ZXNQZXJTZXF1ZW5jZSkgewogICAgICAgIGNhc2UgMToKICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPCAweDgwKSB7CiAgICAgICAgICAgIGNvZGVQb2ludCA9IGZpcnN0Qnl0ZQogICAgICAgICAgfQogICAgICAgICAgYnJlYWsKICAgICAgICBjYXNlIDI6CiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXQogICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODApIHsKICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweDFGKSA8PCAweDYgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpCiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHg3RikgewogICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnQKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYnJlYWsKICAgICAgICBjYXNlIDM6CiAgICAgICAgICBzZWNvbmRCeXRlID0gYnVmW2kgKyAxXQogICAgICAgICAgdGhpcmRCeXRlID0gYnVmW2kgKyAyXQogICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwKSB7CiAgICAgICAgICAgIHRlbXBDb2RlUG9pbnQgPSAoZmlyc3RCeXRlICYgMHhGKSA8PCAweEMgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4NiB8ICh0aGlyZEJ5dGUgJiAweDNGKQogICAgICAgICAgICBpZiAodGVtcENvZGVQb2ludCA+IDB4N0ZGICYmICh0ZW1wQ29kZVBvaW50IDwgMHhEODAwIHx8IHRlbXBDb2RlUG9pbnQgPiAweERGRkYpKSB7CiAgICAgICAgICAgICAgY29kZVBvaW50ID0gdGVtcENvZGVQb2ludAogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBicmVhawogICAgICAgIGNhc2UgNDoKICAgICAgICAgIHNlY29uZEJ5dGUgPSBidWZbaSArIDFdCiAgICAgICAgICB0aGlyZEJ5dGUgPSBidWZbaSArIDJdCiAgICAgICAgICBmb3VydGhCeXRlID0gYnVmW2kgKyAzXQogICAgICAgICAgaWYgKChzZWNvbmRCeXRlICYgMHhDMCkgPT09IDB4ODAgJiYgKHRoaXJkQnl0ZSAmIDB4QzApID09PSAweDgwICYmIChmb3VydGhCeXRlICYgMHhDMCkgPT09IDB4ODApIHsKICAgICAgICAgICAgdGVtcENvZGVQb2ludCA9IChmaXJzdEJ5dGUgJiAweEYpIDw8IDB4MTIgfCAoc2Vjb25kQnl0ZSAmIDB4M0YpIDw8IDB4QyB8ICh0aGlyZEJ5dGUgJiAweDNGKSA8PCAweDYgfCAoZm91cnRoQnl0ZSAmIDB4M0YpCiAgICAgICAgICAgIGlmICh0ZW1wQ29kZVBvaW50ID4gMHhGRkZGICYmIHRlbXBDb2RlUG9pbnQgPCAweDExMDAwMCkgewogICAgICAgICAgICAgIGNvZGVQb2ludCA9IHRlbXBDb2RlUG9pbnQKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgaWYgKGNvZGVQb2ludCA9PT0gbnVsbCkgewogICAgICAvLyB3ZSBkaWQgbm90IGdlbmVyYXRlIGEgdmFsaWQgY29kZVBvaW50IHNvIGluc2VydCBhCiAgICAgIC8vIHJlcGxhY2VtZW50IGNoYXIgKFUrRkZGRCkgYW5kIGFkdmFuY2Ugb25seSAxIGJ5dGUKICAgICAgY29kZVBvaW50ID0gMHhGRkZECiAgICAgIGJ5dGVzUGVyU2VxdWVuY2UgPSAxCiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA+IDB4RkZGRikgewogICAgICAvLyBlbmNvZGUgdG8gdXRmMTYgKHN1cnJvZ2F0ZSBwYWlyIGRhbmNlKQogICAgICBjb2RlUG9pbnQgLT0gMHgxMDAwMAogICAgICByZXMucHVzaChjb2RlUG9pbnQgPj4+IDEwICYgMHgzRkYgfCAweEQ4MDApCiAgICAgIGNvZGVQb2ludCA9IDB4REMwMCB8IGNvZGVQb2ludCAmIDB4M0ZGCiAgICB9CgogICAgcmVzLnB1c2goY29kZVBvaW50KQogICAgaSArPSBieXRlc1BlclNlcXVlbmNlCiAgfQoKICByZXR1cm4gZGVjb2RlQ29kZVBvaW50c0FycmF5KHJlcykKfQoKLy8gQmFzZWQgb24gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMjI3NDcyNzIvNjgwNzQyLCB0aGUgYnJvd3NlciB3aXRoCi8vIHRoZSBsb3dlc3QgbGltaXQgaXMgQ2hyb21lLCB3aXRoIDB4MTAwMDAgYXJncy4KLy8gV2UgZ28gMSBtYWduaXR1ZGUgbGVzcywgZm9yIHNhZmV0eQp2YXIgTUFYX0FSR1VNRU5UU19MRU5HVEggPSAweDEwMDAKCmZ1bmN0aW9uIGRlY29kZUNvZGVQb2ludHNBcnJheSAoY29kZVBvaW50cykgewogIHZhciBsZW4gPSBjb2RlUG9pbnRzLmxlbmd0aAogIGlmIChsZW4gPD0gTUFYX0FSR1VNRU5UU19MRU5HVEgpIHsKICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZywgY29kZVBvaW50cykgLy8gYXZvaWQgZXh0cmEgc2xpY2UoKQogIH0KCiAgLy8gRGVjb2RlIGluIGNodW5rcyB0byBhdm9pZCAiY2FsbCBzdGFjayBzaXplIGV4Y2VlZGVkIi4KICB2YXIgcmVzID0gJycKICB2YXIgaSA9IDAKICB3aGlsZSAoaSA8IGxlbikgewogICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoCiAgICAgIFN0cmluZywKICAgICAgY29kZVBvaW50cy5zbGljZShpLCBpICs9IE1BWF9BUkdVTUVOVFNfTEVOR1RIKQogICAgKQogIH0KICByZXR1cm4gcmVzCn0KCmZ1bmN0aW9uIGFzY2lpU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkgewogIHZhciByZXQgPSAnJwogIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZCkKCiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHsKICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSAmIDB4N0YpCiAgfQogIHJldHVybiByZXQKfQoKZnVuY3Rpb24gbGF0aW4xU2xpY2UgKGJ1Ziwgc3RhcnQsIGVuZCkgewogIHZhciByZXQgPSAnJwogIGVuZCA9IE1hdGgubWluKGJ1Zi5sZW5ndGgsIGVuZCkKCiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHsKICAgIHJldCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGJ1ZltpXSkKICB9CiAgcmV0dXJuIHJldAp9CgpmdW5jdGlvbiBoZXhTbGljZSAoYnVmLCBzdGFydCwgZW5kKSB7CiAgdmFyIGxlbiA9IGJ1Zi5sZW5ndGgKCiAgaWYgKCFzdGFydCB8fCBzdGFydCA8IDApIHN0YXJ0ID0gMAogIGlmICghZW5kIHx8IGVuZCA8IDAgfHwgZW5kID4gbGVuKSBlbmQgPSBsZW4KCiAgdmFyIG91dCA9ICcnCiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyArK2kpIHsKICAgIG91dCArPSB0b0hleChidWZbaV0pCiAgfQogIHJldHVybiBvdXQKfQoKZnVuY3Rpb24gdXRmMTZsZVNsaWNlIChidWYsIHN0YXJ0LCBlbmQpIHsKICB2YXIgYnl0ZXMgPSBidWYuc2xpY2Uoc3RhcnQsIGVuZCkKICB2YXIgcmVzID0gJycKICBmb3IgKHZhciBpID0gMDsgaSA8IGJ5dGVzLmxlbmd0aDsgaSArPSAyKSB7CiAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSArIGJ5dGVzW2kgKyAxXSAqIDI1NikKICB9CiAgcmV0dXJuIHJlcwp9CgpCdWZmZXIucHJvdG90eXBlLnNsaWNlID0gZnVuY3Rpb24gc2xpY2UgKHN0YXJ0LCBlbmQpIHsKICB2YXIgbGVuID0gdGhpcy5sZW5ndGgKICBzdGFydCA9IH5+c3RhcnQKICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IGxlbiA6IH5+ZW5kCgogIGlmIChzdGFydCA8IDApIHsKICAgIHN0YXJ0ICs9IGxlbgogICAgaWYgKHN0YXJ0IDwgMCkgc3RhcnQgPSAwCiAgfSBlbHNlIGlmIChzdGFydCA+IGxlbikgewogICAgc3RhcnQgPSBsZW4KICB9CgogIGlmIChlbmQgPCAwKSB7CiAgICBlbmQgKz0gbGVuCiAgICBpZiAoZW5kIDwgMCkgZW5kID0gMAogIH0gZWxzZSBpZiAoZW5kID4gbGVuKSB7CiAgICBlbmQgPSBsZW4KICB9CgogIGlmIChlbmQgPCBzdGFydCkgZW5kID0gc3RhcnQKCiAgdmFyIG5ld0J1ZgogIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgewogICAgbmV3QnVmID0gdGhpcy5zdWJhcnJheShzdGFydCwgZW5kKQogICAgbmV3QnVmLl9fcHJvdG9fXyA9IEJ1ZmZlci5wcm90b3R5cGUKICB9IGVsc2UgewogICAgdmFyIHNsaWNlTGVuID0gZW5kIC0gc3RhcnQKICAgIG5ld0J1ZiA9IG5ldyBCdWZmZXIoc2xpY2VMZW4sIHVuZGVmaW5lZCkKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2xpY2VMZW47ICsraSkgewogICAgICBuZXdCdWZbaV0gPSB0aGlzW2kgKyBzdGFydF0KICAgIH0KICB9CgogIHJldHVybiBuZXdCdWYKfQoKLyoKICogTmVlZCB0byBtYWtlIHN1cmUgdGhhdCBidWZmZXIgaXNuJ3QgdHJ5aW5nIHRvIHdyaXRlIG91dCBvZiBib3VuZHMuCiAqLwpmdW5jdGlvbiBjaGVja09mZnNldCAob2Zmc2V0LCBleHQsIGxlbmd0aCkgewogIGlmICgob2Zmc2V0ICUgMSkgIT09IDAgfHwgb2Zmc2V0IDwgMCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ29mZnNldCBpcyBub3QgdWludCcpCiAgaWYgKG9mZnNldCArIGV4dCA+IGxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgnKQp9CgpCdWZmZXIucHJvdG90eXBlLnJlYWRVSW50TEUgPSBmdW5jdGlvbiByZWFkVUludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7CiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMAogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpCgogIHZhciB2YWwgPSB0aGlzW29mZnNldF0KICB2YXIgbXVsID0gMQogIHZhciBpID0gMAogIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7CiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bAogIH0KCiAgcmV0dXJuIHZhbAp9CgpCdWZmZXIucHJvdG90eXBlLnJlYWRVSW50QkUgPSBmdW5jdGlvbiByZWFkVUludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7CiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMAogIGlmICghbm9Bc3NlcnQpIHsKICAgIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpCiAgfQoKICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAtLWJ5dGVMZW5ndGhdCiAgdmFyIG11bCA9IDEKICB3aGlsZSAoYnl0ZUxlbmd0aCA+IDAgJiYgKG11bCAqPSAweDEwMCkpIHsKICAgIHZhbCArPSB0aGlzW29mZnNldCArIC0tYnl0ZUxlbmd0aF0gKiBtdWwKICB9CgogIHJldHVybiB2YWwKfQoKQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDggPSBmdW5jdGlvbiByZWFkVUludDggKG9mZnNldCwgbm9Bc3NlcnQpIHsKICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDEsIHRoaXMubGVuZ3RoKQogIHJldHVybiB0aGlzW29mZnNldF0KfQoKQnVmZmVyLnByb3RvdHlwZS5yZWFkVUludDE2TEUgPSBmdW5jdGlvbiByZWFkVUludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHsKICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKQogIHJldHVybiB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KQp9CgpCdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MTZCRSAob2Zmc2V0LCBub0Fzc2VydCkgewogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMiwgdGhpcy5sZW5ndGgpCiAgcmV0dXJuICh0aGlzW29mZnNldF0gPDwgOCkgfCB0aGlzW29mZnNldCArIDFdCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZFVJbnQzMkxFID0gZnVuY3Rpb24gcmVhZFVJbnQzMkxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA0LCB0aGlzLmxlbmd0aCkKCiAgcmV0dXJuICgodGhpc1tvZmZzZXRdKSB8CiAgICAgICh0aGlzW29mZnNldCArIDFdIDw8IDgpIHwKICAgICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgMTYpKSArCiAgICAgICh0aGlzW29mZnNldCArIDNdICogMHgxMDAwMDAwKQp9CgpCdWZmZXIucHJvdG90eXBlLnJlYWRVSW50MzJCRSA9IGZ1bmN0aW9uIHJlYWRVSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkgewogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpCgogIHJldHVybiAodGhpc1tvZmZzZXRdICogMHgxMDAwMDAwKSArCiAgICAoKHRoaXNbb2Zmc2V0ICsgMV0gPDwgMTYpIHwKICAgICh0aGlzW29mZnNldCArIDJdIDw8IDgpIHwKICAgIHRoaXNbb2Zmc2V0ICsgM10pCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZEludExFID0gZnVuY3Rpb24gcmVhZEludExFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7CiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMAogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpCgogIHZhciB2YWwgPSB0aGlzW29mZnNldF0KICB2YXIgbXVsID0gMQogIHZhciBpID0gMAogIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7CiAgICB2YWwgKz0gdGhpc1tvZmZzZXQgKyBpXSAqIG11bAogIH0KICBtdWwgKj0gMHg4MAoKICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKQoKICByZXR1cm4gdmFsCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZEludEJFID0gZnVuY3Rpb24gcmVhZEludEJFIChvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7CiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMAogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgYnl0ZUxlbmd0aCwgdGhpcy5sZW5ndGgpCgogIHZhciBpID0gYnl0ZUxlbmd0aAogIHZhciBtdWwgPSAxCiAgdmFyIHZhbCA9IHRoaXNbb2Zmc2V0ICsgLS1pXQogIHdoaWxlIChpID4gMCAmJiAobXVsICo9IDB4MTAwKSkgewogICAgdmFsICs9IHRoaXNbb2Zmc2V0ICsgLS1pXSAqIG11bAogIH0KICBtdWwgKj0gMHg4MAoKICBpZiAodmFsID49IG11bCkgdmFsIC09IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKQoKICByZXR1cm4gdmFsCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDggPSBmdW5jdGlvbiByZWFkSW50OCAob2Zmc2V0LCBub0Fzc2VydCkgewogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgMSwgdGhpcy5sZW5ndGgpCiAgaWYgKCEodGhpc1tvZmZzZXRdICYgMHg4MCkpIHJldHVybiAodGhpc1tvZmZzZXRdKQogIHJldHVybiAoKDB4ZmYgLSB0aGlzW29mZnNldF0gKyAxKSAqIC0xKQp9CgpCdWZmZXIucHJvdG90eXBlLnJlYWRJbnQxNkxFID0gZnVuY3Rpb24gcmVhZEludDE2TEUgKG9mZnNldCwgbm9Bc3NlcnQpIHsKICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDIsIHRoaXMubGVuZ3RoKQogIHZhciB2YWwgPSB0aGlzW29mZnNldF0gfCAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KQogIHJldHVybiAodmFsICYgMHg4MDAwKSA/IHZhbCB8IDB4RkZGRjAwMDAgOiB2YWwKfQoKQnVmZmVyLnByb3RvdHlwZS5yZWFkSW50MTZCRSA9IGZ1bmN0aW9uIHJlYWRJbnQxNkJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCAyLCB0aGlzLmxlbmd0aCkKICB2YXIgdmFsID0gdGhpc1tvZmZzZXQgKyAxXSB8ICh0aGlzW29mZnNldF0gPDwgOCkKICByZXR1cm4gKHZhbCAmIDB4ODAwMCkgPyB2YWwgfCAweEZGRkYwMDAwIDogdmFsCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyTEUgPSBmdW5jdGlvbiByZWFkSW50MzJMRSAob2Zmc2V0LCBub0Fzc2VydCkgewogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpCgogIHJldHVybiAodGhpc1tvZmZzZXRdKSB8CiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCA4KSB8CiAgICAodGhpc1tvZmZzZXQgKyAyXSA8PCAxNikgfAogICAgKHRoaXNbb2Zmc2V0ICsgM10gPDwgMjQpCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZEludDMyQkUgPSBmdW5jdGlvbiByZWFkSW50MzJCRSAob2Zmc2V0LCBub0Fzc2VydCkgewogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpCgogIHJldHVybiAodGhpc1tvZmZzZXRdIDw8IDI0KSB8CiAgICAodGhpc1tvZmZzZXQgKyAxXSA8PCAxNikgfAogICAgKHRoaXNbb2Zmc2V0ICsgMl0gPDwgOCkgfAogICAgKHRoaXNbb2Zmc2V0ICsgM10pCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZEZsb2F0TEUgPSBmdW5jdGlvbiByZWFkRmxvYXRMRSAob2Zmc2V0LCBub0Fzc2VydCkgewogIGlmICghbm9Bc3NlcnQpIGNoZWNrT2Zmc2V0KG9mZnNldCwgNCwgdGhpcy5sZW5ndGgpCiAgcmV0dXJuIGllZWU3NTQucmVhZCh0aGlzLCBvZmZzZXQsIHRydWUsIDIzLCA0KQp9CgpCdWZmZXIucHJvdG90eXBlLnJlYWRGbG9hdEJFID0gZnVuY3Rpb24gcmVhZEZsb2F0QkUgKG9mZnNldCwgbm9Bc3NlcnQpIHsKICBpZiAoIW5vQXNzZXJ0KSBjaGVja09mZnNldChvZmZzZXQsIDQsIHRoaXMubGVuZ3RoKQogIHJldHVybiBpZWVlNzU0LnJlYWQodGhpcywgb2Zmc2V0LCBmYWxzZSwgMjMsIDQpCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUxFID0gZnVuY3Rpb24gcmVhZERvdWJsZUxFIChvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aCkKICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgdHJ1ZSwgNTIsIDgpCn0KCkJ1ZmZlci5wcm90b3R5cGUucmVhZERvdWJsZUJFID0gZnVuY3Rpb24gcmVhZERvdWJsZUJFIChvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgaWYgKCFub0Fzc2VydCkgY2hlY2tPZmZzZXQob2Zmc2V0LCA4LCB0aGlzLmxlbmd0aCkKICByZXR1cm4gaWVlZTc1NC5yZWFkKHRoaXMsIG9mZnNldCwgZmFsc2UsIDUyLCA4KQp9CgpmdW5jdGlvbiBjaGVja0ludCAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBleHQsIG1heCwgbWluKSB7CiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZmZlciIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpCiAgaWYgKHZhbHVlID4gbWF4IHx8IHZhbHVlIDwgbWluKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignInZhbHVlIiBhcmd1bWVudCBpcyBvdXQgb2YgYm91bmRzJykKICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpCn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50TEUgPSBmdW5jdGlvbiB3cml0ZVVJbnRMRSAodmFsdWUsIG9mZnNldCwgYnl0ZUxlbmd0aCwgbm9Bc3NlcnQpIHsKICB2YWx1ZSA9ICt2YWx1ZQogIG9mZnNldCA9IG9mZnNldCB8IDAKICBieXRlTGVuZ3RoID0gYnl0ZUxlbmd0aCB8IDAKICBpZiAoIW5vQXNzZXJ0KSB7CiAgICB2YXIgbWF4Qnl0ZXMgPSBNYXRoLnBvdygyLCA4ICogYnl0ZUxlbmd0aCkgLSAxCiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBtYXhCeXRlcywgMCkKICB9CgogIHZhciBtdWwgPSAxCiAgdmFyIGkgPSAwCiAgdGhpc1tvZmZzZXRdID0gdmFsdWUgJiAweEZGCiAgd2hpbGUgKCsraSA8IGJ5dGVMZW5ndGggJiYgKG11bCAqPSAweDEwMCkpIHsKICAgIHRoaXNbb2Zmc2V0ICsgaV0gPSAodmFsdWUgLyBtdWwpICYgMHhGRgogIH0KCiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGgKfQoKQnVmZmVyLnByb3RvdHlwZS53cml0ZVVJbnRCRSA9IGZ1bmN0aW9uIHdyaXRlVUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkgewogIHZhbHVlID0gK3ZhbHVlCiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoIHwgMAogIGlmICghbm9Bc3NlcnQpIHsKICAgIHZhciBtYXhCeXRlcyA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoKSAtIDEKICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG1heEJ5dGVzLCAwKQogIH0KCiAgdmFyIGkgPSBieXRlTGVuZ3RoIC0gMQogIHZhciBtdWwgPSAxCiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRgogIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkgewogICAgdGhpc1tvZmZzZXQgKyBpXSA9ICh2YWx1ZSAvIG11bCkgJiAweEZGCiAgfQoKICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aAp9CgpCdWZmZXIucHJvdG90eXBlLndyaXRlVUludDggPSBmdW5jdGlvbiB3cml0ZVVJbnQ4ICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkgewogIHZhbHVlID0gK3ZhbHVlCiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDEsIDB4ZmYsIDApCiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKQogIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpCiAgcmV0dXJuIG9mZnNldCArIDEKfQoKZnVuY3Rpb24gb2JqZWN0V3JpdGVVSW50MTYgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuKSB7CiAgaWYgKHZhbHVlIDwgMCkgdmFsdWUgPSAweGZmZmYgKyB2YWx1ZSArIDEKICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDIpOyBpIDwgajsgKytpKSB7CiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgJiAoMHhmZiA8PCAoOCAqIChsaXR0bGVFbmRpYW4gPyBpIDogMSAtIGkpKSkpID4+PgogICAgICAobGl0dGxlRW5kaWFuID8gaSA6IDEgLSBpKSAqIDgKICB9Cn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZMRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgdmFsdWUgPSArdmFsdWUKICBvZmZzZXQgPSBvZmZzZXQgfCAwCiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKQogIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgewogICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZikKICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpCiAgfSBlbHNlIHsKICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpCiAgfQogIHJldHVybiBvZmZzZXQgKyAyCn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MTZCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDE2QkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgdmFsdWUgPSArdmFsdWUKICBvZmZzZXQgPSBvZmZzZXQgfCAwCiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHhmZmZmLCAwKQogIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgewogICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiA4KQogICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSAmIDB4ZmYpCiAgfSBlbHNlIHsKICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlKQogIH0KICByZXR1cm4gb2Zmc2V0ICsgMgp9CgpmdW5jdGlvbiBvYmplY3RXcml0ZVVJbnQzMiAoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4pIHsKICBpZiAodmFsdWUgPCAwKSB2YWx1ZSA9IDB4ZmZmZmZmZmYgKyB2YWx1ZSArIDEKICBmb3IgKHZhciBpID0gMCwgaiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSBvZmZzZXQsIDQpOyBpIDwgajsgKytpKSB7CiAgICBidWZbb2Zmc2V0ICsgaV0gPSAodmFsdWUgPj4+IChsaXR0bGVFbmRpYW4gPyBpIDogMyAtIGkpICogOCkgJiAweGZmCiAgfQp9CgpCdWZmZXIucHJvdG90eXBlLndyaXRlVUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZVVJbnQzMkxFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkgewogIHZhbHVlID0gK3ZhbHVlCiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4ZmZmZmZmZmYsIDApCiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7CiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlID4+PiAyNCkKICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KQogICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOCkKICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpCiAgfSBlbHNlIHsKICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpCiAgfQogIHJldHVybiBvZmZzZXQgKyA0Cn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVVSW50MzJCRSA9IGZ1bmN0aW9uIHdyaXRlVUludDMyQkUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgdmFsdWUgPSArdmFsdWUKICBvZmZzZXQgPSBvZmZzZXQgfCAwCiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHhmZmZmZmZmZiwgMCkKICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHsKICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gMjQpCiAgICB0aGlzW29mZnNldCArIDFdID0gKHZhbHVlID4+PiAxNikKICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDgpCiAgICB0aGlzW29mZnNldCArIDNdID0gKHZhbHVlICYgMHhmZikKICB9IGVsc2UgewogICAgb2JqZWN0V3JpdGVVSW50MzIodGhpcywgdmFsdWUsIG9mZnNldCwgZmFsc2UpCiAgfQogIHJldHVybiBvZmZzZXQgKyA0Cn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnRMRSA9IGZ1bmN0aW9uIHdyaXRlSW50TEUgKHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIG5vQXNzZXJ0KSB7CiAgdmFsdWUgPSArdmFsdWUKICBvZmZzZXQgPSBvZmZzZXQgfCAwCiAgaWYgKCFub0Fzc2VydCkgewogICAgdmFyIGxpbWl0ID0gTWF0aC5wb3coMiwgOCAqIGJ5dGVMZW5ndGggLSAxKQoKICAgIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGJ5dGVMZW5ndGgsIGxpbWl0IC0gMSwgLWxpbWl0KQogIH0KCiAgdmFyIGkgPSAwCiAgdmFyIG11bCA9IDEKICB2YXIgc3ViID0gMAogIHRoaXNbb2Zmc2V0XSA9IHZhbHVlICYgMHhGRgogIHdoaWxlICgrK2kgPCBieXRlTGVuZ3RoICYmIChtdWwgKj0gMHgxMDApKSB7CiAgICBpZiAodmFsdWUgPCAwICYmIHN1YiA9PT0gMCAmJiB0aGlzW29mZnNldCArIGkgLSAxXSAhPT0gMCkgewogICAgICBzdWIgPSAxCiAgICB9CiAgICB0aGlzW29mZnNldCArIGldID0gKCh2YWx1ZSAvIG11bCkgPj4gMCkgLSBzdWIgJiAweEZGCiAgfQoKICByZXR1cm4gb2Zmc2V0ICsgYnl0ZUxlbmd0aAp9CgpCdWZmZXIucHJvdG90eXBlLndyaXRlSW50QkUgPSBmdW5jdGlvbiB3cml0ZUludEJFICh2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBub0Fzc2VydCkgewogIHZhbHVlID0gK3ZhbHVlCiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGlmICghbm9Bc3NlcnQpIHsKICAgIHZhciBsaW1pdCA9IE1hdGgucG93KDIsIDggKiBieXRlTGVuZ3RoIC0gMSkKCiAgICBjaGVja0ludCh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBieXRlTGVuZ3RoLCBsaW1pdCAtIDEsIC1saW1pdCkKICB9CgogIHZhciBpID0gYnl0ZUxlbmd0aCAtIDEKICB2YXIgbXVsID0gMQogIHZhciBzdWIgPSAwCiAgdGhpc1tvZmZzZXQgKyBpXSA9IHZhbHVlICYgMHhGRgogIHdoaWxlICgtLWkgPj0gMCAmJiAobXVsICo9IDB4MTAwKSkgewogICAgaWYgKHZhbHVlIDwgMCAmJiBzdWIgPT09IDAgJiYgdGhpc1tvZmZzZXQgKyBpICsgMV0gIT09IDApIHsKICAgICAgc3ViID0gMQogICAgfQogICAgdGhpc1tvZmZzZXQgKyBpXSA9ICgodmFsdWUgLyBtdWwpID4+IDApIC0gc3ViICYgMHhGRgogIH0KCiAgcmV0dXJuIG9mZnNldCArIGJ5dGVMZW5ndGgKfQoKQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDggPSBmdW5jdGlvbiB3cml0ZUludDggKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgdmFsdWUgPSArdmFsdWUKICBvZmZzZXQgPSBvZmZzZXQgfCAwCiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMSwgMHg3ZiwgLTB4ODApCiAgaWYgKCFCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgdmFsdWUgPSBNYXRoLmZsb29yKHZhbHVlKQogIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZiArIHZhbHVlICsgMQogIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSAmIDB4ZmYpCiAgcmV0dXJuIG9mZnNldCArIDEKfQoKQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDE2TEUgPSBmdW5jdGlvbiB3cml0ZUludDE2TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgdmFsdWUgPSArdmFsdWUKICBvZmZzZXQgPSBvZmZzZXQgfCAwCiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgMiwgMHg3ZmZmLCAtMHg4MDAwKQogIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgewogICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlICYgMHhmZikKICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDgpCiAgfSBlbHNlIHsKICAgIG9iamVjdFdyaXRlVUludDE2KHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpCiAgfQogIHJldHVybiBvZmZzZXQgKyAyCn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQxNkJFID0gZnVuY3Rpb24gd3JpdGVJbnQxNkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkgewogIHZhbHVlID0gK3ZhbHVlCiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDIsIDB4N2ZmZiwgLTB4ODAwMCkKICBpZiAoQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHsKICAgIHRoaXNbb2Zmc2V0XSA9ICh2YWx1ZSA+Pj4gOCkKICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgJiAweGZmKQogIH0gZWxzZSB7CiAgICBvYmplY3RXcml0ZVVJbnQxNih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSkKICB9CiAgcmV0dXJuIG9mZnNldCArIDIKfQoKQnVmZmVyLnByb3RvdHlwZS53cml0ZUludDMyTEUgPSBmdW5jdGlvbiB3cml0ZUludDMyTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgdmFsdWUgPSArdmFsdWUKICBvZmZzZXQgPSBvZmZzZXQgfCAwCiAgaWYgKCFub0Fzc2VydCkgY2hlY2tJbnQodGhpcywgdmFsdWUsIG9mZnNldCwgNCwgMHg3ZmZmZmZmZiwgLTB4ODAwMDAwMDApCiAgaWYgKEJ1ZmZlci5UWVBFRF9BUlJBWV9TVVBQT1JUKSB7CiAgICB0aGlzW29mZnNldF0gPSAodmFsdWUgJiAweGZmKQogICAgdGhpc1tvZmZzZXQgKyAxXSA9ICh2YWx1ZSA+Pj4gOCkKICAgIHRoaXNbb2Zmc2V0ICsgMl0gPSAodmFsdWUgPj4+IDE2KQogICAgdGhpc1tvZmZzZXQgKyAzXSA9ICh2YWx1ZSA+Pj4gMjQpCiAgfSBlbHNlIHsKICAgIG9iamVjdFdyaXRlVUludDMyKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUpCiAgfQogIHJldHVybiBvZmZzZXQgKyA0Cn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVJbnQzMkJFID0gZnVuY3Rpb24gd3JpdGVJbnQzMkJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkgewogIHZhbHVlID0gK3ZhbHVlCiAgb2Zmc2V0ID0gb2Zmc2V0IHwgMAogIGlmICghbm9Bc3NlcnQpIGNoZWNrSW50KHRoaXMsIHZhbHVlLCBvZmZzZXQsIDQsIDB4N2ZmZmZmZmYsIC0weDgwMDAwMDAwKQogIGlmICh2YWx1ZSA8IDApIHZhbHVlID0gMHhmZmZmZmZmZiArIHZhbHVlICsgMQogIGlmIChCdWZmZXIuVFlQRURfQVJSQVlfU1VQUE9SVCkgewogICAgdGhpc1tvZmZzZXRdID0gKHZhbHVlID4+PiAyNCkKICAgIHRoaXNbb2Zmc2V0ICsgMV0gPSAodmFsdWUgPj4+IDE2KQogICAgdGhpc1tvZmZzZXQgKyAyXSA9ICh2YWx1ZSA+Pj4gOCkKICAgIHRoaXNbb2Zmc2V0ICsgM10gPSAodmFsdWUgJiAweGZmKQogIH0gZWxzZSB7CiAgICBvYmplY3RXcml0ZVVJbnQzMih0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSkKICB9CiAgcmV0dXJuIG9mZnNldCArIDQKfQoKZnVuY3Rpb24gY2hlY2tJRUVFNzU0IChidWYsIHZhbHVlLCBvZmZzZXQsIGV4dCwgbWF4LCBtaW4pIHsKICBpZiAob2Zmc2V0ICsgZXh0ID4gYnVmLmxlbmd0aCkgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0luZGV4IG91dCBvZiByYW5nZScpCiAgaWYgKG9mZnNldCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdJbmRleCBvdXQgb2YgcmFuZ2UnKQp9CgpmdW5jdGlvbiB3cml0ZUZsb2F0IChidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgbm9Bc3NlcnQpIHsKICBpZiAoIW5vQXNzZXJ0KSB7CiAgICBjaGVja0lFRUU3NTQoYnVmLCB2YWx1ZSwgb2Zmc2V0LCA0LCAzLjQwMjgyMzQ2NjM4NTI4ODZlKzM4LCAtMy40MDI4MjM0NjYzODUyODg2ZSszOCkKICB9CiAgaWVlZTc1NC53cml0ZShidWYsIHZhbHVlLCBvZmZzZXQsIGxpdHRsZUVuZGlhbiwgMjMsIDQpCiAgcmV0dXJuIG9mZnNldCArIDQKfQoKQnVmZmVyLnByb3RvdHlwZS53cml0ZUZsb2F0TEUgPSBmdW5jdGlvbiB3cml0ZUZsb2F0TEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgcmV0dXJuIHdyaXRlRmxvYXQodGhpcywgdmFsdWUsIG9mZnNldCwgdHJ1ZSwgbm9Bc3NlcnQpCn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVGbG9hdEJFID0gZnVuY3Rpb24gd3JpdGVGbG9hdEJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkgewogIHJldHVybiB3cml0ZUZsb2F0KHRoaXMsIHZhbHVlLCBvZmZzZXQsIGZhbHNlLCBub0Fzc2VydCkKfQoKZnVuY3Rpb24gd3JpdGVEb3VibGUgKGJ1ZiwgdmFsdWUsIG9mZnNldCwgbGl0dGxlRW5kaWFuLCBub0Fzc2VydCkgewogIGlmICghbm9Bc3NlcnQpIHsKICAgIGNoZWNrSUVFRTc1NChidWYsIHZhbHVlLCBvZmZzZXQsIDgsIDEuNzk3NjkzMTM0ODYyMzE1N0UrMzA4LCAtMS43OTc2OTMxMzQ4NjIzMTU3RSszMDgpCiAgfQogIGllZWU3NTQud3JpdGUoYnVmLCB2YWx1ZSwgb2Zmc2V0LCBsaXR0bGVFbmRpYW4sIDUyLCA4KQogIHJldHVybiBvZmZzZXQgKyA4Cn0KCkJ1ZmZlci5wcm90b3R5cGUud3JpdGVEb3VibGVMRSA9IGZ1bmN0aW9uIHdyaXRlRG91YmxlTEUgKHZhbHVlLCBvZmZzZXQsIG5vQXNzZXJ0KSB7CiAgcmV0dXJuIHdyaXRlRG91YmxlKHRoaXMsIHZhbHVlLCBvZmZzZXQsIHRydWUsIG5vQXNzZXJ0KQp9CgpCdWZmZXIucHJvdG90eXBlLndyaXRlRG91YmxlQkUgPSBmdW5jdGlvbiB3cml0ZURvdWJsZUJFICh2YWx1ZSwgb2Zmc2V0LCBub0Fzc2VydCkgewogIHJldHVybiB3cml0ZURvdWJsZSh0aGlzLCB2YWx1ZSwgb2Zmc2V0LCBmYWxzZSwgbm9Bc3NlcnQpCn0KCi8vIGNvcHkodGFyZ2V0QnVmZmVyLCB0YXJnZXRTdGFydD0wLCBzb3VyY2VTdGFydD0wLCBzb3VyY2VFbmQ9YnVmZmVyLmxlbmd0aCkKQnVmZmVyLnByb3RvdHlwZS5jb3B5ID0gZnVuY3Rpb24gY29weSAodGFyZ2V0LCB0YXJnZXRTdGFydCwgc3RhcnQsIGVuZCkgewogIGlmICghc3RhcnQpIHN0YXJ0ID0gMAogIGlmICghZW5kICYmIGVuZCAhPT0gMCkgZW5kID0gdGhpcy5sZW5ndGgKICBpZiAodGFyZ2V0U3RhcnQgPj0gdGFyZ2V0Lmxlbmd0aCkgdGFyZ2V0U3RhcnQgPSB0YXJnZXQubGVuZ3RoCiAgaWYgKCF0YXJnZXRTdGFydCkgdGFyZ2V0U3RhcnQgPSAwCiAgaWYgKGVuZCA+IDAgJiYgZW5kIDwgc3RhcnQpIGVuZCA9IHN0YXJ0CgogIC8vIENvcHkgMCBieXRlczsgd2UncmUgZG9uZQogIGlmIChlbmQgPT09IHN0YXJ0KSByZXR1cm4gMAogIGlmICh0YXJnZXQubGVuZ3RoID09PSAwIHx8IHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gMAoKICAvLyBGYXRhbCBlcnJvciBjb25kaXRpb25zCiAgaWYgKHRhcmdldFN0YXJ0IDwgMCkgewogICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ3RhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMnKQogIH0KICBpZiAoc3RhcnQgPCAwIHx8IHN0YXJ0ID49IHRoaXMubGVuZ3RoKSB0aHJvdyBuZXcgUmFuZ2VFcnJvcignc291cmNlU3RhcnQgb3V0IG9mIGJvdW5kcycpCiAgaWYgKGVuZCA8IDApIHRocm93IG5ldyBSYW5nZUVycm9yKCdzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcycpCgogIC8vIEFyZSB3ZSBvb2I/CiAgaWYgKGVuZCA+IHRoaXMubGVuZ3RoKSBlbmQgPSB0aGlzLmxlbmd0aAogIGlmICh0YXJnZXQubGVuZ3RoIC0gdGFyZ2V0U3RhcnQgPCBlbmQgLSBzdGFydCkgewogICAgZW5kID0gdGFyZ2V0Lmxlbmd0aCAtIHRhcmdldFN0YXJ0ICsgc3RhcnQKICB9CgogIHZhciBsZW4gPSBlbmQgLSBzdGFydAogIHZhciBpCgogIGlmICh0aGlzID09PSB0YXJnZXQgJiYgc3RhcnQgPCB0YXJnZXRTdGFydCAmJiB0YXJnZXRTdGFydCA8IGVuZCkgewogICAgLy8gZGVzY2VuZGluZyBjb3B5IGZyb20gZW5kCiAgICBmb3IgKGkgPSBsZW4gLSAxOyBpID49IDA7IC0taSkgewogICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XQogICAgfQogIH0gZWxzZSBpZiAobGVuIDwgMTAwMCB8fCAhQnVmZmVyLlRZUEVEX0FSUkFZX1NVUFBPUlQpIHsKICAgIC8vIGFzY2VuZGluZyBjb3B5IGZyb20gc3RhcnQKICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkgewogICAgICB0YXJnZXRbaSArIHRhcmdldFN0YXJ0XSA9IHRoaXNbaSArIHN0YXJ0XQogICAgfQogIH0gZWxzZSB7CiAgICBVaW50OEFycmF5LnByb3RvdHlwZS5zZXQuY2FsbCgKICAgICAgdGFyZ2V0LAogICAgICB0aGlzLnN1YmFycmF5KHN0YXJ0LCBzdGFydCArIGxlbiksCiAgICAgIHRhcmdldFN0YXJ0CiAgICApCiAgfQoKICByZXR1cm4gbGVuCn0KCi8vIFVzYWdlOgovLyAgICBidWZmZXIuZmlsbChudW1iZXJbLCBvZmZzZXRbLCBlbmRdXSkKLy8gICAgYnVmZmVyLmZpbGwoYnVmZmVyWywgb2Zmc2V0WywgZW5kXV0pCi8vICAgIGJ1ZmZlci5maWxsKHN0cmluZ1ssIG9mZnNldFssIGVuZF1dWywgZW5jb2RpbmddKQpCdWZmZXIucHJvdG90eXBlLmZpbGwgPSBmdW5jdGlvbiBmaWxsICh2YWwsIHN0YXJ0LCBlbmQsIGVuY29kaW5nKSB7CiAgLy8gSGFuZGxlIHN0cmluZyBjYXNlczoKICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHsKICAgIGlmICh0eXBlb2Ygc3RhcnQgPT09ICdzdHJpbmcnKSB7CiAgICAgIGVuY29kaW5nID0gc3RhcnQKICAgICAgc3RhcnQgPSAwCiAgICAgIGVuZCA9IHRoaXMubGVuZ3RoCiAgICB9IGVsc2UgaWYgKHR5cGVvZiBlbmQgPT09ICdzdHJpbmcnKSB7CiAgICAgIGVuY29kaW5nID0gZW5kCiAgICAgIGVuZCA9IHRoaXMubGVuZ3RoCiAgICB9CiAgICBpZiAodmFsLmxlbmd0aCA9PT0gMSkgewogICAgICB2YXIgY29kZSA9IHZhbC5jaGFyQ29kZUF0KDApCiAgICAgIGlmIChjb2RlIDwgMjU2KSB7CiAgICAgICAgdmFsID0gY29kZQogICAgICB9CiAgICB9CiAgICBpZiAoZW5jb2RpbmcgIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgZW5jb2RpbmcgIT09ICdzdHJpbmcnKSB7CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ2VuY29kaW5nIG11c3QgYmUgYSBzdHJpbmcnKQogICAgfQogICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ3N0cmluZycgJiYgIUJ1ZmZlci5pc0VuY29kaW5nKGVuY29kaW5nKSkgewogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdVbmtub3duIGVuY29kaW5nOiAnICsgZW5jb2RpbmcpCiAgICB9CiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykgewogICAgdmFsID0gdmFsICYgMjU1CiAgfQoKICAvLyBJbnZhbGlkIHJhbmdlcyBhcmUgbm90IHNldCB0byBhIGRlZmF1bHQsIHNvIGNhbiByYW5nZSBjaGVjayBlYXJseS4KICBpZiAoc3RhcnQgPCAwIHx8IHRoaXMubGVuZ3RoIDwgc3RhcnQgfHwgdGhpcy5sZW5ndGggPCBlbmQpIHsKICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCdPdXQgb2YgcmFuZ2UgaW5kZXgnKQogIH0KCiAgaWYgKGVuZCA8PSBzdGFydCkgewogICAgcmV0dXJuIHRoaXMKICB9CgogIHN0YXJ0ID0gc3RhcnQgPj4+IDAKICBlbmQgPSBlbmQgPT09IHVuZGVmaW5lZCA/IHRoaXMubGVuZ3RoIDogZW5kID4+PiAwCgogIGlmICghdmFsKSB2YWwgPSAwCgogIHZhciBpCiAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7CiAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZDsgKytpKSB7CiAgICAgIHRoaXNbaV0gPSB2YWwKICAgIH0KICB9IGVsc2UgewogICAgdmFyIGJ5dGVzID0gQnVmZmVyLmlzQnVmZmVyKHZhbCkKICAgICAgPyB2YWwKICAgICAgOiB1dGY4VG9CeXRlcyhuZXcgQnVmZmVyKHZhbCwgZW5jb2RpbmcpLnRvU3RyaW5nKCkpCiAgICB2YXIgbGVuID0gYnl0ZXMubGVuZ3RoCiAgICBmb3IgKGkgPSAwOyBpIDwgZW5kIC0gc3RhcnQ7ICsraSkgewogICAgICB0aGlzW2kgKyBzdGFydF0gPSBieXRlc1tpICUgbGVuXQogICAgfQogIH0KCiAgcmV0dXJuIHRoaXMKfQoKLy8gSEVMUEVSIEZVTkNUSU9OUwovLyA9PT09PT09PT09PT09PT09Cgp2YXIgSU5WQUxJRF9CQVNFNjRfUkUgPSAvW14rXC8wLTlBLVphLXotX10vZwoKZnVuY3Rpb24gYmFzZTY0Y2xlYW4gKHN0cikgewogIC8vIE5vZGUgc3RyaXBzIG91dCBpbnZhbGlkIGNoYXJhY3RlcnMgbGlrZSBcbiBhbmQgXHQgZnJvbSB0aGUgc3RyaW5nLCBiYXNlNjQtanMgZG9lcyBub3QKICBzdHIgPSBzdHJpbmd0cmltKHN0cikucmVwbGFjZShJTlZBTElEX0JBU0U2NF9SRSwgJycpCiAgLy8gTm9kZSBjb252ZXJ0cyBzdHJpbmdzIHdpdGggbGVuZ3RoIDwgMiB0byAnJwogIGlmIChzdHIubGVuZ3RoIDwgMikgcmV0dXJuICcnCiAgLy8gTm9kZSBhbGxvd3MgZm9yIG5vbi1wYWRkZWQgYmFzZTY0IHN0cmluZ3MgKG1pc3NpbmcgdHJhaWxpbmcgPT09KSwgYmFzZTY0LWpzIGRvZXMgbm90CiAgd2hpbGUgKHN0ci5sZW5ndGggJSA0ICE9PSAwKSB7CiAgICBzdHIgPSBzdHIgKyAnPScKICB9CiAgcmV0dXJuIHN0cgp9CgpmdW5jdGlvbiBzdHJpbmd0cmltIChzdHIpIHsKICBpZiAoc3RyLnRyaW0pIHJldHVybiBzdHIudHJpbSgpCiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpCn0KCmZ1bmN0aW9uIHRvSGV4IChuKSB7CiAgaWYgKG4gPCAxNikgcmV0dXJuICcwJyArIG4udG9TdHJpbmcoMTYpCiAgcmV0dXJuIG4udG9TdHJpbmcoMTYpCn0KCmZ1bmN0aW9uIHV0ZjhUb0J5dGVzIChzdHJpbmcsIHVuaXRzKSB7CiAgdW5pdHMgPSB1bml0cyB8fCBJbmZpbml0eQogIHZhciBjb2RlUG9pbnQKICB2YXIgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aAogIHZhciBsZWFkU3Vycm9nYXRlID0gbnVsbAogIHZhciBieXRlcyA9IFtdCgogIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgIGNvZGVQb2ludCA9IHN0cmluZy5jaGFyQ29kZUF0KGkpCgogICAgLy8gaXMgc3Vycm9nYXRlIGNvbXBvbmVudAogICAgaWYgKGNvZGVQb2ludCA+IDB4RDdGRiAmJiBjb2RlUG9pbnQgPCAweEUwMDApIHsKICAgICAgLy8gbGFzdCBjaGFyIHdhcyBhIGxlYWQKICAgICAgaWYgKCFsZWFkU3Vycm9nYXRlKSB7CiAgICAgICAgLy8gbm8gbGVhZCB5ZXQKICAgICAgICBpZiAoY29kZVBvaW50ID4gMHhEQkZGKSB7CiAgICAgICAgICAvLyB1bmV4cGVjdGVkIHRyYWlsCiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRCkKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfSBlbHNlIGlmIChpICsgMSA9PT0gbGVuZ3RoKSB7CiAgICAgICAgICAvLyB1bnBhaXJlZCBsZWFkCiAgICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRCkKICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAvLyB2YWxpZCBsZWFkCiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IGNvZGVQb2ludAoKICAgICAgICBjb250aW51ZQogICAgICB9CgogICAgICAvLyAyIGxlYWRzIGluIGEgcm93CiAgICAgIGlmIChjb2RlUG9pbnQgPCAweERDMDApIHsKICAgICAgICBpZiAoKHVuaXRzIC09IDMpID4gLTEpIGJ5dGVzLnB1c2goMHhFRiwgMHhCRiwgMHhCRCkKICAgICAgICBsZWFkU3Vycm9nYXRlID0gY29kZVBvaW50CiAgICAgICAgY29udGludWUKICAgICAgfQoKICAgICAgLy8gdmFsaWQgc3Vycm9nYXRlIHBhaXIKICAgICAgY29kZVBvaW50ID0gKGxlYWRTdXJyb2dhdGUgLSAweEQ4MDAgPDwgMTAgfCBjb2RlUG9pbnQgLSAweERDMDApICsgMHgxMDAwMAogICAgfSBlbHNlIGlmIChsZWFkU3Vycm9nYXRlKSB7CiAgICAgIC8vIHZhbGlkIGJtcCBjaGFyLCBidXQgbGFzdCBjaGFyIHdhcyBhIGxlYWQKICAgICAgaWYgKCh1bml0cyAtPSAzKSA+IC0xKSBieXRlcy5wdXNoKDB4RUYsIDB4QkYsIDB4QkQpCiAgICB9CgogICAgbGVhZFN1cnJvZ2F0ZSA9IG51bGwKCiAgICAvLyBlbmNvZGUgdXRmOAogICAgaWYgKGNvZGVQb2ludCA8IDB4ODApIHsKICAgICAgaWYgKCh1bml0cyAtPSAxKSA8IDApIGJyZWFrCiAgICAgIGJ5dGVzLnB1c2goY29kZVBvaW50KQogICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPCAweDgwMCkgewogICAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWsKICAgICAgYnl0ZXMucHVzaCgKICAgICAgICBjb2RlUG9pbnQgPj4gMHg2IHwgMHhDMCwKICAgICAgICBjb2RlUG9pbnQgJiAweDNGIHwgMHg4MAogICAgICApCiAgICB9IGVsc2UgaWYgKGNvZGVQb2ludCA8IDB4MTAwMDApIHsKICAgICAgaWYgKCh1bml0cyAtPSAzKSA8IDApIGJyZWFrCiAgICAgIGJ5dGVzLnB1c2goCiAgICAgICAgY29kZVBvaW50ID4+IDB4QyB8IDB4RTAsCiAgICAgICAgY29kZVBvaW50ID4+IDB4NiAmIDB4M0YgfCAweDgwLAogICAgICAgIGNvZGVQb2ludCAmIDB4M0YgfCAweDgwCiAgICAgICkKICAgIH0gZWxzZSBpZiAoY29kZVBvaW50IDwgMHgxMTAwMDApIHsKICAgICAgaWYgKCh1bml0cyAtPSA0KSA8IDApIGJyZWFrCiAgICAgIGJ5dGVzLnB1c2goCiAgICAgICAgY29kZVBvaW50ID4+IDB4MTIgfCAweEYwLAogICAgICAgIGNvZGVQb2ludCA+PiAweEMgJiAweDNGIHwgMHg4MCwKICAgICAgICBjb2RlUG9pbnQgPj4gMHg2ICYgMHgzRiB8IDB4ODAsCiAgICAgICAgY29kZVBvaW50ICYgMHgzRiB8IDB4ODAKICAgICAgKQogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvZGUgcG9pbnQnKQogICAgfQogIH0KCiAgcmV0dXJuIGJ5dGVzCn0KCmZ1bmN0aW9uIGFzY2lpVG9CeXRlcyAoc3RyKSB7CiAgdmFyIGJ5dGVBcnJheSA9IFtdCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyArK2kpIHsKICAgIC8vIE5vZGUncyBjb2RlIHNlZW1zIHRvIGJlIGRvaW5nIHRoaXMgYW5kIG5vdCAmIDB4N0YuLgogICAgYnl0ZUFycmF5LnB1c2goc3RyLmNoYXJDb2RlQXQoaSkgJiAweEZGKQogIH0KICByZXR1cm4gYnl0ZUFycmF5Cn0KCmZ1bmN0aW9uIHV0ZjE2bGVUb0J5dGVzIChzdHIsIHVuaXRzKSB7CiAgdmFyIGMsIGhpLCBsbwogIHZhciBieXRlQXJyYXkgPSBbXQogIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgKytpKSB7CiAgICBpZiAoKHVuaXRzIC09IDIpIDwgMCkgYnJlYWsKCiAgICBjID0gc3RyLmNoYXJDb2RlQXQoaSkKICAgIGhpID0gYyA+PiA4CiAgICBsbyA9IGMgJSAyNTYKICAgIGJ5dGVBcnJheS5wdXNoKGxvKQogICAgYnl0ZUFycmF5LnB1c2goaGkpCiAgfQoKICByZXR1cm4gYnl0ZUFycmF5Cn0KCmZ1bmN0aW9uIGJhc2U2NFRvQnl0ZXMgKHN0cikgewogIHJldHVybiBiYXNlNjQudG9CeXRlQXJyYXkoYmFzZTY0Y2xlYW4oc3RyKSkKfQoKZnVuY3Rpb24gYmxpdEJ1ZmZlciAoc3JjLCBkc3QsIG9mZnNldCwgbGVuZ3RoKSB7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAgaWYgKChpICsgb2Zmc2V0ID49IGRzdC5sZW5ndGgpIHx8IChpID49IHNyYy5sZW5ndGgpKSBicmVhawogICAgZHN0W2kgKyBvZmZzZXRdID0gc3JjW2ldCiAgfQogIHJldHVybiBpCn0KCmZ1bmN0aW9uIGlzbmFuICh2YWwpIHsKICByZXR1cm4gdmFsICE9PSB2YWwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1zZWxmLWNvbXBhcmUKfQoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oNykpKQoKLyoqKi8gfSksCi8qIDIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKdmFyIGNvcmUgPSBtb2R1bGUuZXhwb3J0cyA9IHsgdmVyc2lvbjogJzIuNS4zJyB9OwppZiAodHlwZW9mIF9fZSA9PSAnbnVtYmVyJykgX19lID0gY29yZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11bmRlZgoKCi8qKiovIH0pLAovKiAzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciBnbG9iYWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsKdmFyIGNvcmUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOwp2YXIgY3R4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CnZhciBoaWRlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CnZhciBQUk9UT1RZUEUgPSAncHJvdG90eXBlJzsKCnZhciAkZXhwb3J0ID0gZnVuY3Rpb24gKHR5cGUsIG5hbWUsIHNvdXJjZSkgewogIHZhciBJU19GT1JDRUQgPSB0eXBlICYgJGV4cG9ydC5GOwogIHZhciBJU19HTE9CQUwgPSB0eXBlICYgJGV4cG9ydC5HOwogIHZhciBJU19TVEFUSUMgPSB0eXBlICYgJGV4cG9ydC5TOwogIHZhciBJU19QUk9UTyA9IHR5cGUgJiAkZXhwb3J0LlA7CiAgdmFyIElTX0JJTkQgPSB0eXBlICYgJGV4cG9ydC5COwogIHZhciBJU19XUkFQID0gdHlwZSAmICRleHBvcnQuVzsKICB2YXIgZXhwb3J0cyA9IElTX0dMT0JBTCA/IGNvcmUgOiBjb3JlW25hbWVdIHx8IChjb3JlW25hbWVdID0ge30pOwogIHZhciBleHBQcm90byA9IGV4cG9ydHNbUFJPVE9UWVBFXTsKICB2YXIgdGFyZ2V0ID0gSVNfR0xPQkFMID8gZ2xvYmFsIDogSVNfU1RBVElDID8gZ2xvYmFsW25hbWVdIDogKGdsb2JhbFtuYW1lXSB8fCB7fSlbUFJPVE9UWVBFXTsKICB2YXIga2V5LCBvd24sIG91dDsKICBpZiAoSVNfR0xPQkFMKSBzb3VyY2UgPSBuYW1lOwogIGZvciAoa2V5IGluIHNvdXJjZSkgewogICAgLy8gY29udGFpbnMgaW4gbmF0aXZlCiAgICBvd24gPSAhSVNfRk9SQ0VEICYmIHRhcmdldCAmJiB0YXJnZXRba2V5XSAhPT0gdW5kZWZpbmVkOwogICAgaWYgKG93biAmJiBrZXkgaW4gZXhwb3J0cykgY29udGludWU7CiAgICAvLyBleHBvcnQgbmF0aXZlIG9yIHBhc3NlZAogICAgb3V0ID0gb3duID8gdGFyZ2V0W2tleV0gOiBzb3VyY2Vba2V5XTsKICAgIC8vIHByZXZlbnQgZ2xvYmFsIHBvbGx1dGlvbiBmb3IgbmFtZXNwYWNlcwogICAgZXhwb3J0c1trZXldID0gSVNfR0xPQkFMICYmIHR5cGVvZiB0YXJnZXRba2V5XSAhPSAnZnVuY3Rpb24nID8gc291cmNlW2tleV0KICAgIC8vIGJpbmQgdGltZXJzIHRvIGdsb2JhbCBmb3IgY2FsbCBmcm9tIGV4cG9ydCBjb250ZXh0CiAgICA6IElTX0JJTkQgJiYgb3duID8gY3R4KG91dCwgZ2xvYmFsKQogICAgLy8gd3JhcCBnbG9iYWwgY29uc3RydWN0b3JzIGZvciBwcmV2ZW50IGNoYW5nZSB0aGVtIGluIGxpYnJhcnkKICAgIDogSVNfV1JBUCAmJiB0YXJnZXRba2V5XSA9PSBvdXQgPyAoZnVuY3Rpb24gKEMpIHsKICAgICAgdmFyIEYgPSBmdW5jdGlvbiAoYSwgYiwgYykgewogICAgICAgIGlmICh0aGlzIGluc3RhbmNlb2YgQykgewogICAgICAgICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgICAgICAgIGNhc2UgMDogcmV0dXJuIG5ldyBDKCk7CiAgICAgICAgICAgIGNhc2UgMTogcmV0dXJuIG5ldyBDKGEpOwogICAgICAgICAgICBjYXNlIDI6IHJldHVybiBuZXcgQyhhLCBiKTsKICAgICAgICAgIH0gcmV0dXJuIG5ldyBDKGEsIGIsIGMpOwogICAgICAgIH0gcmV0dXJuIEMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfTsKICAgICAgRltQUk9UT1RZUEVdID0gQ1tQUk9UT1RZUEVdOwogICAgICByZXR1cm4gRjsKICAgIC8vIG1ha2Ugc3RhdGljIHZlcnNpb25zIGZvciBwcm90b3R5cGUgbWV0aG9kcwogICAgfSkob3V0KSA6IElTX1BST1RPICYmIHR5cGVvZiBvdXQgPT0gJ2Z1bmN0aW9uJyA/IGN0eChGdW5jdGlvbi5jYWxsLCBvdXQpIDogb3V0OwogICAgLy8gZXhwb3J0IHByb3RvIG1ldGhvZHMgdG8gY29yZS4lQ09OU1RSVUNUT1IlLm1ldGhvZHMuJU5BTUUlCiAgICBpZiAoSVNfUFJPVE8pIHsKICAgICAgKGV4cG9ydHMudmlydHVhbCB8fCAoZXhwb3J0cy52aXJ0dWFsID0ge30pKVtrZXldID0gb3V0OwogICAgICAvLyBleHBvcnQgcHJvdG8gbWV0aG9kcyB0byBjb3JlLiVDT05TVFJVQ1RPUiUucHJvdG90eXBlLiVOQU1FJQogICAgICBpZiAodHlwZSAmICRleHBvcnQuUiAmJiBleHBQcm90byAmJiAhZXhwUHJvdG9ba2V5XSkgaGlkZShleHBQcm90bywga2V5LCBvdXQpOwogICAgfQogIH0KfTsKLy8gdHlwZSBiaXRtYXAKJGV4cG9ydC5GID0gMTsgICAvLyBmb3JjZWQKJGV4cG9ydC5HID0gMjsgICAvLyBnbG9iYWwKJGV4cG9ydC5TID0gNDsgICAvLyBzdGF0aWMKJGV4cG9ydC5QID0gODsgICAvLyBwcm90bwokZXhwb3J0LkIgPSAxNjsgIC8vIGJpbmQKJGV4cG9ydC5XID0gMzI7ICAvLyB3cmFwCiRleHBvcnQuVSA9IDY0OyAgLy8gc2FmZQokZXhwb3J0LlIgPSAxMjg7IC8vIHJlYWwgcHJvdG8gbWV0aG9kIGZvciBgbGlicmFyeWAKbW9kdWxlLmV4cG9ydHMgPSAkZXhwb3J0OwoKCi8qKiovIH0pLAovKiA0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciBzdG9yZSA9IF9fd2VicGFja19yZXF1aXJlX18oNjUpKCd3a3MnKTsKdmFyIHVpZCA9IF9fd2VicGFja19yZXF1aXJlX18oMzgpOwp2YXIgU3ltYm9sID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCkuU3ltYm9sOwp2YXIgVVNFX1NZTUJPTCA9IHR5cGVvZiBTeW1ib2wgPT0gJ2Z1bmN0aW9uJzsKCnZhciAkZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHsKICByZXR1cm4gc3RvcmVbbmFtZV0gfHwgKHN0b3JlW25hbWVdID0KICAgIFVTRV9TWU1CT0wgJiYgU3ltYm9sW25hbWVdIHx8IChVU0VfU1lNQk9MID8gU3ltYm9sIDogdWlkKSgnU3ltYm9sLicgKyBuYW1lKSk7Cn07CgokZXhwb3J0cy5zdG9yZSA9IHN0b3JlOwoKCi8qKiovIH0pLAovKiA1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIFRoYW5rJ3MgSUU4IGZvciBoaXMgZnVubnkgZGVmaW5lUHJvcGVydHkKbW9kdWxlLmV4cG9ydHMgPSAhX193ZWJwYWNrX3JlcXVpcmVfXygxOSkoZnVuY3Rpb24gKCkgewogIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3Owp9KTsKCgovKioqLyB9KSwKLyogNiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgYW5PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKdmFyIElFOF9ET01fREVGSU5FID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5NSk7CnZhciB0b1ByaW1pdGl2ZSA9IF9fd2VicGFja19yZXF1aXJlX18oNTgpOwp2YXIgZFAgPSBPYmplY3QuZGVmaW5lUHJvcGVydHk7CgpleHBvcnRzLmYgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5IDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoTywgUCwgQXR0cmlidXRlcykgewogIGFuT2JqZWN0KE8pOwogIFAgPSB0b1ByaW1pdGl2ZShQLCB0cnVlKTsKICBhbk9iamVjdChBdHRyaWJ1dGVzKTsKICBpZiAoSUU4X0RPTV9ERUZJTkUpIHRyeSB7CiAgICByZXR1cm4gZFAoTywgUCwgQXR0cmlidXRlcyk7CiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9CiAgaWYgKCdnZXQnIGluIEF0dHJpYnV0ZXMgfHwgJ3NldCcgaW4gQXR0cmlidXRlcykgdGhyb3cgVHlwZUVycm9yKCdBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCEnKTsKICBpZiAoJ3ZhbHVlJyBpbiBBdHRyaWJ1dGVzKSBPW1BdID0gQXR0cmlidXRlcy52YWx1ZTsKICByZXR1cm4gTzsKfTsKCgovKioqLyB9KSwKLyogNyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7Cgp2YXIgZzsKCi8vIFRoaXMgd29ya3MgaW4gbm9uLXN0cmljdCBtb2RlCmcgPSAoZnVuY3Rpb24oKSB7CglyZXR1cm4gdGhpczsKfSkoKTsKCnRyeSB7CgkvLyBUaGlzIHdvcmtzIGlmIGV2YWwgaXMgYWxsb3dlZCAoc2VlIENTUCkKCWcgPSBnIHx8IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCkgfHwgKDEsZXZhbCkoInRoaXMiKTsKfSBjYXRjaChlKSB7CgkvLyBUaGlzIHdvcmtzIGlmIHRoZSB3aW5kb3cgcmVmZXJlbmNlIGlzIGF2YWlsYWJsZQoJaWYodHlwZW9mIHdpbmRvdyA9PT0gIm9iamVjdCIpCgkJZyA9IHdpbmRvdzsKfQoKLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLgovLyBXZSByZXR1cm4gdW5kZWZpbmVkLCBpbnN0ZWFkIG9mIG5vdGhpbmcgaGVyZSwgc28gaXQncwovLyBlYXNpZXIgdG8gaGFuZGxlIHRoaXMgY2FzZS4gaWYoIWdsb2JhbCkgeyAuLi59Cgptb2R1bGUuZXhwb3J0cyA9IGc7CgoKLyoqKi8gfSksCi8qIDggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oQnVmZmVyLCBfX2Rpcm5hbWUpIHsKCmZ1bmN0aW9uIFZpcnR1YWxGaWxlU3lzdGVtKCkgewoJdGhpcy5maWxlU3lzdGVtID0ge307Cgl0aGlzLmJhc2VTeXN0ZW0gPSB7fTsKfQoKVmlydHVhbEZpbGVTeXN0ZW0ucHJvdG90eXBlLnJlYWRGaWxlU3luYyA9IGZ1bmN0aW9uIChmaWxlbmFtZSkgewoJZmlsZW5hbWUgPSBmaXhGaWxlbmFtZShmaWxlbmFtZSk7CgoJdmFyIGJhc2U2NGNvbnRlbnQgPSB0aGlzLmJhc2VTeXN0ZW1bZmlsZW5hbWVdOwoJaWYgKGJhc2U2NGNvbnRlbnQpIHsKCQlyZXR1cm4gbmV3IEJ1ZmZlcihiYXNlNjRjb250ZW50LCAnYmFzZTY0Jyk7Cgl9CgoJdmFyIGNvbnRlbnQgPSB0aGlzLmZpbGVTeXN0ZW1bZmlsZW5hbWVdOwoJaWYgKGNvbnRlbnQpIHsKCQlyZXR1cm4gY29udGVudDsKCX0KCgl0aHJvdyAnRmlsZSBcJycgKyBmaWxlbmFtZSArICdcJyBub3QgZm91bmQgaW4gdmlydHVhbCBmaWxlIHN5c3RlbSc7Cn07CgpWaXJ0dWFsRmlsZVN5c3RlbS5wcm90b3R5cGUud3JpdGVGaWxlU3luYyA9IGZ1bmN0aW9uIChmaWxlbmFtZSwgY29udGVudCkgewoJdGhpcy5maWxlU3lzdGVtW2ZpeEZpbGVuYW1lKGZpbGVuYW1lKV0gPSBjb250ZW50Owp9OwoKVmlydHVhbEZpbGVTeXN0ZW0ucHJvdG90eXBlLmJpbmRGUyA9IGZ1bmN0aW9uIChkYXRhKSB7Cgl0aGlzLmJhc2VTeXN0ZW0gPSBkYXRhIHx8IHt9Owp9OwoKCmZ1bmN0aW9uIGZpeEZpbGVuYW1lKGZpbGVuYW1lKSB7CglpZiAoZmlsZW5hbWUuaW5kZXhPZihfX2Rpcm5hbWUpID09PSAwKSB7CgkJZmlsZW5hbWUgPSBmaWxlbmFtZS5zdWJzdHJpbmcoX19kaXJuYW1lLmxlbmd0aCk7Cgl9CgoJaWYgKGZpbGVuYW1lLmluZGV4T2YoJy8nKSA9PT0gMCkgewoJCWZpbGVuYW1lID0gZmlsZW5hbWUuc3Vic3RyaW5nKDEpOwoJfQoKCXJldHVybiBmaWxlbmFtZTsKfQoKbW9kdWxlLmV4cG9ydHMgPSBuZXcgVmlydHVhbEZpbGVTeXN0ZW0oKTsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpLkJ1ZmZlciwgIi8iKSkKCi8qKiovIH0pLAovKiA5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7CiAgcmV0dXJuIHR5cGVvZiBpdCA9PT0gJ29iamVjdCcgPyBpdCAhPT0gbnVsbCA6IHR5cGVvZiBpdCA9PT0gJ2Z1bmN0aW9uJzsKfTsKCgovKioqLyB9KSwKLyogMTAgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLy8gaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvaXNzdWVzLzg2I2lzc3VlY29tbWVudC0xMTU3NTkwMjgKdmFyIGdsb2JhbCA9IG1vZHVsZS5leHBvcnRzID0gdHlwZW9mIHdpbmRvdyAhPSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuTWF0aCA9PSBNYXRoCiAgPyB3aW5kb3cgOiB0eXBlb2Ygc2VsZiAhPSAndW5kZWZpbmVkJyAmJiBzZWxmLk1hdGggPT0gTWF0aCA/IHNlbGYKICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmV3LWZ1bmMKICA6IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7CmlmICh0eXBlb2YgX19nID09ICdudW1iZXInKSBfX2cgPSBnbG9iYWw7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdW5kZWYKCgovKioqLyB9KSwKLyogMTEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLy8gc2hpbSBmb3IgdXNpbmcgcHJvY2VzcyBpbiBicm93c2VyCnZhciBwcm9jZXNzID0gbW9kdWxlLmV4cG9ydHMgPSB7fTsKCi8vIGNhY2hlZCBmcm9tIHdoYXRldmVyIGdsb2JhbCBpcyBwcmVzZW50IHNvIHRoYXQgdGVzdCBydW5uZXJzIHRoYXQgc3R1YiBpdAovLyBkb24ndCBicmVhayB0aGluZ3MuICBCdXQgd2UgbmVlZCB0byB3cmFwIGl0IGluIGEgdHJ5IGNhdGNoIGluIGNhc2UgaXQgaXMKLy8gd3JhcHBlZCBpbiBzdHJpY3QgbW9kZSBjb2RlIHdoaWNoIGRvZXNuJ3QgZGVmaW5lIGFueSBnbG9iYWxzLiAgSXQncyBpbnNpZGUgYQovLyBmdW5jdGlvbiBiZWNhdXNlIHRyeS9jYXRjaGVzIGRlb3B0aW1pemUgaW4gY2VydGFpbiBlbmdpbmVzLgoKdmFyIGNhY2hlZFNldFRpbWVvdXQ7CnZhciBjYWNoZWRDbGVhclRpbWVvdXQ7CgpmdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCkgewogICAgdGhyb3cgbmV3IEVycm9yKCdzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkJyk7Cn0KZnVuY3Rpb24gZGVmYXVsdENsZWFyVGltZW91dCAoKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ2NsZWFyVGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpOwp9CihmdW5jdGlvbiAoKSB7CiAgICB0cnkgewogICAgICAgIGlmICh0eXBlb2Ygc2V0VGltZW91dCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gc2V0VGltZW91dDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjYWNoZWRTZXRUaW1lb3V0ID0gZGVmYXVsdFNldFRpbW91dDsKICAgICAgICB9CiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgY2FjaGVkU2V0VGltZW91dCA9IGRlZmF1bHRTZXRUaW1vdXQ7CiAgICB9CiAgICB0cnkgewogICAgICAgIGlmICh0eXBlb2YgY2xlYXJUaW1lb3V0ID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgIGNhY2hlZENsZWFyVGltZW91dCA9IGNsZWFyVGltZW91dDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0OwogICAgICAgIH0KICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBkZWZhdWx0Q2xlYXJUaW1lb3V0OwogICAgfQp9ICgpKQpmdW5jdGlvbiBydW5UaW1lb3V0KGZ1bikgewogICAgaWYgKGNhY2hlZFNldFRpbWVvdXQgPT09IHNldFRpbWVvdXQpIHsKICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnMKICAgICAgICByZXR1cm4gc2V0VGltZW91dChmdW4sIDApOwogICAgfQogICAgLy8gaWYgc2V0VGltZW91dCB3YXNuJ3QgYXZhaWxhYmxlIGJ1dCB3YXMgbGF0dGVyIGRlZmluZWQKICAgIGlmICgoY2FjaGVkU2V0VGltZW91dCA9PT0gZGVmYXVsdFNldFRpbW91dCB8fCAhY2FjaGVkU2V0VGltZW91dCkgJiYgc2V0VGltZW91dCkgewogICAgICAgIGNhY2hlZFNldFRpbWVvdXQgPSBzZXRUaW1lb3V0OwogICAgICAgIHJldHVybiBzZXRUaW1lb3V0KGZ1biwgMCk7CiAgICB9CiAgICB0cnkgewogICAgICAgIC8vIHdoZW4gd2hlbiBzb21lYm9keSBoYXMgc2NyZXdlZCB3aXRoIHNldFRpbWVvdXQgYnV0IG5vIEkuRS4gbWFkZG5lc3MKICAgICAgICByZXR1cm4gY2FjaGVkU2V0VGltZW91dChmdW4sIDApOwogICAgfSBjYXRjaChlKXsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBXaGVuIHdlIGFyZSBpbiBJLkUuIGJ1dCB0aGUgc2NyaXB0IGhhcyBiZWVuIGV2YWxlZCBzbyBJLkUuIGRvZXNuJ3QgdHJ1c3QgdGhlIGdsb2JhbCBvYmplY3Qgd2hlbiBjYWxsZWQgbm9ybWFsbHkKICAgICAgICAgICAgcmV0dXJuIGNhY2hlZFNldFRpbWVvdXQuY2FsbChudWxsLCBmdW4sIDApOwogICAgICAgIH0gY2F0Y2goZSl7CiAgICAgICAgICAgIC8vIHNhbWUgYXMgYWJvdmUgYnV0IHdoZW4gaXQncyBhIHZlcnNpb24gb2YgSS5FLiB0aGF0IG11c3QgaGF2ZSB0aGUgZ2xvYmFsIG9iamVjdCBmb3IgJ3RoaXMnLCBob3BmdWxseSBvdXIgY29udGV4dCBjb3JyZWN0IG90aGVyd2lzZSBpdCB3aWxsIHRocm93IGEgZ2xvYmFsIGVycm9yCiAgICAgICAgICAgIHJldHVybiBjYWNoZWRTZXRUaW1lb3V0LmNhbGwodGhpcywgZnVuLCAwKTsKICAgICAgICB9CiAgICB9CgoKfQpmdW5jdGlvbiBydW5DbGVhclRpbWVvdXQobWFya2VyKSB7CiAgICBpZiAoY2FjaGVkQ2xlYXJUaW1lb3V0ID09PSBjbGVhclRpbWVvdXQpIHsKICAgICAgICAvL25vcm1hbCBlbnZpcm9tZW50cyBpbiBzYW5lIHNpdHVhdGlvbnMKICAgICAgICByZXR1cm4gY2xlYXJUaW1lb3V0KG1hcmtlcik7CiAgICB9CiAgICAvLyBpZiBjbGVhclRpbWVvdXQgd2Fzbid0IGF2YWlsYWJsZSBidXQgd2FzIGxhdHRlciBkZWZpbmVkCiAgICBpZiAoKGNhY2hlZENsZWFyVGltZW91dCA9PT0gZGVmYXVsdENsZWFyVGltZW91dCB8fCAhY2FjaGVkQ2xlYXJUaW1lb3V0KSAmJiBjbGVhclRpbWVvdXQpIHsKICAgICAgICBjYWNoZWRDbGVhclRpbWVvdXQgPSBjbGVhclRpbWVvdXQ7CiAgICAgICAgcmV0dXJuIGNsZWFyVGltZW91dChtYXJrZXIpOwogICAgfQogICAgdHJ5IHsKICAgICAgICAvLyB3aGVuIHdoZW4gc29tZWJvZHkgaGFzIHNjcmV3ZWQgd2l0aCBzZXRUaW1lb3V0IGJ1dCBubyBJLkUuIG1hZGRuZXNzCiAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dChtYXJrZXIpOwogICAgfSBjYXRjaCAoZSl7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgLy8gV2hlbiB3ZSBhcmUgaW4gSS5FLiBidXQgdGhlIHNjcmlwdCBoYXMgYmVlbiBldmFsZWQgc28gSS5FLiBkb2Vzbid0ICB0cnVzdCB0aGUgZ2xvYmFsIG9iamVjdCB3aGVuIGNhbGxlZCBub3JtYWxseQogICAgICAgICAgICByZXR1cm4gY2FjaGVkQ2xlYXJUaW1lb3V0LmNhbGwobnVsbCwgbWFya2VyKTsKICAgICAgICB9IGNhdGNoIChlKXsKICAgICAgICAgICAgLy8gc2FtZSBhcyBhYm92ZSBidXQgd2hlbiBpdCdzIGEgdmVyc2lvbiBvZiBJLkUuIHRoYXQgbXVzdCBoYXZlIHRoZSBnbG9iYWwgb2JqZWN0IGZvciAndGhpcycsIGhvcGZ1bGx5IG91ciBjb250ZXh0IGNvcnJlY3Qgb3RoZXJ3aXNlIGl0IHdpbGwgdGhyb3cgYSBnbG9iYWwgZXJyb3IuCiAgICAgICAgICAgIC8vIFNvbWUgdmVyc2lvbnMgb2YgSS5FLiBoYXZlIGRpZmZlcmVudCBydWxlcyBmb3IgY2xlYXJUaW1lb3V0IHZzIHNldFRpbWVvdXQKICAgICAgICAgICAgcmV0dXJuIGNhY2hlZENsZWFyVGltZW91dC5jYWxsKHRoaXMsIG1hcmtlcik7CiAgICAgICAgfQogICAgfQoKCgp9CnZhciBxdWV1ZSA9IFtdOwp2YXIgZHJhaW5pbmcgPSBmYWxzZTsKdmFyIGN1cnJlbnRRdWV1ZTsKdmFyIHF1ZXVlSW5kZXggPSAtMTsKCmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHsKICAgIGlmICghZHJhaW5pbmcgfHwgIWN1cnJlbnRRdWV1ZSkgewogICAgICAgIHJldHVybjsKICAgIH0KICAgIGRyYWluaW5nID0gZmFsc2U7CiAgICBpZiAoY3VycmVudFF1ZXVlLmxlbmd0aCkgewogICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7CiAgICB9IGVsc2UgewogICAgICAgIHF1ZXVlSW5kZXggPSAtMTsKICAgIH0KICAgIGlmIChxdWV1ZS5sZW5ndGgpIHsKICAgICAgICBkcmFpblF1ZXVlKCk7CiAgICB9Cn0KCmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7CiAgICBpZiAoZHJhaW5pbmcpIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgdGltZW91dCA9IHJ1blRpbWVvdXQoY2xlYW5VcE5leHRUaWNrKTsKICAgIGRyYWluaW5nID0gdHJ1ZTsKCiAgICB2YXIgbGVuID0gcXVldWUubGVuZ3RoOwogICAgd2hpbGUobGVuKSB7CiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7CiAgICAgICAgcXVldWUgPSBbXTsKICAgICAgICB3aGlsZSAoKytxdWV1ZUluZGV4IDwgbGVuKSB7CiAgICAgICAgICAgIGlmIChjdXJyZW50UXVldWUpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBxdWV1ZUluZGV4ID0gLTE7CiAgICAgICAgbGVuID0gcXVldWUubGVuZ3RoOwogICAgfQogICAgY3VycmVudFF1ZXVlID0gbnVsbDsKICAgIGRyYWluaW5nID0gZmFsc2U7CiAgICBydW5DbGVhclRpbWVvdXQodGltZW91dCk7Cn0KCnByb2Nlc3MubmV4dFRpY2sgPSBmdW5jdGlvbiAoZnVuKSB7CiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA+IDEpIHsKICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTsKICAgICAgICB9CiAgICB9CiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpOwogICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMSAmJiAhZHJhaW5pbmcpIHsKICAgICAgICBydW5UaW1lb3V0KGRyYWluUXVldWUpOwogICAgfQp9OwoKLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0cwpmdW5jdGlvbiBJdGVtKGZ1biwgYXJyYXkpIHsKICAgIHRoaXMuZnVuID0gZnVuOwogICAgdGhpcy5hcnJheSA9IGFycmF5Owp9Ckl0ZW0ucHJvdG90eXBlLnJ1biA9IGZ1bmN0aW9uICgpIHsKICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpOwp9Owpwcm9jZXNzLnRpdGxlID0gJ2Jyb3dzZXInOwpwcm9jZXNzLmJyb3dzZXIgPSB0cnVlOwpwcm9jZXNzLmVudiA9IHt9Owpwcm9jZXNzLmFyZ3YgPSBbXTsKcHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzCnByb2Nlc3MudmVyc2lvbnMgPSB7fTsKCmZ1bmN0aW9uIG5vb3AoKSB7fQoKcHJvY2Vzcy5vbiA9IG5vb3A7CnByb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wOwpwcm9jZXNzLm9uY2UgPSBub29wOwpwcm9jZXNzLm9mZiA9IG5vb3A7CnByb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wOwpwcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycyA9IG5vb3A7CnByb2Nlc3MuZW1pdCA9IG5vb3A7CnByb2Nlc3MucHJlcGVuZExpc3RlbmVyID0gbm9vcDsKcHJvY2Vzcy5wcmVwZW5kT25jZUxpc3RlbmVyID0gbm9vcDsKCnByb2Nlc3MubGlzdGVuZXJzID0gZnVuY3Rpb24gKG5hbWUpIHsgcmV0dXJuIFtdIH0KCnByb2Nlc3MuYmluZGluZyA9IGZ1bmN0aW9uIChuYW1lKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7Cn07Cgpwcm9jZXNzLmN3ZCA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuICcvJyB9Owpwcm9jZXNzLmNoZGlyID0gZnVuY3Rpb24gKGRpcikgewogICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTsKfTsKcHJvY2Vzcy51bWFzayA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gMDsgfTsKCgovKioqLyB9KSwKLyogMTIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIE51bWJlclQsIFByb3BlcnR5RGVzY3JpcHRvcjsKCiAgTnVtYmVyVCA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpLk51bWJlcjsKCiAgZXhwb3J0cy5yZXNvbHZlTGVuZ3RoID0gZnVuY3Rpb24obGVuZ3RoLCBzdHJlYW0sIHBhcmVudCkgewogICAgdmFyIHJlczsKICAgIGlmICh0eXBlb2YgbGVuZ3RoID09PSAnbnVtYmVyJykgewogICAgICByZXMgPSBsZW5ndGg7CiAgICB9IGVsc2UgaWYgKHR5cGVvZiBsZW5ndGggPT09ICdmdW5jdGlvbicpIHsKICAgICAgcmVzID0gbGVuZ3RoLmNhbGwocGFyZW50LCBwYXJlbnQpOwogICAgfSBlbHNlIGlmIChwYXJlbnQgJiYgdHlwZW9mIGxlbmd0aCA9PT0gJ3N0cmluZycpIHsKICAgICAgcmVzID0gcGFyZW50W2xlbmd0aF07CiAgICB9IGVsc2UgaWYgKHN0cmVhbSAmJiBsZW5ndGggaW5zdGFuY2VvZiBOdW1iZXJUKSB7CiAgICAgIHJlcyA9IGxlbmd0aC5kZWNvZGUoc3RyZWFtKTsKICAgIH0KICAgIGlmIChpc05hTihyZXMpKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignTm90IGEgZml4ZWQgc2l6ZScpOwogICAgfQogICAgcmV0dXJuIHJlczsKICB9OwoKICBQcm9wZXJ0eURlc2NyaXB0b3IgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBQcm9wZXJ0eURlc2NyaXB0b3Iob3B0cykgewogICAgICB2YXIga2V5LCB2YWw7CiAgICAgIGlmIChvcHRzID09IG51bGwpIHsKICAgICAgICBvcHRzID0ge307CiAgICAgIH0KICAgICAgdGhpcy5lbnVtZXJhYmxlID0gdHJ1ZTsKICAgICAgdGhpcy5jb25maWd1cmFibGUgPSB0cnVlOwogICAgICBmb3IgKGtleSBpbiBvcHRzKSB7CiAgICAgICAgdmFsID0gb3B0c1trZXldOwogICAgICAgIHRoaXNba2V5XSA9IHZhbDsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBQcm9wZXJ0eURlc2NyaXB0b3I7CgogIH0pKCk7CgogIGV4cG9ydHMuUHJvcGVydHlEZXNjcmlwdG9yID0gUHJvcGVydHlEZXNjcmlwdG9yOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGRQID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKdmFyIGNyZWF0ZURlc2MgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3KTsKbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpID8gZnVuY3Rpb24gKG9iamVjdCwga2V5LCB2YWx1ZSkgewogIHJldHVybiBkUC5mKG9iamVjdCwga2V5LCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7Cn0gOiBmdW5jdGlvbiAob2JqZWN0LCBrZXksIHZhbHVlKSB7CiAgb2JqZWN0W2tleV0gPSB2YWx1ZTsKICByZXR1cm4gb2JqZWN0Owp9OwoKCi8qKiovIH0pLAovKiAxNCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgaXNPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpOwptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkgewogIGlmICghaXNPYmplY3QoaXQpKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBhbiBvYmplY3QhJyk7CiAgcmV0dXJuIGl0Owp9OwoKCi8qKiovIH0pLAovKiAxNSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy4KLy8KLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQovLyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdAovLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUKLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci8vCi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgovLwovLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwovLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4KLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgovLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCgptb2R1bGUuZXhwb3J0cyA9IFN0cmVhbTsKCnZhciBFRSA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpLkV2ZW50RW1pdHRlcjsKdmFyIGluaGVyaXRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSk7Cgppbmhlcml0cyhTdHJlYW0sIEVFKTsKU3RyZWFtLlJlYWRhYmxlID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NSk7ClN0cmVhbS5Xcml0YWJsZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ2KTsKU3RyZWFtLkR1cGxleCA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ3KTsKU3RyZWFtLlRyYW5zZm9ybSA9IF9fd2VicGFja19yZXF1aXJlX18oMTQ4KTsKU3RyZWFtLlBhc3NUaHJvdWdoID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNDkpOwoKLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC40LngKU3RyZWFtLlN0cmVhbSA9IFN0cmVhbTsKCgoKLy8gb2xkLXN0eWxlIHN0cmVhbXMuICBOb3RlIHRoYXQgdGhlIHBpcGUgbWV0aG9kICh0aGUgb25seSByZWxldmFudAovLyBwYXJ0IG9mIHRoaXMgY2xhc3MpIGlzIG92ZXJyaWRkZW4gaW4gdGhlIFJlYWRhYmxlIGNsYXNzLgoKZnVuY3Rpb24gU3RyZWFtKCkgewogIEVFLmNhbGwodGhpcyk7Cn0KClN0cmVhbS5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKGRlc3QsIG9wdGlvbnMpIHsKICB2YXIgc291cmNlID0gdGhpczsKCiAgZnVuY3Rpb24gb25kYXRhKGNodW5rKSB7CiAgICBpZiAoZGVzdC53cml0YWJsZSkgewogICAgICBpZiAoZmFsc2UgPT09IGRlc3Qud3JpdGUoY2h1bmspICYmIHNvdXJjZS5wYXVzZSkgewogICAgICAgIHNvdXJjZS5wYXVzZSgpOwogICAgICB9CiAgICB9CiAgfQoKICBzb3VyY2Uub24oJ2RhdGEnLCBvbmRhdGEpOwoKICBmdW5jdGlvbiBvbmRyYWluKCkgewogICAgaWYgKHNvdXJjZS5yZWFkYWJsZSAmJiBzb3VyY2UucmVzdW1lKSB7CiAgICAgIHNvdXJjZS5yZXN1bWUoKTsKICAgIH0KICB9CgogIGRlc3Qub24oJ2RyYWluJywgb25kcmFpbik7CgogIC8vIElmIHRoZSAnZW5kJyBvcHRpb24gaXMgbm90IHN1cHBsaWVkLCBkZXN0LmVuZCgpIHdpbGwgYmUgY2FsbGVkIHdoZW4KICAvLyBzb3VyY2UgZ2V0cyB0aGUgJ2VuZCcgb3IgJ2Nsb3NlJyBldmVudHMuICBPbmx5IGRlc3QuZW5kKCkgb25jZS4KICBpZiAoIWRlc3QuX2lzU3RkaW8gJiYgKCFvcHRpb25zIHx8IG9wdGlvbnMuZW5kICE9PSBmYWxzZSkpIHsKICAgIHNvdXJjZS5vbignZW5kJywgb25lbmQpOwogICAgc291cmNlLm9uKCdjbG9zZScsIG9uY2xvc2UpOwogIH0KCiAgdmFyIGRpZE9uRW5kID0gZmFsc2U7CiAgZnVuY3Rpb24gb25lbmQoKSB7CiAgICBpZiAoZGlkT25FbmQpIHJldHVybjsKICAgIGRpZE9uRW5kID0gdHJ1ZTsKCiAgICBkZXN0LmVuZCgpOwogIH0KCgogIGZ1bmN0aW9uIG9uY2xvc2UoKSB7CiAgICBpZiAoZGlkT25FbmQpIHJldHVybjsKICAgIGRpZE9uRW5kID0gdHJ1ZTsKCiAgICBpZiAodHlwZW9mIGRlc3QuZGVzdHJveSA9PT0gJ2Z1bmN0aW9uJykgZGVzdC5kZXN0cm95KCk7CiAgfQoKICAvLyBkb24ndCBsZWF2ZSBkYW5nbGluZyBwaXBlcyB3aGVuIHRoZXJlIGFyZSBlcnJvcnMuCiAgZnVuY3Rpb24gb25lcnJvcihlcikgewogICAgY2xlYW51cCgpOwogICAgaWYgKEVFLmxpc3RlbmVyQ291bnQodGhpcywgJ2Vycm9yJykgPT09IDApIHsKICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCBzdHJlYW0gZXJyb3IgaW4gcGlwZS4KICAgIH0KICB9CgogIHNvdXJjZS5vbignZXJyb3InLCBvbmVycm9yKTsKICBkZXN0Lm9uKCdlcnJvcicsIG9uZXJyb3IpOwoKICAvLyByZW1vdmUgYWxsIHRoZSBldmVudCBsaXN0ZW5lcnMgdGhhdCB3ZXJlIGFkZGVkLgogIGZ1bmN0aW9uIGNsZWFudXAoKSB7CiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2RhdGEnLCBvbmRhdGEpOwogICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZHJhaW4nLCBvbmRyYWluKTsKCiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIG9uZW5kKTsKICAgIHNvdXJjZS5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBvbmNsb3NlKTsKCiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25lcnJvcik7CiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uZXJyb3IpOwoKICAgIHNvdXJjZS5yZW1vdmVMaXN0ZW5lcignZW5kJywgY2xlYW51cCk7CiAgICBzb3VyY2UucmVtb3ZlTGlzdGVuZXIoJ2Nsb3NlJywgY2xlYW51cCk7CgogICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBjbGVhbnVwKTsKICB9CgogIHNvdXJjZS5vbignZW5kJywgY2xlYW51cCk7CiAgc291cmNlLm9uKCdjbG9zZScsIGNsZWFudXApOwoKICBkZXN0Lm9uKCdjbG9zZScsIGNsZWFudXApOwoKICBkZXN0LmVtaXQoJ3BpcGUnLCBzb3VyY2UpOwoKICAvLyBBbGxvdyBmb3IgdW5peC1saWtlIHVzYWdlOiBBLnBpcGUoQikucGlwZShDKQogIHJldHVybiBkZXN0Owp9OwoKCi8qKiovIH0pLAovKiAxNiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Ci8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLgovLwovLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQovLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi8vICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAovLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0Ci8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZQovLyBmb2xsb3dpbmcgY29uZGl0aW9uczoKLy8KLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi8vCi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTgovLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCi8vIGEgZHVwbGV4IHN0cmVhbSBpcyBqdXN0IGEgc3RyZWFtIHRoYXQgaXMgYm90aCByZWFkYWJsZSBhbmQgd3JpdGFibGUuCi8vIFNpbmNlIEpTIGRvZXNuJ3QgaGF2ZSBtdWx0aXBsZSBwcm90b3R5cGFsIGluaGVyaXRhbmNlLCB0aGlzIGNsYXNzCi8vIHByb3RvdHlwYWxseSBpbmhlcml0cyBmcm9tIFJlYWRhYmxlLCBhbmQgdGhlbiBwYXJhc2l0aWNhbGx5IGZyb20KLy8gV3JpdGFibGUuCgoKCi8qPHJlcGxhY2VtZW50PiovCgp2YXIgcHJvY2Vzc05leHRUaWNrID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMikubmV4dFRpY2s7Ci8qPC9yZXBsYWNlbWVudD4qLwoKLyo8cmVwbGFjZW1lbnQ+Ki8KdmFyIG9iamVjdEtleXMgPSBPYmplY3Qua2V5cyB8fCBmdW5jdGlvbiAob2JqKSB7CiAgdmFyIGtleXMgPSBbXTsKICBmb3IgKHZhciBrZXkgaW4gb2JqKSB7CiAgICBrZXlzLnB1c2goa2V5KTsKICB9cmV0dXJuIGtleXM7Cn07Ci8qPC9yZXBsYWNlbWVudD4qLwoKbW9kdWxlLmV4cG9ydHMgPSBEdXBsZXg7CgovKjxyZXBsYWNlbWVudD4qLwp2YXIgdXRpbCA9IF9fd2VicGFja19yZXF1aXJlX18oMjUpOwp1dGlsLmluaGVyaXRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMSk7Ci8qPC9yZXBsYWNlbWVudD4qLwoKdmFyIFJlYWRhYmxlID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4Myk7CnZhciBXcml0YWJsZSA9IF9fd2VicGFja19yZXF1aXJlX18oNDYpOwoKdXRpbC5pbmhlcml0cyhEdXBsZXgsIFJlYWRhYmxlKTsKCnZhciBrZXlzID0gb2JqZWN0S2V5cyhXcml0YWJsZS5wcm90b3R5cGUpOwpmb3IgKHZhciB2ID0gMDsgdiA8IGtleXMubGVuZ3RoOyB2KyspIHsKICB2YXIgbWV0aG9kID0ga2V5c1t2XTsKICBpZiAoIUR1cGxleC5wcm90b3R5cGVbbWV0aG9kXSkgRHVwbGV4LnByb3RvdHlwZVttZXRob2RdID0gV3JpdGFibGUucHJvdG90eXBlW21ldGhvZF07Cn0KCmZ1bmN0aW9uIER1cGxleChvcHRpb25zKSB7CiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIER1cGxleCkpIHJldHVybiBuZXcgRHVwbGV4KG9wdGlvbnMpOwoKICBSZWFkYWJsZS5jYWxsKHRoaXMsIG9wdGlvbnMpOwogIFdyaXRhYmxlLmNhbGwodGhpcywgb3B0aW9ucyk7CgogIGlmIChvcHRpb25zICYmIG9wdGlvbnMucmVhZGFibGUgPT09IGZhbHNlKSB0aGlzLnJlYWRhYmxlID0gZmFsc2U7CgogIGlmIChvcHRpb25zICYmIG9wdGlvbnMud3JpdGFibGUgPT09IGZhbHNlKSB0aGlzLndyaXRhYmxlID0gZmFsc2U7CgogIHRoaXMuYWxsb3dIYWxmT3BlbiA9IHRydWU7CiAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5hbGxvd0hhbGZPcGVuID09PSBmYWxzZSkgdGhpcy5hbGxvd0hhbGZPcGVuID0gZmFsc2U7CgogIHRoaXMub25jZSgnZW5kJywgb25lbmQpOwp9CgovLyB0aGUgbm8taGFsZi1vcGVuIGVuZm9yY2VyCmZ1bmN0aW9uIG9uZW5kKCkgewogIC8vIGlmIHdlIGFsbG93IGhhbGYtb3BlbiBzdGF0ZSwgb3IgaWYgdGhlIHdyaXRhYmxlIHNpZGUgZW5kZWQsCiAgLy8gdGhlbiB3ZSdyZSBvay4KICBpZiAodGhpcy5hbGxvd0hhbGZPcGVuIHx8IHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQpIHJldHVybjsKCiAgLy8gbm8gbW9yZSBkYXRhIGNhbiBiZSB3cml0dGVuLgogIC8vIEJ1dCBhbGxvdyBtb3JlIHdyaXRlcyB0byBoYXBwZW4gaW4gdGhpcyB0aWNrLgogIHByb2Nlc3NOZXh0VGljayhvbkVuZE5ULCB0aGlzKTsKfQoKZnVuY3Rpb24gb25FbmROVChzZWxmKSB7CiAgc2VsZi5lbmQoKTsKfQoKT2JqZWN0LmRlZmluZVByb3BlcnR5KER1cGxleC5wcm90b3R5cGUsICdkZXN0cm95ZWQnLCB7CiAgZ2V0OiBmdW5jdGlvbiAoKSB7CiAgICBpZiAodGhpcy5fcmVhZGFibGVTdGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3dyaXRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQgJiYgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7CiAgfSwKICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgLy8gd2UgaWdub3JlIHRoZSB2YWx1ZSBpZiB0aGUgc3RyZWFtCiAgICAvLyBoYXMgbm90IGJlZW4gaW5pdGlhbGl6ZWQgeWV0CiAgICBpZiAodGhpcy5fcmVhZGFibGVTdGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3dyaXRhYmxlU3RhdGUgPT09IHVuZGVmaW5lZCkgewogICAgICByZXR1cm47CiAgICB9CgogICAgLy8gYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdGhlIHVzZXIgaXMgZXhwbGljaXRseQogICAgLy8gbWFuYWdpbmcgZGVzdHJveWVkCiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCA9IHZhbHVlOwogICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB2YWx1ZTsKICB9Cn0pOwoKRHVwbGV4LnByb3RvdHlwZS5fZGVzdHJveSA9IGZ1bmN0aW9uIChlcnIsIGNiKSB7CiAgdGhpcy5wdXNoKG51bGwpOwogIHRoaXMuZW5kKCk7CgogIHByb2Nlc3NOZXh0VGljayhjYiwgZXJyKTsKfTsKCmZ1bmN0aW9uIGZvckVhY2goeHMsIGYpIHsKICBmb3IgKHZhciBpID0gMCwgbCA9IHhzLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgZih4c1tpXSwgaSk7CiAgfQp9CgovKioqLyB9KSwKLyogMTcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gdG8gaW5kZXhlZCBvYmplY3QsIHRvT2JqZWN0IHdpdGggZmFsbGJhY2sgZm9yIG5vbi1hcnJheS1saWtlIEVTMyBzdHJpbmdzCnZhciBJT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1NCk7CnZhciBkZWZpbmVkID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1Nik7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7CiAgcmV0dXJuIElPYmplY3QoZGVmaW5lZChpdCkpOwp9OwoKCi8qKiovIH0pLAovKiAxOCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7Cgp2YXIgaGFzT3duUHJvcGVydHkgPSB7fS5oYXNPd25Qcm9wZXJ0eTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIGtleSkgewogIHJldHVybiBoYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpOwp9OwoKCi8qKiovIH0pLAovKiAxOSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7Cgptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChleGVjKSB7CiAgdHJ5IHsKICAgIHJldHVybiAhIWV4ZWMoKTsKICB9IGNhdGNoIChlKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9Cn07CgoKLyoqKi8gfSksCi8qIDIwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIG9wdGlvbmFsIC8gc2ltcGxlIGNvbnRleHQgYmluZGluZwp2YXIgYUZ1bmN0aW9uID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5Nyk7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGZuLCB0aGF0LCBsZW5ndGgpIHsKICBhRnVuY3Rpb24oZm4pOwogIGlmICh0aGF0ID09PSB1bmRlZmluZWQpIHJldHVybiBmbjsKICBzd2l0Y2ggKGxlbmd0aCkgewogICAgY2FzZSAxOiByZXR1cm4gZnVuY3Rpb24gKGEpIHsKICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSk7CiAgICB9OwogICAgY2FzZSAyOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIpIHsKICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYik7CiAgICB9OwogICAgY2FzZSAzOiByZXR1cm4gZnVuY3Rpb24gKGEsIGIsIGMpIHsKICAgICAgcmV0dXJuIGZuLmNhbGwodGhhdCwgYSwgYiwgYyk7CiAgICB9OwogIH0KICByZXR1cm4gZnVuY3Rpb24gKC8qIC4uLmFyZ3MgKi8pIHsKICAgIHJldHVybiBmbi5hcHBseSh0aGF0LCBhcmd1bWVudHMpOwogIH07Cn07CgoKLyoqKi8gfSksCi8qIDIxICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCmlmICh0eXBlb2YgT2JqZWN0LmNyZWF0ZSA9PT0gJ2Z1bmN0aW9uJykgewogIC8vIGltcGxlbWVudGF0aW9uIGZyb20gc3RhbmRhcmQgbm9kZS5qcyAndXRpbCcgbW9kdWxlCiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHsKICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yCiAgICBjdG9yLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDdG9yLnByb3RvdHlwZSwgewogICAgICBjb25zdHJ1Y3RvcjogewogICAgICAgIHZhbHVlOiBjdG9yLAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9CiAgICB9KTsKICB9Owp9IGVsc2UgewogIC8vIG9sZCBzY2hvb2wgc2hpbSBmb3Igb2xkIGJyb3dzZXJzCiAgbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmhlcml0cyhjdG9yLCBzdXBlckN0b3IpIHsKICAgIGN0b3Iuc3VwZXJfID0gc3VwZXJDdG9yCiAgICB2YXIgVGVtcEN0b3IgPSBmdW5jdGlvbiAoKSB7fQogICAgVGVtcEN0b3IucHJvdG90eXBlID0gc3VwZXJDdG9yLnByb3RvdHlwZQogICAgY3Rvci5wcm90b3R5cGUgPSBuZXcgVGVtcEN0b3IoKQogICAgY3Rvci5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBjdG9yCiAgfQp9CgoKLyoqKi8gfSksCi8qIDIyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBEZWNvZGVTdHJlYW0sIEZpeGVkLCBOdW1iZXJULAogICAgX19oYXNQcm9wID0ge30uaGFzT3duUHJvcGVydHksCiAgICBfX2V4dGVuZHMgPSBmdW5jdGlvbihjaGlsZCwgcGFyZW50KSB7IGZvciAodmFyIGtleSBpbiBwYXJlbnQpIHsgaWYgKF9faGFzUHJvcC5jYWxsKHBhcmVudCwga2V5KSkgY2hpbGRba2V5XSA9IHBhcmVudFtrZXldOyB9IGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfSBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7IGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7IGNoaWxkLl9fc3VwZXJfXyA9IHBhcmVudC5wcm90b3R5cGU7IHJldHVybiBjaGlsZDsgfTsKCiAgRGVjb2RlU3RyZWFtID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1MSk7CgogIE51bWJlclQgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBOdW1iZXJUKHR5cGUsIGVuZGlhbikgewogICAgICB0aGlzLnR5cGUgPSB0eXBlOwogICAgICB0aGlzLmVuZGlhbiA9IGVuZGlhbiAhPSBudWxsID8gZW5kaWFuIDogJ0JFJzsKICAgICAgdGhpcy5mbiA9IHRoaXMudHlwZTsKICAgICAgaWYgKHRoaXMudHlwZVt0aGlzLnR5cGUubGVuZ3RoIC0gMV0gIT09ICc4JykgewogICAgICAgIHRoaXMuZm4gKz0gdGhpcy5lbmRpYW47CiAgICAgIH0KICAgIH0KCiAgICBOdW1iZXJULnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBEZWNvZGVTdHJlYW0uVFlQRVNbdGhpcy50eXBlXTsKICAgIH07CgogICAgTnVtYmVyVC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgIHJldHVybiBzdHJlYW1bJ3JlYWQnICsgdGhpcy5mbl0oKTsKICAgIH07CgogICAgTnVtYmVyVC5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24oc3RyZWFtLCB2YWwpIHsKICAgICAgcmV0dXJuIHN0cmVhbVsnd3JpdGUnICsgdGhpcy5mbl0odmFsKTsKICAgIH07CgogICAgcmV0dXJuIE51bWJlclQ7CgogIH0pKCk7CgogIGV4cG9ydHMuTnVtYmVyID0gTnVtYmVyVDsKCiAgZXhwb3J0cy51aW50OCA9IG5ldyBOdW1iZXJUKCdVSW50OCcpOwoKICBleHBvcnRzLnVpbnQxNmJlID0gZXhwb3J0cy51aW50MTYgPSBuZXcgTnVtYmVyVCgnVUludDE2JywgJ0JFJyk7CgogIGV4cG9ydHMudWludDE2bGUgPSBuZXcgTnVtYmVyVCgnVUludDE2JywgJ0xFJyk7CgogIGV4cG9ydHMudWludDI0YmUgPSBleHBvcnRzLnVpbnQyNCA9IG5ldyBOdW1iZXJUKCdVSW50MjQnLCAnQkUnKTsKCiAgZXhwb3J0cy51aW50MjRsZSA9IG5ldyBOdW1iZXJUKCdVSW50MjQnLCAnTEUnKTsKCiAgZXhwb3J0cy51aW50MzJiZSA9IGV4cG9ydHMudWludDMyID0gbmV3IE51bWJlclQoJ1VJbnQzMicsICdCRScpOwoKICBleHBvcnRzLnVpbnQzMmxlID0gbmV3IE51bWJlclQoJ1VJbnQzMicsICdMRScpOwoKICBleHBvcnRzLmludDggPSBuZXcgTnVtYmVyVCgnSW50OCcpOwoKICBleHBvcnRzLmludDE2YmUgPSBleHBvcnRzLmludDE2ID0gbmV3IE51bWJlclQoJ0ludDE2JywgJ0JFJyk7CgogIGV4cG9ydHMuaW50MTZsZSA9IG5ldyBOdW1iZXJUKCdJbnQxNicsICdMRScpOwoKICBleHBvcnRzLmludDI0YmUgPSBleHBvcnRzLmludDI0ID0gbmV3IE51bWJlclQoJ0ludDI0JywgJ0JFJyk7CgogIGV4cG9ydHMuaW50MjRsZSA9IG5ldyBOdW1iZXJUKCdJbnQyNCcsICdMRScpOwoKICBleHBvcnRzLmludDMyYmUgPSBleHBvcnRzLmludDMyID0gbmV3IE51bWJlclQoJ0ludDMyJywgJ0JFJyk7CgogIGV4cG9ydHMuaW50MzJsZSA9IG5ldyBOdW1iZXJUKCdJbnQzMicsICdMRScpOwoKICBleHBvcnRzLmZsb2F0YmUgPSBleHBvcnRzLmZsb2F0ID0gbmV3IE51bWJlclQoJ0Zsb2F0JywgJ0JFJyk7CgogIGV4cG9ydHMuZmxvYXRsZSA9IG5ldyBOdW1iZXJUKCdGbG9hdCcsICdMRScpOwoKICBleHBvcnRzLmRvdWJsZWJlID0gZXhwb3J0cy5kb3VibGUgPSBuZXcgTnVtYmVyVCgnRG91YmxlJywgJ0JFJyk7CgogIGV4cG9ydHMuZG91YmxlbGUgPSBuZXcgTnVtYmVyVCgnRG91YmxlJywgJ0xFJyk7CgogIEZpeGVkID0gKGZ1bmN0aW9uKF9zdXBlcikgewogICAgX19leHRlbmRzKEZpeGVkLCBfc3VwZXIpOwoKICAgIGZ1bmN0aW9uIEZpeGVkKHNpemUsIGVuZGlhbiwgZnJhY0JpdHMpIHsKICAgICAgaWYgKGZyYWNCaXRzID09IG51bGwpIHsKICAgICAgICBmcmFjQml0cyA9IHNpemUgPj4gMTsKICAgICAgfQogICAgICBGaXhlZC5fX3N1cGVyX18uY29uc3RydWN0b3IuY2FsbCh0aGlzLCAiSW50IiArIHNpemUsIGVuZGlhbik7CiAgICAgIHRoaXMuX3BvaW50ID0gMSA8PCBmcmFjQml0czsKICAgIH0KCiAgICBGaXhlZC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgIHJldHVybiBGaXhlZC5fX3N1cGVyX18uZGVjb2RlLmNhbGwodGhpcywgc3RyZWFtKSAvIHRoaXMuX3BvaW50OwogICAgfTsKCiAgICBGaXhlZC5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24oc3RyZWFtLCB2YWwpIHsKICAgICAgcmV0dXJuIEZpeGVkLl9fc3VwZXJfXy5lbmNvZGUuY2FsbCh0aGlzLCBzdHJlYW0sIHZhbCAqIHRoaXMuX3BvaW50IHwgMCk7CiAgICB9OwoKICAgIHJldHVybiBGaXhlZDsKCiAgfSkoTnVtYmVyVCk7CgogIGV4cG9ydHMuRml4ZWQgPSBGaXhlZDsKCiAgZXhwb3J0cy5maXhlZDE2YmUgPSBleHBvcnRzLmZpeGVkMTYgPSBuZXcgRml4ZWQoMTYsICdCRScpOwoKICBleHBvcnRzLmZpeGVkMTZsZSA9IG5ldyBGaXhlZCgxNiwgJ0xFJyk7CgogIGV4cG9ydHMuZml4ZWQzMmJlID0gZXhwb3J0cy5maXhlZDMyID0gbmV3IEZpeGVkKDMyLCAnQkUnKTsKCiAgZXhwb3J0cy5maXhlZDMybGUgPSBuZXcgRml4ZWQoMzIsICdMRScpOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMjMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHMgPSB7fTsKCgovKioqLyB9KSwKLyogMjQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKdmFyICRhdCA9IF9fd2VicGFja19yZXF1aXJlX18oMjA3KSh0cnVlKTsKCi8vIDIxLjEuMy4yNyBTdHJpbmcucHJvdG90eXBlW0BAaXRlcmF0b3JdKCkKX193ZWJwYWNrX3JlcXVpcmVfXyg2MSkoU3RyaW5nLCAnU3RyaW5nJywgZnVuY3Rpb24gKGl0ZXJhdGVkKSB7CiAgdGhpcy5fdCA9IFN0cmluZyhpdGVyYXRlZCk7IC8vIHRhcmdldAogIHRoaXMuX2kgPSAwOyAgICAgICAgICAgICAgICAvLyBuZXh0IGluZGV4Ci8vIDIxLjEuNS4yLjEgJVN0cmluZ0l0ZXJhdG9yUHJvdG90eXBlJS5uZXh0KCkKfSwgZnVuY3Rpb24gKCkgewogIHZhciBPID0gdGhpcy5fdDsKICB2YXIgaW5kZXggPSB0aGlzLl9pOwogIHZhciBwb2ludDsKICBpZiAoaW5kZXggPj0gTy5sZW5ndGgpIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTsKICBwb2ludCA9ICRhdChPLCBpbmRleCk7CiAgdGhpcy5faSArPSBwb2ludC5sZW5ndGg7CiAgcmV0dXJuIHsgdmFsdWU6IHBvaW50LCBkb25lOiBmYWxzZSB9Owp9KTsKCgovKioqLyB9KSwKLyogMjUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKEJ1ZmZlcikgey8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLgovLwovLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQovLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi8vICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAovLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0Ci8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZQovLyBmb2xsb3dpbmcgY29uZGl0aW9uczoKLy8KLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi8vCi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTgovLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCi8vIE5PVEU6IFRoZXNlIHR5cGUgY2hlY2tpbmcgZnVuY3Rpb25zIGludGVudGlvbmFsbHkgZG9uJ3QgdXNlIGBpbnN0YW5jZW9mYAovLyBiZWNhdXNlIGl0IGlzIGZyYWdpbGUgYW5kIGNhbiBiZSBlYXNpbHkgZmFrZWQgd2l0aCBgT2JqZWN0LmNyZWF0ZSgpYC4KCmZ1bmN0aW9uIGlzQXJyYXkoYXJnKSB7CiAgaWYgKEFycmF5LmlzQXJyYXkpIHsKICAgIHJldHVybiBBcnJheS5pc0FycmF5KGFyZyk7CiAgfQogIHJldHVybiBvYmplY3RUb1N0cmluZyhhcmcpID09PSAnW29iamVjdCBBcnJheV0nOwp9CmV4cG9ydHMuaXNBcnJheSA9IGlzQXJyYXk7CgpmdW5jdGlvbiBpc0Jvb2xlYW4oYXJnKSB7CiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdib29sZWFuJzsKfQpleHBvcnRzLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjsKCmZ1bmN0aW9uIGlzTnVsbChhcmcpIHsKICByZXR1cm4gYXJnID09PSBudWxsOwp9CmV4cG9ydHMuaXNOdWxsID0gaXNOdWxsOwoKZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQoYXJnKSB7CiAgcmV0dXJuIGFyZyA9PSBudWxsOwp9CmV4cG9ydHMuaXNOdWxsT3JVbmRlZmluZWQgPSBpc051bGxPclVuZGVmaW5lZDsKCmZ1bmN0aW9uIGlzTnVtYmVyKGFyZykgewogIHJldHVybiB0eXBlb2YgYXJnID09PSAnbnVtYmVyJzsKfQpleHBvcnRzLmlzTnVtYmVyID0gaXNOdW1iZXI7CgpmdW5jdGlvbiBpc1N0cmluZyhhcmcpIHsKICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ3N0cmluZyc7Cn0KZXhwb3J0cy5pc1N0cmluZyA9IGlzU3RyaW5nOwoKZnVuY3Rpb24gaXNTeW1ib2woYXJnKSB7CiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnOwp9CmV4cG9ydHMuaXNTeW1ib2wgPSBpc1N5bWJvbDsKCmZ1bmN0aW9uIGlzVW5kZWZpbmVkKGFyZykgewogIHJldHVybiBhcmcgPT09IHZvaWQgMDsKfQpleHBvcnRzLmlzVW5kZWZpbmVkID0gaXNVbmRlZmluZWQ7CgpmdW5jdGlvbiBpc1JlZ0V4cChyZSkgewogIHJldHVybiBvYmplY3RUb1N0cmluZyhyZSkgPT09ICdbb2JqZWN0IFJlZ0V4cF0nOwp9CmV4cG9ydHMuaXNSZWdFeHAgPSBpc1JlZ0V4cDsKCmZ1bmN0aW9uIGlzT2JqZWN0KGFyZykgewogIHJldHVybiB0eXBlb2YgYXJnID09PSAnb2JqZWN0JyAmJiBhcmcgIT09IG51bGw7Cn0KZXhwb3J0cy5pc09iamVjdCA9IGlzT2JqZWN0OwoKZnVuY3Rpb24gaXNEYXRlKGQpIHsKICByZXR1cm4gb2JqZWN0VG9TdHJpbmcoZCkgPT09ICdbb2JqZWN0IERhdGVdJzsKfQpleHBvcnRzLmlzRGF0ZSA9IGlzRGF0ZTsKCmZ1bmN0aW9uIGlzRXJyb3IoZSkgewogIHJldHVybiAob2JqZWN0VG9TdHJpbmcoZSkgPT09ICdbb2JqZWN0IEVycm9yXScgfHwgZSBpbnN0YW5jZW9mIEVycm9yKTsKfQpleHBvcnRzLmlzRXJyb3IgPSBpc0Vycm9yOwoKZnVuY3Rpb24gaXNGdW5jdGlvbihhcmcpIHsKICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJzsKfQpleHBvcnRzLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uOwoKZnVuY3Rpb24gaXNQcmltaXRpdmUoYXJnKSB7CiAgcmV0dXJuIGFyZyA9PT0gbnVsbCB8fAogICAgICAgICB0eXBlb2YgYXJnID09PSAnYm9vbGVhbicgfHwKICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ251bWJlcicgfHwKICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3N0cmluZycgfHwKICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3N5bWJvbCcgfHwgIC8vIEVTNiBzeW1ib2wKICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ3VuZGVmaW5lZCc7Cn0KZXhwb3J0cy5pc1ByaW1pdGl2ZSA9IGlzUHJpbWl0aXZlOwoKZXhwb3J0cy5pc0J1ZmZlciA9IEJ1ZmZlci5pc0J1ZmZlcjsKCmZ1bmN0aW9uIG9iamVjdFRvU3RyaW5nKG8pIHsKICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pOwp9CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIpKQoKLyoqKi8gfSksCi8qIDI2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihCdWZmZXIpIHsvLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgoKLyoKUERGT2JqZWN0IC0gY29udmVydHMgSmF2YVNjcmlwdCB0eXBlcyBpbnRvIHRoZWlyIGNvcnJpc3BvbmRpbmcgUERGIHR5cGVzLgpCeSBEZXZvbiBHb3ZldHQKICovCgooZnVuY3Rpb24oKSB7CiAgdmFyIFBERk9iamVjdCwgUERGUmVmZXJlbmNlOwoKICBQREZPYmplY3QgPSAoZnVuY3Rpb24oKSB7CiAgICB2YXIgZXNjYXBhYmxlLCBlc2NhcGFibGVSZSwgcGFkLCBzd2FwQnl0ZXM7CgogICAgZnVuY3Rpb24gUERGT2JqZWN0KCkge30KCiAgICBwYWQgPSBmdW5jdGlvbihzdHIsIGxlbmd0aCkgewogICAgICByZXR1cm4gKEFycmF5KGxlbmd0aCArIDEpLmpvaW4oJzAnKSArIHN0cikuc2xpY2UoLWxlbmd0aCk7CiAgICB9OwoKICAgIGVzY2FwYWJsZVJlID0gL1tcblxyXHRcYlxmXChcKVxcXS9nOwoKICAgIGVzY2FwYWJsZSA9IHsKICAgICAgJ1xuJzogJ1xcbicsCiAgICAgICdccic6ICdcXHInLAogICAgICAnXHQnOiAnXFx0JywKICAgICAgJ1xiJzogJ1xcYicsCiAgICAgICdcZic6ICdcXGYnLAogICAgICAnXFwnOiAnXFxcXCcsCiAgICAgICcoJzogJ1xcKCcsCiAgICAgICcpJzogJ1xcKScKICAgIH07CgogICAgc3dhcEJ5dGVzID0gZnVuY3Rpb24oYnVmZikgewogICAgICB2YXIgYSwgaSwgaiwgbCwgcmVmOwogICAgICBsID0gYnVmZi5sZW5ndGg7CiAgICAgIGlmIChsICYgMHgwMSkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiQnVmZmVyIGxlbmd0aCBtdXN0IGJlIGV2ZW4iKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBmb3IgKGkgPSBqID0gMCwgcmVmID0gbCAtIDE7IGogPCByZWY7IGkgPSBqICs9IDIpIHsKICAgICAgICAgIGEgPSBidWZmW2ldOwogICAgICAgICAgYnVmZltpXSA9IGJ1ZmZbaSArIDFdOwogICAgICAgICAgYnVmZltpICsgMV0gPSBhOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYnVmZjsKICAgIH07CgogICAgUERGT2JqZWN0LmNvbnZlcnQgPSBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgdmFyIGUsIGksIGlzVW5pY29kZSwgaXRlbXMsIGosIGtleSwgb3V0LCByZWYsIHN0cmluZywgdmFsOwogICAgICBpZiAodHlwZW9mIG9iamVjdCA9PT0gJ3N0cmluZycpIHsKICAgICAgICByZXR1cm4gJy8nICsgb2JqZWN0OwogICAgICB9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5jZW9mIFN0cmluZykgewogICAgICAgIHN0cmluZyA9IG9iamVjdDsKICAgICAgICBpc1VuaWNvZGUgPSBmYWxzZTsKICAgICAgICBmb3IgKGkgPSBqID0gMCwgcmVmID0gc3RyaW5nLmxlbmd0aDsgaiA8IHJlZjsgaSA9IGogKz0gMSkgewogICAgICAgICAgaWYgKHN0cmluZy5jaGFyQ29kZUF0KGkpID4gMHg3ZikgewogICAgICAgICAgICBpc1VuaWNvZGUgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGlzVW5pY29kZSkgewogICAgICAgICAgc3RyaW5nID0gc3dhcEJ5dGVzKG5ldyBCdWZmZXIoJ1x1ZmVmZicgKyBzdHJpbmcsICd1dGYxNmxlJykpLnRvU3RyaW5nKCdiaW5hcnknKTsKICAgICAgICB9CiAgICAgICAgc3RyaW5nID0gc3RyaW5nLnJlcGxhY2UoZXNjYXBhYmxlUmUsIGZ1bmN0aW9uKGMpIHsKICAgICAgICAgIHJldHVybiBlc2NhcGFibGVbY107CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuICcoJyArIHN0cmluZyArICcpJzsKICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIob2JqZWN0KSkgewogICAgICAgIHJldHVybiAnPCcgKyBvYmplY3QudG9TdHJpbmcoJ2hleCcpICsgJz4nOwogICAgICB9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5jZW9mIFBERlJlZmVyZW5jZSkgewogICAgICAgIHJldHVybiBvYmplY3QudG9TdHJpbmcoKTsKICAgICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBEYXRlKSB7CiAgICAgICAgcmV0dXJuICcoRDonICsgcGFkKG9iamVjdC5nZXRVVENGdWxsWWVhcigpLCA0KSArIHBhZChvYmplY3QuZ2V0VVRDTW9udGgoKSArIDEsIDIpICsgcGFkKG9iamVjdC5nZXRVVENEYXRlKCksIDIpICsgcGFkKG9iamVjdC5nZXRVVENIb3VycygpLCAyKSArIHBhZChvYmplY3QuZ2V0VVRDTWludXRlcygpLCAyKSArIHBhZChvYmplY3QuZ2V0VVRDU2Vjb25kcygpLCAyKSArICdaKSc7CiAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7CiAgICAgICAgaXRlbXMgPSAoKGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGssIGxlbiwgcmVzdWx0czsKICAgICAgICAgIHJlc3VsdHMgPSBbXTsKICAgICAgICAgIGZvciAoayA9IDAsIGxlbiA9IG9iamVjdC5sZW5ndGg7IGsgPCBsZW47IGsrKykgewogICAgICAgICAgICBlID0gb2JqZWN0W2tdOwogICAgICAgICAgICByZXN1bHRzLnB1c2goUERGT2JqZWN0LmNvbnZlcnQoZSkpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICAgICAgfSkoKSkuam9pbignICcpOwogICAgICAgIHJldHVybiAnWycgKyBpdGVtcyArICddJzsKICAgICAgfSBlbHNlIGlmICh7fS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7CiAgICAgICAgb3V0ID0gWyc8PCddOwogICAgICAgIGZvciAoa2V5IGluIG9iamVjdCkgewogICAgICAgICAgdmFsID0gb2JqZWN0W2tleV07CiAgICAgICAgICBvdXQucHVzaCgnLycgKyBrZXkgKyAnICcgKyBQREZPYmplY3QuY29udmVydCh2YWwpKTsKICAgICAgICB9CiAgICAgICAgb3V0LnB1c2goJz4+Jyk7CiAgICAgICAgcmV0dXJuIG91dC5qb2luKCdcbicpOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmplY3QgPT09ICdudW1iZXInKSB7CiAgICAgICAgcmV0dXJuIFBERk9iamVjdC5udW1iZXIob2JqZWN0KTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gJycgKyBvYmplY3Q7CiAgICAgIH0KICAgIH07CgogICAgUERGT2JqZWN0Lm51bWJlciA9IGZ1bmN0aW9uKG4pIHsKICAgICAgaWYgKG4gPiAtMWUyMSAmJiBuIDwgMWUyMSkgewogICAgICAgIHJldHVybiBNYXRoLnJvdW5kKG4gKiAxZTYpIC8gMWU2OwogICAgICB9CiAgICAgIHRocm93IG5ldyBFcnJvcigidW5zdXBwb3J0ZWQgbnVtYmVyOiAiICsgbik7CiAgICB9OwoKICAgIHJldHVybiBQREZPYmplY3Q7CgogIH0pKCk7CgogIG1vZHVsZS5leHBvcnRzID0gUERGT2JqZWN0OwoKICBQREZSZWZlcmVuY2UgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg3KTsKCn0pLmNhbGwodGhpcyk7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIpKQoKLyoqKi8gfSksCi8qIDI3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGJpdG1hcCwgdmFsdWUpIHsKICByZXR1cm4gewogICAgZW51bWVyYWJsZTogIShiaXRtYXAgJiAxKSwKICAgIGNvbmZpZ3VyYWJsZTogIShiaXRtYXAgJiAyKSwKICAgIHdyaXRhYmxlOiAhKGJpdG1hcCAmIDQpLAogICAgdmFsdWU6IHZhbHVlCiAgfTsKfTsKCgovKioqLyB9KSwKLyogMjggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKX193ZWJwYWNrX3JlcXVpcmVfXygyMDEpOwp2YXIgZ2xvYmFsID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CnZhciBoaWRlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CnZhciBJdGVyYXRvcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKTsKdmFyIFRPX1NUUklOR19UQUcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpKCd0b1N0cmluZ1RhZycpOwoKdmFyIERPTUl0ZXJhYmxlcyA9ICgnQ1NTUnVsZUxpc3QsQ1NTU3R5bGVEZWNsYXJhdGlvbixDU1NWYWx1ZUxpc3QsQ2xpZW50UmVjdExpc3QsRE9NUmVjdExpc3QsRE9NU3RyaW5nTGlzdCwnICsKICAnRE9NVG9rZW5MaXN0LERhdGFUcmFuc2Zlckl0ZW1MaXN0LEZpbGVMaXN0LEhUTUxBbGxDb2xsZWN0aW9uLEhUTUxDb2xsZWN0aW9uLEhUTUxGb3JtRWxlbWVudCxIVE1MU2VsZWN0RWxlbWVudCwnICsKICAnTWVkaWFMaXN0LE1pbWVUeXBlQXJyYXksTmFtZWROb2RlTWFwLE5vZGVMaXN0LFBhaW50UmVxdWVzdExpc3QsUGx1Z2luLFBsdWdpbkFycmF5LFNWR0xlbmd0aExpc3QsU1ZHTnVtYmVyTGlzdCwnICsKICAnU1ZHUGF0aFNlZ0xpc3QsU1ZHUG9pbnRMaXN0LFNWR1N0cmluZ0xpc3QsU1ZHVHJhbnNmb3JtTGlzdCxTb3VyY2VCdWZmZXJMaXN0LFN0eWxlU2hlZXRMaXN0LFRleHRUcmFja0N1ZUxpc3QsJyArCiAgJ1RleHRUcmFja0xpc3QsVG91Y2hMaXN0Jykuc3BsaXQoJywnKTsKCmZvciAodmFyIGkgPSAwOyBpIDwgRE9NSXRlcmFibGVzLmxlbmd0aDsgaSsrKSB7CiAgdmFyIE5BTUUgPSBET01JdGVyYWJsZXNbaV07CiAgdmFyIENvbGxlY3Rpb24gPSBnbG9iYWxbTkFNRV07CiAgdmFyIHByb3RvID0gQ29sbGVjdGlvbiAmJiBDb2xsZWN0aW9uLnByb3RvdHlwZTsKICBpZiAocHJvdG8gJiYgIXByb3RvW1RPX1NUUklOR19UQUddKSBoaWRlKHByb3RvLCBUT19TVFJJTkdfVEFHLCBOQU1FKTsKICBJdGVyYXRvcnNbTkFNRV0gPSBJdGVyYXRvcnMuQXJyYXk7Cn0KCgovKioqLyB9KSwKLyogMjkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gMTkuMS4yLjE0IC8gMTUuMi4zLjE0IE9iamVjdC5rZXlzKE8pCnZhciAka2V5cyA9IF9fd2VicGFja19yZXF1aXJlX18oMTAxKTsKdmFyIGVudW1CdWdLZXlzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2Nik7Cgptb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5rZXlzIHx8IGZ1bmN0aW9uIGtleXMoTykgewogIHJldHVybiAka2V5cyhPLCBlbnVtQnVnS2V5cyk7Cn07CgoKLyoqKi8gfSksCi8qIDMwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIDcuMS4xMyBUb09iamVjdChhcmd1bWVudCkKdmFyIGRlZmluZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU2KTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHsKICByZXR1cm4gT2JqZWN0KGRlZmluZWQoaXQpKTsKfTsKCgovKioqLyB9KSwKLyogMzEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLy8gQ29weXJpZ2h0IEpveWVudCwgSW5jLiBhbmQgb3RoZXIgTm9kZSBjb250cmlidXRvcnMuCi8vCi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCi8vIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKLy8gIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZwovLyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQKLy8gcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlCi8vIGZvbGxvd2luZyBjb25kaXRpb25zOgovLwovLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAovLyBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLy8KLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MKLy8gT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgovLyBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOCi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLAovLyBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IKLy8gT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRQovLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgoKZnVuY3Rpb24gRXZlbnRFbWl0dGVyKCkgewogIHRoaXMuX2V2ZW50cyA9IHRoaXMuX2V2ZW50cyB8fCB7fTsKICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSB0aGlzLl9tYXhMaXN0ZW5lcnMgfHwgdW5kZWZpbmVkOwp9Cm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyOwoKLy8gQmFja3dhcmRzLWNvbXBhdCB3aXRoIG5vZGUgMC4xMC54CkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7CgpFdmVudEVtaXR0ZXIucHJvdG90eXBlLl9ldmVudHMgPSB1bmRlZmluZWQ7CkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDsKCi8vIEJ5IGRlZmF1bHQgRXZlbnRFbWl0dGVycyB3aWxsIHByaW50IGEgd2FybmluZyBpZiBtb3JlIHRoYW4gMTAgbGlzdGVuZXJzIGFyZQovLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLgpFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycyA9IDEwOwoKLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzCi8vIHRoYXQgdG8gYmUgaW5jcmVhc2VkLiBTZXQgdG8gemVybyBmb3IgdW5saW1pdGVkLgpFdmVudEVtaXR0ZXIucHJvdG90eXBlLnNldE1heExpc3RlbmVycyA9IGZ1bmN0aW9uKG4pIHsKICBpZiAoIWlzTnVtYmVyKG4pIHx8IG4gPCAwIHx8IGlzTmFOKG4pKQogICAgdGhyb3cgVHlwZUVycm9yKCduIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXInKTsKICB0aGlzLl9tYXhMaXN0ZW5lcnMgPSBuOwogIHJldHVybiB0aGlzOwp9OwoKRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24odHlwZSkgewogIHZhciBlciwgaGFuZGxlciwgbGVuLCBhcmdzLCBpLCBsaXN0ZW5lcnM7CgogIGlmICghdGhpcy5fZXZlbnRzKQogICAgdGhpcy5fZXZlbnRzID0ge307CgogIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy4KICBpZiAodHlwZSA9PT0gJ2Vycm9yJykgewogICAgaWYgKCF0aGlzLl9ldmVudHMuZXJyb3IgfHwKICAgICAgICAoaXNPYmplY3QodGhpcy5fZXZlbnRzLmVycm9yKSAmJiAhdGhpcy5fZXZlbnRzLmVycm9yLmxlbmd0aCkpIHsKICAgICAgZXIgPSBhcmd1bWVudHNbMV07CiAgICAgIGlmIChlciBpbnN0YW5jZW9mIEVycm9yKSB7CiAgICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50CiAgICAgIH0gZWxzZSB7CiAgICAgICAgLy8gQXQgbGVhc3QgZ2l2ZSBzb21lIGtpbmQgb2YgY29udGV4dCB0byB0aGUgdXNlcgogICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoJ1VuY2F1Z2h0LCB1bnNwZWNpZmllZCAiZXJyb3IiIGV2ZW50LiAoJyArIGVyICsgJyknKTsKICAgICAgICBlcnIuY29udGV4dCA9IGVyOwogICAgICAgIHRocm93IGVycjsKICAgICAgfQogICAgfQogIH0KCiAgaGFuZGxlciA9IHRoaXMuX2V2ZW50c1t0eXBlXTsKCiAgaWYgKGlzVW5kZWZpbmVkKGhhbmRsZXIpKQogICAgcmV0dXJuIGZhbHNlOwoKICBpZiAoaXNGdW5jdGlvbihoYW5kbGVyKSkgewogICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgIC8vIGZhc3QgY2FzZXMKICAgICAgY2FzZSAxOgogICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAyOgogICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzLCBhcmd1bWVudHNbMV0pOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIDM6CiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTsKICAgICAgICBicmVhazsKICAgICAgLy8gc2xvd2VyCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7CiAgICAgICAgaGFuZGxlci5hcHBseSh0aGlzLCBhcmdzKTsKICAgIH0KICB9IGVsc2UgaWYgKGlzT2JqZWN0KGhhbmRsZXIpKSB7CiAgICBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsKICAgIGxpc3RlbmVycyA9IGhhbmRsZXIuc2xpY2UoKTsKICAgIGxlbiA9IGxpc3RlbmVycy5sZW5ndGg7CiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCiAgICAgIGxpc3RlbmVyc1tpXS5hcHBseSh0aGlzLCBhcmdzKTsKICB9CgogIHJldHVybiB0cnVlOwp9OwoKRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7CiAgdmFyIG07CgogIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpCiAgICB0aHJvdyBUeXBlRXJyb3IoJ2xpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbicpOwoKICBpZiAoIXRoaXMuX2V2ZW50cykKICAgIHRoaXMuX2V2ZW50cyA9IHt9OwoKICAvLyBUbyBhdm9pZCByZWN1cnNpb24gaW4gdGhlIGNhc2UgdGhhdCB0eXBlID09PSAibmV3TGlzdGVuZXIiISBCZWZvcmUKICAvLyBhZGRpbmcgaXQgdG8gdGhlIGxpc3RlbmVycywgZmlyc3QgZW1pdCAibmV3TGlzdGVuZXIiLgogIGlmICh0aGlzLl9ldmVudHMubmV3TGlzdGVuZXIpCiAgICB0aGlzLmVtaXQoJ25ld0xpc3RlbmVyJywgdHlwZSwKICAgICAgICAgICAgICBpc0Z1bmN0aW9uKGxpc3RlbmVyLmxpc3RlbmVyKSA/CiAgICAgICAgICAgICAgbGlzdGVuZXIubGlzdGVuZXIgOiBsaXN0ZW5lcik7CgogIGlmICghdGhpcy5fZXZlbnRzW3R5cGVdKQogICAgLy8gT3B0aW1pemUgdGhlIGNhc2Ugb2Ygb25lIGxpc3RlbmVyLiBEb24ndCBuZWVkIHRoZSBleHRyYSBhcnJheSBvYmplY3QuCiAgICB0aGlzLl9ldmVudHNbdHlwZV0gPSBsaXN0ZW5lcjsKICBlbHNlIGlmIChpc09iamVjdCh0aGlzLl9ldmVudHNbdHlwZV0pKQogICAgLy8gSWYgd2UndmUgYWxyZWFkeSBnb3QgYW4gYXJyYXksIGp1c3QgYXBwZW5kLgogICAgdGhpcy5fZXZlbnRzW3R5cGVdLnB1c2gobGlzdGVuZXIpOwogIGVsc2UKICAgIC8vIEFkZGluZyB0aGUgc2Vjb25kIGVsZW1lbnQsIG5lZWQgdG8gY2hhbmdlIHRvIGFycmF5LgogICAgdGhpcy5fZXZlbnRzW3R5cGVdID0gW3RoaXMuX2V2ZW50c1t0eXBlXSwgbGlzdGVuZXJdOwoKICAvLyBDaGVjayBmb3IgbGlzdGVuZXIgbGVhawogIGlmIChpc09iamVjdCh0aGlzLl9ldmVudHNbdHlwZV0pICYmICF0aGlzLl9ldmVudHNbdHlwZV0ud2FybmVkKSB7CiAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX21heExpc3RlbmVycykpIHsKICAgICAgbSA9IHRoaXMuX21heExpc3RlbmVyczsKICAgIH0gZWxzZSB7CiAgICAgIG0gPSBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVyczsKICAgIH0KCiAgICBpZiAobSAmJiBtID4gMCAmJiB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoID4gbSkgewogICAgICB0aGlzLl9ldmVudHNbdHlwZV0ud2FybmVkID0gdHJ1ZTsKICAgICAgY29uc29sZS5lcnJvcignKG5vZGUpIHdhcm5pbmc6IHBvc3NpYmxlIEV2ZW50RW1pdHRlciBtZW1vcnkgJyArCiAgICAgICAgICAgICAgICAgICAgJ2xlYWsgZGV0ZWN0ZWQuICVkIGxpc3RlbmVycyBhZGRlZC4gJyArCiAgICAgICAgICAgICAgICAgICAgJ1VzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0LicsCiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZXZlbnRzW3R5cGVdLmxlbmd0aCk7CiAgICAgIGlmICh0eXBlb2YgY29uc29sZS50cmFjZSA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIC8vIG5vdCBzdXBwb3J0ZWQgaW4gSUUgMTAKICAgICAgICBjb25zb2xlLnRyYWNlKCk7CiAgICAgIH0KICAgIH0KICB9CgogIHJldHVybiB0aGlzOwp9OwoKRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5vbiA9IEV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXI7CgpFdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikgewogIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpCiAgICB0aHJvdyBUeXBlRXJyb3IoJ2xpc3RlbmVyIG11c3QgYmUgYSBmdW5jdGlvbicpOwoKICB2YXIgZmlyZWQgPSBmYWxzZTsKCiAgZnVuY3Rpb24gZygpIHsKICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgZyk7CgogICAgaWYgKCFmaXJlZCkgewogICAgICBmaXJlZCA9IHRydWU7CiAgICAgIGxpc3RlbmVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICB9CiAgfQoKICBnLmxpc3RlbmVyID0gbGlzdGVuZXI7CiAgdGhpcy5vbih0eXBlLCBnKTsKCiAgcmV0dXJuIHRoaXM7Cn07CgovLyBlbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWZmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZApFdmVudEVtaXR0ZXIucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyID0gZnVuY3Rpb24odHlwZSwgbGlzdGVuZXIpIHsKICB2YXIgbGlzdCwgcG9zaXRpb24sIGxlbmd0aCwgaTsKCiAgaWYgKCFpc0Z1bmN0aW9uKGxpc3RlbmVyKSkKICAgIHRocm93IFR5cGVFcnJvcignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7CgogIGlmICghdGhpcy5fZXZlbnRzIHx8ICF0aGlzLl9ldmVudHNbdHlwZV0pCiAgICByZXR1cm4gdGhpczsKCiAgbGlzdCA9IHRoaXMuX2V2ZW50c1t0eXBlXTsKICBsZW5ndGggPSBsaXN0Lmxlbmd0aDsKICBwb3NpdGlvbiA9IC0xOwoKICBpZiAobGlzdCA9PT0gbGlzdGVuZXIgfHwKICAgICAgKGlzRnVuY3Rpb24obGlzdC5saXN0ZW5lcikgJiYgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7CiAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdOwogICAgaWYgKHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcikKICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTsKCiAgfSBlbHNlIGlmIChpc09iamVjdChsaXN0KSkgewogICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gPiAwOykgewogICAgICBpZiAobGlzdFtpXSA9PT0gbGlzdGVuZXIgfHwKICAgICAgICAgIChsaXN0W2ldLmxpc3RlbmVyICYmIGxpc3RbaV0ubGlzdGVuZXIgPT09IGxpc3RlbmVyKSkgewogICAgICAgIHBvc2l0aW9uID0gaTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQoKICAgIGlmIChwb3NpdGlvbiA8IDApCiAgICAgIHJldHVybiB0aGlzOwoKICAgIGlmIChsaXN0Lmxlbmd0aCA9PT0gMSkgewogICAgICBsaXN0Lmxlbmd0aCA9IDA7CiAgICAgIGRlbGV0ZSB0aGlzLl9ldmVudHNbdHlwZV07CiAgICB9IGVsc2UgewogICAgICBsaXN0LnNwbGljZShwb3NpdGlvbiwgMSk7CiAgICB9CgogICAgaWYgKHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcikKICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTsKICB9CgogIHJldHVybiB0aGlzOwp9OwoKRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBmdW5jdGlvbih0eXBlKSB7CiAgdmFyIGtleSwgbGlzdGVuZXJzOwoKICBpZiAoIXRoaXMuX2V2ZW50cykKICAgIHJldHVybiB0aGlzOwoKICAvLyBub3QgbGlzdGVuaW5nIGZvciByZW1vdmVMaXN0ZW5lciwgbm8gbmVlZCB0byBlbWl0CiAgaWYgKCF0aGlzLl9ldmVudHMucmVtb3ZlTGlzdGVuZXIpIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKQogICAgICB0aGlzLl9ldmVudHMgPSB7fTsKICAgIGVsc2UgaWYgKHRoaXMuX2V2ZW50c1t0eXBlXSkKICAgICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTsKICAgIHJldHVybiB0aGlzOwogIH0KCiAgLy8gZW1pdCByZW1vdmVMaXN0ZW5lciBmb3IgYWxsIGxpc3RlbmVycyBvbiBhbGwgZXZlbnRzCiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHsKICAgIGZvciAoa2V5IGluIHRoaXMuX2V2ZW50cykgewogICAgICBpZiAoa2V5ID09PSAncmVtb3ZlTGlzdGVuZXInKSBjb250aW51ZTsKICAgICAgdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoa2V5KTsKICAgIH0KICAgIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCdyZW1vdmVMaXN0ZW5lcicpOwogICAgdGhpcy5fZXZlbnRzID0ge307CiAgICByZXR1cm4gdGhpczsKICB9CgogIGxpc3RlbmVycyA9IHRoaXMuX2V2ZW50c1t0eXBlXTsKCiAgaWYgKGlzRnVuY3Rpb24obGlzdGVuZXJzKSkgewogICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpOwogIH0gZWxzZSBpZiAobGlzdGVuZXJzKSB7CiAgICAvLyBMSUZPIG9yZGVyCiAgICB3aGlsZSAobGlzdGVuZXJzLmxlbmd0aCkKICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnNbbGlzdGVuZXJzLmxlbmd0aCAtIDFdKTsKICB9CiAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTsKCiAgcmV0dXJuIHRoaXM7Cn07CgpFdmVudEVtaXR0ZXIucHJvdG90eXBlLmxpc3RlbmVycyA9IGZ1bmN0aW9uKHR5cGUpIHsKICB2YXIgcmV0OwogIGlmICghdGhpcy5fZXZlbnRzIHx8ICF0aGlzLl9ldmVudHNbdHlwZV0pCiAgICByZXQgPSBbXTsKICBlbHNlIGlmIChpc0Z1bmN0aW9uKHRoaXMuX2V2ZW50c1t0eXBlXSkpCiAgICByZXQgPSBbdGhpcy5fZXZlbnRzW3R5cGVdXTsKICBlbHNlCiAgICByZXQgPSB0aGlzLl9ldmVudHNbdHlwZV0uc2xpY2UoKTsKICByZXR1cm4gcmV0Owp9OwoKRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24odHlwZSkgewogIGlmICh0aGlzLl9ldmVudHMpIHsKICAgIHZhciBldmxpc3RlbmVyID0gdGhpcy5fZXZlbnRzW3R5cGVdOwoKICAgIGlmIChpc0Z1bmN0aW9uKGV2bGlzdGVuZXIpKQogICAgICByZXR1cm4gMTsKICAgIGVsc2UgaWYgKGV2bGlzdGVuZXIpCiAgICAgIHJldHVybiBldmxpc3RlbmVyLmxlbmd0aDsKICB9CiAgcmV0dXJuIDA7Cn07CgpFdmVudEVtaXR0ZXIubGlzdGVuZXJDb3VudCA9IGZ1bmN0aW9uKGVtaXR0ZXIsIHR5cGUpIHsKICByZXR1cm4gZW1pdHRlci5saXN0ZW5lckNvdW50KHR5cGUpOwp9OwoKZnVuY3Rpb24gaXNGdW5jdGlvbihhcmcpIHsKICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJzsKfQoKZnVuY3Rpb24gaXNOdW1iZXIoYXJnKSB7CiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdudW1iZXInOwp9CgpmdW5jdGlvbiBpc09iamVjdChhcmcpIHsKICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsOwp9CgpmdW5jdGlvbiBpc1VuZGVmaW5lZChhcmcpIHsKICByZXR1cm4gYXJnID09PSB2b2lkIDA7Cn0KCgovKioqLyB9KSwKLyogMzIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24ocHJvY2VzcykgewoKaWYgKCFwcm9jZXNzLnZlcnNpb24gfHwKICAgIHByb2Nlc3MudmVyc2lvbi5pbmRleE9mKCd2MC4nKSA9PT0gMCB8fAogICAgcHJvY2Vzcy52ZXJzaW9uLmluZGV4T2YoJ3YxLicpID09PSAwICYmIHByb2Nlc3MudmVyc2lvbi5pbmRleE9mKCd2MS44LicpICE9PSAwKSB7CiAgbW9kdWxlLmV4cG9ydHMgPSB7IG5leHRUaWNrOiBuZXh0VGljayB9Owp9IGVsc2UgewogIG1vZHVsZS5leHBvcnRzID0gcHJvY2Vzcwp9CgpmdW5jdGlvbiBuZXh0VGljayhmbiwgYXJnMSwgYXJnMiwgYXJnMykgewogIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJyJjYWxsYmFjayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7CiAgfQogIHZhciBsZW4gPSBhcmd1bWVudHMubGVuZ3RoOwogIHZhciBhcmdzLCBpOwogIHN3aXRjaCAobGVuKSB7CiAgY2FzZSAwOgogIGNhc2UgMToKICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZuKTsKICBjYXNlIDI6CiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiBhZnRlclRpY2tPbmUoKSB7CiAgICAgIGZuLmNhbGwobnVsbCwgYXJnMSk7CiAgICB9KTsKICBjYXNlIDM6CiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiBhZnRlclRpY2tUd28oKSB7CiAgICAgIGZuLmNhbGwobnVsbCwgYXJnMSwgYXJnMik7CiAgICB9KTsKICBjYXNlIDQ6CiAgICByZXR1cm4gcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiBhZnRlclRpY2tUaHJlZSgpIHsKICAgICAgZm4uY2FsbChudWxsLCBhcmcxLCBhcmcyLCBhcmczKTsKICAgIH0pOwogIGRlZmF1bHQ6CiAgICBhcmdzID0gbmV3IEFycmF5KGxlbiAtIDEpOwogICAgaSA9IDA7CiAgICB3aGlsZSAoaSA8IGFyZ3MubGVuZ3RoKSB7CiAgICAgIGFyZ3NbaSsrXSA9IGFyZ3VtZW50c1tpXTsKICAgIH0KICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZ1bmN0aW9uIGFmdGVyVGljaygpIHsKICAgICAgZm4uYXBwbHkobnVsbCwgYXJncyk7CiAgICB9KTsKICB9Cn0KCgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxMSkpKQoKLyoqKi8gfSksCi8qIDMzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIGVzbGludC1kaXNhYmxlIG5vZGUvbm8tZGVwcmVjYXRlZC1hcGkgKi8KdmFyIGJ1ZmZlciA9IF9fd2VicGFja19yZXF1aXJlX18oMSkKdmFyIEJ1ZmZlciA9IGJ1ZmZlci5CdWZmZXIKCi8vIGFsdGVybmF0aXZlIHRvIHVzaW5nIE9iamVjdC5rZXlzIGZvciBvbGQgYnJvd3NlcnMKZnVuY3Rpb24gY29weVByb3BzIChzcmMsIGRzdCkgewogIGZvciAodmFyIGtleSBpbiBzcmMpIHsKICAgIGRzdFtrZXldID0gc3JjW2tleV0KICB9Cn0KaWYgKEJ1ZmZlci5mcm9tICYmIEJ1ZmZlci5hbGxvYyAmJiBCdWZmZXIuYWxsb2NVbnNhZmUgJiYgQnVmZmVyLmFsbG9jVW5zYWZlU2xvdykgewogIG1vZHVsZS5leHBvcnRzID0gYnVmZmVyCn0gZWxzZSB7CiAgLy8gQ29weSBwcm9wZXJ0aWVzIGZyb20gcmVxdWlyZSgnYnVmZmVyJykKICBjb3B5UHJvcHMoYnVmZmVyLCBleHBvcnRzKQogIGV4cG9ydHMuQnVmZmVyID0gU2FmZUJ1ZmZlcgp9CgpmdW5jdGlvbiBTYWZlQnVmZmVyIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkgewogIHJldHVybiBCdWZmZXIoYXJnLCBlbmNvZGluZ09yT2Zmc2V0LCBsZW5ndGgpCn0KCi8vIENvcHkgc3RhdGljIG1ldGhvZHMgZnJvbSBCdWZmZXIKY29weVByb3BzKEJ1ZmZlciwgU2FmZUJ1ZmZlcikKClNhZmVCdWZmZXIuZnJvbSA9IGZ1bmN0aW9uIChhcmcsIGVuY29kaW5nT3JPZmZzZXQsIGxlbmd0aCkgewogIGlmICh0eXBlb2YgYXJnID09PSAnbnVtYmVyJykgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXInKQogIH0KICByZXR1cm4gQnVmZmVyKGFyZywgZW5jb2RpbmdPck9mZnNldCwgbGVuZ3RoKQp9CgpTYWZlQnVmZmVyLmFsbG9jID0gZnVuY3Rpb24gKHNpemUsIGZpbGwsIGVuY29kaW5nKSB7CiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpCiAgfQogIHZhciBidWYgPSBCdWZmZXIoc2l6ZSkKICBpZiAoZmlsbCAhPT0gdW5kZWZpbmVkKSB7CiAgICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnc3RyaW5nJykgewogICAgICBidWYuZmlsbChmaWxsLCBlbmNvZGluZykKICAgIH0gZWxzZSB7CiAgICAgIGJ1Zi5maWxsKGZpbGwpCiAgICB9CiAgfSBlbHNlIHsKICAgIGJ1Zi5maWxsKDApCiAgfQogIHJldHVybiBidWYKfQoKU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZSA9IGZ1bmN0aW9uIChzaXplKSB7CiAgaWYgKHR5cGVvZiBzaXplICE9PSAnbnVtYmVyJykgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlcicpCiAgfQogIHJldHVybiBCdWZmZXIoc2l6ZSkKfQoKU2FmZUJ1ZmZlci5hbGxvY1Vuc2FmZVNsb3cgPSBmdW5jdGlvbiAoc2l6ZSkgewogIGlmICh0eXBlb2Ygc2l6ZSAhPT0gJ251bWJlcicpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0FyZ3VtZW50IG11c3QgYmUgYSBudW1iZXInKQogIH0KICByZXR1cm4gYnVmZmVyLlNsb3dCdWZmZXIoc2l6ZSkKfQoKCi8qKiovIH0pLAovKiAzNCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKCnZhciBUWVBFRF9PSyA9ICAodHlwZW9mIFVpbnQ4QXJyYXkgIT09ICd1bmRlZmluZWQnKSAmJgogICAgICAgICAgICAgICAgKHR5cGVvZiBVaW50MTZBcnJheSAhPT0gJ3VuZGVmaW5lZCcpICYmCiAgICAgICAgICAgICAgICAodHlwZW9mIEludDMyQXJyYXkgIT09ICd1bmRlZmluZWQnKTsKCmZ1bmN0aW9uIF9oYXMob2JqLCBrZXkpIHsKICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwga2V5KTsKfQoKZXhwb3J0cy5hc3NpZ24gPSBmdW5jdGlvbiAob2JqIC8qZnJvbTEsIGZyb20yLCBmcm9tMywgLi4uKi8pIHsKICB2YXIgc291cmNlcyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7CiAgd2hpbGUgKHNvdXJjZXMubGVuZ3RoKSB7CiAgICB2YXIgc291cmNlID0gc291cmNlcy5zaGlmdCgpOwogICAgaWYgKCFzb3VyY2UpIHsgY29udGludWU7IH0KCiAgICBpZiAodHlwZW9mIHNvdXJjZSAhPT0gJ29iamVjdCcpIHsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzb3VyY2UgKyAnbXVzdCBiZSBub24tb2JqZWN0Jyk7CiAgICB9CgogICAgZm9yICh2YXIgcCBpbiBzb3VyY2UpIHsKICAgICAgaWYgKF9oYXMoc291cmNlLCBwKSkgewogICAgICAgIG9ialtwXSA9IHNvdXJjZVtwXTsKICAgICAgfQogICAgfQogIH0KCiAgcmV0dXJuIG9iajsKfTsKCgovLyByZWR1Y2UgYnVmZmVyIHNpemUsIGF2b2lkaW5nIG1lbSBjb3B5CmV4cG9ydHMuc2hyaW5rQnVmID0gZnVuY3Rpb24gKGJ1Ziwgc2l6ZSkgewogIGlmIChidWYubGVuZ3RoID09PSBzaXplKSB7IHJldHVybiBidWY7IH0KICBpZiAoYnVmLnN1YmFycmF5KSB7IHJldHVybiBidWYuc3ViYXJyYXkoMCwgc2l6ZSk7IH0KICBidWYubGVuZ3RoID0gc2l6ZTsKICByZXR1cm4gYnVmOwp9OwoKCnZhciBmblR5cGVkID0gewogIGFycmF5U2V0OiBmdW5jdGlvbiAoZGVzdCwgc3JjLCBzcmNfb2ZmcywgbGVuLCBkZXN0X29mZnMpIHsKICAgIGlmIChzcmMuc3ViYXJyYXkgJiYgZGVzdC5zdWJhcnJheSkgewogICAgICBkZXN0LnNldChzcmMuc3ViYXJyYXkoc3JjX29mZnMsIHNyY19vZmZzICsgbGVuKSwgZGVzdF9vZmZzKTsKICAgICAgcmV0dXJuOwogICAgfQogICAgLy8gRmFsbGJhY2sgdG8gb3JkaW5hcnkgYXJyYXkKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgZGVzdFtkZXN0X29mZnMgKyBpXSA9IHNyY1tzcmNfb2ZmcyArIGldOwogICAgfQogIH0sCiAgLy8gSm9pbiBhcnJheSBvZiBjaHVua3MgdG8gc2luZ2xlIGFycmF5LgogIGZsYXR0ZW5DaHVua3M6IGZ1bmN0aW9uIChjaHVua3MpIHsKICAgIHZhciBpLCBsLCBsZW4sIHBvcywgY2h1bmssIHJlc3VsdDsKCiAgICAvLyBjYWxjdWxhdGUgZGF0YSBsZW5ndGgKICAgIGxlbiA9IDA7CiAgICBmb3IgKGkgPSAwLCBsID0gY2h1bmtzLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICBsZW4gKz0gY2h1bmtzW2ldLmxlbmd0aDsKICAgIH0KCiAgICAvLyBqb2luIGNodW5rcwogICAgcmVzdWx0ID0gbmV3IFVpbnQ4QXJyYXkobGVuKTsKICAgIHBvcyA9IDA7CiAgICBmb3IgKGkgPSAwLCBsID0gY2h1bmtzLmxlbmd0aDsgaSA8IGw7IGkrKykgewogICAgICBjaHVuayA9IGNodW5rc1tpXTsKICAgICAgcmVzdWx0LnNldChjaHVuaywgcG9zKTsKICAgICAgcG9zICs9IGNodW5rLmxlbmd0aDsKICAgIH0KCiAgICByZXR1cm4gcmVzdWx0OwogIH0KfTsKCnZhciBmblVudHlwZWQgPSB7CiAgYXJyYXlTZXQ6IGZ1bmN0aW9uIChkZXN0LCBzcmMsIHNyY19vZmZzLCBsZW4sIGRlc3Rfb2ZmcykgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICBkZXN0W2Rlc3Rfb2ZmcyArIGldID0gc3JjW3NyY19vZmZzICsgaV07CiAgICB9CiAgfSwKICAvLyBKb2luIGFycmF5IG9mIGNodW5rcyB0byBzaW5nbGUgYXJyYXkuCiAgZmxhdHRlbkNodW5rczogZnVuY3Rpb24gKGNodW5rcykgewogICAgcmV0dXJuIFtdLmNvbmNhdC5hcHBseShbXSwgY2h1bmtzKTsKICB9Cn07CgoKLy8gRW5hYmxlL0Rpc2FibGUgdHlwZWQgYXJyYXlzIHVzZSwgZm9yIHRlc3RpbmcKLy8KZXhwb3J0cy5zZXRUeXBlZCA9IGZ1bmN0aW9uIChvbikgewogIGlmIChvbikgewogICAgZXhwb3J0cy5CdWY4ICA9IFVpbnQ4QXJyYXk7CiAgICBleHBvcnRzLkJ1ZjE2ID0gVWludDE2QXJyYXk7CiAgICBleHBvcnRzLkJ1ZjMyID0gSW50MzJBcnJheTsKICAgIGV4cG9ydHMuYXNzaWduKGV4cG9ydHMsIGZuVHlwZWQpOwogIH0gZWxzZSB7CiAgICBleHBvcnRzLkJ1ZjggID0gQXJyYXk7CiAgICBleHBvcnRzLkJ1ZjE2ID0gQXJyYXk7CiAgICBleHBvcnRzLkJ1ZjMyID0gQXJyYXk7CiAgICBleHBvcnRzLmFzc2lnbihleHBvcnRzLCBmblVudHlwZWQpOwogIH0KfTsKCmV4cG9ydHMuc2V0VHlwZWQoVFlQRURfT0spOwoKCi8qKiovIH0pLAovKiAzNSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgpleHBvcnRzLmYgPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTsKCgovKioqLyB9KSwKLyogMzYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gMTkuMS4yLjIgLyAxNS4yLjMuNSBPYmplY3QuY3JlYXRlKE8gWywgUHJvcGVydGllc10pCnZhciBhbk9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOwp2YXIgZFBzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMDApOwp2YXIgZW51bUJ1Z0tleXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDY2KTsKdmFyIElFX1BST1RPID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2NCkoJ0lFX1BST1RPJyk7CnZhciBFbXB0eSA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTsKdmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnOwoKLy8gQ3JlYXRlIG9iamVjdCB3aXRoIGZha2UgYG51bGxgIHByb3RvdHlwZTogdXNlIGlmcmFtZSBPYmplY3Qgd2l0aCBjbGVhcmVkIHByb3RvdHlwZQp2YXIgY3JlYXRlRGljdCA9IGZ1bmN0aW9uICgpIHsKICAvLyBUaHJhc2gsIHdhc3RlIGFuZCBzb2RvbXk6IElFIEdDIGJ1ZwogIHZhciBpZnJhbWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDk2KSgnaWZyYW1lJyk7CiAgdmFyIGkgPSBlbnVtQnVnS2V5cy5sZW5ndGg7CiAgdmFyIGx0ID0gJzwnOwogIHZhciBndCA9ICc+JzsKICB2YXIgaWZyYW1lRG9jdW1lbnQ7CiAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgX193ZWJwYWNrX3JlcXVpcmVfXygyMDUpLmFwcGVuZENoaWxkKGlmcmFtZSk7CiAgaWZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0Oic7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tc2NyaXB0LXVybAogIC8vIGNyZWF0ZURpY3QgPSBpZnJhbWUuY29udGVudFdpbmRvdy5PYmplY3Q7CiAgLy8gaHRtbC5yZW1vdmVDaGlsZChpZnJhbWUpOwogIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7CiAgaWZyYW1lRG9jdW1lbnQub3BlbigpOwogIGlmcmFtZURvY3VtZW50LndyaXRlKGx0ICsgJ3NjcmlwdCcgKyBndCArICdkb2N1bWVudC5GPU9iamVjdCcgKyBsdCArICcvc2NyaXB0JyArIGd0KTsKICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpOwogIGNyZWF0ZURpY3QgPSBpZnJhbWVEb2N1bWVudC5GOwogIHdoaWxlIChpLS0pIGRlbGV0ZSBjcmVhdGVEaWN0W1BST1RPVFlQRV1bZW51bUJ1Z0tleXNbaV1dOwogIHJldHVybiBjcmVhdGVEaWN0KCk7Cn07Cgptb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5jcmVhdGUgfHwgZnVuY3Rpb24gY3JlYXRlKE8sIFByb3BlcnRpZXMpIHsKICB2YXIgcmVzdWx0OwogIGlmIChPICE9PSBudWxsKSB7CiAgICBFbXB0eVtQUk9UT1RZUEVdID0gYW5PYmplY3QoTyk7CiAgICByZXN1bHQgPSBuZXcgRW1wdHkoKTsKICAgIEVtcHR5W1BST1RPVFlQRV0gPSBudWxsOwogICAgLy8gYWRkICJfX3Byb3RvX18iIGZvciBPYmplY3QuZ2V0UHJvdG90eXBlT2YgcG9seWZpbGwKICAgIHJlc3VsdFtJRV9QUk9UT10gPSBPOwogIH0gZWxzZSByZXN1bHQgPSBjcmVhdGVEaWN0KCk7CiAgcmV0dXJuIFByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IGRQcyhyZXN1bHQsIFByb3BlcnRpZXMpOwp9OwoKCi8qKiovIH0pLAovKiAzNyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyA3LjEuMTUgVG9MZW5ndGgKdmFyIHRvSW50ZWdlciA9IF9fd2VicGFja19yZXF1aXJlX18oNjMpOwp2YXIgbWluID0gTWF0aC5taW47Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7CiAgcmV0dXJuIGl0ID4gMCA/IG1pbih0b0ludGVnZXIoaXQpLCAweDFmZmZmZmZmZmZmZmZmKSA6IDA7IC8vIHBvdygyLCA1MykgLSAxID09IDkwMDcxOTkyNTQ3NDA5OTEKfTsKCgovKioqLyB9KSwKLyogMzggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKdmFyIGlkID0gMDsKdmFyIHB4ID0gTWF0aC5yYW5kb20oKTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoa2V5KSB7CiAgcmV0dXJuICdTeW1ib2woJy5jb25jYXQoa2V5ID09PSB1bmRlZmluZWQgPyAnJyA6IGtleSwgJylfJywgKCsraWQgKyBweCkudG9TdHJpbmcoMzYpKTsKfTsKCgovKioqLyB9KSwKLyogMzkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGRlZiA9IF9fd2VicGFja19yZXF1aXJlX18oNikuZjsKdmFyIGhhcyA9IF9fd2VicGFja19yZXF1aXJlX18oMTgpOwp2YXIgVEFHID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KSgndG9TdHJpbmdUYWcnKTsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCB0YWcsIHN0YXQpIHsKICBpZiAoaXQgJiYgIWhhcyhpdCA9IHN0YXQgPyBpdCA6IGl0LnByb3RvdHlwZSwgVEFHKSkgZGVmKGl0LCBUQUcsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogdGFnIH0pOwp9OwoKCi8qKiovIH0pLAovKiA0MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgTUVUQSA9IF9fd2VicGFja19yZXF1aXJlX18oMzgpKCdtZXRhJyk7CnZhciBpc09iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7CnZhciBoYXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4KTsKdmFyIHNldERlc2MgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpLmY7CnZhciBpZCA9IDA7CnZhciBpc0V4dGVuc2libGUgPSBPYmplY3QuaXNFeHRlbnNpYmxlIHx8IGZ1bmN0aW9uICgpIHsKICByZXR1cm4gdHJ1ZTsKfTsKdmFyIEZSRUVaRSA9ICFfX3dlYnBhY2tfcmVxdWlyZV9fKDE5KShmdW5jdGlvbiAoKSB7CiAgcmV0dXJuIGlzRXh0ZW5zaWJsZShPYmplY3QucHJldmVudEV4dGVuc2lvbnMoe30pKTsKfSk7CnZhciBzZXRNZXRhID0gZnVuY3Rpb24gKGl0KSB7CiAgc2V0RGVzYyhpdCwgTUVUQSwgeyB2YWx1ZTogewogICAgaTogJ08nICsgKytpZCwgLy8gb2JqZWN0IElECiAgICB3OiB7fSAgICAgICAgICAvLyB3ZWFrIGNvbGxlY3Rpb25zIElEcwogIH0gfSk7Cn07CnZhciBmYXN0S2V5ID0gZnVuY3Rpb24gKGl0LCBjcmVhdGUpIHsKICAvLyByZXR1cm4gcHJpbWl0aXZlIHdpdGggcHJlZml4CiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiB0eXBlb2YgaXQgPT0gJ3N5bWJvbCcgPyBpdCA6ICh0eXBlb2YgaXQgPT0gJ3N0cmluZycgPyAnUycgOiAnUCcpICsgaXQ7CiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7CiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdAogICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gJ0YnOwogICAgLy8gbm90IG5lY2Vzc2FyeSB0byBhZGQgbWV0YWRhdGEKICAgIGlmICghY3JlYXRlKSByZXR1cm4gJ0UnOwogICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGEKICAgIHNldE1ldGEoaXQpOwogIC8vIHJldHVybiBvYmplY3QgSUQKICB9IHJldHVybiBpdFtNRVRBXS5pOwp9Owp2YXIgZ2V0V2VhayA9IGZ1bmN0aW9uIChpdCwgY3JlYXRlKSB7CiAgaWYgKCFoYXMoaXQsIE1FVEEpKSB7CiAgICAvLyBjYW4ndCBzZXQgbWV0YWRhdGEgdG8gdW5jYXVnaHQgZnJvemVuIG9iamVjdAogICAgaWYgKCFpc0V4dGVuc2libGUoaXQpKSByZXR1cm4gdHJ1ZTsKICAgIC8vIG5vdCBuZWNlc3NhcnkgdG8gYWRkIG1ldGFkYXRhCiAgICBpZiAoIWNyZWF0ZSkgcmV0dXJuIGZhbHNlOwogICAgLy8gYWRkIG1pc3NpbmcgbWV0YWRhdGEKICAgIHNldE1ldGEoaXQpOwogIC8vIHJldHVybiBoYXNoIHdlYWsgY29sbGVjdGlvbnMgSURzCiAgfSByZXR1cm4gaXRbTUVUQV0udzsKfTsKLy8gYWRkIG1ldGFkYXRhIG9uIGZyZWV6ZS1mYW1pbHkgbWV0aG9kcyBjYWxsaW5nCnZhciBvbkZyZWV6ZSA9IGZ1bmN0aW9uIChpdCkgewogIGlmIChGUkVFWkUgJiYgbWV0YS5ORUVEICYmIGlzRXh0ZW5zaWJsZShpdCkgJiYgIWhhcyhpdCwgTUVUQSkpIHNldE1ldGEoaXQpOwogIHJldHVybiBpdDsKfTsKdmFyIG1ldGEgPSBtb2R1bGUuZXhwb3J0cyA9IHsKICBLRVk6IE1FVEEsCiAgTkVFRDogZmFsc2UsCiAgZmFzdEtleTogZmFzdEtleSwKICBnZXRXZWFrOiBnZXRXZWFrLAogIG9uRnJlZXplOiBvbkZyZWV6ZQp9OwoKCi8qKiovIH0pLAovKiA0MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgY3R4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CnZhciBjYWxsID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTEpOwp2YXIgaXNBcnJheUl0ZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExMik7CnZhciBhbk9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOwp2YXIgdG9MZW5ndGggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM3KTsKdmFyIGdldEl0ZXJGbiA9IF9fd2VicGFja19yZXF1aXJlX18oNjcpOwp2YXIgQlJFQUsgPSB7fTsKdmFyIFJFVFVSTiA9IHt9Owp2YXIgZXhwb3J0cyA9IG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZXJhYmxlLCBlbnRyaWVzLCBmbiwgdGhhdCwgSVRFUkFUT1IpIHsKICB2YXIgaXRlckZuID0gSVRFUkFUT1IgPyBmdW5jdGlvbiAoKSB7IHJldHVybiBpdGVyYWJsZTsgfSA6IGdldEl0ZXJGbihpdGVyYWJsZSk7CiAgdmFyIGYgPSBjdHgoZm4sIHRoYXQsIGVudHJpZXMgPyAyIDogMSk7CiAgdmFyIGluZGV4ID0gMDsKICB2YXIgbGVuZ3RoLCBzdGVwLCBpdGVyYXRvciwgcmVzdWx0OwogIGlmICh0eXBlb2YgaXRlckZuICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdGVyYWJsZSArICcgaXMgbm90IGl0ZXJhYmxlIScpOwogIC8vIGZhc3QgY2FzZSBmb3IgYXJyYXlzIHdpdGggZGVmYXVsdCBpdGVyYXRvcgogIGlmIChpc0FycmF5SXRlcihpdGVyRm4pKSBmb3IgKGxlbmd0aCA9IHRvTGVuZ3RoKGl0ZXJhYmxlLmxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7CiAgICByZXN1bHQgPSBlbnRyaWVzID8gZihhbk9iamVjdChzdGVwID0gaXRlcmFibGVbaW5kZXhdKVswXSwgc3RlcFsxXSkgOiBmKGl0ZXJhYmxlW2luZGV4XSk7CiAgICBpZiAocmVzdWx0ID09PSBCUkVBSyB8fCByZXN1bHQgPT09IFJFVFVSTikgcmV0dXJuIHJlc3VsdDsKICB9IGVsc2UgZm9yIChpdGVyYXRvciA9IGl0ZXJGbi5jYWxsKGl0ZXJhYmxlKTsgIShzdGVwID0gaXRlcmF0b3IubmV4dCgpKS5kb25lOykgewogICAgcmVzdWx0ID0gY2FsbChpdGVyYXRvciwgZiwgc3RlcC52YWx1ZSwgZW50cmllcyk7CiAgICBpZiAocmVzdWx0ID09PSBCUkVBSyB8fCByZXN1bHQgPT09IFJFVFVSTikgcmV0dXJuIHJlc3VsdDsKICB9Cn07CmV4cG9ydHMuQlJFQUsgPSBCUkVBSzsKZXhwb3J0cy5SRVRVUk4gPSBSRVRVUk47CgoKLyoqKi8gfSksCi8qIDQyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgp2YXIgaXNTdHJpbmcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzU3RyaW5nOwp2YXIgaXNOdW1iZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzTnVtYmVyOwp2YXIgaXNPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzT2JqZWN0Owp2YXIgaXNBcnJheSA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNBcnJheTsKdmFyIExpbmVCcmVha2VyID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3OCk7Cgp2YXIgTEVBRElORyA9IC9eKFxzKSsvZzsKdmFyIFRSQUlMSU5HID0gLyhccykrJC9nOwoKLyoqCiAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgVGV4dFRvb2xzIC0gdGV4dCBtZWFzdXJlbWVudCB1dGlsaXR5CiAqCiAqIEBjb25zdHJ1Y3RvcgogKiBAcGFyYW0ge0ZvbnRQcm92aWRlcn0gZm9udFByb3ZpZGVyCiAqLwpmdW5jdGlvbiBUZXh0VG9vbHMoZm9udFByb3ZpZGVyKSB7Cgl0aGlzLmZvbnRQcm92aWRlciA9IGZvbnRQcm92aWRlcjsKfQoKLyoqCiAqIENvbnZlcnRzIGFuIGFycmF5IG9mIHN0cmluZ3MgKG9yIGlubGluZS1kZWZpbml0aW9uLW9iamVjdHMpIGludG8gYSBjb2xsZWN0aW9uCiAqIG9mIGlubGluZXMgYW5kIGNhbGN1bGF0ZWQgbWluV2lkdGgvbWF4V2lkdGguCiAqIGFuZCB0aGVpciBtaW4vbWF4IHdpZHRocwogKiBAcGFyYW0gIHtPYmplY3R9IHRleHRBcnJheSAtIGFuIGFycmF5IG9mIGlubGluZS1kZWZpbml0aW9uLW9iamVjdHMgKG9yIHN0cmluZ3MpCiAqIEBwYXJhbSAge09iamVjdH0gc3R5bGVDb250ZXh0U3RhY2sgY3VycmVudCBzdHlsZSBzdGFjawogKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24gb2YgaW5saW5lcywgbWluV2lkdGgsIG1heFdpZHRoCiAqLwpUZXh0VG9vbHMucHJvdG90eXBlLmJ1aWxkSW5saW5lcyA9IGZ1bmN0aW9uICh0ZXh0QXJyYXksIHN0eWxlQ29udGV4dFN0YWNrKSB7Cgl2YXIgbWVhc3VyZWQgPSBtZWFzdXJlKHRoaXMuZm9udFByb3ZpZGVyLCB0ZXh0QXJyYXksIHN0eWxlQ29udGV4dFN0YWNrKTsKCgl2YXIgbWluV2lkdGggPSAwLAoJCW1heFdpZHRoID0gMCwKCQljdXJyZW50TGluZVdpZHRoOwoKCW1lYXN1cmVkLmZvckVhY2goZnVuY3Rpb24gKGlubGluZSkgewoJCW1pbldpZHRoID0gTWF0aC5tYXgobWluV2lkdGgsIGlubGluZS53aWR0aCAtIGlubGluZS5sZWFkaW5nQ3V0IC0gaW5saW5lLnRyYWlsaW5nQ3V0KTsKCgkJaWYgKCFjdXJyZW50TGluZVdpZHRoKSB7CgkJCWN1cnJlbnRMaW5lV2lkdGggPSB7d2lkdGg6IDAsIGxlYWRpbmdDdXQ6IGlubGluZS5sZWFkaW5nQ3V0LCB0cmFpbGluZ0N1dDogMH07CgkJfQoKCQljdXJyZW50TGluZVdpZHRoLndpZHRoICs9IGlubGluZS53aWR0aDsKCQljdXJyZW50TGluZVdpZHRoLnRyYWlsaW5nQ3V0ID0gaW5saW5lLnRyYWlsaW5nQ3V0OwoKCQltYXhXaWR0aCA9IE1hdGgubWF4KG1heFdpZHRoLCBnZXRUcmltbWVkV2lkdGgoY3VycmVudExpbmVXaWR0aCkpOwoKCQlpZiAoaW5saW5lLmxpbmVFbmQpIHsKCQkJY3VycmVudExpbmVXaWR0aCA9IG51bGw7CgkJfQoJfSk7CgoJaWYgKGdldFN0eWxlUHJvcGVydHkoe30sIHN0eWxlQ29udGV4dFN0YWNrLCAnbm9XcmFwJywgZmFsc2UpKSB7CgkJbWluV2lkdGggPSBtYXhXaWR0aDsKCX0KCglyZXR1cm4gewoJCWl0ZW1zOiBtZWFzdXJlZCwKCQltaW5XaWR0aDogbWluV2lkdGgsCgkJbWF4V2lkdGg6IG1heFdpZHRoCgl9OwoKCWZ1bmN0aW9uIGdldFRyaW1tZWRXaWR0aChpdGVtKSB7CgkJcmV0dXJuIE1hdGgubWF4KDAsIGl0ZW0ud2lkdGggLSBpdGVtLmxlYWRpbmdDdXQgLSBpdGVtLnRyYWlsaW5nQ3V0KTsKCX0KfTsKCi8qKgogKiBSZXR1cm5zIHNpemUgb2YgdGhlIHNwZWNpZmllZCBzdHJpbmcgKHdpdGhvdXQgYnJlYWtpbmcgaXQpIHVzaW5nIHRoZSBjdXJyZW50IHN0eWxlCiAqIEBwYXJhbSAge1N0cmluZ30gdGV4dCAgICAgICAgICAgICAgdGV4dCB0byBiZSBtZWFzdXJlZAogKiBAcGFyYW0gIHtPYmplY3R9IHN0eWxlQ29udGV4dFN0YWNrIGN1cnJlbnQgc3R5bGUgc3RhY2sKICogQHJldHVybiB7T2JqZWN0fSAgICAgICAgICAgICAgICAgICBzaXplIG9mIHRoZSBzcGVjaWZpZWQgc3RyaW5nCiAqLwpUZXh0VG9vbHMucHJvdG90eXBlLnNpemVPZlN0cmluZyA9IGZ1bmN0aW9uICh0ZXh0LCBzdHlsZUNvbnRleHRTdGFjaykgewoJdGV4dCA9IHRleHQgPyB0ZXh0LnRvU3RyaW5nKCkucmVwbGFjZSgvXHQvZywgJyAgICAnKSA6ICcnOwoKCS8vVE9ETzogcmVmYWN0b3IgLSBleHRyYWN0IGZyb20gbWVhc3VyZQoJdmFyIGZvbnROYW1lID0gZ2V0U3R5bGVQcm9wZXJ0eSh7fSwgc3R5bGVDb250ZXh0U3RhY2ssICdmb250JywgJ1JvYm90bycpOwoJdmFyIGZvbnRTaXplID0gZ2V0U3R5bGVQcm9wZXJ0eSh7fSwgc3R5bGVDb250ZXh0U3RhY2ssICdmb250U2l6ZScsIDEyKTsKCXZhciBmb250RmVhdHVyZXMgPSBnZXRTdHlsZVByb3BlcnR5KHt9LCBzdHlsZUNvbnRleHRTdGFjaywgJ2ZvbnRGZWF0dXJlcycsIG51bGwpOwoJdmFyIGJvbGQgPSBnZXRTdHlsZVByb3BlcnR5KHt9LCBzdHlsZUNvbnRleHRTdGFjaywgJ2JvbGQnLCBmYWxzZSk7Cgl2YXIgaXRhbGljcyA9IGdldFN0eWxlUHJvcGVydHkoe30sIHN0eWxlQ29udGV4dFN0YWNrLCAnaXRhbGljcycsIGZhbHNlKTsKCXZhciBsaW5lSGVpZ2h0ID0gZ2V0U3R5bGVQcm9wZXJ0eSh7fSwgc3R5bGVDb250ZXh0U3RhY2ssICdsaW5lSGVpZ2h0JywgMSk7Cgl2YXIgY2hhcmFjdGVyU3BhY2luZyA9IGdldFN0eWxlUHJvcGVydHkoe30sIHN0eWxlQ29udGV4dFN0YWNrLCAnY2hhcmFjdGVyU3BhY2luZycsIDApOwoKCXZhciBmb250ID0gdGhpcy5mb250UHJvdmlkZXIucHJvdmlkZUZvbnQoZm9udE5hbWUsIGJvbGQsIGl0YWxpY3MpOwoKCXJldHVybiB7CgkJd2lkdGg6IHdpZHRoT2ZTdHJpbmcodGV4dCwgZm9udCwgZm9udFNpemUsIGNoYXJhY3RlclNwYWNpbmcsIGZvbnRGZWF0dXJlcyksCgkJaGVpZ2h0OiBmb250LmxpbmVIZWlnaHQoZm9udFNpemUpICogbGluZUhlaWdodCwKCQlmb250U2l6ZTogZm9udFNpemUsCgkJbGluZUhlaWdodDogbGluZUhlaWdodCwKCQlhc2NlbmRlcjogZm9udC5hc2NlbmRlciAvIDEwMDAgKiBmb250U2l6ZSwKCQlkZXNjZW5kZXI6IGZvbnQuZGVzY2VuZGVyIC8gMTAwMCAqIGZvbnRTaXplCgl9Owp9OwoKVGV4dFRvb2xzLnByb3RvdHlwZS53aWR0aE9mU3RyaW5nID0gZnVuY3Rpb24gKHRleHQsIGZvbnQsIGZvbnRTaXplLCBjaGFyYWN0ZXJTcGFjaW5nLCBmb250RmVhdHVyZXMpIHsKCXJldHVybiB3aWR0aE9mU3RyaW5nKHRleHQsIGZvbnQsIGZvbnRTaXplLCBjaGFyYWN0ZXJTcGFjaW5nLCBmb250RmVhdHVyZXMpOwp9OwoKZnVuY3Rpb24gc3BsaXRXb3Jkcyh0ZXh0LCBub1dyYXApIHsKCXZhciByZXN1bHRzID0gW107Cgl0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cdC9nLCAnICAgICcpOwoKCWlmIChub1dyYXApIHsKCQlyZXN1bHRzLnB1c2goe3RleHQ6IHRleHR9KTsKCQlyZXR1cm4gcmVzdWx0czsKCX0KCgl2YXIgYnJlYWtlciA9IG5ldyBMaW5lQnJlYWtlcih0ZXh0KTsKCXZhciBsYXN0ID0gMDsKCXZhciBiazsKCgl3aGlsZSAoYmsgPSBicmVha2VyLm5leHRCcmVhaygpKSB7CgkJdmFyIHdvcmQgPSB0ZXh0LnNsaWNlKGxhc3QsIGJrLnBvc2l0aW9uKTsKCgkJaWYgKGJrLnJlcXVpcmVkIHx8IHdvcmQubWF0Y2goL1xyP1xuJHxcciQvKSkgeyAvLyBuZXcgbGluZQoJCQl3b3JkID0gd29yZC5yZXBsYWNlKC9ccj9cbiR8XHIkLywgJycpOwoJCQlyZXN1bHRzLnB1c2goe3RleHQ6IHdvcmQsIGxpbmVFbmQ6IHRydWV9KTsKCQl9IGVsc2UgewoJCQlyZXN1bHRzLnB1c2goe3RleHQ6IHdvcmR9KTsKCQl9CgoJCWxhc3QgPSBiay5wb3NpdGlvbjsKCX0KCglyZXR1cm4gcmVzdWx0czsKfQoKZnVuY3Rpb24gY29weVN0eWxlKHNvdXJjZSwgZGVzdGluYXRpb24pIHsKCWRlc3RpbmF0aW9uID0gZGVzdGluYXRpb24gfHwge307Cglzb3VyY2UgPSBzb3VyY2UgfHwge307IC8vVE9ETzogZGVmYXVsdCBzdHlsZQoKCWZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsKCQlpZiAoa2V5ICE9ICd0ZXh0JyAmJiBzb3VyY2UuaGFzT3duUHJvcGVydHkoa2V5KSkgewoJCQlkZXN0aW5hdGlvbltrZXldID0gc291cmNlW2tleV07CgkJfQoJfQoKCXJldHVybiBkZXN0aW5hdGlvbjsKfQoKZnVuY3Rpb24gbm9ybWFsaXplVGV4dEFycmF5KGFycmF5LCBzdHlsZUNvbnRleHRTdGFjaykgewoJZnVuY3Rpb24gZmxhdHRlbihhcnJheSkgewoJCXJldHVybiBhcnJheS5yZWR1Y2UoZnVuY3Rpb24gKHByZXYsIGN1cikgewoJCQl2YXIgY3VycmVudCA9IGlzQXJyYXkoY3VyLnRleHQpID8gZmxhdHRlbihjdXIudGV4dCkgOiBjdXI7CgkJCXZhciBtb3JlID0gW10uY29uY2F0KGN1cnJlbnQpLnNvbWUoQXJyYXkuaXNBcnJheSk7CgkJCXJldHVybiBwcmV2LmNvbmNhdChtb3JlID8gZmxhdHRlbihjdXJyZW50KSA6IGN1cnJlbnQpOwoJCX0sIFtdKTsKCX0KCgl2YXIgcmVzdWx0cyA9IFtdOwoKCWlmICghaXNBcnJheShhcnJheSkpIHsKCQlhcnJheSA9IFthcnJheV07Cgl9CgoJYXJyYXkgPSBmbGF0dGVuKGFycmF5KTsKCglmb3IgKHZhciBpID0gMCwgbCA9IGFycmF5Lmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCXZhciBpdGVtID0gYXJyYXlbaV07CgkJdmFyIHN0eWxlID0gbnVsbDsKCQl2YXIgd29yZHM7CgoJCXZhciBub1dyYXAgPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0gfHwge30sIHN0eWxlQ29udGV4dFN0YWNrLCAnbm9XcmFwJywgZmFsc2UpOwoJCWlmIChpc09iamVjdChpdGVtKSkgewoJCQl3b3JkcyA9IHNwbGl0V29yZHMobm9ybWFsaXplU3RyaW5nKGl0ZW0udGV4dCksIG5vV3JhcCk7CgkJCXN0eWxlID0gY29weVN0eWxlKGl0ZW0pOwoJCX0gZWxzZSB7CgkJCXdvcmRzID0gc3BsaXRXb3Jkcyhub3JtYWxpemVTdHJpbmcoaXRlbSksIG5vV3JhcCk7CgkJfQoKCQlmb3IgKHZhciBpMiA9IDAsIGwyID0gd29yZHMubGVuZ3RoOyBpMiA8IGwyOyBpMisrKSB7CgkJCXZhciByZXN1bHQgPSB7CgkJCQl0ZXh0OiB3b3Jkc1tpMl0udGV4dAoJCQl9OwoKCQkJaWYgKHdvcmRzW2kyXS5saW5lRW5kKSB7CgkJCQlyZXN1bHQubGluZUVuZCA9IHRydWU7CgkJCX0KCgkJCWNvcHlTdHlsZShzdHlsZSwgcmVzdWx0KTsKCgkJCXJlc3VsdHMucHVzaChyZXN1bHQpOwoJCX0KCX0KCglyZXR1cm4gcmVzdWx0czsKfQoKZnVuY3Rpb24gbm9ybWFsaXplU3RyaW5nKHZhbHVlKSB7CglpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkgewoJCXJldHVybiAnJzsKCX0gZWxzZSBpZiAoaXNOdW1iZXIodmFsdWUpKSB7CgkJcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7Cgl9IGVsc2UgaWYgKGlzU3RyaW5nKHZhbHVlKSkgewoJCXJldHVybiB2YWx1ZTsKCX0gZWxzZSB7CgkJcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7Cgl9Cn0KCmZ1bmN0aW9uIGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssIHByb3BlcnR5LCBkZWZhdWx0VmFsdWUpIHsKCXZhciB2YWx1ZTsKCglpZiAoaXRlbVtwcm9wZXJ0eV0gIT09IHVuZGVmaW5lZCAmJiBpdGVtW3Byb3BlcnR5XSAhPT0gbnVsbCkgewoJCS8vIGl0ZW0gZGVmaW5lcyB0aGlzIHByb3BlcnR5CgkJcmV0dXJuIGl0ZW1bcHJvcGVydHldOwoJfQoKCWlmICghc3R5bGVDb250ZXh0U3RhY2spIHsKCQlyZXR1cm4gZGVmYXVsdFZhbHVlOwoJfQoKCXN0eWxlQ29udGV4dFN0YWNrLmF1dG8oaXRlbSwgZnVuY3Rpb24gKCkgewoJCXZhbHVlID0gc3R5bGVDb250ZXh0U3RhY2suZ2V0UHJvcGVydHkocHJvcGVydHkpOwoJfSk7CgoJaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4gdmFsdWU7Cgl9IGVsc2UgewoJCXJldHVybiBkZWZhdWx0VmFsdWU7Cgl9Cn0KCmZ1bmN0aW9uIG1lYXN1cmUoZm9udFByb3ZpZGVyLCB0ZXh0QXJyYXksIHN0eWxlQ29udGV4dFN0YWNrKSB7Cgl2YXIgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVRleHRBcnJheSh0ZXh0QXJyYXksIHN0eWxlQ29udGV4dFN0YWNrKTsKCglpZiAobm9ybWFsaXplZC5sZW5ndGgpIHsKCQl2YXIgbGVhZGluZ0luZGVudCA9IGdldFN0eWxlUHJvcGVydHkobm9ybWFsaXplZFswXSwgc3R5bGVDb250ZXh0U3RhY2ssICdsZWFkaW5nSW5kZW50JywgMCk7CgoJCWlmIChsZWFkaW5nSW5kZW50KSB7CgkJCW5vcm1hbGl6ZWRbMF0ubGVhZGluZ0N1dCA9IC1sZWFkaW5nSW5kZW50OwoJCQlub3JtYWxpemVkWzBdLmxlYWRpbmdJbmRlbnQgPSBsZWFkaW5nSW5kZW50OwoJCX0KCX0KCglub3JtYWxpemVkLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKCQl2YXIgZm9udE5hbWUgPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0sIHN0eWxlQ29udGV4dFN0YWNrLCAnZm9udCcsICdSb2JvdG8nKTsKCQl2YXIgZm9udFNpemUgPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0sIHN0eWxlQ29udGV4dFN0YWNrLCAnZm9udFNpemUnLCAxMik7CgkJdmFyIGZvbnRGZWF0dXJlcyA9IGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssICdmb250RmVhdHVyZXMnLCBudWxsKTsKCQl2YXIgYm9sZCA9IGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssICdib2xkJywgZmFsc2UpOwoJCXZhciBpdGFsaWNzID0gZ2V0U3R5bGVQcm9wZXJ0eShpdGVtLCBzdHlsZUNvbnRleHRTdGFjaywgJ2l0YWxpY3MnLCBmYWxzZSk7CgkJdmFyIGNvbG9yID0gZ2V0U3R5bGVQcm9wZXJ0eShpdGVtLCBzdHlsZUNvbnRleHRTdGFjaywgJ2NvbG9yJywgJ2JsYWNrJyk7CgkJdmFyIGRlY29yYXRpb24gPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0sIHN0eWxlQ29udGV4dFN0YWNrLCAnZGVjb3JhdGlvbicsIG51bGwpOwoJCXZhciBkZWNvcmF0aW9uQ29sb3IgPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0sIHN0eWxlQ29udGV4dFN0YWNrLCAnZGVjb3JhdGlvbkNvbG9yJywgbnVsbCk7CgkJdmFyIGRlY29yYXRpb25TdHlsZSA9IGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssICdkZWNvcmF0aW9uU3R5bGUnLCBudWxsKTsKCQl2YXIgYmFja2dyb3VuZCA9IGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssICdiYWNrZ3JvdW5kJywgbnVsbCk7CgkJdmFyIGxpbmVIZWlnaHQgPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0sIHN0eWxlQ29udGV4dFN0YWNrLCAnbGluZUhlaWdodCcsIDEpOwoJCXZhciBjaGFyYWN0ZXJTcGFjaW5nID0gZ2V0U3R5bGVQcm9wZXJ0eShpdGVtLCBzdHlsZUNvbnRleHRTdGFjaywgJ2NoYXJhY3RlclNwYWNpbmcnLCAwKTsKCQl2YXIgbGluayA9IGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssICdsaW5rJywgbnVsbCk7CgkJdmFyIGxpbmtUb1BhZ2UgPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0sIHN0eWxlQ29udGV4dFN0YWNrLCAnbGlua1RvUGFnZScsIG51bGwpOwoJCXZhciBub1dyYXAgPSBnZXRTdHlsZVByb3BlcnR5KGl0ZW0sIHN0eWxlQ29udGV4dFN0YWNrLCAnbm9XcmFwJywgbnVsbCk7CgkJdmFyIHByZXNlcnZlTGVhZGluZ1NwYWNlcyA9IGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssICdwcmVzZXJ2ZUxlYWRpbmdTcGFjZXMnLCBmYWxzZSk7CgoJCXZhciBmb250ID0gZm9udFByb3ZpZGVyLnByb3ZpZGVGb250KGZvbnROYW1lLCBib2xkLCBpdGFsaWNzKTsKCgkJaXRlbS53aWR0aCA9IHdpZHRoT2ZTdHJpbmcoaXRlbS50ZXh0LCBmb250LCBmb250U2l6ZSwgY2hhcmFjdGVyU3BhY2luZywgZm9udEZlYXR1cmVzKTsKCQlpdGVtLmhlaWdodCA9IGZvbnQubGluZUhlaWdodChmb250U2l6ZSkgKiBsaW5lSGVpZ2h0OwoKCQl2YXIgbGVhZGluZ1NwYWNlcyA9IGl0ZW0udGV4dC5tYXRjaChMRUFESU5HKTsKCgkJaWYgKCFpdGVtLmxlYWRpbmdDdXQpIHsKCQkJaXRlbS5sZWFkaW5nQ3V0ID0gMDsKCQl9CgoJCWlmIChsZWFkaW5nU3BhY2VzICYmICFwcmVzZXJ2ZUxlYWRpbmdTcGFjZXMpIHsKCQkJaXRlbS5sZWFkaW5nQ3V0ICs9IHdpZHRoT2ZTdHJpbmcobGVhZGluZ1NwYWNlc1swXSwgZm9udCwgZm9udFNpemUsIGNoYXJhY3RlclNwYWNpbmcsIGZvbnRGZWF0dXJlcyk7CgkJfQoKCQl2YXIgdHJhaWxpbmdTcGFjZXMgPSBpdGVtLnRleHQubWF0Y2goVFJBSUxJTkcpOwoJCWlmICh0cmFpbGluZ1NwYWNlcykgewoJCQlpdGVtLnRyYWlsaW5nQ3V0ID0gd2lkdGhPZlN0cmluZyh0cmFpbGluZ1NwYWNlc1swXSwgZm9udCwgZm9udFNpemUsIGNoYXJhY3RlclNwYWNpbmcsIGZvbnRGZWF0dXJlcyk7CgkJfSBlbHNlIHsKCQkJaXRlbS50cmFpbGluZ0N1dCA9IDA7CgkJfQoKCQlpdGVtLmFsaWdubWVudCA9IGdldFN0eWxlUHJvcGVydHkoaXRlbSwgc3R5bGVDb250ZXh0U3RhY2ssICdhbGlnbm1lbnQnLCAnbGVmdCcpOwoJCWl0ZW0uZm9udCA9IGZvbnQ7CgkJaXRlbS5mb250U2l6ZSA9IGZvbnRTaXplOwoJCWl0ZW0uZm9udEZlYXR1cmVzID0gZm9udEZlYXR1cmVzOwoJCWl0ZW0uY2hhcmFjdGVyU3BhY2luZyA9IGNoYXJhY3RlclNwYWNpbmc7CgkJaXRlbS5jb2xvciA9IGNvbG9yOwoJCWl0ZW0uZGVjb3JhdGlvbiA9IGRlY29yYXRpb247CgkJaXRlbS5kZWNvcmF0aW9uQ29sb3IgPSBkZWNvcmF0aW9uQ29sb3I7CgkJaXRlbS5kZWNvcmF0aW9uU3R5bGUgPSBkZWNvcmF0aW9uU3R5bGU7CgkJaXRlbS5iYWNrZ3JvdW5kID0gYmFja2dyb3VuZDsKCQlpdGVtLmxpbmsgPSBsaW5rOwoJCWl0ZW0ubGlua1RvUGFnZSA9IGxpbmtUb1BhZ2U7CgkJaXRlbS5ub1dyYXAgPSBub1dyYXA7Cgl9KTsKCglyZXR1cm4gbm9ybWFsaXplZDsKfQoKZnVuY3Rpb24gd2lkdGhPZlN0cmluZyh0ZXh0LCBmb250LCBmb250U2l6ZSwgY2hhcmFjdGVyU3BhY2luZywgZm9udEZlYXR1cmVzKSB7CglyZXR1cm4gZm9udC53aWR0aE9mU3RyaW5nKHRleHQsIGZvbnRTaXplLCBmb250RmVhdHVyZXMpICsgKChjaGFyYWN0ZXJTcGFjaW5nIHx8IDApICogKHRleHQubGVuZ3RoIC0gMSkpOwp9Cgptb2R1bGUuZXhwb3J0cyA9IFRleHRUb29sczsKCgovKioqLyB9KSwKLyogNDMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQp2YXIgVW5pY29kZVRyaWUsIGluZmxhdGU7CgppbmZsYXRlID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3OSk7CgpVbmljb2RlVHJpZSA9IChmdW5jdGlvbigpIHsKICB2YXIgREFUQV9CTE9DS19MRU5HVEgsIERBVEFfR1JBTlVMQVJJVFksIERBVEFfTUFTSywgSU5ERVhfMV9PRkZTRVQsIElOREVYXzJfQkxPQ0tfTEVOR1RILCBJTkRFWF8yX0JNUF9MRU5HVEgsIElOREVYXzJfTUFTSywgSU5ERVhfU0hJRlQsIExTQ1BfSU5ERVhfMl9MRU5HVEgsIExTQ1BfSU5ERVhfMl9PRkZTRVQsIE9NSVRURURfQk1QX0lOREVYXzFfTEVOR1RILCBTSElGVF8xLCBTSElGVF8xXzIsIFNISUZUXzIsIFVURjhfMkJfSU5ERVhfMl9MRU5HVEgsIFVURjhfMkJfSU5ERVhfMl9PRkZTRVQ7CgogIFNISUZUXzEgPSA2ICsgNTsKCiAgU0hJRlRfMiA9IDU7CgogIFNISUZUXzFfMiA9IFNISUZUXzEgLSBTSElGVF8yOwoKICBPTUlUVEVEX0JNUF9JTkRFWF8xX0xFTkdUSCA9IDB4MTAwMDAgPj4gU0hJRlRfMTsKCiAgSU5ERVhfMl9CTE9DS19MRU5HVEggPSAxIDw8IFNISUZUXzFfMjsKCiAgSU5ERVhfMl9NQVNLID0gSU5ERVhfMl9CTE9DS19MRU5HVEggLSAxOwoKICBJTkRFWF9TSElGVCA9IDI7CgogIERBVEFfQkxPQ0tfTEVOR1RIID0gMSA8PCBTSElGVF8yOwoKICBEQVRBX01BU0sgPSBEQVRBX0JMT0NLX0xFTkdUSCAtIDE7CgogIExTQ1BfSU5ERVhfMl9PRkZTRVQgPSAweDEwMDAwID4+IFNISUZUXzI7CgogIExTQ1BfSU5ERVhfMl9MRU5HVEggPSAweDQwMCA+PiBTSElGVF8yOwoKICBJTkRFWF8yX0JNUF9MRU5HVEggPSBMU0NQX0lOREVYXzJfT0ZGU0VUICsgTFNDUF9JTkRFWF8yX0xFTkdUSDsKCiAgVVRGOF8yQl9JTkRFWF8yX09GRlNFVCA9IElOREVYXzJfQk1QX0xFTkdUSDsKCiAgVVRGOF8yQl9JTkRFWF8yX0xFTkdUSCA9IDB4ODAwID4+IDY7CgogIElOREVYXzFfT0ZGU0VUID0gVVRGOF8yQl9JTkRFWF8yX09GRlNFVCArIFVURjhfMkJfSU5ERVhfMl9MRU5HVEg7CgogIERBVEFfR1JBTlVMQVJJVFkgPSAxIDw8IElOREVYX1NISUZUOwoKICBmdW5jdGlvbiBVbmljb2RlVHJpZShkYXRhKSB7CiAgICB2YXIgaXNCdWZmZXIsIHVuY29tcHJlc3NlZExlbmd0aCwgdmlldzsKICAgIGlzQnVmZmVyID0gdHlwZW9mIGRhdGEucmVhZFVJbnQzMkJFID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBkYXRhLnNsaWNlID09PSAnZnVuY3Rpb24nOwogICAgaWYgKGlzQnVmZmVyIHx8IGRhdGEgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7CiAgICAgIGlmIChpc0J1ZmZlcikgewogICAgICAgIHRoaXMuaGlnaFN0YXJ0ID0gZGF0YS5yZWFkVUludDMyQkUoMCk7CiAgICAgICAgdGhpcy5lcnJvclZhbHVlID0gZGF0YS5yZWFkVUludDMyQkUoNCk7CiAgICAgICAgdW5jb21wcmVzc2VkTGVuZ3RoID0gZGF0YS5yZWFkVUludDMyQkUoOCk7CiAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoMTIpOwogICAgICB9IGVsc2UgewogICAgICAgIHZpZXcgPSBuZXcgRGF0YVZpZXcoZGF0YS5idWZmZXIpOwogICAgICAgIHRoaXMuaGlnaFN0YXJ0ID0gdmlldy5nZXRVaW50MzIoMCk7CiAgICAgICAgdGhpcy5lcnJvclZhbHVlID0gdmlldy5nZXRVaW50MzIoNCk7CiAgICAgICAgdW5jb21wcmVzc2VkTGVuZ3RoID0gdmlldy5nZXRVaW50MzIoOCk7CiAgICAgICAgZGF0YSA9IGRhdGEuc3ViYXJyYXkoMTIpOwogICAgICB9CiAgICAgIGRhdGEgPSBpbmZsYXRlKGRhdGEsIG5ldyBVaW50OEFycmF5KHVuY29tcHJlc3NlZExlbmd0aCkpOwogICAgICBkYXRhID0gaW5mbGF0ZShkYXRhLCBuZXcgVWludDhBcnJheSh1bmNvbXByZXNzZWRMZW5ndGgpKTsKICAgICAgdGhpcy5kYXRhID0gbmV3IFVpbnQzMkFycmF5KGRhdGEuYnVmZmVyKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YSwgdGhpcy5oaWdoU3RhcnQgPSBkYXRhLmhpZ2hTdGFydCwgdGhpcy5lcnJvclZhbHVlID0gZGF0YS5lcnJvclZhbHVlOwogICAgfQogIH0KCiAgVW5pY29kZVRyaWUucHJvdG90eXBlLmdldCA9IGZ1bmN0aW9uKGNvZGVQb2ludCkgewogICAgdmFyIGluZGV4OwogICAgaWYgKGNvZGVQb2ludCA8IDAgfHwgY29kZVBvaW50ID4gMHgxMGZmZmYpIHsKICAgICAgcmV0dXJuIHRoaXMuZXJyb3JWYWx1ZTsKICAgIH0KICAgIGlmIChjb2RlUG9pbnQgPCAweGQ4MDAgfHwgKGNvZGVQb2ludCA+IDB4ZGJmZiAmJiBjb2RlUG9pbnQgPD0gMHhmZmZmKSkgewogICAgICBpbmRleCA9ICh0aGlzLmRhdGFbY29kZVBvaW50ID4+IFNISUZUXzJdIDw8IElOREVYX1NISUZUKSArIChjb2RlUG9pbnQgJiBEQVRBX01BU0spOwogICAgICByZXR1cm4gdGhpcy5kYXRhW2luZGV4XTsKICAgIH0KICAgIGlmIChjb2RlUG9pbnQgPD0gMHhmZmZmKSB7CiAgICAgIGluZGV4ID0gKHRoaXMuZGF0YVtMU0NQX0lOREVYXzJfT0ZGU0VUICsgKChjb2RlUG9pbnQgLSAweGQ4MDApID4+IFNISUZUXzIpXSA8PCBJTkRFWF9TSElGVCkgKyAoY29kZVBvaW50ICYgREFUQV9NQVNLKTsKICAgICAgcmV0dXJuIHRoaXMuZGF0YVtpbmRleF07CiAgICB9CiAgICBpZiAoY29kZVBvaW50IDwgdGhpcy5oaWdoU3RhcnQpIHsKICAgICAgaW5kZXggPSB0aGlzLmRhdGFbKElOREVYXzFfT0ZGU0VUIC0gT01JVFRFRF9CTVBfSU5ERVhfMV9MRU5HVEgpICsgKGNvZGVQb2ludCA+PiBTSElGVF8xKV07CiAgICAgIGluZGV4ID0gdGhpcy5kYXRhW2luZGV4ICsgKChjb2RlUG9pbnQgPj4gU0hJRlRfMikgJiBJTkRFWF8yX01BU0spXTsKICAgICAgaW5kZXggPSAoaW5kZXggPDwgSU5ERVhfU0hJRlQpICsgKGNvZGVQb2ludCAmIERBVEFfTUFTSyk7CiAgICAgIHJldHVybiB0aGlzLmRhdGFbaW5kZXhdOwogICAgfQogICAgcmV0dXJuIHRoaXMuZGF0YVt0aGlzLmRhdGEubGVuZ3RoIC0gREFUQV9HUkFOVUxBUklUWV07CiAgfTsKCiAgcmV0dXJuIFVuaWNvZGVUcmllOwoKfSkoKTsKCm1vZHVsZS5leHBvcnRzID0gVW5pY29kZVRyaWU7CgoKLyoqKi8gfSksCi8qIDQ0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgp2YXIgaXNTdHJpbmcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzU3RyaW5nOwoKZnVuY3Rpb24gYnVpbGRDb2x1bW5XaWR0aHMoY29sdW1ucywgYXZhaWxhYmxlV2lkdGgpIHsKCXZhciBhdXRvQ29sdW1ucyA9IFtdLAoJCWF1dG9NaW4gPSAwLCBhdXRvTWF4ID0gMCwKCQlzdGFyQ29sdW1ucyA9IFtdLAoJCXN0YXJNYXhNaW4gPSAwLAoJCXN0YXJNYXhNYXggPSAwLAoJCWZpeGVkQ29sdW1ucyA9IFtdLAoJCWluaXRpYWxfYXZhaWxhYmxlV2lkdGggPSBhdmFpbGFibGVXaWR0aDsKCgljb2x1bW5zLmZvckVhY2goZnVuY3Rpb24gKGNvbHVtbikgewoJCWlmIChpc0F1dG9Db2x1bW4oY29sdW1uKSkgewoJCQlhdXRvQ29sdW1ucy5wdXNoKGNvbHVtbik7CgkJCWF1dG9NaW4gKz0gY29sdW1uLl9taW5XaWR0aDsKCQkJYXV0b01heCArPSBjb2x1bW4uX21heFdpZHRoOwoJCX0gZWxzZSBpZiAoaXNTdGFyQ29sdW1uKGNvbHVtbikpIHsKCQkJc3RhckNvbHVtbnMucHVzaChjb2x1bW4pOwoJCQlzdGFyTWF4TWluID0gTWF0aC5tYXgoc3Rhck1heE1pbiwgY29sdW1uLl9taW5XaWR0aCk7CgkJCXN0YXJNYXhNYXggPSBNYXRoLm1heChzdGFyTWF4TWF4LCBjb2x1bW4uX21heFdpZHRoKTsKCQl9IGVsc2UgewoJCQlmaXhlZENvbHVtbnMucHVzaChjb2x1bW4pOwoJCX0KCX0pOwoKCWZpeGVkQ29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uIChjb2wpIHsKCQkvLyB3aWR0aCBzcGVjaWZpZWQgYXMgJQoJCWlmIChpc1N0cmluZyhjb2wud2lkdGgpICYmIC9cZCslLy50ZXN0KGNvbC53aWR0aCkpIHsKCQkJY29sLndpZHRoID0gcGFyc2VGbG9hdChjb2wud2lkdGgpICogaW5pdGlhbF9hdmFpbGFibGVXaWR0aCAvIDEwMDsKCQl9CgkJaWYgKGNvbC53aWR0aCA8IChjb2wuX21pbldpZHRoKSAmJiBjb2wuZWxhc3RpY1dpZHRoKSB7CgkJCWNvbC5fY2FsY1dpZHRoID0gY29sLl9taW5XaWR0aDsKCQl9IGVsc2UgewoJCQljb2wuX2NhbGNXaWR0aCA9IGNvbC53aWR0aDsKCQl9CgoJCWF2YWlsYWJsZVdpZHRoIC09IGNvbC5fY2FsY1dpZHRoOwoJfSk7CgoJLy8gaHR0cDovL3d3dy5mcmVlc29mdC5vcmcvQ0lFL1JGQy8xOTQyLzE4Lmh0bQoJLy8gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMi90YWJsZXMuaHRtbCN3aWR0aC1sYXlvdXQKCS8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdGFibGVzLWFsZ29yaXRobXMvT3ZlcnZpZXcuc3JjLmh0bQoJdmFyIG1pblcgPSBhdXRvTWluICsgc3Rhck1heE1pbiAqIHN0YXJDb2x1bW5zLmxlbmd0aDsKCXZhciBtYXhXID0gYXV0b01heCArIHN0YXJNYXhNYXggKiBzdGFyQ29sdW1ucy5sZW5ndGg7CglpZiAobWluVyA+PSBhdmFpbGFibGVXaWR0aCkgewoJCS8vIGNhc2UgMSAtIHRoZXJlJ3Mgbm8gd2F5IHRvIGZpdCBhbGwgY29sdW1ucyB3aXRoaW4gYXZhaWxhYmxlIHdpZHRoCgkJLy8gdGhhdCdzIGFjdHVhbGx5IHByZXR0eSBiYWQgc2l0dWF0aW9uIHdpdGggUERGIGFzIHdlIGhhdmUgbm8gaG9yaXpvbnRhbCBzY3JvbGwKCQkvLyBubyBlYXN5IHdvcmthcm91bmQgKHVubGVzcyB3ZSBkZWNpZGUsIGluIHRoZSBmdXR1cmUsIHRvIHNwbGl0IHNpbmdsZSB3b3JkcykKCQkvLyBjdXJyZW50bHkgd2Ugc2ltcGx5IHVzZSBtaW5XaWR0aHMgZm9yIGFsbCBjb2x1bW5zCgkJYXV0b0NvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoY29sKSB7CgkJCWNvbC5fY2FsY1dpZHRoID0gY29sLl9taW5XaWR0aDsKCQl9KTsKCgkJc3RhckNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoY29sKSB7CgkJCWNvbC5fY2FsY1dpZHRoID0gc3Rhck1heE1pbjsgLy8gc3Rhck1heE1pbiBhbHJlYWR5IGNvbnRhaW5zIHBhZGRpbmcKCQl9KTsKCX0gZWxzZSB7CgkJaWYgKG1heFcgPCBhdmFpbGFibGVXaWR0aCkgewoJCQkvLyBjYXNlIDIgLSB3ZSBjYW4gZml0IHJlc3Qgb2YgdGhlIHRhYmxlIHdpdGhpbiBhdmFpbGFibGUgc3BhY2UKCQkJYXV0b0NvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoY29sKSB7CgkJCQljb2wuX2NhbGNXaWR0aCA9IGNvbC5fbWF4V2lkdGg7CgkJCQlhdmFpbGFibGVXaWR0aCAtPSBjb2wuX2NhbGNXaWR0aDsKCQkJfSk7CgkJfSBlbHNlIHsKCQkJLy8gbWF4VyBpcyB0b28gbGFyZ2UsIGJ1dCBtaW5XIGZpdHMgd2l0aGluIGF2YWlsYWJsZSB3aWR0aAoJCQl2YXIgVyA9IGF2YWlsYWJsZVdpZHRoIC0gbWluVzsKCQkJdmFyIEQgPSBtYXhXIC0gbWluVzsKCgkJCWF1dG9Db2x1bW5zLmZvckVhY2goZnVuY3Rpb24gKGNvbCkgewoJCQkJdmFyIGQgPSBjb2wuX21heFdpZHRoIC0gY29sLl9taW5XaWR0aDsKCQkJCWNvbC5fY2FsY1dpZHRoID0gY29sLl9taW5XaWR0aCArIGQgKiBXIC8gRDsKCQkJCWF2YWlsYWJsZVdpZHRoIC09IGNvbC5fY2FsY1dpZHRoOwoJCQl9KTsKCQl9CgoJCWlmIChzdGFyQ29sdW1ucy5sZW5ndGggPiAwKSB7CgkJCXZhciBzdGFyU2l6ZSA9IGF2YWlsYWJsZVdpZHRoIC8gc3RhckNvbHVtbnMubGVuZ3RoOwoKCQkJc3RhckNvbHVtbnMuZm9yRWFjaChmdW5jdGlvbiAoY29sKSB7CgkJCQljb2wuX2NhbGNXaWR0aCA9IHN0YXJTaXplOwoJCQl9KTsKCQl9Cgl9Cn0KCmZ1bmN0aW9uIGlzQXV0b0NvbHVtbihjb2x1bW4pIHsKCXJldHVybiBjb2x1bW4ud2lkdGggPT09ICdhdXRvJzsKfQoKZnVuY3Rpb24gaXNTdGFyQ29sdW1uKGNvbHVtbikgewoJcmV0dXJuIGNvbHVtbi53aWR0aCA9PT0gbnVsbCB8fCBjb2x1bW4ud2lkdGggPT09IHVuZGVmaW5lZCB8fCBjb2x1bW4ud2lkdGggPT09ICcqJyB8fCBjb2x1bW4ud2lkdGggPT09ICdzdGFyJzsKfQoKLy9UT0RPOiByZWZhY3RvciBhbmQgcmV1c2UgaW4gbWVhc3VyZVRhYmxlCmZ1bmN0aW9uIG1lYXN1cmVNaW5NYXgoY29sdW1ucykgewoJdmFyIHJlc3VsdCA9IHttaW46IDAsIG1heDogMH07CgoJdmFyIG1heFN0YXIgPSB7bWluOiAwLCBtYXg6IDB9OwoJdmFyIHN0YXJDb3VudCA9IDA7CgoJZm9yICh2YXIgaSA9IDAsIGwgPSBjb2x1bW5zLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCXZhciBjID0gY29sdW1uc1tpXTsKCgkJaWYgKGlzU3RhckNvbHVtbihjKSkgewoJCQltYXhTdGFyLm1pbiA9IE1hdGgubWF4KG1heFN0YXIubWluLCBjLl9taW5XaWR0aCk7CgkJCW1heFN0YXIubWF4ID0gTWF0aC5tYXgobWF4U3Rhci5tYXgsIGMuX21heFdpZHRoKTsKCQkJc3RhckNvdW50Kys7CgkJfSBlbHNlIGlmIChpc0F1dG9Db2x1bW4oYykpIHsKCQkJcmVzdWx0Lm1pbiArPSBjLl9taW5XaWR0aDsKCQkJcmVzdWx0Lm1heCArPSBjLl9tYXhXaWR0aDsKCQl9IGVsc2UgewoJCQlyZXN1bHQubWluICs9ICgoYy53aWR0aCAhPT0gdW5kZWZpbmVkICYmIGMud2lkdGgpIHx8IGMuX21pbldpZHRoKTsKCQkJcmVzdWx0Lm1heCArPSAoKGMud2lkdGggIT09IHVuZGVmaW5lZCAmJiBjLndpZHRoKSB8fCBjLl9tYXhXaWR0aCk7CgkJfQoJfQoKCWlmIChzdGFyQ291bnQpIHsKCQlyZXN1bHQubWluICs9IHN0YXJDb3VudCAqIG1heFN0YXIubWluOwoJCXJlc3VsdC5tYXggKz0gc3RhckNvdW50ICogbWF4U3Rhci5tYXg7Cgl9CgoJcmV0dXJuIHJlc3VsdDsKfQoKLyoqCiAqIENhbGN1bGF0ZXMgY29sdW1uIHdpZHRocwogKiBAcHJpdmF0ZQogKi8KbW9kdWxlLmV4cG9ydHMgPSB7CglidWlsZENvbHVtbldpZHRoczogYnVpbGRDb2x1bW5XaWR0aHMsCgltZWFzdXJlTWluTWF4OiBtZWFzdXJlTWluTWF4LAoJaXNBdXRvQ29sdW1uOiBpc0F1dG9Db2x1bW4sCglpc1N0YXJDb2x1bW46IGlzU3RhckNvbHVtbgp9OwoKCi8qKiovIH0pLAovKiA0NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgzKTsKZXhwb3J0cy5TdHJlYW0gPSBleHBvcnRzOwpleHBvcnRzLlJlYWRhYmxlID0gZXhwb3J0czsKZXhwb3J0cy5Xcml0YWJsZSA9IF9fd2VicGFja19yZXF1aXJlX18oNDYpOwpleHBvcnRzLkR1cGxleCA9IF9fd2VicGFja19yZXF1aXJlX18oMTYpOwpleHBvcnRzLlRyYW5zZm9ybSA9IF9fd2VicGFja19yZXF1aXJlX18oODYpOwpleHBvcnRzLlBhc3NUaHJvdWdoID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNDUpOwoKCi8qKiovIH0pLAovKiA0NiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Ci8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihwcm9jZXNzLCBzZXRJbW1lZGlhdGUsIGdsb2JhbCkgey8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLgovLwovLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQovLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi8vICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAovLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0Ci8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZQovLyBmb2xsb3dpbmcgY29uZGl0aW9uczoKLy8KLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi8vCi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTgovLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCi8vIEEgYml0IHNpbXBsZXIgdGhhbiByZWFkYWJsZSBzdHJlYW1zLgovLyBJbXBsZW1lbnQgYW4gYXN5bmMgLl93cml0ZShjaHVuaywgZW5jb2RpbmcsIGNiKSwgYW5kIGl0J2xsIGhhbmRsZSBhbGwKLy8gdGhlIGRyYWluIGV2ZW50IGVtaXNzaW9uIGFuZCBidWZmZXJpbmcuCgoKCi8qPHJlcGxhY2VtZW50PiovCgp2YXIgcHJvY2Vzc05leHRUaWNrID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMikubmV4dFRpY2s7Ci8qPC9yZXBsYWNlbWVudD4qLwoKbW9kdWxlLmV4cG9ydHMgPSBXcml0YWJsZTsKCi8qIDxyZXBsYWNlbWVudD4gKi8KZnVuY3Rpb24gV3JpdGVSZXEoY2h1bmssIGVuY29kaW5nLCBjYikgewogIHRoaXMuY2h1bmsgPSBjaHVuazsKICB0aGlzLmVuY29kaW5nID0gZW5jb2Rpbmc7CiAgdGhpcy5jYWxsYmFjayA9IGNiOwogIHRoaXMubmV4dCA9IG51bGw7Cn0KCi8vIEl0IHNlZW1zIGEgbGlua2VkIGxpc3QgYnV0IGl0IGlzIG5vdAovLyB0aGVyZSB3aWxsIGJlIG9ubHkgMiBvZiB0aGVzZSBmb3IgZWFjaCBzdHJlYW0KZnVuY3Rpb24gQ29ya2VkUmVxdWVzdChzdGF0ZSkgewogIHZhciBfdGhpcyA9IHRoaXM7CgogIHRoaXMubmV4dCA9IG51bGw7CiAgdGhpcy5lbnRyeSA9IG51bGw7CiAgdGhpcy5maW5pc2ggPSBmdW5jdGlvbiAoKSB7CiAgICBvbkNvcmtlZEZpbmlzaChfdGhpcywgc3RhdGUpOwogIH07Cn0KLyogPC9yZXBsYWNlbWVudD4gKi8KCi8qPHJlcGxhY2VtZW50PiovCnZhciBhc3luY1dyaXRlID0gIXByb2Nlc3MuYnJvd3NlciAmJiBbJ3YwLjEwJywgJ3YwLjkuJ10uaW5kZXhPZihwcm9jZXNzLnZlcnNpb24uc2xpY2UoMCwgNSkpID4gLTEgPyBzZXRJbW1lZGlhdGUgOiBwcm9jZXNzTmV4dFRpY2s7Ci8qPC9yZXBsYWNlbWVudD4qLwoKLyo8cmVwbGFjZW1lbnQ+Ki8KdmFyIER1cGxleDsKLyo8L3JlcGxhY2VtZW50PiovCgpXcml0YWJsZS5Xcml0YWJsZVN0YXRlID0gV3JpdGFibGVTdGF0ZTsKCi8qPHJlcGxhY2VtZW50PiovCnZhciB1dGlsID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNSk7CnV0aWwuaW5oZXJpdHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKLyo8L3JlcGxhY2VtZW50PiovCgovKjxyZXBsYWNlbWVudD4qLwp2YXIgaW50ZXJuYWxVdGlsID0gewogIGRlcHJlY2F0ZTogX193ZWJwYWNrX3JlcXVpcmVfXygxNDQpCn07Ci8qPC9yZXBsYWNlbWVudD4qLwoKLyo8cmVwbGFjZW1lbnQ+Ki8KdmFyIFN0cmVhbSA9IF9fd2VicGFja19yZXF1aXJlX18oODQpOwovKjwvcmVwbGFjZW1lbnQ+Ki8KCi8qPHJlcGxhY2VtZW50PiovCgp2YXIgQnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMykuQnVmZmVyOwp2YXIgT3VyVWludDhBcnJheSA9IGdsb2JhbC5VaW50OEFycmF5IHx8IGZ1bmN0aW9uICgpIHt9OwpmdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKGNodW5rKSB7CiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNodW5rKTsKfQpmdW5jdGlvbiBfaXNVaW50OEFycmF5KG9iaikgewogIHJldHVybiBCdWZmZXIuaXNCdWZmZXIob2JqKSB8fCBvYmogaW5zdGFuY2VvZiBPdXJVaW50OEFycmF5Owp9CgovKjwvcmVwbGFjZW1lbnQ+Ki8KCnZhciBkZXN0cm95SW1wbCA9IF9fd2VicGFja19yZXF1aXJlX18oODUpOwoKdXRpbC5pbmhlcml0cyhXcml0YWJsZSwgU3RyZWFtKTsKCmZ1bmN0aW9uIG5vcCgpIHt9CgpmdW5jdGlvbiBXcml0YWJsZVN0YXRlKG9wdGlvbnMsIHN0cmVhbSkgewogIER1cGxleCA9IER1cGxleCB8fCBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KTsKCiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgogIC8vIER1cGxleCBzdHJlYW1zIGFyZSBib3RoIHJlYWRhYmxlIGFuZCB3cml0YWJsZSwgYnV0IHNoYXJlCiAgLy8gdGhlIHNhbWUgb3B0aW9ucyBvYmplY3QuCiAgLy8gSG93ZXZlciwgc29tZSBjYXNlcyByZXF1aXJlIHNldHRpbmcgb3B0aW9ucyB0byBkaWZmZXJlbnQKICAvLyB2YWx1ZXMgZm9yIHRoZSByZWFkYWJsZSBhbmQgdGhlIHdyaXRhYmxlIHNpZGVzIG9mIHRoZSBkdXBsZXggc3RyZWFtLgogIC8vIFRoZXNlIG9wdGlvbnMgY2FuIGJlIHByb3ZpZGVkIHNlcGFyYXRlbHkgYXMgcmVhZGFibGVYWFggYW5kIHdyaXRhYmxlWFhYLgogIHZhciBpc0R1cGxleCA9IHN0cmVhbSBpbnN0YW5jZW9mIER1cGxleDsKCiAgLy8gb2JqZWN0IHN0cmVhbSBmbGFnIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoaXMgc3RyZWFtCiAgLy8gY29udGFpbnMgYnVmZmVycyBvciBvYmplY3RzLgogIHRoaXMub2JqZWN0TW9kZSA9ICEhb3B0aW9ucy5vYmplY3RNb2RlOwoKICBpZiAoaXNEdXBsZXgpIHRoaXMub2JqZWN0TW9kZSA9IHRoaXMub2JqZWN0TW9kZSB8fCAhIW9wdGlvbnMud3JpdGFibGVPYmplY3RNb2RlOwoKICAvLyB0aGUgcG9pbnQgYXQgd2hpY2ggd3JpdGUoKSBzdGFydHMgcmV0dXJuaW5nIGZhbHNlCiAgLy8gTm90ZTogMCBpcyBhIHZhbGlkIHZhbHVlLCBtZWFucyB0aGF0IHdlIGFsd2F5cyByZXR1cm4gZmFsc2UgaWYKICAvLyB0aGUgZW50aXJlIGJ1ZmZlciBpcyBub3QgZmx1c2hlZCBpbW1lZGlhdGVseSBvbiB3cml0ZSgpCiAgdmFyIGh3bSA9IG9wdGlvbnMuaGlnaFdhdGVyTWFyazsKICB2YXIgd3JpdGFibGVId20gPSBvcHRpb25zLndyaXRhYmxlSGlnaFdhdGVyTWFyazsKICB2YXIgZGVmYXVsdEh3bSA9IHRoaXMub2JqZWN0TW9kZSA/IDE2IDogMTYgKiAxMDI0OwoKICBpZiAoaHdtIHx8IGh3bSA9PT0gMCkgdGhpcy5oaWdoV2F0ZXJNYXJrID0gaHdtO2Vsc2UgaWYgKGlzRHVwbGV4ICYmICh3cml0YWJsZUh3bSB8fCB3cml0YWJsZUh3bSA9PT0gMCkpIHRoaXMuaGlnaFdhdGVyTWFyayA9IHdyaXRhYmxlSHdtO2Vsc2UgdGhpcy5oaWdoV2F0ZXJNYXJrID0gZGVmYXVsdEh3bTsKCiAgLy8gY2FzdCB0byBpbnRzLgogIHRoaXMuaGlnaFdhdGVyTWFyayA9IE1hdGguZmxvb3IodGhpcy5oaWdoV2F0ZXJNYXJrKTsKCiAgLy8gaWYgX2ZpbmFsIGhhcyBiZWVuIGNhbGxlZAogIHRoaXMuZmluYWxDYWxsZWQgPSBmYWxzZTsKCiAgLy8gZHJhaW4gZXZlbnQgZmxhZy4KICB0aGlzLm5lZWREcmFpbiA9IGZhbHNlOwogIC8vIGF0IHRoZSBzdGFydCBvZiBjYWxsaW5nIGVuZCgpCiAgdGhpcy5lbmRpbmcgPSBmYWxzZTsKICAvLyB3aGVuIGVuZCgpIGhhcyBiZWVuIGNhbGxlZCwgYW5kIHJldHVybmVkCiAgdGhpcy5lbmRlZCA9IGZhbHNlOwogIC8vIHdoZW4gJ2ZpbmlzaCcgaXMgZW1pdHRlZAogIHRoaXMuZmluaXNoZWQgPSBmYWxzZTsKCiAgLy8gaGFzIGl0IGJlZW4gZGVzdHJveWVkCiAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZTsKCiAgLy8gc2hvdWxkIHdlIGRlY29kZSBzdHJpbmdzIGludG8gYnVmZmVycyBiZWZvcmUgcGFzc2luZyB0byBfd3JpdGU/CiAgLy8gdGhpcyBpcyBoZXJlIHNvIHRoYXQgc29tZSBub2RlLWNvcmUgc3RyZWFtcyBjYW4gb3B0aW1pemUgc3RyaW5nCiAgLy8gaGFuZGxpbmcgYXQgYSBsb3dlciBsZXZlbC4KICB2YXIgbm9EZWNvZGUgPSBvcHRpb25zLmRlY29kZVN0cmluZ3MgPT09IGZhbHNlOwogIHRoaXMuZGVjb2RlU3RyaW5ncyA9ICFub0RlY29kZTsKCiAgLy8gQ3J5cHRvIGlzIGtpbmQgb2Ygb2xkIGFuZCBjcnVzdHkuICBIaXN0b3JpY2FsbHksIGl0cyBkZWZhdWx0IHN0cmluZwogIC8vIGVuY29kaW5nIGlzICdiaW5hcnknIHNvIHdlIGhhdmUgdG8gbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZS4KICAvLyBFdmVyeXRoaW5nIGVsc2UgaW4gdGhlIHVuaXZlcnNlIHVzZXMgJ3V0ZjgnLCB0aG91Z2guCiAgdGhpcy5kZWZhdWx0RW5jb2RpbmcgPSBvcHRpb25zLmRlZmF1bHRFbmNvZGluZyB8fCAndXRmOCc7CgogIC8vIG5vdCBhbiBhY3R1YWwgYnVmZmVyIHdlIGtlZXAgdHJhY2sgb2YsIGJ1dCBhIG1lYXN1cmVtZW50CiAgLy8gb2YgaG93IG11Y2ggd2UncmUgd2FpdGluZyB0byBnZXQgcHVzaGVkIHRvIHNvbWUgdW5kZXJseWluZwogIC8vIHNvY2tldCBvciBmaWxlLgogIHRoaXMubGVuZ3RoID0gMDsKCiAgLy8gYSBmbGFnIHRvIHNlZSB3aGVuIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgYSB3cml0ZS4KICB0aGlzLndyaXRpbmcgPSBmYWxzZTsKCiAgLy8gd2hlbiB0cnVlIGFsbCB3cml0ZXMgd2lsbCBiZSBidWZmZXJlZCB1bnRpbCAudW5jb3JrKCkgY2FsbAogIHRoaXMuY29ya2VkID0gMDsKCiAgLy8gYSBmbGFnIHRvIGJlIGFibGUgdG8gdGVsbCBpZiB0aGUgb253cml0ZSBjYiBpcyBjYWxsZWQgaW1tZWRpYXRlbHksCiAgLy8gb3Igb24gYSBsYXRlciB0aWNrLiAgV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBhdCBmaXJzdCwgYmVjYXVzZSBhbnkKICAvLyBhY3Rpb25zIHRoYXQgc2hvdWxkbid0IGhhcHBlbiB1bnRpbCAibGF0ZXIiIHNob3VsZCBnZW5lcmFsbHkgYWxzbwogIC8vIG5vdCBoYXBwZW4gYmVmb3JlIHRoZSBmaXJzdCB3cml0ZSBjYWxsLgogIHRoaXMuc3luYyA9IHRydWU7CgogIC8vIGEgZmxhZyB0byBrbm93IGlmIHdlJ3JlIHByb2Nlc3NpbmcgcHJldmlvdXNseSBidWZmZXJlZCBpdGVtcywgd2hpY2gKICAvLyBtYXkgY2FsbCB0aGUgX3dyaXRlKCkgY2FsbGJhY2sgaW4gdGhlIHNhbWUgdGljaywgc28gdGhhdCB3ZSBkb24ndAogIC8vIGVuZCB1cCBpbiBhbiBvdmVybGFwcGVkIG9ud3JpdGUgc2l0dWF0aW9uLgogIHRoaXMuYnVmZmVyUHJvY2Vzc2luZyA9IGZhbHNlOwoKICAvLyB0aGUgY2FsbGJhY2sgdGhhdCdzIHBhc3NlZCB0byBfd3JpdGUoY2h1bmssY2IpCiAgdGhpcy5vbndyaXRlID0gZnVuY3Rpb24gKGVyKSB7CiAgICBvbndyaXRlKHN0cmVhbSwgZXIpOwogIH07CgogIC8vIHRoZSBjYWxsYmFjayB0aGF0IHRoZSB1c2VyIHN1cHBsaWVzIHRvIHdyaXRlKGNodW5rLGVuY29kaW5nLGNiKQogIHRoaXMud3JpdGVjYiA9IG51bGw7CgogIC8vIHRoZSBhbW91bnQgdGhhdCBpcyBiZWluZyB3cml0dGVuIHdoZW4gX3dyaXRlIGlzIGNhbGxlZC4KICB0aGlzLndyaXRlbGVuID0gMDsKCiAgdGhpcy5idWZmZXJlZFJlcXVlc3QgPSBudWxsOwogIHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7CgogIC8vIG51bWJlciBvZiBwZW5kaW5nIHVzZXItc3VwcGxpZWQgd3JpdGUgY2FsbGJhY2tzCiAgLy8gdGhpcyBtdXN0IGJlIDAgYmVmb3JlICdmaW5pc2gnIGNhbiBiZSBlbWl0dGVkCiAgdGhpcy5wZW5kaW5nY2IgPSAwOwoKICAvLyBlbWl0IHByZWZpbmlzaCBpZiB0aGUgb25seSB0aGluZyB3ZSdyZSB3YWl0aW5nIGZvciBpcyBfd3JpdGUgY2JzCiAgLy8gVGhpcyBpcyByZWxldmFudCBmb3Igc3luY2hyb25vdXMgVHJhbnNmb3JtIHN0cmVhbXMKICB0aGlzLnByZWZpbmlzaGVkID0gZmFsc2U7CgogIC8vIFRydWUgaWYgdGhlIGVycm9yIHdhcyBhbHJlYWR5IGVtaXR0ZWQgYW5kIHNob3VsZCBub3QgYmUgdGhyb3duIGFnYWluCiAgdGhpcy5lcnJvckVtaXR0ZWQgPSBmYWxzZTsKCiAgLy8gY291bnQgYnVmZmVyZWQgcmVxdWVzdHMKICB0aGlzLmJ1ZmZlcmVkUmVxdWVzdENvdW50ID0gMDsKCiAgLy8gYWxsb2NhdGUgdGhlIGZpcnN0IENvcmtlZFJlcXVlc3QsIHRoZXJlIGlzIGFsd2F5cwogIC8vIG9uZSBhbGxvY2F0ZWQgYW5kIGZyZWUgdG8gdXNlLCBhbmQgd2UgbWFpbnRhaW4gYXQgbW9zdCB0d28KICB0aGlzLmNvcmtlZFJlcXVlc3RzRnJlZSA9IG5ldyBDb3JrZWRSZXF1ZXN0KHRoaXMpOwp9CgpXcml0YWJsZVN0YXRlLnByb3RvdHlwZS5nZXRCdWZmZXIgPSBmdW5jdGlvbiBnZXRCdWZmZXIoKSB7CiAgdmFyIGN1cnJlbnQgPSB0aGlzLmJ1ZmZlcmVkUmVxdWVzdDsKICB2YXIgb3V0ID0gW107CiAgd2hpbGUgKGN1cnJlbnQpIHsKICAgIG91dC5wdXNoKGN1cnJlbnQpOwogICAgY3VycmVudCA9IGN1cnJlbnQubmV4dDsKICB9CiAgcmV0dXJuIG91dDsKfTsKCihmdW5jdGlvbiAoKSB7CiAgdHJ5IHsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZVN0YXRlLnByb3RvdHlwZSwgJ2J1ZmZlcicsIHsKICAgICAgZ2V0OiBpbnRlcm5hbFV0aWwuZGVwcmVjYXRlKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXRCdWZmZXIoKTsKICAgICAgfSwgJ193cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyICcgKyAnaW5zdGVhZC4nLCAnREVQMDAwMycpCiAgICB9KTsKICB9IGNhdGNoIChfKSB7fQp9KSgpOwoKLy8gVGVzdCBfd3JpdGFibGVTdGF0ZSBmb3IgaW5oZXJpdGFuY2UgdG8gYWNjb3VudCBmb3IgRHVwbGV4IHN0cmVhbXMsCi8vIHdob3NlIHByb3RvdHlwZSBjaGFpbiBvbmx5IHBvaW50cyB0byBSZWFkYWJsZS4KdmFyIHJlYWxIYXNJbnN0YW5jZTsKaWYgKHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmhhc0luc3RhbmNlICYmIHR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSA9PT0gJ2Z1bmN0aW9uJykgewogIHJlYWxIYXNJbnN0YW5jZSA9IEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdOwogIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXcml0YWJsZSwgU3ltYm9sLmhhc0luc3RhbmNlLCB7CiAgICB2YWx1ZTogZnVuY3Rpb24gKG9iamVjdCkgewogICAgICBpZiAocmVhbEhhc0luc3RhbmNlLmNhbGwodGhpcywgb2JqZWN0KSkgcmV0dXJuIHRydWU7CiAgICAgIGlmICh0aGlzICE9PSBXcml0YWJsZSkgcmV0dXJuIGZhbHNlOwoKICAgICAgcmV0dXJuIG9iamVjdCAmJiBvYmplY3QuX3dyaXRhYmxlU3RhdGUgaW5zdGFuY2VvZiBXcml0YWJsZVN0YXRlOwogICAgfQogIH0pOwp9IGVsc2UgewogIHJlYWxIYXNJbnN0YW5jZSA9IGZ1bmN0aW9uIChvYmplY3QpIHsKICAgIHJldHVybiBvYmplY3QgaW5zdGFuY2VvZiB0aGlzOwogIH07Cn0KCmZ1bmN0aW9uIFdyaXRhYmxlKG9wdGlvbnMpIHsKICBEdXBsZXggPSBEdXBsZXggfHwgX193ZWJwYWNrX3JlcXVpcmVfXygxNik7CgogIC8vIFdyaXRhYmxlIGN0b3IgaXMgYXBwbGllZCB0byBEdXBsZXhlcywgdG9vLgogIC8vIGByZWFsSGFzSW5zdGFuY2VgIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHVzaW5nIHBsYWluIGBpbnN0YW5jZW9mYAogIC8vIHdvdWxkIHJldHVybiBmYWxzZSwgYXMgbm8gYF93cml0YWJsZVN0YXRlYCBwcm9wZXJ0eSBpcyBhdHRhY2hlZC4KCiAgLy8gVHJ5aW5nIHRvIHVzZSB0aGUgY3VzdG9tIGBpbnN0YW5jZW9mYCBmb3IgV3JpdGFibGUgaGVyZSB3aWxsIGFsc28gYnJlYWsgdGhlCiAgLy8gTm9kZS5qcyBMYXp5VHJhbnNmb3JtIGltcGxlbWVudGF0aW9uLCB3aGljaCBoYXMgYSBub24tdHJpdmlhbCBnZXR0ZXIgZm9yCiAgLy8gYF93cml0YWJsZVN0YXRlYCB0aGF0IHdvdWxkIGxlYWQgdG8gaW5maW5pdGUgcmVjdXJzaW9uLgogIGlmICghcmVhbEhhc0luc3RhbmNlLmNhbGwoV3JpdGFibGUsIHRoaXMpICYmICEodGhpcyBpbnN0YW5jZW9mIER1cGxleCkpIHsKICAgIHJldHVybiBuZXcgV3JpdGFibGUob3B0aW9ucyk7CiAgfQoKICB0aGlzLl93cml0YWJsZVN0YXRlID0gbmV3IFdyaXRhYmxlU3RhdGUob3B0aW9ucywgdGhpcyk7CgogIC8vIGxlZ2FjeS4KICB0aGlzLndyaXRhYmxlID0gdHJ1ZTsKCiAgaWYgKG9wdGlvbnMpIHsKICAgIGlmICh0eXBlb2Ygb3B0aW9ucy53cml0ZSA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fd3JpdGUgPSBvcHRpb25zLndyaXRlOwoKICAgIGlmICh0eXBlb2Ygb3B0aW9ucy53cml0ZXYgPT09ICdmdW5jdGlvbicpIHRoaXMuX3dyaXRldiA9IG9wdGlvbnMud3JpdGV2OwoKICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5kZXN0cm95ID09PSAnZnVuY3Rpb24nKSB0aGlzLl9kZXN0cm95ID0gb3B0aW9ucy5kZXN0cm95OwoKICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5maW5hbCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5fZmluYWwgPSBvcHRpb25zLmZpbmFsOwogIH0KCiAgU3RyZWFtLmNhbGwodGhpcyk7Cn0KCi8vIE90aGVyd2lzZSBwZW9wbGUgY2FuIHBpcGUgV3JpdGFibGUgc3RyZWFtcywgd2hpY2ggaXMganVzdCB3cm9uZy4KV3JpdGFibGUucHJvdG90eXBlLnBpcGUgPSBmdW5jdGlvbiAoKSB7CiAgdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcignQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZScpKTsKfTsKCmZ1bmN0aW9uIHdyaXRlQWZ0ZXJFbmQoc3RyZWFtLCBjYikgewogIHZhciBlciA9IG5ldyBFcnJvcignd3JpdGUgYWZ0ZXIgZW5kJyk7CiAgLy8gVE9ETzogZGVmZXIgZXJyb3IgZXZlbnRzIGNvbnNpc3RlbnRseSBldmVyeXdoZXJlLCBub3QganVzdCB0aGUgY2IKICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7CiAgcHJvY2Vzc05leHRUaWNrKGNiLCBlcik7Cn0KCi8vIENoZWNrcyB0aGF0IGEgdXNlci1zdXBwbGllZCBjaHVuayBpcyB2YWxpZCwgZXNwZWNpYWxseSBmb3IgdGhlIHBhcnRpY3VsYXIKLy8gbW9kZSB0aGUgc3RyZWFtIGlzIGluLiBDdXJyZW50bHkgdGhpcyBtZWFucyB0aGF0IGBudWxsYCBpcyBuZXZlciBhY2NlcHRlZAovLyBhbmQgdW5kZWZpbmVkL25vbi1zdHJpbmcgdmFsdWVzIGFyZSBvbmx5IGFsbG93ZWQgaW4gb2JqZWN0IG1vZGUuCmZ1bmN0aW9uIHZhbGlkQ2h1bmsoc3RyZWFtLCBzdGF0ZSwgY2h1bmssIGNiKSB7CiAgdmFyIHZhbGlkID0gdHJ1ZTsKICB2YXIgZXIgPSBmYWxzZTsKCiAgaWYgKGNodW5rID09PSBudWxsKSB7CiAgICBlciA9IG5ldyBUeXBlRXJyb3IoJ01heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtJyk7CiAgfSBlbHNlIGlmICh0eXBlb2YgY2h1bmsgIT09ICdzdHJpbmcnICYmIGNodW5rICE9PSB1bmRlZmluZWQgJiYgIXN0YXRlLm9iamVjdE1vZGUpIHsKICAgIGVyID0gbmV3IFR5cGVFcnJvcignSW52YWxpZCBub24tc3RyaW5nL2J1ZmZlciBjaHVuaycpOwogIH0KICBpZiAoZXIpIHsKICAgIHN0cmVhbS5lbWl0KCdlcnJvcicsIGVyKTsKICAgIHByb2Nlc3NOZXh0VGljayhjYiwgZXIpOwogICAgdmFsaWQgPSBmYWxzZTsKICB9CiAgcmV0dXJuIHZhbGlkOwp9CgpXcml0YWJsZS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikgewogIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7CiAgdmFyIHJldCA9IGZhbHNlOwogIHZhciBpc0J1ZiA9ICFzdGF0ZS5vYmplY3RNb2RlICYmIF9pc1VpbnQ4QXJyYXkoY2h1bmspOwoKICBpZiAoaXNCdWYgJiYgIUJ1ZmZlci5pc0J1ZmZlcihjaHVuaykpIHsKICAgIGNodW5rID0gX3VpbnQ4QXJyYXlUb0J1ZmZlcihjaHVuayk7CiAgfQoKICBpZiAodHlwZW9mIGVuY29kaW5nID09PSAnZnVuY3Rpb24nKSB7CiAgICBjYiA9IGVuY29kaW5nOwogICAgZW5jb2RpbmcgPSBudWxsOwogIH0KCiAgaWYgKGlzQnVmKSBlbmNvZGluZyA9ICdidWZmZXInO2Vsc2UgaWYgKCFlbmNvZGluZykgZW5jb2RpbmcgPSBzdGF0ZS5kZWZhdWx0RW5jb2Rpbmc7CgogIGlmICh0eXBlb2YgY2IgIT09ICdmdW5jdGlvbicpIGNiID0gbm9wOwoKICBpZiAoc3RhdGUuZW5kZWQpIHdyaXRlQWZ0ZXJFbmQodGhpcywgY2IpO2Vsc2UgaWYgKGlzQnVmIHx8IHZhbGlkQ2h1bmsodGhpcywgc3RhdGUsIGNodW5rLCBjYikpIHsKICAgIHN0YXRlLnBlbmRpbmdjYisrOwogICAgcmV0ID0gd3JpdGVPckJ1ZmZlcih0aGlzLCBzdGF0ZSwgaXNCdWYsIGNodW5rLCBlbmNvZGluZywgY2IpOwogIH0KCiAgcmV0dXJuIHJldDsKfTsKCldyaXRhYmxlLnByb3RvdHlwZS5jb3JrID0gZnVuY3Rpb24gKCkgewogIHZhciBzdGF0ZSA9IHRoaXMuX3dyaXRhYmxlU3RhdGU7CgogIHN0YXRlLmNvcmtlZCsrOwp9OwoKV3JpdGFibGUucHJvdG90eXBlLnVuY29yayA9IGZ1bmN0aW9uICgpIHsKICB2YXIgc3RhdGUgPSB0aGlzLl93cml0YWJsZVN0YXRlOwoKICBpZiAoc3RhdGUuY29ya2VkKSB7CiAgICBzdGF0ZS5jb3JrZWQtLTsKCiAgICBpZiAoIXN0YXRlLndyaXRpbmcgJiYgIXN0YXRlLmNvcmtlZCAmJiAhc3RhdGUuZmluaXNoZWQgJiYgIXN0YXRlLmJ1ZmZlclByb2Nlc3NpbmcgJiYgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0KSBjbGVhckJ1ZmZlcih0aGlzLCBzdGF0ZSk7CiAgfQp9OwoKV3JpdGFibGUucHJvdG90eXBlLnNldERlZmF1bHRFbmNvZGluZyA9IGZ1bmN0aW9uIHNldERlZmF1bHRFbmNvZGluZyhlbmNvZGluZykgewogIC8vIG5vZGU6OlBhcnNlRW5jb2RpbmcoKSByZXF1aXJlcyBsb3dlciBjYXNlLgogIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdzdHJpbmcnKSBlbmNvZGluZyA9IGVuY29kaW5nLnRvTG93ZXJDYXNlKCk7CiAgaWYgKCEoWydoZXgnLCAndXRmOCcsICd1dGYtOCcsICdhc2NpaScsICdiaW5hcnknLCAnYmFzZTY0JywgJ3VjczInLCAndWNzLTInLCAndXRmMTZsZScsICd1dGYtMTZsZScsICdyYXcnXS5pbmRleE9mKChlbmNvZGluZyArICcnKS50b0xvd2VyQ2FzZSgpKSA+IC0xKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBlbmNvZGluZzogJyArIGVuY29kaW5nKTsKICB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZyA9IGVuY29kaW5nOwogIHJldHVybiB0aGlzOwp9OwoKZnVuY3Rpb24gZGVjb2RlQ2h1bmsoc3RhdGUsIGNodW5rLCBlbmNvZGluZykgewogIGlmICghc3RhdGUub2JqZWN0TW9kZSAmJiBzdGF0ZS5kZWNvZGVTdHJpbmdzICE9PSBmYWxzZSAmJiB0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7CiAgICBjaHVuayA9IEJ1ZmZlci5mcm9tKGNodW5rLCBlbmNvZGluZyk7CiAgfQogIHJldHVybiBjaHVuazsKfQoKLy8gaWYgd2UncmUgYWxyZWFkeSB3cml0aW5nIHNvbWV0aGluZywgdGhlbiBqdXN0IHB1dCB0aGlzCi8vIGluIHRoZSBxdWV1ZSwgYW5kIHdhaXQgb3VyIHR1cm4uICBPdGhlcndpc2UsIGNhbGwgX3dyaXRlCi8vIElmIHdlIHJldHVybiBmYWxzZSwgdGhlbiB3ZSBuZWVkIGEgZHJhaW4gZXZlbnQsIHNvIHNldCB0aGF0IGZsYWcuCmZ1bmN0aW9uIHdyaXRlT3JCdWZmZXIoc3RyZWFtLCBzdGF0ZSwgaXNCdWYsIGNodW5rLCBlbmNvZGluZywgY2IpIHsKICBpZiAoIWlzQnVmKSB7CiAgICB2YXIgbmV3Q2h1bmsgPSBkZWNvZGVDaHVuayhzdGF0ZSwgY2h1bmssIGVuY29kaW5nKTsKICAgIGlmIChjaHVuayAhPT0gbmV3Q2h1bmspIHsKICAgICAgaXNCdWYgPSB0cnVlOwogICAgICBlbmNvZGluZyA9ICdidWZmZXInOwogICAgICBjaHVuayA9IG5ld0NodW5rOwogICAgfQogIH0KICB2YXIgbGVuID0gc3RhdGUub2JqZWN0TW9kZSA/IDEgOiBjaHVuay5sZW5ndGg7CgogIHN0YXRlLmxlbmd0aCArPSBsZW47CgogIHZhciByZXQgPSBzdGF0ZS5sZW5ndGggPCBzdGF0ZS5oaWdoV2F0ZXJNYXJrOwogIC8vIHdlIG11c3QgZW5zdXJlIHRoYXQgcHJldmlvdXMgbmVlZERyYWluIHdpbGwgbm90IGJlIHJlc2V0IHRvIGZhbHNlLgogIGlmICghcmV0KSBzdGF0ZS5uZWVkRHJhaW4gPSB0cnVlOwoKICBpZiAoc3RhdGUud3JpdGluZyB8fCBzdGF0ZS5jb3JrZWQpIHsKICAgIHZhciBsYXN0ID0gc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdDsKICAgIHN0YXRlLmxhc3RCdWZmZXJlZFJlcXVlc3QgPSB7CiAgICAgIGNodW5rOiBjaHVuaywKICAgICAgZW5jb2Rpbmc6IGVuY29kaW5nLAogICAgICBpc0J1ZjogaXNCdWYsCiAgICAgIGNhbGxiYWNrOiBjYiwKICAgICAgbmV4dDogbnVsbAogICAgfTsKICAgIGlmIChsYXN0KSB7CiAgICAgIGxhc3QubmV4dCA9IHN0YXRlLmxhc3RCdWZmZXJlZFJlcXVlc3Q7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5idWZmZXJlZFJlcXVlc3QgPSBzdGF0ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0OwogICAgfQogICAgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQgKz0gMTsKICB9IGVsc2UgewogICAgZG9Xcml0ZShzdHJlYW0sIHN0YXRlLCBmYWxzZSwgbGVuLCBjaHVuaywgZW5jb2RpbmcsIGNiKTsKICB9CgogIHJldHVybiByZXQ7Cn0KCmZ1bmN0aW9uIGRvV3JpdGUoc3RyZWFtLCBzdGF0ZSwgd3JpdGV2LCBsZW4sIGNodW5rLCBlbmNvZGluZywgY2IpIHsKICBzdGF0ZS53cml0ZWxlbiA9IGxlbjsKICBzdGF0ZS53cml0ZWNiID0gY2I7CiAgc3RhdGUud3JpdGluZyA9IHRydWU7CiAgc3RhdGUuc3luYyA9IHRydWU7CiAgaWYgKHdyaXRldikgc3RyZWFtLl93cml0ZXYoY2h1bmssIHN0YXRlLm9ud3JpdGUpO2Vsc2Ugc3RyZWFtLl93cml0ZShjaHVuaywgZW5jb2RpbmcsIHN0YXRlLm9ud3JpdGUpOwogIHN0YXRlLnN5bmMgPSBmYWxzZTsKfQoKZnVuY3Rpb24gb253cml0ZUVycm9yKHN0cmVhbSwgc3RhdGUsIHN5bmMsIGVyLCBjYikgewogIC0tc3RhdGUucGVuZGluZ2NiOwoKICBpZiAoc3luYykgewogICAgLy8gZGVmZXIgdGhlIGNhbGxiYWNrIGlmIHdlIGFyZSBiZWluZyBjYWxsZWQgc3luY2hyb25vdXNseQogICAgLy8gdG8gYXZvaWQgcGlsaW5nIHVwIHRoaW5ncyBvbiB0aGUgc3RhY2sKICAgIHByb2Nlc3NOZXh0VGljayhjYiwgZXIpOwogICAgLy8gdGhpcyBjYW4gZW1pdCBmaW5pc2gsIGFuZCBpdCB3aWxsIGFsd2F5cyBoYXBwZW4KICAgIC8vIGFmdGVyIGVycm9yCiAgICBwcm9jZXNzTmV4dFRpY2soZmluaXNoTWF5YmUsIHN0cmVhbSwgc3RhdGUpOwogICAgc3RyZWFtLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZCA9IHRydWU7CiAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7CiAgfSBlbHNlIHsKICAgIC8vIHRoZSBjYWxsZXIgZXhwZWN0IHRoaXMgdG8gaGFwcGVuIGJlZm9yZSBpZgogICAgLy8gaXQgaXMgYXN5bmMKICAgIGNiKGVyKTsKICAgIHN0cmVhbS5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQgPSB0cnVlOwogICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXIpOwogICAgLy8gdGhpcyBjYW4gZW1pdCBmaW5pc2gsIGJ1dCBmaW5pc2ggbXVzdAogICAgLy8gYWx3YXlzIGZvbGxvdyBlcnJvcgogICAgZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSk7CiAgfQp9CgpmdW5jdGlvbiBvbndyaXRlU3RhdGVVcGRhdGUoc3RhdGUpIHsKICBzdGF0ZS53cml0aW5nID0gZmFsc2U7CiAgc3RhdGUud3JpdGVjYiA9IG51bGw7CiAgc3RhdGUubGVuZ3RoIC09IHN0YXRlLndyaXRlbGVuOwogIHN0YXRlLndyaXRlbGVuID0gMDsKfQoKZnVuY3Rpb24gb253cml0ZShzdHJlYW0sIGVyKSB7CiAgdmFyIHN0YXRlID0gc3RyZWFtLl93cml0YWJsZVN0YXRlOwogIHZhciBzeW5jID0gc3RhdGUuc3luYzsKICB2YXIgY2IgPSBzdGF0ZS53cml0ZWNiOwoKICBvbndyaXRlU3RhdGVVcGRhdGUoc3RhdGUpOwoKICBpZiAoZXIpIG9ud3JpdGVFcnJvcihzdHJlYW0sIHN0YXRlLCBzeW5jLCBlciwgY2IpO2Vsc2UgewogICAgLy8gQ2hlY2sgaWYgd2UncmUgYWN0dWFsbHkgcmVhZHkgdG8gZmluaXNoLCBidXQgZG9uJ3QgZW1pdCB5ZXQKICAgIHZhciBmaW5pc2hlZCA9IG5lZWRGaW5pc2goc3RhdGUpOwoKICAgIGlmICghZmluaXNoZWQgJiYgIXN0YXRlLmNvcmtlZCAmJiAhc3RhdGUuYnVmZmVyUHJvY2Vzc2luZyAmJiBzdGF0ZS5idWZmZXJlZFJlcXVlc3QpIHsKICAgICAgY2xlYXJCdWZmZXIoc3RyZWFtLCBzdGF0ZSk7CiAgICB9CgogICAgaWYgKHN5bmMpIHsKICAgICAgLyo8cmVwbGFjZW1lbnQ+Ki8KICAgICAgYXN5bmNXcml0ZShhZnRlcldyaXRlLCBzdHJlYW0sIHN0YXRlLCBmaW5pc2hlZCwgY2IpOwogICAgICAvKjwvcmVwbGFjZW1lbnQ+Ki8KICAgIH0gZWxzZSB7CiAgICAgIGFmdGVyV3JpdGUoc3RyZWFtLCBzdGF0ZSwgZmluaXNoZWQsIGNiKTsKICAgIH0KICB9Cn0KCmZ1bmN0aW9uIGFmdGVyV3JpdGUoc3RyZWFtLCBzdGF0ZSwgZmluaXNoZWQsIGNiKSB7CiAgaWYgKCFmaW5pc2hlZCkgb253cml0ZURyYWluKHN0cmVhbSwgc3RhdGUpOwogIHN0YXRlLnBlbmRpbmdjYi0tOwogIGNiKCk7CiAgZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSk7Cn0KCi8vIE11c3QgZm9yY2UgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIG9uIG5leHRUaWNrLCBzbyB0aGF0IHdlIGRvbid0Ci8vIGVtaXQgJ2RyYWluJyBiZWZvcmUgdGhlIHdyaXRlKCkgY29uc3VtZXIgZ2V0cyB0aGUgJ2ZhbHNlJyByZXR1cm4KLy8gdmFsdWUsIGFuZCBoYXMgYSBjaGFuY2UgdG8gYXR0YWNoIGEgJ2RyYWluJyBsaXN0ZW5lci4KZnVuY3Rpb24gb253cml0ZURyYWluKHN0cmVhbSwgc3RhdGUpIHsKICBpZiAoc3RhdGUubGVuZ3RoID09PSAwICYmIHN0YXRlLm5lZWREcmFpbikgewogICAgc3RhdGUubmVlZERyYWluID0gZmFsc2U7CiAgICBzdHJlYW0uZW1pdCgnZHJhaW4nKTsKICB9Cn0KCi8vIGlmIHRoZXJlJ3Mgc29tZXRoaW5nIGluIHRoZSBidWZmZXIgd2FpdGluZywgdGhlbiBwcm9jZXNzIGl0CmZ1bmN0aW9uIGNsZWFyQnVmZmVyKHN0cmVhbSwgc3RhdGUpIHsKICBzdGF0ZS5idWZmZXJQcm9jZXNzaW5nID0gdHJ1ZTsKICB2YXIgZW50cnkgPSBzdGF0ZS5idWZmZXJlZFJlcXVlc3Q7CgogIGlmIChzdHJlYW0uX3dyaXRldiAmJiBlbnRyeSAmJiBlbnRyeS5uZXh0KSB7CiAgICAvLyBGYXN0IGNhc2UsIHdyaXRlIGV2ZXJ5dGhpbmcgdXNpbmcgX3dyaXRldigpCiAgICB2YXIgbCA9IHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdENvdW50OwogICAgdmFyIGJ1ZmZlciA9IG5ldyBBcnJheShsKTsKICAgIHZhciBob2xkZXIgPSBzdGF0ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7CiAgICBob2xkZXIuZW50cnkgPSBlbnRyeTsKCiAgICB2YXIgY291bnQgPSAwOwogICAgdmFyIGFsbEJ1ZmZlcnMgPSB0cnVlOwogICAgd2hpbGUgKGVudHJ5KSB7CiAgICAgIGJ1ZmZlcltjb3VudF0gPSBlbnRyeTsKICAgICAgaWYgKCFlbnRyeS5pc0J1ZikgYWxsQnVmZmVycyA9IGZhbHNlOwogICAgICBlbnRyeSA9IGVudHJ5Lm5leHQ7CiAgICAgIGNvdW50ICs9IDE7CiAgICB9CiAgICBidWZmZXIuYWxsQnVmZmVycyA9IGFsbEJ1ZmZlcnM7CgogICAgZG9Xcml0ZShzdHJlYW0sIHN0YXRlLCB0cnVlLCBzdGF0ZS5sZW5ndGgsIGJ1ZmZlciwgJycsIGhvbGRlci5maW5pc2gpOwoKICAgIC8vIGRvV3JpdGUgaXMgYWxtb3N0IGFsd2F5cyBhc3luYywgZGVmZXIgdGhlc2UgdG8gc2F2ZSBhIGJpdCBvZiB0aW1lCiAgICAvLyBhcyB0aGUgaG90IHBhdGggZW5kcyB3aXRoIGRvV3JpdGUKICAgIHN0YXRlLnBlbmRpbmdjYisrOwogICAgc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7CiAgICBpZiAoaG9sZGVyLm5leHQpIHsKICAgICAgc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlID0gaG9sZGVyLm5leHQ7CiAgICAgIGhvbGRlci5uZXh0ID0gbnVsbDsKICAgIH0gZWxzZSB7CiAgICAgIHN0YXRlLmNvcmtlZFJlcXVlc3RzRnJlZSA9IG5ldyBDb3JrZWRSZXF1ZXN0KHN0YXRlKTsKICAgIH0KICAgIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdENvdW50ID0gMDsKICB9IGVsc2UgewogICAgLy8gU2xvdyBjYXNlLCB3cml0ZSBjaHVua3Mgb25lLWJ5LW9uZQogICAgd2hpbGUgKGVudHJ5KSB7CiAgICAgIHZhciBjaHVuayA9IGVudHJ5LmNodW5rOwogICAgICB2YXIgZW5jb2RpbmcgPSBlbnRyeS5lbmNvZGluZzsKICAgICAgdmFyIGNiID0gZW50cnkuY2FsbGJhY2s7CiAgICAgIHZhciBsZW4gPSBzdGF0ZS5vYmplY3RNb2RlID8gMSA6IGNodW5rLmxlbmd0aDsKCiAgICAgIGRvV3JpdGUoc3RyZWFtLCBzdGF0ZSwgZmFsc2UsIGxlbiwgY2h1bmssIGVuY29kaW5nLCBjYik7CiAgICAgIGVudHJ5ID0gZW50cnkubmV4dDsKICAgICAgc3RhdGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQtLTsKICAgICAgLy8gaWYgd2UgZGlkbid0IGNhbGwgdGhlIG9ud3JpdGUgaW1tZWRpYXRlbHksIHRoZW4KICAgICAgLy8gaXQgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIHdhaXQgdW50aWwgaXQgZG9lcy4KICAgICAgLy8gYWxzbywgdGhhdCBtZWFucyB0aGF0IHRoZSBjaHVuayBhbmQgY2IgYXJlIGN1cnJlbnRseQogICAgICAvLyBiZWluZyBwcm9jZXNzZWQsIHNvIG1vdmUgdGhlIGJ1ZmZlciBjb3VudGVyIHBhc3QgdGhlbS4KICAgICAgaWYgKHN0YXRlLndyaXRpbmcpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQoKICAgIGlmIChlbnRyeSA9PT0gbnVsbCkgc3RhdGUubGFzdEJ1ZmZlcmVkUmVxdWVzdCA9IG51bGw7CiAgfQoKICBzdGF0ZS5idWZmZXJlZFJlcXVlc3QgPSBlbnRyeTsKICBzdGF0ZS5idWZmZXJQcm9jZXNzaW5nID0gZmFsc2U7Cn0KCldyaXRhYmxlLnByb3RvdHlwZS5fd3JpdGUgPSBmdW5jdGlvbiAoY2h1bmssIGVuY29kaW5nLCBjYikgewogIGNiKG5ldyBFcnJvcignX3dyaXRlKCkgaXMgbm90IGltcGxlbWVudGVkJykpOwp9OwoKV3JpdGFibGUucHJvdG90eXBlLl93cml0ZXYgPSBudWxsOwoKV3JpdGFibGUucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7CiAgdmFyIHN0YXRlID0gdGhpcy5fd3JpdGFibGVTdGF0ZTsKCiAgaWYgKHR5cGVvZiBjaHVuayA9PT0gJ2Z1bmN0aW9uJykgewogICAgY2IgPSBjaHVuazsKICAgIGNodW5rID0gbnVsbDsKICAgIGVuY29kaW5nID0gbnVsbDsKICB9IGVsc2UgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ2Z1bmN0aW9uJykgewogICAgY2IgPSBlbmNvZGluZzsKICAgIGVuY29kaW5nID0gbnVsbDsKICB9CgogIGlmIChjaHVuayAhPT0gbnVsbCAmJiBjaHVuayAhPT0gdW5kZWZpbmVkKSB0aGlzLndyaXRlKGNodW5rLCBlbmNvZGluZyk7CgogIC8vIC5lbmQoKSBmdWxseSB1bmNvcmtzCiAgaWYgKHN0YXRlLmNvcmtlZCkgewogICAgc3RhdGUuY29ya2VkID0gMTsKICAgIHRoaXMudW5jb3JrKCk7CiAgfQoKICAvLyBpZ25vcmUgdW5uZWNlc3NhcnkgZW5kKCkgY2FsbHMuCiAgaWYgKCFzdGF0ZS5lbmRpbmcgJiYgIXN0YXRlLmZpbmlzaGVkKSBlbmRXcml0YWJsZSh0aGlzLCBzdGF0ZSwgY2IpOwp9OwoKZnVuY3Rpb24gbmVlZEZpbmlzaChzdGF0ZSkgewogIHJldHVybiBzdGF0ZS5lbmRpbmcgJiYgc3RhdGUubGVuZ3RoID09PSAwICYmIHN0YXRlLmJ1ZmZlcmVkUmVxdWVzdCA9PT0gbnVsbCAmJiAhc3RhdGUuZmluaXNoZWQgJiYgIXN0YXRlLndyaXRpbmc7Cn0KZnVuY3Rpb24gY2FsbEZpbmFsKHN0cmVhbSwgc3RhdGUpIHsKICBzdHJlYW0uX2ZpbmFsKGZ1bmN0aW9uIChlcnIpIHsKICAgIHN0YXRlLnBlbmRpbmdjYi0tOwogICAgaWYgKGVycikgewogICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcnIpOwogICAgfQogICAgc3RhdGUucHJlZmluaXNoZWQgPSB0cnVlOwogICAgc3RyZWFtLmVtaXQoJ3ByZWZpbmlzaCcpOwogICAgZmluaXNoTWF5YmUoc3RyZWFtLCBzdGF0ZSk7CiAgfSk7Cn0KZnVuY3Rpb24gcHJlZmluaXNoKHN0cmVhbSwgc3RhdGUpIHsKICBpZiAoIXN0YXRlLnByZWZpbmlzaGVkICYmICFzdGF0ZS5maW5hbENhbGxlZCkgewogICAgaWYgKHR5cGVvZiBzdHJlYW0uX2ZpbmFsID09PSAnZnVuY3Rpb24nKSB7CiAgICAgIHN0YXRlLnBlbmRpbmdjYisrOwogICAgICBzdGF0ZS5maW5hbENhbGxlZCA9IHRydWU7CiAgICAgIHByb2Nlc3NOZXh0VGljayhjYWxsRmluYWwsIHN0cmVhbSwgc3RhdGUpOwogICAgfSBlbHNlIHsKICAgICAgc3RhdGUucHJlZmluaXNoZWQgPSB0cnVlOwogICAgICBzdHJlYW0uZW1pdCgncHJlZmluaXNoJyk7CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKSB7CiAgdmFyIG5lZWQgPSBuZWVkRmluaXNoKHN0YXRlKTsKICBpZiAobmVlZCkgewogICAgcHJlZmluaXNoKHN0cmVhbSwgc3RhdGUpOwogICAgaWYgKHN0YXRlLnBlbmRpbmdjYiA9PT0gMCkgewogICAgICBzdGF0ZS5maW5pc2hlZCA9IHRydWU7CiAgICAgIHN0cmVhbS5lbWl0KCdmaW5pc2gnKTsKICAgIH0KICB9CiAgcmV0dXJuIG5lZWQ7Cn0KCmZ1bmN0aW9uIGVuZFdyaXRhYmxlKHN0cmVhbSwgc3RhdGUsIGNiKSB7CiAgc3RhdGUuZW5kaW5nID0gdHJ1ZTsKICBmaW5pc2hNYXliZShzdHJlYW0sIHN0YXRlKTsKICBpZiAoY2IpIHsKICAgIGlmIChzdGF0ZS5maW5pc2hlZCkgcHJvY2Vzc05leHRUaWNrKGNiKTtlbHNlIHN0cmVhbS5vbmNlKCdmaW5pc2gnLCBjYik7CiAgfQogIHN0YXRlLmVuZGVkID0gdHJ1ZTsKICBzdHJlYW0ud3JpdGFibGUgPSBmYWxzZTsKfQoKZnVuY3Rpb24gb25Db3JrZWRGaW5pc2goY29ya1JlcSwgc3RhdGUsIGVycikgewogIHZhciBlbnRyeSA9IGNvcmtSZXEuZW50cnk7CiAgY29ya1JlcS5lbnRyeSA9IG51bGw7CiAgd2hpbGUgKGVudHJ5KSB7CiAgICB2YXIgY2IgPSBlbnRyeS5jYWxsYmFjazsKICAgIHN0YXRlLnBlbmRpbmdjYi0tOwogICAgY2IoZXJyKTsKICAgIGVudHJ5ID0gZW50cnkubmV4dDsKICB9CiAgaWYgKHN0YXRlLmNvcmtlZFJlcXVlc3RzRnJlZSkgewogICAgc3RhdGUuY29ya2VkUmVxdWVzdHNGcmVlLm5leHQgPSBjb3JrUmVxOwogIH0gZWxzZSB7CiAgICBzdGF0ZS5jb3JrZWRSZXF1ZXN0c0ZyZWUgPSBjb3JrUmVxOwogIH0KfQoKT2JqZWN0LmRlZmluZVByb3BlcnR5KFdyaXRhYmxlLnByb3RvdHlwZSwgJ2Rlc3Ryb3llZCcsIHsKICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLl93cml0YWJsZVN0YXRlID09PSB1bmRlZmluZWQpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkOwogIH0sCiAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHsKICAgIC8vIHdlIGlnbm9yZSB0aGUgdmFsdWUgaWYgdGhlIHN0cmVhbQogICAgLy8gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldAogICAgaWYgKCF0aGlzLl93cml0YWJsZVN0YXRlKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgdXNlciBpcyBleHBsaWNpdGx5CiAgICAvLyBtYW5hZ2luZyBkZXN0cm95ZWQKICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkID0gdmFsdWU7CiAgfQp9KTsKCldyaXRhYmxlLnByb3RvdHlwZS5kZXN0cm95ID0gZGVzdHJveUltcGwuZGVzdHJveTsKV3JpdGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3kgPSBkZXN0cm95SW1wbC51bmRlc3Ryb3k7CldyaXRhYmxlLnByb3RvdHlwZS5fZGVzdHJveSA9IGZ1bmN0aW9uIChlcnIsIGNiKSB7CiAgdGhpcy5lbmQoKTsKICBjYihlcnIpOwp9OwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxMSksIF9fd2VicGFja19yZXF1aXJlX18oMTQyKS5zZXRJbW1lZGlhdGUsIF9fd2VicGFja19yZXF1aXJlX18oNykpKQoKLyoqKi8gfSksCi8qIDQ3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgp2YXIgQnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMykuQnVmZmVyOwoKdmFyIGlzRW5jb2RpbmcgPSBCdWZmZXIuaXNFbmNvZGluZyB8fCBmdW5jdGlvbiAoZW5jb2RpbmcpIHsKICBlbmNvZGluZyA9ICcnICsgZW5jb2Rpbmc7CiAgc3dpdGNoIChlbmNvZGluZyAmJiBlbmNvZGluZy50b0xvd2VyQ2FzZSgpKSB7CiAgICBjYXNlICdoZXgnOmNhc2UgJ3V0ZjgnOmNhc2UgJ3V0Zi04JzpjYXNlICdhc2NpaSc6Y2FzZSAnYmluYXJ5JzpjYXNlICdiYXNlNjQnOmNhc2UgJ3VjczInOmNhc2UgJ3Vjcy0yJzpjYXNlICd1dGYxNmxlJzpjYXNlICd1dGYtMTZsZSc6Y2FzZSAncmF3JzoKICAgICAgcmV0dXJuIHRydWU7CiAgICBkZWZhdWx0OgogICAgICByZXR1cm4gZmFsc2U7CiAgfQp9OwoKZnVuY3Rpb24gX25vcm1hbGl6ZUVuY29kaW5nKGVuYykgewogIGlmICghZW5jKSByZXR1cm4gJ3V0ZjgnOwogIHZhciByZXRyaWVkOwogIHdoaWxlICh0cnVlKSB7CiAgICBzd2l0Y2ggKGVuYykgewogICAgICBjYXNlICd1dGY4JzoKICAgICAgY2FzZSAndXRmLTgnOgogICAgICAgIHJldHVybiAndXRmOCc7CiAgICAgIGNhc2UgJ3VjczInOgogICAgICBjYXNlICd1Y3MtMic6CiAgICAgIGNhc2UgJ3V0ZjE2bGUnOgogICAgICBjYXNlICd1dGYtMTZsZSc6CiAgICAgICAgcmV0dXJuICd1dGYxNmxlJzsKICAgICAgY2FzZSAnbGF0aW4xJzoKICAgICAgY2FzZSAnYmluYXJ5JzoKICAgICAgICByZXR1cm4gJ2xhdGluMSc7CiAgICAgIGNhc2UgJ2Jhc2U2NCc6CiAgICAgIGNhc2UgJ2FzY2lpJzoKICAgICAgY2FzZSAnaGV4JzoKICAgICAgICByZXR1cm4gZW5jOwogICAgICBkZWZhdWx0OgogICAgICAgIGlmIChyZXRyaWVkKSByZXR1cm47IC8vIHVuZGVmaW5lZAogICAgICAgIGVuYyA9ICgnJyArIGVuYykudG9Mb3dlckNhc2UoKTsKICAgICAgICByZXRyaWVkID0gdHJ1ZTsKICAgIH0KICB9Cn07CgovLyBEbyBub3QgY2FjaGUgYEJ1ZmZlci5pc0VuY29kaW5nYCB3aGVuIGNoZWNraW5nIGVuY29kaW5nIG5hbWVzIGFzIHNvbWUKLy8gbW9kdWxlcyBtb25rZXktcGF0Y2ggaXQgdG8gc3VwcG9ydCBhZGRpdGlvbmFsIGVuY29kaW5ncwpmdW5jdGlvbiBub3JtYWxpemVFbmNvZGluZyhlbmMpIHsKICB2YXIgbmVuYyA9IF9ub3JtYWxpemVFbmNvZGluZyhlbmMpOwogIGlmICh0eXBlb2YgbmVuYyAhPT0gJ3N0cmluZycgJiYgKEJ1ZmZlci5pc0VuY29kaW5nID09PSBpc0VuY29kaW5nIHx8ICFpc0VuY29kaW5nKGVuYykpKSB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZW5jb2Rpbmc6ICcgKyBlbmMpOwogIHJldHVybiBuZW5jIHx8IGVuYzsKfQoKLy8gU3RyaW5nRGVjb2RlciBwcm92aWRlcyBhbiBpbnRlcmZhY2UgZm9yIGVmZmljaWVudGx5IHNwbGl0dGluZyBhIHNlcmllcyBvZgovLyBidWZmZXJzIGludG8gYSBzZXJpZXMgb2YgSlMgc3RyaW5ncyB3aXRob3V0IGJyZWFraW5nIGFwYXJ0IG11bHRpLWJ5dGUKLy8gY2hhcmFjdGVycy4KZXhwb3J0cy5TdHJpbmdEZWNvZGVyID0gU3RyaW5nRGVjb2RlcjsKZnVuY3Rpb24gU3RyaW5nRGVjb2RlcihlbmNvZGluZykgewogIHRoaXMuZW5jb2RpbmcgPSBub3JtYWxpemVFbmNvZGluZyhlbmNvZGluZyk7CiAgdmFyIG5iOwogIHN3aXRjaCAodGhpcy5lbmNvZGluZykgewogICAgY2FzZSAndXRmMTZsZSc6CiAgICAgIHRoaXMudGV4dCA9IHV0ZjE2VGV4dDsKICAgICAgdGhpcy5lbmQgPSB1dGYxNkVuZDsKICAgICAgbmIgPSA0OwogICAgICBicmVhazsKICAgIGNhc2UgJ3V0ZjgnOgogICAgICB0aGlzLmZpbGxMYXN0ID0gdXRmOEZpbGxMYXN0OwogICAgICBuYiA9IDQ7CiAgICAgIGJyZWFrOwogICAgY2FzZSAnYmFzZTY0JzoKICAgICAgdGhpcy50ZXh0ID0gYmFzZTY0VGV4dDsKICAgICAgdGhpcy5lbmQgPSBiYXNlNjRFbmQ7CiAgICAgIG5iID0gMzsKICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICB0aGlzLndyaXRlID0gc2ltcGxlV3JpdGU7CiAgICAgIHRoaXMuZW5kID0gc2ltcGxlRW5kOwogICAgICByZXR1cm47CiAgfQogIHRoaXMubGFzdE5lZWQgPSAwOwogIHRoaXMubGFzdFRvdGFsID0gMDsKICB0aGlzLmxhc3RDaGFyID0gQnVmZmVyLmFsbG9jVW5zYWZlKG5iKTsKfQoKU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoYnVmKSB7CiAgaWYgKGJ1Zi5sZW5ndGggPT09IDApIHJldHVybiAnJzsKICB2YXIgcjsKICB2YXIgaTsKICBpZiAodGhpcy5sYXN0TmVlZCkgewogICAgciA9IHRoaXMuZmlsbExhc3QoYnVmKTsKICAgIGlmIChyID09PSB1bmRlZmluZWQpIHJldHVybiAnJzsKICAgIGkgPSB0aGlzLmxhc3ROZWVkOwogICAgdGhpcy5sYXN0TmVlZCA9IDA7CiAgfSBlbHNlIHsKICAgIGkgPSAwOwogIH0KICBpZiAoaSA8IGJ1Zi5sZW5ndGgpIHJldHVybiByID8gciArIHRoaXMudGV4dChidWYsIGkpIDogdGhpcy50ZXh0KGJ1ZiwgaSk7CiAgcmV0dXJuIHIgfHwgJyc7Cn07CgpTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSB1dGY4RW5kOwoKLy8gUmV0dXJucyBvbmx5IGNvbXBsZXRlIGNoYXJhY3RlcnMgaW4gYSBCdWZmZXIKU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUudGV4dCA9IHV0ZjhUZXh0OwoKLy8gQXR0ZW1wdHMgdG8gY29tcGxldGUgYSBwYXJ0aWFsIG5vbi1VVEYtOCBjaGFyYWN0ZXIgdXNpbmcgYnl0ZXMgZnJvbSBhIEJ1ZmZlcgpTdHJpbmdEZWNvZGVyLnByb3RvdHlwZS5maWxsTGFzdCA9IGZ1bmN0aW9uIChidWYpIHsKICBpZiAodGhpcy5sYXN0TmVlZCA8PSBidWYubGVuZ3RoKSB7CiAgICBidWYuY29weSh0aGlzLmxhc3RDaGFyLCB0aGlzLmxhc3RUb3RhbCAtIHRoaXMubGFzdE5lZWQsIDAsIHRoaXMubGFzdE5lZWQpOwogICAgcmV0dXJuIHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywgMCwgdGhpcy5sYXN0VG90YWwpOwogIH0KICBidWYuY29weSh0aGlzLmxhc3RDaGFyLCB0aGlzLmxhc3RUb3RhbCAtIHRoaXMubGFzdE5lZWQsIDAsIGJ1Zi5sZW5ndGgpOwogIHRoaXMubGFzdE5lZWQgLT0gYnVmLmxlbmd0aDsKfTsKCi8vIENoZWNrcyB0aGUgdHlwZSBvZiBhIFVURi04IGJ5dGUsIHdoZXRoZXIgaXQncyBBU0NJSSwgYSBsZWFkaW5nIGJ5dGUsIG9yIGEKLy8gY29udGludWF0aW9uIGJ5dGUuCmZ1bmN0aW9uIHV0ZjhDaGVja0J5dGUoYnl0ZSkgewogIGlmIChieXRlIDw9IDB4N0YpIHJldHVybiAwO2Vsc2UgaWYgKGJ5dGUgPj4gNSA9PT0gMHgwNikgcmV0dXJuIDI7ZWxzZSBpZiAoYnl0ZSA+PiA0ID09PSAweDBFKSByZXR1cm4gMztlbHNlIGlmIChieXRlID4+IDMgPT09IDB4MUUpIHJldHVybiA0OwogIHJldHVybiAtMTsKfQoKLy8gQ2hlY2tzIGF0IG1vc3QgMyBieXRlcyBhdCB0aGUgZW5kIG9mIGEgQnVmZmVyIGluIG9yZGVyIHRvIGRldGVjdCBhbgovLyBpbmNvbXBsZXRlIG11bHRpLWJ5dGUgVVRGLTggY2hhcmFjdGVyLiBUaGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzICgyLCAzLCBvciA0KQovLyBuZWVkZWQgdG8gY29tcGxldGUgdGhlIFVURi04IGNoYXJhY3RlciAoaWYgYXBwbGljYWJsZSkgYXJlIHJldHVybmVkLgpmdW5jdGlvbiB1dGY4Q2hlY2tJbmNvbXBsZXRlKHNlbGYsIGJ1ZiwgaSkgewogIHZhciBqID0gYnVmLmxlbmd0aCAtIDE7CiAgaWYgKGogPCBpKSByZXR1cm4gMDsKICB2YXIgbmIgPSB1dGY4Q2hlY2tCeXRlKGJ1ZltqXSk7CiAgaWYgKG5iID49IDApIHsKICAgIGlmIChuYiA+IDApIHNlbGYubGFzdE5lZWQgPSBuYiAtIDE7CiAgICByZXR1cm4gbmI7CiAgfQogIGlmICgtLWogPCBpKSByZXR1cm4gMDsKICBuYiA9IHV0ZjhDaGVja0J5dGUoYnVmW2pdKTsKICBpZiAobmIgPj0gMCkgewogICAgaWYgKG5iID4gMCkgc2VsZi5sYXN0TmVlZCA9IG5iIC0gMjsKICAgIHJldHVybiBuYjsKICB9CiAgaWYgKC0taiA8IGkpIHJldHVybiAwOwogIG5iID0gdXRmOENoZWNrQnl0ZShidWZbal0pOwogIGlmIChuYiA+PSAwKSB7CiAgICBpZiAobmIgPiAwKSB7CiAgICAgIGlmIChuYiA9PT0gMikgbmIgPSAwO2Vsc2Ugc2VsZi5sYXN0TmVlZCA9IG5iIC0gMzsKICAgIH0KICAgIHJldHVybiBuYjsKICB9CiAgcmV0dXJuIDA7Cn0KCi8vIFZhbGlkYXRlcyBhcyBtYW55IGNvbnRpbnVhdGlvbiBieXRlcyBmb3IgYSBtdWx0aS1ieXRlIFVURi04IGNoYXJhY3RlciBhcwovLyBuZWVkZWQgb3IgYXJlIGF2YWlsYWJsZS4gSWYgd2Ugc2VlIGEgbm9uLWNvbnRpbnVhdGlvbiBieXRlIHdoZXJlIHdlIGV4cGVjdAovLyBvbmUsIHdlICJyZXBsYWNlIiB0aGUgdmFsaWRhdGVkIGNvbnRpbnVhdGlvbiBieXRlcyB3ZSd2ZSBzZWVuIHNvIGZhciB3aXRoCi8vIFVURi04IHJlcGxhY2VtZW50IGNoYXJhY3RlcnMgKCdcdWZmZmQnKSwgdG8gbWF0Y2ggdjgncyBVVEYtOCBkZWNvZGluZwovLyBiZWhhdmlvci4gVGhlIGNvbnRpbnVhdGlvbiBieXRlIGNoZWNrIGlzIGluY2x1ZGVkIHRocmVlIHRpbWVzIGluIHRoZSBjYXNlCi8vIHdoZXJlIGFsbCBvZiB0aGUgY29udGludWF0aW9uIGJ5dGVzIGZvciBhIGNoYXJhY3RlciBleGlzdCBpbiB0aGUgc2FtZSBidWZmZXIuCi8vIEl0IGlzIGFsc28gZG9uZSB0aGlzIHdheSBhcyBhIHNsaWdodCBwZXJmb3JtYW5jZSBpbmNyZWFzZSBpbnN0ZWFkIG9mIHVzaW5nIGEKLy8gbG9vcC4KZnVuY3Rpb24gdXRmOENoZWNrRXh0cmFCeXRlcyhzZWxmLCBidWYsIHApIHsKICBpZiAoKGJ1ZlswXSAmIDB4QzApICE9PSAweDgwKSB7CiAgICBzZWxmLmxhc3ROZWVkID0gMDsKICAgIHJldHVybiAnXHVmZmZkJy5yZXBlYXQocCk7CiAgfQogIGlmIChzZWxmLmxhc3ROZWVkID4gMSAmJiBidWYubGVuZ3RoID4gMSkgewogICAgaWYgKChidWZbMV0gJiAweEMwKSAhPT0gMHg4MCkgewogICAgICBzZWxmLmxhc3ROZWVkID0gMTsKICAgICAgcmV0dXJuICdcdWZmZmQnLnJlcGVhdChwICsgMSk7CiAgICB9CiAgICBpZiAoc2VsZi5sYXN0TmVlZCA+IDIgJiYgYnVmLmxlbmd0aCA+IDIpIHsKICAgICAgaWYgKChidWZbMl0gJiAweEMwKSAhPT0gMHg4MCkgewogICAgICAgIHNlbGYubGFzdE5lZWQgPSAyOwogICAgICAgIHJldHVybiAnXHVmZmZkJy5yZXBlYXQocCArIDIpOwogICAgICB9CiAgICB9CiAgfQp9CgovLyBBdHRlbXB0cyB0byBjb21wbGV0ZSBhIG11bHRpLWJ5dGUgVVRGLTggY2hhcmFjdGVyIHVzaW5nIGJ5dGVzIGZyb20gYSBCdWZmZXIuCmZ1bmN0aW9uIHV0ZjhGaWxsTGFzdChidWYpIHsKICB2YXIgcCA9IHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZDsKICB2YXIgciA9IHV0ZjhDaGVja0V4dHJhQnl0ZXModGhpcywgYnVmLCBwKTsKICBpZiAociAhPT0gdW5kZWZpbmVkKSByZXR1cm4gcjsKICBpZiAodGhpcy5sYXN0TmVlZCA8PSBidWYubGVuZ3RoKSB7CiAgICBidWYuY29weSh0aGlzLmxhc3RDaGFyLCBwLCAwLCB0aGlzLmxhc3ROZWVkKTsKICAgIHJldHVybiB0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsIDAsIHRoaXMubGFzdFRvdGFsKTsKICB9CiAgYnVmLmNvcHkodGhpcy5sYXN0Q2hhciwgcCwgMCwgYnVmLmxlbmd0aCk7CiAgdGhpcy5sYXN0TmVlZCAtPSBidWYubGVuZ3RoOwp9CgovLyBSZXR1cm5zIGFsbCBjb21wbGV0ZSBVVEYtOCBjaGFyYWN0ZXJzIGluIGEgQnVmZmVyLiBJZiB0aGUgQnVmZmVyIGVuZGVkIG9uIGEKLy8gcGFydGlhbCBjaGFyYWN0ZXIsIHRoZSBjaGFyYWN0ZXIncyBieXRlcyBhcmUgYnVmZmVyZWQgdW50aWwgdGhlIHJlcXVpcmVkCi8vIG51bWJlciBvZiBieXRlcyBhcmUgYXZhaWxhYmxlLgpmdW5jdGlvbiB1dGY4VGV4dChidWYsIGkpIHsKICB2YXIgdG90YWwgPSB1dGY4Q2hlY2tJbmNvbXBsZXRlKHRoaXMsIGJ1ZiwgaSk7CiAgaWYgKCF0aGlzLmxhc3ROZWVkKSByZXR1cm4gYnVmLnRvU3RyaW5nKCd1dGY4JywgaSk7CiAgdGhpcy5sYXN0VG90YWwgPSB0b3RhbDsKICB2YXIgZW5kID0gYnVmLmxlbmd0aCAtICh0b3RhbCAtIHRoaXMubGFzdE5lZWQpOwogIGJ1Zi5jb3B5KHRoaXMubGFzdENoYXIsIDAsIGVuZCk7CiAgcmV0dXJuIGJ1Zi50b1N0cmluZygndXRmOCcsIGksIGVuZCk7Cn0KCi8vIEZvciBVVEYtOCwgYSByZXBsYWNlbWVudCBjaGFyYWN0ZXIgZm9yIGVhY2ggYnVmZmVyZWQgYnl0ZSBvZiBhIChwYXJ0aWFsKQovLyBjaGFyYWN0ZXIgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlIG91dHB1dC4KZnVuY3Rpb24gdXRmOEVuZChidWYpIHsKICB2YXIgciA9IGJ1ZiAmJiBidWYubGVuZ3RoID8gdGhpcy53cml0ZShidWYpIDogJyc7CiAgaWYgKHRoaXMubGFzdE5lZWQpIHJldHVybiByICsgJ1x1ZmZmZCcucmVwZWF0KHRoaXMubGFzdFRvdGFsIC0gdGhpcy5sYXN0TmVlZCk7CiAgcmV0dXJuIHI7Cn0KCi8vIFVURi0xNkxFIHR5cGljYWxseSBuZWVkcyB0d28gYnl0ZXMgcGVyIGNoYXJhY3RlciwgYnV0IGV2ZW4gaWYgd2UgaGF2ZSBhbiBldmVuCi8vIG51bWJlciBvZiBieXRlcyBhdmFpbGFibGUsIHdlIG5lZWQgdG8gY2hlY2sgaWYgd2UgZW5kIG9uIGEgbGVhZGluZy9oaWdoCi8vIHN1cnJvZ2F0ZS4gSW4gdGhhdCBjYXNlLCB3ZSBuZWVkIHRvIHdhaXQgZm9yIHRoZSBuZXh0IHR3byBieXRlcyBpbiBvcmRlciB0bwovLyBkZWNvZGUgdGhlIGxhc3QgY2hhcmFjdGVyIHByb3Blcmx5LgpmdW5jdGlvbiB1dGYxNlRleHQoYnVmLCBpKSB7CiAgaWYgKChidWYubGVuZ3RoIC0gaSkgJSAyID09PSAwKSB7CiAgICB2YXIgciA9IGJ1Zi50b1N0cmluZygndXRmMTZsZScsIGkpOwogICAgaWYgKHIpIHsKICAgICAgdmFyIGMgPSByLmNoYXJDb2RlQXQoci5sZW5ndGggLSAxKTsKICAgICAgaWYgKGMgPj0gMHhEODAwICYmIGMgPD0gMHhEQkZGKSB7CiAgICAgICAgdGhpcy5sYXN0TmVlZCA9IDI7CiAgICAgICAgdGhpcy5sYXN0VG90YWwgPSA0OwogICAgICAgIHRoaXMubGFzdENoYXJbMF0gPSBidWZbYnVmLmxlbmd0aCAtIDJdOwogICAgICAgIHRoaXMubGFzdENoYXJbMV0gPSBidWZbYnVmLmxlbmd0aCAtIDFdOwogICAgICAgIHJldHVybiByLnNsaWNlKDAsIC0xKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHI7CiAgfQogIHRoaXMubGFzdE5lZWQgPSAxOwogIHRoaXMubGFzdFRvdGFsID0gMjsKICB0aGlzLmxhc3RDaGFyWzBdID0gYnVmW2J1Zi5sZW5ndGggLSAxXTsKICByZXR1cm4gYnVmLnRvU3RyaW5nKCd1dGYxNmxlJywgaSwgYnVmLmxlbmd0aCAtIDEpOwp9CgovLyBGb3IgVVRGLTE2TEUgd2UgZG8gbm90IGV4cGxpY2l0bHkgYXBwZW5kIHNwZWNpYWwgcmVwbGFjZW1lbnQgY2hhcmFjdGVycyBpZiB3ZQovLyBlbmQgb24gYSBwYXJ0aWFsIGNoYXJhY3Rlciwgd2Ugc2ltcGx5IGxldCB2OCBoYW5kbGUgdGhhdC4KZnVuY3Rpb24gdXRmMTZFbmQoYnVmKSB7CiAgdmFyIHIgPSBidWYgJiYgYnVmLmxlbmd0aCA/IHRoaXMud3JpdGUoYnVmKSA6ICcnOwogIGlmICh0aGlzLmxhc3ROZWVkKSB7CiAgICB2YXIgZW5kID0gdGhpcy5sYXN0VG90YWwgLSB0aGlzLmxhc3ROZWVkOwogICAgcmV0dXJuIHIgKyB0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCd1dGYxNmxlJywgMCwgZW5kKTsKICB9CiAgcmV0dXJuIHI7Cn0KCmZ1bmN0aW9uIGJhc2U2NFRleHQoYnVmLCBpKSB7CiAgdmFyIG4gPSAoYnVmLmxlbmd0aCAtIGkpICUgMzsKICBpZiAobiA9PT0gMCkgcmV0dXJuIGJ1Zi50b1N0cmluZygnYmFzZTY0JywgaSk7CiAgdGhpcy5sYXN0TmVlZCA9IDMgLSBuOwogIHRoaXMubGFzdFRvdGFsID0gMzsKICBpZiAobiA9PT0gMSkgewogICAgdGhpcy5sYXN0Q2hhclswXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07CiAgfSBlbHNlIHsKICAgIHRoaXMubGFzdENoYXJbMF0gPSBidWZbYnVmLmxlbmd0aCAtIDJdOwogICAgdGhpcy5sYXN0Q2hhclsxXSA9IGJ1ZltidWYubGVuZ3RoIC0gMV07CiAgfQogIHJldHVybiBidWYudG9TdHJpbmcoJ2Jhc2U2NCcsIGksIGJ1Zi5sZW5ndGggLSBuKTsKfQoKZnVuY3Rpb24gYmFzZTY0RW5kKGJ1ZikgewogIHZhciByID0gYnVmICYmIGJ1Zi5sZW5ndGggPyB0aGlzLndyaXRlKGJ1ZikgOiAnJzsKICBpZiAodGhpcy5sYXN0TmVlZCkgcmV0dXJuIHIgKyB0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCdiYXNlNjQnLCAwLCAzIC0gdGhpcy5sYXN0TmVlZCk7CiAgcmV0dXJuIHI7Cn0KCi8vIFBhc3MgYnl0ZXMgb24gdGhyb3VnaCBmb3Igc2luZ2xlLWJ5dGUgZW5jb2RpbmdzIChlLmcuIGFzY2lpLCBsYXRpbjEsIGhleCkKZnVuY3Rpb24gc2ltcGxlV3JpdGUoYnVmKSB7CiAgcmV0dXJuIGJ1Zi50b1N0cmluZyh0aGlzLmVuY29kaW5nKTsKfQoKZnVuY3Rpb24gc2ltcGxlRW5kKGJ1ZikgewogIHJldHVybiBidWYgJiYgYnVmLmxlbmd0aCA/IHRoaXMud3JpdGUoYnVmKSA6ICcnOwp9CgovKioqLyB9KSwKLyogNDggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24ocHJvY2VzcykgewoKdmFyIEJ1ZmZlciA9IF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyOwp2YXIgVHJhbnNmb3JtID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNSkuVHJhbnNmb3JtOwp2YXIgYmluZGluZyA9IF9fd2VicGFja19yZXF1aXJlX18oMTUwKTsKdmFyIHV0aWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQ5KTsKdmFyIGFzc2VydCA9IF9fd2VicGFja19yZXF1aXJlX18oODgpLm9rOwp2YXIga01heExlbmd0aCA9IF9fd2VicGFja19yZXF1aXJlX18oMSkua01heExlbmd0aDsKdmFyIGtSYW5nZUVycm9yTWVzc2FnZSA9ICdDYW5ub3QgY3JlYXRlIGZpbmFsIEJ1ZmZlci4gSXQgd291bGQgYmUgbGFyZ2VyICcgKyAndGhhbiAweCcgKyBrTWF4TGVuZ3RoLnRvU3RyaW5nKDE2KSArICcgYnl0ZXMnOwoKLy8gemxpYiBkb2Vzbid0IHByb3ZpZGUgdGhlc2UsIHNvIGtsdWRnZSB0aGVtIGluIGZvbGxvd2luZyB0aGUgc2FtZQovLyBjb25zdCBuYW1pbmcgc2NoZW1lIHpsaWIgdXNlcy4KYmluZGluZy5aX01JTl9XSU5ET1dCSVRTID0gODsKYmluZGluZy5aX01BWF9XSU5ET1dCSVRTID0gMTU7CmJpbmRpbmcuWl9ERUZBVUxUX1dJTkRPV0JJVFMgPSAxNTsKCi8vIGZld2VyIHRoYW4gNjQgYnl0ZXMgcGVyIGNodW5rIGlzIHN0dXBpZC4KLy8gdGVjaG5pY2FsbHkgaXQgY291bGQgd29yayB3aXRoIGFzIGZldyBhcyA4LCBidXQgZXZlbiA2NCBieXRlcwovLyBpcyBhYnN1cmRseSBsb3cuICBVc3VhbGx5IGEgTUIgb3IgbW9yZSBpcyBiZXN0LgpiaW5kaW5nLlpfTUlOX0NIVU5LID0gNjQ7CmJpbmRpbmcuWl9NQVhfQ0hVTksgPSBJbmZpbml0eTsKYmluZGluZy5aX0RFRkFVTFRfQ0hVTksgPSAxNiAqIDEwMjQ7CgpiaW5kaW5nLlpfTUlOX01FTUxFVkVMID0gMTsKYmluZGluZy5aX01BWF9NRU1MRVZFTCA9IDk7CmJpbmRpbmcuWl9ERUZBVUxUX01FTUxFVkVMID0gODsKCmJpbmRpbmcuWl9NSU5fTEVWRUwgPSAtMTsKYmluZGluZy5aX01BWF9MRVZFTCA9IDk7CmJpbmRpbmcuWl9ERUZBVUxUX0xFVkVMID0gYmluZGluZy5aX0RFRkFVTFRfQ09NUFJFU1NJT047CgovLyBleHBvc2UgYWxsIHRoZSB6bGliIGNvbnN0YW50cwp2YXIgYmtleXMgPSBPYmplY3Qua2V5cyhiaW5kaW5nKTsKZm9yICh2YXIgYmsgPSAwOyBiayA8IGJrZXlzLmxlbmd0aDsgYmsrKykgewogIHZhciBia2V5ID0gYmtleXNbYmtdOwogIGlmIChia2V5Lm1hdGNoKC9eWi8pKSB7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgYmtleSwgewogICAgICBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogYmluZGluZ1tia2V5XSwgd3JpdGFibGU6IGZhbHNlCiAgICB9KTsKICB9Cn0KCi8vIHRyYW5zbGF0aW9uIHRhYmxlIGZvciByZXR1cm4gY29kZXMuCnZhciBjb2RlcyA9IHsKICBaX09LOiBiaW5kaW5nLlpfT0ssCiAgWl9TVFJFQU1fRU5EOiBiaW5kaW5nLlpfU1RSRUFNX0VORCwKICBaX05FRURfRElDVDogYmluZGluZy5aX05FRURfRElDVCwKICBaX0VSUk5POiBiaW5kaW5nLlpfRVJSTk8sCiAgWl9TVFJFQU1fRVJST1I6IGJpbmRpbmcuWl9TVFJFQU1fRVJST1IsCiAgWl9EQVRBX0VSUk9SOiBiaW5kaW5nLlpfREFUQV9FUlJPUiwKICBaX01FTV9FUlJPUjogYmluZGluZy5aX01FTV9FUlJPUiwKICBaX0JVRl9FUlJPUjogYmluZGluZy5aX0JVRl9FUlJPUiwKICBaX1ZFUlNJT05fRVJST1I6IGJpbmRpbmcuWl9WRVJTSU9OX0VSUk9SCn07Cgp2YXIgY2tleXMgPSBPYmplY3Qua2V5cyhjb2Rlcyk7CmZvciAodmFyIGNrID0gMDsgY2sgPCBja2V5cy5sZW5ndGg7IGNrKyspIHsKICB2YXIgY2tleSA9IGNrZXlzW2NrXTsKICBjb2Rlc1tjb2Rlc1tja2V5XV0gPSBja2V5Owp9CgpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ2NvZGVzJywgewogIGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiBPYmplY3QuZnJlZXplKGNvZGVzKSwgd3JpdGFibGU6IGZhbHNlCn0pOwoKZXhwb3J0cy5EZWZsYXRlID0gRGVmbGF0ZTsKZXhwb3J0cy5JbmZsYXRlID0gSW5mbGF0ZTsKZXhwb3J0cy5HemlwID0gR3ppcDsKZXhwb3J0cy5HdW56aXAgPSBHdW56aXA7CmV4cG9ydHMuRGVmbGF0ZVJhdyA9IERlZmxhdGVSYXc7CmV4cG9ydHMuSW5mbGF0ZVJhdyA9IEluZmxhdGVSYXc7CmV4cG9ydHMuVW56aXAgPSBVbnppcDsKCmV4cG9ydHMuY3JlYXRlRGVmbGF0ZSA9IGZ1bmN0aW9uIChvKSB7CiAgcmV0dXJuIG5ldyBEZWZsYXRlKG8pOwp9OwoKZXhwb3J0cy5jcmVhdGVJbmZsYXRlID0gZnVuY3Rpb24gKG8pIHsKICByZXR1cm4gbmV3IEluZmxhdGUobyk7Cn07CgpleHBvcnRzLmNyZWF0ZURlZmxhdGVSYXcgPSBmdW5jdGlvbiAobykgewogIHJldHVybiBuZXcgRGVmbGF0ZVJhdyhvKTsKfTsKCmV4cG9ydHMuY3JlYXRlSW5mbGF0ZVJhdyA9IGZ1bmN0aW9uIChvKSB7CiAgcmV0dXJuIG5ldyBJbmZsYXRlUmF3KG8pOwp9OwoKZXhwb3J0cy5jcmVhdGVHemlwID0gZnVuY3Rpb24gKG8pIHsKICByZXR1cm4gbmV3IEd6aXAobyk7Cn07CgpleHBvcnRzLmNyZWF0ZUd1bnppcCA9IGZ1bmN0aW9uIChvKSB7CiAgcmV0dXJuIG5ldyBHdW56aXAobyk7Cn07CgpleHBvcnRzLmNyZWF0ZVVuemlwID0gZnVuY3Rpb24gKG8pIHsKICByZXR1cm4gbmV3IFVuemlwKG8pOwp9OwoKLy8gQ29udmVuaWVuY2UgbWV0aG9kcy4KLy8gY29tcHJlc3MvZGVjb21wcmVzcyBhIHN0cmluZyBvciBidWZmZXIgaW4gb25lIHN0ZXAuCmV4cG9ydHMuZGVmbGF0ZSA9IGZ1bmN0aW9uIChidWZmZXIsIG9wdHMsIGNhbGxiYWNrKSB7CiAgaWYgKHR5cGVvZiBvcHRzID09PSAnZnVuY3Rpb24nKSB7CiAgICBjYWxsYmFjayA9IG9wdHM7CiAgICBvcHRzID0ge307CiAgfQogIHJldHVybiB6bGliQnVmZmVyKG5ldyBEZWZsYXRlKG9wdHMpLCBidWZmZXIsIGNhbGxiYWNrKTsKfTsKCmV4cG9ydHMuZGVmbGF0ZVN5bmMgPSBmdW5jdGlvbiAoYnVmZmVyLCBvcHRzKSB7CiAgcmV0dXJuIHpsaWJCdWZmZXJTeW5jKG5ldyBEZWZsYXRlKG9wdHMpLCBidWZmZXIpOwp9OwoKZXhwb3J0cy5nemlwID0gZnVuY3Rpb24gKGJ1ZmZlciwgb3B0cywgY2FsbGJhY2spIHsKICBpZiAodHlwZW9mIG9wdHMgPT09ICdmdW5jdGlvbicpIHsKICAgIGNhbGxiYWNrID0gb3B0czsKICAgIG9wdHMgPSB7fTsKICB9CiAgcmV0dXJuIHpsaWJCdWZmZXIobmV3IEd6aXAob3B0cyksIGJ1ZmZlciwgY2FsbGJhY2spOwp9OwoKZXhwb3J0cy5nemlwU3luYyA9IGZ1bmN0aW9uIChidWZmZXIsIG9wdHMpIHsKICByZXR1cm4gemxpYkJ1ZmZlclN5bmMobmV3IEd6aXAob3B0cyksIGJ1ZmZlcik7Cn07CgpleHBvcnRzLmRlZmxhdGVSYXcgPSBmdW5jdGlvbiAoYnVmZmVyLCBvcHRzLCBjYWxsYmFjaykgewogIGlmICh0eXBlb2Ygb3B0cyA9PT0gJ2Z1bmN0aW9uJykgewogICAgY2FsbGJhY2sgPSBvcHRzOwogICAgb3B0cyA9IHt9OwogIH0KICByZXR1cm4gemxpYkJ1ZmZlcihuZXcgRGVmbGF0ZVJhdyhvcHRzKSwgYnVmZmVyLCBjYWxsYmFjayk7Cn07CgpleHBvcnRzLmRlZmxhdGVSYXdTeW5jID0gZnVuY3Rpb24gKGJ1ZmZlciwgb3B0cykgewogIHJldHVybiB6bGliQnVmZmVyU3luYyhuZXcgRGVmbGF0ZVJhdyhvcHRzKSwgYnVmZmVyKTsKfTsKCmV4cG9ydHMudW56aXAgPSBmdW5jdGlvbiAoYnVmZmVyLCBvcHRzLCBjYWxsYmFjaykgewogIGlmICh0eXBlb2Ygb3B0cyA9PT0gJ2Z1bmN0aW9uJykgewogICAgY2FsbGJhY2sgPSBvcHRzOwogICAgb3B0cyA9IHt9OwogIH0KICByZXR1cm4gemxpYkJ1ZmZlcihuZXcgVW56aXAob3B0cyksIGJ1ZmZlciwgY2FsbGJhY2spOwp9OwoKZXhwb3J0cy51bnppcFN5bmMgPSBmdW5jdGlvbiAoYnVmZmVyLCBvcHRzKSB7CiAgcmV0dXJuIHpsaWJCdWZmZXJTeW5jKG5ldyBVbnppcChvcHRzKSwgYnVmZmVyKTsKfTsKCmV4cG9ydHMuaW5mbGF0ZSA9IGZ1bmN0aW9uIChidWZmZXIsIG9wdHMsIGNhbGxiYWNrKSB7CiAgaWYgKHR5cGVvZiBvcHRzID09PSAnZnVuY3Rpb24nKSB7CiAgICBjYWxsYmFjayA9IG9wdHM7CiAgICBvcHRzID0ge307CiAgfQogIHJldHVybiB6bGliQnVmZmVyKG5ldyBJbmZsYXRlKG9wdHMpLCBidWZmZXIsIGNhbGxiYWNrKTsKfTsKCmV4cG9ydHMuaW5mbGF0ZVN5bmMgPSBmdW5jdGlvbiAoYnVmZmVyLCBvcHRzKSB7CiAgcmV0dXJuIHpsaWJCdWZmZXJTeW5jKG5ldyBJbmZsYXRlKG9wdHMpLCBidWZmZXIpOwp9OwoKZXhwb3J0cy5ndW56aXAgPSBmdW5jdGlvbiAoYnVmZmVyLCBvcHRzLCBjYWxsYmFjaykgewogIGlmICh0eXBlb2Ygb3B0cyA9PT0gJ2Z1bmN0aW9uJykgewogICAgY2FsbGJhY2sgPSBvcHRzOwogICAgb3B0cyA9IHt9OwogIH0KICByZXR1cm4gemxpYkJ1ZmZlcihuZXcgR3VuemlwKG9wdHMpLCBidWZmZXIsIGNhbGxiYWNrKTsKfTsKCmV4cG9ydHMuZ3VuemlwU3luYyA9IGZ1bmN0aW9uIChidWZmZXIsIG9wdHMpIHsKICByZXR1cm4gemxpYkJ1ZmZlclN5bmMobmV3IEd1bnppcChvcHRzKSwgYnVmZmVyKTsKfTsKCmV4cG9ydHMuaW5mbGF0ZVJhdyA9IGZ1bmN0aW9uIChidWZmZXIsIG9wdHMsIGNhbGxiYWNrKSB7CiAgaWYgKHR5cGVvZiBvcHRzID09PSAnZnVuY3Rpb24nKSB7CiAgICBjYWxsYmFjayA9IG9wdHM7CiAgICBvcHRzID0ge307CiAgfQogIHJldHVybiB6bGliQnVmZmVyKG5ldyBJbmZsYXRlUmF3KG9wdHMpLCBidWZmZXIsIGNhbGxiYWNrKTsKfTsKCmV4cG9ydHMuaW5mbGF0ZVJhd1N5bmMgPSBmdW5jdGlvbiAoYnVmZmVyLCBvcHRzKSB7CiAgcmV0dXJuIHpsaWJCdWZmZXJTeW5jKG5ldyBJbmZsYXRlUmF3KG9wdHMpLCBidWZmZXIpOwp9OwoKZnVuY3Rpb24gemxpYkJ1ZmZlcihlbmdpbmUsIGJ1ZmZlciwgY2FsbGJhY2spIHsKICB2YXIgYnVmZmVycyA9IFtdOwogIHZhciBucmVhZCA9IDA7CgogIGVuZ2luZS5vbignZXJyb3InLCBvbkVycm9yKTsKICBlbmdpbmUub24oJ2VuZCcsIG9uRW5kKTsKCiAgZW5naW5lLmVuZChidWZmZXIpOwogIGZsb3coKTsKCiAgZnVuY3Rpb24gZmxvdygpIHsKICAgIHZhciBjaHVuazsKICAgIHdoaWxlIChudWxsICE9PSAoY2h1bmsgPSBlbmdpbmUucmVhZCgpKSkgewogICAgICBidWZmZXJzLnB1c2goY2h1bmspOwogICAgICBucmVhZCArPSBjaHVuay5sZW5ndGg7CiAgICB9CiAgICBlbmdpbmUub25jZSgncmVhZGFibGUnLCBmbG93KTsKICB9CgogIGZ1bmN0aW9uIG9uRXJyb3IoZXJyKSB7CiAgICBlbmdpbmUucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIG9uRW5kKTsKICAgIGVuZ2luZS5yZW1vdmVMaXN0ZW5lcigncmVhZGFibGUnLCBmbG93KTsKICAgIGNhbGxiYWNrKGVycik7CiAgfQoKICBmdW5jdGlvbiBvbkVuZCgpIHsKICAgIHZhciBidWY7CiAgICB2YXIgZXJyID0gbnVsbDsKCiAgICBpZiAobnJlYWQgPj0ga01heExlbmd0aCkgewogICAgICBlcnIgPSBuZXcgUmFuZ2VFcnJvcihrUmFuZ2VFcnJvck1lc3NhZ2UpOwogICAgfSBlbHNlIHsKICAgICAgYnVmID0gQnVmZmVyLmNvbmNhdChidWZmZXJzLCBucmVhZCk7CiAgICB9CgogICAgYnVmZmVycyA9IFtdOwogICAgZW5naW5lLmNsb3NlKCk7CiAgICBjYWxsYmFjayhlcnIsIGJ1Zik7CiAgfQp9CgpmdW5jdGlvbiB6bGliQnVmZmVyU3luYyhlbmdpbmUsIGJ1ZmZlcikgewogIGlmICh0eXBlb2YgYnVmZmVyID09PSAnc3RyaW5nJykgYnVmZmVyID0gQnVmZmVyLmZyb20oYnVmZmVyKTsKCiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoYnVmZmVyKSkgdGhyb3cgbmV3IFR5cGVFcnJvcignTm90IGEgc3RyaW5nIG9yIGJ1ZmZlcicpOwoKICB2YXIgZmx1c2hGbGFnID0gZW5naW5lLl9maW5pc2hGbHVzaEZsYWc7CgogIHJldHVybiBlbmdpbmUuX3Byb2Nlc3NDaHVuayhidWZmZXIsIGZsdXNoRmxhZyk7Cn0KCi8vIGdlbmVyaWMgemxpYgovLyBtaW5pbWFsIDItYnl0ZSBoZWFkZXIKZnVuY3Rpb24gRGVmbGF0ZShvcHRzKSB7CiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIERlZmxhdGUpKSByZXR1cm4gbmV3IERlZmxhdGUob3B0cyk7CiAgWmxpYi5jYWxsKHRoaXMsIG9wdHMsIGJpbmRpbmcuREVGTEFURSk7Cn0KCmZ1bmN0aW9uIEluZmxhdGUob3B0cykgewogIGlmICghKHRoaXMgaW5zdGFuY2VvZiBJbmZsYXRlKSkgcmV0dXJuIG5ldyBJbmZsYXRlKG9wdHMpOwogIFpsaWIuY2FsbCh0aGlzLCBvcHRzLCBiaW5kaW5nLklORkxBVEUpOwp9CgovLyBnemlwIC0gYmlnZ2VyIGhlYWRlciwgc2FtZSBkZWZsYXRlIGNvbXByZXNzaW9uCmZ1bmN0aW9uIEd6aXAob3B0cykgewogIGlmICghKHRoaXMgaW5zdGFuY2VvZiBHemlwKSkgcmV0dXJuIG5ldyBHemlwKG9wdHMpOwogIFpsaWIuY2FsbCh0aGlzLCBvcHRzLCBiaW5kaW5nLkdaSVApOwp9CgpmdW5jdGlvbiBHdW56aXAob3B0cykgewogIGlmICghKHRoaXMgaW5zdGFuY2VvZiBHdW56aXApKSByZXR1cm4gbmV3IEd1bnppcChvcHRzKTsKICBabGliLmNhbGwodGhpcywgb3B0cywgYmluZGluZy5HVU5aSVApOwp9CgovLyByYXcgLSBubyBoZWFkZXIKZnVuY3Rpb24gRGVmbGF0ZVJhdyhvcHRzKSB7CiAgaWYgKCEodGhpcyBpbnN0YW5jZW9mIERlZmxhdGVSYXcpKSByZXR1cm4gbmV3IERlZmxhdGVSYXcob3B0cyk7CiAgWmxpYi5jYWxsKHRoaXMsIG9wdHMsIGJpbmRpbmcuREVGTEFURVJBVyk7Cn0KCmZ1bmN0aW9uIEluZmxhdGVSYXcob3B0cykgewogIGlmICghKHRoaXMgaW5zdGFuY2VvZiBJbmZsYXRlUmF3KSkgcmV0dXJuIG5ldyBJbmZsYXRlUmF3KG9wdHMpOwogIFpsaWIuY2FsbCh0aGlzLCBvcHRzLCBiaW5kaW5nLklORkxBVEVSQVcpOwp9CgovLyBhdXRvLWRldGVjdCBoZWFkZXIuCmZ1bmN0aW9uIFVuemlwKG9wdHMpIHsKICBpZiAoISh0aGlzIGluc3RhbmNlb2YgVW56aXApKSByZXR1cm4gbmV3IFVuemlwKG9wdHMpOwogIFpsaWIuY2FsbCh0aGlzLCBvcHRzLCBiaW5kaW5nLlVOWklQKTsKfQoKZnVuY3Rpb24gaXNWYWxpZEZsdXNoRmxhZyhmbGFnKSB7CiAgcmV0dXJuIGZsYWcgPT09IGJpbmRpbmcuWl9OT19GTFVTSCB8fCBmbGFnID09PSBiaW5kaW5nLlpfUEFSVElBTF9GTFVTSCB8fCBmbGFnID09PSBiaW5kaW5nLlpfU1lOQ19GTFVTSCB8fCBmbGFnID09PSBiaW5kaW5nLlpfRlVMTF9GTFVTSCB8fCBmbGFnID09PSBiaW5kaW5nLlpfRklOSVNIIHx8IGZsYWcgPT09IGJpbmRpbmcuWl9CTE9DSzsKfQoKLy8gdGhlIFpsaWIgY2xhc3MgdGhleSBhbGwgaW5oZXJpdCBmcm9tCi8vIFRoaXMgdGhpbmcgbWFuYWdlcyB0aGUgcXVldWUgb2YgcmVxdWVzdHMsIGFuZCByZXR1cm5zCi8vIHRydWUgb3IgZmFsc2UgaWYgdGhlcmUgaXMgYW55dGhpbmcgaW4gdGhlIHF1ZXVlIHdoZW4KLy8geW91IGNhbGwgdGhlIC53cml0ZSgpIG1ldGhvZC4KCmZ1bmN0aW9uIFpsaWIob3B0cywgbW9kZSkgewogIHZhciBfdGhpcyA9IHRoaXM7CgogIHRoaXMuX29wdHMgPSBvcHRzID0gb3B0cyB8fCB7fTsKICB0aGlzLl9jaHVua1NpemUgPSBvcHRzLmNodW5rU2l6ZSB8fCBleHBvcnRzLlpfREVGQVVMVF9DSFVOSzsKCiAgVHJhbnNmb3JtLmNhbGwodGhpcywgb3B0cyk7CgogIGlmIChvcHRzLmZsdXNoICYmICFpc1ZhbGlkRmx1c2hGbGFnKG9wdHMuZmx1c2gpKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZmx1c2ggZmxhZzogJyArIG9wdHMuZmx1c2gpOwogIH0KICBpZiAob3B0cy5maW5pc2hGbHVzaCAmJiAhaXNWYWxpZEZsdXNoRmxhZyhvcHRzLmZpbmlzaEZsdXNoKSkgewogICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZsdXNoIGZsYWc6ICcgKyBvcHRzLmZpbmlzaEZsdXNoKTsKICB9CgogIHRoaXMuX2ZsdXNoRmxhZyA9IG9wdHMuZmx1c2ggfHwgYmluZGluZy5aX05PX0ZMVVNIOwogIHRoaXMuX2ZpbmlzaEZsdXNoRmxhZyA9IHR5cGVvZiBvcHRzLmZpbmlzaEZsdXNoICE9PSAndW5kZWZpbmVkJyA/IG9wdHMuZmluaXNoRmx1c2ggOiBiaW5kaW5nLlpfRklOSVNIOwoKICBpZiAob3B0cy5jaHVua1NpemUpIHsKICAgIGlmIChvcHRzLmNodW5rU2l6ZSA8IGV4cG9ydHMuWl9NSU5fQ0hVTksgfHwgb3B0cy5jaHVua1NpemUgPiBleHBvcnRzLlpfTUFYX0NIVU5LKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjaHVuayBzaXplOiAnICsgb3B0cy5jaHVua1NpemUpOwogICAgfQogIH0KCiAgaWYgKG9wdHMud2luZG93Qml0cykgewogICAgaWYgKG9wdHMud2luZG93Qml0cyA8IGV4cG9ydHMuWl9NSU5fV0lORE9XQklUUyB8fCBvcHRzLndpbmRvd0JpdHMgPiBleHBvcnRzLlpfTUFYX1dJTkRPV0JJVFMpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHdpbmRvd0JpdHM6ICcgKyBvcHRzLndpbmRvd0JpdHMpOwogICAgfQogIH0KCiAgaWYgKG9wdHMubGV2ZWwpIHsKICAgIGlmIChvcHRzLmxldmVsIDwgZXhwb3J0cy5aX01JTl9MRVZFTCB8fCBvcHRzLmxldmVsID4gZXhwb3J0cy5aX01BWF9MRVZFTCkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29tcHJlc3Npb24gbGV2ZWw6ICcgKyBvcHRzLmxldmVsKTsKICAgIH0KICB9CgogIGlmIChvcHRzLm1lbUxldmVsKSB7CiAgICBpZiAob3B0cy5tZW1MZXZlbCA8IGV4cG9ydHMuWl9NSU5fTUVNTEVWRUwgfHwgb3B0cy5tZW1MZXZlbCA+IGV4cG9ydHMuWl9NQVhfTUVNTEVWRUwpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1lbUxldmVsOiAnICsgb3B0cy5tZW1MZXZlbCk7CiAgICB9CiAgfQoKICBpZiAob3B0cy5zdHJhdGVneSkgewogICAgaWYgKG9wdHMuc3RyYXRlZ3kgIT0gZXhwb3J0cy5aX0ZJTFRFUkVEICYmIG9wdHMuc3RyYXRlZ3kgIT0gZXhwb3J0cy5aX0hVRkZNQU5fT05MWSAmJiBvcHRzLnN0cmF0ZWd5ICE9IGV4cG9ydHMuWl9STEUgJiYgb3B0cy5zdHJhdGVneSAhPSBleHBvcnRzLlpfRklYRUQgJiYgb3B0cy5zdHJhdGVneSAhPSBleHBvcnRzLlpfREVGQVVMVF9TVFJBVEVHWSkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyYXRlZ3k6ICcgKyBvcHRzLnN0cmF0ZWd5KTsKICAgIH0KICB9CgogIGlmIChvcHRzLmRpY3Rpb25hcnkpIHsKICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKG9wdHMuZGljdGlvbmFyeSkpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRpY3Rpb25hcnk6IGl0IHNob3VsZCBiZSBhIEJ1ZmZlciBpbnN0YW5jZScpOwogICAgfQogIH0KCiAgdGhpcy5faGFuZGxlID0gbmV3IGJpbmRpbmcuWmxpYihtb2RlKTsKCiAgdmFyIHNlbGYgPSB0aGlzOwogIHRoaXMuX2hhZEVycm9yID0gZmFsc2U7CiAgdGhpcy5faGFuZGxlLm9uZXJyb3IgPSBmdW5jdGlvbiAobWVzc2FnZSwgZXJybm8pIHsKICAgIC8vIHRoZXJlIGlzIG5vIHdheSB0byBjbGVhbmx5IHJlY292ZXIuCiAgICAvLyBjb250aW51aW5nIG9ubHkgb2JzY3VyZXMgcHJvYmxlbXMuCiAgICBfY2xvc2Uoc2VsZik7CiAgICBzZWxmLl9oYWRFcnJvciA9IHRydWU7CgogICAgdmFyIGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpOwogICAgZXJyb3IuZXJybm8gPSBlcnJubzsKICAgIGVycm9yLmNvZGUgPSBleHBvcnRzLmNvZGVzW2Vycm5vXTsKICAgIHNlbGYuZW1pdCgnZXJyb3InLCBlcnJvcik7CiAgfTsKCiAgdmFyIGxldmVsID0gZXhwb3J0cy5aX0RFRkFVTFRfQ09NUFJFU1NJT047CiAgaWYgKHR5cGVvZiBvcHRzLmxldmVsID09PSAnbnVtYmVyJykgbGV2ZWwgPSBvcHRzLmxldmVsOwoKICB2YXIgc3RyYXRlZ3kgPSBleHBvcnRzLlpfREVGQVVMVF9TVFJBVEVHWTsKICBpZiAodHlwZW9mIG9wdHMuc3RyYXRlZ3kgPT09ICdudW1iZXInKSBzdHJhdGVneSA9IG9wdHMuc3RyYXRlZ3k7CgogIHRoaXMuX2hhbmRsZS5pbml0KG9wdHMud2luZG93Qml0cyB8fCBleHBvcnRzLlpfREVGQVVMVF9XSU5ET1dCSVRTLCBsZXZlbCwgb3B0cy5tZW1MZXZlbCB8fCBleHBvcnRzLlpfREVGQVVMVF9NRU1MRVZFTCwgc3RyYXRlZ3ksIG9wdHMuZGljdGlvbmFyeSk7CgogIHRoaXMuX2J1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZSh0aGlzLl9jaHVua1NpemUpOwogIHRoaXMuX29mZnNldCA9IDA7CiAgdGhpcy5fbGV2ZWwgPSBsZXZlbDsKICB0aGlzLl9zdHJhdGVneSA9IHN0cmF0ZWd5OwoKICB0aGlzLm9uY2UoJ2VuZCcsIHRoaXMuY2xvc2UpOwoKICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ19jbG9zZWQnLCB7CiAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuICFfdGhpcy5faGFuZGxlOwogICAgfSwKICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKICAgIGVudW1lcmFibGU6IHRydWUKICB9KTsKfQoKdXRpbC5pbmhlcml0cyhabGliLCBUcmFuc2Zvcm0pOwoKWmxpYi5wcm90b3R5cGUucGFyYW1zID0gZnVuY3Rpb24gKGxldmVsLCBzdHJhdGVneSwgY2FsbGJhY2spIHsKICBpZiAobGV2ZWwgPCBleHBvcnRzLlpfTUlOX0xFVkVMIHx8IGxldmVsID4gZXhwb3J0cy5aX01BWF9MRVZFTCkgewogICAgdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ0ludmFsaWQgY29tcHJlc3Npb24gbGV2ZWw6ICcgKyBsZXZlbCk7CiAgfQogIGlmIChzdHJhdGVneSAhPSBleHBvcnRzLlpfRklMVEVSRUQgJiYgc3RyYXRlZ3kgIT0gZXhwb3J0cy5aX0hVRkZNQU5fT05MWSAmJiBzdHJhdGVneSAhPSBleHBvcnRzLlpfUkxFICYmIHN0cmF0ZWd5ICE9IGV4cG9ydHMuWl9GSVhFRCAmJiBzdHJhdGVneSAhPSBleHBvcnRzLlpfREVGQVVMVF9TVFJBVEVHWSkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcignSW52YWxpZCBzdHJhdGVneTogJyArIHN0cmF0ZWd5KTsKICB9CgogIGlmICh0aGlzLl9sZXZlbCAhPT0gbGV2ZWwgfHwgdGhpcy5fc3RyYXRlZ3kgIT09IHN0cmF0ZWd5KSB7CiAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICB0aGlzLmZsdXNoKGJpbmRpbmcuWl9TWU5DX0ZMVVNILCBmdW5jdGlvbiAoKSB7CiAgICAgIGFzc2VydChzZWxmLl9oYW5kbGUsICd6bGliIGJpbmRpbmcgY2xvc2VkJyk7CiAgICAgIHNlbGYuX2hhbmRsZS5wYXJhbXMobGV2ZWwsIHN0cmF0ZWd5KTsKICAgICAgaWYgKCFzZWxmLl9oYWRFcnJvcikgewogICAgICAgIHNlbGYuX2xldmVsID0gbGV2ZWw7CiAgICAgICAgc2VsZi5fc3RyYXRlZ3kgPSBzdHJhdGVneTsKICAgICAgICBpZiAoY2FsbGJhY2spIGNhbGxiYWNrKCk7CiAgICAgIH0KICAgIH0pOwogIH0gZWxzZSB7CiAgICBwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNrKTsKICB9Cn07CgpabGliLnByb3RvdHlwZS5yZXNldCA9IGZ1bmN0aW9uICgpIHsKICBhc3NlcnQodGhpcy5faGFuZGxlLCAnemxpYiBiaW5kaW5nIGNsb3NlZCcpOwogIHJldHVybiB0aGlzLl9oYW5kbGUucmVzZXQoKTsKfTsKCi8vIFRoaXMgaXMgdGhlIF9mbHVzaCBmdW5jdGlvbiBjYWxsZWQgYnkgdGhlIHRyYW5zZm9ybSBjbGFzcywKLy8gaW50ZXJuYWxseSwgd2hlbiB0aGUgbGFzdCBjaHVuayBoYXMgYmVlbiB3cml0dGVuLgpabGliLnByb3RvdHlwZS5fZmx1c2ggPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKICB0aGlzLl90cmFuc2Zvcm0oQnVmZmVyLmFsbG9jKDApLCAnJywgY2FsbGJhY2spOwp9OwoKWmxpYi5wcm90b3R5cGUuZmx1c2ggPSBmdW5jdGlvbiAoa2luZCwgY2FsbGJhY2spIHsKICB2YXIgX3RoaXMyID0gdGhpczsKCiAgdmFyIHdzID0gdGhpcy5fd3JpdGFibGVTdGF0ZTsKCiAgaWYgKHR5cGVvZiBraW5kID09PSAnZnVuY3Rpb24nIHx8IGtpbmQgPT09IHVuZGVmaW5lZCAmJiAhY2FsbGJhY2spIHsKICAgIGNhbGxiYWNrID0ga2luZDsKICAgIGtpbmQgPSBiaW5kaW5nLlpfRlVMTF9GTFVTSDsKICB9CgogIGlmICh3cy5lbmRlZCkgewogICAgaWYgKGNhbGxiYWNrKSBwcm9jZXNzLm5leHRUaWNrKGNhbGxiYWNrKTsKICB9IGVsc2UgaWYgKHdzLmVuZGluZykgewogICAgaWYgKGNhbGxiYWNrKSB0aGlzLm9uY2UoJ2VuZCcsIGNhbGxiYWNrKTsKICB9IGVsc2UgaWYgKHdzLm5lZWREcmFpbikgewogICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgIHRoaXMub25jZSgnZHJhaW4nLCBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIF90aGlzMi5mbHVzaChraW5kLCBjYWxsYmFjayk7CiAgICAgIH0pOwogICAgfQogIH0gZWxzZSB7CiAgICB0aGlzLl9mbHVzaEZsYWcgPSBraW5kOwogICAgdGhpcy53cml0ZShCdWZmZXIuYWxsb2MoMCksICcnLCBjYWxsYmFjayk7CiAgfQp9OwoKWmxpYi5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKICBfY2xvc2UodGhpcywgY2FsbGJhY2spOwogIHByb2Nlc3MubmV4dFRpY2soZW1pdENsb3NlTlQsIHRoaXMpOwp9OwoKZnVuY3Rpb24gX2Nsb3NlKGVuZ2luZSwgY2FsbGJhY2spIHsKICBpZiAoY2FsbGJhY2spIHByb2Nlc3MubmV4dFRpY2soY2FsbGJhY2spOwoKICAvLyBDYWxsZXIgbWF5IGludm9rZSAuY2xvc2UgYWZ0ZXIgYSB6bGliIGVycm9yICh3aGljaCB3aWxsIG51bGwgX2hhbmRsZSkuCiAgaWYgKCFlbmdpbmUuX2hhbmRsZSkgcmV0dXJuOwoKICBlbmdpbmUuX2hhbmRsZS5jbG9zZSgpOwogIGVuZ2luZS5faGFuZGxlID0gbnVsbDsKfQoKZnVuY3Rpb24gZW1pdENsb3NlTlQoc2VsZikgewogIHNlbGYuZW1pdCgnY2xvc2UnKTsKfQoKWmxpYi5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7CiAgdmFyIGZsdXNoRmxhZzsKICB2YXIgd3MgPSB0aGlzLl93cml0YWJsZVN0YXRlOwogIHZhciBlbmRpbmcgPSB3cy5lbmRpbmcgfHwgd3MuZW5kZWQ7CiAgdmFyIGxhc3QgPSBlbmRpbmcgJiYgKCFjaHVuayB8fCB3cy5sZW5ndGggPT09IGNodW5rLmxlbmd0aCk7CgogIGlmIChjaHVuayAhPT0gbnVsbCAmJiAhQnVmZmVyLmlzQnVmZmVyKGNodW5rKSkgcmV0dXJuIGNiKG5ldyBFcnJvcignaW52YWxpZCBpbnB1dCcpKTsKCiAgaWYgKCF0aGlzLl9oYW5kbGUpIHJldHVybiBjYihuZXcgRXJyb3IoJ3psaWIgYmluZGluZyBjbG9zZWQnKSk7CgogIC8vIElmIGl0J3MgdGhlIGxhc3QgY2h1bmssIG9yIGEgZmluYWwgZmx1c2gsIHdlIHVzZSB0aGUgWl9GSU5JU0ggZmx1c2ggZmxhZwogIC8vIChvciB3aGF0ZXZlciBmbGFnIHdhcyBwcm92aWRlZCB1c2luZyBvcHRzLmZpbmlzaEZsdXNoKS4KICAvLyBJZiBpdCdzIGV4cGxpY2l0bHkgZmx1c2hpbmcgYXQgc29tZSBvdGhlciB0aW1lLCB0aGVuIHdlIHVzZQogIC8vIFpfRlVMTF9GTFVTSC4gT3RoZXJ3aXNlLCB1c2UgWl9OT19GTFVTSCBmb3IgbWF4aW11bSBjb21wcmVzc2lvbgogIC8vIGdvb2RuZXNzLgogIGlmIChsYXN0KSBmbHVzaEZsYWcgPSB0aGlzLl9maW5pc2hGbHVzaEZsYWc7ZWxzZSB7CiAgICBmbHVzaEZsYWcgPSB0aGlzLl9mbHVzaEZsYWc7CiAgICAvLyBvbmNlIHdlJ3ZlIGZsdXNoZWQgdGhlIGxhc3Qgb2YgdGhlIHF1ZXVlLCBzdG9wIGZsdXNoaW5nIGFuZAogICAgLy8gZ28gYmFjayB0byB0aGUgbm9ybWFsIGJlaGF2aW9yLgogICAgaWYgKGNodW5rLmxlbmd0aCA+PSB3cy5sZW5ndGgpIHsKICAgICAgdGhpcy5fZmx1c2hGbGFnID0gdGhpcy5fb3B0cy5mbHVzaCB8fCBiaW5kaW5nLlpfTk9fRkxVU0g7CiAgICB9CiAgfQoKICB0aGlzLl9wcm9jZXNzQ2h1bmsoY2h1bmssIGZsdXNoRmxhZywgY2IpOwp9OwoKWmxpYi5wcm90b3R5cGUuX3Byb2Nlc3NDaHVuayA9IGZ1bmN0aW9uIChjaHVuaywgZmx1c2hGbGFnLCBjYikgewogIHZhciBhdmFpbEluQmVmb3JlID0gY2h1bmsgJiYgY2h1bmsubGVuZ3RoOwogIHZhciBhdmFpbE91dEJlZm9yZSA9IHRoaXMuX2NodW5rU2l6ZSAtIHRoaXMuX29mZnNldDsKICB2YXIgaW5PZmYgPSAwOwoKICB2YXIgc2VsZiA9IHRoaXM7CgogIHZhciBhc3luYyA9IHR5cGVvZiBjYiA9PT0gJ2Z1bmN0aW9uJzsKCiAgaWYgKCFhc3luYykgewogICAgdmFyIGJ1ZmZlcnMgPSBbXTsKICAgIHZhciBucmVhZCA9IDA7CgogICAgdmFyIGVycm9yOwogICAgdGhpcy5vbignZXJyb3InLCBmdW5jdGlvbiAoZXIpIHsKICAgICAgZXJyb3IgPSBlcjsKICAgIH0pOwoKICAgIGFzc2VydCh0aGlzLl9oYW5kbGUsICd6bGliIGJpbmRpbmcgY2xvc2VkJyk7CiAgICBkbyB7CiAgICAgIHZhciByZXMgPSB0aGlzLl9oYW5kbGUud3JpdGVTeW5jKGZsdXNoRmxhZywgY2h1bmssIC8vIGluCiAgICAgIGluT2ZmLCAvLyBpbl9vZmYKICAgICAgYXZhaWxJbkJlZm9yZSwgLy8gaW5fbGVuCiAgICAgIHRoaXMuX2J1ZmZlciwgLy8gb3V0CiAgICAgIHRoaXMuX29mZnNldCwgLy9vdXRfb2ZmCiAgICAgIGF2YWlsT3V0QmVmb3JlKTsgLy8gb3V0X2xlbgogICAgfSB3aGlsZSAoIXRoaXMuX2hhZEVycm9yICYmIGNhbGxiYWNrKHJlc1swXSwgcmVzWzFdKSk7CgogICAgaWYgKHRoaXMuX2hhZEVycm9yKSB7CiAgICAgIHRocm93IGVycm9yOwogICAgfQoKICAgIGlmIChucmVhZCA+PSBrTWF4TGVuZ3RoKSB7CiAgICAgIF9jbG9zZSh0aGlzKTsKICAgICAgdGhyb3cgbmV3IFJhbmdlRXJyb3Ioa1JhbmdlRXJyb3JNZXNzYWdlKTsKICAgIH0KCiAgICB2YXIgYnVmID0gQnVmZmVyLmNvbmNhdChidWZmZXJzLCBucmVhZCk7CiAgICBfY2xvc2UodGhpcyk7CgogICAgcmV0dXJuIGJ1ZjsKICB9CgogIGFzc2VydCh0aGlzLl9oYW5kbGUsICd6bGliIGJpbmRpbmcgY2xvc2VkJyk7CiAgdmFyIHJlcSA9IHRoaXMuX2hhbmRsZS53cml0ZShmbHVzaEZsYWcsIGNodW5rLCAvLyBpbgogIGluT2ZmLCAvLyBpbl9vZmYKICBhdmFpbEluQmVmb3JlLCAvLyBpbl9sZW4KICB0aGlzLl9idWZmZXIsIC8vIG91dAogIHRoaXMuX29mZnNldCwgLy9vdXRfb2ZmCiAgYXZhaWxPdXRCZWZvcmUpOyAvLyBvdXRfbGVuCgogIHJlcS5idWZmZXIgPSBjaHVuazsKICByZXEuY2FsbGJhY2sgPSBjYWxsYmFjazsKCiAgZnVuY3Rpb24gY2FsbGJhY2soYXZhaWxJbkFmdGVyLCBhdmFpbE91dEFmdGVyKSB7CiAgICAvLyBXaGVuIHRoZSBjYWxsYmFjayBpcyB1c2VkIGluIGFuIGFzeW5jIHdyaXRlLCB0aGUgY2FsbGJhY2sncwogICAgLy8gY29udGV4dCBpcyB0aGUgYHJlcWAgb2JqZWN0IHRoYXQgd2FzIGNyZWF0ZWQuIFRoZSByZXEgb2JqZWN0CiAgICAvLyBpcyA9PT0gdGhpcy5faGFuZGxlLCBhbmQgdGhhdCdzIHdoeSBpdCdzIGltcG9ydGFudCB0byBudWxsCiAgICAvLyBvdXQgdGhlIHZhbHVlcyBhZnRlciB0aGV5IGFyZSBkb25lIGJlaW5nIHVzZWQuIGB0aGlzLl9oYW5kbGVgCiAgICAvLyBjYW4gc3RheSBpbiBtZW1vcnkgbG9uZ2VyIHRoYW4gdGhlIGNhbGxiYWNrIGFuZCBidWZmZXIgYXJlIG5lZWRlZC4KICAgIGlmICh0aGlzKSB7CiAgICAgIHRoaXMuYnVmZmVyID0gbnVsbDsKICAgICAgdGhpcy5jYWxsYmFjayA9IG51bGw7CiAgICB9CgogICAgaWYgKHNlbGYuX2hhZEVycm9yKSByZXR1cm47CgogICAgdmFyIGhhdmUgPSBhdmFpbE91dEJlZm9yZSAtIGF2YWlsT3V0QWZ0ZXI7CiAgICBhc3NlcnQoaGF2ZSA+PSAwLCAnaGF2ZSBzaG91bGQgbm90IGdvIGRvd24nKTsKCiAgICBpZiAoaGF2ZSA+IDApIHsKICAgICAgdmFyIG91dCA9IHNlbGYuX2J1ZmZlci5zbGljZShzZWxmLl9vZmZzZXQsIHNlbGYuX29mZnNldCArIGhhdmUpOwogICAgICBzZWxmLl9vZmZzZXQgKz0gaGF2ZTsKICAgICAgLy8gc2VydmUgc29tZSBvdXRwdXQgdG8gdGhlIGNvbnN1bWVyLgogICAgICBpZiAoYXN5bmMpIHsKICAgICAgICBzZWxmLnB1c2gob3V0KTsKICAgICAgfSBlbHNlIHsKICAgICAgICBidWZmZXJzLnB1c2gob3V0KTsKICAgICAgICBucmVhZCArPSBvdXQubGVuZ3RoOwogICAgICB9CiAgICB9CgogICAgLy8gZXhoYXVzdGVkIHRoZSBvdXRwdXQgYnVmZmVyLCBvciB1c2VkIGFsbCB0aGUgaW5wdXQgY3JlYXRlIGEgbmV3IG9uZS4KICAgIGlmIChhdmFpbE91dEFmdGVyID09PSAwIHx8IHNlbGYuX29mZnNldCA+PSBzZWxmLl9jaHVua1NpemUpIHsKICAgICAgYXZhaWxPdXRCZWZvcmUgPSBzZWxmLl9jaHVua1NpemU7CiAgICAgIHNlbGYuX29mZnNldCA9IDA7CiAgICAgIHNlbGYuX2J1ZmZlciA9IEJ1ZmZlci5hbGxvY1Vuc2FmZShzZWxmLl9jaHVua1NpemUpOwogICAgfQoKICAgIGlmIChhdmFpbE91dEFmdGVyID09PSAwKSB7CiAgICAgIC8vIE5vdCBhY3R1YWxseSBkb25lLiAgTmVlZCB0byByZXByb2Nlc3MuCiAgICAgIC8vIEFsc28sIHVwZGF0ZSB0aGUgYXZhaWxJbkJlZm9yZSB0byB0aGUgYXZhaWxJbkFmdGVyIHZhbHVlLAogICAgICAvLyBzbyB0aGF0IGlmIHdlIGhhdmUgdG8gaGl0IGl0IGEgdGhpcmQgKGZvdXJ0aCwgZXRjLikgdGltZSwKICAgICAgLy8gaXQnbGwgaGF2ZSB0aGUgY29ycmVjdCBieXRlIGNvdW50cy4KICAgICAgaW5PZmYgKz0gYXZhaWxJbkJlZm9yZSAtIGF2YWlsSW5BZnRlcjsKICAgICAgYXZhaWxJbkJlZm9yZSA9IGF2YWlsSW5BZnRlcjsKCiAgICAgIGlmICghYXN5bmMpIHJldHVybiB0cnVlOwoKICAgICAgdmFyIG5ld1JlcSA9IHNlbGYuX2hhbmRsZS53cml0ZShmbHVzaEZsYWcsIGNodW5rLCBpbk9mZiwgYXZhaWxJbkJlZm9yZSwgc2VsZi5fYnVmZmVyLCBzZWxmLl9vZmZzZXQsIHNlbGYuX2NodW5rU2l6ZSk7CiAgICAgIG5ld1JlcS5jYWxsYmFjayA9IGNhbGxiYWNrOyAvLyB0aGlzIHNhbWUgZnVuY3Rpb24KICAgICAgbmV3UmVxLmJ1ZmZlciA9IGNodW5rOwogICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCFhc3luYykgcmV0dXJuIGZhbHNlOwoKICAgIC8vIGZpbmlzaGVkIHdpdGggdGhlIGNodW5rLgogICAgY2IoKTsKICB9Cn07Cgp1dGlsLmluaGVyaXRzKERlZmxhdGUsIFpsaWIpOwp1dGlsLmluaGVyaXRzKEluZmxhdGUsIFpsaWIpOwp1dGlsLmluaGVyaXRzKEd6aXAsIFpsaWIpOwp1dGlsLmluaGVyaXRzKEd1bnppcCwgWmxpYik7CnV0aWwuaW5oZXJpdHMoRGVmbGF0ZVJhdywgWmxpYik7CnV0aWwuaW5oZXJpdHMoSW5mbGF0ZVJhdywgWmxpYik7CnV0aWwuaW5oZXJpdHMoVW56aXAsIFpsaWIpOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxMSkpKQoKLyoqKi8gfSksCi8qIDQ5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihnbG9iYWwsIHByb2Nlc3MpIHsvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy4KLy8KLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQovLyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdAovLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUKLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci8vCi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgovLwovLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwovLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4KLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgovLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCgp2YXIgZm9ybWF0UmVnRXhwID0gLyVbc2RqJV0vZzsKZXhwb3J0cy5mb3JtYXQgPSBmdW5jdGlvbihmKSB7CiAgaWYgKCFpc1N0cmluZyhmKSkgewogICAgdmFyIG9iamVjdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIG9iamVjdHMucHVzaChpbnNwZWN0KGFyZ3VtZW50c1tpXSkpOwogICAgfQogICAgcmV0dXJuIG9iamVjdHMuam9pbignICcpOwogIH0KCiAgdmFyIGkgPSAxOwogIHZhciBhcmdzID0gYXJndW1lbnRzOwogIHZhciBsZW4gPSBhcmdzLmxlbmd0aDsKICB2YXIgc3RyID0gU3RyaW5nKGYpLnJlcGxhY2UoZm9ybWF0UmVnRXhwLCBmdW5jdGlvbih4KSB7CiAgICBpZiAoeCA9PT0gJyUlJykgcmV0dXJuICclJzsKICAgIGlmIChpID49IGxlbikgcmV0dXJuIHg7CiAgICBzd2l0Y2ggKHgpIHsKICAgICAgY2FzZSAnJXMnOiByZXR1cm4gU3RyaW5nKGFyZ3NbaSsrXSk7CiAgICAgIGNhc2UgJyVkJzogcmV0dXJuIE51bWJlcihhcmdzW2krK10pOwogICAgICBjYXNlICclaic6CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShhcmdzW2krK10pOwogICAgICAgIH0gY2F0Y2ggKF8pIHsKICAgICAgICAgIHJldHVybiAnW0NpcmN1bGFyXSc7CiAgICAgICAgfQogICAgICBkZWZhdWx0OgogICAgICAgIHJldHVybiB4OwogICAgfQogIH0pOwogIGZvciAodmFyIHggPSBhcmdzW2ldOyBpIDwgbGVuOyB4ID0gYXJnc1srK2ldKSB7CiAgICBpZiAoaXNOdWxsKHgpIHx8ICFpc09iamVjdCh4KSkgewogICAgICBzdHIgKz0gJyAnICsgeDsKICAgIH0gZWxzZSB7CiAgICAgIHN0ciArPSAnICcgKyBpbnNwZWN0KHgpOwogICAgfQogIH0KICByZXR1cm4gc3RyOwp9OwoKCi8vIE1hcmsgdGhhdCBhIG1ldGhvZCBzaG91bGQgbm90IGJlIHVzZWQuCi8vIFJldHVybnMgYSBtb2RpZmllZCBmdW5jdGlvbiB3aGljaCB3YXJucyBvbmNlIGJ5IGRlZmF1bHQuCi8vIElmIC0tbm8tZGVwcmVjYXRpb24gaXMgc2V0LCB0aGVuIGl0IGlzIGEgbm8tb3AuCmV4cG9ydHMuZGVwcmVjYXRlID0gZnVuY3Rpb24oZm4sIG1zZykgewogIC8vIEFsbG93IGZvciBkZXByZWNhdGluZyB0aGluZ3MgaW4gdGhlIHByb2Nlc3Mgb2Ygc3RhcnRpbmcgdXAuCiAgaWYgKGlzVW5kZWZpbmVkKGdsb2JhbC5wcm9jZXNzKSkgewogICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZXhwb3J0cy5kZXByZWNhdGUoZm4sIG1zZykuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIH07CiAgfQoKICBpZiAocHJvY2Vzcy5ub0RlcHJlY2F0aW9uID09PSB0cnVlKSB7CiAgICByZXR1cm4gZm47CiAgfQoKICB2YXIgd2FybmVkID0gZmFsc2U7CiAgZnVuY3Rpb24gZGVwcmVjYXRlZCgpIHsKICAgIGlmICghd2FybmVkKSB7CiAgICAgIGlmIChwcm9jZXNzLnRocm93RGVwcmVjYXRpb24pIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKICAgICAgfSBlbHNlIGlmIChwcm9jZXNzLnRyYWNlRGVwcmVjYXRpb24pIHsKICAgICAgICBjb25zb2xlLnRyYWNlKG1zZyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc29sZS5lcnJvcihtc2cpOwogICAgICB9CiAgICAgIHdhcm5lZCA9IHRydWU7CiAgICB9CiAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICB9CgogIHJldHVybiBkZXByZWNhdGVkOwp9OwoKCnZhciBkZWJ1Z3MgPSB7fTsKdmFyIGRlYnVnRW52aXJvbjsKZXhwb3J0cy5kZWJ1Z2xvZyA9IGZ1bmN0aW9uKHNldCkgewogIGlmIChpc1VuZGVmaW5lZChkZWJ1Z0Vudmlyb24pKQogICAgZGVidWdFbnZpcm9uID0gcHJvY2Vzcy5lbnYuTk9ERV9ERUJVRyB8fCAnJzsKICBzZXQgPSBzZXQudG9VcHBlckNhc2UoKTsKICBpZiAoIWRlYnVnc1tzZXRdKSB7CiAgICBpZiAobmV3IFJlZ0V4cCgnXFxiJyArIHNldCArICdcXGInLCAnaScpLnRlc3QoZGVidWdFbnZpcm9uKSkgewogICAgICB2YXIgcGlkID0gcHJvY2Vzcy5waWQ7CiAgICAgIGRlYnVnc1tzZXRdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG1zZyA9IGV4cG9ydHMuZm9ybWF0LmFwcGx5KGV4cG9ydHMsIGFyZ3VtZW50cyk7CiAgICAgICAgY29uc29sZS5lcnJvcignJXMgJWQ6ICVzJywgc2V0LCBwaWQsIG1zZyk7CiAgICAgIH07CiAgICB9IGVsc2UgewogICAgICBkZWJ1Z3Nbc2V0XSA9IGZ1bmN0aW9uKCkge307CiAgICB9CiAgfQogIHJldHVybiBkZWJ1Z3Nbc2V0XTsKfTsKCgovKioKICogRWNob3MgdGhlIHZhbHVlIG9mIGEgdmFsdWUuIFRyeXMgdG8gcHJpbnQgdGhlIHZhbHVlIG91dAogKiBpbiB0aGUgYmVzdCB3YXkgcG9zc2libGUgZ2l2ZW4gdGhlIGRpZmZlcmVudCB0eXBlcy4KICoKICogQHBhcmFtIHtPYmplY3R9IG9iaiBUaGUgb2JqZWN0IHRvIHByaW50IG91dC4KICogQHBhcmFtIHtPYmplY3R9IG9wdHMgT3B0aW9uYWwgb3B0aW9ucyBvYmplY3QgdGhhdCBhbHRlcnMgdGhlIG91dHB1dC4KICovCi8qIGxlZ2FjeTogb2JqLCBzaG93SGlkZGVuLCBkZXB0aCwgY29sb3JzKi8KZnVuY3Rpb24gaW5zcGVjdChvYmosIG9wdHMpIHsKICAvLyBkZWZhdWx0IG9wdGlvbnMKICB2YXIgY3R4ID0gewogICAgc2VlbjogW10sCiAgICBzdHlsaXplOiBzdHlsaXplTm9Db2xvcgogIH07CiAgLy8gbGVnYWN5Li4uCiAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPj0gMykgY3R4LmRlcHRoID0gYXJndW1lbnRzWzJdOwogIGlmIChhcmd1bWVudHMubGVuZ3RoID49IDQpIGN0eC5jb2xvcnMgPSBhcmd1bWVudHNbM107CiAgaWYgKGlzQm9vbGVhbihvcHRzKSkgewogICAgLy8gbGVnYWN5Li4uCiAgICBjdHguc2hvd0hpZGRlbiA9IG9wdHM7CiAgfSBlbHNlIGlmIChvcHRzKSB7CiAgICAvLyBnb3QgYW4gIm9wdGlvbnMiIG9iamVjdAogICAgZXhwb3J0cy5fZXh0ZW5kKGN0eCwgb3B0cyk7CiAgfQogIC8vIHNldCBkZWZhdWx0IG9wdGlvbnMKICBpZiAoaXNVbmRlZmluZWQoY3R4LnNob3dIaWRkZW4pKSBjdHguc2hvd0hpZGRlbiA9IGZhbHNlOwogIGlmIChpc1VuZGVmaW5lZChjdHguZGVwdGgpKSBjdHguZGVwdGggPSAyOwogIGlmIChpc1VuZGVmaW5lZChjdHguY29sb3JzKSkgY3R4LmNvbG9ycyA9IGZhbHNlOwogIGlmIChpc1VuZGVmaW5lZChjdHguY3VzdG9tSW5zcGVjdCkpIGN0eC5jdXN0b21JbnNwZWN0ID0gdHJ1ZTsKICBpZiAoY3R4LmNvbG9ycykgY3R4LnN0eWxpemUgPSBzdHlsaXplV2l0aENvbG9yOwogIHJldHVybiBmb3JtYXRWYWx1ZShjdHgsIG9iaiwgY3R4LmRlcHRoKTsKfQpleHBvcnRzLmluc3BlY3QgPSBpbnNwZWN0OwoKCi8vIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQU5TSV9lc2NhcGVfY29kZSNncmFwaGljcwppbnNwZWN0LmNvbG9ycyA9IHsKICAnYm9sZCcgOiBbMSwgMjJdLAogICdpdGFsaWMnIDogWzMsIDIzXSwKICAndW5kZXJsaW5lJyA6IFs0LCAyNF0sCiAgJ2ludmVyc2UnIDogWzcsIDI3XSwKICAnd2hpdGUnIDogWzM3LCAzOV0sCiAgJ2dyZXknIDogWzkwLCAzOV0sCiAgJ2JsYWNrJyA6IFszMCwgMzldLAogICdibHVlJyA6IFszNCwgMzldLAogICdjeWFuJyA6IFszNiwgMzldLAogICdncmVlbicgOiBbMzIsIDM5XSwKICAnbWFnZW50YScgOiBbMzUsIDM5XSwKICAncmVkJyA6IFszMSwgMzldLAogICd5ZWxsb3cnIDogWzMzLCAzOV0KfTsKCi8vIERvbid0IHVzZSAnYmx1ZScgbm90IHZpc2libGUgb24gY21kLmV4ZQppbnNwZWN0LnN0eWxlcyA9IHsKICAnc3BlY2lhbCc6ICdjeWFuJywKICAnbnVtYmVyJzogJ3llbGxvdycsCiAgJ2Jvb2xlYW4nOiAneWVsbG93JywKICAndW5kZWZpbmVkJzogJ2dyZXknLAogICdudWxsJzogJ2JvbGQnLAogICdzdHJpbmcnOiAnZ3JlZW4nLAogICdkYXRlJzogJ21hZ2VudGEnLAogIC8vICJuYW1lIjogaW50ZW50aW9uYWxseSBub3Qgc3R5bGluZwogICdyZWdleHAnOiAncmVkJwp9OwoKCmZ1bmN0aW9uIHN0eWxpemVXaXRoQ29sb3Ioc3RyLCBzdHlsZVR5cGUpIHsKICB2YXIgc3R5bGUgPSBpbnNwZWN0LnN0eWxlc1tzdHlsZVR5cGVdOwoKICBpZiAoc3R5bGUpIHsKICAgIHJldHVybiAnXHUwMDFiWycgKyBpbnNwZWN0LmNvbG9yc1tzdHlsZV1bMF0gKyAnbScgKyBzdHIgKwogICAgICAgICAgICdcdTAwMWJbJyArIGluc3BlY3QuY29sb3JzW3N0eWxlXVsxXSArICdtJzsKICB9IGVsc2UgewogICAgcmV0dXJuIHN0cjsKICB9Cn0KCgpmdW5jdGlvbiBzdHlsaXplTm9Db2xvcihzdHIsIHN0eWxlVHlwZSkgewogIHJldHVybiBzdHI7Cn0KCgpmdW5jdGlvbiBhcnJheVRvSGFzaChhcnJheSkgewogIHZhciBoYXNoID0ge307CgogIGFycmF5LmZvckVhY2goZnVuY3Rpb24odmFsLCBpZHgpIHsKICAgIGhhc2hbdmFsXSA9IHRydWU7CiAgfSk7CgogIHJldHVybiBoYXNoOwp9CgoKZnVuY3Rpb24gZm9ybWF0VmFsdWUoY3R4LCB2YWx1ZSwgcmVjdXJzZVRpbWVzKSB7CiAgLy8gUHJvdmlkZSBhIGhvb2sgZm9yIHVzZXItc3BlY2lmaWVkIGluc3BlY3QgZnVuY3Rpb25zLgogIC8vIENoZWNrIHRoYXQgdmFsdWUgaXMgYW4gb2JqZWN0IHdpdGggYW4gaW5zcGVjdCBmdW5jdGlvbiBvbiBpdAogIGlmIChjdHguY3VzdG9tSW5zcGVjdCAmJgogICAgICB2YWx1ZSAmJgogICAgICBpc0Z1bmN0aW9uKHZhbHVlLmluc3BlY3QpICYmCiAgICAgIC8vIEZpbHRlciBvdXQgdGhlIHV0aWwgbW9kdWxlLCBpdCdzIGluc3BlY3QgZnVuY3Rpb24gaXMgc3BlY2lhbAogICAgICB2YWx1ZS5pbnNwZWN0ICE9PSBleHBvcnRzLmluc3BlY3QgJiYKICAgICAgLy8gQWxzbyBmaWx0ZXIgb3V0IGFueSBwcm90b3R5cGUgb2JqZWN0cyB1c2luZyB0aGUgY2lyY3VsYXIgY2hlY2suCiAgICAgICEodmFsdWUuY29uc3RydWN0b3IgJiYgdmFsdWUuY29uc3RydWN0b3IucHJvdG90eXBlID09PSB2YWx1ZSkpIHsKICAgIHZhciByZXQgPSB2YWx1ZS5pbnNwZWN0KHJlY3Vyc2VUaW1lcywgY3R4KTsKICAgIGlmICghaXNTdHJpbmcocmV0KSkgewogICAgICByZXQgPSBmb3JtYXRWYWx1ZShjdHgsIHJldCwgcmVjdXJzZVRpbWVzKTsKICAgIH0KICAgIHJldHVybiByZXQ7CiAgfQoKICAvLyBQcmltaXRpdmUgdHlwZXMgY2Fubm90IGhhdmUgcHJvcGVydGllcwogIHZhciBwcmltaXRpdmUgPSBmb3JtYXRQcmltaXRpdmUoY3R4LCB2YWx1ZSk7CiAgaWYgKHByaW1pdGl2ZSkgewogICAgcmV0dXJuIHByaW1pdGl2ZTsKICB9CgogIC8vIExvb2sgdXAgdGhlIGtleXMgb2YgdGhlIG9iamVjdC4KICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHZhbHVlKTsKICB2YXIgdmlzaWJsZUtleXMgPSBhcnJheVRvSGFzaChrZXlzKTsKCiAgaWYgKGN0eC5zaG93SGlkZGVuKSB7CiAgICBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmFsdWUpOwogIH0KCiAgLy8gSUUgZG9lc24ndCBtYWtlIGVycm9yIGZpZWxkcyBub24tZW51bWVyYWJsZQogIC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS9pZS9kd3c1MnNidCh2PXZzLjk0KS5hc3B4CiAgaWYgKGlzRXJyb3IodmFsdWUpCiAgICAgICYmIChrZXlzLmluZGV4T2YoJ21lc3NhZ2UnKSA+PSAwIHx8IGtleXMuaW5kZXhPZignZGVzY3JpcHRpb24nKSA+PSAwKSkgewogICAgcmV0dXJuIGZvcm1hdEVycm9yKHZhbHVlKTsKICB9CgogIC8vIFNvbWUgdHlwZSBvZiBvYmplY3Qgd2l0aG91dCBwcm9wZXJ0aWVzIGNhbiBiZSBzaG9ydGN1dHRlZC4KICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHsKICAgIGlmIChpc0Z1bmN0aW9uKHZhbHVlKSkgewogICAgICB2YXIgbmFtZSA9IHZhbHVlLm5hbWUgPyAnOiAnICsgdmFsdWUubmFtZSA6ICcnOwogICAgICByZXR1cm4gY3R4LnN0eWxpemUoJ1tGdW5jdGlvbicgKyBuYW1lICsgJ10nLCAnc3BlY2lhbCcpOwogICAgfQogICAgaWYgKGlzUmVnRXhwKHZhbHVlKSkgewogICAgICByZXR1cm4gY3R4LnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKSwgJ3JlZ2V4cCcpOwogICAgfQogICAgaWYgKGlzRGF0ZSh2YWx1ZSkpIHsKICAgICAgcmV0dXJuIGN0eC5zdHlsaXplKERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpLCAnZGF0ZScpOwogICAgfQogICAgaWYgKGlzRXJyb3IodmFsdWUpKSB7CiAgICAgIHJldHVybiBmb3JtYXRFcnJvcih2YWx1ZSk7CiAgICB9CiAgfQoKICB2YXIgYmFzZSA9ICcnLCBhcnJheSA9IGZhbHNlLCBicmFjZXMgPSBbJ3snLCAnfSddOwoKICAvLyBNYWtlIEFycmF5IHNheSB0aGF0IHRoZXkgYXJlIEFycmF5CiAgaWYgKGlzQXJyYXkodmFsdWUpKSB7CiAgICBhcnJheSA9IHRydWU7CiAgICBicmFjZXMgPSBbJ1snLCAnXSddOwogIH0KCiAgLy8gTWFrZSBmdW5jdGlvbnMgc2F5IHRoYXQgdGhleSBhcmUgZnVuY3Rpb25zCiAgaWYgKGlzRnVuY3Rpb24odmFsdWUpKSB7CiAgICB2YXIgbiA9IHZhbHVlLm5hbWUgPyAnOiAnICsgdmFsdWUubmFtZSA6ICcnOwogICAgYmFzZSA9ICcgW0Z1bmN0aW9uJyArIG4gKyAnXSc7CiAgfQoKICAvLyBNYWtlIFJlZ0V4cHMgc2F5IHRoYXQgdGhleSBhcmUgUmVnRXhwcwogIGlmIChpc1JlZ0V4cCh2YWx1ZSkpIHsKICAgIGJhc2UgPSAnICcgKyBSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpOwogIH0KCiAgLy8gTWFrZSBkYXRlcyB3aXRoIHByb3BlcnRpZXMgZmlyc3Qgc2F5IHRoZSBkYXRlCiAgaWYgKGlzRGF0ZSh2YWx1ZSkpIHsKICAgIGJhc2UgPSAnICcgKyBEYXRlLnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKHZhbHVlKTsKICB9CgogIC8vIE1ha2UgZXJyb3Igd2l0aCBtZXNzYWdlIGZpcnN0IHNheSB0aGUgZXJyb3IKICBpZiAoaXNFcnJvcih2YWx1ZSkpIHsKICAgIGJhc2UgPSAnICcgKyBmb3JtYXRFcnJvcih2YWx1ZSk7CiAgfQoKICBpZiAoa2V5cy5sZW5ndGggPT09IDAgJiYgKCFhcnJheSB8fCB2YWx1ZS5sZW5ndGggPT0gMCkpIHsKICAgIHJldHVybiBicmFjZXNbMF0gKyBiYXNlICsgYnJhY2VzWzFdOwogIH0KCiAgaWYgKHJlY3Vyc2VUaW1lcyA8IDApIHsKICAgIGlmIChpc1JlZ0V4cCh2YWx1ZSkpIHsKICAgICAgcmV0dXJuIGN0eC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSksICdyZWdleHAnKTsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBjdHguc3R5bGl6ZSgnW09iamVjdF0nLCAnc3BlY2lhbCcpOwogICAgfQogIH0KCiAgY3R4LnNlZW4ucHVzaCh2YWx1ZSk7CgogIHZhciBvdXRwdXQ7CiAgaWYgKGFycmF5KSB7CiAgICBvdXRwdXQgPSBmb3JtYXRBcnJheShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXlzKTsKICB9IGVsc2UgewogICAgb3V0cHV0ID0ga2V5cy5tYXAoZnVuY3Rpb24oa2V5KSB7CiAgICAgIHJldHVybiBmb3JtYXRQcm9wZXJ0eShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXksIGFycmF5KTsKICAgIH0pOwogIH0KCiAgY3R4LnNlZW4ucG9wKCk7CgogIHJldHVybiByZWR1Y2VUb1NpbmdsZVN0cmluZyhvdXRwdXQsIGJhc2UsIGJyYWNlcyk7Cn0KCgpmdW5jdGlvbiBmb3JtYXRQcmltaXRpdmUoY3R4LCB2YWx1ZSkgewogIGlmIChpc1VuZGVmaW5lZCh2YWx1ZSkpCiAgICByZXR1cm4gY3R4LnN0eWxpemUoJ3VuZGVmaW5lZCcsICd1bmRlZmluZWQnKTsKICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7CiAgICB2YXIgc2ltcGxlID0gJ1wnJyArIEpTT04uc3RyaW5naWZ5KHZhbHVlKS5yZXBsYWNlKC9eInwiJC9nLCAnJykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLycvZywgIlxcJyIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXCIvZywgJyInKSArICdcJyc7CiAgICByZXR1cm4gY3R4LnN0eWxpemUoc2ltcGxlLCAnc3RyaW5nJyk7CiAgfQogIGlmIChpc051bWJlcih2YWx1ZSkpCiAgICByZXR1cm4gY3R4LnN0eWxpemUoJycgKyB2YWx1ZSwgJ251bWJlcicpOwogIGlmIChpc0Jvb2xlYW4odmFsdWUpKQogICAgcmV0dXJuIGN0eC5zdHlsaXplKCcnICsgdmFsdWUsICdib29sZWFuJyk7CiAgLy8gRm9yIHNvbWUgcmVhc29uIHR5cGVvZiBudWxsIGlzICJvYmplY3QiLCBzbyBzcGVjaWFsIGNhc2UgaGVyZS4KICBpZiAoaXNOdWxsKHZhbHVlKSkKICAgIHJldHVybiBjdHguc3R5bGl6ZSgnbnVsbCcsICdudWxsJyk7Cn0KCgpmdW5jdGlvbiBmb3JtYXRFcnJvcih2YWx1ZSkgewogIHJldHVybiAnWycgKyBFcnJvci5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgKyAnXSc7Cn0KCgpmdW5jdGlvbiBmb3JtYXRBcnJheShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLCBrZXlzKSB7CiAgdmFyIG91dHB1dCA9IFtdOwogIGZvciAodmFyIGkgPSAwLCBsID0gdmFsdWUubGVuZ3RoOyBpIDwgbDsgKytpKSB7CiAgICBpZiAoaGFzT3duUHJvcGVydHkodmFsdWUsIFN0cmluZyhpKSkpIHsKICAgICAgb3V0cHV0LnB1c2goZm9ybWF0UHJvcGVydHkoY3R4LCB2YWx1ZSwgcmVjdXJzZVRpbWVzLCB2aXNpYmxlS2V5cywKICAgICAgICAgIFN0cmluZyhpKSwgdHJ1ZSkpOwogICAgfSBlbHNlIHsKICAgICAgb3V0cHV0LnB1c2goJycpOwogICAgfQogIH0KICBrZXlzLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7CiAgICBpZiAoIWtleS5tYXRjaCgvXlxkKyQvKSkgewogICAgICBvdXRwdXQucHVzaChmb3JtYXRQcm9wZXJ0eShjdHgsIHZhbHVlLCByZWN1cnNlVGltZXMsIHZpc2libGVLZXlzLAogICAgICAgICAga2V5LCB0cnVlKSk7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG91dHB1dDsKfQoKCmZ1bmN0aW9uIGZvcm1hdFByb3BlcnR5KGN0eCwgdmFsdWUsIHJlY3Vyc2VUaW1lcywgdmlzaWJsZUtleXMsIGtleSwgYXJyYXkpIHsKICB2YXIgbmFtZSwgc3RyLCBkZXNjOwogIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlLCBrZXkpIHx8IHsgdmFsdWU6IHZhbHVlW2tleV0gfTsKICBpZiAoZGVzYy5nZXQpIHsKICAgIGlmIChkZXNjLnNldCkgewogICAgICBzdHIgPSBjdHguc3R5bGl6ZSgnW0dldHRlci9TZXR0ZXJdJywgJ3NwZWNpYWwnKTsKICAgIH0gZWxzZSB7CiAgICAgIHN0ciA9IGN0eC5zdHlsaXplKCdbR2V0dGVyXScsICdzcGVjaWFsJyk7CiAgICB9CiAgfSBlbHNlIHsKICAgIGlmIChkZXNjLnNldCkgewogICAgICBzdHIgPSBjdHguc3R5bGl6ZSgnW1NldHRlcl0nLCAnc3BlY2lhbCcpOwogICAgfQogIH0KICBpZiAoIWhhc093blByb3BlcnR5KHZpc2libGVLZXlzLCBrZXkpKSB7CiAgICBuYW1lID0gJ1snICsga2V5ICsgJ10nOwogIH0KICBpZiAoIXN0cikgewogICAgaWYgKGN0eC5zZWVuLmluZGV4T2YoZGVzYy52YWx1ZSkgPCAwKSB7CiAgICAgIGlmIChpc051bGwocmVjdXJzZVRpbWVzKSkgewogICAgICAgIHN0ciA9IGZvcm1hdFZhbHVlKGN0eCwgZGVzYy52YWx1ZSwgbnVsbCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3RyID0gZm9ybWF0VmFsdWUoY3R4LCBkZXNjLnZhbHVlLCByZWN1cnNlVGltZXMgLSAxKTsKICAgICAgfQogICAgICBpZiAoc3RyLmluZGV4T2YoJ1xuJykgPiAtMSkgewogICAgICAgIGlmIChhcnJheSkgewogICAgICAgICAgc3RyID0gc3RyLnNwbGl0KCdcbicpLm1hcChmdW5jdGlvbihsaW5lKSB7CiAgICAgICAgICAgIHJldHVybiAnICAnICsgbGluZTsKICAgICAgICAgIH0pLmpvaW4oJ1xuJykuc3Vic3RyKDIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzdHIgPSAnXG4nICsgc3RyLnNwbGl0KCdcbicpLm1hcChmdW5jdGlvbihsaW5lKSB7CiAgICAgICAgICAgIHJldHVybiAnICAgJyArIGxpbmU7CiAgICAgICAgICB9KS5qb2luKCdcbicpOwogICAgICAgIH0KICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgc3RyID0gY3R4LnN0eWxpemUoJ1tDaXJjdWxhcl0nLCAnc3BlY2lhbCcpOwogICAgfQogIH0KICBpZiAoaXNVbmRlZmluZWQobmFtZSkpIHsKICAgIGlmIChhcnJheSAmJiBrZXkubWF0Y2goL15cZCskLykpIHsKICAgICAgcmV0dXJuIHN0cjsKICAgIH0KICAgIG5hbWUgPSBKU09OLnN0cmluZ2lmeSgnJyArIGtleSk7CiAgICBpZiAobmFtZS5tYXRjaCgvXiIoW2EtekEtWl9dW2EtekEtWl8wLTldKikiJC8pKSB7CiAgICAgIG5hbWUgPSBuYW1lLnN1YnN0cigxLCBuYW1lLmxlbmd0aCAtIDIpOwogICAgICBuYW1lID0gY3R4LnN0eWxpemUobmFtZSwgJ25hbWUnKTsKICAgIH0gZWxzZSB7CiAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoLycvZywgIlxcJyIpCiAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcIi9nLCAnIicpCiAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLyheInwiJCkvZywgIiciKTsKICAgICAgbmFtZSA9IGN0eC5zdHlsaXplKG5hbWUsICdzdHJpbmcnKTsKICAgIH0KICB9CgogIHJldHVybiBuYW1lICsgJzogJyArIHN0cjsKfQoKCmZ1bmN0aW9uIHJlZHVjZVRvU2luZ2xlU3RyaW5nKG91dHB1dCwgYmFzZSwgYnJhY2VzKSB7CiAgdmFyIG51bUxpbmVzRXN0ID0gMDsKICB2YXIgbGVuZ3RoID0gb3V0cHV0LnJlZHVjZShmdW5jdGlvbihwcmV2LCBjdXIpIHsKICAgIG51bUxpbmVzRXN0Kys7CiAgICBpZiAoY3VyLmluZGV4T2YoJ1xuJykgPj0gMCkgbnVtTGluZXNFc3QrKzsKICAgIHJldHVybiBwcmV2ICsgY3VyLnJlcGxhY2UoL1x1MDAxYlxbXGRcZD9tL2csICcnKS5sZW5ndGggKyAxOwogIH0sIDApOwoKICBpZiAobGVuZ3RoID4gNjApIHsKICAgIHJldHVybiBicmFjZXNbMF0gKwogICAgICAgICAgIChiYXNlID09PSAnJyA/ICcnIDogYmFzZSArICdcbiAnKSArCiAgICAgICAgICAgJyAnICsKICAgICAgICAgICBvdXRwdXQuam9pbignLFxuICAnKSArCiAgICAgICAgICAgJyAnICsKICAgICAgICAgICBicmFjZXNbMV07CiAgfQoKICByZXR1cm4gYnJhY2VzWzBdICsgYmFzZSArICcgJyArIG91dHB1dC5qb2luKCcsICcpICsgJyAnICsgYnJhY2VzWzFdOwp9CgoKLy8gTk9URTogVGhlc2UgdHlwZSBjaGVja2luZyBmdW5jdGlvbnMgaW50ZW50aW9uYWxseSBkb24ndCB1c2UgYGluc3RhbmNlb2ZgCi8vIGJlY2F1c2UgaXQgaXMgZnJhZ2lsZSBhbmQgY2FuIGJlIGVhc2lseSBmYWtlZCB3aXRoIGBPYmplY3QuY3JlYXRlKClgLgpmdW5jdGlvbiBpc0FycmF5KGFyKSB7CiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYXIpOwp9CmV4cG9ydHMuaXNBcnJheSA9IGlzQXJyYXk7CgpmdW5jdGlvbiBpc0Jvb2xlYW4oYXJnKSB7CiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdib29sZWFuJzsKfQpleHBvcnRzLmlzQm9vbGVhbiA9IGlzQm9vbGVhbjsKCmZ1bmN0aW9uIGlzTnVsbChhcmcpIHsKICByZXR1cm4gYXJnID09PSBudWxsOwp9CmV4cG9ydHMuaXNOdWxsID0gaXNOdWxsOwoKZnVuY3Rpb24gaXNOdWxsT3JVbmRlZmluZWQoYXJnKSB7CiAgcmV0dXJuIGFyZyA9PSBudWxsOwp9CmV4cG9ydHMuaXNOdWxsT3JVbmRlZmluZWQgPSBpc051bGxPclVuZGVmaW5lZDsKCmZ1bmN0aW9uIGlzTnVtYmVyKGFyZykgewogIHJldHVybiB0eXBlb2YgYXJnID09PSAnbnVtYmVyJzsKfQpleHBvcnRzLmlzTnVtYmVyID0gaXNOdW1iZXI7CgpmdW5jdGlvbiBpc1N0cmluZyhhcmcpIHsKICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ3N0cmluZyc7Cn0KZXhwb3J0cy5pc1N0cmluZyA9IGlzU3RyaW5nOwoKZnVuY3Rpb24gaXNTeW1ib2woYXJnKSB7CiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnOwp9CmV4cG9ydHMuaXNTeW1ib2wgPSBpc1N5bWJvbDsKCmZ1bmN0aW9uIGlzVW5kZWZpbmVkKGFyZykgewogIHJldHVybiBhcmcgPT09IHZvaWQgMDsKfQpleHBvcnRzLmlzVW5kZWZpbmVkID0gaXNVbmRlZmluZWQ7CgpmdW5jdGlvbiBpc1JlZ0V4cChyZSkgewogIHJldHVybiBpc09iamVjdChyZSkgJiYgb2JqZWN0VG9TdHJpbmcocmUpID09PSAnW29iamVjdCBSZWdFeHBdJzsKfQpleHBvcnRzLmlzUmVnRXhwID0gaXNSZWdFeHA7CgpmdW5jdGlvbiBpc09iamVjdChhcmcpIHsKICByZXR1cm4gdHlwZW9mIGFyZyA9PT0gJ29iamVjdCcgJiYgYXJnICE9PSBudWxsOwp9CmV4cG9ydHMuaXNPYmplY3QgPSBpc09iamVjdDsKCmZ1bmN0aW9uIGlzRGF0ZShkKSB7CiAgcmV0dXJuIGlzT2JqZWN0KGQpICYmIG9iamVjdFRvU3RyaW5nKGQpID09PSAnW29iamVjdCBEYXRlXSc7Cn0KZXhwb3J0cy5pc0RhdGUgPSBpc0RhdGU7CgpmdW5jdGlvbiBpc0Vycm9yKGUpIHsKICByZXR1cm4gaXNPYmplY3QoZSkgJiYKICAgICAgKG9iamVjdFRvU3RyaW5nKGUpID09PSAnW29iamVjdCBFcnJvcl0nIHx8IGUgaW5zdGFuY2VvZiBFcnJvcik7Cn0KZXhwb3J0cy5pc0Vycm9yID0gaXNFcnJvcjsKCmZ1bmN0aW9uIGlzRnVuY3Rpb24oYXJnKSB7CiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdmdW5jdGlvbic7Cn0KZXhwb3J0cy5pc0Z1bmN0aW9uID0gaXNGdW5jdGlvbjsKCmZ1bmN0aW9uIGlzUHJpbWl0aXZlKGFyZykgewogIHJldHVybiBhcmcgPT09IG51bGwgfHwKICAgICAgICAgdHlwZW9mIGFyZyA9PT0gJ2Jvb2xlYW4nIHx8CiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdudW1iZXInIHx8CiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdzdHJpbmcnIHx8CiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICdzeW1ib2wnIHx8ICAvLyBFUzYgc3ltYm9sCiAgICAgICAgIHR5cGVvZiBhcmcgPT09ICd1bmRlZmluZWQnOwp9CmV4cG9ydHMuaXNQcmltaXRpdmUgPSBpc1ByaW1pdGl2ZTsKCmV4cG9ydHMuaXNCdWZmZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1MSk7CgpmdW5jdGlvbiBvYmplY3RUb1N0cmluZyhvKSB7CiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKTsKfQoKCmZ1bmN0aW9uIHBhZChuKSB7CiAgcmV0dXJuIG4gPCAxMCA/ICcwJyArIG4udG9TdHJpbmcoMTApIDogbi50b1N0cmluZygxMCk7Cn0KCgp2YXIgbW9udGhzID0gWydKYW4nLCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5JywgJ0p1bicsICdKdWwnLCAnQXVnJywgJ1NlcCcsCiAgICAgICAgICAgICAgJ09jdCcsICdOb3YnLCAnRGVjJ107CgovLyAyNiBGZWIgMTY6MTk6MzQKZnVuY3Rpb24gdGltZXN0YW1wKCkgewogIHZhciBkID0gbmV3IERhdGUoKTsKICB2YXIgdGltZSA9IFtwYWQoZC5nZXRIb3VycygpKSwKICAgICAgICAgICAgICBwYWQoZC5nZXRNaW51dGVzKCkpLAogICAgICAgICAgICAgIHBhZChkLmdldFNlY29uZHMoKSldLmpvaW4oJzonKTsKICByZXR1cm4gW2QuZ2V0RGF0ZSgpLCBtb250aHNbZC5nZXRNb250aCgpXSwgdGltZV0uam9pbignICcpOwp9CgoKLy8gbG9nIGlzIGp1c3QgYSB0aGluIHdyYXBwZXIgdG8gY29uc29sZS5sb2cgdGhhdCBwcmVwZW5kcyBhIHRpbWVzdGFtcApleHBvcnRzLmxvZyA9IGZ1bmN0aW9uKCkgewogIGNvbnNvbGUubG9nKCclcyAtICVzJywgdGltZXN0YW1wKCksIGV4cG9ydHMuZm9ybWF0LmFwcGx5KGV4cG9ydHMsIGFyZ3VtZW50cykpOwp9OwoKCi8qKgogKiBJbmhlcml0IHRoZSBwcm90b3R5cGUgbWV0aG9kcyBmcm9tIG9uZSBjb25zdHJ1Y3RvciBpbnRvIGFub3RoZXIuCiAqCiAqIFRoZSBGdW5jdGlvbi5wcm90b3R5cGUuaW5oZXJpdHMgZnJvbSBsYW5nLmpzIHJld3JpdHRlbiBhcyBhIHN0YW5kYWxvbmUKICogZnVuY3Rpb24gKG5vdCBvbiBGdW5jdGlvbi5wcm90b3R5cGUpLiBOT1RFOiBJZiB0aGlzIGZpbGUgaXMgdG8gYmUgbG9hZGVkCiAqIGR1cmluZyBib290c3RyYXBwaW5nIHRoaXMgZnVuY3Rpb24gbmVlZHMgdG8gYmUgcmV3cml0dGVuIHVzaW5nIHNvbWUgbmF0aXZlCiAqIGZ1bmN0aW9ucyBhcyBwcm90b3R5cGUgc2V0dXAgdXNpbmcgbm9ybWFsIEphdmFTY3JpcHQgZG9lcyBub3Qgd29yayBhcwogKiBleHBlY3RlZCBkdXJpbmcgYm9vdHN0cmFwcGluZyAoc2VlIG1pcnJvci5qcyBpbiByMTE0OTAzKS4KICoKICogQHBhcmFtIHtmdW5jdGlvbn0gY3RvciBDb25zdHJ1Y3RvciBmdW5jdGlvbiB3aGljaCBuZWVkcyB0byBpbmhlcml0IHRoZQogKiAgICAgcHJvdG90eXBlLgogKiBAcGFyYW0ge2Z1bmN0aW9ufSBzdXBlckN0b3IgQ29uc3RydWN0b3IgZnVuY3Rpb24gdG8gaW5oZXJpdCBwcm90b3R5cGUgZnJvbS4KICovCmV4cG9ydHMuaW5oZXJpdHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1Mik7CgpleHBvcnRzLl9leHRlbmQgPSBmdW5jdGlvbihvcmlnaW4sIGFkZCkgewogIC8vIERvbid0IGRvIGFueXRoaW5nIGlmIGFkZCBpc24ndCBhbiBvYmplY3QKICBpZiAoIWFkZCB8fCAhaXNPYmplY3QoYWRkKSkgcmV0dXJuIG9yaWdpbjsKCiAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhhZGQpOwogIHZhciBpID0ga2V5cy5sZW5ndGg7CiAgd2hpbGUgKGktLSkgewogICAgb3JpZ2luW2tleXNbaV1dID0gYWRkW2tleXNbaV1dOwogIH0KICByZXR1cm4gb3JpZ2luOwp9OwoKZnVuY3Rpb24gaGFzT3duUHJvcGVydHkob2JqLCBwcm9wKSB7CiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApOwp9CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyg3KSwgX193ZWJwYWNrX3JlcXVpcmVfXygxMSkpKQoKLyoqKi8gfSksCi8qIDUwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihCdWZmZXIpIHsvLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgooZnVuY3Rpb24oKSB7CiAgdmFyIEVtYmVkZGVkRm9udCwgUERGRm9udCwgU3RhbmRhcmRGb250LCBmb250a2l0OwoKICBmb250a2l0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNjcpOwoKICBQREZGb250ID0gKGZ1bmN0aW9uKCkgewogICAgUERGRm9udC5vcGVuID0gZnVuY3Rpb24oZG9jdW1lbnQsIHNyYywgZmFtaWx5LCBpZCkgewogICAgICB2YXIgZm9udDsKICAgICAgaWYgKHR5cGVvZiBzcmMgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgaWYgKFN0YW5kYXJkRm9udC5pc1N0YW5kYXJkRm9udChzcmMpKSB7CiAgICAgICAgICByZXR1cm4gbmV3IFN0YW5kYXJkRm9udChkb2N1bWVudCwgc3JjLCBpZCk7CiAgICAgICAgfQogICAgICAgIGZvbnQgPSBmb250a2l0Lm9wZW5TeW5jKHNyYywgZmFtaWx5KTsKICAgICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIoc3JjKSkgewogICAgICAgIGZvbnQgPSBmb250a2l0LmNyZWF0ZShzcmMsIGZhbWlseSk7CiAgICAgIH0gZWxzZSBpZiAoc3JjIGluc3RhbmNlb2YgVWludDhBcnJheSkgewogICAgICAgIGZvbnQgPSBmb250a2l0LmNyZWF0ZShuZXcgQnVmZmVyKHNyYyksIGZhbWlseSk7CiAgICAgIH0gZWxzZSBpZiAoc3JjIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHsKICAgICAgICBmb250ID0gZm9udGtpdC5jcmVhdGUobmV3IEJ1ZmZlcihuZXcgVWludDhBcnJheShzcmMpKSwgZmFtaWx5KTsKICAgICAgfQogICAgICBpZiAoZm9udCA9PSBudWxsKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSBzdXBwb3J0ZWQgZm9udCBmb3JtYXQgb3Igc3RhbmRhcmQgUERGIGZvbnQuJyk7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyBFbWJlZGRlZEZvbnQoZG9jdW1lbnQsIGZvbnQsIGlkKTsKICAgIH07CgogICAgZnVuY3Rpb24gUERGRm9udCgpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29uc3RydWN0IGEgUERGRm9udCBkaXJlY3RseS4nKTsKICAgIH0KCiAgICBQREZGb250LnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbih0ZXh0KSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzJyk7CiAgICB9OwoKICAgIFBERkZvbnQucHJvdG90eXBlLndpZHRoT2ZTdHJpbmcgPSBmdW5jdGlvbih0ZXh0KSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzJyk7CiAgICB9OwoKICAgIFBERkZvbnQucHJvdG90eXBlLnJlZiA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5ICE9IG51bGwgPyB0aGlzLmRpY3Rpb25hcnkgOiB0aGlzLmRpY3Rpb25hcnkgPSB0aGlzLmRvY3VtZW50LnJlZigpOwogICAgfTsKCiAgICBQREZGb250LnByb3RvdHlwZS5maW5hbGl6ZSA9IGZ1bmN0aW9uKCkgewogICAgICBpZiAodGhpcy5lbWJlZGRlZCB8fCAodGhpcy5kaWN0aW9uYXJ5ID09IG51bGwpKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHRoaXMuZW1iZWQoKTsKICAgICAgcmV0dXJuIHRoaXMuZW1iZWRkZWQgPSB0cnVlOwogICAgfTsKCiAgICBQREZGb250LnByb3RvdHlwZS5lbWJlZCA9IGZ1bmN0aW9uKCkgewogICAgICB0aHJvdyBuZXcgRXJyb3IoJ011c3QgYmUgaW1wbGVtZW50ZWQgYnkgc3ViY2xhc3NlcycpOwogICAgfTsKCiAgICBQREZGb250LnByb3RvdHlwZS5saW5lSGVpZ2h0ID0gZnVuY3Rpb24oc2l6ZSwgaW5jbHVkZUdhcCkgewogICAgICB2YXIgZ2FwOwogICAgICBpZiAoaW5jbHVkZUdhcCA9PSBudWxsKSB7CiAgICAgICAgaW5jbHVkZUdhcCA9IGZhbHNlOwogICAgICB9CiAgICAgIGdhcCA9IGluY2x1ZGVHYXAgPyB0aGlzLmxpbmVHYXAgOiAwOwogICAgICByZXR1cm4gKHRoaXMuYXNjZW5kZXIgKyBnYXAgLSB0aGlzLmRlc2NlbmRlcikgLyAxMDAwICogc2l6ZTsKICAgIH07CgogICAgcmV0dXJuIFBERkZvbnQ7CgogIH0pKCk7CgogIG1vZHVsZS5leHBvcnRzID0gUERGRm9udDsKCiAgU3RhbmRhcmRGb250ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyOTIpOwoKICBFbWJlZGRlZEZvbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5NCk7Cgp9KS5jYWxsKHRoaXMpOwoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyKSkKCi8qKiovIH0pLAovKiA1MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oQnVmZmVyKSB7Ly8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIERlY29kZVN0cmVhbSwgaWNvbnY7CgogIHRyeSB7CiAgICBpY29udiA9IF9fd2VicGFja19yZXF1aXJlX18oNTIpOwogIH0gY2F0Y2ggKF9lcnJvcikge30KCiAgRGVjb2RlU3RyZWFtID0gKGZ1bmN0aW9uKCkgewogICAgdmFyIGtleTsKCiAgICBmdW5jdGlvbiBEZWNvZGVTdHJlYW0oYnVmZmVyKSB7CiAgICAgIHRoaXMuYnVmZmVyID0gYnVmZmVyOwogICAgICB0aGlzLnBvcyA9IDA7CiAgICAgIHRoaXMubGVuZ3RoID0gdGhpcy5idWZmZXIubGVuZ3RoOwogICAgfQoKICAgIERlY29kZVN0cmVhbS5UWVBFUyA9IHsKICAgICAgVUludDg6IDEsCiAgICAgIFVJbnQxNjogMiwKICAgICAgVUludDI0OiAzLAogICAgICBVSW50MzI6IDQsCiAgICAgIEludDg6IDEsCiAgICAgIEludDE2OiAyLAogICAgICBJbnQyNDogMywKICAgICAgSW50MzI6IDQsCiAgICAgIEZsb2F0OiA0LAogICAgICBEb3VibGU6IDgKICAgIH07CgogICAgZm9yIChrZXkgaW4gQnVmZmVyLnByb3RvdHlwZSkgewogICAgICBpZiAoa2V5LnNsaWNlKDAsIDQpID09PSAncmVhZCcpIHsKICAgICAgICAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICB2YXIgYnl0ZXM7CiAgICAgICAgICBieXRlcyA9IERlY29kZVN0cmVhbS5UWVBFU1trZXkucmVwbGFjZSgvcmVhZHxbQkxdRS9nLCAnJyldOwogICAgICAgICAgcmV0dXJuIERlY29kZVN0cmVhbS5wcm90b3R5cGVba2V5XSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgcmV0OwogICAgICAgICAgICByZXQgPSB0aGlzLmJ1ZmZlcltrZXldKHRoaXMucG9zKTsKICAgICAgICAgICAgdGhpcy5wb3MgKz0gYnl0ZXM7CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgICB9OwogICAgICAgIH0pKGtleSk7CiAgICAgIH0KICAgIH0KCiAgICBEZWNvZGVTdHJlYW0ucHJvdG90eXBlLnJlYWRTdHJpbmcgPSBmdW5jdGlvbihsZW5ndGgsIGVuY29kaW5nKSB7CiAgICAgIHZhciBidWYsIGJ5dGUsIGksIF9pLCBfcmVmOwogICAgICBpZiAoZW5jb2RpbmcgPT0gbnVsbCkgewogICAgICAgIGVuY29kaW5nID0gJ2FzY2lpJzsKICAgICAgfQogICAgICBzd2l0Y2ggKGVuY29kaW5nKSB7CiAgICAgICAgY2FzZSAndXRmMTZsZSc6CiAgICAgICAgY2FzZSAndWNzMic6CiAgICAgICAgY2FzZSAndXRmOCc6CiAgICAgICAgY2FzZSAnYXNjaWknOgogICAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLnRvU3RyaW5nKGVuY29kaW5nLCB0aGlzLnBvcywgdGhpcy5wb3MgKz0gbGVuZ3RoKTsKICAgICAgICBjYXNlICd1dGYxNmJlJzoKICAgICAgICAgIGJ1ZiA9IG5ldyBCdWZmZXIodGhpcy5yZWFkQnVmZmVyKGxlbmd0aCkpOwogICAgICAgICAgZm9yIChpID0gX2kgPSAwLCBfcmVmID0gYnVmLmxlbmd0aCAtIDE7IF9pIDwgX3JlZjsgaSA9IF9pICs9IDIpIHsKICAgICAgICAgICAgYnl0ZSA9IGJ1ZltpXTsKICAgICAgICAgICAgYnVmW2ldID0gYnVmW2kgKyAxXTsKICAgICAgICAgICAgYnVmW2kgKyAxXSA9IGJ5dGU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gYnVmLnRvU3RyaW5nKCd1dGYxNmxlJyk7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIGJ1ZiA9IHRoaXMucmVhZEJ1ZmZlcihsZW5ndGgpOwogICAgICAgICAgaWYgKGljb252KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgcmV0dXJuIGljb252LmRlY29kZShidWYsIGVuY29kaW5nKTsKICAgICAgICAgICAgfSBjYXRjaCAoX2Vycm9yKSB7fQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGJ1ZjsKICAgICAgfQogICAgfTsKCiAgICBEZWNvZGVTdHJlYW0ucHJvdG90eXBlLnJlYWRCdWZmZXIgPSBmdW5jdGlvbihsZW5ndGgpIHsKICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zLCB0aGlzLnBvcyArPSBsZW5ndGgpOwogICAgfTsKCiAgICBEZWNvZGVTdHJlYW0ucHJvdG90eXBlLnJlYWRVSW50MjRCRSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gKHRoaXMucmVhZFVJbnQxNkJFKCkgPDwgOCkgKyB0aGlzLnJlYWRVSW50OCgpOwogICAgfTsKCiAgICBEZWNvZGVTdHJlYW0ucHJvdG90eXBlLnJlYWRVSW50MjRMRSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy5yZWFkVUludDE2TEUoKSArICh0aGlzLnJlYWRVSW50OCgpIDw8IDE2KTsKICAgIH07CgogICAgRGVjb2RlU3RyZWFtLnByb3RvdHlwZS5yZWFkSW50MjRCRSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gKHRoaXMucmVhZEludDE2QkUoKSA8PCA4KSArIHRoaXMucmVhZFVJbnQ4KCk7CiAgICB9OwoKICAgIERlY29kZVN0cmVhbS5wcm90b3R5cGUucmVhZEludDI0TEUgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMucmVhZFVJbnQxNkxFKCkgKyAodGhpcy5yZWFkSW50OCgpIDw8IDE2KTsKICAgIH07CgogICAgcmV0dXJuIERlY29kZVN0cmVhbTsKCiAgfSkoKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBEZWNvZGVTdHJlYW07Cgp9KS5jYWxsKHRoaXMpOwoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyKSkKCi8qKiovIH0pLAovKiA1MiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Ci8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihwcm9jZXNzKSB7CgovLyBTb21lIGVudmlyb25tZW50cyBkb24ndCBoYXZlIGdsb2JhbCBCdWZmZXIgKGUuZy4gUmVhY3QgTmF0aXZlKS4KLy8gU29sdXRpb24gd291bGQgYmUgaW5zdGFsbGluZyBucG0gbW9kdWxlcyAiYnVmZmVyIiBhbmQgInN0cmVhbSIgZXhwbGljaXRseS4KdmFyIEJ1ZmZlciA9IF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyOwoKdmFyIGJvbUhhbmRsaW5nID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNzApLAogICAgaWNvbnYgPSBtb2R1bGUuZXhwb3J0czsKCi8vIEFsbCBjb2RlY3MgYW5kIGFsaWFzZXMgYXJlIGtlcHQgaGVyZSwga2V5ZWQgYnkgZW5jb2RpbmcgbmFtZS9hbGlhcy4KLy8gVGhleSBhcmUgbGF6eSBsb2FkZWQgaW4gYGljb252LmdldENvZGVjYCBmcm9tIGBlbmNvZGluZ3MvaW5kZXguanNgLgppY29udi5lbmNvZGluZ3MgPSBudWxsOwoKLy8gQ2hhcmFjdGVycyBlbWl0dGVkIGluIGNhc2Ugb2YgZXJyb3IuCmljb252LmRlZmF1bHRDaGFyVW5pY29kZSA9ICfvv70nOwppY29udi5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUgPSAnPyc7CgovLyBQdWJsaWMgQVBJLgppY29udi5lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoc3RyLCBlbmNvZGluZywgb3B0aW9ucykgewogICAgc3RyID0gIiIgKyAoc3RyIHx8ICIiKTsgLy8gRW5zdXJlIHN0cmluZy4KCiAgICB2YXIgZW5jb2RlciA9IGljb252LmdldEVuY29kZXIoZW5jb2RpbmcsIG9wdGlvbnMpOwoKICAgIHZhciByZXMgPSBlbmNvZGVyLndyaXRlKHN0cik7CiAgICB2YXIgdHJhaWwgPSBlbmNvZGVyLmVuZCgpOwogICAgCiAgICByZXR1cm4gKHRyYWlsICYmIHRyYWlsLmxlbmd0aCA+IDApID8gQnVmZmVyLmNvbmNhdChbcmVzLCB0cmFpbF0pIDogcmVzOwp9CgppY29udi5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoYnVmLCBlbmNvZGluZywgb3B0aW9ucykgewogICAgaWYgKHR5cGVvZiBidWYgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgaWYgKCFpY29udi5za2lwRGVjb2RlV2FybmluZykgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKCdJY29udi1saXRlIHdhcm5pbmc6IGRlY29kZSgpLWluZyBzdHJpbmdzIGlzIGRlcHJlY2F0ZWQuIFJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2h0dWNoa2luL2ljb252LWxpdGUvd2lraS9Vc2UtQnVmZmVycy13aGVuLWRlY29kaW5nJyk7CiAgICAgICAgICAgIGljb252LnNraXBEZWNvZGVXYXJuaW5nID0gdHJ1ZTsKICAgICAgICB9CgogICAgICAgIGJ1ZiA9IG5ldyBCdWZmZXIoIiIgKyAoYnVmIHx8ICIiKSwgImJpbmFyeSIpOyAvLyBFbnN1cmUgYnVmZmVyLgogICAgfQoKICAgIHZhciBkZWNvZGVyID0gaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgb3B0aW9ucyk7CgogICAgdmFyIHJlcyA9IGRlY29kZXIud3JpdGUoYnVmKTsKICAgIHZhciB0cmFpbCA9IGRlY29kZXIuZW5kKCk7CgogICAgcmV0dXJuIHRyYWlsID8gKHJlcyArIHRyYWlsKSA6IHJlczsKfQoKaWNvbnYuZW5jb2RpbmdFeGlzdHMgPSBmdW5jdGlvbiBlbmNvZGluZ0V4aXN0cyhlbmMpIHsKICAgIHRyeSB7CiAgICAgICAgaWNvbnYuZ2V0Q29kZWMoZW5jKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Cn0KCi8vIExlZ2FjeSBhbGlhc2VzIHRvIGNvbnZlcnQgZnVuY3Rpb25zCmljb252LnRvRW5jb2RpbmcgPSBpY29udi5lbmNvZGU7Cmljb252LmZyb21FbmNvZGluZyA9IGljb252LmRlY29kZTsKCi8vIFNlYXJjaCBmb3IgYSBjb2RlYyBpbiBpY29udi5lbmNvZGluZ3MuIENhY2hlIGNvZGVjIGRhdGEgaW4gaWNvbnYuX2NvZGVjRGF0YUNhY2hlLgppY29udi5fY29kZWNEYXRhQ2FjaGUgPSB7fTsKaWNvbnYuZ2V0Q29kZWMgPSBmdW5jdGlvbiBnZXRDb2RlYyhlbmNvZGluZykgewogICAgaWYgKCFpY29udi5lbmNvZGluZ3MpCiAgICAgICAgaWNvbnYuZW5jb2RpbmdzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNzEpOyAvLyBMYXp5IGxvYWQgYWxsIGVuY29kaW5nIGRlZmluaXRpb25zLgogICAgCiAgICAvLyBDYW5vbmljYWxpemUgZW5jb2RpbmcgbmFtZTogc3RyaXAgYWxsIG5vbi1hbHBoYW51bWVyaWMgY2hhcnMgYW5kIGFwcGVuZGVkIHllYXIuCiAgICB2YXIgZW5jID0gKCcnK2VuY29kaW5nKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teMC05YS16XXw6XGR7NH0kL2csICIiKTsKCiAgICAvLyBUcmF2ZXJzZSBpY29udi5lbmNvZGluZ3MgdG8gZmluZCBhY3R1YWwgY29kZWMuCiAgICB2YXIgY29kZWNPcHRpb25zID0ge307CiAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgIHZhciBjb2RlYyA9IGljb252Ll9jb2RlY0RhdGFDYWNoZVtlbmNdOwogICAgICAgIGlmIChjb2RlYykKICAgICAgICAgICAgcmV0dXJuIGNvZGVjOwoKICAgICAgICB2YXIgY29kZWNEZWYgPSBpY29udi5lbmNvZGluZ3NbZW5jXTsKCiAgICAgICAgc3dpdGNoICh0eXBlb2YgY29kZWNEZWYpIHsKICAgICAgICAgICAgY2FzZSAic3RyaW5nIjogLy8gRGlyZWN0IGFsaWFzIHRvIG90aGVyIGVuY29kaW5nLgogICAgICAgICAgICAgICAgZW5jID0gY29kZWNEZWY7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6IC8vIEFsaWFzIHdpdGggb3B0aW9ucy4gQ2FuIGJlIGxheWVyZWQuCiAgICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gY29kZWNEZWYpCiAgICAgICAgICAgICAgICAgICAgY29kZWNPcHRpb25zW2tleV0gPSBjb2RlY0RlZltrZXldOwoKICAgICAgICAgICAgICAgIGlmICghY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZSkKICAgICAgICAgICAgICAgICAgICBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lID0gZW5jOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBlbmMgPSBjb2RlY0RlZi50eXBlOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICJmdW5jdGlvbiI6IC8vIENvZGVjIGl0c2VsZi4KICAgICAgICAgICAgICAgIGlmICghY29kZWNPcHRpb25zLmVuY29kaW5nTmFtZSkKICAgICAgICAgICAgICAgICAgICBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lID0gZW5jOwoKICAgICAgICAgICAgICAgIC8vIFRoZSBjb2RlYyBmdW5jdGlvbiBtdXN0IGxvYWQgYWxsIHRhYmxlcyBhbmQgcmV0dXJuIG9iamVjdCB3aXRoIC5lbmNvZGVyIGFuZCAuZGVjb2RlciBtZXRob2RzLgogICAgICAgICAgICAgICAgLy8gSXQnbGwgYmUgY2FsbGVkIG9ubHkgb25jZSAoZm9yIGVhY2ggZGlmZmVyZW50IG9wdGlvbnMgb2JqZWN0KS4KICAgICAgICAgICAgICAgIGNvZGVjID0gbmV3IGNvZGVjRGVmKGNvZGVjT3B0aW9ucywgaWNvbnYpOwoKICAgICAgICAgICAgICAgIGljb252Ll9jb2RlY0RhdGFDYWNoZVtjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lXSA9IGNvZGVjOyAvLyBTYXZlIGl0IHRvIGJlIHJldXNlZCBsYXRlci4KICAgICAgICAgICAgICAgIHJldHVybiBjb2RlYzsKCiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVuY29kaW5nIG5vdCByZWNvZ25pemVkOiAnIiArIGVuY29kaW5nICsgIicgKHNlYXJjaGVkIGFzOiAnIitlbmMrIicpIik7CiAgICAgICAgfQogICAgfQp9CgppY29udi5nZXRFbmNvZGVyID0gZnVuY3Rpb24gZ2V0RW5jb2RlcihlbmNvZGluZywgb3B0aW9ucykgewogICAgdmFyIGNvZGVjID0gaWNvbnYuZ2V0Q29kZWMoZW5jb2RpbmcpLAogICAgICAgIGVuY29kZXIgPSBuZXcgY29kZWMuZW5jb2RlcihvcHRpb25zLCBjb2RlYyk7CgogICAgaWYgKGNvZGVjLmJvbUF3YXJlICYmIG9wdGlvbnMgJiYgb3B0aW9ucy5hZGRCT00pCiAgICAgICAgZW5jb2RlciA9IG5ldyBib21IYW5kbGluZy5QcmVwZW5kQk9NKGVuY29kZXIsIG9wdGlvbnMpOwoKICAgIHJldHVybiBlbmNvZGVyOwp9CgppY29udi5nZXREZWNvZGVyID0gZnVuY3Rpb24gZ2V0RGVjb2RlcihlbmNvZGluZywgb3B0aW9ucykgewogICAgdmFyIGNvZGVjID0gaWNvbnYuZ2V0Q29kZWMoZW5jb2RpbmcpLAogICAgICAgIGRlY29kZXIgPSBuZXcgY29kZWMuZGVjb2RlcihvcHRpb25zLCBjb2RlYyk7CgogICAgaWYgKGNvZGVjLmJvbUF3YXJlICYmICEob3B0aW9ucyAmJiBvcHRpb25zLnN0cmlwQk9NID09PSBmYWxzZSkpCiAgICAgICAgZGVjb2RlciA9IG5ldyBib21IYW5kbGluZy5TdHJpcEJPTShkZWNvZGVyLCBvcHRpb25zKTsKCiAgICByZXR1cm4gZGVjb2RlcjsKfQoKCi8vIExvYWQgZXh0ZW5zaW9ucyBpbiBOb2RlLiBBbGwgb2YgdGhlbSBhcmUgb21pdHRlZCBpbiBCcm93c2VyaWZ5IGJ1aWxkIHZpYSAnYnJvd3NlcicgZmllbGQgaW4gcGFja2FnZS5qc29uLgp2YXIgbm9kZVZlciA9IHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLnZlcnNpb25zICYmIHByb2Nlc3MudmVyc2lvbnMubm9kZTsKaWYgKG5vZGVWZXIpIHsKCiAgICAvLyBMb2FkIHN0cmVhbWluZyBzdXBwb3J0IGluIE5vZGUgdjAuMTArCiAgICB2YXIgbm9kZVZlckFyciA9IG5vZGVWZXIuc3BsaXQoIi4iKS5tYXAoTnVtYmVyKTsKICAgIGlmIChub2RlVmVyQXJyWzBdID4gMCB8fCBub2RlVmVyQXJyWzFdID49IDEwKSB7CiAgICAgICAgX193ZWJwYWNrX3JlcXVpcmVfXygxODUpKGljb252KTsKICAgIH0KCiAgICAvLyBMb2FkIE5vZGUgcHJpbWl0aXZlIGV4dGVuc2lvbnMuCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4NikoaWNvbnYpOwp9CgppZiAoZmFsc2UpIHsKICAgIGNvbnNvbGUuZXJyb3IoImljb252LWxpdGUgd2FybmluZzogamF2YXNjcmlwdCBmaWxlcyB1c2UgZW5jb2RpbmcgZGlmZmVyZW50IGZyb20gdXRmLTguIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kvSmF2YXNjcmlwdC1zb3VyY2UtZmlsZS1lbmNvZGluZ3MgZm9yIG1vcmUgaW5mby4iKTsKfQoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMTEpKSkKCi8qKiovIH0pLAovKiA1MyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7Cgptb2R1bGUuZXhwb3J0cyA9IFtbIjAiLCJcdTAwMDAiLDEyNywi4oKsIl0sWyI4MTQwIiwi5LiC5LiE5LiF5LiG5LiP5LiS5LiX5Lif5Lig5Lih5Lij5Lim5Lip5Liu5Liv5Lix5Liz5Li15Li35Li85LmA5LmB5LmC5LmE5LmG5LmK5LmR5LmV5LmX5Lma5Lmb5Lmi5Lmj5Lmk5Lml5Lmn5Lmo5LmqIiw1LCLkubLkubQiLDksIuS5vyIsNiwi5LqH5LqKIl0sWyI4MTgwIiwi5LqQ5LqW5LqX5LqZ5Lqc5Lqd5Lqe5Lqj5Lqq5Lqv5Lqw5Lqx5Lq05Lq25Lq35Lq45Lq55Lq85Lq95Lq+5LuI5LuM5LuP5LuQ5LuS5Lua5Lub5Luc5Lug5Lui5Lum5Lun5Lup5Lut5Luu5Luv5Lux5Lu05Lu45Lu55Lu65Lu85Lu+5LyA5LyCIiw2LCLkvIvkvIzkvJIiLDQsIuS8nOS8neS8oeS8o+S8qOS8qeS8rOS8reS8ruS8seS8s+S8teS8t+S8ueS8u+S8viIsNCwi5L2E5L2F5L2HIiw1LCLkvZLkvZTkvZbkvaHkvaLkvabkvajkvarkvavkva3kva7kvbHkvbLkvbXkvbfkvbjkvbnkvbrkvb3kvoDkvoHkvoLkvoXkvobkvofkvorkvozkvo7kvpDkvpLkvpPkvpXkvpbkvpjkvpnkvprkvpzkvp7kvp/kvqHkvqIiXSxbIjgyNDAiLCLkvqTkvqvkvq3kvrAiLDQsIuS+tiIsOCwi5L+A5L+B5L+C5L+G5L+H5L+I5L+J5L+L5L+M5L+N5L+SIiw0LCLkv5nkv5vkv6Dkv6Lkv6Tkv6Xkv6fkv6vkv6zkv7Dkv7Lkv7Tkv7Xkv7bkv7fkv7nkv7vkv7zkv73kv78iLDExXSxbIjgyODAiLCLlgIvlgI7lgJDlgJHlgJPlgJXlgJblgJflgJvlgJ3lgJ7lgKDlgKLlgKPlgKTlgKflgKvlgK8iLDEwLCLlgLvlgL3lgL/lgYDlgYHlgYLlgYTlgYXlgYblgYnlgYrlgYvlgY3lgZAiLDQsIuWBluWBl+WBmOWBmeWBm+WBnSIsNywi5YGmIiw1LCLlga0iLDgsIuWBuOWBueWBuuWBvOWBveWCgeWCguWCg+WChOWChuWCh+WCieWCiuWCi+WCjOWCjiIsMjAsIuWCpOWCpuWCquWCq+WCrSIsNCwi5YKzIiw2LCLlgrwiXSxbIjgzNDAiLCLlgr0iLDE3LCLlg5AiLDUsIuWDl+WDmOWDmeWDmyIsMTAsIuWDqOWDqeWDquWDq+WDr+WDsOWDseWDsuWDtOWDtiIsNCwi5YO8Iiw5LCLlhIgiXSxbIjgzODAiLCLlhInlhIrlhIwiLDUsIuWEkyIsMTMsIuWEoiIsMjgsIuWFguWFh+WFiuWFjOWFjuWFj+WFkOWFkuWFk+WFl+WFmOWFmeWFm+WFnSIsNCwi5YWj5YWk5YWm5YWn5YWp5YWq5YWv5YWy5YW65YW+5YW/5YaD5YaE5YaG5YaH5YaK5YaL5YaO5YaP5YaQ5YaR5YaT5YaU5YaY5Yaa5Yad5Yae5Yaf5Yah5Yaj5YamIiw0LCLlhq3lhq7lhrTlhrjlhrnlhrrlhr7lhr/lh4Hlh4Llh4Plh4Xlh4jlh4rlh43lh47lh5Dlh5IiLDVdLFsiODQ0MCIsIuWHmOWHmeWHmuWHnOWHnuWHn+WHouWHo+WHpSIsNSwi5Yes5Yeu5Yex5Yey5Ye05Ye35Ye+5YiE5YiF5YiJ5YiL5YiM5YiP5YiQ5YiT5YiU5YiV5Yic5Yie5Yif5Yih5Yii5Yij5Yil5Yim5Yin5Yiq5Yis5Yiv5Yix5Yiy5Yi05Yi15Yi85Yi+5YmEIiw1LCLliYvliY7liY/liZLliZPliZXliZfliZgiXSxbIjg0ODAiLCLliZnliZrliZvliZ3liZ/liaDliaLliaPliaTliabliajliavliazlia3lia7libDlibHlibMiLDksIuWJvuWKgOWKgyIsNCwi5YqJIiw2LCLlipHlipLlipQiLDYsIuWKnOWKpOWKpeWKpuWKp+WKruWKr+WKsOWKtCIsOSwi5YuA5YuB5YuC5YuE5YuF5YuG5YuI5YuK5YuM5YuN5YuO5YuP5YuR5YuT5YuU5YuV5YuX5YuZIiw1LCLli6Dli6Hli6Lli6Pli6UiLDEwLCLli7EiLDcsIuWLu+WLvOWLveWMgeWMguWMg+WMhOWMh+WMieWMiuWMi+WMjOWMjiJdLFsiODU0MCIsIuWMkeWMkuWMk+WMlOWMmOWMm+WMnOWMnuWMn+WMouWMpOWMpeWMp+WMqOWMqeWMq+WMrOWMreWMryIsOSwi5Yy85Yy95Y2A5Y2C5Y2E5Y2G5Y2L5Y2M5Y2N5Y2Q5Y2U5Y2Y5Y2Z5Y2b5Y2d5Y2l5Y2o5Y2q5Y2s5Y2t5Y2y5Y225Y255Y275Y285Y295Y2+5Y6A5Y6B5Y6D5Y6H5Y6I5Y6K5Y6O5Y6PIl0sWyI4NTgwIiwi5Y6QIiw0LCLljpbljpfljpnljpvljpzljp7ljqDljqHljqTljqfljqrljqvljqzljq3ljq8iLDYsIuWOt+WOuOWOueWOuuWOvOWOveWOvuWPgOWPgyIsNCwi5Y+O5Y+P5Y+Q5Y+S5Y+T5Y+V5Y+a5Y+c5Y+d5Y+e5Y+h5Y+i5Y+n5Y+05Y+65Y++5Y+/5ZCA5ZCC5ZCF5ZCH5ZCL5ZCU5ZCY5ZCZ5ZCa5ZCc5ZCi5ZCk5ZCl5ZCq5ZCw5ZCz5ZC25ZC35ZC65ZC95ZC/5ZGB5ZGC5ZGE5ZGF5ZGH5ZGJ5ZGM5ZGN5ZGO5ZGP5ZGR5ZGa5ZGdIiw0LCLlkaPlkaXlkaflkakiLDcsIuWRtOWRueWRuuWRvuWRv+WSgeWSg+WSheWSh+WSiOWSieWSiuWSjeWSkeWSk+WSl+WSmOWSnOWSnuWSn+WSoOWSoSJdLFsiODY0MCIsIuWSouWSpeWSruWSsOWSsuWSteWStuWSt+WSueWSuuWSvOWSvuWTg+WTheWTiuWTi+WTluWTmOWTm+WToCIsNCwi5ZOr5ZOs5ZOv5ZOw5ZOx5ZO0Iiw1LCLlk7vlk77llIDllILllIPllITllIXllIjllIoiLDQsIuWUkuWUk+WUlSIsNSwi5ZSc5ZSd5ZSe5ZSf5ZSh5ZSl5ZSmIl0sWyI4NjgwIiwi5ZSo5ZSp5ZSr5ZSt5ZSy5ZS05ZS15ZS25ZS45ZS55ZS65ZS75ZS95ZWA5ZWC5ZWF5ZWH5ZWI5ZWLIiw0LCLllZHllZLllZPllZTllZciLDQsIuWVneWVnuWVn+WVoOWVouWVo+WVqOWVqeWVq+WVryIsNSwi5ZW55ZW65ZW95ZW/5ZaF5ZaG5ZaM5ZaN5ZaO5ZaQ5ZaS5ZaT5ZaV5ZaW5ZaX5Zaa5Zab5Zae5ZagIiw2LCLllqgiLDgsIuWWsuWWtOWWtuWWuOWWuuWWvOWWvyIsNCwi5ZeG5ZeH5ZeI5ZeK5ZeL5ZeO5ZeP5ZeQ5ZeV5ZeXIiw0LCLll57ll6Dll6Lll6fll6nll63ll67ll7Dll7Hll7Tll7bll7giLDQsIuWXv+WYguWYg+WYhOWYhSJdLFsiODc0MCIsIuWYhuWYh+WYiuWYi+WYjeWYkCIsNywi5ZiZ5Zia5Zic5Zid5Zig5Zih5Zii5Zil5Zim5Zio5Zip5Ziq5Zir5Ziu5Ziv5Ziw5Ziz5Zi15Zi35Zi45Zi65Zi85Zi95Zi+5ZmAIiwxMSwi5ZmPIiw0LCLlmZXlmZblmZrlmZvlmZ0iLDRdLFsiODc4MCIsIuWZo+WZpeWZpuWZp+WZreWZruWZr+WZsOWZsuWZs+WZtOWZteWZt+WZuOWZueWZuuWZvSIsNywi5ZqHIiw2LCLlmpDlmpHlmpLlmpQiLDE0LCLlmqQiLDEwLCLlmrAiLDYsIuWauOWaueWauuWau+WavSIsMTIsIuWbiyIsOCwi5ZuV5ZuW5ZuY5ZuZ5Zuc5Zuj5ZulIiw1LCLlm6zlm67lm6/lm7Llm7Plm7blm7flm7jlm7vlm7zlnIDlnIHlnILlnIXlnIflnIsiLDZdLFsiODg0MCIsIuWckiIsOSwi5Zyd5Zye5Zyg5Zyh5Zyi5Zyk5Zyl5Zym5Zyn5Zyr5Zyx5Zyy5Zy0Iiw0LCLlnLzlnL3lnL/lnYHlnYPlnYTlnYXlnYblnYjlnYnlnYvlnZIiLDQsIuWdmOWdmeWdouWdo+WdpeWdp+WdrOWdruWdsOWdseWdsuWdtOWdteWduOWdueWduuWdveWdvuWdv+WegCJdLFsiODg4MCIsIuWegeWeh+WeiOWeieWeiuWejSIsNCwi5Z6UIiw2LCLlnpzlnp3lnp7lnp/lnqXlnqjlnqrlnqzlnq/lnrDlnrHlnrPlnrXlnrblnrflnrkiLDgsIuWfhCIsNiwi5Z+M5Z+N5Z+Q5Z+R5Z+T5Z+W5Z+X5Z+b5Z+c5Z+e5Z+h5Z+i5Z+j5Z+lIiw3LCLln67ln7Dln7Hln7Lln7Pln7Xln7bln7fln7vln7zln77ln7/loIHloIPloITloIXloIjloInloIrloIzloI7loI/loJDloJLloJPloJTloJbloJfloJjloJrloJvloJzloJ3loJ/loKLloKPloKUiLDQsIuWgqyIsNCwi5aCx5aCy5aCz5aC05aC2Iiw3XSxbIjg5NDAiLCLloL4iLDUsIuWhhSIsNiwi5aGO5aGP5aGQ5aGS5aGT5aGV5aGW5aGX5aGZIiw0LCLloZ8iLDUsIuWhpiIsNCwi5aGtIiwxNiwi5aG/5aKC5aKE5aKG5aKH5aKI5aKK5aKL5aKMIl0sWyI4OTgwIiwi5aKNIiw0LCLlopQiLDQsIuWim+WinOWineWioCIsNywi5aKqIiwxNywi5aK95aK+5aK/5aOA5aOC5aOD5aOE5aOGIiwxMCwi5aOS5aOT5aOU5aOWIiwxMywi5aOlIiw1LCLlo63lo6/lo7Hlo7Llo7Tlo7Xlo7flo7jlo7oiLDcsIuWkg+WkheWkhuWkiCIsNCwi5aSO5aSQ5aSR5aSS5aST5aSX5aSY5aSb5aSd5aSe5aSg5aSh5aSi5aSj5aSm5aSo5aSs5aSw5aSy5aSz5aS15aS25aS7Il0sWyI4YTQwIiwi5aS95aS+5aS/5aWA5aWD5aWF5aWG5aWK5aWM5aWN5aWQ5aWS5aWT5aWZ5aWbIiw0LCLlpaHlpaPlpaTlpaYiLDEyLCLlpbXlpbflpbrlpbvlpbzlpb7lpb/lpoDlpoXlponlpovlpozlpo7lpo/lppDlppHlppTlppXlppjlpprlppvlppzlpp3lpp/lpqDlpqHlpqLlpqYiXSxbIjhhODAiLCLlpqflpqzlpq3lprDlprHlprMiLDUsIuWmuuWmvOWmveWmvyIsNiwi5aeH5aeI5aeJ5aeM5aeN5aeO5aeP5aeV5aeW5aeZ5aeb5aeeIiw0LCLlp6Tlp6blp6flp6nlp6rlp6vlp60iLDExLCLlp7rlp7zlp73lp77lqIDlqILlqIrlqIvlqI3lqI7lqI/lqJDlqJLlqJTlqJXlqJblqJflqJnlqJrlqJvlqJ3lqJ7lqKHlqKLlqKTlqKblqKflqKjlqKoiLDYsIuWos+WoteWotyIsNCwi5ai95ai+5ai/5amBIiw0LCLlqYflqYjlqYsiLDksIuWpluWpl+WpmOWpmeWpmyIsNV0sWyI4YjQwIiwi5amh5amj5amk5aml5amm5amo5amp5amrIiw4LCLlqbjlqbnlqbvlqbzlqb3lqb7lqoAiLDE3LCLlqpMiLDYsIuWqnCIsMTMsIuWqq+WqrCJdLFsiOGI4MCIsIuWqrSIsNCwi5aq05aq25aq35aq5Iiw0LCLlqr/lq4Dlq4MiLDUsIuWriuWri+WrjSIsNCwi5auT5auV5auX5auZ5aua5aub5aud5aue5auf5aui5auk5aul5aun5auo5auq5ausIiw0LCLlq7IiLDIyLCLlrIoiLDExLCLlrJgiLDI1LCLlrLPlrLXlrLblrLgiLDcsIuWtgSIsNl0sWyI4YzQwIiwi5a2IIiw3LCLlrZLlrZblrZ7lraDlraHlraflrajlravlra3lra7lra/lrbLlrbTlrbblrbflrbjlrbnlrbvlrbzlrb7lrb/lroLlroblrorlro3lro7lrpDlrpHlrpLlrpTlrpblrp/lrqflrqjlrqnlrqzlrq3lrq7lrq/lrrHlrrLlrrflrrrlrrvlrrzlr4Dlr4Hlr4Plr4jlr4nlr4rlr4vlr43lr47lr48iXSxbIjhjODAiLCLlr5Hlr5QiLDgsIuWvoOWvouWvo+WvpuWvp+WvqSIsNCwi5a+v5a+xIiw2LCLlr73lr77lsIDlsILlsIPlsIXlsIflsIjlsIvlsIzlsI3lsI7lsJDlsJLlsJPlsJflsJnlsJvlsJ7lsJ/lsKDlsKHlsKPlsKblsKjlsKnlsKrlsKvlsK3lsK7lsK/lsLDlsLLlsLPlsLXlsLblsLflsYPlsYTlsYblsYflsYzlsY3lsZLlsZPlsZTlsZblsZflsZjlsZrlsZvlsZzlsZ3lsZ/lsaLlsaTlsaciLDYsIuWxsOWxsiIsNiwi5bG75bG85bG95bG+5bKA5bKDIiw0LCLlsonlsorlsovlso7lso/lspLlspPlspXlsp0iLDQsIuWypCIsNF0sWyI4ZDQwIiwi5bKq5bKu5bKv5bKw5bKy5bK05bK25bK55bK65bK75bK85bK+5bOA5bOC5bOD5bOFIiw1LCLls4wiLDUsIuWzkyIsNSwi5bOaIiw2LCLls6Lls6Pls6fls6nls6vls6zls67ls6/ls7EiLDksIuWzvCIsNF0sWyI4ZDgwIiwi5bSB5bSE5bSF5bSIIiw1LCLltI8iLDQsIuW0leW0l+W0mOW0meW0muW0nOW0neW0nyIsNCwi5bSl5bSo5bSq5bSr5bSs5bSvIiw0LCLltLUiLDcsIuW0vyIsNywi5bWI5bWJ5bWNIiwxMCwi5bWZ5bWa5bWc5bWeIiwxMCwi5bWq5bWt5bWu5bWw5bWx5bWy5bWz5bW1IiwxMiwi5baDIiwyMSwi5baa5bab5bac5bae5baf5bagIl0sWyI4ZTQwIiwi5bahIiwyMSwi5ba4IiwxMiwi5beGIiw2LCLlt44iLDEyLCLlt5zlt5/lt6Dlt6Plt6Tlt6rlt6zlt60iXSxbIjhlODAiLCLlt7Dlt7Xlt7blt7giLDQsIuW3v+W4gOW4hOW4h+W4ieW4iuW4i+W4jeW4juW4kuW4k+W4l+W4niIsNywi5bioIiw0LCLluK/luLDluLIiLDQsIuW4ueW4uuW4vuW4v+W5gOW5geW5g+W5hiIsNSwi5bmNIiw2LCLluZYiLDQsIuW5nOW5neW5n+W5oOW5oyIsMTQsIuW5teW5t+W5ueW5vuW6geW6guW6g+W6heW6iOW6ieW6jOW6jeW6juW6kuW6mOW6m+W6neW6oeW6ouW6o+W6pOW6qCIsNCwi5bquIiw0LCLlurTlurrlurvlurzlur3lur8iLDZdLFsiOGY0MCIsIuW7huW7h+W7iOW7iyIsNSwi5buU5buV5buX5buY5buZ5bua5bucIiwxMSwi5bup5burIiw4LCLlu7Xlu7jlu7nlu7vlu7zlu73lvIXlvIblvIflvInlvIzlvI3lvI7lvJDlvJLlvJTlvJblvJnlvJrlvJzlvJ3lvJ7lvKHlvKLlvKPlvKQiXSxbIjhmODAiLCLlvKjlvKvlvKzlvK7lvLDlvLIiLDYsIuW8u+W8veW8vuW8v+W9gSIsMTQsIuW9keW9lOW9meW9muW9m+W9nOW9nuW9n+W9oOW9o+W9peW9p+W9qOW9q+W9ruW9r+W9suW9tOW9teW9tuW9uOW9uuW9veW9vuW9v+W+g+W+huW+jeW+juW+j+W+keW+k+W+lOW+luW+muW+m+W+neW+nuW+n+W+oOW+oiIsNSwi5b6p5b6r5b6s5b6vIiw1LCLlvrblvrjlvrnlvrrlvrvlvr4iLDQsIuW/h+W/iOW/iuW/i+W/juW/k+W/lOW/leW/muW/m+W/nOW/nuW/n+W/ouW/o+W/peW/puW/qOW/qeW/rOW/r+W/sOW/suW/s+W/tOW/tuW/t+W/ueW/uuW/vOaAhyJdLFsiOTA0MCIsIuaAiOaAieaAi+aAjOaAkOaAkeaAk+aAl+aAmOaAmuaAnuaAn+aAouaAo+aApOaArOaAreaAruaAsCIsNCwi5oC2Iiw0LCLmgL3mgL7mgYDmgYQiLDYsIuaBjOaBjuaBj+aBkeaBk+aBlOaBluaBl+aBmOaBm+aBnOaBnuaBn+aBoOaBoeaBpeaBpuaBruaBseaBsuaBtOaBteaBt+aBvuaCgCJdLFsiOTA4MCIsIuaCgeaCguaCheaChuaCh+aCiOaCiuaCi+aCjuaCj+aCkOaCkeaCk+aCleaCl+aCmOaCmeaCnOaCnuaCoeaCouaCpOaCpeaCp+aCqeaCquaCruaCsOaCs+aCteaCtuaCt+aCueaCuuaCvSIsNywi5oOH5oOI5oOJ5oOMIiw0LCLmg5Lmg5Pmg5Tmg5bmg5fmg5nmg5vmg57mg6EiLDQsIuaDquaDseaDsuaDteaDt+aDuOaDuyIsNCwi5oSC5oSD5oSE5oSF5oSH5oSK5oSL5oSM5oSQIiw0LCLmhJbmhJfmhJjmhJnmhJvmhJzmhJ3mhJ7mhKHmhKLmhKXmhKjmhKnmhKrmhKwiLDE4LCLmhYAiLDZdLFsiOTE0MCIsIuaFh+aFieaFi+aFjeaFj+aFkOaFkuaFk+aFlOaFliIsNiwi5oWe5oWf5oWg5oWh5oWj5oWk5oWl5oWm5oWpIiw2LCLmhbHmhbLmhbPmhbTmhbbmhbgiLDE4LCLmhozmho3mho8iLDQsIuaGlSJdLFsiOTE4MCIsIuaGliIsNiwi5oaeIiw4LCLmhqrmhqvmhq0iLDksIuaGuCIsNSwi5oa/5oeA5oeB5oeDIiw0LCLmh4nmh4wiLDQsIuaHk+aHlSIsMTYsIuaHpyIsMTMsIuaHtiIsOCwi5oiAIiw1LCLmiIfmiInmiJPmiJTmiJnmiJzmiJ3miJ7miKDmiKPmiKbmiKfmiKjmiKnmiKvmiK3miK/miLDmiLHmiLLmiLXmiLbmiLgiLDQsIuaJguaJhOaJheaJhuaJiiJdLFsiOTI0MCIsIuaJj+aJkOaJleaJluaJl+aJmeaJmuaJnCIsNiwi5omk5oml5omo5omx5omy5om05om15om35om45om65om75om95oqB5oqC5oqD5oqF5oqG5oqH5oqI5oqLIiw1LCLmipTmipnmipzmip3mip7miqPmiqbmiqfmiqnmiqrmiq3miq7miq/mirDmirLmirPmirTmirbmirfmirjmirrmir7mi4Dmi4EiXSxbIjkyODAiLCLmi4Pmi4vmi4/mi5Hmi5Xmi53mi57mi6Dmi6Hmi6Tmi6rmi6vmi7Dmi7Lmi7Xmi7jmi7nmi7rmi7vmjIDmjIPmjITmjIXmjIbmjIrmjIvmjIzmjI3mjI/mjJDmjJLmjJPmjJTmjJXmjJfmjJjmjJnmjJzmjKbmjKfmjKnmjKzmjK3mjK7mjLDmjLHmjLMiLDUsIuaMu+aMvOaMvuaMv+aNgOaNgeaNhOaNh+aNiOaNiuaNkeaNkuaNk+aNlOaNliIsNywi5o2g5o2k5o2l5o2m5o2o5o2q5o2r5o2s5o2v5o2w5o2y5o2z5o205o215o245o255o285o295o2+5o2/5o6B5o6D5o6E5o6F5o6G5o6L5o6N5o6R5o6T5o6U5o6V5o6X5o6ZIiw2LCLmjqHmjqTmjqbmjqvmjq/mjrHmjrLmjrXmjrbmjrnmjrvmjr3mjr/mj4AiXSxbIjkzNDAiLCLmj4Hmj4Lmj4Pmj4Xmj4fmj4jmj4rmj4vmj4zmj5Hmj5Pmj5Tmj5Xmj5ciLDYsIuaPn+aPouaPpCIsNCwi5o+r5o+s5o+u5o+v5o+w5o+x5o+z5o+15o+35o+55o+65o+75o+85o++5pCD5pCE5pCGIiw0LCLmkI3mkI7mkJHmkJLmkJUiLDUsIuaQneaQn+aQouaQo+aQpCJdLFsiOTM4MCIsIuaQpeaQp+aQqOaQqeaQq+aQriIsNSwi5pC1Iiw0LCLmkLvmkLzmkL7mkYDmkYLmkYPmkYnmkYsiLDYsIuaRk+aRleaRluaRl+aRmSIsNCwi5pGfIiw3LCLmkajmkarmkavmkazmka4iLDksIuaRuyIsNiwi5pKD5pKG5pKIIiw4LCLmkpPmkpTmkpfmkpjmkprmkpvmkpzmkp3mkp8iLDQsIuaSpeaSpuaSp+aSqOaSquaSq+aSr+aSseaSsuaSs+aStOaStuaSueaSu+aSveaSvuaSv+aTgeaTg+aThOaThiIsNiwi5pOP5pOR5pOT5pOU5pOV5pOW5pOZ5pOaIl0sWyI5NDQwIiwi5pOb5pOc5pOd5pOf5pOg5pOh5pOj5pOl5pOnIiwyNCwi5pSBIiw3LCLmlIoiLDcsIuaUkyIsNCwi5pSZIiw4XSxbIjk0ODAiLCLmlKLmlKPmlKTmlKYiLDQsIuaUrOaUreaUsOaUseaUsuaUs+aUt+aUuuaUvOaUveaVgCIsNCwi5pWG5pWH5pWK5pWL5pWN5pWO5pWQ5pWS5pWT5pWU5pWX5pWY5pWa5pWc5pWf5pWg5pWh5pWk5pWl5pWn5pWo5pWp5pWq5pWt5pWu5pWv5pWx5pWz5pW15pW25pW4IiwxNCwi5paI5paJ5paK5paN5paO5paP5paS5paU5paV5paW5paY5paa5pad5pae5pag5pai5paj5pam5pao5paq5pas5pau5paxIiw3LCLmlrrmlrvmlr7mlr/ml4Dml4Lml4fml4jml4nml4rml43ml5Dml5Hml5Pml5Tml5Xml5giLDcsIuaXoeaXo+aXpOaXquaXqyJdLFsiOTU0MCIsIuaXsuaXs+aXtOaXteaXuOaXueaXuyIsNCwi5piB5piE5piF5piH5piI5piJ5piL5piN5piQ5piR5piS5piW5piX5piY5pia5pib5pic5pie5pih5pii5pij5pik5pim5pip5piq5pir5pis5piu5piw5piy5piz5pi3Iiw0LCLmmL3mmL/mmYDmmYLmmYQiLDYsIuaZjeaZjuaZkOaZkeaZmCJdLFsiOTU4MCIsIuaZmeaZm+aZnOaZneaZnuaZoOaZouaZo+aZpeaZp+aZqSIsNCwi5pmx5pmy5pmz5pm15pm45pm55pm75pm85pm95pm/5pqA5pqB5pqD5pqF5pqG5pqI5pqJ5pqK5pqL5pqN5pqO5pqP5pqQ5pqS5pqT5pqU5pqV5pqYIiw0LCLmmp4iLDgsIuaaqSIsNCwi5pqvIiw0LCLmmrXmmrbmmrfmmrjmmrrmmrvmmrzmmr3mmr8iLDI1LCLmm5rmm54iLDcsIuabp+abqOabqiIsNSwi5pux5pu15pu25pu45pu65pu75pu95pyB5pyC5pyDIl0sWyI5NjQwIiwi5pyE5pyF5pyG5pyH5pyM5pyO5pyP5pyR5pyS5pyT5pyW5pyY5pyZ5pya5pyc5pye5pygIiw1LCLmnKfmnKnmnK7mnLDmnLLmnLPmnLbmnLfmnLjmnLnmnLvmnLzmnL7mnL/mnYHmnYTmnYXmnYfmnYrmnYvmnY3mnZLmnZTmnZXmnZciLDQsIuadneadouado+adpOadpuadp+adq+adrOadruadseadtOadtiJdLFsiOTY4MCIsIuaduOadueaduuadu+adveaegOaeguaeg+aeheaehuaeiOaeiuaejOaejeaejuaej+aekeaekuaek+aelOaeluaemeaem+aen+aeoOaeoeaepOaepuaeqeaerOaeruaeseaesuaetOaeuSIsNywi5p+C5p+FIiw5LCLmn5Xmn5bmn5fmn5vmn5/mn6Hmn6Pmn6Tmn6bmn6fmn6jmn6rmn6vmn63mn67mn7Lmn7UiLDcsIuafvuaggeagguagg+aghOaghuagjeagkOagkuaglOagleagmCIsNCwi5qCe5qCf5qCg5qCiIiw2LCLmoKsiLDYsIuagtOagteagtuaguuagu+agv+ahh+ahi+ahjeahj+ahkuahliIsNV0sWyI5NzQwIiwi5qGc5qGd5qGe5qGf5qGq5qGsIiw3LCLmobXmobgiLDgsIuaiguaihOaihyIsNywi5qKQ5qKR5qKS5qKU5qKV5qKW5qKYIiw5LCLmoqPmoqTmoqXmoqnmoqrmoqvmoqzmoq7morHmorLmorTmorbmorfmorgiXSxbIjk3ODAiLCLmorkiLDYsIuajgeajgyIsNSwi5qOK5qOM5qOO5qOP5qOQ5qOR5qOT5qOU5qOW5qOX5qOZ5qObIiw0LCLmo6Hmo6Lmo6QiLDksIuajr+ajsuajs+ajtOajtuajt+ajuOaju+ajveajvuajv+akgOakguakg+akhOakhiIsNCwi5qSM5qSP5qSR5qSTIiwxMSwi5qSh5qSi5qSj5qSlIiw3LCLmpK7mpK/mpLHmpLLmpLPmpLXmpLbmpLfmpLjmpLrmpLvmpLzmpL7mpYDmpYHmpYMiLDE2LCLmpZXmpZbmpZjmpZnmpZvmpZzmpZ8iXSxbIjk4NDAiLCLmpaHmpaLmpaTmpaXmpafmpajmpanmparmpazmpa3mpa/mpbDmpbIiLDQsIualuualu+alvealvualv+amgeamg+amheamiuami+amjOamjiIsNSwi5qaW5qaX5qaZ5qaa5qadIiw5LCLmpqnmpqrmpqzmpq7mpq/mprDmprLmprPmprXmprbmprjmprnmprrmprzmpr0iXSxbIjk4ODAiLCLmpr7mpr/mp4Dmp4IiLDcsIuani+anjeanj+ankeankuank+anlSIsNSwi5qec5qed5qee5qehIiwxMSwi5qeu5qev5qew5qex5qezIiw5LCLmp77mqIAiLDksIuaoiyIsMTEsIuaomSIsNSwi5qig5qiiIiw1LCLmqKnmqKvmqKzmqK3mqK7mqLDmqLLmqLPmqLTmqLYiLDYsIuaovyIsNCwi5qmF5qmG5qmIIiw3LCLmqZEiLDYsIuapmiJdLFsiOTk0MCIsIuapnCIsNCwi5qmi5qmj5qmk5qmmIiwxMCwi5qmyIiw2LCLmqbrmqbvmqb3mqb7mqb/mqoHmqoLmqoPmqoUiLDgsIuaqj+aqkiIsNCwi5qqYIiw3LCLmqqEiLDVdLFsiOTk4MCIsIuaqp+aqqOaqquaqrSIsMTE0LCLmrKXmrKbmrKgiLDZdLFsiOWE0MCIsIuasr+assOasseass+astOasteastuasuOasu+asvOasveasv+atgOatgeatguathOatheatiOatiuati+atjSIsMTEsIuatmiIsNywi5q2o5q2p5q2rIiwxMywi5q265q295q2+5q2/5q6A5q6F5q6IIl0sWyI5YTgwIiwi5q6M5q6O5q6P5q6Q5q6R5q6U5q6V5q6X5q6Y5q6Z5q6cIiw0LCLmrqIiLDcsIuauqyIsNywi5q625q64Iiw2LCLmr4Dmr4Pmr4Tmr4YiLDQsIuavjOavjuavkOavkeavmOavmuavnCIsNCwi5q+iIiw3LCLmr6zmr63mr67mr7Dmr7Hmr7Lmr7Tmr7bmr7fmr7jmr7rmr7vmr7zmr74iLDYsIuawiCIsNCwi5rCO5rCS5rCX5rCc5rCd5rCe5rCg5rCj5rCl5rCr5rCs5rCt5rCx5rCz5rC25rC35rC55rC65rC75rC85rC+5rC/5rGD5rGE5rGF5rGI5rGLIiw0LCLmsZHmsZLmsZPmsZbmsZgiXSxbIjliNDAiLCLmsZnmsZrmsaLmsaPmsaXmsabmsafmsasiLDQsIuaxseaxs+axteaxt+axuOaxuuaxu+axvOaxv+aygOayhOayh+ayiuayi+ayjeayjuaykeaykuayleayluayl+aymOaymuaynOayneaynuayoOayouayqOayrOayr+aysOaytOayteaytuayt+ayuuazgOazgeazguazg+azhuazh+aziOazi+azjeazjuazj+azkeazkuazmCJdLFsiOWI4MCIsIuazmeazmuaznOazneazn+azpOazpuazp+azqeazrOazreazsuaztOazueazv+a0gOa0gua0g+a0hea0hua0iOa0iea0iua0jea0j+a0kOa0kea0k+a0lOa0lea0lua0mOa0nOa0nea0nyIsNSwi5rSm5rSo5rSp5rSs5rSt5rSv5rSw5rS05rS25rS35rS45rS65rS/5rWA5rWC5rWE5rWJ5rWM5rWQ5rWV5rWW5rWX5rWY5rWb5rWd5rWf5rWh5rWi5rWk5rWl5rWn5rWo5rWr5rWs5rWt5rWw5rWx5rWy5rWz5rW15rW25rW55rW65rW75rW9Iiw0LCLmtoPmtoTmtobmtofmtormtovmto3mto/mtpDmtpLmtpYiLDQsIua2nOa2oua2pea2rOa2rea2sOa2sea2s+a2tOa2tua2t+a2uSIsNSwi5reB5reC5reD5reI5reJ5reKIl0sWyI5YzQwIiwi5reN5reO5reP5reQ5reS5reT5reU5reV5reX5rea5reb5rec5ref5rei5rej5rel5ren5reo5rep5req5ret5rev5rew5rey5re05re15re25re45re65re9Iiw3LCLmuIbmuIfmuIjmuInmuIvmuI/muJLmuJPmuJXmuJjmuJnmuJvmuJzmuJ7muJ/muKLmuKbmuKfmuKjmuKrmuKzmuK7muLDmuLHmuLPmuLUiXSxbIjljODAiLCLmuLbmuLfmuLnmuLsiLDcsIua5hSIsNywi5rmP5rmQ5rmR5rmS5rmV5rmX5rmZ5rma5rmc5rmd5rme5rmgIiwxMCwi5rms5rmt5rmvIiwxNCwi5rqA5rqB5rqC5rqE5rqH5rqI5rqKIiw0LCLmupEiLDYsIua6mea6mua6m+a6nea6nua6oOa6oea6o+a6pOa6pua6qOa6qea6q+a6rOa6rea6rua6sOa6s+a6tea6uOa6uea6vOa6vua6v+a7gOa7g+a7hOa7hea7hua7iOa7iea7iua7jOa7jea7jua7kOa7kua7lua7mOa7mea7m+a7nOa7nea7o+a7p+a7qiIsNV0sWyI5ZDQwIiwi5ruw5rux5ruy5ruz5ru15ru25ru35ru45ru6Iiw3LCLmvIPmvITmvIXmvIfmvIjmvIoiLDQsIua8kOa8kea8kua8liIsOSwi5ryh5ryi5ryj5ryl5rym5ryn5ryo5rys5ryu5ryw5ryy5ry05ry15ry3Iiw2LCLmvL/mvYDmvYHmvYIiXSxbIjlkODAiLCLmvYPmvYTmvYXmvYjmvYnmvYrmvYzmvY4iLDksIua9mea9mua9m+a9nea9n+a9oOa9oea9o+a9pOa9pea9pyIsNSwi5r2v5r2w5r2x5r2z5r215r225r235r255r275r29Iiw2LCLmvoXmvobmvofmvormvovmvo8iLDEyLCLmvp3mvp7mvp/mvqDmvqIiLDQsIua+qCIsMTAsIua+tOa+tea+t+a+uOa+uiIsNSwi5r+B5r+DIiw1LCLmv4oiLDYsIua/kyIsMTAsIua/n+a/oua/o+a/pOa/pSJdLFsiOWU0MCIsIua/piIsNywi5r+wIiwzMiwi54CSIiw3LCLngJwiLDYsIueApCIsNl0sWyI5ZTgwIiwi54CrIiw5LCLngLbngLfngLjngLoiLDE3LCLngY3ngY7ngZAiLDEzLCLngZ8iLDExLCLnga7ngbHngbLngbPngbTngbfngbnngbrngbvngb3ngoHngoLngoPngoTngobngofngojngovngozngo3ngo/ngpDngpHngpPngpfngpjngprngpvngp4iLDEyLCLngrDngrLngrTngrXngrbngrrngr7ngr/ng4Tng4Xng4bng4fng4nng4siLDEyLCLng5oiXSxbIjlmNDAiLCLng5zng53ng57ng6Dng6Hng6Lng6Png6Xng6rng67ng7AiLDYsIueDuOeDuueDu+eDvOeDviIsMTAsIueEiyIsNCwi54SR54SS54SU54SX54SbIiwxMCwi54SnIiw3LCLnhLLnhLPnhLQiXSxbIjlmODAiLCLnhLXnhLciLDEzLCLnhYbnhYfnhYjnhYnnhYvnhY3nhY8iLDEyLCLnhZ3nhZ8iLDQsIueFpeeFqSIsNCwi54Wv54Ww54Wx54W054W154W254W354W554W754W854W+Iiw1LCLnhoUiLDQsIueGi+eGjOeGjeeGjueGkOeGkeeGkueGk+eGleeGlueGl+eGmiIsNCwi54ahIiw2LCLnhqnnhqrnhqvnhq0iLDUsIueGtOeGtueGt+eGuOeGuiIsOCwi54eEIiw5LCLnh48iLDRdLFsiYTA0MCIsIueHliIsOSwi54eh54ei54ej54ek54em54eoIiw1LCLnh68iLDksIueHuiIsMTEsIueIhyIsMTldLFsiYTA4MCIsIueIm+eInOeIniIsOSwi54ip54ir54it54iu54iv54iy54iz54i054i654i854i+54mAIiw2LCLniYnniYrniYvniY7niY/niZDniZHniZPniZTniZXniZfniZjniZrniZzniZ7niaDniaPniaTniaXniajniarniavniaznia3nibDnibHnibPnibTnibbnibfnibjnibvnibznib3nioLnioPnioUiLDQsIueKjOeKjueKkOeKkeeKkyIsMTEsIueKoCIsMTEsIueKrueKseeKsueKs+eKteeKuiIsNiwi54uF54uG54uH54uJ54uK54uL54uM54uP54uR54uT54uU54uV54uW54uY54ua54ubIl0sWyJhMWExIiwi44CA44CB44CCwrfLicuHwqjjgIPjgIXigJTvvZ7igJbigKbigJjigJnigJzigJ3jgJTjgJXjgIgiLDcsIuOAluOAl+OAkOOAkcKxw5fDt+KItuKIp+KIqOKIkeKIj+KIquKIqeKIiOKIt+KImuKKpeKIpeKIoOKMkuKKmeKIq+KIruKJoeKJjOKJiOKIveKIneKJoOKJruKJr+KJpOKJpeKInuKIteKItOKZguKZgMKw4oCy4oCz4oSD77yEwqTvv6Dvv6HigLDCp+KEluKYhuKYheKXi+KXj+KXjuKXh+KXhuKWoeKWoOKWs+KWsuKAu+KGkuKGkOKGkeKGk+OAkyJdLFsiYTJhMSIsIuKFsCIsOV0sWyJhMmIxIiwi4pKIIiwxOSwi4pG0IiwxOSwi4pGgIiw5XSxbImEyZTUiLCLjiKAiLDldLFsiYTJmMSIsIuKFoCIsMTFdLFsiYTNhMSIsIu+8ge+8gu+8g++/pe+8hSIsODgsIu+/oyJdLFsiYTRhMSIsIuOBgSIsODJdLFsiYTVhMSIsIuOCoSIsODVdLFsiYTZhMSIsIs6RIiwxNiwizqMiLDZdLFsiYTZjMSIsIs6xIiwxNiwiz4MiLDZdLFsiYTZlMCIsIu+4te+4tu+4ue+4uu+4v++5gO+4ve+4vu+5ge+5gu+5g++5hCJdLFsiYTZlZSIsIu+4u++4vO+4t++4uO+4sSJdLFsiYTZmNCIsIu+4s++4tCJdLFsiYTdhMSIsItCQIiw1LCLQgdCWIiwyNV0sWyJhN2QxIiwi0LAiLDUsItGR0LYiLDI1XSxbImE4NDAiLCLLisuLy5nigJPigJXigKXigLXihIXihInihpbihpfihpjihpniiJXiiJ/iiKPiiZLiiabiiafiir/ilZAiLDM1LCLiloEiLDZdLFsiYTg4MCIsIuKWiCIsNywi4paT4paU4paV4pa84pa94pei4pej4pek4pel4piJ4oqV44CS44Cd44CeIl0sWyJhOGExIiwixIHDoceOw6DEk8OpxJvDqMSrw63HkMOsxY3Ds8eSw7LFq8O6x5TDuceWx5jHmsecw7zDqsmRIl0sWyJhOGJkIiwixYTFiCJdLFsiYThjMCIsIsmhIl0sWyJhOGM1Iiwi44SFIiwzNl0sWyJhOTQwIiwi44ChIiw4LCLjiqPjjo7jjo/jjpzjjp3jjp7jjqHjj4Tjj47jj5Hjj5Ljj5XvuLDvv6Lvv6QiXSxbImE5NTkiLCLihKHjiLEiXSxbImE5NWMiLCLigJAiXSxbImE5NjAiLCLjg7zjgpvjgpzjg73jg77jgIbjgp3jgp7vuYkiLDksIu+5lO+5le+5lu+5l++5mSIsOF0sWyJhOTgwIiwi77miIiw0LCLvuajvuanvuarvuasiXSxbImE5OTYiLCLjgIciXSxbImE5YTQiLCLilIAiLDc1XSxbImFhNDAiLCLni5zni53ni5/ni6IiLDUsIueLqueLq+eLteeLtueLueeLveeLvueLv+eMgOeMgueMhCIsNSwi54yL54yM54yN54yP54yQ54yR54yS54yU54yY54yZ54ya54yf54yg54yj54yk54ym54yn54yo54yt54yv54yw54yy54yz54y154y254y654y754y854y9542AIiw4XSxbImFhODAiLCLnjYnnjYrnjYvnjYznjY7njY/njZHnjZPnjZTnjZXnjZbnjZgiLDcsIueNoSIsMTAsIueNrueNsOeNsSJdLFsiYWI0MCIsIueNsiIsMTEsIueNvyIsNCwi546F546G546I546K546M546N546P546Q546S546T546U546V546X546Y546Z546a546c546d546e546g546h546jIiw1LCLnjqrnjqznjq3njrHnjrTnjrXnjrbnjrjnjrnnjrznjr3njr7njr/nj4Hnj4MiLDRdLFsiYWI4MCIsIuePi+ePjOePjuePkiIsNiwi54+a54+b54+c54+d54+f54+h54+i54+j54+k54+m54+o54+q54+r54+s54+u54+v54+w54+x54+zIiw0XSxbImFjNDAiLCLnj7giLDEwLCLnkITnkIfnkIjnkIvnkIznkI3nkI7nkJEiLDgsIueQnCIsNSwi55Cj55Ck55Cn55Cp55Cr55Ct55Cv55Cx55Cy55C3Iiw0LCLnkL3nkL7nkL/nkYDnkYIiLDExXSxbImFjODAiLCLnkY4iLDYsIueRlueRmOeRneeRoCIsMTIsIueRrueRr+eRsSIsNCwi55G455G555G6Il0sWyJhZDQwIiwi55G755G855G955G/55KC55KE55KF55KG55KI55KJ55KK55KM55KN55KP55KRIiwxMCwi55Kd55KfIiw3LCLnkqoiLDE1LCLnkrsiLDEyXSxbImFkODAiLCLnk4giLDksIueTkyIsOCwi55Od55Of55Oh55Ol55OnIiw2LCLnk7Dnk7Hnk7IiXSxbImFlNDAiLCLnk7Pnk7Xnk7giLDYsIueUgOeUgeeUgueUg+eUhSIsNywi55SO55SQ55SS55SU55SV55SW55SX55Sb55Sd55Se55SgIiw0LCLnlKbnlKfnlKrnlK7nlLTnlLbnlLnnlLznlL3nlL/nlYHnlYLnlYPnlYTnlYbnlYfnlYnnlYrnlY3nlZDnlZHnlZLnlZPnlZXnlZbnlZfnlZgiXSxbImFlODAiLCLnlZ0iLDcsIueVp+eVqOeVqeeVqyIsNiwi55Wz55W155W255W355W6Iiw0LCLnloDnloHnloLnloTnloXnlociXSxbImFmNDAiLCLnlojnlonnlornloznlo3nlo7nlpDnlpPnlpXnlpjnlpvnlpznlp7nlqLnlqYiLDQsIueWreeWtueWt+eWuueWu+eWv+eXgOeXgeeXhueXi+eXjOeXjueXj+eXkOeXkeeXk+eXl+eXmeeXmueXnOeXneeXn+eXoOeXoeeXpeeXqeeXrOeXreeXrueXr+eXsueXs+eXteeXtueXt+eXuOeXuueXu+eXveeXvueYgueYhOeYhueYhyJdLFsiYWY4MCIsIueYiOeYieeYi+eYjeeYjueYj+eYkeeYkueYk+eYlOeYlueYmueYnOeYneeYnueYoeeYo+eYp+eYqOeYrOeYrueYr+eYseeYsueYtueYt+eYueeYuueYu+eYveeZgeeZgueZhCJdLFsiYjA0MCIsIueZhSIsNiwi55mOIiw1LCLnmZXnmZciLDQsIueZneeZn+eZoOeZoeeZoueZpCIsNiwi55ms55mt55mu55mwIiw3LCLnmbnnmbrnmbznmb/nmoDnmoHnmoPnmoXnmonnmornmoznmo3nmo/nmpDnmpLnmpTnmpXnmpfnmpjnmprnmpsiXSxbImIwODAiLCLnmpwiLDcsIueapSIsOCwi55qv55qw55qz55q1Iiw5LCLnm4Dnm4Hnm4PllYrpmL/ln4PmjKjlk47llInlk4DnmpHnmYzolLznn67oib7noo3niLHpmpjpno3msKjlronkv7rmjInmmpflsrjog7rmoYjogq7mmILnm47lh7nmlZbnhqznv7HoooTlgrLlpaXmh4rmvrPoiq3mjYzmiZLlj63lkKfnrIblhavnlqTlt7Tmi5Tot4vpnbbmiorogJnlnZ3pnLjnvaLniLjnmb3mn4/nmb7mkYbkvbDotKXmi5znqJfmlpHnj63mkKzmibPoiKzpooHmnb/niYjmia7mi4zkvLTnk6PljYrlip7nu4rpgqbluK7moobmppzohoDnu5Hmo5Lno4XomozplZHlgo3osKToi57og57ljIXopJLliaUiXSxbImIxNDAiLCLnm4Tnm4fnm4nnm4vnm4znm5Pnm5Xnm5nnm5rnm5znm53nm57nm6AiLDQsIuebpiIsNywi55uw55uz55u155u255u355u655u755u955u/55yA55yC55yD55yF55yG55yK55yM55yOIiwxMCwi55yb55yc55yd55ye55yh55yj55yk55yl55yn55yq55yrIl0sWyJiMTgwIiwi55ys55yu55ywIiw0LCLnnLnnnLvnnL3nnL7nnL/nnYLnnYTnnYXnnYbnnYgiLDcsIuedkiIsNywi552c6JaE6Zu55L+d5aCh6aWx5a6d5oqx5oql5pq06LG56bKN54iG5p2v56KR5oKy5Y2R5YyX6L6I6IOM6LSd6ZKh5YCN54uI5aSH5oOr54SZ6KKr5aWU6Iuv5pys56yo5bSp57u355St5rO16Lmm6L+46YC86by75q+U6YSZ56yU5b2856Kn6JOW6JS95q+V5q+Z5q+W5biB5bqH55e56Zet5pWd5byK5b+F6L6f5aOB6IeC6YG/6Zmb6Z6t6L6557yW6LSs5omB5L6/5Y+Y5Y2e6L6o6L6p6L6r6YGN5qCH5b2q6IaY6KGo6bOW5oaL5Yir55iq5b2s5paM5r+S5ruo5a6+5pGI5YW15Yaw5p+E5LiZ56eJ6aW854KzIl0sWyJiMjQwIiwi552d552e552f552g552k552n552p552q552tIiwxMSwi552655275528556B556C556D556GIiw1LCLnno/nnpDnnpMiLDExLCLnnqHnnqPnnqTnnqbnnqjnnqvnnq3nnq7nnq/nnrHnnrLnnrTnnrYiLDRdLFsiYjI4MCIsIueevOeevuefgCIsMTIsIuefjiIsOCwi55+Y55+Z55+a55+dIiw0LCLnn6Tnl4Xlubbnjrvoj6Dmkq3mi6jpkrXms6LljZrli4PmkI/pk4LnrpTkvK/luJvoiLbohJbohormuKTms4rpqbPmjZXljZzlk7rooaXln6DkuI3luIPmraXnsL/pg6jmgJbmk6bnjJzoo4HmnZDmiY3otKLnnazouKnph4flvanoj5zolKHppJDlj4LompXmrovmg63mg6jngb/oi43oiLHku5Pmsqfol4/mk43ns5nmp73mm7nojYnljpXnrZbkvqflhozmtYvlsYLoua3mj5Llj4nojKzojLbmn6XnorTmkL3lr5/lspTlt67or6fmi4bmn7TosbrmkIDmjrronYnppovosJfnvKDpk7LkuqfpmJDpoqTmmIznjJYiXSxbImIzNDAiLCLnn6bnn6jnn6rnn6/nn7Dnn7Hnn7Lnn7Tnn7Xnn7fnn7nnn7rnn7vnn7znoIMiLDUsIuegiuegi+egjuegj+egkOegk+egleegmeegm+egnuegoOegoeegouegpOegqOegquegq+egruegr+egseegsuegs+egteegtuegveegv+ehgeehguehg+ehhOehhuehiOehieehiuehi+ehjeehj+ehkeehk+ehlOehmOehmeehmiJdLFsiYjM4MCIsIuehm+ehnOehniIsMTEsIuehryIsNywi56G456G556G656G756G9Iiw2LCLlnLrlsJ3luLjplb/lgb/ogqDljoLmlZ7nlYXllLHlgKHotoXmioTpkp7mnJ3lmLLmva7lt6LlkLXngpLovabmia/mkqTmjqPlvbvmvojpg7Toh6PovrDlsJjmmajlv7HmsonpmYjotoHooazmkpHnp7Dln47mqZnmiJDlkYjkuZjnqIvmg6nmvoTor5rmib/pgJ7pqovnp6TlkIPnl7TmjIHljJnmsaDov5/lvJvpqbDogLvpvb/kvojlsLrotaTnv4XmlqXngr3lhYXlhrLomavltIflrqDmir3phaznlbTouIznqKDmhIHnrbnku4fnu7jnnoXkuJHoh63liJ3lh7rmqbHljqjouofplITpm4/mu4HpmaTmpZoiXSxbImI0NDAiLCLnooTnooXnoobnoojnoornoovnoo/nopDnopLnopTnopXnopbnopnnop3nop7noqDnoqLnoqTnoqbnoqgiLDcsIueiteeitueit+eiuOeiuueiu+eivOeiveeiv+ejgOejguejg+ejhOejhuejh+ejiOejjOejjeejjuejj+ejkeejkuejk+ejluejl+ejmOejmiIsOV0sWyJiNDgwIiwi56Ok56Ol56Om56On56Op56Oq56Or56OtIiw0LCLno7Pno7Xno7bno7jno7nno7siLDUsIuekguekg+ekhOekhiIsNiwi56GA5YKo55+X5pCQ6Kem5aSE5o+j5bed56m/5qS95Lyg6Ii55ZaY5Liy55au56qX5bmi5bqK6Zev5Yib5ZC554KK5o226ZSk5Z6C5pil5qS/6YaH5ZSH5rez57qv6KCi5oiz57uw55a16Iyo56OB6ZuM6L6e5oWI55O36K+N5q2k5Yi66LWQ5qyh6IGq6JGx5Zux5YyG5LuO5Lib5YeR57KX6YaL57CH5L+D6Lm/56+h56qc5pGn5bSU5YKs6ISG55iB57K55res57+g5p2R5a2Y5a+456OL5pKu5pCT5o6q5oyr6ZSZ5pCt6L6+562U55ip5omT5aSn5ZGG5q255YKj5oi05bim5q6G5Luj6LS36KKL5b6F6YCuIl0sWyJiNTQwIiwi56SNIiw1LCLnpJQiLDksIueknyIsNCwi56SlIiwxNCwi56S1Iiw0LCLnpL3npL/npYLnpYPnpYTnpYXnpYfnpYoiLDgsIuellOelleelmOelmeeloeeloyJdLFsiYjU4MCIsIuelpOelpuelqeelquelq+elrOelruelsCIsNiwi56W556W7Iiw0LCLnpoLnpoPnpobnpofnpojnponnpovnpoznpo3npo7nppDnppHnppLmgKDogL3mi4XkuLnljZXpg7jmjrjog4bml6bmsK7kvYbmg67mt6Hor57lvLnom4vlvZPmjKHlhZrojaHmoaPliIDmjaPouYjlgJLlspvnpbflr7zliLDnqLvmgrzpgZPnm5flvrflvpfnmoTouaznga/nmbvnrYnnnqrlh7PpgpPloKTkvY7mu7Tov6rmlYznrJvni4TmtqTnv5/lq6HmirXlupXlnLDokoLnrKzluJ3lvJ/pgJLnvJTpoqDmjoLmu4fnopjngrnlhbjpnZvlnqvnlLXkvYPnlLjlupfmg6blpaDmt4Dmrr/noonlj7zpm5Xlh4vliIHmjonlkIrpkpPosIPot4zniLnnop/onbbov63osI3lj6AiXSxbImI2NDAiLCLnppMiLDYsIuemmyIsMTEsIuemqCIsMTAsIuemtCIsNCwi56a856a/56eC56eE56eF56eH56eI56eK56eM56eO56eP56eQ56eT56eU56eW56eX56eZIiw1LCLnp6Dnp6Hnp6Lnp6Xnp6jnp6oiXSxbImI2ODAiLCLnp6znp67np7EiLDYsIuenueenuuenvOenvuenv+eogeeohOeoheeoh+eoiOeoieeoiueojOeojyIsNCwi56iV56iW56iY56iZ56ib56ic5LiB55uv5Y+u6ZKJ6aG26byO6ZSt5a6a6K6i5Lii5Lic5Yas6JGj5oeC5Yqo5qCL5L6X5oGr5Ya75rSe5YWc5oqW5paX6Zmh6LGG6YCX55eY6YO9552j5q+S54qK54us6K+75aC155256LWM5p2c6ZWA6IKa5bqm5rih5aaS56uv55+t6ZS75q615pat57yO5aCG5YWR6Zif5a+55aKp5ZCo6Lmy5pWm6aG/5Zuk6ZKd55u+6YGB5o6H5ZOG5aSa5aS65Z6b6Lqy5py16Le66Ii15YmB5oOw5aCV6Ju+5bOo6bmF5L+E6aKd6K655ail5oG25Y6E5om86YGP6YSC6aW/5oGp6ICM5YS/6ICz5bCU6aW15rSx5LqMIl0sWyJiNzQwIiwi56id56if56ih56ii56ikIiwxNCwi56i056i156i256i456i656i+56mAIiw1LCLnqYciLDksIuepkiIsNCwi56mYIiwxNl0sWyJiNzgwIiwi56mpIiw2LCLnqbHnqbLnqbPnqbXnqbvnqbznqb3nqb7nqoLnqoXnqofnqonnqornqovnqoznqo7nqo/nqpDnqpPnqpTnqpnnqprnqpvnqp7nqqHnqqLotLDlj5HnvZrnrY/kvJDkuY/pmIDms5Xnj5Dol6nluIbnlarnv7vmqIrnn77pkpLnuYHlh6Hng6blj43ov5TojIPotKnniq/ppa3ms5vlnYroirPmlrnogqrmiL/pmLLlpqjku7/orr/nurrmlL7oj7LpnZ7llaHpo57ogqXljKror73lkKDogrrlup/msrjotLnoiqzphZrlkKnmsJvliIbnurflnZ/nhJrmsb7nsonlpYvku73lv7/mhKTnsqrkuLDlsIHmnqvonILls7DplIvpo47nlq/ng73pgKLlhq/nvJ3orr3lpYnlh6TkvZvlkKblpKvmlbfogqTlrbXmibbmi4LovpDluYXmsJ/nrKbkvI/kv5jmnI0iXSxbImI4NDAiLCLnqqPnqqTnqqfnqqnnqqrnqqvnqq4iLDQsIueqtCIsMTAsIuergCIsMTAsIuerjCIsOSwi56uX56uY56ua56ub56uc56ud56uh56ui56uk56unIiw1LCLnq67nq7Dnq7Hnq7Lnq7MiXSxbImI4ODAiLCLnq7QiLDQsIueru+ervOervuesgOesgeesguesheesh+esieesjOesjeesjueskOeskuesk+esluesl+esmOesmuesnOesneesn+esoeesoueso+esp+esqeesrea1rua2quemj+iiseW8l+eUq+aKmui+heS/r+mHnOaWp+iEr+iFkeW6nOiFkOi1tOWJr+imhui1i+WkjeWCheS7mOmYnOeItuiFuei0n+WvjOiuo+mZhOWmh+e8muWSkOWZtuWYjuivpeaUueamgumSmeeblua6ieW5sueUmOadhuafkeerv+iCnei1tuaEn+enhuaVoui1o+WGiOWImumSoue8uOiCm+e6suWyl+a4r+adoOevmeeai+mrmOiGj+e+lOezleaQnumVkOeov+WRiuWTpeatjOaQgeaIiOm4veiDs+eWmeWJsumdqeiRm+agvOibpOmYgemalOmTrOS4quWQhOe7meaguei3n+iAleabtOW6mue+uSJdLFsiYjk0MCIsIuesr+essOessuestOesteestuest+esueesu+esveesvyIsNSwi562G562I562K562N562O562T562V562X562Z562c562e562f562h562jIiwxMCwi562v562w562z562056225624562656285629562/566B566C566D566E566GIiw2LCLnro7nro8iXSxbImI5ODAiLCLnrpHnrpLnrpPnrpbnrpjnrpnnrprnrpvnrp7nrp/nrqDnrqPnrqTnrqXnrq7nrq/nrrDnrrLnrrPnrrXnrrbnrrfnrrkiLDcsIuevguevg+evhOWfguiAv+ail+W3peaUu+WKn+aBrem+muS+m+i6rOWFrOWuq+W8k+W3qeaxnuaLsei0oeWFsemSqeWLvuayn+iLn+eLl+WeouaehOi0reWkn+i+nOiPh+WSleeujeS8sOayveWtpOWnkem8k+WPpOibiumqqOiwt+iCoeaVhemhvuWbuumbh+WIrueTnOWJkOWvoeaMguikguS5luaLkOaAquajuuWFs+WumOWGoOingueuoemmhue9kOaDr+eBjOi0r+WFieW5v+mAm+eRsOinhOWcreehheW9kum+n+mXuui9qOmsvOivoeeZuOahguafnOi3qui0teWIvei+iua7muajjemUhemDreWbveaenOijuei/h+WTiCJdLFsiYmE0MCIsIuevheeviOevieeviuevi+evjeevjuevj+evkOevkuevlCIsNCwi56+b56+c56+e56+f56+g56+i56+j56+k56+n56+o56+p56+r56+s56+t56+v56+w56+yIiw0LCLnr7jnr7nnr7rnr7vnr73nr78iLDcsIuewiOewieewiuewjeewjuewkCIsNSwi57CX57CY57CZIl0sWyJiYTgwIiwi57CaIiw0LCLnsKAiLDUsIuewqOewqeewqyIsMTIsIuewuSIsNSwi57GC6aq45a2p5rW35rCm5Lql5a6z6aqH6YWj5oao6YKv6Z+p5ZCr5ra15a+S5Ye95ZaK572V57+w5pK85o2N5pex5oa+5oKN54SK5rGX5rGJ5aSv5p2t6Iiq5aOV5ZqO6LGq5q+r6YOd5aW96ICX5Y+35rWp5ZG15Zad6I236I+P5qC456a+5ZKM5L2V5ZCI55uS6LKJ6ZiC5rKz5ra46LWr6KSQ6bmk6LS65Zi/6buR55eV5b6I54ug5oGo5ZO85Lqo5qiq6KGh5oGS6L2w5ZOE54OY6Jm56bi/5rSq5a6P5byY57qi5ZaJ5L6v54y05ZC85Y6a5YCZ5ZCO5ZG85LmO5b+955Ga5aO26JGr6IOh6J2054uQ57OK5rmWIl0sWyJiYjQwIiwi57GDIiw5LCLnsY4iLDM2LCLnsbUiLDUsIuexviIsOV0sWyJiYjgwIiwi57KI57KKIiw2LCLnspPnspTnspbnspnnsprnspvnsqDnsqHnsqPnsqbnsqfnsqjnsqnnsqvnsqznsq3nsq/nsrDnsrQiLDQsIueyuueyu+W8p+iZjuWUrOaKpOS6kuayquaIt+iKseWTl+WNjueMvua7keeUu+WIkuWMluivneankOW+iuaAgOa3ruWdj+asoueOr+ahk+i/mOe8k+aNouaCo+WUpOeXquixoueElea2o+WupuW5u+iNkuaFjOm7hOejuuidl+ewp+eah+WHsOaDtueFjOaZg+W5jOaBjeiwjueBsOaMpei+ieW+veaBouiblOWbnuavgeaClOaFp+WNieaDoOaZpui0v+enveS8mueDqeaxh+ius+ivsue7mOiNpOaYj+Wpmumtgua1kea3t+ixgea0u+S8meeBq+iOt+aIluaDkemcjei0p+eluOWHu+WcvuWfuuacuueVuOeoveenr+eulSJdLFsiYmM0MCIsIueyv+ezgOezguezg+ezhOezhuezieezi+ezjiIsNiwi57OY57Oa57Ob57Od57Oe57OhIiw2LCLns6kiLDUsIuezsCIsNywi57O557O657O8IiwxMywi57SLIiw1XSxbImJjODAiLCLntJEiLDE0LCLntKHntKPntKTntKXntKbntKjntKnntKrntKzntK3ntK7ntLAiLDYsIuiCjOmlpei/uea/gOiupem4oeWnrOe7qee8ieWQieaegeajmOi+keexjembhuWPiuaApeeWvuaxsuWNs+Wriee6p+aMpOWHoOiEiuW3seiTn+aKgOWGgOWto+S8juelreWJguaCuOa1juWvhOWvguiuoeiusOaXouW/jOmZheWmk+e7p+e6quWYieaet+WkueS9s+WutuWKoOiNmumiiui0vueUsumSvuWBh+eovOS7t+aetumpvuWrgeatvOebkeWdmuWwluesuumXtOeFjuWFvOiCqeiJsOWluOe8hOiMp+ajgOafrOeiseeht+aLo+aNoeeugOS/reWJquWHj+iNkOanm+mJtOi3tei0seingemUrueureS7tiJdLFsiYmQ0MCIsIue0tyIsNTQsIue1ryIsN10sWyJiZDgwIiwi57W4IiwzMiwi5YGl6Iiw5YmR6aWv5riQ5rqF5ran5bu65YO15aec5bCG5rWG5rGf55aG6JKL5qGo5aWW6K6y5Yyg6YWx6ZmN6JWJ5qSS56SB54Sm6IO25Lqk6YOK5rWH6aqE5aiH5Zq85pCF6ZOw55+r5L6l6ISa54uh6KeS6aW657y057ue5Ym/5pWZ6YW16L2/6L6D5Y+r56qW5o+t5o6l55qG56e46KGX6Zi25oiq5Yqr6IqC5qGU5p2w5o23552r56ut5rSB57uT6Kej5aeQ5oiS6JeJ6Iql55WM5YCf5LuL55al6K+r5bGK5be+562L5pak6YeR5LuK5rSl6KWf57Sn6ZSm5LuF6LCo6L+b6Z2z5pmL56aB6L+R54Os5rW4Il0sWyJiZTQwIiwi57aZIiwxMiwi57anIiw2LCLntq8iLDQyXSxbImJlODAiLCLnt5oiLDMyLCLlsL3lirLojYblhaLojI7nnZvmmbbpsrjkuqzmg4rnsr7nsrPnu4/kupXorabmma/poojpnZnlooPmlazplZzlvoTnl4npnZbnq5/nq57lh4Dngq/nqpjmj6rnqbbnuqDnjpbpn63kuYXngbjkuZ3phZLljqnmlZHml6foh7zoiIXlko7lsLHnlprpnqDmi5jni5nnlr3lsYXpqbnoj4rlsYDlkoDnn6nkuL7msq7ogZrmi5Lmja7lt6jlhbfot53ouJ7plK/kv7Hlj6Xmg6fngqzliafmjZDpuYPlqJ/lgKbnnLfljbfnu6LmkoXmlKvmionmjpjlgJTniLXop4nlhrPor4Dnu53lnYfoj4zpkqflhpvlkJvls7siXSxbImJmNDAiLCLnt7siLDYyXSxbImJmODAiLCLnuLrnuLwiLDQsIue5giIsNCwi57mIIiwyMSwi5L+K56uj5rWa6YOh6aqP5ZaA5ZKW5Y2h5ZKv5byA5o+p5qW35Yev5oWo5YiK5aCq5YuY5Z2O56CN55yL5bq35oW357Og5omb5oqX5Lqi54KV6ICD5ou354Ok6Z2g5Z236Iub5p+v5qO156OV6aKX56eR5aOz5ZKz5Y+v5ri05YWL5Yi75a6i6K++6IKv5ZWD5Z6m5oGz5Z2R5ZCt56m65oGQ5a2U5o6n5oqg5Y+j5omj5a+H5p6v5ZOt56qf6Ium6YW35bqT6KOk5aS45Z6u5oyO6Leo6IOv5Z2X56235L6p5b+r5a695qy+5Yyh562Q54uC5qGG55+/55y25pe35Ya15LqP55uU5bK/56ql6JG15aWO6a2B5YKAIl0sWyJjMDQwIiwi57meIiwzNSwi57qDIiwyMywi57qc57qd57qeIl0sWyJjMDgwIiwi57qu57q057q757q857uW57uk57us57u557yK57yQ57ye57y357y557y7Iiw2LCLnvYPnvYYiLDksIue9kue9k+mmiOaEp+a6g+WdpOaYhuaNhuWbsOaLrOaJqeW7k+mYlOWeg+aLieWWh+icoeiFiui+o+WVpuiOseadpei1luiTneWpquagj+aLpuevrumYkeWFsOa+nOiwsOaPveiniOaHkue8hueDgua7peeQheamlOeLvOW7iumDjuacl+a1quaNnuWKs+eJouiAgeS9rOWnpemFqueDmea2neWLkuS5kOmbt+mVreiVvuejiue0r+WEoeWekuaTguiCi+exu+azquajsealnuWGt+WOmOaiqOeKgem7juevseeLuOemu+a8k+eQhuadjumHjOmypOekvOiOieiNlOWQj+agl+S4veWOieWKseegvuWOhuWIqeWCiOS+i+S/kCJdLFsiYzE0MCIsIue9lue9mee9m+e9nOe9nee9nue9oOe9oyIsNCwi572r572s572t572v572w572z57215722572357245726572757285729572/576A576CIiw3LCLnvovnvo3nvo8iLDQsIue+lSIsNCwi576b576c576g576i576j576l576m576oIiw2LCLnvrEiXSxbImMxODAiLCLnvrMiLDQsIue+uue+u+e+vue/gOe/gue/g+e/hOe/hue/h+e/iOe/iee/i+e/jee/jyIsNCwi57+W57+X57+ZIiw1LCLnv6Lnv6Pnl6Lnq4vnspLmsqXpmrblipvnkoPlk6nkv6nogZTojrLov57plbDlu4nmgJzmtp/luJjmlZvohLjpk77mgYvngrznu4Pnsq7lh4nmooHnsrHoia/kuKTovobph4/mmb7kuq7osIXmkqnogYrlg5rnlpfnh47lr6Xovr3mvabkuobmkoLplaPlu5bmlpnliJfoo4Lng4jliqPnjI7nkLPmnpfno7fpnJbkuLTpgrvps57mt4vlh5votYHlkJ3mi47njrLoj7Hpm7bpvoTpk4PkvLbnvprlh4zngbXpmbXlsq3pooblj6bku6TmupznkInmprTnoavppo/nlZnliJjnmKTmtYHmn7Plha3pvpnogYvlkpnnrLznqr8iXSxbImMyNDAiLCLnv6Tnv6fnv6jnv6rnv6vnv6znv63nv6/nv7Lnv7QiLDYsIue/vee/vue/v+iAguiAh+iAiOiAieiAiuiAjuiAj+iAkeiAk+iAmuiAm+iAneiAnuiAn+iAoeiAo+iApOiAqyIsNSwi6ICy6IC06IC56IC66IC86IC+6IGA6IGB6IGE6IGF6IGH6IGI6IGJ6IGO6IGP6IGQ6IGR6IGT6IGV6IGW6IGXIl0sWyJjMjgwIiwi6IGZ6IGbIiwxMywi6IGrIiw1LCLogbIiLDExLCLpmoblnoTmi6LpmYfmpbzlqITmkILnr5PmvI/pmYvoiqbljaLpooXlupDngonmjrPljaTomY/psoHpupPnoozpnLLot6/otYLpub/mvZ7npoTlvZXpmYbmiK7pqbTlkJXpk53kvqPml4XlsaXlsaHnvJXomZHmsK/lvovnjofmu6Tnu7/ls6bmjJvlrarmu6bljbXkubHmjqDnlaXmiqHova7kvKbku5HmsqbnurborrrokJ3onrrnvZfpgLvplKPnrqnpqqHoo7jokL3mtJvpqobnu5zlpojpurvnjpvnoIHomoLpqazpqoLlmJvlkJfln4vkubDpuqbljZbov4johInnnpLpppLom67mu6HolJPmm7zmhaLmvKsiXSxbImMzNDAiLCLogb7ogoHogoLogoXogojogorogo0iLDUsIuiClOiCleiCl+iCmeiCnuiCo+iCpuiCp+iCqOiCrOiCsOiCs+iCteiCtuiCuOiCueiCu+iDheiDhyIsNCwi6IOPIiw2LCLog5jog5/og6Dog6Log6Pog6bog67og7Xog7fog7nog7vog77og7/ohIDohIHohIPohITohIXohIfohIjohIsiXSxbImMzODAiLCLohIzohJXohJfohJnohJvohJzohJ3ohJ8iLDEyLCLohK3ohK7ohLDohLPohLTohLXohLfohLkiLDQsIuiEv+iwqeiKkuiMq+ebsuawk+W/meiOveeMq+iMhemUmuavm+efm+mThuWNr+iMguWGkuW4veiyjOi0uOS5iOeOq+aemuaihemFtumcieeFpOayoeecieWqkumVgeavj+e+juaYp+WvkOWmueWqmumXqOmXt+S7rOiQjOiSmeaqrOebn+mUsOeMm+aipuWtn+ecr+mGmumdoeeznOi/t+iwnOW8peexs+enmOinheazjOicnOWvhuW5guajieecoOe7teWGleWFjeWLieWoqee8hemdouiLl+aPj+eehOiXkOenkua4uuW6meWmmeiUkeeBreawkeaKv+eav+aVj+aCr+mXveaYjuien+m4o+mTreWQjeWRveiwrOaRuCJdLFsiYzQ0MCIsIuiFgCIsNSwi6IWH6IWJ6IWN6IWO6IWP6IWS6IWW6IWX6IWY6IWbIiw0LCLohaHohaLohaPohaTohabohajoharohavohazoha/ohbLohbPohbXohbbohbfohbjohoHohoMiLDQsIuiGieiGi+iGjOiGjeiGjuiGkOiGkiIsNSwi6IaZ6Iaa6IaeIiw0LCLohqTohqUiXSxbImM0ODAiLCLohqfohqnohqsiLDcsIuiGtCIsNSwi6Ia86Ia96Ia+6Ia/6IeE6IeF6IeH6IeI6IeJ6IeL6IeNIiw2LCLmkbnomJHmqKHohpzno6jmkanprZTmirnmnKvojqvloqjpu5jmsqvmvKDlr57pmYzosIvniZ/mn5Dmi4fniaHkuqnlp4bmr43lopPmmq7luZXli5/mhZXmnKjnm67nnabniafnqYbmi7/lk6rlkZDpkqDpgqPlqJznurPmsJbkuYPlpbbogJDlpYjljZfnlLfpmr7lm4rmjKDohJHmgbzpl7nmt5blkaLppoHlhoXlq6nog73lpq7pnJPlgKrms6XlsLzmi5/kvaDljL/ohbvpgIbmurrolKvmi4jlubTnor7mkrXmjbvlv7XlqJjphb/puJ/lsL/mjY/ogYLlrb3lla7plYrplY3mtoXmgqjmn6Dni57lh53lroEiXSxbImM1NDAiLCLoh5QiLDE0LCLoh6Toh6Xoh6boh6joh6noh6voh64iLDQsIuiHtSIsNSwi6Ie96Ie/6IiD6IiHIiw0LCLoiI7oiI/oiJHoiJPoiJUiLDUsIuiIneiIoOiIpOiIpeiIpuiIp+iIqeiIruiIsuiIuuiIvOiIveiIvyJdLFsiYzU4MCIsIuiJgOiJgeiJguiJg+iJheiJhuiJiOiJiuiJjOiJjeiJjuiJkCIsNywi6ImZ6Imb6Imc6Imd6Ime6ImgIiw3LCLoianmi6fms57niZvmia3pkq7nur3ohJPmtZPlhpzlvITlpbTliqrmgJLlpbPmmpbomZDnlp/mjKrmh6bns6/or7rlk6bmrKfpuKXmrrTol5XlkZXlgbbmsqTllarotrTniKzluJXmgJXnkLbmi43mjpLniYzlvpjmuYPmtL7mlIDmvZjnm5jno5Dnm7znlZTliKTlj5vkuZPlup7ml4HogKrog5bmipvlkobliKjngq7ooo3ot5Hms6Hlkbjog5rln7noo7TotZTpmarphY3kvanmspvllrfnm4bnoLDmiqjng7nmvo7lva3ok6zmo5rnobznr7fohqjmnIvpuY/mjafnorDlna/noJLpnLnmibnmiqvliojnkLXmr5ciXSxbImM2NDAiLCLoiaroiavoiazoia3oibHoibXoibboibfoibjoibvoibzoioDoioHoioPoioXoioboiofoionoiozoipDoipPoipToipXoipboiproipvoip7oiqDoiqLoiqPoiqfoirLoirXoirboirroirvoirzoir/oi4Doi4Loi4Poi4Xoi4boi4noi5Doi5boi5noi5roi53oi6Loi6foi6joi6noi6roi6zoi63oi67oi7Doi7Loi7Poi7Xoi7boi7giXSxbImM2ODAiLCLoi7roi7wiLDQsIuiMiuiMi+iMjeiMkOiMkuiMk+iMluiMmOiMmeiMnSIsOSwi6Iyp6Iyq6Iyu6Iyw6Iyy6Iy36Iy76Iy95ZWk6IS+55ay55qu5Yy555ee5YO75bGB6K2s56+H5YGP54mH6aqX6aOY5ryC55Oi56Wo5pKH556l5ou86aKR6LSr5ZOB6IGY5LmS5Z2q6Iu56JCN5bmz5Yet55O26K+E5bGP5Z2h5rO86aKH5amG56C06a2E6L+r57KV5YmW5omR6ZO65LuG6I6G6JGh6I+p6JKy5Z+U5py05ZyD5pmu5rWm6LCx5pud54CR5pyf5qy65qCW5oia5aa75LiD5YeE5ryG5p+S5rKP5YW25qOL5aWH5q2n55Wm5bSO6ISQ6b2Q5peX56WI56WB6aqR6LW35bKC5Lme5LyB5ZCv5aWR56CM5Zmo5rCU6L+E5byD5rG95rOj6K6r5o6QIl0sWyJjNzQwIiwi6Iy+6Iy/6I2B6I2C6I2E6I2F6I2I6I2KIiw0LCLojZPojZUiLDQsIuiNneiNouiNsCIsNiwi6I256I266I2+Iiw2LCLojofojojojorojovojozojo3ojo/ojpDojpHojpTojpXojpbojpfojpnojprojp3ojp/ojqEiLDYsIuiOrOiOreiOriJdLFsiYzc4MCIsIuiOr+iOteiOu+iOvuiOv+iPguiPg+iPhOiPhuiPiOiPieiPi+iPjeiPjuiPkOiPkeiPkuiPk+iPleiPl+iPmeiPmuiPm+iPnuiPouiPo+iPpOiPpuiPp+iPqOiPq+iPrOiPreaBsOa0veeJteaJpumSjumTheWNg+i/geetvuS7n+iwpuS5vum7lOmSsemSs+WJjea9nOmBo+a1heiwtOWgkeW1jOasoOatieaequWRm+iFlOe+jOWimeiUt+W8uuaKouaph+mUueaVsuaChOahpeeep+S5lOS+qOW3p+memOaSrOe/mOWzreS/j+eqjeWIh+iMhOS4lOaAr+eqg+mSpuS+teS6suenpueQtOWLpOiKueaTkuemveWvneaygemdkui9u+awouWAvuWNv+a4heaTjuaZtOawsOaDhemht+ivt+W6hueQvOept+eni+S4mOmCseeQg+axguWbmumFi+azhei2i+WMuuibhuabsui6r+WxiOmpsea4oCJdLFsiYzg0MCIsIuiPruiPr+iPsyIsNCwi6I+66I+76I+86I++6I+/6JCA6JCC6JCF6JCH6JCI6JCJ6JCK6JCQ6JCSIiw1LCLokJnokJrokJvokJ4iLDUsIuiQqSIsNywi6JCyIiw1LCLokLnokLrokLvokL4iLDcsIuiRh+iRiOiRiSJdLFsiYzg4MCIsIuiRiiIsNiwi6JGSIiw0LCLokZjokZ3okZ7okZ/okaDokaLokaQiLDQsIuiRquiRruiRr+iRsOiRsuiRtOiRt+iRueiRu+iRvOWPluWotum+i+i2o+WOu+WciOmip+adg+mGm+azieWFqOeXiuaLs+eKrOWIuOWKnee8uueClOeYuOWNtOm5iuamt+ehrumbgOijmee+pOeEtueHg+WGieafk+eTpOWjpOaUmOWat+iuqemltuaJsOe7leaDueeDreWjrOS7geS6uuW/jemfp+S7u+iupOWIg+Wmiue6q+aJlOS7jeaXpeaIjuiMuOiTieiNo+iejeeGlOa6tuWuuee7kuWGl+aPieaflOiCieiMueigleWEkuWtuuWmgui+seS5s+axneWFpeikpei9r+mYruiViueRnumUkOmXsOa2puiLpeW8seaSkua0kuiQqOiFrumzg+Whnui1m+S4ieWPgSJdLFsiYzk0MCIsIuiRvSIsNCwi6JKD6JKE6JKF6JKG6JKK6JKN6JKPIiw3LCLokpjokprokpvokp3okp7okp/okqDokqIiLDEyLCLokrDokrHokrPokrXokrbokrfokrvokrzokr7ok4Dok4Lok4Pok4Xok4bok4fok4jok4vok4zok47ok4/ok5Lok5Tok5Xok5ciXSxbImM5ODAiLCLok5giLDQsIuiTnuiToeiTouiTpOiTpyIsNCwi6JOt6JOu6JOv6JOxIiwxMCwi6JO96JO+6JSA6JSB6JSC5Lye5pWj5qGR5ZeT5Lin5pCU6aqa5omr5auC55Gf6Imy5rap5qOu5YOn6I6O56CC5p2A5Yi55rKZ57qx5YK75ZWl54We562b5pmS54+K6Iur5p2J5bGx5Yig54W96KGr6Zeq6ZmV5pOF6LWh6Iaz5ZaE5rGV5omH57yu5aKS5Lyk5ZWG6LWP5pmM5LiK5bCa6KOz5qKi5o2O56iN54On6IqN5Yu66Z+25bCR5ZOo6YK157uN5aWi6LWK6JuH6IiM6IiN6LWm5pGE5bCE5oWR5raJ56S+6K6+56C355Sz5ZG75Ly46Lqr5rex5aig57uF56We5rKI5a6h5am255Sa6IK+5oWO5riX5aOw55Sf55Sl54my5Y2H57uzIl0sWyJjYTQwIiwi6JSDIiw4LCLolI3olI7olI/olJDolJLolJTolJXolJbolJjolJnolJvolJzolJ3olJ7olKDolKIiLDgsIuiUrSIsOSwi6JS+Iiw0LCLolYTolYXolYbolYfolYsiLDEwXSxbImNhODAiLCLolZfolZjolZrolZvolZzolZ3olZ8iLDQsIuiVpeiVpuiVp+iVqSIsOCwi6JWz6JW16JW26JW36JW46JW86JW96JW/6JaA6JaB55yB55ub5Ymp6IOc5Zyj5biI5aSx54uu5pa95rm/6K+X5bC46Jmx5Y2B55+z5ou+5pe25LuA6aOf6JqA5a6e6K+G5Y+y55+i5L2/5bGO6am25aeL5byP56S65aOr5LiW5p+/5LqL5out6KqT6YCd5Yq/5piv5Zec5Zms6YCC5LuV5L6N6YeK6aWw5rCP5biC5oGD5a6k6KeG6K+V5pS25omL6aaW5a6I5a+/5o6I5ZSu5Y+X55im5YW96JSs5p6i5qKz5q6K5oqS6L6T5Y+U6IiS5reR55aP5Lmm6LWO5a2w54af6Jav5pqR5puZ572y6JyA6buN6byg5bGe5pyv6L+w5qCR5p2f5oiN56uW5aKF5bq25pWw5ryxIl0sWyJjYjQwIiwi6JaC6JaD6JaG6JaIIiw2LCLolpAiLDEwLCLolp0iLDYsIuiWpeiWpuiWp+iWqeiWq+iWrOiWreiWsSIsNSwi6Ja46Ja6Iiw2LCLol4IiLDYsIuiXiiIsNCwi6JeR6JeSIl0sWyJjYjgwIiwi6JeU6JeWIiw1LCLol50iLDYsIuiXpeiXpuiXp+iXqOiXqiIsMTQsIuaBleWIt+iAjeaRlOihsOeUqeW4heagk+aLtOmcnOWPjOeIveiwgeawtOedoeeojuWQrueerOmhuuiInOivtOehleaclOeDgeaWr+aSleWYtuaAneengeWPuOS4neatu+iChuWvuuWXo+Wbm+S8uuS8vOmlsuW3s+advuiAuOaAgumigumAgeWui+iuvOivteaQnOiJmOaTnuWXveiLj+mFpeS/l+e0oOmAn+eyn+WDs+Whkea6r+Wuv+ivieiCg+mFuOiSnOeul+iZvemai+maj+e7pemrk+eijuWygeepl+mBgumap+eln+WtmeaNn+esi+iTkeaireWUhue8qeeQkOe0oumUgeaJgOWhjOS7luWug+WlueWhlCJdLFsiY2M0MCIsIuiXueiXuuiXvOiXveiXvuiYgCIsNCwi6JiGIiwxMCwi6JiS6JiT6JiU6JiV6JiXIiwxNSwi6Jio6JiqIiwxMywi6Ji56Ji66Ji76Ji96Ji+6Ji/6JmAIl0sWyJjYzgwIiwi6JmBIiwxMSwi6JmS6JmT6JmVIiw0LCLomZvomZzomZ3omZ/omaDomaHomaMiLDcsIueNreaMnui5i+i4j+iDjuiLlOaKrOWPsOazsOmFnuWkquaAgeaxsOWdjeaRiui0queYq+a7qeWdm+aqgOeXsOa9reiwreiwiOWdpuavr+iikueis+aOouWPueeCreaxpOWhmOaQquWgguajoOiGm+WUkOezluWAmOi6uua3jOi2n+eDq+aOj+a2m+a7lOe7puiQhOahg+mAg+a3mOmZtuiuqOWll+eJueiXpOiFvueWvOiqiuair+WJlOi4oumUkeaPkOmimOi5hOWVvOS9k+abv+Waj+aDlea2leWJg+WxieWkqea3u+Whq+eUsOeUnOaBrOiIlOiFhuaMkeadoei/ouecuui3s+i0tOmTgeW4luWOheWQrOeDgyJdLFsiY2Q0MCIsIuiZreiZr+iZsOiZsiIsNiwi6JqDIiw2LCLomo4iLDQsIuialOialiIsNSwi6JqeIiw0LCLomqXomqbomqvomq3omq7omrLomrPomrfomrjomrnomrsiLDQsIuibgeibguibg+ibheibiOibjOibjeibkuibk+ibleibluibl+ibmuibnCJdLFsiY2Q4MCIsIuibneiboOiboeibouibo+ibpeibpuibp+ibqOibquibq+ibrOibr+ibteibtuibt+ibuuibu+ibvOibveibv+icgeichOicheichuici+icjOicjuicj+ickOickeiclOicluaxgOW7t+WBnOS6reW6reaMuuiJh+mAmuahkOmFruees+WQjOmTnOW9pOerpeahtuaNheetkue7n+eXm+WBt+aKleWktOmAj+WHuOeng+eqgeWbvuW+kumAlOa2guWxoOWcn+WQkOWFlOa5jeWbouaOqOmik+iFv+icleikqumAgOWQnuWxr+iHgOaLluaJmOiEsem4temZgOmprumpvOakreWmpeaLk+WUvuaMluWTh+ibmea0vOWog+eTpuiinOatquWkluixjOW8r+a5vueOqemhveS4uOeDt+WujOeil+aMveaZmuealuaDi+Wum+WpieS4h+iFleaxqueOi+S6oeaeiee9keW+gOaXuuacm+W/mOWmhOWogSJdLFsiY2U0MCIsIuicmeicm+icneicn+icoOicpOicpuicp+icqOicquicq+icrOicreicr+icsOicsuics+icteictuicuOicueicuuicvOicveidgCIsNiwi6J2K6J2L6J2N6J2P6J2Q6J2R6J2S6J2U6J2V6J2W6J2Y6J2aIiw1LCLonaHonaLonaYiLDcsIuidr+idseidsuids+idtSJdLFsiY2U4MCIsIuidt+iduOidueiduuidv+iegOiegeiehOiehuieh+ieieieiuiejOiejiIsNCwi6J6U6J6V6J6W6J6YIiw2LCLonqAiLDQsIuW3jeW+ruWNsemfpui/neahheWbtOWUr+aDn+S4uua9jee7tOiLh+iQjuWnlOS8n+S8quWwvue6rOacquiUmuWRs+eVj+iDg+WWgumtj+S9jea4reiwk+WwieaFsOWNq+eYn+a4qeiaiuaWh+mXu+e6ueWQu+eos+e0iumXruWXoee/geeTruaMneicl+a2oeeqneaIkeaWoeWNp+aPoeayg+W3q+WRnOmSqOS5jOaxoeivrOWxi+aXoOiKnOaip+WQvuWQtOavi+atpuS6lOaNguWNiOiInuS8jeS+ruWdnuaIiumbvuaZpOeJqeWLv+WKoeaCn+ivr+aYlOeGmeaekOilv+ehkuefveaZsOWYu+WQuOmUoeeJuiJdLFsiY2Y0MCIsIuiepeiepuiep+ieqeiequieruiesOieseiesuietOietuiet+ieuOieueieu+ievOievuiev+ifgSIsNCwi6J+H6J+I6J+J6J+MIiw0LCLon5QiLDYsIuifnOifneifnuifn+ifoeifouifo+ifpOifpuifp+ifqOifqeifq+ifrOifreifryIsOV0sWyJjZjgwIiwi6J+66J+76J+86J+96J+/6KCA6KCB6KCC6KCEIiw1LCLooIsiLDcsIuiglOigl+igmOigmeigmuignCIsNCwi6KCj56iA5oGv5biM5oKJ6Iad5aSV5oOc54aE54Ov5rqq5rGQ54qA5qqE6KKt5bit5Lmg5aqz5Zac6ZOj5rSX57O76ZqZ5oiP57uG556O6Jm+5Yyj6Zye6L6W5pqH5bOh5L6g54ut5LiL5Y6m5aSP5ZCT5o6A6ZSo5YWI5LuZ6bKc57qk5ZK46LSk6KGU6Ii36Zey5raO5bym5auM5pi+6Zmp546w54yu5Y6/6IW66aaF576h5a6q6Zm36ZmQ57q/55u45Y6i6ZW26aaZ566x6KWE5rmY5Lmh57+U56Wl6K+m5oOz5ZON5Lqr6aG55be35qmh5YOP5ZCR6LGh6JCn56Gd6ZyE5YmK5ZOu5Zqj6ZSA5raI5a615reG5pmTIl0sWyJkMDQwIiwi6KCkIiwxMywi6KCzIiw1LCLooLrooLvooL3ooL7ooL/ooYHooYLooYPooYYiLDUsIuihjiIsNSwi6KGV6KGW6KGY6KGaIiw2LCLooabooafooarooa3ooa/oobHoobPoobToobXoobboobjoobnooboiXSxbImQwODAiLCLoobvoobzoooDoooPooobooofooonooorooozooo7ooo/oopDoopHoopPoopToopXoopciLDQsIuiinSIsNCwi6KKj6KKlIiw1LCLlsI/lrZ3moKHogpbllbjnrJHmlYjmpZTkupvmrYfonY7pnovljY/mjJ/mkLrpgqrmlpzog4HosJDlhpnmorDljbjon7nmh4jms4Tms7vosKLlsZHolqroiq/plIzmrKPovpvmlrDlv7vlv4Pkv6HooYXmmJ/ohaXnjKnmg7rlhbTliJHlnovlvaLpgqLooYzphpLlubjmnY/mgKflp5PlhYTlh7bog7jljIjmsbnpm4TnhorkvJHkv67nvp7mnL3ll4XplIjnp4Doopbnu6Plop/miIzpnIDomZrlmJjpobvlvpDorrjok4TphZflj5nml63luo/nlZzmgaTnta7lqb/nu6rnu63ovanllqflrqPmgqzml4vnjoQiXSxbImQxNDAiLCLooqzooq7ooq/oorDoorIiLDQsIuiiuOiiueiiuuiiu+iiveiivuiiv+ijgOijg+ijhOijh+ijiOijiuiji+ijjOijjeijj+ijkOijkeijk+ijluijl+ijmiIsNCwi6KOg6KOh6KOm6KOn6KOpIiw2LCLoo7Loo7Xoo7boo7foo7roo7voo73oo7/opIDopIHopIMiLDVdLFsiZDE4MCIsIuikieikiyIsNCwi6KSR6KSUIiw0LCLopJwiLDQsIuikouiko+ikpOikpuikp+ikqOikqeikrOikreikruikr+ikseiksuiks+ikteikt+mAieeZo+ecqee7mumdtOiWm+WtpueptOmbquihgOWLi+eGj+W+quaXrOivouWvu+mpr+W3oeauieaxm+iureiur+mAiui/heWOi+aKvOm4pum4reWRgOS4q+iKveeJmeianOW0luihmea2r+mbheWTkeS6muiutueEieWSvemYieeDn+a3ueebkOS4peeglOickuWyqeW7tuiogOminOmYjueCjuayv+WlhOaOqeecvOihjea8lOiJs+WgsOeHleWOjOegmumbgeWUgeW9pueEsOWutOiwmumqjOaug+Wkrum4r+enp+adqOaJrOS9r+eWoee+iua0i+mYs+awp+S7sOeXkuWFu+agt+a8vumCgOiFsOWmlueRtiJdLFsiZDI0MCIsIuikuCIsOCwi6KWC6KWD6KWFIiwyNCwi6KWgIiw1LCLopaciLDE5LCLopbwiXSxbImQyODAiLCLopb3opb7opoDopoLopoTopoXopociLDI2LCLmkYflsKfpgaXnqpHosKPlp5rlkqzoiIDoja/opoHogIDmpLDlmY7ogLbniLfph47lhrbkuZ/pobXmjpbkuJrlj7bmm7PohYvlpJzmtrLkuIDlo7nljLvmj5bpk7Hkvp3kvIrooaPpopDlpLfpgZfnp7vku6rog7DnlpHmsoLlrpzlp6jlvZ3mpIXomoHlgJrlt7LkuZnnn6Pku6XoibrmipHmmJPpgpHlsbnkur/lvbnoh4bpgLjogoTnlqvkuqboo5TmhI/mr4Xlv4bkuYnnm4rmuqLor6Porq7osIror5HlvILnv7znv4znu47ojLXojavlm6Dmrrfpn7PpmLTlp7vlkJ/pk7bmt6vlr4Xppa7lsLnlvJXpmpAiXSxbImQzNDAiLCLopqIiLDMwLCLop4Pop43op5Pop5Top5Xop5fop5jop5nop5vop53op5/op6Dop6Hop6Lop6Top6fop6jop6nop6rop6zop63op67op7Dop7Hop7Lop7QiLDZdLFsiZDM4MCIsIuinuyIsNCwi6KiBIiw1LCLoqIgiLDIxLCLljbDoi7HmqLHlqbTpubDlupTnvKjojrnokKTokKXojafonYfov47otaLnm4jlvbHpopbnoazmmKDlk5/mi6XkvaPoh4Pnl4jlurjpm43ouIrom7nlko/ms7PmtozmsLjmgb/li4fnlKjlub3kvJjmgqDlv6flsKTnlLHpgq7pk4DnirnmsrnmuLjphYnmnInlj4vlj7PkvZHph4nor7Hlj4jlubzov4Lmt6Tkuo7nm4LmpobomZ7mhJroiIbkvZnkv57pgL7psbzmhInmuJ3muJTpmoXkuojlqLHpm6jkuI7lsb/nprnlrofor63nvr3njonln5/oiovpg4HlkIHpgYfllrvls6rlvqHmhIjmrLLni7HogrLoqokiXSxbImQ0NDAiLCLoqJ4iLDMxLCLoqL8iLDgsIuipiSIsMjFdLFsiZDQ4MCIsIuipnyIsMjUsIuipuiIsNiwi5rW05a+T6KOV6aKE6LGr6amt6biz5riK5Yak5YWD5Z6j6KKB5Y6f5o+06L6V5Zut5ZGY5ZyG54y/5rqQ57yY6L+c6IuR5oS/5oCo6Zmi5puw57qm6LaK6LeD6ZKl5bKz57Kk5pyI5oKm6ZiF6ICY5LqR6YOn5YyA6Zmo5YWB6L+Q6JW06YWd5pmV6Z+15a2V5Yyd56C45p2C5qC95ZOJ54G+5a6w6L295YaN5Zyo5ZKx5pSS5pqC6LWe6LWD6ISP6JGs6YGt57Of5Ye/6Je75p6j5pep5r6h6Jqk6LqB5Zmq6YCg55qC54G254el6LSj5oup5YiZ5rO96LS85oCO5aKe5oaO5pu+6LWg5omO5Zaz5rij5pyt6L2nIl0sWyJkNTQwIiwi6KqBIiw3LCLoqosiLDcsIuiqlCIsNDZdLFsiZDU4MCIsIuirgyIsMzIsIumToemXuOecqOagheamqOWSi+S5jeeCuOiviOaRmOaWi+WuheeqhOWAuuWvqOeeu+avoeipueeymOayvuebj+aWqei+l+W0reWxleiYuOagiOWNoOaImOermea5m+e7veaon+eroOW9sOa8s+W8oOaOjOa2qOadluS4iOW4kOi0puS7l+iDgOeYtOmanOaLm+aYreaJvuayvOi1teeFp+e9qeWFhuiCh+WPrOmBruaKmOWTsuibsOi+meiAhemUl+iUl+i/mea1meePjeaWn+ecn+eUhOegp+iHu+i0numSiOS+puaeleeWueiviumch+aMr+mVh+mYteiSuOaMo+edgeW+geeLsOS6ieaAlOaVtOaLr+ato+aUvyJdLFsiZDY0MCIsIuirpCIsMzQsIuisiCIsMjddLFsiZDY4MCIsIuispOispeispyIsMzAsIuW4p+eXh+mDkeivgeiKneaeneaUr+WQseicmOefpeiCouiEguaxgeS5i+e7h+iBjOebtOakjeauluaJp+WAvOS+hOWdgOaMh+atoui2vuWPquaXqOe6uOW/l+aMmuaOt+iHs+iHtOe9ruW4nOWzmeWItuaZuuenqeeomui0qOeCmeeXlOa7nuayu+eqkuS4reebheW/oOmSn+iht+e7iOenjeiCv+mHjeS7suS8l+iIn+WRqOW3nua0suivjOeypei9tOiCmOW4muWSkueaseWumeaYvOmqpOePoOagquibm+acseeMquivuOivm+mAkOerueeDm+eFruaLhOeeqeWYseS4u+iRl+afseWKqeibgOi0rumTuOetkSJdLFsiZDc0MCIsIuithiIsMzEsIuitpyIsNCwi6K2tIiwyNV0sWyJkNzgwIiwi6K6HIiwyNCwi6K6s6K6x6K676K+H6K+Q6K+q6LCJ6LCe5L2P5rOo56Wd6am75oqT54iq5ou95LiT56CW6L2s5pKw6LWa56+G5qGp5bqE6KOF5aaG5pKe5aOu54q25qSO6ZSl6L+96LWY5Z2g57yA6LCG5YeG5o2J5ouZ5Y2T5qGM55Ci6IyB6YWM5ZWE552A54G85rWK5YW55ZKo6LWE5ae/5ruL5reE5a2c57Sr5LuU57G95ruT5a2Q6Ieq5riN5a2X6ayD5qOV6Liq5a6X57u85oC757q16YK56LWw5aWP5o+N56ef6Laz5Y2S5peP56WW6K+F6Zi757uE6ZK757qC5Zi06YaJ5pyA572q5bCK6YG15pio5bem5L2Q5p+e5YGa5L2c5Z2Q5bqnIl0sWyJkODQwIiwi6LC4Iiw4LCLosYLosYPosYTosYXosYjosYrosYvosY0iLDcsIuixluixl+ixmOixmeixmyIsNSwi6LGjIiw2LCLosawiLDYsIuixtOixteixtuixt+ixuyIsNiwi6LKD6LKE6LKG6LKHIl0sWyJkODgwIiwi6LKI6LKL6LKNIiw2LCLospXospbospfospkiLDIwLCLkuo3kuIzlhYDkuJDlu7/ljYXkuJXkupjkuJ7prLLlrazlmankuKjnprrkuL/ljJXkuYflpK3niLvlja7msJDlm5/og6Tpppfmr5Pnnb7pvJfkuLbkup/pvJDkuZzkuankupPoiojlrZvllazlmI/ku4Tljo3ljp3ljqPljqXljq7pnaXotZ3ljJrlj7XljKbljK7ljL7otZzljabljaPliILliIjliI7liK3liLPliL/liYDliYzliZ7liaHliZzokq/lib3lioLlioHlipDlipPlhoLnvZTkurvku4Pku4nku4Lku6jku6Hku6vku57kvJvku7PkvKLkvaTku7XkvKXkvKfkvInkvKvkvZ7kvafmlLjkvZrkvZ0iXSxbImQ5NDAiLCLosq4iLDYyXSxbImQ5ODAiLCLos60iLDMyLCLkvZ/kvZfkvLLkvL3kvbbkvbTkvpHkvonkvoPkvo/kvb7kvbvkvqrkvbzkvqzkvpTkv6bkv6jkv6rkv4Xkv5rkv6Pkv5zkv5Hkv5/kv7jlgKnlgYzkv7PlgKzlgI/lgK7lgK3kv77lgJzlgIzlgKXlgKjlgb7lgYPlgZXlgYjlgY7lgazlgbvlgqXlgqflgqnlgrrlg5blhIblg63lg6zlg6blg67lhIflhIvku53msL3kvZjkvaXkv47pvqDmsYbnsbTlha7lt73pu4npppjlhoHlpJTli7nljI3oqIfljJDlh6vlpJnlhZXkuqDlhZbkurPooa7ooqTkurXohJToo5LnpoDlrLTooIPnvrjlhqvlhrHlhr3lhrwiXSxbImRhNDAiLCLotI4iLDE0LCLotKDotZHotZLotZfotZ/otaXotajotanotarotazota7ota/otbHotbLotbgiLDgsIui2gui2g+i2hui2h+i2iOi2iei2jCIsNCwi6LaS6LaT6LaVIiw5LCLotqDotqEiXSxbImRhODAiLCLotqLotqQiLDEyLCLotrLotrbotrfotrnotrvotr3ot4Dot4Hot4Lot4Xot4fot4jot4not4rot43ot5Dot5Lot5Pot5Tlh4flhpblhqLlhqXorqDorqborqforqrorrTorrXorrfor4Lor4Por4vor4/or47or5Lor5Por5Tor5bor5jor5nor5zor5/or6Dor6Tor6jor6nor67or7Dor7Por7bor7nor7zor7/osIDosILosITosIfosIzosI/osJHosJLosJTosJXosJbosJnosJvosJjosJ3osJ/osKDosKHosKXosKfosKrosKvosK7osK/osLLosLPosLXosLbljanljbrpmJ3pmKLpmKHpmLHpmKrpmL3pmLzpmYLpmYnpmZTpmZ/pmafpmazpmbLpmbTpmojpmo3pmpfpmrDpgpfpgpvpgp3pgpnpgqzpgqHpgrTpgrPpgrbpgroiXSxbImRiNDAiLCLot5Xot5jot5not5zot6Dot6Hot6Lot6Xot6bot6fot6not63ot67ot7Dot7Hot7Lot7Tot7bot7zot74iLDYsIui4hui4h+i4iOi4i+i4jei4jui4kOi4kei4kui4k+i4lSIsNywi6Lig6Lih6LikIiw0LCLouKvouK3ouLDouLLouLPouLTouLbouLfouLjouLvouLzouL4iXSxbImRiODAiLCLouL/ouYPouYXouYbouYwiLDQsIui5kyIsNSwi6LmaIiwxMSwi6Lmn6Lmo6Lmq6Lmr6Lmu6Lmx6YK46YKw6YOP6YOF6YK+6YOQ6YOE6YOH6YOT6YOm6YOi6YOc6YOX6YOb6YOr6YOv6YO+6YSE6YSi6YSe6YSj6YSx6YSv6YS56YWD6YWG5YiN5aWC5Yqi5Yqs5Yqt5Yq+5ZO/5YuQ5YuW5Yuw5Y+f54eu55+N5bu05Ye15Ye86ayv5Y625byB55Wa5bev5Z2M5Z6p5Z6h5aG+5aK85aOF5aOR5Zyp5Zys5Zyq5Zyz5Zy55Zyu5Zyv5Z2c5Zy75Z2C5Z2p5Z6F5Z2r5Z6G5Z285Z275Z2o5Z2t5Z225Z2z5Z6t5Z6k5Z6M5Z6y5Z+P5Z6n5Z605Z6T5Z6g5Z+V5Z+Y5Z+a5Z+Z5Z+S5Z645Z+05Z+v5Z+45Z+k5Z+dIl0sWyJkYzQwIiwi6Lmz6Lm16Lm3Iiw0LCLoub3oub7ouoDouoLouoPouoTouobouogiLDYsIui6kei6kui6k+i6lSIsNiwi6Lqd6LqfIiwxMSwi6Lqt6Lqu6Lqw6Lqx6LqzIiw2LCLoursiLDddLFsiZGM4MCIsIui7gyIsMTAsIui7jyIsMjEsIuWgi+WgjeWfveWfreWggOWgnuWgmeWhhOWgoOWhpeWhrOWigeWiieWimuWigOmmqOm8meaHv+iJueiJveiJv+iKj+iKiuiKqOiKhOiKjuiKkeiKl+iKmeiKq+iKuOiKvuiKsOiLiOiLiuiLo+iKmOiKt+iKruiLi+iLjOiLgeiKqeiKtOiKoeiKquiKn+iLhOiLjuiKpOiLoeiMieiLt+iLpOiMj+iMh+iLnOiLtOiLkuiLmOiMjOiLu+iLk+iMkeiMmuiMhuiMlOiMleiLoOiLleiMnOiNkeiNm+iNnOiMiOiOkuiMvOiMtOiMseiOm+iNnuiMr+iNj+iNh+iNg+iNn+iNgOiMl+iNoOiMreiMuuiMs+iNpuiNpSJdLFsiZGQ0MCIsIui7pSIsNjJdLFsiZGQ4MCIsIui8pCIsMzIsIuiNqOiMm+iNqeiNrOiNquiNreiNruiOsOiNuOiOs+iOtOiOoOiOquiOk+iOnOiOheiNvOiOtuiOqeiNveiOuOiNu+iOmOiOnuiOqOiOuuiOvOiPgeiQgeiPpeiPmOWgh+iQmOiQi+iPneiPveiPluiQnOiQuOiQkeiQhuiPlOiPn+iQj+iQg+iPuOiPueiPquiPheiPgOiQpuiPsOiPoeiRnOiRkeiRmuiRmeiRs+iSh+iSiOiRuuiSieiRuOiQvOiRhuiRqeiRtuiSjOiSjuiQseiRreiTgeiTjeiTkOiTpuiSveiTk+iTiuiSv+iSuuiToOiSoeiSueiStOiSl+iTpeiTo+iUjOeUjeiUuOiTsOiUueiUn+iUuiJdLFsiZGU0MCIsIui9hSIsMzIsIui9qui+gOi+jOi+kui+nei+oOi+oei+oui+pOi+pei+pui+p+i+qui+rOi+rei+rui+r+i+sui+s+i+tOi+tei+t+i+uOi+uui+u+i+vOi+v+i/gOi/g+i/hiJdLFsiZGU4MCIsIui/iSIsNCwi6L+P6L+S6L+W6L+X6L+a6L+g6L+h6L+j6L+n6L+s6L+v6L+x6L+y6L+06L+16L+26L+66L+76L+86L++6L+/6YCH6YCI6YCM6YCO6YCT6YCV6YCY6JWW6JS76JO/6JO86JWZ6JWI6JWo6JWk6JWe6JW6556i6JWD6JWy6JW76Jak6Jao6JaH6JaP6JW56Jau6Jac6JaF6Ja56Ja36Jaw6JeT6JeB6Jec6Je/6Jin6JiF6Jip6JiW6Ji85bu+5byI5aS85aWB6IC35aWV5aWa5aWY5YyP5bCi5bCl5bCs5bC05omM5omq5oqf5oq75ouK5oua5ouX5ouu5oyi5ou25oy55o2L5o2D5o6t5o+25o2x5o265o6O5o605o2t5o6s5o6K5o2p5o6u5o685o+y5o+45o+g5o+/5o+E5o+e5o+O5pGS5o+G5o6+5pGF5pGB5pCL5pCb5pCg5pCM5pCm5pCh5pGe5pKE5pGt5pKWIl0sWyJkZjQwIiwi6YCZ6YCc6YCj6YCk6YCl6YCnIiw1LCLpgLAiLDQsIumAt+mAuemAuumAvemAv+mBgOmBg+mBhemBhumBiCIsNCwi6YGO6YGU6YGV6YGW6YGZ6YGa6YGcIiw1LCLpgaTpgabpgafpganpgarpgavpgazpga8iLDQsIumBtiIsNiwi6YG+6YKBIl0sWyJkZjgwIiwi6YKE6YKF6YKG6YKH6YKJ6YKK6YKMIiw0LCLpgpLpgpTpgpbpgpjpgprpgpzpgp7pgp/pgqDpgqTpgqXpgqfpgqjpgqnpgqvpgq3pgrLpgrfpgrzpgr3pgr/pg4Dmkbrmkrfmkrjmkpnmkrrmk4Dmk5Dmk5fmk6Tmk6LmlInmlKXmlK7lvIvlv5LnlJnlvJHljZ/lj7Hlj73lj6nlj6jlj7vlkJLlkJblkIblkYvlkZLlkZPlkZTlkZblkYPlkKHlkZflkZnlkKPlkLLlkoLlkpTlkbflkbHlkaTlkprlkpvlkoTlkbblkablkp3lk5Dlkq3lk4LlkrTlk5Llkqflkqblk5Plk5TlkbLlkqPlk5Xlkrvlkr/lk4zlk5nlk5rlk5zlkqnlkqrlkqTlk53lk4/lk57llJvlk6fllKDlk73llJTlk7PllKLllKPllI/llJHllKfllKrllafllo/llrXllYnlla3llYHllZXllL/llZDllLwiXSxbImUwNDAiLCLpg4Lpg4Ppg4bpg4jpg4npg4vpg4zpg43pg5Lpg5Tpg5Xpg5bpg5jpg5npg5rpg57pg5/pg6Dpg6Ppg6Tpg6Xpg6npg6rpg6zpg67pg7Dpg7Hpg7Lpg7Ppg7Xpg7bpg7fpg7npg7rpg7vpg7zpg7/phIDphIHphIPphIUiLDE5LCLphJrphJvphJwiXSxbImUwODAiLCLphJ3phJ/phKDphKHphKQiLDEwLCLphLDphLIiLDYsIumEuiIsOCwi6YWE5ZS35ZWW5ZW15ZW25ZW35ZSz5ZSw5ZWc5ZaL5ZeS5ZaD5Zax5Za55ZaI5ZaB5Zaf5ZW+5ZeW5ZaR5ZW75Zef5Za95Za+5ZaU5ZaZ5Zeq5Ze35ZeJ5Zif5ZeR5Zer5Zes5ZeU5Zem5Zed5ZeE5Zev5Zel5Zey5Zez5ZeM5ZeN5Zeo5Ze15Zek6L6U5Zie5ZiI5ZiM5ZiB5Zik5Zij5Ze+5ZiA5Zin5Zit5ZmY5Zi55ZmX5Zis5ZmN5Zmi5ZmZ5Zmc5ZmM5ZmU5ZqG5Zmk5Zmx5Zmr5Zm75Zm85ZqF5ZqT5Zqv5ZuU5ZuX5Zud5Zuh5Zu15Zur5Zu55Zu/5ZyE5ZyK5ZyJ5Zyc5biP5biZ5biU5biR5bix5bi75bi8Il0sWyJlMTQwIiwi6YWF6YWH6YWI6YWR6YWT6YWU6YWV6YWW6YWY6YWZ6YWb6YWc6YWf6YWg6YWm6YWn6YWo6YWr6YWt6YWz6YW66YW76YW86YaAIiw0LCLphobphojphorpho7pho/phpMiLDYsIumGnCIsNSwi6YakIiw1LCLphqvphqzphrDphrHphrLphrPphrbphrfphrjphrnphrsiXSxbImUxODAiLCLphrwiLDEwLCLph4jph4vph5Dph5IiLDksIumHnSIsOCwi5bi35bmE5bmU5bmb5bme5bmh5bKM5bG65bKN5bKQ5bKW5bKI5bKY5bKZ5bKR5bKa5bKc5bK15bKi5bK95bKs5bKr5bKx5bKj5bOB5bK35bOE5bOS5bOk5bOL5bOl5bSC5bSD5bSn5bSm5bSu5bSk5bSe5bSG5bSb5bWY5bS+5bS05bS95bWs5bWb5bWv5bWd5bWr5bWL5bWK5bWp5bW05baC5baZ5bad6LGz5ba35beF5b2z5b235b6C5b6H5b6J5b6M5b6V5b6Z5b6c5b6o5b6t5b615b686KGi5b2h54qt54qw54q054q354q454uD54uB54uO54uN54uS54uo54uv54up54uy54u054u354yB54uz54yD54u6Il0sWyJlMjQwIiwi6YemIiw2Ml0sWyJlMjgwIiwi6YilIiwzMiwi54u754yX54yT54yh54yK54ye54yd54yV54yi54y554yl54ys54y454yx542Q542N542X542g542s542v542+6Iib5aSl6aOn5aSk5aSC6aWj6aWnIiw1LCLppbTppbfppb3ppoDppoTppofpporppo3pppDpppHpppPpppTpppXluoDlupHluovlupbluqXluqDlurnlurXlur7lurPotZPlu5Llu5Hlu5vlu6jlu6rohrrlv4Tlv4nlv5blv4/mgIPlv67mgITlv6Hlv6Tlv77mgIXmgIblv6rlv63lv7jmgJnmgLXmgKbmgJvmgI/mgI3mgKnmgKvmgIrmgL/mgKHmgbjmgbnmgbvmgbrmgYIiXSxbImUzNDAiLCLpiYYiLDQ1LCLpibUiLDE2XSxbImUzODAiLCLpioYiLDcsIumKjyIsMjQsIuaBquaBveaCluaCmuaCreaCneaCg+aCkuaCjOaCm+aDrOaCu+aCseaDneaDmOaDhuaDmuaCtOaEoOaEpuaEleaEo+aDtOaEgOaEjuaEq+aFiuaFteaGrOaGlOaGp+aGt+aHlOaHteW/nemas+mXqemXq+mXsemXs+mXtemXtumXvOmXvumYg+mYhOmYhumYiOmYiumYi+mYjOmYjemYj+mYkumYlemYlumYl+mYmemYmuS4rOeIv+aIleawteaxlOaxnOaxiuayo+ayheaykOaylOayjOaxqOaxqeaxtOaxtuayhuayqeazkOazlOayreazt+azuOazseazl+aysuazoOazluazuuazq+azruayseazk+azr+azviJdLFsiZTQ0MCIsIumKqCIsNSwi6YqvIiwyNCwi6YuJIiwzMV0sWyJlNDgwIiwi6YupIiwzMiwi5rS55rSn5rSM5rWD5rWI5rSH5rSE5rSZ5rSO5rSr5rWN5rSu5rS15rSa5rWP5rWS5rWU5rSz5raR5rWv5rae5rag5rWe5raT5raU5rWc5rWg5rW85rWj5ria5reH5reF5ree5riO5ra/5reg5riR5rem5red5reZ5riW5rar5riM5rau5rir5rmu5rmO5rmr5rqy5rmf5rqG5rmT5rmU5riy5ril5rmE5ruf5rqx5rqY5rug5ryt5rui5rql5rqn5rq95rq75rq35ruX5rq05ruP5rqP5ruC5rqf5r2i5r2G5r2H5ryk5ryV5ru55ryv5ry25r2L5r205ryq5ryJ5ryp5r6J5r6N5r6M5r245r2y5r285r265r+RIl0sWyJlNTQwIiwi6YyKIiw1MSwi6Yy/IiwxMF0sWyJlNTgwIiwi6Y2KIiwzMSwi6Y2r5r+J5r6n5r655r625r+C5r+h5r+u5r+e5r+g5r+v54Ca54Cj54Cb54C554C154GP54Ge5a6A5a6E5a6V5a6T5a6l5a6455Sv6aqe5pC05a+k5a+u6KSw5a+w6LmH6KyH6L626L+T6L+V6L+l6L+u6L+k6L+p6L+m6L+z6L+o6YCF6YCE6YCL6YCm6YCR6YCN6YCW6YCh6YC16YC26YCt6YCv6YGE6YGR6YGS6YGQ6YGo6YGY6YGi6YGb5pq56YG06YG96YKC6YKI6YKD6YKL5b2Q5b2X5b2W5b2Y5bC75ZKr5bGQ5bGZ5a2x5bGj5bGm57685byq5byp5byt6Im05by86ay75bGu5aaB5aaD5aaN5aap5aaq5aajIl0sWyJlNjQwIiwi6Y2sIiwzNCwi6Y6QIiwyN10sWyJlNjgwIiwi6Y6sIiwyOSwi6Y+L6Y+M6Y+N5aaX5aeK5aar5aae5aak5aeS5aay5aav5aeX5aa+5aiF5aiG5aed5aiI5aej5aeY5ae55aiM5aiJ5aiy5ai05aiR5aij5aiT5amA5amn5amK5amV5ai85ami5am16IOs5aqq5aqb5am35am65aq+5aur5aqy5auS5auU5aq45aug5auj5aux5auW5aum5auY5auc5ayJ5ayX5ayW5ayy5ay35a2A5bCV5bCc5a2a5a2l5a2z5a2R5a2T5a2i6am16am36am46am66am/6am96aqA6aqB6aqF6aqI6aqK6aqQ6aqS6aqT6aqW6aqY6aqb6aqc6aqd6aqf6aqg6aqi6aqj6aql6aqn57qf57qh57qj57ql57qo57qpIl0sWyJlNzQwIiwi6Y+OIiw3LCLpj5ciLDU0XSxbImU3ODAiLCLpkI4iLDMyLCLnuq3nurDnur7nu4Dnu4Hnu4Lnu4nnu4vnu4znu5Dnu5Tnu5fnu5vnu6Dnu6Hnu6jnu6vnu67nu6/nu7Hnu7LnvI3nu7bnu7rnu7vnu77nvIHnvILnvIPnvIfnvIjnvIvnvIznvI/nvJHnvJLnvJfnvJnnvJznvJvnvJ/nvKEiLDYsIue8que8q+e8rOe8ree8ryIsNCwi57y15bm655W/5beb55S+6YKV546O546R546u546i546f54+P54+C54+R5463546z54+A54+J54+I54+l54+Z6aG855CK54+p54+n54+e546654+y55CP55Cq55Gb55Cm55Cl55Co55Cw55Cu55CsIl0sWyJlODQwIiwi6ZCvIiwxNCwi6ZC/Iiw0Mywi6ZGs6ZGt6ZGu6ZGvIl0sWyJlODgwIiwi6ZGwIiwyMCwi6ZKR6ZKW6ZKY6ZOH6ZOP6ZOT6ZOU6ZOa6ZOm6ZO76ZSc6ZSg55Cb55Ca55GB55Gc55GX55GV55GZ55G355Gt55G+55Kc55KO55KA55KB55KH55KL55Ke55Ko55Kp55KQ55Kn55OS55K66Z+q6Z+r6Z+s5p2M5p2T5p2e5p2I5p2p5p6l5p6H5p2q5p2z5p6Y5p6n5p215p6o5p6e5p6t5p6L5p235p285p+w5qCJ5p+Y5qCK5p+p5p6w5qCM5p+Z5p615p+a5p6z5p+d5qCA5p+D5p645p+i5qCO5p+B5p+95qCy5qCz5qGg5qGh5qGO5qGi5qGE5qGk5qKD5qCd5qGV5qGm5qGB5qGn5qGA5qC+5qGK5qGJ5qCp5qK15qKP5qG05qG35qKT5qGr5qOC5qWu5qO85qSf5qSg5qO5Il0sWyJlOTQwIiwi6ZSn6ZSz6ZS96ZWD6ZWI6ZWL6ZWV6ZWa6ZWg6ZWu6ZW06ZW16ZW3Iiw3LCLploAiLDQyXSxbImU5ODAiLCLplqsiLDMyLCLmpKTmo7DmpIvmpIHmpZfmo6PmpJDmpbHmpLnmpaDmpYLmpZ3mpoTmpavmpoDmppjmpbjmpLTmp4zmpofmpojmp47mponmpabmpaPmpbnmppvmpqfmprvmpqvmpq3mp5TmprHmp4Hmp4rmp5/mppXmp6Dmpo3mp7/mqK/mp63mqJfmqJjmqaXmp7LmqYTmqL7mqqDmqZDmqZvmqLXmqo7mqbnmqL3mqKjmqZjmqbzmqpHmqpDmqqnmqpfmqqvnjLfnjZLmroHmroLmrofmroTmrpLmrpPmro3mrprmrpvmrqHmrqrovavova3ovbHovbLovbPovbXovbbovbjovbfovbnovbrovbzovb7ovoHovoLovoTovofovosiXSxbImVhNDAiLCLpl4wiLDI3LCLpl6zpl7/pmIfpmJPpmJjpmJvpmJ7pmKDpmKMiLDYsIumYq+mYrOmYremYr+mYsOmYt+mYuOmYuemYuumYvumZgemZg+mZiumZjumZj+mZkemZkumZk+mZlumZlyJdLFsiZWE4MCIsIumZmOmZmemZmumZnOmZnemZnumZoOmZo+mZpemZpumZq+mZrSIsNCwi6Zmz6Zm4IiwxMiwi6ZqH6ZqJ6ZqK6L6N6L6O6L6P6L6Y6L6a6LuO5oiL5oiX5oib5oif5oii5oih5oil5oik5ois6Ien55Ov55O055O/55SP55SR55ST5pS05peu5pev5pew5piK5piZ5p2y5piD5piV5piA54KF5pu35pid5pi05pix5pi25pi16ICG5pmf5pmU5pmB5pmP5pmW5pmh5pmX5pm35pqE5pqM5pqn5pqd5pq+5pub5puc5pum5pup6LSy6LSz6LS26LS76LS96LWA6LWF6LWG6LWI6LWJ6LWH6LWN6LWV6LWZ6KeH6KeK6KeL6KeM6KeO6KeP6KeQ6KeR54mu54qf54md54mm54mv54m+54m/54qE54qL54qN54qP54qS5oyI5oyy5o6wIl0sWyJlYjQwIiwi6ZqM6ZqO6ZqR6ZqS6ZqT6ZqV6ZqW6Zqa6Zqb6ZqdIiw5LCLpmqgiLDcsIumasemasumatOmatemat+mauOmauumau+mav+mbgumbg+mbiOmbiumbi+mbkOmbkembk+mblOmbliIsOSwi6ZuhIiw2LCLpm6siXSxbImViODAiLCLpm6zpm63pm67pm7Dpm7Hpm7Lpm7Tpm7Xpm7jpm7rpm7vpm7zpm73pm7/pnILpnIPpnIXpnIrpnIvpnIzpnJDpnJHpnJLpnJTpnJXpnJciLDQsIumcnemcn+mcoOaQv+aTmOiAhOavquavs+avveavteavueawheawh+awhuawjeawleawmOawmeawmuawoeawqeawpOawquawsuaUteaVleaVq+eJjeeJkueJlueIsOiZouWIluiCn+iCnOiCk+iCvOaciuiCveiCseiCq+iCreiCtOiCt+iDp+iDqOiDqeiDquiDm+iDguiDhOiDmeiDjeiDl+ackOiDneiDq+iDseiDtOiDreiEjeiEjuiDsuiDvOacleiEkuixmuiEtuiEnuiErOiEmOiEsuiFiOiFjOiFk+iFtOiFmeiFmuiFseiFoOiFqeiFvOiFveiFreiFp+WhjeWqteiGiOiGguiGkea7leiGo+iGquiHjOacpuiHiuiGuyJdLFsiZWM0MCIsIumcoSIsOCwi6Zyr6Zys6Zyu6Zyv6Zyx6ZyzIiw0LCLpnLrpnLvpnLzpnL3pnL8iLDE4LCLpnZTpnZXpnZfpnZjpnZrpnZzpnZ3pnZ/pnaPpnaTpnabpnafpnajpnaoiLDddLFsiZWM4MCIsIumdsumdtemdtyIsNCwi6Z29Iiw3LCLpnoYiLDQsIumejOmejumej+mekOmek+melemelumel+memSIsNCwi6IeB6Iam5qyk5qy35qy55q2D5q2G5q2Z6aOR6aOS6aOT6aOV6aOZ6aOa5q6z5b2A5q+C6Kez5paQ6b2R5paT5pa85peG5peE5peD5peM5peO5peS5peW54KA54Kc54KW54Kd54K754OA54K354Kr54Kx54Oo54OK54SQ54ST54SW54Sv54Sx54Wz54Wc54Wo54WF54Wy54WK54W454W654aY54az54a154ao54ag54eg54eU54en54e554id54io54Gs54SY54Wm54a55oi+5oi95omD5omI5omJ56S756WA56WG56WJ56Wb56Wc56WT56Wa56Wi56WX56Wg56Wv56Wn56W656aF56aK56aa56an56az5b+R5b+QIl0sWyJlZDQwIiwi6Z6e6Z6f6Z6h6Z6i6Z6kIiw2LCLpnqzpnq7pnrDpnrHpnrPpnrUiLDQ2XSxbImVkODAiLCLpn6Tpn6Xpn6jpn64iLDQsIumftOmftyIsMjMsIuaAvOaBneaBmuaBp+aBgeaBmeaBo+aCq+aEhuaEjeaFneaGqeaGneaHi+aHkeaIhuiCgOiBv+ayk+aztua3vOeftuefuOeggOegieegl+egmOegkeaWq+egreegnOegneegueeguuegu+egn+egvOegpeegrOego+egqeehjuehreehluehl+egpuehkOehh+ehjOehqueim+eik+eimueih+einOeioeeio+eisueiueeipeejlOejmeejieejrOejsuekheejtOekk+ekpOeknuektOm+m+m7uem7u+m7vOebseechOecjeebueech+eciOecmuecouecmeecreecpuecteecuOedkOedkeedh+edg+edmuedqCJdLFsiZWU0MCIsIumgjyIsNjJdLFsiZWU4MCIsIumhjiIsMzIsIuedouedpeedv+eejeedveeegOeejOeekeeen+eeoOeesOeeteeeveeUuueVgOeVjueVi+eViOeVm+eVsueVueeWg+e9mOe9oee9n+ipiOe9qOe9tOe9see9uee+gee9vuebjeebpeigsumShemShumSh+mSi+mSiumSjOmSjemSj+mSkOmSlOmSl+mSlemSmumSm+mSnOmSo+mSpOmSq+mSqumSremSrOmSr+mSsOmSsumStOmStiIsNCwi6ZK86ZK96ZK/6ZOE6ZOIIiw2LCLpk5Dpk5Hpk5Lpk5Xpk5bpk5fpk5npk5jpk5vpk57pk5/pk6Dpk6Lpk6Tpk6Xpk6fpk6jpk6oiXSxbImVmNDAiLCLpoa8iLDUsIumii+mijumikumilemimemio+miqCIsMzcsIumjj+mjkOmjlOmjlumjl+mjm+mjnOmjnemjoCIsNF0sWyJlZjgwIiwi6aOl6aOm6aOpIiwzMCwi6ZOp6ZOr6ZOu6ZOv6ZOz6ZO06ZO16ZO36ZO56ZO86ZO96ZO/6ZSD6ZSC6ZSG6ZSH6ZSJ6ZSK6ZSN6ZSO6ZSP6ZSSIiw0LCLplJjplJvplJ3plJ7plJ/plKLplKrplKvplKnplKzplLHplLLplLTplLbplLfplLjplLzplL7plL/plYLplLXplYTplYXplYbplYnplYzplY7plY/plZLplZPplZTplZbplZfplZjplZnplZvplZ7plZ/plZ3plaHplaLplaQiLDgsIumVr+mVsemVsumVs+mUuuefp+efrOmbieenleenreeno+enq+eohuW1h+eog+eogueonueolCJdLFsiZjA0MCIsIumkiCIsNCwi6aSO6aSP6aSRIiwyOCwi6aSvIiwyNl0sWyJmMDgwIiwi6aWKIiw5LCLppZYiLDEyLCLppaTppabppbPppbjppbnppbvppb7ppoLppoPpponnqLnnqLfnqZHpu4/ppqXnqbDnmojnmo7nmpPnmpnnmqTnk57nk6DnlKzpuKDpuKLpuKgiLDQsIum4sum4sem4tum4uOm4t+m4uem4uum4vum5gem5gum5hOm5hum5h+m5iOm5iem5i+m5jOm5jum5kem5lem5l+m5mum5m+m5nOm5num5o+m5piIsNiwi6bmx6bmt6bmz55aS55aU55aW55ag55ad55as55aj55az55a055a455eE55ax55aw55eD55eC55eW55eN55ej55eo55em55ek55er55en55iD55ex55e855e/55iQ55iA55iF55iM55iX55iK55il55iY55iV55iZIl0sWyJmMTQwIiwi6aaM6aaO6aaaIiwxMCwi6aam6aan6aapIiw0N10sWyJmMTgwIiwi6aeZIiwzMiwi55ib55i855ii55ig55mA55it55iw55i/55i155mD55i+55iz55mN55me55mU55mc55mW55mr55mv57+K56um56m456m556qA56qG56qI56qV56qm56qg56qs56qo56qt56qz6KGk6KGp6KGy6KG96KG/6KKC6KKi6KOG6KK36KK86KOJ6KOi6KOO6KOj6KOl6KOx6KSa6KO86KOo6KO+6KOw6KSh6KSZ6KST6KSb6KSK6KS06KSr6KS26KWB6KWm6KW755aL6IOl55qy55q055+c6ICS6ICU6ICW6ICc6ICg6ICi6ICl6ICm6ICn6ICp6ICo6ICx6ICL6IC16IGD6IGG6IGN6IGS6IGp6IGx6KaD6aG46aKA6aKDIl0sWyJmMjQwIiwi6ae6Iiw2Ml0sWyJmMjgwIiwi6ai5IiwzMiwi6aKJ6aKM6aKN6aKP6aKU6aKa6aKb6aKe6aKf6aKh6aKi6aKl6aKm6JmN6JmU6Jms6Jmu6Jm/6Jm66Jm86Jm76Jqo6JqN6JqL6Jqs6Jqd6Jqn6Jqj6Jqq6JqT6Jqp6Jq26JuE6Jq16JuO6Jqw6Jq66Jqx6Jqv6JuJ6JuP6Jq06Jup6Jux6Juy6Jut6Juz6JuQ6JyT6Jue6Ju06Juf6JuY6JuR6JyD6JyH6Ju46JyI6JyK6JyN6JyJ6Jyj6Jy76Jye6Jyl6Jyu6Jya6Jy+6J2I6Jy06Jyx6Jyp6Jy36Jy/6J6C6Jyi6J296J2+6J276J2g6J2w6J2M6J2u6J6L6J2T6J2j6J286J2k6J2Z6J2l6J6T6J6v6J6o6J+SIl0sWyJmMzQwIiwi6amaIiwxNywi6amy6aqD6aqJ6aqN6aqO6aqU6aqV6aqZ6aqm6aqpIiw2LCLpqrLpqrPpqrTpqrXpqrnpqrvpqr3pqr7pqr/pq4Ppq4Tpq4YiLDQsIumrjemrjumrj+mrkOmrkumrlOmrlemrlumrl+mrmemrmumrm+mrnCJdLFsiZjM4MCIsIumrnemrnumroOmroumro+mrpOmrpemrp+mrqOmrqemrqumrrOmrrumrsCIsOCwi6au66au8Iiw2LCLprITprIXprIbon4bonojonoXonq3onpfonoPonqvon6XonqzonrXonrPon4von5Ponr3on5Hon4Don4ron5von6ron6Don67ooJbooJPon77ooIrooJvooKHooLnooLznvLbnvYLnvYTnvYXoiJDnq7rnq73nrIjnrIPnrITnrJXnrIrnrKvnrI/nrYfnrLjnrKrnrJnnrK7nrLHnrKDnrKXnrKTnrLPnrL7nrJ7nrZjnrZrnrYXnrbXnrYznrZ3nraDnra7nrbvnraLnrbLnrbHnrpDnrqbnrqfnrrjnrqznrp3nrqjnroXnrqrnrpznrqLnrqvnrrTnr5Hnr4Hnr4znr53nr5rnr6Xnr6bnr6rnsIznr77nr7znsI/nsJbnsIsiXSxbImY0NDAiLCLprIfprIkiLDUsIumskOmskemskumslCIsMTAsIumsoOmsoemsoumspCIsMTAsIumssOmssemssyIsNywi6ay96ay+6ay/6a2A6a2G6a2K6a2L6a2M6a2O6a2Q6a2S6a2T6a2VIiw1XSxbImY0ODAiLCLprZsiLDMyLCLnsJ/nsKrnsKbnsLjnsYHnsYDoh77oiIHoiILoiIToh6zooYToiKHoiKLoiKPoiK3oiK/oiKjoiKvoiLjoiLvoiLPoiLToiL7oiYToiYnoiYvoiY/oiZroiZ/oiajoob7oooXooojoo5joo5/opZ7nvp3nvp/nvqfnvq/nvrDnvrLnsbzmlYnnspHnsp3nspznsp7nsqLnsrLnsrznsr3ns4Hns4fns4zns43ns4jns4Xns5fns6joia7mmqjnvr/nv47nv5Xnv6Xnv6Hnv6bnv6nnv67nv7Pns7jntbfntqbntq7nuYfnupvpurjpurTotbPotoTotpTotpHotrHotafota3osYfosYnphYrphZDphY7phY/phaQiXSxbImY1NDAiLCLprbwiLDYyXSxbImY1ODAiLCLprrsiLDMyLCLphaLphaHphbDphanpha/phb3phb7phbLphbTphbnphozphoXphpDpho3phpHphqLphqPphqrphq3phq7phq/phrXphrTphrrosZXpub7otrjot6vouIXouZnouanotrXotr/otrzotrrot4Tot5bot5fot5rot57ot47ot4/ot5vot4bot6zot7fot7jot6Pot7not7vot6TouInot73ouJTouJ3ouJ/ouKzouK7ouKPouK/ouLrouYDouLnouLXouL3ouLHouYnouYHouYLouZHouZLouYroubDoubboubzoua/oubTouoXouo/oupToupDoupzoup7osbjosoLosorosoXospjospTmlpvop5bop57op5rop5wiXSxbImY2NDAiLCLpr5wiLDYyXSxbImY2ODAiLCLpsJsiLDMyLCLop6Xop6vop6/oqL7orKbpnZPpm6npm7Ppm6/pnIbpnIHpnIjpnI/pnI7pnKrpnK3pnLDpnL7pvoDpvoPpvoUiLDUsIum+jOm7vum8i+m8jemauemavOmavembjumbkueev+mboOmKjumKrumLiOmMvumNqumPiumOj+mQvumRq+mxv+mygumyhemyhumyh+myiOeoo+myi+myjumykOmykemykumylOmylemymumym+myniIsNSwi6bKlIiw0LCLpsqvpsq3psq7psrAiLDcsIumyuumyu+myvOmyvemzhOmzhemzhumzh+mziumziyJdLFsiZjc0MCIsIumwvCIsNjJdLFsiZjc4MCIsIumxu+mxvemxvumygOmyg+myhOmyiemyiumyjOmyj+myk+mylumyl+mymOmymemynemyqumyrOmyr+myuemyviIsNCwi6bOI6bOJ6bOR6bOS6bOa6bOb6bOg6bOh6bOMIiw0LCLps5Pps5Tps5Xps5fps5jps5nps5zps53ps5/ps6LpnbzpnoXpnpHpnpLpnpTpnq/pnqvpnqPpnrLpnrTpqrHpqrDpqrfpuZjpqrbpqrrpqrzpq4Hpq4Dpq4Xpq4Lpq4vpq4zpq5HprYXprYPprYfprYnprYjprY3prZHpo6jppI3ppK7ppZXppZTpq5/pq6Hpq6bpq6/pq6vpq7vpq63pq7nprIjprI/prJPprJ/prKPpur3pur7nuLvpuoLpuofpuojpuovpupLpj5bpup3pup/pu5vpu5zpu53pu6Dpu5/pu6Lpu6npu6fpu6Xpu6rpu6/pvKLpvKzpvK/pvLnpvLfpvL3pvL7pvYQiXSxbImY4NDAiLCLps6MiLDYyXSxbImY4ODAiLCLptKIiLDMyXSxbImY5NDAiLCLptYMiLDYyXSxbImY5ODAiLCLptoIiLDMyXSxbImZhNDAiLCLptqMiLDYyXSxbImZhODAiLCLpt6IiLDMyXSxbImZiNDAiLCLpuIMiLDI3LCLpuKTpuKfpuK7puLDpuLTpuLvpuLzpuYDpuY3puZDpuZLpuZPpuZTpuZbpuZnpuZ3puZ/puaDpuaHpuaLpuaXpua7pua/pubLpubQiLDksIum6gCJdLFsiZmI4MCIsIum6gem6g+m6hOm6hem6hum6iem6ium6jCIsNSwi6bqUIiw4LCLpup7puqAiLDUsIum6p+m6qOm6qem6qiJdLFsiZmM0MCIsIum6qyIsOCwi6bq16bq26bq36bq56bq66bq86bq/Iiw0LCLpu4Xpu4bpu4fpu4jpu4rpu4vpu4zpu5Dpu5Lpu5Ppu5Xpu5bpu5fpu5npu5rpu57pu6Hpu6Ppu6Tpu6bpu6jpu6vpu6zpu63pu67pu7AiLDgsIum7uum7vem7vyIsNl0sWyJmYzgwIiwi6byGIiw0LCLpvIzpvI/pvJHpvJLpvJTpvJXpvJbpvJjpvJoiLDUsIum8oem8oyIsOCwi6byt6byu6byw6byxIl0sWyJmZDQwIiwi6byyIiw0LCLpvLjpvLrpvLzpvL8iLDQsIum9hSIsMTAsIum9kiIsMzhdLFsiZmQ4MCIsIum9uSIsNSwi6b6B6b6C6b6NIiwxMSwi6b6c6b6d6b6e6b6hIiw0LCLvpKzvpbnvppXvp6fvp7EiXSxbImZlNDAiLCLvqIzvqI3vqI7vqI/vqJHvqJPvqJTvqJjvqJ/vqKDvqKHvqKPvqKTvqKfvqKjvqKkiXV0KCi8qKiovIH0pLAovKiA1NCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBmYWxsYmFjayBmb3Igbm9uLWFycmF5LWxpa2UgRVMzIGFuZCBub24tZW51bWVyYWJsZSBvbGQgVjggc3RyaW5ncwp2YXIgY29mID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1NSk7Ci8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b3R5cGUtYnVpbHRpbnMKbW9kdWxlLmV4cG9ydHMgPSBPYmplY3QoJ3onKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKSA/IE9iamVjdCA6IGZ1bmN0aW9uIChpdCkgewogIHJldHVybiBjb2YoaXQpID09ICdTdHJpbmcnID8gaXQuc3BsaXQoJycpIDogT2JqZWN0KGl0KTsKfTsKCgovKioqLyB9KSwKLyogNTUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKdmFyIHRvU3RyaW5nID0ge30udG9TdHJpbmc7Cgptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkgewogIHJldHVybiB0b1N0cmluZy5jYWxsKGl0KS5zbGljZSg4LCAtMSk7Cn07CgoKLyoqKi8gfSksCi8qIDU2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCi8vIDcuMi4xIFJlcXVpcmVPYmplY3RDb2VyY2libGUoYXJndW1lbnQpCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7CiAgaWYgKGl0ID09IHVuZGVmaW5lZCkgdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgIiArIGl0KTsKICByZXR1cm4gaXQ7Cn07CgoKLyoqKi8gfSksCi8qIDU3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciBwSUUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM1KTsKdmFyIGNyZWF0ZURlc2MgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3KTsKdmFyIHRvSU9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpOwp2YXIgdG9QcmltaXRpdmUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU4KTsKdmFyIGhhcyA9IF9fd2VicGFja19yZXF1aXJlX18oMTgpOwp2YXIgSUU4X0RPTV9ERUZJTkUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDk1KTsKdmFyIGdPUEQgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwoKZXhwb3J0cy5mID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KSA/IGdPUEQgOiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkgewogIE8gPSB0b0lPYmplY3QoTyk7CiAgUCA9IHRvUHJpbWl0aXZlKFAsIHRydWUpOwogIGlmIChJRThfRE9NX0RFRklORSkgdHJ5IHsKICAgIHJldHVybiBnT1BEKE8sIFApOwogIH0gY2F0Y2ggKGUpIHsgLyogZW1wdHkgKi8gfQogIGlmIChoYXMoTywgUCkpIHJldHVybiBjcmVhdGVEZXNjKCFwSUUuZi5jYWxsKE8sIFApLCBPW1BdKTsKfTsKCgovKioqLyB9KSwKLyogNTggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gNy4xLjEgVG9QcmltaXRpdmUoaW5wdXQgWywgUHJlZmVycmVkVHlwZV0pCnZhciBpc09iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oOSk7Ci8vIGluc3RlYWQgb2YgdGhlIEVTNiBzcGVjIHZlcnNpb24sIHdlIGRpZG4ndCBpbXBsZW1lbnQgQEB0b1ByaW1pdGl2ZSBjYXNlCi8vIGFuZCB0aGUgc2Vjb25kIGFyZ3VtZW50IC0gZmxhZyAtIHByZWZlcnJlZCB0eXBlIGlzIGEgc3RyaW5nCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBTKSB7CiAgaWYgKCFpc09iamVjdChpdCkpIHJldHVybiBpdDsKICB2YXIgZm4sIHZhbDsKICBpZiAoUyAmJiB0eXBlb2YgKGZuID0gaXQudG9TdHJpbmcpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDsKICBpZiAodHlwZW9mIChmbiA9IGl0LnZhbHVlT2YpID09ICdmdW5jdGlvbicgJiYgIWlzT2JqZWN0KHZhbCA9IGZuLmNhbGwoaXQpKSkgcmV0dXJuIHZhbDsKICBpZiAoIVMgJiYgdHlwZW9mIChmbiA9IGl0LnRvU3RyaW5nKSA9PSAnZnVuY3Rpb24nICYmICFpc09iamVjdCh2YWwgPSBmbi5jYWxsKGl0KSkpIHJldHVybiB2YWw7CiAgdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKTsKfTsKCgovKioqLyB9KSwKLyogNTkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gbW9zdCBPYmplY3QgbWV0aG9kcyBieSBFUzYgc2hvdWxkIGFjY2VwdCBwcmltaXRpdmVzCnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKdmFyIGNvcmUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOwp2YXIgZmFpbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5KTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoS0VZLCBleGVjKSB7CiAgdmFyIGZuID0gKGNvcmUuT2JqZWN0IHx8IHt9KVtLRVldIHx8IE9iamVjdFtLRVldOwogIHZhciBleHAgPSB7fTsKICBleHBbS0VZXSA9IGV4ZWMoZm4pOwogICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogZmFpbHMoZnVuY3Rpb24gKCkgeyBmbigxKTsgfSksICdPYmplY3QnLCBleHApOwp9OwoKCi8qKiovIH0pLAovKiA2MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IHsgImRlZmF1bHQiOiBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwMCksIF9fZXNNb2R1bGU6IHRydWUgfTsKCi8qKiovIH0pLAovKiA2MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Cgp2YXIgTElCUkFSWSA9IF9fd2VicGFja19yZXF1aXJlX18oNjIpOwp2YXIgJGV4cG9ydCA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CnZhciByZWRlZmluZSA9IF9fd2VicGFja19yZXF1aXJlX18oOTkpOwp2YXIgaGlkZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTMpOwp2YXIgaGFzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7CnZhciBJdGVyYXRvcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKTsKdmFyICRpdGVyQ3JlYXRlID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMDMpOwp2YXIgc2V0VG9TdHJpbmdUYWcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM5KTsKdmFyIGdldFByb3RvdHlwZU9mID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMDYpOwp2YXIgSVRFUkFUT1IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpKCdpdGVyYXRvcicpOwp2YXIgQlVHR1kgPSAhKFtdLmtleXMgJiYgJ25leHQnIGluIFtdLmtleXMoKSk7IC8vIFNhZmFyaSBoYXMgYnVnZ3kgaXRlcmF0b3JzIHcvbyBgbmV4dGAKdmFyIEZGX0lURVJBVE9SID0gJ0BAaXRlcmF0b3InOwp2YXIgS0VZUyA9ICdrZXlzJzsKdmFyIFZBTFVFUyA9ICd2YWx1ZXMnOwoKdmFyIHJldHVyblRoaXMgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9OwoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQmFzZSwgTkFNRSwgQ29uc3RydWN0b3IsIG5leHQsIERFRkFVTFQsIElTX1NFVCwgRk9SQ0VEKSB7CiAgJGl0ZXJDcmVhdGUoQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpOwogIHZhciBnZXRNZXRob2QgPSBmdW5jdGlvbiAoa2luZCkgewogICAgaWYgKCFCVUdHWSAmJiBraW5kIGluIHByb3RvKSByZXR1cm4gcHJvdG9ba2luZF07CiAgICBzd2l0Y2ggKGtpbmQpIHsKICAgICAgY2FzZSBLRVlTOiByZXR1cm4gZnVuY3Rpb24ga2V5cygpIHsgcmV0dXJuIG5ldyBDb25zdHJ1Y3Rvcih0aGlzLCBraW5kKTsgfTsKICAgICAgY2FzZSBWQUxVRVM6IHJldHVybiBmdW5jdGlvbiB2YWx1ZXMoKSB7IHJldHVybiBuZXcgQ29uc3RydWN0b3IodGhpcywga2luZCk7IH07CiAgICB9IHJldHVybiBmdW5jdGlvbiBlbnRyaWVzKCkgeyByZXR1cm4gbmV3IENvbnN0cnVjdG9yKHRoaXMsIGtpbmQpOyB9OwogIH07CiAgdmFyIFRBRyA9IE5BTUUgKyAnIEl0ZXJhdG9yJzsKICB2YXIgREVGX1ZBTFVFUyA9IERFRkFVTFQgPT0gVkFMVUVTOwogIHZhciBWQUxVRVNfQlVHID0gZmFsc2U7CiAgdmFyIHByb3RvID0gQmFzZS5wcm90b3R5cGU7CiAgdmFyICRuYXRpdmUgPSBwcm90b1tJVEVSQVRPUl0gfHwgcHJvdG9bRkZfSVRFUkFUT1JdIHx8IERFRkFVTFQgJiYgcHJvdG9bREVGQVVMVF07CiAgdmFyICRkZWZhdWx0ID0gKCFCVUdHWSAmJiAkbmF0aXZlKSB8fCBnZXRNZXRob2QoREVGQVVMVCk7CiAgdmFyICRlbnRyaWVzID0gREVGQVVMVCA/ICFERUZfVkFMVUVTID8gJGRlZmF1bHQgOiBnZXRNZXRob2QoJ2VudHJpZXMnKSA6IHVuZGVmaW5lZDsKICB2YXIgJGFueU5hdGl2ZSA9IE5BTUUgPT0gJ0FycmF5JyA/IHByb3RvLmVudHJpZXMgfHwgJG5hdGl2ZSA6ICRuYXRpdmU7CiAgdmFyIG1ldGhvZHMsIGtleSwgSXRlcmF0b3JQcm90b3R5cGU7CiAgLy8gRml4IG5hdGl2ZQogIGlmICgkYW55TmF0aXZlKSB7CiAgICBJdGVyYXRvclByb3RvdHlwZSA9IGdldFByb3RvdHlwZU9mKCRhbnlOYXRpdmUuY2FsbChuZXcgQmFzZSgpKSk7CiAgICBpZiAoSXRlcmF0b3JQcm90b3R5cGUgIT09IE9iamVjdC5wcm90b3R5cGUgJiYgSXRlcmF0b3JQcm90b3R5cGUubmV4dCkgewogICAgICAvLyBTZXQgQEB0b1N0cmluZ1RhZyB0byBuYXRpdmUgaXRlcmF0b3JzCiAgICAgIHNldFRvU3RyaW5nVGFnKEl0ZXJhdG9yUHJvdG90eXBlLCBUQUcsIHRydWUpOwogICAgICAvLyBmaXggZm9yIHNvbWUgb2xkIGVuZ2luZXMKICAgICAgaWYgKCFMSUJSQVJZICYmICFoYXMoSXRlcmF0b3JQcm90b3R5cGUsIElURVJBVE9SKSkgaGlkZShJdGVyYXRvclByb3RvdHlwZSwgSVRFUkFUT1IsIHJldHVyblRoaXMpOwogICAgfQogIH0KICAvLyBmaXggQXJyYXkje3ZhbHVlcywgQEBpdGVyYXRvcn0ubmFtZSBpbiBWOCAvIEZGCiAgaWYgKERFRl9WQUxVRVMgJiYgJG5hdGl2ZSAmJiAkbmF0aXZlLm5hbWUgIT09IFZBTFVFUykgewogICAgVkFMVUVTX0JVRyA9IHRydWU7CiAgICAkZGVmYXVsdCA9IGZ1bmN0aW9uIHZhbHVlcygpIHsgcmV0dXJuICRuYXRpdmUuY2FsbCh0aGlzKTsgfTsKICB9CiAgLy8gRGVmaW5lIGl0ZXJhdG9yCiAgaWYgKCghTElCUkFSWSB8fCBGT1JDRUQpICYmIChCVUdHWSB8fCBWQUxVRVNfQlVHIHx8ICFwcm90b1tJVEVSQVRPUl0pKSB7CiAgICBoaWRlKHByb3RvLCBJVEVSQVRPUiwgJGRlZmF1bHQpOwogIH0KICAvLyBQbHVnIGZvciBsaWJyYXJ5CiAgSXRlcmF0b3JzW05BTUVdID0gJGRlZmF1bHQ7CiAgSXRlcmF0b3JzW1RBR10gPSByZXR1cm5UaGlzOwogIGlmIChERUZBVUxUKSB7CiAgICBtZXRob2RzID0gewogICAgICB2YWx1ZXM6IERFRl9WQUxVRVMgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChWQUxVRVMpLAogICAgICBrZXlzOiBJU19TRVQgPyAkZGVmYXVsdCA6IGdldE1ldGhvZChLRVlTKSwKICAgICAgZW50cmllczogJGVudHJpZXMKICAgIH07CiAgICBpZiAoRk9SQ0VEKSBmb3IgKGtleSBpbiBtZXRob2RzKSB7CiAgICAgIGlmICghKGtleSBpbiBwcm90bykpIHJlZGVmaW5lKHByb3RvLCBrZXksIG1ldGhvZHNba2V5XSk7CiAgICB9IGVsc2UgJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LkYgKiAoQlVHR1kgfHwgVkFMVUVTX0JVRyksIE5BTUUsIG1ldGhvZHMpOwogIH0KICByZXR1cm4gbWV0aG9kczsKfTsKCgovKioqLyB9KSwKLyogNjIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHMgPSB0cnVlOwoKCi8qKiovIH0pLAovKiA2MyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovLyA3LjEuNCBUb0ludGVnZXIKdmFyIGNlaWwgPSBNYXRoLmNlaWw7CnZhciBmbG9vciA9IE1hdGguZmxvb3I7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7CiAgcmV0dXJuIGlzTmFOKGl0ID0gK2l0KSA/IDAgOiAoaXQgPiAwID8gZmxvb3IgOiBjZWlsKShpdCk7Cn07CgoKLyoqKi8gfSksCi8qIDY0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciBzaGFyZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDY1KSgna2V5cycpOwp2YXIgdWlkID0gX193ZWJwYWNrX3JlcXVpcmVfXygzOCk7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkgewogIHJldHVybiBzaGFyZWRba2V5XSB8fCAoc2hhcmVkW2tleV0gPSB1aWQoa2V5KSk7Cn07CgoKLyoqKi8gfSksCi8qIDY1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciBnbG9iYWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsKdmFyIFNIQVJFRCA9ICdfX2NvcmUtanNfc2hhcmVkX18nOwp2YXIgc3RvcmUgPSBnbG9iYWxbU0hBUkVEXSB8fCAoZ2xvYmFsW1NIQVJFRF0gPSB7fSk7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGtleSkgewogIHJldHVybiBzdG9yZVtrZXldIHx8IChzdG9yZVtrZXldID0ge30pOwp9OwoKCi8qKiovIH0pLAovKiA2NiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovLyBJRSA4LSBkb24ndCBlbnVtIGJ1ZyBrZXlzCm1vZHVsZS5leHBvcnRzID0gKAogICdjb25zdHJ1Y3RvcixoYXNPd25Qcm9wZXJ0eSxpc1Byb3RvdHlwZU9mLHByb3BlcnR5SXNFbnVtZXJhYmxlLHRvTG9jYWxlU3RyaW5nLHRvU3RyaW5nLHZhbHVlT2YnCikuc3BsaXQoJywnKTsKCgovKioqLyB9KSwKLyogNjcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGNsYXNzb2YgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDY4KTsKdmFyIElURVJBVE9SID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KSgnaXRlcmF0b3InKTsKdmFyIEl0ZXJhdG9ycyA9IF9fd2VicGFja19yZXF1aXJlX18oMjMpOwptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMikuZ2V0SXRlcmF0b3JNZXRob2QgPSBmdW5jdGlvbiAoaXQpIHsKICBpZiAoaXQgIT0gdW5kZWZpbmVkKSByZXR1cm4gaXRbSVRFUkFUT1JdCiAgICB8fCBpdFsnQEBpdGVyYXRvciddCiAgICB8fCBJdGVyYXRvcnNbY2xhc3NvZihpdCldOwp9OwoKCi8qKiovIH0pLAovKiA2OCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBnZXR0aW5nIHRhZyBmcm9tIDE5LjEuMy42IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcoKQp2YXIgY29mID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1NSk7CnZhciBUQUcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpKCd0b1N0cmluZ1RhZycpOwovLyBFUzMgd3JvbmcgaGVyZQp2YXIgQVJHID0gY29mKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFyZ3VtZW50czsgfSgpKSA9PSAnQXJndW1lbnRzJzsKCi8vIGZhbGxiYWNrIGZvciBJRTExIFNjcmlwdCBBY2Nlc3MgRGVuaWVkIGVycm9yCnZhciB0cnlHZXQgPSBmdW5jdGlvbiAoaXQsIGtleSkgewogIHRyeSB7CiAgICByZXR1cm4gaXRba2V5XTsKICB9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH0KfTsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7CiAgdmFyIE8sIFQsIEI7CiAgcmV0dXJuIGl0ID09PSB1bmRlZmluZWQgPyAnVW5kZWZpbmVkJyA6IGl0ID09PSBudWxsID8gJ051bGwnCiAgICAvLyBAQHRvU3RyaW5nVGFnIGNhc2UKICAgIDogdHlwZW9mIChUID0gdHJ5R2V0KE8gPSBPYmplY3QoaXQpLCBUQUcpKSA9PSAnc3RyaW5nJyA/IFQKICAgIC8vIGJ1aWx0aW5UYWcgY2FzZQogICAgOiBBUkcgPyBjb2YoTykKICAgIC8vIEVTMyBhcmd1bWVudHMgZmFsbGJhY2sKICAgIDogKEIgPSBjb2YoTykpID09ICdPYmplY3QnICYmIHR5cGVvZiBPLmNhbGxlZSA9PSAnZnVuY3Rpb24nID8gJ0FyZ3VtZW50cycgOiBCOwp9OwoKCi8qKiovIH0pLAovKiA2OSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsKCnZhciBfaXRlcmF0b3IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwMyk7Cgp2YXIgX2l0ZXJhdG9yMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2l0ZXJhdG9yKTsKCnZhciBfc3ltYm9sID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMTYpOwoKdmFyIF9zeW1ib2wyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfc3ltYm9sKTsKCnZhciBfdHlwZW9mID0gdHlwZW9mIF9zeW1ib2wyLmRlZmF1bHQgPT09ICJmdW5jdGlvbiIgJiYgdHlwZW9mIF9pdGVyYXRvcjIuZGVmYXVsdCA9PT0gInN5bWJvbCIgPyBmdW5jdGlvbiAob2JqKSB7IHJldHVybiB0eXBlb2Ygb2JqOyB9IDogZnVuY3Rpb24gKG9iaikgeyByZXR1cm4gb2JqICYmIHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSAiZnVuY3Rpb24iICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gX3N5bWJvbDIuZGVmYXVsdCAmJiBvYmogIT09IF9zeW1ib2wyLmRlZmF1bHQucHJvdG90eXBlID8gInN5bWJvbCIgOiB0eXBlb2Ygb2JqOyB9OwoKZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH0KCmV4cG9ydHMuZGVmYXVsdCA9IHR5cGVvZiBfc3ltYm9sMi5kZWZhdWx0ID09PSAiZnVuY3Rpb24iICYmIF90eXBlb2YoX2l0ZXJhdG9yMi5kZWZhdWx0KSA9PT0gInN5bWJvbCIgPyBmdW5jdGlvbiAob2JqKSB7CiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICJ1bmRlZmluZWQiID8gInVuZGVmaW5lZCIgOiBfdHlwZW9mKG9iaik7Cn0gOiBmdW5jdGlvbiAob2JqKSB7CiAgcmV0dXJuIG9iaiAmJiB0eXBlb2YgX3N5bWJvbDIuZGVmYXVsdCA9PT0gImZ1bmN0aW9uIiAmJiBvYmouY29uc3RydWN0b3IgPT09IF9zeW1ib2wyLmRlZmF1bHQgJiYgb2JqICE9PSBfc3ltYm9sMi5kZWZhdWx0LnByb3RvdHlwZSA/ICJzeW1ib2wiIDogdHlwZW9mIG9iaiA9PT0gInVuZGVmaW5lZCIgPyAidW5kZWZpbmVkIiA6IF90eXBlb2Yob2JqKTsKfTsKCi8qKiovIH0pLAovKiA3MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpleHBvcnRzLmYgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpOwoKCi8qKiovIH0pLAovKiA3MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgZ2xvYmFsID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CnZhciBjb3JlID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKTsKdmFyIExJQlJBUlkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYyKTsKdmFyIHdrc0V4dCA9IF9fd2VicGFja19yZXF1aXJlX18oNzApOwp2YXIgZGVmaW5lUHJvcGVydHkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpLmY7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG5hbWUpIHsKICB2YXIgJFN5bWJvbCA9IGNvcmUuU3ltYm9sIHx8IChjb3JlLlN5bWJvbCA9IExJQlJBUlkgPyB7fSA6IGdsb2JhbC5TeW1ib2wgfHwge30pOwogIGlmIChuYW1lLmNoYXJBdCgwKSAhPSAnXycgJiYgIShuYW1lIGluICRTeW1ib2wpKSBkZWZpbmVQcm9wZXJ0eSgkU3ltYm9sLCBuYW1lLCB7IHZhbHVlOiB3a3NFeHQuZihuYW1lKSB9KTsKfTsKCgovKioqLyB9KSwKLyogNzIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKZXhwb3J0cy5mID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczsKCgovKioqLyB9KSwKLyogNzMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKCgovKioqLyB9KSwKLyogNzQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKbW9kdWxlLmV4cG9ydHMgPSB7ICJkZWZhdWx0IjogX193ZWJwYWNrX3JlcXVpcmVfXygyMjMpLCBfX2VzTW9kdWxlOiB0cnVlIH07CgovKioqLyB9KSwKLyogNzUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGlzT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQsIFRZUEUpIHsKICBpZiAoIWlzT2JqZWN0KGl0KSB8fCBpdC5fdCAhPT0gVFlQRSkgdGhyb3cgVHlwZUVycm9yKCdJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICcgKyBUWVBFICsgJyByZXF1aXJlZCEnKTsKICByZXR1cm4gaXQ7Cn07CgoKLyoqKi8gfSksCi8qIDc2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCnZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nOwoKbW9kdWxlLmV4cG9ydHMgPSBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uIChhcnIpIHsKICByZXR1cm4gdG9TdHJpbmcuY2FsbChhcnIpID09ICdbb2JqZWN0IEFycmF5XSc7Cn07CgoKLyoqKi8gfSksCi8qIDc3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgpmdW5jdGlvbiBUcmF2ZXJzYWxUcmFja2VyKCkgewoJdGhpcy5ldmVudHMgPSB7fTsKfQoKVHJhdmVyc2FsVHJhY2tlci5wcm90b3R5cGUuc3RhcnRUcmFja2luZyA9IGZ1bmN0aW9uIChldmVudCwgY2FsbGJhY2spIHsKCXZhciBjYWxsYmFja3MgPSB0aGlzLmV2ZW50c1tldmVudF0gfHwgKHRoaXMuZXZlbnRzW2V2ZW50XSA9IFtdKTsKCglpZiAoY2FsbGJhY2tzLmluZGV4T2YoY2FsbGJhY2spIDwgMCkgewoJCWNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTsKCX0KfTsKClRyYXZlcnNhbFRyYWNrZXIucHJvdG90eXBlLnN0b3BUcmFja2luZyA9IGZ1bmN0aW9uIChldmVudCwgY2FsbGJhY2spIHsKCXZhciBjYWxsYmFja3MgPSB0aGlzLmV2ZW50c1tldmVudF07CgoJaWYgKCFjYWxsYmFja3MpIHsKCQlyZXR1cm47Cgl9CgoJdmFyIGluZGV4ID0gY2FsbGJhY2tzLmluZGV4T2YoY2FsbGJhY2spOwoJaWYgKGluZGV4ID49IDApIHsKCQljYWxsYmFja3Muc3BsaWNlKGluZGV4LCAxKTsKCX0KfTsKClRyYXZlcnNhbFRyYWNrZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKCXZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAxKTsKCXZhciBjYWxsYmFja3MgPSB0aGlzLmV2ZW50c1tldmVudF07CgoJaWYgKCFjYWxsYmFja3MpIHsKCQlyZXR1cm47Cgl9CgoJY2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24gKGNhbGxiYWNrKSB7CgkJY2FsbGJhY2suYXBwbHkodGhpcywgYXJncyk7Cgl9KTsKfTsKClRyYXZlcnNhbFRyYWNrZXIucHJvdG90eXBlLmF1dG8gPSBmdW5jdGlvbiAoZXZlbnQsIGNhbGxiYWNrLCBpbm5lckZ1bmN0aW9uKSB7Cgl0aGlzLnN0YXJ0VHJhY2tpbmcoZXZlbnQsIGNhbGxiYWNrKTsKCWlubmVyRnVuY3Rpb24oKTsKCXRoaXMuc3RvcFRyYWNraW5nKGV2ZW50LCBjYWxsYmFjayk7Cn07Cgptb2R1bGUuZXhwb3J0cyA9IFRyYXZlcnNhbFRyYWNrZXI7CgoKLyoqKi8gfSksCi8qIDc4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBBSSwgQUwsIEJBLCBCSywgQ0IsIENJX0JSSywgQ0osIENQX0JSSywgQ1IsIERJX0JSSywgSUQsIElOX0JSSywgTEYsIExpbmVCcmVha2VyLCBOTCwgTlMsIFBSX0JSSywgU0EsIFNHLCBTUCwgVW5pY29kZVRyaWUsIFdKLCBYWCwgYmFzZTY0LCBjaGFyYWN0ZXJDbGFzc2VzLCBjbGFzc1RyaWUsIGRhdGEsIGZzLCBwYWlyVGFibGUsIF9yZWYsIF9yZWYxOwoKICBVbmljb2RlVHJpZSA9IF9fd2VicGFja19yZXF1aXJlX18oNDMpOwoKICAKCiAgYmFzZTY0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMzEpOwoKICBfcmVmID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMzIpLCBCSyA9IF9yZWYuQkssIENSID0gX3JlZi5DUiwgTEYgPSBfcmVmLkxGLCBOTCA9IF9yZWYuTkwsIENCID0gX3JlZi5DQiwgQkEgPSBfcmVmLkJBLCBTUCA9IF9yZWYuU1AsIFdKID0gX3JlZi5XSiwgU1AgPSBfcmVmLlNQLCBCSyA9IF9yZWYuQkssIExGID0gX3JlZi5MRiwgTkwgPSBfcmVmLk5MLCBBSSA9IF9yZWYuQUksIEFMID0gX3JlZi5BTCwgU0EgPSBfcmVmLlNBLCBTRyA9IF9yZWYuU0csIFhYID0gX3JlZi5YWCwgQ0ogPSBfcmVmLkNKLCBJRCA9IF9yZWYuSUQsIE5TID0gX3JlZi5OUywgY2hhcmFjdGVyQ2xhc3NlcyA9IF9yZWYuY2hhcmFjdGVyQ2xhc3NlczsKCiAgX3JlZjEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzMyksIERJX0JSSyA9IF9yZWYxLkRJX0JSSywgSU5fQlJLID0gX3JlZjEuSU5fQlJLLCBDSV9CUksgPSBfcmVmMS5DSV9CUkssIENQX0JSSyA9IF9yZWYxLkNQX0JSSywgUFJfQlJLID0gX3JlZjEuUFJfQlJLLCBwYWlyVGFibGUgPSBfcmVmMS5wYWlyVGFibGU7CgogIGRhdGEgPSBiYXNlNjQudG9CeXRlQXJyYXkoIkFBNElBQUFBQUFBQUFocWc1VlY3Tkp0WnZ6N2ZUQzh6VTVkZXBsVWxNclFvV3FtcWFoRDVTbzBhaXBZV3JVaFZGU1ZCUTEwaVNUdFV0VzZuS0RWRjZrN2Q3NWVRZkVVYkZjUTlLaUZTOTB0UUVvbGNQMjNuckxQbU8rZXNyLytmMzlyci9hMjkzdC9lNy9QOG5tZnZsejBPNlJ2ckJKQUR0YkJOYUQ4OElPS1RPbU9yQ3FodTl6RTc3MHZjMXBCVi94TDVkeGoyVjdaajRGR1NvbUZLU3RDV05sVjdoRzFWYWJaZloxTGFIYkZyUnd6ekxqelBvaTFVSERubFYvbFdiaGdJSUp2TEJwL3B1N0FIRWRSbklZK1JPZFh4ZzRmTnBNZFR4Vm5ubTA4T2pvemVqQVZzQnF3cXo4a2RkR1JsUnhzZDhjNTVkTlpvUHVleDZhN0R0NkwwTk5iMDNzcWdUbFIyL09UN2VUdDBZMFducFVYeExzcDVTTUFOYzREc21YNHpKVUJRdnpud2V4bTl0c01IK0M5dVJZTVBPZDk2WkhCMjlOWmpDSU0ybmZPN3RzbVF2ZVgzbDJyN2Z0ME40L1NSSjdrTzZZOFpDYWV1VVE0Z01UWjY3Y3A3VGd4dmxORHNQZ09CZFppMllUYW01UTdtMyswMGwrWEc3UHJEZTZZb1BtSGdLK3lMaWg3ZkFSMTZaRkNlRDlXdk9WdCtnZk5XL0tUNS9NNnJiLzlLRVJ0K04xbGFkNVJuZVZqenhYSHNMb2Z1VStUdnJFc3IzKzI2c1Z6NVdKaDZML3N2b1BLM3FlcEZIOWJ5c0Rsald0RDFGN0tyeHpXMWk5citlL05MeFYvYWN0czd6dW8zMDRKOSt0M1BkNlk2dThmM0VBcXhOUmd2NURaamFJM3VueXZrdkhQeWEvdjNtV1ZZT0MzOHFCcTExK3lIWjJiQXlQMUhia1Y5MnZkbm83cjJseHo5VXdDZENKVmZkMTROTGNwTzJDYWRIUy9YUEo5ZG9YZ3o1dkx2LzFPQlZTM2dYMEQ5bjZMaU5JRGZwaWxPOVJzTGdaMlcvd0l5OFcvUmg5M2pmb3o0cW1SVjJ4RWx2NnAybFJYUWRPNi9DdjhmNW5HbjN1MHdMWGpobnZDbGFiTDFvKzd5dklwdkxmVC94c0tHMzB5L3NUdnEzMGlhOUN6eHA5ZHI5di9lN1luL08wUUpYeHhCT0ptY2VQL0RCRmExcTF2Nm91ZG4vZTZxYy8zN2RVb052bllMNHBsUTlPb25lWU9oL3I4Zk9GbTd5bDdGRVRIWTlkWGQ1SzJuL3FFYzUzZE9FZTFUVEpjdkNmcDFkcFRDMzM0bDB2eWFGTDZtdHRORWJGanpPK1pWMm1MazBxYzNCcnhKNGQ5Z3dlTW1qUm9yeGI3dmljMHJTcTZENHd6QXlGV2FzMVRxUEUwc0xJOFhMQXJ5Qzh0UENoYU4zQUxFWlNXbXRCMzRTeVpjeFhZbi9FNFRnMExlTUlQaGdQS0Q5enlIR014eGh4bkREaWg3ZUk4NnhFQ1RNOHpvZFVDZGdmZlVtUmg0clE4enlBNm93L0FlaSswMWE4T01memlRUStHQUVraHdOL2NxVUZZQVZ6QTlleDRuNmpndHNpTXZYZjVCdFh4RVU0aFNwaHZ4M3Y4KzlhdThlRWVrRUVwa3JrbmUvekIxTStIQVB1WEl6M3BheEtsZmU4YURNZkdXQVg2TWQ2UHV1QWRLSEZWSCsrRWQ1TEVqaTk0WjV6ZWlKSXhibVdlTjdycjEvWmNhQmw1L25pbWRIc0hnSUgvc3N5TFVYWjRmRFE0NkhuQmIraFFxRzh5TmlLUnJYTC9iMUlQWURVc3UzZEZLdFJNY2pxbFJ2T05kNHhCdk91ZngyY1VIdWs4cG1HMUQ3UHlPUW1VbWx1aXNWRlM5T1dTOGZQSWU4TGlDdGp3SktuRUM5aHJTOXVLbUlTSTNXYTUrdmRYVUc5ZHR5ZnI3Zy9vSnYyd2J6ZVpVODM4RzZtRXZudFViM1NWVi9mQlo2SC9zTCtsRWx6ZVJySHkyWGJlN1VXWDFxNXNnT1E4MXJ2KzJiYWVqNGZQNG01TWYvR2tveGZEdFQzKytLUDdkbzlKbjI2YWE2eEFoQ2Y1TDlSWlZma1dLQ2NqSTFlWWJtMnBsdlRFcWtEeEtDNDAyYkd6WENZYUdudUFMSGFiQlQxZEZMdU9TQjdSb3JPUEVoWmFoMU5qWklnUi9VRkdmSzNwMUVsWW5ldk9NQkRMVVJkcElqckkrcVprNHNmZkdiUkZpWHVFbWRGamlBT0RsUUNKdklhQjFyVzYxTGpnM3k0ZVM0TEFjU2dEeHhaUXMwRFlhMTV3QTAzMlorbEdVZnBveU9yRm8zbWcxc1JRdE4vZkhIQ3gzVHJNOGVUcmxkTWJZaXNETFhiVURvWE1MZWpTcTBmVU51TzFtdVgwZ0VhOHZneWVna3FpcXFiQzNXMFM0Y0M5S210OE11Uy9oRk83WGVpM2Y4clN2SWpldmVNTTdreGpVaXhPcmw2Z0pzaGU0SlU3UGhPSHBmclJZdnU3eW9BWkthM0J1eWsySitLNVcrbk5UejFuaEpEaFJVZkRKTGlVWHhqeFhDSmVlYU9lL3I3SGxCUC91VVJjLzVlZmFaRVB4cjU1UWozOXJmVExrdWdVR3lNcndvN0hBZ2xmRWpEcmllaEYxalh0d0prUG9pWWtZUTVhb1hTQTdxYkNCR0txNWh3dHUyVmtwSTl4VkRvcC8xeHJDNTJlaUl2Q29QV3g0bExsNDBqbTl1cHZ5Y1ZQZnBhSDkvbzJENHhLWHBlTmpFMkhQUVJTKzNSRmFZVGM0VHh3N0R2cTVYNkpCUnd6czltdm9CNDlCSzZiK1hnc1pWSllpSW5UbFNYWis2MkZUMThta0ZWY1BLQ0pzb0Y1YWhiMTlXaGVaTFVZc1N3ZHJyVk0zYVEyWEU2U3pVMnhIRFM2aVdrb2RrNUFGNkY4V1VObW11c2hpOGFWcE1Qd2lJZkVpUVdvM0NBcE9ORFJqcmhEaVZua2FGc2FQNXJqSUprbXNONlYyNmxpNUxOTTNKeEdTeUtnb21rblR5eXJoY253djlRY3FhcTV1dEFoNDRXMzBTV284UTBYSEtSMGdsUEY0ZldzdDFGVUNuazJ3b0ZxM2l5OWZBYnpjako4ZnZTamdLVk9mbjE0UkRxeVF1SWdhR0padXN3VHl3ZENGU2E4OVNha01mNmZlKzlLYVFNWVFsS3hpSkJjenVQU2hvNHdtQmpkQSthZzZRVU9yMkdkcGNiU2w1MUF5NmtoaEJ0NVVYZHJueGM3WkdNeEN2ejk2QTRvTG9jeGgyK3B4KzF6a3lMYWNDR3J4blB6VFJTZ3JMS3BTdEZwSDVwcEtXbTdQZ01LWnR3Z3l0S0xPamJHQ09RTFRtK0tPb3dxYTFzZHV0OXJhajFDWkZrWkQwamJhS05McEpVYXJTSDVRa254MVlpT3hkQTVMNmQ1c2ZJL3VubWtTRjY1SWMvQXZ0WHQ5OFBucmR3bDV2Z3BwUTNkWXpXRndrblpzeTZ4aDJsbG1MeHBlZ0Y4YXlMd25pa25sWFJIaUY0aHp6cmdCOGpRNHdkSXFjYUhDRUF4eUp3Q2VHa1hQQlpZU3JyR2E0dk13WnZOTjlhSzBGNEpCT0s5bVE4ZzhFakViSVFWd3ZmUzJEOEd1Q1lzZHF3cVNXYlFyZldkVFJVSk1xbXBuV1BheDRaN0UxMzdJNmJySGJ2anBQbGZOWnBGMWQ3UFA3SEIvTVBIY0hWS1RNaExPNGYzQ1pjYWNjWkVPaVMyRHBLaVFCNUtYREorT3NwY3o0cVRSQ1J4Z3JLRVFJZ1VrS0xUS0t3c2tkeDJEV28zYmczUEVvQjVoMm5BMjRvbHdmS1NSK1FSNlRBdkVEaS8wY3poVVQ1OVJabU8xTUdlS0dlRWZ1T1NQV2ZMK1hLbWhxcFptT1ZSOW1KVk5EUEtPUzQ5THErVW0xMFlzQnliekRNdGVtbFBDT0pFdEU4emFYaHNhcUVzOWJuZ1NKR2hsT1RUTWxDWGx5OVF2NWNSTjNQVkxLN3pvTXB0dXRmN2lodXRyUS9YajdWcWVDZFV3bGVUVEtrbE9JOFdlcDloN2ZDWTBrVnREdElXS251YldBdmJOWnRzUlJxT1lsODAydmViUEVrWlJTWmM2d1hPZlB0cFB0TjVISTYzRVVGZnN5N1UvVExyOE5rSXphWTN2eDRBMjh4NzY1WFpNelJaVHBNazgxWUlNdXdKNSsvem9DdVpqMXdHbmFIT2J4YTVycEtaajRXaFQ2NzBtYVJ3MDR3MGUzY1pXNzRaMGFaZTJuMDVoalpheG02dXJlbno4RWY1TzZZdTFKMmFxWUFscXNDWHM1WkI1bzFKSjVsM3hrVFZyOHJKUTA5TkxzQnFSUkRUMklJak9QbWNKYTZ4UTFSNXlHUDlqQXNqMjN4WURUZXpkeXFHOFlXWjd2SkJJV0s1NksraURnY0hpbWlRT1RJYXNOU3VhMWZPQnhzS01NRUtkMTVqeFRsKzNDeXZHQ1IrVXlSd3VTSTJYdXdSSVBvTk5jbFBpaGZKaGFxMm1La05pandZTFk2ZmVxb2hrdHVrbUkzS0R2T3BON0l0Q3FISGhOdUtseE1mQkFFTzVMalcyUktoNmxFNUhkMWR0QU9vcGFjL1o0RmRzTnNqTWhYei91ZzhKR21iVkpUQStWT0JKWGRyWXlKY0luNStPRWVvSzhrV0VXRit3ZEc4WnRaSEtTcXVXRHREVnloRlBrUlZxZ3VLRmtMa0tDejQ2aGNVMVNVWTlvSjJTaytkbXEwa2dscWs0a3FLVDFDVjlKREVMUGpLMVdzV0drRVhGODdnOVA5OGU1ZmYwbUl1cG0vdzZ2YzNrQ2VxMDRYNWJnSlFsY01GUmpsRldtU2sra3NzWENBVmlrZmVBbE11enBVdkNTZFhpRytkYzZLcklpTHh4aGJFVnVLZjd2VzdLbURRSTk1YlplM0g5bU4zLzc3RjZmWjJZeC9GOXlDbGxsajhnWHBMV0xwZDUrdjkwaU9hRmE5c2Q3UHZ4MGxOYTFvMStia2laNjl3Q2lDMng5VUliNi9ib0JDdU5NQi9IWVIwUkM2K0ZEOU9lNXFyZ1FsNkpiWHRrYVluMHdrZE5oUk9McXlodjZjS3Z5TWoxRnZzMm8zT09Lb01ZVHViR0VOTGZZNUY2SDlkOHdYMWNuSU5zdnord1pGUXUzemhXVmx3SnZ3QkVwNjlEcXUvWm5rQmYzbklmYng0VEs3ek9WSkg1c0dKWCtJTXdrbjF2VkJuMzhHYnBUZzliSm5NY1RPYjVGNkNpNWdPbjlGY3k2UXpjdStGTDZtWUpKK2YyWlpKR2RhMVZxcnVaMEpSWEl0cDhYMGFUakljSmd6ZGFYbGhhN3E3a1Y0ZWJyTXN1bmZzUnlSYTlxWXVyeUJIQTBoYzFLVnNLZEUrb0kwbGpMbVNBeU16ZThsV21jNS9sUTE4c2x5VFZDL3ZBRFRjK1NOTTUrK2d6dFRCTHo0bTBhVlVLY2ZnT0VFeHVLVm9tSjdYUURadXppTURqRzZKUDl0Z1I3SlhaVGVvOVJHZXRXL1htOS9UZ1BKcFRnSEFDUE9Hdm15Mm1EbTlmbDA5V2VNbTlzUVVBWFAzU3UydUFwZUN3SlZUNWlXQ1hEZ21jdVRzRmdVOU5tNi9QdXNKelNiRFFJTWZsNklOWS9PQUV2WlJONTRCU1NYVUNsTTUxaW02V245VmhWYW1LSm16T2FGSkVyZ0pjczBldEZaNDBMSUYzRVBrakZUakdtQWhzZDE3NE5uT3dKVzhUZEoxRGphK0U2V2E2RlZTMjJIYWoxRERBNDc0RWVzb01QNW5ic3BBUEpMV0o4clljUDFEd0NzbGhubitnVEZtK3NTOXdZK1U2U29nQWE5dGl3cG94dWFGZXFtMk9LK3VvelI2U2ZpTENPUHozNkxpRGx6WHI2VVdkN0JwWTZtbHJOQU5rVE9lbWU1RWdubkFrUVJUR285VDZpWXhiVUtmR0pjSTlCK3ViMlBjeVVPZ3B3WGJPZjNiSEZXdHlnRDdGWWJSaGIrdmt6aTg3ZEIwSmVYbC92QnBCVXo5M1Z0cVppN0FMN0MxVm93VEYrdEdteXVydzdEQmNrdGMrVU1ZMEUxMEp3NFVSb2pmOE5kYU5wTjZFMXE0K096KzRZZVB0TUx5OEZQUlAiKTsKCiAgY2xhc3NUcmllID0gbmV3IFVuaWNvZGVUcmllKGRhdGEpOwoKICBMaW5lQnJlYWtlciA9IChmdW5jdGlvbigpIHsKICAgIHZhciBCcmVhaywgbWFwQ2xhc3MsIG1hcEZpcnN0OwoKICAgIGZ1bmN0aW9uIExpbmVCcmVha2VyKHN0cmluZykgewogICAgICB0aGlzLnN0cmluZyA9IHN0cmluZzsKICAgICAgdGhpcy5wb3MgPSAwOwogICAgICB0aGlzLmxhc3RQb3MgPSAwOwogICAgICB0aGlzLmN1ckNsYXNzID0gbnVsbDsKICAgICAgdGhpcy5uZXh0Q2xhc3MgPSBudWxsOwogICAgfQoKICAgIExpbmVCcmVha2VyLnByb3RvdHlwZS5uZXh0Q29kZVBvaW50ID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBjb2RlLCBuZXh0OwogICAgICBjb2RlID0gdGhpcy5zdHJpbmcuY2hhckNvZGVBdCh0aGlzLnBvcysrKTsKICAgICAgbmV4dCA9IHRoaXMuc3RyaW5nLmNoYXJDb2RlQXQodGhpcy5wb3MpOwogICAgICBpZiAoKDB4ZDgwMCA8PSBjb2RlICYmIGNvZGUgPD0gMHhkYmZmKSAmJiAoMHhkYzAwIDw9IG5leHQgJiYgbmV4dCA8PSAweGRmZmYpKSB7CiAgICAgICAgdGhpcy5wb3MrKzsKICAgICAgICByZXR1cm4gKChjb2RlIC0gMHhkODAwKSAqIDB4NDAwKSArIChuZXh0IC0gMHhkYzAwKSArIDB4MTAwMDA7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvZGU7CiAgICB9OwoKICAgIG1hcENsYXNzID0gZnVuY3Rpb24oYykgewogICAgICBzd2l0Y2ggKGMpIHsKICAgICAgICBjYXNlIEFJOgogICAgICAgICAgcmV0dXJuIEFMOwogICAgICAgIGNhc2UgU0E6CiAgICAgICAgY2FzZSBTRzoKICAgICAgICBjYXNlIFhYOgogICAgICAgICAgcmV0dXJuIEFMOwogICAgICAgIGNhc2UgQ0o6CiAgICAgICAgICByZXR1cm4gTlM7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHJldHVybiBjOwogICAgICB9CiAgICB9OwoKICAgIG1hcEZpcnN0ID0gZnVuY3Rpb24oYykgewogICAgICBzd2l0Y2ggKGMpIHsKICAgICAgICBjYXNlIExGOgogICAgICAgIGNhc2UgTkw6CiAgICAgICAgICByZXR1cm4gQks7CiAgICAgICAgY2FzZSBDQjoKICAgICAgICAgIHJldHVybiBCQTsKICAgICAgICBjYXNlIFNQOgogICAgICAgICAgcmV0dXJuIFdKOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gYzsKICAgICAgfQogICAgfTsKCiAgICBMaW5lQnJlYWtlci5wcm90b3R5cGUubmV4dENoYXJDbGFzcyA9IGZ1bmN0aW9uKGZpcnN0KSB7CiAgICAgIGlmIChmaXJzdCA9PSBudWxsKSB7CiAgICAgICAgZmlyc3QgPSBmYWxzZTsKICAgICAgfQogICAgICByZXR1cm4gbWFwQ2xhc3MoY2xhc3NUcmllLmdldCh0aGlzLm5leHRDb2RlUG9pbnQoKSkpOwogICAgfTsKCiAgICBCcmVhayA9IChmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gQnJlYWsocG9zaXRpb24sIHJlcXVpcmVkKSB7CiAgICAgICAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uOwogICAgICAgIHRoaXMucmVxdWlyZWQgPSByZXF1aXJlZCAhPSBudWxsID8gcmVxdWlyZWQgOiBmYWxzZTsKICAgICAgfQoKICAgICAgcmV0dXJuIEJyZWFrOwoKICAgIH0pKCk7CgogICAgTGluZUJyZWFrZXIucHJvdG90eXBlLm5leHRCcmVhayA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgY3VyLCBsYXN0Q2xhc3MsIHNob3VsZEJyZWFrOwogICAgICBpZiAodGhpcy5jdXJDbGFzcyA9PSBudWxsKSB7CiAgICAgICAgdGhpcy5jdXJDbGFzcyA9IG1hcEZpcnN0KHRoaXMubmV4dENoYXJDbGFzcygpKTsKICAgICAgfQogICAgICB3aGlsZSAodGhpcy5wb3MgPCB0aGlzLnN0cmluZy5sZW5ndGgpIHsKICAgICAgICB0aGlzLmxhc3RQb3MgPSB0aGlzLnBvczsKICAgICAgICBsYXN0Q2xhc3MgPSB0aGlzLm5leHRDbGFzczsKICAgICAgICB0aGlzLm5leHRDbGFzcyA9IHRoaXMubmV4dENoYXJDbGFzcygpOwogICAgICAgIGlmICh0aGlzLmN1ckNsYXNzID09PSBCSyB8fCAodGhpcy5jdXJDbGFzcyA9PT0gQ1IgJiYgdGhpcy5uZXh0Q2xhc3MgIT09IExGKSkgewogICAgICAgICAgdGhpcy5jdXJDbGFzcyA9IG1hcEZpcnN0KG1hcENsYXNzKHRoaXMubmV4dENsYXNzKSk7CiAgICAgICAgICByZXR1cm4gbmV3IEJyZWFrKHRoaXMubGFzdFBvcywgdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIGN1ciA9IChmdW5jdGlvbigpIHsKICAgICAgICAgIHN3aXRjaCAodGhpcy5uZXh0Q2xhc3MpIHsKICAgICAgICAgICAgY2FzZSBTUDoKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jdXJDbGFzczsKICAgICAgICAgICAgY2FzZSBCSzoKICAgICAgICAgICAgY2FzZSBMRjoKICAgICAgICAgICAgY2FzZSBOTDoKICAgICAgICAgICAgICByZXR1cm4gQks7CiAgICAgICAgICAgIGNhc2UgQ1I6CiAgICAgICAgICAgICAgcmV0dXJuIENSOwogICAgICAgICAgICBjYXNlIENCOgogICAgICAgICAgICAgIHJldHVybiBCQTsKICAgICAgICAgIH0KICAgICAgICB9KS5jYWxsKHRoaXMpOwogICAgICAgIGlmIChjdXIgIT0gbnVsbCkgewogICAgICAgICAgdGhpcy5jdXJDbGFzcyA9IGN1cjsKICAgICAgICAgIGlmICh0aGlzLm5leHRDbGFzcyA9PT0gQ0IpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBCcmVhayh0aGlzLmxhc3RQb3MpOwogICAgICAgICAgfQogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIHNob3VsZEJyZWFrID0gZmFsc2U7CiAgICAgICAgc3dpdGNoIChwYWlyVGFibGVbdGhpcy5jdXJDbGFzc11bdGhpcy5uZXh0Q2xhc3NdKSB7CiAgICAgICAgICBjYXNlIERJX0JSSzoKICAgICAgICAgICAgc2hvdWxkQnJlYWsgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgSU5fQlJLOgogICAgICAgICAgICBzaG91bGRCcmVhayA9IGxhc3RDbGFzcyA9PT0gU1A7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSBDSV9CUks6CiAgICAgICAgICAgIHNob3VsZEJyZWFrID0gbGFzdENsYXNzID09PSBTUDsKICAgICAgICAgICAgaWYgKCFzaG91bGRCcmVhaykgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSBDUF9CUks6CiAgICAgICAgICAgIGlmIChsYXN0Q2xhc3MgIT09IFNQKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhpcy5jdXJDbGFzcyA9IHRoaXMubmV4dENsYXNzOwogICAgICAgIGlmIChzaG91bGRCcmVhaykgewogICAgICAgICAgcmV0dXJuIG5ldyBCcmVhayh0aGlzLmxhc3RQb3MpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAodGhpcy5wb3MgPj0gdGhpcy5zdHJpbmcubGVuZ3RoKSB7CiAgICAgICAgaWYgKHRoaXMubGFzdFBvcyA8IHRoaXMuc3RyaW5nLmxlbmd0aCkgewogICAgICAgICAgdGhpcy5sYXN0UG9zID0gdGhpcy5zdHJpbmcubGVuZ3RoOwogICAgICAgICAgcmV0dXJuIG5ldyBCcmVhayh0aGlzLnN0cmluZy5sZW5ndGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIExpbmVCcmVha2VyOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IExpbmVCcmVha2VyOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogNzkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKdmFyIFRJTkZfT0sgPSAwOwp2YXIgVElORl9EQVRBX0VSUk9SID0gLTM7CgpmdW5jdGlvbiBUcmVlKCkgewogIHRoaXMudGFibGUgPSBuZXcgVWludDE2QXJyYXkoMTYpOyAgIC8qIHRhYmxlIG9mIGNvZGUgbGVuZ3RoIGNvdW50cyAqLwogIHRoaXMudHJhbnMgPSBuZXcgVWludDE2QXJyYXkoMjg4KTsgIC8qIGNvZGUgLT4gc3ltYm9sIHRyYW5zbGF0aW9uIHRhYmxlICovCn0KCmZ1bmN0aW9uIERhdGEoc291cmNlLCBkZXN0KSB7CiAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7CiAgdGhpcy5zb3VyY2VJbmRleCA9IDA7CiAgdGhpcy50YWcgPSAwOwogIHRoaXMuYml0Y291bnQgPSAwOwogIAogIHRoaXMuZGVzdCA9IGRlc3Q7CiAgdGhpcy5kZXN0TGVuID0gMDsKICAKICB0aGlzLmx0cmVlID0gbmV3IFRyZWUoKTsgIC8qIGR5bmFtaWMgbGVuZ3RoL3N5bWJvbCB0cmVlICovCiAgdGhpcy5kdHJlZSA9IG5ldyBUcmVlKCk7ICAvKiBkeW5hbWljIGRpc3RhbmNlIHRyZWUgKi8KfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKICogLS0gdW5pbml0aWFsaXplZCBnbG9iYWwgZGF0YSAoc3RhdGljIHN0cnVjdHVyZXMpIC0tICoKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgp2YXIgc2x0cmVlID0gbmV3IFRyZWUoKTsKdmFyIHNkdHJlZSA9IG5ldyBUcmVlKCk7CgovKiBleHRyYSBiaXRzIGFuZCBiYXNlIHRhYmxlcyBmb3IgbGVuZ3RoIGNvZGVzICovCnZhciBsZW5ndGhfYml0cyA9IG5ldyBVaW50OEFycmF5KDMwKTsKdmFyIGxlbmd0aF9iYXNlID0gbmV3IFVpbnQxNkFycmF5KDMwKTsKCi8qIGV4dHJhIGJpdHMgYW5kIGJhc2UgdGFibGVzIGZvciBkaXN0YW5jZSBjb2RlcyAqLwp2YXIgZGlzdF9iaXRzID0gbmV3IFVpbnQ4QXJyYXkoMzApOwp2YXIgZGlzdF9iYXNlID0gbmV3IFVpbnQxNkFycmF5KDMwKTsKCi8qIHNwZWNpYWwgb3JkZXJpbmcgb2YgY29kZSBsZW5ndGggY29kZXMgKi8KdmFyIGNsY2lkeCA9IG5ldyBVaW50OEFycmF5KFsKICAxNiwgMTcsIDE4LCAwLCA4LCA3LCA5LCA2LAogIDEwLCA1LCAxMSwgNCwgMTIsIDMsIDEzLCAyLAogIDE0LCAxLCAxNQpdKTsKCi8qIHVzZWQgYnkgdGluZl9kZWNvZGVfdHJlZXMsIGF2b2lkcyBhbGxvY2F0aW9ucyBldmVyeSBjYWxsICovCnZhciBjb2RlX3RyZWUgPSBuZXcgVHJlZSgpOwp2YXIgbGVuZ3RocyA9IG5ldyBVaW50OEFycmF5KDI4OCArIDMyKTsKCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoKICogLS0gdXRpbGl0eSBmdW5jdGlvbnMgLS0gKgogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLyogYnVpbGQgZXh0cmEgYml0cyBhbmQgYmFzZSB0YWJsZXMgKi8KZnVuY3Rpb24gdGluZl9idWlsZF9iaXRzX2Jhc2UoYml0cywgYmFzZSwgZGVsdGEsIGZpcnN0KSB7CiAgdmFyIGksIHN1bTsKCiAgLyogYnVpbGQgYml0cyB0YWJsZSAqLwogIGZvciAoaSA9IDA7IGkgPCBkZWx0YTsgKytpKSBiaXRzW2ldID0gMDsKICBmb3IgKGkgPSAwOyBpIDwgMzAgLSBkZWx0YTsgKytpKSBiaXRzW2kgKyBkZWx0YV0gPSBpIC8gZGVsdGEgfCAwOwoKICAvKiBidWlsZCBiYXNlIHRhYmxlICovCiAgZm9yIChzdW0gPSBmaXJzdCwgaSA9IDA7IGkgPCAzMDsgKytpKSB7CiAgICBiYXNlW2ldID0gc3VtOwogICAgc3VtICs9IDEgPDwgYml0c1tpXTsKICB9Cn0KCi8qIGJ1aWxkIHRoZSBmaXhlZCBodWZmbWFuIHRyZWVzICovCmZ1bmN0aW9uIHRpbmZfYnVpbGRfZml4ZWRfdHJlZXMobHQsIGR0KSB7CiAgdmFyIGk7CgogIC8qIGJ1aWxkIGZpeGVkIGxlbmd0aCB0cmVlICovCiAgZm9yIChpID0gMDsgaSA8IDc7ICsraSkgbHQudGFibGVbaV0gPSAwOwoKICBsdC50YWJsZVs3XSA9IDI0OwogIGx0LnRhYmxlWzhdID0gMTUyOwogIGx0LnRhYmxlWzldID0gMTEyOwoKICBmb3IgKGkgPSAwOyBpIDwgMjQ7ICsraSkgbHQudHJhbnNbaV0gPSAyNTYgKyBpOwogIGZvciAoaSA9IDA7IGkgPCAxNDQ7ICsraSkgbHQudHJhbnNbMjQgKyBpXSA9IGk7CiAgZm9yIChpID0gMDsgaSA8IDg7ICsraSkgbHQudHJhbnNbMjQgKyAxNDQgKyBpXSA9IDI4MCArIGk7CiAgZm9yIChpID0gMDsgaSA8IDExMjsgKytpKSBsdC50cmFuc1syNCArIDE0NCArIDggKyBpXSA9IDE0NCArIGk7CgogIC8qIGJ1aWxkIGZpeGVkIGRpc3RhbmNlIHRyZWUgKi8KICBmb3IgKGkgPSAwOyBpIDwgNTsgKytpKSBkdC50YWJsZVtpXSA9IDA7CgogIGR0LnRhYmxlWzVdID0gMzI7CgogIGZvciAoaSA9IDA7IGkgPCAzMjsgKytpKSBkdC50cmFuc1tpXSA9IGk7Cn0KCi8qIGdpdmVuIGFuIGFycmF5IG9mIGNvZGUgbGVuZ3RocywgYnVpbGQgYSB0cmVlICovCnZhciBvZmZzID0gbmV3IFVpbnQxNkFycmF5KDE2KTsKCmZ1bmN0aW9uIHRpbmZfYnVpbGRfdHJlZSh0LCBsZW5ndGhzLCBvZmYsIG51bSkgewogIHZhciBpLCBzdW07CgogIC8qIGNsZWFyIGNvZGUgbGVuZ3RoIGNvdW50IHRhYmxlICovCiAgZm9yIChpID0gMDsgaSA8IDE2OyArK2kpIHQudGFibGVbaV0gPSAwOwoKICAvKiBzY2FuIHN5bWJvbCBsZW5ndGhzLCBhbmQgc3VtIGNvZGUgbGVuZ3RoIGNvdW50cyAqLwogIGZvciAoaSA9IDA7IGkgPCBudW07ICsraSkgdC50YWJsZVtsZW5ndGhzW29mZiArIGldXSsrOwoKICB0LnRhYmxlWzBdID0gMDsKCiAgLyogY29tcHV0ZSBvZmZzZXQgdGFibGUgZm9yIGRpc3RyaWJ1dGlvbiBzb3J0ICovCiAgZm9yIChzdW0gPSAwLCBpID0gMDsgaSA8IDE2OyArK2kpIHsKICAgIG9mZnNbaV0gPSBzdW07CiAgICBzdW0gKz0gdC50YWJsZVtpXTsKICB9CgogIC8qIGNyZWF0ZSBjb2RlLT5zeW1ib2wgdHJhbnNsYXRpb24gdGFibGUgKHN5bWJvbHMgc29ydGVkIGJ5IGNvZGUpICovCiAgZm9yIChpID0gMDsgaSA8IG51bTsgKytpKSB7CiAgICBpZiAobGVuZ3Roc1tvZmYgKyBpXSkgdC50cmFuc1tvZmZzW2xlbmd0aHNbb2ZmICsgaV1dKytdID0gaTsKICB9Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgogKiAtLSBkZWNvZGUgZnVuY3Rpb25zIC0tICoKICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLyogZ2V0IG9uZSBiaXQgZnJvbSBzb3VyY2Ugc3RyZWFtICovCmZ1bmN0aW9uIHRpbmZfZ2V0Yml0KGQpIHsKICAvKiBjaGVjayBpZiB0YWcgaXMgZW1wdHkgKi8KICBpZiAoIWQuYml0Y291bnQtLSkgewogICAgLyogbG9hZCBuZXh0IHRhZyAqLwogICAgZC50YWcgPSBkLnNvdXJjZVtkLnNvdXJjZUluZGV4KytdOwogICAgZC5iaXRjb3VudCA9IDc7CiAgfQoKICAvKiBzaGlmdCBiaXQgb3V0IG9mIHRhZyAqLwogIHZhciBiaXQgPSBkLnRhZyAmIDE7CiAgZC50YWcgPj4+PSAxOwoKICByZXR1cm4gYml0Owp9CgovKiByZWFkIGEgbnVtIGJpdCB2YWx1ZSBmcm9tIGEgc3RyZWFtIGFuZCBhZGQgYmFzZSAqLwpmdW5jdGlvbiB0aW5mX3JlYWRfYml0cyhkLCBudW0sIGJhc2UpIHsKICBpZiAoIW51bSkKICAgIHJldHVybiBiYXNlOwoKICB3aGlsZSAoZC5iaXRjb3VudCA8IDI0KSB7CiAgICBkLnRhZyB8PSBkLnNvdXJjZVtkLnNvdXJjZUluZGV4KytdIDw8IGQuYml0Y291bnQ7CiAgICBkLmJpdGNvdW50ICs9IDg7CiAgfQoKICB2YXIgdmFsID0gZC50YWcgJiAoMHhmZmZmID4+PiAoMTYgLSBudW0pKTsKICBkLnRhZyA+Pj49IG51bTsKICBkLmJpdGNvdW50IC09IG51bTsKICByZXR1cm4gdmFsICsgYmFzZTsKfQoKLyogZ2l2ZW4gYSBkYXRhIHN0cmVhbSBhbmQgYSB0cmVlLCBkZWNvZGUgYSBzeW1ib2wgKi8KZnVuY3Rpb24gdGluZl9kZWNvZGVfc3ltYm9sKGQsIHQpIHsKICB3aGlsZSAoZC5iaXRjb3VudCA8IDI0KSB7CiAgICBkLnRhZyB8PSBkLnNvdXJjZVtkLnNvdXJjZUluZGV4KytdIDw8IGQuYml0Y291bnQ7CiAgICBkLmJpdGNvdW50ICs9IDg7CiAgfQogIAogIHZhciBzdW0gPSAwLCBjdXIgPSAwLCBsZW4gPSAwOwogIHZhciB0YWcgPSBkLnRhZzsKCiAgLyogZ2V0IG1vcmUgYml0cyB3aGlsZSBjb2RlIHZhbHVlIGlzIGFib3ZlIHN1bSAqLwogIGRvIHsKICAgIGN1ciA9IDIgKiBjdXIgKyAodGFnICYgMSk7CiAgICB0YWcgPj4+PSAxOwogICAgKytsZW47CgogICAgc3VtICs9IHQudGFibGVbbGVuXTsKICAgIGN1ciAtPSB0LnRhYmxlW2xlbl07CiAgfSB3aGlsZSAoY3VyID49IDApOwogIAogIGQudGFnID0gdGFnOwogIGQuYml0Y291bnQgLT0gbGVuOwoKICByZXR1cm4gdC50cmFuc1tzdW0gKyBjdXJdOwp9CgovKiBnaXZlbiBhIGRhdGEgc3RyZWFtLCBkZWNvZGUgZHluYW1pYyB0cmVlcyBmcm9tIGl0ICovCmZ1bmN0aW9uIHRpbmZfZGVjb2RlX3RyZWVzKGQsIGx0LCBkdCkgewogIHZhciBobGl0LCBoZGlzdCwgaGNsZW47CiAgdmFyIGksIG51bSwgbGVuZ3RoOwoKICAvKiBnZXQgNSBiaXRzIEhMSVQgKDI1Ny0yODYpICovCiAgaGxpdCA9IHRpbmZfcmVhZF9iaXRzKGQsIDUsIDI1Nyk7CgogIC8qIGdldCA1IGJpdHMgSERJU1QgKDEtMzIpICovCiAgaGRpc3QgPSB0aW5mX3JlYWRfYml0cyhkLCA1LCAxKTsKCiAgLyogZ2V0IDQgYml0cyBIQ0xFTiAoNC0xOSkgKi8KICBoY2xlbiA9IHRpbmZfcmVhZF9iaXRzKGQsIDQsIDQpOwoKICBmb3IgKGkgPSAwOyBpIDwgMTk7ICsraSkgbGVuZ3Roc1tpXSA9IDA7CgogIC8qIHJlYWQgY29kZSBsZW5ndGhzIGZvciBjb2RlIGxlbmd0aCBhbHBoYWJldCAqLwogIGZvciAoaSA9IDA7IGkgPCBoY2xlbjsgKytpKSB7CiAgICAvKiBnZXQgMyBiaXRzIGNvZGUgbGVuZ3RoICgwLTcpICovCiAgICB2YXIgY2xlbiA9IHRpbmZfcmVhZF9iaXRzKGQsIDMsIDApOwogICAgbGVuZ3Roc1tjbGNpZHhbaV1dID0gY2xlbjsKICB9CgogIC8qIGJ1aWxkIGNvZGUgbGVuZ3RoIHRyZWUgKi8KICB0aW5mX2J1aWxkX3RyZWUoY29kZV90cmVlLCBsZW5ndGhzLCAwLCAxOSk7CgogIC8qIGRlY29kZSBjb2RlIGxlbmd0aHMgZm9yIHRoZSBkeW5hbWljIHRyZWVzICovCiAgZm9yIChudW0gPSAwOyBudW0gPCBobGl0ICsgaGRpc3Q7KSB7CiAgICB2YXIgc3ltID0gdGluZl9kZWNvZGVfc3ltYm9sKGQsIGNvZGVfdHJlZSk7CgogICAgc3dpdGNoIChzeW0pIHsKICAgICAgY2FzZSAxNjoKICAgICAgICAvKiBjb3B5IHByZXZpb3VzIGNvZGUgbGVuZ3RoIDMtNiB0aW1lcyAocmVhZCAyIGJpdHMpICovCiAgICAgICAgdmFyIHByZXYgPSBsZW5ndGhzW251bSAtIDFdOwogICAgICAgIGZvciAobGVuZ3RoID0gdGluZl9yZWFkX2JpdHMoZCwgMiwgMyk7IGxlbmd0aDsgLS1sZW5ndGgpIHsKICAgICAgICAgIGxlbmd0aHNbbnVtKytdID0gcHJldjsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMTc6CiAgICAgICAgLyogcmVwZWF0IGNvZGUgbGVuZ3RoIDAgZm9yIDMtMTAgdGltZXMgKHJlYWQgMyBiaXRzKSAqLwogICAgICAgIGZvciAobGVuZ3RoID0gdGluZl9yZWFkX2JpdHMoZCwgMywgMyk7IGxlbmd0aDsgLS1sZW5ndGgpIHsKICAgICAgICAgIGxlbmd0aHNbbnVtKytdID0gMDsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMTg6CiAgICAgICAgLyogcmVwZWF0IGNvZGUgbGVuZ3RoIDAgZm9yIDExLTEzOCB0aW1lcyAocmVhZCA3IGJpdHMpICovCiAgICAgICAgZm9yIChsZW5ndGggPSB0aW5mX3JlYWRfYml0cyhkLCA3LCAxMSk7IGxlbmd0aDsgLS1sZW5ndGgpIHsKICAgICAgICAgIGxlbmd0aHNbbnVtKytdID0gMDsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgLyogdmFsdWVzIDAtMTUgcmVwcmVzZW50IHRoZSBhY3R1YWwgY29kZSBsZW5ndGhzICovCiAgICAgICAgbGVuZ3Roc1tudW0rK10gPSBzeW07CiAgICAgICAgYnJlYWs7CiAgICB9CiAgfQoKICAvKiBidWlsZCBkeW5hbWljIHRyZWVzICovCiAgdGluZl9idWlsZF90cmVlKGx0LCBsZW5ndGhzLCAwLCBobGl0KTsKICB0aW5mX2J1aWxkX3RyZWUoZHQsIGxlbmd0aHMsIGhsaXQsIGhkaXN0KTsKfQoKLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKgogKiAtLSBibG9jayBpbmZsYXRlIGZ1bmN0aW9ucyAtLSAqCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgovKiBnaXZlbiBhIHN0cmVhbSBhbmQgdHdvIHRyZWVzLCBpbmZsYXRlIGEgYmxvY2sgb2YgZGF0YSAqLwpmdW5jdGlvbiB0aW5mX2luZmxhdGVfYmxvY2tfZGF0YShkLCBsdCwgZHQpIHsKICB3aGlsZSAoMSkgewogICAgdmFyIHN5bSA9IHRpbmZfZGVjb2RlX3N5bWJvbChkLCBsdCk7CgogICAgLyogY2hlY2sgZm9yIGVuZCBvZiBibG9jayAqLwogICAgaWYgKHN5bSA9PT0gMjU2KSB7CiAgICAgIHJldHVybiBUSU5GX09LOwogICAgfQoKICAgIGlmIChzeW0gPCAyNTYpIHsKICAgICAgZC5kZXN0W2QuZGVzdExlbisrXSA9IHN5bTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBsZW5ndGgsIGRpc3QsIG9mZnM7CiAgICAgIHZhciBpOwoKICAgICAgc3ltIC09IDI1NzsKCiAgICAgIC8qIHBvc3NpYmx5IGdldCBtb3JlIGJpdHMgZnJvbSBsZW5ndGggY29kZSAqLwogICAgICBsZW5ndGggPSB0aW5mX3JlYWRfYml0cyhkLCBsZW5ndGhfYml0c1tzeW1dLCBsZW5ndGhfYmFzZVtzeW1dKTsKCiAgICAgIGRpc3QgPSB0aW5mX2RlY29kZV9zeW1ib2woZCwgZHQpOwoKICAgICAgLyogcG9zc2libHkgZ2V0IG1vcmUgYml0cyBmcm9tIGRpc3RhbmNlIGNvZGUgKi8KICAgICAgb2ZmcyA9IGQuZGVzdExlbiAtIHRpbmZfcmVhZF9iaXRzKGQsIGRpc3RfYml0c1tkaXN0XSwgZGlzdF9iYXNlW2Rpc3RdKTsKCiAgICAgIC8qIGNvcHkgbWF0Y2ggKi8KICAgICAgZm9yIChpID0gb2ZmczsgaSA8IG9mZnMgKyBsZW5ndGg7ICsraSkgewogICAgICAgIGQuZGVzdFtkLmRlc3RMZW4rK10gPSBkLmRlc3RbaV07CiAgICAgIH0KICAgIH0KICB9Cn0KCi8qIGluZmxhdGUgYW4gdW5jb21wcmVzc2VkIGJsb2NrIG9mIGRhdGEgKi8KZnVuY3Rpb24gdGluZl9pbmZsYXRlX3VuY29tcHJlc3NlZF9ibG9jayhkKSB7CiAgdmFyIGxlbmd0aCwgaW52bGVuZ3RoOwogIHZhciBpOwogIAogIC8qIHVucmVhZCBmcm9tIGJpdGJ1ZmZlciAqLwogIHdoaWxlIChkLmJpdGNvdW50ID4gOCkgewogICAgZC5zb3VyY2VJbmRleC0tOwogICAgZC5iaXRjb3VudCAtPSA4OwogIH0KCiAgLyogZ2V0IGxlbmd0aCAqLwogIGxlbmd0aCA9IGQuc291cmNlW2Quc291cmNlSW5kZXggKyAxXTsKICBsZW5ndGggPSAyNTYgKiBsZW5ndGggKyBkLnNvdXJjZVtkLnNvdXJjZUluZGV4XTsKCiAgLyogZ2V0IG9uZSdzIGNvbXBsZW1lbnQgb2YgbGVuZ3RoICovCiAgaW52bGVuZ3RoID0gZC5zb3VyY2VbZC5zb3VyY2VJbmRleCArIDNdOwogIGludmxlbmd0aCA9IDI1NiAqIGludmxlbmd0aCArIGQuc291cmNlW2Quc291cmNlSW5kZXggKyAyXTsKCiAgLyogY2hlY2sgbGVuZ3RoICovCiAgaWYgKGxlbmd0aCAhPT0gKH5pbnZsZW5ndGggJiAweDAwMDBmZmZmKSkKICAgIHJldHVybiBUSU5GX0RBVEFfRVJST1I7CgogIGQuc291cmNlSW5kZXggKz0gNDsKCiAgLyogY29weSBibG9jayAqLwogIGZvciAoaSA9IGxlbmd0aDsgaTsgLS1pKQogICAgZC5kZXN0W2QuZGVzdExlbisrXSA9IGQuc291cmNlW2Quc291cmNlSW5kZXgrK107CgogIC8qIG1ha2Ugc3VyZSB3ZSBzdGFydCBuZXh0IGJsb2NrIG9uIGEgYnl0ZSBib3VuZGFyeSAqLwogIGQuYml0Y291bnQgPSAwOwoKICByZXR1cm4gVElORl9PSzsKfQoKLyogaW5mbGF0ZSBzdHJlYW0gZnJvbSBzb3VyY2UgdG8gZGVzdCAqLwpmdW5jdGlvbiB0aW5mX3VuY29tcHJlc3Moc291cmNlLCBkZXN0KSB7CiAgdmFyIGQgPSBuZXcgRGF0YShzb3VyY2UsIGRlc3QpOwogIHZhciBiZmluYWwsIGJ0eXBlLCByZXM7CgogIGRvIHsKICAgIC8qIHJlYWQgZmluYWwgYmxvY2sgZmxhZyAqLwogICAgYmZpbmFsID0gdGluZl9nZXRiaXQoZCk7CgogICAgLyogcmVhZCBibG9jayB0eXBlICgyIGJpdHMpICovCiAgICBidHlwZSA9IHRpbmZfcmVhZF9iaXRzKGQsIDIsIDApOwoKICAgIC8qIGRlY29tcHJlc3MgYmxvY2sgKi8KICAgIHN3aXRjaCAoYnR5cGUpIHsKICAgICAgY2FzZSAwOgogICAgICAgIC8qIGRlY29tcHJlc3MgdW5jb21wcmVzc2VkIGJsb2NrICovCiAgICAgICAgcmVzID0gdGluZl9pbmZsYXRlX3VuY29tcHJlc3NlZF9ibG9jayhkKTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSAxOgogICAgICAgIC8qIGRlY29tcHJlc3MgYmxvY2sgd2l0aCBmaXhlZCBodWZmbWFuIHRyZWVzICovCiAgICAgICAgcmVzID0gdGluZl9pbmZsYXRlX2Jsb2NrX2RhdGEoZCwgc2x0cmVlLCBzZHRyZWUpOwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIDI6CiAgICAgICAgLyogZGVjb21wcmVzcyBibG9jayB3aXRoIGR5bmFtaWMgaHVmZm1hbiB0cmVlcyAqLwogICAgICAgIHRpbmZfZGVjb2RlX3RyZWVzKGQsIGQubHRyZWUsIGQuZHRyZWUpOwogICAgICAgIHJlcyA9IHRpbmZfaW5mbGF0ZV9ibG9ja19kYXRhKGQsIGQubHRyZWUsIGQuZHRyZWUpOwogICAgICAgIGJyZWFrOwogICAgICBkZWZhdWx0OgogICAgICAgIHJlcyA9IFRJTkZfREFUQV9FUlJPUjsKICAgIH0KCiAgICBpZiAocmVzICE9PSBUSU5GX09LKQogICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGEgZXJyb3InKTsKCiAgfSB3aGlsZSAoIWJmaW5hbCk7CgogIGlmIChkLmRlc3RMZW4gPCBkLmRlc3QubGVuZ3RoKSB7CiAgICBpZiAodHlwZW9mIGQuZGVzdC5zbGljZSA9PT0gJ2Z1bmN0aW9uJykKICAgICAgcmV0dXJuIGQuZGVzdC5zbGljZSgwLCBkLmRlc3RMZW4pOwogICAgZWxzZQogICAgICByZXR1cm4gZC5kZXN0LnN1YmFycmF5KDAsIGQuZGVzdExlbik7CiAgfQogIAogIHJldHVybiBkLmRlc3Q7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tICoKICogLS0gaW5pdGlhbGl6YXRpb24gLS0gKgogKiAtLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLyogYnVpbGQgZml4ZWQgaHVmZm1hbiB0cmVlcyAqLwp0aW5mX2J1aWxkX2ZpeGVkX3RyZWVzKHNsdHJlZSwgc2R0cmVlKTsKCi8qIGJ1aWxkIGV4dHJhIGJpdHMgYW5kIGJhc2UgdGFibGVzICovCnRpbmZfYnVpbGRfYml0c19iYXNlKGxlbmd0aF9iaXRzLCBsZW5ndGhfYmFzZSwgNCwgMyk7CnRpbmZfYnVpbGRfYml0c19iYXNlKGRpc3RfYml0cywgZGlzdF9iYXNlLCAyLCAxKTsKCi8qIGZpeCBhIHNwZWNpYWwgY2FzZSAqLwpsZW5ndGhfYml0c1syOF0gPSAwOwpsZW5ndGhfYmFzZVsyOF0gPSAyNTg7Cgptb2R1bGUuZXhwb3J0cyA9IHRpbmZfdW5jb21wcmVzczsKCgovKioqLyB9KSwKLyogODAgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCnZhciBpc1N0cmluZyA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNTdHJpbmc7CnZhciBpc0FycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5pc0FycmF5Owp2YXIgaXNVbmRlZmluZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzVW5kZWZpbmVkOwp2YXIgaXNOdWxsID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5pc051bGw7CgovKioKICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBTdHlsZUNvbnRleHRTdGFjayB1c2VkIGZvciBzdHlsZSBpbmhlcml0YW5jZSBhbmQgc3R5bGUgb3ZlcnJpZGVzCiAqCiAqIEBjb25zdHJ1Y3RvcgogKiBAdGhpcyB7U3R5bGVDb250ZXh0U3RhY2t9CiAqIEBwYXJhbSB7T2JqZWN0fSBuYW1lZCBzdHlsZXMgZGljdGlvbmFyeQogKiBAcGFyYW0ge09iamVjdH0gb3B0aW9uYWwgZGVmYXVsdCBzdHlsZSBkZWZpbml0aW9uCiAqLwpmdW5jdGlvbiBTdHlsZUNvbnRleHRTdGFjayhzdHlsZURpY3Rpb25hcnksIGRlZmF1bHRTdHlsZSkgewoJdGhpcy5kZWZhdWx0U3R5bGUgPSBkZWZhdWx0U3R5bGUgfHwge307Cgl0aGlzLnN0eWxlRGljdGlvbmFyeSA9IHN0eWxlRGljdGlvbmFyeTsKCXRoaXMuc3R5bGVPdmVycmlkZXMgPSBbXTsKfQoKLyoqCiAqIENyZWF0ZXMgY2xvbmVkIHZlcnNpb24gb2YgY3VycmVudCBzdGFjawogKiBAcmV0dXJuIHtTdHlsZUNvbnRleHRTdGFja30gY3VycmVudCBzdGFjayBzbmFwc2hvdAogKi8KU3R5bGVDb250ZXh0U3RhY2sucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkgewoJdmFyIHN0YWNrID0gbmV3IFN0eWxlQ29udGV4dFN0YWNrKHRoaXMuc3R5bGVEaWN0aW9uYXJ5LCB0aGlzLmRlZmF1bHRTdHlsZSk7CgoJdGhpcy5zdHlsZU92ZXJyaWRlcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CgkJc3RhY2suc3R5bGVPdmVycmlkZXMucHVzaChpdGVtKTsKCX0pOwoKCXJldHVybiBzdGFjazsKfTsKCi8qKgogKiBQdXNoZXMgc3R5bGUtbmFtZSBvciBzdHlsZS1vdmVycmlkZXMtb2JqZWN0IG9udG8gdGhlIHN0YWNrIGZvciBmdXR1cmUgZXZhbHVhdGlvbgogKgogKiBAcGFyYW0ge1N0cmluZ3xPYmplY3R9IHN0eWxlTmFtZU9yT3ZlcnJpZGUgc3R5bGUtbmFtZSAocmVmZXJyaW5nIHRvIHN0eWxlRGljdGlvbmFyeSkgb3IKICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEgbmV3IGRpY3Rpb25hcnkgZGVmaW5pbmcgb3ZlcnJpZGluZyBwcm9wZXJ0aWVzCiAqLwpTdHlsZUNvbnRleHRTdGFjay5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIChzdHlsZU5hbWVPck92ZXJyaWRlKSB7Cgl0aGlzLnN0eWxlT3ZlcnJpZGVzLnB1c2goc3R5bGVOYW1lT3JPdmVycmlkZSk7Cn07CgovKioKICogUmVtb3ZlcyBsYXN0IHN0eWxlLW5hbWUgb3Igc3R5bGUtb3ZlcnJpZGVzLW9iamVjdCBmcm9tIHRoZSBzdGFjawogKgogKiBAcGFyYW0ge051bWJlcn0gaG93TWFueSAtIG9wdGlvbmFsIG51bWJlciBvZiBlbGVtZW50cyB0byBiZSBwb3BwZWQgKGlmIG5vdCBzcGVjaWZpZWQsCiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lIGVsZW1lbnQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIHN0YWNrKQogKi8KU3R5bGVDb250ZXh0U3RhY2sucHJvdG90eXBlLnBvcCA9IGZ1bmN0aW9uIChob3dNYW55KSB7Cglob3dNYW55ID0gaG93TWFueSB8fCAxOwoKCXdoaWxlIChob3dNYW55LS0gPiAwKSB7CgkJdGhpcy5zdHlsZU92ZXJyaWRlcy5wb3AoKTsKCX0KfTsKCi8qKgogKiBDcmVhdGVzIGEgc2V0IG9mIG5hbWVkIHN0eWxlcyBvci9hbmQgYSBzdHlsZS1vdmVycmlkZXMtb2JqZWN0IGJhc2VkIG9uIHRoZSBpdGVtLAogKiBwdXNoZXMgdGhvc2UgZWxlbWVudHMgb250byB0aGUgc3RhY2sgZm9yIGZ1dHVyZSBldmFsdWF0aW9uIGFuZCByZXR1cm5zIHRoZSBudW1iZXIKICogb2YgZWxlbWVudHMgcHVzaGVkLCBzbyB0aGV5IGNhbiBiZSBlYXNpbHkgcG9wZWQgdGhlbi4KICoKICogQHBhcmFtIHtPYmplY3R9IGl0ZW0gLSBhbiBvYmplY3Qgd2l0aCBvcHRpb25hbCBzdHlsZSBwcm9wZXJ0eSBhbmQvb3Igc3R5bGUgb3ZlcnJpZGVzCiAqIEByZXR1cm4gdGhlIG51bWJlciBvZiBpdGVtcyBwdXNoZWQgb250byB0aGUgc3RhY2sKICovClN0eWxlQ29udGV4dFN0YWNrLnByb3RvdHlwZS5hdXRvcHVzaCA9IGZ1bmN0aW9uIChpdGVtKSB7CglpZiAoaXNTdHJpbmcoaXRlbSkpIHsKCQlyZXR1cm4gMDsKCX0KCgl2YXIgc3R5bGVOYW1lcyA9IFtdOwoKCWlmIChpdGVtLnN0eWxlKSB7CgkJaWYgKGlzQXJyYXkoaXRlbS5zdHlsZSkpIHsKCQkJc3R5bGVOYW1lcyA9IGl0ZW0uc3R5bGU7CgkJfSBlbHNlIHsKCQkJc3R5bGVOYW1lcyA9IFtpdGVtLnN0eWxlXTsKCQl9Cgl9CgoJZm9yICh2YXIgaSA9IDAsIGwgPSBzdHlsZU5hbWVzLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCXRoaXMucHVzaChzdHlsZU5hbWVzW2ldKTsKCX0KCgl2YXIgc3R5bGVQcm9wZXJ0aWVzID0gWwoJCSdmb250JywKCQknZm9udFNpemUnLAoJCSdmb250RmVhdHVyZXMnLAoJCSdib2xkJywKCQknaXRhbGljcycsCgkJJ2FsaWdubWVudCcsCgkJJ2NvbG9yJywKCQknY29sdW1uR2FwJywKCQknZmlsbENvbG9yJywKCQknZGVjb3JhdGlvbicsCgkJJ2RlY29yYXRpb25TdHlsZScsCgkJJ2RlY29yYXRpb25Db2xvcicsCgkJJ2JhY2tncm91bmQnLAoJCSdsaW5lSGVpZ2h0JywKCQknY2hhcmFjdGVyU3BhY2luZycsCgkJJ25vV3JhcCcsCgkJJ21hcmtlckNvbG9yJywKCQknbGVhZGluZ0luZGVudCcKCQkJLy8ndGFibGVDZWxsUGFkZGluZycKCQkJLy8gJ2NlbGxCb3JkZXInLAoJCQkvLyAnaGVhZGVyQ2VsbEJvcmRlcicsCgkJCS8vICdvZGRSb3dDZWxsQm9yZGVyJywKCQkJLy8gJ2V2ZW5Sb3dDZWxsQm9yZGVyJywKCQkJLy8gJ3RhYmxlQm9yZGVyJwoJXTsKCXZhciBzdHlsZU92ZXJyaWRlT2JqZWN0ID0ge307Cgl2YXIgcHVzaFN0eWxlT3ZlcnJpZGVPYmplY3QgPSBmYWxzZTsKCglzdHlsZVByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CgkJaWYgKCFpc1VuZGVmaW5lZChpdGVtW2tleV0pICYmICFpc051bGwoaXRlbVtrZXldKSkgewoJCQlzdHlsZU92ZXJyaWRlT2JqZWN0W2tleV0gPSBpdGVtW2tleV07CgkJCXB1c2hTdHlsZU92ZXJyaWRlT2JqZWN0ID0gdHJ1ZTsKCQl9Cgl9KTsKCglpZiAocHVzaFN0eWxlT3ZlcnJpZGVPYmplY3QpIHsKCQl0aGlzLnB1c2goc3R5bGVPdmVycmlkZU9iamVjdCk7Cgl9CgoJcmV0dXJuIHN0eWxlTmFtZXMubGVuZ3RoICsgKHB1c2hTdHlsZU92ZXJyaWRlT2JqZWN0ID8gMSA6IDApOwp9OwoKLyoqCiAqIEF1dG9tYXRpY2FsbHkgcHVzaGVzIGVsZW1lbnRzIG9udG8gdGhlIHN0YWNrLCB1c2luZyBhdXRvcHVzaCBiYXNlZCBvbiBpdGVtLAogKiBleGVjdXRlcyBjYWxsYmFjayBhbmQgdGhlbiBwb3BzIGVsZW1lbnRzIGJhY2suIFJldHVybnMgdmFsdWUgcmV0dXJuZWQgYnkgY2FsbGJhY2sKICoKICogQHBhcmFtICB7T2JqZWN0fSAgIGl0ZW0gLSBhbiBvYmplY3Qgd2l0aCBvcHRpb25hbCBzdHlsZSBwcm9wZXJ0eSBhbmQvb3Igc3R5bGUgb3ZlcnJpZGVzCiAqIEBwYXJhbSAge0Z1bmN0aW9ufSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYmV0d2VlbiBhdXRvcHVzaCBhbmQgcG9wCiAqIEByZXR1cm4ge09iamVjdH0gdmFsdWUgcmV0dXJuZWQgYnkgY2FsbGJhY2sKICovClN0eWxlQ29udGV4dFN0YWNrLnByb3RvdHlwZS5hdXRvID0gZnVuY3Rpb24gKGl0ZW0sIGNhbGxiYWNrKSB7Cgl2YXIgcHVzaGVkSXRlbXMgPSB0aGlzLmF1dG9wdXNoKGl0ZW0pOwoJdmFyIHJlc3VsdCA9IGNhbGxiYWNrKCk7CgoJaWYgKHB1c2hlZEl0ZW1zID4gMCkgewoJCXRoaXMucG9wKHB1c2hlZEl0ZW1zKTsKCX0KCglyZXR1cm4gcmVzdWx0Owp9OwoKLyoqCiAqIEV2YWx1YXRlcyBzdGFjayBhbmQgcmV0dXJucyB2YWx1ZSBvZiBhIG5hbWVkIHByb3BlcnR5CiAqCiAqIEBwYXJhbSB7U3RyaW5nfSBwcm9wZXJ0eSAtIHByb3BlcnR5IG5hbWUKICogQHJldHVybiBwcm9wZXJ0eSB2YWx1ZSBvciBudWxsIGlmIG5vdCBmb3VuZAogKi8KU3R5bGVDb250ZXh0U3RhY2sucHJvdG90eXBlLmdldFByb3BlcnR5ID0gZnVuY3Rpb24gKHByb3BlcnR5KSB7CglpZiAodGhpcy5zdHlsZU92ZXJyaWRlcykgewoJCWZvciAodmFyIGkgPSB0aGlzLnN0eWxlT3ZlcnJpZGVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CgkJCXZhciBpdGVtID0gdGhpcy5zdHlsZU92ZXJyaWRlc1tpXTsKCgkJCWlmIChpc1N0cmluZyhpdGVtKSkgewoJCQkJLy8gbmFtZWQtc3R5bGUtb3ZlcnJpZGUKCQkJCXZhciBzdHlsZSA9IHRoaXMuc3R5bGVEaWN0aW9uYXJ5W2l0ZW1dOwoJCQkJaWYgKHN0eWxlICYmICFpc1VuZGVmaW5lZChzdHlsZVtwcm9wZXJ0eV0pICYmICFpc051bGwoc3R5bGVbcHJvcGVydHldKSkgewoJCQkJCXJldHVybiBzdHlsZVtwcm9wZXJ0eV07CgkJCQl9CgkJCX0gZWxzZSBpZiAoIWlzVW5kZWZpbmVkKGl0ZW1bcHJvcGVydHldKSAmJiAhaXNOdWxsKGl0ZW1bcHJvcGVydHldKSkgewoJCQkJLy8gc3R5bGUtb3ZlcnJpZGVzLW9iamVjdAoJCQkJcmV0dXJuIGl0ZW1bcHJvcGVydHldOwoJCQl9CgkJfQoJfQoKCXJldHVybiB0aGlzLmRlZmF1bHRTdHlsZSAmJiB0aGlzLmRlZmF1bHRTdHlsZVtwcm9wZXJ0eV07Cn07Cgptb2R1bGUuZXhwb3J0cyA9IFN0eWxlQ29udGV4dFN0YWNrOwoKCi8qKiovIH0pLAovKiA4MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKdmFyIFRyYXZlcnNhbFRyYWNrZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDc3KTsKdmFyIGlzU3RyaW5nID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5pc1N0cmluZzsKCi8qKgogKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIERvY3VtZW50Q29udGV4dCAtIGEgc3RvcmUgZm9yIGN1cnJlbnQgeCwgeSBwb3NpdGlvbnMgYW5kIGF2YWlsYWJsZSB3aWR0aC9oZWlnaHQuCiAqIEl0IGZhY2lsaXRhdGVzIGNvbHVtbiBkaXZpc2lvbnMgYW5kIHZlcnRpY2FsIHN5bmMKICovCmZ1bmN0aW9uIERvY3VtZW50Q29udGV4dChwYWdlU2l6ZSwgcGFnZU1hcmdpbnMpIHsKCXRoaXMucGFnZXMgPSBbXTsKCgl0aGlzLnBhZ2VNYXJnaW5zID0gcGFnZU1hcmdpbnM7CgoJdGhpcy54ID0gcGFnZU1hcmdpbnMubGVmdDsKCXRoaXMuYXZhaWxhYmxlV2lkdGggPSBwYWdlU2l6ZS53aWR0aCAtIHBhZ2VNYXJnaW5zLmxlZnQgLSBwYWdlTWFyZ2lucy5yaWdodDsKCXRoaXMuYXZhaWxhYmxlSGVpZ2h0ID0gMDsKCXRoaXMucGFnZSA9IC0xOwoKCXRoaXMuc25hcHNob3RzID0gW107CgoJdGhpcy5lbmRpbmdDZWxsID0gbnVsbDsKCgl0aGlzLnRyYWNrZXIgPSBuZXcgVHJhdmVyc2FsVHJhY2tlcigpOwoKCXRoaXMuYWRkUGFnZShwYWdlU2l6ZSk7CgoJdGhpcy5oYXNCYWNrZ3JvdW5kID0gZmFsc2U7Cn0KCkRvY3VtZW50Q29udGV4dC5wcm90b3R5cGUuYmVnaW5Db2x1bW5Hcm91cCA9IGZ1bmN0aW9uICgpIHsKCXRoaXMuc25hcHNob3RzLnB1c2goewoJCXg6IHRoaXMueCwKCQl5OiB0aGlzLnksCgkJYXZhaWxhYmxlSGVpZ2h0OiB0aGlzLmF2YWlsYWJsZUhlaWdodCwKCQlhdmFpbGFibGVXaWR0aDogdGhpcy5hdmFpbGFibGVXaWR0aCwKCQlwYWdlOiB0aGlzLnBhZ2UsCgkJYm90dG9tTW9zdDogewoJCQl4OiB0aGlzLngsCgkJCXk6IHRoaXMueSwKCQkJYXZhaWxhYmxlSGVpZ2h0OiB0aGlzLmF2YWlsYWJsZUhlaWdodCwKCQkJYXZhaWxhYmxlV2lkdGg6IHRoaXMuYXZhaWxhYmxlV2lkdGgsCgkJCXBhZ2U6IHRoaXMucGFnZQoJCX0sCgkJZW5kaW5nQ2VsbDogdGhpcy5lbmRpbmdDZWxsLAoJCWxhc3RDb2x1bW5XaWR0aDogdGhpcy5sYXN0Q29sdW1uV2lkdGgKCX0pOwoKCXRoaXMubGFzdENvbHVtbldpZHRoID0gMDsKfTsKCkRvY3VtZW50Q29udGV4dC5wcm90b3R5cGUuYmVnaW5Db2x1bW4gPSBmdW5jdGlvbiAod2lkdGgsIG9mZnNldCwgZW5kaW5nQ2VsbCkgewoJdmFyIHNhdmVkID0gdGhpcy5zbmFwc2hvdHNbdGhpcy5zbmFwc2hvdHMubGVuZ3RoIC0gMV07CgoJdGhpcy5jYWxjdWxhdGVCb3R0b21Nb3N0KHNhdmVkKTsKCgl0aGlzLmVuZGluZ0NlbGwgPSBlbmRpbmdDZWxsOwoJdGhpcy5wYWdlID0gc2F2ZWQucGFnZTsKCXRoaXMueCA9IHRoaXMueCArIHRoaXMubGFzdENvbHVtbldpZHRoICsgKG9mZnNldCB8fCAwKTsKCXRoaXMueSA9IHNhdmVkLnk7Cgl0aGlzLmF2YWlsYWJsZVdpZHRoID0gd2lkdGg7CS8vc2F2ZWQuYXZhaWxhYmxlV2lkdGggLSBvZmZzZXQ7Cgl0aGlzLmF2YWlsYWJsZUhlaWdodCA9IHNhdmVkLmF2YWlsYWJsZUhlaWdodDsKCgl0aGlzLmxhc3RDb2x1bW5XaWR0aCA9IHdpZHRoOwp9OwoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5jYWxjdWxhdGVCb3R0b21Nb3N0ID0gZnVuY3Rpb24gKGRlc3RDb250ZXh0KSB7CglpZiAodGhpcy5lbmRpbmdDZWxsKSB7CgkJdGhpcy5zYXZlQ29udGV4dEluRW5kaW5nQ2VsbCh0aGlzLmVuZGluZ0NlbGwpOwoJCXRoaXMuZW5kaW5nQ2VsbCA9IG51bGw7Cgl9IGVsc2UgewoJCWRlc3RDb250ZXh0LmJvdHRvbU1vc3QgPSBib3R0b21Nb3N0Q29udGV4dCh0aGlzLCBkZXN0Q29udGV4dC5ib3R0b21Nb3N0KTsKCX0KfTsKCkRvY3VtZW50Q29udGV4dC5wcm90b3R5cGUubWFya0VuZGluZyA9IGZ1bmN0aW9uIChlbmRpbmdDZWxsKSB7Cgl0aGlzLnBhZ2UgPSBlbmRpbmdDZWxsLl9jb2x1bW5FbmRpbmdDb250ZXh0LnBhZ2U7Cgl0aGlzLnggPSBlbmRpbmdDZWxsLl9jb2x1bW5FbmRpbmdDb250ZXh0Lng7Cgl0aGlzLnkgPSBlbmRpbmdDZWxsLl9jb2x1bW5FbmRpbmdDb250ZXh0Lnk7Cgl0aGlzLmF2YWlsYWJsZVdpZHRoID0gZW5kaW5nQ2VsbC5fY29sdW1uRW5kaW5nQ29udGV4dC5hdmFpbGFibGVXaWR0aDsKCXRoaXMuYXZhaWxhYmxlSGVpZ2h0ID0gZW5kaW5nQ2VsbC5fY29sdW1uRW5kaW5nQ29udGV4dC5hdmFpbGFibGVIZWlnaHQ7Cgl0aGlzLmxhc3RDb2x1bW5XaWR0aCA9IGVuZGluZ0NlbGwuX2NvbHVtbkVuZGluZ0NvbnRleHQubGFzdENvbHVtbldpZHRoOwp9OwoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5zYXZlQ29udGV4dEluRW5kaW5nQ2VsbCA9IGZ1bmN0aW9uIChlbmRpbmdDZWxsKSB7CgllbmRpbmdDZWxsLl9jb2x1bW5FbmRpbmdDb250ZXh0ID0gewoJCXBhZ2U6IHRoaXMucGFnZSwKCQl4OiB0aGlzLngsCgkJeTogdGhpcy55LAoJCWF2YWlsYWJsZUhlaWdodDogdGhpcy5hdmFpbGFibGVIZWlnaHQsCgkJYXZhaWxhYmxlV2lkdGg6IHRoaXMuYXZhaWxhYmxlV2lkdGgsCgkJbGFzdENvbHVtbldpZHRoOiB0aGlzLmxhc3RDb2x1bW5XaWR0aAoJfTsKfTsKCkRvY3VtZW50Q29udGV4dC5wcm90b3R5cGUuY29tcGxldGVDb2x1bW5Hcm91cCA9IGZ1bmN0aW9uIChoZWlnaHQpIHsKCXZhciBzYXZlZCA9IHRoaXMuc25hcHNob3RzLnBvcCgpOwoKCXRoaXMuY2FsY3VsYXRlQm90dG9tTW9zdChzYXZlZCk7CgoJdGhpcy5lbmRpbmdDZWxsID0gbnVsbDsKCXRoaXMueCA9IHNhdmVkLng7CgoJdmFyIHkgPSBzYXZlZC5ib3R0b21Nb3N0Lnk7CglpZiAoaGVpZ2h0KSB7CgkJaWYgKHNhdmVkLnBhZ2UgPT09IHNhdmVkLmJvdHRvbU1vc3QucGFnZSkgewoJCQlpZiAoKHNhdmVkLnkgKyBoZWlnaHQpID4geSkgewoJCQkJeSA9IHNhdmVkLnkgKyBoZWlnaHQ7CgkJCX0KCQl9IGVsc2UgewoJCQl5ICs9IGhlaWdodDsKCQl9Cgl9CgoJdGhpcy55ID0geTsKCXRoaXMucGFnZSA9IHNhdmVkLmJvdHRvbU1vc3QucGFnZTsKCXRoaXMuYXZhaWxhYmxlV2lkdGggPSBzYXZlZC5hdmFpbGFibGVXaWR0aDsKCXRoaXMuYXZhaWxhYmxlSGVpZ2h0ID0gc2F2ZWQuYm90dG9tTW9zdC5hdmFpbGFibGVIZWlnaHQ7CglpZiAoaGVpZ2h0KSB7CgkJdGhpcy5hdmFpbGFibGVIZWlnaHQgLT0gKHkgLSBzYXZlZC5ib3R0b21Nb3N0LnkpOwoJfQoJdGhpcy5sYXN0Q29sdW1uV2lkdGggPSBzYXZlZC5sYXN0Q29sdW1uV2lkdGg7Cn07CgpEb2N1bWVudENvbnRleHQucHJvdG90eXBlLmFkZE1hcmdpbiA9IGZ1bmN0aW9uIChsZWZ0LCByaWdodCkgewoJdGhpcy54ICs9IGxlZnQ7Cgl0aGlzLmF2YWlsYWJsZVdpZHRoIC09IGxlZnQgKyAocmlnaHQgfHwgMCk7Cn07CgpEb2N1bWVudENvbnRleHQucHJvdG90eXBlLm1vdmVEb3duID0gZnVuY3Rpb24gKG9mZnNldCkgewoJdGhpcy55ICs9IG9mZnNldDsKCXRoaXMuYXZhaWxhYmxlSGVpZ2h0IC09IG9mZnNldDsKCglyZXR1cm4gdGhpcy5hdmFpbGFibGVIZWlnaHQgPiAwOwp9OwoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5pbml0aWFsaXplUGFnZSA9IGZ1bmN0aW9uICgpIHsKCXRoaXMueSA9IHRoaXMucGFnZU1hcmdpbnMudG9wOwoJdGhpcy5hdmFpbGFibGVIZWlnaHQgPSB0aGlzLmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUuaGVpZ2h0IC0gdGhpcy5wYWdlTWFyZ2lucy50b3AgLSB0aGlzLnBhZ2VNYXJnaW5zLmJvdHRvbTsKCXRoaXMucGFnZVNuYXBzaG90KCkuYXZhaWxhYmxlV2lkdGggPSB0aGlzLmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUud2lkdGggLSB0aGlzLnBhZ2VNYXJnaW5zLmxlZnQgLSB0aGlzLnBhZ2VNYXJnaW5zLnJpZ2h0Owp9OwoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5wYWdlU25hcHNob3QgPSBmdW5jdGlvbiAoKSB7CglpZiAodGhpcy5zbmFwc2hvdHNbMF0pIHsKCQlyZXR1cm4gdGhpcy5zbmFwc2hvdHNbMF07Cgl9IGVsc2UgewoJCXJldHVybiB0aGlzOwoJfQp9OwoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5tb3ZlVG8gPSBmdW5jdGlvbiAoeCwgeSkgewoJaWYgKHggIT09IHVuZGVmaW5lZCAmJiB4ICE9PSBudWxsKSB7CgkJdGhpcy54ID0geDsKCQl0aGlzLmF2YWlsYWJsZVdpZHRoID0gdGhpcy5nZXRDdXJyZW50UGFnZSgpLnBhZ2VTaXplLndpZHRoIC0gdGhpcy54IC0gdGhpcy5wYWdlTWFyZ2lucy5yaWdodDsKCX0KCWlmICh5ICE9PSB1bmRlZmluZWQgJiYgeSAhPT0gbnVsbCkgewoJCXRoaXMueSA9IHk7CgkJdGhpcy5hdmFpbGFibGVIZWlnaHQgPSB0aGlzLmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUuaGVpZ2h0IC0gdGhpcy55IC0gdGhpcy5wYWdlTWFyZ2lucy5ib3R0b207Cgl9Cn07CgpEb2N1bWVudENvbnRleHQucHJvdG90eXBlLmJlZ2luRGV0YWNoZWRCbG9jayA9IGZ1bmN0aW9uICgpIHsKCXRoaXMuc25hcHNob3RzLnB1c2goewoJCXg6IHRoaXMueCwKCQl5OiB0aGlzLnksCgkJYXZhaWxhYmxlSGVpZ2h0OiB0aGlzLmF2YWlsYWJsZUhlaWdodCwKCQlhdmFpbGFibGVXaWR0aDogdGhpcy5hdmFpbGFibGVXaWR0aCwKCQlwYWdlOiB0aGlzLnBhZ2UsCgkJZW5kaW5nQ2VsbDogdGhpcy5lbmRpbmdDZWxsLAoJCWxhc3RDb2x1bW5XaWR0aDogdGhpcy5sYXN0Q29sdW1uV2lkdGgKCX0pOwp9OwoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5lbmREZXRhY2hlZEJsb2NrID0gZnVuY3Rpb24gKCkgewoJdmFyIHNhdmVkID0gdGhpcy5zbmFwc2hvdHMucG9wKCk7CgoJdGhpcy54ID0gc2F2ZWQueDsKCXRoaXMueSA9IHNhdmVkLnk7Cgl0aGlzLmF2YWlsYWJsZVdpZHRoID0gc2F2ZWQuYXZhaWxhYmxlV2lkdGg7Cgl0aGlzLmF2YWlsYWJsZUhlaWdodCA9IHNhdmVkLmF2YWlsYWJsZUhlaWdodDsKCXRoaXMucGFnZSA9IHNhdmVkLnBhZ2U7Cgl0aGlzLmVuZGluZ0NlbGwgPSBzYXZlZC5lbmRpbmdDZWxsOwoJdGhpcy5sYXN0Q29sdW1uV2lkdGggPSBzYXZlZC5sYXN0Q29sdW1uV2lkdGg7Cn07CgpmdW5jdGlvbiBwYWdlT3JpZW50YXRpb24ocGFnZU9yaWVudGF0aW9uU3RyaW5nLCBjdXJyZW50UGFnZU9yaWVudGF0aW9uKSB7CglpZiAocGFnZU9yaWVudGF0aW9uU3RyaW5nID09PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4gY3VycmVudFBhZ2VPcmllbnRhdGlvbjsKCX0gZWxzZSBpZiAoaXNTdHJpbmcocGFnZU9yaWVudGF0aW9uU3RyaW5nKSAmJiAocGFnZU9yaWVudGF0aW9uU3RyaW5nLnRvTG93ZXJDYXNlKCkgPT09ICdsYW5kc2NhcGUnKSkgewoJCXJldHVybiAnbGFuZHNjYXBlJzsKCX0gZWxzZSB7CgkJcmV0dXJuICdwb3J0cmFpdCc7Cgl9Cn0KCnZhciBnZXRQYWdlU2l6ZSA9IGZ1bmN0aW9uIChjdXJyZW50UGFnZSwgbmV3UGFnZU9yaWVudGF0aW9uKSB7CgoJbmV3UGFnZU9yaWVudGF0aW9uID0gcGFnZU9yaWVudGF0aW9uKG5ld1BhZ2VPcmllbnRhdGlvbiwgY3VycmVudFBhZ2UucGFnZVNpemUub3JpZW50YXRpb24pOwoKCWlmIChuZXdQYWdlT3JpZW50YXRpb24gIT09IGN1cnJlbnRQYWdlLnBhZ2VTaXplLm9yaWVudGF0aW9uKSB7CgkJcmV0dXJuIHsKCQkJb3JpZW50YXRpb246IG5ld1BhZ2VPcmllbnRhdGlvbiwKCQkJd2lkdGg6IGN1cnJlbnRQYWdlLnBhZ2VTaXplLmhlaWdodCwKCQkJaGVpZ2h0OiBjdXJyZW50UGFnZS5wYWdlU2l6ZS53aWR0aAoJCX07Cgl9IGVsc2UgewoJCXJldHVybiB7CgkJCW9yaWVudGF0aW9uOiBjdXJyZW50UGFnZS5wYWdlU2l6ZS5vcmllbnRhdGlvbiwKCQkJd2lkdGg6IGN1cnJlbnRQYWdlLnBhZ2VTaXplLndpZHRoLAoJCQloZWlnaHQ6IGN1cnJlbnRQYWdlLnBhZ2VTaXplLmhlaWdodAoJCX07Cgl9Cgp9OwoKCkRvY3VtZW50Q29udGV4dC5wcm90b3R5cGUubW92ZVRvTmV4dFBhZ2UgPSBmdW5jdGlvbiAocGFnZU9yaWVudGF0aW9uKSB7Cgl2YXIgbmV4dFBhZ2VJbmRleCA9IHRoaXMucGFnZSArIDE7CgoJdmFyIHByZXZQYWdlID0gdGhpcy5wYWdlOwoJdmFyIHByZXZZID0gdGhpcy55OwoKCXZhciBjcmVhdGVOZXdQYWdlID0gbmV4dFBhZ2VJbmRleCA+PSB0aGlzLnBhZ2VzLmxlbmd0aDsKCWlmIChjcmVhdGVOZXdQYWdlKSB7CgkJdmFyIGN1cnJlbnRBdmFpbGFibGVXaWR0aCA9IHRoaXMuYXZhaWxhYmxlV2lkdGg7CgkJdmFyIGN1cnJlbnRQYWdlT3JpZW50YXRpb24gPSB0aGlzLmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUub3JpZW50YXRpb247CgoJCXZhciBwYWdlU2l6ZSA9IGdldFBhZ2VTaXplKHRoaXMuZ2V0Q3VycmVudFBhZ2UoKSwgcGFnZU9yaWVudGF0aW9uKTsKCQl0aGlzLmFkZFBhZ2UocGFnZVNpemUpOwoKCQlpZiAoY3VycmVudFBhZ2VPcmllbnRhdGlvbiA9PT0gcGFnZVNpemUub3JpZW50YXRpb24pIHsKCQkJdGhpcy5hdmFpbGFibGVXaWR0aCA9IGN1cnJlbnRBdmFpbGFibGVXaWR0aDsKCQl9Cgl9IGVsc2UgewoJCXRoaXMucGFnZSA9IG5leHRQYWdlSW5kZXg7CgkJdGhpcy5pbml0aWFsaXplUGFnZSgpOwoJfQoKCXJldHVybiB7CgkJbmV3UGFnZUNyZWF0ZWQ6IGNyZWF0ZU5ld1BhZ2UsCgkJcHJldlBhZ2U6IHByZXZQYWdlLAoJCXByZXZZOiBwcmV2WSwKCQl5OiB0aGlzLnkKCX07Cn07CgoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5hZGRQYWdlID0gZnVuY3Rpb24gKHBhZ2VTaXplKSB7Cgl2YXIgcGFnZSA9IHtpdGVtczogW10sIHBhZ2VTaXplOiBwYWdlU2l6ZX07Cgl0aGlzLnBhZ2VzLnB1c2gocGFnZSk7Cgl0aGlzLnBhZ2UgPSB0aGlzLnBhZ2VzLmxlbmd0aCAtIDE7Cgl0aGlzLmluaXRpYWxpemVQYWdlKCk7CgoJdGhpcy50cmFja2VyLmVtaXQoJ3BhZ2VBZGRlZCcpOwoKCXJldHVybiBwYWdlOwp9OwoKRG9jdW1lbnRDb250ZXh0LnByb3RvdHlwZS5nZXRDdXJyZW50UGFnZSA9IGZ1bmN0aW9uICgpIHsKCWlmICh0aGlzLnBhZ2UgPCAwIHx8IHRoaXMucGFnZSA+PSB0aGlzLnBhZ2VzLmxlbmd0aCkgewoJCXJldHVybiBudWxsOwoJfQoKCXJldHVybiB0aGlzLnBhZ2VzW3RoaXMucGFnZV07Cn07CgpEb2N1bWVudENvbnRleHQucHJvdG90eXBlLmdldEN1cnJlbnRQb3NpdGlvbiA9IGZ1bmN0aW9uICgpIHsKCXZhciBwYWdlU2l6ZSA9IHRoaXMuZ2V0Q3VycmVudFBhZ2UoKS5wYWdlU2l6ZTsKCXZhciBpbm5lckhlaWdodCA9IHBhZ2VTaXplLmhlaWdodCAtIHRoaXMucGFnZU1hcmdpbnMudG9wIC0gdGhpcy5wYWdlTWFyZ2lucy5ib3R0b207Cgl2YXIgaW5uZXJXaWR0aCA9IHBhZ2VTaXplLndpZHRoIC0gdGhpcy5wYWdlTWFyZ2lucy5sZWZ0IC0gdGhpcy5wYWdlTWFyZ2lucy5yaWdodDsKCglyZXR1cm4gewoJCXBhZ2VOdW1iZXI6IHRoaXMucGFnZSArIDEsCgkJcGFnZU9yaWVudGF0aW9uOiBwYWdlU2l6ZS5vcmllbnRhdGlvbiwKCQlwYWdlSW5uZXJIZWlnaHQ6IGlubmVySGVpZ2h0LAoJCXBhZ2VJbm5lcldpZHRoOiBpbm5lcldpZHRoLAoJCWxlZnQ6IHRoaXMueCwKCQl0b3A6IHRoaXMueSwKCQl2ZXJ0aWNhbFJhdGlvOiAoKHRoaXMueSAtIHRoaXMucGFnZU1hcmdpbnMudG9wKSAvIGlubmVySGVpZ2h0KSwKCQlob3Jpem9udGFsUmF0aW86ICgodGhpcy54IC0gdGhpcy5wYWdlTWFyZ2lucy5sZWZ0KSAvIGlubmVyV2lkdGgpCgl9Owp9OwoKZnVuY3Rpb24gYm90dG9tTW9zdENvbnRleHQoYzEsIGMyKSB7Cgl2YXIgcjsKCglpZiAoYzEucGFnZSA+IGMyLnBhZ2UpIHsKCQlyID0gYzE7Cgl9IGVsc2UgaWYgKGMyLnBhZ2UgPiBjMS5wYWdlKSB7CgkJciA9IGMyOwoJfSBlbHNlIHsKCQlyID0gKGMxLnkgPiBjMi55KSA/IGMxIDogYzI7Cgl9CgoJcmV0dXJuIHsKCQlwYWdlOiByLnBhZ2UsCgkJeDogci54LAoJCXk6IHIueSwKCQlhdmFpbGFibGVIZWlnaHQ6IHIuYXZhaWxhYmxlSGVpZ2h0LAoJCWF2YWlsYWJsZVdpZHRoOiByLmF2YWlsYWJsZVdpZHRoCgl9Owp9Cgptb2R1bGUuZXhwb3J0cyA9IERvY3VtZW50Q29udGV4dDsKCgovKioqLyB9KSwKLyogODIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCi8qKgogKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIExpbmUKICoKICogQGNvbnN0cnVjdG9yCiAqIEB0aGlzIHtMaW5lfQogKiBAcGFyYW0ge051bWJlcn0gTWF4aW11bSB3aWR0aCB0aGlzIGxpbmUgY2FuIGhhdmUKICovCmZ1bmN0aW9uIExpbmUobWF4V2lkdGgpIHsKCXRoaXMubWF4V2lkdGggPSBtYXhXaWR0aDsKCXRoaXMubGVhZGluZ0N1dCA9IDA7Cgl0aGlzLnRyYWlsaW5nQ3V0ID0gMDsKCXRoaXMuaW5saW5lV2lkdGhzID0gMDsKCXRoaXMuaW5saW5lcyA9IFtdOwp9CgpMaW5lLnByb3RvdHlwZS5nZXRBc2NlbmRlckhlaWdodCA9IGZ1bmN0aW9uICgpIHsKCXZhciB5ID0gMDsKCgl0aGlzLmlubGluZXMuZm9yRWFjaChmdW5jdGlvbiAoaW5saW5lKSB7CgkJeSA9IE1hdGgubWF4KHksIGlubGluZS5mb250LmFzY2VuZGVyIC8gMTAwMCAqIGlubGluZS5mb250U2l6ZSk7Cgl9KTsKCXJldHVybiB5Owp9OwoKTGluZS5wcm90b3R5cGUuaGFzRW5vdWdoU3BhY2VGb3JJbmxpbmUgPSBmdW5jdGlvbiAoaW5saW5lKSB7CglpZiAodGhpcy5pbmxpbmVzLmxlbmd0aCA9PT0gMCkgewoJCXJldHVybiB0cnVlOwoJfQoJaWYgKHRoaXMubmV3TGluZUZvcmNlZCkgewoJCXJldHVybiBmYWxzZTsKCX0KCglyZXR1cm4gdGhpcy5pbmxpbmVXaWR0aHMgKyBpbmxpbmUud2lkdGggLSB0aGlzLmxlYWRpbmdDdXQgLSAoaW5saW5lLnRyYWlsaW5nQ3V0IHx8IDApIDw9IHRoaXMubWF4V2lkdGg7Cn07CgpMaW5lLnByb3RvdHlwZS5hZGRJbmxpbmUgPSBmdW5jdGlvbiAoaW5saW5lKSB7CglpZiAodGhpcy5pbmxpbmVzLmxlbmd0aCA9PT0gMCkgewoJCXRoaXMubGVhZGluZ0N1dCA9IGlubGluZS5sZWFkaW5nQ3V0IHx8IDA7Cgl9Cgl0aGlzLnRyYWlsaW5nQ3V0ID0gaW5saW5lLnRyYWlsaW5nQ3V0IHx8IDA7CgoJaW5saW5lLnggPSB0aGlzLmlubGluZVdpZHRocyAtIHRoaXMubGVhZGluZ0N1dDsKCgl0aGlzLmlubGluZXMucHVzaChpbmxpbmUpOwoJdGhpcy5pbmxpbmVXaWR0aHMgKz0gaW5saW5lLndpZHRoOwoKCWlmIChpbmxpbmUubGluZUVuZCkgewoJCXRoaXMubmV3TGluZUZvcmNlZCA9IHRydWU7Cgl9Cn07CgpMaW5lLnByb3RvdHlwZS5nZXRXaWR0aCA9IGZ1bmN0aW9uICgpIHsKCXJldHVybiB0aGlzLmlubGluZVdpZHRocyAtIHRoaXMubGVhZGluZ0N1dCAtIHRoaXMudHJhaWxpbmdDdXQ7Cn07CgovKioKICogUmV0dXJucyBsaW5lIGhlaWdodAogKiBAcmV0dXJuIHtOdW1iZXJ9CiAqLwpMaW5lLnByb3RvdHlwZS5nZXRIZWlnaHQgPSBmdW5jdGlvbiAoKSB7Cgl2YXIgbWF4ID0gMDsKCgl0aGlzLmlubGluZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewoJCW1heCA9IE1hdGgubWF4KG1heCwgaXRlbS5oZWlnaHQgfHwgMCk7Cgl9KTsKCglyZXR1cm4gbWF4Owp9OwoKbW9kdWxlLmV4cG9ydHMgPSBMaW5lOwoKCi8qKiovIH0pLAovKiA4MyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Ci8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihnbG9iYWwsIHByb2Nlc3MpIHsvLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy4KLy8KLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQovLyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdAovLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUKLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci8vCi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgovLwovLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwovLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4KLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgovLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCgoKCi8qPHJlcGxhY2VtZW50PiovCgp2YXIgcHJvY2Vzc05leHRUaWNrID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMikubmV4dFRpY2s7Ci8qPC9yZXBsYWNlbWVudD4qLwoKbW9kdWxlLmV4cG9ydHMgPSBSZWFkYWJsZTsKCi8qPHJlcGxhY2VtZW50PiovCnZhciBpc0FycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3Nik7Ci8qPC9yZXBsYWNlbWVudD4qLwoKLyo8cmVwbGFjZW1lbnQ+Ki8KdmFyIER1cGxleDsKLyo8L3JlcGxhY2VtZW50PiovCgpSZWFkYWJsZS5SZWFkYWJsZVN0YXRlID0gUmVhZGFibGVTdGF0ZTsKCi8qPHJlcGxhY2VtZW50PiovCnZhciBFRSA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpLkV2ZW50RW1pdHRlcjsKCnZhciBFRWxpc3RlbmVyQ291bnQgPSBmdW5jdGlvbiAoZW1pdHRlciwgdHlwZSkgewogIHJldHVybiBlbWl0dGVyLmxpc3RlbmVycyh0eXBlKS5sZW5ndGg7Cn07Ci8qPC9yZXBsYWNlbWVudD4qLwoKLyo8cmVwbGFjZW1lbnQ+Ki8KdmFyIFN0cmVhbSA9IF9fd2VicGFja19yZXF1aXJlX18oODQpOwovKjwvcmVwbGFjZW1lbnQ+Ki8KCi8qPHJlcGxhY2VtZW50PiovCgp2YXIgQnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMykuQnVmZmVyOwp2YXIgT3VyVWludDhBcnJheSA9IGdsb2JhbC5VaW50OEFycmF5IHx8IGZ1bmN0aW9uICgpIHt9OwpmdW5jdGlvbiBfdWludDhBcnJheVRvQnVmZmVyKGNodW5rKSB7CiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNodW5rKTsKfQpmdW5jdGlvbiBfaXNVaW50OEFycmF5KG9iaikgewogIHJldHVybiBCdWZmZXIuaXNCdWZmZXIob2JqKSB8fCBvYmogaW5zdGFuY2VvZiBPdXJVaW50OEFycmF5Owp9CgovKjwvcmVwbGFjZW1lbnQ+Ki8KCi8qPHJlcGxhY2VtZW50PiovCnZhciB1dGlsID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNSk7CnV0aWwuaW5oZXJpdHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKLyo8L3JlcGxhY2VtZW50PiovCgovKjxyZXBsYWNlbWVudD4qLwp2YXIgZGVidWdVdGlsID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMzkpOwp2YXIgZGVidWcgPSB2b2lkIDA7CmlmIChkZWJ1Z1V0aWwgJiYgZGVidWdVdGlsLmRlYnVnbG9nKSB7CiAgZGVidWcgPSBkZWJ1Z1V0aWwuZGVidWdsb2coJ3N0cmVhbScpOwp9IGVsc2UgewogIGRlYnVnID0gZnVuY3Rpb24gKCkge307Cn0KLyo8L3JlcGxhY2VtZW50PiovCgp2YXIgQnVmZmVyTGlzdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTQwKTsKdmFyIGRlc3Ryb3lJbXBsID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4NSk7CnZhciBTdHJpbmdEZWNvZGVyOwoKdXRpbC5pbmhlcml0cyhSZWFkYWJsZSwgU3RyZWFtKTsKCnZhciBrUHJveHlFdmVudHMgPSBbJ2Vycm9yJywgJ2Nsb3NlJywgJ2Rlc3Ryb3knLCAncGF1c2UnLCAncmVzdW1lJ107CgpmdW5jdGlvbiBwcmVwZW5kTGlzdGVuZXIoZW1pdHRlciwgZXZlbnQsIGZuKSB7CiAgLy8gU2FkbHkgdGhpcyBpcyBub3QgY2FjaGVhYmxlIGFzIHNvbWUgbGlicmFyaWVzIGJ1bmRsZSB0aGVpciBvd24KICAvLyBldmVudCBlbWl0dGVyIGltcGxlbWVudGF0aW9uIHdpdGggdGhlbS4KICBpZiAodHlwZW9mIGVtaXR0ZXIucHJlcGVuZExpc3RlbmVyID09PSAnZnVuY3Rpb24nKSByZXR1cm4gZW1pdHRlci5wcmVwZW5kTGlzdGVuZXIoZXZlbnQsIGZuKTsKCiAgLy8gVGhpcyBpcyBhIGhhY2sgdG8gbWFrZSBzdXJlIHRoYXQgb3VyIGVycm9yIGhhbmRsZXIgaXMgYXR0YWNoZWQgYmVmb3JlIGFueQogIC8vIHVzZXJsYW5kIG9uZXMuICBORVZFUiBETyBUSElTLiBUaGlzIGlzIGhlcmUgb25seSBiZWNhdXNlIHRoaXMgY29kZSBuZWVkcwogIC8vIHRvIGNvbnRpbnVlIHRvIHdvcmsgd2l0aCBvbGRlciB2ZXJzaW9ucyBvZiBOb2RlLmpzIHRoYXQgZG8gbm90IGluY2x1ZGUKICAvLyB0aGUgcHJlcGVuZExpc3RlbmVyKCkgbWV0aG9kLiBUaGUgZ29hbCBpcyB0byBldmVudHVhbGx5IHJlbW92ZSB0aGlzIGhhY2suCiAgaWYgKCFlbWl0dGVyLl9ldmVudHMgfHwgIWVtaXR0ZXIuX2V2ZW50c1tldmVudF0pIGVtaXR0ZXIub24oZXZlbnQsIGZuKTtlbHNlIGlmIChpc0FycmF5KGVtaXR0ZXIuX2V2ZW50c1tldmVudF0pKSBlbWl0dGVyLl9ldmVudHNbZXZlbnRdLnVuc2hpZnQoZm4pO2Vsc2UgZW1pdHRlci5fZXZlbnRzW2V2ZW50XSA9IFtmbiwgZW1pdHRlci5fZXZlbnRzW2V2ZW50XV07Cn0KCmZ1bmN0aW9uIFJlYWRhYmxlU3RhdGUob3B0aW9ucywgc3RyZWFtKSB7CiAgRHVwbGV4ID0gRHVwbGV4IHx8IF9fd2VicGFja19yZXF1aXJlX18oMTYpOwoKICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCiAgLy8gRHVwbGV4IHN0cmVhbXMgYXJlIGJvdGggcmVhZGFibGUgYW5kIHdyaXRhYmxlLCBidXQgc2hhcmUKICAvLyB0aGUgc2FtZSBvcHRpb25zIG9iamVjdC4KICAvLyBIb3dldmVyLCBzb21lIGNhc2VzIHJlcXVpcmUgc2V0dGluZyBvcHRpb25zIHRvIGRpZmZlcmVudAogIC8vIHZhbHVlcyBmb3IgdGhlIHJlYWRhYmxlIGFuZCB0aGUgd3JpdGFibGUgc2lkZXMgb2YgdGhlIGR1cGxleCBzdHJlYW0uCiAgLy8gVGhlc2Ugb3B0aW9ucyBjYW4gYmUgcHJvdmlkZWQgc2VwYXJhdGVseSBhcyByZWFkYWJsZVhYWCBhbmQgd3JpdGFibGVYWFguCiAgdmFyIGlzRHVwbGV4ID0gc3RyZWFtIGluc3RhbmNlb2YgRHVwbGV4OwoKICAvLyBvYmplY3Qgc3RyZWFtIGZsYWcuIFVzZWQgdG8gbWFrZSByZWFkKG4pIGlnbm9yZSBuIGFuZCB0bwogIC8vIG1ha2UgYWxsIHRoZSBidWZmZXIgbWVyZ2luZyBhbmQgbGVuZ3RoIGNoZWNrcyBnbyBhd2F5CiAgdGhpcy5vYmplY3RNb2RlID0gISFvcHRpb25zLm9iamVjdE1vZGU7CgogIGlmIChpc0R1cGxleCkgdGhpcy5vYmplY3RNb2RlID0gdGhpcy5vYmplY3RNb2RlIHx8ICEhb3B0aW9ucy5yZWFkYWJsZU9iamVjdE1vZGU7CgogIC8vIHRoZSBwb2ludCBhdCB3aGljaCBpdCBzdG9wcyBjYWxsaW5nIF9yZWFkKCkgdG8gZmlsbCB0aGUgYnVmZmVyCiAgLy8gTm90ZTogMCBpcyBhIHZhbGlkIHZhbHVlLCBtZWFucyAiZG9uJ3QgY2FsbCBfcmVhZCBwcmVlbXB0aXZlbHkgZXZlciIKICB2YXIgaHdtID0gb3B0aW9ucy5oaWdoV2F0ZXJNYXJrOwogIHZhciByZWFkYWJsZUh3bSA9IG9wdGlvbnMucmVhZGFibGVIaWdoV2F0ZXJNYXJrOwogIHZhciBkZWZhdWx0SHdtID0gdGhpcy5vYmplY3RNb2RlID8gMTYgOiAxNiAqIDEwMjQ7CgogIGlmIChod20gfHwgaHdtID09PSAwKSB0aGlzLmhpZ2hXYXRlck1hcmsgPSBod207ZWxzZSBpZiAoaXNEdXBsZXggJiYgKHJlYWRhYmxlSHdtIHx8IHJlYWRhYmxlSHdtID09PSAwKSkgdGhpcy5oaWdoV2F0ZXJNYXJrID0gcmVhZGFibGVId207ZWxzZSB0aGlzLmhpZ2hXYXRlck1hcmsgPSBkZWZhdWx0SHdtOwoKICAvLyBjYXN0IHRvIGludHMuCiAgdGhpcy5oaWdoV2F0ZXJNYXJrID0gTWF0aC5mbG9vcih0aGlzLmhpZ2hXYXRlck1hcmspOwoKICAvLyBBIGxpbmtlZCBsaXN0IGlzIHVzZWQgdG8gc3RvcmUgZGF0YSBjaHVua3MgaW5zdGVhZCBvZiBhbiBhcnJheSBiZWNhdXNlIHRoZQogIC8vIGxpbmtlZCBsaXN0IGNhbiByZW1vdmUgZWxlbWVudHMgZnJvbSB0aGUgYmVnaW5uaW5nIGZhc3RlciB0aGFuCiAgLy8gYXJyYXkuc2hpZnQoKQogIHRoaXMuYnVmZmVyID0gbmV3IEJ1ZmZlckxpc3QoKTsKICB0aGlzLmxlbmd0aCA9IDA7CiAgdGhpcy5waXBlcyA9IG51bGw7CiAgdGhpcy5waXBlc0NvdW50ID0gMDsKICB0aGlzLmZsb3dpbmcgPSBudWxsOwogIHRoaXMuZW5kZWQgPSBmYWxzZTsKICB0aGlzLmVuZEVtaXR0ZWQgPSBmYWxzZTsKICB0aGlzLnJlYWRpbmcgPSBmYWxzZTsKCiAgLy8gYSBmbGFnIHRvIGJlIGFibGUgdG8gdGVsbCBpZiB0aGUgZXZlbnQgJ3JlYWRhYmxlJy8nZGF0YScgaXMgZW1pdHRlZAogIC8vIGltbWVkaWF0ZWx5LCBvciBvbiBhIGxhdGVyIHRpY2suICBXZSBzZXQgdGhpcyB0byB0cnVlIGF0IGZpcnN0LCBiZWNhdXNlCiAgLy8gYW55IGFjdGlvbnMgdGhhdCBzaG91bGRuJ3QgaGFwcGVuIHVudGlsICJsYXRlciIgc2hvdWxkIGdlbmVyYWxseSBhbHNvCiAgLy8gbm90IGhhcHBlbiBiZWZvcmUgdGhlIGZpcnN0IHJlYWQgY2FsbC4KICB0aGlzLnN5bmMgPSB0cnVlOwoKICAvLyB3aGVuZXZlciB3ZSByZXR1cm4gbnVsbCwgdGhlbiB3ZSBzZXQgYSBmbGFnIHRvIHNheQogIC8vIHRoYXQgd2UncmUgYXdhaXRpbmcgYSAncmVhZGFibGUnIGV2ZW50IGVtaXNzaW9uLgogIHRoaXMubmVlZFJlYWRhYmxlID0gZmFsc2U7CiAgdGhpcy5lbWl0dGVkUmVhZGFibGUgPSBmYWxzZTsKICB0aGlzLnJlYWRhYmxlTGlzdGVuaW5nID0gZmFsc2U7CiAgdGhpcy5yZXN1bWVTY2hlZHVsZWQgPSBmYWxzZTsKCiAgLy8gaGFzIGl0IGJlZW4gZGVzdHJveWVkCiAgdGhpcy5kZXN0cm95ZWQgPSBmYWxzZTsKCiAgLy8gQ3J5cHRvIGlzIGtpbmQgb2Ygb2xkIGFuZCBjcnVzdHkuICBIaXN0b3JpY2FsbHksIGl0cyBkZWZhdWx0IHN0cmluZwogIC8vIGVuY29kaW5nIGlzICdiaW5hcnknIHNvIHdlIGhhdmUgdG8gbWFrZSB0aGlzIGNvbmZpZ3VyYWJsZS4KICAvLyBFdmVyeXRoaW5nIGVsc2UgaW4gdGhlIHVuaXZlcnNlIHVzZXMgJ3V0ZjgnLCB0aG91Z2guCiAgdGhpcy5kZWZhdWx0RW5jb2RpbmcgPSBvcHRpb25zLmRlZmF1bHRFbmNvZGluZyB8fCAndXRmOCc7CgogIC8vIHRoZSBudW1iZXIgb2Ygd3JpdGVycyB0aGF0IGFyZSBhd2FpdGluZyBhIGRyYWluIGV2ZW50IGluIC5waXBlKClzCiAgdGhpcy5hd2FpdERyYWluID0gMDsKCiAgLy8gaWYgdHJ1ZSwgYSBtYXliZVJlYWRNb3JlIGhhcyBiZWVuIHNjaGVkdWxlZAogIHRoaXMucmVhZGluZ01vcmUgPSBmYWxzZTsKCiAgdGhpcy5kZWNvZGVyID0gbnVsbDsKICB0aGlzLmVuY29kaW5nID0gbnVsbDsKICBpZiAob3B0aW9ucy5lbmNvZGluZykgewogICAgaWYgKCFTdHJpbmdEZWNvZGVyKSBTdHJpbmdEZWNvZGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NykuU3RyaW5nRGVjb2RlcjsKICAgIHRoaXMuZGVjb2RlciA9IG5ldyBTdHJpbmdEZWNvZGVyKG9wdGlvbnMuZW5jb2RpbmcpOwogICAgdGhpcy5lbmNvZGluZyA9IG9wdGlvbnMuZW5jb2Rpbmc7CiAgfQp9CgpmdW5jdGlvbiBSZWFkYWJsZShvcHRpb25zKSB7CiAgRHVwbGV4ID0gRHVwbGV4IHx8IF9fd2VicGFja19yZXF1aXJlX18oMTYpOwoKICBpZiAoISh0aGlzIGluc3RhbmNlb2YgUmVhZGFibGUpKSByZXR1cm4gbmV3IFJlYWRhYmxlKG9wdGlvbnMpOwoKICB0aGlzLl9yZWFkYWJsZVN0YXRlID0gbmV3IFJlYWRhYmxlU3RhdGUob3B0aW9ucywgdGhpcyk7CgogIC8vIGxlZ2FjeQogIHRoaXMucmVhZGFibGUgPSB0cnVlOwoKICBpZiAob3B0aW9ucykgewogICAgaWYgKHR5cGVvZiBvcHRpb25zLnJlYWQgPT09ICdmdW5jdGlvbicpIHRoaXMuX3JlYWQgPSBvcHRpb25zLnJlYWQ7CgogICAgaWYgKHR5cGVvZiBvcHRpb25zLmRlc3Ryb3kgPT09ICdmdW5jdGlvbicpIHRoaXMuX2Rlc3Ryb3kgPSBvcHRpb25zLmRlc3Ryb3k7CiAgfQoKICBTdHJlYW0uY2FsbCh0aGlzKTsKfQoKT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlYWRhYmxlLnByb3RvdHlwZSwgJ2Rlc3Ryb3llZCcsIHsKICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgIGlmICh0aGlzLl9yZWFkYWJsZVN0YXRlID09PSB1bmRlZmluZWQpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgcmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkOwogIH0sCiAgc2V0OiBmdW5jdGlvbiAodmFsdWUpIHsKICAgIC8vIHdlIGlnbm9yZSB0aGUgdmFsdWUgaWYgdGhlIHN0cmVhbQogICAgLy8gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkIHlldAogICAgaWYgKCF0aGlzLl9yZWFkYWJsZVN0YXRlKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgdXNlciBpcyBleHBsaWNpdGx5CiAgICAvLyBtYW5hZ2luZyBkZXN0cm95ZWQKICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkID0gdmFsdWU7CiAgfQp9KTsKClJlYWRhYmxlLnByb3RvdHlwZS5kZXN0cm95ID0gZGVzdHJveUltcGwuZGVzdHJveTsKUmVhZGFibGUucHJvdG90eXBlLl91bmRlc3Ryb3kgPSBkZXN0cm95SW1wbC51bmRlc3Ryb3k7ClJlYWRhYmxlLnByb3RvdHlwZS5fZGVzdHJveSA9IGZ1bmN0aW9uIChlcnIsIGNiKSB7CiAgdGhpcy5wdXNoKG51bGwpOwogIGNiKGVycik7Cn07CgovLyBNYW51YWxseSBzaG92ZSBzb21ldGhpbmcgaW50byB0aGUgcmVhZCgpIGJ1ZmZlci4KLy8gVGhpcyByZXR1cm5zIHRydWUgaWYgdGhlIGhpZ2hXYXRlck1hcmsgaGFzIG5vdCBiZWVuIGhpdCB5ZXQsCi8vIHNpbWlsYXIgdG8gaG93IFdyaXRhYmxlLndyaXRlKCkgcmV0dXJucyB0cnVlIGlmIHlvdSBzaG91bGQKLy8gd3JpdGUoKSBzb21lIG1vcmUuClJlYWRhYmxlLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZykgewogIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7CiAgdmFyIHNraXBDaHVua0NoZWNrOwoKICBpZiAoIXN0YXRlLm9iamVjdE1vZGUpIHsKICAgIGlmICh0eXBlb2YgY2h1bmsgPT09ICdzdHJpbmcnKSB7CiAgICAgIGVuY29kaW5nID0gZW5jb2RpbmcgfHwgc3RhdGUuZGVmYXVsdEVuY29kaW5nOwogICAgICBpZiAoZW5jb2RpbmcgIT09IHN0YXRlLmVuY29kaW5nKSB7CiAgICAgICAgY2h1bmsgPSBCdWZmZXIuZnJvbShjaHVuaywgZW5jb2RpbmcpOwogICAgICAgIGVuY29kaW5nID0gJyc7CiAgICAgIH0KICAgICAgc2tpcENodW5rQ2hlY2sgPSB0cnVlOwogICAgfQogIH0gZWxzZSB7CiAgICBza2lwQ2h1bmtDaGVjayA9IHRydWU7CiAgfQoKICByZXR1cm4gcmVhZGFibGVBZGRDaHVuayh0aGlzLCBjaHVuaywgZW5jb2RpbmcsIGZhbHNlLCBza2lwQ2h1bmtDaGVjayk7Cn07CgovLyBVbnNoaWZ0IHNob3VsZCAqYWx3YXlzKiBiZSBzb21ldGhpbmcgZGlyZWN0bHkgb3V0IG9mIHJlYWQoKQpSZWFkYWJsZS5wcm90b3R5cGUudW5zaGlmdCA9IGZ1bmN0aW9uIChjaHVuaykgewogIHJldHVybiByZWFkYWJsZUFkZENodW5rKHRoaXMsIGNodW5rLCBudWxsLCB0cnVlLCBmYWxzZSk7Cn07CgpmdW5jdGlvbiByZWFkYWJsZUFkZENodW5rKHN0cmVhbSwgY2h1bmssIGVuY29kaW5nLCBhZGRUb0Zyb250LCBza2lwQ2h1bmtDaGVjaykgewogIHZhciBzdGF0ZSA9IHN0cmVhbS5fcmVhZGFibGVTdGF0ZTsKICBpZiAoY2h1bmsgPT09IG51bGwpIHsKICAgIHN0YXRlLnJlYWRpbmcgPSBmYWxzZTsKICAgIG9uRW9mQ2h1bmsoc3RyZWFtLCBzdGF0ZSk7CiAgfSBlbHNlIHsKICAgIHZhciBlcjsKICAgIGlmICghc2tpcENodW5rQ2hlY2spIGVyID0gY2h1bmtJbnZhbGlkKHN0YXRlLCBjaHVuayk7CiAgICBpZiAoZXIpIHsKICAgICAgc3RyZWFtLmVtaXQoJ2Vycm9yJywgZXIpOwogICAgfSBlbHNlIGlmIChzdGF0ZS5vYmplY3RNb2RlIHx8IGNodW5rICYmIGNodW5rLmxlbmd0aCA+IDApIHsKICAgICAgaWYgKHR5cGVvZiBjaHVuayAhPT0gJ3N0cmluZycgJiYgIXN0YXRlLm9iamVjdE1vZGUgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKGNodW5rKSAhPT0gQnVmZmVyLnByb3RvdHlwZSkgewogICAgICAgIGNodW5rID0gX3VpbnQ4QXJyYXlUb0J1ZmZlcihjaHVuayk7CiAgICAgIH0KCiAgICAgIGlmIChhZGRUb0Zyb250KSB7CiAgICAgICAgaWYgKHN0YXRlLmVuZEVtaXR0ZWQpIHN0cmVhbS5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcignc3RyZWFtLnVuc2hpZnQoKSBhZnRlciBlbmQgZXZlbnQnKSk7ZWxzZSBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgdHJ1ZSk7CiAgICAgIH0gZWxzZSBpZiAoc3RhdGUuZW5kZWQpIHsKICAgICAgICBzdHJlYW0uZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoJ3N0cmVhbS5wdXNoKCkgYWZ0ZXIgRU9GJykpOwogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnJlYWRpbmcgPSBmYWxzZTsKICAgICAgICBpZiAoc3RhdGUuZGVjb2RlciAmJiAhZW5jb2RpbmcpIHsKICAgICAgICAgIGNodW5rID0gc3RhdGUuZGVjb2Rlci53cml0ZShjaHVuayk7CiAgICAgICAgICBpZiAoc3RhdGUub2JqZWN0TW9kZSB8fCBjaHVuay5sZW5ndGggIT09IDApIGFkZENodW5rKHN0cmVhbSwgc3RhdGUsIGNodW5rLCBmYWxzZSk7ZWxzZSBtYXliZVJlYWRNb3JlKHN0cmVhbSwgc3RhdGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBhZGRDaHVuayhzdHJlYW0sIHN0YXRlLCBjaHVuaywgZmFsc2UpOwogICAgICAgIH0KICAgICAgfQogICAgfSBlbHNlIGlmICghYWRkVG9Gcm9udCkgewogICAgICBzdGF0ZS5yZWFkaW5nID0gZmFsc2U7CiAgICB9CiAgfQoKICByZXR1cm4gbmVlZE1vcmVEYXRhKHN0YXRlKTsKfQoKZnVuY3Rpb24gYWRkQ2h1bmsoc3RyZWFtLCBzdGF0ZSwgY2h1bmssIGFkZFRvRnJvbnQpIHsKICBpZiAoc3RhdGUuZmxvd2luZyAmJiBzdGF0ZS5sZW5ndGggPT09IDAgJiYgIXN0YXRlLnN5bmMpIHsKICAgIHN0cmVhbS5lbWl0KCdkYXRhJywgY2h1bmspOwogICAgc3RyZWFtLnJlYWQoMCk7CiAgfSBlbHNlIHsKICAgIC8vIHVwZGF0ZSB0aGUgYnVmZmVyIGluZm8uCiAgICBzdGF0ZS5sZW5ndGggKz0gc3RhdGUub2JqZWN0TW9kZSA/IDEgOiBjaHVuay5sZW5ndGg7CiAgICBpZiAoYWRkVG9Gcm9udCkgc3RhdGUuYnVmZmVyLnVuc2hpZnQoY2h1bmspO2Vsc2Ugc3RhdGUuYnVmZmVyLnB1c2goY2h1bmspOwoKICAgIGlmIChzdGF0ZS5uZWVkUmVhZGFibGUpIGVtaXRSZWFkYWJsZShzdHJlYW0pOwogIH0KICBtYXliZVJlYWRNb3JlKHN0cmVhbSwgc3RhdGUpOwp9CgpmdW5jdGlvbiBjaHVua0ludmFsaWQoc3RhdGUsIGNodW5rKSB7CiAgdmFyIGVyOwogIGlmICghX2lzVWludDhBcnJheShjaHVuaykgJiYgdHlwZW9mIGNodW5rICE9PSAnc3RyaW5nJyAmJiBjaHVuayAhPT0gdW5kZWZpbmVkICYmICFzdGF0ZS5vYmplY3RNb2RlKSB7CiAgICBlciA9IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm9uLXN0cmluZy9idWZmZXIgY2h1bmsnKTsKICB9CiAgcmV0dXJuIGVyOwp9CgovLyBpZiBpdCdzIHBhc3QgdGhlIGhpZ2ggd2F0ZXIgbWFyaywgd2UgY2FuIHB1c2ggaW4gc29tZSBtb3JlLgovLyBBbHNvLCBpZiB3ZSBoYXZlIG5vIGRhdGEgeWV0LCB3ZSBjYW4gc3RhbmQgc29tZQovLyBtb3JlIGJ5dGVzLiAgVGhpcyBpcyB0byB3b3JrIGFyb3VuZCBjYXNlcyB3aGVyZSBod209MCwKLy8gc3VjaCBhcyB0aGUgcmVwbC4gIEFsc28sIGlmIHRoZSBwdXNoKCkgdHJpZ2dlcmVkIGEKLy8gcmVhZGFibGUgZXZlbnQsIGFuZCB0aGUgdXNlciBjYWxsZWQgcmVhZChsYXJnZU51bWJlcikgc3VjaCB0aGF0Ci8vIG5lZWRSZWFkYWJsZSB3YXMgc2V0LCB0aGVuIHdlIG91Z2h0IHRvIHB1c2ggbW9yZSwgc28gdGhhdCBhbm90aGVyCi8vICdyZWFkYWJsZScgZXZlbnQgd2lsbCBiZSB0cmlnZ2VyZWQuCmZ1bmN0aW9uIG5lZWRNb3JlRGF0YShzdGF0ZSkgewogIHJldHVybiAhc3RhdGUuZW5kZWQgJiYgKHN0YXRlLm5lZWRSZWFkYWJsZSB8fCBzdGF0ZS5sZW5ndGggPCBzdGF0ZS5oaWdoV2F0ZXJNYXJrIHx8IHN0YXRlLmxlbmd0aCA9PT0gMCk7Cn0KClJlYWRhYmxlLnByb3RvdHlwZS5pc1BhdXNlZCA9IGZ1bmN0aW9uICgpIHsKICByZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nID09PSBmYWxzZTsKfTsKCi8vIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgpSZWFkYWJsZS5wcm90b3R5cGUuc2V0RW5jb2RpbmcgPSBmdW5jdGlvbiAoZW5jKSB7CiAgaWYgKCFTdHJpbmdEZWNvZGVyKSBTdHJpbmdEZWNvZGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NykuU3RyaW5nRGVjb2RlcjsKICB0aGlzLl9yZWFkYWJsZVN0YXRlLmRlY29kZXIgPSBuZXcgU3RyaW5nRGVjb2RlcihlbmMpOwogIHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2RpbmcgPSBlbmM7CiAgcmV0dXJuIHRoaXM7Cn07CgovLyBEb24ndCByYWlzZSB0aGUgaHdtID4gOE1CCnZhciBNQVhfSFdNID0gMHg4MDAwMDA7CmZ1bmN0aW9uIGNvbXB1dGVOZXdIaWdoV2F0ZXJNYXJrKG4pIHsKICBpZiAobiA+PSBNQVhfSFdNKSB7CiAgICBuID0gTUFYX0hXTTsKICB9IGVsc2UgewogICAgLy8gR2V0IHRoZSBuZXh0IGhpZ2hlc3QgcG93ZXIgb2YgMiB0byBwcmV2ZW50IGluY3JlYXNpbmcgaHdtIGV4Y2Vzc2l2ZWx5IGluCiAgICAvLyB0aW55IGFtb3VudHMKICAgIG4tLTsKICAgIG4gfD0gbiA+Pj4gMTsKICAgIG4gfD0gbiA+Pj4gMjsKICAgIG4gfD0gbiA+Pj4gNDsKICAgIG4gfD0gbiA+Pj4gODsKICAgIG4gfD0gbiA+Pj4gMTY7CiAgICBuKys7CiAgfQogIHJldHVybiBuOwp9CgovLyBUaGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlIGlubGluYWJsZSwgc28gcGxlYXNlIHRha2UgY2FyZSB3aGVuIG1ha2luZwovLyBjaGFuZ2VzIHRvIHRoZSBmdW5jdGlvbiBib2R5LgpmdW5jdGlvbiBob3dNdWNoVG9SZWFkKG4sIHN0YXRlKSB7CiAgaWYgKG4gPD0gMCB8fCBzdGF0ZS5sZW5ndGggPT09IDAgJiYgc3RhdGUuZW5kZWQpIHJldHVybiAwOwogIGlmIChzdGF0ZS5vYmplY3RNb2RlKSByZXR1cm4gMTsKICBpZiAobiAhPT0gbikgewogICAgLy8gT25seSBmbG93IG9uZSBidWZmZXIgYXQgYSB0aW1lCiAgICBpZiAoc3RhdGUuZmxvd2luZyAmJiBzdGF0ZS5sZW5ndGgpIHJldHVybiBzdGF0ZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDtlbHNlIHJldHVybiBzdGF0ZS5sZW5ndGg7CiAgfQogIC8vIElmIHdlJ3JlIGFza2luZyBmb3IgbW9yZSB0aGFuIHRoZSBjdXJyZW50IGh3bSwgdGhlbiByYWlzZSB0aGUgaHdtLgogIGlmIChuID4gc3RhdGUuaGlnaFdhdGVyTWFyaykgc3RhdGUuaGlnaFdhdGVyTWFyayA9IGNvbXB1dGVOZXdIaWdoV2F0ZXJNYXJrKG4pOwogIGlmIChuIDw9IHN0YXRlLmxlbmd0aCkgcmV0dXJuIG47CiAgLy8gRG9uJ3QgaGF2ZSBlbm91Z2gKICBpZiAoIXN0YXRlLmVuZGVkKSB7CiAgICBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlOwogICAgcmV0dXJuIDA7CiAgfQogIHJldHVybiBzdGF0ZS5sZW5ndGg7Cn0KCi8vIHlvdSBjYW4gb3ZlcnJpZGUgZWl0aGVyIHRoaXMgbWV0aG9kLCBvciB0aGUgYXN5bmMgX3JlYWQobikgYmVsb3cuClJlYWRhYmxlLnByb3RvdHlwZS5yZWFkID0gZnVuY3Rpb24gKG4pIHsKICBkZWJ1ZygncmVhZCcsIG4pOwogIG4gPSBwYXJzZUludChuLCAxMCk7CiAgdmFyIHN0YXRlID0gdGhpcy5fcmVhZGFibGVTdGF0ZTsKICB2YXIgbk9yaWcgPSBuOwoKICBpZiAobiAhPT0gMCkgc3RhdGUuZW1pdHRlZFJlYWRhYmxlID0gZmFsc2U7CgogIC8vIGlmIHdlJ3JlIGRvaW5nIHJlYWQoMCkgdG8gdHJpZ2dlciBhIHJlYWRhYmxlIGV2ZW50LCBidXQgd2UKICAvLyBhbHJlYWR5IGhhdmUgYSBidW5jaCBvZiBkYXRhIGluIHRoZSBidWZmZXIsIHRoZW4ganVzdCB0cmlnZ2VyCiAgLy8gdGhlICdyZWFkYWJsZScgZXZlbnQgYW5kIG1vdmUgb24uCiAgaWYgKG4gPT09IDAgJiYgc3RhdGUubmVlZFJlYWRhYmxlICYmIChzdGF0ZS5sZW5ndGggPj0gc3RhdGUuaGlnaFdhdGVyTWFyayB8fCBzdGF0ZS5lbmRlZCkpIHsKICAgIGRlYnVnKCdyZWFkOiBlbWl0UmVhZGFibGUnLCBzdGF0ZS5sZW5ndGgsIHN0YXRlLmVuZGVkKTsKICAgIGlmIChzdGF0ZS5sZW5ndGggPT09IDAgJiYgc3RhdGUuZW5kZWQpIGVuZFJlYWRhYmxlKHRoaXMpO2Vsc2UgZW1pdFJlYWRhYmxlKHRoaXMpOwogICAgcmV0dXJuIG51bGw7CiAgfQoKICBuID0gaG93TXVjaFRvUmVhZChuLCBzdGF0ZSk7CgogIC8vIGlmIHdlJ3ZlIGVuZGVkLCBhbmQgd2UncmUgbm93IGNsZWFyLCB0aGVuIGZpbmlzaCBpdCB1cC4KICBpZiAobiA9PT0gMCAmJiBzdGF0ZS5lbmRlZCkgewogICAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkgZW5kUmVhZGFibGUodGhpcyk7CiAgICByZXR1cm4gbnVsbDsKICB9CgogIC8vIEFsbCB0aGUgYWN0dWFsIGNodW5rIGdlbmVyYXRpb24gbG9naWMgbmVlZHMgdG8gYmUKICAvLyAqYmVsb3cqIHRoZSBjYWxsIHRvIF9yZWFkLiAgVGhlIHJlYXNvbiBpcyB0aGF0IGluIGNlcnRhaW4KICAvLyBzeW50aGV0aWMgc3RyZWFtIGNhc2VzLCBzdWNoIGFzIHBhc3N0aHJvdWdoIHN0cmVhbXMsIF9yZWFkCiAgLy8gbWF5IGJlIGEgY29tcGxldGVseSBzeW5jaHJvbm91cyBvcGVyYXRpb24gd2hpY2ggbWF5IGNoYW5nZQogIC8vIHRoZSBzdGF0ZSBvZiB0aGUgcmVhZCBidWZmZXIsIHByb3ZpZGluZyBlbm91Z2ggZGF0YSB3aGVuCiAgLy8gYmVmb3JlIHRoZXJlIHdhcyAqbm90KiBlbm91Z2guCiAgLy8KICAvLyBTbywgdGhlIHN0ZXBzIGFyZToKICAvLyAxLiBGaWd1cmUgb3V0IHdoYXQgdGhlIHN0YXRlIG9mIHRoaW5ncyB3aWxsIGJlIGFmdGVyIHdlIGRvCiAgLy8gYSByZWFkIGZyb20gdGhlIGJ1ZmZlci4KICAvLwogIC8vIDIuIElmIHRoYXQgcmVzdWx0aW5nIHN0YXRlIHdpbGwgdHJpZ2dlciBhIF9yZWFkLCB0aGVuIGNhbGwgX3JlYWQuCiAgLy8gTm90ZSB0aGF0IHRoaXMgbWF5IGJlIGFzeW5jaHJvbm91cywgb3Igc3luY2hyb25vdXMuICBZZXMsIGl0IGlzCiAgLy8gZGVlcGx5IHVnbHkgdG8gd3JpdGUgQVBJcyB0aGlzIHdheSwgYnV0IHRoYXQgc3RpbGwgZG9lc24ndCBtZWFuCiAgLy8gdGhhdCB0aGUgUmVhZGFibGUgY2xhc3Mgc2hvdWxkIGJlaGF2ZSBpbXByb3Blcmx5LCBhcyBzdHJlYW1zIGFyZQogIC8vIGRlc2lnbmVkIHRvIGJlIHN5bmMvYXN5bmMgYWdub3N0aWMuCiAgLy8gVGFrZSBub3RlIGlmIHRoZSBfcmVhZCBjYWxsIGlzIHN5bmMgb3IgYXN5bmMgKGllLCBpZiB0aGUgcmVhZCBjYWxsCiAgLy8gaGFzIHJldHVybmVkIHlldCksIHNvIHRoYXQgd2Uga25vdyB3aGV0aGVyIG9yIG5vdCBpdCdzIHNhZmUgdG8gZW1pdAogIC8vICdyZWFkYWJsZScgZXRjLgogIC8vCiAgLy8gMy4gQWN0dWFsbHkgcHVsbCB0aGUgcmVxdWVzdGVkIGNodW5rcyBvdXQgb2YgdGhlIGJ1ZmZlciBhbmQgcmV0dXJuLgoKICAvLyBpZiB3ZSBuZWVkIGEgcmVhZGFibGUgZXZlbnQsIHRoZW4gd2UgbmVlZCB0byBkbyBzb21lIHJlYWRpbmcuCiAgdmFyIGRvUmVhZCA9IHN0YXRlLm5lZWRSZWFkYWJsZTsKICBkZWJ1ZygnbmVlZCByZWFkYWJsZScsIGRvUmVhZCk7CgogIC8vIGlmIHdlIGN1cnJlbnRseSBoYXZlIGxlc3MgdGhhbiB0aGUgaGlnaFdhdGVyTWFyaywgdGhlbiBhbHNvIHJlYWQgc29tZQogIGlmIChzdGF0ZS5sZW5ndGggPT09IDAgfHwgc3RhdGUubGVuZ3RoIC0gbiA8IHN0YXRlLmhpZ2hXYXRlck1hcmspIHsKICAgIGRvUmVhZCA9IHRydWU7CiAgICBkZWJ1ZygnbGVuZ3RoIGxlc3MgdGhhbiB3YXRlcm1hcmsnLCBkb1JlYWQpOwogIH0KCiAgLy8gaG93ZXZlciwgaWYgd2UndmUgZW5kZWQsIHRoZW4gdGhlcmUncyBubyBwb2ludCwgYW5kIGlmIHdlJ3JlIGFscmVhZHkKICAvLyByZWFkaW5nLCB0aGVuIGl0J3MgdW5uZWNlc3NhcnkuCiAgaWYgKHN0YXRlLmVuZGVkIHx8IHN0YXRlLnJlYWRpbmcpIHsKICAgIGRvUmVhZCA9IGZhbHNlOwogICAgZGVidWcoJ3JlYWRpbmcgb3IgZW5kZWQnLCBkb1JlYWQpOwogIH0gZWxzZSBpZiAoZG9SZWFkKSB7CiAgICBkZWJ1ZygnZG8gcmVhZCcpOwogICAgc3RhdGUucmVhZGluZyA9IHRydWU7CiAgICBzdGF0ZS5zeW5jID0gdHJ1ZTsKICAgIC8vIGlmIHRoZSBsZW5ndGggaXMgY3VycmVudGx5IHplcm8sIHRoZW4gd2UgKm5lZWQqIGEgcmVhZGFibGUgZXZlbnQuCiAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSBzdGF0ZS5uZWVkUmVhZGFibGUgPSB0cnVlOwogICAgLy8gY2FsbCBpbnRlcm5hbCByZWFkIG1ldGhvZAogICAgdGhpcy5fcmVhZChzdGF0ZS5oaWdoV2F0ZXJNYXJrKTsKICAgIHN0YXRlLnN5bmMgPSBmYWxzZTsKICAgIC8vIElmIF9yZWFkIHB1c2hlZCBkYXRhIHN5bmNocm9ub3VzbHksIHRoZW4gYHJlYWRpbmdgIHdpbGwgYmUgZmFsc2UsCiAgICAvLyBhbmQgd2UgbmVlZCB0byByZS1ldmFsdWF0ZSBob3cgbXVjaCBkYXRhIHdlIGNhbiByZXR1cm4gdG8gdGhlIHVzZXIuCiAgICBpZiAoIXN0YXRlLnJlYWRpbmcpIG4gPSBob3dNdWNoVG9SZWFkKG5PcmlnLCBzdGF0ZSk7CiAgfQoKICB2YXIgcmV0OwogIGlmIChuID4gMCkgcmV0ID0gZnJvbUxpc3Qobiwgc3RhdGUpO2Vsc2UgcmV0ID0gbnVsbDsKCiAgaWYgKHJldCA9PT0gbnVsbCkgewogICAgc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTsKICAgIG4gPSAwOwogIH0gZWxzZSB7CiAgICBzdGF0ZS5sZW5ndGggLT0gbjsKICB9CgogIGlmIChzdGF0ZS5sZW5ndGggPT09IDApIHsKICAgIC8vIElmIHdlIGhhdmUgbm90aGluZyBpbiB0aGUgYnVmZmVyLCB0aGVuIHdlIHdhbnQgdG8ga25vdwogICAgLy8gYXMgc29vbiBhcyB3ZSAqZG8qIGdldCBzb21ldGhpbmcgaW50byB0aGUgYnVmZmVyLgogICAgaWYgKCFzdGF0ZS5lbmRlZCkgc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTsKCiAgICAvLyBJZiB3ZSB0cmllZCB0byByZWFkKCkgcGFzdCB0aGUgRU9GLCB0aGVuIGVtaXQgZW5kIG9uIHRoZSBuZXh0IHRpY2suCiAgICBpZiAobk9yaWcgIT09IG4gJiYgc3RhdGUuZW5kZWQpIGVuZFJlYWRhYmxlKHRoaXMpOwogIH0KCiAgaWYgKHJldCAhPT0gbnVsbCkgdGhpcy5lbWl0KCdkYXRhJywgcmV0KTsKCiAgcmV0dXJuIHJldDsKfTsKCmZ1bmN0aW9uIG9uRW9mQ2h1bmsoc3RyZWFtLCBzdGF0ZSkgewogIGlmIChzdGF0ZS5lbmRlZCkgcmV0dXJuOwogIGlmIChzdGF0ZS5kZWNvZGVyKSB7CiAgICB2YXIgY2h1bmsgPSBzdGF0ZS5kZWNvZGVyLmVuZCgpOwogICAgaWYgKGNodW5rICYmIGNodW5rLmxlbmd0aCkgewogICAgICBzdGF0ZS5idWZmZXIucHVzaChjaHVuayk7CiAgICAgIHN0YXRlLmxlbmd0aCArPSBzdGF0ZS5vYmplY3RNb2RlID8gMSA6IGNodW5rLmxlbmd0aDsKICAgIH0KICB9CiAgc3RhdGUuZW5kZWQgPSB0cnVlOwoKICAvLyBlbWl0ICdyZWFkYWJsZScgbm93IHRvIG1ha2Ugc3VyZSBpdCBnZXRzIHBpY2tlZCB1cC4KICBlbWl0UmVhZGFibGUoc3RyZWFtKTsKfQoKLy8gRG9uJ3QgZW1pdCByZWFkYWJsZSByaWdodCBhd2F5IGluIHN5bmMgbW9kZSwgYmVjYXVzZSB0aGlzIGNhbiB0cmlnZ2VyCi8vIGFub3RoZXIgcmVhZCgpIGNhbGwgPT4gc3RhY2sgb3ZlcmZsb3cuICBUaGlzIHdheSwgaXQgbWlnaHQgdHJpZ2dlcgovLyBhIG5leHRUaWNrIHJlY3Vyc2lvbiB3YXJuaW5nLCBidXQgdGhhdCdzIG5vdCBzbyBiYWQuCmZ1bmN0aW9uIGVtaXRSZWFkYWJsZShzdHJlYW0pIHsKICB2YXIgc3RhdGUgPSBzdHJlYW0uX3JlYWRhYmxlU3RhdGU7CiAgc3RhdGUubmVlZFJlYWRhYmxlID0gZmFsc2U7CiAgaWYgKCFzdGF0ZS5lbWl0dGVkUmVhZGFibGUpIHsKICAgIGRlYnVnKCdlbWl0UmVhZGFibGUnLCBzdGF0ZS5mbG93aW5nKTsKICAgIHN0YXRlLmVtaXR0ZWRSZWFkYWJsZSA9IHRydWU7CiAgICBpZiAoc3RhdGUuc3luYykgcHJvY2Vzc05leHRUaWNrKGVtaXRSZWFkYWJsZV8sIHN0cmVhbSk7ZWxzZSBlbWl0UmVhZGFibGVfKHN0cmVhbSk7CiAgfQp9CgpmdW5jdGlvbiBlbWl0UmVhZGFibGVfKHN0cmVhbSkgewogIGRlYnVnKCdlbWl0IHJlYWRhYmxlJyk7CiAgc3RyZWFtLmVtaXQoJ3JlYWRhYmxlJyk7CiAgZmxvdyhzdHJlYW0pOwp9CgovLyBhdCB0aGlzIHBvaW50LCB0aGUgdXNlciBoYXMgcHJlc3VtYWJseSBzZWVuIHRoZSAncmVhZGFibGUnIGV2ZW50LAovLyBhbmQgY2FsbGVkIHJlYWQoKSB0byBjb25zdW1lIHNvbWUgZGF0YS4gIHRoYXQgbWF5IGhhdmUgdHJpZ2dlcmVkCi8vIGluIHR1cm4gYW5vdGhlciBfcmVhZChuKSBjYWxsLCBpbiB3aGljaCBjYXNlIHJlYWRpbmcgPSB0cnVlIGlmCi8vIGl0J3MgaW4gcHJvZ3Jlc3MuCi8vIEhvd2V2ZXIsIGlmIHdlJ3JlIG5vdCBlbmRlZCwgb3IgcmVhZGluZywgYW5kIHRoZSBsZW5ndGggPCBod20sCi8vIHRoZW4gZ28gYWhlYWQgYW5kIHRyeSB0byByZWFkIHNvbWUgbW9yZSBwcmVlbXB0aXZlbHkuCmZ1bmN0aW9uIG1heWJlUmVhZE1vcmUoc3RyZWFtLCBzdGF0ZSkgewogIGlmICghc3RhdGUucmVhZGluZ01vcmUpIHsKICAgIHN0YXRlLnJlYWRpbmdNb3JlID0gdHJ1ZTsKICAgIHByb2Nlc3NOZXh0VGljayhtYXliZVJlYWRNb3JlXywgc3RyZWFtLCBzdGF0ZSk7CiAgfQp9CgpmdW5jdGlvbiBtYXliZVJlYWRNb3JlXyhzdHJlYW0sIHN0YXRlKSB7CiAgdmFyIGxlbiA9IHN0YXRlLmxlbmd0aDsKICB3aGlsZSAoIXN0YXRlLnJlYWRpbmcgJiYgIXN0YXRlLmZsb3dpbmcgJiYgIXN0YXRlLmVuZGVkICYmIHN0YXRlLmxlbmd0aCA8IHN0YXRlLmhpZ2hXYXRlck1hcmspIHsKICAgIGRlYnVnKCdtYXliZVJlYWRNb3JlIHJlYWQgMCcpOwogICAgc3RyZWFtLnJlYWQoMCk7CiAgICBpZiAobGVuID09PSBzdGF0ZS5sZW5ndGgpCiAgICAgIC8vIGRpZG4ndCBnZXQgYW55IGRhdGEsIHN0b3Agc3Bpbm5pbmcuCiAgICAgIGJyZWFrO2Vsc2UgbGVuID0gc3RhdGUubGVuZ3RoOwogIH0KICBzdGF0ZS5yZWFkaW5nTW9yZSA9IGZhbHNlOwp9CgovLyBhYnN0cmFjdCBtZXRob2QuICB0byBiZSBvdmVycmlkZGVuIGluIHNwZWNpZmljIGltcGxlbWVudGF0aW9uIGNsYXNzZXMuCi8vIGNhbGwgY2IoZXIsIGRhdGEpIHdoZXJlIGRhdGEgaXMgPD0gbiBpbiBsZW5ndGguCi8vIGZvciB2aXJ0dWFsIChub24tc3RyaW5nLCBub24tYnVmZmVyKSBzdHJlYW1zLCAibGVuZ3RoIiBpcyBzb21ld2hhdAovLyBhcmJpdHJhcnksIGFuZCBwZXJoYXBzIG5vdCB2ZXJ5IG1lYW5pbmdmdWwuClJlYWRhYmxlLnByb3RvdHlwZS5fcmVhZCA9IGZ1bmN0aW9uIChuKSB7CiAgdGhpcy5lbWl0KCdlcnJvcicsIG5ldyBFcnJvcignX3JlYWQoKSBpcyBub3QgaW1wbGVtZW50ZWQnKSk7Cn07CgpSZWFkYWJsZS5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uIChkZXN0LCBwaXBlT3B0cykgewogIHZhciBzcmMgPSB0aGlzOwogIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7CgogIHN3aXRjaCAoc3RhdGUucGlwZXNDb3VudCkgewogICAgY2FzZSAwOgogICAgICBzdGF0ZS5waXBlcyA9IGRlc3Q7CiAgICAgIGJyZWFrOwogICAgY2FzZSAxOgogICAgICBzdGF0ZS5waXBlcyA9IFtzdGF0ZS5waXBlcywgZGVzdF07CiAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgc3RhdGUucGlwZXMucHVzaChkZXN0KTsKICAgICAgYnJlYWs7CiAgfQogIHN0YXRlLnBpcGVzQ291bnQgKz0gMTsKICBkZWJ1ZygncGlwZSBjb3VudD0lZCBvcHRzPSVqJywgc3RhdGUucGlwZXNDb3VudCwgcGlwZU9wdHMpOwoKICB2YXIgZG9FbmQgPSAoIXBpcGVPcHRzIHx8IHBpcGVPcHRzLmVuZCAhPT0gZmFsc2UpICYmIGRlc3QgIT09IHByb2Nlc3Muc3Rkb3V0ICYmIGRlc3QgIT09IHByb2Nlc3Muc3RkZXJyOwoKICB2YXIgZW5kRm4gPSBkb0VuZCA/IG9uZW5kIDogdW5waXBlOwogIGlmIChzdGF0ZS5lbmRFbWl0dGVkKSBwcm9jZXNzTmV4dFRpY2soZW5kRm4pO2Vsc2Ugc3JjLm9uY2UoJ2VuZCcsIGVuZEZuKTsKCiAgZGVzdC5vbigndW5waXBlJywgb251bnBpcGUpOwogIGZ1bmN0aW9uIG9udW5waXBlKHJlYWRhYmxlLCB1bnBpcGVJbmZvKSB7CiAgICBkZWJ1Zygnb251bnBpcGUnKTsKICAgIGlmIChyZWFkYWJsZSA9PT0gc3JjKSB7CiAgICAgIGlmICh1bnBpcGVJbmZvICYmIHVucGlwZUluZm8uaGFzVW5waXBlZCA9PT0gZmFsc2UpIHsKICAgICAgICB1bnBpcGVJbmZvLmhhc1VucGlwZWQgPSB0cnVlOwogICAgICAgIGNsZWFudXAoKTsKICAgICAgfQogICAgfQogIH0KCiAgZnVuY3Rpb24gb25lbmQoKSB7CiAgICBkZWJ1Zygnb25lbmQnKTsKICAgIGRlc3QuZW5kKCk7CiAgfQoKICAvLyB3aGVuIHRoZSBkZXN0IGRyYWlucywgaXQgcmVkdWNlcyB0aGUgYXdhaXREcmFpbiBjb3VudGVyCiAgLy8gb24gdGhlIHNvdXJjZS4gIFRoaXMgd291bGQgYmUgbW9yZSBlbGVnYW50IHdpdGggYSAub25jZSgpCiAgLy8gaGFuZGxlciBpbiBmbG93KCksIGJ1dCBhZGRpbmcgYW5kIHJlbW92aW5nIHJlcGVhdGVkbHkgaXMKICAvLyB0b28gc2xvdy4KICB2YXIgb25kcmFpbiA9IHBpcGVPbkRyYWluKHNyYyk7CiAgZGVzdC5vbignZHJhaW4nLCBvbmRyYWluKTsKCiAgdmFyIGNsZWFuZWRVcCA9IGZhbHNlOwogIGZ1bmN0aW9uIGNsZWFudXAoKSB7CiAgICBkZWJ1ZygnY2xlYW51cCcpOwogICAgLy8gY2xlYW51cCBldmVudCBoYW5kbGVycyBvbmNlIHRoZSBwaXBlIGlzIGJyb2tlbgogICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignY2xvc2UnLCBvbmNsb3NlKTsKICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2ZpbmlzaCcsIG9uZmluaXNoKTsKICAgIGRlc3QucmVtb3ZlTGlzdGVuZXIoJ2RyYWluJywgb25kcmFpbik7CiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdlcnJvcicsIG9uZXJyb3IpOwogICAgZGVzdC5yZW1vdmVMaXN0ZW5lcigndW5waXBlJywgb251bnBpcGUpOwogICAgc3JjLnJlbW92ZUxpc3RlbmVyKCdlbmQnLCBvbmVuZCk7CiAgICBzcmMucmVtb3ZlTGlzdGVuZXIoJ2VuZCcsIHVucGlwZSk7CiAgICBzcmMucmVtb3ZlTGlzdGVuZXIoJ2RhdGEnLCBvbmRhdGEpOwoKICAgIGNsZWFuZWRVcCA9IHRydWU7CgogICAgLy8gaWYgdGhlIHJlYWRlciBpcyB3YWl0aW5nIGZvciBhIGRyYWluIGV2ZW50IGZyb20gdGhpcwogICAgLy8gc3BlY2lmaWMgd3JpdGVyLCB0aGVuIGl0IHdvdWxkIGNhdXNlIGl0IHRvIG5ldmVyIHN0YXJ0CiAgICAvLyBmbG93aW5nIGFnYWluLgogICAgLy8gU28sIGlmIHRoaXMgaXMgYXdhaXRpbmcgYSBkcmFpbiwgdGhlbiB3ZSBqdXN0IGNhbGwgaXQgbm93LgogICAgLy8gSWYgd2UgZG9uJ3Qga25vdywgdGhlbiBhc3N1bWUgdGhhdCB3ZSBhcmUgd2FpdGluZyBmb3Igb25lLgogICAgaWYgKHN0YXRlLmF3YWl0RHJhaW4gJiYgKCFkZXN0Ll93cml0YWJsZVN0YXRlIHx8IGRlc3QuX3dyaXRhYmxlU3RhdGUubmVlZERyYWluKSkgb25kcmFpbigpOwogIH0KCiAgLy8gSWYgdGhlIHVzZXIgcHVzaGVzIG1vcmUgZGF0YSB3aGlsZSB3ZSdyZSB3cml0aW5nIHRvIGRlc3QgdGhlbiB3ZSdsbCBlbmQgdXAKICAvLyBpbiBvbmRhdGEgYWdhaW4uIEhvd2V2ZXIsIHdlIG9ubHkgd2FudCB0byBpbmNyZWFzZSBhd2FpdERyYWluIG9uY2UgYmVjYXVzZQogIC8vIGRlc3Qgd2lsbCBvbmx5IGVtaXQgb25lICdkcmFpbicgZXZlbnQgZm9yIHRoZSBtdWx0aXBsZSB3cml0ZXMuCiAgLy8gPT4gSW50cm9kdWNlIGEgZ3VhcmQgb24gaW5jcmVhc2luZyBhd2FpdERyYWluLgogIHZhciBpbmNyZWFzZWRBd2FpdERyYWluID0gZmFsc2U7CiAgc3JjLm9uKCdkYXRhJywgb25kYXRhKTsKICBmdW5jdGlvbiBvbmRhdGEoY2h1bmspIHsKICAgIGRlYnVnKCdvbmRhdGEnKTsKICAgIGluY3JlYXNlZEF3YWl0RHJhaW4gPSBmYWxzZTsKICAgIHZhciByZXQgPSBkZXN0LndyaXRlKGNodW5rKTsKICAgIGlmIChmYWxzZSA9PT0gcmV0ICYmICFpbmNyZWFzZWRBd2FpdERyYWluKSB7CiAgICAgIC8vIElmIHRoZSB1c2VyIHVucGlwZWQgZHVyaW5nIGBkZXN0LndyaXRlKClgLCBpdCBpcyBwb3NzaWJsZQogICAgICAvLyB0byBnZXQgc3R1Y2sgaW4gYSBwZXJtYW5lbnRseSBwYXVzZWQgc3RhdGUgaWYgdGhhdCB3cml0ZQogICAgICAvLyBhbHNvIHJldHVybmVkIGZhbHNlLgogICAgICAvLyA9PiBDaGVjayB3aGV0aGVyIGBkZXN0YCBpcyBzdGlsbCBhIHBpcGluZyBkZXN0aW5hdGlvbi4KICAgICAgaWYgKChzdGF0ZS5waXBlc0NvdW50ID09PSAxICYmIHN0YXRlLnBpcGVzID09PSBkZXN0IHx8IHN0YXRlLnBpcGVzQ291bnQgPiAxICYmIGluZGV4T2Yoc3RhdGUucGlwZXMsIGRlc3QpICE9PSAtMSkgJiYgIWNsZWFuZWRVcCkgewogICAgICAgIGRlYnVnKCdmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2UnLCBzcmMuX3JlYWRhYmxlU3RhdGUuYXdhaXREcmFpbik7CiAgICAgICAgc3JjLl9yZWFkYWJsZVN0YXRlLmF3YWl0RHJhaW4rKzsKICAgICAgICBpbmNyZWFzZWRBd2FpdERyYWluID0gdHJ1ZTsKICAgICAgfQogICAgICBzcmMucGF1c2UoKTsKICAgIH0KICB9CgogIC8vIGlmIHRoZSBkZXN0IGhhcyBhbiBlcnJvciwgdGhlbiBzdG9wIHBpcGluZyBpbnRvIGl0LgogIC8vIGhvd2V2ZXIsIGRvbid0IHN1cHByZXNzIHRoZSB0aHJvd2luZyBiZWhhdmlvciBmb3IgdGhpcy4KICBmdW5jdGlvbiBvbmVycm9yKGVyKSB7CiAgICBkZWJ1Zygnb25lcnJvcicsIGVyKTsKICAgIHVucGlwZSgpOwogICAgZGVzdC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbmVycm9yKTsKICAgIGlmIChFRWxpc3RlbmVyQ291bnQoZGVzdCwgJ2Vycm9yJykgPT09IDApIGRlc3QuZW1pdCgnZXJyb3InLCBlcik7CiAgfQoKICAvLyBNYWtlIHN1cmUgb3VyIGVycm9yIGhhbmRsZXIgaXMgYXR0YWNoZWQgYmVmb3JlIHVzZXJsYW5kIG9uZXMuCiAgcHJlcGVuZExpc3RlbmVyKGRlc3QsICdlcnJvcicsIG9uZXJyb3IpOwoKICAvLyBCb3RoIGNsb3NlIGFuZCBmaW5pc2ggc2hvdWxkIHRyaWdnZXIgdW5waXBlLCBidXQgb25seSBvbmNlLgogIGZ1bmN0aW9uIG9uY2xvc2UoKSB7CiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdmaW5pc2gnLCBvbmZpbmlzaCk7CiAgICB1bnBpcGUoKTsKICB9CiAgZGVzdC5vbmNlKCdjbG9zZScsIG9uY2xvc2UpOwogIGZ1bmN0aW9uIG9uZmluaXNoKCkgewogICAgZGVidWcoJ29uZmluaXNoJyk7CiAgICBkZXN0LnJlbW92ZUxpc3RlbmVyKCdjbG9zZScsIG9uY2xvc2UpOwogICAgdW5waXBlKCk7CiAgfQogIGRlc3Qub25jZSgnZmluaXNoJywgb25maW5pc2gpOwoKICBmdW5jdGlvbiB1bnBpcGUoKSB7CiAgICBkZWJ1ZygndW5waXBlJyk7CiAgICBzcmMudW5waXBlKGRlc3QpOwogIH0KCiAgLy8gdGVsbCB0aGUgZGVzdCB0aGF0IGl0J3MgYmVpbmcgcGlwZWQgdG8KICBkZXN0LmVtaXQoJ3BpcGUnLCBzcmMpOwoKICAvLyBzdGFydCB0aGUgZmxvdyBpZiBpdCBoYXNuJ3QgYmVlbiBzdGFydGVkIGFscmVhZHkuCiAgaWYgKCFzdGF0ZS5mbG93aW5nKSB7CiAgICBkZWJ1ZygncGlwZSByZXN1bWUnKTsKICAgIHNyYy5yZXN1bWUoKTsKICB9CgogIHJldHVybiBkZXN0Owp9OwoKZnVuY3Rpb24gcGlwZU9uRHJhaW4oc3JjKSB7CiAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgIHZhciBzdGF0ZSA9IHNyYy5fcmVhZGFibGVTdGF0ZTsKICAgIGRlYnVnKCdwaXBlT25EcmFpbicsIHN0YXRlLmF3YWl0RHJhaW4pOwogICAgaWYgKHN0YXRlLmF3YWl0RHJhaW4pIHN0YXRlLmF3YWl0RHJhaW4tLTsKICAgIGlmIChzdGF0ZS5hd2FpdERyYWluID09PSAwICYmIEVFbGlzdGVuZXJDb3VudChzcmMsICdkYXRhJykpIHsKICAgICAgc3RhdGUuZmxvd2luZyA9IHRydWU7CiAgICAgIGZsb3coc3JjKTsKICAgIH0KICB9Owp9CgpSZWFkYWJsZS5wcm90b3R5cGUudW5waXBlID0gZnVuY3Rpb24gKGRlc3QpIHsKICB2YXIgc3RhdGUgPSB0aGlzLl9yZWFkYWJsZVN0YXRlOwogIHZhciB1bnBpcGVJbmZvID0geyBoYXNVbnBpcGVkOiBmYWxzZSB9OwoKICAvLyBpZiB3ZSdyZSBub3QgcGlwaW5nIGFueXdoZXJlLCB0aGVuIGRvIG5vdGhpbmcuCiAgaWYgKHN0YXRlLnBpcGVzQ291bnQgPT09IDApIHJldHVybiB0aGlzOwoKICAvLyBqdXN0IG9uZSBkZXN0aW5hdGlvbi4gIG1vc3QgY29tbW9uIGNhc2UuCiAgaWYgKHN0YXRlLnBpcGVzQ291bnQgPT09IDEpIHsKICAgIC8vIHBhc3NlZCBpbiBvbmUsIGJ1dCBpdCdzIG5vdCB0aGUgcmlnaHQgb25lLgogICAgaWYgKGRlc3QgJiYgZGVzdCAhPT0gc3RhdGUucGlwZXMpIHJldHVybiB0aGlzOwoKICAgIGlmICghZGVzdCkgZGVzdCA9IHN0YXRlLnBpcGVzOwoKICAgIC8vIGdvdCBhIG1hdGNoLgogICAgc3RhdGUucGlwZXMgPSBudWxsOwogICAgc3RhdGUucGlwZXNDb3VudCA9IDA7CiAgICBzdGF0ZS5mbG93aW5nID0gZmFsc2U7CiAgICBpZiAoZGVzdCkgZGVzdC5lbWl0KCd1bnBpcGUnLCB0aGlzLCB1bnBpcGVJbmZvKTsKICAgIHJldHVybiB0aGlzOwogIH0KCiAgLy8gc2xvdyBjYXNlLiBtdWx0aXBsZSBwaXBlIGRlc3RpbmF0aW9ucy4KCiAgaWYgKCFkZXN0KSB7CiAgICAvLyByZW1vdmUgYWxsLgogICAgdmFyIGRlc3RzID0gc3RhdGUucGlwZXM7CiAgICB2YXIgbGVuID0gc3RhdGUucGlwZXNDb3VudDsKICAgIHN0YXRlLnBpcGVzID0gbnVsbDsKICAgIHN0YXRlLnBpcGVzQ291bnQgPSAwOwogICAgc3RhdGUuZmxvd2luZyA9IGZhbHNlOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgZGVzdHNbaV0uZW1pdCgndW5waXBlJywgdGhpcywgdW5waXBlSW5mbyk7CiAgICB9cmV0dXJuIHRoaXM7CiAgfQoKICAvLyB0cnkgdG8gZmluZCB0aGUgcmlnaHQgb25lLgogIHZhciBpbmRleCA9IGluZGV4T2Yoc3RhdGUucGlwZXMsIGRlc3QpOwogIGlmIChpbmRleCA9PT0gLTEpIHJldHVybiB0aGlzOwoKICBzdGF0ZS5waXBlcy5zcGxpY2UoaW5kZXgsIDEpOwogIHN0YXRlLnBpcGVzQ291bnQgLT0gMTsKICBpZiAoc3RhdGUucGlwZXNDb3VudCA9PT0gMSkgc3RhdGUucGlwZXMgPSBzdGF0ZS5waXBlc1swXTsKCiAgZGVzdC5lbWl0KCd1bnBpcGUnLCB0aGlzLCB1bnBpcGVJbmZvKTsKCiAgcmV0dXJuIHRoaXM7Cn07CgovLyBzZXQgdXAgZGF0YSBldmVudHMgaWYgdGhleSBhcmUgYXNrZWQgZm9yCi8vIEVuc3VyZSByZWFkYWJsZSBsaXN0ZW5lcnMgZXZlbnR1YWxseSBnZXQgc29tZXRoaW5nClJlYWRhYmxlLnByb3RvdHlwZS5vbiA9IGZ1bmN0aW9uIChldiwgZm4pIHsKICB2YXIgcmVzID0gU3RyZWFtLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMsIGV2LCBmbik7CgogIGlmIChldiA9PT0gJ2RhdGEnKSB7CiAgICAvLyBTdGFydCBmbG93aW5nIG9uIG5leHQgdGljayBpZiBzdHJlYW0gaXNuJ3QgZXhwbGljaXRseSBwYXVzZWQKICAgIGlmICh0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcgIT09IGZhbHNlKSB0aGlzLnJlc3VtZSgpOwogIH0gZWxzZSBpZiAoZXYgPT09ICdyZWFkYWJsZScpIHsKICAgIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7CiAgICBpZiAoIXN0YXRlLmVuZEVtaXR0ZWQgJiYgIXN0YXRlLnJlYWRhYmxlTGlzdGVuaW5nKSB7CiAgICAgIHN0YXRlLnJlYWRhYmxlTGlzdGVuaW5nID0gc3RhdGUubmVlZFJlYWRhYmxlID0gdHJ1ZTsKICAgICAgc3RhdGUuZW1pdHRlZFJlYWRhYmxlID0gZmFsc2U7CiAgICAgIGlmICghc3RhdGUucmVhZGluZykgewogICAgICAgIHByb2Nlc3NOZXh0VGljayhuUmVhZGluZ05leHRUaWNrLCB0aGlzKTsKICAgICAgfSBlbHNlIGlmIChzdGF0ZS5sZW5ndGgpIHsKICAgICAgICBlbWl0UmVhZGFibGUodGhpcyk7CiAgICAgIH0KICAgIH0KICB9CgogIHJldHVybiByZXM7Cn07ClJlYWRhYmxlLnByb3RvdHlwZS5hZGRMaXN0ZW5lciA9IFJlYWRhYmxlLnByb3RvdHlwZS5vbjsKCmZ1bmN0aW9uIG5SZWFkaW5nTmV4dFRpY2soc2VsZikgewogIGRlYnVnKCdyZWFkYWJsZSBuZXh0dGljayByZWFkIDAnKTsKICBzZWxmLnJlYWQoMCk7Cn0KCi8vIHBhdXNlKCkgYW5kIHJlc3VtZSgpIGFyZSByZW1uYW50cyBvZiB0aGUgbGVnYWN5IHJlYWRhYmxlIHN0cmVhbSBBUEkKLy8gSWYgdGhlIHVzZXIgdXNlcyB0aGVtLCB0aGVuIHN3aXRjaCBpbnRvIG9sZCBtb2RlLgpSZWFkYWJsZS5wcm90b3R5cGUucmVzdW1lID0gZnVuY3Rpb24gKCkgewogIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7CiAgaWYgKCFzdGF0ZS5mbG93aW5nKSB7CiAgICBkZWJ1ZygncmVzdW1lJyk7CiAgICBzdGF0ZS5mbG93aW5nID0gdHJ1ZTsKICAgIHJlc3VtZSh0aGlzLCBzdGF0ZSk7CiAgfQogIHJldHVybiB0aGlzOwp9OwoKZnVuY3Rpb24gcmVzdW1lKHN0cmVhbSwgc3RhdGUpIHsKICBpZiAoIXN0YXRlLnJlc3VtZVNjaGVkdWxlZCkgewogICAgc3RhdGUucmVzdW1lU2NoZWR1bGVkID0gdHJ1ZTsKICAgIHByb2Nlc3NOZXh0VGljayhyZXN1bWVfLCBzdHJlYW0sIHN0YXRlKTsKICB9Cn0KCmZ1bmN0aW9uIHJlc3VtZV8oc3RyZWFtLCBzdGF0ZSkgewogIGlmICghc3RhdGUucmVhZGluZykgewogICAgZGVidWcoJ3Jlc3VtZSByZWFkIDAnKTsKICAgIHN0cmVhbS5yZWFkKDApOwogIH0KCiAgc3RhdGUucmVzdW1lU2NoZWR1bGVkID0gZmFsc2U7CiAgc3RhdGUuYXdhaXREcmFpbiA9IDA7CiAgc3RyZWFtLmVtaXQoJ3Jlc3VtZScpOwogIGZsb3coc3RyZWFtKTsKICBpZiAoc3RhdGUuZmxvd2luZyAmJiAhc3RhdGUucmVhZGluZykgc3RyZWFtLnJlYWQoMCk7Cn0KClJlYWRhYmxlLnByb3RvdHlwZS5wYXVzZSA9IGZ1bmN0aW9uICgpIHsKICBkZWJ1ZygnY2FsbCBwYXVzZSBmbG93aW5nPSVqJywgdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nKTsKICBpZiAoZmFsc2UgIT09IHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZykgewogICAgZGVidWcoJ3BhdXNlJyk7CiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcgPSBmYWxzZTsKICAgIHRoaXMuZW1pdCgncGF1c2UnKTsKICB9CiAgcmV0dXJuIHRoaXM7Cn07CgpmdW5jdGlvbiBmbG93KHN0cmVhbSkgewogIHZhciBzdGF0ZSA9IHN0cmVhbS5fcmVhZGFibGVTdGF0ZTsKICBkZWJ1ZygnZmxvdycsIHN0YXRlLmZsb3dpbmcpOwogIHdoaWxlIChzdGF0ZS5mbG93aW5nICYmIHN0cmVhbS5yZWFkKCkgIT09IG51bGwpIHt9Cn0KCi8vIHdyYXAgYW4gb2xkLXN0eWxlIHN0cmVhbSBhcyB0aGUgYXN5bmMgZGF0YSBzb3VyY2UuCi8vIFRoaXMgaXMgKm5vdCogcGFydCBvZiB0aGUgcmVhZGFibGUgc3RyZWFtIGludGVyZmFjZS4KLy8gSXQgaXMgYW4gdWdseSB1bmZvcnR1bmF0ZSBtZXNzIG9mIGhpc3RvcnkuClJlYWRhYmxlLnByb3RvdHlwZS53cmFwID0gZnVuY3Rpb24gKHN0cmVhbSkgewogIHZhciBfdGhpcyA9IHRoaXM7CgogIHZhciBzdGF0ZSA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7CiAgdmFyIHBhdXNlZCA9IGZhbHNlOwoKICBzdHJlYW0ub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHsKICAgIGRlYnVnKCd3cmFwcGVkIGVuZCcpOwogICAgaWYgKHN0YXRlLmRlY29kZXIgJiYgIXN0YXRlLmVuZGVkKSB7CiAgICAgIHZhciBjaHVuayA9IHN0YXRlLmRlY29kZXIuZW5kKCk7CiAgICAgIGlmIChjaHVuayAmJiBjaHVuay5sZW5ndGgpIF90aGlzLnB1c2goY2h1bmspOwogICAgfQoKICAgIF90aGlzLnB1c2gobnVsbCk7CiAgfSk7CgogIHN0cmVhbS5vbignZGF0YScsIGZ1bmN0aW9uIChjaHVuaykgewogICAgZGVidWcoJ3dyYXBwZWQgZGF0YScpOwogICAgaWYgKHN0YXRlLmRlY29kZXIpIGNodW5rID0gc3RhdGUuZGVjb2Rlci53cml0ZShjaHVuayk7CgogICAgLy8gZG9uJ3Qgc2tpcCBvdmVyIGZhbHN5IHZhbHVlcyBpbiBvYmplY3RNb2RlCiAgICBpZiAoc3RhdGUub2JqZWN0TW9kZSAmJiAoY2h1bmsgPT09IG51bGwgfHwgY2h1bmsgPT09IHVuZGVmaW5lZCkpIHJldHVybjtlbHNlIGlmICghc3RhdGUub2JqZWN0TW9kZSAmJiAoIWNodW5rIHx8ICFjaHVuay5sZW5ndGgpKSByZXR1cm47CgogICAgdmFyIHJldCA9IF90aGlzLnB1c2goY2h1bmspOwogICAgaWYgKCFyZXQpIHsKICAgICAgcGF1c2VkID0gdHJ1ZTsKICAgICAgc3RyZWFtLnBhdXNlKCk7CiAgICB9CiAgfSk7CgogIC8vIHByb3h5IGFsbCB0aGUgb3RoZXIgbWV0aG9kcy4KICAvLyBpbXBvcnRhbnQgd2hlbiB3cmFwcGluZyBmaWx0ZXJzIGFuZCBkdXBsZXhlcy4KICBmb3IgKHZhciBpIGluIHN0cmVhbSkgewogICAgaWYgKHRoaXNbaV0gPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygc3RyZWFtW2ldID09PSAnZnVuY3Rpb24nKSB7CiAgICAgIHRoaXNbaV0gPSBmdW5jdGlvbiAobWV0aG9kKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiBzdHJlYW1bbWV0aG9kXS5hcHBseShzdHJlYW0sIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfShpKTsKICAgIH0KICB9CgogIC8vIHByb3h5IGNlcnRhaW4gaW1wb3J0YW50IGV2ZW50cy4KICBmb3IgKHZhciBuID0gMDsgbiA8IGtQcm94eUV2ZW50cy5sZW5ndGg7IG4rKykgewogICAgc3RyZWFtLm9uKGtQcm94eUV2ZW50c1tuXSwgdGhpcy5lbWl0LmJpbmQodGhpcywga1Byb3h5RXZlbnRzW25dKSk7CiAgfQoKICAvLyB3aGVuIHdlIHRyeSB0byBjb25zdW1lIHNvbWUgbW9yZSBieXRlcywgc2ltcGx5IHVucGF1c2UgdGhlCiAgLy8gdW5kZXJseWluZyBzdHJlYW0uCiAgdGhpcy5fcmVhZCA9IGZ1bmN0aW9uIChuKSB7CiAgICBkZWJ1Zygnd3JhcHBlZCBfcmVhZCcsIG4pOwogICAgaWYgKHBhdXNlZCkgewogICAgICBwYXVzZWQgPSBmYWxzZTsKICAgICAgc3RyZWFtLnJlc3VtZSgpOwogICAgfQogIH07CgogIHJldHVybiB0aGlzOwp9OwoKLy8gZXhwb3NlZCBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LgpSZWFkYWJsZS5fZnJvbUxpc3QgPSBmcm9tTGlzdDsKCi8vIFBsdWNrIG9mZiBuIGJ5dGVzIGZyb20gYW4gYXJyYXkgb2YgYnVmZmVycy4KLy8gTGVuZ3RoIGlzIHRoZSBjb21iaW5lZCBsZW5ndGhzIG9mIGFsbCB0aGUgYnVmZmVycyBpbiB0aGUgbGlzdC4KLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmcKLy8gY2hhbmdlcyB0byB0aGUgZnVuY3Rpb24gYm9keS4KZnVuY3Rpb24gZnJvbUxpc3Qobiwgc3RhdGUpIHsKICAvLyBub3RoaW5nIGJ1ZmZlcmVkCiAgaWYgKHN0YXRlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7CgogIHZhciByZXQ7CiAgaWYgKHN0YXRlLm9iamVjdE1vZGUpIHJldCA9IHN0YXRlLmJ1ZmZlci5zaGlmdCgpO2Vsc2UgaWYgKCFuIHx8IG4gPj0gc3RhdGUubGVuZ3RoKSB7CiAgICAvLyByZWFkIGl0IGFsbCwgdHJ1bmNhdGUgdGhlIGxpc3QKICAgIGlmIChzdGF0ZS5kZWNvZGVyKSByZXQgPSBzdGF0ZS5idWZmZXIuam9pbignJyk7ZWxzZSBpZiAoc3RhdGUuYnVmZmVyLmxlbmd0aCA9PT0gMSkgcmV0ID0gc3RhdGUuYnVmZmVyLmhlYWQuZGF0YTtlbHNlIHJldCA9IHN0YXRlLmJ1ZmZlci5jb25jYXQoc3RhdGUubGVuZ3RoKTsKICAgIHN0YXRlLmJ1ZmZlci5jbGVhcigpOwogIH0gZWxzZSB7CiAgICAvLyByZWFkIHBhcnQgb2YgbGlzdAogICAgcmV0ID0gZnJvbUxpc3RQYXJ0aWFsKG4sIHN0YXRlLmJ1ZmZlciwgc3RhdGUuZGVjb2Rlcik7CiAgfQoKICByZXR1cm4gcmV0Owp9CgovLyBFeHRyYWN0cyBvbmx5IGVub3VnaCBidWZmZXJlZCBkYXRhIHRvIHNhdGlzZnkgdGhlIGFtb3VudCByZXF1ZXN0ZWQuCi8vIFRoaXMgZnVuY3Rpb24gaXMgZGVzaWduZWQgdG8gYmUgaW5saW5hYmxlLCBzbyBwbGVhc2UgdGFrZSBjYXJlIHdoZW4gbWFraW5nCi8vIGNoYW5nZXMgdG8gdGhlIGZ1bmN0aW9uIGJvZHkuCmZ1bmN0aW9uIGZyb21MaXN0UGFydGlhbChuLCBsaXN0LCBoYXNTdHJpbmdzKSB7CiAgdmFyIHJldDsKICBpZiAobiA8IGxpc3QuaGVhZC5kYXRhLmxlbmd0aCkgewogICAgLy8gc2xpY2UgaXMgdGhlIHNhbWUgZm9yIGJ1ZmZlcnMgYW5kIHN0cmluZ3MKICAgIHJldCA9IGxpc3QuaGVhZC5kYXRhLnNsaWNlKDAsIG4pOwogICAgbGlzdC5oZWFkLmRhdGEgPSBsaXN0LmhlYWQuZGF0YS5zbGljZShuKTsKICB9IGVsc2UgaWYgKG4gPT09IGxpc3QuaGVhZC5kYXRhLmxlbmd0aCkgewogICAgLy8gZmlyc3QgY2h1bmsgaXMgYSBwZXJmZWN0IG1hdGNoCiAgICByZXQgPSBsaXN0LnNoaWZ0KCk7CiAgfSBlbHNlIHsKICAgIC8vIHJlc3VsdCBzcGFucyBtb3JlIHRoYW4gb25lIGJ1ZmZlcgogICAgcmV0ID0gaGFzU3RyaW5ncyA/IGNvcHlGcm9tQnVmZmVyU3RyaW5nKG4sIGxpc3QpIDogY29weUZyb21CdWZmZXIobiwgbGlzdCk7CiAgfQogIHJldHVybiByZXQ7Cn0KCi8vIENvcGllcyBhIHNwZWNpZmllZCBhbW91bnQgb2YgY2hhcmFjdGVycyBmcm9tIHRoZSBsaXN0IG9mIGJ1ZmZlcmVkIGRhdGEKLy8gY2h1bmtzLgovLyBUaGlzIGZ1bmN0aW9uIGlzIGRlc2lnbmVkIHRvIGJlIGlubGluYWJsZSwgc28gcGxlYXNlIHRha2UgY2FyZSB3aGVuIG1ha2luZwovLyBjaGFuZ2VzIHRvIHRoZSBmdW5jdGlvbiBib2R5LgpmdW5jdGlvbiBjb3B5RnJvbUJ1ZmZlclN0cmluZyhuLCBsaXN0KSB7CiAgdmFyIHAgPSBsaXN0LmhlYWQ7CiAgdmFyIGMgPSAxOwogIHZhciByZXQgPSBwLmRhdGE7CiAgbiAtPSByZXQubGVuZ3RoOwogIHdoaWxlIChwID0gcC5uZXh0KSB7CiAgICB2YXIgc3RyID0gcC5kYXRhOwogICAgdmFyIG5iID0gbiA+IHN0ci5sZW5ndGggPyBzdHIubGVuZ3RoIDogbjsKICAgIGlmIChuYiA9PT0gc3RyLmxlbmd0aCkgcmV0ICs9IHN0cjtlbHNlIHJldCArPSBzdHIuc2xpY2UoMCwgbik7CiAgICBuIC09IG5iOwogICAgaWYgKG4gPT09IDApIHsKICAgICAgaWYgKG5iID09PSBzdHIubGVuZ3RoKSB7CiAgICAgICAgKytjOwogICAgICAgIGlmIChwLm5leHQpIGxpc3QuaGVhZCA9IHAubmV4dDtlbHNlIGxpc3QuaGVhZCA9IGxpc3QudGFpbCA9IG51bGw7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbGlzdC5oZWFkID0gcDsKICAgICAgICBwLmRhdGEgPSBzdHIuc2xpY2UobmIpOwogICAgICB9CiAgICAgIGJyZWFrOwogICAgfQogICAgKytjOwogIH0KICBsaXN0Lmxlbmd0aCAtPSBjOwogIHJldHVybiByZXQ7Cn0KCi8vIENvcGllcyBhIHNwZWNpZmllZCBhbW91bnQgb2YgYnl0ZXMgZnJvbSB0aGUgbGlzdCBvZiBidWZmZXJlZCBkYXRhIGNodW5rcy4KLy8gVGhpcyBmdW5jdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBpbmxpbmFibGUsIHNvIHBsZWFzZSB0YWtlIGNhcmUgd2hlbiBtYWtpbmcKLy8gY2hhbmdlcyB0byB0aGUgZnVuY3Rpb24gYm9keS4KZnVuY3Rpb24gY29weUZyb21CdWZmZXIobiwgbGlzdCkgewogIHZhciByZXQgPSBCdWZmZXIuYWxsb2NVbnNhZmUobik7CiAgdmFyIHAgPSBsaXN0LmhlYWQ7CiAgdmFyIGMgPSAxOwogIHAuZGF0YS5jb3B5KHJldCk7CiAgbiAtPSBwLmRhdGEubGVuZ3RoOwogIHdoaWxlIChwID0gcC5uZXh0KSB7CiAgICB2YXIgYnVmID0gcC5kYXRhOwogICAgdmFyIG5iID0gbiA+IGJ1Zi5sZW5ndGggPyBidWYubGVuZ3RoIDogbjsKICAgIGJ1Zi5jb3B5KHJldCwgcmV0Lmxlbmd0aCAtIG4sIDAsIG5iKTsKICAgIG4gLT0gbmI7CiAgICBpZiAobiA9PT0gMCkgewogICAgICBpZiAobmIgPT09IGJ1Zi5sZW5ndGgpIHsKICAgICAgICArK2M7CiAgICAgICAgaWYgKHAubmV4dCkgbGlzdC5oZWFkID0gcC5uZXh0O2Vsc2UgbGlzdC5oZWFkID0gbGlzdC50YWlsID0gbnVsbDsKICAgICAgfSBlbHNlIHsKICAgICAgICBsaXN0LmhlYWQgPSBwOwogICAgICAgIHAuZGF0YSA9IGJ1Zi5zbGljZShuYik7CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgICArK2M7CiAgfQogIGxpc3QubGVuZ3RoIC09IGM7CiAgcmV0dXJuIHJldDsKfQoKZnVuY3Rpb24gZW5kUmVhZGFibGUoc3RyZWFtKSB7CiAgdmFyIHN0YXRlID0gc3RyZWFtLl9yZWFkYWJsZVN0YXRlOwoKICAvLyBJZiB3ZSBnZXQgaGVyZSBiZWZvcmUgY29uc3VtaW5nIGFsbCB0aGUgYnl0ZXMsIHRoZW4gdGhhdCBpcyBhCiAgLy8gYnVnIGluIG5vZGUuICBTaG91bGQgbmV2ZXIgaGFwcGVuLgogIGlmIChzdGF0ZS5sZW5ndGggPiAwKSB0aHJvdyBuZXcgRXJyb3IoJyJlbmRSZWFkYWJsZSgpIiBjYWxsZWQgb24gbm9uLWVtcHR5IHN0cmVhbScpOwoKICBpZiAoIXN0YXRlLmVuZEVtaXR0ZWQpIHsKICAgIHN0YXRlLmVuZGVkID0gdHJ1ZTsKICAgIHByb2Nlc3NOZXh0VGljayhlbmRSZWFkYWJsZU5ULCBzdGF0ZSwgc3RyZWFtKTsKICB9Cn0KCmZ1bmN0aW9uIGVuZFJlYWRhYmxlTlQoc3RhdGUsIHN0cmVhbSkgewogIC8vIENoZWNrIHRoYXQgd2UgZGlkbid0IGdldCBvbmUgbGFzdCB1bnNoaWZ0LgogIGlmICghc3RhdGUuZW5kRW1pdHRlZCAmJiBzdGF0ZS5sZW5ndGggPT09IDApIHsKICAgIHN0YXRlLmVuZEVtaXR0ZWQgPSB0cnVlOwogICAgc3RyZWFtLnJlYWRhYmxlID0gZmFsc2U7CiAgICBzdHJlYW0uZW1pdCgnZW5kJyk7CiAgfQp9CgpmdW5jdGlvbiBmb3JFYWNoKHhzLCBmKSB7CiAgZm9yICh2YXIgaSA9IDAsIGwgPSB4cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKICAgIGYoeHNbaV0sIGkpOwogIH0KfQoKZnVuY3Rpb24gaW5kZXhPZih4cywgeCkgewogIGZvciAodmFyIGkgPSAwLCBsID0geHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICBpZiAoeHNbaV0gPT09IHgpIHJldHVybiBpOwogIH0KICByZXR1cm4gLTE7Cn0KLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oNyksIF9fd2VicGFja19yZXF1aXJlX18oMTEpKSkKCi8qKiovIH0pLAovKiA4NCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMzEpLkV2ZW50RW1pdHRlcjsKCgovKioqLyB9KSwKLyogODUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCi8qPHJlcGxhY2VtZW50PiovCgp2YXIgcHJvY2Vzc05leHRUaWNrID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMikubmV4dFRpY2s7Ci8qPC9yZXBsYWNlbWVudD4qLwoKLy8gdW5kb2N1bWVudGVkIGNiKCkgQVBJLCBuZWVkZWQgZm9yIGNvcmUsIG5vdCBmb3IgcHVibGljIEFQSQpmdW5jdGlvbiBkZXN0cm95KGVyciwgY2IpIHsKICB2YXIgX3RoaXMgPSB0aGlzOwoKICB2YXIgcmVhZGFibGVEZXN0cm95ZWQgPSB0aGlzLl9yZWFkYWJsZVN0YXRlICYmIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkOwogIHZhciB3cml0YWJsZURlc3Ryb3llZCA9IHRoaXMuX3dyaXRhYmxlU3RhdGUgJiYgdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ7CgogIGlmIChyZWFkYWJsZURlc3Ryb3llZCB8fCB3cml0YWJsZURlc3Ryb3llZCkgewogICAgaWYgKGNiKSB7CiAgICAgIGNiKGVycik7CiAgICB9IGVsc2UgaWYgKGVyciAmJiAoIXRoaXMuX3dyaXRhYmxlU3RhdGUgfHwgIXRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkKSkgewogICAgICBwcm9jZXNzTmV4dFRpY2soZW1pdEVycm9yTlQsIHRoaXMsIGVycik7CiAgICB9CiAgICByZXR1cm4gdGhpczsKICB9CgogIC8vIHdlIHNldCBkZXN0cm95ZWQgdG8gdHJ1ZSBiZWZvcmUgZmlyaW5nIGVycm9yIGNhbGxiYWNrcyBpbiBvcmRlcgogIC8vIHRvIG1ha2UgaXQgcmUtZW50cmFuY2Ugc2FmZSBpbiBjYXNlIGRlc3Ryb3koKSBpcyBjYWxsZWQgd2l0aGluIGNhbGxiYWNrcwoKICBpZiAodGhpcy5fcmVhZGFibGVTdGF0ZSkgewogICAgdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQgPSB0cnVlOwogIH0KCiAgLy8gaWYgdGhpcyBpcyBhIGR1cGxleCBzdHJlYW0gbWFyayB0aGUgd3JpdGFibGUgcGFydCBhcyBkZXN0cm95ZWQgYXMgd2VsbAogIGlmICh0aGlzLl93cml0YWJsZVN0YXRlKSB7CiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZCA9IHRydWU7CiAgfQoKICB0aGlzLl9kZXN0cm95KGVyciB8fCBudWxsLCBmdW5jdGlvbiAoZXJyKSB7CiAgICBpZiAoIWNiICYmIGVycikgewogICAgICBwcm9jZXNzTmV4dFRpY2soZW1pdEVycm9yTlQsIF90aGlzLCBlcnIpOwogICAgICBpZiAoX3RoaXMuX3dyaXRhYmxlU3RhdGUpIHsKICAgICAgICBfdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQgPSB0cnVlOwogICAgICB9CiAgICB9IGVsc2UgaWYgKGNiKSB7CiAgICAgIGNiKGVycik7CiAgICB9CiAgfSk7CgogIHJldHVybiB0aGlzOwp9CgpmdW5jdGlvbiB1bmRlc3Ryb3koKSB7CiAgaWYgKHRoaXMuX3JlYWRhYmxlU3RhdGUpIHsKICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkID0gZmFsc2U7CiAgICB0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmcgPSBmYWxzZTsKICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQgPSBmYWxzZTsKICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCA9IGZhbHNlOwogIH0KCiAgaWYgKHRoaXMuX3dyaXRhYmxlU3RhdGUpIHsKICAgIHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkID0gZmFsc2U7CiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkID0gZmFsc2U7CiAgICB0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZyA9IGZhbHNlOwogICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZCA9IGZhbHNlOwogICAgdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQgPSBmYWxzZTsKICB9Cn0KCmZ1bmN0aW9uIGVtaXRFcnJvck5UKHNlbGYsIGVycikgewogIHNlbGYuZW1pdCgnZXJyb3InLCBlcnIpOwp9Cgptb2R1bGUuZXhwb3J0cyA9IHsKICBkZXN0cm95OiBkZXN0cm95LAogIHVuZGVzdHJveTogdW5kZXN0cm95Cn07CgovKioqLyB9KSwKLyogODYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovLyBDb3B5cmlnaHQgSm95ZW50LCBJbmMuIGFuZCBvdGhlciBOb2RlIGNvbnRyaWJ1dG9ycy4KLy8KLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKLy8gY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQovLyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLy8gZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdAovLyBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUKLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci8vCi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgovLwovLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUwovLyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4KLy8gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sCi8vIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUgovLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFCi8vIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCgovLyBhIHRyYW5zZm9ybSBzdHJlYW0gaXMgYSByZWFkYWJsZS93cml0YWJsZSBzdHJlYW0gd2hlcmUgeW91IGRvCi8vIHNvbWV0aGluZyB3aXRoIHRoZSBkYXRhLiAgU29tZXRpbWVzIGl0J3MgY2FsbGVkIGEgImZpbHRlciIsCi8vIGJ1dCB0aGF0J3Mgbm90IGEgZ3JlYXQgbmFtZSBmb3IgaXQsIHNpbmNlIHRoYXQgaW1wbGllcyBhIHRoaW5nIHdoZXJlCi8vIHNvbWUgYml0cyBwYXNzIHRocm91Z2gsIGFuZCBvdGhlcnMgYXJlIHNpbXBseSBpZ25vcmVkLiAgKFRoYXQgd291bGQKLy8gYmUgYSB2YWxpZCBleGFtcGxlIG9mIGEgdHJhbnNmb3JtLCBvZiBjb3Vyc2UuKQovLwovLyBXaGlsZSB0aGUgb3V0cHV0IGlzIGNhdXNhbGx5IHJlbGF0ZWQgdG8gdGhlIGlucHV0LCBpdCdzIG5vdCBhCi8vIG5lY2Vzc2FyaWx5IHN5bW1ldHJpYyBvciBzeW5jaHJvbm91cyB0cmFuc2Zvcm1hdGlvbi4gIEZvciBleGFtcGxlLAovLyBhIHpsaWIgc3RyZWFtIG1pZ2h0IHRha2UgbXVsdGlwbGUgcGxhaW4tdGV4dCB3cml0ZXMoKSwgYW5kIHRoZW4KLy8gZW1pdCBhIHNpbmdsZSBjb21wcmVzc2VkIGNodW5rIHNvbWUgdGltZSBpbiB0aGUgZnV0dXJlLgovLwovLyBIZXJlJ3MgaG93IHRoaXMgd29ya3M6Ci8vCi8vIFRoZSBUcmFuc2Zvcm0gc3RyZWFtIGhhcyBhbGwgdGhlIGFzcGVjdHMgb2YgdGhlIHJlYWRhYmxlIGFuZCB3cml0YWJsZQovLyBzdHJlYW0gY2xhc3Nlcy4gIFdoZW4geW91IHdyaXRlKGNodW5rKSwgdGhhdCBjYWxscyBfd3JpdGUoY2h1bmssY2IpCi8vIGludGVybmFsbHksIGFuZCByZXR1cm5zIGZhbHNlIGlmIHRoZXJlJ3MgYSBsb3Qgb2YgcGVuZGluZyB3cml0ZXMKLy8gYnVmZmVyZWQgdXAuICBXaGVuIHlvdSBjYWxsIHJlYWQoKSwgdGhhdCBjYWxscyBfcmVhZChuKSB1bnRpbAovLyB0aGVyZSdzIGVub3VnaCBwZW5kaW5nIHJlYWRhYmxlIGRhdGEgYnVmZmVyZWQgdXAuCi8vCi8vIEluIGEgdHJhbnNmb3JtIHN0cmVhbSwgdGhlIHdyaXR0ZW4gZGF0YSBpcyBwbGFjZWQgaW4gYSBidWZmZXIuICBXaGVuCi8vIF9yZWFkKG4pIGlzIGNhbGxlZCwgaXQgdHJhbnNmb3JtcyB0aGUgcXVldWVkIHVwIGRhdGEsIGNhbGxpbmcgdGhlCi8vIGJ1ZmZlcmVkIF93cml0ZSBjYidzIGFzIGl0IGNvbnN1bWVzIGNodW5rcy4gIElmIGNvbnN1bWluZyBhIHNpbmdsZQovLyB3cml0dGVuIGNodW5rIHdvdWxkIHJlc3VsdCBpbiBtdWx0aXBsZSBvdXRwdXQgY2h1bmtzLCB0aGVuIHRoZSBmaXJzdAovLyBvdXRwdXR0ZWQgYml0IGNhbGxzIHRoZSByZWFkY2IsIGFuZCBzdWJzZXF1ZW50IGNodW5rcyBqdXN0IGdvIGludG8KLy8gdGhlIHJlYWQgYnVmZmVyLCBhbmQgd2lsbCBjYXVzZSBpdCB0byBlbWl0ICdyZWFkYWJsZScgaWYgbmVjZXNzYXJ5LgovLwovLyBUaGlzIHdheSwgYmFjay1wcmVzc3VyZSBpcyBhY3R1YWxseSBkZXRlcm1pbmVkIGJ5IHRoZSByZWFkaW5nIHNpZGUsCi8vIHNpbmNlIF9yZWFkIGhhcyB0byBiZSBjYWxsZWQgdG8gc3RhcnQgcHJvY2Vzc2luZyBhIG5ldyBjaHVuay4gIEhvd2V2ZXIsCi8vIGEgcGF0aG9sb2dpY2FsIGluZmxhdGUgdHlwZSBvZiB0cmFuc2Zvcm0gY2FuIGNhdXNlIGV4Y2Vzc2l2ZSBidWZmZXJpbmcKLy8gaGVyZS4gIEZvciBleGFtcGxlLCBpbWFnaW5lIGEgc3RyZWFtIHdoZXJlIGV2ZXJ5IGJ5dGUgb2YgaW5wdXQgaXMKLy8gaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlciBmcm9tIDAtMjU1LCBhbmQgdGhlbiByZXN1bHRzIGluIHRoYXQgbWFueQovLyBieXRlcyBvZiBvdXRwdXQuICBXcml0aW5nIHRoZSA0IGJ5dGVzIHtmZixmZixmZixmZn0gd291bGQgcmVzdWx0IGluCi8vIDFrYiBvZiBkYXRhIGJlaW5nIG91dHB1dC4gIEluIHRoaXMgY2FzZSwgeW91IGNvdWxkIHdyaXRlIGEgdmVyeSBzbWFsbAovLyBhbW91bnQgb2YgaW5wdXQsIGFuZCBlbmQgdXAgd2l0aCBhIHZlcnkgbGFyZ2UgYW1vdW50IG9mIG91dHB1dC4gIEluCi8vIHN1Y2ggYSBwYXRob2xvZ2ljYWwgaW5mbGF0aW5nIG1lY2hhbmlzbSwgdGhlcmUnZCBiZSBubyB3YXkgdG8gdGVsbAovLyB0aGUgc3lzdGVtIHRvIHN0b3AgZG9pbmcgdGhlIHRyYW5zZm9ybS4gIEEgc2luZ2xlIDRNQiB3cml0ZSBjb3VsZAovLyBjYXVzZSB0aGUgc3lzdGVtIHRvIHJ1biBvdXQgb2YgbWVtb3J5LgovLwovLyBIb3dldmVyLCBldmVuIGluIHN1Y2ggYSBwYXRob2xvZ2ljYWwgY2FzZSwgb25seSBhIHNpbmdsZSB3cml0dGVuIGNodW5rCi8vIHdvdWxkIGJlIGNvbnN1bWVkLCBhbmQgdGhlbiB0aGUgcmVzdCB3b3VsZCB3YWl0ICh1bi10cmFuc2Zvcm1lZCkgdW50aWwKLy8gdGhlIHJlc3VsdHMgb2YgdGhlIHByZXZpb3VzIHRyYW5zZm9ybWVkIGNodW5rIHdlcmUgY29uc3VtZWQuCgoKCm1vZHVsZS5leHBvcnRzID0gVHJhbnNmb3JtOwoKdmFyIER1cGxleCA9IF9fd2VicGFja19yZXF1aXJlX18oMTYpOwoKLyo8cmVwbGFjZW1lbnQ+Ki8KdmFyIHV0aWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI1KTsKdXRpbC5pbmhlcml0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjEpOwovKjwvcmVwbGFjZW1lbnQ+Ki8KCnV0aWwuaW5oZXJpdHMoVHJhbnNmb3JtLCBEdXBsZXgpOwoKZnVuY3Rpb24gYWZ0ZXJUcmFuc2Zvcm0oZXIsIGRhdGEpIHsKICB2YXIgdHMgPSB0aGlzLl90cmFuc2Zvcm1TdGF0ZTsKICB0cy50cmFuc2Zvcm1pbmcgPSBmYWxzZTsKCiAgdmFyIGNiID0gdHMud3JpdGVjYjsKCiAgaWYgKCFjYikgewogICAgcmV0dXJuIHRoaXMuZW1pdCgnZXJyb3InLCBuZXcgRXJyb3IoJ3dyaXRlIGNhbGxiYWNrIGNhbGxlZCBtdWx0aXBsZSB0aW1lcycpKTsKICB9CgogIHRzLndyaXRlY2h1bmsgPSBudWxsOwogIHRzLndyaXRlY2IgPSBudWxsOwoKICBpZiAoZGF0YSAhPSBudWxsKSAvLyBzaW5nbGUgZXF1YWxzIGNoZWNrIGZvciBib3RoIGBudWxsYCBhbmQgYHVuZGVmaW5lZGAKICAgIHRoaXMucHVzaChkYXRhKTsKCiAgY2IoZXIpOwoKICB2YXIgcnMgPSB0aGlzLl9yZWFkYWJsZVN0YXRlOwogIHJzLnJlYWRpbmcgPSBmYWxzZTsKICBpZiAocnMubmVlZFJlYWRhYmxlIHx8IHJzLmxlbmd0aCA8IHJzLmhpZ2hXYXRlck1hcmspIHsKICAgIHRoaXMuX3JlYWQocnMuaGlnaFdhdGVyTWFyayk7CiAgfQp9CgpmdW5jdGlvbiBUcmFuc2Zvcm0ob3B0aW9ucykgewogIGlmICghKHRoaXMgaW5zdGFuY2VvZiBUcmFuc2Zvcm0pKSByZXR1cm4gbmV3IFRyYW5zZm9ybShvcHRpb25zKTsKCiAgRHVwbGV4LmNhbGwodGhpcywgb3B0aW9ucyk7CgogIHRoaXMuX3RyYW5zZm9ybVN0YXRlID0gewogICAgYWZ0ZXJUcmFuc2Zvcm06IGFmdGVyVHJhbnNmb3JtLmJpbmQodGhpcyksCiAgICBuZWVkVHJhbnNmb3JtOiBmYWxzZSwKICAgIHRyYW5zZm9ybWluZzogZmFsc2UsCiAgICB3cml0ZWNiOiBudWxsLAogICAgd3JpdGVjaHVuazogbnVsbCwKICAgIHdyaXRlZW5jb2Rpbmc6IG51bGwKICB9OwoKICAvLyBzdGFydCBvdXQgYXNraW5nIGZvciBhIHJlYWRhYmxlIGV2ZW50IG9uY2UgZGF0YSBpcyB0cmFuc2Zvcm1lZC4KICB0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZSA9IHRydWU7CgogIC8vIHdlIGhhdmUgaW1wbGVtZW50ZWQgdGhlIF9yZWFkIG1ldGhvZCwgYW5kIGRvbmUgdGhlIG90aGVyIHRoaW5ncwogIC8vIHRoYXQgUmVhZGFibGUgd2FudHMgYmVmb3JlIHRoZSBmaXJzdCBfcmVhZCBjYWxsLCBzbyB1bnNldCB0aGUKICAvLyBzeW5jIGd1YXJkIGZsYWcuCiAgdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jID0gZmFsc2U7CgogIGlmIChvcHRpb25zKSB7CiAgICBpZiAodHlwZW9mIG9wdGlvbnMudHJhbnNmb3JtID09PSAnZnVuY3Rpb24nKSB0aGlzLl90cmFuc2Zvcm0gPSBvcHRpb25zLnRyYW5zZm9ybTsKCiAgICBpZiAodHlwZW9mIG9wdGlvbnMuZmx1c2ggPT09ICdmdW5jdGlvbicpIHRoaXMuX2ZsdXNoID0gb3B0aW9ucy5mbHVzaDsKICB9CgogIC8vIFdoZW4gdGhlIHdyaXRhYmxlIHNpZGUgZmluaXNoZXMsIHRoZW4gZmx1c2ggb3V0IGFueXRoaW5nIHJlbWFpbmluZy4KICB0aGlzLm9uKCdwcmVmaW5pc2gnLCBwcmVmaW5pc2gpOwp9CgpmdW5jdGlvbiBwcmVmaW5pc2goKSB7CiAgdmFyIF90aGlzID0gdGhpczsKCiAgaWYgKHR5cGVvZiB0aGlzLl9mbHVzaCA9PT0gJ2Z1bmN0aW9uJykgewogICAgdGhpcy5fZmx1c2goZnVuY3Rpb24gKGVyLCBkYXRhKSB7CiAgICAgIGRvbmUoX3RoaXMsIGVyLCBkYXRhKTsKICAgIH0pOwogIH0gZWxzZSB7CiAgICBkb25lKHRoaXMsIG51bGwsIG51bGwpOwogIH0KfQoKVHJhbnNmb3JtLnByb3RvdHlwZS5wdXNoID0gZnVuY3Rpb24gKGNodW5rLCBlbmNvZGluZykgewogIHRoaXMuX3RyYW5zZm9ybVN0YXRlLm5lZWRUcmFuc2Zvcm0gPSBmYWxzZTsKICByZXR1cm4gRHVwbGV4LnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcywgY2h1bmssIGVuY29kaW5nKTsKfTsKCi8vIFRoaXMgaXMgdGhlIHBhcnQgd2hlcmUgeW91IGRvIHN0dWZmIQovLyBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uIGluIGltcGxlbWVudGF0aW9uIGNsYXNzZXMuCi8vICdjaHVuaycgaXMgYW4gaW5wdXQgY2h1bmsuCi8vCi8vIENhbGwgYHB1c2gobmV3Q2h1bmspYCB0byBwYXNzIGFsb25nIHRyYW5zZm9ybWVkIG91dHB1dAovLyB0byB0aGUgcmVhZGFibGUgc2lkZS4gIFlvdSBtYXkgY2FsbCAncHVzaCcgemVybyBvciBtb3JlIHRpbWVzLgovLwovLyBDYWxsIGBjYihlcnIpYCB3aGVuIHlvdSBhcmUgZG9uZSB3aXRoIHRoaXMgY2h1bmsuICBJZiB5b3UgcGFzcwovLyBhbiBlcnJvciwgdGhlbiB0aGF0J2xsIHB1dCB0aGUgaHVydCBvbiB0aGUgd2hvbGUgb3BlcmF0aW9uLiAgSWYgeW91Ci8vIG5ldmVyIGNhbGwgY2IoKSwgdGhlbiB5b3UnbGwgbmV2ZXIgZ2V0IGFub3RoZXIgY2h1bmsuClRyYW5zZm9ybS5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7CiAgdGhyb3cgbmV3IEVycm9yKCdfdHJhbnNmb3JtKCkgaXMgbm90IGltcGxlbWVudGVkJyk7Cn07CgpUcmFuc2Zvcm0ucHJvdG90eXBlLl93cml0ZSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7CiAgdmFyIHRzID0gdGhpcy5fdHJhbnNmb3JtU3RhdGU7CiAgdHMud3JpdGVjYiA9IGNiOwogIHRzLndyaXRlY2h1bmsgPSBjaHVuazsKICB0cy53cml0ZWVuY29kaW5nID0gZW5jb2Rpbmc7CiAgaWYgKCF0cy50cmFuc2Zvcm1pbmcpIHsKICAgIHZhciBycyA9IHRoaXMuX3JlYWRhYmxlU3RhdGU7CiAgICBpZiAodHMubmVlZFRyYW5zZm9ybSB8fCBycy5uZWVkUmVhZGFibGUgfHwgcnMubGVuZ3RoIDwgcnMuaGlnaFdhdGVyTWFyaykgdGhpcy5fcmVhZChycy5oaWdoV2F0ZXJNYXJrKTsKICB9Cn07CgovLyBEb2Vzbid0IG1hdHRlciB3aGF0IHRoZSBhcmdzIGFyZSBoZXJlLgovLyBfdHJhbnNmb3JtIGRvZXMgYWxsIHRoZSB3b3JrLgovLyBUaGF0IHdlIGdvdCBoZXJlIG1lYW5zIHRoYXQgdGhlIHJlYWRhYmxlIHNpZGUgd2FudHMgbW9yZSBkYXRhLgpUcmFuc2Zvcm0ucHJvdG90eXBlLl9yZWFkID0gZnVuY3Rpb24gKG4pIHsKICB2YXIgdHMgPSB0aGlzLl90cmFuc2Zvcm1TdGF0ZTsKCiAgaWYgKHRzLndyaXRlY2h1bmsgIT09IG51bGwgJiYgdHMud3JpdGVjYiAmJiAhdHMudHJhbnNmb3JtaW5nKSB7CiAgICB0cy50cmFuc2Zvcm1pbmcgPSB0cnVlOwogICAgdGhpcy5fdHJhbnNmb3JtKHRzLndyaXRlY2h1bmssIHRzLndyaXRlZW5jb2RpbmcsIHRzLmFmdGVyVHJhbnNmb3JtKTsKICB9IGVsc2UgewogICAgLy8gbWFyayB0aGF0IHdlIG5lZWQgYSB0cmFuc2Zvcm0sIHNvIHRoYXQgYW55IGRhdGEgdGhhdCBjb21lcyBpbgogICAgLy8gd2lsbCBnZXQgcHJvY2Vzc2VkLCBub3cgdGhhdCB3ZSd2ZSBhc2tlZCBmb3IgaXQuCiAgICB0cy5uZWVkVHJhbnNmb3JtID0gdHJ1ZTsKICB9Cn07CgpUcmFuc2Zvcm0ucHJvdG90eXBlLl9kZXN0cm95ID0gZnVuY3Rpb24gKGVyciwgY2IpIHsKICB2YXIgX3RoaXMyID0gdGhpczsKCiAgRHVwbGV4LnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsIGVyciwgZnVuY3Rpb24gKGVycjIpIHsKICAgIGNiKGVycjIpOwogICAgX3RoaXMyLmVtaXQoJ2Nsb3NlJyk7CiAgfSk7Cn07CgpmdW5jdGlvbiBkb25lKHN0cmVhbSwgZXIsIGRhdGEpIHsKICBpZiAoZXIpIHJldHVybiBzdHJlYW0uZW1pdCgnZXJyb3InLCBlcik7CgogIGlmIChkYXRhICE9IG51bGwpIC8vIHNpbmdsZSBlcXVhbHMgY2hlY2sgZm9yIGJvdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYAogICAgc3RyZWFtLnB1c2goZGF0YSk7CgogIC8vIGlmIHRoZXJlJ3Mgbm90aGluZyBpbiB0aGUgd3JpdGUgYnVmZmVyLCB0aGVuIHRoYXQgbWVhbnMKICAvLyB0aGF0IG5vdGhpbmcgbW9yZSB3aWxsIGV2ZXIgYmUgcHJvdmlkZWQKICBpZiAoc3RyZWFtLl93cml0YWJsZVN0YXRlLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCdDYWxsaW5nIHRyYW5zZm9ybSBkb25lIHdoZW4gd3MubGVuZ3RoICE9IDAnKTsKCiAgaWYgKHN0cmVhbS5fdHJhbnNmb3JtU3RhdGUudHJhbnNmb3JtaW5nKSB0aHJvdyBuZXcgRXJyb3IoJ0NhbGxpbmcgdHJhbnNmb3JtIGRvbmUgd2hlbiBzdGlsbCB0cmFuc2Zvcm1pbmcnKTsKCiAgcmV0dXJuIHN0cmVhbS5wdXNoKG51bGwpOwp9CgovKioqLyB9KSwKLyogODcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKEJ1ZmZlcikgey8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CgovKgpQREZSZWZlcmVuY2UgLSByZXByZXNlbnRzIGEgcmVmZXJlbmNlIHRvIGFub3RoZXIgb2JqZWN0IGluIHRoZSBQREYgb2JqZWN0IGhlaXJhcmNoeQpCeSBEZXZvbiBHb3ZldHQKICovCgooZnVuY3Rpb24oKSB7CiAgdmFyIFBERk9iamVjdCwgUERGUmVmZXJlbmNlLCBzdHJlYW0sIHpsaWIsCiAgICBiaW5kID0gZnVuY3Rpb24oZm4sIG1lKXsgcmV0dXJuIGZ1bmN0aW9uKCl7IHJldHVybiBmbi5hcHBseShtZSwgYXJndW1lbnRzKTsgfTsgfSwKICAgIGV4dGVuZCA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2YXIga2V5IGluIHBhcmVudCkgeyBpZiAoaGFzUHJvcC5jYWxsKHBhcmVudCwga2V5KSkgY2hpbGRba2V5XSA9IHBhcmVudFtrZXldOyB9IGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfSBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7IGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7IGNoaWxkLl9fc3VwZXJfXyA9IHBhcmVudC5wcm90b3R5cGU7IHJldHVybiBjaGlsZDsgfSwKICAgIGhhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eTsKCiAgemxpYiA9IF9fd2VicGFja19yZXF1aXJlX18oNDgpOwoKICBzdHJlYW0gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KTsKCiAgUERGUmVmZXJlbmNlID0gKGZ1bmN0aW9uKHN1cGVyQ2xhc3MpIHsKICAgIGV4dGVuZChQREZSZWZlcmVuY2UsIHN1cGVyQ2xhc3MpOwoKICAgIGZ1bmN0aW9uIFBERlJlZmVyZW5jZShkb2N1bWVudCwgaWQsIGRhdGEpIHsKICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50OwogICAgICB0aGlzLmlkID0gaWQ7CiAgICAgIHRoaXMuZGF0YSA9IGRhdGEgIT0gbnVsbCA/IGRhdGEgOiB7fTsKICAgICAgdGhpcy5maW5hbGl6ZSA9IGJpbmQodGhpcy5maW5hbGl6ZSwgdGhpcyk7CiAgICAgIFBERlJlZmVyZW5jZS5fX3N1cGVyX18uY29uc3RydWN0b3IuY2FsbCh0aGlzLCB7CiAgICAgICAgZGVjb2RlU3RyaW5nczogZmFsc2UKICAgICAgfSk7CiAgICAgIHRoaXMuZ2VuID0gMDsKICAgICAgdGhpcy5kZWZsYXRlID0gbnVsbDsKICAgICAgdGhpcy5jb21wcmVzcyA9IHRoaXMuZG9jdW1lbnQuY29tcHJlc3MgJiYgIXRoaXMuZGF0YS5GaWx0ZXI7CiAgICAgIHRoaXMudW5jb21wcmVzc2VkTGVuZ3RoID0gMDsKICAgICAgdGhpcy5jaHVua3MgPSBbXTsKICAgIH0KCiAgICBQREZSZWZlcmVuY2UucHJvdG90eXBlLmluaXREZWZsYXRlID0gZnVuY3Rpb24oKSB7CiAgICAgIHRoaXMuZGF0YS5GaWx0ZXIgPSAnRmxhdGVEZWNvZGUnOwogICAgICB0aGlzLmRlZmxhdGUgPSB6bGliLmNyZWF0ZURlZmxhdGUoKTsKICAgICAgdGhpcy5kZWZsYXRlLm9uKCdkYXRhJywgKGZ1bmN0aW9uKF90aGlzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGNodW5rKSB7CiAgICAgICAgICBfdGhpcy5jaHVua3MucHVzaChjaHVuayk7CiAgICAgICAgICByZXR1cm4gX3RoaXMuZGF0YS5MZW5ndGggKz0gY2h1bmsubGVuZ3RoOwogICAgICAgIH07CiAgICAgIH0pKHRoaXMpKTsKICAgICAgcmV0dXJuIHRoaXMuZGVmbGF0ZS5vbignZW5kJywgdGhpcy5maW5hbGl6ZSk7CiAgICB9OwoKICAgIFBERlJlZmVyZW5jZS5wcm90b3R5cGUuX3dyaXRlID0gZnVuY3Rpb24oY2h1bmssIGVuY29kaW5nLCBjYWxsYmFjaykgewogICAgICB2YXIgYmFzZTsKICAgICAgaWYgKCFCdWZmZXIuaXNCdWZmZXIoY2h1bmspKSB7CiAgICAgICAgY2h1bmsgPSBuZXcgQnVmZmVyKGNodW5rICsgJ1xuJywgJ2JpbmFyeScpOwogICAgICB9CiAgICAgIHRoaXMudW5jb21wcmVzc2VkTGVuZ3RoICs9IGNodW5rLmxlbmd0aDsKICAgICAgaWYgKChiYXNlID0gdGhpcy5kYXRhKS5MZW5ndGggPT0gbnVsbCkgewogICAgICAgIGJhc2UuTGVuZ3RoID0gMDsKICAgICAgfQogICAgICBpZiAodGhpcy5jb21wcmVzcykgewogICAgICAgIGlmICghdGhpcy5kZWZsYXRlKSB7CiAgICAgICAgICB0aGlzLmluaXREZWZsYXRlKCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVmbGF0ZS53cml0ZShjaHVuayk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5jaHVua3MucHVzaChjaHVuayk7CiAgICAgICAgdGhpcy5kYXRhLkxlbmd0aCArPSBjaHVuay5sZW5ndGg7CiAgICAgIH0KICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICB9OwoKICAgIFBERlJlZmVyZW5jZS5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oY2h1bmspIHsKICAgICAgUERGUmVmZXJlbmNlLl9fc3VwZXJfXy5lbmQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgaWYgKHRoaXMuZGVmbGF0ZSkgewogICAgICAgIHJldHVybiB0aGlzLmRlZmxhdGUuZW5kKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHRoaXMuZmluYWxpemUoKTsKICAgICAgfQogICAgfTsKCiAgICBQREZSZWZlcmVuY2UucHJvdG90eXBlLmZpbmFsaXplID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBjaHVuaywgaSwgbGVuLCByZWY7CiAgICAgIHRoaXMub2Zmc2V0ID0gdGhpcy5kb2N1bWVudC5fb2Zmc2V0OwogICAgICB0aGlzLmRvY3VtZW50Ll93cml0ZSh0aGlzLmlkICsgIiAiICsgdGhpcy5nZW4gKyAiIG9iaiIpOwogICAgICB0aGlzLmRvY3VtZW50Ll93cml0ZShQREZPYmplY3QuY29udmVydCh0aGlzLmRhdGEpKTsKICAgICAgaWYgKHRoaXMuY2h1bmtzLmxlbmd0aCkgewogICAgICAgIHRoaXMuZG9jdW1lbnQuX3dyaXRlKCdzdHJlYW0nKTsKICAgICAgICByZWYgPSB0aGlzLmNodW5rczsKICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSByZWYubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgIGNodW5rID0gcmVmW2ldOwogICAgICAgICAgdGhpcy5kb2N1bWVudC5fd3JpdGUoY2h1bmspOwogICAgICAgIH0KICAgICAgICB0aGlzLmNodW5rcy5sZW5ndGggPSAwOwogICAgICAgIHRoaXMuZG9jdW1lbnQuX3dyaXRlKCdcbmVuZHN0cmVhbScpOwogICAgICB9CiAgICAgIHRoaXMuZG9jdW1lbnQuX3dyaXRlKCdlbmRvYmonKTsKICAgICAgcmV0dXJuIHRoaXMuZG9jdW1lbnQuX3JlZkVuZCh0aGlzKTsKICAgIH07CgogICAgUERGUmVmZXJlbmNlLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy5pZCArICIgIiArIHRoaXMuZ2VuICsgIiBSIjsKICAgIH07CgogICAgcmV0dXJuIFBERlJlZmVyZW5jZTsKCiAgfSkoc3RyZWFtLldyaXRhYmxlKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBQREZSZWZlcmVuY2U7CgogIFBERk9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMjYpOwoKfSkuY2FsbCh0aGlzKTsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpLkJ1ZmZlcikpCgovKioqLyB9KSwKLyogODggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oZ2xvYmFsKSB7CgovLyBjb21wYXJlIGFuZCBpc0J1ZmZlciB0YWtlbiBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9mZXJvc3MvYnVmZmVyL2Jsb2IvNjgwZTllNWU0ODhmMjJhYWMyNzU5OWE1N2RjODQ0YTYzMTU5MjhkZC9pbmRleC5qcwovLyBvcmlnaW5hbCBub3RpY2U6CgovKiEKICogVGhlIGJ1ZmZlciBtb2R1bGUgZnJvbSBub2RlLmpzLCBmb3IgdGhlIGJyb3dzZXIuCiAqCiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxmZXJvc3NAZmVyb3NzLm9yZz4gPGh0dHA6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwpmdW5jdGlvbiBjb21wYXJlKGEsIGIpIHsKICBpZiAoYSA9PT0gYikgewogICAgcmV0dXJuIDA7CiAgfQoKICB2YXIgeCA9IGEubGVuZ3RoOwogIHZhciB5ID0gYi5sZW5ndGg7CgogIGZvciAodmFyIGkgPSAwLCBsZW4gPSBNYXRoLm1pbih4LCB5KTsgaSA8IGxlbjsgKytpKSB7CiAgICBpZiAoYVtpXSAhPT0gYltpXSkgewogICAgICB4ID0gYVtpXTsKICAgICAgeSA9IGJbaV07CiAgICAgIGJyZWFrOwogICAgfQogIH0KCiAgaWYgKHggPCB5KSB7CiAgICByZXR1cm4gLTE7CiAgfQogIGlmICh5IDwgeCkgewogICAgcmV0dXJuIDE7CiAgfQogIHJldHVybiAwOwp9CmZ1bmN0aW9uIGlzQnVmZmVyKGIpIHsKICBpZiAoZ2xvYmFsLkJ1ZmZlciAmJiB0eXBlb2YgZ2xvYmFsLkJ1ZmZlci5pc0J1ZmZlciA9PT0gJ2Z1bmN0aW9uJykgewogICAgcmV0dXJuIGdsb2JhbC5CdWZmZXIuaXNCdWZmZXIoYik7CiAgfQogIHJldHVybiAhIShiICE9IG51bGwgJiYgYi5faXNCdWZmZXIpOwp9CgovLyBiYXNlZCBvbiBub2RlIGFzc2VydCwgb3JpZ2luYWwgbm90aWNlOgoKLy8gaHR0cDovL3dpa2kuY29tbW9uanMub3JnL3dpa2kvVW5pdF9UZXN0aW5nLzEuMAovLwovLyBUSElTIElTIE5PVCBURVNURUQgTk9SIExJS0VMWSBUTyBXT1JLIE9VVFNJREUgVjghCi8vCi8vIE9yaWdpbmFsbHkgZnJvbSBuYXJ3aGFsLmpzIChodHRwOi8vbmFyd2hhbGpzLm9yZykKLy8gQ29weXJpZ2h0IChjKSAyMDA5IFRob21hcyBSb2JpbnNvbiA8Mjgwbm9ydGguY29tPgovLwovLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5Ci8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICdTb2Z0d2FyZScpLCB0bwovLyBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQovLyByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3IKLy8gc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLy8KLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi8vCi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAnQVMgSVMnLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAovLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLy8gQVVUSE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4KLy8gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgovLyBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCnZhciB1dGlsID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0OSk7CnZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5Owp2YXIgcFNsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlOwp2YXIgZnVuY3Rpb25zSGF2ZU5hbWVzID0gKGZ1bmN0aW9uICgpIHsKICByZXR1cm4gZnVuY3Rpb24gZm9vKCkge30ubmFtZSA9PT0gJ2Zvbyc7Cn0oKSk7CmZ1bmN0aW9uIHBUb1N0cmluZyAob2JqKSB7CiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvYmopOwp9CmZ1bmN0aW9uIGlzVmlldyhhcnJidWYpIHsKICBpZiAoaXNCdWZmZXIoYXJyYnVmKSkgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBpZiAodHlwZW9mIGdsb2JhbC5BcnJheUJ1ZmZlciAhPT0gJ2Z1bmN0aW9uJykgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBpZiAodHlwZW9mIEFycmF5QnVmZmVyLmlzVmlldyA9PT0gJ2Z1bmN0aW9uJykgewogICAgcmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyhhcnJidWYpOwogIH0KICBpZiAoIWFycmJ1ZikgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBpZiAoYXJyYnVmIGluc3RhbmNlb2YgRGF0YVZpZXcpIHsKICAgIHJldHVybiB0cnVlOwogIH0KICBpZiAoYXJyYnVmLmJ1ZmZlciAmJiBhcnJidWYuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHsKICAgIHJldHVybiB0cnVlOwogIH0KICByZXR1cm4gZmFsc2U7Cn0KLy8gMS4gVGhlIGFzc2VydCBtb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIHRoYXQgdGhyb3cKLy8gQXNzZXJ0aW9uRXJyb3IncyB3aGVuIHBhcnRpY3VsYXIgY29uZGl0aW9ucyBhcmUgbm90IG1ldC4gVGhlCi8vIGFzc2VydCBtb2R1bGUgbXVzdCBjb25mb3JtIHRvIHRoZSBmb2xsb3dpbmcgaW50ZXJmYWNlLgoKdmFyIGFzc2VydCA9IG1vZHVsZS5leHBvcnRzID0gb2s7CgovLyAyLiBUaGUgQXNzZXJ0aW9uRXJyb3IgaXMgZGVmaW5lZCBpbiBhc3NlcnQuCi8vIG5ldyBhc3NlcnQuQXNzZXJ0aW9uRXJyb3IoeyBtZXNzYWdlOiBtZXNzYWdlLAovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFsOiBhY3R1YWwsCi8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZDogZXhwZWN0ZWQgfSkKCnZhciByZWdleCA9IC9ccypmdW5jdGlvblxzKyhbXlwoXHNdKilccyovOwovLyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vbGpoYXJiL2Z1bmN0aW9uLnByb3RvdHlwZS5uYW1lL2Jsb2IvYWRlZWVlYzhiZmNjNjA2OGIxODdkN2Q5ZmIzZDViYjFkM2EzMDg5OS9pbXBsZW1lbnRhdGlvbi5qcwpmdW5jdGlvbiBnZXROYW1lKGZ1bmMpIHsKICBpZiAoIXV0aWwuaXNGdW5jdGlvbihmdW5jKSkgewogICAgcmV0dXJuOwogIH0KICBpZiAoZnVuY3Rpb25zSGF2ZU5hbWVzKSB7CiAgICByZXR1cm4gZnVuYy5uYW1lOwogIH0KICB2YXIgc3RyID0gZnVuYy50b1N0cmluZygpOwogIHZhciBtYXRjaCA9IHN0ci5tYXRjaChyZWdleCk7CiAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzFdOwp9CmFzc2VydC5Bc3NlcnRpb25FcnJvciA9IGZ1bmN0aW9uIEFzc2VydGlvbkVycm9yKG9wdGlvbnMpIHsKICB0aGlzLm5hbWUgPSAnQXNzZXJ0aW9uRXJyb3InOwogIHRoaXMuYWN0dWFsID0gb3B0aW9ucy5hY3R1YWw7CiAgdGhpcy5leHBlY3RlZCA9IG9wdGlvbnMuZXhwZWN0ZWQ7CiAgdGhpcy5vcGVyYXRvciA9IG9wdGlvbnMub3BlcmF0b3I7CiAgaWYgKG9wdGlvbnMubWVzc2FnZSkgewogICAgdGhpcy5tZXNzYWdlID0gb3B0aW9ucy5tZXNzYWdlOwogICAgdGhpcy5nZW5lcmF0ZWRNZXNzYWdlID0gZmFsc2U7CiAgfSBlbHNlIHsKICAgIHRoaXMubWVzc2FnZSA9IGdldE1lc3NhZ2UodGhpcyk7CiAgICB0aGlzLmdlbmVyYXRlZE1lc3NhZ2UgPSB0cnVlOwogIH0KICB2YXIgc3RhY2tTdGFydEZ1bmN0aW9uID0gb3B0aW9ucy5zdGFja1N0YXJ0RnVuY3Rpb24gfHwgZmFpbDsKICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHsKICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHN0YWNrU3RhcnRGdW5jdGlvbik7CiAgfSBlbHNlIHsKICAgIC8vIG5vbiB2OCBicm93c2VycyBzbyB3ZSBjYW4gaGF2ZSBhIHN0YWNrdHJhY2UKICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoKTsKICAgIGlmIChlcnIuc3RhY2spIHsKICAgICAgdmFyIG91dCA9IGVyci5zdGFjazsKCiAgICAgIC8vIHRyeSB0byBzdHJpcCB1c2VsZXNzIGZyYW1lcwogICAgICB2YXIgZm5fbmFtZSA9IGdldE5hbWUoc3RhY2tTdGFydEZ1bmN0aW9uKTsKICAgICAgdmFyIGlkeCA9IG91dC5pbmRleE9mKCdcbicgKyBmbl9uYW1lKTsKICAgICAgaWYgKGlkeCA+PSAwKSB7CiAgICAgICAgLy8gb25jZSB3ZSBoYXZlIGxvY2F0ZWQgdGhlIGZ1bmN0aW9uIGZyYW1lCiAgICAgICAgLy8gd2UgbmVlZCB0byBzdHJpcCBvdXQgZXZlcnl0aGluZyBiZWZvcmUgaXQgKGFuZCBpdHMgbGluZSkKICAgICAgICB2YXIgbmV4dF9saW5lID0gb3V0LmluZGV4T2YoJ1xuJywgaWR4ICsgMSk7CiAgICAgICAgb3V0ID0gb3V0LnN1YnN0cmluZyhuZXh0X2xpbmUgKyAxKTsKICAgICAgfQoKICAgICAgdGhpcy5zdGFjayA9IG91dDsKICAgIH0KICB9Cn07CgovLyBhc3NlcnQuQXNzZXJ0aW9uRXJyb3IgaW5zdGFuY2VvZiBFcnJvcgp1dGlsLmluaGVyaXRzKGFzc2VydC5Bc3NlcnRpb25FcnJvciwgRXJyb3IpOwoKZnVuY3Rpb24gdHJ1bmNhdGUocywgbikgewogIGlmICh0eXBlb2YgcyA9PT0gJ3N0cmluZycpIHsKICAgIHJldHVybiBzLmxlbmd0aCA8IG4gPyBzIDogcy5zbGljZSgwLCBuKTsKICB9IGVsc2UgewogICAgcmV0dXJuIHM7CiAgfQp9CmZ1bmN0aW9uIGluc3BlY3Qoc29tZXRoaW5nKSB7CiAgaWYgKGZ1bmN0aW9uc0hhdmVOYW1lcyB8fCAhdXRpbC5pc0Z1bmN0aW9uKHNvbWV0aGluZykpIHsKICAgIHJldHVybiB1dGlsLmluc3BlY3Qoc29tZXRoaW5nKTsKICB9CiAgdmFyIHJhd25hbWUgPSBnZXROYW1lKHNvbWV0aGluZyk7CiAgdmFyIG5hbWUgPSByYXduYW1lID8gJzogJyArIHJhd25hbWUgOiAnJzsKICByZXR1cm4gJ1tGdW5jdGlvbicgKyAgbmFtZSArICddJzsKfQpmdW5jdGlvbiBnZXRNZXNzYWdlKHNlbGYpIHsKICByZXR1cm4gdHJ1bmNhdGUoaW5zcGVjdChzZWxmLmFjdHVhbCksIDEyOCkgKyAnICcgKwogICAgICAgICBzZWxmLm9wZXJhdG9yICsgJyAnICsKICAgICAgICAgdHJ1bmNhdGUoaW5zcGVjdChzZWxmLmV4cGVjdGVkKSwgMTI4KTsKfQoKLy8gQXQgcHJlc2VudCBvbmx5IHRoZSB0aHJlZSBrZXlzIG1lbnRpb25lZCBhYm92ZSBhcmUgdXNlZCBhbmQKLy8gdW5kZXJzdG9vZCBieSB0aGUgc3BlYy4gSW1wbGVtZW50YXRpb25zIG9yIHN1YiBtb2R1bGVzIGNhbiBwYXNzCi8vIG90aGVyIGtleXMgdG8gdGhlIEFzc2VydGlvbkVycm9yJ3MgY29uc3RydWN0b3IgLSB0aGV5IHdpbGwgYmUKLy8gaWdub3JlZC4KCi8vIDMuIEFsbCBvZiB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBtdXN0IHRocm93IGFuIEFzc2VydGlvbkVycm9yCi8vIHdoZW4gYSBjb3JyZXNwb25kaW5nIGNvbmRpdGlvbiBpcyBub3QgbWV0LCB3aXRoIGEgbWVzc2FnZSB0aGF0Ci8vIG1heSBiZSB1bmRlZmluZWQgaWYgbm90IHByb3ZpZGVkLiAgQWxsIGFzc2VydGlvbiBtZXRob2RzIHByb3ZpZGUKLy8gYm90aCB0aGUgYWN0dWFsIGFuZCBleHBlY3RlZCB2YWx1ZXMgdG8gdGhlIGFzc2VydGlvbiBlcnJvciBmb3IKLy8gZGlzcGxheSBwdXJwb3Nlcy4KCmZ1bmN0aW9uIGZhaWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSwgb3BlcmF0b3IsIHN0YWNrU3RhcnRGdW5jdGlvbikgewogIHRocm93IG5ldyBhc3NlcnQuQXNzZXJ0aW9uRXJyb3IoewogICAgbWVzc2FnZTogbWVzc2FnZSwKICAgIGFjdHVhbDogYWN0dWFsLAogICAgZXhwZWN0ZWQ6IGV4cGVjdGVkLAogICAgb3BlcmF0b3I6IG9wZXJhdG9yLAogICAgc3RhY2tTdGFydEZ1bmN0aW9uOiBzdGFja1N0YXJ0RnVuY3Rpb24KICB9KTsKfQoKLy8gRVhURU5TSU9OISBhbGxvd3MgZm9yIHdlbGwgYmVoYXZlZCBlcnJvcnMgZGVmaW5lZCBlbHNld2hlcmUuCmFzc2VydC5mYWlsID0gZmFpbDsKCi8vIDQuIFB1cmUgYXNzZXJ0aW9uIHRlc3RzIHdoZXRoZXIgYSB2YWx1ZSBpcyB0cnV0aHksIGFzIGRldGVybWluZWQKLy8gYnkgISFndWFyZC4KLy8gYXNzZXJ0Lm9rKGd1YXJkLCBtZXNzYWdlX29wdCk7Ci8vIFRoaXMgc3RhdGVtZW50IGlzIGVxdWl2YWxlbnQgdG8gYXNzZXJ0LmVxdWFsKHRydWUsICEhZ3VhcmQsCi8vIG1lc3NhZ2Vfb3B0KTsuIFRvIHRlc3Qgc3RyaWN0bHkgZm9yIHRoZSB2YWx1ZSB0cnVlLCB1c2UKLy8gYXNzZXJ0LnN0cmljdEVxdWFsKHRydWUsIGd1YXJkLCBtZXNzYWdlX29wdCk7LgoKZnVuY3Rpb24gb2sodmFsdWUsIG1lc3NhZ2UpIHsKICBpZiAoIXZhbHVlKSBmYWlsKHZhbHVlLCB0cnVlLCBtZXNzYWdlLCAnPT0nLCBhc3NlcnQub2spOwp9CmFzc2VydC5vayA9IG9rOwoKLy8gNS4gVGhlIGVxdWFsaXR5IGFzc2VydGlvbiB0ZXN0cyBzaGFsbG93LCBjb2VyY2l2ZSBlcXVhbGl0eSB3aXRoCi8vID09LgovLyBhc3NlcnQuZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZV9vcHQpOwoKYXNzZXJ0LmVxdWFsID0gZnVuY3Rpb24gZXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkgewogIGlmIChhY3R1YWwgIT0gZXhwZWN0ZWQpIGZhaWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSwgJz09JywgYXNzZXJ0LmVxdWFsKTsKfTsKCi8vIDYuIFRoZSBub24tZXF1YWxpdHkgYXNzZXJ0aW9uIHRlc3RzIGZvciB3aGV0aGVyIHR3byBvYmplY3RzIGFyZSBub3QgZXF1YWwKLy8gd2l0aCAhPSBhc3NlcnQubm90RXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZV9vcHQpOwoKYXNzZXJ0Lm5vdEVxdWFsID0gZnVuY3Rpb24gbm90RXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkgewogIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQpIHsKICAgIGZhaWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSwgJyE9JywgYXNzZXJ0Lm5vdEVxdWFsKTsKICB9Cn07CgovLyA3LiBUaGUgZXF1aXZhbGVuY2UgYXNzZXJ0aW9uIHRlc3RzIGEgZGVlcCBlcXVhbGl0eSByZWxhdGlvbi4KLy8gYXNzZXJ0LmRlZXBFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBtZXNzYWdlX29wdCk7Cgphc3NlcnQuZGVlcEVxdWFsID0gZnVuY3Rpb24gZGVlcEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKICBpZiAoIV9kZWVwRXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZmFsc2UpKSB7CiAgICBmYWlsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UsICdkZWVwRXF1YWwnLCBhc3NlcnQuZGVlcEVxdWFsKTsKICB9Cn07Cgphc3NlcnQuZGVlcFN0cmljdEVxdWFsID0gZnVuY3Rpb24gZGVlcFN0cmljdEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKICBpZiAoIV9kZWVwRXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgdHJ1ZSkpIHsKICAgIGZhaWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSwgJ2RlZXBTdHJpY3RFcXVhbCcsIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwpOwogIH0KfTsKCmZ1bmN0aW9uIF9kZWVwRXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgc3RyaWN0LCBtZW1vcykgewogIC8vIDcuMS4gQWxsIGlkZW50aWNhbCB2YWx1ZXMgYXJlIGVxdWl2YWxlbnQsIGFzIGRldGVybWluZWQgYnkgPT09LgogIGlmIChhY3R1YWwgPT09IGV4cGVjdGVkKSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9IGVsc2UgaWYgKGlzQnVmZmVyKGFjdHVhbCkgJiYgaXNCdWZmZXIoZXhwZWN0ZWQpKSB7CiAgICByZXR1cm4gY29tcGFyZShhY3R1YWwsIGV4cGVjdGVkKSA9PT0gMDsKCiAgLy8gNy4yLiBJZiB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMgYSBEYXRlIG9iamVjdCwgdGhlIGFjdHVhbCB2YWx1ZSBpcwogIC8vIGVxdWl2YWxlbnQgaWYgaXQgaXMgYWxzbyBhIERhdGUgb2JqZWN0IHRoYXQgcmVmZXJzIHRvIHRoZSBzYW1lIHRpbWUuCiAgfSBlbHNlIGlmICh1dGlsLmlzRGF0ZShhY3R1YWwpICYmIHV0aWwuaXNEYXRlKGV4cGVjdGVkKSkgewogICAgcmV0dXJuIGFjdHVhbC5nZXRUaW1lKCkgPT09IGV4cGVjdGVkLmdldFRpbWUoKTsKCiAgLy8gNy4zIElmIHRoZSBleHBlY3RlZCB2YWx1ZSBpcyBhIFJlZ0V4cCBvYmplY3QsIHRoZSBhY3R1YWwgdmFsdWUgaXMKICAvLyBlcXVpdmFsZW50IGlmIGl0IGlzIGFsc28gYSBSZWdFeHAgb2JqZWN0IHdpdGggdGhlIHNhbWUgc291cmNlIGFuZAogIC8vIHByb3BlcnRpZXMgKGBnbG9iYWxgLCBgbXVsdGlsaW5lYCwgYGxhc3RJbmRleGAsIGBpZ25vcmVDYXNlYCkuCiAgfSBlbHNlIGlmICh1dGlsLmlzUmVnRXhwKGFjdHVhbCkgJiYgdXRpbC5pc1JlZ0V4cChleHBlY3RlZCkpIHsKICAgIHJldHVybiBhY3R1YWwuc291cmNlID09PSBleHBlY3RlZC5zb3VyY2UgJiYKICAgICAgICAgICBhY3R1YWwuZ2xvYmFsID09PSBleHBlY3RlZC5nbG9iYWwgJiYKICAgICAgICAgICBhY3R1YWwubXVsdGlsaW5lID09PSBleHBlY3RlZC5tdWx0aWxpbmUgJiYKICAgICAgICAgICBhY3R1YWwubGFzdEluZGV4ID09PSBleHBlY3RlZC5sYXN0SW5kZXggJiYKICAgICAgICAgICBhY3R1YWwuaWdub3JlQ2FzZSA9PT0gZXhwZWN0ZWQuaWdub3JlQ2FzZTsKCiAgLy8gNy40LiBPdGhlciBwYWlycyB0aGF0IGRvIG5vdCBib3RoIHBhc3MgdHlwZW9mIHZhbHVlID09ICdvYmplY3QnLAogIC8vIGVxdWl2YWxlbmNlIGlzIGRldGVybWluZWQgYnkgPT0uCiAgfSBlbHNlIGlmICgoYWN0dWFsID09PSBudWxsIHx8IHR5cGVvZiBhY3R1YWwgIT09ICdvYmplY3QnKSAmJgogICAgICAgICAgICAgKGV4cGVjdGVkID09PSBudWxsIHx8IHR5cGVvZiBleHBlY3RlZCAhPT0gJ29iamVjdCcpKSB7CiAgICByZXR1cm4gc3RyaWN0ID8gYWN0dWFsID09PSBleHBlY3RlZCA6IGFjdHVhbCA9PSBleHBlY3RlZDsKCiAgLy8gSWYgYm90aCB2YWx1ZXMgYXJlIGluc3RhbmNlcyBvZiB0eXBlZCBhcnJheXMsIHdyYXAgdGhlaXIgdW5kZXJseWluZwogIC8vIEFycmF5QnVmZmVycyBpbiBhIEJ1ZmZlciBlYWNoIHRvIGluY3JlYXNlIHBlcmZvcm1hbmNlCiAgLy8gVGhpcyBvcHRpbWl6YXRpb24gcmVxdWlyZXMgdGhlIGFycmF5cyB0byBoYXZlIHRoZSBzYW1lIHR5cGUgYXMgY2hlY2tlZCBieQogIC8vIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcgKGFrYSBwVG9TdHJpbmcpLiBOZXZlciBwZXJmb3JtIGJpbmFyeQogIC8vIGNvbXBhcmlzb25zIGZvciBGbG9hdCpBcnJheXMsIHRob3VnaCwgc2luY2UgZS5nLiArMCA9PT0gLTAgYnV0IHRoZWlyCiAgLy8gYml0IHBhdHRlcm5zIGFyZSBub3QgaWRlbnRpY2FsLgogIH0gZWxzZSBpZiAoaXNWaWV3KGFjdHVhbCkgJiYgaXNWaWV3KGV4cGVjdGVkKSAmJgogICAgICAgICAgICAgcFRvU3RyaW5nKGFjdHVhbCkgPT09IHBUb1N0cmluZyhleHBlY3RlZCkgJiYKICAgICAgICAgICAgICEoYWN0dWFsIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5IHx8CiAgICAgICAgICAgICAgIGFjdHVhbCBpbnN0YW5jZW9mIEZsb2F0NjRBcnJheSkpIHsKICAgIHJldHVybiBjb21wYXJlKG5ldyBVaW50OEFycmF5KGFjdHVhbC5idWZmZXIpLAogICAgICAgICAgICAgICAgICAgbmV3IFVpbnQ4QXJyYXkoZXhwZWN0ZWQuYnVmZmVyKSkgPT09IDA7CgogIC8vIDcuNSBGb3IgYWxsIG90aGVyIE9iamVjdCBwYWlycywgaW5jbHVkaW5nIEFycmF5IG9iamVjdHMsIGVxdWl2YWxlbmNlIGlzCiAgLy8gZGV0ZXJtaW5lZCBieSBoYXZpbmcgdGhlIHNhbWUgbnVtYmVyIG9mIG93bmVkIHByb3BlcnRpZXMgKGFzIHZlcmlmaWVkCiAgLy8gd2l0aCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwpLCB0aGUgc2FtZSBzZXQgb2Yga2V5cwogIC8vIChhbHRob3VnaCBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgb3JkZXIpLCBlcXVpdmFsZW50IHZhbHVlcyBmb3IgZXZlcnkKICAvLyBjb3JyZXNwb25kaW5nIGtleSwgYW5kIGFuIGlkZW50aWNhbCAncHJvdG90eXBlJyBwcm9wZXJ0eS4gTm90ZTogdGhpcwogIC8vIGFjY291bnRzIGZvciBib3RoIG5hbWVkIGFuZCBpbmRleGVkIHByb3BlcnRpZXMgb24gQXJyYXlzLgogIH0gZWxzZSBpZiAoaXNCdWZmZXIoYWN0dWFsKSAhPT0gaXNCdWZmZXIoZXhwZWN0ZWQpKSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfSBlbHNlIHsKICAgIG1lbW9zID0gbWVtb3MgfHwge2FjdHVhbDogW10sIGV4cGVjdGVkOiBbXX07CgogICAgdmFyIGFjdHVhbEluZGV4ID0gbWVtb3MuYWN0dWFsLmluZGV4T2YoYWN0dWFsKTsKICAgIGlmIChhY3R1YWxJbmRleCAhPT0gLTEpIHsKICAgICAgaWYgKGFjdHVhbEluZGV4ID09PSBtZW1vcy5leHBlY3RlZC5pbmRleE9mKGV4cGVjdGVkKSkgewogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICB9CgogICAgbWVtb3MuYWN0dWFsLnB1c2goYWN0dWFsKTsKICAgIG1lbW9zLmV4cGVjdGVkLnB1c2goZXhwZWN0ZWQpOwoKICAgIHJldHVybiBvYmpFcXVpdihhY3R1YWwsIGV4cGVjdGVkLCBzdHJpY3QsIG1lbW9zKTsKICB9Cn0KCmZ1bmN0aW9uIGlzQXJndW1lbnRzKG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PSAnW29iamVjdCBBcmd1bWVudHNdJzsKfQoKZnVuY3Rpb24gb2JqRXF1aXYoYSwgYiwgc3RyaWN0LCBhY3R1YWxWaXNpdGVkT2JqZWN0cykgewogIGlmIChhID09PSBudWxsIHx8IGEgPT09IHVuZGVmaW5lZCB8fCBiID09PSBudWxsIHx8IGIgPT09IHVuZGVmaW5lZCkKICAgIHJldHVybiBmYWxzZTsKICAvLyBpZiBvbmUgaXMgYSBwcmltaXRpdmUsIHRoZSBvdGhlciBtdXN0IGJlIHNhbWUKICBpZiAodXRpbC5pc1ByaW1pdGl2ZShhKSB8fCB1dGlsLmlzUHJpbWl0aXZlKGIpKQogICAgcmV0dXJuIGEgPT09IGI7CiAgaWYgKHN0cmljdCAmJiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoYSkgIT09IE9iamVjdC5nZXRQcm90b3R5cGVPZihiKSkKICAgIHJldHVybiBmYWxzZTsKICB2YXIgYUlzQXJncyA9IGlzQXJndW1lbnRzKGEpOwogIHZhciBiSXNBcmdzID0gaXNBcmd1bWVudHMoYik7CiAgaWYgKChhSXNBcmdzICYmICFiSXNBcmdzKSB8fCAoIWFJc0FyZ3MgJiYgYklzQXJncykpCiAgICByZXR1cm4gZmFsc2U7CiAgaWYgKGFJc0FyZ3MpIHsKICAgIGEgPSBwU2xpY2UuY2FsbChhKTsKICAgIGIgPSBwU2xpY2UuY2FsbChiKTsKICAgIHJldHVybiBfZGVlcEVxdWFsKGEsIGIsIHN0cmljdCk7CiAgfQogIHZhciBrYSA9IG9iamVjdEtleXMoYSk7CiAgdmFyIGtiID0gb2JqZWN0S2V5cyhiKTsKICB2YXIga2V5LCBpOwogIC8vIGhhdmluZyB0aGUgc2FtZSBudW1iZXIgb2Ygb3duZWQgcHJvcGVydGllcyAoa2V5cyBpbmNvcnBvcmF0ZXMKICAvLyBoYXNPd25Qcm9wZXJ0eSkKICBpZiAoa2EubGVuZ3RoICE9PSBrYi5sZW5ndGgpCiAgICByZXR1cm4gZmFsc2U7CiAgLy90aGUgc2FtZSBzZXQgb2Yga2V5cyAoYWx0aG91Z2ggbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIG9yZGVyKSwKICBrYS5zb3J0KCk7CiAga2Iuc29ydCgpOwogIC8vfn5+Y2hlYXAga2V5IHRlc3QKICBmb3IgKGkgPSBrYS5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgaWYgKGthW2ldICE9PSBrYltpXSkKICAgICAgcmV0dXJuIGZhbHNlOwogIH0KICAvL2VxdWl2YWxlbnQgdmFsdWVzIGZvciBldmVyeSBjb3JyZXNwb25kaW5nIGtleSwgYW5kCiAgLy9+fn5wb3NzaWJseSBleHBlbnNpdmUgZGVlcCB0ZXN0CiAgZm9yIChpID0ga2EubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgIGtleSA9IGthW2ldOwogICAgaWYgKCFfZGVlcEVxdWFsKGFba2V5XSwgYltrZXldLCBzdHJpY3QsIGFjdHVhbFZpc2l0ZWRPYmplY3RzKSkKICAgICAgcmV0dXJuIGZhbHNlOwogIH0KICByZXR1cm4gdHJ1ZTsKfQoKLy8gOC4gVGhlIG5vbi1lcXVpdmFsZW5jZSBhc3NlcnRpb24gdGVzdHMgZm9yIGFueSBkZWVwIGluZXF1YWxpdHkuCi8vIGFzc2VydC5ub3REZWVwRXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZV9vcHQpOwoKYXNzZXJ0Lm5vdERlZXBFcXVhbCA9IGZ1bmN0aW9uIG5vdERlZXBFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CiAgaWYgKF9kZWVwRXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgZmFsc2UpKSB7CiAgICBmYWlsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UsICdub3REZWVwRXF1YWwnLCBhc3NlcnQubm90RGVlcEVxdWFsKTsKICB9Cn07Cgphc3NlcnQubm90RGVlcFN0cmljdEVxdWFsID0gbm90RGVlcFN0cmljdEVxdWFsOwpmdW5jdGlvbiBub3REZWVwU3RyaWN0RXF1YWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSkgewogIGlmIChfZGVlcEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIHRydWUpKSB7CiAgICBmYWlsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UsICdub3REZWVwU3RyaWN0RXF1YWwnLCBub3REZWVwU3RyaWN0RXF1YWwpOwogIH0KfQoKCi8vIDkuIFRoZSBzdHJpY3QgZXF1YWxpdHkgYXNzZXJ0aW9uIHRlc3RzIHN0cmljdCBlcXVhbGl0eSwgYXMgZGV0ZXJtaW5lZCBieSA9PT0uCi8vIGFzc2VydC5zdHJpY3RFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBtZXNzYWdlX29wdCk7Cgphc3NlcnQuc3RyaWN0RXF1YWwgPSBmdW5jdGlvbiBzdHJpY3RFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBtZXNzYWdlKSB7CiAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpIHsKICAgIGZhaWwoYWN0dWFsLCBleHBlY3RlZCwgbWVzc2FnZSwgJz09PScsIGFzc2VydC5zdHJpY3RFcXVhbCk7CiAgfQp9OwoKLy8gMTAuIFRoZSBzdHJpY3Qgbm9uLWVxdWFsaXR5IGFzc2VydGlvbiB0ZXN0cyBmb3Igc3RyaWN0IGluZXF1YWxpdHksIGFzCi8vIGRldGVybWluZWQgYnkgIT09LiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2Vfb3B0KTsKCmFzc2VydC5ub3RTdHJpY3RFcXVhbCA9IGZ1bmN0aW9uIG5vdFN0cmljdEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1lc3NhZ2UpIHsKICBpZiAoYWN0dWFsID09PSBleHBlY3RlZCkgewogICAgZmFpbChhY3R1YWwsIGV4cGVjdGVkLCBtZXNzYWdlLCAnIT09JywgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKTsKICB9Cn07CgpmdW5jdGlvbiBleHBlY3RlZEV4Y2VwdGlvbihhY3R1YWwsIGV4cGVjdGVkKSB7CiAgaWYgKCFhY3R1YWwgfHwgIWV4cGVjdGVkKSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGV4cGVjdGVkKSA9PSAnW29iamVjdCBSZWdFeHBdJykgewogICAgcmV0dXJuIGV4cGVjdGVkLnRlc3QoYWN0dWFsKTsKICB9CgogIHRyeSB7CiAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgZXhwZWN0ZWQpIHsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgfSBjYXRjaCAoZSkgewogICAgLy8gSWdub3JlLiAgVGhlIGluc3RhbmNlb2YgY2hlY2sgZG9lc24ndCB3b3JrIGZvciBhcnJvdyBmdW5jdGlvbnMuCiAgfQoKICBpZiAoRXJyb3IuaXNQcm90b3R5cGVPZihleHBlY3RlZCkpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CgogIHJldHVybiBleHBlY3RlZC5jYWxsKHt9LCBhY3R1YWwpID09PSB0cnVlOwp9CgpmdW5jdGlvbiBfdHJ5QmxvY2soYmxvY2spIHsKICB2YXIgZXJyb3I7CiAgdHJ5IHsKICAgIGJsb2NrKCk7CiAgfSBjYXRjaCAoZSkgewogICAgZXJyb3IgPSBlOwogIH0KICByZXR1cm4gZXJyb3I7Cn0KCmZ1bmN0aW9uIF90aHJvd3Moc2hvdWxkVGhyb3csIGJsb2NrLCBleHBlY3RlZCwgbWVzc2FnZSkgewogIHZhciBhY3R1YWw7CgogIGlmICh0eXBlb2YgYmxvY2sgIT09ICdmdW5jdGlvbicpIHsKICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJyJibG9jayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7CiAgfQoKICBpZiAodHlwZW9mIGV4cGVjdGVkID09PSAnc3RyaW5nJykgewogICAgbWVzc2FnZSA9IGV4cGVjdGVkOwogICAgZXhwZWN0ZWQgPSBudWxsOwogIH0KCiAgYWN0dWFsID0gX3RyeUJsb2NrKGJsb2NrKTsKCiAgbWVzc2FnZSA9IChleHBlY3RlZCAmJiBleHBlY3RlZC5uYW1lID8gJyAoJyArIGV4cGVjdGVkLm5hbWUgKyAnKS4nIDogJy4nKSArCiAgICAgICAgICAgIChtZXNzYWdlID8gJyAnICsgbWVzc2FnZSA6ICcuJyk7CgogIGlmIChzaG91bGRUaHJvdyAmJiAhYWN0dWFsKSB7CiAgICBmYWlsKGFjdHVhbCwgZXhwZWN0ZWQsICdNaXNzaW5nIGV4cGVjdGVkIGV4Y2VwdGlvbicgKyBtZXNzYWdlKTsKICB9CgogIHZhciB1c2VyUHJvdmlkZWRNZXNzYWdlID0gdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnOwogIHZhciBpc1Vud2FudGVkRXhjZXB0aW9uID0gIXNob3VsZFRocm93ICYmIHV0aWwuaXNFcnJvcihhY3R1YWwpOwogIHZhciBpc1VuZXhwZWN0ZWRFeGNlcHRpb24gPSAhc2hvdWxkVGhyb3cgJiYgYWN0dWFsICYmICFleHBlY3RlZDsKCiAgaWYgKChpc1Vud2FudGVkRXhjZXB0aW9uICYmCiAgICAgIHVzZXJQcm92aWRlZE1lc3NhZ2UgJiYKICAgICAgZXhwZWN0ZWRFeGNlcHRpb24oYWN0dWFsLCBleHBlY3RlZCkpIHx8CiAgICAgIGlzVW5leHBlY3RlZEV4Y2VwdGlvbikgewogICAgZmFpbChhY3R1YWwsIGV4cGVjdGVkLCAnR290IHVud2FudGVkIGV4Y2VwdGlvbicgKyBtZXNzYWdlKTsKICB9CgogIGlmICgoc2hvdWxkVGhyb3cgJiYgYWN0dWFsICYmIGV4cGVjdGVkICYmCiAgICAgICFleHBlY3RlZEV4Y2VwdGlvbihhY3R1YWwsIGV4cGVjdGVkKSkgfHwgKCFzaG91bGRUaHJvdyAmJiBhY3R1YWwpKSB7CiAgICB0aHJvdyBhY3R1YWw7CiAgfQp9CgovLyAxMS4gRXhwZWN0ZWQgdG8gdGhyb3cgYW4gZXJyb3I6Ci8vIGFzc2VydC50aHJvd3MoYmxvY2ssIEVycm9yX29wdCwgbWVzc2FnZV9vcHQpOwoKYXNzZXJ0LnRocm93cyA9IGZ1bmN0aW9uKGJsb2NrLCAvKm9wdGlvbmFsKi9lcnJvciwgLypvcHRpb25hbCovbWVzc2FnZSkgewogIF90aHJvd3ModHJ1ZSwgYmxvY2ssIGVycm9yLCBtZXNzYWdlKTsKfTsKCi8vIEVYVEVOU0lPTiEgVGhpcyBpcyBhbm5veWluZyB0byB3cml0ZSBvdXRzaWRlIHRoaXMgbW9kdWxlLgphc3NlcnQuZG9lc05vdFRocm93ID0gZnVuY3Rpb24oYmxvY2ssIC8qb3B0aW9uYWwqL2Vycm9yLCAvKm9wdGlvbmFsKi9tZXNzYWdlKSB7CiAgX3Rocm93cyhmYWxzZSwgYmxvY2ssIGVycm9yLCBtZXNzYWdlKTsKfTsKCmFzc2VydC5pZkVycm9yID0gZnVuY3Rpb24oZXJyKSB7IGlmIChlcnIpIHRocm93IGVycjsgfTsKCnZhciBvYmplY3RLZXlzID0gT2JqZWN0LmtleXMgfHwgZnVuY3Rpb24gKG9iaikgewogIHZhciBrZXlzID0gW107CiAgZm9yICh2YXIga2V5IGluIG9iaikgewogICAgaWYgKGhhc093bi5jYWxsKG9iaiwga2V5KSkga2V5cy5wdXNoKGtleSk7CiAgfQogIHJldHVybiBrZXlzOwp9OwoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oNykpKQoKLyoqKi8gfSksCi8qIDg5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgovLyBOb3RlOiBhZGxlcjMyIHRha2VzIDEyJSBmb3IgbGV2ZWwgMCBhbmQgMiUgZm9yIGxldmVsIDYuCi8vIEl0IGlzbid0IHdvcnRoIGl0IHRvIG1ha2UgYWRkaXRpb25hbCBvcHRpbWl6YXRpb25zIGFzIGluIG9yaWdpbmFsLgovLyBTbWFsbCBzaXplIGlzIHByZWZlcmFibGUuCgovLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KLy8KLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCi8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCi8vCi8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAovLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0Ci8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKLy8KLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQovLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQovLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCi8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgovLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKZnVuY3Rpb24gYWRsZXIzMihhZGxlciwgYnVmLCBsZW4sIHBvcykgewogIHZhciBzMSA9IChhZGxlciAmIDB4ZmZmZikgfDAsCiAgICAgIHMyID0gKChhZGxlciA+Pj4gMTYpICYgMHhmZmZmKSB8MCwKICAgICAgbiA9IDA7CgogIHdoaWxlIChsZW4gIT09IDApIHsKICAgIC8vIFNldCBsaW1pdCB+IHR3aWNlIGxlc3MgdGhhbiA1NTUyLCB0byBrZWVwCiAgICAvLyBzMiBpbiAzMS1iaXRzLCBiZWNhdXNlIHdlIGZvcmNlIHNpZ25lZCBpbnRzLgogICAgLy8gaW4gb3RoZXIgY2FzZSAlPSB3aWxsIGZhaWwuCiAgICBuID0gbGVuID4gMjAwMCA/IDIwMDAgOiBsZW47CiAgICBsZW4gLT0gbjsKCiAgICBkbyB7CiAgICAgIHMxID0gKHMxICsgYnVmW3BvcysrXSkgfDA7CiAgICAgIHMyID0gKHMyICsgczEpIHwwOwogICAgfSB3aGlsZSAoLS1uKTsKCiAgICBzMSAlPSA2NTUyMTsKICAgIHMyICU9IDY1NTIxOwogIH0KCiAgcmV0dXJuIChzMSB8IChzMiA8PCAxNikpIHwwOwp9CgoKbW9kdWxlLmV4cG9ydHMgPSBhZGxlcjMyOwoKCi8qKiovIH0pLAovKiA5MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKLy8gTm90ZTogd2UgY2FuJ3QgZ2V0IHNpZ25pZmljYW50IHNwZWVkIGJvb3N0IGhlcmUuCi8vIFNvIHdyaXRlIGNvZGUgdG8gbWluaW1pemUgc2l6ZSAtIG5vIHByZWdlbmVyYXRlZCB0YWJsZXMKLy8gYW5kIGFycmF5IHRvb2xzIGRlcGVuZGVuY2llcy4KCi8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgovLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgovLwovLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAovLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KLy8KLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCi8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgovLwovLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAovLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCi8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCi8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCi8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgovLyBVc2Ugb3JkaW5hcnkgYXJyYXksIHNpbmNlIHVudHlwZWQgbWFrZXMgbm8gYm9vc3QgaGVyZQpmdW5jdGlvbiBtYWtlVGFibGUoKSB7CiAgdmFyIGMsIHRhYmxlID0gW107CgogIGZvciAodmFyIG4gPSAwOyBuIDwgMjU2OyBuKyspIHsKICAgIGMgPSBuOwogICAgZm9yICh2YXIgayA9IDA7IGsgPCA4OyBrKyspIHsKICAgICAgYyA9ICgoYyAmIDEpID8gKDB4RURCODgzMjAgXiAoYyA+Pj4gMSkpIDogKGMgPj4+IDEpKTsKICAgIH0KICAgIHRhYmxlW25dID0gYzsKICB9CgogIHJldHVybiB0YWJsZTsKfQoKLy8gQ3JlYXRlIHRhYmxlIG9uIGxvYWQuIEp1c3QgMjU1IHNpZ25lZCBsb25ncy4gTm90IGEgcHJvYmxlbS4KdmFyIGNyY1RhYmxlID0gbWFrZVRhYmxlKCk7CgoKZnVuY3Rpb24gY3JjMzIoY3JjLCBidWYsIGxlbiwgcG9zKSB7CiAgdmFyIHQgPSBjcmNUYWJsZSwKICAgICAgZW5kID0gcG9zICsgbGVuOwoKICBjcmMgXj0gLTE7CgogIGZvciAodmFyIGkgPSBwb3M7IGkgPCBlbmQ7IGkrKykgewogICAgY3JjID0gKGNyYyA+Pj4gOCkgXiB0WyhjcmMgXiBidWZbaV0pICYgMHhGRl07CiAgfQoKICByZXR1cm4gKGNyYyBeICgtMSkpOyAvLyA+Pj4gMDsKfQoKCm1vZHVsZS5leHBvcnRzID0gY3JjMzI7CgoKLyoqKi8gfSksCi8qIDkxICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0gW1siYTE0MCIsIu6ThiIsNjJdLFsiYTE4MCIsIu6UhSIsMzJdLFsiYTI0MCIsIu6UpiIsNjJdLFsiYTI4MCIsIu6VpSIsMzJdLFsiYTJhYiIsIu6dpiIsNV0sWyJhMmUzIiwi4oKs7p2tIl0sWyJhMmVmIiwi7p2u7p2vIl0sWyJhMmZkIiwi7p2w7p2xIl0sWyJhMzQwIiwi7paGIiw2Ml0sWyJhMzgwIiwi7peFIiwzMSwi44CAIl0sWyJhNDQwIiwi7pemIiw2Ml0sWyJhNDgwIiwi7pilIiwzMl0sWyJhNGY0Iiwi7p2yIiwxMF0sWyJhNTQwIiwi7pmGIiw2Ml0sWyJhNTgwIiwi7pqFIiwzMl0sWyJhNWY3Iiwi7p29Iiw3XSxbImE2NDAiLCLumqYiLDYyXSxbImE2ODAiLCLum6UiLDMyXSxbImE2YjkiLCLunoUiLDddLFsiYTZkOSIsIu6ejSIsNl0sWyJhNmVjIiwi7p6U7p6VIl0sWyJhNmYzIiwi7p6WIl0sWyJhNmY2Iiwi7p6XIiw4XSxbImE3NDAiLCLunIYiLDYyXSxbImE3ODAiLCLunYUiLDMyXSxbImE3YzIiLCLunqAiLDE0XSxbImE3ZjIiLCLunq8iLDEyXSxbImE4OTYiLCLunrwiLDEwXSxbImE4YmMiLCLun4ciXSxbImE4YmYiLCLHuSJdLFsiYThjMSIsIu6fie6fiu6fi+6fjCJdLFsiYThlYSIsIu6fjSIsMjBdLFsiYTk1OCIsIu6foiJdLFsiYTk1YiIsIu6foyJdLFsiYTk1ZCIsIu6fpO6fpe6fpiJdLFsiYTk4OSIsIuOAvuK/sCIsMTFdLFsiYTk5NyIsIu6ftCIsMTJdLFsiYTlmMCIsIu6ggSIsMTRdLFsiYWFhMSIsIu6AgCIsOTNdLFsiYWJhMSIsIu6BniIsOTNdLFsiYWNhMSIsIu6CvCIsOTNdLFsiYWRhMSIsIu6EmiIsOTNdLFsiYWVhMSIsIu6FuCIsOTNdLFsiYWZhMSIsIu6HliIsOTNdLFsiZDdmYSIsIu6gkCIsNF0sWyJmOGExIiwi7oi0Iiw5M10sWyJmOWExIiwi7oqSIiw5M10sWyJmYWExIiwi7ouwIiw5M10sWyJmYmExIiwi7o2OIiw5M10sWyJmY2ExIiwi7o6sIiw5M10sWyJmZGExIiwi7pCKIiw5M10sWyJmZTUwIiwi4rqB7qCW7qCX7qCY4rqE45Gz45GH4rqI4rqL7qCe45ae45ia45iO4rqM4rqX46Wu46SY7qCm46eP46ef46mz46eQ7qCr7qCs462O47Gu47Og4rqn7qCx7qCy4rqq5IGW5IWf4rqu5Iy34rqz4rq24rq37qC75I6x5I6s4rq75I+d5JOW5Jmh5JmM7qGDIl0sWyJmZTgwIiwi5Jyj5Jyp5J285J6N4ruK5KWH5KW65KW95KaC5KaD5KaF5KaG5Kaf5Kab5Ka35Ka27qGU7qGV5LKj5LKf5LKg5LKh5LG35LKi5LSTIiw2LCLktq7uoaTukagiLDkzXV0KCi8qKiovIH0pLAovKiA5MiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7Cgptb2R1bGUuZXhwb3J0cyA9IFtbIjAiLCJcdTAwMDAiLDEyN10sWyJhMTQwIiwi44CA77yM44CB44CC77yO4oCn77yb77ya77yf77yB77iw4oCm4oCl77mQ77mR77mSwrfvuZTvuZXvuZbvuZfvvZzigJPvuLHigJTvuLPilbTvuLTvuY/vvIjvvInvuLXvuLbvvZvvvZ3vuLfvuLjjgJTjgJXvuLnvuLrjgJDjgJHvuLvvuLzjgIrjgIvvuL3vuL7jgIjjgInvuL/vuYDjgIzjgI3vuYHvuYLjgI7jgI/vuYPvuYTvuZnvuZoiXSxbImExYTEiLCLvuZvvuZzvuZ3vuZ7igJjigJnigJzigJ3jgJ3jgJ7igLXigLLvvIPvvIbvvIrigLvCp+OAg+KXi+KXj+KWs+KWsuKXjuKYhuKYheKXh+KXhuKWoeKWoOKWveKWvOOKo+KEhcKv77+j77y/y43vuYnvuYrvuY3vuY7vuYvvuYzvuZ/vuaDvuaHvvIvvvI3Dl8O3wrHiiJrvvJzvvJ7vvJ3iiabiiafiiaDiiJ7iiZLiiaHvuaIiLDQsIu+9nuKIqeKIquKKpeKIoOKIn+KKv+OPkuOPkeKIq+KIruKIteKItOKZgOKZguKKleKKmeKGkeKGk+KGkOKGkuKGluKGl+KGmeKGmOKIpeKIo++8jyJdLFsiYTI0MCIsIu+8vOKIle+5qO+8hO+/peOAku+/oO+/oe+8he+8oOKEg+KEie+5qe+5qu+5q+OPleOOnOOOneOOnuOPjuOOoeOOjuOOj+OPhMKw5YWZ5YWb5YWe5YWd5YWh5YWj5Zen55Op57OO4paBIiw3LCLilo/ilo7ilo3ilozilovilorilonilLzilLTilKzilKTilJzilpTilIDilILilpXilIzilJDilJTilJjila0iXSxbImEyYTEiLCLila7ilbDila/ilZDilZ7ilarilaHil6Lil6Pil6Xil6TilbHilbLilbPvvJAiLDksIuKFoCIsOSwi44ChIiw4LCLljYHljYTljYXvvKEiLDI1LCLvvYEiLDIxXSxbImEzNDAiLCLvvZfvvZjvvZnvvZrOkSIsMTYsIs6jIiw2LCLOsSIsMTYsIs+DIiw2LCLjhIUiLDEwXSxbImEzYTEiLCLjhJAiLDI1LCLLmcuJy4rLh8uLIl0sWyJhM2UxIiwi4oKsIl0sWyJhNDQwIiwi5LiA5LmZ5LiB5LiD5LmD5Lmd5LqG5LqM5Lq65YS/5YWl5YWr5Yeg5YiA5YiB5Yqb5YyV5Y2B5Y2c5Y+I5LiJ5LiL5LiI5LiK5Lir5Li45Yeh5LmF5LmI5Lmf5Lme5LqO5Lqh5YWA5YiD5Yu65Y2D5Y+J5Y+j5Zyf5aOr5aSV5aSn5aWz5a2Q5a2R5a2T5a+45bCP5bCi5bC45bGx5bed5bel5bex5bey5bez5be+5bmy5bu+5byL5byT5omNIl0sWyJhNGExIiwi5LiR5LiQ5LiN5Lit5Liw5Li55LmL5bC55LqI5LqR5LqV5LqS5LqU5Lqi5LuB5LuA5LuD5LuG5LuH5LuN5LuK5LuL5LuE5YWD5YWB5YWn5YWt5YWu5YWs5YaX5Ye25YiG5YiH5YiI5Yu75Yu+5Yu/5YyW5Yy55Y2I5Y2H5Y2F5Y2e5Y6E5Y+L5Y+K5Y+N5aOs5aSp5aSr5aSq5aSt5a2U5bCR5bCk5bC65bGv5be05bm75bu/5byU5byV5b+D5oiI5oi25omL5omO5pSv5paH5paX5pak5pa55pel5puw5pyI5pyo5qyg5q2i5q255q+L5q+U5q+b5rCP5rC054Gr54iq54i254i754mH54mZ54mb54qs546L5LiZIl0sWyJhNTQwIiwi5LiW5LiV5LiU5LiY5Li75LmN5LmP5LmO5Lul5LuY5LuU5LuV5LuW5LuX5Luj5Luk5LuZ5Lue5YWF5YWE5YaJ5YaK5Yas5Ye55Ye65Ye45YiK5Yqg5Yqf5YyF5YyG5YyX5Yyd5Luf5Y2K5Y2J5Y2h5Y2g5Y2v5Y2u5Y675Y+v5Y+k5Y+z5Y+s5Y+u5Y+p5Y+o5Y+85Y+45Y+15Y+r5Y+m5Y+q5Y+y5Y+x5Y+w5Y+l5Y+t5Y+75Zub5Zua5aSWIl0sWyJhNWExIiwi5aSu5aSx5aW05aW25a2V5a6D5bC85beo5ben5bem5biC5biD5bmz5bm85byB5byY5byX5b+F5oiK5omT5omU5omS5omR5pal5pem5pyu5pys5pyq5pyr5pyt5q2j5q+N5rCR5rCQ5rC45rGB5rGA5rC+54qv546E546J55Oc55Om55SY55Sf55So55Sp55Sw55Sx55Sy55Sz55aL55m955qu55q/55uu55+b55+i55+z56S656a+56m056uL5Lie5Lif5LmS5LmT5Lmp5LqZ5Lqk5Lqm5Lql5Lu/5LyJ5LyZ5LyK5LyV5LyN5LyQ5LyR5LyP5Luy5Lu25Lu75Luw5Luz5Lu95LyB5LyL5YWJ5YWH5YWG5YWI5YWoIl0sWyJhNjQwIiwi5YWx5YaN5Yaw5YiX5YiR5YiS5YiO5YiW5Yqj5YyI5Yyh5Yyg5Y2w5Y2x5ZCJ5ZCP5ZCM5ZCK5ZCQ5ZCB5ZCL5ZCE5ZCR5ZCN5ZCI5ZCD5ZCO5ZCG5ZCS5Zug5Zue5Zud5Zyz5Zyw5Zyo5Zyt5Zys5Zyv5Zyp5aSZ5aSa5aS35aS45aaE5aW45aaD5aW95aW55aaC5aaB5a2X5a2Y5a6H5a6I5a6F5a6J5a+65bCW5bG55bee5biG5bm25bm0Il0sWyJhNmExIiwi5byP5byb5b+Z5b+W5oiO5oiM5oiN5oiQ5omj5omb5omY5pS25pep5peo5pes5pet5puy5puz5pyJ5py95py05pyx5py15qyh5q2k5q275rCW5rGd5rGX5rGZ5rGf5rGg5rGQ5rGV5rGh5rGb5rGN5rGO54Gw54mf54md55m+56u557Gz57O457y2576K57696ICB6ICD6ICM6ICS6ICz6IG/6IKJ6IKL6IKM6Iej6Ieq6Iez6Ie86IiM6Iib6Iif6Imu6Imy6Im+6Jmr6KGA6KGM6KGj6KW/6Zih5Liy5Lqo5L2N5L2P5L2H5L2X5L2e5Ly05L2b5L2V5Lyw5L2Q5L2R5Ly95Ly65Ly45L2D5L2U5Ly85L2G5L2jIl0sWyJhNzQwIiwi5L2c5L2g5Lyv5L2O5Ly25L2Z5L2d5L2I5L2a5YWM5YWL5YWN5YW15Ya25Ya35Yil5Yik5Yip5Yiq5Yio5Yqr5Yqp5Yqq5Yqs5Yyj5Y2z5Y215ZCd5ZCt5ZCe5ZC+5ZCm5ZGO5ZCn5ZGG5ZGD5ZCz5ZGI5ZGC5ZCb5ZCp5ZGK5ZC55ZC75ZC45ZCu5ZC15ZC25ZCg5ZC85ZGA5ZCx5ZCr5ZCf5ZCs5Zuq5Zuw5Zuk5Zur5Z2K5Z2R5Z2A5Z2NIl0sWyJhN2ExIiwi5Z2H5Z2O5Zy+5Z2Q5Z2P5Zy75aOv5aS+5aad5aaS5aao5aae5aaj5aaZ5aaW5aaN5aak5aaT5aaK5aal5a2d5a2c5a2a5a2b5a6M5a6L5a6P5bCs5bGA5bGB5bC/5bC+5bKQ5bKR5bKU5bKM5ber5biM5bqP5bqH5bqK5bu35byE5byf5b2k5b2i5b235b255b+Y5b+M5b+X5b+N5b+x5b+r5b+45b+q5oiS5oiR5oqE5oqX5oqW5oqA5om25oqJ5omt5oqK5om85om+5om55omz5oqS5omv5oqY5omu5oqV5oqT5oqR5oqG5pS55pS75pS45pex5pu05p2f5p2O5p2P5p2Q5p2R5p2c5p2W5p2e5p2J5p2G5p2gIl0sWyJhODQwIiwi5p2T5p2X5q2l5q+P5rGC5rGe5rKZ5rKB5rKI5rKJ5rKF5rKb5rGq5rG65rKQ5rGw5rKM5rGo5rKW5rKS5rG95rKD5rGy5rG+5rG05rKG5rG25rKN5rKU5rKY5rKC54G254G854G954G454mi54mh54mg54uE54uC546W55Ss55Sr55S355S455qC55uv55+j56eB56eA56a/56m257O7572V6IKW6IKT6IKd6IKY6IKb6IKa6IKy6Imv6IqSIl0sWyJhOGExIiwi6IqL6IqN6KaL6KeS6KiA6LC36LGG6LGV6LKd6LWk6LWw6Laz6Lqr6LuK6L6b6L6w6L+C6L+G6L+F6L+E5beh6YKR6YKi6YKq6YKm6YKj6YWJ6YeG6YeM6Ziy6Ziu6Zix6Ziq6Zis5Lim5LmW5Lmz5LqL5Lqb5Lqe5Lqr5Lqs5L2v5L6d5L6N5L2z5L2/5L2s5L6b5L6L5L6G5L6D5L2w5L215L6I5L2p5L275L6W5L2+5L6P5L6R5L265YWU5YWS5YWV5YWp5YW35YW25YW45Ya95Ye95Yi75Yi45Yi35Yi65Yiw5Yiu5Yi25YmB5Yq+5Yq75Y2S5Y2U5Y2T5Y2R5Y2m5Y235Y245Y255Y+W5Y+U5Y+X5ZGz5ZG1Il0sWyJhOTQwIiwi5ZKW5ZG45ZKV5ZKA5ZG75ZG35ZKE5ZKS5ZKG5ZG85ZKQ5ZGx5ZG25ZKM5ZKa5ZGi5ZGo5ZKL5ZG95ZKO5Zu65Z6D5Z235Z2q5Z2p5Z2h5Z2m5Z2k5Z285aSc5aWJ5aWH5aWI5aWE5aWU5aa+5aa75aeU5aa55aau5aeR5aeG5aeQ5aeN5aeL5aeT5aeK5aav5aaz5aeS5aeF5a2f5a2k5a2j5a6X5a6a5a6Y5a6c5a6Z5a6b5bCa5bGI5bGFIl0sWyJhOWExIiwi5bGG5bK35bKh5bK45bKp5bKr5bKx5bKz5biY5bia5biW5biV5bib5biR5bm45bqa5bqX5bqc5bqV5bqW5bu25bym5byn5byp5b6A5b6B5b2/5b285b+d5b+g5b+95b+15b+/5oCP5oCU5oCv5oC15oCW5oCq5oCV5oCh5oCn5oCp5oCr5oCb5oiW5oiV5oi/5oi+5omA5om/5ouJ5ouM5ouE5oq/5ouC5oq55ouS5oub5oqr5ouT5ouU5ouL5ouI5oqo5oq95oq85ouQ5ouZ5ouH5ouN5oq15oua5oqx5ouY5ouW5ouX5ouG5oqs5ouO5pS+5pan5pa85pe65piU5piT5piM5piG5piC5piO5piA5piP5piV5piKIl0sWyJhYTQwIiwi5piH5pyN5pyL5p2t5p6L5p6V5p2x5p6c5p2z5p235p6H5p6d5p6X5p2v5p2w5p2/5p6J5p2+5p6Q5p215p6a5p6T5p285p2q5p2y5qyj5q2m5q2n5q2/5rCT5rCb5rOj5rOo5rOz5rKx5rOM5rOl5rKz5rK95rK+5rK85rOi5rKr5rOV5rOT5rK45rOE5rK55rOB5rKu5rOX5rOF5rOx5rK/5rK75rOh5rOb5rOK5rKs5rOv5rOc5rOW5rOgIl0sWyJhYWExIiwi54KV54KO54KS54KK54KZ54is54it54i454mI54mn54mp54uA54uO54uZ54uX54uQ546p546o546f546r546l55S955ad55aZ55aa55qE55uC55uy55u055+l55+956S+56WA56WB56eJ56eI56m656m556u657O+572U576M576L6ICF6IK66IKl6IKi6IKx6IKh6IKr6IKp6IK06IKq6IKv6Iel6Ie+6IiN6Iqz6Iqd6IqZ6Iqt6Iq96Iqf6Iq56Iqx6Iqs6Iql6Iqv6Iq46Iqj6Iqw6Iq+6Iq36JmO6Jmx5Yid6KGo6LuL6L+O6L+U6L+R6YK16YK46YKx6YK26YeH6YeR6ZW36ZaA6Zic6ZmA6Zi/6Zi76ZmEIl0sWyJhYjQwIiwi6ZmC6Zq56Zuo6Z2S6Z2e5Lqf5Lqt5Lqu5L+h5L615L6v5L6/5L+g5L+R5L+P5L+d5L+D5L625L+Y5L+f5L+K5L+X5L6u5L+Q5L+E5L+C5L+a5L+O5L+e5L635YWX5YaS5YaR5Yag5YmO5YmD5YmK5YmN5YmM5YmL5YmH5YuH5YuJ5YuD5YuB5YyN5Y2X5Y275Y6a5Y+b5ZKs5ZOA5ZKo5ZOO5ZOJ5ZK45ZKm5ZKz5ZOH5ZOC5ZK95ZKq5ZOBIl0sWyJhYmExIiwi5ZOE5ZOI5ZKv5ZKr5ZKx5ZK75ZKp5ZKn5ZK/5Zu/5Z6C5Z6L5Z6g5Z6j5Z6i5Z+O5Z6u5Z6T5aWV5aWR5aWP5aWO5aWQ5aec5aeY5ae/5aej5aeo5aiD5ael5aeq5aea5aem5aiB5ae75a2p5a6j5a6m5a6k5a6i5a6l5bCB5bGO5bGP5bGN5bGL5bOZ5bOS5be35bid5bil5bif5bm95bqg5bqm5bu65byI5byt5b2l5b6I5b6F5b6K5b6L5b6H5b6M5b6J5oCS5oCd5oCg5oCl5oCO5oCo5oGN5oGw5oGo5oGi5oGG5oGD5oGs5oGr5oGq5oGk5omB5ouc5oyW5oyJ5ou85out5oyB5ouu5ou95oyH5oux5ou3Il0sWyJhYzQwIiwi5ouv5ous5ou+5ou05oyR5oyC5pS/5pWF5par5pa95pei5pil5pit5pig5pin5piv5pif5pio5pix5pik5pu35p+/5p+T5p+x5p+U5p+Q5p+s5p625p6v5p+15p+p5p+v5p+E5p+R5p605p+a5p+l5p645p+P5p+e5p+z5p6w5p+Z5p+i5p+d5p+S5q2q5q6D5q6G5q615q+S5q+X5rCf5rOJ5rSL5rSy5rSq5rWB5rSl5rSM5rSx5rSe5rSXIl0sWyJhY2ExIiwi5rS75rS95rS+5rS25rSb5rO15rS55rSn5rS45rSp5rSu5rS15rSO5rSr54Kr54K654Kz54Ks54Kv54Kt54K454Ku54Kk54iw54my54mv54m054up54ug54uh546354+K5467546y54+N54+A546z55Sa55St55WP55WM55WO55WL55ar55ak55al55ai55aj55m455qG55qH55qI55uI55uG55uD55uF55yB55u555u455yJ55yL55u+55u855yH55+c56CC56CU56CM56CN56WG56WJ56WI56WH56a556a656eR56eS56eL56m/56qB56u/56u957G957SC57SF57SA57SJ57SH57SE57SG57y4576O576/6ICEIl0sWyJhZDQwIiwi6ICQ6ICN6ICR6IC26IOW6IOl6IOa6IOD6IOE6IOM6IOh6IOb6IOO6IOe6IOk6IOd6Ie06Iii6Iun6IyD6IyF6Iuj6Iub6Ium6IyE6Iul6IyC6IyJ6IuS6IuX6Iux6IyB6Iuc6IuU6IuR6Iue6IuT6Iuf6Iuv6IyG6JmQ6Jm56Jm76Jm66KGN6KGr6KaB6KeU6KiI6KiC6KiD6LKe6LKg6LW06LWz6La06LuN6LuM6L+w6L+m6L+i6L+q6L+lIl0sWyJhZGExIiwi6L+t6L+r6L+k6L+o6YOK6YOO6YOB6YOD6YWL6YWK6YeN6ZaC6ZmQ6ZmL6ZmM6ZmN6Z2i6Z2p6Z+L6Z+t6Z+z6aCB6aKo6aOb6aOf6aaW6aaZ5LmY5Lqz5YCM5YCN5YCj5L+v5YCm5YCl5L+45YCp5YCW5YCG5YC85YCf5YCa5YCS5YCR5L+65YCA5YCU5YCo5L+x5YCh5YCL5YCZ5YCY5L+z5L+u5YCt5YCq5L++5YCr5YCJ5YW85Yak5Yal5Yai5YeN5YeM5YeG5YeL5YmW5Ymc5YmU5Ymb5Ymd5Yyq5Y2/5Y6f5Y6d5Y+f5ZOo5ZSQ5ZSB5ZS35ZO85ZOl5ZOy5ZSG5ZO65ZSU5ZOp5ZOt5ZOh5ZSJ5ZOu5ZOqIl0sWyJhZTQwIiwi5ZOm5ZSn5ZSH5ZO95ZSP5ZyD5ZyE5Z+C5Z+U5Z+L5Z+D5aCJ5aSP5aWX5aWY5aWa5aiR5aiY5aic5aif5aib5aiT5aes5aig5aij5aip5ail5aiM5aiJ5a2r5bGY5a6w5a6z5a625a605a6u5a615a655a645bCE5bGR5bGV5bGQ5bOt5bO95bO75bOq5bOo5bOw5bO25bSB5bO05beu5bit5bir5bqr5bqt5bqn5byx5b6S5b6R5b6Q5oGZIl0sWyJhZWExIiwi5oGj5oGl5oGQ5oGV5oGt5oGp5oGv5oKE5oKf5oKa5oKN5oKU5oKM5oKF5oKW5omH5ouz5oyI5ou/5o2O5oy+5oyv5o2V5o2C5o2G5o2P5o2J5oy65o2Q5oy95oyq5oyr5oyo5o2N5o2M5pWI5pWJ5paZ5peB5peF5pmC5pmJ5pmP5pmD5pmS5pmM5pmF5pmB5pu45pyU5pyV5pyX5qCh5qC45qGI5qGG5qGT5qC55qGC5qGU5qCp5qKz5qCX5qGM5qGR5qC95p+05qGQ5qGA5qC85qGD5qCq5qGF5qCT5qCY5qGB5q6K5q6J5q635rCj5rCn5rCo5rCm5rCk5rOw5rWq5raV5raI5raH5rWm5rW45rW35rWZ5raTIl0sWyJhZjQwIiwi5rWs5raJ5rWu5rWa5rW05rWp5raM5raK5rW55raF5rWl5raU54OK54OY54Ok54OZ54OI54OP54i554m554u854u554u954u454u3546G54+t55CJ54+u54+g54+q54+e55WU55Wd55Wc55Wa55WZ55a+55eF55eH55ay55az55a955a855a555eC55a455qL55qw55uK55uN55uO55yp55yf55yg55yo55+p56Cw56Cn56C456Cd56C056C3Il0sWyJhZmExIiwi56Cl56Ct56Cg56Cf56Cy56WV56WQ56Wg56Wf56WW56We56Wd56WX56Wa56ek56ej56en56ef56em56ep56eY56qE56qI56uZ56yG56yR57KJ57Sh57SX57SL57SK57Sg57Si57SU57SQ57SV57Sa57Sc57SN57SZ57Sb57y6572f576U57+F57+B6ICG6ICY6ICV6ICZ6ICX6IC96IC/6IOx6ISC6IOw6ISF6IOt6IO06ISG6IO46IOz6ISI6IO96ISK6IO86IOv6Iet6Ies6IiA6IiQ6Iiq6Iir6Iio6Iis6Iq76Iyr6I2S6I2U6I2K6Iy46I2Q6I2J6Iy16Iy06I2P6Iyy6Iy56Iy26IyX6I2A6Iyx6Iyo6I2DIl0sWyJiMDQwIiwi6JmU6JqK6Jqq6JqT6Jqk6Jqp6JqM6Jqj6Jqc6KGw6KG36KKB6KKC6KG96KG56KiY6KiQ6KiO6KiM6KiV6KiK6KiX6KiT6KiW6KiP6KiR6LGI6LG66LG56LKh6LKi6LW36Lqs6LuS6LuU6LuP6L6x6YCB6YCG6L+36YCA6L+66L+06YCD6L+96YCF6L+46YKV6YOh6YOd6YOi6YWS6YWN6YWM6YeY6Yed6YeX6Yec6YeZ6ZaD6Zmi6Zmj6ZmhIl0sWyJiMGExIiwi6Zmb6Zmd6Zmk6ZmY6Zme6Zq76aOi6aas6aqo6auY6ayl6ayy6ay85Lm+5YG65YG95YGc5YGH5YGD5YGM5YGa5YGJ5YGl5YG25YGO5YGV5YG15YG05YG35YGP5YCP5YGv5YGt5YWc5YaV5Yew5Ymq5Ymv5YuS5YuZ5YuY5YuV5YyQ5YyP5YyZ5Yy/5Y2A5Yy+5Y+D5pu85ZWG5ZWq5ZWm5ZWE5ZWe5ZWh5ZWD5ZWK5ZSx5ZWW5ZWP5ZWV5ZSv5ZWk5ZS45ZSu5ZWc5ZSs5ZWj5ZSz5ZWB5ZWX5ZyI5ZyL5ZyJ5Z+f5aCF5aCK5aCG5Z+g5Z+k5Z+65aCC5aC15Z+35Z+55aSg5aWi5ai25amB5amJ5amm5amq5amAIl0sWyJiMTQwIiwi5ai85ami5ama5amG5amK5a2w5a+H5a+F5a+E5a+C5a6/5a+G5bCJ5bCI5bCH5bGg5bGc5bGd5bSH5bSG5bSO5bSb5bSW5bSi5bSR5bSp5bSU5bSZ5bSk5bSn5bSX5bei5bi45bi25biz5bi35bq35bq45bq25bq15bq+5by15by35b2X5b2s5b2p5b2r5b6X5b6Z5b6e5b6Y5b6h5b6g5b6c5oG/5oKj5oKJ5oKg5oKo5oOL5oK05oOm5oK9Il0sWyJiMWExIiwi5oOF5oK75oK15oOc5oK85oOY5oOV5oOG5oOf5oK45oOa5oOH5oia5oib5omI5o6g5o6n5o2y5o6W5o6i5o6l5o235o2n5o6Y5o6q5o2x5o6p5o6J5o6D5o6b5o2r5o6o5o6E5o6I5o6Z5o6h5o6s5o6S5o6P5o6A5o275o2p5o2o5o265pWd5pWW5pWR5pWZ5pWX5ZWf5pWP5pWY5pWV5pWU5pac5pab5pas5peP5peL5peM5peO5pmd5pma5pmk5pmo5pmm5pme5pu55YuX5pyb5qKB5qKv5qKi5qKT5qK15qG/5qG25qKx5qKn5qKX5qKw5qKD5qOE5qKt5qKG5qKF5qKU5qKd5qKo5qKf5qKh5qKC5qyy5q66Il0sWyJiMjQwIiwi5q+r5q+s5rCr5raO5ra85rez5reZ5ray5reh5reM5rek5re75re65riF5reH5reL5rav5reR5rau5ree5re55ra45re35re15reF5reS5ria5ra15rea5rer5reY5req5rex5reu5reo5reG5reE5raq5res5ra/5rem54O554SJ54SK54O954Ov54i954m954qB54yc54yb54yW54yT54yZ546H55CF55CK55CD55CG54++55CN55Og55O2Il0sWyJiMmExIiwi55O355Sc55Si55Wl55Wm55Wi55Ww55aP55eU55eV55a155eK55eN55qO55uU55uS55ub55y355y+55y855y255y455y656Gr56GD56GO56Wl56Wo56Wt56e756qS56qV56yg56yo56yb56ys56ym56yZ56ye56yu57KS57KX57KV57WG57WD57Wx57Su57S557S857WA57Sw57Sz57WE57Sv57WC57Sy57Sx57y9576e576a57+M57+O57+S6ICc6IGK6IGG6ISv6ISW6ISj6ISr6ISp6ISw6ISk6IiC6Ii16Ii36Ii26Ii56I6O6I6e6I6Y6I246I6i6I6W6I696I6r6I6S6I6K6I6T6I6J6I6g6I236I276I28Il0sWyJiMzQwIiwi6I6G6I6n6JmV5b2q6JuH6JuA6Jq26JuE6Jq16JuG6JuL6Jqx6Jqv6JuJ6KGT6KKe6KKI6KKr6KKS6KKW6KKN6KKL6KaT6KaP6Kiq6Kid6Kij6Kil6Kix6Kit6Kif6Kib6Kii6LGJ6LGa6LKp6LKs6LKr6LKo6LKq6LKn6LWn6LWm6La+6La66Lub6Luf6YCZ6YCN6YCa6YCX6YCj6YCf6YCd6YCQ6YCV6YCe6YCg6YCP6YCi6YCW6YCb6YCUIl0sWyJiM2ExIiwi6YOo6YOt6YO96YWX6YeO6Ye16Yem6Yej6Yen6Yet6Yep6ZaJ6Zmq6Zm16Zmz6Zm46Zmw6Zm06Zm26Zm36Zms6ZuA6Zuq6Zup56ug56uf6aCC6aCD6a2a6bOl6bm16bm/6bql6bq75YKi5YKN5YKF5YKZ5YKR5YKA5YKW5YKY5YKa5pyA5Yex5Ymy5Ym05Ym15Ymp5Yue5Yud5Yub5Y2a5Y6l5ZW75ZaA5Zan5ZW85ZaK5Zad5ZaY5ZaC5Zac5Zaq5ZaU5ZaH5ZaL5ZaD5Zaz5Zau5Zaf5ZS+5Zay5Zaa5Za75Zas5Zax5ZW+5ZaJ5Zar5ZaZ5ZyN5aCv5aCq5aC05aCk5aCw5aCx5aCh5aCd5aCg5aO55aO65aWgIl0sWyJiNDQwIiwi5am35aqa5am/5aqS5aqb5aqn5a2z5a2x5a+S5a+M5a+T5a+Q5bCK5bCL5bCx5bWM5bWQ5bS05bWH5be95bmF5bi95bmA5bmD5bm+5buK5buB5buC5buE5by85b2t5b6p5b6q5b6o5oOR5oOh5oKy5oK25oOg5oSc5oSj5oO65oSV5oOw5oO75oO05oWo5oOx5oSO5oO25oSJ5oSA5oSS5oif5omJ5o6j5o6M5o+P5o+A5o+p5o+J5o+G5o+NIl0sWyJiNGExIiwi5o+S5o+j5o+Q5o+h5o+W5o+t5o+u5o225o+05o+q5o+b5pGS5o+a5o+55pWe5pWm5pWi5pWj5paR5paQ5pav5pmu5pmw5pm05pm25pmv5pqR5pm65pm+5pm35pu+5pu/5pyf5pyd5qO65qOV5qOg5qOY5qOX5qSF5qOf5qO15qOu5qOn5qO55qOS5qOy5qOj5qOL5qON5qSN5qSS5qSO5qOJ5qOa5qWu5qO75qy+5qy65qy95q6Y5q6W5q685q+v5rCu5rCv5rCs5riv5ri45rmU5rih5riy5rmn5rmK5rig5ril5rij5rib5rmb5rmY5rik5rmW5rmu5rit5rim5rmv5ri05rmN5ri65ris5rmD5rid5ri+5ruLIl0sWyJiNTQwIiwi5rqJ5riZ5rmO5rmj5rmE5rmy5rmp5rmf54SZ54Sa54Sm54Sw54Sh54S254Wu54Sc54mM54qE54qA54y254yl54y054yp55C655Cq55Cz55Ci55Cl55C155C255C055Cv55Cb55Cm55Co55Sl55Sm55Wr55Wq55ei55eb55ej55eZ55eY55ee55eg55m755m855qW55qT55q055uc552P55+t56Gd56Gs56Gv56iN56iI56iL56iF56iA56qYIl0sWyJiNWExIiwi56qX56qW56ul56uj562J562W562G562Q562S562U562N562L562P562R57Kf57Kl57We57WQ57Wo57WV57Sr57Wu57Wy57Wh57Wm57Wi57Ww57Wz5ZaE57+U57+V6ICL6IGS6IKF6IWV6IWU6IWL6IWR6IWO6IS56IWG6IS+6IWM6IWT6IW06IiS6Iic6I+p6JCD6I+46JCN6I+g6I+F6JCL6I+B6I+v6I+x6I+06JGX6JCK6I+w6JCM6I+M6I+96I+y6I+K6JC46JCO6JCE6I+c6JCH6I+U6I+f6Jmb6Juf6JuZ6Jut6JuU6Jub6Juk6JuQ6Jue6KGX6KOB6KOC6KKx6KaD6KaW6Ki76Kmg6KmV6Kme6Ki86KmBIl0sWyJiNjQwIiwi6KmU6Kmb6KmQ6KmG6Ki06Ki66Ki26KmW6LGh6LKC6LKv6LK86LKz6LK96LOB6LK76LOA6LK06LK36LK26LK/6LK46LaK6LaF6LaB6LeO6Led6LeL6Lea6LeR6LeM6Leb6LeG6Lu76Lu46Lu86L6c6YCu6YC16YCx6YC46YCy6YC26YSC6YO16YSJ6YO+6YWj6YWl6YeP6YiU6YiV6Yij6YiJ6Yie6YiN6YiQ6YiH6YiR6ZaU6ZaP6ZaL6ZaRIl0sWyJiNmExIiwi6ZaT6ZaS6ZaO6ZqK6ZqO6ZqL6Zm96ZqF6ZqG6ZqN6Zmy6ZqE6ZuB6ZuF6ZuE6ZuG6ZuH6Zuv6Zuy6Z+M6aCF6aCG6aCI6aOn6aOq6aOv6aOp6aOy6aOt6aau6aat6buD6buN6buR5LqC5YKt5YK15YKy5YKz5YOF5YK+5YKs5YK35YK75YKv5YOH5Ym/5Ym35Ym95Yuf5Yum5Yuk5Yui5Yuj5Yyv5Zef5Zeo5ZeT5Zem5ZeO5Zec5ZeH5ZeR5Zej5Zek5Zev5Zea5Zeh5ZeF5ZeG5Zel5ZeJ5ZyS5ZyT5aGe5aGR5aGY5aGX5aGa5aGU5aGr5aGM5aGt5aGK5aGi5aGS5aGL5aWn5auB5auJ5auM5aq+5aq95aq8Il0sWyJiNzQwIiwi5aqz5auC5aqy5bWp5bWv5bmM5bm55buJ5buI5byS5b2Z5b6s5b6u5oSa5oSP5oWI5oSf5oOz5oSb5oO55oSB5oSI5oWO5oWM5oWE5oWN5oS+5oS05oSn5oSN5oSG5oS35oih5oii5pCT5pC+5pCe5pCq5pCt5pC95pCs5pCP5pCc5pCU5pCN5pC25pCW5pCX5pCG5pWs5paf5paw5pqX5pqJ5pqH5pqI5pqW5pqE5pqY5pqN5pyD5qaU5qWtIl0sWyJiN2ExIiwi5qWa5qW35qWg5qWU5qW15qSw5qaC5qWK5qWo5qWr5qWe5qWT5qW55qaG5qWd5qWj5qWb5q2H5q2y5q+A5q6/5q+T5q+95rqi5rqv5ruT5rq25ruC5rqQ5rqd5ruH5ruF5rql5rqY5rq85rq65rqr5ruR5rqW5rqc5ruE5ruU5rqq5rqn5rq054WO54WZ54Wp54Wk54WJ54Wn54Wc54Ws54Wm54WM54Wl54We54WG54Wo54WW54i654mS54y3542F54y/54y+55Gv55Ga55GV55Gf55Ge55GB55C/55GZ55Gb55Gc55W255W455iA55ew55iB55ey55ex55e655e/55e055ez55ue55uf552b552r552m552e552jIl0sWyJiODQwIiwi5525552q552s552c552l552o552i55+u56KO56Kw56KX56KY56KM56KJ56G856KR56KT56G/56W656W/56aB6JCs56a956ic56ia56ig56iU56if56ie56qf56qg562356+A562g562u562n57Kx57Kz57K157aT57W557aR57aB57aP57Wb572u572p572q572y576p576o576k6IGW6IGY6IKG6IKE6IWx6IWw6IW46IWl6IWu6IWz6IWrIl0sWyJiOGExIiwi6IW56IW66IWm6IiF6ImH6JKC6JG36JC96JCx6JG16JGm6JGr6JGJ6JGs6JGb6JC86JC16JGh6JGj6JGp6JGt6JGG6Jme6Jmc6Jmf6Ju56JyT6JyI6JyH6JyA6Ju+6Ju76JyC6JyD6JyG6JyK6KGZ6KOf6KOU6KOZ6KOc6KOY6KOd6KOh6KOK6KOV6KOS6Kac6Kej6Kmr6Kmy6Kmz6Kmm6Kmp6Kmw6KqH6Km86Kmj6Kqg6Kmx6KqF6Kmt6Kmi6Kmu6Kms6Km56Km76Ki+6Kmo6LGi6LKK6LKJ6LOK6LOH6LOI6LOE6LKy6LOD6LOC6LOF6Leh6Lef6Leo6Lev6Lez6Le66Leq6Lek6Lem6Lqy6LyD6LyJ6Lu+6LyKIl0sWyJiOTQwIiwi6L6f6L6y6YGL6YGK6YGT6YGC6YGU6YC86YGV6YGQ6YGH6YGP6YGO6YGN6YGR6YC+6YGB6YSS6YSX6YWs6YWq6YWp6YeJ6Yi36YmX6Yi46Yi96YmA6Yi+6Ymb6YmL6Ymk6YmR6Yi06YmJ6YmN6YmF6Yi56Yi/6Yma6ZaY6ZqY6ZqU6ZqV6ZuN6ZuL6ZuJ6ZuK6Zu36Zu76Zu56Zu26Z2W6Z206Z226aCQ6aCR6aCT6aCK6aCS6aCM6aO86aO0Il0sWyJiOWExIiwi6aO96aO+6aaz6aax6aa06auh6bOp6bqC6byO6byT6byg5YOn5YOu5YOl5YOW5YOt5YOa5YOV5YOP5YOR5YOx5YOO5YOp5YWi5Yez5YqD5YqC5Yyx5Y6t5Ze+5ZiA5Zib5ZiX5Ze95ZiU5ZiG5ZiJ5ZiN5ZiO5Ze35ZiW5Zif5ZiI5ZiQ5Ze25ZyY5ZyW5aG15aG+5aKD5aKT5aKK5aG55aKF5aG95aO95aSl5aSi5aSk5aWq5aWp5auh5aum5aup5auX5auW5auY5auj5a215a+e5a+n5a+h5a+l5a+m5a+o5a+i5a+k5a+f5bCN5bGi5baE5baH5bmb5bmj5bmV5bmX5bmU5buT5buW5byK5b2G5b2w5b655oWHIl0sWyJiYTQwIiwi5oS/5oWL5oW35oWi5oWj5oWf5oWa5oWY5oW15oiq5pKH5pGY5pGU5pKk5pG45pGf5pG65pGR5pGn5pC05pGt5pG75pWy5pah5peX5peW5pqi5pqo5pqd5qac5qao5qaV5qeB5qau5qeT5qeL5qab5qa35qa75qar5qa05qeQ5qeN5qat5qeM5qam5qeD5qaj5q2J5q2M5rCz5ryz5ryU5ru+5ryT5ru05ryp5ry+5ryg5rys5ryP5ryC5ryiIl0sWyJiYWExIiwi5ru/5ruv5ryG5ryx5ry45ryy5ryj5ryV5ryr5ryv5r6I5ryq5rus5ryB5ruy5ruM5ru354aU54aZ54W954aK54aE54aS54i+54qS54qW542E542Q55Gk55Gj55Gq55Gw55Gt55SE55aR55in55iN55iL55iJ55iT55uh55uj556E5529552/552h56OB56Kf56Kn56Kz56Kp56Kj56aO56aP56aN56iu56ix56qq56qp56ut56uv566h566V566L5621566X566d566U566P5664566H566E57K557K957K+57a757aw57ac57a957a+57ag57eK57a057ay57ax57a657ai57a/57a157a457at57eS57eH57asIl0sWyJiYjQwIiwi572w57+g57+h57+f6IGe6IGa6IKH6IWQ6IaA6IaP6IaI6IaK6IW/6IaC6Ien6Ie66IiH6IiU6Iie6ImL6JOJ6JK/6JOG6JOE6JKZ6JKe6JKy6JKc6JOL6JK46JOA6JOT6JKQ6JK86JOR6JOK6Jy/6Jyc6Jy76Jyi6Jyl6Jy06JyY6J2V6Jy36Jyp6KOz6KSC6KO06KO56KO46KO96KOo6KSa6KOv6Kqm6KqM6Kqe6Kqj6KqN6Kqh6KqT6KqkIl0sWyJiYmExIiwi6Kqq6Kql6Kqo6KqY6KqR6Kqa6Kqn6LGq6LKN6LKM6LOT6LOR6LOS6LWr6LaZ6LaV6Le86LyU6LyS6LyV6LyT6L6j6YGg6YGY6YGc6YGj6YGZ6YGe6YGi6YGd6YGb6YSZ6YSY6YSe6YW16YW46YW36YW06Ym46YqA6YqF6YqY6YqW6Ym76YqT6Yqc6Yqo6Ym86YqR6Zah6Zao6Zap6Zaj6Zal6Zak6ZqZ6Zqc6Zqb6ZuM6ZuS6ZyA6Z286Z6F6Z+26aCX6aCY6aKv6aKx6aSD6aSF6aSM6aSJ6aeB6aqv6aqw6aum6a2B6a2C6bO06bO26bOz6bq86by76b2K5YSE5YSA5YO75YO15YO55YSC5YSI5YSJ5YSF5YecIl0sWyJiYzQwIiwi5YqH5YqI5YqJ5YqN5YqK5Yuw5Y6y5Ziu5Zi75Zi55Ziy5Zi/5Zi05Zip5ZmT5ZmO5ZmX5Zm05Zi25Ziv5Ziw5aKA5aKf5aKe5aKz5aKc5aKu5aKp5aKm5aWt5ayJ5au75ayL5au15ayM5ayI5a+u5a+s5a+p5a+r5bGk5bGl5bad5baU5bmi5bmf5bmh5bui5bua5buf5bud5buj5bug5b2I5b2x5b635b615oW25oWn5oWu5oWd5oWV5oaCIl0sWyJiY2ExIiwi5oW85oWw5oWr5oW+5oan5oaQ5oar5oaO5oas5oaa5oak5oaU5oau5oiu5pGp5pGv5pG55pKe5pKy5pKI5pKQ5pKw5pKl5pKT5pKV5pKp5pKS5pKu5pKt5pKr5pKa5pKs5pKZ5pKi5pKz5pW15pW35pW45pqu5pqr5pq05pqx5qij5qif5qeo5qiB5qie5qiZ5qe95qih5qiT5qiK5qez5qiC5qiF5qet5qiR5q2Q5q2O5q6k5q+F5q+G5ry/5r285r6E5r2R5r2m5r2U5r6G5r2t5r2b5r245r2u5r6O5r265r2w5r2k5r6X5r2Y5ruV5r2v5r2g5r2f54af54as54ax54ao54mW54qb542O542X55Gp55KL55KDIl0sWyJiZDQwIiwi55G+55KA55W/55ig55ip55if55ik55im55ih55ii55qa55q655uk556O556H556M556R556L56OL56OF56K656OK56K+56OV56K856OQ56i/56i856mA56i956i356i756qv56qu566t566x56+E566056+G56+H56+B566g56+M57OK57eg57e057ev57e757eY57es57ed57eo57ej57ea57ee57ep57ae57eZ57ey57e557215723576vIl0sWyJiZGExIiwi57+p6ICm6Iab6Iac6Iad6Iag6Iaa6IaY6JSX6JS96JSa6JOu6JSs6JSt6JST6JSR6JSj6JSh6JSU6JOs6JSl6JO/6JSG6J6C6J206J226J2g6J2m6J246J2o6J2Z6J2X6J2M6J2T6KGb6KGd6KSQ6KSH6KSS6KST6KSV6KSK6Kq86KuS6KuH6KuE6KqV6KuL6Ku46Kqy6KuJ6KuC6Kq/6Kqw6KuW6KuN6Kq26Kq56Kub6LGM6LGO6LGs6LOg6LOe6LOm6LOk6LOs6LOt6LOi6LOj6LOc6LOq6LOh6LWt6Laf6Laj6Lir6LiQ6Lid6Lii6LiP6Lip6Lif6Lih6Lie6Lq66Lyd6Lyb6Lyf6Lyp6Lym6Lyq6Lyc6LyeIl0sWyJiZTQwIiwi6Lyl6YGp6YGu6YGo6YGt6YG36YSw6YSt6YSn6YSx6YaH6YaJ6YaL6YaD6YuF6Yq76Yq36Yuq6Yqs6Yuk6YuB6Yqz6Yq86YuS6YuH6Yuw6Yqy6Zat6Zax6ZyE6ZyG6ZyH6ZyJ6Z2g6Z6N6Z6L6Z6P6aCh6aCr6aCc6aKz6aSK6aST6aSS6aSY6aed6aeQ6aef6aeb6aeR6aeV6aeS6aeZ6aq36auu6auv6ayn6a2F6a2E6a236a2v6bSG6bSJIl0sWyJiZWExIiwi6bSD6bqp6bq+6buO5aKo6b2S5YSS5YSY5YSU5YSQ5YSV5YaA5Yaq5Yed5YqR5YqT5Yuz5ZmZ5Zmr5Zm55Zmp5Zmk5Zm45Zmq5Zmo5Zml5Zmx5Zmv5Zms5Zmi5Zm25aOB5aK+5aOH5aOF5aWu5ayd5ay05a245a+w5bCO5b2K5oay5oaR5oap5oaK5oeN5oa25oa+5oeK5oeI5oiw5pOF5pOB5pOL5pK75pK85pOa5pOE5pOH5pOC5pON5pK/5pOS5pOU5pK+5pW05puG5puJ5pq55puE5puH5pq45qi95qi45qi65qmZ5qmr5qmY5qi55qmE5qmi5qmh5qmL5qmH5qi15qmf5qmI5q2Z5q235rCF5r+C5r6x5r6hIl0sWyJiZjQwIiwi5r+D5r6k5r+B5r6n5r6z5r+A5r655r625r6m5r6g5r6054a+54eJ54eQ54eS54eI54eV54a554eO54eZ54ec54eD54eE542o55Kc55Kj55KY55Kf55Ke55Oi55SM55SN55i055i455i655un55ul556g556e556f556l56Oo56Oa56Os56On56am56mN56mO56mG56mM56mL56q656+Z57CR56+J56+k56+b56+h56+p56+m57OV57OW57iKIl0sWyJiZmExIiwi57iR57iI57ib57ij57ie57id57iJ57iQ5725576y57+w57+x57+u6ICo6Iaz6Iap6Iao6Ie76IiI6ImY6ImZ6JWK6JWZ6JWI6JWo6JWp6JWD6JWJ6JWt6JWq6JWe6J6D6J6f6J6e6J6i6J6N6KGh6KSq6KSy6KSl6KSr6KSh6Kaq6Kam6Kum6Ku66Kur6Kux6KyA6Kuc6Kun6Kuu6Ku+6KyB6KyC6Ku36Kut6Kuz6Ku26Ku86LGr6LGt6LKT6LO06LmE6Lix6Li06LmC6Li56Li16Ly76Lyv6Ly46Lyz6L6o6L6m6YG16YG06YG46YGy6YG86YG66YS06YaS6Yyg6Yy26Yu46Yyz6Yyv6Yyi6Yu86Yyr6YyE6YyaIl0sWyJjMDQwIiwi6YyQ6Yym6Yyh6YyV6Yyu6YyZ6Za76Zqn6Zqo6Zqq6ZuV6ZyO6ZyR6ZyW6ZyN6ZyT6ZyP6Z2b6Z2c6Z2m6Z6Y6aCw6aC46aC76aC36aCt6aC56aCk6aSQ6aSo6aSe6aSb6aSh6aSa6aet6aei6aex6aq46aq86au76aut6ayo6a6R6bSV6bSj6bSm6bSo6bSS6bSb6buY6buU6b6N6b6c5YSq5YSf5YSh5YSy5Yu15ZqO5ZqA5ZqQ5ZqF5ZqHIl0sWyJjMGExIiwi5ZqP5aOV5aOT5aOR5aOO5ayw5ayq5ayk5a265bC35bGo5ba85ba65ba95ba45bmr5b2M5b695oeJ5oeC5oeH5oem5oeL5oiy5oi05pOO5pOK5pOY5pOg5pOw5pOm5pOs5pOx5pOi5pOt5paC5paD5puZ5puW5qqA5qqU5qqE5qqi5qqc5qub5qqj5qm+5qqX5qqQ5qqg5q2c5q6u5q+a5rCI5r+Y5r+x5r+f5r+g5r+b5r+k5r+r5r+v5r6A5r+s5r+h5r+p5r+V5r+u5r+w54en54ef54eu54em54el54et54es54e054eg54i154mG542w542y55Kp55Kw55Km55Ko55mG55mC55mM55uq556z556q556w556sIl0sWyJjMTQwIiwi556n556t55+v56O356O656O056Ov56SB56an56aq56mX56q/57CH57CN56++56+357CM56+g57Og57Oc57Oe57Oi57Of57OZ57Od57iu57i+57mG57i357iy57mD57ir57i957ix57mF57mB57i057i557mI57i157i/57iv572E57+z57+86IGx6IGy6IGw6IGv6IGz6IeG6IeD6Ia66IeC6IeA6Ia/6Ia96IeJ6Ia+6Ieo6IiJ6Imx6JaqIl0sWyJjMWExIiwi6JaE6JW+6Jac6JaR6JaU6Jav6Jab6JaH6Jao6JaK6Jmn6J+A6J+R6J6z6J+S6J+G6J6r6J676J666J+I6J+L6KS76KS26KWE6KS46KS96Kas6KyO6KyX6KyZ6Kyb6KyK6Kyg6Kyd6KyE6KyQ6LGB6LC/6LGz6LO66LO96LO86LO46LO76Lao6LmJ6LmL6LmI6LmK6L2E6Ly+6L2C6L2F6Ly/6YG/6YG96YKE6YKB6YKC6YKA6YS56Yaj6Yae6Yac6Y2N6Y6C6Yyo6Y216Y2K6Y2l6Y2L6YyY6Y2+6Y2s6Y2b6Y2w6Y2a6Y2U6ZeK6ZeL6ZeM6ZeI6ZeG6Zqx6Zq46ZuW6Zyc6Zye6Z6g6Z+T6aGG6aK26aS16aiBIl0sWyJjMjQwIiwi6ae/6a6u6a6r6a6q6a6t6bS76bS/6bqL6buP6bue6buc6bud6bub6by+6b2L5Y+i5ZqV5Zqu5aOZ5aOY5ay45b2d5oej5oiz5pO05pOy5pO+5pSG5pO65pO75pO35pa35puc5pym5qqz5qqs5quD5qq75qq45quC5qqu5qqv5q2f5q245q6v54CJ54CL5r++54CG5r+654CR54CP54e754e854e+54e45423542155Kn55K/55SV55mW55mYIl0sWyJjMmExIiwi55mS5569556/5567556856SO56au56mh56mi56mg56uE56uF57Cr57Cn57Cq57Ce57Cj57Ch57On57mU57mV57me57ma57mh57mS57mZ572I57+557+76IG36IG26IeN6IeP6IiK6JeP6Jap6JeN6JeQ6JeJ6Jaw6Ja66Ja56Jam6J+v6J+s6J+y6J+g6KaG6Kay6Ke06Kyo6Ky56Kys6Kyr6LGQ6LSF6LmZ6Lmj6Lmm6Lmk6Lmf6LmV6LuA6L2J6L2N6YKH6YKD6YKI6Yar6Yas6YeQ6Y6U6Y6K6Y6W6Y6i6Y6z6Y6u6Y6s6Y6w6Y6Y6Y6a6Y6X6ZeU6ZeW6ZeQ6ZeV6Zui6Zuc6ZuZ6Zub6Zue6Zyk6Z6j6Z6mIl0sWyJjMzQwIiwi6Z6t6Z+56aGN6aGP6aGM6aGO6aGT6aK66aS+6aS/6aS96aSu6aal6aiO6auB6ayD6ayG6a2P6a2O6a2N6a+K6a+J6a+96a+I6a+A6bWR6bWd6bWg6bug6byV6bys5YSz5Zql5aOe5aOf5aOi5a+16b6Q5bus5oey5oe35oe25oe15pSA5pSP5pug5pud5qul5qud5qua5quT54Cb54Cf54Co54Ca54Cd54CV54CY54iG54iN54mY54qi5424Il0sWyJjM2ExIiwi542655K955OK55Oj55aH55aG55mf55mh55+H56SZ56ax56mr56mp57C+57C/57C457C957C357GA57mr57mt57m557mp57mq576F57mz5762576557646IeY6Jep6Jed6Jeq6JeV6Jek6Jel6Je36J+76KCF6KCN6J+56J++6KWg6KWf6KWW6KWe6K2B6K2c6K2Y6K2J6K2a6K2O6K2P6K2G6K2Z6LSI6LSK6Lm86Lmy6LqH6Lm26Lms6Lm66Lm06L2U6L2O6L6t6YKK6YKL6Yax6Yau6Y+h6Y+R6Y+f6Y+D6Y+I6Y+c6Y+d6Y+W6Y+i6Y+N6Y+Y6Y+k6Y+X6Y+o6Zec6Zq06Zuj6Zyq6Zyn6Z2h6Z+c6Z+76aGeIl0sWyJjNDQwIiwi6aGY6aGb6aK86aWF6aWJ6aiW6aiZ6ayN6a+o6a+n6a+W6a+b6baJ6bWh6bWy6bWq6bWs6bqS6bqX6bqT6bq05Yu45Zqo5Zq35Zq25Zq05Zq85aOk5a2A5a2D5a295a+25beJ5oe45oe65pSY5pSU5pSZ5pum5pyn5qus54C+54Cw54Cy54iQ542755OP55mi55ml56Sm56Sq56Ss56Sr56uH56u257GM57GD57GN57Ov57Ow6L6u57m957m8Il0sWyJjNGExIiwi57qC572M6ICA6Iea6Imm6Je76Je56JiR6Je66JiG6JiL6JiH6JiK6KCU6KCV6KWk6Ka66Ke46K2w6K2s6K2m6K2v6K2f6K2r6LSP6LSN6LqJ6LqB6LqF6LqC6Ya06YeL6ZCY6ZCD6Y+96Zeh6Zyw6aOE6aWS6aWR6aao6air6aiw6ai36ai16bCT6bCN6bm56bq16buo6byv6b2f6b2j6b2h5YS35YS45ZuB5ZuA5ZuC5aSU5bGs5beN5oe85oe+5pSd5pSc5paV5pup5qu75qyE5qu65q6y54GM54ib54qn55OW55OU55mp55+T57GQ57qP57qM57686JiX6Jit6Jia6KCj6KCi6KCh6KCf6KWq6KWs6Ka96K20Il0sWyJjNTQwIiwi6K236K296LST6LqK6LqN6LqL6L2f6L6v6Ya66ZCu6ZCz6ZC16ZC66ZC46ZCy6ZCr6Zei6Zy46Zy56Zyy6Z+/6aGn6aGl6aWX6amF6amD6amA6ai+6auP6a2U6a2R6bCt6bCl6bav6ba06beC6ba46bqd6buv6byZ6b2c6b2m6b2n5YS85YS75ZuI5ZuK5ZuJ5a2/5beU5beS5b2O5oe/5pSk5qyK5q2h54GR54GY546A55Ok55aK55mu55msIl0sWyJjNWExIiwi56az57Gg57Gf6IG+6IG96Ief6KWy6KWv6Ke86K6A6LSW6LSX6LqR6LqT6L2h6YWI6ZGE6ZGR6ZGS6Zy96Zy+6Z+D6Z+B6aGr6aWV6amV6amN6auS6aya6bGJ6bCx6bC+6bC76beT6beX6by06b2s6b2q6b6U5ZuM5beW5oiA5pSj5pSr5pSq5pus5qyQ55Oa56uK57Gk57Gj57Gl57qT57qW57qU6Iei6Ji46Ji/6KCx6K6K6YKQ6YKP6ZGj6ZGg6ZGk6Z2o6aGv6aWc6ama6amb6amX6auT6auU6auR6bGU6bGX6bGW6bel6bqf6bu05ZuR5aOp5pSs54Ge55mx55my55+X572Q576I6KC26KC56KGi6K6T6K6SIl0sWyJjNjQwIiwi6K6W6Im36LSb6YeA6ZGq6Z2C6Z2I6Z2E6Z+G6aGw6amf6ayi6a2Y6bGf6be56be66bm86bm96byH6b236b2y5buz5qyW54Gj57Gs57Gu6KC76KeA6Lqh6YeB6ZGy6ZGw6aGx6aWe6auW6ayj6buM54Gk55+a6K6a6ZG36Z+J6ami6aml57qc6K6c6Lqq6YeF6ZG96ZG+6ZG86bG36bG46bu36LGU6ZG/6bia54io6amq6ayx6bib6bie57GyIl0sWyJjOTQwIiwi5LmC5Lmc5Ye15Yya5Y6C5LiH5LiM5LmH5LqN5ZuX76iM5bGu5b2z5LiP5YaH5LiO5Liu5LqT5LuC5LuJ5LuI5YaY5Yu85Y2s5Y655Zyg5aSD5aSs5bCQ5be/5peh5q6z5q+M5rCU54i/5Lix5Li85Luo5Luc5Lup5Luh5Lud5Lua5YiM5Yyc5Y2M5Zyi5Zyj5aSX5aSv5a6B5a6E5bCS5bC75bG05bGz5biE5bqA5bqC5b+J5oiJ5omQ5rCVIl0sWyJjOWExIiwi5rC25rGD5rC/5rC754qu54qw546K56a46IKK6Zie5LyO5LyY5Lys5Lu15LyU5Lux5LyA5Lu35LyI5Lyd5LyC5LyF5Lyi5LyT5LyE5Lu05LyS5Yax5YiT5YiJ5YiQ5Yqm5Yyi5Yyf5Y2N5Y6K5ZCH5Zuh5Zuf5Zyu5Zyq5Zy05aS85aaA5aW85aaF5aW75aW+5aW35aW/5a2W5bCV5bCl5bG85bG65bG75bG+5bef5bm15bqE5byC5bya5b205b+V5b+U5b+P5omc5ome5omk5omh5omm5omi5omZ5omg5oma5oml5pev5peu5py+5py55py45py75py65py/5py85pyz5rCY5rGG5rGS5rGc5rGP5rGK5rGU5rGLIl0sWyJjYTQwIiwi5rGM54Gx54me54q054q1546O55Sq55m/56m1572R6Im46Im86IqA6Im96Im/6JmN6KW+6YKZ6YKX6YKY6YKb6YKU6Zii6Zik6Zig6Zij5L2W5Ly75L2i5L2J5L2T5L2k5Ly+5L2n5L2S5L2f5L2B5L2Y5Lyt5Lyz5Ly/5L2h5YaP5Ya55Yic5Yie5Yih5Yqt5Yqu5YyJ5Y2j5Y2y5Y6O5Y6P5ZCw5ZC35ZCq5ZGU5ZGF5ZCZ5ZCc5ZCl5ZCYIl0sWyJjYWExIiwi5ZC95ZGP5ZGB5ZCo5ZCk5ZGH5Zuu5Zun5Zul5Z2B5Z2F5Z2M5Z2J5Z2L5Z2S5aSG5aWA5aam5aaY5aag5aaX5aaO5aai5aaQ5aaP5aan5aah5a6O5a6S5bCo5bCq5bKN5bKP5bKI5bKL5bKJ5bKS5bKK5bKG5bKT5bKV5beg5biK5biO5bqL5bqJ5bqM5bqI5bqN5byF5byd5b245b225b+S5b+R5b+Q5b+t5b+o5b+u5b+z5b+h5b+k5b+j5b+65b+v5b+35b+75oCA5b+05oi65oqD5oqM5oqO5oqP5oqU5oqH5omx5om75om65omw5oqB5oqI5om35om95omy5om05pS35pew5pe05pez5pey5pe15p2F5p2HIl0sWyJjYjQwIiwi5p2Z5p2V5p2M5p2I5p2d5p2N5p2a5p2L5q+Q5rCZ5rCa5rG45rGn5rGr5rKE5rKL5rKP5rGx5rGv5rGp5rKa5rGt5rKH5rKV5rKc5rGm5rGz5rGl5rG75rKO54G054G654mj54q/54q954uD54uG54uB54q654uF546V546X546T546U546S55S655S555aU55aV55qB56S96IC06IKV6IKZ6IKQ6IKS6IKc6IqQ6IqP6IqF6IqO6IqR6IqTIl0sWyJjYmExIiwi6IqK6IqD6IqE6LG46L+J6L6/6YKf6YKh6YKl6YKe6YKn6YKg6Ziw6Zio6Ziv6Zit5Liz5L6Y5L285L6F5L295L6A5L6H5L225L205L6J5L6E5L235L2M5L6X5L2q5L6a5L255L6B5L245L6Q5L6c5L6U5L6e5L6S5L6C5L6V5L2r5L2u5Yae5Ya85Ya+5Yi15Yiy5Yiz5YmG5Yix5Yq85YyK5YyL5Yy85Y6S5Y6U5ZKH5ZG/5ZKB5ZKR5ZKC5ZKI5ZGr5ZG65ZG+5ZGl5ZGs5ZG05ZGm5ZKN5ZGv5ZGh5ZGg5ZKY5ZGj5ZGn5ZGk5Zu35Zu55Z2v5Z2y5Z2t5Z2r5Z2x5Z2w5Z225Z6A5Z215Z275Z2z5Z205Z2iIl0sWyJjYzQwIiwi5Z2o5Z295aSM5aWF5aa15aa65aeP5aeO5aay5aeM5aeB5aa25aa85aeD5aeW5aax5aa95aeA5aeI5aa05aeH5a2i5a2l5a6T5a6V5bGE5bGH5bKu5bKk5bKg5bK15bKv5bKo5bKs5bKf5bKj5bKt5bKi5bKq5bKn5bKd5bKl5bK25bKw5bKm5biX5biU5biZ5byo5byi5byj5byk5b2U5b6C5b2+5b295b+e5b+l5oCt5oCm5oCZ5oCy5oCLIl0sWyJjY2ExIiwi5oC05oCK5oCX5oCz5oCa5oCe5oCs5oCi5oCN5oCQ5oCu5oCT5oCR5oCM5oCJ5oCc5oiU5oi95oqt5oq05ouR5oq+5oqq5oq25ouK5oqu5oqz5oqv5oq75oqp5oqw5oq45pS95pao5pa75piJ5pe85piE5piS5piI5pe75piD5piL5piN5piF5pe95piR5piQ5pu25pyK5p6F5p2s5p6O5p6S5p225p275p6Y5p6G5p6E5p205p6N5p6M5p265p6f5p6R5p6Z5p6D5p295p6B5p245p255p6U5qyl5q6A5q2+5q+e5rCd5rKT5rOs5rOr5rOu5rOZ5rK25rOU5rKt5rOn5rK35rOQ5rOC5rK65rOD5rOG5rOt5rOyIl0sWyJjZDQwIiwi5rOS5rOd5rK05rKK5rKd5rKA5rOe5rOA5rSw5rON5rOH5rKw5rO55rOP5rOp5rOR54KU54KY54KF54KT54KG54KE54KR54KW54KC54Ka54KD54mq54uW54uL54uY54uJ54uc54uS54uU54ua54uM54uR546k546h546t546m546i546g546s546d55Od55Oo55S/55WA55S+55aM55aY55qv55uz55ux55uw55u155+455+855+555+755+6Il0sWyJjZGExIiwi55+356WC56S/56eF56m456m756u757G157O96IC16IKP6IKu6IKj6IK46IK16IKt6Iig6Iqg6IuA6Iqr6Iqa6IqY6Iqb6Iq16Iqn6Iqu6Iq86Iqe6Iq66Iq06Iqo6Iqh6Iqp6IuC6Iqk6IuD6Iq26Iqi6Jmw6Jmv6Jmt6Jmu6LGW6L+S6L+L6L+T6L+N6L+W6L+V6L+X6YKy6YK06YKv6YKz6YKw6Zi56Zi96Zi86Zi66ZmD5L+N5L+F5L+T5L6y5L+J5L+L5L+B5L+U5L+c5L+Z5L675L6z5L+b5L+H5L+W5L665L+A5L655L+s5YmE5YmJ5YuA5YuC5Yy95Y285Y6X5Y6W5Y6Z5Y6Y5ZK65ZKh5ZKt5ZKl5ZOPIl0sWyJjZTQwIiwi5ZOD6IyN5ZK35ZKu5ZOW5ZK25ZOF5ZOG5ZKg5ZGw5ZK85ZKi5ZK+5ZGy5ZOe5ZKw5Z615Z6e5Z6f5Z6k5Z6M5Z6X5Z6d5Z6b5Z6U5Z6Y5Z6P5Z6Z5Z6l5Z6a5Z6V5aO05aSN5aWT5aeh5aee5aeu5aiA5aex5aed5ae65ae95ae85ae25aek5aey5ae35aeb5aep5aez5ae15aeg5ae+5ae05aet5a6o5bGM5bOQ5bOY5bOM5bOX5bOL5bObIl0sWyJjZWExIiwi5bOe5bOa5bOJ5bOH5bOK5bOW5bOT5bOU5bOP5bOI5bOG5bOO5bOf5bO45be55bih5bii5bij5big5bik5bqw5bqk5bqi5bqb5bqj5bql5byH5byu5b2W5b6G5oC35oC55oGU5oGy5oGe5oGF5oGT5oGH5oGJ5oGb5oGM5oGA5oGC5oGf5oCk5oGE5oGY5oGm5oGu5omC5omD5ouP5oyN5oyL5ou15oyO5oyD5our5ou55oyP5oyM5ou45ou25oyA5oyT5oyU5ou65oyV5ou75ouw5pWB5pWD5paq5pa/5pi25pih5piy5pi15pic5pim5pii5piz5pir5pi65pid5pi05pi55piu5pyP5pyQ5p+B5p+y5p+I5p66Il0sWyJjZjQwIiwi5p+c5p675p+45p+Y5p+A5p635p+F5p+r5p+k5p+f5p615p+N5p6z5p+35p+25p+u5p+j5p+C5p655p+O5p+n5p+w5p6y5p+85p+G5p+t5p+M5p6u5p+m5p+b5p+65p+J5p+K5p+D5p+q5p+L5qyo5q6C5q6E5q625q+W5q+Y5q+g5rCg5rCh5rSo5rS05rSt5rSf5rS85rS/5rSS5rSK5rOa5rSz5rSE5rSZ5rS65rSa5rSR5rSA5rSd5rWCIl0sWyJjZmExIiwi5rSB5rSY5rS35rSD5rSP5rWA5rSH5rSg5rSs5rSI5rSi5rSJ5rSQ54K354Kf54K+54Kx54Kw54Kh54K054K154Kp54mB54mJ54mK54ms54mw54mz54mu54uK54uk54uo54ur54uf54uq54um54uj546F54+M54+C54+I54+F546554625461546054+r546/54+H546+54+D54+G546454+L55Os55Ou55Su55WH55WI55an55aq55m555uE55yI55yD55yE55yF55yK55u355u755u655+n55+o56CG56CR56CS56CF56CQ56CP56CO56CJ56CD56CT56WK56WM56WL56WF56WE56eV56eN56eP56eW56eO56qAIl0sWyJkMDQwIiwi56m+56uR56yA56yB57G657G457G557G/57KA57KB57SD57SI57SB572Y576R576N576+6ICH6ICO6ICP6ICU6IC36IOY6IOH6IOg6IOR6IOI6IOC6IOQ6IOF6IOj6IOZ6IOc6IOK6IOV6IOJ6IOP6IOX6IOm6ION6Ie/6Iih6IqU6IuZ6Iu+6Iu56IyH6Iuo6IyA6IuV6Iy66Iur6IuW6Iu06Ius6Iuh6Iuy6Iu16IyM6Iu76Iu26Iuw6IuqIl0sWyJkMGExIiwi6Iuk6Iug6Iu66Iuz6Iut6Jm36Jm06Jm86Jmz6KGB6KGO6KGn6KGq6KGp6KeT6KiE6KiH6LWy6L+j6L+h6L+u6L+g6YOx6YK96YK/6YOV6YOF6YK+6YOH6YOL6YOI6YeU6YeT6ZmU6ZmP6ZmR6ZmT6ZmK6ZmO5YCe5YCF5YCH5YCT5YCi5YCw5YCb5L+15L+05YCz5YC35YCs5L+25L+35YCX5YCc5YCg5YCn5YC15YCv5YCx5YCO5YWa5YaU5YaT5YeK5YeE5YeF5YeI5YeO5Ymh5Yma5YmS5Yme5Ymf5YmV5Ymi5YuN5YyO5Y6e5ZSm5ZOi5ZSX5ZSS5ZOn5ZOz5ZOk5ZSa5ZO/5ZSE5ZSI5ZOr5ZSR5ZSF5ZOxIl0sWyJkMTQwIiwi5ZSK5ZO75ZO35ZO45ZOg5ZSO5ZSD5ZSL5ZyB5ZyC5Z+M5aCy5Z+V5Z+S5Z665Z+G5Z695Z685Z645Z625Z6/5Z+H5Z+Q5Z655Z+B5aSO5aWK5aiZ5aiW5ait5aiu5aiV5aiP5aiX5aiK5aie5aiz5a2s5a6n5a6t5a6s5bCD5bGW5bGU5bOs5bO/5bOu5bOx5bO35bSA5bO55bip5bio5bqo5bqu5bqq5bqs5byz5byw5b2n5oGd5oGa5oGnIl0sWyJkMWExIiwi5oGB5oKi5oKI5oKA5oKS5oKB5oKd5oKD5oKV5oKb5oKX5oKH5oKc5oKO5oiZ5omG5ouy5oyQ5o2W5oys5o2E5o2F5oy25o2D5o+k5oy55o2L5o2K5oy85oyp5o2B5oy05o2Y5o2U5o2Z5oyt5o2H5oyz5o2a5o2R5oy45o2X5o2A5o2I5pWK5pWG5peG5peD5peE5peC5pmK5pmf5pmH5pmR5pyS5pyT5qCf5qCa5qGJ5qCy5qCz5qC75qGL5qGP5qCW5qCx5qCc5qC15qCr5qCt5qCv5qGO5qGE5qC05qCd5qCS5qCU5qCm5qCo5qCu5qGN5qC65qCl5qCg5qys5qyv5qyt5qyx5qy05q2t6IKC5q6I5q+m5q+kIl0sWyJkMjQwIiwi5q+o5q+j5q+i5q+n5rCl5rW65rWj5rWk5rW25rSN5rWh5raS5rWY5rWi5rWt5rWv5raR5raN5rev5rW/5raG5rWe5rWn5rWg5raX5rWw5rW85rWf5raC5raY5rSv5rWo5raL5rW+5raA5raE5rSW5raD5rW75rW95rW15raQ54Oc54OT54OR54Od54OL57y554Oi54OX54OS54Oe54Og54OU54ON54OF54OG54OH54Oa54OO54Oh54mC54m4Il0sWyJkMmExIiwi54m354m254yA54u654u054u+54u254uz54u754yB54+T54+Z54+l54+W546854+n54+j54+p54+c54+S54+b54+U54+d54+a54+X54+Y54+o55Oe55Of55O055O155Sh55Wb55Wf55aw55eB55a755eE55eA55a/55a255a655qK55uJ55yd55yb55yQ55yT55yS55yj55yR55yV55yZ55ya55yi55yn56Cj56Cs56Ci56C156Cv56Co56Cu56Cr56Ch56Cp56Cz56Cq56Cx56WU56Wb56WP56Wc56WT56WS56WR56er56es56eg56eu56et56eq56ec56ee56ed56qG56qJ56qF56qL56qM56qK56qH56uY56yQIl0sWyJkMzQwIiwi56yE56yT56yF56yP56yI56yK56yO56yJ56yS57KE57KR57KK57KM57KI57KN57KF57Se57Sd57SR57SO57SY57SW57ST57Sf57SS57SP57SM572c572h572e572g572d572b576W576S57+D57+C57+A6ICW6IC+6IC56IO66IOy6IO56IO16ISB6IO76ISA6IiB6Iiv6Iil6Iyz6Iyt6I2E6IyZ6I2R6Iyl6I2W6Iy/6I2B6Iym6Iyc6IyiIl0sWyJkM2ExIiwi6I2C6I2O6Iyb6Iyq6IyI6Iy86I2N6IyW6Iyk6Iyg6Iy36Iyv6Iyp6I2H6I2F6I2M6I2T6Iye6Iys6I2L6Iyn6I2I6JmT6JmS6Jqi6Jqo6JqW6JqN6JqR6Jqe6JqH6JqX6JqG6JqL6Jqa6JqF6Jql6JqZ6Jqh6Jqn6JqV6JqY6JqO6Jqd6JqQ6JqU6KGD6KGE6KGt6KG16KG26KGy6KKA6KGx6KG/6KGv6KKD6KG+6KG06KG86KiS6LGH6LGX6LG76LKk6LKj6LW26LW46La16La36La26LuR6LuT6L++6L+16YCC6L+/6L+76YCE6L+86L+26YOW6YOg6YOZ6YOa6YOj6YOf6YOl6YOY6YOb6YOX6YOc6YOk6YWQIl0sWyJkNDQwIiwi6YWO6YWP6YeV6Yei6Yea6Zmc6Zmf6Zq86aOj6auf6ayv5Lm/5YGw5YGq5YGh5YGe5YGg5YGT5YGL5YGd5YGy5YGI5YGN5YGB5YGb5YGK5YGi5YCV5YGF5YGf5YGp5YGr5YGj5YGk5YGG5YGA5YGu5YGz5YGX5YGR5YeQ5Ymr5Ymt5Yms5Ymu5YuW5YuT5Yyt5Y6c5ZW15ZW25ZS85ZWN5ZWQ5ZS05ZSq5ZWR5ZWi5ZS25ZS15ZSw5ZWS5ZWFIl0sWyJkNGExIiwi5ZSM5ZSy5ZWl5ZWO5ZS55ZWI5ZSt5ZS75ZWA5ZWL5ZyK5ZyH5Z+75aCU5Z+i5Z+25Z+c5Z+05aCA5Z+t5Z+95aCI5Z+45aCL5Z+z5Z+P5aCH5Z+u5Z+j5Z+y5Z+l5Z+s5Z+h5aCO5Z+85aCQ5Z+n5aCB5aCM5Z+x5Z+p5Z+w5aCN5aCE5aWc5amg5amY5amV5amn5ame5ai45ai15amt5amQ5amf5aml5ams5amT5amk5amX5amD5amd5amS5amE5amb5amI5aqO5ai+5amN5ai55amM5amw5amp5amH5amR5amW5amC5amc5a2y5a2u5a+B5a+A5bGZ5bSe5bSL5bSd5bSa5bSg5bSM5bSo5bSN5bSm5bSl5bSPIl0sWyJkNTQwIiwi5bSw5bSS5bSj5bSf5bSu5bi+5bi05bqx5bq05bq55bqy5bqz5by25by45b6b5b6W5b6f5oKK5oKQ5oKG5oK+5oKw5oK65oOT5oOU5oOP5oOk5oOZ5oOd5oOI5oKx5oOb5oK35oOK5oK/5oOD5oON5oOA5oyy5o2l5o6K5o6C5o295o695o6e5o6t5o6d5o6X5o6r5o6O5o2v5o6H5o6Q5o2u5o6v5o215o6c5o2t5o6u5o285o6k5oy75o6fIl0sWyJkNWExIiwi5o245o6F5o6B5o6R5o6N5o2w5pWT5peN5pml5pmh5pmb5pmZ5pmc5pmi5pyY5qG55qKH5qKQ5qKc5qGt5qGu5qKu5qKr5qWW5qGv5qKj5qKs5qKp5qG15qG05qKy5qKP5qG35qKS5qG85qGr5qGy5qKq5qKA5qGx5qG+5qKb5qKW5qKL5qKg5qKJ5qKk5qG45qG75qKR5qKM5qKK5qG95qy25qyz5qy35qy45q6R5q6P5q6N5q6O5q6M5rCq5reA5rar5ra05raz5rm05ras5rep5rei5ra35re25reU5riA5reI5reg5ref5reW5ra+5rel5rec5red5reb5re05reK5ra95ret5rew5ra65reV5reC5reP5reJIl0sWyJkNjQwIiwi5reQ5rey5reT5re95reX5reN5rej5ra754O654SN54O354SX54O054SM54Ow54SE54Oz54SQ54O854O/54SG54ST54SA54O454O254SL54SC54SO54m+54m754m854m/54yd54yX54yH54yR54yY54yK54yI54u/54yP54ye546I54+254+454+155CE55CB54+955CH55CA54+654+854+/55CM55CL54+055CI55Wk55Wj55eO55eS55ePIl0sWyJkNmExIiwi55eL55eM55eR55eQ55qP55qJ55uT55y555yv55yt55yx55yy55y055yz55y955yl55y755y156GI56GS56GJ56GN56GK56GM56Cm56GF56GQ56Wk56Wn56Wp56Wq56Wj56Wr56Wh56a756e656e456e256e356qP56qU56qQ56y1562H56y056yl56yw56yi56yk56yz56yY56yq56yd56yx56yr56yt56yv56yy56y456ya56yj57KU57KY57KW57Kj57S157S957S457S257S657WF57Ss57Sp57WB57WH57S+57S/57WK57S757So572j576V576c576d576b57+K57+L57+N57+Q57+R57+H57+P57+J6ICfIl0sWyJkNzQwIiwi6ICe6ICb6IGH6IGD6IGI6ISY6ISl6ISZ6ISb6ISt6ISf6ISs6ISe6ISh6ISV6ISn6ISd6ISi6IiR6Ii46Iiz6Ii66Ii06Iiy6Im06I6Q6I6j6I6o6I6N6I266I2z6I6k6I206I6P6I6B6I6V6I6Z6I216I6U6I6p6I296I6D6I6M6I6d6I6b6I6q6I6L6I2+6I6l6I6v6I6I6I6X6I6w6I2/6I6m6I6H6I6u6I226I6a6JmZ6JmW6Jq/6Jq3Il0sWyJkN2ExIiwi6JuC6JuB6JuF6Jq66Jqw6JuI6Jq56Jqz6Jq46JuM6Jq06Jq76Jq86JuD6Jq96Jq+6KGS6KKJ6KKV6KKo6KKi6KKq6KKa6KKR6KKh6KKf6KKY6KKn6KKZ6KKb6KKX6KKk6KKs6KKM6KKT6KKO6KaC6KeW6KeZ6KeV6Kiw6Kin6Kis6Kie6LC56LC76LGc6LGd6LG96LKl6LW96LW76LW56La86LeC6La56La/6LeB6LuY6Lue6Lud6Luc6LuX6Lug6Luh6YCk6YCL6YCR6YCc6YCM6YCh6YOv6YOq6YOw6YO06YOy6YOz6YOU6YOr6YOs6YOp6YWW6YWY6YWa6YWT6YWV6Yes6Ye06Yex6Yez6Ye46Yek6Ye56YeqIl0sWyJkODQwIiwi6Yer6Ye36Yeo6Yeu6ZW66ZaG6ZaI6Zm86Zmt6Zmr6Zmx6Zmv6Zq/6Z2q6aCE6aOl6aaX5YKb5YKV5YKU5YKe5YKL5YKj5YKD5YKM5YKO5YKd5YGo5YKc5YKS5YKC5YKH5YWf5YeU5YyS5YyR5Y6k5Y6n5ZaR5Zao5Zal5Zat5ZW35ZmF5Zai5ZaT5ZaI5ZaP5Za15ZaB5Zaj5ZaS5Zak5ZW95ZaM5Zam5ZW/5ZaV5Zah5ZaO5ZyM5aCp5aC3Il0sWyJkOGExIiwi5aCZ5aCe5aCn5aCj5aCo5Z+15aGI5aCl5aCc5aCb5aCz5aC/5aC25aCu5aC55aC45aCt5aCs5aC75aWh5aqv5aqU5aqf5am65aqi5aqe5am45aqm5am85aql5aqs5aqV5aqu5ai35aqE5aqK5aqX5aqD5aqL5aqp5am75am95aqM5aqc5aqP5aqT5aqd5a+q5a+N5a+L5a+U5a+R5a+K5a+O5bCM5bCw5bS35bWD5bWr5bWB5bWL5bS/5bS15bWR5bWO5bWV5bSz5bS65bWS5bS95bSx5bWZ5bWC5bS55bWJ5bS45bS85bSy5bS25bWA5bWF5bmE5bmB5b2Y5b6m5b6l5b6r5oOJ5oK55oOM5oOi5oOO5oOE5oSUIl0sWyJkOTQwIiwi5oOy5oSK5oSW5oSF5oO15oST5oO45oO85oO+5oOB5oSD5oSY5oSd5oSQ5oO/5oSE5oSL5omK5o6U5o6x5o6w5o+O5o+l5o+o5o+v5o+D5pKd5o+z5o+K5o+g5o+25o+V5o+y5o+15pGh5o+f5o6+5o+d5o+c5o+E5o+Y5o+T5o+C5o+H5o+M5o+L5o+I5o+w5o+X5o+Z5pSy5pWn5pWq5pWk5pWc5pWo5pWl5paM5pad5pae5pau5peQ5peSIl0sWyJkOWExIiwi5pm85pms5pm75pqA5pmx5pm55pmq5pmy5pyB5qSM5qOT5qSE5qOc5qSq5qOs5qOq5qOx5qSP5qOW5qO35qOr5qOk5qO25qST5qSQ5qOz5qOh5qSH5qOM5qSI5qWw5qK05qSR5qOv5qOG5qSU5qO45qOQ5qO95qO85qOo5qSL5qSK5qSX5qOO5qOI5qOd5qOe5qOm5qO05qOR5qSG5qOU5qOp5qSV5qSl5qOH5qy55qy75qy/5qy85q6U5q6X5q6Z5q6V5q695q+w5q+y5q+z5rCw5re85rmG5rmH5rif5rmJ5rqI5ri85ri95rmF5rmi5rir5ri/5rmB5rmd5rmz5ric5riz5rmL5rmA5rmR5ri75riD5riu5rmeIl0sWyJkYTQwIiwi5rmo5rmc5rmh5rix5rio5rmg5rmx5rmr5ri55rii5riw5rmT5rml5rin5rm45rmk5rm35rmV5rm55rmS5rmm5ri15ri25rma54Sg54Se54Sv54O754Su54Sx54Sj54Sl54Si54Sy54Sf54So54S654Sb54mL54ma54qI54qJ54qG54qF54qL54yS54yL54yw54yi54yx54yz54yn54yy54yt54ym54yj54y154yM55Cu55Cs55Cw55Cr55CWIl0sWyJkYWExIiwi55Ca55Ch55Ct55Cx55Ck55Cj55Cd55Cp55Cg55Cy55O755Sv55Wv55Ws55en55ea55eh55em55ed55ef55ek55eX55qV55qS55ua552G552H552E552N552F552K552O552L552M55+e55+s56Gg56Gk56Gl56Gc56Gt56Gx56Gq56Gu56Gw56Gp56Go56Ge56Gi56W056Wz56Wy56Ww56iC56iK56iD56iM56iE56qZ56um56uk562K56y7562E562I562M562O562A562Y562F57Ki57Ke57Ko57Kh57WY57Wv57Wj57WT57WW57Wn57Wq57WP57Wt57Wc57Wr57WS57WU57Wp57WR57Wf57WO57y+57y/572lIl0sWyJkYjQwIiwi572m576i576g576h57+X6IGR6IGP6IGQ6IO+6IOU6IWD6IWK6IWS6IWP6IWH6IS96IWN6IS66Iem6Ieu6Ie36Ie46Ie56IiE6Ii86Ii96Ii/6Im16Iy76I+P6I+56JCj6I+A6I+o6JCS6I+n6I+k6I+86I+26JCQ6I+G6I+I6I+r6I+j6I6/6JCB6I+d6I+l6I+Y6I+/6I+h6I+L6I+O6I+W6I+16I+J6JCJ6JCP6I+e6JCR6JCG6I+C6I+zIl0sWyJkYmExIiwi6I+V6I+66I+H6I+R6I+q6JCT6I+D6I+s6I+u6I+E6I+76I+X6I+i6JCb6I+b6I++6JuY6Jui6Jum6JuT6Juj6Jua6Juq6Jud6Jur6Juc6Jus6Jup6JuX6Juo6JuR6KGI6KGW6KGV6KK66KOX6KK56KK46KOA6KK+6KK26KK86KK36KK96KKy6KSB6KOJ6KaV6KaY6KaX6Ked6Kea6Keb6KmO6KmN6Ki56KmZ6KmA6KmX6KmY6KmE6KmF6KmS6KmI6KmR6KmK6KmM6KmP6LGf6LKB6LKA6LK66LK+6LKw6LK56LK16LaE6LaA6LaJ6LeY6LeT6LeN6LeH6LeW6Lec6LeP6LeV6LeZ6LeI6LeX6LeF6Luv6Lu36Lu6Il0sWyJkYzQwIiwi6Lu56Lum6Luu6Lul6Lu16Lun6Luo6Lu26Lur6Lux6Lus6Lu06Lup6YCt6YC06YCv6YSG6YSs6YSE6YO/6YO86YSI6YO56YO76YSB6YSA6YSH6YSF6YSD6YWh6YWk6YWf6YWi6YWg6YiB6YiK6Yil6YiD6Yia6Yim6YiP6YiM6YiA6YiS6Ye/6Ye96YiG6YiE6Yin6YiC6Yic6Yik6YiZ6YiX6YiF6YiW6ZW76ZaN6ZaM6ZaQ6ZqH6Zm+6ZqIIl0sWyJkY2ExIiwi6ZqJ6ZqD6ZqA6ZuC6ZuI6ZuD6Zux6Zuw6Z2s6Z2w6Z2u6aCH6aKp6aOr6bOm6bu55LqD5LqE5Lq25YK95YK/5YOG5YKu5YOE5YOK5YK05YOI5YOC5YKw5YOB5YK65YKx5YOL5YOJ5YK25YK45YeX5Ym65Ym45Ym75Ym85ZeD5Zeb5ZeM5ZeQ5ZeL5ZeK5Zed5ZeA5ZeU5ZeE5Zep5Za/5ZeS5ZaN5ZeP5ZeV5Zei5ZeW5ZeI5Zey5ZeN5ZeZ5ZeC5ZyU5aGT5aGo5aGk5aGP5aGN5aGJ5aGv5aGV5aGO5aGd5aGZ5aGl5aGb5aC95aGj5aGx5aO85auH5auE5auL5aq65aq45aqx5aq15aqw5aq/5auI5aq75auGIl0sWyJkZDQwIiwi5aq35auA5auK5aq05aq25auN5aq55aqQ5a+W5a+Y5a+Z5bCf5bCz5bWx5bWj5bWK5bWl5bWy5bWs5bWe5bWo5bWn5bWi5bew5bmP5bmO5bmK5bmN5bmL5buF5buM5buG5buL5buH5b2A5b6v5b6t5oO35oWJ5oWK5oSr5oWF5oS25oSy5oSu5oWG5oSv5oWP5oSp5oWA5oig6YWo5oij5oil5oik5o+F5o+x5o+r5pCQ5pCS5pCJ5pCg5pCkIl0sWyJkZGExIiwi5pCz5pGD5pCf5pCV5pCY5pC55pC35pCi5pCj5pCM5pCm5pCw5pCo5pGB5pC15pCv5pCK5pCa5pGA5pCl5pCn5pCL5o+n5pCb5pCu5pCh5pCO5pWv5paS5peT5pqG5pqM5pqV5pqQ5pqL5pqK5pqZ5pqU5pm45pyg5qWm5qWf5qS45qWO5qWi5qWx5qS/5qWF5qWq5qS55qWC5qWX5qWZ5qW65qWI5qWJ5qS15qWs5qSz5qS95qWl5qOw5qW45qS05qWp5qWA5qWv5qWE5qW25qWY5qWB5qW05qWM5qS75qWL5qS35qWc5qWP5qWR5qSy5qWS5qSv5qW75qS85q2G5q2F5q2D5q2C5q2I5q2B5q6b76iN5q+75q+8Il0sWyJkZTQwIiwi5q+55q+35q+45rqb5ruW5ruI5rqP5ruA5rqf5rqT5rqU5rqg5rqx5rq55ruG5ruS5rq95ruB5rqe5ruJ5rq35rqw5ruN5rqm5ruP5rqy5rq+5ruD5ruc5ruY5rqZ5rqS5rqO5rqN5rqk5rqh5rq/5rqz5ruQ5ruK5rqX5rqu5rqj54WH54WU54WS54Wj54Wg54WB54Wd54Wi54Wy54W454Wq54Wh54WC54WY54WD54WL54Ww54Wf54WQ54WTIl0sWyJkZWExIiwi54WE54WN54Wa54mP54qN54qM54qR54qQ54qO54y8542C54y754y6542A542K542J55GE55GK55GL55GS55GR55GX55GA55GP55GQ55GO55GC55GG55GN55GU55Oh55O/55O+55O955Sd55W555W35qaD55ev55iP55iD55e355e+55e855e555e455iQ55e755e255et55e155e955qZ55q155ud552V552f552g552S552W552a552p552n552U552Z552t55+g56KH56Ka56KU56KP56KE56KV56KF56KG56Kh56KD56G556KZ56KA56KW56G756W856aC56W956W556iR56iY56iZ56iS56iX56iV56ii56iTIl0sWyJkZjQwIiwi56ib56iQ56qj56qi56qe56ur562m562k562t5620562p562y562l562z562x562w562h56245622562j57Ky57K057Kv57aI57aG57aA57aN57W/57aF57W657aO57W757aD57W857aM57aU57aE57W957aS572t572r572n572o572s576m576l576n57+b57+c6ICh6IWk6IWg6IW36IWc6IWp6IWb6IWi6IWy5pyh6IWe6IW26IWn6IWvIl0sWyJkZmExIiwi6IWE6IWh6Iid6ImJ6ImE6ImA6ImC6ImF6JOx6JC/6JGW6JG26JG56JKP6JKN6JGl6JGR6JGA6JKG6JGn6JCw6JGN6JG96JGa6JGZ6JG06JGz6JGd6JSH6JGe6JC36JC66JC06JG66JGD6JG46JCy6JGF6JCp6I+Z6JGL6JCv6JGC6JCt6JGf6JGw6JC56JGO6JGM6JGS6JGv6JOF6JKO6JC76JGH6JC26JCz6JGo6JG+6JGE6JCr6JGg6JGU6JGu6JGQ6JyL6JyE6Ju36JyM6Ju66JuW6Ju16J2N6Ju46JyO6JyJ6JyB6Ju26JyN6JyF6KOW6KOL6KON6KOO6KOe6KOb6KOa6KOM6KOQ6KaF6Kab6Kef6Kel6KekIl0sWyJlMDQwIiwi6Keh6Keg6Kei6Kec6Kem6Km26KqG6Km/6Kmh6Ki/6Km36KqC6KqE6Km16KqD6KqB6Km06Km66LC86LGL6LGK6LGl6LGk6LGm6LKG6LKE6LKF6LOM6LWo6LWp6LaR6LaM6LaO6LaP6LaN6LaT6LaU6LaQ6LaS6Lew6Leg6Les6Lex6Leu6LeQ6Lep6Lej6Lei6Len6Ley6Ler6Le06LyG6Lu/6LyB6LyA6LyF6LyH6LyI6LyC6LyL6YGS6YC/Il0sWyJlMGExIiwi6YGE6YGJ6YC96YSQ6YSN6YSP6YSR6YSW6YSU6YSL6YSO6YWu6YWv6YmI6YmS6Yiw6Yi66Ymm6Yiz6Yml6Yme6YqD6Yiu6YmK6YmG6Ymt6Yms6YmP6Ymg6Ymn6Ymv6Yi26Ymh6Ymw6Yix6YmU6Ymj6YmQ6Ymy6YmO6YmT6YmM6YmW6Yiy6Zaf6Zac6Zae6Zab6ZqS6ZqT6ZqR6ZqX6ZuO6Zu66Zu96Zu46Zu16Z2z6Z236Z246Z2y6aCP6aCN6aCO6aKs6aO26aO56aav6aay6aaw6aa16aqt6aqr6a2b6bOq6bOt6bOn6bqA6bu95YOm5YOU5YOX5YOo5YOz5YOb5YOq5YOd5YOk5YOT5YOs5YOw5YOv5YOj5YOgIl0sWyJlMTQwIiwi5YeY5YqA5YqB5Yup5Yur5Yyw5Y6s5Zin5ZiV5ZiM5ZiS5Ze85ZiP5Zic5ZiB5ZiT5ZiC5Ze65Zid5ZiE5Ze/5Ze55aKJ5aG85aKQ5aKY5aKG5aKB5aG/5aG05aKL5aG65aKH5aKR5aKO5aG25aKC5aKI5aG75aKU5aKP5aO+5aWr5auc5auu5aul5auV5auq5aua5aut5aur5auz5aui5aug5aub5aus5aue5aud5auZ5auo5auf5a235a+gIl0sWyJlMWExIiwi5a+j5bGj5baC5baA5bW95baG5bW65baB5bW35baK5baJ5baI5bW+5bW85baN5bW55bW/5bmY5bmZ5bmT5buY5buR5buX5buO5buc5buV5buZ5buS5buU5b2E5b2D5b2v5b625oSs5oSo5oWB5oWe5oWx5oWz5oWS5oWT5oWy5oWs5oaA5oW05oWU5oW65oWb5oWl5oS75oWq5oWh5oWW5oip5oin5oir5pCr5pGN5pGb5pGd5pG05pG25pGy5pGz5pG95pG15pGm5pKm5pGO5pKC5pGe5pGc5pGL5pGT5pGg5pGQ5pG/5pC/5pGs5pGr5pGZ5pGl5pG35pWz5pag5pqh5pqg5pqf5pyF5pyE5pyi5qax5qa25qeJIl0sWyJlMjQwIiwi5qag5qeO5qaW5qaw5qas5qa85qaR5qaZ5qaO5qan5qaN5qap5qa+5qav5qa/5qeE5qa95qak5qeU5qa55qeK5qaa5qeP5qaz5qaT5qaq5qah5qae5qeZ5qaX5qaQ5qeC5qa15qal5qeG5q2K5q2N5q2L5q6e5q6f5q6g5q+D5q+E5q++5ruO5ru15rux5ryD5ryl5ru45ry35ru75ryu5ryJ5r2O5ryZ5rya5ryn5ryY5ry75ryS5rut5ryKIl0sWyJlMmExIiwi5ry25r2z5ru55ruu5ryt5r2A5ryw5ry85ry15rur5ryH5ryO5r2D5ryF5ru95ru25ry55ryc5ru85ry65ryf5ryN5rye5ryI5ryh54aH54aQ54aJ54aA54aF54aC54aP54W754aG54aB54aX54mE54mT54qX54qV54qT542D542N542R542M55Gi55Gz55Gx55G155Gy55Gn55Gu55SA55SC55SD55W955aQ55iW55iI55iM55iV55iR55iK55iU55q4556B5528556F556C552u556A552v552+556D56Ky56Kq56K056Kt56Ko56G+56Kr56Ke56Kl56Kg56Ks56Ki56Kk56aY56aK56aL56aW56aV56aU56aTIl0sWyJlMzQwIiwi56aX56aI56aS56aQ56ir56mK56iw56iv56io56im56qo56qr56qs56uu566I566c566K566R566Q566W566N566M566b566O566F566Y5YqE566Z566k566C57K757K/57K857K657an57a357eC57aj57aq57eB57eA57eF57ad57eO57eE57eG57eL57eM57av57a557aW57a857af57am57au57ap57ah57eJ572z57+i57+j57+l57+eIl0sWyJlM2ExIiwi6ICk6IGd6IGc6IaJ6IaG6IaD6IaH6IaN6IaM6IaL6IiV6JKX6JKk6JKh6JKf6JK66JOO6JOC6JKs6JKu6JKr6JK56JK06JOB6JON6JKq6JKa6JKx6JOQ6JKd6JKn6JK76JKi6JKU6JOH6JOM6JKb6JKp6JKv6JKo6JOW6JKY6JK26JOP6JKg6JOX6JOU6JOS6JOb6JKw6JKR6Jmh6Jyz6Jyj6Jyo6J2r6J2A6Jyu6Jye6Jyh6JyZ6Jyb6J2D6Jys6J2B6Jy+6J2G6Jyg6Jyy6Jyq6Jyt6Jy86JyS6Jy66Jyx6Jy16J2C6Jym6Jyn6Jy46Jyk6Jya6Jyw6JyR6KO36KOn6KOx6KOy6KO66KO+6KOu6KO86KO26KO7Il0sWyJlNDQwIiwi6KOw6KOs6KOr6Kad6Kah6Kaf6Kae6Kep6Ker6Keo6Kqr6KqZ6KqL6KqS6KqP6KqW6LC96LGo6LGp6LOV6LOP6LOX6LaW6LiJ6LiC6Le/6LiN6Le96LiK6LiD6LiH6LiG6LiF6Le+6LiA6LiE6LyQ6LyR6LyO6LyN6YSj6YSc6YSg6YSi6YSf6YSd6YSa6YSk6YSh6YSb6YW66YWy6YW56YWz6Yql6Yqk6Ym26Yqb6Ym66Yqg6YqU6Yqq6YqNIl0sWyJlNGExIiwi6Yqm6Yqa6Yqr6Ym56YqX6Ym/6Yqj6Yuu6YqO6YqC6YqV6Yqi6Ym96YqI6Yqh6YqK6YqG6YqM6YqZ6Yqn6Ym+6YqH6Yqp6Yqd6YqL6Yit6Zqe6Zqh6Zu/6Z2Y6Z296Z266Z2+6Z6D6Z6A6Z6C6Z276Z6E6Z6B6Z2/6Z+O6Z+N6aCW6aKt6aKu6aSC6aSA6aSH6aad6aac6aeD6aa56aa76aa66aeC6aa96aeH6aqx6auj6aun6ay+6ay/6a2g6a2h6a2f6bOx6bOy6bO16bqn5YO/5YSD5YSw5YO45YSG5YSH5YO25YO+5YSL5YSM5YO95YSK5YqL5YqM5Yux5Yuv5ZmI5ZmC5ZmM5Zi15ZmB5ZmK5ZmJ5ZmG5ZmYIl0sWyJlNTQwIiwi5Zma5ZmA5Ziz5Zi95Zis5Zi+5Zi45Ziq5Zi65Zya5aKr5aKd5aKx5aKg5aKj5aKv5aKs5aKl5aKh5aO/5au/5au05au95au35au25ayD5au45ayC5au55ayB5ayH5ayF5ayP5bGn5baZ5baX5baf5baS5bai5baT5baV5bag5bac5bah5baa5bae5bmp5bmd5bmg5bmc57ez5bub5bue5buh5b2J5b6y5oaL5oaD5oW55oax5oaw5oai5oaJIl0sWyJlNWExIiwi5oab5oaT5oav5oat5oaf5oaS5oaq5oah5oaN5oWm5oaz5oit5pGu5pGw5pKW5pKg5pKF5pKX5pKc5pKP5pKL5pKK5pKM5pKj5pKf5pGo5pKx5pKY5pW25pW65pW55pW75pay5paz5pq15pqw5pqp5pqy5pq35pqq5pqv5qiA5qiG5qiX5qel5qe45qiV5qex5qek5qig5qe/5qes5qei5qib5qid5qe+5qin5qey5qeu5qiU5qe35qen5qmA5qiI5qem5qe75qiN5qe85qer5qiJ5qiE5qiY5qil5qiP5qe25qim5qiH5qe05qiW5q2R5q6l5q6j5q6i5q6m5rCB5rCA5q+/5rCC5r2B5rym5r2+5r6H5r+G5r6SIl0sWyJlNjQwIiwi5r6N5r6J5r6M5r2i5r2P5r6F5r2a5r6W5r225r2s5r6C5r2V5r2y5r2S5r2Q5r2X5r6U5r6T5r2d5ryA5r2h5r2r5r295r2n5r6Q5r2T5r6L5r2p5r2/5r6V5r2j5r235r2q5r2754ay54av54ab54aw54ag54aa54ap54a154ad54al54ae54ak54ah54aq54ac54an54az54qY54qa542Y542S542e542f542g542d542b542h542a542ZIl0sWyJlNmExIiwi542i55KH55KJ55KK55KG55KB55G955KF55KI55G855G555SI55SH55W+55il55ie55iZ55id55ic55ij55ia55io55ib55qc55qd55qe55qb556N556P556J556I56ON56K756OP56OM56OR56OO56OU56OI56OD56OE56OJ56aa56ah56ag56ac56ai56ab5q2256i556qy56q056qz566356+L566+566s56+O566v566556+K566157OF57OI57OM57OL57e357eb57eq57en57eX57eh57iD57e657em57e257ex57ew57eu57ef5722576s576w576t57+t57+r57+q57+s57+m57+o6IGk6IGn6Iaj6IafIl0sWyJlNzQwIiwi6Iae6IaV6Iai6IaZ6IaX6IiW6ImP6ImT6ImS6ImQ6ImO6ImR6JSk6JS76JSP6JSA6JSp6JSO6JSJ6JSN6JSf6JSK6JSn6JSc6JO76JSr6JO66JSI6JSM6JO06JSq6JOy6JSV6JO36JOr6JOz6JO86JSS6JOq6JOp6JSW6JO+6JSo6JSd6JSu6JSC6JO96JSe6JO26JSx6JSm6JOn6JOo6JOw6JOv6JO56JSY6JSg6JSw6JSL6JSZ6JSv6JmiIl0sWyJlN2ExIiwi6J2W6J2j6J2k6J236J+h6J2z6J2Y6J2U6J2b6J2S6J2h6J2a6J2R6J2e6J2t6J2q6J2Q6J2O6J2f6J2d6J2v6J2s6J266J2u6J2c6J2l6J2P6J276J216J2i6J2n6J2p6KGa6KSF6KSM6KSU6KSL6KSX6KSY6KSZ6KSG6KSW6KSR6KSO6KSJ6Kai6Kak6Kaj6Ket6Kew6Kes6KuP6KuG6Kq46KuT6KuR6KuU6KuV6Kq76KuX6Kq+6KuA6KuF6KuY6KuD6Kq66Kq96KuZ6LC+6LGN6LKP6LOl6LOf6LOZ6LOo6LOa6LOd6LOn6Lag6Lac6Lah6Lab6Lig6Lij6Lil6Lik6Liu6LiV6Lib6LiW6LiR6LiZ6Lim6LinIl0sWyJlODQwIiwi6LiU6LiS6LiY6LiT6Lic6LiX6Lia6Lys6Lyk6LyY6Lya6Lyg6Lyj6LyW6LyX6YGz6YGw6YGv6YGn6YGr6YSv6YSr6YSp6YSq6YSy6YSm6YSu6YaF6YaG6YaK6YaB6YaC6YaE6YaA6YuQ6YuD6YuE6YuA6YuZ6Yq26YuP6Yux6Yuf6YuY6Yup6YuX6Yud6YuM6Yuv6YuC6Yuo6YuK6YuI6YuO6Yum6YuN6YuV6YuJ6Yug6Yue6Yun6YuR6YuTIl0sWyJlOGExIiwi6Yq16Yuh6YuG6Yq06ZW86Zas6Zar6Zau6Zaw6Zqk6Zqi6ZuT6ZyF6ZyI6ZyC6Z2a6Z6K6Z6O6Z6I6Z+Q6Z+P6aCe6aCd6aCm6aCp6aCo6aCg6aCb6aCn6aKy6aSI6aO66aSR6aSU6aSW6aSX6aSV6aec6aeN6aeP6aeT6aeU6aeO6aeJ6aeW6aeY6aeL6aeX6aeM6aqz6aus6aur6auz6auy6aux6a2G6a2D6a2n6a206a2x6a2m6a226a216a2w6a2o6a2k6a2s6bO86bO66bO96bO/6bO36bSH6bSA6bO56bO76bSI6bSF6bSE6bqD6buT6byP6byQ5YSc5YST5YSX5YSa5YSR5Yee5Yy05Y+h5Zmw5Zmg5ZmuIl0sWyJlOTQwIiwi5Zmz5Zmm5Zmj5Zmt5Zmy5Zme5Zm35Zyc5Zyb5aOI5aK95aOJ5aK/5aK65aOC5aK85aOG5ayX5ayZ5ayb5ayh5ayU5ayT5ayQ5ayW5ayo5aya5ayg5aye5a+v5bas5bax5bap5ban5ba15baw5bau5baq5bao5bay5bat5bav5ba05bmn5bmo5bmm5bmv5bup5bun5bum5buo5bul5b2L5b685oad5oao5oaW5oeF5oa05oeG5oeB5oeM5oa6Il0sWyJlOWExIiwi5oa/5oa45oaM5pOX5pOW5pOQ5pOP5pOJ5pK95pKJ5pOD5pOb5pOz5pOZ5pSz5pW/5pW85pai5puI5pq+5puA5puK5puL5puP5pq95pq75pq65puM5pyj5qi05qmm5qmJ5qmn5qiy5qmo5qi+5qmd5qmt5qm25qmb5qmR5qio5qma5qi75qi/5qmB5qmq5qmk5qmQ5qmP5qmU5qmv5qmp5qmg5qi85qme5qmW5qmV5qmN5qmO5qmG5q2V5q2U5q2W5q6n5q6q5q6r5q+I5q+H5rCE5rCD5rCG5r6t5r+L5r6j5r+H5r685r+O5r+I5r2e5r+E5r695r6e5r+K5r6o54CE5r6l5r6u5r665r6s5r6q5r+P5r6/5r64Il0sWyJlYTQwIiwi5r6i5r+J5r6r5r+N5r6v5r6y5r6w54eF54eC54a/54a454eW54eA54eB54eL54eU54eK54eH54eP54a954eY54a854eG54ea54eb54qd54qe542p542m542n542s542l542r542q55G/55Ka55Kg55KU55KS55KV55Kh55SL55aA55iv55it55ix55i955iz55i855i155iy55iw55q755um556a556d556h556c556b556i556j556V556ZIl0sWyJlYWExIiwi556X56Od56Op56Ol56Oq56Oe56Oj56Ob56Oh56Oi56Ot56Of56Og56ak56mE56mI56mH56q256q456q156qx56q356+e56+j56+n56+d56+V56+l56+a56+o56+556+U56+q56+i56+c56+r56+Y56+f57OS57OU57OX57OQ57OR57iS57ih57iX57iM57if57ig57iT57iO57ic57iV57ia57ii57iL57iP57iW57iN57iU57il57ik572D572757285726576x57+v6ICq6ICp6IGs6Iax6Iam6Iau6Ia56Ia16Iar6Iaw6Ias6Ia06Iay6Ia36Ian6Iey6ImV6ImW6ImX6JWW6JWF6JWr6JWN6JWT6JWh6JWYIl0sWyJlYjQwIiwi6JWA6JWG6JWk6JWB6JWi6JWE6JWR6JWH6JWj6JS+6JWb6JWx6JWO6JWu6JW16JWV6JWn6JWg6JaM6JWm6JWd6JWU6JWl6JWs6Jmj6Jml6Jmk6J6b6J6P6J6X6J6T6J6S6J6I6J6B6J6W6J6Y6J256J6H6J6j6J6F6J6Q6J6R6J6d6J6E6J6U6J6c6J6a6J6J6KSe6KSm6KSw6KSt6KSu6KSn6KSx6KSi6KSp6KSj6KSv6KSs6KSf6Kex6KugIl0sWyJlYmExIiwi6Kui6Kuy6Ku06Ku16Kud6KyU6Kuk6Kuf6Kuw6KuI6Kue6Kuh6Kuo6Ku/6Kuv6Ku76LKR6LKS6LKQ6LO16LOu6LOx6LOw6LOz6LWs6LWu6Lal6Lan6Liz6Li+6Li46LmA6LmF6Li26Li86Li96LmB6Liw6Li/6Lq96Ly26Lyu6Ly16Lyy6Ly56Ly36Ly06YG26YG56YG76YKG6YO66YSz6YS16YS26YaT6YaQ6YaR6YaN6YaP6Yyn6Yye6YyI6Yyf6YyG6YyP6Y266Yy46Yy86Yyb6Yyj6YyS6YyB6Y2G6Yyt6YyO6YyN6YuL6Yyd6Yu66Yyl6YyT6Yu56Yu36Yy06YyC6Yyk6Yu/6Yyp6Yy56Yy16Yyq6YyU6YyMIl0sWyJlYzQwIiwi6YyL6Yu+6YyJ6YyA6Yu76YyW6Za86ZeN6Za+6Za56Za66Za26Za/6Za16Za96Zqp6ZuU6ZyL6ZyS6ZyQ6Z6Z6Z6X6Z6U6Z+w6Z+46aC16aCv6aCy6aSk6aSf6aSn6aSp6aae6aeu6aes6ael6aek6aew6aej6aeq6aep6aen6aq56aq/6aq06aq76au26au66au56au36ayz6a6A6a6F6a6H6a286a2+6a276a6C6a6T6a6S6a6Q6a266a6VIl0sWyJlY2ExIiwi6a296a6I6bSl6bSX6bSg6bSe6bSU6bSp6bSd6bSY6bSi6bSQ6bSZ6bSf6bqI6bqG6bqH6bqu6bqt6buV6buW6bu66byS6by95YSm5YSl5YSi5YSk5YSg5YSp5Yu05ZqT5ZqM5ZqN5ZqG5ZqE5ZqD5Zm+5ZqC5Zm/5ZqB5aOW5aOU5aOP5aOS5ayt5ayl5ayy5ayj5ays5ayn5aym5ayv5ayu5a275a+x5a+y5ba35bms5bmq5b6+5b675oeD5oa15oa85oen5oeg5oel5oek5oeo5oee5pOv5pOp5pOj5pOr5pOk5pOo5paB5paA5pa25pea5puS5qqN5qqW5qqB5qql5qqJ5qqf5qqb5qqh5qqe5qqH5qqT5qqOIl0sWyJlZDQwIiwi5qqV5qqD5qqo5qqk5qqR5qm/5qqm5qqa5qqF5qqM5qqS5q2b5q6t5rCJ5r+M5r6p5r+05r+U5r+j5r+c5r+t5r+n5r+m5r+e5r+y5r+d5r+i5r+o54eh54ex54eo54ey54ek54ew54ei542z542u542v55KX55Ky55Kr55KQ55Kq55Kt55Kx55Kl55Kv55SQ55SR55SS55SP55aE55mD55mI55mJ55mH55qk55up5561556r556y55635562Il0sWyJlZGExIiwi5560556x556o55+w56Oz56O956SC56O756O856Oy56SF56O556O+56SE56ar56ao56mc56mb56mW56mY56mU56ma56q+56uA56uB57CF57CP56+y57CA56+/56+757CO56+057CL56+z57CC57CJ57CD57CB56+456+957CG56+w56+x57CQ57CK57Oo57it57i857mC57iz6aGI57i457iq57mJ57mA57mH57ip57mM57iw57i757i257mE57i6572F572/572+572957+057+y6ICs6Ia76IeE6IeM6IeK6IeF6IeH6Ia86Iep6Imb6Ima6Imc6JaD6JaA6JaP6Jan6JaV6Jag6JaL6Jaj6JW76Jak6Jaa6JaeIl0sWyJlZTQwIiwi6JW36JW86JaJ6Jah6JW66JW46JWX6JaO6JaW6JaG6JaN6JaZ6Jad6JaB6Jai6JaC6JaI6JaF6JW56JW26JaY6JaQ6Jaf6Jmo6J6+6J6q6J6t6J+F6J6w6J6s6J656J616J686J6u6J+J6J+D6J+C6J+M6J636J6v6J+E6J+K6J606J626J6/6J646J696J+e6J6y6KS16KSz6KS86KS+6KWB6KWS6KS36KWC6Kat6Kav6Kau6Key6Kez6KyeIl0sWyJlZWExIiwi6KyY6KyW6KyR6KyF6KyL6Kyi6KyP6KyS6KyV6KyH6KyN6KyI6KyG6Kyc6KyT6Kya6LGP6LGw6LGy6LGx6LGv6LKV6LKU6LO56LWv6LmO6LmN6LmT6LmQ6LmM6LmH6L2D6L2A6YKF6YG+6YS46Yaa6Yai6Yab6YaZ6Yaf6Yah6Yad6Yag6Y6h6Y6D6Y6v6Y2k6Y2W6Y2H6Y286Y2Y6Y2c6Y226Y2J6Y2Q6Y2R6Y2g6Y2t6Y6P6Y2M6Y2q6Y256Y2X6Y2V6Y2S6Y2P6Y2x6Y236Y276Y2h6Y2e6Y2j6Y2n6Y6A6Y2O6Y2Z6ZeH6ZeA6ZeJ6ZeD6ZeF6Za36Zqu6Zqw6Zqs6Zyg6Zyf6ZyY6Zyd6ZyZ6Z6a6Z6h6Z6cIl0sWyJlZjQwIiwi6Z6e6Z6d6Z+V6Z+U6Z+x6aGB6aGE6aGK6aGJ6aGF6aGD6aSl6aSr6aSs6aSq6aSz6aSy6aSv6aSt6aSx6aSw6aaY6aaj6aah6aiC6ae66ae06ae36ae56ae46ae26ae76ae96ae+6ae86aiD6aq+6au+6au96ayB6au86a2I6a6a6a6o6a6e6a6b6a6m6a6h6a6l6a6k6a6G6a6i6a6g6a6v6bSz6bWB6bWn6bS26bSu6bSv6bSx6bS46bSwIl0sWyJlZmExIiwi6bWF6bWC6bWD6bS+6bS36bWA6bS957+16bSt6bqK6bqJ6bqN6bqw6buI6bua6bu76bu/6byk6byj6byi6b2U6b6g5YSx5YSt5YSu5ZqY5Zqc5ZqX5Zqa5Zqd5ZqZ5aWw5ay85bGp5bGq5beA5bmt5bmu5oeY5oef5oet5oeu5oex5oeq5oew5oer5oeW5oep5pO/5pSE5pO95pO45pSB5pSD5pO85paU5peb5pua5pub5puY5quF5qq55qq95quh5quG5qq65qq25qq35quH5qq05qqt5q2e5q+J5rCL54CH54CM54CN54CB54CF54CU54CO5r+/54CA5r+754Cm5r+85r+354CK54iB54e/54e554iD54e95422Il0sWyJmMDQwIiwi55K455OA55K155OB55K+55K255K755OC55SU55ST55mc55mk55mZ55mQ55mT55mX55ma55qm55q955us55+C556656O/56SM56ST56SU56SJ56SQ56SS56SR56at56as56mf57Cc57Cp57CZ57Cg57Cf57Ct57Cd57Cm57Co57Ci57Cl57Cw57mc57mQ57mW57mj57mY57mi57mf57mR57mg57mX57mT5761576z57+357+46IG16IeR6IeSIl0sWyJmMGExIiwi6IeQ6Imf6Ime6Ja06JeG6JeA6JeD6JeC6Jaz6Ja16Ja96JeH6JeE6Ja/6JeL6JeO6JeI6JeF6Jax6Ja26JeS6Jik6Ja46Ja36Ja+6Jmp6J+n6J+m6J+i6J+b6J+r6J+q6J+l6J+f6J+z6J+k6J+U6J+c6J+T6J+t6J+Y6J+j6J6k6J+X6J+Z6KCB6J+06J+o6J+d6KWT6KWL6KWP6KWM6KWG6KWQ6KWR6KWJ6Kyq6Kyn6Kyj6Kyz6Kyw6Ky16K2H6Kyv6Ky86Ky+6Kyx6Kyl6Ky36Kym6Ky26Kyu6Kyk6Ky76Ky96Ky66LGC6LG16LKZ6LKY6LKX6LO+6LSE6LSC6LSA6Lmc6Lmi6Lmg6LmX6LmW6Lme6Lml6LmnIl0sWyJmMTQwIiwi6Lmb6Lma6Lmh6Lmd6Lmp6LmU6L2G6L2H6L2I6L2L6YSo6YS66YS76YS+6Yao6Yal6Yan6Yav6Yaq6Y616Y6M6Y6S6Y636Y6b6Y6d6Y6J6Y6n6Y6O6Y6q6Y6e6Y6m6Y6V6Y6I6Y6Z6Y6f6Y6N6Y6x6Y6R6Y6y6Y6k6Y6o6Y606Y6j6Y6l6ZeS6ZeT6ZeR6Zqz6ZuX6Zua5beC6Zuf6ZuY6Zud6Zyj6Zyi6Zyl6Z6s6Z6u6Z6o6Z6r6Z6k6Z6qIl0sWyJmMWExIiwi6Z6i6Z6l6Z+X6Z+Z6Z+W6Z+Y6Z+66aGQ6aGR6aGS6aK46aWB6aS86aS66aiP6aiL6aiJ6aiN6aiE6aiR6aiK6aiF6aiH6aiG6auA6auc6ayI6ayE6ayF6ayp6ay16a2K6a2M6a2L6a+H6a+G6a+D6a6/6a+B6a616a646a+T6a626a+E6a656a696bWc6bWT6bWP6bWK6bWb6bWL6bWZ6bWW6bWM6bWX6bWS6bWU6bWf6bWY6bWa6bqO6bqM6buf6byB6byA6byW6byl6byr6byq6byp6byo6b2M6b2V5YS05YS15YqW5Yu35Y605Zqr5Zqt5Zqm5Zqn5Zqq5Zqs5aOa5aOd5aOb5aSS5ay95ay+5ay/5beD5bmwIl0sWyJmMjQwIiwi5b6/5oe75pSH5pSQ5pSN5pSJ5pSM5pSO5paE5pee5ped5pue5qun5qug5quM5quR5quZ5quL5quf5quc5quQ5qur5quP5quN5que5q2g5q6w5rCM54CZ54Cn54Cg54CW54Cr54Ch54Ci54Cj54Cp54CX54Ck54Cc54Cq54iM54iK54iH54iC54iF54ql54qm54qk54qj54qh55OL55OF55K355OD55SW55mg55+J55+K55+E55+x56Sd56SbIl0sWyJmMmExIiwi56Sh56Sc56SX56Se56aw56mn56mo57Cz57C857C557Cs57C757Os57Oq57m257m157m457mw57m357mv57m657my57m057mo572L572K576D576G576357+957++6IG46IeX6IeV6Imk6Imh6Imj6Jer6Jex6Jet6JeZ6Jeh6Jeo6Jea6JeX6Jes6Jey6Je46JeY6Jef6Jej6Jec6JeR6Jew6Jem6Jev6Jee6Jei6KCA6J+66KCD6J+26J+36KCJ6KCM6KCL6KCG6J+86KCI6J+/6KCK6KCC6KWi6KWa6KWb6KWX6KWh6KWc6KWY6KWd6KWZ6KaI6Ka36Ka26Ke26K2Q6K2I6K2K6K2A6K2T6K2W6K2U6K2L6K2VIl0sWyJmMzQwIiwi6K2R6K2C6K2S6K2X6LGD6LG36LG26LKa6LSG6LSH6LSJ6Las6Laq6Lat6Lar6Lmt6Lm46Lmz6Lmq6Lmv6Lm76LuC6L2S6L2R6L2P6L2Q6L2T6L606YWA6YS/6Yaw6Yat6Y+e6Y+H6Y+P6Y+C6Y+a6Y+Q6Y+56Y+s6Y+M6Y+Z6Y6p6Y+m6Y+K6Y+U6Y+u6Y+j6Y+V6Y+E6Y+O6Y+A6Y+S6Y+n6ZW96Zea6Zeb6Zuh6Zyp6Zyr6Zys6Zyo6ZymIl0sWyJmM2ExIiwi6Z6z6Z636Z626Z+d6Z+e6Z+f6aGc6aGZ6aGd6aGX6aK/6aK96aK76aK+6aWI6aWH6aWD6aam6aan6aia6aiV6ail6aid6aik6aib6aii6aig6ain6aij6aie6aic6aiU6auC6ayL6ayK6ayO6ayM6ay36a+q6a+r6a+g6a+e6a+k6a+m6a+i6a+w6a+U6a+X6a+s6a+c6a+Z6a+l6a+V6a+h6a+a6bW36baB6baK6baE6baI6bWx6baA6bW46baG6baL6baM6bW96bWr6bW06bW16bWw6bWp6baF6bWz6bW76baC6bWv6bW56bW/6baH6bWo6bqU6bqR6buA6bu86byt6b2A6b2B6b2N6b2W6b2X6b2Y5Yy35ZqyIl0sWyJmNDQwIiwi5Zq15Zqz5aOj5a2F5beG5beH5buu5buv5b+A5b+B5oe55pSX5pSW5pSV5pST5pef5puo5puj5puk5quz5quw5quq5quo5qu55qux5quu5quv54C854C154Cv54C354C054Cx54GC54C454C/54C654C554GA54C754Cz54GB54iT54iU54qo5429542855K655qr55qq55q+55ut55+M55+O55+P55+N55+y56Sl56Sj56Sn56So56Sk56SpIl0sWyJmNGExIiwi56ay56mu56ms56mt56u357GJ57GI57GK57GH57GF57Ou57m757m+57qB57qA576657+/6IG56Ieb6IeZ6IiL6Imo6Imp6Jii6Je/6JiB6Je+6Jib6JiA6Je26JiE6JiJ6JiF6JiM6Je96KCZ6KCQ6KCR6KCX6KCT6KCW6KWj6KWm6Ka56Ke36K2g6K2q6K2d6K2o6K2j6K2l6K2n6K2t6Lau6LqG6LqI6LqE6L2Z6L2W6L2X6L2V6L2Y6L2a6YKN6YWD6YWB6Ya36Ya16Yay6Yaz6ZCL6ZCT6Y+76ZCg6ZCP6ZCU6Y++6ZCV6ZCQ6ZCo6ZCZ6ZCN6Y+16ZCA6Y+36ZCH6ZCO6ZCW6ZCS6Y+66ZCJ6Y+46ZCK6Y+/Il0sWyJmNTQwIiwi6Y+86ZCM6Y+26ZCR6ZCG6Zee6Zeg6Zef6Zyu6Zyv6Z656Z676Z+96Z++6aGg6aGi6aGj6aGf6aOB6aOC6aWQ6aWO6aWZ6aWM6aWL6aWT6aiy6ai06aix6ais6aiq6ai26aip6aiu6ai46ait6auH6auK6auG6ayQ6ayS6ayR6bCL6bCI6a+36bCF6bCS6a+46bGA6bCH6bCO6bCG6bCX6bCU6bCJ6baf6baZ6bak6bad6baS6baY6baQ6babIl0sWyJmNWExIiwi6bag6baU6bac6baq6baX6bah6baa6bai6bao6bae6baj6ba/6bap6baW6bam6ban6bqZ6bqb6bqa6bul6buk6bun6bum6byw6byu6b2b6b2g6b2e6b2d6b2Z6b6R5YS65YS55YqY5YqX5ZuD5Zq95Zq+5a2I5a2H5beL5beP5bux5oe95pSb5qyC5qu85qyD5qu45qyA54GD54GE54GK54GI54GJ54GF54GG54id54ia54iZ542+55SX55mq55+Q56St56Sx56Sv57GU57GT57Oy57qK57qH57qI57qL57qG57qN572N57676ICw6Ied6JiY6Jiq6Jim6Jif6Jij6Jic6JiZ6Jin6Jiu6Jih6Jig6Jip6Jie6JilIl0sWyJmNjQwIiwi6KCp6KCd6KCb6KCg6KCk6KCc6KCr6KGK6KWt6KWp6KWu6KWr6Ke66K256K246K2F6K266K276LSQ6LSU6Lav6LqO6LqM6L2e6L2b6L2d6YWG6YWE6YWF6Ya56ZC/6ZC76ZC26ZCp6ZC96ZC86ZCw6ZC56ZCq6ZC36ZCs6ZGA6ZCx6Zel6Zek6Zej6Zy16Zy66Z6/6Z+h6aGk6aOJ6aOG6aOA6aWY6aWW6ai56ai96amG6amE6amC6amB6ai6Il0sWyJmNmExIiwi6ai/6auN6ayV6ayX6ayY6ayW6ay66a2S6bCr6bCd6bCc6bCs6bCj6bCo6bCp6bCk6bCh6ba36ba26ba86beB6beH6beK6beP6ba+6beF6beD6ba76ba16beO6ba56ba66bas6beI6bax6bat6beM6baz6beN6bay6bm66bqc6bur6buu6but6byb6byY6bya6byx6b2O6b2l6b2k6b6S5Lq55ZuG5ZuF5ZuL5aWx5a2L5a2M5beV5beR5buy5pSh5pSg5pSm5pSi5qyL5qyI5qyJ5rCN54GV54GW54GX54GS54ie54if54qp542/55OY55OV55OZ55OX55mt55qt56S156a056mw56mx57GX57Gc57GZ57Gb57GaIl0sWyJmNzQwIiwi57O057Ox57qR572P576H6Iee6Imr6Ji06Ji16Jiz6Jis6Jiy6Ji26KCs6KCo6KCm6KCq6KCl6KWx6Ka/6Ka+6Ke76K2+6K6E6K6C6K6G6K6F6K2/6LSV6LqV6LqU6Lqa6LqS6LqQ6LqW6LqX6L2g6L2i6YWH6ZGM6ZGQ6ZGK6ZGL6ZGP6ZGH6ZGF6ZGI6ZGJ6ZGG6Zy/6Z+j6aGq6aGp6aOL6aWU6aWb6amO6amT6amU6amM6amP6amI6amKIl0sWyJmN2ExIiwi6amJ6amS6amQ6auQ6ayZ6ayr6ay76a2W6a2V6bGG6bGI6bC/6bGE6bC56bCz6bGB6bC86bC36bC06bCy6bC96bC26beb6beS6bee6bea6beL6beQ6bec6beR6bef6bep6beZ6beY6beW6be16beV6bed6bq26buw6by16byz6byy6b2C6b2r6b6V6b6i5YS95YqZ5aOo5aOn5aWy5a2N5beY6KCv5b2P5oiB5oiD5oiE5pSp5pSl5paW5pur5qyR5qyS5qyP5q+K54Gb54Ga54ii546C546B546D55mw55+U57Gn57Gm57qV6Ims6Ji66JmA6Ji56Ji86Jix6Ji76Ji+6KCw6KCy6KCu6KCz6KW26KW06KWz6Ke+Il0sWyJmODQwIiwi6K6M6K6O6K6L6K6I6LGF6LSZ6LqY6L2k6L2j6Ya86ZGi6ZGV6ZGd6ZGX6ZGe6Z+E6Z+F6aCA6amW6amZ6aye6ayf6ayg6bGS6bGY6bGQ6bGK6bGN6bGL6bGV6bGZ6bGM6bGO6be76be36bev6bej6ber6be46bek6be26beh6beu6bem6bey6bew6bei6bes6be06bez6beo6bet6buC6buQ6buy6buz6byG6byc6by46by36by26b2D6b2PIl0sWyJmOGExIiwi6b2x6b2w6b2u6b2v5ZuT5ZuN5a2O5bGt5pSt5put5puu5qyT54Gf54Gh54Gd54Gg54ij55Ob55Ol55+V56S456a356a257Gq57qX576J6Imt6JmD6KC46KC36KC16KGL6K6U6K6V6Lqe6Lqf6Lqg6Lqd6Ya+6Ya96YeC6ZGr6ZGo6ZGp6Zul6Z2G6Z2D6Z2H6Z+H6Z+l6ame6auV6a2Z6bGj6bGn6bGm6bGi6bGe6bGg6biC6be+6biH6biD6biG6biF6biA6biB6biJ6be/6be96biE6bqg6bye6b2G6b206b216b225ZuU5pSu5pa45qyY5qyZ5qyX5qya54Gi54im54qq55+Y55+Z56S557Gp57Gr57O257qaIl0sWyJmOTQwIiwi57qY57qb57qZ6Ieg6Ieh6JmG6JmH6JmI6KW56KW66KW86KW76Ke/6K6Y6K6Z6Lql6Lqk6Lqj6ZGu6ZGt6ZGv6ZGx6ZGz6Z2J6aGy6aWf6bGo6bGu6bGt6biL6biN6biQ6biP6biS6biR6bqh6bu16byJ6b2H6b246b276b266b255Zye54Gm57Gv6KC86Lay6Lqm6YeD6ZG06ZG46ZG26ZG16amg6bG06bGz6bGx6bG16biU6biT6bu26byKIl0sWyJmOWExIiwi6b6k54Go54Gl57O36Jmq6KC+6KC96KC/6K6e6LKc6Lqp6LuJ6Z2L6aGz6aG06aOM6aWh6aar6amk6amm6amn6ayk6biV6biX6b2I5oiH5qye54in6JmM6Lqo6ZKC6ZKA6ZKB6amp6amo6ayu6biZ54ip6JmL6K6f6ZKD6bG56bq355m16amr6bG66bid54Gp54Gq6bqk6b2+6b2J6b6Y56KB6Yq56KOP5aK75oGS57Kn5au64pWU4pWm4pWX4pWg4pWs4pWj4pWa4pWp4pWd4pWS4pWk4pWV4pWe4pWq4pWh4pWY4pWn4pWb4pWT4pWl4pWW4pWf4pWr4pWi4pWZ4pWo4pWc4pWR4pWQ4pWt4pWu4pWw4pWv4paTIl1dCgovKioqLyB9KSwKLyogOTMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIEFycmF5VCwgTnVtYmVyVCwgdXRpbHM7CgogIE51bWJlclQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKS5OdW1iZXI7CgogIHV0aWxzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7CgogIEFycmF5VCA9IChmdW5jdGlvbigpIHsKICAgIGZ1bmN0aW9uIEFycmF5VCh0eXBlLCBsZW5ndGgsIGxlbmd0aFR5cGUpIHsKICAgICAgdGhpcy50eXBlID0gdHlwZTsKICAgICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7CiAgICAgIHRoaXMubGVuZ3RoVHlwZSA9IGxlbmd0aFR5cGUgIT0gbnVsbCA/IGxlbmd0aFR5cGUgOiAnY291bnQnOwogICAgfQoKICAgIEFycmF5VC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oc3RyZWFtLCBwYXJlbnQpIHsKICAgICAgdmFyIGN0eCwgaSwgbGVuZ3RoLCBwb3MsIHJlcywgdGFyZ2V0LCBfaTsKICAgICAgcG9zID0gc3RyZWFtLnBvczsKICAgICAgcmVzID0gW107CiAgICAgIGN0eCA9IHBhcmVudDsKICAgICAgaWYgKHRoaXMubGVuZ3RoICE9IG51bGwpIHsKICAgICAgICBsZW5ndGggPSB1dGlscy5yZXNvbHZlTGVuZ3RoKHRoaXMubGVuZ3RoLCBzdHJlYW0sIHBhcmVudCk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMubGVuZ3RoIGluc3RhbmNlb2YgTnVtYmVyVCkgewogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHJlcywgewogICAgICAgICAgcGFyZW50OiB7CiAgICAgICAgICAgIHZhbHVlOiBwYXJlbnQKICAgICAgICAgIH0sCiAgICAgICAgICBfc3RhcnRPZmZzZXQ6IHsKICAgICAgICAgICAgdmFsdWU6IHBvcwogICAgICAgICAgfSwKICAgICAgICAgIF9jdXJyZW50T2Zmc2V0OiB7CiAgICAgICAgICAgIHZhbHVlOiAwLAogICAgICAgICAgICB3cml0YWJsZTogdHJ1ZQogICAgICAgICAgfSwKICAgICAgICAgIF9sZW5ndGg6IHsKICAgICAgICAgICAgdmFsdWU6IGxlbmd0aAogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIGN0eCA9IHJlczsKICAgICAgfQogICAgICBpZiAoKGxlbmd0aCA9PSBudWxsKSB8fCB0aGlzLmxlbmd0aFR5cGUgPT09ICdieXRlcycpIHsKICAgICAgICB0YXJnZXQgPSBsZW5ndGggIT0gbnVsbCA/IHN0cmVhbS5wb3MgKyBsZW5ndGggOiAocGFyZW50ICE9IG51bGwgPyBwYXJlbnQuX2xlbmd0aCA6IHZvaWQgMCkgPyBwYXJlbnQuX3N0YXJ0T2Zmc2V0ICsgcGFyZW50Ll9sZW5ndGggOiBzdHJlYW0ubGVuZ3RoOwogICAgICAgIHdoaWxlIChzdHJlYW0ucG9zIDwgdGFyZ2V0KSB7CiAgICAgICAgICByZXMucHVzaCh0aGlzLnR5cGUuZGVjb2RlKHN0cmVhbSwgY3R4KSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGZvciAoaSA9IF9pID0gMDsgX2kgPCBsZW5ndGg7IGkgPSBfaSArPSAxKSB7CiAgICAgICAgICByZXMucHVzaCh0aGlzLnR5cGUuZGVjb2RlKHN0cmVhbSwgY3R4KSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiByZXM7CiAgICB9OwoKICAgIEFycmF5VC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKGFycmF5LCBjdHgpIHsKICAgICAgdmFyIGl0ZW0sIHNpemUsIF9pLCBfbGVuOwogICAgICBpZiAoIWFycmF5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5zaXplKG51bGwsIGN0eCkgKiB1dGlscy5yZXNvbHZlTGVuZ3RoKHRoaXMubGVuZ3RoLCBudWxsLCBjdHgpOwogICAgICB9CiAgICAgIHNpemUgPSAwOwogICAgICBpZiAodGhpcy5sZW5ndGggaW5zdGFuY2VvZiBOdW1iZXJUKSB7CiAgICAgICAgc2l6ZSArPSB0aGlzLmxlbmd0aC5zaXplKCk7CiAgICAgICAgY3R4ID0gewogICAgICAgICAgcGFyZW50OiBjdHgKICAgICAgICB9OwogICAgICB9CiAgICAgIGZvciAoX2kgPSAwLCBfbGVuID0gYXJyYXkubGVuZ3RoOyBfaSA8IF9sZW47IF9pKyspIHsKICAgICAgICBpdGVtID0gYXJyYXlbX2ldOwogICAgICAgIHNpemUgKz0gdGhpcy50eXBlLnNpemUoaXRlbSwgY3R4KTsKICAgICAgfQogICAgICByZXR1cm4gc2l6ZTsKICAgIH07CgogICAgQXJyYXlULnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIGFycmF5LCBwYXJlbnQpIHsKICAgICAgdmFyIGN0eCwgaSwgaXRlbSwgcHRyLCBfaSwgX2xlbjsKICAgICAgY3R4ID0gcGFyZW50OwogICAgICBpZiAodGhpcy5sZW5ndGggaW5zdGFuY2VvZiBOdW1iZXJUKSB7CiAgICAgICAgY3R4ID0gewogICAgICAgICAgcG9pbnRlcnM6IFtdLAogICAgICAgICAgc3RhcnRPZmZzZXQ6IHN0cmVhbS5wb3MsCiAgICAgICAgICBwYXJlbnQ6IHBhcmVudAogICAgICAgIH07CiAgICAgICAgY3R4LnBvaW50ZXJPZmZzZXQgPSBzdHJlYW0ucG9zICsgdGhpcy5zaXplKGFycmF5LCBjdHgpOwogICAgICAgIHRoaXMubGVuZ3RoLmVuY29kZShzdHJlYW0sIGFycmF5Lmxlbmd0aCk7CiAgICAgIH0KICAgICAgZm9yIChfaSA9IDAsIF9sZW4gPSBhcnJheS5sZW5ndGg7IF9pIDwgX2xlbjsgX2krKykgewogICAgICAgIGl0ZW0gPSBhcnJheVtfaV07CiAgICAgICAgdGhpcy50eXBlLmVuY29kZShzdHJlYW0sIGl0ZW0sIGN0eCk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMubGVuZ3RoIGluc3RhbmNlb2YgTnVtYmVyVCkgewogICAgICAgIGkgPSAwOwogICAgICAgIHdoaWxlIChpIDwgY3R4LnBvaW50ZXJzLmxlbmd0aCkgewogICAgICAgICAgcHRyID0gY3R4LnBvaW50ZXJzW2krK107CiAgICAgICAgICBwdHIudHlwZS5lbmNvZGUoc3RyZWFtLCBwdHIudmFsKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIEFycmF5VDsKCiAgfSkoKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBBcnJheVQ7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiA5NCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuNy4xCihmdW5jdGlvbigpIHsKICB2YXIgU3RydWN0LCB1dGlsczsKCiAgdXRpbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKCiAgU3RydWN0ID0gKGZ1bmN0aW9uKCkgewogICAgZnVuY3Rpb24gU3RydWN0KGZpZWxkcykgewogICAgICB0aGlzLmZpZWxkcyA9IGZpZWxkcyAhPSBudWxsID8gZmllbGRzIDoge307CiAgICB9CgogICAgU3RydWN0LnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIHBhcmVudCwgbGVuZ3RoKSB7CiAgICAgIHZhciByZXMsIF9yZWY7CiAgICAgIGlmIChsZW5ndGggPT0gbnVsbCkgewogICAgICAgIGxlbmd0aCA9IDA7CiAgICAgIH0KICAgICAgcmVzID0gdGhpcy5fc2V0dXAoc3RyZWFtLCBwYXJlbnQsIGxlbmd0aCk7CiAgICAgIHRoaXMuX3BhcnNlRmllbGRzKHN0cmVhbSwgcmVzLCB0aGlzLmZpZWxkcyk7CiAgICAgIGlmICgoX3JlZiA9IHRoaXMucHJvY2VzcykgIT0gbnVsbCkgewogICAgICAgIF9yZWYuY2FsbChyZXMsIHN0cmVhbSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlczsKICAgIH07CgogICAgU3RydWN0LnByb3RvdHlwZS5fc2V0dXAgPSBmdW5jdGlvbihzdHJlYW0sIHBhcmVudCwgbGVuZ3RoKSB7CiAgICAgIHZhciByZXM7CiAgICAgIHJlcyA9IHt9OwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhyZXMsIHsKICAgICAgICBwYXJlbnQ6IHsKICAgICAgICAgIHZhbHVlOiBwYXJlbnQKICAgICAgICB9LAogICAgICAgIF9zdGFydE9mZnNldDogewogICAgICAgICAgdmFsdWU6IHN0cmVhbS5wb3MKICAgICAgICB9LAogICAgICAgIF9jdXJyZW50T2Zmc2V0OiB7CiAgICAgICAgICB2YWx1ZTogMCwKICAgICAgICAgIHdyaXRhYmxlOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBfbGVuZ3RoOiB7CiAgICAgICAgICB2YWx1ZTogbGVuZ3RoCiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHJlczsKICAgIH07CgogICAgU3RydWN0LnByb3RvdHlwZS5fcGFyc2VGaWVsZHMgPSBmdW5jdGlvbihzdHJlYW0sIHJlcywgZmllbGRzKSB7CiAgICAgIHZhciBrZXksIHR5cGUsIHZhbDsKICAgICAgZm9yIChrZXkgaW4gZmllbGRzKSB7CiAgICAgICAgdHlwZSA9IGZpZWxkc1trZXldOwogICAgICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgdmFsID0gdHlwZS5jYWxsKHJlcywgcmVzKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFsID0gdHlwZS5kZWNvZGUoc3RyZWFtLCByZXMpOwogICAgICAgIH0KICAgICAgICBpZiAodmFsICE9PSB2b2lkIDApIHsKICAgICAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiB1dGlscy5Qcm9wZXJ0eURlc2NyaXB0b3IpIHsKICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJlcywga2V5LCB2YWwpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmVzW2tleV0gPSB2YWw7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJlcy5fY3VycmVudE9mZnNldCA9IHN0cmVhbS5wb3MgLSByZXMuX3N0YXJ0T2Zmc2V0OwogICAgICB9CiAgICB9OwoKICAgIFN0cnVjdC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKHZhbCwgcGFyZW50LCBpbmNsdWRlUG9pbnRlcnMpIHsKICAgICAgdmFyIGN0eCwga2V5LCBzaXplLCB0eXBlLCBfcmVmOwogICAgICBpZiAodmFsID09IG51bGwpIHsKICAgICAgICB2YWwgPSB7fTsKICAgICAgfQogICAgICBpZiAoaW5jbHVkZVBvaW50ZXJzID09IG51bGwpIHsKICAgICAgICBpbmNsdWRlUG9pbnRlcnMgPSB0cnVlOwogICAgICB9CiAgICAgIGN0eCA9IHsKICAgICAgICBwYXJlbnQ6IHBhcmVudCwKICAgICAgICB2YWw6IHZhbCwKICAgICAgICBwb2ludGVyU2l6ZTogMAogICAgICB9OwogICAgICBzaXplID0gMDsKICAgICAgX3JlZiA9IHRoaXMuZmllbGRzOwogICAgICBmb3IgKGtleSBpbiBfcmVmKSB7CiAgICAgICAgdHlwZSA9IF9yZWZba2V5XTsKICAgICAgICBpZiAodHlwZS5zaXplICE9IG51bGwpIHsKICAgICAgICAgIHNpemUgKz0gdHlwZS5zaXplKHZhbFtrZXldLCBjdHgpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoaW5jbHVkZVBvaW50ZXJzKSB7CiAgICAgICAgc2l6ZSArPSBjdHgucG9pbnRlclNpemU7CiAgICAgIH0KICAgICAgcmV0dXJuIHNpemU7CiAgICB9OwoKICAgIFN0cnVjdC5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24oc3RyZWFtLCB2YWwsIHBhcmVudCkgewogICAgICB2YXIgY3R4LCBpLCBrZXksIHB0ciwgdHlwZSwgX3JlZiwgX3JlZjE7CiAgICAgIGlmICgoX3JlZiA9IHRoaXMucHJlRW5jb2RlKSAhPSBudWxsKSB7CiAgICAgICAgX3JlZi5jYWxsKHZhbCwgc3RyZWFtKTsKICAgICAgfQogICAgICBjdHggPSB7CiAgICAgICAgcG9pbnRlcnM6IFtdLAogICAgICAgIHN0YXJ0T2Zmc2V0OiBzdHJlYW0ucG9zLAogICAgICAgIHBhcmVudDogcGFyZW50LAogICAgICAgIHZhbDogdmFsLAogICAgICAgIHBvaW50ZXJTaXplOiAwCiAgICAgIH07CiAgICAgIGN0eC5wb2ludGVyT2Zmc2V0ID0gc3RyZWFtLnBvcyArIHRoaXMuc2l6ZSh2YWwsIGN0eCwgZmFsc2UpOwogICAgICBfcmVmMSA9IHRoaXMuZmllbGRzOwogICAgICBmb3IgKGtleSBpbiBfcmVmMSkgewogICAgICAgIHR5cGUgPSBfcmVmMVtrZXldOwogICAgICAgIGlmICh0eXBlLmVuY29kZSAhPSBudWxsKSB7CiAgICAgICAgICB0eXBlLmVuY29kZShzdHJlYW0sIHZhbFtrZXldLCBjdHgpOwogICAgICAgIH0KICAgICAgfQogICAgICBpID0gMDsKICAgICAgd2hpbGUgKGkgPCBjdHgucG9pbnRlcnMubGVuZ3RoKSB7CiAgICAgICAgcHRyID0gY3R4LnBvaW50ZXJzW2krK107CiAgICAgICAgcHRyLnR5cGUuZW5jb2RlKHN0cmVhbSwgcHRyLnZhbCwgcHRyLnBhcmVudCk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIFN0cnVjdDsKCiAgfSkoKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBTdHJ1Y3Q7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiA5NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9ICFfX3dlYnBhY2tfcmVxdWlyZV9fKDUpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fKDE5KShmdW5jdGlvbiAoKSB7CiAgcmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShfX3dlYnBhY2tfcmVxdWlyZV9fKDk2KSgnZGl2JyksICdhJywgeyBnZXQ6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIDc7IH0gfSkuYSAhPSA3Owp9KTsKCgovKioqLyB9KSwKLyogOTYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGlzT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTsKdmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCkuZG9jdW1lbnQ7Ci8vIHR5cGVvZiBkb2N1bWVudC5jcmVhdGVFbGVtZW50IGlzICdvYmplY3QnIGluIG9sZCBJRQp2YXIgaXMgPSBpc09iamVjdChkb2N1bWVudCkgJiYgaXNPYmplY3QoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCk7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0KSB7CiAgcmV0dXJuIGlzID8gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChpdCkgOiB7fTsKfTsKCgovKioqLyB9KSwKLyogOTcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXQpIHsKICBpZiAodHlwZW9mIGl0ICE9ICdmdW5jdGlvbicpIHRocm93IFR5cGVFcnJvcihpdCArICcgaXMgbm90IGEgZnVuY3Rpb24hJyk7CiAgcmV0dXJuIGl0Owp9OwoKCi8qKiovIH0pLAovKiA5OCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7Cgptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChkb25lLCB2YWx1ZSkgewogIHJldHVybiB7IHZhbHVlOiB2YWx1ZSwgZG9uZTogISFkb25lIH07Cn07CgoKLyoqKi8gfSksCi8qIDk5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CgoKLyoqKi8gfSksCi8qIDEwMCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgZFAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwp2YXIgYW5PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKdmFyIGdldEtleXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5KTsKCm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIDogZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKSB7CiAgYW5PYmplY3QoTyk7CiAgdmFyIGtleXMgPSBnZXRLZXlzKFByb3BlcnRpZXMpOwogIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDsKICB2YXIgaSA9IDA7CiAgdmFyIFA7CiAgd2hpbGUgKGxlbmd0aCA+IGkpIGRQLmYoTywgUCA9IGtleXNbaSsrXSwgUHJvcGVydGllc1tQXSk7CiAgcmV0dXJuIE87Cn07CgoKLyoqKi8gfSksCi8qIDEwMSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgaGFzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7CnZhciB0b0lPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3KTsKdmFyIGFycmF5SW5kZXhPZiA9IF9fd2VicGFja19yZXF1aXJlX18oMjA0KShmYWxzZSk7CnZhciBJRV9QUk9UTyA9IF9fd2VicGFja19yZXF1aXJlX18oNjQpKCdJRV9QUk9UTycpOwoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBuYW1lcykgewogIHZhciBPID0gdG9JT2JqZWN0KG9iamVjdCk7CiAgdmFyIGkgPSAwOwogIHZhciByZXN1bHQgPSBbXTsKICB2YXIga2V5OwogIGZvciAoa2V5IGluIE8pIGlmIChrZXkgIT0gSUVfUFJPVE8pIGhhcyhPLCBrZXkpICYmIHJlc3VsdC5wdXNoKGtleSk7CiAgLy8gRG9uJ3QgZW51bSBidWcgJiBoaWRkZW4ga2V5cwogIHdoaWxlIChuYW1lcy5sZW5ndGggPiBpKSBpZiAoaGFzKE8sIGtleSA9IG5hbWVzW2krK10pKSB7CiAgICB+YXJyYXlJbmRleE9mKHJlc3VsdCwga2V5KSB8fCByZXN1bHQucHVzaChrZXkpOwogIH0KICByZXR1cm4gcmVzdWx0Owp9OwoKCi8qKiovIH0pLAovKiAxMDIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIHRvSW50ZWdlciA9IF9fd2VicGFja19yZXF1aXJlX18oNjMpOwp2YXIgbWF4ID0gTWF0aC5tYXg7CnZhciBtaW4gPSBNYXRoLm1pbjsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaW5kZXgsIGxlbmd0aCkgewogIGluZGV4ID0gdG9JbnRlZ2VyKGluZGV4KTsKICByZXR1cm4gaW5kZXggPCAwID8gbWF4KGluZGV4ICsgbGVuZ3RoLCAwKSA6IG1pbihpbmRleCwgbGVuZ3RoKTsKfTsKCgovKioqLyB9KSwKLyogMTAzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjE1KSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDEwNCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyA3LjIuMiBJc0FycmF5KGFyZ3VtZW50KQp2YXIgY29mID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1NSk7Cm1vZHVsZS5leHBvcnRzID0gQXJyYXkuaXNBcnJheSB8fCBmdW5jdGlvbiBpc0FycmF5KGFyZykgewogIHJldHVybiBjb2YoYXJnKSA9PSAnQXJyYXknOwp9OwoKCi8qKiovIH0pLAovKiAxMDUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gMTkuMS4yLjcgLyAxNS4yLjMuNCBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhPKQp2YXIgJGtleXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwMSk7CnZhciBoaWRkZW5LZXlzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2NikuY29uY2F0KCdsZW5ndGgnLCAncHJvdG90eXBlJyk7CgpleHBvcnRzLmYgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKE8pIHsKICByZXR1cm4gJGtleXMoTywgaGlkZGVuS2V5cyk7Cn07CgoKLyoqKi8gfSksCi8qIDEwNiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsKCmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsKICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIik7CiAgfQp9OwoKLyoqKi8gfSksCi8qIDEwNyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsKCnZhciBfZGVmaW5lUHJvcGVydHkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDc0KTsKCnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGVmaW5lUHJvcGVydHkpOwoKZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH0KCmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsKICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOwogICAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7CiAgICAgIGlmICgidmFsdWUiIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOwogICAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTsKICAgIH0KICB9CgogIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7CiAgICBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOwogICAgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7CiAgICByZXR1cm4gQ29uc3RydWN0b3I7CiAgfTsKfSgpOwoKLyoqKi8gfSksCi8qIDEwOCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Cgp2YXIgZFAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpLmY7CnZhciBjcmVhdGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM2KTsKdmFyIHJlZGVmaW5lQWxsID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMDkpOwp2YXIgY3R4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CnZhciBhbkluc3RhbmNlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTApOwp2YXIgZm9yT2YgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQxKTsKdmFyICRpdGVyRGVmaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2MSk7CnZhciBzdGVwID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5OCk7CnZhciBzZXRTcGVjaWVzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMjgpOwp2YXIgREVTQ1JJUFRPUlMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpOwp2YXIgZmFzdEtleSA9IF9fd2VicGFja19yZXF1aXJlX18oNDApLmZhc3RLZXk7CnZhciB2YWxpZGF0ZSA9IF9fd2VicGFja19yZXF1aXJlX18oNzUpOwp2YXIgU0laRSA9IERFU0NSSVBUT1JTID8gJ19zJyA6ICdzaXplJzsKCnZhciBnZXRFbnRyeSA9IGZ1bmN0aW9uICh0aGF0LCBrZXkpIHsKICAvLyBmYXN0IGNhc2UKICB2YXIgaW5kZXggPSBmYXN0S2V5KGtleSk7CiAgdmFyIGVudHJ5OwogIGlmIChpbmRleCAhPT0gJ0YnKSByZXR1cm4gdGhhdC5faVtpbmRleF07CiAgLy8gZnJvemVuIG9iamVjdCBjYXNlCiAgZm9yIChlbnRyeSA9IHRoYXQuX2Y7IGVudHJ5OyBlbnRyeSA9IGVudHJ5Lm4pIHsKICAgIGlmIChlbnRyeS5rID09IGtleSkgcmV0dXJuIGVudHJ5OwogIH0KfTsKCm1vZHVsZS5leHBvcnRzID0gewogIGdldENvbnN0cnVjdG9yOiBmdW5jdGlvbiAod3JhcHBlciwgTkFNRSwgSVNfTUFQLCBBRERFUikgewogICAgdmFyIEMgPSB3cmFwcGVyKGZ1bmN0aW9uICh0aGF0LCBpdGVyYWJsZSkgewogICAgICBhbkluc3RhbmNlKHRoYXQsIEMsIE5BTUUsICdfaScpOwogICAgICB0aGF0Ll90ID0gTkFNRTsgICAgICAgICAvLyBjb2xsZWN0aW9uIHR5cGUKICAgICAgdGhhdC5faSA9IGNyZWF0ZShudWxsKTsgLy8gaW5kZXgKICAgICAgdGhhdC5fZiA9IHVuZGVmaW5lZDsgICAgLy8gZmlyc3QgZW50cnkKICAgICAgdGhhdC5fbCA9IHVuZGVmaW5lZDsgICAgLy8gbGFzdCBlbnRyeQogICAgICB0aGF0W1NJWkVdID0gMDsgICAgICAgICAvLyBzaXplCiAgICAgIGlmIChpdGVyYWJsZSAhPSB1bmRlZmluZWQpIGZvck9mKGl0ZXJhYmxlLCBJU19NQVAsIHRoYXRbQURERVJdLCB0aGF0KTsKICAgIH0pOwogICAgcmVkZWZpbmVBbGwoQy5wcm90b3R5cGUsIHsKICAgICAgLy8gMjMuMS4zLjEgTWFwLnByb3RvdHlwZS5jbGVhcigpCiAgICAgIC8vIDIzLjIuMy4yIFNldC5wcm90b3R5cGUuY2xlYXIoKQogICAgICBjbGVhcjogZnVuY3Rpb24gY2xlYXIoKSB7CiAgICAgICAgZm9yICh2YXIgdGhhdCA9IHZhbGlkYXRlKHRoaXMsIE5BTUUpLCBkYXRhID0gdGhhdC5faSwgZW50cnkgPSB0aGF0Ll9mOyBlbnRyeTsgZW50cnkgPSBlbnRyeS5uKSB7CiAgICAgICAgICBlbnRyeS5yID0gdHJ1ZTsKICAgICAgICAgIGlmIChlbnRyeS5wKSBlbnRyeS5wID0gZW50cnkucC5uID0gdW5kZWZpbmVkOwogICAgICAgICAgZGVsZXRlIGRhdGFbZW50cnkuaV07CiAgICAgICAgfQogICAgICAgIHRoYXQuX2YgPSB0aGF0Ll9sID0gdW5kZWZpbmVkOwogICAgICAgIHRoYXRbU0laRV0gPSAwOwogICAgICB9LAogICAgICAvLyAyMy4xLjMuMyBNYXAucHJvdG90eXBlLmRlbGV0ZShrZXkpCiAgICAgIC8vIDIzLjIuMy40IFNldC5wcm90b3R5cGUuZGVsZXRlKHZhbHVlKQogICAgICAnZGVsZXRlJzogZnVuY3Rpb24gKGtleSkgewogICAgICAgIHZhciB0aGF0ID0gdmFsaWRhdGUodGhpcywgTkFNRSk7CiAgICAgICAgdmFyIGVudHJ5ID0gZ2V0RW50cnkodGhhdCwga2V5KTsKICAgICAgICBpZiAoZW50cnkpIHsKICAgICAgICAgIHZhciBuZXh0ID0gZW50cnkubjsKICAgICAgICAgIHZhciBwcmV2ID0gZW50cnkucDsKICAgICAgICAgIGRlbGV0ZSB0aGF0Ll9pW2VudHJ5LmldOwogICAgICAgICAgZW50cnkuciA9IHRydWU7CiAgICAgICAgICBpZiAocHJldikgcHJldi5uID0gbmV4dDsKICAgICAgICAgIGlmIChuZXh0KSBuZXh0LnAgPSBwcmV2OwogICAgICAgICAgaWYgKHRoYXQuX2YgPT0gZW50cnkpIHRoYXQuX2YgPSBuZXh0OwogICAgICAgICAgaWYgKHRoYXQuX2wgPT0gZW50cnkpIHRoYXQuX2wgPSBwcmV2OwogICAgICAgICAgdGhhdFtTSVpFXS0tOwogICAgICAgIH0gcmV0dXJuICEhZW50cnk7CiAgICAgIH0sCiAgICAgIC8vIDIzLjIuMy42IFNldC5wcm90b3R5cGUuZm9yRWFjaChjYWxsYmFja2ZuLCB0aGlzQXJnID0gdW5kZWZpbmVkKQogICAgICAvLyAyMy4xLjMuNSBNYXAucHJvdG90eXBlLmZvckVhY2goY2FsbGJhY2tmbiwgdGhpc0FyZyA9IHVuZGVmaW5lZCkKICAgICAgZm9yRWFjaDogZnVuY3Rpb24gZm9yRWFjaChjYWxsYmFja2ZuIC8qICwgdGhhdCA9IHVuZGVmaW5lZCAqLykgewogICAgICAgIHZhbGlkYXRlKHRoaXMsIE5BTUUpOwogICAgICAgIHZhciBmID0gY3R4KGNhbGxiYWNrZm4sIGFyZ3VtZW50cy5sZW5ndGggPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkLCAzKTsKICAgICAgICB2YXIgZW50cnk7CiAgICAgICAgd2hpbGUgKGVudHJ5ID0gZW50cnkgPyBlbnRyeS5uIDogdGhpcy5fZikgewogICAgICAgICAgZihlbnRyeS52LCBlbnRyeS5rLCB0aGlzKTsKICAgICAgICAgIC8vIHJldmVydCB0byB0aGUgbGFzdCBleGlzdGluZyBlbnRyeQogICAgICAgICAgd2hpbGUgKGVudHJ5ICYmIGVudHJ5LnIpIGVudHJ5ID0gZW50cnkucDsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIC8vIDIzLjEuMy43IE1hcC5wcm90b3R5cGUuaGFzKGtleSkKICAgICAgLy8gMjMuMi4zLjcgU2V0LnByb3RvdHlwZS5oYXModmFsdWUpCiAgICAgIGhhczogZnVuY3Rpb24gaGFzKGtleSkgewogICAgICAgIHJldHVybiAhIWdldEVudHJ5KHZhbGlkYXRlKHRoaXMsIE5BTUUpLCBrZXkpOwogICAgICB9CiAgICB9KTsKICAgIGlmIChERVNDUklQVE9SUykgZFAoQy5wcm90b3R5cGUsICdzaXplJywgewogICAgICBnZXQ6IGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gdmFsaWRhdGUodGhpcywgTkFNRSlbU0laRV07CiAgICAgIH0KICAgIH0pOwogICAgcmV0dXJuIEM7CiAgfSwKICBkZWY6IGZ1bmN0aW9uICh0aGF0LCBrZXksIHZhbHVlKSB7CiAgICB2YXIgZW50cnkgPSBnZXRFbnRyeSh0aGF0LCBrZXkpOwogICAgdmFyIHByZXYsIGluZGV4OwogICAgLy8gY2hhbmdlIGV4aXN0aW5nIGVudHJ5CiAgICBpZiAoZW50cnkpIHsKICAgICAgZW50cnkudiA9IHZhbHVlOwogICAgLy8gY3JlYXRlIG5ldyBlbnRyeQogICAgfSBlbHNlIHsKICAgICAgdGhhdC5fbCA9IGVudHJ5ID0gewogICAgICAgIGk6IGluZGV4ID0gZmFzdEtleShrZXksIHRydWUpLCAvLyA8LSBpbmRleAogICAgICAgIGs6IGtleSwgICAgICAgICAgICAgICAgICAgICAgICAvLyA8LSBrZXkKICAgICAgICB2OiB2YWx1ZSwgICAgICAgICAgICAgICAgICAgICAgLy8gPC0gdmFsdWUKICAgICAgICBwOiBwcmV2ID0gdGhhdC5fbCwgICAgICAgICAgICAgLy8gPC0gcHJldmlvdXMgZW50cnkKICAgICAgICBuOiB1bmRlZmluZWQsICAgICAgICAgICAgICAgICAgLy8gPC0gbmV4dCBlbnRyeQogICAgICAgIHI6IGZhbHNlICAgICAgICAgICAgICAgICAgICAgICAvLyA8LSByZW1vdmVkCiAgICAgIH07CiAgICAgIGlmICghdGhhdC5fZikgdGhhdC5fZiA9IGVudHJ5OwogICAgICBpZiAocHJldikgcHJldi5uID0gZW50cnk7CiAgICAgIHRoYXRbU0laRV0rKzsKICAgICAgLy8gYWRkIHRvIGluZGV4CiAgICAgIGlmIChpbmRleCAhPT0gJ0YnKSB0aGF0Ll9pW2luZGV4XSA9IGVudHJ5OwogICAgfSByZXR1cm4gdGhhdDsKICB9LAogIGdldEVudHJ5OiBnZXRFbnRyeSwKICBzZXRTdHJvbmc6IGZ1bmN0aW9uIChDLCBOQU1FLCBJU19NQVApIHsKICAgIC8vIGFkZCAua2V5cywgLnZhbHVlcywgLmVudHJpZXMsIFtAQGl0ZXJhdG9yXQogICAgLy8gMjMuMS4zLjQsIDIzLjEuMy44LCAyMy4xLjMuMTEsIDIzLjEuMy4xMiwgMjMuMi4zLjUsIDIzLjIuMy44LCAyMy4yLjMuMTAsIDIzLjIuMy4xMQogICAgJGl0ZXJEZWZpbmUoQywgTkFNRSwgZnVuY3Rpb24gKGl0ZXJhdGVkLCBraW5kKSB7CiAgICAgIHRoaXMuX3QgPSB2YWxpZGF0ZShpdGVyYXRlZCwgTkFNRSk7IC8vIHRhcmdldAogICAgICB0aGlzLl9rID0ga2luZDsgICAgICAgICAgICAgICAgICAgICAvLyBraW5kCiAgICAgIHRoaXMuX2wgPSB1bmRlZmluZWQ7ICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzCiAgICB9LCBmdW5jdGlvbiAoKSB7CiAgICAgIHZhciB0aGF0ID0gdGhpczsKICAgICAgdmFyIGtpbmQgPSB0aGF0Ll9rOwogICAgICB2YXIgZW50cnkgPSB0aGF0Ll9sOwogICAgICAvLyByZXZlcnQgdG8gdGhlIGxhc3QgZXhpc3RpbmcgZW50cnkKICAgICAgd2hpbGUgKGVudHJ5ICYmIGVudHJ5LnIpIGVudHJ5ID0gZW50cnkucDsKICAgICAgLy8gZ2V0IG5leHQgZW50cnkKICAgICAgaWYgKCF0aGF0Ll90IHx8ICEodGhhdC5fbCA9IGVudHJ5ID0gZW50cnkgPyBlbnRyeS5uIDogdGhhdC5fdC5fZikpIHsKICAgICAgICAvLyBvciBmaW5pc2ggdGhlIGl0ZXJhdGlvbgogICAgICAgIHRoYXQuX3QgPSB1bmRlZmluZWQ7CiAgICAgICAgcmV0dXJuIHN0ZXAoMSk7CiAgICAgIH0KICAgICAgLy8gcmV0dXJuIHN0ZXAgYnkga2luZAogICAgICBpZiAoa2luZCA9PSAna2V5cycpIHJldHVybiBzdGVwKDAsIGVudHJ5LmspOwogICAgICBpZiAoa2luZCA9PSAndmFsdWVzJykgcmV0dXJuIHN0ZXAoMCwgZW50cnkudik7CiAgICAgIHJldHVybiBzdGVwKDAsIFtlbnRyeS5rLCBlbnRyeS52XSk7CiAgICB9LCBJU19NQVAgPyAnZW50cmllcycgOiAndmFsdWVzJywgIUlTX01BUCwgdHJ1ZSk7CgogICAgLy8gYWRkIFtAQHNwZWNpZXNdLCAyMy4xLjIuMiwgMjMuMi4yLjIKICAgIHNldFNwZWNpZXMoTkFNRSk7CiAgfQp9OwoKCi8qKiovIH0pLAovKiAxMDkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGhpZGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzKTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAodGFyZ2V0LCBzcmMsIHNhZmUpIHsKICBmb3IgKHZhciBrZXkgaW4gc3JjKSB7CiAgICBpZiAoc2FmZSAmJiB0YXJnZXRba2V5XSkgdGFyZ2V0W2tleV0gPSBzcmNba2V5XTsKICAgIGVsc2UgaGlkZSh0YXJnZXQsIGtleSwgc3JjW2tleV0pOwogIH0gcmV0dXJuIHRhcmdldDsKfTsKCgovKioqLyB9KSwKLyogMTEwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0LCBDb25zdHJ1Y3RvciwgbmFtZSwgZm9yYmlkZGVuRmllbGQpIHsKICBpZiAoIShpdCBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSB8fCAoZm9yYmlkZGVuRmllbGQgIT09IHVuZGVmaW5lZCAmJiBmb3JiaWRkZW5GaWVsZCBpbiBpdCkpIHsKICAgIHRocm93IFR5cGVFcnJvcihuYW1lICsgJzogaW5jb3JyZWN0IGludm9jYXRpb24hJyk7CiAgfSByZXR1cm4gaXQ7Cn07CgoKLyoqKi8gfSksCi8qIDExMSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBjYWxsIHNvbWV0aGluZyBvbiBpdGVyYXRvciBzdGVwIHdpdGggc2FmZSBjbG9zaW5nIG9uIGVycm9yCnZhciBhbk9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTQpOwptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVyYXRvciwgZm4sIHZhbHVlLCBlbnRyaWVzKSB7CiAgdHJ5IHsKICAgIHJldHVybiBlbnRyaWVzID8gZm4oYW5PYmplY3QodmFsdWUpWzBdLCB2YWx1ZVsxXSkgOiBmbih2YWx1ZSk7CiAgLy8gNy40LjYgSXRlcmF0b3JDbG9zZShpdGVyYXRvciwgY29tcGxldGlvbikKICB9IGNhdGNoIChlKSB7CiAgICB2YXIgcmV0ID0gaXRlcmF0b3JbJ3JldHVybiddOwogICAgaWYgKHJldCAhPT0gdW5kZWZpbmVkKSBhbk9iamVjdChyZXQuY2FsbChpdGVyYXRvcikpOwogICAgdGhyb3cgZTsKICB9Cn07CgoKLyoqKi8gfSksCi8qIDExMiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBjaGVjayBvbiBkZWZhdWx0IEFycmF5IGl0ZXJhdG9yCnZhciBJdGVyYXRvcnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIzKTsKdmFyIElURVJBVE9SID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KSgnaXRlcmF0b3InKTsKdmFyIEFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7Cgptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkgewogIHJldHVybiBpdCAhPT0gdW5kZWZpbmVkICYmIChJdGVyYXRvcnMuQXJyYXkgPT09IGl0IHx8IEFycmF5UHJvdG9bSVRFUkFUT1JdID09PSBpdCk7Cn07CgoKLyoqKi8gfSksCi8qIDExMyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Cgp2YXIgZ2xvYmFsID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCk7CnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKdmFyIG1ldGEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQwKTsKdmFyIGZhaWxzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOSk7CnZhciBoaWRlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMyk7CnZhciByZWRlZmluZUFsbCA9IF9fd2VicGFja19yZXF1aXJlX18oMTA5KTsKdmFyIGZvck9mID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0MSk7CnZhciBhbkluc3RhbmNlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTApOwp2YXIgaXNPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpOwp2YXIgc2V0VG9TdHJpbmdUYWcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM5KTsKdmFyIGRQID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KS5mOwp2YXIgZWFjaCA9IF9fd2VicGFja19yZXF1aXJlX18oMjI5KSgwKTsKdmFyIERFU0NSSVBUT1JTID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1KTsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKE5BTUUsIHdyYXBwZXIsIG1ldGhvZHMsIGNvbW1vbiwgSVNfTUFQLCBJU19XRUFLKSB7CiAgdmFyIEJhc2UgPSBnbG9iYWxbTkFNRV07CiAgdmFyIEMgPSBCYXNlOwogIHZhciBBRERFUiA9IElTX01BUCA/ICdzZXQnIDogJ2FkZCc7CiAgdmFyIHByb3RvID0gQyAmJiBDLnByb3RvdHlwZTsKICB2YXIgTyA9IHt9OwogIGlmICghREVTQ1JJUFRPUlMgfHwgdHlwZW9mIEMgIT0gJ2Z1bmN0aW9uJyB8fCAhKElTX1dFQUsgfHwgcHJvdG8uZm9yRWFjaCAmJiAhZmFpbHMoZnVuY3Rpb24gKCkgewogICAgbmV3IEMoKS5lbnRyaWVzKCkubmV4dCgpOwogIH0pKSkgewogICAgLy8gY3JlYXRlIGNvbGxlY3Rpb24gY29uc3RydWN0b3IKICAgIEMgPSBjb21tb24uZ2V0Q29uc3RydWN0b3Iod3JhcHBlciwgTkFNRSwgSVNfTUFQLCBBRERFUik7CiAgICByZWRlZmluZUFsbChDLnByb3RvdHlwZSwgbWV0aG9kcyk7CiAgICBtZXRhLk5FRUQgPSB0cnVlOwogIH0gZWxzZSB7CiAgICBDID0gd3JhcHBlcihmdW5jdGlvbiAodGFyZ2V0LCBpdGVyYWJsZSkgewogICAgICBhbkluc3RhbmNlKHRhcmdldCwgQywgTkFNRSwgJ19jJyk7CiAgICAgIHRhcmdldC5fYyA9IG5ldyBCYXNlKCk7CiAgICAgIGlmIChpdGVyYWJsZSAhPSB1bmRlZmluZWQpIGZvck9mKGl0ZXJhYmxlLCBJU19NQVAsIHRhcmdldFtBRERFUl0sIHRhcmdldCk7CiAgICB9KTsKICAgIGVhY2goJ2FkZCxjbGVhcixkZWxldGUsZm9yRWFjaCxnZXQsaGFzLHNldCxrZXlzLHZhbHVlcyxlbnRyaWVzLHRvSlNPTicuc3BsaXQoJywnKSwgZnVuY3Rpb24gKEtFWSkgewogICAgICB2YXIgSVNfQURERVIgPSBLRVkgPT0gJ2FkZCcgfHwgS0VZID09ICdzZXQnOwogICAgICBpZiAoS0VZIGluIHByb3RvICYmICEoSVNfV0VBSyAmJiBLRVkgPT0gJ2NsZWFyJykpIGhpZGUoQy5wcm90b3R5cGUsIEtFWSwgZnVuY3Rpb24gKGEsIGIpIHsKICAgICAgICBhbkluc3RhbmNlKHRoaXMsIEMsIEtFWSk7CiAgICAgICAgaWYgKCFJU19BRERFUiAmJiBJU19XRUFLICYmICFpc09iamVjdChhKSkgcmV0dXJuIEtFWSA9PSAnZ2V0JyA/IHVuZGVmaW5lZCA6IGZhbHNlOwogICAgICAgIHZhciByZXN1bHQgPSB0aGlzLl9jW0tFWV0oYSA9PT0gMCA/IDAgOiBhLCBiKTsKICAgICAgICByZXR1cm4gSVNfQURERVIgPyB0aGlzIDogcmVzdWx0OwogICAgICB9KTsKICAgIH0pOwogICAgSVNfV0VBSyB8fCBkUChDLnByb3RvdHlwZSwgJ3NpemUnLCB7CiAgICAgIGdldDogZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiB0aGlzLl9jLnNpemU7CiAgICAgIH0KICAgIH0pOwogIH0KCiAgc2V0VG9TdHJpbmdUYWcoQywgTkFNRSk7CgogIE9bTkFNRV0gPSBDOwogICRleHBvcnQoJGV4cG9ydC5HICsgJGV4cG9ydC5XICsgJGV4cG9ydC5GLCBPKTsKCiAgaWYgKCFJU19XRUFLKSBjb21tb24uc2V0U3Ryb25nKEMsIE5BTUUsIElTX01BUCk7CgogIHJldHVybiBDOwp9OwoKCi8qKiovIH0pLAovKiAxMTQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gaHR0cHM6Ly9naXRodWIuY29tL0RhdmlkQnJ1YW50L01hcC1TZXQucHJvdG90eXBlLnRvSlNPTgp2YXIgY2xhc3NvZiA9IF9fd2VicGFja19yZXF1aXJlX18oNjgpOwp2YXIgZnJvbSA9IF9fd2VicGFja19yZXF1aXJlX18oMjMzKTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoTkFNRSkgewogIHJldHVybiBmdW5jdGlvbiB0b0pTT04oKSB7CiAgICBpZiAoY2xhc3NvZih0aGlzKSAhPSBOQU1FKSB0aHJvdyBUeXBlRXJyb3IoTkFNRSArICIjdG9KU09OIGlzbid0IGdlbmVyaWMiKTsKICAgIHJldHVybiBmcm9tKHRoaXMpOwogIH07Cn07CgoKLyoqKi8gfSksCi8qIDExNSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgovLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLXNldG1hcC1vZmZyb20vCnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKENPTExFQ1RJT04pIHsKICAkZXhwb3J0KCRleHBvcnQuUywgQ09MTEVDVElPTiwgeyBvZjogZnVuY3Rpb24gb2YoKSB7CiAgICB2YXIgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsKICAgIHZhciBBID0gbmV3IEFycmF5KGxlbmd0aCk7CiAgICB3aGlsZSAobGVuZ3RoLS0pIEFbbGVuZ3RoXSA9IGFyZ3VtZW50c1tsZW5ndGhdOwogICAgcmV0dXJuIG5ldyB0aGlzKEEpOwogIH0gfSk7Cn07CgoKLyoqKi8gfSksCi8qIDExNiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgovLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL3Byb3Bvc2FsLXNldG1hcC1vZmZyb20vCnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKdmFyIGFGdW5jdGlvbiA9IF9fd2VicGFja19yZXF1aXJlX18oOTcpOwp2YXIgY3R4ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCk7CnZhciBmb3JPZiA9IF9fd2VicGFja19yZXF1aXJlX18oNDEpOwoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ09MTEVDVElPTikgewogICRleHBvcnQoJGV4cG9ydC5TLCBDT0xMRUNUSU9OLCB7IGZyb206IGZ1bmN0aW9uIGZyb20oc291cmNlIC8qICwgbWFwRm4sIHRoaXNBcmcgKi8pIHsKICAgIHZhciBtYXBGbiA9IGFyZ3VtZW50c1sxXTsKICAgIHZhciBtYXBwaW5nLCBBLCBuLCBjYjsKICAgIGFGdW5jdGlvbih0aGlzKTsKICAgIG1hcHBpbmcgPSBtYXBGbiAhPT0gdW5kZWZpbmVkOwogICAgaWYgKG1hcHBpbmcpIGFGdW5jdGlvbihtYXBGbik7CiAgICBpZiAoc291cmNlID09IHVuZGVmaW5lZCkgcmV0dXJuIG5ldyB0aGlzKCk7CiAgICBBID0gW107CiAgICBpZiAobWFwcGluZykgewogICAgICBuID0gMDsKICAgICAgY2IgPSBjdHgobWFwRm4sIGFyZ3VtZW50c1syXSwgMik7CiAgICAgIGZvck9mKHNvdXJjZSwgZmFsc2UsIGZ1bmN0aW9uIChuZXh0SXRlbSkgewogICAgICAgIEEucHVzaChjYihuZXh0SXRlbSwgbisrKSk7CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgZm9yT2Yoc291cmNlLCBmYWxzZSwgQS5wdXNoLCBBKTsKICAgIH0KICAgIHJldHVybiBuZXcgdGhpcyhBKTsKICB9IH0pOwp9OwoKCi8qKiovIH0pLAovKiAxMTcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoqLwoKdmFyIEJyb3RsaUlucHV0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTgpLkJyb3RsaUlucHV0Owp2YXIgQnJvdGxpT3V0cHV0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTgpLkJyb3RsaU91dHB1dDsKdmFyIEJyb3RsaUJpdFJlYWRlciA9IF9fd2VicGFja19yZXF1aXJlX18oMjg1KTsKdmFyIEJyb3RsaURpY3Rpb25hcnkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExOSk7CnZhciBIdWZmbWFuQ29kZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTIwKS5IdWZmbWFuQ29kZTsKdmFyIEJyb3RsaUJ1aWxkSHVmZm1hblRhYmxlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMjApLkJyb3RsaUJ1aWxkSHVmZm1hblRhYmxlOwp2YXIgQ29udGV4dCA9IF9fd2VicGFja19yZXF1aXJlX18oMjg5KTsKdmFyIFByZWZpeCA9IF9fd2VicGFja19yZXF1aXJlX18oMjkwKTsKdmFyIFRyYW5zZm9ybSA9IF9fd2VicGFja19yZXF1aXJlX18oMjkxKTsKCnZhciBrRGVmYXVsdENvZGVMZW5ndGggPSA4Owp2YXIga0NvZGVMZW5ndGhSZXBlYXRDb2RlID0gMTY7CnZhciBrTnVtTGl0ZXJhbENvZGVzID0gMjU2Owp2YXIga051bUluc2VydEFuZENvcHlDb2RlcyA9IDcwNDsKdmFyIGtOdW1CbG9ja0xlbmd0aENvZGVzID0gMjY7CnZhciBrTGl0ZXJhbENvbnRleHRCaXRzID0gNjsKdmFyIGtEaXN0YW5jZUNvbnRleHRCaXRzID0gMjsKCnZhciBIVUZGTUFOX1RBQkxFX0JJVFMgPSA4Owp2YXIgSFVGRk1BTl9UQUJMRV9NQVNLID0gMHhmZjsKLyogTWF4aW11bSBwb3NzaWJsZSBIdWZmbWFuIHRhYmxlIHNpemUgZm9yIGFuIGFscGhhYmV0IHNpemUgb2YgNzA0LCBtYXggY29kZQogKiBsZW5ndGggMTUgYW5kIHJvb3QgdGFibGUgYml0cyA4LiAqLwp2YXIgSFVGRk1BTl9NQVhfVEFCTEVfU0laRSA9IDEwODA7Cgp2YXIgQ09ERV9MRU5HVEhfQ09ERVMgPSAxODsKdmFyIGtDb2RlTGVuZ3RoQ29kZU9yZGVyID0gbmV3IFVpbnQ4QXJyYXkoWwogIDEsIDIsIDMsIDQsIDAsIDUsIDE3LCA2LCAxNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwKXSk7Cgp2YXIgTlVNX0RJU1RBTkNFX1NIT1JUX0NPREVTID0gMTY7CnZhciBrRGlzdGFuY2VTaG9ydENvZGVJbmRleE9mZnNldCA9IG5ldyBVaW50OEFycmF5KFsKICAzLCAyLCAxLCAwLCAzLCAzLCAzLCAzLCAzLCAzLCAyLCAyLCAyLCAyLCAyLCAyCl0pOwoKdmFyIGtEaXN0YW5jZVNob3J0Q29kZVZhbHVlT2Zmc2V0ID0gbmV3IEludDhBcnJheShbCiAgMCwgMCwgMCwgMCwgLTEsIDEsIC0yLCAyLCAtMywgMywgLTEsIDEsIC0yLCAyLCAtMywgMwpdKTsKCnZhciBrTWF4SHVmZm1hblRhYmxlU2l6ZSA9IG5ldyBVaW50MTZBcnJheShbCiAgMjU2LCA0MDIsIDQzNiwgNDY4LCA1MDAsIDUzNCwgNTY2LCA1OTgsIDYzMCwgNjYyLCA2OTQsIDcyNiwgNzU4LCA3OTAsIDgyMiwKICA4NTQsIDg4NiwgOTIwLCA5NTIsIDk4NCwgMTAxNiwgMTA0OCwgMTA4MApdKTsKCmZ1bmN0aW9uIERlY29kZVdpbmRvd0JpdHMoYnIpIHsKICB2YXIgbjsKICBpZiAoYnIucmVhZEJpdHMoMSkgPT09IDApIHsKICAgIHJldHVybiAxNjsKICB9CiAgCiAgbiA9IGJyLnJlYWRCaXRzKDMpOwogIGlmIChuID4gMCkgewogICAgcmV0dXJuIDE3ICsgbjsKICB9CiAgCiAgbiA9IGJyLnJlYWRCaXRzKDMpOwogIGlmIChuID4gMCkgewogICAgcmV0dXJuIDggKyBuOwogIH0KICAKICByZXR1cm4gMTc7Cn0KCi8qIERlY29kZXMgYSBudW1iZXIgaW4gdGhlIHJhbmdlIFswLi4yNTVdLCBieSByZWFkaW5nIDEgLSAxMSBiaXRzLiAqLwpmdW5jdGlvbiBEZWNvZGVWYXJMZW5VaW50OChicikgewogIGlmIChici5yZWFkQml0cygxKSkgewogICAgdmFyIG5iaXRzID0gYnIucmVhZEJpdHMoMyk7CiAgICBpZiAobmJpdHMgPT09IDApIHsKICAgICAgcmV0dXJuIDE7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gYnIucmVhZEJpdHMobmJpdHMpICsgKDEgPDwgbmJpdHMpOwogICAgfQogIH0KICByZXR1cm4gMDsKfQoKZnVuY3Rpb24gTWV0YUJsb2NrTGVuZ3RoKCkgewogIHRoaXMubWV0YV9ibG9ja19sZW5ndGggPSAwOwogIHRoaXMuaW5wdXRfZW5kID0gMDsKICB0aGlzLmlzX3VuY29tcHJlc3NlZCA9IDA7CiAgdGhpcy5pc19tZXRhZGF0YSA9IGZhbHNlOwp9CgpmdW5jdGlvbiBEZWNvZGVNZXRhQmxvY2tMZW5ndGgoYnIpIHsKICB2YXIgb3V0ID0gbmV3IE1ldGFCbG9ja0xlbmd0aDsgIAogIHZhciBzaXplX25pYmJsZXM7CiAgdmFyIHNpemVfYnl0ZXM7CiAgdmFyIGk7CiAgCiAgb3V0LmlucHV0X2VuZCA9IGJyLnJlYWRCaXRzKDEpOwogIGlmIChvdXQuaW5wdXRfZW5kICYmIGJyLnJlYWRCaXRzKDEpKSB7CiAgICByZXR1cm4gb3V0OwogIH0KICAKICBzaXplX25pYmJsZXMgPSBici5yZWFkQml0cygyKSArIDQ7CiAgaWYgKHNpemVfbmliYmxlcyA9PT0gNykgewogICAgb3V0LmlzX21ldGFkYXRhID0gdHJ1ZTsKICAgIAogICAgaWYgKGJyLnJlYWRCaXRzKDEpICE9PSAwKQogICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcmVzZXJ2ZWQgYml0Jyk7CiAgICAKICAgIHNpemVfYnl0ZXMgPSBici5yZWFkQml0cygyKTsKICAgIGlmIChzaXplX2J5dGVzID09PSAwKQogICAgICByZXR1cm4gb3V0OwogICAgCiAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZV9ieXRlczsgaSsrKSB7CiAgICAgIHZhciBuZXh0X2J5dGUgPSBici5yZWFkQml0cyg4KTsKICAgICAgaWYgKGkgKyAxID09PSBzaXplX2J5dGVzICYmIHNpemVfYnl0ZXMgPiAxICYmIG5leHRfYnl0ZSA9PT0gMCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2l6ZSBieXRlJyk7CiAgICAgIAogICAgICBvdXQubWV0YV9ibG9ja19sZW5ndGggfD0gbmV4dF9ieXRlIDw8IChpICogOCk7CiAgICB9CiAgfSBlbHNlIHsKICAgIGZvciAoaSA9IDA7IGkgPCBzaXplX25pYmJsZXM7ICsraSkgewogICAgICB2YXIgbmV4dF9uaWJibGUgPSBici5yZWFkQml0cyg0KTsKICAgICAgaWYgKGkgKyAxID09PSBzaXplX25pYmJsZXMgJiYgc2l6ZV9uaWJibGVzID4gNCAmJiBuZXh0X25pYmJsZSA9PT0gMCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2l6ZSBuaWJibGUnKTsKICAgICAgCiAgICAgIG91dC5tZXRhX2Jsb2NrX2xlbmd0aCB8PSBuZXh0X25pYmJsZSA8PCAoaSAqIDQpOwogICAgfQogIH0KICAKICArK291dC5tZXRhX2Jsb2NrX2xlbmd0aDsKICAKICBpZiAoIW91dC5pbnB1dF9lbmQgJiYgIW91dC5pc19tZXRhZGF0YSkgewogICAgb3V0LmlzX3VuY29tcHJlc3NlZCA9IGJyLnJlYWRCaXRzKDEpOwogIH0KICAKICByZXR1cm4gb3V0Owp9CgovKiBEZWNvZGVzIHRoZSBuZXh0IEh1ZmZtYW4gY29kZSBmcm9tIGJpdC1zdHJlYW0uICovCmZ1bmN0aW9uIFJlYWRTeW1ib2wodGFibGUsIGluZGV4LCBicikgewogIHZhciBzdGFydF9pbmRleCA9IGluZGV4OwogIAogIHZhciBuYml0czsKICBici5maWxsQml0V2luZG93KCk7CiAgaW5kZXggKz0gKGJyLnZhbF8gPj4+IGJyLmJpdF9wb3NfKSAmIEhVRkZNQU5fVEFCTEVfTUFTSzsKICBuYml0cyA9IHRhYmxlW2luZGV4XS5iaXRzIC0gSFVGRk1BTl9UQUJMRV9CSVRTOwogIGlmIChuYml0cyA+IDApIHsKICAgIGJyLmJpdF9wb3NfICs9IEhVRkZNQU5fVEFCTEVfQklUUzsKICAgIGluZGV4ICs9IHRhYmxlW2luZGV4XS52YWx1ZTsKICAgIGluZGV4ICs9IChici52YWxfID4+PiBici5iaXRfcG9zXykgJiAoKDEgPDwgbmJpdHMpIC0gMSk7CiAgfQogIGJyLmJpdF9wb3NfICs9IHRhYmxlW2luZGV4XS5iaXRzOwogIHJldHVybiB0YWJsZVtpbmRleF0udmFsdWU7Cn0KCmZ1bmN0aW9uIFJlYWRIdWZmbWFuQ29kZUxlbmd0aHMoY29kZV9sZW5ndGhfY29kZV9sZW5ndGhzLCBudW1fc3ltYm9scywgY29kZV9sZW5ndGhzLCBicikgewogIHZhciBzeW1ib2wgPSAwOwogIHZhciBwcmV2X2NvZGVfbGVuID0ga0RlZmF1bHRDb2RlTGVuZ3RoOwogIHZhciByZXBlYXQgPSAwOwogIHZhciByZXBlYXRfY29kZV9sZW4gPSAwOwogIHZhciBzcGFjZSA9IDMyNzY4OwogIAogIHZhciB0YWJsZSA9IFtdOwogIGZvciAodmFyIGkgPSAwOyBpIDwgMzI7IGkrKykKICAgIHRhYmxlLnB1c2gobmV3IEh1ZmZtYW5Db2RlKDAsIDApKTsKICAKICBCcm90bGlCdWlsZEh1ZmZtYW5UYWJsZSh0YWJsZSwgMCwgNSwgY29kZV9sZW5ndGhfY29kZV9sZW5ndGhzLCBDT0RFX0xFTkdUSF9DT0RFUyk7CgogIHdoaWxlIChzeW1ib2wgPCBudW1fc3ltYm9scyAmJiBzcGFjZSA+IDApIHsKICAgIHZhciBwID0gMDsKICAgIHZhciBjb2RlX2xlbjsKICAgIAogICAgYnIucmVhZE1vcmVJbnB1dCgpOwogICAgYnIuZmlsbEJpdFdpbmRvdygpOwogICAgcCArPSAoYnIudmFsXyA+Pj4gYnIuYml0X3Bvc18pICYgMzE7CiAgICBici5iaXRfcG9zXyArPSB0YWJsZVtwXS5iaXRzOwogICAgY29kZV9sZW4gPSB0YWJsZVtwXS52YWx1ZSAmIDB4ZmY7CiAgICBpZiAoY29kZV9sZW4gPCBrQ29kZUxlbmd0aFJlcGVhdENvZGUpIHsKICAgICAgcmVwZWF0ID0gMDsKICAgICAgY29kZV9sZW5ndGhzW3N5bWJvbCsrXSA9IGNvZGVfbGVuOwogICAgICBpZiAoY29kZV9sZW4gIT09IDApIHsKICAgICAgICBwcmV2X2NvZGVfbGVuID0gY29kZV9sZW47CiAgICAgICAgc3BhY2UgLT0gMzI3NjggPj4gY29kZV9sZW47CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIHZhciBleHRyYV9iaXRzID0gY29kZV9sZW4gLSAxNDsKICAgICAgdmFyIG9sZF9yZXBlYXQ7CiAgICAgIHZhciByZXBlYXRfZGVsdGE7CiAgICAgIHZhciBuZXdfbGVuID0gMDsKICAgICAgaWYgKGNvZGVfbGVuID09PSBrQ29kZUxlbmd0aFJlcGVhdENvZGUpIHsKICAgICAgICBuZXdfbGVuID0gcHJldl9jb2RlX2xlbjsKICAgICAgfQogICAgICBpZiAocmVwZWF0X2NvZGVfbGVuICE9PSBuZXdfbGVuKSB7CiAgICAgICAgcmVwZWF0ID0gMDsKICAgICAgICByZXBlYXRfY29kZV9sZW4gPSBuZXdfbGVuOwogICAgICB9CiAgICAgIG9sZF9yZXBlYXQgPSByZXBlYXQ7CiAgICAgIGlmIChyZXBlYXQgPiAwKSB7CiAgICAgICAgcmVwZWF0IC09IDI7CiAgICAgICAgcmVwZWF0IDw8PSBleHRyYV9iaXRzOwogICAgICB9CiAgICAgIHJlcGVhdCArPSBici5yZWFkQml0cyhleHRyYV9iaXRzKSArIDM7CiAgICAgIHJlcGVhdF9kZWx0YSA9IHJlcGVhdCAtIG9sZF9yZXBlYXQ7CiAgICAgIGlmIChzeW1ib2wgKyByZXBlYXRfZGVsdGEgPiBudW1fc3ltYm9scykgewogICAgICAgIHRocm93IG5ldyBFcnJvcignW1JlYWRIdWZmbWFuQ29kZUxlbmd0aHNdIHN5bWJvbCArIHJlcGVhdF9kZWx0YSA+IG51bV9zeW1ib2xzJyk7CiAgICAgIH0KICAgICAgCiAgICAgIGZvciAodmFyIHggPSAwOyB4IDwgcmVwZWF0X2RlbHRhOyB4KyspCiAgICAgICAgY29kZV9sZW5ndGhzW3N5bWJvbCArIHhdID0gcmVwZWF0X2NvZGVfbGVuOwogICAgICAKICAgICAgc3ltYm9sICs9IHJlcGVhdF9kZWx0YTsKICAgICAgCiAgICAgIGlmIChyZXBlYXRfY29kZV9sZW4gIT09IDApIHsKICAgICAgICBzcGFjZSAtPSByZXBlYXRfZGVsdGEgPDwgKDE1IC0gcmVwZWF0X2NvZGVfbGVuKTsKICAgICAgfQogICAgfQogIH0KICBpZiAoc3BhY2UgIT09IDApIHsKICAgIHRocm93IG5ldyBFcnJvcigiW1JlYWRIdWZmbWFuQ29kZUxlbmd0aHNdIHNwYWNlID0gIiArIHNwYWNlKTsKICB9CiAgCiAgZm9yICg7IHN5bWJvbCA8IG51bV9zeW1ib2xzOyBzeW1ib2wrKykKICAgIGNvZGVfbGVuZ3Roc1tzeW1ib2xdID0gMDsKfQoKZnVuY3Rpb24gUmVhZEh1ZmZtYW5Db2RlKGFscGhhYmV0X3NpemUsIHRhYmxlcywgdGFibGUsIGJyKSB7CiAgdmFyIHRhYmxlX3NpemUgPSAwOwogIHZhciBzaW1wbGVfY29kZV9vcl9za2lwOwogIHZhciBjb2RlX2xlbmd0aHMgPSBuZXcgVWludDhBcnJheShhbHBoYWJldF9zaXplKTsKICAKICBici5yZWFkTW9yZUlucHV0KCk7CiAgCiAgLyogc2ltcGxlX2NvZGVfb3Jfc2tpcCBpcyB1c2VkIGFzIGZvbGxvd3M6CiAgICAgMSBmb3Igc2ltcGxlIGNvZGU7CiAgICAgMCBmb3Igbm8gc2tpcHBpbmcsIDIgc2tpcHMgMiBjb2RlIGxlbmd0aHMsIDMgc2tpcHMgMyBjb2RlIGxlbmd0aHMgKi8KICBzaW1wbGVfY29kZV9vcl9za2lwID0gYnIucmVhZEJpdHMoMik7CiAgaWYgKHNpbXBsZV9jb2RlX29yX3NraXAgPT09IDEpIHsKICAgIC8qIFJlYWQgc3ltYm9scywgY29kZXMgJiBjb2RlIGxlbmd0aHMgZGlyZWN0bHkuICovCiAgICB2YXIgaTsKICAgIHZhciBtYXhfYml0c19jb3VudGVyID0gYWxwaGFiZXRfc2l6ZSAtIDE7CiAgICB2YXIgbWF4X2JpdHMgPSAwOwogICAgdmFyIHN5bWJvbHMgPSBuZXcgSW50MzJBcnJheSg0KTsKICAgIHZhciBudW1fc3ltYm9scyA9IGJyLnJlYWRCaXRzKDIpICsgMTsKICAgIHdoaWxlIChtYXhfYml0c19jb3VudGVyKSB7CiAgICAgIG1heF9iaXRzX2NvdW50ZXIgPj49IDE7CiAgICAgICsrbWF4X2JpdHM7CiAgICB9CgogICAgZm9yIChpID0gMDsgaSA8IG51bV9zeW1ib2xzOyArK2kpIHsKICAgICAgc3ltYm9sc1tpXSA9IGJyLnJlYWRCaXRzKG1heF9iaXRzKSAlIGFscGhhYmV0X3NpemU7CiAgICAgIGNvZGVfbGVuZ3Roc1tzeW1ib2xzW2ldXSA9IDI7CiAgICB9CiAgICBjb2RlX2xlbmd0aHNbc3ltYm9sc1swXV0gPSAxOwogICAgc3dpdGNoIChudW1fc3ltYm9scykgewogICAgICBjYXNlIDE6CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgMzoKICAgICAgICBpZiAoKHN5bWJvbHNbMF0gPT09IHN5bWJvbHNbMV0pIHx8CiAgICAgICAgICAgIChzeW1ib2xzWzBdID09PSBzeW1ib2xzWzJdKSB8fAogICAgICAgICAgICAoc3ltYm9sc1sxXSA9PT0gc3ltYm9sc1syXSkpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW1JlYWRIdWZmbWFuQ29kZV0gaW52YWxpZCBzeW1ib2xzJyk7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICBjYXNlIDI6CiAgICAgICAgaWYgKHN5bWJvbHNbMF0gPT09IHN5bWJvbHNbMV0pIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW1JlYWRIdWZmbWFuQ29kZV0gaW52YWxpZCBzeW1ib2xzJyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGNvZGVfbGVuZ3Roc1tzeW1ib2xzWzFdXSA9IDE7CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgNDoKICAgICAgICBpZiAoKHN5bWJvbHNbMF0gPT09IHN5bWJvbHNbMV0pIHx8CiAgICAgICAgICAgIChzeW1ib2xzWzBdID09PSBzeW1ib2xzWzJdKSB8fAogICAgICAgICAgICAoc3ltYm9sc1swXSA9PT0gc3ltYm9sc1szXSkgfHwKICAgICAgICAgICAgKHN5bWJvbHNbMV0gPT09IHN5bWJvbHNbMl0pIHx8CiAgICAgICAgICAgIChzeW1ib2xzWzFdID09PSBzeW1ib2xzWzNdKSB8fAogICAgICAgICAgICAoc3ltYm9sc1syXSA9PT0gc3ltYm9sc1szXSkpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignW1JlYWRIdWZmbWFuQ29kZV0gaW52YWxpZCBzeW1ib2xzJyk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmIChici5yZWFkQml0cygxKSkgewogICAgICAgICAgY29kZV9sZW5ndGhzW3N5bWJvbHNbMl1dID0gMzsKICAgICAgICAgIGNvZGVfbGVuZ3Roc1tzeW1ib2xzWzNdXSA9IDM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvZGVfbGVuZ3Roc1tzeW1ib2xzWzBdXSA9IDI7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgfQogIH0gZWxzZSB7ICAvKiBEZWNvZGUgSHVmZm1hbi1jb2RlZCBjb2RlIGxlbmd0aHMuICovCiAgICB2YXIgaTsKICAgIHZhciBjb2RlX2xlbmd0aF9jb2RlX2xlbmd0aHMgPSBuZXcgVWludDhBcnJheShDT0RFX0xFTkdUSF9DT0RFUyk7CiAgICB2YXIgc3BhY2UgPSAzMjsKICAgIHZhciBudW1fY29kZXMgPSAwOwogICAgLyogU3RhdGljIEh1ZmZtYW4gY29kZSBmb3IgdGhlIGNvZGUgbGVuZ3RoIGNvZGUgbGVuZ3RocyAqLwogICAgdmFyIGh1ZmYgPSBbCiAgICAgIG5ldyBIdWZmbWFuQ29kZSgyLCAwKSwgbmV3IEh1ZmZtYW5Db2RlKDIsIDQpLCBuZXcgSHVmZm1hbkNvZGUoMiwgMyksIG5ldyBIdWZmbWFuQ29kZSgzLCAyKSwgCiAgICAgIG5ldyBIdWZmbWFuQ29kZSgyLCAwKSwgbmV3IEh1ZmZtYW5Db2RlKDIsIDQpLCBuZXcgSHVmZm1hbkNvZGUoMiwgMyksIG5ldyBIdWZmbWFuQ29kZSg0LCAxKSwKICAgICAgbmV3IEh1ZmZtYW5Db2RlKDIsIDApLCBuZXcgSHVmZm1hbkNvZGUoMiwgNCksIG5ldyBIdWZmbWFuQ29kZSgyLCAzKSwgbmV3IEh1ZmZtYW5Db2RlKDMsIDIpLCAKICAgICAgbmV3IEh1ZmZtYW5Db2RlKDIsIDApLCBuZXcgSHVmZm1hbkNvZGUoMiwgNCksIG5ldyBIdWZmbWFuQ29kZSgyLCAzKSwgbmV3IEh1ZmZtYW5Db2RlKDQsIDUpCiAgICBdOwogICAgZm9yIChpID0gc2ltcGxlX2NvZGVfb3Jfc2tpcDsgaSA8IENPREVfTEVOR1RIX0NPREVTICYmIHNwYWNlID4gMDsgKytpKSB7CiAgICAgIHZhciBjb2RlX2xlbl9pZHggPSBrQ29kZUxlbmd0aENvZGVPcmRlcltpXTsKICAgICAgdmFyIHAgPSAwOwogICAgICB2YXIgdjsKICAgICAgYnIuZmlsbEJpdFdpbmRvdygpOwogICAgICBwICs9IChici52YWxfID4+PiBici5iaXRfcG9zXykgJiAxNTsKICAgICAgYnIuYml0X3Bvc18gKz0gaHVmZltwXS5iaXRzOwogICAgICB2ID0gaHVmZltwXS52YWx1ZTsKICAgICAgY29kZV9sZW5ndGhfY29kZV9sZW5ndGhzW2NvZGVfbGVuX2lkeF0gPSB2OwogICAgICBpZiAodiAhPT0gMCkgewogICAgICAgIHNwYWNlIC09ICgzMiA+PiB2KTsKICAgICAgICArK251bV9jb2RlczsKICAgICAgfQogICAgfQogICAgCiAgICBpZiAoIShudW1fY29kZXMgPT09IDEgfHwgc3BhY2UgPT09IDApKQogICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tSZWFkSHVmZm1hbkNvZGVdIGludmFsaWQgbnVtX2NvZGVzIG9yIHNwYWNlJyk7CiAgICAKICAgIFJlYWRIdWZmbWFuQ29kZUxlbmd0aHMoY29kZV9sZW5ndGhfY29kZV9sZW5ndGhzLCBhbHBoYWJldF9zaXplLCBjb2RlX2xlbmd0aHMsIGJyKTsKICB9CiAgCiAgdGFibGVfc2l6ZSA9IEJyb3RsaUJ1aWxkSHVmZm1hblRhYmxlKHRhYmxlcywgdGFibGUsIEhVRkZNQU5fVEFCTEVfQklUUywgY29kZV9sZW5ndGhzLCBhbHBoYWJldF9zaXplKTsKICAKICBpZiAodGFibGVfc2l6ZSA9PT0gMCkgewogICAgdGhyb3cgbmV3IEVycm9yKCJbUmVhZEh1ZmZtYW5Db2RlXSBCdWlsZEh1ZmZtYW5UYWJsZSBmYWlsZWQ6ICIpOwogIH0KICAKICByZXR1cm4gdGFibGVfc2l6ZTsKfQoKZnVuY3Rpb24gUmVhZEJsb2NrTGVuZ3RoKHRhYmxlLCBpbmRleCwgYnIpIHsKICB2YXIgY29kZTsKICB2YXIgbmJpdHM7CiAgY29kZSA9IFJlYWRTeW1ib2wodGFibGUsIGluZGV4LCBicik7CiAgbmJpdHMgPSBQcmVmaXgua0Jsb2NrTGVuZ3RoUHJlZml4Q29kZVtjb2RlXS5uYml0czsKICByZXR1cm4gUHJlZml4LmtCbG9ja0xlbmd0aFByZWZpeENvZGVbY29kZV0ub2Zmc2V0ICsgYnIucmVhZEJpdHMobmJpdHMpOwp9CgpmdW5jdGlvbiBUcmFuc2xhdGVTaG9ydENvZGVzKGNvZGUsIHJpbmdidWZmZXIsIGluZGV4KSB7CiAgdmFyIHZhbDsKICBpZiAoY29kZSA8IE5VTV9ESVNUQU5DRV9TSE9SVF9DT0RFUykgewogICAgaW5kZXggKz0ga0Rpc3RhbmNlU2hvcnRDb2RlSW5kZXhPZmZzZXRbY29kZV07CiAgICBpbmRleCAmPSAzOwogICAgdmFsID0gcmluZ2J1ZmZlcltpbmRleF0gKyBrRGlzdGFuY2VTaG9ydENvZGVWYWx1ZU9mZnNldFtjb2RlXTsKICB9IGVsc2UgewogICAgdmFsID0gY29kZSAtIE5VTV9ESVNUQU5DRV9TSE9SVF9DT0RFUyArIDE7CiAgfQogIHJldHVybiB2YWw7Cn0KCmZ1bmN0aW9uIE1vdmVUb0Zyb250KHYsIGluZGV4KSB7CiAgdmFyIHZhbHVlID0gdltpbmRleF07CiAgdmFyIGkgPSBpbmRleDsKICBmb3IgKDsgaTsgLS1pKSB2W2ldID0gdltpIC0gMV07CiAgdlswXSA9IHZhbHVlOwp9CgpmdW5jdGlvbiBJbnZlcnNlTW92ZVRvRnJvbnRUcmFuc2Zvcm0odiwgdl9sZW4pIHsKICB2YXIgbXRmID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICB2YXIgaTsKICBmb3IgKGkgPSAwOyBpIDwgMjU2OyArK2kpIHsKICAgIG10ZltpXSA9IGk7CiAgfQogIGZvciAoaSA9IDA7IGkgPCB2X2xlbjsgKytpKSB7CiAgICB2YXIgaW5kZXggPSB2W2ldOwogICAgdltpXSA9IG10ZltpbmRleF07CiAgICBpZiAoaW5kZXgpIE1vdmVUb0Zyb250KG10ZiwgaW5kZXgpOwogIH0KfQoKLyogQ29udGFpbnMgYSBjb2xsZWN0aW9uIG9mIGh1ZmZtYW4gdHJlZXMgd2l0aCB0aGUgc2FtZSBhbHBoYWJldCBzaXplLiAqLwpmdW5jdGlvbiBIdWZmbWFuVHJlZUdyb3VwKGFscGhhYmV0X3NpemUsIG51bV9odHJlZXMpIHsKICB0aGlzLmFscGhhYmV0X3NpemUgPSBhbHBoYWJldF9zaXplOwogIHRoaXMubnVtX2h0cmVlcyA9IG51bV9odHJlZXM7CiAgdGhpcy5jb2RlcyA9IG5ldyBBcnJheShudW1faHRyZWVzICsgbnVtX2h0cmVlcyAqIGtNYXhIdWZmbWFuVGFibGVTaXplWyhhbHBoYWJldF9zaXplICsgMzEpID4+PiA1XSk7ICAKICB0aGlzLmh0cmVlcyA9IG5ldyBVaW50MzJBcnJheShudW1faHRyZWVzKTsKfQoKSHVmZm1hblRyZWVHcm91cC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oYnIpIHsKICB2YXIgaTsKICB2YXIgdGFibGVfc2l6ZTsKICB2YXIgbmV4dCA9IDA7CiAgZm9yIChpID0gMDsgaSA8IHRoaXMubnVtX2h0cmVlczsgKytpKSB7CiAgICB0aGlzLmh0cmVlc1tpXSA9IG5leHQ7CiAgICB0YWJsZV9zaXplID0gUmVhZEh1ZmZtYW5Db2RlKHRoaXMuYWxwaGFiZXRfc2l6ZSwgdGhpcy5jb2RlcywgbmV4dCwgYnIpOwogICAgbmV4dCArPSB0YWJsZV9zaXplOwogIH0KfTsKCmZ1bmN0aW9uIERlY29kZUNvbnRleHRNYXAoY29udGV4dF9tYXBfc2l6ZSwgYnIpIHsKICB2YXIgb3V0ID0geyBudW1faHRyZWVzOiBudWxsLCBjb250ZXh0X21hcDogbnVsbCB9OwogIHZhciB1c2VfcmxlX2Zvcl96ZXJvczsKICB2YXIgbWF4X3J1bl9sZW5ndGhfcHJlZml4ID0gMDsKICB2YXIgdGFibGU7CiAgdmFyIGk7CiAgCiAgYnIucmVhZE1vcmVJbnB1dCgpOwogIHZhciBudW1faHRyZWVzID0gb3V0Lm51bV9odHJlZXMgPSBEZWNvZGVWYXJMZW5VaW50OChicikgKyAxOwoKICB2YXIgY29udGV4dF9tYXAgPSBvdXQuY29udGV4dF9tYXAgPSBuZXcgVWludDhBcnJheShjb250ZXh0X21hcF9zaXplKTsKICBpZiAobnVtX2h0cmVlcyA8PSAxKSB7CiAgICByZXR1cm4gb3V0OwogIH0KCiAgdXNlX3JsZV9mb3JfemVyb3MgPSBici5yZWFkQml0cygxKTsKICBpZiAodXNlX3JsZV9mb3JfemVyb3MpIHsKICAgIG1heF9ydW5fbGVuZ3RoX3ByZWZpeCA9IGJyLnJlYWRCaXRzKDQpICsgMTsKICB9CiAgCiAgdGFibGUgPSBbXTsKICBmb3IgKGkgPSAwOyBpIDwgSFVGRk1BTl9NQVhfVEFCTEVfU0laRTsgaSsrKSB7CiAgICB0YWJsZVtpXSA9IG5ldyBIdWZmbWFuQ29kZSgwLCAwKTsKICB9CiAgCiAgUmVhZEh1ZmZtYW5Db2RlKG51bV9odHJlZXMgKyBtYXhfcnVuX2xlbmd0aF9wcmVmaXgsIHRhYmxlLCAwLCBicik7CiAgCiAgZm9yIChpID0gMDsgaSA8IGNvbnRleHRfbWFwX3NpemU7KSB7CiAgICB2YXIgY29kZTsKCiAgICBici5yZWFkTW9yZUlucHV0KCk7CiAgICBjb2RlID0gUmVhZFN5bWJvbCh0YWJsZSwgMCwgYnIpOwogICAgaWYgKGNvZGUgPT09IDApIHsKICAgICAgY29udGV4dF9tYXBbaV0gPSAwOwogICAgICArK2k7CiAgICB9IGVsc2UgaWYgKGNvZGUgPD0gbWF4X3J1bl9sZW5ndGhfcHJlZml4KSB7CiAgICAgIHZhciByZXBzID0gMSArICgxIDw8IGNvZGUpICsgYnIucmVhZEJpdHMoY29kZSk7CiAgICAgIHdoaWxlICgtLXJlcHMpIHsKICAgICAgICBpZiAoaSA+PSBjb250ZXh0X21hcF9zaXplKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIltEZWNvZGVDb250ZXh0TWFwXSBpID49IGNvbnRleHRfbWFwX3NpemUiKTsKICAgICAgICB9CiAgICAgICAgY29udGV4dF9tYXBbaV0gPSAwOwogICAgICAgICsraTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgY29udGV4dF9tYXBbaV0gPSBjb2RlIC0gbWF4X3J1bl9sZW5ndGhfcHJlZml4OwogICAgICArK2k7CiAgICB9CiAgfQogIGlmIChici5yZWFkQml0cygxKSkgewogICAgSW52ZXJzZU1vdmVUb0Zyb250VHJhbnNmb3JtKGNvbnRleHRfbWFwLCBjb250ZXh0X21hcF9zaXplKTsKICB9CiAgCiAgcmV0dXJuIG91dDsKfQoKZnVuY3Rpb24gRGVjb2RlQmxvY2tUeXBlKG1heF9ibG9ja190eXBlLCB0cmVlcywgdHJlZV90eXBlLCBibG9ja190eXBlcywgcmluZ2J1ZmZlcnMsIGluZGV4ZXMsIGJyKSB7CiAgdmFyIHJpbmdidWZmZXIgPSB0cmVlX3R5cGUgKiAyOwogIHZhciBpbmRleCA9IHRyZWVfdHlwZTsKICB2YXIgdHlwZV9jb2RlID0gUmVhZFN5bWJvbCh0cmVlcywgdHJlZV90eXBlICogSFVGRk1BTl9NQVhfVEFCTEVfU0laRSwgYnIpOwogIHZhciBibG9ja190eXBlOwogIGlmICh0eXBlX2NvZGUgPT09IDApIHsKICAgIGJsb2NrX3R5cGUgPSByaW5nYnVmZmVyc1tyaW5nYnVmZmVyICsgKGluZGV4ZXNbaW5kZXhdICYgMSldOwogIH0gZWxzZSBpZiAodHlwZV9jb2RlID09PSAxKSB7CiAgICBibG9ja190eXBlID0gcmluZ2J1ZmZlcnNbcmluZ2J1ZmZlciArICgoaW5kZXhlc1tpbmRleF0gLSAxKSAmIDEpXSArIDE7CiAgfSBlbHNlIHsKICAgIGJsb2NrX3R5cGUgPSB0eXBlX2NvZGUgLSAyOwogIH0KICBpZiAoYmxvY2tfdHlwZSA+PSBtYXhfYmxvY2tfdHlwZSkgewogICAgYmxvY2tfdHlwZSAtPSBtYXhfYmxvY2tfdHlwZTsKICB9CiAgYmxvY2tfdHlwZXNbdHJlZV90eXBlXSA9IGJsb2NrX3R5cGU7CiAgcmluZ2J1ZmZlcnNbcmluZ2J1ZmZlciArIChpbmRleGVzW2luZGV4XSAmIDEpXSA9IGJsb2NrX3R5cGU7CiAgKytpbmRleGVzW2luZGV4XTsKfQoKZnVuY3Rpb24gQ29weVVuY29tcHJlc3NlZEJsb2NrVG9PdXRwdXQob3V0cHV0LCBsZW4sIHBvcywgcmluZ2J1ZmZlciwgcmluZ2J1ZmZlcl9tYXNrLCBicikgewogIHZhciByYl9zaXplID0gcmluZ2J1ZmZlcl9tYXNrICsgMTsKICB2YXIgcmJfcG9zID0gcG9zICYgcmluZ2J1ZmZlcl9tYXNrOwogIHZhciBicl9wb3MgPSBici5wb3NfICYgQnJvdGxpQml0UmVhZGVyLklCVUZfTUFTSzsKICB2YXIgbmJ5dGVzOwoKICAvKiBGb3Igc2hvcnQgbGVuZ3RocyBjb3B5IGJ5dGUtYnktYnl0ZSAqLwogIGlmIChsZW4gPCA4IHx8IGJyLmJpdF9wb3NfICsgKGxlbiA8PCAzKSA8IGJyLmJpdF9lbmRfcG9zXykgewogICAgd2hpbGUgKGxlbi0tID4gMCkgewogICAgICBici5yZWFkTW9yZUlucHV0KCk7CiAgICAgIHJpbmdidWZmZXJbcmJfcG9zKytdID0gYnIucmVhZEJpdHMoOCk7CiAgICAgIGlmIChyYl9wb3MgPT09IHJiX3NpemUpIHsKICAgICAgICBvdXRwdXQud3JpdGUocmluZ2J1ZmZlciwgcmJfc2l6ZSk7CiAgICAgICAgcmJfcG9zID0gMDsKICAgICAgfQogICAgfQogICAgcmV0dXJuOwogIH0KCiAgaWYgKGJyLmJpdF9lbmRfcG9zXyA8IDMyKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ1tDb3B5VW5jb21wcmVzc2VkQmxvY2tUb091dHB1dF0gYnIuYml0X2VuZF9wb3NfIDwgMzInKTsKICB9CgogIC8qIENvcHkgcmVtYWluaW5nIDAtNCBieXRlcyBmcm9tIGJyLnZhbF8gdG8gcmluZ2J1ZmZlci4gKi8KICB3aGlsZSAoYnIuYml0X3Bvc18gPCAzMikgewogICAgcmluZ2J1ZmZlcltyYl9wb3NdID0gKGJyLnZhbF8gPj4+IGJyLmJpdF9wb3NfKTsKICAgIGJyLmJpdF9wb3NfICs9IDg7CiAgICArK3JiX3BvczsKICAgIC0tbGVuOwogIH0KCiAgLyogQ29weSByZW1haW5pbmcgYnl0ZXMgZnJvbSBici5idWZfIHRvIHJpbmdidWZmZXIuICovCiAgbmJ5dGVzID0gKGJyLmJpdF9lbmRfcG9zXyAtIGJyLmJpdF9wb3NfKSA+PiAzOwogIGlmIChicl9wb3MgKyBuYnl0ZXMgPiBCcm90bGlCaXRSZWFkZXIuSUJVRl9NQVNLKSB7CiAgICB2YXIgdGFpbCA9IEJyb3RsaUJpdFJlYWRlci5JQlVGX01BU0sgKyAxIC0gYnJfcG9zOwogICAgZm9yICh2YXIgeCA9IDA7IHggPCB0YWlsOyB4KyspCiAgICAgIHJpbmdidWZmZXJbcmJfcG9zICsgeF0gPSBici5idWZfW2JyX3BvcyArIHhdOwogICAgCiAgICBuYnl0ZXMgLT0gdGFpbDsKICAgIHJiX3BvcyArPSB0YWlsOwogICAgbGVuIC09IHRhaWw7CiAgICBicl9wb3MgPSAwOwogIH0KCiAgZm9yICh2YXIgeCA9IDA7IHggPCBuYnl0ZXM7IHgrKykKICAgIHJpbmdidWZmZXJbcmJfcG9zICsgeF0gPSBici5idWZfW2JyX3BvcyArIHhdOwogIAogIHJiX3BvcyArPSBuYnl0ZXM7CiAgbGVuIC09IG5ieXRlczsKCiAgLyogSWYgd2Ugd3JvdGUgcGFzdCB0aGUgbG9naWNhbCBlbmQgb2YgdGhlIHJpbmdidWZmZXIsIGNvcHkgdGhlIHRhaWwgb2YgdGhlCiAgICAgcmluZ2J1ZmZlciB0byBpdHMgYmVnaW5uaW5nIGFuZCBmbHVzaCB0aGUgcmluZ2J1ZmZlciB0byB0aGUgb3V0cHV0LiAqLwogIGlmIChyYl9wb3MgPj0gcmJfc2l6ZSkgewogICAgb3V0cHV0LndyaXRlKHJpbmdidWZmZXIsIHJiX3NpemUpOwogICAgcmJfcG9zIC09IHJiX3NpemU7ICAgIAogICAgZm9yICh2YXIgeCA9IDA7IHggPCByYl9wb3M7IHgrKykKICAgICAgcmluZ2J1ZmZlclt4XSA9IHJpbmdidWZmZXJbcmJfc2l6ZSArIHhdOwogIH0KCiAgLyogSWYgd2UgaGF2ZSBtb3JlIHRvIGNvcHkgdGhhbiB0aGUgcmVtYWluaW5nIHNpemUgb2YgdGhlIHJpbmdidWZmZXIsIHRoZW4gd2UKICAgICBmaXJzdCBmaWxsIHRoZSByaW5nYnVmZmVyIGZyb20gdGhlIGlucHV0IGFuZCB0aGVuIGZsdXNoIHRoZSByaW5nYnVmZmVyIHRvCiAgICAgdGhlIG91dHB1dCAqLwogIHdoaWxlIChyYl9wb3MgKyBsZW4gPj0gcmJfc2l6ZSkgewogICAgbmJ5dGVzID0gcmJfc2l6ZSAtIHJiX3BvczsKICAgIGlmIChici5pbnB1dF8ucmVhZChyaW5nYnVmZmVyLCByYl9wb3MsIG5ieXRlcykgPCBuYnl0ZXMpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdbQ29weVVuY29tcHJlc3NlZEJsb2NrVG9PdXRwdXRdIG5vdCBlbm91Z2ggYnl0ZXMnKTsKICAgIH0KICAgIG91dHB1dC53cml0ZShyaW5nYnVmZmVyLCByYl9zaXplKTsKICAgIGxlbiAtPSBuYnl0ZXM7CiAgICByYl9wb3MgPSAwOwogIH0KCiAgLyogQ29weSBzdHJhaWdodCBmcm9tIHRoZSBpbnB1dCBvbnRvIHRoZSByaW5nYnVmZmVyLiBUaGUgcmluZ2J1ZmZlciB3aWxsIGJlCiAgICAgZmx1c2hlZCB0byB0aGUgb3V0cHV0IGF0IGEgbGF0ZXIgdGltZS4gKi8KICBpZiAoYnIuaW5wdXRfLnJlYWQocmluZ2J1ZmZlciwgcmJfcG9zLCBsZW4pIDwgbGVuKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ1tDb3B5VW5jb21wcmVzc2VkQmxvY2tUb091dHB1dF0gbm90IGVub3VnaCBieXRlcycpOwogIH0KCiAgLyogUmVzdG9yZSB0aGUgc3RhdGUgb2YgdGhlIGJpdCByZWFkZXIuICovCiAgYnIucmVzZXQoKTsKfQoKLyogQWR2YW5jZXMgdGhlIGJpdCByZWFkZXIgcG9zaXRpb24gdG8gdGhlIG5leHQgYnl0ZSBib3VuZGFyeSBhbmQgdmVyaWZpZXMKICAgdGhhdCBhbnkgc2tpcHBlZCBiaXRzIGFyZSBzZXQgdG8gemVyby4gKi8KZnVuY3Rpb24gSnVtcFRvQnl0ZUJvdW5kYXJ5KGJyKSB7CiAgdmFyIG5ld19iaXRfcG9zID0gKGJyLmJpdF9wb3NfICsgNykgJiB+NzsKICB2YXIgcGFkX2JpdHMgPSBici5yZWFkQml0cyhuZXdfYml0X3BvcyAtIGJyLmJpdF9wb3NfKTsKICByZXR1cm4gcGFkX2JpdHMgPT0gMDsKfQoKZnVuY3Rpb24gQnJvdGxpRGVjb21wcmVzc2VkU2l6ZShidWZmZXIpIHsKICB2YXIgaW5wdXQgPSBuZXcgQnJvdGxpSW5wdXQoYnVmZmVyKTsKICB2YXIgYnIgPSBuZXcgQnJvdGxpQml0UmVhZGVyKGlucHV0KTsKICBEZWNvZGVXaW5kb3dCaXRzKGJyKTsKICB2YXIgb3V0ID0gRGVjb2RlTWV0YUJsb2NrTGVuZ3RoKGJyKTsKICByZXR1cm4gb3V0Lm1ldGFfYmxvY2tfbGVuZ3RoOwp9CgpleHBvcnRzLkJyb3RsaURlY29tcHJlc3NlZFNpemUgPSBCcm90bGlEZWNvbXByZXNzZWRTaXplOwoKZnVuY3Rpb24gQnJvdGxpRGVjb21wcmVzc0J1ZmZlcihidWZmZXIsIG91dHB1dF9zaXplKSB7CiAgdmFyIGlucHV0ID0gbmV3IEJyb3RsaUlucHV0KGJ1ZmZlcik7CiAgCiAgaWYgKG91dHB1dF9zaXplID09IG51bGwpIHsKICAgIG91dHB1dF9zaXplID0gQnJvdGxpRGVjb21wcmVzc2VkU2l6ZShidWZmZXIpOwogIH0KICAKICB2YXIgb3V0cHV0X2J1ZmZlciA9IG5ldyBVaW50OEFycmF5KG91dHB1dF9zaXplKTsKICB2YXIgb3V0cHV0ID0gbmV3IEJyb3RsaU91dHB1dChvdXRwdXRfYnVmZmVyKTsKICAKICBCcm90bGlEZWNvbXByZXNzKGlucHV0LCBvdXRwdXQpOwogIAogIGlmIChvdXRwdXQucG9zIDwgb3V0cHV0LmJ1ZmZlci5sZW5ndGgpIHsKICAgIG91dHB1dC5idWZmZXIgPSBvdXRwdXQuYnVmZmVyLnN1YmFycmF5KDAsIG91dHB1dC5wb3MpOwogIH0KICAKICByZXR1cm4gb3V0cHV0LmJ1ZmZlcjsKfQoKZXhwb3J0cy5Ccm90bGlEZWNvbXByZXNzQnVmZmVyID0gQnJvdGxpRGVjb21wcmVzc0J1ZmZlcjsKCmZ1bmN0aW9uIEJyb3RsaURlY29tcHJlc3MoaW5wdXQsIG91dHB1dCkgewogIHZhciBpOwogIHZhciBwb3MgPSAwOwogIHZhciBpbnB1dF9lbmQgPSAwOwogIHZhciB3aW5kb3dfYml0cyA9IDA7CiAgdmFyIG1heF9iYWNrd2FyZF9kaXN0YW5jZTsKICB2YXIgbWF4X2Rpc3RhbmNlID0gMDsKICB2YXIgcmluZ2J1ZmZlcl9zaXplOwogIHZhciByaW5nYnVmZmVyX21hc2s7CiAgdmFyIHJpbmdidWZmZXI7CiAgdmFyIHJpbmdidWZmZXJfZW5kOwogIC8qIFRoaXMgcmluZyBidWZmZXIgaG9sZHMgYSBmZXcgcGFzdCBjb3B5IGRpc3RhbmNlcyB0aGF0IHdpbGwgYmUgdXNlZCBieSAqLwogIC8qIHNvbWUgc3BlY2lhbCBkaXN0YW5jZSBjb2Rlcy4gKi8KICB2YXIgZGlzdF9yYiA9IFsgMTYsIDE1LCAxMSwgNCBdOwogIHZhciBkaXN0X3JiX2lkeCA9IDA7CiAgLyogVGhlIHByZXZpb3VzIDIgYnl0ZXMgdXNlZCBmb3IgY29udGV4dC4gKi8KICB2YXIgcHJldl9ieXRlMSA9IDA7CiAgdmFyIHByZXZfYnl0ZTIgPSAwOwogIHZhciBoZ3JvdXAgPSBbbmV3IEh1ZmZtYW5UcmVlR3JvdXAoMCwgMCksIG5ldyBIdWZmbWFuVHJlZUdyb3VwKDAsIDApLCBuZXcgSHVmZm1hblRyZWVHcm91cCgwLCAwKV07CiAgdmFyIGJsb2NrX3R5cGVfdHJlZXM7CiAgdmFyIGJsb2NrX2xlbl90cmVlczsKICB2YXIgYnI7CgogIC8qIFdlIG5lZWQgdGhlIHNsYWNrIHJlZ2lvbiBmb3IgdGhlIGZvbGxvd2luZyByZWFzb25zOgogICAgICAgLSBhbHdheXMgZG9pbmcgdHdvIDgtYnl0ZSBjb3BpZXMgZm9yIGZhc3QgYmFja3dhcmQgY29weWluZwogICAgICAgLSB0cmFuc2Zvcm1zCiAgICAgICAtIGZsdXNoaW5nIHRoZSBpbnB1dCByaW5nYnVmZmVyIHdoZW4gZGVjb2RpbmcgdW5jb21wcmVzc2VkIGJsb2NrcyAqLwogIHZhciBrUmluZ0J1ZmZlcldyaXRlQWhlYWRTbGFjayA9IDEyOCArIEJyb3RsaUJpdFJlYWRlci5SRUFEX1NJWkU7CgogIGJyID0gbmV3IEJyb3RsaUJpdFJlYWRlcihpbnB1dCk7CgogIC8qIERlY29kZSB3aW5kb3cgc2l6ZS4gKi8KICB3aW5kb3dfYml0cyA9IERlY29kZVdpbmRvd0JpdHMoYnIpOwogIG1heF9iYWNrd2FyZF9kaXN0YW5jZSA9ICgxIDw8IHdpbmRvd19iaXRzKSAtIDE2OwoKICByaW5nYnVmZmVyX3NpemUgPSAxIDw8IHdpbmRvd19iaXRzOwogIHJpbmdidWZmZXJfbWFzayA9IHJpbmdidWZmZXJfc2l6ZSAtIDE7CiAgcmluZ2J1ZmZlciA9IG5ldyBVaW50OEFycmF5KHJpbmdidWZmZXJfc2l6ZSArIGtSaW5nQnVmZmVyV3JpdGVBaGVhZFNsYWNrICsgQnJvdGxpRGljdGlvbmFyeS5tYXhEaWN0aW9uYXJ5V29yZExlbmd0aCk7CiAgcmluZ2J1ZmZlcl9lbmQgPSByaW5nYnVmZmVyX3NpemU7CgogIGJsb2NrX3R5cGVfdHJlZXMgPSBbXTsKICBibG9ja19sZW5fdHJlZXMgPSBbXTsKICBmb3IgKHZhciB4ID0gMDsgeCA8IDMgKiBIVUZGTUFOX01BWF9UQUJMRV9TSVpFOyB4KyspIHsKICAgIGJsb2NrX3R5cGVfdHJlZXNbeF0gPSBuZXcgSHVmZm1hbkNvZGUoMCwgMCk7CiAgICBibG9ja19sZW5fdHJlZXNbeF0gPSBuZXcgSHVmZm1hbkNvZGUoMCwgMCk7CiAgfQoKICB3aGlsZSAoIWlucHV0X2VuZCkgewogICAgdmFyIG1ldGFfYmxvY2tfcmVtYWluaW5nX2xlbiA9IDA7CiAgICB2YXIgaXNfdW5jb21wcmVzc2VkOwogICAgdmFyIGJsb2NrX2xlbmd0aCA9IFsgMSA8PCAyOCwgMSA8PCAyOCwgMSA8PCAyOCBdOwogICAgdmFyIGJsb2NrX3R5cGUgPSBbIDAgXTsKICAgIHZhciBudW1fYmxvY2tfdHlwZXMgPSBbIDEsIDEsIDEgXTsKICAgIHZhciBibG9ja190eXBlX3JiID0gWyAwLCAxLCAwLCAxLCAwLCAxIF07CiAgICB2YXIgYmxvY2tfdHlwZV9yYl9pbmRleCA9IFsgMCBdOwogICAgdmFyIGRpc3RhbmNlX3Bvc3RmaXhfYml0czsKICAgIHZhciBudW1fZGlyZWN0X2Rpc3RhbmNlX2NvZGVzOwogICAgdmFyIGRpc3RhbmNlX3Bvc3RmaXhfbWFzazsKICAgIHZhciBudW1fZGlzdGFuY2VfY29kZXM7CiAgICB2YXIgY29udGV4dF9tYXAgPSBudWxsOwogICAgdmFyIGNvbnRleHRfbW9kZXMgPSBudWxsOwogICAgdmFyIG51bV9saXRlcmFsX2h0cmVlczsKICAgIHZhciBkaXN0X2NvbnRleHRfbWFwID0gbnVsbDsKICAgIHZhciBudW1fZGlzdF9odHJlZXM7CiAgICB2YXIgY29udGV4dF9vZmZzZXQgPSAwOwogICAgdmFyIGNvbnRleHRfbWFwX3NsaWNlID0gbnVsbDsKICAgIHZhciBsaXRlcmFsX2h0cmVlX2luZGV4ID0gMDsKICAgIHZhciBkaXN0X2NvbnRleHRfb2Zmc2V0ID0gMDsKICAgIHZhciBkaXN0X2NvbnRleHRfbWFwX3NsaWNlID0gbnVsbDsKICAgIHZhciBkaXN0X2h0cmVlX2luZGV4ID0gMDsKICAgIHZhciBjb250ZXh0X2xvb2t1cF9vZmZzZXQxID0gMDsKICAgIHZhciBjb250ZXh0X2xvb2t1cF9vZmZzZXQyID0gMDsKICAgIHZhciBjb250ZXh0X21vZGU7CiAgICB2YXIgaHRyZWVfY29tbWFuZDsKCiAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CiAgICAgIGhncm91cFtpXS5jb2RlcyA9IG51bGw7CiAgICAgIGhncm91cFtpXS5odHJlZXMgPSBudWxsOwogICAgfQoKICAgIGJyLnJlYWRNb3JlSW5wdXQoKTsKICAgIAogICAgdmFyIF9vdXQgPSBEZWNvZGVNZXRhQmxvY2tMZW5ndGgoYnIpOwogICAgbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuID0gX291dC5tZXRhX2Jsb2NrX2xlbmd0aDsKICAgIGlmIChwb3MgKyBtZXRhX2Jsb2NrX3JlbWFpbmluZ19sZW4gPiBvdXRwdXQuYnVmZmVyLmxlbmd0aCkgewogICAgICAvKiBXZSBuZWVkIHRvIGdyb3cgdGhlIG91dHB1dCBidWZmZXIgdG8gZml0IHRoZSBhZGRpdGlvbmFsIGRhdGEuICovCiAgICAgIHZhciB0bXAgPSBuZXcgVWludDhBcnJheSggcG9zICsgbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuICk7CiAgICAgIHRtcC5zZXQoIG91dHB1dC5idWZmZXIgKTsKICAgICAgb3V0cHV0LmJ1ZmZlciA9IHRtcDsKICAgIH0gICAgCiAgICBpbnB1dF9lbmQgPSBfb3V0LmlucHV0X2VuZDsKICAgIGlzX3VuY29tcHJlc3NlZCA9IF9vdXQuaXNfdW5jb21wcmVzc2VkOwogICAgCiAgICBpZiAoX291dC5pc19tZXRhZGF0YSkgewogICAgICBKdW1wVG9CeXRlQm91bmRhcnkoYnIpOwogICAgICAKICAgICAgZm9yICg7IG1ldGFfYmxvY2tfcmVtYWluaW5nX2xlbiA+IDA7IC0tbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuKSB7CiAgICAgICAgYnIucmVhZE1vcmVJbnB1dCgpOwogICAgICAgIC8qIFJlYWQgb25lIGJ5dGUgYW5kIGlnbm9yZSBpdC4gKi8KICAgICAgICBici5yZWFkQml0cyg4KTsKICAgICAgfQogICAgICAKICAgICAgY29udGludWU7CiAgICB9CiAgICAKICAgIGlmIChtZXRhX2Jsb2NrX3JlbWFpbmluZ19sZW4gPT09IDApIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICAKICAgIGlmIChpc191bmNvbXByZXNzZWQpIHsKICAgICAgYnIuYml0X3Bvc18gPSAoYnIuYml0X3Bvc18gKyA3KSAmIH43OwogICAgICBDb3B5VW5jb21wcmVzc2VkQmxvY2tUb091dHB1dChvdXRwdXQsIG1ldGFfYmxvY2tfcmVtYWluaW5nX2xlbiwgcG9zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaW5nYnVmZmVyLCByaW5nYnVmZmVyX21hc2ssIGJyKTsKICAgICAgcG9zICs9IG1ldGFfYmxvY2tfcmVtYWluaW5nX2xlbjsKICAgICAgY29udGludWU7CiAgICB9CiAgICAKICAgIGZvciAoaSA9IDA7IGkgPCAzOyArK2kpIHsKICAgICAgbnVtX2Jsb2NrX3R5cGVzW2ldID0gRGVjb2RlVmFyTGVuVWludDgoYnIpICsgMTsKICAgICAgaWYgKG51bV9ibG9ja190eXBlc1tpXSA+PSAyKSB7CiAgICAgICAgUmVhZEh1ZmZtYW5Db2RlKG51bV9ibG9ja190eXBlc1tpXSArIDIsIGJsb2NrX3R5cGVfdHJlZXMsIGkgKiBIVUZGTUFOX01BWF9UQUJMRV9TSVpFLCBicik7CiAgICAgICAgUmVhZEh1ZmZtYW5Db2RlKGtOdW1CbG9ja0xlbmd0aENvZGVzLCBibG9ja19sZW5fdHJlZXMsIGkgKiBIVUZGTUFOX01BWF9UQUJMRV9TSVpFLCBicik7CiAgICAgICAgYmxvY2tfbGVuZ3RoW2ldID0gUmVhZEJsb2NrTGVuZ3RoKGJsb2NrX2xlbl90cmVlcywgaSAqIEhVRkZNQU5fTUFYX1RBQkxFX1NJWkUsIGJyKTsKICAgICAgICBibG9ja190eXBlX3JiX2luZGV4W2ldID0gMTsKICAgICAgfQogICAgfQogICAgCiAgICBici5yZWFkTW9yZUlucHV0KCk7CiAgICAKICAgIGRpc3RhbmNlX3Bvc3RmaXhfYml0cyA9IGJyLnJlYWRCaXRzKDIpOwogICAgbnVtX2RpcmVjdF9kaXN0YW5jZV9jb2RlcyA9IE5VTV9ESVNUQU5DRV9TSE9SVF9DT0RFUyArIChici5yZWFkQml0cyg0KSA8PCBkaXN0YW5jZV9wb3N0Zml4X2JpdHMpOwogICAgZGlzdGFuY2VfcG9zdGZpeF9tYXNrID0gKDEgPDwgZGlzdGFuY2VfcG9zdGZpeF9iaXRzKSAtIDE7CiAgICBudW1fZGlzdGFuY2VfY29kZXMgPSAobnVtX2RpcmVjdF9kaXN0YW5jZV9jb2RlcyArICg0OCA8PCBkaXN0YW5jZV9wb3N0Zml4X2JpdHMpKTsKICAgIGNvbnRleHRfbW9kZXMgPSBuZXcgVWludDhBcnJheShudW1fYmxvY2tfdHlwZXNbMF0pOwoKICAgIGZvciAoaSA9IDA7IGkgPCBudW1fYmxvY2tfdHlwZXNbMF07ICsraSkgewogICAgICAgYnIucmVhZE1vcmVJbnB1dCgpOwogICAgICAgY29udGV4dF9tb2Rlc1tpXSA9IChici5yZWFkQml0cygyKSA8PCAxKTsKICAgIH0KICAgIAogICAgdmFyIF9vMSA9IERlY29kZUNvbnRleHRNYXAobnVtX2Jsb2NrX3R5cGVzWzBdIDw8IGtMaXRlcmFsQ29udGV4dEJpdHMsIGJyKTsKICAgIG51bV9saXRlcmFsX2h0cmVlcyA9IF9vMS5udW1faHRyZWVzOwogICAgY29udGV4dF9tYXAgPSBfbzEuY29udGV4dF9tYXA7CiAgICAKICAgIHZhciBfbzIgPSBEZWNvZGVDb250ZXh0TWFwKG51bV9ibG9ja190eXBlc1syXSA8PCBrRGlzdGFuY2VDb250ZXh0Qml0cywgYnIpOwogICAgbnVtX2Rpc3RfaHRyZWVzID0gX28yLm51bV9odHJlZXM7CiAgICBkaXN0X2NvbnRleHRfbWFwID0gX28yLmNvbnRleHRfbWFwOwogICAgCiAgICBoZ3JvdXBbMF0gPSBuZXcgSHVmZm1hblRyZWVHcm91cChrTnVtTGl0ZXJhbENvZGVzLCBudW1fbGl0ZXJhbF9odHJlZXMpOwogICAgaGdyb3VwWzFdID0gbmV3IEh1ZmZtYW5UcmVlR3JvdXAoa051bUluc2VydEFuZENvcHlDb2RlcywgbnVtX2Jsb2NrX3R5cGVzWzFdKTsKICAgIGhncm91cFsyXSA9IG5ldyBIdWZmbWFuVHJlZUdyb3VwKG51bV9kaXN0YW5jZV9jb2RlcywgbnVtX2Rpc3RfaHRyZWVzKTsKCiAgICBmb3IgKGkgPSAwOyBpIDwgMzsgKytpKSB7CiAgICAgIGhncm91cFtpXS5kZWNvZGUoYnIpOwogICAgfQoKICAgIGNvbnRleHRfbWFwX3NsaWNlID0gMDsKICAgIGRpc3RfY29udGV4dF9tYXBfc2xpY2UgPSAwOwogICAgY29udGV4dF9tb2RlID0gY29udGV4dF9tb2Rlc1tibG9ja190eXBlWzBdXTsKICAgIGNvbnRleHRfbG9va3VwX29mZnNldDEgPSBDb250ZXh0Lmxvb2t1cE9mZnNldHNbY29udGV4dF9tb2RlXTsKICAgIGNvbnRleHRfbG9va3VwX29mZnNldDIgPSBDb250ZXh0Lmxvb2t1cE9mZnNldHNbY29udGV4dF9tb2RlICsgMV07CiAgICBodHJlZV9jb21tYW5kID0gaGdyb3VwWzFdLmh0cmVlc1swXTsKCiAgICB3aGlsZSAobWV0YV9ibG9ja19yZW1haW5pbmdfbGVuID4gMCkgewogICAgICB2YXIgY21kX2NvZGU7CiAgICAgIHZhciByYW5nZV9pZHg7CiAgICAgIHZhciBpbnNlcnRfY29kZTsKICAgICAgdmFyIGNvcHlfY29kZTsKICAgICAgdmFyIGluc2VydF9sZW5ndGg7CiAgICAgIHZhciBjb3B5X2xlbmd0aDsKICAgICAgdmFyIGRpc3RhbmNlX2NvZGU7CiAgICAgIHZhciBkaXN0YW5jZTsKICAgICAgdmFyIGNvbnRleHQ7CiAgICAgIHZhciBqOwogICAgICB2YXIgY29weV9kc3Q7CgogICAgICBici5yZWFkTW9yZUlucHV0KCk7CiAgICAgIAogICAgICBpZiAoYmxvY2tfbGVuZ3RoWzFdID09PSAwKSB7CiAgICAgICAgRGVjb2RlQmxvY2tUeXBlKG51bV9ibG9ja190eXBlc1sxXSwKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZV90cmVlcywgMSwgYmxvY2tfdHlwZSwgYmxvY2tfdHlwZV9yYiwKICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZV9yYl9pbmRleCwgYnIpOwogICAgICAgIGJsb2NrX2xlbmd0aFsxXSA9IFJlYWRCbG9ja0xlbmd0aChibG9ja19sZW5fdHJlZXMsIEhVRkZNQU5fTUFYX1RBQkxFX1NJWkUsIGJyKTsKICAgICAgICBodHJlZV9jb21tYW5kID0gaGdyb3VwWzFdLmh0cmVlc1tibG9ja190eXBlWzFdXTsKICAgICAgfQogICAgICAtLWJsb2NrX2xlbmd0aFsxXTsKICAgICAgY21kX2NvZGUgPSBSZWFkU3ltYm9sKGhncm91cFsxXS5jb2RlcywgaHRyZWVfY29tbWFuZCwgYnIpOwogICAgICByYW5nZV9pZHggPSBjbWRfY29kZSA+PiA2OwogICAgICBpZiAocmFuZ2VfaWR4ID49IDIpIHsKICAgICAgICByYW5nZV9pZHggLT0gMjsKICAgICAgICBkaXN0YW5jZV9jb2RlID0gLTE7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZGlzdGFuY2VfY29kZSA9IDA7CiAgICAgIH0KICAgICAgaW5zZXJ0X2NvZGUgPSBQcmVmaXgua0luc2VydFJhbmdlTHV0W3JhbmdlX2lkeF0gKyAoKGNtZF9jb2RlID4+IDMpICYgNyk7CiAgICAgIGNvcHlfY29kZSA9IFByZWZpeC5rQ29weVJhbmdlTHV0W3JhbmdlX2lkeF0gKyAoY21kX2NvZGUgJiA3KTsKICAgICAgaW5zZXJ0X2xlbmd0aCA9IFByZWZpeC5rSW5zZXJ0TGVuZ3RoUHJlZml4Q29kZVtpbnNlcnRfY29kZV0ub2Zmc2V0ICsKICAgICAgICAgIGJyLnJlYWRCaXRzKFByZWZpeC5rSW5zZXJ0TGVuZ3RoUHJlZml4Q29kZVtpbnNlcnRfY29kZV0ubmJpdHMpOwogICAgICBjb3B5X2xlbmd0aCA9IFByZWZpeC5rQ29weUxlbmd0aFByZWZpeENvZGVbY29weV9jb2RlXS5vZmZzZXQgKwogICAgICAgICAgYnIucmVhZEJpdHMoUHJlZml4LmtDb3B5TGVuZ3RoUHJlZml4Q29kZVtjb3B5X2NvZGVdLm5iaXRzKTsKICAgICAgcHJldl9ieXRlMSA9IHJpbmdidWZmZXJbcG9zLTEgJiByaW5nYnVmZmVyX21hc2tdOwogICAgICBwcmV2X2J5dGUyID0gcmluZ2J1ZmZlcltwb3MtMiAmIHJpbmdidWZmZXJfbWFza107CiAgICAgIGZvciAoaiA9IDA7IGogPCBpbnNlcnRfbGVuZ3RoOyArK2opIHsKICAgICAgICBici5yZWFkTW9yZUlucHV0KCk7CgogICAgICAgIGlmIChibG9ja19sZW5ndGhbMF0gPT09IDApIHsKICAgICAgICAgIERlY29kZUJsb2NrVHlwZShudW1fYmxvY2tfdHlwZXNbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgYmxvY2tfdHlwZV90cmVlcywgMCwgYmxvY2tfdHlwZSwgYmxvY2tfdHlwZV9yYiwKICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja190eXBlX3JiX2luZGV4LCBicik7CiAgICAgICAgICBibG9ja19sZW5ndGhbMF0gPSBSZWFkQmxvY2tMZW5ndGgoYmxvY2tfbGVuX3RyZWVzLCAwLCBicik7CiAgICAgICAgICBjb250ZXh0X29mZnNldCA9IGJsb2NrX3R5cGVbMF0gPDwga0xpdGVyYWxDb250ZXh0Qml0czsKICAgICAgICAgIGNvbnRleHRfbWFwX3NsaWNlID0gY29udGV4dF9vZmZzZXQ7CiAgICAgICAgICBjb250ZXh0X21vZGUgPSBjb250ZXh0X21vZGVzW2Jsb2NrX3R5cGVbMF1dOwogICAgICAgICAgY29udGV4dF9sb29rdXBfb2Zmc2V0MSA9IENvbnRleHQubG9va3VwT2Zmc2V0c1tjb250ZXh0X21vZGVdOwogICAgICAgICAgY29udGV4dF9sb29rdXBfb2Zmc2V0MiA9IENvbnRleHQubG9va3VwT2Zmc2V0c1tjb250ZXh0X21vZGUgKyAxXTsKICAgICAgICB9CiAgICAgICAgY29udGV4dCA9IChDb250ZXh0Lmxvb2t1cFtjb250ZXh0X2xvb2t1cF9vZmZzZXQxICsgcHJldl9ieXRlMV0gfAogICAgICAgICAgICAgICAgICAgQ29udGV4dC5sb29rdXBbY29udGV4dF9sb29rdXBfb2Zmc2V0MiArIHByZXZfYnl0ZTJdKTsKICAgICAgICBsaXRlcmFsX2h0cmVlX2luZGV4ID0gY29udGV4dF9tYXBbY29udGV4dF9tYXBfc2xpY2UgKyBjb250ZXh0XTsKICAgICAgICAtLWJsb2NrX2xlbmd0aFswXTsKICAgICAgICBwcmV2X2J5dGUyID0gcHJldl9ieXRlMTsKICAgICAgICBwcmV2X2J5dGUxID0gUmVhZFN5bWJvbChoZ3JvdXBbMF0uY29kZXMsIGhncm91cFswXS5odHJlZXNbbGl0ZXJhbF9odHJlZV9pbmRleF0sIGJyKTsKICAgICAgICByaW5nYnVmZmVyW3BvcyAmIHJpbmdidWZmZXJfbWFza10gPSBwcmV2X2J5dGUxOwogICAgICAgIGlmICgocG9zICYgcmluZ2J1ZmZlcl9tYXNrKSA9PT0gcmluZ2J1ZmZlcl9tYXNrKSB7CiAgICAgICAgICBvdXRwdXQud3JpdGUocmluZ2J1ZmZlciwgcmluZ2J1ZmZlcl9zaXplKTsKICAgICAgICB9CiAgICAgICAgKytwb3M7CiAgICAgIH0KICAgICAgbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuIC09IGluc2VydF9sZW5ndGg7CiAgICAgIGlmIChtZXRhX2Jsb2NrX3JlbWFpbmluZ19sZW4gPD0gMCkgYnJlYWs7CgogICAgICBpZiAoZGlzdGFuY2VfY29kZSA8IDApIHsKICAgICAgICB2YXIgY29udGV4dDsKICAgICAgICAKICAgICAgICBici5yZWFkTW9yZUlucHV0KCk7CiAgICAgICAgaWYgKGJsb2NrX2xlbmd0aFsyXSA9PT0gMCkgewogICAgICAgICAgRGVjb2RlQmxvY2tUeXBlKG51bV9ibG9ja190eXBlc1syXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja190eXBlX3RyZWVzLCAyLCBibG9ja190eXBlLCBibG9ja190eXBlX3JiLAogICAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrX3R5cGVfcmJfaW5kZXgsIGJyKTsKICAgICAgICAgIGJsb2NrX2xlbmd0aFsyXSA9IFJlYWRCbG9ja0xlbmd0aChibG9ja19sZW5fdHJlZXMsIDIgKiBIVUZGTUFOX01BWF9UQUJMRV9TSVpFLCBicik7CiAgICAgICAgICBkaXN0X2NvbnRleHRfb2Zmc2V0ID0gYmxvY2tfdHlwZVsyXSA8PCBrRGlzdGFuY2VDb250ZXh0Qml0czsKICAgICAgICAgIGRpc3RfY29udGV4dF9tYXBfc2xpY2UgPSBkaXN0X2NvbnRleHRfb2Zmc2V0OwogICAgICAgIH0KICAgICAgICAtLWJsb2NrX2xlbmd0aFsyXTsKICAgICAgICBjb250ZXh0ID0gKGNvcHlfbGVuZ3RoID4gNCA/IDMgOiBjb3B5X2xlbmd0aCAtIDIpICYgMHhmZjsKICAgICAgICBkaXN0X2h0cmVlX2luZGV4ID0gZGlzdF9jb250ZXh0X21hcFtkaXN0X2NvbnRleHRfbWFwX3NsaWNlICsgY29udGV4dF07CiAgICAgICAgZGlzdGFuY2VfY29kZSA9IFJlYWRTeW1ib2woaGdyb3VwWzJdLmNvZGVzLCBoZ3JvdXBbMl0uaHRyZWVzW2Rpc3RfaHRyZWVfaW5kZXhdLCBicik7CiAgICAgICAgaWYgKGRpc3RhbmNlX2NvZGUgPj0gbnVtX2RpcmVjdF9kaXN0YW5jZV9jb2RlcykgewogICAgICAgICAgdmFyIG5iaXRzOwogICAgICAgICAgdmFyIHBvc3RmaXg7CiAgICAgICAgICB2YXIgb2Zmc2V0OwogICAgICAgICAgZGlzdGFuY2VfY29kZSAtPSBudW1fZGlyZWN0X2Rpc3RhbmNlX2NvZGVzOwogICAgICAgICAgcG9zdGZpeCA9IGRpc3RhbmNlX2NvZGUgJiBkaXN0YW5jZV9wb3N0Zml4X21hc2s7CiAgICAgICAgICBkaXN0YW5jZV9jb2RlID4+PSBkaXN0YW5jZV9wb3N0Zml4X2JpdHM7CiAgICAgICAgICBuYml0cyA9IChkaXN0YW5jZV9jb2RlID4+IDEpICsgMTsKICAgICAgICAgIG9mZnNldCA9ICgoMiArIChkaXN0YW5jZV9jb2RlICYgMSkpIDw8IG5iaXRzKSAtIDQ7CiAgICAgICAgICBkaXN0YW5jZV9jb2RlID0gbnVtX2RpcmVjdF9kaXN0YW5jZV9jb2RlcyArCiAgICAgICAgICAgICAgKChvZmZzZXQgKyBici5yZWFkQml0cyhuYml0cykpIDw8CiAgICAgICAgICAgICAgIGRpc3RhbmNlX3Bvc3RmaXhfYml0cykgKyBwb3N0Zml4OwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogQ29udmVydCB0aGUgZGlzdGFuY2UgY29kZSB0byB0aGUgYWN0dWFsIGRpc3RhbmNlIGJ5IHBvc3NpYmx5IGxvb2tpbmcgKi8KICAgICAgLyogdXAgcGFzdCBkaXN0bmFjZXMgZnJvbSB0aGUgcmluZ2J1ZmZlci4gKi8KICAgICAgZGlzdGFuY2UgPSBUcmFuc2xhdGVTaG9ydENvZGVzKGRpc3RhbmNlX2NvZGUsIGRpc3RfcmIsIGRpc3RfcmJfaWR4KTsKICAgICAgaWYgKGRpc3RhbmNlIDwgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignW0Jyb3RsaURlY29tcHJlc3NdIGludmFsaWQgZGlzdGFuY2UnKTsKICAgICAgfQoKICAgICAgaWYgKHBvcyA8IG1heF9iYWNrd2FyZF9kaXN0YW5jZSAmJgogICAgICAgICAgbWF4X2Rpc3RhbmNlICE9PSBtYXhfYmFja3dhcmRfZGlzdGFuY2UpIHsKICAgICAgICBtYXhfZGlzdGFuY2UgPSBwb3M7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWF4X2Rpc3RhbmNlID0gbWF4X2JhY2t3YXJkX2Rpc3RhbmNlOwogICAgICB9CgogICAgICBjb3B5X2RzdCA9IHBvcyAmIHJpbmdidWZmZXJfbWFzazsKCiAgICAgIGlmIChkaXN0YW5jZSA+IG1heF9kaXN0YW5jZSkgewogICAgICAgIGlmIChjb3B5X2xlbmd0aCA+PSBCcm90bGlEaWN0aW9uYXJ5Lm1pbkRpY3Rpb25hcnlXb3JkTGVuZ3RoICYmCiAgICAgICAgICAgIGNvcHlfbGVuZ3RoIDw9IEJyb3RsaURpY3Rpb25hcnkubWF4RGljdGlvbmFyeVdvcmRMZW5ndGgpIHsKICAgICAgICAgIHZhciBvZmZzZXQgPSBCcm90bGlEaWN0aW9uYXJ5Lm9mZnNldHNCeUxlbmd0aFtjb3B5X2xlbmd0aF07CiAgICAgICAgICB2YXIgd29yZF9pZCA9IGRpc3RhbmNlIC0gbWF4X2Rpc3RhbmNlIC0gMTsKICAgICAgICAgIHZhciBzaGlmdCA9IEJyb3RsaURpY3Rpb25hcnkuc2l6ZUJpdHNCeUxlbmd0aFtjb3B5X2xlbmd0aF07CiAgICAgICAgICB2YXIgbWFzayA9ICgxIDw8IHNoaWZ0KSAtIDE7CiAgICAgICAgICB2YXIgd29yZF9pZHggPSB3b3JkX2lkICYgbWFzazsKICAgICAgICAgIHZhciB0cmFuc2Zvcm1faWR4ID0gd29yZF9pZCA+PiBzaGlmdDsKICAgICAgICAgIG9mZnNldCArPSB3b3JkX2lkeCAqIGNvcHlfbGVuZ3RoOwogICAgICAgICAgaWYgKHRyYW5zZm9ybV9pZHggPCBUcmFuc2Zvcm0ua051bVRyYW5zZm9ybXMpIHsKICAgICAgICAgICAgdmFyIGxlbiA9IFRyYW5zZm9ybS50cmFuc2Zvcm1EaWN0aW9uYXJ5V29yZChyaW5nYnVmZmVyLCBjb3B5X2RzdCwgb2Zmc2V0LCBjb3B5X2xlbmd0aCwgdHJhbnNmb3JtX2lkeCk7CiAgICAgICAgICAgIGNvcHlfZHN0ICs9IGxlbjsKICAgICAgICAgICAgcG9zICs9IGxlbjsKICAgICAgICAgICAgbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuIC09IGxlbjsKICAgICAgICAgICAgaWYgKGNvcHlfZHN0ID49IHJpbmdidWZmZXJfZW5kKSB7CiAgICAgICAgICAgICAgb3V0cHV0LndyaXRlKHJpbmdidWZmZXIsIHJpbmdidWZmZXJfc2l6ZSk7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgZm9yICh2YXIgX3ggPSAwOyBfeCA8IChjb3B5X2RzdCAtIHJpbmdidWZmZXJfZW5kKTsgX3grKykKICAgICAgICAgICAgICAgIHJpbmdidWZmZXJbX3hdID0gcmluZ2J1ZmZlcltyaW5nYnVmZmVyX2VuZCArIF94XTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJhY2t3YXJkIHJlZmVyZW5jZS4gcG9zOiAiICsgcG9zICsgIiBkaXN0YW5jZTogIiArIGRpc3RhbmNlICsKICAgICAgICAgICAgICAiIGxlbjogIiArIGNvcHlfbGVuZ3RoICsgIiBieXRlcyBsZWZ0OiAiICsgbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGJhY2t3YXJkIHJlZmVyZW5jZS4gcG9zOiAiICsgcG9zICsgIiBkaXN0YW5jZTogIiArIGRpc3RhbmNlICsKICAgICAgICAgICAgIiBsZW46ICIgKyBjb3B5X2xlbmd0aCArICIgYnl0ZXMgbGVmdDogIiArIG1ldGFfYmxvY2tfcmVtYWluaW5nX2xlbik7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGlmIChkaXN0YW5jZV9jb2RlID4gMCkgewogICAgICAgICAgZGlzdF9yYltkaXN0X3JiX2lkeCAmIDNdID0gZGlzdGFuY2U7CiAgICAgICAgICArK2Rpc3RfcmJfaWR4OwogICAgICAgIH0KCiAgICAgICAgaWYgKGNvcHlfbGVuZ3RoID4gbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYmFja3dhcmQgcmVmZXJlbmNlLiBwb3M6ICIgKyBwb3MgKyAiIGRpc3RhbmNlOiAiICsgZGlzdGFuY2UgKwogICAgICAgICAgICAiIGxlbjogIiArIGNvcHlfbGVuZ3RoICsgIiBieXRlcyBsZWZ0OiAiICsgbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuKTsKICAgICAgICB9CgogICAgICAgIGZvciAoaiA9IDA7IGogPCBjb3B5X2xlbmd0aDsgKytqKSB7CiAgICAgICAgICByaW5nYnVmZmVyW3BvcyAmIHJpbmdidWZmZXJfbWFza10gPSByaW5nYnVmZmVyWyhwb3MgLSBkaXN0YW5jZSkgJiByaW5nYnVmZmVyX21hc2tdOwogICAgICAgICAgaWYgKChwb3MgJiByaW5nYnVmZmVyX21hc2spID09PSByaW5nYnVmZmVyX21hc2spIHsKICAgICAgICAgICAgb3V0cHV0LndyaXRlKHJpbmdidWZmZXIsIHJpbmdidWZmZXJfc2l6ZSk7CiAgICAgICAgICB9CiAgICAgICAgICArK3BvczsKICAgICAgICAgIC0tbWV0YV9ibG9ja19yZW1haW5pbmdfbGVuOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLyogV2hlbiB3ZSBnZXQgaGVyZSwgd2UgbXVzdCBoYXZlIGluc2VydGVkIGF0IGxlYXN0IG9uZSBsaXRlcmFsIGFuZCAqLwogICAgICAvKiBtYWRlIGEgY29weSBvZiBhdCBsZWFzdCBsZW5ndGggdHdvLCB0aGVyZWZvcmUgYWNjZXNzaW5nIHRoZSBsYXN0IDIgKi8KICAgICAgLyogYnl0ZXMgaXMgdmFsaWQuICovCiAgICAgIHByZXZfYnl0ZTEgPSByaW5nYnVmZmVyWyhwb3MgLSAxKSAmIHJpbmdidWZmZXJfbWFza107CiAgICAgIHByZXZfYnl0ZTIgPSByaW5nYnVmZmVyWyhwb3MgLSAyKSAmIHJpbmdidWZmZXJfbWFza107CiAgICB9CgogICAgLyogUHJvdGVjdCBwb3MgZnJvbSBvdmVyZmxvdywgd3JhcCBpdCBhcm91bmQgYXQgZXZlcnkgR0Igb2YgaW5wdXQgZGF0YSAqLwogICAgcG9zICY9IDB4M2ZmZmZmZmY7CiAgfQoKICBvdXRwdXQud3JpdGUocmluZ2J1ZmZlciwgcG9zICYgcmluZ2J1ZmZlcl9tYXNrKTsKfQoKZXhwb3J0cy5Ccm90bGlEZWNvbXByZXNzID0gQnJvdGxpRGVjb21wcmVzczsKCkJyb3RsaURpY3Rpb25hcnkuaW5pdCgpOwoKCi8qKiovIH0pLAovKiAxMTggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKZnVuY3Rpb24gQnJvdGxpSW5wdXQoYnVmZmVyKSB7CiAgdGhpcy5idWZmZXIgPSBidWZmZXI7CiAgdGhpcy5wb3MgPSAwOwp9CgpCcm90bGlJbnB1dC5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uKGJ1ZiwgaSwgY291bnQpIHsKICBpZiAodGhpcy5wb3MgKyBjb3VudCA+IHRoaXMuYnVmZmVyLmxlbmd0aCkgewogICAgY291bnQgPSB0aGlzLmJ1ZmZlci5sZW5ndGggLSB0aGlzLnBvczsKICB9CiAgCiAgZm9yICh2YXIgcCA9IDA7IHAgPCBjb3VudDsgcCsrKQogICAgYnVmW2kgKyBwXSA9IHRoaXMuYnVmZmVyW3RoaXMucG9zICsgcF07CiAgCiAgdGhpcy5wb3MgKz0gY291bnQ7CiAgcmV0dXJuIGNvdW50Owp9CgpleHBvcnRzLkJyb3RsaUlucHV0ID0gQnJvdGxpSW5wdXQ7CgpmdW5jdGlvbiBCcm90bGlPdXRwdXQoYnVmKSB7CiAgdGhpcy5idWZmZXIgPSBidWY7CiAgdGhpcy5wb3MgPSAwOwp9CgpCcm90bGlPdXRwdXQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmLCBjb3VudCkgewogIGlmICh0aGlzLnBvcyArIGNvdW50ID4gdGhpcy5idWZmZXIubGVuZ3RoKQogICAgdGhyb3cgbmV3IEVycm9yKCdPdXRwdXQgYnVmZmVyIGlzIG5vdCBsYXJnZSBlbm91Z2gnKTsKICAKICB0aGlzLmJ1ZmZlci5zZXQoYnVmLnN1YmFycmF5KDAsIGNvdW50KSwgdGhpcy5wb3MpOwogIHRoaXMucG9zICs9IGNvdW50OwogIHJldHVybiBjb3VudDsKfTsKCmV4cG9ydHMuQnJvdGxpT3V0cHV0ID0gQnJvdGxpT3V0cHV0OwoKCi8qKiovIH0pLAovKiAxMTkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKICAgQ29sbGVjdGlvbiBvZiBzdGF0aWMgZGljdGlvbmFyeSB3b3Jkcy4KKi8KCnZhciBkYXRhID0gX193ZWJwYWNrX3JlcXVpcmVfXygyODYpOwpleHBvcnRzLmluaXQgPSBmdW5jdGlvbigpIHsKICBleHBvcnRzLmRpY3Rpb25hcnkgPSBkYXRhLmluaXQoKTsKfTsKCmV4cG9ydHMub2Zmc2V0c0J5TGVuZ3RoID0gbmV3IFVpbnQzMkFycmF5KFsKICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgIDQwOTYsICA5MjE2LCAyMTUwNCwgMzU4NDAsIDQ0MDMyLAogNTMyNDgsIDYzNDg4LCA3NDc1MiwgODcwNDAsIDkzNjk2LCAxMDA4NjQsIDEwNDcwNCwgMTA2NzUyLCAxMDg5MjgsIDExMzUzNiwKIDExNTk2OCwgMTE4NTI4LCAxMTk4NzIsIDEyMTI4MCwgMTIyMDE2LApdKTsKCmV4cG9ydHMuc2l6ZUJpdHNCeUxlbmd0aCA9IG5ldyBVaW50OEFycmF5KFsKICAwLCAgMCwgIDAsICAwLCAxMCwgMTAsIDExLCAxMSwgMTAsIDEwLAogMTAsIDEwLCAxMCwgIDksICA5LCAgOCwgIDcsICA3LCAgOCwgIDcsCiAgNywgIDYsICA2LCAgNSwgIDUsCl0pOwoKZXhwb3J0cy5taW5EaWN0aW9uYXJ5V29yZExlbmd0aCA9IDQ7CmV4cG9ydHMubWF4RGljdGlvbmFyeVdvcmRMZW5ndGggPSAyNDsKCgovKioqLyB9KSwKLyogMTIwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCmZ1bmN0aW9uIEh1ZmZtYW5Db2RlKGJpdHMsIHZhbHVlKSB7CiAgdGhpcy5iaXRzID0gYml0czsgICAvKiBudW1iZXIgb2YgYml0cyB1c2VkIGZvciB0aGlzIHN5bWJvbCAqLwogIHRoaXMudmFsdWUgPSB2YWx1ZTsgLyogc3ltYm9sIHZhbHVlIG9yIHRhYmxlIG9mZnNldCAqLwp9CgpleHBvcnRzLkh1ZmZtYW5Db2RlID0gSHVmZm1hbkNvZGU7Cgp2YXIgTUFYX0xFTkdUSCA9IDE1OwoKLyogUmV0dXJucyByZXZlcnNlKHJldmVyc2Uoa2V5LCBsZW4pICsgMSwgbGVuKSwgd2hlcmUgcmV2ZXJzZShrZXksIGxlbikgaXMgdGhlCiAgIGJpdC13aXNlIHJldmVyc2FsIG9mIHRoZSBsZW4gbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBrZXkuICovCmZ1bmN0aW9uIEdldE5leHRLZXkoa2V5LCBsZW4pIHsKICB2YXIgc3RlcCA9IDEgPDwgKGxlbiAtIDEpOwogIHdoaWxlIChrZXkgJiBzdGVwKSB7CiAgICBzdGVwID4+PSAxOwogIH0KICByZXR1cm4gKGtleSAmIChzdGVwIC0gMSkpICsgc3RlcDsKfQoKLyogU3RvcmVzIGNvZGUgaW4gdGFibGVbMF0sIHRhYmxlW3N0ZXBdLCB0YWJsZVsyKnN0ZXBdLCAuLi4sIHRhYmxlW2VuZF0gKi8KLyogQXNzdW1lcyB0aGF0IGVuZCBpcyBhbiBpbnRlZ2VyIG11bHRpcGxlIG9mIHN0ZXAgKi8KZnVuY3Rpb24gUmVwbGljYXRlVmFsdWUodGFibGUsIGksIHN0ZXAsIGVuZCwgY29kZSkgewogIGRvIHsKICAgIGVuZCAtPSBzdGVwOwogICAgdGFibGVbaSArIGVuZF0gPSBuZXcgSHVmZm1hbkNvZGUoY29kZS5iaXRzLCBjb2RlLnZhbHVlKTsKICB9IHdoaWxlIChlbmQgPiAwKTsKfQoKLyogUmV0dXJucyB0aGUgdGFibGUgd2lkdGggb2YgdGhlIG5leHQgMm5kIGxldmVsIHRhYmxlLiBjb3VudCBpcyB0aGUgaGlzdG9ncmFtCiAgIG9mIGJpdCBsZW5ndGhzIGZvciB0aGUgcmVtYWluaW5nIHN5bWJvbHMsIGxlbiBpcyB0aGUgY29kZSBsZW5ndGggb2YgdGhlIG5leHQKICAgcHJvY2Vzc2VkIHN5bWJvbCAqLwpmdW5jdGlvbiBOZXh0VGFibGVCaXRTaXplKGNvdW50LCBsZW4sIHJvb3RfYml0cykgewogIHZhciBsZWZ0ID0gMSA8PCAobGVuIC0gcm9vdF9iaXRzKTsKICB3aGlsZSAobGVuIDwgTUFYX0xFTkdUSCkgewogICAgbGVmdCAtPSBjb3VudFtsZW5dOwogICAgaWYgKGxlZnQgPD0gMCkgYnJlYWs7CiAgICArK2xlbjsKICAgIGxlZnQgPDw9IDE7CiAgfQogIHJldHVybiBsZW4gLSByb290X2JpdHM7Cn0KCmV4cG9ydHMuQnJvdGxpQnVpbGRIdWZmbWFuVGFibGUgPSBmdW5jdGlvbihyb290X3RhYmxlLCB0YWJsZSwgcm9vdF9iaXRzLCBjb2RlX2xlbmd0aHMsIGNvZGVfbGVuZ3Roc19zaXplKSB7CiAgdmFyIHN0YXJ0X3RhYmxlID0gdGFibGU7CiAgdmFyIGNvZGU7ICAgICAgICAgICAgLyogY3VycmVudCB0YWJsZSBlbnRyeSAqLwogIHZhciBsZW47ICAgICAgICAgICAgIC8qIGN1cnJlbnQgY29kZSBsZW5ndGggKi8KICB2YXIgc3ltYm9sOyAgICAgICAgICAvKiBzeW1ib2wgaW5kZXggaW4gb3JpZ2luYWwgb3Igc29ydGVkIHRhYmxlICovCiAgdmFyIGtleTsgICAgICAgICAgICAgLyogcmV2ZXJzZWQgcHJlZml4IGNvZGUgKi8KICB2YXIgc3RlcDsgICAgICAgICAgICAvKiBzdGVwIHNpemUgdG8gcmVwbGljYXRlIHZhbHVlcyBpbiBjdXJyZW50IHRhYmxlICovCiAgdmFyIGxvdzsgICAgICAgICAgICAgLyogbG93IGJpdHMgZm9yIGN1cnJlbnQgcm9vdCBlbnRyeSAqLwogIHZhciBtYXNrOyAgICAgICAgICAgIC8qIG1hc2sgZm9yIGxvdyBiaXRzICovCiAgdmFyIHRhYmxlX2JpdHM7ICAgICAgLyoga2V5IGxlbmd0aCBvZiBjdXJyZW50IHRhYmxlICovCiAgdmFyIHRhYmxlX3NpemU7ICAgICAgLyogc2l6ZSBvZiBjdXJyZW50IHRhYmxlICovCiAgdmFyIHRvdGFsX3NpemU7ICAgICAgLyogc3VtIG9mIHJvb3QgdGFibGUgc2l6ZSBhbmQgMm5kIGxldmVsIHRhYmxlIHNpemVzICovCiAgdmFyIHNvcnRlZDsgICAgICAgICAgLyogc3ltYm9scyBzb3J0ZWQgYnkgY29kZSBsZW5ndGggKi8KICB2YXIgY291bnQgPSBuZXcgSW50MzJBcnJheShNQVhfTEVOR1RIICsgMSk7ICAvKiBudW1iZXIgb2YgY29kZXMgb2YgZWFjaCBsZW5ndGggKi8KICB2YXIgb2Zmc2V0ID0gbmV3IEludDMyQXJyYXkoTUFYX0xFTkdUSCArIDEpOyAgLyogb2Zmc2V0cyBpbiBzb3J0ZWQgdGFibGUgZm9yIGVhY2ggbGVuZ3RoICovCgogIHNvcnRlZCA9IG5ldyBJbnQzMkFycmF5KGNvZGVfbGVuZ3Roc19zaXplKTsKCiAgLyogYnVpbGQgaGlzdG9ncmFtIG9mIGNvZGUgbGVuZ3RocyAqLwogIGZvciAoc3ltYm9sID0gMDsgc3ltYm9sIDwgY29kZV9sZW5ndGhzX3NpemU7IHN5bWJvbCsrKSB7CiAgICBjb3VudFtjb2RlX2xlbmd0aHNbc3ltYm9sXV0rKzsKICB9CgogIC8qIGdlbmVyYXRlIG9mZnNldHMgaW50byBzb3J0ZWQgc3ltYm9sIHRhYmxlIGJ5IGNvZGUgbGVuZ3RoICovCiAgb2Zmc2V0WzFdID0gMDsKICBmb3IgKGxlbiA9IDE7IGxlbiA8IE1BWF9MRU5HVEg7IGxlbisrKSB7CiAgICBvZmZzZXRbbGVuICsgMV0gPSBvZmZzZXRbbGVuXSArIGNvdW50W2xlbl07CiAgfQoKICAvKiBzb3J0IHN5bWJvbHMgYnkgbGVuZ3RoLCBieSBzeW1ib2wgb3JkZXIgd2l0aGluIGVhY2ggbGVuZ3RoICovCiAgZm9yIChzeW1ib2wgPSAwOyBzeW1ib2wgPCBjb2RlX2xlbmd0aHNfc2l6ZTsgc3ltYm9sKyspIHsKICAgIGlmIChjb2RlX2xlbmd0aHNbc3ltYm9sXSAhPT0gMCkgewogICAgICBzb3J0ZWRbb2Zmc2V0W2NvZGVfbGVuZ3Roc1tzeW1ib2xdXSsrXSA9IHN5bWJvbDsKICAgIH0KICB9CiAgCiAgdGFibGVfYml0cyA9IHJvb3RfYml0czsKICB0YWJsZV9zaXplID0gMSA8PCB0YWJsZV9iaXRzOwogIHRvdGFsX3NpemUgPSB0YWJsZV9zaXplOwoKICAvKiBzcGVjaWFsIGNhc2UgY29kZSB3aXRoIG9ubHkgb25lIHZhbHVlICovCiAgaWYgKG9mZnNldFtNQVhfTEVOR1RIXSA9PT0gMSkgewogICAgZm9yIChrZXkgPSAwOyBrZXkgPCB0b3RhbF9zaXplOyArK2tleSkgewogICAgICByb290X3RhYmxlW3RhYmxlICsga2V5XSA9IG5ldyBIdWZmbWFuQ29kZSgwLCBzb3J0ZWRbMF0gJiAweGZmZmYpOwogICAgfQogICAgCiAgICByZXR1cm4gdG90YWxfc2l6ZTsKICB9CgogIC8qIGZpbGwgaW4gcm9vdCB0YWJsZSAqLwogIGtleSA9IDA7CiAgc3ltYm9sID0gMDsKICBmb3IgKGxlbiA9IDEsIHN0ZXAgPSAyOyBsZW4gPD0gcm9vdF9iaXRzOyArK2xlbiwgc3RlcCA8PD0gMSkgewogICAgZm9yICg7IGNvdW50W2xlbl0gPiAwOyAtLWNvdW50W2xlbl0pIHsKICAgICAgY29kZSA9IG5ldyBIdWZmbWFuQ29kZShsZW4gJiAweGZmLCBzb3J0ZWRbc3ltYm9sKytdICYgMHhmZmZmKTsKICAgICAgUmVwbGljYXRlVmFsdWUocm9vdF90YWJsZSwgdGFibGUgKyBrZXksIHN0ZXAsIHRhYmxlX3NpemUsIGNvZGUpOwogICAgICBrZXkgPSBHZXROZXh0S2V5KGtleSwgbGVuKTsKICAgIH0KICB9CgogIC8qIGZpbGwgaW4gMm5kIGxldmVsIHRhYmxlcyBhbmQgYWRkIHBvaW50ZXJzIHRvIHJvb3QgdGFibGUgKi8KICBtYXNrID0gdG90YWxfc2l6ZSAtIDE7CiAgbG93ID0gLTE7CiAgZm9yIChsZW4gPSByb290X2JpdHMgKyAxLCBzdGVwID0gMjsgbGVuIDw9IE1BWF9MRU5HVEg7ICsrbGVuLCBzdGVwIDw8PSAxKSB7CiAgICBmb3IgKDsgY291bnRbbGVuXSA+IDA7IC0tY291bnRbbGVuXSkgewogICAgICBpZiAoKGtleSAmIG1hc2spICE9PSBsb3cpIHsKICAgICAgICB0YWJsZSArPSB0YWJsZV9zaXplOwogICAgICAgIHRhYmxlX2JpdHMgPSBOZXh0VGFibGVCaXRTaXplKGNvdW50LCBsZW4sIHJvb3RfYml0cyk7CiAgICAgICAgdGFibGVfc2l6ZSA9IDEgPDwgdGFibGVfYml0czsKICAgICAgICB0b3RhbF9zaXplICs9IHRhYmxlX3NpemU7CiAgICAgICAgbG93ID0ga2V5ICYgbWFzazsKICAgICAgICByb290X3RhYmxlW3N0YXJ0X3RhYmxlICsgbG93XSA9IG5ldyBIdWZmbWFuQ29kZSgodGFibGVfYml0cyArIHJvb3RfYml0cykgJiAweGZmLCAoKHRhYmxlIC0gc3RhcnRfdGFibGUpIC0gbG93KSAmIDB4ZmZmZik7CiAgICAgIH0KICAgICAgY29kZSA9IG5ldyBIdWZmbWFuQ29kZSgobGVuIC0gcm9vdF9iaXRzKSAmIDB4ZmYsIHNvcnRlZFtzeW1ib2wrK10gJiAweGZmZmYpOwogICAgICBSZXBsaWNhdGVWYWx1ZShyb290X3RhYmxlLCB0YWJsZSArIChrZXkgPj4gcm9vdF9iaXRzKSwgc3RlcCwgdGFibGVfc2l6ZSwgY29kZSk7CiAgICAgIGtleSA9IEdldE5leHRLZXkoa2V5LCBsZW4pOwogICAgfQogIH0KICAKICByZXR1cm4gdG90YWxfc2l6ZTsKfQoKCi8qKiovIH0pLAovKiAxMjEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKEJ1ZmZlcikgey8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CgovKgpQREZJbWFnZSAtIGVtYmVkcyBpbWFnZXMgaW4gUERGIGRvY3VtZW50cwpCeSBEZXZvbiBHb3ZldHQKICovCgooZnVuY3Rpb24oKSB7CiAgdmFyIERhdGEsIEpQRUcsIFBERkltYWdlLCBQTkcsIGZzOwoKICBmcyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CgogIERhdGEgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5OCk7CgogIEpQRUcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5OSk7CgogIFBORyA9IF9fd2VicGFja19yZXF1aXJlX18oMzAwKTsKCiAgUERGSW1hZ2UgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBQREZJbWFnZSgpIHt9CgogICAgUERGSW1hZ2Uub3BlbiA9IGZ1bmN0aW9uKHNyYywgbGFiZWwpIHsKICAgICAgdmFyIGRhdGEsIG1hdGNoOwogICAgICBpZiAoQnVmZmVyLmlzQnVmZmVyKHNyYykpIHsKICAgICAgICBkYXRhID0gc3JjOwogICAgICB9IGVsc2UgaWYgKHNyYyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7CiAgICAgICAgZGF0YSA9IG5ldyBCdWZmZXIobmV3IFVpbnQ4QXJyYXkoc3JjKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKG1hdGNoID0gL15kYXRhOi4rO2Jhc2U2NCwoLiopJC8uZXhlYyhzcmMpKSB7CiAgICAgICAgICBkYXRhID0gbmV3IEJ1ZmZlcihtYXRjaFsxXSwgJ2Jhc2U2NCcpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHNyYyk7CiAgICAgICAgICBpZiAoIWRhdGEpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoZGF0YVswXSA9PT0gMHhmZiAmJiBkYXRhWzFdID09PSAweGQ4KSB7CiAgICAgICAgcmV0dXJuIG5ldyBKUEVHKGRhdGEsIGxhYmVsKTsKICAgICAgfSBlbHNlIGlmIChkYXRhWzBdID09PSAweDg5ICYmIGRhdGEudG9TdHJpbmcoJ2FzY2lpJywgMSwgNCkgPT09ICdQTkcnKSB7CiAgICAgICAgcmV0dXJuIG5ldyBQTkcoZGF0YSwgbGFiZWwpOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBpbWFnZSBmb3JtYXQuJyk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIFBERkltYWdlOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IFBERkltYWdlOwoKfSkuY2FsbCh0aGlzKTsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpLkJ1ZmZlcikpCgovKioqLyB9KSwKLyogMTIyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihnbG9iYWwpIHttb2R1bGUuZXhwb3J0cyA9IGdsb2JhbFsicGRmTWFrZSJdID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMjMpOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyg3KSkpCgovKioqLyB9KSwKLyogMTIzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKEJ1ZmZlciwgZ2xvYmFsKSB7Cgp2YXIgUGRmUHJpbnRlciA9IF9fd2VicGFja19yZXF1aXJlX18oMTI2KTsKdmFyIGlzRnVuY3Rpb24gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzRnVuY3Rpb247CnZhciBGaWxlU2F2ZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwNik7CnZhciBzYXZlQXMgPSBGaWxlU2F2ZXIuc2F2ZUFzOwoKdmFyIGRlZmF1bHRDbGllbnRGb250cyA9IHsKCVJvYm90bzogewoJCW5vcm1hbDogJ1JvYm90by1SZWd1bGFyLnR0ZicsCgkJYm9sZDogJ1JvYm90by1NZWRpdW0udHRmJywKCQlpdGFsaWNzOiAnUm9ib3RvLUl0YWxpYy50dGYnLAoJCWJvbGRpdGFsaWNzOiAnUm9ib3RvLU1lZGl1bUl0YWxpYy50dGYnCgl9Cn07CgpmdW5jdGlvbiBEb2N1bWVudChkb2NEZWZpbml0aW9uLCB0YWJsZUxheW91dHMsIGZvbnRzLCB2ZnMpIHsKCXRoaXMuZG9jRGVmaW5pdGlvbiA9IGRvY0RlZmluaXRpb247Cgl0aGlzLnRhYmxlTGF5b3V0cyA9IHRhYmxlTGF5b3V0cyB8fCBudWxsOwoJdGhpcy5mb250cyA9IGZvbnRzIHx8IGRlZmF1bHRDbGllbnRGb250czsKCXRoaXMudmZzID0gdmZzOwp9CgpmdW5jdGlvbiBjYW5DcmVhdGVQZGYoKSB7CgkvLyBFbnN1cmUgdGhlIGJyb3dzZXIgcHJvdmlkZXMgdGhlIGxldmVsIG9mIHN1cHBvcnQgbmVlZGVkCglpZiAoIU9iamVjdC5rZXlzKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoJcmV0dXJuIHRydWU7Cn0KCkRvY3VtZW50LnByb3RvdHlwZS5fY3JlYXRlRG9jID0gZnVuY3Rpb24gKG9wdGlvbnMsIGNhbGxiYWNrKSB7CglvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCWlmICh0aGlzLnRhYmxlTGF5b3V0cykgewoJCW9wdGlvbnMudGFibGVMYXlvdXRzID0gdGhpcy50YWJsZUxheW91dHM7Cgl9CgoJdmFyIHByaW50ZXIgPSBuZXcgUGRmUHJpbnRlcih0aGlzLmZvbnRzKTsKCV9fd2VicGFja19yZXF1aXJlX18oOCkuYmluZEZTKHRoaXMudmZzKTsgLy8gYmluZCB2aXJ0dWFsIGZpbGUgc3lzdGVtIHRvIGZpbGUgc3lzdGVtCgoJdmFyIGRvYyA9IHByaW50ZXIuY3JlYXRlUGRmS2l0RG9jdW1lbnQodGhpcy5kb2NEZWZpbml0aW9uLCBvcHRpb25zKTsKCXZhciBjaHVua3MgPSBbXTsKCXZhciByZXN1bHQ7CgoJZG9jLm9uKCdyZWFkYWJsZScsIGZ1bmN0aW9uICgpIHsKCQl2YXIgY2h1bms7CgkJd2hpbGUgKChjaHVuayA9IGRvYy5yZWFkKDkwMDcxOTkyNTQ3NDA5OTEpKSAhPT0gbnVsbCkgewoJCQljaHVua3MucHVzaChjaHVuayk7CgkJfQoJfSk7Cglkb2Mub24oJ2VuZCcsIGZ1bmN0aW9uICgpIHsKCQlyZXN1bHQgPSBCdWZmZXIuY29uY2F0KGNodW5rcyk7CgkJY2FsbGJhY2socmVzdWx0LCBkb2MuX3BkZk1ha2VQYWdlcyk7Cgl9KTsKCWRvYy5lbmQoKTsKfTsKCkRvY3VtZW50LnByb3RvdHlwZS5fZ2V0UGFnZXMgPSBmdW5jdGlvbiAob3B0aW9ucywgY2IpIHsKCWlmICghY2IpIHsKCQl0aHJvdyAnX2dldFBhZ2VzIGlzIGFuIGFzeW5jIG1ldGhvZCBhbmQgbmVlZHMgYSBjYWxsYmFjayBhcmd1bWVudCc7Cgl9Cgl0aGlzLl9jcmVhdGVEb2Mob3B0aW9ucywgZnVuY3Rpb24gKGlnbm9yZUJ1ZmZlciwgcGFnZXMpIHsKCQljYihwYWdlcyk7Cgl9KTsKfTsKCkRvY3VtZW50LnByb3RvdHlwZS5fYnVmZmVyVG9CbG9iID0gZnVuY3Rpb24gKGJ1ZmZlcikgewoJdmFyIGJsb2I7Cgl0cnkgewoJCWJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge3R5cGU6ICdhcHBsaWNhdGlvbi9wZGYnfSk7Cgl9IGNhdGNoIChlKSB7CgkJLy8gT2xkIGJyb3dzZXIgd2hpY2ggY2FuJ3QgaGFuZGxlIGl0IHdpdGhvdXQgbWFraW5nIGl0IGFuIGJ5dGUgYXJyYXkgKGllMTApCgkJaWYgKGUubmFtZSA9PT0gJ0ludmFsaWRTdGF0ZUVycm9yJykgewoJCQl2YXIgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTsKCQkJYmxvYiA9IG5ldyBCbG9iKFtieXRlQXJyYXkuYnVmZmVyXSwge3R5cGU6ICdhcHBsaWNhdGlvbi9wZGYnfSk7CgkJfQoJfQoKCWlmICghYmxvYikgewoJCXRocm93ICdDb3VsZCBub3QgZ2VuZXJhdGUgYmxvYic7Cgl9CgoJcmV0dXJuIGJsb2I7Cn07CgpEb2N1bWVudC5wcm90b3R5cGUuX29wZW5XaW5kb3cgPSBmdW5jdGlvbiAoKSB7CgkvLyB3ZSBoYXZlIHRvIG9wZW4gdGhlIHdpbmRvdyBpbW1lZGlhdGVseSBhbmQgc3RvcmUgdGhlIHJlZmVyZW5jZQoJLy8gb3RoZXJ3aXNlIHBvcHVwIGJsb2NrZXJzIHdpbGwgc3RvcCB1cwoJdmFyIHdpbiA9IHdpbmRvdy5vcGVuKCcnLCAnX2JsYW5rJyk7CglpZiAod2luID09PSBudWxsKSB7CgkJdGhyb3cgJ09wZW4gUERGIGluIG5ldyB3aW5kb3cgYmxvY2tlZCBieSBicm93c2VyJzsKCX0KCglyZXR1cm4gd2luOwp9OwoKRG9jdW1lbnQucHJvdG90eXBlLl9vcGVuUGRmID0gZnVuY3Rpb24gKG9wdGlvbnMsIHdpbikgewoJaWYgKCF3aW4pIHsKCQl3aW4gPSB0aGlzLl9vcGVuV2luZG93KCk7Cgl9Cgl0cnkgewoJCXRoaXMuZ2V0QmxvYihmdW5jdGlvbiAocmVzdWx0KSB7CgkJCXZhciB1cmxDcmVhdG9yID0gd2luZG93LlVSTCB8fCB3aW5kb3cud2Via2l0VVJMOwoJCQl2YXIgcGRmVXJsID0gdXJsQ3JlYXRvci5jcmVhdGVPYmplY3RVUkwocmVzdWx0KTsKCQkJd2luLmxvY2F0aW9uLmhyZWYgPSBwZGZVcmw7CgkJfSwgb3B0aW9ucyk7Cgl9IGNhdGNoIChlKSB7CgkJd2luLmNsb3NlKCk7CgkJdGhyb3cgZTsKCX0KfTsKCkRvY3VtZW50LnByb3RvdHlwZS5vcGVuID0gZnVuY3Rpb24gKG9wdGlvbnMsIHdpbikgewoJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CglvcHRpb25zLmF1dG9QcmludCA9IGZhbHNlOwoJd2luID0gd2luIHx8IG51bGw7CgoJdGhpcy5fb3BlblBkZihvcHRpb25zLCB3aW4pOwp9OwoKCkRvY3VtZW50LnByb3RvdHlwZS5wcmludCA9IGZ1bmN0aW9uIChvcHRpb25zLCB3aW4pIHsKCW9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwoJb3B0aW9ucy5hdXRvUHJpbnQgPSB0cnVlOwoJd2luID0gd2luIHx8IG51bGw7CgoJdGhpcy5fb3BlblBkZihvcHRpb25zLCB3aW4pOwp9OwoKRG9jdW1lbnQucHJvdG90eXBlLmRvd25sb2FkID0gZnVuY3Rpb24gKGRlZmF1bHRGaWxlTmFtZSwgY2IsIG9wdGlvbnMpIHsKCWlmIChpc0Z1bmN0aW9uKGRlZmF1bHRGaWxlTmFtZSkpIHsKCQljYiA9IGRlZmF1bHRGaWxlTmFtZTsKCQlkZWZhdWx0RmlsZU5hbWUgPSBudWxsOwoJfQoKCWRlZmF1bHRGaWxlTmFtZSA9IGRlZmF1bHRGaWxlTmFtZSB8fCAnZmlsZS5wZGYnOwoJdGhpcy5nZXRCbG9iKGZ1bmN0aW9uIChyZXN1bHQpIHsKCQlzYXZlQXMocmVzdWx0LCBkZWZhdWx0RmlsZU5hbWUpOwoKCQlpZiAoaXNGdW5jdGlvbihjYikpIHsKCQkJY2IoKTsKCQl9Cgl9LCBvcHRpb25zKTsKfTsKCkRvY3VtZW50LnByb3RvdHlwZS5nZXRCYXNlNjQgPSBmdW5jdGlvbiAoY2IsIG9wdGlvbnMpIHsKCWlmICghY2IpIHsKCQl0aHJvdyAnZ2V0QmFzZTY0IGlzIGFuIGFzeW5jIG1ldGhvZCBhbmQgbmVlZHMgYSBjYWxsYmFjayBhcmd1bWVudCc7Cgl9Cgl0aGlzLmdldEJ1ZmZlcihmdW5jdGlvbiAoYnVmZmVyKSB7CgkJY2IoYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSk7Cgl9LCBvcHRpb25zKTsKfTsKCkRvY3VtZW50LnByb3RvdHlwZS5nZXREYXRhVXJsID0gZnVuY3Rpb24gKGNiLCBvcHRpb25zKSB7CglpZiAoIWNiKSB7CgkJdGhyb3cgJ2dldERhdGFVcmwgaXMgYW4gYXN5bmMgbWV0aG9kIGFuZCBuZWVkcyBhIGNhbGxiYWNrIGFyZ3VtZW50JzsKCX0KCXRoaXMuZ2V0QnVmZmVyKGZ1bmN0aW9uIChidWZmZXIpIHsKCQljYignZGF0YTphcHBsaWNhdGlvbi9wZGY7YmFzZTY0LCcgKyBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpKTsKCX0sIG9wdGlvbnMpOwp9OwoKRG9jdW1lbnQucHJvdG90eXBlLmdldEJsb2IgPSBmdW5jdGlvbiAoY2IsIG9wdGlvbnMpIHsKCWlmICghY2IpIHsKCQl0aHJvdyAnZ2V0QmxvYiBpcyBhbiBhc3luYyBtZXRob2QgYW5kIG5lZWRzIGEgY2FsbGJhY2sgYXJndW1lbnQnOwoJfQoJdmFyIHRoYXQgPSB0aGlzOwoJdGhpcy5nZXRCdWZmZXIoZnVuY3Rpb24gKHJlc3VsdCkgewoJCXZhciBibG9iID0gdGhhdC5fYnVmZmVyVG9CbG9iKHJlc3VsdCk7CgkJY2IoYmxvYik7Cgl9LCBvcHRpb25zKTsKfTsKCkRvY3VtZW50LnByb3RvdHlwZS5nZXRCdWZmZXIgPSBmdW5jdGlvbiAoY2IsIG9wdGlvbnMpIHsKCWlmICghY2IpIHsKCQl0aHJvdyAnZ2V0QnVmZmVyIGlzIGFuIGFzeW5jIG1ldGhvZCBhbmQgbmVlZHMgYSBjYWxsYmFjayBhcmd1bWVudCc7Cgl9Cgl0aGlzLl9jcmVhdGVEb2Mob3B0aW9ucywgZnVuY3Rpb24gKGJ1ZmZlcikgewoJCWNiKGJ1ZmZlcik7Cgl9KTsKfTsKCm1vZHVsZS5leHBvcnRzID0gewoJY3JlYXRlUGRmOiBmdW5jdGlvbiAoZG9jRGVmaW5pdGlvbikgewoJCWlmICghY2FuQ3JlYXRlUGRmKCkpIHsKCQkJdGhyb3cgJ1lvdXIgYnJvd3NlciBkb2VzIG5vdCBwcm92aWRlIHRoZSBsZXZlbCBvZiBzdXBwb3J0IG5lZWRlZCc7CgkJfQoJCXJldHVybiBuZXcgRG9jdW1lbnQoZG9jRGVmaW5pdGlvbiwgZ2xvYmFsLnBkZk1ha2UudGFibGVMYXlvdXRzLCBnbG9iYWwucGRmTWFrZS5mb250cywgZ2xvYmFsLnBkZk1ha2UudmZzKTsKCX0KfTsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpLkJ1ZmZlciwgX193ZWJwYWNrX3JlcXVpcmVfXyg3KSkpCgovKioqLyB9KSwKLyogMTI0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgpleHBvcnRzLmJ5dGVMZW5ndGggPSBieXRlTGVuZ3RoCmV4cG9ydHMudG9CeXRlQXJyYXkgPSB0b0J5dGVBcnJheQpleHBvcnRzLmZyb21CeXRlQXJyYXkgPSBmcm9tQnl0ZUFycmF5Cgp2YXIgbG9va3VwID0gW10KdmFyIHJldkxvb2t1cCA9IFtdCnZhciBBcnIgPSB0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcgPyBVaW50OEFycmF5IDogQXJyYXkKCnZhciBjb2RlID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8nCmZvciAodmFyIGkgPSAwLCBsZW4gPSBjb2RlLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7CiAgbG9va3VwW2ldID0gY29kZVtpXQogIHJldkxvb2t1cFtjb2RlLmNoYXJDb2RlQXQoaSldID0gaQp9CgovLyBTdXBwb3J0IGRlY29kaW5nIFVSTC1zYWZlIGJhc2U2NCBzdHJpbmdzLCBhcyBOb2RlLmpzIGRvZXMuCi8vIFNlZTogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmFzZTY0I1VSTF9hcHBsaWNhdGlvbnMKcmV2TG9va3VwWyctJy5jaGFyQ29kZUF0KDApXSA9IDYyCnJldkxvb2t1cFsnXycuY2hhckNvZGVBdCgwKV0gPSA2MwoKZnVuY3Rpb24gcGxhY2VIb2xkZXJzQ291bnQgKGI2NCkgewogIHZhciBsZW4gPSBiNjQubGVuZ3RoCiAgaWYgKGxlbiAlIDQgPiAwKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKQogIH0KCiAgLy8gdGhlIG51bWJlciBvZiBlcXVhbCBzaWducyAocGxhY2UgaG9sZGVycykKICAvLyBpZiB0aGVyZSBhcmUgdHdvIHBsYWNlaG9sZGVycywgdGhhbiB0aGUgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIGl0CiAgLy8gcmVwcmVzZW50IG9uZSBieXRlCiAgLy8gaWYgdGhlcmUgaXMgb25seSBvbmUsIHRoZW4gdGhlIHRocmVlIGNoYXJhY3RlcnMgYmVmb3JlIGl0IHJlcHJlc2VudCAyIGJ5dGVzCiAgLy8gdGhpcyBpcyBqdXN0IGEgY2hlYXAgaGFjayB0byBub3QgZG8gaW5kZXhPZiB0d2ljZQogIHJldHVybiBiNjRbbGVuIC0gMl0gPT09ICc9JyA/IDIgOiBiNjRbbGVuIC0gMV0gPT09ICc9JyA/IDEgOiAwCn0KCmZ1bmN0aW9uIGJ5dGVMZW5ndGggKGI2NCkgewogIC8vIGJhc2U2NCBpcyA0LzMgKyB1cCB0byB0d28gY2hhcmFjdGVycyBvZiB0aGUgb3JpZ2luYWwgZGF0YQogIHJldHVybiAoYjY0Lmxlbmd0aCAqIDMgLyA0KSAtIHBsYWNlSG9sZGVyc0NvdW50KGI2NCkKfQoKZnVuY3Rpb24gdG9CeXRlQXJyYXkgKGI2NCkgewogIHZhciBpLCBsLCB0bXAsIHBsYWNlSG9sZGVycywgYXJyCiAgdmFyIGxlbiA9IGI2NC5sZW5ndGgKICBwbGFjZUhvbGRlcnMgPSBwbGFjZUhvbGRlcnNDb3VudChiNjQpCgogIGFyciA9IG5ldyBBcnIoKGxlbiAqIDMgLyA0KSAtIHBsYWNlSG9sZGVycykKCiAgLy8gaWYgdGhlcmUgYXJlIHBsYWNlaG9sZGVycywgb25seSBnZXQgdXAgdG8gdGhlIGxhc3QgY29tcGxldGUgNCBjaGFycwogIGwgPSBwbGFjZUhvbGRlcnMgPiAwID8gbGVuIC0gNCA6IGxlbgoKICB2YXIgTCA9IDAKCiAgZm9yIChpID0gMDsgaSA8IGw7IGkgKz0gNCkgewogICAgdG1wID0gKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpKV0gPDwgMTgpIHwgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMSldIDw8IDEyKSB8IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDIpXSA8PCA2KSB8IHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMyldCiAgICBhcnJbTCsrXSA9ICh0bXAgPj4gMTYpICYgMHhGRgogICAgYXJyW0wrK10gPSAodG1wID4+IDgpICYgMHhGRgogICAgYXJyW0wrK10gPSB0bXAgJiAweEZGCiAgfQoKICBpZiAocGxhY2VIb2xkZXJzID09PSAyKSB7CiAgICB0bXAgPSAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAyKSB8IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA+PiA0KQogICAgYXJyW0wrK10gPSB0bXAgJiAweEZGCiAgfSBlbHNlIGlmIChwbGFjZUhvbGRlcnMgPT09IDEpIHsKICAgIHRtcCA9IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDEwKSB8IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDEpXSA8PCA0KSB8IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSArIDIpXSA+PiAyKQogICAgYXJyW0wrK10gPSAodG1wID4+IDgpICYgMHhGRgogICAgYXJyW0wrK10gPSB0bXAgJiAweEZGCiAgfQoKICByZXR1cm4gYXJyCn0KCmZ1bmN0aW9uIHRyaXBsZXRUb0Jhc2U2NCAobnVtKSB7CiAgcmV0dXJuIGxvb2t1cFtudW0gPj4gMTggJiAweDNGXSArIGxvb2t1cFtudW0gPj4gMTIgJiAweDNGXSArIGxvb2t1cFtudW0gPj4gNiAmIDB4M0ZdICsgbG9va3VwW251bSAmIDB4M0ZdCn0KCmZ1bmN0aW9uIGVuY29kZUNodW5rICh1aW50OCwgc3RhcnQsIGVuZCkgewogIHZhciB0bXAKICB2YXIgb3V0cHV0ID0gW10KICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkgKz0gMykgewogICAgdG1wID0gKCh1aW50OFtpXSA8PCAxNikgJiAweEZGMDAwMCkgKyAoKHVpbnQ4W2kgKyAxXSA8PCA4KSAmIDB4RkYwMCkgKyAodWludDhbaSArIDJdICYgMHhGRikKICAgIG91dHB1dC5wdXNoKHRyaXBsZXRUb0Jhc2U2NCh0bXApKQogIH0KICByZXR1cm4gb3V0cHV0LmpvaW4oJycpCn0KCmZ1bmN0aW9uIGZyb21CeXRlQXJyYXkgKHVpbnQ4KSB7CiAgdmFyIHRtcAogIHZhciBsZW4gPSB1aW50OC5sZW5ndGgKICB2YXIgZXh0cmFCeXRlcyA9IGxlbiAlIDMgLy8gaWYgd2UgaGF2ZSAxIGJ5dGUgbGVmdCwgcGFkIDIgYnl0ZXMKICB2YXIgb3V0cHV0ID0gJycKICB2YXIgcGFydHMgPSBbXQogIHZhciBtYXhDaHVua0xlbmd0aCA9IDE2MzgzIC8vIG11c3QgYmUgbXVsdGlwbGUgb2YgMwoKICAvLyBnbyB0aHJvdWdoIHRoZSBhcnJheSBldmVyeSB0aHJlZSBieXRlcywgd2UnbGwgZGVhbCB3aXRoIHRyYWlsaW5nIHN0dWZmIGxhdGVyCiAgZm9yICh2YXIgaSA9IDAsIGxlbjIgPSBsZW4gLSBleHRyYUJ5dGVzOyBpIDwgbGVuMjsgaSArPSBtYXhDaHVua0xlbmd0aCkgewogICAgcGFydHMucHVzaChlbmNvZGVDaHVuayh1aW50OCwgaSwgKGkgKyBtYXhDaHVua0xlbmd0aCkgPiBsZW4yID8gbGVuMiA6IChpICsgbWF4Q2h1bmtMZW5ndGgpKSkKICB9CgogIC8vIHBhZCB0aGUgZW5kIHdpdGggemVyb3MsIGJ1dCBtYWtlIHN1cmUgdG8gbm90IGZvcmdldCB0aGUgZXh0cmEgYnl0ZXMKICBpZiAoZXh0cmFCeXRlcyA9PT0gMSkgewogICAgdG1wID0gdWludDhbbGVuIC0gMV0KICAgIG91dHB1dCArPSBsb29rdXBbdG1wID4+IDJdCiAgICBvdXRwdXQgKz0gbG9va3VwWyh0bXAgPDwgNCkgJiAweDNGXQogICAgb3V0cHV0ICs9ICc9PScKICB9IGVsc2UgaWYgKGV4dHJhQnl0ZXMgPT09IDIpIHsKICAgIHRtcCA9ICh1aW50OFtsZW4gLSAyXSA8PCA4KSArICh1aW50OFtsZW4gLSAxXSkKICAgIG91dHB1dCArPSBsb29rdXBbdG1wID4+IDEwXQogICAgb3V0cHV0ICs9IGxvb2t1cFsodG1wID4+IDQpICYgMHgzRl0KICAgIG91dHB1dCArPSBsb29rdXBbKHRtcCA8PCAyKSAmIDB4M0ZdCiAgICBvdXRwdXQgKz0gJz0nCiAgfQoKICBwYXJ0cy5wdXNoKG91dHB1dCkKCiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpCn0KCgovKioqLyB9KSwKLyogMTI1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCmV4cG9ydHMucmVhZCA9IGZ1bmN0aW9uIChidWZmZXIsIG9mZnNldCwgaXNMRSwgbUxlbiwgbkJ5dGVzKSB7CiAgdmFyIGUsIG0KICB2YXIgZUxlbiA9IG5CeXRlcyAqIDggLSBtTGVuIC0gMQogIHZhciBlTWF4ID0gKDEgPDwgZUxlbikgLSAxCiAgdmFyIGVCaWFzID0gZU1heCA+PiAxCiAgdmFyIG5CaXRzID0gLTcKICB2YXIgaSA9IGlzTEUgPyAobkJ5dGVzIC0gMSkgOiAwCiAgdmFyIGQgPSBpc0xFID8gLTEgOiAxCiAgdmFyIHMgPSBidWZmZXJbb2Zmc2V0ICsgaV0KCiAgaSArPSBkCgogIGUgPSBzICYgKCgxIDw8ICgtbkJpdHMpKSAtIDEpCiAgcyA+Pj0gKC1uQml0cykKICBuQml0cyArPSBlTGVuCiAgZm9yICg7IG5CaXRzID4gMDsgZSA9IGUgKiAyNTYgKyBidWZmZXJbb2Zmc2V0ICsgaV0sIGkgKz0gZCwgbkJpdHMgLT0gOCkge30KCiAgbSA9IGUgJiAoKDEgPDwgKC1uQml0cykpIC0gMSkKICBlID4+PSAoLW5CaXRzKQogIG5CaXRzICs9IG1MZW4KICBmb3IgKDsgbkJpdHMgPiAwOyBtID0gbSAqIDI1NiArIGJ1ZmZlcltvZmZzZXQgKyBpXSwgaSArPSBkLCBuQml0cyAtPSA4KSB7fQoKICBpZiAoZSA9PT0gMCkgewogICAgZSA9IDEgLSBlQmlhcwogIH0gZWxzZSBpZiAoZSA9PT0gZU1heCkgewogICAgcmV0dXJuIG0gPyBOYU4gOiAoKHMgPyAtMSA6IDEpICogSW5maW5pdHkpCiAgfSBlbHNlIHsKICAgIG0gPSBtICsgTWF0aC5wb3coMiwgbUxlbikKICAgIGUgPSBlIC0gZUJpYXMKICB9CiAgcmV0dXJuIChzID8gLTEgOiAxKSAqIG0gKiBNYXRoLnBvdygyLCBlIC0gbUxlbikKfQoKZXhwb3J0cy53cml0ZSA9IGZ1bmN0aW9uIChidWZmZXIsIHZhbHVlLCBvZmZzZXQsIGlzTEUsIG1MZW4sIG5CeXRlcykgewogIHZhciBlLCBtLCBjCiAgdmFyIGVMZW4gPSBuQnl0ZXMgKiA4IC0gbUxlbiAtIDEKICB2YXIgZU1heCA9ICgxIDw8IGVMZW4pIC0gMQogIHZhciBlQmlhcyA9IGVNYXggPj4gMQogIHZhciBydCA9IChtTGVuID09PSAyMyA/IE1hdGgucG93KDIsIC0yNCkgLSBNYXRoLnBvdygyLCAtNzcpIDogMCkKICB2YXIgaSA9IGlzTEUgPyAwIDogKG5CeXRlcyAtIDEpCiAgdmFyIGQgPSBpc0xFID8gMSA6IC0xCiAgdmFyIHMgPSB2YWx1ZSA8IDAgfHwgKHZhbHVlID09PSAwICYmIDEgLyB2YWx1ZSA8IDApID8gMSA6IDAKCiAgdmFsdWUgPSBNYXRoLmFicyh2YWx1ZSkKCiAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA9PT0gSW5maW5pdHkpIHsKICAgIG0gPSBpc05hTih2YWx1ZSkgPyAxIDogMAogICAgZSA9IGVNYXgKICB9IGVsc2UgewogICAgZSA9IE1hdGguZmxvb3IoTWF0aC5sb2codmFsdWUpIC8gTWF0aC5MTjIpCiAgICBpZiAodmFsdWUgKiAoYyA9IE1hdGgucG93KDIsIC1lKSkgPCAxKSB7CiAgICAgIGUtLQogICAgICBjICo9IDIKICAgIH0KICAgIGlmIChlICsgZUJpYXMgPj0gMSkgewogICAgICB2YWx1ZSArPSBydCAvIGMKICAgIH0gZWxzZSB7CiAgICAgIHZhbHVlICs9IHJ0ICogTWF0aC5wb3coMiwgMSAtIGVCaWFzKQogICAgfQogICAgaWYgKHZhbHVlICogYyA+PSAyKSB7CiAgICAgIGUrKwogICAgICBjIC89IDIKICAgIH0KCiAgICBpZiAoZSArIGVCaWFzID49IGVNYXgpIHsKICAgICAgbSA9IDAKICAgICAgZSA9IGVNYXgKICAgIH0gZWxzZSBpZiAoZSArIGVCaWFzID49IDEpIHsKICAgICAgbSA9ICh2YWx1ZSAqIGMgLSAxKSAqIE1hdGgucG93KDIsIG1MZW4pCiAgICAgIGUgPSBlICsgZUJpYXMKICAgIH0gZWxzZSB7CiAgICAgIG0gPSB2YWx1ZSAqIE1hdGgucG93KDIsIGVCaWFzIC0gMSkgKiBNYXRoLnBvdygyLCBtTGVuKQogICAgICBlID0gMAogICAgfQogIH0KCiAgZm9yICg7IG1MZW4gPj0gODsgYnVmZmVyW29mZnNldCArIGldID0gbSAmIDB4ZmYsIGkgKz0gZCwgbSAvPSAyNTYsIG1MZW4gLT0gOCkge30KCiAgZSA9IChlIDw8IG1MZW4pIHwgbQogIGVMZW4gKz0gbUxlbgogIGZvciAoOyBlTGVuID4gMDsgYnVmZmVyW29mZnNldCArIGldID0gZSAmIDB4ZmYsIGkgKz0gZCwgZSAvPSAyNTYsIGVMZW4gLT0gOCkge30KCiAgYnVmZmVyW29mZnNldCArIGkgLSBkXSB8PSBzICogMTI4Cn0KCgovKioqLyB9KSwKLyogMTI2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFsiZXJyb3IiLCB7ImFyZ3MiOiAibm9uZSJ9XSovCgoKdmFyIEZvbnRQcm92aWRlciA9IF9fd2VicGFja19yZXF1aXJlX18oMTI3KTsKdmFyIExheW91dEJ1aWxkZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyOCk7CnZhciBQZGZLaXQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzOCk7CnZhciBzaXplcyA9IF9fd2VicGFja19yZXF1aXJlX18oMzAzKTsKdmFyIEltYWdlTWVhc3VyZSA9IF9fd2VicGFja19yZXF1aXJlX18oMzA0KTsKdmFyIHRleHREZWNvcmF0b3IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwNSk7CnZhciBUZXh0VG9vbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQyKTsKdmFyIGlzRnVuY3Rpb24gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzRnVuY3Rpb247CnZhciBpc1N0cmluZyA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNTdHJpbmc7CnZhciBpc051bWJlciA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNOdW1iZXI7CnZhciBpc0Jvb2xlYW4gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzQm9vbGVhbjsKdmFyIGlzQXJyYXkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzQXJyYXk7CgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCi8vIFBkZlByaW50ZXIKCi8qKgogKiBAY2xhc3MgQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBhIFBkZlByaW50ZXIgd2hpY2ggdHVybnMgZG9jdW1lbnQgZGVmaW5pdGlvbiBpbnRvIGEgcGRmCiAqCiAqIEBwYXJhbSB7T2JqZWN0fSBmb250RGVzY3JpcHRvcnMgZm9udCBkZWZpbml0aW9uIGRpY3Rpb25hcnkKICoKICogQGV4YW1wbGUKICogdmFyIGZvbnREZXNjcmlwdG9ycyA9IHsKICoJUm9ib3RvOiB7CiAqCQlub3JtYWw6ICdmb250cy9Sb2JvdG8tUmVndWxhci50dGYnLAogKgkJYm9sZDogJ2ZvbnRzL1JvYm90by1NZWRpdW0udHRmJywKICoJCWl0YWxpY3M6ICdmb250cy9Sb2JvdG8tSXRhbGljLnR0ZicsCiAqCQlib2xkaXRhbGljczogJ2ZvbnRzL1JvYm90by1NZWRpdW1JdGFsaWMudHRmJwogKgl9CiAqIH07CiAqCiAqIHZhciBwcmludGVyID0gbmV3IFBkZlByaW50ZXIoZm9udERlc2NyaXB0b3JzKTsKICovCmZ1bmN0aW9uIFBkZlByaW50ZXIoZm9udERlc2NyaXB0b3JzKSB7Cgl0aGlzLmZvbnREZXNjcmlwdG9ycyA9IGZvbnREZXNjcmlwdG9yczsKfQoKLyoqCiAqIEV4ZWN1dGVzIGxheW91dCBlbmdpbmUgZm9yIHRoZSBzcGVjaWZpZWQgZG9jdW1lbnQgYW5kIHJlbmRlcnMgaXQgaW50byBhIHBkZmtpdCBkb2N1bWVudAogKiByZWFkeSB0byBiZSBzYXZlZC4KICoKICogQHBhcmFtIHtPYmplY3R9IGRvY0RlZmluaXRpb24gZG9jdW1lbnQgZGVmaW5pdGlvbgogKiBAcGFyYW0ge09iamVjdH0gZG9jRGVmaW5pdGlvbi5jb250ZW50IGFuIGFycmF5IGRlc2NyaWJpbmcgdGhlIHBkZiBzdHJ1Y3R1cmUgKGZvciBtb3JlIGluZm9ybWF0aW9uIHRha2UgYSBsb29rIGF0IHRoZSBleGFtcGxlcyBpbiB0aGUgL2V4YW1wbGVzIGZvbGRlcikKICogQHBhcmFtIHtPYmplY3R9IFtkb2NEZWZpbml0aW9uLmRlZmF1bHRTdHlsZV0gZGVmYXVsdCAoaW1wbGljaXQpIHN0eWxlIGRlZmluaXRpb24KICogQHBhcmFtIHtPYmplY3R9IFtkb2NEZWZpbml0aW9uLnN0eWxlc10gZGljdGlvbmFyeSBkZWZpbmluZyBhbGwgc3R5bGVzIHdoaWNoIGNhbiBiZSB1c2VkIGluIHRoZSBkb2N1bWVudAogKiBAcGFyYW0ge09iamVjdH0gW2RvY0RlZmluaXRpb24ucGFnZVNpemVdIHBhZ2Ugc2l6ZSAocGRma2l0IHVuaXRzLCBBNCBkaW1lbnNpb25zIGJ5IGRlZmF1bHQpCiAqIEBwYXJhbSB7TnVtYmVyfSBkb2NEZWZpbml0aW9uLnBhZ2VTaXplLndpZHRoIHdpZHRoCiAqIEBwYXJhbSB7TnVtYmVyfSBkb2NEZWZpbml0aW9uLnBhZ2VTaXplLmhlaWdodCBoZWlnaHQKICogQHBhcmFtIHtPYmplY3R9IFtkb2NEZWZpbml0aW9uLnBhZ2VNYXJnaW5zXSBwYWdlIG1hcmdpbnMgKHBkZmtpdCB1bml0cykKICogQHBhcmFtIHtOdW1iZXJ9IGRvY0RlZmluaXRpb24ubWF4UGFnZXNOdW1iZXIgbWF4aW11bSBudW1iZXIgb2YgcGFnZXMgdG8gcmVuZGVyCiAqCiAqIEBleGFtcGxlCiAqCiAqIHZhciBkb2NEZWZpbml0aW9uID0gewogKiAJaW5mbzogewogKgkJdGl0bGU6ICdhd2Vzb21lIERvY3VtZW50JywKICoJCWF1dGhvcjogJ2pvaG4gZG9lJywKICoJCXN1YmplY3Q6ICdzdWJqZWN0IG9mIGRvY3VtZW50JywKICoJCWtleXdvcmRzOiAna2V5d29yZHMgZm9yIGRvY3VtZW50JywKICogCX0sCiAqCWNvbnRlbnQ6IFsKICoJCSdGaXJzdCBwYXJhZ3JhcGgnLAogKgkJJ1NlY29uZCBwYXJhZ3JhcGgsIHRoaXMgdGltZSBhIGxpdHRsZSBiaXQgbG9uZ2VyJywKICoJCXsgdGV4dDogJ1RoaXJkIHBhcmFncmFwaCwgc2xpZ2h0bHkgYmlnZ2VyIGZvbnQgc2l6ZScsIGZvbnRTaXplOiAyMCB9LAogKgkJeyB0ZXh0OiAnQW5vdGhlciBwYXJhZ3JhcGggdXNpbmcgYSBuYW1lZCBzdHlsZScsIHN0eWxlOiAnaGVhZGVyJyB9LAogKgkJeyB0ZXh0OiBbJ3BsYXlpbmcgd2l0aCAnLCAnaW5saW5lcycgXSB9LAogKgkJeyB0ZXh0OiBbJ2FuZCAnLCB7IHRleHQ6ICdyZXN0eWxpbmcgJywgYm9sZDogdHJ1ZSB9LCAndGhlbSddIH0sCiAqCV0sCiAqCXN0eWxlczogewogKgkJaGVhZGVyOiB7IGZvbnRTaXplOiAzMCwgYm9sZDogdHJ1ZSB9CiAqCX0KICogfQogKgogKiB2YXIgcGRmS2l0RG9jID0gcHJpbnRlci5jcmVhdGVQZGZLaXREb2N1bWVudChkb2NEZWZpbml0aW9uKTsKICoKICogcGRmS2l0RG9jLnBpcGUoZnMuY3JlYXRlV3JpdGVTdHJlYW0oJ3NhbXBsZS5wZGYnKSk7CiAqIHBkZktpdERvYy5lbmQoKTsKICoKICogQHJldHVybiB7T2JqZWN0fSBhIHBkZktpdCBkb2N1bWVudCBvYmplY3Qgd2hpY2ggY2FuIGJlIHNhdmVkIG9yIGVuY29kZSB0byBkYXRhLXVybAogKi8KUGRmUHJpbnRlci5wcm90b3R5cGUuY3JlYXRlUGRmS2l0RG9jdW1lbnQgPSBmdW5jdGlvbiAoZG9jRGVmaW5pdGlvbiwgb3B0aW9ucykgewoJb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CgoJdmFyIHBhZ2VTaXplID0gZml4UGFnZVNpemUoZG9jRGVmaW5pdGlvbi5wYWdlU2l6ZSwgZG9jRGVmaW5pdGlvbi5wYWdlT3JpZW50YXRpb24pOwoJdmFyIGNvbXByZXNzUGRmID0gaXNCb29sZWFuKGRvY0RlZmluaXRpb24uY29tcHJlc3MpID8gZG9jRGVmaW5pdGlvbi5jb21wcmVzcyA6IHRydWU7CgoJdGhpcy5wZGZLaXREb2MgPSBuZXcgUGRmS2l0KHtzaXplOiBbcGFnZVNpemUud2lkdGgsIHBhZ2VTaXplLmhlaWdodF0sIGF1dG9GaXJzdFBhZ2U6IGZhbHNlLCBjb21wcmVzczogY29tcHJlc3NQZGZ9KTsKCXNldE1ldGFkYXRhKGRvY0RlZmluaXRpb24sIHRoaXMucGRmS2l0RG9jKTsKCgl0aGlzLmZvbnRQcm92aWRlciA9IG5ldyBGb250UHJvdmlkZXIodGhpcy5mb250RGVzY3JpcHRvcnMsIHRoaXMucGRmS2l0RG9jKTsKCglkb2NEZWZpbml0aW9uLmltYWdlcyA9IGRvY0RlZmluaXRpb24uaW1hZ2VzIHx8IHt9OwoKCXZhciBidWlsZGVyID0gbmV3IExheW91dEJ1aWxkZXIocGFnZVNpemUsIGZpeFBhZ2VNYXJnaW5zKGRvY0RlZmluaXRpb24ucGFnZU1hcmdpbnMgfHwgNDApLCBuZXcgSW1hZ2VNZWFzdXJlKHRoaXMucGRmS2l0RG9jLCBkb2NEZWZpbml0aW9uLmltYWdlcykpOwoKCXJlZ2lzdGVyRGVmYXVsdFRhYmxlTGF5b3V0cyhidWlsZGVyKTsKCWlmIChvcHRpb25zLnRhYmxlTGF5b3V0cykgewoJCWJ1aWxkZXIucmVnaXN0ZXJUYWJsZUxheW91dHMob3B0aW9ucy50YWJsZUxheW91dHMpOwoJfQoKCXZhciBwYWdlcyA9IGJ1aWxkZXIubGF5b3V0RG9jdW1lbnQoZG9jRGVmaW5pdGlvbi5jb250ZW50LCB0aGlzLmZvbnRQcm92aWRlciwgZG9jRGVmaW5pdGlvbi5zdHlsZXMgfHwge30sIGRvY0RlZmluaXRpb24uZGVmYXVsdFN0eWxlIHx8IHtmb250U2l6ZTogMTIsIGZvbnQ6ICdSb2JvdG8nfSwgZG9jRGVmaW5pdGlvbi5iYWNrZ3JvdW5kLCBkb2NEZWZpbml0aW9uLmhlYWRlciwgZG9jRGVmaW5pdGlvbi5mb290ZXIsIGRvY0RlZmluaXRpb24uaW1hZ2VzLCBkb2NEZWZpbml0aW9uLndhdGVybWFyaywgZG9jRGVmaW5pdGlvbi5wYWdlQnJlYWtCZWZvcmUpOwoJdmFyIG1heE51bWJlclBhZ2VzID0gZG9jRGVmaW5pdGlvbi5tYXhQYWdlc051bWJlciB8fCAtMTsKCWlmIChpc051bWJlcihtYXhOdW1iZXJQYWdlcykgJiYgbWF4TnVtYmVyUGFnZXMgPiAtMSkgewoJCXBhZ2VzID0gcGFnZXMuc2xpY2UoMCwgbWF4TnVtYmVyUGFnZXMpOwoJfQoKCS8vIGlmIHBhZ2VTaXplLmhlaWdodCBpcyBzZXQgdG8gSW5maW5pdHksIGNhbGN1bGF0ZSB0aGUgYWN0dWFsIGhlaWdodCBvZiB0aGUgcGFnZSB0aGF0CgkvLyB3YXMgbGFpZCBvdXQgdXNpbmcgdGhlIGhlaWdodCBvZiBlYWNoIG9mIHRoZSBpdGVtcyBpbiB0aGUgcGFnZS4KCWlmIChwYWdlU2l6ZS5oZWlnaHQgPT09IEluZmluaXR5KSB7CgkJdmFyIHBhZ2VIZWlnaHQgPSBjYWxjdWxhdGVQYWdlSGVpZ2h0KHBhZ2VzLCBkb2NEZWZpbml0aW9uLnBhZ2VNYXJnaW5zKTsKCQl0aGlzLnBkZktpdERvYy5vcHRpb25zLnNpemUgPSBbcGFnZVNpemUud2lkdGgsIHBhZ2VIZWlnaHRdOwoJfQoKCXJlbmRlclBhZ2VzKHBhZ2VzLCB0aGlzLmZvbnRQcm92aWRlciwgdGhpcy5wZGZLaXREb2MsIG9wdGlvbnMucHJvZ3Jlc3NDYWxsYmFjayk7CgoJaWYgKG9wdGlvbnMuYXV0b1ByaW50KSB7CgkJdmFyIHByaW50QWN0aW9uUmVmID0gdGhpcy5wZGZLaXREb2MucmVmKHsKCQkJVHlwZTogJ0FjdGlvbicsCgkJCVM6ICdOYW1lZCcsCgkJCU46ICdQcmludCcKCQl9KTsKCQl0aGlzLnBkZktpdERvYy5fcm9vdC5kYXRhLk9wZW5BY3Rpb24gPSBwcmludEFjdGlvblJlZjsKCQlwcmludEFjdGlvblJlZi5lbmQoKTsKCX0KCXJldHVybiB0aGlzLnBkZktpdERvYzsKfTsKCmZ1bmN0aW9uIHNldE1ldGFkYXRhKGRvY0RlZmluaXRpb24sIHBkZktpdERvYykgewoJLy8gUERGIHN0YW5kYXJkIGhhcyB0aGVzZSBwcm9wZXJ0aWVzIHJlc2VydmVkOiBUaXRsZSwgQXV0aG9yLCBTdWJqZWN0LCBLZXl3b3JkcywKCS8vIENyZWF0b3IsIFByb2R1Y2VyLCBDcmVhdGlvbkRhdGUsIE1vZERhdGUsIFRyYXBwZWQuCgkvLyBUbyBrZWVwIHRoZSBwZGZtYWtlIGFwaSBjb25zaXN0ZW50LCB0aGUgaW5mbyBmaWVsZCBhcmUgZGVmaW5lZCBsb3dlcmNhc2UuCgkvLyBDdXN0b20gcHJvcGVydGllcyBkb24ndCBjb250YWluIGEgc3BhY2UuCglmdW5jdGlvbiBzdGFuZGFyZGl6ZVByb3BlcnR5S2V5KGtleSkgewoJCXZhciBzdGFuZGFyZFByb3BlcnRpZXMgPSBbJ1RpdGxlJywgJ0F1dGhvcicsICdTdWJqZWN0JywgJ0tleXdvcmRzJywKCQkJJ0NyZWF0b3InLCAnUHJvZHVjZXInLCAnQ3JlYXRpb25EYXRlJywgJ01vZERhdGUnLCAnVHJhcHBlZCddOwoJCXZhciBzdGFuZGFyZGl6ZWRLZXkgPSBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7CgkJaWYgKHN0YW5kYXJkUHJvcGVydGllcy5pbmRleE9mKHN0YW5kYXJkaXplZEtleSkgIT09IC0xKSB7CgkJCXJldHVybiBzdGFuZGFyZGl6ZWRLZXk7CgkJfQoKCQlyZXR1cm4ga2V5LnJlcGxhY2UoL1xzKy9nLCAnJyk7Cgl9CgoJcGRmS2l0RG9jLmluZm8uUHJvZHVjZXIgPSAncGRmbWFrZSc7CglwZGZLaXREb2MuaW5mby5DcmVhdG9yID0gJ3BkZm1ha2UnOwoKCWlmIChkb2NEZWZpbml0aW9uLmluZm8pIHsKCQlmb3IgKHZhciBrZXkgaW4gZG9jRGVmaW5pdGlvbi5pbmZvKSB7CgkJCXZhciB2YWx1ZSA9IGRvY0RlZmluaXRpb24uaW5mb1trZXldOwoJCQlpZiAodmFsdWUpIHsKCQkJCWtleSA9IHN0YW5kYXJkaXplUHJvcGVydHlLZXkoa2V5KTsKCQkJCXBkZktpdERvYy5pbmZvW2tleV0gPSB2YWx1ZTsKCQkJfQoJCX0KCX0KfQoKZnVuY3Rpb24gY2FsY3VsYXRlUGFnZUhlaWdodChwYWdlcywgbWFyZ2lucykgewoJZnVuY3Rpb24gZ2V0SXRlbUhlaWdodChpdGVtKSB7CgkJaWYgKGlzRnVuY3Rpb24oaXRlbS5pdGVtLmdldEhlaWdodCkpIHsKCQkJcmV0dXJuIGl0ZW0uaXRlbS5nZXRIZWlnaHQoKTsKCQl9IGVsc2UgaWYgKGl0ZW0uaXRlbS5faGVpZ2h0KSB7CgkJCXJldHVybiBpdGVtLml0ZW0uX2hlaWdodDsKCQl9IGVsc2UgewoJCQkvLyBUT0RPOiBhZGQgc3VwcG9ydCBmb3IgbmV4dCBpdGVtIHR5cGVzCgkJCXJldHVybiAwOwoJCX0KCX0KCgl2YXIgZml4ZWRNYXJnaW5zID0gZml4UGFnZU1hcmdpbnMobWFyZ2lucyB8fCA0MCk7Cgl2YXIgaGVpZ2h0ID0gZml4ZWRNYXJnaW5zLnRvcCArIGZpeGVkTWFyZ2lucy5ib3R0b207CglwYWdlcy5mb3JFYWNoKGZ1bmN0aW9uIChwYWdlKSB7CgkJcGFnZS5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CgkJCWhlaWdodCArPSBnZXRJdGVtSGVpZ2h0KGl0ZW0pOwoJCX0pOwoJfSk7CglyZXR1cm4gaGVpZ2h0Owp9CgpmdW5jdGlvbiBmaXhQYWdlU2l6ZShwYWdlU2l6ZSwgcGFnZU9yaWVudGF0aW9uKSB7CglmdW5jdGlvbiBpc05lZWRTd2FwUGFnZVNpemVzKHBhZ2VPcmllbnRhdGlvbikgewoJCWlmIChpc1N0cmluZyhwYWdlT3JpZW50YXRpb24pKSB7CgkJCXBhZ2VPcmllbnRhdGlvbiA9IHBhZ2VPcmllbnRhdGlvbi50b0xvd2VyQ2FzZSgpOwoJCQlyZXR1cm4gKChwYWdlT3JpZW50YXRpb24gPT09ICdwb3J0cmFpdCcpICYmIChzaXplLndpZHRoID4gc2l6ZS5oZWlnaHQpKSB8fAoJCQkJKChwYWdlT3JpZW50YXRpb24gPT09ICdsYW5kc2NhcGUnKSAmJiAoc2l6ZS53aWR0aCA8IHNpemUuaGVpZ2h0KSk7CgkJfQoJCXJldHVybiBmYWxzZTsKCX0KCgkvLyBpZiBwYWdlU2l6ZS5oZWlnaHQgaXMgc2V0IHRvIGF1dG8sIHNldCB0aGUgaGVpZ2h0IHRvIGluZmluaXR5IHNvIHRoZXJlIGFyZSBubyBwYWdlIGJyZWFrcy4KCWlmIChwYWdlU2l6ZSAmJiBwYWdlU2l6ZS5oZWlnaHQgPT09ICdhdXRvJykgewoJCXBhZ2VTaXplLmhlaWdodCA9IEluZmluaXR5OwoJfQoKCXZhciBzaXplID0gcGFnZVNpemUyd2lkdGhBbmRIZWlnaHQocGFnZVNpemUgfHwgJ0E0Jyk7CglpZiAoaXNOZWVkU3dhcFBhZ2VTaXplcyhwYWdlT3JpZW50YXRpb24pKSB7IC8vIHN3YXAgcGFnZSBzaXplcwoJCXNpemUgPSB7d2lkdGg6IHNpemUuaGVpZ2h0LCBoZWlnaHQ6IHNpemUud2lkdGh9OwoJfQoJc2l6ZS5vcmllbnRhdGlvbiA9IHNpemUud2lkdGggPiBzaXplLmhlaWdodCA/ICdsYW5kc2NhcGUnIDogJ3BvcnRyYWl0JzsKCXJldHVybiBzaXplOwp9CgpmdW5jdGlvbiBmaXhQYWdlTWFyZ2lucyhtYXJnaW4pIHsKCWlmICghbWFyZ2luKSB7CgkJcmV0dXJuIG51bGw7Cgl9CgoJaWYgKGlzTnVtYmVyKG1hcmdpbikpIHsKCQltYXJnaW4gPSB7bGVmdDogbWFyZ2luLCByaWdodDogbWFyZ2luLCB0b3A6IG1hcmdpbiwgYm90dG9tOiBtYXJnaW59OwoJfSBlbHNlIGlmIChpc0FycmF5KG1hcmdpbikpIHsKCQlpZiAobWFyZ2luLmxlbmd0aCA9PT0gMikgewoJCQltYXJnaW4gPSB7bGVmdDogbWFyZ2luWzBdLCB0b3A6IG1hcmdpblsxXSwgcmlnaHQ6IG1hcmdpblswXSwgYm90dG9tOiBtYXJnaW5bMV19OwoJCX0gZWxzZSBpZiAobWFyZ2luLmxlbmd0aCA9PT0gNCkgewoJCQltYXJnaW4gPSB7bGVmdDogbWFyZ2luWzBdLCB0b3A6IG1hcmdpblsxXSwgcmlnaHQ6IG1hcmdpblsyXSwgYm90dG9tOiBtYXJnaW5bM119OwoJCX0gZWxzZSB7CgkJCXRocm93ICdJbnZhbGlkIHBhZ2VNYXJnaW5zIGRlZmluaXRpb24nOwoJCX0KCX0KCglyZXR1cm4gbWFyZ2luOwp9CgpmdW5jdGlvbiByZWdpc3RlckRlZmF1bHRUYWJsZUxheW91dHMobGF5b3V0QnVpbGRlcikgewoJbGF5b3V0QnVpbGRlci5yZWdpc3RlclRhYmxlTGF5b3V0cyh7CgkJbm9Cb3JkZXJzOiB7CgkJCWhMaW5lV2lkdGg6IGZ1bmN0aW9uIChpKSB7CgkJCQlyZXR1cm4gMDsKCQkJfSwKCQkJdkxpbmVXaWR0aDogZnVuY3Rpb24gKGkpIHsKCQkJCXJldHVybiAwOwoJCQl9LAoJCQlwYWRkaW5nTGVmdDogZnVuY3Rpb24gKGkpIHsKCQkJCXJldHVybiBpICYmIDQgfHwgMDsKCQkJfSwKCQkJcGFkZGluZ1JpZ2h0OiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJcmV0dXJuIChpIDwgbm9kZS50YWJsZS53aWR0aHMubGVuZ3RoIC0gMSkgPyA0IDogMDsKCQkJfQoJCX0sCgkJaGVhZGVyTGluZU9ubHk6IHsKCQkJaExpbmVXaWR0aDogZnVuY3Rpb24gKGksIG5vZGUpIHsKCQkJCWlmIChpID09PSAwIHx8IGkgPT09IG5vZGUudGFibGUuYm9keS5sZW5ndGgpIHsKCQkJCQlyZXR1cm4gMDsKCQkJCX0KCQkJCXJldHVybiAoaSA9PT0gbm9kZS50YWJsZS5oZWFkZXJSb3dzKSA/IDIgOiAwOwoJCQl9LAoJCQl2TGluZVdpZHRoOiBmdW5jdGlvbiAoaSkgewoJCQkJcmV0dXJuIDA7CgkJCX0sCgkJCXBhZGRpbmdMZWZ0OiBmdW5jdGlvbiAoaSkgewoJCQkJcmV0dXJuIGkgPT09IDAgPyAwIDogODsKCQkJfSwKCQkJcGFkZGluZ1JpZ2h0OiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJcmV0dXJuIChpID09PSBub2RlLnRhYmxlLndpZHRocy5sZW5ndGggLSAxKSA/IDAgOiA4OwoJCQl9CgkJfSwKCQlsaWdodEhvcml6b250YWxMaW5lczogewoJCQloTGluZVdpZHRoOiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJaWYgKGkgPT09IDAgfHwgaSA9PT0gbm9kZS50YWJsZS5ib2R5Lmxlbmd0aCkgewoJCQkJCXJldHVybiAwOwoJCQkJfQoJCQkJcmV0dXJuIChpID09PSBub2RlLnRhYmxlLmhlYWRlclJvd3MpID8gMiA6IDE7CgkJCX0sCgkJCXZMaW5lV2lkdGg6IGZ1bmN0aW9uIChpKSB7CgkJCQlyZXR1cm4gMDsKCQkJfSwKCQkJaExpbmVDb2xvcjogZnVuY3Rpb24gKGkpIHsKCQkJCXJldHVybiBpID09PSAxID8gJ2JsYWNrJyA6ICcjYWFhJzsKCQkJfSwKCQkJcGFkZGluZ0xlZnQ6IGZ1bmN0aW9uIChpKSB7CgkJCQlyZXR1cm4gaSA9PT0gMCA/IDAgOiA4OwoJCQl9LAoJCQlwYWRkaW5nUmlnaHQ6IGZ1bmN0aW9uIChpLCBub2RlKSB7CgkJCQlyZXR1cm4gKGkgPT09IG5vZGUudGFibGUud2lkdGhzLmxlbmd0aCAtIDEpID8gMCA6IDg7CgkJCX0KCQl9Cgl9KTsKfQoKZnVuY3Rpb24gcGFnZVNpemUyd2lkdGhBbmRIZWlnaHQocGFnZVNpemUpIHsKCWlmIChpc1N0cmluZyhwYWdlU2l6ZSkpIHsKCQl2YXIgc2l6ZSA9IHNpemVzW3BhZ2VTaXplLnRvVXBwZXJDYXNlKCldOwoJCWlmICghc2l6ZSkgewoJCQl0aHJvdyAnUGFnZSBzaXplICcgKyBwYWdlU2l6ZSArICcgbm90IHJlY29nbml6ZWQnOwoJCX0KCQlyZXR1cm4ge3dpZHRoOiBzaXplWzBdLCBoZWlnaHQ6IHNpemVbMV19OwoJfQoKCXJldHVybiBwYWdlU2l6ZTsKfQoKZnVuY3Rpb24gdXBkYXRlUGFnZU9yaWVudGF0aW9uSW5PcHRpb25zKGN1cnJlbnRQYWdlLCBwZGZLaXREb2MpIHsKCXZhciBwcmV2aW91c1BhZ2VPcmllbnRhdGlvbiA9IHBkZktpdERvYy5vcHRpb25zLnNpemVbMF0gPiBwZGZLaXREb2Mub3B0aW9ucy5zaXplWzFdID8gJ2xhbmRzY2FwZScgOiAncG9ydHJhaXQnOwoKCWlmIChjdXJyZW50UGFnZS5wYWdlU2l6ZS5vcmllbnRhdGlvbiAhPT0gcHJldmlvdXNQYWdlT3JpZW50YXRpb24pIHsKCQl2YXIgd2lkdGggPSBwZGZLaXREb2Mub3B0aW9ucy5zaXplWzBdOwoJCXZhciBoZWlnaHQgPSBwZGZLaXREb2Mub3B0aW9ucy5zaXplWzFdOwoJCXBkZktpdERvYy5vcHRpb25zLnNpemUgPSBbaGVpZ2h0LCB3aWR0aF07Cgl9Cn0KCmZ1bmN0aW9uIHJlbmRlclBhZ2VzKHBhZ2VzLCBmb250UHJvdmlkZXIsIHBkZktpdERvYywgcHJvZ3Jlc3NDYWxsYmFjaykgewoJcGRmS2l0RG9jLl9wZGZNYWtlUGFnZXMgPSBwYWdlczsKCXBkZktpdERvYy5hZGRQYWdlKCk7CgoJdmFyIHRvdGFsSXRlbXMgPSAwOwoJaWYgKHByb2dyZXNzQ2FsbGJhY2spIHsKCQlwYWdlcy5mb3JFYWNoKGZ1bmN0aW9uIChwYWdlKSB7CgkJCXRvdGFsSXRlbXMgKz0gcGFnZS5pdGVtcy5sZW5ndGg7CgkJfSk7Cgl9CgoJdmFyIHJlbmRlcmVkSXRlbXMgPSAwOwoJcHJvZ3Jlc3NDYWxsYmFjayA9IHByb2dyZXNzQ2FsbGJhY2sgfHwgZnVuY3Rpb24gKCkge307CgoJZm9yICh2YXIgaSA9IDA7IGkgPCBwYWdlcy5sZW5ndGg7IGkrKykgewoJCWlmIChpID4gMCkgewoJCQl1cGRhdGVQYWdlT3JpZW50YXRpb25Jbk9wdGlvbnMocGFnZXNbaV0sIHBkZktpdERvYyk7CgkJCXBkZktpdERvYy5hZGRQYWdlKHBkZktpdERvYy5vcHRpb25zKTsKCQl9CgoJCXZhciBwYWdlID0gcGFnZXNbaV07CgkJZm9yICh2YXIgaWkgPSAwLCBpbCA9IHBhZ2UuaXRlbXMubGVuZ3RoOyBpaSA8IGlsOyBpaSsrKSB7CgkJCXZhciBpdGVtID0gcGFnZS5pdGVtc1tpaV07CgkJCXN3aXRjaCAoaXRlbS50eXBlKSB7CgkJCQljYXNlICd2ZWN0b3InOgoJCQkJCXJlbmRlclZlY3RvcihpdGVtLml0ZW0sIHBkZktpdERvYyk7CgkJCQkJYnJlYWs7CgkJCQljYXNlICdsaW5lJzoKCQkJCQlyZW5kZXJMaW5lKGl0ZW0uaXRlbSwgaXRlbS5pdGVtLngsIGl0ZW0uaXRlbS55LCBwZGZLaXREb2MpOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAnaW1hZ2UnOgoJCQkJCXJlbmRlckltYWdlKGl0ZW0uaXRlbSwgaXRlbS5pdGVtLngsIGl0ZW0uaXRlbS55LCBwZGZLaXREb2MpOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAnYmVnaW5DbGlwJzoKCQkJCQliZWdpbkNsaXAoaXRlbS5pdGVtLCBwZGZLaXREb2MpOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAnZW5kQ2xpcCc6CgkJCQkJZW5kQ2xpcChwZGZLaXREb2MpOwoJCQkJCWJyZWFrOwoJCQl9CgkJCXJlbmRlcmVkSXRlbXMrKzsKCQkJcHJvZ3Jlc3NDYWxsYmFjayhyZW5kZXJlZEl0ZW1zIC8gdG90YWxJdGVtcyk7CgkJfQoJCWlmIChwYWdlLndhdGVybWFyaykgewoJCQlyZW5kZXJXYXRlcm1hcmsocGFnZSwgcGRmS2l0RG9jKTsKCQl9Cgl9Cn0KCmZ1bmN0aW9uIHJlbmRlckxpbmUobGluZSwgeCwgeSwgcGRmS2l0RG9jKSB7CglpZiAobGluZS5fcGFnZU5vZGVSZWYpIHsKCQl2YXIgbmV3V2lkdGg7CgkJdmFyIGRpZmZXaWR0aDsKCQl2YXIgdGV4dFRvb2xzID0gbmV3IFRleHRUb29scyhudWxsKTsKCQl2YXIgcGFnZU51bWJlciA9IGxpbmUuX3BhZ2VOb2RlUmVmLnBvc2l0aW9uc1swXS5wYWdlTnVtYmVyLnRvU3RyaW5nKCk7CgoJCWxpbmUuaW5saW5lc1swXS50ZXh0ID0gcGFnZU51bWJlcjsKCQlsaW5lLmlubGluZXNbMF0ubGlua1RvUGFnZSA9IHBhZ2VOdW1iZXI7CgkJbmV3V2lkdGggPSB0ZXh0VG9vbHMud2lkdGhPZlN0cmluZyhsaW5lLmlubGluZXNbMF0udGV4dCwgbGluZS5pbmxpbmVzWzBdLmZvbnQsIGxpbmUuaW5saW5lc1swXS5mb250U2l6ZSwgbGluZS5pbmxpbmVzWzBdLmNoYXJhY3RlclNwYWNpbmcsIGxpbmUuaW5saW5lc1swXS5mb250RmVhdHVyZXMpOwoJCWRpZmZXaWR0aCA9IGxpbmUuaW5saW5lc1swXS53aWR0aCAtIG5ld1dpZHRoOwoJCWxpbmUuaW5saW5lc1swXS53aWR0aCA9IG5ld1dpZHRoOwoKCQlzd2l0Y2ggKGxpbmUuaW5saW5lc1swXS5hbGlnbm1lbnQpIHsKCQkJY2FzZSAncmlnaHQnOgoJCQkJbGluZS5pbmxpbmVzWzBdLnggKz0gZGlmZldpZHRoOwoJCQkJYnJlYWs7CgkJCWNhc2UgJ2NlbnRlcic6CgkJCQlsaW5lLmlubGluZXNbMF0ueCArPSBkaWZmV2lkdGggLyAyOwoJCQkJYnJlYWs7CgkJfQoJfQoKCXggPSB4IHx8IDA7Cgl5ID0geSB8fCAwOwoKCXZhciBsaW5lSGVpZ2h0ID0gbGluZS5nZXRIZWlnaHQoKTsKCXZhciBhc2NlbmRlckhlaWdodCA9IGxpbmUuZ2V0QXNjZW5kZXJIZWlnaHQoKTsKCXZhciBkZXNjZW50ID0gbGluZUhlaWdodCAtIGFzY2VuZGVySGVpZ2h0OwoKCXRleHREZWNvcmF0b3IuZHJhd0JhY2tncm91bmQobGluZSwgeCwgeSwgcGRmS2l0RG9jKTsKCgkvL1RPRE86IGxpbmUub3B0aW1pemVJbmxpbmVzKCk7Cglmb3IgKHZhciBpID0gMCwgbCA9IGxpbmUuaW5saW5lcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQl2YXIgaW5saW5lID0gbGluZS5pbmxpbmVzW2ldOwoJCXZhciBzaGlmdFRvQmFzZWxpbmUgPSBsaW5lSGVpZ2h0IC0gKChpbmxpbmUuZm9udC5hc2NlbmRlciAvIDEwMDApICogaW5saW5lLmZvbnRTaXplKSAtIGRlc2NlbnQ7CgkJdmFyIG9wdGlvbnMgPSB7CgkJCWxpbmVCcmVhazogZmFsc2UsCgkJCXRleHRXaWR0aDogaW5saW5lLndpZHRoLAoJCQljaGFyYWN0ZXJTcGFjaW5nOiBpbmxpbmUuY2hhcmFjdGVyU3BhY2luZywKCQkJd29yZENvdW50OiAxLAoJCQlsaW5rOiBpbmxpbmUubGluawoJCX07CgoJCWlmIChpbmxpbmUuZm9udEZlYXR1cmVzKSB7CgkJCW9wdGlvbnMuZmVhdHVyZXMgPSBpbmxpbmUuZm9udEZlYXR1cmVzOwoJCX0KCgkJcGRmS2l0RG9jLmZpbGwoaW5saW5lLmNvbG9yIHx8ICdibGFjaycpOwoKCQlwZGZLaXREb2MuX2ZvbnQgPSBpbmxpbmUuZm9udDsKCQlwZGZLaXREb2MuZm9udFNpemUoaW5saW5lLmZvbnRTaXplKTsKCQlwZGZLaXREb2MudGV4dChpbmxpbmUudGV4dCwgeCArIGlubGluZS54LCB5ICsgc2hpZnRUb0Jhc2VsaW5lLCBvcHRpb25zKTsKCgkJaWYgKGlubGluZS5saW5rVG9QYWdlKSB7CgkJCXZhciBfcmVmID0gcGRmS2l0RG9jLnJlZih7VHlwZTogJ0FjdGlvbicsIFM6ICdHb1RvJywgRDogW2lubGluZS5saW5rVG9QYWdlLCAwLCAwXX0pLmVuZCgpOwoJCQlwZGZLaXREb2MuYW5ub3RhdGUoeCArIGlubGluZS54LCB5ICsgc2hpZnRUb0Jhc2VsaW5lLCBpbmxpbmUud2lkdGgsIGlubGluZS5oZWlnaHQsIHtTdWJ0eXBlOiAnTGluaycsIERlc3Q6IFtpbmxpbmUubGlua1RvUGFnZSAtIDEsICdYWVonLCBudWxsLCBudWxsLCBudWxsXX0pOwoJCX0KCgl9CgoJdGV4dERlY29yYXRvci5kcmF3RGVjb3JhdGlvbnMobGluZSwgeCwgeSwgcGRmS2l0RG9jKTsKfQoKZnVuY3Rpb24gcmVuZGVyV2F0ZXJtYXJrKHBhZ2UsIHBkZktpdERvYykgewoJdmFyIHdhdGVybWFyayA9IHBhZ2Uud2F0ZXJtYXJrOwoKCXBkZktpdERvYy5maWxsKHdhdGVybWFyay5jb2xvcik7CglwZGZLaXREb2Mub3BhY2l0eSh3YXRlcm1hcmsub3BhY2l0eSk7CgoJcGRmS2l0RG9jLnNhdmUoKTsKCgl2YXIgYW5nbGUgPSBNYXRoLmF0YW4yKHBkZktpdERvYy5wYWdlLmhlaWdodCwgcGRmS2l0RG9jLnBhZ2Uud2lkdGgpICogLTE4MCAvIE1hdGguUEk7CglwZGZLaXREb2Mucm90YXRlKGFuZ2xlLCB7b3JpZ2luOiBbcGRmS2l0RG9jLnBhZ2Uud2lkdGggLyAyLCBwZGZLaXREb2MucGFnZS5oZWlnaHQgLyAyXX0pOwoKCXZhciB4ID0gcGRmS2l0RG9jLnBhZ2Uud2lkdGggLyAyIC0gd2F0ZXJtYXJrLnNpemUuc2l6ZS53aWR0aCAvIDI7Cgl2YXIgeSA9IHBkZktpdERvYy5wYWdlLmhlaWdodCAvIDIgLSB3YXRlcm1hcmsuc2l6ZS5zaXplLmhlaWdodCAvIDQ7CgoJcGRmS2l0RG9jLl9mb250ID0gd2F0ZXJtYXJrLmZvbnQ7CglwZGZLaXREb2MuZm9udFNpemUod2F0ZXJtYXJrLnNpemUuZm9udFNpemUpOwoJcGRmS2l0RG9jLnRleHQod2F0ZXJtYXJrLnRleHQsIHgsIHksIHtsaW5lQnJlYWs6IGZhbHNlfSk7CgoJcGRmS2l0RG9jLnJlc3RvcmUoKTsKfQoKZnVuY3Rpb24gcmVuZGVyVmVjdG9yKHZlY3RvciwgcGRmS2l0RG9jKSB7CgkvL1RPRE86IHBkZiBvcHRpbWl6YXRpb24gKHRoZXJlJ3Mgbm8gbmVlZCB0byB3cml0ZSBhbGwgcHJvcGVydGllcyBldmVyeXRpbWUpCglwZGZLaXREb2MubGluZVdpZHRoKHZlY3Rvci5saW5lV2lkdGggfHwgMSk7CglpZiAodmVjdG9yLmRhc2gpIHsKCQlwZGZLaXREb2MuZGFzaCh2ZWN0b3IuZGFzaC5sZW5ndGgsIHtzcGFjZTogdmVjdG9yLmRhc2guc3BhY2UgfHwgdmVjdG9yLmRhc2gubGVuZ3RoLCBwaGFzZTogdmVjdG9yLmRhc2gucGhhc2UgfHwgMH0pOwoJfSBlbHNlIHsKCQlwZGZLaXREb2MudW5kYXNoKCk7Cgl9CglwZGZLaXREb2MubGluZUpvaW4odmVjdG9yLmxpbmVKb2luIHx8ICdtaXRlcicpOwoJcGRmS2l0RG9jLmxpbmVDYXAodmVjdG9yLmxpbmVDYXAgfHwgJ2J1dHQnKTsKCgkvL1RPRE86IGNsaXBwaW5nCgoJc3dpdGNoICh2ZWN0b3IudHlwZSkgewoJCWNhc2UgJ2VsbGlwc2UnOgoJCQlwZGZLaXREb2MuZWxsaXBzZSh2ZWN0b3IueCwgdmVjdG9yLnksIHZlY3Rvci5yMSwgdmVjdG9yLnIyKTsKCQkJYnJlYWs7CgkJY2FzZSAncmVjdCc6CgkJCWlmICh2ZWN0b3IucikgewoJCQkJcGRmS2l0RG9jLnJvdW5kZWRSZWN0KHZlY3Rvci54LCB2ZWN0b3IueSwgdmVjdG9yLncsIHZlY3Rvci5oLCB2ZWN0b3Iucik7CgkJCX0gZWxzZSB7CgkJCQlwZGZLaXREb2MucmVjdCh2ZWN0b3IueCwgdmVjdG9yLnksIHZlY3Rvci53LCB2ZWN0b3IuaCk7CgkJCX0KCgkJCWlmICh2ZWN0b3IubGluZWFyR3JhZGllbnQpIHsKCQkJCXZhciBncmFkaWVudCA9IHBkZktpdERvYy5saW5lYXJHcmFkaWVudCh2ZWN0b3IueCwgdmVjdG9yLnksIHZlY3Rvci54ICsgdmVjdG9yLncsIHZlY3Rvci55KTsKCQkJCXZhciBzdGVwID0gMSAvICh2ZWN0b3IubGluZWFyR3JhZGllbnQubGVuZ3RoIC0gMSk7CgoJCQkJZm9yICh2YXIgaSA9IDA7IGkgPCB2ZWN0b3IubGluZWFyR3JhZGllbnQubGVuZ3RoOyBpKyspIHsKCQkJCQlncmFkaWVudC5zdG9wKGkgKiBzdGVwLCB2ZWN0b3IubGluZWFyR3JhZGllbnRbaV0pOwoJCQkJfQoKCQkJCXZlY3Rvci5jb2xvciA9IGdyYWRpZW50OwoJCQl9CgkJCWJyZWFrOwoJCWNhc2UgJ2xpbmUnOgoJCQlwZGZLaXREb2MubW92ZVRvKHZlY3Rvci54MSwgdmVjdG9yLnkxKTsKCQkJcGRmS2l0RG9jLmxpbmVUbyh2ZWN0b3IueDIsIHZlY3Rvci55Mik7CgkJCWJyZWFrOwoJCWNhc2UgJ3BvbHlsaW5lJzoKCQkJaWYgKHZlY3Rvci5wb2ludHMubGVuZ3RoID09PSAwKSB7CgkJCQlicmVhazsKCQkJfQoKCQkJcGRmS2l0RG9jLm1vdmVUbyh2ZWN0b3IucG9pbnRzWzBdLngsIHZlY3Rvci5wb2ludHNbMF0ueSk7CgkJCWZvciAodmFyIGkgPSAxLCBsID0gdmVjdG9yLnBvaW50cy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQkJCXBkZktpdERvYy5saW5lVG8odmVjdG9yLnBvaW50c1tpXS54LCB2ZWN0b3IucG9pbnRzW2ldLnkpOwoJCQl9CgoJCQlpZiAodmVjdG9yLnBvaW50cy5sZW5ndGggPiAxKSB7CgkJCQl2YXIgcDEgPSB2ZWN0b3IucG9pbnRzWzBdOwoJCQkJdmFyIHBuID0gdmVjdG9yLnBvaW50c1t2ZWN0b3IucG9pbnRzLmxlbmd0aCAtIDFdOwoKCQkJCWlmICh2ZWN0b3IuY2xvc2VQYXRoIHx8IHAxLnggPT09IHBuLnggJiYgcDEueSA9PT0gcG4ueSkgewoJCQkJCXBkZktpdERvYy5jbG9zZVBhdGgoKTsKCQkJCX0KCQkJfQoJCQlicmVhazsKCQljYXNlICdwYXRoJzoKCQkJcGRmS2l0RG9jLnBhdGgodmVjdG9yLmQpOwoJCQlicmVhazsKCX0KCglpZiAodmVjdG9yLmNvbG9yICYmIHZlY3Rvci5saW5lQ29sb3IpIHsKCQlwZGZLaXREb2MuZmlsbENvbG9yKHZlY3Rvci5jb2xvciwgdmVjdG9yLmZpbGxPcGFjaXR5IHx8IDEpOwoJCXBkZktpdERvYy5zdHJva2VDb2xvcih2ZWN0b3IubGluZUNvbG9yLCB2ZWN0b3Iuc3Ryb2tlT3BhY2l0eSB8fCAxKTsKCQlwZGZLaXREb2MuZmlsbEFuZFN0cm9rZSgpOwoJfSBlbHNlIGlmICh2ZWN0b3IuY29sb3IpIHsKCQlwZGZLaXREb2MuZmlsbENvbG9yKHZlY3Rvci5jb2xvciwgdmVjdG9yLmZpbGxPcGFjaXR5IHx8IDEpOwoJCXBkZktpdERvYy5maWxsKCk7Cgl9IGVsc2UgewoJCXBkZktpdERvYy5zdHJva2VDb2xvcih2ZWN0b3IubGluZUNvbG9yIHx8ICdibGFjaycsIHZlY3Rvci5zdHJva2VPcGFjaXR5IHx8IDEpOwoJCXBkZktpdERvYy5zdHJva2UoKTsKCX0KfQoKZnVuY3Rpb24gcmVuZGVySW1hZ2UoaW1hZ2UsIHgsIHksIHBkZktpdERvYykgewoJcGRmS2l0RG9jLmltYWdlKGltYWdlLmltYWdlLCBpbWFnZS54LCBpbWFnZS55LCB7d2lkdGg6IGltYWdlLl93aWR0aCwgaGVpZ2h0OiBpbWFnZS5faGVpZ2h0fSk7CglpZiAoaW1hZ2UubGluaykgewoJCXBkZktpdERvYy5saW5rKGltYWdlLngsIGltYWdlLnksIGltYWdlLl93aWR0aCwgaW1hZ2UuX2hlaWdodCwgaW1hZ2UubGluayk7Cgl9Cn0KCmZ1bmN0aW9uIGJlZ2luQ2xpcChyZWN0LCBwZGZLaXREb2MpIHsKCXBkZktpdERvYy5zYXZlKCk7CglwZGZLaXREb2MuYWRkQ29udGVudCgnJyArIHJlY3QueCArICcgJyArIHJlY3QueSArICcgJyArIHJlY3Qud2lkdGggKyAnICcgKyByZWN0LmhlaWdodCArICcgcmUnKTsKCXBkZktpdERvYy5jbGlwKCk7Cn0KCmZ1bmN0aW9uIGVuZENsaXAocGRmS2l0RG9jKSB7CglwZGZLaXREb2MucmVzdG9yZSgpOwp9Cgptb2R1bGUuZXhwb3J0cyA9IFBkZlByaW50ZXI7CgoKLyoqKi8gfSksCi8qIDEyNyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKdmFyIGlzQXJyYXkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzQXJyYXk7CgpmdW5jdGlvbiB0eXBlTmFtZShib2xkLCBpdGFsaWNzKSB7Cgl2YXIgdHlwZSA9ICdub3JtYWwnOwoJaWYgKGJvbGQgJiYgaXRhbGljcykgewoJCXR5cGUgPSAnYm9sZGl0YWxpY3MnOwoJfSBlbHNlIGlmIChib2xkKSB7CgkJdHlwZSA9ICdib2xkJzsKCX0gZWxzZSBpZiAoaXRhbGljcykgewoJCXR5cGUgPSAnaXRhbGljcyc7Cgl9CglyZXR1cm4gdHlwZTsKfQoKZnVuY3Rpb24gRm9udFByb3ZpZGVyKGZvbnREZXNjcmlwdG9ycywgcGRmS2l0RG9jKSB7Cgl0aGlzLmZvbnRzID0ge307Cgl0aGlzLnBkZktpdERvYyA9IHBkZktpdERvYzsKCXRoaXMuZm9udENhY2hlID0ge307CgoJZm9yICh2YXIgZm9udCBpbiBmb250RGVzY3JpcHRvcnMpIHsKCQlpZiAoZm9udERlc2NyaXB0b3JzLmhhc093blByb3BlcnR5KGZvbnQpKSB7CgkJCXZhciBmb250RGVmID0gZm9udERlc2NyaXB0b3JzW2ZvbnRdOwoKCQkJdGhpcy5mb250c1tmb250XSA9IHsKCQkJCW5vcm1hbDogZm9udERlZi5ub3JtYWwsCgkJCQlib2xkOiBmb250RGVmLmJvbGQsCgkJCQlpdGFsaWNzOiBmb250RGVmLml0YWxpY3MsCgkJCQlib2xkaXRhbGljczogZm9udERlZi5ib2xkaXRhbGljcwoJCQl9OwoJCX0KCX0KfQoKRm9udFByb3ZpZGVyLnByb3RvdHlwZS5wcm92aWRlRm9udCA9IGZ1bmN0aW9uIChmYW1pbHlOYW1lLCBib2xkLCBpdGFsaWNzKSB7Cgl2YXIgdHlwZSA9IHR5cGVOYW1lKGJvbGQsIGl0YWxpY3MpOwoJaWYgKCF0aGlzLmZvbnRzW2ZhbWlseU5hbWVdIHx8ICF0aGlzLmZvbnRzW2ZhbWlseU5hbWVdW3R5cGVdKSB7CgkJdGhyb3cgbmV3IEVycm9yKCdGb250IFwnJyArIGZhbWlseU5hbWUgKyAnXCcgaW4gc3R5bGUgXCcnICsgdHlwZSArICdcJyBpcyBub3QgZGVmaW5lZCBpbiB0aGUgZm9udCBzZWN0aW9uIG9mIHRoZSBkb2N1bWVudCBkZWZpbml0aW9uLicpOwoJfQoKCXRoaXMuZm9udENhY2hlW2ZhbWlseU5hbWVdID0gdGhpcy5mb250Q2FjaGVbZmFtaWx5TmFtZV0gfHwge307CgoJaWYgKCF0aGlzLmZvbnRDYWNoZVtmYW1pbHlOYW1lXVt0eXBlXSkgewoJCXZhciBkZWYgPSB0aGlzLmZvbnRzW2ZhbWlseU5hbWVdW3R5cGVdOwoJCWlmICghaXNBcnJheShkZWYpKSB7CgkJCWRlZiA9IFtkZWZdOwoJCX0KCQl0aGlzLmZvbnRDYWNoZVtmYW1pbHlOYW1lXVt0eXBlXSA9IHRoaXMucGRmS2l0RG9jLmZvbnQuYXBwbHkodGhpcy5wZGZLaXREb2MsIGRlZikuX2ZvbnQ7Cgl9CgoJcmV0dXJuIHRoaXMuZm9udENhY2hlW2ZhbWlseU5hbWVdW3R5cGVdOwp9OwoKbW9kdWxlLmV4cG9ydHMgPSBGb250UHJvdmlkZXI7CgoKLyoqKi8gfSksCi8qIDEyOCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKdmFyIFRyYXZlcnNhbFRyYWNrZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDc3KTsKdmFyIERvY1ByZXByb2Nlc3NvciA9IF9fd2VicGFja19yZXF1aXJlX18oMTI5KTsKdmFyIERvY01lYXN1cmUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzMCk7CnZhciBEb2N1bWVudENvbnRleHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgxKTsKdmFyIFBhZ2VFbGVtZW50V3JpdGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMzUpOwp2YXIgQ29sdW1uQ2FsY3VsYXRvciA9IF9fd2VicGFja19yZXF1aXJlX18oNDQpOwp2YXIgVGFibGVQcm9jZXNzb3IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzNyk7CnZhciBMaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4Mik7CnZhciBpc1N0cmluZyA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNTdHJpbmc7CnZhciBpc0FycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5pc0FycmF5Owp2YXIgcGFjayA9IF9fd2VicGFja19yZXF1aXJlX18oMCkucGFjazsKdmFyIG9mZnNldFZlY3RvciA9IF9fd2VicGFja19yZXF1aXJlX18oMCkub2Zmc2V0VmVjdG9yOwp2YXIgZm9udFN0cmluZ2lmeSA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuZm9udFN0cmluZ2lmeTsKdmFyIGlzRnVuY3Rpb24gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzRnVuY3Rpb247CnZhciBUZXh0VG9vbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQyKTsKdmFyIFN0eWxlQ29udGV4dFN0YWNrID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4MCk7CgpmdW5jdGlvbiBhZGRBbGwodGFyZ2V0LCBvdGhlckFycmF5KSB7CglvdGhlckFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKCQl0YXJnZXQucHVzaChpdGVtKTsKCX0pOwp9CgovKioKICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYXlvdXRCdWlsZGVyIC0gbGF5b3V0IGVuZ2luZSB3aGljaCB0dXJucyBkb2N1bWVudC1kZWZpbml0aW9uLW9iamVjdAogKiBpbnRvIGEgc2V0IG9mIHBhZ2VzLCBsaW5lcywgaW5saW5lcyBhbmQgdmVjdG9ycyByZWFkeSB0byBiZSByZW5kZXJlZCBpbnRvIGEgUERGCiAqCiAqIEBwYXJhbSB7T2JqZWN0fSBwYWdlU2l6ZSAtIGFuIG9iamVjdCBkZWZpbmluZyBwYWdlIHdpZHRoIGFuZCBoZWlnaHQKICogQHBhcmFtIHtPYmplY3R9IHBhZ2VNYXJnaW5zIC0gYW4gb2JqZWN0IGRlZmluaW5nIHRvcCwgbGVmdCwgcmlnaHQgYW5kIGJvdHRvbSBtYXJnaW5zCiAqLwpmdW5jdGlvbiBMYXlvdXRCdWlsZGVyKHBhZ2VTaXplLCBwYWdlTWFyZ2lucywgaW1hZ2VNZWFzdXJlKSB7Cgl0aGlzLnBhZ2VTaXplID0gcGFnZVNpemU7Cgl0aGlzLnBhZ2VNYXJnaW5zID0gcGFnZU1hcmdpbnM7Cgl0aGlzLnRyYWNrZXIgPSBuZXcgVHJhdmVyc2FsVHJhY2tlcigpOwoJdGhpcy5pbWFnZU1lYXN1cmUgPSBpbWFnZU1lYXN1cmU7Cgl0aGlzLnRhYmxlTGF5b3V0cyA9IHt9Owp9CgpMYXlvdXRCdWlsZGVyLnByb3RvdHlwZS5yZWdpc3RlclRhYmxlTGF5b3V0cyA9IGZ1bmN0aW9uICh0YWJsZUxheW91dHMpIHsKCXRoaXMudGFibGVMYXlvdXRzID0gcGFjayh0aGlzLnRhYmxlTGF5b3V0cywgdGFibGVMYXlvdXRzKTsKfTsKCi8qKgogKiBFeGVjdXRlcyBsYXlvdXQgZW5naW5lIG9uIGRvY3VtZW50LWRlZmluaXRpb24tb2JqZWN0IGFuZCBjcmVhdGVzIGFuIGFycmF5IG9mIHBhZ2VzCiAqIGNvbnRhaW5pbmcgcG9zaXRpb25lZCBCbG9ja3MsIExpbmVzIGFuZCBpbmxpbmVzCiAqCiAqIEBwYXJhbSB7T2JqZWN0fSBkb2NTdHJ1Y3R1cmUgZG9jdW1lbnQtZGVmaW5pdGlvbi1vYmplY3QKICogQHBhcmFtIHtPYmplY3R9IGZvbnRQcm92aWRlciBmb250IHByb3ZpZGVyCiAqIEBwYXJhbSB7T2JqZWN0fSBzdHlsZURpY3Rpb25hcnkgZGljdGlvbmFyeSB3aXRoIHN0eWxlIGRlZmluaXRpb25zCiAqIEBwYXJhbSB7T2JqZWN0fSBkZWZhdWx0U3R5bGUgZGVmYXVsdCBzdHlsZSBkZWZpbml0aW9uCiAqIEByZXR1cm4ge0FycmF5fSBhbiBhcnJheSBvZiBwYWdlcwogKi8KTGF5b3V0QnVpbGRlci5wcm90b3R5cGUubGF5b3V0RG9jdW1lbnQgPSBmdW5jdGlvbiAoZG9jU3RydWN0dXJlLCBmb250UHJvdmlkZXIsIHN0eWxlRGljdGlvbmFyeSwgZGVmYXVsdFN0eWxlLCBiYWNrZ3JvdW5kLCBoZWFkZXIsIGZvb3RlciwgaW1hZ2VzLCB3YXRlcm1hcmssIHBhZ2VCcmVha0JlZm9yZUZjdCkgewoKCWZ1bmN0aW9uIGFkZFBhZ2VCcmVha3NJZk5lY2Vzc2FyeShsaW5lYXJOb2RlTGlzdCwgcGFnZXMpIHsKCgkJaWYgKCFpc0Z1bmN0aW9uKHBhZ2VCcmVha0JlZm9yZUZjdCkpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCgkJbGluZWFyTm9kZUxpc3QgPSBsaW5lYXJOb2RlTGlzdC5maWx0ZXIoZnVuY3Rpb24gKG5vZGUpIHsKCQkJcmV0dXJuIG5vZGUucG9zaXRpb25zLmxlbmd0aCA+IDA7CgkJfSk7CgoJCWxpbmVhck5vZGVMaXN0LmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHsKCQkJdmFyIG5vZGVJbmZvID0ge307CgkJCVsKCQkJCSdpZCcsICd0ZXh0JywgJ3VsJywgJ29sJywgJ3RhYmxlJywgJ2ltYWdlJywgJ3FyJywgJ2NhbnZhcycsICdjb2x1bW5zJywKCQkJCSdoZWFkbGluZUxldmVsJywgJ3N0eWxlJywgJ3BhZ2VCcmVhaycsICdwYWdlT3JpZW50YXRpb24nLAoJCQkJJ3dpZHRoJywgJ2hlaWdodCcKCQkJXS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKCQkJCWlmIChub2RlW2tleV0gIT09IHVuZGVmaW5lZCkgewoJCQkJCW5vZGVJbmZvW2tleV0gPSBub2RlW2tleV07CgkJCQl9CgkJCX0pOwoJCQlub2RlSW5mby5zdGFydFBvc2l0aW9uID0gbm9kZS5wb3NpdGlvbnNbMF07CgkJCW5vZGVJbmZvLnBhZ2VOdW1iZXJzID0gbm9kZS5wb3NpdGlvbnMubWFwKGZ1bmN0aW9uIChub2RlKSB7CgkJCQlyZXR1cm4gbm9kZS5wYWdlTnVtYmVyOwoJCQl9KS5maWx0ZXIoZnVuY3Rpb24gKGVsZW1lbnQsIHBvc2l0aW9uLCBhcnJheSkgewoJCQkJcmV0dXJuIGFycmF5LmluZGV4T2YoZWxlbWVudCkgPT09IHBvc2l0aW9uOwoJCQl9KTsKCQkJbm9kZUluZm8ucGFnZXMgPSBwYWdlcy5sZW5ndGg7CgkJCW5vZGVJbmZvLnN0YWNrID0gaXNBcnJheShub2RlLnN0YWNrKTsKCgkJCW5vZGUubm9kZUluZm8gPSBub2RlSW5mbzsKCQl9KTsKCgkJcmV0dXJuIGxpbmVhck5vZGVMaXN0LnNvbWUoZnVuY3Rpb24gKG5vZGUsIGluZGV4LCBmb2xsb3dpbmdOb2RlTGlzdCkgewoJCQlpZiAobm9kZS5wYWdlQnJlYWsgIT09ICdiZWZvcmUnICYmICFub2RlLnBhZ2VCcmVha0NhbGN1bGF0ZWQpIHsKCQkJCW5vZGUucGFnZUJyZWFrQ2FsY3VsYXRlZCA9IHRydWU7CgkJCQl2YXIgcGFnZU51bWJlciA9IG5vZGUubm9kZUluZm8ucGFnZU51bWJlcnNbMF07CgoJCQkJdmFyIGZvbGxvd2luZ05vZGVzT25QYWdlID0gZm9sbG93aW5nTm9kZUxpc3Quc2xpY2UoaW5kZXggKyAxKS5maWx0ZXIoZnVuY3Rpb24gKG5vZGUwKSB7CgkJCQkJcmV0dXJuIG5vZGUwLm5vZGVJbmZvLnBhZ2VOdW1iZXJzLmluZGV4T2YocGFnZU51bWJlcikgPiAtMTsKCQkJCX0pOwoKCQkJCXZhciBub2Rlc09uTmV4dFBhZ2UgPSBmb2xsb3dpbmdOb2RlTGlzdC5zbGljZShpbmRleCArIDEpLmZpbHRlcihmdW5jdGlvbiAobm9kZTApIHsKCQkJCQlyZXR1cm4gbm9kZTAubm9kZUluZm8ucGFnZU51bWJlcnMuaW5kZXhPZihwYWdlTnVtYmVyICsgMSkgPiAtMTsKCQkJCX0pOwoKCQkJCXZhciBwcmV2aW91c05vZGVzT25QYWdlID0gZm9sbG93aW5nTm9kZUxpc3Quc2xpY2UoMCwgaW5kZXgpLmZpbHRlcihmdW5jdGlvbiAobm9kZTApIHsKCQkJCQlyZXR1cm4gbm9kZTAubm9kZUluZm8ucGFnZU51bWJlcnMuaW5kZXhPZihwYWdlTnVtYmVyKSA+IC0xOwoJCQkJfSk7CgoJCQkJaWYgKAoJCQkJCXBhZ2VCcmVha0JlZm9yZUZjdCgKCQkJCQkJbm9kZS5ub2RlSW5mbywKCQkJCQkJZm9sbG93aW5nTm9kZXNPblBhZ2UubWFwKGZ1bmN0aW9uIChub2RlKSB7CgkJCQkJCQlyZXR1cm4gbm9kZS5ub2RlSW5mbzsKCQkJCQkJfSksCgkJCQkJCW5vZGVzT25OZXh0UGFnZS5tYXAoZnVuY3Rpb24gKG5vZGUpIHsKCQkJCQkJCXJldHVybiBub2RlLm5vZGVJbmZvOwoJCQkJCQl9KSwKCQkJCQkJcHJldmlvdXNOb2Rlc09uUGFnZS5tYXAoZnVuY3Rpb24gKG5vZGUpIHsKCQkJCQkJCXJldHVybiBub2RlLm5vZGVJbmZvOwoJCQkJCQl9KSkpIHsKCQkJCQlub2RlLnBhZ2VCcmVhayA9ICdiZWZvcmUnOwoJCQkJCXJldHVybiB0cnVlOwoJCQkJfQoJCQl9CgkJfSk7Cgl9CgoJdGhpcy5kb2NQcmVwcm9jZXNzb3IgPSBuZXcgRG9jUHJlcHJvY2Vzc29yKCk7Cgl0aGlzLmRvY01lYXN1cmUgPSBuZXcgRG9jTWVhc3VyZShmb250UHJvdmlkZXIsIHN0eWxlRGljdGlvbmFyeSwgZGVmYXVsdFN0eWxlLCB0aGlzLmltYWdlTWVhc3VyZSwgdGhpcy50YWJsZUxheW91dHMsIGltYWdlcyk7CgoKCWZ1bmN0aW9uIHJlc2V0WFlzKHJlc3VsdCkgewoJCXJlc3VsdC5saW5lYXJOb2RlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7CgkJCW5vZGUucmVzZXRYWSgpOwoJCX0pOwoJfQoKCXZhciByZXN1bHQgPSB0aGlzLnRyeUxheW91dERvY3VtZW50KGRvY1N0cnVjdHVyZSwgZm9udFByb3ZpZGVyLCBzdHlsZURpY3Rpb25hcnksIGRlZmF1bHRTdHlsZSwgYmFja2dyb3VuZCwgaGVhZGVyLCBmb290ZXIsIGltYWdlcywgd2F0ZXJtYXJrKTsKCXdoaWxlIChhZGRQYWdlQnJlYWtzSWZOZWNlc3NhcnkocmVzdWx0LmxpbmVhck5vZGVMaXN0LCByZXN1bHQucGFnZXMpKSB7CgkJcmVzZXRYWXMocmVzdWx0KTsKCQlyZXN1bHQgPSB0aGlzLnRyeUxheW91dERvY3VtZW50KGRvY1N0cnVjdHVyZSwgZm9udFByb3ZpZGVyLCBzdHlsZURpY3Rpb25hcnksIGRlZmF1bHRTdHlsZSwgYmFja2dyb3VuZCwgaGVhZGVyLCBmb290ZXIsIGltYWdlcywgd2F0ZXJtYXJrKTsKCX0KCglyZXR1cm4gcmVzdWx0LnBhZ2VzOwp9OwoKTGF5b3V0QnVpbGRlci5wcm90b3R5cGUudHJ5TGF5b3V0RG9jdW1lbnQgPSBmdW5jdGlvbiAoZG9jU3RydWN0dXJlLCBmb250UHJvdmlkZXIsIHN0eWxlRGljdGlvbmFyeSwgZGVmYXVsdFN0eWxlLCBiYWNrZ3JvdW5kLCBoZWFkZXIsIGZvb3RlciwgaW1hZ2VzLCB3YXRlcm1hcmssIHBhZ2VCcmVha0JlZm9yZUZjdCkgewoKCXRoaXMubGluZWFyTm9kZUxpc3QgPSBbXTsKCWRvY1N0cnVjdHVyZSA9IHRoaXMuZG9jUHJlcHJvY2Vzc29yLnByZXByb2Nlc3NEb2N1bWVudChkb2NTdHJ1Y3R1cmUpOwoJZG9jU3RydWN0dXJlID0gdGhpcy5kb2NNZWFzdXJlLm1lYXN1cmVEb2N1bWVudChkb2NTdHJ1Y3R1cmUpOwoKCXRoaXMud3JpdGVyID0gbmV3IFBhZ2VFbGVtZW50V3JpdGVyKAoJCW5ldyBEb2N1bWVudENvbnRleHQodGhpcy5wYWdlU2l6ZSwgdGhpcy5wYWdlTWFyZ2lucyksIHRoaXMudHJhY2tlcik7CgoJdmFyIF90aGlzID0gdGhpczsKCXRoaXMud3JpdGVyLmNvbnRleHQoKS50cmFja2VyLnN0YXJ0VHJhY2tpbmcoJ3BhZ2VBZGRlZCcsIGZ1bmN0aW9uICgpIHsKCQlfdGhpcy5hZGRCYWNrZ3JvdW5kKGJhY2tncm91bmQpOwoJfSk7CgoJdGhpcy5hZGRCYWNrZ3JvdW5kKGJhY2tncm91bmQpOwoJdGhpcy5wcm9jZXNzTm9kZShkb2NTdHJ1Y3R1cmUpOwoJdGhpcy5hZGRIZWFkZXJzQW5kRm9vdGVycyhoZWFkZXIsIGZvb3Rlcik7CglpZiAod2F0ZXJtYXJrICE9IG51bGwpIHsKCQl0aGlzLmFkZFdhdGVybWFyayh3YXRlcm1hcmssIGZvbnRQcm92aWRlciwgZGVmYXVsdFN0eWxlKTsKCX0KCglyZXR1cm4ge3BhZ2VzOiB0aGlzLndyaXRlci5jb250ZXh0KCkucGFnZXMsIGxpbmVhck5vZGVMaXN0OiB0aGlzLmxpbmVhck5vZGVMaXN0fTsKfTsKCgpMYXlvdXRCdWlsZGVyLnByb3RvdHlwZS5hZGRCYWNrZ3JvdW5kID0gZnVuY3Rpb24gKGJhY2tncm91bmQpIHsKCXZhciBiYWNrZ3JvdW5kR2V0dGVyID0gaXNGdW5jdGlvbihiYWNrZ3JvdW5kKSA/IGJhY2tncm91bmQgOiBmdW5jdGlvbiAoKSB7CgkJcmV0dXJuIGJhY2tncm91bmQ7Cgl9OwoKCXZhciBwYWdlQmFja2dyb3VuZCA9IGJhY2tncm91bmRHZXR0ZXIodGhpcy53cml0ZXIuY29udGV4dCgpLnBhZ2UgKyAxKTsKCglpZiAocGFnZUJhY2tncm91bmQpIHsKCQl2YXIgcGFnZVNpemUgPSB0aGlzLndyaXRlci5jb250ZXh0KCkuZ2V0Q3VycmVudFBhZ2UoKS5wYWdlU2l6ZTsKCQl0aGlzLndyaXRlci5iZWdpblVuYnJlYWthYmxlQmxvY2socGFnZVNpemUud2lkdGgsIHBhZ2VTaXplLmhlaWdodCk7CgkJcGFnZUJhY2tncm91bmQgPSB0aGlzLmRvY1ByZXByb2Nlc3Nvci5wcmVwcm9jZXNzRG9jdW1lbnQocGFnZUJhY2tncm91bmQpOwoJCXRoaXMucHJvY2Vzc05vZGUodGhpcy5kb2NNZWFzdXJlLm1lYXN1cmVEb2N1bWVudChwYWdlQmFja2dyb3VuZCkpOwoJCXRoaXMud3JpdGVyLmNvbW1pdFVuYnJlYWthYmxlQmxvY2soMCwgMCk7CgkJdGhpcy53cml0ZXIuY29udGV4dCgpLmhhc0JhY2tncm91bmQgPSB0cnVlOwoJfQp9OwoKTGF5b3V0QnVpbGRlci5wcm90b3R5cGUuYWRkU3RhdGljUmVwZWF0YWJsZSA9IGZ1bmN0aW9uIChoZWFkZXJPckZvb3Rlciwgc2l6ZUZ1bmN0aW9uKSB7Cgl0aGlzLmFkZER5bmFtaWNSZXBlYXRhYmxlKGZ1bmN0aW9uICgpIHsKCQlyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShoZWFkZXJPckZvb3RlcikpOyAvLyBjb3B5IHRvIG5ldyBvYmplY3QKCX0sIHNpemVGdW5jdGlvbik7Cn07CgpMYXlvdXRCdWlsZGVyLnByb3RvdHlwZS5hZGREeW5hbWljUmVwZWF0YWJsZSA9IGZ1bmN0aW9uIChub2RlR2V0dGVyLCBzaXplRnVuY3Rpb24pIHsKCXZhciBwYWdlcyA9IHRoaXMud3JpdGVyLmNvbnRleHQoKS5wYWdlczsKCglmb3IgKHZhciBwYWdlSW5kZXggPSAwLCBsID0gcGFnZXMubGVuZ3RoOyBwYWdlSW5kZXggPCBsOyBwYWdlSW5kZXgrKykgewoJCXRoaXMud3JpdGVyLmNvbnRleHQoKS5wYWdlID0gcGFnZUluZGV4OwoKCQl2YXIgbm9kZSA9IG5vZGVHZXR0ZXIocGFnZUluZGV4ICsgMSwgbCwgdGhpcy53cml0ZXIuY29udGV4dCgpLnBhZ2VzW3BhZ2VJbmRleF0ucGFnZVNpemUpOwoKCQlpZiAobm9kZSkgewoJCQl2YXIgc2l6ZXMgPSBzaXplRnVuY3Rpb24odGhpcy53cml0ZXIuY29udGV4dCgpLmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUsIHRoaXMucGFnZU1hcmdpbnMpOwoJCQl0aGlzLndyaXRlci5iZWdpblVuYnJlYWthYmxlQmxvY2soc2l6ZXMud2lkdGgsIHNpemVzLmhlaWdodCk7CgkJCW5vZGUgPSB0aGlzLmRvY1ByZXByb2Nlc3Nvci5wcmVwcm9jZXNzRG9jdW1lbnQobm9kZSk7CgkJCXRoaXMucHJvY2Vzc05vZGUodGhpcy5kb2NNZWFzdXJlLm1lYXN1cmVEb2N1bWVudChub2RlKSk7CgkJCXRoaXMud3JpdGVyLmNvbW1pdFVuYnJlYWthYmxlQmxvY2soc2l6ZXMueCwgc2l6ZXMueSk7CgkJfQoJfQp9OwoKTGF5b3V0QnVpbGRlci5wcm90b3R5cGUuYWRkSGVhZGVyc0FuZEZvb3RlcnMgPSBmdW5jdGlvbiAoaGVhZGVyLCBmb290ZXIpIHsKCXZhciBoZWFkZXJTaXplRmN0ID0gZnVuY3Rpb24gKHBhZ2VTaXplLCBwYWdlTWFyZ2lucykgewoJCXJldHVybiB7CgkJCXg6IDAsCgkJCXk6IDAsCgkJCXdpZHRoOiBwYWdlU2l6ZS53aWR0aCwKCQkJaGVpZ2h0OiBwYWdlTWFyZ2lucy50b3AKCQl9OwoJfTsKCgl2YXIgZm9vdGVyU2l6ZUZjdCA9IGZ1bmN0aW9uIChwYWdlU2l6ZSwgcGFnZU1hcmdpbnMpIHsKCQlyZXR1cm4gewoJCQl4OiAwLAoJCQl5OiBwYWdlU2l6ZS5oZWlnaHQgLSBwYWdlTWFyZ2lucy5ib3R0b20sCgkJCXdpZHRoOiBwYWdlU2l6ZS53aWR0aCwKCQkJaGVpZ2h0OiBwYWdlTWFyZ2lucy5ib3R0b20KCQl9OwoJfTsKCglpZiAoaXNGdW5jdGlvbihoZWFkZXIpKSB7CgkJdGhpcy5hZGREeW5hbWljUmVwZWF0YWJsZShoZWFkZXIsIGhlYWRlclNpemVGY3QpOwoJfSBlbHNlIGlmIChoZWFkZXIpIHsKCQl0aGlzLmFkZFN0YXRpY1JlcGVhdGFibGUoaGVhZGVyLCBoZWFkZXJTaXplRmN0KTsKCX0KCglpZiAoaXNGdW5jdGlvbihmb290ZXIpKSB7CgkJdGhpcy5hZGREeW5hbWljUmVwZWF0YWJsZShmb290ZXIsIGZvb3RlclNpemVGY3QpOwoJfSBlbHNlIGlmIChmb290ZXIpIHsKCQl0aGlzLmFkZFN0YXRpY1JlcGVhdGFibGUoZm9vdGVyLCBmb290ZXJTaXplRmN0KTsKCX0KfTsKCkxheW91dEJ1aWxkZXIucHJvdG90eXBlLmFkZFdhdGVybWFyayA9IGZ1bmN0aW9uICh3YXRlcm1hcmssIGZvbnRQcm92aWRlciwgZGVmYXVsdFN0eWxlKSB7CglpZiAoaXNTdHJpbmcod2F0ZXJtYXJrKSkgewoJCXdhdGVybWFyayA9IHsndGV4dCc6IHdhdGVybWFya307Cgl9CgoJaWYgKCF3YXRlcm1hcmsudGV4dCkgeyAvLyBlbXB0eSB3YXRlcm1hcmsgdGV4dAoJCXJldHVybjsKCX0KCgl3YXRlcm1hcmsuZm9udCA9IHdhdGVybWFyay5mb250IHx8IGRlZmF1bHRTdHlsZS5mb250IHx8ICdSb2JvdG8nOwoJd2F0ZXJtYXJrLmNvbG9yID0gd2F0ZXJtYXJrLmNvbG9yIHx8ICdibGFjayc7Cgl3YXRlcm1hcmsub3BhY2l0eSA9IHdhdGVybWFyay5vcGFjaXR5IHx8IDAuNjsKCXdhdGVybWFyay5ib2xkID0gd2F0ZXJtYXJrLmJvbGQgfHwgZmFsc2U7Cgl3YXRlcm1hcmsuaXRhbGljcyA9IHdhdGVybWFyay5pdGFsaWNzIHx8IGZhbHNlOwoKCXZhciB3YXRlcm1hcmtPYmplY3QgPSB7CgkJdGV4dDogd2F0ZXJtYXJrLnRleHQsCgkJZm9udDogZm9udFByb3ZpZGVyLnByb3ZpZGVGb250KHdhdGVybWFyay5mb250LCB3YXRlcm1hcmsuYm9sZCwgd2F0ZXJtYXJrLml0YWxpY3MpLAoJCXNpemU6IGdldFNpemUodGhpcy5wYWdlU2l6ZSwgd2F0ZXJtYXJrLCBmb250UHJvdmlkZXIpLAoJCWNvbG9yOiB3YXRlcm1hcmsuY29sb3IsCgkJb3BhY2l0eTogd2F0ZXJtYXJrLm9wYWNpdHkKCX07CgoJdmFyIHBhZ2VzID0gdGhpcy53cml0ZXIuY29udGV4dCgpLnBhZ2VzOwoJZm9yICh2YXIgaSA9IDAsIGwgPSBwYWdlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQlwYWdlc1tpXS53YXRlcm1hcmsgPSB3YXRlcm1hcmtPYmplY3Q7Cgl9CgoJZnVuY3Rpb24gZ2V0U2l6ZShwYWdlU2l6ZSwgd2F0ZXJtYXJrLCBmb250UHJvdmlkZXIpIHsKCQl2YXIgd2lkdGggPSBwYWdlU2l6ZS53aWR0aDsKCQl2YXIgaGVpZ2h0ID0gcGFnZVNpemUuaGVpZ2h0OwoJCXZhciB0YXJnZXRXaWR0aCA9IE1hdGguc3FydCh3aWR0aCAqIHdpZHRoICsgaGVpZ2h0ICogaGVpZ2h0KSAqIDAuODsgLyogcGFnZSBkaWFnb25hbCAqIHNhbXBsZSBmYWN0b3IgKi8KCQl2YXIgdGV4dFRvb2xzID0gbmV3IFRleHRUb29scyhmb250UHJvdmlkZXIpOwoJCXZhciBzdHlsZUNvbnRleHRTdGFjayA9IG5ldyBTdHlsZUNvbnRleHRTdGFjayhudWxsLCB7Zm9udDogd2F0ZXJtYXJrLmZvbnQsIGJvbGQ6IHdhdGVybWFyay5ib2xkLCBpdGFsaWNzOiB3YXRlcm1hcmsuaXRhbGljc30pOwoJCXZhciBzaXplOwoKCQkvKioKCQkgKiBCaW5hcnkgc2VhcmNoIHRoZSBiZXN0IGZvbnQgc2l6ZS4KCQkgKiBJbml0aWFsIGJvdW5kcyBbMCwgMTAwMF0KCQkgKiBCcmVhayB3aGVuIHJhbmdlIDwgMQoJCSAqLwoJCXZhciBhID0gMDsKCQl2YXIgYiA9IDEwMDA7CgkJdmFyIGMgPSAoYSArIGIpIC8gMjsKCQl3aGlsZSAoTWF0aC5hYnMoYSAtIGIpID4gMSkgewoJCQlzdHlsZUNvbnRleHRTdGFjay5wdXNoKHsKCQkJCWZvbnRTaXplOiBjCgkJCX0pOwoJCQlzaXplID0gdGV4dFRvb2xzLnNpemVPZlN0cmluZyh3YXRlcm1hcmsudGV4dCwgc3R5bGVDb250ZXh0U3RhY2spOwoJCQlpZiAoc2l6ZS53aWR0aCA+IHRhcmdldFdpZHRoKSB7CgkJCQliID0gYzsKCQkJCWMgPSAoYSArIGIpIC8gMjsKCQkJfSBlbHNlIGlmIChzaXplLndpZHRoIDwgdGFyZ2V0V2lkdGgpIHsKCQkJCWEgPSBjOwoJCQkJYyA9IChhICsgYikgLyAyOwoJCQl9CgkJCXN0eWxlQ29udGV4dFN0YWNrLnBvcCgpOwoJCX0KCQkvKgoJCSBFbmQgYmluYXJ5IHNlYXJjaAoJCSAqLwoJCXJldHVybiB7c2l6ZTogc2l6ZSwgZm9udFNpemU6IGN9OwoJfQp9OwoKZnVuY3Rpb24gZGVjb3JhdGVOb2RlKG5vZGUpIHsKCXZhciB4ID0gbm9kZS54LCB5ID0gbm9kZS55OwoJbm9kZS5wb3NpdGlvbnMgPSBbXTsKCglpZiAoaXNBcnJheShub2RlLmNhbnZhcykpIHsKCQlub2RlLmNhbnZhcy5mb3JFYWNoKGZ1bmN0aW9uICh2ZWN0b3IpIHsKCQkJdmFyIHggPSB2ZWN0b3IueCwgeSA9IHZlY3Rvci55LCB4MSA9IHZlY3Rvci54MSwgeTEgPSB2ZWN0b3IueTEsIHgyID0gdmVjdG9yLngyLCB5MiA9IHZlY3Rvci55MjsKCQkJdmVjdG9yLnJlc2V0WFkgPSBmdW5jdGlvbiAoKSB7CgkJCQl2ZWN0b3IueCA9IHg7CgkJCQl2ZWN0b3IueSA9IHk7CgkJCQl2ZWN0b3IueDEgPSB4MTsKCQkJCXZlY3Rvci55MSA9IHkxOwoJCQkJdmVjdG9yLngyID0geDI7CgkJCQl2ZWN0b3IueTIgPSB5MjsKCQkJfTsKCQl9KTsKCX0KCglub2RlLnJlc2V0WFkgPSBmdW5jdGlvbiAoKSB7CgkJbm9kZS54ID0geDsKCQlub2RlLnkgPSB5OwoJCWlmIChpc0FycmF5KG5vZGUuY2FudmFzKSkgewoJCQlub2RlLmNhbnZhcy5mb3JFYWNoKGZ1bmN0aW9uICh2ZWN0b3IpIHsKCQkJCXZlY3Rvci5yZXNldFhZKCk7CgkJCX0pOwoJCX0KCX07Cn0KCkxheW91dEJ1aWxkZXIucHJvdG90eXBlLnByb2Nlc3NOb2RlID0gZnVuY3Rpb24gKG5vZGUpIHsKCXZhciBzZWxmID0gdGhpczsKCgl0aGlzLmxpbmVhck5vZGVMaXN0LnB1c2gobm9kZSk7CglkZWNvcmF0ZU5vZGUobm9kZSk7CgoJYXBwbHlNYXJnaW5zKGZ1bmN0aW9uICgpIHsKCQl2YXIgdW5icmVha2FibGUgPSBub2RlLnVuYnJlYWthYmxlOwoJCWlmICh1bmJyZWFrYWJsZSkgewoJCQlzZWxmLndyaXRlci5iZWdpblVuYnJlYWthYmxlQmxvY2soKTsKCQl9CgoJCXZhciBhYnNQb3NpdGlvbiA9IG5vZGUuYWJzb2x1dGVQb3NpdGlvbjsKCQlpZiAoYWJzUG9zaXRpb24pIHsKCQkJc2VsZi53cml0ZXIuY29udGV4dCgpLmJlZ2luRGV0YWNoZWRCbG9jaygpOwoJCQlzZWxmLndyaXRlci5jb250ZXh0KCkubW92ZVRvKGFic1Bvc2l0aW9uLnggfHwgMCwgYWJzUG9zaXRpb24ueSB8fCAwKTsKCQl9CgoJCXZhciByZWxQb3NpdGlvbiA9IG5vZGUucmVsYXRpdmVQb3NpdGlvbjsKCQlpZiAocmVsUG9zaXRpb24pIHsKCQkJc2VsZi53cml0ZXIuY29udGV4dCgpLmJlZ2luRGV0YWNoZWRCbG9jaygpOwoJCQlzZWxmLndyaXRlci5jb250ZXh0KCkubW92ZVRvKChyZWxQb3NpdGlvbi54IHx8IDApICsgc2VsZi53cml0ZXIuY29udGV4dCgpLngsIChyZWxQb3NpdGlvbi55IHx8IDApICsgc2VsZi53cml0ZXIuY29udGV4dCgpLnkpOwoJCX0KCgkJaWYgKG5vZGUuc3RhY2spIHsKCQkJc2VsZi5wcm9jZXNzVmVydGljYWxDb250YWluZXIobm9kZSk7CgkJfSBlbHNlIGlmIChub2RlLmNvbHVtbnMpIHsKCQkJc2VsZi5wcm9jZXNzQ29sdW1ucyhub2RlKTsKCQl9IGVsc2UgaWYgKG5vZGUudWwpIHsKCQkJc2VsZi5wcm9jZXNzTGlzdChmYWxzZSwgbm9kZSk7CgkJfSBlbHNlIGlmIChub2RlLm9sKSB7CgkJCXNlbGYucHJvY2Vzc0xpc3QodHJ1ZSwgbm9kZSk7CgkJfSBlbHNlIGlmIChub2RlLnRhYmxlKSB7CgkJCXNlbGYucHJvY2Vzc1RhYmxlKG5vZGUpOwoJCX0gZWxzZSBpZiAobm9kZS50ZXh0ICE9PSB1bmRlZmluZWQpIHsKCQkJc2VsZi5wcm9jZXNzTGVhZihub2RlKTsKCQl9IGVsc2UgaWYgKG5vZGUudG9jKSB7CgkJCXNlbGYucHJvY2Vzc1RvYyhub2RlKTsKCQl9IGVsc2UgaWYgKG5vZGUuaW1hZ2UpIHsKCQkJc2VsZi5wcm9jZXNzSW1hZ2Uobm9kZSk7CgkJfSBlbHNlIGlmIChub2RlLmNhbnZhcykgewoJCQlzZWxmLnByb2Nlc3NDYW52YXMobm9kZSk7CgkJfSBlbHNlIGlmIChub2RlLnFyKSB7CgkJCXNlbGYucHJvY2Vzc1FyKG5vZGUpOwoJCX0gZWxzZSBpZiAoIW5vZGUuX3NwYW4pIHsKCQkJdGhyb3cgJ1VucmVjb2duaXplZCBkb2N1bWVudCBzdHJ1Y3R1cmU6ICcgKyBKU09OLnN0cmluZ2lmeShub2RlLCBmb250U3RyaW5naWZ5KTsKCQl9CgoJCWlmIChhYnNQb3NpdGlvbiB8fCByZWxQb3NpdGlvbikgewoJCQlzZWxmLndyaXRlci5jb250ZXh0KCkuZW5kRGV0YWNoZWRCbG9jaygpOwoJCX0KCgkJaWYgKHVuYnJlYWthYmxlKSB7CgkJCXNlbGYud3JpdGVyLmNvbW1pdFVuYnJlYWthYmxlQmxvY2soKTsKCQl9Cgl9KTsKCglmdW5jdGlvbiBhcHBseU1hcmdpbnMoY2FsbGJhY2spIHsKCQl2YXIgbWFyZ2luID0gbm9kZS5fbWFyZ2luOwoKCQlpZiAobm9kZS5wYWdlQnJlYWsgPT09ICdiZWZvcmUnKSB7CgkJCXNlbGYud3JpdGVyLm1vdmVUb05leHRQYWdlKG5vZGUucGFnZU9yaWVudGF0aW9uKTsKCQl9CgoJCWlmIChtYXJnaW4pIHsKCQkJc2VsZi53cml0ZXIuY29udGV4dCgpLm1vdmVEb3duKG1hcmdpblsxXSk7CgkJCXNlbGYud3JpdGVyLmNvbnRleHQoKS5hZGRNYXJnaW4obWFyZ2luWzBdLCBtYXJnaW5bMl0pOwoJCX0KCgkJY2FsbGJhY2soKTsKCgkJaWYgKG1hcmdpbikgewoJCQlzZWxmLndyaXRlci5jb250ZXh0KCkuYWRkTWFyZ2luKC1tYXJnaW5bMF0sIC1tYXJnaW5bMl0pOwoJCQlzZWxmLndyaXRlci5jb250ZXh0KCkubW92ZURvd24obWFyZ2luWzNdKTsKCQl9CgoJCWlmIChub2RlLnBhZ2VCcmVhayA9PT0gJ2FmdGVyJykgewoJCQlzZWxmLndyaXRlci5tb3ZlVG9OZXh0UGFnZShub2RlLnBhZ2VPcmllbnRhdGlvbik7CgkJfQoJfQp9OwoKLy8gdmVydGljYWwgY29udGFpbmVyCkxheW91dEJ1aWxkZXIucHJvdG90eXBlLnByb2Nlc3NWZXJ0aWNhbENvbnRhaW5lciA9IGZ1bmN0aW9uIChub2RlKSB7Cgl2YXIgc2VsZiA9IHRoaXM7Cglub2RlLnN0YWNrLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKCQlzZWxmLnByb2Nlc3NOb2RlKGl0ZW0pOwoJCWFkZEFsbChub2RlLnBvc2l0aW9ucywgaXRlbS5wb3NpdGlvbnMpOwoKCQkvL1RPRE86IHBhcmFncmFwaCBnYXAKCX0pOwp9OwoKLy8gY29sdW1ucwpMYXlvdXRCdWlsZGVyLnByb3RvdHlwZS5wcm9jZXNzQ29sdW1ucyA9IGZ1bmN0aW9uIChjb2x1bW5Ob2RlKSB7Cgl2YXIgY29sdW1ucyA9IGNvbHVtbk5vZGUuY29sdW1uczsKCXZhciBhdmFpbGFibGVXaWR0aCA9IHRoaXMud3JpdGVyLmNvbnRleHQoKS5hdmFpbGFibGVXaWR0aDsKCXZhciBnYXBzID0gZ2FwQXJyYXkoY29sdW1uTm9kZS5fZ2FwKTsKCglpZiAoZ2FwcykgewoJCWF2YWlsYWJsZVdpZHRoIC09IChnYXBzLmxlbmd0aCAtIDEpICogY29sdW1uTm9kZS5fZ2FwOwoJfQoKCUNvbHVtbkNhbGN1bGF0b3IuYnVpbGRDb2x1bW5XaWR0aHMoY29sdW1ucywgYXZhaWxhYmxlV2lkdGgpOwoJdmFyIHJlc3VsdCA9IHRoaXMucHJvY2Vzc1Jvdyhjb2x1bW5zLCBjb2x1bW5zLCBnYXBzKTsKCWFkZEFsbChjb2x1bW5Ob2RlLnBvc2l0aW9ucywgcmVzdWx0LnBvc2l0aW9ucyk7CgoKCWZ1bmN0aW9uIGdhcEFycmF5KGdhcCkgewoJCWlmICghZ2FwKSB7CgkJCXJldHVybiBudWxsOwoJCX0KCgkJdmFyIGdhcHMgPSBbXTsKCQlnYXBzLnB1c2goMCk7CgoJCWZvciAodmFyIGkgPSBjb2x1bW5zLmxlbmd0aCAtIDE7IGkgPiAwOyBpLS0pIHsKCQkJZ2Fwcy5wdXNoKGdhcCk7CgkJfQoKCQlyZXR1cm4gZ2FwczsKCX0KfTsKCkxheW91dEJ1aWxkZXIucHJvdG90eXBlLnByb2Nlc3NSb3cgPSBmdW5jdGlvbiAoY29sdW1ucywgd2lkdGhzLCBnYXBzLCB0YWJsZUJvZHksIHRhYmxlUm93LCBoZWlnaHQpIHsKCXZhciBzZWxmID0gdGhpczsKCXZhciBwYWdlQnJlYWtzID0gW10sIHBvc2l0aW9ucyA9IFtdOwoKCXRoaXMudHJhY2tlci5hdXRvKCdwYWdlQ2hhbmdlZCcsIHN0b3JlUGFnZUJyZWFrRGF0YSwgZnVuY3Rpb24gKCkgewoJCXdpZHRocyA9IHdpZHRocyB8fCBjb2x1bW5zOwoKCQlzZWxmLndyaXRlci5jb250ZXh0KCkuYmVnaW5Db2x1bW5Hcm91cCgpOwoKCQlmb3IgKHZhciBpID0gMCwgbCA9IGNvbHVtbnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJCXZhciBjb2x1bW4gPSBjb2x1bW5zW2ldOwoJCQl2YXIgd2lkdGggPSB3aWR0aHNbaV0uX2NhbGNXaWR0aDsKCQkJdmFyIGxlZnRPZmZzZXQgPSBjb2xMZWZ0T2Zmc2V0KGkpOwoKCQkJaWYgKGNvbHVtbi5jb2xTcGFuICYmIGNvbHVtbi5jb2xTcGFuID4gMSkgewoJCQkJZm9yICh2YXIgaiA9IDE7IGogPCBjb2x1bW4uY29sU3BhbjsgaisrKSB7CgkJCQkJd2lkdGggKz0gd2lkdGhzWysraV0uX2NhbGNXaWR0aCArIGdhcHNbaV07CgkJCQl9CgkJCX0KCgkJCXNlbGYud3JpdGVyLmNvbnRleHQoKS5iZWdpbkNvbHVtbih3aWR0aCwgbGVmdE9mZnNldCwgZ2V0RW5kaW5nQ2VsbChjb2x1bW4sIGkpKTsKCQkJaWYgKCFjb2x1bW4uX3NwYW4pIHsKCQkJCXNlbGYucHJvY2Vzc05vZGUoY29sdW1uKTsKCQkJCWFkZEFsbChwb3NpdGlvbnMsIGNvbHVtbi5wb3NpdGlvbnMpOwoJCQl9IGVsc2UgaWYgKGNvbHVtbi5fY29sdW1uRW5kaW5nQ29udGV4dCkgewoJCQkJLy8gcm93LXNwYW4gZW5kaW5nCgkJCQlzZWxmLndyaXRlci5jb250ZXh0KCkubWFya0VuZGluZyhjb2x1bW4pOwoJCQl9CgkJfQoKCQlzZWxmLndyaXRlci5jb250ZXh0KCkuY29tcGxldGVDb2x1bW5Hcm91cChoZWlnaHQpOwoJfSk7CgoJcmV0dXJuIHtwYWdlQnJlYWtzOiBwYWdlQnJlYWtzLCBwb3NpdGlvbnM6IHBvc2l0aW9uc307CgoJZnVuY3Rpb24gc3RvcmVQYWdlQnJlYWtEYXRhKGRhdGEpIHsKCQl2YXIgcGFnZURlc2M7CgoJCWZvciAodmFyIGkgPSAwLCBsID0gcGFnZUJyZWFrcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQkJdmFyIGRlc2MgPSBwYWdlQnJlYWtzW2ldOwoJCQlpZiAoZGVzYy5wcmV2UGFnZSA9PT0gZGF0YS5wcmV2UGFnZSkgewoJCQkJcGFnZURlc2MgPSBkZXNjOwoJCQkJYnJlYWs7CgkJCX0KCQl9CgoJCWlmICghcGFnZURlc2MpIHsKCQkJcGFnZURlc2MgPSBkYXRhOwoJCQlwYWdlQnJlYWtzLnB1c2gocGFnZURlc2MpOwoJCX0KCQlwYWdlRGVzYy5wcmV2WSA9IE1hdGgubWF4KHBhZ2VEZXNjLnByZXZZLCBkYXRhLnByZXZZKTsKCQlwYWdlRGVzYy55ID0gTWF0aC5taW4ocGFnZURlc2MueSwgZGF0YS55KTsKCX0KCglmdW5jdGlvbiBjb2xMZWZ0T2Zmc2V0KGkpIHsKCQlpZiAoZ2FwcyAmJiBnYXBzLmxlbmd0aCA+IGkpIHsKCQkJcmV0dXJuIGdhcHNbaV07CgkJfQoJCXJldHVybiAwOwoJfQoKCWZ1bmN0aW9uIGdldEVuZGluZ0NlbGwoY29sdW1uLCBjb2x1bW5JbmRleCkgewoJCWlmIChjb2x1bW4ucm93U3BhbiAmJiBjb2x1bW4ucm93U3BhbiA+IDEpIHsKCQkJdmFyIGVuZGluZ1JvdyA9IHRhYmxlUm93ICsgY29sdW1uLnJvd1NwYW4gLSAxOwoJCQlpZiAoZW5kaW5nUm93ID49IHRhYmxlQm9keS5sZW5ndGgpIHsKCQkJCXRocm93ICdSb3cgc3BhbiBmb3IgY29sdW1uICcgKyBjb2x1bW5JbmRleCArICcgKHdpdGggaW5kZXhlcyBzdGFydGluZyBmcm9tIDApIGV4Y2VlZGVkIHJvdyBjb3VudCc7CgkJCX0KCQkJcmV0dXJuIHRhYmxlQm9keVtlbmRpbmdSb3ddW2NvbHVtbkluZGV4XTsKCQl9CgoJCXJldHVybiBudWxsOwoJfQp9OwoKLy8gbGlzdHMKTGF5b3V0QnVpbGRlci5wcm90b3R5cGUucHJvY2Vzc0xpc3QgPSBmdW5jdGlvbiAob3JkZXJlZExpc3QsIG5vZGUpIHsKCXZhciBzZWxmID0gdGhpcywKCQlpdGVtcyA9IG9yZGVyZWRMaXN0ID8gbm9kZS5vbCA6IG5vZGUudWwsCgkJZ2FwU2l6ZSA9IG5vZGUuX2dhcFNpemU7CgoJdGhpcy53cml0ZXIuY29udGV4dCgpLmFkZE1hcmdpbihnYXBTaXplLndpZHRoKTsKCgl2YXIgbmV4dE1hcmtlcjsKCXRoaXMudHJhY2tlci5hdXRvKCdsaW5lQWRkZWQnLCBhZGRNYXJrZXJUb0ZpcnN0TGVhZiwgZnVuY3Rpb24gKCkgewoJCWl0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKCQkJbmV4dE1hcmtlciA9IGl0ZW0ubGlzdE1hcmtlcjsKCQkJc2VsZi5wcm9jZXNzTm9kZShpdGVtKTsKCQkJYWRkQWxsKG5vZGUucG9zaXRpb25zLCBpdGVtLnBvc2l0aW9ucyk7CgkJfSk7Cgl9KTsKCgl0aGlzLndyaXRlci5jb250ZXh0KCkuYWRkTWFyZ2luKC1nYXBTaXplLndpZHRoKTsKCglmdW5jdGlvbiBhZGRNYXJrZXJUb0ZpcnN0TGVhZihsaW5lKSB7CgkJLy8gSSdtIG5vdCB2ZXJ5IGhhcHB5IHdpdGggdGhlIHdheSBsaXN0IHByb2Nlc3NpbmcgaXMgaW1wbGVtZW50ZWQKCQkvLyAoYm90aCBjb2RlIGFuZCBhbGdvcml0aG0gc2hvdWxkIGJlIHJldGhpbmtlZCkKCQlpZiAobmV4dE1hcmtlcikgewoJCQl2YXIgbWFya2VyID0gbmV4dE1hcmtlcjsKCQkJbmV4dE1hcmtlciA9IG51bGw7CgoJCQlpZiAobWFya2VyLmNhbnZhcykgewoJCQkJdmFyIHZlY3RvciA9IG1hcmtlci5jYW52YXNbMF07CgoJCQkJb2Zmc2V0VmVjdG9yKHZlY3RvciwgLW1hcmtlci5fbWluV2lkdGgsIDApOwoJCQkJc2VsZi53cml0ZXIuYWRkVmVjdG9yKHZlY3Rvcik7CgkJCX0gZWxzZSBpZiAobWFya2VyLl9pbmxpbmVzKSB7CgkJCQl2YXIgbWFya2VyTGluZSA9IG5ldyBMaW5lKHNlbGYucGFnZVNpemUud2lkdGgpOwoJCQkJbWFya2VyTGluZS5hZGRJbmxpbmUobWFya2VyLl9pbmxpbmVzWzBdKTsKCQkJCW1hcmtlckxpbmUueCA9IC1tYXJrZXIuX21pbldpZHRoOwoJCQkJbWFya2VyTGluZS55ID0gbGluZS5nZXRBc2NlbmRlckhlaWdodCgpIC0gbWFya2VyTGluZS5nZXRBc2NlbmRlckhlaWdodCgpOwoJCQkJc2VsZi53cml0ZXIuYWRkTGluZShtYXJrZXJMaW5lLCB0cnVlKTsKCQkJfQoJCX0KCX0KfTsKCi8vIHRhYmxlcwpMYXlvdXRCdWlsZGVyLnByb3RvdHlwZS5wcm9jZXNzVGFibGUgPSBmdW5jdGlvbiAodGFibGVOb2RlKSB7Cgl2YXIgcHJvY2Vzc29yID0gbmV3IFRhYmxlUHJvY2Vzc29yKHRhYmxlTm9kZSk7CgoJcHJvY2Vzc29yLmJlZ2luVGFibGUodGhpcy53cml0ZXIpOwoKCXZhciByb3dIZWlnaHRzID0gdGFibGVOb2RlLnRhYmxlLmhlaWdodHM7Cglmb3IgKHZhciBpID0gMCwgbCA9IHRhYmxlTm9kZS50YWJsZS5ib2R5Lmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCXByb2Nlc3Nvci5iZWdpblJvdyhpLCB0aGlzLndyaXRlcik7CgoJCXZhciBoZWlnaHQ7CgkJaWYgKGlzRnVuY3Rpb24ocm93SGVpZ2h0cykpIHsKCQkJaGVpZ2h0ID0gcm93SGVpZ2h0cyhpKTsKCQl9IGVsc2UgaWYgKGlzQXJyYXkocm93SGVpZ2h0cykpIHsKCQkJaGVpZ2h0ID0gcm93SGVpZ2h0c1tpXTsKCQl9IGVsc2UgewoJCQloZWlnaHQgPSByb3dIZWlnaHRzOwoJCX0KCgkJaWYgKGhlaWdodCA9PT0gJ2F1dG8nKSB7CgkJCWhlaWdodCA9IHVuZGVmaW5lZDsKCQl9CgoJCXZhciByZXN1bHQgPSB0aGlzLnByb2Nlc3NSb3codGFibGVOb2RlLnRhYmxlLmJvZHlbaV0sIHRhYmxlTm9kZS50YWJsZS53aWR0aHMsIHRhYmxlTm9kZS5fb2Zmc2V0cy5vZmZzZXRzLCB0YWJsZU5vZGUudGFibGUuYm9keSwgaSwgaGVpZ2h0KTsKCQlhZGRBbGwodGFibGVOb2RlLnBvc2l0aW9ucywgcmVzdWx0LnBvc2l0aW9ucyk7CgoJCXByb2Nlc3Nvci5lbmRSb3coaSwgdGhpcy53cml0ZXIsIHJlc3VsdC5wYWdlQnJlYWtzKTsKCX0KCglwcm9jZXNzb3IuZW5kVGFibGUodGhpcy53cml0ZXIpOwp9OwoKLy8gbGVhZnMgKHRleHRzKQpMYXlvdXRCdWlsZGVyLnByb3RvdHlwZS5wcm9jZXNzTGVhZiA9IGZ1bmN0aW9uIChub2RlKSB7Cgl2YXIgbGluZSA9IHRoaXMuYnVpbGROZXh0TGluZShub2RlKTsKCXZhciBjdXJyZW50SGVpZ2h0ID0gKGxpbmUpID8gbGluZS5nZXRIZWlnaHQoKSA6IDA7Cgl2YXIgbWF4SGVpZ2h0ID0gbm9kZS5tYXhIZWlnaHQgfHwgLTE7CgoJaWYgKG5vZGUuX3RvY0l0ZW1SZWYpIHsKCQlsaW5lLl9wYWdlTm9kZVJlZiA9IG5vZGUuX3RvY0l0ZW1SZWY7Cgl9CgoJaWYgKG5vZGUuX3BhZ2VSZWYpIHsKCQlsaW5lLl9wYWdlTm9kZVJlZiA9IG5vZGUuX3BhZ2VSZWYuX25vZGVSZWY7Cgl9CgoJd2hpbGUgKGxpbmUgJiYgKG1heEhlaWdodCA9PT0gLTEgfHwgY3VycmVudEhlaWdodCA8IG1heEhlaWdodCkpIHsKCQl2YXIgcG9zaXRpb25zID0gdGhpcy53cml0ZXIuYWRkTGluZShsaW5lKTsKCQlub2RlLnBvc2l0aW9ucy5wdXNoKHBvc2l0aW9ucyk7CgkJbGluZSA9IHRoaXMuYnVpbGROZXh0TGluZShub2RlKTsKCQlpZiAobGluZSkgewoJCQljdXJyZW50SGVpZ2h0ICs9IGxpbmUuZ2V0SGVpZ2h0KCk7CgkJfQoJfQp9OwoKTGF5b3V0QnVpbGRlci5wcm90b3R5cGUucHJvY2Vzc1RvYyA9IGZ1bmN0aW9uIChub2RlKSB7CglpZiAobm9kZS50b2MudGl0bGUpIHsKCQl0aGlzLnByb2Nlc3NOb2RlKG5vZGUudG9jLnRpdGxlKTsKCX0KCXRoaXMucHJvY2Vzc05vZGUobm9kZS50b2MuX3RhYmxlKTsKfTsKCkxheW91dEJ1aWxkZXIucHJvdG90eXBlLmJ1aWxkTmV4dExpbmUgPSBmdW5jdGlvbiAodGV4dE5vZGUpIHsKCglmdW5jdGlvbiBjbG9uZUlubGluZShpbmxpbmUpIHsKCQl2YXIgbmV3SW5saW5lID0gaW5saW5lLmNvbnN0cnVjdG9yKCk7CgkJZm9yICh2YXIga2V5IGluIGlubGluZSkgewoJCQluZXdJbmxpbmVba2V5XSA9IGlubGluZVtrZXldOwoJCX0KCQlyZXR1cm4gbmV3SW5saW5lOwoJfQoKCWlmICghdGV4dE5vZGUuX2lubGluZXMgfHwgdGV4dE5vZGUuX2lubGluZXMubGVuZ3RoID09PSAwKSB7CgkJcmV0dXJuIG51bGw7Cgl9CgoJdmFyIGxpbmUgPSBuZXcgTGluZSh0aGlzLndyaXRlci5jb250ZXh0KCkuYXZhaWxhYmxlV2lkdGgpOwoJdmFyIHRleHRUb29scyA9IG5ldyBUZXh0VG9vbHMobnVsbCk7CgoJd2hpbGUgKHRleHROb2RlLl9pbmxpbmVzICYmIHRleHROb2RlLl9pbmxpbmVzLmxlbmd0aCA+IDAgJiYgbGluZS5oYXNFbm91Z2hTcGFjZUZvcklubGluZSh0ZXh0Tm9kZS5faW5saW5lc1swXSkpIHsKCQl2YXIgaW5saW5lID0gdGV4dE5vZGUuX2lubGluZXMuc2hpZnQoKTsKCgkJaWYgKCFpbmxpbmUubm9XcmFwICYmIGlubGluZS50ZXh0Lmxlbmd0aCA+IDEgJiYgaW5saW5lLndpZHRoID4gbGluZS5tYXhXaWR0aCkgewoJCQl2YXIgd2lkdGhQZXJDaGFyID0gaW5saW5lLndpZHRoIC8gaW5saW5lLnRleHQubGVuZ3RoOwoJCQl2YXIgbWF4Q2hhcnMgPSBNYXRoLmZsb29yKGxpbmUubWF4V2lkdGggLyB3aWR0aFBlckNoYXIpOwoJCQlpZiAobWF4Q2hhcnMgPCAxKSB7CgkJCQltYXhDaGFycyA9IDE7CgkJCX0KCQkJaWYgKG1heENoYXJzIDwgaW5saW5lLnRleHQubGVuZ3RoKSB7CgkJCQl2YXIgbmV3SW5saW5lID0gY2xvbmVJbmxpbmUoaW5saW5lKTsKCgkJCQluZXdJbmxpbmUudGV4dCA9IGlubGluZS50ZXh0LnN1YnN0cihtYXhDaGFycyk7CgkJCQlpbmxpbmUudGV4dCA9IGlubGluZS50ZXh0LnN1YnN0cigwLCBtYXhDaGFycyk7CgoJCQkJbmV3SW5saW5lLndpZHRoID0gdGV4dFRvb2xzLndpZHRoT2ZTdHJpbmcobmV3SW5saW5lLnRleHQsIG5ld0lubGluZS5mb250LCBuZXdJbmxpbmUuZm9udFNpemUsIG5ld0lubGluZS5jaGFyYWN0ZXJTcGFjaW5nLCBuZXdJbmxpbmUuZm9udEZlYXR1cmVzKTsKCQkJCWlubGluZS53aWR0aCA9IHRleHRUb29scy53aWR0aE9mU3RyaW5nKGlubGluZS50ZXh0LCBpbmxpbmUuZm9udCwgaW5saW5lLmZvbnRTaXplLCBpbmxpbmUuY2hhcmFjdGVyU3BhY2luZywgaW5saW5lLmZvbnRGZWF0dXJlcyk7CgoJCQkJdGV4dE5vZGUuX2lubGluZXMudW5zaGlmdChuZXdJbmxpbmUpOwoJCQl9CgkJfQoKCQlsaW5lLmFkZElubGluZShpbmxpbmUpOwoJfQoKCWxpbmUubGFzdExpbmVJblBhcmFncmFwaCA9IHRleHROb2RlLl9pbmxpbmVzLmxlbmd0aCA9PT0gMDsKCglyZXR1cm4gbGluZTsKfTsKCi8vIGltYWdlcwpMYXlvdXRCdWlsZGVyLnByb3RvdHlwZS5wcm9jZXNzSW1hZ2UgPSBmdW5jdGlvbiAobm9kZSkgewoJdmFyIHBvc2l0aW9uID0gdGhpcy53cml0ZXIuYWRkSW1hZ2Uobm9kZSk7Cglub2RlLnBvc2l0aW9ucy5wdXNoKHBvc2l0aW9uKTsKfTsKCkxheW91dEJ1aWxkZXIucHJvdG90eXBlLnByb2Nlc3NDYW52YXMgPSBmdW5jdGlvbiAobm9kZSkgewoJdmFyIGhlaWdodCA9IG5vZGUuX21pbkhlaWdodDsKCglpZiAobm9kZS5hYnNvbHV0ZVBvc2l0aW9uID09PSB1bmRlZmluZWQgJiYgdGhpcy53cml0ZXIuY29udGV4dCgpLmF2YWlsYWJsZUhlaWdodCA8IGhlaWdodCkgewoJCS8vIFRPRE86IHN1cHBvcnQgZm9yIGNhbnZhcyBsYXJnZXIgdGhhbiBhIHBhZ2UKCQkvLyBUT0RPOiBzdXBwb3J0IGZvciBvdGhlciBvdmVyZmxvdyBtZXRob2RzCgoJCXRoaXMud3JpdGVyLm1vdmVUb05leHRQYWdlKCk7Cgl9CgoJdGhpcy53cml0ZXIuYWxpZ25DYW52YXMobm9kZSk7CgoJbm9kZS5jYW52YXMuZm9yRWFjaChmdW5jdGlvbiAodmVjdG9yKSB7CgkJdmFyIHBvc2l0aW9uID0gdGhpcy53cml0ZXIuYWRkVmVjdG9yKHZlY3Rvcik7CgkJbm9kZS5wb3NpdGlvbnMucHVzaChwb3NpdGlvbik7Cgl9LCB0aGlzKTsKCgl0aGlzLndyaXRlci5jb250ZXh0KCkubW92ZURvd24oaGVpZ2h0KTsKfTsKCkxheW91dEJ1aWxkZXIucHJvdG90eXBlLnByb2Nlc3NRciA9IGZ1bmN0aW9uIChub2RlKSB7Cgl2YXIgcG9zaXRpb24gPSB0aGlzLndyaXRlci5hZGRRcihub2RlKTsKCW5vZGUucG9zaXRpb25zLnB1c2gocG9zaXRpb24pOwp9OwoKbW9kdWxlLmV4cG9ydHMgPSBMYXlvdXRCdWlsZGVyOwoKCi8qKiovIH0pLAovKiAxMjkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oQnVmZmVyKSB7Cgp2YXIgaXNTdHJpbmcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzU3RyaW5nOwp2YXIgaXNOdW1iZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzTnVtYmVyOwp2YXIgaXNCb29sZWFuID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5pc0Jvb2xlYW47CnZhciBpc0FycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5pc0FycmF5Owp2YXIgaXNVbmRlZmluZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzVW5kZWZpbmVkOwp2YXIgZm9udFN0cmluZ2lmeSA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuZm9udFN0cmluZ2lmeTsKCmZ1bmN0aW9uIERvY1ByZXByb2Nlc3NvcigpIHsKCn0KCkRvY1ByZXByb2Nlc3Nvci5wcm90b3R5cGUucHJlcHJvY2Vzc0RvY3VtZW50ID0gZnVuY3Rpb24gKGRvY1N0cnVjdHVyZSkgewoJdGhpcy50b2NzID0gW107Cgl0aGlzLm5vZGVSZWZlcmVuY2VzID0gW107CglyZXR1cm4gdGhpcy5wcmVwcm9jZXNzTm9kZShkb2NTdHJ1Y3R1cmUpOwp9OwoKRG9jUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5wcmVwcm9jZXNzTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CgkvLyBleHBhbmQgc2hvcnRjdXRzIGFuZCBjYXN0aW5nIHZhbHVlcwoJaWYgKGlzQXJyYXkobm9kZSkpIHsKCQlub2RlID0ge3N0YWNrOiBub2RlfTsKCX0gZWxzZSBpZiAoaXNTdHJpbmcobm9kZSkpIHsKCQlub2RlID0ge3RleHQ6IG5vZGV9OwoJfSBlbHNlIGlmIChpc051bWJlcihub2RlKSB8fCBpc0Jvb2xlYW4obm9kZSkpIHsKCQlub2RlID0ge3RleHQ6IG5vZGUudG9TdHJpbmcoKX07Cgl9IGVsc2UgaWYgKG5vZGUgPT09IG51bGwpIHsKCQlub2RlID0ge3RleHQ6ICcnfTsKCX0gZWxzZSBpZiAoT2JqZWN0LmtleXMobm9kZSkubGVuZ3RoID09PSAwKSB7IC8vIGVtcHR5IG9iamVjdAoJCW5vZGUgPSB7dGV4dDogJyd9OwoJfQoKCWlmIChub2RlLmNvbHVtbnMpIHsKCQlyZXR1cm4gdGhpcy5wcmVwcm9jZXNzQ29sdW1ucyhub2RlKTsKCX0gZWxzZSBpZiAobm9kZS5zdGFjaykgewoJCXJldHVybiB0aGlzLnByZXByb2Nlc3NWZXJ0aWNhbENvbnRhaW5lcihub2RlKTsKCX0gZWxzZSBpZiAobm9kZS51bCkgewoJCXJldHVybiB0aGlzLnByZXByb2Nlc3NMaXN0KG5vZGUpOwoJfSBlbHNlIGlmIChub2RlLm9sKSB7CgkJcmV0dXJuIHRoaXMucHJlcHJvY2Vzc0xpc3Qobm9kZSk7Cgl9IGVsc2UgaWYgKG5vZGUudGFibGUpIHsKCQlyZXR1cm4gdGhpcy5wcmVwcm9jZXNzVGFibGUobm9kZSk7Cgl9IGVsc2UgaWYgKG5vZGUudGV4dCAhPT0gdW5kZWZpbmVkKSB7CgkJcmV0dXJuIHRoaXMucHJlcHJvY2Vzc1RleHQobm9kZSk7Cgl9IGVsc2UgaWYgKG5vZGUudG9jKSB7CgkJcmV0dXJuIHRoaXMucHJlcHJvY2Vzc1RvYyhub2RlKTsKCX0gZWxzZSBpZiAobm9kZS5pbWFnZSkgewoJCXJldHVybiB0aGlzLnByZXByb2Nlc3NJbWFnZShub2RlKTsKCX0gZWxzZSBpZiAobm9kZS5jYW52YXMpIHsKCQlyZXR1cm4gdGhpcy5wcmVwcm9jZXNzQ2FudmFzKG5vZGUpOwoJfSBlbHNlIGlmIChub2RlLnFyKSB7CgkJcmV0dXJuIHRoaXMucHJlcHJvY2Vzc1FyKG5vZGUpOwoJfSBlbHNlIGlmIChub2RlLnBhZ2VSZWZlcmVuY2UgfHwgbm9kZS50ZXh0UmVmZXJlbmNlKSB7CgkJcmV0dXJuIHRoaXMucHJlcHJvY2Vzc1RleHQobm9kZSk7Cgl9IGVsc2UgewoJCXRocm93ICdVbnJlY29nbml6ZWQgZG9jdW1lbnQgc3RydWN0dXJlOiAnICsgSlNPTi5zdHJpbmdpZnkobm9kZSwgZm9udFN0cmluZ2lmeSk7Cgl9Cn07CgpEb2NQcmVwcm9jZXNzb3IucHJvdG90eXBlLnByZXByb2Nlc3NDb2x1bW5zID0gZnVuY3Rpb24gKG5vZGUpIHsKCXZhciBjb2x1bW5zID0gbm9kZS5jb2x1bW5zOwoKCWZvciAodmFyIGkgPSAwLCBsID0gY29sdW1ucy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQljb2x1bW5zW2ldID0gdGhpcy5wcmVwcm9jZXNzTm9kZShjb2x1bW5zW2ldKTsKCX0KCglyZXR1cm4gbm9kZTsKfTsKCkRvY1ByZXByb2Nlc3Nvci5wcm90b3R5cGUucHJlcHJvY2Vzc1ZlcnRpY2FsQ29udGFpbmVyID0gZnVuY3Rpb24gKG5vZGUpIHsKCXZhciBpdGVtcyA9IG5vZGUuc3RhY2s7CgoJZm9yICh2YXIgaSA9IDAsIGwgPSBpdGVtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQlpdGVtc1tpXSA9IHRoaXMucHJlcHJvY2Vzc05vZGUoaXRlbXNbaV0pOwoJfQoKCXJldHVybiBub2RlOwp9OwoKRG9jUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5wcmVwcm9jZXNzTGlzdCA9IGZ1bmN0aW9uIChub2RlKSB7Cgl2YXIgaXRlbXMgPSBub2RlLnVsIHx8IG5vZGUub2w7CgoJZm9yICh2YXIgaSA9IDAsIGwgPSBpdGVtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQlpdGVtc1tpXSA9IHRoaXMucHJlcHJvY2Vzc05vZGUoaXRlbXNbaV0pOwoJfQoKCXJldHVybiBub2RlOwp9OwoKRG9jUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5wcmVwcm9jZXNzVGFibGUgPSBmdW5jdGlvbiAobm9kZSkgewoJdmFyIGNvbCwgcm93LCBjb2xzLCByb3dzOwoKCWZvciAoY29sID0gMCwgY29scyA9IG5vZGUudGFibGUuYm9keVswXS5sZW5ndGg7IGNvbCA8IGNvbHM7IGNvbCsrKSB7CgkJZm9yIChyb3cgPSAwLCByb3dzID0gbm9kZS50YWJsZS5ib2R5Lmxlbmd0aDsgcm93IDwgcm93czsgcm93KyspIHsKCQkJdmFyIHJvd0RhdGEgPSBub2RlLnRhYmxlLmJvZHlbcm93XTsKCQkJdmFyIGRhdGEgPSByb3dEYXRhW2NvbF07CgkJCWlmIChkYXRhICE9PSB1bmRlZmluZWQpIHsKCQkJCWlmIChkYXRhID09PSBudWxsKSB7IC8vIHRyYW5zZm9ybSB0byBvYmplY3QKCQkJCQlkYXRhID0gJyc7CgkJCQl9CgkJCQlpZiAoIWRhdGEuX3NwYW4pIHsKCQkJCQlyb3dEYXRhW2NvbF0gPSB0aGlzLnByZXByb2Nlc3NOb2RlKGRhdGEpOwoJCQkJfQoJCQl9CgkJfQoJfQoKCXJldHVybiBub2RlOwp9OwoKRG9jUHJlcHJvY2Vzc29yLnByb3RvdHlwZS5wcmVwcm9jZXNzVGV4dCA9IGZ1bmN0aW9uIChub2RlKSB7CglpZiAobm9kZS50b2NJdGVtKSB7CgkJaWYgKCFpc0FycmF5KG5vZGUudG9jSXRlbSkpIHsKCQkJbm9kZS50b2NJdGVtID0gW25vZGUudG9jSXRlbV07CgkJfQoKCQlmb3IgKHZhciBpID0gMCwgbCA9IG5vZGUudG9jSXRlbS5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQkJaWYgKCFpc1N0cmluZyhub2RlLnRvY0l0ZW1baV0pKSB7CgkJCQlub2RlLnRvY0l0ZW1baV0gPSAnX2RlZmF1bHRfJzsKCQkJfQoKCQkJdmFyIHRvY0l0ZW1JZCA9IG5vZGUudG9jSXRlbVtpXTsKCgkJCWlmICghdGhpcy50b2NzW3RvY0l0ZW1JZF0pIHsKCQkJCXRoaXMudG9jc1t0b2NJdGVtSWRdID0ge3RvYzoge19pdGVtczogW10sIF9wc2V1ZG86IHRydWV9fTsKCQkJfQoKCQkJdGhpcy50b2NzW3RvY0l0ZW1JZF0udG9jLl9pdGVtcy5wdXNoKG5vZGUpOwoJCX0KCX0KCglpZiAobm9kZS5pZCkgewoJCWlmICh0aGlzLm5vZGVSZWZlcmVuY2VzW25vZGUuaWRdKSB7CgkJCWlmICghdGhpcy5ub2RlUmVmZXJlbmNlc1tub2RlLmlkXS5fcHNldWRvKSB7CgkJCQl0aHJvdyAiTm9kZSBpZCAnIiArIG5vZGUuaWQgKyAiJyBhbHJlYWR5IGV4aXN0cyI7CgkJCX0KCgkJCXRoaXMubm9kZVJlZmVyZW5jZXNbbm9kZS5pZF0uX25vZGVSZWYgPSBub2RlOwoJCQl0aGlzLm5vZGVSZWZlcmVuY2VzW25vZGUuaWRdLl9wc2V1ZG8gPSBmYWxzZTsKCQl9IGVsc2UgewoJCQl0aGlzLm5vZGVSZWZlcmVuY2VzW25vZGUuaWRdID0ge19ub2RlUmVmOiBub2RlfTsKCQl9Cgl9CgoJaWYgKG5vZGUucGFnZVJlZmVyZW5jZSkgewoJCWlmICghdGhpcy5ub2RlUmVmZXJlbmNlc1tub2RlLnBhZ2VSZWZlcmVuY2VdKSB7CgkJCXRoaXMubm9kZVJlZmVyZW5jZXNbbm9kZS5wYWdlUmVmZXJlbmNlXSA9IHtfbm9kZVJlZjoge30sIF9wc2V1ZG86IHRydWV9OwoJCX0KCQlub2RlLnRleHQgPSAnMDAwMDAnOwoJCW5vZGUuX3BhZ2VSZWYgPSB0aGlzLm5vZGVSZWZlcmVuY2VzW25vZGUucGFnZVJlZmVyZW5jZV07Cgl9CgoJaWYgKG5vZGUudGV4dFJlZmVyZW5jZSkgewoJCWlmICghdGhpcy5ub2RlUmVmZXJlbmNlc1tub2RlLnRleHRSZWZlcmVuY2VdKSB7CgkJCXRoaXMubm9kZVJlZmVyZW5jZXNbbm9kZS50ZXh0UmVmZXJlbmNlXSA9IHtfbm9kZVJlZjoge30sIF9wc2V1ZG86IHRydWV9OwoJCX0KCgkJbm9kZS50ZXh0ID0gJyc7CgkJbm9kZS5fdGV4dFJlZiA9IHRoaXMubm9kZVJlZmVyZW5jZXNbbm9kZS50ZXh0UmVmZXJlbmNlXTsKCX0KCglpZiAobm9kZS50ZXh0ICYmIG5vZGUudGV4dC50ZXh0KSB7CgkJbm9kZS50ZXh0ID0gW3RoaXMucHJlcHJvY2Vzc05vZGUobm9kZS50ZXh0KV07Cgl9CgoJcmV0dXJuIG5vZGU7Cn07CgpEb2NQcmVwcm9jZXNzb3IucHJvdG90eXBlLnByZXByb2Nlc3NUb2MgPSBmdW5jdGlvbiAobm9kZSkgewoJaWYgKCFub2RlLnRvYy5pZCkgewoJCW5vZGUudG9jLmlkID0gJ19kZWZhdWx0Xyc7Cgl9CgoJbm9kZS50b2MudGl0bGUgPSBub2RlLnRvYy50aXRsZSA/IHRoaXMucHJlcHJvY2Vzc05vZGUobm9kZS50b2MudGl0bGUpIDogbnVsbDsKCW5vZGUudG9jLl9pdGVtcyA9IFtdOwoKCWlmICh0aGlzLnRvY3Nbbm9kZS50b2MuaWRdKSB7CgkJaWYgKCF0aGlzLnRvY3Nbbm9kZS50b2MuaWRdLnRvYy5fcHNldWRvKSB7CgkJCXRocm93ICJUT0MgJyIgKyBub2RlLnRvYy5pZCArICInIGFscmVhZHkgZXhpc3RzIjsKCQl9CgoJCW5vZGUudG9jLl9pdGVtcyA9IHRoaXMudG9jc1tub2RlLnRvYy5pZF0udG9jLl9pdGVtczsKCX0KCgl0aGlzLnRvY3Nbbm9kZS50b2MuaWRdID0gbm9kZTsKCglyZXR1cm4gbm9kZTsKfTsKCkRvY1ByZXByb2Nlc3Nvci5wcm90b3R5cGUucHJlcHJvY2Vzc0ltYWdlID0gZnVuY3Rpb24gKG5vZGUpIHsKCWlmICghaXNVbmRlZmluZWQobm9kZS5pbWFnZS50eXBlKSAmJiAhaXNVbmRlZmluZWQobm9kZS5pbWFnZS5kYXRhKSAmJiAobm9kZS5pbWFnZS50eXBlID09PSAnQnVmZmVyJykgJiYgaXNBcnJheShub2RlLmltYWdlLmRhdGEpKSB7CgkJbm9kZS5pbWFnZSA9IEJ1ZmZlci5mcm9tKG5vZGUuaW1hZ2UuZGF0YSk7Cgl9CglyZXR1cm4gbm9kZTsKfTsKCkRvY1ByZXByb2Nlc3Nvci5wcm90b3R5cGUucHJlcHJvY2Vzc0NhbnZhcyA9IGZ1bmN0aW9uIChub2RlKSB7CglyZXR1cm4gbm9kZTsKfTsKCkRvY1ByZXByb2Nlc3Nvci5wcm90b3R5cGUucHJlcHJvY2Vzc1FyID0gZnVuY3Rpb24gKG5vZGUpIHsKCXJldHVybiBub2RlOwp9OwoKbW9kdWxlLmV4cG9ydHMgPSBEb2NQcmVwcm9jZXNzb3I7Ci8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpLkJ1ZmZlcikpCgovKioqLyB9KSwKLyogMTMwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFsiZXJyb3IiLCB7ImFyZ3MiOiAibm9uZSJ9XSovCgoKCnZhciBUZXh0VG9vbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQyKTsKdmFyIFN0eWxlQ29udGV4dFN0YWNrID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4MCk7CnZhciBDb2x1bW5DYWxjdWxhdG9yID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NCk7CnZhciBpc1N0cmluZyA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNTdHJpbmc7CnZhciBpc051bWJlciA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNOdW1iZXI7CnZhciBpc09iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNPYmplY3Q7CnZhciBpc0FycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5pc0FycmF5Owp2YXIgZm9udFN0cmluZ2lmeSA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuZm9udFN0cmluZ2lmeTsKdmFyIHBhY2sgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLnBhY2s7CnZhciBxckVuY29kZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzNCk7CgovKioKICogQHByaXZhdGUKICovCmZ1bmN0aW9uIERvY01lYXN1cmUoZm9udFByb3ZpZGVyLCBzdHlsZURpY3Rpb25hcnksIGRlZmF1bHRTdHlsZSwgaW1hZ2VNZWFzdXJlLCB0YWJsZUxheW91dHMsIGltYWdlcykgewoJdGhpcy50ZXh0VG9vbHMgPSBuZXcgVGV4dFRvb2xzKGZvbnRQcm92aWRlcik7Cgl0aGlzLnN0eWxlU3RhY2sgPSBuZXcgU3R5bGVDb250ZXh0U3RhY2soc3R5bGVEaWN0aW9uYXJ5LCBkZWZhdWx0U3R5bGUpOwoJdGhpcy5pbWFnZU1lYXN1cmUgPSBpbWFnZU1lYXN1cmU7Cgl0aGlzLnRhYmxlTGF5b3V0cyA9IHRhYmxlTGF5b3V0czsKCXRoaXMuaW1hZ2VzID0gaW1hZ2VzOwoJdGhpcy5hdXRvSW1hZ2VJbmRleCA9IDE7Cn0KCi8qKgogKiBNZWFzdXJlcyBhbGwgbm9kZXMgYW5kIHNldHMgbWluL21heC13aWR0aCBwcm9wZXJ0aWVzIHJlcXVpcmVkIGZvciB0aGUgc2Vjb25kCiAqIGxheW91dC1wYXNzLgogKiBAcGFyYW0gIHtPYmplY3R9IGRvY1N0cnVjdHVyZSBkb2N1bWVudC1kZWZpbml0aW9uLW9iamVjdAogKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICBkb2N1bWVudC1tZWFzdXJlbWVudC1vYmplY3QKICovCkRvY01lYXN1cmUucHJvdG90eXBlLm1lYXN1cmVEb2N1bWVudCA9IGZ1bmN0aW9uIChkb2NTdHJ1Y3R1cmUpIHsKCXJldHVybiB0aGlzLm1lYXN1cmVOb2RlKGRvY1N0cnVjdHVyZSk7Cn07CgpEb2NNZWFzdXJlLnByb3RvdHlwZS5tZWFzdXJlTm9kZSA9IGZ1bmN0aW9uIChub2RlKSB7CgoJdmFyIHNlbGYgPSB0aGlzOwoKCXJldHVybiB0aGlzLnN0eWxlU3RhY2suYXV0byhub2RlLCBmdW5jdGlvbiAoKSB7CgkJLy8gVE9ETzogcmVmYWN0b3IgKyByZXRoaW5rIHdoZXRoZXIgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBoYW5kbGUgbWFyZ2lucwoJCW5vZGUuX21hcmdpbiA9IGdldE5vZGVNYXJnaW4obm9kZSk7CgoJCWlmIChub2RlLmNvbHVtbnMpIHsKCQkJcmV0dXJuIGV4dGVuZE1hcmdpbnMoc2VsZi5tZWFzdXJlQ29sdW1ucyhub2RlKSk7CgkJfSBlbHNlIGlmIChub2RlLnN0YWNrKSB7CgkJCXJldHVybiBleHRlbmRNYXJnaW5zKHNlbGYubWVhc3VyZVZlcnRpY2FsQ29udGFpbmVyKG5vZGUpKTsKCQl9IGVsc2UgaWYgKG5vZGUudWwpIHsKCQkJcmV0dXJuIGV4dGVuZE1hcmdpbnMoc2VsZi5tZWFzdXJlVW5vcmRlcmVkTGlzdChub2RlKSk7CgkJfSBlbHNlIGlmIChub2RlLm9sKSB7CgkJCXJldHVybiBleHRlbmRNYXJnaW5zKHNlbGYubWVhc3VyZU9yZGVyZWRMaXN0KG5vZGUpKTsKCQl9IGVsc2UgaWYgKG5vZGUudGFibGUpIHsKCQkJcmV0dXJuIGV4dGVuZE1hcmdpbnMoc2VsZi5tZWFzdXJlVGFibGUobm9kZSkpOwoJCX0gZWxzZSBpZiAobm9kZS50ZXh0ICE9PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIGV4dGVuZE1hcmdpbnMoc2VsZi5tZWFzdXJlTGVhZihub2RlKSk7CgkJfSBlbHNlIGlmIChub2RlLnRvYykgewoJCQlyZXR1cm4gZXh0ZW5kTWFyZ2lucyhzZWxmLm1lYXN1cmVUb2Mobm9kZSkpOwoJCX0gZWxzZSBpZiAobm9kZS5pbWFnZSkgewoJCQlyZXR1cm4gZXh0ZW5kTWFyZ2lucyhzZWxmLm1lYXN1cmVJbWFnZShub2RlKSk7CgkJfSBlbHNlIGlmIChub2RlLmNhbnZhcykgewoJCQlyZXR1cm4gZXh0ZW5kTWFyZ2lucyhzZWxmLm1lYXN1cmVDYW52YXMobm9kZSkpOwoJCX0gZWxzZSBpZiAobm9kZS5xcikgewoJCQlyZXR1cm4gZXh0ZW5kTWFyZ2lucyhzZWxmLm1lYXN1cmVRcihub2RlKSk7CgkJfSBlbHNlIHsKCQkJdGhyb3cgJ1VucmVjb2duaXplZCBkb2N1bWVudCBzdHJ1Y3R1cmU6ICcgKyBKU09OLnN0cmluZ2lmeShub2RlLCBmb250U3RyaW5naWZ5KTsKCQl9Cgl9KTsKCglmdW5jdGlvbiBleHRlbmRNYXJnaW5zKG5vZGUpIHsKCQl2YXIgbWFyZ2luID0gbm9kZS5fbWFyZ2luOwoKCQlpZiAobWFyZ2luKSB7CgkJCW5vZGUuX21pbldpZHRoICs9IG1hcmdpblswXSArIG1hcmdpblsyXTsKCQkJbm9kZS5fbWF4V2lkdGggKz0gbWFyZ2luWzBdICsgbWFyZ2luWzJdOwoJCX0KCgkJcmV0dXJuIG5vZGU7Cgl9CgoJZnVuY3Rpb24gZ2V0Tm9kZU1hcmdpbigpIHsKCgkJZnVuY3Rpb24gcHJvY2Vzc1NpbmdsZU1hcmdpbnMobm9kZSwgY3VycmVudE1hcmdpbikgewoJCQlpZiAobm9kZS5tYXJnaW5MZWZ0IHx8IG5vZGUubWFyZ2luVG9wIHx8IG5vZGUubWFyZ2luUmlnaHQgfHwgbm9kZS5tYXJnaW5Cb3R0b20pIHsKCQkJCXJldHVybiBbCgkJCQkJbm9kZS5tYXJnaW5MZWZ0IHx8IGN1cnJlbnRNYXJnaW5bMF0gfHwgMCwKCQkJCQlub2RlLm1hcmdpblRvcCB8fCBjdXJyZW50TWFyZ2luWzFdIHx8IDAsCgkJCQkJbm9kZS5tYXJnaW5SaWdodCB8fCBjdXJyZW50TWFyZ2luWzJdIHx8IDAsCgkJCQkJbm9kZS5tYXJnaW5Cb3R0b20gfHwgY3VycmVudE1hcmdpblszXSB8fCAwCgkJCQldOwoJCQl9CgkJCXJldHVybiBjdXJyZW50TWFyZ2luOwoJCX0KCgkJZnVuY3Rpb24gZmxhdHRlblN0eWxlQXJyYXkoc3R5bGVBcnJheSkgewoJCQl2YXIgZmxhdHRlbmVkU3R5bGVzID0ge307CgkJCWZvciAodmFyIGkgPSBzdHlsZUFycmF5Lmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CgkJCQl2YXIgc3R5bGVOYW1lID0gc3R5bGVBcnJheVtpXTsKCQkJCXZhciBzdHlsZSA9IHNlbGYuc3R5bGVTdGFjay5zdHlsZURpY3Rpb25hcnlbc3R5bGVOYW1lXTsKCQkJCWZvciAodmFyIGtleSBpbiBzdHlsZSkgewoJCQkJCWlmIChzdHlsZS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7CgkJCQkJCWZsYXR0ZW5lZFN0eWxlc1trZXldID0gc3R5bGVba2V5XTsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJcmV0dXJuIGZsYXR0ZW5lZFN0eWxlczsKCQl9CgoJCWZ1bmN0aW9uIGNvbnZlcnRNYXJnaW4obWFyZ2luKSB7CgkJCWlmIChpc051bWJlcihtYXJnaW4pKSB7CgkJCQltYXJnaW4gPSBbbWFyZ2luLCBtYXJnaW4sIG1hcmdpbiwgbWFyZ2luXTsKCQkJfSBlbHNlIGlmIChpc0FycmF5KG1hcmdpbikpIHsKCQkJCWlmIChtYXJnaW4ubGVuZ3RoID09PSAyKSB7CgkJCQkJbWFyZ2luID0gW21hcmdpblswXSwgbWFyZ2luWzFdLCBtYXJnaW5bMF0sIG1hcmdpblsxXV07CgkJCQl9CgkJCX0KCQkJcmV0dXJuIG1hcmdpbjsKCQl9CgoJCXZhciBtYXJnaW4gPSBbdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkXTsKCgkJaWYgKG5vZGUuc3R5bGUpIHsKCQkJdmFyIHN0eWxlQXJyYXkgPSBpc0FycmF5KG5vZGUuc3R5bGUpID8gbm9kZS5zdHlsZSA6IFtub2RlLnN0eWxlXTsKCQkJdmFyIGZsYXR0ZW5lZFN0eWxlQXJyYXkgPSBmbGF0dGVuU3R5bGVBcnJheShzdHlsZUFycmF5KTsKCgkJCWlmIChmbGF0dGVuZWRTdHlsZUFycmF5KSB7CgkJCQltYXJnaW4gPSBwcm9jZXNzU2luZ2xlTWFyZ2lucyhmbGF0dGVuZWRTdHlsZUFycmF5LCBtYXJnaW4pOwoJCQl9CgoJCQlpZiAoZmxhdHRlbmVkU3R5bGVBcnJheS5tYXJnaW4pIHsKCQkJCW1hcmdpbiA9IGNvbnZlcnRNYXJnaW4oZmxhdHRlbmVkU3R5bGVBcnJheS5tYXJnaW4pOwoJCQl9CgkJfQoKCQltYXJnaW4gPSBwcm9jZXNzU2luZ2xlTWFyZ2lucyhub2RlLCBtYXJnaW4pOwoKCQlpZiAobm9kZS5tYXJnaW4pIHsKCQkJbWFyZ2luID0gY29udmVydE1hcmdpbihub2RlLm1hcmdpbik7CgkJfQoKCQlpZiAobWFyZ2luWzBdID09PSB1bmRlZmluZWQgJiYgbWFyZ2luWzFdID09PSB1bmRlZmluZWQgJiYgbWFyZ2luWzJdID09PSB1bmRlZmluZWQgJiYgbWFyZ2luWzNdID09PSB1bmRlZmluZWQpIHsKCQkJcmV0dXJuIG51bGw7CgkJfSBlbHNlIHsKCQkJcmV0dXJuIG1hcmdpbjsKCQl9Cgl9Cn07CgpEb2NNZWFzdXJlLnByb3RvdHlwZS5jb252ZXJ0SWZCYXNlNjRJbWFnZSA9IGZ1bmN0aW9uIChub2RlKSB7CglpZiAoL15kYXRhOmltYWdlXC8oanBlZ3xqcGd8cG5nKTtiYXNlNjQsLy50ZXN0KG5vZGUuaW1hZ2UpKSB7CgkJdmFyIGxhYmVsID0gJyQkcGRmbWFrZSQkJyArIHRoaXMuYXV0b0ltYWdlSW5kZXgrKzsKCQl0aGlzLmltYWdlc1tsYWJlbF0gPSBub2RlLmltYWdlOwoJCW5vZGUuaW1hZ2UgPSBsYWJlbDsKCX0KfTsKCkRvY01lYXN1cmUucHJvdG90eXBlLm1lYXN1cmVJbWFnZSA9IGZ1bmN0aW9uIChub2RlKSB7CglpZiAodGhpcy5pbWFnZXMpIHsKCQl0aGlzLmNvbnZlcnRJZkJhc2U2NEltYWdlKG5vZGUpOwoJfQoKCXZhciBpbWFnZVNpemUgPSB0aGlzLmltYWdlTWVhc3VyZS5tZWFzdXJlSW1hZ2Uobm9kZS5pbWFnZSk7CgoJaWYgKG5vZGUuZml0KSB7CgkJdmFyIGZhY3RvciA9IChpbWFnZVNpemUud2lkdGggLyBpbWFnZVNpemUuaGVpZ2h0ID4gbm9kZS5maXRbMF0gLyBub2RlLmZpdFsxXSkgPyBub2RlLmZpdFswXSAvIGltYWdlU2l6ZS53aWR0aCA6IG5vZGUuZml0WzFdIC8gaW1hZ2VTaXplLmhlaWdodDsKCQlub2RlLl93aWR0aCA9IG5vZGUuX21pbldpZHRoID0gbm9kZS5fbWF4V2lkdGggPSBpbWFnZVNpemUud2lkdGggKiBmYWN0b3I7CgkJbm9kZS5faGVpZ2h0ID0gaW1hZ2VTaXplLmhlaWdodCAqIGZhY3RvcjsKCX0gZWxzZSB7CgkJbm9kZS5fd2lkdGggPSBub2RlLl9taW5XaWR0aCA9IG5vZGUuX21heFdpZHRoID0gbm9kZS53aWR0aCB8fCBpbWFnZVNpemUud2lkdGg7CgkJbm9kZS5faGVpZ2h0ID0gbm9kZS5oZWlnaHQgfHwgKGltYWdlU2l6ZS5oZWlnaHQgKiBub2RlLl93aWR0aCAvIGltYWdlU2l6ZS53aWR0aCk7CgoJCWlmIChpc051bWJlcihub2RlLm1heFdpZHRoKSAmJiBub2RlLm1heFdpZHRoIDwgbm9kZS5fd2lkdGgpIHsKCQkJbm9kZS5fd2lkdGggPSBub2RlLl9taW5XaWR0aCA9IG5vZGUuX21heFdpZHRoID0gbm9kZS5tYXhXaWR0aDsKCQkJbm9kZS5faGVpZ2h0ID0gbm9kZS5fd2lkdGggKiBpbWFnZVNpemUuaGVpZ2h0IC8gaW1hZ2VTaXplLndpZHRoOwoJCX0KCgkJaWYgKGlzTnVtYmVyKG5vZGUubWF4SGVpZ2h0KSAmJiBub2RlLm1heEhlaWdodCA8IG5vZGUuX2hlaWdodCkgewoJCQlub2RlLl9oZWlnaHQgPSBub2RlLm1heEhlaWdodDsKCQkJbm9kZS5fd2lkdGggPSBub2RlLl9taW5XaWR0aCA9IG5vZGUuX21heFdpZHRoID0gbm9kZS5faGVpZ2h0ICogaW1hZ2VTaXplLndpZHRoIC8gaW1hZ2VTaXplLmhlaWdodDsKCQl9CgoJCWlmIChpc051bWJlcihub2RlLm1pbldpZHRoKSAmJiBub2RlLm1pbldpZHRoID4gbm9kZS5fd2lkdGgpIHsKCQkJbm9kZS5fd2lkdGggPSBub2RlLl9taW5XaWR0aCA9IG5vZGUuX21heFdpZHRoID0gbm9kZS5taW5XaWR0aDsKCQkJbm9kZS5faGVpZ2h0ID0gbm9kZS5fd2lkdGggKiBpbWFnZVNpemUuaGVpZ2h0IC8gaW1hZ2VTaXplLndpZHRoOwoJCX0KCgkJaWYgKGlzTnVtYmVyKG5vZGUubWluSGVpZ2h0KSAmJiBub2RlLm1pbkhlaWdodCA+IG5vZGUuX2hlaWdodCkgewoJCQlub2RlLl9oZWlnaHQgPSBub2RlLm1pbkhlaWdodDsKCQkJbm9kZS5fd2lkdGggPSBub2RlLl9taW5XaWR0aCA9IG5vZGUuX21heFdpZHRoID0gbm9kZS5faGVpZ2h0ICogaW1hZ2VTaXplLndpZHRoIC8gaW1hZ2VTaXplLmhlaWdodDsKCQl9Cgl9CgoJbm9kZS5fYWxpZ25tZW50ID0gdGhpcy5zdHlsZVN0YWNrLmdldFByb3BlcnR5KCdhbGlnbm1lbnQnKTsKCXJldHVybiBub2RlOwp9OwoKRG9jTWVhc3VyZS5wcm90b3R5cGUubWVhc3VyZUxlYWYgPSBmdW5jdGlvbiAobm9kZSkgewoKCWlmIChub2RlLl90ZXh0UmVmICYmIG5vZGUuX3RleHRSZWYuX25vZGVSZWYudGV4dCkgewoJCW5vZGUudGV4dCA9IG5vZGUuX3RleHRSZWYuX25vZGVSZWYudGV4dDsKCX0KCgkvLyBNYWtlIHN1cmUgc3R5bGUgcHJvcGVydGllcyBvZiB0aGUgbm9kZSBpdHNlbGYgYXJlIGNvbnNpZGVyZWQgd2hlbiBidWlsZGluZyBpbmxpbmVzLgoJLy8gV2UgY291bGQgYWxzbyBqdXN0IHBhc3MgW25vZGVdIHRvIGJ1aWxkSW5saW5lcywgYnV0IHRoYXQgZmFpbHMgZm9yIGJ1bGxldCBwb2ludHMuCgl2YXIgc3R5bGVTdGFjayA9IHRoaXMuc3R5bGVTdGFjay5jbG9uZSgpOwoJc3R5bGVTdGFjay5wdXNoKG5vZGUpOwoKCXZhciBkYXRhID0gdGhpcy50ZXh0VG9vbHMuYnVpbGRJbmxpbmVzKG5vZGUudGV4dCwgc3R5bGVTdGFjayk7CgoJbm9kZS5faW5saW5lcyA9IGRhdGEuaXRlbXM7Cglub2RlLl9taW5XaWR0aCA9IGRhdGEubWluV2lkdGg7Cglub2RlLl9tYXhXaWR0aCA9IGRhdGEubWF4V2lkdGg7CgoJcmV0dXJuIG5vZGU7Cn07CgpEb2NNZWFzdXJlLnByb3RvdHlwZS5tZWFzdXJlVG9jID0gZnVuY3Rpb24gKG5vZGUpIHsKCWlmIChub2RlLnRvYy50aXRsZSkgewoJCW5vZGUudG9jLnRpdGxlID0gdGhpcy5tZWFzdXJlTm9kZShub2RlLnRvYy50aXRsZSk7Cgl9CgoJdmFyIGJvZHkgPSBbXTsKCXZhciB0ZXh0U3R5bGUgPSBub2RlLnRvYy50ZXh0U3R5bGUgfHwge307Cgl2YXIgbnVtYmVyU3R5bGUgPSBub2RlLnRvYy5udW1iZXJTdHlsZSB8fCB0ZXh0U3R5bGU7Cgl2YXIgdGV4dE1hcmdpbiA9IG5vZGUudG9jLnRleHRNYXJnaW4gfHwgWzAsIDAsIDAsIDBdOwoJZm9yICh2YXIgaSA9IDAsIGwgPSBub2RlLnRvYy5faXRlbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJdmFyIGl0ZW0gPSBub2RlLnRvYy5faXRlbXNbaV07CgkJdmFyIGxpbmVTdHlsZSA9IG5vZGUudG9jLl9pdGVtc1tpXS50b2NTdHlsZSB8fCB0ZXh0U3R5bGU7CgkJdmFyIGxpbmVNYXJnaW4gPSBub2RlLnRvYy5faXRlbXNbaV0udG9jTWFyZ2luIHx8IHRleHRNYXJnaW47CgkJYm9keS5wdXNoKFsKCQkJe3RleHQ6IGl0ZW0udGV4dCwgYWxpZ25tZW50OiAnbGVmdCcsIHN0eWxlOiBsaW5lU3R5bGUsIG1hcmdpbjogbGluZU1hcmdpbn0sCgkJCXt0ZXh0OiAnMDAwMDAnLCBhbGlnbm1lbnQ6ICdyaWdodCcsIF90b2NJdGVtUmVmOiBpdGVtLCBzdHlsZTogbnVtYmVyU3R5bGUsIG1hcmdpbjogWzAsIGxpbmVNYXJnaW5bMV0sIDAsIGxpbmVNYXJnaW5bM11dfQoJCV0pOwoJfQoKCglub2RlLnRvYy5fdGFibGUgPSB7CgkJdGFibGU6IHsKCQkJZG9udEJyZWFrUm93czogdHJ1ZSwKCQkJd2lkdGhzOiBbJyonLCAnYXV0byddLAoJCQlib2R5OiBib2R5CgkJfSwKCQlsYXlvdXQ6ICdub0JvcmRlcnMnCgl9OwoKCW5vZGUudG9jLl90YWJsZSA9IHRoaXMubWVhc3VyZU5vZGUobm9kZS50b2MuX3RhYmxlKTsKCglyZXR1cm4gbm9kZTsKfTsKCkRvY01lYXN1cmUucHJvdG90eXBlLm1lYXN1cmVWZXJ0aWNhbENvbnRhaW5lciA9IGZ1bmN0aW9uIChub2RlKSB7Cgl2YXIgaXRlbXMgPSBub2RlLnN0YWNrOwoKCW5vZGUuX21pbldpZHRoID0gMDsKCW5vZGUuX21heFdpZHRoID0gMDsKCglmb3IgKHZhciBpID0gMCwgbCA9IGl0ZW1zLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCWl0ZW1zW2ldID0gdGhpcy5tZWFzdXJlTm9kZShpdGVtc1tpXSk7CgoJCW5vZGUuX21pbldpZHRoID0gTWF0aC5tYXgobm9kZS5fbWluV2lkdGgsIGl0ZW1zW2ldLl9taW5XaWR0aCk7CgkJbm9kZS5fbWF4V2lkdGggPSBNYXRoLm1heChub2RlLl9tYXhXaWR0aCwgaXRlbXNbaV0uX21heFdpZHRoKTsKCX0KCglyZXR1cm4gbm9kZTsKfTsKCkRvY01lYXN1cmUucHJvdG90eXBlLmdhcFNpemVGb3JMaXN0ID0gZnVuY3Rpb24gKCkgewoJcmV0dXJuIHRoaXMudGV4dFRvb2xzLnNpemVPZlN0cmluZygnOS4gJywgdGhpcy5zdHlsZVN0YWNrKTsKfTsKCkRvY01lYXN1cmUucHJvdG90eXBlLmJ1aWxkVW5vcmRlcmVkTWFya2VyID0gZnVuY3Rpb24gKHN0eWxlU3RhY2ssIGdhcFNpemUsIHR5cGUpIHsKCWZ1bmN0aW9uIGJ1aWxkRGlzYyhnYXBTaXplLCBjb2xvcikgewoJCS8vIFRPRE86IGFzY2VuZGVyLWJhc2VkIGNhbGN1bGF0aW9ucwoJCXZhciByYWRpdXMgPSBnYXBTaXplLmZvbnRTaXplIC8gNjsKCQlyZXR1cm4gewoJCQljYW52YXM6IFt7CgkJCQkJeDogcmFkaXVzLAoJCQkJCXk6IChnYXBTaXplLmhlaWdodCAvIGdhcFNpemUubGluZUhlaWdodCkgKyBnYXBTaXplLmRlc2NlbmRlciAtIGdhcFNpemUuZm9udFNpemUgLyAzLAoJCQkJCXIxOiByYWRpdXMsCgkJCQkJcjI6IHJhZGl1cywKCQkJCQl0eXBlOiAnZWxsaXBzZScsCgkJCQkJY29sb3I6IGNvbG9yCgkJCQl9XQoJCX07Cgl9CgoJZnVuY3Rpb24gYnVpbGRTcXVhcmUoZ2FwU2l6ZSwgY29sb3IpIHsKCQkvLyBUT0RPOiBhc2NlbmRlci1iYXNlZCBjYWxjdWxhdGlvbnMKCQl2YXIgc2l6ZSA9IGdhcFNpemUuZm9udFNpemUgLyAzOwoJCXJldHVybiB7CgkJCWNhbnZhczogW3sKCQkJCQl4OiAwLAoJCQkJCXk6IChnYXBTaXplLmhlaWdodCAvIGdhcFNpemUubGluZUhlaWdodCkgKyBnYXBTaXplLmRlc2NlbmRlciAtIChnYXBTaXplLmZvbnRTaXplIC8gMykgLSAoc2l6ZSAvIDIpLAoJCQkJCWg6IHNpemUsCgkJCQkJdzogc2l6ZSwKCQkJCQl0eXBlOiAncmVjdCcsCgkJCQkJY29sb3I6IGNvbG9yCgkJCQl9XQoJCX07Cgl9CgoJZnVuY3Rpb24gYnVpbGRDaXJjbGUoZ2FwU2l6ZSwgY29sb3IpIHsKCQkvLyBUT0RPOiBhc2NlbmRlci1iYXNlZCBjYWxjdWxhdGlvbnMKCQl2YXIgcmFkaXVzID0gZ2FwU2l6ZS5mb250U2l6ZSAvIDY7CgkJcmV0dXJuIHsKCQkJY2FudmFzOiBbewoJCQkJCXg6IHJhZGl1cywKCQkJCQl5OiAoZ2FwU2l6ZS5oZWlnaHQgLyBnYXBTaXplLmxpbmVIZWlnaHQpICsgZ2FwU2l6ZS5kZXNjZW5kZXIgLSBnYXBTaXplLmZvbnRTaXplIC8gMywKCQkJCQlyMTogcmFkaXVzLAoJCQkJCXIyOiByYWRpdXMsCgkJCQkJdHlwZTogJ2VsbGlwc2UnLAoJCQkJCWxpbmVDb2xvcjogY29sb3IKCQkJCX1dCgkJfTsKCX0KCgl2YXIgbWFya2VyOwoJdmFyIGNvbG9yID0gc3R5bGVTdGFjay5nZXRQcm9wZXJ0eSgnbWFya2VyQ29sb3InKSB8fCBzdHlsZVN0YWNrLmdldFByb3BlcnR5KCdjb2xvcicpIHx8ICdibGFjayc7CgoJc3dpdGNoICh0eXBlKSB7CgkJY2FzZSAnY2lyY2xlJzoKCQkJbWFya2VyID0gYnVpbGRDaXJjbGUoZ2FwU2l6ZSwgY29sb3IpOwoJCQlicmVhazsKCgkJY2FzZSAnc3F1YXJlJzoKCQkJbWFya2VyID0gYnVpbGRTcXVhcmUoZ2FwU2l6ZSwgY29sb3IpOwoJCQlicmVhazsKCgkJY2FzZSAnbm9uZSc6CgkJCW1hcmtlciA9IHt9OwoJCQlicmVhazsKCgkJY2FzZSAnZGlzYyc6CgkJZGVmYXVsdDoKCQkJbWFya2VyID0gYnVpbGREaXNjKGdhcFNpemUsIGNvbG9yKTsKCQkJYnJlYWs7Cgl9CgoJbWFya2VyLl9taW5XaWR0aCA9IG1hcmtlci5fbWF4V2lkdGggPSBnYXBTaXplLndpZHRoOwoJbWFya2VyLl9taW5IZWlnaHQgPSBtYXJrZXIuX21heEhlaWdodCA9IGdhcFNpemUuaGVpZ2h0OwoKCXJldHVybiBtYXJrZXI7Cn07CgpEb2NNZWFzdXJlLnByb3RvdHlwZS5idWlsZE9yZGVyZWRNYXJrZXIgPSBmdW5jdGlvbiAoY291bnRlciwgc3R5bGVTdGFjaywgdHlwZSwgc2VwYXJhdG9yKSB7CglmdW5jdGlvbiBwcmVwYXJlQWxwaGEoY291bnRlcikgewoJCWZ1bmN0aW9uIHRvQWxwaGEobnVtKSB7CgkJCXJldHVybiAobnVtID49IDI2ID8gdG9BbHBoYSgobnVtIC8gMjYgPj4gMCkgLSAxKSA6ICcnKSArICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidbbnVtICUgMjYgPj4gMF07CgkJfQoKCQlpZiAoY291bnRlciA8IDEpIHsKCQkJcmV0dXJuIGNvdW50ZXIudG9TdHJpbmcoKTsKCQl9CgoJCXJldHVybiB0b0FscGhhKGNvdW50ZXIgLSAxKTsKCX0KCglmdW5jdGlvbiBwcmVwYXJlUm9tYW4oY291bnRlcikgewoJCWlmIChjb3VudGVyIDwgMSB8fCBjb3VudGVyID4gNDk5OSkgewoJCQlyZXR1cm4gY291bnRlci50b1N0cmluZygpOwoJCX0KCQl2YXIgbnVtID0gY291bnRlcjsKCQl2YXIgbG9va3VwID0ge006IDEwMDAsIENNOiA5MDAsIEQ6IDUwMCwgQ0Q6IDQwMCwgQzogMTAwLCBYQzogOTAsIEw6IDUwLCBYTDogNDAsIFg6IDEwLCBJWDogOSwgVjogNSwgSVY6IDQsIEk6IDF9LCByb21hbiA9ICcnLCBpOwoJCWZvciAoaSBpbiBsb29rdXApIHsKCQkJd2hpbGUgKG51bSA+PSBsb29rdXBbaV0pIHsKCQkJCXJvbWFuICs9IGk7CgkJCQludW0gLT0gbG9va3VwW2ldOwoJCQl9CgkJfQoJCXJldHVybiByb21hbjsKCX0KCglmdW5jdGlvbiBwcmVwYXJlRGVjaW1hbChjb3VudGVyKSB7CgkJcmV0dXJuIGNvdW50ZXIudG9TdHJpbmcoKTsKCX0KCgl2YXIgY291bnRlclRleHQ7Cglzd2l0Y2ggKHR5cGUpIHsKCQljYXNlICdub25lJzoKCQkJY291bnRlclRleHQgPSBudWxsOwoJCQlicmVhazsKCgkJY2FzZSAndXBwZXItYWxwaGEnOgoJCQljb3VudGVyVGV4dCA9IHByZXBhcmVBbHBoYShjb3VudGVyKS50b1VwcGVyQ2FzZSgpOwoJCQlicmVhazsKCgkJY2FzZSAnbG93ZXItYWxwaGEnOgoJCQljb3VudGVyVGV4dCA9IHByZXBhcmVBbHBoYShjb3VudGVyKTsKCQkJYnJlYWs7CgoJCWNhc2UgJ3VwcGVyLXJvbWFuJzoKCQkJY291bnRlclRleHQgPSBwcmVwYXJlUm9tYW4oY291bnRlcik7CgkJCWJyZWFrOwoKCQljYXNlICdsb3dlci1yb21hbic6CgkJCWNvdW50ZXJUZXh0ID0gcHJlcGFyZVJvbWFuKGNvdW50ZXIpLnRvTG93ZXJDYXNlKCk7CgkJCWJyZWFrOwoKCQljYXNlICdkZWNpbWFsJzoKCQlkZWZhdWx0OgoJCQljb3VudGVyVGV4dCA9IHByZXBhcmVEZWNpbWFsKGNvdW50ZXIpOwoJCQlicmVhazsKCX0KCglpZiAoY291bnRlclRleHQgPT09IG51bGwpIHsKCQlyZXR1cm4ge307Cgl9CgoJaWYgKHNlcGFyYXRvcikgewoJCWlmIChpc0FycmF5KHNlcGFyYXRvcikpIHsKCQkJaWYgKHNlcGFyYXRvclswXSkgewoJCQkJY291bnRlclRleHQgPSBzZXBhcmF0b3JbMF0gKyBjb3VudGVyVGV4dDsKCQkJfQoKCQkJaWYgKHNlcGFyYXRvclsxXSkgewoJCQkJY291bnRlclRleHQgKz0gc2VwYXJhdG9yWzFdOwoJCQl9CgkJCWNvdW50ZXJUZXh0ICs9ICcgJzsKCQl9IGVsc2UgewoJCQljb3VudGVyVGV4dCArPSBzZXBhcmF0b3IgKyAnICc7CgkJfQoJfQoKCXZhciB0ZXh0QXJyYXkgPSB7dGV4dDogY291bnRlclRleHR9OwoJdmFyIG1hcmtlckNvbG9yID0gc3R5bGVTdGFjay5nZXRQcm9wZXJ0eSgnbWFya2VyQ29sb3InKTsKCWlmIChtYXJrZXJDb2xvcikgewoJCXRleHRBcnJheS5jb2xvciA9IG1hcmtlckNvbG9yOwoJfQoKCXJldHVybiB7X2lubGluZXM6IHRoaXMudGV4dFRvb2xzLmJ1aWxkSW5saW5lcyh0ZXh0QXJyYXksIHN0eWxlU3RhY2spLml0ZW1zfTsKfTsKCkRvY01lYXN1cmUucHJvdG90eXBlLm1lYXN1cmVVbm9yZGVyZWRMaXN0ID0gZnVuY3Rpb24gKG5vZGUpIHsKCXZhciBzdHlsZSA9IHRoaXMuc3R5bGVTdGFjay5jbG9uZSgpOwoJdmFyIGl0ZW1zID0gbm9kZS51bDsKCW5vZGUudHlwZSA9IG5vZGUudHlwZSB8fCAnZGlzYyc7Cglub2RlLl9nYXBTaXplID0gdGhpcy5nYXBTaXplRm9yTGlzdCgpOwoJbm9kZS5fbWluV2lkdGggPSAwOwoJbm9kZS5fbWF4V2lkdGggPSAwOwoKCWZvciAodmFyIGkgPSAwLCBsID0gaXRlbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJdmFyIGl0ZW0gPSBpdGVtc1tpXSA9IHRoaXMubWVhc3VyZU5vZGUoaXRlbXNbaV0pOwoKCQlpZiAoIWl0ZW0ub2wgJiYgIWl0ZW0udWwpIHsKCQkJaXRlbS5saXN0TWFya2VyID0gdGhpcy5idWlsZFVub3JkZXJlZE1hcmtlcihzdHlsZSwgbm9kZS5fZ2FwU2l6ZSwgaXRlbS5saXN0VHlwZSB8fCBub2RlLnR5cGUpOwoJCX0KCgkJbm9kZS5fbWluV2lkdGggPSBNYXRoLm1heChub2RlLl9taW5XaWR0aCwgaXRlbXNbaV0uX21pbldpZHRoICsgbm9kZS5fZ2FwU2l6ZS53aWR0aCk7CgkJbm9kZS5fbWF4V2lkdGggPSBNYXRoLm1heChub2RlLl9tYXhXaWR0aCwgaXRlbXNbaV0uX21heFdpZHRoICsgbm9kZS5fZ2FwU2l6ZS53aWR0aCk7Cgl9CgoJcmV0dXJuIG5vZGU7Cn07CgpEb2NNZWFzdXJlLnByb3RvdHlwZS5tZWFzdXJlT3JkZXJlZExpc3QgPSBmdW5jdGlvbiAobm9kZSkgewoJdmFyIHN0eWxlID0gdGhpcy5zdHlsZVN0YWNrLmNsb25lKCk7Cgl2YXIgaXRlbXMgPSBub2RlLm9sOwoJbm9kZS50eXBlID0gbm9kZS50eXBlIHx8ICdkZWNpbWFsJzsKCW5vZGUuc2VwYXJhdG9yID0gbm9kZS5zZXBhcmF0b3IgfHwgJy4nOwoJbm9kZS5yZXZlcnNlZCA9IG5vZGUucmV2ZXJzZWQgfHwgZmFsc2U7CglpZiAoIW5vZGUuc3RhcnQpIHsKCQlub2RlLnN0YXJ0ID0gbm9kZS5yZXZlcnNlZCA/IGl0ZW1zLmxlbmd0aCA6IDE7Cgl9Cglub2RlLl9nYXBTaXplID0gdGhpcy5nYXBTaXplRm9yTGlzdCgpOwoJbm9kZS5fbWluV2lkdGggPSAwOwoJbm9kZS5fbWF4V2lkdGggPSAwOwoKCXZhciBjb3VudGVyID0gbm9kZS5zdGFydDsKCWZvciAodmFyIGkgPSAwLCBsID0gaXRlbXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJdmFyIGl0ZW0gPSBpdGVtc1tpXSA9IHRoaXMubWVhc3VyZU5vZGUoaXRlbXNbaV0pOwoKCQlpZiAoIWl0ZW0ub2wgJiYgIWl0ZW0udWwpIHsKCQkJaXRlbS5saXN0TWFya2VyID0gdGhpcy5idWlsZE9yZGVyZWRNYXJrZXIoaXRlbS5jb3VudGVyIHx8IGNvdW50ZXIsIHN0eWxlLCBpdGVtLmxpc3RUeXBlIHx8IG5vZGUudHlwZSwgbm9kZS5zZXBhcmF0b3IpOwoJCQlpZiAoaXRlbS5saXN0TWFya2VyLl9pbmxpbmVzKSB7CgkJCQlub2RlLl9nYXBTaXplLndpZHRoID0gTWF0aC5tYXgobm9kZS5fZ2FwU2l6ZS53aWR0aCwgaXRlbS5saXN0TWFya2VyLl9pbmxpbmVzWzBdLndpZHRoKTsKCQkJfQoJCX0gIC8vIFRPRE86IGVsc2UgLSBuZXN0ZWQgbGlzdHMgbnVtYmVyaW5nCgoJCW5vZGUuX21pbldpZHRoID0gTWF0aC5tYXgobm9kZS5fbWluV2lkdGgsIGl0ZW1zW2ldLl9taW5XaWR0aCk7CgkJbm9kZS5fbWF4V2lkdGggPSBNYXRoLm1heChub2RlLl9tYXhXaWR0aCwgaXRlbXNbaV0uX21heFdpZHRoKTsKCgkJaWYgKG5vZGUucmV2ZXJzZWQpIHsKCQkJY291bnRlci0tOwoJCX0gZWxzZSB7CgkJCWNvdW50ZXIrKzsKCQl9Cgl9CgoJbm9kZS5fbWluV2lkdGggKz0gbm9kZS5fZ2FwU2l6ZS53aWR0aDsKCW5vZGUuX21heFdpZHRoICs9IG5vZGUuX2dhcFNpemUud2lkdGg7CgoJZm9yICh2YXIgaSA9IDAsIGwgPSBpdGVtcy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQl2YXIgaXRlbSA9IGl0ZW1zW2ldOwoJCWlmICghaXRlbS5vbCAmJiAhaXRlbS51bCkgewoJCQlpdGVtLmxpc3RNYXJrZXIuX21pbldpZHRoID0gaXRlbS5saXN0TWFya2VyLl9tYXhXaWR0aCA9IG5vZGUuX2dhcFNpemUud2lkdGg7CgkJfQoJfQoKCXJldHVybiBub2RlOwp9OwoKRG9jTWVhc3VyZS5wcm90b3R5cGUubWVhc3VyZUNvbHVtbnMgPSBmdW5jdGlvbiAobm9kZSkgewoJdmFyIGNvbHVtbnMgPSBub2RlLmNvbHVtbnM7Cglub2RlLl9nYXAgPSB0aGlzLnN0eWxlU3RhY2suZ2V0UHJvcGVydHkoJ2NvbHVtbkdhcCcpIHx8IDA7CgoJZm9yICh2YXIgaSA9IDAsIGwgPSBjb2x1bW5zLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCWNvbHVtbnNbaV0gPSB0aGlzLm1lYXN1cmVOb2RlKGNvbHVtbnNbaV0pOwoJfQoKCXZhciBtZWFzdXJlcyA9IENvbHVtbkNhbGN1bGF0b3IubWVhc3VyZU1pbk1heChjb2x1bW5zKTsKCgl2YXIgbnVtR2FwcyA9IChjb2x1bW5zLmxlbmd0aCA+IDApID8gKGNvbHVtbnMubGVuZ3RoIC0gMSkgOiAwOwoJbm9kZS5fbWluV2lkdGggPSBtZWFzdXJlcy5taW4gKyBub2RlLl9nYXAgKiBudW1HYXBzOwoJbm9kZS5fbWF4V2lkdGggPSBtZWFzdXJlcy5tYXggKyBub2RlLl9nYXAgKiBudW1HYXBzOwoKCXJldHVybiBub2RlOwp9OwoKRG9jTWVhc3VyZS5wcm90b3R5cGUubWVhc3VyZVRhYmxlID0gZnVuY3Rpb24gKG5vZGUpIHsKCWV4dGVuZFRhYmxlV2lkdGhzKG5vZGUpOwoJbm9kZS5fbGF5b3V0ID0gZ2V0TGF5b3V0KHRoaXMudGFibGVMYXlvdXRzKTsKCW5vZGUuX29mZnNldHMgPSBnZXRPZmZzZXRzKG5vZGUuX2xheW91dCk7CgoJdmFyIGNvbFNwYW5zID0gW107Cgl2YXIgY29sLCByb3csIGNvbHMsIHJvd3M7CgoJZm9yIChjb2wgPSAwLCBjb2xzID0gbm9kZS50YWJsZS5ib2R5WzBdLmxlbmd0aDsgY29sIDwgY29sczsgY29sKyspIHsKCQl2YXIgYyA9IG5vZGUudGFibGUud2lkdGhzW2NvbF07CgkJYy5fbWluV2lkdGggPSAwOwoJCWMuX21heFdpZHRoID0gMDsKCgkJZm9yIChyb3cgPSAwLCByb3dzID0gbm9kZS50YWJsZS5ib2R5Lmxlbmd0aDsgcm93IDwgcm93czsgcm93KyspIHsKCQkJdmFyIHJvd0RhdGEgPSBub2RlLnRhYmxlLmJvZHlbcm93XTsKCQkJdmFyIGRhdGEgPSByb3dEYXRhW2NvbF07CgkJCWlmIChkYXRhID09PSB1bmRlZmluZWQpIHsKCQkJCWNvbnNvbGUuZXJyb3IoJ01hbGZvcm1lZCB0YWJsZSByb3cgJywgcm93RGF0YSwgJ2luIG5vZGUgJywgbm9kZSk7CgkJCQl0aHJvdyAnTWFsZm9ybWVkIHRhYmxlIHJvdywgYSBjZWxsIGlzIHVuZGVmaW5lZC4nOwoJCQl9CgkJCWlmIChkYXRhID09PSBudWxsKSB7IC8vIHRyYW5zZm9ybSB0byBvYmplY3QKCQkJCWRhdGEgPSAnJzsKCQkJfQoKCQkJaWYgKCFkYXRhLl9zcGFuKSB7CgkJCQlkYXRhID0gcm93RGF0YVtjb2xdID0gdGhpcy5zdHlsZVN0YWNrLmF1dG8oZGF0YSwgbWVhc3VyZUNiKHRoaXMsIGRhdGEpKTsKCgkJCQlpZiAoZGF0YS5jb2xTcGFuICYmIGRhdGEuY29sU3BhbiA+IDEpIHsKCQkJCQltYXJrU3BhbnMocm93RGF0YSwgY29sLCBkYXRhLmNvbFNwYW4pOwoJCQkJCWNvbFNwYW5zLnB1c2goe2NvbDogY29sLCBzcGFuOiBkYXRhLmNvbFNwYW4sIG1pbldpZHRoOiBkYXRhLl9taW5XaWR0aCwgbWF4V2lkdGg6IGRhdGEuX21heFdpZHRofSk7CgkJCQl9IGVsc2UgewoJCQkJCWMuX21pbldpZHRoID0gTWF0aC5tYXgoYy5fbWluV2lkdGgsIGRhdGEuX21pbldpZHRoKTsKCQkJCQljLl9tYXhXaWR0aCA9IE1hdGgubWF4KGMuX21heFdpZHRoLCBkYXRhLl9tYXhXaWR0aCk7CgkJCQl9CgkJCX0KCgkJCWlmIChkYXRhLnJvd1NwYW4gJiYgZGF0YS5yb3dTcGFuID4gMSkgewoJCQkJbWFya1ZTcGFucyhub2RlLnRhYmxlLCByb3csIGNvbCwgZGF0YS5yb3dTcGFuKTsKCQkJfQoJCX0KCX0KCglleHRlbmRXaWR0aHNGb3JDb2xTcGFucygpOwoKCXZhciBtZWFzdXJlcyA9IENvbHVtbkNhbGN1bGF0b3IubWVhc3VyZU1pbk1heChub2RlLnRhYmxlLndpZHRocyk7CgoJbm9kZS5fbWluV2lkdGggPSBtZWFzdXJlcy5taW4gKyBub2RlLl9vZmZzZXRzLnRvdGFsOwoJbm9kZS5fbWF4V2lkdGggPSBtZWFzdXJlcy5tYXggKyBub2RlLl9vZmZzZXRzLnRvdGFsOwoKCXJldHVybiBub2RlOwoKCWZ1bmN0aW9uIG1lYXN1cmVDYihfdGhpcywgZGF0YSkgewoJCXJldHVybiBmdW5jdGlvbiAoKSB7CgkJCWlmIChpc09iamVjdChkYXRhKSkgewoJCQkJZGF0YS5maWxsQ29sb3IgPSBfdGhpcy5zdHlsZVN0YWNrLmdldFByb3BlcnR5KCdmaWxsQ29sb3InKTsKCQkJfQoJCQlyZXR1cm4gX3RoaXMubWVhc3VyZU5vZGUoZGF0YSk7CgkJfTsKCX0KCglmdW5jdGlvbiBnZXRMYXlvdXQodGFibGVMYXlvdXRzKSB7CgkJdmFyIGxheW91dCA9IG5vZGUubGF5b3V0OwoKCQlpZiAoaXNTdHJpbmcobGF5b3V0KSkgewoJCQlsYXlvdXQgPSB0YWJsZUxheW91dHNbbGF5b3V0XTsKCQl9CgoJCXZhciBkZWZhdWx0TGF5b3V0ID0gewoJCQloTGluZVdpZHRoOiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJcmV0dXJuIDE7CgkJCX0sCgkJCXZMaW5lV2lkdGg6IGZ1bmN0aW9uIChpLCBub2RlKSB7CgkJCQlyZXR1cm4gMTsKCQkJfSwKCQkJaExpbmVDb2xvcjogZnVuY3Rpb24gKGksIG5vZGUpIHsKCQkJCXJldHVybiAnYmxhY2snOwoJCQl9LAoJCQl2TGluZUNvbG9yOiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJcmV0dXJuICdibGFjayc7CgkJCX0sCgkJCXBhZGRpbmdMZWZ0OiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJcmV0dXJuIDQ7CgkJCX0sCgkJCXBhZGRpbmdSaWdodDogZnVuY3Rpb24gKGksIG5vZGUpIHsKCQkJCXJldHVybiA0OwoJCQl9LAoJCQlwYWRkaW5nVG9wOiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJcmV0dXJuIDI7CgkJCX0sCgkJCXBhZGRpbmdCb3R0b206IGZ1bmN0aW9uIChpLCBub2RlKSB7CgkJCQlyZXR1cm4gMjsKCQkJfSwKCQkJZmlsbENvbG9yOiBmdW5jdGlvbiAoaSwgbm9kZSkgewoJCQkJcmV0dXJuIG51bGw7CgkJCX0sCgkJCWRlZmF1bHRCb3JkZXI6IHRydWUKCQl9OwoKCQlyZXR1cm4gcGFjayhkZWZhdWx0TGF5b3V0LCBsYXlvdXQpOwoJfQoKCWZ1bmN0aW9uIGdldE9mZnNldHMobGF5b3V0KSB7CgkJdmFyIG9mZnNldHMgPSBbXTsKCQl2YXIgdG90YWxPZmZzZXQgPSAwOwoJCXZhciBwcmV2UmlnaHRQYWRkaW5nID0gMDsKCgkJZm9yICh2YXIgaSA9IDAsIGwgPSBub2RlLnRhYmxlLndpZHRocy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQkJdmFyIGxPZmZzZXQgPSBwcmV2UmlnaHRQYWRkaW5nICsgbGF5b3V0LnZMaW5lV2lkdGgoaSwgbm9kZSkgKyBsYXlvdXQucGFkZGluZ0xlZnQoaSwgbm9kZSk7CgkJCW9mZnNldHMucHVzaChsT2Zmc2V0KTsKCQkJdG90YWxPZmZzZXQgKz0gbE9mZnNldDsKCQkJcHJldlJpZ2h0UGFkZGluZyA9IGxheW91dC5wYWRkaW5nUmlnaHQoaSwgbm9kZSk7CgkJfQoKCQl0b3RhbE9mZnNldCArPSBwcmV2UmlnaHRQYWRkaW5nICsgbGF5b3V0LnZMaW5lV2lkdGgobm9kZS50YWJsZS53aWR0aHMubGVuZ3RoLCBub2RlKTsKCgkJcmV0dXJuIHsKCQkJdG90YWw6IHRvdGFsT2Zmc2V0LAoJCQlvZmZzZXRzOiBvZmZzZXRzCgkJfTsKCX0KCglmdW5jdGlvbiBleHRlbmRXaWR0aHNGb3JDb2xTcGFucygpIHsKCQl2YXIgcSwgajsKCgkJZm9yICh2YXIgaSA9IDAsIGwgPSBjb2xTcGFucy5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQkJdmFyIHNwYW4gPSBjb2xTcGFuc1tpXTsKCgkJCXZhciBjdXJyZW50TWluTWF4ID0gZ2V0TWluTWF4KHNwYW4uY29sLCBzcGFuLnNwYW4sIG5vZGUuX29mZnNldHMpOwoJCQl2YXIgbWluRGlmZmVyZW5jZSA9IHNwYW4ubWluV2lkdGggLSBjdXJyZW50TWluTWF4Lm1pbldpZHRoOwoJCQl2YXIgbWF4RGlmZmVyZW5jZSA9IHNwYW4ubWF4V2lkdGggLSBjdXJyZW50TWluTWF4Lm1heFdpZHRoOwoKCQkJaWYgKG1pbkRpZmZlcmVuY2UgPiAwKSB7CgkJCQlxID0gbWluRGlmZmVyZW5jZSAvIHNwYW4uc3BhbjsKCgkJCQlmb3IgKGogPSAwOyBqIDwgc3Bhbi5zcGFuOyBqKyspIHsKCQkJCQlub2RlLnRhYmxlLndpZHRoc1tzcGFuLmNvbCArIGpdLl9taW5XaWR0aCArPSBxOwoJCQkJfQoJCQl9CgoJCQlpZiAobWF4RGlmZmVyZW5jZSA+IDApIHsKCQkJCXEgPSBtYXhEaWZmZXJlbmNlIC8gc3Bhbi5zcGFuOwoKCQkJCWZvciAoaiA9IDA7IGogPCBzcGFuLnNwYW47IGorKykgewoJCQkJCW5vZGUudGFibGUud2lkdGhzW3NwYW4uY29sICsgal0uX21heFdpZHRoICs9IHE7CgkJCQl9CgkJCX0KCQl9Cgl9CgoJZnVuY3Rpb24gZ2V0TWluTWF4KGNvbCwgc3Bhbiwgb2Zmc2V0cykgewoJCXZhciByZXN1bHQgPSB7bWluV2lkdGg6IDAsIG1heFdpZHRoOiAwfTsKCgkJZm9yICh2YXIgaSA9IDA7IGkgPCBzcGFuOyBpKyspIHsKCQkJcmVzdWx0Lm1pbldpZHRoICs9IG5vZGUudGFibGUud2lkdGhzW2NvbCArIGldLl9taW5XaWR0aCArIChpID8gb2Zmc2V0cy5vZmZzZXRzW2NvbCArIGldIDogMCk7CgkJCXJlc3VsdC5tYXhXaWR0aCArPSBub2RlLnRhYmxlLndpZHRoc1tjb2wgKyBpXS5fbWF4V2lkdGggKyAoaSA/IG9mZnNldHMub2Zmc2V0c1tjb2wgKyBpXSA6IDApOwoJCX0KCgkJcmV0dXJuIHJlc3VsdDsKCX0KCglmdW5jdGlvbiBtYXJrU3BhbnMocm93RGF0YSwgY29sLCBzcGFuKSB7CgkJZm9yICh2YXIgaSA9IDE7IGkgPCBzcGFuOyBpKyspIHsKCQkJcm93RGF0YVtjb2wgKyBpXSA9IHsKCQkJCV9zcGFuOiB0cnVlLAoJCQkJX21pbldpZHRoOiAwLAoJCQkJX21heFdpZHRoOiAwLAoJCQkJcm93U3Bhbjogcm93RGF0YVtjb2xdLnJvd1NwYW4KCQkJfTsKCQl9Cgl9CgoJZnVuY3Rpb24gbWFya1ZTcGFucyh0YWJsZSwgcm93LCBjb2wsIHNwYW4pIHsKCQlmb3IgKHZhciBpID0gMTsgaSA8IHNwYW47IGkrKykgewoJCQl0YWJsZS5ib2R5W3JvdyArIGldW2NvbF0gPSB7CgkJCQlfc3BhbjogdHJ1ZSwKCQkJCV9taW5XaWR0aDogMCwKCQkJCV9tYXhXaWR0aDogMCwKCQkJCWZpbGxDb2xvcjogdGFibGUuYm9keVtyb3ddW2NvbF0uZmlsbENvbG9yCgkJCX07CgkJfQoJfQoKCWZ1bmN0aW9uIGV4dGVuZFRhYmxlV2lkdGhzKG5vZGUpIHsKCQlpZiAoIW5vZGUudGFibGUud2lkdGhzKSB7CgkJCW5vZGUudGFibGUud2lkdGhzID0gJ2F1dG8nOwoJCX0KCgkJaWYgKGlzU3RyaW5nKG5vZGUudGFibGUud2lkdGhzKSkgewoJCQlub2RlLnRhYmxlLndpZHRocyA9IFtub2RlLnRhYmxlLndpZHRoc107CgoJCQl3aGlsZSAobm9kZS50YWJsZS53aWR0aHMubGVuZ3RoIDwgbm9kZS50YWJsZS5ib2R5WzBdLmxlbmd0aCkgewoJCQkJbm9kZS50YWJsZS53aWR0aHMucHVzaChub2RlLnRhYmxlLndpZHRoc1tub2RlLnRhYmxlLndpZHRocy5sZW5ndGggLSAxXSk7CgkJCX0KCQl9CgoJCWZvciAodmFyIGkgPSAwLCBsID0gbm9kZS50YWJsZS53aWR0aHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJCXZhciB3ID0gbm9kZS50YWJsZS53aWR0aHNbaV07CgkJCWlmIChpc051bWJlcih3KSB8fCBpc1N0cmluZyh3KSkgewoJCQkJbm9kZS50YWJsZS53aWR0aHNbaV0gPSB7d2lkdGg6IHd9OwoJCQl9CgkJfQoJfQp9OwoKRG9jTWVhc3VyZS5wcm90b3R5cGUubWVhc3VyZUNhbnZhcyA9IGZ1bmN0aW9uIChub2RlKSB7Cgl2YXIgdyA9IDAsIGggPSAwOwoKCWZvciAodmFyIGkgPSAwLCBsID0gbm9kZS5jYW52YXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJdmFyIHZlY3RvciA9IG5vZGUuY2FudmFzW2ldOwoKCQlzd2l0Y2ggKHZlY3Rvci50eXBlKSB7CgkJCWNhc2UgJ2VsbGlwc2UnOgoJCQkJdyA9IE1hdGgubWF4KHcsIHZlY3Rvci54ICsgdmVjdG9yLnIxKTsKCQkJCWggPSBNYXRoLm1heChoLCB2ZWN0b3IueSArIHZlY3Rvci5yMik7CgkJCQlicmVhazsKCQkJY2FzZSAncmVjdCc6CgkJCQl3ID0gTWF0aC5tYXgodywgdmVjdG9yLnggKyB2ZWN0b3Iudyk7CgkJCQloID0gTWF0aC5tYXgoaCwgdmVjdG9yLnkgKyB2ZWN0b3IuaCk7CgkJCQlicmVhazsKCQkJY2FzZSAnbGluZSc6CgkJCQl3ID0gTWF0aC5tYXgodywgdmVjdG9yLngxLCB2ZWN0b3IueDIpOwoJCQkJaCA9IE1hdGgubWF4KGgsIHZlY3Rvci55MSwgdmVjdG9yLnkyKTsKCQkJCWJyZWFrOwoJCQljYXNlICdwb2x5bGluZSc6CgkJCQlmb3IgKHZhciBpMiA9IDAsIGwyID0gdmVjdG9yLnBvaW50cy5sZW5ndGg7IGkyIDwgbDI7IGkyKyspIHsKCQkJCQl3ID0gTWF0aC5tYXgodywgdmVjdG9yLnBvaW50c1tpMl0ueCk7CgkJCQkJaCA9IE1hdGgubWF4KGgsIHZlY3Rvci5wb2ludHNbaTJdLnkpOwoJCQkJfQoJCQkJYnJlYWs7CgkJfQoJfQoKCW5vZGUuX21pbldpZHRoID0gbm9kZS5fbWF4V2lkdGggPSB3OwoJbm9kZS5fbWluSGVpZ2h0ID0gbm9kZS5fbWF4SGVpZ2h0ID0gaDsKCW5vZGUuX2FsaWdubWVudCA9IHRoaXMuc3R5bGVTdGFjay5nZXRQcm9wZXJ0eSgnYWxpZ25tZW50Jyk7CgoJcmV0dXJuIG5vZGU7Cn07CgpEb2NNZWFzdXJlLnByb3RvdHlwZS5tZWFzdXJlUXIgPSBmdW5jdGlvbiAobm9kZSkgewoJbm9kZSA9IHFyRW5jb2Rlci5tZWFzdXJlKG5vZGUpOwoJbm9kZS5fYWxpZ25tZW50ID0gdGhpcy5zdHlsZVN0YWNrLmdldFByb3BlcnR5KCdhbGlnbm1lbnQnKTsKCXJldHVybiBub2RlOwp9OwoKbW9kdWxlLmV4cG9ydHMgPSBEb2NNZWFzdXJlOwoKCi8qKiovIH0pLAovKiAxMzEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGxvb2t1cCA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvJzsKCjsoZnVuY3Rpb24gKGV4cG9ydHMpIHsKCSd1c2Ugc3RyaWN0JzsKCiAgdmFyIEFyciA9ICh0eXBlb2YgVWludDhBcnJheSAhPT0gJ3VuZGVmaW5lZCcpCiAgICA/IFVpbnQ4QXJyYXkKICAgIDogQXJyYXkKCgl2YXIgUExVUyAgID0gJysnLmNoYXJDb2RlQXQoMCkKCXZhciBTTEFTSCAgPSAnLycuY2hhckNvZGVBdCgwKQoJdmFyIE5VTUJFUiA9ICcwJy5jaGFyQ29kZUF0KDApCgl2YXIgTE9XRVIgID0gJ2EnLmNoYXJDb2RlQXQoMCkKCXZhciBVUFBFUiAgPSAnQScuY2hhckNvZGVBdCgwKQoJdmFyIFBMVVNfVVJMX1NBRkUgPSAnLScuY2hhckNvZGVBdCgwKQoJdmFyIFNMQVNIX1VSTF9TQUZFID0gJ18nLmNoYXJDb2RlQXQoMCkKCglmdW5jdGlvbiBkZWNvZGUgKGVsdCkgewoJCXZhciBjb2RlID0gZWx0LmNoYXJDb2RlQXQoMCkKCQlpZiAoY29kZSA9PT0gUExVUyB8fAoJCSAgICBjb2RlID09PSBQTFVTX1VSTF9TQUZFKQoJCQlyZXR1cm4gNjIgLy8gJysnCgkJaWYgKGNvZGUgPT09IFNMQVNIIHx8CgkJICAgIGNvZGUgPT09IFNMQVNIX1VSTF9TQUZFKQoJCQlyZXR1cm4gNjMgLy8gJy8nCgkJaWYgKGNvZGUgPCBOVU1CRVIpCgkJCXJldHVybiAtMSAvL25vIG1hdGNoCgkJaWYgKGNvZGUgPCBOVU1CRVIgKyAxMCkKCQkJcmV0dXJuIGNvZGUgLSBOVU1CRVIgKyAyNiArIDI2CgkJaWYgKGNvZGUgPCBVUFBFUiArIDI2KQoJCQlyZXR1cm4gY29kZSAtIFVQUEVSCgkJaWYgKGNvZGUgPCBMT1dFUiArIDI2KQoJCQlyZXR1cm4gY29kZSAtIExPV0VSICsgMjYKCX0KCglmdW5jdGlvbiBiNjRUb0J5dGVBcnJheSAoYjY0KSB7CgkJdmFyIGksIGosIGwsIHRtcCwgcGxhY2VIb2xkZXJzLCBhcnIKCgkJaWYgKGI2NC5sZW5ndGggJSA0ID4gMCkgewoJCQl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQnKQoJCX0KCgkJLy8gdGhlIG51bWJlciBvZiBlcXVhbCBzaWducyAocGxhY2UgaG9sZGVycykKCQkvLyBpZiB0aGVyZSBhcmUgdHdvIHBsYWNlaG9sZGVycywgdGhhbiB0aGUgdHdvIGNoYXJhY3RlcnMgYmVmb3JlIGl0CgkJLy8gcmVwcmVzZW50IG9uZSBieXRlCgkJLy8gaWYgdGhlcmUgaXMgb25seSBvbmUsIHRoZW4gdGhlIHRocmVlIGNoYXJhY3RlcnMgYmVmb3JlIGl0IHJlcHJlc2VudCAyIGJ5dGVzCgkJLy8gdGhpcyBpcyBqdXN0IGEgY2hlYXAgaGFjayB0byBub3QgZG8gaW5kZXhPZiB0d2ljZQoJCXZhciBsZW4gPSBiNjQubGVuZ3RoCgkJcGxhY2VIb2xkZXJzID0gJz0nID09PSBiNjQuY2hhckF0KGxlbiAtIDIpID8gMiA6ICc9JyA9PT0gYjY0LmNoYXJBdChsZW4gLSAxKSA/IDEgOiAwCgoJCS8vIGJhc2U2NCBpcyA0LzMgKyB1cCB0byB0d28gY2hhcmFjdGVycyBvZiB0aGUgb3JpZ2luYWwgZGF0YQoJCWFyciA9IG5ldyBBcnIoYjY0Lmxlbmd0aCAqIDMgLyA0IC0gcGxhY2VIb2xkZXJzKQoKCQkvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzCgkJbCA9IHBsYWNlSG9sZGVycyA+IDAgPyBiNjQubGVuZ3RoIC0gNCA6IGI2NC5sZW5ndGgKCgkJdmFyIEwgPSAwCgoJCWZ1bmN0aW9uIHB1c2ggKHYpIHsKCQkJYXJyW0wrK10gPSB2CgkJfQoKCQlmb3IgKGkgPSAwLCBqID0gMDsgaSA8IGw7IGkgKz0gNCwgaiArPSAzKSB7CgkJCXRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMTgpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAxKSkgPDwgMTIpIHwgKGRlY29kZShiNjQuY2hhckF0KGkgKyAyKSkgPDwgNikgfCBkZWNvZGUoYjY0LmNoYXJBdChpICsgMykpCgkJCXB1c2goKHRtcCAmIDB4RkYwMDAwKSA+PiAxNikKCQkJcHVzaCgodG1wICYgMHhGRjAwKSA+PiA4KQoJCQlwdXNoKHRtcCAmIDB4RkYpCgkJfQoKCQlpZiAocGxhY2VIb2xkZXJzID09PSAyKSB7CgkJCXRtcCA9IChkZWNvZGUoYjY0LmNoYXJBdChpKSkgPDwgMikgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA+PiA0KQoJCQlwdXNoKHRtcCAmIDB4RkYpCgkJfSBlbHNlIGlmIChwbGFjZUhvbGRlcnMgPT09IDEpIHsKCQkJdG1wID0gKGRlY29kZShiNjQuY2hhckF0KGkpKSA8PCAxMCkgfCAoZGVjb2RlKGI2NC5jaGFyQXQoaSArIDEpKSA8PCA0KSB8IChkZWNvZGUoYjY0LmNoYXJBdChpICsgMikpID4+IDIpCgkJCXB1c2goKHRtcCA+PiA4KSAmIDB4RkYpCgkJCXB1c2godG1wICYgMHhGRikKCQl9CgoJCXJldHVybiBhcnIKCX0KCglmdW5jdGlvbiB1aW50OFRvQmFzZTY0ICh1aW50OCkgewoJCXZhciBpLAoJCQlleHRyYUJ5dGVzID0gdWludDgubGVuZ3RoICUgMywgLy8gaWYgd2UgaGF2ZSAxIGJ5dGUgbGVmdCwgcGFkIDIgYnl0ZXMKCQkJb3V0cHV0ID0gIiIsCgkJCXRlbXAsIGxlbmd0aAoKCQlmdW5jdGlvbiBlbmNvZGUgKG51bSkgewoJCQlyZXR1cm4gbG9va3VwLmNoYXJBdChudW0pCgkJfQoKCQlmdW5jdGlvbiB0cmlwbGV0VG9CYXNlNjQgKG51bSkgewoJCQlyZXR1cm4gZW5jb2RlKG51bSA+PiAxOCAmIDB4M0YpICsgZW5jb2RlKG51bSA+PiAxMiAmIDB4M0YpICsgZW5jb2RlKG51bSA+PiA2ICYgMHgzRikgKyBlbmNvZGUobnVtICYgMHgzRikKCQl9CgoJCS8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXIKCQlmb3IgKGkgPSAwLCBsZW5ndGggPSB1aW50OC5sZW5ndGggLSBleHRyYUJ5dGVzOyBpIDwgbGVuZ3RoOyBpICs9IDMpIHsKCQkJdGVtcCA9ICh1aW50OFtpXSA8PCAxNikgKyAodWludDhbaSArIDFdIDw8IDgpICsgKHVpbnQ4W2kgKyAyXSkKCQkJb3V0cHV0ICs9IHRyaXBsZXRUb0Jhc2U2NCh0ZW1wKQoJCX0KCgkJLy8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlcwoJCXN3aXRjaCAoZXh0cmFCeXRlcykgewoJCQljYXNlIDE6CgkJCQl0ZW1wID0gdWludDhbdWludDgubGVuZ3RoIC0gMV0KCQkJCW91dHB1dCArPSBlbmNvZGUodGVtcCA+PiAyKQoJCQkJb3V0cHV0ICs9IGVuY29kZSgodGVtcCA8PCA0KSAmIDB4M0YpCgkJCQlvdXRwdXQgKz0gJz09JwoJCQkJYnJlYWsKCQkJY2FzZSAyOgoJCQkJdGVtcCA9ICh1aW50OFt1aW50OC5sZW5ndGggLSAyXSA8PCA4KSArICh1aW50OFt1aW50OC5sZW5ndGggLSAxXSkKCQkJCW91dHB1dCArPSBlbmNvZGUodGVtcCA+PiAxMCkKCQkJCW91dHB1dCArPSBlbmNvZGUoKHRlbXAgPj4gNCkgJiAweDNGKQoJCQkJb3V0cHV0ICs9IGVuY29kZSgodGVtcCA8PCAyKSAmIDB4M0YpCgkJCQlvdXRwdXQgKz0gJz0nCgkJCQlicmVhawoJCX0KCgkJcmV0dXJuIG91dHB1dAoJfQoKCWV4cG9ydHMudG9CeXRlQXJyYXkgPSBiNjRUb0J5dGVBcnJheQoJZXhwb3J0cy5mcm9tQnl0ZUFycmF5ID0gdWludDhUb0Jhc2U2NAp9KCBmYWxzZSA/ICh0aGlzLmJhc2U2NGpzID0ge30pIDogZXhwb3J0cykpCgoKLyoqKi8gfSksCi8qIDEzMiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuNy4xCihmdW5jdGlvbigpIHsKICB2YXIgQUksIEFMLCBCMiwgQkEsIEJCLCBCSywgQ0IsIENKLCBDTCwgQ00sIENQLCBDUiwgRVgsIEdMLCBIMiwgSDMsIEhMLCBIWSwgSUQsIElOLCBJUywgSkwsIEpULCBKViwgTEYsIE5MLCBOUywgTlUsIE9QLCBQTywgUFIsIFFVLCBSSSwgU0EsIFNHLCBTUCwgU1ksIFdKLCBYWCwgWlc7CgogIGV4cG9ydHMuT1AgPSBPUCA9IDA7CgogIGV4cG9ydHMuQ0wgPSBDTCA9IDE7CgogIGV4cG9ydHMuQ1AgPSBDUCA9IDI7CgogIGV4cG9ydHMuUVUgPSBRVSA9IDM7CgogIGV4cG9ydHMuR0wgPSBHTCA9IDQ7CgogIGV4cG9ydHMuTlMgPSBOUyA9IDU7CgogIGV4cG9ydHMuRVggPSBFWCA9IDY7CgogIGV4cG9ydHMuU1kgPSBTWSA9IDc7CgogIGV4cG9ydHMuSVMgPSBJUyA9IDg7CgogIGV4cG9ydHMuUFIgPSBQUiA9IDk7CgogIGV4cG9ydHMuUE8gPSBQTyA9IDEwOwoKICBleHBvcnRzLk5VID0gTlUgPSAxMTsKCiAgZXhwb3J0cy5BTCA9IEFMID0gMTI7CgogIGV4cG9ydHMuSEwgPSBITCA9IDEzOwoKICBleHBvcnRzLklEID0gSUQgPSAxNDsKCiAgZXhwb3J0cy5JTiA9IElOID0gMTU7CgogIGV4cG9ydHMuSFkgPSBIWSA9IDE2OwoKICBleHBvcnRzLkJBID0gQkEgPSAxNzsKCiAgZXhwb3J0cy5CQiA9IEJCID0gMTg7CgogIGV4cG9ydHMuQjIgPSBCMiA9IDE5OwoKICBleHBvcnRzLlpXID0gWlcgPSAyMDsKCiAgZXhwb3J0cy5DTSA9IENNID0gMjE7CgogIGV4cG9ydHMuV0ogPSBXSiA9IDIyOwoKICBleHBvcnRzLkgyID0gSDIgPSAyMzsKCiAgZXhwb3J0cy5IMyA9IEgzID0gMjQ7CgogIGV4cG9ydHMuSkwgPSBKTCA9IDI1OwoKICBleHBvcnRzLkpWID0gSlYgPSAyNjsKCiAgZXhwb3J0cy5KVCA9IEpUID0gMjc7CgogIGV4cG9ydHMuUkkgPSBSSSA9IDI4OwoKICBleHBvcnRzLkFJID0gQUkgPSAyOTsKCiAgZXhwb3J0cy5CSyA9IEJLID0gMzA7CgogIGV4cG9ydHMuQ0IgPSBDQiA9IDMxOwoKICBleHBvcnRzLkNKID0gQ0ogPSAzMjsKCiAgZXhwb3J0cy5DUiA9IENSID0gMzM7CgogIGV4cG9ydHMuTEYgPSBMRiA9IDM0OwoKICBleHBvcnRzLk5MID0gTkwgPSAzNTsKCiAgZXhwb3J0cy5TQSA9IFNBID0gMzY7CgogIGV4cG9ydHMuU0cgPSBTRyA9IDM3OwoKICBleHBvcnRzLlNQID0gU1AgPSAzODsKCiAgZXhwb3J0cy5YWCA9IFhYID0gMzk7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAxMzMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIENJX0JSSywgQ1BfQlJLLCBESV9CUkssIElOX0JSSywgUFJfQlJLOwoKICBleHBvcnRzLkRJX0JSSyA9IERJX0JSSyA9IDA7CgogIGV4cG9ydHMuSU5fQlJLID0gSU5fQlJLID0gMTsKCiAgZXhwb3J0cy5DSV9CUksgPSBDSV9CUksgPSAyOwoKICBleHBvcnRzLkNQX0JSSyA9IENQX0JSSyA9IDM7CgogIGV4cG9ydHMuUFJfQlJLID0gUFJfQlJLID0gNDsKCiAgZXhwb3J0cy5wYWlyVGFibGUgPSBbW1BSX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIENQX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBQUl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW1BSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgRElfQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgRElfQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgUFJfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLXSwgW0lOX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBJTl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBJTl9CUkssIElOX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgSU5fQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIElOX0JSSywgRElfQlJLXSwgW0RJX0JSSywgUFJfQlJLLCBQUl9CUkssIElOX0JSSywgSU5fQlJLLCBJTl9CUkssIFBSX0JSSywgUFJfQlJLLCBQUl9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLLCBJTl9CUkssIERJX0JSSywgRElfQlJLLCBQUl9CUkssIENJX0JSSywgUFJfQlJLLCBESV9CUkssIERJX0JSSywgRElfQlJLLCBESV9CUkssIERJX0JSSywgSU5fQlJLXV07Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAxMzQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovKmVzbGludCBuby11bnVzZWQtdmFyczogWyJlcnJvciIsIHsiYXJncyI6ICJub25lIn1dKi8KLyplc2xpbnQgbm8tcmVkZWNsYXJlOiAib2ZmIiovCgoKLyogcXIuanMgLS0gUVIgY29kZSBnZW5lcmF0b3IgaW4gSmF2YXNjcmlwdCAocmV2aXNpb24gMjAxMS0wMS0xOSkKICogV3JpdHRlbiBieSBLYW5nIFNlb25naG9vbiA8cHVibGljK3FyanNAbWVhcmllLm9yZz4uCiAqCiAqIFRoaXMgc291cmNlIGNvZGUgaXMgaW4gdGhlIHB1YmxpYyBkb21haW47IGlmIHlvdXIganVyaXNkaWN0aW9uIGRvZXMgbm90CiAqIHJlY29nbml6ZSB0aGUgcHVibGljIGRvbWFpbiB0aGUgdGVybXMgb2YgQ3JlYXRpdmUgQ29tbW9ucyBDQzAgbGljZW5zZQogKiBhcHBseS4gSW4gdGhlIG90aGVyIHdvcmRzLCB5b3UgY2FuIGFsd2F5cyBkbyB3aGF0IHlvdSB3YW50LgogKi8KCgovLyBwZXItdmVyc2lvbiBpbmZvcm1hdGlvbiAoY2YuIEpJUyBYIDA1MTA6MjAwNCBwcC4gMzAtLTM2LCA3MSkKLy8KLy8gWzBdOiB0aGUgZGVncmVlIG9mIGdlbmVyYXRvciBwb2x5bm9taWFsIGJ5IEVDQyBsZXZlbHMKLy8gWzFdOiAjIG9mIGNvZGUgYmxvY2tzIGJ5IEVDQyBsZXZlbHMKLy8gWzJdOiBsZWZ0LXRvcCBwb3NpdGlvbnMgb2YgYWxpZ25tZW50IHBhdHRlcm5zCi8vCi8vIHRoZSBudW1iZXIgaW4gdGhpcyB0YWJsZSAoaW4gcGFydGljdWxhciwgWzBdKSBkb2VzIG5vdCBleGFjdGx5IG1hdGNoIHdpdGgKLy8gdGhlIG51bWJlcnMgaW4gdGhlIHNwZWNmaWNpYXRpb24uIHNlZSBhdWd1bWVudGVjY3MgYmVsb3cgZm9yIHRoZSByZWFzb24uCnZhciBWRVJTSU9OUyA9IFsKCW51bGwsCglbWzEwLCA3LCAxNywgMTNdLCBbMSwgMSwgMSwgMV0sIFtdXSwKCVtbMTYsIDEwLCAyOCwgMjJdLCBbMSwgMSwgMSwgMV0sIFs0LCAxNl1dLAoJW1syNiwgMTUsIDIyLCAxOF0sIFsxLCAxLCAyLCAyXSwgWzQsIDIwXV0sCglbWzE4LCAyMCwgMTYsIDI2XSwgWzIsIDEsIDQsIDJdLCBbNCwgMjRdXSwKCVtbMjQsIDI2LCAyMiwgMThdLCBbMiwgMSwgNCwgNF0sIFs0LCAyOF1dLAoJW1sxNiwgMTgsIDI4LCAyNF0sIFs0LCAyLCA0LCA0XSwgWzQsIDMyXV0sCglbWzE4LCAyMCwgMjYsIDE4XSwgWzQsIDIsIDUsIDZdLCBbNCwgMjAsIDM2XV0sCglbWzIyLCAyNCwgMjYsIDIyXSwgWzQsIDIsIDYsIDZdLCBbNCwgMjIsIDQwXV0sCglbWzIyLCAzMCwgMjQsIDIwXSwgWzUsIDIsIDgsIDhdLCBbNCwgMjQsIDQ0XV0sCglbWzI2LCAxOCwgMjgsIDI0XSwgWzUsIDQsIDgsIDhdLCBbNCwgMjYsIDQ4XV0sCglbWzMwLCAyMCwgMjQsIDI4XSwgWzUsIDQsIDExLCA4XSwgWzQsIDI4LCA1Ml1dLAoJW1syMiwgMjQsIDI4LCAyNl0sIFs4LCA0LCAxMSwgMTBdLCBbNCwgMzAsIDU2XV0sCglbWzIyLCAyNiwgMjIsIDI0XSwgWzksIDQsIDE2LCAxMl0sIFs0LCAzMiwgNjBdXSwKCVtbMjQsIDMwLCAyNCwgMjBdLCBbOSwgNCwgMTYsIDE2XSwgWzQsIDI0LCA0NCwgNjRdXSwKCVtbMjQsIDIyLCAyNCwgMzBdLCBbMTAsIDYsIDE4LCAxMl0sIFs0LCAyNCwgNDYsIDY4XV0sCglbWzI4LCAyNCwgMzAsIDI0XSwgWzEwLCA2LCAxNiwgMTddLCBbNCwgMjQsIDQ4LCA3Ml1dLAoJW1syOCwgMjgsIDI4LCAyOF0sIFsxMSwgNiwgMTksIDE2XSwgWzQsIDI4LCA1MiwgNzZdXSwKCVtbMjYsIDMwLCAyOCwgMjhdLCBbMTMsIDYsIDIxLCAxOF0sIFs0LCAyOCwgNTQsIDgwXV0sCglbWzI2LCAyOCwgMjYsIDI2XSwgWzE0LCA3LCAyNSwgMjFdLCBbNCwgMjgsIDU2LCA4NF1dLAoJW1syNiwgMjgsIDI4LCAzMF0sIFsxNiwgOCwgMjUsIDIwXSwgWzQsIDMyLCA2MCwgODhdXSwKCVtbMjYsIDI4LCAzMCwgMjhdLCBbMTcsIDgsIDI1LCAyM10sIFs0LCAyNiwgNDgsIDcwLCA5Ml1dLAoJW1syOCwgMjgsIDI0LCAzMF0sIFsxNywgOSwgMzQsIDIzXSwgWzQsIDI0LCA0OCwgNzIsIDk2XV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzE4LCA5LCAzMCwgMjVdLCBbNCwgMjgsIDUyLCA3NiwgMTAwXV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzIwLCAxMCwgMzIsIDI3XSwgWzQsIDI2LCA1MiwgNzgsIDEwNF1dLAoJW1syOCwgMjYsIDMwLCAzMF0sIFsyMSwgMTIsIDM1LCAyOV0sIFs0LCAzMCwgNTYsIDgyLCAxMDhdXSwKCVtbMjgsIDI4LCAzMCwgMjhdLCBbMjMsIDEyLCAzNywgMzRdLCBbNCwgMjgsIDU2LCA4NCwgMTEyXV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzI1LCAxMiwgNDAsIDM0XSwgWzQsIDMyLCA2MCwgODgsIDExNl1dLAoJW1syOCwgMzAsIDMwLCAzMF0sIFsyNiwgMTMsIDQyLCAzNV0sIFs0LCAyNCwgNDgsIDcyLCA5NiwgMTIwXV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzI4LCAxNCwgNDUsIDM4XSwgWzQsIDI4LCA1MiwgNzYsIDEwMCwgMTI0XV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzI5LCAxNSwgNDgsIDQwXSwgWzQsIDI0LCA1MCwgNzYsIDEwMiwgMTI4XV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzMxLCAxNiwgNTEsIDQzXSwgWzQsIDI4LCA1NCwgODAsIDEwNiwgMTMyXV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzMzLCAxNywgNTQsIDQ1XSwgWzQsIDMyLCA1OCwgODQsIDExMCwgMTM2XV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzM1LCAxOCwgNTcsIDQ4XSwgWzQsIDI4LCA1NiwgODQsIDExMiwgMTQwXV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzM3LCAxOSwgNjAsIDUxXSwgWzQsIDMyLCA2MCwgODgsIDExNiwgMTQ0XV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzM4LCAxOSwgNjMsIDUzXSwgWzQsIDI4LCA1MiwgNzYsIDEwMCwgMTI0LCAxNDhdXSwKCVtbMjgsIDMwLCAzMCwgMzBdLCBbNDAsIDIwLCA2NiwgNTZdLCBbNCwgMjIsIDQ4LCA3NCwgMTAwLCAxMjYsIDE1Ml1dLAoJW1syOCwgMzAsIDMwLCAzMF0sIFs0MywgMjEsIDcwLCA1OV0sIFs0LCAyNiwgNTIsIDc4LCAxMDQsIDEzMCwgMTU2XV0sCglbWzI4LCAzMCwgMzAsIDMwXSwgWzQ1LCAyMiwgNzQsIDYyXSwgWzQsIDMwLCA1NiwgODIsIDEwOCwgMTM0LCAxNjBdXSwKCVtbMjgsIDMwLCAzMCwgMzBdLCBbNDcsIDI0LCA3NywgNjVdLCBbNCwgMjQsIDUyLCA4MCwgMTA4LCAxMzYsIDE2NF1dLAoJW1syOCwgMzAsIDMwLCAzMF0sIFs0OSwgMjUsIDgxLCA2OF0sIFs0LCAyOCwgNTYsIDg0LCAxMTIsIDE0MCwgMTY4XV1dOwoKLy8gbW9kZSBjb25zdGFudHMgKGNmLiBUYWJsZSAyIGluIEpJUyBYIDA1MTA6MjAwNCBwLiAxNikKdmFyIE1PREVfVEVSTUlOQVRPUiA9IDA7CnZhciBNT0RFX05VTUVSSUMgPSAxLCBNT0RFX0FMUEhBTlVNRVJJQyA9IDIsIE1PREVfT0NURVQgPSA0LCBNT0RFX0tBTkpJID0gODsKCi8vIHZhbGlkYXRpb24gcmVnZXhwcwp2YXIgTlVNRVJJQ19SRUdFWFAgPSAvXlxkKiQvOwp2YXIgQUxQSEFOVU1FUklDX1JFR0VYUCA9IC9eW0EtWmEtejAtOSAkJSorXC0uLzpdKiQvOwp2YXIgQUxQSEFOVU1FUklDX09VVF9SRUdFWFAgPSAvXltBLVowLTkgJCUqK1wtLi86XSokLzsKCi8vIEVDQyBsZXZlbHMgKGNmLiBUYWJsZSAyMiBpbiBKSVMgWCAwNTEwOjIwMDQgcC4gNDUpCnZhciBFQ0NMRVZFTF9MID0gMSwgRUNDTEVWRUxfTSA9IDAsIEVDQ0xFVkVMX1EgPSAzLCBFQ0NMRVZFTF9IID0gMjsKCi8vIEdGKDJeOCktdG8taW50ZWdlciBtYXBwaW5nIHdpdGggYSByZWR1Y2luZyBwb2x5bm9taWFsIHheOCt4XjQreF4zK3heMisxCi8vIGludmFyaWFudDogR0YyNTZfTUFQW0dGMjU2X0lOVk1BUFtpXV0gPT0gaSBmb3IgYWxsIGkgaW4gWzEsMjU2KQp2YXIgR0YyNTZfTUFQID0gW10sIEdGMjU2X0lOVk1BUCA9IFstMV07CmZvciAodmFyIGkgPSAwLCB2ID0gMTsgaSA8IDI1NTsgKytpKSB7CglHRjI1Nl9NQVAucHVzaCh2KTsKCUdGMjU2X0lOVk1BUFt2XSA9IGk7Cgl2ID0gKHYgKiAyKSBeICh2ID49IDEyOCA/IDB4MTFkIDogMCk7Cn0KCi8vIGdlbmVyYXRvciBwb2x5bm9taWFscyB1cCB0byBkZWdyZWUgMzAKLy8gKHNob3VsZCBtYXRjaCB3aXRoIHBvbHlub21pYWxzIGluIEpJUyBYIDA1MTA6MjAwNCBBcHBlbmRpeCBBKQovLwovLyBnZW5lcmF0b3IgcG9seW5vbWlhbCBvZiBkZWdyZWUgSyBpcyBwcm9kdWN0IG9mICh4LVxhbHBoYV4wKSwgKHgtXGFscGhhXjEpLAovLyAuLi4sICh4LVxhbHBoYV4oSy0xKSkuIGJ5IGNvbnZlbnRpb24sIHdlIG9taXQgdGhlIEstdGggY29lZmZpY2llbnQgKGFsd2F5cyAxKQovLyBmcm9tIHRoZSByZXN1bHQ7IGFsc28gb3RoZXIgY29lZmZpY2llbnRzIGFyZSB3cml0dGVuIGluIHRlcm1zIG9mIHRoZSBleHBvbmVudAovLyB0byBcYWxwaGEgdG8gYXZvaWQgdGhlIHJlZHVuZGFudCBjYWxjdWxhdGlvbi4gKHNlZSBhbHNvIGNhbGN1bGF0ZWVjYyBiZWxvdy4pCnZhciBHRjI1Nl9HRU5QT0xZID0gW1tdXTsKZm9yICh2YXIgaSA9IDA7IGkgPCAzMDsgKytpKSB7Cgl2YXIgcHJldnBvbHkgPSBHRjI1Nl9HRU5QT0xZW2ldLCBwb2x5ID0gW107Cglmb3IgKHZhciBqID0gMDsgaiA8PSBpOyArK2opIHsKCQl2YXIgYSA9IChqIDwgaSA/IEdGMjU2X01BUFtwcmV2cG9seVtqXV0gOiAwKTsKCQl2YXIgYiA9IEdGMjU2X01BUFsoaSArIChwcmV2cG9seVtqIC0gMV0gfHwgMCkpICUgMjU1XTsKCQlwb2x5LnB1c2goR0YyNTZfSU5WTUFQW2EgXiBiXSk7Cgl9CglHRjI1Nl9HRU5QT0xZLnB1c2gocG9seSk7Cn0KCi8vIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXIgbWFwcGluZyAoY2YuIFRhYmxlIDUgaW4gSklTIFggMDUxMDoyMDA0IHAuIDE5KQp2YXIgQUxQSEFOVU1FUklDX01BUCA9IHt9Owpmb3IgKHZhciBpID0gMDsgaSA8IDQ1OyArK2kpIHsKCUFMUEhBTlVNRVJJQ19NQVBbJzAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiAkJSorLS4vOicuY2hhckF0KGkpXSA9IGk7Cn0KCi8vIG1hc2sgZnVuY3Rpb25zIGluIHRlcm1zIG9mIHJvdyAjIGFuZCBjb2x1bW4gIwovLyAoY2YuIFRhYmxlIDIwIGluIEpJUyBYIDA1MTA6MjAwNCBwLiA0MikKLypqc2hpbnQgdW51c2VkOiBmYWxzZSAqLwp2YXIgTUFTS0ZVTkNTID0gWwoJZnVuY3Rpb24gKGksIGopIHsKCQlyZXR1cm4gKGkgKyBqKSAlIDIgPT09IDA7Cgl9LAoJZnVuY3Rpb24gKGksIGopIHsKCQlyZXR1cm4gaSAlIDIgPT09IDA7Cgl9LAoJZnVuY3Rpb24gKGksIGopIHsKCQlyZXR1cm4gaiAlIDMgPT09IDA7Cgl9LAoJZnVuY3Rpb24gKGksIGopIHsKCQlyZXR1cm4gKGkgKyBqKSAlIDMgPT09IDA7Cgl9LAoJZnVuY3Rpb24gKGksIGopIHsKCQlyZXR1cm4gKCgoaSAvIDIpIHwgMCkgKyAoKGogLyAzKSB8IDApKSAlIDIgPT09IDA7Cgl9LAoJZnVuY3Rpb24gKGksIGopIHsKCQlyZXR1cm4gKGkgKiBqKSAlIDIgKyAoaSAqIGopICUgMyA9PT0gMDsKCX0sCglmdW5jdGlvbiAoaSwgaikgewoJCXJldHVybiAoKGkgKiBqKSAlIDIgKyAoaSAqIGopICUgMykgJSAyID09PSAwOwoJfSwKCWZ1bmN0aW9uIChpLCBqKSB7CgkJcmV0dXJuICgoaSArIGopICUgMiArIChpICogaikgJSAzKSAlIDIgPT09IDA7Cgl9XTsKCi8vIHJldHVybnMgdHJ1ZSB3aGVuIHRoZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGhhcyB0byBiZSBlbWJlZGVkLgp2YXIgbmVlZHN2ZXJpbmZvID0gZnVuY3Rpb24gKHZlcikgewoJcmV0dXJuIHZlciA+IDY7Cn07CgovLyByZXR1cm5zIHRoZSBzaXplIG9mIGVudGlyZSBRUiBjb2RlIGZvciBnaXZlbiB2ZXJzaW9uLgp2YXIgZ2V0c2l6ZWJ5dmVyID0gZnVuY3Rpb24gKHZlcikgewoJcmV0dXJuIDQgKiB2ZXIgKyAxNzsKfTsKCi8vIHJldHVybnMgdGhlIG51bWJlciBvZiBiaXRzIGF2YWlsYWJsZSBmb3IgY29kZSB3b3JkcyBpbiB0aGlzIHZlcnNpb24uCnZhciBuZnVsbGJpdHMgPSBmdW5jdGlvbiAodmVyKSB7CgkvKgoJICogfDwtLS0tLS0tLS0tLS0tLS0gbiAtLS0tLS0tLS0tLS0tLS0+fAoJICogfCAgICAgICAgfDwtLS0tLSBuLTE3IC0tLS0+fCAgICAgICAgfAoJICogKy0tLS0tLS0rICAgICAgICAgICAgICAgIC8vLystLS0tLS0tKyAtLS0tCgkgKiB8ICAgICAgIHwgICAgICAgICAgICAgICAgLy8vfCAgICAgICB8ICAgIF4KCSAqIHwgIDl4OSAgfCAgICAgICBAQEBAQCAgICAvLy98ICA5eDggIHwgICAgfAoJICogfCAgICAgICB8ICMgIyAjIEA1eDVAICMgIyAjIHwgICAgICAgfCAgICB8CgkgKiArLS0tLS0tLSsgICAgICAgQEBAQEAgICAgICAgKy0tLS0tLS0rICAgIHwKCSAqICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tfAoJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiB8CgkgKiAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CgkgKiAgICAgQEBAQEAgICAgICAgQEBAQEAgICAgICAgQEBAQEAgICAgICB8IG4KCSAqICAgICBANXg1QCAgICAgICBANXg1QCAgICAgICBANXg1QCAgIG4tMTcKCSAqICAgICBAQEBAQCAgICAgICBAQEBAQCAgICAgICBAQEBAQCAgICAgIHwgfAoJICogICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB8CgkgKiAvLy8vLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2IHwKCSAqIC8vLy8vLyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0tfAoJICogKy0tLS0tLS0rICAgICAgIEBAQEBAICAgICAgIEBAQEBAICAgICAgICB8CgkgKiB8ICAgICAgIHwgICAgICAgQDV4NUAgICAgICAgQDV4NUAgICAgICAgIHwKCSAqIHwgIDh4OSAgfCAgICAgICBAQEBAQCAgICAgICBAQEBAQCAgICAgICAgfAoJICogfCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2CgkgKiArLS0tLS0tLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tLS0KCSAqCgkgKiB3aGVuIHRoZSBlbnRpcmUgY29kZSBoYXMgbl4yIG1vZHVsZXMgYW5kIHRoZXJlIGFyZSBtXjItMyBhbGlnbm1lbnQKCSAqIHBhdHRlcm5zLCB3ZSBoYXZlOgoJICogLSAyMjUgKD0gOXg5ICsgOXg4ICsgOHg5KSBtb2R1bGVzIGZvciBmaW5kZXIgcGF0dGVybnMgYW5kCgkgKiAgIGZvcm1hdCBpbmZvcm1hdGlvbjsKCSAqIC0gMm4tMzQgKD0gMihuLTE3KSkgbW9kdWxlcyBmb3IgdGltaW5nIHBhdHRlcm5zOwoJICogLSAzNiAoPSAzeDYgKyA2eDMpIG1vZHVsZXMgZm9yIHZlcnNpb24gaW5mb3JtYXRpb24sIGlmIGFueTsKCSAqIC0gMjVtXjItNzUgKD0gKG1eMi0zKSg1eDUpKSBtb2R1bGVzIGZvciBhbGlnbm1lbnQgcGF0dGVybnMKCSAqICAgaWYgYW55LCBidXQgMTBtLTIwICg9IDIobS0yKXg1KSBvZiB0aGVtIG92ZXJsYXBzIHdpdGgKCSAqICAgdGltaW5nIHBhdHRlcm5zLgoJICovCgl2YXIgdiA9IFZFUlNJT05TW3Zlcl07Cgl2YXIgbmJpdHMgPSAxNiAqIHZlciAqIHZlciArIDEyOCAqIHZlciArIDY0OyAvLyBmaW5kZXIsIHRpbWluZyBhbmQgZm9ybWF0IGluZm8uCglpZiAobmVlZHN2ZXJpbmZvKHZlcikpCgkJbmJpdHMgLT0gMzY7IC8vIHZlcnNpb24gaW5mb3JtYXRpb24KCWlmICh2WzJdLmxlbmd0aCkgeyAvLyBhbGlnbm1lbnQgcGF0dGVybnMKCQluYml0cyAtPSAyNSAqIHZbMl0ubGVuZ3RoICogdlsyXS5sZW5ndGggLSAxMCAqIHZbMl0ubGVuZ3RoIC0gNTU7Cgl9CglyZXR1cm4gbmJpdHM7Cn07CgovLyByZXR1cm5zIHRoZSBudW1iZXIgb2YgYml0cyBhdmFpbGFibGUgZm9yIGRhdGEgcG9ydGlvbnMgKGkuZS4gZXhjbHVkZXMgRUNDCi8vIGJpdHMgYnV0IGluY2x1ZGVzIG1vZGUgYW5kIGxlbmd0aCBiaXRzKSBpbiB0aGlzIHZlcnNpb24gYW5kIEVDQyBsZXZlbC4KdmFyIG5kYXRhYml0cyA9IGZ1bmN0aW9uICh2ZXIsIGVjY2xldmVsKSB7Cgl2YXIgbmJpdHMgPSBuZnVsbGJpdHModmVyKSAmIH43OyAvLyBubyBzdWItb2N0ZXQgY29kZSB3b3JkcwoJdmFyIHYgPSBWRVJTSU9OU1t2ZXJdOwoJbmJpdHMgLT0gOCAqIHZbMF1bZWNjbGV2ZWxdICogdlsxXVtlY2NsZXZlbF07IC8vIGVjYyBiaXRzCglyZXR1cm4gbmJpdHM7Cn07CgovLyByZXR1cm5zIHRoZSBudW1iZXIgb2YgYml0cyByZXF1aXJlZCBmb3IgdGhlIGxlbmd0aCBvZiBkYXRhLgovLyAoY2YuIFRhYmxlIDMgaW4gSklTIFggMDUxMDoyMDA0IHAuIDE2KQp2YXIgbmRhdGFsZW5iaXRzID0gZnVuY3Rpb24gKHZlciwgbW9kZSkgewoJc3dpdGNoIChtb2RlKSB7CgkJY2FzZSBNT0RFX05VTUVSSUM6CgkJCXJldHVybiAodmVyIDwgMTAgPyAxMCA6IHZlciA8IDI3ID8gMTIgOiAxNCk7CgkJY2FzZSBNT0RFX0FMUEhBTlVNRVJJQzoKCQkJcmV0dXJuICh2ZXIgPCAxMCA/IDkgOiB2ZXIgPCAyNyA/IDExIDogMTMpOwoJCWNhc2UgTU9ERV9PQ1RFVDoKCQkJcmV0dXJuICh2ZXIgPCAxMCA/IDggOiAxNik7CgkJY2FzZSBNT0RFX0tBTkpJOgoJCQlyZXR1cm4gKHZlciA8IDEwID8gOCA6IHZlciA8IDI3ID8gMTAgOiAxMik7Cgl9Cn07CgovLyByZXR1cm5zIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBkYXRhIHBvc3NpYmxlIGluIGdpdmVuIGNvbmZpZ3VyYXRpb24uCnZhciBnZXRtYXhkYXRhbGVuID0gZnVuY3Rpb24gKHZlciwgbW9kZSwgZWNjbGV2ZWwpIHsKCXZhciBuYml0cyA9IG5kYXRhYml0cyh2ZXIsIGVjY2xldmVsKSAtIDQgLSBuZGF0YWxlbmJpdHModmVyLCBtb2RlKTsgLy8gNCBmb3IgbW9kZSBiaXRzCglzd2l0Y2ggKG1vZGUpIHsKCQljYXNlIE1PREVfTlVNRVJJQzoKCQkJcmV0dXJuICgobmJpdHMgLyAxMCkgfCAwKSAqIDMgKyAobmJpdHMgJSAxMCA8IDQgPyAwIDogbmJpdHMgJSAxMCA8IDcgPyAxIDogMik7CgkJY2FzZSBNT0RFX0FMUEhBTlVNRVJJQzoKCQkJcmV0dXJuICgobmJpdHMgLyAxMSkgfCAwKSAqIDIgKyAobmJpdHMgJSAxMSA8IDYgPyAwIDogMSk7CgkJY2FzZSBNT0RFX09DVEVUOgoJCQlyZXR1cm4gKG5iaXRzIC8gOCkgfCAwOwoJCWNhc2UgTU9ERV9LQU5KSToKCQkJcmV0dXJuIChuYml0cyAvIDEzKSB8IDA7Cgl9Cn07CgovLyBjaGVja3MgaWYgdGhlIGdpdmVuIGRhdGEgY2FuIGJlIGVuY29kZWQgaW4gZ2l2ZW4gbW9kZSwgYW5kIHJldHVybnMKLy8gdGhlIGNvbnZlcnRlZCBkYXRhIGZvciB0aGUgZnVydGhlciBwcm9jZXNzaW5nIGlmIHBvc3NpYmxlLiBvdGhlcndpc2UKLy8gcmV0dXJucyBudWxsLgovLwovLyB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IGNoZWNrIHRoZSBsZW5ndGggb2YgZGF0YTsgaXQgaXMgYSBkdXR5IG9mCi8vIGVuY29kZSBmdW5jdGlvbiBiZWxvdyAoYXMgaXQgZGVwZW5kcyBvbiB0aGUgdmVyc2lvbiBhbmQgRUNDIGxldmVsIHRvbykuCnZhciB2YWxpZGF0ZWRhdGEgPSBmdW5jdGlvbiAobW9kZSwgZGF0YSkgewoJc3dpdGNoIChtb2RlKSB7CgkJY2FzZSBNT0RFX05VTUVSSUM6CgkJCWlmICghZGF0YS5tYXRjaChOVU1FUklDX1JFR0VYUCkpCgkJCQlyZXR1cm4gbnVsbDsKCQkJcmV0dXJuIGRhdGE7CgoJCWNhc2UgTU9ERV9BTFBIQU5VTUVSSUM6CgkJCWlmICghZGF0YS5tYXRjaChBTFBIQU5VTUVSSUNfUkVHRVhQKSkKCQkJCXJldHVybiBudWxsOwoJCQlyZXR1cm4gZGF0YS50b1VwcGVyQ2FzZSgpOwoKCQljYXNlIE1PREVfT0NURVQ6CgkJCWlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHsgLy8gZW5jb2RlIGFzIHV0Zi04IHN0cmluZwoJCQkJdmFyIG5ld2RhdGEgPSBbXTsKCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7ICsraSkgewoJCQkJCXZhciBjaCA9IGRhdGEuY2hhckNvZGVBdChpKTsKCQkJCQlpZiAoY2ggPCAweDgwKSB7CgkJCQkJCW5ld2RhdGEucHVzaChjaCk7CgkJCQkJfSBlbHNlIGlmIChjaCA8IDB4ODAwKSB7CgkJCQkJCW5ld2RhdGEucHVzaCgweGMwIHwgKGNoID4+IDYpLAoJCQkJCQkJMHg4MCB8IChjaCAmIDB4M2YpKTsKCQkJCQl9IGVsc2UgaWYgKGNoIDwgMHgxMDAwMCkgewoJCQkJCQluZXdkYXRhLnB1c2goMHhlMCB8IChjaCA+PiAxMiksCgkJCQkJCQkweDgwIHwgKChjaCA+PiA2KSAmIDB4M2YpLAoJCQkJCQkJMHg4MCB8IChjaCAmIDB4M2YpKTsKCQkJCQl9IGVsc2UgewoJCQkJCQluZXdkYXRhLnB1c2goMHhmMCB8IChjaCA+PiAxOCksCgkJCQkJCQkweDgwIHwgKChjaCA+PiAxMikgJiAweDNmKSwKCQkJCQkJCTB4ODAgfCAoKGNoID4+IDYpICYgMHgzZiksCgkJCQkJCQkweDgwIHwgKGNoICYgMHgzZikpOwoJCQkJCX0KCQkJCX0KCQkJCXJldHVybiBuZXdkYXRhOwoJCQl9IGVsc2UgewoJCQkJcmV0dXJuIGRhdGE7CgkJCX0KCX0KfTsKCi8vIHJldHVybnMgdGhlIGNvZGUgd29yZHMgKHNhbnMgRUNDIGJpdHMpIGZvciBnaXZlbiBkYXRhIGFuZCBjb25maWd1cmF0aW9ucy4KLy8gcmVxdWlyZXMgZGF0YSB0byBiZSBwcmVwcm9jZXNzZWQgYnkgdmFsaWRhdGVkYXRhLiBubyBsZW5ndGggY2hlY2sgaXMKLy8gcGVyZm9ybWVkLCBhbmQgZXZlcnl0aGluZyBoYXMgdG8gYmUgY2hlY2tlZCBiZWZvcmUgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLgp2YXIgZW5jb2RlID0gZnVuY3Rpb24gKHZlciwgbW9kZSwgZGF0YSwgbWF4YnVmbGVuKSB7Cgl2YXIgYnVmID0gW107Cgl2YXIgYml0cyA9IDAsIHJlbWFpbmluZyA9IDg7Cgl2YXIgZGF0YWxlbiA9IGRhdGEubGVuZ3RoOwoKCS8vIHRoaXMgZnVuY3Rpb24gaXMgaW50ZW50aW9uYWxseSBuby1vcCB3aGVuIG49MC4KCXZhciBwYWNrID0gZnVuY3Rpb24gKHgsIG4pIHsKCQlpZiAobiA+PSByZW1haW5pbmcpIHsKCQkJYnVmLnB1c2goYml0cyB8ICh4ID4+IChuIC09IHJlbWFpbmluZykpKTsKCQkJd2hpbGUgKG4gPj0gOCkKCQkJCWJ1Zi5wdXNoKCh4ID4+IChuIC09IDgpKSAmIDI1NSk7CgkJCWJpdHMgPSAwOwoJCQlyZW1haW5pbmcgPSA4OwoJCX0KCQlpZiAobiA+IDApCgkJCWJpdHMgfD0gKHggJiAoKDEgPDwgbikgLSAxKSkgPDwgKHJlbWFpbmluZyAtPSBuKTsKCX07CgoJdmFyIG5sZW5iaXRzID0gbmRhdGFsZW5iaXRzKHZlciwgbW9kZSk7CglwYWNrKG1vZGUsIDQpOwoJcGFjayhkYXRhbGVuLCBubGVuYml0cyk7CgoJc3dpdGNoIChtb2RlKSB7CgkJY2FzZSBNT0RFX05VTUVSSUM6CgkJCWZvciAodmFyIGkgPSAyOyBpIDwgZGF0YWxlbjsgaSArPSAzKSB7CgkJCQlwYWNrKHBhcnNlSW50KGRhdGEuc3Vic3RyaW5nKGkgLSAyLCBpICsgMSksIDEwKSwgMTApOwoJCQl9CgkJCXBhY2socGFyc2VJbnQoZGF0YS5zdWJzdHJpbmcoaSAtIDIpLCAxMCksIFswLCA0LCA3XVtkYXRhbGVuICUgM10pOwoJCQlicmVhazsKCgkJY2FzZSBNT0RFX0FMUEhBTlVNRVJJQzoKCQkJZm9yICh2YXIgaSA9IDE7IGkgPCBkYXRhbGVuOyBpICs9IDIpIHsKCQkJCXBhY2soQUxQSEFOVU1FUklDX01BUFtkYXRhLmNoYXJBdChpIC0gMSldICogNDUgKwoJCQkJCUFMUEhBTlVNRVJJQ19NQVBbZGF0YS5jaGFyQXQoaSldLCAxMSk7CgkJCX0KCQkJaWYgKGRhdGFsZW4gJSAyID09IDEpIHsKCQkJCXBhY2soQUxQSEFOVU1FUklDX01BUFtkYXRhLmNoYXJBdChpIC0gMSldLCA2KTsKCQkJfQoJCQlicmVhazsKCgkJY2FzZSBNT0RFX09DVEVUOgoJCQlmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFsZW47ICsraSkgewoJCQkJcGFjayhkYXRhW2ldLCA4KTsKCQkJfQoJCQlicmVhazsKCX0KCgkvLyBmaW5hbCBiaXRzLiBpdCBpcyBwb3NzaWJsZSB0aGF0IGFkZGluZyB0ZXJtaW5hdG9yIGNhdXNlcyB0aGUgYnVmZmVyCgkvLyB0byBvdmVyZmxvdywgYnV0IHRoZW4gdGhlIGJ1ZmZlciB0cnVuY2F0ZWQgdG8gdGhlIG1heGltdW0gc2l6ZSB3aWxsCgkvLyBiZSB2YWxpZCBhcyB0aGUgdHJ1bmNhdGVkIHRlcm1pbmF0b3IgbW9kZSBiaXRzIGFuZCBwYWRkaW5nIGlzCgkvLyBpZGVudGljYWwgaW4gYXBwZWFyYW5jZSAoY2YuIEpJUyBYIDA1MTA6MjAwNCBzZWMgOC40LjgpLgoJcGFjayhNT0RFX1RFUk1JTkFUT1IsIDQpOwoJaWYgKHJlbWFpbmluZyA8IDgpCgkJYnVmLnB1c2goYml0cyk7CgoJLy8gdGhlIHBhZGRpbmcgdG8gZmlsbCB1cCB0aGUgcmVtYWluaW5nIHNwYWNlLiB3ZSBzaG91bGQgbm90IGFkZCBhbnkKCS8vIHdvcmRzIHdoZW4gdGhlIG92ZXJmbG93IGFscmVhZHkgb2NjdXJyZWQuCgl3aGlsZSAoYnVmLmxlbmd0aCArIDEgPCBtYXhidWZsZW4pCgkJYnVmLnB1c2goMHhlYywgMHgxMSk7CglpZiAoYnVmLmxlbmd0aCA8IG1heGJ1ZmxlbikKCQlidWYucHVzaCgweGVjKTsKCXJldHVybiBidWY7Cn07CgovLyBjYWxjdWxhdGVzIEVDQyBjb2RlIHdvcmRzIGZvciBnaXZlbiBjb2RlIHdvcmRzIGFuZCBnZW5lcmF0b3IgcG9seW5vbWlhbC4KLy8KLy8gdGhpcyBpcyBxdWl0ZSBzaW1pbGFyIHRvIENSQyBjYWxjdWxhdGlvbiBhcyBib3RoIFJlZWQtU29sb21vbiBhbmQgQ1JDIHVzZQovLyB0aGUgY2VydGFpbiBraW5kIG9mIGN5Y2xpYyBjb2Rlcywgd2hpY2ggaXMgZWZmZWN0aXZlbHkgdGhlIGRpdmlzaW9uIG9mCi8vIHplcm8tYXVndW1lbnRlZCBwb2x5bm9taWFsIGJ5IHRoZSBnZW5lcmF0b3IgcG9seW5vbWlhbC4gdGhlIG9ubHkgZGlmZmVyZW5jZQovLyBpcyB0aGF0IFJlZWQtU29sb21vbiB1c2VzIEdGKDJeOCksIGluc3RlYWQgb2YgQ1JDJ3MgR0YoMiksIGFuZCBSZWVkLVNvbG9tb24KLy8gdXNlcyB0aGUgZGlmZmVyZW50IGdlbmVyYXRvciBwb2x5bm9taWFsIHRoYW4gQ1JDJ3MuCnZhciBjYWxjdWxhdGVlY2MgPSBmdW5jdGlvbiAocG9seSwgZ2VucG9seSkgewoJdmFyIG1vZHVsdXMgPSBwb2x5LnNsaWNlKDApOwoJdmFyIHBvbHlsZW4gPSBwb2x5Lmxlbmd0aCwgZ2VucG9seWxlbiA9IGdlbnBvbHkubGVuZ3RoOwoJZm9yICh2YXIgaSA9IDA7IGkgPCBnZW5wb2x5bGVuOyArK2kpCgkJbW9kdWx1cy5wdXNoKDApOwoJZm9yICh2YXIgaSA9IDA7IGkgPCBwb2x5bGVuOyApIHsKCQl2YXIgcXVvdGllbnQgPSBHRjI1Nl9JTlZNQVBbbW9kdWx1c1tpKytdXTsKCQlpZiAocXVvdGllbnQgPj0gMCkgewoJCQlmb3IgKHZhciBqID0gMDsgaiA8IGdlbnBvbHlsZW47ICsraikgewoJCQkJbW9kdWx1c1tpICsgal0gXj0gR0YyNTZfTUFQWyhxdW90aWVudCArIGdlbnBvbHlbal0pICUgMjU1XTsKCQkJfQoJCX0KCX0KCXJldHVybiBtb2R1bHVzLnNsaWNlKHBvbHlsZW4pOwp9OwoKLy8gYXVndW1lbnRzIEVDQyBjb2RlIHdvcmRzIHRvIGdpdmVuIGNvZGUgd29yZHMuIHRoZSByZXN1bHRpbmcgd29yZHMgYXJlCi8vIHJlYWR5IHRvIGJlIGVuY29kZWQgaW4gdGhlIG1hdHJpeC4KLy8KLy8gdGhlIG11Y2ggb2YgYWN0dWFsIGF1Z3VtZW50aW5nIHByb2NlZHVyZSBmb2xsb3dzIEpJUyBYIDA1MTA6MjAwNCBzZWMgOC43LgovLyB0aGUgY29kZSBpcyBzaW1wbGlmaWVkIHVzaW5nIHRoZSBmYWN0IHRoYXQgdGhlIHNpemUgb2YgZWFjaCBjb2RlICYgRUNDCi8vIGJsb2NrcyBpcyBhbG1vc3Qgc2FtZTsgZm9yIGV4YW1wbGUsIHdoZW4gd2UgaGF2ZSA0IGJsb2NrcyBhbmQgNDYgZGF0YSB3b3JkcwovLyB0aGUgbnVtYmVyIG9mIGNvZGUgd29yZHMgaW4gdGhvc2UgYmxvY2tzIGFyZSAxMSwgMTEsIDEyLCAxMiByZXNwZWN0aXZlbHkuCnZhciBhdWd1bWVudGVjY3MgPSBmdW5jdGlvbiAocG9seSwgbmJsb2NrcywgZ2VucG9seSkgewoJdmFyIHN1YnNpemVzID0gW107Cgl2YXIgc3Vic2l6ZSA9IChwb2x5Lmxlbmd0aCAvIG5ibG9ja3MpIHwgMCwgc3Vic2l6ZTAgPSAwOwoJdmFyIHBpdm90ID0gbmJsb2NrcyAtIHBvbHkubGVuZ3RoICUgbmJsb2NrczsKCWZvciAodmFyIGkgPSAwOyBpIDwgcGl2b3Q7ICsraSkgewoJCXN1YnNpemVzLnB1c2goc3Vic2l6ZTApOwoJCXN1YnNpemUwICs9IHN1YnNpemU7Cgl9Cglmb3IgKHZhciBpID0gcGl2b3Q7IGkgPCBuYmxvY2tzOyArK2kpIHsKCQlzdWJzaXplcy5wdXNoKHN1YnNpemUwKTsKCQlzdWJzaXplMCArPSBzdWJzaXplICsgMTsKCX0KCXN1YnNpemVzLnB1c2goc3Vic2l6ZTApOwoKCXZhciBlY2NzID0gW107Cglmb3IgKHZhciBpID0gMDsgaSA8IG5ibG9ja3M7ICsraSkgewoJCWVjY3MucHVzaChjYWxjdWxhdGVlY2MocG9seS5zbGljZShzdWJzaXplc1tpXSwgc3Vic2l6ZXNbaSArIDFdKSwgZ2VucG9seSkpOwoJfQoKCXZhciByZXN1bHQgPSBbXTsKCXZhciBuaXRlbXNwZXJibG9jayA9IChwb2x5Lmxlbmd0aCAvIG5ibG9ja3MpIHwgMDsKCWZvciAodmFyIGkgPSAwOyBpIDwgbml0ZW1zcGVyYmxvY2s7ICsraSkgewoJCWZvciAodmFyIGogPSAwOyBqIDwgbmJsb2NrczsgKytqKSB7CgkJCXJlc3VsdC5wdXNoKHBvbHlbc3Vic2l6ZXNbal0gKyBpXSk7CgkJfQoJfQoJZm9yICh2YXIgaiA9IHBpdm90OyBqIDwgbmJsb2NrczsgKytqKSB7CgkJcmVzdWx0LnB1c2gocG9seVtzdWJzaXplc1tqICsgMV0gLSAxXSk7Cgl9Cglmb3IgKHZhciBpID0gMDsgaSA8IGdlbnBvbHkubGVuZ3RoOyArK2kpIHsKCQlmb3IgKHZhciBqID0gMDsgaiA8IG5ibG9ja3M7ICsraikgewoJCQlyZXN1bHQucHVzaChlY2NzW2pdW2ldKTsKCQl9Cgl9CglyZXR1cm4gcmVzdWx0Owp9OwoKLy8gYXVndW1lbnRzIEJDSChwK3EscSkgY29kZSB0byB0aGUgcG9seW5vbWlhbCBvdmVyIEdGKDIpLCBnaXZlbiB0aGUgcHJvcGVyCi8vIGdlbnBvbHkuIHRoZSBib3RoIGlucHV0IGFuZCBvdXRwdXQgYXJlIGluIGJpbmFyeSBudW1iZXJzLCBhbmQgdW5saWtlCi8vIGNhbGN1bGF0ZWVjYyBnZW5wb2x5IHNob3VsZCBpbmNsdWRlIHRoZSAxIGJpdCBmb3IgdGhlIGhpZ2hlc3QgZGVncmVlLgovLwovLyBhY3R1YWwgcG9seW5vbWlhbHMgdXNlZCBmb3IgdGhpcyBwcm9jZWR1cmUgYXJlIGFzIGZvbGxvd3M6Ci8vIC0gcD0xMCwgcT01LCBnZW5wb2x5PXheMTAreF44K3heNSt4XjQreF4yK3grMSAoSklTIFggMDUxMDoyMDA0IEFwcGVuZGl4IEMpCi8vIC0gcD0xOCwgcT02LCBnZW5wb2x5PXheMTIreF4xMSt4XjEwK3heOSt4XjgreF41K3heMisxIChpYmlkLiBBcHBlbmRpeCBEKQp2YXIgYXVndW1lbnRiY2ggPSBmdW5jdGlvbiAocG9seSwgcCwgZ2VucG9seSwgcSkgewoJdmFyIG1vZHVsdXMgPSBwb2x5IDw8IHE7Cglmb3IgKHZhciBpID0gcCAtIDE7IGkgPj0gMDsgLS1pKSB7CgkJaWYgKChtb2R1bHVzID4+IChxICsgaSkpICYgMSkKCQkJbW9kdWx1cyBePSBnZW5wb2x5IDw8IGk7Cgl9CglyZXR1cm4gKHBvbHkgPDwgcSkgfCBtb2R1bHVzOwp9OwoKLy8gY3JlYXRlcyB0aGUgYmFzZSBtYXRyaXggZm9yIGdpdmVuIHZlcnNpb24uIGl0IHJldHVybnMgdHdvIG1hdHJpY2VzLCBvbmUgb2YKLy8gdGhlbSBpcyB0aGUgYWN0dWFsIG9uZSBhbmQgdGhlIGFub3RoZXIgcmVwcmVzZW50cyB0aGUgInJlc2VydmVkIiBwb3J0aW9uCi8vIChlLmcuIGZpbmRlciBhbmQgdGltaW5nIHBhdHRlcm5zKSBvZiB0aGUgbWF0cml4LgovLwovLyBzb21lIGVudHJpZXMgaW4gdGhlIG1hdHJpeCBtYXkgYmUgdW5kZWZpbmVkLCByYXRoZXIgdGhhbiAwIG9yIDEuIHRoaXMgaXMKLy8gaW50ZW50aW9uYWwgKG5vIGluaXRpYWxpemF0aW9uIG5lZWRlZCEpLCBhbmQgcHV0ZGF0YSBiZWxvdyB3aWxsIGZpbGwKLy8gdGhlIHJlbWFpbmluZyBvbmVzLgp2YXIgbWFrZWJhc2VtYXRyaXggPSBmdW5jdGlvbiAodmVyKSB7Cgl2YXIgdiA9IFZFUlNJT05TW3Zlcl0sIG4gPSBnZXRzaXplYnl2ZXIodmVyKTsKCXZhciBtYXRyaXggPSBbXSwgcmVzZXJ2ZWQgPSBbXTsKCWZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKSB7CgkJbWF0cml4LnB1c2goW10pOwoJCXJlc2VydmVkLnB1c2goW10pOwoJfQoKCXZhciBibGl0ID0gZnVuY3Rpb24gKHksIHgsIGgsIHcsIGJpdHMpIHsKCQlmb3IgKHZhciBpID0gMDsgaSA8IGg7ICsraSkgewoJCQlmb3IgKHZhciBqID0gMDsgaiA8IHc7ICsraikgewoJCQkJbWF0cml4W3kgKyBpXVt4ICsgal0gPSAoYml0c1tpXSA+PiBqKSAmIDE7CgkJCQlyZXNlcnZlZFt5ICsgaV1beCArIGpdID0gMTsKCQkJfQoJCX0KCX07CgoJLy8gZmluZGVyIHBhdHRlcm5zIGFuZCBhIHBhcnQgb2YgdGltaW5nIHBhdHRlcm5zCgkvLyB3aWxsIGFsc28gbWFyayB0aGUgZm9ybWF0IGluZm9ybWF0aW9uIGFyZWEgKG5vdCB5ZXQgd3JpdHRlbikgYXMgcmVzZXJ2ZWQuCglibGl0KDAsIDAsIDksIDksIFsweDdmLCAweDQxLCAweDVkLCAweDVkLCAweDVkLCAweDQxLCAweDE3ZiwgMHgwMCwgMHg0MF0pOwoJYmxpdChuIC0gOCwgMCwgOCwgOSwgWzB4MTAwLCAweDdmLCAweDQxLCAweDVkLCAweDVkLCAweDVkLCAweDQxLCAweDdmXSk7CglibGl0KDAsIG4gLSA4LCA5LCA4LCBbMHhmZSwgMHg4MiwgMHhiYSwgMHhiYSwgMHhiYSwgMHg4MiwgMHhmZSwgMHgwMCwgMHgwMF0pOwoKCS8vIHRoZSByZXN0IG9mIHRpbWluZyBwYXR0ZXJucwoJZm9yICh2YXIgaSA9IDk7IGkgPCBuIC0gODsgKytpKSB7CgkJbWF0cml4WzZdW2ldID0gbWF0cml4W2ldWzZdID0gfmkgJiAxOwoJCXJlc2VydmVkWzZdW2ldID0gcmVzZXJ2ZWRbaV1bNl0gPSAxOwoJfQoKCS8vIGFsaWdubWVudCBwYXR0ZXJucwoJdmFyIGFsaWducyA9IHZbMl0sIG0gPSBhbGlnbnMubGVuZ3RoOwoJZm9yICh2YXIgaSA9IDA7IGkgPCBtOyArK2kpIHsKCQl2YXIgbWluaiA9IChpID09PSAwIHx8IGkgPT09IG0gLSAxID8gMSA6IDApLCBtYXhqID0gKGkgPT09IDAgPyBtIC0gMSA6IG0pOwoJCWZvciAodmFyIGogPSBtaW5qOyBqIDwgbWF4ajsgKytqKSB7CgkJCWJsaXQoYWxpZ25zW2ldLCBhbGlnbnNbal0sIDUsIDUsIFsweDFmLCAweDExLCAweDE1LCAweDExLCAweDFmXSk7CgkJfQoJfQoKCS8vIHZlcnNpb24gaW5mb3JtYXRpb24KCWlmIChuZWVkc3ZlcmluZm8odmVyKSkgewoJCXZhciBjb2RlID0gYXVndW1lbnRiY2godmVyLCA2LCAweDFmMjUsIDEyKTsKCQl2YXIgayA9IDA7CgkJZm9yICh2YXIgaSA9IDA7IGkgPCA2OyArK2kpIHsKCQkJZm9yICh2YXIgaiA9IDA7IGogPCAzOyArK2opIHsKCQkJCW1hdHJpeFtpXVsobiAtIDExKSArIGpdID0gbWF0cml4WyhuIC0gMTEpICsgal1baV0gPSAoY29kZSA+PiBrKyspICYgMTsKCQkJCXJlc2VydmVkW2ldWyhuIC0gMTEpICsgal0gPSByZXNlcnZlZFsobiAtIDExKSArIGpdW2ldID0gMTsKCQkJfQoJCX0KCX0KCglyZXR1cm4ge21hdHJpeDogbWF0cml4LCByZXNlcnZlZDogcmVzZXJ2ZWR9Owp9OwoKLy8gZmlsbHMgdGhlIGRhdGEgcG9ydGlvbiAoaS5lLiB1bm1hcmtlZCBpbiByZXNlcnZlZCkgb2YgdGhlIG1hdHJpeCB3aXRoIGdpdmVuCi8vIGNvZGUgd29yZHMuIHRoZSBzaXplIG9mIGNvZGUgd29yZHMgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiBhdmFpbGFibGUgYml0cywKLy8gYW5kIHJlbWFpbmluZyBiaXRzIGFyZSBwYWRkZWQgdG8gMCAoY2YuIEpJUyBYIDA1MTA6MjAwNCBzZWMgOC43LjMpLgp2YXIgcHV0ZGF0YSA9IGZ1bmN0aW9uIChtYXRyaXgsIHJlc2VydmVkLCBidWYpIHsKCXZhciBuID0gbWF0cml4Lmxlbmd0aDsKCXZhciBrID0gMCwgZGlyID0gLTE7Cglmb3IgKHZhciBpID0gbiAtIDE7IGkgPj0gMDsgaSAtPSAyKSB7CgkJaWYgKGkgPT0gNikKCQkJLS1pOyAvLyBza2lwIHRoZSBlbnRpcmUgdGltaW5nIHBhdHRlcm4gY29sdW1uCgkJdmFyIGpqID0gKGRpciA8IDAgPyBuIC0gMSA6IDApOwoJCWZvciAodmFyIGogPSAwOyBqIDwgbjsgKytqKSB7CgkJCWZvciAodmFyIGlpID0gaTsgaWkgPiBpIC0gMjsgLS1paSkgewoJCQkJaWYgKCFyZXNlcnZlZFtqal1baWldKSB7CgkJCQkJLy8gbWF5IG92ZXJmbG93LCBidXQgKHVuZGVmaW5lZCA+PiB4KQoJCQkJCS8vIGlzIDAgc28gaXQgd2lsbCBhdXRvLXBhZCB0byB6ZXJvLgoJCQkJCW1hdHJpeFtqal1baWldID0gKGJ1ZltrID4+IDNdID4+ICh+ayAmIDcpKSAmIDE7CgkJCQkJKytrOwoJCQkJfQoJCQl9CgkJCWpqICs9IGRpcjsKCQl9CgkJZGlyID0gLWRpcjsKCX0KCXJldHVybiBtYXRyaXg7Cn07CgovLyBYT1ItbWFza3MgdGhlIGRhdGEgcG9ydGlvbiBvZiB0aGUgbWF0cml4LiByZXBlYXRpbmcgdGhlIGNhbGwgd2l0aCB0aGUgc2FtZQovLyBhcmd1bWVudHMgd2lsbCByZXZlcnQgdGhlIHByaW9yIGNhbGwgKGNvbnZlbmllbnQgaW4gdGhlIG1hdHJpeCBldmFsdWF0aW9uKS4KdmFyIG1hc2tkYXRhID0gZnVuY3Rpb24gKG1hdHJpeCwgcmVzZXJ2ZWQsIG1hc2spIHsKCXZhciBtYXNrZiA9IE1BU0tGVU5DU1ttYXNrXTsKCXZhciBuID0gbWF0cml4Lmxlbmd0aDsKCWZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKSB7CgkJZm9yICh2YXIgaiA9IDA7IGogPCBuOyArK2opIHsKCQkJaWYgKCFyZXNlcnZlZFtpXVtqXSkKCQkJCW1hdHJpeFtpXVtqXSBePSBtYXNrZihpLCBqKTsKCQl9Cgl9CglyZXR1cm4gbWF0cml4Owp9OwoKLy8gcHV0cyB0aGUgZm9ybWF0IGluZm9ybWF0aW9uLgp2YXIgcHV0Zm9ybWF0aW5mbyA9IGZ1bmN0aW9uIChtYXRyaXgsIHJlc2VydmVkLCBlY2NsZXZlbCwgbWFzaykgewoJdmFyIG4gPSBtYXRyaXgubGVuZ3RoOwoJdmFyIGNvZGUgPSBhdWd1bWVudGJjaCgoZWNjbGV2ZWwgPDwgMykgfCBtYXNrLCA1LCAweDUzNywgMTApIF4gMHg1NDEyOwoJZm9yICh2YXIgaSA9IDA7IGkgPCAxNTsgKytpKSB7CgkJdmFyIHIgPSBbMCwgMSwgMiwgMywgNCwgNSwgNywgOCwgbiAtIDcsIG4gLSA2LCBuIC0gNSwgbiAtIDQsIG4gLSAzLCBuIC0gMiwgbiAtIDFdW2ldOwoJCXZhciBjID0gW24gLSAxLCBuIC0gMiwgbiAtIDMsIG4gLSA0LCBuIC0gNSwgbiAtIDYsIG4gLSA3LCBuIC0gOCwgNywgNSwgNCwgMywgMiwgMSwgMF1baV07CgkJbWF0cml4W3JdWzhdID0gbWF0cml4WzhdW2NdID0gKGNvZGUgPj4gaSkgJiAxOwoJCS8vIHdlIGRvbid0IGhhdmUgdG8gbWFyayB0aG9zZSBiaXRzIHJlc2VydmVkOyBhbHdheXMgZG9uZQoJCS8vIGluIG1ha2ViYXNlbWF0cml4IGFib3ZlLgoJfQoJcmV0dXJuIG1hdHJpeDsKfTsKCi8vIGV2YWx1YXRlcyB0aGUgcmVzdWx0aW5nIG1hdHJpeCBhbmQgcmV0dXJucyB0aGUgc2NvcmUgKGxvd2VyIGlzIGJldHRlcikuCi8vIChjZi4gSklTIFggMDUxMDoyMDA0IHNlYyA4LjguMikKLy8KLy8gdGhlIGV2YWx1YXRpb24gcHJvY2VkdXJlIHRyaWVzIHRvIGF2b2lkIHRoZSBwcm9ibGVtYXRpYyBwYXR0ZXJucyBuYXR1cmFsbHkKLy8gb2NjdXJpbmcgZnJvbSB0aGUgb3JpZ2luYWwgbWF0cml4LiBmb3IgZXhhbXBsZSwgaXQgcGVuYWx0aXplcyB0aGUgcGF0dGVybnMKLy8gd2hpY2gganVzdCBsb29rIGxpa2UgdGhlIGZpbmRlciBwYXR0ZXJuIHdoaWNoIHdpbGwgY29uZnVzZSB0aGUgZGVjb2Rlci4KLy8gd2UgY2hvb3NlIHRoZSBtYXNrIHdoaWNoIHJlc3VsdHMgaW4gdGhlIGxvd2VzdCBzY29yZSBhbW9uZyA4IHBvc3NpYmxlIG9uZXMuCi8vCi8vIG5vdGU6IHp4aW5nIHNlZW1zIHRvIHVzZSB0aGUgc2FtZSBwcm9jZWR1cmUgYW5kIGluIG1hbnkgY2FzZXMgaXRzIGNob2ljZQovLyBhZ3JlZXMgdG8gb3VycywgYnV0IHNvbWV0aW1lcyBpdCBkb2VzIG5vdC4gcHJhY3RpY2FsbHkgaXQgZG9lc24ndCBtYXR0ZXIuCnZhciBldmFsdWF0ZW1hdHJpeCA9IGZ1bmN0aW9uIChtYXRyaXgpIHsKCS8vIE4xKyhrLTUpIHBvaW50cyBmb3IgZWFjaCBjb25zZWN1dGl2ZSByb3cgb2YgayBzYW1lLWNvbG9yZWQgbW9kdWxlcywKCS8vIHdoZXJlIGsgPj0gNS4gbm8gb3ZlcmxhcHBpbmcgcm93IGNvdW50cy4KCXZhciBQRU5BTFRZX0NPTlNFQ1VUSVZFID0gMzsKCS8vIE4yIHBvaW50cyBmb3IgZWFjaCAyeDIgYmxvY2sgb2Ygc2FtZS1jb2xvcmVkIG1vZHVsZXMuCgkvLyBvdmVybGFwcGluZyBibG9jayBkb2VzIGNvdW50LgoJdmFyIFBFTkFMVFlfVFdPQllUV08gPSAzOwoJLy8gTjMgcG9pbnRzIGZvciBlYWNoIHBhdHRlcm4gd2l0aCA+NFc6MUI6MVc6M0I6MVc6MUIgb3IKCS8vIDFCOjFXOjNCOjFXOjFCOj40Vywgb3IgdGhlaXIgbXVsdGlwbGVzIChlLmcuIGhpZ2hseSB1bmxpa2VseSwKCS8vIGJ1dCAxM1c6M0I6M1c6OUI6M1c6M0IgY291bnRzKS4KCXZhciBQRU5BTFRZX0ZJTkRFUkxJS0UgPSA0MDsKCS8vIE40KmsgcG9pbnRzIGZvciBldmVyeSAoNSprKSUgZGV2aWF0aW9uIGZyb20gNTAlIGJsYWNrIGRlbnNpdHkuCgkvLyBpLmUuIGs9MSBmb3IgNTV+NjAlIGFuZCA0MH40NSUsIGs9MiBmb3IgNjB+NjUlIGFuZCAzNX40MCUsIGV0Yy4KCXZhciBQRU5BTFRZX0RFTlNJVFkgPSAxMDsKCgl2YXIgZXZhbHVhdGVncm91cCA9IGZ1bmN0aW9uIChncm91cHMpIHsgLy8gYXNzdW1lcyBbVyxCLFcsQixXLC4uLixCLFddCgkJdmFyIHNjb3JlID0gMDsKCQlmb3IgKHZhciBpID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7ICsraSkgewoJCQlpZiAoZ3JvdXBzW2ldID49IDUpCgkJCQlzY29yZSArPSBQRU5BTFRZX0NPTlNFQ1VUSVZFICsgKGdyb3Vwc1tpXSAtIDUpOwoJCX0KCQlmb3IgKHZhciBpID0gNTsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkgKz0gMikgewoJCQl2YXIgcCA9IGdyb3Vwc1tpXTsKCQkJaWYgKGdyb3Vwc1tpIC0gMV0gPT0gcCAmJiBncm91cHNbaSAtIDJdID09IDMgKiBwICYmIGdyb3Vwc1tpIC0gM10gPT0gcCAmJgoJCQkJZ3JvdXBzW2kgLSA0XSA9PSBwICYmIChncm91cHNbaSAtIDVdID49IDQgKiBwIHx8IGdyb3Vwc1tpICsgMV0gPj0gNCAqIHApKSB7CgkJCQkvLyB0aGlzIHBhcnQgZGlmZmVycyBmcm9tIHp4aW5nLi4uCgkJCQlzY29yZSArPSBQRU5BTFRZX0ZJTkRFUkxJS0U7CgkJCX0KCQl9CgkJcmV0dXJuIHNjb3JlOwoJfTsKCgl2YXIgbiA9IG1hdHJpeC5sZW5ndGg7Cgl2YXIgc2NvcmUgPSAwLCBuYmxhY2tzID0gMDsKCWZvciAodmFyIGkgPSAwOyBpIDwgbjsgKytpKSB7CgkJdmFyIHJvdyA9IG1hdHJpeFtpXTsKCQl2YXIgZ3JvdXBzOwoKCQkvLyBldmFsdWF0ZSB0aGUgY3VycmVudCByb3cKCQlncm91cHMgPSBbMF07IC8vIHRoZSBmaXJzdCBlbXB0eSBncm91cCBvZiB3aGl0ZQoJCWZvciAodmFyIGogPSAwOyBqIDwgbjsgKSB7CgkJCXZhciBrOwoJCQlmb3IgKGsgPSAwOyBqIDwgbiAmJiByb3dbal07ICsraykKCQkJCSsrajsKCQkJZ3JvdXBzLnB1c2goayk7CgkJCWZvciAoayA9IDA7IGogPCBuICYmICFyb3dbal07ICsraykKCQkJCSsrajsKCQkJZ3JvdXBzLnB1c2goayk7CgkJfQoJCXNjb3JlICs9IGV2YWx1YXRlZ3JvdXAoZ3JvdXBzKTsKCgkJLy8gZXZhbHVhdGUgdGhlIGN1cnJlbnQgY29sdW1uCgkJZ3JvdXBzID0gWzBdOwoJCWZvciAodmFyIGogPSAwOyBqIDwgbjsgKSB7CgkJCXZhciBrOwoJCQlmb3IgKGsgPSAwOyBqIDwgbiAmJiBtYXRyaXhbal1baV07ICsraykKCQkJCSsrajsKCQkJZ3JvdXBzLnB1c2goayk7CgkJCWZvciAoayA9IDA7IGogPCBuICYmICFtYXRyaXhbal1baV07ICsraykKCQkJCSsrajsKCQkJZ3JvdXBzLnB1c2goayk7CgkJfQoJCXNjb3JlICs9IGV2YWx1YXRlZ3JvdXAoZ3JvdXBzKTsKCgkJLy8gY2hlY2sgdGhlIDJ4MiBib3ggYW5kIGNhbGN1bGF0ZSB0aGUgZGVuc2l0eQoJCXZhciBuZXh0cm93ID0gbWF0cml4W2kgKyAxXSB8fCBbXTsKCQluYmxhY2tzICs9IHJvd1swXTsKCQlmb3IgKHZhciBqID0gMTsgaiA8IG47ICsraikgewoJCQl2YXIgcCA9IHJvd1tqXTsKCQkJbmJsYWNrcyArPSBwOwoJCQkvLyBhdCBsZWFzdCBjb21wYXJpc29uIHdpdGggbmV4dCByb3cgc2hvdWxkIGJlIHN0cmljdC4uLgoJCQlpZiAocm93W2ogLSAxXSA9PSBwICYmIG5leHRyb3dbal0gPT09IHAgJiYgbmV4dHJvd1tqIC0gMV0gPT09IHApIHsKCQkJCXNjb3JlICs9IFBFTkFMVFlfVFdPQllUV087CgkJCX0KCQl9Cgl9CgoJc2NvcmUgKz0gUEVOQUxUWV9ERU5TSVRZICogKChNYXRoLmFicyhuYmxhY2tzIC8gbiAvIG4gLSAwLjUpIC8gMC4wNSkgfCAwKTsKCXJldHVybiBzY29yZTsKfTsKCi8vIHJldHVybnMgdGhlIGZ1bGx5IGVuY29kZWQgUVIgY29kZSBtYXRyaXggd2hpY2ggY29udGFpbnMgZ2l2ZW4gZGF0YS4KLy8gaXQgYWxzbyBjaG9vc2VzIHRoZSBiZXN0IG1hc2sgYXV0b21hdGljYWxseSB3aGVuIG1hc2sgaXMgLTEuCnZhciBnZW5lcmF0ZSA9IGZ1bmN0aW9uIChkYXRhLCB2ZXIsIG1vZGUsIGVjY2xldmVsLCBtYXNrKSB7Cgl2YXIgdiA9IFZFUlNJT05TW3Zlcl07Cgl2YXIgYnVmID0gZW5jb2RlKHZlciwgbW9kZSwgZGF0YSwgbmRhdGFiaXRzKHZlciwgZWNjbGV2ZWwpID4+IDMpOwoJYnVmID0gYXVndW1lbnRlY2NzKGJ1ZiwgdlsxXVtlY2NsZXZlbF0sIEdGMjU2X0dFTlBPTFlbdlswXVtlY2NsZXZlbF1dKTsKCgl2YXIgcmVzdWx0ID0gbWFrZWJhc2VtYXRyaXgodmVyKTsKCXZhciBtYXRyaXggPSByZXN1bHQubWF0cml4LCByZXNlcnZlZCA9IHJlc3VsdC5yZXNlcnZlZDsKCXB1dGRhdGEobWF0cml4LCByZXNlcnZlZCwgYnVmKTsKCglpZiAobWFzayA8IDApIHsKCQkvLyBmaW5kIHRoZSBiZXN0IG1hc2sKCQltYXNrZGF0YShtYXRyaXgsIHJlc2VydmVkLCAwKTsKCQlwdXRmb3JtYXRpbmZvKG1hdHJpeCwgcmVzZXJ2ZWQsIGVjY2xldmVsLCAwKTsKCQl2YXIgYmVzdG1hc2sgPSAwLCBiZXN0c2NvcmUgPSBldmFsdWF0ZW1hdHJpeChtYXRyaXgpOwoJCW1hc2tkYXRhKG1hdHJpeCwgcmVzZXJ2ZWQsIDApOwoJCWZvciAobWFzayA9IDE7IG1hc2sgPCA4OyArK21hc2spIHsKCQkJbWFza2RhdGEobWF0cml4LCByZXNlcnZlZCwgbWFzayk7CgkJCXB1dGZvcm1hdGluZm8obWF0cml4LCByZXNlcnZlZCwgZWNjbGV2ZWwsIG1hc2spOwoJCQl2YXIgc2NvcmUgPSBldmFsdWF0ZW1hdHJpeChtYXRyaXgpOwoJCQlpZiAoYmVzdHNjb3JlID4gc2NvcmUpIHsKCQkJCWJlc3RzY29yZSA9IHNjb3JlOwoJCQkJYmVzdG1hc2sgPSBtYXNrOwoJCQl9CgkJCW1hc2tkYXRhKG1hdHJpeCwgcmVzZXJ2ZWQsIG1hc2spOwoJCX0KCQltYXNrID0gYmVzdG1hc2s7Cgl9CgoJbWFza2RhdGEobWF0cml4LCByZXNlcnZlZCwgbWFzayk7CglwdXRmb3JtYXRpbmZvKG1hdHJpeCwgcmVzZXJ2ZWQsIGVjY2xldmVsLCBtYXNrKTsKCXJldHVybiBtYXRyaXg7Cn07CgovLyB0aGUgcHVibGljIGludGVyZmFjZSBpcyB0cml2aWFsOyB0aGUgb3B0aW9ucyBhdmFpbGFibGUgYXJlIGFzIGZvbGxvd3M6Ci8vCi8vIC0gdmVyc2lvbjogYW4gaW50ZWdlciBpbiBbMSw0MF0uIHdoZW4gb21pdHRlZCAob3IgLTEpIHRoZSBzbWFsbGVzdCBwb3NzaWJsZQovLyAgIHZlcnNpb24gaXMgY2hvc2VuLgovLyAtIG1vZGU6IG9uZSBvZiAnbnVtZXJpYycsICdhbHBoYW51bWVyaWMnLCAnb2N0ZXQnLiB3aGVuIG9taXR0ZWQgdGhlIHNtYWxsZXN0Ci8vICAgcG9zc2libGUgbW9kZSBpcyBjaG9zZW4uCi8vIC0gZWNjTGV2ZWw6IG9uZSBvZiAnTCcsICdNJywgJ1EnLCAnSCcuIGRlZmF1bHRzIHRvICdMJy4KLy8gLSBtYXNrOiBhbiBpbnRlZ2VyIGluIFswLDddLiB3aGVuIG9taXR0ZWQgKG9yIC0xKSB0aGUgYmVzdCBtYXNrIGlzIGNob3Nlbi4KLy8KCmZ1bmN0aW9uIGdlbmVyYXRlRnJhbWUoZGF0YSwgb3B0aW9ucykgewoJdmFyIE1PREVTID0geydudW1lcmljJzogTU9ERV9OVU1FUklDLCAnYWxwaGFudW1lcmljJzogTU9ERV9BTFBIQU5VTUVSSUMsCgkJJ29jdGV0JzogTU9ERV9PQ1RFVH07Cgl2YXIgRUNDTEVWRUxTID0geydMJzogRUNDTEVWRUxfTCwgJ00nOiBFQ0NMRVZFTF9NLCAnUSc6IEVDQ0xFVkVMX1EsCgkJJ0gnOiBFQ0NMRVZFTF9IfTsKCglvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKCXZhciB2ZXIgPSBvcHRpb25zLnZlcnNpb24gfHwgLTE7Cgl2YXIgZWNjbGV2ZWwgPSBFQ0NMRVZFTFNbKG9wdGlvbnMuZWNjTGV2ZWwgfHwgJ0wnKS50b1VwcGVyQ2FzZSgpXTsKCXZhciBtb2RlID0gb3B0aW9ucy5tb2RlID8gTU9ERVNbb3B0aW9ucy5tb2RlLnRvTG93ZXJDYXNlKCldIDogLTE7Cgl2YXIgbWFzayA9ICdtYXNrJyBpbiBvcHRpb25zID8gb3B0aW9ucy5tYXNrIDogLTE7CgoJaWYgKG1vZGUgPCAwKSB7CgkJaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgewoJCQlpZiAoZGF0YS5tYXRjaChOVU1FUklDX1JFR0VYUCkpIHsKCQkJCW1vZGUgPSBNT0RFX05VTUVSSUM7CgkJCX0gZWxzZSBpZiAoZGF0YS5tYXRjaChBTFBIQU5VTUVSSUNfT1VUX1JFR0VYUCkpIHsKCQkJCS8vIHdoaWxlIGVuY29kZSBzdXBwb3J0cyBjYXNlLWluc2Vuc2l0aXZlIGVuY29kaW5nLCB3ZSByZXN0cmljdCB0aGUgZGF0YSB0byBiZSB1cHBlcmNhc2VkIHdoZW4gYXV0by1zZWxlY3RpbmcgdGhlIG1vZGUuCgkJCQltb2RlID0gTU9ERV9BTFBIQU5VTUVSSUM7CgkJCX0gZWxzZSB7CgkJCQltb2RlID0gTU9ERV9PQ1RFVDsKCQkJfQoJCX0gZWxzZSB7CgkJCW1vZGUgPSBNT0RFX09DVEVUOwoJCX0KCX0gZWxzZSBpZiAoIShtb2RlID09IE1PREVfTlVNRVJJQyB8fCBtb2RlID09IE1PREVfQUxQSEFOVU1FUklDIHx8CgkJbW9kZSA9PSBNT0RFX09DVEVUKSkgewoJCXRocm93ICdpbnZhbGlkIG9yIHVuc3VwcG9ydGVkIG1vZGUnOwoJfQoKCWRhdGEgPSB2YWxpZGF0ZWRhdGEobW9kZSwgZGF0YSk7CglpZiAoZGF0YSA9PT0gbnVsbCkKCQl0aHJvdyAnaW52YWxpZCBkYXRhIGZvcm1hdCc7CgoJaWYgKGVjY2xldmVsIDwgMCB8fCBlY2NsZXZlbCA+IDMpCgkJdGhyb3cgJ2ludmFsaWQgRUNDIGxldmVsJzsKCglpZiAodmVyIDwgMCkgewoJCWZvciAodmVyID0gMTsgdmVyIDw9IDQwOyArK3ZlcikgewoJCQlpZiAoZGF0YS5sZW5ndGggPD0gZ2V0bWF4ZGF0YWxlbih2ZXIsIG1vZGUsIGVjY2xldmVsKSkKCQkJCWJyZWFrOwoJCX0KCQlpZiAodmVyID4gNDApCgkJCXRocm93ICd0b28gbGFyZ2UgZGF0YSBmb3IgdGhlIFFyIGZvcm1hdCc7Cgl9IGVsc2UgaWYgKHZlciA8IDEgfHwgdmVyID4gNDApIHsKCQl0aHJvdyAnaW52YWxpZCBRciB2ZXJzaW9uISBzaG91bGQgYmUgYmV0d2VlbiAxIGFuZCA0MCc7Cgl9CgoJaWYgKG1hc2sgIT0gLTEgJiYgKG1hc2sgPCAwIHx8IG1hc2sgPiA4KSkKCQl0aHJvdyAnaW52YWxpZCBtYXNrJzsKCS8vY29uc29sZS5sb2coJ3ZlcnNpb246JywgdmVyLCAnbW9kZTonLCBtb2RlLCAnRUNDOicsIGVjY2xldmVsLCAnbWFzazonLCBtYXNrICkKCXJldHVybiBnZW5lcmF0ZShkYXRhLCB2ZXIsIG1vZGUsIGVjY2xldmVsLCBtYXNrKTsKfQoKCi8vIG9wdGlvbnMKLy8gLSBtb2R1bGVzaXplOiBhIG51bWJlci4gdGhpcyBpcyBhIHNpemUgb2YgZWFjaCBtb2R1bGVzIGluIHBpeGVscywgYW5kCi8vICAgZGVmYXVsdHMgdG8gNXB4LgovLyAtIG1hcmdpbjogYSBudW1iZXIuIHRoaXMgaXMgYSBzaXplIG9mIG1hcmdpbiBpbiAqbW9kdWxlcyosIGFuZCBkZWZhdWx0cyB0bwovLyAgIDQgKHdoaXRlIG1vZHVsZXMpLiB0aGUgc3BlY2ZpY2lhdGlvbiBtYW5kYXRlcyB0aGUgbWFyZ2luIG5vIGxlc3MgdGhhbiA0Ci8vICAgbW9kdWxlcywgc28gaXQgaXMgYmV0dGVyIG5vdCB0byBhbHRlciB0aGlzIHZhbHVlIHVubGVzcyB5b3Uga25vdyB3aGF0Ci8vICAgeW91J3JlIGRvaW5nLgpmdW5jdGlvbiBidWlsZENhbnZhcyhkYXRhLCBvcHRpb25zKSB7CgoJdmFyIGNhbnZhcyA9IFtdOwoJdmFyIGJhY2tncm91bmQgPSBvcHRpb25zLmJhY2tncm91bmQgfHwgJyNmZmYnOwoJdmFyIGZvcmVncm91bmQgPSBvcHRpb25zLmZvcmVncm91bmQgfHwgJyMwMDAnOwoJLy92YXIgbWFyZ2luID0gb3B0aW9ucy5tYXJnaW4gfHwgNDsKCXZhciBtYXRyaXggPSBnZW5lcmF0ZUZyYW1lKGRhdGEsIG9wdGlvbnMpOwoJdmFyIG4gPSBtYXRyaXgubGVuZ3RoOwoJdmFyIG1vZFNpemUgPSBNYXRoLmZsb29yKG9wdGlvbnMuZml0ID8gb3B0aW9ucy5maXQgLyBuIDogNSk7Cgl2YXIgc2l6ZSA9IG4gKiBtb2RTaXplOwoKCWNhbnZhcy5wdXNoKHsKCQl0eXBlOiAncmVjdCcsCgkJeDogMCwgeTogMCwgdzogc2l6ZSwgaDogc2l6ZSwgbGluZVdpZHRoOiAwLCBjb2xvcjogYmFja2dyb3VuZAoJfSk7CgoJZm9yICh2YXIgaSA9IDA7IGkgPCBuOyArK2kpIHsKCQlmb3IgKHZhciBqID0gMDsgaiA8IG47ICsraikgewoJCQlpZiAobWF0cml4W2ldW2pdKSB7CgkJCQljYW52YXMucHVzaCh7CgkJCQkJdHlwZTogJ3JlY3QnLAoJCQkJCXg6IG1vZFNpemUgKiBqLAoJCQkJCXk6IG1vZFNpemUgKiBpLAoJCQkJCXc6IG1vZFNpemUsCgkJCQkJaDogbW9kU2l6ZSwKCQkJCQlsaW5lV2lkdGg6IDAsCgkJCQkJY29sb3I6IGZvcmVncm91bmQKCQkJCX0pOwoJCQl9CgkJfQoJfQoKCXJldHVybiB7CgkJY2FudmFzOiBjYW52YXMsCgkJc2l6ZTogc2l6ZQoJfTsKCn0KCmZ1bmN0aW9uIG1lYXN1cmUobm9kZSkgewoJdmFyIGNkID0gYnVpbGRDYW52YXMobm9kZS5xciwgbm9kZSk7Cglub2RlLl9jYW52YXMgPSBjZC5jYW52YXM7Cglub2RlLl93aWR0aCA9IG5vZGUuX2hlaWdodCA9IG5vZGUuX21pbldpZHRoID0gbm9kZS5fbWF4V2lkdGggPSBub2RlLl9taW5IZWlnaHQgPSBub2RlLl9tYXhIZWlnaHQgPSBjZC5zaXplOwoJcmV0dXJuIG5vZGU7Cn0KCm1vZHVsZS5leHBvcnRzID0gewoJbWVhc3VyZTogbWVhc3VyZQp9OwoKLyoqKi8gfSksCi8qIDEzNSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKdmFyIEVsZW1lbnRXcml0ZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEzNik7CgovKioKICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBQYWdlRWxlbWVudFdyaXRlciAtIGFuIGV4dGVuZGVkIEVsZW1lbnRXcml0ZXIKICogd2hpY2ggY2FuIGhhbmRsZToKICogLSBwYWdlLWJyZWFrcyAoaXQgYWRkcyBuZXcgcGFnZXMgd2hlbiB0aGVyZSdzIG5vdCBlbm91Z2ggc3BhY2UgbGVmdCksCiAqIC0gcmVwZWF0YWJsZSBmcmFnbWVudHMgKGxpa2UgdGFibGUtaGVhZGVycywgd2hpY2ggYXJlIHJlcGVhdGVkIGV2ZXJ5dGltZQogKiAgICAgICAgICAgICAgICAgICAgICAgICBhIHBhZ2UtYnJlYWsgb2NjdXJzKQogKiAtIHRyYW5zYWN0aW9ucyAodXNlZCBmb3IgdW5icmVha2FibGUtYmxvY2tzIHdoZW4gd2Ugd2FudCB0byBtYWtlIHN1cmUKICogICAgICAgICAgICAgICAgIHdob2xlIGJsb2NrIHdpbGwgYmUgcmVuZGVyZWQgb24gdGhlIHNhbWUgcGFnZSkKICovCmZ1bmN0aW9uIFBhZ2VFbGVtZW50V3JpdGVyKGNvbnRleHQsIHRyYWNrZXIpIHsKCXRoaXMudHJhbnNhY3Rpb25MZXZlbCA9IDA7Cgl0aGlzLnJlcGVhdGFibGVzID0gW107Cgl0aGlzLnRyYWNrZXIgPSB0cmFja2VyOwoJdGhpcy53cml0ZXIgPSBuZXcgRWxlbWVudFdyaXRlcihjb250ZXh0LCB0cmFja2VyKTsKfQoKZnVuY3Rpb24gZml0T25QYWdlKHNlbGYsIGFkZEZjdCkgewoJdmFyIHBvc2l0aW9uID0gYWRkRmN0KHNlbGYpOwoJaWYgKCFwb3NpdGlvbikgewoJCXNlbGYubW92ZVRvTmV4dFBhZ2UoKTsKCQlwb3NpdGlvbiA9IGFkZEZjdChzZWxmKTsKCX0KCXJldHVybiBwb3NpdGlvbjsKfQoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmFkZExpbmUgPSBmdW5jdGlvbiAobGluZSwgZG9udFVwZGF0ZUNvbnRleHRQb3NpdGlvbiwgaW5kZXgpIHsKCXJldHVybiBmaXRPblBhZ2UodGhpcywgZnVuY3Rpb24gKHNlbGYpIHsKCQlyZXR1cm4gc2VsZi53cml0ZXIuYWRkTGluZShsaW5lLCBkb250VXBkYXRlQ29udGV4dFBvc2l0aW9uLCBpbmRleCk7Cgl9KTsKfTsKClBhZ2VFbGVtZW50V3JpdGVyLnByb3RvdHlwZS5hZGRJbWFnZSA9IGZ1bmN0aW9uIChpbWFnZSwgaW5kZXgpIHsKCXJldHVybiBmaXRPblBhZ2UodGhpcywgZnVuY3Rpb24gKHNlbGYpIHsKCQlyZXR1cm4gc2VsZi53cml0ZXIuYWRkSW1hZ2UoaW1hZ2UsIGluZGV4KTsKCX0pOwp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmFkZFFyID0gZnVuY3Rpb24gKHFyLCBpbmRleCkgewoJcmV0dXJuIGZpdE9uUGFnZSh0aGlzLCBmdW5jdGlvbiAoc2VsZikgewoJCXJldHVybiBzZWxmLndyaXRlci5hZGRRcihxciwgaW5kZXgpOwoJfSk7Cn07CgpQYWdlRWxlbWVudFdyaXRlci5wcm90b3R5cGUuYWRkVmVjdG9yID0gZnVuY3Rpb24gKHZlY3RvciwgaWdub3JlQ29udGV4dFgsIGlnbm9yZUNvbnRleHRZLCBpbmRleCkgewoJcmV0dXJuIHRoaXMud3JpdGVyLmFkZFZlY3Rvcih2ZWN0b3IsIGlnbm9yZUNvbnRleHRYLCBpZ25vcmVDb250ZXh0WSwgaW5kZXgpOwp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmJlZ2luQ2xpcCA9IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7CglyZXR1cm4gdGhpcy53cml0ZXIuYmVnaW5DbGlwKHdpZHRoLCBoZWlnaHQpOwp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmVuZENsaXAgPSBmdW5jdGlvbiAoKSB7CglyZXR1cm4gdGhpcy53cml0ZXIuZW5kQ2xpcCgpOwp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmFsaWduQ2FudmFzID0gZnVuY3Rpb24gKG5vZGUpIHsKCXRoaXMud3JpdGVyLmFsaWduQ2FudmFzKG5vZGUpOwp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmFkZEZyYWdtZW50ID0gZnVuY3Rpb24gKGZyYWdtZW50LCB1c2VCbG9ja1hPZmZzZXQsIHVzZUJsb2NrWU9mZnNldCwgZG9udFVwZGF0ZUNvbnRleHRQb3NpdGlvbikgewoJaWYgKCF0aGlzLndyaXRlci5hZGRGcmFnbWVudChmcmFnbWVudCwgdXNlQmxvY2tYT2Zmc2V0LCB1c2VCbG9ja1lPZmZzZXQsIGRvbnRVcGRhdGVDb250ZXh0UG9zaXRpb24pKSB7CgkJdGhpcy5tb3ZlVG9OZXh0UGFnZSgpOwoJCXRoaXMud3JpdGVyLmFkZEZyYWdtZW50KGZyYWdtZW50LCB1c2VCbG9ja1hPZmZzZXQsIHVzZUJsb2NrWU9mZnNldCwgZG9udFVwZGF0ZUNvbnRleHRQb3NpdGlvbik7Cgl9Cn07CgpQYWdlRWxlbWVudFdyaXRlci5wcm90b3R5cGUubW92ZVRvTmV4dFBhZ2UgPSBmdW5jdGlvbiAocGFnZU9yaWVudGF0aW9uKSB7CgoJdmFyIG5leHRQYWdlID0gdGhpcy53cml0ZXIuY29udGV4dC5tb3ZlVG9OZXh0UGFnZShwYWdlT3JpZW50YXRpb24pOwoKCWlmIChuZXh0UGFnZS5uZXdQYWdlQ3JlYXRlZCkgewoJCXRoaXMucmVwZWF0YWJsZXMuZm9yRWFjaChmdW5jdGlvbiAocmVwKSB7CgkJCXRoaXMud3JpdGVyLmFkZEZyYWdtZW50KHJlcCwgdHJ1ZSk7CgkJfSwgdGhpcyk7Cgl9IGVsc2UgewoJCXRoaXMucmVwZWF0YWJsZXMuZm9yRWFjaChmdW5jdGlvbiAocmVwKSB7CgkJCXRoaXMud3JpdGVyLmNvbnRleHQubW92ZURvd24ocmVwLmhlaWdodCk7CgkJfSwgdGhpcyk7Cgl9CgoJdGhpcy53cml0ZXIudHJhY2tlci5lbWl0KCdwYWdlQ2hhbmdlZCcsIHsKCQlwcmV2UGFnZTogbmV4dFBhZ2UucHJldlBhZ2UsCgkJcHJldlk6IG5leHRQYWdlLnByZXZZLAoJCXk6IG5leHRQYWdlLnkKCX0pOwp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmJlZ2luVW5icmVha2FibGVCbG9jayA9IGZ1bmN0aW9uICh3aWR0aCwgaGVpZ2h0KSB7CglpZiAodGhpcy50cmFuc2FjdGlvbkxldmVsKysgPT09IDApIHsKCQl0aGlzLm9yaWdpbmFsWCA9IHRoaXMud3JpdGVyLmNvbnRleHQueDsKCQl0aGlzLndyaXRlci5wdXNoQ29udGV4dCh3aWR0aCwgaGVpZ2h0KTsKCX0KfTsKClBhZ2VFbGVtZW50V3JpdGVyLnByb3RvdHlwZS5jb21taXRVbmJyZWFrYWJsZUJsb2NrID0gZnVuY3Rpb24gKGZvcmNlZFgsIGZvcmNlZFkpIHsKCWlmICgtLXRoaXMudHJhbnNhY3Rpb25MZXZlbCA9PT0gMCkgewoJCXZhciB1bmJyZWFrYWJsZUNvbnRleHQgPSB0aGlzLndyaXRlci5jb250ZXh0OwoJCXRoaXMud3JpdGVyLnBvcENvbnRleHQoKTsKCgkJdmFyIG5iUGFnZXMgPSB1bmJyZWFrYWJsZUNvbnRleHQucGFnZXMubGVuZ3RoOwoJCWlmIChuYlBhZ2VzID4gMCkgewoJCQkvLyBubyBzdXBwb3J0IGZvciBtdWx0aS1wYWdlIHVuYnJlYWthYmxlQmxvY2tzCgkJCXZhciBmcmFnbWVudCA9IHVuYnJlYWthYmxlQ29udGV4dC5wYWdlc1swXTsKCQkJZnJhZ21lbnQueE9mZnNldCA9IGZvcmNlZFg7CgkJCWZyYWdtZW50LnlPZmZzZXQgPSBmb3JjZWRZOwoKCQkJLy9UT0RPOiB2ZWN0b3JzIGNhbiBpbmZsdWVuY2UgaGVpZ2h0IGluIHNvbWUgc2l0dWF0aW9ucwoJCQlpZiAobmJQYWdlcyA+IDEpIHsKCQkJCS8vIG9uIG91dC1vZi1jb250ZXh0IGJsb2NzIChoZWFkZXJzLCBmb290ZXJzLCBiYWNrZ3JvdW5kKSBoZWlnaHQgc2hvdWxkIGJlIHRoZSB3aG9sZSBEb2N1bWVudENvbnRleHQgaGVpZ2h0CgkJCQlpZiAoZm9yY2VkWCAhPT0gdW5kZWZpbmVkIHx8IGZvcmNlZFkgIT09IHVuZGVmaW5lZCkgewoJCQkJCWZyYWdtZW50LmhlaWdodCA9IHVuYnJlYWthYmxlQ29udGV4dC5nZXRDdXJyZW50UGFnZSgpLnBhZ2VTaXplLmhlaWdodCAtIHVuYnJlYWthYmxlQ29udGV4dC5wYWdlTWFyZ2lucy50b3AgLSB1bmJyZWFrYWJsZUNvbnRleHQucGFnZU1hcmdpbnMuYm90dG9tOwoJCQkJfSBlbHNlIHsKCQkJCQlmcmFnbWVudC5oZWlnaHQgPSB0aGlzLndyaXRlci5jb250ZXh0LmdldEN1cnJlbnRQYWdlKCkucGFnZVNpemUuaGVpZ2h0IC0gdGhpcy53cml0ZXIuY29udGV4dC5wYWdlTWFyZ2lucy50b3AgLSB0aGlzLndyaXRlci5jb250ZXh0LnBhZ2VNYXJnaW5zLmJvdHRvbTsKCQkJCQlmb3IgKHZhciBpID0gMCwgbCA9IHRoaXMucmVwZWF0YWJsZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJCQkJCWZyYWdtZW50LmhlaWdodCAtPSB0aGlzLnJlcGVhdGFibGVzW2ldLmhlaWdodDsKCQkJCQl9CgkJCQl9CgkJCX0gZWxzZSB7CgkJCQlmcmFnbWVudC5oZWlnaHQgPSB1bmJyZWFrYWJsZUNvbnRleHQueTsKCQkJfQoKCQkJaWYgKGZvcmNlZFggIT09IHVuZGVmaW5lZCB8fCBmb3JjZWRZICE9PSB1bmRlZmluZWQpIHsKCQkJCXRoaXMud3JpdGVyLmFkZEZyYWdtZW50KGZyYWdtZW50LCB0cnVlLCB0cnVlLCB0cnVlKTsKCQkJfSBlbHNlIHsKCQkJCXRoaXMuYWRkRnJhZ21lbnQoZnJhZ21lbnQpOwoJCQl9CgkJfQoJfQp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmN1cnJlbnRCbG9ja1RvUmVwZWF0YWJsZSA9IGZ1bmN0aW9uICgpIHsKCXZhciB1bmJyZWFrYWJsZUNvbnRleHQgPSB0aGlzLndyaXRlci5jb250ZXh0OwoJdmFyIHJlcCA9IHtpdGVtczogW119OwoKCXVuYnJlYWthYmxlQ29udGV4dC5wYWdlc1swXS5pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmVwLml0ZW1zLnB1c2goaXRlbSk7Cgl9KTsKCglyZXAueE9mZnNldCA9IHRoaXMub3JpZ2luYWxYOwoKCS8vVE9ETzogdmVjdG9ycyBjYW4gaW5mbHVlbmNlIGhlaWdodCBpbiBzb21lIHNpdHVhdGlvbnMKCXJlcC5oZWlnaHQgPSB1bmJyZWFrYWJsZUNvbnRleHQueTsKCglyZXR1cm4gcmVwOwp9OwoKUGFnZUVsZW1lbnRXcml0ZXIucHJvdG90eXBlLnB1c2hUb1JlcGVhdGFibGVzID0gZnVuY3Rpb24gKHJlcCkgewoJdGhpcy5yZXBlYXRhYmxlcy5wdXNoKHJlcCk7Cn07CgpQYWdlRWxlbWVudFdyaXRlci5wcm90b3R5cGUucG9wRnJvbVJlcGVhdGFibGVzID0gZnVuY3Rpb24gKCkgewoJdGhpcy5yZXBlYXRhYmxlcy5wb3AoKTsKfTsKClBhZ2VFbGVtZW50V3JpdGVyLnByb3RvdHlwZS5jb250ZXh0ID0gZnVuY3Rpb24gKCkgewoJcmV0dXJuIHRoaXMud3JpdGVyLmNvbnRleHQ7Cn07Cgptb2R1bGUuZXhwb3J0cyA9IFBhZ2VFbGVtZW50V3JpdGVyOwoKCi8qKiovIH0pLAovKiAxMzYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCnZhciBMaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4Mik7CnZhciBpc051bWJlciA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNOdW1iZXI7CnZhciBwYWNrID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5wYWNrOwp2YXIgb2Zmc2V0VmVjdG9yID0gX193ZWJwYWNrX3JlcXVpcmVfXygwKS5vZmZzZXRWZWN0b3I7CnZhciBEb2N1bWVudENvbnRleHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgxKTsKCi8qKgogKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEVsZW1lbnRXcml0ZXIgLSBhIGxpbmUvdmVjdG9yIHdyaXRlciwgd2hpY2ggYWRkcwogKiBlbGVtZW50cyB0byBjdXJyZW50IHBhZ2UgYW5kIHNldHMgdGhlaXIgcG9zaXRpb25zIGJhc2VkIG9uIHRoZSBjb250ZXh0CiAqLwpmdW5jdGlvbiBFbGVtZW50V3JpdGVyKGNvbnRleHQsIHRyYWNrZXIpIHsKCXRoaXMuY29udGV4dCA9IGNvbnRleHQ7Cgl0aGlzLmNvbnRleHRTdGFjayA9IFtdOwoJdGhpcy50cmFja2VyID0gdHJhY2tlcjsKfQoKZnVuY3Rpb24gYWRkUGFnZUl0ZW0ocGFnZSwgaXRlbSwgaW5kZXgpIHsKCWlmIChpbmRleCA9PT0gbnVsbCB8fCBpbmRleCA9PT0gdW5kZWZpbmVkIHx8IGluZGV4IDwgMCB8fCBpbmRleCA+IHBhZ2UuaXRlbXMubGVuZ3RoKSB7CgkJcGFnZS5pdGVtcy5wdXNoKGl0ZW0pOwoJfSBlbHNlIHsKCQlwYWdlLml0ZW1zLnNwbGljZShpbmRleCwgMCwgaXRlbSk7Cgl9Cn0KCkVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmFkZExpbmUgPSBmdW5jdGlvbiAobGluZSwgZG9udFVwZGF0ZUNvbnRleHRQb3NpdGlvbiwgaW5kZXgpIHsKCXZhciBoZWlnaHQgPSBsaW5lLmdldEhlaWdodCgpOwoJdmFyIGNvbnRleHQgPSB0aGlzLmNvbnRleHQ7Cgl2YXIgcGFnZSA9IGNvbnRleHQuZ2V0Q3VycmVudFBhZ2UoKSwKCQlwb3NpdGlvbiA9IHRoaXMuZ2V0Q3VycmVudFBvc2l0aW9uT25QYWdlKCk7CgoJaWYgKGNvbnRleHQuYXZhaWxhYmxlSGVpZ2h0IDwgaGVpZ2h0IHx8ICFwYWdlKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCWxpbmUueCA9IGNvbnRleHQueCArIChsaW5lLnggfHwgMCk7CglsaW5lLnkgPSBjb250ZXh0LnkgKyAobGluZS55IHx8IDApOwoKCXRoaXMuYWxpZ25MaW5lKGxpbmUpOwoKCWFkZFBhZ2VJdGVtKHBhZ2UsIHsKCQl0eXBlOiAnbGluZScsCgkJaXRlbTogbGluZQoJfSwgaW5kZXgpOwoJdGhpcy50cmFja2VyLmVtaXQoJ2xpbmVBZGRlZCcsIGxpbmUpOwoKCWlmICghZG9udFVwZGF0ZUNvbnRleHRQb3NpdGlvbikgewoJCWNvbnRleHQubW92ZURvd24oaGVpZ2h0KTsKCX0KCglyZXR1cm4gcG9zaXRpb247Cn07CgpFbGVtZW50V3JpdGVyLnByb3RvdHlwZS5hbGlnbkxpbmUgPSBmdW5jdGlvbiAobGluZSkgewoJdmFyIHdpZHRoID0gdGhpcy5jb250ZXh0LmF2YWlsYWJsZVdpZHRoOwoJdmFyIGxpbmVXaWR0aCA9IGxpbmUuZ2V0V2lkdGgoKTsKCgl2YXIgYWxpZ25tZW50ID0gbGluZS5pbmxpbmVzICYmIGxpbmUuaW5saW5lcy5sZW5ndGggPiAwICYmIGxpbmUuaW5saW5lc1swXS5hbGlnbm1lbnQ7CgoJdmFyIG9mZnNldCA9IDA7Cglzd2l0Y2ggKGFsaWdubWVudCkgewoJCWNhc2UgJ3JpZ2h0JzoKCQkJb2Zmc2V0ID0gd2lkdGggLSBsaW5lV2lkdGg7CgkJCWJyZWFrOwoJCWNhc2UgJ2NlbnRlcic6CgkJCW9mZnNldCA9ICh3aWR0aCAtIGxpbmVXaWR0aCkgLyAyOwoJCQlicmVhazsKCX0KCglpZiAob2Zmc2V0KSB7CgkJbGluZS54ID0gKGxpbmUueCB8fCAwKSArIG9mZnNldDsKCX0KCglpZiAoYWxpZ25tZW50ID09PSAnanVzdGlmeScgJiYKCQkhbGluZS5uZXdMaW5lRm9yY2VkICYmCgkJIWxpbmUubGFzdExpbmVJblBhcmFncmFwaCAmJgoJCWxpbmUuaW5saW5lcy5sZW5ndGggPiAxKSB7CgkJdmFyIGFkZGl0aW9uYWxTcGFjaW5nID0gKHdpZHRoIC0gbGluZVdpZHRoKSAvIChsaW5lLmlubGluZXMubGVuZ3RoIC0gMSk7CgoJCWZvciAodmFyIGkgPSAxLCBsID0gbGluZS5pbmxpbmVzLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCQlvZmZzZXQgPSBpICogYWRkaXRpb25hbFNwYWNpbmc7CgoJCQlsaW5lLmlubGluZXNbaV0ueCArPSBvZmZzZXQ7CgkJCWxpbmUuaW5saW5lc1tpXS5qdXN0aWZ5U2hpZnQgPSBhZGRpdGlvbmFsU3BhY2luZzsKCQl9Cgl9Cn07CgpFbGVtZW50V3JpdGVyLnByb3RvdHlwZS5hZGRJbWFnZSA9IGZ1bmN0aW9uIChpbWFnZSwgaW5kZXgpIHsKCXZhciBjb250ZXh0ID0gdGhpcy5jb250ZXh0OwoJdmFyIHBhZ2UgPSBjb250ZXh0LmdldEN1cnJlbnRQYWdlKCksCgkJcG9zaXRpb24gPSB0aGlzLmdldEN1cnJlbnRQb3NpdGlvbk9uUGFnZSgpOwoKCWlmICghcGFnZSB8fCAoaW1hZ2UuYWJzb2x1dGVQb3NpdGlvbiA9PT0gdW5kZWZpbmVkICYmIGNvbnRleHQuYXZhaWxhYmxlSGVpZ2h0IDwgaW1hZ2UuX2hlaWdodCAmJiBwYWdlLml0ZW1zLmxlbmd0aCA+IDApKSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCWlmIChpbWFnZS5feCA9PT0gdW5kZWZpbmVkKSB7CgkJaW1hZ2UuX3ggPSBpbWFnZS54IHx8IDA7Cgl9CgoJaW1hZ2UueCA9IGNvbnRleHQueCArIGltYWdlLl94OwoJaW1hZ2UueSA9IGNvbnRleHQueTsKCgl0aGlzLmFsaWduSW1hZ2UoaW1hZ2UpOwoKCWFkZFBhZ2VJdGVtKHBhZ2UsIHsKCQl0eXBlOiAnaW1hZ2UnLAoJCWl0ZW06IGltYWdlCgl9LCBpbmRleCk7CgoJY29udGV4dC5tb3ZlRG93bihpbWFnZS5faGVpZ2h0KTsKCglyZXR1cm4gcG9zaXRpb247Cn07CgpFbGVtZW50V3JpdGVyLnByb3RvdHlwZS5hZGRRciA9IGZ1bmN0aW9uIChxciwgaW5kZXgpIHsKCXZhciBjb250ZXh0ID0gdGhpcy5jb250ZXh0OwoJdmFyIHBhZ2UgPSBjb250ZXh0LmdldEN1cnJlbnRQYWdlKCksCgkJcG9zaXRpb24gPSB0aGlzLmdldEN1cnJlbnRQb3NpdGlvbk9uUGFnZSgpOwoKCWlmICghcGFnZSB8fCAocXIuYWJzb2x1dGVQb3NpdGlvbiA9PT0gdW5kZWZpbmVkICYmIGNvbnRleHQuYXZhaWxhYmxlSGVpZ2h0IDwgcXIuX2hlaWdodCkpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJaWYgKHFyLl94ID09PSB1bmRlZmluZWQpIHsKCQlxci5feCA9IHFyLnggfHwgMDsKCX0KCglxci54ID0gY29udGV4dC54ICsgcXIuX3g7Cglxci55ID0gY29udGV4dC55OwoKCXRoaXMuYWxpZ25JbWFnZShxcik7CgoJZm9yICh2YXIgaSA9IDAsIGwgPSBxci5fY2FudmFzLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCXZhciB2ZWN0b3IgPSBxci5fY2FudmFzW2ldOwoJCXZlY3Rvci54ICs9IHFyLng7CgkJdmVjdG9yLnkgKz0gcXIueTsKCQl0aGlzLmFkZFZlY3Rvcih2ZWN0b3IsIHRydWUsIHRydWUsIGluZGV4KTsKCX0KCgljb250ZXh0Lm1vdmVEb3duKHFyLl9oZWlnaHQpOwoKCXJldHVybiBwb3NpdGlvbjsKfTsKCkVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmFsaWduSW1hZ2UgPSBmdW5jdGlvbiAoaW1hZ2UpIHsKCXZhciB3aWR0aCA9IHRoaXMuY29udGV4dC5hdmFpbGFibGVXaWR0aDsKCXZhciBpbWFnZVdpZHRoID0gaW1hZ2UuX21pbldpZHRoOwoJdmFyIG9mZnNldCA9IDA7Cglzd2l0Y2ggKGltYWdlLl9hbGlnbm1lbnQpIHsKCQljYXNlICdyaWdodCc6CgkJCW9mZnNldCA9IHdpZHRoIC0gaW1hZ2VXaWR0aDsKCQkJYnJlYWs7CgkJY2FzZSAnY2VudGVyJzoKCQkJb2Zmc2V0ID0gKHdpZHRoIC0gaW1hZ2VXaWR0aCkgLyAyOwoJCQlicmVhazsKCX0KCglpZiAob2Zmc2V0KSB7CgkJaW1hZ2UueCA9IChpbWFnZS54IHx8IDApICsgb2Zmc2V0OwoJfQp9OwoKRWxlbWVudFdyaXRlci5wcm90b3R5cGUuYWxpZ25DYW52YXMgPSBmdW5jdGlvbiAobm9kZSkgewoJdmFyIHdpZHRoID0gdGhpcy5jb250ZXh0LmF2YWlsYWJsZVdpZHRoOwoJdmFyIGNhbnZhc1dpZHRoID0gbm9kZS5fbWluV2lkdGg7Cgl2YXIgb2Zmc2V0ID0gMDsKCXN3aXRjaCAobm9kZS5fYWxpZ25tZW50KSB7CgkJY2FzZSAncmlnaHQnOgoJCQlvZmZzZXQgPSB3aWR0aCAtIGNhbnZhc1dpZHRoOwoJCQlicmVhazsKCQljYXNlICdjZW50ZXInOgoJCQlvZmZzZXQgPSAod2lkdGggLSBjYW52YXNXaWR0aCkgLyAyOwoJCQlicmVhazsKCX0KCWlmIChvZmZzZXQpIHsKCQlub2RlLmNhbnZhcy5mb3JFYWNoKGZ1bmN0aW9uICh2ZWN0b3IpIHsKCQkJb2Zmc2V0VmVjdG9yKHZlY3Rvciwgb2Zmc2V0LCAwKTsKCQl9KTsKCX0KfTsKCkVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmFkZFZlY3RvciA9IGZ1bmN0aW9uICh2ZWN0b3IsIGlnbm9yZUNvbnRleHRYLCBpZ25vcmVDb250ZXh0WSwgaW5kZXgpIHsKCXZhciBjb250ZXh0ID0gdGhpcy5jb250ZXh0OwoJdmFyIHBhZ2UgPSBjb250ZXh0LmdldEN1cnJlbnRQYWdlKCksCgkJcG9zaXRpb24gPSB0aGlzLmdldEN1cnJlbnRQb3NpdGlvbk9uUGFnZSgpOwoKCWlmIChwYWdlKSB7CgkJb2Zmc2V0VmVjdG9yKHZlY3RvciwgaWdub3JlQ29udGV4dFggPyAwIDogY29udGV4dC54LCBpZ25vcmVDb250ZXh0WSA/IDAgOiBjb250ZXh0LnkpOwoJCWFkZFBhZ2VJdGVtKHBhZ2UsIHsKCQkJdHlwZTogJ3ZlY3RvcicsCgkJCWl0ZW06IHZlY3RvcgoJCX0sIGluZGV4KTsKCQlyZXR1cm4gcG9zaXRpb247Cgl9Cn07CgpFbGVtZW50V3JpdGVyLnByb3RvdHlwZS5iZWdpbkNsaXAgPSBmdW5jdGlvbiAod2lkdGgsIGhlaWdodCkgewoJdmFyIGN0eCA9IHRoaXMuY29udGV4dDsKCXZhciBwYWdlID0gY3R4LmdldEN1cnJlbnRQYWdlKCk7CglwYWdlLml0ZW1zLnB1c2goewoJCXR5cGU6ICdiZWdpbkNsaXAnLAoJCWl0ZW06IHt4OiBjdHgueCwgeTogY3R4LnksIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9Cgl9KTsKCXJldHVybiB0cnVlOwp9OwoKRWxlbWVudFdyaXRlci5wcm90b3R5cGUuZW5kQ2xpcCA9IGZ1bmN0aW9uICgpIHsKCXZhciBjdHggPSB0aGlzLmNvbnRleHQ7Cgl2YXIgcGFnZSA9IGN0eC5nZXRDdXJyZW50UGFnZSgpOwoJcGFnZS5pdGVtcy5wdXNoKHsKCQl0eXBlOiAnZW5kQ2xpcCcKCX0pOwoJcmV0dXJuIHRydWU7Cn07CgpmdW5jdGlvbiBjbG9uZUxpbmUobGluZSkgewoJdmFyIHJlc3VsdCA9IG5ldyBMaW5lKGxpbmUubWF4V2lkdGgpOwoKCWZvciAodmFyIGtleSBpbiBsaW5lKSB7CgkJaWYgKGxpbmUuaGFzT3duUHJvcGVydHkoa2V5KSkgewoJCQlyZXN1bHRba2V5XSA9IGxpbmVba2V5XTsKCQl9Cgl9CgoJcmV0dXJuIHJlc3VsdDsKfQoKRWxlbWVudFdyaXRlci5wcm90b3R5cGUuYWRkRnJhZ21lbnQgPSBmdW5jdGlvbiAoYmxvY2ssIHVzZUJsb2NrWE9mZnNldCwgdXNlQmxvY2tZT2Zmc2V0LCBkb250VXBkYXRlQ29udGV4dFBvc2l0aW9uKSB7Cgl2YXIgY3R4ID0gdGhpcy5jb250ZXh0OwoJdmFyIHBhZ2UgPSBjdHguZ2V0Q3VycmVudFBhZ2UoKTsKCglpZiAoIXVzZUJsb2NrWE9mZnNldCAmJiBibG9jay5oZWlnaHQgPiBjdHguYXZhaWxhYmxlSGVpZ2h0KSB7CgkJcmV0dXJuIGZhbHNlOwoJfQoKCWJsb2NrLml0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKCQlzd2l0Y2ggKGl0ZW0udHlwZSkgewoJCQljYXNlICdsaW5lJzoKCQkJCXZhciBsID0gY2xvbmVMaW5lKGl0ZW0uaXRlbSk7CgoJCQkJbC54ID0gKGwueCB8fCAwKSArICh1c2VCbG9ja1hPZmZzZXQgPyAoYmxvY2sueE9mZnNldCB8fCAwKSA6IGN0eC54KTsKCQkJCWwueSA9IChsLnkgfHwgMCkgKyAodXNlQmxvY2tZT2Zmc2V0ID8gKGJsb2NrLnlPZmZzZXQgfHwgMCkgOiBjdHgueSk7CgoJCQkJcGFnZS5pdGVtcy5wdXNoKHsKCQkJCQl0eXBlOiAnbGluZScsCgkJCQkJaXRlbTogbAoJCQkJfSk7CgkJCQlicmVhazsKCgkJCWNhc2UgJ3ZlY3Rvcic6CgkJCQl2YXIgdiA9IHBhY2soaXRlbS5pdGVtKTsKCgkJCQlvZmZzZXRWZWN0b3IodiwgdXNlQmxvY2tYT2Zmc2V0ID8gKGJsb2NrLnhPZmZzZXQgfHwgMCkgOiBjdHgueCwgdXNlQmxvY2tZT2Zmc2V0ID8gKGJsb2NrLnlPZmZzZXQgfHwgMCkgOiBjdHgueSk7CgkJCQlwYWdlLml0ZW1zLnB1c2goewoJCQkJCXR5cGU6ICd2ZWN0b3InLAoJCQkJCWl0ZW06IHYKCQkJCX0pOwoJCQkJYnJlYWs7CgoJCQljYXNlICdpbWFnZSc6CgkJCQl2YXIgaW1nID0gcGFjayhpdGVtLml0ZW0pOwoKCQkJCWltZy54ID0gKGltZy54IHx8IDApICsgKHVzZUJsb2NrWE9mZnNldCA/IChibG9jay54T2Zmc2V0IHx8IDApIDogY3R4LngpOwoJCQkJaW1nLnkgPSAoaW1nLnkgfHwgMCkgKyAodXNlQmxvY2tZT2Zmc2V0ID8gKGJsb2NrLnlPZmZzZXQgfHwgMCkgOiBjdHgueSk7CgoJCQkJcGFnZS5pdGVtcy5wdXNoKHsKCQkJCQl0eXBlOiAnaW1hZ2UnLAoJCQkJCWl0ZW06IGltZwoJCQkJfSk7CgkJCQlicmVhazsKCQl9Cgl9KTsKCglpZiAoIWRvbnRVcGRhdGVDb250ZXh0UG9zaXRpb24pIHsKCQljdHgubW92ZURvd24oYmxvY2suaGVpZ2h0KTsKCX0KCglyZXR1cm4gdHJ1ZTsKfTsKCi8qKgogKiBQdXNoZXMgdGhlIHByb3ZpZGVkIGNvbnRleHQgb250byB0aGUgc3RhY2sgb3IgY3JlYXRlcyBhIG5ldyBvbmUKICoKICogcHVzaENvbnRleHQoY29udGV4dCkgLSBwdXNoZXMgdGhlIHByb3ZpZGVkIGNvbnRleHQgYW5kIG1ha2VzIGl0IGN1cnJlbnQKICogcHVzaENvbnRleHQod2lkdGgsIGhlaWdodCkgLSBjcmVhdGVzIGFuZCBwdXNoZXMgYSBuZXcgY29udGV4dCB3aXRoIHRoZSBzcGVjaWZpZWQgd2lkdGggYW5kIGhlaWdodAogKiBwdXNoQ29udGV4dCgpIC0gY3JlYXRlcyBhIG5ldyBjb250ZXh0IGZvciB1bmJyZWFrYWJsZSBibG9ja3MgKHdpdGggY3VycmVudCBhdmFpbGFibGVXaWR0aCBhbmQgZnVsbC1wYWdlLWhlaWdodCkKICovCkVsZW1lbnRXcml0ZXIucHJvdG90eXBlLnB1c2hDb250ZXh0ID0gZnVuY3Rpb24gKGNvbnRleHRPcldpZHRoLCBoZWlnaHQpIHsKCWlmIChjb250ZXh0T3JXaWR0aCA9PT0gdW5kZWZpbmVkKSB7CgkJaGVpZ2h0ID0gdGhpcy5jb250ZXh0LmdldEN1cnJlbnRQYWdlKCkuaGVpZ2h0IC0gdGhpcy5jb250ZXh0LnBhZ2VNYXJnaW5zLnRvcCAtIHRoaXMuY29udGV4dC5wYWdlTWFyZ2lucy5ib3R0b207CgkJY29udGV4dE9yV2lkdGggPSB0aGlzLmNvbnRleHQuYXZhaWxhYmxlV2lkdGg7Cgl9CgoJaWYgKGlzTnVtYmVyKGNvbnRleHRPcldpZHRoKSkgewoJCWNvbnRleHRPcldpZHRoID0gbmV3IERvY3VtZW50Q29udGV4dCh7d2lkdGg6IGNvbnRleHRPcldpZHRoLCBoZWlnaHQ6IGhlaWdodH0sIHtsZWZ0OiAwLCByaWdodDogMCwgdG9wOiAwLCBib3R0b206IDB9KTsKCX0KCgl0aGlzLmNvbnRleHRTdGFjay5wdXNoKHRoaXMuY29udGV4dCk7Cgl0aGlzLmNvbnRleHQgPSBjb250ZXh0T3JXaWR0aDsKfTsKCkVsZW1lbnRXcml0ZXIucHJvdG90eXBlLnBvcENvbnRleHQgPSBmdW5jdGlvbiAoKSB7Cgl0aGlzLmNvbnRleHQgPSB0aGlzLmNvbnRleHRTdGFjay5wb3AoKTsKfTsKCkVsZW1lbnRXcml0ZXIucHJvdG90eXBlLmdldEN1cnJlbnRQb3NpdGlvbk9uUGFnZSA9IGZ1bmN0aW9uICgpIHsKCXJldHVybiAodGhpcy5jb250ZXh0U3RhY2tbMF0gfHwgdGhpcy5jb250ZXh0KS5nZXRDdXJyZW50UG9zaXRpb24oKTsKfTsKCgptb2R1bGUuZXhwb3J0cyA9IEVsZW1lbnRXcml0ZXI7CgoKLyoqKi8gfSksCi8qIDEzNyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKdmFyIENvbHVtbkNhbGN1bGF0b3IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQ0KTsKdmFyIGlzRnVuY3Rpb24gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDApLmlzRnVuY3Rpb247CgpmdW5jdGlvbiBUYWJsZVByb2Nlc3Nvcih0YWJsZU5vZGUpIHsKCXRoaXMudGFibGVOb2RlID0gdGFibGVOb2RlOwp9CgpUYWJsZVByb2Nlc3Nvci5wcm90b3R5cGUuYmVnaW5UYWJsZSA9IGZ1bmN0aW9uICh3cml0ZXIpIHsKCXZhciB0YWJsZU5vZGU7Cgl2YXIgYXZhaWxhYmxlV2lkdGg7Cgl2YXIgc2VsZiA9IHRoaXM7CgoJdGFibGVOb2RlID0gdGhpcy50YWJsZU5vZGU7Cgl0aGlzLm9mZnNldHMgPSB0YWJsZU5vZGUuX29mZnNldHM7Cgl0aGlzLmxheW91dCA9IHRhYmxlTm9kZS5fbGF5b3V0OwoKCWF2YWlsYWJsZVdpZHRoID0gd3JpdGVyLmNvbnRleHQoKS5hdmFpbGFibGVXaWR0aCAtIHRoaXMub2Zmc2V0cy50b3RhbDsKCUNvbHVtbkNhbGN1bGF0b3IuYnVpbGRDb2x1bW5XaWR0aHModGFibGVOb2RlLnRhYmxlLndpZHRocywgYXZhaWxhYmxlV2lkdGgpOwoKCXRoaXMudGFibGVXaWR0aCA9IHRhYmxlTm9kZS5fb2Zmc2V0cy50b3RhbCArIGdldFRhYmxlSW5uZXJDb250ZW50V2lkdGgoKTsKCXRoaXMucm93U3BhbkRhdGEgPSBwcmVwYXJlUm93U3BhbkRhdGEoKTsKCXRoaXMuY2xlYW5VcFJlcGVhdGFibGVzID0gZmFsc2U7CgoJdGhpcy5oZWFkZXJSb3dzID0gdGFibGVOb2RlLnRhYmxlLmhlYWRlclJvd3MgfHwgMDsKCXRoaXMucm93c1dpdGhvdXRQYWdlQnJlYWsgPSB0aGlzLmhlYWRlclJvd3MgKyAodGFibGVOb2RlLnRhYmxlLmtlZXBXaXRoSGVhZGVyUm93cyB8fCAwKTsKCXRoaXMuZG9udEJyZWFrUm93cyA9IHRhYmxlTm9kZS50YWJsZS5kb250QnJlYWtSb3dzIHx8IGZhbHNlOwoKCWlmICh0aGlzLnJvd3NXaXRob3V0UGFnZUJyZWFrKSB7CgkJd3JpdGVyLmJlZ2luVW5icmVha2FibGVCbG9jaygpOwoJfQoKCS8vIHVwZGF0ZSB0aGUgYm9yZGVyIHByb3BlcnRpZXMgb2YgYWxsIGNlbGxzIGJlZm9yZSBkcmF3aW5nIGFueSBsaW5lcwoJcHJlcGFyZUNlbGxCb3JkZXJzKHRoaXMudGFibGVOb2RlLnRhYmxlLmJvZHkpOwoKCXRoaXMuZHJhd0hvcml6b250YWxMaW5lKDAsIHdyaXRlcik7CgoJZnVuY3Rpb24gZ2V0VGFibGVJbm5lckNvbnRlbnRXaWR0aCgpIHsKCQl2YXIgd2lkdGggPSAwOwoKCQl0YWJsZU5vZGUudGFibGUud2lkdGhzLmZvckVhY2goZnVuY3Rpb24gKHcpIHsKCQkJd2lkdGggKz0gdy5fY2FsY1dpZHRoOwoJCX0pOwoKCQlyZXR1cm4gd2lkdGg7Cgl9CgoJZnVuY3Rpb24gcHJlcGFyZVJvd1NwYW5EYXRhKCkgewoJCXZhciByc2QgPSBbXTsKCQl2YXIgeCA9IDA7CgkJdmFyIGxhc3RXaWR0aCA9IDA7CgoJCXJzZC5wdXNoKHtsZWZ0OiAwLCByb3dTcGFuOiAwfSk7CgoJCWZvciAodmFyIGkgPSAwLCBsID0gc2VsZi50YWJsZU5vZGUudGFibGUuYm9keVswXS5sZW5ndGg7IGkgPCBsOyBpKyspIHsKCQkJdmFyIHBhZGRpbmdzID0gc2VsZi5sYXlvdXQucGFkZGluZ0xlZnQoaSwgc2VsZi50YWJsZU5vZGUpICsgc2VsZi5sYXlvdXQucGFkZGluZ1JpZ2h0KGksIHNlbGYudGFibGVOb2RlKTsKCQkJdmFyIGxCb3JkZXIgPSBzZWxmLmxheW91dC52TGluZVdpZHRoKGksIHNlbGYudGFibGVOb2RlKTsKCQkJbGFzdFdpZHRoID0gcGFkZGluZ3MgKyBsQm9yZGVyICsgc2VsZi50YWJsZU5vZGUudGFibGUud2lkdGhzW2ldLl9jYWxjV2lkdGg7CgkJCXJzZFtyc2QubGVuZ3RoIC0gMV0ud2lkdGggPSBsYXN0V2lkdGg7CgkJCXggKz0gbGFzdFdpZHRoOwoJCQlyc2QucHVzaCh7bGVmdDogeCwgcm93U3BhbjogMCwgd2lkdGg6IDB9KTsKCQl9CgoJCXJldHVybiByc2Q7Cgl9CgoJLy8gSXRlcmF0ZSB0aHJvdWdoIGFsbCBjZWxscy4gSWYgdGhlIGN1cnJlbnQgY2VsbCBpcyB0aGUgc3RhcnQgb2YgYQoJLy8gcm93U3Bhbi9jb2xTcGFuLCB1cGRhdGUgdGhlIGJvcmRlciBwcm9wZXJ0eSBvZiB0aGUgY2VsbHMgb24gaXRzCgkvLyBib3R0b20vcmlnaHQgYWNjb3JkaW5nbHkuIFRoaXMgaXMgbmVlZGVkIHNpbmNlIGVhY2ggaXRlcmF0aW9uIG9mIHRoZQoJLy8gbGluZS1kcmF3aW5nIGxvb3BzIGRyYXdzIGxpbmVzIGZvciBhIHNpbmdsZSBjZWxsLCBub3QgZm9yIGFuIGVudGlyZQoJLy8gcm93U3Bhbi9jb2xTcGFuLgoJZnVuY3Rpb24gcHJlcGFyZUNlbGxCb3JkZXJzKGJvZHkpIHsKCQlmb3IgKHZhciByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgYm9keS5sZW5ndGg7IHJvd0luZGV4KyspIHsKCQkJdmFyIHJvdyA9IGJvZHlbcm93SW5kZXhdOwoKCQkJZm9yICh2YXIgY29sSW5kZXggPSAwOyBjb2xJbmRleCA8IHJvdy5sZW5ndGg7IGNvbEluZGV4KyspIHsKCQkJCXZhciBjZWxsID0gcm93W2NvbEluZGV4XTsKCgkJCQlpZiAoY2VsbC5ib3JkZXIpIHsKCQkJCQl2YXIgcm93U3BhbiA9IGNlbGwucm93U3BhbiB8fCAxOwoJCQkJCXZhciBjb2xTcGFuID0gY2VsbC5jb2xTcGFuIHx8IDE7CgoJCQkJCWZvciAodmFyIHJvd09mZnNldCA9IDA7IHJvd09mZnNldCA8IHJvd1NwYW47IHJvd09mZnNldCsrKSB7CgkJCQkJCS8vIHNldCBsZWZ0IGJvcmRlcgoJCQkJCQlpZiAoY2VsbC5ib3JkZXJbMF0gIT09IHVuZGVmaW5lZCAmJiByb3dPZmZzZXQgPiAwKSB7CgkJCQkJCQlzZXRCb3JkZXIocm93SW5kZXggKyByb3dPZmZzZXQsIGNvbEluZGV4LCAwLCBjZWxsLmJvcmRlclswXSk7CgkJCQkJCX0KCgkJCQkJCS8vIHNldCByaWdodCBib3JkZXIKCQkJCQkJaWYgKGNlbGwuYm9yZGVyWzJdICE9PSB1bmRlZmluZWQpIHsKCQkJCQkJCXNldEJvcmRlcihyb3dJbmRleCArIHJvd09mZnNldCwgY29sSW5kZXggKyBjb2xTcGFuIC0gMSwgMiwgY2VsbC5ib3JkZXJbMl0pOwoJCQkJCQl9CgkJCQkJfQoKCQkJCQlmb3IgKHZhciBjb2xPZmZzZXQgPSAwOyBjb2xPZmZzZXQgPCBjb2xTcGFuOyBjb2xPZmZzZXQrKykgewoJCQkJCQkvLyBzZXQgdG9wIGJvcmRlcgoJCQkJCQlpZiAoY2VsbC5ib3JkZXJbMV0gIT09IHVuZGVmaW5lZCAmJiBjb2xPZmZzZXQgPiAwKSB7CgkJCQkJCQlzZXRCb3JkZXIocm93SW5kZXgsIGNvbEluZGV4ICsgY29sT2Zmc2V0LCAxLCBjZWxsLmJvcmRlclsxXSk7CgkJCQkJCX0KCgkJCQkJCS8vIHNldCBib3R0b20gYm9yZGVyCgkJCQkJCWlmIChjZWxsLmJvcmRlclszXSAhPT0gdW5kZWZpbmVkKSB7CgkJCQkJCQlzZXRCb3JkZXIocm93SW5kZXggKyByb3dTcGFuIC0gMSwgY29sSW5kZXggKyBjb2xPZmZzZXQsIDMsIGNlbGwuYm9yZGVyWzNdKTsKCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJfQoJCX0KCgkJLy8gaGVscGVyIGZ1bmN0aW9uIHRvIHNldCB0aGUgYm9yZGVyIGZvciBhIGdpdmVuIGNlbGwKCQlmdW5jdGlvbiBzZXRCb3JkZXIocm93SW5kZXgsIGNvbEluZGV4LCBib3JkZXJJbmRleCwgYm9yZGVyVmFsdWUpIHsKCQkJdmFyIGNlbGwgPSBib2R5W3Jvd0luZGV4XVtjb2xJbmRleF07CgkJCWNlbGwuYm9yZGVyID0gY2VsbC5ib3JkZXIgfHwge307CgkJCWNlbGwuYm9yZGVyW2JvcmRlckluZGV4XSA9IGJvcmRlclZhbHVlOwoJCX0KCX0KfTsKClRhYmxlUHJvY2Vzc29yLnByb3RvdHlwZS5vblJvd0JyZWFrID0gZnVuY3Rpb24gKHJvd0luZGV4LCB3cml0ZXIpIHsKCXZhciBzZWxmID0gdGhpczsKCXJldHVybiBmdW5jdGlvbiAoKSB7CgkJdmFyIG9mZnNldCA9IHNlbGYucm93UGFkZGluZ1RvcCArICghc2VsZi5oZWFkZXJSb3dzID8gc2VsZi50b3BMaW5lV2lkdGggOiAwKTsKCQl3cml0ZXIuY29udGV4dCgpLmF2YWlsYWJsZUhlaWdodCAtPSBzZWxmLnJlc2VydmVkQXRCb3R0b207CgkJd3JpdGVyLmNvbnRleHQoKS5tb3ZlRG93bihvZmZzZXQpOwoJfTsKfTsKClRhYmxlUHJvY2Vzc29yLnByb3RvdHlwZS5iZWdpblJvdyA9IGZ1bmN0aW9uIChyb3dJbmRleCwgd3JpdGVyKSB7Cgl0aGlzLnRvcExpbmVXaWR0aCA9IHRoaXMubGF5b3V0LmhMaW5lV2lkdGgocm93SW5kZXgsIHRoaXMudGFibGVOb2RlKTsKCXRoaXMucm93UGFkZGluZ1RvcCA9IHRoaXMubGF5b3V0LnBhZGRpbmdUb3Aocm93SW5kZXgsIHRoaXMudGFibGVOb2RlKTsKCXRoaXMuYm90dG9tTGluZVdpZHRoID0gdGhpcy5sYXlvdXQuaExpbmVXaWR0aChyb3dJbmRleCArIDEsIHRoaXMudGFibGVOb2RlKTsKCXRoaXMucm93UGFkZGluZ0JvdHRvbSA9IHRoaXMubGF5b3V0LnBhZGRpbmdCb3R0b20ocm93SW5kZXgsIHRoaXMudGFibGVOb2RlKTsKCgl0aGlzLnJvd0NhbGxiYWNrID0gdGhpcy5vblJvd0JyZWFrKHJvd0luZGV4LCB3cml0ZXIpOwoJd3JpdGVyLnRyYWNrZXIuc3RhcnRUcmFja2luZygncGFnZUNoYW5nZWQnLCB0aGlzLnJvd0NhbGxiYWNrKTsKCWlmICh0aGlzLmRvbnRCcmVha1Jvd3MpIHsKCQl3cml0ZXIuYmVnaW5VbmJyZWFrYWJsZUJsb2NrKCk7Cgl9Cgl0aGlzLnJvd1RvcFkgPSB3cml0ZXIuY29udGV4dCgpLnk7Cgl0aGlzLnJlc2VydmVkQXRCb3R0b20gPSB0aGlzLmJvdHRvbUxpbmVXaWR0aCArIHRoaXMucm93UGFkZGluZ0JvdHRvbTsKCgl3cml0ZXIuY29udGV4dCgpLmF2YWlsYWJsZUhlaWdodCAtPSB0aGlzLnJlc2VydmVkQXRCb3R0b207CgoJd3JpdGVyLmNvbnRleHQoKS5tb3ZlRG93bih0aGlzLnJvd1BhZGRpbmdUb3ApOwp9OwoKVGFibGVQcm9jZXNzb3IucHJvdG90eXBlLmRyYXdIb3Jpem9udGFsTGluZSA9IGZ1bmN0aW9uIChsaW5lSW5kZXgsIHdyaXRlciwgb3ZlcnJpZGVZKSB7Cgl2YXIgbGluZVdpZHRoID0gdGhpcy5sYXlvdXQuaExpbmVXaWR0aChsaW5lSW5kZXgsIHRoaXMudGFibGVOb2RlKTsKCWlmIChsaW5lV2lkdGgpIHsKCQl2YXIgb2Zmc2V0ID0gbGluZVdpZHRoIC8gMjsKCQl2YXIgY3VycmVudExpbmUgPSBudWxsOwoJCXZhciBib2R5ID0gdGhpcy50YWJsZU5vZGUudGFibGUuYm9keTsKCgkJZm9yICh2YXIgaSA9IDAsIGwgPSB0aGlzLnJvd1NwYW5EYXRhLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCQl2YXIgZGF0YSA9IHRoaXMucm93U3BhbkRhdGFbaV07CgkJCXZhciBzaG91bGREcmF3TGluZSA9ICFkYXRhLnJvd1NwYW47CgoJCQkvLyBkcmF3IG9ubHkgaWYgdGhlIGN1cnJlbnQgY2VsbCByZXF1aXJlcyBhIHRvcCBib3JkZXIgb3IgdGhlIGNlbGwgaW4gdGhlCgkJCS8vIHJvdyBhYm92ZSByZXF1aXJlcyBhIGJvdHRvbSBib3JkZXIKCQkJaWYgKHNob3VsZERyYXdMaW5lICYmIGkgPCBsIC0gMSkgewoJCQkJdmFyIHRvcEJvcmRlciA9IGZhbHNlLCBib3R0b21Cb3JkZXIgPSBmYWxzZTsKCgkJCQkvLyB0aGUgY3VycmVudCBjZWxsCgkJCQlpZiAobGluZUluZGV4IDwgYm9keS5sZW5ndGgpIHsKCQkJCQl2YXIgY2VsbCA9IGJvZHlbbGluZUluZGV4XVtpXTsKCQkJCQl0b3BCb3JkZXIgPSBjZWxsLmJvcmRlciA/IGNlbGwuYm9yZGVyWzFdIDogdGhpcy5sYXlvdXQuZGVmYXVsdEJvcmRlcjsKCQkJCX0KCgkJCQkvLyB0aGUgY2VsbCBpbiB0aGUgcm93IGFib3ZlCgkJCQlpZiAobGluZUluZGV4ID4gMCkgewoJCQkJCXZhciBjZWxsQWJvdmUgPSBib2R5W2xpbmVJbmRleCAtIDFdW2ldOwoJCQkJCWJvdHRvbUJvcmRlciA9IGNlbGxBYm92ZS5ib3JkZXIgPyBjZWxsQWJvdmUuYm9yZGVyWzNdIDogdGhpcy5sYXlvdXQuZGVmYXVsdEJvcmRlcjsKCQkJCX0KCgkJCQlzaG91bGREcmF3TGluZSA9IHRvcEJvcmRlciB8fCBib3R0b21Cb3JkZXI7CgkJCX0KCgkJCWlmICghY3VycmVudExpbmUgJiYgc2hvdWxkRHJhd0xpbmUpIHsKCQkJCWN1cnJlbnRMaW5lID0ge2xlZnQ6IGRhdGEubGVmdCwgd2lkdGg6IDB9OwoJCQl9CgoJCQlpZiAoc2hvdWxkRHJhd0xpbmUpIHsKCQkJCWN1cnJlbnRMaW5lLndpZHRoICs9IChkYXRhLndpZHRoIHx8IDApOwoJCQl9CgoJCQl2YXIgeSA9IChvdmVycmlkZVkgfHwgMCkgKyBvZmZzZXQ7CgoJCQlpZiAoIXNob3VsZERyYXdMaW5lIHx8IGkgPT09IGwgLSAxKSB7CgkJCQlpZiAoY3VycmVudExpbmUgJiYgY3VycmVudExpbmUud2lkdGgpIHsKCQkJCQl3cml0ZXIuYWRkVmVjdG9yKHsKCQkJCQkJdHlwZTogJ2xpbmUnLAoJCQkJCQl4MTogY3VycmVudExpbmUubGVmdCwKCQkJCQkJeDI6IGN1cnJlbnRMaW5lLmxlZnQgKyBjdXJyZW50TGluZS53aWR0aCwKCQkJCQkJeTE6IHksCgkJCQkJCXkyOiB5LAoJCQkJCQlsaW5lV2lkdGg6IGxpbmVXaWR0aCwKCQkJCQkJbGluZUNvbG9yOiBpc0Z1bmN0aW9uKHRoaXMubGF5b3V0LmhMaW5lQ29sb3IpID8gdGhpcy5sYXlvdXQuaExpbmVDb2xvcihsaW5lSW5kZXgsIHRoaXMudGFibGVOb2RlKSA6IHRoaXMubGF5b3V0LmhMaW5lQ29sb3IKCQkJCQl9LCBmYWxzZSwgb3ZlcnJpZGVZKTsKCQkJCQljdXJyZW50TGluZSA9IG51bGw7CgkJCQl9CgkJCX0KCQl9CgoJCXdyaXRlci5jb250ZXh0KCkubW92ZURvd24obGluZVdpZHRoKTsKCX0KfTsKClRhYmxlUHJvY2Vzc29yLnByb3RvdHlwZS5kcmF3VmVydGljYWxMaW5lID0gZnVuY3Rpb24gKHgsIHkwLCB5MSwgdkxpbmVJbmRleCwgd3JpdGVyKSB7Cgl2YXIgd2lkdGggPSB0aGlzLmxheW91dC52TGluZVdpZHRoKHZMaW5lSW5kZXgsIHRoaXMudGFibGVOb2RlKTsKCWlmICh3aWR0aCA9PT0gMCkgewoJCXJldHVybjsKCX0KCXdyaXRlci5hZGRWZWN0b3IoewoJCXR5cGU6ICdsaW5lJywKCQl4MTogeCArIHdpZHRoIC8gMiwKCQl4MjogeCArIHdpZHRoIC8gMiwKCQl5MTogeTAsCgkJeTI6IHkxLAoJCWxpbmVXaWR0aDogd2lkdGgsCgkJbGluZUNvbG9yOiBpc0Z1bmN0aW9uKHRoaXMubGF5b3V0LnZMaW5lQ29sb3IpID8gdGhpcy5sYXlvdXQudkxpbmVDb2xvcih2TGluZUluZGV4LCB0aGlzLnRhYmxlTm9kZSkgOiB0aGlzLmxheW91dC52TGluZUNvbG9yCgl9LCBmYWxzZSwgdHJ1ZSk7Cn07CgpUYWJsZVByb2Nlc3Nvci5wcm90b3R5cGUuZW5kVGFibGUgPSBmdW5jdGlvbiAod3JpdGVyKSB7CglpZiAodGhpcy5jbGVhblVwUmVwZWF0YWJsZXMpIHsKCQl3cml0ZXIucG9wRnJvbVJlcGVhdGFibGVzKCk7CgkJdGhpcy5oZWFkZXJSZXBlYXRhYmxlSGVpZ2h0ID0gbnVsbDsKCX0KfTsKClRhYmxlUHJvY2Vzc29yLnByb3RvdHlwZS5lbmRSb3cgPSBmdW5jdGlvbiAocm93SW5kZXgsIHdyaXRlciwgcGFnZUJyZWFrcykgewoJdmFyIGwsIGk7Cgl2YXIgc2VsZiA9IHRoaXM7Cgl3cml0ZXIudHJhY2tlci5zdG9wVHJhY2tpbmcoJ3BhZ2VDaGFuZ2VkJywgdGhpcy5yb3dDYWxsYmFjayk7Cgl3cml0ZXIuY29udGV4dCgpLm1vdmVEb3duKHRoaXMubGF5b3V0LnBhZGRpbmdCb3R0b20ocm93SW5kZXgsIHRoaXMudGFibGVOb2RlKSk7Cgl3cml0ZXIuY29udGV4dCgpLmF2YWlsYWJsZUhlaWdodCArPSB0aGlzLnJlc2VydmVkQXRCb3R0b207CgoJdmFyIGVuZGluZ1BhZ2UgPSB3cml0ZXIuY29udGV4dCgpLnBhZ2U7Cgl2YXIgZW5kaW5nWSA9IHdyaXRlci5jb250ZXh0KCkueTsKCgl2YXIgeHMgPSBnZXRMaW5lWHMoKTsKCgl2YXIgeXMgPSBbXTsKCgl2YXIgaGFzQnJlYWtzID0gcGFnZUJyZWFrcyAmJiBwYWdlQnJlYWtzLmxlbmd0aCA+IDA7Cgl2YXIgYm9keSA9IHRoaXMudGFibGVOb2RlLnRhYmxlLmJvZHk7CgoJeXMucHVzaCh7CgkJeTA6IHRoaXMucm93VG9wWSwKCQlwYWdlOiBoYXNCcmVha3MgPyBwYWdlQnJlYWtzWzBdLnByZXZQYWdlIDogZW5kaW5nUGFnZQoJfSk7CgoJaWYgKGhhc0JyZWFrcykgewoJCWZvciAoaSA9IDAsIGwgPSBwYWdlQnJlYWtzLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCQl2YXIgcGFnZUJyZWFrID0gcGFnZUJyZWFrc1tpXTsKCQkJeXNbeXMubGVuZ3RoIC0gMV0ueTEgPSBwYWdlQnJlYWsucHJldlk7CgoJCQl5cy5wdXNoKHt5MDogcGFnZUJyZWFrLnksIHBhZ2U6IHBhZ2VCcmVhay5wcmV2UGFnZSArIDF9KTsKCgkJCWlmICh0aGlzLmhlYWRlclJlcGVhdGFibGVIZWlnaHQpIHsKCQkJCXlzW3lzLmxlbmd0aCAtIDFdLnkwICs9IHRoaXMuaGVhZGVyUmVwZWF0YWJsZUhlaWdodDsKCQkJfQoJCX0KCX0KCgl5c1t5cy5sZW5ndGggLSAxXS55MSA9IGVuZGluZ1k7CgoJdmFyIHNraXBPcnBoYW5lUGFkZGluZyA9ICh5c1swXS55MSAtIHlzWzBdLnkwID09PSB0aGlzLnJvd1BhZGRpbmdUb3ApOwoJZm9yICh2YXIgeWkgPSAoc2tpcE9ycGhhbmVQYWRkaW5nID8gMSA6IDApLCB5bCA9IHlzLmxlbmd0aDsgeWkgPCB5bDsgeWkrKykgewoJCXZhciB3aWxsQnJlYWsgPSB5aSA8IHlzLmxlbmd0aCAtIDE7CgkJdmFyIHJvd0JyZWFrV2l0aG91dEhlYWRlciA9ICh5aSA+IDAgJiYgIXRoaXMuaGVhZGVyUm93cyk7CgkJdmFyIGh6TGluZU9mZnNldCA9IHJvd0JyZWFrV2l0aG91dEhlYWRlciA/IDAgOiB0aGlzLnRvcExpbmVXaWR0aDsKCQl2YXIgeTEgPSB5c1t5aV0ueTA7CgkJdmFyIHkyID0geXNbeWldLnkxOwoKCQlpZiAod2lsbEJyZWFrKSB7CgkJCXkyID0geTIgKyB0aGlzLnJvd1BhZGRpbmdCb3R0b207CgkJfQoKCQlpZiAod3JpdGVyLmNvbnRleHQoKS5wYWdlICE9IHlzW3lpXS5wYWdlKSB7CgkJCXdyaXRlci5jb250ZXh0KCkucGFnZSA9IHlzW3lpXS5wYWdlOwoKCQkJLy9UT0RPOiBidWdneSwgYXZhaWxhYmxlSGVpZ2h0IHNob3VsZCBiZSB1cGRhdGVkIG9uIGV2ZXJ5IHBhZ2VDaGFuZ2VkIGV2ZW50CgkJCS8vIFRhYmxlUHJvY2Vzc29yIHNob3VsZCBiZSBwYWdlQ2hhbmdlZCBsaXN0ZW5lciwgaW5zdGVhZCBvZiBwcm9jZXNzUm93CgkJCXRoaXMucmVzZXJ2ZWRBdEJvdHRvbSA9IDA7CgkJfQoKCQlmb3IgKGkgPSAwLCBsID0geHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJCXZhciBsZWZ0Qm9yZGVyID0gZmFsc2UsIHJpZ2h0Qm9yZGVyID0gZmFsc2U7CgkJCXZhciBjb2xJbmRleCA9IHhzW2ldLmluZGV4OwoKCQkJLy8gdGhlIGN1cnJlbnQgY2VsbAoJCQlpZiAoY29sSW5kZXggPCBib2R5W3Jvd0luZGV4XS5sZW5ndGgpIHsKCQkJCXZhciBjZWxsID0gYm9keVtyb3dJbmRleF1bY29sSW5kZXhdOwoJCQkJbGVmdEJvcmRlciA9IGNlbGwuYm9yZGVyID8gY2VsbC5ib3JkZXJbMF0gOiB0aGlzLmxheW91dC5kZWZhdWx0Qm9yZGVyOwoJCQl9CgoJCQkvLyB0aGUgY2VsbCBmcm9tIGJlZm9yZSBjb2x1bW4KCQkJaWYgKGNvbEluZGV4ID4gMCkgewoJCQkJdmFyIGNlbGwgPSBib2R5W3Jvd0luZGV4XVtjb2xJbmRleCAtIDFdOwoJCQkJcmlnaHRCb3JkZXIgPSBjZWxsLmJvcmRlciA/IGNlbGwuYm9yZGVyWzJdIDogdGhpcy5sYXlvdXQuZGVmYXVsdEJvcmRlcjsKCQkJfQoKCQkJaWYgKGxlZnRCb3JkZXIgfHwgcmlnaHRCb3JkZXIpIHsKCQkJCXRoaXMuZHJhd1ZlcnRpY2FsTGluZSh4c1tpXS54LCB5MSAtIGh6TGluZU9mZnNldCwgeTIgKyB0aGlzLmJvdHRvbUxpbmVXaWR0aCwgeHNbaV0uaW5kZXgsIHdyaXRlcik7CgkJCX0KCgkJCWlmIChpIDwgbCAtIDEpIHsKCQkJCXZhciBmaWxsQ29sb3IgPSBib2R5W3Jvd0luZGV4XVtjb2xJbmRleF0uZmlsbENvbG9yOwoJCQkJaWYgKCFmaWxsQ29sb3IpIHsKCQkJCQlmaWxsQ29sb3IgPSBpc0Z1bmN0aW9uKHRoaXMubGF5b3V0LmZpbGxDb2xvcikgPyB0aGlzLmxheW91dC5maWxsQ29sb3Iocm93SW5kZXgsIHRoaXMudGFibGVOb2RlLCBjb2xJbmRleCkgOiB0aGlzLmxheW91dC5maWxsQ29sb3I7CgkJCQl9CgkJCQlpZiAoZmlsbENvbG9yKSB7CgkJCQkJdmFyIHdCb3JkZXIgPSAobGVmdEJvcmRlciB8fCByaWdodEJvcmRlcikgPyB0aGlzLmxheW91dC52TGluZVdpZHRoKGNvbEluZGV4LCB0aGlzLnRhYmxlTm9kZSkgOiAwOwoJCQkJCXZhciB4ZiA9IHhzW2ldLnggKyB3Qm9yZGVyOwoJCQkJCXZhciB5ZiA9IHRoaXMuZG9udEJyZWFrUm93cyA/IHkxIDogeTEgLSBoekxpbmVPZmZzZXQ7CgkJCQkJd3JpdGVyLmFkZFZlY3Rvcih7CgkJCQkJCXR5cGU6ICdyZWN0JywKCQkJCQkJeDogeGYsCgkJCQkJCXk6IHlmLAoJCQkJCQl3OiB4c1tpICsgMV0ueCAtIHhmLAoJCQkJCQloOiB5MiArIHRoaXMuYm90dG9tTGluZVdpZHRoIC0geWYsCgkJCQkJCWxpbmVXaWR0aDogMCwKCQkJCQkJY29sb3I6IGZpbGxDb2xvcgoJCQkJCX0sIGZhbHNlLCB0cnVlLCB3cml0ZXIuY29udGV4dCgpLmhhc0JhY2tncm91bmQgPyAxIDogMCk7CgkJCQl9CgkJCX0KCQl9CgoJCWlmICh3aWxsQnJlYWsgJiYgdGhpcy5sYXlvdXQuaExpbmVXaGVuQnJva2VuICE9PSBmYWxzZSkgewoJCQl0aGlzLmRyYXdIb3Jpem9udGFsTGluZShyb3dJbmRleCArIDEsIHdyaXRlciwgeTIpOwoJCX0KCQlpZiAocm93QnJlYWtXaXRob3V0SGVhZGVyICYmIHRoaXMubGF5b3V0LmhMaW5lV2hlbkJyb2tlbiAhPT0gZmFsc2UpIHsKCQkJdGhpcy5kcmF3SG9yaXpvbnRhbExpbmUocm93SW5kZXgsIHdyaXRlciwgeTEpOwoJCX0KCX0KCgl3cml0ZXIuY29udGV4dCgpLnBhZ2UgPSBlbmRpbmdQYWdlOwoJd3JpdGVyLmNvbnRleHQoKS55ID0gZW5kaW5nWTsKCgl2YXIgcm93ID0gdGhpcy50YWJsZU5vZGUudGFibGUuYm9keVtyb3dJbmRleF07Cglmb3IgKGkgPSAwLCBsID0gcm93Lmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCWlmIChyb3dbaV0ucm93U3BhbikgewoJCQl0aGlzLnJvd1NwYW5EYXRhW2ldLnJvd1NwYW4gPSByb3dbaV0ucm93U3BhbjsKCgkJCS8vIGZpeCBjb2xTcGFucwoJCQlpZiAocm93W2ldLmNvbFNwYW4gJiYgcm93W2ldLmNvbFNwYW4gPiAxKSB7CgkJCQlmb3IgKHZhciBqID0gMTsgaiA8IHJvd1tpXS5yb3dTcGFuOyBqKyspIHsKCQkJCQl0aGlzLnRhYmxlTm9kZS50YWJsZS5ib2R5W3Jvd0luZGV4ICsgal1baV0uX2NvbFNwYW4gPSByb3dbaV0uY29sU3BhbjsKCQkJCX0KCQkJfQoJCX0KCgkJaWYgKHRoaXMucm93U3BhbkRhdGFbaV0ucm93U3BhbiA+IDApIHsKCQkJdGhpcy5yb3dTcGFuRGF0YVtpXS5yb3dTcGFuLS07CgkJfQoJfQoKCXRoaXMuZHJhd0hvcml6b250YWxMaW5lKHJvd0luZGV4ICsgMSwgd3JpdGVyKTsKCglpZiAodGhpcy5oZWFkZXJSb3dzICYmIHJvd0luZGV4ID09PSB0aGlzLmhlYWRlclJvd3MgLSAxKSB7CgkJdGhpcy5oZWFkZXJSZXBlYXRhYmxlID0gd3JpdGVyLmN1cnJlbnRCbG9ja1RvUmVwZWF0YWJsZSgpOwoJfQoKCWlmICh0aGlzLmRvbnRCcmVha1Jvd3MpIHsKCQl3cml0ZXIudHJhY2tlci5hdXRvKCdwYWdlQ2hhbmdlZCcsCgkJCWZ1bmN0aW9uICgpIHsKCQkJCWlmICghc2VsZi5oZWFkZXJSb3dzICYmIHNlbGYubGF5b3V0LmhMaW5lV2hlbkJyb2tlbiAhPT0gZmFsc2UpIHsKCQkJCQlzZWxmLmRyYXdIb3Jpem9udGFsTGluZShyb3dJbmRleCwgd3JpdGVyKTsKCQkJCX0KCQkJfSwKCQkJZnVuY3Rpb24gKCkgewoJCQkJd3JpdGVyLmNvbW1pdFVuYnJlYWthYmxlQmxvY2soKTsKCQkJfQoJCSk7Cgl9CgoJaWYgKHRoaXMuaGVhZGVyUmVwZWF0YWJsZSAmJiAocm93SW5kZXggPT09ICh0aGlzLnJvd3NXaXRob3V0UGFnZUJyZWFrIC0gMSkgfHwgcm93SW5kZXggPT09IHRoaXMudGFibGVOb2RlLnRhYmxlLmJvZHkubGVuZ3RoIC0gMSkpIHsKCQl0aGlzLmhlYWRlclJlcGVhdGFibGVIZWlnaHQgPSB0aGlzLmhlYWRlclJlcGVhdGFibGUuaGVpZ2h0OwoJCXdyaXRlci5jb21taXRVbmJyZWFrYWJsZUJsb2NrKCk7CgkJd3JpdGVyLnB1c2hUb1JlcGVhdGFibGVzKHRoaXMuaGVhZGVyUmVwZWF0YWJsZSk7CgkJdGhpcy5jbGVhblVwUmVwZWF0YWJsZXMgPSB0cnVlOwoJCXRoaXMuaGVhZGVyUmVwZWF0YWJsZSA9IG51bGw7Cgl9CgoJZnVuY3Rpb24gZ2V0TGluZVhzKCkgewoJCXZhciByZXN1bHQgPSBbXTsKCQl2YXIgY29scyA9IDA7CgoJCWZvciAodmFyIGkgPSAwLCBsID0gc2VsZi50YWJsZU5vZGUudGFibGUuYm9keVtyb3dJbmRleF0ubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJCWlmICghY29scykgewoJCQkJcmVzdWx0LnB1c2goe3g6IHNlbGYucm93U3BhbkRhdGFbaV0ubGVmdCwgaW5kZXg6IGl9KTsKCgkJCQl2YXIgaXRlbSA9IHNlbGYudGFibGVOb2RlLnRhYmxlLmJvZHlbcm93SW5kZXhdW2ldOwoJCQkJY29scyA9IChpdGVtLl9jb2xTcGFuIHx8IGl0ZW0uY29sU3BhbiB8fCAwKTsKCQkJfQoJCQlpZiAoY29scyA+IDApIHsKCQkJCWNvbHMtLTsKCQkJfQoJCX0KCgkJcmVzdWx0LnB1c2goe3g6IHNlbGYucm93U3BhbkRhdGFbc2VsZi5yb3dTcGFuRGF0YS5sZW5ndGggLSAxXS5sZWZ0LCBpbmRleDogc2VsZi5yb3dTcGFuRGF0YS5sZW5ndGggLSAxfSk7CgoJCXJldHVybiByZXN1bHQ7Cgl9Cn07Cgptb2R1bGUuZXhwb3J0cyA9IFRhYmxlUHJvY2Vzc29yOwoKCi8qKiovIH0pLAovKiAxMzggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKEJ1ZmZlcikgey8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CgovKgpQREZEb2N1bWVudCAtIHJlcHJlc2VudHMgYW4gZW50aXJlIFBERiBkb2N1bWVudApCeSBEZXZvbiBHb3ZldHQKICovCgooZnVuY3Rpb24oKSB7CiAgdmFyIFBERkRvY3VtZW50LCBQREZPYmplY3QsIFBERlBhZ2UsIFBERlJlZmVyZW5jZSwgZnMsIHN0cmVhbSwKICAgIGV4dGVuZCA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2YXIga2V5IGluIHBhcmVudCkgeyBpZiAoaGFzUHJvcC5jYWxsKHBhcmVudCwga2V5KSkgY2hpbGRba2V5XSA9IHBhcmVudFtrZXldOyB9IGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfSBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7IGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7IGNoaWxkLl9fc3VwZXJfXyA9IHBhcmVudC5wcm90b3R5cGU7IHJldHVybiBjaGlsZDsgfSwKICAgIGhhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eTsKCiAgc3RyZWFtID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNSk7CgogIGZzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KTsKCiAgUERGT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNik7CgogIFBERlJlZmVyZW5jZSA9IF9fd2VicGFja19yZXF1aXJlX18oODcpOwoKICBQREZQYWdlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNjEpOwoKICBQREZEb2N1bWVudCA9IChmdW5jdGlvbihzdXBlckNsYXNzKSB7CiAgICB2YXIgbWl4aW47CgogICAgZXh0ZW5kKFBERkRvY3VtZW50LCBzdXBlckNsYXNzKTsKCiAgICBmdW5jdGlvbiBQREZEb2N1bWVudChvcHRpb25zMSkgewogICAgICB2YXIga2V5LCByZWYxLCByZWYyLCB2YWw7CiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMxICE9IG51bGwgPyBvcHRpb25zMSA6IHt9OwogICAgICBQREZEb2N1bWVudC5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgdGhpcy52ZXJzaW9uID0gMS4zOwogICAgICB0aGlzLmNvbXByZXNzID0gKHJlZjEgPSB0aGlzLm9wdGlvbnMuY29tcHJlc3MpICE9IG51bGwgPyByZWYxIDogdHJ1ZTsKICAgICAgdGhpcy5fcGFnZUJ1ZmZlciA9IFtdOwogICAgICB0aGlzLl9wYWdlQnVmZmVyU3RhcnQgPSAwOwogICAgICB0aGlzLl9vZmZzZXRzID0gW107CiAgICAgIHRoaXMuX3dhaXRpbmcgPSAwOwogICAgICB0aGlzLl9lbmRlZCA9IGZhbHNlOwogICAgICB0aGlzLl9vZmZzZXQgPSAwOwogICAgICB0aGlzLl9yb290ID0gdGhpcy5yZWYoewogICAgICAgIFR5cGU6ICdDYXRhbG9nJywKICAgICAgICBQYWdlczogdGhpcy5yZWYoewogICAgICAgICAgVHlwZTogJ1BhZ2VzJywKICAgICAgICAgIENvdW50OiAwLAogICAgICAgICAgS2lkczogW10KICAgICAgICB9KQogICAgICB9KTsKICAgICAgdGhpcy5wYWdlID0gbnVsbDsKICAgICAgdGhpcy5pbml0Q29sb3IoKTsKICAgICAgdGhpcy5pbml0VmVjdG9yKCk7CiAgICAgIHRoaXMuaW5pdEZvbnRzKCk7CiAgICAgIHRoaXMuaW5pdFRleHQoKTsKICAgICAgdGhpcy5pbml0SW1hZ2VzKCk7CiAgICAgIHRoaXMuaW5mbyA9IHsKICAgICAgICBQcm9kdWNlcjogJ1BERktpdCcsCiAgICAgICAgQ3JlYXRvcjogJ1BERktpdCcsCiAgICAgICAgQ3JlYXRpb25EYXRlOiBuZXcgRGF0ZSgpCiAgICAgIH07CiAgICAgIGlmICh0aGlzLm9wdGlvbnMuaW5mbykgewogICAgICAgIHJlZjIgPSB0aGlzLm9wdGlvbnMuaW5mbzsKICAgICAgICBmb3IgKGtleSBpbiByZWYyKSB7CiAgICAgICAgICB2YWwgPSByZWYyW2tleV07CiAgICAgICAgICB0aGlzLmluZm9ba2V5XSA9IHZhbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGhpcy5fd3JpdGUoIiVQREYtIiArIHRoaXMudmVyc2lvbik7CiAgICAgIHRoaXMuX3dyaXRlKCIlXHhGRlx4RkZceEZGXHhGRiIpOwogICAgICBpZiAodGhpcy5vcHRpb25zLmF1dG9GaXJzdFBhZ2UgIT09IGZhbHNlKSB7CiAgICAgICAgdGhpcy5hZGRQYWdlKCk7CiAgICAgIH0KICAgIH0KCiAgICBtaXhpbiA9IGZ1bmN0aW9uKG1ldGhvZHMpIHsKICAgICAgdmFyIG1ldGhvZCwgbmFtZSwgcmVzdWx0czsKICAgICAgcmVzdWx0cyA9IFtdOwogICAgICBmb3IgKG5hbWUgaW4gbWV0aG9kcykgewogICAgICAgIG1ldGhvZCA9IG1ldGhvZHNbbmFtZV07CiAgICAgICAgcmVzdWx0cy5wdXNoKFBERkRvY3VtZW50LnByb3RvdHlwZVtuYW1lXSA9IG1ldGhvZCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9OwoKICAgIG1peGluKF9fd2VicGFja19yZXF1aXJlX18oMTYyKSk7CgogICAgbWl4aW4oX193ZWJwYWNrX3JlcXVpcmVfXygxNjQpKTsKCiAgICBtaXhpbihfX3dlYnBhY2tfcmVxdWlyZV9fKDE2NikpOwoKICAgIG1peGluKF9fd2VicGFja19yZXF1aXJlX18oMjk1KSk7CgogICAgbWl4aW4oX193ZWJwYWNrX3JlcXVpcmVfXygyOTcpKTsKCiAgICBtaXhpbihfX3dlYnBhY2tfcmVxdWlyZV9fKDMwMikpOwoKICAgIFBERkRvY3VtZW50LnByb3RvdHlwZS5hZGRQYWdlID0gZnVuY3Rpb24ob3B0aW9ucykgewogICAgICB2YXIgcGFnZXM7CiAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHsKICAgICAgICBvcHRpb25zID0gdGhpcy5vcHRpb25zOwogICAgICB9CiAgICAgIGlmICghdGhpcy5vcHRpb25zLmJ1ZmZlclBhZ2VzKSB7CiAgICAgICAgdGhpcy5mbHVzaFBhZ2VzKCk7CiAgICAgIH0KICAgICAgdGhpcy5wYWdlID0gbmV3IFBERlBhZ2UodGhpcywgb3B0aW9ucyk7CiAgICAgIHRoaXMuX3BhZ2VCdWZmZXIucHVzaCh0aGlzLnBhZ2UpOwogICAgICBwYWdlcyA9IHRoaXMuX3Jvb3QuZGF0YS5QYWdlcy5kYXRhOwogICAgICBwYWdlcy5LaWRzLnB1c2godGhpcy5wYWdlLmRpY3Rpb25hcnkpOwogICAgICBwYWdlcy5Db3VudCsrOwogICAgICB0aGlzLnggPSB0aGlzLnBhZ2UubWFyZ2lucy5sZWZ0OwogICAgICB0aGlzLnkgPSB0aGlzLnBhZ2UubWFyZ2lucy50b3A7CiAgICAgIHRoaXMuX2N0bSA9IFsxLCAwLCAwLCAxLCAwLCAwXTsKICAgICAgdGhpcy50cmFuc2Zvcm0oMSwgMCwgMCwgLTEsIDAsIHRoaXMucGFnZS5oZWlnaHQpOwogICAgICB0aGlzLmVtaXQoJ3BhZ2VBZGRlZCcpOwogICAgICByZXR1cm4gdGhpczsKICAgIH07CgogICAgUERGRG9jdW1lbnQucHJvdG90eXBlLmJ1ZmZlcmVkUGFnZVJhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgc3RhcnQ6IHRoaXMuX3BhZ2VCdWZmZXJTdGFydCwKICAgICAgICBjb3VudDogdGhpcy5fcGFnZUJ1ZmZlci5sZW5ndGgKICAgICAgfTsKICAgIH07CgogICAgUERGRG9jdW1lbnQucHJvdG90eXBlLnN3aXRjaFRvUGFnZSA9IGZ1bmN0aW9uKG4pIHsKICAgICAgdmFyIHBhZ2U7CiAgICAgIGlmICghKHBhZ2UgPSB0aGlzLl9wYWdlQnVmZmVyW24gLSB0aGlzLl9wYWdlQnVmZmVyU3RhcnRdKSkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigic3dpdGNoVG9QYWdlKCIgKyBuICsgIikgb3V0IG9mIGJvdW5kcywgY3VycmVudCBidWZmZXIgY292ZXJzIHBhZ2VzICIgKyB0aGlzLl9wYWdlQnVmZmVyU3RhcnQgKyAiIHRvICIgKyAodGhpcy5fcGFnZUJ1ZmZlclN0YXJ0ICsgdGhpcy5fcGFnZUJ1ZmZlci5sZW5ndGggLSAxKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMucGFnZSA9IHBhZ2U7CiAgICB9OwoKICAgIFBERkRvY3VtZW50LnByb3RvdHlwZS5mbHVzaFBhZ2VzID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBpLCBsZW4sIHBhZ2UsIHBhZ2VzOwogICAgICBwYWdlcyA9IHRoaXMuX3BhZ2VCdWZmZXI7CiAgICAgIHRoaXMuX3BhZ2VCdWZmZXIgPSBbXTsKICAgICAgdGhpcy5fcGFnZUJ1ZmZlclN0YXJ0ICs9IHBhZ2VzLmxlbmd0aDsKICAgICAgZm9yIChpID0gMCwgbGVuID0gcGFnZXMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICBwYWdlID0gcGFnZXNbaV07CiAgICAgICAgcGFnZS5lbmQoKTsKICAgICAgfQogICAgfTsKCiAgICBQREZEb2N1bWVudC5wcm90b3R5cGUucmVmID0gZnVuY3Rpb24oZGF0YSkgewogICAgICB2YXIgcmVmOwogICAgICByZWYgPSBuZXcgUERGUmVmZXJlbmNlKHRoaXMsIHRoaXMuX29mZnNldHMubGVuZ3RoICsgMSwgZGF0YSk7CiAgICAgIHRoaXMuX29mZnNldHMucHVzaChudWxsKTsKICAgICAgdGhpcy5fd2FpdGluZysrOwogICAgICByZXR1cm4gcmVmOwogICAgfTsKCiAgICBQREZEb2N1bWVudC5wcm90b3R5cGUuX3JlYWQgPSBmdW5jdGlvbigpIHt9OwoKICAgIFBERkRvY3VtZW50LnByb3RvdHlwZS5fd3JpdGUgPSBmdW5jdGlvbihkYXRhKSB7CiAgICAgIGlmICghQnVmZmVyLmlzQnVmZmVyKGRhdGEpKSB7CiAgICAgICAgZGF0YSA9IG5ldyBCdWZmZXIoZGF0YSArICdcbicsICdiaW5hcnknKTsKICAgICAgfQogICAgICB0aGlzLnB1c2goZGF0YSk7CiAgICAgIHJldHVybiB0aGlzLl9vZmZzZXQgKz0gZGF0YS5sZW5ndGg7CiAgICB9OwoKICAgIFBERkRvY3VtZW50LnByb3RvdHlwZS5hZGRDb250ZW50ID0gZnVuY3Rpb24oZGF0YSkgewogICAgICB0aGlzLnBhZ2Uud3JpdGUoZGF0YSk7CiAgICAgIHJldHVybiB0aGlzOwogICAgfTsKCiAgICBQREZEb2N1bWVudC5wcm90b3R5cGUuX3JlZkVuZCA9IGZ1bmN0aW9uKHJlZikgewogICAgICB0aGlzLl9vZmZzZXRzW3JlZi5pZCAtIDFdID0gcmVmLm9mZnNldDsKICAgICAgaWYgKC0tdGhpcy5fd2FpdGluZyA9PT0gMCAmJiB0aGlzLl9lbmRlZCkgewogICAgICAgIHRoaXMuX2ZpbmFsaXplKCk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2VuZGVkID0gZmFsc2U7CiAgICAgIH0KICAgIH07CgogICAgUERGRG9jdW1lbnQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oZmlsZW5hbWUsIGZuKSB7CiAgICAgIHZhciBlcnI7CiAgICAgIGVyciA9IG5ldyBFcnJvcignUERGRG9jdW1lbnQjd3JpdGUgaXMgZGVwcmVjYXRlZCwgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIFBERktpdC4gUGxlYXNlIHBpcGUgdGhlIGRvY3VtZW50IGludG8gYSBOb2RlIHN0cmVhbS4nKTsKICAgICAgY29uc29sZS53YXJuKGVyci5zdGFjayk7CiAgICAgIHRoaXMucGlwZShmcy5jcmVhdGVXcml0ZVN0cmVhbShmaWxlbmFtZSkpOwogICAgICB0aGlzLmVuZCgpOwogICAgICByZXR1cm4gdGhpcy5vbmNlKCdlbmQnLCBmbik7CiAgICB9OwoKICAgIFBERkRvY3VtZW50LnByb3RvdHlwZS5vdXRwdXQgPSBmdW5jdGlvbihmbikgewogICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BERkRvY3VtZW50I291dHB1dCBpcyBkZXByZWNhdGVkLCBhbmQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIFBERktpdC4gUGxlYXNlIHBpcGUgdGhlIGRvY3VtZW50IGludG8gYSBOb2RlIHN0cmVhbS4nKTsKICAgIH07CgogICAgUERGRG9jdW1lbnQucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgZm9udCwga2V5LCBuYW1lLCByZWYxLCByZWYyLCB2YWw7CiAgICAgIHRoaXMuZmx1c2hQYWdlcygpOwogICAgICB0aGlzLl9pbmZvID0gdGhpcy5yZWYoKTsKICAgICAgcmVmMSA9IHRoaXMuaW5mbzsKICAgICAgZm9yIChrZXkgaW4gcmVmMSkgewogICAgICAgIHZhbCA9IHJlZjFba2V5XTsKICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHsKICAgICAgICAgIHZhbCA9IG5ldyBTdHJpbmcodmFsKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5faW5mby5kYXRhW2tleV0gPSB2YWw7CiAgICAgIH0KICAgICAgdGhpcy5faW5mby5lbmQoKTsKICAgICAgcmVmMiA9IHRoaXMuX2ZvbnRGYW1pbGllczsKICAgICAgZm9yIChuYW1lIGluIHJlZjIpIHsKICAgICAgICBmb250ID0gcmVmMltuYW1lXTsKICAgICAgICBmb250LmZpbmFsaXplKCk7CiAgICAgIH0KICAgICAgdGhpcy5fcm9vdC5lbmQoKTsKICAgICAgdGhpcy5fcm9vdC5kYXRhLlBhZ2VzLmVuZCgpOwogICAgICBpZiAodGhpcy5fd2FpdGluZyA9PT0gMCkgewogICAgICAgIHJldHVybiB0aGlzLl9maW5hbGl6ZSgpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRlZCA9IHRydWU7CiAgICAgIH0KICAgIH07CgogICAgUERGRG9jdW1lbnQucHJvdG90eXBlLl9maW5hbGl6ZSA9IGZ1bmN0aW9uKGZuKSB7CiAgICAgIHZhciBpLCBsZW4sIG9mZnNldCwgcmVmMSwgeFJlZk9mZnNldDsKICAgICAgeFJlZk9mZnNldCA9IHRoaXMuX29mZnNldDsKICAgICAgdGhpcy5fd3JpdGUoInhyZWYiKTsKICAgICAgdGhpcy5fd3JpdGUoIjAgIiArICh0aGlzLl9vZmZzZXRzLmxlbmd0aCArIDEpKTsKICAgICAgdGhpcy5fd3JpdGUoIjAwMDAwMDAwMDAgNjU1MzUgZiAiKTsKICAgICAgcmVmMSA9IHRoaXMuX29mZnNldHM7CiAgICAgIGZvciAoaSA9IDAsIGxlbiA9IHJlZjEubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICBvZmZzZXQgPSByZWYxW2ldOwogICAgICAgIG9mZnNldCA9ICgnMDAwMDAwMDAwMCcgKyBvZmZzZXQpLnNsaWNlKC0xMCk7CiAgICAgICAgdGhpcy5fd3JpdGUob2Zmc2V0ICsgJyAwMDAwMCBuICcpOwogICAgICB9CiAgICAgIHRoaXMuX3dyaXRlKCd0cmFpbGVyJyk7CiAgICAgIHRoaXMuX3dyaXRlKFBERk9iamVjdC5jb252ZXJ0KHsKICAgICAgICBTaXplOiB0aGlzLl9vZmZzZXRzLmxlbmd0aCArIDEsCiAgICAgICAgUm9vdDogdGhpcy5fcm9vdCwKICAgICAgICBJbmZvOiB0aGlzLl9pbmZvCiAgICAgIH0pKTsKICAgICAgdGhpcy5fd3JpdGUoJ3N0YXJ0eHJlZicpOwogICAgICB0aGlzLl93cml0ZSgiIiArIHhSZWZPZmZzZXQpOwogICAgICB0aGlzLl93cml0ZSgnJSVFT0YnKTsKICAgICAgcmV0dXJuIHRoaXMucHVzaChudWxsKTsKICAgIH07CgogICAgUERGRG9jdW1lbnQucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAiW29iamVjdCBQREZEb2N1bWVudF0iOwogICAgfTsKCiAgICByZXR1cm4gUERGRG9jdW1lbnQ7CgogIH0pKHN0cmVhbS5SZWFkYWJsZSk7CgogIG1vZHVsZS5leHBvcnRzID0gUERGRG9jdW1lbnQ7Cgp9KS5jYWxsKHRoaXMpOwoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyKSkKCi8qKiovIH0pLAovKiAxMzkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLyogKGlnbm9yZWQpICovCgovKioqLyB9KSwKLyogMTQwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgpmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7IGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpOyB9IH0KCnZhciBCdWZmZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMzKS5CdWZmZXI7CnZhciB1dGlsID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNDEpOwoKZnVuY3Rpb24gY29weUJ1ZmZlcihzcmMsIHRhcmdldCwgb2Zmc2V0KSB7CiAgc3JjLmNvcHkodGFyZ2V0LCBvZmZzZXQpOwp9Cgptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBCdWZmZXJMaXN0KCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEJ1ZmZlckxpc3QpOwoKICAgIHRoaXMuaGVhZCA9IG51bGw7CiAgICB0aGlzLnRhaWwgPSBudWxsOwogICAgdGhpcy5sZW5ndGggPSAwOwogIH0KCiAgQnVmZmVyTGlzdC5wcm90b3R5cGUucHVzaCA9IGZ1bmN0aW9uIHB1c2godikgewogICAgdmFyIGVudHJ5ID0geyBkYXRhOiB2LCBuZXh0OiBudWxsIH07CiAgICBpZiAodGhpcy5sZW5ndGggPiAwKSB0aGlzLnRhaWwubmV4dCA9IGVudHJ5O2Vsc2UgdGhpcy5oZWFkID0gZW50cnk7CiAgICB0aGlzLnRhaWwgPSBlbnRyeTsKICAgICsrdGhpcy5sZW5ndGg7CiAgfTsKCiAgQnVmZmVyTGlzdC5wcm90b3R5cGUudW5zaGlmdCA9IGZ1bmN0aW9uIHVuc2hpZnQodikgewogICAgdmFyIGVudHJ5ID0geyBkYXRhOiB2LCBuZXh0OiB0aGlzLmhlYWQgfTsKICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgdGhpcy50YWlsID0gZW50cnk7CiAgICB0aGlzLmhlYWQgPSBlbnRyeTsKICAgICsrdGhpcy5sZW5ndGg7CiAgfTsKCiAgQnVmZmVyTGlzdC5wcm90b3R5cGUuc2hpZnQgPSBmdW5jdGlvbiBzaGlmdCgpIHsKICAgIGlmICh0aGlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgdmFyIHJldCA9IHRoaXMuaGVhZC5kYXRhOwogICAgaWYgKHRoaXMubGVuZ3RoID09PSAxKSB0aGlzLmhlYWQgPSB0aGlzLnRhaWwgPSBudWxsO2Vsc2UgdGhpcy5oZWFkID0gdGhpcy5oZWFkLm5leHQ7CiAgICAtLXRoaXMubGVuZ3RoOwogICAgcmV0dXJuIHJldDsKICB9OwoKICBCdWZmZXJMaXN0LnByb3RvdHlwZS5jbGVhciA9IGZ1bmN0aW9uIGNsZWFyKCkgewogICAgdGhpcy5oZWFkID0gdGhpcy50YWlsID0gbnVsbDsKICAgIHRoaXMubGVuZ3RoID0gMDsKICB9OwoKICBCdWZmZXJMaXN0LnByb3RvdHlwZS5qb2luID0gZnVuY3Rpb24gam9pbihzKSB7CiAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHJldHVybiAnJzsKICAgIHZhciBwID0gdGhpcy5oZWFkOwogICAgdmFyIHJldCA9ICcnICsgcC5kYXRhOwogICAgd2hpbGUgKHAgPSBwLm5leHQpIHsKICAgICAgcmV0ICs9IHMgKyBwLmRhdGE7CiAgICB9cmV0dXJuIHJldDsKICB9OwoKICBCdWZmZXJMaXN0LnByb3RvdHlwZS5jb25jYXQgPSBmdW5jdGlvbiBjb25jYXQobikgewogICAgaWYgKHRoaXMubGVuZ3RoID09PSAwKSByZXR1cm4gQnVmZmVyLmFsbG9jKDApOwogICAgaWYgKHRoaXMubGVuZ3RoID09PSAxKSByZXR1cm4gdGhpcy5oZWFkLmRhdGE7CiAgICB2YXIgcmV0ID0gQnVmZmVyLmFsbG9jVW5zYWZlKG4gPj4+IDApOwogICAgdmFyIHAgPSB0aGlzLmhlYWQ7CiAgICB2YXIgaSA9IDA7CiAgICB3aGlsZSAocCkgewogICAgICBjb3B5QnVmZmVyKHAuZGF0YSwgcmV0LCBpKTsKICAgICAgaSArPSBwLmRhdGEubGVuZ3RoOwogICAgICBwID0gcC5uZXh0OwogICAgfQogICAgcmV0dXJuIHJldDsKICB9OwoKICByZXR1cm4gQnVmZmVyTGlzdDsKfSgpOwoKaWYgKHV0aWwgJiYgdXRpbC5pbnNwZWN0ICYmIHV0aWwuaW5zcGVjdC5jdXN0b20pIHsKICBtb2R1bGUuZXhwb3J0cy5wcm90b3R5cGVbdXRpbC5pbnNwZWN0LmN1c3RvbV0gPSBmdW5jdGlvbiAoKSB7CiAgICB2YXIgb2JqID0gdXRpbC5pbnNwZWN0KHsgbGVuZ3RoOiB0aGlzLmxlbmd0aCB9KTsKICAgIHJldHVybiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnICcgKyBvYmo7CiAgfTsKfQoKLyoqKi8gfSksCi8qIDE0MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovKiAoaWdub3JlZCkgKi8KCi8qKiovIH0pLAovKiAxNDIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKGdsb2JhbCkge3ZhciBhcHBseSA9IEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseTsKCi8vIERPTSBBUElzLCBmb3IgY29tcGxldGVuZXNzCgpleHBvcnRzLnNldFRpbWVvdXQgPSBmdW5jdGlvbigpIHsKICByZXR1cm4gbmV3IFRpbWVvdXQoYXBwbHkuY2FsbChzZXRUaW1lb3V0LCB3aW5kb3csIGFyZ3VtZW50cyksIGNsZWFyVGltZW91dCk7Cn07CmV4cG9ydHMuc2V0SW50ZXJ2YWwgPSBmdW5jdGlvbigpIHsKICByZXR1cm4gbmV3IFRpbWVvdXQoYXBwbHkuY2FsbChzZXRJbnRlcnZhbCwgd2luZG93LCBhcmd1bWVudHMpLCBjbGVhckludGVydmFsKTsKfTsKZXhwb3J0cy5jbGVhclRpbWVvdXQgPQpleHBvcnRzLmNsZWFySW50ZXJ2YWwgPSBmdW5jdGlvbih0aW1lb3V0KSB7CiAgaWYgKHRpbWVvdXQpIHsKICAgIHRpbWVvdXQuY2xvc2UoKTsKICB9Cn07CgpmdW5jdGlvbiBUaW1lb3V0KGlkLCBjbGVhckZuKSB7CiAgdGhpcy5faWQgPSBpZDsKICB0aGlzLl9jbGVhckZuID0gY2xlYXJGbjsKfQpUaW1lb3V0LnByb3RvdHlwZS51bnJlZiA9IFRpbWVvdXQucHJvdG90eXBlLnJlZiA9IGZ1bmN0aW9uKCkge307ClRpbWVvdXQucHJvdG90eXBlLmNsb3NlID0gZnVuY3Rpb24oKSB7CiAgdGhpcy5fY2xlYXJGbi5jYWxsKHdpbmRvdywgdGhpcy5faWQpOwp9OwoKLy8gRG9lcyBub3Qgc3RhcnQgdGhlIHRpbWUsIGp1c3Qgc2V0cyB1cCB0aGUgbWVtYmVycyBuZWVkZWQuCmV4cG9ydHMuZW5yb2xsID0gZnVuY3Rpb24oaXRlbSwgbXNlY3MpIHsKICBjbGVhclRpbWVvdXQoaXRlbS5faWRsZVRpbWVvdXRJZCk7CiAgaXRlbS5faWRsZVRpbWVvdXQgPSBtc2VjczsKfTsKCmV4cG9ydHMudW5lbnJvbGwgPSBmdW5jdGlvbihpdGVtKSB7CiAgY2xlYXJUaW1lb3V0KGl0ZW0uX2lkbGVUaW1lb3V0SWQpOwogIGl0ZW0uX2lkbGVUaW1lb3V0ID0gLTE7Cn07CgpleHBvcnRzLl91bnJlZkFjdGl2ZSA9IGV4cG9ydHMuYWN0aXZlID0gZnVuY3Rpb24oaXRlbSkgewogIGNsZWFyVGltZW91dChpdGVtLl9pZGxlVGltZW91dElkKTsKCiAgdmFyIG1zZWNzID0gaXRlbS5faWRsZVRpbWVvdXQ7CiAgaWYgKG1zZWNzID49IDApIHsKICAgIGl0ZW0uX2lkbGVUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uIG9uVGltZW91dCgpIHsKICAgICAgaWYgKGl0ZW0uX29uVGltZW91dCkKICAgICAgICBpdGVtLl9vblRpbWVvdXQoKTsKICAgIH0sIG1zZWNzKTsKICB9Cn07CgovLyBzZXRpbW1lZGlhdGUgYXR0YWNoZXMgaXRzZWxmIHRvIHRoZSBnbG9iYWwgb2JqZWN0Cl9fd2VicGFja19yZXF1aXJlX18oMTQzKTsKLy8gT24gc29tZSBleG90aWMgZW52aXJvbm1lbnRzLCBpdCdzIG5vdCBjbGVhciB3aGljaCBvYmplY3QgYHNldGltbWVpZGF0ZWAgd2FzCi8vIGFibGUgdG8gaW5zdGFsbCBvbnRvLiAgU2VhcmNoIGVhY2ggcG9zc2liaWxpdHkgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlCi8vIGBzZXRpbW1lZGlhdGVgIGxpYnJhcnkuCmV4cG9ydHMuc2V0SW1tZWRpYXRlID0gKHR5cGVvZiBzZWxmICE9PSAidW5kZWZpbmVkIiAmJiBzZWxmLnNldEltbWVkaWF0ZSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGdsb2JhbCAhPT0gInVuZGVmaW5lZCIgJiYgZ2xvYmFsLnNldEltbWVkaWF0ZSkgfHwKICAgICAgICAgICAgICAgICAgICAgICAodGhpcyAmJiB0aGlzLnNldEltbWVkaWF0ZSk7CmV4cG9ydHMuY2xlYXJJbW1lZGlhdGUgPSAodHlwZW9mIHNlbGYgIT09ICJ1bmRlZmluZWQiICYmIHNlbGYuY2xlYXJJbW1lZGlhdGUpIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZW9mIGdsb2JhbCAhPT0gInVuZGVmaW5lZCIgJiYgZ2xvYmFsLmNsZWFySW1tZWRpYXRlKSB8fAogICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMgJiYgdGhpcy5jbGVhckltbWVkaWF0ZSk7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyg3KSkpCgovKioqLyB9KSwKLyogMTQzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihnbG9iYWwsIHByb2Nlc3MpIHsoZnVuY3Rpb24gKGdsb2JhbCwgdW5kZWZpbmVkKSB7CiAgICAidXNlIHN0cmljdCI7CgogICAgaWYgKGdsb2JhbC5zZXRJbW1lZGlhdGUpIHsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIG5leHRIYW5kbGUgPSAxOyAvLyBTcGVjIHNheXMgZ3JlYXRlciB0aGFuIHplcm8KICAgIHZhciB0YXNrc0J5SGFuZGxlID0ge307CiAgICB2YXIgY3VycmVudGx5UnVubmluZ0FUYXNrID0gZmFsc2U7CiAgICB2YXIgZG9jID0gZ2xvYmFsLmRvY3VtZW50OwogICAgdmFyIHJlZ2lzdGVySW1tZWRpYXRlOwoKICAgIGZ1bmN0aW9uIHNldEltbWVkaWF0ZShjYWxsYmFjaykgewogICAgICAvLyBDYWxsYmFjayBjYW4gZWl0aGVyIGJlIGEgZnVuY3Rpb24gb3IgYSBzdHJpbmcKICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gImZ1bmN0aW9uIikgewogICAgICAgIGNhbGxiYWNrID0gbmV3IEZ1bmN0aW9uKCIiICsgY2FsbGJhY2spOwogICAgICB9CiAgICAgIC8vIENvcHkgZnVuY3Rpb24gYXJndW1lbnRzCiAgICAgIHZhciBhcmdzID0gbmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGggLSAxKTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBhcmdzW2ldID0gYXJndW1lbnRzW2kgKyAxXTsKICAgICAgfQogICAgICAvLyBTdG9yZSBhbmQgcmVnaXN0ZXIgdGhlIHRhc2sKICAgICAgdmFyIHRhc2sgPSB7IGNhbGxiYWNrOiBjYWxsYmFjaywgYXJnczogYXJncyB9OwogICAgICB0YXNrc0J5SGFuZGxlW25leHRIYW5kbGVdID0gdGFzazsKICAgICAgcmVnaXN0ZXJJbW1lZGlhdGUobmV4dEhhbmRsZSk7CiAgICAgIHJldHVybiBuZXh0SGFuZGxlKys7CiAgICB9CgogICAgZnVuY3Rpb24gY2xlYXJJbW1lZGlhdGUoaGFuZGxlKSB7CiAgICAgICAgZGVsZXRlIHRhc2tzQnlIYW5kbGVbaGFuZGxlXTsKICAgIH0KCiAgICBmdW5jdGlvbiBydW4odGFzaykgewogICAgICAgIHZhciBjYWxsYmFjayA9IHRhc2suY2FsbGJhY2s7CiAgICAgICAgdmFyIGFyZ3MgPSB0YXNrLmFyZ3M7CiAgICAgICAgc3dpdGNoIChhcmdzLmxlbmd0aCkgewogICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAxOgogICAgICAgICAgICBjYWxsYmFjayhhcmdzWzBdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAyOgogICAgICAgICAgICBjYWxsYmFjayhhcmdzWzBdLCBhcmdzWzFdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAzOgogICAgICAgICAgICBjYWxsYmFjayhhcmdzWzBdLCBhcmdzWzFdLCBhcmdzWzJdKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkodW5kZWZpbmVkLCBhcmdzKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIHJ1bklmUHJlc2VudChoYW5kbGUpIHsKICAgICAgICAvLyBGcm9tIHRoZSBzcGVjOiAiV2FpdCB1bnRpbCBhbnkgaW52b2NhdGlvbnMgb2YgdGhpcyBhbGdvcml0aG0gc3RhcnRlZCBiZWZvcmUgdGhpcyBvbmUgaGF2ZSBjb21wbGV0ZWQuIgogICAgICAgIC8vIFNvIGlmIHdlJ3JlIGN1cnJlbnRseSBydW5uaW5nIGEgdGFzaywgd2UnbGwgbmVlZCB0byBkZWxheSB0aGlzIGludm9jYXRpb24uCiAgICAgICAgaWYgKGN1cnJlbnRseVJ1bm5pbmdBVGFzaykgewogICAgICAgICAgICAvLyBEZWxheSBieSBkb2luZyBhIHNldFRpbWVvdXQuIHNldEltbWVkaWF0ZSB3YXMgdHJpZWQgaW5zdGVhZCwgYnV0IGluIEZpcmVmb3ggNyBpdCBnZW5lcmF0ZWQgYQogICAgICAgICAgICAvLyAidG9vIG11Y2ggcmVjdXJzaW9uIiBlcnJvci4KICAgICAgICAgICAgc2V0VGltZW91dChydW5JZlByZXNlbnQsIDAsIGhhbmRsZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIHRhc2sgPSB0YXNrc0J5SGFuZGxlW2hhbmRsZV07CiAgICAgICAgICAgIGlmICh0YXNrKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50bHlSdW5uaW5nQVRhc2sgPSB0cnVlOwogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBydW4odGFzayk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICAgIGNsZWFySW1tZWRpYXRlKGhhbmRsZSk7CiAgICAgICAgICAgICAgICAgICAgY3VycmVudGx5UnVubmluZ0FUYXNrID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZnVuY3Rpb24gaW5zdGFsbE5leHRUaWNrSW1wbGVtZW50YXRpb24oKSB7CiAgICAgICAgcmVnaXN0ZXJJbW1lZGlhdGUgPSBmdW5jdGlvbihoYW5kbGUpIHsKICAgICAgICAgICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7IHJ1bklmUHJlc2VudChoYW5kbGUpOyB9KTsKICAgICAgICB9OwogICAgfQoKICAgIGZ1bmN0aW9uIGNhblVzZVBvc3RNZXNzYWdlKCkgewogICAgICAgIC8vIFRoZSB0ZXN0IGFnYWluc3QgYGltcG9ydFNjcmlwdHNgIHByZXZlbnRzIHRoaXMgaW1wbGVtZW50YXRpb24gZnJvbSBiZWluZyBpbnN0YWxsZWQgaW5zaWRlIGEgd2ViIHdvcmtlciwKICAgICAgICAvLyB3aGVyZSBgZ2xvYmFsLnBvc3RNZXNzYWdlYCBtZWFucyBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQgYW5kIGNhbid0IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZS4KICAgICAgICBpZiAoZ2xvYmFsLnBvc3RNZXNzYWdlICYmICFnbG9iYWwuaW1wb3J0U2NyaXB0cykgewogICAgICAgICAgICB2YXIgcG9zdE1lc3NhZ2VJc0FzeW5jaHJvbm91cyA9IHRydWU7CiAgICAgICAgICAgIHZhciBvbGRPbk1lc3NhZ2UgPSBnbG9iYWwub25tZXNzYWdlOwogICAgICAgICAgICBnbG9iYWwub25tZXNzYWdlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZUlzQXN5bmNocm9ub3VzID0gZmFsc2U7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGdsb2JhbC5wb3N0TWVzc2FnZSgiIiwgIioiKTsKICAgICAgICAgICAgZ2xvYmFsLm9ubWVzc2FnZSA9IG9sZE9uTWVzc2FnZTsKICAgICAgICAgICAgcmV0dXJuIHBvc3RNZXNzYWdlSXNBc3luY2hyb25vdXM7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGluc3RhbGxQb3N0TWVzc2FnZUltcGxlbWVudGF0aW9uKCkgewogICAgICAgIC8vIEluc3RhbGxzIGFuIGV2ZW50IGhhbmRsZXIgb24gYGdsb2JhbGAgZm9yIHRoZSBgbWVzc2FnZWAgZXZlbnQ6IHNlZQogICAgICAgIC8vICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vRE9NL3dpbmRvdy5wb3N0TWVzc2FnZQogICAgICAgIC8vICogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbXMuaHRtbCNjcm9zc0RvY3VtZW50TWVzc2FnZXMKCiAgICAgICAgdmFyIG1lc3NhZ2VQcmVmaXggPSAic2V0SW1tZWRpYXRlJCIgKyBNYXRoLnJhbmRvbSgpICsgIiQiOwogICAgICAgIHZhciBvbkdsb2JhbE1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgewogICAgICAgICAgICBpZiAoZXZlbnQuc291cmNlID09PSBnbG9iYWwgJiYKICAgICAgICAgICAgICAgIHR5cGVvZiBldmVudC5kYXRhID09PSAic3RyaW5nIiAmJgogICAgICAgICAgICAgICAgZXZlbnQuZGF0YS5pbmRleE9mKG1lc3NhZ2VQcmVmaXgpID09PSAwKSB7CiAgICAgICAgICAgICAgICBydW5JZlByZXNlbnQoK2V2ZW50LmRhdGEuc2xpY2UobWVzc2FnZVByZWZpeC5sZW5ndGgpKTsKICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIGlmIChnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgICAgICBnbG9iYWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIG9uR2xvYmFsTWVzc2FnZSwgZmFsc2UpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdsb2JhbC5hdHRhY2hFdmVudCgib25tZXNzYWdlIiwgb25HbG9iYWxNZXNzYWdlKTsKICAgICAgICB9CgogICAgICAgIHJlZ2lzdGVySW1tZWRpYXRlID0gZnVuY3Rpb24oaGFuZGxlKSB7CiAgICAgICAgICAgIGdsb2JhbC5wb3N0TWVzc2FnZShtZXNzYWdlUHJlZml4ICsgaGFuZGxlLCAiKiIpOwogICAgICAgIH07CiAgICB9CgogICAgZnVuY3Rpb24gaW5zdGFsbE1lc3NhZ2VDaGFubmVsSW1wbGVtZW50YXRpb24oKSB7CiAgICAgICAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKICAgICAgICBjaGFubmVsLnBvcnQxLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgICAgIHZhciBoYW5kbGUgPSBldmVudC5kYXRhOwogICAgICAgICAgICBydW5JZlByZXNlbnQoaGFuZGxlKTsKICAgICAgICB9OwoKICAgICAgICByZWdpc3RlckltbWVkaWF0ZSA9IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgICAgICBjaGFubmVsLnBvcnQyLnBvc3RNZXNzYWdlKGhhbmRsZSk7CiAgICAgICAgfTsKICAgIH0KCiAgICBmdW5jdGlvbiBpbnN0YWxsUmVhZHlTdGF0ZUNoYW5nZUltcGxlbWVudGF0aW9uKCkgewogICAgICAgIHZhciBodG1sID0gZG9jLmRvY3VtZW50RWxlbWVudDsKICAgICAgICByZWdpc3RlckltbWVkaWF0ZSA9IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgICAgICAvLyBDcmVhdGUgYSA8c2NyaXB0PiBlbGVtZW50OyBpdHMgcmVhZHlzdGF0ZWNoYW5nZSBldmVudCB3aWxsIGJlIGZpcmVkIGFzeW5jaHJvbm91c2x5IG9uY2UgaXQgaXMgaW5zZXJ0ZWQKICAgICAgICAgICAgLy8gaW50byB0aGUgZG9jdW1lbnQuIERvIHNvLCB0aHVzIHF1ZXVpbmcgdXAgdGhlIHRhc2suIFJlbWVtYmVyIHRvIGNsZWFuIHVwIG9uY2UgaXQncyBiZWVuIGNhbGxlZC4KICAgICAgICAgICAgdmFyIHNjcmlwdCA9IGRvYy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIHJ1bklmUHJlc2VudChoYW5kbGUpOwogICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7CiAgICAgICAgICAgICAgICBodG1sLnJlbW92ZUNoaWxkKHNjcmlwdCk7CiAgICAgICAgICAgICAgICBzY3JpcHQgPSBudWxsOwogICAgICAgICAgICB9OwogICAgICAgICAgICBodG1sLmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAgICAgfTsKICAgIH0KCiAgICBmdW5jdGlvbiBpbnN0YWxsU2V0VGltZW91dEltcGxlbWVudGF0aW9uKCkgewogICAgICAgIHJlZ2lzdGVySW1tZWRpYXRlID0gZnVuY3Rpb24oaGFuZGxlKSB7CiAgICAgICAgICAgIHNldFRpbWVvdXQocnVuSWZQcmVzZW50LCAwLCBoYW5kbGUpOwogICAgICAgIH07CiAgICB9CgogICAgLy8gSWYgc3VwcG9ydGVkLCB3ZSBzaG91bGQgYXR0YWNoIHRvIHRoZSBwcm90b3R5cGUgb2YgZ2xvYmFsLCBzaW5jZSB0aGF0IGlzIHdoZXJlIHNldFRpbWVvdXQgZXQgYWwuIGxpdmUuCiAgICB2YXIgYXR0YWNoVG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgJiYgT2JqZWN0LmdldFByb3RvdHlwZU9mKGdsb2JhbCk7CiAgICBhdHRhY2hUbyA9IGF0dGFjaFRvICYmIGF0dGFjaFRvLnNldFRpbWVvdXQgPyBhdHRhY2hUbyA6IGdsb2JhbDsKCiAgICAvLyBEb24ndCBnZXQgZm9vbGVkIGJ5IGUuZy4gYnJvd3NlcmlmeSBlbnZpcm9ubWVudHMuCiAgICBpZiAoe30udG9TdHJpbmcuY2FsbChnbG9iYWwucHJvY2VzcykgPT09ICJbb2JqZWN0IHByb2Nlc3NdIikgewogICAgICAgIC8vIEZvciBOb2RlLmpzIGJlZm9yZSAwLjkKICAgICAgICBpbnN0YWxsTmV4dFRpY2tJbXBsZW1lbnRhdGlvbigpOwoKICAgIH0gZWxzZSBpZiAoY2FuVXNlUG9zdE1lc3NhZ2UoKSkgewogICAgICAgIC8vIEZvciBub24tSUUxMCBtb2Rlcm4gYnJvd3NlcnMKICAgICAgICBpbnN0YWxsUG9zdE1lc3NhZ2VJbXBsZW1lbnRhdGlvbigpOwoKICAgIH0gZWxzZSBpZiAoZ2xvYmFsLk1lc3NhZ2VDaGFubmVsKSB7CiAgICAgICAgLy8gRm9yIHdlYiB3b3JrZXJzLCB3aGVyZSBzdXBwb3J0ZWQKICAgICAgICBpbnN0YWxsTWVzc2FnZUNoYW5uZWxJbXBsZW1lbnRhdGlvbigpOwoKICAgIH0gZWxzZSBpZiAoZG9jICYmICJvbnJlYWR5c3RhdGVjaGFuZ2UiIGluIGRvYy5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKSkgewogICAgICAgIC8vIEZvciBJRSA24oCTOAogICAgICAgIGluc3RhbGxSZWFkeVN0YXRlQ2hhbmdlSW1wbGVtZW50YXRpb24oKTsKCiAgICB9IGVsc2UgewogICAgICAgIC8vIEZvciBvbGRlciBicm93c2VycwogICAgICAgIGluc3RhbGxTZXRUaW1lb3V0SW1wbGVtZW50YXRpb24oKTsKICAgIH0KCiAgICBhdHRhY2hUby5zZXRJbW1lZGlhdGUgPSBzZXRJbW1lZGlhdGU7CiAgICBhdHRhY2hUby5jbGVhckltbWVkaWF0ZSA9IGNsZWFySW1tZWRpYXRlOwp9KHR5cGVvZiBzZWxmID09PSAidW5kZWZpbmVkIiA/IHR5cGVvZiBnbG9iYWwgPT09ICJ1bmRlZmluZWQiID8gdGhpcyA6IGdsb2JhbCA6IHNlbGYpKTsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDcpLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSkpCgovKioqLyB9KSwKLyogMTQ0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihnbG9iYWwpIHsKLyoqCiAqIE1vZHVsZSBleHBvcnRzLgogKi8KCm1vZHVsZS5leHBvcnRzID0gZGVwcmVjYXRlOwoKLyoqCiAqIE1hcmsgdGhhdCBhIG1ldGhvZCBzaG91bGQgbm90IGJlIHVzZWQuCiAqIFJldHVybnMgYSBtb2RpZmllZCBmdW5jdGlvbiB3aGljaCB3YXJucyBvbmNlIGJ5IGRlZmF1bHQuCiAqCiAqIElmIGBsb2NhbFN0b3JhZ2Uubm9EZXByZWNhdGlvbiA9IHRydWVgIGlzIHNldCwgdGhlbiBpdCBpcyBhIG5vLW9wLgogKgogKiBJZiBgbG9jYWxTdG9yYWdlLnRocm93RGVwcmVjYXRpb24gPSB0cnVlYCBpcyBzZXQsIHRoZW4gZGVwcmVjYXRlZCBmdW5jdGlvbnMKICogd2lsbCB0aHJvdyBhbiBFcnJvciB3aGVuIGludm9rZWQuCiAqCiAqIElmIGBsb2NhbFN0b3JhZ2UudHJhY2VEZXByZWNhdGlvbiA9IHRydWVgIGlzIHNldCwgdGhlbiBkZXByZWNhdGVkIGZ1bmN0aW9ucwogKiB3aWxsIGludm9rZSBgY29uc29sZS50cmFjZSgpYCBpbnN0ZWFkIG9mIGBjb25zb2xlLmVycm9yKClgLgogKgogKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiAtIHRoZSBmdW5jdGlvbiB0byBkZXByZWNhdGUKICogQHBhcmFtIHtTdHJpbmd9IG1zZyAtIHRoZSBzdHJpbmcgdG8gcHJpbnQgdG8gdGhlIGNvbnNvbGUgd2hlbiBgZm5gIGlzIGludm9rZWQKICogQHJldHVybnMge0Z1bmN0aW9ufSBhIG5ldyAiZGVwcmVjYXRlZCIgdmVyc2lvbiBvZiBgZm5gCiAqIEBhcGkgcHVibGljCiAqLwoKZnVuY3Rpb24gZGVwcmVjYXRlIChmbiwgbXNnKSB7CiAgaWYgKGNvbmZpZygnbm9EZXByZWNhdGlvbicpKSB7CiAgICByZXR1cm4gZm47CiAgfQoKICB2YXIgd2FybmVkID0gZmFsc2U7CiAgZnVuY3Rpb24gZGVwcmVjYXRlZCgpIHsKICAgIGlmICghd2FybmVkKSB7CiAgICAgIGlmIChjb25maWcoJ3Rocm93RGVwcmVjYXRpb24nKSkgewogICAgICAgIHRocm93IG5ldyBFcnJvcihtc2cpOwogICAgICB9IGVsc2UgaWYgKGNvbmZpZygndHJhY2VEZXByZWNhdGlvbicpKSB7CiAgICAgICAgY29uc29sZS50cmFjZShtc2cpOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnNvbGUud2Fybihtc2cpOwogICAgICB9CiAgICAgIHdhcm5lZCA9IHRydWU7CiAgICB9CiAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICB9CgogIHJldHVybiBkZXByZWNhdGVkOwp9CgovKioKICogQ2hlY2tzIGBsb2NhbFN0b3JhZ2VgIGZvciBib29sZWFuIHZhbHVlcyBmb3IgdGhlIGdpdmVuIGBuYW1lYC4KICoKICogQHBhcmFtIHtTdHJpbmd9IG5hbWUKICogQHJldHVybnMge0Jvb2xlYW59CiAqIEBhcGkgcHJpdmF0ZQogKi8KCmZ1bmN0aW9uIGNvbmZpZyAobmFtZSkgewogIC8vIGFjY2Vzc2luZyBnbG9iYWwubG9jYWxTdG9yYWdlIGNhbiB0cmlnZ2VyIGEgRE9NRXhjZXB0aW9uIGluIHNhbmRib3hlZCBpZnJhbWVzCiAgdHJ5IHsKICAgIGlmICghZ2xvYmFsLmxvY2FsU3RvcmFnZSkgcmV0dXJuIGZhbHNlOwogIH0gY2F0Y2ggKF8pIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgdmFyIHZhbCA9IGdsb2JhbC5sb2NhbFN0b3JhZ2VbbmFtZV07CiAgaWYgKG51bGwgPT0gdmFsKSByZXR1cm4gZmFsc2U7CiAgcmV0dXJuIFN0cmluZyh2YWwpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJzsKfQoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oNykpKQoKLyoqKi8gfSksCi8qIDE0NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Ci8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLgovLwovLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQovLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi8vICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLy8gd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAovLyBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0Ci8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZQovLyBmb2xsb3dpbmcgY29uZGl0aW9uczoKLy8KLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKLy8gaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCi8vCi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTCi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKLy8gTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTgovLyBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwKLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SCi8vIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUKLy8gVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KCi8vIGEgcGFzc3Rocm91Z2ggc3RyZWFtLgovLyBiYXNpY2FsbHkganVzdCB0aGUgbW9zdCBtaW5pbWFsIHNvcnQgb2YgVHJhbnNmb3JtIHN0cmVhbS4KLy8gRXZlcnkgd3JpdHRlbiBjaHVuayBnZXRzIG91dHB1dCBhcy1pcy4KCgoKbW9kdWxlLmV4cG9ydHMgPSBQYXNzVGhyb3VnaDsKCnZhciBUcmFuc2Zvcm0gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg2KTsKCi8qPHJlcGxhY2VtZW50PiovCnZhciB1dGlsID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNSk7CnV0aWwuaW5oZXJpdHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxKTsKLyo8L3JlcGxhY2VtZW50PiovCgp1dGlsLmluaGVyaXRzKFBhc3NUaHJvdWdoLCBUcmFuc2Zvcm0pOwoKZnVuY3Rpb24gUGFzc1Rocm91Z2gob3B0aW9ucykgewogIGlmICghKHRoaXMgaW5zdGFuY2VvZiBQYXNzVGhyb3VnaCkpIHJldHVybiBuZXcgUGFzc1Rocm91Z2gob3B0aW9ucyk7CgogIFRyYW5zZm9ybS5jYWxsKHRoaXMsIG9wdGlvbnMpOwp9CgpQYXNzVGhyb3VnaC5wcm90b3R5cGUuX3RyYW5zZm9ybSA9IGZ1bmN0aW9uIChjaHVuaywgZW5jb2RpbmcsIGNiKSB7CiAgY2IobnVsbCwgY2h1bmspOwp9OwoKLyoqKi8gfSksCi8qIDE0NiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oNDYpOwoKCi8qKiovIH0pLAovKiAxNDcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2KTsKCgovKioqLyB9KSwKLyogMTQ4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NSkuVHJhbnNmb3JtCgoKLyoqKi8gfSksCi8qIDE0OSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oNDUpLlBhc3NUaHJvdWdoCgoKLyoqKi8gfSksCi8qIDE1MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Ci8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihCdWZmZXIsIHByb2Nlc3MpIHsKLyogZXNsaW50IGNhbWVsY2FzZTogIm9mZiIgKi8KCnZhciBhc3NlcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDg4KTsKCnZhciBac3RyZWFtID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNTMpOwp2YXIgemxpYl9kZWZsYXRlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNTQpOwp2YXIgemxpYl9pbmZsYXRlID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNTcpOwp2YXIgY29uc3RhbnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNjApOwoKZm9yICh2YXIga2V5IGluIGNvbnN0YW50cykgewogIGV4cG9ydHNba2V5XSA9IGNvbnN0YW50c1trZXldOwp9CgovLyB6bGliIG1vZGVzCmV4cG9ydHMuTk9ORSA9IDA7CmV4cG9ydHMuREVGTEFURSA9IDE7CmV4cG9ydHMuSU5GTEFURSA9IDI7CmV4cG9ydHMuR1pJUCA9IDM7CmV4cG9ydHMuR1VOWklQID0gNDsKZXhwb3J0cy5ERUZMQVRFUkFXID0gNTsKZXhwb3J0cy5JTkZMQVRFUkFXID0gNjsKZXhwb3J0cy5VTlpJUCA9IDc7Cgp2YXIgR1pJUF9IRUFERVJfSUQxID0gMHgxZjsKdmFyIEdaSVBfSEVBREVSX0lEMiA9IDB4OGI7CgovKioKICogRW11bGF0ZSBOb2RlJ3MgemxpYiBDKysgbGF5ZXIgZm9yIHVzZSBieSB0aGUgSlMgbGF5ZXIgaW4gaW5kZXguanMKICovCmZ1bmN0aW9uIFpsaWIobW9kZSkgewogIGlmICh0eXBlb2YgbW9kZSAhPT0gJ251bWJlcicgfHwgbW9kZSA8IGV4cG9ydHMuREVGTEFURSB8fCBtb2RlID4gZXhwb3J0cy5VTlpJUCkgewogICAgdGhyb3cgbmV3IFR5cGVFcnJvcignQmFkIGFyZ3VtZW50Jyk7CiAgfQoKICB0aGlzLmRpY3Rpb25hcnkgPSBudWxsOwogIHRoaXMuZXJyID0gMDsKICB0aGlzLmZsdXNoID0gMDsKICB0aGlzLmluaXRfZG9uZSA9IGZhbHNlOwogIHRoaXMubGV2ZWwgPSAwOwogIHRoaXMubWVtTGV2ZWwgPSAwOwogIHRoaXMubW9kZSA9IG1vZGU7CiAgdGhpcy5zdHJhdGVneSA9IDA7CiAgdGhpcy53aW5kb3dCaXRzID0gMDsKICB0aGlzLndyaXRlX2luX3Byb2dyZXNzID0gZmFsc2U7CiAgdGhpcy5wZW5kaW5nX2Nsb3NlID0gZmFsc2U7CiAgdGhpcy5nemlwX2lkX2J5dGVzX3JlYWQgPSAwOwp9CgpabGliLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uICgpIHsKICBpZiAodGhpcy53cml0ZV9pbl9wcm9ncmVzcykgewogICAgdGhpcy5wZW5kaW5nX2Nsb3NlID0gdHJ1ZTsKICAgIHJldHVybjsKICB9CgogIHRoaXMucGVuZGluZ19jbG9zZSA9IGZhbHNlOwoKICBhc3NlcnQodGhpcy5pbml0X2RvbmUsICdjbG9zZSBiZWZvcmUgaW5pdCcpOwogIGFzc2VydCh0aGlzLm1vZGUgPD0gZXhwb3J0cy5VTlpJUCk7CgogIGlmICh0aGlzLm1vZGUgPT09IGV4cG9ydHMuREVGTEFURSB8fCB0aGlzLm1vZGUgPT09IGV4cG9ydHMuR1pJUCB8fCB0aGlzLm1vZGUgPT09IGV4cG9ydHMuREVGTEFURVJBVykgewogICAgemxpYl9kZWZsYXRlLmRlZmxhdGVFbmQodGhpcy5zdHJtKTsKICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gZXhwb3J0cy5JTkZMQVRFIHx8IHRoaXMubW9kZSA9PT0gZXhwb3J0cy5HVU5aSVAgfHwgdGhpcy5tb2RlID09PSBleHBvcnRzLklORkxBVEVSQVcgfHwgdGhpcy5tb2RlID09PSBleHBvcnRzLlVOWklQKSB7CiAgICB6bGliX2luZmxhdGUuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pOwogIH0KCiAgdGhpcy5tb2RlID0gZXhwb3J0cy5OT05FOwoKICB0aGlzLmRpY3Rpb25hcnkgPSBudWxsOwp9OwoKWmxpYi5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbiAoZmx1c2gsIGlucHV0LCBpbl9vZmYsIGluX2xlbiwgb3V0LCBvdXRfb2ZmLCBvdXRfbGVuKSB7CiAgcmV0dXJuIHRoaXMuX3dyaXRlKHRydWUsIGZsdXNoLCBpbnB1dCwgaW5fb2ZmLCBpbl9sZW4sIG91dCwgb3V0X29mZiwgb3V0X2xlbik7Cn07CgpabGliLnByb3RvdHlwZS53cml0ZVN5bmMgPSBmdW5jdGlvbiAoZmx1c2gsIGlucHV0LCBpbl9vZmYsIGluX2xlbiwgb3V0LCBvdXRfb2ZmLCBvdXRfbGVuKSB7CiAgcmV0dXJuIHRoaXMuX3dyaXRlKGZhbHNlLCBmbHVzaCwgaW5wdXQsIGluX29mZiwgaW5fbGVuLCBvdXQsIG91dF9vZmYsIG91dF9sZW4pOwp9OwoKWmxpYi5wcm90b3R5cGUuX3dyaXRlID0gZnVuY3Rpb24gKGFzeW5jLCBmbHVzaCwgaW5wdXQsIGluX29mZiwgaW5fbGVuLCBvdXQsIG91dF9vZmYsIG91dF9sZW4pIHsKICBhc3NlcnQuZXF1YWwoYXJndW1lbnRzLmxlbmd0aCwgOCk7CgogIGFzc2VydCh0aGlzLmluaXRfZG9uZSwgJ3dyaXRlIGJlZm9yZSBpbml0Jyk7CiAgYXNzZXJ0KHRoaXMubW9kZSAhPT0gZXhwb3J0cy5OT05FLCAnYWxyZWFkeSBmaW5hbGl6ZWQnKTsKICBhc3NlcnQuZXF1YWwoZmFsc2UsIHRoaXMud3JpdGVfaW5fcHJvZ3Jlc3MsICd3cml0ZSBhbHJlYWR5IGluIHByb2dyZXNzJyk7CiAgYXNzZXJ0LmVxdWFsKGZhbHNlLCB0aGlzLnBlbmRpbmdfY2xvc2UsICdjbG9zZSBpcyBwZW5kaW5nJyk7CgogIHRoaXMud3JpdGVfaW5fcHJvZ3Jlc3MgPSB0cnVlOwoKICBhc3NlcnQuZXF1YWwoZmFsc2UsIGZsdXNoID09PSB1bmRlZmluZWQsICdtdXN0IHByb3ZpZGUgZmx1c2ggdmFsdWUnKTsKCiAgdGhpcy53cml0ZV9pbl9wcm9ncmVzcyA9IHRydWU7CgogIGlmIChmbHVzaCAhPT0gZXhwb3J0cy5aX05PX0ZMVVNIICYmIGZsdXNoICE9PSBleHBvcnRzLlpfUEFSVElBTF9GTFVTSCAmJiBmbHVzaCAhPT0gZXhwb3J0cy5aX1NZTkNfRkxVU0ggJiYgZmx1c2ggIT09IGV4cG9ydHMuWl9GVUxMX0ZMVVNIICYmIGZsdXNoICE9PSBleHBvcnRzLlpfRklOSVNIICYmIGZsdXNoICE9PSBleHBvcnRzLlpfQkxPQ0spIHsKICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBmbHVzaCB2YWx1ZScpOwogIH0KCiAgaWYgKGlucHV0ID09IG51bGwpIHsKICAgIGlucHV0ID0gQnVmZmVyLmFsbG9jKDApOwogICAgaW5fbGVuID0gMDsKICAgIGluX29mZiA9IDA7CiAgfQoKICB0aGlzLnN0cm0uYXZhaWxfaW4gPSBpbl9sZW47CiAgdGhpcy5zdHJtLmlucHV0ID0gaW5wdXQ7CiAgdGhpcy5zdHJtLm5leHRfaW4gPSBpbl9vZmY7CiAgdGhpcy5zdHJtLmF2YWlsX291dCA9IG91dF9sZW47CiAgdGhpcy5zdHJtLm91dHB1dCA9IG91dDsKICB0aGlzLnN0cm0ubmV4dF9vdXQgPSBvdXRfb2ZmOwogIHRoaXMuZmx1c2ggPSBmbHVzaDsKCiAgaWYgKCFhc3luYykgewogICAgLy8gc3luYyB2ZXJzaW9uCiAgICB0aGlzLl9wcm9jZXNzKCk7CgogICAgaWYgKHRoaXMuX2NoZWNrRXJyb3IoKSkgewogICAgICByZXR1cm4gdGhpcy5fYWZ0ZXJTeW5jKCk7CiAgICB9CiAgICByZXR1cm47CiAgfQoKICAvLyBhc3luYyB2ZXJzaW9uCiAgdmFyIHNlbGYgPSB0aGlzOwogIHByb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgc2VsZi5fcHJvY2VzcygpOwogICAgc2VsZi5fYWZ0ZXIoKTsKICB9KTsKCiAgcmV0dXJuIHRoaXM7Cn07CgpabGliLnByb3RvdHlwZS5fYWZ0ZXJTeW5jID0gZnVuY3Rpb24gKCkgewogIHZhciBhdmFpbF9vdXQgPSB0aGlzLnN0cm0uYXZhaWxfb3V0OwogIHZhciBhdmFpbF9pbiA9IHRoaXMuc3RybS5hdmFpbF9pbjsKCiAgdGhpcy53cml0ZV9pbl9wcm9ncmVzcyA9IGZhbHNlOwoKICByZXR1cm4gW2F2YWlsX2luLCBhdmFpbF9vdXRdOwp9OwoKWmxpYi5wcm90b3R5cGUuX3Byb2Nlc3MgPSBmdW5jdGlvbiAoKSB7CiAgdmFyIG5leHRfZXhwZWN0ZWRfaGVhZGVyX2J5dGUgPSBudWxsOwoKICAvLyBJZiB0aGUgYXZhaWxfb3V0IGlzIGxlZnQgYXQgMCwgdGhlbiBpdCBtZWFucyB0aGF0IGl0IHJhbiBvdXQKICAvLyBvZiByb29tLiAgSWYgdGhlcmUgd2FzIGF2YWlsX291dCBsZWZ0IG92ZXIsIHRoZW4gaXQgbWVhbnMKICAvLyB0aGF0IGFsbCBvZiB0aGUgaW5wdXQgd2FzIGNvbnN1bWVkLgogIHN3aXRjaCAodGhpcy5tb2RlKSB7CiAgICBjYXNlIGV4cG9ydHMuREVGTEFURToKICAgIGNhc2UgZXhwb3J0cy5HWklQOgogICAgY2FzZSBleHBvcnRzLkRFRkxBVEVSQVc6CiAgICAgIHRoaXMuZXJyID0gemxpYl9kZWZsYXRlLmRlZmxhdGUodGhpcy5zdHJtLCB0aGlzLmZsdXNoKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIGV4cG9ydHMuVU5aSVA6CiAgICAgIGlmICh0aGlzLnN0cm0uYXZhaWxfaW4gPiAwKSB7CiAgICAgICAgbmV4dF9leHBlY3RlZF9oZWFkZXJfYnl0ZSA9IHRoaXMuc3RybS5uZXh0X2luOwogICAgICB9CgogICAgICBzd2l0Y2ggKHRoaXMuZ3ppcF9pZF9ieXRlc19yZWFkKSB7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgaWYgKG5leHRfZXhwZWN0ZWRfaGVhZGVyX2J5dGUgPT09IG51bGwpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CgogICAgICAgICAgaWYgKHRoaXMuc3RybS5pbnB1dFtuZXh0X2V4cGVjdGVkX2hlYWRlcl9ieXRlXSA9PT0gR1pJUF9IRUFERVJfSUQxKSB7CiAgICAgICAgICAgIHRoaXMuZ3ppcF9pZF9ieXRlc19yZWFkID0gMTsKICAgICAgICAgICAgbmV4dF9leHBlY3RlZF9oZWFkZXJfYnl0ZSsrOwoKICAgICAgICAgICAgaWYgKHRoaXMuc3RybS5hdmFpbF9pbiA9PT0gMSkgewogICAgICAgICAgICAgIC8vIFRoZSBvbmx5IGF2YWlsYWJsZSBieXRlIHdhcyBhbHJlYWR5IHJlYWQuCiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMubW9kZSA9IGV4cG9ydHMuSU5GTEFURTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CgogICAgICAgIC8vIGZhbGx0aHJvdWdoCiAgICAgICAgY2FzZSAxOgogICAgICAgICAgaWYgKG5leHRfZXhwZWN0ZWRfaGVhZGVyX2J5dGUgPT09IG51bGwpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CgogICAgICAgICAgaWYgKHRoaXMuc3RybS5pbnB1dFtuZXh0X2V4cGVjdGVkX2hlYWRlcl9ieXRlXSA9PT0gR1pJUF9IRUFERVJfSUQyKSB7CiAgICAgICAgICAgIHRoaXMuZ3ppcF9pZF9ieXRlc19yZWFkID0gMjsKICAgICAgICAgICAgdGhpcy5tb2RlID0gZXhwb3J0cy5HVU5aSVA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBhY3R1YWwgZGlmZmVyZW5jZSBiZXR3ZWVuIElORkxBVEUgYW5kIElORkxBVEVSQVcKICAgICAgICAgICAgLy8gKGFmdGVyIGluaXRpYWxpemF0aW9uKS4KICAgICAgICAgICAgdGhpcy5tb2RlID0gZXhwb3J0cy5JTkZMQVRFOwogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgbnVtYmVyIG9mIGd6aXAgbWFnaWMgbnVtYmVyIGJ5dGVzIHJlYWQnKTsKICAgICAgfQoKICAgIC8vIGZhbGx0aHJvdWdoCiAgICBjYXNlIGV4cG9ydHMuSU5GTEFURToKICAgIGNhc2UgZXhwb3J0cy5HVU5aSVA6CiAgICBjYXNlIGV4cG9ydHMuSU5GTEFURVJBVzoKICAgICAgdGhpcy5lcnIgPSB6bGliX2luZmxhdGUuaW5mbGF0ZSh0aGlzLnN0cm0sIHRoaXMuZmx1c2gKCiAgICAgIC8vIElmIGRhdGEgd2FzIGVuY29kZWQgd2l0aCBkaWN0aW9uYXJ5CiAgICAgICk7aWYgKHRoaXMuZXJyID09PSBleHBvcnRzLlpfTkVFRF9ESUNUICYmIHRoaXMuZGljdGlvbmFyeSkgewogICAgICAgIC8vIExvYWQgaXQKICAgICAgICB0aGlzLmVyciA9IHpsaWJfaW5mbGF0ZS5pbmZsYXRlU2V0RGljdGlvbmFyeSh0aGlzLnN0cm0sIHRoaXMuZGljdGlvbmFyeSk7CiAgICAgICAgaWYgKHRoaXMuZXJyID09PSBleHBvcnRzLlpfT0spIHsKICAgICAgICAgIC8vIEFuZCB0cnkgdG8gZGVjb2RlIGFnYWluCiAgICAgICAgICB0aGlzLmVyciA9IHpsaWJfaW5mbGF0ZS5pbmZsYXRlKHRoaXMuc3RybSwgdGhpcy5mbHVzaCk7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmVyciA9PT0gZXhwb3J0cy5aX0RBVEFfRVJST1IpIHsKICAgICAgICAgIC8vIEJvdGggaW5mbGF0ZVNldERpY3Rpb25hcnkoKSBhbmQgaW5mbGF0ZSgpIHJldHVybiBaX0RBVEFfRVJST1IuCiAgICAgICAgICAvLyBNYWtlIGl0IHBvc3NpYmxlIGZvciBBZnRlcigpIHRvIHRlbGwgYSBiYWQgZGljdGlvbmFyeSBmcm9tIGJhZAogICAgICAgICAgLy8gaW5wdXQuCiAgICAgICAgICB0aGlzLmVyciA9IGV4cG9ydHMuWl9ORUVEX0RJQ1Q7CiAgICAgICAgfQogICAgICB9CiAgICAgIHdoaWxlICh0aGlzLnN0cm0uYXZhaWxfaW4gPiAwICYmIHRoaXMubW9kZSA9PT0gZXhwb3J0cy5HVU5aSVAgJiYgdGhpcy5lcnIgPT09IGV4cG9ydHMuWl9TVFJFQU1fRU5EICYmIHRoaXMuc3RybS5uZXh0X2luWzBdICE9PSAweDAwKSB7CiAgICAgICAgLy8gQnl0ZXMgcmVtYWluIGluIGlucHV0IGJ1ZmZlci4gUGVyaGFwcyB0aGlzIGlzIGFub3RoZXIgY29tcHJlc3NlZAogICAgICAgIC8vIG1lbWJlciBpbiB0aGUgc2FtZSBhcmNoaXZlLCBvciBqdXN0IHRyYWlsaW5nIGdhcmJhZ2UuCiAgICAgICAgLy8gVHJhaWxpbmcgemVybyBieXRlcyBhcmUgb2theSwgdGhvdWdoLCBzaW5jZSB0aGV5IGFyZSBmcmVxdWVudGx5CiAgICAgICAgLy8gdXNlZCBmb3IgcGFkZGluZy4KCiAgICAgICAgdGhpcy5yZXNldCgpOwogICAgICAgIHRoaXMuZXJyID0gemxpYl9pbmZsYXRlLmluZmxhdGUodGhpcy5zdHJtLCB0aGlzLmZsdXNoKTsKICAgICAgfQogICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBtb2RlICcgKyB0aGlzLm1vZGUpOwogIH0KfTsKClpsaWIucHJvdG90eXBlLl9jaGVja0Vycm9yID0gZnVuY3Rpb24gKCkgewogIC8vIEFjY2VwdGFibGUgZXJyb3Igc3RhdGVzIGRlcGVuZCBvbiB0aGUgdHlwZSBvZiB6bGliIHN0cmVhbS4KICBzd2l0Y2ggKHRoaXMuZXJyKSB7CiAgICBjYXNlIGV4cG9ydHMuWl9PSzoKICAgIGNhc2UgZXhwb3J0cy5aX0JVRl9FUlJPUjoKICAgICAgaWYgKHRoaXMuc3RybS5hdmFpbF9vdXQgIT09IDAgJiYgdGhpcy5mbHVzaCA9PT0gZXhwb3J0cy5aX0ZJTklTSCkgewogICAgICAgIHRoaXMuX2Vycm9yKCd1bmV4cGVjdGVkIGVuZCBvZiBmaWxlJyk7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGJyZWFrOwogICAgY2FzZSBleHBvcnRzLlpfU1RSRUFNX0VORDoKICAgICAgLy8gbm9ybWFsIHN0YXR1c2VzLCBub3QgZmF0YWwKICAgICAgYnJlYWs7CiAgICBjYXNlIGV4cG9ydHMuWl9ORUVEX0RJQ1Q6CiAgICAgIGlmICh0aGlzLmRpY3Rpb25hcnkgPT0gbnVsbCkgewogICAgICAgIHRoaXMuX2Vycm9yKCdNaXNzaW5nIGRpY3Rpb25hcnknKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLl9lcnJvcignQmFkIGRpY3Rpb25hcnknKTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICBkZWZhdWx0OgogICAgICAvLyBzb21ldGhpbmcgZWxzZS4KICAgICAgdGhpcy5fZXJyb3IoJ1psaWIgZXJyb3InKTsKICAgICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgcmV0dXJuIHRydWU7Cn07CgpabGliLnByb3RvdHlwZS5fYWZ0ZXIgPSBmdW5jdGlvbiAoKSB7CiAgaWYgKCF0aGlzLl9jaGVja0Vycm9yKCkpIHsKICAgIHJldHVybjsKICB9CgogIHZhciBhdmFpbF9vdXQgPSB0aGlzLnN0cm0uYXZhaWxfb3V0OwogIHZhciBhdmFpbF9pbiA9IHRoaXMuc3RybS5hdmFpbF9pbjsKCiAgdGhpcy53cml0ZV9pbl9wcm9ncmVzcyA9IGZhbHNlOwoKICAvLyBjYWxsIHRoZSB3cml0ZSgpIGNiCiAgdGhpcy5jYWxsYmFjayhhdmFpbF9pbiwgYXZhaWxfb3V0KTsKCiAgaWYgKHRoaXMucGVuZGluZ19jbG9zZSkgewogICAgdGhpcy5jbG9zZSgpOwogIH0KfTsKClpsaWIucHJvdG90eXBlLl9lcnJvciA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7CiAgaWYgKHRoaXMuc3RybS5tc2cpIHsKICAgIG1lc3NhZ2UgPSB0aGlzLnN0cm0ubXNnOwogIH0KICB0aGlzLm9uZXJyb3IobWVzc2FnZSwgdGhpcy5lcnIKCiAgLy8gbm8gaG9wZSBvZiByZXNjdWUuCiAgKTt0aGlzLndyaXRlX2luX3Byb2dyZXNzID0gZmFsc2U7CiAgaWYgKHRoaXMucGVuZGluZ19jbG9zZSkgewogICAgdGhpcy5jbG9zZSgpOwogIH0KfTsKClpsaWIucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbiAod2luZG93Qml0cywgbGV2ZWwsIG1lbUxldmVsLCBzdHJhdGVneSwgZGljdGlvbmFyeSkgewogIGFzc2VydChhcmd1bWVudHMubGVuZ3RoID09PSA0IHx8IGFyZ3VtZW50cy5sZW5ndGggPT09IDUsICdpbml0KHdpbmRvd0JpdHMsIGxldmVsLCBtZW1MZXZlbCwgc3RyYXRlZ3ksIFtkaWN0aW9uYXJ5XSknKTsKCiAgYXNzZXJ0KHdpbmRvd0JpdHMgPj0gOCAmJiB3aW5kb3dCaXRzIDw9IDE1LCAnaW52YWxpZCB3aW5kb3dCaXRzJyk7CiAgYXNzZXJ0KGxldmVsID49IC0xICYmIGxldmVsIDw9IDksICdpbnZhbGlkIGNvbXByZXNzaW9uIGxldmVsJyk7CgogIGFzc2VydChtZW1MZXZlbCA+PSAxICYmIG1lbUxldmVsIDw9IDksICdpbnZhbGlkIG1lbWxldmVsJyk7CgogIGFzc2VydChzdHJhdGVneSA9PT0gZXhwb3J0cy5aX0ZJTFRFUkVEIHx8IHN0cmF0ZWd5ID09PSBleHBvcnRzLlpfSFVGRk1BTl9PTkxZIHx8IHN0cmF0ZWd5ID09PSBleHBvcnRzLlpfUkxFIHx8IHN0cmF0ZWd5ID09PSBleHBvcnRzLlpfRklYRUQgfHwgc3RyYXRlZ3kgPT09IGV4cG9ydHMuWl9ERUZBVUxUX1NUUkFURUdZLCAnaW52YWxpZCBzdHJhdGVneScpOwoKICB0aGlzLl9pbml0KGxldmVsLCB3aW5kb3dCaXRzLCBtZW1MZXZlbCwgc3RyYXRlZ3ksIGRpY3Rpb25hcnkpOwogIHRoaXMuX3NldERpY3Rpb25hcnkoKTsKfTsKClpsaWIucHJvdG90eXBlLnBhcmFtcyA9IGZ1bmN0aW9uICgpIHsKICB0aHJvdyBuZXcgRXJyb3IoJ2RlZmxhdGVQYXJhbXMgTm90IHN1cHBvcnRlZCcpOwp9OwoKWmxpYi5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbiAoKSB7CiAgdGhpcy5fcmVzZXQoKTsKICB0aGlzLl9zZXREaWN0aW9uYXJ5KCk7Cn07CgpabGliLnByb3RvdHlwZS5faW5pdCA9IGZ1bmN0aW9uIChsZXZlbCwgd2luZG93Qml0cywgbWVtTGV2ZWwsIHN0cmF0ZWd5LCBkaWN0aW9uYXJ5KSB7CiAgdGhpcy5sZXZlbCA9IGxldmVsOwogIHRoaXMud2luZG93Qml0cyA9IHdpbmRvd0JpdHM7CiAgdGhpcy5tZW1MZXZlbCA9IG1lbUxldmVsOwogIHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneTsKCiAgdGhpcy5mbHVzaCA9IGV4cG9ydHMuWl9OT19GTFVTSDsKCiAgdGhpcy5lcnIgPSBleHBvcnRzLlpfT0s7CgogIGlmICh0aGlzLm1vZGUgPT09IGV4cG9ydHMuR1pJUCB8fCB0aGlzLm1vZGUgPT09IGV4cG9ydHMuR1VOWklQKSB7CiAgICB0aGlzLndpbmRvd0JpdHMgKz0gMTY7CiAgfQoKICBpZiAodGhpcy5tb2RlID09PSBleHBvcnRzLlVOWklQKSB7CiAgICB0aGlzLndpbmRvd0JpdHMgKz0gMzI7CiAgfQoKICBpZiAodGhpcy5tb2RlID09PSBleHBvcnRzLkRFRkxBVEVSQVcgfHwgdGhpcy5tb2RlID09PSBleHBvcnRzLklORkxBVEVSQVcpIHsKICAgIHRoaXMud2luZG93Qml0cyA9IC0xICogdGhpcy53aW5kb3dCaXRzOwogIH0KCiAgdGhpcy5zdHJtID0gbmV3IFpzdHJlYW0oKTsKCiAgc3dpdGNoICh0aGlzLm1vZGUpIHsKICAgIGNhc2UgZXhwb3J0cy5ERUZMQVRFOgogICAgY2FzZSBleHBvcnRzLkdaSVA6CiAgICBjYXNlIGV4cG9ydHMuREVGTEFURVJBVzoKICAgICAgdGhpcy5lcnIgPSB6bGliX2RlZmxhdGUuZGVmbGF0ZUluaXQyKHRoaXMuc3RybSwgdGhpcy5sZXZlbCwgZXhwb3J0cy5aX0RFRkxBVEVELCB0aGlzLndpbmRvd0JpdHMsIHRoaXMubWVtTGV2ZWwsIHRoaXMuc3RyYXRlZ3kpOwogICAgICBicmVhazsKICAgIGNhc2UgZXhwb3J0cy5JTkZMQVRFOgogICAgY2FzZSBleHBvcnRzLkdVTlpJUDoKICAgIGNhc2UgZXhwb3J0cy5JTkZMQVRFUkFXOgogICAgY2FzZSBleHBvcnRzLlVOWklQOgogICAgICB0aGlzLmVyciA9IHpsaWJfaW5mbGF0ZS5pbmZsYXRlSW5pdDIodGhpcy5zdHJtLCB0aGlzLndpbmRvd0JpdHMpOwogICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBtb2RlICcgKyB0aGlzLm1vZGUpOwogIH0KCiAgaWYgKHRoaXMuZXJyICE9PSBleHBvcnRzLlpfT0spIHsKICAgIHRoaXMuX2Vycm9yKCdJbml0IGVycm9yJyk7CiAgfQoKICB0aGlzLmRpY3Rpb25hcnkgPSBkaWN0aW9uYXJ5OwoKICB0aGlzLndyaXRlX2luX3Byb2dyZXNzID0gZmFsc2U7CiAgdGhpcy5pbml0X2RvbmUgPSB0cnVlOwp9OwoKWmxpYi5wcm90b3R5cGUuX3NldERpY3Rpb25hcnkgPSBmdW5jdGlvbiAoKSB7CiAgaWYgKHRoaXMuZGljdGlvbmFyeSA9PSBudWxsKSB7CiAgICByZXR1cm47CiAgfQoKICB0aGlzLmVyciA9IGV4cG9ydHMuWl9PSzsKCiAgc3dpdGNoICh0aGlzLm1vZGUpIHsKICAgIGNhc2UgZXhwb3J0cy5ERUZMQVRFOgogICAgY2FzZSBleHBvcnRzLkRFRkxBVEVSQVc6CiAgICAgIHRoaXMuZXJyID0gemxpYl9kZWZsYXRlLmRlZmxhdGVTZXREaWN0aW9uYXJ5KHRoaXMuc3RybSwgdGhpcy5kaWN0aW9uYXJ5KTsKICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICBicmVhazsKICB9CgogIGlmICh0aGlzLmVyciAhPT0gZXhwb3J0cy5aX09LKSB7CiAgICB0aGlzLl9lcnJvcignRmFpbGVkIHRvIHNldCBkaWN0aW9uYXJ5Jyk7CiAgfQp9OwoKWmxpYi5wcm90b3R5cGUuX3Jlc2V0ID0gZnVuY3Rpb24gKCkgewogIHRoaXMuZXJyID0gZXhwb3J0cy5aX09LOwoKICBzd2l0Y2ggKHRoaXMubW9kZSkgewogICAgY2FzZSBleHBvcnRzLkRFRkxBVEU6CiAgICBjYXNlIGV4cG9ydHMuREVGTEFURVJBVzoKICAgIGNhc2UgZXhwb3J0cy5HWklQOgogICAgICB0aGlzLmVyciA9IHpsaWJfZGVmbGF0ZS5kZWZsYXRlUmVzZXQodGhpcy5zdHJtKTsKICAgICAgYnJlYWs7CiAgICBjYXNlIGV4cG9ydHMuSU5GTEFURToKICAgIGNhc2UgZXhwb3J0cy5JTkZMQVRFUkFXOgogICAgY2FzZSBleHBvcnRzLkdVTlpJUDoKICAgICAgdGhpcy5lcnIgPSB6bGliX2luZmxhdGUuaW5mbGF0ZVJlc2V0KHRoaXMuc3RybSk7CiAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgYnJlYWs7CiAgfQoKICBpZiAodGhpcy5lcnIgIT09IGV4cG9ydHMuWl9PSykgewogICAgdGhpcy5fZXJyb3IoJ0ZhaWxlZCB0byByZXNldCBzdHJlYW0nKTsKICB9Cn07CgpleHBvcnRzLlpsaWIgPSBabGliOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIsIF9fd2VicGFja19yZXF1aXJlX18oMTEpKSkKCi8qKiovIH0pLAovKiAxNTEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpc0J1ZmZlcihhcmcpIHsKICByZXR1cm4gYXJnICYmIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnCiAgICAmJiB0eXBlb2YgYXJnLmNvcHkgPT09ICdmdW5jdGlvbicKICAgICYmIHR5cGVvZiBhcmcuZmlsbCA9PT0gJ2Z1bmN0aW9uJwogICAgJiYgdHlwZW9mIGFyZy5yZWFkVUludDggPT09ICdmdW5jdGlvbic7Cn0KCi8qKiovIH0pLAovKiAxNTIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKaWYgKHR5cGVvZiBPYmplY3QuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7CiAgLy8gaW1wbGVtZW50YXRpb24gZnJvbSBzdGFuZGFyZCBub2RlLmpzICd1dGlsJyBtb2R1bGUKICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3RvcikgewogICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3IKICAgIGN0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShzdXBlckN0b3IucHJvdG90eXBlLCB7CiAgICAgIGNvbnN0cnVjdG9yOiB7CiAgICAgICAgdmFsdWU6IGN0b3IsCiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCiAgICAgICAgd3JpdGFibGU6IHRydWUsCiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICAgIH0KICAgIH0pOwogIH07Cn0gZWxzZSB7CiAgLy8gb2xkIHNjaG9vbCBzaGltIGZvciBvbGQgYnJvd3NlcnMKICBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGluaGVyaXRzKGN0b3IsIHN1cGVyQ3RvcikgewogICAgY3Rvci5zdXBlcl8gPSBzdXBlckN0b3IKICAgIHZhciBUZW1wQ3RvciA9IGZ1bmN0aW9uICgpIHt9CiAgICBUZW1wQ3Rvci5wcm90b3R5cGUgPSBzdXBlckN0b3IucHJvdG90eXBlCiAgICBjdG9yLnByb3RvdHlwZSA9IG5ldyBUZW1wQ3RvcigpCiAgICBjdG9yLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3IKICB9Cn0KCgovKioqLyB9KSwKLyogMTUzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgovLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KLy8KLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCi8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCi8vCi8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAovLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0Ci8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKLy8KLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQovLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQovLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCi8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgovLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKZnVuY3Rpb24gWlN0cmVhbSgpIHsKICAvKiBuZXh0IGlucHV0IGJ5dGUgKi8KICB0aGlzLmlucHV0ID0gbnVsbDsgLy8gSlMgc3BlY2lmaWMsIGJlY2F1c2Ugd2UgaGF2ZSBubyBwb2ludGVycwogIHRoaXMubmV4dF9pbiA9IDA7CiAgLyogbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSBhdCBpbnB1dCAqLwogIHRoaXMuYXZhaWxfaW4gPSAwOwogIC8qIHRvdGFsIG51bWJlciBvZiBpbnB1dCBieXRlcyByZWFkIHNvIGZhciAqLwogIHRoaXMudG90YWxfaW4gPSAwOwogIC8qIG5leHQgb3V0cHV0IGJ5dGUgc2hvdWxkIGJlIHB1dCB0aGVyZSAqLwogIHRoaXMub3V0cHV0ID0gbnVsbDsgLy8gSlMgc3BlY2lmaWMsIGJlY2F1c2Ugd2UgaGF2ZSBubyBwb2ludGVycwogIHRoaXMubmV4dF9vdXQgPSAwOwogIC8qIHJlbWFpbmluZyBmcmVlIHNwYWNlIGF0IG91dHB1dCAqLwogIHRoaXMuYXZhaWxfb3V0ID0gMDsKICAvKiB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgb3V0cHV0IHNvIGZhciAqLwogIHRoaXMudG90YWxfb3V0ID0gMDsKICAvKiBsYXN0IGVycm9yIG1lc3NhZ2UsIE5VTEwgaWYgbm8gZXJyb3IgKi8KICB0aGlzLm1zZyA9ICcnLypaX05VTEwqLzsKICAvKiBub3QgdmlzaWJsZSBieSBhcHBsaWNhdGlvbnMgKi8KICB0aGlzLnN0YXRlID0gbnVsbDsKICAvKiBiZXN0IGd1ZXNzIGFib3V0IHRoZSBkYXRhIHR5cGU6IGJpbmFyeSBvciB0ZXh0ICovCiAgdGhpcy5kYXRhX3R5cGUgPSAyLypaX1VOS05PV04qLzsKICAvKiBhZGxlcjMyIHZhbHVlIG9mIHRoZSB1bmNvbXByZXNzZWQgZGF0YSAqLwogIHRoaXMuYWRsZXIgPSAwOwp9Cgptb2R1bGUuZXhwb3J0cyA9IFpTdHJlYW07CgoKLyoqKi8gfSksCi8qIDE1NCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCi8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCi8vCi8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCi8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwovLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgovLwovLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAovLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6Ci8vCi8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90Ci8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgovLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQovLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCnZhciB1dGlscyAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzNCk7CnZhciB0cmVlcyAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNTUpOwp2YXIgYWRsZXIzMiA9IF9fd2VicGFja19yZXF1aXJlX18oODkpOwp2YXIgY3JjMzIgICA9IF9fd2VicGFja19yZXF1aXJlX18oOTApOwp2YXIgbXNnICAgICA9IF9fd2VicGFja19yZXF1aXJlX18oMTU2KTsKCi8qIFB1YmxpYyBjb25zdGFudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoKLyogQWxsb3dlZCBmbHVzaCB2YWx1ZXM7IHNlZSBkZWZsYXRlKCkgYW5kIGluZmxhdGUoKSBiZWxvdyBmb3IgZGV0YWlscyAqLwp2YXIgWl9OT19GTFVTSCAgICAgID0gMDsKdmFyIFpfUEFSVElBTF9GTFVTSCA9IDE7Ci8vdmFyIFpfU1lOQ19GTFVTSCAgICA9IDI7CnZhciBaX0ZVTExfRkxVU0ggICAgPSAzOwp2YXIgWl9GSU5JU0ggICAgICAgID0gNDsKdmFyIFpfQkxPQ0sgICAgICAgICA9IDU7Ci8vdmFyIFpfVFJFRVMgICAgICAgICA9IDY7CgoKLyogUmV0dXJuIGNvZGVzIGZvciB0aGUgY29tcHJlc3Npb24vZGVjb21wcmVzc2lvbiBmdW5jdGlvbnMuIE5lZ2F0aXZlIHZhbHVlcwogKiBhcmUgZXJyb3JzLCBwb3NpdGl2ZSB2YWx1ZXMgYXJlIHVzZWQgZm9yIHNwZWNpYWwgYnV0IG5vcm1hbCBldmVudHMuCiAqLwp2YXIgWl9PSyAgICAgICAgICAgID0gMDsKdmFyIFpfU1RSRUFNX0VORCAgICA9IDE7Ci8vdmFyIFpfTkVFRF9ESUNUICAgICA9IDI7Ci8vdmFyIFpfRVJSTk8gICAgICAgICA9IC0xOwp2YXIgWl9TVFJFQU1fRVJST1IgID0gLTI7CnZhciBaX0RBVEFfRVJST1IgICAgPSAtMzsKLy92YXIgWl9NRU1fRVJST1IgICAgID0gLTQ7CnZhciBaX0JVRl9FUlJPUiAgICAgPSAtNTsKLy92YXIgWl9WRVJTSU9OX0VSUk9SID0gLTY7CgoKLyogY29tcHJlc3Npb24gbGV2ZWxzICovCi8vdmFyIFpfTk9fQ09NUFJFU1NJT04gICAgICA9IDA7Ci8vdmFyIFpfQkVTVF9TUEVFRCAgICAgICAgICA9IDE7Ci8vdmFyIFpfQkVTVF9DT01QUkVTU0lPTiAgICA9IDk7CnZhciBaX0RFRkFVTFRfQ09NUFJFU1NJT04gPSAtMTsKCgp2YXIgWl9GSUxURVJFRCAgICAgICAgICAgID0gMTsKdmFyIFpfSFVGRk1BTl9PTkxZICAgICAgICA9IDI7CnZhciBaX1JMRSAgICAgICAgICAgICAgICAgPSAzOwp2YXIgWl9GSVhFRCAgICAgICAgICAgICAgID0gNDsKdmFyIFpfREVGQVVMVF9TVFJBVEVHWSAgICA9IDA7CgovKiBQb3NzaWJsZSB2YWx1ZXMgb2YgdGhlIGRhdGFfdHlwZSBmaWVsZCAodGhvdWdoIHNlZSBpbmZsYXRlKCkpICovCi8vdmFyIFpfQklOQVJZICAgICAgICAgICAgICA9IDA7Ci8vdmFyIFpfVEVYVCAgICAgICAgICAgICAgICA9IDE7Ci8vdmFyIFpfQVNDSUkgICAgICAgICAgICAgICA9IDE7IC8vID0gWl9URVhUCnZhciBaX1VOS05PV04gICAgICAgICAgICAgPSAyOwoKCi8qIFRoZSBkZWZsYXRlIGNvbXByZXNzaW9uIG1ldGhvZCAqLwp2YXIgWl9ERUZMQVRFRCAgPSA4OwoKLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8KCgp2YXIgTUFYX01FTV9MRVZFTCA9IDk7Ci8qIE1heGltdW0gdmFsdWUgZm9yIG1lbUxldmVsIGluIGRlZmxhdGVJbml0MiAqLwp2YXIgTUFYX1dCSVRTID0gMTU7Ci8qIDMySyBMWjc3IHdpbmRvdyAqLwp2YXIgREVGX01FTV9MRVZFTCA9IDg7CgoKdmFyIExFTkdUSF9DT0RFUyAgPSAyOTsKLyogbnVtYmVyIG9mIGxlbmd0aCBjb2Rlcywgbm90IGNvdW50aW5nIHRoZSBzcGVjaWFsIEVORF9CTE9DSyBjb2RlICovCnZhciBMSVRFUkFMUyAgICAgID0gMjU2OwovKiBudW1iZXIgb2YgbGl0ZXJhbCBieXRlcyAwLi4yNTUgKi8KdmFyIExfQ09ERVMgICAgICAgPSBMSVRFUkFMUyArIDEgKyBMRU5HVEhfQ09ERVM7Ci8qIG51bWJlciBvZiBMaXRlcmFsIG9yIExlbmd0aCBjb2RlcywgaW5jbHVkaW5nIHRoZSBFTkRfQkxPQ0sgY29kZSAqLwp2YXIgRF9DT0RFUyAgICAgICA9IDMwOwovKiBudW1iZXIgb2YgZGlzdGFuY2UgY29kZXMgKi8KdmFyIEJMX0NPREVTICAgICAgPSAxOTsKLyogbnVtYmVyIG9mIGNvZGVzIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGJpdCBsZW5ndGhzICovCnZhciBIRUFQX1NJWkUgICAgID0gMiAqIExfQ09ERVMgKyAxOwovKiBtYXhpbXVtIGhlYXAgc2l6ZSAqLwp2YXIgTUFYX0JJVFMgID0gMTU7Ci8qIEFsbCBjb2RlcyBtdXN0IG5vdCBleGNlZWQgTUFYX0JJVFMgYml0cyAqLwoKdmFyIE1JTl9NQVRDSCA9IDM7CnZhciBNQVhfTUFUQ0ggPSAyNTg7CnZhciBNSU5fTE9PS0FIRUFEID0gKE1BWF9NQVRDSCArIE1JTl9NQVRDSCArIDEpOwoKdmFyIFBSRVNFVF9ESUNUID0gMHgyMDsKCnZhciBJTklUX1NUQVRFID0gNDI7CnZhciBFWFRSQV9TVEFURSA9IDY5Owp2YXIgTkFNRV9TVEFURSA9IDczOwp2YXIgQ09NTUVOVF9TVEFURSA9IDkxOwp2YXIgSENSQ19TVEFURSA9IDEwMzsKdmFyIEJVU1lfU1RBVEUgPSAxMTM7CnZhciBGSU5JU0hfU1RBVEUgPSA2NjY7Cgp2YXIgQlNfTkVFRF9NT1JFICAgICAgPSAxOyAvKiBibG9jayBub3QgY29tcGxldGVkLCBuZWVkIG1vcmUgaW5wdXQgb3IgbW9yZSBvdXRwdXQgKi8KdmFyIEJTX0JMT0NLX0RPTkUgICAgID0gMjsgLyogYmxvY2sgZmx1c2ggcGVyZm9ybWVkICovCnZhciBCU19GSU5JU0hfU1RBUlRFRCA9IDM7IC8qIGZpbmlzaCBzdGFydGVkLCBuZWVkIG9ubHkgbW9yZSBvdXRwdXQgYXQgbmV4dCBkZWZsYXRlICovCnZhciBCU19GSU5JU0hfRE9ORSAgICA9IDQ7IC8qIGZpbmlzaCBkb25lLCBhY2NlcHQgbm8gbW9yZSBpbnB1dCBvciBvdXRwdXQgKi8KCnZhciBPU19DT0RFID0gMHgwMzsgLy8gVW5peCA6KSAuIERvbid0IGRldGVjdCwgdXNlIHRoaXMgZGVmYXVsdC4KCmZ1bmN0aW9uIGVycihzdHJtLCBlcnJvckNvZGUpIHsKICBzdHJtLm1zZyA9IG1zZ1tlcnJvckNvZGVdOwogIHJldHVybiBlcnJvckNvZGU7Cn0KCmZ1bmN0aW9uIHJhbmsoZikgewogIHJldHVybiAoKGYpIDw8IDEpIC0gKChmKSA+IDQgPyA5IDogMCk7Cn0KCmZ1bmN0aW9uIHplcm8oYnVmKSB7IHZhciBsZW4gPSBidWYubGVuZ3RoOyB3aGlsZSAoLS1sZW4gPj0gMCkgeyBidWZbbGVuXSA9IDA7IH0gfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogRmx1c2ggYXMgbXVjaCBwZW5kaW5nIG91dHB1dCBhcyBwb3NzaWJsZS4gQWxsIGRlZmxhdGUoKSBvdXRwdXQgZ29lcwogKiB0aHJvdWdoIHRoaXMgZnVuY3Rpb24gc28gc29tZSBhcHBsaWNhdGlvbnMgbWF5IHdpc2ggdG8gbW9kaWZ5IGl0CiAqIHRvIGF2b2lkIGFsbG9jYXRpbmcgYSBsYXJnZSBzdHJtLT5vdXRwdXQgYnVmZmVyIGFuZCBjb3B5aW5nIGludG8gaXQuCiAqIChTZWUgYWxzbyByZWFkX2J1ZigpKS4KICovCmZ1bmN0aW9uIGZsdXNoX3BlbmRpbmcoc3RybSkgewogIHZhciBzID0gc3RybS5zdGF0ZTsKCiAgLy9fdHJfZmx1c2hfYml0cyhzKTsKICB2YXIgbGVuID0gcy5wZW5kaW5nOwogIGlmIChsZW4gPiBzdHJtLmF2YWlsX291dCkgewogICAgbGVuID0gc3RybS5hdmFpbF9vdXQ7CiAgfQogIGlmIChsZW4gPT09IDApIHsgcmV0dXJuOyB9CgogIHV0aWxzLmFycmF5U2V0KHN0cm0ub3V0cHV0LCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmdfb3V0LCBsZW4sIHN0cm0ubmV4dF9vdXQpOwogIHN0cm0ubmV4dF9vdXQgKz0gbGVuOwogIHMucGVuZGluZ19vdXQgKz0gbGVuOwogIHN0cm0udG90YWxfb3V0ICs9IGxlbjsKICBzdHJtLmF2YWlsX291dCAtPSBsZW47CiAgcy5wZW5kaW5nIC09IGxlbjsKICBpZiAocy5wZW5kaW5nID09PSAwKSB7CiAgICBzLnBlbmRpbmdfb3V0ID0gMDsKICB9Cn0KCgpmdW5jdGlvbiBmbHVzaF9ibG9ja19vbmx5KHMsIGxhc3QpIHsKICB0cmVlcy5fdHJfZmx1c2hfYmxvY2socywgKHMuYmxvY2tfc3RhcnQgPj0gMCA/IHMuYmxvY2tfc3RhcnQgOiAtMSksIHMuc3Ryc3RhcnQgLSBzLmJsb2NrX3N0YXJ0LCBsYXN0KTsKICBzLmJsb2NrX3N0YXJ0ID0gcy5zdHJzdGFydDsKICBmbHVzaF9wZW5kaW5nKHMuc3RybSk7Cn0KCgpmdW5jdGlvbiBwdXRfYnl0ZShzLCBiKSB7CiAgcy5wZW5kaW5nX2J1ZltzLnBlbmRpbmcrK10gPSBiOwp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBQdXQgYSBzaG9ydCBpbiB0aGUgcGVuZGluZyBidWZmZXIuIFRoZSAxNi1iaXQgdmFsdWUgaXMgcHV0IGluIE1TQiBvcmRlci4KICogSU4gYXNzZXJ0aW9uOiB0aGUgc3RyZWFtIHN0YXRlIGlzIGNvcnJlY3QgYW5kIHRoZXJlIGlzIGVub3VnaCByb29tIGluCiAqIHBlbmRpbmdfYnVmLgogKi8KZnVuY3Rpb24gcHV0U2hvcnRNU0IocywgYikgewovLyAgcHV0X2J5dGUocywgKEJ5dGUpKGIgPj4gOCkpOwovLyAgcHV0X2J5dGUocywgKEJ5dGUpKGIgJiAweGZmKSk7CiAgcy5wZW5kaW5nX2J1ZltzLnBlbmRpbmcrK10gPSAoYiA+Pj4gOCkgJiAweGZmOwogIHMucGVuZGluZ19idWZbcy5wZW5kaW5nKytdID0gYiAmIDB4ZmY7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogUmVhZCBhIG5ldyBidWZmZXIgZnJvbSB0aGUgY3VycmVudCBpbnB1dCBzdHJlYW0sIHVwZGF0ZSB0aGUgYWRsZXIzMgogKiBhbmQgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHJlYWQuICBBbGwgZGVmbGF0ZSgpIGlucHV0IGdvZXMgdGhyb3VnaAogKiB0aGlzIGZ1bmN0aW9uIHNvIHNvbWUgYXBwbGljYXRpb25zIG1heSB3aXNoIHRvIG1vZGlmeSBpdCB0byBhdm9pZAogKiBhbGxvY2F0aW5nIGEgbGFyZ2Ugc3RybS0+aW5wdXQgYnVmZmVyIGFuZCBjb3B5aW5nIGZyb20gaXQuCiAqIChTZWUgYWxzbyBmbHVzaF9wZW5kaW5nKCkpLgogKi8KZnVuY3Rpb24gcmVhZF9idWYoc3RybSwgYnVmLCBzdGFydCwgc2l6ZSkgewogIHZhciBsZW4gPSBzdHJtLmF2YWlsX2luOwoKICBpZiAobGVuID4gc2l6ZSkgeyBsZW4gPSBzaXplOyB9CiAgaWYgKGxlbiA9PT0gMCkgeyByZXR1cm4gMDsgfQoKICBzdHJtLmF2YWlsX2luIC09IGxlbjsKCiAgLy8gem1lbWNweShidWYsIHN0cm0tPm5leHRfaW4sIGxlbik7CiAgdXRpbHMuYXJyYXlTZXQoYnVmLCBzdHJtLmlucHV0LCBzdHJtLm5leHRfaW4sIGxlbiwgc3RhcnQpOwogIGlmIChzdHJtLnN0YXRlLndyYXAgPT09IDEpIHsKICAgIHN0cm0uYWRsZXIgPSBhZGxlcjMyKHN0cm0uYWRsZXIsIGJ1ZiwgbGVuLCBzdGFydCk7CiAgfQoKICBlbHNlIGlmIChzdHJtLnN0YXRlLndyYXAgPT09IDIpIHsKICAgIHN0cm0uYWRsZXIgPSBjcmMzMihzdHJtLmFkbGVyLCBidWYsIGxlbiwgc3RhcnQpOwogIH0KCiAgc3RybS5uZXh0X2luICs9IGxlbjsKICBzdHJtLnRvdGFsX2luICs9IGxlbjsKCiAgcmV0dXJuIGxlbjsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBTZXQgbWF0Y2hfc3RhcnQgdG8gdGhlIGxvbmdlc3QgbWF0Y2ggc3RhcnRpbmcgYXQgdGhlIGdpdmVuIHN0cmluZyBhbmQKICogcmV0dXJuIGl0cyBsZW5ndGguIE1hdGNoZXMgc2hvcnRlciBvciBlcXVhbCB0byBwcmV2X2xlbmd0aCBhcmUgZGlzY2FyZGVkLAogKiBpbiB3aGljaCBjYXNlIHRoZSByZXN1bHQgaXMgZXF1YWwgdG8gcHJldl9sZW5ndGggYW5kIG1hdGNoX3N0YXJ0IGlzCiAqIGdhcmJhZ2UuCiAqIElOIGFzc2VydGlvbnM6IGN1cl9tYXRjaCBpcyB0aGUgaGVhZCBvZiB0aGUgaGFzaCBjaGFpbiBmb3IgdGhlIGN1cnJlbnQKICogICBzdHJpbmcgKHN0cnN0YXJ0KSBhbmQgaXRzIGRpc3RhbmNlIGlzIDw9IE1BWF9ESVNULCBhbmQgcHJldl9sZW5ndGggPj0gMQogKiBPVVQgYXNzZXJ0aW9uOiB0aGUgbWF0Y2ggbGVuZ3RoIGlzIG5vdCBncmVhdGVyIHRoYW4gcy0+bG9va2FoZWFkLgogKi8KZnVuY3Rpb24gbG9uZ2VzdF9tYXRjaChzLCBjdXJfbWF0Y2gpIHsKICB2YXIgY2hhaW5fbGVuZ3RoID0gcy5tYXhfY2hhaW5fbGVuZ3RoOyAgICAgIC8qIG1heCBoYXNoIGNoYWluIGxlbmd0aCAqLwogIHZhciBzY2FuID0gcy5zdHJzdGFydDsgLyogY3VycmVudCBzdHJpbmcgKi8KICB2YXIgbWF0Y2g7ICAgICAgICAgICAgICAgICAgICAgICAvKiBtYXRjaGVkIHN0cmluZyAqLwogIHZhciBsZW47ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIGN1cnJlbnQgbWF0Y2ggKi8KICB2YXIgYmVzdF9sZW4gPSBzLnByZXZfbGVuZ3RoOyAgICAgICAgICAgICAgLyogYmVzdCBtYXRjaCBsZW5ndGggc28gZmFyICovCiAgdmFyIG5pY2VfbWF0Y2ggPSBzLm5pY2VfbWF0Y2g7ICAgICAgICAgICAgIC8qIHN0b3AgaWYgbWF0Y2ggbG9uZyBlbm91Z2ggKi8KICB2YXIgbGltaXQgPSAocy5zdHJzdGFydCA+IChzLndfc2l6ZSAtIE1JTl9MT09LQUhFQUQpKSA/CiAgICAgIHMuc3Ryc3RhcnQgLSAocy53X3NpemUgLSBNSU5fTE9PS0FIRUFEKSA6IDAvKk5JTCovOwoKICB2YXIgX3dpbiA9IHMud2luZG93OyAvLyBzaG9ydGN1dAoKICB2YXIgd21hc2sgPSBzLndfbWFzazsKICB2YXIgcHJldiAgPSBzLnByZXY7CgogIC8qIFN0b3Agd2hlbiBjdXJfbWF0Y2ggYmVjb21lcyA8PSBsaW1pdC4gVG8gc2ltcGxpZnkgdGhlIGNvZGUsCiAgICogd2UgcHJldmVudCBtYXRjaGVzIHdpdGggdGhlIHN0cmluZyBvZiB3aW5kb3cgaW5kZXggMC4KICAgKi8KCiAgdmFyIHN0cmVuZCA9IHMuc3Ryc3RhcnQgKyBNQVhfTUFUQ0g7CiAgdmFyIHNjYW5fZW5kMSAgPSBfd2luW3NjYW4gKyBiZXN0X2xlbiAtIDFdOwogIHZhciBzY2FuX2VuZCAgID0gX3dpbltzY2FuICsgYmVzdF9sZW5dOwoKICAvKiBUaGUgY29kZSBpcyBvcHRpbWl6ZWQgZm9yIEhBU0hfQklUUyA+PSA4IGFuZCBNQVhfTUFUQ0gtMiBtdWx0aXBsZSBvZiAxNi4KICAgKiBJdCBpcyBlYXN5IHRvIGdldCByaWQgb2YgdGhpcyBvcHRpbWl6YXRpb24gaWYgbmVjZXNzYXJ5LgogICAqLwogIC8vIEFzc2VydChzLT5oYXNoX2JpdHMgPj0gOCAmJiBNQVhfTUFUQ0ggPT0gMjU4LCAiQ29kZSB0b28gY2xldmVyIik7CgogIC8qIERvIG5vdCB3YXN0ZSB0b28gbXVjaCB0aW1lIGlmIHdlIGFscmVhZHkgaGF2ZSBhIGdvb2QgbWF0Y2g6ICovCiAgaWYgKHMucHJldl9sZW5ndGggPj0gcy5nb29kX21hdGNoKSB7CiAgICBjaGFpbl9sZW5ndGggPj49IDI7CiAgfQogIC8qIERvIG5vdCBsb29rIGZvciBtYXRjaGVzIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBpbnB1dC4gVGhpcyBpcyBuZWNlc3NhcnkKICAgKiB0byBtYWtlIGRlZmxhdGUgZGV0ZXJtaW5pc3RpYy4KICAgKi8KICBpZiAobmljZV9tYXRjaCA+IHMubG9va2FoZWFkKSB7IG5pY2VfbWF0Y2ggPSBzLmxvb2thaGVhZDsgfQoKICAvLyBBc3NlcnQoKHVsZylzLT5zdHJzdGFydCA8PSBzLT53aW5kb3dfc2l6ZS1NSU5fTE9PS0FIRUFELCAibmVlZCBsb29rYWhlYWQiKTsKCiAgZG8gewogICAgLy8gQXNzZXJ0KGN1cl9tYXRjaCA8IHMtPnN0cnN0YXJ0LCAibm8gZnV0dXJlIik7CiAgICBtYXRjaCA9IGN1cl9tYXRjaDsKCiAgICAvKiBTa2lwIHRvIG5leHQgbWF0Y2ggaWYgdGhlIG1hdGNoIGxlbmd0aCBjYW5ub3QgaW5jcmVhc2UKICAgICAqIG9yIGlmIHRoZSBtYXRjaCBsZW5ndGggaXMgbGVzcyB0aGFuIDIuICBOb3RlIHRoYXQgdGhlIGNoZWNrcyBiZWxvdwogICAgICogZm9yIGluc3VmZmljaWVudCBsb29rYWhlYWQgb25seSBvY2N1ciBvY2Nhc2lvbmFsbHkgZm9yIHBlcmZvcm1hbmNlCiAgICAgKiByZWFzb25zLiAgVGhlcmVmb3JlIHVuaW5pdGlhbGl6ZWQgbWVtb3J5IHdpbGwgYmUgYWNjZXNzZWQsIGFuZAogICAgICogY29uZGl0aW9uYWwganVtcHMgd2lsbCBiZSBtYWRlIHRoYXQgZGVwZW5kIG9uIHRob3NlIHZhbHVlcy4KICAgICAqIEhvd2V2ZXIgdGhlIGxlbmd0aCBvZiB0aGUgbWF0Y2ggaXMgbGltaXRlZCB0byB0aGUgbG9va2FoZWFkLCBzbwogICAgICogdGhlIG91dHB1dCBvZiBkZWZsYXRlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgdW5pbml0aWFsaXplZCB2YWx1ZXMuCiAgICAgKi8KCiAgICBpZiAoX3dpblttYXRjaCArIGJlc3RfbGVuXSAgICAgIT09IHNjYW5fZW5kICB8fAogICAgICAgIF93aW5bbWF0Y2ggKyBiZXN0X2xlbiAtIDFdICE9PSBzY2FuX2VuZDEgfHwKICAgICAgICBfd2luW21hdGNoXSAgICAgICAgICAgICAgICAhPT0gX3dpbltzY2FuXSB8fAogICAgICAgIF93aW5bKyttYXRjaF0gICAgICAgICAgICAgICE9PSBfd2luW3NjYW4gKyAxXSkgewogICAgICBjb250aW51ZTsKICAgIH0KCiAgICAvKiBUaGUgY2hlY2sgYXQgYmVzdF9sZW4tMSBjYW4gYmUgcmVtb3ZlZCBiZWNhdXNlIGl0IHdpbGwgYmUgbWFkZQogICAgICogYWdhaW4gbGF0ZXIuIChUaGlzIGhldXJpc3RpYyBpcyBub3QgYWx3YXlzIGEgd2luLikKICAgICAqIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY29tcGFyZSBzY2FuWzJdIGFuZCBtYXRjaFsyXSBzaW5jZSB0aGV5CiAgICAgKiBhcmUgYWx3YXlzIGVxdWFsIHdoZW4gdGhlIG90aGVyIGJ5dGVzIG1hdGNoLCBnaXZlbiB0aGF0CiAgICAgKiB0aGUgaGFzaCBrZXlzIGFyZSBlcXVhbCBhbmQgdGhhdCBIQVNIX0JJVFMgPj0gOC4KICAgICAqLwogICAgc2NhbiArPSAyOwogICAgbWF0Y2grKzsKICAgIC8vIEFzc2VydCgqc2NhbiA9PSAqbWF0Y2gsICJtYXRjaFsyXT8iKTsKCiAgICAvKiBXZSBjaGVjayBmb3IgaW5zdWZmaWNpZW50IGxvb2thaGVhZCBvbmx5IGV2ZXJ5IDh0aCBjb21wYXJpc29uOwogICAgICogdGhlIDI1NnRoIGNoZWNrIHdpbGwgYmUgbWFkZSBhdCBzdHJzdGFydCsyNTguCiAgICAgKi8KICAgIGRvIHsKICAgICAgLypqc2hpbnQgbm9lbXB0eTpmYWxzZSovCiAgICB9IHdoaWxlIChfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICBfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICBfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICBfd2luWysrc2Nhbl0gPT09IF93aW5bKyttYXRjaF0gJiYgX3dpblsrK3NjYW5dID09PSBfd2luWysrbWF0Y2hdICYmCiAgICAgICAgICAgICBzY2FuIDwgc3RyZW5kKTsKCiAgICAvLyBBc3NlcnQoc2NhbiA8PSBzLT53aW5kb3crKHVuc2lnbmVkKShzLT53aW5kb3dfc2l6ZS0xKSwgIndpbGQgc2NhbiIpOwoKICAgIGxlbiA9IE1BWF9NQVRDSCAtIChzdHJlbmQgLSBzY2FuKTsKICAgIHNjYW4gPSBzdHJlbmQgLSBNQVhfTUFUQ0g7CgogICAgaWYgKGxlbiA+IGJlc3RfbGVuKSB7CiAgICAgIHMubWF0Y2hfc3RhcnQgPSBjdXJfbWF0Y2g7CiAgICAgIGJlc3RfbGVuID0gbGVuOwogICAgICBpZiAobGVuID49IG5pY2VfbWF0Y2gpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBzY2FuX2VuZDEgID0gX3dpbltzY2FuICsgYmVzdF9sZW4gLSAxXTsKICAgICAgc2Nhbl9lbmQgICA9IF93aW5bc2NhbiArIGJlc3RfbGVuXTsKICAgIH0KICB9IHdoaWxlICgoY3VyX21hdGNoID0gcHJldltjdXJfbWF0Y2ggJiB3bWFza10pID4gbGltaXQgJiYgLS1jaGFpbl9sZW5ndGggIT09IDApOwoKICBpZiAoYmVzdF9sZW4gPD0gcy5sb29rYWhlYWQpIHsKICAgIHJldHVybiBiZXN0X2xlbjsKICB9CiAgcmV0dXJuIHMubG9va2FoZWFkOwp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIEZpbGwgdGhlIHdpbmRvdyB3aGVuIHRoZSBsb29rYWhlYWQgYmVjb21lcyBpbnN1ZmZpY2llbnQuCiAqIFVwZGF0ZXMgc3Ryc3RhcnQgYW5kIGxvb2thaGVhZC4KICoKICogSU4gYXNzZXJ0aW9uOiBsb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFECiAqIE9VVCBhc3NlcnRpb25zOiBzdHJzdGFydCA8PSB3aW5kb3dfc2l6ZS1NSU5fTE9PS0FIRUFECiAqICAgIEF0IGxlYXN0IG9uZSBieXRlIGhhcyBiZWVuIHJlYWQsIG9yIGF2YWlsX2luID09IDA7IHJlYWRzIGFyZQogKiAgICBwZXJmb3JtZWQgZm9yIGF0IGxlYXN0IHR3byBieXRlcyAocmVxdWlyZWQgZm9yIHRoZSB6aXAgdHJhbnNsYXRlX2VvbAogKiAgICBvcHRpb24gLS0gbm90IHN1cHBvcnRlZCBoZXJlKS4KICovCmZ1bmN0aW9uIGZpbGxfd2luZG93KHMpIHsKICB2YXIgX3dfc2l6ZSA9IHMud19zaXplOwogIHZhciBwLCBuLCBtLCBtb3JlLCBzdHI7CgogIC8vQXNzZXJ0KHMtPmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQsICJhbHJlYWR5IGVub3VnaCBsb29rYWhlYWQiKTsKCiAgZG8gewogICAgbW9yZSA9IHMud2luZG93X3NpemUgLSBzLmxvb2thaGVhZCAtIHMuc3Ryc3RhcnQ7CgogICAgLy8gSlMgaW50cyBoYXZlIDMyIGJpdCwgYmxvY2sgYmVsb3cgbm90IG5lZWRlZAogICAgLyogRGVhbCB3aXRoICFAIyQlIDY0SyBsaW1pdDogKi8KICAgIC8vaWYgKHNpemVvZihpbnQpIDw9IDIpIHsKICAgIC8vICAgIGlmIChtb3JlID09IDAgJiYgcy0+c3Ryc3RhcnQgPT0gMCAmJiBzLT5sb29rYWhlYWQgPT0gMCkgewogICAgLy8gICAgICAgIG1vcmUgPSB3c2l6ZTsKICAgIC8vCiAgICAvLyAgfSBlbHNlIGlmIChtb3JlID09ICh1bnNpZ25lZCkoLTEpKSB7CiAgICAvLyAgICAgICAgLyogVmVyeSB1bmxpa2VseSwgYnV0IHBvc3NpYmxlIG9uIDE2IGJpdCBtYWNoaW5lIGlmCiAgICAvLyAgICAgICAgICogc3Ryc3RhcnQgPT0gMCAmJiBsb29rYWhlYWQgPT0gMSAoaW5wdXQgZG9uZSBhIGJ5dGUgYXQgdGltZSkKICAgIC8vICAgICAgICAgKi8KICAgIC8vICAgICAgICBtb3JlLS07CiAgICAvLyAgICB9CiAgICAvL30KCgogICAgLyogSWYgdGhlIHdpbmRvdyBpcyBhbG1vc3QgZnVsbCBhbmQgdGhlcmUgaXMgaW5zdWZmaWNpZW50IGxvb2thaGVhZCwKICAgICAqIG1vdmUgdGhlIHVwcGVyIGhhbGYgdG8gdGhlIGxvd2VyIG9uZSB0byBtYWtlIHJvb20gaW4gdGhlIHVwcGVyIGhhbGYuCiAgICAgKi8KICAgIGlmIChzLnN0cnN0YXJ0ID49IF93X3NpemUgKyAoX3dfc2l6ZSAtIE1JTl9MT09LQUhFQUQpKSB7CgogICAgICB1dGlscy5hcnJheVNldChzLndpbmRvdywgcy53aW5kb3csIF93X3NpemUsIF93X3NpemUsIDApOwogICAgICBzLm1hdGNoX3N0YXJ0IC09IF93X3NpemU7CiAgICAgIHMuc3Ryc3RhcnQgLT0gX3dfc2l6ZTsKICAgICAgLyogd2Ugbm93IGhhdmUgc3Ryc3RhcnQgPj0gTUFYX0RJU1QgKi8KICAgICAgcy5ibG9ja19zdGFydCAtPSBfd19zaXplOwoKICAgICAgLyogU2xpZGUgdGhlIGhhc2ggdGFibGUgKGNvdWxkIGJlIGF2b2lkZWQgd2l0aCAzMiBiaXQgdmFsdWVzCiAgICAgICBhdCB0aGUgZXhwZW5zZSBvZiBtZW1vcnkgdXNhZ2UpLiBXZSBzbGlkZSBldmVuIHdoZW4gbGV2ZWwgPT0gMAogICAgICAgdG8ga2VlcCB0aGUgaGFzaCB0YWJsZSBjb25zaXN0ZW50IGlmIHdlIHN3aXRjaCBiYWNrIHRvIGxldmVsID4gMAogICAgICAgbGF0ZXIuIChVc2luZyBsZXZlbCAwIHBlcm1hbmVudGx5IGlzIG5vdCBhbiBvcHRpbWFsIHVzYWdlIG9mCiAgICAgICB6bGliLCBzbyB3ZSBkb24ndCBjYXJlIGFib3V0IHRoaXMgcGF0aG9sb2dpY2FsIGNhc2UuKQogICAgICAgKi8KCiAgICAgIG4gPSBzLmhhc2hfc2l6ZTsKICAgICAgcCA9IG47CiAgICAgIGRvIHsKICAgICAgICBtID0gcy5oZWFkWy0tcF07CiAgICAgICAgcy5oZWFkW3BdID0gKG0gPj0gX3dfc2l6ZSA/IG0gLSBfd19zaXplIDogMCk7CiAgICAgIH0gd2hpbGUgKC0tbik7CgogICAgICBuID0gX3dfc2l6ZTsKICAgICAgcCA9IG47CiAgICAgIGRvIHsKICAgICAgICBtID0gcy5wcmV2Wy0tcF07CiAgICAgICAgcy5wcmV2W3BdID0gKG0gPj0gX3dfc2l6ZSA/IG0gLSBfd19zaXplIDogMCk7CiAgICAgICAgLyogSWYgbiBpcyBub3Qgb24gYW55IGhhc2ggY2hhaW4sIHByZXZbbl0gaXMgZ2FyYmFnZSBidXQKICAgICAgICAgKiBpdHMgdmFsdWUgd2lsbCBuZXZlciBiZSB1c2VkLgogICAgICAgICAqLwogICAgICB9IHdoaWxlICgtLW4pOwoKICAgICAgbW9yZSArPSBfd19zaXplOwogICAgfQogICAgaWYgKHMuc3RybS5hdmFpbF9pbiA9PT0gMCkgewogICAgICBicmVhazsKICAgIH0KCiAgICAvKiBJZiB0aGVyZSB3YXMgbm8gc2xpZGluZzoKICAgICAqICAgIHN0cnN0YXJ0IDw9IFdTSVpFK01BWF9ESVNULTEgJiYgbG9va2FoZWFkIDw9IE1JTl9MT09LQUhFQUQgLSAxICYmCiAgICAgKiAgICBtb3JlID09IHdpbmRvd19zaXplIC0gbG9va2FoZWFkIC0gc3Ryc3RhcnQKICAgICAqID0+IG1vcmUgPj0gd2luZG93X3NpemUgLSAoTUlOX0xPT0tBSEVBRC0xICsgV1NJWkUgKyBNQVhfRElTVC0xKQogICAgICogPT4gbW9yZSA+PSB3aW5kb3dfc2l6ZSAtIDIqV1NJWkUgKyAyCiAgICAgKiBJbiB0aGUgQklHX01FTSBvciBNTUFQIGNhc2UgKG5vdCB5ZXQgc3VwcG9ydGVkKSwKICAgICAqICAgd2luZG93X3NpemUgPT0gaW5wdXRfc2l6ZSArIE1JTl9MT09LQUhFQUQgICYmCiAgICAgKiAgIHN0cnN0YXJ0ICsgcy0+bG9va2FoZWFkIDw9IGlucHV0X3NpemUgPT4gbW9yZSA+PSBNSU5fTE9PS0FIRUFELgogICAgICogT3RoZXJ3aXNlLCB3aW5kb3dfc2l6ZSA9PSAyKldTSVpFIHNvIG1vcmUgPj0gMi4KICAgICAqIElmIHRoZXJlIHdhcyBzbGlkaW5nLCBtb3JlID49IFdTSVpFLiBTbyBpbiBhbGwgY2FzZXMsIG1vcmUgPj0gMi4KICAgICAqLwogICAgLy9Bc3NlcnQobW9yZSA+PSAyLCAibW9yZSA8IDIiKTsKICAgIG4gPSByZWFkX2J1ZihzLnN0cm0sIHMud2luZG93LCBzLnN0cnN0YXJ0ICsgcy5sb29rYWhlYWQsIG1vcmUpOwogICAgcy5sb29rYWhlYWQgKz0gbjsKCiAgICAvKiBJbml0aWFsaXplIHRoZSBoYXNoIHZhbHVlIG5vdyB0aGF0IHdlIGhhdmUgc29tZSBpbnB1dDogKi8KICAgIGlmIChzLmxvb2thaGVhZCArIHMuaW5zZXJ0ID49IE1JTl9NQVRDSCkgewogICAgICBzdHIgPSBzLnN0cnN0YXJ0IC0gcy5pbnNlcnQ7CiAgICAgIHMuaW5zX2ggPSBzLndpbmRvd1tzdHJdOwoKICAgICAgLyogVVBEQVRFX0hBU0gocywgcy0+aW5zX2gsIHMtPndpbmRvd1tzdHIgKyAxXSk7ICovCiAgICAgIHMuaW5zX2ggPSAoKHMuaW5zX2ggPDwgcy5oYXNoX3NoaWZ0KSBeIHMud2luZG93W3N0ciArIDFdKSAmIHMuaGFzaF9tYXNrOwovLyNpZiBNSU5fTUFUQ0ggIT0gMwovLyAgICAgICAgQ2FsbCB1cGRhdGVfaGFzaCgpIE1JTl9NQVRDSC0zIG1vcmUgdGltZXMKLy8jZW5kaWYKICAgICAgd2hpbGUgKHMuaW5zZXJ0KSB7CiAgICAgICAgLyogVVBEQVRFX0hBU0gocywgcy0+aW5zX2gsIHMtPndpbmRvd1tzdHIgKyBNSU5fTUFUQ0gtMV0pOyAqLwogICAgICAgIHMuaW5zX2ggPSAoKHMuaW5zX2ggPDwgcy5oYXNoX3NoaWZ0KSBeIHMud2luZG93W3N0ciArIE1JTl9NQVRDSCAtIDFdKSAmIHMuaGFzaF9tYXNrOwoKICAgICAgICBzLnByZXZbc3RyICYgcy53X21hc2tdID0gcy5oZWFkW3MuaW5zX2hdOwogICAgICAgIHMuaGVhZFtzLmluc19oXSA9IHN0cjsKICAgICAgICBzdHIrKzsKICAgICAgICBzLmluc2VydC0tOwogICAgICAgIGlmIChzLmxvb2thaGVhZCArIHMuaW5zZXJ0IDwgTUlOX01BVENIKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIC8qIElmIHRoZSB3aG9sZSBpbnB1dCBoYXMgbGVzcyB0aGFuIE1JTl9NQVRDSCBieXRlcywgaW5zX2ggaXMgZ2FyYmFnZSwKICAgICAqIGJ1dCB0aGlzIGlzIG5vdCBpbXBvcnRhbnQgc2luY2Ugb25seSBsaXRlcmFsIGJ5dGVzIHdpbGwgYmUgZW1pdHRlZC4KICAgICAqLwoKICB9IHdoaWxlIChzLmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQgJiYgcy5zdHJtLmF2YWlsX2luICE9PSAwKTsKCiAgLyogSWYgdGhlIFdJTl9JTklUIGJ5dGVzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgZGF0YSBoYXZlIG5ldmVyIGJlZW4KICAgKiB3cml0dGVuLCB0aGVuIHplcm8gdGhvc2UgYnl0ZXMgaW4gb3JkZXIgdG8gYXZvaWQgbWVtb3J5IGNoZWNrIHJlcG9ydHMgb2YKICAgKiB0aGUgdXNlIG9mIHVuaW5pdGlhbGl6ZWQgKG9yIHVuaW5pdGlhbGlzZWQgYXMgSnVsaWFuIHdyaXRlcykgYnl0ZXMgYnkKICAgKiB0aGUgbG9uZ2VzdCBtYXRjaCByb3V0aW5lcy4gIFVwZGF0ZSB0aGUgaGlnaCB3YXRlciBtYXJrIGZvciB0aGUgbmV4dAogICAqIHRpbWUgdGhyb3VnaCBoZXJlLiAgV0lOX0lOSVQgaXMgc2V0IHRvIE1BWF9NQVRDSCBzaW5jZSB0aGUgbG9uZ2VzdCBtYXRjaAogICAqIHJvdXRpbmVzIGFsbG93IHNjYW5uaW5nIHRvIHN0cnN0YXJ0ICsgTUFYX01BVENILCBpZ25vcmluZyBsb29rYWhlYWQuCiAgICovCi8vICBpZiAocy5oaWdoX3dhdGVyIDwgcy53aW5kb3dfc2l6ZSkgewovLyAgICB2YXIgY3VyciA9IHMuc3Ryc3RhcnQgKyBzLmxvb2thaGVhZDsKLy8gICAgdmFyIGluaXQgPSAwOwovLwovLyAgICBpZiAocy5oaWdoX3dhdGVyIDwgY3VycikgewovLyAgICAgIC8qIFByZXZpb3VzIGhpZ2ggd2F0ZXIgbWFyayBiZWxvdyBjdXJyZW50IGRhdGEgLS0gemVybyBXSU5fSU5JVAovLyAgICAgICAqIGJ5dGVzIG9yIHVwIHRvIGVuZCBvZiB3aW5kb3csIHdoaWNoZXZlciBpcyBsZXNzLgovLyAgICAgICAqLwovLyAgICAgIGluaXQgPSBzLndpbmRvd19zaXplIC0gY3VycjsKLy8gICAgICBpZiAoaW5pdCA+IFdJTl9JTklUKQovLyAgICAgICAgaW5pdCA9IFdJTl9JTklUOwovLyAgICAgIHptZW16ZXJvKHMtPndpbmRvdyArIGN1cnIsICh1bnNpZ25lZClpbml0KTsKLy8gICAgICBzLT5oaWdoX3dhdGVyID0gY3VyciArIGluaXQ7Ci8vICAgIH0KLy8gICAgZWxzZSBpZiAocy0+aGlnaF93YXRlciA8ICh1bGcpY3VyciArIFdJTl9JTklUKSB7Ci8vICAgICAgLyogSGlnaCB3YXRlciBtYXJrIGF0IG9yIGFib3ZlIGN1cnJlbnQgZGF0YSwgYnV0IGJlbG93IGN1cnJlbnQgZGF0YQovLyAgICAgICAqIHBsdXMgV0lOX0lOSVQgLS0gemVybyBvdXQgdG8gY3VycmVudCBkYXRhIHBsdXMgV0lOX0lOSVQsIG9yIHVwCi8vICAgICAgICogdG8gZW5kIG9mIHdpbmRvdywgd2hpY2hldmVyIGlzIGxlc3MuCi8vICAgICAgICovCi8vICAgICAgaW5pdCA9ICh1bGcpY3VyciArIFdJTl9JTklUIC0gcy0+aGlnaF93YXRlcjsKLy8gICAgICBpZiAoaW5pdCA+IHMtPndpbmRvd19zaXplIC0gcy0+aGlnaF93YXRlcikKLy8gICAgICAgIGluaXQgPSBzLT53aW5kb3dfc2l6ZSAtIHMtPmhpZ2hfd2F0ZXI7Ci8vICAgICAgem1lbXplcm8ocy0+d2luZG93ICsgcy0+aGlnaF93YXRlciwgKHVuc2lnbmVkKWluaXQpOwovLyAgICAgIHMtPmhpZ2hfd2F0ZXIgKz0gaW5pdDsKLy8gICAgfQovLyAgfQovLwovLyAgQXNzZXJ0KCh1bGcpcy0+c3Ryc3RhcnQgPD0gcy0+d2luZG93X3NpemUgLSBNSU5fTE9PS0FIRUFELAovLyAgICAibm90IGVub3VnaCByb29tIGZvciBzZWFyY2giKTsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIENvcHkgd2l0aG91dCBjb21wcmVzc2lvbiBhcyBtdWNoIGFzIHBvc3NpYmxlIGZyb20gdGhlIGlucHV0IHN0cmVhbSwgcmV0dXJuCiAqIHRoZSBjdXJyZW50IGJsb2NrIHN0YXRlLgogKiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGluc2VydCBuZXcgc3RyaW5ncyBpbiB0aGUgZGljdGlvbmFyeSBzaW5jZQogKiB1bmNvbXByZXNzaWJsZSBkYXRhIGlzIHByb2JhYmx5IG5vdCB1c2VmdWwuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZAogKiBvbmx5IGZvciB0aGUgbGV2ZWw9MCBjb21wcmVzc2lvbiBvcHRpb24uCiAqIE5PVEU6IHRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIG9wdGltaXplZCB0byBhdm9pZCBleHRyYSBjb3B5aW5nIGZyb20KICogd2luZG93IHRvIHBlbmRpbmdfYnVmLgogKi8KZnVuY3Rpb24gZGVmbGF0ZV9zdG9yZWQocywgZmx1c2gpIHsKICAvKiBTdG9yZWQgYmxvY2tzIGFyZSBsaW1pdGVkIHRvIDB4ZmZmZiBieXRlcywgcGVuZGluZ19idWYgaXMgbGltaXRlZAogICAqIHRvIHBlbmRpbmdfYnVmX3NpemUsIGFuZCBlYWNoIHN0b3JlZCBibG9jayBoYXMgYSA1IGJ5dGUgaGVhZGVyOgogICAqLwogIHZhciBtYXhfYmxvY2tfc2l6ZSA9IDB4ZmZmZjsKCiAgaWYgKG1heF9ibG9ja19zaXplID4gcy5wZW5kaW5nX2J1Zl9zaXplIC0gNSkgewogICAgbWF4X2Jsb2NrX3NpemUgPSBzLnBlbmRpbmdfYnVmX3NpemUgLSA1OwogIH0KCiAgLyogQ29weSBhcyBtdWNoIGFzIHBvc3NpYmxlIGZyb20gaW5wdXQgdG8gb3V0cHV0OiAqLwogIGZvciAoOzspIHsKICAgIC8qIEZpbGwgdGhlIHdpbmRvdyBhcyBtdWNoIGFzIHBvc3NpYmxlOiAqLwogICAgaWYgKHMubG9va2FoZWFkIDw9IDEpIHsKCiAgICAgIC8vQXNzZXJ0KHMtPnN0cnN0YXJ0IDwgcy0+d19zaXplK01BWF9ESVNUKHMpIHx8CiAgICAgIC8vICBzLT5ibG9ja19zdGFydCA+PSAobG9uZylzLT53X3NpemUsICJzbGlkZSB0b28gbGF0ZSIpOwovLyAgICAgIGlmICghKHMuc3Ryc3RhcnQgPCBzLndfc2l6ZSArIChzLndfc2l6ZSAtIE1JTl9MT09LQUhFQUQpIHx8Ci8vICAgICAgICBzLmJsb2NrX3N0YXJ0ID49IHMud19zaXplKSkgewovLyAgICAgICAgdGhyb3cgIG5ldyBFcnJvcigic2xpZGUgdG9vIGxhdGUiKTsKLy8gICAgICB9CgogICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgaWYgKHMubG9va2FoZWFkID09PSAwICYmIGZsdXNoID09PSBaX05PX0ZMVVNIKSB7CiAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgfQoKICAgICAgaWYgKHMubG9va2FoZWFkID09PSAwKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgICAgLyogZmx1c2ggdGhlIGN1cnJlbnQgYmxvY2sgKi8KICAgIH0KICAgIC8vQXNzZXJ0KHMtPmJsb2NrX3N0YXJ0ID49IDBMLCAiYmxvY2sgZ29uZSIpOwovLyAgICBpZiAocy5ibG9ja19zdGFydCA8IDApIHRocm93IG5ldyBFcnJvcigiYmxvY2sgZ29uZSIpOwoKICAgIHMuc3Ryc3RhcnQgKz0gcy5sb29rYWhlYWQ7CiAgICBzLmxvb2thaGVhZCA9IDA7CgogICAgLyogRW1pdCBhIHN0b3JlZCBibG9jayBpZiBwZW5kaW5nX2J1ZiB3aWxsIGJlIGZ1bGw6ICovCiAgICB2YXIgbWF4X3N0YXJ0ID0gcy5ibG9ja19zdGFydCArIG1heF9ibG9ja19zaXplOwoKICAgIGlmIChzLnN0cnN0YXJ0ID09PSAwIHx8IHMuc3Ryc3RhcnQgPj0gbWF4X3N0YXJ0KSB7CiAgICAgIC8qIHN0cnN0YXJ0ID09IDAgaXMgcG9zc2libGUgd2hlbiB3cmFwYXJvdW5kIG9uIDE2LWJpdCBtYWNoaW5lICovCiAgICAgIHMubG9va2FoZWFkID0gcy5zdHJzdGFydCAtIG1heF9zdGFydDsKICAgICAgcy5zdHJzdGFydCA9IG1heF9zdGFydDsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICAgIC8qKiovCgoKICAgIH0KICAgIC8qIEZsdXNoIGlmIHdlIG1heSBoYXZlIHRvIHNsaWRlLCBvdGhlcndpc2UgYmxvY2tfc3RhcnQgbWF5IGJlY29tZQogICAgICogbmVnYXRpdmUgYW5kIHRoZSBkYXRhIHdpbGwgYmUgZ29uZToKICAgICAqLwogICAgaWYgKHMuc3Ryc3RhcnQgLSBzLmJsb2NrX3N0YXJ0ID49IChzLndfc2l6ZSAtIE1JTl9MT09LQUhFQUQpKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgfQogICAgICAvKioqLwogICAgfQogIH0KCiAgcy5pbnNlcnQgPSAwOwoKICBpZiAoZmx1c2ggPT09IFpfRklOSVNIKSB7CiAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDEpOyAqKiovCiAgICBmbHVzaF9ibG9ja19vbmx5KHMsIHRydWUpOwogICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgcmV0dXJuIEJTX0ZJTklTSF9TVEFSVEVEOwogICAgfQogICAgLyoqKi8KICAgIHJldHVybiBCU19GSU5JU0hfRE9ORTsKICB9CgogIGlmIChzLnN0cnN0YXJ0ID4gcy5ibG9ja19zdGFydCkgewogICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICBpZiAocy5zdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgfQogICAgLyoqKi8KICB9CgogIHJldHVybiBCU19ORUVEX01PUkU7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBDb21wcmVzcyBhcyBtdWNoIGFzIHBvc3NpYmxlIGZyb20gdGhlIGlucHV0IHN0cmVhbSwgcmV0dXJuIHRoZSBjdXJyZW50CiAqIGJsb2NrIHN0YXRlLgogKiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IHBlcmZvcm0gbGF6eSBldmFsdWF0aW9uIG9mIG1hdGNoZXMgYW5kIGluc2VydHMKICogbmV3IHN0cmluZ3MgaW4gdGhlIGRpY3Rpb25hcnkgb25seSBmb3IgdW5tYXRjaGVkIHN0cmluZ3Mgb3IgZm9yIHNob3J0CiAqIG1hdGNoZXMuIEl0IGlzIHVzZWQgb25seSBmb3IgdGhlIGZhc3QgY29tcHJlc3Npb24gb3B0aW9ucy4KICovCmZ1bmN0aW9uIGRlZmxhdGVfZmFzdChzLCBmbHVzaCkgewogIHZhciBoYXNoX2hlYWQ7ICAgICAgICAvKiBoZWFkIG9mIHRoZSBoYXNoIGNoYWluICovCiAgdmFyIGJmbHVzaDsgICAgICAgICAgIC8qIHNldCBpZiBjdXJyZW50IGJsb2NrIG11c3QgYmUgZmx1c2hlZCAqLwoKICBmb3IgKDs7KSB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB3ZSBhbHdheXMgaGF2ZSBlbm91Z2ggbG9va2FoZWFkLCBleGNlcHQKICAgICAqIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0IGZpbGUuIFdlIG5lZWQgTUFYX01BVENIIGJ5dGVzCiAgICAgKiBmb3IgdGhlIG5leHQgbWF0Y2gsIHBsdXMgTUlOX01BVENIIGJ5dGVzIHRvIGluc2VydCB0aGUKICAgICAqIHN0cmluZyBmb2xsb3dpbmcgdGhlIG5leHQgbWF0Y2guCiAgICAgKi8KICAgIGlmIChzLmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQpIHsKICAgICAgZmlsbF93aW5kb3cocyk7CiAgICAgIGlmIChzLmxvb2thaGVhZCA8IE1JTl9MT09LQUhFQUQgJiYgZmx1c2ggPT09IFpfTk9fRkxVU0gpIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICAgIGlmIChzLmxvb2thaGVhZCA9PT0gMCkgewogICAgICAgIGJyZWFrOyAvKiBmbHVzaCB0aGUgY3VycmVudCBibG9jayAqLwogICAgICB9CiAgICB9CgogICAgLyogSW5zZXJ0IHRoZSBzdHJpbmcgd2luZG93W3N0cnN0YXJ0IC4uIHN0cnN0YXJ0KzJdIGluIHRoZQogICAgICogZGljdGlvbmFyeSwgYW5kIHNldCBoYXNoX2hlYWQgdG8gdGhlIGhlYWQgb2YgdGhlIGhhc2ggY2hhaW46CiAgICAgKi8KICAgIGhhc2hfaGVhZCA9IDAvKk5JTCovOwogICAgaWYgKHMubG9va2FoZWFkID49IE1JTl9NQVRDSCkgewogICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICBzLmluc19oID0gKChzLmluc19oIDw8IHMuaGFzaF9zaGlmdCkgXiBzLndpbmRvd1tzLnN0cnN0YXJ0ICsgTUlOX01BVENIIC0gMV0pICYgcy5oYXNoX21hc2s7CiAgICAgIGhhc2hfaGVhZCA9IHMucHJldltzLnN0cnN0YXJ0ICYgcy53X21hc2tdID0gcy5oZWFkW3MuaW5zX2hdOwogICAgICBzLmhlYWRbcy5pbnNfaF0gPSBzLnN0cnN0YXJ0OwogICAgICAvKioqLwogICAgfQoKICAgIC8qIEZpbmQgdGhlIGxvbmdlc3QgbWF0Y2gsIGRpc2NhcmRpbmcgdGhvc2UgPD0gcHJldl9sZW5ndGguCiAgICAgKiBBdCB0aGlzIHBvaW50IHdlIGhhdmUgYWx3YXlzIG1hdGNoX2xlbmd0aCA8IE1JTl9NQVRDSAogICAgICovCiAgICBpZiAoaGFzaF9oZWFkICE9PSAwLypOSUwqLyAmJiAoKHMuc3Ryc3RhcnQgLSBoYXNoX2hlYWQpIDw9IChzLndfc2l6ZSAtIE1JTl9MT09LQUhFQUQpKSkgewogICAgICAvKiBUbyBzaW1wbGlmeSB0aGUgY29kZSwgd2UgcHJldmVudCBtYXRjaGVzIHdpdGggdGhlIHN0cmluZwogICAgICAgKiBvZiB3aW5kb3cgaW5kZXggMCAoaW4gcGFydGljdWxhciB3ZSBoYXZlIHRvIGF2b2lkIGEgbWF0Y2gKICAgICAgICogb2YgdGhlIHN0cmluZyB3aXRoIGl0c2VsZiBhdCB0aGUgc3RhcnQgb2YgdGhlIGlucHV0IGZpbGUpLgogICAgICAgKi8KICAgICAgcy5tYXRjaF9sZW5ndGggPSBsb25nZXN0X21hdGNoKHMsIGhhc2hfaGVhZCk7CiAgICAgIC8qIGxvbmdlc3RfbWF0Y2goKSBzZXRzIG1hdGNoX3N0YXJ0ICovCiAgICB9CiAgICBpZiAocy5tYXRjaF9sZW5ndGggPj0gTUlOX01BVENIKSB7CiAgICAgIC8vIGNoZWNrX21hdGNoKHMsIHMuc3Ryc3RhcnQsIHMubWF0Y2hfc3RhcnQsIHMubWF0Y2hfbGVuZ3RoKTsgLy8gZm9yIGRlYnVnIG9ubHkKCiAgICAgIC8qKiogX3RyX3RhbGx5X2Rpc3Qocywgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgIHMubWF0Y2hfbGVuZ3RoIC0gTUlOX01BVENILCBiZmx1c2gpOyAqKiovCiAgICAgIGJmbHVzaCA9IHRyZWVzLl90cl90YWxseShzLCBzLnN0cnN0YXJ0IC0gcy5tYXRjaF9zdGFydCwgcy5tYXRjaF9sZW5ndGggLSBNSU5fTUFUQ0gpOwoKICAgICAgcy5sb29rYWhlYWQgLT0gcy5tYXRjaF9sZW5ndGg7CgogICAgICAvKiBJbnNlcnQgbmV3IHN0cmluZ3MgaW4gdGhlIGhhc2ggdGFibGUgb25seSBpZiB0aGUgbWF0Y2ggbGVuZ3RoCiAgICAgICAqIGlzIG5vdCB0b28gbGFyZ2UuIFRoaXMgc2F2ZXMgdGltZSBidXQgZGVncmFkZXMgY29tcHJlc3Npb24uCiAgICAgICAqLwogICAgICBpZiAocy5tYXRjaF9sZW5ndGggPD0gcy5tYXhfbGF6eV9tYXRjaC8qbWF4X2luc2VydF9sZW5ndGgqLyAmJiBzLmxvb2thaGVhZCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgICBzLm1hdGNoX2xlbmd0aC0tOyAvKiBzdHJpbmcgYXQgc3Ryc3RhcnQgYWxyZWFkeSBpbiB0YWJsZSAqLwogICAgICAgIGRvIHsKICAgICAgICAgIHMuc3Ryc3RhcnQrKzsKICAgICAgICAgIC8qKiogSU5TRVJUX1NUUklORyhzLCBzLnN0cnN0YXJ0LCBoYXNoX2hlYWQpOyAqKiovCiAgICAgICAgICBzLmluc19oID0gKChzLmluc19oIDw8IHMuaGFzaF9zaGlmdCkgXiBzLndpbmRvd1tzLnN0cnN0YXJ0ICsgTUlOX01BVENIIC0gMV0pICYgcy5oYXNoX21hc2s7CiAgICAgICAgICBoYXNoX2hlYWQgPSBzLnByZXZbcy5zdHJzdGFydCAmIHMud19tYXNrXSA9IHMuaGVhZFtzLmluc19oXTsKICAgICAgICAgIHMuaGVhZFtzLmluc19oXSA9IHMuc3Ryc3RhcnQ7CiAgICAgICAgICAvKioqLwogICAgICAgICAgLyogc3Ryc3RhcnQgbmV2ZXIgZXhjZWVkcyBXU0laRS1NQVhfTUFUQ0gsIHNvIHRoZXJlIGFyZQogICAgICAgICAgICogYWx3YXlzIE1JTl9NQVRDSCBieXRlcyBhaGVhZC4KICAgICAgICAgICAqLwogICAgICAgIH0gd2hpbGUgKC0tcy5tYXRjaF9sZW5ndGggIT09IDApOwogICAgICAgIHMuc3Ryc3RhcnQrKzsKICAgICAgfSBlbHNlCiAgICAgIHsKICAgICAgICBzLnN0cnN0YXJ0ICs9IHMubWF0Y2hfbGVuZ3RoOwogICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gMDsKICAgICAgICBzLmluc19oID0gcy53aW5kb3dbcy5zdHJzdGFydF07CiAgICAgICAgLyogVVBEQVRFX0hBU0gocywgcy5pbnNfaCwgcy53aW5kb3dbcy5zdHJzdGFydCsxXSk7ICovCiAgICAgICAgcy5pbnNfaCA9ICgocy5pbnNfaCA8PCBzLmhhc2hfc2hpZnQpIF4gcy53aW5kb3dbcy5zdHJzdGFydCArIDFdKSAmIHMuaGFzaF9tYXNrOwoKLy8jaWYgTUlOX01BVENIICE9IDMKLy8gICAgICAgICAgICAgICAgQ2FsbCBVUERBVEVfSEFTSCgpIE1JTl9NQVRDSC0zIG1vcmUgdGltZXMKLy8jZW5kaWYKICAgICAgICAvKiBJZiBsb29rYWhlYWQgPCBNSU5fTUFUQ0gsIGluc19oIGlzIGdhcmJhZ2UsIGJ1dCBpdCBkb2VzIG5vdAogICAgICAgICAqIG1hdHRlciBzaW5jZSBpdCB3aWxsIGJlIHJlY29tcHV0ZWQgYXQgbmV4dCBkZWZsYXRlIGNhbGwuCiAgICAgICAgICovCiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIC8qIE5vIG1hdGNoLCBvdXRwdXQgYSBsaXRlcmFsIGJ5dGUgKi8KICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsIiVjIiwgcy53aW5kb3dbcy5zdHJzdGFydF0pKTsKICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnRdLCBiZmx1c2gpOyAqKiovCiAgICAgIGJmbHVzaCA9IHRyZWVzLl90cl90YWxseShzLCAwLCBzLndpbmRvd1tzLnN0cnN0YXJ0XSk7CgogICAgICBzLmxvb2thaGVhZC0tOwogICAgICBzLnN0cnN0YXJ0Kys7CiAgICB9CiAgICBpZiAoYmZsdXNoKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgfQogICAgICAvKioqLwogICAgfQogIH0KICBzLmluc2VydCA9ICgocy5zdHJzdGFydCA8IChNSU5fTUFUQ0ggLSAxKSkgPyBzLnN0cnN0YXJ0IDogTUlOX01BVENIIC0gMSk7CiAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCkgewogICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAxKTsgKioqLwogICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgIHJldHVybiBCU19GSU5JU0hfU1RBUlRFRDsKICAgIH0KICAgIC8qKiovCiAgICByZXR1cm4gQlNfRklOSVNIX0RPTkU7CiAgfQogIGlmIChzLmxhc3RfbGl0KSB7CiAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICB9CiAgICAvKioqLwogIH0KICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFNhbWUgYXMgYWJvdmUsIGJ1dCBhY2hpZXZlcyBiZXR0ZXIgY29tcHJlc3Npb24uIFdlIHVzZSBhIGxhenkKICogZXZhbHVhdGlvbiBmb3IgbWF0Y2hlczogYSBtYXRjaCBpcyBmaW5hbGx5IGFkb3B0ZWQgb25seSBpZiB0aGVyZSBpcwogKiBubyBiZXR0ZXIgbWF0Y2ggYXQgdGhlIG5leHQgd2luZG93IHBvc2l0aW9uLgogKi8KZnVuY3Rpb24gZGVmbGF0ZV9zbG93KHMsIGZsdXNoKSB7CiAgdmFyIGhhc2hfaGVhZDsgICAgICAgICAgLyogaGVhZCBvZiBoYXNoIGNoYWluICovCiAgdmFyIGJmbHVzaDsgICAgICAgICAgICAgIC8qIHNldCBpZiBjdXJyZW50IGJsb2NrIG11c3QgYmUgZmx1c2hlZCAqLwoKICB2YXIgbWF4X2luc2VydDsKCiAgLyogUHJvY2VzcyB0aGUgaW5wdXQgYmxvY2suICovCiAgZm9yICg7OykgewogICAgLyogTWFrZSBzdXJlIHRoYXQgd2UgYWx3YXlzIGhhdmUgZW5vdWdoIGxvb2thaGVhZCwgZXhjZXB0CiAgICAgKiBhdCB0aGUgZW5kIG9mIHRoZSBpbnB1dCBmaWxlLiBXZSBuZWVkIE1BWF9NQVRDSCBieXRlcwogICAgICogZm9yIHRoZSBuZXh0IG1hdGNoLCBwbHVzIE1JTl9NQVRDSCBieXRlcyB0byBpbnNlcnQgdGhlCiAgICAgKiBzdHJpbmcgZm9sbG93aW5nIHRoZSBuZXh0IG1hdGNoLgogICAgICovCiAgICBpZiAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEKSB7CiAgICAgIGZpbGxfd2luZG93KHMpOwogICAgICBpZiAocy5sb29rYWhlYWQgPCBNSU5fTE9PS0FIRUFEICYmIGZsdXNoID09PSBaX05PX0ZMVVNIKSB7CiAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgfQogICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsgYnJlYWs7IH0gLyogZmx1c2ggdGhlIGN1cnJlbnQgYmxvY2sgKi8KICAgIH0KCiAgICAvKiBJbnNlcnQgdGhlIHN0cmluZyB3aW5kb3dbc3Ryc3RhcnQgLi4gc3Ryc3RhcnQrMl0gaW4gdGhlCiAgICAgKiBkaWN0aW9uYXJ5LCBhbmQgc2V0IGhhc2hfaGVhZCB0byB0aGUgaGVhZCBvZiB0aGUgaGFzaCBjaGFpbjoKICAgICAqLwogICAgaGFzaF9oZWFkID0gMC8qTklMKi87CiAgICBpZiAocy5sb29rYWhlYWQgPj0gTUlOX01BVENIKSB7CiAgICAgIC8qKiogSU5TRVJUX1NUUklORyhzLCBzLnN0cnN0YXJ0LCBoYXNoX2hlYWQpOyAqKiovCiAgICAgIHMuaW5zX2ggPSAoKHMuaW5zX2ggPDwgcy5oYXNoX3NoaWZ0KSBeIHMud2luZG93W3Muc3Ryc3RhcnQgKyBNSU5fTUFUQ0ggLSAxXSkgJiBzLmhhc2hfbWFzazsKICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgIHMuaGVhZFtzLmluc19oXSA9IHMuc3Ryc3RhcnQ7CiAgICAgIC8qKiovCiAgICB9CgogICAgLyogRmluZCB0aGUgbG9uZ2VzdCBtYXRjaCwgZGlzY2FyZGluZyB0aG9zZSA8PSBwcmV2X2xlbmd0aC4KICAgICAqLwogICAgcy5wcmV2X2xlbmd0aCA9IHMubWF0Y2hfbGVuZ3RoOwogICAgcy5wcmV2X21hdGNoID0gcy5tYXRjaF9zdGFydDsKICAgIHMubWF0Y2hfbGVuZ3RoID0gTUlOX01BVENIIC0gMTsKCiAgICBpZiAoaGFzaF9oZWFkICE9PSAwLypOSUwqLyAmJiBzLnByZXZfbGVuZ3RoIDwgcy5tYXhfbGF6eV9tYXRjaCAmJgogICAgICAgIHMuc3Ryc3RhcnQgLSBoYXNoX2hlYWQgPD0gKHMud19zaXplIC0gTUlOX0xPT0tBSEVBRCkvKk1BWF9ESVNUKHMpKi8pIHsKICAgICAgLyogVG8gc2ltcGxpZnkgdGhlIGNvZGUsIHdlIHByZXZlbnQgbWF0Y2hlcyB3aXRoIHRoZSBzdHJpbmcKICAgICAgICogb2Ygd2luZG93IGluZGV4IDAgKGluIHBhcnRpY3VsYXIgd2UgaGF2ZSB0byBhdm9pZCBhIG1hdGNoCiAgICAgICAqIG9mIHRoZSBzdHJpbmcgd2l0aCBpdHNlbGYgYXQgdGhlIHN0YXJ0IG9mIHRoZSBpbnB1dCBmaWxlKS4KICAgICAgICovCiAgICAgIHMubWF0Y2hfbGVuZ3RoID0gbG9uZ2VzdF9tYXRjaChzLCBoYXNoX2hlYWQpOwogICAgICAvKiBsb25nZXN0X21hdGNoKCkgc2V0cyBtYXRjaF9zdGFydCAqLwoKICAgICAgaWYgKHMubWF0Y2hfbGVuZ3RoIDw9IDUgJiYKICAgICAgICAgKHMuc3RyYXRlZ3kgPT09IFpfRklMVEVSRUQgfHwgKHMubWF0Y2hfbGVuZ3RoID09PSBNSU5fTUFUQ0ggJiYgcy5zdHJzdGFydCAtIHMubWF0Y2hfc3RhcnQgPiA0MDk2LypUT09fRkFSKi8pKSkgewoKICAgICAgICAvKiBJZiBwcmV2X21hdGNoIGlzIGFsc28gTUlOX01BVENILCBtYXRjaF9zdGFydCBpcyBnYXJiYWdlCiAgICAgICAgICogYnV0IHdlIHdpbGwgaWdub3JlIHRoZSBjdXJyZW50IG1hdGNoIGFueXdheS4KICAgICAgICAgKi8KICAgICAgICBzLm1hdGNoX2xlbmd0aCA9IE1JTl9NQVRDSCAtIDE7CiAgICAgIH0KICAgIH0KICAgIC8qIElmIHRoZXJlIHdhcyBhIG1hdGNoIGF0IHRoZSBwcmV2aW91cyBzdGVwIGFuZCB0aGUgY3VycmVudAogICAgICogbWF0Y2ggaXMgbm90IGJldHRlciwgb3V0cHV0IHRoZSBwcmV2aW91cyBtYXRjaDoKICAgICAqLwogICAgaWYgKHMucHJldl9sZW5ndGggPj0gTUlOX01BVENIICYmIHMubWF0Y2hfbGVuZ3RoIDw9IHMucHJldl9sZW5ndGgpIHsKICAgICAgbWF4X2luc2VydCA9IHMuc3Ryc3RhcnQgKyBzLmxvb2thaGVhZCAtIE1JTl9NQVRDSDsKICAgICAgLyogRG8gbm90IGluc2VydCBzdHJpbmdzIGluIGhhc2ggdGFibGUgYmV5b25kIHRoaXMuICovCgogICAgICAvL2NoZWNrX21hdGNoKHMsIHMuc3Ryc3RhcnQtMSwgcy5wcmV2X21hdGNoLCBzLnByZXZfbGVuZ3RoKTsKCiAgICAgIC8qKipfdHJfdGFsbHlfZGlzdChzLCBzLnN0cnN0YXJ0IC0gMSAtIHMucHJldl9tYXRjaCwKICAgICAgICAgICAgICAgICAgICAgcy5wcmV2X2xlbmd0aCAtIE1JTl9NQVRDSCwgYmZsdXNoKTsqKiovCiAgICAgIGJmbHVzaCA9IHRyZWVzLl90cl90YWxseShzLCBzLnN0cnN0YXJ0IC0gMSAtIHMucHJldl9tYXRjaCwgcy5wcmV2X2xlbmd0aCAtIE1JTl9NQVRDSCk7CiAgICAgIC8qIEluc2VydCBpbiBoYXNoIHRhYmxlIGFsbCBzdHJpbmdzIHVwIHRvIHRoZSBlbmQgb2YgdGhlIG1hdGNoLgogICAgICAgKiBzdHJzdGFydC0xIGFuZCBzdHJzdGFydCBhcmUgYWxyZWFkeSBpbnNlcnRlZC4gSWYgdGhlcmUgaXMgbm90CiAgICAgICAqIGVub3VnaCBsb29rYWhlYWQsIHRoZSBsYXN0IHR3byBzdHJpbmdzIGFyZSBub3QgaW5zZXJ0ZWQgaW4KICAgICAgICogdGhlIGhhc2ggdGFibGUuCiAgICAgICAqLwogICAgICBzLmxvb2thaGVhZCAtPSBzLnByZXZfbGVuZ3RoIC0gMTsKICAgICAgcy5wcmV2X2xlbmd0aCAtPSAyOwogICAgICBkbyB7CiAgICAgICAgaWYgKCsrcy5zdHJzdGFydCA8PSBtYXhfaW5zZXJ0KSB7CiAgICAgICAgICAvKioqIElOU0VSVF9TVFJJTkcocywgcy5zdHJzdGFydCwgaGFzaF9oZWFkKTsgKioqLwogICAgICAgICAgcy5pbnNfaCA9ICgocy5pbnNfaCA8PCBzLmhhc2hfc2hpZnQpIF4gcy53aW5kb3dbcy5zdHJzdGFydCArIE1JTl9NQVRDSCAtIDFdKSAmIHMuaGFzaF9tYXNrOwogICAgICAgICAgaGFzaF9oZWFkID0gcy5wcmV2W3Muc3Ryc3RhcnQgJiBzLndfbWFza10gPSBzLmhlYWRbcy5pbnNfaF07CiAgICAgICAgICBzLmhlYWRbcy5pbnNfaF0gPSBzLnN0cnN0YXJ0OwogICAgICAgICAgLyoqKi8KICAgICAgICB9CiAgICAgIH0gd2hpbGUgKC0tcy5wcmV2X2xlbmd0aCAhPT0gMCk7CiAgICAgIHMubWF0Y2hfYXZhaWxhYmxlID0gMDsKICAgICAgcy5tYXRjaF9sZW5ndGggPSBNSU5fTUFUQ0ggLSAxOwogICAgICBzLnN0cnN0YXJ0Kys7CgogICAgICBpZiAoYmZsdXNoKSB7CiAgICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICAgIH0KICAgICAgICAvKioqLwogICAgICB9CgogICAgfSBlbHNlIGlmIChzLm1hdGNoX2F2YWlsYWJsZSkgewogICAgICAvKiBJZiB0aGVyZSB3YXMgbm8gbWF0Y2ggYXQgdGhlIHByZXZpb3VzIHBvc2l0aW9uLCBvdXRwdXQgYQogICAgICAgKiBzaW5nbGUgbGl0ZXJhbC4gSWYgdGhlcmUgd2FzIGEgbWF0Y2ggYnV0IHRoZSBjdXJyZW50IG1hdGNoCiAgICAgICAqIGlzIGxvbmdlciwgdHJ1bmNhdGUgdGhlIHByZXZpb3VzIG1hdGNoIHRvIGEgc2luZ2xlIGxpdGVyYWwuCiAgICAgICAqLwogICAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnQtMV0pKTsKICAgICAgLyoqKiBfdHJfdGFsbHlfbGl0KHMsIHMud2luZG93W3Muc3Ryc3RhcnQtMV0sIGJmbHVzaCk7ICoqKi8KICAgICAgYmZsdXNoID0gdHJlZXMuX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnQgLSAxXSk7CgogICAgICBpZiAoYmZsdXNoKSB7CiAgICAgICAgLyoqKiBGTFVTSF9CTE9DS19PTkxZKHMsIDApICoqKi8KICAgICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgICAvKioqLwogICAgICB9CiAgICAgIHMuc3Ryc3RhcnQrKzsKICAgICAgcy5sb29rYWhlYWQtLTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICAvKiBUaGVyZSBpcyBubyBwcmV2aW91cyBtYXRjaCB0byBjb21wYXJlIHdpdGgsIHdhaXQgZm9yCiAgICAgICAqIHRoZSBuZXh0IHN0ZXAgdG8gZGVjaWRlLgogICAgICAgKi8KICAgICAgcy5tYXRjaF9hdmFpbGFibGUgPSAxOwogICAgICBzLnN0cnN0YXJ0Kys7CiAgICAgIHMubG9va2FoZWFkLS07CiAgICB9CiAgfQogIC8vQXNzZXJ0IChmbHVzaCAhPSBaX05PX0ZMVVNILCAibm8gZmx1c2g/Iik7CiAgaWYgKHMubWF0Y2hfYXZhaWxhYmxlKSB7CiAgICAvL1RyYWNldnYoKHN0ZGVyciwiJWMiLCBzLT53aW5kb3dbcy0+c3Ryc3RhcnQtMV0pKTsKICAgIC8qKiogX3RyX3RhbGx5X2xpdChzLCBzLndpbmRvd1tzLnN0cnN0YXJ0LTFdLCBiZmx1c2gpOyAqKiovCiAgICBiZmx1c2ggPSB0cmVlcy5fdHJfdGFsbHkocywgMCwgcy53aW5kb3dbcy5zdHJzdGFydCAtIDFdKTsKCiAgICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgfQogIHMuaW5zZXJ0ID0gcy5zdHJzdGFydCA8IE1JTl9NQVRDSCAtIDEgPyBzLnN0cnN0YXJ0IDogTUlOX01BVENIIC0gMTsKICBpZiAoZmx1c2ggPT09IFpfRklOSVNIKSB7CiAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDEpOyAqKiovCiAgICBmbHVzaF9ibG9ja19vbmx5KHMsIHRydWUpOwogICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgcmV0dXJuIEJTX0ZJTklTSF9TVEFSVEVEOwogICAgfQogICAgLyoqKi8KICAgIHJldHVybiBCU19GSU5JU0hfRE9ORTsKICB9CiAgaWYgKHMubGFzdF9saXQpIHsKICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgIH0KICAgIC8qKiovCiAgfQoKICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBGb3IgWl9STEUsIHNpbXBseSBsb29rIGZvciBydW5zIG9mIGJ5dGVzLCBnZW5lcmF0ZSBtYXRjaGVzIG9ubHkgb2YgZGlzdGFuY2UKICogb25lLiAgRG8gbm90IG1haW50YWluIGEgaGFzaCB0YWJsZS4gIChJdCB3aWxsIGJlIHJlZ2VuZXJhdGVkIGlmIHRoaXMgcnVuIG9mCiAqIGRlZmxhdGUgc3dpdGNoZXMgYXdheSBmcm9tIFpfUkxFLikKICovCmZ1bmN0aW9uIGRlZmxhdGVfcmxlKHMsIGZsdXNoKSB7CiAgdmFyIGJmbHVzaDsgICAgICAgICAgICAvKiBzZXQgaWYgY3VycmVudCBibG9jayBtdXN0IGJlIGZsdXNoZWQgKi8KICB2YXIgcHJldjsgICAgICAgICAgICAgIC8qIGJ5dGUgYXQgZGlzdGFuY2Ugb25lIHRvIG1hdGNoICovCiAgdmFyIHNjYW4sIHN0cmVuZDsgICAgICAvKiBzY2FuIGdvZXMgdXAgdG8gc3RyZW5kIGZvciBsZW5ndGggb2YgcnVuICovCgogIHZhciBfd2luID0gcy53aW5kb3c7CgogIGZvciAoOzspIHsKICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGFsd2F5cyBoYXZlIGVub3VnaCBsb29rYWhlYWQsIGV4Y2VwdAogICAgICogYXQgdGhlIGVuZCBvZiB0aGUgaW5wdXQgZmlsZS4gV2UgbmVlZCBNQVhfTUFUQ0ggYnl0ZXMKICAgICAqIGZvciB0aGUgbG9uZ2VzdCBydW4sIHBsdXMgb25lIGZvciB0aGUgdW5yb2xsZWQgbG9vcC4KICAgICAqLwogICAgaWYgKHMubG9va2FoZWFkIDw9IE1BWF9NQVRDSCkgewogICAgICBmaWxsX3dpbmRvdyhzKTsKICAgICAgaWYgKHMubG9va2FoZWFkIDw9IE1BWF9NQVRDSCAmJiBmbHVzaCA9PT0gWl9OT19GTFVTSCkgewogICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgIH0KICAgICAgaWYgKHMubG9va2FoZWFkID09PSAwKSB7IGJyZWFrOyB9IC8qIGZsdXNoIHRoZSBjdXJyZW50IGJsb2NrICovCiAgICB9CgogICAgLyogU2VlIGhvdyBtYW55IHRpbWVzIHRoZSBwcmV2aW91cyBieXRlIHJlcGVhdHMgKi8KICAgIHMubWF0Y2hfbGVuZ3RoID0gMDsKICAgIGlmIChzLmxvb2thaGVhZCA+PSBNSU5fTUFUQ0ggJiYgcy5zdHJzdGFydCA+IDApIHsKICAgICAgc2NhbiA9IHMuc3Ryc3RhcnQgLSAxOwogICAgICBwcmV2ID0gX3dpbltzY2FuXTsKICAgICAgaWYgKHByZXYgPT09IF93aW5bKytzY2FuXSAmJiBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dKSB7CiAgICAgICAgc3RyZW5kID0gcy5zdHJzdGFydCArIE1BWF9NQVRDSDsKICAgICAgICBkbyB7CiAgICAgICAgICAvKmpzaGludCBub2VtcHR5OmZhbHNlKi8KICAgICAgICB9IHdoaWxlIChwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmIHByZXYgPT09IF93aW5bKytzY2FuXSAmJgogICAgICAgICAgICAgICAgIHByZXYgPT09IF93aW5bKytzY2FuXSAmJiBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYKICAgICAgICAgICAgICAgICBwcmV2ID09PSBfd2luWysrc2Nhbl0gJiYgcHJldiA9PT0gX3dpblsrK3NjYW5dICYmCiAgICAgICAgICAgICAgICAgc2NhbiA8IHN0cmVuZCk7CiAgICAgICAgcy5tYXRjaF9sZW5ndGggPSBNQVhfTUFUQ0ggLSAoc3RyZW5kIC0gc2Nhbik7CiAgICAgICAgaWYgKHMubWF0Y2hfbGVuZ3RoID4gcy5sb29rYWhlYWQpIHsKICAgICAgICAgIHMubWF0Y2hfbGVuZ3RoID0gcy5sb29rYWhlYWQ7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vQXNzZXJ0KHNjYW4gPD0gcy0+d2luZG93Kyh1SW50KShzLT53aW5kb3dfc2l6ZS0xKSwgIndpbGQgc2NhbiIpOwogICAgfQoKICAgIC8qIEVtaXQgbWF0Y2ggaWYgaGF2ZSBydW4gb2YgTUlOX01BVENIIG9yIGxvbmdlciwgZWxzZSBlbWl0IGxpdGVyYWwgKi8KICAgIGlmIChzLm1hdGNoX2xlbmd0aCA+PSBNSU5fTUFUQ0gpIHsKICAgICAgLy9jaGVja19tYXRjaChzLCBzLnN0cnN0YXJ0LCBzLnN0cnN0YXJ0IC0gMSwgcy5tYXRjaF9sZW5ndGgpOwoKICAgICAgLyoqKiBfdHJfdGFsbHlfZGlzdChzLCAxLCBzLm1hdGNoX2xlbmd0aCAtIE1JTl9NQVRDSCwgYmZsdXNoKTsgKioqLwogICAgICBiZmx1c2ggPSB0cmVlcy5fdHJfdGFsbHkocywgMSwgcy5tYXRjaF9sZW5ndGggLSBNSU5fTUFUQ0gpOwoKICAgICAgcy5sb29rYWhlYWQgLT0gcy5tYXRjaF9sZW5ndGg7CiAgICAgIHMuc3Ryc3RhcnQgKz0gcy5tYXRjaF9sZW5ndGg7CiAgICAgIHMubWF0Y2hfbGVuZ3RoID0gMDsKICAgIH0gZWxzZSB7CiAgICAgIC8qIE5vIG1hdGNoLCBvdXRwdXQgYSBsaXRlcmFsIGJ5dGUgKi8KICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsIiVjIiwgcy0+d2luZG93W3MtPnN0cnN0YXJ0XSkpOwogICAgICAvKioqIF90cl90YWxseV9saXQocywgcy53aW5kb3dbcy5zdHJzdGFydF0sIGJmbHVzaCk7ICoqKi8KICAgICAgYmZsdXNoID0gdHJlZXMuX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKCiAgICAgIHMubG9va2FoZWFkLS07CiAgICAgIHMuc3Ryc3RhcnQrKzsKICAgIH0KICAgIGlmIChiZmx1c2gpIHsKICAgICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAwKTsgKioqLwogICAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICByZXR1cm4gQlNfTkVFRF9NT1JFOwogICAgICB9CiAgICAgIC8qKiovCiAgICB9CiAgfQogIHMuaW5zZXJ0ID0gMDsKICBpZiAoZmx1c2ggPT09IFpfRklOSVNIKSB7CiAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDEpOyAqKiovCiAgICBmbHVzaF9ibG9ja19vbmx5KHMsIHRydWUpOwogICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgcmV0dXJuIEJTX0ZJTklTSF9TVEFSVEVEOwogICAgfQogICAgLyoqKi8KICAgIHJldHVybiBCU19GSU5JU0hfRE9ORTsKICB9CiAgaWYgKHMubGFzdF9saXQpIHsKICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgIGZsdXNoX2Jsb2NrX29ubHkocywgZmFsc2UpOwogICAgaWYgKHMuc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgIH0KICAgIC8qKiovCiAgfQogIHJldHVybiBCU19CTE9DS19ET05FOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogRm9yIFpfSFVGRk1BTl9PTkxZLCBkbyBub3QgbG9vayBmb3IgbWF0Y2hlcy4gIERvIG5vdCBtYWludGFpbiBhIGhhc2ggdGFibGUuCiAqIChJdCB3aWxsIGJlIHJlZ2VuZXJhdGVkIGlmIHRoaXMgcnVuIG9mIGRlZmxhdGUgc3dpdGNoZXMgYXdheSBmcm9tIEh1ZmZtYW4uKQogKi8KZnVuY3Rpb24gZGVmbGF0ZV9odWZmKHMsIGZsdXNoKSB7CiAgdmFyIGJmbHVzaDsgICAgICAgICAgICAgLyogc2V0IGlmIGN1cnJlbnQgYmxvY2sgbXVzdCBiZSBmbHVzaGVkICovCgogIGZvciAoOzspIHsKICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUgYSBsaXRlcmFsIHRvIHdyaXRlLiAqLwogICAgaWYgKHMubG9va2FoZWFkID09PSAwKSB7CiAgICAgIGZpbGxfd2luZG93KHMpOwogICAgICBpZiAocy5sb29rYWhlYWQgPT09IDApIHsKICAgICAgICBpZiAoZmx1c2ggPT09IFpfTk9fRkxVU0gpIHsKICAgICAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICAgICAgfQogICAgICAgIGJyZWFrOyAgICAgIC8qIGZsdXNoIHRoZSBjdXJyZW50IGJsb2NrICovCiAgICAgIH0KICAgIH0KCiAgICAvKiBPdXRwdXQgYSBsaXRlcmFsIGJ5dGUgKi8KICAgIHMubWF0Y2hfbGVuZ3RoID0gMDsKICAgIC8vVHJhY2V2digoc3RkZXJyLCIlYyIsIHMtPndpbmRvd1tzLT5zdHJzdGFydF0pKTsKICAgIC8qKiogX3RyX3RhbGx5X2xpdChzLCBzLndpbmRvd1tzLnN0cnN0YXJ0XSwgYmZsdXNoKTsgKioqLwogICAgYmZsdXNoID0gdHJlZXMuX3RyX3RhbGx5KHMsIDAsIHMud2luZG93W3Muc3Ryc3RhcnRdKTsKICAgIHMubG9va2FoZWFkLS07CiAgICBzLnN0cnN0YXJ0Kys7CiAgICBpZiAoYmZsdXNoKSB7CiAgICAgIC8qKiogRkxVU0hfQkxPQ0socywgMCk7ICoqKi8KICAgICAgZmx1c2hfYmxvY2tfb25seShzLCBmYWxzZSk7CiAgICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgICAgcmV0dXJuIEJTX05FRURfTU9SRTsKICAgICAgfQogICAgICAvKioqLwogICAgfQogIH0KICBzLmluc2VydCA9IDA7CiAgaWYgKGZsdXNoID09PSBaX0ZJTklTSCkgewogICAgLyoqKiBGTFVTSF9CTE9DSyhzLCAxKTsgKioqLwogICAgZmx1c2hfYmxvY2tfb25seShzLCB0cnVlKTsKICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgIHJldHVybiBCU19GSU5JU0hfU1RBUlRFRDsKICAgIH0KICAgIC8qKiovCiAgICByZXR1cm4gQlNfRklOSVNIX0RPTkU7CiAgfQogIGlmIChzLmxhc3RfbGl0KSB7CiAgICAvKioqIEZMVVNIX0JMT0NLKHMsIDApOyAqKiovCiAgICBmbHVzaF9ibG9ja19vbmx5KHMsIGZhbHNlKTsKICAgIGlmIChzLnN0cm0uYXZhaWxfb3V0ID09PSAwKSB7CiAgICAgIHJldHVybiBCU19ORUVEX01PUkU7CiAgICB9CiAgICAvKioqLwogIH0KICByZXR1cm4gQlNfQkxPQ0tfRE9ORTsKfQoKLyogVmFsdWVzIGZvciBtYXhfbGF6eV9tYXRjaCwgZ29vZF9tYXRjaCBhbmQgbWF4X2NoYWluX2xlbmd0aCwgZGVwZW5kaW5nIG9uCiAqIHRoZSBkZXNpcmVkIHBhY2sgbGV2ZWwgKDAuLjkpLiBUaGUgdmFsdWVzIGdpdmVuIGJlbG93IGhhdmUgYmVlbiB0dW5lZCB0bwogKiBleGNsdWRlIHdvcnN0IGNhc2UgcGVyZm9ybWFuY2UgZm9yIHBhdGhvbG9naWNhbCBmaWxlcy4gQmV0dGVyIHZhbHVlcyBtYXkgYmUKICogZm91bmQgZm9yIHNwZWNpZmljIGZpbGVzLgogKi8KZnVuY3Rpb24gQ29uZmlnKGdvb2RfbGVuZ3RoLCBtYXhfbGF6eSwgbmljZV9sZW5ndGgsIG1heF9jaGFpbiwgZnVuYykgewogIHRoaXMuZ29vZF9sZW5ndGggPSBnb29kX2xlbmd0aDsKICB0aGlzLm1heF9sYXp5ID0gbWF4X2xhenk7CiAgdGhpcy5uaWNlX2xlbmd0aCA9IG5pY2VfbGVuZ3RoOwogIHRoaXMubWF4X2NoYWluID0gbWF4X2NoYWluOwogIHRoaXMuZnVuYyA9IGZ1bmM7Cn0KCnZhciBjb25maWd1cmF0aW9uX3RhYmxlOwoKY29uZmlndXJhdGlvbl90YWJsZSA9IFsKICAvKiAgICAgIGdvb2QgbGF6eSBuaWNlIGNoYWluICovCiAgbmV3IENvbmZpZygwLCAwLCAwLCAwLCBkZWZsYXRlX3N0b3JlZCksICAgICAgICAgIC8qIDAgc3RvcmUgb25seSAqLwogIG5ldyBDb25maWcoNCwgNCwgOCwgNCwgZGVmbGF0ZV9mYXN0KSwgICAgICAgICAgICAvKiAxIG1heCBzcGVlZCwgbm8gbGF6eSBtYXRjaGVzICovCiAgbmV3IENvbmZpZyg0LCA1LCAxNiwgOCwgZGVmbGF0ZV9mYXN0KSwgICAgICAgICAgIC8qIDIgKi8KICBuZXcgQ29uZmlnKDQsIDYsIDMyLCAzMiwgZGVmbGF0ZV9mYXN0KSwgICAgICAgICAgLyogMyAqLwoKICBuZXcgQ29uZmlnKDQsIDQsIDE2LCAxNiwgZGVmbGF0ZV9zbG93KSwgICAgICAgICAgLyogNCBsYXp5IG1hdGNoZXMgKi8KICBuZXcgQ29uZmlnKDgsIDE2LCAzMiwgMzIsIGRlZmxhdGVfc2xvdyksICAgICAgICAgLyogNSAqLwogIG5ldyBDb25maWcoOCwgMTYsIDEyOCwgMTI4LCBkZWZsYXRlX3Nsb3cpLCAgICAgICAvKiA2ICovCiAgbmV3IENvbmZpZyg4LCAzMiwgMTI4LCAyNTYsIGRlZmxhdGVfc2xvdyksICAgICAgIC8qIDcgKi8KICBuZXcgQ29uZmlnKDMyLCAxMjgsIDI1OCwgMTAyNCwgZGVmbGF0ZV9zbG93KSwgICAgLyogOCAqLwogIG5ldyBDb25maWcoMzIsIDI1OCwgMjU4LCA0MDk2LCBkZWZsYXRlX3Nsb3cpICAgICAvKiA5IG1heCBjb21wcmVzc2lvbiAqLwpdOwoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBJbml0aWFsaXplIHRoZSAibG9uZ2VzdCBtYXRjaCIgcm91dGluZXMgZm9yIGEgbmV3IHpsaWIgc3RyZWFtCiAqLwpmdW5jdGlvbiBsbV9pbml0KHMpIHsKICBzLndpbmRvd19zaXplID0gMiAqIHMud19zaXplOwoKICAvKioqIENMRUFSX0hBU0gocyk7ICoqKi8KICB6ZXJvKHMuaGVhZCk7IC8vIEZpbGwgd2l0aCBOSUwgKD0gMCk7CgogIC8qIFNldCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnM6CiAgICovCiAgcy5tYXhfbGF6eV9tYXRjaCA9IGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0ubWF4X2xhenk7CiAgcy5nb29kX21hdGNoID0gY29uZmlndXJhdGlvbl90YWJsZVtzLmxldmVsXS5nb29kX2xlbmd0aDsKICBzLm5pY2VfbWF0Y2ggPSBjb25maWd1cmF0aW9uX3RhYmxlW3MubGV2ZWxdLm5pY2VfbGVuZ3RoOwogIHMubWF4X2NoYWluX2xlbmd0aCA9IGNvbmZpZ3VyYXRpb25fdGFibGVbcy5sZXZlbF0ubWF4X2NoYWluOwoKICBzLnN0cnN0YXJ0ID0gMDsKICBzLmJsb2NrX3N0YXJ0ID0gMDsKICBzLmxvb2thaGVhZCA9IDA7CiAgcy5pbnNlcnQgPSAwOwogIHMubWF0Y2hfbGVuZ3RoID0gcy5wcmV2X2xlbmd0aCA9IE1JTl9NQVRDSCAtIDE7CiAgcy5tYXRjaF9hdmFpbGFibGUgPSAwOwogIHMuaW5zX2ggPSAwOwp9CgoKZnVuY3Rpb24gRGVmbGF0ZVN0YXRlKCkgewogIHRoaXMuc3RybSA9IG51bGw7ICAgICAgICAgICAgLyogcG9pbnRlciBiYWNrIHRvIHRoaXMgemxpYiBzdHJlYW0gKi8KICB0aGlzLnN0YXR1cyA9IDA7ICAgICAgICAgICAgLyogYXMgdGhlIG5hbWUgaW1wbGllcyAqLwogIHRoaXMucGVuZGluZ19idWYgPSBudWxsOyAgICAgIC8qIG91dHB1dCBzdGlsbCBwZW5kaW5nICovCiAgdGhpcy5wZW5kaW5nX2J1Zl9zaXplID0gMDsgIC8qIHNpemUgb2YgcGVuZGluZ19idWYgKi8KICB0aGlzLnBlbmRpbmdfb3V0ID0gMDsgICAgICAgLyogbmV4dCBwZW5kaW5nIGJ5dGUgdG8gb3V0cHV0IHRvIHRoZSBzdHJlYW0gKi8KICB0aGlzLnBlbmRpbmcgPSAwOyAgICAgICAgICAgLyogbmIgb2YgYnl0ZXMgaW4gdGhlIHBlbmRpbmcgYnVmZmVyICovCiAgdGhpcy53cmFwID0gMDsgICAgICAgICAgICAgIC8qIGJpdCAwIHRydWUgZm9yIHpsaWIsIGJpdCAxIHRydWUgZm9yIGd6aXAgKi8KICB0aGlzLmd6aGVhZCA9IG51bGw7ICAgICAgICAgLyogZ3ppcCBoZWFkZXIgaW5mb3JtYXRpb24gdG8gd3JpdGUgKi8KICB0aGlzLmd6aW5kZXggPSAwOyAgICAgICAgICAgLyogd2hlcmUgaW4gZXh0cmEsIG5hbWUsIG9yIGNvbW1lbnQgKi8KICB0aGlzLm1ldGhvZCA9IFpfREVGTEFURUQ7IC8qIGNhbiBvbmx5IGJlIERFRkxBVEVEICovCiAgdGhpcy5sYXN0X2ZsdXNoID0gLTE7ICAgLyogdmFsdWUgb2YgZmx1c2ggcGFyYW0gZm9yIHByZXZpb3VzIGRlZmxhdGUgY2FsbCAqLwoKICB0aGlzLndfc2l6ZSA9IDA7ICAvKiBMWjc3IHdpbmRvdyBzaXplICgzMksgYnkgZGVmYXVsdCkgKi8KICB0aGlzLndfYml0cyA9IDA7ICAvKiBsb2cyKHdfc2l6ZSkgICg4Li4xNikgKi8KICB0aGlzLndfbWFzayA9IDA7ICAvKiB3X3NpemUgLSAxICovCgogIHRoaXMud2luZG93ID0gbnVsbDsKICAvKiBTbGlkaW5nIHdpbmRvdy4gSW5wdXQgYnl0ZXMgYXJlIHJlYWQgaW50byB0aGUgc2Vjb25kIGhhbGYgb2YgdGhlIHdpbmRvdywKICAgKiBhbmQgbW92ZSB0byB0aGUgZmlyc3QgaGFsZiBsYXRlciB0byBrZWVwIGEgZGljdGlvbmFyeSBvZiBhdCBsZWFzdCB3U2l6ZQogICAqIGJ5dGVzLiBXaXRoIHRoaXMgb3JnYW5pemF0aW9uLCBtYXRjaGVzIGFyZSBsaW1pdGVkIHRvIGEgZGlzdGFuY2Ugb2YKICAgKiB3U2l6ZS1NQVhfTUFUQ0ggYnl0ZXMsIGJ1dCB0aGlzIGVuc3VyZXMgdGhhdCBJTyBpcyBhbHdheXMKICAgKiBwZXJmb3JtZWQgd2l0aCBhIGxlbmd0aCBtdWx0aXBsZSBvZiB0aGUgYmxvY2sgc2l6ZS4KICAgKi8KCiAgdGhpcy53aW5kb3dfc2l6ZSA9IDA7CiAgLyogQWN0dWFsIHNpemUgb2Ygd2luZG93OiAyKndTaXplLCBleGNlcHQgd2hlbiB0aGUgdXNlciBpbnB1dCBidWZmZXIKICAgKiBpcyBkaXJlY3RseSB1c2VkIGFzIHNsaWRpbmcgd2luZG93LgogICAqLwoKICB0aGlzLnByZXYgPSBudWxsOwogIC8qIExpbmsgdG8gb2xkZXIgc3RyaW5nIHdpdGggc2FtZSBoYXNoIGluZGV4LiBUbyBsaW1pdCB0aGUgc2l6ZSBvZiB0aGlzCiAgICogYXJyYXkgdG8gNjRLLCB0aGlzIGxpbmsgaXMgbWFpbnRhaW5lZCBvbmx5IGZvciB0aGUgbGFzdCAzMksgc3RyaW5ncy4KICAgKiBBbiBpbmRleCBpbiB0aGlzIGFycmF5IGlzIHRodXMgYSB3aW5kb3cgaW5kZXggbW9kdWxvIDMySy4KICAgKi8KCiAgdGhpcy5oZWFkID0gbnVsbDsgICAvKiBIZWFkcyBvZiB0aGUgaGFzaCBjaGFpbnMgb3IgTklMLiAqLwoKICB0aGlzLmluc19oID0gMDsgICAgICAgLyogaGFzaCBpbmRleCBvZiBzdHJpbmcgdG8gYmUgaW5zZXJ0ZWQgKi8KICB0aGlzLmhhc2hfc2l6ZSA9IDA7ICAgLyogbnVtYmVyIG9mIGVsZW1lbnRzIGluIGhhc2ggdGFibGUgKi8KICB0aGlzLmhhc2hfYml0cyA9IDA7ICAgLyogbG9nMihoYXNoX3NpemUpICovCiAgdGhpcy5oYXNoX21hc2sgPSAwOyAgIC8qIGhhc2hfc2l6ZS0xICovCgogIHRoaXMuaGFzaF9zaGlmdCA9IDA7CiAgLyogTnVtYmVyIG9mIGJpdHMgYnkgd2hpY2ggaW5zX2ggbXVzdCBiZSBzaGlmdGVkIGF0IGVhY2ggaW5wdXQKICAgKiBzdGVwLiBJdCBtdXN0IGJlIHN1Y2ggdGhhdCBhZnRlciBNSU5fTUFUQ0ggc3RlcHMsIHRoZSBvbGRlc3QKICAgKiBieXRlIG5vIGxvbmdlciB0YWtlcyBwYXJ0IGluIHRoZSBoYXNoIGtleSwgdGhhdCBpczoKICAgKiAgIGhhc2hfc2hpZnQgKiBNSU5fTUFUQ0ggPj0gaGFzaF9iaXRzCiAgICovCgogIHRoaXMuYmxvY2tfc3RhcnQgPSAwOwogIC8qIFdpbmRvdyBwb3NpdGlvbiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IG91dHB1dCBibG9jay4gR2V0cwogICAqIG5lZ2F0aXZlIHdoZW4gdGhlIHdpbmRvdyBpcyBtb3ZlZCBiYWNrd2FyZHMuCiAgICovCgogIHRoaXMubWF0Y2hfbGVuZ3RoID0gMDsgICAgICAvKiBsZW5ndGggb2YgYmVzdCBtYXRjaCAqLwogIHRoaXMucHJldl9tYXRjaCA9IDA7ICAgICAgICAvKiBwcmV2aW91cyBtYXRjaCAqLwogIHRoaXMubWF0Y2hfYXZhaWxhYmxlID0gMDsgICAvKiBzZXQgaWYgcHJldmlvdXMgbWF0Y2ggZXhpc3RzICovCiAgdGhpcy5zdHJzdGFydCA9IDA7ICAgICAgICAgIC8qIHN0YXJ0IG9mIHN0cmluZyB0byBpbnNlcnQgKi8KICB0aGlzLm1hdGNoX3N0YXJ0ID0gMDsgICAgICAgLyogc3RhcnQgb2YgbWF0Y2hpbmcgc3RyaW5nICovCiAgdGhpcy5sb29rYWhlYWQgPSAwOyAgICAgICAgIC8qIG51bWJlciBvZiB2YWxpZCBieXRlcyBhaGVhZCBpbiB3aW5kb3cgKi8KCiAgdGhpcy5wcmV2X2xlbmd0aCA9IDA7CiAgLyogTGVuZ3RoIG9mIHRoZSBiZXN0IG1hdGNoIGF0IHByZXZpb3VzIHN0ZXAuIE1hdGNoZXMgbm90IGdyZWF0ZXIgdGhhbiB0aGlzCiAgICogYXJlIGRpc2NhcmRlZC4gVGhpcyBpcyB1c2VkIGluIHRoZSBsYXp5IG1hdGNoIGV2YWx1YXRpb24uCiAgICovCgogIHRoaXMubWF4X2NoYWluX2xlbmd0aCA9IDA7CiAgLyogVG8gc3BlZWQgdXAgZGVmbGF0aW9uLCBoYXNoIGNoYWlucyBhcmUgbmV2ZXIgc2VhcmNoZWQgYmV5b25kIHRoaXMKICAgKiBsZW5ndGguICBBIGhpZ2hlciBsaW1pdCBpbXByb3ZlcyBjb21wcmVzc2lvbiByYXRpbyBidXQgZGVncmFkZXMgdGhlCiAgICogc3BlZWQuCiAgICovCgogIHRoaXMubWF4X2xhenlfbWF0Y2ggPSAwOwogIC8qIEF0dGVtcHQgdG8gZmluZCBhIGJldHRlciBtYXRjaCBvbmx5IHdoZW4gdGhlIGN1cnJlbnQgbWF0Y2ggaXMgc3RyaWN0bHkKICAgKiBzbWFsbGVyIHRoYW4gdGhpcyB2YWx1ZS4gVGhpcyBtZWNoYW5pc20gaXMgdXNlZCBvbmx5IGZvciBjb21wcmVzc2lvbgogICAqIGxldmVscyA+PSA0LgogICAqLwogIC8vIFRoYXQncyBhbGlhcyB0byBtYXhfbGF6eV9tYXRjaCwgZG9uJ3QgdXNlIGRpcmVjdGx5CiAgLy90aGlzLm1heF9pbnNlcnRfbGVuZ3RoID0gMDsKICAvKiBJbnNlcnQgbmV3IHN0cmluZ3MgaW4gdGhlIGhhc2ggdGFibGUgb25seSBpZiB0aGUgbWF0Y2ggbGVuZ3RoIGlzIG5vdAogICAqIGdyZWF0ZXIgdGhhbiB0aGlzIGxlbmd0aC4gVGhpcyBzYXZlcyB0aW1lIGJ1dCBkZWdyYWRlcyBjb21wcmVzc2lvbi4KICAgKiBtYXhfaW5zZXJ0X2xlbmd0aCBpcyB1c2VkIG9ubHkgZm9yIGNvbXByZXNzaW9uIGxldmVscyA8PSAzLgogICAqLwoKICB0aGlzLmxldmVsID0gMDsgICAgIC8qIGNvbXByZXNzaW9uIGxldmVsICgxLi45KSAqLwogIHRoaXMuc3RyYXRlZ3kgPSAwOyAgLyogZmF2b3Igb3IgZm9yY2UgSHVmZm1hbiBjb2RpbmcqLwoKICB0aGlzLmdvb2RfbWF0Y2ggPSAwOwogIC8qIFVzZSBhIGZhc3RlciBzZWFyY2ggd2hlbiB0aGUgcHJldmlvdXMgbWF0Y2ggaXMgbG9uZ2VyIHRoYW4gdGhpcyAqLwoKICB0aGlzLm5pY2VfbWF0Y2ggPSAwOyAvKiBTdG9wIHNlYXJjaGluZyB3aGVuIGN1cnJlbnQgbWF0Y2ggZXhjZWVkcyB0aGlzICovCgogICAgICAgICAgICAgIC8qIHVzZWQgYnkgdHJlZXMuYzogKi8KCiAgLyogRGlkbid0IHVzZSBjdF9kYXRhIHR5cGVkZWYgYmVsb3cgdG8gc3VwcHJlc3MgY29tcGlsZXIgd2FybmluZyAqLwoKICAvLyBzdHJ1Y3QgY3RfZGF0YV9zIGR5bl9sdHJlZVtIRUFQX1NJWkVdOyAgIC8qIGxpdGVyYWwgYW5kIGxlbmd0aCB0cmVlICovCiAgLy8gc3RydWN0IGN0X2RhdGFfcyBkeW5fZHRyZWVbMipEX0NPREVTKzFdOyAvKiBkaXN0YW5jZSB0cmVlICovCiAgLy8gc3RydWN0IGN0X2RhdGFfcyBibF90cmVlWzIqQkxfQ09ERVMrMV07ICAvKiBIdWZmbWFuIHRyZWUgZm9yIGJpdCBsZW5ndGhzICovCgogIC8vIFVzZSBmbGF0IGFycmF5IG9mIERPVUJMRSBzaXplLCB3aXRoIGludGVybGVhdmVkIGZhdGEsCiAgLy8gYmVjYXVzZSBKUyBkb2VzIG5vdCBzdXBwb3J0IGVmZmVjdGl2ZQogIHRoaXMuZHluX2x0cmVlICA9IG5ldyB1dGlscy5CdWYxNihIRUFQX1NJWkUgKiAyKTsKICB0aGlzLmR5bl9kdHJlZSAgPSBuZXcgdXRpbHMuQnVmMTYoKDIgKiBEX0NPREVTICsgMSkgKiAyKTsKICB0aGlzLmJsX3RyZWUgICAgPSBuZXcgdXRpbHMuQnVmMTYoKDIgKiBCTF9DT0RFUyArIDEpICogMik7CiAgemVybyh0aGlzLmR5bl9sdHJlZSk7CiAgemVybyh0aGlzLmR5bl9kdHJlZSk7CiAgemVybyh0aGlzLmJsX3RyZWUpOwoKICB0aGlzLmxfZGVzYyAgID0gbnVsbDsgICAgICAgICAvKiBkZXNjLiBmb3IgbGl0ZXJhbCB0cmVlICovCiAgdGhpcy5kX2Rlc2MgICA9IG51bGw7ICAgICAgICAgLyogZGVzYy4gZm9yIGRpc3RhbmNlIHRyZWUgKi8KICB0aGlzLmJsX2Rlc2MgID0gbnVsbDsgICAgICAgICAvKiBkZXNjLiBmb3IgYml0IGxlbmd0aCB0cmVlICovCgogIC8vdXNoIGJsX2NvdW50W01BWF9CSVRTKzFdOwogIHRoaXMuYmxfY291bnQgPSBuZXcgdXRpbHMuQnVmMTYoTUFYX0JJVFMgKyAxKTsKICAvKiBudW1iZXIgb2YgY29kZXMgYXQgZWFjaCBiaXQgbGVuZ3RoIGZvciBhbiBvcHRpbWFsIHRyZWUgKi8KCiAgLy9pbnQgaGVhcFsyKkxfQ09ERVMrMV07ICAgICAgLyogaGVhcCB1c2VkIHRvIGJ1aWxkIHRoZSBIdWZmbWFuIHRyZWVzICovCiAgdGhpcy5oZWFwID0gbmV3IHV0aWxzLkJ1ZjE2KDIgKiBMX0NPREVTICsgMSk7ICAvKiBoZWFwIHVzZWQgdG8gYnVpbGQgdGhlIEh1ZmZtYW4gdHJlZXMgKi8KICB6ZXJvKHRoaXMuaGVhcCk7CgogIHRoaXMuaGVhcF9sZW4gPSAwOyAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgaGVhcCAqLwogIHRoaXMuaGVhcF9tYXggPSAwOyAgICAgICAgICAgICAgIC8qIGVsZW1lbnQgb2YgbGFyZ2VzdCBmcmVxdWVuY3kgKi8KICAvKiBUaGUgc29ucyBvZiBoZWFwW25dIGFyZSBoZWFwWzIqbl0gYW5kIGhlYXBbMipuKzFdLiBoZWFwWzBdIGlzIG5vdCB1c2VkLgogICAqIFRoZSBzYW1lIGhlYXAgYXJyYXkgaXMgdXNlZCB0byBidWlsZCBhbGwgdHJlZXMuCiAgICovCgogIHRoaXMuZGVwdGggPSBuZXcgdXRpbHMuQnVmMTYoMiAqIExfQ09ERVMgKyAxKTsgLy91Y2ggZGVwdGhbMipMX0NPREVTKzFdOwogIHplcm8odGhpcy5kZXB0aCk7CiAgLyogRGVwdGggb2YgZWFjaCBzdWJ0cmVlIHVzZWQgYXMgdGllIGJyZWFrZXIgZm9yIHRyZWVzIG9mIGVxdWFsIGZyZXF1ZW5jeQogICAqLwoKICB0aGlzLmxfYnVmID0gMDsgICAgICAgICAgLyogYnVmZmVyIGluZGV4IGZvciBsaXRlcmFscyBvciBsZW5ndGhzICovCgogIHRoaXMubGl0X2J1ZnNpemUgPSAwOwogIC8qIFNpemUgb2YgbWF0Y2ggYnVmZmVyIGZvciBsaXRlcmFscy9sZW5ndGhzLiAgVGhlcmUgYXJlIDQgcmVhc29ucyBmb3IKICAgKiBsaW1pdGluZyBsaXRfYnVmc2l6ZSB0byA2NEs6CiAgICogICAtIGZyZXF1ZW5jaWVzIGNhbiBiZSBrZXB0IGluIDE2IGJpdCBjb3VudGVycwogICAqICAgLSBpZiBjb21wcmVzc2lvbiBpcyBub3Qgc3VjY2Vzc2Z1bCBmb3IgdGhlIGZpcnN0IGJsb2NrLCBhbGwgaW5wdXQKICAgKiAgICAgZGF0YSBpcyBzdGlsbCBpbiB0aGUgd2luZG93IHNvIHdlIGNhbiBzdGlsbCBlbWl0IGEgc3RvcmVkIGJsb2NrIGV2ZW4KICAgKiAgICAgd2hlbiBpbnB1dCBjb21lcyBmcm9tIHN0YW5kYXJkIGlucHV0LiAgKFRoaXMgY2FuIGFsc28gYmUgZG9uZSBmb3IKICAgKiAgICAgYWxsIGJsb2NrcyBpZiBsaXRfYnVmc2l6ZSBpcyBub3QgZ3JlYXRlciB0aGFuIDMySy4pCiAgICogICAtIGlmIGNvbXByZXNzaW9uIGlzIG5vdCBzdWNjZXNzZnVsIGZvciBhIGZpbGUgc21hbGxlciB0aGFuIDY0Sywgd2UgY2FuCiAgICogICAgIGV2ZW4gZW1pdCBhIHN0b3JlZCBmaWxlIGluc3RlYWQgb2YgYSBzdG9yZWQgYmxvY2sgKHNhdmluZyA1IGJ5dGVzKS4KICAgKiAgICAgVGhpcyBpcyBhcHBsaWNhYmxlIG9ubHkgZm9yIHppcCAobm90IGd6aXAgb3IgemxpYikuCiAgICogICAtIGNyZWF0aW5nIG5ldyBIdWZmbWFuIHRyZWVzIGxlc3MgZnJlcXVlbnRseSBtYXkgbm90IHByb3ZpZGUgZmFzdAogICAqICAgICBhZGFwdGF0aW9uIHRvIGNoYW5nZXMgaW4gdGhlIGlucHV0IGRhdGEgc3RhdGlzdGljcy4gKFRha2UgZm9yCiAgICogICAgIGV4YW1wbGUgYSBiaW5hcnkgZmlsZSB3aXRoIHBvb3JseSBjb21wcmVzc2libGUgY29kZSBmb2xsb3dlZCBieQogICAqICAgICBhIGhpZ2hseSBjb21wcmVzc2libGUgc3RyaW5nIHRhYmxlLikgU21hbGxlciBidWZmZXIgc2l6ZXMgZ2l2ZQogICAqICAgICBmYXN0IGFkYXB0YXRpb24gYnV0IGhhdmUgb2YgY291cnNlIHRoZSBvdmVyaGVhZCBvZiB0cmFuc21pdHRpbmcKICAgKiAgICAgdHJlZXMgbW9yZSBmcmVxdWVudGx5LgogICAqICAgLSBJIGNhbid0IGNvdW50IGFib3ZlIDQKICAgKi8KCiAgdGhpcy5sYXN0X2xpdCA9IDA7ICAgICAgLyogcnVubmluZyBpbmRleCBpbiBsX2J1ZiAqLwoKICB0aGlzLmRfYnVmID0gMDsKICAvKiBCdWZmZXIgaW5kZXggZm9yIGRpc3RhbmNlcy4gVG8gc2ltcGxpZnkgdGhlIGNvZGUsIGRfYnVmIGFuZCBsX2J1ZiBoYXZlCiAgICogdGhlIHNhbWUgbnVtYmVyIG9mIGVsZW1lbnRzLiBUbyB1c2UgZGlmZmVyZW50IGxlbmd0aHMsIGFuIGV4dHJhIGZsYWcKICAgKiBhcnJheSB3b3VsZCBiZSBuZWNlc3NhcnkuCiAgICovCgogIHRoaXMub3B0X2xlbiA9IDA7ICAgICAgIC8qIGJpdCBsZW5ndGggb2YgY3VycmVudCBibG9jayB3aXRoIG9wdGltYWwgdHJlZXMgKi8KICB0aGlzLnN0YXRpY19sZW4gPSAwOyAgICAvKiBiaXQgbGVuZ3RoIG9mIGN1cnJlbnQgYmxvY2sgd2l0aCBzdGF0aWMgdHJlZXMgKi8KICB0aGlzLm1hdGNoZXMgPSAwOyAgICAgICAvKiBudW1iZXIgb2Ygc3RyaW5nIG1hdGNoZXMgaW4gY3VycmVudCBibG9jayAqLwogIHRoaXMuaW5zZXJ0ID0gMDsgICAgICAgIC8qIGJ5dGVzIGF0IGVuZCBvZiB3aW5kb3cgbGVmdCB0byBpbnNlcnQgKi8KCgogIHRoaXMuYmlfYnVmID0gMDsKICAvKiBPdXRwdXQgYnVmZmVyLiBiaXRzIGFyZSBpbnNlcnRlZCBzdGFydGluZyBhdCB0aGUgYm90dG9tIChsZWFzdAogICAqIHNpZ25pZmljYW50IGJpdHMpLgogICAqLwogIHRoaXMuYmlfdmFsaWQgPSAwOwogIC8qIE51bWJlciBvZiB2YWxpZCBiaXRzIGluIGJpX2J1Zi4gIEFsbCBiaXRzIGFib3ZlIHRoZSBsYXN0IHZhbGlkIGJpdAogICAqIGFyZSBhbHdheXMgemVyby4KICAgKi8KCiAgLy8gVXNlZCBmb3Igd2luZG93IG1lbW9yeSBpbml0LiBXZSBzYWZlbHkgaWdub3JlIGl0IGZvciBKUy4gVGhhdCBtYWtlcwogIC8vIHNlbnNlIG9ubHkgZm9yIHBvaW50ZXJzIGFuZCBtZW1vcnkgY2hlY2sgdG9vbHMuCiAgLy90aGlzLmhpZ2hfd2F0ZXIgPSAwOwogIC8qIEhpZ2ggd2F0ZXIgbWFyayBvZmZzZXQgaW4gd2luZG93IGZvciBpbml0aWFsaXplZCBieXRlcyAtLSBieXRlcyBhYm92ZQogICAqIHRoaXMgYXJlIHNldCB0byB6ZXJvIGluIG9yZGVyIHRvIGF2b2lkIG1lbW9yeSBjaGVjayB3YXJuaW5ncyB3aGVuCiAgICogbG9uZ2VzdCBtYXRjaCByb3V0aW5lcyBhY2Nlc3MgYnl0ZXMgcGFzdCB0aGUgaW5wdXQuICBUaGlzIGlzIHRoZW4KICAgKiB1cGRhdGVkIHRvIHRoZSBuZXcgaGlnaCB3YXRlciBtYXJrLgogICAqLwp9CgoKZnVuY3Rpb24gZGVmbGF0ZVJlc2V0S2VlcChzdHJtKSB7CiAgdmFyIHM7CgogIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgewogICAgcmV0dXJuIGVycihzdHJtLCBaX1NUUkVBTV9FUlJPUik7CiAgfQoKICBzdHJtLnRvdGFsX2luID0gc3RybS50b3RhbF9vdXQgPSAwOwogIHN0cm0uZGF0YV90eXBlID0gWl9VTktOT1dOOwoKICBzID0gc3RybS5zdGF0ZTsKICBzLnBlbmRpbmcgPSAwOwogIHMucGVuZGluZ19vdXQgPSAwOwoKICBpZiAocy53cmFwIDwgMCkgewogICAgcy53cmFwID0gLXMud3JhcDsKICAgIC8qIHdhcyBtYWRlIG5lZ2F0aXZlIGJ5IGRlZmxhdGUoLi4uLCBaX0ZJTklTSCk7ICovCiAgfQogIHMuc3RhdHVzID0gKHMud3JhcCA/IElOSVRfU1RBVEUgOiBCVVNZX1NUQVRFKTsKICBzdHJtLmFkbGVyID0gKHMud3JhcCA9PT0gMikgPwogICAgMCAgLy8gY3JjMzIoMCwgWl9OVUxMLCAwKQogIDoKICAgIDE7IC8vIGFkbGVyMzIoMCwgWl9OVUxMLCAwKQogIHMubGFzdF9mbHVzaCA9IFpfTk9fRkxVU0g7CiAgdHJlZXMuX3RyX2luaXQocyk7CiAgcmV0dXJuIFpfT0s7Cn0KCgpmdW5jdGlvbiBkZWZsYXRlUmVzZXQoc3RybSkgewogIHZhciByZXQgPSBkZWZsYXRlUmVzZXRLZWVwKHN0cm0pOwogIGlmIChyZXQgPT09IFpfT0spIHsKICAgIGxtX2luaXQoc3RybS5zdGF0ZSk7CiAgfQogIHJldHVybiByZXQ7Cn0KCgpmdW5jdGlvbiBkZWZsYXRlU2V0SGVhZGVyKHN0cm0sIGhlYWQpIHsKICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOyB9CiAgaWYgKHN0cm0uc3RhdGUud3JhcCAhPT0gMikgeyByZXR1cm4gWl9TVFJFQU1fRVJST1I7IH0KICBzdHJtLnN0YXRlLmd6aGVhZCA9IGhlYWQ7CiAgcmV0dXJuIFpfT0s7Cn0KCgpmdW5jdGlvbiBkZWZsYXRlSW5pdDIoc3RybSwgbGV2ZWwsIG1ldGhvZCwgd2luZG93Qml0cywgbWVtTGV2ZWwsIHN0cmF0ZWd5KSB7CiAgaWYgKCFzdHJtKSB7IC8vID09PSBaX05VTEwKICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKICB9CiAgdmFyIHdyYXAgPSAxOwoKICBpZiAobGV2ZWwgPT09IFpfREVGQVVMVF9DT01QUkVTU0lPTikgewogICAgbGV2ZWwgPSA2OwogIH0KCiAgaWYgKHdpbmRvd0JpdHMgPCAwKSB7IC8qIHN1cHByZXNzIHpsaWIgd3JhcHBlciAqLwogICAgd3JhcCA9IDA7CiAgICB3aW5kb3dCaXRzID0gLXdpbmRvd0JpdHM7CiAgfQoKICBlbHNlIGlmICh3aW5kb3dCaXRzID4gMTUpIHsKICAgIHdyYXAgPSAyOyAgICAgICAgICAgLyogd3JpdGUgZ3ppcCB3cmFwcGVyIGluc3RlYWQgKi8KICAgIHdpbmRvd0JpdHMgLT0gMTY7CiAgfQoKCiAgaWYgKG1lbUxldmVsIDwgMSB8fCBtZW1MZXZlbCA+IE1BWF9NRU1fTEVWRUwgfHwgbWV0aG9kICE9PSBaX0RFRkxBVEVEIHx8CiAgICB3aW5kb3dCaXRzIDwgOCB8fCB3aW5kb3dCaXRzID4gMTUgfHwgbGV2ZWwgPCAwIHx8IGxldmVsID4gOSB8fAogICAgc3RyYXRlZ3kgPCAwIHx8IHN0cmF0ZWd5ID4gWl9GSVhFRCkgewogICAgcmV0dXJuIGVycihzdHJtLCBaX1NUUkVBTV9FUlJPUik7CiAgfQoKCiAgaWYgKHdpbmRvd0JpdHMgPT09IDgpIHsKICAgIHdpbmRvd0JpdHMgPSA5OwogIH0KICAvKiB1bnRpbCAyNTYtYnl0ZSB3aW5kb3cgYnVnIGZpeGVkICovCgogIHZhciBzID0gbmV3IERlZmxhdGVTdGF0ZSgpOwoKICBzdHJtLnN0YXRlID0gczsKICBzLnN0cm0gPSBzdHJtOwoKICBzLndyYXAgPSB3cmFwOwogIHMuZ3poZWFkID0gbnVsbDsKICBzLndfYml0cyA9IHdpbmRvd0JpdHM7CiAgcy53X3NpemUgPSAxIDw8IHMud19iaXRzOwogIHMud19tYXNrID0gcy53X3NpemUgLSAxOwoKICBzLmhhc2hfYml0cyA9IG1lbUxldmVsICsgNzsKICBzLmhhc2hfc2l6ZSA9IDEgPDwgcy5oYXNoX2JpdHM7CiAgcy5oYXNoX21hc2sgPSBzLmhhc2hfc2l6ZSAtIDE7CiAgcy5oYXNoX3NoaWZ0ID0gfn4oKHMuaGFzaF9iaXRzICsgTUlOX01BVENIIC0gMSkgLyBNSU5fTUFUQ0gpOwoKICBzLndpbmRvdyA9IG5ldyB1dGlscy5CdWY4KHMud19zaXplICogMik7CiAgcy5oZWFkID0gbmV3IHV0aWxzLkJ1ZjE2KHMuaGFzaF9zaXplKTsKICBzLnByZXYgPSBuZXcgdXRpbHMuQnVmMTYocy53X3NpemUpOwoKICAvLyBEb24ndCBuZWVkIG1lbSBpbml0IG1hZ2ljIGZvciBKUy4KICAvL3MuaGlnaF93YXRlciA9IDA7ICAvKiBub3RoaW5nIHdyaXR0ZW4gdG8gcy0+d2luZG93IHlldCAqLwoKICBzLmxpdF9idWZzaXplID0gMSA8PCAobWVtTGV2ZWwgKyA2KTsgLyogMTZLIGVsZW1lbnRzIGJ5IGRlZmF1bHQgKi8KCiAgcy5wZW5kaW5nX2J1Zl9zaXplID0gcy5saXRfYnVmc2l6ZSAqIDQ7CgogIC8vb3ZlcmxheSA9ICh1c2hmICopIFpBTExPQyhzdHJtLCBzLT5saXRfYnVmc2l6ZSwgc2l6ZW9mKHVzaCkrMik7CiAgLy9zLT5wZW5kaW5nX2J1ZiA9ICh1Y2hmICopIG92ZXJsYXk7CiAgcy5wZW5kaW5nX2J1ZiA9IG5ldyB1dGlscy5CdWY4KHMucGVuZGluZ19idWZfc2l6ZSk7CgogIC8vIEl0IGlzIG9mZnNldCBmcm9tIGBzLnBlbmRpbmdfYnVmYCAoc2l6ZSBpcyBgcy5saXRfYnVmc2l6ZSAqIDJgKQogIC8vcy0+ZF9idWYgPSBvdmVybGF5ICsgcy0+bGl0X2J1ZnNpemUvc2l6ZW9mKHVzaCk7CiAgcy5kX2J1ZiA9IDEgKiBzLmxpdF9idWZzaXplOwoKICAvL3MtPmxfYnVmID0gcy0+cGVuZGluZ19idWYgKyAoMStzaXplb2YodXNoKSkqcy0+bGl0X2J1ZnNpemU7CiAgcy5sX2J1ZiA9ICgxICsgMikgKiBzLmxpdF9idWZzaXplOwoKICBzLmxldmVsID0gbGV2ZWw7CiAgcy5zdHJhdGVneSA9IHN0cmF0ZWd5OwogIHMubWV0aG9kID0gbWV0aG9kOwoKICByZXR1cm4gZGVmbGF0ZVJlc2V0KHN0cm0pOwp9CgpmdW5jdGlvbiBkZWZsYXRlSW5pdChzdHJtLCBsZXZlbCkgewogIHJldHVybiBkZWZsYXRlSW5pdDIoc3RybSwgbGV2ZWwsIFpfREVGTEFURUQsIE1BWF9XQklUUywgREVGX01FTV9MRVZFTCwgWl9ERUZBVUxUX1NUUkFURUdZKTsKfQoKCmZ1bmN0aW9uIGRlZmxhdGUoc3RybSwgZmx1c2gpIHsKICB2YXIgb2xkX2ZsdXNoLCBzOwogIHZhciBiZWcsIHZhbDsgLy8gZm9yIGd6aXAgaGVhZGVyIHdyaXRlIG9ubHkKCiAgaWYgKCFzdHJtIHx8ICFzdHJtLnN0YXRlIHx8CiAgICBmbHVzaCA+IFpfQkxPQ0sgfHwgZmx1c2ggPCAwKSB7CiAgICByZXR1cm4gc3RybSA/IGVycihzdHJtLCBaX1NUUkVBTV9FUlJPUikgOiBaX1NUUkVBTV9FUlJPUjsKICB9CgogIHMgPSBzdHJtLnN0YXRlOwoKICBpZiAoIXN0cm0ub3V0cHV0IHx8CiAgICAgICghc3RybS5pbnB1dCAmJiBzdHJtLmF2YWlsX2luICE9PSAwKSB8fAogICAgICAocy5zdGF0dXMgPT09IEZJTklTSF9TVEFURSAmJiBmbHVzaCAhPT0gWl9GSU5JU0gpKSB7CiAgICByZXR1cm4gZXJyKHN0cm0sIChzdHJtLmF2YWlsX291dCA9PT0gMCkgPyBaX0JVRl9FUlJPUiA6IFpfU1RSRUFNX0VSUk9SKTsKICB9CgogIHMuc3RybSA9IHN0cm07IC8qIGp1c3QgaW4gY2FzZSAqLwogIG9sZF9mbHVzaCA9IHMubGFzdF9mbHVzaDsKICBzLmxhc3RfZmx1c2ggPSBmbHVzaDsKCiAgLyogV3JpdGUgdGhlIGhlYWRlciAqLwogIGlmIChzLnN0YXR1cyA9PT0gSU5JVF9TVEFURSkgewoKICAgIGlmIChzLndyYXAgPT09IDIpIHsgLy8gR1pJUCBoZWFkZXIKICAgICAgc3RybS5hZGxlciA9IDA7ICAvL2NyYzMyKDBMLCBaX05VTEwsIDApOwogICAgICBwdXRfYnl0ZShzLCAzMSk7CiAgICAgIHB1dF9ieXRlKHMsIDEzOSk7CiAgICAgIHB1dF9ieXRlKHMsIDgpOwogICAgICBpZiAoIXMuZ3poZWFkKSB7IC8vIHMtPmd6aGVhZCA9PSBaX05VTEwKICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICBwdXRfYnl0ZShzLCAwKTsKICAgICAgICBwdXRfYnl0ZShzLCBzLmxldmVsID09PSA5ID8gMiA6CiAgICAgICAgICAgICAgICAgICAgKHMuc3RyYXRlZ3kgPj0gWl9IVUZGTUFOX09OTFkgfHwgcy5sZXZlbCA8IDIgPwogICAgICAgICAgICAgICAgICAgICA0IDogMCkpOwogICAgICAgIHB1dF9ieXRlKHMsIE9TX0NPREUpOwogICAgICAgIHMuc3RhdHVzID0gQlVTWV9TVEFURTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQudGV4dCA/IDEgOiAwKSArCiAgICAgICAgICAgICAgICAgICAgKHMuZ3poZWFkLmhjcmMgPyAyIDogMCkgKwogICAgICAgICAgICAgICAgICAgICghcy5nemhlYWQuZXh0cmEgPyAwIDogNCkgKwogICAgICAgICAgICAgICAgICAgICghcy5nemhlYWQubmFtZSA/IDAgOiA4KSArCiAgICAgICAgICAgICAgICAgICAgKCFzLmd6aGVhZC5jb21tZW50ID8gMCA6IDE2KQogICAgICAgICAgICAgICAgKTsKICAgICAgICBwdXRfYnl0ZShzLCBzLmd6aGVhZC50aW1lICYgMHhmZik7CiAgICAgICAgcHV0X2J5dGUocywgKHMuZ3poZWFkLnRpbWUgPj4gOCkgJiAweGZmKTsKICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQudGltZSA+PiAxNikgJiAweGZmKTsKICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQudGltZSA+PiAyNCkgJiAweGZmKTsKICAgICAgICBwdXRfYnl0ZShzLCBzLmxldmVsID09PSA5ID8gMiA6CiAgICAgICAgICAgICAgICAgICAgKHMuc3RyYXRlZ3kgPj0gWl9IVUZGTUFOX09OTFkgfHwgcy5sZXZlbCA8IDIgPwogICAgICAgICAgICAgICAgICAgICA0IDogMCkpOwogICAgICAgIHB1dF9ieXRlKHMsIHMuZ3poZWFkLm9zICYgMHhmZik7CiAgICAgICAgaWYgKHMuZ3poZWFkLmV4dHJhICYmIHMuZ3poZWFkLmV4dHJhLmxlbmd0aCkgewogICAgICAgICAgcHV0X2J5dGUocywgcy5nemhlYWQuZXh0cmEubGVuZ3RoICYgMHhmZik7CiAgICAgICAgICBwdXRfYnl0ZShzLCAocy5nemhlYWQuZXh0cmEubGVuZ3RoID4+IDgpICYgMHhmZik7CiAgICAgICAgfQogICAgICAgIGlmIChzLmd6aGVhZC5oY3JjKSB7CiAgICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzIoc3RybS5hZGxlciwgcy5wZW5kaW5nX2J1Ziwgcy5wZW5kaW5nLCAwKTsKICAgICAgICB9CiAgICAgICAgcy5nemluZGV4ID0gMDsKICAgICAgICBzLnN0YXR1cyA9IEVYVFJBX1NUQVRFOwogICAgICB9CiAgICB9CiAgICBlbHNlIC8vIERFRkxBVEUgaGVhZGVyCiAgICB7CiAgICAgIHZhciBoZWFkZXIgPSAoWl9ERUZMQVRFRCArICgocy53X2JpdHMgLSA4KSA8PCA0KSkgPDwgODsKICAgICAgdmFyIGxldmVsX2ZsYWdzID0gLTE7CgogICAgICBpZiAocy5zdHJhdGVneSA+PSBaX0hVRkZNQU5fT05MWSB8fCBzLmxldmVsIDwgMikgewogICAgICAgIGxldmVsX2ZsYWdzID0gMDsKICAgICAgfSBlbHNlIGlmIChzLmxldmVsIDwgNikgewogICAgICAgIGxldmVsX2ZsYWdzID0gMTsKICAgICAgfSBlbHNlIGlmIChzLmxldmVsID09PSA2KSB7CiAgICAgICAgbGV2ZWxfZmxhZ3MgPSAyOwogICAgICB9IGVsc2UgewogICAgICAgIGxldmVsX2ZsYWdzID0gMzsKICAgICAgfQogICAgICBoZWFkZXIgfD0gKGxldmVsX2ZsYWdzIDw8IDYpOwogICAgICBpZiAocy5zdHJzdGFydCAhPT0gMCkgeyBoZWFkZXIgfD0gUFJFU0VUX0RJQ1Q7IH0KICAgICAgaGVhZGVyICs9IDMxIC0gKGhlYWRlciAlIDMxKTsKCiAgICAgIHMuc3RhdHVzID0gQlVTWV9TVEFURTsKICAgICAgcHV0U2hvcnRNU0IocywgaGVhZGVyKTsKCiAgICAgIC8qIFNhdmUgdGhlIGFkbGVyMzIgb2YgdGhlIHByZXNldCBkaWN0aW9uYXJ5OiAqLwogICAgICBpZiAocy5zdHJzdGFydCAhPT0gMCkgewogICAgICAgIHB1dFNob3J0TVNCKHMsIHN0cm0uYWRsZXIgPj4+IDE2KTsKICAgICAgICBwdXRTaG9ydE1TQihzLCBzdHJtLmFkbGVyICYgMHhmZmZmKTsKICAgICAgfQogICAgICBzdHJtLmFkbGVyID0gMTsgLy8gYWRsZXIzMigwTCwgWl9OVUxMLCAwKTsKICAgIH0KICB9CgovLyNpZmRlZiBHWklQCiAgaWYgKHMuc3RhdHVzID09PSBFWFRSQV9TVEFURSkgewogICAgaWYgKHMuZ3poZWFkLmV4dHJhLyogIT0gWl9OVUxMKi8pIHsKICAgICAgYmVnID0gcy5wZW5kaW5nOyAgLyogc3RhcnQgb2YgYnl0ZXMgdG8gdXBkYXRlIGNyYyAqLwoKICAgICAgd2hpbGUgKHMuZ3ppbmRleCA8IChzLmd6aGVhZC5leHRyYS5sZW5ndGggJiAweGZmZmYpKSB7CiAgICAgICAgaWYgKHMucGVuZGluZyA9PT0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgICBpZiAocy5nemhlYWQuaGNyYyAmJiBzLnBlbmRpbmcgPiBiZWcpIHsKICAgICAgICAgICAgc3RybS5hZGxlciA9IGNyYzMyKHN0cm0uYWRsZXIsIHMucGVuZGluZ19idWYsIHMucGVuZGluZyAtIGJlZywgYmVnKTsKICAgICAgICAgIH0KICAgICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgICAgICBiZWcgPSBzLnBlbmRpbmc7CiAgICAgICAgICBpZiAocy5wZW5kaW5nID09PSBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHB1dF9ieXRlKHMsIHMuZ3poZWFkLmV4dHJhW3MuZ3ppbmRleF0gJiAweGZmKTsKICAgICAgICBzLmd6aW5kZXgrKzsKICAgICAgfQogICAgICBpZiAocy5nemhlYWQuaGNyYyAmJiBzLnBlbmRpbmcgPiBiZWcpIHsKICAgICAgICBzdHJtLmFkbGVyID0gY3JjMzIoc3RybS5hZGxlciwgcy5wZW5kaW5nX2J1Ziwgcy5wZW5kaW5nIC0gYmVnLCBiZWcpOwogICAgICB9CiAgICAgIGlmIChzLmd6aW5kZXggPT09IHMuZ3poZWFkLmV4dHJhLmxlbmd0aCkgewogICAgICAgIHMuZ3ppbmRleCA9IDA7CiAgICAgICAgcy5zdGF0dXMgPSBOQU1FX1NUQVRFOwogICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgcy5zdGF0dXMgPSBOQU1FX1NUQVRFOwogICAgfQogIH0KICBpZiAocy5zdGF0dXMgPT09IE5BTUVfU1RBVEUpIHsKICAgIGlmIChzLmd6aGVhZC5uYW1lLyogIT0gWl9OVUxMKi8pIHsKICAgICAgYmVnID0gcy5wZW5kaW5nOyAgLyogc3RhcnQgb2YgYnl0ZXMgdG8gdXBkYXRlIGNyYyAqLwogICAgICAvL2ludCB2YWw7CgogICAgICBkbyB7CiAgICAgICAgaWYgKHMucGVuZGluZyA9PT0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgICBpZiAocy5nemhlYWQuaGNyYyAmJiBzLnBlbmRpbmcgPiBiZWcpIHsKICAgICAgICAgICAgc3RybS5hZGxlciA9IGNyYzMyKHN0cm0uYWRsZXIsIHMucGVuZGluZ19idWYsIHMucGVuZGluZyAtIGJlZywgYmVnKTsKICAgICAgICAgIH0KICAgICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgICAgICBiZWcgPSBzLnBlbmRpbmc7CiAgICAgICAgICBpZiAocy5wZW5kaW5nID09PSBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgICAgdmFsID0gMTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIEpTIHNwZWNpZmljOiBsaXR0bGUgbWFnaWMgdG8gYWRkIHplcm8gdGVybWluYXRvciB0byBlbmQgb2Ygc3RyaW5nCiAgICAgICAgaWYgKHMuZ3ppbmRleCA8IHMuZ3poZWFkLm5hbWUubGVuZ3RoKSB7CiAgICAgICAgICB2YWwgPSBzLmd6aGVhZC5uYW1lLmNoYXJDb2RlQXQocy5nemluZGV4KyspICYgMHhmZjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFsID0gMDsKICAgICAgICB9CiAgICAgICAgcHV0X2J5dGUocywgdmFsKTsKICAgICAgfSB3aGlsZSAodmFsICE9PSAwKTsKCiAgICAgIGlmIChzLmd6aGVhZC5oY3JjICYmIHMucGVuZGluZyA+IGJlZykgewogICAgICAgIHN0cm0uYWRsZXIgPSBjcmMzMihzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgIH0KICAgICAgaWYgKHZhbCA9PT0gMCkgewogICAgICAgIHMuZ3ppbmRleCA9IDA7CiAgICAgICAgcy5zdGF0dXMgPSBDT01NRU5UX1NUQVRFOwogICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgcy5zdGF0dXMgPSBDT01NRU5UX1NUQVRFOwogICAgfQogIH0KICBpZiAocy5zdGF0dXMgPT09IENPTU1FTlRfU1RBVEUpIHsKICAgIGlmIChzLmd6aGVhZC5jb21tZW50LyogIT0gWl9OVUxMKi8pIHsKICAgICAgYmVnID0gcy5wZW5kaW5nOyAgLyogc3RhcnQgb2YgYnl0ZXMgdG8gdXBkYXRlIGNyYyAqLwogICAgICAvL2ludCB2YWw7CgogICAgICBkbyB7CiAgICAgICAgaWYgKHMucGVuZGluZyA9PT0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgICBpZiAocy5nemhlYWQuaGNyYyAmJiBzLnBlbmRpbmcgPiBiZWcpIHsKICAgICAgICAgICAgc3RybS5hZGxlciA9IGNyYzMyKHN0cm0uYWRsZXIsIHMucGVuZGluZ19idWYsIHMucGVuZGluZyAtIGJlZywgYmVnKTsKICAgICAgICAgIH0KICAgICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgICAgICBiZWcgPSBzLnBlbmRpbmc7CiAgICAgICAgICBpZiAocy5wZW5kaW5nID09PSBzLnBlbmRpbmdfYnVmX3NpemUpIHsKICAgICAgICAgICAgdmFsID0gMTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIEpTIHNwZWNpZmljOiBsaXR0bGUgbWFnaWMgdG8gYWRkIHplcm8gdGVybWluYXRvciB0byBlbmQgb2Ygc3RyaW5nCiAgICAgICAgaWYgKHMuZ3ppbmRleCA8IHMuZ3poZWFkLmNvbW1lbnQubGVuZ3RoKSB7CiAgICAgICAgICB2YWwgPSBzLmd6aGVhZC5jb21tZW50LmNoYXJDb2RlQXQocy5nemluZGV4KyspICYgMHhmZjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFsID0gMDsKICAgICAgICB9CiAgICAgICAgcHV0X2J5dGUocywgdmFsKTsKICAgICAgfSB3aGlsZSAodmFsICE9PSAwKTsKCiAgICAgIGlmIChzLmd6aGVhZC5oY3JjICYmIHMucGVuZGluZyA+IGJlZykgewogICAgICAgIHN0cm0uYWRsZXIgPSBjcmMzMihzdHJtLmFkbGVyLCBzLnBlbmRpbmdfYnVmLCBzLnBlbmRpbmcgLSBiZWcsIGJlZyk7CiAgICAgIH0KICAgICAgaWYgKHZhbCA9PT0gMCkgewogICAgICAgIHMuc3RhdHVzID0gSENSQ19TVEFURTsKICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgIHMuc3RhdHVzID0gSENSQ19TVEFURTsKICAgIH0KICB9CiAgaWYgKHMuc3RhdHVzID09PSBIQ1JDX1NUQVRFKSB7CiAgICBpZiAocy5nemhlYWQuaGNyYykgewogICAgICBpZiAocy5wZW5kaW5nICsgMiA+IHMucGVuZGluZ19idWZfc2l6ZSkgewogICAgICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICAgIH0KICAgICAgaWYgKHMucGVuZGluZyArIDIgPD0gcy5wZW5kaW5nX2J1Zl9zaXplKSB7CiAgICAgICAgcHV0X2J5dGUocywgc3RybS5hZGxlciAmIDB4ZmYpOwogICAgICAgIHB1dF9ieXRlKHMsIChzdHJtLmFkbGVyID4+IDgpICYgMHhmZik7CiAgICAgICAgc3RybS5hZGxlciA9IDA7IC8vY3JjMzIoMEwsIFpfTlVMTCwgMCk7CiAgICAgICAgcy5zdGF0dXMgPSBCVVNZX1NUQVRFOwogICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgcy5zdGF0dXMgPSBCVVNZX1NUQVRFOwogICAgfQogIH0KLy8jZW5kaWYKCiAgLyogRmx1c2ggYXMgbXVjaCBwZW5kaW5nIG91dHB1dCBhcyBwb3NzaWJsZSAqLwogIGlmIChzLnBlbmRpbmcgIT09IDApIHsKICAgIGZsdXNoX3BlbmRpbmcoc3RybSk7CiAgICBpZiAoc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgLyogU2luY2UgYXZhaWxfb3V0IGlzIDAsIGRlZmxhdGUgd2lsbCBiZSBjYWxsZWQgYWdhaW4gd2l0aAogICAgICAgKiBtb3JlIG91dHB1dCBzcGFjZSwgYnV0IHBvc3NpYmx5IHdpdGggYm90aCBwZW5kaW5nIGFuZAogICAgICAgKiBhdmFpbF9pbiBlcXVhbCB0byB6ZXJvLiBUaGVyZSB3b24ndCBiZSBhbnl0aGluZyB0byBkbywKICAgICAgICogYnV0IHRoaXMgaXMgbm90IGFuIGVycm9yIHNpdHVhdGlvbiBzbyBtYWtlIHN1cmUgd2UKICAgICAgICogcmV0dXJuIE9LIGluc3RlYWQgb2YgQlVGX0VSUk9SIGF0IG5leHQgY2FsbCBvZiBkZWZsYXRlOgogICAgICAgKi8KICAgICAgcy5sYXN0X2ZsdXNoID0gLTE7CiAgICAgIHJldHVybiBaX09LOwogICAgfQoKICAgIC8qIE1ha2Ugc3VyZSB0aGVyZSBpcyBzb21ldGhpbmcgdG8gZG8gYW5kIGF2b2lkIGR1cGxpY2F0ZSBjb25zZWN1dGl2ZQogICAgICogZmx1c2hlcy4gRm9yIHJlcGVhdGVkIGFuZCB1c2VsZXNzIGNhbGxzIHdpdGggWl9GSU5JU0gsIHdlIGtlZXAKICAgICAqIHJldHVybmluZyBaX1NUUkVBTV9FTkQgaW5zdGVhZCBvZiBaX0JVRl9FUlJPUi4KICAgICAqLwogIH0gZWxzZSBpZiAoc3RybS5hdmFpbF9pbiA9PT0gMCAmJiByYW5rKGZsdXNoKSA8PSByYW5rKG9sZF9mbHVzaCkgJiYKICAgIGZsdXNoICE9PSBaX0ZJTklTSCkgewogICAgcmV0dXJuIGVycihzdHJtLCBaX0JVRl9FUlJPUik7CiAgfQoKICAvKiBVc2VyIG11c3Qgbm90IHByb3ZpZGUgbW9yZSBpbnB1dCBhZnRlciB0aGUgZmlyc3QgRklOSVNIOiAqLwogIGlmIChzLnN0YXR1cyA9PT0gRklOSVNIX1NUQVRFICYmIHN0cm0uYXZhaWxfaW4gIT09IDApIHsKICAgIHJldHVybiBlcnIoc3RybSwgWl9CVUZfRVJST1IpOwogIH0KCiAgLyogU3RhcnQgYSBuZXcgYmxvY2sgb3IgY29udGludWUgdGhlIGN1cnJlbnQgb25lLgogICAqLwogIGlmIChzdHJtLmF2YWlsX2luICE9PSAwIHx8IHMubG9va2FoZWFkICE9PSAwIHx8CiAgICAoZmx1c2ggIT09IFpfTk9fRkxVU0ggJiYgcy5zdGF0dXMgIT09IEZJTklTSF9TVEFURSkpIHsKICAgIHZhciBic3RhdGUgPSAocy5zdHJhdGVneSA9PT0gWl9IVUZGTUFOX09OTFkpID8gZGVmbGF0ZV9odWZmKHMsIGZsdXNoKSA6CiAgICAgIChzLnN0cmF0ZWd5ID09PSBaX1JMRSA/IGRlZmxhdGVfcmxlKHMsIGZsdXNoKSA6CiAgICAgICAgY29uZmlndXJhdGlvbl90YWJsZVtzLmxldmVsXS5mdW5jKHMsIGZsdXNoKSk7CgogICAgaWYgKGJzdGF0ZSA9PT0gQlNfRklOSVNIX1NUQVJURUQgfHwgYnN0YXRlID09PSBCU19GSU5JU0hfRE9ORSkgewogICAgICBzLnN0YXR1cyA9IEZJTklTSF9TVEFURTsKICAgIH0KICAgIGlmIChic3RhdGUgPT09IEJTX05FRURfTU9SRSB8fCBic3RhdGUgPT09IEJTX0ZJTklTSF9TVEFSVEVEKSB7CiAgICAgIGlmIChzdHJtLmF2YWlsX291dCA9PT0gMCkgewogICAgICAgIHMubGFzdF9mbHVzaCA9IC0xOwogICAgICAgIC8qIGF2b2lkIEJVRl9FUlJPUiBuZXh0IGNhbGwsIHNlZSBhYm92ZSAqLwogICAgICB9CiAgICAgIHJldHVybiBaX09LOwogICAgICAvKiBJZiBmbHVzaCAhPSBaX05PX0ZMVVNIICYmIGF2YWlsX291dCA9PSAwLCB0aGUgbmV4dCBjYWxsCiAgICAgICAqIG9mIGRlZmxhdGUgc2hvdWxkIHVzZSB0aGUgc2FtZSBmbHVzaCBwYXJhbWV0ZXIgdG8gbWFrZSBzdXJlCiAgICAgICAqIHRoYXQgdGhlIGZsdXNoIGlzIGNvbXBsZXRlLiBTbyB3ZSBkb24ndCBoYXZlIHRvIG91dHB1dCBhbgogICAgICAgKiBlbXB0eSBibG9jayBoZXJlLCB0aGlzIHdpbGwgYmUgZG9uZSBhdCBuZXh0IGNhbGwuIFRoaXMgYWxzbwogICAgICAgKiBlbnN1cmVzIHRoYXQgZm9yIGEgdmVyeSBzbWFsbCBvdXRwdXQgYnVmZmVyLCB3ZSBlbWl0IGF0IG1vc3QKICAgICAgICogb25lIGVtcHR5IGJsb2NrLgogICAgICAgKi8KICAgIH0KICAgIGlmIChic3RhdGUgPT09IEJTX0JMT0NLX0RPTkUpIHsKICAgICAgaWYgKGZsdXNoID09PSBaX1BBUlRJQUxfRkxVU0gpIHsKICAgICAgICB0cmVlcy5fdHJfYWxpZ24ocyk7CiAgICAgIH0KICAgICAgZWxzZSBpZiAoZmx1c2ggIT09IFpfQkxPQ0spIHsgLyogRlVMTF9GTFVTSCBvciBTWU5DX0ZMVVNIICovCgogICAgICAgIHRyZWVzLl90cl9zdG9yZWRfYmxvY2socywgMCwgMCwgZmFsc2UpOwogICAgICAgIC8qIEZvciBhIGZ1bGwgZmx1c2gsIHRoaXMgZW1wdHkgYmxvY2sgd2lsbCBiZSByZWNvZ25pemVkCiAgICAgICAgICogYXMgYSBzcGVjaWFsIG1hcmtlciBieSBpbmZsYXRlX3N5bmMoKS4KICAgICAgICAgKi8KICAgICAgICBpZiAoZmx1c2ggPT09IFpfRlVMTF9GTFVTSCkgewogICAgICAgICAgLyoqKiBDTEVBUl9IQVNIKHMpOyAqKiovICAgICAgICAgICAgIC8qIGZvcmdldCBoaXN0b3J5ICovCiAgICAgICAgICB6ZXJvKHMuaGVhZCk7IC8vIEZpbGwgd2l0aCBOSUwgKD0gMCk7CgogICAgICAgICAgaWYgKHMubG9va2FoZWFkID09PSAwKSB7CiAgICAgICAgICAgIHMuc3Ryc3RhcnQgPSAwOwogICAgICAgICAgICBzLmJsb2NrX3N0YXJ0ID0gMDsKICAgICAgICAgICAgcy5pbnNlcnQgPSAwOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmbHVzaF9wZW5kaW5nKHN0cm0pOwogICAgICBpZiAoc3RybS5hdmFpbF9vdXQgPT09IDApIHsKICAgICAgICBzLmxhc3RfZmx1c2ggPSAtMTsgLyogYXZvaWQgQlVGX0VSUk9SIGF0IG5leHQgY2FsbCwgc2VlIGFib3ZlICovCiAgICAgICAgcmV0dXJuIFpfT0s7CiAgICAgIH0KICAgIH0KICB9CiAgLy9Bc3NlcnQoc3RybS0+YXZhaWxfb3V0ID4gMCwgImJ1ZzIiKTsKICAvL2lmIChzdHJtLmF2YWlsX291dCA8PSAwKSB7IHRocm93IG5ldyBFcnJvcigiYnVnMiIpO30KCiAgaWYgKGZsdXNoICE9PSBaX0ZJTklTSCkgeyByZXR1cm4gWl9PSzsgfQogIGlmIChzLndyYXAgPD0gMCkgeyByZXR1cm4gWl9TVFJFQU1fRU5EOyB9CgogIC8qIFdyaXRlIHRoZSB0cmFpbGVyICovCiAgaWYgKHMud3JhcCA9PT0gMikgewogICAgcHV0X2J5dGUocywgc3RybS5hZGxlciAmIDB4ZmYpOwogICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gOCkgJiAweGZmKTsKICAgIHB1dF9ieXRlKHMsIChzdHJtLmFkbGVyID4+IDE2KSAmIDB4ZmYpOwogICAgcHV0X2J5dGUocywgKHN0cm0uYWRsZXIgPj4gMjQpICYgMHhmZik7CiAgICBwdXRfYnl0ZShzLCBzdHJtLnRvdGFsX2luICYgMHhmZik7CiAgICBwdXRfYnl0ZShzLCAoc3RybS50b3RhbF9pbiA+PiA4KSAmIDB4ZmYpOwogICAgcHV0X2J5dGUocywgKHN0cm0udG90YWxfaW4gPj4gMTYpICYgMHhmZik7CiAgICBwdXRfYnl0ZShzLCAoc3RybS50b3RhbF9pbiA+PiAyNCkgJiAweGZmKTsKICB9CiAgZWxzZQogIHsKICAgIHB1dFNob3J0TVNCKHMsIHN0cm0uYWRsZXIgPj4+IDE2KTsKICAgIHB1dFNob3J0TVNCKHMsIHN0cm0uYWRsZXIgJiAweGZmZmYpOwogIH0KCiAgZmx1c2hfcGVuZGluZyhzdHJtKTsKICAvKiBJZiBhdmFpbF9vdXQgaXMgemVybywgdGhlIGFwcGxpY2F0aW9uIHdpbGwgY2FsbCBkZWZsYXRlIGFnYWluCiAgICogdG8gZmx1c2ggdGhlIHJlc3QuCiAgICovCiAgaWYgKHMud3JhcCA+IDApIHsgcy53cmFwID0gLXMud3JhcDsgfQogIC8qIHdyaXRlIHRoZSB0cmFpbGVyIG9ubHkgb25jZSEgKi8KICByZXR1cm4gcy5wZW5kaW5nICE9PSAwID8gWl9PSyA6IFpfU1RSRUFNX0VORDsKfQoKZnVuY3Rpb24gZGVmbGF0ZUVuZChzdHJtKSB7CiAgdmFyIHN0YXR1czsKCiAgaWYgKCFzdHJtLyo9PSBaX05VTEwqLyB8fCAhc3RybS5zdGF0ZS8qPT0gWl9OVUxMKi8pIHsKICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKICB9CgogIHN0YXR1cyA9IHN0cm0uc3RhdGUuc3RhdHVzOwogIGlmIChzdGF0dXMgIT09IElOSVRfU1RBVEUgJiYKICAgIHN0YXR1cyAhPT0gRVhUUkFfU1RBVEUgJiYKICAgIHN0YXR1cyAhPT0gTkFNRV9TVEFURSAmJgogICAgc3RhdHVzICE9PSBDT01NRU5UX1NUQVRFICYmCiAgICBzdGF0dXMgIT09IEhDUkNfU1RBVEUgJiYKICAgIHN0YXR1cyAhPT0gQlVTWV9TVEFURSAmJgogICAgc3RhdHVzICE9PSBGSU5JU0hfU1RBVEUKICApIHsKICAgIHJldHVybiBlcnIoc3RybSwgWl9TVFJFQU1fRVJST1IpOwogIH0KCiAgc3RybS5zdGF0ZSA9IG51bGw7CgogIHJldHVybiBzdGF0dXMgPT09IEJVU1lfU1RBVEUgPyBlcnIoc3RybSwgWl9EQVRBX0VSUk9SKSA6IFpfT0s7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIEluaXRpYWxpemVzIHRoZSBjb21wcmVzc2lvbiBkaWN0aW9uYXJ5IGZyb20gdGhlIGdpdmVuIGJ5dGUKICogc2VxdWVuY2Ugd2l0aG91dCBwcm9kdWNpbmcgYW55IGNvbXByZXNzZWQgb3V0cHV0LgogKi8KZnVuY3Rpb24gZGVmbGF0ZVNldERpY3Rpb25hcnkoc3RybSwgZGljdGlvbmFyeSkgewogIHZhciBkaWN0TGVuZ3RoID0gZGljdGlvbmFyeS5sZW5ndGg7CgogIHZhciBzOwogIHZhciBzdHIsIG47CiAgdmFyIHdyYXA7CiAgdmFyIGF2YWlsOwogIHZhciBuZXh0OwogIHZhciBpbnB1dDsKICB2YXIgdG1wRGljdDsKCiAgaWYgKCFzdHJtLyo9PSBaX05VTEwqLyB8fCAhc3RybS5zdGF0ZS8qPT0gWl9OVUxMKi8pIHsKICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKICB9CgogIHMgPSBzdHJtLnN0YXRlOwogIHdyYXAgPSBzLndyYXA7CgogIGlmICh3cmFwID09PSAyIHx8ICh3cmFwID09PSAxICYmIHMuc3RhdHVzICE9PSBJTklUX1NUQVRFKSB8fCBzLmxvb2thaGVhZCkgewogICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOwogIH0KCiAgLyogd2hlbiB1c2luZyB6bGliIHdyYXBwZXJzLCBjb21wdXRlIEFkbGVyLTMyIGZvciBwcm92aWRlZCBkaWN0aW9uYXJ5ICovCiAgaWYgKHdyYXAgPT09IDEpIHsKICAgIC8qIGFkbGVyMzIoc3RybS0+YWRsZXIsIGRpY3Rpb25hcnksIGRpY3RMZW5ndGgpOyAqLwogICAgc3RybS5hZGxlciA9IGFkbGVyMzIoc3RybS5hZGxlciwgZGljdGlvbmFyeSwgZGljdExlbmd0aCwgMCk7CiAgfQoKICBzLndyYXAgPSAwOyAgIC8qIGF2b2lkIGNvbXB1dGluZyBBZGxlci0zMiBpbiByZWFkX2J1ZiAqLwoKICAvKiBpZiBkaWN0aW9uYXJ5IHdvdWxkIGZpbGwgd2luZG93LCBqdXN0IHJlcGxhY2UgdGhlIGhpc3RvcnkgKi8KICBpZiAoZGljdExlbmd0aCA+PSBzLndfc2l6ZSkgewogICAgaWYgKHdyYXAgPT09IDApIHsgICAgICAgICAgICAvKiBhbHJlYWR5IGVtcHR5IG90aGVyd2lzZSAqLwogICAgICAvKioqIENMRUFSX0hBU0gocyk7ICoqKi8KICAgICAgemVybyhzLmhlYWQpOyAvLyBGaWxsIHdpdGggTklMICg9IDApOwogICAgICBzLnN0cnN0YXJ0ID0gMDsKICAgICAgcy5ibG9ja19zdGFydCA9IDA7CiAgICAgIHMuaW5zZXJ0ID0gMDsKICAgIH0KICAgIC8qIHVzZSB0aGUgdGFpbCAqLwogICAgLy8gZGljdGlvbmFyeSA9IGRpY3Rpb25hcnkuc2xpY2UoZGljdExlbmd0aCAtIHMud19zaXplKTsKICAgIHRtcERpY3QgPSBuZXcgdXRpbHMuQnVmOChzLndfc2l6ZSk7CiAgICB1dGlscy5hcnJheVNldCh0bXBEaWN0LCBkaWN0aW9uYXJ5LCBkaWN0TGVuZ3RoIC0gcy53X3NpemUsIHMud19zaXplLCAwKTsKICAgIGRpY3Rpb25hcnkgPSB0bXBEaWN0OwogICAgZGljdExlbmd0aCA9IHMud19zaXplOwogIH0KICAvKiBpbnNlcnQgZGljdGlvbmFyeSBpbnRvIHdpbmRvdyBhbmQgaGFzaCAqLwogIGF2YWlsID0gc3RybS5hdmFpbF9pbjsKICBuZXh0ID0gc3RybS5uZXh0X2luOwogIGlucHV0ID0gc3RybS5pbnB1dDsKICBzdHJtLmF2YWlsX2luID0gZGljdExlbmd0aDsKICBzdHJtLm5leHRfaW4gPSAwOwogIHN0cm0uaW5wdXQgPSBkaWN0aW9uYXJ5OwogIGZpbGxfd2luZG93KHMpOwogIHdoaWxlIChzLmxvb2thaGVhZCA+PSBNSU5fTUFUQ0gpIHsKICAgIHN0ciA9IHMuc3Ryc3RhcnQ7CiAgICBuID0gcy5sb29rYWhlYWQgLSAoTUlOX01BVENIIC0gMSk7CiAgICBkbyB7CiAgICAgIC8qIFVQREFURV9IQVNIKHMsIHMtPmluc19oLCBzLT53aW5kb3dbc3RyICsgTUlOX01BVENILTFdKTsgKi8KICAgICAgcy5pbnNfaCA9ICgocy5pbnNfaCA8PCBzLmhhc2hfc2hpZnQpIF4gcy53aW5kb3dbc3RyICsgTUlOX01BVENIIC0gMV0pICYgcy5oYXNoX21hc2s7CgogICAgICBzLnByZXZbc3RyICYgcy53X21hc2tdID0gcy5oZWFkW3MuaW5zX2hdOwoKICAgICAgcy5oZWFkW3MuaW5zX2hdID0gc3RyOwogICAgICBzdHIrKzsKICAgIH0gd2hpbGUgKC0tbik7CiAgICBzLnN0cnN0YXJ0ID0gc3RyOwogICAgcy5sb29rYWhlYWQgPSBNSU5fTUFUQ0ggLSAxOwogICAgZmlsbF93aW5kb3cocyk7CiAgfQogIHMuc3Ryc3RhcnQgKz0gcy5sb29rYWhlYWQ7CiAgcy5ibG9ja19zdGFydCA9IHMuc3Ryc3RhcnQ7CiAgcy5pbnNlcnQgPSBzLmxvb2thaGVhZDsKICBzLmxvb2thaGVhZCA9IDA7CiAgcy5tYXRjaF9sZW5ndGggPSBzLnByZXZfbGVuZ3RoID0gTUlOX01BVENIIC0gMTsKICBzLm1hdGNoX2F2YWlsYWJsZSA9IDA7CiAgc3RybS5uZXh0X2luID0gbmV4dDsKICBzdHJtLmlucHV0ID0gaW5wdXQ7CiAgc3RybS5hdmFpbF9pbiA9IGF2YWlsOwogIHMud3JhcCA9IHdyYXA7CiAgcmV0dXJuIFpfT0s7Cn0KCgpleHBvcnRzLmRlZmxhdGVJbml0ID0gZGVmbGF0ZUluaXQ7CmV4cG9ydHMuZGVmbGF0ZUluaXQyID0gZGVmbGF0ZUluaXQyOwpleHBvcnRzLmRlZmxhdGVSZXNldCA9IGRlZmxhdGVSZXNldDsKZXhwb3J0cy5kZWZsYXRlUmVzZXRLZWVwID0gZGVmbGF0ZVJlc2V0S2VlcDsKZXhwb3J0cy5kZWZsYXRlU2V0SGVhZGVyID0gZGVmbGF0ZVNldEhlYWRlcjsKZXhwb3J0cy5kZWZsYXRlID0gZGVmbGF0ZTsKZXhwb3J0cy5kZWZsYXRlRW5kID0gZGVmbGF0ZUVuZDsKZXhwb3J0cy5kZWZsYXRlU2V0RGljdGlvbmFyeSA9IGRlZmxhdGVTZXREaWN0aW9uYXJ5OwpleHBvcnRzLmRlZmxhdGVJbmZvID0gJ3Bha28gZGVmbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCknOwoKLyogTm90IGltcGxlbWVudGVkCmV4cG9ydHMuZGVmbGF0ZUJvdW5kID0gZGVmbGF0ZUJvdW5kOwpleHBvcnRzLmRlZmxhdGVDb3B5ID0gZGVmbGF0ZUNvcHk7CmV4cG9ydHMuZGVmbGF0ZVBhcmFtcyA9IGRlZmxhdGVQYXJhbXM7CmV4cG9ydHMuZGVmbGF0ZVBlbmRpbmcgPSBkZWZsYXRlUGVuZGluZzsKZXhwb3J0cy5kZWZsYXRlUHJpbWUgPSBkZWZsYXRlUHJpbWU7CmV4cG9ydHMuZGVmbGF0ZVR1bmUgPSBkZWZsYXRlVHVuZTsKKi8KCgovKioqLyB9KSwKLyogMTU1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgovLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KLy8KLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCi8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCi8vCi8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAovLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0Ci8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKLy8KLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQovLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQovLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCi8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgovLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKdmFyIHV0aWxzID0gX193ZWJwYWNrX3JlcXVpcmVfXygzNCk7CgovKiBQdWJsaWMgY29uc3RhbnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCi8vdmFyIFpfRklMVEVSRUQgICAgICAgICAgPSAxOwovL3ZhciBaX0hVRkZNQU5fT05MWSAgICAgID0gMjsKLy92YXIgWl9STEUgICAgICAgICAgICAgICA9IDM7CnZhciBaX0ZJWEVEICAgICAgICAgICAgICAgPSA0OwovL3ZhciBaX0RFRkFVTFRfU1RSQVRFR1kgID0gMDsKCi8qIFBvc3NpYmxlIHZhbHVlcyBvZiB0aGUgZGF0YV90eXBlIGZpZWxkICh0aG91Z2ggc2VlIGluZmxhdGUoKSkgKi8KdmFyIFpfQklOQVJZICAgICAgICAgICAgICA9IDA7CnZhciBaX1RFWFQgICAgICAgICAgICAgICAgPSAxOwovL3ZhciBaX0FTQ0lJICAgICAgICAgICAgID0gMTsgLy8gPSBaX1RFWFQKdmFyIFpfVU5LTk9XTiAgICAgICAgICAgICA9IDI7CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCmZ1bmN0aW9uIHplcm8oYnVmKSB7IHZhciBsZW4gPSBidWYubGVuZ3RoOyB3aGlsZSAoLS1sZW4gPj0gMCkgeyBidWZbbGVuXSA9IDA7IH0gfQoKLy8gRnJvbSB6dXRpbC5oCgp2YXIgU1RPUkVEX0JMT0NLID0gMDsKdmFyIFNUQVRJQ19UUkVFUyA9IDE7CnZhciBEWU5fVFJFRVMgICAgPSAyOwovKiBUaGUgdGhyZWUga2luZHMgb2YgYmxvY2sgdHlwZSAqLwoKdmFyIE1JTl9NQVRDSCAgICA9IDM7CnZhciBNQVhfTUFUQ0ggICAgPSAyNTg7Ci8qIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIG1hdGNoIGxlbmd0aHMgKi8KCi8vIEZyb20gZGVmbGF0ZS5oCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBJbnRlcm5hbCBjb21wcmVzc2lvbiBzdGF0ZS4KICovCgp2YXIgTEVOR1RIX0NPREVTICA9IDI5OwovKiBudW1iZXIgb2YgbGVuZ3RoIGNvZGVzLCBub3QgY291bnRpbmcgdGhlIHNwZWNpYWwgRU5EX0JMT0NLIGNvZGUgKi8KCnZhciBMSVRFUkFMUyAgICAgID0gMjU2OwovKiBudW1iZXIgb2YgbGl0ZXJhbCBieXRlcyAwLi4yNTUgKi8KCnZhciBMX0NPREVTICAgICAgID0gTElURVJBTFMgKyAxICsgTEVOR1RIX0NPREVTOwovKiBudW1iZXIgb2YgTGl0ZXJhbCBvciBMZW5ndGggY29kZXMsIGluY2x1ZGluZyB0aGUgRU5EX0JMT0NLIGNvZGUgKi8KCnZhciBEX0NPREVTICAgICAgID0gMzA7Ci8qIG51bWJlciBvZiBkaXN0YW5jZSBjb2RlcyAqLwoKdmFyIEJMX0NPREVTICAgICAgPSAxOTsKLyogbnVtYmVyIG9mIGNvZGVzIHVzZWQgdG8gdHJhbnNmZXIgdGhlIGJpdCBsZW5ndGhzICovCgp2YXIgSEVBUF9TSVpFICAgICA9IDIgKiBMX0NPREVTICsgMTsKLyogbWF4aW11bSBoZWFwIHNpemUgKi8KCnZhciBNQVhfQklUUyAgICAgID0gMTU7Ci8qIEFsbCBjb2RlcyBtdXN0IG5vdCBleGNlZWQgTUFYX0JJVFMgYml0cyAqLwoKdmFyIEJ1Zl9zaXplICAgICAgPSAxNjsKLyogc2l6ZSBvZiBiaXQgYnVmZmVyIGluIGJpX2J1ZiAqLwoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBDb25zdGFudHMKICovCgp2YXIgTUFYX0JMX0JJVFMgPSA3OwovKiBCaXQgbGVuZ3RoIGNvZGVzIG11c3Qgbm90IGV4Y2VlZCBNQVhfQkxfQklUUyBiaXRzICovCgp2YXIgRU5EX0JMT0NLICAgPSAyNTY7Ci8qIGVuZCBvZiBibG9jayBsaXRlcmFsIGNvZGUgKi8KCnZhciBSRVBfM182ICAgICA9IDE2OwovKiByZXBlYXQgcHJldmlvdXMgYml0IGxlbmd0aCAzLTYgdGltZXMgKDIgYml0cyBvZiByZXBlYXQgY291bnQpICovCgp2YXIgUkVQWl8zXzEwICAgPSAxNzsKLyogcmVwZWF0IGEgemVybyBsZW5ndGggMy0xMCB0aW1lcyAgKDMgYml0cyBvZiByZXBlYXQgY291bnQpICovCgp2YXIgUkVQWl8xMV8xMzggPSAxODsKLyogcmVwZWF0IGEgemVybyBsZW5ndGggMTEtMTM4IHRpbWVzICAoNyBiaXRzIG9mIHJlcGVhdCBjb3VudCkgKi8KCi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLXNwYWNpbmcsYXJyYXktYnJhY2tldC1zcGFjaW5nICovCnZhciBleHRyYV9sYml0cyA9ICAgLyogZXh0cmEgYml0cyBmb3IgZWFjaCBsZW5ndGggY29kZSAqLwogIFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDBdOwoKdmFyIGV4dHJhX2RiaXRzID0gICAvKiBleHRyYSBiaXRzIGZvciBlYWNoIGRpc3RhbmNlIGNvZGUgKi8KICBbMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxM107Cgp2YXIgZXh0cmFfYmxiaXRzID0gIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggYml0IGxlbmd0aCBjb2RlICovCiAgWzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwzLDddOwoKdmFyIGJsX29yZGVyID0KICBbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV07Ci8qIGVzbGludC1lbmFibGUgY29tbWEtc3BhY2luZyxhcnJheS1icmFja2V0LXNwYWNpbmcgKi8KCi8qIFRoZSBsZW5ndGhzIG9mIHRoZSBiaXQgbGVuZ3RoIGNvZGVzIGFyZSBzZW50IGluIG9yZGVyIG9mIGRlY3JlYXNpbmcKICogcHJvYmFiaWxpdHksIHRvIGF2b2lkIHRyYW5zbWl0dGluZyB0aGUgbGVuZ3RocyBmb3IgdW51c2VkIGJpdCBsZW5ndGggY29kZXMuCiAqLwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIExvY2FsIGRhdGEuIFRoZXNlIGFyZSBpbml0aWFsaXplZCBvbmx5IG9uY2UuCiAqLwoKLy8gV2UgcHJlLWZpbGwgYXJyYXlzIHdpdGggMCB0byBhdm9pZCB1bmluaXRpYWxpemVkIGdhcHMKCnZhciBESVNUX0NPREVfTEVOID0gNTEyOyAvKiBzZWUgZGVmaW5pdGlvbiBvZiBhcnJheSBkaXN0X2NvZGUgYmVsb3cgKi8KCi8vICEhISEgVXNlIGZsYXQgYXJyYXkgaW5zdGVhZCBvZiBzdHJ1Y3R1cmUsIEZyZXEgPSBpKjIsIExlbiA9IGkqMisxCnZhciBzdGF0aWNfbHRyZWUgID0gbmV3IEFycmF5KChMX0NPREVTICsgMikgKiAyKTsKemVybyhzdGF0aWNfbHRyZWUpOwovKiBUaGUgc3RhdGljIGxpdGVyYWwgdHJlZS4gU2luY2UgdGhlIGJpdCBsZW5ndGhzIGFyZSBpbXBvc2VkLCB0aGVyZSBpcyBubwogKiBuZWVkIGZvciB0aGUgTF9DT0RFUyBleHRyYSBjb2RlcyB1c2VkIGR1cmluZyBoZWFwIGNvbnN0cnVjdGlvbi4gSG93ZXZlcgogKiBUaGUgY29kZXMgMjg2IGFuZCAyODcgYXJlIG5lZWRlZCB0byBidWlsZCBhIGNhbm9uaWNhbCB0cmVlIChzZWUgX3RyX2luaXQKICogYmVsb3cpLgogKi8KCnZhciBzdGF0aWNfZHRyZWUgID0gbmV3IEFycmF5KERfQ09ERVMgKiAyKTsKemVybyhzdGF0aWNfZHRyZWUpOwovKiBUaGUgc3RhdGljIGRpc3RhbmNlIHRyZWUuIChBY3R1YWxseSBhIHRyaXZpYWwgdHJlZSBzaW5jZSBhbGwgY29kZXMgdXNlCiAqIDUgYml0cy4pCiAqLwoKdmFyIF9kaXN0X2NvZGUgICAgPSBuZXcgQXJyYXkoRElTVF9DT0RFX0xFTik7Cnplcm8oX2Rpc3RfY29kZSk7Ci8qIERpc3RhbmNlIGNvZGVzLiBUaGUgZmlyc3QgMjU2IHZhbHVlcyBjb3JyZXNwb25kIHRvIHRoZSBkaXN0YW5jZXMKICogMyAuLiAyNTgsIHRoZSBsYXN0IDI1NiB2YWx1ZXMgY29ycmVzcG9uZCB0byB0aGUgdG9wIDggYml0cyBvZgogKiB0aGUgMTUgYml0IGRpc3RhbmNlcy4KICovCgp2YXIgX2xlbmd0aF9jb2RlICA9IG5ldyBBcnJheShNQVhfTUFUQ0ggLSBNSU5fTUFUQ0ggKyAxKTsKemVybyhfbGVuZ3RoX2NvZGUpOwovKiBsZW5ndGggY29kZSBmb3IgZWFjaCBub3JtYWxpemVkIG1hdGNoIGxlbmd0aCAoMCA9PSBNSU5fTUFUQ0gpICovCgp2YXIgYmFzZV9sZW5ndGggICA9IG5ldyBBcnJheShMRU5HVEhfQ09ERVMpOwp6ZXJvKGJhc2VfbGVuZ3RoKTsKLyogRmlyc3Qgbm9ybWFsaXplZCBsZW5ndGggZm9yIGVhY2ggY29kZSAoMCA9IE1JTl9NQVRDSCkgKi8KCnZhciBiYXNlX2Rpc3QgICAgID0gbmV3IEFycmF5KERfQ09ERVMpOwp6ZXJvKGJhc2VfZGlzdCk7Ci8qIEZpcnN0IG5vcm1hbGl6ZWQgZGlzdGFuY2UgZm9yIGVhY2ggY29kZSAoMCA9IGRpc3RhbmNlIG9mIDEpICovCgoKZnVuY3Rpb24gU3RhdGljVHJlZURlc2Moc3RhdGljX3RyZWUsIGV4dHJhX2JpdHMsIGV4dHJhX2Jhc2UsIGVsZW1zLCBtYXhfbGVuZ3RoKSB7CgogIHRoaXMuc3RhdGljX3RyZWUgID0gc3RhdGljX3RyZWU7ICAvKiBzdGF0aWMgdHJlZSBvciBOVUxMICovCiAgdGhpcy5leHRyYV9iaXRzICAgPSBleHRyYV9iaXRzOyAgIC8qIGV4dHJhIGJpdHMgZm9yIGVhY2ggY29kZSBvciBOVUxMICovCiAgdGhpcy5leHRyYV9iYXNlICAgPSBleHRyYV9iYXNlOyAgIC8qIGJhc2UgaW5kZXggZm9yIGV4dHJhX2JpdHMgKi8KICB0aGlzLmVsZW1zICAgICAgICA9IGVsZW1zOyAgICAgICAgLyogbWF4IG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdHJlZSAqLwogIHRoaXMubWF4X2xlbmd0aCAgID0gbWF4X2xlbmd0aDsgICAvKiBtYXggYml0IGxlbmd0aCBmb3IgdGhlIGNvZGVzICovCgogIC8vIHNob3cgaWYgYHN0YXRpY190cmVlYCBoYXMgZGF0YSBvciBkdW1teSAtIG5lZWRlZCBmb3IgbW9ub21vcnBoaWMgb2JqZWN0cwogIHRoaXMuaGFzX3N0cmVlICAgID0gc3RhdGljX3RyZWUgJiYgc3RhdGljX3RyZWUubGVuZ3RoOwp9CgoKdmFyIHN0YXRpY19sX2Rlc2M7CnZhciBzdGF0aWNfZF9kZXNjOwp2YXIgc3RhdGljX2JsX2Rlc2M7CgoKZnVuY3Rpb24gVHJlZURlc2MoZHluX3RyZWUsIHN0YXRfZGVzYykgewogIHRoaXMuZHluX3RyZWUgPSBkeW5fdHJlZTsgICAgIC8qIHRoZSBkeW5hbWljIHRyZWUgKi8KICB0aGlzLm1heF9jb2RlID0gMDsgICAgICAgICAgICAvKiBsYXJnZXN0IGNvZGUgd2l0aCBub24gemVybyBmcmVxdWVuY3kgKi8KICB0aGlzLnN0YXRfZGVzYyA9IHN0YXRfZGVzYzsgICAvKiB0aGUgY29ycmVzcG9uZGluZyBzdGF0aWMgdHJlZSAqLwp9CgoKCmZ1bmN0aW9uIGRfY29kZShkaXN0KSB7CiAgcmV0dXJuIGRpc3QgPCAyNTYgPyBfZGlzdF9jb2RlW2Rpc3RdIDogX2Rpc3RfY29kZVsyNTYgKyAoZGlzdCA+Pj4gNyldOwp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIE91dHB1dCBhIHNob3J0IExTQiBmaXJzdCBvbiB0aGUgc3RyZWFtLgogKiBJTiBhc3NlcnRpb246IHRoZXJlIGlzIGVub3VnaCByb29tIGluIHBlbmRpbmdCdWYuCiAqLwpmdW5jdGlvbiBwdXRfc2hvcnQocywgdykgewovLyAgICBwdXRfYnl0ZShzLCAodWNoKSgodykgJiAweGZmKSk7Ci8vICAgIHB1dF9ieXRlKHMsICh1Y2gpKCh1c2gpKHcpID4+IDgpKTsKICBzLnBlbmRpbmdfYnVmW3MucGVuZGluZysrXSA9ICh3KSAmIDB4ZmY7CiAgcy5wZW5kaW5nX2J1ZltzLnBlbmRpbmcrK10gPSAodyA+Pj4gOCkgJiAweGZmOwp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFNlbmQgYSB2YWx1ZSBvbiBhIGdpdmVuIG51bWJlciBvZiBiaXRzLgogKiBJTiBhc3NlcnRpb246IGxlbmd0aCA8PSAxNiBhbmQgdmFsdWUgZml0cyBpbiBsZW5ndGggYml0cy4KICovCmZ1bmN0aW9uIHNlbmRfYml0cyhzLCB2YWx1ZSwgbGVuZ3RoKSB7CiAgaWYgKHMuYmlfdmFsaWQgPiAoQnVmX3NpemUgLSBsZW5ndGgpKSB7CiAgICBzLmJpX2J1ZiB8PSAodmFsdWUgPDwgcy5iaV92YWxpZCkgJiAweGZmZmY7CiAgICBwdXRfc2hvcnQocywgcy5iaV9idWYpOwogICAgcy5iaV9idWYgPSB2YWx1ZSA+PiAoQnVmX3NpemUgLSBzLmJpX3ZhbGlkKTsKICAgIHMuYmlfdmFsaWQgKz0gbGVuZ3RoIC0gQnVmX3NpemU7CiAgfSBlbHNlIHsKICAgIHMuYmlfYnVmIHw9ICh2YWx1ZSA8PCBzLmJpX3ZhbGlkKSAmIDB4ZmZmZjsKICAgIHMuYmlfdmFsaWQgKz0gbGVuZ3RoOwogIH0KfQoKCmZ1bmN0aW9uIHNlbmRfY29kZShzLCBjLCB0cmVlKSB7CiAgc2VuZF9iaXRzKHMsIHRyZWVbYyAqIDJdLyouQ29kZSovLCB0cmVlW2MgKiAyICsgMV0vKi5MZW4qLyk7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogUmV2ZXJzZSB0aGUgZmlyc3QgbGVuIGJpdHMgb2YgYSBjb2RlLCB1c2luZyBzdHJhaWdodGZvcndhcmQgY29kZSAoYSBmYXN0ZXIKICogbWV0aG9kIHdvdWxkIHVzZSBhIHRhYmxlKQogKiBJTiBhc3NlcnRpb246IDEgPD0gbGVuIDw9IDE1CiAqLwpmdW5jdGlvbiBiaV9yZXZlcnNlKGNvZGUsIGxlbikgewogIHZhciByZXMgPSAwOwogIGRvIHsKICAgIHJlcyB8PSBjb2RlICYgMTsKICAgIGNvZGUgPj4+PSAxOwogICAgcmVzIDw8PSAxOwogIH0gd2hpbGUgKC0tbGVuID4gMCk7CiAgcmV0dXJuIHJlcyA+Pj4gMTsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBGbHVzaCB0aGUgYml0IGJ1ZmZlciwga2VlcGluZyBhdCBtb3N0IDcgYml0cyBpbiBpdC4KICovCmZ1bmN0aW9uIGJpX2ZsdXNoKHMpIHsKICBpZiAocy5iaV92YWxpZCA9PT0gMTYpIHsKICAgIHB1dF9zaG9ydChzLCBzLmJpX2J1Zik7CiAgICBzLmJpX2J1ZiA9IDA7CiAgICBzLmJpX3ZhbGlkID0gMDsKCiAgfSBlbHNlIGlmIChzLmJpX3ZhbGlkID49IDgpIHsKICAgIHMucGVuZGluZ19idWZbcy5wZW5kaW5nKytdID0gcy5iaV9idWYgJiAweGZmOwogICAgcy5iaV9idWYgPj49IDg7CiAgICBzLmJpX3ZhbGlkIC09IDg7CiAgfQp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIENvbXB1dGUgdGhlIG9wdGltYWwgYml0IGxlbmd0aHMgZm9yIGEgdHJlZSBhbmQgdXBkYXRlIHRoZSB0b3RhbCBiaXQgbGVuZ3RoCiAqIGZvciB0aGUgY3VycmVudCBibG9jay4KICogSU4gYXNzZXJ0aW9uOiB0aGUgZmllbGRzIGZyZXEgYW5kIGRhZCBhcmUgc2V0LCBoZWFwW2hlYXBfbWF4XSBhbmQKICogICAgYWJvdmUgYXJlIHRoZSB0cmVlIG5vZGVzIHNvcnRlZCBieSBpbmNyZWFzaW5nIGZyZXF1ZW5jeS4KICogT1VUIGFzc2VydGlvbnM6IHRoZSBmaWVsZCBsZW4gaXMgc2V0IHRvIHRoZSBvcHRpbWFsIGJpdCBsZW5ndGgsIHRoZQogKiAgICAgYXJyYXkgYmxfY291bnQgY29udGFpbnMgdGhlIGZyZXF1ZW5jaWVzIGZvciBlYWNoIGJpdCBsZW5ndGguCiAqICAgICBUaGUgbGVuZ3RoIG9wdF9sZW4gaXMgdXBkYXRlZDsgc3RhdGljX2xlbiBpcyBhbHNvIHVwZGF0ZWQgaWYgc3RyZWUgaXMKICogICAgIG5vdCBudWxsLgogKi8KZnVuY3Rpb24gZ2VuX2JpdGxlbihzLCBkZXNjKQovLyAgICBkZWZsYXRlX3N0YXRlICpzOwovLyAgICB0cmVlX2Rlc2MgKmRlc2M7ICAgIC8qIHRoZSB0cmVlIGRlc2NyaXB0b3IgKi8KewogIHZhciB0cmVlICAgICAgICAgICAgPSBkZXNjLmR5bl90cmVlOwogIHZhciBtYXhfY29kZSAgICAgICAgPSBkZXNjLm1heF9jb2RlOwogIHZhciBzdHJlZSAgICAgICAgICAgPSBkZXNjLnN0YXRfZGVzYy5zdGF0aWNfdHJlZTsKICB2YXIgaGFzX3N0cmVlICAgICAgID0gZGVzYy5zdGF0X2Rlc2MuaGFzX3N0cmVlOwogIHZhciBleHRyYSAgICAgICAgICAgPSBkZXNjLnN0YXRfZGVzYy5leHRyYV9iaXRzOwogIHZhciBiYXNlICAgICAgICAgICAgPSBkZXNjLnN0YXRfZGVzYy5leHRyYV9iYXNlOwogIHZhciBtYXhfbGVuZ3RoICAgICAgPSBkZXNjLnN0YXRfZGVzYy5tYXhfbGVuZ3RoOwogIHZhciBoOyAgICAgICAgICAgICAgLyogaGVhcCBpbmRleCAqLwogIHZhciBuLCBtOyAgICAgICAgICAgLyogaXRlcmF0ZSBvdmVyIHRoZSB0cmVlIGVsZW1lbnRzICovCiAgdmFyIGJpdHM7ICAgICAgICAgICAvKiBiaXQgbGVuZ3RoICovCiAgdmFyIHhiaXRzOyAgICAgICAgICAvKiBleHRyYSBiaXRzICovCiAgdmFyIGY7ICAgICAgICAgICAgICAvKiBmcmVxdWVuY3kgKi8KICB2YXIgb3ZlcmZsb3cgPSAwOyAgIC8qIG51bWJlciBvZiBlbGVtZW50cyB3aXRoIGJpdCBsZW5ndGggdG9vIGxhcmdlICovCgogIGZvciAoYml0cyA9IDA7IGJpdHMgPD0gTUFYX0JJVFM7IGJpdHMrKykgewogICAgcy5ibF9jb3VudFtiaXRzXSA9IDA7CiAgfQoKICAvKiBJbiBhIGZpcnN0IHBhc3MsIGNvbXB1dGUgdGhlIG9wdGltYWwgYml0IGxlbmd0aHMgKHdoaWNoIG1heQogICAqIG92ZXJmbG93IGluIHRoZSBjYXNlIG9mIHRoZSBiaXQgbGVuZ3RoIHRyZWUpLgogICAqLwogIHRyZWVbcy5oZWFwW3MuaGVhcF9tYXhdICogMiArIDFdLyouTGVuKi8gPSAwOyAvKiByb290IG9mIHRoZSBoZWFwICovCgogIGZvciAoaCA9IHMuaGVhcF9tYXggKyAxOyBoIDwgSEVBUF9TSVpFOyBoKyspIHsKICAgIG4gPSBzLmhlYXBbaF07CiAgICBiaXRzID0gdHJlZVt0cmVlW24gKiAyICsgMV0vKi5EYWQqLyAqIDIgKyAxXS8qLkxlbiovICsgMTsKICAgIGlmIChiaXRzID4gbWF4X2xlbmd0aCkgewogICAgICBiaXRzID0gbWF4X2xlbmd0aDsKICAgICAgb3ZlcmZsb3crKzsKICAgIH0KICAgIHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gYml0czsKICAgIC8qIFdlIG92ZXJ3cml0ZSB0cmVlW25dLkRhZCB3aGljaCBpcyBubyBsb25nZXIgbmVlZGVkICovCgogICAgaWYgKG4gPiBtYXhfY29kZSkgeyBjb250aW51ZTsgfSAvKiBub3QgYSBsZWFmIG5vZGUgKi8KCiAgICBzLmJsX2NvdW50W2JpdHNdKys7CiAgICB4Yml0cyA9IDA7CiAgICBpZiAobiA+PSBiYXNlKSB7CiAgICAgIHhiaXRzID0gZXh0cmFbbiAtIGJhc2VdOwogICAgfQogICAgZiA9IHRyZWVbbiAqIDJdLyouRnJlcSovOwogICAgcy5vcHRfbGVuICs9IGYgKiAoYml0cyArIHhiaXRzKTsKICAgIGlmIChoYXNfc3RyZWUpIHsKICAgICAgcy5zdGF0aWNfbGVuICs9IGYgKiAoc3RyZWVbbiAqIDIgKyAxXS8qLkxlbiovICsgeGJpdHMpOwogICAgfQogIH0KICBpZiAob3ZlcmZsb3cgPT09IDApIHsgcmV0dXJuOyB9CgogIC8vIFRyYWNlKChzdGRlcnIsIlxuYml0IGxlbmd0aCBvdmVyZmxvd1xuIikpOwogIC8qIFRoaXMgaGFwcGVucyBmb3IgZXhhbXBsZSBvbiBvYmoyIGFuZCBwaWMgb2YgdGhlIENhbGdhcnkgY29ycHVzICovCgogIC8qIEZpbmQgdGhlIGZpcnN0IGJpdCBsZW5ndGggd2hpY2ggY291bGQgaW5jcmVhc2U6ICovCiAgZG8gewogICAgYml0cyA9IG1heF9sZW5ndGggLSAxOwogICAgd2hpbGUgKHMuYmxfY291bnRbYml0c10gPT09IDApIHsgYml0cy0tOyB9CiAgICBzLmJsX2NvdW50W2JpdHNdLS07ICAgICAgLyogbW92ZSBvbmUgbGVhZiBkb3duIHRoZSB0cmVlICovCiAgICBzLmJsX2NvdW50W2JpdHMgKyAxXSArPSAyOyAvKiBtb3ZlIG9uZSBvdmVyZmxvdyBpdGVtIGFzIGl0cyBicm90aGVyICovCiAgICBzLmJsX2NvdW50W21heF9sZW5ndGhdLS07CiAgICAvKiBUaGUgYnJvdGhlciBvZiB0aGUgb3ZlcmZsb3cgaXRlbSBhbHNvIG1vdmVzIG9uZSBzdGVwIHVwLAogICAgICogYnV0IHRoaXMgZG9lcyBub3QgYWZmZWN0IGJsX2NvdW50W21heF9sZW5ndGhdCiAgICAgKi8KICAgIG92ZXJmbG93IC09IDI7CiAgfSB3aGlsZSAob3ZlcmZsb3cgPiAwKTsKCiAgLyogTm93IHJlY29tcHV0ZSBhbGwgYml0IGxlbmd0aHMsIHNjYW5uaW5nIGluIGluY3JlYXNpbmcgZnJlcXVlbmN5LgogICAqIGggaXMgc3RpbGwgZXF1YWwgdG8gSEVBUF9TSVpFLiAoSXQgaXMgc2ltcGxlciB0byByZWNvbnN0cnVjdCBhbGwKICAgKiBsZW5ndGhzIGluc3RlYWQgb2YgZml4aW5nIG9ubHkgdGhlIHdyb25nIG9uZXMuIFRoaXMgaWRlYSBpcyB0YWtlbgogICAqIGZyb20gJ2FyJyB3cml0dGVuIGJ5IEhhcnVoaWtvIE9rdW11cmEuKQogICAqLwogIGZvciAoYml0cyA9IG1heF9sZW5ndGg7IGJpdHMgIT09IDA7IGJpdHMtLSkgewogICAgbiA9IHMuYmxfY291bnRbYml0c107CiAgICB3aGlsZSAobiAhPT0gMCkgewogICAgICBtID0gcy5oZWFwWy0taF07CiAgICAgIGlmIChtID4gbWF4X2NvZGUpIHsgY29udGludWU7IH0KICAgICAgaWYgKHRyZWVbbSAqIDIgKyAxXS8qLkxlbiovICE9PSBiaXRzKSB7CiAgICAgICAgLy8gVHJhY2UoKHN0ZGVyciwiY29kZSAlZCBiaXRzICVkLT4lZFxuIiwgbSwgdHJlZVttXS5MZW4sIGJpdHMpKTsKICAgICAgICBzLm9wdF9sZW4gKz0gKGJpdHMgLSB0cmVlW20gKiAyICsgMV0vKi5MZW4qLykgKiB0cmVlW20gKiAyXS8qLkZyZXEqLzsKICAgICAgICB0cmVlW20gKiAyICsgMV0vKi5MZW4qLyA9IGJpdHM7CiAgICAgIH0KICAgICAgbi0tOwogICAgfQogIH0KfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBHZW5lcmF0ZSB0aGUgY29kZXMgZm9yIGEgZ2l2ZW4gdHJlZSBhbmQgYml0IGNvdW50cyAod2hpY2ggbmVlZCBub3QgYmUKICogb3B0aW1hbCkuCiAqIElOIGFzc2VydGlvbjogdGhlIGFycmF5IGJsX2NvdW50IGNvbnRhaW5zIHRoZSBiaXQgbGVuZ3RoIHN0YXRpc3RpY3MgZm9yCiAqIHRoZSBnaXZlbiB0cmVlIGFuZCB0aGUgZmllbGQgbGVuIGlzIHNldCBmb3IgYWxsIHRyZWUgZWxlbWVudHMuCiAqIE9VVCBhc3NlcnRpb246IHRoZSBmaWVsZCBjb2RlIGlzIHNldCBmb3IgYWxsIHRyZWUgZWxlbWVudHMgb2Ygbm9uCiAqICAgICB6ZXJvIGNvZGUgbGVuZ3RoLgogKi8KZnVuY3Rpb24gZ2VuX2NvZGVzKHRyZWUsIG1heF9jb2RlLCBibF9jb3VudCkKLy8gICAgY3RfZGF0YSAqdHJlZTsgICAgICAgICAgICAgLyogdGhlIHRyZWUgdG8gZGVjb3JhdGUgKi8KLy8gICAgaW50IG1heF9jb2RlOyAgICAgICAgICAgICAgLyogbGFyZ2VzdCBjb2RlIHdpdGggbm9uIHplcm8gZnJlcXVlbmN5ICovCi8vICAgIHVzaGYgKmJsX2NvdW50OyAgICAgICAgICAgIC8qIG51bWJlciBvZiBjb2RlcyBhdCBlYWNoIGJpdCBsZW5ndGggKi8KewogIHZhciBuZXh0X2NvZGUgPSBuZXcgQXJyYXkoTUFYX0JJVFMgKyAxKTsgLyogbmV4dCBjb2RlIHZhbHVlIGZvciBlYWNoIGJpdCBsZW5ndGggKi8KICB2YXIgY29kZSA9IDA7ICAgICAgICAgICAgICAvKiBydW5uaW5nIGNvZGUgdmFsdWUgKi8KICB2YXIgYml0czsgICAgICAgICAgICAgICAgICAvKiBiaXQgaW5kZXggKi8KICB2YXIgbjsgICAgICAgICAgICAgICAgICAgICAvKiBjb2RlIGluZGV4ICovCgogIC8qIFRoZSBkaXN0cmlidXRpb24gY291bnRzIGFyZSBmaXJzdCB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb2RlIHZhbHVlcwogICAqIHdpdGhvdXQgYml0IHJldmVyc2FsLgogICAqLwogIGZvciAoYml0cyA9IDE7IGJpdHMgPD0gTUFYX0JJVFM7IGJpdHMrKykgewogICAgbmV4dF9jb2RlW2JpdHNdID0gY29kZSA9IChjb2RlICsgYmxfY291bnRbYml0cyAtIDFdKSA8PCAxOwogIH0KICAvKiBDaGVjayB0aGF0IHRoZSBiaXQgY291bnRzIGluIGJsX2NvdW50IGFyZSBjb25zaXN0ZW50LiBUaGUgbGFzdCBjb2RlCiAgICogbXVzdCBiZSBhbGwgb25lcy4KICAgKi8KICAvL0Fzc2VydCAoY29kZSArIGJsX2NvdW50W01BWF9CSVRTXS0xID09ICgxPDxNQVhfQklUUyktMSwKICAvLyAgICAgICAgImluY29uc2lzdGVudCBiaXQgY291bnRzIik7CiAgLy9UcmFjZXYoKHN0ZGVyciwiXG5nZW5fY29kZXM6IG1heF9jb2RlICVkICIsIG1heF9jb2RlKSk7CgogIGZvciAobiA9IDA7ICBuIDw9IG1heF9jb2RlOyBuKyspIHsKICAgIHZhciBsZW4gPSB0cmVlW24gKiAyICsgMV0vKi5MZW4qLzsKICAgIGlmIChsZW4gPT09IDApIHsgY29udGludWU7IH0KICAgIC8qIE5vdyByZXZlcnNlIHRoZSBiaXRzICovCiAgICB0cmVlW24gKiAyXS8qLkNvZGUqLyA9IGJpX3JldmVyc2UobmV4dF9jb2RlW2xlbl0rKywgbGVuKTsKCiAgICAvL1RyYWNlY3YodHJlZSAhPSBzdGF0aWNfbHRyZWUsIChzdGRlcnIsIlxubiAlM2QgJWMgbCAlMmQgYyAlNHggKCV4KSAiLAogICAgLy8gICAgIG4sIChpc2dyYXBoKG4pID8gbiA6ICcgJyksIGxlbiwgdHJlZVtuXS5Db2RlLCBuZXh0X2NvZGVbbGVuXS0xKSk7CiAgfQp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIEluaXRpYWxpemUgdGhlIHZhcmlvdXMgJ2NvbnN0YW50JyB0YWJsZXMuCiAqLwpmdW5jdGlvbiB0cl9zdGF0aWNfaW5pdCgpIHsKICB2YXIgbjsgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgdHJlZSBlbGVtZW50cyAqLwogIHZhciBiaXRzOyAgICAgLyogYml0IGNvdW50ZXIgKi8KICB2YXIgbGVuZ3RoOyAgIC8qIGxlbmd0aCB2YWx1ZSAqLwogIHZhciBjb2RlOyAgICAgLyogY29kZSB2YWx1ZSAqLwogIHZhciBkaXN0OyAgICAgLyogZGlzdGFuY2UgaW5kZXggKi8KICB2YXIgYmxfY291bnQgPSBuZXcgQXJyYXkoTUFYX0JJVFMgKyAxKTsKICAvKiBudW1iZXIgb2YgY29kZXMgYXQgZWFjaCBiaXQgbGVuZ3RoIGZvciBhbiBvcHRpbWFsIHRyZWUgKi8KCiAgLy8gZG8gY2hlY2sgaW4gX3RyX2luaXQoKQogIC8vaWYgKHN0YXRpY19pbml0X2RvbmUpIHJldHVybjsKCiAgLyogRm9yIHNvbWUgZW1iZWRkZWQgdGFyZ2V0cywgZ2xvYmFsIHZhcmlhYmxlcyBhcmUgbm90IGluaXRpYWxpemVkOiAqLwovKiNpZmRlZiBOT19JTklUX0dMT0JBTF9QT0lOVEVSUwogIHN0YXRpY19sX2Rlc2Muc3RhdGljX3RyZWUgPSBzdGF0aWNfbHRyZWU7CiAgc3RhdGljX2xfZGVzYy5leHRyYV9iaXRzID0gZXh0cmFfbGJpdHM7CiAgc3RhdGljX2RfZGVzYy5zdGF0aWNfdHJlZSA9IHN0YXRpY19kdHJlZTsKICBzdGF0aWNfZF9kZXNjLmV4dHJhX2JpdHMgPSBleHRyYV9kYml0czsKICBzdGF0aWNfYmxfZGVzYy5leHRyYV9iaXRzID0gZXh0cmFfYmxiaXRzOwojZW5kaWYqLwoKICAvKiBJbml0aWFsaXplIHRoZSBtYXBwaW5nIGxlbmd0aCAoMC4uMjU1KSAtPiBsZW5ndGggY29kZSAoMC4uMjgpICovCiAgbGVuZ3RoID0gMDsKICBmb3IgKGNvZGUgPSAwOyBjb2RlIDwgTEVOR1RIX0NPREVTIC0gMTsgY29kZSsrKSB7CiAgICBiYXNlX2xlbmd0aFtjb2RlXSA9IGxlbmd0aDsKICAgIGZvciAobiA9IDA7IG4gPCAoMSA8PCBleHRyYV9sYml0c1tjb2RlXSk7IG4rKykgewogICAgICBfbGVuZ3RoX2NvZGVbbGVuZ3RoKytdID0gY29kZTsKICAgIH0KICB9CiAgLy9Bc3NlcnQgKGxlbmd0aCA9PSAyNTYsICJ0cl9zdGF0aWNfaW5pdDogbGVuZ3RoICE9IDI1NiIpOwogIC8qIE5vdGUgdGhhdCB0aGUgbGVuZ3RoIDI1NSAobWF0Y2ggbGVuZ3RoIDI1OCkgY2FuIGJlIHJlcHJlc2VudGVkCiAgICogaW4gdHdvIGRpZmZlcmVudCB3YXlzOiBjb2RlIDI4NCArIDUgYml0cyBvciBjb2RlIDI4NSwgc28gd2UKICAgKiBvdmVyd3JpdGUgbGVuZ3RoX2NvZGVbMjU1XSB0byB1c2UgdGhlIGJlc3QgZW5jb2Rpbmc6CiAgICovCiAgX2xlbmd0aF9jb2RlW2xlbmd0aCAtIDFdID0gY29kZTsKCiAgLyogSW5pdGlhbGl6ZSB0aGUgbWFwcGluZyBkaXN0ICgwLi4zMkspIC0+IGRpc3QgY29kZSAoMC4uMjkpICovCiAgZGlzdCA9IDA7CiAgZm9yIChjb2RlID0gMDsgY29kZSA8IDE2OyBjb2RlKyspIHsKICAgIGJhc2VfZGlzdFtjb2RlXSA9IGRpc3Q7CiAgICBmb3IgKG4gPSAwOyBuIDwgKDEgPDwgZXh0cmFfZGJpdHNbY29kZV0pOyBuKyspIHsKICAgICAgX2Rpc3RfY29kZVtkaXN0KytdID0gY29kZTsKICAgIH0KICB9CiAgLy9Bc3NlcnQgKGRpc3QgPT0gMjU2LCAidHJfc3RhdGljX2luaXQ6IGRpc3QgIT0gMjU2Iik7CiAgZGlzdCA+Pj0gNzsgLyogZnJvbSBub3cgb24sIGFsbCBkaXN0YW5jZXMgYXJlIGRpdmlkZWQgYnkgMTI4ICovCiAgZm9yICg7IGNvZGUgPCBEX0NPREVTOyBjb2RlKyspIHsKICAgIGJhc2VfZGlzdFtjb2RlXSA9IGRpc3QgPDwgNzsKICAgIGZvciAobiA9IDA7IG4gPCAoMSA8PCAoZXh0cmFfZGJpdHNbY29kZV0gLSA3KSk7IG4rKykgewogICAgICBfZGlzdF9jb2RlWzI1NiArIGRpc3QrK10gPSBjb2RlOwogICAgfQogIH0KICAvL0Fzc2VydCAoZGlzdCA9PSAyNTYsICJ0cl9zdGF0aWNfaW5pdDogMjU2K2Rpc3QgIT0gNTEyIik7CgogIC8qIENvbnN0cnVjdCB0aGUgY29kZXMgb2YgdGhlIHN0YXRpYyBsaXRlcmFsIHRyZWUgKi8KICBmb3IgKGJpdHMgPSAwOyBiaXRzIDw9IE1BWF9CSVRTOyBiaXRzKyspIHsKICAgIGJsX2NvdW50W2JpdHNdID0gMDsKICB9CgogIG4gPSAwOwogIHdoaWxlIChuIDw9IDE0MykgewogICAgc3RhdGljX2x0cmVlW24gKiAyICsgMV0vKi5MZW4qLyA9IDg7CiAgICBuKys7CiAgICBibF9jb3VudFs4XSsrOwogIH0KICB3aGlsZSAobiA8PSAyNTUpIHsKICAgIHN0YXRpY19sdHJlZVtuICogMiArIDFdLyouTGVuKi8gPSA5OwogICAgbisrOwogICAgYmxfY291bnRbOV0rKzsKICB9CiAgd2hpbGUgKG4gPD0gMjc5KSB7CiAgICBzdGF0aWNfbHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gNzsKICAgIG4rKzsKICAgIGJsX2NvdW50WzddKys7CiAgfQogIHdoaWxlIChuIDw9IDI4NykgewogICAgc3RhdGljX2x0cmVlW24gKiAyICsgMV0vKi5MZW4qLyA9IDg7CiAgICBuKys7CiAgICBibF9jb3VudFs4XSsrOwogIH0KICAvKiBDb2RlcyAyODYgYW5kIDI4NyBkbyBub3QgZXhpc3QsIGJ1dCB3ZSBtdXN0IGluY2x1ZGUgdGhlbSBpbiB0aGUKICAgKiB0cmVlIGNvbnN0cnVjdGlvbiB0byBnZXQgYSBjYW5vbmljYWwgSHVmZm1hbiB0cmVlIChsb25nZXN0IGNvZGUKICAgKiBhbGwgb25lcykKICAgKi8KICBnZW5fY29kZXMoc3RhdGljX2x0cmVlLCBMX0NPREVTICsgMSwgYmxfY291bnQpOwoKICAvKiBUaGUgc3RhdGljIGRpc3RhbmNlIHRyZWUgaXMgdHJpdmlhbDogKi8KICBmb3IgKG4gPSAwOyBuIDwgRF9DT0RFUzsgbisrKSB7CiAgICBzdGF0aWNfZHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gNTsKICAgIHN0YXRpY19kdHJlZVtuICogMl0vKi5Db2RlKi8gPSBiaV9yZXZlcnNlKG4sIDUpOwogIH0KCiAgLy8gTm93IGRhdGEgcmVhZHkgYW5kIHdlIGNhbiBpbml0IHN0YXRpYyB0cmVlcwogIHN0YXRpY19sX2Rlc2MgPSBuZXcgU3RhdGljVHJlZURlc2Moc3RhdGljX2x0cmVlLCBleHRyYV9sYml0cywgTElURVJBTFMgKyAxLCBMX0NPREVTLCBNQVhfQklUUyk7CiAgc3RhdGljX2RfZGVzYyA9IG5ldyBTdGF0aWNUcmVlRGVzYyhzdGF0aWNfZHRyZWUsIGV4dHJhX2RiaXRzLCAwLCAgICAgICAgICBEX0NPREVTLCBNQVhfQklUUyk7CiAgc3RhdGljX2JsX2Rlc2MgPSBuZXcgU3RhdGljVHJlZURlc2MobmV3IEFycmF5KDApLCBleHRyYV9ibGJpdHMsIDAsICAgICAgICAgQkxfQ09ERVMsIE1BWF9CTF9CSVRTKTsKCiAgLy9zdGF0aWNfaW5pdF9kb25lID0gdHJ1ZTsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBJbml0aWFsaXplIGEgbmV3IGJsb2NrLgogKi8KZnVuY3Rpb24gaW5pdF9ibG9jayhzKSB7CiAgdmFyIG47IC8qIGl0ZXJhdGVzIG92ZXIgdHJlZSBlbGVtZW50cyAqLwoKICAvKiBJbml0aWFsaXplIHRoZSB0cmVlcy4gKi8KICBmb3IgKG4gPSAwOyBuIDwgTF9DT0RFUzsgIG4rKykgeyBzLmR5bl9sdHJlZVtuICogMl0vKi5GcmVxKi8gPSAwOyB9CiAgZm9yIChuID0gMDsgbiA8IERfQ09ERVM7ICBuKyspIHsgcy5keW5fZHRyZWVbbiAqIDJdLyouRnJlcSovID0gMDsgfQogIGZvciAobiA9IDA7IG4gPCBCTF9DT0RFUzsgbisrKSB7IHMuYmxfdHJlZVtuICogMl0vKi5GcmVxKi8gPSAwOyB9CgogIHMuZHluX2x0cmVlW0VORF9CTE9DSyAqIDJdLyouRnJlcSovID0gMTsKICBzLm9wdF9sZW4gPSBzLnN0YXRpY19sZW4gPSAwOwogIHMubGFzdF9saXQgPSBzLm1hdGNoZXMgPSAwOwp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIEZsdXNoIHRoZSBiaXQgYnVmZmVyIGFuZCBhbGlnbiB0aGUgb3V0cHV0IG9uIGEgYnl0ZSBib3VuZGFyeQogKi8KZnVuY3Rpb24gYmlfd2luZHVwKHMpCnsKICBpZiAocy5iaV92YWxpZCA+IDgpIHsKICAgIHB1dF9zaG9ydChzLCBzLmJpX2J1Zik7CiAgfSBlbHNlIGlmIChzLmJpX3ZhbGlkID4gMCkgewogICAgLy9wdXRfYnl0ZShzLCAoQnl0ZSlzLT5iaV9idWYpOwogICAgcy5wZW5kaW5nX2J1ZltzLnBlbmRpbmcrK10gPSBzLmJpX2J1ZjsKICB9CiAgcy5iaV9idWYgPSAwOwogIHMuYmlfdmFsaWQgPSAwOwp9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogQ29weSBhIHN0b3JlZCBibG9jaywgc3RvcmluZyBmaXJzdCB0aGUgbGVuZ3RoIGFuZCBpdHMKICogb25lJ3MgY29tcGxlbWVudCBpZiByZXF1ZXN0ZWQuCiAqLwpmdW5jdGlvbiBjb3B5X2Jsb2NrKHMsIGJ1ZiwgbGVuLCBoZWFkZXIpCi8vRGVmbGF0ZVN0YXRlICpzOwovL2NoYXJmICAgICpidWY7ICAgIC8qIHRoZSBpbnB1dCBkYXRhICovCi8vdW5zaWduZWQgbGVuOyAgICAgLyogaXRzIGxlbmd0aCAqLwovL2ludCAgICAgIGhlYWRlcjsgIC8qIHRydWUgaWYgYmxvY2sgaGVhZGVyIG11c3QgYmUgd3JpdHRlbiAqLwp7CiAgYmlfd2luZHVwKHMpOyAgICAgICAgLyogYWxpZ24gb24gYnl0ZSBib3VuZGFyeSAqLwoKICBpZiAoaGVhZGVyKSB7CiAgICBwdXRfc2hvcnQocywgbGVuKTsKICAgIHB1dF9zaG9ydChzLCB+bGVuKTsKICB9Ci8vICB3aGlsZSAobGVuLS0pIHsKLy8gICAgcHV0X2J5dGUocywgKmJ1ZisrKTsKLy8gIH0KICB1dGlscy5hcnJheVNldChzLnBlbmRpbmdfYnVmLCBzLndpbmRvdywgYnVmLCBsZW4sIHMucGVuZGluZyk7CiAgcy5wZW5kaW5nICs9IGxlbjsKfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIENvbXBhcmVzIHRvIHN1YnRyZWVzLCB1c2luZyB0aGUgdHJlZSBkZXB0aCBhcyB0aWUgYnJlYWtlciB3aGVuCiAqIHRoZSBzdWJ0cmVlcyBoYXZlIGVxdWFsIGZyZXF1ZW5jeS4gVGhpcyBtaW5pbWl6ZXMgdGhlIHdvcnN0IGNhc2UgbGVuZ3RoLgogKi8KZnVuY3Rpb24gc21hbGxlcih0cmVlLCBuLCBtLCBkZXB0aCkgewogIHZhciBfbjIgPSBuICogMjsKICB2YXIgX20yID0gbSAqIDI7CiAgcmV0dXJuICh0cmVlW19uMl0vKi5GcmVxKi8gPCB0cmVlW19tMl0vKi5GcmVxKi8gfHwKICAgICAgICAgKHRyZWVbX24yXS8qLkZyZXEqLyA9PT0gdHJlZVtfbTJdLyouRnJlcSovICYmIGRlcHRoW25dIDw9IGRlcHRoW21dKSk7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBSZXN0b3JlIHRoZSBoZWFwIHByb3BlcnR5IGJ5IG1vdmluZyBkb3duIHRoZSB0cmVlIHN0YXJ0aW5nIGF0IG5vZGUgaywKICogZXhjaGFuZ2luZyBhIG5vZGUgd2l0aCB0aGUgc21hbGxlc3Qgb2YgaXRzIHR3byBzb25zIGlmIG5lY2Vzc2FyeSwgc3RvcHBpbmcKICogd2hlbiB0aGUgaGVhcCBwcm9wZXJ0eSBpcyByZS1lc3RhYmxpc2hlZCAoZWFjaCBmYXRoZXIgc21hbGxlciB0aGFuIGl0cwogKiB0d28gc29ucykuCiAqLwpmdW5jdGlvbiBwcWRvd25oZWFwKHMsIHRyZWUsIGspCi8vICAgIGRlZmxhdGVfc3RhdGUgKnM7Ci8vICAgIGN0X2RhdGEgKnRyZWU7ICAvKiB0aGUgdHJlZSB0byByZXN0b3JlICovCi8vICAgIGludCBrOyAgICAgICAgICAgICAgIC8qIG5vZGUgdG8gbW92ZSBkb3duICovCnsKICB2YXIgdiA9IHMuaGVhcFtrXTsKICB2YXIgaiA9IGsgPDwgMTsgIC8qIGxlZnQgc29uIG9mIGsgKi8KICB3aGlsZSAoaiA8PSBzLmhlYXBfbGVuKSB7CiAgICAvKiBTZXQgaiB0byB0aGUgc21hbGxlc3Qgb2YgdGhlIHR3byBzb25zOiAqLwogICAgaWYgKGogPCBzLmhlYXBfbGVuICYmCiAgICAgIHNtYWxsZXIodHJlZSwgcy5oZWFwW2ogKyAxXSwgcy5oZWFwW2pdLCBzLmRlcHRoKSkgewogICAgICBqKys7CiAgICB9CiAgICAvKiBFeGl0IGlmIHYgaXMgc21hbGxlciB0aGFuIGJvdGggc29ucyAqLwogICAgaWYgKHNtYWxsZXIodHJlZSwgdiwgcy5oZWFwW2pdLCBzLmRlcHRoKSkgeyBicmVhazsgfQoKICAgIC8qIEV4Y2hhbmdlIHYgd2l0aCB0aGUgc21hbGxlc3Qgc29uICovCiAgICBzLmhlYXBba10gPSBzLmhlYXBbal07CiAgICBrID0gajsKCiAgICAvKiBBbmQgY29udGludWUgZG93biB0aGUgdHJlZSwgc2V0dGluZyBqIHRvIHRoZSBsZWZ0IHNvbiBvZiBrICovCiAgICBqIDw8PSAxOwogIH0KICBzLmhlYXBba10gPSB2Owp9CgoKLy8gaW5saW5lZCBtYW51YWxseQovLyB2YXIgU01BTExFU1QgPSAxOwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFNlbmQgdGhlIGJsb2NrIGRhdGEgY29tcHJlc3NlZCB1c2luZyB0aGUgZ2l2ZW4gSHVmZm1hbiB0cmVlcwogKi8KZnVuY3Rpb24gY29tcHJlc3NfYmxvY2socywgbHRyZWUsIGR0cmVlKQovLyAgICBkZWZsYXRlX3N0YXRlICpzOwovLyAgICBjb25zdCBjdF9kYXRhICpsdHJlZTsgLyogbGl0ZXJhbCB0cmVlICovCi8vICAgIGNvbnN0IGN0X2RhdGEgKmR0cmVlOyAvKiBkaXN0YW5jZSB0cmVlICovCnsKICB2YXIgZGlzdDsgICAgICAgICAgIC8qIGRpc3RhbmNlIG9mIG1hdGNoZWQgc3RyaW5nICovCiAgdmFyIGxjOyAgICAgICAgICAgICAvKiBtYXRjaCBsZW5ndGggb3IgdW5tYXRjaGVkIGNoYXIgKGlmIGRpc3QgPT0gMCkgKi8KICB2YXIgbHggPSAwOyAgICAgICAgIC8qIHJ1bm5pbmcgaW5kZXggaW4gbF9idWYgKi8KICB2YXIgY29kZTsgICAgICAgICAgIC8qIHRoZSBjb2RlIHRvIHNlbmQgKi8KICB2YXIgZXh0cmE7ICAgICAgICAgIC8qIG51bWJlciBvZiBleHRyYSBiaXRzIHRvIHNlbmQgKi8KCiAgaWYgKHMubGFzdF9saXQgIT09IDApIHsKICAgIGRvIHsKICAgICAgZGlzdCA9IChzLnBlbmRpbmdfYnVmW3MuZF9idWYgKyBseCAqIDJdIDw8IDgpIHwgKHMucGVuZGluZ19idWZbcy5kX2J1ZiArIGx4ICogMiArIDFdKTsKICAgICAgbGMgPSBzLnBlbmRpbmdfYnVmW3MubF9idWYgKyBseF07CiAgICAgIGx4Kys7CgogICAgICBpZiAoZGlzdCA9PT0gMCkgewogICAgICAgIHNlbmRfY29kZShzLCBsYywgbHRyZWUpOyAvKiBzZW5kIGEgbGl0ZXJhbCBieXRlICovCiAgICAgICAgLy9UcmFjZWN2KGlzZ3JhcGgobGMpLCAoc3RkZXJyLCIgJyVjJyAiLCBsYykpOwogICAgICB9IGVsc2UgewogICAgICAgIC8qIEhlcmUsIGxjIGlzIHRoZSBtYXRjaCBsZW5ndGggLSBNSU5fTUFUQ0ggKi8KICAgICAgICBjb2RlID0gX2xlbmd0aF9jb2RlW2xjXTsKICAgICAgICBzZW5kX2NvZGUocywgY29kZSArIExJVEVSQUxTICsgMSwgbHRyZWUpOyAvKiBzZW5kIHRoZSBsZW5ndGggY29kZSAqLwogICAgICAgIGV4dHJhID0gZXh0cmFfbGJpdHNbY29kZV07CiAgICAgICAgaWYgKGV4dHJhICE9PSAwKSB7CiAgICAgICAgICBsYyAtPSBiYXNlX2xlbmd0aFtjb2RlXTsKICAgICAgICAgIHNlbmRfYml0cyhzLCBsYywgZXh0cmEpOyAgICAgICAvKiBzZW5kIHRoZSBleHRyYSBsZW5ndGggYml0cyAqLwogICAgICAgIH0KICAgICAgICBkaXN0LS07IC8qIGRpc3QgaXMgbm93IHRoZSBtYXRjaCBkaXN0YW5jZSAtIDEgKi8KICAgICAgICBjb2RlID0gZF9jb2RlKGRpc3QpOwogICAgICAgIC8vQXNzZXJ0IChjb2RlIDwgRF9DT0RFUywgImJhZCBkX2NvZGUiKTsKCiAgICAgICAgc2VuZF9jb2RlKHMsIGNvZGUsIGR0cmVlKTsgICAgICAgLyogc2VuZCB0aGUgZGlzdGFuY2UgY29kZSAqLwogICAgICAgIGV4dHJhID0gZXh0cmFfZGJpdHNbY29kZV07CiAgICAgICAgaWYgKGV4dHJhICE9PSAwKSB7CiAgICAgICAgICBkaXN0IC09IGJhc2VfZGlzdFtjb2RlXTsKICAgICAgICAgIHNlbmRfYml0cyhzLCBkaXN0LCBleHRyYSk7ICAgLyogc2VuZCB0aGUgZXh0cmEgZGlzdGFuY2UgYml0cyAqLwogICAgICAgIH0KICAgICAgfSAvKiBsaXRlcmFsIG9yIG1hdGNoIHBhaXIgPyAqLwoKICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgb3ZlcmxheSBiZXR3ZWVuIHBlbmRpbmdfYnVmIGFuZCBkX2J1ZitsX2J1ZiBpcyBvazogKi8KICAgICAgLy9Bc3NlcnQoKHVJbnQpKHMtPnBlbmRpbmcpIDwgcy0+bGl0X2J1ZnNpemUgKyAyKmx4LAogICAgICAvLyAgICAgICAicGVuZGluZ0J1ZiBvdmVyZmxvdyIpOwoKICAgIH0gd2hpbGUgKGx4IDwgcy5sYXN0X2xpdCk7CiAgfQoKICBzZW5kX2NvZGUocywgRU5EX0JMT0NLLCBsdHJlZSk7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogQ29uc3RydWN0IG9uZSBIdWZmbWFuIHRyZWUgYW5kIGFzc2lnbnMgdGhlIGNvZGUgYml0IHN0cmluZ3MgYW5kIGxlbmd0aHMuCiAqIFVwZGF0ZSB0aGUgdG90YWwgYml0IGxlbmd0aCBmb3IgdGhlIGN1cnJlbnQgYmxvY2suCiAqIElOIGFzc2VydGlvbjogdGhlIGZpZWxkIGZyZXEgaXMgc2V0IGZvciBhbGwgdHJlZSBlbGVtZW50cy4KICogT1VUIGFzc2VydGlvbnM6IHRoZSBmaWVsZHMgbGVuIGFuZCBjb2RlIGFyZSBzZXQgdG8gdGhlIG9wdGltYWwgYml0IGxlbmd0aAogKiAgICAgYW5kIGNvcnJlc3BvbmRpbmcgY29kZS4gVGhlIGxlbmd0aCBvcHRfbGVuIGlzIHVwZGF0ZWQ7IHN0YXRpY19sZW4gaXMKICogICAgIGFsc28gdXBkYXRlZCBpZiBzdHJlZSBpcyBub3QgbnVsbC4gVGhlIGZpZWxkIG1heF9jb2RlIGlzIHNldC4KICovCmZ1bmN0aW9uIGJ1aWxkX3RyZWUocywgZGVzYykKLy8gICAgZGVmbGF0ZV9zdGF0ZSAqczsKLy8gICAgdHJlZV9kZXNjICpkZXNjOyAvKiB0aGUgdHJlZSBkZXNjcmlwdG9yICovCnsKICB2YXIgdHJlZSAgICAgPSBkZXNjLmR5bl90cmVlOwogIHZhciBzdHJlZSAgICA9IGRlc2Muc3RhdF9kZXNjLnN0YXRpY190cmVlOwogIHZhciBoYXNfc3RyZWUgPSBkZXNjLnN0YXRfZGVzYy5oYXNfc3RyZWU7CiAgdmFyIGVsZW1zICAgID0gZGVzYy5zdGF0X2Rlc2MuZWxlbXM7CiAgdmFyIG4sIG07ICAgICAgICAgIC8qIGl0ZXJhdGUgb3ZlciBoZWFwIGVsZW1lbnRzICovCiAgdmFyIG1heF9jb2RlID0gLTE7IC8qIGxhcmdlc3QgY29kZSB3aXRoIG5vbiB6ZXJvIGZyZXF1ZW5jeSAqLwogIHZhciBub2RlOyAgICAgICAgICAvKiBuZXcgbm9kZSBiZWluZyBjcmVhdGVkICovCgogIC8qIENvbnN0cnVjdCB0aGUgaW5pdGlhbCBoZWFwLCB3aXRoIGxlYXN0IGZyZXF1ZW50IGVsZW1lbnQgaW4KICAgKiBoZWFwW1NNQUxMRVNUXS4gVGhlIHNvbnMgb2YgaGVhcFtuXSBhcmUgaGVhcFsyKm5dIGFuZCBoZWFwWzIqbisxXS4KICAgKiBoZWFwWzBdIGlzIG5vdCB1c2VkLgogICAqLwogIHMuaGVhcF9sZW4gPSAwOwogIHMuaGVhcF9tYXggPSBIRUFQX1NJWkU7CgogIGZvciAobiA9IDA7IG4gPCBlbGVtczsgbisrKSB7CiAgICBpZiAodHJlZVtuICogMl0vKi5GcmVxKi8gIT09IDApIHsKICAgICAgcy5oZWFwWysrcy5oZWFwX2xlbl0gPSBtYXhfY29kZSA9IG47CiAgICAgIHMuZGVwdGhbbl0gPSAwOwoKICAgIH0gZWxzZSB7CiAgICAgIHRyZWVbbiAqIDIgKyAxXS8qLkxlbiovID0gMDsKICAgIH0KICB9CgogIC8qIFRoZSBwa3ppcCBmb3JtYXQgcmVxdWlyZXMgdGhhdCBhdCBsZWFzdCBvbmUgZGlzdGFuY2UgY29kZSBleGlzdHMsCiAgICogYW5kIHRoYXQgYXQgbGVhc3Qgb25lIGJpdCBzaG91bGQgYmUgc2VudCBldmVuIGlmIHRoZXJlIGlzIG9ubHkgb25lCiAgICogcG9zc2libGUgY29kZS4gU28gdG8gYXZvaWQgc3BlY2lhbCBjaGVja3MgbGF0ZXIgb24gd2UgZm9yY2UgYXQgbGVhc3QKICAgKiB0d28gY29kZXMgb2Ygbm9uIHplcm8gZnJlcXVlbmN5LgogICAqLwogIHdoaWxlIChzLmhlYXBfbGVuIDwgMikgewogICAgbm9kZSA9IHMuaGVhcFsrK3MuaGVhcF9sZW5dID0gKG1heF9jb2RlIDwgMiA/ICsrbWF4X2NvZGUgOiAwKTsKICAgIHRyZWVbbm9kZSAqIDJdLyouRnJlcSovID0gMTsKICAgIHMuZGVwdGhbbm9kZV0gPSAwOwogICAgcy5vcHRfbGVuLS07CgogICAgaWYgKGhhc19zdHJlZSkgewogICAgICBzLnN0YXRpY19sZW4gLT0gc3RyZWVbbm9kZSAqIDIgKyAxXS8qLkxlbiovOwogICAgfQogICAgLyogbm9kZSBpcyAwIG9yIDEgc28gaXQgZG9lcyBub3QgaGF2ZSBleHRyYSBiaXRzICovCiAgfQogIGRlc2MubWF4X2NvZGUgPSBtYXhfY29kZTsKCiAgLyogVGhlIGVsZW1lbnRzIGhlYXBbaGVhcF9sZW4vMisxIC4uIGhlYXBfbGVuXSBhcmUgbGVhdmVzIG9mIHRoZSB0cmVlLAogICAqIGVzdGFibGlzaCBzdWItaGVhcHMgb2YgaW5jcmVhc2luZyBsZW5ndGhzOgogICAqLwogIGZvciAobiA9IChzLmhlYXBfbGVuID4+IDEvKmludCAvMiovKTsgbiA+PSAxOyBuLS0pIHsgcHFkb3duaGVhcChzLCB0cmVlLCBuKTsgfQoKICAvKiBDb25zdHJ1Y3QgdGhlIEh1ZmZtYW4gdHJlZSBieSByZXBlYXRlZGx5IGNvbWJpbmluZyB0aGUgbGVhc3QgdHdvCiAgICogZnJlcXVlbnQgbm9kZXMuCiAgICovCiAgbm9kZSA9IGVsZW1zOyAgICAgICAgICAgICAgLyogbmV4dCBpbnRlcm5hbCBub2RlIG9mIHRoZSB0cmVlICovCiAgZG8gewogICAgLy9wcXJlbW92ZShzLCB0cmVlLCBuKTsgIC8qIG4gPSBub2RlIG9mIGxlYXN0IGZyZXF1ZW5jeSAqLwogICAgLyoqKiBwcXJlbW92ZSAqKiovCiAgICBuID0gcy5oZWFwWzEvKlNNQUxMRVNUKi9dOwogICAgcy5oZWFwWzEvKlNNQUxMRVNUKi9dID0gcy5oZWFwW3MuaGVhcF9sZW4tLV07CiAgICBwcWRvd25oZWFwKHMsIHRyZWUsIDEvKlNNQUxMRVNUKi8pOwogICAgLyoqKi8KCiAgICBtID0gcy5oZWFwWzEvKlNNQUxMRVNUKi9dOyAvKiBtID0gbm9kZSBvZiBuZXh0IGxlYXN0IGZyZXF1ZW5jeSAqLwoKICAgIHMuaGVhcFstLXMuaGVhcF9tYXhdID0gbjsgLyoga2VlcCB0aGUgbm9kZXMgc29ydGVkIGJ5IGZyZXF1ZW5jeSAqLwogICAgcy5oZWFwWy0tcy5oZWFwX21heF0gPSBtOwoKICAgIC8qIENyZWF0ZSBhIG5ldyBub2RlIGZhdGhlciBvZiBuIGFuZCBtICovCiAgICB0cmVlW25vZGUgKiAyXS8qLkZyZXEqLyA9IHRyZWVbbiAqIDJdLyouRnJlcSovICsgdHJlZVttICogMl0vKi5GcmVxKi87CiAgICBzLmRlcHRoW25vZGVdID0gKHMuZGVwdGhbbl0gPj0gcy5kZXB0aFttXSA/IHMuZGVwdGhbbl0gOiBzLmRlcHRoW21dKSArIDE7CiAgICB0cmVlW24gKiAyICsgMV0vKi5EYWQqLyA9IHRyZWVbbSAqIDIgKyAxXS8qLkRhZCovID0gbm9kZTsKCiAgICAvKiBhbmQgaW5zZXJ0IHRoZSBuZXcgbm9kZSBpbiB0aGUgaGVhcCAqLwogICAgcy5oZWFwWzEvKlNNQUxMRVNUKi9dID0gbm9kZSsrOwogICAgcHFkb3duaGVhcChzLCB0cmVlLCAxLypTTUFMTEVTVCovKTsKCiAgfSB3aGlsZSAocy5oZWFwX2xlbiA+PSAyKTsKCiAgcy5oZWFwWy0tcy5oZWFwX21heF0gPSBzLmhlYXBbMS8qU01BTExFU1QqL107CgogIC8qIEF0IHRoaXMgcG9pbnQsIHRoZSBmaWVsZHMgZnJlcSBhbmQgZGFkIGFyZSBzZXQuIFdlIGNhbiBub3cKICAgKiBnZW5lcmF0ZSB0aGUgYml0IGxlbmd0aHMuCiAgICovCiAgZ2VuX2JpdGxlbihzLCBkZXNjKTsKCiAgLyogVGhlIGZpZWxkIGxlbiBpcyBub3cgc2V0LCB3ZSBjYW4gZ2VuZXJhdGUgdGhlIGJpdCBjb2RlcyAqLwogIGdlbl9jb2Rlcyh0cmVlLCBtYXhfY29kZSwgcy5ibF9jb3VudCk7Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogU2NhbiBhIGxpdGVyYWwgb3IgZGlzdGFuY2UgdHJlZSB0byBkZXRlcm1pbmUgdGhlIGZyZXF1ZW5jaWVzIG9mIHRoZSBjb2RlcwogKiBpbiB0aGUgYml0IGxlbmd0aCB0cmVlLgogKi8KZnVuY3Rpb24gc2Nhbl90cmVlKHMsIHRyZWUsIG1heF9jb2RlKQovLyAgICBkZWZsYXRlX3N0YXRlICpzOwovLyAgICBjdF9kYXRhICp0cmVlOyAgIC8qIHRoZSB0cmVlIHRvIGJlIHNjYW5uZWQgKi8KLy8gICAgaW50IG1heF9jb2RlOyAgICAvKiBhbmQgaXRzIGxhcmdlc3QgY29kZSBvZiBub24gemVybyBmcmVxdWVuY3kgKi8KewogIHZhciBuOyAgICAgICAgICAgICAgICAgICAgIC8qIGl0ZXJhdGVzIG92ZXIgYWxsIHRyZWUgZWxlbWVudHMgKi8KICB2YXIgcHJldmxlbiA9IC0xOyAgICAgICAgICAvKiBsYXN0IGVtaXR0ZWQgbGVuZ3RoICovCiAgdmFyIGN1cmxlbjsgICAgICAgICAgICAgICAgLyogbGVuZ3RoIG9mIGN1cnJlbnQgY29kZSAqLwoKICB2YXIgbmV4dGxlbiA9IHRyZWVbMCAqIDIgKyAxXS8qLkxlbiovOyAvKiBsZW5ndGggb2YgbmV4dCBjb2RlICovCgogIHZhciBjb3VudCA9IDA7ICAgICAgICAgICAgIC8qIHJlcGVhdCBjb3VudCBvZiB0aGUgY3VycmVudCBjb2RlICovCiAgdmFyIG1heF9jb3VudCA9IDc7ICAgICAgICAgLyogbWF4IHJlcGVhdCBjb3VudCAqLwogIHZhciBtaW5fY291bnQgPSA0OyAgICAgICAgIC8qIG1pbiByZXBlYXQgY291bnQgKi8KCiAgaWYgKG5leHRsZW4gPT09IDApIHsKICAgIG1heF9jb3VudCA9IDEzODsKICAgIG1pbl9jb3VudCA9IDM7CiAgfQogIHRyZWVbKG1heF9jb2RlICsgMSkgKiAyICsgMV0vKi5MZW4qLyA9IDB4ZmZmZjsgLyogZ3VhcmQgKi8KCiAgZm9yIChuID0gMDsgbiA8PSBtYXhfY29kZTsgbisrKSB7CiAgICBjdXJsZW4gPSBuZXh0bGVuOwogICAgbmV4dGxlbiA9IHRyZWVbKG4gKyAxKSAqIDIgKyAxXS8qLkxlbiovOwoKICAgIGlmICgrK2NvdW50IDwgbWF4X2NvdW50ICYmIGN1cmxlbiA9PT0gbmV4dGxlbikgewogICAgICBjb250aW51ZTsKCiAgICB9IGVsc2UgaWYgKGNvdW50IDwgbWluX2NvdW50KSB7CiAgICAgIHMuYmxfdHJlZVtjdXJsZW4gKiAyXS8qLkZyZXEqLyArPSBjb3VudDsKCiAgICB9IGVsc2UgaWYgKGN1cmxlbiAhPT0gMCkgewoKICAgICAgaWYgKGN1cmxlbiAhPT0gcHJldmxlbikgeyBzLmJsX3RyZWVbY3VybGVuICogMl0vKi5GcmVxKi8rKzsgfQogICAgICBzLmJsX3RyZWVbUkVQXzNfNiAqIDJdLyouRnJlcSovKys7CgogICAgfSBlbHNlIGlmIChjb3VudCA8PSAxMCkgewogICAgICBzLmJsX3RyZWVbUkVQWl8zXzEwICogMl0vKi5GcmVxKi8rKzsKCiAgICB9IGVsc2UgewogICAgICBzLmJsX3RyZWVbUkVQWl8xMV8xMzggKiAyXS8qLkZyZXEqLysrOwogICAgfQoKICAgIGNvdW50ID0gMDsKICAgIHByZXZsZW4gPSBjdXJsZW47CgogICAgaWYgKG5leHRsZW4gPT09IDApIHsKICAgICAgbWF4X2NvdW50ID0gMTM4OwogICAgICBtaW5fY291bnQgPSAzOwoKICAgIH0gZWxzZSBpZiAoY3VybGVuID09PSBuZXh0bGVuKSB7CiAgICAgIG1heF9jb3VudCA9IDY7CiAgICAgIG1pbl9jb3VudCA9IDM7CgogICAgfSBlbHNlIHsKICAgICAgbWF4X2NvdW50ID0gNzsKICAgICAgbWluX2NvdW50ID0gNDsKICAgIH0KICB9Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogU2VuZCBhIGxpdGVyYWwgb3IgZGlzdGFuY2UgdHJlZSBpbiBjb21wcmVzc2VkIGZvcm0sIHVzaW5nIHRoZSBjb2RlcyBpbgogKiBibF90cmVlLgogKi8KZnVuY3Rpb24gc2VuZF90cmVlKHMsIHRyZWUsIG1heF9jb2RlKQovLyAgICBkZWZsYXRlX3N0YXRlICpzOwovLyAgICBjdF9kYXRhICp0cmVlOyAvKiB0aGUgdHJlZSB0byBiZSBzY2FubmVkICovCi8vICAgIGludCBtYXhfY29kZTsgICAgICAgLyogYW5kIGl0cyBsYXJnZXN0IGNvZGUgb2Ygbm9uIHplcm8gZnJlcXVlbmN5ICovCnsKICB2YXIgbjsgICAgICAgICAgICAgICAgICAgICAvKiBpdGVyYXRlcyBvdmVyIGFsbCB0cmVlIGVsZW1lbnRzICovCiAgdmFyIHByZXZsZW4gPSAtMTsgICAgICAgICAgLyogbGFzdCBlbWl0dGVkIGxlbmd0aCAqLwogIHZhciBjdXJsZW47ICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBvZiBjdXJyZW50IGNvZGUgKi8KCiAgdmFyIG5leHRsZW4gPSB0cmVlWzAgKiAyICsgMV0vKi5MZW4qLzsgLyogbGVuZ3RoIG9mIG5leHQgY29kZSAqLwoKICB2YXIgY291bnQgPSAwOyAgICAgICAgICAgICAvKiByZXBlYXQgY291bnQgb2YgdGhlIGN1cnJlbnQgY29kZSAqLwogIHZhciBtYXhfY291bnQgPSA3OyAgICAgICAgIC8qIG1heCByZXBlYXQgY291bnQgKi8KICB2YXIgbWluX2NvdW50ID0gNDsgICAgICAgICAvKiBtaW4gcmVwZWF0IGNvdW50ICovCgogIC8qIHRyZWVbbWF4X2NvZGUrMV0uTGVuID0gLTE7ICovICAvKiBndWFyZCBhbHJlYWR5IHNldCAqLwogIGlmIChuZXh0bGVuID09PSAwKSB7CiAgICBtYXhfY291bnQgPSAxMzg7CiAgICBtaW5fY291bnQgPSAzOwogIH0KCiAgZm9yIChuID0gMDsgbiA8PSBtYXhfY29kZTsgbisrKSB7CiAgICBjdXJsZW4gPSBuZXh0bGVuOwogICAgbmV4dGxlbiA9IHRyZWVbKG4gKyAxKSAqIDIgKyAxXS8qLkxlbiovOwoKICAgIGlmICgrK2NvdW50IDwgbWF4X2NvdW50ICYmIGN1cmxlbiA9PT0gbmV4dGxlbikgewogICAgICBjb250aW51ZTsKCiAgICB9IGVsc2UgaWYgKGNvdW50IDwgbWluX2NvdW50KSB7CiAgICAgIGRvIHsgc2VuZF9jb2RlKHMsIGN1cmxlbiwgcy5ibF90cmVlKTsgfSB3aGlsZSAoLS1jb3VudCAhPT0gMCk7CgogICAgfSBlbHNlIGlmIChjdXJsZW4gIT09IDApIHsKICAgICAgaWYgKGN1cmxlbiAhPT0gcHJldmxlbikgewogICAgICAgIHNlbmRfY29kZShzLCBjdXJsZW4sIHMuYmxfdHJlZSk7CiAgICAgICAgY291bnQtLTsKICAgICAgfQogICAgICAvL0Fzc2VydChjb3VudCA+PSAzICYmIGNvdW50IDw9IDYsICIgM182PyIpOwogICAgICBzZW5kX2NvZGUocywgUkVQXzNfNiwgcy5ibF90cmVlKTsKICAgICAgc2VuZF9iaXRzKHMsIGNvdW50IC0gMywgMik7CgogICAgfSBlbHNlIGlmIChjb3VudCA8PSAxMCkgewogICAgICBzZW5kX2NvZGUocywgUkVQWl8zXzEwLCBzLmJsX3RyZWUpOwogICAgICBzZW5kX2JpdHMocywgY291bnQgLSAzLCAzKTsKCiAgICB9IGVsc2UgewogICAgICBzZW5kX2NvZGUocywgUkVQWl8xMV8xMzgsIHMuYmxfdHJlZSk7CiAgICAgIHNlbmRfYml0cyhzLCBjb3VudCAtIDExLCA3KTsKICAgIH0KCiAgICBjb3VudCA9IDA7CiAgICBwcmV2bGVuID0gY3VybGVuOwogICAgaWYgKG5leHRsZW4gPT09IDApIHsKICAgICAgbWF4X2NvdW50ID0gMTM4OwogICAgICBtaW5fY291bnQgPSAzOwoKICAgIH0gZWxzZSBpZiAoY3VybGVuID09PSBuZXh0bGVuKSB7CiAgICAgIG1heF9jb3VudCA9IDY7CiAgICAgIG1pbl9jb3VudCA9IDM7CgogICAgfSBlbHNlIHsKICAgICAgbWF4X2NvdW50ID0gNzsKICAgICAgbWluX2NvdW50ID0gNDsKICAgIH0KICB9Cn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogQ29uc3RydWN0IHRoZSBIdWZmbWFuIHRyZWUgZm9yIHRoZSBiaXQgbGVuZ3RocyBhbmQgcmV0dXJuIHRoZSBpbmRleCBpbgogKiBibF9vcmRlciBvZiB0aGUgbGFzdCBiaXQgbGVuZ3RoIGNvZGUgdG8gc2VuZC4KICovCmZ1bmN0aW9uIGJ1aWxkX2JsX3RyZWUocykgewogIHZhciBtYXhfYmxpbmRleDsgIC8qIGluZGV4IG9mIGxhc3QgYml0IGxlbmd0aCBjb2RlIG9mIG5vbiB6ZXJvIGZyZXEgKi8KCiAgLyogRGV0ZXJtaW5lIHRoZSBiaXQgbGVuZ3RoIGZyZXF1ZW5jaWVzIGZvciBsaXRlcmFsIGFuZCBkaXN0YW5jZSB0cmVlcyAqLwogIHNjYW5fdHJlZShzLCBzLmR5bl9sdHJlZSwgcy5sX2Rlc2MubWF4X2NvZGUpOwogIHNjYW5fdHJlZShzLCBzLmR5bl9kdHJlZSwgcy5kX2Rlc2MubWF4X2NvZGUpOwoKICAvKiBCdWlsZCB0aGUgYml0IGxlbmd0aCB0cmVlOiAqLwogIGJ1aWxkX3RyZWUocywgcy5ibF9kZXNjKTsKICAvKiBvcHRfbGVuIG5vdyBpbmNsdWRlcyB0aGUgbGVuZ3RoIG9mIHRoZSB0cmVlIHJlcHJlc2VudGF0aW9ucywgZXhjZXB0CiAgICogdGhlIGxlbmd0aHMgb2YgdGhlIGJpdCBsZW5ndGhzIGNvZGVzIGFuZCB0aGUgNSs1KzQgYml0cyBmb3IgdGhlIGNvdW50cy4KICAgKi8KCiAgLyogRGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgYml0IGxlbmd0aCBjb2RlcyB0byBzZW5kLiBUaGUgcGt6aXAgZm9ybWF0CiAgICogcmVxdWlyZXMgdGhhdCBhdCBsZWFzdCA0IGJpdCBsZW5ndGggY29kZXMgYmUgc2VudC4gKGFwcG5vdGUudHh0IHNheXMKICAgKiAzIGJ1dCB0aGUgYWN0dWFsIHZhbHVlIHVzZWQgaXMgNC4pCiAgICovCiAgZm9yIChtYXhfYmxpbmRleCA9IEJMX0NPREVTIC0gMTsgbWF4X2JsaW5kZXggPj0gMzsgbWF4X2JsaW5kZXgtLSkgewogICAgaWYgKHMuYmxfdHJlZVtibF9vcmRlclttYXhfYmxpbmRleF0gKiAyICsgMV0vKi5MZW4qLyAhPT0gMCkgewogICAgICBicmVhazsKICAgIH0KICB9CiAgLyogVXBkYXRlIG9wdF9sZW4gdG8gaW5jbHVkZSB0aGUgYml0IGxlbmd0aCB0cmVlIGFuZCBjb3VudHMgKi8KICBzLm9wdF9sZW4gKz0gMyAqIChtYXhfYmxpbmRleCArIDEpICsgNSArIDUgKyA0OwogIC8vVHJhY2V2KChzdGRlcnIsICJcbmR5biB0cmVlczogZHluICVsZCwgc3RhdCAlbGQiLAogIC8vICAgICAgICBzLT5vcHRfbGVuLCBzLT5zdGF0aWNfbGVuKSk7CgogIHJldHVybiBtYXhfYmxpbmRleDsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBTZW5kIHRoZSBoZWFkZXIgZm9yIGEgYmxvY2sgdXNpbmcgZHluYW1pYyBIdWZmbWFuIHRyZWVzOiB0aGUgY291bnRzLCB0aGUKICogbGVuZ3RocyBvZiB0aGUgYml0IGxlbmd0aCBjb2RlcywgdGhlIGxpdGVyYWwgdHJlZSBhbmQgdGhlIGRpc3RhbmNlIHRyZWUuCiAqIElOIGFzc2VydGlvbjogbGNvZGVzID49IDI1NywgZGNvZGVzID49IDEsIGJsY29kZXMgPj0gNC4KICovCmZ1bmN0aW9uIHNlbmRfYWxsX3RyZWVzKHMsIGxjb2RlcywgZGNvZGVzLCBibGNvZGVzKQovLyAgICBkZWZsYXRlX3N0YXRlICpzOwovLyAgICBpbnQgbGNvZGVzLCBkY29kZXMsIGJsY29kZXM7IC8qIG51bWJlciBvZiBjb2RlcyBmb3IgZWFjaCB0cmVlICovCnsKICB2YXIgcmFuazsgICAgICAgICAgICAgICAgICAgIC8qIGluZGV4IGluIGJsX29yZGVyICovCgogIC8vQXNzZXJ0IChsY29kZXMgPj0gMjU3ICYmIGRjb2RlcyA+PSAxICYmIGJsY29kZXMgPj0gNCwgIm5vdCBlbm91Z2ggY29kZXMiKTsKICAvL0Fzc2VydCAobGNvZGVzIDw9IExfQ09ERVMgJiYgZGNvZGVzIDw9IERfQ09ERVMgJiYgYmxjb2RlcyA8PSBCTF9DT0RFUywKICAvLyAgICAgICAgInRvbyBtYW55IGNvZGVzIik7CiAgLy9UcmFjZXYoKHN0ZGVyciwgIlxuYmwgY291bnRzOiAiKSk7CiAgc2VuZF9iaXRzKHMsIGxjb2RlcyAtIDI1NywgNSk7IC8qIG5vdCArMjU1IGFzIHN0YXRlZCBpbiBhcHBub3RlLnR4dCAqLwogIHNlbmRfYml0cyhzLCBkY29kZXMgLSAxLCAgIDUpOwogIHNlbmRfYml0cyhzLCBibGNvZGVzIC0gNCwgIDQpOyAvKiBub3QgLTMgYXMgc3RhdGVkIGluIGFwcG5vdGUudHh0ICovCiAgZm9yIChyYW5rID0gMDsgcmFuayA8IGJsY29kZXM7IHJhbmsrKykgewogICAgLy9UcmFjZXYoKHN0ZGVyciwgIlxuYmwgY29kZSAlMmQgIiwgYmxfb3JkZXJbcmFua10pKTsKICAgIHNlbmRfYml0cyhzLCBzLmJsX3RyZWVbYmxfb3JkZXJbcmFua10gKiAyICsgMV0vKi5MZW4qLywgMyk7CiAgfQogIC8vVHJhY2V2KChzdGRlcnIsICJcbmJsIHRyZWU6IHNlbnQgJWxkIiwgcy0+Yml0c19zZW50KSk7CgogIHNlbmRfdHJlZShzLCBzLmR5bl9sdHJlZSwgbGNvZGVzIC0gMSk7IC8qIGxpdGVyYWwgdHJlZSAqLwogIC8vVHJhY2V2KChzdGRlcnIsICJcbmxpdCB0cmVlOiBzZW50ICVsZCIsIHMtPmJpdHNfc2VudCkpOwoKICBzZW5kX3RyZWUocywgcy5keW5fZHRyZWUsIGRjb2RlcyAtIDEpOyAvKiBkaXN0YW5jZSB0cmVlICovCiAgLy9UcmFjZXYoKHN0ZGVyciwgIlxuZGlzdCB0cmVlOiBzZW50ICVsZCIsIHMtPmJpdHNfc2VudCkpOwp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIENoZWNrIGlmIHRoZSBkYXRhIHR5cGUgaXMgVEVYVCBvciBCSU5BUlksIHVzaW5nIHRoZSBmb2xsb3dpbmcgYWxnb3JpdGhtOgogKiAtIFRFWFQgaWYgdGhlIHR3byBjb25kaXRpb25zIGJlbG93IGFyZSBzYXRpc2ZpZWQ6CiAqICAgIGEpIFRoZXJlIGFyZSBubyBub24tcG9ydGFibGUgY29udHJvbCBjaGFyYWN0ZXJzIGJlbG9uZ2luZyB0byB0aGUKICogICAgICAgImJsYWNrIGxpc3QiICgwLi42LCAxNC4uMjUsIDI4Li4zMSkuCiAqICAgIGIpIFRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwcmludGFibGUgY2hhcmFjdGVyIGJlbG9uZ2luZyB0byB0aGUKICogICAgICAgIndoaXRlIGxpc3QiICg5IHtUQUJ9LCAxMCB7TEZ9LCAxMyB7Q1J9LCAzMi4uMjU1KS4KICogLSBCSU5BUlkgb3RoZXJ3aXNlLgogKiAtIFRoZSBmb2xsb3dpbmcgcGFydGlhbGx5LXBvcnRhYmxlIGNvbnRyb2wgY2hhcmFjdGVycyBmb3JtIGEKICogICAiZ3JheSBsaXN0IiB0aGF0IGlzIGlnbm9yZWQgaW4gdGhpcyBkZXRlY3Rpb24gYWxnb3JpdGhtOgogKiAgICg3IHtCRUx9LCA4IHtCU30sIDExIHtWVH0sIDEyIHtGRn0sIDI2IHtTVUJ9LCAyNyB7RVNDfSkuCiAqIElOIGFzc2VydGlvbjogdGhlIGZpZWxkcyBGcmVxIG9mIGR5bl9sdHJlZSBhcmUgc2V0LgogKi8KZnVuY3Rpb24gZGV0ZWN0X2RhdGFfdHlwZShzKSB7CiAgLyogYmxhY2tfbWFzayBpcyB0aGUgYml0IG1hc2sgb2YgYmxhY2stbGlzdGVkIGJ5dGVzCiAgICogc2V0IGJpdHMgMC4uNiwgMTQuLjI1LCBhbmQgMjguLjMxCiAgICogMHhmM2ZmYzA3ZiA9IGJpbmFyeSAxMTExMDAxMTExMTExMTExMTEwMDAwMDAwMTExMTExMQogICAqLwogIHZhciBibGFja19tYXNrID0gMHhmM2ZmYzA3ZjsKICB2YXIgbjsKCiAgLyogQ2hlY2sgZm9yIG5vbi10ZXh0dWFsICgiYmxhY2stbGlzdGVkIikgYnl0ZXMuICovCiAgZm9yIChuID0gMDsgbiA8PSAzMTsgbisrLCBibGFja19tYXNrID4+Pj0gMSkgewogICAgaWYgKChibGFja19tYXNrICYgMSkgJiYgKHMuZHluX2x0cmVlW24gKiAyXS8qLkZyZXEqLyAhPT0gMCkpIHsKICAgICAgcmV0dXJuIFpfQklOQVJZOwogICAgfQogIH0KCiAgLyogQ2hlY2sgZm9yIHRleHR1YWwgKCJ3aGl0ZS1saXN0ZWQiKSBieXRlcy4gKi8KICBpZiAocy5keW5fbHRyZWVbOSAqIDJdLyouRnJlcSovICE9PSAwIHx8IHMuZHluX2x0cmVlWzEwICogMl0vKi5GcmVxKi8gIT09IDAgfHwKICAgICAgcy5keW5fbHRyZWVbMTMgKiAyXS8qLkZyZXEqLyAhPT0gMCkgewogICAgcmV0dXJuIFpfVEVYVDsKICB9CiAgZm9yIChuID0gMzI7IG4gPCBMSVRFUkFMUzsgbisrKSB7CiAgICBpZiAocy5keW5fbHRyZWVbbiAqIDJdLyouRnJlcSovICE9PSAwKSB7CiAgICAgIHJldHVybiBaX1RFWFQ7CiAgICB9CiAgfQoKICAvKiBUaGVyZSBhcmUgbm8gImJsYWNrLWxpc3RlZCIgb3IgIndoaXRlLWxpc3RlZCIgYnl0ZXM6CiAgICogdGhpcyBzdHJlYW0gZWl0aGVyIGlzIGVtcHR5IG9yIGhhcyB0b2xlcmF0ZWQgKCJncmF5LWxpc3RlZCIpIGJ5dGVzIG9ubHkuCiAgICovCiAgcmV0dXJuIFpfQklOQVJZOwp9CgoKdmFyIHN0YXRpY19pbml0X2RvbmUgPSBmYWxzZTsKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBJbml0aWFsaXplIHRoZSB0cmVlIGRhdGEgc3RydWN0dXJlcyBmb3IgYSBuZXcgemxpYiBzdHJlYW0uCiAqLwpmdW5jdGlvbiBfdHJfaW5pdChzKQp7CgogIGlmICghc3RhdGljX2luaXRfZG9uZSkgewogICAgdHJfc3RhdGljX2luaXQoKTsKICAgIHN0YXRpY19pbml0X2RvbmUgPSB0cnVlOwogIH0KCiAgcy5sX2Rlc2MgID0gbmV3IFRyZWVEZXNjKHMuZHluX2x0cmVlLCBzdGF0aWNfbF9kZXNjKTsKICBzLmRfZGVzYyAgPSBuZXcgVHJlZURlc2Mocy5keW5fZHRyZWUsIHN0YXRpY19kX2Rlc2MpOwogIHMuYmxfZGVzYyA9IG5ldyBUcmVlRGVzYyhzLmJsX3RyZWUsIHN0YXRpY19ibF9kZXNjKTsKCiAgcy5iaV9idWYgPSAwOwogIHMuYmlfdmFsaWQgPSAwOwoKICAvKiBJbml0aWFsaXplIHRoZSBmaXJzdCBibG9jayBvZiB0aGUgZmlyc3QgZmlsZTogKi8KICBpbml0X2Jsb2NrKHMpOwp9CgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFNlbmQgYSBzdG9yZWQgYmxvY2sKICovCmZ1bmN0aW9uIF90cl9zdG9yZWRfYmxvY2socywgYnVmLCBzdG9yZWRfbGVuLCBsYXN0KQovL0RlZmxhdGVTdGF0ZSAqczsKLy9jaGFyZiAqYnVmOyAgICAgICAvKiBpbnB1dCBibG9jayAqLwovL3VsZyBzdG9yZWRfbGVuOyAgIC8qIGxlbmd0aCBvZiBpbnB1dCBibG9jayAqLwovL2ludCBsYXN0OyAgICAgICAgIC8qIG9uZSBpZiB0aGlzIGlzIHRoZSBsYXN0IGJsb2NrIGZvciBhIGZpbGUgKi8KewogIHNlbmRfYml0cyhzLCAoU1RPUkVEX0JMT0NLIDw8IDEpICsgKGxhc3QgPyAxIDogMCksIDMpOyAgICAvKiBzZW5kIGJsb2NrIHR5cGUgKi8KICBjb3B5X2Jsb2NrKHMsIGJ1Ziwgc3RvcmVkX2xlbiwgdHJ1ZSk7IC8qIHdpdGggaGVhZGVyICovCn0KCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogU2VuZCBvbmUgZW1wdHkgc3RhdGljIGJsb2NrIHRvIGdpdmUgZW5vdWdoIGxvb2thaGVhZCBmb3IgaW5mbGF0ZS4KICogVGhpcyB0YWtlcyAxMCBiaXRzLCBvZiB3aGljaCA3IG1heSByZW1haW4gaW4gdGhlIGJpdCBidWZmZXIuCiAqLwpmdW5jdGlvbiBfdHJfYWxpZ24ocykgewogIHNlbmRfYml0cyhzLCBTVEFUSUNfVFJFRVMgPDwgMSwgMyk7CiAgc2VuZF9jb2RlKHMsIEVORF9CTE9DSywgc3RhdGljX2x0cmVlKTsKICBiaV9mbHVzaChzKTsKfQoKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBEZXRlcm1pbmUgdGhlIGJlc3QgZW5jb2RpbmcgZm9yIHRoZSBjdXJyZW50IGJsb2NrOiBkeW5hbWljIHRyZWVzLCBzdGF0aWMKICogdHJlZXMgb3Igc3RvcmUsIGFuZCBvdXRwdXQgdGhlIGVuY29kZWQgYmxvY2sgdG8gdGhlIHppcCBmaWxlLgogKi8KZnVuY3Rpb24gX3RyX2ZsdXNoX2Jsb2NrKHMsIGJ1Ziwgc3RvcmVkX2xlbiwgbGFzdCkKLy9EZWZsYXRlU3RhdGUgKnM7Ci8vY2hhcmYgKmJ1ZjsgICAgICAgLyogaW5wdXQgYmxvY2ssIG9yIE5VTEwgaWYgdG9vIG9sZCAqLwovL3VsZyBzdG9yZWRfbGVuOyAgIC8qIGxlbmd0aCBvZiBpbnB1dCBibG9jayAqLwovL2ludCBsYXN0OyAgICAgICAgIC8qIG9uZSBpZiB0aGlzIGlzIHRoZSBsYXN0IGJsb2NrIGZvciBhIGZpbGUgKi8KewogIHZhciBvcHRfbGVuYiwgc3RhdGljX2xlbmI7ICAvKiBvcHRfbGVuIGFuZCBzdGF0aWNfbGVuIGluIGJ5dGVzICovCiAgdmFyIG1heF9ibGluZGV4ID0gMDsgICAgICAgIC8qIGluZGV4IG9mIGxhc3QgYml0IGxlbmd0aCBjb2RlIG9mIG5vbiB6ZXJvIGZyZXEgKi8KCiAgLyogQnVpbGQgdGhlIEh1ZmZtYW4gdHJlZXMgdW5sZXNzIGEgc3RvcmVkIGJsb2NrIGlzIGZvcmNlZCAqLwogIGlmIChzLmxldmVsID4gMCkgewoKICAgIC8qIENoZWNrIGlmIHRoZSBmaWxlIGlzIGJpbmFyeSBvciB0ZXh0ICovCiAgICBpZiAocy5zdHJtLmRhdGFfdHlwZSA9PT0gWl9VTktOT1dOKSB7CiAgICAgIHMuc3RybS5kYXRhX3R5cGUgPSBkZXRlY3RfZGF0YV90eXBlKHMpOwogICAgfQoKICAgIC8qIENvbnN0cnVjdCB0aGUgbGl0ZXJhbCBhbmQgZGlzdGFuY2UgdHJlZXMgKi8KICAgIGJ1aWxkX3RyZWUocywgcy5sX2Rlc2MpOwogICAgLy8gVHJhY2V2KChzdGRlcnIsICJcbmxpdCBkYXRhOiBkeW4gJWxkLCBzdGF0ICVsZCIsIHMtPm9wdF9sZW4sCiAgICAvLyAgICAgICAgcy0+c3RhdGljX2xlbikpOwoKICAgIGJ1aWxkX3RyZWUocywgcy5kX2Rlc2MpOwogICAgLy8gVHJhY2V2KChzdGRlcnIsICJcbmRpc3QgZGF0YTogZHluICVsZCwgc3RhdCAlbGQiLCBzLT5vcHRfbGVuLAogICAgLy8gICAgICAgIHMtPnN0YXRpY19sZW4pKTsKICAgIC8qIEF0IHRoaXMgcG9pbnQsIG9wdF9sZW4gYW5kIHN0YXRpY19sZW4gYXJlIHRoZSB0b3RhbCBiaXQgbGVuZ3RocyBvZgogICAgICogdGhlIGNvbXByZXNzZWQgYmxvY2sgZGF0YSwgZXhjbHVkaW5nIHRoZSB0cmVlIHJlcHJlc2VudGF0aW9ucy4KICAgICAqLwoKICAgIC8qIEJ1aWxkIHRoZSBiaXQgbGVuZ3RoIHRyZWUgZm9yIHRoZSBhYm92ZSB0d28gdHJlZXMsIGFuZCBnZXQgdGhlIGluZGV4CiAgICAgKiBpbiBibF9vcmRlciBvZiB0aGUgbGFzdCBiaXQgbGVuZ3RoIGNvZGUgdG8gc2VuZC4KICAgICAqLwogICAgbWF4X2JsaW5kZXggPSBidWlsZF9ibF90cmVlKHMpOwoKICAgIC8qIERldGVybWluZSB0aGUgYmVzdCBlbmNvZGluZy4gQ29tcHV0ZSB0aGUgYmxvY2sgbGVuZ3RocyBpbiBieXRlcy4gKi8KICAgIG9wdF9sZW5iID0gKHMub3B0X2xlbiArIDMgKyA3KSA+Pj4gMzsKICAgIHN0YXRpY19sZW5iID0gKHMuc3RhdGljX2xlbiArIDMgKyA3KSA+Pj4gMzsKCiAgICAvLyBUcmFjZXYoKHN0ZGVyciwgIlxub3B0ICVsdSglbHUpIHN0YXQgJWx1KCVsdSkgc3RvcmVkICVsdSBsaXQgJXUgIiwKICAgIC8vICAgICAgICBvcHRfbGVuYiwgcy0+b3B0X2xlbiwgc3RhdGljX2xlbmIsIHMtPnN0YXRpY19sZW4sIHN0b3JlZF9sZW4sCiAgICAvLyAgICAgICAgcy0+bGFzdF9saXQpKTsKCiAgICBpZiAoc3RhdGljX2xlbmIgPD0gb3B0X2xlbmIpIHsgb3B0X2xlbmIgPSBzdGF0aWNfbGVuYjsgfQoKICB9IGVsc2UgewogICAgLy8gQXNzZXJ0KGJ1ZiAhPSAoY2hhciopMCwgImxvc3QgYnVmIik7CiAgICBvcHRfbGVuYiA9IHN0YXRpY19sZW5iID0gc3RvcmVkX2xlbiArIDU7IC8qIGZvcmNlIGEgc3RvcmVkIGJsb2NrICovCiAgfQoKICBpZiAoKHN0b3JlZF9sZW4gKyA0IDw9IG9wdF9sZW5iKSAmJiAoYnVmICE9PSAtMSkpIHsKICAgIC8qIDQ6IHR3byB3b3JkcyBmb3IgdGhlIGxlbmd0aHMgKi8KCiAgICAvKiBUaGUgdGVzdCBidWYgIT0gTlVMTCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiBMSVRfQlVGU0laRSA+IFdTSVpFLgogICAgICogT3RoZXJ3aXNlIHdlIGNhbid0IGhhdmUgcHJvY2Vzc2VkIG1vcmUgdGhhbiBXU0laRSBpbnB1dCBieXRlcyBzaW5jZQogICAgICogdGhlIGxhc3QgYmxvY2sgZmx1c2gsIGJlY2F1c2UgY29tcHJlc3Npb24gd291bGQgaGF2ZSBiZWVuCiAgICAgKiBzdWNjZXNzZnVsLiBJZiBMSVRfQlVGU0laRSA8PSBXU0laRSwgaXQgaXMgbmV2ZXIgdG9vIGxhdGUgdG8KICAgICAqIHRyYW5zZm9ybSBhIGJsb2NrIGludG8gYSBzdG9yZWQgYmxvY2suCiAgICAgKi8KICAgIF90cl9zdG9yZWRfYmxvY2socywgYnVmLCBzdG9yZWRfbGVuLCBsYXN0KTsKCiAgfSBlbHNlIGlmIChzLnN0cmF0ZWd5ID09PSBaX0ZJWEVEIHx8IHN0YXRpY19sZW5iID09PSBvcHRfbGVuYikgewoKICAgIHNlbmRfYml0cyhzLCAoU1RBVElDX1RSRUVTIDw8IDEpICsgKGxhc3QgPyAxIDogMCksIDMpOwogICAgY29tcHJlc3NfYmxvY2socywgc3RhdGljX2x0cmVlLCBzdGF0aWNfZHRyZWUpOwoKICB9IGVsc2UgewogICAgc2VuZF9iaXRzKHMsIChEWU5fVFJFRVMgPDwgMSkgKyAobGFzdCA/IDEgOiAwKSwgMyk7CiAgICBzZW5kX2FsbF90cmVlcyhzLCBzLmxfZGVzYy5tYXhfY29kZSArIDEsIHMuZF9kZXNjLm1heF9jb2RlICsgMSwgbWF4X2JsaW5kZXggKyAxKTsKICAgIGNvbXByZXNzX2Jsb2NrKHMsIHMuZHluX2x0cmVlLCBzLmR5bl9kdHJlZSk7CiAgfQogIC8vIEFzc2VydCAocy0+Y29tcHJlc3NlZF9sZW4gPT0gcy0+Yml0c19zZW50LCAiYmFkIGNvbXByZXNzZWQgc2l6ZSIpOwogIC8qIFRoZSBhYm92ZSBjaGVjayBpcyBtYWRlIG1vZCAyXjMyLCBmb3IgZmlsZXMgbGFyZ2VyIHRoYW4gNTEyIE1CCiAgICogYW5kIHVMb25nIGltcGxlbWVudGVkIG9uIDMyIGJpdHMuCiAgICovCiAgaW5pdF9ibG9jayhzKTsKCiAgaWYgKGxhc3QpIHsKICAgIGJpX3dpbmR1cChzKTsKICB9CiAgLy8gVHJhY2V2KChzdGRlcnIsIlxuY29tcHJsZW4gJWx1KCVsdSkgIiwgcy0+Y29tcHJlc3NlZF9sZW4+PjMsCiAgLy8gICAgICAgcy0+Y29tcHJlc3NlZF9sZW4tNypsYXN0KSk7Cn0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBTYXZlIHRoZSBtYXRjaCBpbmZvIGFuZCB0YWxseSB0aGUgZnJlcXVlbmN5IGNvdW50cy4gUmV0dXJuIHRydWUgaWYKICogdGhlIGN1cnJlbnQgYmxvY2sgbXVzdCBiZSBmbHVzaGVkLgogKi8KZnVuY3Rpb24gX3RyX3RhbGx5KHMsIGRpc3QsIGxjKQovLyAgICBkZWZsYXRlX3N0YXRlICpzOwovLyAgICB1bnNpZ25lZCBkaXN0OyAgLyogZGlzdGFuY2Ugb2YgbWF0Y2hlZCBzdHJpbmcgKi8KLy8gICAgdW5zaWduZWQgbGM7ICAgIC8qIG1hdGNoIGxlbmd0aC1NSU5fTUFUQ0ggb3IgdW5tYXRjaGVkIGNoYXIgKGlmIGRpc3Q9PTApICovCnsKICAvL3ZhciBvdXRfbGVuZ3RoLCBpbl9sZW5ndGgsIGRjb2RlOwoKICBzLnBlbmRpbmdfYnVmW3MuZF9idWYgKyBzLmxhc3RfbGl0ICogMl0gICAgID0gKGRpc3QgPj4+IDgpICYgMHhmZjsKICBzLnBlbmRpbmdfYnVmW3MuZF9idWYgKyBzLmxhc3RfbGl0ICogMiArIDFdID0gZGlzdCAmIDB4ZmY7CgogIHMucGVuZGluZ19idWZbcy5sX2J1ZiArIHMubGFzdF9saXRdID0gbGMgJiAweGZmOwogIHMubGFzdF9saXQrKzsKCiAgaWYgKGRpc3QgPT09IDApIHsKICAgIC8qIGxjIGlzIHRoZSB1bm1hdGNoZWQgY2hhciAqLwogICAgcy5keW5fbHRyZWVbbGMgKiAyXS8qLkZyZXEqLysrOwogIH0gZWxzZSB7CiAgICBzLm1hdGNoZXMrKzsKICAgIC8qIEhlcmUsIGxjIGlzIHRoZSBtYXRjaCBsZW5ndGggLSBNSU5fTUFUQ0ggKi8KICAgIGRpc3QtLTsgICAgICAgICAgICAgLyogZGlzdCA9IG1hdGNoIGRpc3RhbmNlIC0gMSAqLwogICAgLy9Bc3NlcnQoKHVzaClkaXN0IDwgKHVzaClNQVhfRElTVChzKSAmJgogICAgLy8gICAgICAgKHVzaClsYyA8PSAodXNoKShNQVhfTUFUQ0gtTUlOX01BVENIKSAmJgogICAgLy8gICAgICAgKHVzaClkX2NvZGUoZGlzdCkgPCAodXNoKURfQ09ERVMsICAiX3RyX3RhbGx5OiBiYWQgbWF0Y2giKTsKCiAgICBzLmR5bl9sdHJlZVsoX2xlbmd0aF9jb2RlW2xjXSArIExJVEVSQUxTICsgMSkgKiAyXS8qLkZyZXEqLysrOwogICAgcy5keW5fZHRyZWVbZF9jb2RlKGRpc3QpICogMl0vKi5GcmVxKi8rKzsKICB9CgovLyAoISkgVGhpcyBibG9jayBpcyBkaXNhYmxlZCBpbiB6bGliIGRlZmF1bHRzLAovLyBkb24ndCBlbmFibGUgaXQgZm9yIGJpbmFyeSBjb21wYXRpYmlsaXR5CgovLyNpZmRlZiBUUlVOQ0FURV9CTE9DSwovLyAgLyogVHJ5IHRvIGd1ZXNzIGlmIGl0IGlzIHByb2ZpdGFibGUgdG8gc3RvcCB0aGUgY3VycmVudCBibG9jayBoZXJlICovCi8vICBpZiAoKHMubGFzdF9saXQgJiAweDFmZmYpID09PSAwICYmIHMubGV2ZWwgPiAyKSB7Ci8vICAgIC8qIENvbXB1dGUgYW4gdXBwZXIgYm91bmQgZm9yIHRoZSBjb21wcmVzc2VkIGxlbmd0aCAqLwovLyAgICBvdXRfbGVuZ3RoID0gcy5sYXN0X2xpdCo4OwovLyAgICBpbl9sZW5ndGggPSBzLnN0cnN0YXJ0IC0gcy5ibG9ja19zdGFydDsKLy8KLy8gICAgZm9yIChkY29kZSA9IDA7IGRjb2RlIDwgRF9DT0RFUzsgZGNvZGUrKykgewovLyAgICAgIG91dF9sZW5ndGggKz0gcy5keW5fZHRyZWVbZGNvZGUqMl0vKi5GcmVxKi8gKiAoNSArIGV4dHJhX2RiaXRzW2Rjb2RlXSk7Ci8vICAgIH0KLy8gICAgb3V0X2xlbmd0aCA+Pj49IDM7Ci8vICAgIC8vVHJhY2V2KChzdGRlcnIsIlxubGFzdF9saXQgJXUsIGluICVsZCwgb3V0IH4lbGQoJWxkJSUpICIsCi8vICAgIC8vICAgICAgIHMtPmxhc3RfbGl0LCBpbl9sZW5ndGgsIG91dF9sZW5ndGgsCi8vICAgIC8vICAgICAgIDEwMEwgLSBvdXRfbGVuZ3RoKjEwMEwvaW5fbGVuZ3RoKSk7Ci8vICAgIGlmIChzLm1hdGNoZXMgPCAocy5sYXN0X2xpdD4+MSkvKmludCAvMiovICYmIG91dF9sZW5ndGggPCAoaW5fbGVuZ3RoPj4xKS8qaW50IC8yKi8pIHsKLy8gICAgICByZXR1cm4gdHJ1ZTsKLy8gICAgfQovLyAgfQovLyNlbmRpZgoKICByZXR1cm4gKHMubGFzdF9saXQgPT09IHMubGl0X2J1ZnNpemUgLSAxKTsKICAvKiBXZSBhdm9pZCBlcXVhbGl0eSB3aXRoIGxpdF9idWZzaXplIGJlY2F1c2Ugb2Ygd3JhcGFyb3VuZCBhdCA2NEsKICAgKiBvbiAxNiBiaXQgbWFjaGluZXMgYW5kIGJlY2F1c2Ugc3RvcmVkIGJsb2NrcyBhcmUgcmVzdHJpY3RlZCB0bwogICAqIDY0Sy0xIGJ5dGVzLgogICAqLwp9CgpleHBvcnRzLl90cl9pbml0ICA9IF90cl9pbml0OwpleHBvcnRzLl90cl9zdG9yZWRfYmxvY2sgPSBfdHJfc3RvcmVkX2Jsb2NrOwpleHBvcnRzLl90cl9mbHVzaF9ibG9jayAgPSBfdHJfZmx1c2hfYmxvY2s7CmV4cG9ydHMuX3RyX3RhbGx5ID0gX3RyX3RhbGx5OwpleHBvcnRzLl90cl9hbGlnbiA9IF90cl9hbGlnbjsKCgovKioqLyB9KSwKLyogMTU2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgovLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KLy8KLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCi8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCi8vCi8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAovLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0Ci8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKLy8KLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQovLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQovLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCi8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgovLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgMjogICAgICAnbmVlZCBkaWN0aW9uYXJ5JywgICAgIC8qIFpfTkVFRF9ESUNUICAgICAgIDIgICovCiAgMTogICAgICAnc3RyZWFtIGVuZCcsICAgICAgICAgIC8qIFpfU1RSRUFNX0VORCAgICAgIDEgICovCiAgMDogICAgICAnJywgICAgICAgICAgICAgICAgICAgIC8qIFpfT0sgICAgICAgICAgICAgIDAgICovCiAgJy0xJzogICAnZmlsZSBlcnJvcicsICAgICAgICAgIC8qIFpfRVJSTk8gICAgICAgICAoLTEpICovCiAgJy0yJzogICAnc3RyZWFtIGVycm9yJywgICAgICAgIC8qIFpfU1RSRUFNX0VSUk9SICAoLTIpICovCiAgJy0zJzogICAnZGF0YSBlcnJvcicsICAgICAgICAgIC8qIFpfREFUQV9FUlJPUiAgICAoLTMpICovCiAgJy00JzogICAnaW5zdWZmaWNpZW50IG1lbW9yeScsIC8qIFpfTUVNX0VSUk9SICAgICAoLTQpICovCiAgJy01JzogICAnYnVmZmVyIGVycm9yJywgICAgICAgIC8qIFpfQlVGX0VSUk9SICAgICAoLTUpICovCiAgJy02JzogICAnaW5jb21wYXRpYmxlIHZlcnNpb24nIC8qIFpfVkVSU0lPTl9FUlJPUiAoLTYpICovCn07CgoKLyoqKi8gfSksCi8qIDE1NyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCi8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCi8vCi8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCi8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwovLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgovLwovLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAovLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6Ci8vCi8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90Ci8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgovLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQovLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCnZhciB1dGlscyAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXygzNCk7CnZhciBhZGxlcjMyICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4OSk7CnZhciBjcmMzMiAgICAgICAgID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5MCk7CnZhciBpbmZsYXRlX2Zhc3QgID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNTgpOwp2YXIgaW5mbGF0ZV90YWJsZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTU5KTsKCnZhciBDT0RFUyA9IDA7CnZhciBMRU5TID0gMTsKdmFyIERJU1RTID0gMjsKCi8qIFB1YmxpYyBjb25zdGFudHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovCgoKLyogQWxsb3dlZCBmbHVzaCB2YWx1ZXM7IHNlZSBkZWZsYXRlKCkgYW5kIGluZmxhdGUoKSBiZWxvdyBmb3IgZGV0YWlscyAqLwovL3ZhciBaX05PX0ZMVVNIICAgICAgPSAwOwovL3ZhciBaX1BBUlRJQUxfRkxVU0ggPSAxOwovL3ZhciBaX1NZTkNfRkxVU0ggICAgPSAyOwovL3ZhciBaX0ZVTExfRkxVU0ggICAgPSAzOwp2YXIgWl9GSU5JU0ggICAgICAgID0gNDsKdmFyIFpfQkxPQ0sgICAgICAgICA9IDU7CnZhciBaX1RSRUVTICAgICAgICAgPSA2OwoKCi8qIFJldHVybiBjb2RlcyBmb3IgdGhlIGNvbXByZXNzaW9uL2RlY29tcHJlc3Npb24gZnVuY3Rpb25zLiBOZWdhdGl2ZSB2YWx1ZXMKICogYXJlIGVycm9ycywgcG9zaXRpdmUgdmFsdWVzIGFyZSB1c2VkIGZvciBzcGVjaWFsIGJ1dCBub3JtYWwgZXZlbnRzLgogKi8KdmFyIFpfT0sgICAgICAgICAgICA9IDA7CnZhciBaX1NUUkVBTV9FTkQgICAgPSAxOwp2YXIgWl9ORUVEX0RJQ1QgICAgID0gMjsKLy92YXIgWl9FUlJOTyAgICAgICAgID0gLTE7CnZhciBaX1NUUkVBTV9FUlJPUiAgPSAtMjsKdmFyIFpfREFUQV9FUlJPUiAgICA9IC0zOwp2YXIgWl9NRU1fRVJST1IgICAgID0gLTQ7CnZhciBaX0JVRl9FUlJPUiAgICAgPSAtNTsKLy92YXIgWl9WRVJTSU9OX0VSUk9SID0gLTY7CgovKiBUaGUgZGVmbGF0ZSBjb21wcmVzc2lvbiBtZXRob2QgKi8KdmFyIFpfREVGTEFURUQgID0gODsKCgovKiBTVEFURVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCnZhciAgICBIRUFEID0gMTsgICAgICAgLyogaTogd2FpdGluZyBmb3IgbWFnaWMgaGVhZGVyICovCnZhciAgICBGTEFHUyA9IDI7ICAgICAgLyogaTogd2FpdGluZyBmb3IgbWV0aG9kIGFuZCBmbGFncyAoZ3ppcCkgKi8KdmFyICAgIFRJTUUgPSAzOyAgICAgICAvKiBpOiB3YWl0aW5nIGZvciBtb2RpZmljYXRpb24gdGltZSAoZ3ppcCkgKi8KdmFyICAgIE9TID0gNDsgICAgICAgICAvKiBpOiB3YWl0aW5nIGZvciBleHRyYSBmbGFncyBhbmQgb3BlcmF0aW5nIHN5c3RlbSAoZ3ppcCkgKi8KdmFyICAgIEVYTEVOID0gNTsgICAgICAvKiBpOiB3YWl0aW5nIGZvciBleHRyYSBsZW5ndGggKGd6aXApICovCnZhciAgICBFWFRSQSA9IDY7ICAgICAgLyogaTogd2FpdGluZyBmb3IgZXh0cmEgYnl0ZXMgKGd6aXApICovCnZhciAgICBOQU1FID0gNzsgICAgICAgLyogaTogd2FpdGluZyBmb3IgZW5kIG9mIGZpbGUgbmFtZSAoZ3ppcCkgKi8KdmFyICAgIENPTU1FTlQgPSA4OyAgICAvKiBpOiB3YWl0aW5nIGZvciBlbmQgb2YgY29tbWVudCAoZ3ppcCkgKi8KdmFyICAgIEhDUkMgPSA5OyAgICAgICAvKiBpOiB3YWl0aW5nIGZvciBoZWFkZXIgY3JjIChnemlwKSAqLwp2YXIgICAgRElDVElEID0gMTA7ICAgIC8qIGk6IHdhaXRpbmcgZm9yIGRpY3Rpb25hcnkgY2hlY2sgdmFsdWUgKi8KdmFyICAgIERJQ1QgPSAxMTsgICAgICAvKiB3YWl0aW5nIGZvciBpbmZsYXRlU2V0RGljdGlvbmFyeSgpIGNhbGwgKi8KdmFyICAgICAgICBUWVBFID0gMTI7ICAgICAgLyogaTogd2FpdGluZyBmb3IgdHlwZSBiaXRzLCBpbmNsdWRpbmcgbGFzdC1mbGFnIGJpdCAqLwp2YXIgICAgICAgIFRZUEVETyA9IDEzOyAgICAvKiBpOiBzYW1lLCBidXQgc2tpcCBjaGVjayB0byBleGl0IGluZmxhdGUgb24gbmV3IGJsb2NrICovCnZhciAgICAgICAgU1RPUkVEID0gMTQ7ICAgIC8qIGk6IHdhaXRpbmcgZm9yIHN0b3JlZCBzaXplIChsZW5ndGggYW5kIGNvbXBsZW1lbnQpICovCnZhciAgICAgICAgQ09QWV8gPSAxNTsgICAgIC8qIGkvbzogc2FtZSBhcyBDT1BZIGJlbG93LCBidXQgb25seSBmaXJzdCB0aW1lIGluICovCnZhciAgICAgICAgQ09QWSA9IDE2OyAgICAgIC8qIGkvbzogd2FpdGluZyBmb3IgaW5wdXQgb3Igb3V0cHV0IHRvIGNvcHkgc3RvcmVkIGJsb2NrICovCnZhciAgICAgICAgVEFCTEUgPSAxNzsgICAgIC8qIGk6IHdhaXRpbmcgZm9yIGR5bmFtaWMgYmxvY2sgdGFibGUgbGVuZ3RocyAqLwp2YXIgICAgICAgIExFTkxFTlMgPSAxODsgICAvKiBpOiB3YWl0aW5nIGZvciBjb2RlIGxlbmd0aCBjb2RlIGxlbmd0aHMgKi8KdmFyICAgICAgICBDT0RFTEVOUyA9IDE5OyAgLyogaTogd2FpdGluZyBmb3IgbGVuZ3RoL2xpdCBhbmQgZGlzdGFuY2UgY29kZSBsZW5ndGhzICovCnZhciAgICAgICAgICAgIExFTl8gPSAyMDsgICAgICAvKiBpOiBzYW1lIGFzIExFTiBiZWxvdywgYnV0IG9ubHkgZmlyc3QgdGltZSBpbiAqLwp2YXIgICAgICAgICAgICBMRU4gPSAyMTsgICAgICAgLyogaTogd2FpdGluZyBmb3IgbGVuZ3RoL2xpdC9lb2IgY29kZSAqLwp2YXIgICAgICAgICAgICBMRU5FWFQgPSAyMjsgICAgLyogaTogd2FpdGluZyBmb3IgbGVuZ3RoIGV4dHJhIGJpdHMgKi8KdmFyICAgICAgICAgICAgRElTVCA9IDIzOyAgICAgIC8qIGk6IHdhaXRpbmcgZm9yIGRpc3RhbmNlIGNvZGUgKi8KdmFyICAgICAgICAgICAgRElTVEVYVCA9IDI0OyAgIC8qIGk6IHdhaXRpbmcgZm9yIGRpc3RhbmNlIGV4dHJhIGJpdHMgKi8KdmFyICAgICAgICAgICAgTUFUQ0ggPSAyNTsgICAgIC8qIG86IHdhaXRpbmcgZm9yIG91dHB1dCBzcGFjZSB0byBjb3B5IHN0cmluZyAqLwp2YXIgICAgICAgICAgICBMSVQgPSAyNjsgICAgICAgLyogbzogd2FpdGluZyBmb3Igb3V0cHV0IHNwYWNlIHRvIHdyaXRlIGxpdGVyYWwgKi8KdmFyICAgIENIRUNLID0gMjc7ICAgICAvKiBpOiB3YWl0aW5nIGZvciAzMi1iaXQgY2hlY2sgdmFsdWUgKi8KdmFyICAgIExFTkdUSCA9IDI4OyAgICAvKiBpOiB3YWl0aW5nIGZvciAzMi1iaXQgbGVuZ3RoIChnemlwKSAqLwp2YXIgICAgRE9ORSA9IDI5OyAgICAgIC8qIGZpbmlzaGVkIGNoZWNrLCBkb25lIC0tIHJlbWFpbiBoZXJlIHVudGlsIHJlc2V0ICovCnZhciAgICBCQUQgPSAzMDsgICAgICAgLyogZ290IGEgZGF0YSBlcnJvciAtLSByZW1haW4gaGVyZSB1bnRpbCByZXNldCAqLwp2YXIgICAgTUVNID0gMzE7ICAgICAgIC8qIGdvdCBhbiBpbmZsYXRlKCkgbWVtb3J5IGVycm9yIC0tIHJlbWFpbiBoZXJlIHVudGlsIHJlc2V0ICovCnZhciAgICBTWU5DID0gMzI7ICAgICAgLyogbG9va2luZyBmb3Igc3luY2hyb25pemF0aW9uIGJ5dGVzIHRvIHJlc3RhcnQgaW5mbGF0ZSgpICovCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwoKCgp2YXIgRU5PVUdIX0xFTlMgPSA4NTI7CnZhciBFTk9VR0hfRElTVFMgPSA1OTI7Ci8vdmFyIEVOT1VHSCA9ICAoRU5PVUdIX0xFTlMrRU5PVUdIX0RJU1RTKTsKCnZhciBNQVhfV0JJVFMgPSAxNTsKLyogMzJLIExaNzcgd2luZG93ICovCnZhciBERUZfV0JJVFMgPSBNQVhfV0JJVFM7CgoKZnVuY3Rpb24genN3YXAzMihxKSB7CiAgcmV0dXJuICAoKChxID4+PiAyNCkgJiAweGZmKSArCiAgICAgICAgICAoKHEgPj4+IDgpICYgMHhmZjAwKSArCiAgICAgICAgICAoKHEgJiAweGZmMDApIDw8IDgpICsKICAgICAgICAgICgocSAmIDB4ZmYpIDw8IDI0KSk7Cn0KCgpmdW5jdGlvbiBJbmZsYXRlU3RhdGUoKSB7CiAgdGhpcy5tb2RlID0gMDsgICAgICAgICAgICAgLyogY3VycmVudCBpbmZsYXRlIG1vZGUgKi8KICB0aGlzLmxhc3QgPSBmYWxzZTsgICAgICAgICAgLyogdHJ1ZSBpZiBwcm9jZXNzaW5nIGxhc3QgYmxvY2sgKi8KICB0aGlzLndyYXAgPSAwOyAgICAgICAgICAgICAgLyogYml0IDAgdHJ1ZSBmb3IgemxpYiwgYml0IDEgdHJ1ZSBmb3IgZ3ppcCAqLwogIHRoaXMuaGF2ZWRpY3QgPSBmYWxzZTsgICAgICAvKiB0cnVlIGlmIGRpY3Rpb25hcnkgcHJvdmlkZWQgKi8KICB0aGlzLmZsYWdzID0gMDsgICAgICAgICAgICAgLyogZ3ppcCBoZWFkZXIgbWV0aG9kIGFuZCBmbGFncyAoMCBpZiB6bGliKSAqLwogIHRoaXMuZG1heCA9IDA7ICAgICAgICAgICAgICAvKiB6bGliIGhlYWRlciBtYXggZGlzdGFuY2UgKElORkxBVEVfU1RSSUNUKSAqLwogIHRoaXMuY2hlY2sgPSAwOyAgICAgICAgICAgICAvKiBwcm90ZWN0ZWQgY29weSBvZiBjaGVjayB2YWx1ZSAqLwogIHRoaXMudG90YWwgPSAwOyAgICAgICAgICAgICAvKiBwcm90ZWN0ZWQgY29weSBvZiBvdXRwdXQgY291bnQgKi8KICAvLyBUT0RPOiBtYXkgYmUge30KICB0aGlzLmhlYWQgPSBudWxsOyAgICAgICAgICAgLyogd2hlcmUgdG8gc2F2ZSBnemlwIGhlYWRlciBpbmZvcm1hdGlvbiAqLwoKICAvKiBzbGlkaW5nIHdpbmRvdyAqLwogIHRoaXMud2JpdHMgPSAwOyAgICAgICAgICAgICAvKiBsb2cgYmFzZSAyIG9mIHJlcXVlc3RlZCB3aW5kb3cgc2l6ZSAqLwogIHRoaXMud3NpemUgPSAwOyAgICAgICAgICAgICAvKiB3aW5kb3cgc2l6ZSBvciB6ZXJvIGlmIG5vdCB1c2luZyB3aW5kb3cgKi8KICB0aGlzLndoYXZlID0gMDsgICAgICAgICAgICAgLyogdmFsaWQgYnl0ZXMgaW4gdGhlIHdpbmRvdyAqLwogIHRoaXMud25leHQgPSAwOyAgICAgICAgICAgICAvKiB3aW5kb3cgd3JpdGUgaW5kZXggKi8KICB0aGlzLndpbmRvdyA9IG51bGw7ICAgICAgICAgLyogYWxsb2NhdGVkIHNsaWRpbmcgd2luZG93LCBpZiBuZWVkZWQgKi8KCiAgLyogYml0IGFjY3VtdWxhdG9yICovCiAgdGhpcy5ob2xkID0gMDsgICAgICAgICAgICAgIC8qIGlucHV0IGJpdCBhY2N1bXVsYXRvciAqLwogIHRoaXMuYml0cyA9IDA7ICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgYml0cyBpbiAiaW4iICovCgogIC8qIGZvciBzdHJpbmcgYW5kIHN0b3JlZCBibG9jayBjb3B5aW5nICovCiAgdGhpcy5sZW5ndGggPSAwOyAgICAgICAgICAgIC8qIGxpdGVyYWwgb3IgbGVuZ3RoIG9mIGRhdGEgdG8gY29weSAqLwogIHRoaXMub2Zmc2V0ID0gMDsgICAgICAgICAgICAvKiBkaXN0YW5jZSBiYWNrIHRvIGNvcHkgc3RyaW5nIGZyb20gKi8KCiAgLyogZm9yIHRhYmxlIGFuZCBjb2RlIGRlY29kaW5nICovCiAgdGhpcy5leHRyYSA9IDA7ICAgICAgICAgICAgIC8qIGV4dHJhIGJpdHMgbmVlZGVkICovCgogIC8qIGZpeGVkIGFuZCBkeW5hbWljIGNvZGUgdGFibGVzICovCiAgdGhpcy5sZW5jb2RlID0gbnVsbDsgICAgICAgICAgLyogc3RhcnRpbmcgdGFibGUgZm9yIGxlbmd0aC9saXRlcmFsIGNvZGVzICovCiAgdGhpcy5kaXN0Y29kZSA9IG51bGw7ICAgICAgICAgLyogc3RhcnRpbmcgdGFibGUgZm9yIGRpc3RhbmNlIGNvZGVzICovCiAgdGhpcy5sZW5iaXRzID0gMDsgICAgICAgICAgIC8qIGluZGV4IGJpdHMgZm9yIGxlbmNvZGUgKi8KICB0aGlzLmRpc3RiaXRzID0gMDsgICAgICAgICAgLyogaW5kZXggYml0cyBmb3IgZGlzdGNvZGUgKi8KCiAgLyogZHluYW1pYyB0YWJsZSBidWlsZGluZyAqLwogIHRoaXMubmNvZGUgPSAwOyAgICAgICAgICAgICAvKiBudW1iZXIgb2YgY29kZSBsZW5ndGggY29kZSBsZW5ndGhzICovCiAgdGhpcy5ubGVuID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBsZW5ndGggY29kZSBsZW5ndGhzICovCiAgdGhpcy5uZGlzdCA9IDA7ICAgICAgICAgICAgIC8qIG51bWJlciBvZiBkaXN0YW5jZSBjb2RlIGxlbmd0aHMgKi8KICB0aGlzLmhhdmUgPSAwOyAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGNvZGUgbGVuZ3RocyBpbiBsZW5zW10gKi8KICB0aGlzLm5leHQgPSBudWxsOyAgICAgICAgICAgICAgLyogbmV4dCBhdmFpbGFibGUgc3BhY2UgaW4gY29kZXNbXSAqLwoKICB0aGlzLmxlbnMgPSBuZXcgdXRpbHMuQnVmMTYoMzIwKTsgLyogdGVtcG9yYXJ5IHN0b3JhZ2UgZm9yIGNvZGUgbGVuZ3RocyAqLwogIHRoaXMud29yayA9IG5ldyB1dGlscy5CdWYxNigyODgpOyAvKiB3b3JrIGFyZWEgZm9yIGNvZGUgdGFibGUgYnVpbGRpbmcgKi8KCiAgLyoKICAgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHBvaW50ZXJzIGluIGpzLCB3ZSB1c2UgbGVuY29kZSBhbmQgZGlzdGNvZGUgZGlyZWN0bHkKICAgYXMgYnVmZmVycyBzbyB3ZSBkb24ndCBuZWVkIGNvZGVzCiAgKi8KICAvL3RoaXMuY29kZXMgPSBuZXcgdXRpbHMuQnVmMzIoRU5PVUdIKTsgICAgICAgLyogc3BhY2UgZm9yIGNvZGUgdGFibGVzICovCiAgdGhpcy5sZW5keW4gPSBudWxsOyAgICAgICAgICAgICAgLyogZHluYW1pYyB0YWJsZSBmb3IgbGVuZ3RoL2xpdGVyYWwgY29kZXMgKEpTIHNwZWNpZmljKSAqLwogIHRoaXMuZGlzdGR5biA9IG51bGw7ICAgICAgICAgICAgIC8qIGR5bmFtaWMgdGFibGUgZm9yIGRpc3RhbmNlIGNvZGVzIChKUyBzcGVjaWZpYykgKi8KICB0aGlzLnNhbmUgPSAwOyAgICAgICAgICAgICAgICAgICAvKiBpZiBmYWxzZSwgYWxsb3cgaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyICovCiAgdGhpcy5iYWNrID0gMDsgICAgICAgICAgICAgICAgICAgLyogYml0cyBiYWNrIG9mIGxhc3QgdW5wcm9jZXNzZWQgbGVuZ3RoL2xpdCAqLwogIHRoaXMud2FzID0gMDsgICAgICAgICAgICAgICAgICAgIC8qIGluaXRpYWwgbGVuZ3RoIG9mIG1hdGNoICovCn0KCmZ1bmN0aW9uIGluZmxhdGVSZXNldEtlZXAoc3RybSkgewogIHZhciBzdGF0ZTsKCiAgaWYgKCFzdHJtIHx8ICFzdHJtLnN0YXRlKSB7IHJldHVybiBaX1NUUkVBTV9FUlJPUjsgfQogIHN0YXRlID0gc3RybS5zdGF0ZTsKICBzdHJtLnRvdGFsX2luID0gc3RybS50b3RhbF9vdXQgPSBzdGF0ZS50b3RhbCA9IDA7CiAgc3RybS5tc2cgPSAnJzsgLypaX05VTEwqLwogIGlmIChzdGF0ZS53cmFwKSB7ICAgICAgIC8qIHRvIHN1cHBvcnQgaWxsLWNvbmNlaXZlZCBKYXZhIHRlc3Qgc3VpdGUgKi8KICAgIHN0cm0uYWRsZXIgPSBzdGF0ZS53cmFwICYgMTsKICB9CiAgc3RhdGUubW9kZSA9IEhFQUQ7CiAgc3RhdGUubGFzdCA9IDA7CiAgc3RhdGUuaGF2ZWRpY3QgPSAwOwogIHN0YXRlLmRtYXggPSAzMjc2ODsKICBzdGF0ZS5oZWFkID0gbnVsbC8qWl9OVUxMKi87CiAgc3RhdGUuaG9sZCA9IDA7CiAgc3RhdGUuYml0cyA9IDA7CiAgLy9zdGF0ZS5sZW5jb2RlID0gc3RhdGUuZGlzdGNvZGUgPSBzdGF0ZS5uZXh0ID0gc3RhdGUuY29kZXM7CiAgc3RhdGUubGVuY29kZSA9IHN0YXRlLmxlbmR5biA9IG5ldyB1dGlscy5CdWYzMihFTk9VR0hfTEVOUyk7CiAgc3RhdGUuZGlzdGNvZGUgPSBzdGF0ZS5kaXN0ZHluID0gbmV3IHV0aWxzLkJ1ZjMyKEVOT1VHSF9ESVNUUyk7CgogIHN0YXRlLnNhbmUgPSAxOwogIHN0YXRlLmJhY2sgPSAtMTsKICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogcmVzZXRcbiIpKTsKICByZXR1cm4gWl9PSzsKfQoKZnVuY3Rpb24gaW5mbGF0ZVJlc2V0KHN0cm0pIHsKICB2YXIgc3RhdGU7CgogIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgeyByZXR1cm4gWl9TVFJFQU1fRVJST1I7IH0KICBzdGF0ZSA9IHN0cm0uc3RhdGU7CiAgc3RhdGUud3NpemUgPSAwOwogIHN0YXRlLndoYXZlID0gMDsKICBzdGF0ZS53bmV4dCA9IDA7CiAgcmV0dXJuIGluZmxhdGVSZXNldEtlZXAoc3RybSk7Cgp9CgpmdW5jdGlvbiBpbmZsYXRlUmVzZXQyKHN0cm0sIHdpbmRvd0JpdHMpIHsKICB2YXIgd3JhcDsKICB2YXIgc3RhdGU7CgogIC8qIGdldCB0aGUgc3RhdGUgKi8KICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUpIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOyB9CiAgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAvKiBleHRyYWN0IHdyYXAgcmVxdWVzdCBmcm9tIHdpbmRvd0JpdHMgcGFyYW1ldGVyICovCiAgaWYgKHdpbmRvd0JpdHMgPCAwKSB7CiAgICB3cmFwID0gMDsKICAgIHdpbmRvd0JpdHMgPSAtd2luZG93Qml0czsKICB9CiAgZWxzZSB7CiAgICB3cmFwID0gKHdpbmRvd0JpdHMgPj4gNCkgKyAxOwogICAgaWYgKHdpbmRvd0JpdHMgPCA0OCkgewogICAgICB3aW5kb3dCaXRzICY9IDE1OwogICAgfQogIH0KCiAgLyogc2V0IG51bWJlciBvZiB3aW5kb3cgYml0cywgZnJlZSB3aW5kb3cgaWYgZGlmZmVyZW50ICovCiAgaWYgKHdpbmRvd0JpdHMgJiYgKHdpbmRvd0JpdHMgPCA4IHx8IHdpbmRvd0JpdHMgPiAxNSkpIHsKICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKICB9CiAgaWYgKHN0YXRlLndpbmRvdyAhPT0gbnVsbCAmJiBzdGF0ZS53Yml0cyAhPT0gd2luZG93Qml0cykgewogICAgc3RhdGUud2luZG93ID0gbnVsbDsKICB9CgogIC8qIHVwZGF0ZSBzdGF0ZSBhbmQgcmVzZXQgdGhlIHJlc3Qgb2YgaXQgKi8KICBzdGF0ZS53cmFwID0gd3JhcDsKICBzdGF0ZS53Yml0cyA9IHdpbmRvd0JpdHM7CiAgcmV0dXJuIGluZmxhdGVSZXNldChzdHJtKTsKfQoKZnVuY3Rpb24gaW5mbGF0ZUluaXQyKHN0cm0sIHdpbmRvd0JpdHMpIHsKICB2YXIgcmV0OwogIHZhciBzdGF0ZTsKCiAgaWYgKCFzdHJtKSB7IHJldHVybiBaX1NUUkVBTV9FUlJPUjsgfQogIC8vc3RybS5tc2cgPSBaX05VTEw7ICAgICAgICAgICAgICAgICAvKiBpbiBjYXNlIHdlIHJldHVybiBhbiBlcnJvciAqLwoKICBzdGF0ZSA9IG5ldyBJbmZsYXRlU3RhdGUoKTsKCiAgLy9pZiAoc3RhdGUgPT09IFpfTlVMTCkgcmV0dXJuIFpfTUVNX0VSUk9SOwogIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiBhbGxvY2F0ZWRcbiIpKTsKICBzdHJtLnN0YXRlID0gc3RhdGU7CiAgc3RhdGUud2luZG93ID0gbnVsbC8qWl9OVUxMKi87CiAgcmV0ID0gaW5mbGF0ZVJlc2V0MihzdHJtLCB3aW5kb3dCaXRzKTsKICBpZiAocmV0ICE9PSBaX09LKSB7CiAgICBzdHJtLnN0YXRlID0gbnVsbC8qWl9OVUxMKi87CiAgfQogIHJldHVybiByZXQ7Cn0KCmZ1bmN0aW9uIGluZmxhdGVJbml0KHN0cm0pIHsKICByZXR1cm4gaW5mbGF0ZUluaXQyKHN0cm0sIERFRl9XQklUUyk7Cn0KCgovKgogUmV0dXJuIHN0YXRlIHdpdGggbGVuZ3RoIGFuZCBkaXN0YW5jZSBkZWNvZGluZyB0YWJsZXMgYW5kIGluZGV4IHNpemVzIHNldCB0bwogZml4ZWQgY29kZSBkZWNvZGluZy4gIE5vcm1hbGx5IHRoaXMgcmV0dXJucyBmaXhlZCB0YWJsZXMgZnJvbSBpbmZmaXhlZC5oLgogSWYgQlVJTERGSVhFRCBpcyBkZWZpbmVkLCB0aGVuIGluc3RlYWQgdGhpcyByb3V0aW5lIGJ1aWxkcyB0aGUgdGFibGVzIHRoZQogZmlyc3QgdGltZSBpdCdzIGNhbGxlZCwgYW5kIHJldHVybnMgdGhvc2UgdGFibGVzIHRoZSBmaXJzdCB0aW1lIGFuZAogdGhlcmVhZnRlci4gIFRoaXMgcmVkdWNlcyB0aGUgc2l6ZSBvZiB0aGUgY29kZSBieSBhYm91dCAySyBieXRlcywgaW4KIGV4Y2hhbmdlIGZvciBhIGxpdHRsZSBleGVjdXRpb24gdGltZS4gIEhvd2V2ZXIsIEJVSUxERklYRUQgc2hvdWxkIG5vdCBiZQogdXNlZCBmb3IgdGhyZWFkZWQgYXBwbGljYXRpb25zLCBzaW5jZSB0aGUgcmV3cml0aW5nIG9mIHRoZSB0YWJsZXMgYW5kIHZpcmdpbgogbWF5IG5vdCBiZSB0aHJlYWQtc2FmZS4KICovCnZhciB2aXJnaW4gPSB0cnVlOwoKdmFyIGxlbmZpeCwgZGlzdGZpeDsgLy8gV2UgaGF2ZSBubyBwb2ludGVycyBpbiBKUywgc28ga2VlcCB0YWJsZXMgc2VwYXJhdGUKCmZ1bmN0aW9uIGZpeGVkdGFibGVzKHN0YXRlKSB7CiAgLyogYnVpbGQgZml4ZWQgaHVmZm1hbiB0YWJsZXMgaWYgZmlyc3QgY2FsbCAobWF5IG5vdCBiZSB0aHJlYWQgc2FmZSkgKi8KICBpZiAodmlyZ2luKSB7CiAgICB2YXIgc3ltOwoKICAgIGxlbmZpeCA9IG5ldyB1dGlscy5CdWYzMig1MTIpOwogICAgZGlzdGZpeCA9IG5ldyB1dGlscy5CdWYzMigzMik7CgogICAgLyogbGl0ZXJhbC9sZW5ndGggdGFibGUgKi8KICAgIHN5bSA9IDA7CiAgICB3aGlsZSAoc3ltIDwgMTQ0KSB7IHN0YXRlLmxlbnNbc3ltKytdID0gODsgfQogICAgd2hpbGUgKHN5bSA8IDI1NikgeyBzdGF0ZS5sZW5zW3N5bSsrXSA9IDk7IH0KICAgIHdoaWxlIChzeW0gPCAyODApIHsgc3RhdGUubGVuc1tzeW0rK10gPSA3OyB9CiAgICB3aGlsZSAoc3ltIDwgMjg4KSB7IHN0YXRlLmxlbnNbc3ltKytdID0gODsgfQoKICAgIGluZmxhdGVfdGFibGUoTEVOUywgIHN0YXRlLmxlbnMsIDAsIDI4OCwgbGVuZml4LCAgIDAsIHN0YXRlLndvcmssIHsgYml0czogOSB9KTsKCiAgICAvKiBkaXN0YW5jZSB0YWJsZSAqLwogICAgc3ltID0gMDsKICAgIHdoaWxlIChzeW0gPCAzMikgeyBzdGF0ZS5sZW5zW3N5bSsrXSA9IDU7IH0KCiAgICBpbmZsYXRlX3RhYmxlKERJU1RTLCBzdGF0ZS5sZW5zLCAwLCAzMiwgICBkaXN0Zml4LCAwLCBzdGF0ZS53b3JrLCB7IGJpdHM6IDUgfSk7CgogICAgLyogZG8gdGhpcyBqdXN0IG9uY2UgKi8KICAgIHZpcmdpbiA9IGZhbHNlOwogIH0KCiAgc3RhdGUubGVuY29kZSA9IGxlbmZpeDsKICBzdGF0ZS5sZW5iaXRzID0gOTsKICBzdGF0ZS5kaXN0Y29kZSA9IGRpc3RmaXg7CiAgc3RhdGUuZGlzdGJpdHMgPSA1Owp9CgoKLyoKIFVwZGF0ZSB0aGUgd2luZG93IHdpdGggdGhlIGxhc3Qgd3NpemUgKG5vcm1hbGx5IDMySykgYnl0ZXMgd3JpdHRlbiBiZWZvcmUKIHJldHVybmluZy4gIElmIHdpbmRvdyBkb2VzIG5vdCBleGlzdCB5ZXQsIGNyZWF0ZSBpdC4gIFRoaXMgaXMgb25seSBjYWxsZWQKIHdoZW4gYSB3aW5kb3cgaXMgYWxyZWFkeSBpbiB1c2UsIG9yIHdoZW4gb3V0cHV0IGhhcyBiZWVuIHdyaXR0ZW4gZHVyaW5nIHRoaXMKIGluZmxhdGUgY2FsbCwgYnV0IHRoZSBlbmQgb2YgdGhlIGRlZmxhdGUgc3RyZWFtIGhhcyBub3QgYmVlbiByZWFjaGVkIHlldC4KIEl0IGlzIGFsc28gY2FsbGVkIHRvIGNyZWF0ZSBhIHdpbmRvdyBmb3IgZGljdGlvbmFyeSBkYXRhIHdoZW4gYSBkaWN0aW9uYXJ5CiBpcyBsb2FkZWQuCgogUHJvdmlkaW5nIG91dHB1dCBidWZmZXJzIGxhcmdlciB0aGFuIDMySyB0byBpbmZsYXRlKCkgc2hvdWxkIHByb3ZpZGUgYSBzcGVlZAogYWR2YW50YWdlLCBzaW5jZSBvbmx5IHRoZSBsYXN0IDMySyBvZiBvdXRwdXQgaXMgY29waWVkIHRvIHRoZSBzbGlkaW5nIHdpbmRvdwogdXBvbiByZXR1cm4gZnJvbSBpbmZsYXRlKCksIGFuZCBzaW5jZSBhbGwgZGlzdGFuY2VzIGFmdGVyIHRoZSBmaXJzdCAzMksgb2YKIG91dHB1dCB3aWxsIGZhbGwgaW4gdGhlIG91dHB1dCBkYXRhLCBtYWtpbmcgbWF0Y2ggY29waWVzIHNpbXBsZXIgYW5kIGZhc3Rlci4KIFRoZSBhZHZhbnRhZ2UgbWF5IGJlIGRlcGVuZGVudCBvbiB0aGUgc2l6ZSBvZiB0aGUgcHJvY2Vzc29yJ3MgZGF0YSBjYWNoZXMuCiAqLwpmdW5jdGlvbiB1cGRhdGV3aW5kb3coc3RybSwgc3JjLCBlbmQsIGNvcHkpIHsKICB2YXIgZGlzdDsKICB2YXIgc3RhdGUgPSBzdHJtLnN0YXRlOwoKICAvKiBpZiBpdCBoYXNuJ3QgYmVlbiBkb25lIGFscmVhZHksIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgd2luZG93ICovCiAgaWYgKHN0YXRlLndpbmRvdyA9PT0gbnVsbCkgewogICAgc3RhdGUud3NpemUgPSAxIDw8IHN0YXRlLndiaXRzOwogICAgc3RhdGUud25leHQgPSAwOwogICAgc3RhdGUud2hhdmUgPSAwOwoKICAgIHN0YXRlLndpbmRvdyA9IG5ldyB1dGlscy5CdWY4KHN0YXRlLndzaXplKTsKICB9CgogIC8qIGNvcHkgc3RhdGUtPndzaXplIG9yIGxlc3Mgb3V0cHV0IGJ5dGVzIGludG8gdGhlIGNpcmN1bGFyIHdpbmRvdyAqLwogIGlmIChjb3B5ID49IHN0YXRlLndzaXplKSB7CiAgICB1dGlscy5hcnJheVNldChzdGF0ZS53aW5kb3csIHNyYywgZW5kIC0gc3RhdGUud3NpemUsIHN0YXRlLndzaXplLCAwKTsKICAgIHN0YXRlLnduZXh0ID0gMDsKICAgIHN0YXRlLndoYXZlID0gc3RhdGUud3NpemU7CiAgfQogIGVsc2UgewogICAgZGlzdCA9IHN0YXRlLndzaXplIC0gc3RhdGUud25leHQ7CiAgICBpZiAoZGlzdCA+IGNvcHkpIHsKICAgICAgZGlzdCA9IGNvcHk7CiAgICB9CiAgICAvL3ptZW1jcHkoc3RhdGUtPndpbmRvdyArIHN0YXRlLT53bmV4dCwgZW5kIC0gY29weSwgZGlzdCk7CiAgICB1dGlscy5hcnJheVNldChzdGF0ZS53aW5kb3csIHNyYywgZW5kIC0gY29weSwgZGlzdCwgc3RhdGUud25leHQpOwogICAgY29weSAtPSBkaXN0OwogICAgaWYgKGNvcHkpIHsKICAgICAgLy96bWVtY3B5KHN0YXRlLT53aW5kb3csIGVuZCAtIGNvcHksIGNvcHkpOwogICAgICB1dGlscy5hcnJheVNldChzdGF0ZS53aW5kb3csIHNyYywgZW5kIC0gY29weSwgY29weSwgMCk7CiAgICAgIHN0YXRlLnduZXh0ID0gY29weTsKICAgICAgc3RhdGUud2hhdmUgPSBzdGF0ZS53c2l6ZTsKICAgIH0KICAgIGVsc2UgewogICAgICBzdGF0ZS53bmV4dCArPSBkaXN0OwogICAgICBpZiAoc3RhdGUud25leHQgPT09IHN0YXRlLndzaXplKSB7IHN0YXRlLnduZXh0ID0gMDsgfQogICAgICBpZiAoc3RhdGUud2hhdmUgPCBzdGF0ZS53c2l6ZSkgeyBzdGF0ZS53aGF2ZSArPSBkaXN0OyB9CiAgICB9CiAgfQogIHJldHVybiAwOwp9CgpmdW5jdGlvbiBpbmZsYXRlKHN0cm0sIGZsdXNoKSB7CiAgdmFyIHN0YXRlOwogIHZhciBpbnB1dCwgb3V0cHV0OyAgICAgICAgICAvLyBpbnB1dC9vdXRwdXQgYnVmZmVycwogIHZhciBuZXh0OyAgICAgICAgICAgICAgICAgICAvKiBuZXh0IGlucHV0IElOREVYICovCiAgdmFyIHB1dDsgICAgICAgICAgICAgICAgICAgIC8qIG5leHQgb3V0cHV0IElOREVYICovCiAgdmFyIGhhdmUsIGxlZnQ7ICAgICAgICAgICAgIC8qIGF2YWlsYWJsZSBpbnB1dCBhbmQgb3V0cHV0ICovCiAgdmFyIGhvbGQ7ICAgICAgICAgICAgICAgICAgIC8qIGJpdCBidWZmZXIgKi8KICB2YXIgYml0czsgICAgICAgICAgICAgICAgICAgLyogYml0cyBpbiBiaXQgYnVmZmVyICovCiAgdmFyIF9pbiwgX291dDsgICAgICAgICAgICAgIC8qIHNhdmUgc3RhcnRpbmcgYXZhaWxhYmxlIGlucHV0IGFuZCBvdXRwdXQgKi8KICB2YXIgY29weTsgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIHN0b3JlZCBvciBtYXRjaCBieXRlcyB0byBjb3B5ICovCiAgdmFyIGZyb207ICAgICAgICAgICAgICAgICAgIC8qIHdoZXJlIHRvIGNvcHkgbWF0Y2ggYnl0ZXMgZnJvbSAqLwogIHZhciBmcm9tX3NvdXJjZTsKICB2YXIgaGVyZSA9IDA7ICAgICAgICAgICAgICAgLyogY3VycmVudCBkZWNvZGluZyB0YWJsZSBlbnRyeSAqLwogIHZhciBoZXJlX2JpdHMsIGhlcmVfb3AsIGhlcmVfdmFsOyAvLyBwYWtlZCAiaGVyZSIgZGVub3JtYWxpemVkIChKUyBzcGVjaWZpYykKICAvL3ZhciBsYXN0OyAgICAgICAgICAgICAgICAgICAvKiBwYXJlbnQgdGFibGUgZW50cnkgKi8KICB2YXIgbGFzdF9iaXRzLCBsYXN0X29wLCBsYXN0X3ZhbDsgLy8gcGFrZWQgImxhc3QiIGRlbm9ybWFsaXplZCAoSlMgc3BlY2lmaWMpCiAgdmFyIGxlbjsgICAgICAgICAgICAgICAgICAgIC8qIGxlbmd0aCB0byBjb3B5IGZvciByZXBlYXRzLCBiaXRzIHRvIGRyb3AgKi8KICB2YXIgcmV0OyAgICAgICAgICAgICAgICAgICAgLyogcmV0dXJuIGNvZGUgKi8KICB2YXIgaGJ1ZiA9IG5ldyB1dGlscy5CdWY4KDQpOyAgICAvKiBidWZmZXIgZm9yIGd6aXAgaGVhZGVyIGNyYyBjYWxjdWxhdGlvbiAqLwogIHZhciBvcHRzOwoKICB2YXIgbjsgLy8gdGVtcG9yYXJ5IHZhciBmb3IgTkVFRF9CSVRTCgogIHZhciBvcmRlciA9IC8qIHBlcm11dGF0aW9uIG9mIGNvZGUgbGVuZ3RocyAqLwogICAgWyAxNiwgMTcsIDE4LCAwLCA4LCA3LCA5LCA2LCAxMCwgNSwgMTEsIDQsIDEyLCAzLCAxMywgMiwgMTQsIDEsIDE1IF07CgoKICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUgfHwgIXN0cm0ub3V0cHV0IHx8CiAgICAgICghc3RybS5pbnB1dCAmJiBzdHJtLmF2YWlsX2luICE9PSAwKSkgewogICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOwogIH0KCiAgc3RhdGUgPSBzdHJtLnN0YXRlOwogIGlmIChzdGF0ZS5tb2RlID09PSBUWVBFKSB7IHN0YXRlLm1vZGUgPSBUWVBFRE87IH0gICAgLyogc2tpcCBjaGVjayAqLwoKCiAgLy8tLS0gTE9BRCgpIC0tLQogIHB1dCA9IHN0cm0ubmV4dF9vdXQ7CiAgb3V0cHV0ID0gc3RybS5vdXRwdXQ7CiAgbGVmdCA9IHN0cm0uYXZhaWxfb3V0OwogIG5leHQgPSBzdHJtLm5leHRfaW47CiAgaW5wdXQgPSBzdHJtLmlucHV0OwogIGhhdmUgPSBzdHJtLmF2YWlsX2luOwogIGhvbGQgPSBzdGF0ZS5ob2xkOwogIGJpdHMgPSBzdGF0ZS5iaXRzOwogIC8vLS0tCgogIF9pbiA9IGhhdmU7CiAgX291dCA9IGxlZnQ7CiAgcmV0ID0gWl9PSzsKCiAgaW5mX2xlYXZlOiAvLyBnb3RvIGVtdWxhdGlvbgogIGZvciAoOzspIHsKICAgIHN3aXRjaCAoc3RhdGUubW9kZSkgewogICAgICBjYXNlIEhFQUQ6CiAgICAgICAgaWYgKHN0YXRlLndyYXAgPT09IDApIHsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFRE87CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy89PT0gTkVFREJJVFMoMTYpOwogICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgfQogICAgICAgIC8vPT09Ly8KICAgICAgICBpZiAoKHN0YXRlLndyYXAgJiAyKSAmJiBob2xkID09PSAweDhiMWYpIHsgIC8qIGd6aXAgaGVhZGVyICovCiAgICAgICAgICBzdGF0ZS5jaGVjayA9IDAvKmNyYzMyKDBMLCBaX05VTEwsIDApKi87CiAgICAgICAgICAvLz09PSBDUkMyKHN0YXRlLmNoZWNrLCBob2xkKTsKICAgICAgICAgIGhidWZbMF0gPSBob2xkICYgMHhmZjsKICAgICAgICAgIGhidWZbMV0gPSAoaG9sZCA+Pj4gOCkgJiAweGZmOwogICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMihzdGF0ZS5jaGVjaywgaGJ1ZiwgMiwgMCk7CiAgICAgICAgICAvLz09PS8vCgogICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5tb2RlID0gRkxBR1M7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgc3RhdGUuZmxhZ3MgPSAwOyAgICAgICAgICAgLyogZXhwZWN0IHpsaWIgaGVhZGVyICovCiAgICAgICAgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgIHN0YXRlLmhlYWQuZG9uZSA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoIShzdGF0ZS53cmFwICYgMSkgfHwgICAvKiBjaGVjayBpZiB6bGliIGhlYWRlciBhbGxvd2VkICovCiAgICAgICAgICAoKChob2xkICYgMHhmZikvKkJJVFMoOCkqLyA8PCA4KSArIChob2xkID4+IDgpKSAlIDMxKSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICdpbmNvcnJlY3QgaGVhZGVyIGNoZWNrJzsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKChob2xkICYgMHgwZikvKkJJVFMoNCkqLyAhPT0gWl9ERUZMQVRFRCkgewogICAgICAgICAgc3RybS5tc2cgPSAndW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAvLy0tLSBEUk9QQklUUyg0KSAtLS0vLwogICAgICAgIGhvbGQgPj4+PSA0OwogICAgICAgIGJpdHMgLT0gNDsKICAgICAgICAvLy0tLS8vCiAgICAgICAgbGVuID0gKGhvbGQgJiAweDBmKS8qQklUUyg0KSovICsgODsKICAgICAgICBpZiAoc3RhdGUud2JpdHMgPT09IDApIHsKICAgICAgICAgIHN0YXRlLndiaXRzID0gbGVuOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChsZW4gPiBzdGF0ZS53Yml0cykgewogICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCB3aW5kb3cgc2l6ZSc7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHN0YXRlLmRtYXggPSAxIDw8IGxlbjsKICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICB6bGliIGhlYWRlciBva1xuIikpOwogICAgICAgIHN0cm0uYWRsZXIgPSBzdGF0ZS5jaGVjayA9IDEvKmFkbGVyMzIoMEwsIFpfTlVMTCwgMCkqLzsKICAgICAgICBzdGF0ZS5tb2RlID0gaG9sZCAmIDB4MjAwID8gRElDVElEIDogVFlQRTsKICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgIGhvbGQgPSAwOwogICAgICAgIGJpdHMgPSAwOwogICAgICAgIC8vPT09Ly8KICAgICAgICBicmVhazsKICAgICAgY2FzZSBGTEFHUzoKICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgd2hpbGUgKGJpdHMgPCAxNikgewogICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICBoYXZlLS07CiAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICB9CiAgICAgICAgLy89PT0vLwogICAgICAgIHN0YXRlLmZsYWdzID0gaG9sZDsKICAgICAgICBpZiAoKHN0YXRlLmZsYWdzICYgMHhmZikgIT09IFpfREVGTEFURUQpIHsKICAgICAgICAgIHN0cm0ubXNnID0gJ3Vua25vd24gY29tcHJlc3Npb24gbWV0aG9kJzsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHhlMDAwKSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICd1bmtub3duIGhlYWRlciBmbGFncyBzZXQnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgc3RhdGUuaGVhZC50ZXh0ID0gKChob2xkID4+IDgpICYgMSk7CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgLy89PT0gQ1JDMihzdGF0ZS5jaGVjaywgaG9sZCk7CiAgICAgICAgICBoYnVmWzBdID0gaG9sZCAmIDB4ZmY7CiAgICAgICAgICBoYnVmWzFdID0gKGhvbGQgPj4+IDgpICYgMHhmZjsKICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzIoc3RhdGUuY2hlY2ssIGhidWYsIDIsIDApOwogICAgICAgICAgLy89PT0vLwogICAgICAgIH0KICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgIGhvbGQgPSAwOwogICAgICAgIGJpdHMgPSAwOwogICAgICAgIC8vPT09Ly8KICAgICAgICBzdGF0ZS5tb2RlID0gVElNRTsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgVElNRToKICAgICAgICAvLz09PSBORUVEQklUUygzMik7ICovCiAgICAgICAgd2hpbGUgKGJpdHMgPCAzMikgewogICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICBoYXZlLS07CiAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICB9CiAgICAgICAgLy89PT0vLwogICAgICAgIGlmIChzdGF0ZS5oZWFkKSB7CiAgICAgICAgICBzdGF0ZS5oZWFkLnRpbWUgPSBob2xkOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDAyMDApIHsKICAgICAgICAgIC8vPT09IENSQzQoc3RhdGUuY2hlY2ssIGhvbGQpCiAgICAgICAgICBoYnVmWzBdID0gaG9sZCAmIDB4ZmY7CiAgICAgICAgICBoYnVmWzFdID0gKGhvbGQgPj4+IDgpICYgMHhmZjsKICAgICAgICAgIGhidWZbMl0gPSAoaG9sZCA+Pj4gMTYpICYgMHhmZjsKICAgICAgICAgIGhidWZbM10gPSAoaG9sZCA+Pj4gMjQpICYgMHhmZjsKICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzIoc3RhdGUuY2hlY2ssIGhidWYsIDQsIDApOwogICAgICAgICAgLy89PT0KICAgICAgICB9CiAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICBob2xkID0gMDsKICAgICAgICBiaXRzID0gMDsKICAgICAgICAvLz09PS8vCiAgICAgICAgc3RhdGUubW9kZSA9IE9TOwogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBPUzoKICAgICAgICAvLz09PSBORUVEQklUUygxNik7ICovCiAgICAgICAgd2hpbGUgKGJpdHMgPCAxNikgewogICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICBoYXZlLS07CiAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICB9CiAgICAgICAgLy89PT0vLwogICAgICAgIGlmIChzdGF0ZS5oZWFkKSB7CiAgICAgICAgICBzdGF0ZS5oZWFkLnhmbGFncyA9IChob2xkICYgMHhmZik7CiAgICAgICAgICBzdGF0ZS5oZWFkLm9zID0gKGhvbGQgPj4gOCk7CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgLy89PT0gQ1JDMihzdGF0ZS5jaGVjaywgaG9sZCk7CiAgICAgICAgICBoYnVmWzBdID0gaG9sZCAmIDB4ZmY7CiAgICAgICAgICBoYnVmWzFdID0gKGhvbGQgPj4+IDgpICYgMHhmZjsKICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzIoc3RhdGUuY2hlY2ssIGhidWYsIDIsIDApOwogICAgICAgICAgLy89PT0vLwogICAgICAgIH0KICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgIGhvbGQgPSAwOwogICAgICAgIGJpdHMgPSAwOwogICAgICAgIC8vPT09Ly8KICAgICAgICBzdGF0ZS5tb2RlID0gRVhMRU47CiAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICBjYXNlIEVYTEVOOgogICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDQwMCkgewogICAgICAgICAgLy89PT0gTkVFREJJVFMoMTYpOyAqLwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAxNikgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubGVuZ3RoID0gaG9sZDsKICAgICAgICAgIGlmIChzdGF0ZS5oZWFkKSB7CiAgICAgICAgICAgIHN0YXRlLmhlYWQuZXh0cmFfbGVuID0gaG9sZDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICAvLz09PSBDUkMyKHN0YXRlLmNoZWNrLCBob2xkKTsKICAgICAgICAgICAgaGJ1ZlswXSA9IGhvbGQgJiAweGZmOwogICAgICAgICAgICBoYnVmWzFdID0gKGhvbGQgPj4+IDgpICYgMHhmZjsKICAgICAgICAgICAgc3RhdGUuY2hlY2sgPSBjcmMzMihzdGF0ZS5jaGVjaywgaGJ1ZiwgMiwgMCk7CiAgICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChzdGF0ZS5oZWFkKSB7CiAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhID0gbnVsbC8qWl9OVUxMKi87CiAgICAgICAgfQogICAgICAgIHN0YXRlLm1vZGUgPSBFWFRSQTsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgRVhUUkE6CiAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgwNDAwKSB7CiAgICAgICAgICBjb3B5ID0gc3RhdGUubGVuZ3RoOwogICAgICAgICAgaWYgKGNvcHkgPiBoYXZlKSB7IGNvcHkgPSBoYXZlOyB9CiAgICAgICAgICBpZiAoY29weSkgewogICAgICAgICAgICBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgICAgIGxlbiA9IHN0YXRlLmhlYWQuZXh0cmFfbGVuIC0gc3RhdGUubGVuZ3RoOwogICAgICAgICAgICAgIGlmICghc3RhdGUuaGVhZC5leHRyYSkgewogICAgICAgICAgICAgICAgLy8gVXNlIHVudHlwZWQgYXJyYXkgZm9yIG1vcmUgY29udmVuaWVudCBwcm9jZXNzaW5nIGxhdGVyCiAgICAgICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhID0gbmV3IEFycmF5KHN0YXRlLmhlYWQuZXh0cmFfbGVuKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdXRpbHMuYXJyYXlTZXQoCiAgICAgICAgICAgICAgICBzdGF0ZS5oZWFkLmV4dHJhLAogICAgICAgICAgICAgICAgaW5wdXQsCiAgICAgICAgICAgICAgICBuZXh0LAogICAgICAgICAgICAgICAgLy8gZXh0cmEgZmllbGQgaXMgbGltaXRlZCB0byA2NTUzNiBieXRlcwogICAgICAgICAgICAgICAgLy8gLSBubyBuZWVkIGZvciBhZGRpdGlvbmFsIHNpemUgY2hlY2sKICAgICAgICAgICAgICAgIGNvcHksCiAgICAgICAgICAgICAgICAvKmxlbiArIGNvcHkgPiBzdGF0ZS5oZWFkLmV4dHJhX21heCAtIGxlbiA/IHN0YXRlLmhlYWQuZXh0cmFfbWF4IDogY29weSwqLwogICAgICAgICAgICAgICAgbGVuCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAvL3ptZW1jcHkoc3RhdGUuaGVhZC5leHRyYSArIGxlbiwgbmV4dCwKICAgICAgICAgICAgICAvLyAgICAgICAgbGVuICsgY29weSA+IHN0YXRlLmhlYWQuZXh0cmFfbWF4ID8KICAgICAgICAgICAgICAvLyAgICAgICAgc3RhdGUuaGVhZC5leHRyYV9tYXggLSBsZW4gOiBjb3B5KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDAyMDApIHsKICAgICAgICAgICAgICBzdGF0ZS5jaGVjayA9IGNyYzMyKHN0YXRlLmNoZWNrLCBpbnB1dCwgY29weSwgbmV4dCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGF2ZSAtPSBjb3B5OwogICAgICAgICAgICBuZXh0ICs9IGNvcHk7CiAgICAgICAgICAgIHN0YXRlLmxlbmd0aCAtPSBjb3B5OwogICAgICAgICAgfQogICAgICAgICAgaWYgKHN0YXRlLmxlbmd0aCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICB9CiAgICAgICAgc3RhdGUubGVuZ3RoID0gMDsKICAgICAgICBzdGF0ZS5tb2RlID0gTkFNRTsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgTkFNRToKICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDA4MDApIHsKICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgY29weSA9IDA7CiAgICAgICAgICBkbyB7CiAgICAgICAgICAgIC8vIFRPRE86IDIgb3IgMSBieXRlcz8KICAgICAgICAgICAgbGVuID0gaW5wdXRbbmV4dCArIGNvcHkrK107CiAgICAgICAgICAgIC8qIHVzZSBjb25zdGFudCBsaW1pdCBiZWNhdXNlIGluIGpzIHdlIHNob3VsZCBub3QgcHJlYWxsb2NhdGUgbWVtb3J5ICovCiAgICAgICAgICAgIGlmIChzdGF0ZS5oZWFkICYmIGxlbiAmJgogICAgICAgICAgICAgICAgKHN0YXRlLmxlbmd0aCA8IDY1NTM2IC8qc3RhdGUuaGVhZC5uYW1lX21heCovKSkgewogICAgICAgICAgICAgIHN0YXRlLmhlYWQubmFtZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGxlbik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gd2hpbGUgKGxlbiAmJiBjb3B5IDwgaGF2ZSk7CgogICAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgwMjAwKSB7CiAgICAgICAgICAgIHN0YXRlLmNoZWNrID0gY3JjMzIoc3RhdGUuY2hlY2ssIGlucHV0LCBjb3B5LCBuZXh0KTsKICAgICAgICAgIH0KICAgICAgICAgIGhhdmUgLT0gY29weTsKICAgICAgICAgIG5leHQgKz0gY29weTsKICAgICAgICAgIGlmIChsZW4pIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHN0YXRlLmhlYWQpIHsKICAgICAgICAgIHN0YXRlLmhlYWQubmFtZSA9IG51bGw7CiAgICAgICAgfQogICAgICAgIHN0YXRlLmxlbmd0aCA9IDA7CiAgICAgICAgc3RhdGUubW9kZSA9IENPTU1FTlQ7CiAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICBjYXNlIENPTU1FTlQ6CiAgICAgICAgaWYgKHN0YXRlLmZsYWdzICYgMHgxMDAwKSB7CiAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIGNvcHkgPSAwOwogICAgICAgICAgZG8gewogICAgICAgICAgICBsZW4gPSBpbnB1dFtuZXh0ICsgY29weSsrXTsKICAgICAgICAgICAgLyogdXNlIGNvbnN0YW50IGxpbWl0IGJlY2F1c2UgaW4ganMgd2Ugc2hvdWxkIG5vdCBwcmVhbGxvY2F0ZSBtZW1vcnkgKi8KICAgICAgICAgICAgaWYgKHN0YXRlLmhlYWQgJiYgbGVuICYmCiAgICAgICAgICAgICAgICAoc3RhdGUubGVuZ3RoIDwgNjU1MzYgLypzdGF0ZS5oZWFkLmNvbW1fbWF4Ki8pKSB7CiAgICAgICAgICAgICAgc3RhdGUuaGVhZC5jb21tZW50ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUobGVuKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSB3aGlsZSAobGVuICYmIGNvcHkgPCBoYXZlKTsKICAgICAgICAgIGlmIChzdGF0ZS5mbGFncyAmIDB4MDIwMCkgewogICAgICAgICAgICBzdGF0ZS5jaGVjayA9IGNyYzMyKHN0YXRlLmNoZWNrLCBpbnB1dCwgY29weSwgbmV4dCk7CiAgICAgICAgICB9CiAgICAgICAgICBoYXZlIC09IGNvcHk7CiAgICAgICAgICBuZXh0ICs9IGNvcHk7CiAgICAgICAgICBpZiAobGVuKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChzdGF0ZS5oZWFkKSB7CiAgICAgICAgICBzdGF0ZS5oZWFkLmNvbW1lbnQgPSBudWxsOwogICAgICAgIH0KICAgICAgICBzdGF0ZS5tb2RlID0gSENSQzsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgSENSQzoKICAgICAgICBpZiAoc3RhdGUuZmxhZ3MgJiAweDAyMDApIHsKICAgICAgICAgIC8vPT09IE5FRURCSVRTKDE2KTsgKi8KICAgICAgICAgIHdoaWxlIChiaXRzIDwgMTYpIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIGlmIChob2xkICE9PSAoc3RhdGUuY2hlY2sgJiAweGZmZmYpKSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2hlYWRlciBjcmMgbWlzbWF0Y2gnOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgICBob2xkID0gMDsKICAgICAgICAgIGJpdHMgPSAwOwogICAgICAgICAgLy89PT0vLwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuaGVhZCkgewogICAgICAgICAgc3RhdGUuaGVhZC5oY3JjID0gKChzdGF0ZS5mbGFncyA+PiA5KSAmIDEpOwogICAgICAgICAgc3RhdGUuaGVhZC5kb25lID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0gMDsKICAgICAgICBzdGF0ZS5tb2RlID0gVFlQRTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSBESUNUSUQ6CiAgICAgICAgLy89PT0gTkVFREJJVFMoMzIpOyAqLwogICAgICAgIHdoaWxlIChiaXRzIDwgMzIpIHsKICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgfQogICAgICAgIC8vPT09Ly8KICAgICAgICBzdHJtLmFkbGVyID0gc3RhdGUuY2hlY2sgPSB6c3dhcDMyKGhvbGQpOwogICAgICAgIC8vPT09IElOSVRCSVRTKCk7CiAgICAgICAgaG9sZCA9IDA7CiAgICAgICAgYml0cyA9IDA7CiAgICAgICAgLy89PT0vLwogICAgICAgIHN0YXRlLm1vZGUgPSBESUNUOwogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBESUNUOgogICAgICAgIGlmIChzdGF0ZS5oYXZlZGljdCA9PT0gMCkgewogICAgICAgICAgLy8tLS0gUkVTVE9SRSgpIC0tLQogICAgICAgICAgc3RybS5uZXh0X291dCA9IHB1dDsKICAgICAgICAgIHN0cm0uYXZhaWxfb3V0ID0gbGVmdDsKICAgICAgICAgIHN0cm0ubmV4dF9pbiA9IG5leHQ7CiAgICAgICAgICBzdHJtLmF2YWlsX2luID0gaGF2ZTsKICAgICAgICAgIHN0YXRlLmhvbGQgPSBob2xkOwogICAgICAgICAgc3RhdGUuYml0cyA9IGJpdHM7CiAgICAgICAgICAvLy0tLQogICAgICAgICAgcmV0dXJuIFpfTkVFRF9ESUNUOwogICAgICAgIH0KICAgICAgICBzdHJtLmFkbGVyID0gc3RhdGUuY2hlY2sgPSAxLyphZGxlcjMyKDBMLCBaX05VTEwsIDApKi87CiAgICAgICAgc3RhdGUubW9kZSA9IFRZUEU7CiAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICBjYXNlIFRZUEU6CiAgICAgICAgaWYgKGZsdXNoID09PSBaX0JMT0NLIHx8IGZsdXNoID09PSBaX1RSRUVTKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBUWVBFRE86CiAgICAgICAgaWYgKHN0YXRlLmxhc3QpIHsKICAgICAgICAgIC8vLS0tIEJZVEVCSVRTKCkgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSBiaXRzICYgNzsKICAgICAgICAgIGJpdHMgLT0gYml0cyAmIDc7CiAgICAgICAgICAvLy0tLS8vCiAgICAgICAgICBzdGF0ZS5tb2RlID0gQ0hFQ0s7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy89PT0gTkVFREJJVFMoMyk7ICovCiAgICAgICAgd2hpbGUgKGJpdHMgPCAzKSB7CiAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgYml0cyArPSA4OwogICAgICAgIH0KICAgICAgICAvLz09PS8vCiAgICAgICAgc3RhdGUubGFzdCA9IChob2xkICYgMHgwMSkvKkJJVFMoMSkqLzsKICAgICAgICAvLy0tLSBEUk9QQklUUygxKSAtLS0vLwogICAgICAgIGhvbGQgPj4+PSAxOwogICAgICAgIGJpdHMgLT0gMTsKICAgICAgICAvLy0tLS8vCgogICAgICAgIHN3aXRjaCAoKGhvbGQgJiAweDAzKS8qQklUUygyKSovKSB7CiAgICAgICAgICBjYXNlIDA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzdG9yZWQgYmxvY2sgKi8KICAgICAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICBzdG9yZWQgYmxvY2slc1xuIiwKICAgICAgICAgICAgLy8gICAgICAgIHN0YXRlLmxhc3QgPyAiIChsYXN0KSIgOiAiIikpOwogICAgICAgICAgICBzdGF0ZS5tb2RlID0gU1RPUkVEOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMTogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpeGVkIGJsb2NrICovCiAgICAgICAgICAgIGZpeGVkdGFibGVzKHN0YXRlKTsKICAgICAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICBmaXhlZCBjb2RlcyBibG9jayVzXG4iLAogICAgICAgICAgICAvLyAgICAgICAgc3RhdGUubGFzdCA/ICIgKGxhc3QpIiA6ICIiKSk7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBMRU5fOyAgICAgICAgICAgICAvKiBkZWNvZGUgY29kZXMgKi8KICAgICAgICAgICAgaWYgKGZsdXNoID09PSBaX1RSRUVTKSB7CiAgICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMikgLS0tLy8KICAgICAgICAgICAgICBob2xkID4+Pj0gMjsKICAgICAgICAgICAgICBiaXRzIC09IDI7CiAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICAgIGJyZWFrIGluZl9sZWF2ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMjogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGR5bmFtaWMgYmxvY2sgKi8KICAgICAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICBkeW5hbWljIGNvZGVzIGJsb2NrJXNcbiIsCiAgICAgICAgICAgIC8vICAgICAgICBzdGF0ZS5sYXN0ID8gIiAobGFzdCkiIDogIiIpKTsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IFRBQkxFOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBibG9jayB0eXBlJzsKICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICB9CiAgICAgICAgLy8tLS0gRFJPUEJJVFMoMikgLS0tLy8KICAgICAgICBob2xkID4+Pj0gMjsKICAgICAgICBiaXRzIC09IDI7CiAgICAgICAgLy8tLS0vLwogICAgICAgIGJyZWFrOwogICAgICBjYXNlIFNUT1JFRDoKICAgICAgICAvLy0tLSBCWVRFQklUUygpIC0tLS8vIC8qIGdvIHRvIGJ5dGUgYm91bmRhcnkgKi8KICAgICAgICBob2xkID4+Pj0gYml0cyAmIDc7CiAgICAgICAgYml0cyAtPSBiaXRzICYgNzsKICAgICAgICAvLy0tLS8vCiAgICAgICAgLy89PT0gTkVFREJJVFMoMzIpOyAqLwogICAgICAgIHdoaWxlIChiaXRzIDwgMzIpIHsKICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgfQogICAgICAgIC8vPT09Ly8KICAgICAgICBpZiAoKGhvbGQgJiAweGZmZmYpICE9PSAoKGhvbGQgPj4+IDE2KSBeIDB4ZmZmZikpIHsKICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgc3RvcmVkIGJsb2NrIGxlbmd0aHMnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBzdGF0ZS5sZW5ndGggPSBob2xkICYgMHhmZmZmOwogICAgICAgIC8vVHJhY2V2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICBzdG9yZWQgbGVuZ3RoICV1XG4iLAogICAgICAgIC8vICAgICAgICBzdGF0ZS5sZW5ndGgpKTsKICAgICAgICAvLz09PSBJTklUQklUUygpOwogICAgICAgIGhvbGQgPSAwOwogICAgICAgIGJpdHMgPSAwOwogICAgICAgIC8vPT09Ly8KICAgICAgICBzdGF0ZS5tb2RlID0gQ09QWV87CiAgICAgICAgaWYgKGZsdXNoID09PSBaX1RSRUVTKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBDT1BZXzoKICAgICAgICBzdGF0ZS5tb2RlID0gQ09QWTsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgQ09QWToKICAgICAgICBjb3B5ID0gc3RhdGUubGVuZ3RoOwogICAgICAgIGlmIChjb3B5KSB7CiAgICAgICAgICBpZiAoY29weSA+IGhhdmUpIHsgY29weSA9IGhhdmU7IH0KICAgICAgICAgIGlmIChjb3B5ID4gbGVmdCkgeyBjb3B5ID0gbGVmdDsgfQogICAgICAgICAgaWYgKGNvcHkgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAvLy0tLSB6bWVtY3B5KHB1dCwgbmV4dCwgY29weSk7IC0tLQogICAgICAgICAgdXRpbHMuYXJyYXlTZXQob3V0cHV0LCBpbnB1dCwgbmV4dCwgY29weSwgcHV0KTsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIGhhdmUgLT0gY29weTsKICAgICAgICAgIG5leHQgKz0gY29weTsKICAgICAgICAgIGxlZnQgLT0gY29weTsKICAgICAgICAgIHB1dCArPSBjb3B5OwogICAgICAgICAgc3RhdGUubGVuZ3RoIC09IGNvcHk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgIHN0b3JlZCBlbmRcbiIpKTsKICAgICAgICBzdGF0ZS5tb2RlID0gVFlQRTsKICAgICAgICBicmVhazsKICAgICAgY2FzZSBUQUJMRToKICAgICAgICAvLz09PSBORUVEQklUUygxNCk7ICovCiAgICAgICAgd2hpbGUgKGJpdHMgPCAxNCkgewogICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICBoYXZlLS07CiAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICB9CiAgICAgICAgLy89PT0vLwogICAgICAgIHN0YXRlLm5sZW4gPSAoaG9sZCAmIDB4MWYpLypCSVRTKDUpKi8gKyAyNTc7CiAgICAgICAgLy8tLS0gRFJPUEJJVFMoNSkgLS0tLy8KICAgICAgICBob2xkID4+Pj0gNTsKICAgICAgICBiaXRzIC09IDU7CiAgICAgICAgLy8tLS0vLwogICAgICAgIHN0YXRlLm5kaXN0ID0gKGhvbGQgJiAweDFmKS8qQklUUyg1KSovICsgMTsKICAgICAgICAvLy0tLSBEUk9QQklUUyg1KSAtLS0vLwogICAgICAgIGhvbGQgPj4+PSA1OwogICAgICAgIGJpdHMgLT0gNTsKICAgICAgICAvLy0tLS8vCiAgICAgICAgc3RhdGUubmNvZGUgPSAoaG9sZCAmIDB4MGYpLypCSVRTKDQpKi8gKyA0OwogICAgICAgIC8vLS0tIERST1BCSVRTKDQpIC0tLS8vCiAgICAgICAgaG9sZCA+Pj49IDQ7CiAgICAgICAgYml0cyAtPSA0OwogICAgICAgIC8vLS0tLy8KLy8jaWZuZGVmIFBLWklQX0JVR19XT1JLQVJPVU5ECiAgICAgICAgaWYgKHN0YXRlLm5sZW4gPiAyODYgfHwgc3RhdGUubmRpc3QgPiAzMCkgewogICAgICAgICAgc3RybS5tc2cgPSAndG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KLy8jZW5kaWYKICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgdGFibGUgc2l6ZXMgb2tcbiIpKTsKICAgICAgICBzdGF0ZS5oYXZlID0gMDsKICAgICAgICBzdGF0ZS5tb2RlID0gTEVOTEVOUzsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgTEVOTEVOUzoKICAgICAgICB3aGlsZSAoc3RhdGUuaGF2ZSA8IHN0YXRlLm5jb2RlKSB7CiAgICAgICAgICAvLz09PSBORUVEQklUUygzKTsKICAgICAgICAgIHdoaWxlIChiaXRzIDwgMykgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgfQogICAgICAgICAgLy89PT0vLwogICAgICAgICAgc3RhdGUubGVuc1tvcmRlcltzdGF0ZS5oYXZlKytdXSA9IChob2xkICYgMHgwNyk7Ly9CSVRTKDMpOwogICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMykgLS0tLy8KICAgICAgICAgIGhvbGQgPj4+PSAzOwogICAgICAgICAgYml0cyAtPSAzOwogICAgICAgICAgLy8tLS0vLwogICAgICAgIH0KICAgICAgICB3aGlsZSAoc3RhdGUuaGF2ZSA8IDE5KSB7CiAgICAgICAgICBzdGF0ZS5sZW5zW29yZGVyW3N0YXRlLmhhdmUrK11dID0gMDsKICAgICAgICB9CiAgICAgICAgLy8gV2UgaGF2ZSBzZXBhcmF0ZSB0YWJsZXMgJiBubyBwb2ludGVycy4gMiBjb21tZW50ZWQgbGluZXMgYmVsb3cgbm90IG5lZWRlZC4KICAgICAgICAvL3N0YXRlLm5leHQgPSBzdGF0ZS5jb2RlczsKICAgICAgICAvL3N0YXRlLmxlbmNvZGUgPSBzdGF0ZS5uZXh0OwogICAgICAgIC8vIFN3aXRjaCB0byB1c2UgZHluYW1pYyB0YWJsZQogICAgICAgIHN0YXRlLmxlbmNvZGUgPSBzdGF0ZS5sZW5keW47CiAgICAgICAgc3RhdGUubGVuYml0cyA9IDc7CgogICAgICAgIG9wdHMgPSB7IGJpdHM6IHN0YXRlLmxlbmJpdHMgfTsKICAgICAgICByZXQgPSBpbmZsYXRlX3RhYmxlKENPREVTLCBzdGF0ZS5sZW5zLCAwLCAxOSwgc3RhdGUubGVuY29kZSwgMCwgc3RhdGUud29yaywgb3B0cyk7CiAgICAgICAgc3RhdGUubGVuYml0cyA9IG9wdHMuYml0czsKCiAgICAgICAgaWYgKHJldCkgewogICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBjb2RlIGxlbmd0aHMgc2V0JzsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgIGNvZGUgbGVuZ3RocyBva1xuIikpOwogICAgICAgIHN0YXRlLmhhdmUgPSAwOwogICAgICAgIHN0YXRlLm1vZGUgPSBDT0RFTEVOUzsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgQ09ERUxFTlM6CiAgICAgICAgd2hpbGUgKHN0YXRlLmhhdmUgPCBzdGF0ZS5ubGVuICsgc3RhdGUubmRpc3QpIHsKICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmxlbmNvZGVbaG9sZCAmICgoMSA8PCBzdGF0ZS5sZW5iaXRzKSAtIDEpXTsvKkJJVFMoc3RhdGUubGVuYml0cykqLwogICAgICAgICAgICBoZXJlX2JpdHMgPSBoZXJlID4+PiAyNDsKICAgICAgICAgICAgaGVyZV9vcCA9IChoZXJlID4+PiAxNikgJiAweGZmOwogICAgICAgICAgICBoZXJlX3ZhbCA9IGhlcmUgJiAweGZmZmY7CgogICAgICAgICAgICBpZiAoKGhlcmVfYml0cykgPD0gYml0cykgeyBicmVhazsgfQogICAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIH0KICAgICAgICAgIGlmIChoZXJlX3ZhbCA8IDE2KSB7CiAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgICAgaG9sZCA+Pj49IGhlcmVfYml0czsKICAgICAgICAgICAgYml0cyAtPSBoZXJlX2JpdHM7CiAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgc3RhdGUubGVuc1tzdGF0ZS5oYXZlKytdID0gaGVyZV92YWw7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgaWYgKGhlcmVfdmFsID09PSAxNikgewogICAgICAgICAgICAgIC8vPT09IE5FRURCSVRTKGhlcmUuYml0cyArIDIpOwogICAgICAgICAgICAgIG4gPSBoZXJlX2JpdHMgKyAyOwogICAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgbikgewogICAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgICAgICAgIGJpdHMgLT0gaGVyZV9iaXRzOwogICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICBpZiAoc3RhdGUuaGF2ZSA9PT0gMCkgewogICAgICAgICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCc7CiAgICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGxlbiA9IHN0YXRlLmxlbnNbc3RhdGUuaGF2ZSAtIDFdOwogICAgICAgICAgICAgIGNvcHkgPSAzICsgKGhvbGQgJiAweDAzKTsvL0JJVFMoMik7CiAgICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMikgLS0tLy8KICAgICAgICAgICAgICBob2xkID4+Pj0gMjsKICAgICAgICAgICAgICBiaXRzIC09IDI7CiAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGhlcmVfdmFsID09PSAxNykgewogICAgICAgICAgICAgIC8vPT09IE5FRURCSVRTKGhlcmUuYml0cyArIDMpOwogICAgICAgICAgICAgIG4gPSBoZXJlX2JpdHMgKyAzOwogICAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgbikgewogICAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgICAgICAgIGJpdHMgLT0gaGVyZV9iaXRzOwogICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICBsZW4gPSAwOwogICAgICAgICAgICAgIGNvcHkgPSAzICsgKGhvbGQgJiAweDA3KTsvL0JJVFMoMyk7CiAgICAgICAgICAgICAgLy8tLS0gRFJPUEJJVFMoMykgLS0tLy8KICAgICAgICAgICAgICBob2xkID4+Pj0gMzsKICAgICAgICAgICAgICBiaXRzIC09IDM7CiAgICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgIC8vPT09IE5FRURCSVRTKGhlcmUuYml0cyArIDcpOwogICAgICAgICAgICAgIG4gPSBoZXJlX2JpdHMgKyA3OwogICAgICAgICAgICAgIHdoaWxlIChiaXRzIDwgbikgewogICAgICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgICAgICBob2xkICs9IGlucHV0W25leHQrK10gPDwgYml0czsKICAgICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgLy89PT0vLwogICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgICAgICAgIGJpdHMgLT0gaGVyZV9iaXRzOwogICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgICBsZW4gPSAwOwogICAgICAgICAgICAgIGNvcHkgPSAxMSArIChob2xkICYgMHg3Zik7Ly9CSVRTKDcpOwogICAgICAgICAgICAgIC8vLS0tIERST1BCSVRTKDcpIC0tLS8vCiAgICAgICAgICAgICAgaG9sZCA+Pj49IDc7CiAgICAgICAgICAgICAgYml0cyAtPSA3OwogICAgICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3RhdGUuaGF2ZSArIGNvcHkgPiBzdGF0ZS5ubGVuICsgc3RhdGUubmRpc3QpIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0JzsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHdoaWxlIChjb3B5LS0pIHsKICAgICAgICAgICAgICBzdGF0ZS5sZW5zW3N0YXRlLmhhdmUrK10gPSBsZW47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8qIGhhbmRsZSBlcnJvciBicmVha3MgaW4gd2hpbGUgKi8KICAgICAgICBpZiAoc3RhdGUubW9kZSA9PT0gQkFEKSB7IGJyZWFrOyB9CgogICAgICAgIC8qIGNoZWNrIGZvciBlbmQtb2YtYmxvY2sgY29kZSAoYmV0dGVyIGhhdmUgb25lKSAqLwogICAgICAgIGlmIChzdGF0ZS5sZW5zWzI1Nl0gPT09IDApIHsKICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgY29kZSAtLSBtaXNzaW5nIGVuZC1vZi1ibG9jayc7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICAvKiBidWlsZCBjb2RlIHRhYmxlcyAtLSBub3RlOiBkbyBub3QgY2hhbmdlIHRoZSBsZW5iaXRzIG9yIGRpc3RiaXRzCiAgICAgICAgICAgdmFsdWVzIGhlcmUgKDkgYW5kIDYpIHdpdGhvdXQgcmVhZGluZyB0aGUgY29tbWVudHMgaW4gaW5mdHJlZXMuaAogICAgICAgICAgIGNvbmNlcm5pbmcgdGhlIEVOT1VHSCBjb25zdGFudHMsIHdoaWNoIGRlcGVuZCBvbiB0aG9zZSB2YWx1ZXMgKi8KICAgICAgICBzdGF0ZS5sZW5iaXRzID0gOTsKCiAgICAgICAgb3B0cyA9IHsgYml0czogc3RhdGUubGVuYml0cyB9OwogICAgICAgIHJldCA9IGluZmxhdGVfdGFibGUoTEVOUywgc3RhdGUubGVucywgMCwgc3RhdGUubmxlbiwgc3RhdGUubGVuY29kZSwgMCwgc3RhdGUud29yaywgb3B0cyk7CiAgICAgICAgLy8gV2UgaGF2ZSBzZXBhcmF0ZSB0YWJsZXMgJiBubyBwb2ludGVycy4gMiBjb21tZW50ZWQgbGluZXMgYmVsb3cgbm90IG5lZWRlZC4KICAgICAgICAvLyBzdGF0ZS5uZXh0X2luZGV4ID0gb3B0cy50YWJsZV9pbmRleDsKICAgICAgICBzdGF0ZS5sZW5iaXRzID0gb3B0cy5iaXRzOwogICAgICAgIC8vIHN0YXRlLmxlbmNvZGUgPSBzdGF0ZS5uZXh0OwoKICAgICAgICBpZiAocmV0KSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGxpdGVyYWwvbGVuZ3RocyBzZXQnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgc3RhdGUuZGlzdGJpdHMgPSA2OwogICAgICAgIC8vc3RhdGUuZGlzdGNvZGUuY29weShzdGF0ZS5jb2Rlcyk7CiAgICAgICAgLy8gU3dpdGNoIHRvIHVzZSBkeW5hbWljIHRhYmxlCiAgICAgICAgc3RhdGUuZGlzdGNvZGUgPSBzdGF0ZS5kaXN0ZHluOwogICAgICAgIG9wdHMgPSB7IGJpdHM6IHN0YXRlLmRpc3RiaXRzIH07CiAgICAgICAgcmV0ID0gaW5mbGF0ZV90YWJsZShESVNUUywgc3RhdGUubGVucywgc3RhdGUubmxlbiwgc3RhdGUubmRpc3QsIHN0YXRlLmRpc3Rjb2RlLCAwLCBzdGF0ZS53b3JrLCBvcHRzKTsKICAgICAgICAvLyBXZSBoYXZlIHNlcGFyYXRlIHRhYmxlcyAmIG5vIHBvaW50ZXJzLiAyIGNvbW1lbnRlZCBsaW5lcyBiZWxvdyBub3QgbmVlZGVkLgogICAgICAgIC8vIHN0YXRlLm5leHRfaW5kZXggPSBvcHRzLnRhYmxlX2luZGV4OwogICAgICAgIHN0YXRlLmRpc3RiaXRzID0gb3B0cy5iaXRzOwogICAgICAgIC8vIHN0YXRlLmRpc3Rjb2RlID0gc3RhdGUubmV4dDsKCiAgICAgICAgaWYgKHJldCkgewogICAgICAgICAgc3RybS5tc2cgPSAnaW52YWxpZCBkaXN0YW5jZXMgc2V0JzsKICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy9UcmFjZXYoKHN0ZGVyciwgJ2luZmxhdGU6ICAgICAgIGNvZGVzIG9rXG4nKSk7CiAgICAgICAgc3RhdGUubW9kZSA9IExFTl87CiAgICAgICAgaWYgKGZsdXNoID09PSBaX1RSRUVTKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBMRU5fOgogICAgICAgIHN0YXRlLm1vZGUgPSBMRU47CiAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqLwogICAgICBjYXNlIExFTjoKICAgICAgICBpZiAoaGF2ZSA+PSA2ICYmIGxlZnQgPj0gMjU4KSB7CiAgICAgICAgICAvLy0tLSBSRVNUT1JFKCkgLS0tCiAgICAgICAgICBzdHJtLm5leHRfb3V0ID0gcHV0OwogICAgICAgICAgc3RybS5hdmFpbF9vdXQgPSBsZWZ0OwogICAgICAgICAgc3RybS5uZXh0X2luID0gbmV4dDsKICAgICAgICAgIHN0cm0uYXZhaWxfaW4gPSBoYXZlOwogICAgICAgICAgc3RhdGUuaG9sZCA9IGhvbGQ7CiAgICAgICAgICBzdGF0ZS5iaXRzID0gYml0czsKICAgICAgICAgIC8vLS0tCiAgICAgICAgICBpbmZsYXRlX2Zhc3Qoc3RybSwgX291dCk7CiAgICAgICAgICAvLy0tLSBMT0FEKCkgLS0tCiAgICAgICAgICBwdXQgPSBzdHJtLm5leHRfb3V0OwogICAgICAgICAgb3V0cHV0ID0gc3RybS5vdXRwdXQ7CiAgICAgICAgICBsZWZ0ID0gc3RybS5hdmFpbF9vdXQ7CiAgICAgICAgICBuZXh0ID0gc3RybS5uZXh0X2luOwogICAgICAgICAgaW5wdXQgPSBzdHJtLmlucHV0OwogICAgICAgICAgaGF2ZSA9IHN0cm0uYXZhaWxfaW47CiAgICAgICAgICBob2xkID0gc3RhdGUuaG9sZDsKICAgICAgICAgIGJpdHMgPSBzdGF0ZS5iaXRzOwogICAgICAgICAgLy8tLS0KCiAgICAgICAgICBpZiAoc3RhdGUubW9kZSA9PT0gVFlQRSkgewogICAgICAgICAgICBzdGF0ZS5iYWNrID0gLTE7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgc3RhdGUuYmFjayA9IDA7CiAgICAgICAgZm9yICg7OykgewogICAgICAgICAgaGVyZSA9IHN0YXRlLmxlbmNvZGVbaG9sZCAmICgoMSA8PCBzdGF0ZS5sZW5iaXRzKSAtIDEpXTsgIC8qQklUUyhzdGF0ZS5sZW5iaXRzKSovCiAgICAgICAgICBoZXJlX2JpdHMgPSBoZXJlID4+PiAyNDsKICAgICAgICAgIGhlcmVfb3AgPSAoaGVyZSA+Pj4gMTYpICYgMHhmZjsKICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICBpZiAoaGVyZV9iaXRzIDw9IGJpdHMpIHsgYnJlYWs7IH0KICAgICAgICAgIC8vLS0tIFBVTExCWVRFKCkgLS0tLy8KICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICAvLy0tLS8vCiAgICAgICAgfQogICAgICAgIGlmIChoZXJlX29wICYmIChoZXJlX29wICYgMHhmMCkgPT09IDApIHsKICAgICAgICAgIGxhc3RfYml0cyA9IGhlcmVfYml0czsKICAgICAgICAgIGxhc3Rfb3AgPSBoZXJlX29wOwogICAgICAgICAgbGFzdF92YWwgPSBoZXJlX3ZhbDsKICAgICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAgaGVyZSA9IHN0YXRlLmxlbmNvZGVbbGFzdF92YWwgKwogICAgICAgICAgICAgICAgICAgICgoaG9sZCAmICgoMSA8PCAobGFzdF9iaXRzICsgbGFzdF9vcCkpIC0gMSkpLypCSVRTKGxhc3QuYml0cyArIGxhc3Qub3ApKi8gPj4gbGFzdF9iaXRzKV07CiAgICAgICAgICAgIGhlcmVfYml0cyA9IGhlcmUgPj4+IDI0OwogICAgICAgICAgICBoZXJlX29wID0gKGhlcmUgPj4+IDE2KSAmIDB4ZmY7CiAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgIGlmICgobGFzdF9iaXRzICsgaGVyZV9iaXRzKSA8PSBiaXRzKSB7IGJyZWFrOyB9CiAgICAgICAgICAgIC8vLS0tIFBVTExCWVRFKCkgLS0tLy8KICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgfQogICAgICAgICAgLy8tLS0gRFJPUEJJVFMobGFzdC5iaXRzKSAtLS0vLwogICAgICAgICAgaG9sZCA+Pj49IGxhc3RfYml0czsKICAgICAgICAgIGJpdHMgLT0gbGFzdF9iaXRzOwogICAgICAgICAgLy8tLS0vLwogICAgICAgICAgc3RhdGUuYmFjayArPSBsYXN0X2JpdHM7CiAgICAgICAgfQogICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgIGJpdHMgLT0gaGVyZV9iaXRzOwogICAgICAgIC8vLS0tLy8KICAgICAgICBzdGF0ZS5iYWNrICs9IGhlcmVfYml0czsKICAgICAgICBzdGF0ZS5sZW5ndGggPSBoZXJlX3ZhbDsKICAgICAgICBpZiAoaGVyZV9vcCA9PT0gMCkgewogICAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsIGhlcmUudmFsID49IDB4MjAgJiYgaGVyZS52YWwgPCAweDdmID8KICAgICAgICAgIC8vICAgICAgICAiaW5mbGF0ZTogICAgICAgICBsaXRlcmFsICclYydcbiIgOgogICAgICAgICAgLy8gICAgICAgICJpbmZsYXRlOiAgICAgICAgIGxpdGVyYWwgMHglMDJ4XG4iLCBoZXJlLnZhbCkpOwogICAgICAgICAgc3RhdGUubW9kZSA9IExJVDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoaGVyZV9vcCAmIDMyKSB7CiAgICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgImluZmxhdGU6ICAgICAgICAgZW5kIG9mIGJsb2NrXG4iKSk7CiAgICAgICAgICBzdGF0ZS5iYWNrID0gLTE7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gVFlQRTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoaGVyZV9vcCAmIDY0KSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBzdGF0ZS5leHRyYSA9IGhlcmVfb3AgJiAxNTsKICAgICAgICBzdGF0ZS5tb2RlID0gTEVORVhUOwogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBMRU5FWFQ6CiAgICAgICAgaWYgKHN0YXRlLmV4dHJhKSB7CiAgICAgICAgICAvLz09PSBORUVEQklUUyhzdGF0ZS5leHRyYSk7CiAgICAgICAgICBuID0gc3RhdGUuZXh0cmE7CiAgICAgICAgICB3aGlsZSAoYml0cyA8IG4pIHsKICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIHN0YXRlLmxlbmd0aCArPSBob2xkICYgKCgxIDw8IHN0YXRlLmV4dHJhKSAtIDEpLypCSVRTKHN0YXRlLmV4dHJhKSovOwogICAgICAgICAgLy8tLS0gRFJPUEJJVFMoc3RhdGUuZXh0cmEpIC0tLS8vCiAgICAgICAgICBob2xkID4+Pj0gc3RhdGUuZXh0cmE7CiAgICAgICAgICBiaXRzIC09IHN0YXRlLmV4dHJhOwogICAgICAgICAgLy8tLS0vLwogICAgICAgICAgc3RhdGUuYmFjayArPSBzdGF0ZS5leHRyYTsKICAgICAgICB9CiAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGxlbmd0aCAldVxuIiwgc3RhdGUubGVuZ3RoKSk7CiAgICAgICAgc3RhdGUud2FzID0gc3RhdGUubGVuZ3RoOwogICAgICAgIHN0YXRlLm1vZGUgPSBESVNUOwogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBESVNUOgogICAgICAgIGZvciAoOzspIHsKICAgICAgICAgIGhlcmUgPSBzdGF0ZS5kaXN0Y29kZVtob2xkICYgKCgxIDw8IHN0YXRlLmRpc3RiaXRzKSAtIDEpXTsvKkJJVFMoc3RhdGUuZGlzdGJpdHMpKi8KICAgICAgICAgIGhlcmVfYml0cyA9IGhlcmUgPj4+IDI0OwogICAgICAgICAgaGVyZV9vcCA9IChoZXJlID4+PiAxNikgJiAweGZmOwogICAgICAgICAgaGVyZV92YWwgPSBoZXJlICYgMHhmZmZmOwoKICAgICAgICAgIGlmICgoaGVyZV9iaXRzKSA8PSBiaXRzKSB7IGJyZWFrOyB9CiAgICAgICAgICAvLy0tLSBQVUxMQllURSgpIC0tLS8vCiAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgLy8tLS0vLwogICAgICAgIH0KICAgICAgICBpZiAoKGhlcmVfb3AgJiAweGYwKSA9PT0gMCkgewogICAgICAgICAgbGFzdF9iaXRzID0gaGVyZV9iaXRzOwogICAgICAgICAgbGFzdF9vcCA9IGhlcmVfb3A7CiAgICAgICAgICBsYXN0X3ZhbCA9IGhlcmVfdmFsOwogICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICBoZXJlID0gc3RhdGUuZGlzdGNvZGVbbGFzdF92YWwgKwogICAgICAgICAgICAgICAgICAgICgoaG9sZCAmICgoMSA8PCAobGFzdF9iaXRzICsgbGFzdF9vcCkpIC0gMSkpLypCSVRTKGxhc3QuYml0cyArIGxhc3Qub3ApKi8gPj4gbGFzdF9iaXRzKV07CiAgICAgICAgICAgIGhlcmVfYml0cyA9IGhlcmUgPj4+IDI0OwogICAgICAgICAgICBoZXJlX29wID0gKGhlcmUgPj4+IDE2KSAmIDB4ZmY7CiAgICAgICAgICAgIGhlcmVfdmFsID0gaGVyZSAmIDB4ZmZmZjsKCiAgICAgICAgICAgIGlmICgobGFzdF9iaXRzICsgaGVyZV9iaXRzKSA8PSBiaXRzKSB7IGJyZWFrOyB9CiAgICAgICAgICAgIC8vLS0tIFBVTExCWVRFKCkgLS0tLy8KICAgICAgICAgICAgaWYgKGhhdmUgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgICAgIGhhdmUtLTsKICAgICAgICAgICAgaG9sZCArPSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgLy8tLS0vLwogICAgICAgICAgfQogICAgICAgICAgLy8tLS0gRFJPUEJJVFMobGFzdC5iaXRzKSAtLS0vLwogICAgICAgICAgaG9sZCA+Pj49IGxhc3RfYml0czsKICAgICAgICAgIGJpdHMgLT0gbGFzdF9iaXRzOwogICAgICAgICAgLy8tLS0vLwogICAgICAgICAgc3RhdGUuYmFjayArPSBsYXN0X2JpdHM7CiAgICAgICAgfQogICAgICAgIC8vLS0tIERST1BCSVRTKGhlcmUuYml0cykgLS0tLy8KICAgICAgICBob2xkID4+Pj0gaGVyZV9iaXRzOwogICAgICAgIGJpdHMgLT0gaGVyZV9iaXRzOwogICAgICAgIC8vLS0tLy8KICAgICAgICBzdGF0ZS5iYWNrICs9IGhlcmVfYml0czsKICAgICAgICBpZiAoaGVyZV9vcCAmIDY0KSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIGNvZGUnOwogICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBzdGF0ZS5vZmZzZXQgPSBoZXJlX3ZhbDsKICAgICAgICBzdGF0ZS5leHRyYSA9IChoZXJlX29wKSAmIDE1OwogICAgICAgIHN0YXRlLm1vZGUgPSBESVNURVhUOwogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBESVNURVhUOgogICAgICAgIGlmIChzdGF0ZS5leHRyYSkgewogICAgICAgICAgLy89PT0gTkVFREJJVFMoc3RhdGUuZXh0cmEpOwogICAgICAgICAgbiA9IHN0YXRlLmV4dHJhOwogICAgICAgICAgd2hpbGUgKGJpdHMgPCBuKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBzdGF0ZS5vZmZzZXQgKz0gaG9sZCAmICgoMSA8PCBzdGF0ZS5leHRyYSkgLSAxKS8qQklUUyhzdGF0ZS5leHRyYSkqLzsKICAgICAgICAgIC8vLS0tIERST1BCSVRTKHN0YXRlLmV4dHJhKSAtLS0vLwogICAgICAgICAgaG9sZCA+Pj49IHN0YXRlLmV4dHJhOwogICAgICAgICAgYml0cyAtPSBzdGF0ZS5leHRyYTsKICAgICAgICAgIC8vLS0tLy8KICAgICAgICAgIHN0YXRlLmJhY2sgKz0gc3RhdGUuZXh0cmE7CiAgICAgICAgfQovLyNpZmRlZiBJTkZMQVRFX1NUUklDVAogICAgICAgIGlmIChzdGF0ZS5vZmZzZXQgPiBzdGF0ZS5kbWF4KSB7CiAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayc7CiAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQovLyNlbmRpZgogICAgICAgIC8vVHJhY2V2digoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgICBkaXN0YW5jZSAldVxuIiwgc3RhdGUub2Zmc2V0KSk7CiAgICAgICAgc3RhdGUubW9kZSA9IE1BVENIOwogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBNQVRDSDoKICAgICAgICBpZiAobGVmdCA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICBjb3B5ID0gX291dCAtIGxlZnQ7CiAgICAgICAgaWYgKHN0YXRlLm9mZnNldCA+IGNvcHkpIHsgICAgICAgICAvKiBjb3B5IGZyb20gd2luZG93ICovCiAgICAgICAgICBjb3B5ID0gc3RhdGUub2Zmc2V0IC0gY29weTsKICAgICAgICAgIGlmIChjb3B5ID4gc3RhdGUud2hhdmUpIHsKICAgICAgICAgICAgaWYgKHN0YXRlLnNhbmUpIHsKICAgICAgICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayc7CiAgICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQovLyAoISkgVGhpcyBibG9jayBpcyBkaXNhYmxlZCBpbiB6bGliIGRlZmF1bHRzLAovLyBkb24ndCBlbmFibGUgaXQgZm9yIGJpbmFyeSBjb21wYXRpYmlsaXR5Ci8vI2lmZGVmIElORkxBVEVfQUxMT1dfSU5WQUxJRF9ESVNUQU5DRV9UT09GQVJfQVJSUgovLyAgICAgICAgICBUcmFjZSgoc3RkZXJyLCAiaW5mbGF0ZS5jIHRvbyBmYXJcbiIpKTsKLy8gICAgICAgICAgY29weSAtPSBzdGF0ZS53aGF2ZTsKLy8gICAgICAgICAgaWYgKGNvcHkgPiBzdGF0ZS5sZW5ndGgpIHsgY29weSA9IHN0YXRlLmxlbmd0aDsgfQovLyAgICAgICAgICBpZiAoY29weSA+IGxlZnQpIHsgY29weSA9IGxlZnQ7IH0KLy8gICAgICAgICAgbGVmdCAtPSBjb3B5OwovLyAgICAgICAgICBzdGF0ZS5sZW5ndGggLT0gY29weTsKLy8gICAgICAgICAgZG8gewovLyAgICAgICAgICAgIG91dHB1dFtwdXQrK10gPSAwOwovLyAgICAgICAgICB9IHdoaWxlICgtLWNvcHkpOwovLyAgICAgICAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSB7IHN0YXRlLm1vZGUgPSBMRU47IH0KLy8gICAgICAgICAgYnJlYWs7Ci8vI2VuZGlmCiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY29weSA+IHN0YXRlLnduZXh0KSB7CiAgICAgICAgICAgIGNvcHkgLT0gc3RhdGUud25leHQ7CiAgICAgICAgICAgIGZyb20gPSBzdGF0ZS53c2l6ZSAtIGNvcHk7CiAgICAgICAgICB9CiAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgZnJvbSA9IHN0YXRlLnduZXh0IC0gY29weTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChjb3B5ID4gc3RhdGUubGVuZ3RoKSB7IGNvcHkgPSBzdGF0ZS5sZW5ndGg7IH0KICAgICAgICAgIGZyb21fc291cmNlID0gc3RhdGUud2luZG93OwogICAgICAgIH0KICAgICAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjb3B5IGZyb20gb3V0cHV0ICovCiAgICAgICAgICBmcm9tX3NvdXJjZSA9IG91dHB1dDsKICAgICAgICAgIGZyb20gPSBwdXQgLSBzdGF0ZS5vZmZzZXQ7CiAgICAgICAgICBjb3B5ID0gc3RhdGUubGVuZ3RoOwogICAgICAgIH0KICAgICAgICBpZiAoY29weSA+IGxlZnQpIHsgY29weSA9IGxlZnQ7IH0KICAgICAgICBsZWZ0IC09IGNvcHk7CiAgICAgICAgc3RhdGUubGVuZ3RoIC09IGNvcHk7CiAgICAgICAgZG8gewogICAgICAgICAgb3V0cHV0W3B1dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgfSB3aGlsZSAoLS1jb3B5KTsKICAgICAgICBpZiAoc3RhdGUubGVuZ3RoID09PSAwKSB7IHN0YXRlLm1vZGUgPSBMRU47IH0KICAgICAgICBicmVhazsKICAgICAgY2FzZSBMSVQ6CiAgICAgICAgaWYgKGxlZnQgPT09IDApIHsgYnJlYWsgaW5mX2xlYXZlOyB9CiAgICAgICAgb3V0cHV0W3B1dCsrXSA9IHN0YXRlLmxlbmd0aDsKICAgICAgICBsZWZ0LS07CiAgICAgICAgc3RhdGUubW9kZSA9IExFTjsKICAgICAgICBicmVhazsKICAgICAgY2FzZSBDSEVDSzoKICAgICAgICBpZiAoc3RhdGUud3JhcCkgewogICAgICAgICAgLy89PT0gTkVFREJJVFMoMzIpOwogICAgICAgICAgd2hpbGUgKGJpdHMgPCAzMikgewogICAgICAgICAgICBpZiAoaGF2ZSA9PT0gMCkgeyBicmVhayBpbmZfbGVhdmU7IH0KICAgICAgICAgICAgaGF2ZS0tOwogICAgICAgICAgICAvLyBVc2UgJ3wnIGluc3RlYWQgb2YgJysnIHRvIG1ha2Ugc3VyZSB0aGF0IHJlc3VsdCBpcyBzaWduZWQKICAgICAgICAgICAgaG9sZCB8PSBpbnB1dFtuZXh0KytdIDw8IGJpdHM7CiAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgIH0KICAgICAgICAgIC8vPT09Ly8KICAgICAgICAgIF9vdXQgLT0gbGVmdDsKICAgICAgICAgIHN0cm0udG90YWxfb3V0ICs9IF9vdXQ7CiAgICAgICAgICBzdGF0ZS50b3RhbCArPSBfb3V0OwogICAgICAgICAgaWYgKF9vdXQpIHsKICAgICAgICAgICAgc3RybS5hZGxlciA9IHN0YXRlLmNoZWNrID0KICAgICAgICAgICAgICAgIC8qVVBEQVRFKHN0YXRlLmNoZWNrLCBwdXQgLSBfb3V0LCBfb3V0KTsqLwogICAgICAgICAgICAgICAgKHN0YXRlLmZsYWdzID8gY3JjMzIoc3RhdGUuY2hlY2ssIG91dHB1dCwgX291dCwgcHV0IC0gX291dCkgOiBhZGxlcjMyKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHB1dCAtIF9vdXQpKTsKCiAgICAgICAgICB9CiAgICAgICAgICBfb3V0ID0gbGVmdDsKICAgICAgICAgIC8vIE5COiBjcmMzMiBzdG9yZWQgYXMgc2lnbmVkIDMyLWJpdCBpbnQsIHpzd2FwMzIgcmV0dXJucyBzaWduZWQgdG9vCiAgICAgICAgICBpZiAoKHN0YXRlLmZsYWdzID8gaG9sZCA6IHpzd2FwMzIoaG9sZCkpICE9PSBzdGF0ZS5jaGVjaykgewogICAgICAgICAgICBzdHJtLm1zZyA9ICdpbmNvcnJlY3QgZGF0YSBjaGVjayc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICBjaGVjayBtYXRjaGVzIHRyYWlsZXJcbiIpKTsKICAgICAgICB9CiAgICAgICAgc3RhdGUubW9kZSA9IExFTkdUSDsKICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovCiAgICAgIGNhc2UgTEVOR1RIOgogICAgICAgIGlmIChzdGF0ZS53cmFwICYmIHN0YXRlLmZsYWdzKSB7CiAgICAgICAgICAvLz09PSBORUVEQklUUygzMik7CiAgICAgICAgICB3aGlsZSAoYml0cyA8IDMyKSB7CiAgICAgICAgICAgIGlmIChoYXZlID09PSAwKSB7IGJyZWFrIGluZl9sZWF2ZTsgfQogICAgICAgICAgICBoYXZlLS07CiAgICAgICAgICAgIGhvbGQgKz0gaW5wdXRbbmV4dCsrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICBpZiAoaG9sZCAhPT0gKHN0YXRlLnRvdGFsICYgMHhmZmZmZmZmZikpIHsKICAgICAgICAgICAgc3RybS5tc2cgPSAnaW5jb3JyZWN0IGxlbmd0aCBjaGVjayc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgLy89PT0gSU5JVEJJVFMoKTsKICAgICAgICAgIGhvbGQgPSAwOwogICAgICAgICAgYml0cyA9IDA7CiAgICAgICAgICAvLz09PS8vCiAgICAgICAgICAvL1RyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICBsZW5ndGggbWF0Y2hlcyB0cmFpbGVyXG4iKSk7CiAgICAgICAgfQogICAgICAgIHN0YXRlLm1vZGUgPSBET05FOwogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgY2FzZSBET05FOgogICAgICAgIHJldCA9IFpfU1RSRUFNX0VORDsKICAgICAgICBicmVhayBpbmZfbGVhdmU7CiAgICAgIGNhc2UgQkFEOgogICAgICAgIHJldCA9IFpfREFUQV9FUlJPUjsKICAgICAgICBicmVhayBpbmZfbGVhdmU7CiAgICAgIGNhc2UgTUVNOgogICAgICAgIHJldHVybiBaX01FTV9FUlJPUjsKICAgICAgY2FzZSBTWU5DOgogICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi8KICAgICAgZGVmYXVsdDoKICAgICAgICByZXR1cm4gWl9TVFJFQU1fRVJST1I7CiAgICB9CiAgfQoKICAvLyBpbmZfbGVhdmUgPC0gaGVyZSBpcyByZWFsIHBsYWNlIGZvciAiZ290byBpbmZfbGVhdmUiLCBlbXVsYXRlZCB2aWEgImJyZWFrIGluZl9sZWF2ZSIKCiAgLyoKICAgICBSZXR1cm4gZnJvbSBpbmZsYXRlKCksIHVwZGF0aW5nIHRoZSB0b3RhbCBjb3VudHMgYW5kIHRoZSBjaGVjayB2YWx1ZS4KICAgICBJZiB0aGVyZSB3YXMgbm8gcHJvZ3Jlc3MgZHVyaW5nIHRoZSBpbmZsYXRlKCkgY2FsbCwgcmV0dXJuIGEgYnVmZmVyCiAgICAgZXJyb3IuICBDYWxsIHVwZGF0ZXdpbmRvdygpIHRvIGNyZWF0ZSBhbmQvb3IgdXBkYXRlIHRoZSB3aW5kb3cgc3RhdGUuCiAgICAgTm90ZTogYSBtZW1vcnkgZXJyb3IgZnJvbSBpbmZsYXRlKCkgaXMgbm9uLXJlY292ZXJhYmxlLgogICAqLwoKICAvLy0tLSBSRVNUT1JFKCkgLS0tCiAgc3RybS5uZXh0X291dCA9IHB1dDsKICBzdHJtLmF2YWlsX291dCA9IGxlZnQ7CiAgc3RybS5uZXh0X2luID0gbmV4dDsKICBzdHJtLmF2YWlsX2luID0gaGF2ZTsKICBzdGF0ZS5ob2xkID0gaG9sZDsKICBzdGF0ZS5iaXRzID0gYml0czsKICAvLy0tLQoKICBpZiAoc3RhdGUud3NpemUgfHwgKF9vdXQgIT09IHN0cm0uYXZhaWxfb3V0ICYmIHN0YXRlLm1vZGUgPCBCQUQgJiYKICAgICAgICAgICAgICAgICAgICAgIChzdGF0ZS5tb2RlIDwgQ0hFQ0sgfHwgZmx1c2ggIT09IFpfRklOSVNIKSkpIHsKICAgIGlmICh1cGRhdGV3aW5kb3coc3RybSwgc3RybS5vdXRwdXQsIHN0cm0ubmV4dF9vdXQsIF9vdXQgLSBzdHJtLmF2YWlsX291dCkpIHsKICAgICAgc3RhdGUubW9kZSA9IE1FTTsKICAgICAgcmV0dXJuIFpfTUVNX0VSUk9SOwogICAgfQogIH0KICBfaW4gLT0gc3RybS5hdmFpbF9pbjsKICBfb3V0IC09IHN0cm0uYXZhaWxfb3V0OwogIHN0cm0udG90YWxfaW4gKz0gX2luOwogIHN0cm0udG90YWxfb3V0ICs9IF9vdXQ7CiAgc3RhdGUudG90YWwgKz0gX291dDsKICBpZiAoc3RhdGUud3JhcCAmJiBfb3V0KSB7CiAgICBzdHJtLmFkbGVyID0gc3RhdGUuY2hlY2sgPSAvKlVQREFURShzdGF0ZS5jaGVjaywgc3RybS5uZXh0X291dCAtIF9vdXQsIF9vdXQpOyovCiAgICAgIChzdGF0ZS5mbGFncyA/IGNyYzMyKHN0YXRlLmNoZWNrLCBvdXRwdXQsIF9vdXQsIHN0cm0ubmV4dF9vdXQgLSBfb3V0KSA6IGFkbGVyMzIoc3RhdGUuY2hlY2ssIG91dHB1dCwgX291dCwgc3RybS5uZXh0X291dCAtIF9vdXQpKTsKICB9CiAgc3RybS5kYXRhX3R5cGUgPSBzdGF0ZS5iaXRzICsgKHN0YXRlLmxhc3QgPyA2NCA6IDApICsKICAgICAgICAgICAgICAgICAgICAoc3RhdGUubW9kZSA9PT0gVFlQRSA/IDEyOCA6IDApICsKICAgICAgICAgICAgICAgICAgICAoc3RhdGUubW9kZSA9PT0gTEVOXyB8fCBzdGF0ZS5tb2RlID09PSBDT1BZXyA/IDI1NiA6IDApOwogIGlmICgoKF9pbiA9PT0gMCAmJiBfb3V0ID09PSAwKSB8fCBmbHVzaCA9PT0gWl9GSU5JU0gpICYmIHJldCA9PT0gWl9PSykgewogICAgcmV0ID0gWl9CVUZfRVJST1I7CiAgfQogIHJldHVybiByZXQ7Cn0KCmZ1bmN0aW9uIGluZmxhdGVFbmQoc3RybSkgewoKICBpZiAoIXN0cm0gfHwgIXN0cm0uc3RhdGUgLyp8fCBzdHJtLT56ZnJlZSA9PSAoZnJlZV9mdW5jKTAqLykgewogICAgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOwogIH0KCiAgdmFyIHN0YXRlID0gc3RybS5zdGF0ZTsKICBpZiAoc3RhdGUud2luZG93KSB7CiAgICBzdGF0ZS53aW5kb3cgPSBudWxsOwogIH0KICBzdHJtLnN0YXRlID0gbnVsbDsKICByZXR1cm4gWl9PSzsKfQoKZnVuY3Rpb24gaW5mbGF0ZUdldEhlYWRlcihzdHJtLCBoZWFkKSB7CiAgdmFyIHN0YXRlOwoKICAvKiBjaGVjayBzdGF0ZSAqLwogIGlmICghc3RybSB8fCAhc3RybS5zdGF0ZSkgeyByZXR1cm4gWl9TVFJFQU1fRVJST1I7IH0KICBzdGF0ZSA9IHN0cm0uc3RhdGU7CiAgaWYgKChzdGF0ZS53cmFwICYgMikgPT09IDApIHsgcmV0dXJuIFpfU1RSRUFNX0VSUk9SOyB9CgogIC8qIHNhdmUgaGVhZGVyIHN0cnVjdHVyZSAqLwogIHN0YXRlLmhlYWQgPSBoZWFkOwogIGhlYWQuZG9uZSA9IGZhbHNlOwogIHJldHVybiBaX09LOwp9CgpmdW5jdGlvbiBpbmZsYXRlU2V0RGljdGlvbmFyeShzdHJtLCBkaWN0aW9uYXJ5KSB7CiAgdmFyIGRpY3RMZW5ndGggPSBkaWN0aW9uYXJ5Lmxlbmd0aDsKCiAgdmFyIHN0YXRlOwogIHZhciBkaWN0aWQ7CiAgdmFyIHJldDsKCiAgLyogY2hlY2sgc3RhdGUgKi8KICBpZiAoIXN0cm0gLyogPT0gWl9OVUxMICovIHx8ICFzdHJtLnN0YXRlIC8qID09IFpfTlVMTCAqLykgeyByZXR1cm4gWl9TVFJFQU1fRVJST1I7IH0KICBzdGF0ZSA9IHN0cm0uc3RhdGU7CgogIGlmIChzdGF0ZS53cmFwICE9PSAwICYmIHN0YXRlLm1vZGUgIT09IERJQ1QpIHsKICAgIHJldHVybiBaX1NUUkVBTV9FUlJPUjsKICB9CgogIC8qIGNoZWNrIGZvciBjb3JyZWN0IGRpY3Rpb25hcnkgaWRlbnRpZmllciAqLwogIGlmIChzdGF0ZS5tb2RlID09PSBESUNUKSB7CiAgICBkaWN0aWQgPSAxOyAvKiBhZGxlcjMyKDAsIG51bGwsIDApKi8KICAgIC8qIGRpY3RpZCA9IGFkbGVyMzIoZGljdGlkLCBkaWN0aW9uYXJ5LCBkaWN0TGVuZ3RoKTsgKi8KICAgIGRpY3RpZCA9IGFkbGVyMzIoZGljdGlkLCBkaWN0aW9uYXJ5LCBkaWN0TGVuZ3RoLCAwKTsKICAgIGlmIChkaWN0aWQgIT09IHN0YXRlLmNoZWNrKSB7CiAgICAgIHJldHVybiBaX0RBVEFfRVJST1I7CiAgICB9CiAgfQogIC8qIGNvcHkgZGljdGlvbmFyeSB0byB3aW5kb3cgdXNpbmcgdXBkYXRld2luZG93KCksIHdoaWNoIHdpbGwgYW1lbmQgdGhlCiAgIGV4aXN0aW5nIGRpY3Rpb25hcnkgaWYgYXBwcm9wcmlhdGUgKi8KICByZXQgPSB1cGRhdGV3aW5kb3coc3RybSwgZGljdGlvbmFyeSwgZGljdExlbmd0aCwgZGljdExlbmd0aCk7CiAgaWYgKHJldCkgewogICAgc3RhdGUubW9kZSA9IE1FTTsKICAgIHJldHVybiBaX01FTV9FUlJPUjsKICB9CiAgc3RhdGUuaGF2ZWRpY3QgPSAxOwogIC8vIFRyYWNldigoc3RkZXJyLCAiaW5mbGF0ZTogICBkaWN0aW9uYXJ5IHNldFxuIikpOwogIHJldHVybiBaX09LOwp9CgpleHBvcnRzLmluZmxhdGVSZXNldCA9IGluZmxhdGVSZXNldDsKZXhwb3J0cy5pbmZsYXRlUmVzZXQyID0gaW5mbGF0ZVJlc2V0MjsKZXhwb3J0cy5pbmZsYXRlUmVzZXRLZWVwID0gaW5mbGF0ZVJlc2V0S2VlcDsKZXhwb3J0cy5pbmZsYXRlSW5pdCA9IGluZmxhdGVJbml0OwpleHBvcnRzLmluZmxhdGVJbml0MiA9IGluZmxhdGVJbml0MjsKZXhwb3J0cy5pbmZsYXRlID0gaW5mbGF0ZTsKZXhwb3J0cy5pbmZsYXRlRW5kID0gaW5mbGF0ZUVuZDsKZXhwb3J0cy5pbmZsYXRlR2V0SGVhZGVyID0gaW5mbGF0ZUdldEhlYWRlcjsKZXhwb3J0cy5pbmZsYXRlU2V0RGljdGlvbmFyeSA9IGluZmxhdGVTZXREaWN0aW9uYXJ5OwpleHBvcnRzLmluZmxhdGVJbmZvID0gJ3Bha28gaW5mbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCknOwoKLyogTm90IGltcGxlbWVudGVkCmV4cG9ydHMuaW5mbGF0ZUNvcHkgPSBpbmZsYXRlQ29weTsKZXhwb3J0cy5pbmZsYXRlR2V0RGljdGlvbmFyeSA9IGluZmxhdGVHZXREaWN0aW9uYXJ5OwpleHBvcnRzLmluZmxhdGVNYXJrID0gaW5mbGF0ZU1hcms7CmV4cG9ydHMuaW5mbGF0ZVByaW1lID0gaW5mbGF0ZVByaW1lOwpleHBvcnRzLmluZmxhdGVTeW5jID0gaW5mbGF0ZVN5bmM7CmV4cG9ydHMuaW5mbGF0ZVN5bmNQb2ludCA9IGluZmxhdGVTeW5jUG9pbnQ7CmV4cG9ydHMuaW5mbGF0ZVVuZGVybWluZSA9IGluZmxhdGVVbmRlcm1pbmU7CiovCgoKLyoqKi8gfSksCi8qIDE1OCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKLy8gKEMpIDE5OTUtMjAxMyBKZWFuLWxvdXAgR2FpbGx5IGFuZCBNYXJrIEFkbGVyCi8vIChDKSAyMDE0LTIwMTcgVml0YWx5IFB1enJpbiBhbmQgQW5kcmV5IFR1cGl0c2luCi8vCi8vIFRoaXMgc29mdHdhcmUgaXMgcHJvdmlkZWQgJ2FzLWlzJywgd2l0aG91dCBhbnkgZXhwcmVzcyBvciBpbXBsaWVkCi8vIHdhcnJhbnR5LiBJbiBubyBldmVudCB3aWxsIHRoZSBhdXRob3JzIGJlIGhlbGQgbGlhYmxlIGZvciBhbnkgZGFtYWdlcwovLyBhcmlzaW5nIGZyb20gdGhlIHVzZSBvZiB0aGlzIHNvZnR3YXJlLgovLwovLyBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gYW55b25lIHRvIHVzZSB0aGlzIHNvZnR3YXJlIGZvciBhbnkgcHVycG9zZSwKLy8gaW5jbHVkaW5nIGNvbW1lcmNpYWwgYXBwbGljYXRpb25zLCBhbmQgdG8gYWx0ZXIgaXQgYW5kIHJlZGlzdHJpYnV0ZSBpdAovLyBmcmVlbHksIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnM6Ci8vCi8vIDEuIFRoZSBvcmlnaW4gb2YgdGhpcyBzb2Z0d2FyZSBtdXN0IG5vdCBiZSBtaXNyZXByZXNlbnRlZDsgeW91IG11c3Qgbm90Ci8vICAgY2xhaW0gdGhhdCB5b3Ugd3JvdGUgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLiBJZiB5b3UgdXNlIHRoaXMgc29mdHdhcmUKLy8gICBpbiBhIHByb2R1Y3QsIGFuIGFja25vd2xlZGdtZW50IGluIHRoZSBwcm9kdWN0IGRvY3VtZW50YXRpb24gd291bGQgYmUKLy8gICBhcHByZWNpYXRlZCBidXQgaXMgbm90IHJlcXVpcmVkLgovLyAyLiBBbHRlcmVkIHNvdXJjZSB2ZXJzaW9ucyBtdXN0IGJlIHBsYWlubHkgbWFya2VkIGFzIHN1Y2gsIGFuZCBtdXN0IG5vdCBiZQovLyAgIG1pc3JlcHJlc2VudGVkIGFzIGJlaW5nIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4KLy8gMy4gVGhpcyBub3RpY2UgbWF5IG5vdCBiZSByZW1vdmVkIG9yIGFsdGVyZWQgZnJvbSBhbnkgc291cmNlIGRpc3RyaWJ1dGlvbi4KCi8vIFNlZSBzdGF0ZSBkZWZzIGZyb20gaW5mbGF0ZS5qcwp2YXIgQkFEID0gMzA7ICAgICAgIC8qIGdvdCBhIGRhdGEgZXJyb3IgLS0gcmVtYWluIGhlcmUgdW50aWwgcmVzZXQgKi8KdmFyIFRZUEUgPSAxMjsgICAgICAvKiBpOiB3YWl0aW5nIGZvciB0eXBlIGJpdHMsIGluY2x1ZGluZyBsYXN0LWZsYWcgYml0ICovCgovKgogICBEZWNvZGUgbGl0ZXJhbCwgbGVuZ3RoLCBhbmQgZGlzdGFuY2UgY29kZXMgYW5kIHdyaXRlIG91dCB0aGUgcmVzdWx0aW5nCiAgIGxpdGVyYWwgYW5kIG1hdGNoIGJ5dGVzIHVudGlsIGVpdGhlciBub3QgZW5vdWdoIGlucHV0IG9yIG91dHB1dCBpcwogICBhdmFpbGFibGUsIGFuIGVuZC1vZi1ibG9jayBpcyBlbmNvdW50ZXJlZCwgb3IgYSBkYXRhIGVycm9yIGlzIGVuY291bnRlcmVkLgogICBXaGVuIGxhcmdlIGVub3VnaCBpbnB1dCBhbmQgb3V0cHV0IGJ1ZmZlcnMgYXJlIHN1cHBsaWVkIHRvIGluZmxhdGUoKSwgZm9yCiAgIGV4YW1wbGUsIGEgMTZLIGlucHV0IGJ1ZmZlciBhbmQgYSA2NEsgb3V0cHV0IGJ1ZmZlciwgbW9yZSB0aGFuIDk1JSBvZiB0aGUKICAgaW5mbGF0ZSBleGVjdXRpb24gdGltZSBpcyBzcGVudCBpbiB0aGlzIHJvdXRpbmUuCgogICBFbnRyeSBhc3N1bXB0aW9uczoKCiAgICAgICAgc3RhdGUubW9kZSA9PT0gTEVOCiAgICAgICAgc3RybS5hdmFpbF9pbiA+PSA2CiAgICAgICAgc3RybS5hdmFpbF9vdXQgPj0gMjU4CiAgICAgICAgc3RhcnQgPj0gc3RybS5hdmFpbF9vdXQKICAgICAgICBzdGF0ZS5iaXRzIDwgOAoKICAgT24gcmV0dXJuLCBzdGF0ZS5tb2RlIGlzIG9uZSBvZjoKCiAgICAgICAgTEVOIC0tIHJhbiBvdXQgb2YgZW5vdWdoIG91dHB1dCBzcGFjZSBvciBlbm91Z2ggYXZhaWxhYmxlIGlucHV0CiAgICAgICAgVFlQRSAtLSByZWFjaGVkIGVuZCBvZiBibG9jayBjb2RlLCBpbmZsYXRlKCkgdG8gaW50ZXJwcmV0IG5leHQgYmxvY2sKICAgICAgICBCQUQgLS0gZXJyb3IgaW4gYmxvY2sgZGF0YQoKICAgTm90ZXM6CgogICAgLSBUaGUgbWF4aW11bSBpbnB1dCBiaXRzIHVzZWQgYnkgYSBsZW5ndGgvZGlzdGFuY2UgcGFpciBpcyAxNSBiaXRzIGZvciB0aGUKICAgICAgbGVuZ3RoIGNvZGUsIDUgYml0cyBmb3IgdGhlIGxlbmd0aCBleHRyYSwgMTUgYml0cyBmb3IgdGhlIGRpc3RhbmNlIGNvZGUsCiAgICAgIGFuZCAxMyBiaXRzIGZvciB0aGUgZGlzdGFuY2UgZXh0cmEuICBUaGlzIHRvdGFscyA0OCBiaXRzLCBvciBzaXggYnl0ZXMuCiAgICAgIFRoZXJlZm9yZSBpZiBzdHJtLmF2YWlsX2luID49IDYsIHRoZW4gdGhlcmUgaXMgZW5vdWdoIGlucHV0IHRvIGF2b2lkCiAgICAgIGNoZWNraW5nIGZvciBhdmFpbGFibGUgaW5wdXQgd2hpbGUgZGVjb2RpbmcuCgogICAgLSBUaGUgbWF4aW11bSBieXRlcyB0aGF0IGEgc2luZ2xlIGxlbmd0aC9kaXN0YW5jZSBwYWlyIGNhbiBvdXRwdXQgaXMgMjU4CiAgICAgIGJ5dGVzLCB3aGljaCBpcyB0aGUgbWF4aW11bSBsZW5ndGggdGhhdCBjYW4gYmUgY29kZWQuICBpbmZsYXRlX2Zhc3QoKQogICAgICByZXF1aXJlcyBzdHJtLmF2YWlsX291dCA+PSAyNTggZm9yIGVhY2ggbG9vcCB0byBhdm9pZCBjaGVja2luZyBmb3IKICAgICAgb3V0cHV0IHNwYWNlLgogKi8KbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmZsYXRlX2Zhc3Qoc3RybSwgc3RhcnQpIHsKICB2YXIgc3RhdGU7CiAgdmFyIF9pbjsgICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uaW5wdXQgKi8KICB2YXIgbGFzdDsgICAgICAgICAgICAgICAgICAgLyogaGF2ZSBlbm91Z2ggaW5wdXQgd2hpbGUgaW4gPCBsYXN0ICovCiAgdmFyIF9vdXQ7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0ub3V0cHV0ICovCiAgdmFyIGJlZzsgICAgICAgICAgICAgICAgICAgIC8qIGluZmxhdGUoKSdzIGluaXRpYWwgc3RybS5vdXRwdXQgKi8KICB2YXIgZW5kOyAgICAgICAgICAgICAgICAgICAgLyogd2hpbGUgb3V0IDwgZW5kLCBlbm91Z2ggc3BhY2UgYXZhaWxhYmxlICovCi8vI2lmZGVmIElORkxBVEVfU1RSSUNUCiAgdmFyIGRtYXg7ICAgICAgICAgICAgICAgICAgIC8qIG1heGltdW0gZGlzdGFuY2UgZnJvbSB6bGliIGhlYWRlciAqLwovLyNlbmRpZgogIHZhciB3c2l6ZTsgICAgICAgICAgICAgICAgICAvKiB3aW5kb3cgc2l6ZSBvciB6ZXJvIGlmIG5vdCB1c2luZyB3aW5kb3cgKi8KICB2YXIgd2hhdmU7ICAgICAgICAgICAgICAgICAgLyogdmFsaWQgYnl0ZXMgaW4gdGhlIHdpbmRvdyAqLwogIHZhciB3bmV4dDsgICAgICAgICAgICAgICAgICAvKiB3aW5kb3cgd3JpdGUgaW5kZXggKi8KICAvLyBVc2UgYHNfd2luZG93YCBpbnN0ZWFkIGB3aW5kb3dgLCBhdm9pZCBjb25mbGljdCB3aXRoIGluc3RydW1lbnRhdGlvbiB0b29scwogIHZhciBzX3dpbmRvdzsgICAgICAgICAgICAgICAvKiBhbGxvY2F0ZWQgc2xpZGluZyB3aW5kb3csIGlmIHdzaXplICE9IDAgKi8KICB2YXIgaG9sZDsgICAgICAgICAgICAgICAgICAgLyogbG9jYWwgc3RybS5ob2xkICovCiAgdmFyIGJpdHM7ICAgICAgICAgICAgICAgICAgIC8qIGxvY2FsIHN0cm0uYml0cyAqLwogIHZhciBsY29kZTsgICAgICAgICAgICAgICAgICAvKiBsb2NhbCBzdHJtLmxlbmNvZGUgKi8KICB2YXIgZGNvZGU7ICAgICAgICAgICAgICAgICAgLyogbG9jYWwgc3RybS5kaXN0Y29kZSAqLwogIHZhciBsbWFzazsgICAgICAgICAgICAgICAgICAvKiBtYXNrIGZvciBmaXJzdCBsZXZlbCBvZiBsZW5ndGggY29kZXMgKi8KICB2YXIgZG1hc2s7ICAgICAgICAgICAgICAgICAgLyogbWFzayBmb3IgZmlyc3QgbGV2ZWwgb2YgZGlzdGFuY2UgY29kZXMgKi8KICB2YXIgaGVyZTsgICAgICAgICAgICAgICAgICAgLyogcmV0cmlldmVkIHRhYmxlIGVudHJ5ICovCiAgdmFyIG9wOyAgICAgICAgICAgICAgICAgICAgIC8qIGNvZGUgYml0cywgb3BlcmF0aW9uLCBleHRyYSBiaXRzLCBvciAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAgd2luZG93IHBvc2l0aW9uLCB3aW5kb3cgYnl0ZXMgdG8gY29weSAqLwogIHZhciBsZW47ICAgICAgICAgICAgICAgICAgICAvKiBtYXRjaCBsZW5ndGgsIHVudXNlZCBieXRlcyAqLwogIHZhciBkaXN0OyAgICAgICAgICAgICAgICAgICAvKiBtYXRjaCBkaXN0YW5jZSAqLwogIHZhciBmcm9tOyAgICAgICAgICAgICAgICAgICAvKiB3aGVyZSB0byBjb3B5IG1hdGNoIGZyb20gKi8KICB2YXIgZnJvbV9zb3VyY2U7CgoKICB2YXIgaW5wdXQsIG91dHB1dDsgLy8gSlMgc3BlY2lmaWMsIGJlY2F1c2Ugd2UgaGF2ZSBubyBwb2ludGVycwoKICAvKiBjb3B5IHN0YXRlIHRvIGxvY2FsIHZhcmlhYmxlcyAqLwogIHN0YXRlID0gc3RybS5zdGF0ZTsKICAvL2hlcmUgPSBzdGF0ZS5oZXJlOwogIF9pbiA9IHN0cm0ubmV4dF9pbjsKICBpbnB1dCA9IHN0cm0uaW5wdXQ7CiAgbGFzdCA9IF9pbiArIChzdHJtLmF2YWlsX2luIC0gNSk7CiAgX291dCA9IHN0cm0ubmV4dF9vdXQ7CiAgb3V0cHV0ID0gc3RybS5vdXRwdXQ7CiAgYmVnID0gX291dCAtIChzdGFydCAtIHN0cm0uYXZhaWxfb3V0KTsKICBlbmQgPSBfb3V0ICsgKHN0cm0uYXZhaWxfb3V0IC0gMjU3KTsKLy8jaWZkZWYgSU5GTEFURV9TVFJJQ1QKICBkbWF4ID0gc3RhdGUuZG1heDsKLy8jZW5kaWYKICB3c2l6ZSA9IHN0YXRlLndzaXplOwogIHdoYXZlID0gc3RhdGUud2hhdmU7CiAgd25leHQgPSBzdGF0ZS53bmV4dDsKICBzX3dpbmRvdyA9IHN0YXRlLndpbmRvdzsKICBob2xkID0gc3RhdGUuaG9sZDsKICBiaXRzID0gc3RhdGUuYml0czsKICBsY29kZSA9IHN0YXRlLmxlbmNvZGU7CiAgZGNvZGUgPSBzdGF0ZS5kaXN0Y29kZTsKICBsbWFzayA9ICgxIDw8IHN0YXRlLmxlbmJpdHMpIC0gMTsKICBkbWFzayA9ICgxIDw8IHN0YXRlLmRpc3RiaXRzKSAtIDE7CgoKICAvKiBkZWNvZGUgbGl0ZXJhbHMgYW5kIGxlbmd0aC9kaXN0YW5jZXMgdW50aWwgZW5kLW9mLWJsb2NrIG9yIG5vdCBlbm91Z2gKICAgICBpbnB1dCBkYXRhIG9yIG91dHB1dCBzcGFjZSAqLwoKICB0b3A6CiAgZG8gewogICAgaWYgKGJpdHMgPCAxNSkgewogICAgICBob2xkICs9IGlucHV0W19pbisrXSA8PCBiaXRzOwogICAgICBiaXRzICs9IDg7CiAgICAgIGhvbGQgKz0gaW5wdXRbX2luKytdIDw8IGJpdHM7CiAgICAgIGJpdHMgKz0gODsKICAgIH0KCiAgICBoZXJlID0gbGNvZGVbaG9sZCAmIGxtYXNrXTsKCiAgICBkb2xlbjoKICAgIGZvciAoOzspIHsgLy8gR290byBlbXVsYXRpb24KICAgICAgb3AgPSBoZXJlID4+PiAyNC8qaGVyZS5iaXRzKi87CiAgICAgIGhvbGQgPj4+PSBvcDsKICAgICAgYml0cyAtPSBvcDsKICAgICAgb3AgPSAoaGVyZSA+Pj4gMTYpICYgMHhmZi8qaGVyZS5vcCovOwogICAgICBpZiAob3AgPT09IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxpdGVyYWwgKi8KICAgICAgICAvL1RyYWNldnYoKHN0ZGVyciwgaGVyZS52YWwgPj0gMHgyMCAmJiBoZXJlLnZhbCA8IDB4N2YgPwogICAgICAgIC8vICAgICAgICAiaW5mbGF0ZTogICAgICAgICBsaXRlcmFsICclYydcbiIgOgogICAgICAgIC8vICAgICAgICAiaW5mbGF0ZTogICAgICAgICBsaXRlcmFsIDB4JTAyeFxuIiwgaGVyZS52YWwpKTsKICAgICAgICBvdXRwdXRbX291dCsrXSA9IGhlcmUgJiAweGZmZmYvKmhlcmUudmFsKi87CiAgICAgIH0KICAgICAgZWxzZSBpZiAob3AgJiAxNikgeyAgICAgICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBiYXNlICovCiAgICAgICAgbGVuID0gaGVyZSAmIDB4ZmZmZi8qaGVyZS52YWwqLzsKICAgICAgICBvcCAmPSAxNTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgZXh0cmEgYml0cyAqLwogICAgICAgIGlmIChvcCkgewogICAgICAgICAgaWYgKGJpdHMgPCBvcCkgewogICAgICAgICAgICBob2xkICs9IGlucHV0W19pbisrXSA8PCBiaXRzOwogICAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICB9CiAgICAgICAgICBsZW4gKz0gaG9sZCAmICgoMSA8PCBvcCkgLSAxKTsKICAgICAgICAgIGhvbGQgPj4+PSBvcDsKICAgICAgICAgIGJpdHMgLT0gb3A7CiAgICAgICAgfQogICAgICAgIC8vVHJhY2V2digoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgICBsZW5ndGggJXVcbiIsIGxlbikpOwogICAgICAgIGlmIChiaXRzIDwgMTUpIHsKICAgICAgICAgIGhvbGQgKz0gaW5wdXRbX2luKytdIDw8IGJpdHM7CiAgICAgICAgICBiaXRzICs9IDg7CiAgICAgICAgICBob2xkICs9IGlucHV0W19pbisrXSA8PCBiaXRzOwogICAgICAgICAgYml0cyArPSA4OwogICAgICAgIH0KICAgICAgICBoZXJlID0gZGNvZGVbaG9sZCAmIGRtYXNrXTsKCiAgICAgICAgZG9kaXN0OgogICAgICAgIGZvciAoOzspIHsgLy8gZ290byBlbXVsYXRpb24KICAgICAgICAgIG9wID0gaGVyZSA+Pj4gMjQvKmhlcmUuYml0cyovOwogICAgICAgICAgaG9sZCA+Pj49IG9wOwogICAgICAgICAgYml0cyAtPSBvcDsKICAgICAgICAgIG9wID0gKGhlcmUgPj4+IDE2KSAmIDB4ZmYvKmhlcmUub3AqLzsKCiAgICAgICAgICBpZiAob3AgJiAxNikgeyAgICAgICAgICAgICAgICAgICAgICAvKiBkaXN0YW5jZSBiYXNlICovCiAgICAgICAgICAgIGRpc3QgPSBoZXJlICYgMHhmZmZmLypoZXJlLnZhbCovOwogICAgICAgICAgICBvcCAmPSAxNTsgICAgICAgICAgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBleHRyYSBiaXRzICovCiAgICAgICAgICAgIGlmIChiaXRzIDwgb3ApIHsKICAgICAgICAgICAgICBob2xkICs9IGlucHV0W19pbisrXSA8PCBiaXRzOwogICAgICAgICAgICAgIGJpdHMgKz0gODsKICAgICAgICAgICAgICBpZiAoYml0cyA8IG9wKSB7CiAgICAgICAgICAgICAgICBob2xkICs9IGlucHV0W19pbisrXSA8PCBiaXRzOwogICAgICAgICAgICAgICAgYml0cyArPSA4OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBkaXN0ICs9IGhvbGQgJiAoKDEgPDwgb3ApIC0gMSk7Ci8vI2lmZGVmIElORkxBVEVfU1RSSUNUCiAgICAgICAgICAgIGlmIChkaXN0ID4gZG1heCkgewogICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgICBzdGF0ZS5tb2RlID0gQkFEOwogICAgICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICAgICAgfQovLyNlbmRpZgogICAgICAgICAgICBob2xkID4+Pj0gb3A7CiAgICAgICAgICAgIGJpdHMgLT0gb3A7CiAgICAgICAgICAgIC8vVHJhY2V2digoc3RkZXJyLCAiaW5mbGF0ZTogICAgICAgICBkaXN0YW5jZSAldVxuIiwgZGlzdCkpOwogICAgICAgICAgICBvcCA9IF9vdXQgLSBiZWc7ICAgICAgICAgICAgICAgIC8qIG1heCBkaXN0YW5jZSBpbiBvdXRwdXQgKi8KICAgICAgICAgICAgaWYgKGRpc3QgPiBvcCkgeyAgICAgICAgICAgICAgICAvKiBzZWUgaWYgY29weSBmcm9tIHdpbmRvdyAqLwogICAgICAgICAgICAgIG9wID0gZGlzdCAtIG9wOyAgICAgICAgICAgICAgIC8qIGRpc3RhbmNlIGJhY2sgaW4gd2luZG93ICovCiAgICAgICAgICAgICAgaWYgKG9wID4gd2hhdmUpIHsKICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5zYW5lKSB7CiAgICAgICAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrJzsKICAgICAgICAgICAgICAgICAgc3RhdGUubW9kZSA9IEJBRDsKICAgICAgICAgICAgICAgICAgYnJlYWsgdG9wOwogICAgICAgICAgICAgICAgfQoKLy8gKCEpIFRoaXMgYmxvY2sgaXMgZGlzYWJsZWQgaW4gemxpYiBkZWZhdWx0cywKLy8gZG9uJ3QgZW5hYmxlIGl0IGZvciBiaW5hcnkgY29tcGF0aWJpbGl0eQovLyNpZmRlZiBJTkZMQVRFX0FMTE9XX0lOVkFMSURfRElTVEFOQ0VfVE9PRkFSX0FSUlIKLy8gICAgICAgICAgICAgICAgaWYgKGxlbiA8PSBvcCAtIHdoYXZlKSB7Ci8vICAgICAgICAgICAgICAgICAgZG8gewovLyAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSAwOwovLyAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tbGVuKTsKLy8gICAgICAgICAgICAgICAgICBjb250aW51ZSB0b3A7Ci8vICAgICAgICAgICAgICAgIH0KLy8gICAgICAgICAgICAgICAgbGVuIC09IG9wIC0gd2hhdmU7Ci8vICAgICAgICAgICAgICAgIGRvIHsKLy8gICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IDA7Ci8vICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tb3AgPiB3aGF2ZSk7Ci8vICAgICAgICAgICAgICAgIGlmIChvcCA9PT0gMCkgewovLyAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsKLy8gICAgICAgICAgICAgICAgICBkbyB7Ci8vICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IG91dHB1dFtmcm9tKytdOwovLyAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tbGVuKTsKLy8gICAgICAgICAgICAgICAgICBjb250aW51ZSB0b3A7Ci8vICAgICAgICAgICAgICAgIH0KLy8jZW5kaWYKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZnJvbSA9IDA7IC8vIHdpbmRvdyBpbmRleAogICAgICAgICAgICAgIGZyb21fc291cmNlID0gc193aW5kb3c7CiAgICAgICAgICAgICAgaWYgKHduZXh0ID09PSAwKSB7ICAgICAgICAgICAvKiB2ZXJ5IGNvbW1vbiBjYXNlICovCiAgICAgICAgICAgICAgICBmcm9tICs9IHdzaXplIC0gb3A7CiAgICAgICAgICAgICAgICBpZiAob3AgPCBsZW4pIHsgICAgICAgICAvKiBzb21lIGZyb20gd2luZG93ICovCiAgICAgICAgICAgICAgICAgIGxlbiAtPSBvcDsKICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gc193aW5kb3dbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1vcCk7CiAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsgIC8qIHJlc3QgZnJvbSBvdXRwdXQgKi8KICAgICAgICAgICAgICAgICAgZnJvbV9zb3VyY2UgPSBvdXRwdXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGVsc2UgaWYgKHduZXh0IDwgb3ApIHsgICAgICAvKiB3cmFwIGFyb3VuZCB3aW5kb3cgKi8KICAgICAgICAgICAgICAgIGZyb20gKz0gd3NpemUgKyB3bmV4dCAtIG9wOwogICAgICAgICAgICAgICAgb3AgLT0gd25leHQ7CiAgICAgICAgICAgICAgICBpZiAob3AgPCBsZW4pIHsgICAgICAgICAvKiBzb21lIGZyb20gZW5kIG9mIHdpbmRvdyAqLwogICAgICAgICAgICAgICAgICBsZW4gLT0gb3A7CiAgICAgICAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IHNfd2luZG93W2Zyb20rK107CiAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tb3ApOwogICAgICAgICAgICAgICAgICBmcm9tID0gMDsKICAgICAgICAgICAgICAgICAgaWYgKHduZXh0IDwgbGVuKSB7ICAvKiBzb21lIGZyb20gc3RhcnQgb2Ygd2luZG93ICovCiAgICAgICAgICAgICAgICAgICAgb3AgPSB3bmV4dDsKICAgICAgICAgICAgICAgICAgICBsZW4gLT0gb3A7CiAgICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBzX3dpbmRvd1tmcm9tKytdOwogICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0tb3ApOwogICAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsgICAgICAvKiByZXN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgICAgICAgZnJvbV9zb3VyY2UgPSBvdXRwdXQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgIC8qIGNvbnRpZ3VvdXMgaW4gd2luZG93ICovCiAgICAgICAgICAgICAgICBmcm9tICs9IHduZXh0IC0gb3A7CiAgICAgICAgICAgICAgICBpZiAob3AgPCBsZW4pIHsgICAgICAgICAvKiBzb21lIGZyb20gd2luZG93ICovCiAgICAgICAgICAgICAgICAgIGxlbiAtPSBvcDsKICAgICAgICAgICAgICAgICAgZG8gewogICAgICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gc193aW5kb3dbZnJvbSsrXTsKICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoLS1vcCk7CiAgICAgICAgICAgICAgICAgIGZyb20gPSBfb3V0IC0gZGlzdDsgIC8qIHJlc3QgZnJvbSBvdXRwdXQgKi8KICAgICAgICAgICAgICAgICAgZnJvbV9zb3VyY2UgPSBvdXRwdXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHdoaWxlIChsZW4gPiAyKSB7CiAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IGZyb21fc291cmNlW2Zyb20rK107CiAgICAgICAgICAgICAgICBsZW4gLT0gMzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGxlbikgewogICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBmcm9tX3NvdXJjZVtmcm9tKytdOwogICAgICAgICAgICAgICAgaWYgKGxlbiA+IDEpIHsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBmcm9tX3NvdXJjZVtmcm9tKytdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICBmcm9tID0gX291dCAtIGRpc3Q7ICAgICAgICAgIC8qIGNvcHkgZGlyZWN0IGZyb20gb3V0cHV0ICovCiAgICAgICAgICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1pbmltdW0gbGVuZ3RoIGlzIHRocmVlICovCiAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IG91dHB1dFtmcm9tKytdOwogICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgIG91dHB1dFtfb3V0KytdID0gb3V0cHV0W2Zyb20rK107CiAgICAgICAgICAgICAgICBsZW4gLT0gMzsKICAgICAgICAgICAgICB9IHdoaWxlIChsZW4gPiAyKTsKICAgICAgICAgICAgICBpZiAobGVuKSB7CiAgICAgICAgICAgICAgICBvdXRwdXRbX291dCsrXSA9IG91dHB1dFtmcm9tKytdOwogICAgICAgICAgICAgICAgaWYgKGxlbiA+IDEpIHsKICAgICAgICAgICAgICAgICAgb3V0cHV0W19vdXQrK10gPSBvdXRwdXRbZnJvbSsrXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVsc2UgaWYgKChvcCAmIDY0KSA9PT0gMCkgeyAgICAgICAgICAvKiAybmQgbGV2ZWwgZGlzdGFuY2UgY29kZSAqLwogICAgICAgICAgICBoZXJlID0gZGNvZGVbKGhlcmUgJiAweGZmZmYpLypoZXJlLnZhbCovICsgKGhvbGQgJiAoKDEgPDwgb3ApIC0gMSkpXTsKICAgICAgICAgICAgY29udGludWUgZG9kaXN0OwogICAgICAgICAgfQogICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHN0cm0ubXNnID0gJ2ludmFsaWQgZGlzdGFuY2UgY29kZSc7CiAgICAgICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgICAgIGJyZWFrIHRvcDsKICAgICAgICAgIH0KCiAgICAgICAgICBicmVhazsgLy8gbmVlZCB0byBlbXVsYXRlIGdvdG8gdmlhICJjb250aW51ZSIKICAgICAgICB9CiAgICAgIH0KICAgICAgZWxzZSBpZiAoKG9wICYgNjQpID09PSAwKSB7ICAgICAgICAgICAgICAvKiAybmQgbGV2ZWwgbGVuZ3RoIGNvZGUgKi8KICAgICAgICBoZXJlID0gbGNvZGVbKGhlcmUgJiAweGZmZmYpLypoZXJlLnZhbCovICsgKGhvbGQgJiAoKDEgPDwgb3ApIC0gMSkpXTsKICAgICAgICBjb250aW51ZSBkb2xlbjsKICAgICAgfQogICAgICBlbHNlIGlmIChvcCAmIDMyKSB7ICAgICAgICAgICAgICAgICAgICAgLyogZW5kLW9mLWJsb2NrICovCiAgICAgICAgLy9UcmFjZXZ2KChzdGRlcnIsICJpbmZsYXRlOiAgICAgICAgIGVuZCBvZiBibG9ja1xuIikpOwogICAgICAgIHN0YXRlLm1vZGUgPSBUWVBFOwogICAgICAgIGJyZWFrIHRvcDsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBzdHJtLm1zZyA9ICdpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUnOwogICAgICAgIHN0YXRlLm1vZGUgPSBCQUQ7CiAgICAgICAgYnJlYWsgdG9wOwogICAgICB9CgogICAgICBicmVhazsgLy8gbmVlZCB0byBlbXVsYXRlIGdvdG8gdmlhICJjb250aW51ZSIKICAgIH0KICB9IHdoaWxlIChfaW4gPCBsYXN0ICYmIF9vdXQgPCBlbmQpOwoKICAvKiByZXR1cm4gdW51c2VkIGJ5dGVzIChvbiBlbnRyeSwgYml0cyA8IDgsIHNvIGluIHdvbid0IGdvIHRvbyBmYXIgYmFjaykgKi8KICBsZW4gPSBiaXRzID4+IDM7CiAgX2luIC09IGxlbjsKICBiaXRzIC09IGxlbiA8PCAzOwogIGhvbGQgJj0gKDEgPDwgYml0cykgLSAxOwoKICAvKiB1cGRhdGUgc3RhdGUgYW5kIHJldHVybiAqLwogIHN0cm0ubmV4dF9pbiA9IF9pbjsKICBzdHJtLm5leHRfb3V0ID0gX291dDsKICBzdHJtLmF2YWlsX2luID0gKF9pbiA8IGxhc3QgPyA1ICsgKGxhc3QgLSBfaW4pIDogNSAtIChfaW4gLSBsYXN0KSk7CiAgc3RybS5hdmFpbF9vdXQgPSAoX291dCA8IGVuZCA/IDI1NyArIChlbmQgLSBfb3V0KSA6IDI1NyAtIChfb3V0IC0gZW5kKSk7CiAgc3RhdGUuaG9sZCA9IGhvbGQ7CiAgc3RhdGUuYml0cyA9IGJpdHM7CiAgcmV0dXJuOwp9OwoKCi8qKiovIH0pLAovKiAxNTkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCi8vIChDKSAxOTk1LTIwMTMgSmVhbi1sb3VwIEdhaWxseSBhbmQgTWFyayBBZGxlcgovLyAoQykgMjAxNC0yMDE3IFZpdGFseSBQdXpyaW4gYW5kIEFuZHJleSBUdXBpdHNpbgovLwovLyBUaGlzIHNvZnR3YXJlIGlzIHByb3ZpZGVkICdhcy1pcycsIHdpdGhvdXQgYW55IGV4cHJlc3Mgb3IgaW1wbGllZAovLyB3YXJyYW50eS4gSW4gbm8gZXZlbnQgd2lsbCB0aGUgYXV0aG9ycyBiZSBoZWxkIGxpYWJsZSBmb3IgYW55IGRhbWFnZXMKLy8gYXJpc2luZyBmcm9tIHRoZSB1c2Ugb2YgdGhpcyBzb2Z0d2FyZS4KLy8KLy8gUGVybWlzc2lvbiBpcyBncmFudGVkIHRvIGFueW9uZSB0byB1c2UgdGhpcyBzb2Z0d2FyZSBmb3IgYW55IHB1cnBvc2UsCi8vIGluY2x1ZGluZyBjb21tZXJjaWFsIGFwcGxpY2F0aW9ucywgYW5kIHRvIGFsdGVyIGl0IGFuZCByZWRpc3RyaWJ1dGUgaXQKLy8gZnJlZWx5LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgcmVzdHJpY3Rpb25zOgovLwovLyAxLiBUaGUgb3JpZ2luIG9mIHRoaXMgc29mdHdhcmUgbXVzdCBub3QgYmUgbWlzcmVwcmVzZW50ZWQ7IHlvdSBtdXN0IG5vdAovLyAgIGNsYWltIHRoYXQgeW91IHdyb3RlIHRoZSBvcmlnaW5hbCBzb2Z0d2FyZS4gSWYgeW91IHVzZSB0aGlzIHNvZnR3YXJlCi8vICAgaW4gYSBwcm9kdWN0LCBhbiBhY2tub3dsZWRnbWVudCBpbiB0aGUgcHJvZHVjdCBkb2N1bWVudGF0aW9uIHdvdWxkIGJlCi8vICAgYXBwcmVjaWF0ZWQgYnV0IGlzIG5vdCByZXF1aXJlZC4KLy8gMi4gQWx0ZXJlZCBzb3VyY2UgdmVyc2lvbnMgbXVzdCBiZSBwbGFpbmx5IG1hcmtlZCBhcyBzdWNoLCBhbmQgbXVzdCBub3QgYmUKLy8gICBtaXNyZXByZXNlbnRlZCBhcyBiZWluZyB0aGUgb3JpZ2luYWwgc29mdHdhcmUuCi8vIDMuIFRoaXMgbm90aWNlIG1heSBub3QgYmUgcmVtb3ZlZCBvciBhbHRlcmVkIGZyb20gYW55IHNvdXJjZSBkaXN0cmlidXRpb24uCgp2YXIgdXRpbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM0KTsKCnZhciBNQVhCSVRTID0gMTU7CnZhciBFTk9VR0hfTEVOUyA9IDg1MjsKdmFyIEVOT1VHSF9ESVNUUyA9IDU5MjsKLy92YXIgRU5PVUdIID0gKEVOT1VHSF9MRU5TK0VOT1VHSF9ESVNUUyk7Cgp2YXIgQ09ERVMgPSAwOwp2YXIgTEVOUyA9IDE7CnZhciBESVNUUyA9IDI7Cgp2YXIgbGJhc2UgPSBbIC8qIExlbmd0aCBjb2RlcyAyNTcuLjI4NSBiYXNlICovCiAgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMywgMTUsIDE3LCAxOSwgMjMsIDI3LCAzMSwKICAzNSwgNDMsIDUxLCA1OSwgNjcsIDgzLCA5OSwgMTE1LCAxMzEsIDE2MywgMTk1LCAyMjcsIDI1OCwgMCwgMApdOwoKdmFyIGxleHQgPSBbIC8qIExlbmd0aCBjb2RlcyAyNTcuLjI4NSBleHRyYSAqLwogIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTcsIDE3LCAxNywgMTcsIDE4LCAxOCwgMTgsIDE4LAogIDE5LCAxOSwgMTksIDE5LCAyMCwgMjAsIDIwLCAyMCwgMjEsIDIxLCAyMSwgMjEsIDE2LCA3MiwgNzgKXTsKCnZhciBkYmFzZSA9IFsgLyogRGlzdGFuY2UgY29kZXMgMC4uMjkgYmFzZSAqLwogIDEsIDIsIDMsIDQsIDUsIDcsIDksIDEzLCAxNywgMjUsIDMzLCA0OSwgNjUsIDk3LCAxMjksIDE5MywKICAyNTcsIDM4NSwgNTEzLCA3NjksIDEwMjUsIDE1MzcsIDIwNDksIDMwNzMsIDQwOTcsIDYxNDUsCiAgODE5MywgMTIyODksIDE2Mzg1LCAyNDU3NywgMCwgMApdOwoKdmFyIGRleHQgPSBbIC8qIERpc3RhbmNlIGNvZGVzIDAuLjI5IGV4dHJhICovCiAgMTYsIDE2LCAxNiwgMTYsIDE3LCAxNywgMTgsIDE4LCAxOSwgMTksIDIwLCAyMCwgMjEsIDIxLCAyMiwgMjIsCiAgMjMsIDIzLCAyNCwgMjQsIDI1LCAyNSwgMjYsIDI2LCAyNywgMjcsCiAgMjgsIDI4LCAyOSwgMjksIDY0LCA2NApdOwoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBpbmZsYXRlX3RhYmxlKHR5cGUsIGxlbnMsIGxlbnNfaW5kZXgsIGNvZGVzLCB0YWJsZSwgdGFibGVfaW5kZXgsIHdvcmssIG9wdHMpCnsKICB2YXIgYml0cyA9IG9wdHMuYml0czsKICAgICAgLy9oZXJlID0gb3B0cy5oZXJlOyAvKiB0YWJsZSBlbnRyeSBmb3IgZHVwbGljYXRpb24gKi8KCiAgdmFyIGxlbiA9IDA7ICAgICAgICAgICAgICAgLyogYSBjb2RlJ3MgbGVuZ3RoIGluIGJpdHMgKi8KICB2YXIgc3ltID0gMDsgICAgICAgICAgICAgICAvKiBpbmRleCBvZiBjb2RlIHN5bWJvbHMgKi8KICB2YXIgbWluID0gMCwgbWF4ID0gMDsgICAgICAgICAgLyogbWluaW11bSBhbmQgbWF4aW11bSBjb2RlIGxlbmd0aHMgKi8KICB2YXIgcm9vdCA9IDA7ICAgICAgICAgICAgICAvKiBudW1iZXIgb2YgaW5kZXggYml0cyBmb3Igcm9vdCB0YWJsZSAqLwogIHZhciBjdXJyID0gMDsgICAgICAgICAgICAgIC8qIG51bWJlciBvZiBpbmRleCBiaXRzIGZvciBjdXJyZW50IHRhYmxlICovCiAgdmFyIGRyb3AgPSAwOyAgICAgICAgICAgICAgLyogY29kZSBiaXRzIHRvIGRyb3AgZm9yIHN1Yi10YWJsZSAqLwogIHZhciBsZWZ0ID0gMDsgICAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIHByZWZpeCBjb2RlcyBhdmFpbGFibGUgKi8KICB2YXIgdXNlZCA9IDA7ICAgICAgICAgICAgICAvKiBjb2RlIGVudHJpZXMgaW4gdGFibGUgdXNlZCAqLwogIHZhciBodWZmID0gMDsgICAgICAgICAgICAgIC8qIEh1ZmZtYW4gY29kZSAqLwogIHZhciBpbmNyOyAgICAgICAgICAgICAgLyogZm9yIGluY3JlbWVudGluZyBjb2RlLCBpbmRleCAqLwogIHZhciBmaWxsOyAgICAgICAgICAgICAgLyogaW5kZXggZm9yIHJlcGxpY2F0aW5nIGVudHJpZXMgKi8KICB2YXIgbG93OyAgICAgICAgICAgICAgIC8qIGxvdyBiaXRzIGZvciBjdXJyZW50IHJvb3QgZW50cnkgKi8KICB2YXIgbWFzazsgICAgICAgICAgICAgIC8qIG1hc2sgZm9yIGxvdyByb290IGJpdHMgKi8KICB2YXIgbmV4dDsgICAgICAgICAgICAgLyogbmV4dCBhdmFpbGFibGUgc3BhY2UgaW4gdGFibGUgKi8KICB2YXIgYmFzZSA9IG51bGw7ICAgICAvKiBiYXNlIHZhbHVlIHRhYmxlIHRvIHVzZSAqLwogIHZhciBiYXNlX2luZGV4ID0gMDsKLy8gIHZhciBzaG9leHRyYTsgICAgLyogZXh0cmEgYml0cyB0YWJsZSB0byB1c2UgKi8KICB2YXIgZW5kOyAgICAgICAgICAgICAgICAgICAgLyogdXNlIGJhc2UgYW5kIGV4dHJhIGZvciBzeW1ib2wgPiBlbmQgKi8KICB2YXIgY291bnQgPSBuZXcgdXRpbHMuQnVmMTYoTUFYQklUUyArIDEpOyAvL1tNQVhCSVRTKzFdOyAgICAvKiBudW1iZXIgb2YgY29kZXMgb2YgZWFjaCBsZW5ndGggKi8KICB2YXIgb2ZmcyA9IG5ldyB1dGlscy5CdWYxNihNQVhCSVRTICsgMSk7IC8vW01BWEJJVFMrMV07ICAgICAvKiBvZmZzZXRzIGluIHRhYmxlIGZvciBlYWNoIGxlbmd0aCAqLwogIHZhciBleHRyYSA9IG51bGw7CiAgdmFyIGV4dHJhX2luZGV4ID0gMDsKCiAgdmFyIGhlcmVfYml0cywgaGVyZV9vcCwgaGVyZV92YWw7CgogIC8qCiAgIFByb2Nlc3MgYSBzZXQgb2YgY29kZSBsZW5ndGhzIHRvIGNyZWF0ZSBhIGNhbm9uaWNhbCBIdWZmbWFuIGNvZGUuICBUaGUKICAgY29kZSBsZW5ndGhzIGFyZSBsZW5zWzAuLmNvZGVzLTFdLiAgRWFjaCBsZW5ndGggY29ycmVzcG9uZHMgdG8gdGhlCiAgIHN5bWJvbHMgMC4uY29kZXMtMS4gIFRoZSBIdWZmbWFuIGNvZGUgaXMgZ2VuZXJhdGVkIGJ5IGZpcnN0IHNvcnRpbmcgdGhlCiAgIHN5bWJvbHMgYnkgbGVuZ3RoIGZyb20gc2hvcnQgdG8gbG9uZywgYW5kIHJldGFpbmluZyB0aGUgc3ltYm9sIG9yZGVyCiAgIGZvciBjb2RlcyB3aXRoIGVxdWFsIGxlbmd0aHMuICBUaGVuIHRoZSBjb2RlIHN0YXJ0cyB3aXRoIGFsbCB6ZXJvIGJpdHMKICAgZm9yIHRoZSBmaXJzdCBjb2RlIG9mIHRoZSBzaG9ydGVzdCBsZW5ndGgsIGFuZCB0aGUgY29kZXMgYXJlIGludGVnZXIKICAgaW5jcmVtZW50cyBmb3IgdGhlIHNhbWUgbGVuZ3RoLCBhbmQgemVyb3MgYXJlIGFwcGVuZGVkIGFzIHRoZSBsZW5ndGgKICAgaW5jcmVhc2VzLiAgRm9yIHRoZSBkZWZsYXRlIGZvcm1hdCwgdGhlc2UgYml0cyBhcmUgc3RvcmVkIGJhY2t3YXJkcwogICBmcm9tIHRoZWlyIG1vcmUgbmF0dXJhbCBpbnRlZ2VyIGluY3JlbWVudCBvcmRlcmluZywgYW5kIHNvIHdoZW4gdGhlCiAgIGRlY29kaW5nIHRhYmxlcyBhcmUgYnVpbHQgaW4gdGhlIGxhcmdlIGxvb3AgYmVsb3csIHRoZSBpbnRlZ2VyIGNvZGVzCiAgIGFyZSBpbmNyZW1lbnRlZCBiYWNrd2FyZHMuCgogICBUaGlzIHJvdXRpbmUgYXNzdW1lcywgYnV0IGRvZXMgbm90IGNoZWNrLCB0aGF0IGFsbCBvZiB0aGUgZW50cmllcyBpbgogICBsZW5zW10gYXJlIGluIHRoZSByYW5nZSAwLi5NQVhCSVRTLiAgVGhlIGNhbGxlciBtdXN0IGFzc3VyZSB0aGlzLgogICAxLi5NQVhCSVRTIGlzIGludGVycHJldGVkIGFzIHRoYXQgY29kZSBsZW5ndGguICB6ZXJvIG1lYW5zIHRoYXQgdGhhdAogICBzeW1ib2wgZG9lcyBub3Qgb2NjdXIgaW4gdGhpcyBjb2RlLgoKICAgVGhlIGNvZGVzIGFyZSBzb3J0ZWQgYnkgY29tcHV0aW5nIGEgY291bnQgb2YgY29kZXMgZm9yIGVhY2ggbGVuZ3RoLAogICBjcmVhdGluZyBmcm9tIHRoYXQgYSB0YWJsZSBvZiBzdGFydGluZyBpbmRpY2VzIGZvciBlYWNoIGxlbmd0aCBpbiB0aGUKICAgc29ydGVkIHRhYmxlLCBhbmQgdGhlbiBlbnRlcmluZyB0aGUgc3ltYm9scyBpbiBvcmRlciBpbiB0aGUgc29ydGVkCiAgIHRhYmxlLiAgVGhlIHNvcnRlZCB0YWJsZSBpcyB3b3JrW10sIHdpdGggdGhhdCBzcGFjZSBiZWluZyBwcm92aWRlZCBieQogICB0aGUgY2FsbGVyLgoKICAgVGhlIGxlbmd0aCBjb3VudHMgYXJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzIGFzIHdlbGwsIGkuZS4gZmluZGluZwogICB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBsZW5ndGggY29kZXMsIGRldGVybWluaW5nIGlmIHRoZXJlIGFyZSBhbnkKICAgY29kZXMgYXQgYWxsLCBjaGVja2luZyBmb3IgYSB2YWxpZCBzZXQgb2YgbGVuZ3RocywgYW5kIGxvb2tpbmcgYWhlYWQKICAgYXQgbGVuZ3RoIGNvdW50cyB0byBkZXRlcm1pbmUgc3ViLXRhYmxlIHNpemVzIHdoZW4gYnVpbGRpbmcgdGhlCiAgIGRlY29kaW5nIHRhYmxlcy4KICAgKi8KCiAgLyogYWNjdW11bGF0ZSBsZW5ndGhzIGZvciBjb2RlcyAoYXNzdW1lcyBsZW5zW10gYWxsIGluIDAuLk1BWEJJVFMpICovCiAgZm9yIChsZW4gPSAwOyBsZW4gPD0gTUFYQklUUzsgbGVuKyspIHsKICAgIGNvdW50W2xlbl0gPSAwOwogIH0KICBmb3IgKHN5bSA9IDA7IHN5bSA8IGNvZGVzOyBzeW0rKykgewogICAgY291bnRbbGVuc1tsZW5zX2luZGV4ICsgc3ltXV0rKzsKICB9CgogIC8qIGJvdW5kIGNvZGUgbGVuZ3RocywgZm9yY2Ugcm9vdCB0byBiZSB3aXRoaW4gY29kZSBsZW5ndGhzICovCiAgcm9vdCA9IGJpdHM7CiAgZm9yIChtYXggPSBNQVhCSVRTOyBtYXggPj0gMTsgbWF4LS0pIHsKICAgIGlmIChjb3VudFttYXhdICE9PSAwKSB7IGJyZWFrOyB9CiAgfQogIGlmIChyb290ID4gbWF4KSB7CiAgICByb290ID0gbWF4OwogIH0KICBpZiAobWF4ID09PSAwKSB7ICAgICAgICAgICAgICAgICAgICAgLyogbm8gc3ltYm9scyB0byBjb2RlIGF0IGFsbCAqLwogICAgLy90YWJsZS5vcFtvcHRzLnRhYmxlX2luZGV4XSA9IDY0OyAgLy9oZXJlLm9wID0gKHZhciBjaGFyKTY0OyAgICAvKiBpbnZhbGlkIGNvZGUgbWFya2VyICovCiAgICAvL3RhYmxlLmJpdHNbb3B0cy50YWJsZV9pbmRleF0gPSAxOyAgIC8vaGVyZS5iaXRzID0gKHZhciBjaGFyKTE7CiAgICAvL3RhYmxlLnZhbFtvcHRzLnRhYmxlX2luZGV4KytdID0gMDsgICAvL2hlcmUudmFsID0gKHZhciBzaG9ydCkwOwogICAgdGFibGVbdGFibGVfaW5kZXgrK10gPSAoMSA8PCAyNCkgfCAoNjQgPDwgMTYpIHwgMDsKCgogICAgLy90YWJsZS5vcFtvcHRzLnRhYmxlX2luZGV4XSA9IDY0OwogICAgLy90YWJsZS5iaXRzW29wdHMudGFibGVfaW5kZXhdID0gMTsKICAgIC8vdGFibGUudmFsW29wdHMudGFibGVfaW5kZXgrK10gPSAwOwogICAgdGFibGVbdGFibGVfaW5kZXgrK10gPSAoMSA8PCAyNCkgfCAoNjQgPDwgMTYpIHwgMDsKCiAgICBvcHRzLmJpdHMgPSAxOwogICAgcmV0dXJuIDA7ICAgICAvKiBubyBzeW1ib2xzLCBidXQgd2FpdCBmb3IgZGVjb2RpbmcgdG8gcmVwb3J0IGVycm9yICovCiAgfQogIGZvciAobWluID0gMTsgbWluIDwgbWF4OyBtaW4rKykgewogICAgaWYgKGNvdW50W21pbl0gIT09IDApIHsgYnJlYWs7IH0KICB9CiAgaWYgKHJvb3QgPCBtaW4pIHsKICAgIHJvb3QgPSBtaW47CiAgfQoKICAvKiBjaGVjayBmb3IgYW4gb3Zlci1zdWJzY3JpYmVkIG9yIGluY29tcGxldGUgc2V0IG9mIGxlbmd0aHMgKi8KICBsZWZ0ID0gMTsKICBmb3IgKGxlbiA9IDE7IGxlbiA8PSBNQVhCSVRTOyBsZW4rKykgewogICAgbGVmdCA8PD0gMTsKICAgIGxlZnQgLT0gY291bnRbbGVuXTsKICAgIGlmIChsZWZ0IDwgMCkgewogICAgICByZXR1cm4gLTE7CiAgICB9ICAgICAgICAvKiBvdmVyLXN1YnNjcmliZWQgKi8KICB9CiAgaWYgKGxlZnQgPiAwICYmICh0eXBlID09PSBDT0RFUyB8fCBtYXggIT09IDEpKSB7CiAgICByZXR1cm4gLTE7ICAgICAgICAgICAgICAgICAgICAgIC8qIGluY29tcGxldGUgc2V0ICovCiAgfQoKICAvKiBnZW5lcmF0ZSBvZmZzZXRzIGludG8gc3ltYm9sIHRhYmxlIGZvciBlYWNoIGxlbmd0aCBmb3Igc29ydGluZyAqLwogIG9mZnNbMV0gPSAwOwogIGZvciAobGVuID0gMTsgbGVuIDwgTUFYQklUUzsgbGVuKyspIHsKICAgIG9mZnNbbGVuICsgMV0gPSBvZmZzW2xlbl0gKyBjb3VudFtsZW5dOwogIH0KCiAgLyogc29ydCBzeW1ib2xzIGJ5IGxlbmd0aCwgYnkgc3ltYm9sIG9yZGVyIHdpdGhpbiBlYWNoIGxlbmd0aCAqLwogIGZvciAoc3ltID0gMDsgc3ltIDwgY29kZXM7IHN5bSsrKSB7CiAgICBpZiAobGVuc1tsZW5zX2luZGV4ICsgc3ltXSAhPT0gMCkgewogICAgICB3b3JrW29mZnNbbGVuc1tsZW5zX2luZGV4ICsgc3ltXV0rK10gPSBzeW07CiAgICB9CiAgfQoKICAvKgogICBDcmVhdGUgYW5kIGZpbGwgaW4gZGVjb2RpbmcgdGFibGVzLiAgSW4gdGhpcyBsb29wLCB0aGUgdGFibGUgYmVpbmcKICAgZmlsbGVkIGlzIGF0IG5leHQgYW5kIGhhcyBjdXJyIGluZGV4IGJpdHMuICBUaGUgY29kZSBiZWluZyB1c2VkIGlzIGh1ZmYKICAgd2l0aCBsZW5ndGggbGVuLiAgVGhhdCBjb2RlIGlzIGNvbnZlcnRlZCB0byBhbiBpbmRleCBieSBkcm9wcGluZyBkcm9wCiAgIGJpdHMgb2ZmIG9mIHRoZSBib3R0b20uICBGb3IgY29kZXMgd2hlcmUgbGVuIGlzIGxlc3MgdGhhbiBkcm9wICsgY3VyciwKICAgdGhvc2UgdG9wIGRyb3AgKyBjdXJyIC0gbGVuIGJpdHMgYXJlIGluY3JlbWVudGVkIHRocm91Z2ggYWxsIHZhbHVlcyB0bwogICBmaWxsIHRoZSB0YWJsZSB3aXRoIHJlcGxpY2F0ZWQgZW50cmllcy4KCiAgIHJvb3QgaXMgdGhlIG51bWJlciBvZiBpbmRleCBiaXRzIGZvciB0aGUgcm9vdCB0YWJsZS4gIFdoZW4gbGVuIGV4Y2VlZHMKICAgcm9vdCwgc3ViLXRhYmxlcyBhcmUgY3JlYXRlZCBwb2ludGVkIHRvIGJ5IHRoZSByb290IGVudHJ5IHdpdGggYW4gaW5kZXgKICAgb2YgdGhlIGxvdyByb290IGJpdHMgb2YgaHVmZi4gIFRoaXMgaXMgc2F2ZWQgaW4gbG93IHRvIGNoZWNrIGZvciB3aGVuIGEKICAgbmV3IHN1Yi10YWJsZSBzaG91bGQgYmUgc3RhcnRlZC4gIGRyb3AgaXMgemVybyB3aGVuIHRoZSByb290IHRhYmxlIGlzCiAgIGJlaW5nIGZpbGxlZCwgYW5kIGRyb3AgaXMgcm9vdCB3aGVuIHN1Yi10YWJsZXMgYXJlIGJlaW5nIGZpbGxlZC4KCiAgIFdoZW4gYSBuZXcgc3ViLXRhYmxlIGlzIG5lZWRlZCwgaXQgaXMgbmVjZXNzYXJ5IHRvIGxvb2sgYWhlYWQgaW4gdGhlCiAgIGNvZGUgbGVuZ3RocyB0byBkZXRlcm1pbmUgd2hhdCBzaXplIHN1Yi10YWJsZSBpcyBuZWVkZWQuICBUaGUgbGVuZ3RoCiAgIGNvdW50cyBhcmUgdXNlZCBmb3IgdGhpcywgYW5kIHNvIGNvdW50W10gaXMgZGVjcmVtZW50ZWQgYXMgY29kZXMgYXJlCiAgIGVudGVyZWQgaW4gdGhlIHRhYmxlcy4KCiAgIHVzZWQga2VlcHMgdHJhY2sgb2YgaG93IG1hbnkgdGFibGUgZW50cmllcyBoYXZlIGJlZW4gYWxsb2NhdGVkIGZyb20gdGhlCiAgIHByb3ZpZGVkICp0YWJsZSBzcGFjZS4gIEl0IGlzIGNoZWNrZWQgZm9yIExFTlMgYW5kIERJU1QgdGFibGVzIGFnYWluc3QKICAgdGhlIGNvbnN0YW50cyBFTk9VR0hfTEVOUyBhbmQgRU5PVUdIX0RJU1RTIHRvIGd1YXJkIGFnYWluc3QgY2hhbmdlcyBpbgogICB0aGUgaW5pdGlhbCByb290IHRhYmxlIHNpemUgY29uc3RhbnRzLiAgU2VlIHRoZSBjb21tZW50cyBpbiBpbmZ0cmVlcy5oCiAgIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKICAgc3ltIGluY3JlbWVudHMgdGhyb3VnaCBhbGwgc3ltYm9scywgYW5kIHRoZSBsb29wIHRlcm1pbmF0ZXMgd2hlbgogICBhbGwgY29kZXMgb2YgbGVuZ3RoIG1heCwgaS5lLiBhbGwgY29kZXMsIGhhdmUgYmVlbiBwcm9jZXNzZWQuICBUaGlzCiAgIHJvdXRpbmUgcGVybWl0cyBpbmNvbXBsZXRlIGNvZGVzLCBzbyBhbm90aGVyIGxvb3AgYWZ0ZXIgdGhpcyBvbmUgZmlsbHMKICAgaW4gdGhlIHJlc3Qgb2YgdGhlIGRlY29kaW5nIHRhYmxlcyB3aXRoIGludmFsaWQgY29kZSBtYXJrZXJzLgogICAqLwoKICAvKiBzZXQgdXAgZm9yIGNvZGUgdHlwZSAqLwogIC8vIHBvb3IgbWFuIG9wdGltaXphdGlvbiAtIHVzZSBpZi1lbHNlIGluc3RlYWQgb2Ygc3dpdGNoLAogIC8vIHRvIGF2b2lkIGRlb3B0cyBpbiBvbGQgdjgKICBpZiAodHlwZSA9PT0gQ09ERVMpIHsKICAgIGJhc2UgPSBleHRyYSA9IHdvcms7ICAgIC8qIGR1bW15IHZhbHVlLS1ub3QgdXNlZCAqLwogICAgZW5kID0gMTk7CgogIH0gZWxzZSBpZiAodHlwZSA9PT0gTEVOUykgewogICAgYmFzZSA9IGxiYXNlOwogICAgYmFzZV9pbmRleCAtPSAyNTc7CiAgICBleHRyYSA9IGxleHQ7CiAgICBleHRyYV9pbmRleCAtPSAyNTc7CiAgICBlbmQgPSAyNTY7CgogIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAvKiBESVNUUyAqLwogICAgYmFzZSA9IGRiYXNlOwogICAgZXh0cmEgPSBkZXh0OwogICAgZW5kID0gLTE7CiAgfQoKICAvKiBpbml0aWFsaXplIG9wdHMgZm9yIGxvb3AgKi8KICBodWZmID0gMDsgICAgICAgICAgICAgICAgICAgLyogc3RhcnRpbmcgY29kZSAqLwogIHN5bSA9IDA7ICAgICAgICAgICAgICAgICAgICAvKiBzdGFydGluZyBjb2RlIHN5bWJvbCAqLwogIGxlbiA9IG1pbjsgICAgICAgICAgICAgICAgICAvKiBzdGFydGluZyBjb2RlIGxlbmd0aCAqLwogIG5leHQgPSB0YWJsZV9pbmRleDsgICAgICAgICAgICAgIC8qIGN1cnJlbnQgdGFibGUgdG8gZmlsbCBpbiAqLwogIGN1cnIgPSByb290OyAgICAgICAgICAgICAgICAvKiBjdXJyZW50IHRhYmxlIGluZGV4IGJpdHMgKi8KICBkcm9wID0gMDsgICAgICAgICAgICAgICAgICAgLyogY3VycmVudCBiaXRzIHRvIGRyb3AgZnJvbSBjb2RlIGZvciBpbmRleCAqLwogIGxvdyA9IC0xOyAgICAgICAgICAgICAgICAgICAvKiB0cmlnZ2VyIG5ldyBzdWItdGFibGUgd2hlbiBsZW4gPiByb290ICovCiAgdXNlZCA9IDEgPDwgcm9vdDsgICAgICAgICAgLyogdXNlIHJvb3QgdGFibGUgZW50cmllcyAqLwogIG1hc2sgPSB1c2VkIC0gMTsgICAgICAgICAgICAvKiBtYXNrIGZvciBjb21wYXJpbmcgbG93ICovCgogIC8qIGNoZWNrIGF2YWlsYWJsZSB0YWJsZSBzcGFjZSAqLwogIGlmICgodHlwZSA9PT0gTEVOUyAmJiB1c2VkID4gRU5PVUdIX0xFTlMpIHx8CiAgICAodHlwZSA9PT0gRElTVFMgJiYgdXNlZCA+IEVOT1VHSF9ESVNUUykpIHsKICAgIHJldHVybiAxOwogIH0KCiAgLyogcHJvY2VzcyBhbGwgY29kZXMgYW5kIG1ha2UgdGFibGUgZW50cmllcyAqLwogIGZvciAoOzspIHsKICAgIC8qIGNyZWF0ZSB0YWJsZSBlbnRyeSAqLwogICAgaGVyZV9iaXRzID0gbGVuIC0gZHJvcDsKICAgIGlmICh3b3JrW3N5bV0gPCBlbmQpIHsKICAgICAgaGVyZV9vcCA9IDA7CiAgICAgIGhlcmVfdmFsID0gd29ya1tzeW1dOwogICAgfQogICAgZWxzZSBpZiAod29ya1tzeW1dID4gZW5kKSB7CiAgICAgIGhlcmVfb3AgPSBleHRyYVtleHRyYV9pbmRleCArIHdvcmtbc3ltXV07CiAgICAgIGhlcmVfdmFsID0gYmFzZVtiYXNlX2luZGV4ICsgd29ya1tzeW1dXTsKICAgIH0KICAgIGVsc2UgewogICAgICBoZXJlX29wID0gMzIgKyA2NDsgICAgICAgICAvKiBlbmQgb2YgYmxvY2sgKi8KICAgICAgaGVyZV92YWwgPSAwOwogICAgfQoKICAgIC8qIHJlcGxpY2F0ZSBmb3IgdGhvc2UgaW5kaWNlcyB3aXRoIGxvdyBsZW4gYml0cyBlcXVhbCB0byBodWZmICovCiAgICBpbmNyID0gMSA8PCAobGVuIC0gZHJvcCk7CiAgICBmaWxsID0gMSA8PCBjdXJyOwogICAgbWluID0gZmlsbDsgICAgICAgICAgICAgICAgIC8qIHNhdmUgb2Zmc2V0IHRvIG5leHQgdGFibGUgKi8KICAgIGRvIHsKICAgICAgZmlsbCAtPSBpbmNyOwogICAgICB0YWJsZVtuZXh0ICsgKGh1ZmYgPj4gZHJvcCkgKyBmaWxsXSA9IChoZXJlX2JpdHMgPDwgMjQpIHwgKGhlcmVfb3AgPDwgMTYpIHwgaGVyZV92YWwgfDA7CiAgICB9IHdoaWxlIChmaWxsICE9PSAwKTsKCiAgICAvKiBiYWNrd2FyZHMgaW5jcmVtZW50IHRoZSBsZW4tYml0IGNvZGUgaHVmZiAqLwogICAgaW5jciA9IDEgPDwgKGxlbiAtIDEpOwogICAgd2hpbGUgKGh1ZmYgJiBpbmNyKSB7CiAgICAgIGluY3IgPj49IDE7CiAgICB9CiAgICBpZiAoaW5jciAhPT0gMCkgewogICAgICBodWZmICY9IGluY3IgLSAxOwogICAgICBodWZmICs9IGluY3I7CiAgICB9IGVsc2UgewogICAgICBodWZmID0gMDsKICAgIH0KCiAgICAvKiBnbyB0byBuZXh0IHN5bWJvbCwgdXBkYXRlIGNvdW50LCBsZW4gKi8KICAgIHN5bSsrOwogICAgaWYgKC0tY291bnRbbGVuXSA9PT0gMCkgewogICAgICBpZiAobGVuID09PSBtYXgpIHsgYnJlYWs7IH0KICAgICAgbGVuID0gbGVuc1tsZW5zX2luZGV4ICsgd29ya1tzeW1dXTsKICAgIH0KCiAgICAvKiBjcmVhdGUgbmV3IHN1Yi10YWJsZSBpZiBuZWVkZWQgKi8KICAgIGlmIChsZW4gPiByb290ICYmIChodWZmICYgbWFzaykgIT09IGxvdykgewogICAgICAvKiBpZiBmaXJzdCB0aW1lLCB0cmFuc2l0aW9uIHRvIHN1Yi10YWJsZXMgKi8KICAgICAgaWYgKGRyb3AgPT09IDApIHsKICAgICAgICBkcm9wID0gcm9vdDsKICAgICAgfQoKICAgICAgLyogaW5jcmVtZW50IHBhc3QgbGFzdCB0YWJsZSAqLwogICAgICBuZXh0ICs9IG1pbjsgICAgICAgICAgICAvKiBoZXJlIG1pbiBpcyAxIDw8IGN1cnIgKi8KCiAgICAgIC8qIGRldGVybWluZSBsZW5ndGggb2YgbmV4dCB0YWJsZSAqLwogICAgICBjdXJyID0gbGVuIC0gZHJvcDsKICAgICAgbGVmdCA9IDEgPDwgY3VycjsKICAgICAgd2hpbGUgKGN1cnIgKyBkcm9wIDwgbWF4KSB7CiAgICAgICAgbGVmdCAtPSBjb3VudFtjdXJyICsgZHJvcF07CiAgICAgICAgaWYgKGxlZnQgPD0gMCkgeyBicmVhazsgfQogICAgICAgIGN1cnIrKzsKICAgICAgICBsZWZ0IDw8PSAxOwogICAgICB9CgogICAgICAvKiBjaGVjayBmb3IgZW5vdWdoIHNwYWNlICovCiAgICAgIHVzZWQgKz0gMSA8PCBjdXJyOwogICAgICBpZiAoKHR5cGUgPT09IExFTlMgJiYgdXNlZCA+IEVOT1VHSF9MRU5TKSB8fAogICAgICAgICh0eXBlID09PSBESVNUUyAmJiB1c2VkID4gRU5PVUdIX0RJU1RTKSkgewogICAgICAgIHJldHVybiAxOwogICAgICB9CgogICAgICAvKiBwb2ludCBlbnRyeSBpbiByb290IHRhYmxlIHRvIHN1Yi10YWJsZSAqLwogICAgICBsb3cgPSBodWZmICYgbWFzazsKICAgICAgLyp0YWJsZS5vcFtsb3ddID0gY3VycjsKICAgICAgdGFibGUuYml0c1tsb3ddID0gcm9vdDsKICAgICAgdGFibGUudmFsW2xvd10gPSBuZXh0IC0gb3B0cy50YWJsZV9pbmRleDsqLwogICAgICB0YWJsZVtsb3ddID0gKHJvb3QgPDwgMjQpIHwgKGN1cnIgPDwgMTYpIHwgKG5leHQgLSB0YWJsZV9pbmRleCkgfDA7CiAgICB9CiAgfQoKICAvKiBmaWxsIGluIHJlbWFpbmluZyB0YWJsZSBlbnRyeSBpZiBjb2RlIGlzIGluY29tcGxldGUgKGd1YXJhbnRlZWQgdG8gaGF2ZQogICBhdCBtb3N0IG9uZSByZW1haW5pbmcgZW50cnksIHNpbmNlIGlmIHRoZSBjb2RlIGlzIGluY29tcGxldGUsIHRoZQogICBtYXhpbXVtIGNvZGUgbGVuZ3RoIHRoYXQgd2FzIGFsbG93ZWQgdG8gZ2V0IHRoaXMgZmFyIGlzIG9uZSBiaXQpICovCiAgaWYgKGh1ZmYgIT09IDApIHsKICAgIC8vdGFibGUub3BbbmV4dCArIGh1ZmZdID0gNjQ7ICAgICAgICAgICAgLyogaW52YWxpZCBjb2RlIG1hcmtlciAqLwogICAgLy90YWJsZS5iaXRzW25leHQgKyBodWZmXSA9IGxlbiAtIGRyb3A7CiAgICAvL3RhYmxlLnZhbFtuZXh0ICsgaHVmZl0gPSAwOwogICAgdGFibGVbbmV4dCArIGh1ZmZdID0gKChsZW4gLSBkcm9wKSA8PCAyNCkgfCAoNjQgPDwgMTYpIHwwOwogIH0KCiAgLyogc2V0IHJldHVybiBwYXJhbWV0ZXJzICovCiAgLy9vcHRzLnRhYmxlX2luZGV4ICs9IHVzZWQ7CiAgb3B0cy5iaXRzID0gcm9vdDsKICByZXR1cm4gMDsKfTsKCgovKioqLyB9KSwKLyogMTYwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgovLyAoQykgMTk5NS0yMDEzIEplYW4tbG91cCBHYWlsbHkgYW5kIE1hcmsgQWRsZXIKLy8gKEMpIDIwMTQtMjAxNyBWaXRhbHkgUHV6cmluIGFuZCBBbmRyZXkgVHVwaXRzaW4KLy8KLy8gVGhpcyBzb2Z0d2FyZSBpcyBwcm92aWRlZCAnYXMtaXMnLCB3aXRob3V0IGFueSBleHByZXNzIG9yIGltcGxpZWQKLy8gd2FycmFudHkuIEluIG5vIGV2ZW50IHdpbGwgdGhlIGF1dGhvcnMgYmUgaGVsZCBsaWFibGUgZm9yIGFueSBkYW1hZ2VzCi8vIGFyaXNpbmcgZnJvbSB0aGUgdXNlIG9mIHRoaXMgc29mdHdhcmUuCi8vCi8vIFBlcm1pc3Npb24gaXMgZ3JhbnRlZCB0byBhbnlvbmUgdG8gdXNlIHRoaXMgc29mdHdhcmUgZm9yIGFueSBwdXJwb3NlLAovLyBpbmNsdWRpbmcgY29tbWVyY2lhbCBhcHBsaWNhdGlvbnMsIGFuZCB0byBhbHRlciBpdCBhbmQgcmVkaXN0cmlidXRlIGl0Ci8vIGZyZWVseSwgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIHJlc3RyaWN0aW9uczoKLy8KLy8gMS4gVGhlIG9yaWdpbiBvZiB0aGlzIHNvZnR3YXJlIG11c3Qgbm90IGJlIG1pc3JlcHJlc2VudGVkOyB5b3UgbXVzdCBub3QKLy8gICBjbGFpbSB0aGF0IHlvdSB3cm90ZSB0aGUgb3JpZ2luYWwgc29mdHdhcmUuIElmIHlvdSB1c2UgdGhpcyBzb2Z0d2FyZQovLyAgIGluIGEgcHJvZHVjdCwgYW4gYWNrbm93bGVkZ21lbnQgaW4gdGhlIHByb2R1Y3QgZG9jdW1lbnRhdGlvbiB3b3VsZCBiZQovLyAgIGFwcHJlY2lhdGVkIGJ1dCBpcyBub3QgcmVxdWlyZWQuCi8vIDIuIEFsdGVyZWQgc291cmNlIHZlcnNpb25zIG11c3QgYmUgcGxhaW5seSBtYXJrZWQgYXMgc3VjaCwgYW5kIG11c3Qgbm90IGJlCi8vICAgbWlzcmVwcmVzZW50ZWQgYXMgYmVpbmcgdGhlIG9yaWdpbmFsIHNvZnR3YXJlLgovLyAzLiBUaGlzIG5vdGljZSBtYXkgbm90IGJlIHJlbW92ZWQgb3IgYWx0ZXJlZCBmcm9tIGFueSBzb3VyY2UgZGlzdHJpYnV0aW9uLgoKbW9kdWxlLmV4cG9ydHMgPSB7CgogIC8qIEFsbG93ZWQgZmx1c2ggdmFsdWVzOyBzZWUgZGVmbGF0ZSgpIGFuZCBpbmZsYXRlKCkgYmVsb3cgZm9yIGRldGFpbHMgKi8KICBaX05PX0ZMVVNIOiAgICAgICAgIDAsCiAgWl9QQVJUSUFMX0ZMVVNIOiAgICAxLAogIFpfU1lOQ19GTFVTSDogICAgICAgMiwKICBaX0ZVTExfRkxVU0g6ICAgICAgIDMsCiAgWl9GSU5JU0g6ICAgICAgICAgICA0LAogIFpfQkxPQ0s6ICAgICAgICAgICAgNSwKICBaX1RSRUVTOiAgICAgICAgICAgIDYsCgogIC8qIFJldHVybiBjb2RlcyBmb3IgdGhlIGNvbXByZXNzaW9uL2RlY29tcHJlc3Npb24gZnVuY3Rpb25zLiBOZWdhdGl2ZSB2YWx1ZXMKICAqIGFyZSBlcnJvcnMsIHBvc2l0aXZlIHZhbHVlcyBhcmUgdXNlZCBmb3Igc3BlY2lhbCBidXQgbm9ybWFsIGV2ZW50cy4KICAqLwogIFpfT0s6ICAgICAgICAgICAgICAgMCwKICBaX1NUUkVBTV9FTkQ6ICAgICAgIDEsCiAgWl9ORUVEX0RJQ1Q6ICAgICAgICAyLAogIFpfRVJSTk86ICAgICAgICAgICAtMSwKICBaX1NUUkVBTV9FUlJPUjogICAgLTIsCiAgWl9EQVRBX0VSUk9SOiAgICAgIC0zLAogIC8vWl9NRU1fRVJST1I6ICAgICAtNCwKICBaX0JVRl9FUlJPUjogICAgICAgLTUsCiAgLy9aX1ZFUlNJT05fRVJST1I6IC02LAoKICAvKiBjb21wcmVzc2lvbiBsZXZlbHMgKi8KICBaX05PX0NPTVBSRVNTSU9OOiAgICAgICAgIDAsCiAgWl9CRVNUX1NQRUVEOiAgICAgICAgICAgICAxLAogIFpfQkVTVF9DT01QUkVTU0lPTjogICAgICAgOSwKICBaX0RFRkFVTFRfQ09NUFJFU1NJT046ICAgLTEsCgoKICBaX0ZJTFRFUkVEOiAgICAgICAgICAgICAgIDEsCiAgWl9IVUZGTUFOX09OTFk6ICAgICAgICAgICAyLAogIFpfUkxFOiAgICAgICAgICAgICAgICAgICAgMywKICBaX0ZJWEVEOiAgICAgICAgICAgICAgICAgIDQsCiAgWl9ERUZBVUxUX1NUUkFURUdZOiAgICAgICAwLAoKICAvKiBQb3NzaWJsZSB2YWx1ZXMgb2YgdGhlIGRhdGFfdHlwZSBmaWVsZCAodGhvdWdoIHNlZSBpbmZsYXRlKCkpICovCiAgWl9CSU5BUlk6ICAgICAgICAgICAgICAgICAwLAogIFpfVEVYVDogICAgICAgICAgICAgICAgICAgMSwKICAvL1pfQVNDSUk6ICAgICAgICAgICAgICAgIDEsIC8vID0gWl9URVhUIChkZXByZWNhdGVkKQogIFpfVU5LTk9XTjogICAgICAgICAgICAgICAgMiwKCiAgLyogVGhlIGRlZmxhdGUgY29tcHJlc3Npb24gbWV0aG9kICovCiAgWl9ERUZMQVRFRDogICAgICAgICAgICAgICA4CiAgLy9aX05VTEw6ICAgICAgICAgICAgICAgICBudWxsIC8vIFVzZSAtMSBvciBudWxsIGlubGluZSwgZGVwZW5kaW5nIG9uIHZhciB0eXBlCn07CgoKLyoqKi8gfSksCi8qIDE2MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgoKLyoKUERGUGFnZSAtIHJlcHJlc2VudHMgYSBzaW5nbGUgcGFnZSBpbiB0aGUgUERGIGRvY3VtZW50CkJ5IERldm9uIEdvdmV0dAogKi8KCihmdW5jdGlvbigpIHsKICB2YXIgUERGUGFnZTsKCiAgUERGUGFnZSA9IChmdW5jdGlvbigpIHsKICAgIHZhciBERUZBVUxUX01BUkdJTlMsIFNJWkVTOwoKICAgIGZ1bmN0aW9uIFBERlBhZ2UoZG9jdW1lbnQsIG9wdGlvbnMpIHsKICAgICAgdmFyIGRpbWVuc2lvbnM7CiAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICB0aGlzLnNpemUgPSBvcHRpb25zLnNpemUgfHwgJ2xldHRlcic7CiAgICAgIHRoaXMubGF5b3V0ID0gb3B0aW9ucy5sYXlvdXQgfHwgJ3BvcnRyYWl0JzsKICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm1hcmdpbiA9PT0gJ251bWJlcicpIHsKICAgICAgICB0aGlzLm1hcmdpbnMgPSB7CiAgICAgICAgICB0b3A6IG9wdGlvbnMubWFyZ2luLAogICAgICAgICAgbGVmdDogb3B0aW9ucy5tYXJnaW4sCiAgICAgICAgICBib3R0b206IG9wdGlvbnMubWFyZ2luLAogICAgICAgICAgcmlnaHQ6IG9wdGlvbnMubWFyZ2luCiAgICAgICAgfTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLm1hcmdpbnMgPSBvcHRpb25zLm1hcmdpbnMgfHwgREVGQVVMVF9NQVJHSU5TOwogICAgICB9CiAgICAgIGRpbWVuc2lvbnMgPSBBcnJheS5pc0FycmF5KHRoaXMuc2l6ZSkgPyB0aGlzLnNpemUgOiBTSVpFU1t0aGlzLnNpemUudG9VcHBlckNhc2UoKV07CiAgICAgIHRoaXMud2lkdGggPSBkaW1lbnNpb25zW3RoaXMubGF5b3V0ID09PSAncG9ydHJhaXQnID8gMCA6IDFdOwogICAgICB0aGlzLmhlaWdodCA9IGRpbWVuc2lvbnNbdGhpcy5sYXlvdXQgPT09ICdwb3J0cmFpdCcgPyAxIDogMF07CiAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuZG9jdW1lbnQucmVmKCk7CiAgICAgIHRoaXMucmVzb3VyY2VzID0gdGhpcy5kb2N1bWVudC5yZWYoewogICAgICAgIFByb2NTZXQ6IFsnUERGJywgJ1RleHQnLCAnSW1hZ2VCJywgJ0ltYWdlQycsICdJbWFnZUknXQogICAgICB9KTsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGhpcywgewogICAgICAgIGZvbnRzOiB7CiAgICAgICAgICBnZXQ6IChmdW5jdGlvbihfdGhpcykgewogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFyIGJhc2U7CiAgICAgICAgICAgICAgcmV0dXJuIChiYXNlID0gX3RoaXMucmVzb3VyY2VzLmRhdGEpLkZvbnQgIT0gbnVsbCA/IGJhc2UuRm9udCA6IGJhc2UuRm9udCA9IHt9OwogICAgICAgICAgICB9OwogICAgICAgICAgfSkodGhpcykKICAgICAgICB9LAogICAgICAgIHhvYmplY3RzOiB7CiAgICAgICAgICBnZXQ6IChmdW5jdGlvbihfdGhpcykgewogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFyIGJhc2U7CiAgICAgICAgICAgICAgcmV0dXJuIChiYXNlID0gX3RoaXMucmVzb3VyY2VzLmRhdGEpLlhPYmplY3QgIT0gbnVsbCA/IGJhc2UuWE9iamVjdCA6IGJhc2UuWE9iamVjdCA9IHt9OwogICAgICAgICAgICB9OwogICAgICAgICAgfSkodGhpcykKICAgICAgICB9LAogICAgICAgIGV4dF9nc3RhdGVzOiB7CiAgICAgICAgICBnZXQ6IChmdW5jdGlvbihfdGhpcykgewogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFyIGJhc2U7CiAgICAgICAgICAgICAgcmV0dXJuIChiYXNlID0gX3RoaXMucmVzb3VyY2VzLmRhdGEpLkV4dEdTdGF0ZSAhPSBudWxsID8gYmFzZS5FeHRHU3RhdGUgOiBiYXNlLkV4dEdTdGF0ZSA9IHt9OwogICAgICAgICAgICB9OwogICAgICAgICAgfSkodGhpcykKICAgICAgICB9LAogICAgICAgIHBhdHRlcm5zOiB7CiAgICAgICAgICBnZXQ6IChmdW5jdGlvbihfdGhpcykgewogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFyIGJhc2U7CiAgICAgICAgICAgICAgcmV0dXJuIChiYXNlID0gX3RoaXMucmVzb3VyY2VzLmRhdGEpLlBhdHRlcm4gIT0gbnVsbCA/IGJhc2UuUGF0dGVybiA6IGJhc2UuUGF0dGVybiA9IHt9OwogICAgICAgICAgICB9OwogICAgICAgICAgfSkodGhpcykKICAgICAgICB9LAogICAgICAgIGFubm90YXRpb25zOiB7CiAgICAgICAgICBnZXQ6IChmdW5jdGlvbihfdGhpcykgewogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFyIGJhc2U7CiAgICAgICAgICAgICAgcmV0dXJuIChiYXNlID0gX3RoaXMuZGljdGlvbmFyeS5kYXRhKS5Bbm5vdHMgIT0gbnVsbCA/IGJhc2UuQW5ub3RzIDogYmFzZS5Bbm5vdHMgPSBbXTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pKHRoaXMpCiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5kaWN0aW9uYXJ5ID0gdGhpcy5kb2N1bWVudC5yZWYoewogICAgICAgIFR5cGU6ICdQYWdlJywKICAgICAgICBQYXJlbnQ6IHRoaXMuZG9jdW1lbnQuX3Jvb3QuZGF0YS5QYWdlcywKICAgICAgICBNZWRpYUJveDogWzAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0XSwKICAgICAgICBDb250ZW50czogdGhpcy5jb250ZW50LAogICAgICAgIFJlc291cmNlczogdGhpcy5yZXNvdXJjZXMKICAgICAgfSk7CiAgICB9CgogICAgUERGUGFnZS5wcm90b3R5cGUubWF4WSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy5oZWlnaHQgLSB0aGlzLm1hcmdpbnMuYm90dG9tOwogICAgfTsKCiAgICBQREZQYWdlLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGNodW5rKSB7CiAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQud3JpdGUoY2h1bmspOwogICAgfTsKCiAgICBQREZQYWdlLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5kaWN0aW9uYXJ5LmVuZCgpOwogICAgICB0aGlzLnJlc291cmNlcy5lbmQoKTsKICAgICAgcmV0dXJuIHRoaXMuY29udGVudC5lbmQoKTsKICAgIH07CgogICAgREVGQVVMVF9NQVJHSU5TID0gewogICAgICB0b3A6IDcyLAogICAgICBsZWZ0OiA3MiwKICAgICAgYm90dG9tOiA3MiwKICAgICAgcmlnaHQ6IDcyCiAgICB9OwoKICAgIFNJWkVTID0gewogICAgICAnNEEwJzogWzQ3NjcuODcsIDY3NDAuNzldLAogICAgICAnMkEwJzogWzMzNzAuMzksIDQ3NjcuODddLAogICAgICBBMDogWzIzODMuOTQsIDMzNzAuMzldLAogICAgICBBMTogWzE2ODMuNzgsIDIzODMuOTRdLAogICAgICBBMjogWzExOTAuNTUsIDE2ODMuNzhdLAogICAgICBBMzogWzg0MS44OSwgMTE5MC41NV0sCiAgICAgIEE0OiBbNTk1LjI4LCA4NDEuODldLAogICAgICBBNTogWzQxOS41MywgNTk1LjI4XSwKICAgICAgQTY6IFsyOTcuNjQsIDQxOS41M10sCiAgICAgIEE3OiBbMjA5Ljc2LCAyOTcuNjRdLAogICAgICBBODogWzE0Ny40MCwgMjA5Ljc2XSwKICAgICAgQTk6IFsxMDQuODgsIDE0Ny40MF0sCiAgICAgIEExMDogWzczLjcwLCAxMDQuODhdLAogICAgICBCMDogWzI4MzQuNjUsIDQwMDguMTldLAogICAgICBCMTogWzIwMDQuMDksIDI4MzQuNjVdLAogICAgICBCMjogWzE0MTcuMzIsIDIwMDQuMDldLAogICAgICBCMzogWzEwMDAuNjMsIDE0MTcuMzJdLAogICAgICBCNDogWzcwOC42NiwgMTAwMC42M10sCiAgICAgIEI1OiBbNDk4LjkwLCA3MDguNjZdLAogICAgICBCNjogWzM1NC4zMywgNDk4LjkwXSwKICAgICAgQjc6IFsyNDkuNDUsIDM1NC4zM10sCiAgICAgIEI4OiBbMTc1Ljc1LCAyNDkuNDVdLAogICAgICBCOTogWzEyNC43MiwgMTc1Ljc1XSwKICAgICAgQjEwOiBbODcuODcsIDEyNC43Ml0sCiAgICAgIEMwOiBbMjU5OS4zNywgMzY3Ni41NF0sCiAgICAgIEMxOiBbMTgzNi44NSwgMjU5OS4zN10sCiAgICAgIEMyOiBbMTI5OC4yNywgMTgzNi44NV0sCiAgICAgIEMzOiBbOTE4LjQzLCAxMjk4LjI3XSwKICAgICAgQzQ6IFs2NDkuMTMsIDkxOC40M10sCiAgICAgIEM1OiBbNDU5LjIxLCA2NDkuMTNdLAogICAgICBDNjogWzMyMy4xNSwgNDU5LjIxXSwKICAgICAgQzc6IFsyMjkuNjEsIDMyMy4xNV0sCiAgICAgIEM4OiBbMTYxLjU3LCAyMjkuNjFdLAogICAgICBDOTogWzExMy4zOSwgMTYxLjU3XSwKICAgICAgQzEwOiBbNzkuMzcsIDExMy4zOV0sCiAgICAgIFJBMDogWzI0MzcuODAsIDM0NTguMjddLAogICAgICBSQTE6IFsxNzI5LjEzLCAyNDM3LjgwXSwKICAgICAgUkEyOiBbMTIxOC45MCwgMTcyOS4xM10sCiAgICAgIFJBMzogWzg2NC41NywgMTIxOC45MF0sCiAgICAgIFJBNDogWzYwOS40NSwgODY0LjU3XSwKICAgICAgU1JBMDogWzI1NTEuMTgsIDM2MjguMzVdLAogICAgICBTUkExOiBbMTgxNC4xNywgMjU1MS4xOF0sCiAgICAgIFNSQTI6IFsxMjc1LjU5LCAxODE0LjE3XSwKICAgICAgU1JBMzogWzkwNy4wOSwgMTI3NS41OV0sCiAgICAgIFNSQTQ6IFs2MzcuODAsIDkwNy4wOV0sCiAgICAgIEVYRUNVVElWRTogWzUyMS44NiwgNzU2LjAwXSwKICAgICAgRk9MSU86IFs2MTIuMDAsIDkzNi4wMF0sCiAgICAgIExFR0FMOiBbNjEyLjAwLCAxMDA4LjAwXSwKICAgICAgTEVUVEVSOiBbNjEyLjAwLCA3OTIuMDBdLAogICAgICBUQUJMT0lEOiBbNzkyLjAwLCAxMjI0LjAwXQogICAgfTsKCiAgICByZXR1cm4gUERGUGFnZTsKCiAgfSkoKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBQREZQYWdlOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTYyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CihmdW5jdGlvbigpIHsKICB2YXIgUERGR3JhZGllbnQsIFBERkxpbmVhckdyYWRpZW50LCBQREZSYWRpYWxHcmFkaWVudCwgbmFtZWRDb2xvcnMsIHJlZjsKCiAgcmVmID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNjMpLCBQREZHcmFkaWVudCA9IHJlZi5QREZHcmFkaWVudCwgUERGTGluZWFyR3JhZGllbnQgPSByZWYuUERGTGluZWFyR3JhZGllbnQsIFBERlJhZGlhbEdyYWRpZW50ID0gcmVmLlBERlJhZGlhbEdyYWRpZW50OwoKICBtb2R1bGUuZXhwb3J0cyA9IHsKICAgIGluaXRDb2xvcjogZnVuY3Rpb24oKSB7CiAgICAgIHRoaXMuX29wYWNpdHlSZWdpc3RyeSA9IHt9OwogICAgICB0aGlzLl9vcGFjaXR5Q291bnQgPSAwOwogICAgICByZXR1cm4gdGhpcy5fZ3JhZENvdW50ID0gMDsKICAgIH0sCiAgICBfbm9ybWFsaXplQ29sb3I6IGZ1bmN0aW9uKGNvbG9yKSB7CiAgICAgIHZhciBoZXgsIHBhcnQ7CiAgICAgIGlmIChjb2xvciBpbnN0YW5jZW9mIFBERkdyYWRpZW50KSB7CiAgICAgICAgcmV0dXJuIGNvbG9yOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgY29sb3IgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgaWYgKGNvbG9yLmNoYXJBdCgwKSA9PT0gJyMnKSB7CiAgICAgICAgICBpZiAoY29sb3IubGVuZ3RoID09PSA0KSB7CiAgICAgICAgICAgIGNvbG9yID0gY29sb3IucmVwbGFjZSgvIyhbMC05QS1GXSkoWzAtOUEtRl0pKFswLTlBLUZdKS9pLCAiIyQxJDEkMiQyJDMkMyIpOwogICAgICAgICAgfQogICAgICAgICAgaGV4ID0gcGFyc2VJbnQoY29sb3Iuc2xpY2UoMSksIDE2KTsKICAgICAgICAgIGNvbG9yID0gW2hleCA+PiAxNiwgaGV4ID4+IDggJiAweGZmLCBoZXggJiAweGZmXTsKICAgICAgICB9IGVsc2UgaWYgKG5hbWVkQ29sb3JzW2NvbG9yXSkgewogICAgICAgICAgY29sb3IgPSBuYW1lZENvbG9yc1tjb2xvcl07CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSkgewogICAgICAgIGlmIChjb2xvci5sZW5ndGggPT09IDMpIHsKICAgICAgICAgIGNvbG9yID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgaSwgbGVuLCByZXN1bHRzOwogICAgICAgICAgICByZXN1bHRzID0gW107CiAgICAgICAgICAgIGZvciAoaSA9IDAsIGxlbiA9IGNvbG9yLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICAgICAgcGFydCA9IGNvbG9yW2ldOwogICAgICAgICAgICAgIHJlc3VsdHMucHVzaChwYXJ0IC8gMjU1KTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgICAgIH0pKCk7CiAgICAgICAgfSBlbHNlIGlmIChjb2xvci5sZW5ndGggPT09IDQpIHsKICAgICAgICAgIGNvbG9yID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgaSwgbGVuLCByZXN1bHRzOwogICAgICAgICAgICByZXN1bHRzID0gW107CiAgICAgICAgICAgIGZvciAoaSA9IDAsIGxlbiA9IGNvbG9yLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICAgICAgcGFydCA9IGNvbG9yW2ldOwogICAgICAgICAgICAgIHJlc3VsdHMucHVzaChwYXJ0IC8gMTAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgICAgIH0pKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb2xvcjsKICAgICAgfQogICAgICByZXR1cm4gbnVsbDsKICAgIH0sCiAgICBfc2V0Q29sb3I6IGZ1bmN0aW9uKGNvbG9yLCBzdHJva2UpIHsKICAgICAgdmFyIG9wLCBzcGFjZTsKICAgICAgY29sb3IgPSB0aGlzLl9ub3JtYWxpemVDb2xvcihjb2xvcik7CiAgICAgIGlmICghY29sb3IpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgb3AgPSBzdHJva2UgPyAnU0NOJyA6ICdzY24nOwogICAgICBpZiAoY29sb3IgaW5zdGFuY2VvZiBQREZHcmFkaWVudCkgewogICAgICAgIHRoaXMuX3NldENvbG9yU3BhY2UoJ1BhdHRlcm4nLCBzdHJva2UpOwogICAgICAgIGNvbG9yLmFwcGx5KG9wKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzcGFjZSA9IGNvbG9yLmxlbmd0aCA9PT0gNCA/ICdEZXZpY2VDTVlLJyA6ICdEZXZpY2VSR0InOwogICAgICAgIHRoaXMuX3NldENvbG9yU3BhY2Uoc3BhY2UsIHN0cm9rZSk7CiAgICAgICAgY29sb3IgPSBjb2xvci5qb2luKCcgJyk7CiAgICAgICAgdGhpcy5hZGRDb250ZW50KGNvbG9yICsgIiAiICsgb3ApOwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfSwKICAgIF9zZXRDb2xvclNwYWNlOiBmdW5jdGlvbihzcGFjZSwgc3Ryb2tlKSB7CiAgICAgIHZhciBvcDsKICAgICAgb3AgPSBzdHJva2UgPyAnQ1MnIDogJ2NzJzsKICAgICAgcmV0dXJuIHRoaXMuYWRkQ29udGVudCgiLyIgKyBzcGFjZSArICIgIiArIG9wKTsKICAgIH0sCiAgICBmaWxsQ29sb3I6IGZ1bmN0aW9uKGNvbG9yLCBvcGFjaXR5KSB7CiAgICAgIHZhciBzZXQ7CiAgICAgIHNldCA9IHRoaXMuX3NldENvbG9yKGNvbG9yLCBmYWxzZSk7CiAgICAgIGlmIChzZXQpIHsKICAgICAgICB0aGlzLmZpbGxPcGFjaXR5KG9wYWNpdHkpOwogICAgICB9CiAgICAgIHRoaXMuX2ZpbGxDb2xvciA9IFtjb2xvciwgb3BhY2l0eV07CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIHN0cm9rZUNvbG9yOiBmdW5jdGlvbihjb2xvciwgb3BhY2l0eSkgewogICAgICB2YXIgc2V0OwogICAgICBzZXQgPSB0aGlzLl9zZXRDb2xvcihjb2xvciwgdHJ1ZSk7CiAgICAgIGlmIChzZXQpIHsKICAgICAgICB0aGlzLnN0cm9rZU9wYWNpdHkob3BhY2l0eSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXM7CiAgICB9LAogICAgb3BhY2l0eTogZnVuY3Rpb24ob3BhY2l0eSkgewogICAgICB0aGlzLl9kb09wYWNpdHkob3BhY2l0eSwgb3BhY2l0eSk7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIGZpbGxPcGFjaXR5OiBmdW5jdGlvbihvcGFjaXR5KSB7CiAgICAgIHRoaXMuX2RvT3BhY2l0eShvcGFjaXR5LCBudWxsKTsKICAgICAgcmV0dXJuIHRoaXM7CiAgICB9LAogICAgc3Ryb2tlT3BhY2l0eTogZnVuY3Rpb24ob3BhY2l0eSkgewogICAgICB0aGlzLl9kb09wYWNpdHkobnVsbCwgb3BhY2l0eSk7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIF9kb09wYWNpdHk6IGZ1bmN0aW9uKGZpbGxPcGFjaXR5LCBzdHJva2VPcGFjaXR5KSB7CiAgICAgIHZhciBkaWN0aW9uYXJ5LCBpZCwga2V5LCBuYW1lLCByZWYxOwogICAgICBpZiAoISgoZmlsbE9wYWNpdHkgIT0gbnVsbCkgfHwgKHN0cm9rZU9wYWNpdHkgIT0gbnVsbCkpKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChmaWxsT3BhY2l0eSAhPSBudWxsKSB7CiAgICAgICAgZmlsbE9wYWNpdHkgPSBNYXRoLm1heCgwLCBNYXRoLm1pbigxLCBmaWxsT3BhY2l0eSkpOwogICAgICB9CiAgICAgIGlmIChzdHJva2VPcGFjaXR5ICE9IG51bGwpIHsKICAgICAgICBzdHJva2VPcGFjaXR5ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMSwgc3Ryb2tlT3BhY2l0eSkpOwogICAgICB9CiAgICAgIGtleSA9IGZpbGxPcGFjaXR5ICsgIl8iICsgc3Ryb2tlT3BhY2l0eTsKICAgICAgaWYgKHRoaXMuX29wYWNpdHlSZWdpc3RyeVtrZXldKSB7CiAgICAgICAgcmVmMSA9IHRoaXMuX29wYWNpdHlSZWdpc3RyeVtrZXldLCBkaWN0aW9uYXJ5ID0gcmVmMVswXSwgbmFtZSA9IHJlZjFbMV07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZGljdGlvbmFyeSA9IHsKICAgICAgICAgIFR5cGU6ICdFeHRHU3RhdGUnCiAgICAgICAgfTsKICAgICAgICBpZiAoZmlsbE9wYWNpdHkgIT0gbnVsbCkgewogICAgICAgICAgZGljdGlvbmFyeS5jYSA9IGZpbGxPcGFjaXR5OwogICAgICAgIH0KICAgICAgICBpZiAoc3Ryb2tlT3BhY2l0eSAhPSBudWxsKSB7CiAgICAgICAgICBkaWN0aW9uYXJ5LkNBID0gc3Ryb2tlT3BhY2l0eTsKICAgICAgICB9CiAgICAgICAgZGljdGlvbmFyeSA9IHRoaXMucmVmKGRpY3Rpb25hcnkpOwogICAgICAgIGRpY3Rpb25hcnkuZW5kKCk7CiAgICAgICAgaWQgPSArK3RoaXMuX29wYWNpdHlDb3VudDsKICAgICAgICBuYW1lID0gIkdzIiArIGlkOwogICAgICAgIHRoaXMuX29wYWNpdHlSZWdpc3RyeVtrZXldID0gW2RpY3Rpb25hcnksIG5hbWVdOwogICAgICB9CiAgICAgIHRoaXMucGFnZS5leHRfZ3N0YXRlc1tuYW1lXSA9IGRpY3Rpb25hcnk7CiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoIi8iICsgbmFtZSArICIgZ3MiKTsKICAgIH0sCiAgICBsaW5lYXJHcmFkaWVudDogZnVuY3Rpb24oeDEsIHkxLCB4MiwgeTIpIHsKICAgICAgcmV0dXJuIG5ldyBQREZMaW5lYXJHcmFkaWVudCh0aGlzLCB4MSwgeTEsIHgyLCB5Mik7CiAgICB9LAogICAgcmFkaWFsR3JhZGllbnQ6IGZ1bmN0aW9uKHgxLCB5MSwgcjEsIHgyLCB5MiwgcjIpIHsKICAgICAgcmV0dXJuIG5ldyBQREZSYWRpYWxHcmFkaWVudCh0aGlzLCB4MSwgeTEsIHIxLCB4MiwgeTIsIHIyKTsKICAgIH0KICB9OwoKICBuYW1lZENvbG9ycyA9IHsKICAgIGFsaWNlYmx1ZTogWzI0MCwgMjQ4LCAyNTVdLAogICAgYW50aXF1ZXdoaXRlOiBbMjUwLCAyMzUsIDIxNV0sCiAgICBhcXVhOiBbMCwgMjU1LCAyNTVdLAogICAgYXF1YW1hcmluZTogWzEyNywgMjU1LCAyMTJdLAogICAgYXp1cmU6IFsyNDAsIDI1NSwgMjU1XSwKICAgIGJlaWdlOiBbMjQ1LCAyNDUsIDIyMF0sCiAgICBiaXNxdWU6IFsyNTUsIDIyOCwgMTk2XSwKICAgIGJsYWNrOiBbMCwgMCwgMF0sCiAgICBibGFuY2hlZGFsbW9uZDogWzI1NSwgMjM1LCAyMDVdLAogICAgYmx1ZTogWzAsIDAsIDI1NV0sCiAgICBibHVldmlvbGV0OiBbMTM4LCA0MywgMjI2XSwKICAgIGJyb3duOiBbMTY1LCA0MiwgNDJdLAogICAgYnVybHl3b29kOiBbMjIyLCAxODQsIDEzNV0sCiAgICBjYWRldGJsdWU6IFs5NSwgMTU4LCAxNjBdLAogICAgY2hhcnRyZXVzZTogWzEyNywgMjU1LCAwXSwKICAgIGNob2NvbGF0ZTogWzIxMCwgMTA1LCAzMF0sCiAgICBjb3JhbDogWzI1NSwgMTI3LCA4MF0sCiAgICBjb3JuZmxvd2VyYmx1ZTogWzEwMCwgMTQ5LCAyMzddLAogICAgY29ybnNpbGs6IFsyNTUsIDI0OCwgMjIwXSwKICAgIGNyaW1zb246IFsyMjAsIDIwLCA2MF0sCiAgICBjeWFuOiBbMCwgMjU1LCAyNTVdLAogICAgZGFya2JsdWU6IFswLCAwLCAxMzldLAogICAgZGFya2N5YW46IFswLCAxMzksIDEzOV0sCiAgICBkYXJrZ29sZGVucm9kOiBbMTg0LCAxMzQsIDExXSwKICAgIGRhcmtncmF5OiBbMTY5LCAxNjksIDE2OV0sCiAgICBkYXJrZ3JlZW46IFswLCAxMDAsIDBdLAogICAgZGFya2dyZXk6IFsxNjksIDE2OSwgMTY5XSwKICAgIGRhcmtraGFraTogWzE4OSwgMTgzLCAxMDddLAogICAgZGFya21hZ2VudGE6IFsxMzksIDAsIDEzOV0sCiAgICBkYXJrb2xpdmVncmVlbjogWzg1LCAxMDcsIDQ3XSwKICAgIGRhcmtvcmFuZ2U6IFsyNTUsIDE0MCwgMF0sCiAgICBkYXJrb3JjaGlkOiBbMTUzLCA1MCwgMjA0XSwKICAgIGRhcmtyZWQ6IFsxMzksIDAsIDBdLAogICAgZGFya3NhbG1vbjogWzIzMywgMTUwLCAxMjJdLAogICAgZGFya3NlYWdyZWVuOiBbMTQzLCAxODgsIDE0M10sCiAgICBkYXJrc2xhdGVibHVlOiBbNzIsIDYxLCAxMzldLAogICAgZGFya3NsYXRlZ3JheTogWzQ3LCA3OSwgNzldLAogICAgZGFya3NsYXRlZ3JleTogWzQ3LCA3OSwgNzldLAogICAgZGFya3R1cnF1b2lzZTogWzAsIDIwNiwgMjA5XSwKICAgIGRhcmt2aW9sZXQ6IFsxNDgsIDAsIDIxMV0sCiAgICBkZWVwcGluazogWzI1NSwgMjAsIDE0N10sCiAgICBkZWVwc2t5Ymx1ZTogWzAsIDE5MSwgMjU1XSwKICAgIGRpbWdyYXk6IFsxMDUsIDEwNSwgMTA1XSwKICAgIGRpbWdyZXk6IFsxMDUsIDEwNSwgMTA1XSwKICAgIGRvZGdlcmJsdWU6IFszMCwgMTQ0LCAyNTVdLAogICAgZmlyZWJyaWNrOiBbMTc4LCAzNCwgMzRdLAogICAgZmxvcmFsd2hpdGU6IFsyNTUsIDI1MCwgMjQwXSwKICAgIGZvcmVzdGdyZWVuOiBbMzQsIDEzOSwgMzRdLAogICAgZnVjaHNpYTogWzI1NSwgMCwgMjU1XSwKICAgIGdhaW5zYm9ybzogWzIyMCwgMjIwLCAyMjBdLAogICAgZ2hvc3R3aGl0ZTogWzI0OCwgMjQ4LCAyNTVdLAogICAgZ29sZDogWzI1NSwgMjE1LCAwXSwKICAgIGdvbGRlbnJvZDogWzIxOCwgMTY1LCAzMl0sCiAgICBncmF5OiBbMTI4LCAxMjgsIDEyOF0sCiAgICBncmV5OiBbMTI4LCAxMjgsIDEyOF0sCiAgICBncmVlbjogWzAsIDEyOCwgMF0sCiAgICBncmVlbnllbGxvdzogWzE3MywgMjU1LCA0N10sCiAgICBob25leWRldzogWzI0MCwgMjU1LCAyNDBdLAogICAgaG90cGluazogWzI1NSwgMTA1LCAxODBdLAogICAgaW5kaWFucmVkOiBbMjA1LCA5MiwgOTJdLAogICAgaW5kaWdvOiBbNzUsIDAsIDEzMF0sCiAgICBpdm9yeTogWzI1NSwgMjU1LCAyNDBdLAogICAga2hha2k6IFsyNDAsIDIzMCwgMTQwXSwKICAgIGxhdmVuZGVyOiBbMjMwLCAyMzAsIDI1MF0sCiAgICBsYXZlbmRlcmJsdXNoOiBbMjU1LCAyNDAsIDI0NV0sCiAgICBsYXduZ3JlZW46IFsxMjQsIDI1MiwgMF0sCiAgICBsZW1vbmNoaWZmb246IFsyNTUsIDI1MCwgMjA1XSwKICAgIGxpZ2h0Ymx1ZTogWzE3MywgMjE2LCAyMzBdLAogICAgbGlnaHRjb3JhbDogWzI0MCwgMTI4LCAxMjhdLAogICAgbGlnaHRjeWFuOiBbMjI0LCAyNTUsIDI1NV0sCiAgICBsaWdodGdvbGRlbnJvZHllbGxvdzogWzI1MCwgMjUwLCAyMTBdLAogICAgbGlnaHRncmF5OiBbMjExLCAyMTEsIDIxMV0sCiAgICBsaWdodGdyZWVuOiBbMTQ0LCAyMzgsIDE0NF0sCiAgICBsaWdodGdyZXk6IFsyMTEsIDIxMSwgMjExXSwKICAgIGxpZ2h0cGluazogWzI1NSwgMTgyLCAxOTNdLAogICAgbGlnaHRzYWxtb246IFsyNTUsIDE2MCwgMTIyXSwKICAgIGxpZ2h0c2VhZ3JlZW46IFszMiwgMTc4LCAxNzBdLAogICAgbGlnaHRza3libHVlOiBbMTM1LCAyMDYsIDI1MF0sCiAgICBsaWdodHNsYXRlZ3JheTogWzExOSwgMTM2LCAxNTNdLAogICAgbGlnaHRzbGF0ZWdyZXk6IFsxMTksIDEzNiwgMTUzXSwKICAgIGxpZ2h0c3RlZWxibHVlOiBbMTc2LCAxOTYsIDIyMl0sCiAgICBsaWdodHllbGxvdzogWzI1NSwgMjU1LCAyMjRdLAogICAgbGltZTogWzAsIDI1NSwgMF0sCiAgICBsaW1lZ3JlZW46IFs1MCwgMjA1LCA1MF0sCiAgICBsaW5lbjogWzI1MCwgMjQwLCAyMzBdLAogICAgbWFnZW50YTogWzI1NSwgMCwgMjU1XSwKICAgIG1hcm9vbjogWzEyOCwgMCwgMF0sCiAgICBtZWRpdW1hcXVhbWFyaW5lOiBbMTAyLCAyMDUsIDE3MF0sCiAgICBtZWRpdW1ibHVlOiBbMCwgMCwgMjA1XSwKICAgIG1lZGl1bW9yY2hpZDogWzE4NiwgODUsIDIxMV0sCiAgICBtZWRpdW1wdXJwbGU6IFsxNDcsIDExMiwgMjE5XSwKICAgIG1lZGl1bXNlYWdyZWVuOiBbNjAsIDE3OSwgMTEzXSwKICAgIG1lZGl1bXNsYXRlYmx1ZTogWzEyMywgMTA0LCAyMzhdLAogICAgbWVkaXVtc3ByaW5nZ3JlZW46IFswLCAyNTAsIDE1NF0sCiAgICBtZWRpdW10dXJxdW9pc2U6IFs3MiwgMjA5LCAyMDRdLAogICAgbWVkaXVtdmlvbGV0cmVkOiBbMTk5LCAyMSwgMTMzXSwKICAgIG1pZG5pZ2h0Ymx1ZTogWzI1LCAyNSwgMTEyXSwKICAgIG1pbnRjcmVhbTogWzI0NSwgMjU1LCAyNTBdLAogICAgbWlzdHlyb3NlOiBbMjU1LCAyMjgsIDIyNV0sCiAgICBtb2NjYXNpbjogWzI1NSwgMjI4LCAxODFdLAogICAgbmF2YWpvd2hpdGU6IFsyNTUsIDIyMiwgMTczXSwKICAgIG5hdnk6IFswLCAwLCAxMjhdLAogICAgb2xkbGFjZTogWzI1MywgMjQ1LCAyMzBdLAogICAgb2xpdmU6IFsxMjgsIDEyOCwgMF0sCiAgICBvbGl2ZWRyYWI6IFsxMDcsIDE0MiwgMzVdLAogICAgb3JhbmdlOiBbMjU1LCAxNjUsIDBdLAogICAgb3JhbmdlcmVkOiBbMjU1LCA2OSwgMF0sCiAgICBvcmNoaWQ6IFsyMTgsIDExMiwgMjE0XSwKICAgIHBhbGVnb2xkZW5yb2Q6IFsyMzgsIDIzMiwgMTcwXSwKICAgIHBhbGVncmVlbjogWzE1MiwgMjUxLCAxNTJdLAogICAgcGFsZXR1cnF1b2lzZTogWzE3NSwgMjM4LCAyMzhdLAogICAgcGFsZXZpb2xldHJlZDogWzIxOSwgMTEyLCAxNDddLAogICAgcGFwYXlhd2hpcDogWzI1NSwgMjM5LCAyMTNdLAogICAgcGVhY2hwdWZmOiBbMjU1LCAyMTgsIDE4NV0sCiAgICBwZXJ1OiBbMjA1LCAxMzMsIDYzXSwKICAgIHBpbms6IFsyNTUsIDE5MiwgMjAzXSwKICAgIHBsdW06IFsyMjEsIDE2MCwgMjIxXSwKICAgIHBvd2RlcmJsdWU6IFsxNzYsIDIyNCwgMjMwXSwKICAgIHB1cnBsZTogWzEyOCwgMCwgMTI4XSwKICAgIHJlZDogWzI1NSwgMCwgMF0sCiAgICByb3N5YnJvd246IFsxODgsIDE0MywgMTQzXSwKICAgIHJveWFsYmx1ZTogWzY1LCAxMDUsIDIyNV0sCiAgICBzYWRkbGVicm93bjogWzEzOSwgNjksIDE5XSwKICAgIHNhbG1vbjogWzI1MCwgMTI4LCAxMTRdLAogICAgc2FuZHlicm93bjogWzI0NCwgMTY0LCA5Nl0sCiAgICBzZWFncmVlbjogWzQ2LCAxMzksIDg3XSwKICAgIHNlYXNoZWxsOiBbMjU1LCAyNDUsIDIzOF0sCiAgICBzaWVubmE6IFsxNjAsIDgyLCA0NV0sCiAgICBzaWx2ZXI6IFsxOTIsIDE5MiwgMTkyXSwKICAgIHNreWJsdWU6IFsxMzUsIDIwNiwgMjM1XSwKICAgIHNsYXRlYmx1ZTogWzEwNiwgOTAsIDIwNV0sCiAgICBzbGF0ZWdyYXk6IFsxMTIsIDEyOCwgMTQ0XSwKICAgIHNsYXRlZ3JleTogWzExMiwgMTI4LCAxNDRdLAogICAgc25vdzogWzI1NSwgMjUwLCAyNTBdLAogICAgc3ByaW5nZ3JlZW46IFswLCAyNTUsIDEyN10sCiAgICBzdGVlbGJsdWU6IFs3MCwgMTMwLCAxODBdLAogICAgdGFuOiBbMjEwLCAxODAsIDE0MF0sCiAgICB0ZWFsOiBbMCwgMTI4LCAxMjhdLAogICAgdGhpc3RsZTogWzIxNiwgMTkxLCAyMTZdLAogICAgdG9tYXRvOiBbMjU1LCA5OSwgNzFdLAogICAgdHVycXVvaXNlOiBbNjQsIDIyNCwgMjA4XSwKICAgIHZpb2xldDogWzIzOCwgMTMwLCAyMzhdLAogICAgd2hlYXQ6IFsyNDUsIDIyMiwgMTc5XSwKICAgIHdoaXRlOiBbMjU1LCAyNTUsIDI1NV0sCiAgICB3aGl0ZXNtb2tlOiBbMjQ1LCAyNDUsIDI0NV0sCiAgICB5ZWxsb3c6IFsyNTUsIDI1NSwgMF0sCiAgICB5ZWxsb3dncmVlbjogWzE1NCwgMjA1LCA1MF0KICB9OwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTYzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CihmdW5jdGlvbigpIHsKICB2YXIgUERGR3JhZGllbnQsIFBERkxpbmVhckdyYWRpZW50LCBQREZSYWRpYWxHcmFkaWVudCwKICAgIGV4dGVuZCA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2YXIga2V5IGluIHBhcmVudCkgeyBpZiAoaGFzUHJvcC5jYWxsKHBhcmVudCwga2V5KSkgY2hpbGRba2V5XSA9IHBhcmVudFtrZXldOyB9IGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfSBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7IGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7IGNoaWxkLl9fc3VwZXJfXyA9IHBhcmVudC5wcm90b3R5cGU7IHJldHVybiBjaGlsZDsgfSwKICAgIGhhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eTsKCiAgUERGR3JhZGllbnQgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBQREZHcmFkaWVudChkb2MpIHsKICAgICAgdGhpcy5kb2MgPSBkb2M7CiAgICAgIHRoaXMuc3RvcHMgPSBbXTsKICAgICAgdGhpcy5lbWJlZGRlZCA9IGZhbHNlOwogICAgICB0aGlzLnRyYW5zZm9ybSA9IFsxLCAwLCAwLCAxLCAwLCAwXTsKICAgICAgdGhpcy5fY29sb3JTcGFjZSA9ICdEZXZpY2VSR0InOwogICAgfQoKICAgIFBERkdyYWRpZW50LnByb3RvdHlwZS5zdG9wID0gZnVuY3Rpb24ocG9zLCBjb2xvciwgb3BhY2l0eSkgewogICAgICBpZiAob3BhY2l0eSA9PSBudWxsKSB7CiAgICAgICAgb3BhY2l0eSA9IDE7CiAgICAgIH0KICAgICAgb3BhY2l0eSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIG9wYWNpdHkpKTsKICAgICAgdGhpcy5zdG9wcy5wdXNoKFtwb3MsIHRoaXMuZG9jLl9ub3JtYWxpemVDb2xvcihjb2xvciksIG9wYWNpdHldKTsKICAgICAgcmV0dXJuIHRoaXM7CiAgICB9OwoKICAgIFBERkdyYWRpZW50LnByb3RvdHlwZS5zZXRUcmFuc2Zvcm0gPSBmdW5jdGlvbihtMTEsIG0xMiwgbTIxLCBtMjIsIGR4LCBkeSkgewogICAgICB0aGlzLnRyYW5zZm9ybSA9IFttMTEsIG0xMiwgbTIxLCBtMjIsIGR4LCBkeV07CiAgICAgIHJldHVybiB0aGlzOwogICAgfTsKCiAgICBQREZHcmFkaWVudC5wcm90b3R5cGUuZW1iZWQgPSBmdW5jdGlvbihtKSB7CiAgICAgIHZhciBib3VuZHMsIGVuY29kZSwgZm4sIGZvcm0sIGdyYWQsIGdzdGF0ZSwgaSwgaiwgaywgbGFzdCwgbGVuLCBvcGFjaXR5UGF0dGVybiwgcGFnZUJCb3gsIHBhdHRlcm4sIHJlZiwgcmVmMSwgc2hhZGVyLCBzdG9wLCBzdG9wcywgdjsKICAgICAgaWYgKHRoaXMuc3RvcHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHRoaXMuZW1iZWRkZWQgPSB0cnVlOwogICAgICB0aGlzLm1hdHJpeCA9IG07CiAgICAgIGxhc3QgPSB0aGlzLnN0b3BzW3RoaXMuc3RvcHMubGVuZ3RoIC0gMV07CiAgICAgIGlmIChsYXN0WzBdIDwgMSkgewogICAgICAgIHRoaXMuc3RvcHMucHVzaChbMSwgbGFzdFsxXSwgbGFzdFsyXV0pOwogICAgICB9CiAgICAgIGJvdW5kcyA9IFtdOwogICAgICBlbmNvZGUgPSBbXTsKICAgICAgc3RvcHMgPSBbXTsKICAgICAgZm9yIChpID0gaiA9IDAsIHJlZiA9IHRoaXMuc3RvcHMubGVuZ3RoIC0gMTsgMCA8PSByZWYgPyBqIDwgcmVmIDogaiA+IHJlZjsgaSA9IDAgPD0gcmVmID8gKytqIDogLS1qKSB7CiAgICAgICAgZW5jb2RlLnB1c2goMCwgMSk7CiAgICAgICAgaWYgKGkgKyAyICE9PSB0aGlzLnN0b3BzLmxlbmd0aCkgewogICAgICAgICAgYm91bmRzLnB1c2godGhpcy5zdG9wc1tpICsgMV1bMF0pOwogICAgICAgIH0KICAgICAgICBmbiA9IHRoaXMuZG9jLnJlZih7CiAgICAgICAgICBGdW5jdGlvblR5cGU6IDIsCiAgICAgICAgICBEb21haW46IFswLCAxXSwKICAgICAgICAgIEMwOiB0aGlzLnN0b3BzW2kgKyAwXVsxXSwKICAgICAgICAgIEMxOiB0aGlzLnN0b3BzW2kgKyAxXVsxXSwKICAgICAgICAgIE46IDEKICAgICAgICB9KTsKICAgICAgICBzdG9wcy5wdXNoKGZuKTsKICAgICAgICBmbi5lbmQoKTsKICAgICAgfQogICAgICBpZiAoc3RvcHMubGVuZ3RoID09PSAxKSB7CiAgICAgICAgZm4gPSBzdG9wc1swXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBmbiA9IHRoaXMuZG9jLnJlZih7CiAgICAgICAgICBGdW5jdGlvblR5cGU6IDMsCiAgICAgICAgICBEb21haW46IFswLCAxXSwKICAgICAgICAgIEZ1bmN0aW9uczogc3RvcHMsCiAgICAgICAgICBCb3VuZHM6IGJvdW5kcywKICAgICAgICAgIEVuY29kZTogZW5jb2RlCiAgICAgICAgfSk7CiAgICAgICAgZm4uZW5kKCk7CiAgICAgIH0KICAgICAgdGhpcy5pZCA9ICdTaCcgKyAoKyt0aGlzLmRvYy5fZ3JhZENvdW50KTsKICAgICAgc2hhZGVyID0gdGhpcy5zaGFkZXIoZm4pOwogICAgICBzaGFkZXIuZW5kKCk7CiAgICAgIHBhdHRlcm4gPSB0aGlzLmRvYy5yZWYoewogICAgICAgIFR5cGU6ICdQYXR0ZXJuJywKICAgICAgICBQYXR0ZXJuVHlwZTogMiwKICAgICAgICBTaGFkaW5nOiBzaGFkZXIsCiAgICAgICAgTWF0cml4OiAoZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgaywgbGVuLCByZWYxLCByZXN1bHRzOwogICAgICAgICAgcmVmMSA9IHRoaXMubWF0cml4OwogICAgICAgICAgcmVzdWx0cyA9IFtdOwogICAgICAgICAgZm9yIChrID0gMCwgbGVuID0gcmVmMS5sZW5ndGg7IGsgPCBsZW47IGsrKykgewogICAgICAgICAgICB2ID0gcmVmMVtrXTsKICAgICAgICAgICAgcmVzdWx0cy5wdXNoKCt2LnRvRml4ZWQoNSkpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICAgICAgfSkuY2FsbCh0aGlzKQogICAgICB9KTsKICAgICAgcGF0dGVybi5lbmQoKTsKICAgICAgaWYgKHRoaXMuc3RvcHMuc29tZShmdW5jdGlvbihzdG9wKSB7CiAgICAgICAgcmV0dXJuIHN0b3BbMl0gPCAxOwogICAgICB9KSkgewogICAgICAgIGdyYWQgPSB0aGlzLm9wYWNpdHlHcmFkaWVudCgpOwogICAgICAgIGdyYWQuX2NvbG9yU3BhY2UgPSAnRGV2aWNlR3JheSc7CiAgICAgICAgcmVmMSA9IHRoaXMuc3RvcHM7CiAgICAgICAgZm9yIChrID0gMCwgbGVuID0gcmVmMS5sZW5ndGg7IGsgPCBsZW47IGsrKykgewogICAgICAgICAgc3RvcCA9IHJlZjFba107CiAgICAgICAgICBncmFkLnN0b3Aoc3RvcFswXSwgW3N0b3BbMl1dKTsKICAgICAgICB9CiAgICAgICAgZ3JhZCA9IGdyYWQuZW1iZWQodGhpcy5tYXRyaXgpOwogICAgICAgIHBhZ2VCQm94ID0gWzAsIDAsIHRoaXMuZG9jLnBhZ2Uud2lkdGgsIHRoaXMuZG9jLnBhZ2UuaGVpZ2h0XTsKICAgICAgICBmb3JtID0gdGhpcy5kb2MucmVmKHsKICAgICAgICAgIFR5cGU6ICdYT2JqZWN0JywKICAgICAgICAgIFN1YnR5cGU6ICdGb3JtJywKICAgICAgICAgIEZvcm1UeXBlOiAxLAogICAgICAgICAgQkJveDogcGFnZUJCb3gsCiAgICAgICAgICBHcm91cDogewogICAgICAgICAgICBUeXBlOiAnR3JvdXAnLAogICAgICAgICAgICBTOiAnVHJhbnNwYXJlbmN5JywKICAgICAgICAgICAgQ1M6ICdEZXZpY2VHcmF5JwogICAgICAgICAgfSwKICAgICAgICAgIFJlc291cmNlczogewogICAgICAgICAgICBQcm9jU2V0OiBbJ1BERicsICdUZXh0JywgJ0ltYWdlQicsICdJbWFnZUMnLCAnSW1hZ2VJJ10sCiAgICAgICAgICAgIFBhdHRlcm46IHsKICAgICAgICAgICAgICBTaDE6IGdyYWQKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIGZvcm0ud3JpdGUoIi9QYXR0ZXJuIGNzIC9TaDEgc2NuIik7CiAgICAgICAgZm9ybS5lbmQoKHBhZ2VCQm94LmpvaW4oIiAiKSkgKyAiIHJlIGYiKTsKICAgICAgICBnc3RhdGUgPSB0aGlzLmRvYy5yZWYoewogICAgICAgICAgVHlwZTogJ0V4dEdTdGF0ZScsCiAgICAgICAgICBTTWFzazogewogICAgICAgICAgICBUeXBlOiAnTWFzaycsCiAgICAgICAgICAgIFM6ICdMdW1pbm9zaXR5JywKICAgICAgICAgICAgRzogZm9ybQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIGdzdGF0ZS5lbmQoKTsKICAgICAgICBvcGFjaXR5UGF0dGVybiA9IHRoaXMuZG9jLnJlZih7CiAgICAgICAgICBUeXBlOiAnUGF0dGVybicsCiAgICAgICAgICBQYXR0ZXJuVHlwZTogMSwKICAgICAgICAgIFBhaW50VHlwZTogMSwKICAgICAgICAgIFRpbGluZ1R5cGU6IDIsCiAgICAgICAgICBCQm94OiBwYWdlQkJveCwKICAgICAgICAgIFhTdGVwOiBwYWdlQkJveFsyXSwKICAgICAgICAgIFlTdGVwOiBwYWdlQkJveFszXSwKICAgICAgICAgIFJlc291cmNlczogewogICAgICAgICAgICBQcm9jU2V0OiBbJ1BERicsICdUZXh0JywgJ0ltYWdlQicsICdJbWFnZUMnLCAnSW1hZ2VJJ10sCiAgICAgICAgICAgIFBhdHRlcm46IHsKICAgICAgICAgICAgICBTaDE6IHBhdHRlcm4KICAgICAgICAgICAgfSwKICAgICAgICAgICAgRXh0R1N0YXRlOiB7CiAgICAgICAgICAgICAgR3MxOiBnc3RhdGUKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIG9wYWNpdHlQYXR0ZXJuLndyaXRlKCIvR3MxIGdzIC9QYXR0ZXJuIGNzIC9TaDEgc2NuIik7CiAgICAgICAgb3BhY2l0eVBhdHRlcm4uZW5kKChwYWdlQkJveC5qb2luKCIgIikpICsgIiByZSBmIik7CiAgICAgICAgdGhpcy5kb2MucGFnZS5wYXR0ZXJuc1t0aGlzLmlkXSA9IG9wYWNpdHlQYXR0ZXJuOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuZG9jLnBhZ2UucGF0dGVybnNbdGhpcy5pZF0gPSBwYXR0ZXJuOwogICAgICB9CiAgICAgIHJldHVybiBwYXR0ZXJuOwogICAgfTsKCiAgICBQREZHcmFkaWVudC5wcm90b3R5cGUuYXBwbHkgPSBmdW5jdGlvbihvcCkgewogICAgICB2YXIgZHgsIGR5LCBtLCBtMCwgbTEsIG0xMSwgbTEyLCBtMiwgbTIxLCBtMjIsIG0zLCBtNCwgbTUsIHJlZiwgcmVmMTsKICAgICAgcmVmID0gdGhpcy5kb2MuX2N0bS5zbGljZSgpLCBtMCA9IHJlZlswXSwgbTEgPSByZWZbMV0sIG0yID0gcmVmWzJdLCBtMyA9IHJlZlszXSwgbTQgPSByZWZbNF0sIG01ID0gcmVmWzVdOwogICAgICByZWYxID0gdGhpcy50cmFuc2Zvcm0sIG0xMSA9IHJlZjFbMF0sIG0xMiA9IHJlZjFbMV0sIG0yMSA9IHJlZjFbMl0sIG0yMiA9IHJlZjFbM10sIGR4ID0gcmVmMVs0XSwgZHkgPSByZWYxWzVdOwogICAgICBtID0gW20wICogbTExICsgbTIgKiBtMTIsIG0xICogbTExICsgbTMgKiBtMTIsIG0wICogbTIxICsgbTIgKiBtMjIsIG0xICogbTIxICsgbTMgKiBtMjIsIG0wICogZHggKyBtMiAqIGR5ICsgbTQsIG0xICogZHggKyBtMyAqIGR5ICsgbTVdOwogICAgICBpZiAoISh0aGlzLmVtYmVkZGVkICYmIG0uam9pbigiICIpID09PSB0aGlzLm1hdHJpeC5qb2luKCIgIikpKSB7CiAgICAgICAgdGhpcy5lbWJlZChtKTsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy5kb2MuYWRkQ29udGVudCgiLyIgKyB0aGlzLmlkICsgIiAiICsgb3ApOwogICAgfTsKCiAgICByZXR1cm4gUERGR3JhZGllbnQ7CgogIH0pKCk7CgogIFBERkxpbmVhckdyYWRpZW50ID0gKGZ1bmN0aW9uKHN1cGVyQ2xhc3MpIHsKICAgIGV4dGVuZChQREZMaW5lYXJHcmFkaWVudCwgc3VwZXJDbGFzcyk7CgogICAgZnVuY3Rpb24gUERGTGluZWFyR3JhZGllbnQoZG9jLCB4MSwgeTEsIHgyLCB5MikgewogICAgICB0aGlzLmRvYyA9IGRvYzsKICAgICAgdGhpcy54MSA9IHgxOwogICAgICB0aGlzLnkxID0geTE7CiAgICAgIHRoaXMueDIgPSB4MjsKICAgICAgdGhpcy55MiA9IHkyOwogICAgICBQREZMaW5lYXJHcmFkaWVudC5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIH0KCiAgICBQREZMaW5lYXJHcmFkaWVudC5wcm90b3R5cGUuc2hhZGVyID0gZnVuY3Rpb24oZm4pIHsKICAgICAgcmV0dXJuIHRoaXMuZG9jLnJlZih7CiAgICAgICAgU2hhZGluZ1R5cGU6IDIsCiAgICAgICAgQ29sb3JTcGFjZTogdGhpcy5fY29sb3JTcGFjZSwKICAgICAgICBDb29yZHM6IFt0aGlzLngxLCB0aGlzLnkxLCB0aGlzLngyLCB0aGlzLnkyXSwKICAgICAgICBGdW5jdGlvbjogZm4sCiAgICAgICAgRXh0ZW5kOiBbdHJ1ZSwgdHJ1ZV0KICAgICAgfSk7CiAgICB9OwoKICAgIFBERkxpbmVhckdyYWRpZW50LnByb3RvdHlwZS5vcGFjaXR5R3JhZGllbnQgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5ldyBQREZMaW5lYXJHcmFkaWVudCh0aGlzLmRvYywgdGhpcy54MSwgdGhpcy55MSwgdGhpcy54MiwgdGhpcy55Mik7CiAgICB9OwoKICAgIHJldHVybiBQREZMaW5lYXJHcmFkaWVudDsKCiAgfSkoUERGR3JhZGllbnQpOwoKICBQREZSYWRpYWxHcmFkaWVudCA9IChmdW5jdGlvbihzdXBlckNsYXNzKSB7CiAgICBleHRlbmQoUERGUmFkaWFsR3JhZGllbnQsIHN1cGVyQ2xhc3MpOwoKICAgIGZ1bmN0aW9uIFBERlJhZGlhbEdyYWRpZW50KGRvYywgeDEsIHkxLCByMSwgeDIsIHkyLCByMikgewogICAgICB0aGlzLmRvYyA9IGRvYzsKICAgICAgdGhpcy54MSA9IHgxOwogICAgICB0aGlzLnkxID0geTE7CiAgICAgIHRoaXMucjEgPSByMTsKICAgICAgdGhpcy54MiA9IHgyOwogICAgICB0aGlzLnkyID0geTI7CiAgICAgIHRoaXMucjIgPSByMjsKICAgICAgUERGUmFkaWFsR3JhZGllbnQuX19zdXBlcl9fLmNvbnN0cnVjdG9yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICB9CgogICAgUERGUmFkaWFsR3JhZGllbnQucHJvdG90eXBlLnNoYWRlciA9IGZ1bmN0aW9uKGZuKSB7CiAgICAgIHJldHVybiB0aGlzLmRvYy5yZWYoewogICAgICAgIFNoYWRpbmdUeXBlOiAzLAogICAgICAgIENvbG9yU3BhY2U6IHRoaXMuX2NvbG9yU3BhY2UsCiAgICAgICAgQ29vcmRzOiBbdGhpcy54MSwgdGhpcy55MSwgdGhpcy5yMSwgdGhpcy54MiwgdGhpcy55MiwgdGhpcy5yMl0sCiAgICAgICAgRnVuY3Rpb246IGZuLAogICAgICAgIEV4dGVuZDogW3RydWUsIHRydWVdCiAgICAgIH0pOwogICAgfTsKCiAgICBQREZSYWRpYWxHcmFkaWVudC5wcm90b3R5cGUub3BhY2l0eUdyYWRpZW50ID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBuZXcgUERGUmFkaWFsR3JhZGllbnQodGhpcy5kb2MsIHRoaXMueDEsIHRoaXMueTEsIHRoaXMucjEsIHRoaXMueDIsIHRoaXMueTIsIHRoaXMucjIpOwogICAgfTsKCiAgICByZXR1cm4gUERGUmFkaWFsR3JhZGllbnQ7CgogIH0pKFBERkdyYWRpZW50KTsKCiAgbW9kdWxlLmV4cG9ydHMgPSB7CiAgICBQREZHcmFkaWVudDogUERGR3JhZGllbnQsCiAgICBQREZMaW5lYXJHcmFkaWVudDogUERGTGluZWFyR3JhZGllbnQsCiAgICBQREZSYWRpYWxHcmFkaWVudDogUERGUmFkaWFsR3JhZGllbnQKICB9OwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTY0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CihmdW5jdGlvbigpIHsKICB2YXIgS0FQUEEsIFNWR1BhdGgsIG51bWJlciwKICAgIHNsaWNlID0gW10uc2xpY2U7CgogIFNWR1BhdGggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE2NSk7CgogIG51bWJlciA9IF9fd2VicGFja19yZXF1aXJlX18oMjYpLm51bWJlcjsKCiAgS0FQUEEgPSA0LjAgKiAoKE1hdGguc3FydCgyKSAtIDEuMCkgLyAzLjApOwoKICBtb2R1bGUuZXhwb3J0cyA9IHsKICAgIGluaXRWZWN0b3I6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLl9jdG0gPSBbMSwgMCwgMCwgMSwgMCwgMF07CiAgICAgIHJldHVybiB0aGlzLl9jdG1TdGFjayA9IFtdOwogICAgfSwKICAgIHNhdmU6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLl9jdG1TdGFjay5wdXNoKHRoaXMuX2N0bS5zbGljZSgpKTsKICAgICAgcmV0dXJuIHRoaXMuYWRkQ29udGVudCgncScpOwogICAgfSwKICAgIHJlc3RvcmU6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLl9jdG0gPSB0aGlzLl9jdG1TdGFjay5wb3AoKSB8fCBbMSwgMCwgMCwgMSwgMCwgMF07CiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoJ1EnKTsKICAgIH0sCiAgICBjbG9zZVBhdGg6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KCdoJyk7CiAgICB9LAogICAgbGluZVdpZHRoOiBmdW5jdGlvbih3KSB7CiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoKG51bWJlcih3KSkgKyAiIHciKTsKICAgIH0sCiAgICBfQ0FQX1NUWUxFUzogewogICAgICBCVVRUOiAwLAogICAgICBST1VORDogMSwKICAgICAgU1FVQVJFOiAyCiAgICB9LAogICAgbGluZUNhcDogZnVuY3Rpb24oYykgewogICAgICBpZiAodHlwZW9mIGMgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgYyA9IHRoaXMuX0NBUF9TVFlMRVNbYy50b1VwcGVyQ2FzZSgpXTsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KGMgKyAiIEoiKTsKICAgIH0sCiAgICBfSk9JTl9TVFlMRVM6IHsKICAgICAgTUlURVI6IDAsCiAgICAgIFJPVU5EOiAxLAogICAgICBCRVZFTDogMgogICAgfSwKICAgIGxpbmVKb2luOiBmdW5jdGlvbihqKSB7CiAgICAgIGlmICh0eXBlb2YgaiA9PT0gJ3N0cmluZycpIHsKICAgICAgICBqID0gdGhpcy5fSk9JTl9TVFlMRVNbai50b1VwcGVyQ2FzZSgpXTsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KGogKyAiIGoiKTsKICAgIH0sCiAgICBtaXRlckxpbWl0OiBmdW5jdGlvbihtKSB7CiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoKG51bWJlcihtKSkgKyAiIE0iKTsKICAgIH0sCiAgICBkYXNoOiBmdW5jdGlvbihsZW5ndGgsIG9wdGlvbnMpIHsKICAgICAgdmFyIHBoYXNlLCByZWYsIHNwYWNlLCB2OwogICAgICBpZiAob3B0aW9ucyA9PSBudWxsKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIGlmIChsZW5ndGggPT0gbnVsbCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGxlbmd0aCkpIHsKICAgICAgICBsZW5ndGggPSAoKGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGksIGxlbiwgcmVzdWx0czsKICAgICAgICAgIHJlc3VsdHMgPSBbXTsKICAgICAgICAgIGZvciAoaSA9IDAsIGxlbiA9IGxlbmd0aC5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgICB2ID0gbGVuZ3RoW2ldOwogICAgICAgICAgICByZXN1bHRzLnB1c2gobnVtYmVyKHYpKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHRzOwogICAgICAgIH0pKCkpLmpvaW4oJyAnKTsKICAgICAgICBwaGFzZSA9IG9wdGlvbnMucGhhc2UgfHwgMDsKICAgICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KCJbIiArIGxlbmd0aCArICJdICIgKyAobnVtYmVyKHBoYXNlKSkgKyAiIGQiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzcGFjZSA9IChyZWYgPSBvcHRpb25zLnNwYWNlKSAhPSBudWxsID8gcmVmIDogbGVuZ3RoOwogICAgICAgIHBoYXNlID0gb3B0aW9ucy5waGFzZSB8fCAwOwogICAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoIlsiICsgKG51bWJlcihsZW5ndGgpKSArICIgIiArIChudW1iZXIoc3BhY2UpKSArICJdICIgKyAobnVtYmVyKHBoYXNlKSkgKyAiIGQiKTsKICAgICAgfQogICAgfSwKICAgIHVuZGFzaDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoIltdIDAgZCIpOwogICAgfSwKICAgIG1vdmVUbzogZnVuY3Rpb24oeCwgeSkgewogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KChudW1iZXIoeCkpICsgIiAiICsgKG51bWJlcih5KSkgKyAiIG0iKTsKICAgIH0sCiAgICBsaW5lVG86IGZ1bmN0aW9uKHgsIHkpIHsKICAgICAgcmV0dXJuIHRoaXMuYWRkQ29udGVudCgobnVtYmVyKHgpKSArICIgIiArIChudW1iZXIoeSkpICsgIiBsIik7CiAgICB9LAogICAgYmV6aWVyQ3VydmVUbzogZnVuY3Rpb24oY3AxeCwgY3AxeSwgY3AyeCwgY3AyeSwgeCwgeSkgewogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KChudW1iZXIoY3AxeCkpICsgIiAiICsgKG51bWJlcihjcDF5KSkgKyAiICIgKyAobnVtYmVyKGNwMngpKSArICIgIiArIChudW1iZXIoY3AyeSkpICsgIiAiICsgKG51bWJlcih4KSkgKyAiICIgKyAobnVtYmVyKHkpKSArICIgYyIpOwogICAgfSwKICAgIHF1YWRyYXRpY0N1cnZlVG86IGZ1bmN0aW9uKGNweCwgY3B5LCB4LCB5KSB7CiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoKG51bWJlcihjcHgpKSArICIgIiArIChudW1iZXIoY3B5KSkgKyAiICIgKyAobnVtYmVyKHgpKSArICIgIiArIChudW1iZXIoeSkpICsgIiB2Iik7CiAgICB9LAogICAgcmVjdDogZnVuY3Rpb24oeCwgeSwgdywgaCkgewogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KChudW1iZXIoeCkpICsgIiAiICsgKG51bWJlcih5KSkgKyAiICIgKyAobnVtYmVyKHcpKSArICIgIiArIChudW1iZXIoaCkpICsgIiByZSIpOwogICAgfSwKICAgIHJvdW5kZWRSZWN0OiBmdW5jdGlvbih4LCB5LCB3LCBoLCByKSB7CiAgICAgIHZhciBjOwogICAgICBpZiAociA9PSBudWxsKSB7CiAgICAgICAgciA9IDA7CiAgICAgIH0KICAgICAgciA9IE1hdGgubWluKHIsIDAuNSAqIHcsIDAuNSAqIGgpOwogICAgICBjID0gciAqICgxLjAgLSBLQVBQQSk7CiAgICAgIHRoaXMubW92ZVRvKHggKyByLCB5KTsKICAgICAgdGhpcy5saW5lVG8oeCArIHcgLSByLCB5KTsKICAgICAgdGhpcy5iZXppZXJDdXJ2ZVRvKHggKyB3IC0gYywgeSwgeCArIHcsIHkgKyBjLCB4ICsgdywgeSArIHIpOwogICAgICB0aGlzLmxpbmVUbyh4ICsgdywgeSArIGggLSByKTsKICAgICAgdGhpcy5iZXppZXJDdXJ2ZVRvKHggKyB3LCB5ICsgaCAtIGMsIHggKyB3IC0gYywgeSArIGgsIHggKyB3IC0gciwgeSArIGgpOwogICAgICB0aGlzLmxpbmVUbyh4ICsgciwgeSArIGgpOwogICAgICB0aGlzLmJlemllckN1cnZlVG8oeCArIGMsIHkgKyBoLCB4LCB5ICsgaCAtIGMsIHgsIHkgKyBoIC0gcik7CiAgICAgIHRoaXMubGluZVRvKHgsIHkgKyByKTsKICAgICAgdGhpcy5iZXppZXJDdXJ2ZVRvKHgsIHkgKyBjLCB4ICsgYywgeSwgeCArIHIsIHkpOwogICAgICByZXR1cm4gdGhpcy5jbG9zZVBhdGgoKTsKICAgIH0sCiAgICBlbGxpcHNlOiBmdW5jdGlvbih4LCB5LCByMSwgcjIpIHsKICAgICAgdmFyIG94LCBveSwgeGUsIHhtLCB5ZSwgeW07CiAgICAgIGlmIChyMiA9PSBudWxsKSB7CiAgICAgICAgcjIgPSByMTsKICAgICAgfQogICAgICB4IC09IHIxOwogICAgICB5IC09IHIyOwogICAgICBveCA9IHIxICogS0FQUEE7CiAgICAgIG95ID0gcjIgKiBLQVBQQTsKICAgICAgeGUgPSB4ICsgcjEgKiAyOwogICAgICB5ZSA9IHkgKyByMiAqIDI7CiAgICAgIHhtID0geCArIHIxOwogICAgICB5bSA9IHkgKyByMjsKICAgICAgdGhpcy5tb3ZlVG8oeCwgeW0pOwogICAgICB0aGlzLmJlemllckN1cnZlVG8oeCwgeW0gLSBveSwgeG0gLSBveCwgeSwgeG0sIHkpOwogICAgICB0aGlzLmJlemllckN1cnZlVG8oeG0gKyBveCwgeSwgeGUsIHltIC0gb3ksIHhlLCB5bSk7CiAgICAgIHRoaXMuYmV6aWVyQ3VydmVUbyh4ZSwgeW0gKyBveSwgeG0gKyBveCwgeWUsIHhtLCB5ZSk7CiAgICAgIHRoaXMuYmV6aWVyQ3VydmVUbyh4bSAtIG94LCB5ZSwgeCwgeW0gKyBveSwgeCwgeW0pOwogICAgICByZXR1cm4gdGhpcy5jbG9zZVBhdGgoKTsKICAgIH0sCiAgICBjaXJjbGU6IGZ1bmN0aW9uKHgsIHksIHJhZGl1cykgewogICAgICByZXR1cm4gdGhpcy5lbGxpcHNlKHgsIHksIHJhZGl1cyk7CiAgICB9LAogICAgYXJjOiBmdW5jdGlvbih4LCB5LCByYWRpdXMsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlLCBhbnRpY2xvY2t3aXNlKSB7CiAgICAgIHZhciBIQUxGX1BJLCBUV09fUEksIGF4LCBheSwgY3AxeCwgY3AxeSwgY3AyeCwgY3AyeSwgY3VyQW5nLCBkZWx0YUFuZywgZGVsdGFDeCwgZGVsdGFDeSwgZGlyLCBoYW5kbGVMZW4sIGksIG51bVNlZ3MsIHJlZiwgc2VnQW5nLCBzZWdJZHg7CiAgICAgIGlmIChhbnRpY2xvY2t3aXNlID09IG51bGwpIHsKICAgICAgICBhbnRpY2xvY2t3aXNlID0gZmFsc2U7CiAgICAgIH0KICAgICAgVFdPX1BJID0gMi4wICogTWF0aC5QSTsKICAgICAgSEFMRl9QSSA9IDAuNSAqIE1hdGguUEk7CiAgICAgIGRlbHRhQW5nID0gZW5kQW5nbGUgLSBzdGFydEFuZ2xlOwogICAgICBpZiAoTWF0aC5hYnMoZGVsdGFBbmcpID4gVFdPX1BJKSB7CiAgICAgICAgZGVsdGFBbmcgPSBUV09fUEk7CiAgICAgIH0gZWxzZSBpZiAoZGVsdGFBbmcgIT09IDAgJiYgYW50aWNsb2Nrd2lzZSAhPT0gKGRlbHRhQW5nIDwgMCkpIHsKICAgICAgICBkaXIgPSBhbnRpY2xvY2t3aXNlID8gLTEgOiAxOwogICAgICAgIGRlbHRhQW5nID0gZGlyICogVFdPX1BJICsgZGVsdGFBbmc7CiAgICAgIH0KICAgICAgbnVtU2VncyA9IE1hdGguY2VpbChNYXRoLmFicyhkZWx0YUFuZykgLyBIQUxGX1BJKTsKICAgICAgc2VnQW5nID0gZGVsdGFBbmcgLyBudW1TZWdzOwogICAgICBoYW5kbGVMZW4gPSAoc2VnQW5nIC8gSEFMRl9QSSkgKiBLQVBQQSAqIHJhZGl1czsKICAgICAgY3VyQW5nID0gc3RhcnRBbmdsZTsKICAgICAgZGVsdGFDeCA9IC1NYXRoLnNpbihjdXJBbmcpICogaGFuZGxlTGVuOwogICAgICBkZWx0YUN5ID0gTWF0aC5jb3MoY3VyQW5nKSAqIGhhbmRsZUxlbjsKICAgICAgYXggPSB4ICsgTWF0aC5jb3MoY3VyQW5nKSAqIHJhZGl1czsKICAgICAgYXkgPSB5ICsgTWF0aC5zaW4oY3VyQW5nKSAqIHJhZGl1czsKICAgICAgdGhpcy5tb3ZlVG8oYXgsIGF5KTsKICAgICAgZm9yIChzZWdJZHggPSBpID0gMCwgcmVmID0gbnVtU2VnczsgMCA8PSByZWYgPyBpIDwgcmVmIDogaSA+IHJlZjsgc2VnSWR4ID0gMCA8PSByZWYgPyArK2kgOiAtLWkpIHsKICAgICAgICBjcDF4ID0gYXggKyBkZWx0YUN4OwogICAgICAgIGNwMXkgPSBheSArIGRlbHRhQ3k7CiAgICAgICAgY3VyQW5nICs9IHNlZ0FuZzsKICAgICAgICBheCA9IHggKyBNYXRoLmNvcyhjdXJBbmcpICogcmFkaXVzOwogICAgICAgIGF5ID0geSArIE1hdGguc2luKGN1ckFuZykgKiByYWRpdXM7CiAgICAgICAgZGVsdGFDeCA9IC1NYXRoLnNpbihjdXJBbmcpICogaGFuZGxlTGVuOwogICAgICAgIGRlbHRhQ3kgPSBNYXRoLmNvcyhjdXJBbmcpICogaGFuZGxlTGVuOwogICAgICAgIGNwMnggPSBheCAtIGRlbHRhQ3g7CiAgICAgICAgY3AyeSA9IGF5IC0gZGVsdGFDeTsKICAgICAgICB0aGlzLmJlemllckN1cnZlVG8oY3AxeCwgY3AxeSwgY3AyeCwgY3AyeSwgYXgsIGF5KTsKICAgICAgfQogICAgICByZXR1cm4gdGhpczsKICAgIH0sCiAgICBwb2x5Z29uOiBmdW5jdGlvbigpIHsKICAgICAgdmFyIGksIGxlbiwgcG9pbnQsIHBvaW50czsKICAgICAgcG9pbnRzID0gMSA8PSBhcmd1bWVudHMubGVuZ3RoID8gc2xpY2UuY2FsbChhcmd1bWVudHMsIDApIDogW107CiAgICAgIHRoaXMubW92ZVRvLmFwcGx5KHRoaXMsIHBvaW50cy5zaGlmdCgpKTsKICAgICAgZm9yIChpID0gMCwgbGVuID0gcG9pbnRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgcG9pbnQgPSBwb2ludHNbaV07CiAgICAgICAgdGhpcy5saW5lVG8uYXBwbHkodGhpcywgcG9pbnQpOwogICAgICB9CiAgICAgIHJldHVybiB0aGlzLmNsb3NlUGF0aCgpOwogICAgfSwKICAgIHBhdGg6IGZ1bmN0aW9uKHBhdGgpIHsKICAgICAgU1ZHUGF0aC5hcHBseSh0aGlzLCBwYXRoKTsKICAgICAgcmV0dXJuIHRoaXM7CiAgICB9LAogICAgX3dpbmRpbmdSdWxlOiBmdW5jdGlvbihydWxlKSB7CiAgICAgIGlmICgvZXZlbi0/b2RkLy50ZXN0KHJ1bGUpKSB7CiAgICAgICAgcmV0dXJuICcqJzsKICAgICAgfQogICAgICByZXR1cm4gJyc7CiAgICB9LAogICAgZmlsbDogZnVuY3Rpb24oY29sb3IsIHJ1bGUpIHsKICAgICAgaWYgKC8oZXZlbi0/b2RkKXwobm9uLT96ZXJvKS8udGVzdChjb2xvcikpIHsKICAgICAgICBydWxlID0gY29sb3I7CiAgICAgICAgY29sb3IgPSBudWxsOwogICAgICB9CiAgICAgIGlmIChjb2xvcikgewogICAgICAgIHRoaXMuZmlsbENvbG9yKGNvbG9yKTsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KCdmJyArIHRoaXMuX3dpbmRpbmdSdWxlKHJ1bGUpKTsKICAgIH0sCiAgICBzdHJva2U6IGZ1bmN0aW9uKGNvbG9yKSB7CiAgICAgIGlmIChjb2xvcikgewogICAgICAgIHRoaXMuc3Ryb2tlQ29sb3IoY29sb3IpOwogICAgICB9CiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRlbnQoJ1MnKTsKICAgIH0sCiAgICBmaWxsQW5kU3Ryb2tlOiBmdW5jdGlvbihmaWxsQ29sb3IsIHN0cm9rZUNvbG9yLCBydWxlKSB7CiAgICAgIHZhciBpc0ZpbGxSdWxlOwogICAgICBpZiAoc3Ryb2tlQ29sb3IgPT0gbnVsbCkgewogICAgICAgIHN0cm9rZUNvbG9yID0gZmlsbENvbG9yOwogICAgICB9CiAgICAgIGlzRmlsbFJ1bGUgPSAvKGV2ZW4tP29kZCl8KG5vbi0/emVybykvOwogICAgICBpZiAoaXNGaWxsUnVsZS50ZXN0KGZpbGxDb2xvcikpIHsKICAgICAgICBydWxlID0gZmlsbENvbG9yOwogICAgICAgIGZpbGxDb2xvciA9IG51bGw7CiAgICAgIH0KICAgICAgaWYgKGlzRmlsbFJ1bGUudGVzdChzdHJva2VDb2xvcikpIHsKICAgICAgICBydWxlID0gc3Ryb2tlQ29sb3I7CiAgICAgICAgc3Ryb2tlQ29sb3IgPSBmaWxsQ29sb3I7CiAgICAgIH0KICAgICAgaWYgKGZpbGxDb2xvcikgewogICAgICAgIHRoaXMuZmlsbENvbG9yKGZpbGxDb2xvcik7CiAgICAgICAgdGhpcy5zdHJva2VDb2xvcihzdHJva2VDb2xvcik7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuYWRkQ29udGVudCgnQicgKyB0aGlzLl93aW5kaW5nUnVsZShydWxlKSk7CiAgICB9LAogICAgY2xpcDogZnVuY3Rpb24ocnVsZSkgewogICAgICByZXR1cm4gdGhpcy5hZGRDb250ZW50KCdXJyArIHRoaXMuX3dpbmRpbmdSdWxlKHJ1bGUpICsgJyBuJyk7CiAgICB9LAogICAgdHJhbnNmb3JtOiBmdW5jdGlvbihtMTEsIG0xMiwgbTIxLCBtMjIsIGR4LCBkeSkgewogICAgICB2YXIgbSwgbTAsIG0xLCBtMiwgbTMsIG00LCBtNSwgdiwgdmFsdWVzOwogICAgICBtID0gdGhpcy5fY3RtOwogICAgICBtMCA9IG1bMF0sIG0xID0gbVsxXSwgbTIgPSBtWzJdLCBtMyA9IG1bM10sIG00ID0gbVs0XSwgbTUgPSBtWzVdOwogICAgICBtWzBdID0gbTAgKiBtMTEgKyBtMiAqIG0xMjsKICAgICAgbVsxXSA9IG0xICogbTExICsgbTMgKiBtMTI7CiAgICAgIG1bMl0gPSBtMCAqIG0yMSArIG0yICogbTIyOwogICAgICBtWzNdID0gbTEgKiBtMjEgKyBtMyAqIG0yMjsKICAgICAgbVs0XSA9IG0wICogZHggKyBtMiAqIGR5ICsgbTQ7CiAgICAgIG1bNV0gPSBtMSAqIGR4ICsgbTMgKiBkeSArIG01OwogICAgICB2YWx1ZXMgPSAoKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBpLCBsZW4sIHJlZiwgcmVzdWx0czsKICAgICAgICByZWYgPSBbbTExLCBtMTIsIG0yMSwgbTIyLCBkeCwgZHldOwogICAgICAgIHJlc3VsdHMgPSBbXTsKICAgICAgICBmb3IgKGkgPSAwLCBsZW4gPSByZWYubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgIHYgPSByZWZbaV07CiAgICAgICAgICByZXN1bHRzLnB1c2gobnVtYmVyKHYpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICAgIH0pKCkpLmpvaW4oJyAnKTsKICAgICAgcmV0dXJuIHRoaXMuYWRkQ29udGVudCh2YWx1ZXMgKyAiIGNtIik7CiAgICB9LAogICAgdHJhbnNsYXRlOiBmdW5jdGlvbih4LCB5KSB7CiAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybSgxLCAwLCAwLCAxLCB4LCB5KTsKICAgIH0sCiAgICByb3RhdGU6IGZ1bmN0aW9uKGFuZ2xlLCBvcHRpb25zKSB7CiAgICAgIHZhciBjb3MsIHJhZCwgcmVmLCBzaW4sIHgsIHgxLCB5LCB5MTsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICByYWQgPSBhbmdsZSAqIE1hdGguUEkgLyAxODA7CiAgICAgIGNvcyA9IE1hdGguY29zKHJhZCk7CiAgICAgIHNpbiA9IE1hdGguc2luKHJhZCk7CiAgICAgIHggPSB5ID0gMDsKICAgICAgaWYgKG9wdGlvbnMub3JpZ2luICE9IG51bGwpIHsKICAgICAgICByZWYgPSBvcHRpb25zLm9yaWdpbiwgeCA9IHJlZlswXSwgeSA9IHJlZlsxXTsKICAgICAgICB4MSA9IHggKiBjb3MgLSB5ICogc2luOwogICAgICAgIHkxID0geCAqIHNpbiArIHkgKiBjb3M7CiAgICAgICAgeCAtPSB4MTsKICAgICAgICB5IC09IHkxOwogICAgICB9CiAgICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybShjb3MsIHNpbiwgLXNpbiwgY29zLCB4LCB5KTsKICAgIH0sCiAgICBzY2FsZTogZnVuY3Rpb24oeEZhY3RvciwgeUZhY3Rvciwgb3B0aW9ucykgewogICAgICB2YXIgcmVmLCB4LCB5OwogICAgICBpZiAoeUZhY3RvciA9PSBudWxsKSB7CiAgICAgICAgeUZhY3RvciA9IHhGYWN0b3I7CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBpZiAodHlwZW9mIHlGYWN0b3IgPT09ICJvYmplY3QiKSB7CiAgICAgICAgb3B0aW9ucyA9IHlGYWN0b3I7CiAgICAgICAgeUZhY3RvciA9IHhGYWN0b3I7CiAgICAgIH0KICAgICAgeCA9IHkgPSAwOwogICAgICBpZiAob3B0aW9ucy5vcmlnaW4gIT0gbnVsbCkgewogICAgICAgIHJlZiA9IG9wdGlvbnMub3JpZ2luLCB4ID0gcmVmWzBdLCB5ID0gcmVmWzFdOwogICAgICAgIHggLT0geEZhY3RvciAqIHg7CiAgICAgICAgeSAtPSB5RmFjdG9yICogeTsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0oeEZhY3RvciwgMCwgMCwgeUZhY3RvciwgeCwgeSk7CiAgICB9CiAgfTsKCn0pLmNhbGwodGhpcyk7CgoKLyoqKi8gfSksCi8qIDE2NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgooZnVuY3Rpb24oKSB7CiAgdmFyIFNWR1BhdGg7CgogIFNWR1BhdGggPSAoZnVuY3Rpb24oKSB7CiAgICB2YXIgYXBwbHksIGFyY1RvU2VnbWVudHMsIGN4LCBjeSwgcGFyYW1ldGVycywgcGFyc2UsIHB4LCBweSwgcnVubmVycywgc2VnbWVudFRvQmV6aWVyLCBzb2x2ZUFyYywgc3gsIHN5OwoKICAgIGZ1bmN0aW9uIFNWR1BhdGgoKSB7fQoKICAgIFNWR1BhdGguYXBwbHkgPSBmdW5jdGlvbihkb2MsIHBhdGgpIHsKICAgICAgdmFyIGNvbW1hbmRzOwogICAgICBjb21tYW5kcyA9IHBhcnNlKHBhdGgpOwogICAgICByZXR1cm4gYXBwbHkoY29tbWFuZHMsIGRvYyk7CiAgICB9OwoKICAgIHBhcmFtZXRlcnMgPSB7CiAgICAgIEE6IDcsCiAgICAgIGE6IDcsCiAgICAgIEM6IDYsCiAgICAgIGM6IDYsCiAgICAgIEg6IDEsCiAgICAgIGg6IDEsCiAgICAgIEw6IDIsCiAgICAgIGw6IDIsCiAgICAgIE06IDIsCiAgICAgIG06IDIsCiAgICAgIFE6IDQsCiAgICAgIHE6IDQsCiAgICAgIFM6IDQsCiAgICAgIHM6IDQsCiAgICAgIFQ6IDIsCiAgICAgIHQ6IDIsCiAgICAgIFY6IDEsCiAgICAgIHY6IDEsCiAgICAgIFo6IDAsCiAgICAgIHo6IDAKICAgIH07CgogICAgcGFyc2UgPSBmdW5jdGlvbihwYXRoKSB7CiAgICAgIHZhciBhcmdzLCBjLCBjbWQsIGN1ckFyZywgZm91bmREZWNpbWFsLCBqLCBsZW4sIHBhcmFtcywgcmV0OwogICAgICByZXQgPSBbXTsKICAgICAgYXJncyA9IFtdOwogICAgICBjdXJBcmcgPSAiIjsKICAgICAgZm91bmREZWNpbWFsID0gZmFsc2U7CiAgICAgIHBhcmFtcyA9IDA7CiAgICAgIGZvciAoaiA9IDAsIGxlbiA9IHBhdGgubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHsKICAgICAgICBjID0gcGF0aFtqXTsKICAgICAgICBpZiAocGFyYW1ldGVyc1tjXSAhPSBudWxsKSB7CiAgICAgICAgICBwYXJhbXMgPSBwYXJhbWV0ZXJzW2NdOwogICAgICAgICAgaWYgKGNtZCkgewogICAgICAgICAgICBpZiAoY3VyQXJnLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICBhcmdzW2FyZ3MubGVuZ3RoXSA9ICtjdXJBcmc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0W3JldC5sZW5ndGhdID0gewogICAgICAgICAgICAgIGNtZDogY21kLAogICAgICAgICAgICAgIGFyZ3M6IGFyZ3MKICAgICAgICAgICAgfTsKICAgICAgICAgICAgYXJncyA9IFtdOwogICAgICAgICAgICBjdXJBcmcgPSAiIjsKICAgICAgICAgICAgZm91bmREZWNpbWFsID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBjbWQgPSBjOwogICAgICAgIH0gZWxzZSBpZiAoKGMgPT09ICIgIiB8fCBjID09PSAiLCIpIHx8IChjID09PSAiLSIgJiYgY3VyQXJnLmxlbmd0aCA+IDAgJiYgY3VyQXJnW2N1ckFyZy5sZW5ndGggLSAxXSAhPT0gJ2UnKSB8fCAoYyA9PT0gIi4iICYmIGZvdW5kRGVjaW1hbCkpIHsKICAgICAgICAgIGlmIChjdXJBcmcubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFyZ3MubGVuZ3RoID09PSBwYXJhbXMpIHsKICAgICAgICAgICAgcmV0W3JldC5sZW5ndGhdID0gewogICAgICAgICAgICAgIGNtZDogY21kLAogICAgICAgICAgICAgIGFyZ3M6IGFyZ3MKICAgICAgICAgICAgfTsKICAgICAgICAgICAgYXJncyA9IFsrY3VyQXJnXTsKICAgICAgICAgICAgaWYgKGNtZCA9PT0gIk0iKSB7CiAgICAgICAgICAgICAgY21kID0gIkwiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjbWQgPT09ICJtIikgewogICAgICAgICAgICAgIGNtZCA9ICJsIjsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYXJnc1thcmdzLmxlbmd0aF0gPSArY3VyQXJnOwogICAgICAgICAgfQogICAgICAgICAgZm91bmREZWNpbWFsID0gYyA9PT0gIi4iOwogICAgICAgICAgY3VyQXJnID0gYyA9PT0gJy0nIHx8IGMgPT09ICcuJyA/IGMgOiAnJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY3VyQXJnICs9IGM7CiAgICAgICAgICBpZiAoYyA9PT0gJy4nKSB7CiAgICAgICAgICAgIGZvdW5kRGVjaW1hbCA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChjdXJBcmcubGVuZ3RoID4gMCkgewogICAgICAgIGlmIChhcmdzLmxlbmd0aCA9PT0gcGFyYW1zKSB7CiAgICAgICAgICByZXRbcmV0Lmxlbmd0aF0gPSB7CiAgICAgICAgICAgIGNtZDogY21kLAogICAgICAgICAgICBhcmdzOiBhcmdzCiAgICAgICAgICB9OwogICAgICAgICAgYXJncyA9IFsrY3VyQXJnXTsKICAgICAgICAgIGlmIChjbWQgPT09ICJNIikgewogICAgICAgICAgICBjbWQgPSAiTCI7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY21kID09PSAibSIpIHsKICAgICAgICAgICAgY21kID0gImwiOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBhcmdzW2FyZ3MubGVuZ3RoXSA9ICtjdXJBcmc7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldFtyZXQubGVuZ3RoXSA9IHsKICAgICAgICBjbWQ6IGNtZCwKICAgICAgICBhcmdzOiBhcmdzCiAgICAgIH07CiAgICAgIHJldHVybiByZXQ7CiAgICB9OwoKICAgIGN4ID0gY3kgPSBweCA9IHB5ID0gc3ggPSBzeSA9IDA7CgogICAgYXBwbHkgPSBmdW5jdGlvbihjb21tYW5kcywgZG9jKSB7CiAgICAgIHZhciBjLCBpLCBqLCBsZW4sIG5hbWU7CiAgICAgIGN4ID0gY3kgPSBweCA9IHB5ID0gc3ggPSBzeSA9IDA7CiAgICAgIGZvciAoaSA9IGogPSAwLCBsZW4gPSBjb21tYW5kcy5sZW5ndGg7IGogPCBsZW47IGkgPSArK2opIHsKICAgICAgICBjID0gY29tbWFuZHNbaV07CiAgICAgICAgaWYgKHR5cGVvZiBydW5uZXJzW25hbWUgPSBjLmNtZF0gPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgIHJ1bm5lcnNbbmFtZV0oZG9jLCBjLmFyZ3MpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gY3ggPSBjeSA9IHB4ID0gcHkgPSAwOwogICAgfTsKCiAgICBydW5uZXJzID0gewogICAgICBNOiBmdW5jdGlvbihkb2MsIGEpIHsKICAgICAgICBjeCA9IGFbMF07CiAgICAgICAgY3kgPSBhWzFdOwogICAgICAgIHB4ID0gcHkgPSBudWxsOwogICAgICAgIHN4ID0gY3g7CiAgICAgICAgc3kgPSBjeTsKICAgICAgICByZXR1cm4gZG9jLm1vdmVUbyhjeCwgY3kpOwogICAgICB9LAogICAgICBtOiBmdW5jdGlvbihkb2MsIGEpIHsKICAgICAgICBjeCArPSBhWzBdOwogICAgICAgIGN5ICs9IGFbMV07CiAgICAgICAgcHggPSBweSA9IG51bGw7CiAgICAgICAgc3ggPSBjeDsKICAgICAgICBzeSA9IGN5OwogICAgICAgIHJldHVybiBkb2MubW92ZVRvKGN4LCBjeSk7CiAgICAgIH0sCiAgICAgIEM6IGZ1bmN0aW9uKGRvYywgYSkgewogICAgICAgIGN4ID0gYVs0XTsKICAgICAgICBjeSA9IGFbNV07CiAgICAgICAgcHggPSBhWzJdOwogICAgICAgIHB5ID0gYVszXTsKICAgICAgICByZXR1cm4gZG9jLmJlemllckN1cnZlVG8uYXBwbHkoZG9jLCBhKTsKICAgICAgfSwKICAgICAgYzogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgZG9jLmJlemllckN1cnZlVG8oYVswXSArIGN4LCBhWzFdICsgY3ksIGFbMl0gKyBjeCwgYVszXSArIGN5LCBhWzRdICsgY3gsIGFbNV0gKyBjeSk7CiAgICAgICAgcHggPSBjeCArIGFbMl07CiAgICAgICAgcHkgPSBjeSArIGFbM107CiAgICAgICAgY3ggKz0gYVs0XTsKICAgICAgICByZXR1cm4gY3kgKz0gYVs1XTsKICAgICAgfSwKICAgICAgUzogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgaWYgKHB4ID09PSBudWxsKSB7CiAgICAgICAgICBweCA9IGN4OwogICAgICAgICAgcHkgPSBjeTsKICAgICAgICB9CiAgICAgICAgZG9jLmJlemllckN1cnZlVG8oY3ggLSAocHggLSBjeCksIGN5IC0gKHB5IC0gY3kpLCBhWzBdLCBhWzFdLCBhWzJdLCBhWzNdKTsKICAgICAgICBweCA9IGFbMF07CiAgICAgICAgcHkgPSBhWzFdOwogICAgICAgIGN4ID0gYVsyXTsKICAgICAgICByZXR1cm4gY3kgPSBhWzNdOwogICAgICB9LAogICAgICBzOiBmdW5jdGlvbihkb2MsIGEpIHsKICAgICAgICBpZiAocHggPT09IG51bGwpIHsKICAgICAgICAgIHB4ID0gY3g7CiAgICAgICAgICBweSA9IGN5OwogICAgICAgIH0KICAgICAgICBkb2MuYmV6aWVyQ3VydmVUbyhjeCAtIChweCAtIGN4KSwgY3kgLSAocHkgLSBjeSksIGN4ICsgYVswXSwgY3kgKyBhWzFdLCBjeCArIGFbMl0sIGN5ICsgYVszXSk7CiAgICAgICAgcHggPSBjeCArIGFbMF07CiAgICAgICAgcHkgPSBjeSArIGFbMV07CiAgICAgICAgY3ggKz0gYVsyXTsKICAgICAgICByZXR1cm4gY3kgKz0gYVszXTsKICAgICAgfSwKICAgICAgUTogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgcHggPSBhWzBdOwogICAgICAgIHB5ID0gYVsxXTsKICAgICAgICBjeCA9IGFbMl07CiAgICAgICAgY3kgPSBhWzNdOwogICAgICAgIHJldHVybiBkb2MucXVhZHJhdGljQ3VydmVUbyhhWzBdLCBhWzFdLCBjeCwgY3kpOwogICAgICB9LAogICAgICBxOiBmdW5jdGlvbihkb2MsIGEpIHsKICAgICAgICBkb2MucXVhZHJhdGljQ3VydmVUbyhhWzBdICsgY3gsIGFbMV0gKyBjeSwgYVsyXSArIGN4LCBhWzNdICsgY3kpOwogICAgICAgIHB4ID0gY3ggKyBhWzBdOwogICAgICAgIHB5ID0gY3kgKyBhWzFdOwogICAgICAgIGN4ICs9IGFbMl07CiAgICAgICAgcmV0dXJuIGN5ICs9IGFbM107CiAgICAgIH0sCiAgICAgIFQ6IGZ1bmN0aW9uKGRvYywgYSkgewogICAgICAgIGlmIChweCA9PT0gbnVsbCkgewogICAgICAgICAgcHggPSBjeDsKICAgICAgICAgIHB5ID0gY3k7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHB4ID0gY3ggLSAocHggLSBjeCk7CiAgICAgICAgICBweSA9IGN5IC0gKHB5IC0gY3kpOwogICAgICAgIH0KICAgICAgICBkb2MucXVhZHJhdGljQ3VydmVUbyhweCwgcHksIGFbMF0sIGFbMV0pOwogICAgICAgIHB4ID0gY3ggLSAocHggLSBjeCk7CiAgICAgICAgcHkgPSBjeSAtIChweSAtIGN5KTsKICAgICAgICBjeCA9IGFbMF07CiAgICAgICAgcmV0dXJuIGN5ID0gYVsxXTsKICAgICAgfSwKICAgICAgdDogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgaWYgKHB4ID09PSBudWxsKSB7CiAgICAgICAgICBweCA9IGN4OwogICAgICAgICAgcHkgPSBjeTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcHggPSBjeCAtIChweCAtIGN4KTsKICAgICAgICAgIHB5ID0gY3kgLSAocHkgLSBjeSk7CiAgICAgICAgfQogICAgICAgIGRvYy5xdWFkcmF0aWNDdXJ2ZVRvKHB4LCBweSwgY3ggKyBhWzBdLCBjeSArIGFbMV0pOwogICAgICAgIGN4ICs9IGFbMF07CiAgICAgICAgcmV0dXJuIGN5ICs9IGFbMV07CiAgICAgIH0sCiAgICAgIEE6IGZ1bmN0aW9uKGRvYywgYSkgewogICAgICAgIHNvbHZlQXJjKGRvYywgY3gsIGN5LCBhKTsKICAgICAgICBjeCA9IGFbNV07CiAgICAgICAgcmV0dXJuIGN5ID0gYVs2XTsKICAgICAgfSwKICAgICAgYTogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgYVs1XSArPSBjeDsKICAgICAgICBhWzZdICs9IGN5OwogICAgICAgIHNvbHZlQXJjKGRvYywgY3gsIGN5LCBhKTsKICAgICAgICBjeCA9IGFbNV07CiAgICAgICAgcmV0dXJuIGN5ID0gYVs2XTsKICAgICAgfSwKICAgICAgTDogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgY3ggPSBhWzBdOwogICAgICAgIGN5ID0gYVsxXTsKICAgICAgICBweCA9IHB5ID0gbnVsbDsKICAgICAgICByZXR1cm4gZG9jLmxpbmVUbyhjeCwgY3kpOwogICAgICB9LAogICAgICBsOiBmdW5jdGlvbihkb2MsIGEpIHsKICAgICAgICBjeCArPSBhWzBdOwogICAgICAgIGN5ICs9IGFbMV07CiAgICAgICAgcHggPSBweSA9IG51bGw7CiAgICAgICAgcmV0dXJuIGRvYy5saW5lVG8oY3gsIGN5KTsKICAgICAgfSwKICAgICAgSDogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgY3ggPSBhWzBdOwogICAgICAgIHB4ID0gcHkgPSBudWxsOwogICAgICAgIHJldHVybiBkb2MubGluZVRvKGN4LCBjeSk7CiAgICAgIH0sCiAgICAgIGg6IGZ1bmN0aW9uKGRvYywgYSkgewogICAgICAgIGN4ICs9IGFbMF07CiAgICAgICAgcHggPSBweSA9IG51bGw7CiAgICAgICAgcmV0dXJuIGRvYy5saW5lVG8oY3gsIGN5KTsKICAgICAgfSwKICAgICAgVjogZnVuY3Rpb24oZG9jLCBhKSB7CiAgICAgICAgY3kgPSBhWzBdOwogICAgICAgIHB4ID0gcHkgPSBudWxsOwogICAgICAgIHJldHVybiBkb2MubGluZVRvKGN4LCBjeSk7CiAgICAgIH0sCiAgICAgIHY6IGZ1bmN0aW9uKGRvYywgYSkgewogICAgICAgIGN5ICs9IGFbMF07CiAgICAgICAgcHggPSBweSA9IG51bGw7CiAgICAgICAgcmV0dXJuIGRvYy5saW5lVG8oY3gsIGN5KTsKICAgICAgfSwKICAgICAgWjogZnVuY3Rpb24oZG9jKSB7CiAgICAgICAgZG9jLmNsb3NlUGF0aCgpOwogICAgICAgIGN4ID0gc3g7CiAgICAgICAgcmV0dXJuIGN5ID0gc3k7CiAgICAgIH0sCiAgICAgIHo6IGZ1bmN0aW9uKGRvYykgewogICAgICAgIGRvYy5jbG9zZVBhdGgoKTsKICAgICAgICBjeCA9IHN4OwogICAgICAgIHJldHVybiBjeSA9IHN5OwogICAgICB9CiAgICB9OwoKICAgIHNvbHZlQXJjID0gZnVuY3Rpb24oZG9jLCB4LCB5LCBjb29yZHMpIHsKICAgICAgdmFyIGJleiwgZXgsIGV5LCBqLCBsYXJnZSwgbGVuLCByZXN1bHRzLCByb3QsIHJ4LCByeSwgc2VnLCBzZWdzLCBzd2VlcDsKICAgICAgcnggPSBjb29yZHNbMF0sIHJ5ID0gY29vcmRzWzFdLCByb3QgPSBjb29yZHNbMl0sIGxhcmdlID0gY29vcmRzWzNdLCBzd2VlcCA9IGNvb3Jkc1s0XSwgZXggPSBjb29yZHNbNV0sIGV5ID0gY29vcmRzWzZdOwogICAgICBzZWdzID0gYXJjVG9TZWdtZW50cyhleCwgZXksIHJ4LCByeSwgbGFyZ2UsIHN3ZWVwLCByb3QsIHgsIHkpOwogICAgICByZXN1bHRzID0gW107CiAgICAgIGZvciAoaiA9IDAsIGxlbiA9IHNlZ3MubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHsKICAgICAgICBzZWcgPSBzZWdzW2pdOwogICAgICAgIGJleiA9IHNlZ21lbnRUb0Jlemllci5hcHBseShudWxsLCBzZWcpOwogICAgICAgIHJlc3VsdHMucHVzaChkb2MuYmV6aWVyQ3VydmVUby5hcHBseShkb2MsIGJleikpOwogICAgICB9CiAgICAgIHJldHVybiByZXN1bHRzOwogICAgfTsKCiAgICBhcmNUb1NlZ21lbnRzID0gZnVuY3Rpb24oeCwgeSwgcngsIHJ5LCBsYXJnZSwgc3dlZXAsIHJvdGF0ZVgsIG94LCBveSkgewogICAgICB2YXIgYTAwLCBhMDEsIGExMCwgYTExLCBjb3NfdGgsIGQsIGksIGosIHBsLCByZWYsIHJlc3VsdCwgc2VnbWVudHMsIHNmYWN0b3IsIHNmYWN0b3Jfc3EsIHNpbl90aCwgdGgsIHRoMCwgdGgxLCB0aDIsIHRoMywgdGhfYXJjLCB4MCwgeDEsIHhjLCB5MCwgeTEsIHljOwogICAgICB0aCA9IHJvdGF0ZVggKiAoTWF0aC5QSSAvIDE4MCk7CiAgICAgIHNpbl90aCA9IE1hdGguc2luKHRoKTsKICAgICAgY29zX3RoID0gTWF0aC5jb3ModGgpOwogICAgICByeCA9IE1hdGguYWJzKHJ4KTsKICAgICAgcnkgPSBNYXRoLmFicyhyeSk7CiAgICAgIHB4ID0gY29zX3RoICogKG94IC0geCkgKiAwLjUgKyBzaW5fdGggKiAob3kgLSB5KSAqIDAuNTsKICAgICAgcHkgPSBjb3NfdGggKiAob3kgLSB5KSAqIDAuNSAtIHNpbl90aCAqIChveCAtIHgpICogMC41OwogICAgICBwbCA9IChweCAqIHB4KSAvIChyeCAqIHJ4KSArIChweSAqIHB5KSAvIChyeSAqIHJ5KTsKICAgICAgaWYgKHBsID4gMSkgewogICAgICAgIHBsID0gTWF0aC5zcXJ0KHBsKTsKICAgICAgICByeCAqPSBwbDsKICAgICAgICByeSAqPSBwbDsKICAgICAgfQogICAgICBhMDAgPSBjb3NfdGggLyByeDsKICAgICAgYTAxID0gc2luX3RoIC8gcng7CiAgICAgIGExMCA9ICgtc2luX3RoKSAvIHJ5OwogICAgICBhMTEgPSBjb3NfdGggLyByeTsKICAgICAgeDAgPSBhMDAgKiBveCArIGEwMSAqIG95OwogICAgICB5MCA9IGExMCAqIG94ICsgYTExICogb3k7CiAgICAgIHgxID0gYTAwICogeCArIGEwMSAqIHk7CiAgICAgIHkxID0gYTEwICogeCArIGExMSAqIHk7CiAgICAgIGQgPSAoeDEgLSB4MCkgKiAoeDEgLSB4MCkgKyAoeTEgLSB5MCkgKiAoeTEgLSB5MCk7CiAgICAgIHNmYWN0b3Jfc3EgPSAxIC8gZCAtIDAuMjU7CiAgICAgIGlmIChzZmFjdG9yX3NxIDwgMCkgewogICAgICAgIHNmYWN0b3Jfc3EgPSAwOwogICAgICB9CiAgICAgIHNmYWN0b3IgPSBNYXRoLnNxcnQoc2ZhY3Rvcl9zcSk7CiAgICAgIGlmIChzd2VlcCA9PT0gbGFyZ2UpIHsKICAgICAgICBzZmFjdG9yID0gLXNmYWN0b3I7CiAgICAgIH0KICAgICAgeGMgPSAwLjUgKiAoeDAgKyB4MSkgLSBzZmFjdG9yICogKHkxIC0geTApOwogICAgICB5YyA9IDAuNSAqICh5MCArIHkxKSArIHNmYWN0b3IgKiAoeDEgLSB4MCk7CiAgICAgIHRoMCA9IE1hdGguYXRhbjIoeTAgLSB5YywgeDAgLSB4Yyk7CiAgICAgIHRoMSA9IE1hdGguYXRhbjIoeTEgLSB5YywgeDEgLSB4Yyk7CiAgICAgIHRoX2FyYyA9IHRoMSAtIHRoMDsKICAgICAgaWYgKHRoX2FyYyA8IDAgJiYgc3dlZXAgPT09IDEpIHsKICAgICAgICB0aF9hcmMgKz0gMiAqIE1hdGguUEk7CiAgICAgIH0gZWxzZSBpZiAodGhfYXJjID4gMCAmJiBzd2VlcCA9PT0gMCkgewogICAgICAgIHRoX2FyYyAtPSAyICogTWF0aC5QSTsKICAgICAgfQogICAgICBzZWdtZW50cyA9IE1hdGguY2VpbChNYXRoLmFicyh0aF9hcmMgLyAoTWF0aC5QSSAqIDAuNSArIDAuMDAxKSkpOwogICAgICByZXN1bHQgPSBbXTsKICAgICAgZm9yIChpID0gaiA9IDAsIHJlZiA9IHNlZ21lbnRzOyAwIDw9IHJlZiA/IGogPCByZWYgOiBqID4gcmVmOyBpID0gMCA8PSByZWYgPyArK2ogOiAtLWopIHsKICAgICAgICB0aDIgPSB0aDAgKyBpICogdGhfYXJjIC8gc2VnbWVudHM7CiAgICAgICAgdGgzID0gdGgwICsgKGkgKyAxKSAqIHRoX2FyYyAvIHNlZ21lbnRzOwogICAgICAgIHJlc3VsdFtpXSA9IFt4YywgeWMsIHRoMiwgdGgzLCByeCwgcnksIHNpbl90aCwgY29zX3RoXTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0OwogICAgfTsKCiAgICBzZWdtZW50VG9CZXppZXIgPSBmdW5jdGlvbihjeCwgY3ksIHRoMCwgdGgxLCByeCwgcnksIHNpbl90aCwgY29zX3RoKSB7CiAgICAgIHZhciBhMDAsIGEwMSwgYTEwLCBhMTEsIHQsIHRoX2hhbGYsIHgxLCB4MiwgeDMsIHkxLCB5MiwgeTM7CiAgICAgIGEwMCA9IGNvc190aCAqIHJ4OwogICAgICBhMDEgPSAtc2luX3RoICogcnk7CiAgICAgIGExMCA9IHNpbl90aCAqIHJ4OwogICAgICBhMTEgPSBjb3NfdGggKiByeTsKICAgICAgdGhfaGFsZiA9IDAuNSAqICh0aDEgLSB0aDApOwogICAgICB0ID0gKDggLyAzKSAqIE1hdGguc2luKHRoX2hhbGYgKiAwLjUpICogTWF0aC5zaW4odGhfaGFsZiAqIDAuNSkgLyBNYXRoLnNpbih0aF9oYWxmKTsKICAgICAgeDEgPSBjeCArIE1hdGguY29zKHRoMCkgLSB0ICogTWF0aC5zaW4odGgwKTsKICAgICAgeTEgPSBjeSArIE1hdGguc2luKHRoMCkgKyB0ICogTWF0aC5jb3ModGgwKTsKICAgICAgeDMgPSBjeCArIE1hdGguY29zKHRoMSk7CiAgICAgIHkzID0gY3kgKyBNYXRoLnNpbih0aDEpOwogICAgICB4MiA9IHgzICsgdCAqIE1hdGguc2luKHRoMSk7CiAgICAgIHkyID0geTMgLSB0ICogTWF0aC5jb3ModGgxKTsKICAgICAgcmV0dXJuIFthMDAgKiB4MSArIGEwMSAqIHkxLCBhMTAgKiB4MSArIGExMSAqIHkxLCBhMDAgKiB4MiArIGEwMSAqIHkyLCBhMTAgKiB4MiArIGExMSAqIHkyLCBhMDAgKiB4MyArIGEwMSAqIHkzLCBhMTAgKiB4MyArIGExMSAqIHkzXTsKICAgIH07CgogICAgcmV0dXJuIFNWR1BhdGg7CgogIH0pKCk7CgogIG1vZHVsZS5leHBvcnRzID0gU1ZHUGF0aDsKCn0pLmNhbGwodGhpcyk7CgoKLyoqKi8gfSksCi8qIDE2NiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgooZnVuY3Rpb24oKSB7CiAgdmFyIFBERkZvbnQ7CgogIFBERkZvbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUwKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSB7CiAgICBpbml0Rm9udHM6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLl9mb250RmFtaWxpZXMgPSB7fTsKICAgICAgdGhpcy5fZm9udENvdW50ID0gMDsKICAgICAgdGhpcy5fZm9udFNpemUgPSAxMjsKICAgICAgdGhpcy5fZm9udCA9IG51bGw7CiAgICAgIHRoaXMuX3JlZ2lzdGVyZWRGb250cyA9IHt9OwogICAgICAKICAgIH0sCiAgICBmb250OiBmdW5jdGlvbihzcmMsIGZhbWlseSwgc2l6ZSkgewogICAgICB2YXIgY2FjaGVLZXksIGZvbnQsIGlkLCByZWY7CiAgICAgIGlmICh0eXBlb2YgZmFtaWx5ID09PSAnbnVtYmVyJykgewogICAgICAgIHNpemUgPSBmYW1pbHk7CiAgICAgICAgZmFtaWx5ID0gbnVsbDsKICAgICAgfQogICAgICBpZiAodHlwZW9mIHNyYyA9PT0gJ3N0cmluZycgJiYgdGhpcy5fcmVnaXN0ZXJlZEZvbnRzW3NyY10pIHsKICAgICAgICBjYWNoZUtleSA9IHNyYzsKICAgICAgICByZWYgPSB0aGlzLl9yZWdpc3RlcmVkRm9udHNbc3JjXSwgc3JjID0gcmVmLnNyYywgZmFtaWx5ID0gcmVmLmZhbWlseTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWNoZUtleSA9IGZhbWlseSB8fCBzcmM7CiAgICAgICAgaWYgKHR5cGVvZiBjYWNoZUtleSAhPT0gJ3N0cmluZycpIHsKICAgICAgICAgIGNhY2hlS2V5ID0gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHNpemUgIT0gbnVsbCkgewogICAgICAgIHRoaXMuZm9udFNpemUoc2l6ZSk7CiAgICAgIH0KICAgICAgaWYgKGZvbnQgPSB0aGlzLl9mb250RmFtaWxpZXNbY2FjaGVLZXldKSB7CiAgICAgICAgdGhpcy5fZm9udCA9IGZvbnQ7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgaWQgPSAnRicgKyAoKyt0aGlzLl9mb250Q291bnQpOwogICAgICB0aGlzLl9mb250ID0gUERGRm9udC5vcGVuKHRoaXMsIHNyYywgZmFtaWx5LCBpZCk7CiAgICAgIGlmIChmb250ID0gdGhpcy5fZm9udEZhbWlsaWVzW3RoaXMuX2ZvbnQubmFtZV0pIHsKICAgICAgICB0aGlzLl9mb250ID0gZm9udDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBpZiAoY2FjaGVLZXkpIHsKICAgICAgICB0aGlzLl9mb250RmFtaWxpZXNbY2FjaGVLZXldID0gdGhpcy5fZm9udDsKICAgICAgfQogICAgICBpZiAodGhpcy5fZm9udC5uYW1lKSB7CiAgICAgICAgdGhpcy5fZm9udEZhbWlsaWVzW3RoaXMuX2ZvbnQubmFtZV0gPSB0aGlzLl9mb250OwogICAgICB9CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIGZvbnRTaXplOiBmdW5jdGlvbihfZm9udFNpemUpIHsKICAgICAgdGhpcy5fZm9udFNpemUgPSBfZm9udFNpemU7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIGN1cnJlbnRMaW5lSGVpZ2h0OiBmdW5jdGlvbihpbmNsdWRlR2FwKSB7CiAgICAgIGlmIChpbmNsdWRlR2FwID09IG51bGwpIHsKICAgICAgICBpbmNsdWRlR2FwID0gZmFsc2U7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuX2ZvbnQubGluZUhlaWdodCh0aGlzLl9mb250U2l6ZSwgaW5jbHVkZUdhcCk7CiAgICB9LAogICAgcmVnaXN0ZXJGb250OiBmdW5jdGlvbihuYW1lLCBzcmMsIGZhbWlseSkgewogICAgICB0aGlzLl9yZWdpc3RlcmVkRm9udHNbbmFtZV0gPSB7CiAgICAgICAgc3JjOiBzcmMsCiAgICAgICAgZmFtaWx5OiBmYW1pbHkKICAgICAgfTsKICAgICAgcmV0dXJuIHRoaXM7CiAgICB9CiAgfTsKCn0pLmNhbGwodGhpcyk7CgoKLyoqKi8gfSksCi8qIDE2NyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Ci8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihCdWZmZXIsIHByb2Nlc3MpIHsKCmZ1bmN0aW9uIF9pbnRlcm9wRGVmYXVsdCAoZXgpIHsgcmV0dXJuIChleCAmJiAodHlwZW9mIGV4ID09PSAnb2JqZWN0JykgJiYgJ2RlZmF1bHQnIGluIGV4KSA/IGV4WydkZWZhdWx0J10gOiBleDsgfQoKdmFyIHIgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygxNjgpKTsKdmFyIF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMTk3KSk7CnZhciBfZ2V0SXRlcmF0b3IgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg2MCkpOwp2YXIgX09iamVjdCRmcmVlemUgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyMDkpKTsKdmFyIF9PYmplY3Qka2V5cyA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDIxMikpOwp2YXIgX3R5cGVvZiA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDY5KSk7CnZhciBfT2JqZWN0JGRlZmluZVByb3BlcnR5ID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oNzQpKTsKdmFyIF9jbGFzc0NhbGxDaGVjayA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDEwNikpOwp2YXIgX2NyZWF0ZUNsYXNzID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMTA3KSk7CnZhciBfTWFwID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMjI1KSk7CnZhciBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDIzNikpOwp2YXIgX2luaGVyaXRzID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMjM3KSk7CnZhciByZXN0cnVjdHVyZV9zcmNfdXRpbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKdmFyIF9PYmplY3QkZGVmaW5lUHJvcGVydGllcyA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDI0NSkpOwp2YXIgaXNFcXVhbCA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDI0OCkpOwp2YXIgX09iamVjdCRhc3NpZ24gPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyNTEpKTsKdmFyIF9TdHJpbmckZnJvbUNvZGVQb2ludCA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDI1NSkpOwp2YXIgX0FycmF5JGZyb20gPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyNTgpKTsKdmFyIF9TZXQgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyNjMpKTsKdmFyIHVuaWNvZGUgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyNjkpKTsKdmFyIFVuaWNvZGVUcmllID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oNDMpKTsKdmFyIFN0YXRlTWFjaGluZSA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDI3MSkpOwp2YXIgX051bWJlciRFUFNJTE9OID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMjgwKSk7CnZhciBjbG9uZURlZXAgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyODMpKTsKdmFyIGluZmxhdGUgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXyg3OSkpOwp2YXIgYnJvdGxpID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMjg0KSk7CgoKCnZhciBmb250a2l0ID0ge307CmZvbnRraXQubG9nRXJyb3JzID0gZmFsc2U7Cgp2YXIgZm9ybWF0cyA9IFtdOwpmb250a2l0LnJlZ2lzdGVyRm9ybWF0ID0gZnVuY3Rpb24gKGZvcm1hdCkgewogIGZvcm1hdHMucHVzaChmb3JtYXQpOwp9OwoKZm9udGtpdC5vcGVuU3luYyA9IGZ1bmN0aW9uIChmaWxlbmFtZSwgcG9zdHNjcmlwdE5hbWUpIHsKICB2YXIgYnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXyg4KS5yZWFkRmlsZVN5bmMoZmlsZW5hbWUpOwogIHJldHVybiBmb250a2l0LmNyZWF0ZShidWZmZXIsIHBvc3RzY3JpcHROYW1lKTsKfTsKCmZvbnRraXQub3BlbiA9IGZ1bmN0aW9uIChmaWxlbmFtZSwgcG9zdHNjcmlwdE5hbWUsIGNhbGxiYWNrKSB7CiAgaWYgKHR5cGVvZiBwb3N0c2NyaXB0TmFtZSA9PT0gJ2Z1bmN0aW9uJykgewogICAgY2FsbGJhY2sgPSBwb3N0c2NyaXB0TmFtZTsKICAgIHBvc3RzY3JpcHROYW1lID0gbnVsbDsKICB9CgogIF9fd2VicGFja19yZXF1aXJlX18oOCkucmVhZEZpbGUoZmlsZW5hbWUsIGZ1bmN0aW9uIChlcnIsIGJ1ZmZlcikgewogICAgaWYgKGVycikgewogICAgICByZXR1cm4gY2FsbGJhY2soZXJyKTsKICAgIH0KCiAgICB0cnkgewogICAgICB2YXIgZm9udCA9IGZvbnRraXQuY3JlYXRlKGJ1ZmZlciwgcG9zdHNjcmlwdE5hbWUpOwogICAgfSBjYXRjaCAoZSkgewogICAgICByZXR1cm4gY2FsbGJhY2soZSk7CiAgICB9CgogICAgcmV0dXJuIGNhbGxiYWNrKG51bGwsIGZvbnQpOwogIH0pOwoKICByZXR1cm47Cn07Cgpmb250a2l0LmNyZWF0ZSA9IGZ1bmN0aW9uIChidWZmZXIsIHBvc3RzY3JpcHROYW1lKSB7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtYXRzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgZm9ybWF0ID0gZm9ybWF0c1tpXTsKICAgIGlmIChmb3JtYXQucHJvYmUoYnVmZmVyKSkgewogICAgICB2YXIgZm9udCA9IG5ldyBmb3JtYXQobmV3IHIuRGVjb2RlU3RyZWFtKGJ1ZmZlcikpOwogICAgICBpZiAocG9zdHNjcmlwdE5hbWUpIHsKICAgICAgICByZXR1cm4gZm9udC5nZXRGb250KHBvc3RzY3JpcHROYW1lKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGZvbnQ7CiAgICB9CiAgfQoKICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gZm9udCBmb3JtYXQnKTsKfTsKCi8qKgogKiBUaGlzIGRlY29yYXRvciBjYWNoZXMgdGhlIHJlc3VsdHMgb2YgYSBnZXR0ZXIgb3IgbWV0aG9kIHN1Y2ggdGhhdAogKiB0aGUgcmVzdWx0cyBhcmUgbGF6aWx5IGNvbXB1dGVkIG9uY2UsIGFuZCB0aGVuIGNhY2hlZC4KICogQHByaXZhdGUKICovCmZ1bmN0aW9uIGNhY2hlKHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKSB7CiAgaWYgKGRlc2NyaXB0b3IuZ2V0KSB7CiAgICB2YXIgZ2V0ID0gZGVzY3JpcHRvci5nZXQ7CiAgICBkZXNjcmlwdG9yLmdldCA9IGZ1bmN0aW9uICgpIHsKICAgICAgdmFyIHZhbHVlID0gZ2V0LmNhbGwodGhpcyk7CiAgICAgIF9PYmplY3QkZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7IHZhbHVlOiB2YWx1ZSB9KTsKICAgICAgcmV0dXJuIHZhbHVlOwogICAgfTsKICB9IGVsc2UgaWYgKHR5cGVvZiBkZXNjcmlwdG9yLnZhbHVlID09PSAnZnVuY3Rpb24nKSB7CiAgICB2YXIgZm4gPSBkZXNjcmlwdG9yLnZhbHVlOwoKICAgIHJldHVybiB7CiAgICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICAgIHZhciBjYWNoZSA9IG5ldyBfTWFwKCk7CiAgICAgICAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7CiAgICAgICAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykgewogICAgICAgICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBrZXkgPSBhcmdzLmxlbmd0aCA+IDAgPyBhcmdzWzBdIDogJ3ZhbHVlJzsKICAgICAgICAgIGlmIChjYWNoZS5oYXMoa2V5KSkgewogICAgICAgICAgICByZXR1cm4gY2FjaGUuZ2V0KGtleSk7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIHJlc3VsdCA9IGZuLmFwcGx5KHRoaXMsIGFyZ3MpOwogICAgICAgICAgY2FjaGUuc2V0KGtleSwgcmVzdWx0KTsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfTsKCiAgICAgICAgX09iamVjdCRkZWZpbmVQcm9wZXJ0eSh0aGlzLCBrZXksIHsgdmFsdWU6IG1lbW9pemVkIH0pOwogICAgICAgIHJldHVybiBtZW1vaXplZDsKICAgICAgfQogICAgfTsKICB9Cn0KCnZhciBTdWJIZWFkZXIgPSBuZXcgci5TdHJ1Y3QoewogIGZpcnN0Q29kZTogci51aW50MTYsCiAgZW50cnlDb3VudDogci51aW50MTYsCiAgaWREZWx0YTogci5pbnQxNiwKICBpZFJhbmdlT2Zmc2V0OiByLnVpbnQxNgp9KTsKCnZhciBDbWFwR3JvdXAgPSBuZXcgci5TdHJ1Y3QoewogIHN0YXJ0Q2hhckNvZGU6IHIudWludDMyLAogIGVuZENoYXJDb2RlOiByLnVpbnQzMiwKICBnbHlwaElEOiByLnVpbnQzMgp9KTsKCnZhciBVbmljb2RlVmFsdWVSYW5nZSA9IG5ldyByLlN0cnVjdCh7CiAgc3RhcnRVbmljb2RlVmFsdWU6IHIudWludDI0LAogIGFkZGl0aW9uYWxDb3VudDogci51aW50OAp9KTsKCnZhciBVVlNNYXBwaW5nID0gbmV3IHIuU3RydWN0KHsKICB1bmljb2RlVmFsdWU6IHIudWludDI0LAogIGdseXBoSUQ6IHIudWludDE2Cn0pOwoKdmFyIERlZmF1bHRVVlMgPSBuZXcgci5BcnJheShVbmljb2RlVmFsdWVSYW5nZSwgci51aW50MzIpOwp2YXIgTm9uRGVmYXVsdFVWUyA9IG5ldyByLkFycmF5KFVWU01hcHBpbmcsIHIudWludDMyKTsKCnZhciBWYXJTZWxlY3RvclJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgdmFyU2VsZWN0b3I6IHIudWludDI0LAogIGRlZmF1bHRVVlM6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIERlZmF1bHRVVlMsIHsgdHlwZTogJ3BhcmVudCcgfSksCiAgbm9uRGVmYXVsdFVWUzogbmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgTm9uRGVmYXVsdFVWUywgeyB0eXBlOiAncGFyZW50JyB9KQp9KTsKCnZhciBDbWFwU3VidGFibGUgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3Qoci51aW50MTYsIHsKICAwOiB7IC8vIEJ5dGUgZW5jb2RpbmcKICAgIGxlbmd0aDogci51aW50MTYsIC8vIFRvdGFsIHRhYmxlIGxlbmd0aCBpbiBieXRlcyAoc2V0IHRvIDI2MiBmb3IgZm9ybWF0IDApCiAgICBsYW5ndWFnZTogci51aW50MTYsIC8vIExhbmd1YWdlIGNvZGUgZm9yIHRoaXMgZW5jb2Rpbmcgc3VidGFibGUsIG9yIHplcm8gaWYgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQKICAgIGNvZGVNYXA6IG5ldyByLkxhenlBcnJheShyLnVpbnQ4LCAyNTYpCiAgfSwKCiAgMjogeyAvLyBIaWdoLWJ5dGUgbWFwcGluZyAoQ0pLKQogICAgbGVuZ3RoOiByLnVpbnQxNiwKICAgIGxhbmd1YWdlOiByLnVpbnQxNiwKICAgIHN1YkhlYWRlcktleXM6IG5ldyByLkFycmF5KHIudWludDE2LCAyNTYpLAogICAgc3ViSGVhZGVyQ291bnQ6IGZ1bmN0aW9uIHN1YkhlYWRlckNvdW50KHQpIHsKICAgICAgcmV0dXJuIE1hdGgubWF4LmFwcGx5KE1hdGgsIHQuc3ViSGVhZGVyS2V5cyk7CiAgICB9LAogICAgc3ViSGVhZGVyczogbmV3IHIuTGF6eUFycmF5KFN1YkhlYWRlciwgJ3N1YkhlYWRlckNvdW50JyksCiAgICBnbHlwaEluZGV4QXJyYXk6IG5ldyByLkxhenlBcnJheShyLnVpbnQxNiwgJ3N1YkhlYWRlckNvdW50JykKICB9LAoKICA0OiB7IC8vIFNlZ21lbnQgbWFwcGluZyB0byBkZWx0YSB2YWx1ZXMKICAgIGxlbmd0aDogci51aW50MTYsIC8vIFRvdGFsIHRhYmxlIGxlbmd0aCBpbiBieXRlcwogICAgbGFuZ3VhZ2U6IHIudWludDE2LCAvLyBMYW5ndWFnZSBjb2RlCiAgICBzZWdDb3VudFgyOiByLnVpbnQxNiwKICAgIHNlZ0NvdW50OiBmdW5jdGlvbiBzZWdDb3VudCh0KSB7CiAgICAgIHJldHVybiB0LnNlZ0NvdW50WDIgPj4gMTsKICAgIH0sCiAgICBzZWFyY2hSYW5nZTogci51aW50MTYsCiAgICBlbnRyeVNlbGVjdG9yOiByLnVpbnQxNiwKICAgIHJhbmdlU2hpZnQ6IHIudWludDE2LAogICAgZW5kQ29kZTogbmV3IHIuTGF6eUFycmF5KHIudWludDE2LCAnc2VnQ291bnQnKSwKICAgIHJlc2VydmVkUGFkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiksIC8vIFRoaXMgdmFsdWUgc2hvdWxkIGJlIHplcm8KICAgIHN0YXJ0Q29kZTogbmV3IHIuTGF6eUFycmF5KHIudWludDE2LCAnc2VnQ291bnQnKSwKICAgIGlkRGVsdGE6IG5ldyByLkxhenlBcnJheShyLmludDE2LCAnc2VnQ291bnQnKSwKICAgIGlkUmFuZ2VPZmZzZXQ6IG5ldyByLkxhenlBcnJheShyLnVpbnQxNiwgJ3NlZ0NvdW50JyksCiAgICBnbHlwaEluZGV4QXJyYXk6IG5ldyByLkxhenlBcnJheShyLnVpbnQxNiwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuICh0Lmxlbmd0aCAtIHQuX2N1cnJlbnRPZmZzZXQpIC8gMjsKICAgIH0pCiAgfSwKCiAgNjogeyAvLyBUcmltbWVkIHRhYmxlCiAgICBsZW5ndGg6IHIudWludDE2LAogICAgbGFuZ3VhZ2U6IHIudWludDE2LAogICAgZmlyc3RDb2RlOiByLnVpbnQxNiwKICAgIGVudHJ5Q291bnQ6IHIudWludDE2LAogICAgZ2x5cGhJbmRpY2VzOiBuZXcgci5MYXp5QXJyYXkoci51aW50MTYsICdlbnRyeUNvdW50JykKICB9LAoKICA4OiB7IC8vIG1peGVkIDE2LWJpdCBhbmQgMzItYml0IGNvdmVyYWdlCiAgICByZXNlcnZlZDogbmV3IHIuUmVzZXJ2ZWQoci51aW50MTYpLAogICAgbGVuZ3RoOiByLnVpbnQzMiwKICAgIGxhbmd1YWdlOiByLnVpbnQxNiwKICAgIGlzMzI6IG5ldyByLkxhenlBcnJheShyLnVpbnQ4LCA4MTkyKSwKICAgIG5Hcm91cHM6IHIudWludDMyLAogICAgZ3JvdXBzOiBuZXcgci5MYXp5QXJyYXkoQ21hcEdyb3VwLCAnbkdyb3VwcycpCiAgfSwKCiAgMTA6IHsgLy8gVHJpbW1lZCBBcnJheQogICAgcmVzZXJ2ZWQ6IG5ldyByLlJlc2VydmVkKHIudWludDE2KSwKICAgIGxlbmd0aDogci51aW50MzIsCiAgICBsYW5ndWFnZTogci51aW50MzIsCiAgICBmaXJzdENvZGU6IHIudWludDMyLAogICAgZW50cnlDb3VudDogci51aW50MzIsCiAgICBnbHlwaEluZGljZXM6IG5ldyByLkxhenlBcnJheShyLnVpbnQxNiwgJ251bUNoYXJzJykKICB9LAoKICAxMjogeyAvLyBTZWdtZW50ZWQgY292ZXJhZ2UKICAgIHJlc2VydmVkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiksCiAgICBsZW5ndGg6IHIudWludDMyLAogICAgbGFuZ3VhZ2U6IHIudWludDMyLAogICAgbkdyb3Vwczogci51aW50MzIsCiAgICBncm91cHM6IG5ldyByLkxhenlBcnJheShDbWFwR3JvdXAsICduR3JvdXBzJykKICB9LAoKICAxMzogeyAvLyBNYW55LXRvLW9uZSByYW5nZSBtYXBwaW5ncyAoc2FtZSBhcyAxMiBleGNlcHQgZm9yIGdyb3VwLnN0YXJ0R2x5cGhJRCkKICAgIHJlc2VydmVkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiksCiAgICBsZW5ndGg6IHIudWludDMyLAogICAgbGFuZ3VhZ2U6IHIudWludDMyLAogICAgbkdyb3Vwczogci51aW50MzIsCiAgICBncm91cHM6IG5ldyByLkxhenlBcnJheShDbWFwR3JvdXAsICduR3JvdXBzJykKICB9LAoKICAxNDogeyAvLyBVbmljb2RlIFZhcmlhdGlvbiBTZXF1ZW5jZXMKICAgIGxlbmd0aDogci51aW50MzIsCiAgICBudW1SZWNvcmRzOiByLnVpbnQzMiwKICAgIHZhclNlbGVjdG9yczogbmV3IHIuTGF6eUFycmF5KFZhclNlbGVjdG9yUmVjb3JkLCAnbnVtUmVjb3JkcycpCiAgfQp9KTsKCnZhciBDbWFwRW50cnkgPSBuZXcgci5TdHJ1Y3QoewogIHBsYXRmb3JtSUQ6IHIudWludDE2LCAvLyBQbGF0Zm9ybSBpZGVudGlmaWVyCiAgZW5jb2RpbmdJRDogci51aW50MTYsIC8vIFBsYXRmb3JtLXNwZWNpZmljIGVuY29kaW5nIGlkZW50aWZpZXIKICB0YWJsZTogbmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgQ21hcFN1YnRhYmxlLCB7IHR5cGU6ICdwYXJlbnQnLCBsYXp5OiB0cnVlIH0pCn0pOwoKLy8gY2hhcmFjdGVyIHRvIGdseXBoIG1hcHBpbmcKdmFyIGNtYXAgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIudWludDE2LAogIG51bVN1YnRhYmxlczogci51aW50MTYsCiAgdGFibGVzOiBuZXcgci5BcnJheShDbWFwRW50cnksICdudW1TdWJ0YWJsZXMnKQp9KTsKCi8vIGZvbnQgaGVhZGVyCnZhciBoZWFkID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLmludDMyLCAvLyAweDAwMDEwMDAwICh2ZXJzaW9uIDEuMCkKICByZXZpc2lvbjogci5pbnQzMiwgLy8gc2V0IGJ5IGZvbnQgbWFudWZhY3R1cmVyCiAgY2hlY2tTdW1BZGp1c3RtZW50OiByLnVpbnQzMiwKICBtYWdpY051bWJlcjogci51aW50MzIsIC8vIHNldCB0byAweDVGMEYzQ0Y1CiAgZmxhZ3M6IHIudWludDE2LAogIHVuaXRzUGVyRW06IHIudWludDE2LCAvLyByYW5nZSBmcm9tIDY0IHRvIDE2Mzg0CiAgY3JlYXRlZDogbmV3IHIuQXJyYXkoci5pbnQzMiwgMiksCiAgbW9kaWZpZWQ6IG5ldyByLkFycmF5KHIuaW50MzIsIDIpLAogIHhNaW46IHIuaW50MTYsIC8vIGZvciBhbGwgZ2x5cGggYm91bmRpbmcgYm94ZXMKICB5TWluOiByLmludDE2LCAvLyBmb3IgYWxsIGdseXBoIGJvdW5kaW5nIGJveGVzCiAgeE1heDogci5pbnQxNiwgLy8gZm9yIGFsbCBnbHlwaCBib3VuZGluZyBib3hlcwogIHlNYXg6IHIuaW50MTYsIC8vIGZvciBhbGwgZ2x5cGggYm91bmRpbmcgYm94ZXMKICBtYWNTdHlsZTogbmV3IHIuQml0ZmllbGQoci51aW50MTYsIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ291dGxpbmUnLCAnc2hhZG93JywgJ2NvbmRlbnNlZCcsICdleHRlbmRlZCddKSwKICBsb3dlc3RSZWNQUEVNOiByLnVpbnQxNiwgLy8gc21hbGxlc3QgcmVhZGFibGUgc2l6ZSBpbiBwaXhlbHMKICBmb250RGlyZWN0aW9uSGludDogci5pbnQxNiwKICBpbmRleFRvTG9jRm9ybWF0OiByLmludDE2LCAvLyAwIGZvciBzaG9ydCBvZmZzZXRzLCAxIGZvciBsb25nCiAgZ2x5cGhEYXRhRm9ybWF0OiByLmludDE2IC8vIDAgZm9yIGN1cnJlbnQgZm9ybWF0Cn0pOwoKLy8gaG9yaXpvbnRhbCBoZWFkZXIKdmFyIGhoZWEgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIuaW50MzIsCiAgYXNjZW50OiByLmludDE2LCAvLyBEaXN0YW5jZSBmcm9tIGJhc2VsaW5lIG9mIGhpZ2hlc3QgYXNjZW5kZXIKICBkZXNjZW50OiByLmludDE2LCAvLyBEaXN0YW5jZSBmcm9tIGJhc2VsaW5lIG9mIGxvd2VzdCBkZXNjZW5kZXIKICBsaW5lR2FwOiByLmludDE2LCAvLyBUeXBvZ3JhcGhpYyBsaW5lIGdhcAogIGFkdmFuY2VXaWR0aE1heDogci51aW50MTYsIC8vIE1heGltdW0gYWR2YW5jZSB3aWR0aCB2YWx1ZSBpbiAnaG10eCcgdGFibGUKICBtaW5MZWZ0U2lkZUJlYXJpbmc6IHIuaW50MTYsIC8vIE1heGltdW0gYWR2YW5jZSB3aWR0aCB2YWx1ZSBpbiAnaG10eCcgdGFibGUKICBtaW5SaWdodFNpZGVCZWFyaW5nOiByLmludDE2LCAvLyBNaW5pbXVtIHJpZ2h0IHNpZGViZWFyaW5nIHZhbHVlCiAgeE1heEV4dGVudDogci5pbnQxNiwKICBjYXJldFNsb3BlUmlzZTogci5pbnQxNiwgLy8gVXNlZCB0byBjYWxjdWxhdGUgdGhlIHNsb3BlIG9mIHRoZSBjdXJzb3IgKHJpc2UvcnVuKTsgMSBmb3IgdmVydGljYWwKICBjYXJldFNsb3BlUnVuOiByLmludDE2LCAvLyAwIGZvciB2ZXJ0aWNhbAogIGNhcmV0T2Zmc2V0OiByLmludDE2LCAvLyBTZXQgdG8gMCBmb3Igbm9uLXNsYW50ZWQgZm9udHMKICByZXNlcnZlZDogbmV3IHIuUmVzZXJ2ZWQoci5pbnQxNiwgNCksCiAgbWV0cmljRGF0YUZvcm1hdDogci5pbnQxNiwgLy8gMCBmb3IgY3VycmVudCBmb3JtYXQKICBudW1iZXJPZk1ldHJpY3M6IHIudWludDE2IC8vIE51bWJlciBvZiBhZHZhbmNlIHdpZHRocyBpbiAnaG10eCcgdGFibGUKfSk7Cgp2YXIgSG10eEVudHJ5ID0gbmV3IHIuU3RydWN0KHsKICBhZHZhbmNlOiByLnVpbnQxNiwKICBiZWFyaW5nOiByLmludDE2Cn0pOwoKdmFyIGhtdHggPSBuZXcgci5TdHJ1Y3QoewogIG1ldHJpY3M6IG5ldyByLkxhenlBcnJheShIbXR4RW50cnksIGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC5wYXJlbnQuaGhlYS5udW1iZXJPZk1ldHJpY3M7CiAgfSksCiAgYmVhcmluZ3M6IG5ldyByLkxhenlBcnJheShyLmludDE2LCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQucGFyZW50Lm1heHAubnVtR2x5cGhzIC0gdC5wYXJlbnQuaGhlYS5udW1iZXJPZk1ldHJpY3M7CiAgfSkKfSk7CgovLyBtYXhpdW11bSBwcm9maWxlCnZhciBtYXhwID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLmludDMyLAogIG51bUdseXBoczogci51aW50MTYsIC8vIFRoZSBudW1iZXIgb2YgZ2x5cGhzIGluIHRoZSBmb250CiAgbWF4UG9pbnRzOiByLnVpbnQxNiwgLy8gTWF4aW11bSBwb2ludHMgaW4gYSBub24tY29tcG9zaXRlIGdseXBoCiAgbWF4Q29udG91cnM6IHIudWludDE2LCAvLyBNYXhpbXVtIGNvbnRvdXJzIGluIGEgbm9uLWNvbXBvc2l0ZSBnbHlwaAogIG1heENvbXBvbmVudFBvaW50czogci51aW50MTYsIC8vIE1heGltdW0gcG9pbnRzIGluIGEgY29tcG9zaXRlIGdseXBoCiAgbWF4Q29tcG9uZW50Q29udG91cnM6IHIudWludDE2LCAvLyBNYXhpbXVtIGNvbnRvdXJzIGluIGEgY29tcG9zaXRlIGdseXBoCiAgbWF4Wm9uZXM6IHIudWludDE2LCAvLyAxIGlmIGluc3RydWN0aW9ucyBkbyBub3QgdXNlIHRoZSB0d2lsaWdodCB6b25lLCAyIG90aGVyd2lzZQogIG1heFR3aWxpZ2h0UG9pbnRzOiByLnVpbnQxNiwgLy8gTWF4aW11bSBwb2ludHMgdXNlZCBpbiBaMAogIG1heFN0b3JhZ2U6IHIudWludDE2LCAvLyBOdW1iZXIgb2YgU3RvcmFnZSBBcmVhIGxvY2F0aW9ucwogIG1heEZ1bmN0aW9uRGVmczogci51aW50MTYsIC8vIE51bWJlciBvZiBGREVGcwogIG1heEluc3RydWN0aW9uRGVmczogci51aW50MTYsIC8vIE51bWJlciBvZiBJREVGcwogIG1heFN0YWNrRWxlbWVudHM6IHIudWludDE2LCAvLyBNYXhpbXVtIHN0YWNrIGRlcHRoCiAgbWF4U2l6ZU9mSW5zdHJ1Y3Rpb25zOiByLnVpbnQxNiwgLy8gTWF4aW11bSBieXRlIGNvdW50IGZvciBnbHlwaCBpbnN0cnVjdGlvbnMKICBtYXhDb21wb25lbnRFbGVtZW50czogci51aW50MTYsIC8vIE1heGltdW0gbnVtYmVyIG9mIGNvbXBvbmVudHMgcmVmZXJlbmNlZCBhdCDigJx0b3AgbGV2ZWzigJ0gZm9yIGFueSBjb21wb3NpdGUgZ2x5cGgKICBtYXhDb21wb25lbnREZXB0aDogci51aW50MTYgLy8gTWF4aW11bSBsZXZlbHMgb2YgcmVjdXJzaW9uOyAxIGZvciBzaW1wbGUgY29tcG9uZW50cwp9KTsKCi8qKgogKiBHZXRzIGFuIGVuY29kaW5nIG5hbWUgZnJvbSBwbGF0Zm9ybSwgZW5jb2RpbmcsIGFuZCBsYW5ndWFnZSBpZHMuCiAqIFJldHVybmVkIGVuY29kaW5nIG5hbWVzIGNhbiBiZSB1c2VkIGluIGljb252LWxpdGUgdG8gZGVjb2RlIHRleHQuCiAqLwpmdW5jdGlvbiBnZXRFbmNvZGluZyhwbGF0Zm9ybUlELCBlbmNvZGluZ0lEKSB7CiAgdmFyIGxhbmd1YWdlSUQgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDA7CgogIGlmIChwbGF0Zm9ybUlEID09PSAxICYmIE1BQ19MQU5HVUFHRV9FTkNPRElOR1NbbGFuZ3VhZ2VJRF0pIHsKICAgIHJldHVybiBNQUNfTEFOR1VBR0VfRU5DT0RJTkdTW2xhbmd1YWdlSURdOwogIH0KCiAgcmV0dXJuIEVOQ09ESU5HU1twbGF0Zm9ybUlEXVtlbmNvZGluZ0lEXTsKfQoKLy8gTWFwIG9mIHBsYXRmb3JtIGlkcyB0byBlbmNvZGluZyBpZHMuCnZhciBFTkNPRElOR1MgPSBbCi8vIHVuaWNvZGUKWyd1dGYxNmJlJywgJ3V0ZjE2YmUnLCAndXRmMTZiZScsICd1dGYxNmJlJywgJ3V0ZjE2YmUnLCAndXRmMTZiZSddLAoKLy8gbWFjaW50b3NoCi8vIE1hcHBpbmdzIGF2YWlsYWJsZSBhdCBodHRwOi8vdW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL1ZFTkRPUlMvQVBQTEUvCi8vIDAJUm9tYW4gICAgICAgICAgICAgICAgIDE3CU1hbGF5YWxhbQovLyAxCUphcGFuZXNlCSAgICAgICAgICAgIDE4CVNpbmhhbGVzZQovLyAyCVRyYWRpdGlvbmFsIENoaW5lc2UJICAxOQlCdXJtZXNlCi8vIDMJS29yZWFuCSAgICAgICAgICAgICAgMjAJS2htZXIKLy8gNAlBcmFiaWMJICAgICAgICAgICAgICAyMQlUaGFpCi8vIDUJSGVicmV3CSAgICAgICAgICAgICAgMjIJTGFvdGlhbgovLyA2CUdyZWVrCSAgICAgICAgICAgICAgICAyMwlHZW9yZ2lhbgovLyA3CVJ1c3NpYW4JICAgICAgICAgICAgICAyNAlBcm1lbmlhbgovLyA4CVJTeW1ib2wJICAgICAgICAgICAgICAyNQlTaW1wbGlmaWVkIENoaW5lc2UKLy8gOQlEZXZhbmFnYXJpCSAgICAgICAgICAyNglUaWJldGFuCi8vIDEwCUd1cm11a2hpCSAgICAgICAgICAgIDI3CU1vbmdvbGlhbgovLyAxMQlHdWphcmF0aQkgICAgICAgICAgICAyOAlHZWV6Ci8vIDEyCU9yaXlhCSAgICAgICAgICAgICAgICAyOQlTbGF2aWMKLy8gMTMJQmVuZ2FsaQkgICAgICAgICAgICAgIDMwCVZpZXRuYW1lc2UKLy8gMTQJVGFtaWwJICAgICAgICAgICAgICAgIDMxCVNpbmRoaQovLyAxNQlUZWx1Z3UJICAgICAgICAgICAgICAzMgkoVW5pbnRlcnByZXRlZCkKLy8gMTYJS2FubmFkYQpbJ21hY3JvbWFuJywgJ3NoaWZ0LWppcycsICdiaWc1JywgJ2V1Yy1rcicsICdpc28tODg1OS02JywgJ2lzby04ODU5LTgnLCAnbWFjZ3JlZWsnLCAnbWFjY3lyaWxsaWMnLCAnc3ltYm9sJywgJ0RldmFuYWdhcmknLCAnR3VybXVraGknLCAnR3VqYXJhdGknLCAnT3JpeWEnLCAnQmVuZ2FsaScsICdUYW1pbCcsICdUZWx1Z3UnLCAnS2FubmFkYScsICdNYWxheWFsYW0nLCAnU2luaGFsZXNlJywgJ0J1cm1lc2UnLCAnS2htZXInLCAnbWFjdGhhaScsICdMYW90aWFuJywgJ0dlb3JnaWFuJywgJ0FybWVuaWFuJywgJ2diLTIzMTItODAnLCAnVGliZXRhbicsICdNb25nb2xpYW4nLCAnR2VleicsICdtYWNjZW50ZXVybycsICdWaWV0bmFtZXNlJywgJ1NpbmRoaSddLAoKLy8gSVNPIChkZXByZWNhdGVkKQpbJ2FzY2lpJ10sCgovLyB3aW5kb3dzCi8vIERvY3MgaGVyZTogaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3N5c3RlbS50ZXh0LmVuY29kaW5nKHY9dnMuMTEwKS5hc3B4Clsnc3ltYm9sJywgJ3V0ZjE2YmUnLCAnc2hpZnQtamlzJywgJ2diMTgwMzAnLCAnYmlnNScsICd3YW5zdW5nJywgJ2pvaGFiJywgbnVsbCwgbnVsbCwgbnVsbCwgJ3V0ZjE2YmUnXV07CgovLyBPdmVycmlkZXMgZm9yIE1hYyBzY3JpcHRzIGJ5IGxhbmd1YWdlIGlkLgovLyBTZWUgaHR0cDovL3VuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9WRU5ET1JTL0FQUExFL1JlYWRtZS50eHQKdmFyIE1BQ19MQU5HVUFHRV9FTkNPRElOR1MgPSB7CiAgMTU6ICdtYWNpY2VsYW5kJywKICAxNzogJ21hY3R1cmtpc2gnLAogIDE4OiAnbWFjY3JvYXRpYW4nLAogIDI0OiAnbWFjY2VudGV1cm8nLAogIDI1OiAnbWFjY2VudGV1cm8nLAogIDI2OiAnbWFjY2VudGV1cm8nLAogIDI3OiAnbWFjY2VudGV1cm8nLAogIDI4OiAnbWFjY2VudGV1cm8nLAogIDMwOiAnbWFjaWNlbGFuZCcsCiAgMzc6ICdtYWNyb21hbmlhJywKICAzODogJ21hY2NlbnRldXJvJywKICAzOTogJ21hY2NlbnRldXJvJywKICA0MDogJ21hY2NlbnRldXJvJywKICAxNDM6ICdtYWNpbnVpdCcsIC8vIFVuc3VwcG9ydGVkIGJ5IGljb252LWxpdGUKICAxNDY6ICdtYWNnYWVsaWMnIC8vIFVuc3VwcG9ydGVkIGJ5IGljb252LWxpdGUKfTsKCi8vIE1hcCBvZiBwbGF0Zm9ybSBpZHMgdG8gQkNQLTQ3IGxhbmd1YWdlIGNvZGVzLgp2YXIgTEFOR1VBR0VTID0gWwovLyB1bmljb2RlCltdLCB7IC8vIG1hY2ludG9zaAogIDA6ICdlbicsIDMwOiAnZm8nLCA2MDogJ2tzJywgOTA6ICdydycsCiAgMTogJ2ZyJywgMzE6ICdmYScsIDYxOiAna3UnLCA5MTogJ3JuJywKICAyOiAnZGUnLCAzMjogJ3J1JywgNjI6ICdzZCcsIDkyOiAnbnknLAogIDM6ICdpdCcsIDMzOiAnemgnLCA2MzogJ2JvJywgOTM6ICdtZycsCiAgNDogJ25sJywgMzQ6ICdubC1CRScsIDY0OiAnbmUnLCA5NDogJ2VvJywKICA1OiAnc3YnLCAzNTogJ2dhJywgNjU6ICdzYScsIDEyODogJ2N5JywKICA2OiAnZXMnLCAzNjogJ3NxJywgNjY6ICdtcicsIDEyOTogJ2V1JywKICA3OiAnZGEnLCAzNzogJ3JvJywgNjc6ICdibicsIDEzMDogJ2NhJywKICA4OiAncHQnLCAzODogJ2N6JywgNjg6ICdhcycsIDEzMTogJ2xhJywKICA5OiAnbm8nLCAzOTogJ3NrJywgNjk6ICdndScsIDEzMjogJ3F1JywKICAxMDogJ2hlJywgNDA6ICdzaScsIDcwOiAncGEnLCAxMzM6ICdnbicsCiAgMTE6ICdqYScsIDQxOiAneWknLCA3MTogJ29yJywgMTM0OiAnYXknLAogIDEyOiAnYXInLCA0MjogJ3NyJywgNzI6ICdtbCcsIDEzNTogJ3R0JywKICAxMzogJ2ZpJywgNDM6ICdtaycsIDczOiAna24nLCAxMzY6ICd1ZycsCiAgMTQ6ICdlbCcsIDQ0OiAnYmcnLCA3NDogJ3RhJywgMTM3OiAnZHonLAogIDE1OiAnaXMnLCA0NTogJ3VrJywgNzU6ICd0ZScsIDEzODogJ2p2JywKICAxNjogJ210JywgNDY6ICdiZScsIDc2OiAnc2knLCAxMzk6ICdzdScsCiAgMTc6ICd0cicsIDQ3OiAndXonLCA3NzogJ215JywgMTQwOiAnZ2wnLAogIDE4OiAnaHInLCA0ODogJ2trJywgNzg6ICdrbScsIDE0MTogJ2FmJywKICAxOTogJ3poLUhhbnQnLCA0OTogJ2F6LUN5cmwnLCA3OTogJ2xvJywgMTQyOiAnYnInLAogIDIwOiAndXInLCA1MDogJ2F6LUFyYWInLCA4MDogJ3ZpJywgMTQzOiAnaXUnLAogIDIxOiAnaGknLCA1MTogJ2h5JywgODE6ICdpZCcsIDE0NDogJ2dkJywKICAyMjogJ3RoJywgNTI6ICdrYScsIDgyOiAndGwnLCAxNDU6ICdndicsCiAgMjM6ICdrbycsIDUzOiAnbW8nLCA4MzogJ21zJywgMTQ2OiAnZ2EnLAogIDI0OiAnbHQnLCA1NDogJ2t5JywgODQ6ICdtcy1BcmFiJywgMTQ3OiAndG8nLAogIDI1OiAncGwnLCA1NTogJ3RnJywgODU6ICdhbScsIDE0ODogJ2VsLXBvbHl0b24nLAogIDI2OiAnaHUnLCA1NjogJ3RrJywgODY6ICd0aScsIDE0OTogJ2tsJywKICAyNzogJ2VzJywgNTc6ICdtbi1DTicsIDg3OiAnb20nLCAxNTA6ICdheicsCiAgMjg6ICdsdicsIDU4OiAnbW4nLCA4ODogJ3NvJywgMTUxOiAnbm4nLAogIDI5OiAnc2UnLCA1OTogJ3BzJywgODk6ICdzdycKfSwKCi8vIElTTyAoZGVwcmVjYXRlZCkKW10sIHsgLy8gd2luZG93cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAweDA0MzY6ICdhZicsIDB4NDAwOTogJ2VuLUlOJywgMHgwNDg3OiAncncnLCAweDA0MzI6ICd0bicsCiAgMHgwNDFDOiAnc3EnLCAweDE4MDk6ICdlbi1JRScsIDB4MDQ0MTogJ3N3JywgMHgwNDVCOiAnc2knLAogIDB4MDQ4NDogJ2dzdycsIDB4MjAwOTogJ2VuLUpNJywgMHgwNDU3OiAna29rJywgMHgwNDFCOiAnc2snLAogIDB4MDQ1RTogJ2FtJywgMHg0NDA5OiAnZW4tTVknLCAweDA0MTI6ICdrbycsIDB4MDQyNDogJ3NsJywKICAweDE0MDE6ICdhci1EWicsIDB4MTQwOTogJ2VuLU5aJywgMHgwNDQwOiAna3knLCAweDJDMEE6ICdlcy1BUicsCiAgMHgzQzAxOiAnYXItQkgnLCAweDM0MDk6ICdlbi1QSCcsIDB4MDQ1NDogJ2xvJywgMHg0MDBBOiAnZXMtQk8nLAogIDB4MEMwMTogJ2FyJywgMHg0ODA5OiAnZW4tU0cnLCAweDA0MjY6ICdsdicsIDB4MzQwQTogJ2VzLUNMJywKICAweDA4MDE6ICdhci1JUScsIDB4MUMwOTogJ2VuLVpBJywgMHgwNDI3OiAnbHQnLCAweDI0MEE6ICdlcy1DTycsCiAgMHgyQzAxOiAnYXItSk8nLCAweDJDMDk6ICdlbi1UVCcsIDB4MDgyRTogJ2RzYicsIDB4MTQwQTogJ2VzLUNSJywKICAweDM0MDE6ICdhci1LVycsIDB4MDgwOTogJ2VuLUdCJywgMHgwNDZFOiAnbGInLCAweDFDMEE6ICdlcy1ETycsCiAgMHgzMDAxOiAnYXItTEInLCAweDA0MDk6ICdlbicsIDB4MDQyRjogJ21rJywgMHgzMDBBOiAnZXMtRUMnLAogIDB4MTAwMTogJ2FyLUxZJywgMHgzMDA5OiAnZW4tWlcnLCAweDA4M0U6ICdtcy1CTicsIDB4NDQwQTogJ2VzLVNWJywKICAweDE4MDE6ICdhcnknLCAweDA0MjU6ICdldCcsIDB4MDQzRTogJ21zJywgMHgxMDBBOiAnZXMtR1QnLAogIDB4MjAwMTogJ2FyLU9NJywgMHgwNDM4OiAnZm8nLCAweDA0NEM6ICdtbCcsIDB4NDgwQTogJ2VzLUhOJywKICAweDQwMDE6ICdhci1RQScsIDB4MDQ2NDogJ2ZpbCcsIDB4MDQzQTogJ210JywgMHgwODBBOiAnZXMtTVgnLAogIDB4MDQwMTogJ2FyLVNBJywgMHgwNDBCOiAnZmknLCAweDA0ODE6ICdtaScsIDB4NEMwQTogJ2VzLU5JJywKICAweDI4MDE6ICdhci1TWScsIDB4MDgwQzogJ2ZyLUJFJywgMHgwNDdBOiAnYXJuJywgMHgxODBBOiAnZXMtUEEnLAogIDB4MUMwMTogJ2FlYicsIDB4MEMwQzogJ2ZyLUNBJywgMHgwNDRFOiAnbXInLCAweDNDMEE6ICdlcy1QWScsCiAgMHgzODAxOiAnYXItQUUnLCAweDA0MEM6ICdmcicsIDB4MDQ3QzogJ21vaCcsIDB4MjgwQTogJ2VzLVBFJywKICAweDI0MDE6ICdhci1ZRScsIDB4MTQwQzogJ2ZyLUxVJywgMHgwNDUwOiAnbW4nLCAweDUwMEE6ICdlcy1QUicsCiAgMHgwNDJCOiAnaHknLCAweDE4MEM6ICdmci1NQycsIDB4MDg1MDogJ21uLUNOJywgMHgwQzBBOiAnZXMnLAogIDB4MDQ0RDogJ2FzJywgMHgxMDBDOiAnZnItQ0gnLCAweDA0NjE6ICduZScsIDB4MDQwQTogJ2VzJywKICAweDA4MkM6ICdhei1DeXJsJywgMHgwNDYyOiAnZnknLCAweDA0MTQ6ICduYicsIDB4NTQwQTogJ2VzLVVTJywKICAweDA0MkM6ICdheicsIDB4MDQ1NjogJ2dsJywgMHgwODE0OiAnbm4nLCAweDM4MEE6ICdlcy1VWScsCiAgMHgwNDZEOiAnYmEnLCAweDA0Mzc6ICdrYScsIDB4MDQ4MjogJ29jJywgMHgyMDBBOiAnZXMtVkUnLAogIDB4MDQyRDogJ2V1JywgMHgwQzA3OiAnZGUtQVQnLCAweDA0NDg6ICdvcicsIDB4MDgxRDogJ3N2LUZJJywKICAweDA0MjM6ICdiZScsIDB4MDQwNzogJ2RlJywgMHgwNDYzOiAncHMnLCAweDA0MUQ6ICdzdicsCiAgMHgwODQ1OiAnYm4nLCAweDE0MDc6ICdkZS1MSScsIDB4MDQxNTogJ3BsJywgMHgwNDVBOiAnc3lyJywKICAweDA0NDU6ICdibi1JTicsIDB4MTAwNzogJ2RlLUxVJywgMHgwNDE2OiAncHQnLCAweDA0Mjg6ICd0ZycsCiAgMHgyMDFBOiAnYnMtQ3lybCcsIDB4MDgwNzogJ2RlLUNIJywgMHgwODE2OiAncHQtUFQnLCAweDA4NUY6ICd0em0nLAogIDB4MTQxQTogJ2JzJywgMHgwNDA4OiAnZWwnLCAweDA0NDY6ICdwYScsIDB4MDQ0OTogJ3RhJywKICAweDA0N0U6ICdicicsIDB4MDQ2RjogJ2tsJywgMHgwNDZCOiAncXUtQk8nLCAweDA0NDQ6ICd0dCcsCiAgMHgwNDAyOiAnYmcnLCAweDA0NDc6ICdndScsIDB4MDg2QjogJ3F1LUVDJywgMHgwNDRBOiAndGUnLAogIDB4MDQwMzogJ2NhJywgMHgwNDY4OiAnaGEnLCAweDBDNkI6ICdxdScsIDB4MDQxRTogJ3RoJywKICAweDBDMDQ6ICd6aC1ISycsIDB4MDQwRDogJ2hlJywgMHgwNDE4OiAncm8nLCAweDA0NTE6ICdibycsCiAgMHgxNDA0OiAnemgtTU8nLCAweDA0Mzk6ICdoaScsIDB4MDQxNzogJ3JtJywgMHgwNDFGOiAndHInLAogIDB4MDgwNDogJ3poJywgMHgwNDBFOiAnaHUnLCAweDA0MTk6ICdydScsIDB4MDQ0MjogJ3RrJywKICAweDEwMDQ6ICd6aC1TRycsIDB4MDQwRjogJ2lzJywgMHgyNDNCOiAnc21uJywgMHgwNDgwOiAndWcnLAogIDB4MDQwNDogJ3poLVRXJywgMHgwNDcwOiAnaWcnLCAweDEwM0I6ICdzbWotTk8nLCAweDA0MjI6ICd1aycsCiAgMHgwNDgzOiAnY28nLCAweDA0MjE6ICdpZCcsIDB4MTQzQjogJ3NtaicsIDB4MDQyRTogJ2hzYicsCiAgMHgwNDFBOiAnaHInLCAweDA0NUQ6ICdpdScsIDB4MEMzQjogJ3NlLUZJJywgMHgwNDIwOiAndXInLAogIDB4MTAxQTogJ2hyLUJBJywgMHgwODVEOiAnaXUtTGF0bicsIDB4MDQzQjogJ3NlJywgMHgwODQzOiAndXotQ3lybCcsCiAgMHgwNDA1OiAnY3MnLCAweDA4M0M6ICdnYScsIDB4MDgzQjogJ3NlLVNFJywgMHgwNDQzOiAndXonLAogIDB4MDQwNjogJ2RhJywgMHgwNDM0OiAneGgnLCAweDIwM0I6ICdzbXMnLCAweDA0MkE6ICd2aScsCiAgMHgwNDhDOiAncHJzJywgMHgwNDM1OiAnenUnLCAweDE4M0I6ICdzbWEtTk8nLCAweDA0NTI6ICdjeScsCiAgMHgwNDY1OiAnZHYnLCAweDA0MTA6ICdpdCcsIDB4MUMzQjogJ3NtcycsIDB4MDQ4ODogJ3dvJywKICAweDA4MTM6ICdubC1CRScsIDB4MDgxMDogJ2l0LUNIJywgMHgwNDRGOiAnc2EnLCAweDA0ODU6ICdzYWgnLAogIDB4MDQxMzogJ25sJywgMHgwNDExOiAnamEnLCAweDFDMUE6ICdzci1DeXJsLUJBJywgMHgwNDc4OiAnaWknLAogIDB4MEMwOTogJ2VuLUFVJywgMHgwNDRCOiAna24nLCAweDBDMUE6ICdzcicsIDB4MDQ2QTogJ3lvJywKICAweDI4MDk6ICdlbi1CWicsIDB4MDQzRjogJ2trJywgMHgxODFBOiAnc3ItTGF0bi1CQScsCiAgMHgxMDA5OiAnZW4tQ0EnLCAweDA0NTM6ICdrbScsIDB4MDgxQTogJ3NyLUxhdG4nLAogIDB4MjQwOTogJ2VuLTAyOScsIDB4MDQ4NjogJ3F1YycsIDB4MDQ2QzogJ25zbycKfV07Cgp2YXIgTmFtZVJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgcGxhdGZvcm1JRDogci51aW50MTYsCiAgZW5jb2RpbmdJRDogci51aW50MTYsCiAgbGFuZ3VhZ2VJRDogci51aW50MTYsCiAgbmFtZUlEOiByLnVpbnQxNiwKICBsZW5ndGg6IHIudWludDE2LAogIHN0cmluZzogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgbmV3IHIuU3RyaW5nKCdsZW5ndGgnLCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIGdldEVuY29kaW5nKHQucGxhdGZvcm1JRCwgdC5lbmNvZGluZ0lELCB0Lmxhbmd1YWdlSUQpOwogIH0pLCB7IHR5cGU6ICdwYXJlbnQnLCByZWxhdGl2ZVRvOiAncGFyZW50LnN0cmluZ09mZnNldCcsIGFsbG93TnVsbDogZmFsc2UgfSkKfSk7Cgp2YXIgTGFuZ1RhZ1JlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgbGVuZ3RoOiByLnVpbnQxNiwKICB0YWc6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIG5ldyByLlN0cmluZygnbGVuZ3RoJywgJ3V0ZjE2YmUnKSwgeyB0eXBlOiAncGFyZW50JywgcmVsYXRpdmVUbzogJ3N0cmluZ09mZnNldCcgfSkKfSk7Cgp2YXIgTmFtZVRhYmxlID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7CiAgMDogewogICAgY291bnQ6IHIudWludDE2LAogICAgc3RyaW5nT2Zmc2V0OiByLnVpbnQxNiwKICAgIHJlY29yZHM6IG5ldyByLkFycmF5KE5hbWVSZWNvcmQsICdjb3VudCcpCiAgfSwKICAxOiB7CiAgICBjb3VudDogci51aW50MTYsCiAgICBzdHJpbmdPZmZzZXQ6IHIudWludDE2LAogICAgcmVjb3JkczogbmV3IHIuQXJyYXkoTmFtZVJlY29yZCwgJ2NvdW50JyksCiAgICBsYW5nVGFnQ291bnQ6IHIudWludDE2LAogICAgbGFuZ1RhZ3M6IG5ldyByLkFycmF5KExhbmdUYWdSZWNvcmQsICdsYW5nVGFnQ291bnQnKQogIH0KfSk7Cgp2YXIgTkFNRVMgPSBbJ2NvcHlyaWdodCcsICdmb250RmFtaWx5JywgJ2ZvbnRTdWJmYW1pbHknLCAndW5pcXVlU3ViZmFtaWx5JywgJ2Z1bGxOYW1lJywgJ3ZlcnNpb24nLCAncG9zdHNjcmlwdE5hbWUnLCAvLyBOb3RlOiBBIGZvbnQgbWF5IGhhdmUgb25seSBvbmUgUG9zdFNjcmlwdCBuYW1lIGFuZCB0aGF0IG5hbWUgbXVzdCBiZSBBU0NJSS4KJ3RyYWRlbWFyaycsICdtYW51ZmFjdHVyZXInLCAnZGVzaWduZXInLCAnZGVzY3JpcHRpb24nLCAndmVuZG9yVVJMJywgJ2Rlc2lnbmVyVVJMJywgJ2xpY2Vuc2UnLCAnbGljZW5zZVVSTCcsIG51bGwsIC8vIHJlc2VydmVkCidwcmVmZXJyZWRGYW1pbHknLCAncHJlZmVycmVkU3ViZmFtaWx5JywgJ2NvbXBhdGlibGVGdWxsJywgJ3NhbXBsZVRleHQnLCAncG9zdHNjcmlwdENJREZvbnROYW1lJywgJ3d3c0ZhbWlseU5hbWUnLCAnd3dzU3ViZmFtaWx5TmFtZSddOwoKTmFtZVRhYmxlLnByb2Nlc3MgPSBmdW5jdGlvbiAoc3RyZWFtKSB7CiAgdmFyIHJlY29yZHMgPSB7fTsKICBmb3IgKHZhciBfaXRlcmF0b3IgPSB0aGlzLnJlY29yZHMsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgdmFyIF9yZWY7CgogICAgaWYgKF9pc0FycmF5KSB7CiAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgIH0gZWxzZSB7CiAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICBfcmVmID0gX2kudmFsdWU7CiAgICB9CgogICAgdmFyIHJlY29yZCA9IF9yZWY7CgogICAgLy8gZmluZCBvdXQgd2hhdCBsYW5ndWFnZSB0aGlzIGlzIGZvcgogICAgdmFyIGxhbmd1YWdlID0gTEFOR1VBR0VTW3JlY29yZC5wbGF0Zm9ybUlEXVtyZWNvcmQubGFuZ3VhZ2VJRF07CgogICAgaWYgKGxhbmd1YWdlID09IG51bGwgJiYgdGhpcy5sYW5nVGFncyAhPSBudWxsICYmIHJlY29yZC5sYW5ndWFnZUlEID49IDB4ODAwMCkgewogICAgICBsYW5ndWFnZSA9IHRoaXMubGFuZ1RhZ3NbcmVjb3JkLmxhbmd1YWdlSUQgLSAweDgwMDBdLnRhZzsKICAgIH0KCiAgICBpZiAobGFuZ3VhZ2UgPT0gbnVsbCkgewogICAgICBsYW5ndWFnZSA9IHJlY29yZC5wbGF0Zm9ybUlEICsgJy0nICsgcmVjb3JkLmxhbmd1YWdlSUQ7CiAgICB9CgogICAgLy8gaWYgdGhlIG5hbWVJRCBpcyA+PSAyNTYsIGl0IGlzIGEgZm9udCBmZWF0dXJlIHJlY29yZCAoQUFUKQogICAgdmFyIGtleSA9IHJlY29yZC5uYW1lSUQgPj0gMjU2ID8gJ2ZvbnRGZWF0dXJlcycgOiBOQU1FU1tyZWNvcmQubmFtZUlEXSB8fCByZWNvcmQubmFtZUlEOwogICAgaWYgKHJlY29yZHNba2V5XSA9PSBudWxsKSB7CiAgICAgIHJlY29yZHNba2V5XSA9IHt9OwogICAgfQoKICAgIHZhciBvYmogPSByZWNvcmRzW2tleV07CiAgICBpZiAocmVjb3JkLm5hbWVJRCA+PSAyNTYpIHsKICAgICAgb2JqID0gb2JqW3JlY29yZC5uYW1lSURdIHx8IChvYmpbcmVjb3JkLm5hbWVJRF0gPSB7fSk7CiAgICB9CgogICAgaWYgKHR5cGVvZiByZWNvcmQuc3RyaW5nID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb2JqW2xhbmd1YWdlXSAhPT0gJ3N0cmluZycpIHsKICAgICAgb2JqW2xhbmd1YWdlXSA9IHJlY29yZC5zdHJpbmc7CiAgICB9CiAgfQoKICB0aGlzLnJlY29yZHMgPSByZWNvcmRzOwp9OwoKTmFtZVRhYmxlLnByZUVuY29kZSA9IGZ1bmN0aW9uICgpIHsKICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnJlY29yZHMpKSByZXR1cm47CiAgdGhpcy52ZXJzaW9uID0gMDsKCiAgdmFyIHJlY29yZHMgPSBbXTsKICBmb3IgKHZhciBrZXkgaW4gdGhpcy5yZWNvcmRzKSB7CiAgICB2YXIgdmFsID0gdGhpcy5yZWNvcmRzW2tleV07CiAgICBpZiAoa2V5ID09PSAnZm9udEZlYXR1cmVzJykgY29udGludWU7CgogICAgcmVjb3Jkcy5wdXNoKHsKICAgICAgcGxhdGZvcm1JRDogMywKICAgICAgZW5jb2RpbmdJRDogMSwKICAgICAgbGFuZ3VhZ2VJRDogMHg0MDksCiAgICAgIG5hbWVJRDogTkFNRVMuaW5kZXhPZihrZXkpLAogICAgICBsZW5ndGg6IEJ1ZmZlci5ieXRlTGVuZ3RoKHZhbC5lbiwgJ3V0ZjE2bGUnKSwKICAgICAgc3RyaW5nOiB2YWwuZW4KICAgIH0pOwoKICAgIGlmIChrZXkgPT09ICdwb3N0c2NyaXB0TmFtZScpIHsKICAgICAgcmVjb3Jkcy5wdXNoKHsKICAgICAgICBwbGF0Zm9ybUlEOiAxLAogICAgICAgIGVuY29kaW5nSUQ6IDAsCiAgICAgICAgbGFuZ3VhZ2VJRDogMCwKICAgICAgICBuYW1lSUQ6IE5BTUVTLmluZGV4T2Yoa2V5KSwKICAgICAgICBsZW5ndGg6IHZhbC5lbi5sZW5ndGgsCiAgICAgICAgc3RyaW5nOiB2YWwuZW4KICAgICAgfSk7CiAgICB9CiAgfQoKICB0aGlzLnJlY29yZHMgPSByZWNvcmRzOwogIHRoaXMuY291bnQgPSByZWNvcmRzLmxlbmd0aDsKICB0aGlzLnN0cmluZ09mZnNldCA9IE5hbWVUYWJsZS5zaXplKHRoaXMsIG51bGwsIGZhbHNlKTsKfTsKCnZhciBPUzIgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3Qoci51aW50MTYsIHsKICBoZWFkZXI6IHsKICAgIHhBdmdDaGFyV2lkdGg6IHIuaW50MTYsIC8vIGF2ZXJhZ2Ugd2VpZ2h0ZWQgYWR2YW5jZSB3aWR0aCBvZiBsb3dlciBjYXNlIGxldHRlcnMgYW5kIHNwYWNlCiAgICB1c1dlaWdodENsYXNzOiByLnVpbnQxNiwgLy8gdmlzdWFsIHdlaWdodCBvZiBzdHJva2UgaW4gZ2x5cGhzCiAgICB1c1dpZHRoQ2xhc3M6IHIudWludDE2LCAvLyByZWxhdGl2ZSBjaGFuZ2UgZnJvbSB0aGUgbm9ybWFsIGFzcGVjdCByYXRpbyAod2lkdGggdG8gaGVpZ2h0IHJhdGlvKQogICAgZnNUeXBlOiBuZXcgci5CaXRmaWVsZChyLnVpbnQxNiwgWy8vIEluZGljYXRlcyBmb250IGVtYmVkZGluZyBsaWNlbnNpbmcgcmlnaHRzCiAgICBudWxsLCAnbm9FbWJlZGRpbmcnLCAndmlld09ubHknLCAnZWRpdGFibGUnLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAnbm9TdWJzZXR0aW5nJywgJ2JpdG1hcE9ubHknXSksCiAgICB5U3Vic2NyaXB0WFNpemU6IHIuaW50MTYsIC8vIHJlY29tbWVuZGVkIGhvcml6b250YWwgc2l6ZSBpbiBwaXhlbHMgZm9yIHN1YnNjcmlwdHMKICAgIHlTdWJzY3JpcHRZU2l6ZTogci5pbnQxNiwgLy8gcmVjb21tZW5kZWQgdmVydGljYWwgc2l6ZSBpbiBwaXhlbHMgZm9yIHN1YnNjcmlwdHMKICAgIHlTdWJzY3JpcHRYT2Zmc2V0OiByLmludDE2LCAvLyByZWNvbW1lbmRlZCBob3Jpem9udGFsIG9mZnNldCBmb3Igc3Vic2NyaXB0cwogICAgeVN1YnNjcmlwdFlPZmZzZXQ6IHIuaW50MTYsIC8vIHJlY29tbWVuZGVkIHZlcnRpY2FsIG9mZnNldCBmb3JtIHRoZSBiYXNlbGluZSBmb3Igc3Vic2NyaXB0cwogICAgeVN1cGVyc2NyaXB0WFNpemU6IHIuaW50MTYsIC8vIHJlY29tbWVuZGVkIGhvcml6b250YWwgc2l6ZSBpbiBwaXhlbHMgZm9yIHN1cGVyc2NyaXB0cwogICAgeVN1cGVyc2NyaXB0WVNpemU6IHIuaW50MTYsIC8vIHJlY29tbWVuZGVkIHZlcnRpY2FsIHNpemUgaW4gcGl4ZWxzIGZvciBzdXBlcnNjcmlwdHMKICAgIHlTdXBlcnNjcmlwdFhPZmZzZXQ6IHIuaW50MTYsIC8vIHJlY29tbWVuZGVkIGhvcml6b250YWwgb2Zmc2V0IGZvciBzdXBlcnNjcmlwdHMKICAgIHlTdXBlcnNjcmlwdFlPZmZzZXQ6IHIuaW50MTYsIC8vIHJlY29tbWVuZGVkIHZlcnRpY2FsIG9mZnNldCBmcm9tIHRoZSBiYXNlbGluZSBmb3Igc3VwZXJzY3JpcHRzCiAgICB5U3RyaWtlb3V0U2l6ZTogci5pbnQxNiwgLy8gd2lkdGggb2YgdGhlIHN0cmlrZW91dCBzdHJva2UKICAgIHlTdHJpa2VvdXRQb3NpdGlvbjogci5pbnQxNiwgLy8gcG9zaXRpb24gb2YgdGhlIHN0cmlrZW91dCBzdHJva2UgcmVsYXRpdmUgdG8gdGhlIGJhc2VsaW5lCiAgICBzRmFtaWx5Q2xhc3M6IHIuaW50MTYsIC8vIGNsYXNzaWZpY2F0aW9uIG9mIGZvbnQtZmFtaWx5IGRlc2lnbgogICAgcGFub3NlOiBuZXcgci5BcnJheShyLnVpbnQ4LCAxMCksIC8vIGRlc2NyaWJlIHRoZSB2aXN1YWwgY2hhcmFjdGVyaXN0aWNzIG9mIGEgZ2l2ZW4gdHlwZWZhY2UKICAgIHVsQ2hhclJhbmdlOiBuZXcgci5BcnJheShyLnVpbnQzMiwgNCksCiAgICB2ZW5kb3JJRDogbmV3IHIuU3RyaW5nKDQpLCAvLyBmb3VyIGNoYXJhY3RlciBpZGVudGlmaWVyIGZvciB0aGUgZm9udCB2ZW5kb3IKICAgIGZzU2VsZWN0aW9uOiBuZXcgci5CaXRmaWVsZChyLnVpbnQxNiwgWy8vIGJpdCBmaWVsZCBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmb250CiAgICAnaXRhbGljJywgJ3VuZGVyc2NvcmUnLCAnbmVnYXRpdmUnLCAnb3V0bGluZWQnLCAnc3RyaWtlb3V0JywgJ2JvbGQnLCAncmVndWxhcicsICd1c2VUeXBvTWV0cmljcycsICd3d3MnLCAnb2JsaXF1ZSddKSwKICAgIHVzRmlyc3RDaGFySW5kZXg6IHIudWludDE2LCAvLyBUaGUgbWluaW11bSBVbmljb2RlIGluZGV4IGluIHRoaXMgZm9udAogICAgdXNMYXN0Q2hhckluZGV4OiByLnVpbnQxNiAvLyBUaGUgbWF4aW11bSBVbmljb2RlIGluZGV4IGluIHRoaXMgZm9udAogIH0sCgogIC8vIFRoZSBBcHBsZSB2ZXJzaW9uIG9mIHRoaXMgdGFibGUgZW5kcyBoZXJlLCBidXQgdGhlIE1pY3Jvc29mdCBvbmUgY29udGludWVzIG9uLi4uCiAgMDoge30sCgogIDE6IHsKICAgIHR5cG9Bc2NlbmRlcjogci5pbnQxNiwKICAgIHR5cG9EZXNjZW5kZXI6IHIuaW50MTYsCiAgICB0eXBvTGluZUdhcDogci5pbnQxNiwKICAgIHdpbkFzY2VudDogci51aW50MTYsCiAgICB3aW5EZXNjZW50OiByLnVpbnQxNiwKICAgIGNvZGVQYWdlUmFuZ2U6IG5ldyByLkFycmF5KHIudWludDMyLCAyKQogIH0sCgogIDI6IHsKICAgIC8vIHRoZXNlIHNob3VsZCBiZSBjb21tb24gd2l0aCB2ZXJzaW9uIDEgc29tZWhvdwogICAgdHlwb0FzY2VuZGVyOiByLmludDE2LAogICAgdHlwb0Rlc2NlbmRlcjogci5pbnQxNiwKICAgIHR5cG9MaW5lR2FwOiByLmludDE2LAogICAgd2luQXNjZW50OiByLnVpbnQxNiwKICAgIHdpbkRlc2NlbnQ6IHIudWludDE2LAogICAgY29kZVBhZ2VSYW5nZTogbmV3IHIuQXJyYXkoci51aW50MzIsIDIpLAoKICAgIHhIZWlnaHQ6IHIuaW50MTYsCiAgICBjYXBIZWlnaHQ6IHIuaW50MTYsCiAgICBkZWZhdWx0Q2hhcjogci51aW50MTYsCiAgICBicmVha0NoYXI6IHIudWludDE2LAogICAgbWF4Q29udGVudDogci51aW50MTYKICB9LAoKICA1OiB7CiAgICB0eXBvQXNjZW5kZXI6IHIuaW50MTYsCiAgICB0eXBvRGVzY2VuZGVyOiByLmludDE2LAogICAgdHlwb0xpbmVHYXA6IHIuaW50MTYsCiAgICB3aW5Bc2NlbnQ6IHIudWludDE2LAogICAgd2luRGVzY2VudDogci51aW50MTYsCiAgICBjb2RlUGFnZVJhbmdlOiBuZXcgci5BcnJheShyLnVpbnQzMiwgMiksCgogICAgeEhlaWdodDogci5pbnQxNiwKICAgIGNhcEhlaWdodDogci5pbnQxNiwKICAgIGRlZmF1bHRDaGFyOiByLnVpbnQxNiwKICAgIGJyZWFrQ2hhcjogci51aW50MTYsCiAgICBtYXhDb250ZW50OiByLnVpbnQxNiwKCiAgICB1c0xvd2VyT3B0aWNhbFBvaW50U2l6ZTogci51aW50MTYsCiAgICB1c1VwcGVyT3B0aWNhbFBvaW50U2l6ZTogci51aW50MTYKICB9Cn0pOwoKdmFyIHZlcnNpb25zID0gT1MyLnZlcnNpb25zOwp2ZXJzaW9uc1szXSA9IHZlcnNpb25zWzRdID0gdmVyc2lvbnNbMl07CgovLyBQb3N0U2NyaXB0IGluZm9ybWF0aW9uCnZhciBwb3N0ID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIuZml4ZWQzMiwgewogIGhlYWRlcjogeyAvLyB0aGVzZSBmaWVsZHMgZXhpc3QgYXQgdGhlIHRvcCBvZiBhbGwgdmVyc2lvbnMKICAgIGl0YWxpY0FuZ2xlOiByLmZpeGVkMzIsIC8vIEl0YWxpYyBhbmdsZSBpbiBjb3VudGVyLWNsb2Nrd2lzZSBkZWdyZWVzIGZyb20gdGhlIHZlcnRpY2FsLgogICAgdW5kZXJsaW5lUG9zaXRpb246IHIuaW50MTYsIC8vIFN1Z2dlc3RlZCBkaXN0YW5jZSBvZiB0aGUgdG9wIG9mIHRoZSB1bmRlcmxpbmUgZnJvbSB0aGUgYmFzZWxpbmUKICAgIHVuZGVybGluZVRoaWNrbmVzczogci5pbnQxNiwgLy8gU3VnZ2VzdGVkIHZhbHVlcyBmb3IgdGhlIHVuZGVybGluZSB0aGlja25lc3MKICAgIGlzRml4ZWRQaXRjaDogci51aW50MzIsIC8vIFdoZXRoZXIgdGhlIGZvbnQgaXMgbW9ub3NwYWNlZAogICAgbWluTWVtVHlwZTQyOiByLnVpbnQzMiwgLy8gTWluaW11bSBtZW1vcnkgdXNhZ2Ugd2hlbiBhIFRydWVUeXBlIGZvbnQgaXMgZG93bmxvYWRlZCBhcyBhIFR5cGUgNDIgZm9udAogICAgbWF4TWVtVHlwZTQyOiByLnVpbnQzMiwgLy8gTWF4aW11bSBtZW1vcnkgdXNhZ2Ugd2hlbiBhIFRydWVUeXBlIGZvbnQgaXMgZG93bmxvYWRlZCBhcyBhIFR5cGUgNDIgZm9udAogICAgbWluTWVtVHlwZTE6IHIudWludDMyLCAvLyBNaW5pbXVtIG1lbW9yeSB1c2FnZSB3aGVuIGEgVHJ1ZVR5cGUgZm9udCBpcyBkb3dubG9hZGVkIGFzIGEgVHlwZSAxIGZvbnQKICAgIG1heE1lbVR5cGUxOiByLnVpbnQzMiAvLyBNYXhpbXVtIG1lbW9yeSB1c2FnZSB3aGVuIGEgVHJ1ZVR5cGUgZm9udCBpcyBkb3dubG9hZGVkIGFzIGEgVHlwZSAxIGZvbnQKICB9LAoKICAxOiB7fSwgLy8gdmVyc2lvbiAxIGhhcyBubyBhZGRpdGlvbmFsIGZpZWxkcwoKICAyOiB7CiAgICBudW1iZXJPZkdseXBoczogci51aW50MTYsCiAgICBnbHlwaE5hbWVJbmRleDogbmV3IHIuQXJyYXkoci51aW50MTYsICdudW1iZXJPZkdseXBocycpLAogICAgbmFtZXM6IG5ldyByLkFycmF5KG5ldyByLlN0cmluZyhyLnVpbnQ4KSkKICB9LAoKICAyLjU6IHsKICAgIG51bWJlck9mR2x5cGhzOiByLnVpbnQxNiwKICAgIG9mZnNldHM6IG5ldyByLkFycmF5KHIudWludDgsICdudW1iZXJPZkdseXBocycpCiAgfSwKCiAgMzoge30sIC8vIHZlcnNpb24gMyBoYXMgbm8gYWRkaXRpb25hbCBmaWVsZHMKCiAgNDogewogICAgbWFwOiBuZXcgci5BcnJheShyLnVpbnQzMiwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQucGFyZW50Lm1heHAubnVtR2x5cGhzOwogICAgfSkKICB9Cn0pOwoKLy8gQW4gYXJyYXkgb2YgcHJlZGVmaW5lZCB2YWx1ZXMgYWNjZXNzaWJsZSBieSBpbnN0cnVjdGlvbnMKdmFyIGN2dCA9IG5ldyByLlN0cnVjdCh7CiAgY29udHJvbFZhbHVlczogbmV3IHIuQXJyYXkoci5pbnQxNikKfSk7CgovLyBBIGxpc3Qgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgYXJlIGV4ZWN1dGVkIG9uY2Ugd2hlbiBhIGZvbnQgaXMgZmlyc3QgdXNlZC4KLy8gVGhlc2UgaW5zdHJ1Y3Rpb25zIGFyZSBrbm93biBhcyB0aGUgZm9udCBwcm9ncmFtLiBUaGUgbWFpbiB1c2Ugb2YgdGhpcyB0YWJsZQovLyBpcyBmb3IgdGhlIGRlZmluaXRpb24gb2YgZnVuY3Rpb25zIHRoYXQgYXJlIHVzZWQgaW4gbWFueSBkaWZmZXJlbnQgZ2x5cGggcHJvZ3JhbXMuCnZhciBmcGdtID0gbmV3IHIuU3RydWN0KHsKICBpbnN0cnVjdGlvbnM6IG5ldyByLkFycmF5KHIudWludDgpCn0pOwoKdmFyIGxvY2EgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3QoJ2hlYWQuaW5kZXhUb0xvY0Zvcm1hdCcsIHsKICAwOiB7CiAgICBvZmZzZXRzOiBuZXcgci5BcnJheShyLnVpbnQxNikKICB9LAogIDE6IHsKICAgIG9mZnNldHM6IG5ldyByLkFycmF5KHIudWludDMyKQogIH0KfSk7Cgpsb2NhLnByb2Nlc3MgPSBmdW5jdGlvbiAoKSB7CiAgaWYgKHRoaXMudmVyc2lvbiA9PT0gMCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLm9mZnNldHMubGVuZ3RoOyBpKyspIHsKICAgICAgdGhpcy5vZmZzZXRzW2ldIDw8PSAxOwogICAgfQogIH0KfTsKCmxvY2EucHJlRW5jb2RlID0gZnVuY3Rpb24gKCkgewogIGlmICh0aGlzLnZlcnNpb24gIT0gbnVsbCkgcmV0dXJuOwoKICAvLyBhc3N1bWUgdGhpcy5vZmZzZXRzIGlzIGEgc29ydGVkIGFycmF5CiAgdGhpcy52ZXJzaW9uID0gdGhpcy5vZmZzZXRzW3RoaXMub2Zmc2V0cy5sZW5ndGggLSAxXSA+IDB4ZmZmZiA/IDEgOiAwOwoKICBpZiAodGhpcy52ZXJzaW9uID09PSAwKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub2Zmc2V0cy5sZW5ndGg7IGkrKykgewogICAgICB0aGlzLm9mZnNldHNbaV0gPj4+PSAxOwogICAgfQogIH0KfTsKCi8vIFNldCBvZiBpbnN0cnVjdGlvbnMgZXhlY3V0ZWQgd2hlbmV2ZXIgdGhlIHBvaW50IHNpemUgb3IgZm9udCB0cmFuc2Zvcm1hdGlvbiBjaGFuZ2UKdmFyIHByZXAgPSBuZXcgci5TdHJ1Y3QoewogIGNvbnRyb2xWYWx1ZVByb2dyYW06IG5ldyByLkFycmF5KHIudWludDgpCn0pOwoKLy8gb25seSB1c2VkIGZvciBlbmNvZGluZwp2YXIgZ2x5ZiA9IG5ldyByLkFycmF5KG5ldyByLkJ1ZmZlcigpKTsKCnZhciBDRkZJbmRleCA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBDRkZJbmRleCh0eXBlKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ0ZGSW5kZXgpOwoKICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgfQoKICBDRkZJbmRleC5wcm90b3R5cGUuZ2V0Q0ZGVmVyc2lvbiA9IGZ1bmN0aW9uIGdldENGRlZlcnNpb24oY3R4KSB7CiAgICB3aGlsZSAoY3R4ICYmICFjdHguaGRyU2l6ZSkgewogICAgICBjdHggPSBjdHgucGFyZW50OwogICAgfQoKICAgIHJldHVybiBjdHggPyBjdHgudmVyc2lvbiA6IC0xOwogIH07CgogIENGRkluZGV4LnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoc3RyZWFtLCBwYXJlbnQpIHsKICAgIHZhciB2ZXJzaW9uID0gdGhpcy5nZXRDRkZWZXJzaW9uKHBhcmVudCk7CiAgICB2YXIgY291bnQgPSB2ZXJzaW9uID49IDIgPyBzdHJlYW0ucmVhZFVJbnQzMkJFKCkgOiBzdHJlYW0ucmVhZFVJbnQxNkJFKCk7CgogICAgaWYgKGNvdW50ID09PSAwKSB7CiAgICAgIHJldHVybiBbXTsKICAgIH0KCiAgICB2YXIgb2ZmU2l6ZSA9IHN0cmVhbS5yZWFkVUludDgoKTsKICAgIHZhciBvZmZzZXRUeXBlID0gdm9pZCAwOwogICAgaWYgKG9mZlNpemUgPT09IDEpIHsKICAgICAgb2Zmc2V0VHlwZSA9IHIudWludDg7CiAgICB9IGVsc2UgaWYgKG9mZlNpemUgPT09IDIpIHsKICAgICAgb2Zmc2V0VHlwZSA9IHIudWludDE2OwogICAgfSBlbHNlIGlmIChvZmZTaXplID09PSAzKSB7CiAgICAgIG9mZnNldFR5cGUgPSByLnVpbnQyNDsKICAgIH0gZWxzZSBpZiAob2ZmU2l6ZSA9PT0gNCkgewogICAgICBvZmZzZXRUeXBlID0gci51aW50MzI7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvZmZzZXQgc2l6ZSBpbiBDRkZJbmRleDogIiArIG9mZlNpemUgKyAiICIgKyBzdHJlYW0ucG9zKTsKICAgIH0KCiAgICB2YXIgcmV0ID0gW107CiAgICB2YXIgc3RhcnRQb3MgPSBzdHJlYW0ucG9zICsgKGNvdW50ICsgMSkgKiBvZmZTaXplIC0gMTsKCiAgICB2YXIgc3RhcnQgPSBvZmZzZXRUeXBlLmRlY29kZShzdHJlYW0pOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CiAgICAgIHZhciBlbmQgPSBvZmZzZXRUeXBlLmRlY29kZShzdHJlYW0pOwoKICAgICAgaWYgKHRoaXMudHlwZSAhPSBudWxsKSB7CiAgICAgICAgdmFyIHBvcyA9IHN0cmVhbS5wb3M7CiAgICAgICAgc3RyZWFtLnBvcyA9IHN0YXJ0UG9zICsgc3RhcnQ7CgogICAgICAgIHBhcmVudC5sZW5ndGggPSBlbmQgLSBzdGFydDsKICAgICAgICByZXQucHVzaCh0aGlzLnR5cGUuZGVjb2RlKHN0cmVhbSwgcGFyZW50KSk7CiAgICAgICAgc3RyZWFtLnBvcyA9IHBvczsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXQucHVzaCh7CiAgICAgICAgICBvZmZzZXQ6IHN0YXJ0UG9zICsgc3RhcnQsCiAgICAgICAgICBsZW5ndGg6IGVuZCAtIHN0YXJ0CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIHN0YXJ0ID0gZW5kOwogICAgfQoKICAgIHN0cmVhbS5wb3MgPSBzdGFydFBvcyArIHN0YXJ0OwogICAgcmV0dXJuIHJldDsKICB9OwoKICBDRkZJbmRleC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uIHNpemUoYXJyLCBwYXJlbnQpIHsKICAgIHZhciBzaXplID0gMjsKICAgIGlmIChhcnIubGVuZ3RoID09PSAwKSB7CiAgICAgIHJldHVybiBzaXplOwogICAgfQoKICAgIHZhciB0eXBlID0gdGhpcy50eXBlIHx8IG5ldyByLkJ1ZmZlcigpOwoKICAgIC8vIGZpbmQgbWF4aW11bSBvZmZzZXQgdG8gZGV0bWluaW5lIG9mZnNldCB0eXBlCiAgICB2YXIgb2Zmc2V0ID0gMTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBpdGVtID0gYXJyW2ldOwogICAgICBvZmZzZXQgKz0gdHlwZS5zaXplKGl0ZW0sIHBhcmVudCk7CiAgICB9CgogICAgdmFyIG9mZnNldFR5cGUgPSB2b2lkIDA7CiAgICBpZiAob2Zmc2V0IDw9IDB4ZmYpIHsKICAgICAgb2Zmc2V0VHlwZSA9IHIudWludDg7CiAgICB9IGVsc2UgaWYgKG9mZnNldCA8PSAweGZmZmYpIHsKICAgICAgb2Zmc2V0VHlwZSA9IHIudWludDE2OwogICAgfSBlbHNlIGlmIChvZmZzZXQgPD0gMHhmZmZmZmYpIHsKICAgICAgb2Zmc2V0VHlwZSA9IHIudWludDI0OwogICAgfSBlbHNlIGlmIChvZmZzZXQgPD0gMHhmZmZmZmZmZikgewogICAgICBvZmZzZXRUeXBlID0gci51aW50MzI7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvZmZzZXQgaW4gQ0ZGSW5kZXgiKTsKICAgIH0KCiAgICBzaXplICs9IDEgKyBvZmZzZXRUeXBlLnNpemUoKSAqIChhcnIubGVuZ3RoICsgMSk7CiAgICBzaXplICs9IG9mZnNldCAtIDE7CgogICAgcmV0dXJuIHNpemU7CiAgfTsKCiAgQ0ZGSW5kZXgucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShzdHJlYW0sIGFyciwgcGFyZW50KSB7CiAgICBzdHJlYW0ud3JpdGVVSW50MTZCRShhcnIubGVuZ3RoKTsKICAgIGlmIChhcnIubGVuZ3RoID09PSAwKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgdHlwZSA9IHRoaXMudHlwZSB8fCBuZXcgci5CdWZmZXIoKTsKCiAgICAvLyBmaW5kIG1heGltdW0gb2Zmc2V0IHRvIGRldG1pbmluZSBvZmZzZXQgdHlwZQogICAgdmFyIHNpemVzID0gW107CiAgICB2YXIgb2Zmc2V0ID0gMTsKICAgIGZvciAodmFyIF9pdGVyYXRvciA9IGFyciwgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICAgIHZhciBfcmVmOwoKICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBpdGVtID0gX3JlZjsKCiAgICAgIHZhciBzID0gdHlwZS5zaXplKGl0ZW0sIHBhcmVudCk7CiAgICAgIHNpemVzLnB1c2gocyk7CiAgICAgIG9mZnNldCArPSBzOwogICAgfQoKICAgIHZhciBvZmZzZXRUeXBlID0gdm9pZCAwOwogICAgaWYgKG9mZnNldCA8PSAweGZmKSB7CiAgICAgIG9mZnNldFR5cGUgPSByLnVpbnQ4OwogICAgfSBlbHNlIGlmIChvZmZzZXQgPD0gMHhmZmZmKSB7CiAgICAgIG9mZnNldFR5cGUgPSByLnVpbnQxNjsKICAgIH0gZWxzZSBpZiAob2Zmc2V0IDw9IDB4ZmZmZmZmKSB7CiAgICAgIG9mZnNldFR5cGUgPSByLnVpbnQyNDsKICAgIH0gZWxzZSBpZiAob2Zmc2V0IDw9IDB4ZmZmZmZmZmYpIHsKICAgICAgb2Zmc2V0VHlwZSA9IHIudWludDMyOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb2Zmc2V0IGluIENGRkluZGV4Iik7CiAgICB9CgogICAgLy8gd3JpdGUgb2Zmc2V0IHNpemUKICAgIHN0cmVhbS53cml0ZVVJbnQ4KG9mZnNldFR5cGUuc2l6ZSgpKTsKCiAgICAvLyB3cml0ZSBlbGVtZW50cwogICAgb2Zmc2V0ID0gMTsKICAgIG9mZnNldFR5cGUuZW5jb2RlKHN0cmVhbSwgb2Zmc2V0KTsKCiAgICBmb3IgKHZhciBfaXRlcmF0b3IyID0gc2l6ZXMsIF9pc0FycmF5MiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMiksIF9pMiA9IDAsIF9pdGVyYXRvcjIgPSBfaXNBcnJheTIgPyBfaXRlcmF0b3IyIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjIpOzspIHsKICAgICAgdmFyIF9yZWYyOwoKICAgICAgaWYgKF9pc0FycmF5MikgewogICAgICAgIGlmIChfaTIgPj0gX2l0ZXJhdG9yMi5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWYyID0gX2l0ZXJhdG9yMltfaTIrK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2kyID0gX2l0ZXJhdG9yMi5uZXh0KCk7CiAgICAgICAgaWYgKF9pMi5kb25lKSBicmVhazsKICAgICAgICBfcmVmMiA9IF9pMi52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIHNpemUgPSBfcmVmMjsKCiAgICAgIG9mZnNldCArPSBzaXplOwogICAgICBvZmZzZXRUeXBlLmVuY29kZShzdHJlYW0sIG9mZnNldCk7CiAgICB9CgogICAgZm9yICh2YXIgX2l0ZXJhdG9yMyA9IGFyciwgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMyk7OykgewogICAgICB2YXIgX3JlZjM7CgogICAgICBpZiAoX2lzQXJyYXkzKSB7CiAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjMgPSBfaXRlcmF0b3IzW19pMysrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTsKICAgICAgICBpZiAoX2kzLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYzID0gX2kzLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgX2l0ZW0gPSBfcmVmMzsKCiAgICAgIHR5cGUuZW5jb2RlKHN0cmVhbSwgX2l0ZW0sIHBhcmVudCk7CiAgICB9CgogICAgcmV0dXJuOwogIH07CgogIHJldHVybiBDRkZJbmRleDsKfSgpOwoKdmFyIEZMT0FUX0VPRiA9IDB4ZjsKdmFyIEZMT0FUX0xPT0tVUCA9IFsnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOScsICcuJywgJ0UnLCAnRS0nLCBudWxsLCAnLSddOwoKdmFyIEZMT0FUX0VOQ09ERV9MT09LVVAgPSB7CiAgJy4nOiAxMCwKICAnRSc6IDExLAogICdFLSc6IDEyLAogICctJzogMTQKfTsKCnZhciBDRkZPcGVyYW5kID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIENGRk9wZXJhbmQoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ0ZGT3BlcmFuZCk7CiAgfQoKICBDRkZPcGVyYW5kLmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShzdHJlYW0sIHZhbHVlKSB7CiAgICBpZiAoMzIgPD0gdmFsdWUgJiYgdmFsdWUgPD0gMjQ2KSB7CiAgICAgIHJldHVybiB2YWx1ZSAtIDEzOTsKICAgIH0KCiAgICBpZiAoMjQ3IDw9IHZhbHVlICYmIHZhbHVlIDw9IDI1MCkgewogICAgICByZXR1cm4gKHZhbHVlIC0gMjQ3KSAqIDI1NiArIHN0cmVhbS5yZWFkVUludDgoKSArIDEwODsKICAgIH0KCiAgICBpZiAoMjUxIDw9IHZhbHVlICYmIHZhbHVlIDw9IDI1NCkgewogICAgICByZXR1cm4gLSh2YWx1ZSAtIDI1MSkgKiAyNTYgLSBzdHJlYW0ucmVhZFVJbnQ4KCkgLSAxMDg7CiAgICB9CgogICAgaWYgKHZhbHVlID09PSAyOCkgewogICAgICByZXR1cm4gc3RyZWFtLnJlYWRJbnQxNkJFKCk7CiAgICB9CgogICAgaWYgKHZhbHVlID09PSAyOSkgewogICAgICByZXR1cm4gc3RyZWFtLnJlYWRJbnQzMkJFKCk7CiAgICB9CgogICAgaWYgKHZhbHVlID09PSAzMCkgewogICAgICB2YXIgc3RyID0gJyc7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgdmFyIGIgPSBzdHJlYW0ucmVhZFVJbnQ4KCk7CgogICAgICAgIHZhciBuMSA9IGIgPj4gNDsKICAgICAgICBpZiAobjEgPT09IEZMT0FUX0VPRikgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHN0ciArPSBGTE9BVF9MT09LVVBbbjFdOwoKICAgICAgICB2YXIgbjIgPSBiICYgMTU7CiAgICAgICAgaWYgKG4yID09PSBGTE9BVF9FT0YpIHsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBzdHIgKz0gRkxPQVRfTE9PS1VQW24yXTsKICAgICAgfQoKICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoc3RyKTsKICAgIH0KCiAgICByZXR1cm4gbnVsbDsKICB9OwoKICBDRkZPcGVyYW5kLnNpemUgPSBmdW5jdGlvbiBzaXplKHZhbHVlKSB7CiAgICAvLyBpZiB0aGUgdmFsdWUgbmVlZHMgdG8gYmUgZm9yY2VkIHRvIHRoZSBsYXJnZXN0IHNpemUgKDMyIGJpdCkKICAgIC8vIGUuZy4gZm9yIHVua25vd24gcG9pbnRlcnMsIHNldCB0byAzMjc2OAogICAgaWYgKHZhbHVlLmZvcmNlTGFyZ2UpIHsKICAgICAgdmFsdWUgPSAzMjc2ODsKICAgIH0KCiAgICBpZiAoKHZhbHVlIHwgMCkgIT09IHZhbHVlKSB7CiAgICAgIC8vIGZsb2F0aW5nIHBvaW50CiAgICAgIHZhciBzdHIgPSAnJyArIHZhbHVlOwogICAgICByZXR1cm4gMSArIE1hdGguY2VpbCgoc3RyLmxlbmd0aCArIDEpIC8gMik7CiAgICB9IGVsc2UgaWYgKC0xMDcgPD0gdmFsdWUgJiYgdmFsdWUgPD0gMTA3KSB7CiAgICAgIHJldHVybiAxOwogICAgfSBlbHNlIGlmICgxMDggPD0gdmFsdWUgJiYgdmFsdWUgPD0gMTEzMSB8fCAtMTEzMSA8PSB2YWx1ZSAmJiB2YWx1ZSA8PSAtMTA4KSB7CiAgICAgIHJldHVybiAyOwogICAgfSBlbHNlIGlmICgtMzI3NjggPD0gdmFsdWUgJiYgdmFsdWUgPD0gMzI3NjcpIHsKICAgICAgcmV0dXJuIDM7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gNTsKICAgIH0KICB9OwoKICBDRkZPcGVyYW5kLmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShzdHJlYW0sIHZhbHVlKSB7CiAgICAvLyBpZiB0aGUgdmFsdWUgbmVlZHMgdG8gYmUgZm9yY2VkIHRvIHRoZSBsYXJnZXN0IHNpemUgKDMyIGJpdCkKICAgIC8vIGUuZy4gZm9yIHVua25vd24gcG9pbnRlcnMsIHNhdmUgdGhlIG9sZCB2YWx1ZSBhbmQgc2V0IHRvIDMyNzY4CiAgICB2YXIgdmFsID0gTnVtYmVyKHZhbHVlKTsKCiAgICBpZiAodmFsdWUuZm9yY2VMYXJnZSkgewogICAgICBzdHJlYW0ud3JpdGVVSW50OCgyOSk7CiAgICAgIHJldHVybiBzdHJlYW0ud3JpdGVJbnQzMkJFKHZhbCk7CiAgICB9IGVsc2UgaWYgKCh2YWwgfCAwKSAhPT0gdmFsKSB7CiAgICAgIC8vIGZsb2F0aW5nIHBvaW50CiAgICAgIHN0cmVhbS53cml0ZVVJbnQ4KDMwKTsKCiAgICAgIHZhciBzdHIgPSAnJyArIHZhbDsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpICs9IDIpIHsKICAgICAgICB2YXIgYzEgPSBzdHJbaV07CiAgICAgICAgdmFyIG4xID0gRkxPQVRfRU5DT0RFX0xPT0tVUFtjMV0gfHwgK2MxOwoKICAgICAgICBpZiAoaSA9PT0gc3RyLmxlbmd0aCAtIDEpIHsKICAgICAgICAgIHZhciBuMiA9IEZMT0FUX0VPRjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGMyID0gc3RyW2kgKyAxXTsKICAgICAgICAgIHZhciBuMiA9IEZMT0FUX0VOQ09ERV9MT09LVVBbYzJdIHx8ICtjMjsKICAgICAgICB9CgogICAgICAgIHN0cmVhbS53cml0ZVVJbnQ4KG4xIDw8IDQgfCBuMiAmIDE1KTsKICAgICAgfQoKICAgICAgaWYgKG4yICE9PSBGTE9BVF9FT0YpIHsKICAgICAgICByZXR1cm4gc3RyZWFtLndyaXRlVUludDgoRkxPQVRfRU9GIDw8IDQpOwogICAgICB9CiAgICB9IGVsc2UgaWYgKC0xMDcgPD0gdmFsICYmIHZhbCA8PSAxMDcpIHsKICAgICAgcmV0dXJuIHN0cmVhbS53cml0ZVVJbnQ4KHZhbCArIDEzOSk7CiAgICB9IGVsc2UgaWYgKDEwOCA8PSB2YWwgJiYgdmFsIDw9IDExMzEpIHsKICAgICAgdmFsIC09IDEwODsKICAgICAgc3RyZWFtLndyaXRlVUludDgoKHZhbCA+PiA4KSArIDI0Nyk7CiAgICAgIHJldHVybiBzdHJlYW0ud3JpdGVVSW50OCh2YWwgJiAweGZmKTsKICAgIH0gZWxzZSBpZiAoLTExMzEgPD0gdmFsICYmIHZhbCA8PSAtMTA4KSB7CiAgICAgIHZhbCA9IC12YWwgLSAxMDg7CiAgICAgIHN0cmVhbS53cml0ZVVJbnQ4KCh2YWwgPj4gOCkgKyAyNTEpOwogICAgICByZXR1cm4gc3RyZWFtLndyaXRlVUludDgodmFsICYgMHhmZik7CiAgICB9IGVsc2UgaWYgKC0zMjc2OCA8PSB2YWwgJiYgdmFsIDw9IDMyNzY3KSB7CiAgICAgIHN0cmVhbS53cml0ZVVJbnQ4KDI4KTsKICAgICAgcmV0dXJuIHN0cmVhbS53cml0ZUludDE2QkUodmFsKTsKICAgIH0gZWxzZSB7CiAgICAgIHN0cmVhbS53cml0ZVVJbnQ4KDI5KTsKICAgICAgcmV0dXJuIHN0cmVhbS53cml0ZUludDMyQkUodmFsKTsKICAgIH0KICB9OwoKICByZXR1cm4gQ0ZGT3BlcmFuZDsKfSgpOwoKdmFyIENGRkRpY3QgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gQ0ZGRGljdCgpIHsKICAgIHZhciBvcHMgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IFtdOwoKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDRkZEaWN0KTsKCiAgICB0aGlzLm9wcyA9IG9wczsKICAgIHRoaXMuZmllbGRzID0ge307CiAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBvcHMsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgICB2YXIgX3JlZjsKCiAgICAgIGlmIChfaXNBcnJheSkgewogICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgZmllbGQgPSBfcmVmOwoKICAgICAgdmFyIGtleSA9IEFycmF5LmlzQXJyYXkoZmllbGRbMF0pID8gZmllbGRbMF1bMF0gPDwgOCB8IGZpZWxkWzBdWzFdIDogZmllbGRbMF07CiAgICAgIHRoaXMuZmllbGRzW2tleV0gPSBmaWVsZDsKICAgIH0KICB9CgogIENGRkRpY3QucHJvdG90eXBlLmRlY29kZU9wZXJhbmRzID0gZnVuY3Rpb24gZGVjb2RlT3BlcmFuZHModHlwZSwgc3RyZWFtLCByZXQsIG9wZXJhbmRzKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgIGlmIChBcnJheS5pc0FycmF5KHR5cGUpKSB7CiAgICAgIHJldHVybiBvcGVyYW5kcy5tYXAoZnVuY3Rpb24gKG9wLCBpKSB7CiAgICAgICAgcmV0dXJuIF90aGlzLmRlY29kZU9wZXJhbmRzKHR5cGVbaV0sIHN0cmVhbSwgcmV0LCBbb3BdKTsKICAgICAgfSk7CiAgICB9IGVsc2UgaWYgKHR5cGUuZGVjb2RlICE9IG51bGwpIHsKICAgICAgcmV0dXJuIHR5cGUuZGVjb2RlKHN0cmVhbSwgcmV0LCBvcGVyYW5kcyk7CiAgICB9IGVsc2UgewogICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICBjYXNlICdudW1iZXInOgogICAgICAgIGNhc2UgJ29mZnNldCc6CiAgICAgICAgY2FzZSAnc2lkJzoKICAgICAgICAgIHJldHVybiBvcGVyYW5kc1swXTsKICAgICAgICBjYXNlICdib29sZWFuJzoKICAgICAgICAgIHJldHVybiAhIW9wZXJhbmRzWzBdOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gb3BlcmFuZHM7CiAgICAgIH0KICAgIH0KICB9OwoKICBDRkZEaWN0LnByb3RvdHlwZS5lbmNvZGVPcGVyYW5kcyA9IGZ1bmN0aW9uIGVuY29kZU9wZXJhbmRzKHR5cGUsIHN0cmVhbSwgY3R4LCBvcGVyYW5kcykgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgaWYgKEFycmF5LmlzQXJyYXkodHlwZSkpIHsKICAgICAgcmV0dXJuIG9wZXJhbmRzLm1hcChmdW5jdGlvbiAob3AsIGkpIHsKICAgICAgICByZXR1cm4gX3RoaXMyLmVuY29kZU9wZXJhbmRzKHR5cGVbaV0sIHN0cmVhbSwgY3R4LCBvcClbMF07CiAgICAgIH0pOwogICAgfSBlbHNlIGlmICh0eXBlLmVuY29kZSAhPSBudWxsKSB7CiAgICAgIHJldHVybiB0eXBlLmVuY29kZShzdHJlYW0sIG9wZXJhbmRzLCBjdHgpOwogICAgfSBlbHNlIGlmICh0eXBlb2Ygb3BlcmFuZHMgPT09ICdudW1iZXInKSB7CiAgICAgIHJldHVybiBbb3BlcmFuZHNdOwogICAgfSBlbHNlIGlmICh0eXBlb2Ygb3BlcmFuZHMgPT09ICdib29sZWFuJykgewogICAgICByZXR1cm4gWytvcGVyYW5kc107CiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkob3BlcmFuZHMpKSB7CiAgICAgIHJldHVybiBvcGVyYW5kczsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiBbb3BlcmFuZHNdOwogICAgfQogIH07CgogIENGRkRpY3QucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShzdHJlYW0sIHBhcmVudCkgewogICAgdmFyIGVuZCA9IHN0cmVhbS5wb3MgKyBwYXJlbnQubGVuZ3RoOwogICAgdmFyIHJldCA9IHt9OwogICAgdmFyIG9wZXJhbmRzID0gW107CgogICAgLy8gZGVmaW5lIGhpZGRlbiBwcm9wZXJ0aWVzCiAgICBfT2JqZWN0JGRlZmluZVByb3BlcnRpZXMocmV0LCB7CiAgICAgIHBhcmVudDogeyB2YWx1ZTogcGFyZW50IH0sCiAgICAgIF9zdGFydE9mZnNldDogeyB2YWx1ZTogc3RyZWFtLnBvcyB9CiAgICB9KTsKCiAgICAvLyBmaWxsIGluIGRlZmF1bHRzCiAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5maWVsZHMpIHsKICAgICAgdmFyIGZpZWxkID0gdGhpcy5maWVsZHNba2V5XTsKICAgICAgcmV0W2ZpZWxkWzFdXSA9IGZpZWxkWzNdOwogICAgfQoKICAgIHdoaWxlIChzdHJlYW0ucG9zIDwgZW5kKSB7CiAgICAgIHZhciBiID0gc3RyZWFtLnJlYWRVSW50OCgpOwogICAgICBpZiAoYiA8IDI4KSB7CiAgICAgICAgaWYgKGIgPT09IDEyKSB7CiAgICAgICAgICBiID0gYiA8PCA4IHwgc3RyZWFtLnJlYWRVSW50OCgpOwogICAgICAgIH0KCiAgICAgICAgdmFyIF9maWVsZCA9IHRoaXMuZmllbGRzW2JdOwogICAgICAgIGlmICghX2ZpZWxkKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gb3BlcmF0b3IgJyArIGIpOwogICAgICAgIH0KCiAgICAgICAgdmFyIHZhbCA9IHRoaXMuZGVjb2RlT3BlcmFuZHMoX2ZpZWxkWzJdLCBzdHJlYW0sIHJldCwgb3BlcmFuZHMpOwogICAgICAgIGlmICh2YWwgIT0gbnVsbCkgewogICAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIHJlc3RydWN0dXJlX3NyY191dGlscy5Qcm9wZXJ0eURlc2NyaXB0b3IpIHsKICAgICAgICAgICAgX09iamVjdCRkZWZpbmVQcm9wZXJ0eShyZXQsIF9maWVsZFsxXSwgdmFsKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldFtfZmllbGRbMV1dID0gdmFsOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgb3BlcmFuZHMgPSBbXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBvcGVyYW5kcy5wdXNoKENGRk9wZXJhbmQuZGVjb2RlKHN0cmVhbSwgYikpOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIHJldDsKICB9OwoKICBDRkZEaWN0LnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24gc2l6ZShkaWN0LCBwYXJlbnQpIHsKICAgIHZhciBpbmNsdWRlUG9pbnRlcnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHRydWU7CgogICAgdmFyIGN0eCA9IHsKICAgICAgcGFyZW50OiBwYXJlbnQsCiAgICAgIHZhbDogZGljdCwKICAgICAgcG9pbnRlclNpemU6IDAsCiAgICAgIHN0YXJ0T2Zmc2V0OiBwYXJlbnQuc3RhcnRPZmZzZXQgfHwgMAogICAgfTsKCiAgICB2YXIgbGVuID0gMDsKCiAgICBmb3IgKHZhciBrIGluIHRoaXMuZmllbGRzKSB7CiAgICAgIHZhciBmaWVsZCA9IHRoaXMuZmllbGRzW2tdOwogICAgICB2YXIgdmFsID0gZGljdFtmaWVsZFsxXV07CiAgICAgIGlmICh2YWwgPT0gbnVsbCB8fCBpc0VxdWFsKHZhbCwgZmllbGRbM10pKSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIHZhciBvcGVyYW5kcyA9IHRoaXMuZW5jb2RlT3BlcmFuZHMoZmllbGRbMl0sIG51bGwsIGN0eCwgdmFsKTsKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IG9wZXJhbmRzLCBfaXNBcnJheTIgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjIpLCBfaTIgPSAwLCBfaXRlcmF0b3IyID0gX2lzQXJyYXkyID8gX2l0ZXJhdG9yMiA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IyKTs7KSB7CiAgICAgICAgdmFyIF9yZWYyOwoKICAgICAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgICAgICBpZiAoX2kyID49IF9pdGVyYXRvcjIubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWYyID0gX2l0ZXJhdG9yMltfaTIrK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pMiA9IF9pdGVyYXRvcjIubmV4dCgpOwogICAgICAgICAgaWYgKF9pMi5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWYyID0gX2kyLnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIG9wID0gX3JlZjI7CgogICAgICAgIGxlbiArPSBDRkZPcGVyYW5kLnNpemUob3ApOwogICAgICB9CgogICAgICB2YXIga2V5ID0gQXJyYXkuaXNBcnJheShmaWVsZFswXSkgPyBmaWVsZFswXSA6IFtmaWVsZFswXV07CiAgICAgIGxlbiArPSBrZXkubGVuZ3RoOwogICAgfQoKICAgIGlmIChpbmNsdWRlUG9pbnRlcnMpIHsKICAgICAgbGVuICs9IGN0eC5wb2ludGVyU2l6ZTsKICAgIH0KCiAgICByZXR1cm4gbGVuOwogIH07CgogIENGRkRpY3QucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShzdHJlYW0sIGRpY3QsIHBhcmVudCkgewogICAgdmFyIGN0eCA9IHsKICAgICAgcG9pbnRlcnM6IFtdLAogICAgICBzdGFydE9mZnNldDogc3RyZWFtLnBvcywKICAgICAgcGFyZW50OiBwYXJlbnQsCiAgICAgIHZhbDogZGljdCwKICAgICAgcG9pbnRlclNpemU6IDAKICAgIH07CgogICAgY3R4LnBvaW50ZXJPZmZzZXQgPSBzdHJlYW0ucG9zICsgdGhpcy5zaXplKGRpY3QsIGN0eCwgZmFsc2UpOwoKICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSB0aGlzLm9wcywgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMyk7OykgewogICAgICB2YXIgX3JlZjM7CgogICAgICBpZiAoX2lzQXJyYXkzKSB7CiAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjMgPSBfaXRlcmF0b3IzW19pMysrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTsKICAgICAgICBpZiAoX2kzLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYzID0gX2kzLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgZmllbGQgPSBfcmVmMzsKCiAgICAgIHZhciB2YWwgPSBkaWN0W2ZpZWxkWzFdXTsKICAgICAgaWYgKHZhbCA9PSBudWxsIHx8IGlzRXF1YWwodmFsLCBmaWVsZFszXSkpIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQoKICAgICAgdmFyIG9wZXJhbmRzID0gdGhpcy5lbmNvZGVPcGVyYW5kcyhmaWVsZFsyXSwgc3RyZWFtLCBjdHgsIHZhbCk7CiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjQgPSBvcGVyYW5kcywgX2lzQXJyYXk0ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3I0KSwgX2k0ID0gMCwgX2l0ZXJhdG9yNCA9IF9pc0FycmF5NCA/IF9pdGVyYXRvcjQgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yNCk7OykgewogICAgICAgIHZhciBfcmVmNDsKCiAgICAgICAgaWYgKF9pc0FycmF5NCkgewogICAgICAgICAgaWYgKF9pNCA+PSBfaXRlcmF0b3I0Lmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmNCA9IF9pdGVyYXRvcjRbX2k0KytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTQgPSBfaXRlcmF0b3I0Lm5leHQoKTsKICAgICAgICAgIGlmIChfaTQuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmNCA9IF9pNC52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBvcCA9IF9yZWY0OwoKICAgICAgICBDRkZPcGVyYW5kLmVuY29kZShzdHJlYW0sIG9wKTsKICAgICAgfQoKICAgICAgdmFyIGtleSA9IEFycmF5LmlzQXJyYXkoZmllbGRbMF0pID8gZmllbGRbMF0gOiBbZmllbGRbMF1dOwogICAgICBmb3IgKHZhciBfaXRlcmF0b3I1ID0ga2V5LCBfaXNBcnJheTUgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjUpLCBfaTUgPSAwLCBfaXRlcmF0b3I1ID0gX2lzQXJyYXk1ID8gX2l0ZXJhdG9yNSA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I1KTs7KSB7CiAgICAgICAgdmFyIF9yZWY1OwoKICAgICAgICBpZiAoX2lzQXJyYXk1KSB7CiAgICAgICAgICBpZiAoX2k1ID49IF9pdGVyYXRvcjUubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWY1ID0gX2l0ZXJhdG9yNVtfaTUrK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pNSA9IF9pdGVyYXRvcjUubmV4dCgpOwogICAgICAgICAgaWYgKF9pNS5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWY1ID0gX2k1LnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIF9vcCA9IF9yZWY1OwoKICAgICAgICBzdHJlYW0ud3JpdGVVSW50OChfb3ApOwogICAgICB9CiAgICB9CgogICAgdmFyIGkgPSAwOwogICAgd2hpbGUgKGkgPCBjdHgucG9pbnRlcnMubGVuZ3RoKSB7CiAgICAgIHZhciBwdHIgPSBjdHgucG9pbnRlcnNbaSsrXTsKICAgICAgcHRyLnR5cGUuZW5jb2RlKHN0cmVhbSwgcHRyLnZhbCwgcHRyLnBhcmVudCk7CiAgICB9CgogICAgcmV0dXJuOwogIH07CgogIHJldHVybiBDRkZEaWN0Owp9KCk7Cgp2YXIgQ0ZGUG9pbnRlciA9IGZ1bmN0aW9uIChfciRQb2ludGVyKSB7CiAgX2luaGVyaXRzKENGRlBvaW50ZXIsIF9yJFBvaW50ZXIpOwoKICBmdW5jdGlvbiBDRkZQb2ludGVyKHR5cGUpIHsKICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiB7fTsKCiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ0ZGUG9pbnRlcik7CgogICAgaWYgKG9wdGlvbnMudHlwZSA9PSBudWxsKSB7CiAgICAgIG9wdGlvbnMudHlwZSA9ICdnbG9iYWwnOwogICAgfQoKICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfciRQb2ludGVyLmNhbGwodGhpcywgbnVsbCwgdHlwZSwgb3B0aW9ucykpOwogIH0KCiAgQ0ZGUG9pbnRlci5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKHN0cmVhbSwgcGFyZW50LCBvcGVyYW5kcykgewogICAgdGhpcy5vZmZzZXRUeXBlID0gewogICAgICBkZWNvZGU6IGZ1bmN0aW9uIGRlY29kZSgpIHsKICAgICAgICByZXR1cm4gb3BlcmFuZHNbMF07CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIF9yJFBvaW50ZXIucHJvdG90eXBlLmRlY29kZS5jYWxsKHRoaXMsIHN0cmVhbSwgcGFyZW50LCBvcGVyYW5kcyk7CiAgfTsKCiAgQ0ZGUG9pbnRlci5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKHN0cmVhbSwgdmFsdWUsIGN0eCkgewogICAgaWYgKCFzdHJlYW0pIHsKICAgICAgLy8gY29tcHV0ZSB0aGUgc2l6ZSAoc28gY3R4LnBvaW50ZXJTaXplIGlzIGNvcnJlY3QpCiAgICAgIHRoaXMub2Zmc2V0VHlwZSA9IHsKICAgICAgICBzaXplOiBmdW5jdGlvbiBzaXplKCkgewogICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICB9OwoKICAgICAgdGhpcy5zaXplKHZhbHVlLCBjdHgpOwogICAgICByZXR1cm4gW25ldyBQdHIoMCldOwogICAgfQoKICAgIHZhciBwdHIgPSBudWxsOwogICAgdGhpcy5vZmZzZXRUeXBlID0gewogICAgICBlbmNvZGU6IGZ1bmN0aW9uIGVuY29kZShzdHJlYW0sIHZhbCkgewogICAgICAgIHJldHVybiBwdHIgPSB2YWw7CiAgICAgIH0KICAgIH07CgogICAgX3IkUG9pbnRlci5wcm90b3R5cGUuZW5jb2RlLmNhbGwodGhpcywgc3RyZWFtLCB2YWx1ZSwgY3R4KTsKICAgIHJldHVybiBbbmV3IFB0cihwdHIpXTsKICB9OwoKICByZXR1cm4gQ0ZGUG9pbnRlcjsKfShyLlBvaW50ZXIpOwoKdmFyIFB0ciA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBQdHIodmFsKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHRyKTsKCiAgICB0aGlzLnZhbCA9IHZhbDsKICAgIHRoaXMuZm9yY2VMYXJnZSA9IHRydWU7CiAgfQoKICBQdHIucHJvdG90eXBlLnZhbHVlT2YgPSBmdW5jdGlvbiB2YWx1ZU9mKCkgewogICAgcmV0dXJuIHRoaXMudmFsOwogIH07CgogIHJldHVybiBQdHI7Cn0oKTsKCnZhciBDRkZCbGVuZE9wID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIENGRkJsZW5kT3AoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ0ZGQmxlbmRPcCk7CiAgfQoKICBDRkZCbGVuZE9wLmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShzdHJlYW0sIHBhcmVudCwgb3BlcmFuZHMpIHsKICAgIHZhciBudW1CbGVuZHMgPSBvcGVyYW5kcy5wb3AoKTsKCiAgICAvLyBUT0RPOiBhY3R1YWxseSBibGVuZC4gRm9yIG5vdyBqdXN0IGNvbnN1bWUgdGhlIGRlbHRhcwogICAgLy8gc2luY2Ugd2UgZG9uJ3QgdXNlIGFueSBvZiB0aGUgdmFsdWVzIGFueXdheS4KICAgIHdoaWxlIChvcGVyYW5kcy5sZW5ndGggPiBudW1CbGVuZHMpIHsKICAgICAgb3BlcmFuZHMucG9wKCk7CiAgICB9CiAgfTsKCiAgcmV0dXJuIENGRkJsZW5kT3A7Cn0oKTsKCnZhciBDRkZQcml2YXRlRGljdCA9IG5ldyBDRkZEaWN0KFsKLy8ga2V5ICAgICAgIG5hbWUgICAgICAgICAgICAgICAgICAgIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Cls2LCAnQmx1ZVZhbHVlcycsICdkZWx0YScsIG51bGxdLCBbNywgJ090aGVyQmx1ZXMnLCAnZGVsdGEnLCBudWxsXSwgWzgsICdGYW1pbHlCbHVlcycsICdkZWx0YScsIG51bGxdLCBbOSwgJ0ZhbWlseU90aGVyQmx1ZXMnLCAnZGVsdGEnLCBudWxsXSwgW1sxMiwgOV0sICdCbHVlU2NhbGUnLCAnbnVtYmVyJywgMC4wMzk2MjVdLCBbWzEyLCAxMF0sICdCbHVlU2hpZnQnLCAnbnVtYmVyJywgN10sIFtbMTIsIDExXSwgJ0JsdWVGdXp6JywgJ251bWJlcicsIDFdLCBbMTAsICdTdGRIVycsICdudW1iZXInLCBudWxsXSwgWzExLCAnU3RkVlcnLCAnbnVtYmVyJywgbnVsbF0sIFtbMTIsIDEyXSwgJ1N0ZW1TbmFwSCcsICdkZWx0YScsIG51bGxdLCBbWzEyLCAxM10sICdTdGVtU25hcFYnLCAnZGVsdGEnLCBudWxsXSwgW1sxMiwgMTRdLCAnRm9yY2VCb2xkJywgJ2Jvb2xlYW4nLCBmYWxzZV0sIFtbMTIsIDE3XSwgJ0xhbmd1YWdlR3JvdXAnLCAnbnVtYmVyJywgMF0sIFtbMTIsIDE4XSwgJ0V4cGFuc2lvbkZhY3RvcicsICdudW1iZXInLCAwLjA2XSwgW1sxMiwgMTldLCAnaW5pdGlhbFJhbmRvbVNlZWQnLCAnbnVtYmVyJywgMF0sIFsyMCwgJ2RlZmF1bHRXaWR0aFgnLCAnbnVtYmVyJywgMF0sIFsyMSwgJ25vbWluYWxXaWR0aFgnLCAnbnVtYmVyJywgMF0sIFsyMiwgJ3ZzaW5kZXgnLCAnbnVtYmVyJywgMF0sIFsyMywgJ2JsZW5kJywgQ0ZGQmxlbmRPcCwgbnVsbF0sIFsxOSwgJ1N1YnJzJywgbmV3IENGRlBvaW50ZXIobmV3IENGRkluZGV4KCksIHsgdHlwZTogJ2xvY2FsJyB9KSwgbnVsbF1dKTsKCi8vIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gQXBwZW5kaXggQSBvZiB0aGUgQ0ZGIHNwZWNpZmljYXRpb247IGRvCi8vIG5vdCBlZGl0LiBMZW5ndGggc2hvdWxkIGJlIDM5MS4KdmFyIHN0YW5kYXJkU3RyaW5ncyA9IFsiLm5vdGRlZiIsICJzcGFjZSIsICJleGNsYW0iLCAicXVvdGVkYmwiLCAibnVtYmVyc2lnbiIsICJkb2xsYXIiLCAicGVyY2VudCIsICJhbXBlcnNhbmQiLCAicXVvdGVyaWdodCIsICJwYXJlbmxlZnQiLCAicGFyZW5yaWdodCIsICJhc3RlcmlzayIsICJwbHVzIiwgImNvbW1hIiwgImh5cGhlbiIsICJwZXJpb2QiLCAic2xhc2giLCAiemVybyIsICJvbmUiLCAidHdvIiwgInRocmVlIiwgImZvdXIiLCAiZml2ZSIsICJzaXgiLCAic2V2ZW4iLCAiZWlnaHQiLCAibmluZSIsICJjb2xvbiIsICJzZW1pY29sb24iLCAibGVzcyIsICJlcXVhbCIsICJncmVhdGVyIiwgInF1ZXN0aW9uIiwgImF0IiwgIkEiLCAiQiIsICJDIiwgIkQiLCAiRSIsICJGIiwgIkciLCAiSCIsICJJIiwgIkoiLCAiSyIsICJMIiwgIk0iLCAiTiIsICJPIiwgIlAiLCAiUSIsICJSIiwgIlMiLCAiVCIsICJVIiwgIlYiLCAiVyIsICJYIiwgIlkiLCAiWiIsICJicmFja2V0bGVmdCIsICJiYWNrc2xhc2giLCAiYnJhY2tldHJpZ2h0IiwgImFzY2lpY2lyY3VtIiwgInVuZGVyc2NvcmUiLCAicXVvdGVsZWZ0IiwgImEiLCAiYiIsICJjIiwgImQiLCAiZSIsICJmIiwgImciLCAiaCIsICJpIiwgImoiLCAiayIsICJsIiwgIm0iLCAibiIsICJvIiwgInAiLCAicSIsICJyIiwgInMiLCAidCIsICJ1IiwgInYiLCAidyIsICJ4IiwgInkiLCAieiIsICJicmFjZWxlZnQiLCAiYmFyIiwgImJyYWNlcmlnaHQiLCAiYXNjaWl0aWxkZSIsICJleGNsYW1kb3duIiwgImNlbnQiLCAic3RlcmxpbmciLCAiZnJhY3Rpb24iLCAieWVuIiwgImZsb3JpbiIsICJzZWN0aW9uIiwgImN1cnJlbmN5IiwgInF1b3Rlc2luZ2xlIiwgInF1b3RlZGJsbGVmdCIsICJndWlsbGVtb3RsZWZ0IiwgImd1aWxzaW5nbGxlZnQiLCAiZ3VpbHNpbmdscmlnaHQiLCAiZmkiLCAiZmwiLCAiZW5kYXNoIiwgImRhZ2dlciIsICJkYWdnZXJkYmwiLCAicGVyaW9kY2VudGVyZWQiLCAicGFyYWdyYXBoIiwgImJ1bGxldCIsICJxdW90ZXNpbmdsYmFzZSIsICJxdW90ZWRibGJhc2UiLCAicXVvdGVkYmxyaWdodCIsICJndWlsbGVtb3RyaWdodCIsICJlbGxpcHNpcyIsICJwZXJ0aG91c2FuZCIsICJxdWVzdGlvbmRvd24iLCAiZ3JhdmUiLCAiYWN1dGUiLCAiY2lyY3VtZmxleCIsICJ0aWxkZSIsICJtYWNyb24iLCAiYnJldmUiLCAiZG90YWNjZW50IiwgImRpZXJlc2lzIiwgInJpbmciLCAiY2VkaWxsYSIsICJodW5nYXJ1bWxhdXQiLCAib2dvbmVrIiwgImNhcm9uIiwgImVtZGFzaCIsICJBRSIsICJvcmRmZW1pbmluZSIsICJMc2xhc2giLCAiT3NsYXNoIiwgIk9FIiwgIm9yZG1hc2N1bGluZSIsICJhZSIsICJkb3RsZXNzaSIsICJsc2xhc2giLCAib3NsYXNoIiwgIm9lIiwgImdlcm1hbmRibHMiLCAib25lc3VwZXJpb3IiLCAibG9naWNhbG5vdCIsICJtdSIsICJ0cmFkZW1hcmsiLCAiRXRoIiwgIm9uZWhhbGYiLCAicGx1c21pbnVzIiwgIlRob3JuIiwgIm9uZXF1YXJ0ZXIiLCAiZGl2aWRlIiwgImJyb2tlbmJhciIsICJkZWdyZWUiLCAidGhvcm4iLCAidGhyZWVxdWFydGVycyIsICJ0d29zdXBlcmlvciIsICJyZWdpc3RlcmVkIiwgIm1pbnVzIiwgImV0aCIsICJtdWx0aXBseSIsICJ0aHJlZXN1cGVyaW9yIiwgImNvcHlyaWdodCIsICJBYWN1dGUiLCAiQWNpcmN1bWZsZXgiLCAiQWRpZXJlc2lzIiwgIkFncmF2ZSIsICJBcmluZyIsICJBdGlsZGUiLCAiQ2NlZGlsbGEiLCAiRWFjdXRlIiwgIkVjaXJjdW1mbGV4IiwgIkVkaWVyZXNpcyIsICJFZ3JhdmUiLCAiSWFjdXRlIiwgIkljaXJjdW1mbGV4IiwgIklkaWVyZXNpcyIsICJJZ3JhdmUiLCAiTnRpbGRlIiwgIk9hY3V0ZSIsICJPY2lyY3VtZmxleCIsICJPZGllcmVzaXMiLCAiT2dyYXZlIiwgIk90aWxkZSIsICJTY2Fyb24iLCAiVWFjdXRlIiwgIlVjaXJjdW1mbGV4IiwgIlVkaWVyZXNpcyIsICJVZ3JhdmUiLCAiWWFjdXRlIiwgIllkaWVyZXNpcyIsICJaY2Fyb24iLCAiYWFjdXRlIiwgImFjaXJjdW1mbGV4IiwgImFkaWVyZXNpcyIsICJhZ3JhdmUiLCAiYXJpbmciLCAiYXRpbGRlIiwgImNjZWRpbGxhIiwgImVhY3V0ZSIsICJlY2lyY3VtZmxleCIsICJlZGllcmVzaXMiLCAiZWdyYXZlIiwgImlhY3V0ZSIsICJpY2lyY3VtZmxleCIsICJpZGllcmVzaXMiLCAiaWdyYXZlIiwgIm50aWxkZSIsICJvYWN1dGUiLCAib2NpcmN1bWZsZXgiLCAib2RpZXJlc2lzIiwgIm9ncmF2ZSIsICJvdGlsZGUiLCAic2Nhcm9uIiwgInVhY3V0ZSIsICJ1Y2lyY3VtZmxleCIsICJ1ZGllcmVzaXMiLCAidWdyYXZlIiwgInlhY3V0ZSIsICJ5ZGllcmVzaXMiLCAiemNhcm9uIiwgImV4Y2xhbXNtYWxsIiwgIkh1bmdhcnVtbGF1dHNtYWxsIiwgImRvbGxhcm9sZHN0eWxlIiwgImRvbGxhcnN1cGVyaW9yIiwgImFtcGVyc2FuZHNtYWxsIiwgIkFjdXRlc21hbGwiLCAicGFyZW5sZWZ0c3VwZXJpb3IiLCAicGFyZW5yaWdodHN1cGVyaW9yIiwgInR3b2RvdGVubGVhZGVyIiwgIm9uZWRvdGVubGVhZGVyIiwgInplcm9vbGRzdHlsZSIsICJvbmVvbGRzdHlsZSIsICJ0d29vbGRzdHlsZSIsICJ0aHJlZW9sZHN0eWxlIiwgImZvdXJvbGRzdHlsZSIsICJmaXZlb2xkc3R5bGUiLCAic2l4b2xkc3R5bGUiLCAic2V2ZW5vbGRzdHlsZSIsICJlaWdodG9sZHN0eWxlIiwgIm5pbmVvbGRzdHlsZSIsICJjb21tYXN1cGVyaW9yIiwgInRocmVlcXVhcnRlcnNlbWRhc2giLCAicGVyaW9kc3VwZXJpb3IiLCAicXVlc3Rpb25zbWFsbCIsICJhc3VwZXJpb3IiLCAiYnN1cGVyaW9yIiwgImNlbnRzdXBlcmlvciIsICJkc3VwZXJpb3IiLCAiZXN1cGVyaW9yIiwgImlzdXBlcmlvciIsICJsc3VwZXJpb3IiLCAibXN1cGVyaW9yIiwgIm5zdXBlcmlvciIsICJvc3VwZXJpb3IiLCAicnN1cGVyaW9yIiwgInNzdXBlcmlvciIsICJ0c3VwZXJpb3IiLCAiZmYiLCAiZmZpIiwgImZmbCIsICJwYXJlbmxlZnRpbmZlcmlvciIsICJwYXJlbnJpZ2h0aW5mZXJpb3IiLCAiQ2lyY3VtZmxleHNtYWxsIiwgImh5cGhlbnN1cGVyaW9yIiwgIkdyYXZlc21hbGwiLCAiQXNtYWxsIiwgIkJzbWFsbCIsICJDc21hbGwiLCAiRHNtYWxsIiwgIkVzbWFsbCIsICJGc21hbGwiLCAiR3NtYWxsIiwgIkhzbWFsbCIsICJJc21hbGwiLCAiSnNtYWxsIiwgIktzbWFsbCIsICJMc21hbGwiLCAiTXNtYWxsIiwgIk5zbWFsbCIsICJPc21hbGwiLCAiUHNtYWxsIiwgIlFzbWFsbCIsICJSc21hbGwiLCAiU3NtYWxsIiwgIlRzbWFsbCIsICJVc21hbGwiLCAiVnNtYWxsIiwgIldzbWFsbCIsICJYc21hbGwiLCAiWXNtYWxsIiwgIlpzbWFsbCIsICJjb2xvbm1vbmV0YXJ5IiwgIm9uZWZpdHRlZCIsICJydXBpYWgiLCAiVGlsZGVzbWFsbCIsICJleGNsYW1kb3duc21hbGwiLCAiY2VudG9sZHN0eWxlIiwgIkxzbGFzaHNtYWxsIiwgIlNjYXJvbnNtYWxsIiwgIlpjYXJvbnNtYWxsIiwgIkRpZXJlc2lzc21hbGwiLCAiQnJldmVzbWFsbCIsICJDYXJvbnNtYWxsIiwgIkRvdGFjY2VudHNtYWxsIiwgIk1hY3JvbnNtYWxsIiwgImZpZ3VyZWRhc2giLCAiaHlwaGVuaW5mZXJpb3IiLCAiT2dvbmVrc21hbGwiLCAiUmluZ3NtYWxsIiwgIkNlZGlsbGFzbWFsbCIsICJxdWVzdGlvbmRvd25zbWFsbCIsICJvbmVlaWdodGgiLCAidGhyZWVlaWdodGhzIiwgImZpdmVlaWdodGhzIiwgInNldmVuZWlnaHRocyIsICJvbmV0aGlyZCIsICJ0d290aGlyZHMiLCAiemVyb3N1cGVyaW9yIiwgImZvdXJzdXBlcmlvciIsICJmaXZlc3VwZXJpb3IiLCAic2l4c3VwZXJpb3IiLCAic2V2ZW5zdXBlcmlvciIsICJlaWdodHN1cGVyaW9yIiwgIm5pbmVzdXBlcmlvciIsICJ6ZXJvaW5mZXJpb3IiLCAib25laW5mZXJpb3IiLCAidHdvaW5mZXJpb3IiLCAidGhyZWVpbmZlcmlvciIsICJmb3VyaW5mZXJpb3IiLCAiZml2ZWluZmVyaW9yIiwgInNpeGluZmVyaW9yIiwgInNldmVuaW5mZXJpb3IiLCAiZWlnaHRpbmZlcmlvciIsICJuaW5laW5mZXJpb3IiLCAiY2VudGluZmVyaW9yIiwgImRvbGxhcmluZmVyaW9yIiwgInBlcmlvZGluZmVyaW9yIiwgImNvbW1haW5mZXJpb3IiLCAiQWdyYXZlc21hbGwiLCAiQWFjdXRlc21hbGwiLCAiQWNpcmN1bWZsZXhzbWFsbCIsICJBdGlsZGVzbWFsbCIsICJBZGllcmVzaXNzbWFsbCIsICJBcmluZ3NtYWxsIiwgIkFFc21hbGwiLCAiQ2NlZGlsbGFzbWFsbCIsICJFZ3JhdmVzbWFsbCIsICJFYWN1dGVzbWFsbCIsICJFY2lyY3VtZmxleHNtYWxsIiwgIkVkaWVyZXNpc3NtYWxsIiwgIklncmF2ZXNtYWxsIiwgIklhY3V0ZXNtYWxsIiwgIkljaXJjdW1mbGV4c21hbGwiLCAiSWRpZXJlc2lzc21hbGwiLCAiRXRoc21hbGwiLCAiTnRpbGRlc21hbGwiLCAiT2dyYXZlc21hbGwiLCAiT2FjdXRlc21hbGwiLCAiT2NpcmN1bWZsZXhzbWFsbCIsICJPdGlsZGVzbWFsbCIsICJPZGllcmVzaXNzbWFsbCIsICJPRXNtYWxsIiwgIk9zbGFzaHNtYWxsIiwgIlVncmF2ZXNtYWxsIiwgIlVhY3V0ZXNtYWxsIiwgIlVjaXJjdW1mbGV4c21hbGwiLCAiVWRpZXJlc2lzc21hbGwiLCAiWWFjdXRlc21hbGwiLCAiVGhvcm5zbWFsbCIsICJZZGllcmVzaXNzbWFsbCIsICIwMDEuMDAwIiwgIjAwMS4wMDEiLCAiMDAxLjAwMiIsICIwMDEuMDAzIiwgIkJsYWNrIiwgIkJvbGQiLCAiQm9vayIsICJMaWdodCIsICJNZWRpdW0iLCAiUmVndWxhciIsICJSb21hbiIsICJTZW1pYm9sZCJdOwoKdmFyIFN0YW5kYXJkRW5jb2RpbmcgPSBbJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnc3BhY2UnLCAnZXhjbGFtJywgJ3F1b3RlZGJsJywgJ251bWJlcnNpZ24nLCAnZG9sbGFyJywgJ3BlcmNlbnQnLCAnYW1wZXJzYW5kJywgJ3F1b3RlcmlnaHQnLCAncGFyZW5sZWZ0JywgJ3BhcmVucmlnaHQnLCAnYXN0ZXJpc2snLCAncGx1cycsICdjb21tYScsICdoeXBoZW4nLCAncGVyaW9kJywgJ3NsYXNoJywgJ3plcm8nLCAnb25lJywgJ3R3bycsICd0aHJlZScsICdmb3VyJywgJ2ZpdmUnLCAnc2l4JywgJ3NldmVuJywgJ2VpZ2h0JywgJ25pbmUnLCAnY29sb24nLCAnc2VtaWNvbG9uJywgJ2xlc3MnLCAnZXF1YWwnLCAnZ3JlYXRlcicsICdxdWVzdGlvbicsICdhdCcsICdBJywgJ0InLCAnQycsICdEJywgJ0UnLCAnRicsICdHJywgJ0gnLCAnSScsICdKJywgJ0snLCAnTCcsICdNJywgJ04nLCAnTycsICdQJywgJ1EnLCAnUicsICdTJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onLCAnYnJhY2tldGxlZnQnLCAnYmFja3NsYXNoJywgJ2JyYWNrZXRyaWdodCcsICdhc2NpaWNpcmN1bScsICd1bmRlcnNjb3JlJywgJ3F1b3RlbGVmdCcsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsICdnJywgJ2gnLCAnaScsICdqJywgJ2snLCAnbCcsICdtJywgJ24nLCAnbycsICdwJywgJ3EnLCAncicsICdzJywgJ3QnLCAndScsICd2JywgJ3cnLCAneCcsICd5JywgJ3onLCAnYnJhY2VsZWZ0JywgJ2JhcicsICdicmFjZXJpZ2h0JywgJ2FzY2lpdGlsZGUnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJ2V4Y2xhbWRvd24nLCAnY2VudCcsICdzdGVybGluZycsICdmcmFjdGlvbicsICd5ZW4nLCAnZmxvcmluJywgJ3NlY3Rpb24nLCAnY3VycmVuY3knLCAncXVvdGVzaW5nbGUnLCAncXVvdGVkYmxsZWZ0JywgJ2d1aWxsZW1vdGxlZnQnLCAnZ3VpbHNpbmdsbGVmdCcsICdndWlsc2luZ2xyaWdodCcsICdmaScsICdmbCcsICcnLCAnZW5kYXNoJywgJ2RhZ2dlcicsICdkYWdnZXJkYmwnLCAncGVyaW9kY2VudGVyZWQnLCAnJywgJ3BhcmFncmFwaCcsICdidWxsZXQnLCAncXVvdGVzaW5nbGJhc2UnLCAncXVvdGVkYmxiYXNlJywgJ3F1b3RlZGJscmlnaHQnLCAnZ3VpbGxlbW90cmlnaHQnLCAnZWxsaXBzaXMnLCAncGVydGhvdXNhbmQnLCAnJywgJ3F1ZXN0aW9uZG93bicsICcnLCAnZ3JhdmUnLCAnYWN1dGUnLCAnY2lyY3VtZmxleCcsICd0aWxkZScsICdtYWNyb24nLCAnYnJldmUnLCAnZG90YWNjZW50JywgJ2RpZXJlc2lzJywgJycsICdyaW5nJywgJ2NlZGlsbGEnLCAnJywgJ2h1bmdhcnVtbGF1dCcsICdvZ29uZWsnLCAnY2Fyb24nLCAnZW1kYXNoJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICdBRScsICcnLCAnb3JkZmVtaW5pbmUnLCAnJywgJycsICcnLCAnJywgJ0xzbGFzaCcsICdPc2xhc2gnLCAnT0UnLCAnb3JkbWFzY3VsaW5lJywgJycsICcnLCAnJywgJycsICcnLCAnYWUnLCAnJywgJycsICcnLCAnZG90bGVzc2knLCAnJywgJycsICdsc2xhc2gnLCAnb3NsYXNoJywgJ29lJywgJ2dlcm1hbmRibHMnXTsKCnZhciBFeHBlcnRFbmNvZGluZyA9IFsnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICdzcGFjZScsICdleGNsYW1zbWFsbCcsICdIdW5nYXJ1bWxhdXRzbWFsbCcsICcnLCAnZG9sbGFyb2xkc3R5bGUnLCAnZG9sbGFyc3VwZXJpb3InLCAnYW1wZXJzYW5kc21hbGwnLCAnQWN1dGVzbWFsbCcsICdwYXJlbmxlZnRzdXBlcmlvcicsICdwYXJlbnJpZ2h0c3VwZXJpb3InLCAndHdvZG90ZW5sZWFkZXInLCAnb25lZG90ZW5sZWFkZXInLCAnY29tbWEnLCAnaHlwaGVuJywgJ3BlcmlvZCcsICdmcmFjdGlvbicsICd6ZXJvb2xkc3R5bGUnLCAnb25lb2xkc3R5bGUnLCAndHdvb2xkc3R5bGUnLCAndGhyZWVvbGRzdHlsZScsICdmb3Vyb2xkc3R5bGUnLCAnZml2ZW9sZHN0eWxlJywgJ3NpeG9sZHN0eWxlJywgJ3NldmVub2xkc3R5bGUnLCAnZWlnaHRvbGRzdHlsZScsICduaW5lb2xkc3R5bGUnLCAnY29sb24nLCAnc2VtaWNvbG9uJywgJ2NvbW1hc3VwZXJpb3InLCAndGhyZWVxdWFydGVyc2VtZGFzaCcsICdwZXJpb2RzdXBlcmlvcicsICdxdWVzdGlvbnNtYWxsJywgJycsICdhc3VwZXJpb3InLCAnYnN1cGVyaW9yJywgJ2NlbnRzdXBlcmlvcicsICdkc3VwZXJpb3InLCAnZXN1cGVyaW9yJywgJycsICcnLCAnaXN1cGVyaW9yJywgJycsICcnLCAnbHN1cGVyaW9yJywgJ21zdXBlcmlvcicsICduc3VwZXJpb3InLCAnb3N1cGVyaW9yJywgJycsICcnLCAncnN1cGVyaW9yJywgJ3NzdXBlcmlvcicsICd0c3VwZXJpb3InLCAnJywgJ2ZmJywgJ2ZpJywgJ2ZsJywgJ2ZmaScsICdmZmwnLCAncGFyZW5sZWZ0aW5mZXJpb3InLCAnJywgJ3BhcmVucmlnaHRpbmZlcmlvcicsICdDaXJjdW1mbGV4c21hbGwnLCAnaHlwaGVuc3VwZXJpb3InLCAnR3JhdmVzbWFsbCcsICdBc21hbGwnLCAnQnNtYWxsJywgJ0NzbWFsbCcsICdEc21hbGwnLCAnRXNtYWxsJywgJ0ZzbWFsbCcsICdHc21hbGwnLCAnSHNtYWxsJywgJ0lzbWFsbCcsICdKc21hbGwnLCAnS3NtYWxsJywgJ0xzbWFsbCcsICdNc21hbGwnLCAnTnNtYWxsJywgJ09zbWFsbCcsICdQc21hbGwnLCAnUXNtYWxsJywgJ1JzbWFsbCcsICdTc21hbGwnLCAnVHNtYWxsJywgJ1VzbWFsbCcsICdWc21hbGwnLCAnV3NtYWxsJywgJ1hzbWFsbCcsICdZc21hbGwnLCAnWnNtYWxsJywgJ2NvbG9ubW9uZXRhcnknLCAnb25lZml0dGVkJywgJ3J1cGlhaCcsICdUaWxkZXNtYWxsJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICcnLCAnJywgJycsICdleGNsYW1kb3duc21hbGwnLCAnY2VudG9sZHN0eWxlJywgJ0xzbGFzaHNtYWxsJywgJycsICcnLCAnU2Nhcm9uc21hbGwnLCAnWmNhcm9uc21hbGwnLCAnRGllcmVzaXNzbWFsbCcsICdCcmV2ZXNtYWxsJywgJ0Nhcm9uc21hbGwnLCAnJywgJ0RvdGFjY2VudHNtYWxsJywgJycsICcnLCAnTWFjcm9uc21hbGwnLCAnJywgJycsICdmaWd1cmVkYXNoJywgJ2h5cGhlbmluZmVyaW9yJywgJycsICcnLCAnT2dvbmVrc21hbGwnLCAnUmluZ3NtYWxsJywgJ0NlZGlsbGFzbWFsbCcsICcnLCAnJywgJycsICdvbmVxdWFydGVyJywgJ29uZWhhbGYnLCAndGhyZWVxdWFydGVycycsICdxdWVzdGlvbmRvd25zbWFsbCcsICdvbmVlaWdodGgnLCAndGhyZWVlaWdodGhzJywgJ2ZpdmVlaWdodGhzJywgJ3NldmVuZWlnaHRocycsICdvbmV0aGlyZCcsICd0d290aGlyZHMnLCAnJywgJycsICd6ZXJvc3VwZXJpb3InLCAnb25lc3VwZXJpb3InLCAndHdvc3VwZXJpb3InLCAndGhyZWVzdXBlcmlvcicsICdmb3Vyc3VwZXJpb3InLCAnZml2ZXN1cGVyaW9yJywgJ3NpeHN1cGVyaW9yJywgJ3NldmVuc3VwZXJpb3InLCAnZWlnaHRzdXBlcmlvcicsICduaW5lc3VwZXJpb3InLCAnemVyb2luZmVyaW9yJywgJ29uZWluZmVyaW9yJywgJ3R3b2luZmVyaW9yJywgJ3RocmVlaW5mZXJpb3InLCAnZm91cmluZmVyaW9yJywgJ2ZpdmVpbmZlcmlvcicsICdzaXhpbmZlcmlvcicsICdzZXZlbmluZmVyaW9yJywgJ2VpZ2h0aW5mZXJpb3InLCAnbmluZWluZmVyaW9yJywgJ2NlbnRpbmZlcmlvcicsICdkb2xsYXJpbmZlcmlvcicsICdwZXJpb2RpbmZlcmlvcicsICdjb21tYWluZmVyaW9yJywgJ0FncmF2ZXNtYWxsJywgJ0FhY3V0ZXNtYWxsJywgJ0FjaXJjdW1mbGV4c21hbGwnLCAnQXRpbGRlc21hbGwnLCAnQWRpZXJlc2lzc21hbGwnLCAnQXJpbmdzbWFsbCcsICdBRXNtYWxsJywgJ0NjZWRpbGxhc21hbGwnLCAnRWdyYXZlc21hbGwnLCAnRWFjdXRlc21hbGwnLCAnRWNpcmN1bWZsZXhzbWFsbCcsICdFZGllcmVzaXNzbWFsbCcsICdJZ3JhdmVzbWFsbCcsICdJYWN1dGVzbWFsbCcsICdJY2lyY3VtZmxleHNtYWxsJywgJ0lkaWVyZXNpc3NtYWxsJywgJ0V0aHNtYWxsJywgJ050aWxkZXNtYWxsJywgJ09ncmF2ZXNtYWxsJywgJ09hY3V0ZXNtYWxsJywgJ09jaXJjdW1mbGV4c21hbGwnLCAnT3RpbGRlc21hbGwnLCAnT2RpZXJlc2lzc21hbGwnLCAnT0VzbWFsbCcsICdPc2xhc2hzbWFsbCcsICdVZ3JhdmVzbWFsbCcsICdVYWN1dGVzbWFsbCcsICdVY2lyY3VtZmxleHNtYWxsJywgJ1VkaWVyZXNpc3NtYWxsJywgJ1lhY3V0ZXNtYWxsJywgJ1Rob3Juc21hbGwnLCAnWWRpZXJlc2lzc21hbGwnXTsKCnZhciBJU09BZG9iZUNoYXJzZXQgPSBbJy5ub3RkZWYnLCAnc3BhY2UnLCAnZXhjbGFtJywgJ3F1b3RlZGJsJywgJ251bWJlcnNpZ24nLCAnZG9sbGFyJywgJ3BlcmNlbnQnLCAnYW1wZXJzYW5kJywgJ3F1b3RlcmlnaHQnLCAncGFyZW5sZWZ0JywgJ3BhcmVucmlnaHQnLCAnYXN0ZXJpc2snLCAncGx1cycsICdjb21tYScsICdoeXBoZW4nLCAncGVyaW9kJywgJ3NsYXNoJywgJ3plcm8nLCAnb25lJywgJ3R3bycsICd0aHJlZScsICdmb3VyJywgJ2ZpdmUnLCAnc2l4JywgJ3NldmVuJywgJ2VpZ2h0JywgJ25pbmUnLCAnY29sb24nLCAnc2VtaWNvbG9uJywgJ2xlc3MnLCAnZXF1YWwnLCAnZ3JlYXRlcicsICdxdWVzdGlvbicsICdhdCcsICdBJywgJ0InLCAnQycsICdEJywgJ0UnLCAnRicsICdHJywgJ0gnLCAnSScsICdKJywgJ0snLCAnTCcsICdNJywgJ04nLCAnTycsICdQJywgJ1EnLCAnUicsICdTJywgJ1QnLCAnVScsICdWJywgJ1cnLCAnWCcsICdZJywgJ1onLCAnYnJhY2tldGxlZnQnLCAnYmFja3NsYXNoJywgJ2JyYWNrZXRyaWdodCcsICdhc2NpaWNpcmN1bScsICd1bmRlcnNjb3JlJywgJ3F1b3RlbGVmdCcsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsICdnJywgJ2gnLCAnaScsICdqJywgJ2snLCAnbCcsICdtJywgJ24nLCAnbycsICdwJywgJ3EnLCAncicsICdzJywgJ3QnLCAndScsICd2JywgJ3cnLCAneCcsICd5JywgJ3onLCAnYnJhY2VsZWZ0JywgJ2JhcicsICdicmFjZXJpZ2h0JywgJ2FzY2lpdGlsZGUnLCAnZXhjbGFtZG93bicsICdjZW50JywgJ3N0ZXJsaW5nJywgJ2ZyYWN0aW9uJywgJ3llbicsICdmbG9yaW4nLCAnc2VjdGlvbicsICdjdXJyZW5jeScsICdxdW90ZXNpbmdsZScsICdxdW90ZWRibGxlZnQnLCAnZ3VpbGxlbW90bGVmdCcsICdndWlsc2luZ2xsZWZ0JywgJ2d1aWxzaW5nbHJpZ2h0JywgJ2ZpJywgJ2ZsJywgJ2VuZGFzaCcsICdkYWdnZXInLCAnZGFnZ2VyZGJsJywgJ3BlcmlvZGNlbnRlcmVkJywgJ3BhcmFncmFwaCcsICdidWxsZXQnLCAncXVvdGVzaW5nbGJhc2UnLCAncXVvdGVkYmxiYXNlJywgJ3F1b3RlZGJscmlnaHQnLCAnZ3VpbGxlbW90cmlnaHQnLCAnZWxsaXBzaXMnLCAncGVydGhvdXNhbmQnLCAncXVlc3Rpb25kb3duJywgJ2dyYXZlJywgJ2FjdXRlJywgJ2NpcmN1bWZsZXgnLCAndGlsZGUnLCAnbWFjcm9uJywgJ2JyZXZlJywgJ2RvdGFjY2VudCcsICdkaWVyZXNpcycsICdyaW5nJywgJ2NlZGlsbGEnLCAnaHVuZ2FydW1sYXV0JywgJ29nb25laycsICdjYXJvbicsICdlbWRhc2gnLCAnQUUnLCAnb3JkZmVtaW5pbmUnLCAnTHNsYXNoJywgJ09zbGFzaCcsICdPRScsICdvcmRtYXNjdWxpbmUnLCAnYWUnLCAnZG90bGVzc2knLCAnbHNsYXNoJywgJ29zbGFzaCcsICdvZScsICdnZXJtYW5kYmxzJywgJ29uZXN1cGVyaW9yJywgJ2xvZ2ljYWxub3QnLCAnbXUnLCAndHJhZGVtYXJrJywgJ0V0aCcsICdvbmVoYWxmJywgJ3BsdXNtaW51cycsICdUaG9ybicsICdvbmVxdWFydGVyJywgJ2RpdmlkZScsICdicm9rZW5iYXInLCAnZGVncmVlJywgJ3Rob3JuJywgJ3RocmVlcXVhcnRlcnMnLCAndHdvc3VwZXJpb3InLCAncmVnaXN0ZXJlZCcsICdtaW51cycsICdldGgnLCAnbXVsdGlwbHknLCAndGhyZWVzdXBlcmlvcicsICdjb3B5cmlnaHQnLCAnQWFjdXRlJywgJ0FjaXJjdW1mbGV4JywgJ0FkaWVyZXNpcycsICdBZ3JhdmUnLCAnQXJpbmcnLCAnQXRpbGRlJywgJ0NjZWRpbGxhJywgJ0VhY3V0ZScsICdFY2lyY3VtZmxleCcsICdFZGllcmVzaXMnLCAnRWdyYXZlJywgJ0lhY3V0ZScsICdJY2lyY3VtZmxleCcsICdJZGllcmVzaXMnLCAnSWdyYXZlJywgJ050aWxkZScsICdPYWN1dGUnLCAnT2NpcmN1bWZsZXgnLCAnT2RpZXJlc2lzJywgJ09ncmF2ZScsICdPdGlsZGUnLCAnU2Nhcm9uJywgJ1VhY3V0ZScsICdVY2lyY3VtZmxleCcsICdVZGllcmVzaXMnLCAnVWdyYXZlJywgJ1lhY3V0ZScsICdZZGllcmVzaXMnLCAnWmNhcm9uJywgJ2FhY3V0ZScsICdhY2lyY3VtZmxleCcsICdhZGllcmVzaXMnLCAnYWdyYXZlJywgJ2FyaW5nJywgJ2F0aWxkZScsICdjY2VkaWxsYScsICdlYWN1dGUnLCAnZWNpcmN1bWZsZXgnLCAnZWRpZXJlc2lzJywgJ2VncmF2ZScsICdpYWN1dGUnLCAnaWNpcmN1bWZsZXgnLCAnaWRpZXJlc2lzJywgJ2lncmF2ZScsICdudGlsZGUnLCAnb2FjdXRlJywgJ29jaXJjdW1mbGV4JywgJ29kaWVyZXNpcycsICdvZ3JhdmUnLCAnb3RpbGRlJywgJ3NjYXJvbicsICd1YWN1dGUnLCAndWNpcmN1bWZsZXgnLCAndWRpZXJlc2lzJywgJ3VncmF2ZScsICd5YWN1dGUnLCAneWRpZXJlc2lzJywgJ3pjYXJvbiddOwoKdmFyIEV4cGVydENoYXJzZXQgPSBbJy5ub3RkZWYnLCAnc3BhY2UnLCAnZXhjbGFtc21hbGwnLCAnSHVuZ2FydW1sYXV0c21hbGwnLCAnZG9sbGFyb2xkc3R5bGUnLCAnZG9sbGFyc3VwZXJpb3InLCAnYW1wZXJzYW5kc21hbGwnLCAnQWN1dGVzbWFsbCcsICdwYXJlbmxlZnRzdXBlcmlvcicsICdwYXJlbnJpZ2h0c3VwZXJpb3InLCAndHdvZG90ZW5sZWFkZXInLCAnb25lZG90ZW5sZWFkZXInLCAnY29tbWEnLCAnaHlwaGVuJywgJ3BlcmlvZCcsICdmcmFjdGlvbicsICd6ZXJvb2xkc3R5bGUnLCAnb25lb2xkc3R5bGUnLCAndHdvb2xkc3R5bGUnLCAndGhyZWVvbGRzdHlsZScsICdmb3Vyb2xkc3R5bGUnLCAnZml2ZW9sZHN0eWxlJywgJ3NpeG9sZHN0eWxlJywgJ3NldmVub2xkc3R5bGUnLCAnZWlnaHRvbGRzdHlsZScsICduaW5lb2xkc3R5bGUnLCAnY29sb24nLCAnc2VtaWNvbG9uJywgJ2NvbW1hc3VwZXJpb3InLCAndGhyZWVxdWFydGVyc2VtZGFzaCcsICdwZXJpb2RzdXBlcmlvcicsICdxdWVzdGlvbnNtYWxsJywgJ2FzdXBlcmlvcicsICdic3VwZXJpb3InLCAnY2VudHN1cGVyaW9yJywgJ2RzdXBlcmlvcicsICdlc3VwZXJpb3InLCAnaXN1cGVyaW9yJywgJ2xzdXBlcmlvcicsICdtc3VwZXJpb3InLCAnbnN1cGVyaW9yJywgJ29zdXBlcmlvcicsICdyc3VwZXJpb3InLCAnc3N1cGVyaW9yJywgJ3RzdXBlcmlvcicsICdmZicsICdmaScsICdmbCcsICdmZmknLCAnZmZsJywgJ3BhcmVubGVmdGluZmVyaW9yJywgJ3BhcmVucmlnaHRpbmZlcmlvcicsICdDaXJjdW1mbGV4c21hbGwnLCAnaHlwaGVuc3VwZXJpb3InLCAnR3JhdmVzbWFsbCcsICdBc21hbGwnLCAnQnNtYWxsJywgJ0NzbWFsbCcsICdEc21hbGwnLCAnRXNtYWxsJywgJ0ZzbWFsbCcsICdHc21hbGwnLCAnSHNtYWxsJywgJ0lzbWFsbCcsICdKc21hbGwnLCAnS3NtYWxsJywgJ0xzbWFsbCcsICdNc21hbGwnLCAnTnNtYWxsJywgJ09zbWFsbCcsICdQc21hbGwnLCAnUXNtYWxsJywgJ1JzbWFsbCcsICdTc21hbGwnLCAnVHNtYWxsJywgJ1VzbWFsbCcsICdWc21hbGwnLCAnV3NtYWxsJywgJ1hzbWFsbCcsICdZc21hbGwnLCAnWnNtYWxsJywgJ2NvbG9ubW9uZXRhcnknLCAnb25lZml0dGVkJywgJ3J1cGlhaCcsICdUaWxkZXNtYWxsJywgJ2V4Y2xhbWRvd25zbWFsbCcsICdjZW50b2xkc3R5bGUnLCAnTHNsYXNoc21hbGwnLCAnU2Nhcm9uc21hbGwnLCAnWmNhcm9uc21hbGwnLCAnRGllcmVzaXNzbWFsbCcsICdCcmV2ZXNtYWxsJywgJ0Nhcm9uc21hbGwnLCAnRG90YWNjZW50c21hbGwnLCAnTWFjcm9uc21hbGwnLCAnZmlndXJlZGFzaCcsICdoeXBoZW5pbmZlcmlvcicsICdPZ29uZWtzbWFsbCcsICdSaW5nc21hbGwnLCAnQ2VkaWxsYXNtYWxsJywgJ29uZXF1YXJ0ZXInLCAnb25laGFsZicsICd0aHJlZXF1YXJ0ZXJzJywgJ3F1ZXN0aW9uZG93bnNtYWxsJywgJ29uZWVpZ2h0aCcsICd0aHJlZWVpZ2h0aHMnLCAnZml2ZWVpZ2h0aHMnLCAnc2V2ZW5laWdodGhzJywgJ29uZXRoaXJkJywgJ3R3b3RoaXJkcycsICd6ZXJvc3VwZXJpb3InLCAnb25lc3VwZXJpb3InLCAndHdvc3VwZXJpb3InLCAndGhyZWVzdXBlcmlvcicsICdmb3Vyc3VwZXJpb3InLCAnZml2ZXN1cGVyaW9yJywgJ3NpeHN1cGVyaW9yJywgJ3NldmVuc3VwZXJpb3InLCAnZWlnaHRzdXBlcmlvcicsICduaW5lc3VwZXJpb3InLCAnemVyb2luZmVyaW9yJywgJ29uZWluZmVyaW9yJywgJ3R3b2luZmVyaW9yJywgJ3RocmVlaW5mZXJpb3InLCAnZm91cmluZmVyaW9yJywgJ2ZpdmVpbmZlcmlvcicsICdzaXhpbmZlcmlvcicsICdzZXZlbmluZmVyaW9yJywgJ2VpZ2h0aW5mZXJpb3InLCAnbmluZWluZmVyaW9yJywgJ2NlbnRpbmZlcmlvcicsICdkb2xsYXJpbmZlcmlvcicsICdwZXJpb2RpbmZlcmlvcicsICdjb21tYWluZmVyaW9yJywgJ0FncmF2ZXNtYWxsJywgJ0FhY3V0ZXNtYWxsJywgJ0FjaXJjdW1mbGV4c21hbGwnLCAnQXRpbGRlc21hbGwnLCAnQWRpZXJlc2lzc21hbGwnLCAnQXJpbmdzbWFsbCcsICdBRXNtYWxsJywgJ0NjZWRpbGxhc21hbGwnLCAnRWdyYXZlc21hbGwnLCAnRWFjdXRlc21hbGwnLCAnRWNpcmN1bWZsZXhzbWFsbCcsICdFZGllcmVzaXNzbWFsbCcsICdJZ3JhdmVzbWFsbCcsICdJYWN1dGVzbWFsbCcsICdJY2lyY3VtZmxleHNtYWxsJywgJ0lkaWVyZXNpc3NtYWxsJywgJ0V0aHNtYWxsJywgJ050aWxkZXNtYWxsJywgJ09ncmF2ZXNtYWxsJywgJ09hY3V0ZXNtYWxsJywgJ09jaXJjdW1mbGV4c21hbGwnLCAnT3RpbGRlc21hbGwnLCAnT2RpZXJlc2lzc21hbGwnLCAnT0VzbWFsbCcsICdPc2xhc2hzbWFsbCcsICdVZ3JhdmVzbWFsbCcsICdVYWN1dGVzbWFsbCcsICdVY2lyY3VtZmxleHNtYWxsJywgJ1VkaWVyZXNpc3NtYWxsJywgJ1lhY3V0ZXNtYWxsJywgJ1Rob3Juc21hbGwnLCAnWWRpZXJlc2lzc21hbGwnXTsKCnZhciBFeHBlcnRTdWJzZXRDaGFyc2V0ID0gWycubm90ZGVmJywgJ3NwYWNlJywgJ2RvbGxhcm9sZHN0eWxlJywgJ2RvbGxhcnN1cGVyaW9yJywgJ3BhcmVubGVmdHN1cGVyaW9yJywgJ3BhcmVucmlnaHRzdXBlcmlvcicsICd0d29kb3RlbmxlYWRlcicsICdvbmVkb3RlbmxlYWRlcicsICdjb21tYScsICdoeXBoZW4nLCAncGVyaW9kJywgJ2ZyYWN0aW9uJywgJ3plcm9vbGRzdHlsZScsICdvbmVvbGRzdHlsZScsICd0d29vbGRzdHlsZScsICd0aHJlZW9sZHN0eWxlJywgJ2ZvdXJvbGRzdHlsZScsICdmaXZlb2xkc3R5bGUnLCAnc2l4b2xkc3R5bGUnLCAnc2V2ZW5vbGRzdHlsZScsICdlaWdodG9sZHN0eWxlJywgJ25pbmVvbGRzdHlsZScsICdjb2xvbicsICdzZW1pY29sb24nLCAnY29tbWFzdXBlcmlvcicsICd0aHJlZXF1YXJ0ZXJzZW1kYXNoJywgJ3BlcmlvZHN1cGVyaW9yJywgJ2FzdXBlcmlvcicsICdic3VwZXJpb3InLCAnY2VudHN1cGVyaW9yJywgJ2RzdXBlcmlvcicsICdlc3VwZXJpb3InLCAnaXN1cGVyaW9yJywgJ2xzdXBlcmlvcicsICdtc3VwZXJpb3InLCAnbnN1cGVyaW9yJywgJ29zdXBlcmlvcicsICdyc3VwZXJpb3InLCAnc3N1cGVyaW9yJywgJ3RzdXBlcmlvcicsICdmZicsICdmaScsICdmbCcsICdmZmknLCAnZmZsJywgJ3BhcmVubGVmdGluZmVyaW9yJywgJ3BhcmVucmlnaHRpbmZlcmlvcicsICdoeXBoZW5zdXBlcmlvcicsICdjb2xvbm1vbmV0YXJ5JywgJ29uZWZpdHRlZCcsICdydXBpYWgnLCAnY2VudG9sZHN0eWxlJywgJ2ZpZ3VyZWRhc2gnLCAnaHlwaGVuaW5mZXJpb3InLCAnb25lcXVhcnRlcicsICdvbmVoYWxmJywgJ3RocmVlcXVhcnRlcnMnLCAnb25lZWlnaHRoJywgJ3RocmVlZWlnaHRocycsICdmaXZlZWlnaHRocycsICdzZXZlbmVpZ2h0aHMnLCAnb25ldGhpcmQnLCAndHdvdGhpcmRzJywgJ3plcm9zdXBlcmlvcicsICdvbmVzdXBlcmlvcicsICd0d29zdXBlcmlvcicsICd0aHJlZXN1cGVyaW9yJywgJ2ZvdXJzdXBlcmlvcicsICdmaXZlc3VwZXJpb3InLCAnc2l4c3VwZXJpb3InLCAnc2V2ZW5zdXBlcmlvcicsICdlaWdodHN1cGVyaW9yJywgJ25pbmVzdXBlcmlvcicsICd6ZXJvaW5mZXJpb3InLCAnb25laW5mZXJpb3InLCAndHdvaW5mZXJpb3InLCAndGhyZWVpbmZlcmlvcicsICdmb3VyaW5mZXJpb3InLCAnZml2ZWluZmVyaW9yJywgJ3NpeGluZmVyaW9yJywgJ3NldmVuaW5mZXJpb3InLCAnZWlnaHRpbmZlcmlvcicsICduaW5laW5mZXJpb3InLCAnY2VudGluZmVyaW9yJywgJ2RvbGxhcmluZmVyaW9yJywgJ3BlcmlvZGluZmVyaW9yJywgJ2NvbW1haW5mZXJpb3InXTsKCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIFNjcmlwdHMgYW5kIExhbmd1YWdlcyAjCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgp2YXIgTGFuZ1N5c1RhYmxlID0gbmV3IHIuU3RydWN0KHsKICByZXNlcnZlZDogbmV3IHIuUmVzZXJ2ZWQoci51aW50MTYpLAogIHJlcUZlYXR1cmVJbmRleDogci51aW50MTYsCiAgZmVhdHVyZUNvdW50OiByLnVpbnQxNiwKICBmZWF0dXJlSW5kZXhlczogbmV3IHIuQXJyYXkoci51aW50MTYsICdmZWF0dXJlQ291bnQnKQp9KTsKCnZhciBMYW5nU3lzUmVjb3JkID0gbmV3IHIuU3RydWN0KHsKICB0YWc6IG5ldyByLlN0cmluZyg0KSwKICBsYW5nU3lzOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBMYW5nU3lzVGFibGUsIHsgdHlwZTogJ3BhcmVudCcgfSkKfSk7Cgp2YXIgU2NyaXB0ID0gbmV3IHIuU3RydWN0KHsKICBkZWZhdWx0TGFuZ1N5czogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgTGFuZ1N5c1RhYmxlKSwKICBjb3VudDogci51aW50MTYsCiAgbGFuZ1N5c1JlY29yZHM6IG5ldyByLkFycmF5KExhbmdTeXNSZWNvcmQsICdjb3VudCcpCn0pOwoKdmFyIFNjcmlwdFJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgdGFnOiBuZXcgci5TdHJpbmcoNCksCiAgc2NyaXB0OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBTY3JpcHQsIHsgdHlwZTogJ3BhcmVudCcgfSkKfSk7Cgp2YXIgU2NyaXB0TGlzdCA9IG5ldyByLkFycmF5KFNjcmlwdFJlY29yZCwgci51aW50MTYpOwoKLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBGZWF0dXJlcyBhbmQgTG9va3VwcyAjCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCnZhciBGZWF0dXJlID0gbmV3IHIuU3RydWN0KHsKICBmZWF0dXJlUGFyYW1zOiByLnVpbnQxNiwgLy8gcG9pbnRlcgogIGxvb2t1cENvdW50OiByLnVpbnQxNiwKICBsb29rdXBMaXN0SW5kZXhlczogbmV3IHIuQXJyYXkoci51aW50MTYsICdsb29rdXBDb3VudCcpCn0pOwoKdmFyIEZlYXR1cmVSZWNvcmQgPSBuZXcgci5TdHJ1Y3QoewogIHRhZzogbmV3IHIuU3RyaW5nKDQpLAogIGZlYXR1cmU6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEZlYXR1cmUsIHsgdHlwZTogJ3BhcmVudCcgfSkKfSk7Cgp2YXIgRmVhdHVyZUxpc3QgPSBuZXcgci5BcnJheShGZWF0dXJlUmVjb3JkLCByLnVpbnQxNik7Cgp2YXIgTG9va3VwRmxhZ3MgPSBuZXcgci5TdHJ1Y3QoewogIG1hcmtBdHRhY2htZW50VHlwZTogci51aW50OCwKICBmbGFnczogbmV3IHIuQml0ZmllbGQoci51aW50OCwgWydyaWdodFRvTGVmdCcsICdpZ25vcmVCYXNlR2x5cGhzJywgJ2lnbm9yZUxpZ2F0dXJlcycsICdpZ25vcmVNYXJrcycsICd1c2VNYXJrRmlsdGVyaW5nU2V0J10pCn0pOwoKZnVuY3Rpb24gTG9va3VwTGlzdChTdWJUYWJsZSkgewogIHZhciBMb29rdXAgPSBuZXcgci5TdHJ1Y3QoewogICAgbG9va3VwVHlwZTogci51aW50MTYsCiAgICBmbGFnczogTG9va3VwRmxhZ3MsCiAgICBzdWJUYWJsZUNvdW50OiByLnVpbnQxNiwKICAgIHN1YlRhYmxlczogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgU3ViVGFibGUpLCAnc3ViVGFibGVDb3VudCcpLAogICAgbWFya0ZpbHRlcmluZ1NldDogbmV3IHIuT3B0aW9uYWwoci51aW50MTYsIGZ1bmN0aW9uICh0KSB7CiAgICAgIHJldHVybiB0LmZsYWdzLmZsYWdzLnVzZU1hcmtGaWx0ZXJpbmdTZXQ7CiAgICB9KQogIH0pOwoKICByZXR1cm4gbmV3IHIuTGF6eUFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIExvb2t1cCksIHIudWludDE2KTsKfQoKLy8jIyMjIyMjIyMjIyMjIyMjIwovLyBDb3ZlcmFnZSBUYWJsZSAjCi8vIyMjIyMjIyMjIyMjIyMjIyMKCnZhciBSYW5nZVJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgc3RhcnQ6IHIudWludDE2LAogIGVuZDogci51aW50MTYsCiAgc3RhcnRDb3ZlcmFnZUluZGV4OiByLnVpbnQxNgp9KTsKCnZhciBDb3ZlcmFnZSA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQxNiwgewogIDE6IHsKICAgIGdseXBoQ291bnQ6IHIudWludDE2LAogICAgZ2x5cGhzOiBuZXcgci5BcnJheShyLnVpbnQxNiwgJ2dseXBoQ291bnQnKQogIH0sCiAgMjogewogICAgcmFuZ2VDb3VudDogci51aW50MTYsCiAgICByYW5nZVJlY29yZHM6IG5ldyByLkFycmF5KFJhbmdlUmVjb3JkLCAncmFuZ2VDb3VudCcpCiAgfQp9KTsKCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBDbGFzcyBEZWZpbml0aW9uIFRhYmxlICMKLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgp2YXIgQ2xhc3NSYW5nZVJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgc3RhcnQ6IHIudWludDE2LAogIGVuZDogci51aW50MTYsCiAgY2xhc3M6IHIudWludDE2Cn0pOwoKdmFyIENsYXNzRGVmID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7CiAgMTogeyAvLyBDbGFzcyBhcnJheQogICAgc3RhcnRHbHlwaDogci51aW50MTYsCiAgICBnbHlwaENvdW50OiByLnVpbnQxNiwKICAgIGNsYXNzVmFsdWVBcnJheTogbmV3IHIuQXJyYXkoci51aW50MTYsICdnbHlwaENvdW50JykKICB9LAogIDI6IHsgLy8gQ2xhc3MgcmFuZ2VzCiAgICBjbGFzc1JhbmdlQ291bnQ6IHIudWludDE2LAogICAgY2xhc3NSYW5nZVJlY29yZDogbmV3IHIuQXJyYXkoQ2xhc3NSYW5nZVJlY29yZCwgJ2NsYXNzUmFuZ2VDb3VudCcpCiAgfQp9KTsKCi8vIyMjIyMjIyMjIyMjIyMjCi8vIERldmljZSBUYWJsZSAjCi8vIyMjIyMjIyMjIyMjIyMjCgp2YXIgRGV2aWNlID0gbmV3IHIuU3RydWN0KHsKICBhOiByLnVpbnQxNiwgLy8gc3RhcnRTaXplIGZvciBoaW50aW5nIERldmljZSwgb3V0ZXJJbmRleCBmb3IgVmFyaWF0aW9uSW5kZXgKICBiOiByLnVpbnQxNiwgLy8gZW5kU2l6ZSBmb3IgRGV2aWNlLCBpbm5lckluZGV4IGZvciBWYXJpYXRpb25JbmRleAogIGRlbHRhRm9ybWF0OiByLnVpbnQxNgp9KTsKCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIENvbnRleHR1YWwgU3Vic3RpdHV0aW9uL1Bvc2l0aW9uaW5nIFRhYmxlcyAjCi8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgp2YXIgTG9va3VwUmVjb3JkID0gbmV3IHIuU3RydWN0KHsKICBzZXF1ZW5jZUluZGV4OiByLnVpbnQxNiwKICBsb29rdXBMaXN0SW5kZXg6IHIudWludDE2Cn0pOwoKdmFyIFJ1bGUgPSBuZXcgci5TdHJ1Y3QoewogIGdseXBoQ291bnQ6IHIudWludDE2LAogIGxvb2t1cENvdW50OiByLnVpbnQxNiwKICBpbnB1dDogbmV3IHIuQXJyYXkoci51aW50MTYsIGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC5nbHlwaENvdW50IC0gMTsKICB9KSwKICBsb29rdXBSZWNvcmRzOiBuZXcgci5BcnJheShMb29rdXBSZWNvcmQsICdsb29rdXBDb3VudCcpCn0pOwoKdmFyIFJ1bGVTZXQgPSBuZXcgci5BcnJheShuZXcgci5Qb2ludGVyKHIudWludDE2LCBSdWxlKSwgci51aW50MTYpOwoKdmFyIENsYXNzUnVsZSA9IG5ldyByLlN0cnVjdCh7CiAgZ2x5cGhDb3VudDogci51aW50MTYsCiAgbG9va3VwQ291bnQ6IHIudWludDE2LAogIGNsYXNzZXM6IG5ldyByLkFycmF5KHIudWludDE2LCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQuZ2x5cGhDb3VudCAtIDE7CiAgfSksCiAgbG9va3VwUmVjb3JkczogbmV3IHIuQXJyYXkoTG9va3VwUmVjb3JkLCAnbG9va3VwQ291bnQnKQp9KTsKCnZhciBDbGFzc1NldCA9IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIENsYXNzUnVsZSksIHIudWludDE2KTsKCnZhciBDb250ZXh0ID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7CiAgMTogeyAvLyBTaW1wbGUgY29udGV4dAogICAgY292ZXJhZ2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwKICAgIHJ1bGVTZXRDb3VudDogci51aW50MTYsCiAgICBydWxlU2V0czogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgUnVsZVNldCksICdydWxlU2V0Q291bnQnKQogIH0sCiAgMjogeyAvLyBDbGFzcy1iYXNlZCBjb250ZXh0CiAgICBjb3ZlcmFnZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLAogICAgY2xhc3NEZWY6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENsYXNzRGVmKSwKICAgIGNsYXNzU2V0Q250OiByLnVpbnQxNiwKICAgIGNsYXNzU2V0OiBuZXcgci5BcnJheShuZXcgci5Qb2ludGVyKHIudWludDE2LCBDbGFzc1NldCksICdjbGFzc1NldENudCcpCiAgfSwKICAzOiB7CiAgICBnbHlwaENvdW50OiByLnVpbnQxNiwKICAgIGxvb2t1cENvdW50OiByLnVpbnQxNiwKICAgIGNvdmVyYWdlczogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLCAnZ2x5cGhDb3VudCcpLAogICAgbG9va3VwUmVjb3JkczogbmV3IHIuQXJyYXkoTG9va3VwUmVjb3JkLCAnbG9va3VwQ291bnQnKQogIH0KfSk7CgovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBDaGFpbmluZyBDb250ZXh0dWFsIFN1YnN0aXR1dGlvbi9Qb3NpdGlvbmluZyBUYWJsZXMgIwovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKdmFyIENoYWluUnVsZSA9IG5ldyByLlN0cnVjdCh7CiAgYmFja3RyYWNrR2x5cGhDb3VudDogci51aW50MTYsCiAgYmFja3RyYWNrOiBuZXcgci5BcnJheShyLnVpbnQxNiwgJ2JhY2t0cmFja0dseXBoQ291bnQnKSwKICBpbnB1dEdseXBoQ291bnQ6IHIudWludDE2LAogIGlucHV0OiBuZXcgci5BcnJheShyLnVpbnQxNiwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB0LmlucHV0R2x5cGhDb3VudCAtIDE7CiAgfSksCiAgbG9va2FoZWFkR2x5cGhDb3VudDogci51aW50MTYsCiAgbG9va2FoZWFkOiBuZXcgci5BcnJheShyLnVpbnQxNiwgJ2xvb2thaGVhZEdseXBoQ291bnQnKSwKICBsb29rdXBDb3VudDogci51aW50MTYsCiAgbG9va3VwUmVjb3JkczogbmV3IHIuQXJyYXkoTG9va3VwUmVjb3JkLCAnbG9va3VwQ291bnQnKQp9KTsKCnZhciBDaGFpblJ1bGVTZXQgPSBuZXcgci5BcnJheShuZXcgci5Qb2ludGVyKHIudWludDE2LCBDaGFpblJ1bGUpLCByLnVpbnQxNik7Cgp2YXIgQ2hhaW5pbmdDb250ZXh0ID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7CiAgMTogeyAvLyBTaW1wbGUgY29udGV4dCBnbHlwaCBzdWJzdGl0dXRpb24KICAgIGNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBjaGFpbkNvdW50OiByLnVpbnQxNiwKICAgIGNoYWluUnVsZVNldHM6IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIENoYWluUnVsZVNldCksICdjaGFpbkNvdW50JykKICB9LAoKICAyOiB7IC8vIENsYXNzLWJhc2VkIGNoYWluaW5nIGNvbnRleHQKICAgIGNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBiYWNrdHJhY2tDbGFzc0RlZjogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ2xhc3NEZWYpLAogICAgaW5wdXRDbGFzc0RlZjogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ2xhc3NEZWYpLAogICAgbG9va2FoZWFkQ2xhc3NEZWY6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENsYXNzRGVmKSwKICAgIGNoYWluQ291bnQ6IHIudWludDE2LAogICAgY2hhaW5DbGFzc1NldDogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ2hhaW5SdWxlU2V0KSwgJ2NoYWluQ291bnQnKQogIH0sCgogIDM6IHsgLy8gQ292ZXJhZ2UtYmFzZWQgY2hhaW5pbmcgY29udGV4dAogICAgYmFja3RyYWNrR2x5cGhDb3VudDogci51aW50MTYsCiAgICBiYWNrdHJhY2tDb3ZlcmFnZTogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLCAnYmFja3RyYWNrR2x5cGhDb3VudCcpLAogICAgaW5wdXRHbHlwaENvdW50OiByLnVpbnQxNiwKICAgIGlucHV0Q292ZXJhZ2U6IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwgJ2lucHV0R2x5cGhDb3VudCcpLAogICAgbG9va2FoZWFkR2x5cGhDb3VudDogci51aW50MTYsCiAgICBsb29rYWhlYWRDb3ZlcmFnZTogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLCAnbG9va2FoZWFkR2x5cGhDb3VudCcpLAogICAgbG9va3VwQ291bnQ6IHIudWludDE2LAogICAgbG9va3VwUmVjb3JkczogbmV3IHIuQXJyYXkoTG9va3VwUmVjb3JkLCAnbG9va3VwQ291bnQnKQogIH0KfSk7Cgp2YXIgXzsKCi8qKioqKioqKioqKioqKioqKioqCiAqIFZhcmlhdGlvbiBTdG9yZSAqCiAqKioqKioqKioqKioqKioqKioqLwoKdmFyIEYyRE9UMTQgPSBuZXcgci5GaXhlZCgxNiwgJ0JFJywgMTQpOwp2YXIgUmVnaW9uQXhpc0Nvb3JkaW5hdGVzID0gbmV3IHIuU3RydWN0KHsKICBzdGFydENvb3JkOiBGMkRPVDE0LAogIHBlYWtDb29yZDogRjJET1QxNCwKICBlbmRDb29yZDogRjJET1QxNAp9KTsKCnZhciBWYXJpYXRpb25SZWdpb25MaXN0ID0gbmV3IHIuU3RydWN0KHsKICBheGlzQ291bnQ6IHIudWludDE2LAogIHJlZ2lvbkNvdW50OiByLnVpbnQxNiwKICB2YXJpYXRpb25SZWdpb25zOiBuZXcgci5BcnJheShuZXcgci5BcnJheShSZWdpb25BeGlzQ29vcmRpbmF0ZXMsICdheGlzQ291bnQnKSwgJ3JlZ2lvbkNvdW50JykKfSk7Cgp2YXIgRGVsdGFTZXQgPSBuZXcgci5TdHJ1Y3QoewogIHNob3J0RGVsdGFzOiBuZXcgci5BcnJheShyLmludDE2LCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQucGFyZW50LnNob3J0RGVsdGFDb3VudDsKICB9KSwKICByZWdpb25EZWx0YXM6IG5ldyByLkFycmF5KHIuaW50OCwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB0LnBhcmVudC5yZWdpb25JbmRleENvdW50IC0gdC5wYXJlbnQuc2hvcnREZWx0YUNvdW50OwogIH0pLAogIGRlbHRhczogZnVuY3Rpb24gZGVsdGFzKHQpIHsKICAgIHJldHVybiB0LnNob3J0RGVsdGFzLmNvbmNhdCh0LnJlZ2lvbkRlbHRhcyk7CiAgfQp9KTsKCnZhciBJdGVtVmFyaWF0aW9uRGF0YSA9IG5ldyByLlN0cnVjdCh7CiAgaXRlbUNvdW50OiByLnVpbnQxNiwKICBzaG9ydERlbHRhQ291bnQ6IHIudWludDE2LAogIHJlZ2lvbkluZGV4Q291bnQ6IHIudWludDE2LAogIHJlZ2lvbkluZGV4ZXM6IG5ldyByLkFycmF5KHIudWludDE2LCAncmVnaW9uSW5kZXhDb3VudCcpLAogIGRlbHRhU2V0czogbmV3IHIuQXJyYXkoRGVsdGFTZXQsICdpdGVtQ291bnQnKQp9KTsKCnZhciBJdGVtVmFyaWF0aW9uU3RvcmUgPSBuZXcgci5TdHJ1Y3QoewogIGZvcm1hdDogci51aW50MTYsCiAgdmFyaWF0aW9uUmVnaW9uTGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgVmFyaWF0aW9uUmVnaW9uTGlzdCksCiAgdmFyaWF0aW9uRGF0YUNvdW50OiByLnVpbnQxNiwKICBpdGVtVmFyaWF0aW9uRGF0YTogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgSXRlbVZhcmlhdGlvbkRhdGEpLCAndmFyaWF0aW9uRGF0YUNvdW50JykKfSk7CgovKioqKioqKioqKioqKioqKioqKioqKgogKiBGZWF0dXJlIFZhcmlhdGlvbnMgKgogKioqKioqKioqKioqKioqKioqKioqKi8KCnZhciBDb25kaXRpb25UYWJsZSA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQxNiwgewogIDE6IChfID0gewogICAgYXhpc0luZGV4OiByLnVpbnQxNgogIH0sIF9bJ2F4aXNJbmRleCddID0gci51aW50MTYsIF8uZmlsdGVyUmFuZ2VNaW5WYWx1ZSA9IEYyRE9UMTQsIF8uZmlsdGVyUmFuZ2VNYXhWYWx1ZSA9IEYyRE9UMTQsIF8pCn0pOwoKdmFyIENvbmRpdGlvblNldCA9IG5ldyByLlN0cnVjdCh7CiAgY29uZGl0aW9uQ291bnQ6IHIudWludDE2LAogIGNvbmRpdGlvblRhYmxlOiBuZXcgci5BcnJheShuZXcgci5Qb2ludGVyKHIudWludDMyLCBDb25kaXRpb25UYWJsZSksICdjb25kaXRpb25Db3VudCcpCn0pOwoKdmFyIEZlYXR1cmVUYWJsZVN1YnN0aXR1dGlvblJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgZmVhdHVyZUluZGV4OiByLnVpbnQxNiwKICBhbHRlcm5hdGVGZWF0dXJlVGFibGU6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIEZlYXR1cmUsIHsgdHlwZTogJ3BhcmVudCcgfSkKfSk7Cgp2YXIgRmVhdHVyZVRhYmxlU3Vic3RpdHV0aW9uID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLmZpeGVkMzIsCiAgc3Vic3RpdHV0aW9uQ291bnQ6IHIudWludDE2LAogIHN1YnN0aXR1dGlvbnM6IG5ldyByLkFycmF5KEZlYXR1cmVUYWJsZVN1YnN0aXR1dGlvblJlY29yZCwgJ3N1YnN0aXR1dGlvbkNvdW50JykKfSk7Cgp2YXIgRmVhdHVyZVZhcmlhdGlvblJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgY29uZGl0aW9uU2V0OiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBDb25kaXRpb25TZXQsIHsgdHlwZTogJ3BhcmVudCcgfSksCiAgZmVhdHVyZVRhYmxlU3Vic3RpdHV0aW9uOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBGZWF0dXJlVGFibGVTdWJzdGl0dXRpb24sIHsgdHlwZTogJ3BhcmVudCcgfSkKfSk7Cgp2YXIgRmVhdHVyZVZhcmlhdGlvbnMgPSBuZXcgci5TdHJ1Y3QoewogIG1ham9yVmVyc2lvbjogci51aW50MTYsCiAgbWlub3JWZXJzaW9uOiByLnVpbnQxNiwKICBmZWF0dXJlVmFyaWF0aW9uUmVjb3JkQ291bnQ6IHIudWludDMyLAogIGZlYXR1cmVWYXJpYXRpb25SZWNvcmRzOiBuZXcgci5BcnJheShGZWF0dXJlVmFyaWF0aW9uUmVjb3JkLCAnZmVhdHVyZVZhcmlhdGlvblJlY29yZENvdW50JykKfSk7CgovLyBDaGVja3MgaWYgYW4gb3BlcmFuZCBpcyBhbiBpbmRleCBvZiBhIHByZWRlZmluZWQgdmFsdWUsCi8vIG90aGVyd2lzZSBkZWxlZ2F0ZXMgdG8gdGhlIHByb3ZpZGVkIHR5cGUuCgp2YXIgUHJlZGVmaW5lZE9wID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIFByZWRlZmluZWRPcChwcmVkZWZpbmVkT3BzLCB0eXBlKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUHJlZGVmaW5lZE9wKTsKCiAgICB0aGlzLnByZWRlZmluZWRPcHMgPSBwcmVkZWZpbmVkT3BzOwogICAgdGhpcy50eXBlID0gdHlwZTsKICB9CgogIFByZWRlZmluZWRPcC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKHN0cmVhbSwgcGFyZW50LCBvcGVyYW5kcykgewogICAgaWYgKHRoaXMucHJlZGVmaW5lZE9wc1tvcGVyYW5kc1swXV0pIHsKICAgICAgcmV0dXJuIHRoaXMucHJlZGVmaW5lZE9wc1tvcGVyYW5kc1swXV07CiAgICB9CgogICAgcmV0dXJuIHRoaXMudHlwZS5kZWNvZGUoc3RyZWFtLCBwYXJlbnQsIG9wZXJhbmRzKTsKICB9OwoKICBQcmVkZWZpbmVkT3AucHJvdG90eXBlLnNpemUgPSBmdW5jdGlvbiBzaXplKHZhbHVlLCBjdHgpIHsKICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZSh2YWx1ZSwgY3R4KTsKICB9OwoKICBQcmVkZWZpbmVkT3AucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShzdHJlYW0sIHZhbHVlLCBjdHgpIHsKICAgIHZhciBpbmRleCA9IHRoaXMucHJlZGVmaW5lZE9wcy5pbmRleE9mKHZhbHVlKTsKICAgIGlmIChpbmRleCAhPT0gLTEpIHsKICAgICAgcmV0dXJuIGluZGV4OwogICAgfQoKICAgIHJldHVybiB0aGlzLnR5cGUuZW5jb2RlKHN0cmVhbSwgdmFsdWUsIGN0eCk7CiAgfTsKCiAgcmV0dXJuIFByZWRlZmluZWRPcDsKfSgpOwoKdmFyIENGRkVuY29kaW5nVmVyc2lvbiA9IGZ1bmN0aW9uIChfciROdW1iZXIpIHsKICBfaW5oZXJpdHMoQ0ZGRW5jb2RpbmdWZXJzaW9uLCBfciROdW1iZXIpOwoKICBmdW5jdGlvbiBDRkZFbmNvZGluZ1ZlcnNpb24oKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ0ZGRW5jb2RpbmdWZXJzaW9uKTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX3IkTnVtYmVyLmNhbGwodGhpcywgJ1VJbnQ4JykpOwogIH0KCiAgQ0ZGRW5jb2RpbmdWZXJzaW9uLnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoc3RyZWFtKSB7CiAgICByZXR1cm4gci51aW50OC5kZWNvZGUoc3RyZWFtKSAmIDB4N2Y7CiAgfTsKCiAgcmV0dXJuIENGRkVuY29kaW5nVmVyc2lvbjsKfShyLk51bWJlcik7Cgp2YXIgUmFuZ2UxID0gbmV3IHIuU3RydWN0KHsKICBmaXJzdDogci51aW50MTYsCiAgbkxlZnQ6IHIudWludDgKfSk7Cgp2YXIgUmFuZ2UyID0gbmV3IHIuU3RydWN0KHsKICBmaXJzdDogci51aW50MTYsCiAgbkxlZnQ6IHIudWludDE2Cn0pOwoKdmFyIENGRkN1c3RvbUVuY29kaW5nID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KG5ldyBDRkZFbmNvZGluZ1ZlcnNpb24oKSwgewogIDA6IHsKICAgIG5Db2Rlczogci51aW50OCwKICAgIGNvZGVzOiBuZXcgci5BcnJheShyLnVpbnQ4LCAnbkNvZGVzJykKICB9LAoKICAxOiB7CiAgICBuUmFuZ2VzOiByLnVpbnQ4LAogICAgcmFuZ2VzOiBuZXcgci5BcnJheShSYW5nZTEsICduUmFuZ2VzJykKICB9CgogIC8vIFRPRE86IHN1cHBsZW1lbnQ/Cn0pOwoKdmFyIENGRkVuY29kaW5nID0gbmV3IFByZWRlZmluZWRPcChbU3RhbmRhcmRFbmNvZGluZywgRXhwZXJ0RW5jb2RpbmddLCBuZXcgQ0ZGUG9pbnRlcihDRkZDdXN0b21FbmNvZGluZywgeyBsYXp5OiB0cnVlIH0pKTsKCi8vIERlY29kZXMgYW4gYXJyYXkgb2YgcmFuZ2VzIHVudGlsIHRoZSB0b3RhbAovLyBsZW5ndGggaXMgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIGxlbmd0aC4KCnZhciBSYW5nZUFycmF5ID0gZnVuY3Rpb24gKF9yJEFycmF5KSB7CiAgX2luaGVyaXRzKFJhbmdlQXJyYXksIF9yJEFycmF5KTsKCiAgZnVuY3Rpb24gUmFuZ2VBcnJheSgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBSYW5nZUFycmF5KTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX3IkQXJyYXkuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7CiAgfQoKICBSYW5nZUFycmF5LnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoc3RyZWFtLCBwYXJlbnQpIHsKICAgIHZhciBsZW5ndGggPSByZXN0cnVjdHVyZV9zcmNfdXRpbHMucmVzb2x2ZUxlbmd0aCh0aGlzLmxlbmd0aCwgc3RyZWFtLCBwYXJlbnQpOwogICAgdmFyIGNvdW50ID0gMDsKICAgIHZhciByZXMgPSBbXTsKICAgIHdoaWxlIChjb3VudCA8IGxlbmd0aCkgewogICAgICB2YXIgcmFuZ2UgPSB0aGlzLnR5cGUuZGVjb2RlKHN0cmVhbSwgcGFyZW50KTsKICAgICAgcmFuZ2Uub2Zmc2V0ID0gY291bnQ7CiAgICAgIGNvdW50ICs9IHJhbmdlLm5MZWZ0ICsgMTsKICAgICAgcmVzLnB1c2gocmFuZ2UpOwogICAgfQoKICAgIHJldHVybiByZXM7CiAgfTsKCiAgcmV0dXJuIFJhbmdlQXJyYXk7Cn0oci5BcnJheSk7Cgp2YXIgQ0ZGQ3VzdG9tQ2hhcnNldCA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQ4LCB7CiAgMDogewogICAgZ2x5cGhzOiBuZXcgci5BcnJheShyLnVpbnQxNiwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQucGFyZW50LkNoYXJTdHJpbmdzLmxlbmd0aCAtIDE7CiAgICB9KQogIH0sCgogIDE6IHsKICAgIHJhbmdlczogbmV3IFJhbmdlQXJyYXkoUmFuZ2UxLCBmdW5jdGlvbiAodCkgewogICAgICByZXR1cm4gdC5wYXJlbnQuQ2hhclN0cmluZ3MubGVuZ3RoIC0gMTsKICAgIH0pCiAgfSwKCiAgMjogewogICAgcmFuZ2VzOiBuZXcgUmFuZ2VBcnJheShSYW5nZTIsIGZ1bmN0aW9uICh0KSB7CiAgICAgIHJldHVybiB0LnBhcmVudC5DaGFyU3RyaW5ncy5sZW5ndGggLSAxOwogICAgfSkKICB9Cn0pOwoKdmFyIENGRkNoYXJzZXQgPSBuZXcgUHJlZGVmaW5lZE9wKFtJU09BZG9iZUNoYXJzZXQsIEV4cGVydENoYXJzZXQsIEV4cGVydFN1YnNldENoYXJzZXRdLCBuZXcgQ0ZGUG9pbnRlcihDRkZDdXN0b21DaGFyc2V0LCB7IGxhenk6IHRydWUgfSkpOwoKdmFyIEZEUmFuZ2UzID0gbmV3IHIuU3RydWN0KHsKICBmaXJzdDogci51aW50MTYsCiAgZmQ6IHIudWludDgKfSk7Cgp2YXIgRkRSYW5nZTQgPSBuZXcgci5TdHJ1Y3QoewogIGZpcnN0OiByLnVpbnQzMiwKICBmZDogci51aW50MTYKfSk7Cgp2YXIgRkRTZWxlY3QgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3Qoci51aW50OCwgewogIDA6IHsKICAgIGZkczogbmV3IHIuQXJyYXkoci51aW50OCwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQucGFyZW50LkNoYXJTdHJpbmdzLmxlbmd0aDsKICAgIH0pCiAgfSwKCiAgMzogewogICAgblJhbmdlczogci51aW50MTYsCiAgICByYW5nZXM6IG5ldyByLkFycmF5KEZEUmFuZ2UzLCAnblJhbmdlcycpLAogICAgc2VudGluZWw6IHIudWludDE2CiAgfSwKCiAgNDogewogICAgblJhbmdlczogci51aW50MzIsCiAgICByYW5nZXM6IG5ldyByLkFycmF5KEZEUmFuZ2U0LCAnblJhbmdlcycpLAogICAgc2VudGluZWw6IHIudWludDMyCiAgfQp9KTsKCnZhciBwdHIgPSBuZXcgQ0ZGUG9pbnRlcihDRkZQcml2YXRlRGljdCk7Cgp2YXIgQ0ZGUHJpdmF0ZU9wID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIENGRlByaXZhdGVPcCgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDRkZQcml2YXRlT3ApOwogIH0KCiAgQ0ZGUHJpdmF0ZU9wLnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoc3RyZWFtLCBwYXJlbnQsIG9wZXJhbmRzKSB7CiAgICBwYXJlbnQubGVuZ3RoID0gb3BlcmFuZHNbMF07CiAgICByZXR1cm4gcHRyLmRlY29kZShzdHJlYW0sIHBhcmVudCwgW29wZXJhbmRzWzFdXSk7CiAgfTsKCiAgQ0ZGUHJpdmF0ZU9wLnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24gc2l6ZShkaWN0LCBjdHgpIHsKICAgIHJldHVybiBbQ0ZGUHJpdmF0ZURpY3Quc2l6ZShkaWN0LCBjdHgsIGZhbHNlKSwgcHRyLnNpemUoZGljdCwgY3R4KVswXV07CiAgfTsKCiAgQ0ZGUHJpdmF0ZU9wLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbiBlbmNvZGUoc3RyZWFtLCBkaWN0LCBjdHgpIHsKICAgIHJldHVybiBbQ0ZGUHJpdmF0ZURpY3Quc2l6ZShkaWN0LCBjdHgsIGZhbHNlKSwgcHRyLmVuY29kZShzdHJlYW0sIGRpY3QsIGN0eClbMF1dOwogIH07CgogIHJldHVybiBDRkZQcml2YXRlT3A7Cn0oKTsKCnZhciBGb250RGljdCA9IG5ldyBDRkZEaWN0KFsKLy8ga2V5ICAgICAgIG5hbWUgICAgICAgICAgICAgICAgICAgdHlwZShzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQKWzE4LCAnUHJpdmF0ZScsIG5ldyBDRkZQcml2YXRlT3AoKSwgbnVsbF0sIFtbMTIsIDM4XSwgJ0ZvbnROYW1lJywgJ3NpZCcsIG51bGxdXSk7Cgp2YXIgQ0ZGVG9wRGljdCA9IG5ldyBDRkZEaWN0KFsKLy8ga2V5ICAgICAgIG5hbWUgICAgICAgICAgICAgICAgICAgdHlwZShzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQKW1sxMiwgMzBdLCAnUk9TJywgWydzaWQnLCAnc2lkJywgJ251bWJlciddLCBudWxsXSwgWzAsICd2ZXJzaW9uJywgJ3NpZCcsIG51bGxdLCBbMSwgJ05vdGljZScsICdzaWQnLCBudWxsXSwgW1sxMiwgMF0sICdDb3B5cmlnaHQnLCAnc2lkJywgbnVsbF0sIFsyLCAnRnVsbE5hbWUnLCAnc2lkJywgbnVsbF0sIFszLCAnRmFtaWx5TmFtZScsICdzaWQnLCBudWxsXSwgWzQsICdXZWlnaHQnLCAnc2lkJywgbnVsbF0sIFtbMTIsIDFdLCAnaXNGaXhlZFBpdGNoJywgJ2Jvb2xlYW4nLCBmYWxzZV0sIFtbMTIsIDJdLCAnSXRhbGljQW5nbGUnLCAnbnVtYmVyJywgMF0sIFtbMTIsIDNdLCAnVW5kZXJsaW5lUG9zaXRpb24nLCAnbnVtYmVyJywgLTEwMF0sIFtbMTIsIDRdLCAnVW5kZXJsaW5lVGhpY2tuZXNzJywgJ251bWJlcicsIDUwXSwgW1sxMiwgNV0sICdQYWludFR5cGUnLCAnbnVtYmVyJywgMF0sIFtbMTIsIDZdLCAnQ2hhcnN0cmluZ1R5cGUnLCAnbnVtYmVyJywgMl0sIFtbMTIsIDddLCAnRm9udE1hdHJpeCcsICdhcnJheScsIFswLjAwMSwgMCwgMCwgMC4wMDEsIDAsIDBdXSwgWzEzLCAnVW5pcXVlSUQnLCAnbnVtYmVyJywgbnVsbF0sIFs1LCAnRm9udEJCb3gnLCAnYXJyYXknLCBbMCwgMCwgMCwgMF1dLCBbWzEyLCA4XSwgJ1N0cm9rZVdpZHRoJywgJ251bWJlcicsIDBdLCBbMTQsICdYVUlEJywgJ2FycmF5JywgbnVsbF0sIFsxNSwgJ2NoYXJzZXQnLCBDRkZDaGFyc2V0LCBJU09BZG9iZUNoYXJzZXRdLCBbMTYsICdFbmNvZGluZycsIENGRkVuY29kaW5nLCBTdGFuZGFyZEVuY29kaW5nXSwgWzE3LCAnQ2hhclN0cmluZ3MnLCBuZXcgQ0ZGUG9pbnRlcihuZXcgQ0ZGSW5kZXgoKSksIG51bGxdLCBbMTgsICdQcml2YXRlJywgbmV3IENGRlByaXZhdGVPcCgpLCBudWxsXSwgW1sxMiwgMjBdLCAnU3ludGhldGljQmFzZScsICdudW1iZXInLCBudWxsXSwgW1sxMiwgMjFdLCAnUG9zdFNjcmlwdCcsICdzaWQnLCBudWxsXSwgW1sxMiwgMjJdLCAnQmFzZUZvbnROYW1lJywgJ3NpZCcsIG51bGxdLCBbWzEyLCAyM10sICdCYXNlRm9udEJsZW5kJywgJ2RlbHRhJywgbnVsbF0sCgovLyBDSUQgZm9udCBzcGVjaWZpYwpbWzEyLCAzMV0sICdDSURGb250VmVyc2lvbicsICdudW1iZXInLCAwXSwgW1sxMiwgMzJdLCAnQ0lERm9udFJldmlzaW9uJywgJ251bWJlcicsIDBdLCBbWzEyLCAzM10sICdDSURGb250VHlwZScsICdudW1iZXInLCAwXSwgW1sxMiwgMzRdLCAnQ0lEQ291bnQnLCAnbnVtYmVyJywgODcyMF0sIFtbMTIsIDM1XSwgJ1VJREJhc2UnLCAnbnVtYmVyJywgbnVsbF0sIFtbMTIsIDM3XSwgJ0ZEU2VsZWN0JywgbmV3IENGRlBvaW50ZXIoRkRTZWxlY3QpLCBudWxsXSwgW1sxMiwgMzZdLCAnRkRBcnJheScsIG5ldyBDRkZQb2ludGVyKG5ldyBDRkZJbmRleChGb250RGljdCkpLCBudWxsXSwgW1sxMiwgMzhdLCAnRm9udE5hbWUnLCAnc2lkJywgbnVsbF1dKTsKCnZhciBWYXJpYXRpb25TdG9yZSA9IG5ldyByLlN0cnVjdCh7CiAgbGVuZ3RoOiByLnVpbnQxNiwKICBpdGVtVmFyaWF0aW9uU3RvcmU6IEl0ZW1WYXJpYXRpb25TdG9yZQp9KTsKCnZhciBDRkYyVG9wRGljdCA9IG5ldyBDRkZEaWN0KFtbWzEyLCA3XSwgJ0ZvbnRNYXRyaXgnLCAnYXJyYXknLCBbMC4wMDEsIDAsIDAsIDAuMDAxLCAwLCAwXV0sIFsxNywgJ0NoYXJTdHJpbmdzJywgbmV3IENGRlBvaW50ZXIobmV3IENGRkluZGV4KCkpLCBudWxsXSwgW1sxMiwgMzddLCAnRkRTZWxlY3QnLCBuZXcgQ0ZGUG9pbnRlcihGRFNlbGVjdCksIG51bGxdLCBbWzEyLCAzNl0sICdGREFycmF5JywgbmV3IENGRlBvaW50ZXIobmV3IENGRkluZGV4KEZvbnREaWN0KSksIG51bGxdLCBbMjQsICd2c3RvcmUnLCBuZXcgQ0ZGUG9pbnRlcihWYXJpYXRpb25TdG9yZSksIG51bGxdLCBbMjUsICdtYXhzdGFjaycsICdudW1iZXInLCAxOTNdXSk7Cgp2YXIgQ0ZGVG9wID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIuZml4ZWQxNiwgewogIDE6IHsKICAgIGhkclNpemU6IHIudWludDgsCiAgICBvZmZTaXplOiByLnVpbnQ4LAogICAgbmFtZUluZGV4OiBuZXcgQ0ZGSW5kZXgobmV3IHIuU3RyaW5nKCdsZW5ndGgnKSksCiAgICB0b3BEaWN0SW5kZXg6IG5ldyBDRkZJbmRleChDRkZUb3BEaWN0KSwKICAgIHN0cmluZ0luZGV4OiBuZXcgQ0ZGSW5kZXgobmV3IHIuU3RyaW5nKCdsZW5ndGgnKSksCiAgICBnbG9iYWxTdWJySW5kZXg6IG5ldyBDRkZJbmRleCgpCiAgfSwKCiAgMjogewogICAgaGRyU2l6ZTogci51aW50OCwKICAgIGxlbmd0aDogci51aW50MTYsCiAgICB0b3BEaWN0OiBDRkYyVG9wRGljdCwKICAgIGdsb2JhbFN1YnJJbmRleDogbmV3IENGRkluZGV4KCkKICB9Cn0pOwoKdmFyIENGRkZvbnQgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gQ0ZGRm9udChzdHJlYW0pIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDRkZGb250KTsKCiAgICB0aGlzLnN0cmVhbSA9IHN0cmVhbTsKICAgIHRoaXMuZGVjb2RlKCk7CiAgfQoKICBDRkZGb250LmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShzdHJlYW0pIHsKICAgIHJldHVybiBuZXcgQ0ZGRm9udChzdHJlYW0pOwogIH07CgogIENGRkZvbnQucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZSgpIHsKICAgIHZhciBzdGFydCA9IHRoaXMuc3RyZWFtLnBvczsKICAgIHZhciB0b3AgPSBDRkZUb3AuZGVjb2RlKHRoaXMuc3RyZWFtKTsKICAgIGZvciAodmFyIGtleSBpbiB0b3ApIHsKICAgICAgdmFyIHZhbCA9IHRvcFtrZXldOwogICAgICB0aGlzW2tleV0gPSB2YWw7CiAgICB9CgogICAgaWYgKHRoaXMudmVyc2lvbiA8IDIpIHsKICAgICAgaWYgKHRoaXMudG9wRGljdEluZGV4Lmxlbmd0aCAhPT0gMSkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiT25seSBhIHNpbmdsZSBmb250IGlzIGFsbG93ZWQgaW4gQ0ZGIik7CiAgICAgIH0KCiAgICAgIHRoaXMudG9wRGljdCA9IHRoaXMudG9wRGljdEluZGV4WzBdOwogICAgfQoKICAgIHRoaXMuaXNDSURGb250ID0gdGhpcy50b3BEaWN0LlJPUyAhPSBudWxsOwogICAgcmV0dXJuIHRoaXM7CiAgfTsKCiAgQ0ZGRm9udC5wcm90b3R5cGUuc3RyaW5nID0gZnVuY3Rpb24gc3RyaW5nKHNpZCkgewogICAgaWYgKHRoaXMudmVyc2lvbiA+PSAyKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIGlmIChzaWQgPCBzdGFuZGFyZFN0cmluZ3MubGVuZ3RoKSB7CiAgICAgIHJldHVybiBzdGFuZGFyZFN0cmluZ3Nbc2lkXTsKICAgIH0KCiAgICByZXR1cm4gdGhpcy5zdHJpbmdJbmRleFtzaWQgLSBzdGFuZGFyZFN0cmluZ3MubGVuZ3RoXTsKICB9OwoKICBDRkZGb250LnByb3RvdHlwZS5nZXRDaGFyU3RyaW5nID0gZnVuY3Rpb24gZ2V0Q2hhclN0cmluZyhnbHlwaCkgewogICAgdGhpcy5zdHJlYW0ucG9zID0gdGhpcy50b3BEaWN0LkNoYXJTdHJpbmdzW2dseXBoXS5vZmZzZXQ7CiAgICByZXR1cm4gdGhpcy5zdHJlYW0ucmVhZEJ1ZmZlcih0aGlzLnRvcERpY3QuQ2hhclN0cmluZ3NbZ2x5cGhdLmxlbmd0aCk7CiAgfTsKCiAgQ0ZGRm9udC5wcm90b3R5cGUuZ2V0R2x5cGhOYW1lID0gZnVuY3Rpb24gZ2V0R2x5cGhOYW1lKGdpZCkgewogICAgLy8gQ0ZGMiBnbHlwaCBuYW1lcyBhcmUgaW4gdGhlIHBvc3QgdGFibGUuCiAgICBpZiAodGhpcy52ZXJzaW9uID49IDIpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgLy8gQ0lELWtleWVkIGZvbnRzIGRvbid0IGhhdmUgZ2x5cGggbmFtZXMKICAgIGlmICh0aGlzLmlzQ0lERm9udCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICB2YXIgY2hhcnNldCA9IHRoaXMudG9wRGljdC5jaGFyc2V0OwoKICAgIGlmIChBcnJheS5pc0FycmF5KGNoYXJzZXQpKSB7CiAgICAgIHJldHVybiBjaGFyc2V0W2dpZF07CiAgICB9CgogICAgaWYgKGdpZCA9PT0gMCkgewogICAgICByZXR1cm4gJy5ub3RkZWYnOwogICAgfQoKICAgIGdpZCAtPSAxOwoKICAgIHN3aXRjaCAoY2hhcnNldC52ZXJzaW9uKSB7CiAgICAgIGNhc2UgMDoKICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmcoY2hhcnNldC5nbHlwaHNbZ2lkXSk7CgogICAgICBjYXNlIDE6CiAgICAgIGNhc2UgMjoKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzZXQucmFuZ2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgcmFuZ2UgPSBjaGFyc2V0LnJhbmdlc1tpXTsKICAgICAgICAgIGlmIChyYW5nZS5vZmZzZXQgPD0gZ2lkICYmIGdpZCA8PSByYW5nZS5vZmZzZXQgKyByYW5nZS5uTGVmdCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmcocmFuZ2UuZmlyc3QgKyAoZ2lkIC0gcmFuZ2Uub2Zmc2V0KSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgfQoKICAgIHJldHVybiBudWxsOwogIH07CgogIENGRkZvbnQucHJvdG90eXBlLmZkRm9yR2x5cGggPSBmdW5jdGlvbiBmZEZvckdseXBoKGdpZCkgewogICAgaWYgKCF0aGlzLnRvcERpY3QuRkRTZWxlY3QpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgc3dpdGNoICh0aGlzLnRvcERpY3QuRkRTZWxlY3QudmVyc2lvbikgewogICAgICBjYXNlIDA6CiAgICAgICAgcmV0dXJuIHRoaXMudG9wRGljdC5GRFNlbGVjdC5mZHNbZ2lkXTsKCiAgICAgIGNhc2UgMzoKICAgICAgY2FzZSA0OgogICAgICAgIHZhciByYW5nZXMgPSB0aGlzLnRvcERpY3QuRkRTZWxlY3QucmFuZ2VzOwoKICAgICAgICB2YXIgbG93ID0gMDsKICAgICAgICB2YXIgaGlnaCA9IHJhbmdlcy5sZW5ndGggLSAxOwoKICAgICAgICB3aGlsZSAobG93IDw9IGhpZ2gpIHsKICAgICAgICAgIHZhciBtaWQgPSBsb3cgKyBoaWdoID4+IDE7CgogICAgICAgICAgaWYgKGdpZCA8IHJhbmdlc1ttaWRdLmZpcnN0KSB7CiAgICAgICAgICAgIGhpZ2ggPSBtaWQgLSAxOwogICAgICAgICAgfSBlbHNlIGlmIChtaWQgPCBoaWdoICYmIGdpZCA+IHJhbmdlc1ttaWQgKyAxXS5maXJzdCkgewogICAgICAgICAgICBsb3cgPSBtaWQgKyAxOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIHJhbmdlc1ttaWRdLmZkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gRkRTZWxlY3QgdmVyc2lvbjogJyArIHRoaXMudG9wRGljdC5GRFNlbGVjdC52ZXJzaW9uKTsKICAgIH0KICB9OwoKICBDRkZGb250LnByb3RvdHlwZS5wcml2YXRlRGljdEZvckdseXBoID0gZnVuY3Rpb24gcHJpdmF0ZURpY3RGb3JHbHlwaChnaWQpIHsKICAgIGlmICh0aGlzLnRvcERpY3QuRkRTZWxlY3QpIHsKICAgICAgdmFyIGZkID0gdGhpcy5mZEZvckdseXBoKGdpZCk7CiAgICAgIGlmICh0aGlzLnRvcERpY3QuRkRBcnJheVtmZF0pIHsKICAgICAgICByZXR1cm4gdGhpcy50b3BEaWN0LkZEQXJyYXlbZmRdLlByaXZhdGU7CiAgICAgIH0KCiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIGlmICh0aGlzLnZlcnNpb24gPCAyKSB7CiAgICAgIHJldHVybiB0aGlzLnRvcERpY3QuUHJpdmF0ZTsKICAgIH0KCiAgICByZXR1cm4gdGhpcy50b3BEaWN0LkZEQXJyYXlbMF0uUHJpdmF0ZTsKICB9OwoKICBfY3JlYXRlQ2xhc3MoQ0ZGRm9udCwgW3sKICAgIGtleTogJ3Bvc3RzY3JpcHROYW1lJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICBpZiAodGhpcy52ZXJzaW9uIDwgMikgewogICAgICAgIHJldHVybiB0aGlzLm5hbWVJbmRleFswXTsKICAgICAgfQoKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgfSwgewogICAga2V5OiAnZnVsbE5hbWUnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLnN0cmluZyh0aGlzLnRvcERpY3QuRnVsbE5hbWUpOwogICAgfQogIH0sIHsKICAgIGtleTogJ2ZhbWlseU5hbWUnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLnN0cmluZyh0aGlzLnRvcERpY3QuRmFtaWx5TmFtZSk7CiAgICB9CiAgfV0pOwoKICByZXR1cm4gQ0ZGRm9udDsKfSgpOwoKdmFyIFZlcnRpY2FsT3JpZ2luID0gbmV3IHIuU3RydWN0KHsKICBnbHlwaEluZGV4OiByLnVpbnQxNiwKICB2ZXJ0T3JpZ2luWTogci5pbnQxNgp9KTsKCnZhciBWT1JHID0gbmV3IHIuU3RydWN0KHsKICBtYWpvclZlcnNpb246IHIudWludDE2LAogIG1pbm9yVmVyc2lvbjogci51aW50MTYsCiAgZGVmYXVsdFZlcnRPcmlnaW5ZOiByLmludDE2LAogIG51bVZlcnRPcmlnaW5ZTWV0cmljczogci51aW50MTYsCiAgbWV0cmljczogbmV3IHIuQXJyYXkoVmVydGljYWxPcmlnaW4sICdudW1WZXJ0T3JpZ2luWU1ldHJpY3MnKQp9KTsKCnZhciBCaWdNZXRyaWNzID0gbmV3IHIuU3RydWN0KHsKICBoZWlnaHQ6IHIudWludDgsCiAgd2lkdGg6IHIudWludDgsCiAgaG9yaUJlYXJpbmdYOiByLmludDgsCiAgaG9yaUJlYXJpbmdZOiByLmludDgsCiAgaG9yaUFkdmFuY2U6IHIudWludDgsCiAgdmVydEJlYXJpbmdYOiByLmludDgsCiAgdmVydEJlYXJpbmdZOiByLmludDgsCiAgdmVydEFkdmFuY2U6IHIudWludDgKfSk7Cgp2YXIgU21hbGxNZXRyaWNzID0gbmV3IHIuU3RydWN0KHsKICBoZWlnaHQ6IHIudWludDgsCiAgd2lkdGg6IHIudWludDgsCiAgYmVhcmluZ1g6IHIuaW50OCwKICBiZWFyaW5nWTogci5pbnQ4LAogIGFkdmFuY2U6IHIudWludDgKfSk7Cgp2YXIgRUJEVENvbXBvbmVudCA9IG5ldyByLlN0cnVjdCh7CiAgZ2x5cGg6IHIudWludDE2LAogIHhPZmZzZXQ6IHIuaW50OCwKICB5T2Zmc2V0OiByLmludDgKfSk7Cgp2YXIgQnl0ZUFsaWduZWQgPSBmdW5jdGlvbiBCeXRlQWxpZ25lZCgpIHsKICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQnl0ZUFsaWduZWQpOwp9OwoKdmFyIEJpdEFsaWduZWQgPSBmdW5jdGlvbiBCaXRBbGlnbmVkKCkgewogIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBCaXRBbGlnbmVkKTsKfTsKCnZhciBnbHlwaCA9IG5ldyByLlZlcnNpb25lZFN0cnVjdCgndmVyc2lvbicsIHsKICAxOiB7CiAgICBtZXRyaWNzOiBTbWFsbE1ldHJpY3MsCiAgICBkYXRhOiBCeXRlQWxpZ25lZAogIH0sCgogIDI6IHsKICAgIG1ldHJpY3M6IFNtYWxsTWV0cmljcywKICAgIGRhdGE6IEJpdEFsaWduZWQKICB9LAoKICAvLyBmb3JtYXQgMyBpcyBkZXByZWNhdGVkCiAgLy8gZm9ybWF0IDQgaXMgbm90IHN1cHBvcnRlZCBieSBNaWNyb3NvZnQKCiAgNTogewogICAgZGF0YTogQml0QWxpZ25lZAogIH0sCgogIDY6IHsKICAgIG1ldHJpY3M6IEJpZ01ldHJpY3MsCiAgICBkYXRhOiBCeXRlQWxpZ25lZAogIH0sCgogIDc6IHsKICAgIG1ldHJpY3M6IEJpZ01ldHJpY3MsCiAgICBkYXRhOiBCaXRBbGlnbmVkCiAgfSwKCiAgODogewogICAgbWV0cmljczogU21hbGxNZXRyaWNzLAogICAgcGFkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQ4KSwKICAgIG51bUNvbXBvbmVudHM6IHIudWludDE2LAogICAgY29tcG9uZW50czogbmV3IHIuQXJyYXkoRUJEVENvbXBvbmVudCwgJ251bUNvbXBvbmVudHMnKQogIH0sCgogIDk6IHsKICAgIG1ldHJpY3M6IEJpZ01ldHJpY3MsCiAgICBwYWQ6IG5ldyByLlJlc2VydmVkKHIudWludDgpLAogICAgbnVtQ29tcG9uZW50czogci51aW50MTYsCiAgICBjb21wb25lbnRzOiBuZXcgci5BcnJheShFQkRUQ29tcG9uZW50LCAnbnVtQ29tcG9uZW50cycpCiAgfSwKCiAgMTc6IHsKICAgIG1ldHJpY3M6IFNtYWxsTWV0cmljcywKICAgIGRhdGFMZW46IHIudWludDMyLAogICAgZGF0YTogbmV3IHIuQnVmZmVyKCdkYXRhTGVuJykKICB9LAoKICAxODogewogICAgbWV0cmljczogQmlnTWV0cmljcywKICAgIGRhdGFMZW46IHIudWludDMyLAogICAgZGF0YTogbmV3IHIuQnVmZmVyKCdkYXRhTGVuJykKICB9LAoKICAxOTogewogICAgZGF0YUxlbjogci51aW50MzIsCiAgICBkYXRhOiBuZXcgci5CdWZmZXIoJ2RhdGFMZW4nKQogIH0KfSk7Cgp2YXIgU0JpdExpbmVNZXRyaWNzID0gbmV3IHIuU3RydWN0KHsKICBhc2NlbmRlcjogci5pbnQ4LAogIGRlc2NlbmRlcjogci5pbnQ4LAogIHdpZHRoTWF4OiByLnVpbnQ4LAogIGNhcmV0U2xvcGVOdW1lcmF0b3I6IHIuaW50OCwKICBjYXJldFNsb3BlRGVub21pbmF0b3I6IHIuaW50OCwKICBjYXJldE9mZnNldDogci5pbnQ4LAogIG1pbk9yaWdpblNCOiByLmludDgsCiAgbWluQWR2YW5jZVNCOiByLmludDgsCiAgbWF4QmVmb3JlQkw6IHIuaW50OCwKICBtaW5BZnRlckJMOiByLmludDgsCiAgcGFkOiBuZXcgci5SZXNlcnZlZChyLmludDgsIDIpCn0pOwoKdmFyIENvZGVPZmZzZXRQYWlyID0gbmV3IHIuU3RydWN0KHsKICBnbHlwaENvZGU6IHIudWludDE2LAogIG9mZnNldDogci51aW50MTYKfSk7Cgp2YXIgSW5kZXhTdWJ0YWJsZSA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQxNiwgewogIGhlYWRlcjogewogICAgaW1hZ2VGb3JtYXQ6IHIudWludDE2LAogICAgaW1hZ2VEYXRhT2Zmc2V0OiByLnVpbnQzMgogIH0sCgogIDE6IHsKICAgIG9mZnNldEFycmF5OiBuZXcgci5BcnJheShyLnVpbnQzMiwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQucGFyZW50Lmxhc3RHbHlwaEluZGV4IC0gdC5wYXJlbnQuZmlyc3RHbHlwaEluZGV4ICsgMTsKICAgIH0pCiAgfSwKCiAgMjogewogICAgaW1hZ2VTaXplOiByLnVpbnQzMiwKICAgIGJpZ01ldHJpY3M6IEJpZ01ldHJpY3MKICB9LAoKICAzOiB7CiAgICBvZmZzZXRBcnJheTogbmV3IHIuQXJyYXkoci51aW50MTYsIGZ1bmN0aW9uICh0KSB7CiAgICAgIHJldHVybiB0LnBhcmVudC5sYXN0R2x5cGhJbmRleCAtIHQucGFyZW50LmZpcnN0R2x5cGhJbmRleCArIDE7CiAgICB9KQogIH0sCgogIDQ6IHsKICAgIG51bUdseXBoczogci51aW50MzIsCiAgICBnbHlwaEFycmF5OiBuZXcgci5BcnJheShDb2RlT2Zmc2V0UGFpciwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQubnVtR2x5cGhzICsgMTsKICAgIH0pCiAgfSwKCiAgNTogewogICAgaW1hZ2VTaXplOiByLnVpbnQzMiwKICAgIGJpZ01ldHJpY3M6IEJpZ01ldHJpY3MsCiAgICBudW1HbHlwaHM6IHIudWludDMyLAogICAgZ2x5cGhDb2RlQXJyYXk6IG5ldyByLkFycmF5KHIudWludDE2LCAnbnVtR2x5cGhzJykKICB9Cn0pOwoKdmFyIEluZGV4U3VidGFibGVBcnJheSA9IG5ldyByLlN0cnVjdCh7CiAgZmlyc3RHbHlwaEluZGV4OiByLnVpbnQxNiwKICBsYXN0R2x5cGhJbmRleDogci51aW50MTYsCiAgc3VidGFibGU6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIEluZGV4U3VidGFibGUpCn0pOwoKdmFyIEJpdG1hcFNpemVUYWJsZSA9IG5ldyByLlN0cnVjdCh7CiAgaW5kZXhTdWJUYWJsZUFycmF5OiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBuZXcgci5BcnJheShJbmRleFN1YnRhYmxlQXJyYXksIDEpLCB7IHR5cGU6ICdwYXJlbnQnIH0pLAogIGluZGV4VGFibGVzU2l6ZTogci51aW50MzIsCiAgbnVtYmVyT2ZJbmRleFN1YlRhYmxlczogci51aW50MzIsCiAgY29sb3JSZWY6IHIudWludDMyLAogIGhvcmk6IFNCaXRMaW5lTWV0cmljcywKICB2ZXJ0OiBTQml0TGluZU1ldHJpY3MsCiAgc3RhcnRHbHlwaEluZGV4OiByLnVpbnQxNiwKICBlbmRHbHlwaEluZGV4OiByLnVpbnQxNiwKICBwcGVtWDogci51aW50OCwKICBwcGVtWTogci51aW50OCwKICBiaXREZXB0aDogci51aW50OCwKICBmbGFnczogbmV3IHIuQml0ZmllbGQoci51aW50OCwgWydob3Jpem9udGFsJywgJ3ZlcnRpY2FsJ10pCn0pOwoKdmFyIEVCTEMgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIudWludDMyLCAvLyAweDAwMDIwMDAwCiAgbnVtU2l6ZXM6IHIudWludDMyLAogIHNpemVzOiBuZXcgci5BcnJheShCaXRtYXBTaXplVGFibGUsICdudW1TaXplcycpCn0pOwoKdmFyIEltYWdlVGFibGUgPSBuZXcgci5TdHJ1Y3QoewogIHBwZW06IHIudWludDE2LAogIHJlc29sdXRpb246IHIudWludDE2LAogIGltYWdlT2Zmc2V0czogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgJ3ZvaWQnKSwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB0LnBhcmVudC5wYXJlbnQubWF4cC5udW1HbHlwaHMgKyAxOwogIH0pCn0pOwoKLy8gVGhpcyBpcyB0aGUgQXBwbGUgc2JpeCB0YWJsZSwgdXNlZCBieSB0aGUgIkFwcGxlIENvbG9yIEVtb2ppIiBmb250LgovLyBJdCBpbmNsdWRlcyBzZXZlcmFsIGltYWdlIHRhYmxlcyB3aXRoIGltYWdlcyBmb3IgZWFjaCBiaXRtYXAgZ2x5cGgKLy8gb2Ygc2V2ZXJhbCBkaWZmZXJlbnQgc2l6ZXMuCnZhciBzYml4ID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLnVpbnQxNiwKICBmbGFnczogbmV3IHIuQml0ZmllbGQoci51aW50MTYsIFsncmVuZGVyT3V0bGluZXMnXSksCiAgbnVtSW1nVGFibGVzOiByLnVpbnQzMiwKICBpbWFnZVRhYmxlczogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgSW1hZ2VUYWJsZSksICdudW1JbWdUYWJsZXMnKQp9KTsKCnZhciBMYXllclJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgZ2lkOiByLnVpbnQxNiwgLy8gR2x5cGggSUQgb2YgbGF5ZXIgZ2x5cGggKG11c3QgYmUgaW4gei1vcmRlciBmcm9tIGJvdHRvbSB0byB0b3ApLgogIHBhbGV0dGVJbmRleDogci51aW50MTYgLy8gSW5kZXggdmFsdWUgdG8gdXNlIGluIHRoZSBhcHByb3ByaWF0ZSBwYWxldHRlLiBUaGlzIHZhbHVlIG11c3QKfSk7IC8vIGJlIGxlc3MgdGhhbiBudW1QYWxldHRlRW50cmllcyBpbiB0aGUgQ1BBTCB0YWJsZSwgZXhjZXB0IGZvcgovLyB0aGUgc3BlY2lhbCBjYXNlIG5vdGVkIGJlbG93LiBFYWNoIHBhbGV0dGUgZW50cnkgaXMgMTYgYml0cy4KLy8gQSBwYWxldHRlIGluZGV4IG9mIDB4RkZGRiBpcyBhIHNwZWNpYWwgY2FzZSBpbmRpY2F0aW5nIHRoYXQKLy8gdGhlIHRleHQgZm9yZWdyb3VuZCBjb2xvciBzaG91bGQgYmUgdXNlZC4KCnZhciBCYXNlR2x5cGhSZWNvcmQgPSBuZXcgci5TdHJ1Y3QoewogIGdpZDogci51aW50MTYsIC8vIEdseXBoIElEIG9mIHJlZmVyZW5jZSBnbHlwaC4gVGhpcyBnbHlwaCBpcyBmb3IgcmVmZXJlbmNlIG9ubHkKICAvLyBhbmQgaXMgbm90IHJlbmRlcmVkIGZvciBjb2xvci4KICBmaXJzdExheWVySW5kZXg6IHIudWludDE2LCAvLyBJbmRleCAoZnJvbSBiZWdpbm5pbmcgb2YgdGhlIExheWVyIFJlY29yZHMpIHRvIHRoZSBsYXllciByZWNvcmQuCiAgLy8gVGhlcmUgd2lsbCBiZSBudW1MYXllcnMgY29uc2VjdXRpdmUgZW50cmllcyBmb3IgdGhpcyBiYXNlIGdseXBoLgogIG51bUxheWVyczogci51aW50MTYKfSk7Cgp2YXIgQ09MUiA9IG5ldyByLlN0cnVjdCh7CiAgdmVyc2lvbjogci51aW50MTYsCiAgbnVtQmFzZUdseXBoUmVjb3Jkczogci51aW50MTYsCiAgYmFzZUdseXBoUmVjb3JkOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBuZXcgci5BcnJheShCYXNlR2x5cGhSZWNvcmQsICdudW1CYXNlR2x5cGhSZWNvcmRzJykpLAogIGxheWVyUmVjb3JkczogbmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgbmV3IHIuQXJyYXkoTGF5ZXJSZWNvcmQsICdudW1MYXllclJlY29yZHMnKSwgeyBsYXp5OiB0cnVlIH0pLAogIG51bUxheWVyUmVjb3Jkczogci51aW50MTYKfSk7Cgp2YXIgQ29sb3JSZWNvcmQgPSBuZXcgci5TdHJ1Y3QoewogIGJsdWU6IHIudWludDgsCiAgZ3JlZW46IHIudWludDgsCiAgcmVkOiByLnVpbnQ4LAogIGFscGhhOiByLnVpbnQ4Cn0pOwoKdmFyIENQQUwgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3Qoci51aW50MTYsIHsKICBoZWFkZXI6IHsKICAgIG51bVBhbGV0dGVFbnRyaWVzOiByLnVpbnQxNiwKICAgIG51bVBhbGV0dGVzOiByLnVpbnQxNiwKICAgIG51bUNvbG9yUmVjb3Jkczogci51aW50MTYsCiAgICBjb2xvclJlY29yZHM6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyByLkFycmF5KENvbG9yUmVjb3JkLCAnbnVtQ29sb3JSZWNvcmRzJykpLAogICAgY29sb3JSZWNvcmRJbmRpY2VzOiBuZXcgci5BcnJheShyLnVpbnQxNiwgJ251bVBhbGV0dGVzJykKICB9LAogIDA6IHt9LAogIDE6IHsKICAgIG9mZnNldFBhbGV0dGVUeXBlQXJyYXk6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyByLkFycmF5KHIudWludDMyLCAnbnVtUGFsZXR0ZXMnKSksCiAgICBvZmZzZXRQYWxldHRlTGFiZWxBcnJheTogbmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgbmV3IHIuQXJyYXkoci51aW50MTYsICdudW1QYWxldHRlcycpKSwKICAgIG9mZnNldFBhbGV0dGVFbnRyeUxhYmVsQXJyYXk6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyByLkFycmF5KHIudWludDE2LCAnbnVtUGFsZXR0ZUVudHJpZXMnKSkKICB9Cn0pOwoKdmFyIEJhc2VDb29yZCA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQxNiwgewogIDE6IHsgLy8gRGVzaWduIHVuaXRzIG9ubHkKICAgIGNvb3JkaW5hdGU6IHIuaW50MTYgLy8gWCBvciBZIHZhbHVlLCBpbiBkZXNpZ24gdW5pdHMKICB9LAoKICAyOiB7IC8vIERlc2lnbiB1bml0cyBwbHVzIGNvbnRvdXIgcG9pbnQKICAgIGNvb3JkaW5hdGU6IHIuaW50MTYsIC8vIFggb3IgWSB2YWx1ZSwgaW4gZGVzaWduIHVuaXRzCiAgICByZWZlcmVuY2VHbHlwaDogci51aW50MTYsIC8vIEdseXBoSUQgb2YgY29udHJvbCBnbHlwaAogICAgYmFzZUNvb3JkUG9pbnQ6IHIudWludDE2IC8vIEluZGV4IG9mIGNvbnRvdXIgcG9pbnQgb24gdGhlIHJlZmVyZW5jZUdseXBoCiAgfSwKCiAgMzogeyAvLyBEZXNpZ24gdW5pdHMgcGx1cyBEZXZpY2UgdGFibGUKICAgIGNvb3JkaW5hdGU6IHIuaW50MTYsIC8vIFggb3IgWSB2YWx1ZSwgaW4gZGVzaWduIHVuaXRzCiAgICBkZXZpY2VUYWJsZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgRGV2aWNlKSAvLyBEZXZpY2UgdGFibGUgZm9yIFggb3IgWSB2YWx1ZQogIH0KfSk7Cgp2YXIgQmFzZVZhbHVlcyA9IG5ldyByLlN0cnVjdCh7CiAgZGVmYXVsdEluZGV4OiByLnVpbnQxNiwgLy8gSW5kZXggb2YgZGVmYXVsdCBiYXNlbGluZSBmb3IgdGhpcyBzY3JpcHQtc2FtZSBpbmRleCBpbiB0aGUgQmFzZVRhZ0xpc3QKICBiYXNlQ29vcmRDb3VudDogci51aW50MTYsCiAgYmFzZUNvb3JkczogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQmFzZUNvb3JkKSwgJ2Jhc2VDb29yZENvdW50JykKfSk7Cgp2YXIgRmVhdE1pbk1heFJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgdGFnOiBuZXcgci5TdHJpbmcoNCksIC8vIDQtYnl0ZSBmZWF0dXJlIGlkZW50aWZpY2F0aW9uIHRhZy1tdXN0IG1hdGNoIEZlYXR1cmVUYWcgaW4gRmVhdHVyZUxpc3QKICBtaW5Db29yZDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQmFzZUNvb3JkLCB7IHR5cGU6ICdwYXJlbnQnIH0pLCAvLyBNYXkgYmUgTlVMTAogIG1heENvb3JkOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBCYXNlQ29vcmQsIHsgdHlwZTogJ3BhcmVudCcgfSkgLy8gTWF5IGJlIE5VTEwKfSk7Cgp2YXIgTWluTWF4ID0gbmV3IHIuU3RydWN0KHsKICBtaW5Db29yZDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQmFzZUNvb3JkKSwgLy8gTWF5IGJlIE5VTEwKICBtYXhDb29yZDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQmFzZUNvb3JkKSwgLy8gTWF5IGJlIE5VTEwKICBmZWF0TWluTWF4Q291bnQ6IHIudWludDE2LCAvLyBNYXkgYmUgMAogIGZlYXRNaW5NYXhSZWNvcmRzOiBuZXcgci5BcnJheShGZWF0TWluTWF4UmVjb3JkLCAnZmVhdE1pbk1heENvdW50JykgLy8gSW4gYWxwaGFiZXRpY2FsIG9yZGVyCn0pOwoKdmFyIEJhc2VMYW5nU3lzUmVjb3JkID0gbmV3IHIuU3RydWN0KHsKICB0YWc6IG5ldyByLlN0cmluZyg0KSwgLy8gNC1ieXRlIGxhbmd1YWdlIHN5c3RlbSBpZGVudGlmaWNhdGlvbiB0YWcKICBtaW5NYXg6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIE1pbk1heCwgeyB0eXBlOiAncGFyZW50JyB9KQp9KTsKCnZhciBCYXNlU2NyaXB0ID0gbmV3IHIuU3RydWN0KHsKICBiYXNlVmFsdWVzOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBCYXNlVmFsdWVzKSwgLy8gTWF5IGJlIE5VTEwKICBkZWZhdWx0TWluTWF4OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBNaW5NYXgpLCAvLyBNYXkgYmUgTlVMTAogIGJhc2VMYW5nU3lzQ291bnQ6IHIudWludDE2LCAvLyBNYXkgYmUgMAogIGJhc2VMYW5nU3lzUmVjb3JkczogbmV3IHIuQXJyYXkoQmFzZUxhbmdTeXNSZWNvcmQsICdiYXNlTGFuZ1N5c0NvdW50JykgLy8gaW4gYWxwaGFiZXRpY2FsIG9yZGVyIGJ5IEJhc2VMYW5nU3lzVGFnCn0pOwoKdmFyIEJhc2VTY3JpcHRSZWNvcmQgPSBuZXcgci5TdHJ1Y3QoewogIHRhZzogbmV3IHIuU3RyaW5nKDQpLCAvLyA0LWJ5dGUgc2NyaXB0IGlkZW50aWZpY2F0aW9uIHRhZwogIHNjcmlwdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQmFzZVNjcmlwdCwgeyB0eXBlOiAncGFyZW50JyB9KQp9KTsKCnZhciBCYXNlU2NyaXB0TGlzdCA9IG5ldyByLkFycmF5KEJhc2VTY3JpcHRSZWNvcmQsIHIudWludDE2KTsKCi8vIEFycmF5IG9mIDQtYnl0ZSBiYXNlbGluZSBpZGVudGlmaWNhdGlvbiB0YWdzLW11c3QgYmUgaW4gYWxwaGFiZXRpY2FsIG9yZGVyCnZhciBCYXNlVGFnTGlzdCA9IG5ldyByLkFycmF5KG5ldyByLlN0cmluZyg0KSwgci51aW50MTYpOwoKdmFyIEF4aXMgPSBuZXcgci5TdHJ1Y3QoewogIGJhc2VUYWdMaXN0OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBCYXNlVGFnTGlzdCksIC8vIE1heSBiZSBOVUxMCiAgYmFzZVNjcmlwdExpc3Q6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEJhc2VTY3JpcHRMaXN0KQp9KTsKCnZhciBCQVNFID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDMyLCB7CiAgaGVhZGVyOiB7CiAgICBob3JpekF4aXM6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEF4aXMpLCAvLyBNYXkgYmUgTlVMTAogICAgdmVydEF4aXM6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEF4aXMpIC8vIE1heSBiZSBOVUxMCiAgfSwKCiAgMHgwMDAxMDAwMDoge30sCiAgMHgwMDAxMDAwMTogewogICAgaXRlbVZhcmlhdGlvblN0b3JlOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBJdGVtVmFyaWF0aW9uU3RvcmUpCiAgfQp9KTsKCnZhciBBdHRhY2hQb2ludCA9IG5ldyByLkFycmF5KHIudWludDE2LCByLnVpbnQxNik7CnZhciBBdHRhY2hMaXN0ID0gbmV3IHIuU3RydWN0KHsKICBjb3ZlcmFnZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLAogIGdseXBoQ291bnQ6IHIudWludDE2LAogIGF0dGFjaFBvaW50czogbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQXR0YWNoUG9pbnQpLCAnZ2x5cGhDb3VudCcpCn0pOwoKdmFyIENhcmV0VmFsdWUgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3Qoci51aW50MTYsIHsKICAxOiB7IC8vIERlc2lnbiB1bml0cyBvbmx5CiAgICBjb29yZGluYXRlOiByLmludDE2CiAgfSwKCiAgMjogeyAvLyBDb250b3VyIHBvaW50CiAgICBjYXJldFZhbHVlUG9pbnQ6IHIudWludDE2CiAgfSwKCiAgMzogeyAvLyBEZXNpZ24gdW5pdHMgcGx1cyBEZXZpY2UgdGFibGUKICAgIGNvb3JkaW5hdGU6IHIuaW50MTYsCiAgICBkZXZpY2VUYWJsZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgRGV2aWNlKQogIH0KfSk7Cgp2YXIgTGlnR2x5cGggPSBuZXcgci5BcnJheShuZXcgci5Qb2ludGVyKHIudWludDE2LCBDYXJldFZhbHVlKSwgci51aW50MTYpOwoKdmFyIExpZ0NhcmV0TGlzdCA9IG5ldyByLlN0cnVjdCh7CiAgY292ZXJhZ2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwKICBsaWdHbHlwaENvdW50OiByLnVpbnQxNiwKICBsaWdHbHlwaHM6IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIExpZ0dseXBoKSwgJ2xpZ0dseXBoQ291bnQnKQp9KTsKCnZhciBNYXJrR2x5cGhTZXRzRGVmID0gbmV3IHIuU3RydWN0KHsKICBtYXJrU2V0VGFibGVGb3JtYXQ6IHIudWludDE2LAogIG1hcmtTZXRDb3VudDogci51aW50MTYsCiAgY292ZXJhZ2U6IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MzIsIENvdmVyYWdlKSwgJ21hcmtTZXRDb3VudCcpCn0pOwoKdmFyIEdERUYgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3Qoci51aW50MzIsIHsKICBoZWFkZXI6IHsKICAgIGdseXBoQ2xhc3NEZWY6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENsYXNzRGVmKSwKICAgIGF0dGFjaExpc3Q6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEF0dGFjaExpc3QpLAogICAgbGlnQ2FyZXRMaXN0OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBMaWdDYXJldExpc3QpLAogICAgbWFya0F0dGFjaENsYXNzRGVmOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDbGFzc0RlZikKICB9LAoKICAweDAwMDEwMDAwOiB7fSwKICAweDAwMDEwMDAyOiB7CiAgICBtYXJrR2x5cGhTZXRzRGVmOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBNYXJrR2x5cGhTZXRzRGVmKQogIH0sCiAgMHgwMDAxMDAwMzogewogICAgbWFya0dseXBoU2V0c0RlZjogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgTWFya0dseXBoU2V0c0RlZiksCiAgICBpdGVtVmFyaWF0aW9uU3RvcmU6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIEl0ZW1WYXJpYXRpb25TdG9yZSkKICB9Cn0pOwoKdmFyIFZhbHVlRm9ybWF0ID0gbmV3IHIuQml0ZmllbGQoci51aW50MTYsIFsneFBsYWNlbWVudCcsICd5UGxhY2VtZW50JywgJ3hBZHZhbmNlJywgJ3lBZHZhbmNlJywgJ3hQbGFEZXZpY2UnLCAneVBsYURldmljZScsICd4QWR2RGV2aWNlJywgJ3lBZHZEZXZpY2UnXSk7Cgp2YXIgdHlwZXMgPSB7CiAgeFBsYWNlbWVudDogci5pbnQxNiwKICB5UGxhY2VtZW50OiByLmludDE2LAogIHhBZHZhbmNlOiByLmludDE2LAogIHlBZHZhbmNlOiByLmludDE2LAogIHhQbGFEZXZpY2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIERldmljZSwgeyB0eXBlOiAnZ2xvYmFsJywgcmVsYXRpdmVUbzogJ3JlbCcgfSksCiAgeVBsYURldmljZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgRGV2aWNlLCB7IHR5cGU6ICdnbG9iYWwnLCByZWxhdGl2ZVRvOiAncmVsJyB9KSwKICB4QWR2RGV2aWNlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBEZXZpY2UsIHsgdHlwZTogJ2dsb2JhbCcsIHJlbGF0aXZlVG86ICdyZWwnIH0pLAogIHlBZHZEZXZpY2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIERldmljZSwgeyB0eXBlOiAnZ2xvYmFsJywgcmVsYXRpdmVUbzogJ3JlbCcgfSkKfTsKCnZhciBWYWx1ZVJlY29yZCA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBWYWx1ZVJlY29yZCgpIHsKICAgIHZhciBrZXkgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICd2YWx1ZUZvcm1hdCc7CgogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFZhbHVlUmVjb3JkKTsKCiAgICB0aGlzLmtleSA9IGtleTsKICB9CgogIFZhbHVlUmVjb3JkLnByb3RvdHlwZS5idWlsZFN0cnVjdCA9IGZ1bmN0aW9uIGJ1aWxkU3RydWN0KHBhcmVudCkgewogICAgdmFyIHN0cnVjdCA9IHBhcmVudDsKICAgIHdoaWxlICghc3RydWN0W3RoaXMua2V5XSAmJiBzdHJ1Y3QucGFyZW50KSB7CiAgICAgIHN0cnVjdCA9IHN0cnVjdC5wYXJlbnQ7CiAgICB9CgogICAgaWYgKCFzdHJ1Y3RbdGhpcy5rZXldKSByZXR1cm47CgogICAgdmFyIGZpZWxkcyA9IHt9OwogICAgZmllbGRzLnJlbCA9IGZ1bmN0aW9uICgpIHsKICAgICAgcmV0dXJuIHN0cnVjdC5fc3RhcnRPZmZzZXQ7CiAgICB9OwoKICAgIHZhciBmb3JtYXQgPSBzdHJ1Y3RbdGhpcy5rZXldOwogICAgZm9yICh2YXIga2V5IGluIGZvcm1hdCkgewogICAgICBpZiAoZm9ybWF0W2tleV0pIHsKICAgICAgICBmaWVsZHNba2V5XSA9IHR5cGVzW2tleV07CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gbmV3IHIuU3RydWN0KGZpZWxkcyk7CiAgfTsKCiAgVmFsdWVSZWNvcmQucHJvdG90eXBlLnNpemUgPSBmdW5jdGlvbiBzaXplKHZhbCwgY3R4KSB7CiAgICByZXR1cm4gdGhpcy5idWlsZFN0cnVjdChjdHgpLnNpemUodmFsLCBjdHgpOwogIH07CgogIFZhbHVlUmVjb3JkLnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoc3RyZWFtLCBwYXJlbnQpIHsKICAgIHZhciByZXMgPSB0aGlzLmJ1aWxkU3RydWN0KHBhcmVudCkuZGVjb2RlKHN0cmVhbSwgcGFyZW50KTsKICAgIGRlbGV0ZSByZXMucmVsOwogICAgcmV0dXJuIHJlczsKICB9OwoKICByZXR1cm4gVmFsdWVSZWNvcmQ7Cn0oKTsKCnZhciBQYWlyVmFsdWVSZWNvcmQgPSBuZXcgci5TdHJ1Y3QoewogIHNlY29uZEdseXBoOiByLnVpbnQxNiwKICB2YWx1ZTE6IG5ldyBWYWx1ZVJlY29yZCgndmFsdWVGb3JtYXQxJyksCiAgdmFsdWUyOiBuZXcgVmFsdWVSZWNvcmQoJ3ZhbHVlRm9ybWF0MicpCn0pOwoKdmFyIFBhaXJTZXQgPSBuZXcgci5BcnJheShQYWlyVmFsdWVSZWNvcmQsIHIudWludDE2KTsKCnZhciBDbGFzczJSZWNvcmQgPSBuZXcgci5TdHJ1Y3QoewogIHZhbHVlMTogbmV3IFZhbHVlUmVjb3JkKCd2YWx1ZUZvcm1hdDEnKSwKICB2YWx1ZTI6IG5ldyBWYWx1ZVJlY29yZCgndmFsdWVGb3JtYXQyJykKfSk7Cgp2YXIgQW5jaG9yID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7CiAgMTogeyAvLyBEZXNpZ24gdW5pdHMgb25seQogICAgeENvb3JkaW5hdGU6IHIuaW50MTYsCiAgICB5Q29vcmRpbmF0ZTogci5pbnQxNgogIH0sCgogIDI6IHsgLy8gRGVzaWduIHVuaXRzIHBsdXMgY29udG91ciBwb2ludAogICAgeENvb3JkaW5hdGU6IHIuaW50MTYsCiAgICB5Q29vcmRpbmF0ZTogci5pbnQxNiwKICAgIGFuY2hvclBvaW50OiByLnVpbnQxNgogIH0sCgogIDM6IHsgLy8gRGVzaWduIHVuaXRzIHBsdXMgRGV2aWNlIHRhYmxlcwogICAgeENvb3JkaW5hdGU6IHIuaW50MTYsCiAgICB5Q29vcmRpbmF0ZTogci5pbnQxNiwKICAgIHhEZXZpY2VUYWJsZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgRGV2aWNlKSwKICAgIHlEZXZpY2VUYWJsZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgRGV2aWNlKQogIH0KfSk7Cgp2YXIgRW50cnlFeGl0UmVjb3JkID0gbmV3IHIuU3RydWN0KHsKICBlbnRyeUFuY2hvcjogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQW5jaG9yLCB7IHR5cGU6ICdwYXJlbnQnIH0pLAogIGV4aXRBbmNob3I6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEFuY2hvciwgeyB0eXBlOiAncGFyZW50JyB9KQp9KTsKCnZhciBNYXJrUmVjb3JkID0gbmV3IHIuU3RydWN0KHsKICBjbGFzczogci51aW50MTYsCiAgbWFya0FuY2hvcjogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQW5jaG9yLCB7IHR5cGU6ICdwYXJlbnQnIH0pCn0pOwoKdmFyIE1hcmtBcnJheSA9IG5ldyByLkFycmF5KE1hcmtSZWNvcmQsIHIudWludDE2KTsKCnZhciBCYXNlUmVjb3JkID0gbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQW5jaG9yKSwgZnVuY3Rpb24gKHQpIHsKICByZXR1cm4gdC5wYXJlbnQuY2xhc3NDb3VudDsKfSk7CnZhciBCYXNlQXJyYXkgPSBuZXcgci5BcnJheShCYXNlUmVjb3JkLCByLnVpbnQxNik7Cgp2YXIgQ29tcG9uZW50UmVjb3JkID0gbmV3IHIuQXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQW5jaG9yKSwgZnVuY3Rpb24gKHQpIHsKICByZXR1cm4gdC5wYXJlbnQucGFyZW50LmNsYXNzQ291bnQ7Cn0pOwp2YXIgTGlnYXR1cmVBdHRhY2ggPSBuZXcgci5BcnJheShDb21wb25lbnRSZWNvcmQsIHIudWludDE2KTsKdmFyIExpZ2F0dXJlQXJyYXkgPSBuZXcgci5BcnJheShuZXcgci5Qb2ludGVyKHIudWludDE2LCBMaWdhdHVyZUF0dGFjaCksIHIudWludDE2KTsKCnZhciBHUE9TTG9va3VwID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KCdsb29rdXBUeXBlJywgewogIDE6IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQxNiwgeyAvLyBTaW5nbGUgQWRqdXN0bWVudAogICAgMTogeyAvLyBTaW5nbGUgcG9zaXRpb25pbmcgdmFsdWUKICAgICAgY292ZXJhZ2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwKICAgICAgdmFsdWVGb3JtYXQ6IFZhbHVlRm9ybWF0LAogICAgICB2YWx1ZTogbmV3IFZhbHVlUmVjb3JkKCkKICAgIH0sCiAgICAyOiB7CiAgICAgIGNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICAgIHZhbHVlRm9ybWF0OiBWYWx1ZUZvcm1hdCwKICAgICAgdmFsdWVDb3VudDogci51aW50MTYsCiAgICAgIHZhbHVlczogbmV3IHIuTGF6eUFycmF5KG5ldyBWYWx1ZVJlY29yZCgpLCAndmFsdWVDb3VudCcpCiAgICB9CiAgfSksCgogIDI6IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQxNiwgeyAvLyBQYWlyIEFkanVzdG1lbnQgUG9zaXRpb25pbmcKICAgIDE6IHsgLy8gQWRqdXN0bWVudHMgZm9yIGdseXBoIHBhaXJzCiAgICAgIGNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICAgIHZhbHVlRm9ybWF0MTogVmFsdWVGb3JtYXQsCiAgICAgIHZhbHVlRm9ybWF0MjogVmFsdWVGb3JtYXQsCiAgICAgIHBhaXJTZXRDb3VudDogci51aW50MTYsCiAgICAgIHBhaXJTZXRzOiBuZXcgci5MYXp5QXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgUGFpclNldCksICdwYWlyU2V0Q291bnQnKQogICAgfSwKCiAgICAyOiB7IC8vIENsYXNzIHBhaXIgYWRqdXN0bWVudAogICAgICBjb3ZlcmFnZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLAogICAgICB2YWx1ZUZvcm1hdDE6IFZhbHVlRm9ybWF0LAogICAgICB2YWx1ZUZvcm1hdDI6IFZhbHVlRm9ybWF0LAogICAgICBjbGFzc0RlZjE6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENsYXNzRGVmKSwKICAgICAgY2xhc3NEZWYyOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDbGFzc0RlZiksCiAgICAgIGNsYXNzMUNvdW50OiByLnVpbnQxNiwKICAgICAgY2xhc3MyQ291bnQ6IHIudWludDE2LAogICAgICBjbGFzc1JlY29yZHM6IG5ldyByLkxhenlBcnJheShuZXcgci5MYXp5QXJyYXkoQ2xhc3MyUmVjb3JkLCAnY2xhc3MyQ291bnQnKSwgJ2NsYXNzMUNvdW50JykKICAgIH0KICB9KSwKCiAgMzogeyAvLyBDdXJzaXZlIEF0dGFjaG1lbnQgUG9zaXRpb25pbmcKICAgIGZvcm1hdDogci51aW50MTYsCiAgICBjb3ZlcmFnZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLAogICAgZW50cnlFeGl0Q291bnQ6IHIudWludDE2LAogICAgZW50cnlFeGl0UmVjb3JkczogbmV3IHIuQXJyYXkoRW50cnlFeGl0UmVjb3JkLCAnZW50cnlFeGl0Q291bnQnKQogIH0sCgogIDQ6IHsgLy8gTWFya1RvQmFzZSBBdHRhY2htZW50IFBvc2l0aW9uaW5nCiAgICBmb3JtYXQ6IHIudWludDE2LAogICAgbWFya0NvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBiYXNlQ292ZXJhZ2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwKICAgIGNsYXNzQ291bnQ6IHIudWludDE2LAogICAgbWFya0FycmF5OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBNYXJrQXJyYXkpLAogICAgYmFzZUFycmF5OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBCYXNlQXJyYXkpCiAgfSwKCiAgNTogeyAvLyBNYXJrVG9MaWdhdHVyZSBBdHRhY2htZW50IFBvc2l0aW9uaW5nCiAgICBmb3JtYXQ6IHIudWludDE2LAogICAgbWFya0NvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBsaWdhdHVyZUNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBjbGFzc0NvdW50OiByLnVpbnQxNiwKICAgIG1hcmtBcnJheTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgTWFya0FycmF5KSwKICAgIGxpZ2F0dXJlQXJyYXk6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIExpZ2F0dXJlQXJyYXkpCiAgfSwKCiAgNjogeyAvLyBNYXJrVG9NYXJrIEF0dGFjaG1lbnQgUG9zaXRpb25pbmcKICAgIGZvcm1hdDogci51aW50MTYsCiAgICBtYXJrMUNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBtYXJrMkNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBjbGFzc0NvdW50OiByLnVpbnQxNiwKICAgIG1hcmsxQXJyYXk6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIE1hcmtBcnJheSksCiAgICBtYXJrMkFycmF5OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBCYXNlQXJyYXkpCiAgfSwKCiAgNzogQ29udGV4dCwgLy8gQ29udGV4dHVhbCBwb3NpdGlvbmluZwogIDg6IENoYWluaW5nQ29udGV4dCwgLy8gQ2hhaW5pbmcgY29udGV4dHVhbCBwb3NpdGlvbmluZwoKICA5OiB7IC8vIEV4dGVuc2lvbiBQb3NpdGlvbmluZwogICAgcG9zRm9ybWF0OiByLnVpbnQxNiwKICAgIGxvb2t1cFR5cGU6IHIudWludDE2LCAvLyBjYW5ub3QgYWxzbyBiZSA5CiAgICBleHRlbnNpb246IG5ldyByLlBvaW50ZXIoci51aW50MzIsIEdQT1NMb29rdXApCiAgfQp9KTsKCi8vIEZpeCBjaXJjdWxhciByZWZlcmVuY2UKR1BPU0xvb2t1cC52ZXJzaW9uc1s5XS5leHRlbnNpb24udHlwZSA9IEdQT1NMb29rdXA7Cgp2YXIgR1BPUyA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQzMiwgewogIGhlYWRlcjogewogICAgc2NyaXB0TGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgU2NyaXB0TGlzdCksCiAgICBmZWF0dXJlTGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgRmVhdHVyZUxpc3QpLAogICAgbG9va3VwTGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgbmV3IExvb2t1cExpc3QoR1BPU0xvb2t1cCkpCiAgfSwKCiAgMHgwMDAxMDAwMDoge30sCiAgMHgwMDAxMDAwMTogewogICAgZmVhdHVyZVZhcmlhdGlvbnM6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIEZlYXR1cmVWYXJpYXRpb25zKQogIH0KfSk7Cgp2YXIgU2VxdWVuY2UgPSBuZXcgci5BcnJheShyLnVpbnQxNiwgci51aW50MTYpOwp2YXIgQWx0ZXJuYXRlU2V0ID0gU2VxdWVuY2U7Cgp2YXIgTGlnYXR1cmUgPSBuZXcgci5TdHJ1Y3QoewogIGdseXBoOiByLnVpbnQxNiwKICBjb21wQ291bnQ6IHIudWludDE2LAogIGNvbXBvbmVudHM6IG5ldyByLkFycmF5KHIudWludDE2LCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQuY29tcENvdW50IC0gMTsKICB9KQp9KTsKCnZhciBMaWdhdHVyZVNldCA9IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIExpZ2F0dXJlKSwgci51aW50MTYpOwoKdmFyIEdTVUJMb29rdXAgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3QoJ2xvb2t1cFR5cGUnLCB7CiAgMTogbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7IC8vIFNpbmdsZSBTdWJzdGl0dXRpb24KICAgIDE6IHsKICAgICAgY292ZXJhZ2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwKICAgICAgZGVsdGFHbHlwaElEOiByLmludDE2CiAgICB9LAogICAgMjogewogICAgICBjb3ZlcmFnZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLAogICAgICBnbHlwaENvdW50OiByLnVpbnQxNiwKICAgICAgc3Vic3RpdHV0ZTogbmV3IHIuTGF6eUFycmF5KHIudWludDE2LCAnZ2x5cGhDb3VudCcpCiAgICB9CiAgfSksCgogIDI6IHsgLy8gTXVsdGlwbGUgU3Vic3RpdHV0aW9uCiAgICBzdWJzdEZvcm1hdDogci51aW50MTYsCiAgICBjb3ZlcmFnZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLAogICAgY291bnQ6IHIudWludDE2LAogICAgc2VxdWVuY2VzOiBuZXcgci5MYXp5QXJyYXkobmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgU2VxdWVuY2UpLCAnY291bnQnKQogIH0sCgogIDM6IHsgLy8gQWx0ZXJuYXRlIFN1YnN0aXR1dGlvbgogICAgc3Vic3RGb3JtYXQ6IHIudWludDE2LAogICAgY292ZXJhZ2U6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwKICAgIGNvdW50OiByLnVpbnQxNiwKICAgIGFsdGVybmF0ZVNldDogbmV3IHIuTGF6eUFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIEFsdGVybmF0ZVNldCksICdjb3VudCcpCiAgfSwKCiAgNDogeyAvLyBMaWdhdHVyZSBTdWJzdGl0dXRpb24KICAgIHN1YnN0Rm9ybWF0OiByLnVpbnQxNiwKICAgIGNvdmVyYWdlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDb3ZlcmFnZSksCiAgICBjb3VudDogci51aW50MTYsCiAgICBsaWdhdHVyZVNldHM6IG5ldyByLkxhenlBcnJheShuZXcgci5Qb2ludGVyKHIudWludDE2LCBMaWdhdHVyZVNldCksICdjb3VudCcpCiAgfSwKCiAgNTogQ29udGV4dCwgLy8gQ29udGV4dHVhbCBTdWJzdGl0dXRpb24KICA2OiBDaGFpbmluZ0NvbnRleHQsIC8vIENoYWluaW5nIENvbnRleHR1YWwgU3Vic3RpdHV0aW9uCgogIDc6IHsgLy8gRXh0ZW5zaW9uIFN1YnN0aXR1dGlvbgogICAgc3Vic3RGb3JtYXQ6IHIudWludDE2LAogICAgbG9va3VwVHlwZTogci51aW50MTYsIC8vIGNhbm5vdCBhbHNvIGJlIDcKICAgIGV4dGVuc2lvbjogbmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgR1NVQkxvb2t1cCkKICB9LAoKICA4OiB7IC8vIFJldmVyc2UgQ2hhaW5pbmcgQ29udGV4dHVhbCBTaW5nbGUgU3Vic3RpdHV0aW9uCiAgICBzdWJzdEZvcm1hdDogci51aW50MTYsCiAgICBjb3ZlcmFnZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ292ZXJhZ2UpLAogICAgYmFja3RyYWNrQ292ZXJhZ2U6IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwgJ2JhY2t0cmFja0dseXBoQ291bnQnKSwKICAgIGxvb2thaGVhZEdseXBoQ291bnQ6IHIudWludDE2LAogICAgbG9va2FoZWFkQ292ZXJhZ2U6IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIENvdmVyYWdlKSwgJ2xvb2thaGVhZEdseXBoQ291bnQnKSwKICAgIGdseXBoQ291bnQ6IHIudWludDE2LAogICAgc3Vic3RpdHV0ZXM6IG5ldyByLkFycmF5KHIudWludDE2LCAnZ2x5cGhDb3VudCcpCiAgfQp9KTsKCi8vIEZpeCBjaXJjdWxhciByZWZlcmVuY2UKR1NVQkxvb2t1cC52ZXJzaW9uc1s3XS5leHRlbnNpb24udHlwZSA9IEdTVUJMb29rdXA7Cgp2YXIgR1NVQiA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQzMiwgewogIGhlYWRlcjogewogICAgc2NyaXB0TGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgU2NyaXB0TGlzdCksCiAgICBmZWF0dXJlTGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgRmVhdHVyZUxpc3QpLAogICAgbG9va3VwTGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgbmV3IExvb2t1cExpc3QoR1NVQkxvb2t1cCkpCiAgfSwKCiAgMHgwMDAxMDAwMDoge30sCiAgMHgwMDAxMDAwMTogewogICAgZmVhdHVyZVZhcmlhdGlvbnM6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIEZlYXR1cmVWYXJpYXRpb25zKQogIH0KfSk7Cgp2YXIgSnN0ZkdTVUJNb2RMaXN0ID0gbmV3IHIuQXJyYXkoci51aW50MTYsIHIudWludDE2KTsKCnZhciBKc3RmUHJpb3JpdHkgPSBuZXcgci5TdHJ1Y3QoewogIHNocmlua2FnZUVuYWJsZUdTVUI6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEpzdGZHU1VCTW9kTGlzdCksCiAgc2hyaW5rYWdlRGlzYWJsZUdTVUI6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEpzdGZHU1VCTW9kTGlzdCksCiAgc2hyaW5rYWdlRW5hYmxlR1BPUzogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgSnN0ZkdTVUJNb2RMaXN0KSwKICBzaHJpbmthZ2VEaXNhYmxlR1BPUzogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgSnN0ZkdTVUJNb2RMaXN0KSwKICBzaHJpbmthZ2VKc3RmTWF4OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBuZXcgTG9va3VwTGlzdChHUE9TTG9va3VwKSksCiAgZXh0ZW5zaW9uRW5hYmxlR1NVQjogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgSnN0ZkdTVUJNb2RMaXN0KSwKICBleHRlbnNpb25EaXNhYmxlR1NVQjogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgSnN0ZkdTVUJNb2RMaXN0KSwKICBleHRlbnNpb25FbmFibGVHUE9TOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBKc3RmR1NVQk1vZExpc3QpLAogIGV4dGVuc2lvbkRpc2FibGVHUE9TOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBKc3RmR1NVQk1vZExpc3QpLAogIGV4dGVuc2lvbkpzdGZNYXg6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIG5ldyBMb29rdXBMaXN0KEdQT1NMb29rdXApKQp9KTsKCnZhciBKc3RmTGFuZ1N5cyA9IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MTYsIEpzdGZQcmlvcml0eSksIHIudWludDE2KTsKCnZhciBKc3RmTGFuZ1N5c1JlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgdGFnOiBuZXcgci5TdHJpbmcoNCksCiAganN0ZkxhbmdTeXM6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIEpzdGZMYW5nU3lzKQp9KTsKCnZhciBKc3RmU2NyaXB0ID0gbmV3IHIuU3RydWN0KHsKICBleHRlbmRlckdseXBoczogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgbmV3IHIuQXJyYXkoci51aW50MTYsIHIudWludDE2KSksIC8vIGFycmF5IG9mIGdseXBocyB0byBleHRlbmQgbGluZSBsZW5ndGgKICBkZWZhdWx0TGFuZ1N5czogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgSnN0ZkxhbmdTeXMpLAogIGxhbmdTeXNDb3VudDogci51aW50MTYsCiAgbGFuZ1N5c1JlY29yZHM6IG5ldyByLkFycmF5KEpzdGZMYW5nU3lzUmVjb3JkLCAnbGFuZ1N5c0NvdW50JykKfSk7Cgp2YXIgSnN0ZlNjcmlwdFJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAgdGFnOiBuZXcgci5TdHJpbmcoNCksCiAgc2NyaXB0OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBKc3RmU2NyaXB0LCB7IHR5cGU6ICdwYXJlbnQnIH0pCn0pOwoKdmFyIEpTVEYgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIudWludDMyLCAvLyBzaG91bGQgYmUgMHgwMDAxMDAwMAogIHNjcmlwdENvdW50OiByLnVpbnQxNiwKICBzY3JpcHRMaXN0OiBuZXcgci5BcnJheShKc3RmU2NyaXB0UmVjb3JkLCAnc2NyaXB0Q291bnQnKQp9KTsKCi8vIFRPRE86IGFkZCB0aGlzIHRvIHJlc3RydWN0dXJlCgp2YXIgVmFyaWFibGVTaXplTnVtYmVyID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIFZhcmlhYmxlU2l6ZU51bWJlcihzaXplKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVmFyaWFibGVTaXplTnVtYmVyKTsKCiAgICB0aGlzLl9zaXplID0gc2l6ZTsKICB9CgogIFZhcmlhYmxlU2l6ZU51bWJlci5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKHN0cmVhbSwgcGFyZW50KSB7CiAgICBzd2l0Y2ggKHRoaXMuc2l6ZSgwLCBwYXJlbnQpKSB7CiAgICAgIGNhc2UgMToKICAgICAgICByZXR1cm4gc3RyZWFtLnJlYWRVSW50OCgpOwogICAgICBjYXNlIDI6CiAgICAgICAgcmV0dXJuIHN0cmVhbS5yZWFkVUludDE2QkUoKTsKICAgICAgY2FzZSAzOgogICAgICAgIHJldHVybiBzdHJlYW0ucmVhZFVJbnQyNEJFKCk7CiAgICAgIGNhc2UgNDoKICAgICAgICByZXR1cm4gc3RyZWFtLnJlYWRVSW50MzJCRSgpOwogICAgfQogIH07CgogIFZhcmlhYmxlU2l6ZU51bWJlci5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uIHNpemUodmFsLCBwYXJlbnQpIHsKICAgIHJldHVybiByZXN0cnVjdHVyZV9zcmNfdXRpbHMucmVzb2x2ZUxlbmd0aCh0aGlzLl9zaXplLCBudWxsLCBwYXJlbnQpOwogIH07CgogIHJldHVybiBWYXJpYWJsZVNpemVOdW1iZXI7Cn0oKTsKCnZhciBNYXBEYXRhRW50cnkgPSBuZXcgci5TdHJ1Y3QoewogIGVudHJ5OiBuZXcgVmFyaWFibGVTaXplTnVtYmVyKGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gKCh0LnBhcmVudC5lbnRyeUZvcm1hdCAmIDB4MDAzMCkgPj4gNCkgKyAxOwogIH0pLAogIG91dGVySW5kZXg6IGZ1bmN0aW9uIG91dGVySW5kZXgodCkgewogICAgcmV0dXJuIHQuZW50cnkgPj4gKHQucGFyZW50LmVudHJ5Rm9ybWF0ICYgMHgwMDBGKSArIDE7CiAgfSwKICBpbm5lckluZGV4OiBmdW5jdGlvbiBpbm5lckluZGV4KHQpIHsKICAgIHJldHVybiB0LmVudHJ5ICYgKDEgPDwgKHQucGFyZW50LmVudHJ5Rm9ybWF0ICYgMHgwMDBGKSArIDEpIC0gMTsKICB9Cn0pOwoKdmFyIERlbHRhU2V0SW5kZXhNYXAgPSBuZXcgci5TdHJ1Y3QoewogIGVudHJ5Rm9ybWF0OiByLnVpbnQxNiwKICBtYXBDb3VudDogci51aW50MTYsCiAgbWFwRGF0YTogbmV3IHIuQXJyYXkoTWFwRGF0YUVudHJ5LCAnbWFwQ291bnQnKQp9KTsKCnZhciBIVkFSID0gbmV3IHIuU3RydWN0KHsKICBtYWpvclZlcnNpb246IHIudWludDE2LAogIG1pbm9yVmVyc2lvbjogci51aW50MTYsCiAgaXRlbVZhcmlhdGlvblN0b3JlOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBJdGVtVmFyaWF0aW9uU3RvcmUpLAogIGFkdmFuY2VXaWR0aE1hcHBpbmc6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIERlbHRhU2V0SW5kZXhNYXApLAogIExTQk1hcHBpbmc6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIERlbHRhU2V0SW5kZXhNYXApLAogIFJTQk1hcHBpbmc6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIERlbHRhU2V0SW5kZXhNYXApCn0pOwoKdmFyIFNpZ25hdHVyZSA9IG5ldyByLlN0cnVjdCh7CiAgZm9ybWF0OiByLnVpbnQzMiwKICBsZW5ndGg6IHIudWludDMyLAogIG9mZnNldDogci51aW50MzIKfSk7Cgp2YXIgU2lnbmF0dXJlQmxvY2sgPSBuZXcgci5TdHJ1Y3QoewogIHJlc2VydmVkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiwgMiksCiAgY2JTaWduYXR1cmU6IHIudWludDMyLCAvLyBMZW5ndGggKGluIGJ5dGVzKSBvZiB0aGUgUEtDUyM3IHBhY2tldCBpbiBwYlNpZ25hdHVyZQogIHNpZ25hdHVyZTogbmV3IHIuQnVmZmVyKCdjYlNpZ25hdHVyZScpCn0pOwoKdmFyIERTSUcgPSBuZXcgci5TdHJ1Y3QoewogIHVsVmVyc2lvbjogci51aW50MzIsIC8vIFZlcnNpb24gbnVtYmVyIG9mIHRoZSBEU0lHIHRhYmxlICgweDAwMDAwMDAxKQogIHVzTnVtU2lnczogci51aW50MTYsIC8vIE51bWJlciBvZiBzaWduYXR1cmVzIGluIHRoZSB0YWJsZQogIHVzRmxhZzogci51aW50MTYsIC8vIFBlcm1pc3Npb24gZmxhZ3MKICBzaWduYXR1cmVzOiBuZXcgci5BcnJheShTaWduYXR1cmUsICd1c051bVNpZ3MnKSwKICBzaWduYXR1cmVCbG9ja3M6IG5ldyByLkFycmF5KFNpZ25hdHVyZUJsb2NrLCAndXNOdW1TaWdzJykKfSk7Cgp2YXIgR2FzcFJhbmdlID0gbmV3IHIuU3RydWN0KHsKICByYW5nZU1heFBQRU06IHIudWludDE2LCAvLyBVcHBlciBsaW1pdCBvZiByYW5nZSwgaW4gcHBlbQogIHJhbmdlR2FzcEJlaGF2aW9yOiBuZXcgci5CaXRmaWVsZChyLnVpbnQxNiwgWy8vIEZsYWdzIGRlc2NyaWJpbmcgZGVzaXJlZCByYXN0ZXJpemVyIGJlaGF2aW9yCiAgJ2dyYXlzY2FsZScsICdncmlkZml0JywgJ3N5bW1ldHJpY1Ntb290aGluZycsICdzeW1tZXRyaWNHcmlkZml0JyAvLyBvbmx5IGluIHZlcnNpb24gMSwgZm9yIENsZWFyVHlwZQogIF0pCn0pOwoKdmFyIGdhc3AgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIudWludDE2LCAvLyBzZXQgdG8gMAogIG51bVJhbmdlczogci51aW50MTYsCiAgZ2FzcFJhbmdlczogbmV3IHIuQXJyYXkoR2FzcFJhbmdlLCAnbnVtUmFuZ2VzJykgLy8gU29ydGVkIGJ5IHBwZW0KfSk7Cgp2YXIgRGV2aWNlUmVjb3JkID0gbmV3IHIuU3RydWN0KHsKICBwaXhlbFNpemU6IHIudWludDgsCiAgbWF4aW11bVdpZHRoOiByLnVpbnQ4LAogIHdpZHRoczogbmV3IHIuQXJyYXkoci51aW50OCwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB0LnBhcmVudC5wYXJlbnQubWF4cC5udW1HbHlwaHM7CiAgfSkKfSk7CgovLyBUaGUgSG9yaXpvbnRhbCBEZXZpY2UgTWV0cmljcyB0YWJsZSBzdG9yZXMgaW50ZWdlciBhZHZhbmNlIHdpZHRocyBzY2FsZWQgdG8gcGFydGljdWxhciBwaXhlbCBzaXplcwp2YXIgaGRteCA9IG5ldyByLlN0cnVjdCh7CiAgdmVyc2lvbjogci51aW50MTYsCiAgbnVtUmVjb3Jkczogci5pbnQxNiwKICBzaXplRGV2aWNlUmVjb3JkOiByLmludDMyLAogIHJlY29yZHM6IG5ldyByLkFycmF5KERldmljZVJlY29yZCwgJ251bVJlY29yZHMnKQp9KTsKCnZhciBLZXJuUGFpciA9IG5ldyByLlN0cnVjdCh7CiAgbGVmdDogci51aW50MTYsCiAgcmlnaHQ6IHIudWludDE2LAogIHZhbHVlOiByLmludDE2Cn0pOwoKdmFyIENsYXNzVGFibGUgPSBuZXcgci5TdHJ1Y3QoewogIGZpcnN0R2x5cGg6IHIudWludDE2LAogIG5HbHlwaHM6IHIudWludDE2LAogIG9mZnNldHM6IG5ldyByLkFycmF5KHIudWludDE2LCAnbkdseXBocycpLAogIG1heDogZnVuY3Rpb24gbWF4KHQpIHsKICAgIHJldHVybiB0Lm9mZnNldHMubGVuZ3RoICYmIE1hdGgubWF4LmFwcGx5KE1hdGgsIHQub2Zmc2V0cyk7CiAgfQp9KTsKCnZhciBLZXJuMkFycmF5ID0gbmV3IHIuU3RydWN0KHsKICBvZmY6IGZ1bmN0aW9uIG9mZih0KSB7CiAgICByZXR1cm4gdC5fc3RhcnRPZmZzZXQgLSB0LnBhcmVudC5wYXJlbnQuX3N0YXJ0T2Zmc2V0OwogIH0sCiAgbGVuOiBmdW5jdGlvbiBsZW4odCkgewogICAgcmV0dXJuICgodC5wYXJlbnQubGVmdFRhYmxlLm1heCAtIHQub2ZmKSAvIHQucGFyZW50LnJvd1dpZHRoICsgMSkgKiAodC5wYXJlbnQucm93V2lkdGggLyAyKTsKICB9LAogIHZhbHVlczogbmV3IHIuTGF6eUFycmF5KHIuaW50MTYsICdsZW4nKQp9KTsKCnZhciBLZXJuU3VidGFibGUgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3QoJ2Zvcm1hdCcsIHsKICAwOiB7CiAgICBuUGFpcnM6IHIudWludDE2LAogICAgc2VhcmNoUmFuZ2U6IHIudWludDE2LAogICAgZW50cnlTZWxlY3Rvcjogci51aW50MTYsCiAgICByYW5nZVNoaWZ0OiByLnVpbnQxNiwKICAgIHBhaXJzOiBuZXcgci5BcnJheShLZXJuUGFpciwgJ25QYWlycycpCiAgfSwKCiAgMjogewogICAgcm93V2lkdGg6IHIudWludDE2LAogICAgbGVmdFRhYmxlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBDbGFzc1RhYmxlLCB7IHR5cGU6ICdwYXJlbnQnIH0pLAogICAgcmlnaHRUYWJsZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgQ2xhc3NUYWJsZSwgeyB0eXBlOiAncGFyZW50JyB9KSwKICAgIGFycmF5OiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBLZXJuMkFycmF5LCB7IHR5cGU6ICdwYXJlbnQnIH0pCiAgfSwKCiAgMzogewogICAgZ2x5cGhDb3VudDogci51aW50MTYsCiAgICBrZXJuVmFsdWVDb3VudDogci51aW50OCwKICAgIGxlZnRDbGFzc0NvdW50OiByLnVpbnQ4LAogICAgcmlnaHRDbGFzc0NvdW50OiByLnVpbnQ4LAogICAgZmxhZ3M6IHIudWludDgsCiAgICBrZXJuVmFsdWU6IG5ldyByLkFycmF5KHIuaW50MTYsICdrZXJuVmFsdWVDb3VudCcpLAogICAgbGVmdENsYXNzOiBuZXcgci5BcnJheShyLnVpbnQ4LCAnZ2x5cGhDb3VudCcpLAogICAgcmlnaHRDbGFzczogbmV3IHIuQXJyYXkoci51aW50OCwgJ2dseXBoQ291bnQnKSwKICAgIGtlcm5JbmRleDogbmV3IHIuQXJyYXkoci51aW50OCwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQubGVmdENsYXNzQ291bnQgKiB0LnJpZ2h0Q2xhc3NDb3VudDsKICAgIH0pCiAgfQp9KTsKCnZhciBLZXJuVGFibGUgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3QoJ3ZlcnNpb24nLCB7CiAgMDogeyAvLyBNaWNyb3NvZnQgdXNlcyB0aGlzIGZvcm1hdAogICAgc3ViVmVyc2lvbjogci51aW50MTYsIC8vIE1pY3Jvc29mdCBoYXMgYW4gZXh0cmEgc3ViLXRhYmxlIHZlcnNpb24gbnVtYmVyCiAgICBsZW5ndGg6IHIudWludDE2LCAvLyBMZW5ndGggb2YgdGhlIHN1YnRhYmxlLCBpbiBieXRlcwogICAgZm9ybWF0OiByLnVpbnQ4LCAvLyBGb3JtYXQgb2Ygc3VidGFibGUKICAgIGNvdmVyYWdlOiBuZXcgci5CaXRmaWVsZChyLnVpbnQ4LCBbJ2hvcml6b250YWwnLCAvLyAxIGlmIHRhYmxlIGhhcyBob3Jpem9udGFsIGRhdGEsIDAgaWYgdmVydGljYWwKICAgICdtaW5pbXVtJywgLy8gSWYgc2V0IHRvIDEsIHRoZSB0YWJsZSBoYXMgbWluaW11bSB2YWx1ZXMuIElmIHNldCB0byAwLCB0aGUgdGFibGUgaGFzIGtlcm5pbmcgdmFsdWVzLgogICAgJ2Nyb3NzU3RyZWFtJywgLy8gSWYgc2V0IHRvIDEsIGtlcm5pbmcgaXMgcGVycGVuZGljdWxhciB0byB0aGUgZmxvdyBvZiB0aGUgdGV4dAogICAgJ292ZXJyaWRlJyAvLyBJZiBzZXQgdG8gMSB0aGUgdmFsdWUgaW4gdGhpcyB0YWJsZSByZXBsYWNlcyB0aGUgYWNjdW11bGF0ZWQgdmFsdWUKICAgIF0pLAogICAgc3VidGFibGU6IEtlcm5TdWJ0YWJsZSwKICAgIHBhZGRpbmc6IG5ldyByLlJlc2VydmVkKHIudWludDgsIGZ1bmN0aW9uICh0KSB7CiAgICAgIHJldHVybiB0Lmxlbmd0aCAtIHQuX2N1cnJlbnRPZmZzZXQ7CiAgICB9KQogIH0sCiAgMTogeyAvLyBBcHBsZSB1c2VzIHRoaXMgZm9ybWF0CiAgICBsZW5ndGg6IHIudWludDMyLAogICAgY292ZXJhZ2U6IG5ldyByLkJpdGZpZWxkKHIudWludDgsIFtudWxsLCBudWxsLCBudWxsLCBudWxsLCBudWxsLCAndmFyaWF0aW9uJywgLy8gU2V0IGlmIHRhYmxlIGhhcyB2YXJpYXRpb24ga2VybmluZyB2YWx1ZXMKICAgICdjcm9zc1N0cmVhbScsIC8vIFNldCBpZiB0YWJsZSBoYXMgY3Jvc3Mtc3RyZWFtIGtlcm5pbmcgdmFsdWVzCiAgICAndmVydGljYWwnIC8vIFNldCBpZiB0YWJsZSBoYXMgdmVydGljYWwga2VybmluZyB2YWx1ZXMKICAgIF0pLAogICAgZm9ybWF0OiByLnVpbnQ4LAogICAgdHVwbGVJbmRleDogci51aW50MTYsCiAgICBzdWJ0YWJsZTogS2VyblN1YnRhYmxlLAogICAgcGFkZGluZzogbmV3IHIuUmVzZXJ2ZWQoci51aW50OCwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQubGVuZ3RoIC0gdC5fY3VycmVudE9mZnNldDsKICAgIH0pCiAgfQp9KTsKCnZhciBrZXJuID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7CiAgMDogeyAvLyBNaWNyb3NvZnQgVmVyc2lvbgogICAgblRhYmxlczogci51aW50MTYsCiAgICB0YWJsZXM6IG5ldyByLkFycmF5KEtlcm5UYWJsZSwgJ25UYWJsZXMnKQogIH0sCgogIDE6IHsgLy8gQXBwbGUgVmVyc2lvbgogICAgcmVzZXJ2ZWQ6IG5ldyByLlJlc2VydmVkKHIudWludDE2KSwgLy8gdGhlIG90aGVyIGhhbGYgb2YgdGhlIHZlcnNpb24gbnVtYmVyCiAgICBuVGFibGVzOiByLnVpbnQzMiwKICAgIHRhYmxlczogbmV3IHIuQXJyYXkoS2VyblRhYmxlLCAnblRhYmxlcycpCiAgfQp9KTsKCi8vIExpbmVhciBUaHJlc2hvbGQgdGFibGUKLy8gUmVjb3JkcyB0aGUgcHBlbSBmb3IgZWFjaCBnbHlwaCBhdCB3aGljaCB0aGUgc2NhbGluZyBiZWNvbWVzIGxpbmVhciBhZ2FpbiwKLy8gZGVzcGl0ZSBpbnN0cnVjdGlvbnMgZWZmZWN0aW5nIHRoZSBhZHZhbmNlIHdpZHRoCnZhciBMVFNIID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLnVpbnQxNiwKICBudW1HbHlwaHM6IHIudWludDE2LAogIHlQZWxzOiBuZXcgci5BcnJheShyLnVpbnQ4LCAnbnVtR2x5cGhzJykKfSk7CgovLyBQQ0wgNSBUYWJsZQovLyBOT1RFOiBUaGUgUENMVCB0YWJsZSBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZCBmb3IgT3BlblR5cGUgZm9udHMgd2l0aCBUcnVlVHlwZSBvdXRsaW5lcwp2YXIgUENMVCA9IG5ldyByLlN0cnVjdCh7CiAgdmVyc2lvbjogci51aW50MTYsCiAgZm9udE51bWJlcjogci51aW50MzIsCiAgcGl0Y2g6IHIudWludDE2LAogIHhIZWlnaHQ6IHIudWludDE2LAogIHN0eWxlOiByLnVpbnQxNiwKICB0eXBlRmFtaWx5OiByLnVpbnQxNiwKICBjYXBIZWlnaHQ6IHIudWludDE2LAogIHN5bWJvbFNldDogci51aW50MTYsCiAgdHlwZWZhY2U6IG5ldyByLlN0cmluZygxNiksCiAgY2hhcmFjdGVyQ29tcGxlbWVudDogbmV3IHIuU3RyaW5nKDgpLAogIGZpbGVOYW1lOiBuZXcgci5TdHJpbmcoNiksCiAgc3Ryb2tlV2VpZ2h0OiBuZXcgci5TdHJpbmcoMSksCiAgd2lkdGhUeXBlOiBuZXcgci5TdHJpbmcoMSksCiAgc2VyaWZTdHlsZTogci51aW50OCwKICByZXNlcnZlZDogbmV3IHIuUmVzZXJ2ZWQoci51aW50OCkKfSk7CgovLyBWRE1YIHRhYmxlcyBjb250YWluIGFzY2VuZGVyL2Rlc2NlbmRlciBvdmVycmlkZXMgZm9yIGNlcnRhaW4gKHVzdWFsbHkgc21hbGwpCi8vIHNpemVzLiBUaGlzIGlzIG5lZWRlZCBpbiBvcmRlciB0byBtYXRjaCBmb250IG1ldHJpY3Mgb24gV2luZG93cy4KCnZhciBSYXRpbyA9IG5ldyByLlN0cnVjdCh7CiAgYkNoYXJTZXQ6IHIudWludDgsIC8vIENoYXJhY3RlciBzZXQKICB4UmF0aW86IHIudWludDgsIC8vIFZhbHVlIHRvIHVzZSBmb3IgeC1SYXRpbwogIHlTdGFydFJhdGlvOiByLnVpbnQ4LCAvLyBTdGFydGluZyB5LVJhdGlvIHZhbHVlCiAgeUVuZFJhdGlvOiByLnVpbnQ4IC8vIEVuZGluZyB5LVJhdGlvIHZhbHVlCn0pOwoKdmFyIHZUYWJsZSA9IG5ldyByLlN0cnVjdCh7CiAgeVBlbEhlaWdodDogci51aW50MTYsIC8vIHlQZWxIZWlnaHQgdG8gd2hpY2ggdmFsdWVzIGFwcGx5CiAgeU1heDogci5pbnQxNiwgLy8gTWF4aW11bSB2YWx1ZSAoaW4gcGVscykgZm9yIHRoaXMgeVBlbEhlaWdodAogIHlNaW46IHIuaW50MTYgLy8gTWluaW11bSB2YWx1ZSAoaW4gcGVscykgZm9yIHRoaXMgeVBlbEhlaWdodAp9KTsKCnZhciBWZG14R3JvdXAgPSBuZXcgci5TdHJ1Y3QoewogIHJlY3M6IHIudWludDE2LCAvLyBOdW1iZXIgb2YgaGVpZ2h0IHJlY29yZHMgaW4gdGhpcyBncm91cAogIHN0YXJ0c3o6IHIudWludDgsIC8vIFN0YXJ0aW5nIHlQZWxIZWlnaHQKICBlbmRzejogci51aW50OCwgLy8gRW5kaW5nIHlQZWxIZWlnaHQKICBlbnRyaWVzOiBuZXcgci5BcnJheSh2VGFibGUsICdyZWNzJykgLy8gVGhlIFZETVggcmVjb3Jkcwp9KTsKCnZhciBWRE1YID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLnVpbnQxNiwgLy8gVmVyc2lvbiBudW1iZXIgKDAgb3IgMSkKICBudW1SZWNzOiByLnVpbnQxNiwgLy8gTnVtYmVyIG9mIFZETVggZ3JvdXBzIHByZXNlbnQKICBudW1SYXRpb3M6IHIudWludDE2LCAvLyBOdW1iZXIgb2YgYXNwZWN0IHJhdGlvIGdyb3VwaW5ncwogIHJhdGlvUmFuZ2VzOiBuZXcgci5BcnJheShSYXRpbywgJ251bVJhdGlvcycpLCAvLyBSYXRpbyByYW5nZXMKICBvZmZzZXRzOiBuZXcgci5BcnJheShyLnVpbnQxNiwgJ251bVJhdGlvcycpLCAvLyBPZmZzZXQgdG8gdGhlIFZETVggZ3JvdXAgZm9yIHRoaXMgcmF0aW8gcmFuZ2UKICBncm91cHM6IG5ldyByLkFycmF5KFZkbXhHcm91cCwgJ251bVJlY3MnKSAvLyBUaGUgYWN0dWFsIFZETVggZ3JvdXBpbmdzCn0pOwoKLy8gVmVydGljYWwgSGVhZGVyIFRhYmxlCnZhciB2aGVhID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLnVpbnQxNiwgLy8gVmVyc2lvbiBudW1iZXIgb2YgdGhlIFZlcnRpY2FsIEhlYWRlciBUYWJsZQogIGFzY2VudDogci5pbnQxNiwgLy8gVGhlIHZlcnRpY2FsIHR5cG9ncmFwaGljIGFzY2VuZGVyIGZvciB0aGlzIGZvbnQKICBkZXNjZW50OiByLmludDE2LCAvLyBUaGUgdmVydGljYWwgdHlwb2dyYXBoaWMgZGVzY2VuZGVyIGZvciB0aGlzIGZvbnQKICBsaW5lR2FwOiByLmludDE2LCAvLyBUaGUgdmVydGljYWwgdHlwb2dyYXBoaWMgbGluZSBnYXAgZm9yIHRoaXMgZm9udAogIGFkdmFuY2VIZWlnaHRNYXg6IHIuaW50MTYsIC8vIFRoZSBtYXhpbXVtIGFkdmFuY2UgaGVpZ2h0IG1lYXN1cmVtZW50IGZvdW5kIGluIHRoZSBmb250CiAgbWluVG9wU2lkZUJlYXJpbmc6IHIuaW50MTYsIC8vIFRoZSBtaW5pbXVtIHRvcCBzaWRlIGJlYXJpbmcgbWVhc3VyZW1lbnQgZm91bmQgaW4gdGhlIGZvbnQKICBtaW5Cb3R0b21TaWRlQmVhcmluZzogci5pbnQxNiwgLy8gVGhlIG1pbmltdW0gYm90dG9tIHNpZGUgYmVhcmluZyBtZWFzdXJlbWVudCBmb3VuZCBpbiB0aGUgZm9udAogIHlNYXhFeHRlbnQ6IHIuaW50MTYsCiAgY2FyZXRTbG9wZVJpc2U6IHIuaW50MTYsIC8vIENhcmV0IHNsb3BlIChyaXNlL3J1bikKICBjYXJldFNsb3BlUnVuOiByLmludDE2LAogIGNhcmV0T2Zmc2V0OiByLmludDE2LCAvLyBTZXQgdmFsdWUgZXF1YWwgdG8gMCBmb3Igbm9uc2xhbnRlZCBmb250cwogIHJlc2VydmVkOiBuZXcgci5SZXNlcnZlZChyLmludDE2LCA0KSwKICBtZXRyaWNEYXRhRm9ybWF0OiByLmludDE2LCAvLyBTZXQgdG8gMAogIG51bWJlck9mTWV0cmljczogci51aW50MTYgLy8gTnVtYmVyIG9mIGFkdmFuY2UgaGVpZ2h0cyBpbiB0aGUgVmVydGljYWwgTWV0cmljcyB0YWJsZQp9KTsKCnZhciBWbXR4RW50cnkgPSBuZXcgci5TdHJ1Y3QoewogIGFkdmFuY2U6IHIudWludDE2LCAvLyBUaGUgYWR2YW5jZSBoZWlnaHQgb2YgdGhlIGdseXBoCiAgYmVhcmluZzogci5pbnQxNiAvLyBUaGUgdG9wIHNpZGViZWFyaW5nIG9mIHRoZSBnbHlwaAp9KTsKCi8vIFZlcnRpY2FsIE1ldHJpY3MgVGFibGUKdmFyIHZtdHggPSBuZXcgci5TdHJ1Y3QoewogIG1ldHJpY3M6IG5ldyByLkxhenlBcnJheShWbXR4RW50cnksIGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC5wYXJlbnQudmhlYS5udW1iZXJPZk1ldHJpY3M7CiAgfSksCiAgYmVhcmluZ3M6IG5ldyByLkxhenlBcnJheShyLmludDE2LCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQucGFyZW50Lm1heHAubnVtR2x5cGhzIC0gdC5wYXJlbnQudmhlYS5udW1iZXJPZk1ldHJpY3M7CiAgfSkKfSk7Cgp2YXIgc2hvcnRGcmFjID0gbmV3IHIuRml4ZWQoMTYsICdCRScsIDE0KTsKCnZhciBDb3JyZXNwb25kZW5jZSA9IG5ldyByLlN0cnVjdCh7CiAgZnJvbUNvb3JkOiBzaG9ydEZyYWMsCiAgdG9Db29yZDogc2hvcnRGcmFjCn0pOwoKdmFyIFNlZ21lbnQgPSBuZXcgci5TdHJ1Y3QoewogIHBhaXJDb3VudDogci51aW50MTYsCiAgY29ycmVzcG9uZGVuY2U6IG5ldyByLkFycmF5KENvcnJlc3BvbmRlbmNlLCAncGFpckNvdW50JykKfSk7Cgp2YXIgYXZhciA9IG5ldyByLlN0cnVjdCh7CiAgdmVyc2lvbjogci5maXhlZDMyLAogIGF4aXNDb3VudDogci51aW50MzIsCiAgc2VnbWVudDogbmV3IHIuQXJyYXkoU2VnbWVudCwgJ2F4aXNDb3VudCcpCn0pOwoKdmFyIFVuYm91bmRlZEFycmF5QWNjZXNzb3IgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gVW5ib3VuZGVkQXJyYXlBY2Nlc3Nvcih0eXBlLCBzdHJlYW0sIHBhcmVudCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVuYm91bmRlZEFycmF5QWNjZXNzb3IpOwoKICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICB0aGlzLnN0cmVhbSA9IHN0cmVhbTsKICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgdGhpcy5iYXNlID0gdGhpcy5zdHJlYW0ucG9zOwogICAgdGhpcy5faXRlbXMgPSBbXTsKICB9CgogIFVuYm91bmRlZEFycmF5QWNjZXNzb3IucHJvdG90eXBlLmdldEl0ZW0gPSBmdW5jdGlvbiBnZXRJdGVtKGluZGV4KSB7CiAgICBpZiAodGhpcy5faXRlbXNbaW5kZXhdID09IG51bGwpIHsKICAgICAgdmFyIHBvcyA9IHRoaXMuc3RyZWFtLnBvczsKICAgICAgdGhpcy5zdHJlYW0ucG9zID0gdGhpcy5iYXNlICsgdGhpcy50eXBlLnNpemUobnVsbCwgdGhpcy5wYXJlbnQpICogaW5kZXg7CiAgICAgIHRoaXMuX2l0ZW1zW2luZGV4XSA9IHRoaXMudHlwZS5kZWNvZGUodGhpcy5zdHJlYW0sIHRoaXMucGFyZW50KTsKICAgICAgdGhpcy5zdHJlYW0ucG9zID0gcG9zOwogICAgfQoKICAgIHJldHVybiB0aGlzLl9pdGVtc1tpbmRleF07CiAgfTsKCiAgVW5ib3VuZGVkQXJyYXlBY2Nlc3Nvci5wcm90b3R5cGUuaW5zcGVjdCA9IGZ1bmN0aW9uIGluc3BlY3QoKSB7CiAgICByZXR1cm4gJ1tVbmJvdW5kZWRBcnJheSAnICsgdGhpcy50eXBlLmNvbnN0cnVjdG9yLm5hbWUgKyAnXSc7CiAgfTsKCiAgcmV0dXJuIFVuYm91bmRlZEFycmF5QWNjZXNzb3I7Cn0oKTsKCnZhciBVbmJvdW5kZWRBcnJheSA9IGZ1bmN0aW9uIChfciRBcnJheSkgewogIF9pbmhlcml0cyhVbmJvdW5kZWRBcnJheSwgX3IkQXJyYXkpOwoKICBmdW5jdGlvbiBVbmJvdW5kZWRBcnJheSh0eXBlKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVW5ib3VuZGVkQXJyYXkpOwoKICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfciRBcnJheS5jYWxsKHRoaXMsIHR5cGUsIDApKTsKICB9CgogIFVuYm91bmRlZEFycmF5LnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbiBkZWNvZGUoc3RyZWFtLCBwYXJlbnQpIHsKICAgIHJldHVybiBuZXcgVW5ib3VuZGVkQXJyYXlBY2Nlc3Nvcih0aGlzLnR5cGUsIHN0cmVhbSwgcGFyZW50KTsKICB9OwoKICByZXR1cm4gVW5ib3VuZGVkQXJyYXk7Cn0oci5BcnJheSk7Cgp2YXIgTG9va3VwVGFibGUgPSBmdW5jdGlvbiBMb29rdXBUYWJsZSgpIHsKICB2YXIgVmFsdWVUeXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiByLnVpbnQxNjsKCiAgLy8gSGVscGVyIGNsYXNzIHRoYXQgbWFrZXMgaW50ZXJuYWwgc3RydWN0dXJlcyBpbnZpc2libGUgdG8gcG9pbnRlcnMKICB2YXIgU2hhZG93ID0gZnVuY3Rpb24gKCkgewogICAgZnVuY3Rpb24gU2hhZG93KHR5cGUpIHsKICAgICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFNoYWRvdyk7CgogICAgICB0aGlzLnR5cGUgPSB0eXBlOwogICAgfQoKICAgIFNoYWRvdy5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24gZGVjb2RlKHN0cmVhbSwgY3R4KSB7CiAgICAgIGN0eCA9IGN0eC5wYXJlbnQucGFyZW50OwogICAgICByZXR1cm4gdGhpcy50eXBlLmRlY29kZShzdHJlYW0sIGN0eCk7CiAgICB9OwoKICAgIFNoYWRvdy5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uIHNpemUodmFsLCBjdHgpIHsKICAgICAgY3R4ID0gY3R4LnBhcmVudC5wYXJlbnQ7CiAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZSh2YWwsIGN0eCk7CiAgICB9OwoKICAgIFNoYWRvdy5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKHN0cmVhbSwgdmFsLCBjdHgpIHsKICAgICAgY3R4ID0gY3R4LnBhcmVudC5wYXJlbnQ7CiAgICAgIHJldHVybiB0aGlzLnR5cGUuZW5jb2RlKHN0cmVhbSwgdmFsLCBjdHgpOwogICAgfTsKCiAgICByZXR1cm4gU2hhZG93OwogIH0oKTsKCiAgVmFsdWVUeXBlID0gbmV3IFNoYWRvdyhWYWx1ZVR5cGUpOwoKICB2YXIgQmluYXJ5U2VhcmNoSGVhZGVyID0gbmV3IHIuU3RydWN0KHsKICAgIHVuaXRTaXplOiByLnVpbnQxNiwKICAgIG5Vbml0czogci51aW50MTYsCiAgICBzZWFyY2hSYW5nZTogci51aW50MTYsCiAgICBlbnRyeVNlbGVjdG9yOiByLnVpbnQxNiwKICAgIHJhbmdlU2hpZnQ6IHIudWludDE2CiAgfSk7CgogIHZhciBMb29rdXBTZWdtZW50U2luZ2xlID0gbmV3IHIuU3RydWN0KHsKICAgIGxhc3RHbHlwaDogci51aW50MTYsCiAgICBmaXJzdEdseXBoOiByLnVpbnQxNiwKICAgIHZhbHVlOiBWYWx1ZVR5cGUKICB9KTsKCiAgdmFyIExvb2t1cFNlZ21lbnRBcnJheSA9IG5ldyByLlN0cnVjdCh7CiAgICBsYXN0R2x5cGg6IHIudWludDE2LAogICAgZmlyc3RHbHlwaDogci51aW50MTYsCiAgICB2YWx1ZXM6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIG5ldyByLkFycmF5KFZhbHVlVHlwZSwgZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQubGFzdEdseXBoIC0gdC5maXJzdEdseXBoICsgMTsKICAgIH0pLCB7IHR5cGU6ICdwYXJlbnQnIH0pCiAgfSk7CgogIHZhciBMb29rdXBTaW5nbGUgPSBuZXcgci5TdHJ1Y3QoewogICAgZ2x5cGg6IHIudWludDE2LAogICAgdmFsdWU6IFZhbHVlVHlwZQogIH0pOwoKICByZXR1cm4gbmV3IHIuVmVyc2lvbmVkU3RydWN0KHIudWludDE2LCB7CiAgICAwOiB7CiAgICAgIHZhbHVlczogbmV3IFVuYm91bmRlZEFycmF5KFZhbHVlVHlwZSkgLy8gbGVuZ3RoID09IG51bWJlciBvZiBnbHlwaHMgbWF5YmU/CiAgICB9LAogICAgMjogewogICAgICBiaW5hcnlTZWFyY2hIZWFkZXI6IEJpbmFyeVNlYXJjaEhlYWRlciwKICAgICAgc2VnbWVudHM6IG5ldyByLkFycmF5KExvb2t1cFNlZ21lbnRTaW5nbGUsIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgcmV0dXJuIHQuYmluYXJ5U2VhcmNoSGVhZGVyLm5Vbml0czsKICAgICAgfSkKICAgIH0sCiAgICA0OiB7CiAgICAgIGJpbmFyeVNlYXJjaEhlYWRlcjogQmluYXJ5U2VhcmNoSGVhZGVyLAogICAgICBzZWdtZW50czogbmV3IHIuQXJyYXkoTG9va3VwU2VnbWVudEFycmF5LCBmdW5jdGlvbiAodCkgewogICAgICAgIHJldHVybiB0LmJpbmFyeVNlYXJjaEhlYWRlci5uVW5pdHM7CiAgICAgIH0pCiAgICB9LAogICAgNjogewogICAgICBiaW5hcnlTZWFyY2hIZWFkZXI6IEJpbmFyeVNlYXJjaEhlYWRlciwKICAgICAgc2VnbWVudHM6IG5ldyByLkFycmF5KExvb2t1cFNpbmdsZSwgZnVuY3Rpb24gKHQpIHsKICAgICAgICByZXR1cm4gdC5iaW5hcnlTZWFyY2hIZWFkZXIublVuaXRzOwogICAgICB9KQogICAgfSwKICAgIDg6IHsKICAgICAgZmlyc3RHbHlwaDogci51aW50MTYsCiAgICAgIGNvdW50OiByLnVpbnQxNiwKICAgICAgdmFsdWVzOiBuZXcgci5BcnJheShWYWx1ZVR5cGUsICdjb3VudCcpCiAgICB9CiAgfSk7Cn07CgpmdW5jdGlvbiBTdGF0ZVRhYmxlKCkgewogIHZhciBlbnRyeURhdGEgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9OwogIHZhciBsb29rdXBUeXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiByLnVpbnQxNjsKCiAgdmFyIGVudHJ5ID0gX09iamVjdCRhc3NpZ24oewogICAgbmV3U3RhdGU6IHIudWludDE2LAogICAgZmxhZ3M6IHIudWludDE2CiAgfSwgZW50cnlEYXRhKTsKCiAgdmFyIEVudHJ5ID0gbmV3IHIuU3RydWN0KGVudHJ5KTsKICB2YXIgU3RhdGVBcnJheSA9IG5ldyBVbmJvdW5kZWRBcnJheShuZXcgci5BcnJheShyLnVpbnQxNiwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB0Lm5DbGFzc2VzOwogIH0pKTsKCiAgdmFyIFN0YXRlSGVhZGVyID0gbmV3IHIuU3RydWN0KHsKICAgIG5DbGFzc2VzOiByLnVpbnQzMiwKICAgIGNsYXNzVGFibGU6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyBMb29rdXBUYWJsZShsb29rdXBUeXBlKSksCiAgICBzdGF0ZUFycmF5OiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBTdGF0ZUFycmF5KSwKICAgIGVudHJ5VGFibGU6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyBVbmJvdW5kZWRBcnJheShFbnRyeSkpCiAgfSk7CgogIHJldHVybiBTdGF0ZUhlYWRlcjsKfQoKLy8gVGhpcyBpcyB0aGUgb2xkIHZlcnNpb24gb2YgdGhlIFN0YXRlVGFibGUgc3RydWN0dXJlCmZ1bmN0aW9uIFN0YXRlVGFibGUxKCkgewogIHZhciBlbnRyeURhdGEgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9OwogIHZhciBsb29rdXBUeXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiByLnVpbnQxNjsKCiAgdmFyIENsYXNzTG9va3VwVGFibGUgPSBuZXcgci5TdHJ1Y3QoewogICAgdmVyc2lvbjogZnVuY3Rpb24gdmVyc2lvbigpIHsKICAgICAgcmV0dXJuIDg7CiAgICB9LAogICAgLy8gc2ltdWxhdGUgTG9va3VwVGFibGUKICAgIGZpcnN0R2x5cGg6IHIudWludDE2LAogICAgdmFsdWVzOiBuZXcgci5BcnJheShyLnVpbnQ4LCByLnVpbnQxNikKICB9KTsKCiAgdmFyIGVudHJ5ID0gX09iamVjdCRhc3NpZ24oewogICAgbmV3U3RhdGVPZmZzZXQ6IHIudWludDE2LAogICAgLy8gY29udmVydCBvZmZzZXQgdG8gc3RhdGVBcnJheSBpbmRleAogICAgbmV3U3RhdGU6IGZ1bmN0aW9uIG5ld1N0YXRlKHQpIHsKICAgICAgcmV0dXJuICh0Lm5ld1N0YXRlT2Zmc2V0IC0gKHQucGFyZW50LnN0YXRlQXJyYXkuYmFzZSAtIHQucGFyZW50Ll9zdGFydE9mZnNldCkpIC8gdC5wYXJlbnQubkNsYXNzZXM7CiAgICB9LAogICAgZmxhZ3M6IHIudWludDE2CiAgfSwgZW50cnlEYXRhKTsKCiAgdmFyIEVudHJ5ID0gbmV3IHIuU3RydWN0KGVudHJ5KTsKICB2YXIgU3RhdGVBcnJheSA9IG5ldyBVbmJvdW5kZWRBcnJheShuZXcgci5BcnJheShyLnVpbnQ4LCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQubkNsYXNzZXM7CiAgfSkpOwoKICB2YXIgU3RhdGVIZWFkZXIxID0gbmV3IHIuU3RydWN0KHsKICAgIG5DbGFzc2VzOiByLnVpbnQxNiwKICAgIGNsYXNzVGFibGU6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENsYXNzTG9va3VwVGFibGUpLAogICAgc3RhdGVBcnJheTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgU3RhdGVBcnJheSksCiAgICBlbnRyeVRhYmxlOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBuZXcgVW5ib3VuZGVkQXJyYXkoRW50cnkpKQogIH0pOwoKICByZXR1cm4gU3RhdGVIZWFkZXIxOwp9Cgp2YXIgQnNsblN1YnRhYmxlID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KCdmb3JtYXQnLCB7CiAgMDogeyAvLyBEaXN0YW5jZS1iYXNlZCwgbm8gbWFwcGluZwogICAgZGVsdGFzOiBuZXcgci5BcnJheShyLmludDE2LCAzMikKICB9LAoKICAxOiB7IC8vIERpc3RhbmNlLWJhc2VkLCB3aXRoIG1hcHBpbmcKICAgIGRlbHRhczogbmV3IHIuQXJyYXkoci5pbnQxNiwgMzIpLAogICAgbWFwcGluZ0RhdGE6IG5ldyBMb29rdXBUYWJsZShyLnVpbnQxNikKICB9LAoKICAyOiB7IC8vIENvbnRyb2wgcG9pbnQtYmFzZWQsIG5vIG1hcHBpbmcKICAgIHN0YW5kYXJkR2x5cGg6IHIudWludDE2LAogICAgY29udHJvbFBvaW50czogbmV3IHIuQXJyYXkoci51aW50MTYsIDMyKQogIH0sCgogIDM6IHsgLy8gQ29udHJvbCBwb2ludC1iYXNlZCwgd2l0aCBtYXBwaW5nCiAgICBzdGFuZGFyZEdseXBoOiByLnVpbnQxNiwKICAgIGNvbnRyb2xQb2ludHM6IG5ldyByLkFycmF5KHIudWludDE2LCAzMiksCiAgICBtYXBwaW5nRGF0YTogbmV3IExvb2t1cFRhYmxlKHIudWludDE2KQogIH0KfSk7Cgp2YXIgYnNsbiA9IG5ldyByLlN0cnVjdCh7CiAgdmVyc2lvbjogci5maXhlZDMyLAogIGZvcm1hdDogci51aW50MTYsCiAgZGVmYXVsdEJhc2VsaW5lOiByLnVpbnQxNiwKICBzdWJ0YWJsZTogQnNsblN1YnRhYmxlCn0pOwoKdmFyIFNldHRpbmcgPSBuZXcgci5TdHJ1Y3QoewogIHNldHRpbmc6IHIudWludDE2LAogIG5hbWVJbmRleDogci5pbnQxNiwKICBuYW1lOiBmdW5jdGlvbiBuYW1lKHQpIHsKICAgIHJldHVybiB0LnBhcmVudC5wYXJlbnQucGFyZW50Lm5hbWUucmVjb3Jkcy5mb250RmVhdHVyZXNbdC5uYW1lSW5kZXhdOwogIH0KfSk7Cgp2YXIgRmVhdHVyZU5hbWUgPSBuZXcgci5TdHJ1Y3QoewogIGZlYXR1cmU6IHIudWludDE2LAogIG5TZXR0aW5nczogci51aW50MTYsCiAgc2V0dGluZ1RhYmxlOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBuZXcgci5BcnJheShTZXR0aW5nLCAnblNldHRpbmdzJyksIHsgdHlwZTogJ3BhcmVudCcgfSksCiAgZmVhdHVyZUZsYWdzOiBuZXcgci5CaXRmaWVsZChyLnVpbnQ4LCBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgJ2hhc0RlZmF1bHQnLCAnZXhjbHVzaXZlJ10pLAogIGRlZmF1bHRTZXR0aW5nOiByLnVpbnQ4LAogIG5hbWVJbmRleDogci5pbnQxNiwKICBuYW1lOiBmdW5jdGlvbiBuYW1lKHQpIHsKICAgIHJldHVybiB0LnBhcmVudC5wYXJlbnQubmFtZS5yZWNvcmRzLmZvbnRGZWF0dXJlc1t0Lm5hbWVJbmRleF07CiAgfQp9KTsKCnZhciBmZWF0ID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLmZpeGVkMzIsCiAgZmVhdHVyZU5hbWVDb3VudDogci51aW50MTYsCiAgcmVzZXJ2ZWQxOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiksCiAgcmVzZXJ2ZWQyOiBuZXcgci5SZXNlcnZlZChyLnVpbnQzMiksCiAgZmVhdHVyZU5hbWVzOiBuZXcgci5BcnJheShGZWF0dXJlTmFtZSwgJ2ZlYXR1cmVOYW1lQ291bnQnKQp9KTsKCnZhciBBeGlzJDEgPSBuZXcgci5TdHJ1Y3QoewogIGF4aXNUYWc6IG5ldyByLlN0cmluZyg0KSwKICBtaW5WYWx1ZTogci5maXhlZDMyLAogIGRlZmF1bHRWYWx1ZTogci5maXhlZDMyLAogIG1heFZhbHVlOiByLmZpeGVkMzIsCiAgZmxhZ3M6IHIudWludDE2LAogIG5hbWVJRDogci51aW50MTYsCiAgbmFtZTogZnVuY3Rpb24gbmFtZSh0KSB7CiAgICByZXR1cm4gdC5wYXJlbnQucGFyZW50Lm5hbWUucmVjb3Jkcy5mb250RmVhdHVyZXNbdC5uYW1lSURdOwogIH0KfSk7Cgp2YXIgSW5zdGFuY2UgPSBuZXcgci5TdHJ1Y3QoewogIG5hbWVJRDogci51aW50MTYsCiAgbmFtZTogZnVuY3Rpb24gbmFtZSh0KSB7CiAgICByZXR1cm4gdC5wYXJlbnQucGFyZW50Lm5hbWUucmVjb3Jkcy5mb250RmVhdHVyZXNbdC5uYW1lSURdOwogIH0sCiAgZmxhZ3M6IHIudWludDE2LAogIGNvb3JkOiBuZXcgci5BcnJheShyLmZpeGVkMzIsIGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC5wYXJlbnQuYXhpc0NvdW50OwogIH0pLAogIHBvc3RzY3JpcHROYW1lSUQ6IG5ldyByLk9wdGlvbmFsKHIudWludDE2LCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQucGFyZW50Lmluc3RhbmNlU2l6ZSAtIHQuX2N1cnJlbnRPZmZzZXQgPiAwOwogIH0pCn0pOwoKdmFyIGZ2YXIgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIuZml4ZWQzMiwKICBvZmZzZXRUb0RhdGE6IHIudWludDE2LAogIGNvdW50U2l6ZVBhaXJzOiByLnVpbnQxNiwKICBheGlzQ291bnQ6IHIudWludDE2LAogIGF4aXNTaXplOiByLnVpbnQxNiwKICBpbnN0YW5jZUNvdW50OiByLnVpbnQxNiwKICBpbnN0YW5jZVNpemU6IHIudWludDE2LAogIGF4aXM6IG5ldyByLkFycmF5KEF4aXMkMSwgJ2F4aXNDb3VudCcpLAogIGluc3RhbmNlOiBuZXcgci5BcnJheShJbnN0YW5jZSwgJ2luc3RhbmNlQ291bnQnKQp9KTsKCnZhciBzaG9ydEZyYWMkMSA9IG5ldyByLkZpeGVkKDE2LCAnQkUnLCAxNCk7Cgp2YXIgT2Zmc2V0ID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIE9mZnNldCgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBPZmZzZXQpOwogIH0KCiAgT2Zmc2V0LmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShzdHJlYW0sIHBhcmVudCkgewogICAgLy8gSW4gc2hvcnQgZm9ybWF0LCBvZmZzZXRzIGFyZSBtdWx0aXBsaWVkIGJ5IDIuCiAgICAvLyBUaGlzIGRvZXNuJ3Qgc2VlbSB0byBiZSBkb2N1bWVudGVkIGJ5IEFwcGxlLCBidXQgaXQKICAgIC8vIGlzIGltcGxlbWVudGVkIHRoaXMgd2F5IGluIEZyZWV0eXBlLgogICAgcmV0dXJuIHBhcmVudC5mbGFncyA/IHN0cmVhbS5yZWFkVUludDMyQkUoKSA6IHN0cmVhbS5yZWFkVUludDE2QkUoKSAqIDI7CiAgfTsKCiAgcmV0dXJuIE9mZnNldDsKfSgpOwoKdmFyIGd2YXIgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIudWludDE2LAogIHJlc2VydmVkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiksCiAgYXhpc0NvdW50OiByLnVpbnQxNiwKICBnbG9iYWxDb29yZENvdW50OiByLnVpbnQxNiwKICBnbG9iYWxDb29yZHM6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyByLkFycmF5KG5ldyByLkFycmF5KHNob3J0RnJhYyQxLCAnYXhpc0NvdW50JyksICdnbG9iYWxDb29yZENvdW50JykpLAogIGdseXBoQ291bnQ6IHIudWludDE2LAogIGZsYWdzOiByLnVpbnQxNiwKICBvZmZzZXRUb0RhdGE6IHIudWludDMyLAogIG9mZnNldHM6IG5ldyByLkFycmF5KG5ldyByLlBvaW50ZXIoT2Zmc2V0LCAndm9pZCcsIHsgcmVsYXRpdmVUbzogJ29mZnNldFRvRGF0YScsIGFsbG93TnVsbDogZmFsc2UgfSksIGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC5nbHlwaENvdW50ICsgMTsKICB9KQp9KTsKCnZhciBDbGFzc1RhYmxlJDEgPSBuZXcgci5TdHJ1Y3QoewogIGxlbmd0aDogci51aW50MTYsCiAgY292ZXJhZ2U6IHIudWludDE2LAogIHN1YkZlYXR1cmVGbGFnczogci51aW50MzIsCiAgc3RhdGVUYWJsZTogbmV3IFN0YXRlVGFibGUxKCkKfSk7Cgp2YXIgV2lkdGhEZWx0YVJlY29yZCA9IG5ldyByLlN0cnVjdCh7CiAganVzdENsYXNzOiByLnVpbnQzMiwKICBiZWZvcmVHcm93TGltaXQ6IHIuZml4ZWQzMiwKICBiZWZvcmVTaHJpbmtMaW1pdDogci5maXhlZDMyLAogIGFmdGVyR3Jvd0xpbWl0OiByLmZpeGVkMzIsCiAgYWZ0ZXJTaHJpbmtMaW1pdDogci5maXhlZDMyLAogIGdyb3dGbGFnczogci51aW50MTYsCiAgc2hyaW5rRmxhZ3M6IHIudWludDE2Cn0pOwoKdmFyIFdpZHRoRGVsdGFDbHVzdGVyID0gbmV3IHIuQXJyYXkoV2lkdGhEZWx0YVJlY29yZCwgci51aW50MzIpOwoKdmFyIEFjdGlvbkRhdGEgPSBuZXcgci5WZXJzaW9uZWRTdHJ1Y3QoJ2FjdGlvblR5cGUnLCB7CiAgMDogeyAvLyBEZWNvbXBvc2l0aW9uIGFjdGlvbgogICAgbG93ZXJMaW1pdDogci5maXhlZDMyLAogICAgdXBwZXJMaW1pdDogci5maXhlZDMyLAogICAgb3JkZXI6IHIudWludDE2LAogICAgZ2x5cGhzOiBuZXcgci5BcnJheShyLnVpbnQxNiwgci51aW50MTYpCiAgfSwKCiAgMTogeyAvLyBVbmNvbmRpdGlvbmFsIGFkZCBnbHlwaCBhY3Rpb24KICAgIGFkZEdseXBoOiByLnVpbnQxNgogIH0sCgogIDI6IHsgLy8gQ29uZGl0aW9uYWwgYWRkIGdseXBoIGFjdGlvbgogICAgc3Vic3RUaHJlc2hvbGQ6IHIuZml4ZWQzMiwKICAgIGFkZEdseXBoOiByLnVpbnQxNiwKICAgIHN1YnN0R2x5cGg6IHIudWludDE2CiAgfSwKCiAgMzoge30sIC8vIFN0cmV0Y2ggZ2x5cGggYWN0aW9uIChubyBkYXRhLCBub3Qgc3VwcG9ydGVkIGJ5IENvcmVUZXh0KQoKICA0OiB7IC8vIER1Y3RpbGUgZ2x5cGggYWN0aW9uIChub3Qgc3VwcG9ydGVkIGJ5IENvcmVUZXh0KQogICAgdmFyaWF0aW9uQXhpczogci51aW50MzIsCiAgICBtaW5pbXVtTGltaXQ6IHIuZml4ZWQzMiwKICAgIG5vU3RyZXRjaFZhbHVlOiByLmZpeGVkMzIsCiAgICBtYXhpbXVtTGltaXQ6IHIuZml4ZWQzMgogIH0sCgogIDU6IHsgLy8gUmVwZWF0ZWQgYWRkIGdseXBoIGFjdGlvbgogICAgZmxhZ3M6IHIudWludDE2LAogICAgZ2x5cGg6IHIudWludDE2CiAgfQp9KTsKCnZhciBBY3Rpb24gPSBuZXcgci5TdHJ1Y3QoewogIGFjdGlvbkNsYXNzOiByLnVpbnQxNiwKICBhY3Rpb25UeXBlOiByLnVpbnQxNiwKICBhY3Rpb25MZW5ndGg6IHIudWludDMyLAogIGFjdGlvbkRhdGE6IEFjdGlvbkRhdGEsCiAgcGFkZGluZzogbmV3IHIuUmVzZXJ2ZWQoci51aW50OCwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB0LmFjdGlvbkxlbmd0aCAtIHQuX2N1cnJlbnRPZmZzZXQ7CiAgfSkKfSk7Cgp2YXIgUG9zdGNvbXBlbnNhdGlvbkFjdGlvbiA9IG5ldyByLkFycmF5KEFjdGlvbiwgci51aW50MzIpOwp2YXIgUG9zdENvbXBlbnNhdGlvblRhYmxlID0gbmV3IHIuU3RydWN0KHsKICBsb29rdXBUYWJsZTogbmV3IExvb2t1cFRhYmxlKG5ldyByLlBvaW50ZXIoci51aW50MTYsIFBvc3Rjb21wZW5zYXRpb25BY3Rpb24pKQp9KTsKCnZhciBKdXN0aWZpY2F0aW9uVGFibGUgPSBuZXcgci5TdHJ1Y3QoewogIGNsYXNzVGFibGU6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIENsYXNzVGFibGUkMSwgeyB0eXBlOiAncGFyZW50JyB9KSwKICB3ZGNPZmZzZXQ6IHIudWludDE2LAogIHBvc3RDb21wZW5zYXRpb25UYWJsZTogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgUG9zdENvbXBlbnNhdGlvblRhYmxlLCB7IHR5cGU6ICdwYXJlbnQnIH0pLAogIHdpZHRoRGVsdGFDbHVzdGVyczogbmV3IExvb2t1cFRhYmxlKG5ldyByLlBvaW50ZXIoci51aW50MTYsIFdpZHRoRGVsdGFDbHVzdGVyLCB7IHR5cGU6ICdwYXJlbnQnLCByZWxhdGl2ZVRvOiAnd2RjT2Zmc2V0JyB9KSkKfSk7Cgp2YXIganVzdCA9IG5ldyByLlN0cnVjdCh7CiAgdmVyc2lvbjogci51aW50MzIsCiAgZm9ybWF0OiByLnVpbnQxNiwKICBob3Jpem9udGFsOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBKdXN0aWZpY2F0aW9uVGFibGUpLAogIHZlcnRpY2FsOiBuZXcgci5Qb2ludGVyKHIudWludDE2LCBKdXN0aWZpY2F0aW9uVGFibGUpCn0pOwoKdmFyIExpZ2F0dXJlRGF0YSA9IHsKICBhY3Rpb246IHIudWludDE2Cn07Cgp2YXIgQ29udGV4dHVhbERhdGEgPSB7CiAgbWFya0luZGV4OiByLnVpbnQxNiwKICBjdXJyZW50SW5kZXg6IHIudWludDE2Cn07Cgp2YXIgSW5zZXJ0aW9uRGF0YSA9IHsKICBjdXJyZW50SW5zZXJ0SW5kZXg6IHIudWludDE2LAogIG1hcmtlZEluc2VydEluZGV4OiByLnVpbnQxNgp9OwoKdmFyIFN1YnN0aXR1dGlvblRhYmxlID0gbmV3IHIuU3RydWN0KHsKICBpdGVtczogbmV3IFVuYm91bmRlZEFycmF5KG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyBMb29rdXBUYWJsZSgpKSkKfSk7Cgp2YXIgU3VidGFibGVEYXRhID0gbmV3IHIuVmVyc2lvbmVkU3RydWN0KCd0eXBlJywgewogIDA6IHsgLy8gSW5kaWMgUmVhcnJhbmdlbWVudCBTdWJ0YWJsZQogICAgc3RhdGVUYWJsZTogbmV3IFN0YXRlVGFibGUoKQogIH0sCgogIDE6IHsgLy8gQ29udGV4dHVhbCBHbHlwaCBTdWJzdGl0dXRpb24gU3VidGFibGUKICAgIHN0YXRlVGFibGU6IG5ldyBTdGF0ZVRhYmxlKENvbnRleHR1YWxEYXRhKSwKICAgIHN1YnN0aXR1dGlvblRhYmxlOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBTdWJzdGl0dXRpb25UYWJsZSkKICB9LAoKICAyOiB7IC8vIExpZ2F0dXJlIHN1YnRhYmxlCiAgICBzdGF0ZVRhYmxlOiBuZXcgU3RhdGVUYWJsZShMaWdhdHVyZURhdGEpLAogICAgbGlnYXR1cmVBY3Rpb25zOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBuZXcgVW5ib3VuZGVkQXJyYXkoci51aW50MzIpKSwKICAgIGNvbXBvbmVudHM6IG5ldyByLlBvaW50ZXIoci51aW50MzIsIG5ldyBVbmJvdW5kZWRBcnJheShyLnVpbnQxNikpLAogICAgbGlnYXR1cmVMaXN0OiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBuZXcgVW5ib3VuZGVkQXJyYXkoci51aW50MTYpKQogIH0sCgogIDQ6IHsgLy8gTm9uLWNvbnRleHR1YWwgR2x5cGggU3Vic3RpdHV0aW9uIFN1YnRhYmxlCiAgICBsb29rdXBUYWJsZTogbmV3IExvb2t1cFRhYmxlKCkKICB9LAoKICA1OiB7IC8vIEdseXBoIEluc2VydGlvbiBTdWJ0YWJsZQogICAgc3RhdGVUYWJsZTogbmV3IFN0YXRlVGFibGUoSW5zZXJ0aW9uRGF0YSksCiAgICBpbnNlcnRpb25BY3Rpb25zOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBuZXcgVW5ib3VuZGVkQXJyYXkoci51aW50MTYpKQogIH0KfSk7Cgp2YXIgU3VidGFibGUgPSBuZXcgci5TdHJ1Y3QoewogIGxlbmd0aDogci51aW50MzIsCiAgY292ZXJhZ2U6IHIudWludDI0LAogIHR5cGU6IHIudWludDgsCiAgc3ViRmVhdHVyZUZsYWdzOiByLnVpbnQzMiwKICB0YWJsZTogU3VidGFibGVEYXRhLAogIHBhZGRpbmc6IG5ldyByLlJlc2VydmVkKHIudWludDgsIGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC5sZW5ndGggLSB0Ll9jdXJyZW50T2Zmc2V0OwogIH0pCn0pOwoKdmFyIEZlYXR1cmVFbnRyeSA9IG5ldyByLlN0cnVjdCh7CiAgZmVhdHVyZVR5cGU6IHIudWludDE2LAogIGZlYXR1cmVTZXR0aW5nOiByLnVpbnQxNiwKICBlbmFibGVGbGFnczogci51aW50MzIsCiAgZGlzYWJsZUZsYWdzOiByLnVpbnQzMgp9KTsKCnZhciBNb3J4Q2hhaW4gPSBuZXcgci5TdHJ1Y3QoewogIGRlZmF1bHRGbGFnczogci51aW50MzIsCiAgY2hhaW5MZW5ndGg6IHIudWludDMyLAogIG5GZWF0dXJlRW50cmllczogci51aW50MzIsCiAgblN1YnRhYmxlczogci51aW50MzIsCiAgZmVhdHVyZXM6IG5ldyByLkFycmF5KEZlYXR1cmVFbnRyeSwgJ25GZWF0dXJlRW50cmllcycpLAogIHN1YnRhYmxlczogbmV3IHIuQXJyYXkoU3VidGFibGUsICduU3VidGFibGVzJykKfSk7Cgp2YXIgbW9yeCA9IG5ldyByLlN0cnVjdCh7CiAgdmVyc2lvbjogci51aW50MTYsCiAgdW51c2VkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiksCiAgbkNoYWluczogci51aW50MzIsCiAgY2hhaW5zOiBuZXcgci5BcnJheShNb3J4Q2hhaW4sICduQ2hhaW5zJykKfSk7Cgp2YXIgT3B0aWNhbEJvdW5kcyA9IG5ldyByLlN0cnVjdCh7CiAgbGVmdDogci5pbnQxNiwKICB0b3A6IHIuaW50MTYsCiAgcmlnaHQ6IHIuaW50MTYsCiAgYm90dG9tOiByLmludDE2Cn0pOwoKdmFyIG9wYmQgPSBuZXcgci5TdHJ1Y3QoewogIHZlcnNpb246IHIuZml4ZWQzMiwKICBmb3JtYXQ6IHIudWludDE2LAogIGxvb2t1cFRhYmxlOiBuZXcgTG9va3VwVGFibGUoT3B0aWNhbEJvdW5kcykKfSk7Cgp2YXIgdGFibGVzID0ge307Ci8vIFJlcXVpcmVkIFRhYmxlcwp0YWJsZXMuY21hcCA9IGNtYXA7CnRhYmxlcy5oZWFkID0gaGVhZDsKdGFibGVzLmhoZWEgPSBoaGVhOwp0YWJsZXMuaG10eCA9IGhtdHg7CnRhYmxlcy5tYXhwID0gbWF4cDsKdGFibGVzLm5hbWUgPSBOYW1lVGFibGU7CnRhYmxlc1snT1MvMiddID0gT1MyOwp0YWJsZXMucG9zdCA9IHBvc3Q7CgovLyBUcnVlVHlwZSBPdXRsaW5lcwp0YWJsZXMuZnBnbSA9IGZwZ207CnRhYmxlcy5sb2NhID0gbG9jYTsKdGFibGVzLnByZXAgPSBwcmVwOwp0YWJsZXNbJ2N2dCAnXSA9IGN2dDsKdGFibGVzLmdseWYgPSBnbHlmOwoKLy8gUG9zdFNjcmlwdCBPdXRsaW5lcwp0YWJsZXNbJ0NGRiAnXSA9IENGRkZvbnQ7CnRhYmxlc1snQ0ZGMiddID0gQ0ZGRm9udDsKdGFibGVzLlZPUkcgPSBWT1JHOwoKLy8gQml0bWFwIEdseXBocwp0YWJsZXMuRUJMQyA9IEVCTEM7CnRhYmxlcy5DQkxDID0gdGFibGVzLkVCTEM7CnRhYmxlcy5zYml4ID0gc2JpeDsKdGFibGVzLkNPTFIgPSBDT0xSOwp0YWJsZXMuQ1BBTCA9IENQQUw7CgovLyBBZHZhbmNlZCBPcGVuVHlwZSBUYWJsZXMKdGFibGVzLkJBU0UgPSBCQVNFOwp0YWJsZXMuR0RFRiA9IEdERUY7CnRhYmxlcy5HUE9TID0gR1BPUzsKdGFibGVzLkdTVUIgPSBHU1VCOwp0YWJsZXMuSlNURiA9IEpTVEY7CgovLyBPcGVuVHlwZSB2YXJpYXRpb25zIHRhYmxlcwp0YWJsZXMuSFZBUiA9IEhWQVI7CgovLyBPdGhlciBPcGVuVHlwZSBUYWJsZXMKdGFibGVzLkRTSUcgPSBEU0lHOwp0YWJsZXMuZ2FzcCA9IGdhc3A7CnRhYmxlcy5oZG14ID0gaGRteDsKdGFibGVzLmtlcm4gPSBrZXJuOwp0YWJsZXMuTFRTSCA9IExUU0g7CnRhYmxlcy5QQ0xUID0gUENMVDsKdGFibGVzLlZETVggPSBWRE1YOwp0YWJsZXMudmhlYSA9IHZoZWE7CnRhYmxlcy52bXR4ID0gdm10eDsKCi8vIEFwcGxlIEFkdmFuY2VkIFR5cG9ncmFwaHkgVGFibGVzCnRhYmxlcy5hdmFyID0gYXZhcjsKdGFibGVzLmJzbG4gPSBic2xuOwp0YWJsZXMuZmVhdCA9IGZlYXQ7CnRhYmxlcy5mdmFyID0gZnZhcjsKdGFibGVzLmd2YXIgPSBndmFyOwp0YWJsZXMuanVzdCA9IGp1c3Q7CnRhYmxlcy5tb3J4ID0gbW9yeDsKdGFibGVzLm9wYmQgPSBvcGJkOwoKdmFyIFRhYmxlRW50cnkgPSBuZXcgci5TdHJ1Y3QoewogIHRhZzogbmV3IHIuU3RyaW5nKDQpLAogIGNoZWNrU3VtOiByLnVpbnQzMiwKICBvZmZzZXQ6IG5ldyByLlBvaW50ZXIoci51aW50MzIsICd2b2lkJywgeyB0eXBlOiAnZ2xvYmFsJyB9KSwKICBsZW5ndGg6IHIudWludDMyCn0pOwoKdmFyIERpcmVjdG9yeSA9IG5ldyByLlN0cnVjdCh7CiAgdGFnOiBuZXcgci5TdHJpbmcoNCksCiAgbnVtVGFibGVzOiByLnVpbnQxNiwKICBzZWFyY2hSYW5nZTogci51aW50MTYsCiAgZW50cnlTZWxlY3Rvcjogci51aW50MTYsCiAgcmFuZ2VTaGlmdDogci51aW50MTYsCiAgdGFibGVzOiBuZXcgci5BcnJheShUYWJsZUVudHJ5LCAnbnVtVGFibGVzJykKfSk7CgpEaXJlY3RvcnkucHJvY2VzcyA9IGZ1bmN0aW9uICgpIHsKICB2YXIgdGFibGVzID0ge307CiAgZm9yICh2YXIgX2l0ZXJhdG9yID0gdGhpcy50YWJsZXMsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgdmFyIF9yZWY7CgogICAgaWYgKF9pc0FycmF5KSB7CiAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgIH0gZWxzZSB7CiAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICBfcmVmID0gX2kudmFsdWU7CiAgICB9CgogICAgdmFyIHRhYmxlID0gX3JlZjsKCiAgICB0YWJsZXNbdGFibGUudGFnXSA9IHRhYmxlOwogIH0KCiAgdGhpcy50YWJsZXMgPSB0YWJsZXM7Cn07CgpEaXJlY3RvcnkucHJlRW5jb2RlID0gZnVuY3Rpb24gKHN0cmVhbSkgewogIHZhciB0YWJsZXMkJCA9IFtdOwogIGZvciAodmFyIHRhZyBpbiB0aGlzLnRhYmxlcykgewogICAgdmFyIHRhYmxlID0gdGhpcy50YWJsZXNbdGFnXTsKICAgIGlmICh0YWJsZSkgewogICAgICB0YWJsZXMkJC5wdXNoKHsKICAgICAgICB0YWc6IHRhZywKICAgICAgICBjaGVja1N1bTogMCwKICAgICAgICBvZmZzZXQ6IG5ldyByLlZvaWRQb2ludGVyKHRhYmxlc1t0YWddLCB0YWJsZSksCiAgICAgICAgbGVuZ3RoOiB0YWJsZXNbdGFnXS5zaXplKHRhYmxlKQogICAgICB9KTsKICAgIH0KICB9CgogIHRoaXMudGFnID0gJ3RydWUnOwogIHRoaXMubnVtVGFibGVzID0gdGFibGVzJCQubGVuZ3RoOwogIHRoaXMudGFibGVzID0gdGFibGVzJCQ7CgogIHRoaXMuc2VhcmNoUmFuZ2UgPSBNYXRoLmZsb29yKE1hdGgubG9nKHRoaXMubnVtVGFibGVzKSAvIE1hdGguTE4yKSAqIDE2OwogIHRoaXMuZW50cnlTZWxlY3RvciA9IE1hdGguZmxvb3IodGhpcy5zZWFyY2hSYW5nZSAvIE1hdGguTE4yKTsKICB0aGlzLnJhbmdlU2hpZnQgPSB0aGlzLm51bVRhYmxlcyAqIDE2IC0gdGhpcy5zZWFyY2hSYW5nZTsKfTsKCmZ1bmN0aW9uIGJpbmFyeVNlYXJjaChhcnIsIGNtcCkgewogIHZhciBtaW4gPSAwOwogIHZhciBtYXggPSBhcnIubGVuZ3RoIC0gMTsKICB3aGlsZSAobWluIDw9IG1heCkgewogICAgdmFyIG1pZCA9IG1pbiArIG1heCA+PiAxOwogICAgdmFyIHJlcyA9IGNtcChhcnJbbWlkXSk7CgogICAgaWYgKHJlcyA8IDApIHsKICAgICAgbWF4ID0gbWlkIC0gMTsKICAgIH0gZWxzZSBpZiAocmVzID4gMCkgewogICAgICBtaW4gPSBtaWQgKyAxOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIG1pZDsKICAgIH0KICB9CgogIHJldHVybiAtMTsKfQoKZnVuY3Rpb24gcmFuZ2UoaW5kZXgsIGVuZCkgewogIHZhciByYW5nZSA9IFtdOwogIHdoaWxlIChpbmRleCA8IGVuZCkgewogICAgcmFuZ2UucHVzaChpbmRleCsrKTsKICB9CiAgcmV0dXJuIHJhbmdlOwp9Cgp2YXIgX2NsYXNzJDE7CmZ1bmN0aW9uIF9hcHBseURlY29yYXRlZERlc2NyaXB0b3IkMSh0YXJnZXQsIHByb3BlcnR5LCBkZWNvcmF0b3JzLCBkZXNjcmlwdG9yLCBjb250ZXh0KSB7CiAgdmFyIGRlc2MgPSB7fTsKICBPYmplY3RbJ2tlJyArICd5cyddKGRlc2NyaXB0b3IpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgZGVzY1trZXldID0gZGVzY3JpcHRvcltrZXldOwogIH0pOwogIGRlc2MuZW51bWVyYWJsZSA9ICEhZGVzYy5lbnVtZXJhYmxlOwogIGRlc2MuY29uZmlndXJhYmxlID0gISFkZXNjLmNvbmZpZ3VyYWJsZTsKCiAgaWYgKCd2YWx1ZScgaW4gZGVzYyB8fCBkZXNjLmluaXRpYWxpemVyKSB7CiAgICBkZXNjLndyaXRhYmxlID0gdHJ1ZTsKICB9CgogIGRlc2MgPSBkZWNvcmF0b3JzLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbiAoZGVzYywgZGVjb3JhdG9yKSB7CiAgICByZXR1cm4gZGVjb3JhdG9yKHRhcmdldCwgcHJvcGVydHksIGRlc2MpIHx8IGRlc2M7CiAgfSwgZGVzYyk7CgogIGlmIChjb250ZXh0ICYmIGRlc2MuaW5pdGlhbGl6ZXIgIT09IHZvaWQgMCkgewogICAgZGVzYy52YWx1ZSA9IGRlc2MuaW5pdGlhbGl6ZXIgPyBkZXNjLmluaXRpYWxpemVyLmNhbGwoY29udGV4dCkgOiB2b2lkIDA7CiAgICBkZXNjLmluaXRpYWxpemVyID0gdW5kZWZpbmVkOwogIH0KCiAgaWYgKGRlc2MuaW5pdGlhbGl6ZXIgPT09IHZvaWQgMCkgewogICAgT2JqZWN0WydkZWZpbmUnICsgJ1Byb3BlcnR5J10odGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYyk7CiAgICBkZXNjID0gbnVsbDsKICB9CgogIHJldHVybiBkZXNjOwp9CgovLyBpY29udi1saXRlIGlzIGFuIG9wdGlvbmFsIGRlcGVuZGVuY3kuCnRyeSB7CiAgdmFyIGljb252ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1Mik7Cn0gY2F0Y2ggKGVycikge30KCnZhciBDbWFwUHJvY2Vzc29yID0gKF9jbGFzcyQxID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIENtYXBQcm9jZXNzb3IoY21hcFRhYmxlKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQ21hcFByb2Nlc3Nvcik7CgogICAgLy8gQXR0ZW1wdCB0byBmaW5kIGEgVW5pY29kZSBjbWFwIGZpcnN0CiAgICB0aGlzLmVuY29kaW5nID0gbnVsbDsKICAgIHRoaXMuY21hcCA9IHRoaXMuZmluZFN1YnRhYmxlKGNtYXBUYWJsZSwgWwogICAgLy8gMzItYml0IHN1YnRhYmxlcwogICAgWzMsIDEwXSwgWzAsIDZdLCBbMCwgNF0sCgogICAgLy8gMTYtYml0IHN1YnRhYmxlcwogICAgWzMsIDFdLCBbMCwgM10sIFswLCAyXSwgWzAsIDFdLCBbMCwgMF1dKTsKCiAgICAvLyBJZiBub3QgdW5pY29kZSBjbWFwIHdhcyBmb3VuZCwgYW5kIGljb252LWxpdGUgaXMgaW5zdGFsbGVkLAogICAgLy8gdGFrZSB0aGUgZmlyc3QgdGFibGUgd2l0aCBhIHN1cHBvcnRlZCBlbmNvZGluZy4KICAgIGlmICghdGhpcy5jbWFwICYmIGljb252KSB7CiAgICAgIGZvciAodmFyIF9pdGVyYXRvciA9IGNtYXBUYWJsZS50YWJsZXMsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgICAgIHZhciBfcmVmOwoKICAgICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBjbWFwID0gX3JlZjsKCiAgICAgICAgdmFyIGVuY29kaW5nID0gZ2V0RW5jb2RpbmcoY21hcC5wbGF0Zm9ybUlELCBjbWFwLmVuY29kaW5nSUQsIGNtYXAudGFibGUubGFuZ3VhZ2UgLSAxKTsKICAgICAgICBpZiAoaWNvbnYuZW5jb2RpbmdFeGlzdHMoZW5jb2RpbmcpKSB7CiAgICAgICAgICB0aGlzLmNtYXAgPSBjbWFwLnRhYmxlOwogICAgICAgICAgdGhpcy5lbmNvZGluZyA9IGVuY29kaW5nOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIGlmICghdGhpcy5jbWFwKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgYSBzdXBwb3J0ZWQgY21hcCB0YWJsZSIpOwogICAgfQoKICAgIHRoaXMudXZzID0gdGhpcy5maW5kU3VidGFibGUoY21hcFRhYmxlLCBbWzAsIDVdXSk7CiAgICBpZiAodGhpcy51dnMgJiYgdGhpcy51dnMudmVyc2lvbiAhPT0gMTQpIHsKICAgICAgdGhpcy51dnMgPSBudWxsOwogICAgfQogIH0KCiAgQ21hcFByb2Nlc3Nvci5wcm90b3R5cGUuZmluZFN1YnRhYmxlID0gZnVuY3Rpb24gZmluZFN1YnRhYmxlKGNtYXBUYWJsZSwgcGFpcnMpIHsKICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBwYWlycywgX2lzQXJyYXkyID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IyKSwgX2kyID0gMCwgX2l0ZXJhdG9yMiA9IF9pc0FycmF5MiA/IF9pdGVyYXRvcjIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMik7OykgewogICAgICB2YXIgX3JlZjI7CgogICAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgICAgaWYgKF9pMiA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjIgPSBfaXRlcmF0b3IyW19pMisrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTIgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgICBpZiAoX2kyLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYyID0gX2kyLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgX3JlZjMgPSBfcmVmMiwKICAgICAgICAgIHBsYXRmb3JtSUQgPSBfcmVmM1swXSwKICAgICAgICAgIGVuY29kaW5nSUQgPSBfcmVmM1sxXTsKCiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSBjbWFwVGFibGUudGFibGVzLCBfaXNBcnJheTMgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjMpLCBfaTMgPSAwLCBfaXRlcmF0b3IzID0gX2lzQXJyYXkzID8gX2l0ZXJhdG9yMyA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IzKTs7KSB7CiAgICAgICAgdmFyIF9yZWY0OwoKICAgICAgICBpZiAoX2lzQXJyYXkzKSB7CiAgICAgICAgICBpZiAoX2kzID49IF9pdGVyYXRvcjMubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWY0ID0gX2l0ZXJhdG9yM1tfaTMrK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pMyA9IF9pdGVyYXRvcjMubmV4dCgpOwogICAgICAgICAgaWYgKF9pMy5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWY0ID0gX2kzLnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIGNtYXAgPSBfcmVmNDsKCiAgICAgICAgaWYgKGNtYXAucGxhdGZvcm1JRCA9PT0gcGxhdGZvcm1JRCAmJiBjbWFwLmVuY29kaW5nSUQgPT09IGVuY29kaW5nSUQpIHsKICAgICAgICAgIHJldHVybiBjbWFwLnRhYmxlOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBudWxsOwogIH07CgogIENtYXBQcm9jZXNzb3IucHJvdG90eXBlLmxvb2t1cCA9IGZ1bmN0aW9uIGxvb2t1cChjb2RlcG9pbnQsIHZhcmlhdGlvblNlbGVjdG9yKSB7CiAgICAvLyBJZiB0aGVyZSBpcyBubyBVbmljb2RlIGNtYXAgaW4gdGhpcyBmb250LCB3ZSBuZWVkIHRvIHJlLWVuY29kZQogICAgLy8gdGhlIGNvZGVwb2ludCBpbiB0aGUgZW5jb2RpbmcgdGhhdCB0aGUgY21hcCBzdXBwb3J0cy4KICAgIGlmICh0aGlzLmVuY29kaW5nKSB7CiAgICAgIHZhciBidWYgPSBpY29udi5lbmNvZGUoX1N0cmluZyRmcm9tQ29kZVBvaW50KGNvZGVwb2ludCksIHRoaXMuZW5jb2RpbmcpOwogICAgICBjb2RlcG9pbnQgPSAwOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykgewogICAgICAgIGNvZGVwb2ludCA9IGNvZGVwb2ludCA8PCA4IHwgYnVmW2ldOwogICAgICB9CgogICAgICAvLyBPdGhlcndpc2UsIHRyeSB0byBnZXQgYSBVbmljb2RlIHZhcmlhdGlvbiBzZWxlY3RvciBmb3IgdGhpcyBjb2RlcG9pbnQgaWYgb25lIGlzIHByb3ZpZGVkLgogICAgfSBlbHNlIGlmICh2YXJpYXRpb25TZWxlY3RvcikgewogICAgICB2YXIgZ2lkID0gdGhpcy5nZXRWYXJpYXRpb25TZWxlY3Rvcihjb2RlcG9pbnQsIHZhcmlhdGlvblNlbGVjdG9yKTsKICAgICAgaWYgKGdpZCkgewogICAgICAgIHJldHVybiBnaWQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgY21hcCA9IHRoaXMuY21hcDsKICAgIHN3aXRjaCAoY21hcC52ZXJzaW9uKSB7CiAgICAgIGNhc2UgMDoKICAgICAgICByZXR1cm4gY21hcC5jb2RlTWFwLmdldChjb2RlcG9pbnQpIHx8IDA7CgogICAgICBjYXNlIDQ6CiAgICAgICAgewogICAgICAgICAgdmFyIG1pbiA9IDA7CiAgICAgICAgICB2YXIgbWF4ID0gY21hcC5zZWdDb3VudCAtIDE7CiAgICAgICAgICB3aGlsZSAobWluIDw9IG1heCkgewogICAgICAgICAgICB2YXIgbWlkID0gbWluICsgbWF4ID4+IDE7CgogICAgICAgICAgICBpZiAoY29kZXBvaW50IDwgY21hcC5zdGFydENvZGUuZ2V0KG1pZCkpIHsKICAgICAgICAgICAgICBtYXggPSBtaWQgLSAxOwogICAgICAgICAgICB9IGVsc2UgaWYgKGNvZGVwb2ludCA+IGNtYXAuZW5kQ29kZS5nZXQobWlkKSkgewogICAgICAgICAgICAgIG1pbiA9IG1pZCArIDE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdmFyIHJhbmdlT2Zmc2V0ID0gY21hcC5pZFJhbmdlT2Zmc2V0LmdldChtaWQpOwogICAgICAgICAgICAgIHZhciBfZ2lkID0gdm9pZCAwOwoKICAgICAgICAgICAgICBpZiAocmFuZ2VPZmZzZXQgPT09IDApIHsKICAgICAgICAgICAgICAgIF9naWQgPSBjb2RlcG9pbnQgKyBjbWFwLmlkRGVsdGEuZ2V0KG1pZCk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHJhbmdlT2Zmc2V0IC8gMiArIChjb2RlcG9pbnQgLSBjbWFwLnN0YXJ0Q29kZS5nZXQobWlkKSkgLSAoY21hcC5zZWdDb3VudCAtIG1pZCk7CiAgICAgICAgICAgICAgICBfZ2lkID0gY21hcC5nbHlwaEluZGV4QXJyYXkuZ2V0KGluZGV4KSB8fCAwOwogICAgICAgICAgICAgICAgaWYgKF9naWQgIT09IDApIHsKICAgICAgICAgICAgICAgICAgX2dpZCArPSBjbWFwLmlkRGVsdGEuZ2V0KG1pZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICByZXR1cm4gX2dpZCAmIDB4ZmZmZjsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KCiAgICAgIGNhc2UgODoKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RPRE86IGNtYXAgZm9ybWF0IDgnKTsKCiAgICAgIGNhc2UgNjoKICAgICAgY2FzZSAxMDoKICAgICAgICByZXR1cm4gY21hcC5nbHlwaEluZGljZXMuZ2V0KGNvZGVwb2ludCAtIGNtYXAuZmlyc3RDb2RlKSB8fCAwOwoKICAgICAgY2FzZSAxMjoKICAgICAgY2FzZSAxMzoKICAgICAgICB7CiAgICAgICAgICB2YXIgX21pbiA9IDA7CiAgICAgICAgICB2YXIgX21heCA9IGNtYXAubkdyb3VwcyAtIDE7CiAgICAgICAgICB3aGlsZSAoX21pbiA8PSBfbWF4KSB7CiAgICAgICAgICAgIHZhciBfbWlkID0gX21pbiArIF9tYXggPj4gMTsKICAgICAgICAgICAgdmFyIGdyb3VwID0gY21hcC5ncm91cHMuZ2V0KF9taWQpOwoKICAgICAgICAgICAgaWYgKGNvZGVwb2ludCA8IGdyb3VwLnN0YXJ0Q2hhckNvZGUpIHsKICAgICAgICAgICAgICBfbWF4ID0gX21pZCAtIDE7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29kZXBvaW50ID4gZ3JvdXAuZW5kQ2hhckNvZGUpIHsKICAgICAgICAgICAgICBfbWluID0gX21pZCArIDE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgaWYgKGNtYXAudmVyc2lvbiA9PT0gMTIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBncm91cC5nbHlwaElEICsgKGNvZGVwb2ludCAtIGdyb3VwLnN0YXJ0Q2hhckNvZGUpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXAuZ2x5cGhJRDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CgogICAgICBjYXNlIDE0OgogICAgICAgIHRocm93IG5ldyBFcnJvcignVE9ETzogY21hcCBmb3JtYXQgMTQnKTsKCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGNtYXAgZm9ybWF0ICcgKyBjbWFwLnZlcnNpb24pOwogICAgfQogIH07CgogIENtYXBQcm9jZXNzb3IucHJvdG90eXBlLmdldFZhcmlhdGlvblNlbGVjdG9yID0gZnVuY3Rpb24gZ2V0VmFyaWF0aW9uU2VsZWN0b3IoY29kZXBvaW50LCB2YXJpYXRpb25TZWxlY3RvcikgewogICAgaWYgKCF0aGlzLnV2cykgewogICAgICByZXR1cm4gMDsKICAgIH0KCiAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy51dnMudmFyU2VsZWN0b3JzLnRvQXJyYXkoKTsKICAgIHZhciBpID0gYmluYXJ5U2VhcmNoKHNlbGVjdG9ycywgZnVuY3Rpb24gKHgpIHsKICAgICAgcmV0dXJuIHZhcmlhdGlvblNlbGVjdG9yIC0geC52YXJTZWxlY3RvcjsKICAgIH0pOwogICAgdmFyIHNlbCA9IHNlbGVjdG9yc1tpXTsKCiAgICBpZiAoaSAhPT0gLTEgJiYgc2VsLmRlZmF1bHRVVlMpIHsKICAgICAgaSA9IGJpbmFyeVNlYXJjaChzZWwuZGVmYXVsdFVWUywgZnVuY3Rpb24gKHgpIHsKICAgICAgICByZXR1cm4gY29kZXBvaW50IDwgeC5zdGFydFVuaWNvZGVWYWx1ZSA/IC0xIDogY29kZXBvaW50ID4geC5zdGFydFVuaWNvZGVWYWx1ZSArIHguYWRkaXRpb25hbENvdW50ID8gKzEgOiAwOwogICAgICB9KTsKICAgIH0KCiAgICBpZiAoaSAhPT0gLTEgJiYgc2VsLm5vbkRlZmF1bHRVVlMpIHsKICAgICAgaSA9IGJpbmFyeVNlYXJjaChzZWwubm9uRGVmYXVsdFVWUywgZnVuY3Rpb24gKHgpIHsKICAgICAgICByZXR1cm4gY29kZXBvaW50IC0geC51bmljb2RlVmFsdWU7CiAgICAgIH0pOwogICAgICBpZiAoaSAhPT0gLTEpIHsKICAgICAgICByZXR1cm4gc2VsLm5vbkRlZmF1bHRVVlNbaV0uZ2x5cGhJRDsKICAgICAgfQogICAgfQoKICAgIHJldHVybiAwOwogIH07CgogIENtYXBQcm9jZXNzb3IucHJvdG90eXBlLmdldENoYXJhY3RlclNldCA9IGZ1bmN0aW9uIGdldENoYXJhY3RlclNldCgpIHsKICAgIHZhciBjbWFwID0gdGhpcy5jbWFwOwogICAgc3dpdGNoIChjbWFwLnZlcnNpb24pIHsKICAgICAgY2FzZSAwOgogICAgICAgIHJldHVybiByYW5nZSgwLCBjbWFwLmNvZGVNYXAubGVuZ3RoKTsKCiAgICAgIGNhc2UgNDoKICAgICAgICB7CiAgICAgICAgICB2YXIgcmVzID0gW107CiAgICAgICAgICB2YXIgZW5kQ29kZXMgPSBjbWFwLmVuZENvZGUudG9BcnJheSgpOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbmRDb2Rlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgdGFpbCA9IGVuZENvZGVzW2ldICsgMTsKICAgICAgICAgICAgdmFyIHN0YXJ0ID0gY21hcC5zdGFydENvZGUuZ2V0KGkpOwogICAgICAgICAgICByZXMucHVzaC5hcHBseShyZXMsIHJhbmdlKHN0YXJ0LCB0YWlsKSk7CiAgICAgICAgICB9CgogICAgICAgICAgcmV0dXJuIHJlczsKICAgICAgICB9CgogICAgICBjYXNlIDg6CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPOiBjbWFwIGZvcm1hdCA4Jyk7CgogICAgICBjYXNlIDY6CiAgICAgIGNhc2UgMTA6CiAgICAgICAgcmV0dXJuIHJhbmdlKGNtYXAuZmlyc3RDb2RlLCBjbWFwLmZpcnN0Q29kZSArIGNtYXAuZ2x5cGhJbmRpY2VzLmxlbmd0aCk7CgogICAgICBjYXNlIDEyOgogICAgICBjYXNlIDEzOgogICAgICAgIHsKICAgICAgICAgIHZhciBfcmVzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3I0ID0gY21hcC5ncm91cHMudG9BcnJheSgpLCBfaXNBcnJheTQgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjQpLCBfaTQgPSAwLCBfaXRlcmF0b3I0ID0gX2lzQXJyYXk0ID8gX2l0ZXJhdG9yNCA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I0KTs7KSB7CiAgICAgICAgICAgIHZhciBfcmVmNTsKCiAgICAgICAgICAgIGlmIChfaXNBcnJheTQpIHsKICAgICAgICAgICAgICBpZiAoX2k0ID49IF9pdGVyYXRvcjQubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgICBfcmVmNSA9IF9pdGVyYXRvcjRbX2k0KytdOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIF9pNCA9IF9pdGVyYXRvcjQubmV4dCgpOwogICAgICAgICAgICAgIGlmIChfaTQuZG9uZSkgYnJlYWs7CiAgICAgICAgICAgICAgX3JlZjUgPSBfaTQudmFsdWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBncm91cCA9IF9yZWY1OwoKICAgICAgICAgICAgX3Jlcy5wdXNoLmFwcGx5KF9yZXMsIHJhbmdlKGdyb3VwLnN0YXJ0Q2hhckNvZGUsIGdyb3VwLmVuZENoYXJDb2RlICsgMSkpOwogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBfcmVzOwogICAgICAgIH0KCiAgICAgIGNhc2UgMTQ6CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUT0RPOiBjbWFwIGZvcm1hdCAxNCcpOwoKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gY21hcCBmb3JtYXQgJyArIGNtYXAudmVyc2lvbik7CiAgICB9CiAgfTsKCiAgQ21hcFByb2Nlc3Nvci5wcm90b3R5cGUuY29kZVBvaW50c0ZvckdseXBoID0gZnVuY3Rpb24gY29kZVBvaW50c0ZvckdseXBoKGdpZCkgewogICAgdmFyIGNtYXAgPSB0aGlzLmNtYXA7CiAgICBzd2l0Y2ggKGNtYXAudmVyc2lvbikgewogICAgICBjYXNlIDA6CiAgICAgICAgewogICAgICAgICAgdmFyIHJlcyA9IFtdOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyNTY7IGkrKykgewogICAgICAgICAgICBpZiAoY21hcC5jb2RlTWFwLmdldChpKSA9PT0gZ2lkKSB7CiAgICAgICAgICAgICAgcmVzLnB1c2goaSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gcmVzOwogICAgICAgIH0KCiAgICAgIGNhc2UgNDoKICAgICAgICB7CiAgICAgICAgICB2YXIgX3JlczIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIF9pNSA9IDA7IF9pNSA8IGNtYXAuc2VnQ291bnQ7IF9pNSsrKSB7CiAgICAgICAgICAgIHZhciBlbmQgPSBjbWFwLmVuZENvZGUuZ2V0KF9pNSk7CiAgICAgICAgICAgIHZhciBzdGFydCA9IGNtYXAuc3RhcnRDb2RlLmdldChfaTUpOwogICAgICAgICAgICB2YXIgcmFuZ2VPZmZzZXQgPSBjbWFwLmlkUmFuZ2VPZmZzZXQuZ2V0KF9pNSk7CiAgICAgICAgICAgIHZhciBkZWx0YSA9IGNtYXAuaWREZWx0YS5nZXQoX2k1KTsKCiAgICAgICAgICAgIGZvciAodmFyIGMgPSBzdGFydDsgYyA8PSBlbmQ7IGMrKykgewogICAgICAgICAgICAgIHZhciBnID0gMDsKICAgICAgICAgICAgICBpZiAocmFuZ2VPZmZzZXQgPT09IDApIHsKICAgICAgICAgICAgICAgIGcgPSBjICsgZGVsdGE7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHJhbmdlT2Zmc2V0IC8gMiArIChjIC0gc3RhcnQpIC0gKGNtYXAuc2VnQ291bnQgLSBfaTUpOwogICAgICAgICAgICAgICAgZyA9IGNtYXAuZ2x5cGhJbmRleEFycmF5LmdldChpbmRleCkgfHwgMDsKICAgICAgICAgICAgICAgIGlmIChnICE9PSAwKSB7CiAgICAgICAgICAgICAgICAgIGcgKz0gZGVsdGE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICBpZiAoZyA9PT0gZ2lkKSB7CiAgICAgICAgICAgICAgICBfcmVzMi5wdXNoKGMpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBfcmVzMjsKICAgICAgICB9CgogICAgICBjYXNlIDEyOgogICAgICAgIHsKICAgICAgICAgIHZhciBfcmVzMyA9IFtdOwogICAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yNSA9IGNtYXAuZ3JvdXBzLnRvQXJyYXkoKSwgX2lzQXJyYXk1ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3I1KSwgX2k2ID0gMCwgX2l0ZXJhdG9yNSA9IF9pc0FycmF5NSA/IF9pdGVyYXRvcjUgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yNSk7OykgewogICAgICAgICAgICB2YXIgX3JlZjY7CgogICAgICAgICAgICBpZiAoX2lzQXJyYXk1KSB7CiAgICAgICAgICAgICAgaWYgKF9pNiA+PSBfaXRlcmF0b3I1Lmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgICAgX3JlZjYgPSBfaXRlcmF0b3I1W19pNisrXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfaTYgPSBfaXRlcmF0b3I1Lm5leHQoKTsKICAgICAgICAgICAgICBpZiAoX2k2LmRvbmUpIGJyZWFrOwogICAgICAgICAgICAgIF9yZWY2ID0gX2k2LnZhbHVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgZ3JvdXAgPSBfcmVmNjsKCiAgICAgICAgICAgIGlmIChnaWQgPj0gZ3JvdXAuZ2x5cGhJRCAmJiBnaWQgPD0gZ3JvdXAuZ2x5cGhJRCArIChncm91cC5lbmRDaGFyQ29kZSAtIGdyb3VwLnN0YXJ0Q2hhckNvZGUpKSB7CiAgICAgICAgICAgICAgX3JlczMucHVzaChncm91cC5zdGFydENoYXJDb2RlICsgKGdpZCAtIGdyb3VwLmdseXBoSUQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBfcmVzMzsKICAgICAgICB9CgogICAgICBjYXNlIDEzOgogICAgICAgIHsKICAgICAgICAgIHZhciBfcmVzNCA9IFtdOwogICAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yNiA9IGNtYXAuZ3JvdXBzLnRvQXJyYXkoKSwgX2lzQXJyYXk2ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3I2KSwgX2k3ID0gMCwgX2l0ZXJhdG9yNiA9IF9pc0FycmF5NiA/IF9pdGVyYXRvcjYgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yNik7OykgewogICAgICAgICAgICB2YXIgX3JlZjc7CgogICAgICAgICAgICBpZiAoX2lzQXJyYXk2KSB7CiAgICAgICAgICAgICAgaWYgKF9pNyA+PSBfaXRlcmF0b3I2Lmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgICAgX3JlZjcgPSBfaXRlcmF0b3I2W19pNysrXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfaTcgPSBfaXRlcmF0b3I2Lm5leHQoKTsKICAgICAgICAgICAgICBpZiAoX2k3LmRvbmUpIGJyZWFrOwogICAgICAgICAgICAgIF9yZWY3ID0gX2k3LnZhbHVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgX2dyb3VwID0gX3JlZjc7CgogICAgICAgICAgICBpZiAoZ2lkID09PSBfZ3JvdXAuZ2x5cGhJRCkgewogICAgICAgICAgICAgIF9yZXM0LnB1c2guYXBwbHkoX3JlczQsIHJhbmdlKF9ncm91cC5zdGFydENoYXJDb2RlLCBfZ3JvdXAuZW5kQ2hhckNvZGUgKyAxKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gX3JlczQ7CiAgICAgICAgfQoKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gY21hcCBmb3JtYXQgJyArIGNtYXAudmVyc2lvbik7CiAgICB9CiAgfTsKCiAgcmV0dXJuIENtYXBQcm9jZXNzb3I7Cn0oKSwgKF9hcHBseURlY29yYXRlZERlc2NyaXB0b3IkMShfY2xhc3MkMS5wcm90b3R5cGUsICdnZXRDaGFyYWN0ZXJTZXQnLCBbY2FjaGVdLCBfT2JqZWN0JGdldE93blByb3BlcnR5RGVzY3JpcHRvcihfY2xhc3MkMS5wcm90b3R5cGUsICdnZXRDaGFyYWN0ZXJTZXQnKSwgX2NsYXNzJDEucHJvdG90eXBlKSwgX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciQxKF9jbGFzcyQxLnByb3RvdHlwZSwgJ2NvZGVQb2ludHNGb3JHbHlwaCcsIFtjYWNoZV0sIF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF9jbGFzcyQxLnByb3RvdHlwZSwgJ2NvZGVQb2ludHNGb3JHbHlwaCcpLCBfY2xhc3MkMS5wcm90b3R5cGUpKSwgX2NsYXNzJDEpOwoKdmFyIEtlcm5Qcm9jZXNzb3IgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gS2VyblByb2Nlc3Nvcihmb250KSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgS2VyblByb2Nlc3Nvcik7CgogICAgdGhpcy5rZXJuID0gZm9udC5rZXJuOwogIH0KCiAgS2VyblByb2Nlc3Nvci5wcm90b3R5cGUucHJvY2VzcyA9IGZ1bmN0aW9uIHByb2Nlc3MoZ2x5cGhzLCBwb3NpdGlvbnMpIHsKICAgIGZvciAodmFyIGdseXBoSW5kZXggPSAwOyBnbHlwaEluZGV4IDwgZ2x5cGhzLmxlbmd0aCAtIDE7IGdseXBoSW5kZXgrKykgewogICAgICB2YXIgbGVmdCA9IGdseXBoc1tnbHlwaEluZGV4XS5pZDsKICAgICAgdmFyIHJpZ2h0ID0gZ2x5cGhzW2dseXBoSW5kZXggKyAxXS5pZDsKICAgICAgcG9zaXRpb25zW2dseXBoSW5kZXhdLnhBZHZhbmNlICs9IHRoaXMuZ2V0S2VybmluZyhsZWZ0LCByaWdodCk7CiAgICB9CiAgfTsKCiAgS2VyblByb2Nlc3Nvci5wcm90b3R5cGUuZ2V0S2VybmluZyA9IGZ1bmN0aW9uIGdldEtlcm5pbmcobGVmdCwgcmlnaHQpIHsKICAgIHZhciByZXMgPSAwOwoKICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHRoaXMua2Vybi50YWJsZXMsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgICB2YXIgX3JlZjsKCiAgICAgIGlmIChfaXNBcnJheSkgewogICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgdGFibGUgPSBfcmVmOwoKICAgICAgaWYgKHRhYmxlLmNvdmVyYWdlLmNyb3NzU3RyZWFtKSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIHN3aXRjaCAodGFibGUudmVyc2lvbikgewogICAgICAgIGNhc2UgMDoKICAgICAgICAgIGlmICghdGFibGUuY292ZXJhZ2UuaG9yaXpvbnRhbCkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KCiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlIDE6CiAgICAgICAgICBpZiAodGFibGUuY292ZXJhZ2UudmVydGljYWwgfHwgdGFibGUuY292ZXJhZ2UudmFyaWF0aW9uKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGtlcm5pbmcgdGFibGUgdmVyc2lvbiAnICsgdGFibGUudmVyc2lvbik7CiAgICAgIH0KCiAgICAgIHZhciB2YWwgPSAwOwogICAgICB2YXIgcyA9IHRhYmxlLnN1YnRhYmxlOwogICAgICBzd2l0Y2ggKHRhYmxlLmZvcm1hdCkgewogICAgICAgIGNhc2UgMDoKICAgICAgICAgIHZhciBwYWlySWR4ID0gYmluYXJ5U2VhcmNoKHMucGFpcnMsIGZ1bmN0aW9uIChwYWlyKSB7CiAgICAgICAgICAgIHJldHVybiBsZWZ0IC0gcGFpci5sZWZ0IHx8IHJpZ2h0IC0gcGFpci5yaWdodDsKICAgICAgICAgIH0pOwoKICAgICAgICAgIGlmIChwYWlySWR4ID49IDApIHsKICAgICAgICAgICAgdmFsID0gcy5wYWlyc1twYWlySWR4XS52YWx1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICBicmVhazsKCiAgICAgICAgY2FzZSAyOgogICAgICAgICAgdmFyIGxlZnRPZmZzZXQgPSAwLAogICAgICAgICAgICAgIHJpZ2h0T2Zmc2V0ID0gMDsKICAgICAgICAgIGlmIChsZWZ0ID49IHMubGVmdFRhYmxlLmZpcnN0R2x5cGggJiYgbGVmdCA8IHMubGVmdFRhYmxlLmZpcnN0R2x5cGggKyBzLmxlZnRUYWJsZS5uR2x5cGhzKSB7CiAgICAgICAgICAgIGxlZnRPZmZzZXQgPSBzLmxlZnRUYWJsZS5vZmZzZXRzW2xlZnQgLSBzLmxlZnRUYWJsZS5maXJzdEdseXBoXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxlZnRPZmZzZXQgPSBzLmFycmF5Lm9mZjsKICAgICAgICAgIH0KCiAgICAgICAgICBpZiAocmlnaHQgPj0gcy5yaWdodFRhYmxlLmZpcnN0R2x5cGggJiYgcmlnaHQgPCBzLnJpZ2h0VGFibGUuZmlyc3RHbHlwaCArIHMucmlnaHRUYWJsZS5uR2x5cGhzKSB7CiAgICAgICAgICAgIHJpZ2h0T2Zmc2V0ID0gcy5yaWdodFRhYmxlLm9mZnNldHNbcmlnaHQgLSBzLnJpZ2h0VGFibGUuZmlyc3RHbHlwaF07CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIGluZGV4ID0gKGxlZnRPZmZzZXQgKyByaWdodE9mZnNldCAtIHMuYXJyYXkub2ZmKSAvIDI7CiAgICAgICAgICB2YWwgPSBzLmFycmF5LnZhbHVlcy5nZXQoaW5kZXgpOwogICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgMzoKICAgICAgICAgIGlmIChsZWZ0ID49IHMuZ2x5cGhDb3VudCB8fCByaWdodCA+PSBzLmdseXBoQ291bnQpIHsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICB9CgogICAgICAgICAgdmFsID0gcy5rZXJuVmFsdWVbcy5rZXJuSW5kZXhbcy5sZWZ0Q2xhc3NbbGVmdF0gKiBzLnJpZ2h0Q2xhc3NDb3VudCArIHMucmlnaHRDbGFzc1tyaWdodF1dXTsKICAgICAgICAgIGJyZWFrOwoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBrZXJuaW5nIHN1Yi10YWJsZSBmb3JtYXQgJyArIHRhYmxlLmZvcm1hdCk7CiAgICAgIH0KCiAgICAgIC8vIE1pY3Jvc29mdCBzdXBwb3J0cyB0aGUgb3ZlcnJpZGUgZmxhZywgd2hpY2ggcmVzZXRzIHRoZSByZXN1bHQKICAgICAgLy8gT3RoZXJ3aXNlLCB0aGUgc3VtIG9mIHRoZSByZXN1bHRzIGZyb20gYWxsIHN1YnRhYmxlcyBpcyByZXR1cm5lZAogICAgICBpZiAodGFibGUuY292ZXJhZ2Uub3ZlcnJpZGUpIHsKICAgICAgICByZXMgPSB2YWw7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVzICs9IHZhbDsKICAgICAgfQogICAgfQoKICAgIHJldHVybiByZXM7CiAgfTsKCiAgcmV0dXJuIEtlcm5Qcm9jZXNzb3I7Cn0oKTsKCi8qKgogKiBUaGlzIGNsYXNzIGlzIHVzZWQgd2hlbiBHUE9TIGRvZXMgbm90IGRlZmluZSAnbWFyaycgb3IgJ21rbWsnIGZlYXR1cmVzCiAqIGZvciBwb3NpdGlvbmluZyBtYXJrcyByZWxhdGl2ZSB0byBiYXNlIGdseXBocy4gSXQgdXNlcyB0aGUgdW5pY29kZQogKiBjb21iaW5pbmcgY2xhc3MgcHJvcGVydHkgdG8gcG9zaXRpb24gbWFya3MuCiAqCiAqIEJhc2VkIG9uIGNvZGUgZnJvbSBIYXJmYnV6eiwgdGhhbmtzIQogKiBodHRwczovL2dpdGh1Yi5jb20vYmVoZGFkL2hhcmZidXp6L2Jsb2IvbWFzdGVyL3NyYy9oYi1vdC1zaGFwZS1mYWxsYmFjay5jYwogKi8KCnZhciBVbmljb2RlTGF5b3V0RW5naW5lID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIFVuaWNvZGVMYXlvdXRFbmdpbmUoZm9udCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVuaWNvZGVMYXlvdXRFbmdpbmUpOwoKICAgIHRoaXMuZm9udCA9IGZvbnQ7CiAgfQoKICBVbmljb2RlTGF5b3V0RW5naW5lLnByb3RvdHlwZS5wb3NpdGlvbkdseXBocyA9IGZ1bmN0aW9uIHBvc2l0aW9uR2x5cGhzKGdseXBocywgcG9zaXRpb25zKSB7CiAgICAvLyBmaW5kIGVhY2ggYmFzZSArIG1hcmsgY2x1c3RlciwgYW5kIHBvc2l0aW9uIHRoZSBtYXJrcyByZWxhdGl2ZSB0byB0aGUgYmFzZQogICAgdmFyIGNsdXN0ZXJTdGFydCA9IDA7CiAgICB2YXIgY2x1c3RlckVuZCA9IDA7CiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgZ2x5cGhzLmxlbmd0aDsgaW5kZXgrKykgewogICAgICB2YXIgZ2x5cGggPSBnbHlwaHNbaW5kZXhdOwogICAgICBpZiAoZ2x5cGguaXNNYXJrKSB7CiAgICAgICAgLy8gVE9ETzogaGFuZGxlIGxpZ2F0dXJlcwogICAgICAgIGNsdXN0ZXJFbmQgPSBpbmRleDsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoY2x1c3RlclN0YXJ0ICE9PSBjbHVzdGVyRW5kKSB7CiAgICAgICAgICB0aGlzLnBvc2l0aW9uQ2x1c3RlcihnbHlwaHMsIHBvc2l0aW9ucywgY2x1c3RlclN0YXJ0LCBjbHVzdGVyRW5kKTsKICAgICAgICB9CgogICAgICAgIGNsdXN0ZXJTdGFydCA9IGNsdXN0ZXJFbmQgPSBpbmRleDsKICAgICAgfQogICAgfQoKICAgIGlmIChjbHVzdGVyU3RhcnQgIT09IGNsdXN0ZXJFbmQpIHsKICAgICAgdGhpcy5wb3NpdGlvbkNsdXN0ZXIoZ2x5cGhzLCBwb3NpdGlvbnMsIGNsdXN0ZXJTdGFydCwgY2x1c3RlckVuZCk7CiAgICB9CgogICAgcmV0dXJuIHBvc2l0aW9uczsKICB9OwoKICBVbmljb2RlTGF5b3V0RW5naW5lLnByb3RvdHlwZS5wb3NpdGlvbkNsdXN0ZXIgPSBmdW5jdGlvbiBwb3NpdGlvbkNsdXN0ZXIoZ2x5cGhzLCBwb3NpdGlvbnMsIGNsdXN0ZXJTdGFydCwgY2x1c3RlckVuZCkgewogICAgdmFyIGJhc2UgPSBnbHlwaHNbY2x1c3RlclN0YXJ0XTsKICAgIHZhciBiYXNlQm94ID0gYmFzZS5jYm94LmNvcHkoKTsKCiAgICAvLyBhZGp1c3QgYm91bmRpbmcgYm94IGZvciBsaWdhdHVyZSBnbHlwaHMKICAgIGlmIChiYXNlLmNvZGVQb2ludHMubGVuZ3RoID4gMSkgewogICAgICAvLyBMVFIuIFRPRE86IFJUTCBzdXBwb3J0LgogICAgICBiYXNlQm94Lm1pblggKz0gKGJhc2UuY29kZVBvaW50cy5sZW5ndGggLSAxKSAqIGJhc2VCb3gud2lkdGggLyBiYXNlLmNvZGVQb2ludHMubGVuZ3RoOwogICAgfQoKICAgIHZhciB4T2Zmc2V0ID0gLXBvc2l0aW9uc1tjbHVzdGVyU3RhcnRdLnhBZHZhbmNlOwogICAgdmFyIHlPZmZzZXQgPSAwOwogICAgdmFyIHlHYXAgPSB0aGlzLmZvbnQudW5pdHNQZXJFbSAvIDE2OwoKICAgIC8vIHBvc2l0aW9uIGVhY2ggb2YgdGhlIG1hcmsgZ2x5cGhzIHJlbGF0aXZlIHRvIHRoZSBiYXNlIGdseXBoCiAgICBmb3IgKHZhciBpbmRleCA9IGNsdXN0ZXJTdGFydCArIDE7IGluZGV4IDw9IGNsdXN0ZXJFbmQ7IGluZGV4KyspIHsKICAgICAgdmFyIG1hcmsgPSBnbHlwaHNbaW5kZXhdOwogICAgICB2YXIgbWFya0JveCA9IG1hcmsuY2JveDsKICAgICAgdmFyIHBvc2l0aW9uID0gcG9zaXRpb25zW2luZGV4XTsKCiAgICAgIHZhciBjb21iaW5pbmdDbGFzcyA9IHRoaXMuZ2V0Q29tYmluaW5nQ2xhc3MobWFyay5jb2RlUG9pbnRzWzBdKTsKCiAgICAgIGlmIChjb21iaW5pbmdDbGFzcyAhPT0gJ05vdF9SZW9yZGVyZWQnKSB7CiAgICAgICAgcG9zaXRpb24ueE9mZnNldCA9IHBvc2l0aW9uLnlPZmZzZXQgPSAwOwoKICAgICAgICAvLyB4IHBvc2l0aW9uaW5nCiAgICAgICAgc3dpdGNoIChjb21iaW5pbmdDbGFzcykgewogICAgICAgICAgY2FzZSAnRG91YmxlX0Fib3ZlJzoKICAgICAgICAgIGNhc2UgJ0RvdWJsZV9CZWxvdyc6CiAgICAgICAgICAgIC8vIExUUi4gVE9ETzogUlRMIHN1cHBvcnQuCiAgICAgICAgICAgIHBvc2l0aW9uLnhPZmZzZXQgKz0gYmFzZUJveC5taW5YIC0gbWFya0JveC53aWR0aCAvIDIgLSBtYXJrQm94Lm1pblg7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgIGNhc2UgJ0F0dGFjaGVkX0JlbG93X0xlZnQnOgogICAgICAgICAgY2FzZSAnQmVsb3dfTGVmdCc6CiAgICAgICAgICBjYXNlICdBYm92ZV9MZWZ0JzoKICAgICAgICAgICAgLy8gbGVmdCBhbGlnbgogICAgICAgICAgICBwb3NpdGlvbi54T2Zmc2V0ICs9IGJhc2VCb3gubWluWCAtIG1hcmtCb3gubWluWDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgY2FzZSAnQXR0YWNoZWRfQWJvdmVfUmlnaHQnOgogICAgICAgICAgY2FzZSAnQmVsb3dfUmlnaHQnOgogICAgICAgICAgY2FzZSAnQWJvdmVfUmlnaHQnOgogICAgICAgICAgICAvLyByaWdodCBhbGlnbgogICAgICAgICAgICBwb3NpdGlvbi54T2Zmc2V0ICs9IGJhc2VCb3gubWF4WCAtIG1hcmtCb3gud2lkdGggLSBtYXJrQm94Lm1pblg7CiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIC8vIEF0dGFjaGVkX0JlbG93LCBBdHRhY2hlZF9BYm92ZSwgQmVsb3csIEFib3ZlLCBvdGhlcgogICAgICAgICAgICAvLyBjZW50ZXIgYWxpZ24KICAgICAgICAgICAgcG9zaXRpb24ueE9mZnNldCArPSBiYXNlQm94Lm1pblggKyAoYmFzZUJveC53aWR0aCAtIG1hcmtCb3gud2lkdGgpIC8gMiAtIG1hcmtCb3gubWluWDsKICAgICAgICB9CgogICAgICAgIC8vIHkgcG9zaXRpb25pbmcKICAgICAgICBzd2l0Y2ggKGNvbWJpbmluZ0NsYXNzKSB7CiAgICAgICAgICBjYXNlICdEb3VibGVfQmVsb3cnOgogICAgICAgICAgY2FzZSAnQmVsb3dfTGVmdCc6CiAgICAgICAgICBjYXNlICdCZWxvdyc6CiAgICAgICAgICBjYXNlICdCZWxvd19SaWdodCc6CiAgICAgICAgICBjYXNlICdBdHRhY2hlZF9CZWxvd19MZWZ0JzoKICAgICAgICAgIGNhc2UgJ0F0dGFjaGVkX0JlbG93JzoKICAgICAgICAgICAgLy8gYWRkIGEgc21hbGwgZ2FwIGJldHdlZW4gdGhlIGdseXBocyBpZiB0aGV5IGFyZSBub3QgYXR0YWNoZWQKICAgICAgICAgICAgaWYgKGNvbWJpbmluZ0NsYXNzID09PSAnQXR0YWNoZWRfQmVsb3dfTGVmdCcgfHwgY29tYmluaW5nQ2xhc3MgPT09ICdBdHRhY2hlZF9CZWxvdycpIHsKICAgICAgICAgICAgICBiYXNlQm94Lm1pblkgKz0geUdhcDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcG9zaXRpb24ueU9mZnNldCA9IC1iYXNlQm94Lm1pblkgLSBtYXJrQm94Lm1heFk7CiAgICAgICAgICAgIGJhc2VCb3gubWluWSArPSBtYXJrQm94LmhlaWdodDsKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgY2FzZSAnRG91YmxlX0Fib3ZlJzoKICAgICAgICAgIGNhc2UgJ0Fib3ZlX0xlZnQnOgogICAgICAgICAgY2FzZSAnQWJvdmUnOgogICAgICAgICAgY2FzZSAnQWJvdmVfUmlnaHQnOgogICAgICAgICAgY2FzZSAnQXR0YWNoZWRfQWJvdmUnOgogICAgICAgICAgY2FzZSAnQXR0YWNoZWRfQWJvdmVfUmlnaHQnOgogICAgICAgICAgICAvLyBhZGQgYSBzbWFsbCBnYXAgYmV0d2VlbiB0aGUgZ2x5cGhzIGlmIHRoZXkgYXJlIG5vdCBhdHRhY2hlZAogICAgICAgICAgICBpZiAoY29tYmluaW5nQ2xhc3MgPT09ICdBdHRhY2hlZF9BYm92ZScgfHwgY29tYmluaW5nQ2xhc3MgPT09ICdBdHRhY2hlZF9BYm92ZV9SaWdodCcpIHsKICAgICAgICAgICAgICBiYXNlQm94Lm1heFkgKz0geUdhcDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcG9zaXRpb24ueU9mZnNldCA9IGJhc2VCb3gubWF4WSAtIG1hcmtCb3gubWluWTsKICAgICAgICAgICAgYmFzZUJveC5tYXhZICs9IG1hcmtCb3guaGVpZ2h0OwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIHBvc2l0aW9uLnhBZHZhbmNlID0gcG9zaXRpb24ueUFkdmFuY2UgPSAwOwogICAgICAgIHBvc2l0aW9uLnhPZmZzZXQgKz0geE9mZnNldDsKICAgICAgICBwb3NpdGlvbi55T2Zmc2V0ICs9IHlPZmZzZXQ7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgeE9mZnNldCAtPSBwb3NpdGlvbi54QWR2YW5jZTsKICAgICAgICB5T2Zmc2V0IC09IHBvc2l0aW9uLnlBZHZhbmNlOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuOwogIH07CgogIFVuaWNvZGVMYXlvdXRFbmdpbmUucHJvdG90eXBlLmdldENvbWJpbmluZ0NsYXNzID0gZnVuY3Rpb24gZ2V0Q29tYmluaW5nQ2xhc3MoY29kZVBvaW50KSB7CiAgICB2YXIgY29tYmluaW5nQ2xhc3MgPSB1bmljb2RlLmdldENvbWJpbmluZ0NsYXNzKGNvZGVQb2ludCk7CgogICAgLy8gVGhhaSAvIExhbyBuZWVkIHNvbWUgcGVyLWNoYXJhY3RlciB3b3JrCiAgICBpZiAoKGNvZGVQb2ludCAmIH4weGZmKSA9PT0gMHgwZTAwKSB7CiAgICAgIGlmIChjb21iaW5pbmdDbGFzcyA9PT0gJ05vdF9SZW9yZGVyZWQnKSB7CiAgICAgICAgc3dpdGNoIChjb2RlUG9pbnQpIHsKICAgICAgICAgIGNhc2UgMHgwZTMxOgogICAgICAgICAgY2FzZSAweDBlMzQ6CiAgICAgICAgICBjYXNlIDB4MGUzNToKICAgICAgICAgIGNhc2UgMHgwZTM2OgogICAgICAgICAgY2FzZSAweDBlMzc6CiAgICAgICAgICBjYXNlIDB4MGU0NzoKICAgICAgICAgIGNhc2UgMHgwZTRjOgogICAgICAgICAgY2FzZSAweDBlM2Q6CiAgICAgICAgICBjYXNlIDB4MGU0ZToKICAgICAgICAgICAgcmV0dXJuICdBYm92ZV9SaWdodCc7CgogICAgICAgICAgY2FzZSAweDBlYjE6CiAgICAgICAgICBjYXNlIDB4MGViNDoKICAgICAgICAgIGNhc2UgMHgwZWI1OgogICAgICAgICAgY2FzZSAweDBlYjY6CiAgICAgICAgICBjYXNlIDB4MGViNzoKICAgICAgICAgIGNhc2UgMHgwZWJiOgogICAgICAgICAgY2FzZSAweDBlY2M6CiAgICAgICAgICBjYXNlIDB4MGVjZDoKICAgICAgICAgICAgcmV0dXJuICdBYm92ZSc7CgogICAgICAgICAgY2FzZSAweDBlYmM6CiAgICAgICAgICAgIHJldHVybiAnQmVsb3cnOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChjb2RlUG9pbnQgPT09IDB4MGUzYSkgewogICAgICAgIC8vIHZpcmFtYQogICAgICAgIHJldHVybiAnQmVsb3dfUmlnaHQnOwogICAgICB9CiAgICB9CgogICAgc3dpdGNoIChjb21iaW5pbmdDbGFzcykgewogICAgICAvLyBIZWJyZXcKCiAgICAgIGNhc2UgJ0NDQzEwJzogLy8gc2hldmEKICAgICAgY2FzZSAnQ0NDMTEnOiAvLyBoYXRhZiBzZWdvbAogICAgICBjYXNlICdDQ0MxMic6IC8vIGhhdGFmIHBhdGFoCiAgICAgIGNhc2UgJ0NDQzEzJzogLy8gaGF0YWYgcWFtYXRzCiAgICAgIGNhc2UgJ0NDQzE0JzogLy8gaGlyaXEKICAgICAgY2FzZSAnQ0NDMTUnOiAvLyB0c2VyZQogICAgICBjYXNlICdDQ0MxNic6IC8vIHNlZ29sCiAgICAgIGNhc2UgJ0NDQzE3JzogLy8gcGF0YWgKICAgICAgY2FzZSAnQ0NDMTgnOiAvLyBxYW1hdHMKICAgICAgY2FzZSAnQ0NDMjAnOiAvLyBxdWJ1dHMKICAgICAgY2FzZSAnQ0NDMjInOgogICAgICAgIC8vIG1ldGVnCiAgICAgICAgcmV0dXJuICdCZWxvdyc7CgogICAgICBjYXNlICdDQ0MyMyc6CiAgICAgICAgLy8gcmFmZQogICAgICAgIHJldHVybiAnQXR0YWNoZWRfQWJvdmUnOwoKICAgICAgY2FzZSAnQ0NDMjQnOgogICAgICAgIC8vIHNoaW4gZG90CiAgICAgICAgcmV0dXJuICdBYm92ZV9SaWdodCc7CgogICAgICBjYXNlICdDQ0MyNSc6IC8vIHNpbiBkb3QKICAgICAgY2FzZSAnQ0NDMTknOgogICAgICAgIC8vIGhvbGFtCiAgICAgICAgcmV0dXJuICdBYm92ZV9MZWZ0JzsKCiAgICAgIGNhc2UgJ0NDQzI2JzoKICAgICAgICAvLyBwb2ludCB2YXJpa2EKICAgICAgICByZXR1cm4gJ0Fib3ZlJzsKCiAgICAgIGNhc2UgJ0NDQzIxJzoKICAgICAgICAvLyBkYWdlc2gKICAgICAgICBicmVhazsKCiAgICAgIC8vIEFyYWJpYyBhbmQgU3lyaWFjCgogICAgICBjYXNlICdDQ0MyNyc6IC8vIGZhdGhhdGFuCiAgICAgIGNhc2UgJ0NDQzI4JzogLy8gZGFtbWF0YW4KICAgICAgY2FzZSAnQ0NDMzAnOiAvLyBmYXRoYQogICAgICBjYXNlICdDQ0MzMSc6IC8vIGRhbW1hCiAgICAgIGNhc2UgJ0NDQzMzJzogLy8gc2hhZGRhCiAgICAgIGNhc2UgJ0NDQzM0JzogLy8gc3VrdW4KICAgICAgY2FzZSAnQ0NDMzUnOiAvLyBzdXBlcnNjcmlwdCBhbGVmCiAgICAgIGNhc2UgJ0NDQzM2JzoKICAgICAgICAvLyBzdXBlcnNjcmlwdCBhbGFwaAogICAgICAgIHJldHVybiAnQWJvdmUnOwoKICAgICAgY2FzZSAnQ0NDMjknOiAvLyBrYXNyYXRhbgogICAgICBjYXNlICdDQ0MzMic6CiAgICAgICAgLy8ga2FzcmEKICAgICAgICByZXR1cm4gJ0JlbG93JzsKCiAgICAgIC8vIFRoYWkKCiAgICAgIGNhc2UgJ0NDQzEwMyc6CiAgICAgICAgLy8gc2FyYSB1IC8gc2FyYSB1dQogICAgICAgIHJldHVybiAnQmVsb3dfUmlnaHQnOwoKICAgICAgY2FzZSAnQ0NDMTA3JzoKICAgICAgICAvLyBtYWkKICAgICAgICByZXR1cm4gJ0Fib3ZlX1JpZ2h0JzsKCiAgICAgIC8vIExhbwoKICAgICAgY2FzZSAnQ0NDMTE4JzoKICAgICAgICAvLyBzaWduIHUgLyBzaWduIHV1CiAgICAgICAgcmV0dXJuICdCZWxvdyc7CgogICAgICBjYXNlICdDQ0MxMjInOgogICAgICAgIC8vIG1haQogICAgICAgIHJldHVybiAnQWJvdmUnOwoKICAgICAgLy8gVGliZXRhbgoKICAgICAgY2FzZSAnQ0NDMTI5JzogLy8gc2lnbiBhYQogICAgICBjYXNlICdDQ0MxMzInOgogICAgICAgIC8vIHNpZ24gdQogICAgICAgIHJldHVybiAnQmVsb3cnOwoKICAgICAgY2FzZSAnQ0NDMTMwJzoKICAgICAgICAvLyBzaWduIGkKICAgICAgICByZXR1cm4gJ0Fib3ZlJzsKICAgIH0KCiAgICByZXR1cm4gY29tYmluaW5nQ2xhc3M7CiAgfTsKCiAgcmV0dXJuIFVuaWNvZGVMYXlvdXRFbmdpbmU7Cn0oKTsKCi8qKgogKiBSZXByZXNlbnRzIGEgZ2x5cGggYm91bmRpbmcgYm94CiAqLwp2YXIgQkJveCA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBCQm94KCkgewogICAgdmFyIG1pblggPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IEluZmluaXR5OwogICAgdmFyIG1pblkgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IEluZmluaXR5OwogICAgdmFyIG1heFggPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IC1JbmZpbml0eTsKICAgIHZhciBtYXhZID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgJiYgYXJndW1lbnRzWzNdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbM10gOiAtSW5maW5pdHk7CgogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEJCb3gpOwoKICAgIC8qKgogICAgICogVGhlIG1pbmltdW0gWCBwb3NpdGlvbiBpbiB0aGUgYm91bmRpbmcgYm94CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICB0aGlzLm1pblggPSBtaW5YOwoKICAgIC8qKgogICAgICogVGhlIG1pbmltdW0gWSBwb3NpdGlvbiBpbiB0aGUgYm91bmRpbmcgYm94CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICB0aGlzLm1pblkgPSBtaW5ZOwoKICAgIC8qKgogICAgICogVGhlIG1heG1pbXVtIFggcG9zaXRpb24gaW4gdGhlIGJvdW5kaW5nIGJveAogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwogICAgdGhpcy5tYXhYID0gbWF4WDsKCiAgICAvKioKICAgICAqIFRoZSBtYXhtaW11bSBZIHBvc2l0aW9uIGluIHRoZSBib3VuZGluZyBib3gKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KICAgIHRoaXMubWF4WSA9IG1heFk7CiAgfQoKICAvKioKICAgKiBUaGUgd2lkdGggb2YgdGhlIGJvdW5kaW5nIGJveAogICAqIEB0eXBlIHtudW1iZXJ9CiAgICovCgoKICBCQm94LnByb3RvdHlwZS5hZGRQb2ludCA9IGZ1bmN0aW9uIGFkZFBvaW50KHgsIHkpIHsKICAgIGlmIChNYXRoLmFicyh4KSAhPT0gSW5maW5pdHkpIHsKICAgICAgaWYgKHggPCB0aGlzLm1pblgpIHsKICAgICAgICB0aGlzLm1pblggPSB4OwogICAgICB9CgogICAgICBpZiAoeCA+IHRoaXMubWF4WCkgewogICAgICAgIHRoaXMubWF4WCA9IHg7CiAgICAgIH0KICAgIH0KCiAgICBpZiAoTWF0aC5hYnMoeSkgIT09IEluZmluaXR5KSB7CiAgICAgIGlmICh5IDwgdGhpcy5taW5ZKSB7CiAgICAgICAgdGhpcy5taW5ZID0geTsKICAgICAgfQoKICAgICAgaWYgKHkgPiB0aGlzLm1heFkpIHsKICAgICAgICB0aGlzLm1heFkgPSB5OwogICAgICB9CiAgICB9CiAgfTsKCiAgQkJveC5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkoKSB7CiAgICByZXR1cm4gbmV3IEJCb3godGhpcy5taW5YLCB0aGlzLm1pblksIHRoaXMubWF4WCwgdGhpcy5tYXhZKTsKICB9OwoKICBfY3JlYXRlQ2xhc3MoQkJveCwgW3sKICAgIGtleTogIndpZHRoIiwKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5tYXhYIC0gdGhpcy5taW5YOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGhlaWdodCBvZiB0aGUgYm91bmRpbmcgYm94CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCgogIH0sIHsKICAgIGtleTogImhlaWdodCIsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMubWF4WSAtIHRoaXMubWluWTsKICAgIH0KICB9XSk7CgogIHJldHVybiBCQm94Owp9KCk7CgovLyBUaGlzIG1hcHMgdGhlIFVuaWNvZGUgU2NyaXB0IHByb3BlcnR5IHRvIGFuIE9wZW5UeXBlIHNjcmlwdCB0YWcKLy8gRGF0YSBmcm9tIGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS90eXBvZ3JhcGh5L290c3BlYy9zY3JpcHR0YWdzLmh0bQovLyBhbmQgaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvVU5JREFUQS9Qcm9wZXJ0eVZhbHVlQWxpYXNlcy50eHQuCnZhciBVTklDT0RFX1NDUklQVFMgPSB7CiAgQ2F1Y2FzaWFuX0FsYmFuaWFuOiAnYWdoYicsCiAgQXJhYmljOiAnYXJhYicsCiAgSW1wZXJpYWxfQXJhbWFpYzogJ2FybWknLAogIEFybWVuaWFuOiAnYXJtbicsCiAgQXZlc3RhbjogJ2F2c3QnLAogIEJhbGluZXNlOiAnYmFsaScsCiAgQmFtdW06ICdiYW11JywKICBCYXNzYV9WYWg6ICdiYXNzJywKICBCYXRhazogJ2JhdGsnLAogIEJlbmdhbGk6IFsnYm5nMicsICdiZW5nJ10sCiAgQm9wb21vZm86ICdib3BvJywKICBCcmFobWk6ICdicmFoJywKICBCcmFpbGxlOiAnYnJhaScsCiAgQnVnaW5lc2U6ICdidWdpJywKICBCdWhpZDogJ2J1aGQnLAogIENoYWttYTogJ2Nha20nLAogIENhbmFkaWFuX0Fib3JpZ2luYWw6ICdjYW5zJywKICBDYXJpYW46ICdjYXJpJywKICBDaGFtOiAnY2hhbScsCiAgQ2hlcm9rZWU6ICdjaGVyJywKICBDb3B0aWM6ICdjb3B0JywKICBDeXByaW90OiAnY3BydCcsCiAgQ3lyaWxsaWM6ICdjeXJsJywKICBEZXZhbmFnYXJpOiBbJ2RldjInLCAnZGV2YSddLAogIERlc2VyZXQ6ICdkc3J0JywKICBEdXBsb3lhbjogJ2R1cGwnLAogIEVneXB0aWFuX0hpZXJvZ2x5cGhzOiAnZWd5cCcsCiAgRWxiYXNhbjogJ2VsYmEnLAogIEV0aGlvcGljOiAnZXRoaScsCiAgR2VvcmdpYW46ICdnZW9yJywKICBHbGFnb2xpdGljOiAnZ2xhZycsCiAgR290aGljOiAnZ290aCcsCiAgR3JhbnRoYTogJ2dyYW4nLAogIEdyZWVrOiAnZ3JlaycsCiAgR3VqYXJhdGk6IFsnZ2pyMicsICdndWpyJ10sCiAgR3VybXVraGk6IFsnZ3VyMicsICdndXJ1J10sCiAgSGFuZ3VsOiAnaGFuZycsCiAgSGFuOiAnaGFuaScsCiAgSGFudW5vbzogJ2hhbm8nLAogIEhlYnJldzogJ2hlYnInLAogIEhpcmFnYW5hOiAnaGlyYScsCiAgUGFoYXdoX0htb25nOiAnaG1uZycsCiAgS2F0YWthbmFfT3JfSGlyYWdhbmE6ICdocmt0JywKICBPbGRfSXRhbGljOiAnaXRhbCcsCiAgSmF2YW5lc2U6ICdqYXZhJywKICBLYXlhaF9MaTogJ2thbGknLAogIEthdGFrYW5hOiAna2FuYScsCiAgS2hhcm9zaHRoaTogJ2toYXInLAogIEtobWVyOiAna2htcicsCiAgS2hvamtpOiAna2hvaicsCiAgS2FubmFkYTogWydrbmQyJywgJ2tuZGEnXSwKICBLYWl0aGk6ICdrdGhpJywKICBUYWlfVGhhbTogJ2xhbmEnLAogIExhbzogJ2xhbyAnLAogIExhdGluOiAnbGF0bicsCiAgTGVwY2hhOiAnbGVwYycsCiAgTGltYnU6ICdsaW1iJywKICBMaW5lYXJfQTogJ2xpbmEnLAogIExpbmVhcl9COiAnbGluYicsCiAgTGlzdTogJ2xpc3UnLAogIEx5Y2lhbjogJ2x5Y2knLAogIEx5ZGlhbjogJ2x5ZGknLAogIE1haGFqYW5pOiAnbWFoaicsCiAgTWFuZGFpYzogJ21hbmQnLAogIE1hbmljaGFlYW46ICdtYW5pJywKICBNZW5kZV9LaWtha3VpOiAnbWVuZCcsCiAgTWVyb2l0aWNfQ3Vyc2l2ZTogJ21lcmMnLAogIE1lcm9pdGljX0hpZXJvZ2x5cGhzOiAnbWVybycsCiAgTWFsYXlhbGFtOiBbJ21sbTInLCAnbWx5bSddLAogIE1vZGk6ICdtb2RpJywKICBNb25nb2xpYW46ICdtb25nJywKICBNcm86ICdtcm9vJywKICBNZWV0ZWlfTWF5ZWs6ICdtdGVpJywKICBNeWFubWFyOiBbJ215bTInLCAnbXltciddLAogIE9sZF9Ob3J0aF9BcmFiaWFuOiAnbmFyYicsCiAgTmFiYXRhZWFuOiAnbmJhdCcsCiAgTmtvOiAnbmtvICcsCiAgT2doYW06ICdvZ2FtJywKICBPbF9DaGlraTogJ29sY2snLAogIE9sZF9UdXJraWM6ICdvcmtoJywKICBPcml5YTogWydvcnkyJywgJ29yeWEnXSwKICBPc21hbnlhOiAnb3NtYScsCiAgUGFsbXlyZW5lOiAncGFsbScsCiAgUGF1X0Npbl9IYXU6ICdwYXVjJywKICBPbGRfUGVybWljOiAncGVybScsCiAgUGhhZ3NfUGE6ICdwaGFnJywKICBJbnNjcmlwdGlvbmFsX1BhaGxhdmk6ICdwaGxpJywKICBQc2FsdGVyX1BhaGxhdmk6ICdwaGxwJywKICBQaG9lbmljaWFuOiAncGhueCcsCiAgTWlhbzogJ3BscmQnLAogIEluc2NyaXB0aW9uYWxfUGFydGhpYW46ICdwcnRpJywKICBSZWphbmc6ICdyam5nJywKICBSdW5pYzogJ3J1bnInLAogIFNhbWFyaXRhbjogJ3NhbXInLAogIE9sZF9Tb3V0aF9BcmFiaWFuOiAnc2FyYicsCiAgU2F1cmFzaHRyYTogJ3NhdXInLAogIFNoYXZpYW46ICdzaGF3JywKICBTaGFyYWRhOiAnc2hyZCcsCiAgU2lkZGhhbTogJ3NpZGQnLAogIEtodWRhd2FkaTogJ3NpbmQnLAogIFNpbmhhbGE6ICdzaW5oJywKICBTb3JhX1NvbXBlbmc6ICdzb3JhJywKICBTdW5kYW5lc2U6ICdzdW5kJywKICBTeWxvdGlfTmFncmk6ICdzeWxvJywKICBTeXJpYWM6ICdzeXJjJywKICBUYWdiYW53YTogJ3RhZ2InLAogIFRha3JpOiAndGFrcicsCiAgVGFpX0xlOiAndGFsZScsCiAgTmV3X1RhaV9MdWU6ICd0YWx1JywKICBUYW1pbDogWyd0bWwyJywgJ3RhbWwnXSwKICBUYWlfVmlldDogJ3RhdnQnLAogIFRlbHVndTogWyd0ZWwyJywgJ3RlbHUnXSwKICBUaWZpbmFnaDogJ3RmbmcnLAogIFRhZ2Fsb2c6ICd0Z2xnJywKICBUaGFhbmE6ICd0aGFhJywKICBUaGFpOiAndGhhaScsCiAgVGliZXRhbjogJ3RpYnQnLAogIFRpcmh1dGE6ICd0aXJoJywKICBVZ2FyaXRpYzogJ3VnYXInLAogIFZhaTogJ3ZhaSAnLAogIFdhcmFuZ19DaXRpOiAnd2FyYScsCiAgT2xkX1BlcnNpYW46ICd4cGVvJywKICBDdW5laWZvcm06ICd4c3V4JywKICBZaTogJ3lpICAnLAogIEluaGVyaXRlZDogJ3ppbmgnLAogIENvbW1vbjogJ3p5eXknLAogIFVua25vd246ICd6enp6Jwp9OwoKdmFyIE9QRU5UWVBFX1NDUklQVFMgPSB7fTsKZm9yICh2YXIgc2NyaXB0IGluIFVOSUNPREVfU0NSSVBUUykgewogIHZhciB0YWcgPSBVTklDT0RFX1NDUklQVFNbc2NyaXB0XTsKICBpZiAoQXJyYXkuaXNBcnJheSh0YWcpKSB7CiAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSB0YWcsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgICB2YXIgX3JlZjsKCiAgICAgIGlmIChfaXNBcnJheSkgewogICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgdCA9IF9yZWY7CgogICAgICBPUEVOVFlQRV9TQ1JJUFRTW3RdID0gc2NyaXB0OwogICAgfQogIH0gZWxzZSB7CiAgICBPUEVOVFlQRV9TQ1JJUFRTW3RhZ10gPSBzY3JpcHQ7CiAgfQp9CgpmdW5jdGlvbiBmcm9tT3BlblR5cGUodGFnKSB7CiAgcmV0dXJuIE9QRU5UWVBFX1NDUklQVFNbdGFnXTsKfQoKZnVuY3Rpb24gZm9yU3RyaW5nKHN0cmluZykgewogIHZhciBsZW4gPSBzdHJpbmcubGVuZ3RoOwogIHZhciBpZHggPSAwOwogIHdoaWxlIChpZHggPCBsZW4pIHsKICAgIHZhciBjb2RlID0gc3RyaW5nLmNoYXJDb2RlQXQoaWR4KyspOwoKICAgIC8vIENoZWNrIGlmIHRoaXMgaXMgYSBoaWdoIHN1cnJvZ2F0ZQogICAgaWYgKDB4ZDgwMCA8PSBjb2RlICYmIGNvZGUgPD0gMHhkYmZmICYmIGlkeCA8IGxlbikgewogICAgICB2YXIgbmV4dCA9IHN0cmluZy5jaGFyQ29kZUF0KGlkeCk7CgogICAgICAvLyBDaGVjayBpZiB0aGlzIGlzIGEgbG93IHN1cnJvZ2F0ZQogICAgICBpZiAoMHhkYzAwIDw9IG5leHQgJiYgbmV4dCA8PSAweGRmZmYpIHsKICAgICAgICBpZHgrKzsKICAgICAgICBjb2RlID0gKChjb2RlICYgMHgzRkYpIDw8IDEwKSArIChuZXh0ICYgMHgzRkYpICsgMHgxMDAwMDsKICAgICAgfQogICAgfQoKICAgIHZhciBfc2NyaXB0ID0gdW5pY29kZS5nZXRTY3JpcHQoY29kZSk7CiAgICBpZiAoX3NjcmlwdCAhPT0gJ0NvbW1vbicgJiYgX3NjcmlwdCAhPT0gJ0luaGVyaXRlZCcgJiYgX3NjcmlwdCAhPT0gJ1Vua25vd24nKSB7CiAgICAgIHJldHVybiBVTklDT0RFX1NDUklQVFNbX3NjcmlwdF07CiAgICB9CiAgfQoKICByZXR1cm4gVU5JQ09ERV9TQ1JJUFRTLlVua25vd247Cn0KCmZ1bmN0aW9uIGZvckNvZGVQb2ludHMoY29kZVBvaW50cykgewogIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZVBvaW50cy5sZW5ndGg7IGkrKykgewogICAgdmFyIGNvZGVQb2ludCA9IGNvZGVQb2ludHNbaV07CiAgICB2YXIgX3NjcmlwdDIgPSB1bmljb2RlLmdldFNjcmlwdChjb2RlUG9pbnQpOwogICAgaWYgKF9zY3JpcHQyICE9PSAnQ29tbW9uJyAmJiBfc2NyaXB0MiAhPT0gJ0luaGVyaXRlZCcgJiYgX3NjcmlwdDIgIT09ICdVbmtub3duJykgewogICAgICByZXR1cm4gVU5JQ09ERV9TQ1JJUFRTW19zY3JpcHQyXTsKICAgIH0KICB9CgogIHJldHVybiBVTklDT0RFX1NDUklQVFMuVW5rbm93bjsKfQoKLy8gVGhlIHNjcmlwdHMgaW4gdGhpcyBtYXAgYXJlIHdyaXR0ZW4gZnJvbSByaWdodCB0byBsZWZ0CnZhciBSVEwgPSB7CiAgYXJhYjogdHJ1ZSwgLy8gQXJhYmljCiAgaGVicjogdHJ1ZSwgLy8gSGVicmV3CiAgc3lyYzogdHJ1ZSwgLy8gU3lyaWFjCiAgdGhhYTogdHJ1ZSwgLy8gVGhhYW5hCiAgY3BydDogdHJ1ZSwgLy8gQ3lwcmlvdCBTeWxsYWJhcnkKICBraGFyOiB0cnVlLCAvLyBLaGFyb3N0aGkKICBwaG54OiB0cnVlLCAvLyBQaG9lbmljaWFuCiAgJ25rbyAnOiB0cnVlLCAvLyBOJ0tvCiAgbHlkaTogdHJ1ZSwgLy8gTHlkaWFuCiAgYXZzdDogdHJ1ZSwgLy8gQXZlc3RhbgogIGFybWk6IHRydWUsIC8vIEltcGVyaWFsIEFyYW1haWMKICBwaGxpOiB0cnVlLCAvLyBJbnNjcmlwdGlvbmFsIFBhaGxhdmkKICBwcnRpOiB0cnVlLCAvLyBJbnNjcmlwdGlvbmFsIFBhcnRoaWFuCiAgc2FyYjogdHJ1ZSwgLy8gT2xkIFNvdXRoIEFyYWJpYW4KICBvcmtoOiB0cnVlLCAvLyBPbGQgVHVya2ljLCBPcmtob24gUnVuaWMKICBzYW1yOiB0cnVlLCAvLyBTYW1hcml0YW4KICBtYW5kOiB0cnVlLCAvLyBNYW5kYWljLCBNYW5kYWVhbgogIG1lcmM6IHRydWUsIC8vIE1lcm9pdGljIEN1cnNpdmUKICBtZXJvOiB0cnVlLCAvLyBNZXJvaXRpYyBIaWVyb2dseXBocwoKICAvLyBVbmljb2RlIDcuMCAobm90IGxpc3RlZCBvbiBodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vdHlwb2dyYXBoeS9vdHNwZWMvc2NyaXB0dGFncy5odG0pCiAgbWFuaTogdHJ1ZSwgLy8gTWFuaWNoYWVhbgogIG1lbmQ6IHRydWUsIC8vIE1lbmRlIEtpa2FrdWkKICBuYmF0OiB0cnVlLCAvLyBOYWJhdGFlYW4KICBuYXJiOiB0cnVlLCAvLyBPbGQgTm9ydGggQXJhYmlhbgogIHBhbG06IHRydWUsIC8vIFBhbG15cmVuZQogIHBobHA6IHRydWUgLy8gUHNhbHRlciBQYWhsYXZpCn07CgpmdW5jdGlvbiBkaXJlY3Rpb24oc2NyaXB0KSB7CiAgaWYgKFJUTFtzY3JpcHRdKSB7CiAgICByZXR1cm4gJ3J0bCc7CiAgfQoKICByZXR1cm4gJ2x0cic7Cn0KCi8qKgogKiBSZXByZXNlbnRzIGEgcnVuIG9mIEdseXBoIGFuZCBHbHlwaFBvc2l0aW9uIG9iamVjdHMuCiAqIFJldHVybmVkIGJ5IHRoZSBmb250IGxheW91dCBtZXRob2QuCiAqLwoKdmFyIEdseXBoUnVuID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIEdseXBoUnVuKGdseXBocywgZmVhdHVyZXMsIHNjcmlwdCwgbGFuZ3VhZ2UsIGRpcmVjdGlvbiQkKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgR2x5cGhSdW4pOwoKICAgIC8qKgogICAgICogQW4gYXJyYXkgb2YgR2x5cGggb2JqZWN0cyBpbiB0aGUgcnVuCiAgICAgKiBAdHlwZSB7R2x5cGhbXX0KICAgICAqLwogICAgdGhpcy5nbHlwaHMgPSBnbHlwaHM7CgogICAgLyoqCiAgICAgKiBBbiBhcnJheSBvZiBHbHlwaFBvc2l0aW9uIG9iamVjdHMgZm9yIGVhY2ggZ2x5cGggaW4gdGhlIHJ1bgogICAgICogQHR5cGUge0dseXBoUG9zaXRpb25bXX0KICAgICAqLwogICAgdGhpcy5wb3NpdGlvbnMgPSBudWxsOwoKICAgIC8qKgogICAgICogVGhlIHNjcmlwdCB0aGF0IHdhcyByZXF1ZXN0ZWQgZm9yIHNoYXBpbmcuIFRoaXMgd2FzIGVpdGhlciBwYXNzZWQgaW4gb3IgZGV0ZWN0ZWQgYXV0b21hdGljYWxseS4KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIHRoaXMuc2NyaXB0ID0gc2NyaXB0OwoKICAgIC8qKgogICAgICogVGhlIGxhbmd1YWdlIHJlcXVlc3RlZCBmb3Igc2hhcGluZywgYXMgcGFzc2VkIGluLiBJZiBgbnVsbGAsIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGZvciB0aGUKICAgICAqIHNjcmlwdCB3YXMgdXNlZC4KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZSB8fCBudWxsOwoKICAgIC8qKgogICAgICogVGhlIGRpcmVjdGlvbiByZXF1ZXN0ZWQgZm9yIHNoYXBpbmcsIGFzIHBhc3NlZCBpbiAoZWl0aGVyIGx0ciBvciBydGwpLgogICAgICogSWYgYG51bGxgLCB0aGUgZGVmYXVsdCBkaXJlY3Rpb24gb2YgdGhlIHNjcmlwdCBpcyB1c2VkLgogICAgICogQHR5cGUge3N0cmluZ30KICAgICAqLwogICAgdGhpcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb24kJCB8fCBkaXJlY3Rpb24oc2NyaXB0KTsKCiAgICAvKioKICAgICAqIFRoZSBmZWF0dXJlcyByZXF1ZXN0ZWQgZHVyaW5nIHNoYXBpbmcuIFRoaXMgaXMgYSBjb21iaW5hdGlvbiBvZiB1c2VyCiAgICAgKiBzcGVjaWZpZWQgZmVhdHVyZXMgYW5kIGZlYXR1cmVzIGNob3NlbiBieSB0aGUgc2hhcGVyLgogICAgICogQHR5cGUge29iamVjdH0KICAgICAqLwogICAgdGhpcy5mZWF0dXJlcyA9IHt9OwoKICAgIC8vIENvbnZlcnQgZmVhdHVyZXMgdG8gYW4gb2JqZWN0CiAgICBpZiAoQXJyYXkuaXNBcnJheShmZWF0dXJlcykpIHsKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gZmVhdHVyZXMsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgICAgIHZhciBfcmVmOwoKICAgICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciB0YWcgPSBfcmVmOwoKICAgICAgICB0aGlzLmZlYXR1cmVzW3RhZ10gPSB0cnVlOwogICAgICB9CiAgICB9IGVsc2UgaWYgKCh0eXBlb2YgZmVhdHVyZXMgPT09ICd1bmRlZmluZWQnID8gJ3VuZGVmaW5lZCcgOiBfdHlwZW9mKGZlYXR1cmVzKSkgPT09ICdvYmplY3QnKSB7CiAgICAgIHRoaXMuZmVhdHVyZXMgPSBmZWF0dXJlczsKICAgIH0KICB9CgogIC8qKgogICAqIFRoZSB0b3RhbCBhZHZhbmNlIHdpZHRoIG9mIHRoZSBydW4uCiAgICogQHR5cGUge251bWJlcn0KICAgKi8KCgogIF9jcmVhdGVDbGFzcyhHbHlwaFJ1biwgW3sKICAgIGtleTogJ2FkdmFuY2VXaWR0aCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgdmFyIHdpZHRoID0gMDsKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IHRoaXMucG9zaXRpb25zLCBfaXNBcnJheTIgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjIpLCBfaTIgPSAwLCBfaXRlcmF0b3IyID0gX2lzQXJyYXkyID8gX2l0ZXJhdG9yMiA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IyKTs7KSB7CiAgICAgICAgdmFyIF9yZWYyOwoKICAgICAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgICAgICBpZiAoX2kyID49IF9pdGVyYXRvcjIubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWYyID0gX2l0ZXJhdG9yMltfaTIrK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pMiA9IF9pdGVyYXRvcjIubmV4dCgpOwogICAgICAgICAgaWYgKF9pMi5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWYyID0gX2kyLnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIHBvc2l0aW9uID0gX3JlZjI7CgogICAgICAgIHdpZHRoICs9IHBvc2l0aW9uLnhBZHZhbmNlOwogICAgICB9CgogICAgICByZXR1cm4gd2lkdGg7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgdG90YWwgYWR2YW5jZSBoZWlnaHQgb2YgdGhlIHJ1bi4KICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnYWR2YW5jZUhlaWdodCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgdmFyIGhlaWdodCA9IDA7CiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSB0aGlzLnBvc2l0aW9ucywgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMyk7OykgewogICAgICAgIHZhciBfcmVmMzsKCiAgICAgICAgaWYgKF9pc0FycmF5MykgewogICAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pdGVyYXRvcjNbX2kzKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTsKICAgICAgICAgIGlmIChfaTMuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pMy52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBwb3NpdGlvbiA9IF9yZWYzOwoKICAgICAgICBoZWlnaHQgKz0gcG9zaXRpb24ueUFkdmFuY2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBoZWlnaHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgYm91bmRpbmcgYm94IGNvbnRhaW5pbmcgYWxsIGdseXBocyBpbiB0aGUgcnVuLgogICAgICogQHR5cGUge0JCb3h9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnYmJveCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgdmFyIGJib3ggPSBuZXcgQkJveCgpOwoKICAgICAgdmFyIHggPSAwOwogICAgICB2YXIgeSA9IDA7CiAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmdseXBocy5sZW5ndGg7IGluZGV4KyspIHsKICAgICAgICB2YXIgZ2x5cGggPSB0aGlzLmdseXBoc1tpbmRleF07CiAgICAgICAgdmFyIHAgPSB0aGlzLnBvc2l0aW9uc1tpbmRleF07CiAgICAgICAgdmFyIGIgPSBnbHlwaC5iYm94OwoKICAgICAgICBiYm94LmFkZFBvaW50KGIubWluWCArIHggKyBwLnhPZmZzZXQsIGIubWluWSArIHkgKyBwLnlPZmZzZXQpOwogICAgICAgIGJib3guYWRkUG9pbnQoYi5tYXhYICsgeCArIHAueE9mZnNldCwgYi5tYXhZICsgeSArIHAueU9mZnNldCk7CgogICAgICAgIHggKz0gcC54QWR2YW5jZTsKICAgICAgICB5ICs9IHAueUFkdmFuY2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBiYm94OwogICAgfQogIH1dKTsKCiAgcmV0dXJuIEdseXBoUnVuOwp9KCk7CgovKioKICogUmVwcmVzZW50cyBwb3NpdGlvbmluZyBpbmZvcm1hdGlvbiBmb3IgYSBnbHlwaCBpbiBhIEdseXBoUnVuLgogKi8KdmFyIEdseXBoUG9zaXRpb24gPSBmdW5jdGlvbiBHbHlwaFBvc2l0aW9uKCkgewogIHZhciB4QWR2YW5jZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogMDsKICB2YXIgeUFkdmFuY2UgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDA7CiAgdmFyIHhPZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDA7CiAgdmFyIHlPZmZzZXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IDA7CgogIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBHbHlwaFBvc2l0aW9uKTsKCiAgLyoqCiAgICogVGhlIGFtb3VudCB0byBtb3ZlIHRoZSB2aXJ0dWFsIHBlbiBpbiB0aGUgWCBkaXJlY3Rpb24gYWZ0ZXIgcmVuZGVyaW5nIHRoaXMgZ2x5cGguCiAgICogQHR5cGUge251bWJlcn0KICAgKi8KICB0aGlzLnhBZHZhbmNlID0geEFkdmFuY2U7CgogIC8qKgogICAqIFRoZSBhbW91bnQgdG8gbW92ZSB0aGUgdmlydHVhbCBwZW4gaW4gdGhlIFkgZGlyZWN0aW9uIGFmdGVyIHJlbmRlcmluZyB0aGlzIGdseXBoLgogICAqIEB0eXBlIHtudW1iZXJ9CiAgICovCiAgdGhpcy55QWR2YW5jZSA9IHlBZHZhbmNlOwoKICAvKioKICAgKiBUaGUgb2Zmc2V0IGZyb20gdGhlIHBlbiBwb3NpdGlvbiBpbiB0aGUgWCBkaXJlY3Rpb24gYXQgd2hpY2ggdG8gcmVuZGVyIHRoaXMgZ2x5cGguCiAgICogQHR5cGUge251bWJlcn0KICAgKi8KICB0aGlzLnhPZmZzZXQgPSB4T2Zmc2V0OwoKICAvKioKICAgKiBUaGUgb2Zmc2V0IGZyb20gdGhlIHBlbiBwb3NpdGlvbiBpbiB0aGUgWSBkaXJlY3Rpb24gYXQgd2hpY2ggdG8gcmVuZGVyIHRoaXMgZ2x5cGguCiAgICogQHR5cGUge251bWJlcn0KICAgKi8KICB0aGlzLnlPZmZzZXQgPSB5T2Zmc2V0Owp9OwoKLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9mb250cy9UcnVlVHlwZS1SZWZlcmVuY2UtTWFudWFsL1JNMDkvQXBwZW5kaXhGLmh0bWwKLy8gYW5kIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVUZXh0LmZyYW1ld29yay9WZXJzaW9ucy9BL0hlYWRlcnMvU0ZOVExheW91dFR5cGVzLmggb24gYSBNYWMKdmFyIGZlYXR1cmVzID0gewogIGFsbFR5cG9ncmFwaGljRmVhdHVyZXM6IHsKICAgIGNvZGU6IDAsCiAgICBleGNsdXNpdmU6IGZhbHNlLAogICAgYWxsVHlwZUZlYXR1cmVzOiAwCiAgfSwKICBsaWdhdHVyZXM6IHsKICAgIGNvZGU6IDEsCiAgICBleGNsdXNpdmU6IGZhbHNlLAogICAgcmVxdWlyZWRMaWdhdHVyZXM6IDAsCiAgICBjb21tb25MaWdhdHVyZXM6IDIsCiAgICByYXJlTGlnYXR1cmVzOiA0LAogICAgLy8gbG9nb3M6IDYKICAgIHJlYnVzUGljdHVyZXM6IDgsCiAgICBkaXBodGhvbmdMaWdhdHVyZXM6IDEwLAogICAgc3F1YXJlZExpZ2F0dXJlczogMTIsCiAgICBhYmJyZXZTcXVhcmVkTGlnYXR1cmVzOiAxNCwKICAgIHN5bWJvbExpZ2F0dXJlczogMTYsCiAgICBjb250ZXh0dWFsTGlnYXR1cmVzOiAxOCwKICAgIGhpc3RvcmljYWxMaWdhdHVyZXM6IDIwCiAgfSwKICBjdXJzaXZlQ29ubmVjdGlvbjogewogICAgY29kZTogMiwKICAgIGV4Y2x1c2l2ZTogdHJ1ZSwKICAgIHVuY29ubmVjdGVkOiAwLAogICAgcGFydGlhbGx5Q29ubmVjdGVkOiAxLAogICAgY3Vyc2l2ZTogMgogIH0sCiAgbGV0dGVyQ2FzZTogewogICAgY29kZTogMywKICAgIGV4Y2x1c2l2ZTogdHJ1ZQogIH0sCiAgLy8gdXBwZXJBbmRMb3dlckNhc2U6IDAgICAgICAgICAgIyBkZXByZWNhdGVkCiAgLy8gYWxsQ2FwczogMSAgICAgICAgICAgICAgICAgICAgIyBkZXByZWNhdGVkCiAgLy8gYWxsTG93ZXJDYXNlOiAyICAgICAgICAgICAgICAgIyBkZXByZWNhdGVkCiAgLy8gc21hbGxDYXBzOiAzICAgICAgICAgICAgICAgICAgIyBkZXByZWNhdGVkCiAgLy8gaW5pdGlhbENhcHM6IDQgICAgICAgICAgICAgICAgIyBkZXByZWNhdGVkCiAgLy8gaW5pdGlhbENhcHNBbmRTbWFsbENhcHM6IDUgICAgIyBkZXByZWNhdGVkCiAgdmVydGljYWxTdWJzdGl0dXRpb246IHsKICAgIGNvZGU6IDQsCiAgICBleGNsdXNpdmU6IGZhbHNlLAogICAgc3Vic3RpdHV0ZVZlcnRpY2FsRm9ybXM6IDAKICB9LAogIGxpbmd1aXN0aWNSZWFycmFuZ2VtZW50OiB7CiAgICBjb2RlOiA1LAogICAgZXhjbHVzaXZlOiBmYWxzZSwKICAgIGxpbmd1aXN0aWNSZWFycmFuZ2VtZW50OiAwCiAgfSwKICBudW1iZXJTcGFjaW5nOiB7CiAgICBjb2RlOiA2LAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgbW9ub3NwYWNlZE51bWJlcnM6IDAsCiAgICBwcm9wb3J0aW9uYWxOdW1iZXJzOiAxLAogICAgdGhpcmRXaWR0aE51bWJlcnM6IDIsCiAgICBxdWFydGVyV2lkdGhOdW1iZXJzOiAzCiAgfSwKICBzbWFydFN3YXNoOiB7CiAgICBjb2RlOiA4LAogICAgZXhjbHVzaXZlOiBmYWxzZSwKICAgIHdvcmRJbml0aWFsU3dhc2hlczogMCwKICAgIHdvcmRGaW5hbFN3YXNoZXM6IDIsCiAgICAvLyBsaW5lSW5pdGlhbFN3YXNoZXM6IDQKICAgIC8vIGxpbmVGaW5hbFN3YXNoZXM6IDYKICAgIG5vbkZpbmFsU3dhc2hlczogOAogIH0sCiAgZGlhY3JpdGljczogewogICAgY29kZTogOSwKICAgIGV4Y2x1c2l2ZTogdHJ1ZSwKICAgIHNob3dEaWFjcml0aWNzOiAwLAogICAgaGlkZURpYWNyaXRpY3M6IDEsCiAgICBkZWNvbXBvc2VEaWFjcml0aWNzOiAyCiAgfSwKICB2ZXJ0aWNhbFBvc2l0aW9uOiB7CiAgICBjb2RlOiAxMCwKICAgIGV4Y2x1c2l2ZTogdHJ1ZSwKICAgIG5vcm1hbFBvc2l0aW9uOiAwLAogICAgc3VwZXJpb3JzOiAxLAogICAgaW5mZXJpb3JzOiAyLAogICAgb3JkaW5hbHM6IDMsCiAgICBzY2llbnRpZmljSW5mZXJpb3JzOiA0CiAgfSwKICBmcmFjdGlvbnM6IHsKICAgIGNvZGU6IDExLAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgbm9GcmFjdGlvbnM6IDAsCiAgICB2ZXJ0aWNhbEZyYWN0aW9uczogMSwKICAgIGRpYWdvbmFsRnJhY3Rpb25zOiAyCiAgfSwKICBvdmVybGFwcGluZ0NoYXJhY3RlcnM6IHsKICAgIGNvZGU6IDEzLAogICAgZXhjbHVzaXZlOiBmYWxzZSwKICAgIHByZXZlbnRPdmVybGFwOiAwCiAgfSwKICB0eXBvZ3JhcGhpY0V4dHJhczogewogICAgY29kZTogMTQsCiAgICBleGNsdXNpdmU6IGZhbHNlLAogICAgLy8gaHlwaGVuc1RvRW1EYXNoOiAwCiAgICAvLyBoeXBoZW5Ub0VuRGFzaDogMgogICAgc2xhc2hlZFplcm86IDQKICB9LAogIC8vIGZvcm1JbnRlcnJvYmFuZzogNgogIC8vIHNtYXJ0UXVvdGVzOiA4CiAgLy8gcGVyaW9kc1RvRWxsaXBzaXM6IDEwCiAgbWF0aGVtYXRpY2FsRXh0cmFzOiB7CiAgICBjb2RlOiAxNSwKICAgIGV4Y2x1c2l2ZTogZmFsc2UsCiAgICAvLyBoeXBoZW5Ub01pbnVzOiAwCiAgICAvLyBhc3RlcmlzdG9NdWx0aXBseTogMgogICAgLy8gc2xhc2hUb0RpdmlkZTogNAogICAgLy8gaW5lcXVhbGl0eUxpZ2F0dXJlczogNgogICAgLy8gZXhwb25lbnRzOiA4CiAgICBtYXRoZW1hdGljYWxHcmVlazogMTAKICB9LAogIG9ybmFtZW50U2V0czogewogICAgY29kZTogMTYsCiAgICBleGNsdXNpdmU6IHRydWUsCiAgICBub09ybmFtZW50czogMCwKICAgIGRpbmdiYXRzOiAxLAogICAgcGlDaGFyYWN0ZXJzOiAyLAogICAgZmxldXJvbnM6IDMsCiAgICBkZWNvcmF0aXZlQm9yZGVyczogNCwKICAgIGludGVybmF0aW9uYWxTeW1ib2xzOiA1LAogICAgbWF0aFN5bWJvbHM6IDYKICB9LAogIGNoYXJhY3RlckFsdGVybmF0aXZlczogewogICAgY29kZTogMTcsCiAgICBleGNsdXNpdmU6IHRydWUsCiAgICBub0FsdGVybmF0ZXM6IDAKICB9LAogIC8vIHVzZXIgZGVmaW5lZCBvcHRpb25zCiAgZGVzaWduQ29tcGxleGl0eTogewogICAgY29kZTogMTgsCiAgICBleGNsdXNpdmU6IHRydWUsCiAgICBkZXNpZ25MZXZlbDE6IDAsCiAgICBkZXNpZ25MZXZlbDI6IDEsCiAgICBkZXNpZ25MZXZlbDM6IDIsCiAgICBkZXNpZ25MZXZlbDQ6IDMsCiAgICBkZXNpZ25MZXZlbDU6IDQKICB9LAogIHN0eWxlT3B0aW9uczogewogICAgY29kZTogMTksCiAgICBleGNsdXNpdmU6IHRydWUsCiAgICBub1N0eWxlT3B0aW9uczogMCwKICAgIGRpc3BsYXlUZXh0OiAxLAogICAgZW5ncmF2ZWRUZXh0OiAyLAogICAgaWxsdW1pbmF0ZWRDYXBzOiAzLAogICAgdGl0bGluZ0NhcHM6IDQsCiAgICB0YWxsQ2FwczogNQogIH0sCiAgY2hhcmFjdGVyU2hhcGU6IHsKICAgIGNvZGU6IDIwLAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgdHJhZGl0aW9uYWxDaGFyYWN0ZXJzOiAwLAogICAgc2ltcGxpZmllZENoYXJhY3RlcnM6IDEsCiAgICBKSVMxOTc4Q2hhcmFjdGVyczogMiwKICAgIEpJUzE5ODNDaGFyYWN0ZXJzOiAzLAogICAgSklTMTk5MENoYXJhY3RlcnM6IDQsCiAgICB0cmFkaXRpb25hbEFsdE9uZTogNSwKICAgIHRyYWRpdGlvbmFsQWx0VHdvOiA2LAogICAgdHJhZGl0aW9uYWxBbHRUaHJlZTogNywKICAgIHRyYWRpdGlvbmFsQWx0Rm91cjogOCwKICAgIHRyYWRpdGlvbmFsQWx0Rml2ZTogOSwKICAgIGV4cGVydENoYXJhY3RlcnM6IDEwLAogICAgSklTMjAwNENoYXJhY3RlcnM6IDExLAogICAgaG9qb0NoYXJhY3RlcnM6IDEyLAogICAgTkxDQ2hhcmFjdGVyczogMTMsCiAgICB0cmFkaXRpb25hbE5hbWVzQ2hhcmFjdGVyczogMTQKICB9LAogIG51bWJlckNhc2U6IHsKICAgIGNvZGU6IDIxLAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgbG93ZXJDYXNlTnVtYmVyczogMCwKICAgIHVwcGVyQ2FzZU51bWJlcnM6IDEKICB9LAogIHRleHRTcGFjaW5nOiB7CiAgICBjb2RlOiAyMiwKICAgIGV4Y2x1c2l2ZTogdHJ1ZSwKICAgIHByb3BvcnRpb25hbFRleHQ6IDAsCiAgICBtb25vc3BhY2VkVGV4dDogMSwKICAgIGhhbGZXaWR0aFRleHQ6IDIsCiAgICB0aGlyZFdpZHRoVGV4dDogMywKICAgIHF1YXJ0ZXJXaWR0aFRleHQ6IDQsCiAgICBhbHRQcm9wb3J0aW9uYWxUZXh0OiA1LAogICAgYWx0SGFsZldpZHRoVGV4dDogNgogIH0sCiAgdHJhbnNsaXRlcmF0aW9uOiB7CiAgICBjb2RlOiAyMywKICAgIGV4Y2x1c2l2ZTogdHJ1ZSwKICAgIG5vVHJhbnNsaXRlcmF0aW9uOiAwCiAgfSwKICAvLyBoYW5qYVRvSGFuZ3VsOiAxCiAgLy8gaGlyYWdhbmFUb0thdGFrYW5hOiAyCiAgLy8ga2F0YWthbmFUb0hpcmFnYW5hOiAzCiAgLy8ga2FuYVRvUm9tYW5pemF0aW9uOiA0CiAgLy8gcm9tYW5pemF0aW9uVG9IaXJhZ2FuYTogNQogIC8vIHJvbWFuaXphdGlvblRvS2F0YWthbmE6IDYKICAvLyBoYW5qYVRvSGFuZ3VsQWx0T25lOiA3CiAgLy8gaGFuamFUb0hhbmd1bEFsdFR3bzogOAogIC8vIGhhbmphVG9IYW5ndWxBbHRUaHJlZTogOQogIGFubm90YXRpb246IHsKICAgIGNvZGU6IDI0LAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgbm9Bbm5vdGF0aW9uOiAwLAogICAgYm94QW5ub3RhdGlvbjogMSwKICAgIHJvdW5kZWRCb3hBbm5vdGF0aW9uOiAyLAogICAgY2lyY2xlQW5ub3RhdGlvbjogMywKICAgIGludmVydGVkQ2lyY2xlQW5ub3RhdGlvbjogNCwKICAgIHBhcmVudGhlc2lzQW5ub3RhdGlvbjogNSwKICAgIHBlcmlvZEFubm90YXRpb246IDYsCiAgICByb21hbk51bWVyYWxBbm5vdGF0aW9uOiA3LAogICAgZGlhbW9uZEFubm90YXRpb246IDgsCiAgICBpbnZlcnRlZEJveEFubm90YXRpb246IDksCiAgICBpbnZlcnRlZFJvdW5kZWRCb3hBbm5vdGF0aW9uOiAxMAogIH0sCiAga2FuYVNwYWNpbmc6IHsKICAgIGNvZGU6IDI1LAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgZnVsbFdpZHRoS2FuYTogMCwKICAgIHByb3BvcnRpb25hbEthbmE6IDEKICB9LAogIGlkZW9ncmFwaGljU3BhY2luZzogewogICAgY29kZTogMjYsCiAgICBleGNsdXNpdmU6IHRydWUsCiAgICBmdWxsV2lkdGhJZGVvZ3JhcGhzOiAwLAogICAgcHJvcG9ydGlvbmFsSWRlb2dyYXBoczogMSwKICAgIGhhbGZXaWR0aElkZW9ncmFwaHM6IDIKICB9LAogIHVuaWNvZGVEZWNvbXBvc2l0aW9uOiB7CiAgICBjb2RlOiAyNywKICAgIGV4Y2x1c2l2ZTogZmFsc2UsCiAgICBjYW5vbmljYWxDb21wb3NpdGlvbjogMCwKICAgIGNvbXBhdGliaWxpdHlDb21wb3NpdGlvbjogMiwKICAgIHRyYW5zY29kaW5nQ29tcG9zaXRpb246IDQKICB9LAogIHJ1YnlLYW5hOiB7CiAgICBjb2RlOiAyOCwKICAgIGV4Y2x1c2l2ZTogZmFsc2UsCiAgICAvLyBub1J1YnlLYW5hOiAwICAgICAjIGRlcHJlY2F0ZWQgLSB1c2UgcnVieUthbmFPZmYgaW5zdGVhZAogICAgLy8gcnVieUthbmE6IDEgICAgICMgZGVwcmVjYXRlZCAtIHVzZSBydWJ5S2FuYU9uIGluc3RlYWQKICAgIHJ1YnlLYW5hOiAyCiAgfSwKICBDSktTeW1ib2xBbHRlcm5hdGl2ZXM6IHsKICAgIGNvZGU6IDI5LAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgbm9DSktTeW1ib2xBbHRlcm5hdGl2ZXM6IDAsCiAgICBDSktTeW1ib2xBbHRPbmU6IDEsCiAgICBDSktTeW1ib2xBbHRUd286IDIsCiAgICBDSktTeW1ib2xBbHRUaHJlZTogMywKICAgIENKS1N5bWJvbEFsdEZvdXI6IDQsCiAgICBDSktTeW1ib2xBbHRGaXZlOiA1CiAgfSwKICBpZGVvZ3JhcGhpY0FsdGVybmF0aXZlczogewogICAgY29kZTogMzAsCiAgICBleGNsdXNpdmU6IHRydWUsCiAgICBub0lkZW9ncmFwaGljQWx0ZXJuYXRpdmVzOiAwLAogICAgaWRlb2dyYXBoaWNBbHRPbmU6IDEsCiAgICBpZGVvZ3JhcGhpY0FsdFR3bzogMiwKICAgIGlkZW9ncmFwaGljQWx0VGhyZWU6IDMsCiAgICBpZGVvZ3JhcGhpY0FsdEZvdXI6IDQsCiAgICBpZGVvZ3JhcGhpY0FsdEZpdmU6IDUKICB9LAogIENKS1ZlcnRpY2FsUm9tYW5QbGFjZW1lbnQ6IHsKICAgIGNvZGU6IDMxLAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgQ0pLVmVydGljYWxSb21hbkNlbnRlcmVkOiAwLAogICAgQ0pLVmVydGljYWxSb21hbkhCYXNlbGluZTogMQogIH0sCiAgaXRhbGljQ0pLUm9tYW46IHsKICAgIGNvZGU6IDMyLAogICAgZXhjbHVzaXZlOiBmYWxzZSwKICAgIC8vIG5vQ0pLSXRhbGljUm9tYW46IDAgICAgICMgZGVwcmVjYXRlZCAtIHVzZSBDSktJdGFsaWNSb21hbk9mZiBpbnN0ZWFkCiAgICAvLyBDSktJdGFsaWNSb21hbjogMSAgICAgIyBkZXByZWNhdGVkIC0gdXNlIENKS0l0YWxpY1JvbWFuT24gaW5zdGVhZAogICAgQ0pLSXRhbGljUm9tYW46IDIKICB9LAogIGNhc2VTZW5zaXRpdmVMYXlvdXQ6IHsKICAgIGNvZGU6IDMzLAogICAgZXhjbHVzaXZlOiBmYWxzZSwKICAgIGNhc2VTZW5zaXRpdmVMYXlvdXQ6IDAsCiAgICBjYXNlU2Vuc2l0aXZlU3BhY2luZzogMgogIH0sCiAgYWx0ZXJuYXRlS2FuYTogewogICAgY29kZTogMzQsCiAgICBleGNsdXNpdmU6IGZhbHNlLAogICAgYWx0ZXJuYXRlSG9yaXpLYW5hOiAwLAogICAgYWx0ZXJuYXRlVmVydEthbmE6IDIKICB9LAogIHN0eWxpc3RpY0FsdGVybmF0aXZlczogewogICAgY29kZTogMzUsCiAgICBleGNsdXNpdmU6IGZhbHNlLAogICAgbm9TdHlsaXN0aWNBbHRlcm5hdGVzOiAwLAogICAgc3R5bGlzdGljQWx0T25lOiAyLAogICAgc3R5bGlzdGljQWx0VHdvOiA0LAogICAgc3R5bGlzdGljQWx0VGhyZWU6IDYsCiAgICBzdHlsaXN0aWNBbHRGb3VyOiA4LAogICAgc3R5bGlzdGljQWx0Rml2ZTogMTAsCiAgICBzdHlsaXN0aWNBbHRTaXg6IDEyLAogICAgc3R5bGlzdGljQWx0U2V2ZW46IDE0LAogICAgc3R5bGlzdGljQWx0RWlnaHQ6IDE2LAogICAgc3R5bGlzdGljQWx0TmluZTogMTgsCiAgICBzdHlsaXN0aWNBbHRUZW46IDIwLAogICAgc3R5bGlzdGljQWx0RWxldmVuOiAyMiwKICAgIHN0eWxpc3RpY0FsdFR3ZWx2ZTogMjQsCiAgICBzdHlsaXN0aWNBbHRUaGlydGVlbjogMjYsCiAgICBzdHlsaXN0aWNBbHRGb3VydGVlbjogMjgsCiAgICBzdHlsaXN0aWNBbHRGaWZ0ZWVuOiAzMCwKICAgIHN0eWxpc3RpY0FsdFNpeHRlZW46IDMyLAogICAgc3R5bGlzdGljQWx0U2V2ZW50ZWVuOiAzNCwKICAgIHN0eWxpc3RpY0FsdEVpZ2h0ZWVuOiAzNiwKICAgIHN0eWxpc3RpY0FsdE5pbmV0ZWVuOiAzOCwKICAgIHN0eWxpc3RpY0FsdFR3ZW50eTogNDAKICB9LAogIGNvbnRleHR1YWxBbHRlcm5hdGVzOiB7CiAgICBjb2RlOiAzNiwKICAgIGV4Y2x1c2l2ZTogZmFsc2UsCiAgICBjb250ZXh0dWFsQWx0ZXJuYXRlczogMCwKICAgIHN3YXNoQWx0ZXJuYXRlczogMiwKICAgIGNvbnRleHR1YWxTd2FzaEFsdGVybmF0ZXM6IDQKICB9LAogIGxvd2VyQ2FzZTogewogICAgY29kZTogMzcsCiAgICBleGNsdXNpdmU6IHRydWUsCiAgICBkZWZhdWx0TG93ZXJDYXNlOiAwLAogICAgbG93ZXJDYXNlU21hbGxDYXBzOiAxLAogICAgbG93ZXJDYXNlUGV0aXRlQ2FwczogMgogIH0sCiAgdXBwZXJDYXNlOiB7CiAgICBjb2RlOiAzOCwKICAgIGV4Y2x1c2l2ZTogdHJ1ZSwKICAgIGRlZmF1bHRVcHBlckNhc2U6IDAsCiAgICB1cHBlckNhc2VTbWFsbENhcHM6IDEsCiAgICB1cHBlckNhc2VQZXRpdGVDYXBzOiAyCiAgfSwKICBsYW5ndWFnZVRhZzogeyAvLyBpbmRpY2VzIGludG8gbHRhZyB0YWJsZQogICAgY29kZTogMzksCiAgICBleGNsdXNpdmU6IHRydWUKICB9LAogIENKS1JvbWFuU3BhY2luZzogewogICAgY29kZTogMTAzLAogICAgZXhjbHVzaXZlOiB0cnVlLAogICAgaGFsZldpZHRoQ0pLUm9tYW46IDAsCiAgICBwcm9wb3J0aW9uYWxDSktSb21hbjogMSwKICAgIGRlZmF1bHRDSktSb21hbjogMiwKICAgIGZ1bGxXaWR0aENKS1JvbWFuOiAzCiAgfQp9OwoKdmFyIGZlYXR1cmUgPSBmdW5jdGlvbiBmZWF0dXJlKG5hbWUsIHNlbGVjdG9yKSB7CiAgcmV0dXJuIFtmZWF0dXJlc1tuYW1lXS5jb2RlLCBmZWF0dXJlc1tuYW1lXVtzZWxlY3Rvcl1dOwp9OwoKdmFyIE9UTWFwcGluZyA9IHsKICBybGlnOiBmZWF0dXJlKCdsaWdhdHVyZXMnLCAncmVxdWlyZWRMaWdhdHVyZXMnKSwKICBjbGlnOiBmZWF0dXJlKCdsaWdhdHVyZXMnLCAnY29udGV4dHVhbExpZ2F0dXJlcycpLAogIGRsaWc6IGZlYXR1cmUoJ2xpZ2F0dXJlcycsICdyYXJlTGlnYXR1cmVzJyksCiAgaGxpZzogZmVhdHVyZSgnbGlnYXR1cmVzJywgJ2hpc3RvcmljYWxMaWdhdHVyZXMnKSwKICBsaWdhOiBmZWF0dXJlKCdsaWdhdHVyZXMnLCAnY29tbW9uTGlnYXR1cmVzJyksCiAgaGlzdDogZmVhdHVyZSgnbGlnYXR1cmVzJywgJ2hpc3RvcmljYWxMaWdhdHVyZXMnKSwgLy8gPz8KCiAgc21jcDogZmVhdHVyZSgnbG93ZXJDYXNlJywgJ2xvd2VyQ2FzZVNtYWxsQ2FwcycpLAogIHBjYXA6IGZlYXR1cmUoJ2xvd2VyQ2FzZScsICdsb3dlckNhc2VQZXRpdGVDYXBzJyksCgogIGZyYWM6IGZlYXR1cmUoJ2ZyYWN0aW9ucycsICdkaWFnb25hbEZyYWN0aW9ucycpLAogIGRub206IGZlYXR1cmUoJ2ZyYWN0aW9ucycsICdkaWFnb25hbEZyYWN0aW9ucycpLCAvLyA/PwogIG51bXI6IGZlYXR1cmUoJ2ZyYWN0aW9ucycsICdkaWFnb25hbEZyYWN0aW9ucycpLCAvLyA/PwogIGFmcmM6IGZlYXR1cmUoJ2ZyYWN0aW9ucycsICd2ZXJ0aWNhbEZyYWN0aW9ucycpLAogIC8vIGFhbHQKICAvLyBhYnZmLCBhYnZtLCBhYnZzLCBha2huLCBibHdmLCBibHdtLCBibHdzLCBjZmFyLCBjamN0LCBjcHNwLCBmYWx0LCBpc29sLCBqYWx0LCBsam1vLCBtc2V0PwogIC8vIGx0cmEsIGx0cm0sIG51a3QsIHByZWYsIHByZXMsIHBzdGYsIHBzdHMsIHJhbmQsIHJrcmYsIHJwaGYsIHJ0bGEsIHJ0bG0sIHNpemUsIHRqbW8sIHRudW0/CiAgLy8gdW5pYywgdmF0dSwgdmhhbCwgdmptbywgdnBhbCwgdnJ0MgogIC8vIGRpc3QgLT4gdHJhayB0YWJsZT8KICAvLyBrZXJuLCB2a3JuIC0+IGtlcm4gdGFibGUKICAvLyBsZmJkICsgb3BiZCArIHJ0YmQgLT4gb3BiZCB0YWJsZT8KICAvLyBtYXJrLCBta21rIC0+IGFjbnQgdGFibGU/CiAgLy8gbG9jbCAtPiBsYW5ndWFnZVRhZyArIGx0YWcgdGFibGUKCiAgY2FzZTogZmVhdHVyZSgnY2FzZVNlbnNpdGl2ZUxheW91dCcsICdjYXNlU2Vuc2l0aXZlTGF5b3V0JyksIC8vIGFsc28gY2FzZVNlbnNpdGl2ZVNwYWNpbmcKICBjY21wOiBmZWF0dXJlKCd1bmljb2RlRGVjb21wb3NpdGlvbicsICdjYW5vbmljYWxDb21wb3NpdGlvbicpLCAvLyBjb21wYXRpYmlsaXR5Q29tcG9zaXRpb24/CiAgY3BjdDogZmVhdHVyZSgnQ0pLVmVydGljYWxSb21hblBsYWNlbWVudCcsICdDSktWZXJ0aWNhbFJvbWFuQ2VudGVyZWQnKSwgLy8gZ3Vlc3MuLi4sIHByb2JhYmx5IG5vdCBnaXZlbiBiZWxvdwogIHZhbHQ6IGZlYXR1cmUoJ0NKS1ZlcnRpY2FsUm9tYW5QbGFjZW1lbnQnLCAnQ0pLVmVydGljYWxSb21hbkNlbnRlcmVkJyksCiAgc3dzaDogZmVhdHVyZSgnY29udGV4dHVhbEFsdGVybmF0ZXMnLCAnc3dhc2hBbHRlcm5hdGVzJyksCiAgY3N3aDogZmVhdHVyZSgnY29udGV4dHVhbEFsdGVybmF0ZXMnLCAnY29udGV4dHVhbFN3YXNoQWx0ZXJuYXRlcycpLAogIGN1cnM6IGZlYXR1cmUoJ2N1cnNpdmVDb25uZWN0aW9uJywgJ2N1cnNpdmUnKSwgLy8gPz8KICBjMnBjOiBmZWF0dXJlKCd1cHBlckNhc2UnLCAndXBwZXJDYXNlUGV0aXRlQ2FwcycpLAogIGMyc2M6IGZlYXR1cmUoJ3VwcGVyQ2FzZScsICd1cHBlckNhc2VTbWFsbENhcHMnKSwKCiAgaW5pdDogZmVhdHVyZSgnc21hcnRTd2FzaCcsICd3b3JkSW5pdGlhbFN3YXNoZXMnKSwgLy8gPz8KICBmaW4yOiBmZWF0dXJlKCdzbWFydFN3YXNoJywgJ3dvcmRGaW5hbFN3YXNoZXMnKSwgLy8gPz8KICBtZWRpOiBmZWF0dXJlKCdzbWFydFN3YXNoJywgJ25vbkZpbmFsU3dhc2hlcycpLCAvLyA/PwogIG1lZDI6IGZlYXR1cmUoJ3NtYXJ0U3dhc2gnLCAnbm9uRmluYWxTd2FzaGVzJyksIC8vID8/CiAgZmluMzogZmVhdHVyZSgnc21hcnRTd2FzaCcsICd3b3JkRmluYWxTd2FzaGVzJyksIC8vID8/CiAgZmluYTogZmVhdHVyZSgnc21hcnRTd2FzaCcsICd3b3JkRmluYWxTd2FzaGVzJyksIC8vID8/CgogIHBrbmE6IGZlYXR1cmUoJ2thbmFTcGFjaW5nJywgJ3Byb3BvcnRpb25hbEthbmEnKSwKICBoYWxmOiBmZWF0dXJlKCd0ZXh0U3BhY2luZycsICdoYWxmV2lkdGhUZXh0JyksIC8vIGFsc28gSGFsZldpZHRoQ0pLUm9tYW4sIEhhbGZXaWR0aElkZW9ncmFwaHM/CiAgaGFsdDogZmVhdHVyZSgndGV4dFNwYWNpbmcnLCAnYWx0SGFsZldpZHRoVGV4dCcpLAoKICBoa25hOiBmZWF0dXJlKCdhbHRlcm5hdGVLYW5hJywgJ2FsdGVybmF0ZUhvcml6S2FuYScpLAogIHZrbmE6IGZlYXR1cmUoJ2FsdGVybmF0ZUthbmEnLCAnYWx0ZXJuYXRlVmVydEthbmEnKSwKICAvLyBobmdsOiBmZWF0dXJlICd0cmFuc2xpdGVyYXRpb24nLCAnaGFuamFUb0hhbmd1bFNlbGVjdG9yJyAjIGRlcHJlY2F0ZWQKCiAgaXRhbDogZmVhdHVyZSgnaXRhbGljQ0pLUm9tYW4nLCAnQ0pLSXRhbGljUm9tYW4nKSwKICBsbnVtOiBmZWF0dXJlKCdudW1iZXJDYXNlJywgJ3VwcGVyQ2FzZU51bWJlcnMnKSwKICBvbnVtOiBmZWF0dXJlKCdudW1iZXJDYXNlJywgJ2xvd2VyQ2FzZU51bWJlcnMnKSwKICBtZ3JrOiBmZWF0dXJlKCdtYXRoZW1hdGljYWxFeHRyYXMnLCAnbWF0aGVtYXRpY2FsR3JlZWsnKSwKCiAgLy8gbmFsdDogbm90IGVub3VnaCBpbmZvLiB3aGF0IHR5cGUgb2YgYW5ub3RhdGlvbj8KICAvLyBvcm5tOiBkaXR0bywgd2hpY2ggb3JuYW1lbnQgc3R5bGU/CgogIGNhbHQ6IGZlYXR1cmUoJ2NvbnRleHR1YWxBbHRlcm5hdGVzJywgJ2NvbnRleHR1YWxBbHRlcm5hdGVzJyksIC8vIG9yIG1vcmU/CiAgdnJ0MjogZmVhdHVyZSgndmVydGljYWxTdWJzdGl0dXRpb24nLCAnc3Vic3RpdHV0ZVZlcnRpY2FsRm9ybXMnKSwgLy8gb2guLi4gYmVsb3c/CiAgdmVydDogZmVhdHVyZSgndmVydGljYWxTdWJzdGl0dXRpb24nLCAnc3Vic3RpdHV0ZVZlcnRpY2FsRm9ybXMnKSwKICB0bnVtOiBmZWF0dXJlKCdudW1iZXJTcGFjaW5nJywgJ21vbm9zcGFjZWROdW1iZXJzJyksCiAgcG51bTogZmVhdHVyZSgnbnVtYmVyU3BhY2luZycsICdwcm9wb3J0aW9uYWxOdW1iZXJzJyksCiAgc3VwczogZmVhdHVyZSgndmVydGljYWxQb3NpdGlvbicsICdzdXBlcmlvcnMnKSwKICBzdWJzOiBmZWF0dXJlKCd2ZXJ0aWNhbFBvc2l0aW9uJywgJ2luZmVyaW9ycycpLAogIG9yZG46IGZlYXR1cmUoJ3ZlcnRpY2FsUG9zaXRpb24nLCAnb3JkaW5hbHMnKSwKICBwd2lkOiBmZWF0dXJlKCd0ZXh0U3BhY2luZycsICdwcm9wb3J0aW9uYWxUZXh0JyksCiAgaHdpZDogZmVhdHVyZSgndGV4dFNwYWNpbmcnLCAnaGFsZldpZHRoVGV4dCcpLAogIHF3aWQ6IGZlYXR1cmUoJ3RleHRTcGFjaW5nJywgJ3F1YXJ0ZXJXaWR0aFRleHQnKSwgLy8gYWxzbyBRdWFydGVyV2lkdGhOdW1iZXJzPwogIHR3aWQ6IGZlYXR1cmUoJ3RleHRTcGFjaW5nJywgJ3RoaXJkV2lkdGhUZXh0JyksIC8vIGFsc28gVGhpcmRXaWR0aE51bWJlcnM/CiAgZndpZDogZmVhdHVyZSgndGV4dFNwYWNpbmcnLCAncHJvcG9ydGlvbmFsVGV4dCcpLCAvLz8/CiAgcGFsdDogZmVhdHVyZSgndGV4dFNwYWNpbmcnLCAnYWx0UHJvcG9ydGlvbmFsVGV4dCcpLAogIHRyYWQ6IGZlYXR1cmUoJ2NoYXJhY3RlclNoYXBlJywgJ3RyYWRpdGlvbmFsQ2hhcmFjdGVycycpLAogIHNtcGw6IGZlYXR1cmUoJ2NoYXJhY3RlclNoYXBlJywgJ3NpbXBsaWZpZWRDaGFyYWN0ZXJzJyksCiAganA3ODogZmVhdHVyZSgnY2hhcmFjdGVyU2hhcGUnLCAnSklTMTk3OENoYXJhY3RlcnMnKSwKICBqcDgzOiBmZWF0dXJlKCdjaGFyYWN0ZXJTaGFwZScsICdKSVMxOTgzQ2hhcmFjdGVycycpLAogIGpwOTA6IGZlYXR1cmUoJ2NoYXJhY3RlclNoYXBlJywgJ0pJUzE5OTBDaGFyYWN0ZXJzJyksCiAganAwNDogZmVhdHVyZSgnY2hhcmFjdGVyU2hhcGUnLCAnSklTMjAwNENoYXJhY3RlcnMnKSwKICBleHB0OiBmZWF0dXJlKCdjaGFyYWN0ZXJTaGFwZScsICdleHBlcnRDaGFyYWN0ZXJzJyksCiAgaG9qbzogZmVhdHVyZSgnY2hhcmFjdGVyU2hhcGUnLCAnaG9qb0NoYXJhY3RlcnMnKSwKICBubGNrOiBmZWF0dXJlKCdjaGFyYWN0ZXJTaGFwZScsICdOTENDaGFyYWN0ZXJzJyksCiAgdG5hbTogZmVhdHVyZSgnY2hhcmFjdGVyU2hhcGUnLCAndHJhZGl0aW9uYWxOYW1lc0NoYXJhY3RlcnMnKSwKICBydWJ5OiBmZWF0dXJlKCdydWJ5S2FuYScsICdydWJ5S2FuYScpLAogIHRpdGw6IGZlYXR1cmUoJ3N0eWxlT3B0aW9ucycsICd0aXRsaW5nQ2FwcycpLAogIHplcm86IGZlYXR1cmUoJ3R5cG9ncmFwaGljRXh0cmFzJywgJ3NsYXNoZWRaZXJvJyksCgogIHNzMDE6IGZlYXR1cmUoJ3N0eWxpc3RpY0FsdGVybmF0aXZlcycsICdzdHlsaXN0aWNBbHRPbmUnKSwKICBzczAyOiBmZWF0dXJlKCdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0VHdvJyksCiAgc3MwMzogZmVhdHVyZSgnc3R5bGlzdGljQWx0ZXJuYXRpdmVzJywgJ3N0eWxpc3RpY0FsdFRocmVlJyksCiAgc3MwNDogZmVhdHVyZSgnc3R5bGlzdGljQWx0ZXJuYXRpdmVzJywgJ3N0eWxpc3RpY0FsdEZvdXInKSwKICBzczA1OiBmZWF0dXJlKCdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0Rml2ZScpLAogIHNzMDY6IGZlYXR1cmUoJ3N0eWxpc3RpY0FsdGVybmF0aXZlcycsICdzdHlsaXN0aWNBbHRTaXgnKSwKICBzczA3OiBmZWF0dXJlKCdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0U2V2ZW4nKSwKICBzczA4OiBmZWF0dXJlKCdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0RWlnaHQnKSwKICBzczA5OiBmZWF0dXJlKCdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0TmluZScpLAogIHNzMTA6IGZlYXR1cmUoJ3N0eWxpc3RpY0FsdGVybmF0aXZlcycsICdzdHlsaXN0aWNBbHRUZW4nKSwKICBzczExOiBmZWF0dXJlKCdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0RWxldmVuJyksCiAgc3MxMjogZmVhdHVyZSgnc3R5bGlzdGljQWx0ZXJuYXRpdmVzJywgJ3N0eWxpc3RpY0FsdFR3ZWx2ZScpLAogIHNzMTM6IGZlYXR1cmUoJ3N0eWxpc3RpY0FsdGVybmF0aXZlcycsICdzdHlsaXN0aWNBbHRUaGlydGVlbicpLAogIHNzMTQ6IGZlYXR1cmUoJ3N0eWxpc3RpY0FsdGVybmF0aXZlcycsICdzdHlsaXN0aWNBbHRGb3VydGVlbicpLAogIHNzMTU6IGZlYXR1cmUoJ3N0eWxpc3RpY0FsdGVybmF0aXZlcycsICdzdHlsaXN0aWNBbHRGaWZ0ZWVuJyksCiAgc3MxNjogZmVhdHVyZSgnc3R5bGlzdGljQWx0ZXJuYXRpdmVzJywgJ3N0eWxpc3RpY0FsdFNpeHRlZW4nKSwKICBzczE3OiBmZWF0dXJlKCdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0U2V2ZW50ZWVuJyksCiAgc3MxODogZmVhdHVyZSgnc3R5bGlzdGljQWx0ZXJuYXRpdmVzJywgJ3N0eWxpc3RpY0FsdEVpZ2h0ZWVuJyksCiAgc3MxOTogZmVhdHVyZSgnc3R5bGlzdGljQWx0ZXJuYXRpdmVzJywgJ3N0eWxpc3RpY0FsdE5pbmV0ZWVuJyksCiAgc3MyMDogZmVhdHVyZSgnc3R5bGlzdGljQWx0ZXJuYXRpdmVzJywgJ3N0eWxpc3RpY0FsdFR3ZW50eScpCn07CgovLyBzYWx0OiBmZWF0dXJlICdzdHlsaXN0aWNBbHRlcm5hdGl2ZXMnLCAnc3R5bGlzdGljQWx0T25lJyAjIGhtbSwgd2hpY2ggb25lIHRvIGNob29zZQoKLy8gQWRkIGN2MDEtY3Y5OSBmZWF0dXJlcwpmb3IgKHZhciBpID0gMTsgaSA8PSA5OTsgaSsrKSB7CiAgT1RNYXBwaW5nWydjdicgKyAoJzAwJyArIGkpLnNsaWNlKC0yKV0gPSBbZmVhdHVyZXMuY2hhcmFjdGVyQWx0ZXJuYXRpdmVzLmNvZGUsIGldOwp9CgovLyBjcmVhdGUgaW52ZXJzZSBtYXBwaW5nCnZhciBBQVRNYXBwaW5nID0ge307CmZvciAodmFyIG90IGluIE9UTWFwcGluZykgewogIHZhciBhYXQgPSBPVE1hcHBpbmdbb3RdOwogIGlmIChBQVRNYXBwaW5nW2FhdFswXV0gPT0gbnVsbCkgewogICAgQUFUTWFwcGluZ1thYXRbMF1dID0ge307CiAgfQoKICBBQVRNYXBwaW5nW2FhdFswXV1bYWF0WzFdXSA9IG90Owp9CgovLyBNYXBzIGFuIGFycmF5IG9mIE9wZW5UeXBlIGZlYXR1cmVzIHRvIEFBVCBmZWF0dXJlcwovLyBpbiB0aGUgZm9ybSBvZiB7ZmVhdHVyZVR5cGU6e2ZlYXR1cmVTZXR0aW5nOnRydWV9fQpmdW5jdGlvbiBtYXBPVFRvQUFUKGZlYXR1cmVzKSB7CiAgdmFyIHJlcyA9IHt9OwogIGZvciAodmFyIGsgaW4gZmVhdHVyZXMpIHsKICAgIHZhciByID0gdm9pZCAwOwogICAgaWYgKHIgPSBPVE1hcHBpbmdba10pIHsKICAgICAgaWYgKHJlc1tyWzBdXSA9PSBudWxsKSB7CiAgICAgICAgcmVzW3JbMF1dID0ge307CiAgICAgIH0KCiAgICAgIHJlc1tyWzBdXVtyWzFdXSA9IGZlYXR1cmVzW2tdOwogICAgfQogIH0KCiAgcmV0dXJuIHJlczsKfQoKLy8gTWFwcyBzdHJpbmdzIGluIGEgW2ZlYXR1cmVUeXBlLCBmZWF0dXJlU2V0dGluZ10KLy8gdG8gdGhlaXIgZXF1aXZhbGVudCBudW1iZXIgY29kZXMKZnVuY3Rpb24gbWFwRmVhdHVyZVN0cmluZ3MoZikgewogIHZhciB0eXBlID0gZlswXSwKICAgICAgc2V0dGluZyA9IGZbMV07CgogIGlmIChpc05hTih0eXBlKSkgewogICAgdmFyIHR5cGVDb2RlID0gZmVhdHVyZXNbdHlwZV0gJiYgZmVhdHVyZXNbdHlwZV0uY29kZTsKICB9IGVsc2UgewogICAgdmFyIHR5cGVDb2RlID0gdHlwZTsKICB9CgogIGlmIChpc05hTihzZXR0aW5nKSkgewogICAgdmFyIHNldHRpbmdDb2RlID0gZmVhdHVyZXNbdHlwZV0gJiYgZmVhdHVyZXNbdHlwZV1bc2V0dGluZ107CiAgfSBlbHNlIHsKICAgIHZhciBzZXR0aW5nQ29kZSA9IHNldHRpbmc7CiAgfQoKICByZXR1cm4gW3R5cGVDb2RlLCBzZXR0aW5nQ29kZV07Cn0KCi8vIE1hcHMgQUFUIGZlYXR1cmVzIHRvIGFuIGFycmF5IG9mIE9wZW5UeXBlIGZlYXR1cmVzCi8vIFN1cHBvcnRzIGJvdGggYXJyYXlzIGluIHRoZSBmb3JtIG9mIFtbZmVhdHVyZVR5cGUsIGZlYXR1cmVTZXR0aW5nXV0KLy8gYW5kIG9iamVjdHMgaW4gdGhlIGZvcm0gb2Yge2ZlYXR1cmVUeXBlOntmZWF0dXJlU2V0dGluZzp0cnVlfX0KLy8gZmVhdHVyZVR5cGVzIGFuZCBmZWF0dXJlU2V0dGluZ3MgY2FuIGJlIGVpdGhlciBzdHJpbmdzIG9yIG51bWJlciBjb2RlcwpmdW5jdGlvbiBtYXBBQVRUb09UKGZlYXR1cmVzKSB7CiAgdmFyIHJlcyA9IHt9OwogIGlmIChBcnJheS5pc0FycmF5KGZlYXR1cmVzKSkgewogICAgZm9yICh2YXIgayA9IDA7IGsgPCBmZWF0dXJlcy5sZW5ndGg7IGsrKykgewogICAgICB2YXIgciA9IHZvaWQgMDsKICAgICAgdmFyIGYgPSBtYXBGZWF0dXJlU3RyaW5ncyhmZWF0dXJlc1trXSk7CiAgICAgIGlmIChyID0gQUFUTWFwcGluZ1tmWzBdXSAmJiBBQVRNYXBwaW5nW2ZbMF1dW2ZbMV1dKSB7CiAgICAgICAgcmVzW3JdID0gdHJ1ZTsKICAgICAgfQogICAgfQogIH0gZWxzZSBpZiAoKHR5cGVvZiBmZWF0dXJlcyA9PT0gJ3VuZGVmaW5lZCcgPyAndW5kZWZpbmVkJyA6IF90eXBlb2YoZmVhdHVyZXMpKSA9PT0gJ29iamVjdCcpIHsKICAgIGZvciAodmFyIHR5cGUgaW4gZmVhdHVyZXMpIHsKICAgICAgdmFyIF9mZWF0dXJlID0gZmVhdHVyZXNbdHlwZV07CiAgICAgIGZvciAodmFyIHNldHRpbmcgaW4gX2ZlYXR1cmUpIHsKICAgICAgICB2YXIgX3IgPSB2b2lkIDA7CiAgICAgICAgdmFyIF9mID0gbWFwRmVhdHVyZVN0cmluZ3MoW3R5cGUsIHNldHRpbmddKTsKICAgICAgICBpZiAoX2ZlYXR1cmVbc2V0dGluZ10gJiYgKF9yID0gQUFUTWFwcGluZ1tfZlswXV0gJiYgQUFUTWFwcGluZ1tfZlswXV1bX2ZbMV1dKSkgewogICAgICAgICAgcmVzW19yXSA9IHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfQoKICByZXR1cm4gX09iamVjdCRrZXlzKHJlcyk7Cn0KCnZhciBfY2xhc3MkMzsKZnVuY3Rpb24gX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciQzKHRhcmdldCwgcHJvcGVydHksIGRlY29yYXRvcnMsIGRlc2NyaXB0b3IsIGNvbnRleHQpIHsKICB2YXIgZGVzYyA9IHt9OwogIE9iamVjdFsna2UnICsgJ3lzJ10oZGVzY3JpcHRvcikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICBkZXNjW2tleV0gPSBkZXNjcmlwdG9yW2tleV07CiAgfSk7CiAgZGVzYy5lbnVtZXJhYmxlID0gISFkZXNjLmVudW1lcmFibGU7CiAgZGVzYy5jb25maWd1cmFibGUgPSAhIWRlc2MuY29uZmlndXJhYmxlOwoKICBpZiAoJ3ZhbHVlJyBpbiBkZXNjIHx8IGRlc2MuaW5pdGlhbGl6ZXIpIHsKICAgIGRlc2Mud3JpdGFibGUgPSB0cnVlOwogIH0KCiAgZGVzYyA9IGRlY29yYXRvcnMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uIChkZXNjLCBkZWNvcmF0b3IpIHsKICAgIHJldHVybiBkZWNvcmF0b3IodGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYykgfHwgZGVzYzsKICB9LCBkZXNjKTsKCiAgaWYgKGNvbnRleHQgJiYgZGVzYy5pbml0aWFsaXplciAhPT0gdm9pZCAwKSB7CiAgICBkZXNjLnZhbHVlID0gZGVzYy5pbml0aWFsaXplciA/IGRlc2MuaW5pdGlhbGl6ZXIuY2FsbChjb250ZXh0KSA6IHZvaWQgMDsKICAgIGRlc2MuaW5pdGlhbGl6ZXIgPSB1bmRlZmluZWQ7CiAgfQoKICBpZiAoZGVzYy5pbml0aWFsaXplciA9PT0gdm9pZCAwKSB7CiAgICBPYmplY3RbJ2RlZmluZScgKyAnUHJvcGVydHknXSh0YXJnZXQsIHByb3BlcnR5LCBkZXNjKTsKICAgIGRlc2MgPSBudWxsOwogIH0KCiAgcmV0dXJuIGRlc2M7Cn0KCnZhciBBQVRMb29rdXBUYWJsZSA9IChfY2xhc3MkMyA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBBQVRMb29rdXBUYWJsZSh0YWJsZSkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFBVExvb2t1cFRhYmxlKTsKCiAgICB0aGlzLnRhYmxlID0gdGFibGU7CiAgfQoKICBBQVRMb29rdXBUYWJsZS5wcm90b3R5cGUubG9va3VwID0gZnVuY3Rpb24gbG9va3VwKGdseXBoKSB7CiAgICBzd2l0Y2ggKHRoaXMudGFibGUudmVyc2lvbikgewogICAgICBjYXNlIDA6CiAgICAgICAgLy8gc2ltcGxlIGFycmF5IGZvcm1hdAogICAgICAgIHJldHVybiB0aGlzLnRhYmxlLnZhbHVlcy5nZXRJdGVtKGdseXBoKTsKCiAgICAgIGNhc2UgMjogLy8gc2VnbWVudCBmb3JtYXQKICAgICAgY2FzZSA0OgogICAgICAgIHsKICAgICAgICAgIHZhciBtaW4gPSAwOwogICAgICAgICAgdmFyIG1heCA9IHRoaXMudGFibGUuYmluYXJ5U2VhcmNoSGVhZGVyLm5Vbml0cyAtIDE7CgogICAgICAgICAgd2hpbGUgKG1pbiA8PSBtYXgpIHsKICAgICAgICAgICAgdmFyIG1pZCA9IG1pbiArIG1heCA+PiAxOwogICAgICAgICAgICB2YXIgc2VnID0gdGhpcy50YWJsZS5zZWdtZW50c1ttaWRdOwoKICAgICAgICAgICAgLy8gc3BlY2lhbCBlbmQgb2Ygc2VhcmNoIHZhbHVlCiAgICAgICAgICAgIGlmIChzZWcuZmlyc3RHbHlwaCA9PT0gMHhmZmZmKSB7CiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChnbHlwaCA8IHNlZy5maXJzdEdseXBoKSB7CiAgICAgICAgICAgICAgbWF4ID0gbWlkIC0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmIChnbHlwaCA+IHNlZy5sYXN0R2x5cGgpIHsKICAgICAgICAgICAgICBtaW4gPSBtaWQgKyAxOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGlmICh0aGlzLnRhYmxlLnZlcnNpb24gPT09IDIpIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZWcudmFsdWU7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBzZWcudmFsdWVzW2dseXBoIC0gc2VnLmZpcnN0R2x5cGhdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KCiAgICAgIGNhc2UgNjoKICAgICAgICB7CiAgICAgICAgICAvLyBsb29rdXAgc2luZ2xlCiAgICAgICAgICB2YXIgX21pbiA9IDA7CiAgICAgICAgICB2YXIgX21heCA9IHRoaXMudGFibGUuYmluYXJ5U2VhcmNoSGVhZGVyLm5Vbml0cyAtIDE7CgogICAgICAgICAgd2hpbGUgKF9taW4gPD0gX21heCkgewogICAgICAgICAgICB2YXIgbWlkID0gX21pbiArIF9tYXggPj4gMTsKICAgICAgICAgICAgdmFyIHNlZyA9IHRoaXMudGFibGUuc2VnbWVudHNbbWlkXTsKCiAgICAgICAgICAgIC8vIHNwZWNpYWwgZW5kIG9mIHNlYXJjaCB2YWx1ZQogICAgICAgICAgICBpZiAoc2VnLmdseXBoID09PSAweGZmZmYpIHsKICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGdseXBoIDwgc2VnLmdseXBoKSB7CiAgICAgICAgICAgICAgX21heCA9IG1pZCAtIDE7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoZ2x5cGggPiBzZWcuZ2x5cGgpIHsKICAgICAgICAgICAgICBfbWluID0gbWlkICsgMTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gc2VnLnZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CgogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgY2FzZSA4OgogICAgICAgIC8vIGxvb2t1cCB0cmltbWVkCiAgICAgICAgcmV0dXJuIHRoaXMudGFibGUudmFsdWVzW2dseXBoIC0gdGhpcy50YWJsZS5maXJzdEdseXBoXTsKCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGxvb2t1cCB0YWJsZSBmb3JtYXQ6ICcgKyB0aGlzLnRhYmxlLnZlcnNpb24pOwogICAgfQogIH07CgogIEFBVExvb2t1cFRhYmxlLnByb3RvdHlwZS5nbHlwaHNGb3JWYWx1ZSA9IGZ1bmN0aW9uIGdseXBoc0ZvclZhbHVlKGNsYXNzVmFsdWUpIHsKICAgIHZhciByZXMgPSBbXTsKCiAgICBzd2l0Y2ggKHRoaXMudGFibGUudmVyc2lvbikgewogICAgICBjYXNlIDI6IC8vIHNlZ21lbnQgZm9ybWF0CiAgICAgIGNhc2UgNDoKICAgICAgICB7CiAgICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSB0aGlzLnRhYmxlLnNlZ21lbnRzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgICAgICAgdmFyIF9yZWY7CgogICAgICAgICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICAgICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIHNlZ21lbnQgPSBfcmVmOwoKICAgICAgICAgICAgaWYgKHRoaXMudGFibGUudmVyc2lvbiA9PT0gMiAmJiBzZWdtZW50LnZhbHVlID09PSBjbGFzc1ZhbHVlKSB7CiAgICAgICAgICAgICAgcmVzLnB1c2guYXBwbHkocmVzLCByYW5nZShzZWdtZW50LmZpcnN0R2x5cGgsIHNlZ21lbnQubGFzdEdseXBoICsgMSkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGZvciAodmFyIGluZGV4ID0gMDsgaW5kZXggPCBzZWdtZW50LnZhbHVlcy5sZW5ndGg7IGluZGV4KyspIHsKICAgICAgICAgICAgICAgIGlmIChzZWdtZW50LnZhbHVlc1tpbmRleF0gPT09IGNsYXNzVmFsdWUpIHsKICAgICAgICAgICAgICAgICAgcmVzLnB1c2goc2VnbWVudC5maXJzdEdseXBoICsgaW5kZXgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgIGNhc2UgNjoKICAgICAgICB7CiAgICAgICAgICAvLyBsb29rdXAgc2luZ2xlCiAgICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IyID0gdGhpcy50YWJsZS5zZWdtZW50cywgX2lzQXJyYXkyID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IyKSwgX2kyID0gMCwgX2l0ZXJhdG9yMiA9IF9pc0FycmF5MiA/IF9pdGVyYXRvcjIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMik7OykgewogICAgICAgICAgICB2YXIgX3JlZjI7CgogICAgICAgICAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgICAgICAgICAgaWYgKF9pMiA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgICAgX3JlZjIgPSBfaXRlcmF0b3IyW19pMisrXTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfaTIgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgICAgICAgICBpZiAoX2kyLmRvbmUpIGJyZWFrOwogICAgICAgICAgICAgIF9yZWYyID0gX2kyLnZhbHVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgX3NlZ21lbnQgPSBfcmVmMjsKCiAgICAgICAgICAgIGlmIChfc2VnbWVudC52YWx1ZSA9PT0gY2xhc3NWYWx1ZSkgewogICAgICAgICAgICAgIHJlcy5wdXNoKF9zZWdtZW50LmdseXBoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgIGNhc2UgODoKICAgICAgICB7CiAgICAgICAgICAvLyBsb29rdXAgdHJpbW1lZAogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLnRhYmxlLnZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAodGhpcy50YWJsZS52YWx1ZXNbaV0gPT09IGNsYXNzVmFsdWUpIHsKICAgICAgICAgICAgICByZXMucHVzaCh0aGlzLnRhYmxlLmZpcnN0R2x5cGggKyBpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGxvb2t1cCB0YWJsZSBmb3JtYXQ6ICcgKyB0aGlzLnRhYmxlLnZlcnNpb24pOwogICAgfQoKICAgIHJldHVybiByZXM7CiAgfTsKCiAgcmV0dXJuIEFBVExvb2t1cFRhYmxlOwp9KCksIChfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yJDMoX2NsYXNzJDMucHJvdG90eXBlLCAnZ2x5cGhzRm9yVmFsdWUnLCBbY2FjaGVdLCBfT2JqZWN0JGdldE93blByb3BlcnR5RGVzY3JpcHRvcihfY2xhc3MkMy5wcm90b3R5cGUsICdnbHlwaHNGb3JWYWx1ZScpLCBfY2xhc3MkMy5wcm90b3R5cGUpKSwgX2NsYXNzJDMpOwoKdmFyIFNUQVJUX09GX1RFWFRfU1RBVEUgPSAwOwp2YXIgRU5EX09GX1RFWFRfQ0xBU1MgPSAwOwp2YXIgT1VUX09GX0JPVU5EU19DTEFTUyA9IDE7CnZhciBERUxFVEVEX0dMWVBIX0NMQVNTID0gMjsKdmFyIERPTlRfQURWQU5DRSA9IDB4NDAwMDsKCnZhciBBQVRTdGF0ZU1hY2hpbmUgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gQUFUU3RhdGVNYWNoaW5lKHN0YXRlVGFibGUpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBBQVRTdGF0ZU1hY2hpbmUpOwoKICAgIHRoaXMuc3RhdGVUYWJsZSA9IHN0YXRlVGFibGU7CiAgICB0aGlzLmxvb2t1cFRhYmxlID0gbmV3IEFBVExvb2t1cFRhYmxlKHN0YXRlVGFibGUuY2xhc3NUYWJsZSk7CiAgfQoKICBBQVRTdGF0ZU1hY2hpbmUucHJvdG90eXBlLnByb2Nlc3MgPSBmdW5jdGlvbiBwcm9jZXNzKGdseXBocywgcmV2ZXJzZSwgcHJvY2Vzc0VudHJ5KSB7CiAgICB2YXIgY3VycmVudFN0YXRlID0gU1RBUlRfT0ZfVEVYVF9TVEFURTsgLy8gU1RBUlRfT0ZfTElORV9TVEFURSBpcyB1c2VkIGZvciBrYXNoaWRhIGdseXBoIGluc2VydGlvbnMgc29tZXRpbWVzIEkgdGhpbms/CiAgICB2YXIgaW5kZXggPSByZXZlcnNlID8gZ2x5cGhzLmxlbmd0aCAtIDEgOiAwOwogICAgdmFyIGRpciA9IHJldmVyc2UgPyAtMSA6IDE7CgogICAgd2hpbGUgKGRpciA9PT0gMSAmJiBpbmRleCA8PSBnbHlwaHMubGVuZ3RoIHx8IGRpciA9PT0gLTEgJiYgaW5kZXggPj0gLTEpIHsKICAgICAgdmFyIGdseXBoID0gbnVsbDsKICAgICAgdmFyIGNsYXNzQ29kZSA9IE9VVF9PRl9CT1VORFNfQ0xBU1M7CiAgICAgIHZhciBzaG91bGRBZHZhbmNlID0gdHJ1ZTsKCiAgICAgIGlmIChpbmRleCA9PT0gZ2x5cGhzLmxlbmd0aCB8fCBpbmRleCA9PT0gLTEpIHsKICAgICAgICBjbGFzc0NvZGUgPSBFTkRfT0ZfVEVYVF9DTEFTUzsKICAgICAgfSBlbHNlIHsKICAgICAgICBnbHlwaCA9IGdseXBoc1tpbmRleF07CiAgICAgICAgaWYgKGdseXBoLmlkID09PSAweGZmZmYpIHsKICAgICAgICAgIC8vIGRlbGV0ZWQgZ2x5cGgKICAgICAgICAgIGNsYXNzQ29kZSA9IERFTEVURURfR0xZUEhfQ0xBU1M7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNsYXNzQ29kZSA9IHRoaXMubG9va3VwVGFibGUubG9va3VwKGdseXBoLmlkKTsKICAgICAgICAgIGlmIChjbGFzc0NvZGUgPT0gbnVsbCkgewogICAgICAgICAgICBjbGFzc0NvZGUgPSBPVVRfT0ZfQk9VTkRTX0NMQVNTOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQoKICAgICAgdmFyIHJvdyA9IHRoaXMuc3RhdGVUYWJsZS5zdGF0ZUFycmF5LmdldEl0ZW0oY3VycmVudFN0YXRlKTsKICAgICAgdmFyIGVudHJ5SW5kZXggPSByb3dbY2xhc3NDb2RlXTsKICAgICAgdmFyIGVudHJ5ID0gdGhpcy5zdGF0ZVRhYmxlLmVudHJ5VGFibGUuZ2V0SXRlbShlbnRyeUluZGV4KTsKCiAgICAgIGlmIChjbGFzc0NvZGUgIT09IEVORF9PRl9URVhUX0NMQVNTICYmIGNsYXNzQ29kZSAhPT0gREVMRVRFRF9HTFlQSF9DTEFTUykgewogICAgICAgIHByb2Nlc3NFbnRyeShnbHlwaCwgZW50cnksIGluZGV4KTsKICAgICAgICBzaG91bGRBZHZhbmNlID0gIShlbnRyeS5mbGFncyAmIERPTlRfQURWQU5DRSk7CiAgICAgIH0KCiAgICAgIGN1cnJlbnRTdGF0ZSA9IGVudHJ5Lm5ld1N0YXRlOwogICAgICBpZiAoc2hvdWxkQWR2YW5jZSkgewogICAgICAgIGluZGV4ICs9IGRpcjsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBnbHlwaHM7CiAgfTsKCiAgLyoqCiAgICogUGVyZm9ybXMgYSBkZXB0aC1maXJzdCB0cmF2ZXJzYWwgb2YgdGhlIGdseXBoIHN0cmluZ3MKICAgKiByZXByZXNlbnRlZCBieSB0aGUgc3RhdGUgbWFjaGluZS4KICAgKi8KCgogIEFBVFN0YXRlTWFjaGluZS5wcm90b3R5cGUudHJhdmVyc2UgPSBmdW5jdGlvbiB0cmF2ZXJzZShvcHRzKSB7CiAgICB2YXIgc3RhdGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDA7CiAgICB2YXIgdmlzaXRlZCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogbmV3IF9TZXQoKTsKCiAgICBpZiAodmlzaXRlZC5oYXMoc3RhdGUpKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2aXNpdGVkLmFkZChzdGF0ZSk7CgogICAgdmFyIF9zdGF0ZVRhYmxlID0gdGhpcy5zdGF0ZVRhYmxlLAogICAgICAgIG5DbGFzc2VzID0gX3N0YXRlVGFibGUubkNsYXNzZXMsCiAgICAgICAgc3RhdGVBcnJheSA9IF9zdGF0ZVRhYmxlLnN0YXRlQXJyYXksCiAgICAgICAgZW50cnlUYWJsZSA9IF9zdGF0ZVRhYmxlLmVudHJ5VGFibGU7CgogICAgdmFyIHJvdyA9IHN0YXRlQXJyYXkuZ2V0SXRlbShzdGF0ZSk7CgogICAgLy8gU2tpcCBwcmVkZWZpbmVkIGNsYXNzZXMKICAgIGZvciAodmFyIGNsYXNzQ29kZSA9IDQ7IGNsYXNzQ29kZSA8IG5DbGFzc2VzOyBjbGFzc0NvZGUrKykgewogICAgICB2YXIgZW50cnlJbmRleCA9IHJvd1tjbGFzc0NvZGVdOwogICAgICB2YXIgZW50cnkgPSBlbnRyeVRhYmxlLmdldEl0ZW0oZW50cnlJbmRleCk7CgogICAgICAvLyBUcnkgYWxsIGdseXBocyBpbiB0aGUgY2xhc3MKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gdGhpcy5sb29rdXBUYWJsZS5nbHlwaHNGb3JWYWx1ZShjbGFzc0NvZGUpLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgICB2YXIgX3JlZjsKCiAgICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgZ2x5cGggPSBfcmVmOwoKICAgICAgICBpZiAob3B0cy5lbnRlcikgewogICAgICAgICAgb3B0cy5lbnRlcihnbHlwaCwgZW50cnkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGVudHJ5Lm5ld1N0YXRlICE9PSAwKSB7CiAgICAgICAgICB0aGlzLnRyYXZlcnNlKG9wdHMsIGVudHJ5Lm5ld1N0YXRlLCB2aXNpdGVkKTsKICAgICAgICB9CgogICAgICAgIGlmIChvcHRzLmV4aXQpIHsKICAgICAgICAgIG9wdHMuZXhpdChnbHlwaCwgZW50cnkpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07CgogIHJldHVybiBBQVRTdGF0ZU1hY2hpbmU7Cn0oKTsKCnZhciBfY2xhc3MkMjsKZnVuY3Rpb24gX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciQyKHRhcmdldCwgcHJvcGVydHksIGRlY29yYXRvcnMsIGRlc2NyaXB0b3IsIGNvbnRleHQpIHsKICB2YXIgZGVzYyA9IHt9OwogIE9iamVjdFsna2UnICsgJ3lzJ10oZGVzY3JpcHRvcikuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICBkZXNjW2tleV0gPSBkZXNjcmlwdG9yW2tleV07CiAgfSk7CiAgZGVzYy5lbnVtZXJhYmxlID0gISFkZXNjLmVudW1lcmFibGU7CiAgZGVzYy5jb25maWd1cmFibGUgPSAhIWRlc2MuY29uZmlndXJhYmxlOwoKICBpZiAoJ3ZhbHVlJyBpbiBkZXNjIHx8IGRlc2MuaW5pdGlhbGl6ZXIpIHsKICAgIGRlc2Mud3JpdGFibGUgPSB0cnVlOwogIH0KCiAgZGVzYyA9IGRlY29yYXRvcnMuc2xpY2UoKS5yZXZlcnNlKCkucmVkdWNlKGZ1bmN0aW9uIChkZXNjLCBkZWNvcmF0b3IpIHsKICAgIHJldHVybiBkZWNvcmF0b3IodGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYykgfHwgZGVzYzsKICB9LCBkZXNjKTsKCiAgaWYgKGNvbnRleHQgJiYgZGVzYy5pbml0aWFsaXplciAhPT0gdm9pZCAwKSB7CiAgICBkZXNjLnZhbHVlID0gZGVzYy5pbml0aWFsaXplciA/IGRlc2MuaW5pdGlhbGl6ZXIuY2FsbChjb250ZXh0KSA6IHZvaWQgMDsKICAgIGRlc2MuaW5pdGlhbGl6ZXIgPSB1bmRlZmluZWQ7CiAgfQoKICBpZiAoZGVzYy5pbml0aWFsaXplciA9PT0gdm9pZCAwKSB7CiAgICBPYmplY3RbJ2RlZmluZScgKyAnUHJvcGVydHknXSh0YXJnZXQsIHByb3BlcnR5LCBkZXNjKTsKICAgIGRlc2MgPSBudWxsOwogIH0KCiAgcmV0dXJuIGRlc2M7Cn0KCi8vIGluZGljIHJlcGxhY2VtZW50IGZsYWdzCnZhciBNQVJLX0ZJUlNUID0gMHg4MDAwOwp2YXIgTUFSS19MQVNUID0gMHgyMDAwOwp2YXIgVkVSQiA9IDB4MDAwRjsKCi8vIGNvbnRleHR1YWwgc3Vic3RpdHV0aW9uIGFuZCBnbHlwaCBpbnNlcnRpb24gZmxhZwp2YXIgU0VUX01BUksgPSAweDgwMDA7CgovLyBsaWdhdHVyZSBlbnRyeSBmbGFncwp2YXIgU0VUX0NPTVBPTkVOVCA9IDB4ODAwMDsKdmFyIFBFUkZPUk1fQUNUSU9OID0gMHgyMDAwOwoKLy8gbGlnYXR1cmUgYWN0aW9uIG1hc2tzCnZhciBMQVNUX01BU0sgPSAweDgwMDAwMDAwOwp2YXIgU1RPUkVfTUFTSyA9IDB4NDAwMDAwMDA7CnZhciBPRkZTRVRfTUFTSyA9IDB4M0ZGRkZGRkY7Cgp2YXIgUkVWRVJTRV9ESVJFQ1RJT04gPSAweDQwMDAwMDsKdmFyIENVUlJFTlRfSU5TRVJUX0JFRk9SRSA9IDB4MDgwMDsKdmFyIE1BUktFRF9JTlNFUlRfQkVGT1JFID0gMHgwNDAwOwp2YXIgQ1VSUkVOVF9JTlNFUlRfQ09VTlQgPSAweDAzRTA7CnZhciBNQVJLRURfSU5TRVJUX0NPVU5UID0gMHgwMDFGOwoKdmFyIEFBVE1vcnhQcm9jZXNzb3IgPSAoX2NsYXNzJDIgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gQUFUTW9yeFByb2Nlc3Nvcihmb250KSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQUFUTW9yeFByb2Nlc3Nvcik7CgogICAgdGhpcy5wcm9jZXNzSW5kaWNSZWFycmFnZW1lbnQgPSB0aGlzLnByb2Nlc3NJbmRpY1JlYXJyYWdlbWVudC5iaW5kKHRoaXMpOwogICAgdGhpcy5wcm9jZXNzQ29udGV4dHVhbFN1YnN0aXR1dGlvbiA9IHRoaXMucHJvY2Vzc0NvbnRleHR1YWxTdWJzdGl0dXRpb24uYmluZCh0aGlzKTsKICAgIHRoaXMucHJvY2Vzc0xpZ2F0dXJlID0gdGhpcy5wcm9jZXNzTGlnYXR1cmUuYmluZCh0aGlzKTsKICAgIHRoaXMucHJvY2Vzc05vbmNvbnRleHR1YWxTdWJzdGl0dXRpb25zID0gdGhpcy5wcm9jZXNzTm9uY29udGV4dHVhbFN1YnN0aXR1dGlvbnMuYmluZCh0aGlzKTsKICAgIHRoaXMucHJvY2Vzc0dseXBoSW5zZXJ0aW9uID0gdGhpcy5wcm9jZXNzR2x5cGhJbnNlcnRpb24uYmluZCh0aGlzKTsKICAgIHRoaXMuZm9udCA9IGZvbnQ7CiAgICB0aGlzLm1vcnggPSBmb250Lm1vcng7CiAgICB0aGlzLmlucHV0Q2FjaGUgPSBudWxsOwogIH0KCiAgLy8gUHJvY2Vzc2VzIGFuIGFycmF5IG9mIGdseXBocyBhbmQgYXBwbGllcyB0aGUgc3BlY2lmaWVkIGZlYXR1cmVzCiAgLy8gRmVhdHVyZXMgc2hvdWxkIGJlIGluIHRoZSBmb3JtIG9mIHtmZWF0dXJlVHlwZTp7ZmVhdHVyZVNldHRpbmc6dHJ1ZX19CgoKICBBQVRNb3J4UHJvY2Vzc29yLnByb3RvdHlwZS5wcm9jZXNzID0gZnVuY3Rpb24gcHJvY2VzcyhnbHlwaHMpIHsKICAgIHZhciBmZWF0dXJlcyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307CgogICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gdGhpcy5tb3J4LmNoYWlucywgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICAgIHZhciBfcmVmOwoKICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBjaGFpbiA9IF9yZWY7CgogICAgICB2YXIgZmxhZ3MgPSBjaGFpbi5kZWZhdWx0RmxhZ3M7CgogICAgICAvLyBlbmFibGUvZGlzYWJsZSB0aGUgcmVxdWVzdGVkIGZlYXR1cmVzCiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBjaGFpbi5mZWF0dXJlcywgX2lzQXJyYXkyID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IyKSwgX2kyID0gMCwgX2l0ZXJhdG9yMiA9IF9pc0FycmF5MiA/IF9pdGVyYXRvcjIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMik7OykgewogICAgICAgIHZhciBfcmVmMjsKCiAgICAgICAgaWYgKF9pc0FycmF5MikgewogICAgICAgICAgaWYgKF9pMiA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmMiA9IF9pdGVyYXRvcjJbX2kyKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTIgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgICAgIGlmIChfaTIuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmMiA9IF9pMi52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBmZWF0dXJlID0gX3JlZjI7CgogICAgICAgIHZhciBmID0gdm9pZCAwOwogICAgICAgIGlmICgoZiA9IGZlYXR1cmVzW2ZlYXR1cmUuZmVhdHVyZVR5cGVdKSAmJiBmW2ZlYXR1cmUuZmVhdHVyZVNldHRpbmddKSB7CiAgICAgICAgICBmbGFncyAmPSBmZWF0dXJlLmRpc2FibGVGbGFnczsKICAgICAgICAgIGZsYWdzIHw9IGZlYXR1cmUuZW5hYmxlRmxhZ3M7CiAgICAgICAgfQogICAgICB9CgogICAgICBmb3IgKHZhciBfaXRlcmF0b3IzID0gY2hhaW4uc3VidGFibGVzLCBfaXNBcnJheTMgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjMpLCBfaTMgPSAwLCBfaXRlcmF0b3IzID0gX2lzQXJyYXkzID8gX2l0ZXJhdG9yMyA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IzKTs7KSB7CiAgICAgICAgdmFyIF9yZWYzOwoKICAgICAgICBpZiAoX2lzQXJyYXkzKSB7CiAgICAgICAgICBpZiAoX2kzID49IF9pdGVyYXRvcjMubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWYzID0gX2l0ZXJhdG9yM1tfaTMrK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pMyA9IF9pdGVyYXRvcjMubmV4dCgpOwogICAgICAgICAgaWYgKF9pMy5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWYzID0gX2kzLnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIHN1YnRhYmxlID0gX3JlZjM7CgogICAgICAgIGlmIChzdWJ0YWJsZS5zdWJGZWF0dXJlRmxhZ3MgJiBmbGFncykgewogICAgICAgICAgdGhpcy5wcm9jZXNzU3VidGFibGUoc3VidGFibGUsIGdseXBocyk7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgLy8gcmVtb3ZlIGRlbGV0ZWQgZ2x5cGhzCiAgICB2YXIgaW5kZXggPSBnbHlwaHMubGVuZ3RoIC0gMTsKICAgIHdoaWxlIChpbmRleCA+PSAwKSB7CiAgICAgIGlmIChnbHlwaHNbaW5kZXhdLmlkID09PSAweGZmZmYpIHsKICAgICAgICBnbHlwaHMuc3BsaWNlKGluZGV4LCAxKTsKICAgICAgfQoKICAgICAgaW5kZXgtLTsKICAgIH0KCiAgICByZXR1cm4gZ2x5cGhzOwogIH07CgogIEFBVE1vcnhQcm9jZXNzb3IucHJvdG90eXBlLnByb2Nlc3NTdWJ0YWJsZSA9IGZ1bmN0aW9uIHByb2Nlc3NTdWJ0YWJsZShzdWJ0YWJsZSwgZ2x5cGhzKSB7CiAgICB0aGlzLnN1YnRhYmxlID0gc3VidGFibGU7CiAgICB0aGlzLmdseXBocyA9IGdseXBoczsKICAgIGlmICh0aGlzLnN1YnRhYmxlLnR5cGUgPT09IDQpIHsKICAgICAgdGhpcy5wcm9jZXNzTm9uY29udGV4dHVhbFN1YnN0aXR1dGlvbnModGhpcy5zdWJ0YWJsZSwgdGhpcy5nbHlwaHMpOwogICAgICByZXR1cm47CiAgICB9CgogICAgdGhpcy5saWdhdHVyZVN0YWNrID0gW107CiAgICB0aGlzLm1hcmtlZEdseXBoID0gbnVsbDsKICAgIHRoaXMuZmlyc3RHbHlwaCA9IG51bGw7CiAgICB0aGlzLmxhc3RHbHlwaCA9IG51bGw7CiAgICB0aGlzLm1hcmtlZEluZGV4ID0gbnVsbDsKCiAgICB2YXIgc3RhdGVNYWNoaW5lID0gdGhpcy5nZXRTdGF0ZU1hY2hpbmUoc3VidGFibGUpOwogICAgdmFyIHByb2Nlc3MgPSB0aGlzLmdldFByb2Nlc3NvcigpOwoKICAgIHZhciByZXZlcnNlID0gISEodGhpcy5zdWJ0YWJsZS5jb3ZlcmFnZSAmIFJFVkVSU0VfRElSRUNUSU9OKTsKICAgIHJldHVybiBzdGF0ZU1hY2hpbmUucHJvY2Vzcyh0aGlzLmdseXBocywgcmV2ZXJzZSwgcHJvY2Vzcyk7CiAgfTsKCiAgQUFUTW9yeFByb2Nlc3Nvci5wcm90b3R5cGUuZ2V0U3RhdGVNYWNoaW5lID0gZnVuY3Rpb24gZ2V0U3RhdGVNYWNoaW5lKHN1YnRhYmxlKSB7CiAgICByZXR1cm4gbmV3IEFBVFN0YXRlTWFjaGluZShzdWJ0YWJsZS50YWJsZS5zdGF0ZVRhYmxlKTsKICB9OwoKICBBQVRNb3J4UHJvY2Vzc29yLnByb3RvdHlwZS5nZXRQcm9jZXNzb3IgPSBmdW5jdGlvbiBnZXRQcm9jZXNzb3IoKSB7CiAgICBzd2l0Y2ggKHRoaXMuc3VidGFibGUudHlwZSkgewogICAgICBjYXNlIDA6CiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0luZGljUmVhcnJhZ2VtZW50OwogICAgICBjYXNlIDE6CiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0NvbnRleHR1YWxTdWJzdGl0dXRpb247CiAgICAgIGNhc2UgMjoKICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTGlnYXR1cmU7CiAgICAgIGNhc2UgNDoKICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzTm9uY29udGV4dHVhbFN1YnN0aXR1dGlvbnM7CiAgICAgIGNhc2UgNToKICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzR2x5cGhJbnNlcnRpb247CiAgICAgIGRlZmF1bHQ6CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1vcnggc3VidGFibGUgdHlwZTogJyArIHRoaXMuc3VidGFibGUudHlwZSk7CiAgICB9CiAgfTsKCiAgQUFUTW9yeFByb2Nlc3Nvci5wcm90b3R5cGUucHJvY2Vzc0luZGljUmVhcnJhZ2VtZW50ID0gZnVuY3Rpb24gcHJvY2Vzc0luZGljUmVhcnJhZ2VtZW50KGdseXBoLCBlbnRyeSwgaW5kZXgpIHsKICAgIGlmIChlbnRyeS5mbGFncyAmIE1BUktfRklSU1QpIHsKICAgICAgdGhpcy5maXJzdEdseXBoID0gaW5kZXg7CiAgICB9CgogICAgaWYgKGVudHJ5LmZsYWdzICYgTUFSS19MQVNUKSB7CiAgICAgIHRoaXMubGFzdEdseXBoID0gaW5kZXg7CiAgICB9CgogICAgcmVvcmRlckdseXBocyh0aGlzLmdseXBocywgZW50cnkuZmxhZ3MgJiBWRVJCLCB0aGlzLmZpcnN0R2x5cGgsIHRoaXMubGFzdEdseXBoKTsKICB9OwoKICBBQVRNb3J4UHJvY2Vzc29yLnByb3RvdHlwZS5wcm9jZXNzQ29udGV4dHVhbFN1YnN0aXR1dGlvbiA9IGZ1bmN0aW9uIHByb2Nlc3NDb250ZXh0dWFsU3Vic3RpdHV0aW9uKGdseXBoLCBlbnRyeSwgaW5kZXgpIHsKICAgIHZhciBzdWJzaXR1dGlvbnMgPSB0aGlzLnN1YnRhYmxlLnRhYmxlLnN1YnN0aXR1dGlvblRhYmxlLml0ZW1zOwogICAgaWYgKGVudHJ5Lm1hcmtJbmRleCAhPT0gMHhmZmZmKSB7CiAgICAgIHZhciBsb29rdXAgPSBzdWJzaXR1dGlvbnMuZ2V0SXRlbShlbnRyeS5tYXJrSW5kZXgpOwogICAgICB2YXIgbG9va3VwVGFibGUgPSBuZXcgQUFUTG9va3VwVGFibGUobG9va3VwKTsKICAgICAgZ2x5cGggPSB0aGlzLmdseXBoc1t0aGlzLm1hcmtlZEdseXBoXTsKICAgICAgdmFyIGdpZCA9IGxvb2t1cFRhYmxlLmxvb2t1cChnbHlwaC5pZCk7CiAgICAgIGlmIChnaWQpIHsKICAgICAgICB0aGlzLmdseXBoc1t0aGlzLm1hcmtlZEdseXBoXSA9IHRoaXMuZm9udC5nZXRHbHlwaChnaWQsIGdseXBoLmNvZGVQb2ludHMpOwogICAgICB9CiAgICB9CgogICAgaWYgKGVudHJ5LmN1cnJlbnRJbmRleCAhPT0gMHhmZmZmKSB7CiAgICAgIHZhciBfbG9va3VwID0gc3Vic2l0dXRpb25zLmdldEl0ZW0oZW50cnkuY3VycmVudEluZGV4KTsKICAgICAgdmFyIF9sb29rdXBUYWJsZSA9IG5ldyBBQVRMb29rdXBUYWJsZShfbG9va3VwKTsKICAgICAgZ2x5cGggPSB0aGlzLmdseXBoc1tpbmRleF07CiAgICAgIHZhciBnaWQgPSBfbG9va3VwVGFibGUubG9va3VwKGdseXBoLmlkKTsKICAgICAgaWYgKGdpZCkgewogICAgICAgIHRoaXMuZ2x5cGhzW2luZGV4XSA9IHRoaXMuZm9udC5nZXRHbHlwaChnaWQsIGdseXBoLmNvZGVQb2ludHMpOwogICAgICB9CiAgICB9CgogICAgaWYgKGVudHJ5LmZsYWdzICYgU0VUX01BUkspIHsKICAgICAgdGhpcy5tYXJrZWRHbHlwaCA9IGluZGV4OwogICAgfQogIH07CgogIEFBVE1vcnhQcm9jZXNzb3IucHJvdG90eXBlLnByb2Nlc3NMaWdhdHVyZSA9IGZ1bmN0aW9uIHByb2Nlc3NMaWdhdHVyZShnbHlwaCwgZW50cnksIGluZGV4KSB7CiAgICBpZiAoZW50cnkuZmxhZ3MgJiBTRVRfQ09NUE9ORU5UKSB7CiAgICAgIHRoaXMubGlnYXR1cmVTdGFjay5wdXNoKGluZGV4KTsKICAgIH0KCiAgICBpZiAoZW50cnkuZmxhZ3MgJiBQRVJGT1JNX0FDVElPTikgewogICAgICB2YXIgX2xpZ2F0dXJlU3RhY2s7CgogICAgICB2YXIgYWN0aW9ucyA9IHRoaXMuc3VidGFibGUudGFibGUubGlnYXR1cmVBY3Rpb25zOwogICAgICB2YXIgY29tcG9uZW50cyA9IHRoaXMuc3VidGFibGUudGFibGUuY29tcG9uZW50czsKICAgICAgdmFyIGxpZ2F0dXJlTGlzdCA9IHRoaXMuc3VidGFibGUudGFibGUubGlnYXR1cmVMaXN0OwoKICAgICAgdmFyIGFjdGlvbkluZGV4ID0gZW50cnkuYWN0aW9uOwogICAgICB2YXIgbGFzdCA9IGZhbHNlOwogICAgICB2YXIgbGlnYXR1cmVJbmRleCA9IDA7CiAgICAgIHZhciBjb2RlUG9pbnRzID0gW107CiAgICAgIHZhciBsaWdhdHVyZUdseXBocyA9IFtdOwoKICAgICAgd2hpbGUgKCFsYXN0KSB7CiAgICAgICAgdmFyIF9jb2RlUG9pbnRzOwoKICAgICAgICB2YXIgY29tcG9uZW50R2x5cGggPSB0aGlzLmxpZ2F0dXJlU3RhY2sucG9wKCk7CiAgICAgICAgKF9jb2RlUG9pbnRzID0gY29kZVBvaW50cykudW5zaGlmdC5hcHBseShfY29kZVBvaW50cywgdGhpcy5nbHlwaHNbY29tcG9uZW50R2x5cGhdLmNvZGVQb2ludHMpOwoKICAgICAgICB2YXIgYWN0aW9uID0gYWN0aW9ucy5nZXRJdGVtKGFjdGlvbkluZGV4KyspOwogICAgICAgIGxhc3QgPSAhIShhY3Rpb24gJiBMQVNUX01BU0spOwogICAgICAgIHZhciBzdG9yZSA9ICEhKGFjdGlvbiAmIFNUT1JFX01BU0spOwogICAgICAgIHZhciBvZmZzZXQgPSAoYWN0aW9uICYgT0ZGU0VUX01BU0spIDw8IDIgPj4gMjsgLy8gc2lnbiBleHRlbmQgMzAgdG8gMzIgYml0cwogICAgICAgIG9mZnNldCArPSB0aGlzLmdseXBoc1tjb21wb25lbnRHbHlwaF0uaWQ7CgogICAgICAgIHZhciBjb21wb25lbnQgPSBjb21wb25lbnRzLmdldEl0ZW0ob2Zmc2V0KTsKICAgICAgICBsaWdhdHVyZUluZGV4ICs9IGNvbXBvbmVudDsKCiAgICAgICAgaWYgKGxhc3QgfHwgc3RvcmUpIHsKICAgICAgICAgIHZhciBsaWdhdHVyZUVudHJ5ID0gbGlnYXR1cmVMaXN0LmdldEl0ZW0obGlnYXR1cmVJbmRleCk7CiAgICAgICAgICB0aGlzLmdseXBoc1tjb21wb25lbnRHbHlwaF0gPSB0aGlzLmZvbnQuZ2V0R2x5cGgobGlnYXR1cmVFbnRyeSwgY29kZVBvaW50cyk7CiAgICAgICAgICBsaWdhdHVyZUdseXBocy5wdXNoKGNvbXBvbmVudEdseXBoKTsKICAgICAgICAgIGxpZ2F0dXJlSW5kZXggPSAwOwogICAgICAgICAgY29kZVBvaW50cyA9IFtdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmdseXBoc1tjb21wb25lbnRHbHlwaF0gPSB0aGlzLmZvbnQuZ2V0R2x5cGgoMHhmZmZmKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIFB1dCBsaWdhdHVyZSBnbHlwaCBpbmRleGVzIGJhY2sgb24gdGhlIHN0YWNrCiAgICAgIChfbGlnYXR1cmVTdGFjayA9IHRoaXMubGlnYXR1cmVTdGFjaykucHVzaC5hcHBseShfbGlnYXR1cmVTdGFjaywgbGlnYXR1cmVHbHlwaHMpOwogICAgfQogIH07CgogIEFBVE1vcnhQcm9jZXNzb3IucHJvdG90eXBlLnByb2Nlc3NOb25jb250ZXh0dWFsU3Vic3RpdHV0aW9ucyA9IGZ1bmN0aW9uIHByb2Nlc3NOb25jb250ZXh0dWFsU3Vic3RpdHV0aW9ucyhzdWJ0YWJsZSwgZ2x5cGhzLCBpbmRleCkgewogICAgdmFyIGxvb2t1cFRhYmxlID0gbmV3IEFBVExvb2t1cFRhYmxlKHN1YnRhYmxlLnRhYmxlLmxvb2t1cFRhYmxlKTsKCiAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBnbHlwaHMubGVuZ3RoOyBpbmRleCsrKSB7CiAgICAgIHZhciBnbHlwaCA9IGdseXBoc1tpbmRleF07CiAgICAgIGlmIChnbHlwaC5pZCAhPT0gMHhmZmZmKSB7CiAgICAgICAgdmFyIGdpZCA9IGxvb2t1cFRhYmxlLmxvb2t1cChnbHlwaC5pZCk7CiAgICAgICAgaWYgKGdpZCkgewogICAgICAgICAgLy8gMCBtZWFucyBkbyBub3RoaW5nCiAgICAgICAgICBnbHlwaHNbaW5kZXhdID0gdGhpcy5mb250LmdldEdseXBoKGdpZCwgZ2x5cGguY29kZVBvaW50cyk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfTsKCiAgQUFUTW9yeFByb2Nlc3Nvci5wcm90b3R5cGUuX2luc2VydEdseXBocyA9IGZ1bmN0aW9uIF9pbnNlcnRHbHlwaHMoZ2x5cGhJbmRleCwgaW5zZXJ0aW9uQWN0aW9uSW5kZXgsIGNvdW50LCBpc0JlZm9yZSkgewogICAgdmFyIF9nbHlwaHM7CgogICAgdmFyIGluc2VydGlvbnMgPSBbXTsKICAgIHdoaWxlIChjb3VudC0tKSB7CiAgICAgIHZhciBnaWQgPSB0aGlzLnN1YnRhYmxlLnRhYmxlLmluc2VydGlvbkFjdGlvbnMuZ2V0SXRlbShpbnNlcnRpb25BY3Rpb25JbmRleCsrKTsKICAgICAgaW5zZXJ0aW9ucy5wdXNoKHRoaXMuZm9udC5nZXRHbHlwaChnaWQpKTsKICAgIH0KCiAgICBpZiAoIWlzQmVmb3JlKSB7CiAgICAgIGdseXBoSW5kZXgrKzsKICAgIH0KCiAgICAoX2dseXBocyA9IHRoaXMuZ2x5cGhzKS5zcGxpY2UuYXBwbHkoX2dseXBocywgW2dseXBoSW5kZXgsIDBdLmNvbmNhdChpbnNlcnRpb25zKSk7CiAgfTsKCiAgQUFUTW9yeFByb2Nlc3Nvci5wcm90b3R5cGUucHJvY2Vzc0dseXBoSW5zZXJ0aW9uID0gZnVuY3Rpb24gcHJvY2Vzc0dseXBoSW5zZXJ0aW9uKGdseXBoLCBlbnRyeSwgaW5kZXgpIHsKICAgIGlmIChlbnRyeS5mbGFncyAmIFNFVF9NQVJLKSB7CiAgICAgIHRoaXMubWFya2VkSW5kZXggPSBpbmRleDsKICAgIH0KCiAgICBpZiAoZW50cnkubWFya2VkSW5zZXJ0SW5kZXggIT09IDB4ZmZmZikgewogICAgICB2YXIgY291bnQgPSAoZW50cnkuZmxhZ3MgJiBNQVJLRURfSU5TRVJUX0NPVU5UKSA+Pj4gNTsKICAgICAgdmFyIGlzQmVmb3JlID0gISEoZW50cnkuZmxhZ3MgJiBNQVJLRURfSU5TRVJUX0JFRk9SRSk7CiAgICAgIHRoaXMuX2luc2VydEdseXBocyh0aGlzLm1hcmtlZEluZGV4LCBlbnRyeS5tYXJrZWRJbnNlcnRJbmRleCwgY291bnQsIGlzQmVmb3JlKTsKICAgIH0KCiAgICBpZiAoZW50cnkuY3VycmVudEluc2VydEluZGV4ICE9PSAweGZmZmYpIHsKICAgICAgdmFyIF9jb3VudCA9IChlbnRyeS5mbGFncyAmIENVUlJFTlRfSU5TRVJUX0NPVU5UKSA+Pj4gNTsKICAgICAgdmFyIF9pc0JlZm9yZSA9ICEhKGVudHJ5LmZsYWdzICYgQ1VSUkVOVF9JTlNFUlRfQkVGT1JFKTsKICAgICAgdGhpcy5faW5zZXJ0R2x5cGhzKGluZGV4LCBlbnRyeS5jdXJyZW50SW5zZXJ0SW5kZXgsIF9jb3VudCwgX2lzQmVmb3JlKTsKICAgIH0KICB9OwoKICBBQVRNb3J4UHJvY2Vzc29yLnByb3RvdHlwZS5nZXRTdXBwb3J0ZWRGZWF0dXJlcyA9IGZ1bmN0aW9uIGdldFN1cHBvcnRlZEZlYXR1cmVzKCkgewogICAgdmFyIGZlYXR1cmVzID0gW107CiAgICBmb3IgKHZhciBfaXRlcmF0b3I0ID0gdGhpcy5tb3J4LmNoYWlucywgX2lzQXJyYXk0ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3I0KSwgX2k0ID0gMCwgX2l0ZXJhdG9yNCA9IF9pc0FycmF5NCA/IF9pdGVyYXRvcjQgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yNCk7OykgewogICAgICB2YXIgX3JlZjQ7CgogICAgICBpZiAoX2lzQXJyYXk0KSB7CiAgICAgICAgaWYgKF9pNCA+PSBfaXRlcmF0b3I0Lmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjQgPSBfaXRlcmF0b3I0W19pNCsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTQgPSBfaXRlcmF0b3I0Lm5leHQoKTsKICAgICAgICBpZiAoX2k0LmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWY0ID0gX2k0LnZhbHVlOwogICAgICB9CgogICAgICB2YXIgY2hhaW4gPSBfcmVmNDsKCiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjUgPSBjaGFpbi5mZWF0dXJlcywgX2lzQXJyYXk1ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3I1KSwgX2k1ID0gMCwgX2l0ZXJhdG9yNSA9IF9pc0FycmF5NSA/IF9pdGVyYXRvcjUgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yNSk7OykgewogICAgICAgIHZhciBfcmVmNTsKCiAgICAgICAgaWYgKF9pc0FycmF5NSkgewogICAgICAgICAgaWYgKF9pNSA+PSBfaXRlcmF0b3I1Lmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmNSA9IF9pdGVyYXRvcjVbX2k1KytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTUgPSBfaXRlcmF0b3I1Lm5leHQoKTsKICAgICAgICAgIGlmIChfaTUuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmNSA9IF9pNS52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBmZWF0dXJlID0gX3JlZjU7CgogICAgICAgIGZlYXR1cmVzLnB1c2goW2ZlYXR1cmUuZmVhdHVyZVR5cGUsIGZlYXR1cmUuZmVhdHVyZVNldHRpbmddKTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBmZWF0dXJlczsKICB9OwoKICBBQVRNb3J4UHJvY2Vzc29yLnByb3RvdHlwZS5nZW5lcmF0ZUlucHV0cyA9IGZ1bmN0aW9uIGdlbmVyYXRlSW5wdXRzKGdpZCkgewogICAgaWYgKCF0aGlzLmlucHV0Q2FjaGUpIHsKICAgICAgdGhpcy5nZW5lcmF0ZUlucHV0Q2FjaGUoKTsKICAgIH0KCiAgICByZXR1cm4gdGhpcy5pbnB1dENhY2hlW2dpZF0gfHwgW107CiAgfTsKCiAgQUFUTW9yeFByb2Nlc3Nvci5wcm90b3R5cGUuZ2VuZXJhdGVJbnB1dENhY2hlID0gZnVuY3Rpb24gZ2VuZXJhdGVJbnB1dENhY2hlKCkgewogICAgdGhpcy5pbnB1dENhY2hlID0ge307CgogICAgZm9yICh2YXIgX2l0ZXJhdG9yNiA9IHRoaXMubW9yeC5jaGFpbnMsIF9pc0FycmF5NiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yNiksIF9pNiA9IDAsIF9pdGVyYXRvcjYgPSBfaXNBcnJheTYgPyBfaXRlcmF0b3I2IDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjYpOzspIHsKICAgICAgdmFyIF9yZWY2OwoKICAgICAgaWYgKF9pc0FycmF5NikgewogICAgICAgIGlmIChfaTYgPj0gX2l0ZXJhdG9yNi5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWY2ID0gX2l0ZXJhdG9yNltfaTYrK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2k2ID0gX2l0ZXJhdG9yNi5uZXh0KCk7CiAgICAgICAgaWYgKF9pNi5kb25lKSBicmVhazsKICAgICAgICBfcmVmNiA9IF9pNi52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIGNoYWluID0gX3JlZjY7CgogICAgICB2YXIgZmxhZ3MgPSBjaGFpbi5kZWZhdWx0RmxhZ3M7CgogICAgICBmb3IgKHZhciBfaXRlcmF0b3I3ID0gY2hhaW4uc3VidGFibGVzLCBfaXNBcnJheTcgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjcpLCBfaTcgPSAwLCBfaXRlcmF0b3I3ID0gX2lzQXJyYXk3ID8gX2l0ZXJhdG9yNyA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I3KTs7KSB7CiAgICAgICAgdmFyIF9yZWY3OwoKICAgICAgICBpZiAoX2lzQXJyYXk3KSB7CiAgICAgICAgICBpZiAoX2k3ID49IF9pdGVyYXRvcjcubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWY3ID0gX2l0ZXJhdG9yN1tfaTcrK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pNyA9IF9pdGVyYXRvcjcubmV4dCgpOwogICAgICAgICAgaWYgKF9pNy5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWY3ID0gX2k3LnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIHN1YnRhYmxlID0gX3JlZjc7CgogICAgICAgIGlmIChzdWJ0YWJsZS5zdWJGZWF0dXJlRmxhZ3MgJiBmbGFncykgewogICAgICAgICAgdGhpcy5nZW5lcmF0ZUlucHV0c0ZvclN1YnRhYmxlKHN1YnRhYmxlKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICBBQVRNb3J4UHJvY2Vzc29yLnByb3RvdHlwZS5nZW5lcmF0ZUlucHV0c0ZvclN1YnRhYmxlID0gZnVuY3Rpb24gZ2VuZXJhdGVJbnB1dHNGb3JTdWJ0YWJsZShzdWJ0YWJsZSkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICAvLyBDdXJyZW50bHksIG9ubHkgc3VwcG9ydGluZyBsaWdhdHVyZSBzdWJ0YWJsZXMuCiAgICBpZiAoc3VidGFibGUudHlwZSAhPT0gMikgewogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIHJldmVyc2UgPSAhIShzdWJ0YWJsZS5jb3ZlcmFnZSAmIFJFVkVSU0VfRElSRUNUSU9OKTsKICAgIGlmIChyZXZlcnNlKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignUmV2ZXJzZSBzdWJ0YWJsZSwgbm90IHN1cHBvcnRlZC4nKTsKICAgIH0KCiAgICB0aGlzLnN1YnRhYmxlID0gc3VidGFibGU7CiAgICB0aGlzLmxpZ2F0dXJlU3RhY2sgPSBbXTsKCiAgICB2YXIgc3RhdGVNYWNoaW5lID0gdGhpcy5nZXRTdGF0ZU1hY2hpbmUoc3VidGFibGUpOwogICAgdmFyIHByb2Nlc3MgPSB0aGlzLmdldFByb2Nlc3NvcigpOwoKICAgIHZhciBpbnB1dCA9IFtdOwogICAgdmFyIHN0YWNrID0gW107CiAgICB0aGlzLmdseXBocyA9IFtdOwoKICAgIHN0YXRlTWFjaGluZS50cmF2ZXJzZSh7CiAgICAgIGVudGVyOiBmdW5jdGlvbiBlbnRlcihnbHlwaCwgZW50cnkpIHsKICAgICAgICB2YXIgZ2x5cGhzID0gX3RoaXMuZ2x5cGhzOwogICAgICAgIHN0YWNrLnB1c2goewogICAgICAgICAgZ2x5cGhzOiBnbHlwaHMuc2xpY2UoKSwKICAgICAgICAgIGxpZ2F0dXJlU3RhY2s6IF90aGlzLmxpZ2F0dXJlU3RhY2suc2xpY2UoKQogICAgICAgIH0pOwoKICAgICAgICAvLyBBZGQgZ2x5cGggdG8gaW5wdXQgYW5kIGdseXBocyB0byBwcm9jZXNzLgogICAgICAgIHZhciBnID0gX3RoaXMuZm9udC5nZXRHbHlwaChnbHlwaCk7CiAgICAgICAgaW5wdXQucHVzaChnKTsKICAgICAgICBnbHlwaHMucHVzaChpbnB1dFtpbnB1dC5sZW5ndGggLSAxXSk7CgogICAgICAgIC8vIFByb2Nlc3MgbGlnYXR1cmUgc3Vic3RpdHV0aW9uCiAgICAgICAgcHJvY2VzcyhnbHlwaHNbZ2x5cGhzLmxlbmd0aCAtIDFdLCBlbnRyeSwgZ2x5cGhzLmxlbmd0aCAtIDEpOwoKICAgICAgICAvLyBBZGQgaW5wdXQgdG8gcmVzdWx0IGlmIG9ubHkgb25lIG1hdGNoaW5nIChub24tZGVsZXRlZCkgZ2x5cGggcmVtYWlucy4KICAgICAgICB2YXIgY291bnQgPSAwOwogICAgICAgIHZhciBmb3VuZCA9IDA7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBnbHlwaHMubGVuZ3RoICYmIGNvdW50IDw9IDE7IGkrKykgewogICAgICAgICAgaWYgKGdseXBoc1tpXS5pZCAhPT0gMHhmZmZmKSB7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIGZvdW5kID0gZ2x5cGhzW2ldLmlkOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGNvdW50ID09PSAxKSB7CiAgICAgICAgICB2YXIgcmVzdWx0ID0gaW5wdXQubWFwKGZ1bmN0aW9uIChnKSB7CiAgICAgICAgICAgIHJldHVybiBnLmlkOwogICAgICAgICAgfSk7CiAgICAgICAgICB2YXIgX2NhY2hlID0gX3RoaXMuaW5wdXRDYWNoZVtmb3VuZF07CiAgICAgICAgICBpZiAoX2NhY2hlKSB7CiAgICAgICAgICAgIF9jYWNoZS5wdXNoKHJlc3VsdCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfdGhpcy5pbnB1dENhY2hlW2ZvdW5kXSA9IFtyZXN1bHRdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKCiAgICAgIGV4aXQ6IGZ1bmN0aW9uIGV4aXQoKSB7CiAgICAgICAgdmFyIF9zdGFjayRwb3AgPSBzdGFjay5wb3AoKTsKCiAgICAgICAgX3RoaXMuZ2x5cGhzID0gX3N0YWNrJHBvcC5nbHlwaHM7CiAgICAgICAgX3RoaXMubGlnYXR1cmVTdGFjayA9IF9zdGFjayRwb3AubGlnYXR1cmVTdGFjazsKCiAgICAgICAgaW5wdXQucG9wKCk7CiAgICAgIH0KICAgIH0pOwogIH07CgogIHJldHVybiBBQVRNb3J4UHJvY2Vzc29yOwp9KCksIChfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yJDIoX2NsYXNzJDIucHJvdG90eXBlLCAnZ2V0U3RhdGVNYWNoaW5lJywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzJDIucHJvdG90eXBlLCAnZ2V0U3RhdGVNYWNoaW5lJyksIF9jbGFzcyQyLnByb3RvdHlwZSkpLCBfY2xhc3MkMik7CgpmdW5jdGlvbiBzd2FwKGdseXBocywgcmFuZ2VBLCByYW5nZUIpIHsKICB2YXIgcmV2ZXJzZUEgPSBhcmd1bWVudHMubGVuZ3RoID4gMyAmJiBhcmd1bWVudHNbM10gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1szXSA6IGZhbHNlOwogIHZhciByZXZlcnNlQiA9IGFyZ3VtZW50cy5sZW5ndGggPiA0ICYmIGFyZ3VtZW50c1s0XSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzRdIDogZmFsc2U7CgogIHZhciBlbmQgPSBnbHlwaHMuc3BsaWNlKHJhbmdlQlswXSAtIChyYW5nZUJbMV0gLSAxKSwgcmFuZ2VCWzFdKTsKICBpZiAocmV2ZXJzZUIpIHsKICAgIGVuZC5yZXZlcnNlKCk7CiAgfQoKICB2YXIgc3RhcnQgPSBnbHlwaHMuc3BsaWNlLmFwcGx5KGdseXBocywgW3JhbmdlQVswXSwgcmFuZ2VBWzFdXS5jb25jYXQoZW5kKSk7CiAgaWYgKHJldmVyc2VBKSB7CiAgICBzdGFydC5yZXZlcnNlKCk7CiAgfQoKICBnbHlwaHMuc3BsaWNlLmFwcGx5KGdseXBocywgW3JhbmdlQlswXSAtIChyYW5nZUFbMV0gLSAxKSwgMF0uY29uY2F0KHN0YXJ0KSk7CiAgcmV0dXJuIGdseXBoczsKfQoKZnVuY3Rpb24gcmVvcmRlckdseXBocyhnbHlwaHMsIHZlcmIsIGZpcnN0R2x5cGgsIGxhc3RHbHlwaCkgewogIHZhciBsZW5ndGggPSBsYXN0R2x5cGggLSBmaXJzdEdseXBoICsgMTsKICBzd2l0Y2ggKHZlcmIpIHsKICAgIGNhc2UgMDoKICAgICAgLy8gbm8gY2hhbmdlCiAgICAgIHJldHVybiBnbHlwaHM7CgogICAgY2FzZSAxOgogICAgICAvLyBBeCA9PiB4QQogICAgICByZXR1cm4gc3dhcChnbHlwaHMsIFtmaXJzdEdseXBoLCAxXSwgW2xhc3RHbHlwaCwgMF0pOwoKICAgIGNhc2UgMjoKICAgICAgLy8geEQgPT4gRHgKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMF0sIFtsYXN0R2x5cGgsIDFdKTsKCiAgICBjYXNlIDM6CiAgICAgIC8vIEF4RCA9PiBEeEEKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMV0sIFtsYXN0R2x5cGgsIDFdKTsKCiAgICBjYXNlIDQ6CiAgICAgIC8vIEFCeCA9PiB4QUIKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMl0sIFtsYXN0R2x5cGgsIDBdKTsKCiAgICBjYXNlIDU6CiAgICAgIC8vIEFCeCA9PiB4QkEKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMl0sIFtsYXN0R2x5cGgsIDBdLCB0cnVlLCBmYWxzZSk7CgogICAgY2FzZSA2OgogICAgICAvLyB4Q0QgPT4gQ0R4CiAgICAgIHJldHVybiBzd2FwKGdseXBocywgW2ZpcnN0R2x5cGgsIDBdLCBbbGFzdEdseXBoLCAyXSk7CgogICAgY2FzZSA3OgogICAgICAvLyB4Q0QgPT4gREN4CiAgICAgIHJldHVybiBzd2FwKGdseXBocywgW2ZpcnN0R2x5cGgsIDBdLCBbbGFzdEdseXBoLCAyXSwgZmFsc2UsIHRydWUpOwoKICAgIGNhc2UgODoKICAgICAgLy8gQXhDRCA9PiBDRHhBCiAgICAgIHJldHVybiBzd2FwKGdseXBocywgW2ZpcnN0R2x5cGgsIDFdLCBbbGFzdEdseXBoLCAyXSk7CgogICAgY2FzZSA5OgogICAgICAvLyBBeENEID0+IERDeEEKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMV0sIFtsYXN0R2x5cGgsIDJdLCBmYWxzZSwgdHJ1ZSk7CgogICAgY2FzZSAxMDoKICAgICAgLy8gQUJ4RCA9PiBEeEFCCiAgICAgIHJldHVybiBzd2FwKGdseXBocywgW2ZpcnN0R2x5cGgsIDJdLCBbbGFzdEdseXBoLCAxXSk7CgogICAgY2FzZSAxMToKICAgICAgLy8gQUJ4RCA9PiBEeEJBCiAgICAgIHJldHVybiBzd2FwKGdseXBocywgW2ZpcnN0R2x5cGgsIDJdLCBbbGFzdEdseXBoLCAxXSwgdHJ1ZSwgZmFsc2UpOwoKICAgIGNhc2UgMTI6CiAgICAgIC8vIEFCeENEID0+IENEeEFCCiAgICAgIHJldHVybiBzd2FwKGdseXBocywgW2ZpcnN0R2x5cGgsIDJdLCBbbGFzdEdseXBoLCAyXSk7CgogICAgY2FzZSAxMzoKICAgICAgLy8gQUJ4Q0QgPT4gQ0R4QkEKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMl0sIFtsYXN0R2x5cGgsIDJdLCB0cnVlLCBmYWxzZSk7CgogICAgY2FzZSAxNDoKICAgICAgLy8gQUJ4Q0QgPT4gREN4QUIKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMl0sIFtsYXN0R2x5cGgsIDJdLCBmYWxzZSwgdHJ1ZSk7CgogICAgY2FzZSAxNToKICAgICAgLy8gQUJ4Q0QgPT4gREN4QkEKICAgICAgcmV0dXJuIHN3YXAoZ2x5cGhzLCBbZmlyc3RHbHlwaCwgMl0sIFtsYXN0R2x5cGgsIDJdLCB0cnVlLCB0cnVlKTsKCiAgICBkZWZhdWx0OgogICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gdmVyYjogJyArIHZlcmIpOwogIH0KfQoKdmFyIEFBVExheW91dEVuZ2luZSA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBBQVRMYXlvdXRFbmdpbmUoZm9udCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEFBVExheW91dEVuZ2luZSk7CgogICAgdGhpcy5mb250ID0gZm9udDsKICAgIHRoaXMubW9yeFByb2Nlc3NvciA9IG5ldyBBQVRNb3J4UHJvY2Vzc29yKGZvbnQpOwogICAgdGhpcy5mYWxsYmFja1Bvc2l0aW9uID0gZmFsc2U7CiAgfQoKICBBQVRMYXlvdXRFbmdpbmUucHJvdG90eXBlLnN1YnN0aXR1dGUgPSBmdW5jdGlvbiBzdWJzdGl0dXRlKGdseXBoUnVuKSB7CiAgICAvLyBBQVQgZXhwZWN0cyB0aGUgZ2x5cGhzIHRvIGJlIGluIHZpc3VhbCBvcmRlciBwcmlvciB0byBtb3J4IHByb2Nlc3NpbmcsCiAgICAvLyBzbyByZXZlcnNlIHRoZSBnbHlwaHMgaWYgdGhlIHNjcmlwdCBpcyByaWdodC10by1sZWZ0LgogICAgaWYgKGdseXBoUnVuLmRpcmVjdGlvbiA9PT0gJ3J0bCcpIHsKICAgICAgZ2x5cGhSdW4uZ2x5cGhzLnJldmVyc2UoKTsKICAgIH0KCiAgICB0aGlzLm1vcnhQcm9jZXNzb3IucHJvY2VzcyhnbHlwaFJ1bi5nbHlwaHMsIG1hcE9UVG9BQVQoZ2x5cGhSdW4uZmVhdHVyZXMpKTsKICB9OwoKICBBQVRMYXlvdXRFbmdpbmUucHJvdG90eXBlLmdldEF2YWlsYWJsZUZlYXR1cmVzID0gZnVuY3Rpb24gZ2V0QXZhaWxhYmxlRmVhdHVyZXMoc2NyaXB0LCBsYW5ndWFnZSkgewogICAgcmV0dXJuIG1hcEFBVFRvT1QodGhpcy5tb3J4UHJvY2Vzc29yLmdldFN1cHBvcnRlZEZlYXR1cmVzKCkpOwogIH07CgogIEFBVExheW91dEVuZ2luZS5wcm90b3R5cGUuc3RyaW5nc0ZvckdseXBoID0gZnVuY3Rpb24gc3RyaW5nc0ZvckdseXBoKGdpZCkgewogICAgdmFyIGdseXBoU3RyaW5ncyA9IHRoaXMubW9yeFByb2Nlc3Nvci5nZW5lcmF0ZUlucHV0cyhnaWQpOwogICAgdmFyIHJlc3VsdCA9IG5ldyBfU2V0KCk7CgogICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gZ2x5cGhTdHJpbmdzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgdmFyIF9yZWY7CgogICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIGdseXBocyA9IF9yZWY7CgogICAgICB0aGlzLl9hZGRTdHJpbmdzKGdseXBocywgMCwgcmVzdWx0LCAnJyk7CiAgICB9CgogICAgcmV0dXJuIHJlc3VsdDsKICB9OwoKICBBQVRMYXlvdXRFbmdpbmUucHJvdG90eXBlLl9hZGRTdHJpbmdzID0gZnVuY3Rpb24gX2FkZFN0cmluZ3MoZ2x5cGhzLCBpbmRleCwgc3RyaW5ncywgc3RyaW5nKSB7CiAgICB2YXIgY29kZVBvaW50cyA9IHRoaXMuZm9udC5fY21hcFByb2Nlc3Nvci5jb2RlUG9pbnRzRm9yR2x5cGgoZ2x5cGhzW2luZGV4XSk7CgogICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IGNvZGVQb2ludHMsIF9pc0FycmF5MiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMiksIF9pMiA9IDAsIF9pdGVyYXRvcjIgPSBfaXNBcnJheTIgPyBfaXRlcmF0b3IyIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjIpOzspIHsKICAgICAgdmFyIF9yZWYyOwoKICAgICAgaWYgKF9pc0FycmF5MikgewogICAgICAgIGlmIChfaTIgPj0gX2l0ZXJhdG9yMi5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWYyID0gX2l0ZXJhdG9yMltfaTIrK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2kyID0gX2l0ZXJhdG9yMi5uZXh0KCk7CiAgICAgICAgaWYgKF9pMi5kb25lKSBicmVhazsKICAgICAgICBfcmVmMiA9IF9pMi52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIGNvZGVQb2ludCA9IF9yZWYyOwoKICAgICAgdmFyIHMgPSBzdHJpbmcgKyBfU3RyaW5nJGZyb21Db2RlUG9pbnQoY29kZVBvaW50KTsKICAgICAgaWYgKGluZGV4IDwgZ2x5cGhzLmxlbmd0aCAtIDEpIHsKICAgICAgICB0aGlzLl9hZGRTdHJpbmdzKGdseXBocywgaW5kZXggKyAxLCBzdHJpbmdzLCBzKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzdHJpbmdzLmFkZChzKTsKICAgICAgfQogICAgfQogIH07CgogIHJldHVybiBBQVRMYXlvdXRFbmdpbmU7Cn0oKTsKCi8qKgogKiBTaGFwaW5nUGxhbnMgYXJlIHVzZWQgYnkgdGhlIE9wZW5UeXBlIHNoYXBlcnMgdG8gc3RvcmUgd2hpY2gKICogZmVhdHVyZXMgc2hvdWxkIGJ5IGFwcGxpZWQsIGFuZCBpbiB3aGF0IG9yZGVyIHRvIGFwcGx5IHRoZW0uCiAqIFRoZSBmZWF0dXJlcyBhcmUgYXBwbGllZCBpbiBncm91cHMgY2FsbGVkIHN0YWdlcy4gQSBmZWF0dXJlCiAqIGNhbiBiZSBhcHBsaWVkIGdsb2JhbGx5IHRvIGFsbCBnbHlwaHMsIG9yIGxvY2FsbHkgdG8gb25seQogKiBzcGVjaWZpYyBnbHlwaHMuCiAqCiAqIEBwcml2YXRlCiAqLwoKdmFyIFNoYXBpbmdQbGFuID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIFNoYXBpbmdQbGFuKGZvbnQsIHNjcmlwdCwgZGlyZWN0aW9uKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU2hhcGluZ1BsYW4pOwoKICAgIHRoaXMuZm9udCA9IGZvbnQ7CiAgICB0aGlzLnNjcmlwdCA9IHNjcmlwdDsKICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uOwogICAgdGhpcy5zdGFnZXMgPSBbXTsKICAgIHRoaXMuZ2xvYmFsRmVhdHVyZXMgPSB7fTsKICAgIHRoaXMuYWxsRmVhdHVyZXMgPSB7fTsKICB9CgogIC8qKgogICAqIEFkZHMgdGhlIGdpdmVuIGZlYXR1cmVzIHRvIHRoZSBsYXN0IHN0YWdlLgogICAqIElnbm9yZXMgZmVhdHVyZXMgdGhhdCBoYXZlIGFscmVhZHkgYmVlbiBhcHBsaWVkLgogICAqLwoKCiAgU2hhcGluZ1BsYW4ucHJvdG90eXBlLl9hZGRGZWF0dXJlcyA9IGZ1bmN0aW9uIF9hZGRGZWF0dXJlcyhmZWF0dXJlcywgZ2xvYmFsKSB7CiAgICB2YXIgc3RhZ2VJbmRleCA9IHRoaXMuc3RhZ2VzLmxlbmd0aCAtIDE7CiAgICB2YXIgc3RhZ2UgPSB0aGlzLnN0YWdlc1tzdGFnZUluZGV4XTsKICAgIGZvciAodmFyIF9pdGVyYXRvciA9IGZlYXR1cmVzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgdmFyIF9yZWY7CgogICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIGZlYXR1cmUgPSBfcmVmOwoKICAgICAgaWYgKHRoaXMuYWxsRmVhdHVyZXNbZmVhdHVyZV0gPT0gbnVsbCkgewogICAgICAgIHN0YWdlLnB1c2goZmVhdHVyZSk7CiAgICAgICAgdGhpcy5hbGxGZWF0dXJlc1tmZWF0dXJlXSA9IHN0YWdlSW5kZXg7CgogICAgICAgIGlmIChnbG9iYWwpIHsKICAgICAgICAgIHRoaXMuZ2xvYmFsRmVhdHVyZXNbZmVhdHVyZV0gPSB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07CgogIC8qKgogICAqIEFkZCBmZWF0dXJlcyB0byB0aGUgbGFzdCBzdGFnZQogICAqLwoKCiAgU2hhcGluZ1BsYW4ucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uIGFkZChhcmcpIHsKICAgIHZhciBnbG9iYWwgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHRydWU7CgogICAgaWYgKHRoaXMuc3RhZ2VzLmxlbmd0aCA9PT0gMCkgewogICAgICB0aGlzLnN0YWdlcy5wdXNoKFtdKTsKICAgIH0KCiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ3N0cmluZycpIHsKICAgICAgYXJnID0gW2FyZ107CiAgICB9CgogICAgaWYgKEFycmF5LmlzQXJyYXkoYXJnKSkgewogICAgICB0aGlzLl9hZGRGZWF0dXJlcyhhcmcsIGdsb2JhbCk7CiAgICB9IGVsc2UgaWYgKCh0eXBlb2YgYXJnID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZihhcmcpKSA9PT0gJ29iamVjdCcpIHsKICAgICAgdGhpcy5fYWRkRmVhdHVyZXMoYXJnLmdsb2JhbCB8fCBbXSwgdHJ1ZSk7CiAgICAgIHRoaXMuX2FkZEZlYXR1cmVzKGFyZy5sb2NhbCB8fCBbXSwgZmFsc2UpOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBhcmd1bWVudCB0byBTaGFwaW5nUGxhbiNhZGQiKTsKICAgIH0KICB9OwoKICAvKioKICAgKiBBZGQgYSBuZXcgc3RhZ2UKICAgKi8KCgogIFNoYXBpbmdQbGFuLnByb3RvdHlwZS5hZGRTdGFnZSA9IGZ1bmN0aW9uIGFkZFN0YWdlKGFyZywgZ2xvYmFsKSB7CiAgICBpZiAodHlwZW9mIGFyZyA9PT0gJ2Z1bmN0aW9uJykgewogICAgICB0aGlzLnN0YWdlcy5wdXNoKGFyZywgW10pOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5zdGFnZXMucHVzaChbXSk7CiAgICAgIHRoaXMuYWRkKGFyZywgZ2xvYmFsKTsKICAgIH0KICB9OwoKICBTaGFwaW5nUGxhbi5wcm90b3R5cGUuc2V0RmVhdHVyZU92ZXJyaWRlcyA9IGZ1bmN0aW9uIHNldEZlYXR1cmVPdmVycmlkZXMoZmVhdHVyZXMpIHsKICAgIGlmIChBcnJheS5pc0FycmF5KGZlYXR1cmVzKSkgewogICAgICB0aGlzLmFkZChmZWF0dXJlcyk7CiAgICB9IGVsc2UgaWYgKCh0eXBlb2YgZmVhdHVyZXMgPT09ICd1bmRlZmluZWQnID8gJ3VuZGVmaW5lZCcgOiBfdHlwZW9mKGZlYXR1cmVzKSkgPT09ICdvYmplY3QnKSB7CiAgICAgIGZvciAodmFyIHRhZyBpbiBmZWF0dXJlcykgewogICAgICAgIGlmIChmZWF0dXJlc1t0YWddKSB7CiAgICAgICAgICB0aGlzLmFkZCh0YWcpOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5hbGxGZWF0dXJlc1t0YWddICE9IG51bGwpIHsKICAgICAgICAgIHZhciBzdGFnZSA9IHRoaXMuc3RhZ2VzW3RoaXMuYWxsRmVhdHVyZXNbdGFnXV07CiAgICAgICAgICBzdGFnZS5zcGxpY2Uoc3RhZ2UuaW5kZXhPZih0YWcpLCAxKTsKICAgICAgICAgIGRlbGV0ZSB0aGlzLmFsbEZlYXR1cmVzW3RhZ107CiAgICAgICAgICBkZWxldGUgdGhpcy5nbG9iYWxGZWF0dXJlc1t0YWddOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH07CgogIC8qKgogICAqIEFzc2lnbnMgdGhlIGdsb2JhbCBmZWF0dXJlcyB0byB0aGUgZ2l2ZW4gZ2x5cGhzCiAgICovCgoKICBTaGFwaW5nUGxhbi5wcm90b3R5cGUuYXNzaWduR2xvYmFsRmVhdHVyZXMgPSBmdW5jdGlvbiBhc3NpZ25HbG9iYWxGZWF0dXJlcyhnbHlwaHMpIHsKICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBnbHlwaHMsIF9pc0FycmF5MiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMiksIF9pMiA9IDAsIF9pdGVyYXRvcjIgPSBfaXNBcnJheTIgPyBfaXRlcmF0b3IyIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjIpOzspIHsKICAgICAgdmFyIF9yZWYyOwoKICAgICAgaWYgKF9pc0FycmF5MikgewogICAgICAgIGlmIChfaTIgPj0gX2l0ZXJhdG9yMi5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWYyID0gX2l0ZXJhdG9yMltfaTIrK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2kyID0gX2l0ZXJhdG9yMi5uZXh0KCk7CiAgICAgICAgaWYgKF9pMi5kb25lKSBicmVhazsKICAgICAgICBfcmVmMiA9IF9pMi52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIGdseXBoID0gX3JlZjI7CgogICAgICBmb3IgKHZhciBmZWF0dXJlIGluIHRoaXMuZ2xvYmFsRmVhdHVyZXMpIHsKICAgICAgICBnbHlwaC5mZWF0dXJlc1tmZWF0dXJlXSA9IHRydWU7CiAgICAgIH0KICAgIH0KICB9OwoKICAvKioKICAgKiBFeGVjdXRlcyB0aGUgcGxhbm5lZCBzdGFnZXMgdXNpbmcgdGhlIGdpdmVuIE9UUHJvY2Vzc29yCiAgICovCgoKICBTaGFwaW5nUGxhbi5wcm90b3R5cGUucHJvY2VzcyA9IGZ1bmN0aW9uIHByb2Nlc3MocHJvY2Vzc29yLCBnbHlwaHMsIHBvc2l0aW9ucykgewogICAgZm9yICh2YXIgX2l0ZXJhdG9yMyA9IHRoaXMuc3RhZ2VzLCBfaXNBcnJheTMgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjMpLCBfaTMgPSAwLCBfaXRlcmF0b3IzID0gX2lzQXJyYXkzID8gX2l0ZXJhdG9yMyA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IzKTs7KSB7CiAgICAgIHZhciBfcmVmMzsKCiAgICAgIGlmIChfaXNBcnJheTMpIHsKICAgICAgICBpZiAoX2kzID49IF9pdGVyYXRvcjMubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmMyA9IF9pdGVyYXRvcjNbX2kzKytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pMyA9IF9pdGVyYXRvcjMubmV4dCgpOwogICAgICAgIGlmIChfaTMuZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZjMgPSBfaTMudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBzdGFnZSA9IF9yZWYzOwoKICAgICAgaWYgKHR5cGVvZiBzdGFnZSA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIGlmICghcG9zaXRpb25zKSB7CiAgICAgICAgICBzdGFnZSh0aGlzLmZvbnQsIGdseXBocywgdGhpcyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHN0YWdlLmxlbmd0aCA+IDApIHsKICAgICAgICBwcm9jZXNzb3IuYXBwbHlGZWF0dXJlcyhzdGFnZSwgZ2x5cGhzLCBwb3NpdGlvbnMpOwogICAgICB9CiAgICB9CiAgfTsKCiAgcmV0dXJuIFNoYXBpbmdQbGFuOwp9KCk7Cgp2YXIgX2NsYXNzJDQ7CnZhciBfdGVtcDsKdmFyIFZBUklBVElPTl9GRUFUVVJFUyA9IFsncnZybiddOwp2YXIgQ09NTU9OX0ZFQVRVUkVTID0gWydjY21wJywgJ2xvY2wnLCAncmxpZycsICdtYXJrJywgJ21rbWsnXTsKdmFyIEZSQUNUSU9OQUxfRkVBVFVSRVMgPSBbJ2ZyYWMnLCAnbnVtcicsICdkbm9tJ107CnZhciBIT1JJWk9OVEFMX0ZFQVRVUkVTID0gWydjYWx0JywgJ2NsaWcnLCAnbGlnYScsICdyY2x0JywgJ2N1cnMnLCAna2VybiddOwp2YXIgRElSRUNUSU9OQUxfRkVBVFVSRVMgPSB7CiAgbHRyOiBbJ2x0cmEnLCAnbHRybSddLAogIHJ0bDogWydydGxhJywgJ3J0bG0nXQp9OwoKdmFyIERlZmF1bHRTaGFwZXIgPSAoX3RlbXAgPSBfY2xhc3MkNCA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBEZWZhdWx0U2hhcGVyKCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIERlZmF1bHRTaGFwZXIpOwogIH0KCiAgRGVmYXVsdFNoYXBlci5wbGFuID0gZnVuY3Rpb24gcGxhbihfcGxhbiwgZ2x5cGhzLCBmZWF0dXJlcykgewogICAgLy8gUGxhbiB0aGUgZmVhdHVyZXMgd2Ugd2FudCB0byBhcHBseQogICAgdGhpcy5wbGFuUHJlcHJvY2Vzc2luZyhfcGxhbik7CiAgICB0aGlzLnBsYW5GZWF0dXJlcyhfcGxhbik7CiAgICB0aGlzLnBsYW5Qb3N0cHJvY2Vzc2luZyhfcGxhbiwgZmVhdHVyZXMpOwoKICAgIC8vIEFzc2lnbiB0aGUgZ2xvYmFsIGZlYXR1cmVzIHRvIGFsbCB0aGUgZ2x5cGhzCiAgICBfcGxhbi5hc3NpZ25HbG9iYWxGZWF0dXJlcyhnbHlwaHMpOwoKICAgIC8vIEFzc2lnbiBsb2NhbCBmZWF0dXJlcyB0byBnbHlwaHMKICAgIHRoaXMuYXNzaWduRmVhdHVyZXMoX3BsYW4sIGdseXBocyk7CiAgfTsKCiAgRGVmYXVsdFNoYXBlci5wbGFuUHJlcHJvY2Vzc2luZyA9IGZ1bmN0aW9uIHBsYW5QcmVwcm9jZXNzaW5nKHBsYW4pIHsKICAgIHBsYW4uYWRkKHsKICAgICAgZ2xvYmFsOiBbXS5jb25jYXQoVkFSSUFUSU9OX0ZFQVRVUkVTLCBESVJFQ1RJT05BTF9GRUFUVVJFU1twbGFuLmRpcmVjdGlvbl0pLAogICAgICBsb2NhbDogRlJBQ1RJT05BTF9GRUFUVVJFUwogICAgfSk7CiAgfTsKCiAgRGVmYXVsdFNoYXBlci5wbGFuRmVhdHVyZXMgPSBmdW5jdGlvbiBwbGFuRmVhdHVyZXMocGxhbikgewogICAgLy8gRG8gbm90aGluZyBieSBkZWZhdWx0LiBMZXQgc3ViY2xhc3NlcyBvdmVycmlkZSB0aGlzLgogIH07CgogIERlZmF1bHRTaGFwZXIucGxhblBvc3Rwcm9jZXNzaW5nID0gZnVuY3Rpb24gcGxhblBvc3Rwcm9jZXNzaW5nKHBsYW4sIHVzZXJGZWF0dXJlcykgewogICAgcGxhbi5hZGQoW10uY29uY2F0KENPTU1PTl9GRUFUVVJFUywgSE9SSVpPTlRBTF9GRUFUVVJFUykpOwogICAgcGxhbi5zZXRGZWF0dXJlT3ZlcnJpZGVzKHVzZXJGZWF0dXJlcyk7CiAgfTsKCiAgRGVmYXVsdFNoYXBlci5hc3NpZ25GZWF0dXJlcyA9IGZ1bmN0aW9uIGFzc2lnbkZlYXR1cmVzKHBsYW4sIGdseXBocykgewogICAgLy8gRW5hYmxlIGNvbnRleHR1YWwgZnJhY3Rpb25zCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdseXBocy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZ2x5cGggPSBnbHlwaHNbaV07CiAgICAgIGlmIChnbHlwaC5jb2RlUG9pbnRzWzBdID09PSAweDIwNDQpIHsKICAgICAgICAvLyBmcmFjdGlvbiBzbGFzaAogICAgICAgIHZhciBzdGFydCA9IGk7CiAgICAgICAgdmFyIGVuZCA9IGkgKyAxOwoKICAgICAgICAvLyBBcHBseSBudW1lcmF0b3IKICAgICAgICB3aGlsZSAoc3RhcnQgPiAwICYmIHVuaWNvZGUuaXNEaWdpdChnbHlwaHNbc3RhcnQgLSAxXS5jb2RlUG9pbnRzWzBdKSkgewogICAgICAgICAgZ2x5cGhzW3N0YXJ0IC0gMV0uZmVhdHVyZXMubnVtciA9IHRydWU7CiAgICAgICAgICBnbHlwaHNbc3RhcnQgLSAxXS5mZWF0dXJlcy5mcmFjID0gdHJ1ZTsKICAgICAgICAgIHN0YXJ0LS07CiAgICAgICAgfQoKICAgICAgICAvLyBBcHBseSBkZW5vbWluYXRvcgogICAgICAgIHdoaWxlIChlbmQgPCBnbHlwaHMubGVuZ3RoICYmIHVuaWNvZGUuaXNEaWdpdChnbHlwaHNbZW5kXS5jb2RlUG9pbnRzWzBdKSkgewogICAgICAgICAgZ2x5cGhzW2VuZF0uZmVhdHVyZXMuZG5vbSA9IHRydWU7CiAgICAgICAgICBnbHlwaHNbZW5kXS5mZWF0dXJlcy5mcmFjID0gdHJ1ZTsKICAgICAgICAgIGVuZCsrOwogICAgICAgIH0KCiAgICAgICAgLy8gQXBwbHkgZnJhY3Rpb24gc2xhc2gKICAgICAgICBnbHlwaC5mZWF0dXJlcy5mcmFjID0gdHJ1ZTsKICAgICAgICBpID0gZW5kIC0gMTsKICAgICAgfQogICAgfQogIH07CgogIHJldHVybiBEZWZhdWx0U2hhcGVyOwp9KCksIF9jbGFzcyQ0Lnplcm9NYXJrV2lkdGhzID0gJ0FGVEVSX0dQT1MnLCBfdGVtcCk7Cgp2YXIgdHJpZSA9IG5ldyBVbmljb2RlVHJpZShCdWZmZXIoIkFBRVFBQUFBQUFBQUFER2dBWlVCYXY3dDJDdFBBMEVVQmVEWkIwMHBpbjlBSlpJRWd5VUVqMFFod2VEQWdRT0p4Q0JSQkVsUVNCd1NpY0xna09Bd25OS1o1R2FZMmM3dXpqNG81eVpmWnJyYmVmYnVJeDJuU3EzQ0dtekFXSC8rSytVTzdNSWU3TU1oSE1NcG5NTUZYTUlWWEl0MnQzQ25QMDg4aVBxanFOTjhlNElqN1JsZTRMVUg4MnJMbTZpLzkyQStSRVJFUkVSRVJFUk5tZnovODlHRGVSQVJFUkVSemJOOGNlcHMySXd0OUgwQzkvQUo2eU9sRGtiVGN6Y290NVZTbThQbTF2Y0ZXZmI3K0JLT0xUdU9kMlVsVFg0d0dQODVFZzk1M2xXUEZibnVON1BranRMbWFsT1diTmVua0hPU2E3VDNLbVI5TVZUWjJ6WmtWajFrSGE2OE11ZVZLSDBSNHpxUTQ0V0VYTE04VmpjV0hQMFB0S0xmUHpRbk10R24zVzRRWWY2cXhGeGNlVkkzOTRyMnhuVisxcmloMGZWMVZ6ZjNmTzFuM2V2TDVKNzhydXZaNXB0WDJSd3k5MlRmYjF3bEVxdXQzVStzWjNIWE9lSjcvekRyYnl1UDYrWnowZnFhNk52M3ZoWTdZdTF4V25HZXZtc3ZzVXBUVC9SWUllOHdhVUgvcnZITVdLRnpMZk44TCtyVGZwNjQ1bWZYN2Z0bG5mRHRZeE41OXcwPSIsImJhc2U2NCIpKTsKdmFyIEZFQVRVUkVTID0gWydpc29sJywgJ2ZpbmEnLCAnZmluMicsICdmaW4zJywgJ21lZGknLCAnbWVkMicsICdpbml0J107Cgp2YXIgU2hhcGluZ0NsYXNzZXMgPSB7CiAgTm9uX0pvaW5pbmc6IDAsCiAgTGVmdF9Kb2luaW5nOiAxLAogIFJpZ2h0X0pvaW5pbmc6IDIsCiAgRHVhbF9Kb2luaW5nOiAzLAogIEpvaW5fQ2F1c2luZzogMywKICBBTEFQSDogNCwKICAnREFMQVRIIFJJU0gnOiA1LAogIFRyYW5zcGFyZW50OiA2Cn07Cgp2YXIgSVNPTCA9ICdpc29sJzsKdmFyIEZJTkEgPSAnZmluYSc7CnZhciBGSU4yID0gJ2ZpbjInOwp2YXIgRklOMyA9ICdmaW4zJzsKdmFyIE1FREkgPSAnbWVkaSc7CnZhciBNRUQyID0gJ21lZDInOwp2YXIgSU5JVCA9ICdpbml0JzsKdmFyIE5PTkUgPSBudWxsOwoKLy8gRWFjaCBlbnRyeSBpcyBbcHJldkFjdGlvbiwgY3VyQWN0aW9uLCBuZXh0U3RhdGVdCnZhciBTVEFURV9UQUJMRSA9IFsKLy8gICBOb25fSm9pbmluZywgICAgICAgIExlZnRfSm9pbmluZywgICAgICAgUmlnaHRfSm9pbmluZywgICAgIER1YWxfSm9pbmluZywgICAgICAgICAgIEFMQVBILCAgICAgICAgICAgIERBTEFUSCBSSVNICi8vIFN0YXRlIDA6IHByZXYgd2FzIFUsICBub3Qgd2lsbGluZyB0byBqb2luLgpbW05PTkUsIE5PTkUsIDBdLCBbTk9ORSwgSVNPTCwgMl0sIFtOT05FLCBJU09MLCAxXSwgW05PTkUsIElTT0wsIDJdLCBbTk9ORSwgSVNPTCwgMV0sIFtOT05FLCBJU09MLCA2XV0sCgovLyBTdGF0ZSAxOiBwcmV2IHdhcyBSIG9yIElTT0wvQUxBUEgsICBub3Qgd2lsbGluZyB0byBqb2luLgpbW05PTkUsIE5PTkUsIDBdLCBbTk9ORSwgSVNPTCwgMl0sIFtOT05FLCBJU09MLCAxXSwgW05PTkUsIElTT0wsIDJdLCBbTk9ORSwgRklOMiwgNV0sIFtOT05FLCBJU09MLCA2XV0sCgovLyBTdGF0ZSAyOiBwcmV2IHdhcyBEL0wgaW4gSVNPTCBmb3JtLCAgd2lsbGluZyB0byBqb2luLgpbW05PTkUsIE5PTkUsIDBdLCBbTk9ORSwgSVNPTCwgMl0sIFtJTklULCBGSU5BLCAxXSwgW0lOSVQsIEZJTkEsIDNdLCBbSU5JVCwgRklOQSwgNF0sIFtJTklULCBGSU5BLCA2XV0sCgovLyBTdGF0ZSAzOiBwcmV2IHdhcyBEIGluIEZJTkEgZm9ybSwgIHdpbGxpbmcgdG8gam9pbi4KW1tOT05FLCBOT05FLCAwXSwgW05PTkUsIElTT0wsIDJdLCBbTUVESSwgRklOQSwgMV0sIFtNRURJLCBGSU5BLCAzXSwgW01FREksIEZJTkEsIDRdLCBbTUVESSwgRklOQSwgNl1dLAoKLy8gU3RhdGUgNDogcHJldiB3YXMgRklOQSBBTEFQSCwgIG5vdCB3aWxsaW5nIHRvIGpvaW4uCltbTk9ORSwgTk9ORSwgMF0sIFtOT05FLCBJU09MLCAyXSwgW01FRDIsIElTT0wsIDFdLCBbTUVEMiwgSVNPTCwgMl0sIFtNRUQyLCBGSU4yLCA1XSwgW01FRDIsIElTT0wsIDZdXSwKCi8vIFN0YXRlIDU6IHByZXYgd2FzIEZJTjIvRklOMyBBTEFQSCwgIG5vdCB3aWxsaW5nIHRvIGpvaW4uCltbTk9ORSwgTk9ORSwgMF0sIFtOT05FLCBJU09MLCAyXSwgW0lTT0wsIElTT0wsIDFdLCBbSVNPTCwgSVNPTCwgMl0sIFtJU09MLCBGSU4yLCA1XSwgW0lTT0wsIElTT0wsIDZdXSwKCi8vIFN0YXRlIDY6IHByZXYgd2FzIERBTEFUSC9SSVNILCAgbm90IHdpbGxpbmcgdG8gam9pbi4KW1tOT05FLCBOT05FLCAwXSwgW05PTkUsIElTT0wsIDJdLCBbTk9ORSwgSVNPTCwgMV0sIFtOT05FLCBJU09MLCAyXSwgW05PTkUsIEZJTjMsIDVdLCBbTk9ORSwgSVNPTCwgNl1dXTsKCi8qKgogKiBUaGlzIGlzIGEgc2hhcGVyIGZvciBBcmFiaWMsIGFuZCBvdGhlciBjdXJzaXZlIHNjcmlwdHMuCiAqIEl0IHVzZXMgZGF0YSBmcm9tIEFyYWJpY1NoYXBpbmcudHh0IGluIHRoZSBVbmljb2RlIGRhdGFiYXNlLAogKiBjb21waWxlZCB0byBhIFVuaWNvZGVUcmllIGJ5IGdlbmVyYXRlLWRhdGEuY29mZmVlLgogKgogKiBUaGUgc2hhcGluZyBzdGF0ZSBtYWNoaW5lIHdhcyBwb3J0ZWQgZnJvbSBIYXJmYnV6ei4KICogaHR0cHM6Ly9naXRodWIuY29tL2JlaGRhZC9oYXJmYnV6ei9ibG9iL21hc3Rlci9zcmMvaGItb3Qtc2hhcGUtY29tcGxleC1hcmFiaWMuY2MKICovCgp2YXIgQXJhYmljU2hhcGVyID0gZnVuY3Rpb24gKF9EZWZhdWx0U2hhcGVyKSB7CiAgX2luaGVyaXRzKEFyYWJpY1NoYXBlciwgX0RlZmF1bHRTaGFwZXIpOwoKICBmdW5jdGlvbiBBcmFiaWNTaGFwZXIoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgQXJhYmljU2hhcGVyKTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0RlZmF1bHRTaGFwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7CiAgfQoKICBBcmFiaWNTaGFwZXIucGxhbkZlYXR1cmVzID0gZnVuY3Rpb24gcGxhbkZlYXR1cmVzKHBsYW4pIHsKICAgIHBsYW4uYWRkKFsnY2NtcCcsICdsb2NsJ10pOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBGRUFUVVJFUy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZmVhdHVyZSA9IEZFQVRVUkVTW2ldOwogICAgICBwbGFuLmFkZFN0YWdlKGZlYXR1cmUsIGZhbHNlKTsKICAgIH0KCiAgICBwbGFuLmFkZFN0YWdlKCdtc2V0Jyk7CiAgfTsKCiAgQXJhYmljU2hhcGVyLmFzc2lnbkZlYXR1cmVzID0gZnVuY3Rpb24gYXNzaWduRmVhdHVyZXMocGxhbiwgZ2x5cGhzKSB7CiAgICBfRGVmYXVsdFNoYXBlci5hc3NpZ25GZWF0dXJlcy5jYWxsKHRoaXMsIHBsYW4sIGdseXBocyk7CgogICAgdmFyIHByZXYgPSAtMTsKICAgIHZhciBzdGF0ZSA9IDA7CiAgICB2YXIgYWN0aW9ucyA9IFtdOwoKICAgIC8vIEFwcGx5IHRoZSBzdGF0ZSBtYWNoaW5lIHRvIG1hcCBnbHlwaHMgdG8gZmVhdHVyZXMKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZ2x5cGhzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBjdXJBY3Rpb24gPSB2b2lkIDAsCiAgICAgICAgICBwcmV2QWN0aW9uID0gdm9pZCAwOwogICAgICB2YXIgZ2x5cGggPSBnbHlwaHNbaV07CiAgICAgIHZhciB0eXBlID0gZ2V0U2hhcGluZ0NsYXNzKGdseXBoLmNvZGVQb2ludHNbMF0pOwogICAgICBpZiAodHlwZSA9PT0gU2hhcGluZ0NsYXNzZXMuVHJhbnNwYXJlbnQpIHsKICAgICAgICBhY3Rpb25zW2ldID0gTk9ORTsKICAgICAgICBjb250aW51ZTsKICAgICAgfQoKICAgICAgdmFyIF9TVEFURV9UQUJMRSRzdGF0ZSR0eSA9IFNUQVRFX1RBQkxFW3N0YXRlXVt0eXBlXTsKICAgICAgcHJldkFjdGlvbiA9IF9TVEFURV9UQUJMRSRzdGF0ZSR0eVswXTsKICAgICAgY3VyQWN0aW9uID0gX1NUQVRFX1RBQkxFJHN0YXRlJHR5WzFdOwogICAgICBzdGF0ZSA9IF9TVEFURV9UQUJMRSRzdGF0ZSR0eVsyXTsKCgogICAgICBpZiAocHJldkFjdGlvbiAhPT0gTk9ORSAmJiBwcmV2ICE9PSAtMSkgewogICAgICAgIGFjdGlvbnNbcHJldl0gPSBwcmV2QWN0aW9uOwogICAgICB9CgogICAgICBhY3Rpb25zW2ldID0gY3VyQWN0aW9uOwogICAgICBwcmV2ID0gaTsKICAgIH0KCiAgICAvLyBBcHBseSB0aGUgY2hvc2VuIGZlYXR1cmVzIHRvIHRoZWlyIHJlc3BlY3RpdmUgZ2x5cGhzCiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgZ2x5cGhzLmxlbmd0aDsgaW5kZXgrKykgewogICAgICB2YXIgZmVhdHVyZSA9IHZvaWQgMDsKICAgICAgdmFyIGdseXBoID0gZ2x5cGhzW2luZGV4XTsKICAgICAgaWYgKGZlYXR1cmUgPSBhY3Rpb25zW2luZGV4XSkgewogICAgICAgIGdseXBoLmZlYXR1cmVzW2ZlYXR1cmVdID0gdHJ1ZTsKICAgICAgfQogICAgfQogIH07CgogIHJldHVybiBBcmFiaWNTaGFwZXI7Cn0oRGVmYXVsdFNoYXBlcik7CgpmdW5jdGlvbiBnZXRTaGFwaW5nQ2xhc3MoY29kZVBvaW50KSB7CiAgdmFyIHJlcyA9IHRyaWUuZ2V0KGNvZGVQb2ludCk7CiAgaWYgKHJlcykgewogICAgcmV0dXJuIHJlcyAtIDE7CiAgfQoKICB2YXIgY2F0ZWdvcnkgPSB1bmljb2RlLmdldENhdGVnb3J5KGNvZGVQb2ludCk7CiAgaWYgKGNhdGVnb3J5ID09PSAnTW4nIHx8IGNhdGVnb3J5ID09PSAnTWUnIHx8IGNhdGVnb3J5ID09PSAnQ2YnKSB7CiAgICByZXR1cm4gU2hhcGluZ0NsYXNzZXMuVHJhbnNwYXJlbnQ7CiAgfQoKICByZXR1cm4gU2hhcGluZ0NsYXNzZXMuTm9uX0pvaW5pbmc7Cn0KCnZhciBHbHlwaEl0ZXJhdG9yID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIEdseXBoSXRlcmF0b3IoZ2x5cGhzLCBvcHRpb25zKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgR2x5cGhJdGVyYXRvcik7CgogICAgdGhpcy5nbHlwaHMgPSBnbHlwaHM7CiAgICB0aGlzLnJlc2V0KG9wdGlvbnMpOwogIH0KCiAgR2x5cGhJdGVyYXRvci5wcm90b3R5cGUucmVzZXQgPSBmdW5jdGlvbiByZXNldCgpIHsKICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTsKICAgIHZhciBpbmRleCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogMDsKCiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwogICAgdGhpcy5mbGFncyA9IG9wdGlvbnMuZmxhZ3MgfHwge307CiAgICB0aGlzLm1hcmtBdHRhY2htZW50VHlwZSA9IG9wdGlvbnMubWFya0F0dGFjaG1lbnRUeXBlIHx8IDA7CiAgICB0aGlzLmluZGV4ID0gaW5kZXg7CiAgfTsKCiAgR2x5cGhJdGVyYXRvci5wcm90b3R5cGUuc2hvdWxkSWdub3JlID0gZnVuY3Rpb24gc2hvdWxkSWdub3JlKGdseXBoKSB7CiAgICByZXR1cm4gdGhpcy5mbGFncy5pZ25vcmVNYXJrcyAmJiBnbHlwaC5pc01hcmsgfHwgdGhpcy5mbGFncy5pZ25vcmVCYXNlR2x5cGhzICYmIGdseXBoLmlzQmFzZSB8fCB0aGlzLmZsYWdzLmlnbm9yZUxpZ2F0dXJlcyAmJiBnbHlwaC5pc0xpZ2F0dXJlIHx8IHRoaXMubWFya0F0dGFjaG1lbnRUeXBlICYmIGdseXBoLmlzTWFyayAmJiBnbHlwaC5tYXJrQXR0YWNobWVudFR5cGUgIT09IHRoaXMubWFya0F0dGFjaG1lbnRUeXBlOwogIH07CgogIEdseXBoSXRlcmF0b3IucHJvdG90eXBlLm1vdmUgPSBmdW5jdGlvbiBtb3ZlKGRpcikgewogICAgdGhpcy5pbmRleCArPSBkaXI7CiAgICB3aGlsZSAoMCA8PSB0aGlzLmluZGV4ICYmIHRoaXMuaW5kZXggPCB0aGlzLmdseXBocy5sZW5ndGggJiYgdGhpcy5zaG91bGRJZ25vcmUodGhpcy5nbHlwaHNbdGhpcy5pbmRleF0pKSB7CiAgICAgIHRoaXMuaW5kZXggKz0gZGlyOwogICAgfQoKICAgIGlmICgwID4gdGhpcy5pbmRleCB8fCB0aGlzLmluZGV4ID49IHRoaXMuZ2x5cGhzLmxlbmd0aCkgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICByZXR1cm4gdGhpcy5nbHlwaHNbdGhpcy5pbmRleF07CiAgfTsKCiAgR2x5cGhJdGVyYXRvci5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uIG5leHQoKSB7CiAgICByZXR1cm4gdGhpcy5tb3ZlKCsxKTsKICB9OwoKICBHbHlwaEl0ZXJhdG9yLnByb3RvdHlwZS5wcmV2ID0gZnVuY3Rpb24gcHJldigpIHsKICAgIHJldHVybiB0aGlzLm1vdmUoLTEpOwogIH07CgogIEdseXBoSXRlcmF0b3IucHJvdG90eXBlLnBlZWsgPSBmdW5jdGlvbiBwZWVrKCkgewogICAgdmFyIGNvdW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAxOwoKICAgIHZhciBpZHggPSB0aGlzLmluZGV4OwogICAgdmFyIHJlcyA9IHRoaXMuaW5jcmVtZW50KGNvdW50KTsKICAgIHRoaXMuaW5kZXggPSBpZHg7CiAgICByZXR1cm4gcmVzOwogIH07CgogIEdseXBoSXRlcmF0b3IucHJvdG90eXBlLnBlZWtJbmRleCA9IGZ1bmN0aW9uIHBlZWtJbmRleCgpIHsKICAgIHZhciBjb3VudCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogMTsKCiAgICB2YXIgaWR4ID0gdGhpcy5pbmRleDsKICAgIHRoaXMuaW5jcmVtZW50KGNvdW50KTsKICAgIHZhciByZXMgPSB0aGlzLmluZGV4OwogICAgdGhpcy5pbmRleCA9IGlkeDsKICAgIHJldHVybiByZXM7CiAgfTsKCiAgR2x5cGhJdGVyYXRvci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gaW5jcmVtZW50KCkgewogICAgdmFyIGNvdW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAxOwoKICAgIHZhciBkaXIgPSBjb3VudCA8IDAgPyAtMSA6IDE7CiAgICBjb3VudCA9IE1hdGguYWJzKGNvdW50KTsKICAgIHdoaWxlIChjb3VudC0tKSB7CiAgICAgIHRoaXMubW92ZShkaXIpOwogICAgfQoKICAgIHJldHVybiB0aGlzLmdseXBoc1t0aGlzLmluZGV4XTsKICB9OwoKICBfY3JlYXRlQ2xhc3MoR2x5cGhJdGVyYXRvciwgW3sKICAgIGtleTogImN1ciIsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZ2x5cGhzW3RoaXMuaW5kZXhdIHx8IG51bGw7CiAgICB9CiAgfV0pOwoKICByZXR1cm4gR2x5cGhJdGVyYXRvcjsKfSgpOwoKdmFyIERFRkFVTFRfU0NSSVBUUyA9IFsnREZMVCcsICdkZmx0JywgJ2xhdG4nXTsKCnZhciBPVFByb2Nlc3NvciA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBPVFByb2Nlc3Nvcihmb250LCB0YWJsZSkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIE9UUHJvY2Vzc29yKTsKCiAgICB0aGlzLmZvbnQgPSBmb250OwogICAgdGhpcy50YWJsZSA9IHRhYmxlOwoKICAgIHRoaXMuc2NyaXB0ID0gbnVsbDsKICAgIHRoaXMuc2NyaXB0VGFnID0gbnVsbDsKCiAgICB0aGlzLmxhbmd1YWdlID0gbnVsbDsKICAgIHRoaXMubGFuZ3VhZ2VUYWcgPSBudWxsOwoKICAgIHRoaXMuZmVhdHVyZXMgPSB7fTsKICAgIHRoaXMubG9va3VwcyA9IHt9OwoKICAgIC8vIFNldHVwIHZhcmlhdGlvbiBzdWJzdGl0dXRpb25zCiAgICB0aGlzLnZhcmlhdGlvbnNJbmRleCA9IGZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvciA/IHRoaXMuZmluZFZhcmlhdGlvbnNJbmRleChmb250Ll92YXJpYXRpb25Qcm9jZXNzb3Iubm9ybWFsaXplZENvb3JkcykgOiAtMTsKCiAgICAvLyBpbml0aWFsaXplIHRvIGRlZmF1bHQgc2NyaXB0ICsgbGFuZ3VhZ2UKICAgIHRoaXMuc2VsZWN0U2NyaXB0KCk7CgogICAgLy8gY3VycmVudCBjb250ZXh0IChzZXQgYnkgYXBwbHlGZWF0dXJlcykKICAgIHRoaXMuZ2x5cGhzID0gW107CiAgICB0aGlzLnBvc2l0aW9ucyA9IFtdOyAvLyBvbmx5IHVzZWQgYnkgR1BPUwogICAgdGhpcy5saWdhdHVyZUlEID0gMTsKICAgIHRoaXMuY3VycmVudEZlYXR1cmUgPSBudWxsOwogIH0KCiAgT1RQcm9jZXNzb3IucHJvdG90eXBlLmZpbmRTY3JpcHQgPSBmdW5jdGlvbiBmaW5kU2NyaXB0KHNjcmlwdCkgewogICAgaWYgKHRoaXMudGFibGUuc2NyaXB0TGlzdCA9PSBudWxsKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIGlmICghQXJyYXkuaXNBcnJheShzY3JpcHQpKSB7CiAgICAgIHNjcmlwdCA9IFtzY3JpcHRdOwogICAgfQoKICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHNjcmlwdCwgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICAgIHZhciBfcmVmOwoKICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBzID0gX3JlZjsKCiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSB0aGlzLnRhYmxlLnNjcmlwdExpc3QsIF9pc0FycmF5MiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMiksIF9pMiA9IDAsIF9pdGVyYXRvcjIgPSBfaXNBcnJheTIgPyBfaXRlcmF0b3IyIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjIpOzspIHsKICAgICAgICB2YXIgX3JlZjI7CgogICAgICAgIGlmIChfaXNBcnJheTIpIHsKICAgICAgICAgIGlmIChfaTIgPj0gX2l0ZXJhdG9yMi5sZW5ndGgpIGJyZWFrOwogICAgICAgICAgX3JlZjIgPSBfaXRlcmF0b3IyW19pMisrXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX2kyID0gX2l0ZXJhdG9yMi5uZXh0KCk7CiAgICAgICAgICBpZiAoX2kyLmRvbmUpIGJyZWFrOwogICAgICAgICAgX3JlZjIgPSBfaTIudmFsdWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgZW50cnkgPSBfcmVmMjsKCiAgICAgICAgaWYgKGVudHJ5LnRhZyA9PT0gcykgewogICAgICAgICAgcmV0dXJuIGVudHJ5OwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBudWxsOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5zZWxlY3RTY3JpcHQgPSBmdW5jdGlvbiBzZWxlY3RTY3JpcHQoc2NyaXB0LCBsYW5ndWFnZSwgZGlyZWN0aW9uJCQpIHsKICAgIHZhciBjaGFuZ2VkID0gZmFsc2U7CiAgICB2YXIgZW50cnkgPSB2b2lkIDA7CiAgICBpZiAoIXRoaXMuc2NyaXB0IHx8IHNjcmlwdCAhPT0gdGhpcy5zY3JpcHRUYWcpIHsKICAgICAgZW50cnkgPSB0aGlzLmZpbmRTY3JpcHQoc2NyaXB0KTsKICAgICAgaWYgKCFlbnRyeSkgewogICAgICAgIGVudHJ5ID0gdGhpcy5maW5kU2NyaXB0KERFRkFVTFRfU0NSSVBUUyk7CiAgICAgIH0KCiAgICAgIGlmICghZW50cnkpIHsKICAgICAgICByZXR1cm4gdGhpcy5zY3JpcHRUYWc7CiAgICAgIH0KCiAgICAgIHRoaXMuc2NyaXB0VGFnID0gZW50cnkudGFnOwogICAgICB0aGlzLnNjcmlwdCA9IGVudHJ5LnNjcmlwdDsKICAgICAgdGhpcy5sYW5ndWFnZSA9IG51bGw7CiAgICAgIHRoaXMubGFuZ3VhZ2VUYWcgPSBudWxsOwogICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgIH0KCiAgICBpZiAoIWRpcmVjdGlvbiQkIHx8IGRpcmVjdGlvbiQkICE9PSB0aGlzLmRpcmVjdGlvbikgewogICAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbiQkIHx8IGRpcmVjdGlvbihzY3JpcHQpOwogICAgfQoKICAgIGlmIChsYW5ndWFnZSAmJiBsYW5ndWFnZS5sZW5ndGggPCA0KSB7CiAgICAgIGxhbmd1YWdlICs9ICcgJy5yZXBlYXQoNCAtIGxhbmd1YWdlLmxlbmd0aCk7CiAgICB9CgogICAgaWYgKCFsYW5ndWFnZSB8fCBsYW5ndWFnZSAhPT0gdGhpcy5sYW5ndWFnZVRhZykgewogICAgICB0aGlzLmxhbmd1YWdlID0gbnVsbDsKCiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSB0aGlzLnNjcmlwdC5sYW5nU3lzUmVjb3JkcywgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMyk7OykgewogICAgICAgIHZhciBfcmVmMzsKCiAgICAgICAgaWYgKF9pc0FycmF5MykgewogICAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pdGVyYXRvcjNbX2kzKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTsKICAgICAgICAgIGlmIChfaTMuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pMy52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBsYW5nID0gX3JlZjM7CgogICAgICAgIGlmIChsYW5nLnRhZyA9PT0gbGFuZ3VhZ2UpIHsKICAgICAgICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5nLmxhbmdTeXM7CiAgICAgICAgICB0aGlzLmxhbmd1YWdlVGFnID0gbGFuZy50YWc7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmICghdGhpcy5sYW5ndWFnZSkgewogICAgICAgIHRoaXMubGFuZ3VhZ2UgPSB0aGlzLnNjcmlwdC5kZWZhdWx0TGFuZ1N5czsKICAgICAgICB0aGlzLmxhbmd1YWdlVGFnID0gbnVsbDsKICAgICAgfQoKICAgICAgY2hhbmdlZCA9IHRydWU7CiAgICB9CgogICAgLy8gQnVpbGQgYSBmZWF0dXJlIGxvb2t1cCB0YWJsZQogICAgaWYgKGNoYW5nZWQpIHsKICAgICAgdGhpcy5mZWF0dXJlcyA9IHt9OwogICAgICBpZiAodGhpcy5sYW5ndWFnZSkgewogICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjQgPSB0aGlzLmxhbmd1YWdlLmZlYXR1cmVJbmRleGVzLCBfaXNBcnJheTQgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjQpLCBfaTQgPSAwLCBfaXRlcmF0b3I0ID0gX2lzQXJyYXk0ID8gX2l0ZXJhdG9yNCA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I0KTs7KSB7CiAgICAgICAgICB2YXIgX3JlZjQ7CgogICAgICAgICAgaWYgKF9pc0FycmF5NCkgewogICAgICAgICAgICBpZiAoX2k0ID49IF9pdGVyYXRvcjQubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgX3JlZjQgPSBfaXRlcmF0b3I0W19pNCsrXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF9pNCA9IF9pdGVyYXRvcjQubmV4dCgpOwogICAgICAgICAgICBpZiAoX2k0LmRvbmUpIGJyZWFrOwogICAgICAgICAgICBfcmVmNCA9IF9pNC52YWx1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgZmVhdHVyZUluZGV4ID0gX3JlZjQ7CgogICAgICAgICAgdmFyIHJlY29yZCA9IHRoaXMudGFibGUuZmVhdHVyZUxpc3RbZmVhdHVyZUluZGV4XTsKICAgICAgICAgIHZhciBzdWJzdGl0dXRlRmVhdHVyZSA9IHRoaXMuc3Vic3RpdHV0ZUZlYXR1cmVGb3JWYXJpYXRpb25zKGZlYXR1cmVJbmRleCk7CiAgICAgICAgICB0aGlzLmZlYXR1cmVzW3JlY29yZC50YWddID0gc3Vic3RpdHV0ZUZlYXR1cmUgfHwgcmVjb3JkLmZlYXR1cmU7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgcmV0dXJuIHRoaXMuc2NyaXB0VGFnOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5sb29rdXBzRm9yRmVhdHVyZXMgPSBmdW5jdGlvbiBsb29rdXBzRm9yRmVhdHVyZXMoKSB7CiAgICB2YXIgdXNlckZlYXR1cmVzID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBbXTsKICAgIHZhciBleGNsdWRlID0gYXJndW1lbnRzWzFdOwoKICAgIHZhciBsb29rdXBzID0gW107CiAgICBmb3IgKHZhciBfaXRlcmF0b3I1ID0gdXNlckZlYXR1cmVzLCBfaXNBcnJheTUgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjUpLCBfaTUgPSAwLCBfaXRlcmF0b3I1ID0gX2lzQXJyYXk1ID8gX2l0ZXJhdG9yNSA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I1KTs7KSB7CiAgICAgIHZhciBfcmVmNTsKCiAgICAgIGlmIChfaXNBcnJheTUpIHsKICAgICAgICBpZiAoX2k1ID49IF9pdGVyYXRvcjUubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmNSA9IF9pdGVyYXRvcjVbX2k1KytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pNSA9IF9pdGVyYXRvcjUubmV4dCgpOwogICAgICAgIGlmIChfaTUuZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZjUgPSBfaTUudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciB0YWcgPSBfcmVmNTsKCiAgICAgIHZhciBmZWF0dXJlID0gdGhpcy5mZWF0dXJlc1t0YWddOwogICAgICBpZiAoIWZlYXR1cmUpIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQoKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yNiA9IGZlYXR1cmUubG9va3VwTGlzdEluZGV4ZXMsIF9pc0FycmF5NiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yNiksIF9pNiA9IDAsIF9pdGVyYXRvcjYgPSBfaXNBcnJheTYgPyBfaXRlcmF0b3I2IDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjYpOzspIHsKICAgICAgICB2YXIgX3JlZjY7CgogICAgICAgIGlmIChfaXNBcnJheTYpIHsKICAgICAgICAgIGlmIChfaTYgPj0gX2l0ZXJhdG9yNi5sZW5ndGgpIGJyZWFrOwogICAgICAgICAgX3JlZjYgPSBfaXRlcmF0b3I2W19pNisrXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX2k2ID0gX2l0ZXJhdG9yNi5uZXh0KCk7CiAgICAgICAgICBpZiAoX2k2LmRvbmUpIGJyZWFrOwogICAgICAgICAgX3JlZjYgPSBfaTYudmFsdWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgbG9va3VwSW5kZXggPSBfcmVmNjsKCiAgICAgICAgaWYgKGV4Y2x1ZGUgJiYgZXhjbHVkZS5pbmRleE9mKGxvb2t1cEluZGV4KSAhPT0gLTEpIHsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgbG9va3Vwcy5wdXNoKHsKICAgICAgICAgIGZlYXR1cmU6IHRhZywKICAgICAgICAgIGluZGV4OiBsb29rdXBJbmRleCwKICAgICAgICAgIGxvb2t1cDogdGhpcy50YWJsZS5sb29rdXBMaXN0LmdldChsb29rdXBJbmRleCkKICAgICAgICB9KTsKICAgICAgfQogICAgfQoKICAgIGxvb2t1cHMuc29ydChmdW5jdGlvbiAoYSwgYikgewogICAgICByZXR1cm4gYS5pbmRleCAtIGIuaW5kZXg7CiAgICB9KTsKICAgIHJldHVybiBsb29rdXBzOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5zdWJzdGl0dXRlRmVhdHVyZUZvclZhcmlhdGlvbnMgPSBmdW5jdGlvbiBzdWJzdGl0dXRlRmVhdHVyZUZvclZhcmlhdGlvbnMoZmVhdHVyZUluZGV4KSB7CiAgICBpZiAodGhpcy52YXJpYXRpb25zSW5kZXggPT09IC0xKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHZhciByZWNvcmQgPSB0aGlzLnRhYmxlLmZlYXR1cmVWYXJpYXRpb25zLmZlYXR1cmVWYXJpYXRpb25SZWNvcmRzW3RoaXMudmFyaWF0aW9uc0luZGV4XTsKICAgIHZhciBzdWJzdGl0dXRpb25zID0gcmVjb3JkLmZlYXR1cmVUYWJsZVN1YnN0aXR1dGlvbi5zdWJzdGl0dXRpb25zOwogICAgZm9yICh2YXIgX2l0ZXJhdG9yNyA9IHN1YnN0aXR1dGlvbnMsIF9pc0FycmF5NyA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yNyksIF9pNyA9IDAsIF9pdGVyYXRvcjcgPSBfaXNBcnJheTcgPyBfaXRlcmF0b3I3IDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjcpOzspIHsKICAgICAgdmFyIF9yZWY3OwoKICAgICAgaWYgKF9pc0FycmF5NykgewogICAgICAgIGlmIChfaTcgPj0gX2l0ZXJhdG9yNy5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWY3ID0gX2l0ZXJhdG9yN1tfaTcrK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2k3ID0gX2l0ZXJhdG9yNy5uZXh0KCk7CiAgICAgICAgaWYgKF9pNy5kb25lKSBicmVhazsKICAgICAgICBfcmVmNyA9IF9pNy52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIHN1YnN0aXR1dGlvbiA9IF9yZWY3OwoKICAgICAgaWYgKHN1YnN0aXR1dGlvbi5mZWF0dXJlSW5kZXggPT09IGZlYXR1cmVJbmRleCkgewogICAgICAgIHJldHVybiBzdWJzdGl0dXRpb24uYWx0ZXJuYXRlRmVhdHVyZVRhYmxlOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIG51bGw7CiAgfTsKCiAgT1RQcm9jZXNzb3IucHJvdG90eXBlLmZpbmRWYXJpYXRpb25zSW5kZXggPSBmdW5jdGlvbiBmaW5kVmFyaWF0aW9uc0luZGV4KGNvb3JkcykgewogICAgdmFyIHZhcmlhdGlvbnMgPSB0aGlzLnRhYmxlLmZlYXR1cmVWYXJpYXRpb25zOwogICAgaWYgKCF2YXJpYXRpb25zKSB7CiAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICB2YXIgcmVjb3JkcyA9IHZhcmlhdGlvbnMuZmVhdHVyZVZhcmlhdGlvblJlY29yZHM7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGNvbmRpdGlvbnMgPSByZWNvcmRzW2ldLmNvbmRpdGlvblNldC5jb25kaXRpb25UYWJsZTsKICAgICAgaWYgKHRoaXMudmFyaWF0aW9uQ29uZGl0aW9uc01hdGNoKGNvbmRpdGlvbnMsIGNvb3JkcykpIHsKICAgICAgICByZXR1cm4gaTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiAtMTsKICB9OwoKICBPVFByb2Nlc3Nvci5wcm90b3R5cGUudmFyaWF0aW9uQ29uZGl0aW9uc01hdGNoID0gZnVuY3Rpb24gdmFyaWF0aW9uQ29uZGl0aW9uc01hdGNoKGNvbmRpdGlvbnMsIGNvb3JkcykgewogICAgcmV0dXJuIGNvbmRpdGlvbnMuZXZlcnkoZnVuY3Rpb24gKGNvbmRpdGlvbikgewogICAgICB2YXIgY29vcmQgPSBjb25kaXRpb24uYXhpc0luZGV4IDwgY29vcmRzLmxlbmd0aCA/IGNvb3Jkc1tjb25kaXRpb24uYXhpc0luZGV4XSA6IDA7CiAgICAgIHJldHVybiBjb25kaXRpb24uZmlsdGVyUmFuZ2VNaW5WYWx1ZSA8PSBjb29yZCAmJiBjb29yZCA8PSBjb25kaXRpb24uZmlsdGVyUmFuZ2VNYXhWYWx1ZTsKICAgIH0pOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5hcHBseUZlYXR1cmVzID0gZnVuY3Rpb24gYXBwbHlGZWF0dXJlcyh1c2VyRmVhdHVyZXMsIGdseXBocywgYWR2YW5jZXMpIHsKICAgIHZhciBsb29rdXBzID0gdGhpcy5sb29rdXBzRm9yRmVhdHVyZXModXNlckZlYXR1cmVzKTsKICAgIHRoaXMuYXBwbHlMb29rdXBzKGxvb2t1cHMsIGdseXBocywgYWR2YW5jZXMpOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5hcHBseUxvb2t1cHMgPSBmdW5jdGlvbiBhcHBseUxvb2t1cHMobG9va3VwcywgZ2x5cGhzLCBwb3NpdGlvbnMpIHsKICAgIHRoaXMuZ2x5cGhzID0gZ2x5cGhzOwogICAgdGhpcy5wb3NpdGlvbnMgPSBwb3NpdGlvbnM7CiAgICB0aGlzLmdseXBoSXRlcmF0b3IgPSBuZXcgR2x5cGhJdGVyYXRvcihnbHlwaHMpOwoKICAgIGZvciAodmFyIF9pdGVyYXRvcjggPSBsb29rdXBzLCBfaXNBcnJheTggPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjgpLCBfaTggPSAwLCBfaXRlcmF0b3I4ID0gX2lzQXJyYXk4ID8gX2l0ZXJhdG9yOCA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I4KTs7KSB7CiAgICAgIHZhciBfcmVmODsKCiAgICAgIGlmIChfaXNBcnJheTgpIHsKICAgICAgICBpZiAoX2k4ID49IF9pdGVyYXRvcjgubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmOCA9IF9pdGVyYXRvcjhbX2k4KytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pOCA9IF9pdGVyYXRvcjgubmV4dCgpOwogICAgICAgIGlmIChfaTguZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZjggPSBfaTgudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBfcmVmOSA9IF9yZWY4LAogICAgICAgICAgZmVhdHVyZSA9IF9yZWY5LmZlYXR1cmUsCiAgICAgICAgICBsb29rdXAgPSBfcmVmOS5sb29rdXA7CgogICAgICB0aGlzLmN1cnJlbnRGZWF0dXJlID0gZmVhdHVyZTsKICAgICAgdGhpcy5nbHlwaEl0ZXJhdG9yLnJlc2V0KGxvb2t1cC5mbGFncyk7CgogICAgICB3aGlsZSAodGhpcy5nbHlwaEl0ZXJhdG9yLmluZGV4IDwgZ2x5cGhzLmxlbmd0aCkgewogICAgICAgIGlmICghKGZlYXR1cmUgaW4gdGhpcy5nbHlwaEl0ZXJhdG9yLmN1ci5mZWF0dXJlcykpIHsKICAgICAgICAgIHRoaXMuZ2x5cGhJdGVyYXRvci5uZXh0KCk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjkgPSBsb29rdXAuc3ViVGFibGVzLCBfaXNBcnJheTkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjkpLCBfaTkgPSAwLCBfaXRlcmF0b3I5ID0gX2lzQXJyYXk5ID8gX2l0ZXJhdG9yOSA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I5KTs7KSB7CiAgICAgICAgICB2YXIgX3JlZjEwOwoKICAgICAgICAgIGlmIChfaXNBcnJheTkpIHsKICAgICAgICAgICAgaWYgKF9pOSA+PSBfaXRlcmF0b3I5Lmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgIF9yZWYxMCA9IF9pdGVyYXRvcjlbX2k5KytdOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX2k5ID0gX2l0ZXJhdG9yOS5uZXh0KCk7CiAgICAgICAgICAgIGlmIChfaTkuZG9uZSkgYnJlYWs7CiAgICAgICAgICAgIF9yZWYxMCA9IF9pOS52YWx1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgdGFibGUgPSBfcmVmMTA7CgogICAgICAgICAgdmFyIHJlcyA9IHRoaXMuYXBwbHlMb29rdXAobG9va3VwLmxvb2t1cFR5cGUsIHRhYmxlKTsKICAgICAgICAgIGlmIChyZXMpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB0aGlzLmdseXBoSXRlcmF0b3IubmV4dCgpOwogICAgICB9CiAgICB9CiAgfTsKCiAgT1RQcm9jZXNzb3IucHJvdG90eXBlLmFwcGx5TG9va3VwID0gZnVuY3Rpb24gYXBwbHlMb29rdXAobG9va3VwLCB0YWJsZSkgewogICAgdGhyb3cgbmV3IEVycm9yKCJhcHBseUxvb2t1cCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMiKTsKICB9OwoKICBPVFByb2Nlc3Nvci5wcm90b3R5cGUuYXBwbHlMb29rdXBMaXN0ID0gZnVuY3Rpb24gYXBwbHlMb29rdXBMaXN0KGxvb2t1cFJlY29yZHMpIHsKICAgIHZhciBvcHRpb25zID0gdGhpcy5nbHlwaEl0ZXJhdG9yLm9wdGlvbnM7CiAgICB2YXIgZ2x5cGhJbmRleCA9IHRoaXMuZ2x5cGhJdGVyYXRvci5pbmRleDsKCiAgICBmb3IgKHZhciBfaXRlcmF0b3IxMCA9IGxvb2t1cFJlY29yZHMsIF9pc0FycmF5MTAgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjEwKSwgX2kxMCA9IDAsIF9pdGVyYXRvcjEwID0gX2lzQXJyYXkxMCA/IF9pdGVyYXRvcjEwIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjEwKTs7KSB7CiAgICAgIHZhciBfcmVmMTE7CgogICAgICBpZiAoX2lzQXJyYXkxMCkgewogICAgICAgIGlmIChfaTEwID49IF9pdGVyYXRvcjEwLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjExID0gX2l0ZXJhdG9yMTBbX2kxMCsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTEwID0gX2l0ZXJhdG9yMTAubmV4dCgpOwogICAgICAgIGlmIChfaTEwLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYxMSA9IF9pMTAudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBsb29rdXBSZWNvcmQgPSBfcmVmMTE7CgogICAgICAvLyBSZXNldCBmbGFncyBhbmQgZmluZCBnbHlwaCBpbmRleCBmb3IgdGhpcyBsb29rdXAgcmVjb3JkCiAgICAgIHRoaXMuZ2x5cGhJdGVyYXRvci5yZXNldChvcHRpb25zLCBnbHlwaEluZGV4KTsKICAgICAgdGhpcy5nbHlwaEl0ZXJhdG9yLmluY3JlbWVudChsb29rdXBSZWNvcmQuc2VxdWVuY2VJbmRleCk7CgogICAgICAvLyBHZXQgdGhlIGxvb2t1cCBhbmQgc2V0dXAgZmxhZ3MgZm9yIHN1YnRhYmxlcwogICAgICB2YXIgbG9va3VwID0gdGhpcy50YWJsZS5sb29rdXBMaXN0LmdldChsb29rdXBSZWNvcmQubG9va3VwTGlzdEluZGV4KTsKICAgICAgdGhpcy5nbHlwaEl0ZXJhdG9yLnJlc2V0KGxvb2t1cC5mbGFncywgdGhpcy5nbHlwaEl0ZXJhdG9yLmluZGV4KTsKCiAgICAgIC8vIEFwcGx5IGxvb2t1cCBzdWJ0YWJsZXMgdW50aWwgb25lIG1hdGNoZXMKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMTEgPSBsb29rdXAuc3ViVGFibGVzLCBfaXNBcnJheTExID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IxMSksIF9pMTEgPSAwLCBfaXRlcmF0b3IxMSA9IF9pc0FycmF5MTEgPyBfaXRlcmF0b3IxMSA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IxMSk7OykgewogICAgICAgIHZhciBfcmVmMTI7CgogICAgICAgIGlmIChfaXNBcnJheTExKSB7CiAgICAgICAgICBpZiAoX2kxMSA+PSBfaXRlcmF0b3IxMS5sZW5ndGgpIGJyZWFrOwogICAgICAgICAgX3JlZjEyID0gX2l0ZXJhdG9yMTFbX2kxMSsrXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX2kxMSA9IF9pdGVyYXRvcjExLm5leHQoKTsKICAgICAgICAgIGlmIChfaTExLmRvbmUpIGJyZWFrOwogICAgICAgICAgX3JlZjEyID0gX2kxMS52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciB0YWJsZSA9IF9yZWYxMjsKCiAgICAgICAgaWYgKHRoaXMuYXBwbHlMb29rdXAobG9va3VwLmxvb2t1cFR5cGUsIHRhYmxlKSkgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgdGhpcy5nbHlwaEl0ZXJhdG9yLnJlc2V0KG9wdGlvbnMsIGdseXBoSW5kZXgpOwogICAgcmV0dXJuIHRydWU7CiAgfTsKCiAgT1RQcm9jZXNzb3IucHJvdG90eXBlLmNvdmVyYWdlSW5kZXggPSBmdW5jdGlvbiBjb3ZlcmFnZUluZGV4KGNvdmVyYWdlLCBnbHlwaCkgewogICAgaWYgKGdseXBoID09IG51bGwpIHsKICAgICAgZ2x5cGggPSB0aGlzLmdseXBoSXRlcmF0b3IuY3VyLmlkOwogICAgfQoKICAgIHN3aXRjaCAoY292ZXJhZ2UudmVyc2lvbikgewogICAgICBjYXNlIDE6CiAgICAgICAgcmV0dXJuIGNvdmVyYWdlLmdseXBocy5pbmRleE9mKGdseXBoKTsKCiAgICAgIGNhc2UgMjoKICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IxMiA9IGNvdmVyYWdlLnJhbmdlUmVjb3JkcywgX2lzQXJyYXkxMiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMTIpLCBfaTEyID0gMCwgX2l0ZXJhdG9yMTIgPSBfaXNBcnJheTEyID8gX2l0ZXJhdG9yMTIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMTIpOzspIHsKICAgICAgICAgIHZhciBfcmVmMTM7CgogICAgICAgICAgaWYgKF9pc0FycmF5MTIpIHsKICAgICAgICAgICAgaWYgKF9pMTIgPj0gX2l0ZXJhdG9yMTIubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgX3JlZjEzID0gX2l0ZXJhdG9yMTJbX2kxMisrXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF9pMTIgPSBfaXRlcmF0b3IxMi5uZXh0KCk7CiAgICAgICAgICAgIGlmIChfaTEyLmRvbmUpIGJyZWFrOwogICAgICAgICAgICBfcmVmMTMgPSBfaTEyLnZhbHVlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciByYW5nZSA9IF9yZWYxMzsKCiAgICAgICAgICBpZiAocmFuZ2Uuc3RhcnQgPD0gZ2x5cGggJiYgZ2x5cGggPD0gcmFuZ2UuZW5kKSB7CiAgICAgICAgICAgIHJldHVybiByYW5nZS5zdGFydENvdmVyYWdlSW5kZXggKyBnbHlwaCAtIHJhbmdlLnN0YXJ0OwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgcmV0dXJuIC0xOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5tYXRjaCA9IGZ1bmN0aW9uIG1hdGNoKHNlcXVlbmNlSW5kZXgsIHNlcXVlbmNlLCBmbiwgbWF0Y2hlZCkgewogICAgdmFyIHBvcyA9IHRoaXMuZ2x5cGhJdGVyYXRvci5pbmRleDsKICAgIHZhciBnbHlwaCA9IHRoaXMuZ2x5cGhJdGVyYXRvci5pbmNyZW1lbnQoc2VxdWVuY2VJbmRleCk7CiAgICB2YXIgaWR4ID0gMDsKCiAgICB3aGlsZSAoaWR4IDwgc2VxdWVuY2UubGVuZ3RoICYmIGdseXBoICYmIGZuKHNlcXVlbmNlW2lkeF0sIGdseXBoKSkgewogICAgICBpZiAobWF0Y2hlZCkgewogICAgICAgIG1hdGNoZWQucHVzaCh0aGlzLmdseXBoSXRlcmF0b3IuaW5kZXgpOwogICAgICB9CgogICAgICBpZHgrKzsKICAgICAgZ2x5cGggPSB0aGlzLmdseXBoSXRlcmF0b3IubmV4dCgpOwogICAgfQoKICAgIHRoaXMuZ2x5cGhJdGVyYXRvci5pbmRleCA9IHBvczsKICAgIGlmIChpZHggPCBzZXF1ZW5jZS5sZW5ndGgpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIHJldHVybiBtYXRjaGVkIHx8IHRydWU7CiAgfTsKCiAgT1RQcm9jZXNzb3IucHJvdG90eXBlLnNlcXVlbmNlTWF0Y2hlcyA9IGZ1bmN0aW9uIHNlcXVlbmNlTWF0Y2hlcyhzZXF1ZW5jZUluZGV4LCBzZXF1ZW5jZSkgewogICAgcmV0dXJuIHRoaXMubWF0Y2goc2VxdWVuY2VJbmRleCwgc2VxdWVuY2UsIGZ1bmN0aW9uIChjb21wb25lbnQsIGdseXBoKSB7CiAgICAgIHJldHVybiBjb21wb25lbnQgPT09IGdseXBoLmlkOwogICAgfSk7CiAgfTsKCiAgT1RQcm9jZXNzb3IucHJvdG90eXBlLnNlcXVlbmNlTWF0Y2hJbmRpY2VzID0gZnVuY3Rpb24gc2VxdWVuY2VNYXRjaEluZGljZXMoc2VxdWVuY2VJbmRleCwgc2VxdWVuY2UpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgcmV0dXJuIHRoaXMubWF0Y2goc2VxdWVuY2VJbmRleCwgc2VxdWVuY2UsIGZ1bmN0aW9uIChjb21wb25lbnQsIGdseXBoKSB7CiAgICAgIC8vIElmIHRoZSBjdXJyZW50IGZlYXR1cmUgZG9lc24ndCBhcHBseSB0byB0aGlzIGdseXBoLAogICAgICBpZiAoIShfdGhpcy5jdXJyZW50RmVhdHVyZSBpbiBnbHlwaC5mZWF0dXJlcykpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KCiAgICAgIHJldHVybiBjb21wb25lbnQgPT09IGdseXBoLmlkOwogICAgfSwgW10pOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5jb3ZlcmFnZVNlcXVlbmNlTWF0Y2hlcyA9IGZ1bmN0aW9uIGNvdmVyYWdlU2VxdWVuY2VNYXRjaGVzKHNlcXVlbmNlSW5kZXgsIHNlcXVlbmNlKSB7CiAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICByZXR1cm4gdGhpcy5tYXRjaChzZXF1ZW5jZUluZGV4LCBzZXF1ZW5jZSwgZnVuY3Rpb24gKGNvdmVyYWdlLCBnbHlwaCkgewogICAgICByZXR1cm4gX3RoaXMyLmNvdmVyYWdlSW5kZXgoY292ZXJhZ2UsIGdseXBoLmlkKSA+PSAwOwogICAgfSk7CiAgfTsKCiAgT1RQcm9jZXNzb3IucHJvdG90eXBlLmdldENsYXNzSUQgPSBmdW5jdGlvbiBnZXRDbGFzc0lEKGdseXBoLCBjbGFzc0RlZikgewogICAgc3dpdGNoIChjbGFzc0RlZi52ZXJzaW9uKSB7CiAgICAgIGNhc2UgMToKICAgICAgICAvLyBDbGFzcyBhcnJheQogICAgICAgIHZhciBpID0gZ2x5cGggLSBjbGFzc0RlZi5zdGFydEdseXBoOwogICAgICAgIGlmIChpID49IDAgJiYgaSA8IGNsYXNzRGVmLmNsYXNzVmFsdWVBcnJheS5sZW5ndGgpIHsKICAgICAgICAgIHJldHVybiBjbGFzc0RlZi5jbGFzc1ZhbHVlQXJyYXlbaV07CiAgICAgICAgfQoKICAgICAgICBicmVhazsKCiAgICAgIGNhc2UgMjoKICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IxMyA9IGNsYXNzRGVmLmNsYXNzUmFuZ2VSZWNvcmQsIF9pc0FycmF5MTMgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjEzKSwgX2kxMyA9IDAsIF9pdGVyYXRvcjEzID0gX2lzQXJyYXkxMyA/IF9pdGVyYXRvcjEzIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjEzKTs7KSB7CiAgICAgICAgICB2YXIgX3JlZjE0OwoKICAgICAgICAgIGlmIChfaXNBcnJheTEzKSB7CiAgICAgICAgICAgIGlmIChfaTEzID49IF9pdGVyYXRvcjEzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgIF9yZWYxNCA9IF9pdGVyYXRvcjEzW19pMTMrK107CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfaTEzID0gX2l0ZXJhdG9yMTMubmV4dCgpOwogICAgICAgICAgICBpZiAoX2kxMy5kb25lKSBicmVhazsKICAgICAgICAgICAgX3JlZjE0ID0gX2kxMy52YWx1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgcmFuZ2UgPSBfcmVmMTQ7CgogICAgICAgICAgaWYgKHJhbmdlLnN0YXJ0IDw9IGdseXBoICYmIGdseXBoIDw9IHJhbmdlLmVuZCkgewogICAgICAgICAgICByZXR1cm4gcmFuZ2UuY2xhc3M7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBicmVhazsKICAgIH0KCiAgICByZXR1cm4gMDsKICB9OwoKICBPVFByb2Nlc3Nvci5wcm90b3R5cGUuY2xhc3NTZXF1ZW5jZU1hdGNoZXMgPSBmdW5jdGlvbiBjbGFzc1NlcXVlbmNlTWF0Y2hlcyhzZXF1ZW5jZUluZGV4LCBzZXF1ZW5jZSwgY2xhc3NEZWYpIHsKICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgIHJldHVybiB0aGlzLm1hdGNoKHNlcXVlbmNlSW5kZXgsIHNlcXVlbmNlLCBmdW5jdGlvbiAoY2xhc3NJRCwgZ2x5cGgpIHsKICAgICAgcmV0dXJuIGNsYXNzSUQgPT09IF90aGlzMy5nZXRDbGFzc0lEKGdseXBoLmlkLCBjbGFzc0RlZik7CiAgICB9KTsKICB9OwoKICBPVFByb2Nlc3Nvci5wcm90b3R5cGUuYXBwbHlDb250ZXh0ID0gZnVuY3Rpb24gYXBwbHlDb250ZXh0KHRhYmxlKSB7CiAgICBzd2l0Y2ggKHRhYmxlLnZlcnNpb24pIHsKICAgICAgY2FzZSAxOgogICAgICAgIHZhciBpbmRleCA9IHRoaXMuY292ZXJhZ2VJbmRleCh0YWJsZS5jb3ZlcmFnZSk7CiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgdmFyIHNldCA9IHRhYmxlLnJ1bGVTZXRzW2luZGV4XTsKICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IxNCA9IHNldCwgX2lzQXJyYXkxNCA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMTQpLCBfaTE0ID0gMCwgX2l0ZXJhdG9yMTQgPSBfaXNBcnJheTE0ID8gX2l0ZXJhdG9yMTQgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMTQpOzspIHsKICAgICAgICAgIHZhciBfcmVmMTU7CgogICAgICAgICAgaWYgKF9pc0FycmF5MTQpIHsKICAgICAgICAgICAgaWYgKF9pMTQgPj0gX2l0ZXJhdG9yMTQubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgX3JlZjE1ID0gX2l0ZXJhdG9yMTRbX2kxNCsrXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF9pMTQgPSBfaXRlcmF0b3IxNC5uZXh0KCk7CiAgICAgICAgICAgIGlmIChfaTE0LmRvbmUpIGJyZWFrOwogICAgICAgICAgICBfcmVmMTUgPSBfaTE0LnZhbHVlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBydWxlID0gX3JlZjE1OwoKICAgICAgICAgIGlmICh0aGlzLnNlcXVlbmNlTWF0Y2hlcygxLCBydWxlLmlucHV0KSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseUxvb2t1cExpc3QocnVsZS5sb29rdXBSZWNvcmRzKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAyOgogICAgICAgIGlmICh0aGlzLmNvdmVyYWdlSW5kZXgodGFibGUuY292ZXJhZ2UpID09PSAtMSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgaW5kZXggPSB0aGlzLmdldENsYXNzSUQodGhpcy5nbHlwaEl0ZXJhdG9yLmN1ci5pZCwgdGFibGUuY2xhc3NEZWYpOwogICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICAgIHNldCA9IHRhYmxlLmNsYXNzU2V0W2luZGV4XTsKICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IxNSA9IHNldCwgX2lzQXJyYXkxNSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMTUpLCBfaTE1ID0gMCwgX2l0ZXJhdG9yMTUgPSBfaXNBcnJheTE1ID8gX2l0ZXJhdG9yMTUgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMTUpOzspIHsKICAgICAgICAgIHZhciBfcmVmMTY7CgogICAgICAgICAgaWYgKF9pc0FycmF5MTUpIHsKICAgICAgICAgICAgaWYgKF9pMTUgPj0gX2l0ZXJhdG9yMTUubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgX3JlZjE2ID0gX2l0ZXJhdG9yMTVbX2kxNSsrXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF9pMTUgPSBfaXRlcmF0b3IxNS5uZXh0KCk7CiAgICAgICAgICAgIGlmIChfaTE1LmRvbmUpIGJyZWFrOwogICAgICAgICAgICBfcmVmMTYgPSBfaTE1LnZhbHVlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBfcnVsZSA9IF9yZWYxNjsKCiAgICAgICAgICBpZiAodGhpcy5jbGFzc1NlcXVlbmNlTWF0Y2hlcygxLCBfcnVsZS5jbGFzc2VzLCB0YWJsZS5jbGFzc0RlZikpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlMb29rdXBMaXN0KF9ydWxlLmxvb2t1cFJlY29yZHMpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlIDM6CiAgICAgICAgaWYgKHRoaXMuY292ZXJhZ2VTZXF1ZW5jZU1hdGNoZXMoMCwgdGFibGUuY292ZXJhZ2VzKSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlMb29rdXBMaXN0KHRhYmxlLmxvb2t1cFJlY29yZHMpOwogICAgICAgIH0KCiAgICAgICAgYnJlYWs7CiAgICB9CgogICAgcmV0dXJuIGZhbHNlOwogIH07CgogIE9UUHJvY2Vzc29yLnByb3RvdHlwZS5hcHBseUNoYWluaW5nQ29udGV4dCA9IGZ1bmN0aW9uIGFwcGx5Q2hhaW5pbmdDb250ZXh0KHRhYmxlKSB7CiAgICBzd2l0Y2ggKHRhYmxlLnZlcnNpb24pIHsKICAgICAgY2FzZSAxOgogICAgICAgIHZhciBpbmRleCA9IHRoaXMuY292ZXJhZ2VJbmRleCh0YWJsZS5jb3ZlcmFnZSk7CiAgICAgICAgaWYgKGluZGV4ID09PSAtMSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgdmFyIHNldCA9IHRhYmxlLmNoYWluUnVsZVNldHNbaW5kZXhdOwogICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjE2ID0gc2V0LCBfaXNBcnJheTE2ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IxNiksIF9pMTYgPSAwLCBfaXRlcmF0b3IxNiA9IF9pc0FycmF5MTYgPyBfaXRlcmF0b3IxNiA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IxNik7OykgewogICAgICAgICAgdmFyIF9yZWYxNzsKCiAgICAgICAgICBpZiAoX2lzQXJyYXkxNikgewogICAgICAgICAgICBpZiAoX2kxNiA+PSBfaXRlcmF0b3IxNi5sZW5ndGgpIGJyZWFrOwogICAgICAgICAgICBfcmVmMTcgPSBfaXRlcmF0b3IxNltfaTE2KytdOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX2kxNiA9IF9pdGVyYXRvcjE2Lm5leHQoKTsKICAgICAgICAgICAgaWYgKF9pMTYuZG9uZSkgYnJlYWs7CiAgICAgICAgICAgIF9yZWYxNyA9IF9pMTYudmFsdWU7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIHJ1bGUgPSBfcmVmMTc7CgogICAgICAgICAgaWYgKHRoaXMuc2VxdWVuY2VNYXRjaGVzKC1ydWxlLmJhY2t0cmFjay5sZW5ndGgsIHJ1bGUuYmFja3RyYWNrKSAmJiB0aGlzLnNlcXVlbmNlTWF0Y2hlcygxLCBydWxlLmlucHV0KSAmJiB0aGlzLnNlcXVlbmNlTWF0Y2hlcygxICsgcnVsZS5pbnB1dC5sZW5ndGgsIHJ1bGUubG9va2FoZWFkKSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseUxvb2t1cExpc3QocnVsZS5sb29rdXBSZWNvcmRzKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGJyZWFrOwoKICAgICAgY2FzZSAyOgogICAgICAgIGlmICh0aGlzLmNvdmVyYWdlSW5kZXgodGFibGUuY292ZXJhZ2UpID09PSAtMSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgaW5kZXggPSB0aGlzLmdldENsYXNzSUQodGhpcy5nbHlwaEl0ZXJhdG9yLmN1ci5pZCwgdGFibGUuaW5wdXRDbGFzc0RlZik7CiAgICAgICAgdmFyIHJ1bGVzID0gdGFibGUuY2hhaW5DbGFzc1NldFtpbmRleF07CiAgICAgICAgaWYgKCFydWxlcykgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMTcgPSBydWxlcywgX2lzQXJyYXkxNyA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMTcpLCBfaTE3ID0gMCwgX2l0ZXJhdG9yMTcgPSBfaXNBcnJheTE3ID8gX2l0ZXJhdG9yMTcgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMTcpOzspIHsKICAgICAgICAgIHZhciBfcmVmMTg7CgogICAgICAgICAgaWYgKF9pc0FycmF5MTcpIHsKICAgICAgICAgICAgaWYgKF9pMTcgPj0gX2l0ZXJhdG9yMTcubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgX3JlZjE4ID0gX2l0ZXJhdG9yMTdbX2kxNysrXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF9pMTcgPSBfaXRlcmF0b3IxNy5uZXh0KCk7CiAgICAgICAgICAgIGlmIChfaTE3LmRvbmUpIGJyZWFrOwogICAgICAgICAgICBfcmVmMTggPSBfaTE3LnZhbHVlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBfcnVsZTIgPSBfcmVmMTg7CgogICAgICAgICAgaWYgKHRoaXMuY2xhc3NTZXF1ZW5jZU1hdGNoZXMoLV9ydWxlMi5iYWNrdHJhY2subGVuZ3RoLCBfcnVsZTIuYmFja3RyYWNrLCB0YWJsZS5iYWNrdHJhY2tDbGFzc0RlZikgJiYgdGhpcy5jbGFzc1NlcXVlbmNlTWF0Y2hlcygxLCBfcnVsZTIuaW5wdXQsIHRhYmxlLmlucHV0Q2xhc3NEZWYpICYmIHRoaXMuY2xhc3NTZXF1ZW5jZU1hdGNoZXMoMSArIF9ydWxlMi5pbnB1dC5sZW5ndGgsIF9ydWxlMi5sb29rYWhlYWQsIHRhYmxlLmxvb2thaGVhZENsYXNzRGVmKSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBseUxvb2t1cExpc3QoX3J1bGUyLmxvb2t1cFJlY29yZHMpOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgYnJlYWs7CgogICAgICBjYXNlIDM6CiAgICAgICAgaWYgKHRoaXMuY292ZXJhZ2VTZXF1ZW5jZU1hdGNoZXMoLXRhYmxlLmJhY2t0cmFja0dseXBoQ291bnQsIHRhYmxlLmJhY2t0cmFja0NvdmVyYWdlKSAmJiB0aGlzLmNvdmVyYWdlU2VxdWVuY2VNYXRjaGVzKDAsIHRhYmxlLmlucHV0Q292ZXJhZ2UpICYmIHRoaXMuY292ZXJhZ2VTZXF1ZW5jZU1hdGNoZXModGFibGUuaW5wdXRHbHlwaENvdW50LCB0YWJsZS5sb29rYWhlYWRDb3ZlcmFnZSkpIHsKICAgICAgICAgIHJldHVybiB0aGlzLmFwcGx5TG9va3VwTGlzdCh0YWJsZS5sb29rdXBSZWNvcmRzKTsKICAgICAgICB9CgogICAgICAgIGJyZWFrOwogICAgfQoKICAgIHJldHVybiBmYWxzZTsKICB9OwoKICByZXR1cm4gT1RQcm9jZXNzb3I7Cn0oKTsKCnZhciBHbHlwaEluZm8gPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gR2x5cGhJbmZvKGZvbnQsIGlkKSB7CiAgICB2YXIgY29kZVBvaW50cyA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogW107CiAgICB2YXIgZmVhdHVyZXMgPSBhcmd1bWVudHNbM107CgogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEdseXBoSW5mbyk7CgogICAgdGhpcy5fZm9udCA9IGZvbnQ7CiAgICB0aGlzLmNvZGVQb2ludHMgPSBjb2RlUG9pbnRzOwogICAgdGhpcy5pZCA9IGlkOwoKICAgIHRoaXMuZmVhdHVyZXMgPSB7fTsKICAgIGlmIChBcnJheS5pc0FycmF5KGZlYXR1cmVzKSkgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZlYXR1cmVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGZlYXR1cmUgPSBmZWF0dXJlc1tpXTsKICAgICAgICB0aGlzLmZlYXR1cmVzW2ZlYXR1cmVdID0gdHJ1ZTsKICAgICAgfQogICAgfSBlbHNlIGlmICgodHlwZW9mIGZlYXR1cmVzID09PSAndW5kZWZpbmVkJyA/ICd1bmRlZmluZWQnIDogX3R5cGVvZihmZWF0dXJlcykpID09PSAnb2JqZWN0JykgewogICAgICBfT2JqZWN0JGFzc2lnbih0aGlzLmZlYXR1cmVzLCBmZWF0dXJlcyk7CiAgICB9CgogICAgdGhpcy5saWdhdHVyZUlEID0gbnVsbDsKICAgIHRoaXMubGlnYXR1cmVDb21wb25lbnQgPSBudWxsOwogICAgdGhpcy5pc0xpZ2F0ZWQgPSBmYWxzZTsKICAgIHRoaXMuY3Vyc2l2ZUF0dGFjaG1lbnQgPSBudWxsOwogICAgdGhpcy5tYXJrQXR0YWNobWVudCA9IG51bGw7CiAgICB0aGlzLnNoYXBlckluZm8gPSBudWxsOwogICAgdGhpcy5zdWJzdGl0dXRlZCA9IGZhbHNlOwogICAgdGhpcy5pc011bHRpcGxpZWQgPSBmYWxzZTsKICB9CgogIEdseXBoSW5mby5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkoKSB7CiAgICByZXR1cm4gbmV3IEdseXBoSW5mbyh0aGlzLl9mb250LCB0aGlzLmlkLCB0aGlzLmNvZGVQb2ludHMsIHRoaXMuZmVhdHVyZXMpOwogIH07CgogIF9jcmVhdGVDbGFzcyhHbHlwaEluZm8sIFt7CiAgICBrZXk6ICdpZCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuX2lkOwogICAgfSwKICAgIHNldDogZnVuY3Rpb24gc2V0KGlkKSB7CiAgICAgIHRoaXMuX2lkID0gaWQ7CiAgICAgIHRoaXMuc3Vic3RpdHV0ZWQgPSB0cnVlOwoKICAgICAgdmFyIEdERUYgPSB0aGlzLl9mb250LkdERUY7CiAgICAgIGlmIChHREVGICYmIEdERUYuZ2x5cGhDbGFzc0RlZikgewogICAgICAgIC8vIFRPRE86IGNsZWFuIHRoaXMgdXAKICAgICAgICB2YXIgY2xhc3NJRCA9IE9UUHJvY2Vzc29yLnByb3RvdHlwZS5nZXRDbGFzc0lEKGlkLCBHREVGLmdseXBoQ2xhc3NEZWYpOwogICAgICAgIHRoaXMuaXNCYXNlID0gY2xhc3NJRCA9PT0gMTsKICAgICAgICB0aGlzLmlzTGlnYXR1cmUgPSBjbGFzc0lEID09PSAyOwogICAgICAgIHRoaXMuaXNNYXJrID0gY2xhc3NJRCA9PT0gMzsKICAgICAgICB0aGlzLm1hcmtBdHRhY2htZW50VHlwZSA9IEdERUYubWFya0F0dGFjaENsYXNzRGVmID8gT1RQcm9jZXNzb3IucHJvdG90eXBlLmdldENsYXNzSUQoaWQsIEdERUYubWFya0F0dGFjaENsYXNzRGVmKSA6IDA7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5pc01hcmsgPSB0aGlzLmNvZGVQb2ludHMuZXZlcnkodW5pY29kZS5pc01hcmspOwogICAgICAgIHRoaXMuaXNCYXNlID0gIXRoaXMuaXNNYXJrOwogICAgICAgIHRoaXMuaXNMaWdhdHVyZSA9IHRoaXMuY29kZVBvaW50cy5sZW5ndGggPiAxOwogICAgICAgIHRoaXMubWFya0F0dGFjaG1lbnRUeXBlID0gMDsKICAgICAgfQogICAgfQogIH1dKTsKCiAgcmV0dXJuIEdseXBoSW5mbzsKfSgpOwoKdmFyIF9jbGFzcyQ1Owp2YXIgX3RlbXAkMTsKLyoqCiAqIFRoaXMgaXMgYSBzaGFwZXIgZm9yIHRoZSBIYW5ndWwgc2NyaXB0LCB1c2VkIGJ5IHRoZSBLb3JlYW4gbGFuZ3VhZ2UuCiAqIEl0IGRvZXMgdGhlIGZvbGxvd2luZzoKICogICAtIGRlY29tcG9zZSBpZiB1bnN1cHBvcnRlZCBieSB0aGUgZm9udDoKICogICAgIDxMVj4gICAtPiA8TCxWPgogKiAgICAgPExWVD4gIC0+IDxMLFYsVD4KICogICAgIDxMVixUPiAtPiA8TCxWLFQ+CiAqCiAqICAgLSBjb21wb3NlIGlmIHN1cHBvcnRlZCBieSB0aGUgZm9udDoKICogICAgIDxMLFY+ICAgLT4gPExWPgogKiAgICAgPEwsVixUPiAtPiA8TFZUPgogKiAgICAgPExWLFQ+ICAtPiA8TFZUPgogKgogKiAgIC0gcmVvcmRlciB0b25lIG1hcmtzIChTIGlzIGFueSB2YWxpZCBzeWxsYWJsZSk6CiAqICAgICA8UywgTT4gLT4gPE0sIFM+CiAqCiAqICAgLSBhcHBseSBsam1vLCB2am1vLCBhbmQgdGptbyBPcGVuVHlwZSBmZWF0dXJlcyB0byBkZWNvbXBvc2VkIEphbW8gc2VxdWVuY2VzLgogKgogKiBUaGlzIGxvZ2ljIGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnRzOgogKiAgIC0gaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3R5cG9ncmFwaHkvT3BlblR5cGVEZXYvaGFuZ3VsL2ludHJvLmh0bQogKiAgIC0gaHR0cDovL2t0dWcub3JnL35ub21vcy9oYXJmYnV6ei1oYW5ndWwvaGFuZ3Vsc2hhcGVyLnBkZgogKi8KdmFyIEhhbmd1bFNoYXBlciA9IChfdGVtcCQxID0gX2NsYXNzJDUgPSBmdW5jdGlvbiAoX0RlZmF1bHRTaGFwZXIpIHsKICBfaW5oZXJpdHMoSGFuZ3VsU2hhcGVyLCBfRGVmYXVsdFNoYXBlcik7CgogIGZ1bmN0aW9uIEhhbmd1bFNoYXBlcigpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBIYW5ndWxTaGFwZXIpOwoKICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfRGVmYXVsdFNoYXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTsKICB9CgogIEhhbmd1bFNoYXBlci5wbGFuRmVhdHVyZXMgPSBmdW5jdGlvbiBwbGFuRmVhdHVyZXMocGxhbikgewogICAgcGxhbi5hZGQoWydsam1vJywgJ3ZqbW8nLCAndGptbyddLCBmYWxzZSk7CiAgfTsKCiAgSGFuZ3VsU2hhcGVyLmFzc2lnbkZlYXR1cmVzID0gZnVuY3Rpb24gYXNzaWduRmVhdHVyZXMocGxhbiwgZ2x5cGhzKSB7CiAgICB2YXIgc3RhdGUgPSAwOwogICAgdmFyIGkgPSAwOwogICAgd2hpbGUgKGkgPCBnbHlwaHMubGVuZ3RoKSB7CiAgICAgIHZhciBhY3Rpb24gPSB2b2lkIDA7CiAgICAgIHZhciBnbHlwaCA9IGdseXBoc1tpXTsKICAgICAgdmFyIGNvZGUgPSBnbHlwaC5jb2RlUG9pbnRzWzBdOwogICAgICB2YXIgdHlwZSA9IGdldFR5cGUoY29kZSk7CgogICAgICB2YXIgX1NUQVRFX1RBQkxFJHN0YXRlJHR5ID0gU1RBVEVfVEFCTEUkMVtzdGF0ZV1bdHlwZV07CiAgICAgIGFjdGlvbiA9IF9TVEFURV9UQUJMRSRzdGF0ZSR0eVswXTsKICAgICAgc3RhdGUgPSBfU1RBVEVfVEFCTEUkc3RhdGUkdHlbMV07CgoKICAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICAgICBjYXNlIERFQ09NUE9TRToKICAgICAgICAgIC8vIERlY29tcG9zZSB0aGUgY29tcG9zZWQgc3lsbGFibGUgaWYgaXQgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZm9udC4KICAgICAgICAgIGlmICghcGxhbi5mb250Lmhhc0dseXBoRm9yQ29kZVBvaW50KGNvZGUpKSB7CiAgICAgICAgICAgIGkgPSBkZWNvbXBvc2UoZ2x5cGhzLCBpLCBwbGFuLmZvbnQpOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgQ09NUE9TRToKICAgICAgICAgIC8vIEZvdW5kIGEgZGVjb21wb3NlZCBzeWxsYWJsZS4gVHJ5IHRvIGNvbXBvc2UgaWYgc3VwcG9ydGVkIGJ5IHRoZSBmb250LgogICAgICAgICAgaSA9IGNvbXBvc2UoZ2x5cGhzLCBpLCBwbGFuLmZvbnQpOwogICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgVE9ORV9NQVJLOgogICAgICAgICAgLy8gR290IGEgdmFsaWQgc3lsbGFibGUsIGZvbGxvd2VkIGJ5IGEgdG9uZSBtYXJrLiBNb3ZlIHRoZSB0b25lIG1hcmsgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc3lsbGFibGUuCiAgICAgICAgICByZW9yZGVyVG9uZU1hcmsoZ2x5cGhzLCBpLCBwbGFuLmZvbnQpOwogICAgICAgICAgYnJlYWs7CgogICAgICAgIGNhc2UgSU5WQUxJRDoKICAgICAgICAgIC8vIFRvbmUgbWFyayBoYXMgbm8gdmFsaWQgc3lsbGFibGUgdG8gYXR0YWNoIHRvLCBzbyBpbnNlcnQgYSBkb3R0ZWQgY2lyY2xlCiAgICAgICAgICBpID0gaW5zZXJ0RG90dGVkQ2lyY2xlKGdseXBocywgaSwgcGxhbi5mb250KTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CgogICAgICBpKys7CiAgICB9CiAgfTsKCiAgcmV0dXJuIEhhbmd1bFNoYXBlcjsKfShEZWZhdWx0U2hhcGVyKSwgX2NsYXNzJDUuemVyb01hcmtXaWR0aHMgPSAnTk9ORScsIF90ZW1wJDEpOwp2YXIgSEFOR1VMX0JBU0UgPSAweGFjMDA7CnZhciBIQU5HVUxfRU5EID0gMHhkN2E0Owp2YXIgSEFOR1VMX0NPVU5UID0gSEFOR1VMX0VORCAtIEhBTkdVTF9CQVNFICsgMTsKdmFyIExfQkFTRSA9IDB4MTEwMDsgLy8gbGVhZAp2YXIgVl9CQVNFID0gMHgxMTYxOyAvLyB2b3dlbAp2YXIgVF9CQVNFID0gMHgxMWE3OyAvLyB0cmFpbAp2YXIgTF9DT1VOVCA9IDE5Owp2YXIgVl9DT1VOVCA9IDIxOwp2YXIgVF9DT1VOVCA9IDI4Owp2YXIgTF9FTkQgPSBMX0JBU0UgKyBMX0NPVU5UIC0gMTsKdmFyIFZfRU5EID0gVl9CQVNFICsgVl9DT1VOVCAtIDE7CnZhciBUX0VORCA9IFRfQkFTRSArIFRfQ09VTlQgLSAxOwp2YXIgRE9UVEVEX0NJUkNMRSA9IDB4MjVjYzsKCnZhciBpc0wgPSBmdW5jdGlvbiBpc0woY29kZSkgewogIHJldHVybiAweDExMDAgPD0gY29kZSAmJiBjb2RlIDw9IDB4MTE1ZiB8fCAweGE5NjAgPD0gY29kZSAmJiBjb2RlIDw9IDB4YTk3YzsKfTsKdmFyIGlzViA9IGZ1bmN0aW9uIGlzVihjb2RlKSB7CiAgcmV0dXJuIDB4MTE2MCA8PSBjb2RlICYmIGNvZGUgPD0gMHgxMWE3IHx8IDB4ZDdiMCA8PSBjb2RlICYmIGNvZGUgPD0gMHhkN2M2Owp9Owp2YXIgaXNUID0gZnVuY3Rpb24gaXNUKGNvZGUpIHsKICByZXR1cm4gMHgxMWE4IDw9IGNvZGUgJiYgY29kZSA8PSAweDExZmYgfHwgMHhkN2NiIDw9IGNvZGUgJiYgY29kZSA8PSAweGQ3ZmI7Cn07CnZhciBpc1RvbmUgPSBmdW5jdGlvbiBpc1RvbmUoY29kZSkgewogIHJldHVybiAweDMwMmUgPD0gY29kZSAmJiBjb2RlIDw9IDB4MzAyZjsKfTsKdmFyIGlzTFZUID0gZnVuY3Rpb24gaXNMVlQoY29kZSkgewogIHJldHVybiBIQU5HVUxfQkFTRSA8PSBjb2RlICYmIGNvZGUgPD0gSEFOR1VMX0VORDsKfTsKdmFyIGlzTFYgPSBmdW5jdGlvbiBpc0xWKGNvZGUpIHsKICByZXR1cm4gY29kZSAtIEhBTkdVTF9CQVNFIDwgSEFOR1VMX0NPVU5UICYmIChjb2RlIC0gSEFOR1VMX0JBU0UpICUgVF9DT1VOVCA9PT0gMDsKfTsKdmFyIGlzQ29tYmluaW5nTCA9IGZ1bmN0aW9uIGlzQ29tYmluaW5nTChjb2RlKSB7CiAgcmV0dXJuIExfQkFTRSA8PSBjb2RlICYmIGNvZGUgPD0gTF9FTkQ7Cn07CnZhciBpc0NvbWJpbmluZ1YgPSBmdW5jdGlvbiBpc0NvbWJpbmluZ1YoY29kZSkgewogIHJldHVybiBWX0JBU0UgPD0gY29kZSAmJiBjb2RlIDw9IFZfRU5EOwp9Owp2YXIgaXNDb21iaW5pbmdUID0gZnVuY3Rpb24gaXNDb21iaW5pbmdUKGNvZGUpIHsKICByZXR1cm4gVF9CQVNFICsgMSAmJiAxIDw9IGNvZGUgJiYgY29kZSA8PSBUX0VORDsKfTsKCi8vIENoYXJhY3RlciBjYXRlZ29yaWVzCnZhciBYID0gMDsgLy8gT3RoZXIgY2hhcmFjdGVyCnZhciBMID0gMTsgLy8gTGVhZGluZyBjb25zb25hbnQKdmFyIFYgPSAyOyAvLyBNZWRpYWwgdm93ZWwKdmFyIFQgPSAzOyAvLyBUcmFpbGluZyBjb25zb25hbnQKdmFyIExWID0gNDsgLy8gQ29tcG9zZWQgPExWPiBzeWxsYWJsZQp2YXIgTFZUID0gNTsgLy8gQ29tcG9zZWQgPExWVD4gc3lsbGFibGUKdmFyIE0gPSA2OyAvLyBUb25lIG1hcmsKCi8vIFRoaXMgZnVuY3Rpb24gY2xhc3NpZmllcyBhIGNoYXJhY3RlciB1c2luZyB0aGUgYWJvdmUgY2F0ZWdvcmllcy4KZnVuY3Rpb24gZ2V0VHlwZShjb2RlKSB7CiAgaWYgKGlzTChjb2RlKSkgewogICAgcmV0dXJuIEw7CiAgfQogIGlmIChpc1YoY29kZSkpIHsKICAgIHJldHVybiBWOwogIH0KICBpZiAoaXNUKGNvZGUpKSB7CiAgICByZXR1cm4gVDsKICB9CiAgaWYgKGlzTFYoY29kZSkpIHsKICAgIHJldHVybiBMVjsKICB9CiAgaWYgKGlzTFZUKGNvZGUpKSB7CiAgICByZXR1cm4gTFZUOwogIH0KICBpZiAoaXNUb25lKGNvZGUpKSB7CiAgICByZXR1cm4gTTsKICB9CiAgcmV0dXJuIFg7Cn0KCi8vIFN0YXRlIG1hY2hpbmUgYWN0aW9ucwp2YXIgTk9fQUNUSU9OID0gMDsKdmFyIERFQ09NUE9TRSA9IDE7CnZhciBDT01QT1NFID0gMjsKdmFyIFRPTkVfTUFSSyA9IDQ7CnZhciBJTlZBTElEID0gNTsKCi8vIEJ1aWxkIGEgc3RhdGUgbWFjaGluZSB0aGF0IGFjY2VwdHMgdmFsaWQgc3lsbGFibGVzLCBhbmQgYXBwbGllcyBhY3Rpb25zIGFsb25nIHRoZSB3YXkuCi8vIFRoZSBsb2dpYyB0aGlzIGlzIGltcGxlbWVudGluZyBpcyBkb2N1bWVudGVkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUuCnZhciBTVEFURV9UQUJMRSQxID0gWwovLyAgICAgICBYICAgICAgICAgICAgICAgICBMICAgICAgICAgICAgICAgICBWICAgICAgICAgICAgICAgIFQgICAgICAgICAgICAgICAgICBMViAgICAgICAgICAgICAgICBMVlQgICAgICAgICAgICAgICBNCi8vIFN0YXRlIDA6IHN0YXJ0IHN0YXRlCltbTk9fQUNUSU9OLCAwXSwgW05PX0FDVElPTiwgMV0sIFtOT19BQ1RJT04sIDBdLCBbTk9fQUNUSU9OLCAwXSwgW0RFQ09NUE9TRSwgMl0sIFtERUNPTVBPU0UsIDNdLCBbSU5WQUxJRCwgMF1dLAoKLy8gU3RhdGUgMTogPEw+CltbTk9fQUNUSU9OLCAwXSwgW05PX0FDVElPTiwgMV0sIFtDT01QT1NFLCAyXSwgW05PX0FDVElPTiwgMF0sIFtERUNPTVBPU0UsIDJdLCBbREVDT01QT1NFLCAzXSwgW0lOVkFMSUQsIDBdXSwKCi8vIFN0YXRlIDI6IDxMLFY+IG9yIDxMVj4KW1tOT19BQ1RJT04sIDBdLCBbTk9fQUNUSU9OLCAxXSwgW05PX0FDVElPTiwgMF0sIFtDT01QT1NFLCAzXSwgW0RFQ09NUE9TRSwgMl0sIFtERUNPTVBPU0UsIDNdLCBbVE9ORV9NQVJLLCAwXV0sCgovLyBTdGF0ZSAzOiA8TCxWLFQ+IG9yIDxMVlQ+CltbTk9fQUNUSU9OLCAwXSwgW05PX0FDVElPTiwgMV0sIFtOT19BQ1RJT04sIDBdLCBbTk9fQUNUSU9OLCAwXSwgW0RFQ09NUE9TRSwgMl0sIFtERUNPTVBPU0UsIDNdLCBbVE9ORV9NQVJLLCAwXV1dOwoKZnVuY3Rpb24gZ2V0R2x5cGgoZm9udCwgY29kZSwgZmVhdHVyZXMpIHsKICByZXR1cm4gbmV3IEdseXBoSW5mbyhmb250LCBmb250LmdseXBoRm9yQ29kZVBvaW50KGNvZGUpLmlkLCBbY29kZV0sIGZlYXR1cmVzKTsKfQoKZnVuY3Rpb24gZGVjb21wb3NlKGdseXBocywgaSwgZm9udCkgewogIHZhciBnbHlwaCA9IGdseXBoc1tpXTsKICB2YXIgY29kZSA9IGdseXBoLmNvZGVQb2ludHNbMF07CgogIHZhciBzID0gY29kZSAtIEhBTkdVTF9CQVNFOwogIHZhciB0ID0gVF9CQVNFICsgcyAlIFRfQ09VTlQ7CiAgcyA9IHMgLyBUX0NPVU5UIHwgMDsKICB2YXIgbCA9IExfQkFTRSArIHMgLyBWX0NPVU5UIHwgMDsKICB2YXIgdiA9IFZfQkFTRSArIHMgJSBWX0NPVU5UOwoKICAvLyBEb24ndCBkZWNvbXBvc2UgaWYgYWxsIG9mIHRoZSBjb21wb25lbnRzIGFyZSBub3QgYXZhaWxhYmxlCiAgaWYgKCFmb250Lmhhc0dseXBoRm9yQ29kZVBvaW50KGwpIHx8ICFmb250Lmhhc0dseXBoRm9yQ29kZVBvaW50KHYpIHx8IHQgIT09IFRfQkFTRSAmJiAhZm9udC5oYXNHbHlwaEZvckNvZGVQb2ludCh0KSkgewogICAgcmV0dXJuIGk7CiAgfQoKICAvLyBSZXBsYWNlIHRoZSBjdXJyZW50IGdseXBoIHdpdGggZGVjb21wb3NlZCBMLCBWLCBhbmQgVCBnbHlwaHMsCiAgLy8gYW5kIGFwcGx5IHRoZSBwcm9wZXIgT3BlblR5cGUgZmVhdHVyZXMgdG8gZWFjaCBjb21wb25lbnQuCiAgdmFyIGxqbW8gPSBnZXRHbHlwaChmb250LCBsLCBnbHlwaC5mZWF0dXJlcyk7CiAgbGptby5mZWF0dXJlcy5sam1vID0gdHJ1ZTsKCiAgdmFyIHZqbW8gPSBnZXRHbHlwaChmb250LCB2LCBnbHlwaC5mZWF0dXJlcyk7CiAgdmptby5mZWF0dXJlcy52am1vID0gdHJ1ZTsKCiAgdmFyIGluc2VydCA9IFtsam1vLCB2am1vXTsKCiAgaWYgKHQgPiBUX0JBU0UpIHsKICAgIHZhciB0am1vID0gZ2V0R2x5cGgoZm9udCwgdCwgZ2x5cGguZmVhdHVyZXMpOwogICAgdGptby5mZWF0dXJlcy50am1vID0gdHJ1ZTsKICAgIGluc2VydC5wdXNoKHRqbW8pOwogIH0KCiAgZ2x5cGhzLnNwbGljZS5hcHBseShnbHlwaHMsIFtpLCAxXS5jb25jYXQoaW5zZXJ0KSk7CiAgcmV0dXJuIGkgKyBpbnNlcnQubGVuZ3RoIC0gMTsKfQoKZnVuY3Rpb24gY29tcG9zZShnbHlwaHMsIGksIGZvbnQpIHsKICB2YXIgZ2x5cGggPSBnbHlwaHNbaV07CiAgdmFyIGNvZGUgPSBnbHlwaHNbaV0uY29kZVBvaW50c1swXTsKICB2YXIgdHlwZSA9IGdldFR5cGUoY29kZSk7CgogIHZhciBwcmV2ID0gZ2x5cGhzW2kgLSAxXS5jb2RlUG9pbnRzWzBdOwogIHZhciBwcmV2VHlwZSA9IGdldFR5cGUocHJldik7CgogIC8vIEZpZ3VyZSBvdXQgd2hhdCB0eXBlIG9mIHN5bGxhYmxlIHdlJ3JlIGRlYWxpbmcgd2l0aAogIHZhciBsdiA9IHZvaWQgMCwKICAgICAgbGptbyA9IHZvaWQgMCwKICAgICAgdmptbyA9IHZvaWQgMCwKICAgICAgdGptbyA9IHZvaWQgMDsKICBpZiAocHJldlR5cGUgPT09IExWICYmIHR5cGUgPT09IFQpIHsKICAgIC8vIDxMVixUPgogICAgbHYgPSBwcmV2OwogICAgdGptbyA9IGdseXBoOwogIH0gZWxzZSB7CiAgICBpZiAodHlwZSA9PT0gVikgewogICAgICAvLyA8TCxWPgogICAgICBsam1vID0gZ2x5cGhzW2kgLSAxXTsKICAgICAgdmptbyA9IGdseXBoOwogICAgfSBlbHNlIHsKICAgICAgLy8gPEwsVixUPgogICAgICBsam1vID0gZ2x5cGhzW2kgLSAyXTsKICAgICAgdmptbyA9IGdseXBoc1tpIC0gMV07CiAgICAgIHRqbW8gPSBnbHlwaDsKICAgIH0KCiAgICB2YXIgbCA9IGxqbW8uY29kZVBvaW50c1swXTsKICAgIHZhciB2ID0gdmptby5jb2RlUG9pbnRzWzBdOwoKICAgIC8vIE1ha2Ugc3VyZSBMIGFuZCBWIGFyZSBjb21iaW5pbmcgY2hhcmFjdGVycwogICAgaWYgKGlzQ29tYmluaW5nTChsKSAmJiBpc0NvbWJpbmluZ1YodikpIHsKICAgICAgbHYgPSBIQU5HVUxfQkFTRSArICgobCAtIExfQkFTRSkgKiBWX0NPVU5UICsgKHYgLSBWX0JBU0UpKSAqIFRfQ09VTlQ7CiAgICB9CiAgfQoKICB2YXIgdCA9IHRqbW8gJiYgdGptby5jb2RlUG9pbnRzWzBdIHx8IFRfQkFTRTsKICBpZiAobHYgIT0gbnVsbCAmJiAodCA9PT0gVF9CQVNFIHx8IGlzQ29tYmluaW5nVCh0KSkpIHsKICAgIHZhciBzID0gbHYgKyAodCAtIFRfQkFTRSk7CgogICAgLy8gUmVwbGFjZSB3aXRoIGEgY29tcG9zZWQgZ2x5cGggaWYgc3VwcG9ydGVkIGJ5IHRoZSBmb250LAogICAgLy8gb3RoZXJ3aXNlIGFwcGx5IHRoZSBwcm9wZXIgT3BlblR5cGUgZmVhdHVyZXMgdG8gZWFjaCBjb21wb25lbnQuCiAgICBpZiAoZm9udC5oYXNHbHlwaEZvckNvZGVQb2ludChzKSkgewogICAgICB2YXIgZGVsID0gcHJldlR5cGUgPT09IFYgPyAzIDogMjsKICAgICAgZ2x5cGhzLnNwbGljZShpIC0gZGVsICsgMSwgZGVsLCBnZXRHbHlwaChmb250LCBzLCBnbHlwaC5mZWF0dXJlcykpOwogICAgICByZXR1cm4gaSAtIGRlbCArIDE7CiAgICB9CiAgfQoKICAvLyBEaWRuJ3QgY29tcG9zZSAoZWl0aGVyIGEgbm9uLWNvbWJpbmluZyBjb21wb25lbnQgb3IgdW5zdXBwb3J0ZWQgYnkgZm9udCkuCiAgaWYgKGxqbW8pIHsKICAgIGxqbW8uZmVhdHVyZXMubGptbyA9IHRydWU7CiAgfQogIGlmICh2am1vKSB7CiAgICB2am1vLmZlYXR1cmVzLnZqbW8gPSB0cnVlOwogIH0KICBpZiAodGptbykgewogICAgdGptby5mZWF0dXJlcy50am1vID0gdHJ1ZTsKICB9CgogIGlmIChwcmV2VHlwZSA9PT0gTFYpIHsKICAgIC8vIFNlcXVlbmNlIHdhcyBvcmlnaW5hbGx5IDxMLFY+LCB3aGljaCBnb3QgY29tYmluZWQgZWFybGllci4KICAgIC8vIEVpdGhlciB0aGUgVCB3YXMgbm9uLWNvbWJpbmluZywgb3IgdGhlIExWVCBnbHlwaCB3YXNuJ3Qgc3VwcG9ydGVkLgogICAgLy8gRGVjb21wb3NlIHRoZSBnbHlwaCBhZ2FpbiBhbmQgYXBwbHkgT1QgZmVhdHVyZXMuCiAgICBkZWNvbXBvc2UoZ2x5cGhzLCBpIC0gMSwgZm9udCk7CiAgICByZXR1cm4gaSArIDE7CiAgfQoKICByZXR1cm4gaTsKfQoKZnVuY3Rpb24gZ2V0TGVuZ3RoKGNvZGUpIHsKICBzd2l0Y2ggKGdldFR5cGUoY29kZSkpIHsKICAgIGNhc2UgTFY6CiAgICBjYXNlIExWVDoKICAgICAgcmV0dXJuIDE7CiAgICBjYXNlIFY6CiAgICAgIHJldHVybiAyOwogICAgY2FzZSBUOgogICAgICByZXR1cm4gMzsKICB9Cn0KCmZ1bmN0aW9uIHJlb3JkZXJUb25lTWFyayhnbHlwaHMsIGksIGZvbnQpIHsKICB2YXIgZ2x5cGggPSBnbHlwaHNbaV07CiAgdmFyIGNvZGUgPSBnbHlwaHNbaV0uY29kZVBvaW50c1swXTsKCiAgLy8gTW92ZSB0b25lIG1hcmsgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcHJldmlvdXMgc3lsbGFibGUsIHVubGVzcyBpdCBpcyB6ZXJvIHdpZHRoCiAgaWYgKGZvbnQuZ2x5cGhGb3JDb2RlUG9pbnQoY29kZSkuYWR2YW5jZVdpZHRoID09PSAwKSB7CiAgICByZXR1cm47CiAgfQoKICB2YXIgcHJldiA9IGdseXBoc1tpIC0gMV0uY29kZVBvaW50c1swXTsKICB2YXIgbGVuID0gZ2V0TGVuZ3RoKHByZXYpOwoKICBnbHlwaHMuc3BsaWNlKGksIDEpOwogIHJldHVybiBnbHlwaHMuc3BsaWNlKGkgLSBsZW4sIDAsIGdseXBoKTsKfQoKZnVuY3Rpb24gaW5zZXJ0RG90dGVkQ2lyY2xlKGdseXBocywgaSwgZm9udCkgewogIHZhciBnbHlwaCA9IGdseXBoc1tpXTsKICB2YXIgY29kZSA9IGdseXBoc1tpXS5jb2RlUG9pbnRzWzBdOwoKICBpZiAoZm9udC5oYXNHbHlwaEZvckNvZGVQb2ludChET1RURURfQ0lSQ0xFKSkgewogICAgdmFyIGRvdHRlZENpcmNsZSA9IGdldEdseXBoKGZvbnQsIERPVFRFRF9DSVJDTEUsIGdseXBoLmZlYXR1cmVzKTsKCiAgICAvLyBJZiB0aGUgdG9uZSBtYXJrIGlzIHplcm8gd2lkdGgsIGluc2VydCB0aGUgZG90dGVkIGNpcmNsZSBiZWZvcmUsIG90aGVyd2lzZSBhZnRlcgogICAgdmFyIGlkeCA9IGZvbnQuZ2x5cGhGb3JDb2RlUG9pbnQoY29kZSkuYWR2YW5jZVdpZHRoID09PSAwID8gaSA6IGkgKyAxOwogICAgZ2x5cGhzLnNwbGljZShpZHgsIDAsIGRvdHRlZENpcmNsZSk7CiAgICBpKys7CiAgfQoKICByZXR1cm4gaTsKfQoKdmFyIHN0YXRlVGFibGUgPSBbWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMCwgMTAsIDExLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAxN10sIFswLCAwLCAwLCAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMjUsIDI2LCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMzUsIDM2LCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAzOCwgNSwgNywgNywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDEzLCAwLCAwLCAxNiwgMF0sIFswLCAzOSwgMCwgMCwgMCwgNDAsIDQxLCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDM5LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDQzLCA0NCwgNDQsIDgsIDksIDAsIDAsIDAsIDAsIDEyLCA0MywgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0MywgNDQsIDQ0LCA4LCA5LCAwLCAwLCAwLCAwLCAwLCA0MywgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0NSwgNDYsIDQ3LCA0OCwgNDksIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA1MCwgMCwgMCwgNTEsIDAsIDEwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDAsIDU5LCAwLCAwLCA2MCwgNjEsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDQsIDUsIDcsIDcsIDgsIDksIDAsIDEwLCAwLCAwLCAwLCAxMywgMCwgMCwgMTYsIDBdLCBbMCwgNjMsIDY0LCAwLCAwLCA0MCwgNDEsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgNjMsIDAsIDBdLCBbMCwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMCwgMTAsIDExLCAxMSwgMTIsIDEzLCAwLCAyLCAxNiwgMF0sIFswLCAwLCAwLCAxOCwgNjUsIDIwLCAyMSwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMjUsIDI2LCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCAwLCA2NiwgNjcsIDY3LCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgNjgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNjksIDAsIDcwLCA3MCwgMCwgNzEsIDAsIDcyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDczLCAxOSwgNzQsIDc0LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCAyNiwgMCwgMCwgMjcsIDBdLCBbMCwgNzUsIDAsIDAsIDAsIDc2LCA3NywgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNzUsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNzksIDgwLCA4MCwgMjIsIDIzLCAwLCAwLCAwLCAwLCAyNSwgNzksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTgsIDE5LCAyMCwgNzQsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDI1LCAyNiwgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgODEsIDgyLCA4MywgODQsIDg1LCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDg2LCAwLCAwLCA4NywgMCwgMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTgsIDE5LCA3NCwgNzQsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDI2LCAwLCAwLCAyNywgMF0sIFswLCA4OSwgOTAsIDAsIDAsIDc2LCA3NywgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgODksIDAsIDBdLCBbMCwgMCwgMCwgMCwgOTEsIDkyLCA5MiwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMCwgOTMsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgOTQsIDI5LCA5NSwgMzEsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDM2LCAwLCAwLCAzNywgMF0sIFswLCA5NiwgMCwgMCwgMCwgOTcsIDk4LCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCA5NiwgMCwgMF0sIFswLCAwLCAwLCAwLCAxMDAsIDEwMSwgMTAxLCAzMiwgMzMsIDAsIDAsIDAsIDAsIDM1LCAxMDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTAwLCAxMDEsIDEwMSwgMzIsIDMzLCAwLCAwLCAwLCAwLCAwLCAxMDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTAyLCAxMDMsIDEwNCwgMTA1LCAxMDYsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTA3LCAwLCAwLCAxMDgsIDAsIDM0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAyOCwgMjksIDk1LCAzMSwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgMzYsIDAsIDAsIDM3LCAwXSwgWzAsIDExMCwgMTExLCAwLCAwLCA5NywgOTgsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDExMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAxMTIsIDExMywgMTEzLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAxMTQsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNSwgNywgNywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDEzLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAxMTUsIDExNiwgMTE3LCAxMTgsIDgsIDksIDAsIDEwLCAwLCAwLCAxMTksIDEyMCwgMCwgMCwgMTYsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTIxLCAxMjEsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMCwgMCwgMF0sIFswLCAzOSwgMCwgMTIyLCAwLCAxMjMsIDEyMywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAzOSwgMCwgMF0sIFswLCAxMjQsIDY0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjQsIDAsIDBdLCBbMCwgMzksIDAsIDAsIDAsIDEyMSwgMTI1LCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDM5LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDEyNiwgMTI2LCA4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDQ2LCA0NywgNDgsIDQ5LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0OSwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDEyNywgMTI3LCA0OSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAxMjgsIDEyNywgMTI3LCA0OSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAxMjksIDEzMCwgMTMxLCAxMzIsIDEzMywgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDUwLCAwLCAwLCAwLCAwLCAxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTM1LCA1NCwgNTYsIDU2LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCA2MSwgMCwgMCwgNjIsIDBdLCBbMCwgMTM2LCAwLCAwLCAwLCAxMzcsIDEzOCwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDEzNiwgMCwgMF0sIFswLCAwLCAwLCAwLCAxNDAsIDE0MSwgMTQxLCA1NywgNTgsIDAsIDAsIDAsIDAsIDYwLCAxNDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTQwLCAxNDEsIDE0MSwgNTcsIDU4LCAwLCAwLCAwLCAwLCAwLCAxNDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTQyLCAxNDMsIDE0NCwgMTQ1LCAxNDYsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDE0NywgMCwgMCwgMTQ4LCAwLCA1OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTMsIDU0LCA1NiwgNTYsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDYxLCAwLCAwLCA2MiwgMF0sIFswLCAxNTAsIDE1MSwgMCwgMCwgMTM3LCAxMzgsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAxNTAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTUyLCAxNTMsIDE1MywgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTU0LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDE1NSwgMTE2LCAxNTYsIDE1NywgOCwgOSwgMCwgMTAsIDAsIDAsIDE1OCwgMTIwLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCAwLCAxMjEsIDEyMSwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgNzUsIDMsIDQsIDUsIDE1OSwgMTYwLCA4LCAxNjEsIDAsIDE2MiwgMCwgMTEsIDEyLCAxNjMsIDAsIDc1LCAxNiwgMF0sIFswLCAwLCAwLCAwLCAwLCA0MCwgMTY0LCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTY1LCA0NCwgNDQsIDgsIDksIDAsIDAsIDAsIDAsIDAsIDE2NSwgMCwgMCwgMCwgMF0sIFswLCAxMjQsIDY0LCAwLCAwLCA0MCwgMTY0LCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDEyNCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA3MCwgNzAsIDAsIDcxLCAwLCA3MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAxNjYsIDAsIDAsIDE2NywgMCwgNzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDE5LCA3NCwgNzQsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDI2LCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCAwLCA3OSwgODAsIDgwLCAyMiwgMjMsIDAsIDAsIDAsIDAsIDAsIDc5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDE2OSwgMTcwLCAxNzEsIDE3MiwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMTczLCAxNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDAsIDAsIDE3NSwgMTc1LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAwLCAwLCAwXSwgWzAsIDc1LCAwLCAxNzYsIDAsIDE3NywgMTc3LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNzUsIDAsIDBdLCBbMCwgMTc4LCA5MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTc4LCAwLCAwXSwgWzAsIDc1LCAwLCAwLCAwLCAxNzUsIDE3OSwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNzUsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTgwLCAxODAsIDIyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDgyLCA4MywgODQsIDg1LCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDgzLCA4MywgODUsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTgxLCAxODEsIDg1LCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAxODIsIDE4MSwgMTgxLCA4NSwgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTgzLCAxODQsIDE4NSwgMTg2LCAxODcsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgODYsIDAsIDAsIDAsIDAsIDI0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAxODksIDE3MCwgMTkwLCAxOTEsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDE5MiwgMTc0LCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCAwLCAwLCAxNzUsIDE3NSwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDc2LCAxOTMsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTk0LCA4MCwgODAsIDIyLCAyMywgMCwgMCwgMCwgMCwgMCwgMTk0LCAwLCAwLCAwLCAwXSwgWzAsIDE3OCwgOTAsIDAsIDAsIDc2LCAxOTMsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDE3OCwgMCwgMF0sIFswLCAwLCAwLCAwLCAyOSwgOTUsIDMxLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAzNiwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgMTAwLCAxMDEsIDEwMSwgMzIsIDMzLCAwLCAwLCAwLCAwLCAwLCAxMDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTk1LCAxOTYsIDE5NywgMTk4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAxOTksIDIwMCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjAxLCAyMDEsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgOTYsIDAsIDIwMiwgMCwgMjAzLCAyMDMsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCA5NiwgMCwgMF0sIFswLCAyMDQsIDExMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjA0LCAwLCAwXSwgWzAsIDk2LCAwLCAwLCAwLCAyMDEsIDIwNSwgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgOTYsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjA2LCAyMDYsIDMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDEwMywgMTA0LCAxMDUsIDEwNiwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAxMDQsIDEwNCwgMTA2LCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDIwNywgMjA3LCAxMDYsIDMzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDIwOCwgMjA3LCAyMDcsIDEwNiwgMzMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjA5LCAyMTAsIDIxMSwgMjEyLCAyMTMsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTA3LCAwLCAwLCAwLCAwLCAzNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjE1LCAxOTYsIDIxNiwgMjE3LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAyMTgsIDIwMCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjAxLCAyMDEsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA5NywgMjE5LCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDIyMCwgMTAxLCAxMDEsIDMyLCAzMywgMCwgMCwgMCwgMCwgMCwgMjIwLCAwLCAwLCAwLCAwXSwgWzAsIDIwNCwgMTExLCAwLCAwLCA5NywgMjE5LCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCAyMDQsIDAsIDBdLCBbMCwgMCwgMCwgMjIxLCAxMTYsIDIyMiwgMjIyLCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgMTIwLCAwLCAwLCAxNiwgMF0sIFswLCAyMjMsIDAsIDAsIDAsIDQwLCAyMjQsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMjIzLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDIyNSwgNDQsIDQ0LCA4LCA5LCAwLCAwLCAwLCAwLCAxMTksIDIyNSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAxMTUsIDExNiwgMTE3LCAyMjIsIDgsIDksIDAsIDEwLCAwLCAwLCAxMTksIDEyMCwgMCwgMCwgMTYsIDBdLCBbMCwgMCwgMCwgMTE1LCAxMTYsIDIyMiwgMjIyLCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgMTIwLCAwLCAwLCAxNiwgMF0sIFswLCAyMjYsIDY0LCAwLCAwLCA0MCwgMjI0LCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDIyNiwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDM5LCAwLCAwLCAwLCAxMjEsIDEyMSwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAzOSwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA0NCwgNDQsIDgsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjI3LCAwLCAyMjgsIDIyOSwgMCwgOSwgMCwgMTAsIDAsIDAsIDIzMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAzOSwgMCwgMTIyLCAwLCAxMjEsIDEyMSwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAzOSwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCA4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDIzMSwgMjMxLCA0OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAyMzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTMwLCAxMzEsIDEzMiwgMTMzLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTMxLCAxMzEsIDEzMywgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDIzMywgMjMzLCAxMzMsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMjM0LCAyMzMsIDIzMywgMTMzLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDIzNSwgMjM2LCAyMzcsIDIzOCwgMjM5LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA1NCwgNTYsIDU2LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCA2MSwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMjQwLCAyNDEsIDI0MiwgMjQzLCA1NywgNTgsIDAsIDU5LCAwLCAwLCAyNDQsIDI0NSwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjQ2LCAyNDYsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDEzNiwgMCwgMjQ3LCAwLCAyNDgsIDI0OCwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAxMzYsIDAsIDBdLCBbMCwgMjQ5LCAxNTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI0OSwgMCwgMF0sIFswLCAxMzYsIDAsIDAsIDAsIDI0NiwgMjUwLCAwLCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgMTM2LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI1MSwgMjUxLCA1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAxNDMsIDE0NCwgMTQ1LCAxNDYsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDE0NCwgMTQ0LCAxNDYsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI1MiwgMjUyLCAxNDYsIDU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDI1MywgMjUyLCAyNTIsIDE0NiwgNTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjU0LCAyNTUsIDI1NiwgMjU3LCAyNTgsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDE0NywgMCwgMCwgMCwgMCwgNTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjU5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDI2MCwgMjQxLCAyNjEsIDI2MiwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMjYzLCAyNDUsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI0NiwgMjQ2LCAwLCA1OCwgMCwgNTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTM3LCAyNjQsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDI2NSwgMTQxLCAxNDEsIDU3LCA1OCwgMCwgMCwgMCwgMCwgMCwgMjY1LCAwLCAwLCAwLCAwXSwgWzAsIDI0OSwgMTUxLCAwLCAwLCAxMzcsIDI2NCwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDI0OSwgMCwgMF0sIFswLCAwLCAwLCAyMjEsIDExNiwgMjIyLCAyMjIsIDgsIDksIDAsIDEwLCAwLCAwLCAwLCAxMjAsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDAsIDIyNSwgNDQsIDQ0LCA4LCA5LCAwLCAwLCAwLCAwLCAxNTgsIDIyNSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAxNTUsIDExNiwgMTU2LCAyMjIsIDgsIDksIDAsIDEwLCAwLCAwLCAxNTgsIDEyMCwgMCwgMCwgMTYsIDBdLCBbMCwgMCwgMCwgMTU1LCAxMTYsIDIyMiwgMjIyLCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgMTIwLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCA0MywgMjY2LCAyNjYsIDgsIDE2MSwgMCwgMjQsIDAsIDAsIDEyLCAyNjcsIDAsIDAsIDAsIDBdLCBbMCwgNzUsIDAsIDE3NiwgNDMsIDI2OCwgMjY4LCAyNjksIDE2MSwgMCwgMjQsIDAsIDAsIDAsIDI2NywgMCwgNzUsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjcwLCAwLCAwLCAyNzEsIDAsIDE2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMjczLCAyNzQsIDAsIDAsIDQwLCA0MSwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAyNzMsIDAsIDBdLCBbMCwgMCwgMCwgNDAsIDAsIDEyMywgMTIzLCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTIxLCAyNzUsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAxNjYsIDAsIDAsIDAsIDAsIDcyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAyNzcsIDE3MCwgMjc4LCAyNzgsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDE3NCwgMCwgMCwgMjcsIDBdLCBbMCwgMjc5LCAwLCAwLCAwLCA3NiwgMjgwLCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAyNzksIDAsIDBdLCBbMCwgMCwgMCwgMCwgMjgxLCA4MCwgODAsIDIyLCAyMywgMCwgMCwgMCwgMCwgMTczLCAyODEsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTY5LCAxNzAsIDE3MSwgMjc4LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAxNzMsIDE3NCwgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMTY5LCAxNzAsIDI3OCwgMjc4LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCAxNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDI4MiwgOTAsIDAsIDAsIDc2LCAyODAsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDI4MiwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCA3NSwgMCwgMCwgMCwgMTc1LCAxNzUsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDc1LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDgwLCA4MCwgMjIsIDIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDI4MywgMCwgMjg0LCAyODUsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMjg2LCAwLCAwLCAwLCAwLCAwXSwgWzAsIDc1LCAwLCAxNzYsIDAsIDE3NSwgMTc1LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCA3NSwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAyMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyODcsIDI4NywgODUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMjg4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDE4NCwgMTg1LCAxODYsIDE4NywgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAxODUsIDE4NSwgMTg3LCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI4OSwgMjg5LCAxODcsIDIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDI5MCwgMjg5LCAyODksIDE4NywgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjkxLCAyOTIsIDI5MywgMjk0LCAyOTUsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAyNzcsIDE3MCwgMjc4LCAyNzgsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDE3NCwgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMCwgMjgxLCA4MCwgODAsIDIyLCAyMywgMCwgMCwgMCwgMCwgMTkyLCAyODEsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTg5LCAxNzAsIDE5MCwgMjc4LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAxOTIsIDE3NCwgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMTg5LCAxNzAsIDI3OCwgMjc4LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCAxNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDc2LCAwLCAxNzcsIDE3NywgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTc1LCAyOTYsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjk3LCAxOTYsIDI5OCwgMjk4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAyMDAsIDAsIDAsIDM3LCAwXSwgWzAsIDI5OSwgMCwgMCwgMCwgOTcsIDMwMCwgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgMjk5LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDMwMSwgMTAxLCAxMDEsIDMyLCAzMywgMCwgMCwgMCwgMCwgMTk5LCAzMDEsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTk1LCAxOTYsIDE5NywgMjk4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAxOTksIDIwMCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMTk1LCAxOTYsIDI5OCwgMjk4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAyMDAsIDAsIDAsIDM3LCAwXSwgWzAsIDMwMiwgMTExLCAwLCAwLCA5NywgMzAwLCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCAzMDIsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgOTYsIDAsIDAsIDAsIDIwMSwgMjAxLCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCA5NiwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAxMDEsIDEwMSwgMzIsIDMzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDMwMywgMCwgMzA0LCAzMDUsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMzA2LCAwLCAwLCAwLCAwLCAwXSwgWzAsIDk2LCAwLCAyMDIsIDAsIDIwMSwgMjAxLCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCA5NiwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzMDcsIDMwNywgMTA2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDMwOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAyMTAsIDIxMSwgMjEyLCAyMTMsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjExLCAyMTEsIDIxMywgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzMDksIDMwOSwgMjEzLCAzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAzMTAsIDMwOSwgMzA5LCAyMTMsIDMzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDMxMSwgMzEyLCAzMTMsIDMxNCwgMzE1LCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjk3LCAxOTYsIDI5OCwgMjk4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAyMDAsIDAsIDAsIDM3LCAwXSwgWzAsIDAsIDAsIDAsIDMwMSwgMTAxLCAxMDEsIDMyLCAzMywgMCwgMCwgMCwgMCwgMjE4LCAzMDEsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjE1LCAxOTYsIDIxNiwgMjk4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAyMTgsIDIwMCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMjE1LCAxOTYsIDI5OCwgMjk4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAyMDAsIDAsIDAsIDM3LCAwXSwgWzAsIDAsIDAsIDk3LCAwLCAyMDMsIDIwMywgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjAxLCAzMTYsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTE2LCAyMjIsIDIyMiwgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDEyMCwgMCwgMCwgMTYsIDBdLCBbMCwgMCwgMCwgMCwgMjI1LCA0NCwgNDQsIDgsIDksIDAsIDAsIDAsIDAsIDAsIDIyNSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAzMTcsIDMxOCwgMzE5LCAzMjAsIDgsIDksIDAsIDEwLCAwLCAwLCAzMjEsIDMyMiwgMCwgMCwgMTYsIDBdLCBbMCwgMjIzLCAwLCAzMjMsIDAsIDEyMywgMTIzLCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDIyMywgMCwgMF0sIFswLCAyMjMsIDAsIDAsIDAsIDEyMSwgMzI0LCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDIyMywgMCwgMF0sIFswLCAwLCAwLCAzMjUsIDMxOCwgMzI2LCAzMjcsIDgsIDksIDAsIDEwLCAwLCAwLCAzMjgsIDMyMiwgMCwgMCwgMTYsIDBdLCBbMCwgMCwgMCwgNjQsIDAsIDEyMSwgMTIxLCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAyMzAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjI3LCAwLCAyMjgsIDEyMSwgMCwgOSwgMCwgMTAsIDAsIDAsIDIzMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAyMjcsIDAsIDEyMSwgMTIxLCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCA0OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NiwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzMjksIDMyOSwgMTMzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDMzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAyMzYsIDIzNywgMjM4LCAyMzksIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyMzcsIDIzNywgMjM5LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMzMxLCAzMzEsIDIzOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAzMzIsIDMzMSwgMzMxLCAyMzksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzMzLCA0MCwgMTIxLCAzMzQsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAzMzUsIDI0MSwgMzM2LCAzMzYsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDI0NSwgMCwgMCwgNjIsIDBdLCBbMCwgMzM3LCAwLCAwLCAwLCAxMzcsIDMzOCwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDMzNywgMCwgMF0sIFswLCAwLCAwLCAwLCAzMzksIDE0MSwgMTQxLCA1NywgNTgsIDAsIDAsIDAsIDAsIDI0NCwgMzM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDI0MCwgMjQxLCAyNDIsIDMzNiwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMjQ0LCAyNDUsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDI0MCwgMjQxLCAzMzYsIDMzNiwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMjQ1LCAwLCAwLCA2MiwgMF0sIFswLCAzNDAsIDE1MSwgMCwgMCwgMTM3LCAzMzgsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAzNDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMTM2LCAwLCAwLCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDEzNiwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAxNDEsIDE0MSwgNTcsIDU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDM0MSwgMCwgMzQyLCAzNDMsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMzQ0LCAwLCAwLCAwLCAwLCAwXSwgWzAsIDEzNiwgMCwgMjQ3LCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDEzNiwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCA1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzNDUsIDM0NSwgMTQ2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDM0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAyNTUsIDI1NiwgMjU3LCAyNTgsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI1NiwgMjU2LCAyNTgsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDM0NywgMzQ3LCAyNTgsIDU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDM0OCwgMzQ3LCAzNDcsIDI1OCwgNTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzQ5LCAzNTAsIDM1MSwgMzUyLCAzNTMsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzM1LCAyNDEsIDMzNiwgMzM2LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCAyNDUsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDAsIDMzOSwgMTQxLCAxNDEsIDU3LCA1OCwgMCwgMCwgMCwgMCwgMjYzLCAzMzksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjYwLCAyNDEsIDI2MSwgMzM2LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAyNjMsIDI0NSwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMjYwLCAyNDEsIDMzNiwgMzM2LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCAyNDUsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDEzNywgMCwgMjQ4LCAyNDgsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyNDYsIDM1NCwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMTI2LCAxMjYsIDgsIDIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDM1NSwgOTAsIDAsIDAsIDEyMSwgMTI1LCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDM1NSwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzNTYsIDM1NiwgMjY5LCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAzNTcsIDM1OCwgMzU5LCAzNjAsIDM2MSwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDM2MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjcwLCAwLCAwLCAwLCAwLCAxNjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzYzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDM2NCwgMTE2LCAzNjUsIDM2NiwgOCwgMTYxLCAwLCAxNjIsIDAsIDAsIDM2NywgMTIwLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCAwLCAzNjgsIDM2OCwgMCwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNDAsIDAsIDEyMSwgMTIxLCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAxNzAsIDI3OCwgMjc4LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCAxNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDAsIDI4MSwgODAsIDgwLCAyMiwgMjMsIDAsIDAsIDAsIDAsIDAsIDI4MSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAzNjksIDM3MCwgMzcxLCAzNzIsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDM3MywgMzc0LCAwLCAwLCAyNywgMF0sIFswLCAyNzksIDAsIDM3NSwgMCwgMTc3LCAxNzcsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAyNzksIDAsIDBdLCBbMCwgMjc5LCAwLCAwLCAwLCAxNzUsIDM3NiwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgMjc5LCAwLCAwXSwgWzAsIDAsIDAsIDM3NywgMzcwLCAzNzgsIDM3OSwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMzgwLCAzNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDkwLCAwLCAxNzUsIDE3NSwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIzLCAwLCAwLCAwLCAwLCAyODYsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjgzLCAwLCAyODQsIDE3NSwgMCwgMjMsIDAsIDI0LCAwLCAwLCAyODYsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMjgzLCAwLCAxNzUsIDE3NSwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDg1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgyLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDM4MSwgMzgxLCAxODcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMzgyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDI5MiwgMjkzLCAyOTQsIDI5NSwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyOTMsIDI5MywgMjk1LCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDM4MywgMzgzLCAyOTUsIDIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDM4NCwgMzgzLCAzODMsIDI5NSwgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzg1LCA3NiwgMTc1LCAzODYsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNzYsIDAsIDE3NSwgMTc1LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDE5NiwgMjk4LCAyOTgsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDIwMCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgMzAxLCAxMDEsIDEwMSwgMzIsIDMzLCAwLCAwLCAwLCAwLCAwLCAzMDEsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzg3LCAzODgsIDM4OSwgMzkwLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAzOTEsIDM5MiwgMCwgMCwgMzcsIDBdLCBbMCwgMjk5LCAwLCAzOTMsIDAsIDIwMywgMjAzLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgMjk5LCAwLCAwXSwgWzAsIDI5OSwgMCwgMCwgMCwgMjAxLCAzOTQsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDI5OSwgMCwgMF0sIFswLCAwLCAwLCAzOTUsIDM4OCwgMzk2LCAzOTcsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDM5OCwgMzkyLCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAxMTEsIDAsIDIwMSwgMjAxLCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzMsIDAsIDAsIDAsIDAsIDMwNiwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAzMDMsIDAsIDMwNCwgMjAxLCAwLCAzMywgMCwgMzQsIDAsIDAsIDMwNiwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAzMDMsIDAsIDIwMSwgMjAxLCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwMywgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzOTksIDM5OSwgMjEzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDQwMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAzMTIsIDMxMywgMzE0LCAzMTUsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMzEzLCAzMTMsIDMxNSwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA0MDEsIDQwMSwgMzE1LCAzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0MDIsIDQwMSwgNDAxLCAzMTUsIDMzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQwMywgOTcsIDIwMSwgNDA0LCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDk3LCAwLCAyMDEsIDIwMSwgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0MDUsIDMxOCwgNDA2LCA0MDYsIDgsIDksIDAsIDEwLCAwLCAwLCAwLCAzMjIsIDAsIDAsIDE2LCAwXSwgWzAsIDQwNywgMCwgMCwgMCwgNDAsIDQwOCwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCA0MDcsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNDA5LCA0NCwgNDQsIDgsIDksIDAsIDAsIDAsIDAsIDMyMSwgNDA5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDMxNywgMzE4LCAzMTksIDQwNiwgOCwgOSwgMCwgMTAsIDAsIDAsIDMyMSwgMzIyLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAzMTcsIDMxOCwgNDA2LCA0MDYsIDgsIDksIDAsIDEwLCAwLCAwLCAwLCAzMjIsIDAsIDAsIDE2LCAwXSwgWzAsIDQxMCwgNjQsIDAsIDAsIDQwLCA0MDgsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgNDEwLCAwLCAwXSwgWzAsIDIyMywgMCwgMCwgMCwgMTIxLCAxMjEsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMjIzLCAwLCAwXSwgWzAsIDIyMywgMCwgMzIzLCAwLCAxMjEsIDEyMSwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCAyMjMsIDAsIDBdLCBbMCwgMCwgMCwgNDA1LCAzMTgsIDQwNiwgNDA2LCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgMzIyLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCA0MDksIDQ0LCA0NCwgOCwgOSwgMCwgMCwgMCwgMCwgMzI4LCA0MDksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzI1LCAzMTgsIDMyNiwgNDA2LCA4LCA5LCAwLCAxMCwgMCwgMCwgMzI4LCAzMjIsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDMyNSwgMzE4LCA0MDYsIDQwNiwgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDMyMiwgMCwgMCwgMTYsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA0MTEsIDQxMSwgMjM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDQxMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0MCwgMTIxLCAzMzQsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0MTMsIDAsIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMjQxLCAzMzYsIDMzNiwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMjQ1LCAwLCAwLCA2MiwgMF0sIFswLCAwLCAwLCAwLCAzMzksIDE0MSwgMTQxLCA1NywgNTgsIDAsIDAsIDAsIDAsIDAsIDMzOSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0MTQsIDQxNSwgNDE2LCA0MTcsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDQxOCwgNDE5LCAwLCAwLCA2MiwgMF0sIFswLCAzMzcsIDAsIDQyMCwgMCwgMjQ4LCAyNDgsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgMzM3LCAwLCAwXSwgWzAsIDMzNywgMCwgMCwgMCwgMjQ2LCA0MjEsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAzMzcsIDAsIDBdLCBbMCwgMCwgMCwgNDIyLCA0MTUsIDQyMywgNDI0LCA1NywgNTgsIDAsIDU5LCAwLCAwLCA0MjUsIDQxOSwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMTUxLCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4LCAwLCAwLCAwLCAwLCAzNDQsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzQxLCAwLCAzNDIsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAzNDQsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzQxLCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDMsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNDI2LCA0MjYsIDI1OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCA0MjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMzUwLCAzNTEsIDM1MiwgMzUzLCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzNTEsIDM1MSwgMzUzLCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA0MjgsIDQyOCwgMzUzLCA1OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0MjksIDQyOCwgNDI4LCAzNTMsIDU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQzMCwgMTM3LCAyNDYsIDQzMSwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMTM3LCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNDMyLCAxMTYsIDQzMywgNDM0LCA4LCAxNjEsIDAsIDE2MiwgMCwgMCwgNDM1LCAxMjAsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDAsIDAsIDE4MCwgMTgwLCAyNjksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMzU4LCAzNTksIDM2MCwgMzYxLCAxNjEsIDAsIDE2MiwgMCwgMCwgMCwgMzYyLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDM1OSwgMzU5LCAzNjEsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAzNjIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNDM2LCA0MzYsIDM2MSwgMTYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDQzNywgNDM2LCA0MzYsIDM2MSwgMTYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQzOCwgNDM5LCA0NDAsIDQ0MSwgNDQyLCAxNjEsIDAsIDE2MiwgMCwgMCwgMCwgMzYyLCAwLCAwLCAwLCAwXSwgWzAsIDQ0MywgMjc0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NDMsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0NDQsIDExNiwgNDQ1LCA0NDUsIDgsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAxMjAsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDAsIDIyNSwgNDQsIDQ0LCA4LCAxNjEsIDAsIDAsIDAsIDAsIDM2NywgMjI1LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDM2NCwgMTE2LCAzNjUsIDQ0NSwgOCwgMTYxLCAwLCAxNjIsIDAsIDAsIDM2NywgMTIwLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAzNjQsIDExNiwgNDQ1LCA0NDUsIDgsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAxMjAsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE2MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0NDYsIDM3MCwgNDQ3LCA0NDcsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDM3NCwgMCwgMCwgMjcsIDBdLCBbMCwgNDQ4LCAwLCAwLCAwLCA3NiwgNDQ5LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCA0NDgsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNDUwLCA4MCwgODAsIDIyLCAyMywgMCwgMCwgMCwgMCwgMzczLCA0NTAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMzY5LCAzNzAsIDM3MSwgNDQ3LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAzNzMsIDM3NCwgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMzY5LCAzNzAsIDQ0NywgNDQ3LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCAzNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDQ1MSwgOTAsIDAsIDAsIDc2LCA0NDksIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDQ1MSwgMCwgMF0sIFswLCAyNzksIDAsIDAsIDAsIDE3NSwgMTc1LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAyNzksIDAsIDBdLCBbMCwgMjc5LCAwLCAzNzUsIDAsIDE3NSwgMTc1LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCAyNzksIDAsIDBdLCBbMCwgMCwgMCwgNDQ2LCAzNzAsIDQ0NywgNDQ3LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCAzNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDAsIDQ1MCwgODAsIDgwLCAyMiwgMjMsIDAsIDAsIDAsIDAsIDM4MCwgNDUwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDM3NywgMzcwLCAzNzgsIDQ0NywgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMzgwLCAzNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDM3NywgMzcwLCA0NDcsIDQ0NywgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMCwgMzc0LCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAxODcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTg0LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDQ1MiwgNDUyLCAyOTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgNDUzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDc2LCAxNzUsIDM4NiwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0NTQsIDAsIDAsIDAsIDIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQ1NSwgMzg4LCA0NTYsIDQ1NiwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgMzkyLCAwLCAwLCAzNywgMF0sIFswLCA0NTcsIDAsIDAsIDAsIDk3LCA0NTgsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDQ1NywgMCwgMF0sIFswLCAwLCAwLCAwLCA0NTksIDEwMSwgMTAxLCAzMiwgMzMsIDAsIDAsIDAsIDAsIDM5MSwgNDU5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDM4NywgMzg4LCAzODksIDQ1NiwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMzkxLCAzOTIsIDAsIDAsIDM3LCAwXSwgWzAsIDAsIDAsIDM4NywgMzg4LCA0NTYsIDQ1NiwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgMzkyLCAwLCAwLCAzNywgMF0sIFswLCA0NjAsIDExMSwgMCwgMCwgOTcsIDQ1OCwgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgNDYwLCAwLCAwXSwgWzAsIDI5OSwgMCwgMCwgMCwgMjAxLCAyMDEsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDI5OSwgMCwgMF0sIFswLCAyOTksIDAsIDM5MywgMCwgMjAxLCAyMDEsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDI5OSwgMCwgMF0sIFswLCAwLCAwLCA0NTUsIDM4OCwgNDU2LCA0NTYsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDM5MiwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgNDU5LCAxMDEsIDEwMSwgMzIsIDMzLCAwLCAwLCAwLCAwLCAzOTgsIDQ1OSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAzOTUsIDM4OCwgMzk2LCA0NTYsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDM5OCwgMzkyLCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAzOTUsIDM4OCwgNDU2LCA0NTYsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDM5MiwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjEzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIxMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA0NjEsIDQ2MSwgMzE1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDQ2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA5NywgMjAxLCA0MDQsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNDYzLCAwLCAwLCAwLCAzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAzMTgsIDQwNiwgNDA2LCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgMzIyLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCA0MDksIDQ0LCA0NCwgOCwgOSwgMCwgMCwgMCwgMCwgMCwgNDA5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQ2NCwgNDY1LCA0NjYsIDQ2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDQ2OCwgNDY5LCAwLCAwLCAxNiwgMF0sIFswLCA0MDcsIDAsIDQ3MCwgMCwgMTIzLCAxMjMsIDgsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgNDA3LCAwLCAwXSwgWzAsIDQwNywgMCwgMCwgMCwgMTIxLCA0NzEsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgNDA3LCAwLCAwXSwgWzAsIDAsIDAsIDQ3MiwgNDY1LCA0NzMsIDQ3NCwgOCwgOSwgMCwgMTAsIDAsIDAsIDQ3NSwgNDY5LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAyMzksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjM2LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDQ3NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0NzcsIDQxNSwgNDc4LCA0NzgsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDQxOSwgMCwgMCwgNjIsIDBdLCBbMCwgNDc5LCAwLCAwLCAwLCAxMzcsIDQ4MCwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDQ3OSwgMCwgMF0sIFswLCAwLCAwLCAwLCA0ODEsIDE0MSwgMTQxLCA1NywgNTgsIDAsIDAsIDAsIDAsIDQxOCwgNDgxLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQxNCwgNDE1LCA0MTYsIDQ3OCwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgNDE4LCA0MTksIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDQxNCwgNDE1LCA0NzgsIDQ3OCwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgNDE5LCAwLCAwLCA2MiwgMF0sIFswLCA0ODIsIDE1MSwgMCwgMCwgMTM3LCA0ODAsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCA0ODIsIDAsIDBdLCBbMCwgMzM3LCAwLCAwLCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDMzNywgMCwgMF0sIFswLCAzMzcsIDAsIDQyMCwgMCwgMjQ2LCAyNDYsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCAzMzcsIDAsIDBdLCBbMCwgMCwgMCwgNDc3LCA0MTUsIDQ3OCwgNDc4LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCA0MTksIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDAsIDQ4MSwgMTQxLCAxNDEsIDU3LCA1OCwgMCwgMCwgMCwgMCwgNDI1LCA0ODEsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNDIyLCA0MTUsIDQyMywgNDc4LCA1NywgNTgsIDAsIDU5LCAwLCAwLCA0MjUsIDQxOSwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgNDIyLCA0MTUsIDQ3OCwgNDc4LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCA0MTksIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNTUsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNDgzLCA0ODMsIDM1MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCA0ODQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMTM3LCAyNDYsIDQzMSwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNDg1LCAwLCAwLCAwLCA1OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0NDQsIDExNiwgNDQ1LCA0NDUsIDgsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAxMjAsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDAsIDIyNSwgNDQsIDQ0LCA4LCAxNjEsIDAsIDAsIDAsIDAsIDQzNSwgMjI1LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQzMiwgMTE2LCA0MzMsIDQ0NSwgOCwgMTYxLCAwLCAxNjIsIDAsIDAsIDQzNSwgMTIwLCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCA0MzIsIDExNiwgNDQ1LCA0NDUsIDgsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAxMjAsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDAsIDAsIDQ4NiwgNDg2LCAzNjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgNDg3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDQzOSwgNDQwLCA0NDEsIDQ0MiwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDM2MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA0NDAsIDQ0MCwgNDQyLCAxNjEsIDAsIDE2MiwgMCwgMCwgMCwgMzYyLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDQ4OCwgNDg4LCA0NDIsIDE2MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0ODksIDQ4OCwgNDg4LCA0NDIsIDE2MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0OTAsIDQ5MSwgNDkyLCA0OTMsIDQ5NCwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDM2MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0OTUsIDAsIDQ5NiwgNDk3LCAwLCAxNjEsIDAsIDE2MiwgMCwgMCwgNDk4LCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDExNiwgNDQ1LCA0NDUsIDgsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAxMjAsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDAsIDIyNSwgNDQsIDQ0LCA4LCAxNjEsIDAsIDAsIDAsIDAsIDAsIDIyNSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAzNzAsIDQ0NywgNDQ3LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCAzNzQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDAsIDQ1MCwgODAsIDgwLCAyMiwgMjMsIDAsIDAsIDAsIDAsIDAsIDQ1MCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0OTksIDUwMCwgNTAxLCA1MDIsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDUwMywgNTA0LCAwLCAwLCAyNywgMF0sIFswLCA0NDgsIDAsIDUwNSwgMCwgMTc3LCAxNzcsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCA0NDgsIDAsIDBdLCBbMCwgNDQ4LCAwLCAwLCAwLCAxNzUsIDUwNiwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNDQ4LCAwLCAwXSwgWzAsIDAsIDAsIDUwNywgNTAwLCA1MDgsIDUwOSwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgNTEwLCA1MDQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDI5NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyOTIsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgNTExLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDM4OCwgNDU2LCA0NTYsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDM5MiwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgNDU5LCAxMDEsIDEwMSwgMzIsIDMzLCAwLCAwLCAwLCAwLCAwLCA0NTksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTEyLCA1MTMsIDUxNCwgNTE1LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCA1MTYsIDUxNywgMCwgMCwgMzcsIDBdLCBbMCwgNDU3LCAwLCA1MTgsIDAsIDIwMywgMjAzLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgNDU3LCAwLCAwXSwgWzAsIDQ1NywgMCwgMCwgMCwgMjAxLCA1MTksIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDQ1NywgMCwgMF0sIFswLCAwLCAwLCA1MjAsIDUxMywgNTIxLCA1MjIsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDUyMywgNTE3LCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAzMTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzEyLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDUyNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1MjUsIDQ2NSwgNTI2LCA1MjYsIDgsIDksIDAsIDEwLCAwLCAwLCAwLCA0NjksIDAsIDAsIDE2LCAwXSwgWzAsIDUyNywgMCwgMCwgMCwgNDAsIDUyOCwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCA1MjcsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNTI5LCA0NCwgNDQsIDgsIDksIDAsIDAsIDAsIDAsIDQ2OCwgNTI5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQ2NCwgNDY1LCA0NjYsIDUyNiwgOCwgOSwgMCwgMTAsIDAsIDAsIDQ2OCwgNDY5LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCA0NjQsIDQ2NSwgNTI2LCA1MjYsIDgsIDksIDAsIDEwLCAwLCAwLCAwLCA0NjksIDAsIDAsIDE2LCAwXSwgWzAsIDUzMCwgNjQsIDAsIDAsIDQwLCA1MjgsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgNTMwLCAwLCAwXSwgWzAsIDQwNywgMCwgMCwgMCwgMTIxLCAxMjEsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgNDA3LCAwLCAwXSwgWzAsIDQwNywgMCwgNDcwLCAwLCAxMjEsIDEyMSwgMCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQyLCAwLCA0MDcsIDAsIDBdLCBbMCwgMCwgMCwgNTI1LCA0NjUsIDUyNiwgNTI2LCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDY5LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCA1MjksIDQ0LCA0NCwgOCwgOSwgMCwgMCwgMCwgMCwgNDc1LCA1MjksIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNDcyLCA0NjUsIDQ3MywgNTI2LCA4LCA5LCAwLCAxMCwgMCwgMCwgNDc1LCA0NjksIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDQ3MiwgNDY1LCA1MjYsIDUyNiwgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDQ2OSwgMCwgMCwgMTYsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNDE1LCA0NzgsIDQ3OCwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgNDE5LCAwLCAwLCA2MiwgMF0sIFswLCAwLCAwLCAwLCA0ODEsIDE0MSwgMTQxLCA1NywgNTgsIDAsIDAsIDAsIDAsIDAsIDQ4MSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1MzEsIDUzMiwgNTMzLCA1MzQsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDUzNSwgNTM2LCAwLCAwLCA2MiwgMF0sIFswLCA0NzksIDAsIDUzNywgMCwgMjQ4LCAyNDgsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgNDc5LCAwLCAwXSwgWzAsIDQ3OSwgMCwgMCwgMCwgMjQ2LCA1MzgsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCA0NzksIDAsIDBdLCBbMCwgMCwgMCwgNTM5LCA1MzIsIDU0MCwgNTQxLCA1NywgNTgsIDAsIDU5LCAwLCAwLCA1NDIsIDUzNiwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzUzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM1MCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCA1NDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM1OCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA1NDQsIDU0NCwgNDQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDU0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA0OTEsIDQ5MiwgNDkzLCA0OTQsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAzNjIsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNDkyLCA0OTIsIDQ5NCwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDM2MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA1NDYsIDU0NiwgNDk0LCAxNjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNTQ3LCA1NDYsIDU0NiwgNDk0LCAxNjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTQ4LCA1NDksIDM2OCwgNTUwLCAwLCAxNjEsIDAsIDE2MiwgMCwgMCwgMCwgMzYyLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDI3NCwgMCwgMzY4LCAzNjgsIDAsIDE2MSwgMCwgMTYyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE2MSwgMCwgMCwgMCwgMCwgNDk4LCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQ5NSwgMCwgNDk2LCAzNjgsIDAsIDE2MSwgMCwgMTYyLCAwLCAwLCA0OTgsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNDk1LCAwLCAzNjgsIDM2OCwgMCwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTUxLCA1MDAsIDU1MiwgNTUyLCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCA1MDQsIDAsIDAsIDI3LCAwXSwgWzAsIDU1MywgMCwgMCwgMCwgNzYsIDU1NCwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNTUzLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDU1NSwgODAsIDgwLCAyMiwgMjMsIDAsIDAsIDAsIDAsIDUwMywgNTU1LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDQ5OSwgNTAwLCA1MDEsIDU1MiwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgNTAzLCA1MDQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDQ5OSwgNTAwLCA1NTIsIDU1MiwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNTA0LCAwLCAwLCAyNywgMF0sIFswLCA1NTYsIDkwLCAwLCAwLCA3NiwgNTU0LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCA1NTYsIDAsIDBdLCBbMCwgNDQ4LCAwLCAwLCAwLCAxNzUsIDE3NSwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNDQ4LCAwLCAwXSwgWzAsIDQ0OCwgMCwgNTA1LCAwLCAxNzUsIDE3NSwgMCwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNDQ4LCAwLCAwXSwgWzAsIDAsIDAsIDU1MSwgNTAwLCA1NTIsIDU1MiwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNTA0LCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCAwLCA1NTUsIDgwLCA4MCwgMjIsIDIzLCAwLCAwLCAwLCAwLCA1MTAsIDU1NSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1MDcsIDUwMCwgNTA4LCA1NTIsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDUxMCwgNTA0LCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCA1MDcsIDUwMCwgNTUyLCA1NTIsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDUwNCwgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzYsIDAsIDBdLCBbMCwgMCwgMCwgNTU3LCA1MTMsIDU1OCwgNTU4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCA1MTcsIDAsIDAsIDM3LCAwXSwgWzAsIDU1OSwgMCwgMCwgMCwgOTcsIDU2MCwgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgNTU5LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDU2MSwgMTAxLCAxMDEsIDMyLCAzMywgMCwgMCwgMCwgMCwgNTE2LCA1NjEsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTEyLCA1MTMsIDUxNCwgNTU4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCA1MTYsIDUxNywgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgNTEyLCA1MTMsIDU1OCwgNTU4LCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCA1MTcsIDAsIDAsIDM3LCAwXSwgWzAsIDU2MiwgMTExLCAwLCAwLCA5NywgNTYwLCAwLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCA1NjIsIDAsIDBdLCBbMCwgNDU3LCAwLCAwLCAwLCAyMDEsIDIwMSwgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgNDU3LCAwLCAwXSwgWzAsIDQ1NywgMCwgNTE4LCAwLCAyMDEsIDIwMSwgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgNDU3LCAwLCAwXSwgWzAsIDAsIDAsIDU1NywgNTEzLCA1NTgsIDU1OCwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgNTE3LCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAwLCA1NjEsIDEwMSwgMTAxLCAzMiwgMzMsIDAsIDAsIDAsIDAsIDUyMywgNTYxLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDUyMCwgNTEzLCA1MjEsIDU1OCwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgNTIzLCA1MTcsIDAsIDAsIDM3LCAwXSwgWzAsIDAsIDAsIDUyMCwgNTEzLCA1NTgsIDU1OCwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgNTE3LCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5NywgMCwgMF0sIFswLCAwLCAwLCAwLCA0NjUsIDUyNiwgNTI2LCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDY5LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCA1MjksIDQ0LCA0NCwgOCwgOSwgMCwgMCwgMCwgMCwgMCwgNTI5LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDU2MywgNjYsIDU2NCwgNTY1LCA4LCA5LCAwLCAxMCwgMCwgMCwgNTY2LCA2OCwgMCwgMCwgMTYsIDBdLCBbMCwgNTI3LCAwLCA1NjcsIDAsIDEyMywgMTIzLCA4LCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDUyNywgMCwgMF0sIFswLCA1MjcsIDAsIDAsIDAsIDEyMSwgNTY4LCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDUyNywgMCwgMF0sIFswLCAwLCAwLCA1NjksIDY2LCA1NzAsIDU3MSwgOCwgOSwgMCwgMTAsIDAsIDAsIDU3MiwgNjgsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDU3MywgNTMyLCA1NzQsIDU3NCwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgNTM2LCAwLCAwLCA2MiwgMF0sIFswLCA1NzUsIDAsIDAsIDAsIDEzNywgNTc2LCAwLCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgNTc1LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDU3NywgMTQxLCAxNDEsIDU3LCA1OCwgMCwgMCwgMCwgMCwgNTM1LCA1NzcsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTMxLCA1MzIsIDUzMywgNTc0LCA1NywgNTgsIDAsIDU5LCAwLCAwLCA1MzUsIDUzNiwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgNTMxLCA1MzIsIDU3NCwgNTc0LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCA1MzYsIDAsIDAsIDYyLCAwXSwgWzAsIDU3OCwgMTUxLCAwLCAwLCAxMzcsIDU3NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDU3OCwgMCwgMF0sIFswLCA0NzksIDAsIDAsIDAsIDI0NiwgMjQ2LCAwLCA1OCwgMCwgNTksIDAsIDAsIDAsIDEzOSwgMCwgNDc5LCAwLCAwXSwgWzAsIDQ3OSwgMCwgNTM3LCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDQ3OSwgMCwgMF0sIFswLCAwLCAwLCA1NzMsIDUzMiwgNTc0LCA1NzQsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDUzNiwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMCwgNTc3LCAxNDEsIDE0MSwgNTcsIDU4LCAwLCAwLCAwLCAwLCA1NDIsIDU3NywgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1MzksIDUzMiwgNTQwLCA1NzQsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDU0MiwgNTM2LCAwLCAwLCA2MiwgMF0sIFswLCAwLCAwLCA1MzksIDUzMiwgNTc0LCA1NzQsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDUzNiwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM3LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MzksIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNTc5LCA1NzksIDQ5NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCA1ODAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgNTQ5LCAzNjgsIDU1MCwgMCwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDM2MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAzNjgsIDM2OCwgMCwgMTYxLCAwLCAxNjIsIDAsIDAsIDAsIDM2MiwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA1ODEsIDAsIDAsIDAsIDE2MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCA1MDAsIDU1MiwgNTUyLCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCA1MDQsIDAsIDAsIDI3LCAwXSwgWzAsIDAsIDAsIDAsIDU1NSwgODAsIDgwLCAyMiwgMjMsIDAsIDAsIDAsIDAsIDAsIDU1NSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1ODIsIDkxLCA1ODMsIDU4NCwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgNTg1LCA5MywgMCwgMCwgMjcsIDBdLCBbMCwgNTUzLCAwLCA1ODYsIDAsIDE3NywgMTc3LCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCA3OCwgMCwgNTUzLCAwLCAwXSwgWzAsIDU1MywgMCwgMCwgMCwgMTc1LCA1ODcsIDAsIDIzLCAwLCAyNCwgMCwgMCwgMCwgNzgsIDAsIDU1MywgMCwgMF0sIFswLCAwLCAwLCA1ODgsIDkxLCA1ODksIDU5MCwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgNTkxLCA5MywgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMCwgNTEzLCA1NTgsIDU1OCwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgNTE3LCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAwLCA1NjEsIDEwMSwgMTAxLCAzMiwgMzMsIDAsIDAsIDAsIDAsIDAsIDU2MSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1OTIsIDExMiwgNTkzLCA1OTQsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDU5NSwgMTE0LCAwLCAwLCAzNywgMF0sIFswLCA1NTksIDAsIDU5NiwgMCwgMjAzLCAyMDMsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDk5LCAwLCA1NTksIDAsIDBdLCBbMCwgNTU5LCAwLCAwLCAwLCAyMDEsIDU5NywgMCwgMzMsIDAsIDM0LCAwLCAwLCAwLCA5OSwgMCwgNTU5LCAwLCAwXSwgWzAsIDAsIDAsIDU5OCwgMTEyLCA1OTksIDYwMCwgMzIsIDMzLCAwLCAzNCwgMCwgMCwgNjAxLCAxMTQsIDAsIDAsIDM3LCAwXSwgWzAsIDAsIDAsIDYwMiwgNjYsIDY3LCA2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDY4LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCAxNjUsIDQ0LCA0NCwgOCwgOSwgMCwgMCwgMCwgMCwgNTY2LCAxNjUsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTYzLCA2NiwgNTY0LCA2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDU2NiwgNjgsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDU2MywgNjYsIDY3LCA2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDY4LCAwLCAwLCAxNiwgMF0sIFswLCA1MjcsIDAsIDAsIDAsIDEyMSwgMTIxLCAwLCA5LCAwLCAxMCwgMCwgMCwgMCwgNDIsIDAsIDUyNywgMCwgMF0sIFswLCA1MjcsIDAsIDU2NywgMCwgMTIxLCAxMjEsIDAsIDksIDAsIDEwLCAwLCAwLCAwLCA0MiwgMCwgNTI3LCAwLCAwXSwgWzAsIDAsIDAsIDYwMiwgNjYsIDY3LCA2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDY4LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCAxNjUsIDQ0LCA0NCwgOCwgOSwgMCwgMCwgMCwgMCwgNTcyLCAxNjUsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTY5LCA2NiwgNTcwLCA2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDU3MiwgNjgsIDAsIDAsIDE2LCAwXSwgWzAsIDAsIDAsIDU2OSwgNjYsIDY3LCA2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDY4LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCAwLCA1MzIsIDU3NCwgNTc0LCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCA1MzYsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDAsIDU3NywgMTQxLCAxNDEsIDU3LCA1OCwgMCwgMCwgMCwgMCwgMCwgNTc3LCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDYwMywgMTUyLCA2MDQsIDYwNSwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgNjA2LCAxNTQsIDAsIDAsIDYyLCAwXSwgWzAsIDU3NSwgMCwgNjA3LCAwLCAyNDgsIDI0OCwgNTcsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCA1NzUsIDAsIDBdLCBbMCwgNTc1LCAwLCAwLCAwLCAyNDYsIDYwOCwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDU3NSwgMCwgMF0sIFswLCAwLCAwLCA2MDksIDE1MiwgNjEwLCA2MTEsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDYxMiwgMTU0LCAwLCAwLCA2MiwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCA0OTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDkxLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDYxMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA2MTQsIDkxLCA5MiwgOTIsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDkzLCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCAwLCAxOTQsIDgwLCA4MCwgMjIsIDIzLCAwLCAwLCAwLCAwLCA1ODUsIDE5NCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1ODIsIDkxLCA1ODMsIDkyLCAyMiwgMjMsIDAsIDI0LCAwLCAwLCA1ODUsIDkzLCAwLCAwLCAyNywgMF0sIFswLCAwLCAwLCA1ODIsIDkxLCA5MiwgOTIsIDIyLCAyMywgMCwgMjQsIDAsIDAsIDAsIDkzLCAwLCAwLCAyNywgMF0sIFswLCA1NTMsIDAsIDAsIDAsIDE3NSwgMTc1LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCA1NTMsIDAsIDBdLCBbMCwgNTUzLCAwLCA1ODYsIDAsIDE3NSwgMTc1LCAwLCAyMywgMCwgMjQsIDAsIDAsIDAsIDc4LCAwLCA1NTMsIDAsIDBdLCBbMCwgMCwgMCwgNjE0LCA5MSwgOTIsIDkyLCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCA5MywgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMCwgMTk0LCA4MCwgODAsIDIyLCAyMywgMCwgMCwgMCwgMCwgNTkxLCAxOTQsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTg4LCA5MSwgNTg5LCA5MiwgMjIsIDIzLCAwLCAyNCwgMCwgMCwgNTkxLCA5MywgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgNTg4LCA5MSwgOTIsIDkyLCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCA5MywgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgNjE1LCAxMTIsIDExMywgMTEzLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAxMTQsIDAsIDAsIDM3LCAwXSwgWzAsIDAsIDAsIDAsIDIyMCwgMTAxLCAxMDEsIDMyLCAzMywgMCwgMCwgMCwgMCwgNTk1LCAyMjAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNTkyLCAxMTIsIDU5MywgMTEzLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCA1OTUsIDExNCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgNTkyLCAxMTIsIDExMywgMTEzLCAzMiwgMzMsIDAsIDM0LCAwLCAwLCAwLCAxMTQsIDAsIDAsIDM3LCAwXSwgWzAsIDU1OSwgMCwgMCwgMCwgMjAxLCAyMDEsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDU1OSwgMCwgMF0sIFswLCA1NTksIDAsIDU5NiwgMCwgMjAxLCAyMDEsIDAsIDMzLCAwLCAzNCwgMCwgMCwgMCwgOTksIDAsIDU1OSwgMCwgMF0sIFswLCAwLCAwLCA2MTUsIDExMiwgMTEzLCAxMTMsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDExNCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgMjIwLCAxMDEsIDEwMSwgMzIsIDMzLCAwLCAwLCAwLCAwLCA2MDEsIDIyMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA1OTgsIDExMiwgNTk5LCAxMTMsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDYwMSwgMTE0LCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCA1OTgsIDExMiwgMTEzLCAxMTMsIDMyLCAzMywgMCwgMzQsIDAsIDAsIDAsIDExNCwgMCwgMCwgMzcsIDBdLCBbMCwgMCwgMCwgMCwgNjYsIDY3LCA2NywgOCwgOSwgMCwgMTAsIDAsIDAsIDAsIDY4LCAwLCAwLCAxNiwgMF0sIFswLCAwLCAwLCA2MTYsIDE1MiwgMTUzLCAxNTMsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDE1NCwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgMCwgMjY1LCAxNDEsIDE0MSwgNTcsIDU4LCAwLCAwLCAwLCAwLCA2MDYsIDI2NSwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA2MDMsIDE1MiwgNjA0LCAxNTMsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDYwNiwgMTU0LCAwLCAwLCA2MiwgMF0sIFswLCAwLCAwLCA2MDMsIDE1MiwgMTUzLCAxNTMsIDU3LCA1OCwgMCwgNTksIDAsIDAsIDAsIDE1NCwgMCwgMCwgNjIsIDBdLCBbMCwgNTc1LCAwLCAwLCAwLCAyNDYsIDI0NiwgMCwgNTgsIDAsIDU5LCAwLCAwLCAwLCAxMzksIDAsIDU3NSwgMCwgMF0sIFswLCA1NzUsIDAsIDYwNywgMCwgMjQ2LCAyNDYsIDAsIDU4LCAwLCA1OSwgMCwgMCwgMCwgMTM5LCAwLCA1NzUsIDAsIDBdLCBbMCwgMCwgMCwgNjE2LCAxNTIsIDE1MywgMTUzLCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCAxNTQsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDAsIDI2NSwgMTQxLCAxNDEsIDU3LCA1OCwgMCwgMCwgMCwgMCwgNjEyLCAyNjUsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgNjA5LCAxNTIsIDYxMCwgMTUzLCA1NywgNTgsIDAsIDU5LCAwLCAwLCA2MTIsIDE1NCwgMCwgMCwgNjIsIDBdLCBbMCwgMCwgMCwgNjA5LCAxNTIsIDE1MywgMTUzLCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCAxNTQsIDAsIDAsIDYyLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU0OSwgMCwgMF0sIFswLCAwLCAwLCAwLCA5MSwgOTIsIDkyLCAyMiwgMjMsIDAsIDI0LCAwLCAwLCAwLCA5MywgMCwgMCwgMjcsIDBdLCBbMCwgMCwgMCwgMCwgMTEyLCAxMTMsIDExMywgMzIsIDMzLCAwLCAzNCwgMCwgMCwgMCwgMTE0LCAwLCAwLCAzNywgMF0sIFswLCAwLCAwLCAwLCAxNTIsIDE1MywgMTUzLCA1NywgNTgsIDAsIDU5LCAwLCAwLCAwLCAxNTQsIDAsIDAsIDYyLCAwXV07CnZhciBhY2NlcHRpbmcgPSBbZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUsIHRydWVdOwp2YXIgdGFncyA9IFtbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJzeW1ib2xfY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiLCAiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbInN5bWJvbF9jbHVzdGVyIl0sIFtdLCBbInN5bWJvbF9jbHVzdGVyIl0sIFsic3ltYm9sX2NsdXN0ZXIiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgW10sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFtdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbInN5bWJvbF9jbHVzdGVyIl0sIFsic3ltYm9sX2NsdXN0ZXIiXSwgWyJzeW1ib2xfY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgW10sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFtdLCBbXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFtdLCBbXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFtdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJzeW1ib2xfY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbXSwgW10sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbXSwgW10sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbXSwgW10sIFtdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFtdLCBbXSwgW10sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiLCAiYnJva2VuX2NsdXN0ZXIiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiLCAiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgW10sIFtdLCBbXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFtdLCBbXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFtdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgW10sIFtdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiLCAiYnJva2VuX2NsdXN0ZXIiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiLCAiYnJva2VuX2NsdXN0ZXIiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiLCAiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgW10sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFtdLCBbXSwgW10sIFtdLCBbXSwgW10sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSIsICJicm9rZW5fY2x1c3RlciJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgW10sIFtdLCBbXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIiwgImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFtdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFtdLCBbXSwgWyJjb25zb25hbnRfc3lsbGFibGUiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFtdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbImNvbnNvbmFudF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFtdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbInZvd2VsX3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgW10sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJ2b3dlbF9zeWxsYWJsZSJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsic3RhbmRhbG9uZV9jbHVzdGVyIl0sIFtdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbInN0YW5kYWxvbmVfY2x1c3RlciJdLCBbXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXSwgW10sIFsiY29uc29uYW50X3N5bGxhYmxlIl0sIFsidm93ZWxfc3lsbGFibGUiXSwgWyJzdGFuZGFsb25lX2NsdXN0ZXIiXV07CnZhciBpbmRpY01hY2hpbmUgPSB7CglzdGF0ZVRhYmxlOiBzdGF0ZVRhYmxlLAoJYWNjZXB0aW5nOiBhY2NlcHRpbmcsCgl0YWdzOiB0YWdzCn07Cgp2YXIgY2F0ZWdvcmllcyA9IFsiTyIsICJJTkQiLCAiUyIsICJHQiIsICJCIiwgIkZNIiwgIkNHSiIsICJWTUFidiIsICJWTVBzdCIsICJWQWJ2IiwgIlZQc3QiLCAiQ01CbHciLCAiVlByZSIsICJWQmx3IiwgIkgiLCAiVk1CbHciLCAiQ01BYnYiLCAiTUJsdyIsICJDUyIsICJSIiwgIlNVQiIsICJNUHN0IiwgIk1QcmUiLCAiRkFidiIsICJGUHN0IiwgIkZCbHciLCAiU01BYnYiLCAiU01CbHciLCAiVk1QcmUiLCAiWldOSiIsICJaV0oiLCAiV0oiLCAiVlMiLCAiTiIsICJITiIsICJNQWJ2Il07CnZhciBkZWNvbXBvc2l0aW9ucyQxID0geyAiMjUwNyI6IFsyNTAzLCAyNDk0XSwgIjI1MDgiOiBbMjUwMywgMjUxOV0sICIyODg4IjogWzI4ODcsIDI5MDJdLCAiMjg5MSI6IFsyODg3LCAyODc4XSwgIjI4OTIiOiBbMjg4NywgMjkwM10sICIzMDE4IjogWzMwMTQsIDMwMDZdLCAiMzAxOSI6IFszMDE1LCAzMDA2XSwgIjMwMjAiOiBbMzAxNCwgMzAzMV0sICIzMTQ0IjogWzMxNDIsIDMxNThdLCAiMzI2NCI6IFszMjYzLCAzMjg1XSwgIjMyNzEiOiBbMzI3MCwgMzI4NV0sICIzMjcyIjogWzMyNzAsIDMyODZdLCAiMzI3NCI6IFszMjcwLCAzMjY2XSwgIjMyNzUiOiBbMzI3MCwgMzI2NiwgMzI4NV0sICIzNDAyIjogWzMzOTgsIDMzOTBdLCAiMzQwMyI6IFszMzk5LCAzMzkwXSwgIjM0MDQiOiBbMzM5OCwgMzQxNV0sICIzNTQ2IjogWzM1NDUsIDM1MzBdLCAiMzU0OCI6IFszNTQ1LCAzNTM1XSwgIjM1NDkiOiBbMzU0NSwgMzUzNSwgMzUzMF0sICIzNTUwIjogWzM1NDUsIDM1NTFdLCAiMzYzNSI6IFszNjYxLCAzNjM0XSwgIjM3NjMiOiBbMzc4OSwgMzc2Ml0sICIzOTU1IjogWzM5NTMsIDM5NTRdLCAiMzk1NyI6IFszOTUzLCAzOTU2XSwgIjM5NTgiOiBbNDAxOCwgMzk2OF0sICIzOTU5IjogWzQwMTgsIDM5NTMsIDM5NjhdLCAiMzk2MCI6IFs0MDE5LCAzOTY4XSwgIjM5NjEiOiBbNDAxOSwgMzk1MywgMzk2OF0sICIzOTY5IjogWzM5NTMsIDM5NjhdLCAiNjk3MSI6IFs2OTcwLCA2OTY1XSwgIjY5NzMiOiBbNjk3MiwgNjk2NV0sICI2OTc2IjogWzY5NzQsIDY5NjVdLCAiNjk3NyI6IFs2OTc1LCA2OTY1XSwgIjY5NzkiOiBbNjk3OCwgNjk2NV0sICI2OTkzNCI6IFs2OTkzNywgNjk5MjddLCAiNjk5MzUiOiBbNjk5MzgsIDY5OTI3XSwgIjcwNDc1IjogWzcwNDcxLCA3MDQ2Ml0sICI3MDQ3NiI6IFs3MDQ3MSwgNzA0ODddLCAiNzA4NDMiOiBbNzA4NDEsIDcwODQyXSwgIjcwODQ0IjogWzcwODQxLCA3MDgzMl0sICI3MDg0NiI6IFs3MDg0MSwgNzA4NDVdLCAiNzEwOTgiOiBbNzEwOTYsIDcxMDg3XSwgIjcxMDk5IjogWzcxMDk3LCA3MTA4N10gfTsKdmFyIHN0YXRlVGFibGUkMSA9IFtbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFsyLCAyLCAzLCA0LCA0LCA1LCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMCwgMTcsIDE4LCAxMSwgMTksIDIwLCAyMSwgMjIsIDAsIDAsIDIzLCAwLCAwLCAyLCAwLCAyNCwgMCwgMjVdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIDI4LCAwLCAwLCAwLCAwLCAyNywgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyOSwgMCwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCAwLCAwLCA0MSwgMzUsIDQyLCA0MywgNDQsIDQ1LCAwLCAwLCA0NiwgMCwgMCwgMCwgMzksIDAsIDAsIDQ3XSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNSwgMCwgNiwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIwLCAyMSwgMjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNSwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjAsIDIxLCAyMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA1LCAwLCA2LCA3LCA4LCA5LCAwLCAwLCAxMiwgMCwgMTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIwLCAyMSwgMjIsIDAsIDAsIDIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDUsIDAsIDYsIDcsIDAsIDksIDAsIDAsIDAsIDAsIDE0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMCwgMjEsIDIyLCAwLCAwLCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA1LCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDAsIDE2LCAwLCAwLCAxOCwgMTEsIDE5LCAyMCwgMjEsIDIyLCAwLCAwLCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMjVdLCBbMCwgMCwgMCwgMCwgMCwgNSwgMCwgNiwgNywgOCwgOSwgMCwgMTEsIDEyLCAwLCAxNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjAsIDIxLCAyMiwgMCwgMCwgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNSwgMCwgNiwgNywgMCwgOSwgMCwgMCwgMTIsIDAsIDE0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMCwgMjEsIDIyLCAwLCAwLCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA1LCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAxNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjAsIDIxLCAyMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCA1LCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMCwgMCwgMTgsIDExLCAxOSwgMjAsIDIxLCAyMiwgMCwgMCwgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDI1XSwgWzAsIDAsIDAsIDAsIDAsIDUsIDAsIDYsIDcsIDgsIDksIDAsIDExLCAxMiwgMCwgMTQsIDAsIDAsIDAsIDAsIDAsIDExLCAwLCAyMCwgMjEsIDIyLCAwLCAwLCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCA0LCA0LCA1LCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMCwgMCwgMTgsIDExLCAxOSwgMjAsIDIxLCAyMiwgMCwgMCwgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDI1XSwgWzAsIDAsIDAsIDAsIDAsIDUsIDAsIDYsIDcsIDgsIDksIDQ4LCAxMSwgMTIsIDEzLCAxNCwgNDgsIDE2LCAwLCAwLCAxOCwgMTEsIDE5LCAyMCwgMjEsIDIyLCAwLCAwLCAyMywgMCwgMCwgMCwgNDksIDAsIDAsIDI1XSwgWzAsIDAsIDAsIDAsIDAsIDUsIDAsIDYsIDcsIDgsIDksIDAsIDExLCAxMiwgMCwgMTQsIDAsIDE2LCAwLCAwLCAwLCAxMSwgMCwgMjAsIDIxLCAyMiwgMCwgMCwgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDI1XSwgWzAsIDAsIDAsIDAsIDAsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIwLCAyMSwgMjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjEsIDIyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDUsIDAsIDYsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDE0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMCwgMjEsIDIyLCAwLCAwLCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgMCwgNTEsIDBdLCBbMCwgMCwgMCwgMCwgMCwgNSwgMCwgNiwgNywgOCwgOSwgMCwgMTEsIDEyLCAwLCAxNCwgMCwgMTYsIDAsIDAsIDAsIDExLCAwLCAyMCwgMjEsIDIyLCAwLCAwLCAyMywgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3LCAyOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAzMCwgMzEsIDAsIDAsIDAsIDAsIDAsIDAsIDM4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MywgNDQsIDQ1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAwLCAzMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDMsIDQ0LCA0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyOSwgMCwgMzAsIDMxLCAzMiwgMzMsIDAsIDAsIDM2LCAwLCAzOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDMsIDQ0LCA0NSwgMCwgMCwgNDYsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjksIDAsIDMwLCAzMSwgMCwgMzMsIDAsIDAsIDAsIDAsIDM4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MywgNDQsIDQ1LCAwLCAwLCA0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyOSwgMCwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgMCwgNDAsIDAsIDAsIDQxLCAzNSwgNDIsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCA0N10sIFswLCAwLCAwLCAwLCAwLCAyOSwgMCwgMzAsIDMxLCAzMiwgMzMsIDAsIDM1LCAzNiwgMCwgMzgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAzMCwgMzEsIDAsIDMzLCAwLCAwLCAzNiwgMCwgMzgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDQxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAwLCAzMSwgMCwgMCwgMCwgMCwgMCwgMCwgMzgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzLCA0NCwgNDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjksIDAsIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzUsIDM2LCAzNywgMzgsIDM5LCA0MCwgMCwgMCwgNDEsIDM1LCA0MiwgNDMsIDQ0LCA0NSwgMCwgMCwgNDYsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3XSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAzMCwgMzEsIDMyLCAzMywgMCwgMzUsIDM2LCAwLCAzOCwgMCwgMCwgMCwgMCwgMCwgMzUsIDAsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAzMCwgMzEsIDMyLCAzMywgNTIsIDM1LCAzNiwgMzcsIDM4LCA1MiwgNDAsIDAsIDAsIDQxLCAzNSwgNDIsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCA1MywgMCwgMCwgNDddLCBbMCwgMCwgMCwgMCwgMCwgMjksIDAsIDMwLCAzMSwgMzIsIDMzLCAwLCAzNSwgMzYsIDAsIDM4LCAwLCA0MCwgMCwgMCwgMCwgMzUsIDAsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCA0N10sIFswLCAwLCAwLCAwLCAwLCAyOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDMsIDQ0LCA0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0LCA0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMF0sIFswLCAwLCAwLCAwLCAwLCAyOSwgMCwgMzAsIDMxLCAwLCAwLCAwLCAwLCAwLCAwLCAzOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDMsIDQ0LCA0NSwgMCwgMCwgNDYsIDAsIDAsIDAsIDAsIDAsIDAsIDBdLCBbMCwgMCwgMCwgMCwgMCwgMjksIDAsIDMwLCAzMSwgMzIsIDMzLCAwLCAzNSwgMzYsIDAsIDM4LCAwLCA0MCwgMCwgMCwgMCwgMzUsIDAsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDUsIDAsIDYsIDcsIDgsIDksIDQ4LCAxMSwgMTIsIDEzLCAxNCwgMCwgMTYsIDAsIDAsIDE4LCAxMSwgMTksIDIwLCAyMSwgMjIsIDAsIDAsIDIzLCAwLCAwLCAwLCAwLCAwLCAwLCAyNV0sIFswLCAwLCAwLCAwLCAwLCA1LCAwLCA2LCA3LCA4LCA5LCA0OCwgMTEsIDEyLCAxMywgMTQsIDQ4LCAxNiwgMCwgMCwgMTgsIDExLCAxOSwgMjAsIDIxLCAyMiwgMCwgMCwgMjMsIDAsIDAsIDAsIDAsIDAsIDAsIDI1XSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUxLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU0LCAwLCAwXSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAzMCwgMzEsIDMyLCAzMywgNTIsIDM1LCAzNiwgMzcsIDM4LCAwLCA0MCwgMCwgMCwgNDEsIDM1LCA0MiwgNDMsIDQ0LCA0NSwgMCwgMCwgNDYsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3XSwgWzAsIDAsIDAsIDAsIDAsIDI5LCAwLCAzMCwgMzEsIDMyLCAzMywgNTIsIDM1LCAzNiwgMzcsIDM4LCA1MiwgNDAsIDAsIDAsIDQxLCAzNSwgNDIsIDQzLCA0NCwgNDUsIDAsIDAsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCA0N10sIFswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgMCwgNTEsIDBdXTsKdmFyIGFjY2VwdGluZyQxID0gW2ZhbHNlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdHJ1ZV07CnZhciB0YWdzJDEgPSBbW10sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJpbmRlcGVuZGVudF9jbHVzdGVyIl0sIFsic3ltYm9sX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbIm51bWVyYWxfY2x1c3RlciJdLCBbImJyb2tlbl9jbHVzdGVyIl0sIFsiaW5kZXBlbmRlbnRfY2x1c3RlciJdLCBbInN5bWJvbF9jbHVzdGVyIl0sIFsic3ltYm9sX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsic3RhbmRhcmRfY2x1c3RlciJdLCBbInN0YW5kYXJkX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsic3RhbmRhcmRfY2x1c3RlciJdLCBbInN0YW5kYXJkX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsic3RhbmRhcmRfY2x1c3RlciJdLCBbInZpcmFtYV90ZXJtaW5hdGVkX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsic3RhbmRhcmRfY2x1c3RlciJdLCBbInN0YW5kYXJkX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsic3RhbmRhcmRfY2x1c3RlciJdLCBbInN0YW5kYXJkX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsic3RhbmRhcmRfY2x1c3RlciJdLCBbInN0YW5kYXJkX2NsdXN0ZXIiXSwgWyJzdGFuZGFyZF9jbHVzdGVyIl0sIFsiYnJva2VuX2NsdXN0ZXIiXSwgWyJicm9rZW5fY2x1c3RlciJdLCBbIm51bWVyYWxfY2x1c3RlciJdLCBbIm51bWJlcl9qb2luZXJfdGVybWluYXRlZF9jbHVzdGVyIl0sIFsic3RhbmRhcmRfY2x1c3RlciJdLCBbInN0YW5kYXJkX2NsdXN0ZXIiXSwgWyJudW1lcmFsX2NsdXN0ZXIiXV07CnZhciB1c2VEYXRhID0gewoJY2F0ZWdvcmllczogY2F0ZWdvcmllcywKCWRlY29tcG9zaXRpb25zOiBkZWNvbXBvc2l0aW9ucyQxLAoJc3RhdGVUYWJsZTogc3RhdGVUYWJsZSQxLAoJYWNjZXB0aW5nOiBhY2NlcHRpbmckMSwKCXRhZ3M6IHRhZ3MkMQp9OwoKLy8gQ2F0ZW9yaWVzIHVzZWQgaW4gdGhlIE9wZW5UeXBlIHNwZWM6Ci8vIGh0dHBzOi8vd3d3Lm1pY3Jvc29mdC5jb20vdHlwb2dyYXBoeS9vdGZudGRldi9kZXZhbm90L3NoYXBpbmcuYXNweAp2YXIgQ0FURUdPUklFUyA9IHsKICBYOiAxIDw8IDAsCiAgQzogMSA8PCAxLAogIFY6IDEgPDwgMiwKICBOOiAxIDw8IDMsCiAgSDogMSA8PCA0LAogIFpXTko6IDEgPDwgNSwKICBaV0o6IDEgPDwgNiwKICBNOiAxIDw8IDcsCiAgU006IDEgPDwgOCwKICBWRDogMSA8PCA5LAogIEE6IDEgPDwgMTAsCiAgUGxhY2Vob2xkZXI6IDEgPDwgMTEsCiAgRG90dGVkX0NpcmNsZTogMSA8PCAxMiwKICBSUzogMSA8PCAxMywgLy8gUmVnaXN0ZXIgU2hpZnRlciwgdXNlZCBpbiBLaG1lciBPVCBzcGVjLgogIENvZW5nOiAxIDw8IDE0LCAvLyBLaG1lci1zdHlsZSBWaXJhbWEuCiAgUmVwaGE6IDEgPDwgMTUsIC8vIEF0b21pY2FsbHktZW5jb2RlZCBsb2dpY2FsIG9yIHZpc3VhbCByZXBoYS4KICBSYTogMSA8PCAxNiwKICBDTTogMSA8PCAxNywgLy8gQ29uc29uYW50LU1lZGlhbC4KICBTeW1ib2w6IDEgPDwgMTggLy8gQXZhZ3JhaGEsIGV0YyB0aGF0IHRha2UgbWFya3MgKFNNLEEsVkQpLgp9OwoKLy8gVmlzdWFsIHBvc2l0aW9ucyBpbiBhIHN5bGxhYmxlIGZyb20gbGVmdCB0byByaWdodC4KdmFyIFBPU0lUSU9OUyA9IHsKICBTdGFydDogMSA8PCAwLAoKICBSYV9Ub19CZWNvbWVfUmVwaDogMSA8PCAxLAogIFByZV9NOiAxIDw8IDIsCiAgUHJlX0M6IDEgPDwgMywKCiAgQmFzZV9DOiAxIDw8IDQsCiAgQWZ0ZXJfTWFpbjogMSA8PCA1LAoKICBBYm92ZV9DOiAxIDw8IDYsCgogIEJlZm9yZV9TdWI6IDEgPDwgNywKICBCZWxvd19DOiAxIDw8IDgsCiAgQWZ0ZXJfU3ViOiAxIDw8IDksCgogIEJlZm9yZV9Qb3N0OiAxIDw8IDEwLAogIFBvc3RfQzogMSA8PCAxMSwKICBBZnRlcl9Qb3N0OiAxIDw8IDEyLAoKICBGaW5hbF9DOiAxIDw8IDEzLAogIFNNVkQ6IDEgPDwgMTQsCgogIEVuZDogMSA8PCAxNQp9OwoKdmFyIENPTlNPTkFOVF9GTEFHUyA9IENBVEVHT1JJRVMuQyB8IENBVEVHT1JJRVMuUmEgfCBDQVRFR09SSUVTLkNNIHwgQ0FURUdPUklFUy5WIHwgQ0FURUdPUklFUy5QbGFjZWhvbGRlciB8IENBVEVHT1JJRVMuRG90dGVkX0NpcmNsZTsKdmFyIEpPSU5FUl9GTEFHUyA9IENBVEVHT1JJRVMuWldKIHwgQ0FURUdPUklFUy5aV05KOwp2YXIgSEFMQU5UX09SX0NPRU5HX0ZMQUdTID0gQ0FURUdPUklFUy5IIHwgQ0FURUdPUklFUy5Db2VuZzsKCnZhciBJTkRJQ19DT05GSUdTID0gewogIERlZmF1bHQ6IHsKICAgIGhhc09sZFNwZWM6IGZhbHNlLAogICAgdmlyYW1hOiAwLAogICAgYmFzZVBvczogJ0xhc3QnLAogICAgcmVwaFBvczogUE9TSVRJT05TLkJlZm9yZV9Qb3N0LAogICAgcmVwaE1vZGU6ICdJbXBsaWNpdCcsCiAgICBibHdmTW9kZTogJ1ByZV9BbmRfUG9zdCcKICB9LAoKICBEZXZhbmFnYXJpOiB7CiAgICBoYXNPbGRTcGVjOiB0cnVlLAogICAgdmlyYW1hOiAweDA5NEQsCiAgICBiYXNlUG9zOiAnTGFzdCcsCiAgICByZXBoUG9zOiBQT1NJVElPTlMuQmVmb3JlX1Bvc3QsCiAgICByZXBoTW9kZTogJ0ltcGxpY2l0JywKICAgIGJsd2ZNb2RlOiAnUHJlX0FuZF9Qb3N0JwogIH0sCgogIEJlbmdhbGk6IHsKICAgIGhhc09sZFNwZWM6IHRydWUsCiAgICB2aXJhbWE6IDB4MDlDRCwKICAgIGJhc2VQb3M6ICdMYXN0JywKICAgIHJlcGhQb3M6IFBPU0lUSU9OUy5BZnRlcl9TdWIsCiAgICByZXBoTW9kZTogJ0ltcGxpY2l0JywKICAgIGJsd2ZNb2RlOiAnUHJlX0FuZF9Qb3N0JwogIH0sCgogIEd1cm11a2hpOiB7CiAgICBoYXNPbGRTcGVjOiB0cnVlLAogICAgdmlyYW1hOiAweDBBNEQsCiAgICBiYXNlUG9zOiAnTGFzdCcsCiAgICByZXBoUG9zOiBQT1NJVElPTlMuQmVmb3JlX1N1YiwKICAgIHJlcGhNb2RlOiAnSW1wbGljaXQnLAogICAgYmx3Zk1vZGU6ICdQcmVfQW5kX1Bvc3QnCiAgfSwKCiAgR3VqYXJhdGk6IHsKICAgIGhhc09sZFNwZWM6IHRydWUsCiAgICB2aXJhbWE6IDB4MEFDRCwKICAgIGJhc2VQb3M6ICdMYXN0JywKICAgIHJlcGhQb3M6IFBPU0lUSU9OUy5CZWZvcmVfUG9zdCwKICAgIHJlcGhNb2RlOiAnSW1wbGljaXQnLAogICAgYmx3Zk1vZGU6ICdQcmVfQW5kX1Bvc3QnCiAgfSwKCiAgT3JpeWE6IHsKICAgIGhhc09sZFNwZWM6IHRydWUsCiAgICB2aXJhbWE6IDB4MEI0RCwKICAgIGJhc2VQb3M6ICdMYXN0JywKICAgIHJlcGhQb3M6IFBPU0lUSU9OUy5BZnRlcl9NYWluLAogICAgcmVwaE1vZGU6ICdJbXBsaWNpdCcsCiAgICBibHdmTW9kZTogJ1ByZV9BbmRfUG9zdCcKICB9LAoKICBUYW1pbDogewogICAgaGFzT2xkU3BlYzogdHJ1ZSwKICAgIHZpcmFtYTogMHgwQkNELAogICAgYmFzZVBvczogJ0xhc3QnLAogICAgcmVwaFBvczogUE9TSVRJT05TLkFmdGVyX1Bvc3QsCiAgICByZXBoTW9kZTogJ0ltcGxpY2l0JywKICAgIGJsd2ZNb2RlOiAnUHJlX0FuZF9Qb3N0JwogIH0sCgogIFRlbHVndTogewogICAgaGFzT2xkU3BlYzogdHJ1ZSwKICAgIHZpcmFtYTogMHgwQzRELAogICAgYmFzZVBvczogJ0xhc3QnLAogICAgcmVwaFBvczogUE9TSVRJT05TLkFmdGVyX1Bvc3QsCiAgICByZXBoTW9kZTogJ0V4cGxpY2l0JywKICAgIGJsd2ZNb2RlOiAnUG9zdF9Pbmx5JwogIH0sCgogIEthbm5hZGE6IHsKICAgIGhhc09sZFNwZWM6IHRydWUsCiAgICB2aXJhbWE6IDB4MENDRCwKICAgIGJhc2VQb3M6ICdMYXN0JywKICAgIHJlcGhQb3M6IFBPU0lUSU9OUy5BZnRlcl9Qb3N0LAogICAgcmVwaE1vZGU6ICdJbXBsaWNpdCcsCiAgICBibHdmTW9kZTogJ1Bvc3RfT25seScKICB9LAoKICBNYWxheWFsYW06IHsKICAgIGhhc09sZFNwZWM6IHRydWUsCiAgICB2aXJhbWE6IDB4MEQ0RCwKICAgIGJhc2VQb3M6ICdMYXN0JywKICAgIHJlcGhQb3M6IFBPU0lUSU9OUy5BZnRlcl9NYWluLAogICAgcmVwaE1vZGU6ICdMb2dfUmVwaGEnLAogICAgYmx3Zk1vZGU6ICdQcmVfQW5kX1Bvc3QnCiAgfSwKCiAgLy8gSGFuZGxlZCBieSBVbml2ZXJzYWxTaGFwZXIKICAvLyBTaW5oYWxhOiB7CiAgLy8gICBoYXNPbGRTcGVjOiBmYWxzZSwKICAvLyAgIHZpcmFtYTogMHgwRENBLAogIC8vICAgYmFzZVBvczogJ0xhc3RfU2luaGFsYScsCiAgLy8gICByZXBoUG9zOiBQT1NJVElPTlMuQWZ0ZXJfTWFpbiwKICAvLyAgIHJlcGhNb2RlOiAnRXhwbGljaXQnLAogIC8vICAgYmx3Zk1vZGU6ICdQcmVfQW5kX1Bvc3QnCiAgLy8gfSwKCiAgS2htZXI6IHsKICAgIGhhc09sZFNwZWM6IGZhbHNlLAogICAgdmlyYW1hOiAweDE3RDIsCiAgICBiYXNlUG9zOiAnRmlyc3QnLAogICAgcmVwaFBvczogUE9TSVRJT05TLlJhX1RvX0JlY29tZV9SZXBoLAogICAgcmVwaE1vZGU6ICdWaXNfUmVwaGEnLAogICAgYmx3Zk1vZGU6ICdQcmVfQW5kX1Bvc3QnCiAgfQp9OwoKLy8gQWRkaXRpb25hbCBkZWNvbXBvc2l0aW9ucyB0aGF0IGFyZW4ndCBpbiBVbmljb2RlCnZhciBJTkRJQ19ERUNPTVBPU0lUSU9OUyA9IHsKICAvLyBLaG1lcgogIDB4MTdCRTogWzB4MTdDMSwgMHgxN0JFXSwKICAweDE3QkY6IFsweDE3QzEsIDB4MTdCRl0sCiAgMHgxN0MwOiBbMHgxN0MxLCAweDE3QzBdLAogIDB4MTdDNDogWzB4MTdDMSwgMHgxN0M0XSwKICAweDE3QzU6IFsweDE3QzEsIDB4MTdDNV0KfTsKCnZhciBfY2xhc3MkNjsKdmFyIF90ZW1wJDI7CnZhciBkZWNvbXBvc2l0aW9ucyA9IHVzZURhdGEuZGVjb21wb3NpdGlvbnM7Cgp2YXIgdHJpZSQxID0gbmV3IFVuaWNvZGVUcmllKEJ1ZmZlcigiQUJFQUFBQUFBQUFBQU1LZ0FiRU5Udkx0blgrc0hVVVZ4L2YxM25kL3ZIZjdibCtGUkdMN1IwT0pNY1dZcGhCcmlta1ZDU0pSMnhpRWFMRUdRN0FrQkdvd2JZUlNnajhLMkIvR2twUllFNndsUVN5SktDYWdyU2xHa21xc3FVWk1ZN1MyQ1drZ3FRVmlRU2t0NEhmdXpyeDc3dHlaMmZtMXUrL1JQY2tudXpzN08zUG1uRE96czdONzN6dGVTNUtYd0t2Z0RUQ25uaVR2QmZQQkplQVZwUDJ2RnI2OUdHVXRBa3ZBTW9keXIwRGVUNEJyd0Nwd1BWZ0RiZ2EzZ2ErRGpZYnlsdUxjQ3ZCTjhGMndHV3dITzhFajREanlQSWJ0ejBEQ2VacHZENENENEUvZ2IrQW9PQUZPZ3RQZ0xLaU5Ka2tiVElLTHdBTHdmdkFoOEdHd0hGd0ZQZzJ1QXplQ204RnQ0RTV3TjdnUFBBaStEMzRBZmdSK0FwN2t4OCtBWjhIdndaL0JFWEFNdkFoZUFhK0JjNk9wenZWR2tuVEFCWTMwZUI2MkM4R2xZREZZQ3BhRHEvbjV6Mko3UFZnRGJnRzNOMUtick9kYld6YnkvTi9HOWk2d2xSOC93TGViVU5jT2xsN3ZYN1BMc1E0YmRwQXk5MkIvTDNnSzdBTy9BMzhFZndYL0FDK0FreVQvbTN4N21xZHRZejdHZnEyWkpPUGdQYzNVWHUvRDl1Sm1tbWNSVDF1QzdUSndaVE9OSnhGTDErSjRKYmdCckFHM2dOdjVOZXY1ZGhPMm0zbDU0cnF0T043Uk5MZDFWOFo1YXVNZkkrOFdidnYxMlA0VXg3OEF2eVpsL0JiN2Z3RDM0SHdIL0VWUi90OHQ2clJscllnRmxIbk1zZHlYSXVwUkZQK0d6djhCYjRDa2xTU2pyVFI5YnoyMXVaeC9Oajh2K3VJRk9KNEhGbkpvM2tXdE5HNldrUFN6QmwxWWJDOGplVmZ4K3ErUjlQZzQ4bHhOOGpGZGhkOCswMUxyTFRDZHE2aW84R05iMWE4cUtpb3FLaW9xS2lvYzJjYlhHY3JXUTJZbmY5YTlybVYvelZ1YTlEYzE2Vi9nejhwZnh2YXI0QTZ3QWR3TDdnZGJ3VVBnaCtCUjhBUjRxcFd1TGUzRDlnQTRDQTZESStBb09BRk90ZEwxbk5leGZZczkzN2Z4REE4dWJLZjF6bXYzZFZpSS9VdmI5bTJzcUtpb3FBaUhyVnRlaHJIM1RLMi8zbDRXWmR1aW9xSWlEcStSZDFKYmVmOWVobkhtU25DdE5OZjduT1BjcjhQSGlsTzhqcmZCRjl2OTk2bGZ3ZjZ0VXBsM3RQdnZkU2pzdmN3R25MdDNHc3cva3prcEs4Q2RZSDgzbXkzSWQwaVQ5MVdrTDV4TWt0WGdJZkQ4NU9ENTR6amZtWXU1T0ZnTjdoMUxrbWRCTWc1ZmdidkFDaHp2NDl1amZFdVozeGxPazdrUmVUYVNmTC9CL2psK2ZNWHNKTGtiN0FjUGo4VGxIQy96c2duWWN5TGQzelNoMXZHQUpyMmlvcUtpSW4vZUtYa01qbjMvY1dGNXQvejZ5MzcrSzV1cndQMllCMzZ2UGZ3OHlyN3plUmpwdThnOGNUZjJIMituODlFdGl2TEU5M2ZzMjdFei9CcjJ2TTIrcVdQbC9aeVg5U3RGZlF4VzV2NzI0UFB4elh6N1hIdTRQcHM1SnZ0bWlxMTNzem16ZlAwaGxIa1lIR24zNThiSGVEMHZZdnN5K0sra3o5dnQvank4Z1Q0MEcxdzRSdWEwUE45OG5uYUdmL2UxRyttWElPMkRZOFA2WHo3V1B6N0t5LzdvbUowUEJmZjQrQjkxZkFxc0FwOEhYd0kzZ1IwNHR4YmJkV0REV0RwUC9nN1l4czZCWFdBUDJBdWVKSG8rTTViT3B3K0N3K0FJT0FwT2dGTVc3WGtkZWM2QWtYSDErUWZneXpiT1RZNzNqeS9DL2dKKy9DQ09QNEQ5eGZ6NEk5aCtURk1XdGY5U1JXelp3cTdmMHlpL0w5dm9XU1JiRGZWL2NseC8zVHVLZmpvVDI2L2lYODEzVVJ4NHRpVkczYXkvc2ZGdUplbmI3SjUwQTRtcjFkaS9DWnpMS1o2eTJyZXVudXA0cXpUK2ZNMHdIcDBQVUQ5K0E3YllOSjVmbjNlTlAvRnQ1YmMwK1M0bjkvbDFHaitLODJ6ZXNkMXdmajNmWjc5aDJZeXlWdkxqN2RqZkNSNHhqSkV5dXkxK1MvRnlEdC9NUHdvZG41aEI4YXhyeHk5blNCdFlqT3lIcnMrQlErQjU4RSt1K3dzV2JXQnRwYi9oWUw4UnVBL3BKOGZUMkdmZlgrd2wrZGFTYTA4ano5bnhORzJrNDk2M1hCRy9aVmhwVVM1NzNtaDNCdFBvN3gvRWI3cEUyeWQ1WHZac3NZL00vUlpMYzlTTGVEc2ZENWdmVGlkaTkvL3B3cnpXdTd0OWxLY043ZHh5bnRoQWg4dmNLclF1MWZySFRHS0JORjY2Mktmb09YVTFGc2FGeGU2eDJrakNsa0JuR3ZYeHdYMGJ5dFo1dW5LK1M5bjJqeGFiVGM1TTBIVWFJeVRyZkZhK0xqbWZsYzlYejdKdE5kUGE0ZUt6NldBUGxiNWw2eGZMQnpvcFd4Y2ZuY3ZTZjdySFJKazJLU04yYktSc3ZjdTJVWm14VkliOXFkNTUxZThyWmNURVJHdVErcXdJakVSa2psMitkak9saFdmcGlibnAvcXhtUDkyRlZyMS9iYzlHWXh4dUk1bzNVemR1a3pZcGorSDZuT3hyYTluSGlha3NqaERkc2FzUGU5Y2EvQ3ZPVTFHVndVVDR0OFA5MjFINFQ4Z3Nua2RJaCtkbi9wWHJVMG1uT1p3MjFDYkp2MVA1TFAwcjRqdGtiTEgxNzFCYkN2YXZuRmZlWjhMOEsyd3YvQ3VRUlU2bi9xV1NOU2JyMm1POHh0Sy9VK01xNlkvMXlReUZKSEh0djhLbjJ1T0MvR3ZiZjJWRVB4SjlTdmhZNWQrUSt5MjFpUnhMcnVPenNZNk1XR3JPa1BIWjFiK2pGdVB6cUVYL1ZjbW9aa3lJUFQ1M2szNi9EWm5yTWQrSy9EYmpzNmt2Nis2VllsOU9VK1dUMDdUcGx2TXZXV2hmVm8zZjR0NDhTK3JiaklabC8xYjVYeWQ1dkpkUWlUeWY3dFVkTWxibjBKOWQvY242YzdNNURPMVRORjArYm1UMFozcWRLYWFvWGVnMUx2N05FaHVmenlULzZ2SUtFZU8xalgvcHNkaTM4YTg4OXFwa1N0Y0kvdTEyVTN6RTFSZSsvWXY2UU53dmRUREpHaTl0MnBzMVh0S1lESjBQbWNaS2NVODEyc1J4dm1zN0o0N21aNWMrU1dKRDVMUFJnNHFxaituV0w4UTVzUlZyR2FyMUVHMHNPSTZuZEgzRFZXTDd3cGV1d2FZNk8xTmgxOU4rT3FzNXVJN0V0bzNhSUN4TnJDbjVyQXVaN0NuMmJkSnRmWlBsTC9rOExkK2tpNnY5RTU2WFBVdlQ1Mm1WL1lWdm1NajJaejhURXVOTVR4Zkh1RmZGVUo2ME9McnoxdXRPRG5GRzQ3ZkxiU2pYeTB4U3k0Z042M0V5d2xoTXhXY05tSzcxc3Zzemk1T0dUdmRKZTNydGQ4aWZCNkkvbUtCcjFhcDd1VS9zcXFUc01iK0g1ZnhCRnl1cSt5cUxuZDdjbWozM1R3eU9WVk93dWozblZYUnRRdFVHV1I5anpJNmtlY1pyS1NLUHVGYWtVMmhabVhYWk1EbHNTMVc5akJhdnY2ZUhwZjNFdGZKN21Ld1lWMGxYMmc5RlZZNU4rVW5nOWFIMTU5MCtuM0tMZ0VyZWRmaWV6NnU5c3Zpc1kvU3VrOUpzbmtsaTFhK0MxbS9UN3J6cWQ1VVk5bWZpWFg5UjkyaWJkWlVJYXdUQzk2YjFHQm42ckRHMUpzUHYvYjM5MlNraVhWVUdteU4wTE81TFlpNDZaZi9BZGMvUU1hQ284VHRHL2JIMVovVHNXMVFmVVBSam0yY1plZTVQUmFUMzNsRWJuaGxNYXg0cWUxby9ZOGEwaWNkYW9Pdjlic2grSGo2am9udWVvR3RIdW1jTWxYOWx4THhYcTcvRDg0ZlN6em5HdDZydFVlclh4WVU0Ny9JY1BlRzN2cUJiSjFTdEVUWnFnOWZTMkFrZC8wT3ZwKy9DeEQzUCsvNmJRd3pKdHN2eWg1dytYamVYSDlLZlhHSDMvVmJTWDR0UzRYb2Z0UFpibnZjeXhYMUc1UXZXMXdiV1RrYnM3YzNtVGNvNk5XT0RiZHhrM1I5bEdaby9hR3hoaWtuVG1FVFhMVnMxYzkwdTkrbUJHQ2Y2aHM2ZnNtVHEyOXN4UHY4ZDgyQ3VoQ3BOakdOamczMWJsR0hyejFpNDFoZDZudVl6YlUzWGhMUXpqN0p0NjdPdHcwdVhVZERvSDhlNEYvam9NZFZ1aTJkTUpjM0UrVGV0dnI2akV0UG5QaEphVnd6OVk3VERWbHgxcW5maXRsRWJ0emxUVkQwcVgvcGNtMWVzeEk2NVBPM21VNGVOcnI1U1pNejQ2RkRFK2FJbGI1dG50YjFvL1dPVUVUc1c4NDdwdk5wYVpIMjI1ZVVwTm5yUzl5RHk5d1R5c3lyOVhWT2U2MytxZDNNNmU0WDZQdGQxRHBjMVNkVjUzWnFGYWcxaHBQK2JFNWY0aXZZNzRCelhpbHpXV1cxK1MwVGpKbmc5MUdkOXdtYk5ncE1WejZXOGQ3R0pad1d0V3A4cCsrYzhmcGpXMFZ6ZmYzZEpmekd1b2Vyc0V0bm1walZMdXBZNDhINm83bjgvQytrdkpuK0xjZDZxM1FIeDN1c3ZaYXgzVzhhcHZQNnJlditVSlNIZmlDWWUvaDJhVHdUYVJpNURPMjhaU2Q5ek5oVGZKOGIyamU3ZHJPbzlIdE5OYlBNVzAzek9wcTJxTnFuS0ZOKzBodWhsTXllMlBlOVRkemZDZWRmeE1sUmZHN3hqbmNhSjdmaVhNWVprM1grWnZ1S2JYQ0doOHk4WEg4VHliYWpQVGZxNHRqRzIvcWIwUkpPM1NCMTliYTJTTXVvTmJXOFIvZzY1M3FhOXNkc1JZc3NzdStaeFBzcyt0bmF5RmQ5NHlqb2ZFaStoWmR2bzczcTlqZDN5aXNVWWJmRXBROVhtTXFVSW0yZkZaaDR4a1plRTFCTkRMNXYrWmNxWGgvOTBiU3dqZmx6OFUwUWNGV0h6UE9weTBhbU0rc3RxZjFhZDdMbHRWUHFXbUczcDMrR2lJdkxKZjhkdVlBM05jQndiV1Jwa0RYbW83UlArejVFNis4WHN3ejUxMmRiclcyYU1OcnBLYUJ0OXk0NVZSMmo5ZWZoQVFML1BGMzhYYWRxOTA3TllDNWRwWkx5M2tNWDZQVUhnZUdHUzNuZm9QbjlyT2JKOXMvNHVNbnRuU3QvSjVUWCsyWlJodEZjQjhaZ1ZteVpiaXQ4R0NkLzcvQzdFT2NZSzdMZHlqTmhJbEw4MW5xTi9YZjltT0h0L2Fub3ZQNFgwdHllbS9PVVpGOVRtc2NZMm56RXVscTk2WmVWd3YyQnh4bndrM3M5bmpUOG0vWVdPS2wxOTlmZTUzdFRYeXU1RExvamZLV1hlajZSM1JBUHREZjFleC9QdnRkSjhRN2FQN0h0NlhwZFhTSmY4L3dNZFF1Uy9qMC9IdEtueTlLYlQrb1QySzJFVHVXN1R0MDlVc3M1bkNkV2hqUHVNVFh6cnp0TzRGSE15K1Y2VEphSDlJNisyQzVIUHE5b2M4eGxLUnZhNXJGOE0vN3RDMjYvNkJzTkZpdlEvL2UxcFZzeVAxOVZyTnJIMUQ1V2k3b1VEZFZwOFE1SFZyMXp0bHpYUHRIMkdjMzArbE1YM2VkSDNlY20zZnAwK1BzL0lQdldINk9waVY3bWVFTWxienlJa3BpMWp0RFUwUG1tNm5NZDBqVThiWEs3TjBqV2tiL2pvSHlOZWJmV2d0ckpwYzBoN1FpUVAyNGFLcWN3WVBuVFJJVW1HNjNmUlE1VlhMc2VrZ3k1TnRWWFZhZExmcGp6VjlTNnhZbnVOcmkxNTlabXNtTENwSjgvNlhTUkdPYUg2NTlIK0dMWXR3aGQ1MXh2cTMxQjlRbTBVYXZNODRxaG9LYU5PbmZ3ZiIsImJhc2U2NCIpKTsKdmFyIHN0YXRlTWFjaGluZSA9IG5ldyBTdGF0ZU1hY2hpbmUoaW5kaWNNYWNoaW5lKTsKCi8qKgogKiBUaGUgSW5kaWNTaGFwZXIgc3VwcG9ydHMgaW5kaWMgc2NyaXB0cyBlLmcuIERldmFuYWdhcmksIEthbm5hZGEsIGV0Yy4KICogQmFzZWQgb24gY29kZSBmcm9tIEhhcmZidXp6OiBodHRwczovL2dpdGh1Yi5jb20vYmVoZGFkL2hhcmZidXp6L2Jsb2IvbWFzdGVyL3NyYy9oYi1vdC1zaGFwZS1jb21wbGV4LWluZGljLmNjCiAqLwp2YXIgSW5kaWNTaGFwZXIgPSAoX3RlbXAkMiA9IF9jbGFzcyQ2ID0gZnVuY3Rpb24gKF9EZWZhdWx0U2hhcGVyKSB7CiAgX2luaGVyaXRzKEluZGljU2hhcGVyLCBfRGVmYXVsdFNoYXBlcik7CgogIGZ1bmN0aW9uIEluZGljU2hhcGVyKCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEluZGljU2hhcGVyKTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0RlZmF1bHRTaGFwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7CiAgfQoKICBJbmRpY1NoYXBlci5wbGFuRmVhdHVyZXMgPSBmdW5jdGlvbiBwbGFuRmVhdHVyZXMocGxhbikgewogICAgcGxhbi5hZGRTdGFnZShzZXR1cFN5bGxhYmxlcyk7CgogICAgcGxhbi5hZGRTdGFnZShbJ2xvY2wnLCAnY2NtcCddKTsKCiAgICBwbGFuLmFkZFN0YWdlKGluaXRpYWxSZW9yZGVyaW5nKTsKCiAgICBwbGFuLmFkZFN0YWdlKCdudWt0Jyk7CiAgICBwbGFuLmFkZFN0YWdlKCdha2huJyk7CiAgICBwbGFuLmFkZFN0YWdlKCdycGhmJywgZmFsc2UpOwogICAgcGxhbi5hZGRTdGFnZSgncmtyZicpOwogICAgcGxhbi5hZGRTdGFnZSgncHJlZicsIGZhbHNlKTsKICAgIHBsYW4uYWRkU3RhZ2UoJ2Jsd2YnLCBmYWxzZSk7CiAgICBwbGFuLmFkZFN0YWdlKCdhYnZmJywgZmFsc2UpOwogICAgcGxhbi5hZGRTdGFnZSgnaGFsZicsIGZhbHNlKTsKICAgIHBsYW4uYWRkU3RhZ2UoJ3BzdGYnLCBmYWxzZSk7CiAgICBwbGFuLmFkZFN0YWdlKCd2YXR1Jyk7CiAgICBwbGFuLmFkZFN0YWdlKCdjamN0Jyk7CiAgICBwbGFuLmFkZFN0YWdlKCdjZmFyJywgZmFsc2UpOwoKICAgIHBsYW4uYWRkU3RhZ2UoZmluYWxSZW9yZGVyaW5nKTsKCiAgICBwbGFuLmFkZFN0YWdlKHsKICAgICAgbG9jYWw6IFsnaW5pdCddLAogICAgICBnbG9iYWw6IFsncHJlcycsICdhYnZzJywgJ2Jsd3MnLCAncHN0cycsICdoYWxuJywgJ2Rpc3QnLCAnYWJ2bScsICdibHdtJywgJ2NhbHQnLCAnY2xpZyddCiAgICB9KTsKCiAgICAvLyBTZXR1cCB0aGUgaW5kaWMgY29uZmlnIGZvciB0aGUgc2VsZWN0ZWQgc2NyaXB0CiAgICBwbGFuLnVuaWNvZGVTY3JpcHQgPSBmcm9tT3BlblR5cGUocGxhbi5zY3JpcHQpOwogICAgcGxhbi5pbmRpY0NvbmZpZyA9IElORElDX0NPTkZJR1NbcGxhbi51bmljb2RlU2NyaXB0XSB8fCBJTkRJQ19DT05GSUdTLkRlZmF1bHQ7CiAgICBwbGFuLmlzT2xkU3BlYyA9IHBsYW4uaW5kaWNDb25maWcuaGFzT2xkU3BlYyAmJiBwbGFuLnNjcmlwdFtwbGFuLnNjcmlwdC5sZW5ndGggLSAxXSAhPT0gJzInOwoKICAgIC8vIFRPRE86IHR1cm4gb2ZmIGtlcm4gKEtobWVyKSBhbmQgbGlnYSBmZWF0dXJlcy4KICB9OwoKICBJbmRpY1NoYXBlci5hc3NpZ25GZWF0dXJlcyA9IGZ1bmN0aW9uIGFzc2lnbkZlYXR1cmVzKHBsYW4sIGdseXBocykgewogICAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AoaSkgewogICAgICB2YXIgY29kZXBvaW50ID0gZ2x5cGhzW2ldLmNvZGVQb2ludHNbMF07CiAgICAgIHZhciBkID0gSU5ESUNfREVDT01QT1NJVElPTlNbY29kZXBvaW50XSB8fCBkZWNvbXBvc2l0aW9uc1tjb2RlcG9pbnRdOwogICAgICBpZiAoZCkgewogICAgICAgIHZhciBkZWNvbXBvc2VkID0gZC5tYXAoZnVuY3Rpb24gKGMpIHsKICAgICAgICAgIHZhciBnID0gcGxhbi5mb250LmdseXBoRm9yQ29kZVBvaW50KGMpOwogICAgICAgICAgcmV0dXJuIG5ldyBHbHlwaEluZm8ocGxhbi5mb250LCBnLmlkLCBbY10sIGdseXBoc1tpXS5mZWF0dXJlcyk7CiAgICAgICAgfSk7CgogICAgICAgIGdseXBocy5zcGxpY2UuYXBwbHkoZ2x5cGhzLCBbaSwgMV0uY29uY2F0KGRlY29tcG9zZWQpKTsKICAgICAgfQogICAgfTsKCiAgICAvLyBEZWNvbXBvc2Ugc3BsaXQgbWF0cmFzCiAgICAvLyBUT0RPOiBkbyB0aGlzIGluIGEgbW9yZSBnZW5lcmFsIHVuaWNvZGUgbm9ybWFsaXplcgogICAgZm9yICh2YXIgaSA9IGdseXBocy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICBfbG9vcChpKTsKICAgIH0KICB9OwoKICByZXR1cm4gSW5kaWNTaGFwZXI7Cn0oRGVmYXVsdFNoYXBlciksIF9jbGFzcyQ2Lnplcm9NYXJrV2lkdGhzID0gJ05PTkUnLCBfdGVtcCQyKTsKZnVuY3Rpb24gaW5kaWNDYXRlZ29yeShnbHlwaCkgewogIHJldHVybiB0cmllJDEuZ2V0KGdseXBoLmNvZGVQb2ludHNbMF0pID4+IDg7Cn0KCmZ1bmN0aW9uIGluZGljUG9zaXRpb24oZ2x5cGgpIHsKICByZXR1cm4gMSA8PCAodHJpZSQxLmdldChnbHlwaC5jb2RlUG9pbnRzWzBdKSAmIDB4ZmYpOwp9Cgp2YXIgSW5kaWNJbmZvID0gZnVuY3Rpb24gSW5kaWNJbmZvKGNhdGVnb3J5LCBwb3NpdGlvbiwgc3lsbGFibGVUeXBlLCBzeWxsYWJsZSkgewogIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBJbmRpY0luZm8pOwoKICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnk7CiAgdGhpcy5wb3NpdGlvbiA9IHBvc2l0aW9uOwogIHRoaXMuc3lsbGFibGVUeXBlID0gc3lsbGFibGVUeXBlOwogIHRoaXMuc3lsbGFibGUgPSBzeWxsYWJsZTsKfTsKCmZ1bmN0aW9uIHNldHVwU3lsbGFibGVzKGZvbnQsIGdseXBocykgewogIHZhciBzeWxsYWJsZSA9IDA7CiAgdmFyIGxhc3QgPSAwOwogIGZvciAodmFyIF9pdGVyYXRvciA9IHN0YXRlTWFjaGluZS5tYXRjaChnbHlwaHMubWFwKGluZGljQ2F0ZWdvcnkpKSwgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICB2YXIgX3JlZjsKCiAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgfSBlbHNlIHsKICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgIH0KCiAgICB2YXIgX3JlZjIgPSBfcmVmLAogICAgICAgIHN0YXJ0ID0gX3JlZjJbMF0sCiAgICAgICAgZW5kID0gX3JlZjJbMV0sCiAgICAgICAgdGFncyA9IF9yZWYyWzJdOwoKICAgIGlmIChzdGFydCA+IGxhc3QpIHsKICAgICAgKytzeWxsYWJsZTsKICAgICAgZm9yICh2YXIgX2kyID0gbGFzdDsgX2kyIDwgc3RhcnQ7IF9pMisrKSB7CiAgICAgICAgZ2x5cGhzW19pMl0uc2hhcGVySW5mbyA9IG5ldyBJbmRpY0luZm8oQ0FURUdPUklFUy5YLCBQT1NJVElPTlMuRW5kLCAnbm9uX2luZGljX2NsdXN0ZXInLCBzeWxsYWJsZSk7CiAgICAgIH0KICAgIH0KCiAgICArK3N5bGxhYmxlOwoKICAgIC8vIENyZWF0ZSBzaGFwZXIgaW5mbwogICAgZm9yICh2YXIgX2kzID0gc3RhcnQ7IF9pMyA8PSBlbmQ7IF9pMysrKSB7CiAgICAgIGdseXBoc1tfaTNdLnNoYXBlckluZm8gPSBuZXcgSW5kaWNJbmZvKDEgPDwgaW5kaWNDYXRlZ29yeShnbHlwaHNbX2kzXSksIGluZGljUG9zaXRpb24oZ2x5cGhzW19pM10pLCB0YWdzWzBdLCBzeWxsYWJsZSk7CiAgICB9CgogICAgbGFzdCA9IGVuZCArIDE7CiAgfQoKICBpZiAobGFzdCA8IGdseXBocy5sZW5ndGgpIHsKICAgICsrc3lsbGFibGU7CiAgICBmb3IgKHZhciBpID0gbGFzdDsgaSA8IGdseXBocy5sZW5ndGg7IGkrKykgewogICAgICBnbHlwaHNbaV0uc2hhcGVySW5mbyA9IG5ldyBJbmRpY0luZm8oQ0FURUdPUklFUy5YLCBQT1NJVElPTlMuRW5kLCAnbm9uX2luZGljX2NsdXN0ZXInLCBzeWxsYWJsZSk7CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBpc0NvbnNvbmFudChnbHlwaCkgewogIHJldHVybiBnbHlwaC5zaGFwZXJJbmZvLmNhdGVnb3J5ICYgQ09OU09OQU5UX0ZMQUdTOwp9CgpmdW5jdGlvbiBpc0pvaW5lcihnbHlwaCkgewogIHJldHVybiBnbHlwaC5zaGFwZXJJbmZvLmNhdGVnb3J5ICYgSk9JTkVSX0ZMQUdTOwp9CgpmdW5jdGlvbiBpc0hhbGFudE9yQ29lbmcoZ2x5cGgpIHsKICByZXR1cm4gZ2x5cGguc2hhcGVySW5mby5jYXRlZ29yeSAmIEhBTEFOVF9PUl9DT0VOR19GTEFHUzsKfQoKZnVuY3Rpb24gd291bGRTdWJzdGl0dXRlKGdseXBocywgZmVhdHVyZSkgewogIGZvciAodmFyIF9pdGVyYXRvcjIgPSBnbHlwaHMsIF9pc0FycmF5MiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMiksIF9pNCA9IDAsIF9pdGVyYXRvcjIgPSBfaXNBcnJheTIgPyBfaXRlcmF0b3IyIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjIpOzspIHsKICAgIHZhciBfZ2x5cGgkZmVhdHVyZXM7CgogICAgdmFyIF9yZWYzOwoKICAgIGlmIChfaXNBcnJheTIpIHsKICAgICAgaWYgKF9pNCA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgIF9yZWYzID0gX2l0ZXJhdG9yMltfaTQrK107CiAgICB9IGVsc2UgewogICAgICBfaTQgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgaWYgKF9pNC5kb25lKSBicmVhazsKICAgICAgX3JlZjMgPSBfaTQudmFsdWU7CiAgICB9CgogICAgdmFyIGdseXBoID0gX3JlZjM7CgogICAgZ2x5cGguZmVhdHVyZXMgPSAoX2dseXBoJGZlYXR1cmVzID0ge30sIF9nbHlwaCRmZWF0dXJlc1tmZWF0dXJlXSA9IHRydWUsIF9nbHlwaCRmZWF0dXJlcyk7CiAgfQoKICB2YXIgR1NVQiA9IGdseXBoc1swXS5fZm9udC5fbGF5b3V0RW5naW5lLmVuZ2luZS5HU1VCUHJvY2Vzc29yOwogIEdTVUIuYXBwbHlGZWF0dXJlcyhbZmVhdHVyZV0sIGdseXBocyk7CgogIHJldHVybiBnbHlwaHMubGVuZ3RoID09PSAxOwp9CgpmdW5jdGlvbiBjb25zb25hbnRQb3NpdGlvbihmb250LCBjb25zb25hbnQsIHZpcmFtYSkgewogIHZhciBnbHlwaHMgPSBbdmlyYW1hLCBjb25zb25hbnQsIHZpcmFtYV07CiAgaWYgKHdvdWxkU3Vic3RpdHV0ZShnbHlwaHMuc2xpY2UoMCwgMiksICdibHdmJykgfHwgd291bGRTdWJzdGl0dXRlKGdseXBocy5zbGljZSgxLCAzKSwgJ2Jsd2YnKSkgewogICAgcmV0dXJuIFBPU0lUSU9OUy5CZWxvd19DOwogIH0gZWxzZSBpZiAod291bGRTdWJzdGl0dXRlKGdseXBocy5zbGljZSgwLCAyKSwgJ3BzdGYnKSB8fCB3b3VsZFN1YnN0aXR1dGUoZ2x5cGhzLnNsaWNlKDEsIDMpLCAncHN0ZicpKSB7CiAgICByZXR1cm4gUE9TSVRJT05TLlBvc3RfQzsKICB9IGVsc2UgaWYgKHdvdWxkU3Vic3RpdHV0ZShnbHlwaHMuc2xpY2UoMCwgMiksICdwcmVmJykgfHwgd291bGRTdWJzdGl0dXRlKGdseXBocy5zbGljZSgxLCAzKSwgJ3ByZWYnKSkgewogICAgcmV0dXJuIFBPU0lUSU9OUy5Qb3N0X0M7CiAgfQoKICByZXR1cm4gUE9TSVRJT05TLkJhc2VfQzsKfQoKZnVuY3Rpb24gaW5pdGlhbFJlb3JkZXJpbmcoZm9udCwgZ2x5cGhzLCBwbGFuKSB7CiAgdmFyIGluZGljQ29uZmlnID0gcGxhbi5pbmRpY0NvbmZpZzsKICB2YXIgZmVhdHVyZXMgPSBmb250Ll9sYXlvdXRFbmdpbmUuZW5naW5lLkdTVUJQcm9jZXNzb3IuZmVhdHVyZXM7CgogIHZhciBkb3R0ZWRDaXJjbGUgPSBmb250LmdseXBoRm9yQ29kZVBvaW50KDB4MjVjYykuaWQ7CiAgdmFyIHZpcmFtYSA9IGZvbnQuZ2x5cGhGb3JDb2RlUG9pbnQoaW5kaWNDb25maWcudmlyYW1hKS5pZDsKICBpZiAodmlyYW1hKSB7CiAgICB2YXIgaW5mbyA9IG5ldyBHbHlwaEluZm8oZm9udCwgdmlyYW1hLCBbaW5kaWNDb25maWcudmlyYW1hXSk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdseXBocy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoZ2x5cGhzW2ldLnNoYXBlckluZm8ucG9zaXRpb24gPT09IFBPU0lUSU9OUy5CYXNlX0MpIHsKICAgICAgICBnbHlwaHNbaV0uc2hhcGVySW5mby5wb3NpdGlvbiA9IGNvbnNvbmFudFBvc2l0aW9uKGZvbnQsIGdseXBoc1tpXS5jb3B5KCksIGluZm8pOwogICAgICB9CiAgICB9CiAgfQoKICBmb3IgKHZhciBzdGFydCA9IDAsIGVuZCA9IG5leHRTeWxsYWJsZShnbHlwaHMsIDApOyBzdGFydCA8IGdseXBocy5sZW5ndGg7IHN0YXJ0ID0gZW5kLCBlbmQgPSBuZXh0U3lsbGFibGUoZ2x5cGhzLCBzdGFydCkpIHsKICAgIHZhciBfZ2x5cGhzJHN0YXJ0JHNoYXBlckkgPSBnbHlwaHNbc3RhcnRdLnNoYXBlckluZm8sCiAgICAgICAgY2F0ZWdvcnkgPSBfZ2x5cGhzJHN0YXJ0JHNoYXBlckkuY2F0ZWdvcnksCiAgICAgICAgc3lsbGFibGVUeXBlID0gX2dseXBocyRzdGFydCRzaGFwZXJJLnN5bGxhYmxlVHlwZTsKCgogICAgaWYgKHN5bGxhYmxlVHlwZSA9PT0gJ3N5bWJvbF9jbHVzdGVyJyB8fCBzeWxsYWJsZVR5cGUgPT09ICdub25faW5kaWNfY2x1c3RlcicpIHsKICAgICAgY29udGludWU7CiAgICB9CgogICAgaWYgKHN5bGxhYmxlVHlwZSA9PT0gJ2Jyb2tlbl9jbHVzdGVyJyAmJiBkb3R0ZWRDaXJjbGUpIHsKICAgICAgdmFyIGcgPSBuZXcgR2x5cGhJbmZvKGZvbnQsIGRvdHRlZENpcmNsZSwgWzB4MjVjY10pOwogICAgICBnLnNoYXBlckluZm8gPSBuZXcgSW5kaWNJbmZvKDEgPDwgaW5kaWNDYXRlZ29yeShnKSwgaW5kaWNQb3NpdGlvbihnKSwgZ2x5cGhzW3N0YXJ0XS5zaGFwZXJJbmZvLnN5bGxhYmxlVHlwZSwgZ2x5cGhzW3N0YXJ0XS5zaGFwZXJJbmZvLnN5bGxhYmxlKTsKCiAgICAgIC8vIEluc2VydCBhZnRlciBwb3NzaWJsZSBSZXBoYS4KICAgICAgdmFyIF9pNSA9IHN0YXJ0OwogICAgICB3aGlsZSAoX2k1IDwgZW5kICYmIGdseXBoc1tfaTVdLnNoYXBlckluZm8uY2F0ZWdvcnkgPT09IENBVEVHT1JJRVMuUmVwaGEpIHsKICAgICAgICBfaTUrKzsKICAgICAgfQoKICAgICAgZ2x5cGhzLnNwbGljZShfaTUrKywgMCwgZyk7CiAgICAgIGVuZCsrOwogICAgfQoKICAgIC8vIDEuIEZpbmQgYmFzZSBjb25zb25hbnQ6CiAgICAvLwogICAgLy8gVGhlIHNoYXBpbmcgZW5naW5lIGZpbmRzIHRoZSBiYXNlIGNvbnNvbmFudCBvZiB0aGUgc3lsbGFibGUsIHVzaW5nIHRoZQogICAgLy8gZm9sbG93aW5nIGFsZ29yaXRobTogc3RhcnRpbmcgZnJvbSB0aGUgZW5kIG9mIHRoZSBzeWxsYWJsZSwgbW92ZSBiYWNrd2FyZHMKICAgIC8vIHVudGlsIGEgY29uc29uYW50IGlzIGZvdW5kIHRoYXQgZG9lcyBub3QgaGF2ZSBhIGJlbG93LWJhc2Ugb3IgcG9zdC1iYXNlCiAgICAvLyBmb3JtIChwb3N0LWJhc2UgZm9ybXMgaGF2ZSB0byBmb2xsb3cgYmVsb3ctYmFzZSBmb3JtcyksIG9yIHRoYXQgaXMgbm90IGEKICAgIC8vIHByZS1iYXNlIHJlb3JkZXJpbmcgUmEsIG9yIGFycml2ZSBhdCB0aGUgZmlyc3QgY29uc29uYW50LiBUaGUgY29uc29uYW50CiAgICAvLyBzdG9wcGVkIGF0IHdpbGwgYmUgdGhlIGJhc2UuCgogICAgdmFyIGJhc2UgPSBlbmQ7CiAgICB2YXIgbGltaXQgPSBzdGFydDsKICAgIHZhciBoYXNSZXBoID0gZmFsc2U7CgogICAgLy8gSWYgdGhlIHN5bGxhYmxlIHN0YXJ0cyB3aXRoIFJhICsgSGFsYW50IChpbiBhIHNjcmlwdCB0aGF0IGhhcyBSZXBoKQogICAgLy8gYW5kIGhhcyBtb3JlIHRoYW4gb25lIGNvbnNvbmFudCwgUmEgaXMgZXhjbHVkZWQgZnJvbSBjYW5kaWRhdGVzIGZvcgogICAgLy8gYmFzZSBjb25zb25hbnRzLgogICAgaWYgKGluZGljQ29uZmlnLnJlcGhQb3MgIT09IFBPU0lUSU9OUy5SYV9Ub19CZWNvbWVfUmVwaCAmJiBmZWF0dXJlcy5ycGhmICYmIHN0YXJ0ICsgMyA8PSBlbmQgJiYgKGluZGljQ29uZmlnLnJlcGhNb2RlID09PSAnSW1wbGljaXQnICYmICFpc0pvaW5lcihnbHlwaHNbc3RhcnQgKyAyXSkgfHwgaW5kaWNDb25maWcucmVwaE1vZGUgPT09ICdFeHBsaWNpdCcgJiYgZ2x5cGhzW3N0YXJ0ICsgMl0uc2hhcGVySW5mby5jYXRlZ29yeSA9PT0gQ0FURUdPUklFUy5aV0opKSB7CiAgICAgIC8vIFNlZSBpZiBpdCBtYXRjaGVzIHRoZSAncnBoZicgZmVhdHVyZS4KICAgICAgdmFyIF9nID0gW2dseXBoc1tzdGFydF0uY29weSgpLCBnbHlwaHNbc3RhcnQgKyAxXS5jb3B5KCksIGdseXBoc1tzdGFydCArIDJdLmNvcHkoKV07CiAgICAgIGlmICh3b3VsZFN1YnN0aXR1dGUoX2cuc2xpY2UoMCwgMiksICdycGhmJykgfHwgaW5kaWNDb25maWcucmVwaE1vZGUgPT09ICdFeHBsaWNpdCcgJiYgd291bGRTdWJzdGl0dXRlKF9nLCAncnBoZicpKSB7CiAgICAgICAgbGltaXQgKz0gMjsKICAgICAgICB3aGlsZSAobGltaXQgPCBlbmQgJiYgaXNKb2luZXIoZ2x5cGhzW2xpbWl0XSkpIHsKICAgICAgICAgIGxpbWl0Kys7CiAgICAgICAgfQogICAgICAgIGJhc2UgPSBzdGFydDsKICAgICAgICBoYXNSZXBoID0gdHJ1ZTsKICAgICAgfQogICAgfSBlbHNlIGlmIChpbmRpY0NvbmZpZy5yZXBoTW9kZSA9PT0gJ0xvZ19SZXBoYScgJiYgZ2x5cGhzW3N0YXJ0XS5zaGFwZXJJbmZvLmNhdGVnb3J5ID09PSBDQVRFR09SSUVTLlJlcGhhKSB7CiAgICAgIGxpbWl0Kys7CiAgICAgIHdoaWxlIChsaW1pdCA8IGVuZCAmJiBpc0pvaW5lcihnbHlwaHNbbGltaXRdKSkgewogICAgICAgIGxpbWl0Kys7CiAgICAgIH0KICAgICAgYmFzZSA9IHN0YXJ0OwogICAgICBoYXNSZXBoID0gdHJ1ZTsKICAgIH0KCiAgICBzd2l0Y2ggKGluZGljQ29uZmlnLmJhc2VQb3MpIHsKICAgICAgY2FzZSAnTGFzdCc6CiAgICAgICAgewogICAgICAgICAgLy8gc3RhcnRpbmcgZnJvbSB0aGUgZW5kIG9mIHRoZSBzeWxsYWJsZSwgbW92ZSBiYWNrd2FyZHMKICAgICAgICAgIHZhciBfaTYgPSBlbmQ7CiAgICAgICAgICB2YXIgc2VlbkJlbG93ID0gZmFsc2U7CgogICAgICAgICAgZG8gewogICAgICAgICAgICB2YXIgX2luZm8gPSBnbHlwaHNbLS1faTZdLnNoYXBlckluZm87CgogICAgICAgICAgICAvLyB1bnRpbCBhIGNvbnNvbmFudCBpcyBmb3VuZAogICAgICAgICAgICBpZiAoaXNDb25zb25hbnQoZ2x5cGhzW19pNl0pKSB7CiAgICAgICAgICAgICAgLy8gdGhhdCBkb2VzIG5vdCBoYXZlIGEgYmVsb3ctYmFzZSBvciBwb3N0LWJhc2UgZm9ybQogICAgICAgICAgICAgIC8vIChwb3N0LWJhc2UgZm9ybXMgaGF2ZSB0byBmb2xsb3cgYmVsb3ctYmFzZSBmb3JtcyksCiAgICAgICAgICAgICAgaWYgKF9pbmZvLnBvc2l0aW9uICE9PSBQT1NJVElPTlMuQmVsb3dfQyAmJiAoX2luZm8ucG9zaXRpb24gIT09IFBPU0lUSU9OUy5Qb3N0X0MgfHwgc2VlbkJlbG93KSkgewogICAgICAgICAgICAgICAgYmFzZSA9IF9pNjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgLy8gb3IgdGhhdCBpcyBub3QgYSBwcmUtYmFzZSByZW9yZGVyaW5nIFJhLAogICAgICAgICAgICAgIC8vCiAgICAgICAgICAgICAgLy8gSU1QTEVNRU5UQVRJT04gTk9URVM6CiAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgICAvLyBPdXIgcHJlLWJhc2UgcmVvcmRlcmluZyBSYSdzIGFyZSBtYXJrZWQgUE9TX1BPU1RfQywgc28gd2lsbCBiZSBza2lwcGVkCiAgICAgICAgICAgICAgLy8gYnkgdGhlIGxvZ2ljIGFib3ZlIGFscmVhZHkuCiAgICAgICAgICAgICAgLy8KCiAgICAgICAgICAgICAgLy8gb3IgYXJyaXZlIGF0IHRoZSBmaXJzdCBjb25zb25hbnQuIFRoZSBjb25zb25hbnQgc3RvcHBlZCBhdCB3aWxsCiAgICAgICAgICAgICAgLy8gYmUgdGhlIGJhc2UuCiAgICAgICAgICAgICAgaWYgKF9pbmZvLnBvc2l0aW9uID09PSBQT1NJVElPTlMuQmVsb3dfQykgewogICAgICAgICAgICAgICAgc2VlbkJlbG93ID0gdHJ1ZTsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIGJhc2UgPSBfaTY7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQgPCBfaTYgJiYgX2luZm8uY2F0ZWdvcnkgPT09IENBVEVHT1JJRVMuWldKICYmIGdseXBoc1tfaTYgLSAxXS5zaGFwZXJJbmZvLmNhdGVnb3J5ID09PSBDQVRFR09SSUVTLkgpIHsKICAgICAgICAgICAgICAvLyBBIFpXSiBhZnRlciBhIEhhbGFudCBzdG9wcyB0aGUgYmFzZSBzZWFyY2gsIGFuZCByZXF1ZXN0cyBhbiBleHBsaWNpdAogICAgICAgICAgICAgIC8vIGhhbGYgZm9ybS4KICAgICAgICAgICAgICAvLyBBIFpXSiBiZWZvcmUgYSBIYWxhbnQsIHJlcXVlc3RzIGEgc3Viam9pbmVkIGZvcm0gaW5zdGVhZCwgYW5kIGhlbmNlCiAgICAgICAgICAgICAgLy8gc2VhcmNoIGNvbnRpbnVlcy4gIFRoaXMgaXMgcGFydGljdWxhcmx5IGltcG9ydGFudCBmb3IgQmVuZ2FsaQogICAgICAgICAgICAgIC8vIHNlcXVlbmNlIFJhLEgsWWEgdGhhdCBzaG91bGQgZm9ybSBZYS1QaGFsYWEgYnkgc3Viam9pbmluZyBZYS4KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfSB3aGlsZSAoX2k2ID4gbGltaXQpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgY2FzZSAnRmlyc3QnOgogICAgICAgIHsKICAgICAgICAgIC8vIFRoZSBmaXJzdCBjb25zb25hbnQgaXMgYWx3YXlzIHRoZSBiYXNlLgogICAgICAgICAgYmFzZSA9IHN0YXJ0OwoKICAgICAgICAgIC8vIE1hcmsgYWxsIHN1YnNlcXVlbnQgY29uc29uYW50cyBhcyBiZWxvdy4KICAgICAgICAgIGZvciAodmFyIF9pNyA9IGJhc2UgKyAxOyBfaTcgPCBlbmQ7IF9pNysrKSB7CiAgICAgICAgICAgIGlmIChpc0NvbnNvbmFudChnbHlwaHNbX2k3XSkpIHsKICAgICAgICAgICAgICBnbHlwaHNbX2k3XS5zaGFwZXJJbmZvLnBvc2l0aW9uID0gUE9TSVRJT05TLkJlbG93X0M7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gSWYgdGhlIHN5bGxhYmxlIHN0YXJ0cyB3aXRoIFJhICsgSGFsYW50IChpbiBhIHNjcmlwdCB0aGF0IGhhcyBSZXBoKQogICAgLy8gYW5kIGhhcyBtb3JlIHRoYW4gb25lIGNvbnNvbmFudCwgUmEgaXMgZXhjbHVkZWQgZnJvbSBjYW5kaWRhdGVzIGZvcgogICAgLy8gYmFzZSBjb25zb25hbnRzLgogICAgLy8KICAgIC8vICBPbmx5IGRvIHRoaXMgZm9yIHVuZm9yY2VkIFJlcGguIChpZS4gbm90IGZvciBSYSxILFpXSikKICAgIGlmIChoYXNSZXBoICYmIGJhc2UgPT09IHN0YXJ0ICYmIGxpbWl0IC0gYmFzZSA8PSAyKSB7CiAgICAgIGhhc1JlcGggPSBmYWxzZTsKICAgIH0KCiAgICAvLyAyLiBEZWNvbXBvc2UgYW5kIHJlb3JkZXIgTWF0cmFzOgogICAgLy8KICAgIC8vIEVhY2ggbWF0cmEgYW5kIGFueSBzeWxsYWJsZSBtb2RpZmllciBzaWduIGluIHRoZSBjbHVzdGVyIGFyZSBtb3ZlZCB0byB0aGUKICAgIC8vIGFwcHJvcHJpYXRlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBjb25zb25hbnQocykgaW4gdGhlIGNsdXN0ZXIuIFRoZQogICAgLy8gc2hhcGluZyBlbmdpbmUgZGVjb21wb3NlcyB0d28tIG9yIHRocmVlLXBhcnQgbWF0cmFzIGludG8gdGhlaXIgY29uc3RpdHVlbnQKICAgIC8vIHBhcnRzIGJlZm9yZSBhbnkgcmVwb3NpdGlvbmluZy4gTWF0cmEgY2hhcmFjdGVycyBhcmUgY2xhc3NpZmllZCBieSB3aGljaAogICAgLy8gY29uc29uYW50IGluIGEgY29uanVuY3QgdGhleSBoYXZlIGFmZmluaXR5IGZvciBhbmQgYXJlIHJlb3JkZXJlZCB0byB0aGUKICAgIC8vIGZvbGxvd2luZyBwb3NpdGlvbnM6CiAgICAvLwogICAgLy8gICBvIEJlZm9yZSBmaXJzdCBoYWxmIGZvcm0gaW4gdGhlIHN5bGxhYmxlCiAgICAvLyAgIG8gQWZ0ZXIgc3Viam9pbmVkIGNvbnNvbmFudHMKICAgIC8vICAgbyBBZnRlciBwb3N0LWZvcm0gY29uc29uYW50CiAgICAvLyAgIG8gQWZ0ZXIgbWFpbiBjb25zb25hbnQgKGZvciBhYm92ZSBtYXJrcykKICAgIC8vCiAgICAvLyBJTVBMRU1FTlRBVElPTiBOT1RFUzoKICAgIC8vCiAgICAvLyBUaGUgbm9ybWFsaXplKCkgcm91dGluZSBoYXMgYWxyZWFkeSBkZWNvbXBvc2VkIG1hdHJhcyBmb3IgdXMsIHNvIHdlIGRvbid0CiAgICAvLyBuZWVkIHRvIHdvcnJ5IGFib3V0IHRoYXQuCgogICAgLy8gMy4gIFJlb3JkZXIgbWFya3MgdG8gY2Fub25pY2FsIG9yZGVyOgogICAgLy8KICAgIC8vIEFkamFjZW50IG51a3RhIGFuZCBoYWxhbnQgb3IgbnVrdGEgYW5kIHZlZGljIHNpZ24gYXJlIGFsd2F5cyByZXBvc2l0aW9uZWQKICAgIC8vIGlmIG5lY2Vzc2FyeSwgc28gdGhhdCB0aGUgbnVrdGEgaXMgZmlyc3QuCiAgICAvLwogICAgLy8gSU1QTEVNRU5UQVRJT04gTk9URVM6CiAgICAvLwogICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBkbyB0aGlzOiB0aGUgbm9ybWFsaXplKCkgcm91dGluZSBhbHJlYWR5IGRpZCB0aGlzIGZvciB1cy4KCiAgICAvLyBSZW9yZGVyIGNoYXJhY3RlcnMKCiAgICBmb3IgKHZhciBfaTggPSBzdGFydDsgX2k4IDwgYmFzZTsgX2k4KyspIHsKICAgICAgdmFyIF9pbmZvMiA9IGdseXBoc1tfaThdLnNoYXBlckluZm87CiAgICAgIF9pbmZvMi5wb3NpdGlvbiA9IE1hdGgubWluKFBPU0lUSU9OUy5QcmVfQywgX2luZm8yLnBvc2l0aW9uKTsKICAgIH0KCiAgICBpZiAoYmFzZSA8IGVuZCkgewogICAgICBnbHlwaHNbYmFzZV0uc2hhcGVySW5mby5wb3NpdGlvbiA9IFBPU0lUSU9OUy5CYXNlX0M7CiAgICB9CgogICAgLy8gTWFyayBmaW5hbCBjb25zb25hbnRzLiAgQSBmaW5hbCBjb25zb25hbnQgaXMgb25lIGFwcGVhcmluZyBhZnRlciBhIG1hdHJhLAogICAgLy8gbGlrZSBpbiBLaG1lci4KICAgIGZvciAodmFyIF9pOSA9IGJhc2UgKyAxOyBfaTkgPCBlbmQ7IF9pOSsrKSB7CiAgICAgIGlmIChnbHlwaHNbX2k5XS5zaGFwZXJJbmZvLmNhdGVnb3J5ID09PSBDQVRFR09SSUVTLk0pIHsKICAgICAgICBmb3IgKHZhciBqID0gX2k5ICsgMTsgaiA8IGVuZDsgaisrKSB7CiAgICAgICAgICBpZiAoaXNDb25zb25hbnQoZ2x5cGhzW2pdKSkgewogICAgICAgICAgICBnbHlwaHNbal0uc2hhcGVySW5mby5wb3NpdGlvbiA9IFBPU0lUSU9OUy5GaW5hbF9DOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KCiAgICAvLyBIYW5kbGUgYmVnaW5uaW5nIFJhCiAgICBpZiAoaGFzUmVwaCkgewogICAgICBnbHlwaHNbc3RhcnRdLnNoYXBlckluZm8ucG9zaXRpb24gPSBQT1NJVElPTlMuUmFfVG9fQmVjb21lX1JlcGg7CiAgICB9CgogICAgLy8gRm9yIG9sZC1zdHlsZSBJbmRpYyBzY3JpcHQgdGFncywgbW92ZSB0aGUgZmlyc3QgcG9zdC1iYXNlIEhhbGFudCBhZnRlcgogICAgLy8gbGFzdCBjb25zb25hbnQuCiAgICAvLwogICAgLy8gUmVwb3J0cyBzdWdnZXN0IHRoYXQgaW4gc29tZSBzY3JpcHRzIFVuaXNjcmliZSBkb2VzIHRoaXMgb25seSBpZiB0aGVyZQogICAgLy8gaXMgKm5vdCogYSBIYWxhbnQgYWZ0ZXIgbGFzdCBjb25zb25hbnQgYWxyZWFkeSAoZWcuIEthbm5hZGEpLCB3aGlsZSBpdAogICAgLy8gZG9lcyBpdCB1bmNvbmRpdGlvbmFsbHkgaW4gb3RoZXIgc2NyaXB0cyAoZWcuIE1hbGF5YWxhbSkuICBXZSBkb24ndAogICAgLy8gY3VycmVudGx5IGtub3cgYWJvdXQgb3RoZXIgc2NyaXB0cywgc28gd2Ugc2luZ2xlIG91dCBNYWxheWFsYW0gZm9yIG5vdy4KICAgIC8vCiAgICAvLyBLYW5uYWRhIHRlc3QgY2FzZToKICAgIC8vIFUrMEM5QSxVKzBDQ0QsVSswQzlBLFUrMENDRAogICAgLy8gV2l0aCBzb21lIHZlcnNpb25zIG9mIExvaGl0IEthbm5hZGEuCiAgICAvLyBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD01OTExOAogICAgLy8KICAgIC8vIE1hbGF5YWxhbSB0ZXN0IGNhc2U6CiAgICAvLyBVKzBEMzgsVSswRDRELFUrMEQzMSxVKzBENEQsVSswRDMxLFUrMEQ0RAogICAgLy8gV2l0aCBsb2hpdC10dGYtMjAxMjExMjIvTG9oaXQtTWFsYXlhbGFtLnR0ZgogICAgaWYgKHBsYW4uaXNPbGRTcGVjKSB7CiAgICAgIHZhciBkaXNhbGxvd0RvdWJsZUhhbGFudHMgPSBwbGFuLnVuaWNvZGVTY3JpcHQgIT09ICdNYWxheWFsYW0nOwogICAgICBmb3IgKHZhciBfaTEwID0gYmFzZSArIDE7IF9pMTAgPCBlbmQ7IF9pMTArKykgewogICAgICAgIGlmIChnbHlwaHNbX2kxMF0uc2hhcGVySW5mby5jYXRlZ29yeSA9PT0gQ0FURUdPUklFUy5IKSB7CiAgICAgICAgICB2YXIgX2ogPSB2b2lkIDA7CiAgICAgICAgICBmb3IgKF9qID0gZW5kIC0gMTsgX2ogPiBfaTEwOyBfai0tKSB7CiAgICAgICAgICAgIGlmIChpc0NvbnNvbmFudChnbHlwaHNbX2pdKSB8fCBkaXNhbGxvd0RvdWJsZUhhbGFudHMgJiYgZ2x5cGhzW19qXS5zaGFwZXJJbmZvLmNhdGVnb3J5ID09PSBDQVRFR09SSUVTLkgpIHsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGlmIChnbHlwaHNbX2pdLnNoYXBlckluZm8uY2F0ZWdvcnkgIT09IENBVEVHT1JJRVMuSCAmJiBfaiA+IF9pMTApIHsKICAgICAgICAgICAgLy8gTW92ZSBIYWxhbnQgdG8gYWZ0ZXIgbGFzdCBjb25zb25hbnQuCiAgICAgICAgICAgIHZhciB0ID0gZ2x5cGhzW19pMTBdOwogICAgICAgICAgICBnbHlwaHMuc3BsaWNlLmFwcGx5KGdseXBocywgW19pMTAsIDBdLmNvbmNhdChnbHlwaHMuc3BsaWNlKF9pMTAgKyAxLCBfaiAtIF9pMTApKSk7CiAgICAgICAgICAgIGdseXBoc1tfal0gPSB0OwogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIC8vIEF0dGFjaCBtaXNjIG1hcmtzIHRvIHByZXZpb3VzIGNoYXIgdG8gbW92ZSB3aXRoIHRoZW0uCiAgICB2YXIgbGFzdFBvcyA9IFBPU0lUSU9OUy5TdGFydDsKICAgIGZvciAodmFyIF9pMTEgPSBzdGFydDsgX2kxMSA8IGVuZDsgX2kxMSsrKSB7CiAgICAgIHZhciBfaW5mbzMgPSBnbHlwaHNbX2kxMV0uc2hhcGVySW5mbzsKICAgICAgaWYgKF9pbmZvMy5jYXRlZ29yeSAmIChKT0lORVJfRkxBR1MgfCBDQVRFR09SSUVTLk4gfCBDQVRFR09SSUVTLlJTIHwgQ0FURUdPUklFUy5DTSB8IEhBTEFOVF9PUl9DT0VOR19GTEFHUyAmIF9pbmZvMy5jYXRlZ29yeSkpIHsKICAgICAgICBfaW5mbzMucG9zaXRpb24gPSBsYXN0UG9zOwogICAgICAgIGlmIChfaW5mbzMuY2F0ZWdvcnkgPT09IENBVEVHT1JJRVMuSCAmJiBfaW5mbzMucG9zaXRpb24gPT09IFBPU0lUSU9OUy5QcmVfTSkgewogICAgICAgICAgLy8gVW5pc2NyaWJlIGRvZXNuJ3QgbW92ZSB0aGUgSGFsYW50IHdpdGggTGVmdCBNYXRyYS4KICAgICAgICAgIC8vIFRFU1Q6IFUrMDkyQixVKzA5M0YsVSswOTRERQogICAgICAgICAgLy8gV2UgZm9sbG93LiAgVGhpcyBpcyBpbXBvcnRhbnQgZm9yIHRoZSBTaW5oYWxhCiAgICAgICAgICAvLyBVKzBEREEgc3BsaXQgbWF0cmEgc2luY2UgaXQgZGVjb21wb3NlcyB0byBVKzBERDksVSswRENBCiAgICAgICAgICAvLyB3aGVyZSBVKzBERDkgaXMgYSBsZWZ0IG1hdHJhIGFuZCBVKzBEQ0EgaXMgdGhlIHZpcmFtYS4KICAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gbW92ZSB0aGUgdmlyYW1hIHdpdGggdGhlIGxlZnQgbWF0cmEuCiAgICAgICAgICAvLyBURVNUOiBVKzBEOUEsVSswRERBCiAgICAgICAgICBmb3IgKHZhciBfajIgPSBfaTExOyBfajIgPiBzdGFydDsgX2oyLS0pIHsKICAgICAgICAgICAgaWYgKGdseXBoc1tfajIgLSAxXS5zaGFwZXJJbmZvLnBvc2l0aW9uICE9PSBQT1NJVElPTlMuUHJlX00pIHsKICAgICAgICAgICAgICBfaW5mbzMucG9zaXRpb24gPSBnbHlwaHNbX2oyIC0gMV0uc2hhcGVySW5mby5wb3NpdGlvbjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChfaW5mbzMucG9zaXRpb24gIT09IFBPU0lUSU9OUy5TTVZEKSB7CiAgICAgICAgbGFzdFBvcyA9IF9pbmZvMy5wb3NpdGlvbjsKICAgICAgfQogICAgfQoKICAgIC8vIEZvciBwb3N0LWJhc2UgY29uc29uYW50cyBsZXQgdGhlbSBvd24gYW55dGhpbmcgYmVmb3JlIHRoZW0KICAgIC8vIHNpbmNlIHRoZSBsYXN0IGNvbnNvbmFudCBvciBtYXRyYS4KICAgIHZhciBsYXN0ID0gYmFzZTsKICAgIGZvciAodmFyIF9pMTIgPSBiYXNlICsgMTsgX2kxMiA8IGVuZDsgX2kxMisrKSB7CiAgICAgIGlmIChpc0NvbnNvbmFudChnbHlwaHNbX2kxMl0pKSB7CiAgICAgICAgZm9yICh2YXIgX2ozID0gbGFzdCArIDE7IF9qMyA8IF9pMTI7IF9qMysrKSB7CiAgICAgICAgICBpZiAoZ2x5cGhzW19qM10uc2hhcGVySW5mby5wb3NpdGlvbiA8IFBPU0lUSU9OUy5TTVZEKSB7CiAgICAgICAgICAgIGdseXBoc1tfajNdLnNoYXBlckluZm8ucG9zaXRpb24gPSBnbHlwaHNbX2kxMl0uc2hhcGVySW5mby5wb3NpdGlvbjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbGFzdCA9IF9pMTI7CiAgICAgIH0gZWxzZSBpZiAoZ2x5cGhzW19pMTJdLnNoYXBlckluZm8uY2F0ZWdvcnkgPT09IENBVEVHT1JJRVMuTSkgewogICAgICAgIGxhc3QgPSBfaTEyOwogICAgICB9CiAgICB9CgogICAgdmFyIGFyciA9IGdseXBocy5zbGljZShzdGFydCwgZW5kKTsKICAgIGFyci5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgIHJldHVybiBhLnNoYXBlckluZm8ucG9zaXRpb24gLSBiLnNoYXBlckluZm8ucG9zaXRpb247CiAgICB9KTsKICAgIGdseXBocy5zcGxpY2UuYXBwbHkoZ2x5cGhzLCBbc3RhcnQsIGFyci5sZW5ndGhdLmNvbmNhdChhcnIpKTsKCiAgICAvLyBGaW5kIGJhc2UgYWdhaW4KICAgIGZvciAodmFyIF9pMTMgPSBzdGFydDsgX2kxMyA8IGVuZDsgX2kxMysrKSB7CiAgICAgIGlmIChnbHlwaHNbX2kxM10uc2hhcGVySW5mby5wb3NpdGlvbiA9PT0gUE9TSVRJT05TLkJhc2VfQykgewogICAgICAgIGJhc2UgPSBfaTEzOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CgogICAgLy8gU2V0dXAgZmVhdHVyZXMgbm93CgogICAgLy8gUmVwaAogICAgZm9yICh2YXIgX2kxNCA9IHN0YXJ0OyBfaTE0IDwgZW5kICYmIGdseXBoc1tfaTE0XS5zaGFwZXJJbmZvLnBvc2l0aW9uID09PSBQT1NJVElPTlMuUmFfVG9fQmVjb21lX1JlcGg7IF9pMTQrKykgewogICAgICBnbHlwaHNbX2kxNF0uZmVhdHVyZXMucnBoZiA9IHRydWU7CiAgICB9CgogICAgLy8gUHJlLWJhc2UKICAgIHZhciBibHdmID0gIXBsYW4uaXNPbGRTcGVjICYmIGluZGljQ29uZmlnLmJsd2ZNb2RlID09PSAnUHJlX0FuZF9Qb3N0JzsKICAgIGZvciAodmFyIF9pMTUgPSBzdGFydDsgX2kxNSA8IGJhc2U7IF9pMTUrKykgewogICAgICBnbHlwaHNbX2kxNV0uZmVhdHVyZXMuaGFsZiA9IHRydWU7CiAgICAgIGlmIChibHdmKSB7CiAgICAgICAgZ2x5cGhzW19pMTVdLmZlYXR1cmVzLmJsd2YgPSB0cnVlOwogICAgICB9CiAgICB9CgogICAgLy8gUG9zdC1iYXNlCiAgICBmb3IgKHZhciBfaTE2ID0gYmFzZSArIDE7IF9pMTYgPCBlbmQ7IF9pMTYrKykgewogICAgICBnbHlwaHNbX2kxNl0uZmVhdHVyZXMuYWJ2ZiA9IHRydWU7CiAgICAgIGdseXBoc1tfaTE2XS5mZWF0dXJlcy5wc3RmID0gdHJ1ZTsKICAgICAgZ2x5cGhzW19pMTZdLmZlYXR1cmVzLmJsd2YgPSB0cnVlOwogICAgfQoKICAgIGlmIChwbGFuLmlzT2xkU3BlYyAmJiBwbGFuLnVuaWNvZGVTY3JpcHQgPT09ICdEZXZhbmFnYXJpJykgewogICAgICAvLyBPbGQtc3BlYyBleWUtbGFzaCBSYSBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nLiAgRnJvbSB0aGUKICAgICAgLy8gc3BlYzoKICAgICAgLy8KICAgICAgLy8gIlRoZSBmZWF0dXJlICdiZWxvdy1iYXNlIGZvcm0nIGlzIGFwcGxpZWQgdG8gY29uc29uYW50cwogICAgICAvLyBoYXZpbmcgYmVsb3ctYmFzZSBmb3JtcyBhbmQgZm9sbG93aW5nIHRoZSBiYXNlIGNvbnNvbmFudC4KICAgICAgLy8gVGhlIGV4Y2VwdGlvbiBpcyB2YXR0dSwgd2hpY2ggbWF5IGFwcGVhciBiZWxvdyBoYWxmIGZvcm1zCiAgICAgIC8vIGFzIHdlbGwgYXMgYmVsb3cgdGhlIGJhc2UgZ2x5cGguIFRoZSBmZWF0dXJlICdiZWxvdy1iYXNlCiAgICAgIC8vIGZvcm0nIHdpbGwgYmUgYXBwbGllZCB0byBhbGwgc3VjaCBvY2N1cnJlbmNlcyBvZiBSYSBhcyB3ZWxsLiIKICAgICAgLy8KICAgICAgLy8gVGVzdCBjYXNlOiBVKzA5MjQsVSswOTRELFUrMDkzMCxVKzA5NGQsVSswOTE1CiAgICAgIC8vIHdpdGggU2Fuc2tyaXQgMjAwMyBmb250LgogICAgICAvLwogICAgICAvLyBIb3dldmVyLCBub3RlIHRoYXQgUmEsSGFsYW50LFpXSiBpcyB0aGUgY29ycmVjdCB3YXkgdG8KICAgICAgLy8gcmVxdWVzdCBleWVsYXNoIGZvcm0gb2YgUmEsIHNvIHdlIHdvdWxkYm4ndCBpbmhpYml0IGl0CiAgICAgIC8vIGluIHRoYXQgc2VxdWVuY2UuCiAgICAgIC8vCiAgICAgIC8vIFRlc3QgY2FzZTogVSswOTI0LFUrMDk0RCxVKzA5MzAsVSswOTRkLFUrMjAwRCxVKzA5MTUKICAgICAgZm9yICh2YXIgX2kxNyA9IHN0YXJ0OyBfaTE3ICsgMSA8IGJhc2U7IF9pMTcrKykgewogICAgICAgIGlmIChnbHlwaHNbX2kxN10uc2hhcGVySW5mby5jYXRlZ29yeSA9PT0gQ0FURUdPUklFUy5SYSAmJiBnbHlwaHNbX2kxNyArIDFdLnNoYXBlckluZm8uY2F0ZWdvcnkgPT09IENBVEVHT1JJRVMuSCAmJiAoX2kxNyArIDEgPT09IGJhc2UgfHwgZ2x5cGhzW19pMTcgKyAyXS5zaGFwZXJJbmZvLmNhdGVnb3J5ID09PSBDQVRFR09SSUVTLlpXSikpIHsKICAgICAgICAgIGdseXBoc1tfaTE3XS5mZWF0dXJlcy5ibHdmID0gdHJ1ZTsKICAgICAgICAgIGdseXBoc1tfaTE3ICsgMV0uZmVhdHVyZXMuYmx3ZiA9IHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgdmFyIHByZWZMZW4gPSAyOwogICAgaWYgKGZlYXR1cmVzLnByZWYgJiYgYmFzZSArIHByZWZMZW4gPCBlbmQpIHsKICAgICAgLy8gRmluZCBhIEhhbGFudCxSYSBzZXF1ZW5jZSBhbmQgbWFyayBpdCBmb3IgcHJlLWJhc2UgcmVvcmRlcmluZyBwcm9jZXNzaW5nLgogICAgICBmb3IgKHZhciBfaTE4ID0gYmFzZSArIDE7IF9pMTggKyBwcmVmTGVuIC0gMSA8IGVuZDsgX2kxOCsrKSB7CiAgICAgICAgdmFyIF9nMiA9IFtnbHlwaHNbX2kxOF0uY29weSgpLCBnbHlwaHNbX2kxOCArIDFdLmNvcHkoKV07CiAgICAgICAgaWYgKHdvdWxkU3Vic3RpdHV0ZShfZzIsICdwcmVmJykpIHsKICAgICAgICAgIGZvciAodmFyIF9qNCA9IDA7IF9qNCA8IHByZWZMZW47IF9qNCsrKSB7CiAgICAgICAgICAgIGdseXBoc1tfaTE4KytdLmZlYXR1cmVzLnByZWYgPSB0cnVlOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIE1hcmsgdGhlIHN1YnNlcXVlbnQgc3R1ZmYgd2l0aCAnY2ZhcicuICBVc2VkIGluIEtobWVyLgogICAgICAgICAgLy8gUmVhZCB0aGUgZmVhdHVyZSBzcGVjLgogICAgICAgICAgLy8gVGhpcyBhbGxvd3MgZGlzdGluZ3Vpc2hpbmcgdGhlIGZvbGxvd2luZyBjYXNlcyB3aXRoIE1TIEtobWVyIGZvbnRzOgogICAgICAgICAgLy8gVSsxNzg0LFUrMTdEMixVKzE3OUEsVSsxN0QyLFUrMTc4MgogICAgICAgICAgLy8gVSsxNzg0LFUrMTdEMixVKzE3ODIsVSsxN0QyLFUrMTc5QQogICAgICAgICAgaWYgKGZlYXR1cmVzLmNmYXIpIHsKICAgICAgICAgICAgZm9yICg7IF9pMTggPCBlbmQ7IF9pMTgrKykgewogICAgICAgICAgICAgIGdseXBoc1tfaTE4XS5mZWF0dXJlcy5jZmFyID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIC8vIEFwcGx5IFpXSi9aV05KIGVmZmVjdHMKICAgIGZvciAodmFyIF9pMTkgPSBzdGFydCArIDE7IF9pMTkgPCBlbmQ7IF9pMTkrKykgewogICAgICBpZiAoaXNKb2luZXIoZ2x5cGhzW19pMTldKSkgewogICAgICAgIHZhciBub25Kb2luZXIgPSBnbHlwaHNbX2kxOV0uc2hhcGVySW5mby5jYXRlZ29yeSA9PT0gQ0FURUdPUklFUy5aV05KOwogICAgICAgIHZhciBfajUgPSBfaTE5OwoKICAgICAgICBkbyB7CiAgICAgICAgICBfajUtLTsKCiAgICAgICAgICAvLyBaV0ovWldOSiBzaG91bGQgZGlzYWJsZSBDSkNULiAgVGhleSBkbyB0aGF0IGJ5IHNpbXBseQogICAgICAgICAgLy8gYmVpbmcgdGhlcmUsIHNpbmNlIHdlIGRvbid0IHNraXAgdGhlbSBmb3IgdGhlIENKQ1QKICAgICAgICAgIC8vIGZlYXR1cmUgKGllLiBGX01BTlVBTF9aV0opCgogICAgICAgICAgLy8gQSBaV05KIGRpc2FibGVzIEhBTEYuCiAgICAgICAgICBpZiAobm9uSm9pbmVyKSB7CiAgICAgICAgICAgIGRlbGV0ZSBnbHlwaHNbX2o1XS5mZWF0dXJlcy5oYWxmOwogICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKF9qNSA+IHN0YXJ0ICYmICFpc0NvbnNvbmFudChnbHlwaHNbX2o1XSkpOwogICAgICB9CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBmaW5hbFJlb3JkZXJpbmcoZm9udCwgZ2x5cGhzLCBwbGFuKSB7CiAgdmFyIGluZGljQ29uZmlnID0gcGxhbi5pbmRpY0NvbmZpZzsKICB2YXIgZmVhdHVyZXMgPSBmb250Ll9sYXlvdXRFbmdpbmUuZW5naW5lLkdTVUJQcm9jZXNzb3IuZmVhdHVyZXM7CgogIGZvciAodmFyIHN0YXJ0ID0gMCwgZW5kID0gbmV4dFN5bGxhYmxlKGdseXBocywgMCk7IHN0YXJ0IDwgZ2x5cGhzLmxlbmd0aDsgc3RhcnQgPSBlbmQsIGVuZCA9IG5leHRTeWxsYWJsZShnbHlwaHMsIHN0YXJ0KSkgewogICAgLy8gNC4gRmluYWwgcmVvcmRlcmluZzoKICAgIC8vCiAgICAvLyBBZnRlciB0aGUgbG9jYWxpemVkIGZvcm1zIGFuZCBiYXNpYyBzaGFwaW5nIGZvcm1zIEdTVUIgZmVhdHVyZXMgaGF2ZSBiZWVuCiAgICAvLyBhcHBsaWVkIChzZWUgYmVsb3cpLCB0aGUgc2hhcGluZyBlbmdpbmUgcGVyZm9ybXMgc29tZSBmaW5hbCBnbHlwaAogICAgLy8gcmVvcmRlcmluZyBiZWZvcmUgYXBwbHlpbmcgYWxsIHRoZSByZW1haW5pbmcgZm9udCBmZWF0dXJlcyB0byB0aGUgZW50aXJlCiAgICAvLyBjbHVzdGVyLgoKICAgIHZhciB0cnlQcmVmID0gISFmZWF0dXJlcy5wcmVmOwoKICAgIC8vIEZpbmQgYmFzZSBhZ2FpbgogICAgdmFyIGJhc2UgPSBzdGFydDsKICAgIGZvciAoOyBiYXNlIDwgZW5kOyBiYXNlKyspIHsKICAgICAgaWYgKGdseXBoc1tiYXNlXS5zaGFwZXJJbmZvLnBvc2l0aW9uID49IFBPU0lUSU9OUy5CYXNlX0MpIHsKICAgICAgICBpZiAodHJ5UHJlZiAmJiBiYXNlICsgMSA8IGVuZCkgewogICAgICAgICAgZm9yICh2YXIgaSA9IGJhc2UgKyAxOyBpIDwgZW5kOyBpKyspIHsKICAgICAgICAgICAgaWYgKGdseXBoc1tpXS5mZWF0dXJlcy5wcmVmKSB7CiAgICAgICAgICAgICAgaWYgKCEoZ2x5cGhzW2ldLnN1YnN0aXR1dGVkICYmIGdseXBoc1tpXS5pc0xpZ2F0ZWQgJiYgIWdseXBoc1tpXS5pc011bHRpcGxpZWQpKSB7CiAgICAgICAgICAgICAgICAvLyBPaywgdGhpcyB3YXMgYSAncHJlZicgY2FuZGlkYXRlIGJ1dCBkaWRuJ3QgZm9ybSBhbnkuCiAgICAgICAgICAgICAgICAvLyBCYXNlIGlzIGFyb3VuZCBoZXJlLi4uCiAgICAgICAgICAgICAgICBiYXNlID0gaTsKICAgICAgICAgICAgICAgIHdoaWxlIChiYXNlIDwgZW5kICYmIGlzSGFsYW50T3JDb2VuZyhnbHlwaHNbYmFzZV0pKSB7CiAgICAgICAgICAgICAgICAgIGJhc2UrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGdseXBoc1tiYXNlXS5zaGFwZXJJbmZvLnBvc2l0aW9uID0gUE9TSVRJT05TLkJBU0VfQzsKICAgICAgICAgICAgICAgIHRyeVByZWYgPSBmYWxzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEZvciBNYWxheWFsYW0sIHNraXAgb3ZlciB1bmZvcm1lZCBiZWxvdy0gKGJ1dCBOT1QgcG9zdC0pIGZvcm1zLgogICAgICAgIGlmIChwbGFuLnVuaWNvZGVTY3JpcHQgPT09ICdNYWxheWFsYW0nKSB7CiAgICAgICAgICBmb3IgKHZhciBfaTIwID0gYmFzZSArIDE7IF9pMjAgPCBlbmQ7IF9pMjArKykgewogICAgICAgICAgICB3aGlsZSAoX2kyMCA8IGVuZCAmJiBpc0pvaW5lcihnbHlwaHNbX2kyMF0pKSB7CiAgICAgICAgICAgICAgX2kyMCsrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoX2kyMCA9PT0gZW5kIHx8ICFpc0hhbGFudE9yQ29lbmcoZ2x5cGhzW19pMjBdKSkgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBfaTIwKys7IC8vIFNraXAgaGFsYW50LgogICAgICAgICAgICB3aGlsZSAoX2kyMCA8IGVuZCAmJiBpc0pvaW5lcihnbHlwaHNbX2kyMF0pKSB7CiAgICAgICAgICAgICAgX2kyMCsrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoX2kyMCA8IGVuZCAmJiBpc0NvbnNvbmFudChnbHlwaHNbX2kyMF0pICYmIGdseXBoc1tfaTIwXS5zaGFwZXJJbmZvLnBvc2l0aW9uID09PSBQT1NJVElPTlMuQmVsb3dfQykgewogICAgICAgICAgICAgIGJhc2UgPSBfaTIwOwogICAgICAgICAgICAgIGdseXBoc1tiYXNlXS5zaGFwZXJJbmZvLnBvc2l0aW9uID0gUE9TSVRJT05TLkJhc2VfQzsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKHN0YXJ0IDwgYmFzZSAmJiBnbHlwaHNbYmFzZV0uc2hhcGVySW5mby5wb3NpdGlvbiA+IFBPU0lUSU9OUy5CYXNlX0MpIHsKICAgICAgICAgIGJhc2UtLTsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KCiAgICBpZiAoYmFzZSA9PT0gZW5kICYmIHN0YXJ0IDwgYmFzZSAmJiBnbHlwaHNbYmFzZSAtIDFdLnNoYXBlckluZm8uY2F0ZWdvcnkgPT09IENBVEVHT1JJRVMuWldKKSB7CiAgICAgIGJhc2UtLTsKICAgIH0KCiAgICBpZiAoYmFzZSA8IGVuZCkgewogICAgICB3aGlsZSAoc3RhcnQgPCBiYXNlICYmIGdseXBoc1tiYXNlXS5zaGFwZXJJbmZvLmNhdGVnb3J5ICYgKENBVEVHT1JJRVMuTiB8IEhBTEFOVF9PUl9DT0VOR19GTEFHUykpIHsKICAgICAgICBiYXNlLS07CiAgICAgIH0KICAgIH0KCiAgICAvLyBvIFJlb3JkZXIgbWF0cmFzOgogICAgLy8KICAgIC8vIElmIGEgcHJlLWJhc2UgbWF0cmEgY2hhcmFjdGVyIGhhZCBiZWVuIHJlb3JkZXJlZCBiZWZvcmUgYXBwbHlpbmcgYmFzaWMKICAgIC8vIGZlYXR1cmVzLCB0aGUgZ2x5cGggY2FuIGJlIG1vdmVkIGNsb3NlciB0byB0aGUgbWFpbiBjb25zb25hbnQgYmFzZWQgb24KICAgIC8vIHdoZXRoZXIgaGFsZi1mb3JtcyBoYWQgYmVlbiBmb3JtZWQuIEFjdHVhbCBwb3NpdGlvbiBmb3IgdGhlIG1hdHJhIGlzCiAgICAvLyBkZWZpbmVkIGFzIOKAnGFmdGVyIGxhc3Qgc3RhbmRhbG9uZSBoYWxhbnQgZ2x5cGgsIGFmdGVyIGluaXRpYWwgbWF0cmEKICAgIC8vIHBvc2l0aW9uIGFuZCBiZWZvcmUgdGhlIG1haW4gY29uc29uYW504oCdLiBJZiBaV0ogb3IgWldOSiBmb2xsb3cgdGhpcwogICAgLy8gaGFsYW50LCBwb3NpdGlvbiBpcyBtb3ZlZCBhZnRlciBpdC4KICAgIC8vCgogICAgaWYgKHN0YXJ0ICsgMSA8IGVuZCAmJiBzdGFydCA8IGJhc2UpIHsKICAgICAgLy8gT3RoZXJ3aXNlIHRoZXJlIGNhbid0IGJlIGFueSBwcmUtYmFzZSBtYXRyYSBjaGFyYWN0ZXJzLgogICAgICAvLyBJZiB3ZSBsb3N0IHRyYWNrIG9mIGJhc2UsIGFsYXMsIHBvc2l0aW9uIGJlZm9yZSBsYXN0IHRoaW5neS4KICAgICAgdmFyIG5ld1BvcyA9IGJhc2UgPT09IGVuZCA/IGJhc2UgLSAyIDogYmFzZSAtIDE7CgogICAgICAvLyBNYWxheWFsYW0gLyBUYW1pbCBkbyBub3QgaGF2ZSAiaGFsZiIgZm9ybXMgb3IgZXhwbGljaXQgdmlyYW1hIGZvcm1zLgogICAgICAvLyBUaGUgZ2x5cGhzIGZvcm1lZCBieSAnaGFsZicgYXJlIENoaWxsdXMgb3IgbGlnYXRlZCBleHBsaWNpdCB2aXJhbWFzLgogICAgICAvLyBXZSB3YW50IHRvIHBvc2l0aW9uIG1hdHJhIGFmdGVyIHRoZW0uCiAgICAgIGlmIChwbGFuLnVuaWNvZGVTY3JpcHQgIT09ICdNYWxheWFsYW0nICYmIHBsYW4udW5pY29kZVNjcmlwdCAhPT0gJ1RhbWlsJykgewogICAgICAgIHdoaWxlIChuZXdQb3MgPiBzdGFydCAmJiAhKGdseXBoc1tuZXdQb3NdLnNoYXBlckluZm8uY2F0ZWdvcnkgJiAoQ0FURUdPUklFUy5NIHwgSEFMQU5UX09SX0NPRU5HX0ZMQUdTKSkpIHsKICAgICAgICAgIG5ld1Bvcy0tOwogICAgICAgIH0KCiAgICAgICAgLy8gSWYgd2UgZm91bmQgbm8gSGFsYW50IHdlIGFyZSBkb25lLgogICAgICAgIC8vIE90aGVyd2lzZSBvbmx5IHByb2NlZWQgaWYgdGhlIEhhbGFudCBkb2VzCiAgICAgICAgLy8gbm90IGJlbG9uZyB0byB0aGUgTWF0cmEgaXRzZWxmIQogICAgICAgIGlmIChpc0hhbGFudE9yQ29lbmcoZ2x5cGhzW25ld1Bvc10pICYmIGdseXBoc1tuZXdQb3NdLnNoYXBlckluZm8ucG9zaXRpb24gIT09IFBPU0lUSU9OUy5QcmVfTSkgewogICAgICAgICAgLy8gSWYgWldKIG9yIFpXTkogZm9sbG93IHRoaXMgaGFsYW50LCBwb3NpdGlvbiBpcyBtb3ZlZCBhZnRlciBpdC4KICAgICAgICAgIGlmIChuZXdQb3MgKyAxIDwgZW5kICYmIGlzSm9pbmVyKGdseXBoc1tuZXdQb3MgKyAxXSkpIHsKICAgICAgICAgICAgbmV3UG9zKys7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG5ld1BvcyA9IHN0YXJ0OyAvLyBObyBtb3ZlLgogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKHN0YXJ0IDwgbmV3UG9zICYmIGdseXBoc1tuZXdQb3NdLnNoYXBlckluZm8ucG9zaXRpb24gIT09IFBPU0lUSU9OUy5QcmVfTSkgewogICAgICAgIC8vIE5vdyBnbyBzZWUgaWYgdGhlcmUncyBhY3R1YWxseSBhbnkgbWF0cmFzLi4uCiAgICAgICAgZm9yICh2YXIgX2kyMSA9IG5ld1BvczsgX2kyMSA+IHN0YXJ0OyBfaTIxLS0pIHsKICAgICAgICAgIGlmIChnbHlwaHNbX2kyMSAtIDFdLnNoYXBlckluZm8ucG9zaXRpb24gPT09IFBPU0lUSU9OUy5QcmVfTSkgewogICAgICAgICAgICB2YXIgb2xkUG9zID0gX2kyMSAtIDE7CiAgICAgICAgICAgIGlmIChvbGRQb3MgPCBiYXNlICYmIGJhc2UgPD0gbmV3UG9zKSB7CiAgICAgICAgICAgICAgLy8gU2hvdWxkbid0IGFjdHVhbGx5IGhhcHBlbi4KICAgICAgICAgICAgICBiYXNlLS07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciB0bXAgPSBnbHlwaHNbb2xkUG9zXTsKICAgICAgICAgICAgZ2x5cGhzLnNwbGljZS5hcHBseShnbHlwaHMsIFtvbGRQb3MsIDBdLmNvbmNhdChnbHlwaHMuc3BsaWNlKG9sZFBvcyArIDEsIG5ld1BvcyAtIG9sZFBvcykpKTsKICAgICAgICAgICAgZ2x5cGhzW25ld1Bvc10gPSB0bXA7CgogICAgICAgICAgICBuZXdQb3MtLTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICAvLyBvIFJlb3JkZXIgcmVwaDoKICAgIC8vCiAgICAvLyBSZXBo4oCZcyBvcmlnaW5hbCBwb3NpdGlvbiBpcyBhbHdheXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgc3lsbGFibGUsCiAgICAvLyAoaS5lLiBpdCBpcyBub3QgcmVvcmRlcmVkIGF0IHRoZSBjaGFyYWN0ZXIgcmVvcmRlcmluZyBzdGFnZSkuIEhvd2V2ZXIsCiAgICAvLyBpdCB3aWxsIGJlIHJlb3JkZXJlZCBhY2NvcmRpbmcgdG8gdGhlIGJhc2ljLWZvcm1zIHNoYXBpbmcgcmVzdWx0cy4KICAgIC8vIFBvc3NpYmxlIHBvc2l0aW9ucyBmb3IgcmVwaCwgZGVwZW5kaW5nIG9uIHRoZSBzY3JpcHQsIGFyZTsgYWZ0ZXIgbWFpbiwKICAgIC8vIGJlZm9yZSBwb3N0LWJhc2UgY29uc29uYW50IGZvcm1zLCBhbmQgYWZ0ZXIgcG9zdC1iYXNlIGNvbnNvbmFudCBmb3Jtcy4KCiAgICAvLyBUd28gY2FzZXM6CiAgICAvLwogICAgLy8gLSBJZiByZXBoYSBpcyBlbmNvZGVkIGFzIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVycyAoUmEsSCBvciBSYSxILFpXSiksIHRoZW4KICAgIC8vICAgd2Ugc2hvdWxkIG9ubHkgbW92ZSBpdCBpZiB0aGUgc2VxdWVuY2UgbGlnYXRlZCB0byB0aGUgcmVwaGEgZm9ybS4KICAgIC8vCiAgICAvLyAtIElmIHJlcGhhIGlzIGVuY29kZWQgc2VwYXJhdGVseSBhbmQgaW4gdGhlIGxvZ2ljYWwgcG9zaXRpb24sIHdlIHNob3VsZCBvbmx5CiAgICAvLyAgIG1vdmUgaXQgaWYgaXQgZGlkIE5PVCBsaWdhdGUuICBJZiBpdCBsaWdhdGVkLCBpdCdzIHByb2JhYmx5IHRoZSBmb250IHRyeWluZwogICAgLy8gICB0byBtYWtlIGl0IHdvcmsgd2l0aG91dCB0aGUgcmVvcmRlcmluZy4KICAgIGlmIChzdGFydCArIDEgPCBlbmQgJiYgZ2x5cGhzW3N0YXJ0XS5zaGFwZXJJbmZvLnBvc2l0aW9uID09PSBQT1NJVElPTlMuUmFfVG9fQmVjb21lX1JlcGggJiYgZ2x5cGhzW3N0YXJ0XS5zaGFwZXJJbmZvLmNhdGVnb3J5ID09PSBDQVRFR09SSUVTLlJlcGhhICE9PSAoZ2x5cGhzW3N0YXJ0XS5pc0xpZ2F0ZWQgJiYgIWdseXBoc1tzdGFydF0uaXNNdWx0aXBsaWVkKSkgewogICAgICB2YXIgbmV3UmVwaFBvcyA9IHZvaWQgMDsKICAgICAgdmFyIHJlcGhQb3MgPSBpbmRpY0NvbmZpZy5yZXBoUG9zOwogICAgICB2YXIgZm91bmQgPSBmYWxzZTsKCiAgICAgIC8vIDEuIElmIHJlcGggc2hvdWxkIGJlIHBvc2l0aW9uZWQgYWZ0ZXIgcG9zdC1iYXNlIGNvbnNvbmFudCBmb3JtcywKICAgICAgLy8gICAgcHJvY2VlZCB0byBzdGVwIDUuCiAgICAgIGlmIChyZXBoUG9zICE9PSBQT1NJVElPTlMuQWZ0ZXJfUG9zdCkgewogICAgICAgIC8vICAyLiBJZiB0aGUgcmVwaCByZXBvc2l0aW9uaW5nIGNsYXNzIGlzIG5vdCBhZnRlciBwb3N0LWJhc2U6IHRhcmdldAogICAgICAgIC8vICAgICBwb3NpdGlvbiBpcyBhZnRlciB0aGUgZmlyc3QgZXhwbGljaXQgaGFsYW50IGdseXBoIGJldHdlZW4gdGhlCiAgICAgICAgLy8gICAgIGZpcnN0IHBvc3QtcmVwaCBjb25zb25hbnQgYW5kIGxhc3QgbWFpbiBjb25zb25hbnQuIElmIFpXSiBvciBaV05KCiAgICAgICAgLy8gICAgIGFyZSBmb2xsb3dpbmcgdGhpcyBoYWxhbnQsIHBvc2l0aW9uIGlzIG1vdmVkIGFmdGVyIGl0LiBJZiBzdWNoCiAgICAgICAgLy8gICAgIHBvc2l0aW9uIGlzIGZvdW5kLCB0aGlzIGlzIHRoZSB0YXJnZXQgcG9zaXRpb24uIE90aGVyd2lzZSwKICAgICAgICAvLyAgICAgcHJvY2VlZCB0byB0aGUgbmV4dCBzdGVwLgogICAgICAgIC8vCiAgICAgICAgLy8gICAgIE5vdGU6IGluIG9sZC1pbXBsZW1lbnRhdGlvbiBmb250cywgd2hlcmUgY2xhc3NpZmljYXRpb25zIHdlcmUKICAgICAgICAvLyAgICAgZml4ZWQgaW4gc2hhcGluZyBlbmdpbmUsIHRoZXJlIHdhcyBubyBjYXNlIHdoZXJlIHJlcGggcG9zaXRpb24KICAgICAgICAvLyAgICAgd2lsbCBiZSBmb3VuZCBvbiB0aGlzIHN0ZXAuCiAgICAgICAgbmV3UmVwaFBvcyA9IHN0YXJ0ICsgMTsKICAgICAgICB3aGlsZSAobmV3UmVwaFBvcyA8IGJhc2UgJiYgIWlzSGFsYW50T3JDb2VuZyhnbHlwaHNbbmV3UmVwaFBvc10pKSB7CiAgICAgICAgICBuZXdSZXBoUG9zKys7CiAgICAgICAgfQoKICAgICAgICBpZiAobmV3UmVwaFBvcyA8IGJhc2UgJiYgaXNIYWxhbnRPckNvZW5nKGdseXBoc1tuZXdSZXBoUG9zXSkpIHsKICAgICAgICAgIC8vIC0+SWYgWldKIG9yIFpXTkogYXJlIGZvbGxvd2luZyB0aGlzIGhhbGFudCwgcG9zaXRpb24gaXMgbW92ZWQgYWZ0ZXIgaXQuCiAgICAgICAgICBpZiAobmV3UmVwaFBvcyArIDEgPCBiYXNlICYmIGlzSm9pbmVyKGdseXBoc1tuZXdSZXBoUG9zICsgMV0pKSB7CiAgICAgICAgICAgIG5ld1JlcGhQb3MrKzsKICAgICAgICAgIH0KCiAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgfQoKICAgICAgICAvLyAzLiBJZiByZXBoIHNob3VsZCBiZSByZXBvc2l0aW9uZWQgYWZ0ZXIgdGhlIG1haW4gY29uc29uYW50OiBmaW5kIHRoZQogICAgICAgIC8vICAgIGZpcnN0IGNvbnNvbmFudCBub3QgbGlnYXRlZCB3aXRoIG1haW4sIG9yIGZpbmQgdGhlIGZpcnN0CiAgICAgICAgLy8gICAgY29uc29uYW50IHRoYXQgaXMgbm90IGEgcG90ZW50aWFsIHByZS1iYXNlIHJlb3JkZXJpbmcgUmEuCiAgICAgICAgaWYgKCFmb3VuZCAmJiByZXBoUG9zID09PSBQT1NJVElPTlMuQWZ0ZXJfTWFpbikgewogICAgICAgICAgbmV3UmVwaFBvcyA9IGJhc2U7CiAgICAgICAgICB3aGlsZSAobmV3UmVwaFBvcyArIDEgPCBlbmQgJiYgZ2x5cGhzW25ld1JlcGhQb3MgKyAxXS5zaGFwZXJJbmZvLnBvc2l0aW9uIDw9IFBPU0lUSU9OUy5BZnRlcl9NYWluKSB7CiAgICAgICAgICAgIG5ld1JlcGhQb3MrKzsKICAgICAgICAgIH0KCiAgICAgICAgICBmb3VuZCA9IG5ld1JlcGhQb3MgPCBlbmQ7CiAgICAgICAgfQoKICAgICAgICAvLyA0LiBJZiByZXBoIHNob3VsZCBiZSBwb3NpdGlvbmVkIGJlZm9yZSBwb3N0LWJhc2UgY29uc29uYW50LCBmaW5kCiAgICAgICAgLy8gICAgZmlyc3QgcG9zdC1iYXNlIGNsYXNzaWZpZWQgY29uc29uYW50IG5vdCBsaWdhdGVkIHdpdGggbWFpbi4gSWYgbm8KICAgICAgICAvLyAgICBjb25zb25hbnQgaXMgZm91bmQsIHRoZSB0YXJnZXQgcG9zaXRpb24gc2hvdWxkIGJlIGJlZm9yZSB0aGUKICAgICAgICAvLyAgICBmaXJzdCBtYXRyYSwgc3lsbGFibGUgbW9kaWZpZXIgc2lnbiBvciB2ZWRpYyBzaWduLgogICAgICAgIC8vCiAgICAgICAgLy8gVGhpcyBpcyBvdXIgdGFrZSBvbiB3aGF0IHN0ZXAgNCBpcyB0cnlpbmcgdG8gc2F5IChhbmQgZmFpbGluZywgQkFETFkpLgogICAgICAgIGlmICghZm91bmQgJiYgcmVwaFBvcyA9PT0gUE9TSVRJT05TLkFmdGVyX1N1YikgewogICAgICAgICAgbmV3UmVwaFBvcyA9IGJhc2U7CiAgICAgICAgICB3aGlsZSAobmV3UmVwaFBvcyArIDEgPCBlbmQgJiYgIShnbHlwaHNbbmV3UmVwaFBvcyArIDFdLnNoYXBlckluZm8ucG9zaXRpb24gJiAoUE9TSVRJT05TLlBvc3RfQyB8IFBPU0lUSU9OUy5BZnRlcl9Qb3N0IHwgUE9TSVRJT05TLlNNVkQpKSkgewogICAgICAgICAgICBuZXdSZXBoUG9zKys7CiAgICAgICAgICB9CgogICAgICAgICAgZm91bmQgPSBuZXdSZXBoUG9zIDwgZW5kOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gIDUuIElmIG5vIGNvbnNvbmFudCBpcyBmb3VuZCBpbiBzdGVwcyAzIG9yIDQsIG1vdmUgcmVwaCB0byBhIHBvc2l0aW9uCiAgICAgIC8vICAgICBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGZpcnN0IHBvc3QtYmFzZSBtYXRyYSwgc3lsbGFibGUgbW9kaWZpZXIKICAgICAgLy8gICAgIHNpZ24gb3IgdmVkaWMgc2lnbiB0aGF0IGhhcyBhIHJlb3JkZXJpbmcgY2xhc3MgYWZ0ZXIgdGhlIGludGVuZGVkCiAgICAgIC8vICAgICByZXBoIHBvc2l0aW9uLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHJlb3JkZXJpbmcgcG9zaXRpb24gZm9yIHJlcGgKICAgICAgLy8gICAgIGlzIHBvc3QtbWFpbiwgaXQgd2lsbCBza2lwIGFib3ZlLWJhc2UgbWF0cmFzIHRoYXQgYWxzbyBoYXZlIGEKICAgICAgLy8gICAgIHBvc3QtbWFpbiBwb3NpdGlvbi4KICAgICAgaWYgKCFmb3VuZCkgewogICAgICAgIC8vIENvcGllZCBmcm9tIHN0ZXAgMi4KICAgICAgICBuZXdSZXBoUG9zID0gc3RhcnQgKyAxOwogICAgICAgIHdoaWxlIChuZXdSZXBoUG9zIDwgYmFzZSAmJiAhaXNIYWxhbnRPckNvZW5nKGdseXBoc1tuZXdSZXBoUG9zXSkpIHsKICAgICAgICAgIG5ld1JlcGhQb3MrKzsKICAgICAgICB9CgogICAgICAgIGlmIChuZXdSZXBoUG9zIDwgYmFzZSAmJiBpc0hhbGFudE9yQ29lbmcoZ2x5cGhzW25ld1JlcGhQb3NdKSkgewogICAgICAgICAgLy8gLT5JZiBaV0ogb3IgWldOSiBhcmUgZm9sbG93aW5nIHRoaXMgaGFsYW50LCBwb3NpdGlvbiBpcyBtb3ZlZCBhZnRlciBpdC4KICAgICAgICAgIGlmIChuZXdSZXBoUG9zICsgMSA8IGJhc2UgJiYgaXNKb2luZXIoZ2x5cGhzW25ld1JlcGhQb3MgKyAxXSkpIHsKICAgICAgICAgICAgbmV3UmVwaFBvcysrOwogICAgICAgICAgfQoKICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIDYuIE90aGVyd2lzZSwgcmVvcmRlciByZXBoIHRvIHRoZSBlbmQgb2YgdGhlIHN5bGxhYmxlLgogICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgbmV3UmVwaFBvcyA9IGVuZCAtIDE7CiAgICAgICAgd2hpbGUgKG5ld1JlcGhQb3MgPiBzdGFydCAmJiBnbHlwaHNbbmV3UmVwaFBvc10uc2hhcGVySW5mby5wb3NpdGlvbiA9PT0gUE9TSVRJT05TLlNNVkQpIHsKICAgICAgICAgIG5ld1JlcGhQb3MtLTsKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBSZXBoIGlzIHRvIGJlIGVuZGluZyB1cCBhZnRlciBhIE1hdHJhLEhhbGFudCBzZXF1ZW5jZSwKICAgICAgICAvLyBwb3NpdGlvbiBpdCBiZWZvcmUgdGhhdCBIYWxhbnQgc28gaXQgY2FuIGludGVyYWN0IHdpdGggdGhlIE1hdHJhLgogICAgICAgIC8vIEhvd2V2ZXIsIGlmIGl0J3MgYSBwbGFpbiBDb25zb25hbnQsSGFsYW50IHdlIHNob3VsZG4ndCBkbyB0aGF0LgogICAgICAgIC8vIFVuaXNjcmliZSBkb2Vzbid0IGRvIHRoaXMuCiAgICAgICAgLy8gVEVTVDogVSswOTMwLFUrMDk0RCxVKzA5MTUsVSswOTRCLFUrMDk0RAogICAgICAgIGlmIChpc0hhbGFudE9yQ29lbmcoZ2x5cGhzW25ld1JlcGhQb3NdKSkgewogICAgICAgICAgZm9yICh2YXIgX2kyMiA9IGJhc2UgKyAxOyBfaTIyIDwgbmV3UmVwaFBvczsgX2kyMisrKSB7CiAgICAgICAgICAgIGlmIChnbHlwaHNbX2kyMl0uc2hhcGVySW5mby5jYXRlZ29yeSA9PT0gQ0FURUdPUklFUy5NKSB7CiAgICAgICAgICAgICAgbmV3UmVwaFBvcy0tOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CgogICAgICB2YXIgcmVwaCA9IGdseXBoc1tzdGFydF07CiAgICAgIGdseXBocy5zcGxpY2UuYXBwbHkoZ2x5cGhzLCBbc3RhcnQsIDBdLmNvbmNhdChnbHlwaHMuc3BsaWNlKHN0YXJ0ICsgMSwgbmV3UmVwaFBvcyAtIHN0YXJ0KSkpOwogICAgICBnbHlwaHNbbmV3UmVwaFBvc10gPSByZXBoOwoKICAgICAgaWYgKHN0YXJ0IDwgYmFzZSAmJiBiYXNlIDw9IG5ld1JlcGhQb3MpIHsKICAgICAgICBiYXNlLS07CiAgICAgIH0KICAgIH0KCiAgICAvLyBvIFJlb3JkZXIgcHJlLWJhc2UgcmVvcmRlcmluZyBjb25zb25hbnRzOgogICAgLy8KICAgIC8vIElmIGEgcHJlLWJhc2UgcmVvcmRlcmluZyBjb25zb25hbnQgaXMgZm91bmQsIHJlb3JkZXIgaXQgYWNjb3JkaW5nIHRvCiAgICAvLyB0aGUgZm9sbG93aW5nIHJ1bGVzOgogICAgaWYgKHRyeVByZWYgJiYgYmFzZSArIDEgPCBlbmQpIHsKICAgICAgZm9yICh2YXIgX2kyMyA9IGJhc2UgKyAxOyBfaTIzIDwgZW5kOyBfaTIzKyspIHsKICAgICAgICBpZiAoZ2x5cGhzW19pMjNdLmZlYXR1cmVzLnByZWYpIHsKICAgICAgICAgIC8vIDEuIE9ubHkgcmVvcmRlciBhIGdseXBoIHByb2R1Y2VkIGJ5IHN1YnN0aXR1dGlvbiBkdXJpbmcgYXBwbGljYXRpb24KICAgICAgICAgIC8vICAgIG9mIHRoZSA8cHJlZj4gZmVhdHVyZS4gKE5vdGUgdGhhdCBhIGZvbnQgbWF5IHNoYXBlIGEgUmEgY29uc29uYW50IHdpdGgKICAgICAgICAgIC8vICAgIHRoZSBmZWF0dXJlIGdlbmVyYWxseSBidXQgYmxvY2sgaXQgaW4gY2VydGFpbiBjb250ZXh0cy4pCgogICAgICAgICAgLy8gTm90ZTogV2UganVzdCBjaGVjayB0aGF0IHNvbWV0aGluZyBnb3Qgc3Vic3RpdHV0ZWQuICBXZSBkb24ndCBjaGVjayB0aGF0CiAgICAgICAgICAvLyB0aGUgPHByZWY+IGZlYXR1cmUgYWN0dWFsbHkgZGlkIGl0Li4uCiAgICAgICAgICAvLwogICAgICAgICAgLy8gUmVvcmRlciBwcmVmIG9ubHkgaWYgaXQgbGlnYXRlZC4KICAgICAgICAgIGlmIChnbHlwaHNbX2kyM10uaXNMaWdhdGVkICYmICFnbHlwaHNbX2kyM10uaXNNdWx0aXBsaWVkKSB7CiAgICAgICAgICAgIC8vIDIuIFRyeSB0byBmaW5kIGEgdGFyZ2V0IHBvc2l0aW9uIHRoZSBzYW1lIHdheSBhcyBmb3IgcHJlLWJhc2UgbWF0cmEuCiAgICAgICAgICAgIC8vICAgIElmIGl0IGlzIGZvdW5kLCByZW9yZGVyIHByZS1iYXNlIGNvbnNvbmFudCBnbHlwaC4KICAgICAgICAgICAgLy8KICAgICAgICAgICAgLy8gMy4gSWYgcG9zaXRpb24gaXMgbm90IGZvdW5kLCByZW9yZGVyIGltbWVkaWF0ZWx5IGJlZm9yZSBtYWluCiAgICAgICAgICAgIC8vICAgIGNvbnNvbmFudC4KICAgICAgICAgICAgdmFyIF9uZXdQb3MgPSBiYXNlOwoKICAgICAgICAgICAgLy8gTWFsYXlhbGFtIC8gVGFtaWwgZG8gbm90IGhhdmUgImhhbGYiIGZvcm1zIG9yIGV4cGxpY2l0IHZpcmFtYSBmb3Jtcy4KICAgICAgICAgICAgLy8gVGhlIGdseXBocyBmb3JtZWQgYnkgJ2hhbGYnIGFyZSBDaGlsbHVzIG9yIGxpZ2F0ZWQgZXhwbGljaXQgdmlyYW1hcy4KICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBwb3NpdGlvbiBtYXRyYSBhZnRlciB0aGVtLgogICAgICAgICAgICBpZiAocGxhbi51bmljb2RlU2NyaXB0ICE9PSAnTWFsYXlhbGFtJyAmJiBwbGFuLnVuaWNvZGVTY3JpcHQgIT09ICdUYW1pbCcpIHsKICAgICAgICAgICAgICB3aGlsZSAoX25ld1BvcyA+IHN0YXJ0ICYmICEoZ2x5cGhzW19uZXdQb3MgLSAxXS5zaGFwZXJJbmZvLmNhdGVnb3J5ICYgKENBVEVHT1JJRVMuTSB8IEhBTEFOVF9PUl9DT0VOR19GTEFHUykpKSB7CiAgICAgICAgICAgICAgICBfbmV3UG9zLS07CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAvLyBJbiBLaG1lciBjb2VuZyBtb2RlbCwgYSBILFJhIGNhbiBnbyAqYWZ0ZXIqIG1hdHJhcy4gIElmIGl0IGdvZXMgYWZ0ZXIgYQogICAgICAgICAgICAgIC8vIHNwbGl0IG1hdHJhLCBpdCBzaG91bGQgYmUgcmVvcmRlcmVkIHRvICpiZWZvcmUqIHRoZSBsZWZ0IHBhcnQgb2Ygc3VjaCBtYXRyYS4KICAgICAgICAgICAgICBpZiAoX25ld1BvcyA+IHN0YXJ0ICYmIGdseXBoc1tfbmV3UG9zIC0gMV0uc2hhcGVySW5mby5jYXRlZ29yeSA9PT0gQ0FURUdPUklFUy5NKSB7CiAgICAgICAgICAgICAgICB2YXIgX29sZFBvczIgPSBfaTIzOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IGJhc2UgKyAxOyBqIDwgX29sZFBvczI7IGorKykgewogICAgICAgICAgICAgICAgICBpZiAoZ2x5cGhzW2pdLnNoYXBlckluZm8uY2F0ZWdvcnkgPT09IENBVEVHT1JJRVMuTSkgewogICAgICAgICAgICAgICAgICAgIF9uZXdQb3MtLTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKF9uZXdQb3MgPiBzdGFydCAmJiBpc0hhbGFudE9yQ29lbmcoZ2x5cGhzW19uZXdQb3MgLSAxXSkpIHsKICAgICAgICAgICAgICAvLyAtPiBJZiBaV0ogb3IgWldOSiBmb2xsb3cgdGhpcyBoYWxhbnQsIHBvc2l0aW9uIGlzIG1vdmVkIGFmdGVyIGl0LgogICAgICAgICAgICAgIGlmIChfbmV3UG9zIDwgZW5kICYmIGlzSm9pbmVyKGdseXBoc1tfbmV3UG9zXSkpIHsKICAgICAgICAgICAgICAgIF9uZXdQb3MrKzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHZhciBfb2xkUG9zID0gX2kyMzsKICAgICAgICAgICAgdmFyIF90bXAgPSBnbHlwaHNbX29sZFBvc107CiAgICAgICAgICAgIGdseXBocy5zcGxpY2UuYXBwbHkoZ2x5cGhzLCBbX25ld1BvcyArIDEsIDBdLmNvbmNhdChnbHlwaHMuc3BsaWNlKF9uZXdQb3MsIF9vbGRQb3MgLSBfbmV3UG9zKSkpOwogICAgICAgICAgICBnbHlwaHNbX25ld1Bvc10gPSBfdG1wOwoKICAgICAgICAgICAgaWYgKF9uZXdQb3MgPD0gYmFzZSAmJiBiYXNlIDwgX29sZFBvcykgewogICAgICAgICAgICAgIGJhc2UrKzsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIC8vIEFwcGx5ICdpbml0JyB0byB0aGUgTGVmdCBNYXRyYSBpZiBpdCdzIGEgd29yZCBzdGFydC4KICAgIGlmIChnbHlwaHNbc3RhcnRdLnNoYXBlckluZm8ucG9zaXRpb24gPT09IFBPU0lUSU9OUy5QcmVfTSAmJiAoIXN0YXJ0IHx8ICEvQ2Z8TW4vLnRlc3QodW5pY29kZS5nZXRDYXRlZ29yeShnbHlwaHNbc3RhcnQgLSAxXS5jb2RlUG9pbnRzWzBdKSkpKSB7CiAgICAgIGdseXBoc1tzdGFydF0uZmVhdHVyZXMuaW5pdCA9IHRydWU7CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBuZXh0U3lsbGFibGUoZ2x5cGhzLCBzdGFydCkgewogIGlmIChzdGFydCA+PSBnbHlwaHMubGVuZ3RoKSByZXR1cm4gc3RhcnQ7CiAgdmFyIHN5bGxhYmxlID0gZ2x5cGhzW3N0YXJ0XS5zaGFwZXJJbmZvLnN5bGxhYmxlOwogIHdoaWxlICgrK3N0YXJ0IDwgZ2x5cGhzLmxlbmd0aCAmJiBnbHlwaHNbc3RhcnRdLnNoYXBlckluZm8uc3lsbGFibGUgPT09IHN5bGxhYmxlKSB7fQogIHJldHVybiBzdGFydDsKfQoKdmFyIF9jbGFzcyQ3Owp2YXIgX3RlbXAkMzsKdmFyIGNhdGVnb3JpZXMkMSA9IHVzZURhdGEuY2F0ZWdvcmllczsKdmFyIGRlY29tcG9zaXRpb25zJDIgPSB1c2VEYXRhLmRlY29tcG9zaXRpb25zOwp2YXIgdHJpZSQyID0gbmV3IFVuaWNvZGVUcmllKEJ1ZmZlcigiQUFJQUFBQUFBQUFBQUtuUUFWRU1ydlB0bkgrb0hVY1Z4K2ZkOTk3OTlXNWU4bXgrOU5rWW03WVVJMkt0aW1rVkRHM0ZXZ1ZURlkxRnFhMlZKaXJZQjBJYVVGTEJhS0dKVmlYaXI2b3hLQ1NCb2kwVVRLdGcyeUEyNmgrbWlsWU50TUgrMFdLMVZReXZ0QlMvNDg3aG5uY3lNenV6dTdON243a0hQc3p1N096TW1UTnpkbWRtZnp6ZlVtcGlVcWtlbUFNYndTWndLYmpjeE0xWEVMNFZ2QjI4RzN6QWsrNTZjTE1sZmdkWUFEdkJidkJGOEdXd0g5eGwrQ0ZMZndqOEJQd1UvTUtTMzgvQU1mQTg2djlybzl1Y1FjZFIrQ2pDUDRDVDRFbndEUGczZUFGTVRpazFBK2JBUE5nSU5vRkx3R2F3WlNwTGZ6WENyV0FiK0FqWURtNEJPOEZ1c0Fmc0EvdkJYZUFnT0FMdU5mdjNnNGZBY1hBQ1BBYWVBRStCNThCcDhOSlVwbk43V3FsWnNIWTYyOStBOEdMd1d2QUc4Qlp3Slhpbk9mNWVoQjhFTjRBZFlHRTZxN2RtRjl1dWdzOGh2ejBWNThuWksvTCtLdmEvQlg0QURvTjdwclA2SGdVUGdrZkE3M0wwZVF6SG53QlBnWCtZODArREY4RlVXNmxCTzR0YmpYQTl1QWk4cGozc1MyL0U5bWF3QlZ3TnRvSnQ1cHpyVFhnendrK0I3YXdQN3NUKzduWTZXeEZmUUJsZkFsOEgzd1UvQW5lemN1L0Q5cy9CTVJOM0hPRUo4RWR3TWtDL0o1SG1tWFptcTJmQklqZ0VWRWVwYmllTFg0RncwTW5TcnpSeG1yVnNtN01COFJlRFY0dmpyM2VrSnk3clpHVlBNYjE5NlhtNm91Zzgzb1J5dDRDcndEVmdLOWdHUHR6eG4zdVRPRDZZUERQTko1SG0wK0F6bmF6ZmZKN1o0S1NuWG5jZzNWZkFOOEVCaHg0Mi96L1VHZGJyeDUyc3I5eUg4QUZUcnQ1KzJHemZuV1BiS3V3N1pzelp5TmgveG93Wk0yYk1tREZqeHNReVo1bFBOczNoOW5CTllIdUFmcjlpYzlmZmlIbnNKenpuVTkxL2ozUCsyc25XWWY2RzhPL2duK0EwZU1uRXQ3dlFwNXVsWDROd0htd0VtN3JaOFVzUlhnNnVNUHZYSUh3UHVLN3JMbCtudTlGemZNeVlNV1BHcEdWdXNsbWFyditZTVdQU2tOcS9kMkQ4dU5ETm5ndmRpdkEyeTNqeTltNzJiRjl2M3ltT2YyTUV4cDhmRzJUc0FjZkEyd0pZQkpldFdCcTNpKzBmd1BhZndMbXpTbDBMRm1aTlBNTEhaNGZwbnNYMkFkamdjWEIrVDZrUGdlK0FHN0QvdlhZVy90THNjOXI5TStNa1Z5TE5SMW02ZzlnK1pmWXZtTUV4Y0hDbStmdFAwK1Q1eS9lMTdVdy9QWUx3SG5DMG04MFRIK3pHMzAvM21qU0RuUFMyL0I0cFVKNHJYM24rYjVIM285Mmw2VWpmdlo3eS9vSnpUb0dudThPNjZYVFBZZjgvSnI4WFdMNlRQWGY5YlBuSHRtVnMrODlBbnhWZ0RWZ1BMZ0t2QWcrWS9GNkg3YzFnQzdqS0hIOFhlSi94MTV2QWp0NHd2d1ZzN3dLZkJYdkFQdkExOEcxd3NKZXZqMzZmNWdqUzNldElxK2Z0OStQWVE3M2gvbkZzbjJEN2YrNWw3NWJvL1ZQWWZ0cFRibEZiMi9KbzJwZGpmTDB1WE9YL3F4Zm5wOHZaVmsyWHY5aGJtdStMeHZZdDNBLzcvV1pzUG9wdFBrcjliZEN2MXlhK2Q0VHVNTzhUcmU1bjRYa0lMd1NielA0bC9XSGF6WDEvL3IyTy96N2NGSG52U1lXOFIvVm0wMlpYSUh4SHplMVhkZjliYm43cDB6MmtEcm9OcjJYOVdMKzc5MzdzWDlmUCt2OWg5bjZqVHJmSTNqRzlFZnNmTjNHMzVQUi9HNHVSZlkzZU1Ud2RrRmEvQzNocmYya2NmeS94WVRPbXBycmZac0xiRWU3ckRQVy9VOVJydjlrL2FobVRMMGNXV3hQL1l4UmtndEVTK3p3TmhaUHMrRlFnTWovbGlFc3RvMkh4c1pCUVgycFpvTFpxV2M1cmlYRGFRQkxTdDFMM2hjbkUrVmN0N2FZVktDRWhiWGsyK2I3Tlo4NG1tWEF3Q2lMMTROZTg1UzYyTVlQY1hpNVN0TS9ZeGxKRjJsZmFiem5ac0M2L0M4MDd4dlpWK3lGdmU5ZDFLWS8vZDNITk84cEtVWHVURGgwR3BwN0I4NTJxNlFGTWdkV00yZGZiQXhPdUVQUUVmY0VzTzVmcXVKTFpyTWZ5Q3RXUDBoZVpGNm9TZGlIOXU0YVF2SlJJSi9lTDZCQnluSXRMcDVEMkpSa1k1TDV1M3hBZjZsdmlYSFdTWmNmYUtPLys1enZPL2M5WHRxOHVSWFNPYmQrOGJTMHpKclMxcnhUeVg3ay9hMG5yazVEK21IZU9DOTB1cTFRMjE2WDU3bHlrZnFIdDYydVRHSjJyYXQraS9rdHR5cS9SU2kyOVBsY2xaZjJYeHE1NVplU1YzNFQ5NmQ1WDVQcVpKOUkzWlgybG5rWHQzeEwxS3lyYXYvTHV0Ylo2dUd4dVM2c3M2VjNwWE9YWTRrUDdFQmZ5SlQ3KzRUSlFTOXVmNzRmNm4rMys2WklpOWJDdGllYXRGZkN4VU14NEtNWWZ5L3B6ckIzMHZtODhxOVNaMTFLK245ZWVOTjYxMlVGS1dYOHVJOVRtUmNhN1RiV3ZLeTJKdkY2bmFGK2IvMHVSdXBacDM1Y1ppa2hadnluaVkyUi9DYmRCM3ZYeW5JQzZoYlJCSGY0bDF4cHM2dzR4L2xWRXR4UnRHWk11UkE4dU5oL2pmWVY4a2Rwc0JVc3pjT0RyRDdFMkpUMktyQjNWNlhNaGJkTmpjWEl0eHphT0pXa3BmOTc2L0k1Z2xRbjFzYkxQODZVOUZRdno0bDBTMjgvbGNXVUpiYnJFMmwrWi9UbEh2aTQva3ZaWExNeXJteTFQVzd4OGhsNlVGZ3ZsbU5NMUpxM2FKM1NlMHlKY3Bkd1M2bU9wL1pnTFg1TjFyZEZLYUl6SDl6dHF1TWJxcSsvcUNGUmsraFJveVp2clRIdU84Zk5kL2RqbUV6WkozVGRpc04xYk5RTmw3eTk2RFYvM21Wa1R0d2FzVmRrMWFpNnliR2xEZWs4blQxZlhjNE01dFZTUHZocU9zV1FlWFFzOEwxbjNJcmFkVThPeENlVmpLN2RyN0RwbDBjTUhuVXZ0MThUemZWc2ZiL3BaWTU2ZlYyR25WUFZJWWFPaTl4Y1pKOGNtS2N1M3djdVBzVkhWNWNkS0ZmWlhOWmVmcDVzV2Z0K3d6UjFjY3pLQ3hoOTlOUng3Nkh2d09wV052NlladEFhanQ2V1B5UHN3dFZWcy9WT0o3eHBZeDNWUjMxZXI3Z014TnVWOVE0NDNDRGxXNDNLdVlTWGJsc3liZktZdDU4dHJmZXo3QTFYN1RkbStWN1Rjb3VkTCtMcFZHZjJraE42M1U1T3lENUFmME5vVXYwNmw3SmMwUnRlK3NvNHhMOUF5eTNSeitTdWZZNUpmMjY3eGNtN0o0ZGQza3VtSU9ybWs3UGw1NDliVVkxcHVJOTFHZGI4VHB1Kzl0am1oWEZkd3RmVnNUdjVTUXZYS1cwY0s0ZVhnUEJPNmlKMDdOTlZPSEg3L3RGMWp5SmRuV2JyVS9VYXUzVk5JMTU2UVoyWmFaRnU3Nmk2dlFYeTlZSjJIOVFaOTdhRjNwMXhseDF5ZnVZUmNkMEtsN055YVgxOTArcFVPS0kwdHZ1czVqNy9uU1dLTG8zRkVSOFIzTEhFeDhncXdnZTFQT2dpMWwxeWZpclYzekhwSVNIeHMzdkxlRlhPZWxsY0cxREZHYkdQMDBQUGtlS0VPYVhJc3FoemJydU9oOVFrNUwwOG5XMmdySjBhdnN2V29jdjB6UmgvZkdDRzBUVjM1aEI0djByZHM1VmRkam0vc0ZDS3grYVhTdDJ5YWxQWnNvbHhYVzQ2Q0RuWHAwWVEwcmRzbzlPVVlQU1lUNit5enV4eHpsclZmRmZhdlEvTEtxc1ArZGJWekUvMHFSYjhwS2luNlY5VTZGbm4yNHBxSHVmTE1XeTkwblYrMERrWG1jcmIwVXErNnBVNy9xY3MvNjdTSFRlVGFhQms5aXB5WFF2THFXMVU3dVBLcHV4L0VTbFA5dW15ZFI4SDNVanpIb1h4ajAvSjFZcjV1YkhzUHJXT0pxeEsraGs1citFVnRIM3BlMVhXSVhhKzF2UTlZSi9vWnJlMWJHUmVoM3hLV2VYN0J4ZllzdHdoNWVyckdKaTU5YmU4NDgyY1NzZlVQUVQ0WGxjOUsrWE1tYXRjWTBmbzIrU3hZUXMvNFhPOE0wM05nL1R4dWpZSCtGUkVMU2RIKzZtdHZldThpdGIxQ3k3QzlYOEdmc1ZPY2ZOODZSSGc1NndKMG9iNXFPei9FL3JJZHE3WWhGMzQvMGNmb2VXS1ZmdEpqSWJXRGJEZlhlWFIvcHJCT0tXSi8zZGQ0MytzciszMlR2Z0VJRVo2LzdadDUvbDdnaE1tNzd1K2V5NGdjejV4Zmt0QTV2RTlDNXZ5MlkzbHBYZVg0MHRIY0xNWDQycVpIUy9sdFpsdVhpU2xEeGlsbHQzVmRJdnVmYmMwajc1d3k1YVdhT3hXUlVabWZsNW5EU2gzTHpvV2JYSk9nOHV1bUtrbmRwMVBuSDJJUGZlK1UzM3o3dmpXaGRQUXVXTWg0cmFxeFdNaDlYODlSWnRTWjcvSnB5WHMzTldRY0VUTjNDWkhVL2xtVm5zdFpCMStaZk01QS8xVkoyVjl0OHdUWE4xUytmMjdtemF1bGJDeEpIZVB3QzFUei8wSzEvVmRQdnRPc2JhK3ZMN1p4TTEvamFrSi9WOS95ZmR0TngraTdiaFZSUmxsL3JySytzazNxTHQvM1QwYWZIK3R6ejFIRGZ4elovSGxHRGR1SzF5L0dMMjF6dktwdFFHV0ZTcFZsRm0weitaeEQvdmRBdDlFcVE5NzFOa1JIVzdxeXRvZzUzK2NmVmZlRkdMU3RmZGRmWWthNXg2ZGwreWkvLzR6Ni81NTlhVW40LysvazJwdjhCcWZNLzBxVkNudStJZjJPSlBSWlVjeXpKRi81UlFtNXh0TTlsbitMUk4rOFU5K2lNUVMxVmVnOXEyei9UbFYzRXR0My9yTE9JWE9vb2tpZHkvNVgzR1lEK1M4YTF6MmUwdkg2OTVUOXZoRXFkYlkvLzBkVTNqV1oycllxL2N2Q1JUOHIwOC9OTGxUNS96eVNkU3VydjF5YkxpdXA1dEFwNStOTnpmUEo1cjYxd2FyYXBhakl0ZlRRTmVLNjEwL3JXRU1QeWIrdU9vL2llclJOYkdVMDFaK3JxbmVJUFdOc1Q5dDFyRCtPWXI4cm0wZUt2cC9DaDFQNFllcHl5K2hXVkQvZitWV1hYNVgrVFpkZlpaK0tMYjlKK1M4PSIsImJhc2U2NCIpKTsKdmFyIHN0YXRlTWFjaGluZSQxID0gbmV3IFN0YXRlTWFjaGluZSh1c2VEYXRhKTsKCi8qKgogKiBUaGlzIHNoYXBlciBpcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgVW5pdmVyc2FsIFNoYXBpbmcgRW5naW5lLCB3aGljaAogKiB1c2VzIFVuaWNvZGUgZGF0YSB0byBzaGFwZSBhIG51bWJlciBvZiBzY3JpcHRzIHdpdGhvdXQgYSBkZWRpY2F0ZWQgc2hhcGluZyBlbmdpbmUuCiAqIFNlZSBodHRwczovL3d3dy5taWNyb3NvZnQuY29tL3R5cG9ncmFwaHkvT3BlblR5cGVEZXYvVVNFL2ludHJvLmh0bS4KICovCnZhciBVbml2ZXJzYWxTaGFwZXIgPSAoX3RlbXAkMyA9IF9jbGFzcyQ3ID0gZnVuY3Rpb24gKF9EZWZhdWx0U2hhcGVyKSB7CiAgX2luaGVyaXRzKFVuaXZlcnNhbFNoYXBlciwgX0RlZmF1bHRTaGFwZXIpOwoKICBmdW5jdGlvbiBVbml2ZXJzYWxTaGFwZXIoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVW5pdmVyc2FsU2hhcGVyKTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX0RlZmF1bHRTaGFwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7CiAgfQoKICBVbml2ZXJzYWxTaGFwZXIucGxhbkZlYXR1cmVzID0gZnVuY3Rpb24gcGxhbkZlYXR1cmVzKHBsYW4pIHsKICAgIHBsYW4uYWRkU3RhZ2Uoc2V0dXBTeWxsYWJsZXMkMSk7CgogICAgLy8gRGVmYXVsdCBnbHlwaCBwcmUtcHJvY2Vzc2luZyBncm91cAogICAgcGxhbi5hZGRTdGFnZShbJ2xvY2wnLCAnY2NtcCcsICdudWt0JywgJ2FraG4nXSk7CgogICAgLy8gUmVvcmRlcmluZyBncm91cAogICAgcGxhbi5hZGRTdGFnZShjbGVhclN1YnN0aXR1dGlvbkZsYWdzKTsKICAgIHBsYW4uYWRkU3RhZ2UoWydycGhmJ10sIGZhbHNlKTsKICAgIHBsYW4uYWRkU3RhZ2UocmVjb3JkUnBoZik7CiAgICBwbGFuLmFkZFN0YWdlKGNsZWFyU3Vic3RpdHV0aW9uRmxhZ3MpOwogICAgcGxhbi5hZGRTdGFnZShbJ3ByZWYnXSk7CiAgICBwbGFuLmFkZFN0YWdlKHJlY29yZFByZWYpOwoKICAgIC8vIE9ydGhvZ3JhcGhpYyB1bml0IHNoYXBpbmcgZ3JvdXAKICAgIHBsYW4uYWRkU3RhZ2UoWydya3JmJywgJ2FidmYnLCAnYmx3ZicsICdoYWxmJywgJ3BzdGYnLCAndmF0dScsICdjamN0J10pOwogICAgcGxhbi5hZGRTdGFnZShyZW9yZGVyKTsKCiAgICAvLyBUb3BvZ3JhcGhpY2FsIGZlYXR1cmVzCiAgICAvLyBTY3JpcHRzIHRoYXQgbmVlZCB0aGlzIGFyZSBoYW5kbGVkIGJ5IHRoZSBBcmFiaWMgc2hhcGVyLCBub3QgaW1wbGVtZW50ZWQgaGVyZSBmb3Igbm93LgogICAgLy8gcGxhbi5hZGRTdGFnZShbJ2lzb2wnLCAnaW5pdCcsICdtZWRpJywgJ2ZpbmEnLCAnbWVkMicsICdmaW4yJywgJ2ZpbjMnXSwgZmFsc2UpOwoKICAgIC8vIFN0YW5kYXJkIHRvcG9ncmFwaGljIHByZXNlbnRhdGlvbiBhbmQgcG9zaXRpb25hbCBmZWF0dXJlIGFwcGxpY2F0aW9uCiAgICBwbGFuLmFkZFN0YWdlKFsnYWJ2cycsICdibHdzJywgJ3ByZXMnLCAncHN0cycsICdkaXN0JywgJ2Fidm0nLCAnYmx3bSddKTsKICB9OwoKICBVbml2ZXJzYWxTaGFwZXIuYXNzaWduRmVhdHVyZXMgPSBmdW5jdGlvbiBhc3NpZ25GZWF0dXJlcyhwbGFuLCBnbHlwaHMpIHsKICAgIHZhciBfbG9vcCA9IGZ1bmN0aW9uIF9sb29wKGkpIHsKICAgICAgdmFyIGNvZGVwb2ludCA9IGdseXBoc1tpXS5jb2RlUG9pbnRzWzBdOwogICAgICBpZiAoZGVjb21wb3NpdGlvbnMkMltjb2RlcG9pbnRdKSB7CiAgICAgICAgdmFyIGRlY29tcG9zZWQgPSBkZWNvbXBvc2l0aW9ucyQyW2NvZGVwb2ludF0ubWFwKGZ1bmN0aW9uIChjKSB7CiAgICAgICAgICB2YXIgZyA9IHBsYW4uZm9udC5nbHlwaEZvckNvZGVQb2ludChjKTsKICAgICAgICAgIHJldHVybiBuZXcgR2x5cGhJbmZvKHBsYW4uZm9udCwgZy5pZCwgW2NdLCBnbHlwaHNbaV0uZmVhdHVyZXMpOwogICAgICAgIH0pOwoKICAgICAgICBnbHlwaHMuc3BsaWNlLmFwcGx5KGdseXBocywgW2ksIDFdLmNvbmNhdChkZWNvbXBvc2VkKSk7CiAgICAgIH0KICAgIH07CgogICAgLy8gRGVjb21wb3NlIHNwbGl0IHZvd2VscwogICAgLy8gVE9ETzogZG8gdGhpcyBpbiBhIG1vcmUgZ2VuZXJhbCB1bmljb2RlIG5vcm1hbGl6ZXIKICAgIGZvciAodmFyIGkgPSBnbHlwaHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgX2xvb3AoaSk7CiAgICB9CiAgfTsKCiAgcmV0dXJuIFVuaXZlcnNhbFNoYXBlcjsKfShEZWZhdWx0U2hhcGVyKSwgX2NsYXNzJDcuemVyb01hcmtXaWR0aHMgPSAnQkVGT1JFX0dQT1MnLCBfdGVtcCQzKTsKZnVuY3Rpb24gdXNlQ2F0ZWdvcnkoZ2x5cGgpIHsKICByZXR1cm4gdHJpZSQyLmdldChnbHlwaC5jb2RlUG9pbnRzWzBdKTsKfQoKdmFyIFVTRUluZm8gPSBmdW5jdGlvbiBVU0VJbmZvKGNhdGVnb3J5LCBzeWxsYWJsZVR5cGUsIHN5bGxhYmxlKSB7CiAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFVTRUluZm8pOwoKICB0aGlzLmNhdGVnb3J5ID0gY2F0ZWdvcnk7CiAgdGhpcy5zeWxsYWJsZVR5cGUgPSBzeWxsYWJsZVR5cGU7CiAgdGhpcy5zeWxsYWJsZSA9IHN5bGxhYmxlOwp9OwoKZnVuY3Rpb24gc2V0dXBTeWxsYWJsZXMkMShmb250LCBnbHlwaHMpIHsKICB2YXIgc3lsbGFibGUgPSAwOwogIGZvciAodmFyIF9pdGVyYXRvciA9IHN0YXRlTWFjaGluZSQxLm1hdGNoKGdseXBocy5tYXAodXNlQ2F0ZWdvcnkpKSwgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICB2YXIgX3JlZjsKCiAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgfSBlbHNlIHsKICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgIH0KCiAgICB2YXIgX3JlZjIgPSBfcmVmLAogICAgICAgIHN0YXJ0ID0gX3JlZjJbMF0sCiAgICAgICAgZW5kID0gX3JlZjJbMV0sCiAgICAgICAgdGFncyA9IF9yZWYyWzJdOwoKICAgICsrc3lsbGFibGU7CgogICAgLy8gQ3JlYXRlIHNoYXBlciBpbmZvCiAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPD0gZW5kOyBpKyspIHsKICAgICAgZ2x5cGhzW2ldLnNoYXBlckluZm8gPSBuZXcgVVNFSW5mbyhjYXRlZ29yaWVzJDFbdXNlQ2F0ZWdvcnkoZ2x5cGhzW2ldKV0sIHRhZ3NbMF0sIHN5bGxhYmxlKTsKICAgIH0KCiAgICAvLyBBc3NpZ24gcnBoZiBmZWF0dXJlCiAgICB2YXIgbGltaXQgPSBnbHlwaHNbc3RhcnRdLnNoYXBlckluZm8uY2F0ZWdvcnkgPT09ICdSJyA/IDEgOiBNYXRoLm1pbigzLCBlbmQgLSBzdGFydCk7CiAgICBmb3IgKHZhciBfaTIgPSBzdGFydDsgX2kyIDwgc3RhcnQgKyBsaW1pdDsgX2kyKyspIHsKICAgICAgZ2x5cGhzW19pMl0uZmVhdHVyZXMucnBoZiA9IHRydWU7CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBjbGVhclN1YnN0aXR1dGlvbkZsYWdzKGZvbnQsIGdseXBocykgewogIGZvciAodmFyIF9pdGVyYXRvcjIgPSBnbHlwaHMsIF9pc0FycmF5MiA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMiksIF9pMyA9IDAsIF9pdGVyYXRvcjIgPSBfaXNBcnJheTIgPyBfaXRlcmF0b3IyIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjIpOzspIHsKICAgIHZhciBfcmVmMzsKCiAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgIGlmIChfaTMgPj0gX2l0ZXJhdG9yMi5sZW5ndGgpIGJyZWFrOwogICAgICBfcmVmMyA9IF9pdGVyYXRvcjJbX2kzKytdOwogICAgfSBlbHNlIHsKICAgICAgX2kzID0gX2l0ZXJhdG9yMi5uZXh0KCk7CiAgICAgIGlmIChfaTMuZG9uZSkgYnJlYWs7CiAgICAgIF9yZWYzID0gX2kzLnZhbHVlOwogICAgfQoKICAgIHZhciBnbHlwaCA9IF9yZWYzOwoKICAgIGdseXBoLnN1YnN0aXR1dGVkID0gZmFsc2U7CiAgfQp9CgpmdW5jdGlvbiByZWNvcmRScGhmKGZvbnQsIGdseXBocykgewogIGZvciAodmFyIF9pdGVyYXRvcjMgPSBnbHlwaHMsIF9pc0FycmF5MyA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMyksIF9pNCA9IDAsIF9pdGVyYXRvcjMgPSBfaXNBcnJheTMgPyBfaXRlcmF0b3IzIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjMpOzspIHsKICAgIHZhciBfcmVmNDsKCiAgICBpZiAoX2lzQXJyYXkzKSB7CiAgICAgIGlmIChfaTQgPj0gX2l0ZXJhdG9yMy5sZW5ndGgpIGJyZWFrOwogICAgICBfcmVmNCA9IF9pdGVyYXRvcjNbX2k0KytdOwogICAgfSBlbHNlIHsKICAgICAgX2k0ID0gX2l0ZXJhdG9yMy5uZXh0KCk7CiAgICAgIGlmIChfaTQuZG9uZSkgYnJlYWs7CiAgICAgIF9yZWY0ID0gX2k0LnZhbHVlOwogICAgfQoKICAgIHZhciBnbHlwaCA9IF9yZWY0OwoKICAgIGlmIChnbHlwaC5zdWJzdGl0dXRlZCAmJiBnbHlwaC5mZWF0dXJlcy5ycGhmKSB7CiAgICAgIC8vIE1hcmsgYSBzdWJzdGl0dXRlZCByZXBoYS4KICAgICAgZ2x5cGguc2hhcGVySW5mby5jYXRlZ29yeSA9ICdSJzsKICAgIH0KICB9Cn0KCmZ1bmN0aW9uIHJlY29yZFByZWYoZm9udCwgZ2x5cGhzKSB7CiAgZm9yICh2YXIgX2l0ZXJhdG9yNCA9IGdseXBocywgX2lzQXJyYXk0ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3I0KSwgX2k1ID0gMCwgX2l0ZXJhdG9yNCA9IF9pc0FycmF5NCA/IF9pdGVyYXRvcjQgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yNCk7OykgewogICAgdmFyIF9yZWY1OwoKICAgIGlmIChfaXNBcnJheTQpIHsKICAgICAgaWYgKF9pNSA+PSBfaXRlcmF0b3I0Lmxlbmd0aCkgYnJlYWs7CiAgICAgIF9yZWY1ID0gX2l0ZXJhdG9yNFtfaTUrK107CiAgICB9IGVsc2UgewogICAgICBfaTUgPSBfaXRlcmF0b3I0Lm5leHQoKTsKICAgICAgaWYgKF9pNS5kb25lKSBicmVhazsKICAgICAgX3JlZjUgPSBfaTUudmFsdWU7CiAgICB9CgogICAgdmFyIGdseXBoID0gX3JlZjU7CgogICAgaWYgKGdseXBoLnN1YnN0aXR1dGVkKSB7CiAgICAgIC8vIE1hcmsgYSBzdWJzdGl0dXRlZCBwcmVmIGFzIFZQcmUsIGFzIHRoZXkgYmVoYXZlIHRoZSBzYW1lIHdheS4KICAgICAgZ2x5cGguc2hhcGVySW5mby5jYXRlZ29yeSA9ICdWUHJlJzsKICAgIH0KICB9Cn0KCmZ1bmN0aW9uIHJlb3JkZXIoZm9udCwgZ2x5cGhzKSB7CiAgdmFyIGRvdHRlZENpcmNsZSA9IGZvbnQuZ2x5cGhGb3JDb2RlUG9pbnQoMHgyNWNjKS5pZDsKCiAgZm9yICh2YXIgc3RhcnQgPSAwLCBlbmQgPSBuZXh0U3lsbGFibGUkMShnbHlwaHMsIDApOyBzdGFydCA8IGdseXBocy5sZW5ndGg7IHN0YXJ0ID0gZW5kLCBlbmQgPSBuZXh0U3lsbGFibGUkMShnbHlwaHMsIHN0YXJ0KSkgewogICAgdmFyIGkgPSB2b2lkIDAsCiAgICAgICAgaiA9IHZvaWQgMDsKICAgIHZhciBpbmZvID0gZ2x5cGhzW3N0YXJ0XS5zaGFwZXJJbmZvOwogICAgdmFyIHR5cGUgPSBpbmZvLnN5bGxhYmxlVHlwZTsKCiAgICAvLyBPbmx5IGEgZmV3IHN5bGxhYmxlIHR5cGVzIG5lZWQgcmVvcmRlcmluZy4KICAgIGlmICh0eXBlICE9PSAndmlyYW1hX3Rlcm1pbmF0ZWRfY2x1c3RlcicgJiYgdHlwZSAhPT0gJ3N0YW5kYXJkX2NsdXN0ZXInICYmIHR5cGUgIT09ICdicm9rZW5fY2x1c3RlcicpIHsKICAgICAgY29udGludWU7CiAgICB9CgogICAgLy8gSW5zZXJ0IGEgZG90dGVkIGNpcmNsZSBnbHlwaCBpbiBicm9rZW4gY2x1c3RlcnMuCiAgICBpZiAodHlwZSA9PT0gJ2Jyb2tlbl9jbHVzdGVyJyAmJiBkb3R0ZWRDaXJjbGUpIHsKICAgICAgdmFyIGcgPSBuZXcgR2x5cGhJbmZvKGZvbnQsIGRvdHRlZENpcmNsZSwgWzB4MjVjY10pOwogICAgICBnLnNoYXBlckluZm8gPSBpbmZvOwoKICAgICAgLy8gSW5zZXJ0IGFmdGVyIHBvc3NpYmxlIFJlcGhhLgogICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZCAmJiBnbHlwaHNbaV0uc2hhcGVySW5mby5jYXRlZ29yeSA9PT0gJ1InOyBpKyspIHt9CiAgICAgIGdseXBocy5zcGxpY2UoKytpLCAwLCBnKTsKICAgICAgZW5kKys7CiAgICB9CgogICAgLy8gTW92ZSB0aGluZ3MgZm9yd2FyZC4KICAgIGlmIChpbmZvLmNhdGVnb3J5ID09PSAnUicgJiYgZW5kIC0gc3RhcnQgPiAxKSB7CiAgICAgIC8vIEdvdCBhIHJlcGhhLiBSZW9yZGVyIGl0IHRvIGFmdGVyIGZpcnN0IGJhc2UsIGJlZm9yZSBmaXJzdCBoYWxhbnQuCiAgICAgIGZvciAoaSA9IHN0YXJ0ICsgMTsgaSA8IGVuZDsgaSsrKSB7CiAgICAgICAgaW5mbyA9IGdseXBoc1tpXS5zaGFwZXJJbmZvOwogICAgICAgIGlmIChpc0Jhc2UoaW5mbykgfHwgaXNIYWxhbnQoZ2x5cGhzW2ldKSkgewogICAgICAgICAgLy8gSWYgd2UgaGl0IGEgaGFsYW50LCBtb3ZlIGJlZm9yZSBpdDsgb3RoZXJ3aXNlIGl0J3MgYSBiYXNlOiBtb3ZlIHRvIGl0J3MKICAgICAgICAgIC8vIHBsYWNlLCBhbmQgc2hpZnQgdGhpbmdzIGluIGJldHdlZW4gYmFja3dhcmQuCiAgICAgICAgICBpZiAoaXNIYWxhbnQoZ2x5cGhzW2ldKSkgewogICAgICAgICAgICBpLS07CiAgICAgICAgICB9CgogICAgICAgICAgZ2x5cGhzLnNwbGljZS5hcHBseShnbHlwaHMsIFtzdGFydCwgMF0uY29uY2F0KGdseXBocy5zcGxpY2Uoc3RhcnQgKyAxLCBpIC0gc3RhcnQpLCBbZ2x5cGhzW2ldXSkpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICB9CgogICAgLy8gTW92ZSB0aGluZ3MgYmFjay4KICAgIGZvciAoaSA9IHN0YXJ0LCBqID0gZW5kOyBpIDwgZW5kOyBpKyspIHsKICAgICAgaW5mbyA9IGdseXBoc1tpXS5zaGFwZXJJbmZvOwogICAgICBpZiAoaXNCYXNlKGluZm8pIHx8IGlzSGFsYW50KGdseXBoc1tpXSkpIHsKICAgICAgICAvLyBJZiB3ZSBoaXQgYSBoYWxhbnQsIG1vdmUgYWZ0ZXIgaXQ7IG90aGVyd2lzZSBpdCdzIGEgYmFzZTogbW92ZSB0byBpdCdzCiAgICAgICAgLy8gcGxhY2UsIGFuZCBzaGlmdCB0aGluZ3MgaW4gYmV0d2VlbiBiYWNrd2FyZC4KICAgICAgICBqID0gaXNIYWxhbnQoZ2x5cGhzW2ldKSA/IGkgKyAxIDogaTsKICAgICAgfSBlbHNlIGlmICgoaW5mby5jYXRlZ29yeSA9PT0gJ1ZQcmUnIHx8IGluZm8uY2F0ZWdvcnkgPT09ICdWTVByZScpICYmIGogPCBpKSB7CiAgICAgICAgZ2x5cGhzLnNwbGljZS5hcHBseShnbHlwaHMsIFtqLCAxLCBnbHlwaHNbaV1dLmNvbmNhdChnbHlwaHMuc3BsaWNlKGosIGkgLSBqKSkpOwogICAgICB9CiAgICB9CiAgfQp9CgpmdW5jdGlvbiBuZXh0U3lsbGFibGUkMShnbHlwaHMsIHN0YXJ0KSB7CiAgaWYgKHN0YXJ0ID49IGdseXBocy5sZW5ndGgpIHJldHVybiBzdGFydDsKICB2YXIgc3lsbGFibGUgPSBnbHlwaHNbc3RhcnRdLnNoYXBlckluZm8uc3lsbGFibGU7CiAgd2hpbGUgKCsrc3RhcnQgPCBnbHlwaHMubGVuZ3RoICYmIGdseXBoc1tzdGFydF0uc2hhcGVySW5mby5zeWxsYWJsZSA9PT0gc3lsbGFibGUpIHt9CiAgcmV0dXJuIHN0YXJ0Owp9CgpmdW5jdGlvbiBpc0hhbGFudChnbHlwaCkgewogIHJldHVybiBnbHlwaC5zaGFwZXJJbmZvLmNhdGVnb3J5ID09PSAnSCcgJiYgIWdseXBoLmlzTGlnYXRlZDsKfQoKZnVuY3Rpb24gaXNCYXNlKGluZm8pIHsKICByZXR1cm4gaW5mby5jYXRlZ29yeSA9PT0gJ0InIHx8IGluZm8uY2F0ZWdvcnkgPT09ICdHQic7Cn0KCnZhciBTSEFQRVJTID0gewogIGFyYWI6IEFyYWJpY1NoYXBlciwgLy8gQXJhYmljCiAgbW9uZzogQXJhYmljU2hhcGVyLCAvLyBNb25nb2xpYW4KICBzeXJjOiBBcmFiaWNTaGFwZXIsIC8vIFN5cmlhYwogICdua28gJzogQXJhYmljU2hhcGVyLCAvLyBOJ0tvCiAgcGhhZzogQXJhYmljU2hhcGVyLCAvLyBQaGFncyBQYQogIG1hbmQ6IEFyYWJpY1NoYXBlciwgLy8gTWFuZGFpYwogIG1hbmk6IEFyYWJpY1NoYXBlciwgLy8gTWFuaWNoYWVhbgogIHBobHA6IEFyYWJpY1NoYXBlciwgLy8gUHNhbHRlciBQYWhsYXZpCgogIGhhbmc6IEhhbmd1bFNoYXBlciwgLy8gSGFuZ3VsCgogIGJuZzI6IEluZGljU2hhcGVyLCAvLyBCZW5nYWxpCiAgYmVuZzogSW5kaWNTaGFwZXIsIC8vIEJlbmdhbGkKICBkZXYyOiBJbmRpY1NoYXBlciwgLy8gRGV2YW5hZ2FyaQogIGRldmE6IEluZGljU2hhcGVyLCAvLyBEZXZhbmFnYXJpCiAgZ2pyMjogSW5kaWNTaGFwZXIsIC8vIEd1amFyYXRpCiAgZ3VqcjogSW5kaWNTaGFwZXIsIC8vIEd1amFyYXRpCiAgZ3VydTogSW5kaWNTaGFwZXIsIC8vIEd1cm11a2hpCiAgZ3VyMjogSW5kaWNTaGFwZXIsIC8vIEd1cm11a2hpCiAga25kYTogSW5kaWNTaGFwZXIsIC8vIEthbm5hZGEKICBrbmQyOiBJbmRpY1NoYXBlciwgLy8gS2FubmFkYQogIG1sbTI6IEluZGljU2hhcGVyLCAvLyBNYWxheWFsYW0KICBtbHltOiBJbmRpY1NoYXBlciwgLy8gTWFsYXlhbGFtCiAgb3J5MjogSW5kaWNTaGFwZXIsIC8vIE9yaXlhCiAgb3J5YTogSW5kaWNTaGFwZXIsIC8vIE9yaXlhCiAgdGFtbDogSW5kaWNTaGFwZXIsIC8vIFRhbWlsCiAgdG1sMjogSW5kaWNTaGFwZXIsIC8vIFRhbWlsCiAgdGVsdTogSW5kaWNTaGFwZXIsIC8vIFRlbHVndQogIHRlbDI6IEluZGljU2hhcGVyLCAvLyBUZWx1Z3UKICBraG1yOiBJbmRpY1NoYXBlciwgLy8gS2htZXIKCiAgYmFsaTogVW5pdmVyc2FsU2hhcGVyLCAvLyBCYWxpbmVzZQogIGJhdGs6IFVuaXZlcnNhbFNoYXBlciwgLy8gQmF0YWsKICBicmFoOiBVbml2ZXJzYWxTaGFwZXIsIC8vIEJyYWhtaQogIGJ1Z2k6IFVuaXZlcnNhbFNoYXBlciwgLy8gQnVnaW5lc2UKICBidWhkOiBVbml2ZXJzYWxTaGFwZXIsIC8vIEJ1aGlkCiAgY2FrbTogVW5pdmVyc2FsU2hhcGVyLCAvLyBDaGFrbWEKICBjaGFtOiBVbml2ZXJzYWxTaGFwZXIsIC8vIENoYW0KICBkdXBsOiBVbml2ZXJzYWxTaGFwZXIsIC8vIER1cGxveWFuCiAgZWd5cDogVW5pdmVyc2FsU2hhcGVyLCAvLyBFZ3lwdGlhbiBIaWVyb2dseXBocwogIGdyYW46IFVuaXZlcnNhbFNoYXBlciwgLy8gR3JhbnRoYQogIGhhbm86IFVuaXZlcnNhbFNoYXBlciwgLy8gSGFudW5vbwogIGphdmE6IFVuaXZlcnNhbFNoYXBlciwgLy8gSmF2YW5lc2UKICBrdGhpOiBVbml2ZXJzYWxTaGFwZXIsIC8vIEthaXRoaQogIGthbGk6IFVuaXZlcnNhbFNoYXBlciwgLy8gS2F5YWggTGkKICBraGFyOiBVbml2ZXJzYWxTaGFwZXIsIC8vIEtoYXJvc2h0aGkKICBraG9qOiBVbml2ZXJzYWxTaGFwZXIsIC8vIEtob2praQogIHNpbmQ6IFVuaXZlcnNhbFNoYXBlciwgLy8gS2h1ZGF3YWRpCiAgbGVwYzogVW5pdmVyc2FsU2hhcGVyLCAvLyBMZXBjaGEKICBsaW1iOiBVbml2ZXJzYWxTaGFwZXIsIC8vIExpbWJ1CiAgbWFoajogVW5pdmVyc2FsU2hhcGVyLCAvLyBNYWhhamFuaQogIC8vIG1hbmQ6IFVuaXZlcnNhbFNoYXBlciwgLy8gTWFuZGFpYwogIC8vIG1hbmk6IFVuaXZlcnNhbFNoYXBlciwgLy8gTWFuaWNoYWVhbgogIG10ZWk6IFVuaXZlcnNhbFNoYXBlciwgLy8gTWVpdGVpIE1heWVrCiAgbW9kaTogVW5pdmVyc2FsU2hhcGVyLCAvLyBNb2RpCiAgLy8gbW9uZzogVW5pdmVyc2FsU2hhcGVyLCAvLyBNb25nb2xpYW4KICAvLyAnbmtvICc6IFVuaXZlcnNhbFNoYXBlciwgLy8gTuKAmUtvCiAgaG1uZzogVW5pdmVyc2FsU2hhcGVyLCAvLyBQYWhhd2ggSG1vbmcKICAvLyBwaGFnOiBVbml2ZXJzYWxTaGFwZXIsIC8vIFBoYWdzLXBhCiAgLy8gcGhscDogVW5pdmVyc2FsU2hhcGVyLCAvLyBQc2FsdGVyIFBhaGxhdmkKICByam5nOiBVbml2ZXJzYWxTaGFwZXIsIC8vIFJlamFuZwogIHNhdXI6IFVuaXZlcnNhbFNoYXBlciwgLy8gU2F1cmFzaHRyYQogIHNocmQ6IFVuaXZlcnNhbFNoYXBlciwgLy8gU2hhcmFkYQogIHNpZGQ6IFVuaXZlcnNhbFNoYXBlciwgLy8gU2lkZGhhbQogIHNpbmg6IFVuaXZlcnNhbFNoYXBlciwgLy8gU2luaGFsYQogIHN1bmQ6IFVuaXZlcnNhbFNoYXBlciwgLy8gU3VuZGFuZXNlCiAgc3lsbzogVW5pdmVyc2FsU2hhcGVyLCAvLyBTeWxvdGkgTmFncmkKICB0Z2xnOiBVbml2ZXJzYWxTaGFwZXIsIC8vIFRhZ2Fsb2cKICB0YWdiOiBVbml2ZXJzYWxTaGFwZXIsIC8vIFRhZ2JhbndhCiAgdGFsZTogVW5pdmVyc2FsU2hhcGVyLCAvLyBUYWkgTGUKICBsYW5hOiBVbml2ZXJzYWxTaGFwZXIsIC8vIFRhaSBUaGFtCiAgdGF2dDogVW5pdmVyc2FsU2hhcGVyLCAvLyBUYWkgVmlldAogIHRha3I6IFVuaXZlcnNhbFNoYXBlciwgLy8gVGFrcmkKICB0aWJ0OiBVbml2ZXJzYWxTaGFwZXIsIC8vIFRpYmV0YW4KICB0Zm5nOiBVbml2ZXJzYWxTaGFwZXIsIC8vIFRpZmluYWdoCiAgdGlyaDogVW5pdmVyc2FsU2hhcGVyLCAvLyBUaXJodXRhCgogIGxhdG46IERlZmF1bHRTaGFwZXIsIC8vIExhdGluCiAgREZMVDogRGVmYXVsdFNoYXBlciAvLyBEZWZhdWx0Cn07CgpmdW5jdGlvbiBjaG9vc2Uoc2NyaXB0KSB7CiAgaWYgKCFBcnJheS5pc0FycmF5KHNjcmlwdCkpIHsKICAgIHNjcmlwdCA9IFtzY3JpcHRdOwogIH0KCiAgZm9yICh2YXIgX2l0ZXJhdG9yID0gc2NyaXB0LCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgIHZhciBfcmVmOwoKICAgIGlmIChfaXNBcnJheSkgewogICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICB9IGVsc2UgewogICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgX3JlZiA9IF9pLnZhbHVlOwogICAgfQoKICAgIHZhciBzID0gX3JlZjsKCiAgICB2YXIgc2hhcGVyID0gU0hBUEVSU1tzXTsKICAgIGlmIChzaGFwZXIpIHsKICAgICAgcmV0dXJuIHNoYXBlcjsKICAgIH0KICB9CgogIHJldHVybiBEZWZhdWx0U2hhcGVyOwp9Cgp2YXIgR1NVQlByb2Nlc3NvciA9IGZ1bmN0aW9uIChfT1RQcm9jZXNzb3IpIHsKICBfaW5oZXJpdHMoR1NVQlByb2Nlc3NvciwgX09UUHJvY2Vzc29yKTsKCiAgZnVuY3Rpb24gR1NVQlByb2Nlc3NvcigpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBHU1VCUHJvY2Vzc29yKTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX09UUHJvY2Vzc29yLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOwogIH0KCiAgR1NVQlByb2Nlc3Nvci5wcm90b3R5cGUuYXBwbHlMb29rdXAgPSBmdW5jdGlvbiBhcHBseUxvb2t1cChsb29rdXBUeXBlLCB0YWJsZSkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgc3dpdGNoIChsb29rdXBUeXBlKSB7CiAgICAgIGNhc2UgMToKICAgICAgICB7CiAgICAgICAgICAvLyBTaW5nbGUgU3Vic3RpdHV0aW9uCiAgICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmNvdmVyYWdlSW5kZXgodGFibGUuY292ZXJhZ2UpOwogICAgICAgICAgaWYgKGluZGV4ID09PSAtMSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIGdseXBoID0gdGhpcy5nbHlwaEl0ZXJhdG9yLmN1cjsKICAgICAgICAgIHN3aXRjaCAodGFibGUudmVyc2lvbikgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgZ2x5cGguaWQgPSBnbHlwaC5pZCArIHRhYmxlLmRlbHRhR2x5cGhJRCAmIDB4ZmZmZjsKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBnbHlwaC5pZCA9IHRhYmxlLnN1YnN0aXR1dGUuZ2V0KGluZGV4KTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICBjYXNlIDI6CiAgICAgICAgewogICAgICAgICAgLy8gTXVsdGlwbGUgU3Vic3RpdHV0aW9uCiAgICAgICAgICB2YXIgX2luZGV4ID0gdGhpcy5jb3ZlcmFnZUluZGV4KHRhYmxlLmNvdmVyYWdlKTsKICAgICAgICAgIGlmIChfaW5kZXggIT09IC0xKSB7CiAgICAgICAgICAgIHZhciBfZ2x5cGhzOwoKICAgICAgICAgICAgdmFyIHNlcXVlbmNlID0gdGFibGUuc2VxdWVuY2VzLmdldChfaW5kZXgpOwogICAgICAgICAgICB0aGlzLmdseXBoSXRlcmF0b3IuY3VyLmlkID0gc2VxdWVuY2VbMF07CiAgICAgICAgICAgIHRoaXMuZ2x5cGhJdGVyYXRvci5jdXIubGlnYXR1cmVDb21wb25lbnQgPSAwOwoKICAgICAgICAgICAgdmFyIGZlYXR1cmVzID0gdGhpcy5nbHlwaEl0ZXJhdG9yLmN1ci5mZWF0dXJlczsKICAgICAgICAgICAgdmFyIGN1ckdseXBoID0gdGhpcy5nbHlwaEl0ZXJhdG9yLmN1cjsKICAgICAgICAgICAgdmFyIHJlcGxhY2VtZW50ID0gc2VxdWVuY2Uuc2xpY2UoMSkubWFwKGZ1bmN0aW9uIChnaWQsIGkpIHsKICAgICAgICAgICAgICB2YXIgZ2x5cGggPSBuZXcgR2x5cGhJbmZvKF90aGlzMi5mb250LCBnaWQsIHVuZGVmaW5lZCwgZmVhdHVyZXMpOwogICAgICAgICAgICAgIGdseXBoLnNoYXBlckluZm8gPSBjdXJHbHlwaC5zaGFwZXJJbmZvOwogICAgICAgICAgICAgIGdseXBoLmlzTGlnYXRlZCA9IGN1ckdseXBoLmlzTGlnYXRlZDsKICAgICAgICAgICAgICBnbHlwaC5saWdhdHVyZUNvbXBvbmVudCA9IGkgKyAxOwogICAgICAgICAgICAgIGdseXBoLnN1YnN0aXR1dGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBnbHlwaC5pc011bHRpcGxpZWQgPSB0cnVlOwogICAgICAgICAgICAgIHJldHVybiBnbHlwaDsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAoX2dseXBocyA9IHRoaXMuZ2x5cGhzKS5zcGxpY2UuYXBwbHkoX2dseXBocywgW3RoaXMuZ2x5cGhJdGVyYXRvci5pbmRleCArIDEsIDBdLmNvbmNhdChyZXBsYWNlbWVudCkpOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgY2FzZSAzOgogICAgICAgIHsKICAgICAgICAgIC8vIEFsdGVybmF0ZSBTdWJzdGl0dXRpb24KICAgICAgICAgIHZhciBfaW5kZXgyID0gdGhpcy5jb3ZlcmFnZUluZGV4KHRhYmxlLmNvdmVyYWdlKTsKICAgICAgICAgIGlmIChfaW5kZXgyICE9PSAtMSkgewogICAgICAgICAgICB2YXIgVVNFUl9JTkRFWCA9IDA7IC8vIFRPRE8KICAgICAgICAgICAgdGhpcy5nbHlwaEl0ZXJhdG9yLmN1ci5pZCA9IHRhYmxlLmFsdGVybmF0ZVNldC5nZXQoX2luZGV4MilbVVNFUl9JTkRFWF07CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICBjYXNlIDQ6CiAgICAgICAgewogICAgICAgICAgLy8gTGlnYXR1cmUgU3Vic3RpdHV0aW9uCiAgICAgICAgICB2YXIgX2luZGV4MyA9IHRoaXMuY292ZXJhZ2VJbmRleCh0YWJsZS5jb3ZlcmFnZSk7CiAgICAgICAgICBpZiAoX2luZGV4MyA9PT0gLTEpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQoKICAgICAgICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHRhYmxlLmxpZ2F0dXJlU2V0cy5nZXQoX2luZGV4MyksIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgICAgICAgICB2YXIgX3JlZjsKCiAgICAgICAgICAgIGlmIChfaXNBcnJheSkgewogICAgICAgICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgICAgICAgX3JlZiA9IF9pLnZhbHVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICB2YXIgbGlnYXR1cmUgPSBfcmVmOwoKICAgICAgICAgICAgdmFyIG1hdGNoZWQgPSB0aGlzLnNlcXVlbmNlTWF0Y2hJbmRpY2VzKDEsIGxpZ2F0dXJlLmNvbXBvbmVudHMpOwogICAgICAgICAgICBpZiAoIW1hdGNoZWQpIHsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdmFyIF9jdXJHbHlwaCA9IHRoaXMuZ2x5cGhJdGVyYXRvci5jdXI7CgogICAgICAgICAgICAvLyBDb25jYXRlbmF0ZSBhbGwgb2YgdGhlIGNoYXJhY3RlcnMgdGhlIG5ldyBsaWdhdHVyZSB3aWxsIHJlcHJlc2VudAogICAgICAgICAgICB2YXIgY2hhcmFjdGVycyA9IF9jdXJHbHlwaC5jb2RlUG9pbnRzLnNsaWNlKCk7CiAgICAgICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBtYXRjaGVkLCBfaXNBcnJheTIgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjIpLCBfaTIgPSAwLCBfaXRlcmF0b3IyID0gX2lzQXJyYXkyID8gX2l0ZXJhdG9yMiA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IyKTs7KSB7CiAgICAgICAgICAgICAgdmFyIF9yZWYyOwoKICAgICAgICAgICAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgICAgICAgICAgICBpZiAoX2kyID49IF9pdGVyYXRvcjIubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgICAgIF9yZWYyID0gX2l0ZXJhdG9yMltfaTIrK107CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF9pMiA9IF9pdGVyYXRvcjIubmV4dCgpOwogICAgICAgICAgICAgICAgaWYgKF9pMi5kb25lKSBicmVhazsKICAgICAgICAgICAgICAgIF9yZWYyID0gX2kyLnZhbHVlOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgdmFyIF9pbmRleDQgPSBfcmVmMjsKCiAgICAgICAgICAgICAgY2hhcmFjdGVycy5wdXNoLmFwcGx5KGNoYXJhY3RlcnMsIHRoaXMuZ2x5cGhzW19pbmRleDRdLmNvZGVQb2ludHMpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBDcmVhdGUgdGhlIHJlcGxhY2VtZW50IGxpZ2F0dXJlIGdseXBoCiAgICAgICAgICAgIHZhciBsaWdhdHVyZUdseXBoID0gbmV3IEdseXBoSW5mbyh0aGlzLmZvbnQsIGxpZ2F0dXJlLmdseXBoLCBjaGFyYWN0ZXJzLCBfY3VyR2x5cGguZmVhdHVyZXMpOwogICAgICAgICAgICBsaWdhdHVyZUdseXBoLnNoYXBlckluZm8gPSBfY3VyR2x5cGguc2hhcGVySW5mbzsKICAgICAgICAgICAgbGlnYXR1cmVHbHlwaC5pc0xpZ2F0ZWQgPSB0cnVlOwogICAgICAgICAgICBsaWdhdHVyZUdseXBoLnN1YnN0aXR1dGVkID0gdHJ1ZTsKCiAgICAgICAgICAgIC8vIEZyb20gSGFyZmJ1eno6CiAgICAgICAgICAgIC8vIC0gSWYgaXQgKmlzKiBhIG1hcmsgbGlnYXR1cmUsIHdlIGRvbid0IGFsbG9jYXRlIGEgbmV3IGxpZ2F0dXJlIGlkLCBhbmQgbGVhdmUKICAgICAgICAgICAgLy8gICB0aGUgbGlnYXR1cmUgdG8ga2VlcCBpdHMgb2xkIGxpZ2F0dXJlIGlkLiAgVGhpcyB3aWxsIGFsbG93IGl0IHRvIGF0dGFjaCB0bwogICAgICAgICAgICAvLyAgIGEgYmFzZSBsaWdhdHVyZSBpbiBHUE9TLiAgRWcuIGlmIHRoZSBzZXF1ZW5jZSBpczogTEFNLExBTSxTSEFEREEsRkFUSEEsSEVILAogICAgICAgICAgICAvLyAgIGFuZCBMQU0sTEFNLEhFSCBmb3IgYSBsaWdhdHVyZSwgdGhleSB3aWxsIGxlYXZlIFNIQUREQSBhbmQgRkFUSEEgd2l0aCBhCiAgICAgICAgICAgIC8vICAgbGlnYXR1cmUgaWQgYW5kIGNvbXBvbmVudCB2YWx1ZSBvZiAyLiAgVGhlbiBpZiBTSEFEREEsRkFUSEEgZm9ybSBhIGxpZ2F0dXJlCiAgICAgICAgICAgIC8vICAgbGF0ZXIsIHdlIGRvbid0IHdhbnQgdGhlbSB0byBsb3NlIHRoZWlyIGxpZ2F0dXJlIGlkL2NvbXBvbmVudCwgb3RoZXJ3aXNlCiAgICAgICAgICAgIC8vICAgR1BPUyB3aWxsIGZhaWwgdG8gY29ycmVjdGx5IHBvc2l0aW9uIHRoZSBtYXJrIGxpZ2F0dXJlIG9uIHRvcCBvZiB0aGUKICAgICAgICAgICAgLy8gICBMQU0sTEFNLEhFSCBsaWdhdHVyZS4gU2VlIGh0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD02NzYzNDMKICAgICAgICAgICAgLy8KICAgICAgICAgICAgLy8gLSBJZiBhIGxpZ2F0dXJlIGlzIGZvcm1lZCBvZiBjb21wb25lbnRzIHRoYXQgc29tZSBvZiB3aGljaCBhcmUgYWxzbyBsaWdhdHVyZXMKICAgICAgICAgICAgLy8gICB0aGVtc2VsdmVzLCBhbmQgdGhvc2UgbGlnYXR1cmUgY29tcG9uZW50cyBoYWQgbWFya3MgYXR0YWNoZWQgdG8gKnRoZWlyKgogICAgICAgICAgICAvLyAgIGNvbXBvbmVudHMsIHdlIGhhdmUgdG8gYXR0YWNoIHRoZSBtYXJrcyB0byB0aGUgbmV3IGxpZ2F0dXJlIGNvbXBvbmVudAogICAgICAgICAgICAvLyAgIHBvc2l0aW9ucyEgIE5vdyAqdGhhdConcyB0cmlja3khICBBbmQgdGhlc2UgbWFya3MgbWF5IGJlIGZvbGxvd2luZyB0aGUKICAgICAgICAgICAgLy8gICBsYXN0IGNvbXBvbmVudCBvZiB0aGUgd2hvbGUgc2VxdWVuY2UsIHNvIHdlIHNob3VsZCBsb29wIGZvcndhcmQgbG9va2luZwogICAgICAgICAgICAvLyAgIGZvciB0aGVtIGFuZCB1cGRhdGUgdGhlbS4KICAgICAgICAgICAgLy8KICAgICAgICAgICAgLy8gICBFZy4gdGhlIHNlcXVlbmNlIGlzIExBTSxMQU0sU0hBRERBLEZBVEhBLEhFSCwgYW5kIHRoZSBmb250IGZpcnN0IGZvcm1zIGEKICAgICAgICAgICAgLy8gICAnY2FsdCcgbGlnYXR1cmUgb2YgTEFNLEhFSCwgbGVhdmluZyB0aGUgU0hBRERBIGFuZCBGQVRIQSB3aXRoIGEgbGlnYXR1cmUKICAgICAgICAgICAgLy8gICBpZCBhbmQgY29tcG9uZW50ID09IDEuICBOb3csIGR1cmluZyAnbGlnYScsIHRoZSBMQU0gYW5kIHRoZSBMQU0tSEVIIGxpZ2F0dXJlCiAgICAgICAgICAgIC8vICAgZm9ybSBhIExBTS1MQU0tSEVIIGxpZ2F0dXJlLiAgV2UgbmVlZCB0byByZWFzc2lnbiB0aGUgU0hBRERBIGFuZCBGQVRIQSB0bwogICAgICAgICAgICAvLyAgIHRoZSBuZXcgbGlnYXR1cmUgd2l0aCBhIGNvbXBvbmVudCB2YWx1ZSBvZiAyLgogICAgICAgICAgICAvLwogICAgICAgICAgICAvLyAgIFRoaXMgaW4gZmFjdCBoYXBwZW5lZCB0byBhIGZvbnQuLi4gIFNlZSBodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM3NjMzCiAgICAgICAgICAgIHZhciBpc01hcmtMaWdhdHVyZSA9IF9jdXJHbHlwaC5pc01hcms7CiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF0Y2hlZC5sZW5ndGggJiYgaXNNYXJrTGlnYXR1cmU7IGkrKykgewogICAgICAgICAgICAgIGlzTWFya0xpZ2F0dXJlID0gdGhpcy5nbHlwaHNbbWF0Y2hlZFtpXV0uaXNNYXJrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsaWdhdHVyZUdseXBoLmxpZ2F0dXJlSUQgPSBpc01hcmtMaWdhdHVyZSA/IG51bGwgOiB0aGlzLmxpZ2F0dXJlSUQrKzsKCiAgICAgICAgICAgIHZhciBsYXN0TGlnSUQgPSBfY3VyR2x5cGgubGlnYXR1cmVJRDsKICAgICAgICAgICAgdmFyIGxhc3ROdW1Db21wcyA9IF9jdXJHbHlwaC5jb2RlUG9pbnRzLmxlbmd0aDsKICAgICAgICAgICAgdmFyIGN1ckNvbXBzID0gbGFzdE51bUNvbXBzOwogICAgICAgICAgICB2YXIgaWR4ID0gdGhpcy5nbHlwaEl0ZXJhdG9yLmluZGV4ICsgMTsKCiAgICAgICAgICAgIC8vIFNldCBsaWdhdHVyZUlEIGFuZCBsaWdhdHVyZUNvbXBvbmVudCBvbiBnbHlwaHMgdGhhdCB3ZXJlIHNraXBwZWQgaW4gdGhlIG1hdGNoZWQgc2VxdWVuY2UuCiAgICAgICAgICAgIC8vIFRoaXMgYWxsb3dzIEdQT1MgdG8gYXR0YWNoIG1hcmtzIHRvIHRoZSBjb3JyZWN0IGxpZ2F0dXJlIGNvbXBvbmVudHMuCiAgICAgICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSBtYXRjaGVkLCBfaXNBcnJheTMgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjMpLCBfaTMgPSAwLCBfaXRlcmF0b3IzID0gX2lzQXJyYXkzID8gX2l0ZXJhdG9yMyA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IzKTs7KSB7CiAgICAgICAgICAgICAgdmFyIF9yZWYzOwoKICAgICAgICAgICAgICBpZiAoX2lzQXJyYXkzKSB7CiAgICAgICAgICAgICAgICBpZiAoX2kzID49IF9pdGVyYXRvcjMubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgICAgIF9yZWYzID0gX2l0ZXJhdG9yM1tfaTMrK107CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF9pMyA9IF9pdGVyYXRvcjMubmV4dCgpOwogICAgICAgICAgICAgICAgaWYgKF9pMy5kb25lKSBicmVhazsKICAgICAgICAgICAgICAgIF9yZWYzID0gX2kzLnZhbHVlOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgdmFyIG1hdGNoSW5kZXggPSBfcmVmMzsKCiAgICAgICAgICAgICAgLy8gRG9uJ3QgYXNzaWduIG5ldyBsaWdhdHVyZSBjb21wb25lbnRzIGZvciBtYXJrIGxpZ2F0dXJlcyAoc2VlIGFib3ZlKQogICAgICAgICAgICAgIGlmIChpc01hcmtMaWdhdHVyZSkgewogICAgICAgICAgICAgICAgaWR4ID0gbWF0Y2hJbmRleDsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgd2hpbGUgKGlkeCA8IG1hdGNoSW5kZXgpIHsKICAgICAgICAgICAgICAgICAgdmFyIGxpZ2F0dXJlQ29tcG9uZW50ID0gY3VyQ29tcHMgLSBsYXN0TnVtQ29tcHMgKyBNYXRoLm1pbih0aGlzLmdseXBoc1tpZHhdLmxpZ2F0dXJlQ29tcG9uZW50IHx8IDEsIGxhc3ROdW1Db21wcyk7CiAgICAgICAgICAgICAgICAgIHRoaXMuZ2x5cGhzW2lkeF0ubGlnYXR1cmVJRCA9IGxpZ2F0dXJlR2x5cGgubGlnYXR1cmVJRDsKICAgICAgICAgICAgICAgICAgdGhpcy5nbHlwaHNbaWR4XS5saWdhdHVyZUNvbXBvbmVudCA9IGxpZ2F0dXJlQ29tcG9uZW50OwogICAgICAgICAgICAgICAgICBpZHgrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIGxhc3RMaWdJRCA9IHRoaXMuZ2x5cGhzW2lkeF0ubGlnYXR1cmVJRDsKICAgICAgICAgICAgICBsYXN0TnVtQ29tcHMgPSB0aGlzLmdseXBoc1tpZHhdLmNvZGVQb2ludHMubGVuZ3RoOwogICAgICAgICAgICAgIGN1ckNvbXBzICs9IGxhc3ROdW1Db21wczsKICAgICAgICAgICAgICBpZHgrKzsgLy8gc2tpcCBiYXNlIGdseXBoCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIEFkanVzdCBsaWdhdHVyZSBjb21wb25lbnRzIGZvciBhbnkgbWFya3MgZm9sbG93aW5nCiAgICAgICAgICAgIGlmIChsYXN0TGlnSUQgJiYgIWlzTWFya0xpZ2F0dXJlKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2k0ID0gaWR4OyBfaTQgPCB0aGlzLmdseXBocy5sZW5ndGg7IF9pNCsrKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5nbHlwaHNbX2k0XS5saWdhdHVyZUlEID09PSBsYXN0TGlnSUQpIHsKICAgICAgICAgICAgICAgICAgdmFyIGxpZ2F0dXJlQ29tcG9uZW50ID0gY3VyQ29tcHMgLSBsYXN0TnVtQ29tcHMgKyBNYXRoLm1pbih0aGlzLmdseXBoc1tfaTRdLmxpZ2F0dXJlQ29tcG9uZW50IHx8IDEsIGxhc3ROdW1Db21wcyk7CiAgICAgICAgICAgICAgICAgIHRoaXMuZ2x5cGhzW19pNF0ubGlnYXR1cmVDb21wb25lbnQgPSBsaWdhdHVyZUNvbXBvbmVudDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBtYXRjaGVkIGdseXBocywgYW5kIHJlcGxhY2UgdGhlIGN1cnJlbnQgZ2x5cGggd2l0aCB0aGUgbGlnYXR1cmUgZ2x5cGgKICAgICAgICAgICAgZm9yICh2YXIgX2k1ID0gbWF0Y2hlZC5sZW5ndGggLSAxOyBfaTUgPj0gMDsgX2k1LS0pIHsKICAgICAgICAgICAgICB0aGlzLmdseXBocy5zcGxpY2UobWF0Y2hlZFtfaTVdLCAxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5nbHlwaHNbdGhpcy5nbHlwaEl0ZXJhdG9yLmluZGV4XSA9IGxpZ2F0dXJlR2x5cGg7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CgogICAgICBjYXNlIDU6CiAgICAgICAgLy8gQ29udGV4dHVhbCBTdWJzdGl0dXRpb24KICAgICAgICByZXR1cm4gdGhpcy5hcHBseUNvbnRleHQodGFibGUpOwoKICAgICAgY2FzZSA2OgogICAgICAgIC8vIENoYWluaW5nIENvbnRleHR1YWwgU3Vic3RpdHV0aW9uCiAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlDaGFpbmluZ0NvbnRleHQodGFibGUpOwoKICAgICAgY2FzZSA3OgogICAgICAgIC8vIEV4dGVuc2lvbiBTdWJzdGl0dXRpb24KICAgICAgICByZXR1cm4gdGhpcy5hcHBseUxvb2t1cCh0YWJsZS5sb29rdXBUeXBlLCB0YWJsZS5leHRlbnNpb24pOwoKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dTVUIgbG9va3VwVHlwZSAnICsgbG9va3VwVHlwZSArICcgaXMgbm90IHN1cHBvcnRlZCcpOwogICAgfQogIH07CgogIHJldHVybiBHU1VCUHJvY2Vzc29yOwp9KE9UUHJvY2Vzc29yKTsKCnZhciBHUE9TUHJvY2Vzc29yID0gZnVuY3Rpb24gKF9PVFByb2Nlc3NvcikgewogIF9pbmhlcml0cyhHUE9TUHJvY2Vzc29yLCBfT1RQcm9jZXNzb3IpOwoKICBmdW5jdGlvbiBHUE9TUHJvY2Vzc29yKCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIEdQT1NQcm9jZXNzb3IpOwoKICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfT1RQcm9jZXNzb3IuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7CiAgfQoKICBHUE9TUHJvY2Vzc29yLnByb3RvdHlwZS5hcHBseVBvc2l0aW9uVmFsdWUgPSBmdW5jdGlvbiBhcHBseVBvc2l0aW9uVmFsdWUoc2VxdWVuY2VJbmRleCwgdmFsdWUpIHsKICAgIHZhciBwb3NpdGlvbiA9IHRoaXMucG9zaXRpb25zW3RoaXMuZ2x5cGhJdGVyYXRvci5wZWVrSW5kZXgoc2VxdWVuY2VJbmRleCldOwogICAgaWYgKHZhbHVlLnhBZHZhbmNlICE9IG51bGwpIHsKICAgICAgcG9zaXRpb24ueEFkdmFuY2UgKz0gdmFsdWUueEFkdmFuY2U7CiAgICB9CgogICAgaWYgKHZhbHVlLnlBZHZhbmNlICE9IG51bGwpIHsKICAgICAgcG9zaXRpb24ueUFkdmFuY2UgKz0gdmFsdWUueUFkdmFuY2U7CiAgICB9CgogICAgaWYgKHZhbHVlLnhQbGFjZW1lbnQgIT0gbnVsbCkgewogICAgICBwb3NpdGlvbi54T2Zmc2V0ICs9IHZhbHVlLnhQbGFjZW1lbnQ7CiAgICB9CgogICAgaWYgKHZhbHVlLnlQbGFjZW1lbnQgIT0gbnVsbCkgewogICAgICBwb3NpdGlvbi55T2Zmc2V0ICs9IHZhbHVlLnlQbGFjZW1lbnQ7CiAgICB9CgogICAgLy8gQWRqdXN0bWVudHMgZm9yIGZvbnQgdmFyaWF0aW9ucwogICAgdmFyIHZhcmlhdGlvblByb2Nlc3NvciA9IHRoaXMuZm9udC5fdmFyaWF0aW9uUHJvY2Vzc29yOwogICAgdmFyIHZhcmlhdGlvblN0b3JlID0gdGhpcy5mb250LkdERUYgJiYgdGhpcy5mb250LkdERUYuaXRlbVZhcmlhdGlvblN0b3JlOwogICAgaWYgKHZhcmlhdGlvblByb2Nlc3NvciAmJiB2YXJpYXRpb25TdG9yZSkgewogICAgICBpZiAodmFsdWUueFBsYURldmljZSkgewogICAgICAgIHBvc2l0aW9uLnhPZmZzZXQgKz0gdmFyaWF0aW9uUHJvY2Vzc29yLmdldERlbHRhKHZhcmlhdGlvblN0b3JlLCB2YWx1ZS54UGxhRGV2aWNlLmEsIHZhbHVlLnhQbGFEZXZpY2UuYik7CiAgICAgIH0KCiAgICAgIGlmICh2YWx1ZS55UGxhRGV2aWNlKSB7CiAgICAgICAgcG9zaXRpb24ueU9mZnNldCArPSB2YXJpYXRpb25Qcm9jZXNzb3IuZ2V0RGVsdGEodmFyaWF0aW9uU3RvcmUsIHZhbHVlLnlQbGFEZXZpY2UuYSwgdmFsdWUueVBsYURldmljZS5iKTsKICAgICAgfQoKICAgICAgaWYgKHZhbHVlLnhBZHZEZXZpY2UpIHsKICAgICAgICBwb3NpdGlvbi54QWR2YW5jZSArPSB2YXJpYXRpb25Qcm9jZXNzb3IuZ2V0RGVsdGEodmFyaWF0aW9uU3RvcmUsIHZhbHVlLnhBZHZEZXZpY2UuYSwgdmFsdWUueEFkdkRldmljZS5iKTsKICAgICAgfQoKICAgICAgaWYgKHZhbHVlLnlBZHZEZXZpY2UpIHsKICAgICAgICBwb3NpdGlvbi55QWR2YW5jZSArPSB2YXJpYXRpb25Qcm9jZXNzb3IuZ2V0RGVsdGEodmFyaWF0aW9uU3RvcmUsIHZhbHVlLnlBZHZEZXZpY2UuYSwgdmFsdWUueUFkdkRldmljZS5iKTsKICAgICAgfQogICAgfQoKICAgIC8vIFRPRE86IGRldmljZSB0YWJsZXMKICB9OwoKICBHUE9TUHJvY2Vzc29yLnByb3RvdHlwZS5hcHBseUxvb2t1cCA9IGZ1bmN0aW9uIGFwcGx5TG9va3VwKGxvb2t1cFR5cGUsIHRhYmxlKSB7CiAgICBzd2l0Y2ggKGxvb2t1cFR5cGUpIHsKICAgICAgY2FzZSAxOgogICAgICAgIHsKICAgICAgICAgIC8vIFNpbmdsZSBwb3NpdGlvbmluZyB2YWx1ZQogICAgICAgICAgdmFyIGluZGV4ID0gdGhpcy5jb3ZlcmFnZUluZGV4KHRhYmxlLmNvdmVyYWdlKTsKICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQoKICAgICAgICAgIHN3aXRjaCAodGFibGUudmVyc2lvbikgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgdGhpcy5hcHBseVBvc2l0aW9uVmFsdWUoMCwgdGFibGUudmFsdWUpOwogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIHRoaXMuYXBwbHlQb3NpdGlvblZhbHVlKDAsIHRhYmxlLnZhbHVlcy5nZXQoaW5kZXgpKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICBjYXNlIDI6CiAgICAgICAgewogICAgICAgICAgLy8gUGFpciBBZGp1c3RtZW50IFBvc2l0aW9uaW5nCiAgICAgICAgICB2YXIgbmV4dEdseXBoID0gdGhpcy5nbHlwaEl0ZXJhdG9yLnBlZWsoKTsKICAgICAgICAgIGlmICghbmV4dEdseXBoKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgX2luZGV4ID0gdGhpcy5jb3ZlcmFnZUluZGV4KHRhYmxlLmNvdmVyYWdlKTsKICAgICAgICAgIGlmIChfaW5kZXggPT09IC0xKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KCiAgICAgICAgICBzd2l0Y2ggKHRhYmxlLnZlcnNpb24pIHsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIC8vIEFkanVzdG1lbnRzIGZvciBnbHlwaCBwYWlycwogICAgICAgICAgICAgIHZhciBzZXQgPSB0YWJsZS5wYWlyU2V0cy5nZXQoX2luZGV4KTsKCiAgICAgICAgICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gc2V0LCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgICAgICAgICAgIHZhciBfcmVmOwoKICAgICAgICAgICAgICAgIGlmIChfaXNBcnJheSkgewogICAgICAgICAgICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICAgICAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgICAgICAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgICAgICAgICAgICAgX3JlZiA9IF9pLnZhbHVlOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHZhciBfcGFpciA9IF9yZWY7CgogICAgICAgICAgICAgICAgaWYgKF9wYWlyLnNlY29uZEdseXBoID09PSBuZXh0R2x5cGguaWQpIHsKICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVBvc2l0aW9uVmFsdWUoMCwgX3BhaXIudmFsdWUxKTsKICAgICAgICAgICAgICAgICAgdGhpcy5hcHBseVBvc2l0aW9uVmFsdWUoMSwgX3BhaXIudmFsdWUyKTsKICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgLy8gQ2xhc3MgcGFpciBhZGp1c3RtZW50CiAgICAgICAgICAgICAgdmFyIGNsYXNzMSA9IHRoaXMuZ2V0Q2xhc3NJRCh0aGlzLmdseXBoSXRlcmF0b3IuY3VyLmlkLCB0YWJsZS5jbGFzc0RlZjEpOwogICAgICAgICAgICAgIHZhciBjbGFzczIgPSB0aGlzLmdldENsYXNzSUQobmV4dEdseXBoLmlkLCB0YWJsZS5jbGFzc0RlZjIpOwogICAgICAgICAgICAgIGlmIChjbGFzczEgPT09IC0xIHx8IGNsYXNzMiA9PT0gLTEpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIHZhciBwYWlyID0gdGFibGUuY2xhc3NSZWNvcmRzLmdldChjbGFzczEpLmdldChjbGFzczIpOwogICAgICAgICAgICAgIHRoaXMuYXBwbHlQb3NpdGlvblZhbHVlKDAsIHBhaXIudmFsdWUxKTsKICAgICAgICAgICAgICB0aGlzLmFwcGx5UG9zaXRpb25WYWx1ZSgxLCBwYWlyLnZhbHVlMik7CiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgY2FzZSAzOgogICAgICAgIHsKICAgICAgICAgIC8vIEN1cnNpdmUgQXR0YWNobWVudCBQb3NpdGlvbmluZwogICAgICAgICAgdmFyIG5leHRJbmRleCA9IHRoaXMuZ2x5cGhJdGVyYXRvci5wZWVrSW5kZXgoKTsKICAgICAgICAgIHZhciBfbmV4dEdseXBoID0gdGhpcy5nbHlwaHNbbmV4dEluZGV4XTsKICAgICAgICAgIGlmICghX25leHRHbHlwaCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIGN1clJlY29yZCA9IHRhYmxlLmVudHJ5RXhpdFJlY29yZHNbdGhpcy5jb3ZlcmFnZUluZGV4KHRhYmxlLmNvdmVyYWdlKV07CiAgICAgICAgICBpZiAoIWN1clJlY29yZCB8fCAhY3VyUmVjb3JkLmV4aXRBbmNob3IpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBuZXh0UmVjb3JkID0gdGFibGUuZW50cnlFeGl0UmVjb3Jkc1t0aGlzLmNvdmVyYWdlSW5kZXgodGFibGUuY292ZXJhZ2UsIF9uZXh0R2x5cGguaWQpXTsKICAgICAgICAgIGlmICghbmV4dFJlY29yZCB8fCAhbmV4dFJlY29yZC5lbnRyeUFuY2hvcikgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy5nZXRBbmNob3IobmV4dFJlY29yZC5lbnRyeUFuY2hvcik7CiAgICAgICAgICB2YXIgZXhpdCA9IHRoaXMuZ2V0QW5jaG9yKGN1clJlY29yZC5leGl0QW5jaG9yKTsKCiAgICAgICAgICB2YXIgY3VyID0gdGhpcy5wb3NpdGlvbnNbdGhpcy5nbHlwaEl0ZXJhdG9yLmluZGV4XTsKICAgICAgICAgIHZhciBuZXh0ID0gdGhpcy5wb3NpdGlvbnNbbmV4dEluZGV4XTsKCiAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aW9uKSB7CiAgICAgICAgICAgIGNhc2UgJ2x0cic6CiAgICAgICAgICAgICAgY3VyLnhBZHZhbmNlID0gZXhpdC54ICsgY3VyLnhPZmZzZXQ7CgogICAgICAgICAgICAgIHZhciBkID0gZW50cnkueCArIG5leHQueE9mZnNldDsKICAgICAgICAgICAgICBuZXh0LnhBZHZhbmNlIC09IGQ7CiAgICAgICAgICAgICAgbmV4dC54T2Zmc2V0IC09IGQ7CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlICdydGwnOgogICAgICAgICAgICAgIGQgPSBleGl0LnggKyBjdXIueE9mZnNldDsKICAgICAgICAgICAgICBjdXIueEFkdmFuY2UgLT0gZDsKICAgICAgICAgICAgICBjdXIueE9mZnNldCAtPSBkOwogICAgICAgICAgICAgIG5leHQueEFkdmFuY2UgPSBlbnRyeS54ICsgbmV4dC54T2Zmc2V0OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQoKICAgICAgICAgIGlmICh0aGlzLmdseXBoSXRlcmF0b3IuZmxhZ3MucmlnaHRUb0xlZnQpIHsKICAgICAgICAgICAgdGhpcy5nbHlwaEl0ZXJhdG9yLmN1ci5jdXJzaXZlQXR0YWNobWVudCA9IG5leHRJbmRleDsKICAgICAgICAgICAgY3VyLnlPZmZzZXQgPSBlbnRyeS55IC0gZXhpdC55OwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX25leHRHbHlwaC5jdXJzaXZlQXR0YWNobWVudCA9IHRoaXMuZ2x5cGhJdGVyYXRvci5pbmRleDsKICAgICAgICAgICAgY3VyLnlPZmZzZXQgPSBleGl0LnkgLSBlbnRyeS55OwogICAgICAgICAgfQoKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgIGNhc2UgNDoKICAgICAgICB7CiAgICAgICAgICAvLyBNYXJrIHRvIGJhc2UgcG9zaXRpb25pbmcKICAgICAgICAgIHZhciBtYXJrSW5kZXggPSB0aGlzLmNvdmVyYWdlSW5kZXgodGFibGUubWFya0NvdmVyYWdlKTsKICAgICAgICAgIGlmIChtYXJrSW5kZXggPT09IC0xKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBzZWFyY2ggYmFja3dhcmQgZm9yIGEgYmFzZSBnbHlwaAogICAgICAgICAgdmFyIGJhc2VHbHlwaEluZGV4ID0gdGhpcy5nbHlwaEl0ZXJhdG9yLmluZGV4OwogICAgICAgICAgd2hpbGUgKC0tYmFzZUdseXBoSW5kZXggPj0gMCAmJiAodGhpcy5nbHlwaHNbYmFzZUdseXBoSW5kZXhdLmlzTWFyayB8fCB0aGlzLmdseXBoc1tiYXNlR2x5cGhJbmRleF0ubGlnYXR1cmVDb21wb25lbnQgPiAwKSkge30KCiAgICAgICAgICBpZiAoYmFzZUdseXBoSW5kZXggPCAwKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgYmFzZUluZGV4ID0gdGhpcy5jb3ZlcmFnZUluZGV4KHRhYmxlLmJhc2VDb3ZlcmFnZSwgdGhpcy5nbHlwaHNbYmFzZUdseXBoSW5kZXhdLmlkKTsKICAgICAgICAgIGlmIChiYXNlSW5kZXggPT09IC0xKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgbWFya1JlY29yZCA9IHRhYmxlLm1hcmtBcnJheVttYXJrSW5kZXhdOwogICAgICAgICAgdmFyIGJhc2VBbmNob3IgPSB0YWJsZS5iYXNlQXJyYXlbYmFzZUluZGV4XVttYXJrUmVjb3JkLmNsYXNzXTsKICAgICAgICAgIHRoaXMuYXBwbHlBbmNob3IobWFya1JlY29yZCwgYmFzZUFuY2hvciwgYmFzZUdseXBoSW5kZXgpOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgY2FzZSA1OgogICAgICAgIHsKICAgICAgICAgIC8vIE1hcmsgdG8gbGlnYXR1cmUgcG9zaXRpb25pbmcKICAgICAgICAgIHZhciBfbWFya0luZGV4ID0gdGhpcy5jb3ZlcmFnZUluZGV4KHRhYmxlLm1hcmtDb3ZlcmFnZSk7CiAgICAgICAgICBpZiAoX21hcmtJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIHNlYXJjaCBiYWNrd2FyZCBmb3IgYSBiYXNlIGdseXBoCiAgICAgICAgICB2YXIgX2Jhc2VHbHlwaEluZGV4ID0gdGhpcy5nbHlwaEl0ZXJhdG9yLmluZGV4OwogICAgICAgICAgd2hpbGUgKC0tX2Jhc2VHbHlwaEluZGV4ID49IDAgJiYgdGhpcy5nbHlwaHNbX2Jhc2VHbHlwaEluZGV4XS5pc01hcmspIHt9CgogICAgICAgICAgaWYgKF9iYXNlR2x5cGhJbmRleCA8IDApIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBsaWdJbmRleCA9IHRoaXMuY292ZXJhZ2VJbmRleCh0YWJsZS5saWdhdHVyZUNvdmVyYWdlLCB0aGlzLmdseXBoc1tfYmFzZUdseXBoSW5kZXhdLmlkKTsKICAgICAgICAgIGlmIChsaWdJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBsaWdBdHRhY2ggPSB0YWJsZS5saWdhdHVyZUFycmF5W2xpZ0luZGV4XTsKICAgICAgICAgIHZhciBtYXJrR2x5cGggPSB0aGlzLmdseXBoSXRlcmF0b3IuY3VyOwogICAgICAgICAgdmFyIGxpZ0dseXBoID0gdGhpcy5nbHlwaHNbX2Jhc2VHbHlwaEluZGV4XTsKICAgICAgICAgIHZhciBjb21wSW5kZXggPSBsaWdHbHlwaC5saWdhdHVyZUlEICYmIGxpZ0dseXBoLmxpZ2F0dXJlSUQgPT09IG1hcmtHbHlwaC5saWdhdHVyZUlEICYmIG1hcmtHbHlwaC5saWdhdHVyZUNvbXBvbmVudCA+IDAgPyBNYXRoLm1pbihtYXJrR2x5cGgubGlnYXR1cmVDb21wb25lbnQsIGxpZ0dseXBoLmNvZGVQb2ludHMubGVuZ3RoKSAtIDEgOiBsaWdHbHlwaC5jb2RlUG9pbnRzLmxlbmd0aCAtIDE7CgogICAgICAgICAgdmFyIF9tYXJrUmVjb3JkID0gdGFibGUubWFya0FycmF5W19tYXJrSW5kZXhdOwogICAgICAgICAgdmFyIF9iYXNlQW5jaG9yID0gbGlnQXR0YWNoW2NvbXBJbmRleF1bX21hcmtSZWNvcmQuY2xhc3NdOwogICAgICAgICAgdGhpcy5hcHBseUFuY2hvcihfbWFya1JlY29yZCwgX2Jhc2VBbmNob3IsIF9iYXNlR2x5cGhJbmRleCk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICBjYXNlIDY6CiAgICAgICAgewogICAgICAgICAgLy8gTWFyayB0byBtYXJrIHBvc2l0aW9uaW5nCiAgICAgICAgICB2YXIgbWFyazFJbmRleCA9IHRoaXMuY292ZXJhZ2VJbmRleCh0YWJsZS5tYXJrMUNvdmVyYWdlKTsKICAgICAgICAgIGlmIChtYXJrMUluZGV4ID09PSAtMSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CgogICAgICAgICAgLy8gZ2V0IHRoZSBwcmV2aW91cyBtYXJrIHRvIGF0dGFjaCB0bwogICAgICAgICAgdmFyIHByZXZJbmRleCA9IHRoaXMuZ2x5cGhJdGVyYXRvci5wZWVrSW5kZXgoLTEpOwogICAgICAgICAgdmFyIHByZXYgPSB0aGlzLmdseXBoc1twcmV2SW5kZXhdOwogICAgICAgICAgaWYgKCFwcmV2IHx8ICFwcmV2LmlzTWFyaykgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIF9jdXIgPSB0aGlzLmdseXBoSXRlcmF0b3IuY3VyOwoKICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgbG9naWMgd2FzIGJvcnJvd2VkIGZyb20gSGFyZmJ1enoKICAgICAgICAgIHZhciBnb29kID0gZmFsc2U7CiAgICAgICAgICBpZiAoX2N1ci5saWdhdHVyZUlEID09PSBwcmV2LmxpZ2F0dXJlSUQpIHsKICAgICAgICAgICAgaWYgKCFfY3VyLmxpZ2F0dXJlSUQpIHsKICAgICAgICAgICAgICAvLyBNYXJrcyBiZWxvbmdpbmcgdG8gdGhlIHNhbWUgYmFzZQogICAgICAgICAgICAgIGdvb2QgPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgaWYgKF9jdXIubGlnYXR1cmVDb21wb25lbnQgPT09IHByZXYubGlnYXR1cmVDb21wb25lbnQpIHsKICAgICAgICAgICAgICAvLyBNYXJrcyBiZWxvbmdpbmcgdG8gdGhlIHNhbWUgbGlnYXR1cmUgY29tcG9uZW50CiAgICAgICAgICAgICAgZ29vZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIElmIGxpZ2F0dXJlIGlkcyBkb24ndCBtYXRjaCwgaXQgbWF5IGJlIHRoZSBjYXNlIHRoYXQgb25lIG9mIHRoZSBtYXJrcwogICAgICAgICAgICAvLyBpdHNlbGYgaXMgYSBsaWdhdHVyZSwgaW4gd2hpY2ggY2FzZSBtYXRjaC4KICAgICAgICAgICAgaWYgKF9jdXIubGlnYXR1cmVJRCAmJiAhX2N1ci5saWdhdHVyZUNvbXBvbmVudCB8fCBwcmV2LmxpZ2F0dXJlSUQgJiYgIXByZXYubGlnYXR1cmVDb21wb25lbnQpIHsKICAgICAgICAgICAgICBnb29kID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIGlmICghZ29vZCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CgogICAgICAgICAgdmFyIG1hcmsySW5kZXggPSB0aGlzLmNvdmVyYWdlSW5kZXgodGFibGUubWFyazJDb3ZlcmFnZSwgcHJldi5pZCk7CiAgICAgICAgICBpZiAobWFyazJJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQoKICAgICAgICAgIHZhciBfbWFya1JlY29yZDIgPSB0YWJsZS5tYXJrMUFycmF5W21hcmsxSW5kZXhdOwogICAgICAgICAgdmFyIF9iYXNlQW5jaG9yMiA9IHRhYmxlLm1hcmsyQXJyYXlbbWFyazJJbmRleF1bX21hcmtSZWNvcmQyLmNsYXNzXTsKICAgICAgICAgIHRoaXMuYXBwbHlBbmNob3IoX21hcmtSZWNvcmQyLCBfYmFzZUFuY2hvcjIsIHByZXZJbmRleCk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CgogICAgICBjYXNlIDc6CiAgICAgICAgLy8gQ29udGV4dHVhbCBwb3NpdGlvbmluZwogICAgICAgIHJldHVybiB0aGlzLmFwcGx5Q29udGV4dCh0YWJsZSk7CgogICAgICBjYXNlIDg6CiAgICAgICAgLy8gQ2hhaW5pbmcgY29udGV4dHVhbCBwb3NpdGlvbmluZwogICAgICAgIHJldHVybiB0aGlzLmFwcGx5Q2hhaW5pbmdDb250ZXh0KHRhYmxlKTsKCiAgICAgIGNhc2UgOToKICAgICAgICAvLyBFeHRlbnNpb24gcG9zaXRpb25pbmcKICAgICAgICByZXR1cm4gdGhpcy5hcHBseUxvb2t1cCh0YWJsZS5sb29rdXBUeXBlLCB0YWJsZS5leHRlbnNpb24pOwoKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIEdQT1MgdGFibGU6ICcgKyBsb29rdXBUeXBlKTsKICAgIH0KICB9OwoKICBHUE9TUHJvY2Vzc29yLnByb3RvdHlwZS5hcHBseUFuY2hvciA9IGZ1bmN0aW9uIGFwcGx5QW5jaG9yKG1hcmtSZWNvcmQsIGJhc2VBbmNob3IsIGJhc2VHbHlwaEluZGV4KSB7CiAgICB2YXIgYmFzZUNvb3JkcyA9IHRoaXMuZ2V0QW5jaG9yKGJhc2VBbmNob3IpOwogICAgdmFyIG1hcmtDb29yZHMgPSB0aGlzLmdldEFuY2hvcihtYXJrUmVjb3JkLm1hcmtBbmNob3IpOwoKICAgIHZhciBiYXNlUG9zID0gdGhpcy5wb3NpdGlvbnNbYmFzZUdseXBoSW5kZXhdOwogICAgdmFyIG1hcmtQb3MgPSB0aGlzLnBvc2l0aW9uc1t0aGlzLmdseXBoSXRlcmF0b3IuaW5kZXhdOwoKICAgIG1hcmtQb3MueE9mZnNldCA9IGJhc2VDb29yZHMueCAtIG1hcmtDb29yZHMueDsKICAgIG1hcmtQb3MueU9mZnNldCA9IGJhc2VDb29yZHMueSAtIG1hcmtDb29yZHMueTsKICAgIHRoaXMuZ2x5cGhJdGVyYXRvci5jdXIubWFya0F0dGFjaG1lbnQgPSBiYXNlR2x5cGhJbmRleDsKICB9OwoKICBHUE9TUHJvY2Vzc29yLnByb3RvdHlwZS5nZXRBbmNob3IgPSBmdW5jdGlvbiBnZXRBbmNob3IoYW5jaG9yKSB7CiAgICAvLyBUT0RPOiBjb250b3VyIHBvaW50LCBkZXZpY2UgdGFibGVzCiAgICB2YXIgeCA9IGFuY2hvci54Q29vcmRpbmF0ZTsKICAgIHZhciB5ID0gYW5jaG9yLnlDb29yZGluYXRlOwoKICAgIC8vIEFkanVzdG1lbnRzIGZvciBmb250IHZhcmlhdGlvbnMKICAgIHZhciB2YXJpYXRpb25Qcm9jZXNzb3IgPSB0aGlzLmZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvcjsKICAgIHZhciB2YXJpYXRpb25TdG9yZSA9IHRoaXMuZm9udC5HREVGICYmIHRoaXMuZm9udC5HREVGLml0ZW1WYXJpYXRpb25TdG9yZTsKICAgIGlmICh2YXJpYXRpb25Qcm9jZXNzb3IgJiYgdmFyaWF0aW9uU3RvcmUpIHsKICAgICAgaWYgKGFuY2hvci54RGV2aWNlVGFibGUpIHsKICAgICAgICB4ICs9IHZhcmlhdGlvblByb2Nlc3Nvci5nZXREZWx0YSh2YXJpYXRpb25TdG9yZSwgYW5jaG9yLnhEZXZpY2VUYWJsZS5hLCBhbmNob3IueERldmljZVRhYmxlLmIpOwogICAgICB9CgogICAgICBpZiAoYW5jaG9yLnlEZXZpY2VUYWJsZSkgewogICAgICAgIHkgKz0gdmFyaWF0aW9uUHJvY2Vzc29yLmdldERlbHRhKHZhcmlhdGlvblN0b3JlLCBhbmNob3IueURldmljZVRhYmxlLmEsIGFuY2hvci55RGV2aWNlVGFibGUuYik7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4geyB4OiB4LCB5OiB5IH07CiAgfTsKCiAgR1BPU1Byb2Nlc3Nvci5wcm90b3R5cGUuYXBwbHlGZWF0dXJlcyA9IGZ1bmN0aW9uIGFwcGx5RmVhdHVyZXModXNlckZlYXR1cmVzLCBnbHlwaHMsIGFkdmFuY2VzKSB7CiAgICBfT1RQcm9jZXNzb3IucHJvdG90eXBlLmFwcGx5RmVhdHVyZXMuY2FsbCh0aGlzLCB1c2VyRmVhdHVyZXMsIGdseXBocywgYWR2YW5jZXMpOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5nbHlwaHMubGVuZ3RoOyBpKyspIHsKICAgICAgdGhpcy5maXhDdXJzaXZlQXR0YWNobWVudChpKTsKICAgIH0KCiAgICB0aGlzLmZpeE1hcmtBdHRhY2htZW50KCk7CiAgfTsKCiAgR1BPU1Byb2Nlc3Nvci5wcm90b3R5cGUuZml4Q3Vyc2l2ZUF0dGFjaG1lbnQgPSBmdW5jdGlvbiBmaXhDdXJzaXZlQXR0YWNobWVudChpKSB7CiAgICB2YXIgZ2x5cGggPSB0aGlzLmdseXBoc1tpXTsKICAgIGlmIChnbHlwaC5jdXJzaXZlQXR0YWNobWVudCAhPSBudWxsKSB7CiAgICAgIHZhciBqID0gZ2x5cGguY3Vyc2l2ZUF0dGFjaG1lbnQ7CgogICAgICBnbHlwaC5jdXJzaXZlQXR0YWNobWVudCA9IG51bGw7CiAgICAgIHRoaXMuZml4Q3Vyc2l2ZUF0dGFjaG1lbnQoaik7CgogICAgICB0aGlzLnBvc2l0aW9uc1tpXS55T2Zmc2V0ICs9IHRoaXMucG9zaXRpb25zW2pdLnlPZmZzZXQ7CiAgICB9CiAgfTsKCiAgR1BPU1Byb2Nlc3Nvci5wcm90b3R5cGUuZml4TWFya0F0dGFjaG1lbnQgPSBmdW5jdGlvbiBmaXhNYXJrQXR0YWNobWVudCgpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5nbHlwaHMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGdseXBoID0gdGhpcy5nbHlwaHNbaV07CiAgICAgIGlmIChnbHlwaC5tYXJrQXR0YWNobWVudCAhPSBudWxsKSB7CiAgICAgICAgdmFyIGogPSBnbHlwaC5tYXJrQXR0YWNobWVudDsKCiAgICAgICAgdGhpcy5wb3NpdGlvbnNbaV0ueE9mZnNldCArPSB0aGlzLnBvc2l0aW9uc1tqXS54T2Zmc2V0OwogICAgICAgIHRoaXMucG9zaXRpb25zW2ldLnlPZmZzZXQgKz0gdGhpcy5wb3NpdGlvbnNbal0ueU9mZnNldDsKCiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAnbHRyJykgewogICAgICAgICAgZm9yICh2YXIgayA9IGo7IGsgPCBpOyBrKyspIHsKICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbaV0ueE9mZnNldCAtPSB0aGlzLnBvc2l0aW9uc1trXS54QWR2YW5jZTsKICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbaV0ueU9mZnNldCAtPSB0aGlzLnBvc2l0aW9uc1trXS55QWR2YW5jZTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yICh2YXIgX2sgPSBqICsgMTsgX2sgPCBpICsgMTsgX2srKykgewogICAgICAgICAgICB0aGlzLnBvc2l0aW9uc1tpXS54T2Zmc2V0ICs9IHRoaXMucG9zaXRpb25zW19rXS54QWR2YW5jZTsKICAgICAgICAgICAgdGhpcy5wb3NpdGlvbnNbaV0ueU9mZnNldCArPSB0aGlzLnBvc2l0aW9uc1tfa10ueUFkdmFuY2U7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfTsKCiAgcmV0dXJuIEdQT1NQcm9jZXNzb3I7Cn0oT1RQcm9jZXNzb3IpOwoKdmFyIE9UTGF5b3V0RW5naW5lID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIE9UTGF5b3V0RW5naW5lKGZvbnQpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBPVExheW91dEVuZ2luZSk7CgogICAgdGhpcy5mb250ID0gZm9udDsKICAgIHRoaXMuZ2x5cGhJbmZvcyA9IG51bGw7CiAgICB0aGlzLnBsYW4gPSBudWxsOwogICAgdGhpcy5HU1VCUHJvY2Vzc29yID0gbnVsbDsKICAgIHRoaXMuR1BPU1Byb2Nlc3NvciA9IG51bGw7CiAgICB0aGlzLmZhbGxiYWNrUG9zaXRpb24gPSB0cnVlOwoKICAgIGlmIChmb250LkdTVUIpIHsKICAgICAgdGhpcy5HU1VCUHJvY2Vzc29yID0gbmV3IEdTVUJQcm9jZXNzb3IoZm9udCwgZm9udC5HU1VCKTsKICAgIH0KCiAgICBpZiAoZm9udC5HUE9TKSB7CiAgICAgIHRoaXMuR1BPU1Byb2Nlc3NvciA9IG5ldyBHUE9TUHJvY2Vzc29yKGZvbnQsIGZvbnQuR1BPUyk7CiAgICB9CiAgfQoKICBPVExheW91dEVuZ2luZS5wcm90b3R5cGUuc2V0dXAgPSBmdW5jdGlvbiBzZXR1cChnbHlwaFJ1bikgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICAvLyBNYXAgZ2x5cGhzIHRvIEdseXBoSW5mbyBvYmplY3RzIHNvIGRhdGEgY2FuIGJlIHBhc3NlZCBiZXR3ZWVuCiAgICAvLyBHU1VCIGFuZCBHUE9TIHdpdGhvdXQgbXV0YXRpbmcgdGhlIHJlYWwgKHNoYXJlZCkgR2x5cGggb2JqZWN0cy4KICAgIHRoaXMuZ2x5cGhJbmZvcyA9IGdseXBoUnVuLmdseXBocy5tYXAoZnVuY3Rpb24gKGdseXBoKSB7CiAgICAgIHJldHVybiBuZXcgR2x5cGhJbmZvKF90aGlzLmZvbnQsIGdseXBoLmlkLCBbXS5jb25jYXQoZ2x5cGguY29kZVBvaW50cykpOwogICAgfSk7CgogICAgLy8gU2VsZWN0IGEgc2NyaXB0IGJhc2VkIG9uIHdoYXQgaXMgYXZhaWxhYmxlIGluIEdTVUIvR1BPUy4KICAgIHZhciBzY3JpcHQgPSBudWxsOwogICAgaWYgKHRoaXMuR1BPU1Byb2Nlc3NvcikgewogICAgICBzY3JpcHQgPSB0aGlzLkdQT1NQcm9jZXNzb3Iuc2VsZWN0U2NyaXB0KGdseXBoUnVuLnNjcmlwdCwgZ2x5cGhSdW4ubGFuZ3VhZ2UsIGdseXBoUnVuLmRpcmVjdGlvbik7CiAgICB9CgogICAgaWYgKHRoaXMuR1NVQlByb2Nlc3NvcikgewogICAgICBzY3JpcHQgPSB0aGlzLkdTVUJQcm9jZXNzb3Iuc2VsZWN0U2NyaXB0KGdseXBoUnVuLnNjcmlwdCwgZ2x5cGhSdW4ubGFuZ3VhZ2UsIGdseXBoUnVuLmRpcmVjdGlvbik7CiAgICB9CgogICAgLy8gQ2hvb3NlIGEgc2hhcGVyIGJhc2VkIG9uIHRoZSBzY3JpcHQsIGFuZCBzZXR1cCBhIHNoYXBpbmcgcGxhbi4KICAgIC8vIFRoaXMgZGV0ZXJtaW5lcyB3aGljaCBmZWF0dXJlcyB0byBhcHBseSB0byB3aGljaCBnbHlwaHMuCiAgICB0aGlzLnNoYXBlciA9IGNob29zZShzY3JpcHQpOwogICAgdGhpcy5wbGFuID0gbmV3IFNoYXBpbmdQbGFuKHRoaXMuZm9udCwgc2NyaXB0LCBnbHlwaFJ1bi5kaXJlY3Rpb24pOwogICAgdGhpcy5zaGFwZXIucGxhbih0aGlzLnBsYW4sIHRoaXMuZ2x5cGhJbmZvcywgZ2x5cGhSdW4uZmVhdHVyZXMpOwoKICAgIC8vIEFzc2lnbiBjaG9zZW4gZmVhdHVyZXMgdG8gb3V0cHV0IGdseXBoIHJ1bgogICAgZm9yICh2YXIga2V5IGluIHRoaXMucGxhbi5hbGxGZWF0dXJlcykgewogICAgICBnbHlwaFJ1bi5mZWF0dXJlc1trZXldID0gdHJ1ZTsKICAgIH0KICB9OwoKICBPVExheW91dEVuZ2luZS5wcm90b3R5cGUuc3Vic3RpdHV0ZSA9IGZ1bmN0aW9uIHN1YnN0aXR1dGUoZ2x5cGhSdW4pIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgIGlmICh0aGlzLkdTVUJQcm9jZXNzb3IpIHsKICAgICAgdGhpcy5wbGFuLnByb2Nlc3ModGhpcy5HU1VCUHJvY2Vzc29yLCB0aGlzLmdseXBoSW5mb3MpOwoKICAgICAgLy8gTWFwIGdseXBoIGluZm9zIGJhY2sgdG8gbm9ybWFsIEdseXBoIG9iamVjdHMKICAgICAgZ2x5cGhSdW4uZ2x5cGhzID0gdGhpcy5nbHlwaEluZm9zLm1hcChmdW5jdGlvbiAoZ2x5cGhJbmZvKSB7CiAgICAgICAgcmV0dXJuIF90aGlzMi5mb250LmdldEdseXBoKGdseXBoSW5mby5pZCwgZ2x5cGhJbmZvLmNvZGVQb2ludHMpOwogICAgICB9KTsKICAgIH0KICB9OwoKICBPVExheW91dEVuZ2luZS5wcm90b3R5cGUucG9zaXRpb24gPSBmdW5jdGlvbiBwb3NpdGlvbihnbHlwaFJ1bikgewogICAgaWYgKHRoaXMuc2hhcGVyLnplcm9NYXJrV2lkdGhzID09PSAnQkVGT1JFX0dQT1MnKSB7CiAgICAgIHRoaXMuemVyb01hcmtBZHZhbmNlcyhnbHlwaFJ1bi5wb3NpdGlvbnMpOwogICAgfQoKICAgIGlmICh0aGlzLkdQT1NQcm9jZXNzb3IpIHsKICAgICAgdGhpcy5wbGFuLnByb2Nlc3ModGhpcy5HUE9TUHJvY2Vzc29yLCB0aGlzLmdseXBoSW5mb3MsIGdseXBoUnVuLnBvc2l0aW9ucyk7CiAgICB9CgogICAgaWYgKHRoaXMuc2hhcGVyLnplcm9NYXJrV2lkdGhzID09PSAnQUZURVJfR1BPUycpIHsKICAgICAgdGhpcy56ZXJvTWFya0FkdmFuY2VzKGdseXBoUnVuLnBvc2l0aW9ucyk7CiAgICB9CgogICAgLy8gUmV2ZXJzZSB0aGUgZ2x5cGhzIGFuZCBwb3NpdGlvbnMgaWYgdGhlIHNjcmlwdCBpcyByaWdodC10by1sZWZ0CiAgICBpZiAoZ2x5cGhSdW4uZGlyZWN0aW9uID09PSAncnRsJykgewogICAgICBnbHlwaFJ1bi5nbHlwaHMucmV2ZXJzZSgpOwogICAgICBnbHlwaFJ1bi5wb3NpdGlvbnMucmV2ZXJzZSgpOwogICAgfQoKICAgIHJldHVybiB0aGlzLkdQT1NQcm9jZXNzb3IgJiYgdGhpcy5HUE9TUHJvY2Vzc29yLmZlYXR1cmVzOwogIH07CgogIE9UTGF5b3V0RW5naW5lLnByb3RvdHlwZS56ZXJvTWFya0FkdmFuY2VzID0gZnVuY3Rpb24gemVyb01hcmtBZHZhbmNlcyhwb3NpdGlvbnMpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5nbHlwaEluZm9zLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0aGlzLmdseXBoSW5mb3NbaV0uaXNNYXJrKSB7CiAgICAgICAgcG9zaXRpb25zW2ldLnhBZHZhbmNlID0gMDsKICAgICAgICBwb3NpdGlvbnNbaV0ueUFkdmFuY2UgPSAwOwogICAgICB9CiAgICB9CiAgfTsKCiAgT1RMYXlvdXRFbmdpbmUucHJvdG90eXBlLmNsZWFudXAgPSBmdW5jdGlvbiBjbGVhbnVwKCkgewogICAgdGhpcy5nbHlwaEluZm9zID0gbnVsbDsKICAgIHRoaXMucGxhbiA9IG51bGw7CiAgICB0aGlzLnNoYXBlciA9IG51bGw7CiAgfTsKCiAgT1RMYXlvdXRFbmdpbmUucHJvdG90eXBlLmdldEF2YWlsYWJsZUZlYXR1cmVzID0gZnVuY3Rpb24gZ2V0QXZhaWxhYmxlRmVhdHVyZXMoc2NyaXB0LCBsYW5ndWFnZSkgewogICAgdmFyIGZlYXR1cmVzID0gW107CgogICAgaWYgKHRoaXMuR1NVQlByb2Nlc3NvcikgewogICAgICB0aGlzLkdTVUJQcm9jZXNzb3Iuc2VsZWN0U2NyaXB0KHNjcmlwdCwgbGFuZ3VhZ2UpOwogICAgICBmZWF0dXJlcy5wdXNoLmFwcGx5KGZlYXR1cmVzLCBfT2JqZWN0JGtleXModGhpcy5HU1VCUHJvY2Vzc29yLmZlYXR1cmVzKSk7CiAgICB9CgogICAgaWYgKHRoaXMuR1BPU1Byb2Nlc3NvcikgewogICAgICB0aGlzLkdQT1NQcm9jZXNzb3Iuc2VsZWN0U2NyaXB0KHNjcmlwdCwgbGFuZ3VhZ2UpOwogICAgICBmZWF0dXJlcy5wdXNoLmFwcGx5KGZlYXR1cmVzLCBfT2JqZWN0JGtleXModGhpcy5HUE9TUHJvY2Vzc29yLmZlYXR1cmVzKSk7CiAgICB9CgogICAgcmV0dXJuIGZlYXR1cmVzOwogIH07CgogIHJldHVybiBPVExheW91dEVuZ2luZTsKfSgpOwoKdmFyIExheW91dEVuZ2luZSA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBMYXlvdXRFbmdpbmUoZm9udCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIExheW91dEVuZ2luZSk7CgogICAgdGhpcy5mb250ID0gZm9udDsKICAgIHRoaXMudW5pY29kZUxheW91dEVuZ2luZSA9IG51bGw7CiAgICB0aGlzLmtlcm5Qcm9jZXNzb3IgPSBudWxsOwoKICAgIC8vIENob29zZSBhbiBhZHZhbmNlZCBsYXlvdXQgZW5naW5lLiBXZSB0cnkgdGhlIEFBVCBtb3J4IHRhYmxlIGZpcnN0IHNpbmNlIG1vcmUKICAgIC8vIHNjcmlwdHMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgYmVjYXVzZSB0aGUgc2hhcGluZyBsb2dpYyBpcyBidWlsdCBpbnRvIHRoZSBmb250LgogICAgaWYgKHRoaXMuZm9udC5tb3J4KSB7CiAgICAgIHRoaXMuZW5naW5lID0gbmV3IEFBVExheW91dEVuZ2luZSh0aGlzLmZvbnQpOwogICAgfSBlbHNlIGlmICh0aGlzLmZvbnQuR1NVQiB8fCB0aGlzLmZvbnQuR1BPUykgewogICAgICB0aGlzLmVuZ2luZSA9IG5ldyBPVExheW91dEVuZ2luZSh0aGlzLmZvbnQpOwogICAgfQogIH0KCiAgTGF5b3V0RW5naW5lLnByb3RvdHlwZS5sYXlvdXQgPSBmdW5jdGlvbiBsYXlvdXQoc3RyaW5nLCBmZWF0dXJlcywgc2NyaXB0LCBsYW5ndWFnZSwgZGlyZWN0aW9uKSB7CiAgICAvLyBNYWtlIHRoZSBmZWF0dXJlcyBwYXJhbWV0ZXIgb3B0aW9uYWwKICAgIGlmICh0eXBlb2YgZmVhdHVyZXMgPT09ICdzdHJpbmcnKSB7CiAgICAgIGRpcmVjdGlvbiA9IGxhbmd1YWdlOwogICAgICBsYW5ndWFnZSA9IHNjcmlwdDsKICAgICAgc2NyaXB0ID0gZmVhdHVyZXM7CiAgICAgIGZlYXR1cmVzID0gW107CiAgICB9CgogICAgLy8gTWFwIHN0cmluZyB0byBnbHlwaHMgaWYgbmVlZGVkCiAgICBpZiAodHlwZW9mIHN0cmluZyA9PT0gJ3N0cmluZycpIHsKICAgICAgLy8gQXR0ZW1wdCB0byBkZXRlY3QgdGhlIHNjcmlwdCBmcm9tIHRoZSBzdHJpbmcgaWYgbm90IHByb3ZpZGVkLgogICAgICBpZiAoc2NyaXB0ID09IG51bGwpIHsKICAgICAgICBzY3JpcHQgPSBmb3JTdHJpbmcoc3RyaW5nKTsKICAgICAgfQoKICAgICAgdmFyIGdseXBocyA9IHRoaXMuZm9udC5nbHlwaHNGb3JTdHJpbmcoc3RyaW5nKTsKICAgIH0gZWxzZSB7CiAgICAgIC8vIEF0dGVtcHQgdG8gZGV0ZWN0IHRoZSBzY3JpcHQgZnJvbSB0aGUgZ2x5cGggY29kZSBwb2ludHMgaWYgbm90IHByb3ZpZGVkLgogICAgICBpZiAoc2NyaXB0ID09IG51bGwpIHsKICAgICAgICB2YXIgY29kZVBvaW50cyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHN0cmluZywgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICAgICAgICB2YXIgX3JlZjsKCiAgICAgICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgZ2x5cGggPSBfcmVmOwoKICAgICAgICAgIGNvZGVQb2ludHMucHVzaC5hcHBseShjb2RlUG9pbnRzLCBnbHlwaC5jb2RlUG9pbnRzKTsKICAgICAgICB9CgogICAgICAgIHNjcmlwdCA9IGZvckNvZGVQb2ludHMoY29kZVBvaW50cyk7CiAgICAgIH0KCiAgICAgIHZhciBnbHlwaHMgPSBzdHJpbmc7CiAgICB9CgogICAgdmFyIGdseXBoUnVuID0gbmV3IEdseXBoUnVuKGdseXBocywgZmVhdHVyZXMsIHNjcmlwdCwgbGFuZ3VhZ2UsIGRpcmVjdGlvbik7CgogICAgLy8gUmV0dXJuIGVhcmx5IGlmIHRoZXJlIGFyZSBubyBnbHlwaHMKICAgIGlmIChnbHlwaHMubGVuZ3RoID09PSAwKSB7CiAgICAgIGdseXBoUnVuLnBvc2l0aW9ucyA9IFtdOwogICAgICByZXR1cm4gZ2x5cGhSdW47CiAgICB9CgogICAgLy8gU2V0dXAgdGhlIGFkdmFuY2VkIGxheW91dCBlbmdpbmUKICAgIGlmICh0aGlzLmVuZ2luZSAmJiB0aGlzLmVuZ2luZS5zZXR1cCkgewogICAgICB0aGlzLmVuZ2luZS5zZXR1cChnbHlwaFJ1bik7CiAgICB9CgogICAgLy8gU3Vic3RpdHV0ZSBhbmQgcG9zaXRpb24gdGhlIGdseXBocwogICAgdGhpcy5zdWJzdGl0dXRlKGdseXBoUnVuKTsKICAgIHRoaXMucG9zaXRpb24oZ2x5cGhSdW4pOwoKICAgIHRoaXMuaGlkZURlZmF1bHRJZ25vcmFibGVzKGdseXBoUnVuLmdseXBocywgZ2x5cGhSdW4ucG9zaXRpb25zKTsKCiAgICAvLyBMZXQgdGhlIGxheW91dCBlbmdpbmUgY2xlYW4gdXAgYW55IHN0YXRlIGl0IG1pZ2h0IGhhdmUKICAgIGlmICh0aGlzLmVuZ2luZSAmJiB0aGlzLmVuZ2luZS5jbGVhbnVwKSB7CiAgICAgIHRoaXMuZW5naW5lLmNsZWFudXAoKTsKICAgIH0KCiAgICByZXR1cm4gZ2x5cGhSdW47CiAgfTsKCiAgTGF5b3V0RW5naW5lLnByb3RvdHlwZS5zdWJzdGl0dXRlID0gZnVuY3Rpb24gc3Vic3RpdHV0ZShnbHlwaFJ1bikgewogICAgLy8gQ2FsbCB0aGUgYWR2YW5jZWQgbGF5b3V0IGVuZ2luZSB0byBtYWtlIHN1YnN0aXR1dGlvbnMKICAgIGlmICh0aGlzLmVuZ2luZSAmJiB0aGlzLmVuZ2luZS5zdWJzdGl0dXRlKSB7CiAgICAgIHRoaXMuZW5naW5lLnN1YnN0aXR1dGUoZ2x5cGhSdW4pOwogICAgfQogIH07CgogIExheW91dEVuZ2luZS5wcm90b3R5cGUucG9zaXRpb24gPSBmdW5jdGlvbiBwb3NpdGlvbihnbHlwaFJ1bikgewogICAgLy8gR2V0IGluaXRpYWwgZ2x5cGggcG9zaXRpb25zCiAgICBnbHlwaFJ1bi5wb3NpdGlvbnMgPSBnbHlwaFJ1bi5nbHlwaHMubWFwKGZ1bmN0aW9uIChnbHlwaCkgewogICAgICByZXR1cm4gbmV3IEdseXBoUG9zaXRpb24oZ2x5cGguYWR2YW5jZVdpZHRoKTsKICAgIH0pOwogICAgdmFyIHBvc2l0aW9uZWQgPSBudWxsOwoKICAgIC8vIENhbGwgdGhlIGFkdmFuY2VkIGxheW91dCBlbmdpbmUuIFJldHVybnMgdGhlIGZlYXR1cmVzIGFwcGxpZWQuCiAgICBpZiAodGhpcy5lbmdpbmUgJiYgdGhpcy5lbmdpbmUucG9zaXRpb24pIHsKICAgICAgcG9zaXRpb25lZCA9IHRoaXMuZW5naW5lLnBvc2l0aW9uKGdseXBoUnVuKTsKICAgIH0KCiAgICAvLyBpZiB0aGVyZSBpcyBubyBHUE9TIHRhYmxlLCB1c2UgdW5pY29kZSBwcm9wZXJ0aWVzIHRvIHBvc2l0aW9uIG1hcmtzLgogICAgaWYgKCFwb3NpdGlvbmVkICYmICghdGhpcy5lbmdpbmUgfHwgdGhpcy5lbmdpbmUuZmFsbGJhY2tQb3NpdGlvbikpIHsKICAgICAgaWYgKCF0aGlzLnVuaWNvZGVMYXlvdXRFbmdpbmUpIHsKICAgICAgICB0aGlzLnVuaWNvZGVMYXlvdXRFbmdpbmUgPSBuZXcgVW5pY29kZUxheW91dEVuZ2luZSh0aGlzLmZvbnQpOwogICAgICB9CgogICAgICB0aGlzLnVuaWNvZGVMYXlvdXRFbmdpbmUucG9zaXRpb25HbHlwaHMoZ2x5cGhSdW4uZ2x5cGhzLCBnbHlwaFJ1bi5wb3NpdGlvbnMpOwogICAgfQoKICAgIC8vIGlmIGtlcm5pbmcgaXMgbm90IHN1cHBvcnRlZCBieSBHUE9TLCBkbyBrZXJuaW5nIHdpdGggdGhlIFRydWVUeXBlL0FBVCBrZXJuIHRhYmxlCiAgICBpZiAoKCFwb3NpdGlvbmVkIHx8ICFwb3NpdGlvbmVkLmtlcm4pICYmIGdseXBoUnVuLmZlYXR1cmVzLmtlcm4gIT09IGZhbHNlICYmIHRoaXMuZm9udC5rZXJuKSB7CiAgICAgIGlmICghdGhpcy5rZXJuUHJvY2Vzc29yKSB7CiAgICAgICAgdGhpcy5rZXJuUHJvY2Vzc29yID0gbmV3IEtlcm5Qcm9jZXNzb3IodGhpcy5mb250KTsKICAgICAgfQoKICAgICAgdGhpcy5rZXJuUHJvY2Vzc29yLnByb2Nlc3MoZ2x5cGhSdW4uZ2x5cGhzLCBnbHlwaFJ1bi5wb3NpdGlvbnMpOwogICAgICBnbHlwaFJ1bi5mZWF0dXJlcy5rZXJuID0gdHJ1ZTsKICAgIH0KICB9OwoKICBMYXlvdXRFbmdpbmUucHJvdG90eXBlLmhpZGVEZWZhdWx0SWdub3JhYmxlcyA9IGZ1bmN0aW9uIGhpZGVEZWZhdWx0SWdub3JhYmxlcyhnbHlwaHMsIHBvc2l0aW9ucykgewogICAgdmFyIHNwYWNlID0gdGhpcy5mb250LmdseXBoRm9yQ29kZVBvaW50KDB4MjApOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBnbHlwaHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHRoaXMuaXNEZWZhdWx0SWdub3JhYmxlKGdseXBoc1tpXS5jb2RlUG9pbnRzWzBdKSkgewogICAgICAgIGdseXBoc1tpXSA9IHNwYWNlOwogICAgICAgIHBvc2l0aW9uc1tpXS54QWR2YW5jZSA9IDA7CiAgICAgICAgcG9zaXRpb25zW2ldLnlBZHZhbmNlID0gMDsKICAgICAgfQogICAgfQogIH07CgogIExheW91dEVuZ2luZS5wcm90b3R5cGUuaXNEZWZhdWx0SWdub3JhYmxlID0gZnVuY3Rpb24gaXNEZWZhdWx0SWdub3JhYmxlKGNoKSB7CiAgICAvLyBGcm9tIERlcml2ZWRDb3JlUHJvcGVydGllcy50eHQgaW4gdGhlIFVuaWNvZGUgZGF0YWJhc2UsCiAgICAvLyBtaW51cyBVKzExNUYsIFUrMTE2MCwgVSszMTY0IGFuZCBVK0ZGQTAsIHdoaWNoIGlzIHdoYXQKICAgIC8vIEhhcmZidXp6IGFuZCBVbmlzY3JpYmUgZG8uCiAgICB2YXIgcGxhbmUgPSBjaCA+PiAxNjsKICAgIGlmIChwbGFuZSA9PT0gMCkgewogICAgICAvLyBCTVAKICAgICAgc3dpdGNoIChjaCA+PiA4KSB7CiAgICAgICAgY2FzZSAweDAwOgogICAgICAgICAgcmV0dXJuIGNoID09PSAweDAwQUQ7CiAgICAgICAgY2FzZSAweDAzOgogICAgICAgICAgcmV0dXJuIGNoID09PSAweDAzNEY7CiAgICAgICAgY2FzZSAweDA2OgogICAgICAgICAgcmV0dXJuIGNoID09PSAweDA2MUM7CiAgICAgICAgY2FzZSAweDE3OgogICAgICAgICAgcmV0dXJuIDB4MTdCNCA8PSBjaCAmJiBjaCA8PSAweDE3QjU7CiAgICAgICAgY2FzZSAweDE4OgogICAgICAgICAgcmV0dXJuIDB4MTgwQiA8PSBjaCAmJiBjaCA8PSAweDE4MEU7CiAgICAgICAgY2FzZSAweDIwOgogICAgICAgICAgcmV0dXJuIDB4MjAwQiA8PSBjaCAmJiBjaCA8PSAweDIwMEYgfHwgMHgyMDJBIDw9IGNoICYmIGNoIDw9IDB4MjAyRSB8fCAweDIwNjAgPD0gY2ggJiYgY2ggPD0gMHgyMDZGOwogICAgICAgIGNhc2UgMHhGRToKICAgICAgICAgIHJldHVybiAweEZFMDAgPD0gY2ggJiYgY2ggPD0gMHhGRTBGIHx8IGNoID09PSAweEZFRkY7CiAgICAgICAgY2FzZSAweEZGOgogICAgICAgICAgcmV0dXJuIDB4RkZGMCA8PSBjaCAmJiBjaCA8PSAweEZGRjg7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgLy8gT3RoZXIgcGxhbmVzCiAgICAgIHN3aXRjaCAocGxhbmUpIHsKICAgICAgICBjYXNlIDB4MDE6CiAgICAgICAgICByZXR1cm4gMHgxQkNBMCA8PSBjaCAmJiBjaCA8PSAweDFCQ0EzIHx8IDB4MUQxNzMgPD0gY2ggJiYgY2ggPD0gMHgxRDE3QTsKICAgICAgICBjYXNlIDB4MEU6CiAgICAgICAgICByZXR1cm4gMHhFMDAwMCA8PSBjaCAmJiBjaCA8PSAweEUwRkZGOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9OwoKICBMYXlvdXRFbmdpbmUucHJvdG90eXBlLmdldEF2YWlsYWJsZUZlYXR1cmVzID0gZnVuY3Rpb24gZ2V0QXZhaWxhYmxlRmVhdHVyZXMoc2NyaXB0LCBsYW5ndWFnZSkgewogICAgdmFyIGZlYXR1cmVzID0gW107CgogICAgaWYgKHRoaXMuZW5naW5lKSB7CiAgICAgIGZlYXR1cmVzLnB1c2guYXBwbHkoZmVhdHVyZXMsIHRoaXMuZW5naW5lLmdldEF2YWlsYWJsZUZlYXR1cmVzKHNjcmlwdCwgbGFuZ3VhZ2UpKTsKICAgIH0KCiAgICBpZiAodGhpcy5mb250Lmtlcm4gJiYgZmVhdHVyZXMuaW5kZXhPZigna2VybicpID09PSAtMSkgewogICAgICBmZWF0dXJlcy5wdXNoKCdrZXJuJyk7CiAgICB9CgogICAgcmV0dXJuIGZlYXR1cmVzOwogIH07CgogIExheW91dEVuZ2luZS5wcm90b3R5cGUuc3RyaW5nc0ZvckdseXBoID0gZnVuY3Rpb24gc3RyaW5nc0ZvckdseXBoKGdpZCkgewogICAgdmFyIHJlc3VsdCA9IG5ldyBfU2V0KCk7CgogICAgdmFyIGNvZGVQb2ludHMgPSB0aGlzLmZvbnQuX2NtYXBQcm9jZXNzb3IuY29kZVBvaW50c0ZvckdseXBoKGdpZCk7CiAgICBmb3IgKHZhciBfaXRlcmF0b3IyID0gY29kZVBvaW50cywgX2lzQXJyYXkyID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IyKSwgX2kyID0gMCwgX2l0ZXJhdG9yMiA9IF9pc0FycmF5MiA/IF9pdGVyYXRvcjIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMik7OykgewogICAgICB2YXIgX3JlZjI7CgogICAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgICAgaWYgKF9pMiA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjIgPSBfaXRlcmF0b3IyW19pMisrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTIgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgICBpZiAoX2kyLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYyID0gX2kyLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgY29kZVBvaW50ID0gX3JlZjI7CgogICAgICByZXN1bHQuYWRkKF9TdHJpbmckZnJvbUNvZGVQb2ludChjb2RlUG9pbnQpKTsKICAgIH0KCiAgICBpZiAodGhpcy5lbmdpbmUgJiYgdGhpcy5lbmdpbmUuc3RyaW5nc0ZvckdseXBoKSB7CiAgICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSB0aGlzLmVuZ2luZS5zdHJpbmdzRm9yR2x5cGgoZ2lkKSwgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMyk7OykgewogICAgICAgIHZhciBfcmVmMzsKCiAgICAgICAgaWYgKF9pc0FycmF5MykgewogICAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pdGVyYXRvcjNbX2kzKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTsKICAgICAgICAgIGlmIChfaTMuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pMy52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBzdHJpbmcgPSBfcmVmMzsKCiAgICAgICAgcmVzdWx0LmFkZChzdHJpbmcpOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIF9BcnJheSRmcm9tKHJlc3VsdCk7CiAgfTsKCiAgcmV0dXJuIExheW91dEVuZ2luZTsKfSgpOwoKdmFyIFNWR19DT01NQU5EUyA9IHsKICBtb3ZlVG86ICdNJywKICBsaW5lVG86ICdMJywKICBxdWFkcmF0aWNDdXJ2ZVRvOiAnUScsCiAgYmV6aWVyQ3VydmVUbzogJ0MnLAogIGNsb3NlUGF0aDogJ1onCn07CgovKioKICogUGF0aCBvYmplY3RzIGFyZSByZXR1cm5lZCBieSBnbHlwaHMgYW5kIHJlcHJlc2VudCB0aGUgYWN0dWFsCiAqIHZlY3RvciBvdXRsaW5lcyBmb3IgZWFjaCBnbHlwaCBpbiB0aGUgZm9udC4gUGF0aHMgY2FuIGJlIGNvbnZlcnRlZAogKiB0byBTVkcgcGF0aCBkYXRhIHN0cmluZ3MsIG9yIHRvIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvCiAqIHJlbmRlciB0aGUgcGF0aCB0byBhIGdyYXBoaWNzIGNvbnRleHQuCiAqLwoKdmFyIFBhdGggPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gUGF0aCgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBQYXRoKTsKCiAgICB0aGlzLmNvbW1hbmRzID0gW107CiAgICB0aGlzLl9iYm94ID0gbnVsbDsKICAgIHRoaXMuX2Nib3ggPSBudWxsOwogIH0KCiAgLyoqCiAgICogQ29tcGlsZXMgdGhlIHBhdGggdG8gYSBKYXZhU2NyaXB0IGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgd2l0aAogICAqIGEgZ3JhcGhpY3MgY29udGV4dCBpbiBvcmRlciB0byByZW5kZXIgdGhlIHBhdGguCiAgICogQHJldHVybiB7c3RyaW5nfQogICAqLwoKCiAgUGF0aC5wcm90b3R5cGUudG9GdW5jdGlvbiA9IGZ1bmN0aW9uIHRvRnVuY3Rpb24oKSB7CiAgICB2YXIgY21kcyA9IHRoaXMuY29tbWFuZHMubWFwKGZ1bmN0aW9uIChjKSB7CiAgICAgIHJldHVybiAnICBjdHguJyArIGMuY29tbWFuZCArICcoJyArIGMuYXJncy5qb2luKCcsICcpICsgJyk7JzsKICAgIH0pOwogICAgcmV0dXJuIG5ldyBGdW5jdGlvbignY3R4JywgY21kcy5qb2luKCdcbicpKTsKICB9OwoKICAvKioKICAgKiBDb252ZXJ0cyB0aGUgcGF0aCB0byBhbiBTVkcgcGF0aCBkYXRhIHN0cmluZwogICAqIEByZXR1cm4ge3N0cmluZ30KICAgKi8KCgogIFBhdGgucHJvdG90eXBlLnRvU1ZHID0gZnVuY3Rpb24gdG9TVkcoKSB7CiAgICB2YXIgY21kcyA9IHRoaXMuY29tbWFuZHMubWFwKGZ1bmN0aW9uIChjKSB7CiAgICAgIHZhciBhcmdzID0gYy5hcmdzLm1hcChmdW5jdGlvbiAoYXJnKSB7CiAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoYXJnICogMTAwKSAvIDEwMDsKICAgICAgfSk7CiAgICAgIHJldHVybiAnJyArIFNWR19DT01NQU5EU1tjLmNvbW1hbmRdICsgYXJncy5qb2luKCcgJyk7CiAgICB9KTsKCiAgICByZXR1cm4gY21kcy5qb2luKCcnKTsKICB9OwoKICAvKioKICAgKiBHZXRzIHRoZSAiY29udHJvbCBib3giIG9mIGEgcGF0aC4KICAgKiBUaGlzIGlzIGxpa2UgdGhlIGJvdW5kaW5nIGJveCwgYnV0IGl0IGluY2x1ZGVzIGFsbCBwb2ludHMgaW5jbHVkaW5nCiAgICogY29udHJvbCBwb2ludHMgb2YgYmV6aWVyIHNlZ21lbnRzIGFuZCBpcyBtdWNoIGZhc3RlciB0byBjb21wdXRlIHRoYW4KICAgKiB0aGUgcmVhbCBib3VuZGluZyBib3guCiAgICogQHR5cGUge0JCb3h9CiAgICovCgoKICAvKioKICAgKiBBcHBsaWVzIGEgbWFwcGluZyBmdW5jdGlvbiB0byBlYWNoIHBvaW50IGluIHRoZSBwYXRoLgogICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZuCiAgICogQHJldHVybiB7UGF0aH0KICAgKi8KICBQYXRoLnByb3RvdHlwZS5tYXBQb2ludHMgPSBmdW5jdGlvbiBtYXBQb2ludHMoZm4pIHsKICAgIHZhciBwYXRoID0gbmV3IFBhdGgoKTsKCiAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSB0aGlzLmNvbW1hbmRzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgdmFyIF9yZWY7CgogICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIGMgPSBfcmVmOwoKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kyID0gMDsgX2kyIDwgYy5hcmdzLmxlbmd0aDsgX2kyICs9IDIpIHsKICAgICAgICB2YXIgX2ZuID0gZm4oYy5hcmdzW19pMl0sIGMuYXJnc1tfaTIgKyAxXSksCiAgICAgICAgICAgIHggPSBfZm5bMF0sCiAgICAgICAgICAgIHkgPSBfZm5bMV07CgogICAgICAgIGFyZ3MucHVzaCh4LCB5KTsKICAgICAgfQoKICAgICAgcGF0aFtjLmNvbW1hbmRdLmFwcGx5KHBhdGgsIGFyZ3MpOwogICAgfQoKICAgIHJldHVybiBwYXRoOwogIH07CgogIC8qKgogICAqIFRyYW5zZm9ybXMgdGhlIHBhdGggYnkgdGhlIGdpdmVuIG1hdHJpeC4KICAgKi8KCgogIFBhdGgucHJvdG90eXBlLnRyYW5zZm9ybSA9IGZ1bmN0aW9uIHRyYW5zZm9ybShtMCwgbTEsIG0yLCBtMywgbTQsIG01KSB7CiAgICByZXR1cm4gdGhpcy5tYXBQb2ludHMoZnVuY3Rpb24gKHgsIHkpIHsKICAgICAgeCA9IG0wICogeCArIG0yICogeSArIG00OwogICAgICB5ID0gbTEgKiB4ICsgbTMgKiB5ICsgbTU7CiAgICAgIHJldHVybiBbeCwgeV07CiAgICB9KTsKICB9OwoKICAvKioKICAgKiBUcmFuc2xhdGVzIHRoZSBwYXRoIGJ5IHRoZSBnaXZlbiBvZmZzZXQuCiAgICovCgoKICBQYXRoLnByb3RvdHlwZS50cmFuc2xhdGUgPSBmdW5jdGlvbiB0cmFuc2xhdGUoeCwgeSkgewogICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtKDEsIDAsIDAsIDEsIHgsIHkpOwogIH07CgogIC8qKgogICAqIFJvdGF0ZXMgdGhlIHBhdGggYnkgdGhlIGdpdmVuIGFuZ2xlIChpbiByYWRpYW5zKS4KICAgKi8KCgogIFBhdGgucHJvdG90eXBlLnJvdGF0ZSA9IGZ1bmN0aW9uIHJvdGF0ZShhbmdsZSkgewogICAgdmFyIGNvcyA9IE1hdGguY29zKGFuZ2xlKTsKICAgIHZhciBzaW4gPSBNYXRoLnNpbihhbmdsZSk7CiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0oY29zLCBzaW4sIC1zaW4sIGNvcywgMCwgMCk7CiAgfTsKCiAgLyoqCiAgICogU2NhbGVzIHRoZSBwYXRoLgogICAqLwoKCiAgUGF0aC5wcm90b3R5cGUuc2NhbGUgPSBmdW5jdGlvbiBzY2FsZShzY2FsZVgpIHsKICAgIHZhciBzY2FsZVkgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IHNjYWxlWDsKCiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm0oc2NhbGVYLCAwLCAwLCBzY2FsZVksIDAsIDApOwogIH07CgogIF9jcmVhdGVDbGFzcyhQYXRoLCBbewogICAga2V5OiAnY2JveCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgaWYgKCF0aGlzLl9jYm94KSB7CiAgICAgICAgdmFyIGNib3ggPSBuZXcgQkJveCgpOwogICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSB0aGlzLmNvbW1hbmRzLCBfaXNBcnJheTIgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjIpLCBfaTMgPSAwLCBfaXRlcmF0b3IyID0gX2lzQXJyYXkyID8gX2l0ZXJhdG9yMiA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IyKTs7KSB7CiAgICAgICAgICB2YXIgX3JlZjI7CgogICAgICAgICAgaWYgKF9pc0FycmF5MikgewogICAgICAgICAgICBpZiAoX2kzID49IF9pdGVyYXRvcjIubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgX3JlZjIgPSBfaXRlcmF0b3IyW19pMysrXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIF9pMyA9IF9pdGVyYXRvcjIubmV4dCgpOwogICAgICAgICAgICBpZiAoX2kzLmRvbmUpIGJyZWFrOwogICAgICAgICAgICBfcmVmMiA9IF9pMy52YWx1ZTsKICAgICAgICAgIH0KCiAgICAgICAgICB2YXIgY29tbWFuZCA9IF9yZWYyOwoKICAgICAgICAgIGZvciAodmFyIF9pNCA9IDA7IF9pNCA8IGNvbW1hbmQuYXJncy5sZW5ndGg7IF9pNCArPSAyKSB7CiAgICAgICAgICAgIGNib3guYWRkUG9pbnQoY29tbWFuZC5hcmdzW19pNF0sIGNvbW1hbmQuYXJnc1tfaTQgKyAxXSk7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB0aGlzLl9jYm94ID0gX09iamVjdCRmcmVlemUoY2JveCk7CiAgICAgIH0KCiAgICAgIHJldHVybiB0aGlzLl9jYm94OwogICAgfQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgZXhhY3QgYm91bmRpbmcgYm94IG9mIHRoZSBwYXRoIGJ5IGV2YWx1YXRpbmcgY3VydmUgc2VnbWVudHMuCiAgICAgKiBTbG93ZXIgdG8gY29tcHV0ZSB0aGFuIHRoZSBjb250cm9sIGJveCwgYnV0IG1vcmUgYWNjdXJhdGUuCiAgICAgKiBAdHlwZSB7QkJveH0KICAgICAqLwoKICB9LCB7CiAgICBrZXk6ICdiYm94JywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICBpZiAodGhpcy5fYmJveCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYm94OwogICAgICB9CgogICAgICB2YXIgYmJveCA9IG5ldyBCQm94KCk7CiAgICAgIHZhciBjeCA9IDAsCiAgICAgICAgICBjeSA9IDA7CgogICAgICB2YXIgZiA9IGZ1bmN0aW9uIGYodCkgewogICAgICAgIHJldHVybiBNYXRoLnBvdygxIC0gdCwgMykgKiBwMFtpXSArIDMgKiBNYXRoLnBvdygxIC0gdCwgMikgKiB0ICogcDFbaV0gKyAzICogKDEgLSB0KSAqIE1hdGgucG93KHQsIDIpICogcDJbaV0gKyBNYXRoLnBvdyh0LCAzKSAqIHAzW2ldOwogICAgICB9OwoKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMyA9IHRoaXMuY29tbWFuZHMsIF9pc0FycmF5MyA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yMyksIF9pNSA9IDAsIF9pdGVyYXRvcjMgPSBfaXNBcnJheTMgPyBfaXRlcmF0b3IzIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcjMpOzspIHsKICAgICAgICB2YXIgX3JlZjM7CgogICAgICAgIGlmIChfaXNBcnJheTMpIHsKICAgICAgICAgIGlmIChfaTUgPj0gX2l0ZXJhdG9yMy5sZW5ndGgpIGJyZWFrOwogICAgICAgICAgX3JlZjMgPSBfaXRlcmF0b3IzW19pNSsrXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX2k1ID0gX2l0ZXJhdG9yMy5uZXh0KCk7CiAgICAgICAgICBpZiAoX2k1LmRvbmUpIGJyZWFrOwogICAgICAgICAgX3JlZjMgPSBfaTUudmFsdWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgYyA9IF9yZWYzOwoKICAgICAgICBzd2l0Y2ggKGMuY29tbWFuZCkgewogICAgICAgICAgY2FzZSAnbW92ZVRvJzoKICAgICAgICAgIGNhc2UgJ2xpbmVUbyc6CiAgICAgICAgICAgIHZhciBfYyRhcmdzID0gYy5hcmdzLAogICAgICAgICAgICAgICAgeCA9IF9jJGFyZ3NbMF0sCiAgICAgICAgICAgICAgICB5ID0gX2MkYXJnc1sxXTsKCiAgICAgICAgICAgIGJib3guYWRkUG9pbnQoeCwgeSk7CiAgICAgICAgICAgIGN4ID0geDsKICAgICAgICAgICAgY3kgPSB5OwogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICBjYXNlICdxdWFkcmF0aWNDdXJ2ZVRvJzoKICAgICAgICAgIGNhc2UgJ2JlemllckN1cnZlVG8nOgogICAgICAgICAgICBpZiAoYy5jb21tYW5kID09PSAncXVhZHJhdGljQ3VydmVUbycpIHsKICAgICAgICAgICAgICAvLyBodHRwOi8vZm9udGZvcmdlLm9yZy9iZXppZXIuaHRtbAogICAgICAgICAgICAgIHZhciBfYyRhcmdzMiA9IGMuYXJncywKICAgICAgICAgICAgICAgICAgcXAxeCA9IF9jJGFyZ3MyWzBdLAogICAgICAgICAgICAgICAgICBxcDF5ID0gX2MkYXJnczJbMV0sCiAgICAgICAgICAgICAgICAgIHAzeCA9IF9jJGFyZ3MyWzJdLAogICAgICAgICAgICAgICAgICBwM3kgPSBfYyRhcmdzMlszXTsKCiAgICAgICAgICAgICAgdmFyIGNwMXggPSBjeCArIDIgLyAzICogKHFwMXggLSBjeCk7IC8vIENQMSA9IFFQMCArIDIvMyAqIChRUDEtUVAwKQogICAgICAgICAgICAgIHZhciBjcDF5ID0gY3kgKyAyIC8gMyAqIChxcDF5IC0gY3kpOwogICAgICAgICAgICAgIHZhciBjcDJ4ID0gcDN4ICsgMiAvIDMgKiAocXAxeCAtIHAzeCk7IC8vIENQMiA9IFFQMiArIDIvMyAqIChRUDEtUVAyKQogICAgICAgICAgICAgIHZhciBjcDJ5ID0gcDN5ICsgMiAvIDMgKiAocXAxeSAtIHAzeSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdmFyIF9jJGFyZ3MzID0gYy5hcmdzLAogICAgICAgICAgICAgICAgICBjcDF4ID0gX2MkYXJnczNbMF0sCiAgICAgICAgICAgICAgICAgIGNwMXkgPSBfYyRhcmdzM1sxXSwKICAgICAgICAgICAgICAgICAgY3AyeCA9IF9jJGFyZ3MzWzJdLAogICAgICAgICAgICAgICAgICBjcDJ5ID0gX2MkYXJnczNbM10sCiAgICAgICAgICAgICAgICAgIHAzeCA9IF9jJGFyZ3MzWzRdLAogICAgICAgICAgICAgICAgICBwM3kgPSBfYyRhcmdzM1s1XTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gaHR0cDovL2Jsb2cuaGFja2Vycy1jYWZlLm5ldC8yMDA5LzA2L2hvdy10by1jYWxjdWxhdGUtYmV6aWVyLWN1cnZlcy1ib3VuZGluZy5odG1sCiAgICAgICAgICAgIGJib3guYWRkUG9pbnQocDN4LCBwM3kpOwoKICAgICAgICAgICAgdmFyIHAwID0gW2N4LCBjeV07CiAgICAgICAgICAgIHZhciBwMSA9IFtjcDF4LCBjcDF5XTsKICAgICAgICAgICAgdmFyIHAyID0gW2NwMngsIGNwMnldOwogICAgICAgICAgICB2YXIgcDMgPSBbcDN4LCBwM3ldOwoKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPD0gMTsgaSsrKSB7CiAgICAgICAgICAgICAgdmFyIGIgPSA2ICogcDBbaV0gLSAxMiAqIHAxW2ldICsgNiAqIHAyW2ldOwogICAgICAgICAgICAgIHZhciBhID0gLTMgKiBwMFtpXSArIDkgKiBwMVtpXSAtIDkgKiBwMltpXSArIDMgKiBwM1tpXTsKICAgICAgICAgICAgICBjID0gMyAqIHAxW2ldIC0gMyAqIHAwW2ldOwoKICAgICAgICAgICAgICBpZiAoYSA9PT0gMCkgewogICAgICAgICAgICAgICAgaWYgKGIgPT09IDApIHsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdmFyIHQgPSAtYyAvIGI7CiAgICAgICAgICAgICAgICBpZiAoMCA8IHQgJiYgdCA8IDEpIHsKICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICBiYm94LmFkZFBvaW50KGYodCksIGJib3gubWF4WSk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaSA9PT0gMSkgewogICAgICAgICAgICAgICAgICAgIGJib3guYWRkUG9pbnQoYmJveC5tYXhYLCBmKHQpKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgdmFyIGIyYWMgPSBNYXRoLnBvdyhiLCAyKSAtIDQgKiBjICogYTsKICAgICAgICAgICAgICBpZiAoYjJhYyA8IDApIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgdmFyIHQxID0gKC1iICsgTWF0aC5zcXJ0KGIyYWMpKSAvICgyICogYSk7CiAgICAgICAgICAgICAgaWYgKDAgPCB0MSAmJiB0MSA8IDEpIHsKICAgICAgICAgICAgICAgIGlmIChpID09PSAwKSB7CiAgICAgICAgICAgICAgICAgIGJib3guYWRkUG9pbnQoZih0MSksIGJib3gubWF4WSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGkgPT09IDEpIHsKICAgICAgICAgICAgICAgICAgYmJveC5hZGRQb2ludChiYm94Lm1heFgsIGYodDEpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIHZhciB0MiA9ICgtYiAtIE1hdGguc3FydChiMmFjKSkgLyAoMiAqIGEpOwogICAgICAgICAgICAgIGlmICgwIDwgdDIgJiYgdDIgPCAxKSB7CiAgICAgICAgICAgICAgICBpZiAoaSA9PT0gMCkgewogICAgICAgICAgICAgICAgICBiYm94LmFkZFBvaW50KGYodDIpLCBiYm94Lm1heFkpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpID09PSAxKSB7CiAgICAgICAgICAgICAgICAgIGJib3guYWRkUG9pbnQoYmJveC5tYXhYLCBmKHQyKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBjeCA9IHAzeDsKICAgICAgICAgICAgY3kgPSBwM3k7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQoKICAgICAgcmV0dXJuIHRoaXMuX2Jib3ggPSBfT2JqZWN0JGZyZWV6ZShiYm94KTsKICAgIH0KICB9XSk7CgogIHJldHVybiBQYXRoOwp9KCk7Cgp2YXIgX2FyciA9IFsnbW92ZVRvJywgJ2xpbmVUbycsICdxdWFkcmF0aWNDdXJ2ZVRvJywgJ2JlemllckN1cnZlVG8nLCAnY2xvc2VQYXRoJ107Cgp2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcCgpIHsKICB2YXIgY29tbWFuZCA9IF9hcnJbX2k2XTsKICBQYXRoLnByb3RvdHlwZVtjb21tYW5kXSA9IGZ1bmN0aW9uICgpIHsKICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7CiAgICAgIGFyZ3NbX2tleV0gPSBhcmd1bWVudHNbX2tleV07CiAgICB9CgogICAgdGhpcy5fYmJveCA9IHRoaXMuX2Nib3ggPSBudWxsOwogICAgdGhpcy5jb21tYW5kcy5wdXNoKHsKICAgICAgY29tbWFuZDogY29tbWFuZCwKICAgICAgYXJnczogYXJncwogICAgfSk7CgogICAgcmV0dXJuIHRoaXM7CiAgfTsKfTsKCmZvciAodmFyIF9pNiA9IDA7IF9pNiA8IF9hcnIubGVuZ3RoOyBfaTYrKykgewogIF9sb29wKCk7Cn0KCnZhciBTdGFuZGFyZE5hbWVzID0gWycubm90ZGVmJywgJy5udWxsJywgJ25vbm1hcmtpbmdyZXR1cm4nLCAnc3BhY2UnLCAnZXhjbGFtJywgJ3F1b3RlZGJsJywgJ251bWJlcnNpZ24nLCAnZG9sbGFyJywgJ3BlcmNlbnQnLCAnYW1wZXJzYW5kJywgJ3F1b3Rlc2luZ2xlJywgJ3BhcmVubGVmdCcsICdwYXJlbnJpZ2h0JywgJ2FzdGVyaXNrJywgJ3BsdXMnLCAnY29tbWEnLCAnaHlwaGVuJywgJ3BlcmlvZCcsICdzbGFzaCcsICd6ZXJvJywgJ29uZScsICd0d28nLCAndGhyZWUnLCAnZm91cicsICdmaXZlJywgJ3NpeCcsICdzZXZlbicsICdlaWdodCcsICduaW5lJywgJ2NvbG9uJywgJ3NlbWljb2xvbicsICdsZXNzJywgJ2VxdWFsJywgJ2dyZWF0ZXInLCAncXVlc3Rpb24nLCAnYXQnLCAnQScsICdCJywgJ0MnLCAnRCcsICdFJywgJ0YnLCAnRycsICdIJywgJ0knLCAnSicsICdLJywgJ0wnLCAnTScsICdOJywgJ08nLCAnUCcsICdRJywgJ1InLCAnUycsICdUJywgJ1UnLCAnVicsICdXJywgJ1gnLCAnWScsICdaJywgJ2JyYWNrZXRsZWZ0JywgJ2JhY2tzbGFzaCcsICdicmFja2V0cmlnaHQnLCAnYXNjaWljaXJjdW0nLCAndW5kZXJzY29yZScsICdncmF2ZScsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicsICdnJywgJ2gnLCAnaScsICdqJywgJ2snLCAnbCcsICdtJywgJ24nLCAnbycsICdwJywgJ3EnLCAncicsICdzJywgJ3QnLCAndScsICd2JywgJ3cnLCAneCcsICd5JywgJ3onLCAnYnJhY2VsZWZ0JywgJ2JhcicsICdicmFjZXJpZ2h0JywgJ2FzY2lpdGlsZGUnLCAnQWRpZXJlc2lzJywgJ0FyaW5nJywgJ0NjZWRpbGxhJywgJ0VhY3V0ZScsICdOdGlsZGUnLCAnT2RpZXJlc2lzJywgJ1VkaWVyZXNpcycsICdhYWN1dGUnLCAnYWdyYXZlJywgJ2FjaXJjdW1mbGV4JywgJ2FkaWVyZXNpcycsICdhdGlsZGUnLCAnYXJpbmcnLCAnY2NlZGlsbGEnLCAnZWFjdXRlJywgJ2VncmF2ZScsICdlY2lyY3VtZmxleCcsICdlZGllcmVzaXMnLCAnaWFjdXRlJywgJ2lncmF2ZScsICdpY2lyY3VtZmxleCcsICdpZGllcmVzaXMnLCAnbnRpbGRlJywgJ29hY3V0ZScsICdvZ3JhdmUnLCAnb2NpcmN1bWZsZXgnLCAnb2RpZXJlc2lzJywgJ290aWxkZScsICd1YWN1dGUnLCAndWdyYXZlJywgJ3VjaXJjdW1mbGV4JywgJ3VkaWVyZXNpcycsICdkYWdnZXInLCAnZGVncmVlJywgJ2NlbnQnLCAnc3RlcmxpbmcnLCAnc2VjdGlvbicsICdidWxsZXQnLCAncGFyYWdyYXBoJywgJ2dlcm1hbmRibHMnLCAncmVnaXN0ZXJlZCcsICdjb3B5cmlnaHQnLCAndHJhZGVtYXJrJywgJ2FjdXRlJywgJ2RpZXJlc2lzJywgJ25vdGVxdWFsJywgJ0FFJywgJ09zbGFzaCcsICdpbmZpbml0eScsICdwbHVzbWludXMnLCAnbGVzc2VxdWFsJywgJ2dyZWF0ZXJlcXVhbCcsICd5ZW4nLCAnbXUnLCAncGFydGlhbGRpZmYnLCAnc3VtbWF0aW9uJywgJ3Byb2R1Y3QnLCAncGknLCAnaW50ZWdyYWwnLCAnb3JkZmVtaW5pbmUnLCAnb3JkbWFzY3VsaW5lJywgJ09tZWdhJywgJ2FlJywgJ29zbGFzaCcsICdxdWVzdGlvbmRvd24nLCAnZXhjbGFtZG93bicsICdsb2dpY2Fsbm90JywgJ3JhZGljYWwnLCAnZmxvcmluJywgJ2FwcHJveGVxdWFsJywgJ0RlbHRhJywgJ2d1aWxsZW1vdGxlZnQnLCAnZ3VpbGxlbW90cmlnaHQnLCAnZWxsaXBzaXMnLCAnbm9uYnJlYWtpbmdzcGFjZScsICdBZ3JhdmUnLCAnQXRpbGRlJywgJ090aWxkZScsICdPRScsICdvZScsICdlbmRhc2gnLCAnZW1kYXNoJywgJ3F1b3RlZGJsbGVmdCcsICdxdW90ZWRibHJpZ2h0JywgJ3F1b3RlbGVmdCcsICdxdW90ZXJpZ2h0JywgJ2RpdmlkZScsICdsb3plbmdlJywgJ3lkaWVyZXNpcycsICdZZGllcmVzaXMnLCAnZnJhY3Rpb24nLCAnY3VycmVuY3knLCAnZ3VpbHNpbmdsbGVmdCcsICdndWlsc2luZ2xyaWdodCcsICdmaScsICdmbCcsICdkYWdnZXJkYmwnLCAncGVyaW9kY2VudGVyZWQnLCAncXVvdGVzaW5nbGJhc2UnLCAncXVvdGVkYmxiYXNlJywgJ3BlcnRob3VzYW5kJywgJ0FjaXJjdW1mbGV4JywgJ0VjaXJjdW1mbGV4JywgJ0FhY3V0ZScsICdFZGllcmVzaXMnLCAnRWdyYXZlJywgJ0lhY3V0ZScsICdJY2lyY3VtZmxleCcsICdJZGllcmVzaXMnLCAnSWdyYXZlJywgJ09hY3V0ZScsICdPY2lyY3VtZmxleCcsICdhcHBsZScsICdPZ3JhdmUnLCAnVWFjdXRlJywgJ1VjaXJjdW1mbGV4JywgJ1VncmF2ZScsICdkb3RsZXNzaScsICdjaXJjdW1mbGV4JywgJ3RpbGRlJywgJ21hY3JvbicsICdicmV2ZScsICdkb3RhY2NlbnQnLCAncmluZycsICdjZWRpbGxhJywgJ2h1bmdhcnVtbGF1dCcsICdvZ29uZWsnLCAnY2Fyb24nLCAnTHNsYXNoJywgJ2xzbGFzaCcsICdTY2Fyb24nLCAnc2Nhcm9uJywgJ1pjYXJvbicsICd6Y2Fyb24nLCAnYnJva2VuYmFyJywgJ0V0aCcsICdldGgnLCAnWWFjdXRlJywgJ3lhY3V0ZScsICdUaG9ybicsICd0aG9ybicsICdtaW51cycsICdtdWx0aXBseScsICdvbmVzdXBlcmlvcicsICd0d29zdXBlcmlvcicsICd0aHJlZXN1cGVyaW9yJywgJ29uZWhhbGYnLCAnb25lcXVhcnRlcicsICd0aHJlZXF1YXJ0ZXJzJywgJ2ZyYW5jJywgJ0dicmV2ZScsICdnYnJldmUnLCAnSWRvdGFjY2VudCcsICdTY2VkaWxsYScsICdzY2VkaWxsYScsICdDYWN1dGUnLCAnY2FjdXRlJywgJ0NjYXJvbicsICdjY2Fyb24nLCAnZGNyb2F0J107Cgp2YXIgX2NsYXNzJDg7CmZ1bmN0aW9uIF9hcHBseURlY29yYXRlZERlc2NyaXB0b3IkNCh0YXJnZXQsIHByb3BlcnR5LCBkZWNvcmF0b3JzLCBkZXNjcmlwdG9yLCBjb250ZXh0KSB7CiAgdmFyIGRlc2MgPSB7fTsKICBPYmplY3RbJ2tlJyArICd5cyddKGRlc2NyaXB0b3IpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgZGVzY1trZXldID0gZGVzY3JpcHRvcltrZXldOwogIH0pOwogIGRlc2MuZW51bWVyYWJsZSA9ICEhZGVzYy5lbnVtZXJhYmxlOwogIGRlc2MuY29uZmlndXJhYmxlID0gISFkZXNjLmNvbmZpZ3VyYWJsZTsKCiAgaWYgKCd2YWx1ZScgaW4gZGVzYyB8fCBkZXNjLmluaXRpYWxpemVyKSB7CiAgICBkZXNjLndyaXRhYmxlID0gdHJ1ZTsKICB9CgogIGRlc2MgPSBkZWNvcmF0b3JzLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbiAoZGVzYywgZGVjb3JhdG9yKSB7CiAgICByZXR1cm4gZGVjb3JhdG9yKHRhcmdldCwgcHJvcGVydHksIGRlc2MpIHx8IGRlc2M7CiAgfSwgZGVzYyk7CgogIGlmIChjb250ZXh0ICYmIGRlc2MuaW5pdGlhbGl6ZXIgIT09IHZvaWQgMCkgewogICAgZGVzYy52YWx1ZSA9IGRlc2MuaW5pdGlhbGl6ZXIgPyBkZXNjLmluaXRpYWxpemVyLmNhbGwoY29udGV4dCkgOiB2b2lkIDA7CiAgICBkZXNjLmluaXRpYWxpemVyID0gdW5kZWZpbmVkOwogIH0KCiAgaWYgKGRlc2MuaW5pdGlhbGl6ZXIgPT09IHZvaWQgMCkgewogICAgT2JqZWN0WydkZWZpbmUnICsgJ1Byb3BlcnR5J10odGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYyk7CiAgICBkZXNjID0gbnVsbDsKICB9CgogIHJldHVybiBkZXNjOwp9CgovKioKICogR2x5cGggb2JqZWN0cyByZXByZXNlbnQgYSBnbHlwaCBpbiB0aGUgZm9udC4gVGhleSBoYXZlIHZhcmlvdXMgcHJvcGVydGllcyBmb3IgYWNjZXNzaW5nIG1ldHJpY3MgYW5kCiAqIHRoZSBhY3R1YWwgdmVjdG9yIHBhdGggdGhlIGdseXBoIHJlcHJlc2VudHMsIGFuZCBtZXRob2RzIGZvciByZW5kZXJpbmcgdGhlIGdseXBoIHRvIGEgZ3JhcGhpY3MgY29udGV4dC4KICoKICogWW91IGRvIG5vdCBjcmVhdGUgZ2x5cGggb2JqZWN0cyBkaXJlY3RseS4gVGhleSBhcmUgY3JlYXRlZCBieSB2YXJpb3VzIG1ldGhvZHMgb24gdGhlIGZvbnQgb2JqZWN0LgogKiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJjbGFzc2VzIG9mIHRoZSBiYXNlIEdseXBoIGNsYXNzIGludGVybmFsbHkgdGhhdCBtYXkgYmUgcmV0dXJuZWQgZGVwZW5kaW5nCiAqIG9uIHRoZSBmb250IGZvcm1hdCwgYnV0IHRoZXkgYWxsIGluaGVyaXQgZnJvbSB0aGlzIGNsYXNzLgogKi8KdmFyIEdseXBoID0gKF9jbGFzcyQ4ID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIEdseXBoKGlkLCBjb2RlUG9pbnRzLCBmb250KSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgR2x5cGgpOwoKICAgIC8qKgogICAgICogVGhlIGdseXBoIGlkIGluIHRoZSBmb250CiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCiAgICB0aGlzLmlkID0gaWQ7CgogICAgLyoqCiAgICAgKiBBbiBhcnJheSBvZiB1bmljb2RlIGNvZGUgcG9pbnRzIHRoYXQgYXJlIHJlcHJlc2VudGVkIGJ5IHRoaXMgZ2x5cGguCiAgICAgKiBUaGVyZSBjYW4gYmUgbXVsdGlwbGUgY29kZSBwb2ludHMgaW4gdGhlIGNhc2Ugb2YgbGlnYXR1cmVzIGFuZCBvdGhlciBnbHlwaHMKICAgICAqIHRoYXQgcmVwcmVzZW50IG11bHRpcGxlIHZpc3VhbCBjaGFyYWN0ZXJzLgogICAgICogQHR5cGUge251bWJlcltdfQogICAgICovCiAgICB0aGlzLmNvZGVQb2ludHMgPSBjb2RlUG9pbnRzOwogICAgdGhpcy5fZm9udCA9IGZvbnQ7CgogICAgLy8gVE9ETzogZ2V0IHRoaXMgaW5mbyBmcm9tIEdERUYgaWYgYXZhaWxhYmxlCiAgICB0aGlzLmlzTWFyayA9IHRoaXMuY29kZVBvaW50cy5ldmVyeSh1bmljb2RlLmlzTWFyayk7CiAgICB0aGlzLmlzTGlnYXR1cmUgPSB0aGlzLmNvZGVQb2ludHMubGVuZ3RoID4gMTsKICB9CgogIEdseXBoLnByb3RvdHlwZS5fZ2V0UGF0aCA9IGZ1bmN0aW9uIF9nZXRQYXRoKCkgewogICAgcmV0dXJuIG5ldyBQYXRoKCk7CiAgfTsKCiAgR2x5cGgucHJvdG90eXBlLl9nZXRDQm94ID0gZnVuY3Rpb24gX2dldENCb3goKSB7CiAgICByZXR1cm4gdGhpcy5wYXRoLmNib3g7CiAgfTsKCiAgR2x5cGgucHJvdG90eXBlLl9nZXRCQm94ID0gZnVuY3Rpb24gX2dldEJCb3goKSB7CiAgICByZXR1cm4gdGhpcy5wYXRoLmJib3g7CiAgfTsKCiAgR2x5cGgucHJvdG90eXBlLl9nZXRUYWJsZU1ldHJpY3MgPSBmdW5jdGlvbiBfZ2V0VGFibGVNZXRyaWNzKHRhYmxlKSB7CiAgICBpZiAodGhpcy5pZCA8IHRhYmxlLm1ldHJpY3MubGVuZ3RoKSB7CiAgICAgIHJldHVybiB0YWJsZS5tZXRyaWNzLmdldCh0aGlzLmlkKTsKICAgIH0KCiAgICB2YXIgbWV0cmljID0gdGFibGUubWV0cmljcy5nZXQodGFibGUubWV0cmljcy5sZW5ndGggLSAxKTsKICAgIHZhciByZXMgPSB7CiAgICAgIGFkdmFuY2U6IG1ldHJpYyA/IG1ldHJpYy5hZHZhbmNlIDogMCwKICAgICAgYmVhcmluZzogdGFibGUuYmVhcmluZ3MuZ2V0KHRoaXMuaWQgLSB0YWJsZS5tZXRyaWNzLmxlbmd0aCkgfHwgMAogICAgfTsKCiAgICByZXR1cm4gcmVzOwogIH07CgogIEdseXBoLnByb3RvdHlwZS5fZ2V0TWV0cmljcyA9IGZ1bmN0aW9uIF9nZXRNZXRyaWNzKGNib3gpIHsKICAgIGlmICh0aGlzLl9tZXRyaWNzKSB7CiAgICAgIHJldHVybiB0aGlzLl9tZXRyaWNzOwogICAgfQoKICAgIHZhciBfZ2V0VGFibGVNZXRyaWNzMiA9IHRoaXMuX2dldFRhYmxlTWV0cmljcyh0aGlzLl9mb250LmhtdHgpLAogICAgICAgIGFkdmFuY2VXaWR0aCA9IF9nZXRUYWJsZU1ldHJpY3MyLmFkdmFuY2UsCiAgICAgICAgbGVmdEJlYXJpbmcgPSBfZ2V0VGFibGVNZXRyaWNzMi5iZWFyaW5nOwoKICAgIC8vIEZvciB2ZXJ0aWNhbCBtZXRyaWNzLCB1c2Ugdm10eCBpZiBhdmFpbGFibGUsIG9yIGZhbGwgYmFjayB0byBnbG9iYWwgZGF0YSBmcm9tIE9TLzIgb3IgaGhlYQoKCiAgICBpZiAodGhpcy5fZm9udC52bXR4KSB7CiAgICAgIHZhciBfZ2V0VGFibGVNZXRyaWNzMyA9IHRoaXMuX2dldFRhYmxlTWV0cmljcyh0aGlzLl9mb250LnZtdHgpLAogICAgICAgICAgYWR2YW5jZUhlaWdodCA9IF9nZXRUYWJsZU1ldHJpY3MzLmFkdmFuY2UsCiAgICAgICAgICB0b3BCZWFyaW5nID0gX2dldFRhYmxlTWV0cmljczMuYmVhcmluZzsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvczIgPSB2b2lkIDA7CiAgICAgIGlmICh0eXBlb2YgY2JveCA9PT0gJ3VuZGVmaW5lZCcgfHwgY2JveCA9PT0gbnVsbCkgewogICAgICAgIGNib3ggPSB0aGlzLmNib3g7CiAgICAgIH0KCiAgICAgIGlmICgob3MyID0gdGhpcy5fZm9udFsnT1MvMiddKSAmJiBvczIudmVyc2lvbiA+IDApIHsKICAgICAgICB2YXIgYWR2YW5jZUhlaWdodCA9IE1hdGguYWJzKG9zMi50eXBvQXNjZW5kZXIgLSBvczIudHlwb0Rlc2NlbmRlcik7CiAgICAgICAgdmFyIHRvcEJlYXJpbmcgPSBvczIudHlwb0FzY2VuZGVyIC0gY2JveC5tYXhZOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBoaGVhID0gdGhpcy5fZm9udC5oaGVhOwoKICAgICAgICB2YXIgYWR2YW5jZUhlaWdodCA9IE1hdGguYWJzKGhoZWEuYXNjZW50IC0gaGhlYS5kZXNjZW50KTsKICAgICAgICB2YXIgdG9wQmVhcmluZyA9IGhoZWEuYXNjZW50IC0gY2JveC5tYXhZOwogICAgICB9CiAgICB9CgogICAgaWYgKHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvciAmJiB0aGlzLl9mb250LkhWQVIpIHsKICAgICAgYWR2YW5jZVdpZHRoICs9IHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3Nvci5nZXRBZHZhbmNlQWRqdXN0bWVudCh0aGlzLmlkLCB0aGlzLl9mb250LkhWQVIpOwogICAgfQoKICAgIHJldHVybiB0aGlzLl9tZXRyaWNzID0geyBhZHZhbmNlV2lkdGg6IGFkdmFuY2VXaWR0aCwgYWR2YW5jZUhlaWdodDogYWR2YW5jZUhlaWdodCwgbGVmdEJlYXJpbmc6IGxlZnRCZWFyaW5nLCB0b3BCZWFyaW5nOiB0b3BCZWFyaW5nIH07CiAgfTsKCiAgLyoqCiAgICogVGhlIGdseXBo4oCZcyBjb250cm9sIGJveC4KICAgKiBUaGlzIGlzIG9mdGVuIHRoZSBzYW1lIGFzIHRoZSBib3VuZGluZyBib3gsIGJ1dCBpcyBmYXN0ZXIgdG8gY29tcHV0ZS4KICAgKiBCZWNhdXNlIG9mIHRoZSB3YXkgYmV6aWVyIGN1cnZlcyBhcmUgZGVmaW5lZCwgc29tZSBvZiB0aGUgY29udHJvbCBwb2ludHMKICAgKiBjYW4gYmUgb3V0c2lkZSBvZiB0aGUgYm91bmRpbmcgYm94LiBXaGVyZSBgYmJveGAgdGFrZXMgdGhpcyBpbnRvIGFjY291bnQsCiAgICogYGNib3hgIGRvZXMgbm90LiBUaHVzLCBjYm94IGlzIGxlc3MgYWNjdXJhdGUsIGJ1dCBmYXN0ZXIgdG8gY29tcHV0ZS4KICAgKiBTZWUgW2hlcmVdKGh0dHA6Ly93d3cuZnJlZXR5cGUub3JnL2ZyZWV0eXBlMi9kb2NzL2dseXBocy9nbHlwaHMtNi5odG1sI3NlY3Rpb24tMikKICAgKiBmb3IgYSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uLgogICAqCiAgICogQHR5cGUge0JCb3h9CiAgICovCgoKICAvKioKICAgKiBSZXR1cm5zIGEgcGF0aCBzY2FsZWQgdG8gdGhlIGdpdmVuIGZvbnQgc2l6ZS4KICAgKiBAcGFyYW0ge251bWJlcn0gc2l6ZQogICAqIEByZXR1cm4ge1BhdGh9CiAgICovCiAgR2x5cGgucHJvdG90eXBlLmdldFNjYWxlZFBhdGggPSBmdW5jdGlvbiBnZXRTY2FsZWRQYXRoKHNpemUpIHsKICAgIHZhciBzY2FsZSA9IDEgLyB0aGlzLl9mb250LnVuaXRzUGVyRW0gKiBzaXplOwogICAgcmV0dXJuIHRoaXMucGF0aC5zY2FsZShzY2FsZSk7CiAgfTsKCiAgLyoqCiAgICogVGhlIGdseXBoJ3MgYWR2YW5jZSB3aWR0aC4KICAgKiBAdHlwZSB7bnVtYmVyfQogICAqLwoKCiAgR2x5cGgucHJvdG90eXBlLl9nZXROYW1lID0gZnVuY3Rpb24gX2dldE5hbWUoKSB7CiAgICB2YXIgcG9zdCA9IHRoaXMuX2ZvbnQucG9zdDsKCiAgICBpZiAoIXBvc3QpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9CgogICAgc3dpdGNoIChwb3N0LnZlcnNpb24pIHsKICAgICAgY2FzZSAxOgogICAgICAgIHJldHVybiBTdGFuZGFyZE5hbWVzW3RoaXMuaWRdOwoKICAgICAgY2FzZSAyOgogICAgICAgIHZhciBpZCA9IHBvc3QuZ2x5cGhOYW1lSW5kZXhbdGhpcy5pZF07CiAgICAgICAgaWYgKGlkIDwgU3RhbmRhcmROYW1lcy5sZW5ndGgpIHsKICAgICAgICAgIHJldHVybiBTdGFuZGFyZE5hbWVzW2lkXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBwb3N0Lm5hbWVzW2lkIC0gU3RhbmRhcmROYW1lcy5sZW5ndGhdOwoKICAgICAgY2FzZSAyLjU6CiAgICAgICAgcmV0dXJuIFN0YW5kYXJkTmFtZXNbdGhpcy5pZCArIHBvc3Qub2Zmc2V0c1t0aGlzLmlkXV07CgogICAgICBjYXNlIDQ6CiAgICAgICAgcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUocG9zdC5tYXBbdGhpcy5pZF0pOwogICAgfQogIH07CgogIC8qKgogICAqIFRoZSBnbHlwaCdzIG5hbWUKICAgKiBAdHlwZSB7c3RyaW5nfQogICAqLwoKCiAgLyoqCiAgICogUmVuZGVycyB0aGUgZ2x5cGggdG8gdGhlIGdpdmVuIGdyYXBoaWNzIGNvbnRleHQsIGF0IHRoZSBzcGVjaWZpZWQgZm9udCBzaXplLgogICAqIEBwYXJhbSB7Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJkfSBjdHgKICAgKiBAcGFyYW0ge251bWJlcn0gc2l6ZQogICAqLwogIEdseXBoLnByb3RvdHlwZS5yZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoY3R4LCBzaXplKSB7CiAgICBjdHguc2F2ZSgpOwoKICAgIHZhciBzY2FsZSA9IDEgLyB0aGlzLl9mb250LmhlYWQudW5pdHNQZXJFbSAqIHNpemU7CiAgICBjdHguc2NhbGUoc2NhbGUsIHNjYWxlKTsKCiAgICB2YXIgZm4gPSB0aGlzLnBhdGgudG9GdW5jdGlvbigpOwogICAgZm4oY3R4KTsKICAgIGN0eC5maWxsKCk7CgogICAgY3R4LnJlc3RvcmUoKTsKICB9OwoKICBfY3JlYXRlQ2xhc3MoR2x5cGgsIFt7CiAgICBrZXk6ICdjYm94JywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5fZ2V0Q0JveCgpOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGdseXBo4oCZcyBib3VuZGluZyBib3gsIGkuZS4gdGhlIHJlY3RhbmdsZSB0aGF0IGVuY2xvc2VzIHRoZQogICAgICogZ2x5cGggb3V0bGluZSBhcyB0aWdodGx5IGFzIHBvc3NpYmxlLgogICAgICogQHR5cGUge0JCb3h9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnYmJveCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuX2dldEJCb3goKTsKICAgIH0KCiAgICAvKioKICAgICAqIEEgdmVjdG9yIFBhdGggb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgZ2x5cGggb3V0bGluZS4KICAgICAqIEB0eXBlIHtQYXRofQogICAgICovCgogIH0sIHsKICAgIGtleTogJ3BhdGgnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIC8vIENhY2hlIHRoZSBwYXRoIHNvIHdlIG9ubHkgZGVjb2RlIGl0IG9uY2UKICAgICAgLy8gRGVjb2RpbmcgaXMgYWN0dWFsbHkgcGVyZm9ybWVkIGJ5IHN1YmNsYXNzZXMKICAgICAgcmV0dXJuIHRoaXMuX2dldFBhdGgoKTsKICAgIH0KICB9LCB7CiAgICBrZXk6ICdhZHZhbmNlV2lkdGgnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLl9nZXRNZXRyaWNzKCkuYWR2YW5jZVdpZHRoOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGdseXBoJ3MgYWR2YW5jZSBoZWlnaHQuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCgogIH0sIHsKICAgIGtleTogJ2FkdmFuY2VIZWlnaHQnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLl9nZXRNZXRyaWNzKCkuYWR2YW5jZUhlaWdodDsKICAgIH0KICB9LCB7CiAgICBrZXk6ICdsaWdhdHVyZUNhcmV0UG9zaXRpb25zJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge30KICB9LCB7CiAgICBrZXk6ICduYW1lJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5fZ2V0TmFtZSgpOwogICAgfQogIH1dKTsKCiAgcmV0dXJuIEdseXBoOwp9KCksIChfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yJDQoX2NsYXNzJDgucHJvdG90eXBlLCAnY2JveCcsIFtjYWNoZV0sIF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF9jbGFzcyQ4LnByb3RvdHlwZSwgJ2Nib3gnKSwgX2NsYXNzJDgucHJvdG90eXBlKSwgX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciQ0KF9jbGFzcyQ4LnByb3RvdHlwZSwgJ2Jib3gnLCBbY2FjaGVdLCBfT2JqZWN0JGdldE93blByb3BlcnR5RGVzY3JpcHRvcihfY2xhc3MkOC5wcm90b3R5cGUsICdiYm94JyksIF9jbGFzcyQ4LnByb3RvdHlwZSksIF9hcHBseURlY29yYXRlZERlc2NyaXB0b3IkNChfY2xhc3MkOC5wcm90b3R5cGUsICdwYXRoJywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzJDgucHJvdG90eXBlLCAncGF0aCcpLCBfY2xhc3MkOC5wcm90b3R5cGUpLCBfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yJDQoX2NsYXNzJDgucHJvdG90eXBlLCAnYWR2YW5jZVdpZHRoJywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzJDgucHJvdG90eXBlLCAnYWR2YW5jZVdpZHRoJyksIF9jbGFzcyQ4LnByb3RvdHlwZSksIF9hcHBseURlY29yYXRlZERlc2NyaXB0b3IkNChfY2xhc3MkOC5wcm90b3R5cGUsICdhZHZhbmNlSGVpZ2h0JywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzJDgucHJvdG90eXBlLCAnYWR2YW5jZUhlaWdodCcpLCBfY2xhc3MkOC5wcm90b3R5cGUpLCBfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yJDQoX2NsYXNzJDgucHJvdG90eXBlLCAnbmFtZScsIFtjYWNoZV0sIF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF9jbGFzcyQ4LnByb3RvdHlwZSwgJ25hbWUnKSwgX2NsYXNzJDgucHJvdG90eXBlKSksIF9jbGFzcyQ4KTsKCi8vIFRoZSBoZWFkZXIgZm9yIGJvdGggc2ltcGxlIGFuZCBjb21wb3NpdGUgZ2x5cGhzCnZhciBHbHlmSGVhZGVyID0gbmV3IHIuU3RydWN0KHsKICBudW1iZXJPZkNvbnRvdXJzOiByLmludDE2LCAvLyBpZiBuZWdhdGl2ZSwgdGhpcyBpcyBhIGNvbXBvc2l0ZSBnbHlwaAogIHhNaW46IHIuaW50MTYsCiAgeU1pbjogci5pbnQxNiwKICB4TWF4OiByLmludDE2LAogIHlNYXg6IHIuaW50MTYKfSk7CgovLyBGbGFncyBmb3Igc2ltcGxlIGdseXBocwp2YXIgT05fQ1VSVkUgPSAxIDw8IDA7CnZhciBYX1NIT1JUX1ZFQ1RPUiA9IDEgPDwgMTsKdmFyIFlfU0hPUlRfVkVDVE9SID0gMSA8PCAyOwp2YXIgUkVQRUFUID0gMSA8PCAzOwp2YXIgU0FNRV9YID0gMSA8PCA0Owp2YXIgU0FNRV9ZID0gMSA8PCA1OwoKLy8gRmxhZ3MgZm9yIGNvbXBvc2l0ZSBnbHlwaHMKdmFyIEFSR18xX0FORF8yX0FSRV9XT1JEUyA9IDEgPDwgMDsKdmFyIFdFX0hBVkVfQV9TQ0FMRSA9IDEgPDwgMzsKdmFyIE1PUkVfQ09NUE9ORU5UUyA9IDEgPDwgNTsKdmFyIFdFX0hBVkVfQU5fWF9BTkRfWV9TQ0FMRSA9IDEgPDwgNjsKdmFyIFdFX0hBVkVfQV9UV09fQllfVFdPID0gMSA8PCA3Owp2YXIgV0VfSEFWRV9JTlNUUlVDVElPTlMgPSAxIDw8IDg7Ci8vIFJlcHJlc2VudHMgYSBwb2ludCBpbiBhIHNpbXBsZSBnbHlwaAp2YXIgUG9pbnQgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gUG9pbnQob25DdXJ2ZSwgZW5kQ29udG91cikgewogICAgdmFyIHggPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IDA7CiAgICB2YXIgeSA9IGFyZ3VtZW50cy5sZW5ndGggPiAzICYmIGFyZ3VtZW50c1szXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzNdIDogMDsKCiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUG9pbnQpOwoKICAgIHRoaXMub25DdXJ2ZSA9IG9uQ3VydmU7CiAgICB0aGlzLmVuZENvbnRvdXIgPSBlbmRDb250b3VyOwogICAgdGhpcy54ID0geDsKICAgIHRoaXMueSA9IHk7CiAgfQoKICBQb2ludC5wcm90b3R5cGUuY29weSA9IGZ1bmN0aW9uIGNvcHkoKSB7CiAgICByZXR1cm4gbmV3IFBvaW50KHRoaXMub25DdXJ2ZSwgdGhpcy5lbmRDb250b3VyLCB0aGlzLngsIHRoaXMueSk7CiAgfTsKCiAgcmV0dXJuIFBvaW50Owp9KCk7CgovLyBSZXByZXNlbnRzIGEgY29tcG9uZW50IGluIGEgY29tcG9zaXRlIGdseXBoCgp2YXIgQ29tcG9uZW50ID0gZnVuY3Rpb24gQ29tcG9uZW50KGdseXBoSUQsIGR4LCBkeSkgewogIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDb21wb25lbnQpOwoKICB0aGlzLmdseXBoSUQgPSBnbHlwaElEOwogIHRoaXMuZHggPSBkeDsKICB0aGlzLmR5ID0gZHk7CiAgdGhpcy5wb3MgPSAwOwogIHRoaXMuc2NhbGVYID0gdGhpcy5zY2FsZVkgPSAxOwogIHRoaXMuc2NhbGUwMSA9IHRoaXMuc2NhbGUxMCA9IDA7Cn07CgovKioKICogUmVwcmVzZW50cyBhIFRydWVUeXBlIGdseXBoLgogKi8KCgp2YXIgVFRGR2x5cGggPSBmdW5jdGlvbiAoX0dseXBoKSB7CiAgX2luaGVyaXRzKFRURkdseXBoLCBfR2x5cGgpOwoKICBmdW5jdGlvbiBUVEZHbHlwaCgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUVEZHbHlwaCk7CgogICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9HbHlwaC5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTsKICB9CgogIC8vIFBhcnNlcyBqdXN0IHRoZSBnbHlwaCBoZWFkZXIgYW5kIHJldHVybnMgdGhlIGJvdW5kaW5nIGJveAogIFRURkdseXBoLnByb3RvdHlwZS5fZ2V0Q0JveCA9IGZ1bmN0aW9uIF9nZXRDQm94KGludGVybmFsKSB7CiAgICAvLyBXZSBuZWVkIHRvIGRlY29kZSB0aGUgZ2x5cGggaWYgdmFyaWF0aW9uIHByb2Nlc3NpbmcgaXMgcmVxdWVzdGVkLAogICAgLy8gc28gaXQncyBlYXNpZXIganVzdCB0byByZWNvbXB1dGUgdGhlIHBhdGgncyBjYm94IGFmdGVyIGRlY29kaW5nLgogICAgaWYgKHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvciAmJiAhaW50ZXJuYWwpIHsKICAgICAgcmV0dXJuIHRoaXMucGF0aC5jYm94OwogICAgfQoKICAgIHZhciBzdHJlYW0gPSB0aGlzLl9mb250Ll9nZXRUYWJsZVN0cmVhbSgnZ2x5ZicpOwogICAgc3RyZWFtLnBvcyArPSB0aGlzLl9mb250LmxvY2Eub2Zmc2V0c1t0aGlzLmlkXTsKICAgIHZhciBnbHlwaCA9IEdseWZIZWFkZXIuZGVjb2RlKHN0cmVhbSk7CgogICAgdmFyIGNib3ggPSBuZXcgQkJveChnbHlwaC54TWluLCBnbHlwaC55TWluLCBnbHlwaC54TWF4LCBnbHlwaC55TWF4KTsKICAgIHJldHVybiBfT2JqZWN0JGZyZWV6ZShjYm94KTsKICB9OwoKICAvLyBQYXJzZXMgYSBzaW5nbGUgZ2x5cGggY29vcmRpbmF0ZQoKCiAgVFRGR2x5cGgucHJvdG90eXBlLl9wYXJzZUdseXBoQ29vcmQgPSBmdW5jdGlvbiBfcGFyc2VHbHlwaENvb3JkKHN0cmVhbSwgcHJldiwgc2hvcnQsIHNhbWUpIHsKICAgIGlmIChzaG9ydCkgewogICAgICB2YXIgdmFsID0gc3RyZWFtLnJlYWRVSW50OCgpOwogICAgICBpZiAoIXNhbWUpIHsKICAgICAgICB2YWwgPSAtdmFsOwogICAgICB9CgogICAgICB2YWwgKz0gcHJldjsKICAgIH0gZWxzZSB7CiAgICAgIGlmIChzYW1lKSB7CiAgICAgICAgdmFyIHZhbCA9IHByZXY7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIHZhbCA9IHByZXYgKyBzdHJlYW0ucmVhZEludDE2QkUoKTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiB2YWw7CiAgfTsKCiAgLy8gRGVjb2RlcyB0aGUgZ2x5cGggZGF0YSBpbnRvIHBvaW50cyBmb3Igc2ltcGxlIGdseXBocywKICAvLyBvciBjb21wb25lbnRzIGZvciBjb21wb3NpdGUgZ2x5cGhzCgoKICBUVEZHbHlwaC5wcm90b3R5cGUuX2RlY29kZSA9IGZ1bmN0aW9uIF9kZWNvZGUoKSB7CiAgICB2YXIgZ2x5ZlBvcyA9IHRoaXMuX2ZvbnQubG9jYS5vZmZzZXRzW3RoaXMuaWRdOwogICAgdmFyIG5leHRQb3MgPSB0aGlzLl9mb250LmxvY2Eub2Zmc2V0c1t0aGlzLmlkICsgMV07CgogICAgLy8gTm90aGluZyB0byBkbyBpZiB0aGVyZSBpcyBubyBkYXRhIGZvciB0aGlzIGdseXBoCiAgICBpZiAoZ2x5ZlBvcyA9PT0gbmV4dFBvcykgewogICAgICByZXR1cm4gbnVsbDsKICAgIH0KCiAgICB2YXIgc3RyZWFtID0gdGhpcy5fZm9udC5fZ2V0VGFibGVTdHJlYW0oJ2dseWYnKTsKICAgIHN0cmVhbS5wb3MgKz0gZ2x5ZlBvczsKICAgIHZhciBzdGFydFBvcyA9IHN0cmVhbS5wb3M7CgogICAgdmFyIGdseXBoID0gR2x5ZkhlYWRlci5kZWNvZGUoc3RyZWFtKTsKCiAgICBpZiAoZ2x5cGgubnVtYmVyT2ZDb250b3VycyA+IDApIHsKICAgICAgdGhpcy5fZGVjb2RlU2ltcGxlKGdseXBoLCBzdHJlYW0pOwogICAgfSBlbHNlIGlmIChnbHlwaC5udW1iZXJPZkNvbnRvdXJzIDwgMCkgewogICAgICB0aGlzLl9kZWNvZGVDb21wb3NpdGUoZ2x5cGgsIHN0cmVhbSwgc3RhcnRQb3MpOwogICAgfQoKICAgIHJldHVybiBnbHlwaDsKICB9OwoKICBUVEZHbHlwaC5wcm90b3R5cGUuX2RlY29kZVNpbXBsZSA9IGZ1bmN0aW9uIF9kZWNvZGVTaW1wbGUoZ2x5cGgsIHN0cmVhbSkgewogICAgLy8gdGhpcyBpcyBhIHNpbXBsZSBnbHlwaAogICAgZ2x5cGgucG9pbnRzID0gW107CgogICAgdmFyIGVuZFB0c09mQ29udG91cnMgPSBuZXcgci5BcnJheShyLnVpbnQxNiwgZ2x5cGgubnVtYmVyT2ZDb250b3VycykuZGVjb2RlKHN0cmVhbSk7CiAgICBnbHlwaC5pbnN0cnVjdGlvbnMgPSBuZXcgci5BcnJheShyLnVpbnQ4LCByLnVpbnQxNikuZGVjb2RlKHN0cmVhbSk7CgogICAgdmFyIGZsYWdzID0gW107CiAgICB2YXIgbnVtQ29vcmRzID0gZW5kUHRzT2ZDb250b3Vyc1tlbmRQdHNPZkNvbnRvdXJzLmxlbmd0aCAtIDFdICsgMTsKCiAgICB3aGlsZSAoZmxhZ3MubGVuZ3RoIDwgbnVtQ29vcmRzKSB7CiAgICAgIHZhciBmbGFnID0gc3RyZWFtLnJlYWRVSW50OCgpOwogICAgICBmbGFncy5wdXNoKGZsYWcpOwoKICAgICAgLy8gY2hlY2sgZm9yIHJlcGVhdCBmbGFnCiAgICAgIGlmIChmbGFnICYgUkVQRUFUKSB7CiAgICAgICAgdmFyIGNvdW50ID0gc3RyZWFtLnJlYWRVSW50OCgpOwogICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY291bnQ7IGorKykgewogICAgICAgICAgZmxhZ3MucHVzaChmbGFnKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZsYWdzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBmbGFnID0gZmxhZ3NbaV07CiAgICAgIHZhciBwb2ludCA9IG5ldyBQb2ludCghIShmbGFnICYgT05fQ1VSVkUpLCBlbmRQdHNPZkNvbnRvdXJzLmluZGV4T2YoaSkgPj0gMCwgMCwgMCk7CiAgICAgIGdseXBoLnBvaW50cy5wdXNoKHBvaW50KTsKICAgIH0KCiAgICB2YXIgcHggPSAwOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmbGFncy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgZmxhZyA9IGZsYWdzW2ldOwogICAgICBnbHlwaC5wb2ludHNbaV0ueCA9IHB4ID0gdGhpcy5fcGFyc2VHbHlwaENvb3JkKHN0cmVhbSwgcHgsIGZsYWcgJiBYX1NIT1JUX1ZFQ1RPUiwgZmxhZyAmIFNBTUVfWCk7CiAgICB9CgogICAgdmFyIHB5ID0gMDsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmxhZ3MubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGZsYWcgPSBmbGFnc1tpXTsKICAgICAgZ2x5cGgucG9pbnRzW2ldLnkgPSBweSA9IHRoaXMuX3BhcnNlR2x5cGhDb29yZChzdHJlYW0sIHB5LCBmbGFnICYgWV9TSE9SVF9WRUNUT1IsIGZsYWcgJiBTQU1FX1kpOwogICAgfQoKICAgIGlmICh0aGlzLl9mb250Ll92YXJpYXRpb25Qcm9jZXNzb3IpIHsKICAgICAgdmFyIHBvaW50cyA9IGdseXBoLnBvaW50cy5zbGljZSgpOwogICAgICBwb2ludHMucHVzaC5hcHBseShwb2ludHMsIHRoaXMuX2dldFBoYW50b21Qb2ludHMoZ2x5cGgpKTsKCiAgICAgIHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3Nvci50cmFuc2Zvcm1Qb2ludHModGhpcy5pZCwgcG9pbnRzKTsKICAgICAgZ2x5cGgucGhhbnRvbVBvaW50cyA9IHBvaW50cy5zbGljZSgtNCk7CiAgICB9CgogICAgcmV0dXJuOwogIH07CgogIFRURkdseXBoLnByb3RvdHlwZS5fZGVjb2RlQ29tcG9zaXRlID0gZnVuY3Rpb24gX2RlY29kZUNvbXBvc2l0ZShnbHlwaCwgc3RyZWFtKSB7CiAgICB2YXIgb2Zmc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiAwOwoKICAgIC8vIHRoaXMgaXMgYSBjb21wb3NpdGUgZ2x5cGgKICAgIGdseXBoLmNvbXBvbmVudHMgPSBbXTsKICAgIHZhciBoYXZlSW5zdHJ1Y3Rpb25zID0gZmFsc2U7CiAgICB2YXIgZmxhZ3MgPSBNT1JFX0NPTVBPTkVOVFM7CgogICAgd2hpbGUgKGZsYWdzICYgTU9SRV9DT01QT05FTlRTKSB7CiAgICAgIGZsYWdzID0gc3RyZWFtLnJlYWRVSW50MTZCRSgpOwogICAgICB2YXIgZ1BvcyA9IHN0cmVhbS5wb3MgLSBvZmZzZXQ7CiAgICAgIHZhciBnbHlwaElEID0gc3RyZWFtLnJlYWRVSW50MTZCRSgpOwogICAgICBpZiAoIWhhdmVJbnN0cnVjdGlvbnMpIHsKICAgICAgICBoYXZlSW5zdHJ1Y3Rpb25zID0gKGZsYWdzICYgV0VfSEFWRV9JTlNUUlVDVElPTlMpICE9PSAwOwogICAgICB9CgogICAgICBpZiAoZmxhZ3MgJiBBUkdfMV9BTkRfMl9BUkVfV09SRFMpIHsKICAgICAgICB2YXIgZHggPSBzdHJlYW0ucmVhZEludDE2QkUoKTsKICAgICAgICB2YXIgZHkgPSBzdHJlYW0ucmVhZEludDE2QkUoKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgZHggPSBzdHJlYW0ucmVhZEludDgoKTsKICAgICAgICB2YXIgZHkgPSBzdHJlYW0ucmVhZEludDgoKTsKICAgICAgfQoKICAgICAgdmFyIGNvbXBvbmVudCA9IG5ldyBDb21wb25lbnQoZ2x5cGhJRCwgZHgsIGR5KTsKICAgICAgY29tcG9uZW50LnBvcyA9IGdQb3M7CgogICAgICBpZiAoZmxhZ3MgJiBXRV9IQVZFX0FfU0NBTEUpIHsKICAgICAgICAvLyBmaXhlZCBudW1iZXIgd2l0aCAxNCBiaXRzIG9mIGZyYWN0aW9uCiAgICAgICAgY29tcG9uZW50LnNjYWxlWCA9IGNvbXBvbmVudC5zY2FsZVkgPSAoc3RyZWFtLnJlYWRVSW50OCgpIDw8IDI0IHwgc3RyZWFtLnJlYWRVSW50OCgpIDw8IDE2KSAvIDEwNzM3NDE4MjQ7CiAgICAgIH0gZWxzZSBpZiAoZmxhZ3MgJiBXRV9IQVZFX0FOX1hfQU5EX1lfU0NBTEUpIHsKICAgICAgICBjb21wb25lbnQuc2NhbGVYID0gKHN0cmVhbS5yZWFkVUludDgoKSA8PCAyNCB8IHN0cmVhbS5yZWFkVUludDgoKSA8PCAxNikgLyAxMDczNzQxODI0OwogICAgICAgIGNvbXBvbmVudC5zY2FsZVkgPSAoc3RyZWFtLnJlYWRVSW50OCgpIDw8IDI0IHwgc3RyZWFtLnJlYWRVSW50OCgpIDw8IDE2KSAvIDEwNzM3NDE4MjQ7CiAgICAgIH0gZWxzZSBpZiAoZmxhZ3MgJiBXRV9IQVZFX0FfVFdPX0JZX1RXTykgewogICAgICAgIGNvbXBvbmVudC5zY2FsZVggPSAoc3RyZWFtLnJlYWRVSW50OCgpIDw8IDI0IHwgc3RyZWFtLnJlYWRVSW50OCgpIDw8IDE2KSAvIDEwNzM3NDE4MjQ7CiAgICAgICAgY29tcG9uZW50LnNjYWxlMDEgPSAoc3RyZWFtLnJlYWRVSW50OCgpIDw8IDI0IHwgc3RyZWFtLnJlYWRVSW50OCgpIDw8IDE2KSAvIDEwNzM3NDE4MjQ7CiAgICAgICAgY29tcG9uZW50LnNjYWxlMTAgPSAoc3RyZWFtLnJlYWRVSW50OCgpIDw8IDI0IHwgc3RyZWFtLnJlYWRVSW50OCgpIDw8IDE2KSAvIDEwNzM3NDE4MjQ7CiAgICAgICAgY29tcG9uZW50LnNjYWxlWSA9IChzdHJlYW0ucmVhZFVJbnQ4KCkgPDwgMjQgfCBzdHJlYW0ucmVhZFVJbnQ4KCkgPDwgMTYpIC8gMTA3Mzc0MTgyNDsKICAgICAgfQoKICAgICAgZ2x5cGguY29tcG9uZW50cy5wdXNoKGNvbXBvbmVudCk7CiAgICB9CgogICAgaWYgKHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvcikgewogICAgICB2YXIgcG9pbnRzID0gW107CiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgZ2x5cGguY29tcG9uZW50cy5sZW5ndGg7IGorKykgewogICAgICAgIHZhciBjb21wb25lbnQgPSBnbHlwaC5jb21wb25lbnRzW2pdOwogICAgICAgIHBvaW50cy5wdXNoKG5ldyBQb2ludCh0cnVlLCB0cnVlLCBjb21wb25lbnQuZHgsIGNvbXBvbmVudC5keSkpOwogICAgICB9CgogICAgICBwb2ludHMucHVzaC5hcHBseShwb2ludHMsIHRoaXMuX2dldFBoYW50b21Qb2ludHMoZ2x5cGgpKTsKCiAgICAgIHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3Nvci50cmFuc2Zvcm1Qb2ludHModGhpcy5pZCwgcG9pbnRzKTsKICAgICAgZ2x5cGgucGhhbnRvbVBvaW50cyA9IHBvaW50cy5zcGxpY2UoLTQsIDQpOwoKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHsKICAgICAgICB2YXIgcG9pbnQgPSBwb2ludHNbaV07CiAgICAgICAgZ2x5cGguY29tcG9uZW50c1tpXS5keCA9IHBvaW50Lng7CiAgICAgICAgZ2x5cGguY29tcG9uZW50c1tpXS5keSA9IHBvaW50Lnk7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gaGF2ZUluc3RydWN0aW9uczsKICB9OwoKICBUVEZHbHlwaC5wcm90b3R5cGUuX2dldFBoYW50b21Qb2ludHMgPSBmdW5jdGlvbiBfZ2V0UGhhbnRvbVBvaW50cyhnbHlwaCkgewogICAgdmFyIGNib3ggPSB0aGlzLl9nZXRDQm94KHRydWUpOwogICAgaWYgKHRoaXMuX21ldHJpY3MgPT0gbnVsbCkgewogICAgICB0aGlzLl9tZXRyaWNzID0gR2x5cGgucHJvdG90eXBlLl9nZXRNZXRyaWNzLmNhbGwodGhpcywgY2JveCk7CiAgICB9CgogICAgdmFyIF9tZXRyaWNzID0gdGhpcy5fbWV0cmljcywKICAgICAgICBhZHZhbmNlV2lkdGggPSBfbWV0cmljcy5hZHZhbmNlV2lkdGgsCiAgICAgICAgYWR2YW5jZUhlaWdodCA9IF9tZXRyaWNzLmFkdmFuY2VIZWlnaHQsCiAgICAgICAgbGVmdEJlYXJpbmcgPSBfbWV0cmljcy5sZWZ0QmVhcmluZywKICAgICAgICB0b3BCZWFyaW5nID0gX21ldHJpY3MudG9wQmVhcmluZzsKCgogICAgcmV0dXJuIFtuZXcgUG9pbnQoZmFsc2UsIHRydWUsIGdseXBoLnhNaW4gLSBsZWZ0QmVhcmluZywgMCksIG5ldyBQb2ludChmYWxzZSwgdHJ1ZSwgZ2x5cGgueE1pbiAtIGxlZnRCZWFyaW5nICsgYWR2YW5jZVdpZHRoLCAwKSwgbmV3IFBvaW50KGZhbHNlLCB0cnVlLCAwLCBnbHlwaC55TWF4ICsgdG9wQmVhcmluZyksIG5ldyBQb2ludChmYWxzZSwgdHJ1ZSwgMCwgZ2x5cGgueU1heCArIHRvcEJlYXJpbmcgKyBhZHZhbmNlSGVpZ2h0KV07CiAgfTsKCiAgLy8gRGVjb2RlcyBmb250IGRhdGEsIHJlc29sdmVzIGNvbXBvc2l0ZSBnbHlwaHMsIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIGNvbnRvdXJzCgoKICBUVEZHbHlwaC5wcm90b3R5cGUuX2dldENvbnRvdXJzID0gZnVuY3Rpb24gX2dldENvbnRvdXJzKCkgewogICAgdmFyIGdseXBoID0gdGhpcy5fZGVjb2RlKCk7CiAgICBpZiAoIWdseXBoKSB7CiAgICAgIHJldHVybiBbXTsKICAgIH0KCiAgICB2YXIgcG9pbnRzID0gW107CgogICAgaWYgKGdseXBoLm51bWJlck9mQ29udG91cnMgPCAwKSB7CiAgICAgIC8vIHJlc29sdmUgY29tcG9zaXRlIGdseXBocwogICAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBnbHlwaC5jb21wb25lbnRzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgICB2YXIgX3JlZjsKCiAgICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgY29tcG9uZW50ID0gX3JlZjsKCiAgICAgICAgdmFyIF9jb250b3VycyA9IHRoaXMuX2ZvbnQuZ2V0R2x5cGgoY29tcG9uZW50LmdseXBoSUQpLl9nZXRDb250b3VycygpOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2NvbnRvdXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgY29udG91ciA9IF9jb250b3Vyc1tpXTsKICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgY29udG91ci5sZW5ndGg7IGorKykgewogICAgICAgICAgICB2YXIgX3BvaW50ID0gY29udG91cltqXTsKICAgICAgICAgICAgdmFyIHggPSBfcG9pbnQueCAqIGNvbXBvbmVudC5zY2FsZVggKyBfcG9pbnQueSAqIGNvbXBvbmVudC5zY2FsZTAxICsgY29tcG9uZW50LmR4OwogICAgICAgICAgICB2YXIgeSA9IF9wb2ludC55ICogY29tcG9uZW50LnNjYWxlWSArIF9wb2ludC54ICogY29tcG9uZW50LnNjYWxlMTAgKyBjb21wb25lbnQuZHk7CiAgICAgICAgICAgIHBvaW50cy5wdXNoKG5ldyBQb2ludChfcG9pbnQub25DdXJ2ZSwgX3BvaW50LmVuZENvbnRvdXIsIHgsIHkpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIHBvaW50cyA9IGdseXBoLnBvaW50cyB8fCBbXTsKICAgIH0KCiAgICAvLyBSZWNvbXB1dGUgYW5kIGNhY2hlIG1ldHJpY3MgaWYgd2UgcGVyZm9ybWVkIHZhcmlhdGlvbiBwcm9jZXNzaW5nLCBhbmQgZG9uJ3QgaGF2ZSBhbiBIVkFSIHRhYmxlCiAgICBpZiAoZ2x5cGgucGhhbnRvbVBvaW50cyAmJiAhdGhpcy5fZm9udC5kaXJlY3RvcnkudGFibGVzLkhWQVIpIHsKICAgICAgdGhpcy5fbWV0cmljcy5hZHZhbmNlV2lkdGggPSBnbHlwaC5waGFudG9tUG9pbnRzWzFdLnggLSBnbHlwaC5waGFudG9tUG9pbnRzWzBdLng7CiAgICAgIHRoaXMuX21ldHJpY3MuYWR2YW5jZUhlaWdodCA9IGdseXBoLnBoYW50b21Qb2ludHNbM10ueSAtIGdseXBoLnBoYW50b21Qb2ludHNbMl0ueTsKICAgICAgdGhpcy5fbWV0cmljcy5sZWZ0QmVhcmluZyA9IGdseXBoLnhNaW4gLSBnbHlwaC5waGFudG9tUG9pbnRzWzBdLng7CiAgICAgIHRoaXMuX21ldHJpY3MudG9wQmVhcmluZyA9IGdseXBoLnBoYW50b21Qb2ludHNbMl0ueSAtIGdseXBoLnlNYXg7CiAgICB9CgogICAgdmFyIGNvbnRvdXJzID0gW107CiAgICB2YXIgY3VyID0gW107CiAgICBmb3IgKHZhciBrID0gMDsgayA8IHBvaW50cy5sZW5ndGg7IGsrKykgewogICAgICB2YXIgcG9pbnQgPSBwb2ludHNba107CiAgICAgIGN1ci5wdXNoKHBvaW50KTsKICAgICAgaWYgKHBvaW50LmVuZENvbnRvdXIpIHsKICAgICAgICBjb250b3Vycy5wdXNoKGN1cik7CiAgICAgICAgY3VyID0gW107CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gY29udG91cnM7CiAgfTsKCiAgVFRGR2x5cGgucHJvdG90eXBlLl9nZXRNZXRyaWNzID0gZnVuY3Rpb24gX2dldE1ldHJpY3MoKSB7CiAgICBpZiAodGhpcy5fbWV0cmljcykgewogICAgICByZXR1cm4gdGhpcy5fbWV0cmljczsKICAgIH0KCiAgICB2YXIgY2JveCA9IHRoaXMuX2dldENCb3godHJ1ZSk7CiAgICBfR2x5cGgucHJvdG90eXBlLl9nZXRNZXRyaWNzLmNhbGwodGhpcywgY2JveCk7CgogICAgaWYgKHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvciAmJiAhdGhpcy5fZm9udC5IVkFSKSB7CiAgICAgIC8vIE5vIEhWQVIgdGFibGUsIGRlY29kZSB0aGUgZ2x5cGguIFRoaXMgdHJpZ2dlcnMgcmVjb21wdXRhdGlvbiBvZiBtZXRyaWNzLgogICAgICB0aGlzLnBhdGg7CiAgICB9CgogICAgcmV0dXJuIHRoaXMuX21ldHJpY3M7CiAgfTsKCiAgLy8gQ29udmVydHMgY29udG91cnMgdG8gYSBQYXRoIG9iamVjdCB0aGF0IGNhbiBiZSByZW5kZXJlZAoKCiAgVFRGR2x5cGgucHJvdG90eXBlLl9nZXRQYXRoID0gZnVuY3Rpb24gX2dldFBhdGgoKSB7CiAgICB2YXIgY29udG91cnMgPSB0aGlzLl9nZXRDb250b3VycygpOwogICAgdmFyIHBhdGggPSBuZXcgUGF0aCgpOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29udG91cnMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGNvbnRvdXIgPSBjb250b3Vyc1tpXTsKICAgICAgdmFyIGZpcnN0UHQgPSBjb250b3VyWzBdOwogICAgICB2YXIgbGFzdFB0ID0gY29udG91cltjb250b3VyLmxlbmd0aCAtIDFdOwogICAgICB2YXIgc3RhcnQgPSAwOwoKICAgICAgaWYgKGZpcnN0UHQub25DdXJ2ZSkgewogICAgICAgIC8vIFRoZSBmaXJzdCBwb2ludCB3aWxsIGJlIGNvbnN1bWVkIGJ5IHRoZSBtb3ZlVG8gY29tbWFuZCwgc28gc2tpcCBpbiB0aGUgbG9vcAogICAgICAgIHZhciBjdXJ2ZVB0ID0gbnVsbDsKICAgICAgICBzdGFydCA9IDE7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKGxhc3RQdC5vbkN1cnZlKSB7CiAgICAgICAgICAvLyBTdGFydCBhdCB0aGUgbGFzdCBwb2ludCBpZiB0aGUgZmlyc3QgcG9pbnQgaXMgb2ZmIGN1cnZlIGFuZCB0aGUgbGFzdCBwb2ludCBpcyBvbiBjdXJ2ZQogICAgICAgICAgZmlyc3RQdCA9IGxhc3RQdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgLy8gU3RhcnQgYXQgdGhlIG1pZGRsZSBpZiBib3RoIHRoZSBmaXJzdCBhbmQgbGFzdCBwb2ludHMgYXJlIG9mZiBjdXJ2ZQogICAgICAgICAgZmlyc3RQdCA9IG5ldyBQb2ludChmYWxzZSwgZmFsc2UsIChmaXJzdFB0LnggKyBsYXN0UHQueCkgLyAyLCAoZmlyc3RQdC55ICsgbGFzdFB0LnkpIC8gMik7CiAgICAgICAgfQoKICAgICAgICB2YXIgY3VydmVQdCA9IGZpcnN0UHQ7CiAgICAgIH0KCiAgICAgIHBhdGgubW92ZVRvKGZpcnN0UHQueCwgZmlyc3RQdC55KTsKCiAgICAgIGZvciAodmFyIGogPSBzdGFydDsgaiA8IGNvbnRvdXIubGVuZ3RoOyBqKyspIHsKICAgICAgICB2YXIgcHQgPSBjb250b3VyW2pdOwogICAgICAgIHZhciBwcmV2UHQgPSBqID09PSAwID8gZmlyc3RQdCA6IGNvbnRvdXJbaiAtIDFdOwoKICAgICAgICBpZiAocHJldlB0Lm9uQ3VydmUgJiYgcHQub25DdXJ2ZSkgewogICAgICAgICAgcGF0aC5saW5lVG8ocHQueCwgcHQueSk7CiAgICAgICAgfSBlbHNlIGlmIChwcmV2UHQub25DdXJ2ZSAmJiAhcHQub25DdXJ2ZSkgewogICAgICAgICAgdmFyIGN1cnZlUHQgPSBwdDsKICAgICAgICB9IGVsc2UgaWYgKCFwcmV2UHQub25DdXJ2ZSAmJiAhcHQub25DdXJ2ZSkgewogICAgICAgICAgdmFyIG1pZFggPSAocHJldlB0LnggKyBwdC54KSAvIDI7CiAgICAgICAgICB2YXIgbWlkWSA9IChwcmV2UHQueSArIHB0LnkpIC8gMjsKICAgICAgICAgIHBhdGgucXVhZHJhdGljQ3VydmVUbyhwcmV2UHQueCwgcHJldlB0LnksIG1pZFgsIG1pZFkpOwogICAgICAgICAgdmFyIGN1cnZlUHQgPSBwdDsKICAgICAgICB9IGVsc2UgaWYgKCFwcmV2UHQub25DdXJ2ZSAmJiBwdC5vbkN1cnZlKSB7CiAgICAgICAgICBwYXRoLnF1YWRyYXRpY0N1cnZlVG8oY3VydmVQdC54LCBjdXJ2ZVB0LnksIHB0LngsIHB0LnkpOwogICAgICAgICAgdmFyIGN1cnZlUHQgPSBudWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gVFRGIHBhdGggc3RhdGUiKTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIENvbm5lY3QgdGhlIGZpcnN0IGFuZCBsYXN0IHBvaW50cwogICAgICBpZiAoY3VydmVQdCkgewogICAgICAgIHBhdGgucXVhZHJhdGljQ3VydmVUbyhjdXJ2ZVB0LngsIGN1cnZlUHQueSwgZmlyc3RQdC54LCBmaXJzdFB0LnkpOwogICAgICB9CgogICAgICBwYXRoLmNsb3NlUGF0aCgpOwogICAgfQoKICAgIHJldHVybiBwYXRoOwogIH07CgogIHJldHVybiBUVEZHbHlwaDsKfShHbHlwaCk7CgovKioKICogUmVwcmVzZW50cyBhbiBPcGVuVHlwZSBQb3N0U2NyaXB0IGdseXBoLCBpbiB0aGUgQ29tcGFjdCBGb250IEZvcm1hdC4KICovCgp2YXIgQ0ZGR2x5cGggPSBmdW5jdGlvbiAoX0dseXBoKSB7CiAgX2luaGVyaXRzKENGRkdseXBoLCBfR2x5cGgpOwoKICBmdW5jdGlvbiBDRkZHbHlwaCgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDRkZHbHlwaCk7CgogICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9HbHlwaC5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTsKICB9CgogIENGRkdseXBoLnByb3RvdHlwZS5fZ2V0TmFtZSA9IGZ1bmN0aW9uIF9nZXROYW1lKCkgewogICAgaWYgKHRoaXMuX2ZvbnQuQ0ZGMikgewogICAgICByZXR1cm4gX0dseXBoLnByb3RvdHlwZS5fZ2V0TmFtZS5jYWxsKHRoaXMpOwogICAgfQoKICAgIHJldHVybiB0aGlzLl9mb250WydDRkYgJ10uZ2V0R2x5cGhOYW1lKHRoaXMuaWQpOwogIH07CgogIENGRkdseXBoLnByb3RvdHlwZS5iaWFzID0gZnVuY3Rpb24gYmlhcyhzKSB7CiAgICBpZiAocy5sZW5ndGggPCAxMjQwKSB7CiAgICAgIHJldHVybiAxMDc7CiAgICB9IGVsc2UgaWYgKHMubGVuZ3RoIDwgMzM5MDApIHsKICAgICAgcmV0dXJuIDExMzE7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gMzI3Njg7CiAgICB9CiAgfTsKCiAgQ0ZGR2x5cGgucHJvdG90eXBlLl9nZXRQYXRoID0gZnVuY3Rpb24gX2dldFBhdGgoKSB7CiAgICB2YXIgc3RyZWFtID0gdGhpcy5fZm9udC5zdHJlYW07CiAgICB2YXIgcG9zID0gc3RyZWFtLnBvczsKCgogICAgdmFyIGNmZiA9IHRoaXMuX2ZvbnQuQ0ZGMiB8fCB0aGlzLl9mb250WydDRkYgJ107CiAgICB2YXIgc3RyID0gY2ZmLnRvcERpY3QuQ2hhclN0cmluZ3NbdGhpcy5pZF07CiAgICB2YXIgZW5kID0gc3RyLm9mZnNldCArIHN0ci5sZW5ndGg7CiAgICBzdHJlYW0ucG9zID0gc3RyLm9mZnNldDsKCiAgICB2YXIgcGF0aCA9IG5ldyBQYXRoKCk7CiAgICB2YXIgc3RhY2sgPSBbXTsKICAgIHZhciB0cmFucyA9IFtdOwoKICAgIHZhciB3aWR0aCA9IG51bGw7CiAgICB2YXIgblN0ZW1zID0gMDsKICAgIHZhciB4ID0gMCwKICAgICAgICB5ID0gMDsKICAgIHZhciB1c2VkR3N1YnJzID0gdm9pZCAwOwogICAgdmFyIHVzZWRTdWJycyA9IHZvaWQgMDsKICAgIHZhciBvcGVuID0gZmFsc2U7CgogICAgdGhpcy5fdXNlZEdzdWJycyA9IHVzZWRHc3VicnMgPSB7fTsKICAgIHRoaXMuX3VzZWRTdWJycyA9IHVzZWRTdWJycyA9IHt9OwoKICAgIHZhciBnc3VicnMgPSBjZmYuZ2xvYmFsU3VickluZGV4IHx8IFtdOwogICAgdmFyIGdzdWJyc0JpYXMgPSB0aGlzLmJpYXMoZ3N1YnJzKTsKCiAgICB2YXIgcHJpdmF0ZURpY3QgPSBjZmYucHJpdmF0ZURpY3RGb3JHbHlwaCh0aGlzLmlkKTsKICAgIHZhciBzdWJycyA9IHByaXZhdGVEaWN0LlN1YnJzIHx8IFtdOwogICAgdmFyIHN1YnJzQmlhcyA9IHRoaXMuYmlhcyhzdWJycyk7CgogICAgdmFyIHZzdG9yZSA9IGNmZi50b3BEaWN0LnZzdG9yZSAmJiBjZmYudG9wRGljdC52c3RvcmUuaXRlbVZhcmlhdGlvblN0b3JlOwogICAgdmFyIHZzaW5kZXggPSBwcml2YXRlRGljdC52c2luZGV4OwogICAgdmFyIHZhcmlhdGlvblByb2Nlc3NvciA9IHRoaXMuX2ZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvcjsKCiAgICBmdW5jdGlvbiBjaGVja1dpZHRoKCkgewogICAgICBpZiAod2lkdGggPT0gbnVsbCkgewogICAgICAgIHdpZHRoID0gc3RhY2suc2hpZnQoKSArIHByaXZhdGVEaWN0Lm5vbWluYWxXaWR0aFg7CiAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBwYXJzZVN0ZW1zKCkgewogICAgICBpZiAoc3RhY2subGVuZ3RoICUgMiAhPT0gMCkgewogICAgICAgIGNoZWNrV2lkdGgoKTsKICAgICAgfQoKICAgICAgblN0ZW1zICs9IHN0YWNrLmxlbmd0aCA+PiAxOwogICAgICByZXR1cm4gc3RhY2subGVuZ3RoID0gMDsKICAgIH0KCiAgICBmdW5jdGlvbiBtb3ZlVG8oeCwgeSkgewogICAgICBpZiAob3BlbikgewogICAgICAgIHBhdGguY2xvc2VQYXRoKCk7CiAgICAgIH0KCiAgICAgIHBhdGgubW92ZVRvKHgsIHkpOwogICAgICBvcGVuID0gdHJ1ZTsKICAgIH0KCiAgICB2YXIgcGFyc2UgPSBmdW5jdGlvbiBwYXJzZSgpIHsKICAgICAgd2hpbGUgKHN0cmVhbS5wb3MgPCBlbmQpIHsKICAgICAgICB2YXIgb3AgPSBzdHJlYW0ucmVhZFVJbnQ4KCk7CiAgICAgICAgaWYgKG9wIDwgMzIpIHsKICAgICAgICAgIHN3aXRjaCAob3ApIHsKICAgICAgICAgICAgY2FzZSAxOiAvLyBoc3RlbQogICAgICAgICAgICBjYXNlIDM6IC8vIHZzdGVtCiAgICAgICAgICAgIGNhc2UgMTg6IC8vIGhzdGVtaG0KICAgICAgICAgICAgY2FzZSAyMzoKICAgICAgICAgICAgICAvLyB2c3RlbWhtCiAgICAgICAgICAgICAgcGFyc2VTdGVtcygpOwogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIC8vIHZtb3ZldG8KICAgICAgICAgICAgICBpZiAoc3RhY2subGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgY2hlY2tXaWR0aCgpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgeSArPSBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgIG1vdmVUbyh4LCB5KTsKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAvLyBybGluZXRvCiAgICAgICAgICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCA+PSAyKSB7CiAgICAgICAgICAgICAgICB4ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB5ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBwYXRoLmxpbmVUbyh4LCB5KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDY6IC8vIGhsaW5ldG8KICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIC8vIHZsaW5ldG8KICAgICAgICAgICAgICB2YXIgcGhhc2UgPSBvcCA9PT0gNjsKICAgICAgICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID49IDEpIHsKICAgICAgICAgICAgICAgIGlmIChwaGFzZSkgewogICAgICAgICAgICAgICAgICB4ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICB5ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgcGF0aC5saW5lVG8oeCwgeSk7CiAgICAgICAgICAgICAgICBwaGFzZSA9ICFwaGFzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgLy8gcnJjdXJ2ZXRvCiAgICAgICAgICAgICAgd2hpbGUgKHN0YWNrLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAgIHZhciBjMXggPSB4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgIHZhciBjMXkgPSB5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgIHZhciBjMnggPSBjMXggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgdmFyIGMyeSA9IGMxeSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB4ID0gYzJ4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgIHkgPSBjMnkgKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgcGF0aC5iZXppZXJDdXJ2ZVRvKGMxeCwgYzF5LCBjMngsIGMyeSwgeCwgeSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAvLyBjYWxsc3VicgogICAgICAgICAgICAgIHZhciBpbmRleCA9IHN0YWNrLnBvcCgpICsgc3VicnNCaWFzOwogICAgICAgICAgICAgIHZhciBzdWJyID0gc3VicnNbaW5kZXhdOwogICAgICAgICAgICAgIGlmIChzdWJyKSB7CiAgICAgICAgICAgICAgICB1c2VkU3VicnNbaW5kZXhdID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHZhciBwID0gc3RyZWFtLnBvczsKICAgICAgICAgICAgICAgIHZhciBlID0gZW5kOwogICAgICAgICAgICAgICAgc3RyZWFtLnBvcyA9IHN1YnIub2Zmc2V0OwogICAgICAgICAgICAgICAgZW5kID0gc3Vici5vZmZzZXQgKyBzdWJyLmxlbmd0aDsKICAgICAgICAgICAgICAgIHBhcnNlKCk7CiAgICAgICAgICAgICAgICBzdHJlYW0ucG9zID0gcDsKICAgICAgICAgICAgICAgIGVuZCA9IGU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICAvLyByZXR1cm4KICAgICAgICAgICAgICBpZiAoY2ZmLnZlcnNpb24gPj0gMikgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybjsKCiAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgLy8gZW5kY2hhcgogICAgICAgICAgICAgIGlmIChjZmYudmVyc2lvbiA+PSAyKSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIGlmIChzdGFjay5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgICBjaGVja1dpZHRoKCk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICBpZiAob3BlbikgewogICAgICAgICAgICAgICAgcGF0aC5jbG9zZVBhdGgoKTsKICAgICAgICAgICAgICAgIG9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIHZzaW5kZXgKICAgICAgICAgICAgICAgIGlmIChjZmYudmVyc2lvbiA8IDIpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2c2luZGV4IG9wZXJhdG9yIG5vdCBzdXBwb3J0ZWQgaW4gQ0ZGIHYxJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdnNpbmRleCA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvLyBibGVuZAogICAgICAgICAgICAgICAgaWYgKGNmZi52ZXJzaW9uIDwgMikgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JsZW5kIG9wZXJhdG9yIG5vdCBzdXBwb3J0ZWQgaW4gQ0ZGIHYxJyk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCF2YXJpYXRpb25Qcm9jZXNzb3IpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdibGVuZCBvcGVyYXRvciBpbiBub24tdmFyaWF0aW9uIGZvbnQnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB2YXIgYmxlbmRWZWN0b3IgPSB2YXJpYXRpb25Qcm9jZXNzb3IuZ2V0QmxlbmRWZWN0b3IodnN0b3JlLCB2c2luZGV4KTsKICAgICAgICAgICAgICAgIHZhciBudW1CbGVuZHMgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgIHZhciBudW1PcGVyYW5kcyA9IG51bUJsZW5kcyAqIGJsZW5kVmVjdG9yLmxlbmd0aDsKICAgICAgICAgICAgICAgIHZhciBkZWx0YSA9IHN0YWNrLmxlbmd0aCAtIG51bU9wZXJhbmRzOwogICAgICAgICAgICAgICAgdmFyIGJhc2UgPSBkZWx0YSAtIG51bUJsZW5kczsKCiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bUJsZW5kczsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIHZhciBzdW0gPSBzdGFja1tiYXNlICsgaV07CiAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYmxlbmRWZWN0b3IubGVuZ3RoOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICBzdW0gKz0gYmxlbmRWZWN0b3Jbal0gKiBzdGFja1tkZWx0YSsrXTsKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgc3RhY2tbYmFzZSArIGldID0gc3VtOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHdoaWxlIChudW1PcGVyYW5kcy0tKSB7CiAgICAgICAgICAgICAgICAgIHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNhc2UgMTk6IC8vIGhpbnRtYXNrCiAgICAgICAgICAgIGNhc2UgMjA6CiAgICAgICAgICAgICAgLy8gY250cm1hc2sKICAgICAgICAgICAgICBwYXJzZVN0ZW1zKCk7CiAgICAgICAgICAgICAgc3RyZWFtLnBvcyArPSBuU3RlbXMgKyA3ID4+IDM7CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDIxOgogICAgICAgICAgICAgIC8vIHJtb3ZldG8KICAgICAgICAgICAgICBpZiAoc3RhY2subGVuZ3RoID4gMikgewogICAgICAgICAgICAgICAgY2hlY2tXaWR0aCgpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgeCArPSBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgIHkgKz0gc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICBtb3ZlVG8oeCwgeSk7CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDIyOgogICAgICAgICAgICAgIC8vIGhtb3ZldG8KICAgICAgICAgICAgICBpZiAoc3RhY2subGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgY2hlY2tXaWR0aCgpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgeCArPSBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgIG1vdmVUbyh4LCB5KTsKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMjQ6CiAgICAgICAgICAgICAgLy8gcmN1cnZlbGluZQogICAgICAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGggPj0gOCkgewogICAgICAgICAgICAgICAgdmFyIGMxeCA9IHggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgdmFyIGMxeSA9IHkgKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgdmFyIGMyeCA9IGMxeCArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB2YXIgYzJ5ID0gYzF5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgIHggPSBjMnggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgeSA9IGMyeSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBwYXRoLmJlemllckN1cnZlVG8oYzF4LCBjMXksIGMyeCwgYzJ5LCB4LCB5KTsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIHggKz0gc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICB5ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgcGF0aC5saW5lVG8oeCwgeSk7CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDI1OgogICAgICAgICAgICAgIC8vIHJsaW5lY3VydmUKICAgICAgICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID49IDgpIHsKICAgICAgICAgICAgICAgIHggKz0gc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgIHkgKz0gc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgIHBhdGgubGluZVRvKHgsIHkpOwogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgdmFyIGMxeCA9IHggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgIHZhciBjMXkgPSB5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICB2YXIgYzJ4ID0gYzF4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICB2YXIgYzJ5ID0gYzF5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICB4ID0gYzJ4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICB5ID0gYzJ5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICBwYXRoLmJlemllckN1cnZlVG8oYzF4LCBjMXksIGMyeCwgYzJ5LCB4LCB5KTsKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMjY6CiAgICAgICAgICAgICAgLy8gdnZjdXJ2ZXRvCiAgICAgICAgICAgICAgaWYgKHN0YWNrLmxlbmd0aCAlIDIpIHsKICAgICAgICAgICAgICAgIHggKz0gc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIHdoaWxlIChzdGFjay5sZW5ndGggPj0gNCkgewogICAgICAgICAgICAgICAgYzF4ID0geDsKICAgICAgICAgICAgICAgIGMxeSA9IHkgKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgYzJ4ID0gYzF4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgIGMyeSA9IGMxeSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB4ID0gYzJ4OwogICAgICAgICAgICAgICAgeSA9IGMyeSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBwYXRoLmJlemllckN1cnZlVG8oYzF4LCBjMXksIGMyeCwgYzJ5LCB4LCB5KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDI3OgogICAgICAgICAgICAgIC8vIGhoY3VydmV0bwogICAgICAgICAgICAgIGlmIChzdGFjay5sZW5ndGggJSAyKSB7CiAgICAgICAgICAgICAgICB5ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID49IDQpIHsKICAgICAgICAgICAgICAgIGMxeCA9IHggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgYzF5ID0geTsKICAgICAgICAgICAgICAgIGMyeCA9IGMxeCArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICBjMnkgPSBjMXkgKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgeCA9IGMyeCArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICB5ID0gYzJ5OwogICAgICAgICAgICAgICAgcGF0aC5iZXppZXJDdXJ2ZVRvKGMxeCwgYzF5LCBjMngsIGMyeSwgeCwgeSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAyODoKICAgICAgICAgICAgICAvLyBzaG9ydGludAogICAgICAgICAgICAgIHN0YWNrLnB1c2goc3RyZWFtLnJlYWRJbnQxNkJFKCkpOwogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSAyOToKICAgICAgICAgICAgICAvLyBjYWxsZ3N1YnIKICAgICAgICAgICAgICBpbmRleCA9IHN0YWNrLnBvcCgpICsgZ3N1YnJzQmlhczsKICAgICAgICAgICAgICBzdWJyID0gZ3N1YnJzW2luZGV4XTsKICAgICAgICAgICAgICBpZiAoc3VicikgewogICAgICAgICAgICAgICAgdXNlZEdzdWJyc1tpbmRleF0gPSB0cnVlOwogICAgICAgICAgICAgICAgdmFyIHAgPSBzdHJlYW0ucG9zOwogICAgICAgICAgICAgICAgdmFyIGUgPSBlbmQ7CiAgICAgICAgICAgICAgICBzdHJlYW0ucG9zID0gc3Vici5vZmZzZXQ7CiAgICAgICAgICAgICAgICBlbmQgPSBzdWJyLm9mZnNldCArIHN1YnIubGVuZ3RoOwogICAgICAgICAgICAgICAgcGFyc2UoKTsKICAgICAgICAgICAgICAgIHN0cmVhbS5wb3MgPSBwOwogICAgICAgICAgICAgICAgZW5kID0gZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIDMwOiAvLyB2aGN1cnZldG8KICAgICAgICAgICAgY2FzZSAzMToKICAgICAgICAgICAgICAvLyBodmN1cnZldG8KICAgICAgICAgICAgICBwaGFzZSA9IG9wID09PSAzMTsKICAgICAgICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID49IDQpIHsKICAgICAgICAgICAgICAgIGlmIChwaGFzZSkgewogICAgICAgICAgICAgICAgICBjMXggPSB4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgYzF5ID0geTsKICAgICAgICAgICAgICAgICAgYzJ4ID0gYzF4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgYzJ5ID0gYzF5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgeSA9IGMyeSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIHggPSBjMnggKyAoc3RhY2subGVuZ3RoID09PSAxID8gc3RhY2suc2hpZnQoKSA6IDApOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgYzF4ID0geDsKICAgICAgICAgICAgICAgICAgYzF5ID0geSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGMyeCA9IGMxeCArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGMyeSA9IGMxeSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIHggPSBjMnggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICB5ID0gYzJ5ICsgKHN0YWNrLmxlbmd0aCA9PT0gMSA/IHN0YWNrLnNoaWZ0KCkgOiAwKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBwYXRoLmJlemllckN1cnZlVG8oYzF4LCBjMXksIGMyeCwgYzJ5LCB4LCB5KTsKICAgICAgICAgICAgICAgIHBoYXNlID0gIXBoYXNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgICAgb3AgPSBzdHJlYW0ucmVhZFVJbnQ4KCk7CiAgICAgICAgICAgICAgc3dpdGNoIChvcCkgewogICAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgICAvLyBhbmQKICAgICAgICAgICAgICAgICAgdmFyIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgdmFyIGIgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaChhICYmIGIgPyAxIDogMCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgLy8gb3IKICAgICAgICAgICAgICAgICAgYSA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBiID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goYSB8fCBiID8gMSA6IDApOwogICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgICAgIC8vIG5vdAogICAgICAgICAgICAgICAgICBhID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goYSA/IDAgOiAxKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgICAgICAvLyBhYnMKICAgICAgICAgICAgICAgICAgYSA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKE1hdGguYWJzKGEpKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAgICAgLy8gYWRkCiAgICAgICAgICAgICAgICAgIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgYiA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGEgKyBiKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICAgICAgLy8gc3ViCiAgICAgICAgICAgICAgICAgIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgYiA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGEgLSBiKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgICAgICAgLy8gZGl2CiAgICAgICAgICAgICAgICAgIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgYiA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGEgLyBiKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgICAgICAgLy8gbmVnCiAgICAgICAgICAgICAgICAgIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCgtYSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMTU6CiAgICAgICAgICAgICAgICAgIC8vIGVxCiAgICAgICAgICAgICAgICAgIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgYiA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGEgPT09IGIgPyAxIDogMCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMTg6CiAgICAgICAgICAgICAgICAgIC8vIGRyb3AKICAgICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMjA6CiAgICAgICAgICAgICAgICAgIC8vIHB1dAogICAgICAgICAgICAgICAgICB2YXIgdmFsID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIHZhciBpZHggPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgdHJhbnNbaWR4XSA9IHZhbDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAyMToKICAgICAgICAgICAgICAgICAgLy8gZ2V0CiAgICAgICAgICAgICAgICAgIGlkeCA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKHRyYW5zW2lkeF0gfHwgMCk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMjI6CiAgICAgICAgICAgICAgICAgIC8vIGlmZWxzZQogICAgICAgICAgICAgICAgICB2YXIgczEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgdmFyIHMyID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIHZhciB2MSA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICB2YXIgdjIgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaCh2MSA8PSB2MiA/IHMxIDogczIpOwogICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDIzOgogICAgICAgICAgICAgICAgICAvLyByYW5kb20KICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaChNYXRoLnJhbmRvbSgpKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAyNDoKICAgICAgICAgICAgICAgICAgLy8gbXVsCiAgICAgICAgICAgICAgICAgIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgYiA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGEgKiBiKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAyNjoKICAgICAgICAgICAgICAgICAgLy8gc3FydAogICAgICAgICAgICAgICAgICBhID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goTWF0aC5zcXJ0KGEpKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAyNzoKICAgICAgICAgICAgICAgICAgLy8gZHVwCiAgICAgICAgICAgICAgICAgIGEgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaChhLCBhKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAyODoKICAgICAgICAgICAgICAgICAgLy8gZXhjaAogICAgICAgICAgICAgICAgICBhID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIGIgPSBzdGFjay5wb3AoKTsKICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaChiLCBhKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAyOToKICAgICAgICAgICAgICAgICAgLy8gaW5kZXgKICAgICAgICAgICAgICAgICAgaWR4ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgICAgIGlmIChpZHggPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWR4ID0gMDsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggPiBzdGFjay5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICAgICAgaWR4ID0gc3RhY2subGVuZ3RoIC0gMTsKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgc3RhY2sucHVzaChzdGFja1tpZHhdKTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAzMDoKICAgICAgICAgICAgICAgICAgLy8gcm9sbAogICAgICAgICAgICAgICAgICB2YXIgbiA9IHN0YWNrLnBvcCgpOwogICAgICAgICAgICAgICAgICB2YXIgX2ogPSBzdGFjay5wb3AoKTsKCiAgICAgICAgICAgICAgICAgIGlmIChfaiA+PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKF9qID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBzdGFja1tuIC0gMV07CiAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBfaSA9IG4gLSAyOyBfaSA+PSAwOyBfaS0tKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrW19pICsgMV0gPSBzdGFja1tfaV07CiAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgc3RhY2tbMF0gPSB0OwogICAgICAgICAgICAgICAgICAgICAgX2otLTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKF9qIDwgMCkgewogICAgICAgICAgICAgICAgICAgICAgdmFyIHQgPSBzdGFja1swXTsKICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8PSBuOyBfaTIrKykgewogICAgICAgICAgICAgICAgICAgICAgICBzdGFja1tfaTJdID0gc3RhY2tbX2kyICsgMV07CiAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgc3RhY2tbbiAtIDFdID0gdDsKICAgICAgICAgICAgICAgICAgICAgIF9qKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGNhc2UgMzQ6CiAgICAgICAgICAgICAgICAgIC8vIGhmbGV4CiAgICAgICAgICAgICAgICAgIGMxeCA9IHggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICBjMXkgPSB5OwogICAgICAgICAgICAgICAgICBjMnggPSBjMXggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICBjMnkgPSBjMXkgKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICB2YXIgYzN4ID0gYzJ4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgdmFyIGMzeSA9IGMyeTsKICAgICAgICAgICAgICAgICAgdmFyIGM0eCA9IGMzeCArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIHZhciBjNHkgPSBjM3k7CiAgICAgICAgICAgICAgICAgIHZhciBjNXggPSBjNHggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICB2YXIgYzV5ID0gYzR5OwogICAgICAgICAgICAgICAgICB2YXIgYzZ4ID0gYzV4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgdmFyIGM2eSA9IGM1eTsKICAgICAgICAgICAgICAgICAgeCA9IGM2eDsKICAgICAgICAgICAgICAgICAgeSA9IGM2eTsKCiAgICAgICAgICAgICAgICAgIHBhdGguYmV6aWVyQ3VydmVUbyhjMXgsIGMxeSwgYzJ4LCBjMnksIGMzeCwgYzN5KTsKICAgICAgICAgICAgICAgICAgcGF0aC5iZXppZXJDdXJ2ZVRvKGM0eCwgYzR5LCBjNXgsIGM1eSwgYzZ4LCBjNnkpOwogICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDM1OgogICAgICAgICAgICAgICAgICAvLyBmbGV4CiAgICAgICAgICAgICAgICAgIHZhciBwdHMgPSBbXTsKCiAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9pMyA9IDA7IF9pMyA8PSA1OyBfaTMrKykgewogICAgICAgICAgICAgICAgICAgIHggKz0gc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICB5ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgICAgcHRzLnB1c2goeCwgeSk7CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIHBhdGguYmV6aWVyQ3VydmVUby5hcHBseShwYXRoLCBwdHMuc2xpY2UoMCwgNikpOwogICAgICAgICAgICAgICAgICBwYXRoLmJlemllckN1cnZlVG8uYXBwbHkocGF0aCwgcHRzLnNsaWNlKDYpKTsKICAgICAgICAgICAgICAgICAgc3RhY2suc2hpZnQoKTsgLy8gZmQKICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgICAgY2FzZSAzNjoKICAgICAgICAgICAgICAgICAgLy8gaGZsZXgxCiAgICAgICAgICAgICAgICAgIGMxeCA9IHggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICBjMXkgPSB5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgYzJ4ID0gYzF4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgYzJ5ID0gYzF5ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgYzN4ID0gYzJ4ICsgc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgYzN5ID0gYzJ5OwogICAgICAgICAgICAgICAgICBjNHggPSBjM3ggKyBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICBjNHkgPSBjM3k7CiAgICAgICAgICAgICAgICAgIGM1eCA9IGM0eCArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGM1eSA9IGM0eSArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGM2eCA9IGM1eCArIHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGM2eSA9IGM1eTsKICAgICAgICAgICAgICAgICAgeCA9IGM2eDsKICAgICAgICAgICAgICAgICAgeSA9IGM2eTsKCiAgICAgICAgICAgICAgICAgIHBhdGguYmV6aWVyQ3VydmVUbyhjMXgsIGMxeSwgYzJ4LCBjMnksIGMzeCwgYzN5KTsKICAgICAgICAgICAgICAgICAgcGF0aC5iZXppZXJDdXJ2ZVRvKGM0eCwgYzR5LCBjNXgsIGM1eSwgYzZ4LCBjNnkpOwogICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgICBjYXNlIDM3OgogICAgICAgICAgICAgICAgICAvLyBmbGV4MQogICAgICAgICAgICAgICAgICB2YXIgc3RhcnR4ID0geDsKICAgICAgICAgICAgICAgICAgdmFyIHN0YXJ0eSA9IHk7CgogICAgICAgICAgICAgICAgICBwdHMgPSBbXTsKICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2k0ID0gMDsgX2k0IDw9IDQ7IF9pNCsrKSB7CiAgICAgICAgICAgICAgICAgICAgeCArPSBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICAgIHkgKz0gc3RhY2suc2hpZnQoKTsKICAgICAgICAgICAgICAgICAgICBwdHMucHVzaCh4LCB5KTsKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgaWYgKE1hdGguYWJzKHggLSBzdGFydHgpID4gTWF0aC5hYnMoeSAtIHN0YXJ0eSkpIHsKICAgICAgICAgICAgICAgICAgICAvLyBob3Jpem9udGFsCiAgICAgICAgICAgICAgICAgICAgeCArPSBzdGFjay5zaGlmdCgpOwogICAgICAgICAgICAgICAgICAgIHkgPSBzdGFydHk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgeCA9IHN0YXJ0eDsKICAgICAgICAgICAgICAgICAgICB5ICs9IHN0YWNrLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIHB0cy5wdXNoKHgsIHkpOwogICAgICAgICAgICAgICAgICBwYXRoLmJlemllckN1cnZlVG8uYXBwbHkocGF0aCwgcHRzLnNsaWNlKDAsIDYpKTsKICAgICAgICAgICAgICAgICAgcGF0aC5iZXppZXJDdXJ2ZVRvLmFwcGx5KHBhdGgsIHB0cy5zbGljZSg2KSk7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBvcDogMTIgJyArIG9wKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBvcDogJyArIG9wKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKG9wIDwgMjQ3KSB7CiAgICAgICAgICBzdGFjay5wdXNoKG9wIC0gMTM5KTsKICAgICAgICB9IGVsc2UgaWYgKG9wIDwgMjUxKSB7CiAgICAgICAgICB2YXIgYjEgPSBzdHJlYW0ucmVhZFVJbnQ4KCk7CiAgICAgICAgICBzdGFjay5wdXNoKChvcCAtIDI0NykgKiAyNTYgKyBiMSArIDEwOCk7CiAgICAgICAgfSBlbHNlIGlmIChvcCA8IDI1NSkgewogICAgICAgICAgdmFyIGIxID0gc3RyZWFtLnJlYWRVSW50OCgpOwogICAgICAgICAgc3RhY2sucHVzaCgtKG9wIC0gMjUxKSAqIDI1NiAtIGIxIC0gMTA4KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgc3RhY2sucHVzaChzdHJlYW0ucmVhZEludDMyQkUoKSAvIDY1NTM2KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CgogICAgcGFyc2UoKTsKCiAgICBpZiAob3BlbikgewogICAgICBwYXRoLmNsb3NlUGF0aCgpOwogICAgfQoKICAgIHJldHVybiBwYXRoOwogIH07CgogIHJldHVybiBDRkZHbHlwaDsKfShHbHlwaCk7Cgp2YXIgU0JJWEltYWdlID0gbmV3IHIuU3RydWN0KHsKICBvcmlnaW5YOiByLnVpbnQxNiwKICBvcmlnaW5ZOiByLnVpbnQxNiwKICB0eXBlOiBuZXcgci5TdHJpbmcoNCksCiAgZGF0YTogbmV3IHIuQnVmZmVyKGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC5wYXJlbnQuYnVmbGVuIC0gdC5fY3VycmVudE9mZnNldDsKICB9KQp9KTsKCi8qKgogKiBSZXByZXNlbnRzIGEgY29sb3IgKGUuZy4gZW1vamkpIGdseXBoIGluIEFwcGxlJ3MgU0JJWCBmb3JtYXQuCiAqLwoKdmFyIFNCSVhHbHlwaCA9IGZ1bmN0aW9uIChfVFRGR2x5cGgpIHsKICBfaW5oZXJpdHMoU0JJWEdseXBoLCBfVFRGR2x5cGgpOwoKICBmdW5jdGlvbiBTQklYR2x5cGgoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU0JJWEdseXBoKTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX1RURkdseXBoLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOwogIH0KCiAgLyoqCiAgICogUmV0dXJucyBhbiBvYmplY3QgcmVwcmVzZW50aW5nIGEgZ2x5cGggaW1hZ2UgYXQgdGhlIGdpdmVuIHBvaW50IHNpemUuCiAgICogVGhlIG9iamVjdCBoYXMgYSBkYXRhIHByb3BlcnR5IHdpdGggYSBCdWZmZXIgY29udGFpbmluZyB0aGUgYWN0dWFsIGltYWdlIGRhdGEsCiAgICogYWxvbmcgd2l0aCB0aGUgaW1hZ2UgdHlwZSwgYW5kIG9yaWdpbi4KICAgKgogICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplCiAgICogQHJldHVybiB7b2JqZWN0fQogICAqLwogIFNCSVhHbHlwaC5wcm90b3R5cGUuZ2V0SW1hZ2VGb3JTaXplID0gZnVuY3Rpb24gZ2V0SW1hZ2VGb3JTaXplKHNpemUpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZm9udC5zYml4LmltYWdlVGFibGVzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciB0YWJsZSA9IHRoaXMuX2ZvbnQuc2JpeC5pbWFnZVRhYmxlc1tpXTsKICAgICAgaWYgKHRhYmxlLnBwZW0gPj0gc2l6ZSkgewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CgogICAgdmFyIG9mZnNldHMgPSB0YWJsZS5pbWFnZU9mZnNldHM7CiAgICB2YXIgc3RhcnQgPSBvZmZzZXRzW3RoaXMuaWRdOwogICAgdmFyIGVuZCA9IG9mZnNldHNbdGhpcy5pZCArIDFdOwoKICAgIGlmIChzdGFydCA9PT0gZW5kKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIHRoaXMuX2ZvbnQuc3RyZWFtLnBvcyA9IHN0YXJ0OwogICAgcmV0dXJuIFNCSVhJbWFnZS5kZWNvZGUodGhpcy5fZm9udC5zdHJlYW0sIHsgYnVmbGVuOiBlbmQgLSBzdGFydCB9KTsKICB9OwoKICBTQklYR2x5cGgucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcihjdHgsIHNpemUpIHsKICAgIHZhciBpbWcgPSB0aGlzLmdldEltYWdlRm9yU2l6ZShzaXplKTsKICAgIGlmIChpbWcgIT0gbnVsbCkgewogICAgICB2YXIgc2NhbGUgPSBzaXplIC8gdGhpcy5fZm9udC51bml0c1BlckVtOwogICAgICBjdHguaW1hZ2UoaW1nLmRhdGEsIHsgaGVpZ2h0OiBzaXplLCB4OiBpbWcub3JpZ2luWCwgeTogKHRoaXMuYmJveC5taW5ZIC0gaW1nLm9yaWdpblkpICogc2NhbGUgfSk7CiAgICB9CgogICAgaWYgKHRoaXMuX2ZvbnQuc2JpeC5mbGFncy5yZW5kZXJPdXRsaW5lcykgewogICAgICBfVFRGR2x5cGgucHJvdG90eXBlLnJlbmRlci5jYWxsKHRoaXMsIGN0eCwgc2l6ZSk7CiAgICB9CiAgfTsKCiAgcmV0dXJuIFNCSVhHbHlwaDsKfShUVEZHbHlwaCk7Cgp2YXIgQ09MUkxheWVyID0gZnVuY3Rpb24gQ09MUkxheWVyKGdseXBoLCBjb2xvcikgewogIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDT0xSTGF5ZXIpOwoKICB0aGlzLmdseXBoID0gZ2x5cGg7CiAgdGhpcy5jb2xvciA9IGNvbG9yOwp9OwoKLyoqCiAqIFJlcHJlc2VudHMgYSBjb2xvciAoZS5nLiBlbW9qaSkgZ2x5cGggaW4gTWljcm9zb2Z0J3MgQ09MUiBmb3JtYXQuCiAqIEVhY2ggZ2x5cGggaW4gdGhpcyBmb3JtYXQgY29udGFpbiBhIGxpc3Qgb2YgY29sb3JlZCBsYXllcnMsIGVhY2gKICogb2Ygd2hpY2ggIGlzIGFub3RoZXIgdmVjdG9yIGdseXBoLgogKi8KCgp2YXIgQ09MUkdseXBoID0gZnVuY3Rpb24gKF9HbHlwaCkgewogIF9pbmhlcml0cyhDT0xSR2x5cGgsIF9HbHlwaCk7CgogIGZ1bmN0aW9uIENPTFJHbHlwaCgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDT0xSR2x5cGgpOwoKICAgIHJldHVybiBfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybih0aGlzLCBfR2x5cGguYXBwbHkodGhpcywgYXJndW1lbnRzKSk7CiAgfQoKICBDT0xSR2x5cGgucHJvdG90eXBlLl9nZXRCQm94ID0gZnVuY3Rpb24gX2dldEJCb3goKSB7CiAgICB2YXIgYmJveCA9IG5ldyBCQm94KCk7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMubGF5ZXJzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBsYXllciA9IHRoaXMubGF5ZXJzW2ldOwogICAgICB2YXIgYiA9IGxheWVyLmdseXBoLmJib3g7CiAgICAgIGJib3guYWRkUG9pbnQoYi5taW5YLCBiLm1pblkpOwogICAgICBiYm94LmFkZFBvaW50KGIubWF4WCwgYi5tYXhZKTsKICAgIH0KCiAgICByZXR1cm4gYmJveDsKICB9OwoKICAvKioKICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMgY29udGFpbmluZyB0aGUgZ2x5cGggYW5kIGNvbG9yIGZvcgogICAqIGVhY2ggbGF5ZXIgaW4gdGhlIGNvbXBvc2l0ZSBjb2xvciBnbHlwaC4KICAgKiBAdHlwZSB7b2JqZWN0W119CiAgICovCgoKICBDT0xSR2x5cGgucHJvdG90eXBlLnJlbmRlciA9IGZ1bmN0aW9uIHJlbmRlcihjdHgsIHNpemUpIHsKICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHRoaXMubGF5ZXJzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgdmFyIF9yZWY7CgogICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIF9yZWYyID0gX3JlZiwKICAgICAgICAgIGdseXBoID0gX3JlZjIuZ2x5cGgsCiAgICAgICAgICBjb2xvciA9IF9yZWYyLmNvbG9yOwoKICAgICAgY3R4LmZpbGxDb2xvcihbY29sb3IucmVkLCBjb2xvci5ncmVlbiwgY29sb3IuYmx1ZV0sIGNvbG9yLmFscGhhIC8gMjU1ICogMTAwKTsKICAgICAgZ2x5cGgucmVuZGVyKGN0eCwgc2l6ZSk7CiAgICB9CgogICAgcmV0dXJuOwogIH07CgogIF9jcmVhdGVDbGFzcyhDT0xSR2x5cGgsIFt7CiAgICBrZXk6ICdsYXllcnMnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHZhciBjcGFsID0gdGhpcy5fZm9udC5DUEFMOwogICAgICB2YXIgY29sciA9IHRoaXMuX2ZvbnQuQ09MUjsKICAgICAgdmFyIGxvdyA9IDA7CiAgICAgIHZhciBoaWdoID0gY29sci5iYXNlR2x5cGhSZWNvcmQubGVuZ3RoIC0gMTsKCiAgICAgIHdoaWxlIChsb3cgPD0gaGlnaCkgewogICAgICAgIHZhciBtaWQgPSBsb3cgKyBoaWdoID4+IDE7CiAgICAgICAgdmFyIHJlYyA9IGNvbHIuYmFzZUdseXBoUmVjb3JkW21pZF07CgogICAgICAgIGlmICh0aGlzLmlkIDwgcmVjLmdpZCkgewogICAgICAgICAgaGlnaCA9IG1pZCAtIDE7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlkID4gcmVjLmdpZCkgewogICAgICAgICAgbG93ID0gbWlkICsgMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGJhc2VMYXllciA9IHJlYzsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQoKICAgICAgLy8gaWYgYmFzZSBnbHlwaCBub3QgZm91bmQgaW4gQ09MUiB0YWJsZSwKICAgICAgLy8gZGVmYXVsdCB0byBub3JtYWwgZ2x5cGggZnJvbSBnbHlmIG9yIENGRgogICAgICBpZiAoYmFzZUxheWVyID09IG51bGwpIHsKICAgICAgICB2YXIgZyA9IHRoaXMuX2ZvbnQuX2dldEJhc2VHbHlwaCh0aGlzLmlkKTsKICAgICAgICB2YXIgY29sb3IgPSB7CiAgICAgICAgICByZWQ6IDAsCiAgICAgICAgICBncmVlbjogMCwKICAgICAgICAgIGJsdWU6IDAsCiAgICAgICAgICBhbHBoYTogMjU1CiAgICAgICAgfTsKCiAgICAgICAgcmV0dXJuIFtuZXcgQ09MUkxheWVyKGcsIGNvbG9yKV07CiAgICAgIH0KCiAgICAgIC8vIG90aGVyd2lzZSwgcmV0dXJuIGFuIGFycmF5IG9mIGFsbCB0aGUgbGF5ZXJzCiAgICAgIHZhciBsYXllcnMgPSBbXTsKICAgICAgZm9yICh2YXIgaSA9IGJhc2VMYXllci5maXJzdExheWVySW5kZXg7IGkgPCBiYXNlTGF5ZXIuZmlyc3RMYXllckluZGV4ICsgYmFzZUxheWVyLm51bUxheWVyczsgaSsrKSB7CiAgICAgICAgdmFyIHJlYyA9IGNvbHIubGF5ZXJSZWNvcmRzW2ldOwogICAgICAgIHZhciBjb2xvciA9IGNwYWwuY29sb3JSZWNvcmRzW3JlYy5wYWxldHRlSW5kZXhdOwogICAgICAgIHZhciBnID0gdGhpcy5fZm9udC5fZ2V0QmFzZUdseXBoKHJlYy5naWQpOwogICAgICAgIGxheWVycy5wdXNoKG5ldyBDT0xSTGF5ZXIoZywgY29sb3IpKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGxheWVyczsKICAgIH0KICB9XSk7CgogIHJldHVybiBDT0xSR2x5cGg7Cn0oR2x5cGgpOwoKdmFyIFRVUExFU19TSEFSRV9QT0lOVF9OVU1CRVJTID0gMHg4MDAwOwp2YXIgVFVQTEVfQ09VTlRfTUFTSyA9IDB4MGZmZjsKdmFyIEVNQkVEREVEX1RVUExFX0NPT1JEID0gMHg4MDAwOwp2YXIgSU5URVJNRURJQVRFX1RVUExFID0gMHg0MDAwOwp2YXIgUFJJVkFURV9QT0lOVF9OVU1CRVJTID0gMHgyMDAwOwp2YXIgVFVQTEVfSU5ERVhfTUFTSyA9IDB4MGZmZjsKdmFyIFBPSU5UU19BUkVfV09SRFMgPSAweDgwOwp2YXIgUE9JTlRfUlVOX0NPVU5UX01BU0sgPSAweDdmOwp2YXIgREVMVEFTX0FSRV9aRVJPID0gMHg4MDsKdmFyIERFTFRBU19BUkVfV09SRFMgPSAweDQwOwp2YXIgREVMVEFfUlVOX0NPVU5UX01BU0sgPSAweDNmOwoKLyoqCiAqIFRoaXMgY2xhc3MgaXMgdHJhbnNmb3JtcyBUcnVlVHlwZSBnbHlwaHMgYWNjb3JkaW5nIHRvIHRoZSBkYXRhIGZyb20KICogdGhlIEFwcGxlIEFkdmFuY2VkIFR5cG9ncmFwaHkgdmFyaWF0aW9uIHRhYmxlcyAoZnZhciwgZ3ZhciwgYW5kIGF2YXIpLgogKiBUaGVzZSB0YWJsZXMgYWxsb3cgaW5maW5pdGUgYWRqdXN0bWVudHMgdG8gZ2x5cGggd2VpZ2h0LCB3aWR0aCwgc2xhbnQsCiAqIGFuZCBvcHRpY2FsIHNpemUgd2l0aG91dCB0aGUgZGVzaWduZXIgbmVlZGluZyB0byBzcGVjaWZ5IGV2ZXJ5IGV4YWN0IHN0eWxlLgogKgogKiBBcHBsZSdzIGRvY3VtZW50YXRpb24gZm9yIHRoZXNlIHRhYmxlcyBpcyBub3QgZ3JlYXQsIHNvIHRoYW5rcyB0byB0aGUKICogRnJlZXR5cGUgcHJvamVjdCBmb3IgZmlndXJpbmcgbXVjaCBvZiB0aGlzIG91dC4KICoKICogQHByaXZhdGUKICovCgp2YXIgR2x5cGhWYXJpYXRpb25Qcm9jZXNzb3IgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gR2x5cGhWYXJpYXRpb25Qcm9jZXNzb3IoZm9udCwgY29vcmRzKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgR2x5cGhWYXJpYXRpb25Qcm9jZXNzb3IpOwoKICAgIHRoaXMuZm9udCA9IGZvbnQ7CiAgICB0aGlzLm5vcm1hbGl6ZWRDb29yZHMgPSB0aGlzLm5vcm1hbGl6ZUNvb3Jkcyhjb29yZHMpOwogICAgdGhpcy5ibGVuZFZlY3RvcnMgPSBuZXcgX01hcCgpOwogIH0KCiAgR2x5cGhWYXJpYXRpb25Qcm9jZXNzb3IucHJvdG90eXBlLm5vcm1hbGl6ZUNvb3JkcyA9IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvb3Jkcyhjb29yZHMpIHsKICAgIC8vIHRoZSBkZWZhdWx0IG1hcHBpbmcgaXMgbGluZWFyIGFsb25nIGVhY2ggYXhpcywgaW4gdHdvIHNlZ21lbnRzOgogICAgLy8gZnJvbSB0aGUgbWluVmFsdWUgdG8gZGVmYXVsdFZhbHVlLCBhbmQgZnJvbSBkZWZhdWx0VmFsdWUgdG8gbWF4VmFsdWUuCiAgICB2YXIgbm9ybWFsaXplZCA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmZvbnQuZnZhci5heGlzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBheGlzID0gdGhpcy5mb250LmZ2YXIuYXhpc1tpXTsKICAgICAgaWYgKGNvb3Jkc1tpXSA8IGF4aXMuZGVmYXVsdFZhbHVlKSB7CiAgICAgICAgbm9ybWFsaXplZC5wdXNoKChjb29yZHNbaV0gLSBheGlzLmRlZmF1bHRWYWx1ZSArIF9OdW1iZXIkRVBTSUxPTikgLyAoYXhpcy5kZWZhdWx0VmFsdWUgLSBheGlzLm1pblZhbHVlICsgX051bWJlciRFUFNJTE9OKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbm9ybWFsaXplZC5wdXNoKChjb29yZHNbaV0gLSBheGlzLmRlZmF1bHRWYWx1ZSArIF9OdW1iZXIkRVBTSUxPTikgLyAoYXhpcy5tYXhWYWx1ZSAtIGF4aXMuZGVmYXVsdFZhbHVlICsgX051bWJlciRFUFNJTE9OKSk7CiAgICAgIH0KICAgIH0KCiAgICAvLyBpZiB0aGVyZSBpcyBhbiBhdmFyIHRhYmxlLCB0aGUgbm9ybWFsaXplZCB2YWx1ZSBpcyBjYWxjdWxhdGVkCiAgICAvLyBieSBpbnRlcnBvbGF0aW5nIGJldHdlZW4gdGhlIHR3byBuZWFyZXN0IG1hcHBlZCB2YWx1ZXMuCiAgICBpZiAodGhpcy5mb250LmF2YXIpIHsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmZvbnQuYXZhci5zZWdtZW50Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIHNlZ21lbnQgPSB0aGlzLmZvbnQuYXZhci5zZWdtZW50W2ldOwogICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc2VnbWVudC5jb3JyZXNwb25kZW5jZS5sZW5ndGg7IGorKykgewogICAgICAgICAgdmFyIHBhaXIgPSBzZWdtZW50LmNvcnJlc3BvbmRlbmNlW2pdOwogICAgICAgICAgaWYgKGogPj0gMSAmJiBub3JtYWxpemVkW2ldIDwgcGFpci5mcm9tQ29vcmQpIHsKICAgICAgICAgICAgdmFyIHByZXYgPSBzZWdtZW50LmNvcnJlc3BvbmRlbmNlW2ogLSAxXTsKICAgICAgICAgICAgbm9ybWFsaXplZFtpXSA9ICgobm9ybWFsaXplZFtpXSAtIHByZXYuZnJvbUNvb3JkKSAqIChwYWlyLnRvQ29vcmQgLSBwcmV2LnRvQ29vcmQpICsgX051bWJlciRFUFNJTE9OKSAvIChwYWlyLmZyb21Db29yZCAtIHByZXYuZnJvbUNvb3JkICsgX051bWJlciRFUFNJTE9OKSArIHByZXYudG9Db29yZDsKCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBub3JtYWxpemVkOwogIH07CgogIEdseXBoVmFyaWF0aW9uUHJvY2Vzc29yLnByb3RvdHlwZS50cmFuc2Zvcm1Qb2ludHMgPSBmdW5jdGlvbiB0cmFuc2Zvcm1Qb2ludHMoZ2lkLCBnbHlwaFBvaW50cykgewogICAgaWYgKCF0aGlzLmZvbnQuZnZhciB8fCAhdGhpcy5mb250Lmd2YXIpIHsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhciBndmFyID0gdGhpcy5mb250Lmd2YXI7CgogICAgaWYgKGdpZCA+PSBndmFyLmdseXBoQ291bnQpIHsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHZhciBvZmZzZXQgPSBndmFyLm9mZnNldHNbZ2lkXTsKICAgIGlmIChvZmZzZXQgPT09IGd2YXIub2Zmc2V0c1tnaWQgKyAxXSkgewogICAgICByZXR1cm47CiAgICB9CgogICAgLy8gUmVhZCB0aGUgZ3ZhciBkYXRhIGZvciB0aGlzIGdseXBoCiAgICB2YXIgc3RyZWFtID0gdGhpcy5mb250LnN0cmVhbTsKCiAgICBzdHJlYW0ucG9zID0gb2Zmc2V0OwogICAgaWYgKHN0cmVhbS5wb3MgPj0gc3RyZWFtLmxlbmd0aCkgewogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIHR1cGxlQ291bnQgPSBzdHJlYW0ucmVhZFVJbnQxNkJFKCk7CiAgICB2YXIgb2Zmc2V0VG9EYXRhID0gb2Zmc2V0ICsgc3RyZWFtLnJlYWRVSW50MTZCRSgpOwoKICAgIGlmICh0dXBsZUNvdW50ICYgVFVQTEVTX1NIQVJFX1BPSU5UX05VTUJFUlMpIHsKICAgICAgdmFyIGhlcmUgPSBzdHJlYW0ucG9zOwogICAgICBzdHJlYW0ucG9zID0gb2Zmc2V0VG9EYXRhOwogICAgICB2YXIgc2hhcmVkUG9pbnRzID0gdGhpcy5kZWNvZGVQb2ludHMoKTsKICAgICAgb2Zmc2V0VG9EYXRhID0gc3RyZWFtLnBvczsKICAgICAgc3RyZWFtLnBvcyA9IGhlcmU7CiAgICB9CgogICAgdmFyIG9yaWdQb2ludHMgPSBnbHlwaFBvaW50cy5tYXAoZnVuY3Rpb24gKHB0KSB7CiAgICAgIHJldHVybiBwdC5jb3B5KCk7CiAgICB9KTsKCiAgICB0dXBsZUNvdW50ICY9IFRVUExFX0NPVU5UX01BU0s7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHR1cGxlQ291bnQ7IGkrKykgewogICAgICB2YXIgdHVwbGVEYXRhU2l6ZSA9IHN0cmVhbS5yZWFkVUludDE2QkUoKTsKICAgICAgdmFyIHR1cGxlSW5kZXggPSBzdHJlYW0ucmVhZFVJbnQxNkJFKCk7CgogICAgICBpZiAodHVwbGVJbmRleCAmIEVNQkVEREVEX1RVUExFX0NPT1JEKSB7CiAgICAgICAgdmFyIHR1cGxlQ29vcmRzID0gW107CiAgICAgICAgZm9yICh2YXIgYSA9IDA7IGEgPCBndmFyLmF4aXNDb3VudDsgYSsrKSB7CiAgICAgICAgICB0dXBsZUNvb3Jkcy5wdXNoKHN0cmVhbS5yZWFkSW50MTZCRSgpIC8gMTYzODQpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoKHR1cGxlSW5kZXggJiBUVVBMRV9JTkRFWF9NQVNLKSA+PSBndmFyLmdsb2JhbENvb3JkQ291bnQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBndmFyIHRhYmxlJyk7CiAgICAgICAgfQoKICAgICAgICB2YXIgdHVwbGVDb29yZHMgPSBndmFyLmdsb2JhbENvb3Jkc1t0dXBsZUluZGV4ICYgVFVQTEVfSU5ERVhfTUFTS107CiAgICAgIH0KCiAgICAgIGlmICh0dXBsZUluZGV4ICYgSU5URVJNRURJQVRFX1RVUExFKSB7CiAgICAgICAgdmFyIHN0YXJ0Q29vcmRzID0gW107CiAgICAgICAgZm9yICh2YXIgX2EgPSAwOyBfYSA8IGd2YXIuYXhpc0NvdW50OyBfYSsrKSB7CiAgICAgICAgICBzdGFydENvb3Jkcy5wdXNoKHN0cmVhbS5yZWFkSW50MTZCRSgpIC8gMTYzODQpOwogICAgICAgIH0KCiAgICAgICAgdmFyIGVuZENvb3JkcyA9IFtdOwogICAgICAgIGZvciAodmFyIF9hMiA9IDA7IF9hMiA8IGd2YXIuYXhpc0NvdW50OyBfYTIrKykgewogICAgICAgICAgZW5kQ29vcmRzLnB1c2goc3RyZWFtLnJlYWRJbnQxNkJFKCkgLyAxNjM4NCk7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBHZXQgdGhlIGZhY3RvciBhdCB3aGljaCB0byBhcHBseSB0aGlzIHR1cGxlCiAgICAgIHZhciBmYWN0b3IgPSB0aGlzLnR1cGxlRmFjdG9yKHR1cGxlSW5kZXgsIHR1cGxlQ29vcmRzLCBzdGFydENvb3JkcywgZW5kQ29vcmRzKTsKICAgICAgaWYgKGZhY3RvciA9PT0gMCkgewogICAgICAgIG9mZnNldFRvRGF0YSArPSB0dXBsZURhdGFTaXplOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICB2YXIgaGVyZSA9IHN0cmVhbS5wb3M7CiAgICAgIHN0cmVhbS5wb3MgPSBvZmZzZXRUb0RhdGE7CgogICAgICBpZiAodHVwbGVJbmRleCAmIFBSSVZBVEVfUE9JTlRfTlVNQkVSUykgewogICAgICAgIHZhciBwb2ludHMgPSB0aGlzLmRlY29kZVBvaW50cygpOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBwb2ludHMgPSBzaGFyZWRQb2ludHM7CiAgICAgIH0KCiAgICAgIC8vIHBvaW50cy5sZW5ndGggPSAwIG1lYW5zIHRoZXJlIGFyZSBkZWx0YXMgZm9yIGFsbCBwb2ludHMKICAgICAgdmFyIG5Qb2ludHMgPSBwb2ludHMubGVuZ3RoID09PSAwID8gZ2x5cGhQb2ludHMubGVuZ3RoIDogcG9pbnRzLmxlbmd0aDsKICAgICAgdmFyIHhEZWx0YXMgPSB0aGlzLmRlY29kZURlbHRhcyhuUG9pbnRzKTsKICAgICAgdmFyIHlEZWx0YXMgPSB0aGlzLmRlY29kZURlbHRhcyhuUG9pbnRzKTsKCiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgLy8gYWxsIHBvaW50cwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBnbHlwaFBvaW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIHZhciBwb2ludCA9IGdseXBoUG9pbnRzW19pXTsKICAgICAgICAgIHBvaW50LnggKz0gTWF0aC5yb3VuZCh4RGVsdGFzW19pXSAqIGZhY3Rvcik7CiAgICAgICAgICBwb2ludC55ICs9IE1hdGgucm91bmQoeURlbHRhc1tfaV0gKiBmYWN0b3IpOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgb3V0UG9pbnRzID0gb3JpZ1BvaW50cy5tYXAoZnVuY3Rpb24gKHB0KSB7CiAgICAgICAgICByZXR1cm4gcHQuY29weSgpOwogICAgICAgIH0pOwogICAgICAgIHZhciBoYXNEZWx0YSA9IGdseXBoUG9pbnRzLm1hcChmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CgogICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IHBvaW50cy5sZW5ndGg7IF9pMisrKSB7CiAgICAgICAgICB2YXIgaWR4ID0gcG9pbnRzW19pMl07CiAgICAgICAgICBpZiAoaWR4IDwgZ2x5cGhQb2ludHMubGVuZ3RoKSB7CiAgICAgICAgICAgIHZhciBfcG9pbnQgPSBvdXRQb2ludHNbaWR4XTsKICAgICAgICAgICAgaGFzRGVsdGFbaWR4XSA9IHRydWU7CgogICAgICAgICAgICBfcG9pbnQueCArPSBNYXRoLnJvdW5kKHhEZWx0YXNbX2kyXSAqIGZhY3Rvcik7CiAgICAgICAgICAgIF9wb2ludC55ICs9IE1hdGgucm91bmQoeURlbHRhc1tfaTJdICogZmFjdG9yKTsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHRoaXMuaW50ZXJwb2xhdGVNaXNzaW5nRGVsdGFzKG91dFBvaW50cywgb3JpZ1BvaW50cywgaGFzRGVsdGEpOwoKICAgICAgICBmb3IgKHZhciBfaTMgPSAwOyBfaTMgPCBnbHlwaFBvaW50cy5sZW5ndGg7IF9pMysrKSB7CiAgICAgICAgICB2YXIgZGVsdGFYID0gb3V0UG9pbnRzW19pM10ueCAtIG9yaWdQb2ludHNbX2kzXS54OwogICAgICAgICAgdmFyIGRlbHRhWSA9IG91dFBvaW50c1tfaTNdLnkgLSBvcmlnUG9pbnRzW19pM10ueTsKCiAgICAgICAgICBnbHlwaFBvaW50c1tfaTNdLnggKz0gZGVsdGFYOwogICAgICAgICAgZ2x5cGhQb2ludHNbX2kzXS55ICs9IGRlbHRhWTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIG9mZnNldFRvRGF0YSArPSB0dXBsZURhdGFTaXplOwogICAgICBzdHJlYW0ucG9zID0gaGVyZTsKICAgIH0KICB9OwoKICBHbHlwaFZhcmlhdGlvblByb2Nlc3Nvci5wcm90b3R5cGUuZGVjb2RlUG9pbnRzID0gZnVuY3Rpb24gZGVjb2RlUG9pbnRzKCkgewogICAgdmFyIHN0cmVhbSA9IHRoaXMuZm9udC5zdHJlYW07CiAgICB2YXIgY291bnQgPSBzdHJlYW0ucmVhZFVJbnQ4KCk7CgogICAgaWYgKGNvdW50ICYgUE9JTlRTX0FSRV9XT1JEUykgewogICAgICBjb3VudCA9IChjb3VudCAmIFBPSU5UX1JVTl9DT1VOVF9NQVNLKSA8PCA4IHwgc3RyZWFtLnJlYWRVSW50OCgpOwogICAgfQoKICAgIHZhciBwb2ludHMgPSBuZXcgVWludDE2QXJyYXkoY291bnQpOwogICAgdmFyIGkgPSAwOwogICAgdmFyIHBvaW50ID0gMDsKICAgIHdoaWxlIChpIDwgY291bnQpIHsKICAgICAgdmFyIHJ1biA9IHN0cmVhbS5yZWFkVUludDgoKTsKICAgICAgdmFyIHJ1bkNvdW50ID0gKHJ1biAmIFBPSU5UX1JVTl9DT1VOVF9NQVNLKSArIDE7CiAgICAgIHZhciBmbiA9IHJ1biAmIFBPSU5UU19BUkVfV09SRFMgPyBzdHJlYW0ucmVhZFVJbnQxNiA6IHN0cmVhbS5yZWFkVUludDg7CgogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJ1bkNvdW50ICYmIGkgPCBjb3VudDsgaisrKSB7CiAgICAgICAgcG9pbnQgKz0gZm4uY2FsbChzdHJlYW0pOwogICAgICAgIHBvaW50c1tpKytdID0gcG9pbnQ7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcG9pbnRzOwogIH07CgogIEdseXBoVmFyaWF0aW9uUHJvY2Vzc29yLnByb3RvdHlwZS5kZWNvZGVEZWx0YXMgPSBmdW5jdGlvbiBkZWNvZGVEZWx0YXMoY291bnQpIHsKICAgIHZhciBzdHJlYW0gPSB0aGlzLmZvbnQuc3RyZWFtOwogICAgdmFyIGkgPSAwOwogICAgdmFyIGRlbHRhcyA9IG5ldyBJbnQxNkFycmF5KGNvdW50KTsKCiAgICB3aGlsZSAoaSA8IGNvdW50KSB7CiAgICAgIHZhciBydW4gPSBzdHJlYW0ucmVhZFVJbnQ4KCk7CiAgICAgIHZhciBydW5Db3VudCA9IChydW4gJiBERUxUQV9SVU5fQ09VTlRfTUFTSykgKyAxOwoKICAgICAgaWYgKHJ1biAmIERFTFRBU19BUkVfWkVSTykgewogICAgICAgIGkgKz0gcnVuQ291bnQ7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIGZuID0gcnVuICYgREVMVEFTX0FSRV9XT1JEUyA/IHN0cmVhbS5yZWFkSW50MTZCRSA6IHN0cmVhbS5yZWFkSW50ODsKICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHJ1bkNvdW50ICYmIGkgPCBjb3VudDsgaisrKSB7CiAgICAgICAgICBkZWx0YXNbaSsrXSA9IGZuLmNhbGwoc3RyZWFtKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gZGVsdGFzOwogIH07CgogIEdseXBoVmFyaWF0aW9uUHJvY2Vzc29yLnByb3RvdHlwZS50dXBsZUZhY3RvciA9IGZ1bmN0aW9uIHR1cGxlRmFjdG9yKHR1cGxlSW5kZXgsIHR1cGxlQ29vcmRzLCBzdGFydENvb3JkcywgZW5kQ29vcmRzKSB7CiAgICB2YXIgbm9ybWFsaXplZCA9IHRoaXMubm9ybWFsaXplZENvb3JkczsKICAgIHZhciBndmFyID0gdGhpcy5mb250Lmd2YXI7CgogICAgdmFyIGZhY3RvciA9IDE7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBndmFyLmF4aXNDb3VudDsgaSsrKSB7CiAgICAgIGlmICh0dXBsZUNvb3Jkc1tpXSA9PT0gMCkgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CgogICAgICBpZiAobm9ybWFsaXplZFtpXSA9PT0gMCkgewogICAgICAgIHJldHVybiAwOwogICAgICB9CgogICAgICBpZiAoKHR1cGxlSW5kZXggJiBJTlRFUk1FRElBVEVfVFVQTEUpID09PSAwKSB7CiAgICAgICAgaWYgKG5vcm1hbGl6ZWRbaV0gPCBNYXRoLm1pbigwLCB0dXBsZUNvb3Jkc1tpXSkgfHwgbm9ybWFsaXplZFtpXSA+IE1hdGgubWF4KDAsIHR1cGxlQ29vcmRzW2ldKSkgewogICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQoKICAgICAgICBmYWN0b3IgPSAoZmFjdG9yICogbm9ybWFsaXplZFtpXSArIF9OdW1iZXIkRVBTSUxPTikgLyAodHVwbGVDb29yZHNbaV0gKyBfTnVtYmVyJEVQU0lMT04pOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChub3JtYWxpemVkW2ldIDwgc3RhcnRDb29yZHNbaV0gfHwgbm9ybWFsaXplZFtpXSA+IGVuZENvb3Jkc1tpXSkgewogICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfSBlbHNlIGlmIChub3JtYWxpemVkW2ldIDwgdHVwbGVDb29yZHNbaV0pIHsKICAgICAgICAgIGZhY3RvciA9IGZhY3RvciAqIChub3JtYWxpemVkW2ldIC0gc3RhcnRDb29yZHNbaV0gKyBfTnVtYmVyJEVQU0lMT04pIC8gKHR1cGxlQ29vcmRzW2ldIC0gc3RhcnRDb29yZHNbaV0gKyBfTnVtYmVyJEVQU0lMT04pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmYWN0b3IgPSBmYWN0b3IgKiAoZW5kQ29vcmRzW2ldIC0gbm9ybWFsaXplZFtpXSArIF9OdW1iZXIkRVBTSUxPTikgLyAoZW5kQ29vcmRzW2ldIC0gdHVwbGVDb29yZHNbaV0gKyBfTnVtYmVyJEVQU0lMT04pOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIHJldHVybiBmYWN0b3I7CiAgfTsKCiAgLy8gSW50ZXJwb2xhdGVzIHBvaW50cyB3aXRob3V0IGRlbHRhIHZhbHVlcy4KICAvLyBOZWVkZWQgZm9yIHRoZSDDmCBhbmQgUSBnbHlwaHMgaW4gU2tpYS4KICAvLyBBbGdvcml0aG0gZnJvbSBGcmVldHlwZS4KCgogIEdseXBoVmFyaWF0aW9uUHJvY2Vzc29yLnByb3RvdHlwZS5pbnRlcnBvbGF0ZU1pc3NpbmdEZWx0YXMgPSBmdW5jdGlvbiBpbnRlcnBvbGF0ZU1pc3NpbmdEZWx0YXMocG9pbnRzLCBpblBvaW50cywgaGFzRGVsdGEpIHsKICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAwKSB7CiAgICAgIHJldHVybjsKICAgIH0KCiAgICB2YXIgcG9pbnQgPSAwOwogICAgd2hpbGUgKHBvaW50IDwgcG9pbnRzLmxlbmd0aCkgewogICAgICB2YXIgZmlyc3RQb2ludCA9IHBvaW50OwoKICAgICAgLy8gZmluZCB0aGUgZW5kIHBvaW50IG9mIHRoZSBjb250b3VyCiAgICAgIHZhciBlbmRQb2ludCA9IHBvaW50OwogICAgICB2YXIgcHQgPSBwb2ludHNbZW5kUG9pbnRdOwogICAgICB3aGlsZSAoIXB0LmVuZENvbnRvdXIpIHsKICAgICAgICBwdCA9IHBvaW50c1srK2VuZFBvaW50XTsKICAgICAgfQoKICAgICAgLy8gZmluZCB0aGUgZmlyc3QgcG9pbnQgdGhhdCBoYXMgYSBkZWx0YQogICAgICB3aGlsZSAocG9pbnQgPD0gZW5kUG9pbnQgJiYgIWhhc0RlbHRhW3BvaW50XSkgewogICAgICAgIHBvaW50Kys7CiAgICAgIH0KCiAgICAgIGlmIChwb2ludCA+IGVuZFBvaW50KSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIHZhciBmaXJzdERlbHRhID0gcG9pbnQ7CiAgICAgIHZhciBjdXJEZWx0YSA9IHBvaW50OwogICAgICBwb2ludCsrOwoKICAgICAgd2hpbGUgKHBvaW50IDw9IGVuZFBvaW50KSB7CiAgICAgICAgLy8gZmluZCB0aGUgbmV4dCBwb2ludCB3aXRoIGEgZGVsdGEsIGFuZCBpbnRlcnBvbGF0ZSBpbnRlcm1lZGlhdGUgcG9pbnRzCiAgICAgICAgaWYgKGhhc0RlbHRhW3BvaW50XSkgewogICAgICAgICAgdGhpcy5kZWx0YUludGVycG9sYXRlKGN1ckRlbHRhICsgMSwgcG9pbnQgLSAxLCBjdXJEZWx0YSwgcG9pbnQsIGluUG9pbnRzLCBwb2ludHMpOwogICAgICAgICAgY3VyRGVsdGEgPSBwb2ludDsKICAgICAgICB9CgogICAgICAgIHBvaW50Kys7CiAgICAgIH0KCiAgICAgIC8vIHNoaWZ0IGNvbnRvdXIgaWYgd2Ugb25seSBoYXZlIGEgc2luZ2xlIGRlbHRhCiAgICAgIGlmIChjdXJEZWx0YSA9PT0gZmlyc3REZWx0YSkgewogICAgICAgIHRoaXMuZGVsdGFTaGlmdChmaXJzdFBvaW50LCBlbmRQb2ludCwgY3VyRGVsdGEsIGluUG9pbnRzLCBwb2ludHMpOwogICAgICB9IGVsc2UgewogICAgICAgIC8vIG90aGVyd2lzZSwgaGFuZGxlIHRoZSByZW1haW5pbmcgcG9pbnRzIGF0IHRoZSBlbmQgYW5kIGJlZ2lubmluZyBvZiB0aGUgY29udG91cgogICAgICAgIHRoaXMuZGVsdGFJbnRlcnBvbGF0ZShjdXJEZWx0YSArIDEsIGVuZFBvaW50LCBjdXJEZWx0YSwgZmlyc3REZWx0YSwgaW5Qb2ludHMsIHBvaW50cyk7CgogICAgICAgIGlmIChmaXJzdERlbHRhID4gMCkgewogICAgICAgICAgdGhpcy5kZWx0YUludGVycG9sYXRlKGZpcnN0UG9pbnQsIGZpcnN0RGVsdGEgLSAxLCBjdXJEZWx0YSwgZmlyc3REZWx0YSwgaW5Qb2ludHMsIHBvaW50cyk7CiAgICAgICAgfQogICAgICB9CgogICAgICBwb2ludCA9IGVuZFBvaW50ICsgMTsKICAgIH0KICB9OwoKICBHbHlwaFZhcmlhdGlvblByb2Nlc3Nvci5wcm90b3R5cGUuZGVsdGFJbnRlcnBvbGF0ZSA9IGZ1bmN0aW9uIGRlbHRhSW50ZXJwb2xhdGUocDEsIHAyLCByZWYxLCByZWYyLCBpblBvaW50cywgb3V0UG9pbnRzKSB7CiAgICBpZiAocDEgPiBwMikgewogICAgICByZXR1cm47CiAgICB9CgogICAgdmFyIGl0ZXJhYmxlID0gWyd4JywgJ3knXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlcmFibGUubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGsgPSBpdGVyYWJsZVtpXTsKICAgICAgaWYgKGluUG9pbnRzW3JlZjFdW2tdID4gaW5Qb2ludHNbcmVmMl1ba10pIHsKICAgICAgICB2YXIgcCA9IHJlZjE7CiAgICAgICAgcmVmMSA9IHJlZjI7CiAgICAgICAgcmVmMiA9IHA7CiAgICAgIH0KCiAgICAgIHZhciBpbjEgPSBpblBvaW50c1tyZWYxXVtrXTsKICAgICAgdmFyIGluMiA9IGluUG9pbnRzW3JlZjJdW2tdOwogICAgICB2YXIgb3V0MSA9IG91dFBvaW50c1tyZWYxXVtrXTsKICAgICAgdmFyIG91dDIgPSBvdXRQb2ludHNbcmVmMl1ba107CgogICAgICAvLyBJZiB0aGUgcmVmZXJlbmNlIHBvaW50cyBoYXZlIHRoZSBzYW1lIGNvb3JkaW5hdGUgYnV0IGRpZmZlcmVudAogICAgICAvLyBkZWx0YSwgaW5mZXJyZWQgZGVsdGEgaXMgemVyby4gIE90aGVyd2lzZSBpbnRlcnBvbGF0ZS4KICAgICAgaWYgKGluMSAhPT0gaW4yIHx8IG91dDEgPT09IG91dDIpIHsKICAgICAgICB2YXIgc2NhbGUgPSBpbjEgPT09IGluMiA/IDAgOiAob3V0MiAtIG91dDEpIC8gKGluMiAtIGluMSk7CgogICAgICAgIGZvciAodmFyIF9wID0gcDE7IF9wIDw9IHAyOyBfcCsrKSB7CiAgICAgICAgICB2YXIgb3V0ID0gaW5Qb2ludHNbX3BdW2tdOwoKICAgICAgICAgIGlmIChvdXQgPD0gaW4xKSB7CiAgICAgICAgICAgIG91dCArPSBvdXQxIC0gaW4xOwogICAgICAgICAgfSBlbHNlIGlmIChvdXQgPj0gaW4yKSB7CiAgICAgICAgICAgIG91dCArPSBvdXQyIC0gaW4yOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgb3V0ID0gb3V0MSArIChvdXQgLSBpbjEpICogc2NhbGU7CiAgICAgICAgICB9CgogICAgICAgICAgb3V0UG9pbnRzW19wXVtrXSA9IG91dDsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICBHbHlwaFZhcmlhdGlvblByb2Nlc3Nvci5wcm90b3R5cGUuZGVsdGFTaGlmdCA9IGZ1bmN0aW9uIGRlbHRhU2hpZnQocDEsIHAyLCByZWYsIGluUG9pbnRzLCBvdXRQb2ludHMpIHsKICAgIHZhciBkZWx0YVggPSBvdXRQb2ludHNbcmVmXS54IC0gaW5Qb2ludHNbcmVmXS54OwogICAgdmFyIGRlbHRhWSA9IG91dFBvaW50c1tyZWZdLnkgLSBpblBvaW50c1tyZWZdLnk7CgogICAgaWYgKGRlbHRhWCA9PT0gMCAmJiBkZWx0YVkgPT09IDApIHsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIGZvciAodmFyIHAgPSBwMTsgcCA8PSBwMjsgcCsrKSB7CiAgICAgIGlmIChwICE9PSByZWYpIHsKICAgICAgICBvdXRQb2ludHNbcF0ueCArPSBkZWx0YVg7CiAgICAgICAgb3V0UG9pbnRzW3BdLnkgKz0gZGVsdGFZOwogICAgICB9CiAgICB9CiAgfTsKCiAgR2x5cGhWYXJpYXRpb25Qcm9jZXNzb3IucHJvdG90eXBlLmdldEFkdmFuY2VBZGp1c3RtZW50ID0gZnVuY3Rpb24gZ2V0QWR2YW5jZUFkanVzdG1lbnQoZ2lkLCB0YWJsZSkgewogICAgdmFyIG91dGVySW5kZXggPSB2b2lkIDAsCiAgICAgICAgaW5uZXJJbmRleCA9IHZvaWQgMDsKCiAgICBpZiAodGFibGUuYWR2YW5jZVdpZHRoTWFwcGluZykgewogICAgICB2YXIgaWR4ID0gZ2lkOwogICAgICBpZiAoaWR4ID49IHRhYmxlLmFkdmFuY2VXaWR0aE1hcHBpbmcubWFwQ291bnQpIHsKICAgICAgICBpZHggPSB0YWJsZS5hZHZhbmNlV2lkdGhNYXBwaW5nLm1hcENvdW50IC0gMTsKICAgICAgfQoKICAgICAgdmFyIGVudHJ5Rm9ybWF0ID0gdGFibGUuYWR2YW5jZVdpZHRoTWFwcGluZy5lbnRyeUZvcm1hdDsKICAgICAgdmFyIF90YWJsZSRhZHZhbmNlV2lkdGhNYSA9IHRhYmxlLmFkdmFuY2VXaWR0aE1hcHBpbmcubWFwRGF0YVtpZHhdOwogICAgICBvdXRlckluZGV4ID0gX3RhYmxlJGFkdmFuY2VXaWR0aE1hLm91dGVySW5kZXg7CiAgICAgIGlubmVySW5kZXggPSBfdGFibGUkYWR2YW5jZVdpZHRoTWEuaW5uZXJJbmRleDsKICAgIH0gZWxzZSB7CiAgICAgIG91dGVySW5kZXggPSAwOwogICAgICBpbm5lckluZGV4ID0gZ2lkOwogICAgfQoKICAgIHJldHVybiB0aGlzLmdldERlbHRhKHRhYmxlLml0ZW1WYXJpYXRpb25TdG9yZSwgb3V0ZXJJbmRleCwgaW5uZXJJbmRleCk7CiAgfTsKCiAgLy8gU2VlIHBzZXVkbyBjb2RlIGZyb20gYEZvbnQgVmFyaWF0aW9ucyBPdmVydmlldycKICAvLyBpbiB0aGUgT3BlblR5cGUgc3BlY2lmaWNhdGlvbi4KCgogIEdseXBoVmFyaWF0aW9uUHJvY2Vzc29yLnByb3RvdHlwZS5nZXREZWx0YSA9IGZ1bmN0aW9uIGdldERlbHRhKGl0ZW1TdG9yZSwgb3V0ZXJJbmRleCwgaW5uZXJJbmRleCkgewogICAgaWYgKG91dGVySW5kZXggPj0gaXRlbVN0b3JlLml0ZW1WYXJpYXRpb25EYXRhLmxlbmd0aCkgewogICAgICByZXR1cm4gMDsKICAgIH0KCiAgICB2YXIgdmFyRGF0YSA9IGl0ZW1TdG9yZS5pdGVtVmFyaWF0aW9uRGF0YVtvdXRlckluZGV4XTsKICAgIGlmIChpbm5lckluZGV4ID49IHZhckRhdGEuZGVsdGFTZXRzLmxlbmd0aCkgewogICAgICByZXR1cm4gMDsKICAgIH0KCiAgICB2YXIgZGVsdGFTZXQgPSB2YXJEYXRhLmRlbHRhU2V0c1tpbm5lckluZGV4XTsKICAgIHZhciBibGVuZFZlY3RvciA9IHRoaXMuZ2V0QmxlbmRWZWN0b3IoaXRlbVN0b3JlLCBvdXRlckluZGV4KTsKICAgIHZhciBuZXRBZGp1c3RtZW50ID0gMDsKCiAgICBmb3IgKHZhciBtYXN0ZXIgPSAwOyBtYXN0ZXIgPCB2YXJEYXRhLnJlZ2lvbkluZGV4Q291bnQ7IG1hc3RlcisrKSB7CiAgICAgIG5ldEFkanVzdG1lbnQgKz0gZGVsdGFTZXQuZGVsdGFzW21hc3Rlcl0gKiBibGVuZFZlY3RvclttYXN0ZXJdOwogICAgfQoKICAgIHJldHVybiBuZXRBZGp1c3RtZW50OwogIH07CgogIEdseXBoVmFyaWF0aW9uUHJvY2Vzc29yLnByb3RvdHlwZS5nZXRCbGVuZFZlY3RvciA9IGZ1bmN0aW9uIGdldEJsZW5kVmVjdG9yKGl0ZW1TdG9yZSwgb3V0ZXJJbmRleCkgewogICAgdmFyIHZhckRhdGEgPSBpdGVtU3RvcmUuaXRlbVZhcmlhdGlvbkRhdGFbb3V0ZXJJbmRleF07CiAgICBpZiAodGhpcy5ibGVuZFZlY3RvcnMuaGFzKHZhckRhdGEpKSB7CiAgICAgIHJldHVybiB0aGlzLmJsZW5kVmVjdG9ycy5nZXQodmFyRGF0YSk7CiAgICB9CgogICAgdmFyIG5vcm1hbGl6ZWRDb29yZHMgPSB0aGlzLm5vcm1hbGl6ZWRDb29yZHM7CiAgICB2YXIgYmxlbmRWZWN0b3IgPSBbXTsKCiAgICAvLyBvdXRlciBsb29wIHN0ZXBzIHRocm91Z2ggbWFzdGVyIGRlc2lnbnMgdG8gYmUgYmxlbmRlZAogICAgZm9yICh2YXIgbWFzdGVyID0gMDsgbWFzdGVyIDwgdmFyRGF0YS5yZWdpb25JbmRleENvdW50OyBtYXN0ZXIrKykgewogICAgICB2YXIgc2NhbGFyID0gMTsKICAgICAgdmFyIHJlZ2lvbkluZGV4ID0gdmFyRGF0YS5yZWdpb25JbmRleGVzW21hc3Rlcl07CiAgICAgIHZhciBheGVzID0gaXRlbVN0b3JlLnZhcmlhdGlvblJlZ2lvbkxpc3QudmFyaWF0aW9uUmVnaW9uc1tyZWdpb25JbmRleF07CgogICAgICAvLyBpbm5lciBsb29wIHN0ZXBzIHRocm91Z2ggYXhlcyBpbiB0aGlzIHJlZ2lvbgogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGF4ZXMubGVuZ3RoOyBqKyspIHsKICAgICAgICB2YXIgYXhpcyA9IGF4ZXNbal07CiAgICAgICAgdmFyIGF4aXNTY2FsYXIgPSB2b2lkIDA7CgogICAgICAgIC8vIGNvbXB1dGUgdGhlIHNjYWxhciBjb250cmlidXRpb24gb2YgdGhpcyBheGlzCiAgICAgICAgLy8gaWdub3JlIGludmFsaWQgcmFuZ2VzCiAgICAgICAgaWYgKGF4aXMuc3RhcnRDb29yZCA+IGF4aXMucGVha0Nvb3JkIHx8IGF4aXMucGVha0Nvb3JkID4gYXhpcy5lbmRDb29yZCkgewogICAgICAgICAgYXhpc1NjYWxhciA9IDE7CiAgICAgICAgfSBlbHNlIGlmIChheGlzLnN0YXJ0Q29vcmQgPCAwICYmIGF4aXMuZW5kQ29vcmQgPiAwICYmIGF4aXMucGVha0Nvb3JkICE9PSAwKSB7CiAgICAgICAgICBheGlzU2NhbGFyID0gMTsKCiAgICAgICAgICAvLyBwZWFrIG9mIDAgbWVhbnMgaWdub3JlIHRoaXMgYXhpcwogICAgICAgIH0gZWxzZSBpZiAoYXhpcy5wZWFrQ29vcmQgPT09IDApIHsKICAgICAgICAgIGF4aXNTY2FsYXIgPSAxOwoKICAgICAgICAgIC8vIGlnbm9yZSB0aGlzIHJlZ2lvbiBpZiBjb29yZHMgYXJlIG91dCBvZiByYW5nZQogICAgICAgIH0gZWxzZSBpZiAobm9ybWFsaXplZENvb3Jkc1tqXSA8IGF4aXMuc3RhcnRDb29yZCB8fCBub3JtYWxpemVkQ29vcmRzW2pdID4gYXhpcy5lbmRDb29yZCkgewogICAgICAgICAgYXhpc1NjYWxhciA9IDA7CgogICAgICAgICAgLy8gY2FsY3VsYXRlIGEgcHJvcG9ydGlvbmFsIGZhY3RvcgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAobm9ybWFsaXplZENvb3Jkc1tqXSA9PT0gYXhpcy5wZWFrQ29vcmQpIHsKICAgICAgICAgICAgYXhpc1NjYWxhciA9IDE7CiAgICAgICAgICB9IGVsc2UgaWYgKG5vcm1hbGl6ZWRDb29yZHNbal0gPCBheGlzLnBlYWtDb29yZCkgewogICAgICAgICAgICBheGlzU2NhbGFyID0gKG5vcm1hbGl6ZWRDb29yZHNbal0gLSBheGlzLnN0YXJ0Q29vcmQgKyBfTnVtYmVyJEVQU0lMT04pIC8gKGF4aXMucGVha0Nvb3JkIC0gYXhpcy5zdGFydENvb3JkICsgX051bWJlciRFUFNJTE9OKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGF4aXNTY2FsYXIgPSAoYXhpcy5lbmRDb29yZCAtIG5vcm1hbGl6ZWRDb29yZHNbal0gKyBfTnVtYmVyJEVQU0lMT04pIC8gKGF4aXMuZW5kQ29vcmQgLSBheGlzLnBlYWtDb29yZCArIF9OdW1iZXIkRVBTSUxPTik7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyB0YWtlIHByb2R1Y3Qgb2YgYWxsIHRoZSBheGlzIHNjYWxhcnMKICAgICAgICBzY2FsYXIgKj0gYXhpc1NjYWxhcjsKICAgICAgfQoKICAgICAgYmxlbmRWZWN0b3JbbWFzdGVyXSA9IHNjYWxhcjsKICAgIH0KCiAgICB0aGlzLmJsZW5kVmVjdG9ycy5zZXQodmFyRGF0YSwgYmxlbmRWZWN0b3IpOwogICAgcmV0dXJuIGJsZW5kVmVjdG9yOwogIH07CgogIHJldHVybiBHbHlwaFZhcmlhdGlvblByb2Nlc3NvcjsKfSgpOwoKdmFyIFN1YnNldCA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBTdWJzZXQoZm9udCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFN1YnNldCk7CgogICAgdGhpcy5mb250ID0gZm9udDsKICAgIHRoaXMuZ2x5cGhzID0gW107CiAgICB0aGlzLm1hcHBpbmcgPSB7fTsKCiAgICAvLyBhbHdheXMgaW5jbHVkZSB0aGUgbWlzc2luZyBnbHlwaAogICAgdGhpcy5pbmNsdWRlR2x5cGgoMCk7CiAgfQoKICBTdWJzZXQucHJvdG90eXBlLmluY2x1ZGVHbHlwaCA9IGZ1bmN0aW9uIGluY2x1ZGVHbHlwaChnbHlwaCkgewogICAgaWYgKCh0eXBlb2YgZ2x5cGggPT09ICd1bmRlZmluZWQnID8gJ3VuZGVmaW5lZCcgOiBfdHlwZW9mKGdseXBoKSkgPT09ICdvYmplY3QnKSB7CiAgICAgIGdseXBoID0gZ2x5cGguaWQ7CiAgICB9CgogICAgaWYgKHRoaXMubWFwcGluZ1tnbHlwaF0gPT0gbnVsbCkgewogICAgICB0aGlzLmdseXBocy5wdXNoKGdseXBoKTsKICAgICAgdGhpcy5tYXBwaW5nW2dseXBoXSA9IHRoaXMuZ2x5cGhzLmxlbmd0aCAtIDE7CiAgICB9CgogICAgcmV0dXJuIHRoaXMubWFwcGluZ1tnbHlwaF07CiAgfTsKCiAgU3Vic2V0LnByb3RvdHlwZS5lbmNvZGVTdHJlYW0gPSBmdW5jdGlvbiBlbmNvZGVTdHJlYW0oKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgIHZhciBzID0gbmV3IHIuRW5jb2RlU3RyZWFtKCk7CgogICAgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgIF90aGlzLmVuY29kZShzKTsKICAgICAgcmV0dXJuIHMuZW5kKCk7CiAgICB9KTsKCiAgICByZXR1cm4gczsKICB9OwoKICByZXR1cm4gU3Vic2V0Owp9KCk7CgovLyBGbGFncyBmb3Igc2ltcGxlIGdseXBocwp2YXIgT05fQ1VSVkUkMSA9IDEgPDwgMDsKdmFyIFhfU0hPUlRfVkVDVE9SJDEgPSAxIDw8IDE7CnZhciBZX1NIT1JUX1ZFQ1RPUiQxID0gMSA8PCAyOwp2YXIgUkVQRUFUJDEgPSAxIDw8IDM7CnZhciBTQU1FX1gkMSA9IDEgPDwgNDsKdmFyIFNBTUVfWSQxID0gMSA8PCA1OwoKdmFyIFBvaW50JDEgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gUG9pbnQoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUG9pbnQpOwogIH0KCiAgUG9pbnQuc2l6ZSA9IGZ1bmN0aW9uIHNpemUodmFsKSB7CiAgICByZXR1cm4gdmFsID49IDAgJiYgdmFsIDw9IDI1NSA/IDEgOiAyOwogIH07CgogIFBvaW50LmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShzdHJlYW0sIHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPj0gMCAmJiB2YWx1ZSA8PSAyNTUpIHsKICAgICAgc3RyZWFtLndyaXRlVUludDgodmFsdWUpOwogICAgfSBlbHNlIHsKICAgICAgc3RyZWFtLndyaXRlSW50MTZCRSh2YWx1ZSk7CiAgICB9CiAgfTsKCiAgcmV0dXJuIFBvaW50Owp9KCk7Cgp2YXIgR2x5ZiA9IG5ldyByLlN0cnVjdCh7CiAgbnVtYmVyT2ZDb250b3Vyczogci5pbnQxNiwgLy8gaWYgbmVnYXRpdmUsIHRoaXMgaXMgYSBjb21wb3NpdGUgZ2x5cGgKICB4TWluOiByLmludDE2LAogIHlNaW46IHIuaW50MTYsCiAgeE1heDogci5pbnQxNiwKICB5TWF4OiByLmludDE2LAogIGVuZFB0c09mQ29udG91cnM6IG5ldyByLkFycmF5KHIudWludDE2LCAnbnVtYmVyT2ZDb250b3VycycpLAogIGluc3RydWN0aW9uczogbmV3IHIuQXJyYXkoci51aW50OCwgci51aW50MTYpLAogIGZsYWdzOiBuZXcgci5BcnJheShyLnVpbnQ4LCAwKSwKICB4UG9pbnRzOiBuZXcgci5BcnJheShQb2ludCQxLCAwKSwKICB5UG9pbnRzOiBuZXcgci5BcnJheShQb2ludCQxLCAwKQp9KTsKCi8qKgogKiBFbmNvZGVzIFRydWVUeXBlIGdseXBoIG91dGxpbmVzCiAqLwoKdmFyIFRURkdseXBoRW5jb2RlciA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBUVEZHbHlwaEVuY29kZXIoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVFRGR2x5cGhFbmNvZGVyKTsKICB9CgogIFRURkdseXBoRW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlU2ltcGxlID0gZnVuY3Rpb24gZW5jb2RlU2ltcGxlKHBhdGgpIHsKICAgIHZhciBpbnN0cnVjdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IFtdOwoKICAgIHZhciBlbmRQdHNPZkNvbnRvdXJzID0gW107CiAgICB2YXIgeFBvaW50cyA9IFtdOwogICAgdmFyIHlQb2ludHMgPSBbXTsKICAgIHZhciBmbGFncyA9IFtdOwogICAgdmFyIHNhbWUgPSAwOwogICAgdmFyIGxhc3RYID0gMCwKICAgICAgICBsYXN0WSA9IDAsCiAgICAgICAgbGFzdEZsYWcgPSAwOwogICAgdmFyIHBvaW50Q291bnQgPSAwOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aC5jb21tYW5kcy5sZW5ndGg7IGkrKykgewogICAgICB2YXIgYyA9IHBhdGguY29tbWFuZHNbaV07CgogICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGMuYXJncy5sZW5ndGg7IGogKz0gMikgewogICAgICAgIHZhciB4ID0gYy5hcmdzW2pdOwogICAgICAgIHZhciB5ID0gYy5hcmdzW2ogKyAxXTsKICAgICAgICB2YXIgZmxhZyA9IDA7CgogICAgICAgIC8vIElmIHRoZSBlbmRpbmcgcG9pbnQgb2YgYSBxdWFkcmF0aWMgY3VydmUgaXMgdGhlIG1pZHBvaW50CiAgICAgICAgLy8gYmV0d2VlbiB0aGUgY29udHJvbCBwb2ludCBhbmQgdGhlIGNvbnRyb2wgcG9pbnQgb2YgdGhlIG5leHQKICAgICAgICAvLyBxdWFkcmF0aWMgY3VydmUsIHdlIGNhbiBvbWl0IHRoZSBlbmRpbmcgcG9pbnQuCiAgICAgICAgaWYgKGMuY29tbWFuZCA9PT0gJ3F1YWRyYXRpY0N1cnZlVG8nICYmIGogPT09IDIpIHsKICAgICAgICAgIHZhciBuZXh0ID0gcGF0aC5jb21tYW5kc1tpICsgMV07CiAgICAgICAgICBpZiAobmV4dCAmJiBuZXh0LmNvbW1hbmQgPT09ICdxdWFkcmF0aWNDdXJ2ZVRvJykgewogICAgICAgICAgICB2YXIgbWlkWCA9IChsYXN0WCArIG5leHQuYXJnc1swXSkgLyAyOwogICAgICAgICAgICB2YXIgbWlkWSA9IChsYXN0WSArIG5leHQuYXJnc1sxXSkgLyAyOwoKICAgICAgICAgICAgaWYgKHggPT09IG1pZFggJiYgeSA9PT0gbWlkWSkgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBBbGwgcG9pbnRzIGV4Y2VwdCBjb250cm9sIHBvaW50cyBhcmUgb24gY3VydmUuCiAgICAgICAgaWYgKCEoYy5jb21tYW5kID09PSAncXVhZHJhdGljQ3VydmVUbycgJiYgaiA9PT0gMCkpIHsKICAgICAgICAgIGZsYWcgfD0gT05fQ1VSVkUkMTsKICAgICAgICB9CgogICAgICAgIGZsYWcgPSB0aGlzLl9lbmNvZGVQb2ludCh4LCBsYXN0WCwgeFBvaW50cywgZmxhZywgWF9TSE9SVF9WRUNUT1IkMSwgU0FNRV9YJDEpOwogICAgICAgIGZsYWcgPSB0aGlzLl9lbmNvZGVQb2ludCh5LCBsYXN0WSwgeVBvaW50cywgZmxhZywgWV9TSE9SVF9WRUNUT1IkMSwgU0FNRV9ZJDEpOwoKICAgICAgICBpZiAoZmxhZyA9PT0gbGFzdEZsYWcgJiYgc2FtZSA8IDI1NSkgewogICAgICAgICAgZmxhZ3NbZmxhZ3MubGVuZ3RoIC0gMV0gfD0gUkVQRUFUJDE7CiAgICAgICAgICBzYW1lKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmIChzYW1lID4gMCkgewogICAgICAgICAgICBmbGFncy5wdXNoKHNhbWUpOwogICAgICAgICAgICBzYW1lID0gMDsKICAgICAgICAgIH0KCiAgICAgICAgICBmbGFncy5wdXNoKGZsYWcpOwogICAgICAgICAgbGFzdEZsYWcgPSBmbGFnOwogICAgICAgIH0KCiAgICAgICAgbGFzdFggPSB4OwogICAgICAgIGxhc3RZID0geTsKICAgICAgICBwb2ludENvdW50Kys7CiAgICAgIH0KCiAgICAgIGlmIChjLmNvbW1hbmQgPT09ICdjbG9zZVBhdGgnKSB7CiAgICAgICAgZW5kUHRzT2ZDb250b3Vycy5wdXNoKHBvaW50Q291bnQgLSAxKTsKICAgICAgfQogICAgfQoKICAgIC8vIENsb3NlIHRoZSBwYXRoIGlmIHRoZSBsYXN0IGNvbW1hbmQgZGlkbid0IGFscmVhZHkKICAgIGlmIChwYXRoLmNvbW1hbmRzLmxlbmd0aCA+IDEgJiYgcGF0aC5jb21tYW5kc1twYXRoLmNvbW1hbmRzLmxlbmd0aCAtIDFdLmNvbW1hbmQgIT09ICdjbG9zZVBhdGgnKSB7CiAgICAgIGVuZFB0c09mQ29udG91cnMucHVzaChwb2ludENvdW50IC0gMSk7CiAgICB9CgogICAgdmFyIGJib3ggPSBwYXRoLmJib3g7CiAgICB2YXIgZ2x5ZiA9IHsKICAgICAgbnVtYmVyT2ZDb250b3VyczogZW5kUHRzT2ZDb250b3Vycy5sZW5ndGgsCiAgICAgIHhNaW46IGJib3gubWluWCwKICAgICAgeU1pbjogYmJveC5taW5ZLAogICAgICB4TWF4OiBiYm94Lm1heFgsCiAgICAgIHlNYXg6IGJib3gubWF4WSwKICAgICAgZW5kUHRzT2ZDb250b3VyczogZW5kUHRzT2ZDb250b3VycywKICAgICAgaW5zdHJ1Y3Rpb25zOiBpbnN0cnVjdGlvbnMsCiAgICAgIGZsYWdzOiBmbGFncywKICAgICAgeFBvaW50czogeFBvaW50cywKICAgICAgeVBvaW50czogeVBvaW50cwogICAgfTsKCiAgICB2YXIgc2l6ZSA9IEdseWYuc2l6ZShnbHlmKTsKICAgIHZhciB0YWlsID0gNCAtIHNpemUgJSA0OwoKICAgIHZhciBzdHJlYW0gPSBuZXcgci5FbmNvZGVTdHJlYW0oc2l6ZSArIHRhaWwpOwogICAgR2x5Zi5lbmNvZGUoc3RyZWFtLCBnbHlmKTsKCiAgICAvLyBBbGlnbiB0byA0LWJ5dGUgbGVuZ3RoCiAgICBpZiAodGFpbCAhPT0gMCkgewogICAgICBzdHJlYW0uZmlsbCgwLCB0YWlsKTsKICAgIH0KCiAgICByZXR1cm4gc3RyZWFtLmJ1ZmZlcjsKICB9OwoKICBUVEZHbHlwaEVuY29kZXIucHJvdG90eXBlLl9lbmNvZGVQb2ludCA9IGZ1bmN0aW9uIF9lbmNvZGVQb2ludCh2YWx1ZSwgbGFzdCwgcG9pbnRzLCBmbGFnLCBzaG9ydEZsYWcsIHNhbWVGbGFnKSB7CiAgICB2YXIgZGlmZiA9IHZhbHVlIC0gbGFzdDsKCiAgICBpZiAodmFsdWUgPT09IGxhc3QpIHsKICAgICAgZmxhZyB8PSBzYW1lRmxhZzsKICAgIH0gZWxzZSB7CiAgICAgIGlmICgtMjU1IDw9IGRpZmYgJiYgZGlmZiA8PSAyNTUpIHsKICAgICAgICBmbGFnIHw9IHNob3J0RmxhZzsKICAgICAgICBpZiAoZGlmZiA8IDApIHsKICAgICAgICAgIGRpZmYgPSAtZGlmZjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZmxhZyB8PSBzYW1lRmxhZzsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHBvaW50cy5wdXNoKGRpZmYpOwogICAgfQoKICAgIHJldHVybiBmbGFnOwogIH07CgogIHJldHVybiBUVEZHbHlwaEVuY29kZXI7Cn0oKTsKCnZhciBUVEZTdWJzZXQgPSBmdW5jdGlvbiAoX1N1YnNldCkgewogIF9pbmhlcml0cyhUVEZTdWJzZXQsIF9TdWJzZXQpOwoKICBmdW5jdGlvbiBUVEZTdWJzZXQoZm9udCkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRURlN1YnNldCk7CgogICAgdmFyIF90aGlzID0gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX1N1YnNldC5jYWxsKHRoaXMsIGZvbnQpKTsKCiAgICBfdGhpcy5nbHlwaEVuY29kZXIgPSBuZXcgVFRGR2x5cGhFbmNvZGVyKCk7CiAgICByZXR1cm4gX3RoaXM7CiAgfQoKICBUVEZTdWJzZXQucHJvdG90eXBlLl9hZGRHbHlwaCA9IGZ1bmN0aW9uIF9hZGRHbHlwaChnaWQpIHsKICAgIHZhciBnbHlwaCA9IHRoaXMuZm9udC5nZXRHbHlwaChnaWQpOwogICAgdmFyIGdseWYgPSBnbHlwaC5fZGVjb2RlKCk7CgogICAgLy8gZ2V0IHRoZSBvZmZzZXQgdG8gdGhlIGdseXBoIGZyb20gdGhlIGxvY2EgdGFibGUKICAgIHZhciBjdXJPZmZzZXQgPSB0aGlzLmZvbnQubG9jYS5vZmZzZXRzW2dpZF07CiAgICB2YXIgbmV4dE9mZnNldCA9IHRoaXMuZm9udC5sb2NhLm9mZnNldHNbZ2lkICsgMV07CgogICAgdmFyIHN0cmVhbSA9IHRoaXMuZm9udC5fZ2V0VGFibGVTdHJlYW0oJ2dseWYnKTsKICAgIHN0cmVhbS5wb3MgKz0gY3VyT2Zmc2V0OwoKICAgIHZhciBidWZmZXIgPSBzdHJlYW0ucmVhZEJ1ZmZlcihuZXh0T2Zmc2V0IC0gY3VyT2Zmc2V0KTsKCiAgICAvLyBpZiBpdCBpcyBhIGNvbXBvdW5kIGdseXBoLCBpbmNsdWRlIGl0cyBjb21wb25lbnRzCiAgICBpZiAoZ2x5ZiAmJiBnbHlmLm51bWJlck9mQ29udG91cnMgPCAwKSB7CiAgICAgIGJ1ZmZlciA9IG5ldyBCdWZmZXIoYnVmZmVyKTsKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gZ2x5Zi5jb21wb25lbnRzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgICB2YXIgX3JlZjsKCiAgICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgY29tcG9uZW50ID0gX3JlZjsKCiAgICAgICAgZ2lkID0gdGhpcy5pbmNsdWRlR2x5cGgoY29tcG9uZW50LmdseXBoSUQpOwogICAgICAgIGJ1ZmZlci53cml0ZVVJbnQxNkJFKGdpZCwgY29tcG9uZW50LnBvcyk7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoZ2x5ZiAmJiB0aGlzLmZvbnQuX3ZhcmlhdGlvblByb2Nlc3NvcikgewogICAgICAvLyBJZiB0aGlzIGlzIGEgVHJ1ZVR5cGUgdmFyaWF0aW9uIGdseXBoLCByZS1lbmNvZGUgdGhlIHBhdGgKICAgICAgYnVmZmVyID0gdGhpcy5nbHlwaEVuY29kZXIuZW5jb2RlU2ltcGxlKGdseXBoLnBhdGgsIGdseWYuaW5zdHJ1Y3Rpb25zKTsKICAgIH0KCiAgICB0aGlzLmdseWYucHVzaChidWZmZXIpOwogICAgdGhpcy5sb2NhLm9mZnNldHMucHVzaCh0aGlzLm9mZnNldCk7CgogICAgdGhpcy5obXR4Lm1ldHJpY3MucHVzaCh7CiAgICAgIGFkdmFuY2U6IGdseXBoLmFkdmFuY2VXaWR0aCwKICAgICAgYmVhcmluZzogZ2x5cGguX2dldE1ldHJpY3MoKS5sZWZ0QmVhcmluZwogICAgfSk7CgogICAgdGhpcy5vZmZzZXQgKz0gYnVmZmVyLmxlbmd0aDsKICAgIHJldHVybiB0aGlzLmdseWYubGVuZ3RoIC0gMTsKICB9OwoKICBUVEZTdWJzZXQucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uIGVuY29kZShzdHJlYW0pIHsKICAgIC8vIHRhYmxlcyByZXF1aXJlZCBieSBQREYgc3BlYzoKICAgIC8vICAgaGVhZCwgaGhlYSwgbG9jYSwgbWF4cCwgY3Z0ICwgcHJlcCwgZ2x5ZiwgaG10eCwgZnBnbQogICAgLy8KICAgIC8vIGFkZGl0aW9uYWwgdGFibGVzIHJlcXVpcmVkIGZvciBzdGFuZGFsb25lIGZvbnRzOgogICAgLy8gICBuYW1lLCBjbWFwLCBPUy8yLCBwb3N0CgogICAgdGhpcy5nbHlmID0gW107CiAgICB0aGlzLm9mZnNldCA9IDA7CiAgICB0aGlzLmxvY2EgPSB7CiAgICAgIG9mZnNldHM6IFtdCiAgICB9OwoKICAgIHRoaXMuaG10eCA9IHsKICAgICAgbWV0cmljczogW10sCiAgICAgIGJlYXJpbmdzOiBbXQogICAgfTsKCiAgICAvLyBpbmNsdWRlIGFsbCB0aGUgZ2x5cGhzCiAgICAvLyBub3QgdXNpbmcgYSBmb3IgbG9vcCBiZWNhdXNlIHdlIG5lZWQgdG8gc3VwcG9ydCBhZGRpbmcgbW9yZQogICAgLy8gZ2x5cGhzIHRvIHRoZSBhcnJheSBhcyB3ZSBnbywgYW5kIENvZmZlZVNjcmlwdCBjYWNoZXMgdGhlIGxlbmd0aC4KICAgIHZhciBpID0gMDsKICAgIHdoaWxlIChpIDwgdGhpcy5nbHlwaHMubGVuZ3RoKSB7CiAgICAgIHRoaXMuX2FkZEdseXBoKHRoaXMuZ2x5cGhzW2krK10pOwogICAgfQoKICAgIHZhciBtYXhwID0gY2xvbmVEZWVwKHRoaXMuZm9udC5tYXhwKTsKICAgIG1heHAubnVtR2x5cGhzID0gdGhpcy5nbHlmLmxlbmd0aDsKCiAgICB0aGlzLmxvY2Eub2Zmc2V0cy5wdXNoKHRoaXMub2Zmc2V0KTsKICAgIHRhYmxlcy5sb2NhLnByZUVuY29kZS5jYWxsKHRoaXMubG9jYSk7CgogICAgdmFyIGhlYWQgPSBjbG9uZURlZXAodGhpcy5mb250LmhlYWQpOwogICAgaGVhZC5pbmRleFRvTG9jRm9ybWF0ID0gdGhpcy5sb2NhLnZlcnNpb247CgogICAgdmFyIGhoZWEgPSBjbG9uZURlZXAodGhpcy5mb250LmhoZWEpOwogICAgaGhlYS5udW1iZXJPZk1ldHJpY3MgPSB0aGlzLmhtdHgubWV0cmljcy5sZW5ndGg7CgogICAgLy8gbWFwID0gW10KICAgIC8vIGZvciBpbmRleCBpbiBbMC4uLjI1Nl0KICAgIC8vICAgICBpZiBpbmRleCA8IEBudW1HbHlwaHMKICAgIC8vICAgICAgICAgbWFwW2luZGV4XSA9IGluZGV4CiAgICAvLyAgICAgZWxzZQogICAgLy8gICAgICAgICBtYXBbaW5kZXhdID0gMAogICAgLy8KICAgIC8vIGNtYXBUYWJsZSA9CiAgICAvLyAgICAgdmVyc2lvbjogMAogICAgLy8gICAgIGxlbmd0aDogMjYyCiAgICAvLyAgICAgbGFuZ3VhZ2U6IDAKICAgIC8vICAgICBjb2RlTWFwOiBtYXAKICAgIC8vCiAgICAvLyBjbWFwID0KICAgIC8vICAgICB2ZXJzaW9uOiAwCiAgICAvLyAgICAgbnVtU3VidGFibGVzOiAxCiAgICAvLyAgICAgdGFibGVzOiBbCiAgICAvLyAgICAgICAgIHBsYXRmb3JtSUQ6IDEKICAgIC8vICAgICAgICAgZW5jb2RpbmdJRDogMAogICAgLy8gICAgICAgICB0YWJsZTogY21hcFRhYmxlCiAgICAvLyAgICAgXQoKICAgIC8vIFRPRE86IHN1YnNldCBwcmVwLCBjdnQsIGZwZ20/CiAgICBEaXJlY3RvcnkuZW5jb2RlKHN0cmVhbSwgewogICAgICB0YWJsZXM6IHsKICAgICAgICBoZWFkOiBoZWFkLAogICAgICAgIGhoZWE6IGhoZWEsCiAgICAgICAgbG9jYTogdGhpcy5sb2NhLAogICAgICAgIG1heHA6IG1heHAsCiAgICAgICAgJ2N2dCAnOiB0aGlzLmZvbnRbJ2N2dCAnXSwKICAgICAgICBwcmVwOiB0aGlzLmZvbnQucHJlcCwKICAgICAgICBnbHlmOiB0aGlzLmdseWYsCiAgICAgICAgaG10eDogdGhpcy5obXR4LAogICAgICAgIGZwZ206IHRoaXMuZm9udC5mcGdtCgogICAgICAgIC8vIG5hbWU6IGNsb25lIEBmb250Lm5hbWUKICAgICAgICAvLyAnT1MvMic6IGNsb25lIEBmb250WydPUy8yJ10KICAgICAgICAvLyBwb3N0OiBjbG9uZSBAZm9udC5wb3N0CiAgICAgICAgLy8gY21hcDogY21hcAogICAgICB9CiAgICB9KTsKICB9OwoKICByZXR1cm4gVFRGU3Vic2V0Owp9KFN1YnNldCk7Cgp2YXIgQ0ZGU3Vic2V0ID0gZnVuY3Rpb24gKF9TdWJzZXQpIHsKICBfaW5oZXJpdHMoQ0ZGU3Vic2V0LCBfU3Vic2V0KTsKCiAgZnVuY3Rpb24gQ0ZGU3Vic2V0KGZvbnQpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBDRkZTdWJzZXQpOwoKICAgIHZhciBfdGhpcyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9TdWJzZXQuY2FsbCh0aGlzLCBmb250KSk7CgogICAgX3RoaXMuY2ZmID0gX3RoaXMuZm9udFsnQ0ZGICddOwogICAgaWYgKCFfdGhpcy5jZmYpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgYSBDRkYgRm9udCcpOwogICAgfQogICAgcmV0dXJuIF90aGlzOwogIH0KCiAgQ0ZGU3Vic2V0LnByb3RvdHlwZS5zdWJzZXRDaGFyc3RyaW5ncyA9IGZ1bmN0aW9uIHN1YnNldENoYXJzdHJpbmdzKCkgewogICAgdGhpcy5jaGFyc3RyaW5ncyA9IFtdOwogICAgdmFyIGdzdWJycyA9IHt9OwoKICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHRoaXMuZ2x5cGhzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgdmFyIF9yZWY7CgogICAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pdGVyYXRvcltfaSsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgaWYgKF9pLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgICAgfQoKICAgICAgdmFyIGdpZCA9IF9yZWY7CgogICAgICB0aGlzLmNoYXJzdHJpbmdzLnB1c2godGhpcy5jZmYuZ2V0Q2hhclN0cmluZyhnaWQpKTsKCiAgICAgIHZhciBnbHlwaCA9IHRoaXMuZm9udC5nZXRHbHlwaChnaWQpOwogICAgICB2YXIgcGF0aCA9IGdseXBoLnBhdGg7IC8vIHRoaXMgY2F1c2VzIHRoZSBnbHlwaCB0byBiZSBwYXJzZWQKCiAgICAgIGZvciAodmFyIHN1YnIgaW4gZ2x5cGguX3VzZWRHc3VicnMpIHsKICAgICAgICBnc3VicnNbc3Vicl0gPSB0cnVlOwogICAgICB9CiAgICB9CgogICAgdGhpcy5nc3VicnMgPSB0aGlzLnN1YnNldFN1YnJzKHRoaXMuY2ZmLmdsb2JhbFN1YnJJbmRleCwgZ3N1YnJzKTsKICB9OwoKICBDRkZTdWJzZXQucHJvdG90eXBlLnN1YnNldFN1YnJzID0gZnVuY3Rpb24gc3Vic2V0U3VicnMoc3VicnMsIHVzZWQpIHsKICAgIHZhciByZXMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3VicnMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIHN1YnIgPSBzdWJyc1tpXTsKICAgICAgaWYgKHVzZWRbaV0pIHsKICAgICAgICB0aGlzLmNmZi5zdHJlYW0ucG9zID0gc3Vici5vZmZzZXQ7CiAgICAgICAgcmVzLnB1c2godGhpcy5jZmYuc3RyZWFtLnJlYWRCdWZmZXIoc3Vici5sZW5ndGgpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXMucHVzaChuZXcgQnVmZmVyKFsxMV0pKTsgLy8gcmV0dXJuCiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gcmVzOwogIH07CgogIENGRlN1YnNldC5wcm90b3R5cGUuc3Vic2V0Rm9udGRpY3QgPSBmdW5jdGlvbiBzdWJzZXRGb250ZGljdCh0b3BEaWN0KSB7CiAgICB0b3BEaWN0LkZEQXJyYXkgPSBbXTsKICAgIHRvcERpY3QuRkRTZWxlY3QgPSB7CiAgICAgIHZlcnNpb246IDAsCiAgICAgIGZkczogW10KICAgIH07CgogICAgdmFyIHVzZWRfZmRzID0ge307CiAgICB2YXIgdXNlZF9zdWJycyA9IFtdOwogICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IHRoaXMuZ2x5cGhzLCBfaXNBcnJheTIgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjIpLCBfaTIgPSAwLCBfaXRlcmF0b3IyID0gX2lzQXJyYXkyID8gX2l0ZXJhdG9yMiA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IyKTs7KSB7CiAgICAgIHZhciBfcmVmMjsKCiAgICAgIGlmIChfaXNBcnJheTIpIHsKICAgICAgICBpZiAoX2kyID49IF9pdGVyYXRvcjIubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmMiA9IF9pdGVyYXRvcjJbX2kyKytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pMiA9IF9pdGVyYXRvcjIubmV4dCgpOwogICAgICAgIGlmIChfaTIuZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZjIgPSBfaTIudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBnaWQgPSBfcmVmMjsKCiAgICAgIHZhciBmZCA9IHRoaXMuY2ZmLmZkRm9yR2x5cGgoZ2lkKTsKICAgICAgaWYgKGZkID09IG51bGwpIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQoKICAgICAgaWYgKCF1c2VkX2Zkc1tmZF0pIHsKICAgICAgICB0b3BEaWN0LkZEQXJyYXkucHVzaChfT2JqZWN0JGFzc2lnbih7fSwgdGhpcy5jZmYudG9wRGljdC5GREFycmF5W2ZkXSkpOwogICAgICAgIHVzZWRfc3VicnMucHVzaCh7fSk7CiAgICAgIH0KCiAgICAgIHVzZWRfZmRzW2ZkXSA9IHRydWU7CiAgICAgIHRvcERpY3QuRkRTZWxlY3QuZmRzLnB1c2godG9wRGljdC5GREFycmF5Lmxlbmd0aCAtIDEpOwoKICAgICAgdmFyIGdseXBoID0gdGhpcy5mb250LmdldEdseXBoKGdpZCk7CiAgICAgIHZhciBwYXRoID0gZ2x5cGgucGF0aDsgLy8gdGhpcyBjYXVzZXMgdGhlIGdseXBoIHRvIGJlIHBhcnNlZAogICAgICBmb3IgKHZhciBzdWJyIGluIGdseXBoLl91c2VkU3VicnMpIHsKICAgICAgICB1c2VkX3N1YnJzW3VzZWRfc3VicnMubGVuZ3RoIC0gMV1bc3Vicl0gPSB0cnVlOwogICAgICB9CiAgICB9CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b3BEaWN0LkZEQXJyYXkubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGRpY3QgPSB0b3BEaWN0LkZEQXJyYXlbaV07CiAgICAgIGRlbGV0ZSBkaWN0LkZvbnROYW1lOwogICAgICBpZiAoZGljdC5Qcml2YXRlICYmIGRpY3QuUHJpdmF0ZS5TdWJycykgewogICAgICAgIGRpY3QuUHJpdmF0ZSA9IF9PYmplY3QkYXNzaWduKHt9LCBkaWN0LlByaXZhdGUpOwogICAgICAgIGRpY3QuUHJpdmF0ZS5TdWJycyA9IHRoaXMuc3Vic2V0U3VicnMoZGljdC5Qcml2YXRlLlN1YnJzLCB1c2VkX3N1YnJzW2ldKTsKICAgICAgfQogICAgfQoKICAgIHJldHVybjsKICB9OwoKICBDRkZTdWJzZXQucHJvdG90eXBlLmNyZWF0ZUNJREZvbnRkaWN0ID0gZnVuY3Rpb24gY3JlYXRlQ0lERm9udGRpY3QodG9wRGljdCkgewogICAgdmFyIHVzZWRfc3VicnMgPSB7fTsKICAgIGZvciAodmFyIF9pdGVyYXRvcjMgPSB0aGlzLmdseXBocywgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMyk7OykgewogICAgICB2YXIgX3JlZjM7CgogICAgICBpZiAoX2lzQXJyYXkzKSB7CiAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjMgPSBfaXRlcmF0b3IzW19pMysrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTsKICAgICAgICBpZiAoX2kzLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYzID0gX2kzLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgZ2lkID0gX3JlZjM7CgogICAgICB2YXIgZ2x5cGggPSB0aGlzLmZvbnQuZ2V0R2x5cGgoZ2lkKTsKICAgICAgdmFyIHBhdGggPSBnbHlwaC5wYXRoOyAvLyB0aGlzIGNhdXNlcyB0aGUgZ2x5cGggdG8gYmUgcGFyc2VkCgogICAgICBmb3IgKHZhciBzdWJyIGluIGdseXBoLl91c2VkU3VicnMpIHsKICAgICAgICB1c2VkX3N1YnJzW3N1YnJdID0gdHJ1ZTsKICAgICAgfQogICAgfQoKICAgIHZhciBwcml2YXRlRGljdCA9IF9PYmplY3QkYXNzaWduKHt9LCB0aGlzLmNmZi50b3BEaWN0LlByaXZhdGUpOwogICAgcHJpdmF0ZURpY3QuU3VicnMgPSB0aGlzLnN1YnNldFN1YnJzKHRoaXMuY2ZmLnRvcERpY3QuUHJpdmF0ZS5TdWJycywgdXNlZF9zdWJycyk7CgogICAgdG9wRGljdC5GREFycmF5ID0gW3sgUHJpdmF0ZTogcHJpdmF0ZURpY3QgfV07CiAgICByZXR1cm4gdG9wRGljdC5GRFNlbGVjdCA9IHsKICAgICAgdmVyc2lvbjogMywKICAgICAgblJhbmdlczogMSwKICAgICAgcmFuZ2VzOiBbeyBmaXJzdDogMCwgZmQ6IDAgfV0sCiAgICAgIHNlbnRpbmVsOiB0aGlzLmNoYXJzdHJpbmdzLmxlbmd0aAogICAgfTsKICB9OwoKICBDRkZTdWJzZXQucHJvdG90eXBlLmFkZFN0cmluZyA9IGZ1bmN0aW9uIGFkZFN0cmluZyhzdHJpbmcpIHsKICAgIGlmICghc3RyaW5nKSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIGlmICghdGhpcy5zdHJpbmdzKSB7CiAgICAgIHRoaXMuc3RyaW5ncyA9IFtdOwogICAgfQoKICAgIHRoaXMuc3RyaW5ncy5wdXNoKHN0cmluZyk7CiAgICByZXR1cm4gc3RhbmRhcmRTdHJpbmdzLmxlbmd0aCArIHRoaXMuc3RyaW5ncy5sZW5ndGggLSAxOwogIH07CgogIENGRlN1YnNldC5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24gZW5jb2RlKHN0cmVhbSkgewogICAgdGhpcy5zdWJzZXRDaGFyc3RyaW5ncygpOwoKICAgIHZhciBjaGFyc2V0ID0gewogICAgICB2ZXJzaW9uOiB0aGlzLmNoYXJzdHJpbmdzLmxlbmd0aCA+IDI1NSA/IDIgOiAxLAogICAgICByYW5nZXM6IFt7IGZpcnN0OiAxLCBuTGVmdDogdGhpcy5jaGFyc3RyaW5ncy5sZW5ndGggLSAyIH1dCiAgICB9OwoKICAgIHZhciB0b3BEaWN0ID0gX09iamVjdCRhc3NpZ24oe30sIHRoaXMuY2ZmLnRvcERpY3QpOwogICAgdG9wRGljdC5Qcml2YXRlID0gbnVsbDsKICAgIHRvcERpY3QuY2hhcnNldCA9IGNoYXJzZXQ7CiAgICB0b3BEaWN0LkVuY29kaW5nID0gbnVsbDsKICAgIHRvcERpY3QuQ2hhclN0cmluZ3MgPSB0aGlzLmNoYXJzdHJpbmdzOwoKICAgIHZhciBfYXJyID0gWyd2ZXJzaW9uJywgJ05vdGljZScsICdDb3B5cmlnaHQnLCAnRnVsbE5hbWUnLCAnRmFtaWx5TmFtZScsICdXZWlnaHQnLCAnUG9zdFNjcmlwdCcsICdCYXNlRm9udE5hbWUnLCAnRm9udE5hbWUnXTsKICAgIGZvciAodmFyIF9pNCA9IDA7IF9pNCA8IF9hcnIubGVuZ3RoOyBfaTQrKykgewogICAgICB2YXIga2V5ID0gX2FycltfaTRdOwogICAgICB0b3BEaWN0W2tleV0gPSB0aGlzLmFkZFN0cmluZyh0aGlzLmNmZi5zdHJpbmcodG9wRGljdFtrZXldKSk7CiAgICB9CgogICAgdG9wRGljdC5ST1MgPSBbdGhpcy5hZGRTdHJpbmcoJ0Fkb2JlJyksIHRoaXMuYWRkU3RyaW5nKCdJZGVudGl0eScpLCAwXTsKICAgIHRvcERpY3QuQ0lEQ291bnQgPSB0aGlzLmNoYXJzdHJpbmdzLmxlbmd0aDsKCiAgICBpZiAodGhpcy5jZmYuaXNDSURGb250KSB7CiAgICAgIHRoaXMuc3Vic2V0Rm9udGRpY3QodG9wRGljdCk7CiAgICB9IGVsc2UgewogICAgICB0aGlzLmNyZWF0ZUNJREZvbnRkaWN0KHRvcERpY3QpOwogICAgfQoKICAgIHZhciB0b3AgPSB7CiAgICAgIHZlcnNpb246IDEsCiAgICAgIGhkclNpemU6IHRoaXMuY2ZmLmhkclNpemUsCiAgICAgIG9mZlNpemU6IHRoaXMuY2ZmLmxlbmd0aCwKICAgICAgaGVhZGVyOiB0aGlzLmNmZi5oZWFkZXIsCiAgICAgIG5hbWVJbmRleDogW3RoaXMuY2ZmLnBvc3RzY3JpcHROYW1lXSwKICAgICAgdG9wRGljdEluZGV4OiBbdG9wRGljdF0sCiAgICAgIHN0cmluZ0luZGV4OiB0aGlzLnN0cmluZ3MsCiAgICAgIGdsb2JhbFN1YnJJbmRleDogdGhpcy5nc3VicnMKICAgIH07CgogICAgQ0ZGVG9wLmVuY29kZShzdHJlYW0sIHRvcCk7CiAgfTsKCiAgcmV0dXJuIENGRlN1YnNldDsKfShTdWJzZXQpOwoKdmFyIF9jbGFzczsKZnVuY3Rpb24gX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvcih0YXJnZXQsIHByb3BlcnR5LCBkZWNvcmF0b3JzLCBkZXNjcmlwdG9yLCBjb250ZXh0KSB7CiAgdmFyIGRlc2MgPSB7fTsKICBPYmplY3RbJ2tlJyArICd5cyddKGRlc2NyaXB0b3IpLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgZGVzY1trZXldID0gZGVzY3JpcHRvcltrZXldOwogIH0pOwogIGRlc2MuZW51bWVyYWJsZSA9ICEhZGVzYy5lbnVtZXJhYmxlOwogIGRlc2MuY29uZmlndXJhYmxlID0gISFkZXNjLmNvbmZpZ3VyYWJsZTsKCiAgaWYgKCd2YWx1ZScgaW4gZGVzYyB8fCBkZXNjLmluaXRpYWxpemVyKSB7CiAgICBkZXNjLndyaXRhYmxlID0gdHJ1ZTsKICB9CgogIGRlc2MgPSBkZWNvcmF0b3JzLnNsaWNlKCkucmV2ZXJzZSgpLnJlZHVjZShmdW5jdGlvbiAoZGVzYywgZGVjb3JhdG9yKSB7CiAgICByZXR1cm4gZGVjb3JhdG9yKHRhcmdldCwgcHJvcGVydHksIGRlc2MpIHx8IGRlc2M7CiAgfSwgZGVzYyk7CgogIGlmIChjb250ZXh0ICYmIGRlc2MuaW5pdGlhbGl6ZXIgIT09IHZvaWQgMCkgewogICAgZGVzYy52YWx1ZSA9IGRlc2MuaW5pdGlhbGl6ZXIgPyBkZXNjLmluaXRpYWxpemVyLmNhbGwoY29udGV4dCkgOiB2b2lkIDA7CiAgICBkZXNjLmluaXRpYWxpemVyID0gdW5kZWZpbmVkOwogIH0KCiAgaWYgKGRlc2MuaW5pdGlhbGl6ZXIgPT09IHZvaWQgMCkgewogICAgT2JqZWN0WydkZWZpbmUnICsgJ1Byb3BlcnR5J10odGFyZ2V0LCBwcm9wZXJ0eSwgZGVzYyk7CiAgICBkZXNjID0gbnVsbDsKICB9CgogIHJldHVybiBkZXNjOwp9CgovKioKICogVGhpcyBpcyB0aGUgYmFzZSBjbGFzcyBmb3IgYWxsIFNGTlQtYmFzZWQgZm9udCBmb3JtYXRzIGluIGZvbnRraXQuCiAqIEl0IHN1cHBvcnRzIFRydWVUeXBlLCBhbmQgUG9zdFNjcmlwdCBnbHlwaHMsIGFuZCBzZXZlcmFsIGNvbG9yIGdseXBoIGZvcm1hdHMuCiAqLwp2YXIgVFRGRm9udCA9IChfY2xhc3MgPSBmdW5jdGlvbiAoKSB7CiAgVFRGRm9udC5wcm9iZSA9IGZ1bmN0aW9uIHByb2JlKGJ1ZmZlcikgewogICAgdmFyIGZvcm1hdCA9IGJ1ZmZlci50b1N0cmluZygnYXNjaWknLCAwLCA0KTsKICAgIHJldHVybiBmb3JtYXQgPT09ICd0cnVlJyB8fCBmb3JtYXQgPT09ICdPVFRPJyB8fCBmb3JtYXQgPT09IFN0cmluZy5mcm9tQ2hhckNvZGUoMCwgMSwgMCwgMCk7CiAgfTsKCiAgZnVuY3Rpb24gVFRGRm9udChzdHJlYW0pIHsKICAgIHZhciB2YXJpYXRpb25Db29yZHMgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IG51bGw7CgogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRURkZvbnQpOwoKICAgIHRoaXMuc3RyZWFtID0gc3RyZWFtOwogICAgdGhpcy52YXJpYXRpb25Db29yZHMgPSB2YXJpYXRpb25Db29yZHM7CgogICAgdGhpcy5fZGlyZWN0b3J5UG9zID0gdGhpcy5zdHJlYW0ucG9zOwogICAgdGhpcy5fdGFibGVzID0ge307CiAgICB0aGlzLl9nbHlwaHMgPSB7fTsKICAgIHRoaXMuX2RlY29kZURpcmVjdG9yeSgpOwoKICAgIC8vIGRlZmluZSBwcm9wZXJ0aWVzIGZvciBlYWNoIHRhYmxlIHRvIGxhemlseSBwYXJzZQogICAgZm9yICh2YXIgdGFnIGluIHRoaXMuZGlyZWN0b3J5LnRhYmxlcykgewogICAgICB2YXIgdGFibGUgPSB0aGlzLmRpcmVjdG9yeS50YWJsZXNbdGFnXTsKICAgICAgaWYgKHRhYmxlc1t0YWddICYmIHRhYmxlLmxlbmd0aCA+IDApIHsKICAgICAgICBfT2JqZWN0JGRlZmluZVByb3BlcnR5KHRoaXMsIHRhZywgewogICAgICAgICAgZ2V0OiB0aGlzLl9nZXRUYWJsZS5iaW5kKHRoaXMsIHRhYmxlKQogICAgICAgIH0pOwogICAgICB9CiAgICB9CiAgfQoKICBUVEZGb250LnByb3RvdHlwZS5fZ2V0VGFibGUgPSBmdW5jdGlvbiBfZ2V0VGFibGUodGFibGUpIHsKICAgIGlmICghKHRhYmxlLnRhZyBpbiB0aGlzLl90YWJsZXMpKSB7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5fdGFibGVzW3RhYmxlLnRhZ10gPSB0aGlzLl9kZWNvZGVUYWJsZSh0YWJsZSk7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBpZiAoZm9udGtpdC5sb2dFcnJvcnMpIHsKICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGRlY29kaW5nIHRhYmxlICcgKyB0YWJsZS50YWcpOwogICAgICAgICAgY29uc29sZS5lcnJvcihlLnN0YWNrKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gdGhpcy5fdGFibGVzW3RhYmxlLnRhZ107CiAgfTsKCiAgVFRGRm9udC5wcm90b3R5cGUuX2dldFRhYmxlU3RyZWFtID0gZnVuY3Rpb24gX2dldFRhYmxlU3RyZWFtKHRhZykgewogICAgdmFyIHRhYmxlID0gdGhpcy5kaXJlY3RvcnkudGFibGVzW3RhZ107CiAgICBpZiAodGFibGUpIHsKICAgICAgdGhpcy5zdHJlYW0ucG9zID0gdGFibGUub2Zmc2V0OwogICAgICByZXR1cm4gdGhpcy5zdHJlYW07CiAgICB9CgogICAgcmV0dXJuIG51bGw7CiAgfTsKCiAgVFRGRm9udC5wcm90b3R5cGUuX2RlY29kZURpcmVjdG9yeSA9IGZ1bmN0aW9uIF9kZWNvZGVEaXJlY3RvcnkoKSB7CiAgICByZXR1cm4gdGhpcy5kaXJlY3RvcnkgPSBEaXJlY3RvcnkuZGVjb2RlKHRoaXMuc3RyZWFtLCB7IF9zdGFydE9mZnNldDogMCB9KTsKICB9OwoKICBUVEZGb250LnByb3RvdHlwZS5fZGVjb2RlVGFibGUgPSBmdW5jdGlvbiBfZGVjb2RlVGFibGUodGFibGUpIHsKICAgIHZhciBwb3MgPSB0aGlzLnN0cmVhbS5wb3M7CgogICAgdmFyIHN0cmVhbSA9IHRoaXMuX2dldFRhYmxlU3RyZWFtKHRhYmxlLnRhZyk7CiAgICB2YXIgcmVzdWx0ID0gdGFibGVzW3RhYmxlLnRhZ10uZGVjb2RlKHN0cmVhbSwgdGhpcywgdGFibGUubGVuZ3RoKTsKCiAgICB0aGlzLnN0cmVhbS5wb3MgPSBwb3M7CiAgICByZXR1cm4gcmVzdWx0OwogIH07CgogIC8qKgogICAqIFRoZSB1bmlxdWUgUG9zdFNjcmlwdCBuYW1lIGZvciB0aGlzIGZvbnQKICAgKiBAdHlwZSB7c3RyaW5nfQogICAqLwoKCiAgLyoqCiAgICogR2V0cyBhIHN0cmluZyBmcm9tIHRoZSBmb250J3MgYG5hbWVgIHRhYmxlCiAgICogYGxhbmdgIGlzIGEgQkNQLTQ3IGxhbmd1YWdlIGNvZGUuCiAgICogQHJldHVybiB7c3RyaW5nfQogICAqLwogIFRURkZvbnQucHJvdG90eXBlLmdldE5hbWUgPSBmdW5jdGlvbiBnZXROYW1lKGtleSkgewogICAgdmFyIGxhbmcgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6ICdlbic7CgogICAgdmFyIHJlY29yZCA9IHRoaXMubmFtZS5yZWNvcmRzW2tleV07CiAgICBpZiAocmVjb3JkKSB7CiAgICAgIHJldHVybiByZWNvcmRbbGFuZ107CiAgICB9CgogICAgcmV0dXJuIG51bGw7CiAgfTsKCiAgLyoqCiAgICogVGhlIGZvbnQncyBmdWxsIG5hbWUsIGUuZy4gIkhlbHZldGljYSBCb2xkIgogICAqIEB0eXBlIHtzdHJpbmd9CiAgICovCgoKICAvKioKICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMgZ2x5cGggaW4gdGhlIGZvbnQgZm9yIHRoZSBnaXZlbiB1bmljb2RlIGNvZGUgcG9pbnQuCiAgICoKICAgKiBAcGFyYW0ge251bWJlcn0gY29kZVBvaW50CiAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgKi8KICBUVEZGb250LnByb3RvdHlwZS5oYXNHbHlwaEZvckNvZGVQb2ludCA9IGZ1bmN0aW9uIGhhc0dseXBoRm9yQ29kZVBvaW50KGNvZGVQb2ludCkgewogICAgcmV0dXJuICEhdGhpcy5fY21hcFByb2Nlc3Nvci5sb29rdXAoY29kZVBvaW50KTsKICB9OwoKICAvKioKICAgKiBNYXBzIGEgc2luZ2xlIHVuaWNvZGUgY29kZSBwb2ludCB0byBhIEdseXBoIG9iamVjdC4KICAgKiBEb2VzIG5vdCBwZXJmb3JtIGFueSBhZHZhbmNlZCBzdWJzdGl0dXRpb25zICh0aGVyZSBpcyBubyBjb250ZXh0IHRvIGRvIHNvKS4KICAgKgogICAqIEBwYXJhbSB7bnVtYmVyfSBjb2RlUG9pbnQKICAgKiBAcmV0dXJuIHtHbHlwaH0KICAgKi8KCgogIFRURkZvbnQucHJvdG90eXBlLmdseXBoRm9yQ29kZVBvaW50ID0gZnVuY3Rpb24gZ2x5cGhGb3JDb2RlUG9pbnQoY29kZVBvaW50KSB7CiAgICByZXR1cm4gdGhpcy5nZXRHbHlwaCh0aGlzLl9jbWFwUHJvY2Vzc29yLmxvb2t1cChjb2RlUG9pbnQpLCBbY29kZVBvaW50XSk7CiAgfTsKCiAgLyoqCiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBHbHlwaCBvYmplY3RzIGZvciB0aGUgZ2l2ZW4gc3RyaW5nLgogICAqIFRoaXMgaXMgb25seSBhIG9uZS10by1vbmUgbWFwcGluZyBmcm9tIGNoYXJhY3RlcnMgdG8gZ2x5cGhzLgogICAqIEZvciBtb3N0IHVzZXMsIHlvdSBzaG91bGQgdXNlIGZvbnQubGF5b3V0IChkZXNjcmliZWQgYmVsb3cpLCB3aGljaAogICAqIHByb3ZpZGVzIGEgbXVjaCBtb3JlIGFkdmFuY2VkIG1hcHBpbmcgc3VwcG9ydGluZyBBQVQgYW5kIE9wZW5UeXBlIHNoYXBpbmcuCiAgICoKICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nCiAgICogQHJldHVybiB7R2x5cGhbXX0KICAgKi8KCgogIFRURkZvbnQucHJvdG90eXBlLmdseXBoc0ZvclN0cmluZyA9IGZ1bmN0aW9uIGdseXBoc0ZvclN0cmluZyhzdHJpbmcpIHsKICAgIHZhciBnbHlwaHMgPSBbXTsKICAgIHZhciBsZW4gPSBzdHJpbmcubGVuZ3RoOwogICAgdmFyIGlkeCA9IDA7CiAgICB2YXIgbGFzdCA9IC0xOwogICAgdmFyIHN0YXRlID0gLTE7CgogICAgd2hpbGUgKGlkeCA8PSBsZW4pIHsKICAgICAgdmFyIGNvZGUgPSAwOwogICAgICB2YXIgbmV4dFN0YXRlID0gMDsKCiAgICAgIGlmIChpZHggPCBsZW4pIHsKICAgICAgICAvLyBEZWNvZGUgdGhlIG5leHQgY29kZXBvaW50IGZyb20gVVRGIDE2CiAgICAgICAgY29kZSA9IHN0cmluZy5jaGFyQ29kZUF0KGlkeCsrKTsKICAgICAgICBpZiAoMHhkODAwIDw9IGNvZGUgJiYgY29kZSA8PSAweGRiZmYgJiYgaWR4IDwgbGVuKSB7CiAgICAgICAgICB2YXIgbmV4dCA9IHN0cmluZy5jaGFyQ29kZUF0KGlkeCk7CiAgICAgICAgICBpZiAoMHhkYzAwIDw9IG5leHQgJiYgbmV4dCA8PSAweGRmZmYpIHsKICAgICAgICAgICAgaWR4Kys7CiAgICAgICAgICAgIGNvZGUgPSAoKGNvZGUgJiAweDNmZikgPDwgMTApICsgKG5leHQgJiAweDNmZikgKyAweDEwMDAwOwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgbmV4dCBzdGF0ZTogMSBpZiB0aGUgbmV4dCBjb2RlcG9pbnQgaXMgYSB2YXJpYXRpb24gc2VsZWN0b3IsIDAgb3RoZXJ3aXNlLgogICAgICAgIG5leHRTdGF0ZSA9IDB4ZmUwMCA8PSBjb2RlICYmIGNvZGUgPD0gMHhmZTBmIHx8IDB4ZTAxMDAgPD0gY29kZSAmJiBjb2RlIDw9IDB4ZTAxZWYgPyAxIDogMDsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZHgrKzsKICAgICAgfQoKICAgICAgaWYgKHN0YXRlID09PSAwICYmIG5leHRTdGF0ZSA9PT0gMSkgewogICAgICAgIC8vIFZhcmlhdGlvbiBzZWxlY3RvciBmb2xsb3dpbmcgbm9ybWFsIGNvZGVwb2ludC4KICAgICAgICBnbHlwaHMucHVzaCh0aGlzLmdldEdseXBoKHRoaXMuX2NtYXBQcm9jZXNzb3IubG9va3VwKGxhc3QsIGNvZGUpLCBbbGFzdCwgY29kZV0pKTsKICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gMCAmJiBuZXh0U3RhdGUgPT09IDApIHsKICAgICAgICAvLyBOb3JtYWwgY29kZXBvaW50IGZvbGxvd2luZyBub3JtYWwgY29kZXBvaW50LgogICAgICAgIGdseXBocy5wdXNoKHRoaXMuZ2x5cGhGb3JDb2RlUG9pbnQobGFzdCkpOwogICAgICB9CgogICAgICBsYXN0ID0gY29kZTsKICAgICAgc3RhdGUgPSBuZXh0U3RhdGU7CiAgICB9CgogICAgcmV0dXJuIGdseXBoczsKICB9OwoKICAvKioKICAgKiBSZXR1cm5zIGEgR2x5cGhSdW4gb2JqZWN0LCB3aGljaCBpbmNsdWRlcyBhbiBhcnJheSBvZiBHbHlwaHMgYW5kIEdseXBoUG9zaXRpb25zIGZvciB0aGUgZ2l2ZW4gc3RyaW5nLgogICAqCiAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZwogICAqIEBwYXJhbSB7c3RyaW5nW119IFt1c2VyRmVhdHVyZXNdCiAgICogQHBhcmFtIHtzdHJpbmd9IFtzY3JpcHRdCiAgICogQHBhcmFtIHtzdHJpbmd9IFtsYW5ndWFnZV0KICAgKiBAcGFyYW0ge3N0cmluZ30gW2RpcmVjdGlvbl0KICAgKiBAcmV0dXJuIHtHbHlwaFJ1bn0KICAgKi8KICBUVEZGb250LnByb3RvdHlwZS5sYXlvdXQgPSBmdW5jdGlvbiBsYXlvdXQoc3RyaW5nLCB1c2VyRmVhdHVyZXMsIHNjcmlwdCwgbGFuZ3VhZ2UsIGRpcmVjdGlvbikgewogICAgcmV0dXJuIHRoaXMuX2xheW91dEVuZ2luZS5sYXlvdXQoc3RyaW5nLCB1c2VyRmVhdHVyZXMsIHNjcmlwdCwgbGFuZ3VhZ2UsIGRpcmVjdGlvbik7CiAgfTsKCiAgLyoqCiAgICogUmV0dXJucyBhbiBhcnJheSBvZiBzdHJpbmdzIHRoYXQgbWFwIHRvIHRoZSBnaXZlbiBnbHlwaCBpZC4KICAgKiBAcGFyYW0ge251bWJlcn0gZ2lkIC0gZ2x5cGggaWQKICAgKi8KCgogIFRURkZvbnQucHJvdG90eXBlLnN0cmluZ3NGb3JHbHlwaCA9IGZ1bmN0aW9uIHN0cmluZ3NGb3JHbHlwaChnaWQpIHsKICAgIHJldHVybiB0aGlzLl9sYXlvdXRFbmdpbmUuc3RyaW5nc0ZvckdseXBoKGdpZCk7CiAgfTsKCiAgLyoqCiAgICogQW4gYXJyYXkgb2YgYWxsIFtPcGVuVHlwZSBmZWF0dXJlIHRhZ3NdKGh0dHBzOi8vd3d3Lm1pY3Jvc29mdC5jb20vdHlwb2dyYXBoeS9vdHNwZWMvZmVhdHVyZXRhZ3MuaHRtKQogICAqIChvciBtYXBwZWQgQUFUIHRhZ3MpIHN1cHBvcnRlZCBieSB0aGUgZm9udC4KICAgKiBUaGUgZmVhdHVyZXMgcGFyYW1ldGVyIGlzIGFuIGFycmF5IG9mIE9wZW5UeXBlIGZlYXR1cmUgdGFncyB0byBiZSBhcHBsaWVkIGluIGFkZGl0aW9uIHRvIHRoZSBkZWZhdWx0IHNldC4KICAgKiBJZiB0aGlzIGlzIGFuIEFBVCBmb250LCB0aGUgT3BlblR5cGUgZmVhdHVyZSB0YWdzIGFyZSBtYXBwZWQgdG8gQUFUIGZlYXR1cmVzLgogICAqCiAgICogQHR5cGUge3N0cmluZ1tdfQogICAqLwoKCiAgVFRGRm9udC5wcm90b3R5cGUuZ2V0QXZhaWxhYmxlRmVhdHVyZXMgPSBmdW5jdGlvbiBnZXRBdmFpbGFibGVGZWF0dXJlcyhzY3JpcHQsIGxhbmd1YWdlKSB7CiAgICByZXR1cm4gdGhpcy5fbGF5b3V0RW5naW5lLmdldEF2YWlsYWJsZUZlYXR1cmVzKHNjcmlwdCwgbGFuZ3VhZ2UpOwogIH07CgogIFRURkZvbnQucHJvdG90eXBlLl9nZXRCYXNlR2x5cGggPSBmdW5jdGlvbiBfZ2V0QmFzZUdseXBoKGdseXBoKSB7CiAgICB2YXIgY2hhcmFjdGVycyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogW107CgogICAgaWYgKCF0aGlzLl9nbHlwaHNbZ2x5cGhdKSB7CiAgICAgIGlmICh0aGlzLmRpcmVjdG9yeS50YWJsZXMuZ2x5ZikgewogICAgICAgIHRoaXMuX2dseXBoc1tnbHlwaF0gPSBuZXcgVFRGR2x5cGgoZ2x5cGgsIGNoYXJhY3RlcnMsIHRoaXMpOwogICAgICB9IGVsc2UgaWYgKHRoaXMuZGlyZWN0b3J5LnRhYmxlc1snQ0ZGICddIHx8IHRoaXMuZGlyZWN0b3J5LnRhYmxlcy5DRkYyKSB7CiAgICAgICAgdGhpcy5fZ2x5cGhzW2dseXBoXSA9IG5ldyBDRkZHbHlwaChnbHlwaCwgY2hhcmFjdGVycywgdGhpcyk7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gdGhpcy5fZ2x5cGhzW2dseXBoXSB8fCBudWxsOwogIH07CgogIC8qKgogICAqIFJldHVybnMgYSBnbHlwaCBvYmplY3QgZm9yIHRoZSBnaXZlbiBnbHlwaCBpZC4KICAgKiBZb3UgY2FuIHBhc3MgdGhlIGFycmF5IG9mIGNvZGUgcG9pbnRzIHRoaXMgZ2x5cGggcmVwcmVzZW50cyBmb3IKICAgKiB5b3VyIHVzZSBsYXRlciwgYW5kIGl0IHdpbGwgYmUgc3RvcmVkIGluIHRoZSBnbHlwaCBvYmplY3QuCiAgICoKICAgKiBAcGFyYW0ge251bWJlcn0gZ2x5cGgKICAgKiBAcGFyYW0ge251bWJlcltdfSBjaGFyYWN0ZXJzCiAgICogQHJldHVybiB7R2x5cGh9CiAgICovCgoKICBUVEZGb250LnByb3RvdHlwZS5nZXRHbHlwaCA9IGZ1bmN0aW9uIGdldEdseXBoKGdseXBoKSB7CiAgICB2YXIgY2hhcmFjdGVycyA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogW107CgogICAgaWYgKCF0aGlzLl9nbHlwaHNbZ2x5cGhdKSB7CiAgICAgIGlmICh0aGlzLmRpcmVjdG9yeS50YWJsZXMuc2JpeCkgewogICAgICAgIHRoaXMuX2dseXBoc1tnbHlwaF0gPSBuZXcgU0JJWEdseXBoKGdseXBoLCBjaGFyYWN0ZXJzLCB0aGlzKTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmRpcmVjdG9yeS50YWJsZXMuQ09MUiAmJiB0aGlzLmRpcmVjdG9yeS50YWJsZXMuQ1BBTCkgewogICAgICAgIHRoaXMuX2dseXBoc1tnbHlwaF0gPSBuZXcgQ09MUkdseXBoKGdseXBoLCBjaGFyYWN0ZXJzLCB0aGlzKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLl9nZXRCYXNlR2x5cGgoZ2x5cGgsIGNoYXJhY3RlcnMpOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIHRoaXMuX2dseXBoc1tnbHlwaF0gfHwgbnVsbDsKICB9OwoKICAvKioKICAgKiBSZXR1cm5zIGEgU3Vic2V0IGZvciB0aGlzIGZvbnQuCiAgICogQHJldHVybiB7U3Vic2V0fQogICAqLwoKCiAgVFRGRm9udC5wcm90b3R5cGUuY3JlYXRlU3Vic2V0ID0gZnVuY3Rpb24gY3JlYXRlU3Vic2V0KCkgewogICAgaWYgKHRoaXMuZGlyZWN0b3J5LnRhYmxlc1snQ0ZGICddKSB7CiAgICAgIHJldHVybiBuZXcgQ0ZGU3Vic2V0KHRoaXMpOwogICAgfQoKICAgIHJldHVybiBuZXcgVFRGU3Vic2V0KHRoaXMpOwogIH07CgogIC8qKgogICAqIFJldHVybnMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIGF2YWlsYWJsZSB2YXJpYXRpb24gYXhlcwogICAqIHRoYXQgdGhpcyBmb250IHN1cHBvcnRzLiBLZXlzIGFyZSBzZXR0aW5nIHRhZ3MsIGFuZCB2YWx1ZXMKICAgKiBjb250YWluIHRoZSBheGlzIG5hbWUsIHJhbmdlLCBhbmQgZGVmYXVsdCB2YWx1ZS4KICAgKgogICAqIEB0eXBlIHtvYmplY3R9CiAgICovCgoKICAvKioKICAgKiBSZXR1cm5zIGEgbmV3IGZvbnQgd2l0aCB0aGUgZ2l2ZW4gdmFyaWF0aW9uIHNldHRpbmdzIGFwcGxpZWQuCiAgICogU2V0dGluZ3MgY2FuIGVpdGhlciBiZSBhbiBpbnN0YW5jZSBuYW1lLCBvciBhbiBvYmplY3QgY29udGFpbmluZwogICAqIHZhcmlhdGlvbiB0YWdzIGFzIHNwZWNpZmllZCBieSB0aGUgYHZhcmlhdGlvbkF4ZXNgIHByb3BlcnR5LgogICAqCiAgICogQHBhcmFtIHtvYmplY3R9IHNldHRpbmdzCiAgICogQHJldHVybiB7VFRGRm9udH0KICAgKi8KICBUVEZGb250LnByb3RvdHlwZS5nZXRWYXJpYXRpb24gPSBmdW5jdGlvbiBnZXRWYXJpYXRpb24oc2V0dGluZ3MpIHsKICAgIGlmICghKHRoaXMuZGlyZWN0b3J5LnRhYmxlcy5mdmFyICYmICh0aGlzLmRpcmVjdG9yeS50YWJsZXMuZ3ZhciAmJiB0aGlzLmRpcmVjdG9yeS50YWJsZXMuZ2x5ZiB8fCB0aGlzLmRpcmVjdG9yeS50YWJsZXMuQ0ZGMikpKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignVmFyaWF0aW9ucyByZXF1aXJlIGEgZm9udCB3aXRoIHRoZSBmdmFyLCBndmFyIGFuZCBnbHlmLCBvciBDRkYyIHRhYmxlcy4nKTsKICAgIH0KCiAgICBpZiAodHlwZW9mIHNldHRpbmdzID09PSAnc3RyaW5nJykgewogICAgICBzZXR0aW5ncyA9IHRoaXMubmFtZWRWYXJpYXRpb25zW3NldHRpbmdzXTsKICAgIH0KCiAgICBpZiAoKHR5cGVvZiBzZXR0aW5ncyA9PT0gJ3VuZGVmaW5lZCcgPyAndW5kZWZpbmVkJyA6IF90eXBlb2Yoc2V0dGluZ3MpKSAhPT0gJ29iamVjdCcpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYXJpYXRpb24gc2V0dGluZ3MgbXVzdCBiZSBlaXRoZXIgYSB2YXJpYXRpb24gbmFtZSBvciBzZXR0aW5ncyBvYmplY3QuJyk7CiAgICB9CgogICAgLy8gbm9ybWFsaXplIHRoZSBjb29yZGluYXRlcwogICAgdmFyIGNvb3JkcyA9IHRoaXMuZnZhci5heGlzLm1hcChmdW5jdGlvbiAoYXhpcywgaSkgewogICAgICB2YXIgYXhpc1RhZyA9IGF4aXMuYXhpc1RhZy50cmltKCk7CiAgICAgIGlmIChheGlzVGFnIGluIHNldHRpbmdzKSB7CiAgICAgICAgcmV0dXJuIE1hdGgubWF4KGF4aXMubWluVmFsdWUsIE1hdGgubWluKGF4aXMubWF4VmFsdWUsIHNldHRpbmdzW2F4aXNUYWddKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGF4aXMuZGVmYXVsdFZhbHVlOwogICAgICB9CiAgICB9KTsKCiAgICB2YXIgc3RyZWFtID0gbmV3IHIuRGVjb2RlU3RyZWFtKHRoaXMuc3RyZWFtLmJ1ZmZlcik7CiAgICBzdHJlYW0ucG9zID0gdGhpcy5fZGlyZWN0b3J5UG9zOwoKICAgIHZhciBmb250ID0gbmV3IFRURkZvbnQoc3RyZWFtLCBjb29yZHMpOwogICAgZm9udC5fdGFibGVzID0gdGhpcy5fdGFibGVzOwoKICAgIHJldHVybiBmb250OwogIH07CgogIC8vIFN0YW5kYXJkaXplZCBmb3JtYXQgcGx1Z2luIEFQSQogIFRURkZvbnQucHJvdG90eXBlLmdldEZvbnQgPSBmdW5jdGlvbiBnZXRGb250KG5hbWUpIHsKICAgIHJldHVybiB0aGlzLmdldFZhcmlhdGlvbihuYW1lKTsKICB9OwoKICBfY3JlYXRlQ2xhc3MoVFRGRm9udCwgW3sKICAgIGtleTogJ3Bvc3RzY3JpcHROYW1lJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICB2YXIgbmFtZSA9IHRoaXMubmFtZS5yZWNvcmRzLnBvc3RzY3JpcHROYW1lOwogICAgICBpZiAobmFtZSkgewogICAgICAgIHZhciBsYW5nID0gX09iamVjdCRrZXlzKG5hbWUpWzBdOwogICAgICAgIHJldHVybiBuYW1lW2xhbmddOwogICAgICB9CgogICAgICByZXR1cm4gbnVsbDsKICAgIH0KICB9LCB7CiAgICBrZXk6ICdmdWxsTmFtZScsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZ2V0TmFtZSgnZnVsbE5hbWUnKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBmb250J3MgZmFtaWx5IG5hbWUsIGUuZy4gIkhlbHZldGljYSIKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnZmFtaWx5TmFtZScsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZ2V0TmFtZSgnZm9udEZhbWlseScpOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGZvbnQncyBzdWItZmFtaWx5LCBlLmcuICJCb2xkIi4KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnc3ViZmFtaWx5TmFtZScsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZ2V0TmFtZSgnZm9udFN1YmZhbWlseScpOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGZvbnQncyBjb3B5cmlnaHQgaW5mb3JtYXRpb24KICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnY29weXJpZ2h0JywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5nZXROYW1lKCdjb3B5cmlnaHQnKTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBmb250J3MgdmVyc2lvbiBudW1iZXIKICAgICAqIEB0eXBlIHtzdHJpbmd9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAndmVyc2lvbicsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuZ2V0TmFtZSgndmVyc2lvbicpOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGZvbnTigJlzIFthc2NlbmRlcl0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQXNjZW5kZXJfKHR5cG9ncmFwaHkpKQogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwoKICB9LCB7CiAgICBrZXk6ICdhc2NlbnQnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLmhoZWEuYXNjZW50OwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGZvbnTigJlzIFtkZXNjZW5kZXJdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Rlc2NlbmRlcikKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnZGVzY2VudCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIHRoaXMuaGhlYS5kZXNjZW50OwogICAgfQoKICAgIC8qKgogICAgICogVGhlIGFtb3VudCBvZiBzcGFjZSB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBiZXR3ZWVuIGxpbmVzCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCgogIH0sIHsKICAgIGtleTogJ2xpbmVHYXAnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLmhoZWEubGluZUdhcDsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBvZmZzZXQgZnJvbSB0aGUgbm9ybWFsIHVuZGVybGluZSBwb3NpdGlvbiB0aGF0IHNob3VsZCBiZSB1c2VkCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCgogIH0sIHsKICAgIGtleTogJ3VuZGVybGluZVBvc2l0aW9uJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5wb3N0LnVuZGVybGluZVBvc2l0aW9uOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIHdlaWdodCBvZiB0aGUgdW5kZXJsaW5lIHRoYXQgc2hvdWxkIGJlIHVzZWQKICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAndW5kZXJsaW5lVGhpY2tuZXNzJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5wb3N0LnVuZGVybGluZVRoaWNrbmVzczsKICAgIH0KCiAgICAvKioKICAgICAqIElmIHRoaXMgaXMgYW4gaXRhbGljIGZvbnQsIHRoZSBhbmdsZSB0aGUgY3Vyc29yIHNob3VsZCBiZSBkcmF3biBhdCB0byBtYXRjaCB0aGUgZm9udCBkZXNpZ24KICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnaXRhbGljQW5nbGUnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLnBvc3QuaXRhbGljQW5nbGU7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgaGVpZ2h0IG9mIGNhcGl0YWwgbGV0dGVycyBhYm92ZSB0aGUgYmFzZWxpbmUuCiAgICAgKiBTZWUgW2hlcmVdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NhcF9oZWlnaHQpIGZvciBtb3JlIGRldGFpbHMuCiAgICAgKiBAdHlwZSB7bnVtYmVyfQogICAgICovCgogIH0sIHsKICAgIGtleTogJ2NhcEhlaWdodCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgdmFyIG9zMiA9IHRoaXNbJ09TLzInXTsKICAgICAgcmV0dXJuIG9zMiA/IG9zMi5jYXBIZWlnaHQgOiB0aGlzLmFzY2VudDsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBoZWlnaHQgb2YgbG93ZXIgY2FzZSBsZXR0ZXJzIGluIHRoZSBmb250LgogICAgICogU2VlIFtoZXJlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9YLWhlaWdodCkgZm9yIG1vcmUgZGV0YWlscy4KICAgICAqIEB0eXBlIHtudW1iZXJ9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAneEhlaWdodCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgdmFyIG9zMiA9IHRoaXNbJ09TLzInXTsKICAgICAgcmV0dXJuIG9zMiA/IG9zMi54SGVpZ2h0IDogMDsKICAgIH0KCiAgICAvKioKICAgICAqIFRoZSBudW1iZXIgb2YgZ2x5cGhzIGluIHRoZSBmb250LgogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwoKICB9LCB7CiAgICBrZXk6ICdudW1HbHlwaHMnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLm1heHAubnVtR2x5cGhzOwogICAgfQoKICAgIC8qKgogICAgICogVGhlIHNpemUgb2YgdGhlIGZvbnTigJlzIGludGVybmFsIGNvb3JkaW5hdGUgZ3JpZAogICAgICogQHR5cGUge251bWJlcn0KICAgICAqLwoKICB9LCB7CiAgICBrZXk6ICd1bml0c1BlckVtJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5oZWFkLnVuaXRzUGVyRW07CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGUgZm9udOKAmXMgYm91bmRpbmcgYm94LCBpLmUuIHRoZSBib3ggdGhhdCBlbmNsb3NlcyBhbGwgZ2x5cGhzIGluIHRoZSBmb250LgogICAgICogQHR5cGUge0JCb3h9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnYmJveCcsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgcmV0dXJuIF9PYmplY3QkZnJlZXplKG5ldyBCQm94KHRoaXMuaGVhZC54TWluLCB0aGlzLmhlYWQueU1pbiwgdGhpcy5oZWFkLnhNYXgsIHRoaXMuaGVhZC55TWF4KSk7CiAgICB9CiAgfSwgewogICAga2V5OiAnX2NtYXBQcm9jZXNzb3InLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiBuZXcgQ21hcFByb2Nlc3Nvcih0aGlzLmNtYXApOwogICAgfQoKICAgIC8qKgogICAgICogQW4gYXJyYXkgb2YgYWxsIG9mIHRoZSB1bmljb2RlIGNvZGUgcG9pbnRzIHN1cHBvcnRlZCBieSB0aGUgZm9udC4KICAgICAqIEB0eXBlIHtudW1iZXJbXX0KICAgICAqLwoKICB9LCB7CiAgICBrZXk6ICdjaGFyYWN0ZXJTZXQnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiB0aGlzLl9jbWFwUHJvY2Vzc29yLmdldENoYXJhY3RlclNldCgpOwogICAgfQogIH0sIHsKICAgIGtleTogJ19sYXlvdXRFbmdpbmUnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHJldHVybiBuZXcgTGF5b3V0RW5naW5lKHRoaXMpOwogICAgfQogIH0sIHsKICAgIGtleTogJ2F2YWlsYWJsZUZlYXR1cmVzJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICByZXR1cm4gdGhpcy5fbGF5b3V0RW5naW5lLmdldEF2YWlsYWJsZUZlYXR1cmVzKCk7CiAgICB9CiAgfSwgewogICAga2V5OiAndmFyaWF0aW9uQXhlcycsCiAgICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHsKICAgICAgdmFyIHJlcyA9IHt9OwogICAgICBpZiAoIXRoaXMuZnZhcikgewogICAgICAgIHJldHVybiByZXM7CiAgICAgIH0KCiAgICAgIGZvciAodmFyIF9pdGVyYXRvciA9IHRoaXMuZnZhci5heGlzLCBfaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoX2l0ZXJhdG9yKSwgX2kgPSAwLCBfaXRlcmF0b3IgPSBfaXNBcnJheSA/IF9pdGVyYXRvciA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3IpOzspIHsKICAgICAgICB2YXIgX3JlZjsKCiAgICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgICBpZiAoX2kgPj0gX2l0ZXJhdG9yLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaSA9IF9pdGVyYXRvci5uZXh0KCk7CiAgICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgICAgfQoKICAgICAgICB2YXIgYXhpcyA9IF9yZWY7CgogICAgICAgIHJlc1theGlzLmF4aXNUYWcudHJpbSgpXSA9IHsKICAgICAgICAgIG5hbWU6IGF4aXMubmFtZS5lbiwKICAgICAgICAgIG1pbjogYXhpcy5taW5WYWx1ZSwKICAgICAgICAgIGRlZmF1bHQ6IGF4aXMuZGVmYXVsdFZhbHVlLAogICAgICAgICAgbWF4OiBheGlzLm1heFZhbHVlCiAgICAgICAgfTsKICAgICAgfQoKICAgICAgcmV0dXJuIHJlczsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIG5hbWVkIHZhcmlhdGlvbiBpbnN0YW5jZXMKICAgICAqIHRoYXQgdGhlIGZvbnQgZGVzaWduZXIgaGFzIHNwZWNpZmllZC4gS2V5cyBhcmUgdmFyaWF0aW9uIG5hbWVzCiAgICAgKiBhbmQgdmFsdWVzIGFyZSB0aGUgdmFyaWF0aW9uIHNldHRpbmdzIGZvciB0aGlzIGluc3RhbmNlLgogICAgICoKICAgICAqIEB0eXBlIHtvYmplY3R9CiAgICAgKi8KCiAgfSwgewogICAga2V5OiAnbmFtZWRWYXJpYXRpb25zJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICB2YXIgcmVzID0ge307CiAgICAgIGlmICghdGhpcy5mdmFyKSB7CiAgICAgICAgcmV0dXJuIHJlczsKICAgICAgfQoKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IHRoaXMuZnZhci5pbnN0YW5jZSwgX2lzQXJyYXkyID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IyKSwgX2kyID0gMCwgX2l0ZXJhdG9yMiA9IF9pc0FycmF5MiA/IF9pdGVyYXRvcjIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMik7OykgewogICAgICAgIHZhciBfcmVmMjsKCiAgICAgICAgaWYgKF9pc0FycmF5MikgewogICAgICAgICAgaWYgKF9pMiA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmMiA9IF9pdGVyYXRvcjJbX2kyKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTIgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgICAgIGlmIChfaTIuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmMiA9IF9pMi52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBpbnN0YW5jZSA9IF9yZWYyOwoKICAgICAgICB2YXIgc2V0dGluZ3MgPSB7fTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZnZhci5heGlzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgYXhpcyA9IHRoaXMuZnZhci5heGlzW2ldOwogICAgICAgICAgc2V0dGluZ3NbYXhpcy5heGlzVGFnLnRyaW0oKV0gPSBpbnN0YW5jZS5jb29yZFtpXTsKICAgICAgICB9CgogICAgICAgIHJlc1tpbnN0YW5jZS5uYW1lLmVuXSA9IHNldHRpbmdzOwogICAgICB9CgogICAgICByZXR1cm4gcmVzOwogICAgfQogIH0sIHsKICAgIGtleTogJ192YXJpYXRpb25Qcm9jZXNzb3InLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIGlmICghdGhpcy5mdmFyKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KCiAgICAgIHZhciB2YXJpYXRpb25Db29yZHMgPSB0aGlzLnZhcmlhdGlvbkNvb3JkczsKCiAgICAgIC8vIElnbm9yZSBpZiBubyB2YXJpYXRpb24gY29vcmRzIGFuZCBub3QgQ0ZGMgogICAgICBpZiAoIXZhcmlhdGlvbkNvb3JkcyAmJiAhdGhpcy5DRkYyKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KCiAgICAgIGlmICghdmFyaWF0aW9uQ29vcmRzKSB7CiAgICAgICAgdmFyaWF0aW9uQ29vcmRzID0gdGhpcy5mdmFyLmF4aXMubWFwKGZ1bmN0aW9uIChheGlzKSB7CiAgICAgICAgICByZXR1cm4gYXhpcy5kZWZhdWx0VmFsdWU7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIHJldHVybiBuZXcgR2x5cGhWYXJpYXRpb25Qcm9jZXNzb3IodGhpcywgdmFyaWF0aW9uQ29vcmRzKTsKICAgIH0KICB9XSk7CgogIHJldHVybiBUVEZGb250Owp9KCksIChfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yKF9jbGFzcy5wcm90b3R5cGUsICdiYm94JywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzLnByb3RvdHlwZSwgJ2Jib3gnKSwgX2NsYXNzLnByb3RvdHlwZSksIF9hcHBseURlY29yYXRlZERlc2NyaXB0b3IoX2NsYXNzLnByb3RvdHlwZSwgJ19jbWFwUHJvY2Vzc29yJywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzLnByb3RvdHlwZSwgJ19jbWFwUHJvY2Vzc29yJyksIF9jbGFzcy5wcm90b3R5cGUpLCBfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yKF9jbGFzcy5wcm90b3R5cGUsICdjaGFyYWN0ZXJTZXQnLCBbY2FjaGVdLCBfT2JqZWN0JGdldE93blByb3BlcnR5RGVzY3JpcHRvcihfY2xhc3MucHJvdG90eXBlLCAnY2hhcmFjdGVyU2V0JyksIF9jbGFzcy5wcm90b3R5cGUpLCBfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yKF9jbGFzcy5wcm90b3R5cGUsICdfbGF5b3V0RW5naW5lJywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzLnByb3RvdHlwZSwgJ19sYXlvdXRFbmdpbmUnKSwgX2NsYXNzLnByb3RvdHlwZSksIF9hcHBseURlY29yYXRlZERlc2NyaXB0b3IoX2NsYXNzLnByb3RvdHlwZSwgJ3ZhcmlhdGlvbkF4ZXMnLCBbY2FjaGVdLCBfT2JqZWN0JGdldE93blByb3BlcnR5RGVzY3JpcHRvcihfY2xhc3MucHJvdG90eXBlLCAndmFyaWF0aW9uQXhlcycpLCBfY2xhc3MucHJvdG90eXBlKSwgX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvcihfY2xhc3MucHJvdG90eXBlLCAnbmFtZWRWYXJpYXRpb25zJywgW2NhY2hlXSwgX09iamVjdCRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoX2NsYXNzLnByb3RvdHlwZSwgJ25hbWVkVmFyaWF0aW9ucycpLCBfY2xhc3MucHJvdG90eXBlKSwgX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvcihfY2xhc3MucHJvdG90eXBlLCAnX3ZhcmlhdGlvblByb2Nlc3NvcicsIFtjYWNoZV0sIF9PYmplY3QkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKF9jbGFzcy5wcm90b3R5cGUsICdfdmFyaWF0aW9uUHJvY2Vzc29yJyksIF9jbGFzcy5wcm90b3R5cGUpKSwgX2NsYXNzKTsKCnZhciBXT0ZGRGlyZWN0b3J5RW50cnkgPSBuZXcgci5TdHJ1Y3QoewogIHRhZzogbmV3IHIuU3RyaW5nKDQpLAogIG9mZnNldDogbmV3IHIuUG9pbnRlcihyLnVpbnQzMiwgJ3ZvaWQnLCB7IHR5cGU6ICdnbG9iYWwnIH0pLAogIGNvbXBMZW5ndGg6IHIudWludDMyLAogIGxlbmd0aDogci51aW50MzIsCiAgb3JpZ0NoZWNrc3VtOiByLnVpbnQzMgp9KTsKCnZhciBXT0ZGRGlyZWN0b3J5ID0gbmV3IHIuU3RydWN0KHsKICB0YWc6IG5ldyByLlN0cmluZyg0KSwgLy8gc2hvdWxkIGJlICd3T0ZGJwogIGZsYXZvcjogci51aW50MzIsCiAgbGVuZ3RoOiByLnVpbnQzMiwKICBudW1UYWJsZXM6IHIudWludDE2LAogIHJlc2VydmVkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQxNiksCiAgdG90YWxTZm50U2l6ZTogci51aW50MzIsCiAgbWFqb3JWZXJzaW9uOiByLnVpbnQxNiwKICBtaW5vclZlcnNpb246IHIudWludDE2LAogIG1ldGFPZmZzZXQ6IHIudWludDMyLAogIG1ldGFMZW5ndGg6IHIudWludDMyLAogIG1ldGFPcmlnTGVuZ3RoOiByLnVpbnQzMiwKICBwcml2T2Zmc2V0OiByLnVpbnQzMiwKICBwcml2TGVuZ3RoOiByLnVpbnQzMiwKICB0YWJsZXM6IG5ldyByLkFycmF5KFdPRkZEaXJlY3RvcnlFbnRyeSwgJ251bVRhYmxlcycpCn0pOwoKV09GRkRpcmVjdG9yeS5wcm9jZXNzID0gZnVuY3Rpb24gKCkgewogIHZhciB0YWJsZXMgPSB7fTsKICBmb3IgKHZhciBfaXRlcmF0b3IgPSB0aGlzLnRhYmxlcywgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICB2YXIgX3JlZjsKCiAgICBpZiAoX2lzQXJyYXkpIHsKICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgfSBlbHNlIHsKICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgIF9yZWYgPSBfaS52YWx1ZTsKICAgIH0KCiAgICB2YXIgdGFibGUgPSBfcmVmOwoKICAgIHRhYmxlc1t0YWJsZS50YWddID0gdGFibGU7CiAgfQoKICB0aGlzLnRhYmxlcyA9IHRhYmxlczsKfTsKCnZhciBXT0ZGRm9udCA9IGZ1bmN0aW9uIChfVFRGRm9udCkgewogIF9pbmhlcml0cyhXT0ZGRm9udCwgX1RURkZvbnQpOwoKICBmdW5jdGlvbiBXT0ZGRm9udCgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBXT0ZGRm9udCk7CgogICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9UVEZGb250LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykpOwogIH0KCiAgV09GRkZvbnQucHJvYmUgPSBmdW5jdGlvbiBwcm9iZShidWZmZXIpIHsKICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoJ2FzY2lpJywgMCwgNCkgPT09ICd3T0ZGJzsKICB9OwoKICBXT0ZGRm9udC5wcm90b3R5cGUuX2RlY29kZURpcmVjdG9yeSA9IGZ1bmN0aW9uIF9kZWNvZGVEaXJlY3RvcnkoKSB7CiAgICB0aGlzLmRpcmVjdG9yeSA9IFdPRkZEaXJlY3RvcnkuZGVjb2RlKHRoaXMuc3RyZWFtLCB7IF9zdGFydE9mZnNldDogMCB9KTsKICB9OwoKICBXT0ZGRm9udC5wcm90b3R5cGUuX2dldFRhYmxlU3RyZWFtID0gZnVuY3Rpb24gX2dldFRhYmxlU3RyZWFtKHRhZykgewogICAgdmFyIHRhYmxlID0gdGhpcy5kaXJlY3RvcnkudGFibGVzW3RhZ107CiAgICBpZiAodGFibGUpIHsKICAgICAgdGhpcy5zdHJlYW0ucG9zID0gdGFibGUub2Zmc2V0OwoKICAgICAgaWYgKHRhYmxlLmNvbXBMZW5ndGggPCB0YWJsZS5sZW5ndGgpIHsKICAgICAgICB0aGlzLnN0cmVhbS5wb3MgKz0gMjsgLy8gc2tpcCBkZWZsYXRlIGhlYWRlcgogICAgICAgIHZhciBvdXRCdWZmZXIgPSBuZXcgQnVmZmVyKHRhYmxlLmxlbmd0aCk7CiAgICAgICAgdmFyIGJ1ZiA9IGluZmxhdGUodGhpcy5zdHJlYW0ucmVhZEJ1ZmZlcih0YWJsZS5jb21wTGVuZ3RoIC0gMiksIG91dEJ1ZmZlcik7CiAgICAgICAgcmV0dXJuIG5ldyByLkRlY29kZVN0cmVhbShidWYpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB0aGlzLnN0cmVhbTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBudWxsOwogIH07CgogIHJldHVybiBXT0ZGRm9udDsKfShUVEZGb250KTsKCi8qKgogKiBSZXByZXNlbnRzIGEgVHJ1ZVR5cGUgZ2x5cGggaW4gdGhlIFdPRkYyIGZvcm1hdCwgd2hpY2ggY29tcHJlc3NlcyBnbHlwaHMgZGlmZmVyZW50bHkuCiAqLwoKdmFyIFdPRkYyR2x5cGggPSBmdW5jdGlvbiAoX1RURkdseXBoKSB7CiAgX2luaGVyaXRzKFdPRkYyR2x5cGgsIF9UVEZHbHlwaCk7CgogIGZ1bmN0aW9uIFdPRkYyR2x5cGgoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgV09GRjJHbHlwaCk7CgogICAgcmV0dXJuIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuKHRoaXMsIF9UVEZHbHlwaC5hcHBseSh0aGlzLCBhcmd1bWVudHMpKTsKICB9CgogIFdPRkYyR2x5cGgucHJvdG90eXBlLl9kZWNvZGUgPSBmdW5jdGlvbiBfZGVjb2RlKCkgewogICAgLy8gV2UgaGF2ZSB0byBkZWNvZGUgaW4gYWR2YW5jZSAoaW4gV09GRjJGb250KSwgc28ganVzdCByZXR1cm4gdGhlIHByZS1kZWNvZGVkIGRhdGEuCiAgICByZXR1cm4gdGhpcy5fZm9udC5fdHJhbnNmb3JtZWRHbHlwaHNbdGhpcy5pZF07CiAgfTsKCiAgV09GRjJHbHlwaC5wcm90b3R5cGUuX2dldENCb3ggPSBmdW5jdGlvbiBfZ2V0Q0JveCgpIHsKICAgIHJldHVybiB0aGlzLnBhdGguYmJveDsKICB9OwoKICByZXR1cm4gV09GRjJHbHlwaDsKfShUVEZHbHlwaCk7Cgp2YXIgQmFzZTEyOCA9IHsKICBkZWNvZGU6IGZ1bmN0aW9uIGRlY29kZShzdHJlYW0pIHsKICAgIHZhciByZXN1bHQgPSAwOwogICAgdmFyIGl0ZXJhYmxlID0gWzAsIDEsIDIsIDMsIDRdOwogICAgZm9yICh2YXIgaiA9IDA7IGogPCBpdGVyYWJsZS5sZW5ndGg7IGorKykgewogICAgICB2YXIgaSA9IGl0ZXJhYmxlW2pdOwogICAgICB2YXIgY29kZSA9IHN0cmVhbS5yZWFkVUludDgoKTsKCiAgICAgIC8vIElmIGFueSBvZiB0aGUgdG9wIHNldmVuIGJpdHMgYXJlIHNldCB0aGVuIHdlJ3JlIGFib3V0IHRvIG92ZXJmbG93LgogICAgICBpZiAocmVzdWx0ICYgMHhlMDAwMDAwMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignT3ZlcmZsb3cnKTsKICAgICAgfQoKICAgICAgcmVzdWx0ID0gcmVzdWx0IDw8IDcgfCBjb2RlICYgMHg3ZjsKICAgICAgaWYgKChjb2RlICYgMHg4MCkgPT09IDApIHsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICB9CgogICAgdGhyb3cgbmV3IEVycm9yKCdCYWQgYmFzZSAxMjggbnVtYmVyJyk7CiAgfQp9OwoKdmFyIGtub3duVGFncyA9IFsnY21hcCcsICdoZWFkJywgJ2hoZWEnLCAnaG10eCcsICdtYXhwJywgJ25hbWUnLCAnT1MvMicsICdwb3N0JywgJ2N2dCAnLCAnZnBnbScsICdnbHlmJywgJ2xvY2EnLCAncHJlcCcsICdDRkYgJywgJ1ZPUkcnLCAnRUJEVCcsICdFQkxDJywgJ2dhc3AnLCAnaGRteCcsICdrZXJuJywgJ0xUU0gnLCAnUENMVCcsICdWRE1YJywgJ3ZoZWEnLCAndm10eCcsICdCQVNFJywgJ0dERUYnLCAnR1BPUycsICdHU1VCJywgJ0VCU0MnLCAnSlNURicsICdNQVRIJywgJ0NCRFQnLCAnQ0JMQycsICdDT0xSJywgJ0NQQUwnLCAnU1ZHICcsICdzYml4JywgJ2FjbnQnLCAnYXZhcicsICdiZGF0JywgJ2Jsb2MnLCAnYnNsbicsICdjdmFyJywgJ2Zkc2MnLCAnZmVhdCcsICdmbXR4JywgJ2Z2YXInLCAnZ3ZhcicsICdoc3R5JywgJ2p1c3QnLCAnbGNhcicsICdtb3J0JywgJ21vcngnLCAnb3BiZCcsICdwcm9wJywgJ3RyYWsnLCAnWmFwZicsICdTaWxmJywgJ0dsYXQnLCAnR2xvYycsICdGZWF0JywgJ1NpbGwnXTsKCnZhciBXT0ZGMkRpcmVjdG9yeUVudHJ5ID0gbmV3IHIuU3RydWN0KHsKICBmbGFnczogci51aW50OCwKICBjdXN0b21UYWc6IG5ldyByLk9wdGlvbmFsKG5ldyByLlN0cmluZyg0KSwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiAodC5mbGFncyAmIDB4M2YpID09PSAweDNmOwogIH0pLAogIHRhZzogZnVuY3Rpb24gdGFnKHQpIHsKICAgIHJldHVybiB0LmN1c3RvbVRhZyB8fCBrbm93blRhZ3NbdC5mbGFncyAmIDB4M2ZdOwogIH0sIC8vIHx8ICgoKSA9PiB7IHRocm93IG5ldyBFcnJvcihgQmFkIHRhZzogJHtmbGFncyAmIDB4M2Z9YCk7IH0pKCk7IH0sCiAgbGVuZ3RoOiBCYXNlMTI4LAogIHRyYW5zZm9ybVZlcnNpb246IGZ1bmN0aW9uIHRyYW5zZm9ybVZlcnNpb24odCkgewogICAgcmV0dXJuIHQuZmxhZ3MgPj4+IDYgJiAweDAzOwogIH0sCiAgdHJhbnNmb3JtZWQ6IGZ1bmN0aW9uIHRyYW5zZm9ybWVkKHQpIHsKICAgIHJldHVybiB0LnRhZyA9PT0gJ2dseWYnIHx8IHQudGFnID09PSAnbG9jYScgPyB0LnRyYW5zZm9ybVZlcnNpb24gPT09IDAgOiB0LnRyYW5zZm9ybVZlcnNpb24gIT09IDA7CiAgfSwKICB0cmFuc2Zvcm1MZW5ndGg6IG5ldyByLk9wdGlvbmFsKEJhc2UxMjgsIGZ1bmN0aW9uICh0KSB7CiAgICByZXR1cm4gdC50cmFuc2Zvcm1lZDsKICB9KQp9KTsKCnZhciBXT0ZGMkRpcmVjdG9yeSA9IG5ldyByLlN0cnVjdCh7CiAgdGFnOiBuZXcgci5TdHJpbmcoNCksIC8vIHNob3VsZCBiZSAnd09GMicKICBmbGF2b3I6IHIudWludDMyLAogIGxlbmd0aDogci51aW50MzIsCiAgbnVtVGFibGVzOiByLnVpbnQxNiwKICByZXNlcnZlZDogbmV3IHIuUmVzZXJ2ZWQoci51aW50MTYpLAogIHRvdGFsU2ZudFNpemU6IHIudWludDMyLAogIHRvdGFsQ29tcHJlc3NlZFNpemU6IHIudWludDMyLAogIG1ham9yVmVyc2lvbjogci51aW50MTYsCiAgbWlub3JWZXJzaW9uOiByLnVpbnQxNiwKICBtZXRhT2Zmc2V0OiByLnVpbnQzMiwKICBtZXRhTGVuZ3RoOiByLnVpbnQzMiwKICBtZXRhT3JpZ0xlbmd0aDogci51aW50MzIsCiAgcHJpdk9mZnNldDogci51aW50MzIsCiAgcHJpdkxlbmd0aDogci51aW50MzIsCiAgdGFibGVzOiBuZXcgci5BcnJheShXT0ZGMkRpcmVjdG9yeUVudHJ5LCAnbnVtVGFibGVzJykKfSk7CgpXT0ZGMkRpcmVjdG9yeS5wcm9jZXNzID0gZnVuY3Rpb24gKCkgewogIHZhciB0YWJsZXMgPSB7fTsKICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMudGFibGVzLmxlbmd0aDsgaSsrKSB7CiAgICB2YXIgdGFibGUgPSB0aGlzLnRhYmxlc1tpXTsKICAgIHRhYmxlc1t0YWJsZS50YWddID0gdGFibGU7CiAgfQoKICByZXR1cm4gdGhpcy50YWJsZXMgPSB0YWJsZXM7Cn07CgovKioKICogU3ViY2xhc3Mgb2YgVFRGRm9udCB0aGF0IHJlcHJlc2VudHMgYSBUVEYvT1RGIGZvbnQgY29tcHJlc3NlZCBieSBXT0ZGMgogKiBTZWUgc3BlYyBoZXJlOiBodHRwOi8vd3d3LnczLm9yZy9UUi9XT0ZGMi8KICovCgp2YXIgV09GRjJGb250ID0gZnVuY3Rpb24gKF9UVEZGb250KSB7CiAgX2luaGVyaXRzKFdPRkYyRm9udCwgX1RURkZvbnQpOwoKICBmdW5jdGlvbiBXT0ZGMkZvbnQoKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgV09GRjJGb250KTsKCiAgICByZXR1cm4gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odGhpcywgX1RURkZvbnQuYXBwbHkodGhpcywgYXJndW1lbnRzKSk7CiAgfQoKICBXT0ZGMkZvbnQucHJvYmUgPSBmdW5jdGlvbiBwcm9iZShidWZmZXIpIHsKICAgIHJldHVybiBidWZmZXIudG9TdHJpbmcoJ2FzY2lpJywgMCwgNCkgPT09ICd3T0YyJzsKICB9OwoKICBXT0ZGMkZvbnQucHJvdG90eXBlLl9kZWNvZGVEaXJlY3RvcnkgPSBmdW5jdGlvbiBfZGVjb2RlRGlyZWN0b3J5KCkgewogICAgdGhpcy5kaXJlY3RvcnkgPSBXT0ZGMkRpcmVjdG9yeS5kZWNvZGUodGhpcy5zdHJlYW0pOwogICAgdGhpcy5fZGF0YVBvcyA9IHRoaXMuc3RyZWFtLnBvczsKICB9OwoKICBXT0ZGMkZvbnQucHJvdG90eXBlLl9kZWNvbXByZXNzID0gZnVuY3Rpb24gX2RlY29tcHJlc3MoKSB7CiAgICAvLyBkZWNvbXByZXNzIGRhdGEgYW5kIHNldHVwIHRhYmxlIG9mZnNldHMgaWYgd2UgaGF2ZW4ndCBhbHJlYWR5CiAgICBpZiAoIXRoaXMuX2RlY29tcHJlc3NlZCkgewogICAgICB0aGlzLnN0cmVhbS5wb3MgPSB0aGlzLl9kYXRhUG9zOwogICAgICB2YXIgYnVmZmVyID0gdGhpcy5zdHJlYW0ucmVhZEJ1ZmZlcih0aGlzLmRpcmVjdG9yeS50b3RhbENvbXByZXNzZWRTaXplKTsKCiAgICAgIHZhciBkZWNvbXByZXNzZWRTaXplID0gMDsKICAgICAgZm9yICh2YXIgdGFnIGluIHRoaXMuZGlyZWN0b3J5LnRhYmxlcykgewogICAgICAgIHZhciBlbnRyeSA9IHRoaXMuZGlyZWN0b3J5LnRhYmxlc1t0YWddOwogICAgICAgIGVudHJ5Lm9mZnNldCA9IGRlY29tcHJlc3NlZFNpemU7CiAgICAgICAgZGVjb21wcmVzc2VkU2l6ZSArPSBlbnRyeS50cmFuc2Zvcm1MZW5ndGggIT0gbnVsbCA/IGVudHJ5LnRyYW5zZm9ybUxlbmd0aCA6IGVudHJ5Lmxlbmd0aDsKICAgICAgfQoKICAgICAgdmFyIGRlY29tcHJlc3NlZCA9IGJyb3RsaShidWZmZXIsIGRlY29tcHJlc3NlZFNpemUpOwogICAgICBpZiAoIWRlY29tcHJlc3NlZCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgZGVjb2RpbmcgY29tcHJlc3NlZCBkYXRhIGluIFdPRkYyJyk7CiAgICAgIH0KCiAgICAgIHRoaXMuc3RyZWFtID0gbmV3IHIuRGVjb2RlU3RyZWFtKG5ldyBCdWZmZXIoZGVjb21wcmVzc2VkKSk7CiAgICAgIHRoaXMuX2RlY29tcHJlc3NlZCA9IHRydWU7CiAgICB9CiAgfTsKCiAgV09GRjJGb250LnByb3RvdHlwZS5fZGVjb2RlVGFibGUgPSBmdW5jdGlvbiBfZGVjb2RlVGFibGUodGFibGUpIHsKICAgIHRoaXMuX2RlY29tcHJlc3MoKTsKICAgIHJldHVybiBfVFRGRm9udC5wcm90b3R5cGUuX2RlY29kZVRhYmxlLmNhbGwodGhpcywgdGFibGUpOwogIH07CgogIC8vIE92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGdldCBhIGdseXBoIGFuZCByZXR1cm4gb3VyCiAgLy8gY3VzdG9tIHN1YmNsYXNzIGlmIHRoZXJlIGlzIGEgZ2x5ZiB0YWJsZS4KCgogIFdPRkYyRm9udC5wcm90b3R5cGUuX2dldEJhc2VHbHlwaCA9IGZ1bmN0aW9uIF9nZXRCYXNlR2x5cGgoZ2x5cGgpIHsKICAgIHZhciBjaGFyYWN0ZXJzID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBbXTsKCiAgICBpZiAoIXRoaXMuX2dseXBoc1tnbHlwaF0pIHsKICAgICAgaWYgKHRoaXMuZGlyZWN0b3J5LnRhYmxlcy5nbHlmICYmIHRoaXMuZGlyZWN0b3J5LnRhYmxlcy5nbHlmLnRyYW5zZm9ybWVkKSB7CiAgICAgICAgaWYgKCF0aGlzLl90cmFuc2Zvcm1lZEdseXBocykgewogICAgICAgICAgdGhpcy5fdHJhbnNmb3JtR2x5ZlRhYmxlKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9nbHlwaHNbZ2x5cGhdID0gbmV3IFdPRkYyR2x5cGgoZ2x5cGgsIGNoYXJhY3RlcnMsIHRoaXMpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBfVFRGRm9udC5wcm90b3R5cGUuX2dldEJhc2VHbHlwaC5jYWxsKHRoaXMsIGdseXBoLCBjaGFyYWN0ZXJzKTsKICAgICAgfQogICAgfQogIH07CgogIFdPRkYyRm9udC5wcm90b3R5cGUuX3RyYW5zZm9ybUdseWZUYWJsZSA9IGZ1bmN0aW9uIF90cmFuc2Zvcm1HbHlmVGFibGUoKSB7CiAgICB0aGlzLl9kZWNvbXByZXNzKCk7CiAgICB0aGlzLnN0cmVhbS5wb3MgPSB0aGlzLmRpcmVjdG9yeS50YWJsZXMuZ2x5Zi5vZmZzZXQ7CiAgICB2YXIgdGFibGUgPSBHbHlmVGFibGUuZGVjb2RlKHRoaXMuc3RyZWFtKTsKICAgIHZhciBnbHlwaHMgPSBbXTsKCiAgICBmb3IgKHZhciBpbmRleCA9IDA7IGluZGV4IDwgdGFibGUubnVtR2x5cGhzOyBpbmRleCsrKSB7CiAgICAgIHZhciBnbHlwaCA9IHt9OwogICAgICB2YXIgbkNvbnRvdXJzID0gdGFibGUubkNvbnRvdXJzLnJlYWRJbnQxNkJFKCk7CiAgICAgIGdseXBoLm51bWJlck9mQ29udG91cnMgPSBuQ29udG91cnM7CgogICAgICBpZiAobkNvbnRvdXJzID4gMCkgewogICAgICAgIC8vIHNpbXBsZSBnbHlwaAogICAgICAgIHZhciBuUG9pbnRzID0gW107CiAgICAgICAgdmFyIHRvdGFsUG9pbnRzID0gMDsKCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuQ29udG91cnM7IGkrKykgewogICAgICAgICAgdmFyIF9yID0gcmVhZDI1NVVJbnQxNih0YWJsZS5uUG9pbnRzKTsKICAgICAgICAgIHRvdGFsUG9pbnRzICs9IF9yOwogICAgICAgICAgblBvaW50cy5wdXNoKHRvdGFsUG9pbnRzKTsKICAgICAgICB9CgogICAgICAgIGdseXBoLnBvaW50cyA9IGRlY29kZVRyaXBsZXQodGFibGUuZmxhZ3MsIHRhYmxlLmdseXBocywgdG90YWxQb2ludHMpOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBuQ29udG91cnM7IF9pKyspIHsKICAgICAgICAgIGdseXBoLnBvaW50c1tuUG9pbnRzW19pXSAtIDFdLmVuZENvbnRvdXIgPSB0cnVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIGluc3RydWN0aW9uU2l6ZSA9IHJlYWQyNTVVSW50MTYodGFibGUuZ2x5cGhzKTsKICAgICAgfSBlbHNlIGlmIChuQ29udG91cnMgPCAwKSB7CiAgICAgICAgLy8gY29tcG9zaXRlIGdseXBoCiAgICAgICAgdmFyIGhhdmVJbnN0cnVjdGlvbnMgPSBUVEZHbHlwaC5wcm90b3R5cGUuX2RlY29kZUNvbXBvc2l0ZS5jYWxsKHsgX2ZvbnQ6IHRoaXMgfSwgZ2x5cGgsIHRhYmxlLmNvbXBvc2l0ZXMpOwogICAgICAgIGlmIChoYXZlSW5zdHJ1Y3Rpb25zKSB7CiAgICAgICAgICB2YXIgaW5zdHJ1Y3Rpb25TaXplID0gcmVhZDI1NVVJbnQxNih0YWJsZS5nbHlwaHMpOwogICAgICAgIH0KICAgICAgfQoKICAgICAgZ2x5cGhzLnB1c2goZ2x5cGgpOwogICAgfQoKICAgIHRoaXMuX3RyYW5zZm9ybWVkR2x5cGhzID0gZ2x5cGhzOwogIH07CgogIHJldHVybiBXT0ZGMkZvbnQ7Cn0oVFRGRm9udCk7Cgp2YXIgU3Vic3RyZWFtID0gZnVuY3Rpb24gKCkgewogIGZ1bmN0aW9uIFN1YnN0cmVhbShsZW5ndGgpIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBTdWJzdHJlYW0pOwoKICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoOwogICAgdGhpcy5fYnVmID0gbmV3IHIuQnVmZmVyKGxlbmd0aCk7CiAgfQoKICBTdWJzdHJlYW0ucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uIGRlY29kZShzdHJlYW0sIHBhcmVudCkgewogICAgcmV0dXJuIG5ldyByLkRlY29kZVN0cmVhbSh0aGlzLl9idWYuZGVjb2RlKHN0cmVhbSwgcGFyZW50KSk7CiAgfTsKCiAgcmV0dXJuIFN1YnN0cmVhbTsKfSgpOwoKLy8gVGhpcyBzdHJ1Y3QgcmVwcmVzZW50cyB0aGUgZW50aXJlIGdseWYgdGFibGUKCgp2YXIgR2x5ZlRhYmxlID0gbmV3IHIuU3RydWN0KHsKICB2ZXJzaW9uOiByLnVpbnQzMiwKICBudW1HbHlwaHM6IHIudWludDE2LAogIGluZGV4Rm9ybWF0OiByLnVpbnQxNiwKICBuQ29udG91clN0cmVhbVNpemU6IHIudWludDMyLAogIG5Qb2ludHNTdHJlYW1TaXplOiByLnVpbnQzMiwKICBmbGFnU3RyZWFtU2l6ZTogci51aW50MzIsCiAgZ2x5cGhTdHJlYW1TaXplOiByLnVpbnQzMiwKICBjb21wb3NpdGVTdHJlYW1TaXplOiByLnVpbnQzMiwKICBiYm94U3RyZWFtU2l6ZTogci51aW50MzIsCiAgaW5zdHJ1Y3Rpb25TdHJlYW1TaXplOiByLnVpbnQzMiwKICBuQ29udG91cnM6IG5ldyBTdWJzdHJlYW0oJ25Db250b3VyU3RyZWFtU2l6ZScpLAogIG5Qb2ludHM6IG5ldyBTdWJzdHJlYW0oJ25Qb2ludHNTdHJlYW1TaXplJyksCiAgZmxhZ3M6IG5ldyBTdWJzdHJlYW0oJ2ZsYWdTdHJlYW1TaXplJyksCiAgZ2x5cGhzOiBuZXcgU3Vic3RyZWFtKCdnbHlwaFN0cmVhbVNpemUnKSwKICBjb21wb3NpdGVzOiBuZXcgU3Vic3RyZWFtKCdjb21wb3NpdGVTdHJlYW1TaXplJyksCiAgYmJveGVzOiBuZXcgU3Vic3RyZWFtKCdiYm94U3RyZWFtU2l6ZScpLAogIGluc3RydWN0aW9uczogbmV3IFN1YnN0cmVhbSgnaW5zdHJ1Y3Rpb25TdHJlYW1TaXplJykKfSk7Cgp2YXIgV09SRF9DT0RFID0gMjUzOwp2YXIgT05FX01PUkVfQllURV9DT0RFMiA9IDI1NDsKdmFyIE9ORV9NT1JFX0JZVEVfQ09ERTEgPSAyNTU7CnZhciBMT1dFU1RfVV9DT0RFID0gMjUzOwoKZnVuY3Rpb24gcmVhZDI1NVVJbnQxNihzdHJlYW0pIHsKICB2YXIgY29kZSA9IHN0cmVhbS5yZWFkVUludDgoKTsKCiAgaWYgKGNvZGUgPT09IFdPUkRfQ09ERSkgewogICAgcmV0dXJuIHN0cmVhbS5yZWFkVUludDE2QkUoKTsKICB9CgogIGlmIChjb2RlID09PSBPTkVfTU9SRV9CWVRFX0NPREUxKSB7CiAgICByZXR1cm4gc3RyZWFtLnJlYWRVSW50OCgpICsgTE9XRVNUX1VfQ09ERTsKICB9CgogIGlmIChjb2RlID09PSBPTkVfTU9SRV9CWVRFX0NPREUyKSB7CiAgICByZXR1cm4gc3RyZWFtLnJlYWRVSW50OCgpICsgTE9XRVNUX1VfQ09ERSAqIDI7CiAgfQoKICByZXR1cm4gY29kZTsKfQoKZnVuY3Rpb24gd2l0aFNpZ24oZmxhZywgYmFzZXZhbCkgewogIHJldHVybiBmbGFnICYgMSA/IGJhc2V2YWwgOiAtYmFzZXZhbDsKfQoKZnVuY3Rpb24gZGVjb2RlVHJpcGxldChmbGFncywgZ2x5cGhzLCBuUG9pbnRzKSB7CiAgdmFyIHkgPSB2b2lkIDA7CiAgdmFyIHggPSB5ID0gMDsKICB2YXIgcmVzID0gW107CgogIGZvciAodmFyIGkgPSAwOyBpIDwgblBvaW50czsgaSsrKSB7CiAgICB2YXIgZHggPSAwLAogICAgICAgIGR5ID0gMDsKICAgIHZhciBmbGFnID0gZmxhZ3MucmVhZFVJbnQ4KCk7CiAgICB2YXIgb25DdXJ2ZSA9ICEoZmxhZyA+PiA3KTsKICAgIGZsYWcgJj0gMHg3ZjsKCiAgICBpZiAoZmxhZyA8IDEwKSB7CiAgICAgIGR4ID0gMDsKICAgICAgZHkgPSB3aXRoU2lnbihmbGFnLCAoKGZsYWcgJiAxNCkgPDwgNykgKyBnbHlwaHMucmVhZFVJbnQ4KCkpOwogICAgfSBlbHNlIGlmIChmbGFnIDwgMjApIHsKICAgICAgZHggPSB3aXRoU2lnbihmbGFnLCAoKGZsYWcgLSAxMCAmIDE0KSA8PCA3KSArIGdseXBocy5yZWFkVUludDgoKSk7CiAgICAgIGR5ID0gMDsKICAgIH0gZWxzZSBpZiAoZmxhZyA8IDg0KSB7CiAgICAgIHZhciBiMCA9IGZsYWcgLSAyMDsKICAgICAgdmFyIGIxID0gZ2x5cGhzLnJlYWRVSW50OCgpOwogICAgICBkeCA9IHdpdGhTaWduKGZsYWcsIDEgKyAoYjAgJiAweDMwKSArIChiMSA+PiA0KSk7CiAgICAgIGR5ID0gd2l0aFNpZ24oZmxhZyA+PiAxLCAxICsgKChiMCAmIDB4MGMpIDw8IDIpICsgKGIxICYgMHgwZikpOwogICAgfSBlbHNlIGlmIChmbGFnIDwgMTIwKSB7CiAgICAgIHZhciBiMCA9IGZsYWcgLSA4NDsKICAgICAgZHggPSB3aXRoU2lnbihmbGFnLCAxICsgKGIwIC8gMTIgPDwgOCkgKyBnbHlwaHMucmVhZFVJbnQ4KCkpOwogICAgICBkeSA9IHdpdGhTaWduKGZsYWcgPj4gMSwgMSArIChiMCAlIDEyID4+IDIgPDwgOCkgKyBnbHlwaHMucmVhZFVJbnQ4KCkpOwogICAgfSBlbHNlIGlmIChmbGFnIDwgMTI0KSB7CiAgICAgIHZhciBiMSA9IGdseXBocy5yZWFkVUludDgoKTsKICAgICAgdmFyIGIyID0gZ2x5cGhzLnJlYWRVSW50OCgpOwogICAgICBkeCA9IHdpdGhTaWduKGZsYWcsIChiMSA8PCA0KSArIChiMiA+PiA0KSk7CiAgICAgIGR5ID0gd2l0aFNpZ24oZmxhZyA+PiAxLCAoKGIyICYgMHgwZikgPDwgOCkgKyBnbHlwaHMucmVhZFVJbnQ4KCkpOwogICAgfSBlbHNlIHsKICAgICAgZHggPSB3aXRoU2lnbihmbGFnLCBnbHlwaHMucmVhZFVJbnQxNkJFKCkpOwogICAgICBkeSA9IHdpdGhTaWduKGZsYWcgPj4gMSwgZ2x5cGhzLnJlYWRVSW50MTZCRSgpKTsKICAgIH0KCiAgICB4ICs9IGR4OwogICAgeSArPSBkeTsKICAgIHJlcy5wdXNoKG5ldyBQb2ludChvbkN1cnZlLCBmYWxzZSwgeCwgeSkpOwogIH0KCiAgcmV0dXJuIHJlczsKfQoKdmFyIFRUQ0hlYWRlciA9IG5ldyByLlZlcnNpb25lZFN0cnVjdChyLnVpbnQzMiwgewogIDB4MDAwMTAwMDA6IHsKICAgIG51bUZvbnRzOiByLnVpbnQzMiwKICAgIG9mZnNldHM6IG5ldyByLkFycmF5KHIudWludDMyLCAnbnVtRm9udHMnKQogIH0sCiAgMHgwMDAyMDAwMDogewogICAgbnVtRm9udHM6IHIudWludDMyLAogICAgb2Zmc2V0czogbmV3IHIuQXJyYXkoci51aW50MzIsICdudW1Gb250cycpLAogICAgZHNpZ1RhZzogci51aW50MzIsCiAgICBkc2lnTGVuZ3RoOiByLnVpbnQzMiwKICAgIGRzaWdPZmZzZXQ6IHIudWludDMyCiAgfQp9KTsKCnZhciBUcnVlVHlwZUNvbGxlY3Rpb24gPSBmdW5jdGlvbiAoKSB7CiAgVHJ1ZVR5cGVDb2xsZWN0aW9uLnByb2JlID0gZnVuY3Rpb24gcHJvYmUoYnVmZmVyKSB7CiAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCdhc2NpaScsIDAsIDQpID09PSAndHRjZic7CiAgfTsKCiAgZnVuY3Rpb24gVHJ1ZVR5cGVDb2xsZWN0aW9uKHN0cmVhbSkgewogICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIFRydWVUeXBlQ29sbGVjdGlvbik7CgogICAgdGhpcy5zdHJlYW0gPSBzdHJlYW07CiAgICBpZiAoc3RyZWFtLnJlYWRTdHJpbmcoNCkgIT09ICd0dGNmJykgewogICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIFRydWVUeXBlIGNvbGxlY3Rpb24nKTsKICAgIH0KCiAgICB0aGlzLmhlYWRlciA9IFRUQ0hlYWRlci5kZWNvZGUoc3RyZWFtKTsKICB9CgogIFRydWVUeXBlQ29sbGVjdGlvbi5wcm90b3R5cGUuZ2V0Rm9udCA9IGZ1bmN0aW9uIGdldEZvbnQobmFtZSkgewogICAgZm9yICh2YXIgX2l0ZXJhdG9yID0gdGhpcy5oZWFkZXIub2Zmc2V0cywgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvciksIF9pID0gMCwgX2l0ZXJhdG9yID0gX2lzQXJyYXkgPyBfaXRlcmF0b3IgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yKTs7KSB7CiAgICAgIHZhciBfcmVmOwoKICAgICAgaWYgKF9pc0FycmF5KSB7CiAgICAgICAgaWYgKF9pID49IF9pdGVyYXRvci5sZW5ndGgpIGJyZWFrOwogICAgICAgIF9yZWYgPSBfaXRlcmF0b3JbX2krK107CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX2kgPSBfaXRlcmF0b3IubmV4dCgpOwogICAgICAgIGlmIChfaS5kb25lKSBicmVhazsKICAgICAgICBfcmVmID0gX2kudmFsdWU7CiAgICAgIH0KCiAgICAgIHZhciBvZmZzZXQgPSBfcmVmOwoKICAgICAgdmFyIHN0cmVhbSA9IG5ldyByLkRlY29kZVN0cmVhbSh0aGlzLnN0cmVhbS5idWZmZXIpOwogICAgICBzdHJlYW0ucG9zID0gb2Zmc2V0OwogICAgICB2YXIgZm9udCA9IG5ldyBUVEZGb250KHN0cmVhbSk7CiAgICAgIGlmIChmb250LnBvc3RzY3JpcHROYW1lID09PSBuYW1lKSB7CiAgICAgICAgcmV0dXJuIGZvbnQ7CiAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gbnVsbDsKICB9OwoKICBfY3JlYXRlQ2xhc3MoVHJ1ZVR5cGVDb2xsZWN0aW9uLCBbewogICAga2V5OiAnZm9udHMnLAogICAgZ2V0OiBmdW5jdGlvbiBnZXQoKSB7CiAgICAgIHZhciBmb250cyA9IFtdOwogICAgICBmb3IgKHZhciBfaXRlcmF0b3IyID0gdGhpcy5oZWFkZXIub2Zmc2V0cywgX2lzQXJyYXkyID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IyKSwgX2kyID0gMCwgX2l0ZXJhdG9yMiA9IF9pc0FycmF5MiA/IF9pdGVyYXRvcjIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMik7OykgewogICAgICAgIHZhciBfcmVmMjsKCiAgICAgICAgaWYgKF9pc0FycmF5MikgewogICAgICAgICAgaWYgKF9pMiA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmMiA9IF9pdGVyYXRvcjJbX2kyKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTIgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgICAgIGlmIChfaTIuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmMiA9IF9pMi52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciBvZmZzZXQgPSBfcmVmMjsKCiAgICAgICAgdmFyIHN0cmVhbSA9IG5ldyByLkRlY29kZVN0cmVhbSh0aGlzLnN0cmVhbS5idWZmZXIpOwogICAgICAgIHN0cmVhbS5wb3MgPSBvZmZzZXQ7CiAgICAgICAgZm9udHMucHVzaChuZXcgVFRGRm9udChzdHJlYW0pKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGZvbnRzOwogICAgfQogIH1dKTsKCiAgcmV0dXJuIFRydWVUeXBlQ29sbGVjdGlvbjsKfSgpOwoKdmFyIERGb250TmFtZSA9IG5ldyByLlN0cmluZyhyLnVpbnQ4KTsKdmFyIERGb250RGF0YSA9IG5ldyByLlN0cnVjdCh7CiAgbGVuOiByLnVpbnQzMiwKICBidWY6IG5ldyByLkJ1ZmZlcignbGVuJykKfSk7Cgp2YXIgUmVmID0gbmV3IHIuU3RydWN0KHsKICBpZDogci51aW50MTYsCiAgbmFtZU9mZnNldDogci5pbnQxNiwKICBhdHRyOiByLnVpbnQ4LAogIGRhdGFPZmZzZXQ6IHIudWludDI0LAogIGhhbmRsZTogci51aW50MzIKfSk7Cgp2YXIgVHlwZSA9IG5ldyByLlN0cnVjdCh7CiAgbmFtZTogbmV3IHIuU3RyaW5nKDQpLAogIG1heFR5cGVJbmRleDogci51aW50MTYsCiAgcmVmTGlzdDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgbmV3IHIuQXJyYXkoUmVmLCBmdW5jdGlvbiAodCkgewogICAgcmV0dXJuIHQubWF4VHlwZUluZGV4ICsgMTsKICB9KSwgeyB0eXBlOiAncGFyZW50JyB9KQp9KTsKCnZhciBUeXBlTGlzdCA9IG5ldyByLlN0cnVjdCh7CiAgbGVuZ3RoOiByLnVpbnQxNiwKICB0eXBlczogbmV3IHIuQXJyYXkoVHlwZSwgZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB0Lmxlbmd0aCArIDE7CiAgfSkKfSk7Cgp2YXIgREZvbnRNYXAgPSBuZXcgci5TdHJ1Y3QoewogIHJlc2VydmVkOiBuZXcgci5SZXNlcnZlZChyLnVpbnQ4LCAyNCksCiAgdHlwZUxpc3Q6IG5ldyByLlBvaW50ZXIoci51aW50MTYsIFR5cGVMaXN0KSwKICBuYW1lTGlzdE9mZnNldDogbmV3IHIuUG9pbnRlcihyLnVpbnQxNiwgJ3ZvaWQnKQp9KTsKCnZhciBERm9udEhlYWRlciA9IG5ldyByLlN0cnVjdCh7CiAgZGF0YU9mZnNldDogci51aW50MzIsCiAgbWFwOiBuZXcgci5Qb2ludGVyKHIudWludDMyLCBERm9udE1hcCksCiAgZGF0YUxlbmd0aDogci51aW50MzIsCiAgbWFwTGVuZ3RoOiByLnVpbnQzMgp9KTsKCnZhciBERm9udCA9IGZ1bmN0aW9uICgpIHsKICBERm9udC5wcm9iZSA9IGZ1bmN0aW9uIHByb2JlKGJ1ZmZlcikgewogICAgdmFyIHN0cmVhbSA9IG5ldyByLkRlY29kZVN0cmVhbShidWZmZXIpOwoKICAgIHRyeSB7CiAgICAgIHZhciBoZWFkZXIgPSBERm9udEhlYWRlci5kZWNvZGUoc3RyZWFtKTsKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIGZvciAodmFyIF9pdGVyYXRvciA9IGhlYWRlci5tYXAudHlwZUxpc3QudHlwZXMsIF9pc0FycmF5ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IpLCBfaSA9IDAsIF9pdGVyYXRvciA9IF9pc0FycmF5ID8gX2l0ZXJhdG9yIDogX2dldEl0ZXJhdG9yKF9pdGVyYXRvcik7OykgewogICAgICB2YXIgX3JlZjsKCiAgICAgIGlmIChfaXNBcnJheSkgewogICAgICAgIGlmIChfaSA+PSBfaXRlcmF0b3IubGVuZ3RoKSBicmVhazsKICAgICAgICBfcmVmID0gX2l0ZXJhdG9yW19pKytdOwogICAgICB9IGVsc2UgewogICAgICAgIF9pID0gX2l0ZXJhdG9yLm5leHQoKTsKICAgICAgICBpZiAoX2kuZG9uZSkgYnJlYWs7CiAgICAgICAgX3JlZiA9IF9pLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgdHlwZSA9IF9yZWY7CgogICAgICBpZiAodHlwZS5uYW1lID09PSAnc2ZudCcpIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBmYWxzZTsKICB9OwoKICBmdW5jdGlvbiBERm9udChzdHJlYW0pIHsKICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBERm9udCk7CgogICAgdGhpcy5zdHJlYW0gPSBzdHJlYW07CiAgICB0aGlzLmhlYWRlciA9IERGb250SGVhZGVyLmRlY29kZSh0aGlzLnN0cmVhbSk7CgogICAgZm9yICh2YXIgX2l0ZXJhdG9yMiA9IHRoaXMuaGVhZGVyLm1hcC50eXBlTGlzdC50eXBlcywgX2lzQXJyYXkyID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IyKSwgX2kyID0gMCwgX2l0ZXJhdG9yMiA9IF9pc0FycmF5MiA/IF9pdGVyYXRvcjIgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMik7OykgewogICAgICB2YXIgX3JlZjI7CgogICAgICBpZiAoX2lzQXJyYXkyKSB7CiAgICAgICAgaWYgKF9pMiA+PSBfaXRlcmF0b3IyLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjIgPSBfaXRlcmF0b3IyW19pMisrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTIgPSBfaXRlcmF0b3IyLm5leHQoKTsKICAgICAgICBpZiAoX2kyLmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWYyID0gX2kyLnZhbHVlOwogICAgICB9CgogICAgICB2YXIgdHlwZSA9IF9yZWYyOwoKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yMyA9IHR5cGUucmVmTGlzdCwgX2lzQXJyYXkzID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3IzKSwgX2kzID0gMCwgX2l0ZXJhdG9yMyA9IF9pc0FycmF5MyA/IF9pdGVyYXRvcjMgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yMyk7OykgewogICAgICAgIHZhciBfcmVmMzsKCiAgICAgICAgaWYgKF9pc0FycmF5MykgewogICAgICAgICAgaWYgKF9pMyA+PSBfaXRlcmF0b3IzLmxlbmd0aCkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pdGVyYXRvcjNbX2kzKytdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfaTMgPSBfaXRlcmF0b3IzLm5leHQoKTsKICAgICAgICAgIGlmIChfaTMuZG9uZSkgYnJlYWs7CiAgICAgICAgICBfcmVmMyA9IF9pMy52YWx1ZTsKICAgICAgICB9CgogICAgICAgIHZhciByZWYgPSBfcmVmMzsKCiAgICAgICAgaWYgKHJlZi5uYW1lT2Zmc2V0ID49IDApIHsKICAgICAgICAgIHRoaXMuc3RyZWFtLnBvcyA9IHJlZi5uYW1lT2Zmc2V0ICsgdGhpcy5oZWFkZXIubWFwLm5hbWVMaXN0T2Zmc2V0OwogICAgICAgICAgcmVmLm5hbWUgPSBERm9udE5hbWUuZGVjb2RlKHRoaXMuc3RyZWFtKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmVmLm5hbWUgPSBudWxsOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKHR5cGUubmFtZSA9PT0gJ3NmbnQnKSB7CiAgICAgICAgdGhpcy5zZm50ID0gdHlwZTsKICAgICAgfQogICAgfQogIH0KCiAgREZvbnQucHJvdG90eXBlLmdldEZvbnQgPSBmdW5jdGlvbiBnZXRGb250KG5hbWUpIHsKICAgIGlmICghdGhpcy5zZm50KSB7CiAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIGZvciAodmFyIF9pdGVyYXRvcjQgPSB0aGlzLnNmbnQucmVmTGlzdCwgX2lzQXJyYXk0ID0gQXJyYXkuaXNBcnJheShfaXRlcmF0b3I0KSwgX2k0ID0gMCwgX2l0ZXJhdG9yNCA9IF9pc0FycmF5NCA/IF9pdGVyYXRvcjQgOiBfZ2V0SXRlcmF0b3IoX2l0ZXJhdG9yNCk7OykgewogICAgICB2YXIgX3JlZjQ7CgogICAgICBpZiAoX2lzQXJyYXk0KSB7CiAgICAgICAgaWYgKF9pNCA+PSBfaXRlcmF0b3I0Lmxlbmd0aCkgYnJlYWs7CiAgICAgICAgX3JlZjQgPSBfaXRlcmF0b3I0W19pNCsrXTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfaTQgPSBfaXRlcmF0b3I0Lm5leHQoKTsKICAgICAgICBpZiAoX2k0LmRvbmUpIGJyZWFrOwogICAgICAgIF9yZWY0ID0gX2k0LnZhbHVlOwogICAgICB9CgogICAgICB2YXIgcmVmID0gX3JlZjQ7CgogICAgICB2YXIgcG9zID0gdGhpcy5oZWFkZXIuZGF0YU9mZnNldCArIHJlZi5kYXRhT2Zmc2V0ICsgNDsKICAgICAgdmFyIHN0cmVhbSA9IG5ldyByLkRlY29kZVN0cmVhbSh0aGlzLnN0cmVhbS5idWZmZXIuc2xpY2UocG9zKSk7CiAgICAgIHZhciBmb250ID0gbmV3IFRURkZvbnQoc3RyZWFtKTsKICAgICAgaWYgKGZvbnQucG9zdHNjcmlwdE5hbWUgPT09IG5hbWUpIHsKICAgICAgICByZXR1cm4gZm9udDsKICAgICAgfQogICAgfQoKICAgIHJldHVybiBudWxsOwogIH07CgogIF9jcmVhdGVDbGFzcyhERm9udCwgW3sKICAgIGtleTogJ2ZvbnRzJywKICAgIGdldDogZnVuY3Rpb24gZ2V0KCkgewogICAgICB2YXIgZm9udHMgPSBbXTsKICAgICAgZm9yICh2YXIgX2l0ZXJhdG9yNSA9IHRoaXMuc2ZudC5yZWZMaXN0LCBfaXNBcnJheTUgPSBBcnJheS5pc0FycmF5KF9pdGVyYXRvcjUpLCBfaTUgPSAwLCBfaXRlcmF0b3I1ID0gX2lzQXJyYXk1ID8gX2l0ZXJhdG9yNSA6IF9nZXRJdGVyYXRvcihfaXRlcmF0b3I1KTs7KSB7CiAgICAgICAgdmFyIF9yZWY1OwoKICAgICAgICBpZiAoX2lzQXJyYXk1KSB7CiAgICAgICAgICBpZiAoX2k1ID49IF9pdGVyYXRvcjUubGVuZ3RoKSBicmVhazsKICAgICAgICAgIF9yZWY1ID0gX2l0ZXJhdG9yNVtfaTUrK107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIF9pNSA9IF9pdGVyYXRvcjUubmV4dCgpOwogICAgICAgICAgaWYgKF9pNS5kb25lKSBicmVhazsKICAgICAgICAgIF9yZWY1ID0gX2k1LnZhbHVlOwogICAgICAgIH0KCiAgICAgICAgdmFyIHJlZiA9IF9yZWY1OwoKICAgICAgICB2YXIgcG9zID0gdGhpcy5oZWFkZXIuZGF0YU9mZnNldCArIHJlZi5kYXRhT2Zmc2V0ICsgNDsKICAgICAgICB2YXIgc3RyZWFtID0gbmV3IHIuRGVjb2RlU3RyZWFtKHRoaXMuc3RyZWFtLmJ1ZmZlci5zbGljZShwb3MpKTsKICAgICAgICBmb250cy5wdXNoKG5ldyBUVEZGb250KHN0cmVhbSkpOwogICAgICB9CgogICAgICByZXR1cm4gZm9udHM7CiAgICB9CiAgfV0pOwoKICByZXR1cm4gREZvbnQ7Cn0oKTsKCi8vIFJlZ2lzdGVyIGZvbnQgZm9ybWF0cwpmb250a2l0LnJlZ2lzdGVyRm9ybWF0KFRURkZvbnQpOwpmb250a2l0LnJlZ2lzdGVyRm9ybWF0KFdPRkZGb250KTsKZm9udGtpdC5yZWdpc3RlckZvcm1hdChXT0ZGMkZvbnQpOwpmb250a2l0LnJlZ2lzdGVyRm9ybWF0KFRydWVUeXBlQ29sbGVjdGlvbik7CmZvbnRraXQucmVnaXN0ZXJGb3JtYXQoREZvbnQpOwoKbW9kdWxlLmV4cG9ydHMgPSBmb250a2l0OwoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDExKSkpCgovKioqLyB9KSwKLyogMTY4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBrZXksIHZhbCwgX3JlZiwgX3JlZjE7CgogIGV4cG9ydHMuRW5jb2RlU3RyZWFtID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNjkpOwoKICBleHBvcnRzLkRlY29kZVN0cmVhbSA9IF9fd2VicGFja19yZXF1aXJlX18oNTEpOwoKICBleHBvcnRzLkFycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5Myk7CgogIGV4cG9ydHMuTGF6eUFycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxODcpOwoKICBleHBvcnRzLkJpdGZpZWxkID0gX193ZWJwYWNrX3JlcXVpcmVfXygxODgpOwoKICBleHBvcnRzLkJvb2xlYW4gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4OSk7CgogIGV4cG9ydHMuQnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOTApOwoKICBleHBvcnRzLkVudW0gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5MSk7CgogIGV4cG9ydHMuT3B0aW9uYWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5Mik7CgogIGV4cG9ydHMuUmVzZXJ2ZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5Myk7CgogIGV4cG9ydHMuU3RyaW5nID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOTQpOwoKICBleHBvcnRzLlN0cnVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oOTQpOwoKICBleHBvcnRzLlZlcnNpb25lZFN0cnVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTk1KTsKCiAgX3JlZiA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpOwogIGZvciAoa2V5IGluIF9yZWYpIHsKICAgIHZhbCA9IF9yZWZba2V5XTsKICAgIGV4cG9ydHNba2V5XSA9IHZhbDsKICB9CgogIF9yZWYxID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOTYpOwogIGZvciAoa2V5IGluIF9yZWYxKSB7CiAgICB2YWwgPSBfcmVmMVtrZXldOwogICAgZXhwb3J0c1trZXldID0gdmFsOwogIH0KCn0pLmNhbGwodGhpcyk7CgoKLyoqKi8gfSksCi8qIDE2OSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oQnVmZmVyKSB7Ly8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIERlY29kZVN0cmVhbSwgRW5jb2RlU3RyZWFtLCBpY29udiwgc3RyZWFtLAogICAgX19oYXNQcm9wID0ge30uaGFzT3duUHJvcGVydHksCiAgICBfX2V4dGVuZHMgPSBmdW5jdGlvbihjaGlsZCwgcGFyZW50KSB7IGZvciAodmFyIGtleSBpbiBwYXJlbnQpIHsgaWYgKF9faGFzUHJvcC5jYWxsKHBhcmVudCwga2V5KSkgY2hpbGRba2V5XSA9IHBhcmVudFtrZXldOyB9IGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfSBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7IGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7IGNoaWxkLl9fc3VwZXJfXyA9IHBhcmVudC5wcm90b3R5cGU7IHJldHVybiBjaGlsZDsgfTsKCiAgc3RyZWFtID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNSk7CgogIERlY29kZVN0cmVhbSA9IF9fd2VicGFja19yZXF1aXJlX18oNTEpOwoKICB0cnkgewogICAgaWNvbnYgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUyKTsKICB9IGNhdGNoIChfZXJyb3IpIHt9CgogIEVuY29kZVN0cmVhbSA9IChmdW5jdGlvbihfc3VwZXIpIHsKICAgIHZhciBrZXk7CgogICAgX19leHRlbmRzKEVuY29kZVN0cmVhbSwgX3N1cGVyKTsKCiAgICBmdW5jdGlvbiBFbmNvZGVTdHJlYW0oYnVmZmVyU2l6ZSkgewogICAgICBpZiAoYnVmZmVyU2l6ZSA9PSBudWxsKSB7CiAgICAgICAgYnVmZmVyU2l6ZSA9IDY1NTM2OwogICAgICB9CiAgICAgIEVuY29kZVN0cmVhbS5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgdGhpcy5idWZmZXIgPSBuZXcgQnVmZmVyKGJ1ZmZlclNpemUpOwogICAgICB0aGlzLmJ1ZmZlck9mZnNldCA9IDA7CiAgICAgIHRoaXMucG9zID0gMDsKICAgIH0KCiAgICBmb3IgKGtleSBpbiBCdWZmZXIucHJvdG90eXBlKSB7CiAgICAgIGlmIChrZXkuc2xpY2UoMCwgNSkgPT09ICd3cml0ZScpIHsKICAgICAgICAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICB2YXIgYnl0ZXM7CiAgICAgICAgICBieXRlcyA9ICtEZWNvZGVTdHJlYW0uVFlQRVNba2V5LnJlcGxhY2UoL3dyaXRlfFtCTF1FL2csICcnKV07CiAgICAgICAgICByZXR1cm4gRW5jb2RlU3RyZWFtLnByb3RvdHlwZVtrZXldID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgdGhpcy5lbnN1cmUoYnl0ZXMpOwogICAgICAgICAgICB0aGlzLmJ1ZmZlcltrZXldKHZhbHVlLCB0aGlzLmJ1ZmZlck9mZnNldCk7CiAgICAgICAgICAgIHRoaXMuYnVmZmVyT2Zmc2V0ICs9IGJ5dGVzOwogICAgICAgICAgICByZXR1cm4gdGhpcy5wb3MgKz0gYnl0ZXM7CiAgICAgICAgICB9OwogICAgICAgIH0pKGtleSk7CiAgICAgIH0KICAgIH0KCiAgICBFbmNvZGVTdHJlYW0ucHJvdG90eXBlLl9yZWFkID0gZnVuY3Rpb24oKSB7fTsKCiAgICBFbmNvZGVTdHJlYW0ucHJvdG90eXBlLmVuc3VyZSA9IGZ1bmN0aW9uKGJ5dGVzKSB7CiAgICAgIGlmICh0aGlzLmJ1ZmZlck9mZnNldCArIGJ5dGVzID4gdGhpcy5idWZmZXIubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuZmx1c2goKTsKICAgICAgfQogICAgfTsKCiAgICBFbmNvZGVTdHJlYW0ucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLmJ1ZmZlck9mZnNldCA+IDApIHsKICAgICAgICB0aGlzLnB1c2gobmV3IEJ1ZmZlcih0aGlzLmJ1ZmZlci5zbGljZSgwLCB0aGlzLmJ1ZmZlck9mZnNldCkpKTsKICAgICAgICByZXR1cm4gdGhpcy5idWZmZXJPZmZzZXQgPSAwOwogICAgICB9CiAgICB9OwoKICAgIEVuY29kZVN0cmVhbS5wcm90b3R5cGUud3JpdGVCdWZmZXIgPSBmdW5jdGlvbihidWZmZXIpIHsKICAgICAgdGhpcy5mbHVzaCgpOwogICAgICB0aGlzLnB1c2goYnVmZmVyKTsKICAgICAgcmV0dXJuIHRoaXMucG9zICs9IGJ1ZmZlci5sZW5ndGg7CiAgICB9OwoKICAgIEVuY29kZVN0cmVhbS5wcm90b3R5cGUud3JpdGVTdHJpbmcgPSBmdW5jdGlvbihzdHJpbmcsIGVuY29kaW5nKSB7CiAgICAgIHZhciBidWYsIGJ5dGUsIGksIF9pLCBfcmVmOwogICAgICBpZiAoZW5jb2RpbmcgPT0gbnVsbCkgewogICAgICAgIGVuY29kaW5nID0gJ2FzY2lpJzsKICAgICAgfQogICAgICBzd2l0Y2ggKGVuY29kaW5nKSB7CiAgICAgICAgY2FzZSAndXRmMTZsZSc6CiAgICAgICAgY2FzZSAndWNzMic6CiAgICAgICAgY2FzZSAndXRmOCc6CiAgICAgICAgY2FzZSAnYXNjaWknOgogICAgICAgICAgcmV0dXJuIHRoaXMud3JpdGVCdWZmZXIobmV3IEJ1ZmZlcihzdHJpbmcsIGVuY29kaW5nKSk7CiAgICAgICAgY2FzZSAndXRmMTZiZSc6CiAgICAgICAgICBidWYgPSBuZXcgQnVmZmVyKHN0cmluZywgJ3V0ZjE2bGUnKTsKICAgICAgICAgIGZvciAoaSA9IF9pID0gMCwgX3JlZiA9IGJ1Zi5sZW5ndGggLSAxOyBfaSA8IF9yZWY7IGkgPSBfaSArPSAyKSB7CiAgICAgICAgICAgIGJ5dGUgPSBidWZbaV07CiAgICAgICAgICAgIGJ1ZltpXSA9IGJ1ZltpICsgMV07CiAgICAgICAgICAgIGJ1ZltpICsgMV0gPSBieXRlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRoaXMud3JpdGVCdWZmZXIoYnVmKTsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgaWYgKGljb252KSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLndyaXRlQnVmZmVyKGljb252LmVuY29kZShzdHJpbmcsIGVuY29kaW5nKSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0luc3RhbGwgaWNvbnYtbGl0ZSB0byBlbmFibGUgYWRkaXRpb25hbCBzdHJpbmcgZW5jb2RpbmdzLicpOwogICAgICAgICAgfQogICAgICB9CiAgICB9OwoKICAgIEVuY29kZVN0cmVhbS5wcm90b3R5cGUud3JpdGVVSW50MjRCRSA9IGZ1bmN0aW9uKHZhbCkgewogICAgICB0aGlzLmVuc3VyZSgzKTsKICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZzZXQrK10gPSB2YWwgPj4+IDE2ICYgMHhmZjsKICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZzZXQrK10gPSB2YWwgPj4+IDggJiAweGZmOwogICAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZnNldCsrXSA9IHZhbCAmIDB4ZmY7CiAgICAgIHJldHVybiB0aGlzLnBvcyArPSAzOwogICAgfTsKCiAgICBFbmNvZGVTdHJlYW0ucHJvdG90eXBlLndyaXRlVUludDI0TEUgPSBmdW5jdGlvbih2YWwpIHsKICAgICAgdGhpcy5lbnN1cmUoMyk7CiAgICAgIHRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyT2Zmc2V0KytdID0gdmFsICYgMHhmZjsKICAgICAgdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZzZXQrK10gPSB2YWwgPj4+IDggJiAweGZmOwogICAgICB0aGlzLmJ1ZmZlclt0aGlzLmJ1ZmZlck9mZnNldCsrXSA9IHZhbCA+Pj4gMTYgJiAweGZmOwogICAgICByZXR1cm4gdGhpcy5wb3MgKz0gMzsKICAgIH07CgogICAgRW5jb2RlU3RyZWFtLnByb3RvdHlwZS53cml0ZUludDI0QkUgPSBmdW5jdGlvbih2YWwpIHsKICAgICAgaWYgKHZhbCA+PSAwKSB7CiAgICAgICAgcmV0dXJuIHRoaXMud3JpdGVVSW50MjRCRSh2YWwpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB0aGlzLndyaXRlVUludDI0QkUodmFsICsgMHhmZmZmZmYgKyAxKTsKICAgICAgfQogICAgfTsKCiAgICBFbmNvZGVTdHJlYW0ucHJvdG90eXBlLndyaXRlSW50MjRMRSA9IGZ1bmN0aW9uKHZhbCkgewogICAgICBpZiAodmFsID49IDApIHsKICAgICAgICByZXR1cm4gdGhpcy53cml0ZVVJbnQyNExFKHZhbCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHRoaXMud3JpdGVVSW50MjRMRSh2YWwgKyAweGZmZmZmZiArIDEpOwogICAgICB9CiAgICB9OwoKICAgIEVuY29kZVN0cmVhbS5wcm90b3R5cGUuZmlsbCA9IGZ1bmN0aW9uKHZhbCwgbGVuZ3RoKSB7CiAgICAgIHZhciBidWY7CiAgICAgIGlmIChsZW5ndGggPCB0aGlzLmJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICB0aGlzLmVuc3VyZShsZW5ndGgpOwogICAgICAgIHRoaXMuYnVmZmVyLmZpbGwodmFsLCB0aGlzLmJ1ZmZlck9mZnNldCwgdGhpcy5idWZmZXJPZmZzZXQgKyBsZW5ndGgpOwogICAgICAgIHRoaXMuYnVmZmVyT2Zmc2V0ICs9IGxlbmd0aDsKICAgICAgICByZXR1cm4gdGhpcy5wb3MgKz0gbGVuZ3RoOwogICAgICB9IGVsc2UgewogICAgICAgIGJ1ZiA9IG5ldyBCdWZmZXIobGVuZ3RoKTsKICAgICAgICBidWYuZmlsbCh2YWwpOwogICAgICAgIHJldHVybiB0aGlzLndyaXRlQnVmZmVyKGJ1Zik7CiAgICAgIH0KICAgIH07CgogICAgRW5jb2RlU3RyZWFtLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5mbHVzaCgpOwogICAgICByZXR1cm4gdGhpcy5wdXNoKG51bGwpOwogICAgfTsKCiAgICByZXR1cm4gRW5jb2RlU3RyZWFtOwoKICB9KShzdHJlYW0uUmVhZGFibGUpOwoKICBtb2R1bGUuZXhwb3J0cyA9IEVuY29kZVN0cmVhbTsKCn0pLmNhbGwodGhpcyk7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIpKQoKLyoqKi8gfSksCi8qIDE3MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKdmFyIEJPTUNoYXIgPSAnXHVGRUZGJzsKCmV4cG9ydHMuUHJlcGVuZEJPTSA9IFByZXBlbmRCT01XcmFwcGVyCmZ1bmN0aW9uIFByZXBlbmRCT01XcmFwcGVyKGVuY29kZXIsIG9wdGlvbnMpIHsKICAgIHRoaXMuZW5jb2RlciA9IGVuY29kZXI7CiAgICB0aGlzLmFkZEJPTSA9IHRydWU7Cn0KClByZXBlbmRCT01XcmFwcGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikgewogICAgaWYgKHRoaXMuYWRkQk9NKSB7CiAgICAgICAgc3RyID0gQk9NQ2hhciArIHN0cjsKICAgICAgICB0aGlzLmFkZEJPTSA9IGZhbHNlOwogICAgfQoKICAgIHJldHVybiB0aGlzLmVuY29kZXIud3JpdGUoc3RyKTsKfQoKUHJlcGVuZEJPTVdyYXBwZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHRoaXMuZW5jb2Rlci5lbmQoKTsKfQoKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpleHBvcnRzLlN0cmlwQk9NID0gU3RyaXBCT01XcmFwcGVyOwpmdW5jdGlvbiBTdHJpcEJPTVdyYXBwZXIoZGVjb2Rlciwgb3B0aW9ucykgewogICAgdGhpcy5kZWNvZGVyID0gZGVjb2RlcjsKICAgIHRoaXMucGFzcyA9IGZhbHNlOwogICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKfQoKU3RyaXBCT01XcmFwcGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1ZikgewogICAgdmFyIHJlcyA9IHRoaXMuZGVjb2Rlci53cml0ZShidWYpOwogICAgaWYgKHRoaXMucGFzcyB8fCAhcmVzKQogICAgICAgIHJldHVybiByZXM7CgogICAgaWYgKHJlc1swXSA9PT0gQk9NQ2hhcikgewogICAgICAgIHJlcyA9IHJlcy5zbGljZSgxKTsKICAgICAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucy5zdHJpcEJPTSA9PT0gJ2Z1bmN0aW9uJykKICAgICAgICAgICAgdGhpcy5vcHRpb25zLnN0cmlwQk9NKCk7CiAgICB9CgogICAgdGhpcy5wYXNzID0gdHJ1ZTsKICAgIHJldHVybiByZXM7Cn0KClN0cmlwQk9NV3JhcHBlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpOwp9CgoKCi8qKiovIH0pLAovKiAxNzEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCi8vIFVwZGF0ZSB0aGlzIGFycmF5IGlmIHlvdSBhZGQvcmVuYW1lL3JlbW92ZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KLy8gV2Ugc3VwcG9ydCBCcm93c2VyaWZ5IGJ5IHNraXBwaW5nIGF1dG9tYXRpYyBtb2R1bGUgZGlzY292ZXJ5IGFuZCByZXF1aXJpbmcgbW9kdWxlcyBkaXJlY3RseS4KdmFyIG1vZHVsZXMgPSBbCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3MiksCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3MyksCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3NCksCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3NSksCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3NiksCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3NyksCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3OCksCiAgICBfX3dlYnBhY2tfcmVxdWlyZV9fKDE3OSksCl07CgovLyBQdXQgYWxsIGVuY29kaW5nL2FsaWFzL2NvZGVjIGRlZmluaXRpb25zIHRvIHNpbmdsZSBvYmplY3QgYW5kIGV4cG9ydCBpdC4gCmZvciAodmFyIGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykgewogICAgdmFyIG1vZHVsZSA9IG1vZHVsZXNbaV07CiAgICBmb3IgKHZhciBlbmMgaW4gbW9kdWxlKQogICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobW9kdWxlLCBlbmMpKQogICAgICAgICAgICBleHBvcnRzW2VuY10gPSBtb2R1bGVbZW5jXTsKfQoKCi8qKiovIH0pLAovKiAxNzIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKdmFyIEJ1ZmZlciA9IF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyOwoKLy8gRXhwb3J0IE5vZGUuanMgaW50ZXJuYWwgZW5jb2RpbmdzLgoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgICAvLyBFbmNvZGluZ3MKICAgIHV0Zjg6ICAgeyB0eXBlOiAiX2ludGVybmFsIiwgYm9tQXdhcmU6IHRydWV9LAogICAgY2VzdTg6ICB7IHR5cGU6ICJfaW50ZXJuYWwiLCBib21Bd2FyZTogdHJ1ZX0sCiAgICB1bmljb2RlMTF1dGY4OiAidXRmOCIsCgogICAgdWNzMjogICB7IHR5cGU6ICJfaW50ZXJuYWwiLCBib21Bd2FyZTogdHJ1ZX0sCiAgICB1dGYxNmxlOiAidWNzMiIsCgogICAgYmluYXJ5OiB7IHR5cGU6ICJfaW50ZXJuYWwiIH0sCiAgICBiYXNlNjQ6IHsgdHlwZTogIl9pbnRlcm5hbCIgfSwKICAgIGhleDogICAgeyB0eXBlOiAiX2ludGVybmFsIiB9LAoKICAgIC8vIENvZGVjLgogICAgX2ludGVybmFsOiBJbnRlcm5hbENvZGVjLAp9OwoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZ1bmN0aW9uIEludGVybmFsQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikgewogICAgdGhpcy5lbmMgPSBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lOwogICAgdGhpcy5ib21Bd2FyZSA9IGNvZGVjT3B0aW9ucy5ib21Bd2FyZTsKCiAgICBpZiAodGhpcy5lbmMgPT09ICJiYXNlNjQiKQogICAgICAgIHRoaXMuZW5jb2RlciA9IEludGVybmFsRW5jb2RlckJhc2U2NDsKICAgIGVsc2UgaWYgKHRoaXMuZW5jID09PSAiY2VzdTgiKSB7CiAgICAgICAgdGhpcy5lbmMgPSAidXRmOCI7IC8vIFVzZSB1dGY4IGZvciBkZWNvZGluZy4KICAgICAgICB0aGlzLmVuY29kZXIgPSBJbnRlcm5hbEVuY29kZXJDZXN1ODsKCiAgICAgICAgLy8gQWRkIGRlY29kZXIgZm9yIHZlcnNpb25zIG9mIE5vZGUgbm90IHN1cHBvcnRpbmcgQ0VTVS04CiAgICAgICAgaWYgKG5ldyBCdWZmZXIoJ2VkYTBiZGVkYjJhOScsICdoZXgnKS50b1N0cmluZygpICE9PSAn8J+SqScpIHsKICAgICAgICAgICAgdGhpcy5kZWNvZGVyID0gSW50ZXJuYWxEZWNvZGVyQ2VzdTg7CiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENoYXJVbmljb2RlID0gaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlOwogICAgICAgIH0KICAgIH0KfQoKSW50ZXJuYWxDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IEludGVybmFsRW5jb2RlcjsKSW50ZXJuYWxDb2RlYy5wcm90b3R5cGUuZGVjb2RlciA9IEludGVybmFsRGVjb2RlcjsKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBXZSB1c2Ugbm9kZS5qcyBpbnRlcm5hbCBkZWNvZGVyLiBJdHMgc2lnbmF0dXJlIGlzIHRoZSBzYW1lIGFzIG91cnMuCnZhciBTdHJpbmdEZWNvZGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0NykuU3RyaW5nRGVjb2RlcjsKCmlmICghU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZW5kKSAvLyBOb2RlIHYwLjggZG9lc24ndCBoYXZlIHRoaXMgbWV0aG9kLgogICAgU3RyaW5nRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7fTsKCgpmdW5jdGlvbiBJbnRlcm5hbERlY29kZXIob3B0aW9ucywgY29kZWMpIHsKICAgIFN0cmluZ0RlY29kZXIuY2FsbCh0aGlzLCBjb2RlYy5lbmMpOwp9CgpJbnRlcm5hbERlY29kZXIucHJvdG90eXBlID0gU3RyaW5nRGVjb2Rlci5wcm90b3R5cGU7CgoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gRW5jb2RlciBpcyBtb3N0bHkgdHJpdmlhbAoKZnVuY3Rpb24gSW50ZXJuYWxFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7CiAgICB0aGlzLmVuYyA9IGNvZGVjLmVuYzsKfQoKSW50ZXJuYWxFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikgewogICAgcmV0dXJuIG5ldyBCdWZmZXIoc3RyLCB0aGlzLmVuYyk7Cn0KCkludGVybmFsRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7Cn0KCgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBFeGNlcHQgYmFzZTY0IGVuY29kZXIsIHdoaWNoIG11c3Qga2VlcCBpdHMgc3RhdGUuCgpmdW5jdGlvbiBJbnRlcm5hbEVuY29kZXJCYXNlNjQob3B0aW9ucywgY29kZWMpIHsKICAgIHRoaXMucHJldlN0ciA9ICcnOwp9CgpJbnRlcm5hbEVuY29kZXJCYXNlNjQucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7CiAgICBzdHIgPSB0aGlzLnByZXZTdHIgKyBzdHI7CiAgICB2YXIgY29tcGxldGVRdWFkcyA9IHN0ci5sZW5ndGggLSAoc3RyLmxlbmd0aCAlIDQpOwogICAgdGhpcy5wcmV2U3RyID0gc3RyLnNsaWNlKGNvbXBsZXRlUXVhZHMpOwogICAgc3RyID0gc3RyLnNsaWNlKDAsIGNvbXBsZXRlUXVhZHMpOwoKICAgIHJldHVybiBuZXcgQnVmZmVyKHN0ciwgImJhc2U2NCIpOwp9CgpJbnRlcm5hbEVuY29kZXJCYXNlNjQucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIG5ldyBCdWZmZXIodGhpcy5wcmV2U3RyLCAiYmFzZTY0Iik7Cn0KCgovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQovLyBDRVNVLTggZW5jb2RlciBpcyBhbHNvIHNwZWNpYWwuCgpmdW5jdGlvbiBJbnRlcm5hbEVuY29kZXJDZXN1OChvcHRpb25zLCBjb2RlYykgewp9CgpJbnRlcm5hbEVuY29kZXJDZXN1OC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHsKICAgIHZhciBidWYgPSBuZXcgQnVmZmVyKHN0ci5sZW5ndGggKiAzKSwgYnVmSWR4ID0gMDsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGNoYXJDb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgLy8gTmFpdmUgaW1wbGVtZW50YXRpb24sIGJ1dCBpdCB3b3JrcyBiZWNhdXNlIENFU1UtOCBpcyBlc3BlY2lhbGx5IGVhc3kKICAgICAgICAvLyB0byBjb252ZXJ0IGZyb20gVVRGLTE2ICh3aGljaCBhbGwgSlMgc3RyaW5ncyBhcmUgZW5jb2RlZCBpbikuCiAgICAgICAgaWYgKGNoYXJDb2RlIDwgMHg4MCkKICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IGNoYXJDb2RlOwogICAgICAgIGVsc2UgaWYgKGNoYXJDb2RlIDwgMHg4MDApIHsKICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDB4QzAgKyAoY2hhckNvZGUgPj4+IDYpOwogICAgICAgICAgICBidWZbYnVmSWR4KytdID0gMHg4MCArIChjaGFyQ29kZSAmIDB4M2YpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsgLy8gY2hhckNvZGUgd2lsbCBhbHdheXMgYmUgPCAweDEwMDAwIGluIGphdmFzY3JpcHQuCiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAweEUwICsgKGNoYXJDb2RlID4+PiAxMik7CiAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSAweDgwICsgKChjaGFyQ29kZSA+Pj4gNikgJiAweDNmKTsKICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IDB4ODAgKyAoY2hhckNvZGUgJiAweDNmKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gYnVmLnNsaWNlKDAsIGJ1ZklkeCk7Cn0KCkludGVybmFsRW5jb2RlckNlc3U4LnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHsKfQoKLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gQ0VTVS04IGRlY29kZXIgaXMgbm90IGltcGxlbWVudGVkIGluIE5vZGUgdjQuMCsKCmZ1bmN0aW9uIEludGVybmFsRGVjb2RlckNlc3U4KG9wdGlvbnMsIGNvZGVjKSB7CiAgICB0aGlzLmFjYyA9IDA7CiAgICB0aGlzLmNvbnRCeXRlcyA9IDA7CiAgICB0aGlzLmFjY0J5dGVzID0gMDsKICAgIHRoaXMuZGVmYXVsdENoYXJVbmljb2RlID0gY29kZWMuZGVmYXVsdENoYXJVbmljb2RlOwp9CgpJbnRlcm5hbERlY29kZXJDZXN1OC5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihidWYpIHsKICAgIHZhciBhY2MgPSB0aGlzLmFjYywgY29udEJ5dGVzID0gdGhpcy5jb250Qnl0ZXMsIGFjY0J5dGVzID0gdGhpcy5hY2NCeXRlcywgCiAgICAgICAgcmVzID0gJyc7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBjdXJCeXRlID0gYnVmW2ldOwogICAgICAgIGlmICgoY3VyQnl0ZSAmIDB4QzApICE9PSAweDgwKSB7IC8vIExlYWRpbmcgYnl0ZQogICAgICAgICAgICBpZiAoY29udEJ5dGVzID4gMCkgeyAvLyBQcmV2aW91cyBjb2RlIGlzIGludmFsaWQKICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTsKICAgICAgICAgICAgICAgIGNvbnRCeXRlcyA9IDA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChjdXJCeXRlIDwgMHg4MCkgeyAvLyBTaW5nbGUtYnl0ZSBjb2RlCiAgICAgICAgICAgICAgICByZXMgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjdXJCeXRlKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJCeXRlIDwgMHhFMCkgeyAvLyBUd28tYnl0ZSBjb2RlCiAgICAgICAgICAgICAgICBhY2MgPSBjdXJCeXRlICYgMHgxRjsKICAgICAgICAgICAgICAgIGNvbnRCeXRlcyA9IDE7IGFjY0J5dGVzID0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJCeXRlIDwgMHhGMCkgeyAvLyBUaHJlZS1ieXRlIGNvZGUKICAgICAgICAgICAgICAgIGFjYyA9IGN1ckJ5dGUgJiAweDBGOwogICAgICAgICAgICAgICAgY29udEJ5dGVzID0gMjsgYWNjQnl0ZXMgPSAxOwogICAgICAgICAgICB9IGVsc2UgeyAvLyBGb3VyIG9yIG1vcmUgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIENFU1UtOC4KICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7IC8vIENvbnRpbnVhdGlvbiBieXRlCiAgICAgICAgICAgIGlmIChjb250Qnl0ZXMgPiAwKSB7IC8vIFdlJ3JlIHdhaXRpbmcgZm9yIGl0LgogICAgICAgICAgICAgICAgYWNjID0gKGFjYyA8PCA2KSB8IChjdXJCeXRlICYgMHgzZik7CiAgICAgICAgICAgICAgICBjb250Qnl0ZXMtLTsgYWNjQnl0ZXMrKzsKICAgICAgICAgICAgICAgIGlmIChjb250Qnl0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3Igb3ZlcmxvbmcgZW5jb2RpbmcsIGJ1dCBzdXBwb3J0IE1vZGlmaWVkIFVURi04IChlbmNvZGluZyBOVUxMIGFzIEMwIDgwKQogICAgICAgICAgICAgICAgICAgIGlmIChhY2NCeXRlcyA9PT0gMiAmJiBhY2MgPCAweDgwICYmIGFjYyA+IDApCiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZTsKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChhY2NCeXRlcyA9PT0gMyAmJiBhY2MgPCAweDgwMCkKICAgICAgICAgICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWN0dWFsbHkgYWRkIGNoYXJhY3Rlci4KICAgICAgICAgICAgICAgICAgICAgICAgcmVzICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYWNjKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsgLy8gVW5leHBlY3RlZCBjb250aW51YXRpb24gYnl0ZQogICAgICAgICAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgdGhpcy5hY2MgPSBhY2M7IHRoaXMuY29udEJ5dGVzID0gY29udEJ5dGVzOyB0aGlzLmFjY0J5dGVzID0gYWNjQnl0ZXM7CiAgICByZXR1cm4gcmVzOwp9CgpJbnRlcm5hbERlY29kZXJDZXN1OC5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgcmVzID0gMDsKICAgIGlmICh0aGlzLmNvbnRCeXRlcyA+IDApCiAgICAgICAgcmVzICs9IHRoaXMuZGVmYXVsdENoYXJVbmljb2RlOwogICAgcmV0dXJuIHJlczsKfQoKCi8qKiovIH0pLAovKiAxNzMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKdmFyIEJ1ZmZlciA9IF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyOwoKLy8gTm90ZTogVVRGMTYtTEUgKG9yIFVDUzIpIGNvZGVjIGlzIE5vZGUuanMgbmF0aXZlLiBTZWUgZW5jb2RpbmdzL2ludGVybmFsLmpzCgovLyA9PSBVVEYxNi1CRSBjb2RlYy4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZXhwb3J0cy51dGYxNmJlID0gVXRmMTZCRUNvZGVjOwpmdW5jdGlvbiBVdGYxNkJFQ29kZWMoKSB7Cn0KClV0ZjE2QkVDb2RlYy5wcm90b3R5cGUuZW5jb2RlciA9IFV0ZjE2QkVFbmNvZGVyOwpVdGYxNkJFQ29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYxNkJFRGVjb2RlcjsKVXRmMTZCRUNvZGVjLnByb3RvdHlwZS5ib21Bd2FyZSA9IHRydWU7CgoKLy8gLS0gRW5jb2RpbmcKCmZ1bmN0aW9uIFV0ZjE2QkVFbmNvZGVyKCkgewp9CgpVdGYxNkJFRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHsKICAgIHZhciBidWYgPSBuZXcgQnVmZmVyKHN0ciwgJ3VjczInKTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSArPSAyKSB7CiAgICAgICAgdmFyIHRtcCA9IGJ1ZltpXTsgYnVmW2ldID0gYnVmW2krMV07IGJ1ZltpKzFdID0gdG1wOwogICAgfQogICAgcmV0dXJuIGJ1ZjsKfQoKVXRmMTZCRUVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgewp9CgoKLy8gLS0gRGVjb2RpbmcKCmZ1bmN0aW9uIFV0ZjE2QkVEZWNvZGVyKCkgewogICAgdGhpcy5vdmVyZmxvd0J5dGUgPSAtMTsKfQoKVXRmMTZCRURlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7CiAgICBpZiAoYnVmLmxlbmd0aCA9PSAwKQogICAgICAgIHJldHVybiAnJzsKCiAgICB2YXIgYnVmMiA9IG5ldyBCdWZmZXIoYnVmLmxlbmd0aCArIDEpLAogICAgICAgIGkgPSAwLCBqID0gMDsKCiAgICBpZiAodGhpcy5vdmVyZmxvd0J5dGUgIT09IC0xKSB7CiAgICAgICAgYnVmMlswXSA9IGJ1ZlswXTsKICAgICAgICBidWYyWzFdID0gdGhpcy5vdmVyZmxvd0J5dGU7CiAgICAgICAgaSA9IDE7IGogPSAyOwogICAgfQoKICAgIGZvciAoOyBpIDwgYnVmLmxlbmd0aC0xOyBpICs9IDIsIGorPSAyKSB7CiAgICAgICAgYnVmMltqXSA9IGJ1ZltpKzFdOwogICAgICAgIGJ1ZjJbaisxXSA9IGJ1ZltpXTsKICAgIH0KCiAgICB0aGlzLm92ZXJmbG93Qnl0ZSA9IChpID09IGJ1Zi5sZW5ndGgtMSkgPyBidWZbYnVmLmxlbmd0aC0xXSA6IC0xOwoKICAgIHJldHVybiBidWYyLnNsaWNlKDAsIGopLnRvU3RyaW5nKCd1Y3MyJyk7Cn0KClV0ZjE2QkVEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHsKfQoKCi8vID09IFVURi0xNiBjb2RlYyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8vIERlY29kZXIgY2hvb3NlcyBhdXRvbWF0aWNhbGx5IGZyb20gVVRGLTE2TEUgYW5kIFVURi0xNkJFIHVzaW5nIEJPTSBhbmQgc3BhY2UtYmFzZWQgaGV1cmlzdGljLgovLyBEZWZhdWx0cyB0byBVVEYtMTZMRSwgYXMgaXQncyBwcmV2YWxlbnQgYW5kIGRlZmF1bHQgaW4gTm9kZS4KLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9VVEYtMTYgYW5kIGh0dHA6Ly9lbmNvZGluZy5zcGVjLndoYXR3Zy5vcmcvI3V0Zi0xNmxlCi8vIERlY29kZXIgZGVmYXVsdCBjYW4gYmUgY2hhbmdlZDogaWNvbnYuZGVjb2RlKGJ1ZiwgJ3V0ZjE2Jywge2RlZmF1bHRFbmNvZGluZzogJ3V0Zi0xNmJlJ30pOwoKLy8gRW5jb2RlciB1c2VzIFVURi0xNkxFIGFuZCBwcmVwZW5kcyBCT00gKHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIHdpdGggYWRkQk9NOiBmYWxzZSkuCgpleHBvcnRzLnV0ZjE2ID0gVXRmMTZDb2RlYzsKZnVuY3Rpb24gVXRmMTZDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7CiAgICB0aGlzLmljb252ID0gaWNvbnY7Cn0KClV0ZjE2Q29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGYxNkVuY29kZXI7ClV0ZjE2Q29kZWMucHJvdG90eXBlLmRlY29kZXIgPSBVdGYxNkRlY29kZXI7CgoKLy8gLS0gRW5jb2RpbmcgKHBhc3MtdGhyb3VnaCkKCmZ1bmN0aW9uIFV0ZjE2RW5jb2RlcihvcHRpb25zLCBjb2RlYykgewogICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICBpZiAob3B0aW9ucy5hZGRCT00gPT09IHVuZGVmaW5lZCkKICAgICAgICBvcHRpb25zLmFkZEJPTSA9IHRydWU7CiAgICB0aGlzLmVuY29kZXIgPSBjb2RlYy5pY29udi5nZXRFbmNvZGVyKCd1dGYtMTZsZScsIG9wdGlvbnMpOwp9CgpVdGYxNkVuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7CiAgICByZXR1cm4gdGhpcy5lbmNvZGVyLndyaXRlKHN0cik7Cn0KClV0ZjE2RW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpOwp9CgoKLy8gLS0gRGVjb2RpbmcKCmZ1bmN0aW9uIFV0ZjE2RGVjb2RlcihvcHRpb25zLCBjb2RlYykgewogICAgdGhpcy5kZWNvZGVyID0gbnVsbDsKICAgIHRoaXMuaW5pdGlhbEJ5dGVzID0gW107CiAgICB0aGlzLmluaXRpYWxCeXRlc0xlbiA9IDA7CgogICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjsKfQoKVXRmMTZEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1ZikgewogICAgaWYgKCF0aGlzLmRlY29kZXIpIHsKICAgICAgICAvLyBDb2RlYyBpcyBub3QgY2hvc2VuIHlldC4gQWNjdW11bGF0ZSBpbml0aWFsIGJ5dGVzLgogICAgICAgIHRoaXMuaW5pdGlhbEJ5dGVzLnB1c2goYnVmKTsKICAgICAgICB0aGlzLmluaXRpYWxCeXRlc0xlbiArPSBidWYubGVuZ3RoOwogICAgICAgIAogICAgICAgIGlmICh0aGlzLmluaXRpYWxCeXRlc0xlbiA8IDE2KSAvLyBXZSBuZWVkIG1vcmUgYnl0ZXMgdG8gdXNlIHNwYWNlIGhldXJpc3RpYyAoc2VlIGJlbG93KQogICAgICAgICAgICByZXR1cm4gJyc7CgogICAgICAgIC8vIFdlIGhhdmUgZW5vdWdoIGJ5dGVzIC0+IGRldGVjdCBlbmRpYW5uZXNzLgogICAgICAgIHZhciBidWYgPSBCdWZmZXIuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSwKICAgICAgICAgICAgZW5jb2RpbmcgPSBkZXRlY3RFbmNvZGluZyhidWYsIHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpOwogICAgICAgIHRoaXMuZGVjb2RlciA9IHRoaXMuaWNvbnYuZ2V0RGVjb2RlcihlbmNvZGluZywgdGhpcy5vcHRpb25zKTsKICAgICAgICB0aGlzLmluaXRpYWxCeXRlcy5sZW5ndGggPSB0aGlzLmluaXRpYWxCeXRlc0xlbiA9IDA7CiAgICB9CgogICAgcmV0dXJuIHRoaXMuZGVjb2Rlci53cml0ZShidWYpOwp9CgpVdGYxNkRlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgewogICAgaWYgKCF0aGlzLmRlY29kZXIpIHsKICAgICAgICB2YXIgYnVmID0gQnVmZmVyLmNvbmNhdCh0aGlzLmluaXRpYWxCeXRlcyksCiAgICAgICAgICAgIGVuY29kaW5nID0gZGV0ZWN0RW5jb2RpbmcoYnVmLCB0aGlzLm9wdGlvbnMuZGVmYXVsdEVuY29kaW5nKTsKICAgICAgICB0aGlzLmRlY29kZXIgPSB0aGlzLmljb252LmdldERlY29kZXIoZW5jb2RpbmcsIHRoaXMub3B0aW9ucyk7CgogICAgICAgIHZhciByZXMgPSB0aGlzLmRlY29kZXIud3JpdGUoYnVmKSwKICAgICAgICAgICAgdHJhaWwgPSB0aGlzLmRlY29kZXIuZW5kKCk7CgogICAgICAgIHJldHVybiB0cmFpbCA/IChyZXMgKyB0cmFpbCkgOiByZXM7CiAgICB9CiAgICByZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpOwp9CgpmdW5jdGlvbiBkZXRlY3RFbmNvZGluZyhidWYsIGRlZmF1bHRFbmNvZGluZykgewogICAgdmFyIGVuYyA9IGRlZmF1bHRFbmNvZGluZyB8fCAndXRmLTE2bGUnOwoKICAgIGlmIChidWYubGVuZ3RoID49IDIpIHsKICAgICAgICAvLyBDaGVjayBCT00uCiAgICAgICAgaWYgKGJ1ZlswXSA9PSAweEZFICYmIGJ1ZlsxXSA9PSAweEZGKSAvLyBVVEYtMTZCRSBCT00KICAgICAgICAgICAgZW5jID0gJ3V0Zi0xNmJlJzsKICAgICAgICBlbHNlIGlmIChidWZbMF0gPT0gMHhGRiAmJiBidWZbMV0gPT0gMHhGRSkgLy8gVVRGLTE2TEUgQk9NCiAgICAgICAgICAgIGVuYyA9ICd1dGYtMTZsZSc7CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIC8vIE5vIEJPTSBmb3VuZC4gVHJ5IHRvIGRlZHVjZSBlbmNvZGluZyBmcm9tIGluaXRpYWwgY29udGVudC4KICAgICAgICAgICAgLy8gTW9zdCBvZiB0aGUgdGltZSwgdGhlIGNvbnRlbnQgaGFzIEFTQ0lJIGNoYXJzIChVKzAwKiopLCBidXQgdGhlIG9wcG9zaXRlIChVKyoqMDApIGlzIHVuY29tbW9uLgogICAgICAgICAgICAvLyBTbywgd2UgY291bnQgQVNDSUkgYXMgaWYgaXQgd2FzIExFIG9yIEJFLCBhbmQgZGVjaWRlIGZyb20gdGhhdC4KICAgICAgICAgICAgdmFyIGFzY2lpQ2hhcnNMRSA9IDAsIGFzY2lpQ2hhcnNCRSA9IDAsIC8vIENvdW50cyBvZiBjaGFycyBpbiBib3RoIHBvc2l0aW9ucwogICAgICAgICAgICAgICAgX2xlbiA9IE1hdGgubWluKGJ1Zi5sZW5ndGggLSAoYnVmLmxlbmd0aCAlIDIpLCA2NCk7IC8vIExlbiBpcyBhbHdheXMgZXZlbi4KCiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgX2xlbjsgaSArPSAyKSB7CiAgICAgICAgICAgICAgICBpZiAoYnVmW2ldID09PSAwICYmIGJ1ZltpKzFdICE9PSAwKSBhc2NpaUNoYXJzQkUrKzsKICAgICAgICAgICAgICAgIGlmIChidWZbaV0gIT09IDAgJiYgYnVmW2krMV0gPT09IDApIGFzY2lpQ2hhcnNMRSsrOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoYXNjaWlDaGFyc0JFID4gYXNjaWlDaGFyc0xFKQogICAgICAgICAgICAgICAgZW5jID0gJ3V0Zi0xNmJlJzsKICAgICAgICAgICAgZWxzZSBpZiAoYXNjaWlDaGFyc0JFIDwgYXNjaWlDaGFyc0xFKQogICAgICAgICAgICAgICAgZW5jID0gJ3V0Zi0xNmxlJzsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGVuYzsKfQoKCgoKLyoqKi8gfSksCi8qIDE3NCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Cgp2YXIgQnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXI7CgovLyBVVEYtNyBjb2RlYywgYWNjb3JkaW5nIHRvIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyMTUyCi8vIFNlZSBhbHNvIGJlbG93IGEgVVRGLTctSU1BUCBjb2RlYywgYWNjb3JkaW5nIHRvIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM1MDEjc2VjdGlvbi01LjEuMwoKZXhwb3J0cy51dGY3ID0gVXRmN0NvZGVjOwpleHBvcnRzLnVuaWNvZGUxMXV0ZjcgPSAndXRmNyc7IC8vIEFsaWFzIFVOSUNPREUtMS0xLVVURi03CmZ1bmN0aW9uIFV0ZjdDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7CiAgICB0aGlzLmljb252ID0gaWNvbnY7Cn07CgpVdGY3Q29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBVdGY3RW5jb2RlcjsKVXRmN0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmN0RlY29kZXI7ClV0ZjdDb2RlYy5wcm90b3R5cGUuYm9tQXdhcmUgPSB0cnVlOwoKCi8vIC0tIEVuY29kaW5nCgp2YXIgbm9uRGlyZWN0Q2hhcnMgPSAvW15BLVphLXowLTknXChcKSwtXC5cLzpcPyBcblxyXHRdKy9nOwoKZnVuY3Rpb24gVXRmN0VuY29kZXIob3B0aW9ucywgY29kZWMpIHsKICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjsKfQoKVXRmN0VuY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyKSB7CiAgICAvLyBOYWl2ZSBpbXBsZW1lbnRhdGlvbi4KICAgIC8vIE5vbi1kaXJlY3QgY2hhcnMgYXJlIGVuY29kZWQgYXMgIis8YmFzZTY0Pi0iOyBzaW5nbGUgIisiIGNoYXIgaXMgZW5jb2RlZCBhcyAiKy0iLgogICAgcmV0dXJuIG5ldyBCdWZmZXIoc3RyLnJlcGxhY2Uobm9uRGlyZWN0Q2hhcnMsIGZ1bmN0aW9uKGNodW5rKSB7CiAgICAgICAgcmV0dXJuICIrIiArIChjaHVuayA9PT0gJysnID8gJycgOiAKICAgICAgICAgICAgdGhpcy5pY29udi5lbmNvZGUoY2h1bmssICd1dGYxNi1iZScpLnRvU3RyaW5nKCdiYXNlNjQnKS5yZXBsYWNlKC89KyQvLCAnJykpIAogICAgICAgICAgICArICItIjsKICAgIH0uYmluZCh0aGlzKSkpOwp9CgpVdGY3RW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7Cn0KCgovLyAtLSBEZWNvZGluZwoKZnVuY3Rpb24gVXRmN0RlY29kZXIob3B0aW9ucywgY29kZWMpIHsKICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjsKICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTsKICAgIHRoaXMuYmFzZTY0QWNjdW0gPSAnJzsKfQoKdmFyIGJhc2U2NFJlZ2V4ID0gL1tBLVphLXowLTlcLytdLzsKdmFyIGJhc2U2NENoYXJzID0gW107CmZvciAodmFyIGkgPSAwOyBpIDwgMjU2OyBpKyspCiAgICBiYXNlNjRDaGFyc1tpXSA9IGJhc2U2NFJlZ2V4LnRlc3QoU3RyaW5nLmZyb21DaGFyQ29kZShpKSk7Cgp2YXIgcGx1c0NoYXIgPSAnKycuY2hhckNvZGVBdCgwKSwgCiAgICBtaW51c0NoYXIgPSAnLScuY2hhckNvZGVBdCgwKSwKICAgIGFuZENoYXIgPSAnJicuY2hhckNvZGVBdCgwKTsKClV0ZjdEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1ZikgewogICAgdmFyIHJlcyA9ICIiLCBsYXN0SSA9IDAsCiAgICAgICAgaW5CYXNlNjQgPSB0aGlzLmluQmFzZTY0LAogICAgICAgIGJhc2U2NEFjY3VtID0gdGhpcy5iYXNlNjRBY2N1bTsKCiAgICAvLyBUaGUgZGVjb2RlciBpcyBtb3JlIGludm9sdmVkIGFzIHdlIG11c3QgaGFuZGxlIGNodW5rcyBpbiBzdHJlYW0uCgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAoIWluQmFzZTY0KSB7IC8vIFdlJ3JlIGluIGRpcmVjdCBtb2RlLgogICAgICAgICAgICAvLyBXcml0ZSBkaXJlY3QgY2hhcnMgdW50aWwgJysnCiAgICAgICAgICAgIGlmIChidWZbaV0gPT0gcGx1c0NoYXIpIHsKICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEksIGkpLCAiYXNjaWkiKTsgLy8gV3JpdGUgZGlyZWN0IGNoYXJzLgogICAgICAgICAgICAgICAgbGFzdEkgPSBpKzE7CiAgICAgICAgICAgICAgICBpbkJhc2U2NCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgeyAvLyBXZSBkZWNvZGUgYmFzZTY0LgogICAgICAgICAgICBpZiAoIWJhc2U2NENoYXJzW2J1ZltpXV0pIHsgLy8gQmFzZTY0IGVuZGVkLgogICAgICAgICAgICAgICAgaWYgKGkgPT0gbGFzdEkgJiYgYnVmW2ldID09IG1pbnVzQ2hhcikgey8vICIrLSIgLT4gIisiCiAgICAgICAgICAgICAgICAgICAgcmVzICs9ICIrIjsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgYnVmLnNsaWNlKGxhc3RJLCBpKS50b1N0cmluZygpOwogICAgICAgICAgICAgICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShuZXcgQnVmZmVyKGI2NHN0ciwgJ2Jhc2U2NCcpLCAidXRmMTYtYmUiKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoYnVmW2ldICE9IG1pbnVzQ2hhcikgLy8gTWludXMgaXMgYWJzb3JiZWQgYWZ0ZXIgYmFzZTY0LgogICAgICAgICAgICAgICAgICAgIGktLTsKCiAgICAgICAgICAgICAgICBsYXN0SSA9IGkrMTsKICAgICAgICAgICAgICAgIGluQmFzZTY0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBiYXNlNjRBY2N1bSA9ICcnOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGlmICghaW5CYXNlNjQpIHsKICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJKSwgImFzY2lpIik7IC8vIFdyaXRlIGRpcmVjdCBjaGFycy4KICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgYnVmLnNsaWNlKGxhc3RJKS50b1N0cmluZygpOwoKICAgICAgICB2YXIgY2FuQmVEZWNvZGVkID0gYjY0c3RyLmxlbmd0aCAtIChiNjRzdHIubGVuZ3RoICUgOCk7IC8vIE1pbmltYWwgY2h1bms6IDIgcXVhZHMgLT4gMngzIGJ5dGVzIC0+IDMgY2hhcnMuCiAgICAgICAgYmFzZTY0QWNjdW0gPSBiNjRzdHIuc2xpY2UoY2FuQmVEZWNvZGVkKTsgLy8gVGhlIHJlc3Qgd2lsbCBiZSBkZWNvZGVkIGluIGZ1dHVyZS4KICAgICAgICBiNjRzdHIgPSBiNjRzdHIuc2xpY2UoMCwgY2FuQmVEZWNvZGVkKTsKCiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKG5ldyBCdWZmZXIoYjY0c3RyLCAnYmFzZTY0JyksICJ1dGYxNi1iZSIpOwogICAgfQoKICAgIHRoaXMuaW5CYXNlNjQgPSBpbkJhc2U2NDsKICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBiYXNlNjRBY2N1bTsKCiAgICByZXR1cm4gcmVzOwp9CgpVdGY3RGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgcmVzID0gIiI7CiAgICBpZiAodGhpcy5pbkJhc2U2NCAmJiB0aGlzLmJhc2U2NEFjY3VtLmxlbmd0aCA+IDApCiAgICAgICAgcmVzID0gdGhpcy5pY29udi5kZWNvZGUobmV3IEJ1ZmZlcih0aGlzLmJhc2U2NEFjY3VtLCAnYmFzZTY0JyksICJ1dGYxNi1iZSIpOwoKICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTsKICAgIHRoaXMuYmFzZTY0QWNjdW0gPSAnJzsKICAgIHJldHVybiByZXM7Cn0KCgovLyBVVEYtNy1JTUFQIGNvZGVjLgovLyBSRkMzNTAxIFNlYy4gNS4xLjMgTW9kaWZpZWQgVVRGLTcgKGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzM1MDEjc2VjdGlvbi01LjEuMykKLy8gRGlmZmVyZW5jZXM6Ci8vICAqIEJhc2U2NCBwYXJ0IGlzIHN0YXJ0ZWQgYnkgIiYiIGluc3RlYWQgb2YgIisiCi8vICAqIERpcmVjdCBjaGFyYWN0ZXJzIGFyZSAweDIwLTB4N0UsIGV4Y2VwdCAiJiIgKDB4MjYpCi8vICAqIEluIEJhc2U2NCwgIiwiIGlzIHVzZWQgaW5zdGVhZCBvZiAiLyIKLy8gICogQmFzZTY0IG11c3Qgbm90IGJlIHVzZWQgdG8gcmVwcmVzZW50IGRpcmVjdCBjaGFyYWN0ZXJzLgovLyAgKiBObyBpbXBsaWNpdCBzaGlmdCBiYWNrIGZyb20gQmFzZTY0IChzaG91bGQgYWx3YXlzIGVuZCB3aXRoICctJykKLy8gICogU3RyaW5nIG11c3QgZW5kIGluIG5vbi1zaGlmdGVkIHBvc2l0aW9uLgovLyAgKiAiLSYiIHdoaWxlIGluIGJhc2U2NCBpcyBub3QgYWxsb3dlZC4KCgpleHBvcnRzLnV0ZjdpbWFwID0gVXRmN0lNQVBDb2RlYzsKZnVuY3Rpb24gVXRmN0lNQVBDb2RlYyhjb2RlY09wdGlvbnMsIGljb252KSB7CiAgICB0aGlzLmljb252ID0gaWNvbnY7Cn07CgpVdGY3SU1BUENvZGVjLnByb3RvdHlwZS5lbmNvZGVyID0gVXRmN0lNQVBFbmNvZGVyOwpVdGY3SU1BUENvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gVXRmN0lNQVBEZWNvZGVyOwpVdGY3SU1BUENvZGVjLnByb3RvdHlwZS5ib21Bd2FyZSA9IHRydWU7CgoKLy8gLS0gRW5jb2RpbmcKCmZ1bmN0aW9uIFV0ZjdJTUFQRW5jb2RlcihvcHRpb25zLCBjb2RlYykgewogICAgdGhpcy5pY29udiA9IGNvZGVjLmljb252OwogICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlOwogICAgdGhpcy5iYXNlNjRBY2N1bSA9IG5ldyBCdWZmZXIoNik7CiAgICB0aGlzLmJhc2U2NEFjY3VtSWR4ID0gMDsKfQoKVXRmN0lNQVBFbmNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHN0cikgewogICAgdmFyIGluQmFzZTY0ID0gdGhpcy5pbkJhc2U2NCwKICAgICAgICBiYXNlNjRBY2N1bSA9IHRoaXMuYmFzZTY0QWNjdW0sCiAgICAgICAgYmFzZTY0QWNjdW1JZHggPSB0aGlzLmJhc2U2NEFjY3VtSWR4LAogICAgICAgIGJ1ZiA9IG5ldyBCdWZmZXIoc3RyLmxlbmd0aCo1ICsgMTApLCBidWZJZHggPSAwOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIHVDaGFyID0gc3RyLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgaWYgKDB4MjAgPD0gdUNoYXIgJiYgdUNoYXIgPD0gMHg3RSkgeyAvLyBEaXJlY3QgY2hhcmFjdGVyIG9yICcmJy4KICAgICAgICAgICAgaWYgKGluQmFzZTY0KSB7CiAgICAgICAgICAgICAgICBpZiAoYmFzZTY0QWNjdW1JZHggPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgYnVmSWR4ICs9IGJ1Zi53cml0ZShiYXNlNjRBY2N1bS5zbGljZSgwLCBiYXNlNjRBY2N1bUlkeCkudG9TdHJpbmcoJ2Jhc2U2NCcpLnJlcGxhY2UoL1wvL2csICcsJykucmVwbGFjZSgvPSskLywgJycpLCBidWZJZHgpOwogICAgICAgICAgICAgICAgICAgIGJhc2U2NEFjY3VtSWR4ID0gMDsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBidWZbYnVmSWR4KytdID0gbWludXNDaGFyOyAvLyBXcml0ZSAnLScsIHRoZW4gZ28gdG8gZGlyZWN0IG1vZGUuCiAgICAgICAgICAgICAgICBpbkJhc2U2NCA9IGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIWluQmFzZTY0KSB7CiAgICAgICAgICAgICAgICBidWZbYnVmSWR4KytdID0gdUNoYXI7IC8vIFdyaXRlIGRpcmVjdCBjaGFyYWN0ZXIKCiAgICAgICAgICAgICAgICBpZiAodUNoYXIgPT09IGFuZENoYXIpICAvLyBBbXBlcnNhbmQgLT4gJyYtJwogICAgICAgICAgICAgICAgICAgIGJ1ZltidWZJZHgrK10gPSBtaW51c0NoYXI7CiAgICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIHsgLy8gTm9uLWRpcmVjdCBjaGFyYWN0ZXIKICAgICAgICAgICAgaWYgKCFpbkJhc2U2NCkgewogICAgICAgICAgICAgICAgYnVmW2J1ZklkeCsrXSA9IGFuZENoYXI7IC8vIFdyaXRlICcmJywgdGhlbiBnbyB0byBiYXNlNjQgbW9kZS4KICAgICAgICAgICAgICAgIGluQmFzZTY0ID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW5CYXNlNjQpIHsKICAgICAgICAgICAgICAgIGJhc2U2NEFjY3VtW2Jhc2U2NEFjY3VtSWR4KytdID0gdUNoYXIgPj4gODsKICAgICAgICAgICAgICAgIGJhc2U2NEFjY3VtW2Jhc2U2NEFjY3VtSWR4KytdID0gdUNoYXIgJiAweEZGOwoKICAgICAgICAgICAgICAgIGlmIChiYXNlNjRBY2N1bUlkeCA9PSBiYXNlNjRBY2N1bS5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBidWZJZHggKz0gYnVmLndyaXRlKGJhc2U2NEFjY3VtLnRvU3RyaW5nKCdiYXNlNjQnKS5yZXBsYWNlKC9cLy9nLCAnLCcpLCBidWZJZHgpOwogICAgICAgICAgICAgICAgICAgIGJhc2U2NEFjY3VtSWR4ID0gMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICB0aGlzLmluQmFzZTY0ID0gaW5CYXNlNjQ7CiAgICB0aGlzLmJhc2U2NEFjY3VtSWR4ID0gYmFzZTY0QWNjdW1JZHg7CgogICAgcmV0dXJuIGJ1Zi5zbGljZSgwLCBidWZJZHgpOwp9CgpVdGY3SU1BUEVuY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGJ1ZiA9IG5ldyBCdWZmZXIoMTApLCBidWZJZHggPSAwOwogICAgaWYgKHRoaXMuaW5CYXNlNjQpIHsKICAgICAgICBpZiAodGhpcy5iYXNlNjRBY2N1bUlkeCA+IDApIHsKICAgICAgICAgICAgYnVmSWR4ICs9IGJ1Zi53cml0ZSh0aGlzLmJhc2U2NEFjY3VtLnNsaWNlKDAsIHRoaXMuYmFzZTY0QWNjdW1JZHgpLnRvU3RyaW5nKCdiYXNlNjQnKS5yZXBsYWNlKC9cLy9nLCAnLCcpLnJlcGxhY2UoLz0rJC8sICcnKSwgYnVmSWR4KTsKICAgICAgICAgICAgdGhpcy5iYXNlNjRBY2N1bUlkeCA9IDA7CiAgICAgICAgfQoKICAgICAgICBidWZbYnVmSWR4KytdID0gbWludXNDaGFyOyAvLyBXcml0ZSAnLScsIHRoZW4gZ28gdG8gZGlyZWN0IG1vZGUuCiAgICAgICAgdGhpcy5pbkJhc2U2NCA9IGZhbHNlOwogICAgfQoKICAgIHJldHVybiBidWYuc2xpY2UoMCwgYnVmSWR4KTsKfQoKCi8vIC0tIERlY29kaW5nCgpmdW5jdGlvbiBVdGY3SU1BUERlY29kZXIob3B0aW9ucywgY29kZWMpIHsKICAgIHRoaXMuaWNvbnYgPSBjb2RlYy5pY29udjsKICAgIHRoaXMuaW5CYXNlNjQgPSBmYWxzZTsKICAgIHRoaXMuYmFzZTY0QWNjdW0gPSAnJzsKfQoKdmFyIGJhc2U2NElNQVBDaGFycyA9IGJhc2U2NENoYXJzLnNsaWNlKCk7CmJhc2U2NElNQVBDaGFyc1snLCcuY2hhckNvZGVBdCgwKV0gPSB0cnVlOwoKVXRmN0lNQVBEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1ZikgewogICAgdmFyIHJlcyA9ICIiLCBsYXN0SSA9IDAsCiAgICAgICAgaW5CYXNlNjQgPSB0aGlzLmluQmFzZTY0LAogICAgICAgIGJhc2U2NEFjY3VtID0gdGhpcy5iYXNlNjRBY2N1bTsKCiAgICAvLyBUaGUgZGVjb2RlciBpcyBtb3JlIGludm9sdmVkIGFzIHdlIG11c3QgaGFuZGxlIGNodW5rcyBpbiBzdHJlYW0uCiAgICAvLyBJdCBpcyBmb3JnaXZpbmcsIGNsb3NlciB0byBzdGFuZGFyZCBVVEYtNyAoZm9yIGV4YW1wbGUsICctJyBpcyBvcHRpb25hbCBhdCB0aGUgZW5kKS4KCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1Zi5sZW5ndGg7IGkrKykgewogICAgICAgIGlmICghaW5CYXNlNjQpIHsgLy8gV2UncmUgaW4gZGlyZWN0IG1vZGUuCiAgICAgICAgICAgIC8vIFdyaXRlIGRpcmVjdCBjaGFycyB1bnRpbCAnJicKICAgICAgICAgICAgaWYgKGJ1ZltpXSA9PSBhbmRDaGFyKSB7CiAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUoYnVmLnNsaWNlKGxhc3RJLCBpKSwgImFzY2lpIik7IC8vIFdyaXRlIGRpcmVjdCBjaGFycy4KICAgICAgICAgICAgICAgIGxhc3RJID0gaSsxOwogICAgICAgICAgICAgICAgaW5CYXNlNjQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsgLy8gV2UgZGVjb2RlIGJhc2U2NC4KICAgICAgICAgICAgaWYgKCFiYXNlNjRJTUFQQ2hhcnNbYnVmW2ldXSkgeyAvLyBCYXNlNjQgZW5kZWQuCiAgICAgICAgICAgICAgICBpZiAoaSA9PSBsYXN0SSAmJiBidWZbaV0gPT0gbWludXNDaGFyKSB7IC8vICImLSIgLT4gIiYiCiAgICAgICAgICAgICAgICAgICAgcmVzICs9ICImIjsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGI2NHN0ciA9IGJhc2U2NEFjY3VtICsgYnVmLnNsaWNlKGxhc3RJLCBpKS50b1N0cmluZygpLnJlcGxhY2UoLywvZywgJy8nKTsKICAgICAgICAgICAgICAgICAgICByZXMgKz0gdGhpcy5pY29udi5kZWNvZGUobmV3IEJ1ZmZlcihiNjRzdHIsICdiYXNlNjQnKSwgInV0ZjE2LWJlIik7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGJ1ZltpXSAhPSBtaW51c0NoYXIpIC8vIE1pbnVzIG1heSBiZSBhYnNvcmJlZCBhZnRlciBiYXNlNjQuCiAgICAgICAgICAgICAgICAgICAgaS0tOwoKICAgICAgICAgICAgICAgIGxhc3RJID0gaSsxOwogICAgICAgICAgICAgICAgaW5CYXNlNjQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGJhc2U2NEFjY3VtID0gJyc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaWYgKCFpbkJhc2U2NCkgewogICAgICAgIHJlcyArPSB0aGlzLmljb252LmRlY29kZShidWYuc2xpY2UobGFzdEkpLCAiYXNjaWkiKTsgLy8gV3JpdGUgZGlyZWN0IGNoYXJzLgogICAgfSBlbHNlIHsKICAgICAgICB2YXIgYjY0c3RyID0gYmFzZTY0QWNjdW0gKyBidWYuc2xpY2UobGFzdEkpLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCAnLycpOwoKICAgICAgICB2YXIgY2FuQmVEZWNvZGVkID0gYjY0c3RyLmxlbmd0aCAtIChiNjRzdHIubGVuZ3RoICUgOCk7IC8vIE1pbmltYWwgY2h1bms6IDIgcXVhZHMgLT4gMngzIGJ5dGVzIC0+IDMgY2hhcnMuCiAgICAgICAgYmFzZTY0QWNjdW0gPSBiNjRzdHIuc2xpY2UoY2FuQmVEZWNvZGVkKTsgLy8gVGhlIHJlc3Qgd2lsbCBiZSBkZWNvZGVkIGluIGZ1dHVyZS4KICAgICAgICBiNjRzdHIgPSBiNjRzdHIuc2xpY2UoMCwgY2FuQmVEZWNvZGVkKTsKCiAgICAgICAgcmVzICs9IHRoaXMuaWNvbnYuZGVjb2RlKG5ldyBCdWZmZXIoYjY0c3RyLCAnYmFzZTY0JyksICJ1dGYxNi1iZSIpOwogICAgfQoKICAgIHRoaXMuaW5CYXNlNjQgPSBpbkJhc2U2NDsKICAgIHRoaXMuYmFzZTY0QWNjdW0gPSBiYXNlNjRBY2N1bTsKCiAgICByZXR1cm4gcmVzOwp9CgpVdGY3SU1BUERlY29kZXIucHJvdG90eXBlLmVuZCA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHJlcyA9ICIiOwogICAgaWYgKHRoaXMuaW5CYXNlNjQgJiYgdGhpcy5iYXNlNjRBY2N1bS5sZW5ndGggPiAwKQogICAgICAgIHJlcyA9IHRoaXMuaWNvbnYuZGVjb2RlKG5ldyBCdWZmZXIodGhpcy5iYXNlNjRBY2N1bSwgJ2Jhc2U2NCcpLCAidXRmMTYtYmUiKTsKCiAgICB0aGlzLmluQmFzZTY0ID0gZmFsc2U7CiAgICB0aGlzLmJhc2U2NEFjY3VtID0gJyc7CiAgICByZXR1cm4gcmVzOwp9CgoKCgovKioqLyB9KSwKLyogMTc1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCnZhciBCdWZmZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpLkJ1ZmZlcjsKCi8vIFNpbmdsZS1ieXRlIGNvZGVjLiBOZWVkcyBhICdjaGFycycgc3RyaW5nIHBhcmFtZXRlciB0aGF0IGNvbnRhaW5zIDI1NiBvciAxMjggY2hhcnMgdGhhdAovLyBjb3JyZXNwb25kIHRvIGVuY29kZWQgYnl0ZXMgKGlmIDEyOCAtIHRoZW4gbG93ZXIgaGFsZiBpcyBBU0NJSSkuIAoKZXhwb3J0cy5fc2JjcyA9IFNCQ1NDb2RlYzsKZnVuY3Rpb24gU0JDU0NvZGVjKGNvZGVjT3B0aW9ucywgaWNvbnYpIHsKICAgIGlmICghY29kZWNPcHRpb25zKQogICAgICAgIHRocm93IG5ldyBFcnJvcigiU0JDUyBjb2RlYyBpcyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0YS4iKQogICAgCiAgICAvLyBQcmVwYXJlIGNoYXIgYnVmZmVyIGZvciBkZWNvZGluZy4KICAgIGlmICghY29kZWNPcHRpb25zLmNoYXJzIHx8IChjb2RlY09wdGlvbnMuY2hhcnMubGVuZ3RoICE9PSAxMjggJiYgY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aCAhPT0gMjU2KSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVuY29kaW5nICciK2NvZGVjT3B0aW9ucy50eXBlKyInIGhhcyBpbmNvcnJlY3QgJ2NoYXJzJyAobXVzdCBiZSBvZiBsZW4gMTI4IG9yIDI1NikiKTsKICAgIAogICAgaWYgKGNvZGVjT3B0aW9ucy5jaGFycy5sZW5ndGggPT09IDEyOCkgewogICAgICAgIHZhciBhc2NpaVN0cmluZyA9ICIiOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTI4OyBpKyspCiAgICAgICAgICAgIGFzY2lpU3RyaW5nICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoaSk7CiAgICAgICAgY29kZWNPcHRpb25zLmNoYXJzID0gYXNjaWlTdHJpbmcgKyBjb2RlY09wdGlvbnMuY2hhcnM7CiAgICB9CgogICAgdGhpcy5kZWNvZGVCdWYgPSBuZXcgQnVmZmVyKGNvZGVjT3B0aW9ucy5jaGFycywgJ3VjczInKTsKICAgIAogICAgLy8gRW5jb2RpbmcgYnVmZmVyLgogICAgdmFyIGVuY29kZUJ1ZiA9IG5ldyBCdWZmZXIoNjU1MzYpOwogICAgZW5jb2RlQnVmLmZpbGwoaWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCkpOwoKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29kZWNPcHRpb25zLmNoYXJzLmxlbmd0aDsgaSsrKQogICAgICAgIGVuY29kZUJ1Zltjb2RlY09wdGlvbnMuY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwoKICAgIHRoaXMuZW5jb2RlQnVmID0gZW5jb2RlQnVmOwp9CgpTQkNTQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBTQkNTRW5jb2RlcjsKU0JDU0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gU0JDU0RlY29kZXI7CgoKZnVuY3Rpb24gU0JDU0VuY29kZXIob3B0aW9ucywgY29kZWMpIHsKICAgIHRoaXMuZW5jb2RlQnVmID0gY29kZWMuZW5jb2RlQnVmOwp9CgpTQkNTRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHsKICAgIHZhciBidWYgPSBuZXcgQnVmZmVyKHN0ci5sZW5ndGgpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspCiAgICAgICAgYnVmW2ldID0gdGhpcy5lbmNvZGVCdWZbc3RyLmNoYXJDb2RlQXQoaSldOwogICAgCiAgICByZXR1cm4gYnVmOwp9CgpTQkNTRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7Cn0KCgpmdW5jdGlvbiBTQkNTRGVjb2RlcihvcHRpb25zLCBjb2RlYykgewogICAgdGhpcy5kZWNvZGVCdWYgPSBjb2RlYy5kZWNvZGVCdWY7Cn0KClNCQ1NEZWNvZGVyLnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKGJ1ZikgewogICAgLy8gU3RyaW5ncyBhcmUgaW1tdXRhYmxlIGluIEpTIC0+IHdlIHVzZSB1Y3MyIGJ1ZmZlciB0byBzcGVlZCB1cCBjb21wdXRhdGlvbnMuCiAgICB2YXIgZGVjb2RlQnVmID0gdGhpcy5kZWNvZGVCdWY7CiAgICB2YXIgbmV3QnVmID0gbmV3IEJ1ZmZlcihidWYubGVuZ3RoKjIpOwogICAgdmFyIGlkeDEgPSAwLCBpZHgyID0gMDsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWR4MSA9IGJ1ZltpXSoyOyBpZHgyID0gaSoyOwogICAgICAgIG5ld0J1ZltpZHgyXSA9IGRlY29kZUJ1ZltpZHgxXTsKICAgICAgICBuZXdCdWZbaWR4MisxXSA9IGRlY29kZUJ1ZltpZHgxKzFdOwogICAgfQogICAgcmV0dXJuIG5ld0J1Zi50b1N0cmluZygndWNzMicpOwp9CgpTQkNTRGVjb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7Cn0KCgovKioqLyB9KSwKLyogMTc2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgovLyBNYW51YWxseSBhZGRlZCBkYXRhIHRvIGJlIHVzZWQgYnkgc2JjcyBjb2RlYyBpbiBhZGRpdGlvbiB0byBnZW5lcmF0ZWQgb25lLgoKbW9kdWxlLmV4cG9ydHMgPSB7CiAgICAvLyBOb3Qgc3VwcG9ydGVkIGJ5IGljb252LCBub3Qgc3VyZSB3aHkuCiAgICAiMTAwMjkiOiAibWFjY2VudGV1cm8iLAogICAgIm1hY2NlbnRldXJvIjogewogICAgICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICAgICAiY2hhcnMiOiAiw4TEgMSBw4nEhMOWw5zDocSFxIzDpMSNxIbEh8OpxbnFusSOw63Ej8SSxJPElsOzxJfDtMO2w7XDusSaxJvDvOKAoMKwxJjCo8Kn4oCiwrbDn8KuwqnihKLEmcKo4omgxKPErsSvxKriiaTiiaXEq8S24oiC4oiRxYLEu8S8xL3EvsS5xLrFhcWGxYPCrOKImsWExYfiiIbCq8K74oCmwqDFiMWQw5XFkcWM4oCT4oCU4oCc4oCd4oCY4oCZw7fil4rFjcWUxZXFmOKAueKAusWZxZbFl8Wg4oCa4oCexaHFmsWbw4HFpMWlw43FvcW+xarDk8OUxavFrsOaxa/FsMWxxbLFs8Odw73Et8W7xYHFvMSiy4ciCiAgICB9LAoKICAgICI4MDgiOiAiY3A4MDgiLAogICAgImlibTgwOCI6ICJjcDgwOCIsCiAgICAiY3A4MDgiOiB7CiAgICAgICAgInR5cGUiOiAiX3NiY3MiLAogICAgICAgICJjaGFycyI6ICLQkNCR0JLQk9CU0JXQltCX0JjQmdCa0JvQnNCd0J7Qn9Cg0KHQotCj0KTQpdCm0KfQqNCp0KrQq9Cs0K3QrtCv0LDQsdCy0LPQtNC10LbQt9C40LnQutC70LzQvdC+0L/ilpHilpLilpPilILilKTilaHilaLilZbilZXilaPilZHilZfilZ3ilZzilZvilJDilJTilLTilKzilJzilIDilLzilZ7ilZ/ilZrilZTilanilabilaDilZDilazilafilajilaTilaXilZnilZjilZLilZPilavilarilJjilIzilojiloTilozilpDiloDRgNGB0YLRg9GE0YXRhtGH0YjRidGK0YvRjNGN0Y7Rj9CB0ZHQhNGU0IfRl9CO0Z7CsOKImcK34oia4oSW4oKs4pagwqAiCiAgICB9LAoKICAgIC8vIEFsaWFzZXMgb2YgZ2VuZXJhdGVkIGVuY29kaW5ncy4KICAgICJhc2NpaThiaXQiOiAiYXNjaWkiLAogICAgInVzYXNjaWkiOiAiYXNjaWkiLAogICAgImFuc2l4MzQiOiAiYXNjaWkiLAogICAgImFuc2l4MzQxOTY4IjogImFzY2lpIiwKICAgICJhbnNpeDM0MTk4NiI6ICJhc2NpaSIsCiAgICAiY3Nhc2NpaSI6ICJhc2NpaSIsCiAgICAiY3AzNjciOiAiYXNjaWkiLAogICAgImlibTM2NyI6ICJhc2NpaSIsCiAgICAiaXNvaXI2IjogImFzY2lpIiwKICAgICJpc282NDZ1cyI6ICJhc2NpaSIsCiAgICAiaXNvNjQ2aXJ2IjogImFzY2lpIiwKICAgICJ1cyI6ICJhc2NpaSIsCgogICAgImxhdGluMSI6ICJpc284ODU5MSIsCiAgICAibGF0aW4yIjogImlzbzg4NTkyIiwKICAgICJsYXRpbjMiOiAiaXNvODg1OTMiLAogICAgImxhdGluNCI6ICJpc284ODU5NCIsCiAgICAibGF0aW41IjogImlzbzg4NTk5IiwKICAgICJsYXRpbjYiOiAiaXNvODg1OTEwIiwKICAgICJsYXRpbjciOiAiaXNvODg1OTEzIiwKICAgICJsYXRpbjgiOiAiaXNvODg1OTE0IiwKICAgICJsYXRpbjkiOiAiaXNvODg1OTE1IiwKICAgICJsYXRpbjEwIjogImlzbzg4NTkxNiIsCgogICAgImNzaXNvbGF0aW4xIjogImlzbzg4NTkxIiwKICAgICJjc2lzb2xhdGluMiI6ICJpc284ODU5MiIsCiAgICAiY3Npc29sYXRpbjMiOiAiaXNvODg1OTMiLAogICAgImNzaXNvbGF0aW40IjogImlzbzg4NTk0IiwKICAgICJjc2lzb2xhdGluY3lyaWxsaWMiOiAiaXNvODg1OTUiLAogICAgImNzaXNvbGF0aW5hcmFiaWMiOiAiaXNvODg1OTYiLAogICAgImNzaXNvbGF0aW5ncmVlayIgOiAiaXNvODg1OTciLAogICAgImNzaXNvbGF0aW5oZWJyZXciOiAiaXNvODg1OTgiLAogICAgImNzaXNvbGF0aW41IjogImlzbzg4NTk5IiwKICAgICJjc2lzb2xhdGluNiI6ICJpc284ODU5MTAiLAoKICAgICJsMSI6ICJpc284ODU5MSIsCiAgICAibDIiOiAiaXNvODg1OTIiLAogICAgImwzIjogImlzbzg4NTkzIiwKICAgICJsNCI6ICJpc284ODU5NCIsCiAgICAibDUiOiAiaXNvODg1OTkiLAogICAgImw2IjogImlzbzg4NTkxMCIsCiAgICAibDciOiAiaXNvODg1OTEzIiwKICAgICJsOCI6ICJpc284ODU5MTQiLAogICAgImw5IjogImlzbzg4NTkxNSIsCiAgICAibDEwIjogImlzbzg4NTkxNiIsCgogICAgImlzb2lyMTQiOiAiaXNvNjQ2anAiLAogICAgImlzb2lyNTciOiAiaXNvNjQ2Y24iLAogICAgImlzb2lyMTAwIjogImlzbzg4NTkxIiwKICAgICJpc29pcjEwMSI6ICJpc284ODU5MiIsCiAgICAiaXNvaXIxMDkiOiAiaXNvODg1OTMiLAogICAgImlzb2lyMTEwIjogImlzbzg4NTk0IiwKICAgICJpc29pcjE0NCI6ICJpc284ODU5NSIsCiAgICAiaXNvaXIxMjciOiAiaXNvODg1OTYiLAogICAgImlzb2lyMTI2IjogImlzbzg4NTk3IiwKICAgICJpc29pcjEzOCI6ICJpc284ODU5OCIsCiAgICAiaXNvaXIxNDgiOiAiaXNvODg1OTkiLAogICAgImlzb2lyMTU3IjogImlzbzg4NTkxMCIsCiAgICAiaXNvaXIxNjYiOiAidGlzNjIwIiwKICAgICJpc29pcjE3OSI6ICJpc284ODU5MTMiLAogICAgImlzb2lyMTk5IjogImlzbzg4NTkxNCIsCiAgICAiaXNvaXIyMDMiOiAiaXNvODg1OTE1IiwKICAgICJpc29pcjIyNiI6ICJpc284ODU5MTYiLAoKICAgICJjcDgxOSI6ICJpc284ODU5MSIsCiAgICAiaWJtODE5IjogImlzbzg4NTkxIiwKCiAgICAiY3lyaWxsaWMiOiAiaXNvODg1OTUiLAoKICAgICJhcmFiaWMiOiAiaXNvODg1OTYiLAogICAgImFyYWJpYzgiOiAiaXNvODg1OTYiLAogICAgImVjbWExMTQiOiAiaXNvODg1OTYiLAogICAgImFzbW83MDgiOiAiaXNvODg1OTYiLAoKICAgICJncmVlayIgOiAiaXNvODg1OTciLAogICAgImdyZWVrOCIgOiAiaXNvODg1OTciLAogICAgImVjbWExMTgiIDogImlzbzg4NTk3IiwKICAgICJlbG90OTI4IiA6ICJpc284ODU5NyIsCgogICAgImhlYnJldyI6ICJpc284ODU5OCIsCiAgICAiaGVicmV3OCI6ICJpc284ODU5OCIsCgogICAgInR1cmtpc2giOiAiaXNvODg1OTkiLAogICAgInR1cmtpc2g4IjogImlzbzg4NTk5IiwKCiAgICAidGhhaSI6ICJpc284ODU5MTEiLAogICAgInRoYWk4IjogImlzbzg4NTkxMSIsCgogICAgImNlbHRpYyI6ICJpc284ODU5MTQiLAogICAgImNlbHRpYzgiOiAiaXNvODg1OTE0IiwKICAgICJpc29jZWx0aWMiOiAiaXNvODg1OTE0IiwKCiAgICAidGlzNjIwMCI6ICJ0aXM2MjAiLAogICAgInRpczYyMDI1MjkxIjogInRpczYyMCIsCiAgICAidGlzNjIwMjUzMzAiOiAidGlzNjIwIiwKCiAgICAiMTAwMDAiOiAibWFjcm9tYW4iLAogICAgIjEwMDA2IjogIm1hY2dyZWVrIiwKICAgICIxMDAwNyI6ICJtYWNjeXJpbGxpYyIsCiAgICAiMTAwNzkiOiAibWFjaWNlbGFuZCIsCiAgICAiMTAwODEiOiAibWFjdHVya2lzaCIsCgogICAgImNzcGM4Y29kZXBhZ2U0MzciOiAiY3A0MzciLAogICAgImNzcGM3NzViYWx0aWMiOiAiY3A3NzUiLAogICAgImNzcGM4NTBtdWx0aWxpbmd1YWwiOiAiY3A4NTAiLAogICAgImNzcGNwODUyIjogImNwODUyIiwKICAgICJjc3BjODYybGF0aW5oZWJyZXciOiAiY3A4NjIiLAogICAgImNwZ3IiOiAiY3A4NjkiLAoKICAgICJtc2VlIjogImNwMTI1MCIsCiAgICAibXNjeXJsIjogImNwMTI1MSIsCiAgICAibXNhbnNpIjogImNwMTI1MiIsCiAgICAibXNncmVlayI6ICJjcDEyNTMiLAogICAgIm1zdHVyayI6ICJjcDEyNTQiLAogICAgIm1zaGViciI6ICJjcDEyNTUiLAogICAgIm1zYXJhYiI6ICJjcDEyNTYiLAogICAgIndpbmJhbHRyaW0iOiAiY3AxMjU3IiwKCiAgICAiY3AyMDg2NiI6ICJrb2k4ciIsCiAgICAiMjA4NjYiOiAia29pOHIiLAogICAgImlibTg3OCI6ICJrb2k4ciIsCiAgICAiY3Nrb2k4ciI6ICJrb2k4ciIsCgogICAgImNwMjE4NjYiOiAia29pOHUiLAogICAgIjIxODY2IjogImtvaTh1IiwKICAgICJpYm0xMTY4IjogImtvaTh1IiwKCiAgICAic3RyazEwNDgyMDAyIjogInJrMTA0OCIsCgogICAgInRjdm41NzEyIjogInRjdm4iLAogICAgInRjdm41NzEyMSI6ICJ0Y3ZuIiwKCiAgICAiZ2IxOTg4ODAiOiAiaXNvNjQ2Y24iLAogICAgImNuIjogImlzbzY0NmNuIiwKCiAgICAiY3Npc28xNGppc2M2MjIwcm8iOiAiaXNvNjQ2anAiLAogICAgImppc2M2MjIwMTk2OXJvIjogImlzbzY0NmpwIiwKICAgICJqcCI6ICJpc282NDZqcCIsCgogICAgImNzaHByb21hbjgiOiAiaHByb21hbjgiLAogICAgInI4IjogImhwcm9tYW44IiwKICAgICJyb21hbjgiOiAiaHByb21hbjgiLAogICAgInhyb21hbjgiOiAiaHByb21hbjgiLAogICAgImlibTEwNTEiOiAiaHByb21hbjgiLAoKICAgICJtYWMiOiAibWFjaW50b3NoIiwKICAgICJjc21hY2ludG9zaCI6ICJtYWNpbnRvc2giLAp9OwoKCgovKioqLyB9KSwKLyogMTc3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgovLyBHZW5lcmF0ZWQgZGF0YSBmb3Igc2JjcyBjb2RlYy4gRG9uJ3QgZWRpdCBtYW51YWxseS4gUmVnZW5lcmF0ZSB1c2luZyBnZW5lcmF0aW9uL2dlbi1zYmNzLmpzIHNjcmlwdC4KbW9kdWxlLmV4cG9ydHMgPSB7CiAgIjQzNyI6ICJjcDQzNyIsCiAgIjczNyI6ICJjcDczNyIsCiAgIjc3NSI6ICJjcDc3NSIsCiAgIjg1MCI6ICJjcDg1MCIsCiAgIjg1MiI6ICJjcDg1MiIsCiAgIjg1NSI6ICJjcDg1NSIsCiAgIjg1NiI6ICJjcDg1NiIsCiAgIjg1NyI6ICJjcDg1NyIsCiAgIjg1OCI6ICJjcDg1OCIsCiAgIjg2MCI6ICJjcDg2MCIsCiAgIjg2MSI6ICJjcDg2MSIsCiAgIjg2MiI6ICJjcDg2MiIsCiAgIjg2MyI6ICJjcDg2MyIsCiAgIjg2NCI6ICJjcDg2NCIsCiAgIjg2NSI6ICJjcDg2NSIsCiAgIjg2NiI6ICJjcDg2NiIsCiAgIjg2OSI6ICJjcDg2OSIsCiAgIjg3NCI6ICJ3aW5kb3dzODc0IiwKICAiOTIyIjogImNwOTIyIiwKICAiMTA0NiI6ICJjcDEwNDYiLAogICIxMTI0IjogImNwMTEyNCIsCiAgIjExMjUiOiAiY3AxMTI1IiwKICAiMTEyOSI6ICJjcDExMjkiLAogICIxMTMzIjogImNwMTEzMyIsCiAgIjExNjEiOiAiY3AxMTYxIiwKICAiMTE2MiI6ICJjcDExNjIiLAogICIxMTYzIjogImNwMTE2MyIsCiAgIjEyNTAiOiAid2luZG93czEyNTAiLAogICIxMjUxIjogIndpbmRvd3MxMjUxIiwKICAiMTI1MiI6ICJ3aW5kb3dzMTI1MiIsCiAgIjEyNTMiOiAid2luZG93czEyNTMiLAogICIxMjU0IjogIndpbmRvd3MxMjU0IiwKICAiMTI1NSI6ICJ3aW5kb3dzMTI1NSIsCiAgIjEyNTYiOiAid2luZG93czEyNTYiLAogICIxMjU3IjogIndpbmRvd3MxMjU3IiwKICAiMTI1OCI6ICJ3aW5kb3dzMTI1OCIsCiAgIjI4NTkxIjogImlzbzg4NTkxIiwKICAiMjg1OTIiOiAiaXNvODg1OTIiLAogICIyODU5MyI6ICJpc284ODU5MyIsCiAgIjI4NTk0IjogImlzbzg4NTk0IiwKICAiMjg1OTUiOiAiaXNvODg1OTUiLAogICIyODU5NiI6ICJpc284ODU5NiIsCiAgIjI4NTk3IjogImlzbzg4NTk3IiwKICAiMjg1OTgiOiAiaXNvODg1OTgiLAogICIyODU5OSI6ICJpc284ODU5OSIsCiAgIjI4NjAwIjogImlzbzg4NTkxMCIsCiAgIjI4NjAxIjogImlzbzg4NTkxMSIsCiAgIjI4NjAzIjogImlzbzg4NTkxMyIsCiAgIjI4NjA0IjogImlzbzg4NTkxNCIsCiAgIjI4NjA1IjogImlzbzg4NTkxNSIsCiAgIjI4NjA2IjogImlzbzg4NTkxNiIsCiAgIndpbmRvd3M4NzQiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi4oKs77+977+977+977+94oCm77+977+977+977+977+977+977+977+977+977+977+94oCY4oCZ4oCc4oCd4oCi4oCT4oCU77+977+977+977+977+977+977+977+9wqDguIHguILguIPguITguIXguIbguIfguIjguInguIrguIvguIzguI3guI7guI/guJDguJHguJLguJPguJTguJXguJbguJfguJjguJnguJrguJvguJzguJ3guJ7guJ/guKDguKHguKLguKPguKTguKXguKbguKfguKjguKnguKrguKvguKzguK3guK7guK/guLDguLHguLLguLPguLTguLXguLbguLfguLjguLnguLrvv73vv73vv73vv73guL/guYDguYHguYLguYPguYTguYXguYbguYfguYjguYnguYrguYvguYzguY3guY7guY/guZDguZHguZLguZPguZTguZXguZbguZfguZjguZnguZrguZvvv73vv73vv73vv70iCiAgfSwKICAid2luODc0IjogIndpbmRvd3M4NzQiLAogICJjcDg3NCI6ICJ3aW5kb3dzODc0IiwKICAid2luZG93czEyNTAiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi4oKs77+94oCa77+94oCe4oCm4oCg4oCh77+94oCwxaDigLnFmsWkxb3Fue+/veKAmOKAmeKAnOKAneKAouKAk+KAlO+/veKEosWh4oC6xZvFpcW+xbrCoMuHy5jFgcKkxITCpsKnwqjCqcWewqvCrMKtwq7Fu8KwwrHLm8WCwrTCtcK2wrfCuMSFxZ/Cu8S9y53EvsW8xZTDgcOCxILDhMS5xIbDh8SMw4nEmMOLxJrDjcOOxI7EkMWDxYfDk8OUxZDDlsOXxZjFrsOaxbDDnMOdxaLDn8WVw6HDosSDw6TEusSHw6fEjcOpxJnDq8Sbw63DrsSPxJHFhMWIw7PDtMWRw7bDt8WZxa/DusWxw7zDvcWjy5kiCiAgfSwKICAid2luMTI1MCI6ICJ3aW5kb3dzMTI1MCIsCiAgImNwMTI1MCI6ICJ3aW5kb3dzMTI1MCIsCiAgIndpbmRvd3MxMjUxIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogItCC0IPigJrRk+KAnuKApuKAoOKAoeKCrOKAsNCJ4oC50IrQjNCL0I/RkuKAmOKAmeKAnOKAneKAouKAk+KAlO+/veKEotGZ4oC60ZrRnNGb0Z/CoNCO0Z7QiMKk0pDCpsKn0IHCqdCEwqvCrMKtwq7Qh8KwwrHQhtGW0pHCtcK2wrfRkeKEltGUwrvRmNCF0ZXRl9CQ0JHQktCT0JTQldCW0JfQmNCZ0JrQm9Cc0J3QntCf0KDQodCi0KPQpNCl0KbQp9Co0KnQqtCr0KzQrdCu0K/QsNCx0LLQs9C00LXQttC30LjQudC60LvQvNC90L7Qv9GA0YHRgtGD0YTRhdGG0YfRiNGJ0YrRi9GM0Y3RjtGPIgogIH0sCiAgIndpbjEyNTEiOiAid2luZG93czEyNTEiLAogICJjcDEyNTEiOiAid2luZG93czEyNTEiLAogICJ3aW5kb3dzMTI1MiI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLigqzvv73igJrGkuKAnuKApuKAoOKAocuG4oCwxaDigLnFku+/vcW977+977+94oCY4oCZ4oCc4oCd4oCi4oCT4oCUy5zihKLFoeKAusWT77+9xb7FuMKgwqHCosKjwqTCpcKmwqfCqMKpwqrCq8Kswq3CrsKvwrDCscKywrPCtMK1wrbCt8K4wrnCusK7wrzCvcK+wr/DgMOBw4LDg8OEw4XDhsOHw4jDicOKw4vDjMONw47Dj8OQw5HDksOTw5TDlcOWw5fDmMOZw5rDm8Ocw53DnsOfw6DDocOiw6PDpMOlw6bDp8Oow6nDqsOrw6zDrcOuw6/DsMOxw7LDs8O0w7XDtsO3w7jDucO6w7vDvMO9w77DvyIKICB9LAogICJ3aW4xMjUyIjogIndpbmRvd3MxMjUyIiwKICAiY3AxMjUyIjogIndpbmRvd3MxMjUyIiwKICAid2luZG93czEyNTMiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi4oKs77+94oCaxpLigJ7igKbigKDigKHvv73igLDvv73igLnvv73vv73vv73vv73vv73igJjigJnigJzigJ3igKLigJPigJTvv73ihKLvv73igLrvv73vv73vv73vv73CoM6FzobCo8KkwqXCpsKnwqjCqe+/vcKrwqzCrcKu4oCVwrDCscKywrPOhMK1wrbCt86IzonOisK7zozCvc6Ozo/OkM6RzpLOk86UzpXOls6XzpjOmc6azpvOnM6dzp7On86gzqHvv73Oo86kzqXOps6nzqjOqc6qzqvOrM6tzq7Or86wzrHOss6zzrTOtc62zrfOuM65zrrOu868zr3Ovs6/z4DPgc+Cz4PPhM+Fz4bPh8+Iz4nPis+Lz4zPjc+O77+9IgogIH0sCiAgIndpbjEyNTMiOiAid2luZG93czEyNTMiLAogICJjcDEyNTMiOiAid2luZG93czEyNTMiLAogICJ3aW5kb3dzMTI1NCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLigqzvv73igJrGkuKAnuKApuKAoOKAocuG4oCwxaDigLnFku+/ve+/ve+/ve+/veKAmOKAmeKAnOKAneKAouKAk+KAlMuc4oSixaHigLrFk++/ve+/vcW4wqDCocKiwqPCpMKlwqbCp8KowqnCqsKrwqzCrcKuwq/CsMKxwrLCs8K0wrXCtsK3wrjCucK6wrvCvMK9wr7Cv8OAw4HDgsODw4TDhcOGw4fDiMOJw4rDi8OMw43DjsOPxJ7DkcOSw5PDlMOVw5bDl8OYw5nDmsObw5zEsMWew5/DoMOhw6LDo8Okw6XDpsOnw6jDqcOqw6vDrMOtw67Dr8Sfw7HDssOzw7TDtcO2w7fDuMO5w7rDu8O8xLHFn8O/IgogIH0sCiAgIndpbjEyNTQiOiAid2luZG93czEyNTQiLAogICJjcDEyNTQiOiAid2luZG93czEyNTQiLAogICJ3aW5kb3dzMTI1NSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLigqzvv73igJrGkuKAnuKApuKAoOKAocuG4oCw77+94oC577+977+977+977+977+94oCY4oCZ4oCc4oCd4oCi4oCT4oCUy5zihKLvv73igLrvv73vv73vv73vv73CoMKhwqLCo+KCqsKlwqbCp8KowqnDl8KrwqzCrcKuwq/CsMKxwrLCs8K0wrXCtsK3wrjCucO3wrvCvMK9wr7Cv9aw1rHWstaz1rTWtda21rfWuNa51rrWu9a81r3Wvta/14DXgdeC14PXsNex17LXs9e077+977+977+977+977+977+977+915DXkdeS15PXlNeV15bXl9eY15nXmteb15zXndee15/XoNeh16LXo9ek16XXpten16jXqdeq77+977+94oCO4oCP77+9IgogIH0sCiAgIndpbjEyNTUiOiAid2luZG93czEyNTUiLAogICJjcDEyNTUiOiAid2luZG93czEyNTUiLAogICJ3aW5kb3dzMTI1NiI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLigqzZvuKAmsaS4oCe4oCm4oCg4oChy4bigLDZueKAucWS2obamNqI2q/igJjigJnigJzigJ3igKLigJPigJTaqeKEotqR4oC6xZPigIzigI3ausKg2IzCosKjwqTCpcKmwqfCqMKp2r7Cq8Kswq3CrsKvwrDCscKywrPCtMK1wrbCt8K4wrnYm8K7wrzCvcK+2J/bgdih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi2w5fYt9i42LnYutmA2YHZgtmDw6DZhMOi2YXZhtmH2YjDp8Oow6nDqsOr2YnZisOuw6/Zi9mM2Y3ZjsO02Y/ZkMO32ZHDudmSw7vDvOKAjuKAj9uSIgogIH0sCiAgIndpbjEyNTYiOiAid2luZG93czEyNTYiLAogICJjcDEyNTYiOiAid2luZG93czEyNTYiLAogICJ3aW5kb3dzMTI1NyI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLigqzvv73igJrvv73igJ7igKbigKDigKHvv73igLDvv73igLnvv73CqMuHwrjvv73igJjigJnigJzigJ3igKLigJPigJTvv73ihKLvv73igLrvv73Cr8ub77+9wqDvv73CosKjwqTvv73CpsKnw5jCqcWWwqvCrMKtwq7DhsKwwrHCssKzwrTCtcK2wrfDuMK5xZfCu8K8wr3CvsOmxITErsSAxIbDhMOFxJjEksSMw4nFucSWxKLEtsSqxLvFoMWDxYXDk8WMw5XDlsOXxbLFgcWaxarDnMW7xb3Dn8SFxK/EgcSHw6TDpcSZxJPEjcOpxbrEl8SjxLfEq8S8xaHFhMWGw7PFjcO1w7bDt8WzxYLFm8Wrw7zFvMW+y5kiCiAgfSwKICAid2luMTI1NyI6ICJ3aW5kb3dzMTI1NyIsCiAgImNwMTI1NyI6ICJ3aW5kb3dzMTI1NyIsCiAgIndpbmRvd3MxMjU4IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIuKCrO+/veKAmsaS4oCe4oCm4oCg4oChy4bigLDvv73igLnFku+/ve+/ve+/ve+/veKAmOKAmeKAnOKAneKAouKAk+KAlMuc4oSi77+94oC6xZPvv73vv73FuMKgwqHCosKjwqTCpcKmwqfCqMKpwqrCq8Kswq3CrsKvwrDCscKywrPCtMK1wrbCt8K4wrnCusK7wrzCvcK+wr/DgMOBw4LEgsOEw4XDhsOHw4jDicOKw4vMgMONw47Dj8SQw5HMicOTw5TGoMOWw5fDmMOZw5rDm8Ocxq/Mg8Ofw6DDocOixIPDpMOlw6bDp8Oow6nDqsOrzIHDrcOuw6/EkcOxzKPDs8O0xqHDtsO3w7jDucO6w7vDvMaw4oKrw78iCiAgfSwKICAid2luMTI1OCI6ICJ3aW5kb3dzMTI1OCIsCiAgImNwMTI1OCI6ICJ3aW5kb3dzMTI1OCIsCiAgImlzbzg4NTkxIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoMKhwqLCo8KkwqXCpsKnwqjCqcKqwqvCrMKtwq7Cr8KwwrHCssKzwrTCtcK2wrfCuMK5wrrCu8K8wr3CvsK/w4DDgcOCw4PDhMOFw4bDh8OIw4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5XDlsOXw5jDmcOaw5vDnMOdw57Dn8Ogw6HDosOjw6TDpcOmw6fDqMOpw6rDq8Osw63DrsOvw7DDscOyw7PDtMO1w7bDt8O4w7nDusO7w7zDvcO+w78iCiAgfSwKICAiY3AyODU5MSI6ICJpc284ODU5MSIsCiAgImlzbzg4NTkyIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoMSEy5jFgcKkxL3FmsKnwqjFoMWexaTFucKtxb3Fu8KwxIXLm8WCwrTEvsWby4fCuMWhxZ/FpcW6y53FvsW8xZTDgcOCxILDhMS5xIbDh8SMw4nEmMOLxJrDjcOOxI7EkMWDxYfDk8OUxZDDlsOXxZjFrsOaxbDDnMOdxaLDn8WVw6HDosSDw6TEusSHw6fEjcOpxJnDq8Sbw63DrsSPxJHFhMWIw7PDtMWRw7bDt8WZxa/DusWxw7zDvcWjy5kiCiAgfSwKICAiY3AyODU5MiI6ICJpc284ODU5MiIsCiAgImlzbzg4NTkzIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoMSmy5jCo8Kk77+9xKTCp8KoxLDFnsSexLTCre+/vcW7wrDEp8KywrPCtMK1xKXCt8K4xLHFn8SfxLXCve+/vcW8w4DDgcOC77+9w4TEisSIw4fDiMOJw4rDi8OMw43DjsOP77+9w5HDksOTw5TEoMOWw5fEnMOZw5rDm8OcxazFnMOfw6DDocOi77+9w6TEi8SJw6fDqMOpw6rDq8Osw63DrsOv77+9w7HDssOzw7TEocO2w7fEncO5w7rDu8O8xa3FncuZIgogIH0sCiAgImNwMjg1OTMiOiAiaXNvODg1OTMiLAogICJpc284ODU5NCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDEhMS4xZbCpMSoxLvCp8KoxaDEksSixabCrcW9wq/CsMSFy5vFl8K0xKnEvMuHwrjFocSTxKPFp8WKxb7Fi8SAw4HDgsODw4TDhcOGxK7EjMOJxJjDi8SWw43DjsSqxJDFhcWMxLbDlMOVw5bDl8OYxbLDmsObw5zFqMWqw5/EgcOhw6LDo8Okw6XDpsSvxI3DqcSZw6vEl8Otw67Eq8SRxYbFjcS3w7TDtcO2w7fDuMWzw7rDu8O8xanFq8uZIgogIH0sCiAgImNwMjg1OTQiOiAiaXNvODg1OTQiLAogICJpc284ODU5NSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDQgdCC0IPQhNCF0IbQh9CI0InQitCL0IzCrdCO0I/QkNCR0JLQk9CU0JXQltCX0JjQmdCa0JvQnNCd0J7Qn9Cg0KHQotCj0KTQpdCm0KfQqNCp0KrQq9Cs0K3QrtCv0LDQsdCy0LPQtNC10LbQt9C40LnQutC70LzQvdC+0L/RgNGB0YLRg9GE0YXRhtGH0YjRidGK0YvRjNGN0Y7Rj+KEltGR0ZLRk9GU0ZXRltGX0ZjRmdGa0ZvRnMKn0Z7RnyIKICB9LAogICJjcDI4NTk1IjogImlzbzg4NTk1IiwKICAiaXNvODg1OTYiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiwoDCgcKCwoPChMKFwobCh8KIwonCisKLwozCjcKOwo/CkMKRwpLCk8KUwpXClsKXwpjCmcKawpvCnMKdwp7Cn8Kg77+977+977+9wqTvv73vv73vv73vv73vv73vv73vv73YjMKt77+977+977+977+977+977+977+977+977+977+977+977+977+92Jvvv73vv73vv73Yn++/vdih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi22LfYuNi52Lrvv73vv73vv73vv73vv73ZgNmB2YLZg9mE2YXZhtmH2YjZidmK2YvZjNmN2Y7Zj9mQ2ZHZku+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSIKICB9LAogICJjcDI4NTk2IjogImlzbzg4NTk2IiwKICAiaXNvODg1OTciOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiwoDCgcKCwoPChMKFwobCh8KIwonCisKLwozCjcKOwo/CkMKRwpLCk8KUwpXClsKXwpjCmcKawpvCnMKdwp7Cn8Kg4oCY4oCZwqPigqzigq/CpsKnwqjCqc26wqvCrMKt77+94oCVwrDCscKywrPOhM6FzobCt86IzonOisK7zozCvc6Ozo/OkM6RzpLOk86UzpXOls6XzpjOmc6azpvOnM6dzp7On86gzqHvv73Oo86kzqXOps6nzqjOqc6qzqvOrM6tzq7Or86wzrHOss6zzrTOtc62zrfOuM65zrrOu868zr3Ovs6/z4DPgc+Cz4PPhM+Fz4bPh8+Iz4nPis+Lz4zPjc+O77+9IgogIH0sCiAgImNwMjg1OTciOiAiaXNvODg1OTciLAogICJpc284ODU5OCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDvv73CosKjwqTCpcKmwqfCqMKpw5fCq8Kswq3CrsKvwrDCscKywrPCtMK1wrbCt8K4wrnDt8K7wrzCvcK+77+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+94oCX15DXkdeS15PXlNeV15bXl9eY15nXmteb15zXndee15/XoNeh16LXo9ek16XXpten16jXqdeq77+977+94oCO4oCP77+9IgogIH0sCiAgImNwMjg1OTgiOiAiaXNvODg1OTgiLAogICJpc284ODU5OSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDCocKiwqPCpMKlwqbCp8KowqnCqsKrwqzCrcKuwq/CsMKxwrLCs8K0wrXCtsK3wrjCucK6wrvCvMK9wr7Cv8OAw4HDgsODw4TDhcOGw4fDiMOJw4rDi8OMw43DjsOPxJ7DkcOSw5PDlMOVw5bDl8OYw5nDmsObw5zEsMWew5/DoMOhw6LDo8Okw6XDpsOnw6jDqcOqw6vDrMOtw67Dr8Sfw7HDssOzw7TDtcO2w7fDuMO5w7rDu8O8xLHFn8O/IgogIH0sCiAgImNwMjg1OTkiOiAiaXNvODg1OTkiLAogICJpc284ODU5MTAiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiwoDCgcKCwoPChMKFwobCh8KIwonCisKLwozCjcKOwo/CkMKRwpLCk8KUwpXClsKXwpjCmcKawpvCnMKdwp7Cn8KgxITEksSixKrEqMS2wqfEu8SQxaDFpsW9wq3FqsWKwrDEhcSTxKPEq8SpxLfCt8S8xJHFocWnxb7igJXFq8WLxIDDgcOCw4PDhMOFw4bErsSMw4nEmMOLxJbDjcOOw4/DkMWFxYzDk8OUw5XDlsWow5jFssOaw5vDnMOdw57Dn8SBw6HDosOjw6TDpcOmxK/EjcOpxJnDq8SXw63DrsOvw7DFhsWNw7PDtMO1w7bFqcO4xbPDusO7w7zDvcO+xLgiCiAgfSwKICAiY3AyODYwMCI6ICJpc284ODU5MTAiLAogICJpc284ODU5MTEiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiwoDCgcKCwoPChMKFwobCh8KIwonCisKLwozCjcKOwo/CkMKRwpLCk8KUwpXClsKXwpjCmcKawpvCnMKdwp7Cn8Kg4LiB4LiC4LiD4LiE4LiF4LiG4LiH4LiI4LiJ4LiK4LiL4LiM4LiN4LiO4LiP4LiQ4LiR4LiS4LiT4LiU4LiV4LiW4LiX4LiY4LiZ4Lia4Lib4Lic4Lid4Lie4Lif4Lig4Lih4Lii4Lij4Lik4Lil4Lim4Lin4Lio4Lip4Liq4Lir4Lis4Lit4Liu4Liv4Liw4Lix4Liy4Liz4Li04Li14Li24Li34Li44Li54Li677+977+977+977+94Li/4LmA4LmB4LmC4LmD4LmE4LmF4LmG4LmH4LmI4LmJ4LmK4LmL4LmM4LmN4LmO4LmP4LmQ4LmR4LmS4LmT4LmU4LmV4LmW4LmX4LmY4LmZ4Lma4Lmb77+977+977+977+9IgogIH0sCiAgImNwMjg2MDEiOiAiaXNvODg1OTExIiwKICAiaXNvODg1OTEzIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoOKAncKiwqPCpOKAnsKmwqfDmMKpxZbCq8Kswq3CrsOGwrDCscKywrPigJzCtcK2wrfDuMK5xZfCu8K8wr3CvsOmxITErsSAxIbDhMOFxJjEksSMw4nFucSWxKLEtsSqxLvFoMWDxYXDk8WMw5XDlsOXxbLFgcWaxarDnMW7xb3Dn8SFxK/EgcSHw6TDpcSZxJPEjcOpxbrEl8SjxLfEq8S8xaHFhMWGw7PFjcO1w7bDt8WzxYLFm8Wrw7zFvMW+4oCZIgogIH0sCiAgImNwMjg2MDMiOiAiaXNvODg1OTEzIiwKICAiaXNvODg1OTE0IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoOG4guG4g8KjxIrEi+G4isKn4bqAwqnhuoLhuIvhu7LCrcKuxbjhuJ7huJ/EoMSh4bmA4bmBwrbhuZbhuoHhuZfhuoPhuaDhu7PhuoThuoXhuaHDgMOBw4LDg8OEw4XDhsOHw4jDicOKw4vDjMONw47Dj8W0w5HDksOTw5TDlcOW4bmqw5jDmcOaw5vDnMOdxbbDn8Ogw6HDosOjw6TDpcOmw6fDqMOpw6rDq8Osw63DrsOvxbXDscOyw7PDtMO1w7bhuavDuMO5w7rDu8O8w73Ft8O/IgogIH0sCiAgImNwMjg2MDQiOiAiaXNvODg1OTE0IiwKICAiaXNvODg1OTE1IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoMKhwqLCo+KCrMKlxaDCp8WhwqnCqsKrwqzCrcKuwq/CsMKxwrLCs8W9wrXCtsK3xb7CucK6wrvFksWTxbjCv8OAw4HDgsODw4TDhcOGw4fDiMOJw4rDi8OMw43DjsOPw5DDkcOSw5PDlMOVw5bDl8OYw5nDmsObw5zDncOew5/DoMOhw6LDo8Okw6XDpsOnw6jDqcOqw6vDrMOtw67Dr8Oww7HDssOzw7TDtcO2w7fDuMO5w7rDu8O8w73DvsO/IgogIH0sCiAgImNwMjg2MDUiOiAiaXNvODg1OTE1IiwKICAiaXNvODg1OTE2IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoMSExIXFgeKCrOKAnsWgwqfFocKpyJjCq8W5wq3FusW7wrDCscSMxYLFveKAncK2wrfFvsSNyJnCu8WSxZPFuMW8w4DDgcOCxILDhMSGw4bDh8OIw4nDisOLw4zDjcOOw4/EkMWDw5LDk8OUxZDDlsWaxbDDmcOaw5vDnMSYyJrDn8Ogw6HDosSDw6TEh8Omw6fDqMOpw6rDq8Osw63DrsOvxJHFhMOyw7PDtMWRw7bFm8Wxw7nDusO7w7zEmcibw78iCiAgfSwKICAiY3AyODYwNiI6ICJpc284ODU5MTYiLAogICJjcDQzNyI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLDh8O8w6nDosOkw6DDpcOnw6rDq8Oow6/DrsOsw4TDhcOJw6bDhsO0w7bDssO7w7nDv8OWw5zCosKjwqXigqfGksOhw63Ds8O6w7HDkcKqwrrCv+KMkMKswr3CvMKhwqvCu+KWkeKWkuKWk+KUguKUpOKVoeKVouKVluKVleKVo+KVkeKVl+KVneKVnOKVm+KUkOKUlOKUtOKUrOKUnOKUgOKUvOKVnuKVn+KVmuKVlOKVqeKVpuKVoOKVkOKVrOKVp+KVqOKVpOKVpeKVmeKVmOKVkuKVk+KVq+KVquKUmOKUjOKWiOKWhOKWjOKWkOKWgM6xw5/Ok8+AzqPPg8K1z4TOps6YzqnOtOKIns+GzrXiiKniiaHCseKJpeKJpOKMoOKMocO34omIwrDiiJnCt+KImuKBv8Ky4pagwqAiCiAgfSwKICAiaWJtNDM3IjogImNwNDM3IiwKICAiY3NpYm00MzciOiAiY3A0MzciLAogICJjcDczNyI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLOkc6SzpPOlM6VzpbOl86YzpnOms6bzpzOnc6ezp/OoM6hzqPOpM6lzqbOp86ozqnOsc6yzrPOtM61zrbOt864zrnOus67zrzOvc6+zr/PgM+Bz4PPgs+Ez4XPhs+Hz4jilpHilpLilpPilILilKTilaHilaLilZbilZXilaPilZHilZfilZ3ilZzilZvilJDilJTilLTilKzilJzilIDilLzilZ7ilZ/ilZrilZTilanilabilaDilZDilazilafilajilaTilaXilZnilZjilZLilZPilavilarilJjilIzilojiloTilozilpDiloDPic6szq3Ors+Kzq/PjM+Nz4vPjs6GzojOic6KzozOjs6PwrHiiaXiiaTOqs6rw7fiiYjCsOKImcK34oia4oG/wrLilqDCoCIKICB9LAogICJpYm03MzciOiAiY3A3MzciLAogICJjc2libTczNyI6ICJjcDczNyIsCiAgImNwNzc1IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsSGw7zDqcSBw6TEo8OlxIfFgsSTxZbFl8SrxbnDhMOFw4nDpsOGxY3DtsSiwqLFmsWbw5bDnMO4wqPDmMOXwqTEgMSqw7PFu8W8xbrigJ3CpsKpwq7CrMK9wrzFgcKrwrvilpHilpLilpPilILilKTEhMSMxJjEluKVo+KVkeKVl+KVncSuxaDilJDilJTilLTilKzilJzilIDilLzFssWq4pWa4pWU4pWp4pWm4pWg4pWQ4pWsxb3EhcSNxJnEl8SvxaHFs8Wrxb7ilJjilIzilojiloTilozilpDiloDDk8OfxYzFg8O1w5XCtcWExLbEt8S7xLzFhsSSxYXigJnCrcKx4oCcwr7CtsKnw7figJ7CsOKImcK3wrnCs8Ky4pagwqAiCiAgfSwKICAiaWJtNzc1IjogImNwNzc1IiwKICAiY3NpYm03NzUiOiAiY3A3NzUiLAogICJjcDg1MCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLDh8O8w6nDosOkw6DDpcOnw6rDq8Oow6/DrsOsw4TDhcOJw6bDhsO0w7bDssO7w7nDv8OWw5zDuMKjw5jDl8aSw6HDrcOzw7rDscORwqrCusK/wq7CrMK9wrzCocKrwrvilpHilpLilpPilILilKTDgcOCw4DCqeKVo+KVkeKVl+KVncKiwqXilJDilJTilLTilKzilJzilIDilLzDo8OD4pWa4pWU4pWp4pWm4pWg4pWQ4pWswqTDsMOQw4rDi8OIxLHDjcOOw4/ilJjilIzilojiloTCpsOM4paAw5PDn8OUw5LDtcOVwrXDvsOew5rDm8OZw73DncKvwrTCrcKx4oCXwr7CtsKnw7fCuMKwwqjCt8K5wrPCsuKWoMKgIgogIH0sCiAgImlibTg1MCI6ICJjcDg1MCIsCiAgImNzaWJtODUwIjogImNwODUwIiwKICAiY3A4NTIiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiw4fDvMOpw6LDpMWvxIfDp8WCw6vFkMWRw67FucOExIbDicS5xLrDtMO2xL3EvsWaxZvDlsOcxaTFpcWBw5fEjcOhw63Ds8O6xITEhcW9xb7EmMSZwqzFusSMxZ/Cq8K74paR4paS4paT4pSC4pSkw4HDgsSaxZ7ilaPilZHilZfilZ3Fu8W84pSQ4pSU4pS04pSs4pSc4pSA4pS8xILEg+KVmuKVlOKVqeKVpuKVoOKVkOKVrMKkxJHEkMSOw4vEj8WHw43DjsSb4pSY4pSM4paI4paExaLFruKWgMOTw5/DlMWDxYTFiMWgxaHFlMOaxZXFsMO9w53Fo8K0wq3Lncuby4fLmMKnw7fCuMKwwqjLmcWxxZjFmeKWoMKgIgogIH0sCiAgImlibTg1MiI6ICJjcDg1MiIsCiAgImNzaWJtODUyIjogImNwODUyIiwKICAiY3A4NTUiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi0ZLQgtGT0IPRkdCB0ZTQhNGV0IXRltCG0ZfQh9GY0IjRmdCJ0ZrQitGb0IvRnNCM0Z7QjtGf0I/RjtCu0YrQqtCw0JDQsdCR0YbQptC00JTQtdCV0YTQpNCz0JPCq8K74paR4paS4paT4pSC4pSk0YXQpdC40JjilaPilZHilZfilZ3QudCZ4pSQ4pSU4pS04pSs4pSc4pSA4pS80LrQmuKVmuKVlOKVqeKVpuKVoOKVkOKVrMKk0LvQm9C80JzQvdCd0L7QntC/4pSY4pSM4paI4paE0J/Rj+KWgNCv0YDQoNGB0KHRgtCi0YPQo9C20JbQstCS0YzQrOKElsKt0YvQq9C30JfRiNCo0Y3QrdGJ0KnRh9CnwqfilqDCoCIKICB9LAogICJpYm04NTUiOiAiY3A4NTUiLAogICJjc2libTg1NSI6ICJjcDg1NSIsCiAgImNwODU2IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIteQ15HXkteT15TXldeW15fXmNeZ15rXm9ec153Xntef16DXodei16PXpNel16bXp9eo16nXqu+/vcKj77+9w5fvv73vv73vv73vv73vv73vv73vv73vv73vv73vv73CrsKswr3CvO+/vcKrwrvilpHilpLilpPilILilKTvv73vv73vv73CqeKVo+KVkeKVl+KVncKiwqXilJDilJTilLTilKzilJzilIDilLzvv73vv73ilZrilZTilanilabilaDilZDilazCpO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/veKUmOKUjOKWiOKWhMKm77+94paA77+977+977+977+977+977+9wrXvv73vv73vv73vv73vv73vv73vv73Cr8K0wq3CseKAl8K+wrbCp8O3wrjCsMKowrfCucKzwrLilqDCoCIKICB9LAogICJpYm04NTYiOiAiY3A4NTYiLAogICJjc2libTg1NiI6ICJjcDg1NiIsCiAgImNwODU3IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsOHw7zDqcOiw6TDoMOlw6fDqsOrw6jDr8OuxLHDhMOFw4nDpsOGw7TDtsOyw7vDucSww5bDnMO4wqPDmMWexZ/DocOtw7PDusOxw5HEnsSfwr/CrsKswr3CvMKhwqvCu+KWkeKWkuKWk+KUguKUpMOBw4LDgMKp4pWj4pWR4pWX4pWdwqLCpeKUkOKUlOKUtOKUrOKUnOKUgOKUvMOjw4PilZrilZTilanilabilaDilZDilazCpMK6wqrDisOLw4jvv73DjcOOw4/ilJjilIzilojiloTCpsOM4paAw5PDn8OUw5LDtcOVwrXvv73Dl8Oaw5vDmcOsw7/Cr8K0wq3Cse+/vcK+wrbCp8O3wrjCsMKowrfCucKzwrLilqDCoCIKICB9LAogICJpYm04NTciOiAiY3A4NTciLAogICJjc2libTg1NyI6ICJjcDg1NyIsCiAgImNwODU4IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsOHw7zDqcOiw6TDoMOlw6fDqsOrw6jDr8Ouw6zDhMOFw4nDpsOGw7TDtsOyw7vDucO/w5bDnMO4wqPDmMOXxpLDocOtw7PDusOxw5HCqsK6wr/CrsKswr3CvMKhwqvCu+KWkeKWkuKWk+KUguKUpMOBw4LDgMKp4pWj4pWR4pWX4pWdwqLCpeKUkOKUlOKUtOKUrOKUnOKUgOKUvMOjw4PilZrilZTilanilabilaDilZDilazCpMOww5DDisOLw4jigqzDjcOOw4/ilJjilIzilojiloTCpsOM4paAw5PDn8OUw5LDtcOVwrXDvsOew5rDm8OZw73DncKvwrTCrcKx4oCXwr7CtsKnw7fCuMKwwqjCt8K5wrPCsuKWoMKgIgogIH0sCiAgImlibTg1OCI6ICJjcDg1OCIsCiAgImNzaWJtODU4IjogImNwODU4IiwKICAiY3A4NjAiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiw4fDvMOpw6LDo8Ogw4HDp8Oqw4rDqMONw5TDrMODw4LDicOAw4jDtMO1w7LDmsO5w4zDlcOcwqLCo8OZ4oKnw5PDocOtw7PDusOxw5HCqsK6wr/DksKswr3CvMKhwqvCu+KWkeKWkuKWk+KUguKUpOKVoeKVouKVluKVleKVo+KVkeKVl+KVneKVnOKVm+KUkOKUlOKUtOKUrOKUnOKUgOKUvOKVnuKVn+KVmuKVlOKVqeKVpuKVoOKVkOKVrOKVp+KVqOKVpOKVpeKVmeKVmOKVkuKVk+KVq+KVquKUmOKUjOKWiOKWhOKWjOKWkOKWgM6xw5/Ok8+AzqPPg8K1z4TOps6YzqnOtOKIns+GzrXiiKniiaHCseKJpeKJpOKMoOKMocO34omIwrDiiJnCt+KImuKBv8Ky4pagwqAiCiAgfSwKICAiaWJtODYwIjogImNwODYwIiwKICAiY3NpYm04NjAiOiAiY3A4NjAiLAogICJjcDg2MSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLDh8O8w6nDosOkw6DDpcOnw6rDq8Oow5DDsMOew4TDhcOJw6bDhsO0w7bDvsO7w53DvcOWw5zDuMKjw5jigqfGksOhw63Ds8O6w4HDjcOTw5rCv+KMkMKswr3CvMKhwqvCu+KWkeKWkuKWk+KUguKUpOKVoeKVouKVluKVleKVo+KVkeKVl+KVneKVnOKVm+KUkOKUlOKUtOKUrOKUnOKUgOKUvOKVnuKVn+KVmuKVlOKVqeKVpuKVoOKVkOKVrOKVp+KVqOKVpOKVpeKVmeKVmOKVkuKVk+KVq+KVquKUmOKUjOKWiOKWhOKWjOKWkOKWgM6xw5/Ok8+AzqPPg8K1z4TOps6YzqnOtOKIns+GzrXiiKniiaHCseKJpeKJpOKMoOKMocO34omIwrDiiJnCt+KImuKBv8Ky4pagwqAiCiAgfSwKICAiaWJtODYxIjogImNwODYxIiwKICAiY3NpYm04NjEiOiAiY3A4NjEiLAogICJjcDg2MiI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLXkNeR15LXk9eU15XXlteX15jXmdea15vXnNed157Xn9eg16HXotej16TXpdem16fXqNep16rCosKjwqXigqfGksOhw63Ds8O6w7HDkcKqwrrCv+KMkMKswr3CvMKhwqvCu+KWkeKWkuKWk+KUguKUpOKVoeKVouKVluKVleKVo+KVkeKVl+KVneKVnOKVm+KUkOKUlOKUtOKUrOKUnOKUgOKUvOKVnuKVn+KVmuKVlOKVqeKVpuKVoOKVkOKVrOKVp+KVqOKVpOKVpeKVmeKVmOKVkuKVk+KVq+KVquKUmOKUjOKWiOKWhOKWjOKWkOKWgM6xw5/Ok8+AzqPPg8K1z4TOps6YzqnOtOKIns+GzrXiiKniiaHCseKJpeKJpOKMoOKMocO34omIwrDiiJnCt+KImuKBv8Ky4pagwqAiCiAgfSwKICAiaWJtODYyIjogImNwODYyIiwKICAiY3NpYm04NjIiOiAiY3A4NjIiLAogICJjcDg2MyI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLDh8O8w6nDosOCw6DCtsOnw6rDq8Oow6/DruKAl8OAwqfDicOIw4rDtMOLw4/Du8O5wqTDlMOcwqLCo8OZw5vGksKmwrTDs8O6wqjCuMKzwq/DjuKMkMKswr3CvMK+wqvCu+KWkeKWkuKWk+KUguKUpOKVoeKVouKVluKVleKVo+KVkeKVl+KVneKVnOKVm+KUkOKUlOKUtOKUrOKUnOKUgOKUvOKVnuKVn+KVmuKVlOKVqeKVpuKVoOKVkOKVrOKVp+KVqOKVpOKVpeKVmeKVmOKVkuKVk+KVq+KVquKUmOKUjOKWiOKWhOKWjOKWkOKWgM6xw5/Ok8+AzqPPg8K1z4TOps6YzqnOtOKIns+GzrXiiKniiaHCseKJpeKJpOKMoOKMocO34omIwrDiiJnCt+KImuKBv8Ky4pagwqAiCiAgfSwKICAiaWJtODYzIjogImNwODYzIiwKICAiY3NpYm04NjMiOiAiY3A4NjMiLAogICJjcDg2NCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcYlx0XG5cdTAwMGJcZlxyXHUwMDBlXHUwMDBmXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFhXHUwMDFiXHUwMDFjXHUwMDFkXHUwMDFlXHUwMDFmICFcIiMk2aomJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/wrDCt+KImeKImuKWkuKUgOKUguKUvOKUpOKUrOKUnOKUtOKUkOKUjOKUlOKUmM6y4oiez4bCscK9wrziiYjCq8K777u377u477+977+977u777u877+9wqDCre+6gsKjwqTvuoTvv73vv73vuo7vuo/vupXvupnYjO+6ne+6oe+6pdmg2aHZotmj2aTZpdmm2afZqNmp77uR2JvvurHvurXvurnYn8Ki77qA77qB77qD77qF77uK77qL77qN77qR77qT77qX77qb77qf77qj77qn77qp77qr77qt77qv77qz77q377q777q/77uB77uF77uL77uPwqbCrMO3w5fvu4nZgO+7k++7l++7m++7n++7o++7p++7q++7re+7r++7s++6ve+7jO+7ju+7je+7oe+5vdmR77ul77up77us77uw77uy77uQ77uV77u177u277ud77uZ77ux4pag77+9IgogIH0sCiAgImlibTg2NCI6ICJjcDg2NCIsCiAgImNzaWJtODY0IjogImNwODY0IiwKICAiY3A4NjUiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiw4fDvMOpw6LDpMOgw6XDp8Oqw6vDqMOvw67DrMOEw4XDicOmw4bDtMO2w7LDu8O5w7/DlsOcw7jCo8OY4oKnxpLDocOtw7PDusOxw5HCqsK6wr/ijJDCrMK9wrzCocKrwqTilpHilpLilpPilILilKTilaHilaLilZbilZXilaPilZHilZfilZ3ilZzilZvilJDilJTilLTilKzilJzilIDilLzilZ7ilZ/ilZrilZTilanilabilaDilZDilazilafilajilaTilaXilZnilZjilZLilZPilavilarilJjilIzilojiloTilozilpDiloDOscOfzpPPgM6jz4PCtc+EzqbOmM6pzrTiiJ7Phs614oip4omhwrHiiaXiiaTijKDijKHDt+KJiMKw4oiZwrfiiJrigb/CsuKWoMKgIgogIH0sCiAgImlibTg2NSI6ICJjcDg2NSIsCiAgImNzaWJtODY1IjogImNwODY1IiwKICAiY3A4NjYiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi0JDQkdCS0JPQlNCV0JbQl9CY0JnQmtCb0JzQndCe0J/QoNCh0KLQo9Ck0KXQptCn0KjQqdCq0KvQrNCt0K7Qr9Cw0LHQstCz0LTQtdC20LfQuNC50LrQu9C80L3QvtC/4paR4paS4paT4pSC4pSk4pWh4pWi4pWW4pWV4pWj4pWR4pWX4pWd4pWc4pWb4pSQ4pSU4pS04pSs4pSc4pSA4pS84pWe4pWf4pWa4pWU4pWp4pWm4pWg4pWQ4pWs4pWn4pWo4pWk4pWl4pWZ4pWY4pWS4pWT4pWr4pWq4pSY4pSM4paI4paE4paM4paQ4paA0YDRgdGC0YPRhNGF0YbRh9GI0YnRitGL0YzRjdGO0Y/QgdGR0ITRlNCH0ZfQjtGewrDiiJnCt+KImuKElsKk4pagwqAiCiAgfSwKICAiaWJtODY2IjogImNwODY2IiwKICAiY3NpYm04NjYiOiAiY3A4NjYiLAogICJjcDg2OSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLvv73vv73vv73vv73vv73vv73Ohu+/vcK3wqzCpuKAmOKAmc6I4oCVzonOis6qzozvv73vv73Ojs6rwqnOj8KywrPOrMKjzq3Ors6vz4rOkM+Mz43Okc6SzpPOlM6VzpbOl8K9zpjOmcKrwrvilpHilpLilpPilILilKTOms6bzpzOneKVo+KVkeKVl+KVnc6ezp/ilJDilJTilLTilKzilJzilIDilLzOoM6h4pWa4pWU4pWp4pWm4pWg4pWQ4pWszqPOpM6lzqbOp86ozqnOsc6yzrPilJjilIzilojiloTOtM614paAzrbOt864zrnOus67zrzOvc6+zr/PgM+Bz4PPgs+EzoTCrcKxz4XPhs+HwqfPiM6FwrDCqM+Jz4vOsM+O4pagwqAiCiAgfSwKICAiaWJtODY5IjogImNwODY5IiwKICAiY3NpYm04NjkiOiAiY3A4NjkiLAogICJjcDkyMiI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDCocKiwqPCpMKlwqbCp8KowqnCqsKrwqzCrcKu4oC+wrDCscKywrPCtMK1wrbCt8K4wrnCusK7wrzCvcK+wr/DgMOBw4LDg8OEw4XDhsOHw4jDicOKw4vDjMONw47Dj8Wgw5HDksOTw5TDlcOWw5fDmMOZw5rDm8Ocw53FvcOfw6DDocOiw6PDpMOlw6bDp8Oow6nDqsOrw6zDrcOuw6/FocOxw7LDs8O0w7XDtsO3w7jDucO6w7vDvMO9xb7DvyIKICB9LAogICJpYm05MjIiOiAiY3A5MjIiLAogICJjc2libTkyMiI6ICJjcDkyMiIsCiAgImNwMTA0NiI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLvuojDl8O376O276O176O076O377mxwojilqDilILilIDilJDilIzilJTilJjvubnvubvvub3vub/vubfvuorvu7Dvu7Pvu7Lvu47vu4/vu5Dvu7bvu7jvu7rvu7zCoO+juu+jue+juMKk76O777qL77qR77qX77qb77qf77qj2IzCre+6p++6s9mg2aHZotmj2aTZpdmm2afZqNmp77q32Jvvurvvur/vu4rYn++7i9ih2KLYo9ik2KXYptin2KjYqdiq2KvYrNit2K7Yr9iw2LHYstiz2LTYtdi22Lfvu4fYudi677uM77qC77qE77qO77uT2YDZgdmC2YPZhNmF2YbZh9mI2YnZitmL2YzZjdmO2Y/ZkNmR2ZLvu5fvu5vvu5/vo7zvu7Xvu7fvu7nvu7vvu6Pvu6fvu6zvu6nvv70iCiAgfSwKICAiaWJtMTA0NiI6ICJjcDEwNDYiLAogICJjc2libTEwNDYiOiAiY3AxMDQ2IiwKICAiY3AxMTI0IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKAwoHCgsKDwoTChcKGwofCiMKJworCi8KMwo3CjsKPwpDCkcKSwpPClMKVwpbCl8KYwpnCmsKbwpzCncKewp/CoNCB0ILSkNCE0IXQhtCH0IjQidCK0IvQjMKt0I7Qj9CQ0JHQktCT0JTQldCW0JfQmNCZ0JrQm9Cc0J3QntCf0KDQodCi0KPQpNCl0KbQp9Co0KnQqtCr0KzQrdCu0K/QsNCx0LLQs9C00LXQttC30LjQudC60LvQvNC90L7Qv9GA0YHRgtGD0YTRhdGG0YfRiNGJ0YrRi9GM0Y3RjtGP4oSW0ZHRktKR0ZTRldGW0ZfRmNGZ0ZrRm9GcwqfRntGfIgogIH0sCiAgImlibTExMjQiOiAiY3AxMTI0IiwKICAiY3NpYm0xMTI0IjogImNwMTEyNCIsCiAgImNwMTEyNSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLQkNCR0JLQk9CU0JXQltCX0JjQmdCa0JvQnNCd0J7Qn9Cg0KHQotCj0KTQpdCm0KfQqNCp0KrQq9Cs0K3QrtCv0LDQsdCy0LPQtNC10LbQt9C40LnQutC70LzQvdC+0L/ilpHilpLilpPilILilKTilaHilaLilZbilZXilaPilZHilZfilZ3ilZzilZvilJDilJTilLTilKzilJzilIDilLzilZ7ilZ/ilZrilZTilanilabilaDilZDilazilafilajilaTilaXilZnilZjilZLilZPilavilarilJjilIzilojiloTilozilpDiloDRgNGB0YLRg9GE0YXRhtGH0YjRidGK0YvRjNGN0Y7Rj9CB0ZHSkNKR0ITRlNCG0ZbQh9GXwrfiiJrihJbCpOKWoMKgIgogIH0sCiAgImlibTExMjUiOiAiY3AxMTI1IiwKICAiY3NpYm0xMTI1IjogImNwMTEyNSIsCiAgImNwMTEyOSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDCocKiwqPCpMKlwqbCp8WTwqnCqsKrwqzCrcKuwq/CsMKxwrLCs8W4wrXCtsK3xZLCucK6wrvCvMK9wr7Cv8OAw4HDgsSCw4TDhcOGw4fDiMOJw4rDi8yAw43DjsOPxJDDkcyJw5PDlMagw5bDl8OYw5nDmsObw5zGr8yDw5/DoMOhw6LEg8Okw6XDpsOnw6jDqcOqw6vMgcOtw67Dr8SRw7HMo8Ozw7TGocO2w7fDuMO5w7rDu8O8xrDigqvDvyIKICB9LAogICJpYm0xMTI5IjogImNwMTEyOSIsCiAgImNzaWJtMTEyOSI6ICJjcDExMjkiLAogICJjcDExMzMiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiwoDCgcKCwoPChMKFwobCh8KIwonCisKLwozCjcKOwo/CkMKRwpLCk8KUwpXClsKXwpjCmcKawpvCnMKdwp7Cn8Kg4LqB4LqC4LqE4LqH4LqI4Lqq4LqK4LqN4LqU4LqV4LqW4LqX4LqZ4Lqa4Lqb4Lqc4Lqd4Lqe4Lqf4Lqh4Lqi4Lqj4Lql4Lqn4Lqr4Lqt4Lqu77+977+977+94Lqv4Lqw4Lqy4Lqz4Lq04Lq14Lq24Lq34Lq44Lq54Lq84Lqx4Lq74Lq977+977+977+94LuA4LuB4LuC4LuD4LuE4LuI4LuJ4LuK4LuL4LuM4LuN4LuG77+94Luc4Lud4oKt77+977+977+977+977+977+977+977+977+977+977+977+977+977+977+977+94LuQ4LuR4LuS4LuT4LuU4LuV4LuW4LuX4LuY4LuZ77+977+9wqLCrMKm77+9IgogIH0sCiAgImlibTExMzMiOiAiY3AxMTMzIiwKICAiY3NpYm0xMTMzIjogImNwMTEzMyIsCiAgImNwMTE2MSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLvv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73guYjguIHguILguIPguITguIXguIbguIfguIjguInguIrguIvguIzguI3guI7guI/guJDguJHguJLguJPguJTguJXguJbguJfguJjguJnguJrguJvguJzguJ3guJ7guJ/guKDguKHguKLguKPguKTguKXguKbguKfguKjguKnguKrguKvguKzguK3guK7guK/guLDguLHguLLguLPguLTguLXguLbguLfguLjguLnguLrguYnguYrguYvigqzguL/guYDguYHguYLguYPguYTguYXguYbguYfguYjguYnguYrguYvguYzguY3guY7guY/guZDguZHguZLguZPguZTguZXguZbguZfguZjguZnguZrguZvCosKswqbCoCIKICB9LAogICJpYm0xMTYxIjogImNwMTE2MSIsCiAgImNzaWJtMTE2MSI6ICJjcDExNjEiLAogICJjcDExNjIiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi4oKswoHCgsKDwoTigKbChsKHwojCicKKwovCjMKNwo7Cj8KQ4oCY4oCZ4oCc4oCd4oCi4oCT4oCUwpjCmcKawpvCnMKdwp7Cn8Kg4LiB4LiC4LiD4LiE4LiF4LiG4LiH4LiI4LiJ4LiK4LiL4LiM4LiN4LiO4LiP4LiQ4LiR4LiS4LiT4LiU4LiV4LiW4LiX4LiY4LiZ4Lia4Lib4Lic4Lid4Lie4Lif4Lig4Lih4Lii4Lij4Lik4Lil4Lim4Lin4Lio4Lip4Liq4Lir4Lis4Lit4Liu4Liv4Liw4Lix4Liy4Liz4Li04Li14Li24Li34Li44Li54Li677+977+977+977+94Li/4LmA4LmB4LmC4LmD4LmE4LmF4LmG4LmH4LmI4LmJ4LmK4LmL4LmM4LmN4LmO4LmP4LmQ4LmR4LmS4LmT4LmU4LmV4LmW4LmX4LmY4LmZ4Lma4Lmb77+977+977+977+9IgogIH0sCiAgImlibTExNjIiOiAiY3AxMTYyIiwKICAiY3NpYm0xMTYyIjogImNwMTE2MiIsCiAgImNwMTE2MyI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDCocKiwqPigqzCpcKmwqfFk8KpwqrCq8Kswq3CrsKvwrDCscKywrPFuMK1wrbCt8WSwrnCusK7wrzCvcK+wr/DgMOBw4LEgsOEw4XDhsOHw4jDicOKw4vMgMONw47Dj8SQw5HMicOTw5TGoMOWw5fDmMOZw5rDm8Ocxq/Mg8Ofw6DDocOixIPDpMOlw6bDp8Oow6nDqsOrzIHDrcOuw6/EkcOxzKPDs8O0xqHDtsO3w7jDucO6w7vDvMaw4oKrw78iCiAgfSwKICAiaWJtMTE2MyI6ICJjcDExNjMiLAogICJjc2libTExNjMiOiAiY3AxMTYzIiwKICAibWFjY3JvYXRpYW4iOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiw4TDhcOHw4nDkcOWw5zDocOgw6LDpMOjw6XDp8Opw6jDqsOrw63DrMOuw6/DscOzw7LDtMO2w7XDusO5w7vDvOKAoMKwwqLCo8Kn4oCiwrbDn8KuxaDihKLCtMKo4omgxb3DmOKInsKx4omk4oml4oiGwrXiiILiiJHiiI/FoeKIq8KqwrrihKbFvsO4wr/CocKs4oiaxpLiiYjEhsKrxIzigKbCoMOAw4PDlcWSxZPEkOKAlOKAnOKAneKAmOKAmcO34peK77+9wqnigYTCpOKAueKAusOGwrvigJPCt+KAmuKAnuKAsMOCxIfDgcSNw4jDjcOOw4/DjMOTw5TEkcOSw5rDm8OZxLHLhsucwq/PgMOLy5rCuMOKw6bLhyIKICB9LAogICJtYWNjeXJpbGxpYyI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLQkNCR0JLQk9CU0JXQltCX0JjQmdCa0JvQnNCd0J7Qn9Cg0KHQotCj0KTQpdCm0KfQqNCp0KrQq9Cs0K3QrtCv4oCgwrDCosKjwqfigKLCttCGwq7CqeKEotCC0ZLiiaDQg9GT4oiewrHiiaTiiaXRlsK14oiC0IjQhNGU0IfRl9CJ0ZnQitGa0ZjQhcKs4oiaxpLiiYjiiIbCq8K74oCmwqDQi9Gb0IzRnNGV4oCT4oCU4oCc4oCd4oCY4oCZw7figJ7QjtGe0I/Rn+KEltCB0ZHRj9Cw0LHQstCz0LTQtdC20LfQuNC50LrQu9C80L3QvtC/0YDRgdGC0YPRhNGF0YbRh9GI0YnRitGL0YzRjdGOwqQiCiAgfSwKICAibWFjZ3JlZWsiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiw4TCucKyw4nCs8OWw5zOhcOgw6LDpM6EwqjDp8Opw6jDqsOrwqPihKLDrsOv4oCiwr3igLDDtMO2wqbCrcO5w7vDvOKAoM6TzpTOmM6bzp7OoMOfwq7Cqc6jzqrCp+KJoMKwzofOkcKx4omk4omlwqXOks6VzpbOl86ZzprOnM6mzqvOqM6pzqzOncKszp/OoeKJiM6kwqvCu+KApsKgzqXOp86GzojFk+KAk+KAleKAnOKAneKAmOKAmcO3zonOis6Mzo7Orc6uzq/PjM6Pz43Osc6yz4jOtM61z4bOs863zrnOvs66zrvOvM69zr/PgM+Oz4HPg8+EzrjPic+Cz4fPhc62z4rPi86QzrDvv70iCiAgfSwKICAibWFjaWNlbGFuZCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLDhMOFw4fDicORw5bDnMOhw6DDosOkw6PDpcOnw6nDqMOqw6vDrcOsw67Dr8Oxw7PDssO0w7bDtcO6w7nDu8O8w53CsMKiwqPCp+KAosK2w5/CrsKp4oSiwrTCqOKJoMOGw5jiiJ7CseKJpOKJpcKlwrXiiILiiJHiiI/PgOKIq8KqwrrihKbDpsO4wr/CocKs4oiaxpLiiYjiiIbCq8K74oCmwqDDgMODw5XFksWT4oCT4oCU4oCc4oCd4oCY4oCZw7fil4rDv8W44oGEwqTDkMOww57DvsO9wrfigJrigJ7igLDDgsOKw4HDi8OIw43DjsOPw4zDk8OU77+9w5LDmsObw5nEscuGy5zCr8uYy5nLmsK4y53Lm8uHIgogIH0sCiAgIm1hY3JvbWFuIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsOEw4XDh8OJw5HDlsOcw6HDoMOiw6TDo8Olw6fDqcOow6rDq8Otw6zDrsOvw7HDs8Oyw7TDtsO1w7rDucO7w7zigKDCsMKiwqPCp+KAosK2w5/CrsKp4oSiwrTCqOKJoMOGw5jiiJ7CseKJpOKJpcKlwrXiiILiiJHiiI/PgOKIq8KqwrrihKbDpsO4wr/CocKs4oiaxpLiiYjiiIbCq8K74oCmwqDDgMODw5XFksWT4oCT4oCU4oCc4oCd4oCY4oCZw7fil4rDv8W44oGEwqTigLnigLrvrIHvrILigKHCt+KAmuKAnuKAsMOCw4rDgcOLw4jDjcOOw4/DjMOTw5Tvv73DksOaw5vDmcSxy4bLnMKvy5jLmcuawrjLncuby4ciCiAgfSwKICAibWFjcm9tYW5pYSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLDhMOFw4fDicORw5bDnMOhw6DDosOkw6PDpcOnw6nDqMOqw6vDrcOsw67Dr8Oxw7PDssO0w7bDtcO6w7nDu8O84oCgwrDCosKjwqfigKLCtsOfwq7CqeKEosK0wqjiiaDEgsWe4oiewrHiiaTiiaXCpcK14oiC4oiR4oiPz4DiiKvCqsK64oSmxIPFn8K/wqHCrOKImsaS4omI4oiGwqvCu+KApsKgw4DDg8OVxZLFk+KAk+KAlOKAnOKAneKAmOKAmcO34peKw7/FuOKBhMKk4oC54oC6xaLFo+KAocK34oCa4oCe4oCww4LDisOBw4vDiMONw47Dj8OMw5PDlO+/vcOSw5rDm8OZxLHLhsucwq/LmMuZy5rCuMudy5vLhyIKICB9LAogICJtYWN0aGFpIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIsKrwrvigKbvoozvoo/vopLvopXvopjvoovvoo7vopHvopTvopfigJzigJ3vopnvv73igKLvooTvoonvooXvoobvoofvoojvoorvoo3vopDvopPvopbigJjigJnvv73CoOC4geC4guC4g+C4hOC4heC4huC4h+C4iOC4ieC4iuC4i+C4jOC4jeC4juC4j+C4kOC4keC4kuC4k+C4lOC4leC4luC4l+C4mOC4meC4muC4m+C4nOC4neC4nuC4n+C4oOC4oeC4ouC4o+C4pOC4peC4puC4p+C4qOC4qeC4quC4q+C4rOC4reC4ruC4r+C4sOC4seC4suC4s+C4tOC4teC4tuC4t+C4uOC4ueC4uu+7v+KAi+KAk+KAlOC4v+C5gOC5geC5guC5g+C5hOC5heC5huC5h+C5iOC5ieC5iuC5i+C5jOC5jeKEouC5j+C5kOC5keC5kuC5k+C5lOC5leC5luC5l+C5mOC5mcKuwqnvv73vv73vv73vv70iCiAgfSwKICAibWFjdHVya2lzaCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLDhMOFw4fDicORw5bDnMOhw6DDosOkw6PDpcOnw6nDqMOqw6vDrcOsw67Dr8Oxw7PDssO0w7bDtcO6w7nDu8O84oCgwrDCosKjwqfigKLCtsOfwq7CqeKEosK0wqjiiaDDhsOY4oiewrHiiaTiiaXCpcK14oiC4oiR4oiPz4DiiKvCqsK64oSmw6bDuMK/wqHCrOKImsaS4omI4oiGwqvCu+KApsKgw4DDg8OVxZLFk+KAk+KAlOKAnOKAneKAmOKAmcO34peKw7/FuMSexJ/EsMSxxZ7Fn+KAocK34oCa4oCe4oCww4LDisOBw4vDiMONw47Dj8OMw5PDlO+/vcOSw5rDm8OZ77+9y4bLnMKvy5jLmcuawrjLncuby4ciCiAgfSwKICAibWFjdWtyYWluZSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLQkNCR0JLQk9CU0JXQltCX0JjQmdCa0JvQnNCd0J7Qn9Cg0KHQotCj0KTQpdCm0KfQqNCp0KrQq9Cs0K3QrtCv4oCgwrDSkMKjwqfigKLCttCGwq7CqeKEotCC0ZLiiaDQg9GT4oiewrHiiaTiiaXRlsK10pHQiNCE0ZTQh9GX0InRmdCK0ZrRmNCFwqziiJrGkuKJiOKIhsKrwrvigKbCoNCL0ZvQjNGc0ZXigJPigJTigJzigJ3igJjigJnDt+KAntCO0Z7Qj9Gf4oSW0IHRkdGP0LDQsdCy0LPQtNC10LbQt9C40LnQutC70LzQvdC+0L/RgNGB0YLRg9GE0YXRhtGH0YjRidGK0YvRjNGN0Y7CpCIKICB9LAogICJrb2k4ciI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLilIDilILilIzilJDilJTilJjilJzilKTilKzilLTilLziloDiloTilojilozilpDilpHilpLilpPijKDilqDiiJniiJriiYjiiaTiiaXCoOKMocKwwrLCt8O34pWQ4pWR4pWS0ZHilZPilZTilZXilZbilZfilZjilZnilZrilZvilZzilZ3ilZ7ilZ/ilaDilaHQgeKVouKVo+KVpOKVpeKVpuKVp+KVqOKVqeKVquKVq+KVrMKp0Y7QsNCx0YbQtNC10YTQs9GF0LjQudC60LvQvNC90L7Qv9GP0YDRgdGC0YPQttCy0YzRi9C30YjRjdGJ0YfRitCu0JDQkdCm0JTQldCk0JPQpdCY0JnQmtCb0JzQndCe0J/Qr9Cg0KHQotCj0JbQktCs0KvQl9Co0K3QqdCn0KoiCiAgfSwKICAia29pOHUiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi4pSA4pSC4pSM4pSQ4pSU4pSY4pSc4pSk4pSs4pS04pS84paA4paE4paI4paM4paQ4paR4paS4paT4oyg4pag4oiZ4oia4omI4omk4omlwqDijKHCsMKywrfDt+KVkOKVkeKVktGR0ZTilZTRltGX4pWX4pWY4pWZ4pWa4pWb0pHilZ3ilZ7ilZ/ilaDilaHQgdCE4pWj0IbQh+KVpuKVp+KVqOKVqeKVqtKQ4pWswqnRjtCw0LHRhtC00LXRhNCz0YXQuNC50LrQu9C80L3QvtC/0Y/RgNGB0YLRg9C20LLRjNGL0LfRiNGN0YnRh9GK0K7QkNCR0KbQlNCV0KTQk9Cl0JjQmdCa0JvQnNCd0J7Qn9Cv0KDQodCi0KPQltCS0KzQq9CX0KjQrdCp0KfQqiIKICB9LAogICJrb2k4cnUiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi4pSA4pSC4pSM4pSQ4pSU4pSY4pSc4pSk4pSs4pS04pS84paA4paE4paI4paM4paQ4paR4paS4paT4oyg4pag4oiZ4oia4omI4omk4omlwqDijKHCsMKywrfDt+KVkOKVkeKVktGR0ZTilZTRltGX4pWX4pWY4pWZ4pWa4pWb0pHRnuKVnuKVn+KVoOKVodCB0ITilaPQhtCH4pWm4pWn4pWo4pWp4pWq0pDQjsKp0Y7QsNCx0YbQtNC10YTQs9GF0LjQudC60LvQvNC90L7Qv9GP0YDRgdGC0YPQttCy0YzRi9C30YjRjdGJ0YfRitCu0JDQkdCm0JTQldCk0JPQpdCY0JnQmtCb0JzQndCe0J/Qr9Cg0KHQotCj0JbQktCs0KvQl9Co0K3QqdCn0KoiCiAgfSwKICAia29pOHQiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAi0pvSk+KAmtKS4oCe4oCm4oCg4oCh77+94oCw0rPigLnSstK30rbvv73SmuKAmOKAmeKAnOKAneKAouKAk+KAlO+/veKEou+/veKAuu+/ve+/ve+/ve+/ve+/vdOv067RkcKk06PCpsKn77+977+977+9wqvCrMKtwq7vv73CsMKxwrLQge+/vdOiwrbCt++/veKElu+/vcK777+977+977+9wqnRjtCw0LHRhtC00LXRhNCz0YXQuNC50LrQu9C80L3QvtC/0Y/RgNGB0YLRg9C20LLRjNGL0LfRiNGN0YnRh9GK0K7QkNCR0KbQlNCV0KTQk9Cl0JjQmdCa0JvQnNCd0J7Qn9Cv0KDQodCi0KPQltCS0KzQq9CX0KjQrdCp0KfQqiIKICB9LAogICJhcm1zY2lpOCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDvv73Wh9aJKSjCu8Kr4oCULtWdLC3WiuKAptWc1ZvVntSx1aHUstWi1LPVo9S01aTUtdWl1LbVptS31afUuNWo1LnVqdS61arUu9Wr1LzVrNS91a3UvtWu1L/Vr9WA1bDVgdWx1YLVstWD1bPVhNW01YXVtdWG1bbVh9W31YjVuNWJ1bnVitW61YvVu9WM1bzVjdW91Y7VvtWP1b/VkNaA1ZHWgdWS1oLVk9aD1ZTWhNWV1oXVltaG1Zrvv70iCiAgfSwKICAicmsxMDQ4IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogItCC0IPigJrRk+KAnuKApuKAoOKAoeKCrOKAsNCJ4oC50IrSmtK60I/RkuKAmOKAmeKAnOKAneKAouKAk+KAlO+/veKEotGZ4oC60ZrSm9K70Z/CoNKw0rHTmMKk06jCpsKn0IHCqdKSwqvCrMKtwq7SrsKwwrHQhtGW06nCtcK2wrfRkeKEltKTwrvTmdKi0qPSr9CQ0JHQktCT0JTQldCW0JfQmNCZ0JrQm9Cc0J3QntCf0KDQodCi0KPQpNCl0KbQp9Co0KnQqtCr0KzQrdCu0K/QsNCx0LLQs9C00LXQttC30LjQudC60LvQvNC90L7Qv9GA0YHRgtGD0YTRhdGG0YfRiNGJ0YrRi9GM0Y3RjtGPIgogIH0sCiAgInRjdm4iOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiXHUwMDAww5rhu6RcdTAwMDPhu6rhu6zhu65cdTAwMDdcYlx0XG5cdTAwMGJcZlxyXHUwMDBlXHUwMDBmXHUwMDEw4buo4buw4buy4bu24bu4w53hu7RcdTAwMThcdTAwMTlcdTAwMWFcdTAwMWJcdTAwMWNcdTAwMWRcdTAwMWVcdTAwMWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f8OA4bqiw4PDgeG6oOG6tuG6rMOI4bq64bq8w4nhurjhu4bDjOG7iMSow43hu4rDkuG7jsOVw5Phu4zhu5jhu5zhu57hu6Dhu5rhu6LDmeG7psWowqDEgsOCw4rDlMagxq/EkMSDw6LDqsO0xqHGsMSR4bqwzIDMicyDzIHMo8Og4bqjw6PDoeG6oeG6suG6seG6s+G6teG6r+G6tOG6ruG6puG6qOG6quG6pOG7gOG6t+G6p+G6qeG6q+G6peG6rcOo4buC4bq74bq9w6nhurnhu4Hhu4Phu4Xhur/hu4fDrOG7ieG7hOG6vuG7ksSpw63hu4vDsuG7lOG7j8O1w7Phu43hu5Phu5Xhu5fhu5Hhu5nhu53hu5/hu6Hhu5vhu6PDueG7luG7p8Wpw7rhu6Xhu6vhu63hu6/hu6nhu7Hhu7Phu7fhu7nDveG7teG7kCIKICB9LAogICJnZW9yZ2lhbmFjYWRlbXkiOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiwoDCgeKAmsaS4oCe4oCm4oCg4oChy4bigLDFoOKAucWSwo3CjsKPwpDigJjigJnigJzigJ3igKLigJPigJTLnOKEosWh4oC6xZPCncKexbjCoMKhwqLCo8KkwqXCpsKnwqjCqcKqwqvCrMKtwq7Cr8KwwrHCssKzwrTCtcK2wrfCuMK5wrrCu8K8wr3CvsK/4YOQ4YOR4YOS4YOT4YOU4YOV4YOW4YOX4YOY4YOZ4YOa4YOb4YOc4YOd4YOe4YOf4YOg4YOh4YOi4YOj4YOk4YOl4YOm4YOn4YOo4YOp4YOq4YOr4YOs4YOt4YOu4YOv4YOw4YOx4YOy4YOz4YO04YO14YO2w6fDqMOpw6rDq8Osw63DrsOvw7DDscOyw7PDtMO1w7bDt8O4w7nDusO7w7zDvcO+w78iCiAgfSwKICAiZ2VvcmdpYW5wcyI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKB4oCaxpLigJ7igKbigKDigKHLhuKAsMWg4oC5xZLCjcKOwo/CkOKAmOKAmeKAnOKAneKAouKAk+KAlMuc4oSixaHigLrFk8Kdwp7FuMKgwqHCosKjwqTCpcKmwqfCqMKpwqrCq8Kswq3CrsKvwrDCscKywrPCtMK1wrbCt8K4wrnCusK7wrzCvcK+wr/hg5Dhg5Hhg5Lhg5Phg5Thg5Xhg5bhg7Hhg5fhg5jhg5nhg5rhg5vhg5zhg7Lhg53hg57hg5/hg6Dhg6Hhg6Lhg7Phg6Phg6Thg6Xhg6bhg6fhg6jhg6nhg6rhg6vhg6zhg63hg67hg7Thg6/hg7Dhg7XDpsOnw6jDqcOqw6vDrMOtw67Dr8Oww7HDssOzw7TDtcO2w7fDuMO5w7rDu8O8w73DvsO/IgogIH0sCiAgInB0MTU0IjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogItKW0pLTrtKT4oCe4oCm0rbSrtKy0q/SoNOi0qLSmtK60rjSl+KAmOKAmeKAnOKAneKAouKAk+KAlNKz0rfSodOj0qPSm9K70rnCoNCO0Z7QiNOo0pjSsMKn0IHCqdOYwqvCrNOvwq7SnMKw0rHQhtGW0pnTqcK2wrfRkeKEltOZwrvRmNKq0qvSndCQ0JHQktCT0JTQldCW0JfQmNCZ0JrQm9Cc0J3QntCf0KDQodCi0KPQpNCl0KbQp9Co0KnQqtCr0KzQrdCu0K/QsNCx0LLQs9C00LXQttC30LjQudC60LvQvNC90L7Qv9GA0YHRgtGD0YTRhdGG0YfRiNGJ0YrRi9GM0Y3RjtGPIgogIH0sCiAgInZpc2NpaSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICJcdTAwMDBcdTAwMDHhurJcdTAwMDNcdTAwMDThurThuqpcdTAwMDdcYlx0XG5cdTAwMGJcZlxyXHUwMDBlXHUwMDBmXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEz4bu2XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE44bu4XHUwMDFhXHUwMDFiXHUwMDFjXHUwMDFk4bu0XHUwMDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn/huqDhuq7hurDhurbhuqThuqbhuqjhuqzhurzhurjhur7hu4Dhu4Lhu4Thu4bhu5Dhu5Lhu5Thu5bhu5jhu6Lhu5rhu5zhu57hu4rhu47hu4zhu4jhu6bFqOG7pOG7ssOV4bqv4bqx4bq34bql4bqn4bqp4bqt4bq94bq54bq/4buB4buD4buF4buH4buR4buT4buV4buX4bugxqDhu5nhu53hu5/hu4vhu7Dhu6jhu6rhu6zGoeG7m8avw4DDgcOCw4PhuqLEguG6s+G6tcOIw4nDiuG6usOMw43EqOG7s8SQ4bupw5LDk8OU4bqh4bu34bur4butw5nDmuG7ueG7tcOd4buhxrDDoMOhw6LDo+G6o8SD4buv4bqrw6jDqcOq4bq7w6zDrcSp4buJxJHhu7HDssOzw7TDteG7j+G7jeG7pcO5w7rFqeG7p8O94buj4buuIgogIH0sCiAgImlzbzY0NmNuIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIlx1MDAwMFx1MDAwMVx1MDAwMlx1MDAwM1x1MDAwNFx1MDAwNVx1MDAwNlx1MDAwN1xiXHRcblx1MDAwYlxmXHJcdTAwMGVcdTAwMGZcdTAwMTBcdTAwMTFcdTAwMTJcdTAwMTNcdTAwMTRcdTAwMTVcdTAwMTZcdTAwMTdcdTAwMThcdTAwMTlcdTAwMWFcdTAwMWJcdTAwMWNcdTAwMWRcdTAwMWVcdTAwMWYgIVwiI8KlJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x94oC+f++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSIKICB9LAogICJpc282NDZqcCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICJcdTAwMDBcdTAwMDFcdTAwMDJcdTAwMDNcdTAwMDRcdTAwMDVcdTAwMDZcdTAwMDdcYlx0XG5cdTAwMGJcZlxyXHUwMDBlXHUwMDBmXHUwMDEwXHUwMDExXHUwMDEyXHUwMDEzXHUwMDE0XHUwMDE1XHUwMDE2XHUwMDE3XHUwMDE4XHUwMDE5XHUwMDFhXHUwMDFiXHUwMDFjXHUwMDFkXHUwMDFlXHUwMDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW8KlXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x94oC+f++/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vSIKICB9LAogICJocHJvbWFuOCI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLCgMKBwoLCg8KEwoXChsKHwojCicKKwovCjMKNwo7Cj8KQwpHCksKTwpTClcKWwpfCmMKZwprCm8Kcwp3CnsKfwqDDgMOCw4jDisOLw47Dj8K0y4vLhsKoy5zDmcOb4oKkwq/DncO9wrDDh8Onw5HDscKhwr/CpMKjwqXCp8aSwqLDosOqw7TDu8Ohw6nDs8O6w6DDqMOyw7nDpMOrw7bDvMOFw67DmMOGw6XDrcO4w6bDhMOsw5bDnMOJw6/Dn8OUw4HDg8Ojw5DDsMONw4zDk8OSw5XDtcWgxaHDmsW4w7/DnsO+wrfCtcK2wr7igJTCvMK9wqrCusKr4pagwrvCse+/vSIKICB9LAogICJtYWNpbnRvc2giOiB7CiAgICAidHlwZSI6ICJfc2JjcyIsCiAgICAiY2hhcnMiOiAiw4TDhcOHw4nDkcOWw5zDocOgw6LDpMOjw6XDp8Opw6jDqsOrw63DrMOuw6/DscOzw7LDtMO2w7XDusO5w7vDvOKAoMKwwqLCo8Kn4oCiwrbDn8KuwqnihKLCtMKo4omgw4bDmOKInsKx4omk4omlwqXCteKIguKIkeKIj8+A4oirwqrCuuKEpsOmw7jCv8KhwqziiJrGkuKJiOKIhsKrwrvigKbCoMOAw4PDlcWSxZPigJPigJTigJzigJ3igJjigJnDt+KXisO/xbjigYTCpOKAueKAuu+sge+sguKAocK34oCa4oCe4oCww4LDisOBw4vDiMONw47Dj8OMw5PDlO+/vcOSw5rDm8OZxLHLhsucwq/LmMuZy5rCuMudy5vLhyIKICB9LAogICJhc2NpaSI6IHsKICAgICJ0eXBlIjogIl9zYmNzIiwKICAgICJjaGFycyI6ICLvv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv73vv70iCiAgfSwKICAidGlzNjIwIjogewogICAgInR5cGUiOiAiX3NiY3MiLAogICAgImNoYXJzIjogIu+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/veC4geC4guC4g+C4hOC4heC4huC4h+C4iOC4ieC4iuC4i+C4jOC4jeC4juC4j+C4kOC4keC4kuC4k+C4lOC4leC4luC4l+C4mOC4meC4muC4m+C4nOC4neC4nuC4n+C4oOC4oeC4ouC4o+C4pOC4peC4puC4p+C4qOC4qeC4quC4q+C4rOC4reC4ruC4r+C4sOC4seC4suC4s+C4tOC4teC4tuC4t+C4uOC4ueC4uu+/ve+/ve+/ve+/veC4v+C5gOC5geC5guC5g+C5hOC5heC5huC5h+C5iOC5ieC5iuC5i+C5jOC5jeC5juC5j+C5kOC5keC5kuC5k+C5lOC5leC5luC5l+C5mOC5meC5muC5m++/ve+/ve+/ve+/vSIKICB9Cn0KCi8qKiovIH0pLAovKiAxNzggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKdmFyIEJ1ZmZlciA9IF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyOwoKLy8gTXVsdGlieXRlIGNvZGVjLiBJbiB0aGlzIHNjaGVtZSwgYSBjaGFyYWN0ZXIgaXMgcmVwcmVzZW50ZWQgYnkgMSBvciBtb3JlIGJ5dGVzLgovLyBPdXIgY29kZWMgc3VwcG9ydHMgVVRGLTE2IHN1cnJvZ2F0ZXMsIGV4dGVuc2lvbnMgZm9yIEdCMTgwMzAgYW5kIHVuaWNvZGUgc2VxdWVuY2VzLgovLyBUbyBzYXZlIG1lbW9yeSBhbmQgbG9hZGluZyB0aW1lLCB3ZSByZWFkIHRhYmxlIGZpbGVzIG9ubHkgd2hlbiByZXF1ZXN0ZWQuCgpleHBvcnRzLl9kYmNzID0gREJDU0NvZGVjOwoKdmFyIFVOQVNTSUdORUQgPSAtMSwKICAgIEdCMTgwMzBfQ09ERSA9IC0yLAogICAgU0VRX1NUQVJUICA9IC0xMCwKICAgIE5PREVfU1RBUlQgPSAtMTAwMCwKICAgIFVOQVNTSUdORURfTk9ERSA9IG5ldyBBcnJheSgweDEwMCksCiAgICBERUZfQ0hBUiA9IC0xOwoKZm9yICh2YXIgaSA9IDA7IGkgPCAweDEwMDsgaSsrKQogICAgVU5BU1NJR05FRF9OT0RFW2ldID0gVU5BU1NJR05FRDsKCgovLyBDbGFzcyBEQkNTQ29kZWMgcmVhZHMgYW5kIGluaXRpYWxpemVzIG1hcHBpbmcgdGFibGVzLgpmdW5jdGlvbiBEQkNTQ29kZWMoY29kZWNPcHRpb25zLCBpY29udikgewogICAgdGhpcy5lbmNvZGluZ05hbWUgPSBjb2RlY09wdGlvbnMuZW5jb2RpbmdOYW1lOwogICAgaWYgKCFjb2RlY09wdGlvbnMpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJEQkNTIGNvZGVjIGlzIGNhbGxlZCB3aXRob3V0IHRoZSBkYXRhLiIpCiAgICBpZiAoIWNvZGVjT3B0aW9ucy50YWJsZSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkVuY29kaW5nICciICsgdGhpcy5lbmNvZGluZ05hbWUgKyAiJyBoYXMgbm8gZGF0YS4iKTsKCiAgICAvLyBMb2FkIHRhYmxlcy4KICAgIHZhciBtYXBwaW5nVGFibGUgPSBjb2RlY09wdGlvbnMudGFibGUoKTsKCgogICAgLy8gRGVjb2RlIHRhYmxlczogTUJDUyAtPiBVbmljb2RlLgoKICAgIC8vIGRlY29kZVRhYmxlcyBpcyBhIHRyaWUsIGVuY29kZWQgYXMgYW4gYXJyYXkgb2YgYXJyYXlzIG9mIGludGVnZXJzLiBJbnRlcm5hbCBhcnJheXMgYXJlIHRyaWUgbm9kZXMgYW5kIGFsbCBoYXZlIGxlbiA9IDI1Ni4KICAgIC8vIFRyaWUgcm9vdCBpcyBkZWNvZGVUYWJsZXNbMF0uCiAgICAvLyBWYWx1ZXM6ID49ICAwIC0+IHVuaWNvZGUgY2hhcmFjdGVyIGNvZGUuIGNhbiBiZSA+IDB4RkZGRgogICAgLy8gICAgICAgICA9PSBVTkFTU0lHTkVEIC0+IHVua25vd24vdW5hc3NpZ25lZCBzZXF1ZW5jZS4KICAgIC8vICAgICAgICAgPT0gR0IxODAzMF9DT0RFIC0+IHRoaXMgaXMgdGhlIGVuZCBvZiBhIEdCMTgwMzAgNC1ieXRlIHNlcXVlbmNlLgogICAgLy8gICAgICAgICA8PSBOT0RFX1NUQVJUIC0+IGluZGV4IG9mIHRoZSBuZXh0IG5vZGUgaW4gb3VyIHRyaWUgdG8gcHJvY2VzcyBuZXh0IGJ5dGUuCiAgICAvLyAgICAgICAgIDw9IFNFUV9TVEFSVCAgLT4gaW5kZXggb2YgdGhlIHN0YXJ0IG9mIGEgY2hhcmFjdGVyIGNvZGUgc2VxdWVuY2UsIGluIGRlY29kZVRhYmxlU2VxLgogICAgdGhpcy5kZWNvZGVUYWJsZXMgPSBbXTsKICAgIHRoaXMuZGVjb2RlVGFibGVzWzBdID0gVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApOyAvLyBDcmVhdGUgcm9vdCBub2RlLgoKICAgIC8vIFNvbWV0aW1lcyBhIE1CQ1MgY2hhciBjb3JyZXNwb25kcyB0byBhIHNlcXVlbmNlIG9mIHVuaWNvZGUgY2hhcnMuIFdlIHN0b3JlIHRoZW0gYXMgYXJyYXlzIG9mIGludGVnZXJzIGhlcmUuIAogICAgdGhpcy5kZWNvZGVUYWJsZVNlcSA9IFtdOwoKICAgIC8vIEFjdHVhbCBtYXBwaW5nIHRhYmxlcyBjb25zaXN0IG9mIGNodW5rcy4gVXNlIHRoZW0gdG8gZmlsbCB1cCBkZWNvZGUgdGFibGVzLgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXBwaW5nVGFibGUubGVuZ3RoOyBpKyspCiAgICAgICAgdGhpcy5fYWRkRGVjb2RlQ2h1bmsobWFwcGluZ1RhYmxlW2ldKTsKCiAgICB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZSA9IGljb252LmRlZmF1bHRDaGFyVW5pY29kZTsKCiAgICAKICAgIC8vIEVuY29kZSB0YWJsZXM6IFVuaWNvZGUgLT4gREJDUy4KCiAgICAvLyBgZW5jb2RlVGFibGVgIGlzIGFycmF5IG1hcHBpbmcgZnJvbSB1bmljb2RlIGNoYXIgdG8gZW5jb2RlZCBjaGFyLiBBbGwgaXRzIHZhbHVlcyBhcmUgaW50ZWdlcnMgZm9yIHBlcmZvcm1hbmNlLgogICAgLy8gQmVjYXVzZSBpdCBjYW4gYmUgc3BhcnNlLCBpdCBpcyByZXByZXNlbnRlZCBhcyBhcnJheSBvZiBidWNrZXRzIGJ5IDI1NiBjaGFycyBlYWNoLiBCdWNrZXQgY2FuIGJlIG51bGwuCiAgICAvLyBWYWx1ZXM6ID49ICAwIC0+IGl0IGlzIGEgbm9ybWFsIGNoYXIuIFdyaXRlIHRoZSB2YWx1ZSAoaWYgPD0yNTYgdGhlbiAxIGJ5dGUsIGlmIDw9NjU1MzYgdGhlbiAyIGJ5dGVzLCBldGMuKS4KICAgIC8vICAgICAgICAgPT0gVU5BU1NJR05FRCAtPiBubyBjb252ZXJzaW9uIGZvdW5kLiBPdXRwdXQgYSBkZWZhdWx0IGNoYXIuCiAgICAvLyAgICAgICAgIDw9IFNFUV9TVEFSVCAgLT4gaXQncyBhbiBpbmRleCBpbiBlbmNvZGVUYWJsZVNlcSwgc2VlIGJlbG93LiBUaGUgY2hhcmFjdGVyIHN0YXJ0cyBhIHNlcXVlbmNlLgogICAgdGhpcy5lbmNvZGVUYWJsZSA9IFtdOwogICAgCiAgICAvLyBgZW5jb2RlVGFibGVTZXFgIGlzIHVzZWQgd2hlbiBhIHNlcXVlbmNlIG9mIHVuaWNvZGUgY2hhcmFjdGVycyBpcyBlbmNvZGVkIGFzIGEgc2luZ2xlIGNvZGUuIFdlIHVzZSBhIHRyZWUgb2YKICAgIC8vIG9iamVjdHMgd2hlcmUga2V5cyBjb3JyZXNwb25kIHRvIGNoYXJhY3RlcnMgaW4gc2VxdWVuY2UgYW5kIGxlYWZzIGFyZSB0aGUgZW5jb2RlZCBkYmNzIHZhbHVlcy4gQSBzcGVjaWFsIERFRl9DSEFSIGtleQogICAgLy8gbWVhbnMgZW5kIG9mIHNlcXVlbmNlIChuZWVkZWQgd2hlbiBvbmUgc2VxdWVuY2UgaXMgYSBzdHJpY3Qgc3Vic2VxdWVuY2Ugb2YgYW5vdGhlcikuCiAgICAvLyBPYmplY3RzIGFyZSBrZXB0IHNlcGFyYXRlbHkgZnJvbSBlbmNvZGVUYWJsZSB0byBpbmNyZWFzZSBwZXJmb3JtYW5jZS4KICAgIHRoaXMuZW5jb2RlVGFibGVTZXEgPSBbXTsKCiAgICAvLyBTb21lIGNoYXJzIGNhbiBiZSBkZWNvZGVkLCBidXQgbmVlZCBub3QgYmUgZW5jb2RlZC4KICAgIHZhciBza2lwRW5jb2RlQ2hhcnMgPSB7fTsKICAgIGlmIChjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHMpCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb2RlY09wdGlvbnMuZW5jb2RlU2tpcFZhbHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIHZhbCA9IGNvZGVjT3B0aW9ucy5lbmNvZGVTa2lwVmFsc1tpXTsKICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKQogICAgICAgICAgICAgICAgc2tpcEVuY29kZUNoYXJzW3ZhbF0gPSB0cnVlOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gdmFsLmZyb207IGogPD0gdmFsLnRvOyBqKyspCiAgICAgICAgICAgICAgICAgICAgc2tpcEVuY29kZUNoYXJzW2pdID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgCiAgICAvLyBVc2UgZGVjb2RlIHRyaWUgdG8gcmVjdXJzaXZlbHkgZmlsbCBvdXQgZW5jb2RlIHRhYmxlcy4KICAgIHRoaXMuX2ZpbGxFbmNvZGVUYWJsZSgwLCAwLCBza2lwRW5jb2RlQ2hhcnMpOwoKICAgIC8vIEFkZCBtb3JlIGVuY29kaW5nIHBhaXJzIHdoZW4gbmVlZGVkLgogICAgaWYgKGNvZGVjT3B0aW9ucy5lbmNvZGVBZGQpIHsKICAgICAgICBmb3IgKHZhciB1Q2hhciBpbiBjb2RlY09wdGlvbnMuZW5jb2RlQWRkKQogICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNvZGVjT3B0aW9ucy5lbmNvZGVBZGQsIHVDaGFyKSkKICAgICAgICAgICAgICAgIHRoaXMuX3NldEVuY29kZUNoYXIodUNoYXIuY2hhckNvZGVBdCgwKSwgY29kZWNPcHRpb25zLmVuY29kZUFkZFt1Q2hhcl0pOwogICAgfQoKICAgIHRoaXMuZGVmQ2hhclNCICA9IHRoaXMuZW5jb2RlVGFibGVbMF1baWNvbnYuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCldOwogICAgaWYgKHRoaXMuZGVmQ2hhclNCID09PSBVTkFTU0lHTkVEKSB0aGlzLmRlZkNoYXJTQiA9IHRoaXMuZW5jb2RlVGFibGVbMF1bJz8nXTsKICAgIGlmICh0aGlzLmRlZkNoYXJTQiA9PT0gVU5BU1NJR05FRCkgdGhpcy5kZWZDaGFyU0IgPSAiPyIuY2hhckNvZGVBdCgwKTsKCgogICAgLy8gTG9hZCAmIGNyZWF0ZSBHQjE4MDMwIHRhYmxlcyB3aGVuIG5lZWRlZC4KICAgIGlmICh0eXBlb2YgY29kZWNPcHRpb25zLmdiMTgwMzAgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICB0aGlzLmdiMTgwMzAgPSBjb2RlY09wdGlvbnMuZ2IxODAzMCgpOyAvLyBMb2FkIEdCMTgwMzAgcmFuZ2VzLgoKICAgICAgICAvLyBBZGQgR0IxODAzMCBkZWNvZGUgdGFibGVzLgogICAgICAgIHZhciB0aGlyZEJ5dGVOb2RlSWR4ID0gdGhpcy5kZWNvZGVUYWJsZXMubGVuZ3RoOwogICAgICAgIHZhciB0aGlyZEJ5dGVOb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbdGhpcmRCeXRlTm9kZUlkeF0gPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCk7CgogICAgICAgIHZhciBmb3VydGhCeXRlTm9kZUlkeCA9IHRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aDsKICAgICAgICB2YXIgZm91cnRoQnl0ZU5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tmb3VydGhCeXRlTm9kZUlkeF0gPSBVTkFTU0lHTkVEX05PREUuc2xpY2UoMCk7CgogICAgICAgIGZvciAodmFyIGkgPSAweDgxOyBpIDw9IDB4RkU7IGkrKykgewogICAgICAgICAgICB2YXIgc2Vjb25kQnl0ZU5vZGVJZHggPSBOT0RFX1NUQVJUIC0gdGhpcy5kZWNvZGVUYWJsZXNbMF1baV07CiAgICAgICAgICAgIHZhciBzZWNvbmRCeXRlTm9kZSA9IHRoaXMuZGVjb2RlVGFibGVzW3NlY29uZEJ5dGVOb2RlSWR4XTsKICAgICAgICAgICAgZm9yICh2YXIgaiA9IDB4MzA7IGogPD0gMHgzOTsgaisrKQogICAgICAgICAgICAgICAgc2Vjb25kQnl0ZU5vZGVbal0gPSBOT0RFX1NUQVJUIC0gdGhpcmRCeXRlTm9kZUlkeDsKICAgICAgICB9CiAgICAgICAgZm9yICh2YXIgaSA9IDB4ODE7IGkgPD0gMHhGRTsgaSsrKQogICAgICAgICAgICB0aGlyZEJ5dGVOb2RlW2ldID0gTk9ERV9TVEFSVCAtIGZvdXJ0aEJ5dGVOb2RlSWR4OwogICAgICAgIGZvciAodmFyIGkgPSAweDMwOyBpIDw9IDB4Mzk7IGkrKykKICAgICAgICAgICAgZm91cnRoQnl0ZU5vZGVbaV0gPSBHQjE4MDMwX0NPREUKICAgIH0gICAgICAgIAp9CgpEQkNTQ29kZWMucHJvdG90eXBlLmVuY29kZXIgPSBEQkNTRW5jb2RlcjsKREJDU0NvZGVjLnByb3RvdHlwZS5kZWNvZGVyID0gREJDU0RlY29kZXI7CgovLyBEZWNvZGVyIGhlbHBlcnMKREJDU0NvZGVjLnByb3RvdHlwZS5fZ2V0RGVjb2RlVHJpZU5vZGUgPSBmdW5jdGlvbihhZGRyKSB7CiAgICB2YXIgYnl0ZXMgPSBbXTsKICAgIGZvciAoOyBhZGRyID4gMDsgYWRkciA+Pj0gOCkKICAgICAgICBieXRlcy5wdXNoKGFkZHIgJiAweEZGKTsKICAgIGlmIChieXRlcy5sZW5ndGggPT0gMCkKICAgICAgICBieXRlcy5wdXNoKDApOwoKICAgIHZhciBub2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbMF07CiAgICBmb3IgKHZhciBpID0gYnl0ZXMubGVuZ3RoLTE7IGkgPiAwOyBpLS0pIHsgLy8gVHJhdmVyc2Ugbm9kZXMgZGVlcGVyIGludG8gdGhlIHRyaWUuCiAgICAgICAgdmFyIHZhbCA9IG5vZGVbYnl0ZXNbaV1dOwoKICAgICAgICBpZiAodmFsID09IFVOQVNTSUdORUQpIHsgLy8gQ3JlYXRlIG5ldyBub2RlLgogICAgICAgICAgICBub2RlW2J5dGVzW2ldXSA9IE5PREVfU1RBUlQgLSB0aGlzLmRlY29kZVRhYmxlcy5sZW5ndGg7CiAgICAgICAgICAgIHRoaXMuZGVjb2RlVGFibGVzLnB1c2gobm9kZSA9IFVOQVNTSUdORURfTk9ERS5zbGljZSgwKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHZhbCA8PSBOT0RFX1NUQVJUKSB7IC8vIEV4aXN0aW5nIG5vZGUuCiAgICAgICAgICAgIG5vZGUgPSB0aGlzLmRlY29kZVRhYmxlc1tOT0RFX1NUQVJUIC0gdmFsXTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk92ZXJ3cml0ZSBieXRlIGluICIgKyB0aGlzLmVuY29kaW5nTmFtZSArICIsIGFkZHI6ICIgKyBhZGRyLnRvU3RyaW5nKDE2KSk7CiAgICB9CiAgICByZXR1cm4gbm9kZTsKfQoKCkRCQ1NDb2RlYy5wcm90b3R5cGUuX2FkZERlY29kZUNodW5rID0gZnVuY3Rpb24oY2h1bmspIHsKICAgIC8vIEZpcnN0IGVsZW1lbnQgb2YgY2h1bmsgaXMgdGhlIGhleCBtYmNzIGNvZGUgd2hlcmUgd2Ugc3RhcnQuCiAgICB2YXIgY3VyQWRkciA9IHBhcnNlSW50KGNodW5rWzBdLCAxNik7CgogICAgLy8gQ2hvb3NlIHRoZSBkZWNvZGluZyBub2RlIHdoZXJlIHdlJ2xsIHdyaXRlIG91ciBjaGFycy4KICAgIHZhciB3cml0ZVRhYmxlID0gdGhpcy5fZ2V0RGVjb2RlVHJpZU5vZGUoY3VyQWRkcik7CiAgICBjdXJBZGRyID0gY3VyQWRkciAmIDB4RkY7CgogICAgLy8gV3JpdGUgYWxsIG90aGVyIGVsZW1lbnRzIG9mIHRoZSBjaHVuayB0byB0aGUgdGFibGUuCiAgICBmb3IgKHZhciBrID0gMTsgayA8IGNodW5rLmxlbmd0aDsgaysrKSB7CiAgICAgICAgdmFyIHBhcnQgPSBjaHVua1trXTsKICAgICAgICBpZiAodHlwZW9mIHBhcnQgPT09ICJzdHJpbmciKSB7IC8vIFN0cmluZywgd3JpdGUgYXMtaXMuCiAgICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgcGFydC5sZW5ndGg7KSB7CiAgICAgICAgICAgICAgICB2YXIgY29kZSA9IHBhcnQuY2hhckNvZGVBdChsKyspOwogICAgICAgICAgICAgICAgaWYgKDB4RDgwMCA8PSBjb2RlICYmIGNvZGUgPCAweERDMDApIHsgLy8gRGVjb2RlIHN1cnJvZ2F0ZQogICAgICAgICAgICAgICAgICAgIHZhciBjb2RlVHJhaWwgPSBwYXJ0LmNoYXJDb2RlQXQobCsrKTsKICAgICAgICAgICAgICAgICAgICBpZiAoMHhEQzAwIDw9IGNvZGVUcmFpbCAmJiBjb2RlVHJhaWwgPCAweEUwMDApCiAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IDB4MTAwMDAgKyAoY29kZSAtIDB4RDgwMCkgKiAweDQwMCArIChjb2RlVHJhaWwgLSAweERDMDApOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIgaW4gIiAgKyB0aGlzLmVuY29kaW5nTmFtZSArICIgYXQgY2h1bmsgIiArIGNodW5rWzBdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKDB4MEZGMCA8IGNvZGUgJiYgY29kZSA8PSAweDBGRkYpIHsgLy8gQ2hhcmFjdGVyIHNlcXVlbmNlIChvdXIgb3duIGVuY29kaW5nIHVzZWQpCiAgICAgICAgICAgICAgICAgICAgdmFyIGxlbiA9IDB4RkZGIC0gY29kZSArIDI7CiAgICAgICAgICAgICAgICAgICAgdmFyIHNlcSA9IFtdOwogICAgICAgICAgICAgICAgICAgIGZvciAodmFyIG0gPSAwOyBtIDwgbGVuOyBtKyspCiAgICAgICAgICAgICAgICAgICAgICAgIHNlcS5wdXNoKHBhcnQuY2hhckNvZGVBdChsKyspKTsgLy8gU2ltcGxlIHZhcmlhdGlvbjogZG9uJ3Qgc3VwcG9ydCBzdXJyb2dhdGVzIG9yIHN1YnNlcXVlbmNlcyBpbiBzZXEuCgogICAgICAgICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IFNFUV9TVEFSVCAtIHRoaXMuZGVjb2RlVGFibGVTZXEubGVuZ3RoOwogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVjb2RlVGFibGVTZXEucHVzaChzZXEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHdyaXRlVGFibGVbY3VyQWRkcisrXSA9IGNvZGU7IC8vIEJhc2ljIGNoYXIKICAgICAgICAgICAgfQogICAgICAgIH0gCiAgICAgICAgZWxzZSBpZiAodHlwZW9mIHBhcnQgPT09ICJudW1iZXIiKSB7IC8vIEludGVnZXIsIG1lYW5pbmcgaW5jcmVhc2luZyBzZXF1ZW5jZSBzdGFydGluZyB3aXRoIHByZXYgY2hhcmFjdGVyLgogICAgICAgICAgICB2YXIgY2hhckNvZGUgPSB3cml0ZVRhYmxlW2N1ckFkZHIgLSAxXSArIDE7CiAgICAgICAgICAgIGZvciAodmFyIGwgPSAwOyBsIDwgcGFydDsgbCsrKQogICAgICAgICAgICAgICAgd3JpdGVUYWJsZVtjdXJBZGRyKytdID0gY2hhckNvZGUrKzsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCB0eXBlICciICsgdHlwZW9mIHBhcnQgKyAiJyBnaXZlbiBpbiAiICArIHRoaXMuZW5jb2RpbmdOYW1lICsgIiBhdCBjaHVuayAiICsgY2h1bmtbMF0pOwogICAgfQogICAgaWYgKGN1ckFkZHIgPiAweEZGKQogICAgICAgIHRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IGNodW5rIGluICIgICsgdGhpcy5lbmNvZGluZ05hbWUgKyAiIGF0IGFkZHIgIiArIGNodW5rWzBdICsgIjogdG9vIGxvbmciICsgY3VyQWRkcik7Cn0KCi8vIEVuY29kZXIgaGVscGVycwpEQkNTQ29kZWMucHJvdG90eXBlLl9nZXRFbmNvZGVCdWNrZXQgPSBmdW5jdGlvbih1Q29kZSkgewogICAgdmFyIGhpZ2ggPSB1Q29kZSA+PiA4OyAvLyBUaGlzIGNvdWxkIGJlID4gMHhGRiBiZWNhdXNlIG9mIGFzdHJhbCBjaGFyYWN0ZXJzLgogICAgaWYgKHRoaXMuZW5jb2RlVGFibGVbaGlnaF0gPT09IHVuZGVmaW5lZCkKICAgICAgICB0aGlzLmVuY29kZVRhYmxlW2hpZ2hdID0gVU5BU1NJR05FRF9OT0RFLnNsaWNlKDApOyAvLyBDcmVhdGUgYnVja2V0IG9uIGRlbWFuZC4KICAgIHJldHVybiB0aGlzLmVuY29kZVRhYmxlW2hpZ2hdOwp9CgpEQkNTQ29kZWMucHJvdG90eXBlLl9zZXRFbmNvZGVDaGFyID0gZnVuY3Rpb24odUNvZGUsIGRiY3NDb2RlKSB7CiAgICB2YXIgYnVja2V0ID0gdGhpcy5fZ2V0RW5jb2RlQnVja2V0KHVDb2RlKTsKICAgIHZhciBsb3cgPSB1Q29kZSAmIDB4RkY7CiAgICBpZiAoYnVja2V0W2xvd10gPD0gU0VRX1NUQVJUKQogICAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXFbU0VRX1NUQVJULWJ1Y2tldFtsb3ddXVtERUZfQ0hBUl0gPSBkYmNzQ29kZTsgLy8gVGhlcmUncyBhbHJlYWR5IGEgc2VxdWVuY2UsIHNldCBhIHNpbmdsZS1jaGFyIHN1YnNlcXVlbmNlIG9mIGl0LgogICAgZWxzZSBpZiAoYnVja2V0W2xvd10gPT0gVU5BU1NJR05FRCkKICAgICAgICBidWNrZXRbbG93XSA9IGRiY3NDb2RlOwp9CgpEQkNTQ29kZWMucHJvdG90eXBlLl9zZXRFbmNvZGVTZXF1ZW5jZSA9IGZ1bmN0aW9uKHNlcSwgZGJjc0NvZGUpIHsKICAgIAogICAgLy8gR2V0IHRoZSByb290IG9mIGNoYXJhY3RlciB0cmVlIGFjY29yZGluZyB0byBmaXJzdCBjaGFyYWN0ZXIgb2YgdGhlIHNlcXVlbmNlLgogICAgdmFyIHVDb2RlID0gc2VxWzBdOwogICAgdmFyIGJ1Y2tldCA9IHRoaXMuX2dldEVuY29kZUJ1Y2tldCh1Q29kZSk7CiAgICB2YXIgbG93ID0gdUNvZGUgJiAweEZGOwoKICAgIHZhciBub2RlOwogICAgaWYgKGJ1Y2tldFtsb3ddIDw9IFNFUV9TVEFSVCkgewogICAgICAgIC8vIFRoZXJlJ3MgYWxyZWFkeSBhIHNlcXVlbmNlIHdpdGggIC0gdXNlIGl0LgogICAgICAgIG5vZGUgPSB0aGlzLmVuY29kZVRhYmxlU2VxW1NFUV9TVEFSVC1idWNrZXRbbG93XV07CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAvLyBUaGVyZSB3YXMgbm8gc2VxdWVuY2Ugb2JqZWN0IC0gYWxsb2NhdGUgYSBuZXcgb25lLgogICAgICAgIG5vZGUgPSB7fTsKICAgICAgICBpZiAoYnVja2V0W2xvd10gIT09IFVOQVNTSUdORUQpIG5vZGVbREVGX0NIQVJdID0gYnVja2V0W2xvd107IC8vIElmIGEgY2hhciB3YXMgc2V0IGJlZm9yZSAtIG1ha2UgaXQgYSBzaW5nbGUtY2hhciBzdWJzZXF1ZW5jZS4KICAgICAgICBidWNrZXRbbG93XSA9IFNFUV9TVEFSVCAtIHRoaXMuZW5jb2RlVGFibGVTZXEubGVuZ3RoOwogICAgICAgIHRoaXMuZW5jb2RlVGFibGVTZXEucHVzaChub2RlKTsKICAgIH0KCiAgICAvLyBUcmF2ZXJzZSB0aGUgY2hhcmFjdGVyIHRyZWUsIGFsbG9jYXRpbmcgbmV3IG5vZGVzIGFzIG5lZWRlZC4KICAgIGZvciAodmFyIGogPSAxOyBqIDwgc2VxLmxlbmd0aC0xOyBqKyspIHsKICAgICAgICB2YXIgb2xkVmFsID0gbm9kZVt1Q29kZV07CiAgICAgICAgaWYgKHR5cGVvZiBvbGRWYWwgPT09ICdvYmplY3QnKQogICAgICAgICAgICBub2RlID0gb2xkVmFsOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBub2RlID0gbm9kZVt1Q29kZV0gPSB7fQogICAgICAgICAgICBpZiAob2xkVmFsICE9PSB1bmRlZmluZWQpCiAgICAgICAgICAgICAgICBub2RlW0RFRl9DSEFSXSA9IG9sZFZhbAogICAgICAgIH0KICAgIH0KCiAgICAvLyBTZXQgdGhlIGxlYWYgdG8gZ2l2ZW4gZGJjc0NvZGUuCiAgICB1Q29kZSA9IHNlcVtzZXEubGVuZ3RoLTFdOwogICAgbm9kZVt1Q29kZV0gPSBkYmNzQ29kZTsKfQoKREJDU0NvZGVjLnByb3RvdHlwZS5fZmlsbEVuY29kZVRhYmxlID0gZnVuY3Rpb24obm9kZUlkeCwgcHJlZml4LCBza2lwRW5jb2RlQ2hhcnMpIHsKICAgIHZhciBub2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbbm9kZUlkeF07CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IDB4MTAwOyBpKyspIHsKICAgICAgICB2YXIgdUNvZGUgPSBub2RlW2ldOwogICAgICAgIHZhciBtYkNvZGUgPSBwcmVmaXggKyBpOwogICAgICAgIGlmIChza2lwRW5jb2RlQ2hhcnNbbWJDb2RlXSkKICAgICAgICAgICAgY29udGludWU7CgogICAgICAgIGlmICh1Q29kZSA+PSAwKQogICAgICAgICAgICB0aGlzLl9zZXRFbmNvZGVDaGFyKHVDb2RlLCBtYkNvZGUpOwogICAgICAgIGVsc2UgaWYgKHVDb2RlIDw9IE5PREVfU1RBUlQpCiAgICAgICAgICAgIHRoaXMuX2ZpbGxFbmNvZGVUYWJsZShOT0RFX1NUQVJUIC0gdUNvZGUsIG1iQ29kZSA8PCA4LCBza2lwRW5jb2RlQ2hhcnMpOwogICAgICAgIGVsc2UgaWYgKHVDb2RlIDw9IFNFUV9TVEFSVCkKICAgICAgICAgICAgdGhpcy5fc2V0RW5jb2RlU2VxdWVuY2UodGhpcy5kZWNvZGVUYWJsZVNlcVtTRVFfU1RBUlQgLSB1Q29kZV0sIG1iQ29kZSk7CiAgICB9Cn0KCgoKLy8gPT0gRW5jb2RlciA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCmZ1bmN0aW9uIERCQ1NFbmNvZGVyKG9wdGlvbnMsIGNvZGVjKSB7CiAgICAvLyBFbmNvZGVyIHN0YXRlCiAgICB0aGlzLmxlYWRTdXJyb2dhdGUgPSAtMTsKICAgIHRoaXMuc2VxT2JqID0gdW5kZWZpbmVkOwogICAgCiAgICAvLyBTdGF0aWMgZGF0YQogICAgdGhpcy5lbmNvZGVUYWJsZSA9IGNvZGVjLmVuY29kZVRhYmxlOwogICAgdGhpcy5lbmNvZGVUYWJsZVNlcSA9IGNvZGVjLmVuY29kZVRhYmxlU2VxOwogICAgdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUgPSBjb2RlYy5kZWZDaGFyU0I7CiAgICB0aGlzLmdiMTgwMzAgPSBjb2RlYy5nYjE4MDMwOwp9CgpEQkNTRW5jb2Rlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHIpIHsKICAgIHZhciBuZXdCdWYgPSBuZXcgQnVmZmVyKHN0ci5sZW5ndGggKiAodGhpcy5nYjE4MDMwID8gNCA6IDMpKSwgCiAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IHRoaXMubGVhZFN1cnJvZ2F0ZSwKICAgICAgICBzZXFPYmogPSB0aGlzLnNlcU9iaiwgbmV4dENoYXIgPSAtMSwKICAgICAgICBpID0gMCwgaiA9IDA7CgogICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAvLyAwLiBHZXQgbmV4dCBjaGFyYWN0ZXIuCiAgICAgICAgaWYgKG5leHRDaGFyID09PSAtMSkgewogICAgICAgICAgICBpZiAoaSA9PSBzdHIubGVuZ3RoKSBicmVhazsKICAgICAgICAgICAgdmFyIHVDb2RlID0gc3RyLmNoYXJDb2RlQXQoaSsrKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHZhciB1Q29kZSA9IG5leHRDaGFyOwogICAgICAgICAgICBuZXh0Q2hhciA9IC0xOyAgICAKICAgICAgICB9CgogICAgICAgIC8vIDEuIEhhbmRsZSBzdXJyb2dhdGVzLgogICAgICAgIGlmICgweEQ4MDAgPD0gdUNvZGUgJiYgdUNvZGUgPCAweEUwMDApIHsgLy8gQ2hhciBpcyBvbmUgb2Ygc3Vycm9nYXRlcy4KICAgICAgICAgICAgaWYgKHVDb2RlIDwgMHhEQzAwKSB7IC8vIFdlJ3ZlIGdvdCBsZWFkIHN1cnJvZ2F0ZS4KICAgICAgICAgICAgICAgIGlmIChsZWFkU3Vycm9nYXRlID09PSAtMSkgewogICAgICAgICAgICAgICAgICAgIGxlYWRTdXJyb2dhdGUgPSB1Q29kZTsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IHVDb2RlOwogICAgICAgICAgICAgICAgICAgIC8vIERvdWJsZSBsZWFkIHN1cnJvZ2F0ZSBmb3VuZC4KICAgICAgICAgICAgICAgICAgICB1Q29kZSA9IFVOQVNTSUdORUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7IC8vIFdlJ3ZlIGdvdCB0cmFpbCBzdXJyb2dhdGUuCiAgICAgICAgICAgICAgICBpZiAobGVhZFN1cnJvZ2F0ZSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICB1Q29kZSA9IDB4MTAwMDAgKyAobGVhZFN1cnJvZ2F0ZSAtIDB4RDgwMCkgKiAweDQwMCArICh1Q29kZSAtIDB4REMwMCk7CiAgICAgICAgICAgICAgICAgICAgbGVhZFN1cnJvZ2F0ZSA9IC0xOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBJbmNvbXBsZXRlIHN1cnJvZ2F0ZSBwYWlyIC0gb25seSB0cmFpbCBzdXJyb2dhdGUgZm91bmQuCiAgICAgICAgICAgICAgICAgICAgdUNvZGUgPSBVTkFTU0lHTkVEOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAobGVhZFN1cnJvZ2F0ZSAhPT0gLTEpIHsKICAgICAgICAgICAgLy8gSW5jb21wbGV0ZSBzdXJyb2dhdGUgcGFpciAtIG9ubHkgbGVhZCBzdXJyb2dhdGUgZm91bmQuCiAgICAgICAgICAgIG5leHRDaGFyID0gdUNvZGU7IHVDb2RlID0gVU5BU1NJR05FRDsgLy8gV3JpdGUgYW4gZXJyb3IsIHRoZW4gY3VycmVudCBjaGFyLgogICAgICAgICAgICBsZWFkU3Vycm9nYXRlID0gLTE7CiAgICAgICAgfQoKICAgICAgICAvLyAyLiBDb252ZXJ0IHVDb2RlIGNoYXJhY3Rlci4KICAgICAgICB2YXIgZGJjc0NvZGUgPSBVTkFTU0lHTkVEOwogICAgICAgIGlmIChzZXFPYmogIT09IHVuZGVmaW5lZCAmJiB1Q29kZSAhPSBVTkFTU0lHTkVEKSB7IC8vIFdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzZXF1ZW5jZQogICAgICAgICAgICB2YXIgcmVzQ29kZSA9IHNlcU9ialt1Q29kZV07CiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzQ29kZSA9PT0gJ29iamVjdCcpIHsgLy8gU2VxdWVuY2UgY29udGludWVzLgogICAgICAgICAgICAgICAgc2VxT2JqID0gcmVzQ29kZTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwoKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzQ29kZSA9PSAnbnVtYmVyJykgeyAvLyBTZXF1ZW5jZSBmaW5pc2hlZC4gV3JpdGUgaXQuCiAgICAgICAgICAgICAgICBkYmNzQ29kZSA9IHJlc0NvZGU7CgogICAgICAgICAgICB9IGVsc2UgaWYgKHJlc0NvZGUgPT0gdW5kZWZpbmVkKSB7IC8vIEN1cnJlbnQgY2hhcmFjdGVyIGlzIG5vdCBwYXJ0IG9mIHRoZSBzZXF1ZW5jZS4KCiAgICAgICAgICAgICAgICAvLyBUcnkgZGVmYXVsdCBjaGFyYWN0ZXIgZm9yIHRoaXMgc2VxdWVuY2UKICAgICAgICAgICAgICAgIHJlc0NvZGUgPSBzZXFPYmpbREVGX0NIQVJdOwogICAgICAgICAgICAgICAgaWYgKHJlc0NvZGUgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgIGRiY3NDb2RlID0gcmVzQ29kZTsgLy8gRm91bmQuIFdyaXRlIGl0LgogICAgICAgICAgICAgICAgICAgIG5leHRDaGFyID0gdUNvZGU7IC8vIEN1cnJlbnQgY2hhcmFjdGVyIHdpbGwgYmUgd3JpdHRlbiB0b28gaW4gdGhlIG5leHQgaXRlcmF0aW9uLgoKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogV2hhdCBpZiB3ZSBoYXZlIG5vIGRlZmF1bHQ/IChyZXNDb2RlID09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICAgICAgICAvLyBUaGVuLCB3ZSBzaG91bGQgd3JpdGUgZmlyc3QgY2hhciBvZiB0aGUgc2VxdWVuY2UgYXMtaXMgYW5kIHRyeSB0aGUgcmVzdCByZWN1cnNpdmVseS4KICAgICAgICAgICAgICAgICAgICAvLyBEaWRuJ3QgZG8gaXQgZm9yIG5vdyBiZWNhdXNlIG5vIGVuY29kaW5nIGhhcyB0aGlzIHNpdHVhdGlvbiB5ZXQuCiAgICAgICAgICAgICAgICAgICAgLy8gQ3VycmVudGx5LCBqdXN0IHNraXAgdGhlIHNlcXVlbmNlIGFuZCB3cml0ZSBjdXJyZW50IGNoYXIuCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2VxT2JqID0gdW5kZWZpbmVkOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh1Q29kZSA+PSAwKSB7ICAvLyBSZWd1bGFyIGNoYXJhY3RlcgogICAgICAgICAgICB2YXIgc3VidGFibGUgPSB0aGlzLmVuY29kZVRhYmxlW3VDb2RlID4+IDhdOwogICAgICAgICAgICBpZiAoc3VidGFibGUgIT09IHVuZGVmaW5lZCkKICAgICAgICAgICAgICAgIGRiY3NDb2RlID0gc3VidGFibGVbdUNvZGUgJiAweEZGXTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChkYmNzQ29kZSA8PSBTRVFfU1RBUlQpIHsgLy8gU2VxdWVuY2Ugc3RhcnQKICAgICAgICAgICAgICAgIHNlcU9iaiA9IHRoaXMuZW5jb2RlVGFibGVTZXFbU0VRX1NUQVJULWRiY3NDb2RlXTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoZGJjc0NvZGUgPT0gVU5BU1NJR05FRCAmJiB0aGlzLmdiMTgwMzApIHsKICAgICAgICAgICAgICAgIC8vIFVzZSBHQjE4MDMwIGFsZ29yaXRobSB0byBmaW5kIGNoYXJhY3RlcihzKSB0byB3cml0ZS4KICAgICAgICAgICAgICAgIHZhciBpZHggPSBmaW5kSWR4KHRoaXMuZ2IxODAzMC51Q2hhcnMsIHVDb2RlKTsKICAgICAgICAgICAgICAgIGlmIChpZHggIT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICB2YXIgZGJjc0NvZGUgPSB0aGlzLmdiMTgwMzAuZ2JDaGFyc1tpZHhdICsgKHVDb2RlIC0gdGhpcy5nYjE4MDMwLnVDaGFyc1tpZHhdKTsKICAgICAgICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDB4ODEgKyBNYXRoLmZsb29yKGRiY3NDb2RlIC8gMTI2MDApOyBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTI2MDA7CiAgICAgICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSAweDMwICsgTWF0aC5mbG9vcihkYmNzQ29kZSAvIDEyNjApOyBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTI2MDsKICAgICAgICAgICAgICAgICAgICBuZXdCdWZbaisrXSA9IDB4ODEgKyBNYXRoLmZsb29yKGRiY3NDb2RlIC8gMTApOyBkYmNzQ29kZSA9IGRiY3NDb2RlICUgMTA7CiAgICAgICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSAweDMwICsgZGJjc0NvZGU7CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIDMuIFdyaXRlIGRiY3NDb2RlIGNoYXJhY3Rlci4KICAgICAgICBpZiAoZGJjc0NvZGUgPT09IFVOQVNTSUdORUQpCiAgICAgICAgICAgIGRiY3NDb2RlID0gdGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGU7CiAgICAgICAgCiAgICAgICAgaWYgKGRiY3NDb2RlIDwgMHgxMDApIHsKICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoZGJjc0NvZGUgPCAweDEwMDAwKSB7CiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gODsgICAvLyBoaWdoIGJ5dGUKICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZSAmIDB4RkY7IC8vIGxvdyBieXRlCiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBuZXdCdWZbaisrXSA9IGRiY3NDb2RlID4+IDE2OwogICAgICAgICAgICBuZXdCdWZbaisrXSA9IChkYmNzQ29kZSA+PiA4KSAmIDB4RkY7CiAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAweEZGOwogICAgICAgIH0KICAgIH0KCiAgICB0aGlzLnNlcU9iaiA9IHNlcU9iajsKICAgIHRoaXMubGVhZFN1cnJvZ2F0ZSA9IGxlYWRTdXJyb2dhdGU7CiAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopOwp9CgpEQkNTRW5jb2Rlci5wcm90b3R5cGUuZW5kID0gZnVuY3Rpb24oKSB7CiAgICBpZiAodGhpcy5sZWFkU3Vycm9nYXRlID09PSAtMSAmJiB0aGlzLnNlcU9iaiA9PT0gdW5kZWZpbmVkKQogICAgICAgIHJldHVybjsgLy8gQWxsIGNsZWFuLiBNb3N0IG9mdGVuIGNhc2UuCgogICAgdmFyIG5ld0J1ZiA9IG5ldyBCdWZmZXIoMTApLCBqID0gMDsKCiAgICBpZiAodGhpcy5zZXFPYmopIHsgLy8gV2UncmUgaW4gdGhlIHNlcXVlbmNlLgogICAgICAgIHZhciBkYmNzQ29kZSA9IHRoaXMuc2VxT2JqW0RFRl9DSEFSXTsKICAgICAgICBpZiAoZGJjc0NvZGUgIT09IHVuZGVmaW5lZCkgeyAvLyBXcml0ZSBiZWdpbm5pbmcgb2YgdGhlIHNlcXVlbmNlLgogICAgICAgICAgICBpZiAoZGJjc0NvZGUgPCAweDEwMCkgewogICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSBkYmNzQ29kZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgPj4gODsgICAvLyBoaWdoIGJ5dGUKICAgICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gZGJjc0NvZGUgJiAweEZGOyAvLyBsb3cgYnl0ZQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gU2VlIHRvZG8gYWJvdmUuCiAgICAgICAgfQogICAgICAgIHRoaXMuc2VxT2JqID0gdW5kZWZpbmVkOwogICAgfQoKICAgIGlmICh0aGlzLmxlYWRTdXJyb2dhdGUgIT09IC0xKSB7CiAgICAgICAgLy8gSW5jb21wbGV0ZSBzdXJyb2dhdGUgcGFpciAtIG9ubHkgbGVhZCBzdXJyb2dhdGUgZm91bmQuCiAgICAgICAgbmV3QnVmW2orK10gPSB0aGlzLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZTsKICAgICAgICB0aGlzLmxlYWRTdXJyb2dhdGUgPSAtMTsKICAgIH0KICAgIAogICAgcmV0dXJuIG5ld0J1Zi5zbGljZSgwLCBqKTsKfQoKLy8gRXhwb3J0IGZvciB0ZXN0aW5nCkRCQ1NFbmNvZGVyLnByb3RvdHlwZS5maW5kSWR4ID0gZmluZElkeDsKCgovLyA9PSBEZWNvZGVyID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKZnVuY3Rpb24gREJDU0RlY29kZXIob3B0aW9ucywgY29kZWMpIHsKICAgIC8vIERlY29kZXIgc3RhdGUKICAgIHRoaXMubm9kZUlkeCA9IDA7CiAgICB0aGlzLnByZXZCdWYgPSBuZXcgQnVmZmVyKDApOwoKICAgIC8vIFN0YXRpYyBkYXRhCiAgICB0aGlzLmRlY29kZVRhYmxlcyA9IGNvZGVjLmRlY29kZVRhYmxlczsKICAgIHRoaXMuZGVjb2RlVGFibGVTZXEgPSBjb2RlYy5kZWNvZGVUYWJsZVNlcTsKICAgIHRoaXMuZGVmYXVsdENoYXJVbmljb2RlID0gY29kZWMuZGVmYXVsdENoYXJVbmljb2RlOwogICAgdGhpcy5nYjE4MDMwID0gY29kZWMuZ2IxODAzMDsKfQoKREJDU0RlY29kZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oYnVmKSB7CiAgICB2YXIgbmV3QnVmID0gbmV3IEJ1ZmZlcihidWYubGVuZ3RoKjIpLAogICAgICAgIG5vZGVJZHggPSB0aGlzLm5vZGVJZHgsIAogICAgICAgIHByZXZCdWYgPSB0aGlzLnByZXZCdWYsIHByZXZCdWZPZmZzZXQgPSB0aGlzLnByZXZCdWYubGVuZ3RoLAogICAgICAgIHNlcVN0YXJ0ID0gLXRoaXMucHJldkJ1Zi5sZW5ndGgsIC8vIGlkeCBvZiB0aGUgc3RhcnQgb2YgY3VycmVudCBwYXJzZWQgc2VxdWVuY2UuCiAgICAgICAgdUNvZGU7CgogICAgaWYgKHByZXZCdWZPZmZzZXQgPiAwKSAvLyBNYWtlIHByZXYgYnVmIG92ZXJsYXAgYSBsaXR0bGUgdG8gbWFrZSBpdCBlYXNpZXIgdG8gc2xpY2UgbGF0ZXIuCiAgICAgICAgcHJldkJ1ZiA9IEJ1ZmZlci5jb25jYXQoW3ByZXZCdWYsIGJ1Zi5zbGljZSgwLCAxMCldKTsKICAgIAogICAgZm9yICh2YXIgaSA9IDAsIGogPSAwOyBpIDwgYnVmLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgdmFyIGN1ckJ5dGUgPSAoaSA+PSAwKSA/IGJ1ZltpXSA6IHByZXZCdWZbaSArIHByZXZCdWZPZmZzZXRdOwoKICAgICAgICAvLyBMb29rdXAgaW4gY3VycmVudCB0cmllIG5vZGUuCiAgICAgICAgdmFyIHVDb2RlID0gdGhpcy5kZWNvZGVUYWJsZXNbbm9kZUlkeF1bY3VyQnl0ZV07CgogICAgICAgIGlmICh1Q29kZSA+PSAwKSB7IAogICAgICAgICAgICAvLyBOb3JtYWwgY2hhcmFjdGVyLCBqdXN0IHVzZSBpdC4KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAodUNvZGUgPT09IFVOQVNTSUdORUQpIHsgLy8gVW5rbm93biBjaGFyLgogICAgICAgICAgICAvLyBUT0RPOiBDYWxsYmFjayB3aXRoIHNlcS4KICAgICAgICAgICAgLy92YXIgY3VyU2VxID0gKHNlcVN0YXJ0ID49IDApID8gYnVmLnNsaWNlKHNlcVN0YXJ0LCBpKzEpIDogcHJldkJ1Zi5zbGljZShzZXFTdGFydCArIHByZXZCdWZPZmZzZXQsIGkrMSArIHByZXZCdWZPZmZzZXQpOwogICAgICAgICAgICBpID0gc2VxU3RhcnQ7IC8vIFRyeSB0byBwYXJzZSBhZ2FpbiwgYWZ0ZXIgc2tpcHBpbmcgZmlyc3QgYnl0ZSBvZiB0aGUgc2VxdWVuY2UgKCdpJyB3aWxsIGJlIGluY3JlbWVudGVkIGJ5ICdmb3InIGN5Y2xlKS4KICAgICAgICAgICAgdUNvZGUgPSB0aGlzLmRlZmF1bHRDaGFyVW5pY29kZS5jaGFyQ29kZUF0KDApOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh1Q29kZSA9PT0gR0IxODAzMF9DT0RFKSB7CiAgICAgICAgICAgIHZhciBjdXJTZXEgPSAoc2VxU3RhcnQgPj0gMCkgPyBidWYuc2xpY2Uoc2VxU3RhcnQsIGkrMSkgOiBwcmV2QnVmLnNsaWNlKHNlcVN0YXJ0ICsgcHJldkJ1Zk9mZnNldCwgaSsxICsgcHJldkJ1Zk9mZnNldCk7CiAgICAgICAgICAgIHZhciBwdHIgPSAoY3VyU2VxWzBdLTB4ODEpKjEyNjAwICsgKGN1clNlcVsxXS0weDMwKSoxMjYwICsgKGN1clNlcVsyXS0weDgxKSoxMCArIChjdXJTZXFbM10tMHgzMCk7CiAgICAgICAgICAgIHZhciBpZHggPSBmaW5kSWR4KHRoaXMuZ2IxODAzMC5nYkNoYXJzLCBwdHIpOwogICAgICAgICAgICB1Q29kZSA9IHRoaXMuZ2IxODAzMC51Q2hhcnNbaWR4XSArIHB0ciAtIHRoaXMuZ2IxODAzMC5nYkNoYXJzW2lkeF07CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHVDb2RlIDw9IE5PREVfU1RBUlQpIHsgLy8gR28gdG8gbmV4dCB0cmllIG5vZGUuCiAgICAgICAgICAgIG5vZGVJZHggPSBOT0RFX1NUQVJUIC0gdUNvZGU7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh1Q29kZSA8PSBTRVFfU1RBUlQpIHsgLy8gT3V0cHV0IGEgc2VxdWVuY2Ugb2YgY2hhcnMuCiAgICAgICAgICAgIHZhciBzZXEgPSB0aGlzLmRlY29kZVRhYmxlU2VxW1NFUV9TVEFSVCAtIHVDb2RlXTsKICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBzZXEubGVuZ3RoIC0gMTsgaysrKSB7CiAgICAgICAgICAgICAgICB1Q29kZSA9IHNlcVtrXTsKICAgICAgICAgICAgICAgIG5ld0J1ZltqKytdID0gdUNvZGUgJiAweEZGOwogICAgICAgICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZSA+PiA4OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHVDb2RlID0gc2VxW3NlcS5sZW5ndGgtMV07CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJpY29udi1saXRlIGludGVybmFsIGVycm9yOiBpbnZhbGlkIGRlY29kaW5nIHRhYmxlIHZhbHVlICIgKyB1Q29kZSArICIgYXQgIiArIG5vZGVJZHggKyAiLyIgKyBjdXJCeXRlKTsKCiAgICAgICAgLy8gV3JpdGUgdGhlIGNoYXJhY3RlciB0byBidWZmZXIsIGhhbmRsaW5nIGhpZ2hlciBwbGFuZXMgdXNpbmcgc3Vycm9nYXRlIHBhaXIuCiAgICAgICAgaWYgKHVDb2RlID4gMHhGRkZGKSB7IAogICAgICAgICAgICB1Q29kZSAtPSAweDEwMDAwOwogICAgICAgICAgICB2YXIgdUNvZGVMZWFkID0gMHhEODAwICsgTWF0aC5mbG9vcih1Q29kZSAvIDB4NDAwKTsKICAgICAgICAgICAgbmV3QnVmW2orK10gPSB1Q29kZUxlYWQgJiAweEZGOwogICAgICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlTGVhZCA+PiA4OwoKICAgICAgICAgICAgdUNvZGUgPSAweERDMDAgKyB1Q29kZSAlIDB4NDAwOwogICAgICAgIH0KICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlICYgMHhGRjsKICAgICAgICBuZXdCdWZbaisrXSA9IHVDb2RlID4+IDg7CgogICAgICAgIC8vIFJlc2V0IHRyaWUgbm9kZS4KICAgICAgICBub2RlSWR4ID0gMDsgc2VxU3RhcnQgPSBpKzE7CiAgICB9CgogICAgdGhpcy5ub2RlSWR4ID0gbm9kZUlkeDsKICAgIHRoaXMucHJldkJ1ZiA9IChzZXFTdGFydCA+PSAwKSA/IGJ1Zi5zbGljZShzZXFTdGFydCkgOiBwcmV2QnVmLnNsaWNlKHNlcVN0YXJ0ICsgcHJldkJ1Zk9mZnNldCk7CiAgICByZXR1cm4gbmV3QnVmLnNsaWNlKDAsIGopLnRvU3RyaW5nKCd1Y3MyJyk7Cn0KCkRCQ1NEZWNvZGVyLnByb3RvdHlwZS5lbmQgPSBmdW5jdGlvbigpIHsKICAgIHZhciByZXQgPSAnJzsKCiAgICAvLyBUcnkgdG8gcGFyc2UgYWxsIHJlbWFpbmluZyBjaGFycy4KICAgIHdoaWxlICh0aGlzLnByZXZCdWYubGVuZ3RoID4gMCkgewogICAgICAgIC8vIFNraXAgMSBjaGFyYWN0ZXIgaW4gdGhlIGJ1ZmZlci4KICAgICAgICByZXQgKz0gdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7CiAgICAgICAgdmFyIGJ1ZiA9IHRoaXMucHJldkJ1Zi5zbGljZSgxKTsKCiAgICAgICAgLy8gUGFyc2UgcmVtYWluaW5nIGFzIHVzdWFsLgogICAgICAgIHRoaXMucHJldkJ1ZiA9IG5ldyBCdWZmZXIoMCk7CiAgICAgICAgdGhpcy5ub2RlSWR4ID0gMDsKICAgICAgICBpZiAoYnVmLmxlbmd0aCA+IDApCiAgICAgICAgICAgIHJldCArPSB0aGlzLndyaXRlKGJ1Zik7CiAgICB9CgogICAgdGhpcy5ub2RlSWR4ID0gMDsKICAgIHJldHVybiByZXQ7Cn0KCi8vIEJpbmFyeSBzZWFyY2ggZm9yIEdCMTgwMzAuIFJldHVybnMgbGFyZ2VzdCBpIHN1Y2ggdGhhdCB0YWJsZVtpXSA8PSB2YWwuCmZ1bmN0aW9uIGZpbmRJZHgodGFibGUsIHZhbCkgewogICAgaWYgKHRhYmxlWzBdID4gdmFsKQogICAgICAgIHJldHVybiAtMTsKCiAgICB2YXIgbCA9IDAsIHIgPSB0YWJsZS5sZW5ndGg7CiAgICB3aGlsZSAobCA8IHItMSkgeyAvLyBhbHdheXMgdGFibGVbbF0gPD0gdmFsIDwgdGFibGVbcl0KICAgICAgICB2YXIgbWlkID0gbCArIE1hdGguZmxvb3IoKHItbCsxKS8yKTsKICAgICAgICBpZiAodGFibGVbbWlkXSA8PSB2YWwpCiAgICAgICAgICAgIGwgPSBtaWQ7CiAgICAgICAgZWxzZQogICAgICAgICAgICByID0gbWlkOwogICAgfQogICAgcmV0dXJuIGw7Cn0KCgoKLyoqKi8gfSksCi8qIDE3OSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKLy8gRGVzY3JpcHRpb24gb2Ygc3VwcG9ydGVkIGRvdWJsZSBieXRlIGVuY29kaW5ncyBhbmQgYWxpYXNlcy4KLy8gVGFibGVzIGFyZSBub3QgcmVxdWlyZSgpLWQgdW50aWwgdGhleSBhcmUgbmVlZGVkIHRvIHNwZWVkIHVwIGxpYnJhcnkgbG9hZC4KLy8gcmVxdWlyZSgpLXMgYXJlIGRpcmVjdCB0byBzdXBwb3J0IEJyb3dzZXJpZnkuCgptb2R1bGUuZXhwb3J0cyA9IHsKICAgIAogICAgLy8gPT0gSmFwYW5lc2UvU2hpZnRKSVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgLy8gQWxsIGphcGFuZXNlIGVuY29kaW5ncyBhcmUgYmFzZWQgb24gSklTIFggc2V0IG9mIHN0YW5kYXJkczoKICAgIC8vIEpJUyBYIDAyMDEgLSBTaW5nbGUtYnl0ZSBlbmNvZGluZyBvZiBBU0NJSSArIMKlICsgS2FuYSBjaGFycyBhdCAweEExLTB4REYuCiAgICAvLyBKSVMgWCAwMjA4IC0gTWFpbiBzZXQgb2YgNjg3OSBjaGFyYWN0ZXJzLCBwbGFjZWQgaW4gOTR4OTQgcGxhbmUsIHRvIGJlIGVuY29kZWQgYnkgMiBieXRlcy4gCiAgICAvLyAgICAgICAgICAgICAgSGFzIHNldmVyYWwgdmFyaWF0aW9ucyBpbiAxOTc4LCAxOTgzLCAxOTkwIGFuZCAxOTk3LgogICAgLy8gSklTIFggMDIxMiAtIFN1cHBsZW1lbnRhcnkgcGxhbmUgb2YgNjA2NyBjaGFycyBpbiA5NHg5NCBwbGFuZS4gMTk5MC4gRWZmZWN0aXZlbHkgZGVhZC4KICAgIC8vIEpJUyBYIDAyMTMgLSBFeHRlbnNpb24gYW5kIG1vZGVybiByZXBsYWNlbWVudCBvZiAwMjA4IGFuZCAwMjEyLiBUb3RhbCBjaGFyczogMTEyMzMuCiAgICAvLyAgICAgICAgICAgICAgMiBwbGFuZXMsIGZpcnN0IGlzIHN1cGVyc2V0IG9mIDAyMDgsIHNlY29uZCAtIHJldmlzZWQgMDIxMi4KICAgIC8vICAgICAgICAgICAgICBJbnRyb2R1Y2VkIGluIDIwMDAsIHJldmlzZWQgMjAwNC4gU29tZSBjaGFyYWN0ZXJzIGFyZSBpbiBVbmljb2RlIFBsYW5lIDIgKDB4Mnh4eHgpCgogICAgLy8gQnl0ZSBlbmNvZGluZ3MgYXJlOgogICAgLy8gICogU2hpZnRfSklTOiBDb21wYXRpYmxlIHdpdGggMDIwMSwgdXNlcyBub3QgZGVmaW5lZCBjaGFycyBpbiB0b3AgaGFsZiBhcyBsZWFkIGJ5dGVzIGZvciBkb3VibGUtYnl0ZQogICAgLy8gICAgICAgICAgICAgICBlbmNvZGluZyBvZiAwMjA4LiBMZWFkIGJ5dGUgcmFuZ2VzOiAweDgxLTB4OUYsIDB4RTAtMHhFRjsgVHJhaWwgYnl0ZSByYW5nZXM6IDB4NDAtMHg3RSwgMHg4MC0weDlFLCAweDlGLTB4RkMuCiAgICAvLyAgICAgICAgICAgICAgIFdpbmRvd3MgQ1A5MzIgaXMgYSBzdXBlcnNldCBvZiBTaGlmdF9KSVMuIFNvbWUgY29tcGFuaWVzIGFkZGVkIG1vcmUgY2hhcnMsIG5vdGFibHkgS0RESS4KICAgIC8vICAqIEVVQy1KUDogICAgVXAgdG8gMyBieXRlcyBwZXIgY2hhcmFjdGVyLiBVc2VkIG1vc3RseSBvbiAqbml4ZXMuCiAgICAvLyAgICAgICAgICAgICAgIDB4MDAtMHg3RiAgICAgICAtIGxvd2VyIHBhcnQgb2YgMDIwMQogICAgLy8gICAgICAgICAgICAgICAweDhFLCAweEExLTB4REYgLSB1cHBlciBwYXJ0IG9mIDAyMDEKICAgIC8vICAgICAgICAgICAgICAgKDB4QTEtMHhGRSl4MiAgIC0gMDIwOCBwbGFuZSAoOTR4OTQpLgogICAgLy8gICAgICAgICAgICAgICAweDhGLCAoMHhBMS0weEZFKXgyIC0gMDIxMiBwbGFuZSAoOTR4OTQpLgogICAgLy8gICogSklTIFggMjA4OiA3LWJpdCwgZGlyZWN0IGVuY29kaW5nIG9mIDAyMDguIEJ5dGUgcmFuZ2VzOiAweDIxLTB4N0UgKDk0IHZhbHVlcykuIFVuY29tbW9uLgogICAgLy8gICAgICAgICAgICAgICBVc2VkIGFzLWlzIGluIElTTzIwMjIgZmFtaWx5LgogICAgLy8gICogSVNPMjAyMi1KUDogU3RhdGVmdWwgZW5jb2RpbmcsIHdpdGggZXNjYXBlIHNlcXVlbmNlcyB0byBzd2l0Y2ggYmV0d2VlbiBBU0NJSSwgCiAgICAvLyAgICAgICAgICAgICAgICAwMjAxLTE5NzYgUm9tYW4sIDAyMDgtMTk3OCwgMDIwOC0xOTgzLgogICAgLy8gICogSVNPMjAyMi1KUC0xOiBBZGRzIGVzYyBzZXEgZm9yIDAyMTItMTk5MC4KICAgIC8vICAqIElTTzIwMjItSlAtMjogQWRkcyBlc2Mgc2VxIGZvciBHQjIzMTMtMTk4MCwgS1NYMTAwMS0xOTkyLCBJU084ODU5LTEsIElTTzg4NTktNy4KICAgIC8vICAqIElTTzIwMjItSlAtMzogQWRkcyBlc2Mgc2VxIGZvciAwMjAxLTE5NzYgS2FuYSBzZXQsIDAyMTMtMjAwMCBQbGFuZXMgMSwgMi4KICAgIC8vICAqIElTTzIwMjItSlAtMjAwNDogQWRkcyAwMjEzLTIwMDQgUGxhbmUgMS4KICAgIC8vCiAgICAvLyBBZnRlciBKSVMgWCAwMjEzIGFwcGVhcmVkLCBTaGlmdF9KSVMtMjAwNCwgRVVDLUpJU1gwMjEzIGFuZCBJU08yMDIyLUpQLTIwMDQgZm9sbG93ZWQsIHdpdGgganVzdCBjaGFuZ2luZyB0aGUgcGxhbmVzLgogICAgLy8KICAgIC8vIE92ZXJhbGwsIGl0IHNlZW1zIHRoYXQgaXQncyBhIG1lc3MgOiggaHR0cDovL3d3dzgucGxhbGEub3IuanAvdGt1Ym90YTEvdW5pY29kZS1zeW1ib2xzLW1hcDIuaHRtbAoKICAgICdzaGlmdGppcyc6IHsKICAgICAgICB0eXBlOiAnX2RiY3MnLAogICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMTgwKSB9LAogICAgICAgIGVuY29kZUFkZDogeydcdTAwYTUnOiAweDVDLCAnXHUyMDNFJzogMHg3RX0sCiAgICAgICAgZW5jb2RlU2tpcFZhbHM6IFt7ZnJvbTogMHhFRDQwLCB0bzogMHhGOTQwfV0sCiAgICB9LAogICAgJ2Nzc2hpZnRqaXMnOiAnc2hpZnRqaXMnLAogICAgJ21za2FuamknOiAnc2hpZnRqaXMnLAogICAgJ3NqaXMnOiAnc2hpZnRqaXMnLAogICAgJ3dpbmRvd3MzMWonOiAnc2hpZnRqaXMnLAogICAgJ21zMzFqJzogJ3NoaWZ0amlzJywKICAgICd4c2ppcyc6ICdzaGlmdGppcycsCiAgICAnd2luZG93czkzMic6ICdzaGlmdGppcycsCiAgICAnbXM5MzInOiAnc2hpZnRqaXMnLAogICAgJzkzMic6ICdzaGlmdGppcycsCiAgICAnY3A5MzInOiAnc2hpZnRqaXMnLAoKICAgICdldWNqcCc6IHsKICAgICAgICB0eXBlOiAnX2RiY3MnLAogICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMTgxKSB9LAogICAgICAgIGVuY29kZUFkZDogeydcdTAwYTUnOiAweDVDLCAnXHUyMDNFJzogMHg3RX0sCiAgICB9LAoKICAgIC8vIFRPRE86IEtEREkgZXh0ZW5zaW9uIHRvIFNoaWZ0X0pJUwogICAgLy8gVE9ETzogSUJNIENDU0lEIDk0MiA9IENQOTMyLCBidXQgRjAtRjkgY3VzdG9tIGNoYXJzIGFuZCBvdGhlciBjaGFyIGNoYW5nZXMuCiAgICAvLyBUT0RPOiBJQk0gQ0NTSUQgOTQzID0gU2hpZnRfSklTID0gQ1A5MzIgd2l0aCBvcmlnaW5hbCBTaGlmdF9KSVMgbG93ZXIgMTI4IGNoYXJzLgoKCiAgICAvLyA9PSBDaGluZXNlL0dCSyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLyBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0dCSwogICAgLy8gV2UgbW9zdGx5IGltcGxlbWVudCBXM0MgcmVjb21tZW5kYXRpb246IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9lbmNvZGluZy8jZ2JrLWVuY29kZXIKCiAgICAvLyBPbGRlc3QgR0IyMzEyICgxOTgxLCB+NzYwMCBjaGFycykgaXMgYSBzdWJzZXQgb2YgQ1A5MzYKICAgICdnYjIzMTInOiAnY3A5MzYnLAogICAgJ2diMjMxMjgwJzogJ2NwOTM2JywKICAgICdnYjIzMTIxOTgwJzogJ2NwOTM2JywKICAgICdjc2diMjMxMic6ICdjcDkzNicsCiAgICAnY3Npc281OGdiMjMxMjgwJzogJ2NwOTM2JywKICAgICdldWNjbic6ICdjcDkzNicsCgogICAgLy8gTWljcm9zb2Z0J3MgQ1A5MzYgaXMgYSBzdWJzZXQgYW5kIGFwcHJveGltYXRpb24gb2YgR0JLLgogICAgJ3dpbmRvd3M5MzYnOiAnY3A5MzYnLAogICAgJ21zOTM2JzogJ2NwOTM2JywKICAgICc5MzYnOiAnY3A5MzYnLAogICAgJ2NwOTM2JzogewogICAgICAgIHR5cGU6ICdfZGJjcycsCiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyg1MykgfSwKICAgIH0sCgogICAgLy8gR0JLICh+MjIwMDAgY2hhcnMpIGlzIGFuIGV4dGVuc2lvbiBvZiBDUDkzNiB0aGF0IGFkZGVkIHVzZXItbWFwcGVkIGNoYXJzIGFuZCBzb21lIG90aGVyLgogICAgJ2diayc6IHsKICAgICAgICB0eXBlOiAnX2RiY3MnLAogICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oNTMpLmNvbmNhdChfX3dlYnBhY2tfcmVxdWlyZV9fKDkxKSkgfSwKICAgIH0sCiAgICAneGdiayc6ICdnYmsnLAogICAgJ2lzb2lyNTgnOiAnZ2JrJywKCiAgICAvLyBHQjE4MDMwIGlzIGFuIGFsZ29yaXRobWljIGV4dGVuc2lvbiBvZiBHQksuCiAgICAvLyBNYWluIHNvdXJjZTogaHR0cHM6Ly93d3cudzMub3JnL1RSL2VuY29kaW5nLyNnYmstZW5jb2RlcgogICAgLy8gaHR0cDovL2ljdS1wcm9qZWN0Lm9yZy9kb2NzL3BhcGVycy9nYjE4MDMwLmh0bWwKICAgIC8vIGh0dHA6Ly9zb3VyY2UuaWN1LXByb2plY3Qub3JnL3JlcG9zL2ljdS9kYXRhL3RydW5rL2NoYXJzZXQvZGF0YS94bWwvZ2ItMTgwMzAtMjAwMC54bWwKICAgIC8vIGh0dHA6Ly93d3cua2huZ2FpLmNvbS9jaGluZXNlL2NoYXJtYXAvdGJsZ2JrLnBocD9wYWdlPTAKICAgICdnYjE4MDMwJzogewogICAgICAgIHR5cGU6ICdfZGJjcycsCiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyg1MykuY29uY2F0KF9fd2VicGFja19yZXF1aXJlX18oOTEpKSB9LAogICAgICAgIGdiMTgwMzA6IGZ1bmN0aW9uKCkgeyByZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygxODIpIH0sCiAgICAgICAgZW5jb2RlU2tpcFZhbHM6IFsweDgwXSwKICAgICAgICBlbmNvZGVBZGQ6IHsn4oKsJzogMHhBMkUzfSwKICAgIH0sCgogICAgJ2NoaW5lc2UnOiAnZ2IxODAzMCcsCgoKICAgIC8vID09IEtvcmVhbiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIC8vIEVVQy1LUiwgS1NfQ181NjAxIGFuZCBLUyBYIDEwMDEgYXJlIGV4YWN0bHkgdGhlIHNhbWUuCiAgICAnd2luZG93czk0OSc6ICdjcDk0OScsCiAgICAnbXM5NDknOiAnY3A5NDknLAogICAgJzk0OSc6ICdjcDk0OScsCiAgICAnY3A5NDknOiB7CiAgICAgICAgdHlwZTogJ19kYmNzJywKICAgICAgICB0YWJsZTogZnVuY3Rpb24oKSB7IHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDE4MykgfSwKICAgIH0sCgogICAgJ2NzZXVja3InOiAnY3A5NDknLAogICAgJ2Nza3NjNTYwMTE5ODcnOiAnY3A5NDknLAogICAgJ2V1Y2tyJzogJ2NwOTQ5JywKICAgICdpc29pcjE0OSc6ICdjcDk0OScsCiAgICAna29yZWFuJzogJ2NwOTQ5JywKICAgICdrc2M1NjAxMTk4Nyc6ICdjcDk0OScsCiAgICAna3NjNTYwMTE5ODknOiAnY3A5NDknLAogICAgJ2tzYzU2MDEnOiAnY3A5NDknLAoKCiAgICAvLyA9PSBCaWc1L1RhaXdhbi9Ib25nIEtvbmcgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAvLyBUaGVyZSBhcmUgbG90cyBvZiB0YWJsZXMgZm9yIEJpZzUgYW5kIGNwOTUwLiBQbGVhc2Ugc2VlIHRoZSBmb2xsb3dpbmcgbGlua3MgZm9yIGhpc3Rvcnk6CiAgICAvLyBodHRwOi8vbW96dHcub3JnL2RvY3MvYmlnNS8gIGh0dHA6Ly93d3cuaGFpYmxlLmRlL2JydW5vL2NoYXJzZXRzL2NvbnZlcnNpb24tdGFibGVzL0JpZzUuaHRtbAogICAgLy8gVmFyaWF0aW9ucywgaW4gcm91Z2hseSBudW1iZXIgb2YgZGVmaW5lZCBjaGFyczoKICAgIC8vICAqIFdpbmRvd3MgQ1AgOTUwOiBNaWNyb3NvZnQgdmFyaWFudCBvZiBCaWc1LiBDYW5vbmljYWw6IGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL1ZFTkRPUlMvTUlDU0ZUL1dJTkRPV1MvQ1A5NTAuVFhUCiAgICAvLyAgKiBXaW5kb3dzIENQIDk1MTogTWljcm9zb2Z0IHZhcmlhbnQgb2YgQmlnNS1IS1NDUy0yMDAxLiBTZWVtcyB0byBiZSBuZXZlciBwdWJsaWMuIGh0dHA6Ly9tZS5hYmVsY2hldW5nLm9yZy9hcnRpY2xlcy9yZXNlYXJjaC93aGF0LWlzLWNwOTUxLwogICAgLy8gICogQmlnNS0yMDAzIChUYWl3YW4gc3RhbmRhcmQpIGFsbW9zdCBzdXBlcnNldCBvZiBjcDk1MC4KICAgIC8vICAqIFVuaWNvZGUtYXQtb24gKFVBTykgLyBNb3ppbGxhIDEuOC4gRmFsbGluZyBvdXQgb2YgdXNlIG9uIHRoZSBXZWIuIE5vdCBzdXBwb3J0ZWQgYnkgb3RoZXIgYnJvd3NlcnMuCiAgICAvLyAgKiBCaWc1LUhLU0NTICgtMjAwMSwgLTIwMDQsIC0yMDA4KS4gSG9uZyBLb25nIHN0YW5kYXJkLiAKICAgIC8vICAgIG1hbnkgdW5pY29kZSBjb2RlIHBvaW50cyBtb3ZlZCBmcm9tIFBVQSB0byBTdXBwbGVtZW50YXJ5IHBsYW5lIChVKzJYWFhYKSBvdmVyIHRoZSB5ZWFycy4KICAgIC8vICAgIFBsdXMsIGl0IGhhcyA0IGNvbWJpbmluZyBzZXF1ZW5jZXMuCiAgICAvLyAgICBTZWVtcyB0aGF0IE1vemlsbGEgcmVmdXNlZCB0byBzdXBwb3J0IGl0IGZvciAxMCB5cnMuIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjQzMSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTAyOTkKICAgIC8vICAgIGJlY2F1c2UgYmlnNS1oa3NjcyBpcyB0aGUgb25seSBlbmNvZGluZyB0byBpbmNsdWRlIGFzdHJhbCBjaGFyYWN0ZXJzIGluIG5vbi1hbGdvcml0aG1pYyB3YXkuCiAgICAvLyAgICBJbXBsZW1lbnRhdGlvbnMgYXJlIG5vdCBjb25zaXN0ZW50IHdpdGhpbiBicm93c2Vyczsgc29tZXRpbWVzIGxhYmVsZWQgYXMganVzdCBiaWc1LgogICAgLy8gICAgTVMgSW50ZXJuZXQgRXhwbG9yZXIgc3dpdGNoZXMgZnJvbSBiaWc1IHRvIGJpZzUtaGtzY3Mgd2hlbiBhIHBhdGNoIGFwcGxpZWQuCiAgICAvLyAgICBHcmVhdCBkaXNjdXNzaW9uICYgcmVjYXAgb2Ygd2hhdCdzIGdvaW5nIG9uIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTkxMjQ3MCNjMzEKICAgIC8vICAgIEluIHRoZSBlbmNvZGVyLCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIHN1cHBvcnQgZW5jb2Rpbmcgb2xkIFBVQSBtYXBwaW5ncyB0byBCaWc1IGJ5dGVzIHNlcS1zLgogICAgLy8gICAgT2ZmaWNpYWwgc3BlYzogaHR0cDovL3d3dy5vZ2Npby5nb3YuaGsvZW4vYnVzaW5lc3MvdGVjaF9wcm9tb3Rpb24vY2NsaS90ZXJtcy9kb2MvMjAwM2NtcF8yMDA4LnR4dAogICAgLy8gICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5vZ2Npby5nb3YuaGsvdGMvYnVzaW5lc3MvdGVjaF9wcm9tb3Rpb24vY2NsaS90ZXJtcy9kb2MvaGtzY3MtMjAwOC1iaWc1LWlzby50eHQKICAgIC8vIAogICAgLy8gQ3VycmVudCB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0byBkZWFsIHdpdGggQmlnNSgtSEtTQ1MpIGlzIGluIHRoZSBFbmNvZGluZyBTdGFuZGFyZCwgaHR0cDovL2VuY29kaW5nLnNwZWMud2hhdHdnLm9yZy8jYmlnNS1lbmNvZGVyCiAgICAvLyBVbmljb2RlIG1hcHBpbmcgKGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL09CU09MRVRFL0VBU1RBU0lBL09USEVSL0JJRzUuVFhUKSBpcyBzYWlkIHRvIGJlIHdyb25nLgoKICAgICd3aW5kb3dzOTUwJzogJ2NwOTUwJywKICAgICdtczk1MCc6ICdjcDk1MCcsCiAgICAnOTUwJzogJ2NwOTUwJywKICAgICdjcDk1MCc6IHsKICAgICAgICB0eXBlOiAnX2RiY3MnLAogICAgICAgIHRhYmxlOiBmdW5jdGlvbigpIHsgcmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oOTIpIH0sCiAgICB9LAoKICAgIC8vIEJpZzUgaGFzIG1hbnkgdmFyaWF0aW9ucyBhbmQgaXMgYW4gZXh0ZW5zaW9uIG9mIGNwOTUwLiBXZSB1c2UgRW5jb2RpbmcgU3RhbmRhcmQncyBhcyBhIGNvbnNlbnN1cy4KICAgICdiaWc1JzogJ2JpZzVoa3NjcycsCiAgICAnYmlnNWhrc2NzJzogewogICAgICAgIHR5cGU6ICdfZGJjcycsCiAgICAgICAgdGFibGU6IGZ1bmN0aW9uKCkgeyByZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXyg5MikuY29uY2F0KF9fd2VicGFja19yZXF1aXJlX18oMTg0KSkgfSwKICAgICAgICBlbmNvZGVTa2lwVmFsczogWzB4YTJjY10sCiAgICB9LAoKICAgICdjbmJpZzUnOiAnYmlnNWhrc2NzJywKICAgICdjc2JpZzUnOiAnYmlnNWhrc2NzJywKICAgICd4eGJpZzUnOiAnYmlnNWhrc2NzJywKfTsKCgovKioqLyB9KSwKLyogMTgwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0gW1siMCIsIlx1MDAwMCIsMTI4XSxbImExIiwi772hIiw2Ml0sWyI4MTQwIiwi44CA44CB44CC77yM77yO44O777ya77yb77yf77yB44Kb44KcwrTvvYDCqO+8vu+/o++8v+ODveODvuOCneOCnuOAg+S7neOAheOAhuOAh+ODvOKAleKAkO+8j++8vO+9nuKIpe+9nOKApuKApeKAmOKAmeKAnOKAne+8iO+8ieOAlOOAle+8u++8ve+9m++9neOAiCIsOSwi77yL77yNwrHDlyJdLFsiODE4MCIsIsO377yd4omg77yc77ye4omm4omn4oie4oi04pmC4pmAwrDigLLigLPihIPvv6XvvITvv6Dvv6HvvIXvvIPvvIbvvIrvvKDCp+KYhuKYheKXi+KXj+KXjuKXh+KXhuKWoeKWoOKWs+KWsuKWveKWvOKAu+OAkuKGkuKGkOKGkeKGk+OAkyJdLFsiODFiOCIsIuKIiOKIi+KKhuKKh+KKguKKg+KIquKIqSJdLFsiODFjOCIsIuKIp+KIqO+/ouKHkuKHlOKIgOKIgyJdLFsiODFkYSIsIuKIoOKKpeKMkuKIguKIh+KJoeKJkuKJquKJq+KImuKIveKIneKIteKIq+KIrCJdLFsiODFmMCIsIuKEq+KAsOKZr+KZreKZquKAoOKAocK2Il0sWyI4MWZjIiwi4pevIl0sWyI4MjRmIiwi77yQIiw5XSxbIjgyNjAiLCLvvKEiLDI1XSxbIjgyODEiLCLvvYEiLDI1XSxbIjgyOWYiLCLjgYEiLDgyXSxbIjgzNDAiLCLjgqEiLDYyXSxbIjgzODAiLCLjg6AiLDIyXSxbIjgzOWYiLCLOkSIsMTYsIs6jIiw2XSxbIjgzYmYiLCLOsSIsMTYsIs+DIiw2XSxbIjg0NDAiLCLQkCIsNSwi0IHQliIsMjVdLFsiODQ3MCIsItCwIiw1LCLRkdC2Iiw3XSxbIjg0ODAiLCLQviIsMTddLFsiODQ5ZiIsIuKUgOKUguKUjOKUkOKUmOKUlOKUnOKUrOKUpOKUtOKUvOKUgeKUg+KUj+KUk+KUm+KUl+KUo+KUs+KUq+KUu+KVi+KUoOKUr+KUqOKUt+KUv+KUneKUsOKUpeKUuOKVgiJdLFsiODc0MCIsIuKRoCIsMTksIuKFoCIsOV0sWyI4NzVmIiwi442J44yU44yi442N44yY44yn44yD44y2442R442X44yN44ym44yj44yr442K44y7446c446d446e446O446P44+E446hIl0sWyI4NzdlIiwi4427Il0sWyI4NzgwIiwi44Cd44Cf4oSW44+N4oSh44qkIiw0LCLjiLHjiLLjiLnjjb7jjb3jjbziiZLiiaHiiKviiK7iiJHiiJriiqXiiKDiiJ/iir/iiLXiiKniiKoiXSxbIjg4OWYiLCLkupzllJblqIPpmL/lk4DmhJvmjKjlp7bpgKLokbXojJznqZDmgqrmj6HmuKXml63okaboiqbpr7XmopPlnKfmlqHmibHlrpvlp5Dombvpo7TntaLntr7pro7miJbnsp/oorflronlurXmjInmmpfmoYjpl4fpno3mnY/ku6XkvIrkvY3kvp3lgYnlm7LlpLflp5TlqIHlsInmg5/mhI/mhbDmmJPmpIXngrrnlY/nlbDnp7vntq3nt6/og4PokI7ooaPorILpgZXpgbrljLvkupXkuqXln5/ogrLpg4Hno6/kuIDlo7HmuqLpgLjnqLLojKjoiovpsK/lhYHljbDlkr3lk6Hlm6Dlp7vlvJXpo7Lmt6vog6TolK0iXSxbIjg5NDAiLCLpmaLpmbDpmqDpn7vlkIvlj7Plrofng4/nvr3ov4Lpm6jlja/ptZznqrrkuJHnopPoh7zmuKblmJjllITmrJ3olJrpsLvlp6Xljqnmtabnk5zplo/lmYLkupHpgYvpm7LojY/ppIzlj6HllrblrLDlvbHmmKDmm7PmoITmsLjms7PmtKnnkZvnm4jnqY7poLToi7HooZvoqaDpi63mtrLnlqvnm4rpp4XmgqborIHotorplrLmpo7ljq3lhoYiXSxbIjg5ODAiLCLlnJLloLDlpYTlrrTlu7bmgKjmjqnmj7Tmsr/mvJTngo7nhJTnhZnnh5XnjL/nuIHoibboi5HolpfpgaDpiZvptJvloanmlrzmsZrnlKXlh7nlpK7lpaXlvoDlv5zmirzml7rmqKrmrKfmrrTnjovnv4HopZbptKzptI7pu4TlsqHmspbojbvlhITlsYvmhrboh4bmobbniaHkuZnkv7rljbjmganmuKnnqY/pn7PkuIvljJbku67kvZXkvL3kvqHkvbPliqDlj6/lmInlpI/lq4Hlrrblr6Hnp5HmmofmnpzmnrbmrYzmsrPngavnj4Lnpo3npr7nqLznrofoirHoi5vojITojbfoj6/oj5PonaboqrLlmKnosqjov6bpgY7pnJ7omorkv4Tls6jmiJHniZnnlLvoh6Xoir3om77os4Dpm4XppJPpp5Xku4vkvJrop6Plm57loYrlo4rlu7vlv6vmgKrmgpTmgaLmh5DmiJLmi5DmlLkiXSxbIjhhNDAiLCLprYHmmabmorDmtbfngbDnlYznmobntbXoiqXon7nplovpmo7osp3lh7Hlir7lpJblkrPlrrPltJbmhajmpoLmtq/noo3ok4vooZfoqbLpjqfpqrjmtazppqjom5nlnqPmn7/om47piI7lioPlmoflkITlu5Pmi6HmkrnmoLzmoLjmrrvnjbLnorrnqavopprop5LotavovIPpg63plqPpmpTpnanlrablsrPmpb3poY3poY7mjpvnrKDmqKsiXSxbIjhhODAiLCLmqb/morbpsI3mvZ/libLllp3mgbDmi6zmtLvmuIfmu5HokZvopJDovYTkuJTpsLnlj7bmpJvmqLrpnoTmoKrlhZznq4PokrLph5zpjozlmZvptKjmoKLojIXokLHnsqXliIjoi4Xnk6bkub7kvoPlhqDlr5LliIrli5jli6flt7vllprloKrlp6blrozlrpjlr5vlubLlubnmgqPmhJ/mhaPmhr7mj5vmlaLmn5HmoZPmo7rmrL7mrZPmsZfmvKLmvpfmvYXnkrDnlJjnm6PnnIvnq7/nrqHnsKHnt6nnvLbnv7Dogp3oiabojp7oprPoq4zosqvpgoTpkZHplpPplpHplqLpmaXpn5PppKjoiJjkuLjlkKvlsrjlt4znjqnnmYznnLzlsqnnv6votIvpm4HpoJHpoZTpoZjkvIHkvI7ljbHllpzlmajln7rlpYflrInlr4TlspDluIzlub7lv4zmj67mnLrml5fml6LmnJ/mo4vmo4QiXSxbIjhiNDAiLCLmqZ/luLDmr4XmsJfmsb3nlb/npYjlraPnqIDntIDlvr3opo/oqJjosrTotbfou4zovJ3po6LpqI7prLzkuoDlgb3lhIDlppPlrpzmiK/mioDmk6zmrLrniqDnlpHnpYfnvqnon7voqrzorbDmjqzoj4rpnqDlkInlkIPllqvmoZTmqZjoqbDnoKfmnbXpu43ljbTlrqLohJromZDpgIbkuJjkuYXku4fkvJHlj4rlkLjlrq7lvJPmgKXmlZEiXSxbIjhiODAiLCLmnL3msYLmsbLms6PngbjnkIPnqbbnqq7nrIjntJrns77ntabml6fniZvljrvlsYXlt6jmi5Lmi6DmjJnmuKDomZroqLHot53pi7jmvIHnpqbprZrkuqjkuqvkuqzkvpvkvqDlg5HlhYfnq7blhbHlh7bljZTljKHljb/lj6vllqzlooPls6HlvLflvYrmgK/mgZDmga3mjJ/mlZnmqYvms4Hni4Lni63nn6/og7johIXoiIjolY7pg7fpj6Hpn7/ppZfpqZrku7Dlh53lsK3mmoHmpa3lsYDmm7LmpbXnjonmoZDnsoHlg4Xli6TlnYflt77pjKbmlqTmrKPmrL3nkLTnpoHnpr3nrYvnt4roirnoj4zoob/opZ/orLnov5Hph5HlkJ/pioDkuZ3lgLblj6XljLrni5fnjpbnn6noi6bouq/pp4bpp4jpp5LlhbfmhJromZ7llrDnqbrlgbblr5PpgYfpmoXkuLLmq5vph6flsZHlsYgiXSxbIjhjNDAiLCLmjpjnqp/mspPpnbTovaHnqqrnhorpmojnsoLmoJfnubDmoZHpjazli7LlkJvolqvoqJPnvqTou43pg6HljabooojnpYHkv4Llgr7liJHlhYTllZPlnK3nj6rlnovlpZHlvaLlvoTmgbXmhbbmhafmhqnmjrLmkLrmlazmma/moYLmuJPnlabnqL3ns7vntYzntpnnuYvnvavojI7ojYrom43oqIjoqaPorabou73poJrpto/oirjov47pr6giXSxbIjhjODAiLCLliofmiJ/mkoPmv4DpmpnmoYHlgpHmrKDmsbrmvZTnqbTntZDooYDoqKPmnIjku7blgLnlgKblgaXlhbzliLjliaPllqflnI/loIXlq4zlu7rmhrLmh7jmi7PmjbLmpJzmqKnnib3niqznjK7noJTnoa/ntbnnnIzogqnopovorJnos6Lou5LpgaPpjbXpmbrpoZXpqJPpubjlhYPljp/ljrPlubvlvKbmuJvmupDnjoTnj77ntYPoiLfoqIDoq7rpmZDkuY7lgIvlj6Tlkbzlm7rlp5HlraTlt7HluqvlvKfmiLjmlYXmnq/muZbni5Dns4roorTogqHog6Hoj7DomY7oqofot6jpiLfpm4fpoafpvJPkupTkupLkvI3ljYjlkYnlkL7lqK/lvozlvqHmgp/moqfmqo7nkZrnooHoqp7oqqTorbfphpDkuZ7pr4nkuqTkvbzkvq/lgJnlgJblhYnlhazlip/lirnli77ljprlj6PlkJEiXSxbIjhkNDAiLCLlkI7llonlnZHlnqLlpb3lrZTlrZ3lro/lt6Xlt6flt7flubjluoPluprlurflvJjmgZLmhYzmipfmi5jmjqfmlLvmmILmmYPmm7Tmna3moKHmopfmp4vmsZ/mtKrmtanmuK/mup3nlLLnmofnoaznqL/ns6DntIXntJjntZ7ntrHogJXogIPogq/ogrHohZToho/oiKrojZLooYzooaHorJvosqLos7zpg4rphbXpibHnoL/pi7zplqTpmY0iXSxbIjhkODAiLCLpoIXpppnpq5jptLvliZvliqvlj7flkIjlo5Xmi7fmv6DosarovZ/purnlhYvliLvlkYrlm73nqYDphbfptaDpu5LnjYTmvInohbDnlJHlv73mg5rpqqjni5vovrzmraTpoIPku4rlm7DlnaTlor7lqZrmgajmh4fmmI/mmIbmoLnmorHmt7fnl5XntLroia7prYLkupvkvZDlj4nllIblta/lt6blt67mn7vmspnnkbPnoILoqZDpjpboo5/lnZDluqfmjKvlgrXlgqzlho3mnIDlk4nloZ7lprvlrrDlvanmiY3mjqHmoL3mrbPmuIjngb3ph4fnioDnoJXnoKbnpa3mlo7ntLDoj5zoo4HovInpmpvliaTlnKjmnZDnvarosqHlhrTlnYLpmKrloLrmporogrTlkrLltI7ln7znopXpt7rkvZzliYrlkovmkL7mmKjmnJTmn7XnqoTnrZbntKLpjK/moZzprq3nrLnljJnlhorliLciXSxbIjhlNDAiLCLlr5/mi7bmkq7mk6bmnK3mrrrolqnpm5HnmpDpr5bmjYzpjIbprqvnmr/mmZLkuInlgpjlj4LlsbHmg6jmkpLmlaPmoZ/nh6bnj4rnlKPnrpfnuoLompXoroPos5vphbjppJDmlqzmmqvmrovku5Xku5TkvLrkvb/liLrlj7jlj7Lll6Plm5vlo6vlp4vlp4nlp7/lrZDlsY3luILluKvlv5fmgJ3mjIfmlK/lrZzmlq/mlr3ml6jmnp3mraIiXSxbIjhlODAiLCLmrbvmsI/njYXnpYnnp4Hns7jntJnntKvogqLohILoh7PoppboqZ7oqanoqaboqozoq67os4fos5zpm4zpo7zmra/kuovkvLzkvo3lhZDlrZflr7rmhYjmjIHmmYLmrKHmu4vmsrvniL7nkr3nl5Tno4HnpLrogIzogLPoh6rokpTovp7msZDpub/lvI/orZjptKvnq7rou7jlro3pm6vkuIPlj7Hln7flpLHlq4nlrqTmgonmub/mvIbnlr7os6rlrp/olIDnr6DlgbLmn7Toip3lsaHolYrnuJ7oiI7lhpnlsITmjajotabmlpznha7npL7ntJfogIXorJ3ou4rpga7om4fpgqrlgJ/li7rlsLrmnZPngbzniLXphYzph4jpjKvoi6Xlr4LlvLHmg7nkuLvlj5blrojmiYvmnLHmrorni6nnj6DnqK7ohavotqPphZLpppblhJLlj5flkarlr7/mjojmqLnntqzpnIDlm5rlj47lkagiXSxbIjhmNDAiLCLlrpflsLHlt57kv67mhIHmi77mtLLnp4Dnp4vntYLnuY3nv5Loh63oiJ/okpDooYbopbLorpDoubTovK/pgLHphYvphazpm4bphpzku4DkvY/lhYXljYHlvpPmiI7mn5TmsYHmuIvnjaPnuKbph43pioPlj5TlpJnlrr/mt5HnpZ3nuK7nspvlob7nhp/lh7rooZPov7Dkv4rls7vmmKXnnqznq6PoiJzpp7/lh4blvqrml6zmpa/mronmt7MiXSxbIjhmODAiLCLmupbmvaTnm77ntJTlt6HpgbXphofpoIblh6bliJ3miYDmmpHmm5nmuJrlurbnt5LnvbLmm7jolq/ol7foq7jliqnlj5nlpbPluo/lvpDmgZXpi6TpmaTlgrflhJ/li53ljKDljYflj6zlk6jllYbllLHlmJflpajlpr7lqLzlrrXlsIblsI/lsJHlsJrluoTluorlu6DlvbDmib/mioTmi5vmjozmjbfmmIfmmIzmmK3mmbbmnb7moqLmqJ/mqLXmsrzmtojmuInmuZjnhLznhKbnhafnl4fnnIHnoZ3npIHnpaXnp7Dnq6DnrJHnsqfntLnogpboj5bokovolYnooZ3oo7PoqJ/oqLzoqZToqbPosaHos57phqTpiabpjb7pkJjpmpzpnpjkuIrkuIjkuJ7kuZflhpflibDln47loLTlo4zlrKLluLjmg4Xmk77mnaHmnZbmtYTnirbnlbPnqaPokrjorbLphrjpjKDlmLHln7Tpo74iXSxbIjkwNDAiLCLmi63mpI3mrpbnh63nuZTogbfoibLop6bpo5/onZXovrHlsLvkvLjkv6HkvrXllIflqKDlr53lr6nlv4PmhY7mjK/mlrDmmYvmo67mppvmtbjmt7HnlLPnlrnnnJ/npZ7np6bntLPoh6Poiq/olqropqroqLrouqvovpvpgLLph53pnIfkurrku4HliIPlobXlo6zlsIvnlJrlsL3ohY7oqIrov4XpmaPpna3nrKXoq4/poIjphaLlm7PljqgiXSxbIjkwODAiLCLpgJflkLnlnoLluKXmjqjmsLTngornnaHnsovnv6DoobDpgYLphZTpjJDpjJjpmo/nkZ7pq4TltIfltanmlbDmnqLotqjpm5vmja7mnYnmpJnoj4XpoJfpm4Doo77mvoTmkbrlr7jkuJbngKznlZ3mmK/lh4TliLbli6Llp5PlvoHmgKfmiJDmlL/mlbTmmJ/mmbTmo7LmoJbmraPmuIXnibLnlJ/nm5vnsr7ogZblo7Doo73opb/oqqDoqpPoq4vpgJ3phpLpnZLpnZnmlonnqI7ohIbpmrvluK3mg5zmiJrmlqXmmJTmnpDnn7PnqY3nsY3nuL7ohIrosqzotaTot6HouZ/noqnliIfmi5nmjqXmkYLmipjoqK3nqoPnr4Doqqzpm6rntbboiIzonYnku5nlhYjljYPljaDlrqPlsILlsJblt53miKbmiYfmkrDmoJPmoLTms4nmtYXmtJfmn5PmvZznhY7nhb3ml4vnqb/nrq3nt5oiXSxbIjkxNDAiLCLnuYrnvqjohbroiJvoiLnolqboqa7os47ot7Xpgbjpgbfpiq3pipHploPprq7liY3lloTmvLjnhLblhajnpoXnuZXohrPns47lmYzloZHlsqjmjqrmm77mm73mpZrni5nnlo/nlo7npI7npZbnp5/nspfntKDntYTomIfoqLTpmLvpgaHpvKDlg6flibXlj4zlj6LlgInllqrlo67lpY/niL3lrovlsaTljJ3mg6Pmg7PmjZzmjoPmjL/mjrsiXSxbIjkxODAiLCLmk43ml6nmm7nlt6Pmp43mp73mvJXnh6Xkuonnl6nnm7jnqpPns5/nt4/ntpzogaHojYnojZjokazokrzol7voo4XotbDpgIHpga3pjpfpnJzpqJLlg4/lopfmho7oh5PolLXotIjpgKDkv4PlgbTliYfljbPmga/mjYnmnZ/muKzotrPpgJ/kv5flsZ7os4rml4/ntprljZLoopblhbbmj4PlrZjlravlsIrmkI3mnZHpgZzku5blpJrlpKrmsbDoqZHllL7loJXlpqXmg7DmiZPmn4HoiLXmpZXpmYDpp4TpqKjkvZPloIblr77ogJDlsrHluK/lvoXmgKDmhYvmiLTmm7/ms7Dmu57og47ohb/oi5TooovosrjpgIDpgK7pmorpu5vpr5vku6Plj7DlpKfnrKzpho3poYzpt7nmu53ngKfljZPllYTlroXmiZjmip7mi5PmsqLmv6/nkKLoqJfpkLjmv4Hoq77ojLjlh6fom7jlj6oiXSxbIjkyNDAiLCLlj6nkvYbpgZTovrDlparohLHlt73nq6rovr/mo5rosLfni7jpsYjmqL3oqrDkuLnljZjlmIblnabmi4XmjqLml6bmrY7mt6HmuZvngq3nn63nq6/nrqrntrvogL3og4bom4voqpXpjZvlm6Plo4flvL7mlq3mmpbmqoDmrrXnlLfoq4flgKTnn6XlnLDlvJvmgaXmmbrmsaDnl7TnqJrnva7oh7TonJjpgYXpprPnr4nnlZznq7nnrZHok4QiXSxbIjkyODAiLCLpgJDnp6nnqpLojLblq6HnnYDkuK3ku7Llrpnlv6Dmir3mmLzmn7Hms6jomavoobfoqLvphY7pi7Ppp5DmqJfngKbnjKroi6fokZfosq/kuIHlhYblh4vllovlr7XluJbluLPluoHlvJTlvLXlvavlvrTmh7LmjJHmmqLmnJ3mva7niZLnlLrnnLrogbTohLnohbjonbboqr/oq5zotoXot7PpiprplbfpoILps6Xli4XmjZfnm7TmnJXmsojnj43os4Ppjq7pmbPmtKXlopzmpI7mp4zov73pjprnl5vpgJrloZrmoILmjrTmp7vkvYPmvKzmn5jovrvolKbntrTpjZTmpL/mvbDlnarlo7flrKzntKzniKrlkIrph6PptrTkuq3kvY7lgZzlgbXliYPosp7lkYjloKTlrprluJ3lupXluq3lu7flvJ/mgozmirXmjLrmj5Dmoq/msYDnoofnpo7nqIvnt6DoiYfoqILoq6bouYTpgJMiXSxbIjkzNDAiLCLpgrjphK3ph5jpvI7ms6XmkZjmk6LmlbXmu7TnmoTnrJvpganpj5Hmurrlk7LlvrnmkqTovY3ov63piYTlhbjloavlpKnlsZXlupfmt7vnuo/nlJzosrzou6LpoZvngrnkvJ3mrr/mvrHnlLDpm7vlhY7lkJDloLXloZflpqzlsaDlvpLmlpfmnZzmuKHnmbvoj5/os63pgJTpg73pjY3noKXnoLrliqrluqblnJ/lpbTmgJLlgJLlhZrlhqwiXSxbIjkzODAiLCLlh43liIDllJDloZTloZjlpZflrpXls7bltovmgrzmipXmkK3mnbHmoYPmorzmo5/nm5fmt5jmua/mtpvnga/nh4jlvZPnl5jnpbfnrYnnrZTnrZLns5bntbHliLDokaPolanol6ToqI7orITosYbouI/pgIPpgI/pkJnpmbbpoK3pqLDpl5jlg43li5XlkIzloILlsI7mhqfmkp7mtJ7nnrPnq6Xog7TokITpgZPpioXls6DptIfljL/lvpflvrPmtpznibnnnaPnpr/nr6Tmr5Lni6zoqq3moIPmqaHlh7jnqoHmpLTlsYrps7boi6vlr4XphYnngJ7lmbjlsa/mg4fmlabmsozosZrpgYHpoJPlkZHmm4fpiI3lpYjpgqPlhoXkuY3lh6rolpnorI7ngZjmjbrpjYvmpaLpprTnuITnlbfljZfmpaDou5/pm6PmsZ3kuozlsLzlvJDov6nljILos5Hogonombnlu7/ml6XkubPlhaUiXSxbIjk0NDAiLCLlpoLlsL/pn67ku7vlporlv43oqo3mv6HnprDnpaLlr6fokbHnjKvnhrHlubTlv7Xmjbvmkprnh4PnspjkuYPlu7zkuYvln5zlmqLmgqnmv4PntI3og73ohLPohr/ovrLoppfomqTlt7Tmiormkq3opofmnbfms6LmtL7nkLbnoLTlqYbnvbXoiq3ppqzkv7Plu4Pmi53mjpLmlZfmna/nm4PniYzog4zogrrovKnphY3lgI3ln7nlqpLmooUiXSxbIjk0ODAiLCLmpbPnhaTni73osrflo7Los6DpmarpgJnonb/np6Tnn6fokKnkvK/liaXljZrmi43mn4/ms4rnmb3nrpTnspXoiLboloTov6vmm53mvKDniIbnuJvojqvpp4Hpuqblh73nrrHnobLnrrjogofnrYjmq6jluaHogoznlZHnlaDlhavpiaLmuoznmbrphpfpq6rkvJDnvbDmipznrY/plqXps6nlmbrloZnom6TpmrzkvLTliKTljYrlj43lj5vluIbmkKzmlpHmnb/msL7msY7niYjniq/nj63nlZTnuYHoiKzol6nosqnnr4Tph4bnhanpoJLpo6/mjL3mmannlarnm6Tno5DolYPom67ljKrljZHlkKblpoPluoflvbzmgrLmiYnmibnmiqvmlpDmr5Tms4znlrLnmq7nopHnp5jnt4vnvbfogqXooqvoqrnosrvpgb/pnZ7po5vmqIvnsLjlgpnlsL7lvq7mnofmr5jnkLXnnInnvo4iXSxbIjk1NDAiLCLpvLvmn4rnqJfljLnnlovpq63lvabohp3oj7HogpjlvLzlv4XnlaLnrYbpgLzmoaflp6vlqpvntJDnmb7orKzkv7XlvarmqJnmsLfmvILnk6LnpajooajoqZXosbnlu5/mj4/nl4Xnp5Loi5fpjKjpi7Lokpzom63psK3lk4HlvazmlozmtZzngJXosqfos5PpoLvmlY/nk7bkuI3ku5jln6DlpKvlqablr4zlhqjluIPlupzmgJbmibbmlbciXSxbIjk1ODAiLCLmlqfmma7mta7niLbnrKbohZDohproipnorZzosqDos6botbTpmJzpmYTkvq7mkqvmraboiJ7okaHolarpg6jlsIHmpZPpoqjokbrolZfkvI/lia/lvqnluYXmnI3npo/ohbnopIfopobmt7XlvJfmiZXmsrjku4/nianprpLliIblkLvlmbTlorPmhqTmia7nhJrlpa7nsonns57ntJvpm7DmlofogZ7kuJnkvbXlhbXloYDluaPlubPlvIrmn4TkuKbolL3plonpmZvnsbPpoIHlg7vlo4HnmZbnoqfliKXnnqXolJHnroblgY/lpInniYfnr4fnt6jovrrov5TpgY3kvr/li4nlqKnlvIHpnq3kv53oiJfpi6rlnIPmjZXmrannlKvoo5zovJTnqYLli5/lopPmhZXmiIrmmq7mr43nsL/oj6nlgKPkv7jljIXlkYbloLHlpYnlrp3ls7Dls6/ltKnlupbmirHmjafmlL7mlrnmnIsiXSxbIjk2NDAiLCLms5Xms6Hng7nnoLLnuKvog57oirPokIzok6zonILopJLoqKrosYrpgqbpi5Lpo73ps7PptazkuY/kuqHlgo3liZblnYrlpqjluL3lv5jlv5nmiL/mmrTmnJvmn5Dmo5LlhpLntKHogqrohqjorIDosozosr/pib7pmLLlkKDpoKzljJflg5XljZzloqjmkrLmnLTniafnnabnqYbph6bli4PmsqHmrobloIDluYzlpZTmnKznv7vlh6Hnm4YiXSxbIjk2ODAiLCLmkanno6jprZTpurvln4vlprnmmKfmnprmr47lk6nmp5nluZXohpzmnpXprqrmn77psZLmoZ3kuqbkv6Plj4jmirnmnKvmsqvov4Tkvq3nua3pur/kuIfmhaLmuoDmvKvolJPlkbPmnKrprYXlt7PnrpXlsqzlr4bonJzmuYrok5HnqJTohIjlppnnso3msJHnnKDli5nlpKLnhKHniZ/nn5vpnKfptaHmpIvlqb/lqJjlhqXlkI3lkb3mmI7nm5/ov7fpipjps7Tlp6rniZ3mu4XlhY3mo4nntr/nt6zpnaLpurrmkbjmqKHojILlpoTlrZ/mr5vnjJvnm7LntrLogJfokpnlhLLmnKjpu5nnm67mnaLli7/ppIXlsKTmiLvnsb7osrDllY/mgrbntIvploDljIHkuZ/lhrblpJzniLrogLbph47lvKXnn6LljoTlvbnntITolqzoqLPouo3pnZbmn7Polq7pkZPmhInmhIjmsrnnmZIiXSxbIjk3NDAiLCLoq63ovLjllK/kvZHlhKrli4flj4vlrqXlub3mgqDmhoLmj5bmnInmn5rmuafmtoznjLbnjLfnlLHnpZDoo5XoqpjpgYrpgpHpg7Xpm4Tono3lpJXkuojkvZnkuI7oqonovL/poJDlgq3lubzlppblrrnlurjmj5rmj7rmk4Hmm5zmpYrmp5jmtIvmurbnhpTnlKjnqq/nvorogIDokYnok4nopoHorKHouIrpgaXpmb3ppIrmhb7mipHmrLIiXSxbIjk3ODAiLCLmsoPmtbTnv4znv7zmt4DnvoXonrroo7jmnaXojrHpoLzpm7fmtJvntaHokL3pharkubHljbXltZDmrITmv6vol43omK3opqfliKnlkI/lsaXmnY7moqjnkIbnkoPnl6Loo4/oo6Hph4zpm6Lpmbjlvovnjofnq4vokY7mjqDnlaXlionmtYHmupznkInnlZnnoavnspLpmobnq5zpvo3kvrbmha7ml4XomZzkuobkuq7lg5rkuKHlh4zlr67mlpnmooHmtrznjJ/nmYLnnq3nqJzns6foia/oq5Lpgbzph4/pmbXpoJjlipvnt5HlgKvljpjmnpfmt4vnh5DnkLPoh6jovKrpmqPpsZfpup/nkaDloYHmtpnntK/poZ7ku6TkvLbkvovlhrflirHltrrmgJznjrLnpLzoi5PpiLTpmrfpm7bpnIrpupfpvaLmmqbmrbTliJfliqPng4joo4Llu4nmgYvmhpDmvKPnhYnnsL7nt7Toga8iXSxbIjk4NDAiLCLok67pgKPpjKzlkYLpra/mq5Pngonos4Lot6/pnLLlirTlqYHlu4rlvITmnJfmpbzmppTmtarmvI/niaLni7znr63ogIHogb7onYvpg47lha3pupPnpoTogovpjLLoq5blgK3lkozoqbHmraros4TohIfmg5HmnqDpt7LkupnkupjpsJDoqavol4HolajmpIDmub7nopfohZUiXSxbIjk4OWYiLCLlvIzkuJDkuJXkuKrkuLHkuLbkuLzkuL/kuYLkuZbkuZjkuoLkuoXosavkuoroiJLlvI3kuo7kup7kup/kuqDkuqLkurDkurPkurbku47ku43ku4Tku4bku4Lku5fku57ku63ku5/ku7fkvInkvZrkvLDkvZvkvZ3kvZfkvYfkvbbkvojkvo/kvpjkvbvkvankvbDkvpHkva/kvobkvpblhJjkv5Tkv5/kv47kv5jkv5vkv5Hkv5rkv5Dkv6Tkv6XlgJrlgKjlgJTlgKrlgKXlgIXkvJzkv7blgKHlgKnlgKzkv77kv6/lgJHlgIblgYPlgYfmnIPlgZXlgZDlgYjlgZrlgZblgazlgbjlgoDlgprlgoXlgrTlgrIiXSxbIjk5NDAiLCLlg4nlg4rlgrPlg4Llg5blg57lg6Xlg63lg6Plg67lg7nlg7XlhInlhIHlhILlhJblhJXlhJTlhJrlhKHlhLrlhLflhLzlhLvlhL/lhYDlhZLlhYzlhZTlhaLnq7jlhanlharlha7lhoDlhoLlm5jlhozlhonlho/lhpHlhpPlhpXlhpblhqTlhqblhqLlhqnlhqrlhqvlhrPlhrHlhrLlhrDlhrXlhr3lh4Xlh4nlh5vlh6DomZXlh6nlh60iXSxbIjk5ODAiLCLlh7Dlh7Xlh77liITliIvliJTliI7liKfliKrliK7liLPliLnliY/liYTliYvliYzliZ7liZTliarlibTlianlibPlib/lib3lio3lipTlipLlibHliojlipHovqjovqfliqzliq3lirzlirXli4Hli43li5fli57li6Pli6bpo63li6Dli7Pli7Xli7jli7nljIbljIjnlLjljI3ljJDljI/ljJXljJrljKPljK/ljLHljLPljLjljYDljYbljYXkuJfljYnljY3lh5bljZ7ljanlja7lpJjljbvljbfljoLljpbljqDljqbljqXljq7ljrDljrblj4PnsJLpm5nlj5/mm7znh67lj67lj6jlj63lj7rlkIHlkL3lkYDlkKzlkK3lkLzlkK7lkLblkKnlkJ3lkY7lko/lkbXlko7lkZ/lkbHlkbflkbDlkpLlkbvlkoDlkbblkoTlkpDlkoblk4flkqLlkrjlkqXlkqzlk4Tlk4jlkqgiXSxbIjlhNDAiLCLlkqvlk4LlkqTlkr7lkrzlk5jlk6Xlk6bllI/llJTlk73lk67lk63lk7rlk6LllLnllYDllaPllYzllK7llZzllYXllZbllZfllLjllLPllZ3llpnlloDlkq/llorllp/llbvllb7llpjllp7llq7llbzlloPllqnllofllqjll5rll4Xll5/ll4Tll5zll6Tll5TlmJTll7flmJbll77ll73lmJvll7nlmY7lmZDnh5/lmLTlmLblmLLlmLgiXSxbIjlhODAiLCLlmavlmaTlmK/lmazlmarlmoblmoDlmorlmqDlmpTlmo/lmqXlmq7lmrblmrTlm4Llmrzlm4Hlm4Plm4Dlm4jlm47lm5Hlm5Plm5flm67lm7nlnIDlm7/lnITlnInlnIjlnIvlnI3lnJPlnJjlnJbll4flnJzlnKblnLflnLjlnY7lnLvlnYDlnY/lnanln4DlnojlnaHlnb/lnonlnpPlnqDlnrPlnqTlnqrlnrDln4Pln4bln5Tln5Lln5PloIrln5bln6PloIvloJnloJ3lobLloKHloaLloYvlobDmr4DloZLloL3lobnlooXlornlop/loqvlorrlo57lorvlorjloq7lo4Xlo5Plo5Hlo5flo5nlo5jlo6Xlo5zlo6Tlo5/lo6/lo7rlo7nlo7vlo7zlo73lpILlpIrlpJDlpJvmoqblpKXlpKzlpK3lpLLlpLjlpL7nq5LlpZXlpZDlpY7lpZrlpZjlpaLlpaDlpaflpazlpakiXSxbIjliNDAiLCLlpbjlpoHlpp3kvZ7kvqvlpqPlprLlp4blp6jlp5zlpo3lp5nlp5rlqKXlqJ/lqJHlqJzlqInlqJrlqYDlqazlqYnlqLXlqLblqaLlqarlqprlqrzlqr7lq4vlq4Llqr3lq6Plq5flq6blq6nlq5blq7rlq7vlrIzlrIvlrJblrLLlq5DlrKrlrLblrL7lrYPlrYXlrYDlrZHlrZXlrZrlrZvlraXlranlrbDlrbPlrbXlrbjmlojlrbrlroAiXSxbIjliODAiLCLlroPlrqblrrjlr4Plr4flr4nlr5Tlr5Dlr6Tlr6blr6Llr57lr6Xlr6vlr7Dlr7blr7PlsIXlsIflsIjlsI3lsJPlsKDlsKLlsKjlsLjlsLnlsYHlsYblsY7lsZPlsZDlsY/lrbHlsazlsa7kuaLlsbblsbnlsozlspHlspTlppvlsqvlsrvlsrblsrzlsrfls4Xlsr7ls4fls5nls6nls73ls7rls63ltozls6rltIvltJXltJfltZzltJ/ltJvltJHltJTltKLltJrltJnltJjltYzltZLltY7ltYvltazltbPltbbltofltoTltoLltqLltp3ltqzltq7ltr3ltpDltrfltrzlt4nlt43lt5Plt5Llt5blt5vlt6vlt7Llt7XluIvluJrluJnluJHluJvluLbluLfluYTluYPluYDluY7luZfluZTluZ/luaLluaTluYflubXlubblubrpurzlub/luqDlu4Hlu4Llu4jlu5Dlu48iXSxbIjljNDAiLCLlu5blu6Plu53lu5rlu5vlu6Llu6Hlu6jlu6nlu6zlu7Hlu7Plu7Dlu7Tlu7jlu77lvIPlvInlvZ3lvZzlvIvlvJHlvJblvKnlvK3lvLjlvYHlvYjlvYzlvY7lvK/lvZHlvZblvZflvZnlvaHlva3lvbPlvbflvoPlvoLlvb/lvorlvojlvpHlvoflvp7lvpnlvpjlvqDlvqjlvq3lvrzlv5blv7vlv6Tlv7jlv7Hlv53mgrPlv7/mgKHmgaAiXSxbIjljODAiLCLmgJnmgJDmgKnmgI7mgLHmgJvmgJXmgKvmgKbmgI/mgLrmgZrmgYHmgarmgbfmgZ/mgYrmgYbmgY3mgaPmgYPmgaTmgYLmgazmgavmgZnmgoHmgo3mg6fmgoPmgprmgoTmgpvmgpbmgpfmgpLmgqfmgovmg6Hmgrjmg6Dmg5PmgrTlv7Dmgr3mg4bmgrXmg5jmhY3mhJXmhIbmg7bmg7fmhIDmg7Tmg7rmhIPmhKHmg7vmg7HmhI3mhI7mhYfmhL7mhKjmhKfmhYrmhL/mhLzmhKzmhLTmhL3mhYLmhYTmhbPmhbfmhZjmhZnmhZrmhavmhbTmha/mhaXmhbHmhZ/mhZ3mhZPmhbXmhpnmhpbmhofmhqzmhpTmhprmhormhpHmhqvmhq7mh4zmh4rmh4nmh7fmh4jmh4Pmh4bmhrrmh4vnvbnmh43mh6bmh6Pmh7bmh7rmh7Tmh7/mh73mh7zmh77miIDmiIjmiInmiI3miIzmiJTmiJsiXSxbIjlkNDAiLCLmiJ7miKHmiKrmiK7miLDmiLLmiLPmiYHmiY7miZ7miaPmiZvmiaDmiajmibzmioLmionmib7mipLmipPmipbmi5TmioPmipTmi5fmi5Hmirvmi4/mi7/mi4bmk5Tmi4jmi5zmi4zmi4rmi4Lmi4fmipvmi4nmjIzmi67mi7HmjKfmjILmjIjmi6/mi7XmjZDmjL7mjY3mkJzmjY/mjpbmjo7mjoDmjqvmjbbmjqPmjo/mjonmjp/mjrXmjasiXSxbIjlkODAiLCLmjanmjr7mj6nmj4Dmj4bmj6Pmj4nmj5Lmj7bmj4TmkJbmkLTmkIbmkJPmkKbmkLbmlJ3mkJfmkKjmkI/mkafmka/mkbbmkY7mlKrmkpXmkpPmkqXmkqnmkojmkrzmk5rmk5Lmk4Xmk4fmkrvmk5jmk4Lmk7Hmk6foiInmk6Dmk6Hmiqzmk6Pmk6/mlKzmk7bmk7Tmk7Lmk7rmlIDmk73mlJjmlJzmlIXmlKTmlKPmlKvmlLTmlLXmlLfmlLbmlLjnlYvmlYjmlZbmlZXmlY3mlZjmlZ7mlZ3mlbLmlbjmloLmloPorormlpvmlp/mlqvmlrfml4Pml4bml4Hml4Tml4zml5Lml5vml5nml6Dml6Hml7HmnbLmmIrmmIPml7vmnbPmmLXmmLbmmLTmmJzmmY/mmYTmmYnmmYHmmZ7mmZ3mmaTmmafmmajmmZ/mmaLmmbDmmoPmmojmmo7mmonmmoTmmpjmmp3mm4Hmmrnmm4nmmr7mmrwiXSxbIjllNDAiLCLmm4Tmmrjmm5bmm5rmm6DmmL/mm6bmm6nmm7Dmm7Xmm7fmnI/mnJbmnJ7mnKbmnKfpnLjmnK7mnL/mnLbmnYHmnLjmnLfmnYbmnZ7mnaDmnZnmnaPmnaTmnonmnbDmnqnmnbzmnarmnozmnovmnqbmnqHmnoXmnrfmn6/mnrTmn6zmnrPmn6nmnrjmn6Tmn57mn53mn6Lmn67mnrnmn47mn4bmn6fmqpzmoJ7moYbmoKnmoYDmoY3moLLmoY4iXSxbIjllODAiLCLmorPmoKvmoZnmoaPmobfmob/mop/moo/moq3mopTmop3mopvmooPmqq7mornmobTmorXmoqDmorrmpI/moo3mob7mpIHmo4rmpIjmo5jmpKLmpKbmo6HmpIzmo43mo5Tmo6fmo5XmpLbmpJLmpITmo5fmo6PmpKXmo7nmo6Dmo6/mpKjmpKrmpJrmpKPmpKHmo4bmpbnmpbfmpZzmpbjmpavmpZTmpb7mpa7mpLnmpbTmpL3mpZnmpLDmpaHmpZ7mpZ3mpoHmparmprLmpq7mp5Dmpr/mp4Hmp5Pmpr7mp47lr6jmp4rmp53mprvmp4PmpqfmqK7mppHmpqDmppzmppXmprTmp57mp6jmqILmqJvmp7/mrIrmp7nmp7Lmp6fmqIXmprHmqJ7mp63mqJTmp6vmqIrmqJLmq4HmqKPmqJPmqYTmqIzmqbLmqLbmqbjmqYfmqaLmqZnmqabmqYjmqLjmqKLmqpDmqo3mqqDmqoTmqqLmqqMiXSxbIjlmNDAiLCLmqpfomJfmqrvmq4Pmq4LmqrjmqrPmqqzmq57mq5Hmq5/mqqrmq5rmq6rmq7vmrIXomJbmq7rmrJLmrJbprLHmrJ/mrLjmrLfnm5zmrLnpo67mrYfmrYPmrYnmrZDmrZnmrZTmrZvmrZ/mraHmrbjmrbnmrb/mroDmroTmroPmro3mrpjmrpXmrp7mrqTmrqrmrqvmrq/mrrLmrrHmrrPmrrfmrrzmr4bmr4vmr5Pmr5/mr6zmr6vmr7Pmr68iXSxbIjlmODAiLCLpur7msIjmsJPmsJTmsJvmsKTmsKPmsZ7msZXmsaLmsarmsoLmso3msprmsoHmspvmsb7msajmsbPmspLmspDms4Tms7Hms5Pmsr3ms5fms4Xms53msq7msrHmsr7msrrms5vms6/ms5nms6rmtJ/ooY3mtLbmtKvmtL3mtLjmtJnmtLXmtLPmtJLmtIzmtaPmtpPmtaTmtZrmtbnmtZnmto7mtpXmv6TmtoXmt7nmuJXmuIrmtrXmt4fmt6bmtrjmt4bmt6zmt57mt4zmt6jmt5Lmt4Xmt7rmt5nmt6Tmt5Xmt6rmt67muK3mua7muK7muJnmubLmuZ/muL7muKPmuavmuKvmubbmuY3muJ/muYPmuLrmuY7muKTmu7/muJ3muLjmuoLmuqrmupjmu4nmurfmu5Pmur3muq/mu4TmurLmu5Tmu5Xmuo/muqXmu4Lmup/mvYHmvJHngYzmu6zmu7jmu77mvL/mu7LmvLHmu6/mvLLmu4wiXSxbImUwNDAiLCLmvL7mvJPmu7fmvobmvbrmvbjmvoHmvoDmva/mvZvmv7Pmva3mvoLmvbzmvZjmvo7mvpHmv4LmvabmvrPmvqPmvqHmvqTmvrnmv4bmvqrmv5/mv5Xmv6zmv5Tmv5jmv7Hmv67mv5vngInngIvmv7rngJHngIHngI/mv77ngJvngJrmvbTngJ3ngJjngJ/ngLDngL7ngLLngZHngaPngpnngpLngq/ng7HngqzngrjngrPngq7ng5/ng4vng50iXSxbImUwODAiLCLng5nnhInng73nhJznhJnnhaXnhZXnhojnhabnhaLnhYznhZbnhaznho/nh7vnhoTnhpXnhqjnhqznh5fnhrnnhr7nh5Lnh4nnh5Tnh47nh6Dnh6znh6fnh7Xnh7znh7nnh7/niI3niJDniJvniKjniK3niKzniLDniLLniLvniLzniL/niYDniYbniYvniZjnibTnib7nioLnioHniofnipLnipbniqLniqfnirnnirLni4Pni4bni4Tni47ni5Lni6Lni6Dni6Hni7nni7flgI/njJfnjIrnjJznjJbnjJ3njLTnjK/njKnnjKXnjL7njY7njY/pu5jnjZfnjarnjajnjbDnjbjnjbXnjbvnjbrnj4jnjrPnj47njrvnj4Dnj6Xnj67nj57nkqLnkIXnka/nkKXnj7jnkLLnkLrnkZXnkL/nkZ/nkZnnkYHnkZznkannkbDnkaPnkarnkbbnkb7nkovnkp7nkqfnk4rnk4/nk5Tnj7EiXSxbImUxNDAiLCLnk6Dnk6Pnk6fnk6nnk67nk7Lnk7Dnk7Hnk7jnk7fnlITnlIPnlIXnlIznlI7nlI3nlJXnlJPnlJ7nlKbnlKznlLznlYTnlY3nlYrnlYnnlZvnlYbnlZrnlannlaTnlafnlavnla3nlbjnlbbnlobnlofnlbTnlornlonnloLnlpTnlprnlp3nlqXnlqPnl4LnlrPnl4PnlrXnlr3nlrjnlrznlrHnl43nl4rnl5Lnl5nnl6Pnl57nl77nl78iXSxbImUxODAiLCLnl7znmIHnl7Dnl7rnl7Lnl7PnmIvnmI3nmInnmJ/nmKfnmKDnmKHnmKLnmKTnmLTnmLDnmLvnmYfnmYjnmYbnmZznmZjnmaHnmaLnmajnmannmarnmafnmaznmbDnmbLnmbbnmbjnmbznmoDnmoPnmojnmovnmo7nmpbnmpPnmpnnmprnmrDnmrTnmrjnmrnnmrrnm4Lnm43nm5bnm5Lnm57nm6Hnm6Xnm6fnm6romK/nm7vnnIjnnIfnnITnnKnnnKTnnJ7nnKXnnKbnnJvnnLfnnLjnnYfnnZrnnajnnavnnZvnnaXnnb/nnb7nnbnnno7nnovnnpHnnqDnnp7nnrDnnrbnnrnnnr/nnrznnr3nnrvnn4fnn43nn5fnn5rnn5znn6Pnn67nn7znoIznoJLnpKbnoKDnpKrnoYXnoo7nobTnoobnobznoprnooznoqPnorXnoqrnoq/no5Hno4bno4vno5Tnor7norzno4Xno4rno6wiXSxbImUyNDAiLCLno6fno5rno73no7TnpIfnpJLnpJHnpJnnpKznpKvnpYDnpaDnpZfnpZ/npZrnpZXnpZPnpbrnpb/npornpp3npqfpvYvnpqrnpq7nprPnprnnprrnp4nnp5Xnp6fnp6znp6Hnp6PnqIjnqI3nqJjnqJnnqKDnqJ/npoDnqLHnqLvnqL7nqLfnqYPnqZfnqYnnqaHnqaLnqanpvp3nqbDnqbnnqb3nqojnqpfnqpXnqpjnqpbnqqnnq4jnqrAiXSxbImUyODAiLCLnqrbnq4Xnq4Tnqr/pgoPnq4fnq4rnq43nq4/nq5Xnq5Pnq5nnq5rnq53nq6Hnq6Lnq6bnq63nq7DnrILnrI/nrIrnrIbnrLPnrJjnrJnnrJ7nrLXnrKjnrLbnrZDnrbrnrITnrY3nrIvnrYznrYXnrbXnraXnrbTnrafnrbDnrbHnraznra7nrp3nrpjnrp/nro3nrpznrprnrovnrpLnro/nrZ3nrpnnr4vnr4Hnr4znr4/nrrTnr4bnr53nr6nnsJHnsJTnr6bnr6XnsaDnsIDnsIfnsJPnr7Pnr7fnsJfnsI3nr7bnsKPnsKfnsKrnsJ/nsLfnsKvnsL3nsYznsYPnsZTnsY/nsYDnsZDnsZjnsZ/nsaTnsZbnsaXnsaznsbXnsoPnspDnsqTnsq3nsqLnsqvnsqHnsqjnsrPnsrLnsrHnsq7nsrnnsr3ns4Dns4Xns4Lns5jns5Lns5zns6LprLvns6/ns7Lns7Tns7bns7rntIYiXSxbImUzNDAiLCLntILntJzntJXntIrntYXntYvntK7ntLLntL/ntLXntYbntbPntZbntY7ntbLntajnta7ntY/ntaPntpPntonntZvnto/ntb3ntpvntrrntq7ntqPntrXnt4fntr3ntqvnuL3ntqLntq/nt5zntrjntp/ntrDnt5jnt53nt6Tnt57nt7vnt7Lnt6HnuIXnuIrnuKPnuKHnuJLnuLHnuJ/nuInnuIvnuKLnuYbnuabnuLvnuLXnuLnnuYPnuLciXSxbImUzODAiLCLnuLLnuLrnuafnuZ3nuZbnuZ7nuZnnuZrnubnnuarnuannubznubvnuoPnt5Xnub3ovq7nub/nuojnuonnuoznupLnupDnupPnupTnupbnuo7nupvnupznvLjnvLrnvYXnvYznvY3nvY7nvZDnvZHnvZXnvZTnvZjnvZ/nvaDnvajnvannvafnvbjnvoLnvobnvoPnvojnvofnvoznvpTnvp7nvp3nvprnvqPnvq/nvrLnvrnnvq7nvrbnvrjorbHnv4Xnv4bnv4rnv5Xnv5Tnv6Hnv6bnv6nnv7Pnv7npo5zogIbogITogIvogJLogJjogJnogJzogKHogKjogL/ogLvogYrogYbogZLogZjogZrogZ/ogaLogajogbPogbLogbDogbbogbnogb3ogb/ogoTogobogoXogpvogpPogprogq3lhpDogqzog5vog6Xog5nog53og4Tog5rog5bohInog6/og7HohJvohKnohKPohK/ohYsiXSxbImU0NDAiLCLpmovohYbohL7ohZPohZHog7zohbHoha7ohaXohabohbTohoPohojohorohoDohoLohqDohpXohqTohqPohZ/ohpPohqnohrDohrXohr7ohrjohr3oh4Doh4Lohrroh4noh43oh5Hoh5noh5joh4joh5roh5/oh6Doh6foh7roh7voh77oiIHoiILoiIXoiIfoiIroiI3oiJDoiJboiKnoiKvoiLjoiLPoiYDoiZnoiZjoiZ3oiZroiZ/oiaQiXSxbImU0ODAiLCLoiaLoiajoiaroiavoiK7oibHoibfoibjoib7oio3oipLoiqvoip/oirvoiqzoi6Hoi6Poi5/oi5Loi7Toi7Poi7rojpPojIPoi7voi7noi57ojIboi5zojInoi5nojLXojLTojJbojLLojLHojYDojLnojZDojYXojK/ojKvojJfojJjojoXojprojqrojp/ojqLojpbojKPojo7ojofojorojbzojrXojbPojbXojqDojonojqjoj7TokJPoj6voj47oj73okIPoj5jokIvoj4Hoj7fokIfoj6Doj7LokI3okKLokKDojr3okLjolIboj7voka3okKrokLzolZrokoTokbfokavokq3oka7okoLokanokYbokKzoka/okbnokLXok4rokaLokrnokr/okp/ok5nok43okrvok5rok5Dok4Hok4bok5bokqHolKHok7/ok7TolJfolJjolKzolJ/olJXolJTok7zolYDolaPolZjolYgiXSxbImU1NDAiLCLolYHomILolYvolZXoloDolqTolojolpHolorolqjola3olpTolpvol6rolofolpzolbfolb7olpDol4nolrrol4/olrnol5Dol5Xol53ol6Xol5zol7nomIromJPomIvol77ol7romIbomKLomJromLDomL/omY3kuZXomZTomZ/omafombHompPomqPomqnomqromovomozomrbomq/om4Tom4bomrDom4nooKPomqvom5Tom57om6nom6wiXSxbImU1ODAiLCLom5/om5vom6/onJLonIbonIjonIDonIPom7vonJHonInonI3om7nonIronLTonL/onLfonLvonKXonKnonJronaDonZ/onbjonYzonY7onbTonZfonajona7onZnonZPonaPonarooIXonqLonp/onoLonq/on4vonr3on4Don5Dpm5bonqvon4TonrPon4fon4bonrvon6/on7Lon6DooI/ooI3on77on7bon7fooI7on5LooJHooJbooJXooKLooKHooLHooLbooLnooKfooLvooYTooYLooZLooZnooZ7ooaLooavoooHoob7oop7oobXoob3oorXoobLoooLoopfoopLooq7oopnooqLooo3ooqToorDoor/oorHoo4Poo4Too5Too5joo5noo53oo7nopILoo7zoo7Too6joo7LopITopIzopIropJPopYPopJ7opKXopKropKvopYHopYTopLvopLbopLjopYzopJ3opaDopZ4iXSxbImU2NDAiLCLopabopaTopa3oparopa/opbTopbfopb7opoPopojoporoppPoppjopqHopqnopqbopqzopq/oprLoprropr3opr/op4Dop5rop5zop53op6fop7Top7joqIPoqJboqJDoqIzoqJvoqJ3oqKXoqLboqYHoqZvoqZLoqYboqYjoqbzoqa3oqazoqaLoqoXoqoLoqoToqqjoqqHoqpHoqqXoqqboqproqqPoq4Toq43oq4Loq5roq6voq7Poq6ciXSxbImU2ODAiLCLoq6Toq7HorJToq6Doq6Loq7foq57oq5vorIzorIforJroq6HorJborJDorJforKDorLPpnqvorKborKvorL7orKjorYHorYzorY/orY7orYnorZborZvorZroravorZ/orazora/orbTorb3oroDorozoro7orpLorpPorpborpnorprosLrosYHosL/osYjosYzosY7osZDosZXosaLosazosbjosbrosoLosonosoXosoroso3oso7ospTosbzospjmiJ3osq3osqrosr3osrLosrPosq7osrbos4jos4Hos6Tos6Pos5ros73os7ros7votITotIXotIrotIfotI/otI3otJDpvY7otJPos43otJTotJbotafota3otbHotbPotoHotpnot4Lotr7otrrot4/ot5rot5bot4zot5vot4vot6rot6vot5/ot6Pot7zouIjouInot7/ouJ3ouJ7ouJDouJ/ouYLouLXouLDouLTouYoiXSxbImU3NDAiLCLouYfouYnouYzouZDouYjouZnouaTouaDouKrouaPouZXoubboubLoubzouoHouofouoXouoTouovouoroupPoupHoupToupnouqrouqHouqzourDou4bourHour7ou4Xou4jou4vou5vou6Pou7zou7vou6vou77ovIrovIXovJXovJLovJnovJPovJzovJ/ovJvovIzovKbovLPovLvovLnovYXovYLovL7ovYzovYnovYbovY7ovZfovZwiXSxbImU3ODAiLCLovaLovaPovaTovpzovp/ovqPovq3ovq/ovrfov5rov6Xov6Lov6rov6/pgofov7TpgIXov7nov7rpgJHpgJXpgKHpgI3pgJ7pgJbpgIvpgKfpgLbpgLXpgLnov7jpgY/pgZDpgZHpgZLpgI7pgYnpgL7pgZbpgZjpgZ7pgajpga/pgbbpmqjpgbLpgoLpgb3pgoHpgoDpgorpgonpgo/pgqjpgq/pgrHpgrXpg6Lpg6TmiYjpg5vphILphJLphJnphLLphLDphYrphZbphZjphaPphaXphanphbPphbLphovphonphoLphqLphqvphq/phqrphrXphrTphrrph4Dph4Hph4nph4vph5Dph5bph5/ph6Hph5vph7zph7Xph7bpiJ7ph7/piJTpiKzpiJXpiJHpiZ7piZfpiYXpiYnpiaTpiYjpipXpiL/piYvpiZDpipzpipbpipPpipvpiZrpi4/pirnpirfpi6npjI/pi7rpjYTpjK4iXSxbImU4NDAiLCLpjJnpjKLpjJrpjKPpjLrpjLXpjLvpjZzpjaDpjbzpja7pjZbpjrDpjqzpjq3pjpTpjrnpj5bpj5fpj6jpj6Xpj5jpj4Ppj53pj5Dpj4jpj6TpkJrpkJTpkJPpkIPpkIfpkJDpkLbpkKvpkLXpkKHpkLrpkYHpkZLpkYTpkZvpkaDpkaLpkZ7pkarpiKnpkbDpkbXpkbfpkb3pkZrpkbzpkb7pkoHpkb/ploLplofplorplpTplpbplpjplpkiXSxbImU4ODAiLCLplqDplqjplqfplq3plrzplrvplrnplr7pl4rmv7bpl4Ppl43pl4zpl5Xpl5Tpl5bpl5zpl6Hpl6Xpl6LpmKHpmKjpmK7pmK/pmYLpmYzpmY/pmYvpmbfpmZzpmZ7pmZ3pmZ/pmabpmbLpmazpmo3pmpjpmpXpmpfpmqrpmqfpmrHpmrLpmrDpmrTpmrbpmrjpmrnpm47pm4vpm4npm43opY3pm5zpnI3pm5Xpm7npnITpnIbpnIjpnJPpnI7pnJHpnI/pnJbpnJnpnKTpnKrpnLDpnLnpnL3pnL7pnYTpnYbpnYjpnYLpnYnpnZzpnaDpnaTpnabpnajli5LpnavpnbHpnbnpnoXpnbzpnoHpnbrpnobpnovpno/pnpDpnpzpnqjpnqbpnqPpnrPpnrTpn4Ppn4bpn4jpn4vpn5zpn63pvY/pn7Lnq5/pn7bpn7XpoI/poIzpoLjpoKTpoKHpoLfpoL3poYbpoY/poYvpoavpoa/pobAiXSxbImU5NDAiLCLpobHpobTpobPpoqrpoq/porHporbpo4Tpo4Ppo4bpo6npo6vppIPppInppJLppJTppJjppKHppJ3ppJ7ppKTppKDppKzppK7ppL3ppL7ppYLppYnppYXppZDppYvppZHppZLppYzppZXpppfpppjppqXppq3ppq7pprzpp5/pp5vpp53pp5jpp5Hpp63pp67pp7Hpp7Lpp7vpp7jpqIHpqI/pqIXpp6LpqJnpqKvpqLfpqYXpqYLpqYDpqYMiXSxbImU5ODAiLCLpqL7pqZXpqY3pqZvpqZfpqZ/pqaLpqaXpqaTpqanpqavpqarpqq3pqrDpqrzpq4Dpq4/pq5Hpq5Ppq5Tpq57pq5/pq6Lpq6Ppq6bpq6/pq6vpq67pq7Tpq7Hpq7fpq7vprIbprJjprJrprJ/prKLprKPprKXprKfprKjprKnprKrprK7prK/prLLprYTprYPprY/prY3prY7prZHprZjprbTprpPproPprpHprpbprpfprp/prqDprqjprrTpr4Dpr4rprrnpr4bpr4/pr5Hpr5Lpr6Ppr6Lpr6Tpr5Tpr6HpsLrpr7Lpr7Hpr7DpsJXpsJTpsInpsJPpsIzpsIbpsIjpsJLpsIrpsITpsK7psJvpsKXpsKTpsKHpsLDpsYfpsLLpsYbpsL7psZrpsaDpsafpsbbpsbjps6fps6zps7DptInptIjps6vptIPptIbptKrptKbptq/ptKPptJ/ptYTptJXptJLptYHptL/ptL7ptYbptYgiXSxbImVhNDAiLCLptZ3ptZ7ptaTptZHptZDptZnptbLptonptofptqvpta/ptbrptprptqTptqnptrLpt4Tpt4Hptrvptrjptrrpt4bpt4/pt4Lpt5npt5Ppt7jpt6bpt63pt6/pt73puJrpuJvpuJ7pubXpubnpub3puoHpuojpuovpuozpupLpupXpupHpup3puqXpuqnpurjpuqrpuq3pnaHpu4zpu47pu4/pu5Dpu5Tpu5zpu57pu53pu6Dpu6Xpu6jpu68iXSxbImVhODAiLCLpu7Tpu7bpu7fpu7npu7vpu7zpu73pvIfpvIjnmrfpvJXpvKHpvKzpvL7pvYrpvZLpvZTpvaPpvZ/pvaDpvaHpvabpvafpvazpvarpvbfpvbLpvbbpvpXpvpzpvqDloK/mp4fpgZnnkaTlh5znhpkiXSxbImVkNDAiLCLnuoropJzpjYjpiojok5zkv4nngrvmmLHmo4jpi7nmm7vlvYXkuKjku6Hku7zkvIDkvIPkvLnkvZbkvpLkvorkvprkvpTkv43lgYDlgKLkv7/lgJ7lgYblgbDlgYLlgpTlg7Tlg5jlhYrlhaTlhp3lhr7lh6zliJXlipzliqbli4Dli5vljIDljIfljKTljbLljpPljrLlj53vqI7lkpzlkorlkqnlk7/lloblnZnlnaXlnqzln4jln4fvqI8iXSxbImVkODAiLCLvqJDlop7lorLlpIvlpZPlpZvlpZ3lpaPlpqTlprrlrZblr4DnlK/lr5jlr6zlsJ7lsqblsrrls7XltKfltZPvqJHltYLlta3ltrjltrnlt5DlvKHlvLTlvaflvrflv57mgZ3mgoXmgormg57mg5XmhKDmg7LmhJHmhLfmhLDmhpjmiJPmiqbmj7XmkaDmkp3mk47mlY7mmIDmmJXmmLvmmInmmK7mmJ7mmKTmmaXmmZfmmZnvqJLmmbPmmpnmmqDmmrLmmr/mm7rmnI7vpKnmnabmnrvmoZLmn4DmoIHmoYTmo4/vqJPmpajvqJTmppjmp6LmqLDmqavmqYbmqbPmqb7mq6Lmq6Tmr5bmsL/msZzmsobmsa/ms5rmtITmtofmta/mtpbmtqzmt4/mt7jmt7Lmt7zmuLnmuZzmuKfmuLzmur/mvojmvrXmv7XngIXngIfngKjngoXngqvnhI/nhITnhZznhYbnhYfvqJXnh4Hnh77nirEiXSxbImVlNDAiLCLnir7njKTvqJbnjbfnjr3nj4nnj5bnj6Pnj5LnkIfnj7XnkKbnkKrnkKnnkK7nkaLnkonnkp/nlIHnla/nmoLnmpznmp7nmpvnmqbvqJfnnYbliq/noKHnoY7noaTnobrnpLDvqJjvqJnvqJrnppTvqJvnppvnq5Hnq6fvqJznq6vnrp7vqJ3ntYjntZzntrfntqDnt5bnuZLnvYfnvqHvqJ7ojIHojaLojb/oj4foj7bokYjokrTolZPolZkiXSxbImVlODAiLCLolavvqJ/olrDvqKDvqKHooIfoo7XoqJLoqLfoqbnoqqfoqr7oq5/vqKLoq7borZPorb/os7Dos7TotJLotbbvqKPou4/vqKTvqKXpgafpg57vqKbphJXphKfph5rph5fph57ph63ph67ph6Tph6XpiIbpiJDpiIrpiLrpiYDpiLzpiY7piZnpiZHpiLnpiafpiqfpibfpibjpi6fpi5fpi5npi5DvqKfpi5Xpi6Dpi5PpjKXpjKHpi7vvqKjpjJ7pi7/pjJ3pjILpjbDpjZfpjqTpj4bpj57pj7jpkLHpkYXpkYjplpLvp5zvqKnpmp3pmq/pnLPpnLvpnYPpnY3pnY/pnZHpnZXpoZfpoaXvqKrvqKvppKfvqKzppp7pqY7pq5npq5zprbXprbLpro/prrHprrvpsIDptbDptavvqK3puJnpu5EiXSxbImVlZWYiLCLihbAiLDksIu+/ou+/pO+8h++8giJdLFsiZjA0MCIsIu6AgCIsNjJdLFsiZjA4MCIsIu6AvyIsMTI0XSxbImYxNDAiLCLugrwiLDYyXSxbImYxODAiLCLug7siLDEyNF0sWyJmMjQwIiwi7oW4Iiw2Ml0sWyJmMjgwIiwi7oa3IiwxMjRdLFsiZjM0MCIsIu6ItCIsNjJdLFsiZjM4MCIsIu6JsyIsMTI0XSxbImY0NDAiLCLui7AiLDYyXSxbImY0ODAiLCLujK8iLDEyNF0sWyJmNTQwIiwi7o6sIiw2Ml0sWyJmNTgwIiwi7o+rIiwxMjRdLFsiZjY0MCIsIu6RqCIsNjJdLFsiZjY4MCIsIu6SpyIsMTI0XSxbImY3NDAiLCLulKQiLDYyXSxbImY3ODAiLCLulaMiLDEyNF0sWyJmODQwIiwi7pegIiw2Ml0sWyJmODgwIiwi7pifIiwxMjRdLFsiZjk0MCIsIu6anCJdLFsiZmE0MCIsIuKFsCIsOSwi4oWgIiw5LCLvv6Lvv6TvvIfvvILjiLHihJbihKHiiLXnuoropJzpjYjpiojok5zkv4nngrvmmLHmo4jpi7nmm7vlvYXkuKjku6Hku7zkvIDkvIPkvLnkvZbkvpLkvorkvprkvpTkv43lgYDlgKLkv7/lgJ7lgYblgbDlgYLlgpTlg7Tlg5jlhYoiXSxbImZhODAiLCLlhaTlhp3lhr7lh6zliJXlipzliqbli4Dli5vljIDljIfljKTljbLljpPljrLlj53vqI7lkpzlkorlkqnlk7/lloblnZnlnaXlnqzln4jln4fvqI/vqJDlop7lorLlpIvlpZPlpZvlpZ3lpaPlpqTlprrlrZblr4DnlK/lr5jlr6zlsJ7lsqblsrrls7XltKfltZPvqJHltYLlta3ltrjltrnlt5DlvKHlvLTlvaflvrflv57mgZ3mgoXmgormg57mg5XmhKDmg7LmhJHmhLfmhLDmhpjmiJPmiqbmj7XmkaDmkp3mk47mlY7mmIDmmJXmmLvmmInmmK7mmJ7mmKTmmaXmmZfmmZnvqJLmmbPmmpnmmqDmmrLmmr/mm7rmnI7vpKnmnabmnrvmoZLmn4DmoIHmoYTmo4/vqJPmpajvqJTmppjmp6LmqLDmqavmqYbmqbPmqb7mq6Lmq6Tmr5bmsL/msZzmsobmsa/ms5rmtITmtofmta8iXSxbImZiNDAiLCLmtpbmtqzmt4/mt7jmt7Lmt7zmuLnmuZzmuKfmuLzmur/mvojmvrXmv7XngIXngIfngKjngoXngqvnhI/nhITnhZznhYbnhYfvqJXnh4Hnh77nirHnir7njKTvqJbnjbfnjr3nj4nnj5bnj6Pnj5LnkIfnj7XnkKbnkKrnkKnnkK7nkaLnkonnkp/nlIHnla/nmoLnmpznmp7nmpvnmqbvqJfnnYbliq/noKHnoY7noaTnobrnpLDvqJjvqJkiXSxbImZiODAiLCLvqJrnppTvqJvnppvnq5Hnq6fvqJznq6vnrp7vqJ3ntYjntZzntrfntqDnt5bnuZLnvYfnvqHvqJ7ojIHojaLojb/oj4foj7bokYjokrTolZPolZnolavvqJ/olrDvqKDvqKHooIfoo7XoqJLoqLfoqbnoqqfoqr7oq5/vqKLoq7borZPorb/os7Dos7TotJLotbbvqKPou4/vqKTvqKXpgafpg57vqKbphJXphKfph5rph5fph57ph63ph67ph6Tph6XpiIbpiJDpiIrpiLrpiYDpiLzpiY7piZnpiZHpiLnpiafpiqfpibfpibjpi6fpi5fpi5npi5DvqKfpi5Xpi6Dpi5PpjKXpjKHpi7vvqKjpjJ7pi7/pjJ3pjILpjbDpjZfpjqTpj4bpj57pj7jpkLHpkYXpkYjplpLvp5zvqKnpmp3pmq/pnLPpnLvpnYPpnY3pnY/pnZHpnZXpoZfpoaXvqKrvqKvppKfvqKzppp7pqY7pq5kiXSxbImZjNDAiLCLpq5zprbXprbLpro/prrHprrvpsIDptbDptavvqK3puJnpu5EiXV0KCi8qKiovIH0pLAovKiAxODEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHMgPSBbWyIwIiwiXHUwMDAwIiwxMjddLFsiOGVhMSIsIu+9oSIsNjJdLFsiYTFhMSIsIuOAgOOAgeOAgu+8jO+8juODu++8mu+8m++8n++8geOCm+OCnMK0772AwqjvvL7vv6PvvL/jg73jg77jgp3jgp7jgIPku53jgIXjgIbjgIfjg7zigJXigJDvvI/vvLzvvZ7iiKXvvZzigKbigKXigJjigJnigJzigJ3vvIjvvInjgJTjgJXvvLvvvL3vvZvvvZ3jgIgiLDksIu+8i++8jcKxw5fDt++8neKJoO+8nO+8nuKJpuKJp+KInuKItOKZguKZgMKw4oCy4oCz4oSD77+l77yE77+g77+h77yF77yD77yG77yK77ygwqfimIbimIXil4vil4/il47il4ciXSxbImEyYTEiLCLil4bilqHilqDilrPilrLilr3ilrzigLvjgJLihpLihpDihpHihpPjgJMiXSxbImEyYmEiLCLiiIjiiIviiobiiofiioLiioPiiKriiKkiXSxbImEyY2EiLCLiiKfiiKjvv6Lih5Lih5TiiIDiiIMiXSxbImEyZGMiLCLiiKDiiqXijJLiiILiiIfiiaHiiZLiiariiaviiJriiL3iiJ3iiLXiiKviiKwiXSxbImEyZjIiLCLihKvigLDima/ima3imarigKDigKHCtiJdLFsiYTJmZSIsIuKXryJdLFsiYTNiMCIsIu+8kCIsOV0sWyJhM2MxIiwi77yhIiwyNV0sWyJhM2UxIiwi772BIiwyNV0sWyJhNGExIiwi44GBIiw4Ml0sWyJhNWExIiwi44KhIiw4NV0sWyJhNmExIiwizpEiLDE2LCLOoyIsNl0sWyJhNmMxIiwizrEiLDE2LCLPgyIsNl0sWyJhN2ExIiwi0JAiLDUsItCB0JYiLDI1XSxbImE3ZDEiLCLQsCIsNSwi0ZHQtiIsMjVdLFsiYThhMSIsIuKUgOKUguKUjOKUkOKUmOKUlOKUnOKUrOKUpOKUtOKUvOKUgeKUg+KUj+KUk+KUm+KUl+KUo+KUs+KUq+KUu+KVi+KUoOKUr+KUqOKUt+KUv+KUneKUsOKUpeKUuOKVgiJdLFsiYWRhMSIsIuKRoCIsMTksIuKFoCIsOV0sWyJhZGMwIiwi442J44yU44yi442N44yY44yn44yD44y2442R442X44yN44ym44yj44yr442K44y7446c446d446e446O446P44+E446hIl0sWyJhZGRmIiwi442744Cd44Cf4oSW44+N4oSh44qkIiw0LCLjiLHjiLLjiLnjjb7jjb3jjbziiZLiiaHiiKviiK7iiJHiiJriiqXiiKDiiJ/iir/iiLXiiKniiKoiXSxbImIwYTEiLCLkupzllJblqIPpmL/lk4DmhJvmjKjlp7bpgKLokbXojJznqZDmgqrmj6HmuKXml63okaboiqbpr7XmopPlnKfmlqHmibHlrpvlp5Dombvpo7TntaLntr7pro7miJbnsp/oorflronlurXmjInmmpfmoYjpl4fpno3mnY/ku6XkvIrkvY3kvp3lgYnlm7LlpLflp5TlqIHlsInmg5/mhI/mhbDmmJPmpIXngrrnlY/nlbDnp7vntq3nt6/og4PokI7ooaPorILpgZXpgbrljLvkupXkuqXln5/ogrLpg4Hno6/kuIDlo7HmuqLpgLjnqLLojKjoiovpsK/lhYHljbDlkr3lk6Hlm6Dlp7vlvJXpo7Lmt6vog6TolK0iXSxbImIxYTEiLCLpmaLpmbDpmqDpn7vlkIvlj7Plrofng4/nvr3ov4Lpm6jlja/ptZznqrrkuJHnopPoh7zmuKblmJjllITmrJ3olJrpsLvlp6Xljqnmtabnk5zplo/lmYLkupHpgYvpm7LojY/ppIzlj6HllrblrLDlvbHmmKDmm7PmoITmsLjms7PmtKnnkZvnm4jnqY7poLToi7HooZvoqaDpi63mtrLnlqvnm4rpp4XmgqborIHotorplrLmpo7ljq3lhoblnJLloLDlpYTlrrTlu7bmgKjmjqnmj7Tmsr/mvJTngo7nhJTnhZnnh5XnjL/nuIHoibboi5HolpfpgaDpiZvptJvloanmlrzmsZrnlKXlh7nlpK7lpaXlvoDlv5wiXSxbImIyYTEiLCLmirzml7rmqKrmrKfmrrTnjovnv4HopZbptKzptI7pu4TlsqHmspbojbvlhITlsYvmhrboh4bmobbniaHkuZnkv7rljbjmganmuKnnqY/pn7PkuIvljJbku67kvZXkvL3kvqHkvbPliqDlj6/lmInlpI/lq4Hlrrblr6Hnp5HmmofmnpzmnrbmrYzmsrPngavnj4Lnpo3npr7nqLznrofoirHoi5vojITojbfoj6/oj5PonaboqrLlmKnosqjov6bpgY7pnJ7omorkv4Tls6jmiJHniZnnlLvoh6Xoir3om77os4Dpm4XppJPpp5Xku4vkvJrop6Plm57loYrlo4rlu7vlv6vmgKrmgpTmgaLmh5DmiJLmi5DmlLkiXSxbImIzYTEiLCLprYHmmabmorDmtbfngbDnlYznmobntbXoiqXon7nplovpmo7osp3lh7Hlir7lpJblkrPlrrPltJbmhajmpoLmtq/noo3ok4vooZfoqbLpjqfpqrjmtazppqjom5nlnqPmn7/om47piI7lioPlmoflkITlu5Pmi6HmkrnmoLzmoLjmrrvnjbLnorrnqavopprop5LotavovIPpg63plqPpmpTpnanlrablsrPmpb3poY3poY7mjpvnrKDmqKvmqb/morbpsI3mvZ/libLllp3mgbDmi6zmtLvmuIfmu5HokZvopJDovYTkuJTpsLnlj7bmpJvmqLrpnoTmoKrlhZznq4PokrLph5zpjozlmZvptKjmoKLojIXokLEiXSxbImI0YTEiLCLnsqXliIjoi4Xnk6bkub7kvoPlhqDlr5LliIrli5jli6flt7vllprloKrlp6blrozlrpjlr5vlubLlubnmgqPmhJ/mhaPmhr7mj5vmlaLmn5HmoZPmo7rmrL7mrZPmsZfmvKLmvpfmvYXnkrDnlJjnm6PnnIvnq7/nrqHnsKHnt6nnvLbnv7Dogp3oiabojp7oprPoq4zosqvpgoTpkZHplpPplpHplqLpmaXpn5PppKjoiJjkuLjlkKvlsrjlt4znjqnnmYznnLzlsqnnv6votIvpm4HpoJHpoZTpoZjkvIHkvI7ljbHllpzlmajln7rlpYflrInlr4TlspDluIzlub7lv4zmj67mnLrml5fml6LmnJ/mo4vmo4QiXSxbImI1YTEiLCLmqZ/luLDmr4XmsJfmsb3nlb/npYjlraPnqIDntIDlvr3opo/oqJjosrTotbfou4zovJ3po6LpqI7prLzkuoDlgb3lhIDlppPlrpzmiK/mioDmk6zmrLrniqDnlpHnpYfnvqnon7voqrzorbDmjqzoj4rpnqDlkInlkIPllqvmoZTmqZjoqbDnoKfmnbXpu43ljbTlrqLohJromZDpgIbkuJjkuYXku4fkvJHlj4rlkLjlrq7lvJPmgKXmlZHmnL3msYLmsbLms6PngbjnkIPnqbbnqq7nrIjntJrns77ntabml6fniZvljrvlsYXlt6jmi5Lmi6DmjJnmuKDomZroqLHot53pi7jmvIHnpqbprZrkuqjkuqvkuqwiXSxbImI2YTEiLCLkvpvkvqDlg5HlhYfnq7blhbHlh7bljZTljKHljb/lj6vllqzlooPls6HlvLflvYrmgK/mgZDmga3mjJ/mlZnmqYvms4Hni4Lni63nn6/og7johIXoiIjolY7pg7fpj6Hpn7/ppZfpqZrku7Dlh53lsK3mmoHmpa3lsYDmm7LmpbXnjonmoZDnsoHlg4Xli6TlnYflt77pjKbmlqTmrKPmrL3nkLTnpoHnpr3nrYvnt4roirnoj4zoob/opZ/orLnov5Hph5HlkJ/pioDkuZ3lgLblj6XljLrni5fnjpbnn6noi6bouq/pp4bpp4jpp5LlhbfmhJromZ7llrDnqbrlgbblr5PpgYfpmoXkuLLmq5vph6flsZHlsYgiXSxbImI3YTEiLCLmjpjnqp/mspPpnbTovaHnqqrnhorpmojnsoLmoJfnubDmoZHpjazli7LlkJvolqvoqJPnvqTou43pg6HljabooojnpYHkv4Llgr7liJHlhYTllZPlnK3nj6rlnovlpZHlvaLlvoTmgbXmhbbmhafmhqnmjrLmkLrmlazmma/moYLmuJPnlabnqL3ns7vntYzntpnnuYvnvavojI7ojYrom43oqIjoqaPorabou73poJrpto/oirjov47pr6jliofmiJ/mkoPmv4DpmpnmoYHlgpHmrKDmsbrmvZTnqbTntZDooYDoqKPmnIjku7blgLnlgKblgaXlhbzliLjliaPllqflnI/loIXlq4zlu7rmhrLmh7jmi7PmjbIiXSxbImI4YTEiLCLmpJzmqKnnib3niqznjK7noJTnoa/ntbnnnIzogqnopovorJnos6Lou5LpgaPpjbXpmbrpoZXpqJPpubjlhYPljp/ljrPlubvlvKbmuJvmupDnjoTnj77ntYPoiLfoqIDoq7rpmZDkuY7lgIvlj6Tlkbzlm7rlp5HlraTlt7HluqvlvKfmiLjmlYXmnq/muZbni5Dns4roorTogqHog6Hoj7DomY7oqofot6jpiLfpm4fpoafpvJPkupTkupLkvI3ljYjlkYnlkL7lqK/lvozlvqHmgp/moqfmqo7nkZrnooHoqp7oqqTorbfphpDkuZ7pr4nkuqTkvbzkvq/lgJnlgJblhYnlhazlip/lirnli77ljprlj6PlkJEiXSxbImI5YTEiLCLlkI7llonlnZHlnqLlpb3lrZTlrZ3lro/lt6Xlt6flt7flubjluoPluprlurflvJjmgZLmhYzmipfmi5jmjqfmlLvmmILmmYPmm7Tmna3moKHmopfmp4vmsZ/mtKrmtanmuK/mup3nlLLnmofnoaznqL/ns6DntIXntJjntZ7ntrHogJXogIPogq/ogrHohZToho/oiKrojZLooYzooaHorJvosqLos7zpg4rphbXpibHnoL/pi7zplqTpmY3poIXpppnpq5jptLvliZvliqvlj7flkIjlo5Xmi7fmv6DosarovZ/purnlhYvliLvlkYrlm73nqYDphbfptaDpu5LnjYTmvInohbDnlJHlv73mg5rpqqjni5vovrwiXSxbImJhYTEiLCLmraTpoIPku4rlm7DlnaTlor7lqZrmgajmh4fmmI/mmIbmoLnmorHmt7fnl5XntLroia7prYLkupvkvZDlj4nllIblta/lt6blt67mn7vmspnnkbPnoILoqZDpjpboo5/lnZDluqfmjKvlgrXlgqzlho3mnIDlk4nloZ7lprvlrrDlvanmiY3mjqHmoL3mrbPmuIjngb3ph4fnioDnoJXnoKbnpa3mlo7ntLDoj5zoo4HovInpmpvliaTlnKjmnZDnvarosqHlhrTlnYLpmKrloLrmporogrTlkrLltI7ln7znopXpt7rkvZzliYrlkovmkL7mmKjmnJTmn7XnqoTnrZbntKLpjK/moZzprq3nrLnljJnlhorliLciXSxbImJiYTEiLCLlr5/mi7bmkq7mk6bmnK3mrrrolqnpm5HnmpDpr5bmjYzpjIbprqvnmr/mmZLkuInlgpjlj4LlsbHmg6jmkpLmlaPmoZ/nh6bnj4rnlKPnrpfnuoLompXoroPos5vphbjppJDmlqzmmqvmrovku5Xku5TkvLrkvb/liLrlj7jlj7Lll6Plm5vlo6vlp4vlp4nlp7/lrZDlsY3luILluKvlv5fmgJ3mjIfmlK/lrZzmlq/mlr3ml6jmnp3mraLmrbvmsI/njYXnpYnnp4Hns7jntJnntKvogqLohILoh7PoppboqZ7oqanoqaboqozoq67os4fos5zpm4zpo7zmra/kuovkvLzkvo3lhZDlrZflr7rmhYjmjIHmmYIiXSxbImJjYTEiLCLmrKHmu4vmsrvniL7nkr3nl5Tno4HnpLrogIzogLPoh6rokpTovp7msZDpub/lvI/orZjptKvnq7rou7jlro3pm6vkuIPlj7Hln7flpLHlq4nlrqTmgonmub/mvIbnlr7os6rlrp/olIDnr6DlgbLmn7Toip3lsaHolYrnuJ7oiI7lhpnlsITmjajotabmlpznha7npL7ntJfogIXorJ3ou4rpga7om4fpgqrlgJ/li7rlsLrmnZPngbzniLXphYzph4jpjKvoi6Xlr4LlvLHmg7nkuLvlj5blrojmiYvmnLHmrorni6nnj6DnqK7ohavotqPphZLpppblhJLlj5flkarlr7/mjojmqLnntqzpnIDlm5rlj47lkagiXSxbImJkYTEiLCLlrpflsLHlt57kv67mhIHmi77mtLLnp4Dnp4vntYLnuY3nv5Loh63oiJ/okpDooYbopbLorpDoubTovK/pgLHphYvphazpm4bphpzku4DkvY/lhYXljYHlvpPmiI7mn5TmsYHmuIvnjaPnuKbph43pioPlj5TlpJnlrr/mt5HnpZ3nuK7nspvlob7nhp/lh7rooZPov7Dkv4rls7vmmKXnnqznq6PoiJzpp7/lh4blvqrml6zmpa/mronmt7PmupbmvaTnm77ntJTlt6HpgbXphofpoIblh6bliJ3miYDmmpHmm5nmuJrlurbnt5LnvbLmm7jolq/ol7foq7jliqnlj5nlpbPluo/lvpDmgZXpi6TpmaTlgrflhJ8iXSxbImJlYTEiLCLli53ljKDljYflj6zlk6jllYbllLHlmJflpajlpr7lqLzlrrXlsIblsI/lsJHlsJrluoTluorlu6DlvbDmib/mioTmi5vmjozmjbfmmIfmmIzmmK3mmbbmnb7moqLmqJ/mqLXmsrzmtojmuInmuZjnhLznhKbnhafnl4fnnIHnoZ3npIHnpaXnp7Dnq6DnrJHnsqfntLnogpboj5bokovolYnooZ3oo7PoqJ/oqLzoqZToqbPosaHos57phqTpiabpjb7pkJjpmpzpnpjkuIrkuIjkuJ7kuZflhpflibDln47loLTlo4zlrKLluLjmg4Xmk77mnaHmnZbmtYTnirbnlbPnqaPokrjorbLphrjpjKDlmLHln7Tpo74iXSxbImJmYTEiLCLmi63mpI3mrpbnh63nuZTogbfoibLop6bpo5/onZXovrHlsLvkvLjkv6HkvrXllIflqKDlr53lr6nlv4PmhY7mjK/mlrDmmYvmo67mppvmtbjmt7HnlLPnlrnnnJ/npZ7np6bntLPoh6Poiq/olqropqroqLrouqvovpvpgLLph53pnIfkurrku4HliIPlobXlo6zlsIvnlJrlsL3ohY7oqIrov4XpmaPpna3nrKXoq4/poIjphaLlm7PljqjpgJflkLnlnoLluKXmjqjmsLTngornnaHnsovnv6DoobDpgYLphZTpjJDpjJjpmo/nkZ7pq4TltIfltanmlbDmnqLotqjpm5vmja7mnYnmpJnoj4XpoJfpm4Doo74iXSxbImMwYTEiLCLmvoTmkbrlr7jkuJbngKznlZ3mmK/lh4TliLbli6Llp5PlvoHmgKfmiJDmlL/mlbTmmJ/mmbTmo7LmoJbmraPmuIXnibLnlJ/nm5vnsr7ogZblo7Doo73opb/oqqDoqpPoq4vpgJ3phpLpnZLpnZnmlonnqI7ohIbpmrvluK3mg5zmiJrmlqXmmJTmnpDnn7PnqY3nsY3nuL7ohIrosqzotaTot6HouZ/noqnliIfmi5nmjqXmkYLmipjoqK3nqoPnr4Doqqzpm6rntbboiIzonYnku5nlhYjljYPljaDlrqPlsILlsJblt53miKbmiYfmkrDmoJPmoLTms4nmtYXmtJfmn5PmvZznhY7nhb3ml4vnqb/nrq3nt5oiXSxbImMxYTEiLCLnuYrnvqjohbroiJvoiLnolqboqa7os47ot7Xpgbjpgbfpiq3pipHploPprq7liY3lloTmvLjnhLblhajnpoXnuZXohrPns47lmYzloZHlsqjmjqrmm77mm73mpZrni5nnlo/nlo7npI7npZbnp5/nspfntKDntYTomIfoqLTpmLvpgaHpvKDlg6flibXlj4zlj6LlgInllqrlo67lpY/niL3lrovlsaTljJ3mg6Pmg7PmjZzmjoPmjL/mjrvmk43ml6nmm7nlt6Pmp43mp73mvJXnh6Xkuonnl6nnm7jnqpPns5/nt4/ntpzogaHojYnojZjokazokrzol7voo4XotbDpgIHpga3pjpfpnJzpqJLlg4/lopfmho4iXSxbImMyYTEiLCLoh5PolLXotIjpgKDkv4PlgbTliYfljbPmga/mjYnmnZ/muKzotrPpgJ/kv5flsZ7os4rml4/ntprljZLoopblhbbmj4PlrZjlravlsIrmkI3mnZHpgZzku5blpJrlpKrmsbDoqZHllL7loJXlpqXmg7DmiZPmn4HoiLXmpZXpmYDpp4TpqKjkvZPloIblr77ogJDlsrHluK/lvoXmgKDmhYvmiLTmm7/ms7Dmu57og47ohb/oi5TooovosrjpgIDpgK7pmorpu5vpr5vku6Plj7DlpKfnrKzpho3poYzpt7nmu53ngKfljZPllYTlroXmiZjmip7mi5PmsqLmv6/nkKLoqJfpkLjmv4Hoq77ojLjlh6fom7jlj6oiXSxbImMzYTEiLCLlj6nkvYbpgZTovrDlparohLHlt73nq6rovr/mo5rosLfni7jpsYjmqL3oqrDkuLnljZjlmIblnabmi4XmjqLml6bmrY7mt6HmuZvngq3nn63nq6/nrqrntrvogL3og4bom4voqpXpjZvlm6Plo4flvL7mlq3mmpbmqoDmrrXnlLfoq4flgKTnn6XlnLDlvJvmgaXmmbrmsaDnl7TnqJrnva7oh7TonJjpgYXpprPnr4nnlZznq7nnrZHok4TpgJDnp6nnqpLojLblq6HnnYDkuK3ku7Llrpnlv6Dmir3mmLzmn7Hms6jomavoobfoqLvphY7pi7Ppp5DmqJfngKbnjKroi6fokZfosq/kuIHlhYblh4vllovlr7UiXSxbImM0YTEiLCLluJbluLPluoHlvJTlvLXlvavlvrTmh7LmjJHmmqLmnJ3mva7niZLnlLrnnLrogbTohLnohbjonbboqr/oq5zotoXot7PpiprplbfpoILps6Xli4XmjZfnm7TmnJXmsojnj43os4Ppjq7pmbPmtKXlopzmpI7mp4zov73pjprnl5vpgJrloZrmoILmjrTmp7vkvYPmvKzmn5jovrvolKbntrTpjZTmpL/mvbDlnarlo7flrKzntKzniKrlkIrph6PptrTkuq3kvY7lgZzlgbXliYPosp7lkYjloKTlrprluJ3lupXluq3lu7flvJ/mgozmirXmjLrmj5Dmoq/msYDnoofnpo7nqIvnt6DoiYfoqILoq6bouYTpgJMiXSxbImM1YTEiLCLpgrjphK3ph5jpvI7ms6XmkZjmk6LmlbXmu7TnmoTnrJvpganpj5Hmurrlk7LlvrnmkqTovY3ov63piYTlhbjloavlpKnlsZXlupfmt7vnuo/nlJzosrzou6LpoZvngrnkvJ3mrr/mvrHnlLDpm7vlhY7lkJDloLXloZflpqzlsaDlvpLmlpfmnZzmuKHnmbvoj5/os63pgJTpg73pjY3noKXnoLrliqrluqblnJ/lpbTmgJLlgJLlhZrlhqzlh43liIDllJDloZTloZjlpZflrpXls7bltovmgrzmipXmkK3mnbHmoYPmorzmo5/nm5fmt5jmua/mtpvnga/nh4jlvZPnl5jnpbfnrYnnrZTnrZLns5bntbHliLAiXSxbImM2YTEiLCLokaPolanol6ToqI7orITosYbouI/pgIPpgI/pkJnpmbbpoK3pqLDpl5jlg43li5XlkIzloILlsI7mhqfmkp7mtJ7nnrPnq6Xog7TokITpgZPpioXls6DptIfljL/lvpflvrPmtpznibnnnaPnpr/nr6Tmr5Lni6zoqq3moIPmqaHlh7jnqoHmpLTlsYrps7boi6vlr4XphYnngJ7lmbjlsa/mg4fmlabmsozosZrpgYHpoJPlkZHmm4fpiI3lpYjpgqPlhoXkuY3lh6rolpnorI7ngZjmjbrpjYvmpaLpprTnuITnlbfljZfmpaDou5/pm6PmsZ3kuozlsLzlvJDov6nljILos5Hogonombnlu7/ml6XkubPlhaUiXSxbImM3YTEiLCLlpoLlsL/pn67ku7vlporlv43oqo3mv6HnprDnpaLlr6fokbHnjKvnhrHlubTlv7Xmjbvmkprnh4PnspjkuYPlu7zkuYvln5zlmqLmgqnmv4PntI3og73ohLPohr/ovrLoppfomqTlt7Tmiormkq3opofmnbfms6LmtL7nkLbnoLTlqYbnvbXoiq3ppqzkv7Plu4Pmi53mjpLmlZfmna/nm4PniYzog4zogrrovKnphY3lgI3ln7nlqpLmooXmpbPnhaTni73osrflo7Los6DpmarpgJnonb/np6Tnn6fokKnkvK/liaXljZrmi43mn4/ms4rnmb3nrpTnspXoiLboloTov6vmm53mvKDniIbnuJvojqvpp4HpuqYiXSxbImM4YTEiLCLlh73nrrHnobLnrrjogofnrYjmq6jluaHogoznlZHnlaDlhavpiaLmuoznmbrphpfpq6rkvJDnvbDmipznrY/plqXps6nlmbrloZnom6TpmrzkvLTliKTljYrlj43lj5vluIbmkKzmlpHmnb/msL7msY7niYjniq/nj63nlZTnuYHoiKzol6nosqnnr4Tph4bnhanpoJLpo6/mjL3mmannlarnm6Tno5DolYPom67ljKrljZHlkKblpoPluoflvbzmgrLmiYnmibnmiqvmlpDmr5Tms4znlrLnmq7nopHnp5jnt4vnvbfogqXooqvoqrnosrvpgb/pnZ7po5vmqIvnsLjlgpnlsL7lvq7mnofmr5jnkLXnnInnvo4iXSxbImM5YTEiLCLpvLvmn4rnqJfljLnnlovpq63lvabohp3oj7HogpjlvLzlv4XnlaLnrYbpgLzmoaflp6vlqpvntJDnmb7orKzkv7XlvarmqJnmsLfmvILnk6LnpajooajoqZXosbnlu5/mj4/nl4Xnp5Loi5fpjKjpi7Lokpzom63psK3lk4HlvazmlozmtZzngJXosqfos5PpoLvmlY/nk7bkuI3ku5jln6DlpKvlqablr4zlhqjluIPlupzmgJbmibbmlbfmlqfmma7mta7niLbnrKbohZDohproipnorZzosqDos6botbTpmJzpmYTkvq7mkqvmraboiJ7okaHolarpg6jlsIHmpZPpoqjokbrolZfkvI/lia/lvqnluYXmnI0iXSxbImNhYTEiLCLnpo/ohbnopIfopobmt7XlvJfmiZXmsrjku4/nianprpLliIblkLvlmbTlorPmhqTmia7nhJrlpa7nsonns57ntJvpm7DmlofogZ7kuJnkvbXlhbXloYDluaPlubPlvIrmn4TkuKbolL3plonpmZvnsbPpoIHlg7vlo4HnmZbnoqfliKXnnqXolJHnroblgY/lpInniYfnr4fnt6jovrrov5TpgY3kvr/li4nlqKnlvIHpnq3kv53oiJfpi6rlnIPmjZXmrannlKvoo5zovJTnqYLli5/lopPmhZXmiIrmmq7mr43nsL/oj6nlgKPkv7jljIXlkYbloLHlpYnlrp3ls7Dls6/ltKnlupbmirHmjafmlL7mlrnmnIsiXSxbImNiYTEiLCLms5Xms6Hng7nnoLLnuKvog57oirPokIzok6zonILopJLoqKrosYrpgqbpi5Lpo73ps7PptazkuY/kuqHlgo3liZblnYrlpqjluL3lv5jlv5nmiL/mmrTmnJvmn5Dmo5LlhpLntKHogqrohqjorIDosozosr/pib7pmLLlkKDpoKzljJflg5XljZzloqjmkrLmnLTniafnnabnqYbph6bli4PmsqHmrobloIDluYzlpZTmnKznv7vlh6Hnm4bmkanno6jprZTpurvln4vlprnmmKfmnprmr47lk6nmp5nluZXohpzmnpXprqrmn77psZLmoZ3kuqbkv6Plj4jmirnmnKvmsqvov4Tkvq3nua3pur/kuIfmhaLmuoAiXSxbImNjYTEiLCLmvKvolJPlkbPmnKrprYXlt7PnrpXlsqzlr4bonJzmuYrok5HnqJTohIjlppnnso3msJHnnKDli5nlpKLnhKHniZ/nn5vpnKfptaHmpIvlqb/lqJjlhqXlkI3lkb3mmI7nm5/ov7fpipjps7Tlp6rniZ3mu4XlhY3mo4nntr/nt6zpnaLpurrmkbjmqKHojILlpoTlrZ/mr5vnjJvnm7LntrLogJfokpnlhLLmnKjpu5nnm67mnaLli7/ppIXlsKTmiLvnsb7osrDllY/mgrbntIvploDljIHkuZ/lhrblpJzniLrogLbph47lvKXnn6LljoTlvbnntITolqzoqLPouo3pnZbmn7Polq7pkZPmhInmhIjmsrnnmZIiXSxbImNkYTEiLCLoq63ovLjllK/kvZHlhKrli4flj4vlrqXlub3mgqDmhoLmj5bmnInmn5rmuafmtoznjLbnjLfnlLHnpZDoo5XoqpjpgYrpgpHpg7Xpm4Tono3lpJXkuojkvZnkuI7oqonovL/poJDlgq3lubzlppblrrnlurjmj5rmj7rmk4Hmm5zmpYrmp5jmtIvmurbnhpTnlKjnqq/nvorogIDokYnok4nopoHorKHouIrpgaXpmb3ppIrmhb7mipHmrLLmsoPmtbTnv4znv7zmt4DnvoXonrroo7jmnaXojrHpoLzpm7fmtJvntaHokL3pharkubHljbXltZDmrITmv6vol43omK3opqfliKnlkI/lsaXmnY7moqjnkIbnkoMiXSxbImNlYTEiLCLnl6Loo4/oo6Hph4zpm6Lpmbjlvovnjofnq4vokY7mjqDnlaXlionmtYHmupznkInnlZnnoavnspLpmobnq5zpvo3kvrbmha7ml4XomZzkuobkuq7lg5rkuKHlh4zlr67mlpnmooHmtrznjJ/nmYLnnq3nqJzns6foia/oq5Lpgbzph4/pmbXpoJjlipvnt5HlgKvljpjmnpfmt4vnh5DnkLPoh6jovKrpmqPpsZfpup/nkaDloYHmtpnntK/poZ7ku6TkvLbkvovlhrflirHltrrmgJznjrLnpLzoi5PpiLTpmrfpm7bpnIrpupfpvaLmmqbmrbTliJfliqPng4joo4Llu4nmgYvmhpDmvKPnhYnnsL7nt7Toga8iXSxbImNmYTEiLCLok67pgKPpjKzlkYLpra/mq5Pngonos4Lot6/pnLLlirTlqYHlu4rlvITmnJfmpbzmppTmtarmvI/niaLni7znr63ogIHogb7onYvpg47lha3pupPnpoTogovpjLLoq5blgK3lkozoqbHmraros4TohIfmg5HmnqDpt7LkupnkupjpsJDoqavol4HolajmpIDmub7nopfohZUiXSxbImQwYTEiLCLlvIzkuJDkuJXkuKrkuLHkuLbkuLzkuL/kuYLkuZbkuZjkuoLkuoXosavkuoroiJLlvI3kuo7kup7kup/kuqDkuqLkurDkurPkurbku47ku43ku4Tku4bku4Lku5fku57ku63ku5/ku7fkvInkvZrkvLDkvZvkvZ3kvZfkvYfkvbbkvojkvo/kvpjkvbvkvankvbDkvpHkva/kvobkvpblhJjkv5Tkv5/kv47kv5jkv5vkv5Hkv5rkv5Dkv6Tkv6XlgJrlgKjlgJTlgKrlgKXlgIXkvJzkv7blgKHlgKnlgKzkv77kv6/lgJHlgIblgYPlgYfmnIPlgZXlgZDlgYjlgZrlgZblgazlgbjlgoDlgprlgoXlgrTlgrIiXSxbImQxYTEiLCLlg4nlg4rlgrPlg4Llg5blg57lg6Xlg63lg6Plg67lg7nlg7XlhInlhIHlhILlhJblhJXlhJTlhJrlhKHlhLrlhLflhLzlhLvlhL/lhYDlhZLlhYzlhZTlhaLnq7jlhanlharlha7lhoDlhoLlm5jlhozlhonlho/lhpHlhpPlhpXlhpblhqTlhqblhqLlhqnlhqrlhqvlhrPlhrHlhrLlhrDlhrXlhr3lh4Xlh4nlh5vlh6DomZXlh6nlh63lh7Dlh7Xlh77liITliIvliJTliI7liKfliKrliK7liLPliLnliY/liYTliYvliYzliZ7liZTliarlibTlianlibPlib/lib3lio3lipTlipLlibHliojlipHovqgiXSxbImQyYTEiLCLovqfliqzliq3lirzlirXli4Hli43li5fli57li6Pli6bpo63li6Dli7Pli7Xli7jli7nljIbljIjnlLjljI3ljJDljI/ljJXljJrljKPljK/ljLHljLPljLjljYDljYbljYXkuJfljYnljY3lh5bljZ7ljanlja7lpJjljbvljbfljoLljpbljqDljqbljqXljq7ljrDljrblj4PnsJLpm5nlj5/mm7znh67lj67lj6jlj63lj7rlkIHlkL3lkYDlkKzlkK3lkLzlkK7lkLblkKnlkJ3lkY7lko/lkbXlko7lkZ/lkbHlkbflkbDlkpLlkbvlkoDlkbblkoTlkpDlkoblk4flkqLlkrjlkqXlkqzlk4Tlk4jlkqgiXSxbImQzYTEiLCLlkqvlk4LlkqTlkr7lkrzlk5jlk6Xlk6bllI/llJTlk73lk67lk63lk7rlk6LllLnllYDllaPllYzllK7llZzllYXllZbllZfllLjllLPllZ3llpnlloDlkq/llorllp/llbvllb7llpjllp7llq7llbzlloPllqnllofllqjll5rll4Xll5/ll4Tll5zll6Tll5TlmJTll7flmJbll77ll73lmJvll7nlmY7lmZDnh5/lmLTlmLblmLLlmLjlmavlmaTlmK/lmazlmarlmoblmoDlmorlmqDlmpTlmo/lmqXlmq7lmrblmrTlm4Llmrzlm4Hlm4Plm4Dlm4jlm47lm5Hlm5Plm5flm67lm7nlnIDlm7/lnITlnIkiXSxbImQ0YTEiLCLlnIjlnIvlnI3lnJPlnJjlnJbll4flnJzlnKblnLflnLjlnY7lnLvlnYDlnY/lnanln4DlnojlnaHlnb/lnonlnpPlnqDlnrPlnqTlnqrlnrDln4Pln4bln5Tln5Lln5PloIrln5bln6PloIvloJnloJ3lobLloKHloaLloYvlobDmr4DloZLloL3lobnlooXlornlop/loqvlorrlo57lorvlorjloq7lo4Xlo5Plo5Hlo5flo5nlo5jlo6Xlo5zlo6Tlo5/lo6/lo7rlo7nlo7vlo7zlo73lpILlpIrlpJDlpJvmoqblpKXlpKzlpK3lpLLlpLjlpL7nq5LlpZXlpZDlpY7lpZrlpZjlpaLlpaDlpaflpazlpakiXSxbImQ1YTEiLCLlpbjlpoHlpp3kvZ7kvqvlpqPlprLlp4blp6jlp5zlpo3lp5nlp5rlqKXlqJ/lqJHlqJzlqInlqJrlqYDlqazlqYnlqLXlqLblqaLlqarlqprlqrzlqr7lq4vlq4Llqr3lq6Plq5flq6blq6nlq5blq7rlq7vlrIzlrIvlrJblrLLlq5DlrKrlrLblrL7lrYPlrYXlrYDlrZHlrZXlrZrlrZvlraXlranlrbDlrbPlrbXlrbjmlojlrbrlroDlroPlrqblrrjlr4Plr4flr4nlr5Tlr5Dlr6Tlr6blr6Llr57lr6Xlr6vlr7Dlr7blr7PlsIXlsIflsIjlsI3lsJPlsKDlsKLlsKjlsLjlsLnlsYHlsYblsY7lsZMiXSxbImQ2YTEiLCLlsZDlsY/lrbHlsazlsa7kuaLlsbblsbnlsozlspHlspTlppvlsqvlsrvlsrblsrzlsrfls4Xlsr7ls4fls5nls6nls73ls7rls63ltozls6rltIvltJXltJfltZzltJ/ltJvltJHltJTltKLltJrltJnltJjltYzltZLltY7ltYvltazltbPltbbltofltoTltoLltqLltp3ltqzltq7ltr3ltpDltrfltrzlt4nlt43lt5Plt5Llt5blt5vlt6vlt7Llt7XluIvluJrluJnluJHluJvluLbluLfluYTluYPluYDluY7luZfluZTluZ/luaLluaTluYflubXlubblubrpurzlub/luqDlu4Hlu4Llu4jlu5Dlu48iXSxbImQ3YTEiLCLlu5blu6Plu53lu5rlu5vlu6Llu6Hlu6jlu6nlu6zlu7Hlu7Plu7Dlu7Tlu7jlu77lvIPlvInlvZ3lvZzlvIvlvJHlvJblvKnlvK3lvLjlvYHlvYjlvYzlvY7lvK/lvZHlvZblvZflvZnlvaHlva3lvbPlvbflvoPlvoLlvb/lvorlvojlvpHlvoflvp7lvpnlvpjlvqDlvqjlvq3lvrzlv5blv7vlv6Tlv7jlv7Hlv53mgrPlv7/mgKHmgaDmgJnmgJDmgKnmgI7mgLHmgJvmgJXmgKvmgKbmgI/mgLrmgZrmgYHmgarmgbfmgZ/mgYrmgYbmgY3mgaPmgYPmgaTmgYLmgazmgavmgZnmgoHmgo3mg6fmgoPmgpoiXSxbImQ4YTEiLCLmgoTmgpvmgpbmgpfmgpLmgqfmgovmg6Hmgrjmg6Dmg5PmgrTlv7Dmgr3mg4bmgrXmg5jmhY3mhJXmhIbmg7bmg7fmhIDmg7Tmg7rmhIPmhKHmg7vmg7HmhI3mhI7mhYfmhL7mhKjmhKfmhYrmhL/mhLzmhKzmhLTmhL3mhYLmhYTmhbPmhbfmhZjmhZnmhZrmhavmhbTmha/mhaXmhbHmhZ/mhZ3mhZPmhbXmhpnmhpbmhofmhqzmhpTmhprmhormhpHmhqvmhq7mh4zmh4rmh4nmh7fmh4jmh4Pmh4bmhrrmh4vnvbnmh43mh6bmh6Pmh7bmh7rmh7Tmh7/mh73mh7zmh77miIDmiIjmiInmiI3miIzmiJTmiJsiXSxbImQ5YTEiLCLmiJ7miKHmiKrmiK7miLDmiLLmiLPmiYHmiY7miZ7miaPmiZvmiaDmiajmibzmioLmionmib7mipLmipPmipbmi5TmioPmipTmi5fmi5Hmirvmi4/mi7/mi4bmk5Tmi4jmi5zmi4zmi4rmi4Lmi4fmipvmi4nmjIzmi67mi7HmjKfmjILmjIjmi6/mi7XmjZDmjL7mjY3mkJzmjY/mjpbmjo7mjoDmjqvmjbbmjqPmjo/mjonmjp/mjrXmjavmjanmjr7mj6nmj4Dmj4bmj6Pmj4nmj5Lmj7bmj4TmkJbmkLTmkIbmkJPmkKbmkLbmlJ3mkJfmkKjmkI/mkafmka/mkbbmkY7mlKrmkpXmkpPmkqXmkqnmkojmkrwiXSxbImRhYTEiLCLmk5rmk5Lmk4Xmk4fmkrvmk5jmk4Lmk7Hmk6foiInmk6Dmk6Hmiqzmk6Pmk6/mlKzmk7bmk7Tmk7Lmk7rmlIDmk73mlJjmlJzmlIXmlKTmlKPmlKvmlLTmlLXmlLfmlLbmlLjnlYvmlYjmlZbmlZXmlY3mlZjmlZ7mlZ3mlbLmlbjmloLmloPorormlpvmlp/mlqvmlrfml4Pml4bml4Hml4Tml4zml5Lml5vml5nml6Dml6Hml7HmnbLmmIrmmIPml7vmnbPmmLXmmLbmmLTmmJzmmY/mmYTmmYnmmYHmmZ7mmZ3mmaTmmafmmajmmZ/mmaLmmbDmmoPmmojmmo7mmonmmoTmmpjmmp3mm4Hmmrnmm4nmmr7mmrwiXSxbImRiYTEiLCLmm4Tmmrjmm5bmm5rmm6DmmL/mm6bmm6nmm7Dmm7Xmm7fmnI/mnJbmnJ7mnKbmnKfpnLjmnK7mnL/mnLbmnYHmnLjmnLfmnYbmnZ7mnaDmnZnmnaPmnaTmnonmnbDmnqnmnbzmnarmnozmnovmnqbmnqHmnoXmnrfmn6/mnrTmn6zmnrPmn6nmnrjmn6Tmn57mn53mn6Lmn67mnrnmn47mn4bmn6fmqpzmoJ7moYbmoKnmoYDmoY3moLLmoY7morPmoKvmoZnmoaPmobfmob/mop/moo/moq3mopTmop3mopvmooPmqq7mornmobTmorXmoqDmorrmpI/moo3mob7mpIHmo4rmpIjmo5jmpKLmpKbmo6HmpIzmo40iXSxbImRjYTEiLCLmo5Tmo6fmo5XmpLbmpJLmpITmo5fmo6PmpKXmo7nmo6Dmo6/mpKjmpKrmpJrmpKPmpKHmo4bmpbnmpbfmpZzmpbjmpavmpZTmpb7mpa7mpLnmpbTmpL3mpZnmpLDmpaHmpZ7mpZ3mpoHmparmprLmpq7mp5Dmpr/mp4Hmp5Pmpr7mp47lr6jmp4rmp53mprvmp4PmpqfmqK7mppHmpqDmppzmppXmprTmp57mp6jmqILmqJvmp7/mrIrmp7nmp7Lmp6fmqIXmprHmqJ7mp63mqJTmp6vmqIrmqJLmq4HmqKPmqJPmqYTmqIzmqbLmqLbmqbjmqYfmqaLmqZnmqabmqYjmqLjmqKLmqpDmqo3mqqDmqoTmqqLmqqMiXSxbImRkYTEiLCLmqpfomJfmqrvmq4Pmq4LmqrjmqrPmqqzmq57mq5Hmq5/mqqrmq5rmq6rmq7vmrIXomJbmq7rmrJLmrJbprLHmrJ/mrLjmrLfnm5zmrLnpo67mrYfmrYPmrYnmrZDmrZnmrZTmrZvmrZ/mraHmrbjmrbnmrb/mroDmroTmroPmro3mrpjmrpXmrp7mrqTmrqrmrqvmrq/mrrLmrrHmrrPmrrfmrrzmr4bmr4vmr5Pmr5/mr6zmr6vmr7Pmr6/pur7msIjmsJPmsJTmsJvmsKTmsKPmsZ7msZXmsaLmsarmsoLmso3msprmsoHmspvmsb7msajmsbPmspLmspDms4Tms7Hms5Pmsr3ms5fms4Xms53msq7msrHmsr4iXSxbImRlYTEiLCLmsrrms5vms6/ms5nms6rmtJ/ooY3mtLbmtKvmtL3mtLjmtJnmtLXmtLPmtJLmtIzmtaPmtpPmtaTmtZrmtbnmtZnmto7mtpXmv6TmtoXmt7nmuJXmuIrmtrXmt4fmt6bmtrjmt4bmt6zmt57mt4zmt6jmt5Lmt4Xmt7rmt5nmt6Tmt5Xmt6rmt67muK3mua7muK7muJnmubLmuZ/muL7muKPmuavmuKvmubbmuY3muJ/muYPmuLrmuY7muKTmu7/muJ3muLjmuoLmuqrmupjmu4nmurfmu5Pmur3muq/mu4TmurLmu5Tmu5Xmuo/muqXmu4Lmup/mvYHmvJHngYzmu6zmu7jmu77mvL/mu7LmvLHmu6/mvLLmu4wiXSxbImRmYTEiLCLmvL7mvJPmu7fmvobmvbrmvbjmvoHmvoDmva/mvZvmv7Pmva3mvoLmvbzmvZjmvo7mvpHmv4LmvabmvrPmvqPmvqHmvqTmvrnmv4bmvqrmv5/mv5Xmv6zmv5Tmv5jmv7Hmv67mv5vngInngIvmv7rngJHngIHngI/mv77ngJvngJrmvbTngJ3ngJjngJ/ngLDngL7ngLLngZHngaPngpnngpLngq/ng7HngqzngrjngrPngq7ng5/ng4vng53ng5nnhInng73nhJznhJnnhaXnhZXnhojnhabnhaLnhYznhZbnhaznho/nh7vnhoTnhpXnhqjnhqznh5fnhrnnhr7nh5Lnh4nnh5Tnh47nh6Dnh6znh6fnh7Xnh7wiXSxbImUwYTEiLCLnh7nnh7/niI3niJDniJvniKjniK3niKzniLDniLLniLvniLzniL/niYDniYbniYvniZjnibTnib7nioLnioHniofnipLnipbniqLniqfnirnnirLni4Pni4bni4Tni47ni5Lni6Lni6Dni6Hni7nni7flgI/njJfnjIrnjJznjJbnjJ3njLTnjK/njKnnjKXnjL7njY7njY/pu5jnjZfnjarnjajnjbDnjbjnjbXnjbvnjbrnj4jnjrPnj47njrvnj4Dnj6Xnj67nj57nkqLnkIXnka/nkKXnj7jnkLLnkLrnkZXnkL/nkZ/nkZnnkYHnkZznkannkbDnkaPnkarnkbbnkb7nkovnkp7nkqfnk4rnk4/nk5Tnj7EiXSxbImUxYTEiLCLnk6Dnk6Pnk6fnk6nnk67nk7Lnk7Dnk7Hnk7jnk7fnlITnlIPnlIXnlIznlI7nlI3nlJXnlJPnlJ7nlKbnlKznlLznlYTnlY3nlYrnlYnnlZvnlYbnlZrnlannlaTnlafnlavnla3nlbjnlbbnlobnlofnlbTnlornlonnloLnlpTnlprnlp3nlqXnlqPnl4LnlrPnl4PnlrXnlr3nlrjnlrznlrHnl43nl4rnl5Lnl5nnl6Pnl57nl77nl7/nl7znmIHnl7Dnl7rnl7Lnl7PnmIvnmI3nmInnmJ/nmKfnmKDnmKHnmKLnmKTnmLTnmLDnmLvnmYfnmYjnmYbnmZznmZjnmaHnmaLnmajnmannmarnmafnmaznmbAiXSxbImUyYTEiLCLnmbLnmbbnmbjnmbznmoDnmoPnmojnmovnmo7nmpbnmpPnmpnnmprnmrDnmrTnmrjnmrnnmrrnm4Lnm43nm5bnm5Lnm57nm6Hnm6Xnm6fnm6romK/nm7vnnIjnnIfnnITnnKnnnKTnnJ7nnKXnnKbnnJvnnLfnnLjnnYfnnZrnnajnnavnnZvnnaXnnb/nnb7nnbnnno7nnovnnpHnnqDnnp7nnrDnnrbnnrnnnr/nnrznnr3nnrvnn4fnn43nn5fnn5rnn5znn6Pnn67nn7znoIznoJLnpKbnoKDnpKrnoYXnoo7nobTnoobnobznoprnooznoqPnorXnoqrnoq/no5Hno4bno4vno5Tnor7norzno4Xno4rno6wiXSxbImUzYTEiLCLno6fno5rno73no7TnpIfnpJLnpJHnpJnnpKznpKvnpYDnpaDnpZfnpZ/npZrnpZXnpZPnpbrnpb/npornpp3npqfpvYvnpqrnpq7nprPnprnnprrnp4nnp5Xnp6fnp6znp6Hnp6PnqIjnqI3nqJjnqJnnqKDnqJ/npoDnqLHnqLvnqL7nqLfnqYPnqZfnqYnnqaHnqaLnqanpvp3nqbDnqbnnqb3nqojnqpfnqpXnqpjnqpbnqqnnq4jnqrDnqrbnq4Xnq4Tnqr/pgoPnq4fnq4rnq43nq4/nq5Xnq5Pnq5nnq5rnq53nq6Hnq6Lnq6bnq63nq7DnrILnrI/nrIrnrIbnrLPnrJjnrJnnrJ7nrLXnrKjnrLbnrZAiXSxbImU0YTEiLCLnrbrnrITnrY3nrIvnrYznrYXnrbXnraXnrbTnrafnrbDnrbHnraznra7nrp3nrpjnrp/nro3nrpznrprnrovnrpLnro/nrZ3nrpnnr4vnr4Hnr4znr4/nrrTnr4bnr53nr6nnsJHnsJTnr6bnr6XnsaDnsIDnsIfnsJPnr7Pnr7fnsJfnsI3nr7bnsKPnsKfnsKrnsJ/nsLfnsKvnsL3nsYznsYPnsZTnsY/nsYDnsZDnsZjnsZ/nsaTnsZbnsaXnsaznsbXnsoPnspDnsqTnsq3nsqLnsqvnsqHnsqjnsrPnsrLnsrHnsq7nsrnnsr3ns4Dns4Xns4Lns5jns5Lns5zns6LprLvns6/ns7Lns7Tns7bns7rntIYiXSxbImU1YTEiLCLntILntJzntJXntIrntYXntYvntK7ntLLntL/ntLXntYbntbPntZbntY7ntbLntajnta7ntY/ntaPntpPntonntZvnto/ntb3ntpvntrrntq7ntqPntrXnt4fntr3ntqvnuL3ntqLntq/nt5zntrjntp/ntrDnt5jnt53nt6Tnt57nt7vnt7Lnt6HnuIXnuIrnuKPnuKHnuJLnuLHnuJ/nuInnuIvnuKLnuYbnuabnuLvnuLXnuLnnuYPnuLfnuLLnuLrnuafnuZ3nuZbnuZ7nuZnnuZrnubnnuarnuannubznubvnuoPnt5Xnub3ovq7nub/nuojnuonnuoznupLnupDnupPnupTnupbnuo7nupvnupznvLjnvLoiXSxbImU2YTEiLCLnvYXnvYznvY3nvY7nvZDnvZHnvZXnvZTnvZjnvZ/nvaDnvajnvannvafnvbjnvoLnvobnvoPnvojnvofnvoznvpTnvp7nvp3nvprnvqPnvq/nvrLnvrnnvq7nvrbnvrjorbHnv4Xnv4bnv4rnv5Xnv5Tnv6Hnv6bnv6nnv7Pnv7npo5zogIbogITogIvogJLogJjogJnogJzogKHogKjogL/ogLvogYrogYbogZLogZjogZrogZ/ogaLogajogbPogbLogbDogbbogbnogb3ogb/ogoTogobogoXogpvogpPogprogq3lhpDogqzog5vog6Xog5nog53og4Tog5rog5bohInog6/og7HohJvohKnohKPohK/ohYsiXSxbImU3YTEiLCLpmovohYbohL7ohZPohZHog7zohbHoha7ohaXohabohbTohoPohojohorohoDohoLohqDohpXohqTohqPohZ/ohpPohqnohrDohrXohr7ohrjohr3oh4Doh4Lohrroh4noh43oh5Hoh5noh5joh4joh5roh5/oh6Doh6foh7roh7voh77oiIHoiILoiIXoiIfoiIroiI3oiJDoiJboiKnoiKvoiLjoiLPoiYDoiZnoiZjoiZ3oiZroiZ/oiaToiaLoiajoiaroiavoiK7oibHoibfoibjoib7oio3oipLoiqvoip/oirvoiqzoi6Hoi6Poi5/oi5Loi7Toi7Poi7rojpPojIPoi7voi7noi57ojIboi5zojInoi5kiXSxbImU4YTEiLCLojLXojLTojJbojLLojLHojYDojLnojZDojYXojK/ojKvojJfojJjojoXojprojqrojp/ojqLojpbojKPojo7ojofojorojbzojrXojbPojbXojqDojonojqjoj7TokJPoj6voj47oj73okIPoj5jokIvoj4Hoj7fokIfoj6Doj7LokI3okKLokKDojr3okLjolIboj7voka3okKrokLzolZrokoTokbfokavokq3oka7okoLokanokYbokKzoka/okbnokLXok4rokaLokrnokr/okp/ok5nok43okrvok5rok5Dok4Hok4bok5bokqHolKHok7/ok7TolJfolJjolKzolJ/olJXolJTok7zolYDolaPolZjolYgiXSxbImU5YTEiLCLolYHomILolYvolZXoloDolqTolojolpHolorolqjola3olpTolpvol6rolofolpzolbfolb7olpDol4nolrrol4/olrnol5Dol5Xol53ol6Xol5zol7nomIromJPomIvol77ol7romIbomKLomJromLDomL/omY3kuZXomZTomZ/omafombHompPomqPomqnomqromovomozomrbomq/om4Tom4bomrDom4nooKPomqvom5Tom57om6nom6zom5/om5vom6/onJLonIbonIjonIDonIPom7vonJHonInonI3om7nonIronLTonL/onLfonLvonKXonKnonJronaDonZ/onbjonYzonY7onbTonZfonajona7onZkiXSxbImVhYTEiLCLonZPonaPonarooIXonqLonp/onoLonq/on4vonr3on4Don5Dpm5bonqvon4TonrPon4fon4bonrvon6/on7Lon6DooI/ooI3on77on7bon7fooI7on5LooJHooJbooJXooKLooKHooLHooLbooLnooKfooLvooYTooYLooZLooZnooZ7ooaLooavoooHoob7oop7oobXoob3oorXoobLoooLoopfoopLooq7oopnooqLooo3ooqToorDoor/oorHoo4Poo4Too5Too5joo5noo53oo7nopILoo7zoo7Too6joo7LopITopIzopIropJPopYPopJ7opKXopKropKvopYHopYTopLvopLbopLjopYzopJ3opaDopZ4iXSxbImViYTEiLCLopabopaTopa3oparopa/opbTopbfopb7opoPopojoporoppPoppjopqHopqnopqbopqzopq/oprLoprropr3opr/op4Dop5rop5zop53op6fop7Top7joqIPoqJboqJDoqIzoqJvoqJ3oqKXoqLboqYHoqZvoqZLoqYboqYjoqbzoqa3oqazoqaLoqoXoqoLoqoToqqjoqqHoqpHoqqXoqqboqproqqPoq4Toq43oq4Loq5roq6voq7Poq6foq6Toq7HorJToq6Doq6Loq7foq57oq5vorIzorIforJroq6HorJborJDorJforKDorLPpnqvorKborKvorL7orKjorYHorYzorY/orY7orYnorZborZvorZrorasiXSxbImVjYTEiLCLorZ/orazora/orbTorb3oroDorozoro7orpLorpPorpborpnorprosLrosYHosL/osYjosYzosY7osZDosZXosaLosazosbjosbrosoLosonosoXosoroso3oso7ospTosbzospjmiJ3osq3osqrosr3osrLosrPosq7osrbos4jos4Hos6Tos6Pos5ros73os7ros7votITotIXotIrotIfotI/otI3otJDpvY7otJPos43otJTotJbotafota3otbHotbPotoHotpnot4Lotr7otrrot4/ot5rot5bot4zot5vot4vot6rot6vot5/ot6Pot7zouIjouInot7/ouJ3ouJ7ouJDouJ/ouYLouLXouLDouLTouYoiXSxbImVkYTEiLCLouYfouYnouYzouZDouYjouZnouaTouaDouKrouaPouZXoubboubLoubzouoHouofouoXouoTouovouoroupPoupHoupToupnouqrouqHouqzourDou4bourHour7ou4Xou4jou4vou5vou6Pou7zou7vou6vou77ovIrovIXovJXovJLovJnovJPovJzovJ/ovJvovIzovKbovLPovLvovLnovYXovYLovL7ovYzovYnovYbovY7ovZfovZzovaLovaPovaTovpzovp/ovqPovq3ovq/ovrfov5rov6Xov6Lov6rov6/pgofov7TpgIXov7nov7rpgJHpgJXpgKHpgI3pgJ7pgJbpgIvpgKfpgLbpgLXpgLnov7giXSxbImVlYTEiLCLpgY/pgZDpgZHpgZLpgI7pgYnpgL7pgZbpgZjpgZ7pgajpga/pgbbpmqjpgbLpgoLpgb3pgoHpgoDpgorpgonpgo/pgqjpgq/pgrHpgrXpg6Lpg6TmiYjpg5vphILphJLphJnphLLphLDphYrphZbphZjphaPphaXphanphbPphbLphovphonphoLphqLphqvphq/phqrphrXphrTphrrph4Dph4Hph4nph4vph5Dph5bph5/ph6Hph5vph7zph7Xph7bpiJ7ph7/piJTpiKzpiJXpiJHpiZ7piZfpiYXpiYnpiaTpiYjpipXpiL/piYvpiZDpipzpipbpipPpipvpiZrpi4/pirnpirfpi6npjI/pi7rpjYTpjK4iXSxbImVmYTEiLCLpjJnpjKLpjJrpjKPpjLrpjLXpjLvpjZzpjaDpjbzpja7pjZbpjrDpjqzpjq3pjpTpjrnpj5bpj5fpj6jpj6Xpj5jpj4Ppj53pj5Dpj4jpj6TpkJrpkJTpkJPpkIPpkIfpkJDpkLbpkKvpkLXpkKHpkLrpkYHpkZLpkYTpkZvpkaDpkaLpkZ7pkarpiKnpkbDpkbXpkbfpkb3pkZrpkbzpkb7pkoHpkb/ploLplofplorplpTplpbplpjplpnplqDplqjplqfplq3plrzplrvplrnplr7pl4rmv7bpl4Ppl43pl4zpl5Xpl5Tpl5bpl5zpl6Hpl6Xpl6LpmKHpmKjpmK7pmK/pmYLpmYzpmY/pmYvpmbfpmZzpmZ4iXSxbImYwYTEiLCLpmZ3pmZ/pmabpmbLpmazpmo3pmpjpmpXpmpfpmqrpmqfpmrHpmrLpmrDpmrTpmrbpmrjpmrnpm47pm4vpm4npm43opY3pm5zpnI3pm5Xpm7npnITpnIbpnIjpnJPpnI7pnJHpnI/pnJbpnJnpnKTpnKrpnLDpnLnpnL3pnL7pnYTpnYbpnYjpnYLpnYnpnZzpnaDpnaTpnabpnajli5LpnavpnbHpnbnpnoXpnbzpnoHpnbrpnobpnovpno/pnpDpnpzpnqjpnqbpnqPpnrPpnrTpn4Ppn4bpn4jpn4vpn5zpn63pvY/pn7Lnq5/pn7bpn7XpoI/poIzpoLjpoKTpoKHpoLfpoL3poYbpoY/poYvpoavpoa/pobAiXSxbImYxYTEiLCLpobHpobTpobPpoqrpoq/porHporbpo4Tpo4Ppo4bpo6npo6vppIPppInppJLppJTppJjppKHppJ3ppJ7ppKTppKDppKzppK7ppL3ppL7ppYLppYnppYXppZDppYvppZHppZLppYzppZXpppfpppjppqXppq3ppq7pprzpp5/pp5vpp53pp5jpp5Hpp63pp67pp7Hpp7Lpp7vpp7jpqIHpqI/pqIXpp6LpqJnpqKvpqLfpqYXpqYLpqYDpqYPpqL7pqZXpqY3pqZvpqZfpqZ/pqaLpqaXpqaTpqanpqavpqarpqq3pqrDpqrzpq4Dpq4/pq5Hpq5Ppq5Tpq57pq5/pq6Lpq6Ppq6bpq6/pq6vpq67pq7Tpq7Hpq7ciXSxbImYyYTEiLCLpq7vprIbprJjprJrprJ/prKLprKPprKXprKfprKjprKnprKrprK7prK/prLLprYTprYPprY/prY3prY7prZHprZjprbTprpPproPprpHprpbprpfprp/prqDprqjprrTpr4Dpr4rprrnpr4bpr4/pr5Hpr5Lpr6Ppr6Lpr6Tpr5Tpr6HpsLrpr7Lpr7Hpr7DpsJXpsJTpsInpsJPpsIzpsIbpsIjpsJLpsIrpsITpsK7psJvpsKXpsKTpsKHpsLDpsYfpsLLpsYbpsL7psZrpsaDpsafpsbbpsbjps6fps6zps7DptInptIjps6vptIPptIbptKrptKbptq/ptKPptJ/ptYTptJXptJLptYHptL/ptL7ptYbptYgiXSxbImYzYTEiLCLptZ3ptZ7ptaTptZHptZDptZnptbLptonptofptqvpta/ptbrptprptqTptqnptrLpt4Tpt4Hptrvptrjptrrpt4bpt4/pt4Lpt5npt5Ppt7jpt6bpt63pt6/pt73puJrpuJvpuJ7pubXpubnpub3puoHpuojpuovpuozpupLpupXpupHpup3puqXpuqnpurjpuqrpuq3pnaHpu4zpu47pu4/pu5Dpu5Tpu5zpu57pu53pu6Dpu6Xpu6jpu6/pu7Tpu7bpu7fpu7npu7vpu7zpu73pvIfpvIjnmrfpvJXpvKHpvKzpvL7pvYrpvZLpvZTpvaPpvZ/pvaDpvaHpvabpvafpvazpvarpvbfpvbLpvbbpvpXpvpzpvqAiXSxbImY0YTEiLCLloK/mp4fpgZnnkaTlh5znhpkiXSxbImY5YTEiLCLnuoropJzpjYjpiojok5zkv4nngrvmmLHmo4jpi7nmm7vlvYXkuKjku6Hku7zkvIDkvIPkvLnkvZbkvpLkvorkvprkvpTkv43lgYDlgKLkv7/lgJ7lgYblgbDlgYLlgpTlg7Tlg5jlhYrlhaTlhp3lhr7lh6zliJXlipzliqbli4Dli5vljIDljIfljKTljbLljpPljrLlj53vqI7lkpzlkorlkqnlk7/lloblnZnlnaXlnqzln4jln4fvqI/vqJDlop7lorLlpIvlpZPlpZvlpZ3lpaPlpqTlprrlrZblr4DnlK/lr5jlr6zlsJ7lsqblsrrls7XltKfltZPvqJHltYLlta3ltrjltrnlt5DlvKHlvLTlvaflvrciXSxbImZhYTEiLCLlv57mgZ3mgoXmgormg57mg5XmhKDmg7LmhJHmhLfmhLDmhpjmiJPmiqbmj7XmkaDmkp3mk47mlY7mmIDmmJXmmLvmmInmmK7mmJ7mmKTmmaXmmZfmmZnvqJLmmbPmmpnmmqDmmrLmmr/mm7rmnI7vpKnmnabmnrvmoZLmn4DmoIHmoYTmo4/vqJPmpajvqJTmppjmp6LmqLDmqavmqYbmqbPmqb7mq6Lmq6Tmr5bmsL/msZzmsobmsa/ms5rmtITmtofmta/mtpbmtqzmt4/mt7jmt7Lmt7zmuLnmuZzmuKfmuLzmur/mvojmvrXmv7XngIXngIfngKjngoXngqvnhI/nhITnhZznhYbnhYfvqJXnh4Hnh77nirEiXSxbImZiYTEiLCLnir7njKTvqJbnjbfnjr3nj4nnj5bnj6Pnj5LnkIfnj7XnkKbnkKrnkKnnkK7nkaLnkonnkp/nlIHnla/nmoLnmpznmp7nmpvnmqbvqJfnnYbliq/noKHnoY7noaTnobrnpLDvqJjvqJnvqJrnppTvqJvnppvnq5Hnq6fvqJznq6vnrp7vqJ3ntYjntZzntrfntqDnt5bnuZLnvYfnvqHvqJ7ojIHojaLojb/oj4foj7bokYjokrTolZPolZnolavvqJ/olrDvqKDvqKHooIfoo7XoqJLoqLfoqbnoqqfoqr7oq5/vqKLoq7borZPorb/os7Dos7TotJLotbbvqKPou4/vqKTvqKXpgafpg57vqKbphJXphKfph5oiXSxbImZjYTEiLCLph5fph57ph63ph67ph6Tph6XpiIbpiJDpiIrpiLrpiYDpiLzpiY7piZnpiZHpiLnpiafpiqfpibfpibjpi6fpi5fpi5npi5DvqKfpi5Xpi6Dpi5PpjKXpjKHpi7vvqKjpjJ7pi7/pjJ3pjILpjbDpjZfpjqTpj4bpj57pj7jpkLHpkYXpkYjplpLvp5zvqKnpmp3pmq/pnLPpnLvpnYPpnY3pnY/pnZHpnZXpoZfpoaXvqKrvqKvppKfvqKzppp7pqY7pq5npq5zprbXprbLpro/prrHprrvpsIDptbDptavvqK3puJnpu5EiXSxbImZjZjEiLCLihbAiLDksIu+/ou+/pO+8h++8giJdLFsiOGZhMmFmIiwiy5jLh8K4y5nLncKvy5vLmu+9ns6EzoUiXSxbIjhmYTJjMiIsIsKhwqbCvyJdLFsiOGZhMmViIiwiwrrCqsKpwq7ihKLCpOKEliJdLFsiOGZhNmUxIiwizobOiM6JzorOqiJdLFsiOGZhNmU3IiwizowiXSxbIjhmYTZlOSIsIs6OzqsiXSxbIjhmYTZlYyIsIs6PIl0sWyI4ZmE2ZjEiLCLOrM6tzq7Or8+KzpDPjM+Cz43Pi86wz44iXSxbIjhmYTdjMiIsItCCIiwxMCwi0I7QjyJdLFsiOGZhN2YyIiwi0ZIiLDEwLCLRntGfIl0sWyI4ZmE5YTEiLCLDhsSQIl0sWyI4ZmE5YTQiLCLEpiJdLFsiOGZhOWE2IiwixLIiXSxbIjhmYTlhOCIsIsWBxL8iXSxbIjhmYTlhYiIsIsWKw5jFkiJdLFsiOGZhOWFmIiwixabDniJdLFsiOGZhOWMxIiwiw6bEkcOwxKfEscSzxLjFgsWAxYnFi8O4xZPDn8Wnw74iXSxbIjhmYWFhMSIsIsOBw4DDhMOCxILHjcSAxITDhcODxIbEiMSMw4fEisSOw4nDiMOLw4rEmsSWxJLEmCJdLFsiOGZhYWJhIiwixJzEnsSixKDEpMONw4zDj8OOx4/EsMSqxK7EqMS0xLbEucS9xLvFg8WHxYXDkcOTw5LDlsOUx5HFkMWMw5XFlMWYxZbFmsWcxaDFnsWkxaLDmsOZw5zDm8Wsx5PFsMWqxbLFrsWox5fHm8eZx5XFtMOdxbjFtsW5xb3FuyJdLFsiOGZhYmExIiwiw6HDoMOkw6LEg8eOxIHEhcOlw6PEh8SJxI3Dp8SLxI/DqcOow6vDqsSbxJfEk8SZx7XEncSfIl0sWyI4ZmFiYmQiLCLEocSlw63DrMOvw67HkCJdLFsiOGZhYmM1IiwixKvEr8SpxLXEt8S6xL7EvMWExYjFhsOxw7PDssO2w7THksWRxY3DtcWVxZnFl8WbxZ3FocWfxaXFo8O6w7nDvMO7xa3HlMWxxavFs8WvxanHmMecx5rHlsW1w73Dv8W3xbrFvsW8Il0sWyI4ZmIwYTEiLCLkuILkuITkuIXkuIzkuJLkuJ/kuKPkuKTkuKjkuKvkuK7kuK/kuLDkuLXkuYDkuYHkuYTkuYfkuZHkuZrkuZzkuaPkuajkuankubTkubXkubnkub/kuo3kupbkupfkup3kuq/kurnku4Pku5Dku5rku5vku6Dku6Hku6Lku6jku6/ku7Hku7Pku7Xku73ku77ku7/kvIDkvILkvIPkvIjkvIvkvIzkvJLkvJXkvJbkvJfkvJnkvK7kvLHkvaDkvLPkvLXkvLfkvLnkvLvkvL7kvYDkvYLkvYjkvYnkvYvkvYzkvZLkvZTkvZbkvZjkvZ/kvaPkvarkvazkva7kvbHkvbfkvbjkvbnkvbrkvb3kvb7kvoHkvoLkvoQiXSxbIjhmYjFhMSIsIuS+heS+ieS+iuS+jOS+juS+kOS+kuS+k+S+lOS+l+S+meS+muS+nuS+n+S+suS+t+S+ueS+u+S+vOS+veS+vuS/gOS/geS/heS/huS/iOS/ieS/i+S/jOS/jeS/j+S/kuS/nOS/oOS/ouS/sOS/suS/vOS/veS/v+WAgOWAgeWAhOWAh+WAiuWAjOWAjuWAkOWAk+WAl+WAmOWAm+WAnOWAneWAnuWAouWAp+WAruWAsOWAsuWAs+WAteWBgOWBgeWBguWBheWBhuWBiuWBjOWBjuWBkeWBkuWBk+WBl+WBmeWBn+WBoOWBouWBo+WBpuWBp+WBquWBreWBsOWBseWAu+WCgeWCg+WChOWChuWCiuWCjuWCj+WCkCJdLFsiOGZiMmExIiwi5YKS5YKT5YKU5YKW5YKb5YKc5YKeIiw0LCLlgqrlgq/lgrDlgrnlgrrlgr3lg4Dlg4Plg4Tlg4flg4zlg47lg5Dlg5Plg5Tlg5jlg5zlg53lg5/lg6Llg6Tlg6blg6jlg6nlg6/lg7Hlg7blg7rlg77lhIPlhIblhIflhIjlhIvlhIzlhI3lhI7lg7LlhJDlhJflhJnlhJvlhJzlhJ3lhJ7lhKPlhKflhKjlhKzlhK3lhK/lhLHlhLPlhLTlhLXlhLjlhLnlhYLlhYrlhY/lhZPlhZXlhZflhZjlhZ/lhaTlhablhb7lhoPlhoTlhovlho7lhpjlhp3lhqHlhqPlhq3lhrjlhrrlhrzlhr7lhr/lh4IiXSxbIjhmYjNhMSIsIuWHiOWHj+WHkeWHkuWHk+WHleWHmOWHnuWHouWHpeWHruWHsuWHs+WHtOWHt+WIgeWIguWIheWIkuWIk+WIleWIluWImOWIouWIqOWIseWIsuWIteWIvOWJheWJieWJleWJl+WJmOWJmuWJnOWJn+WJoOWJoeWJpuWJruWJt+WJuOWJueWKgOWKguWKheWKiuWKjOWKk+WKleWKluWKl+WKmOWKmuWKnOWKpOWKpeWKpuWKp+WKr+WKsOWKtuWKt+WKuOWKuuWKu+WKveWLgOWLhOWLhuWLiOWLjOWLj+WLkeWLlOWLluWLm+WLnOWLoeWLpeWLqOWLqeWLquWLrOWLsOWLseWLtOWLtuWLt+WMgOWMg+WMiuWMiyJdLFsiOGZiNGExIiwi5YyM5YyR5YyT5YyY5Yyb5Yyc5Yye5Yyf5Yyl5Yyn5Yyo5Yyp5Yyr5Yys5Yyt5Yyw5Yyy5Yy15Yy85Yy95Yy+5Y2C5Y2M5Y2L5Y2Z5Y2b5Y2h5Y2j5Y2l5Y2s5Y2t5Y2y5Y255Y2+5Y6D5Y6H5Y6I5Y6O5Y6T5Y6U5Y6Z5Y6d5Y6h5Y6k5Y6q5Y6r5Y6v5Y6y5Y605Y615Y635Y645Y665Y695Y+A5Y+F5Y+P5Y+S5Y+T5Y+V5Y+a5Y+d5Y+e5Y+g5Y+m5Y+n5Y+15ZCC5ZCT5ZCa5ZCh5ZCn5ZCo5ZCq5ZCv5ZCx5ZC05ZC15ZGD5ZGE5ZGH5ZGN5ZGP5ZGe5ZGi5ZGk5ZGm5ZGn5ZGp5ZGr5ZGt5ZGu5ZG05ZG/Il0sWyI4ZmI1YTEiLCLlkoHlkoPlkoXlkojlkonlko3lkpHlkpXlkpblkpzlkp/lkqHlkqblkqflkqnlkqrlkq3lkq7lkrHlkrflkrnlkrrlkrvlkr/lk4blk4rlk43lk47lk6Dlk6rlk6zlk6/lk7blk7zlk77lk7/llIDllIHllIXllIjllInllIzllI3llI7llJXllKrllKvllLLllLXllLbllLvllLzllL3llYHllYfllYnllYrllY3llZDllZHllZjllZrllZvllZ7llaDllaHllaTllabllb/lloHlloLllobllojllo7llo/llpHllpLllpPllpTllpfllqPllqTllq3llrLllr/ll4Hll4Pll4bll4nll4vll4zll47ll5Hll5IiXSxbIjhmYjZhMSIsIuWXk+WXl+WXmOWXm+WXnuWXouWXqeWXtuWXv+WYheWYiOWYiuWYjSIsNSwi5ZiZ5Zis5Ziw5Ziz5Zi15Zi35Zi55Zi75Zi85Zi95Zi/5ZmA5ZmB5ZmD5ZmE5ZmG5ZmJ5ZmL5ZmN5ZmP5ZmU5Zme5Zmg5Zmh5Zmi5Zmj5Zmm5Zmp5Zmt5Zmv5Zmx5Zmy5Zm15ZqE5ZqF5ZqI5ZqL5ZqM5ZqV5ZqZ5Zqa5Zqd5Zqe5Zqf5Zqm5Zqn5Zqo5Zqp5Zqr5Zqs5Zqt5Zqx5Zqz5Zq35Zq+5ZuF5ZuJ5ZuK5ZuL5ZuP5ZuQ5ZuM5ZuN5ZuZ5Zuc5Zud5Zuf5Zuh5ZukIiw0LCLlm7Hlm6vlm60iXSxbIjhmYjdhMSIsIuWbtuWbt+WcgeWcguWch+WciuWcjOWckeWcleWcmuWcm+WcneWcoOWcouWco+WcpOWcpeWcqeWcquWcrOWcruWcr+Wcs+WctOWcveWcvuWcv+WdheWdhuWdjOWdjeWdkuWdouWdpeWdp+WdqOWdq+WdrSIsNCwi5Z2z5Z205Z215Z235Z255Z265Z275Z285Z2+5Z6B5Z6D5Z6M5Z6U5Z6X5Z6Z5Z6a5Z6c5Z6d5Z6e5Z6f5Z6h5Z6V5Z6n5Z6o5Z6p5Z6s5Z645Z695Z+H5Z+I5Z+M5Z+P5Z+V5Z+d5Z+e5Z+k5Z+m5Z+n5Z+p5Z+t5Z+w5Z+15Z+25Z+45Z+95Z++5Z+/5aCD5aCE5aCI5aCJ5Z+hIl0sWyI4ZmI4YTEiLCLloIzloI3loJvloJ7loJ/loKDloKbloKfloK3loLLloLnloL/loYnloYzloY3loY/loZDloZXloZ/loaHloaTloafloajlobjlobzlob/looDlooHloofloojloonloorloozloo3loo/lopDlopTlopblop3loqDloqHloqLloqbloqnlorHlorLlo4Tlorzlo4Llo4jlo43lo47lo5Dlo5Llo5Tlo5blo5rlo53lo6Hlo6Llo6nlo7PlpIXlpIblpIvlpIzlpJLlpJPlpJTomYHlpJ3lpKHlpKPlpKTlpKjlpK/lpLDlpLPlpLXlpLblpL/lpYPlpYblpZLlpZPlpZnlpZvlpZ3lpZ7lpZ/lpaHlpaPlpavlpa0iXSxbIjhmYjlhMSIsIuWlr+WlsuWlteWltuWlueWlu+WlvOWmi+WmjOWmjuWmkuWmleWml+Wmn+WmpOWmp+WmreWmruWmr+WmsOWms+Wmt+WmuuWmvOWngeWng+WnhOWniOWniuWnjeWnkuWnneWnnuWnn+Wno+WnpOWnp+WnruWnr+WnseWnsuWntOWnt+WogOWohOWojOWojeWojuWokuWok+WonuWoo+WopOWop+WoqOWoquWoreWosOWphOWpheWph+WpiOWpjOWpkOWpleWpnuWpo+WppeWpp+WpreWpt+WpuuWpu+WpvuWqi+WqkOWqk+WqluWqmeWqnOWqnuWqn+WqoOWqouWqp+WqrOWqseWqsuWqs+WqteWquOWquuWqu+WqvyJdLFsiOGZiYWExIiwi5auE5auG5auI5auP5aua5auc5aug5aul5auq5auu5au15au25au95ayA5ayB5ayI5ayX5ay05ayZ5ayb5ayd5ayh5ayl5ayt5ay45a2B5a2L5a2M5a2S5a2W5a2e5a2o5a2u5a2v5a285a295a2+5a2/5a6B5a6E5a6G5a6K5a6O5a6Q5a6R5a6T5a6U5a6W5a6o5a6p5a6s5a6t5a6v5a6x5a6y5a635a665a685a+A5a+B5a+N5a+P5a+WIiw0LCLlr6Dlr6/lr7Hlr7Tlr73lsIzlsJflsJ7lsJ/lsKPlsKblsKnlsKvlsKzlsK7lsLDlsLLlsLXlsLblsZnlsZrlsZzlsaLlsaPlsaflsajlsakiXSxbIjhmYmJhMSIsIuWxreWxsOWxtOWxteWxuuWxu+WxvOWxveWyh+WyiOWyiuWyj+WykuWyneWyn+WyoOWyouWyo+WypuWyquWysuWytOWyteWyuuWzieWzi+WzkuWzneWzl+WzruWzseWzsuWztOW0geW0huW0jeW0kuW0q+W0o+W0pOW0puW0p+W0seW0tOW0ueW0veW0v+W1guW1g+W1huW1iOW1leW1keW1meW1iuW1n+W1oOW1oeW1ouW1pOW1quW1reW1sOW1ueW1uuW1vuW1v+W2geW2g+W2iOW2iuW2kuW2k+W2lOW2leW2meW2m+W2n+W2oOW2p+W2q+W2sOW2tOW2uOW2ueW3g+W3h+W3i+W3kOW3juW3mOW3meW3oOW3pCJdLFsiOGZiY2ExIiwi5bep5be45be55biA5biH5biN5biS5biU5biV5biY5bif5big5biu5bio5biy5bi15bi+5bmL5bmQ5bmJ5bmR5bmW5bmY5bmb5bmc5bme5bmo5bmqIiw0LCLlubDluoDluovluo7luqLluqTluqXluqjluqrluqzlurHlurPlur3lur7lur/lu4blu4zlu4vlu47lu5Hlu5Llu5Tlu5Xlu5zlu57lu6Xlu6vlvILlvIblvIflvIjlvI7lvJnlvJzlvJ3lvKHlvKLlvKPlvKTlvKjlvKvlvKzlvK7lvLDlvLTlvLblvLvlvL3lvL/lvYDlvYTlvYXlvYflvY3lvZDlvZTlvZjlvZvlvaDlvaPlvaTlvaciXSxbIjhmYmRhMSIsIuW9r+W9suW9tOW9teW9uOW9uuW9veW9vuW+ieW+jeW+j+W+luW+nOW+neW+ouW+p+W+q+W+pOW+rOW+r+W+sOW+seW+uOW/hOW/h+W/iOW/ieW/i+W/kCIsNCwi5b+e5b+h5b+i5b+o5b+p5b+q5b+s5b+t5b+u5b+v5b+y5b+z5b+25b+65b+85oCH5oCK5oCN5oCT5oCU5oCX5oCY5oCa5oCf5oCk5oCt5oCz5oC15oGA5oGH5oGI5oGJ5oGM5oGR5oGU5oGW5oGX5oGd5oGh5oGn5oGx5oG+5oG/5oKC5oKG5oKI5oKK5oKO5oKR5oKT5oKV5oKY5oKd5oKe5oKi5oKk5oKl5oKo5oKw5oKx5oK3Il0sWyI4ZmJlYTEiLCLmgrvmgr7mg4Lmg4Tmg4jmg4nmg4rmg4vmg47mg4/mg5Tmg5Xmg5nmg5vmg53mg57mg6Lmg6Xmg7Lmg7Xmg7jmg7zmg73mhILmhIfmhIrmhIzmhJAiLDQsIuaEluaEl+aEmeaEnOaEnuaEouaEquaEq+aEsOaEseaEteaEtuaEt+aEueaFgeaFheaFhuaFieaFnuaFoOaFrOaFsuaFuOaFu+aFvOaFv+aGgOaGgeaGg+aGhOaGi+aGjeaGkuaGk+aGl+aGmOaGnOaGneaGn+aGoOaGpeaGqOaGquaGreaGuOaGueaGvOaHgOaHgeaHguaHjuaHj+aHleaHnOaHneaHnuaHn+aHoeaHouaHp+aHqeaHpSJdLFsiOGZiZmExIiwi5oes5oet5oev5oiB5oiD5oiE5oiH5oiT5oiV5oic5oig5oii5oij5oin5oip5oir5oi55oi95omC5omD5omE5omG5omM5omQ5omR5omS5omU5omW5oma5omc5omk5omt5omv5omz5om65om95oqN5oqO5oqP5oqQ5oqm5oqo5oqz5oq25oq35oq65oq+5oq/5ouE5ouO5ouV5ouW5oua5ouq5ouy5ou05ou85ou95oyD5oyE5oyK5oyL5oyN5oyQ5oyT5oyW5oyY5oyp5oyq5oyt5oy15oy25oy55oy85o2B5o2C5o2D5o2E5o2G5o2K5o2L5o2O5o2S5o2T5o2U5o2Y5o2b5o2l5o2m5o2s5o2t5o2x5o205o21Il0sWyI4ZmMwYTEiLCLmjbjmjbzmjb3mjb/mjoLmjoTmjofmjormjpDmjpTmjpXmjpnmjprmjp7mjqTmjqbmjq3mjq7mjq/mjr3mj4Hmj4Xmj4jmj47mj5Hmj5Pmj5Tmj5Xmj5zmj6Dmj6Xmj6rmj6zmj7Lmj7Pmj7Xmj7jmj7nmkInmkIrmkJDmkJLmkJTmkJjmkJ7mkKDmkKLmkKTmkKXmkKnmkKrmkK/mkLDmkLXmkL3mkL/mkYvmkY/mkZHmkZLmkZPmkZTmkZrmkZvmkZzmkZ3mkZ/mkaDmkaHmkaPmka3mkbPmkbTmkbvmkb3mkoXmkofmko/mkpDmkpHmkpjmkpnmkpvmkp3mkp/mkqHmkqPmkqbmkqjmkqzmkrPmkr3mkr7mkr8iXSxbIjhmYzFhMSIsIuaThOaTieaTiuaTi+aTjOaTjuaTkOaTkeaTleaTl+aTpOaTpeaTqeaTquaTreaTsOaTteaTt+aTu+aTv+aUgeaUhOaUiOaUieaUiuaUj+aUk+aUlOaUluaUmeaUm+aUnuaUn+aUouaUpuaUqeaUruaUseaUuuaUvOaUveaVg+aVh+aVieaVkOaVkuaVlOaVn+aVoOaVp+aVq+aVuuaVveaWgeaWheaWiuaWkuaWleaWmOaWneaWoOaWo+aWpuaWruaWsuaWs+aWtOaWv+aXguaXiOaXieaXjuaXkOaXlOaXluaXmOaXn+aXsOaXsuaXtOaXteaXueaXvuaXv+aYgOaYhOaYiOaYieaYjeaYkeaYkuaYleaYluaYnSJdLFsiOGZjMmExIiwi5pie5pih5pii5pij5pik5pim5pip5piq5pir5pis5piu5piw5pix5piz5pi55pi35pmA5pmF5pmG5pmK5pmM5pmR5pmO5pmX5pmY5pmZ5pmb5pmc5pmg5pmh5pu75pmq5pmr5pms5pm+5pmz5pm15pm/5pm35pm45pm55pm75pqA5pm85pqL5pqM5pqN5pqQ5pqS5pqZ5pqa5pqb5pqc5pqf5pqg5pqk5pqt5pqx5pqy5pq15pq75pq/5puA5puC5puD5puI5puM5puO5puP5puU5pub5puf5puo5pur5pus5puu5pu65pyF5pyH5pyO5pyT5pyZ5pyc5pyg5pyi5pyz5py+5p2F5p2H5p2I5p2M5p2U5p2V5p2dIl0sWyI4ZmMzYTEiLCLmnabmnazmna7mnbTmnbbmnbvmnoHmnoTmno7mno/mnpHmnpPmnpbmnpjmnpnmnpvmnrDmnrHmnrLmnrXmnrvmnrzmnr3mn7nmn4Dmn4Lmn4Pmn4Xmn4jmn4nmn5Lmn5fmn5nmn5zmn6Hmn6bmn7Dmn7Lmn7bmn7fmoZLmoJTmoJnmoJ3moJ/moKjmoKfmoKzmoK3moK/moLDmoLHmoLPmoLvmoL/moYTmoYXmoYrmoYzmoZXmoZfmoZjmoZvmoavmoa4iLDQsIuahteahueahuuahu+ahvOaiguaihOaihuaiiOailuaimOaimuainOaioeaio+aipeaiqeaiquairuaisuaiu+ajheajiOajjOajjyJdLFsiOGZjNGExIiwi5qOQ5qOR5qOT5qOW5qOZ5qOc5qOd5qOl5qOo5qOq5qOr5qOs5qOt5qOw5qOx5qO15qO25qO75qO85qO95qSG5qSJ5qSK5qSQ5qSR5qST5qSW5qSX5qSx5qSz5qS15qS45qS75qWC5qWF5qWJ5qWO5qWX5qWb5qWj5qWk5qWl5qWm5qWo5qWp5qWs5qWw5qWx5qWy5qW65qW75qW/5qaA5qaN5qaS5qaW5qaY5qah5qal5qam5qao5qar5qat5qav5qa35qa45qa65qa85qeF5qeI5qeR5qeW5qeX5qei5qel5qeu5qev5qex5qez5qe15qe+5qiA5qiB5qiD5qiP5qiR5qiV5qia5qid5qig5qik5qio5qiw5qiyIl0sWyI4ZmM1YTEiLCLmqLTmqLfmqLvmqL7mqL/mqYXmqYbmqYnmqYrmqY7mqZDmqZHmqZLmqZXmqZbmqZvmqaTmqafmqarmqbHmqbPmqb7mqoHmqoPmqobmqofmqonmqovmqpHmqpvmqp3mqp7mqp/mqqXmqqvmqq/mqrDmqrHmqrTmqr3mqr7mqr/mq4bmq4nmq4jmq4zmq5Dmq5Tmq5Xmq5bmq5zmq53mq6Tmq6fmq6zmq7Dmq7Hmq7Lmq7zmq73mrILmrIPmrIbmrIfmrInmrI/mrJDmrJHmrJfmrJvmrJ7mrKTmrKjmrKvmrKzmrK/mrLXmrLbmrLvmrL/mrYbmrYrmrY3mrZLmrZbmrZjmrZ3mraDmrafmravmra7mrbDmrbXmrb0iXSxbIjhmYzZhMSIsIuatvuauguauheaul+aum+aun+auoOauouauo+auqOauqeaurOaureauruausOauuOauueauveauvuavg+avhOavieavjOavluavmuavoeavo+avpuavp+avruavseavt+avueavv+awguawhOawheawieawjeawjuawkOawkuawmeawn+awpuawp+awqOawrOawruaws+awteawtuawuuawu+awv+axiuaxi+axjeaxj+axkuaxlOaxmeaxm+axnOaxq+axreaxr+axtOaxtuaxuOaxueaxu+ayheayhuayh+ayieaylOayleayl+aymOaynOayn+aysOaysuaytOazguazhuazjeazj+azkOazkeazkuazlOazliJdLFsiOGZjN2ExIiwi5rOa5rOc5rOg5rOn5rOp5rOr5rOs5rOu5rOy5rO05rSE5rSH5rSK5rSO5rSP5rSR5rST5rSa5rSm5rSn5rSo5rGn5rSu5rSv5rSx5rS55rS85rS/5rWX5rWe5rWf5rWh5rWl5rWn5rWv5rWw5rW85raC5raH5raR5raS5raU5raW5raX5raY5raq5ras5ra05ra35ra55ra95ra/5reE5reI5reK5reO5reP5reW5reb5red5ref5reg5rei5rel5rep5rev5rew5re05re25re85riA5riE5rie5rii5rin5riy5ri25ri55ri75ri85rmE5rmF5rmI5rmJ5rmL5rmP5rmR5rmS5rmT5rmU5rmX5rmc5rmd5rmeIl0sWyI4ZmM4YTEiLCLmuaLmuaPmuajmubPmubvmub3muo3mupPmupnmuqDmuqfmuq3muq7murHmurPmurvmur/mu4Dmu4Hmu4Pmu4fmu4jmu4rmu43mu47mu4/mu6vmu63mu67mu7nmu7vmu73mvITmvIjmvIrmvIzmvI3mvJbmvJjmvJrmvJvmvKbmvKnmvKrmvK/mvLDmvLPmvLbmvLvmvLzmvK3mvY/mvZHmvZLmvZPmvZfmvZnmvZrmvZ3mvZ7mvaHmvaLmvajmvazmvb3mvb7mvoPmvofmvojmvovmvozmvo3mvpDmvpLmvpPmvpTmvpbmvprmvp/mvqDmvqXmvqbmvqfmvqjmvq7mvq/mvrDmvrXmvrbmvrzmv4Xmv4fmv4jmv4oiXSxbIjhmYzlhMSIsIua/mua/nua/qOa/qea/sOa/tea/uea/vOa/veeAgOeAheeAhueAh+eAjeeAl+eAoOeAo+eAr+eAtOeAt+eAueeAvOeBg+eBhOeBiOeBieeBiueBi+eBlOeBleeBneeBnueBjueBpOeBpeeBrOeBrueBteeBtueBvueCgeeCheeChueClCIsNCwi54Kb54Kk54Kr54Kw54Kx54K054K354OK54OR54OT54OU54OV54OW54OY54Oc54Ok54O654SDIiw0LCLnhIvnhIznhI/nhJ7nhKDnhKvnhK3nhK/nhLDnhLHnhLjnhYHnhYXnhYbnhYfnhYrnhYvnhZDnhZLnhZfnhZrnhZznhZ7nhaAiXSxbIjhmY2FhMSIsIueFqOeFueeGgOeGheeGh+eGjOeGkueGmueGm+eGoOeGoueGr+eGsOeGsueGs+eGuueGv+eHgOeHgeeHhOeHi+eHjOeHk+eHlueHmeeHmueHnOeHuOeHvueIgOeIh+eIiOeIieeIk+eIl+eImueIneeIn+eIpOeIq+eIr+eItOeIuOeIueeJgeeJgueJg+eJheeJjueJj+eJkOeJk+eJleeJlueJmueJnOeJnueJoOeJo+eJqOeJq+eJrueJr+eJseeJt+eJuOeJu+eJvOeJv+eKhOeKieeKjeeKjueKk+eKm+eKqOeKreeKrueKseeKtOeKvueLgeeLh+eLieeLjOeLleeLlueLmOeLn+eLpeeLs+eLtOeLuueLuyJdLFsiOGZjYmExIiwi54u+54yC54yE54yF54yH54yL54yN54yS54yT54yY54yZ54ye54yi54yk54yn54yo54ys54yx54yy54y154y654y754y9542D542N542Q542S542W542Y542d542e542f542g542m542n542p542r542s542u542v542x542354255428546A546B546D546F546G546O546Q546T546V546X546Y546c546e546f546g546i546l546m546q546r546t54615463546554685469546/54+F54+G54+J54+L54+M54+P54+S54+T54+W54+Z54+d54+h54+j54+m54+n54+p54+054+154+354+554+654+754+9Il0sWyI4ZmNjYTEiLCLnj7/nkIDnkIHnkITnkIfnkIrnkJHnkJrnkJvnkKTnkKbnkKgiLDksIueQueeRgOeRg+eRhOeRhueRh+eRi+eRjeeRkeeRkueRl+eRneeRoueRpueRp+eRqOeRq+eRreeRrueRseeRsueSgOeSgeeSheeShueSh+eSieeSj+eSkOeSkeeSkueSmOeSmeeSmueSnOeSn+eSoOeSoeeSo+eSpueSqOeSqeeSqueSq+eSrueSr+eSseeSsueSteeSueeSu+eSv+eTiOeTieeTjOeTkOeTk+eTmOeTmueTm+eTnueTn+eTpOeTqOeTqueTq+eTr+eTtOeTuueTu+eTvOeTv+eUhiJdLFsiOGZjZGExIiwi55SS55SW55SX55Sg55Sh55Sk55Sn55Sp55Sq55Sv55S255S555S955S+55S/55WA55WD55WH55WI55WO55WQ55WS55WX55We55Wf55Wh55Wv55Wx55W5Iiw1LCLnloHnloXnlpDnlpLnlpPnlpXnlpnnlpznlqLnlqTnlrTnlrrnlr/nl4Dnl4Hnl4Tnl4bnl4znl47nl4/nl5fnl5znl5/nl6Dnl6Hnl6Tnl6fnl6znl67nl6/nl7Hnl7nnmIDnmILnmIPnmITnmIfnmIjnmIrnmIznmI/nmJLnmJPnmJXnmJbnmJnnmJvnmJznmJ3nmJ7nmKPnmKXnmKbnmKnnmK3nmLLnmLPnmLXnmLjnmLkiXSxbIjhmY2VhMSIsIueYuueYvOeZiueZgOeZgeeZg+eZhOeZheeZieeZi+eZleeZmeeZn+eZpOeZpeeZreeZrueZr+eZseeZtOeageeaheeajOeajeealeeam+eanOeaneean+eaoOeaoiIsNiwi55qq55qt55q955uB55uF55uJ55uL55uM55uO55uU55uZ55ug55um55uo55us55uw55ux55u255u555u855yA55yG55yK55yO55yS55yU55yV55yX55yZ55ya55yc55yi55yo55yt55yu55yv55y055y155y255y555y955y+552C552F552G552K552N552O552P552S552W552X552c552e552f552g552iIl0sWyI4ZmNmYTEiLCLnnaTnnafnnarnnaznnbDnnbLnnbPnnbTnnbrnnb3nnoDnnoTnnoznno3nnpTnnpXnnpbnnprnnp/nnqLnnqfnnqrnnq7nnq/nnrHnnrXnnr7nn4Pnn4nnn5Hnn5Lnn5Xnn5nnn57nn5/nn6Dnn6Tnn6bnn6rnn6znn7Dnn7Hnn7Tnn7jnn7vnoIXnoIbnoInnoI3noI7noJHnoJ3noKHnoKLnoKPnoK3noK7noLDnoLXnoLfnoYPnoYTnoYfnoYjnoYznoY7noZLnoZznoZ7noaDnoaHnoaPnoaTnoajnoarnoa7nobrnob7noornoo/nopTnopjnoqHnop3nop7nop/noqTnoqjnoqznoq3norDnorHnorLnorMiXSxbIjhmZDBhMSIsIueiu+eiveeiv+ejh+ejiOejieejjOejjuejkuejk+ejleejluejpOejm+ejn+ejoOejoeejpuejquejsuejs+ekgOejtuejt+ejuueju+ejv+ekhuekjOekkOekmueknOeknuekn+ekoOekpeekp+ekqeekreekseektOekteeku+ekveekv+elhOelheelhueliueli+elj+elkeellOelmOelm+elnOelp+elqeelq+elsuelueelu+elvOelvuemi+emjOemkeemk+emlOemleemluemmOemm+emnOemoeemqOemqeemq+emr+emseemtOemuOemu+enguenhOenh+eniOeniuenj+enlOenluenmuenneenniJdLFsiOGZkMWExIiwi56eg56ei56el56eq56er56et56ex56e456e856iC56iD56iH56iJ56iK56iM56iR56iV56ib56ie56ih56in56ir56it56iv56iw56i056i156i456i556i656mE56mF56mH56mI56mM56mV56mW56mZ56mc56md56mf56mg56ml56mn56mq56mt56m156m456m+56qA56qC56qF56qG56qK56qL56qQ56qR56qU56qe56qg56qj56qs56qz56q156q556q756q856uG56uJ56uM56uO56uR56ub56uo56up56ur56us56ux56u056u756u956u+56yH56yU56yf56yj56yn56yp56yq56yr56yt56yu56yv56ywIl0sWyI4ZmQyYTEiLCLnrLHnrLTnrL3nrL/nrYDnrYHnrYfnrY7nrZXnraDnraTnrabnrannrarnra3nra/nrbLnrbPnrbfnroTnronnro7nrpDnrpHnrpbnrpvnrp7nrqDnrqXnrqznrq/nrrDnrrLnrrXnrrbnrrrnrrvnrrznrr3nr4Lnr4Xnr4jnr4rnr5Tnr5bnr5fnr5nnr5rnr5vnr6jnr6rnr7Lnr7Tnr7Xnr7jnr7nnr7rnr7znr77nsIHnsILnsIPnsITnsIbnsInnsIvnsIznsI7nsI/nsJnnsJvnsKDnsKXnsKbnsKjnsKznsLHnsLPnsLTnsLbnsLnnsLrnsYbnsYrnsZXnsZHnsZLnsZPnsZkiLDVdLFsiOGZkM2ExIiwi57Gh57Gj57Gn57Gp57Gt57Gu57Gw57Gy57G557G857G957KG57KH57KP57KU57Ke57Kg57Km57Kw57K257K357K657K757K857K/57OE57OH57OI57OJ57ON57OP57OT57OU57OV57OX57OZ57Oa57Od57Om57Op57Or57O157SD57SH57SI57SJ57SP57SR57SS57ST57SW57Sd57Se57Sj57Sm57Sq57St57Sx57S857S957S+57WA57WB57WH57WI57WN57WR57WT57WX57WZ57Wa57Wc57Wd57Wl57Wn57Wq57Ww57W457W657W757W/57aB57aC57aD57aF57aG57aI57aL57aM57aN57aR57aW57aX57adIl0sWyI4ZmQ0YTEiLCLntp7ntqbntqfntqrntrPntrbntrfntrnnt4IiLDQsIue3jOe3jee3jue3l+e3mee4gOe3oue3pee3pue3que3q+e3ree3see3tee3tue3uee3uue4iOe4kOe4kee4lee4l+e4nOe4nee4oOe4p+e4qOe4rOe4ree4r+e4s+e4tue4v+e5hOe5hee5h+e5jue5kOe5kue5mOe5n+e5oee5oue5pee5q+e5rue5r+e5s+e5uOe5vue6gee6hue6h+e6iue6jee6kee6lee6mOe6mue6nee6nue8vOe8u+e8vee8vue8v+e9g+e9hOe9h+e9j+e9kue9k+e9m+e9nOe9nee9oee9o+e9pOe9pee9pue9rSJdLFsiOGZkNWExIiwi572x5729572+572/576A576L576N576P576Q576R576W576X576c576h576i576m576q576t57605768576/57+A57+D57+I57+O57+P57+b57+f57+j57+l57+o57+s57+u57+v57+y57+657+957++57+/6ICH6ICI6ICK6ICN6ICO6ICP6ICR6ICT6ICU6ICW6ICd6ICe6ICf6ICg6ICk6ICm6ICs6ICu6ICw6IC06IC16IC36IC56IC66IC86IC+6IGA6IGE6IGg6IGk6IGm6IGt6IGx6IG16IKB6IKI6IKO6IKc6IKe6IKm6IKn6IKr6IK46IK56IOI6ION6IOP6IOS6IOU6IOV6IOX6IOY6IOg6IOt6IOuIl0sWyI4ZmQ2YTEiLCLog7Dog7Log7Pog7bog7nog7rog77ohIPohIvohJbohJfohJjohJzohJ7ohKDohKTohKfohKzohLDohLXohLrohLzohYXohYfohYrohYzohZLohZfohaDohaHohafohajohanoha3oha/ohbfohoHohpDohoTohoXohobohovoho7ohpbohpjohpvohp7ohqLohq7ohrLohrTohrvoh4voh4Poh4Xoh4roh47oh4/oh5Xoh5foh5voh53oh57oh6Hoh6Toh6voh6zoh7Doh7Hoh7Loh7Xoh7boh7joh7noh73oh7/oiIDoiIPoiI/oiJPoiJToiJnoiJroiJ3oiKHoiKLoiKjoiLLoiLToiLroiYPoiYToiYXoiYYiXSxbIjhmZDdhMSIsIuiJi+iJjuiJj+iJkeiJluiJnOiJoOiJo+iJp+iJreiJtOiJu+iJveiJv+iKgOiKgeiKg+iKhOiKh+iKieiKiuiKjuiKkeiKlOiKluiKmOiKmuiKm+iKoOiKoeiKo+iKpOiKp+iKqOiKqeiKquiKruiKsOiKsuiKtOiKt+iKuuiKvOiKvuiKv+iLhuiLkOiLleiLmuiLoOiLouiLpOiLqOiLquiLreiLr+iLtuiLt+iLveiLvuiMgOiMgeiMh+iMiOiMiuiMi+iNlOiMm+iMneiMnuiMn+iMoeiMouiMrOiMreiMruiMsOiMs+iMt+iMuuiMvOiMveiNguiNg+iNhOiNh+iNjeiNjuiNkeiNleiNluiNl+iNsOiNuCJdLFsiOGZkOGExIiwi6I296I2/6I6A6I6C6I6E6I6G6I6N6I6S6I6U6I6V6I6Y6I6Z6I6b6I6c6I6d6I6m6I6n6I6p6I6s6I6+6I6/6I+A6I+H6I+J6I+P6I+Q6I+R6I+U6I+d6I2T6I+o6I+q6I+26I+46I+56I+86JCB6JCG6JCK6JCP6JCR6JCV6JCZ6I6t6JCv6JC56JGF6JGH6JGI6JGK6JGN6JGP6JGR6JGS6JGW6JGY6JGZ6JGa6JGc6JGg6JGk6JGl6JGn6JGq6JGw6JGz6JG06JG26JG46JG86JG96JKB6JKF6JKS6JKT6JKV6JKe6JKm6JKo6JKp6JKq6JKv6JKx6JK06JK66JK96JK+6JOA6JOC6JOH6JOI6JOM6JOP6JOTIl0sWyI4ZmQ5YTEiLCLok5zok6fok6rok6/ok7Dok7Hok7Lok7folLLok7rok7vok73olILolIPolIfolIzolI7olJDolJzolJ7olKLolKPolKTolKXolKfolKrolKvolK/olLPolLTolLbolL/olYbolY8iLDQsIuiVluiVmeiVnCIsNiwi6JWk6JWr6JWv6JW56JW66JW76JW96JW/6JaB6JaF6JaG6JaJ6JaL6JaM6JaP6JaT6JaY6Jad6Jaf6Jag6Jai6Jal6Jan6Ja06Ja26Ja36Ja46Ja86Ja96Ja+6Ja/6JeC6JeH6JeK6JeL6JeO6Jat6JeY6Jea6Jef6Jeg6Jem6Jeo6Jet6Jez6Je26Je8Il0sWyI4ZmRhYTEiLCLol7/omIDomITomIXomI3omI7omJDomJHomJLomJjomJnomJvomJ7omKHomKfomKnomLbomLjomLromLzomL3omYDomYLomYbomZLomZPomZbomZfomZjomZnomZ3omaAiLDQsIuiZqeiZrOiZr+iZteiZtuiZt+iZuuiajeiakeialuiamOiamuianOiaoeiapuiap+iaqOiareiaseias+iatOiateiat+iauOiaueiav+ibgOibgeibg+ibheibkeibkuibleibl+ibmuibnOiboOibo+ibpeibp+iaiOibuuibvOibveichOicheich+ici+icjuicj+ickOick+iclOicmeicnuicn+icoeicoyJdLFsiOGZkYmExIiwi6Jyo6Jyu6Jyv6Jyx6Jyy6Jy56Jy66Jy86Jy96Jy+6J2A6J2D6J2F6J2N6J2Y6J2d6J2h6J2k6J2l6J2v6J2x6J2y6J276J6DIiw2LCLonovonozonpDonpPonpXonpfonpjonpnonp7onqDonqPonqfonqzonq3onq7onrHonrXonr7onr/on4Hon4jon4non4ron47on5Xon5bon5non5ron5zon5/on6Lon6Pon6Ton6ron6von63on7Hon7Pon7jon7ron7/ooIHooIPooIbooInooIrooIvooJDooJnooJLooJPooJTooJjooJrooJvooJzooJ7ooJ/ooKjooK3ooK7ooLDooLLooLUiXSxbIjhmZGNhMSIsIuiguuigvOihgeihg+ihheihiOihieihiuihi+ihjuihkeihleihluihmOihmuihnOihn+ihoOihpOihqeihseihueihu+iigOiimOiimuiim+iinOiin+iioOiiqOiiquiiuuiiveiivuijgOijiiIsNCwi6KOR6KOS6KOT6KOb6KOe6KOn6KOv6KOw6KOx6KO16KO36KSB6KSG6KSN6KSO6KSP6KSV6KSW6KSY6KSZ6KSa6KSc6KSg6KSm6KSn6KSo6KSw6KSx6KSy6KS16KS56KS66KS+6KWA6KWC6KWF6KWG6KWJ6KWP6KWS6KWX6KWa6KWb6KWc6KWh6KWi6KWj6KWr6KWu6KWw6KWz6KW16KW6Il0sWyI4ZmRkYTEiLCLopbvopbzopb3oponopo3oppDoppToppXoppvoppzopp/opqDopqXoprDoprToprXoprboprfoprzop5QiLDQsIuinpeinqeinq+inreinseins+intuinueinveinv+iohOioheioh+ioj+iokeiokuiolOioleionuiooOioouiopOiopuioq+iorOior+ioteiot+ioveiovuipgOipg+ipheiph+ipieipjeipjuipk+ipluipl+ipmOipnOipneipoeippeipp+ipteiptuipt+ipueipuuipu+ipvuipv+iqgOiqg+iqhuiqi+iqj+iqkOiqkuiqluiql+iqmeiqn+iqp+iqqeiqruiqr+iqsyJdLFsiOGZkZWExIiwi6Kq26Kq36Kq76Kq+6KuD6KuG6KuI6KuJ6KuK6KuR6KuT6KuU6KuV6KuX6Kud6Kuf6Kus6Kuw6Ku06Ku16Ku26Ku86Ku/6KyF6KyG6KyL6KyR6Kyc6Kye6Kyf6KyK6Kyt6Kyw6Ky36Ky86K2CIiw0LCLorYjorZLorZPorZTorZnorY3orZ7oraPora3orbborbjorbnorbzorb7oroHoroToroXorovoro3oro/orpTorpXorpzorp7orp/osLjosLnosL3osL7osYXosYfosYnosYvosY/osZHosZPosZTosZfosZjosZvosZ3osZnosaPosaTosabosajosanosa3osbPosbXosbbosbvosb7osoYiXSxbIjhmZGZhMSIsIuiyh+iyi+iykOiykuiyk+iymeiym+iynOiypOiyueiyuuizheizhuizieizi+izj+izluizleizmeizneizoeizqOizrOizr+izsOizsuizteizt+izuOizvuizv+i0gei0g+i0iei0kui0l+i0m+i1pei1qei1rOi1rui1v+i2gui2hOi2iOi2jei2kOi2kei2lei2nui2n+i2oOi2pui2q+i2rOi2r+i2sui2tei2t+i2uei2u+i3gOi3hei3hui3h+i3iOi3iui3jui3kei3lOi3lei3l+i3mei3pOi3pei3p+i3rOi3sOi2vOi3sei3sui3tOi3vei4gei4hOi4hei4hui4i+i4kei4lOi4lui4oOi4oei4oiJdLFsiOGZlMGExIiwi6Lij6Lim6Lin6Lix6Liz6Li26Li36Li46Li56Li96LmA6LmB6LmL6LmN6LmO6LmP6LmU6Lmb6Lmc6Lmd6Lme6Lmh6Lmi6Lmp6Lms6Lmt6Lmv6Lmw6Lmx6Lm56Lm66Lm76LqC6LqD6LqJ6LqQ6LqS6LqV6Lqa6Lqb6Lqd6Lqe6Lqi6Lqn6Lqp6Lqt6Lqu6Lqz6Lq16Lq66Lq76LuA6LuB6LuD6LuE6LuH6LuP6LuR6LuU6Luc6Luo6Luu6Luw6Lux6Lu36Lu56Lu66Lut6LyA6LyC6LyH6LyI6LyP6LyQ6LyW6LyX6LyY6Lye6Lyg6Lyh6Lyj6Lyl6Lyn6Lyo6Lys6Lyt6Lyu6Ly06Ly16Ly26Ly36Ly66L2A6L2BIl0sWyI4ZmUxYTEiLCLovYPovYfovY/ovZEiLDQsIui9mOi9nei9nui9pei+nei+oOi+oei+pOi+pei+pui+tei+tui+uOi+vui/gOi/gei/hui/iui/i+i/jei/kOi/kui/k+i/lei/oOi/o+i/pOi/qOi/rui/sei/tei/tui/u+i/vumAgumAhOmAiOmAjOmAmOmAm+mAqOmAqemAr+mAqumArOmAremAs+mAtOmAt+mAv+mBg+mBhOmBjOmBm+mBnemBoumBpumBp+mBrOmBsOmBtOmBuemChemCiOmCi+mCjOmCjumCkOmClemCl+mCmOmCmemCm+mCoOmCoemCoumCpemCsOmCsumCs+mCtOmCtumCvemDjOmCvumDgyJdLFsiOGZlMmExIiwi6YOE6YOF6YOH6YOI6YOV6YOX6YOY6YOZ6YOc6YOd6YOf6YOl6YOS6YO26YOr6YOv6YOw6YO06YO+6YO/6YSA6YSE6YSF6YSG6YSI6YSN6YSQ6YSU6YSW6YSX6YSY6YSa6YSc6YSe6YSg6YSl6YSi6YSj6YSn6YSp6YSu6YSv6YSx6YS06YS26YS36YS56YS66YS86YS96YWD6YWH6YWI6YWP6YWT6YWX6YWZ6YWa6YWb6YWh6YWk6YWn6YWt6YW06YW56YW66YW76YaB6YaD6YaF6YaG6YaK6YaO6YaR6YaT6YaU6YaV6YaY6Yae6Yah6Yam6Yao6Yas6Yat6Yau6Yaw6Yax6Yay6Yaz6Ya26Ya76Ya86Ya96Ya/Il0sWyI4ZmUzYTEiLCLph4Lph4Pph4Xph5Pph5Tph5fph5nph5rph57ph6Tph6Xph6nph6rph6wiLDUsIumHt+mHuemHu+mHvemIgOmIgemIhOmIhemIhumIh+mIiemIiumIjOmIkOmIkumIk+mIlumImOmInOmInemIo+mIpOmIpemIpumIqOmIrumIr+mIsOmIs+mItemItumIuOmIuemIuumIvOmIvumJgOmJgumJg+mJhumJh+mJiumJjemJjumJj+mJkemJmOmJmemJnOmJnemJoOmJoemJpemJp+mJqOmJqemJrumJr+mJsOmJtSIsNCwi6Ym76Ym86Ym96Ym/6YqI6YqJ6YqK6YqN6YqO6YqS6YqXIl0sWyI4ZmU0YTEiLCLpipnpip/piqDpiqTpiqXpiqfpiqjpiqvpiq/pirLpirbpirjpirrpirvpirzpir3pir8iLDQsIumLhemLhumLh+mLiOmLi+mLjOmLjemLjumLkOmLk+mLlemLl+mLmOmLmemLnOmLnemLn+mLoOmLoemLo+mLpemLp+mLqOmLrOmLrumLsOmLuemLu+mLv+mMgOmMgumMiOmMjemMkemMlOmMlemMnOmMnemMnumMn+mMoemMpOmMpemMp+mMqemMqumMs+mMtOmMtumMt+mNh+mNiOmNiemNkOmNkemNkumNlemNl+mNmOmNmumNnumNpOmNpemNp+mNqemNqumNremNr+mNsOmNsemNs+mNtOmNtiJdLFsiOGZlNWExIiwi6Y266Y296Y2/6Y6A6Y6B6Y6C6Y6I6Y6K6Y6L6Y6N6Y6P6Y6S6Y6V6Y6Y6Y6b6Y6e6Y6h6Y6j6Y6k6Y6m6Y6o6Y6r6Y606Y616Y626Y666Y6p6Y+B6Y+E6Y+F6Y+G6Y+H6Y+JIiw0LCLpj5Ppj5npj5zpj57pj5/pj6Lpj6bpj6fpj7npj7fpj7jpj7rpj7vpj73pkIHpkILpkITpkIjpkInpkI3pkI7pkI/pkJXpkJbpkJfpkJ/pkK7pkK/pkLHpkLLpkLPpkLTpkLvpkL/pkL3pkYPpkYXpkYjpkYrpkYzpkZXpkZnpkZzpkZ/pkaHpkaPpkajpkavpka3pka7pka/pkbHpkbLpkoTpkoPplbjplbkiXSxbIjhmZTZhMSIsIumVvumWhOmWiOmWjOmWjemWjumWnemWnumWn+mWoemWpumWqemWq+mWrOmWtOmWtumWuumWvemWv+mXhumXiOmXiemXi+mXkOmXkemXkumXk+mXmemXmumXnemXnumXn+mXoOmXpOmXpumYnemYnumYoumYpOmYpemYpumYrOmYsemYs+mYt+mYuOmYuemYuumYvOmYvemZgemZkumZlOmZlumZl+mZmOmZoemZrumZtOmZu+mZvOmZvumZv+magemagumag+mahOmaiemakemalumamumaneman+mapOmapemapumaqemarumar+mas+mauumbiumbkuW2sumbmOmbmumbnembnumbn+mbqembr+mbsembuumcgiJdLFsiOGZlN2ExIiwi6ZyD6ZyF6ZyJ6Zya6Zyb6Zyd6Zyh6Zyi6Zyj6Zyo6Zyx6Zyz6Z2B6Z2D6Z2K6Z2O6Z2P6Z2V6Z2X6Z2Y6Z2a6Z2b6Z2j6Z2n6Z2q6Z2u6Z2z6Z226Z236Z246Z276Z296Z2/6Z6A6Z6J6Z6V6Z6W6Z6X6Z6Z6Z6a6Z6e6Z6f6Z6i6Z6s6Z6u6Z6x6Z6y6Z616Z626Z646Z656Z666Z686Z6+6Z6/6Z+B6Z+E6Z+F6Z+H6Z+J6Z+K6Z+M6Z+N6Z+O6Z+Q6Z+R6Z+U6Z+X6Z+Y6Z+Z6Z+d6Z+e6Z+g6Z+b6Z+h6Z+k6Z+v6Z+x6Z+06Z+36Z+46Z+66aCH6aCK6aCZ6aCN6aCO6aCU6aCW6aCc6aCe6aCg6aCj6aCmIl0sWyI4ZmU4YTEiLCLpoKvpoK7poK/poLDpoLLpoLPpoLXpoKXpoL7poYTpoYfpoYrpoZHpoZLpoZPpoZbpoZfpoZnpoZrpoaLpoaPpoaXpoabpoarpoazpoqvpoq3poq7porDporTporfporjporrporvpor/po4Lpo4Xpo4jpo4zpo6Hpo6Ppo6Xpo6bpo6fpo6rpo7Ppo7bppILppIfppIjppJHppJXppJbppJfppJrppJvppJzppJ/ppKLppKbppKfppKvppLEiLDQsIumkuemkuumku+mkvOmlgOmlgemlhumlh+mliOmljemljumllOmlmOmlmemlm+mlnOmlnumln+mloOmmm+mmnemmn+mmpummsOmmsemmsummtSJdLFsiOGZlOWExIiwi6aa56aa66aa96aa/6aeD6aeJ6aeT6aeU6aeZ6aea6aec6aee6aen6aeq6aer6aes6aew6ae06ae16ae56ae96ae+6aiC6aiD6aiE6aiL6aiM6aiQ6aiR6aiW6aie6aig6aii6aij6aik6ain6ait6aiu6aiz6ai16ai26ai46amH6amB6amE6amK6amL6amM6amO6amR6amU6amW6amd6aqq6aqs6aqu6aqv6aqy6aq06aq16aq26aq56aq76aq+6aq/6auB6auD6auG6auI6auO6auQ6auS6auV6auW6auX6aub6auc6aug6auk6aul6aun6aup6aus6auy6auz6au16au56au66au96au/Iiw0XSxbIjhmZWFhMSIsIumshOmshemsiOmsiemsi+msjOmsjemsjumskOmskumslumsmemsm+msnOmsoOmspumsq+msremss+mstOmstemst+msuemsuumsvemtiOmti+mtjOmtlemtlumtl+mtm+mtnumtoemto+mtpemtpumtqOmtqiIsNCwi6a2z6a216a236a246a256a2/6a6A6a6E6a6F6a6G6a6H6a6J6a6K6a6L6a6N6a6P6a6Q6a6U6a6a6a6d6a6e6a6m6a6n6a6p6a6s6a6w6a6x6a6y6a636a646a676a686a6+6a6/6a+B6a+H6a+I6a+O6a+Q6a+X6a+Y6a+d6a+f6a+l6a+n6a+q6a+r6a+v6a+z6a+36a+4Il0sWyI4ZmViYTEiLCLpr7npr7rpr73pr7/psIDpsILpsIvpsI/psJHpsJbpsJjpsJnpsJrpsJzpsJ7psKLpsKPpsKYiLDQsIumwsemwtemwtumwt+mwvemxgemxg+mxhOmxhemxiemxiumxjumxj+mxkOmxk+mxlOmxlumxmOmxm+mxnemxnumxn+mxo+mxqemxqumxnOmxq+mxqOmxrumxsOmxsumxtemxt+mxu+mzpumzsumzt+mzuem0i+m0gum0kem0l+m0mOm0nOm0nem0num0r+m0sOm0sum0s+m0tOm0uum0vOm1hem0vem1gum1g+m1h+m1ium1k+m1lOm1n+m1o+m1oum1pem1qem1qum1q+m1sOm1tum1t+m1uyJdLFsiOGZlY2ExIiwi6bW86bW+6baD6baE6baG6baK6baN6baO6baS6baT6baV6baW6baX6baY6bah6baq6bas6bau6bax6ba16ba56ba86ba/6beD6beH6beJ6beK6beU6beV6beW6beX6bea6bee6bef6beg6bel6ben6bep6ber6beu6bew6bez6be06be+6biK6biC6biH6biO6biQ6biR6biS6biV6biW6biZ6bic6bid6bm66bm76bm86bqA6bqC6bqD6bqE6bqF6bqH6bqO6bqP6bqW6bqY6bqb6bqe6bqk6bqo6bqs6bqu6bqv6bqw6bqz6bq06bq16buG6buI6buL6buV6buf6buk6bun6bus6but6buu6buw6bux6buy6bu1Il0sWyI4ZmVkYTEiLCLpu7jpu7/pvILpvIPpvInpvI/pvJDpvJHpvJLpvJTpvJbpvJfpvJnpvJrpvJvpvJ/pvKLpvKbpvKrpvKvpvK/pvLHpvLLpvLTpvLfpvLnpvLrpvLzpvL3pvL/pvYHpvYMiLDQsIum9k+m9lem9lum9l+m9mOm9mum9nem9num9qOm9qem9rSIsNCwi6b2z6b216b266b296b6P6b6Q6b6R6b6S6b6U6b6W6b6X6b6e6b6h6b6i6b6j6b6lIl1dCgovKioqLyB9KSwKLyogMTgyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0geyJ1Q2hhcnMiOlsxMjgsMTY1LDE2OSwxNzgsMTg0LDIxNiwyMjYsMjM1LDIzOCwyNDQsMjQ4LDI1MSwyNTMsMjU4LDI3NiwyODQsMzAwLDMyNSwzMjksMzM0LDM2NCw0NjMsNDY1LDQ2Nyw0NjksNDcxLDQ3Myw0NzUsNDc3LDUwNiw1OTQsNjEwLDcxMiw3MTYsNzMwLDkzMCw5MzgsOTYyLDk3MCwxMDI2LDExMDQsMTEwNiw4MjA5LDgyMTUsODIxOCw4MjIyLDgyMzEsODI0MSw4MjQ0LDgyNDYsODI1Miw4MzY1LDg0NTIsODQ1NCw4NDU4LDg0NzEsODQ4Miw4NTU2LDg1NzAsODU5Niw4NjAyLDg3MTMsODcyMCw4NzIyLDg3MjYsODczMSw4NzM3LDg3NDAsODc0Miw4NzQ4LDg3NTEsODc2MCw4NzY2LDg3NzcsODc4MSw4Nzg3LDg4MDIsODgwOCw4ODE2LDg4NTQsODg1OCw4ODcwLDg4OTYsODk3OSw5MzIyLDkzNzIsOTU0OCw5NTg4LDk2MTYsOTYyMiw5NjM0LDk2NTIsOTY2Miw5NjcyLDk2NzYsOTY4MCw5NzAyLDk3MzUsOTczOCw5NzkzLDk3OTUsMTE5MDYsMTE5MDksMTE5MTMsMTE5MTcsMTE5MjgsMTE5NDQsMTE5NDcsMTE5NTEsMTE5NTYsMTE5NjAsMTE5NjQsMTE5NzksMTIyODQsMTIyOTIsMTIzMTIsMTIzMTksMTIzMzAsMTIzNTEsMTI0MzYsMTI0NDcsMTI1MzUsMTI1NDMsMTI1ODYsMTI4NDIsMTI4NTAsMTI5NjQsMTMyMDAsMTMyMTUsMTMyMTgsMTMyNTMsMTMyNjMsMTMyNjcsMTMyNzAsMTMzODQsMTM0MjgsMTM3MjcsMTM4MzksMTM4NTEsMTQ2MTcsMTQ3MDMsMTQ4MDEsMTQ4MTYsMTQ5NjQsMTUxODMsMTU0NzEsMTU1ODUsMTY0NzEsMTY3MzYsMTcyMDgsMTczMjUsMTczMzAsMTczNzQsMTc2MjMsMTc5OTcsMTgwMTgsMTgyMTIsMTgyMTgsMTgzMDEsMTgzMTgsMTg3NjAsMTg4MTEsMTg4MTQsMTg4MjAsMTg4MjMsMTg4NDQsMTg4NDgsMTg4NzIsMTk1NzYsMTk2MjAsMTk3MzgsMTk4ODcsNDA4NzAsNTkyNDQsNTkzMzYsNTkzNjcsNTk0MTMsNTk0MTcsNTk0MjMsNTk0MzEsNTk0MzcsNTk0NDMsNTk0NTIsNTk0NjAsNTk0NzgsNTk0OTMsNjM3ODksNjM4NjYsNjM4OTQsNjM5NzYsNjM5ODYsNjQwMTYsNjQwMTgsNjQwMjEsNjQwMjUsNjQwMzQsNjQwMzcsNjQwNDIsNjUwNzQsNjUwOTMsNjUxMDcsNjUxMTIsNjUxMjcsNjUxMzIsNjUzNzUsNjU1MTAsNjU1MzZdLCJnYkNoYXJzIjpbMCwzNiwzOCw0NSw1MCw4MSw4OSw5NSw5NiwxMDAsMTAzLDEwNCwxMDUsMTA5LDEyNiwxMzMsMTQ4LDE3MiwxNzUsMTc5LDIwOCwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDM0MSw0MjgsNDQzLDU0NCw1NDUsNTU4LDc0MSw3NDIsNzQ5LDc1MCw4MDUsODE5LDgyMCw3OTIyLDc5MjQsNzkyNSw3OTI3LDc5MzQsNzk0Myw3OTQ0LDc5NDUsNzk1MCw4MDYyLDgxNDgsODE0OSw4MTUyLDgxNjQsODE3NCw4MjM2LDgyNDAsODI2Miw4MjY0LDgzNzQsODM4MCw4MzgxLDgzODQsODM4OCw4MzkwLDgzOTIsODM5Myw4Mzk0LDgzOTYsODQwMSw4NDA2LDg0MTYsODQxOSw4NDI0LDg0MzcsODQzOSw4NDQ1LDg0ODIsODQ4NSw4NDk2LDg1MjEsODYwMyw4OTM2LDg5NDYsOTA0Niw5MDUwLDkwNjMsOTA2Niw5MDc2LDkwOTIsOTEwMCw5MTA4LDkxMTEsOTExMyw5MTMxLDkxNjIsOTE2NCw5MjE4LDkyMTksMTEzMjksMTEzMzEsMTEzMzQsMTEzMzYsMTEzNDYsMTEzNjEsMTEzNjMsMTEzNjYsMTEzNzAsMTEzNzIsMTEzNzUsMTEzODksMTE2ODIsMTE2ODYsMTE2ODcsMTE2OTIsMTE2OTQsMTE3MTQsMTE3MTYsMTE3MjMsMTE3MjUsMTE3MzAsMTE3MzYsMTE5ODIsMTE5ODksMTIxMDIsMTIzMzYsMTIzNDgsMTIzNTAsMTIzODQsMTIzOTMsMTIzOTUsMTIzOTcsMTI1MTAsMTI1NTMsMTI4NTEsMTI5NjIsMTI5NzMsMTM3MzgsMTM4MjMsMTM5MTksMTM5MzMsMTQwODAsMTQyOTgsMTQ1ODUsMTQ2OTgsMTU1ODMsMTU4NDcsMTYzMTgsMTY0MzQsMTY0MzgsMTY0ODEsMTY3MjksMTcxMDIsMTcxMjIsMTczMTUsMTczMjAsMTc0MDIsMTc0MTgsMTc4NTksMTc5MDksMTc5MTEsMTc5MTUsMTc5MTYsMTc5MzYsMTc5MzksMTc5NjEsMTg2NjQsMTg3MDMsMTg4MTQsMTg5NjIsMTkwNDMsMzM0NjksMzM0NzAsMzM0NzEsMzM0ODQsMzM0ODUsMzM0OTAsMzM0OTcsMzM1MDEsMzM1MDUsMzM1MTMsMzM1MjAsMzM1MzYsMzM1NTAsMzc4NDUsMzc5MjEsMzc5NDgsMzgwMjksMzgwMzgsMzgwNjQsMzgwNjUsMzgwNjYsMzgwNjksMzgwNzUsMzgwNzYsMzgwNzgsMzkxMDgsMzkxMDksMzkxMTMsMzkxMTQsMzkxMTUsMzkxMTYsMzkyNjUsMzkzOTQsMTg5MDAwXX0KCi8qKiovIH0pLAovKiAxODMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHMgPSBbWyIwIiwiXHUwMDAwIiwxMjddLFsiODE0MSIsIuqwguqwg+qwheqwhuqwiyIsNCwi6rCY6rCe6rCf6rCh6rCi6rCj6rClIiw2LCLqsK7qsLLqsLPqsLQiXSxbIjgxNjEiLCLqsLXqsLbqsLfqsLrqsLvqsL3qsL7qsL/qsYEiLDksIuqxjOqxjiIsNSwi6rGVIl0sWyI4MTgxIiwi6rGW6rGX6rGZ6rGa6rGb6rGdIiwxOCwi6rGy6rGz6rG16rG26rG56rG7Iiw0LCLqsoLqsofqsojqso3qso7qso/qspHqspLqspPqspUiLDYsIuqynuqyoiIsNSwi6rKr6rKt6rKu6rKxIiw2LCLqsrrqsr7qsr/qs4Dqs4Lqs4Pqs4Xqs4bqs4fqs4nqs4rqs4vqs40iLDcsIuqzluqzmCIsNywi6rOi6rOj6rOl6rOm6rOp6rOr6rOt6rOu6rOy6rO06rO3Iiw0LCLqs77qs7/qtIHqtILqtIPqtIXqtIciLDQsIuq0juq0kOq0kuq0kyJdLFsiODI0MSIsIuq0lOq0leq0luq0l+q0meq0muq0m+q0neq0nuq0n+q0oSIsNywi6rSq6rSr6rSuIiw1XSxbIjgyNjEiLCLqtLbqtLfqtLnqtLrqtLvqtL0iLDYsIuq1huq1iOq1iiIsNSwi6rWR6rWS6rWT6rWV6rWW6rWXIl0sWyI4MjgxIiwi6rWZIiw3LCLqtaLqtaQiLDcsIuq1ruq1r+q1seq1suq1t+q1uOq1ueq1uuq1vuq2gOq2gyIsNCwi6raK6raL6raN6raO6raP6raRIiwxMCwi6raeIiw1LCLqtqUiLDE3LCLqtrgiLDcsIuq3guq3g+q3heq3huq3h+q3iSIsNiwi6reS6reUIiw3LCLqt53qt57qt5/qt6Hqt6Lqt6Pqt6UiLDE4XSxbIjgzNDEiLCLqt7rqt7vqt73qt77quIIiLDUsIuq4iuq4jOq4jiIsNSwi6riVIiw3XSxbIjgzNjEiLCLquJ0iLDE4LCLquLLquLPquLXquLbquLnquLvquLwiXSxbIjgzODEiLCLquL3quL7quL/quYLquYTquYfquYjquYnquYvquY/quZHquZLquZPquZXquZciLDQsIuq5nuq5ouq5o+q5pOq5puq5p+q5quq5q+q5req5ruq5r+q5sSIsNiwi6rm66rm+Iiw1LCLquoYiLDUsIuq6jSIsNDYsIuq6v+q7geq7guq7g+q7hSIsNiwi6ruO6ruSIiw1LCLqu5rqu5vqu50iLDhdLFsiODQ0MSIsIuq7puq7p+q7qeq7quq7rOq7riIsNSwi6ru16ru26ru36ru56ru66ru76ru9Iiw4XSxbIjg0NjEiLCLqvIbqvInqvIrqvIvqvIzqvI7qvI/qvJEiLDE4XSxbIjg0ODEiLCLqvKQiLDcsIuq8ruq8r+q8seq8s+q8tSIsNiwi6ry+6r2A6r2E6r2F6r2G6r2H6r2KIiw1LCLqvZEiLDEwLCLqvZ4iLDUsIuq9piIsMTgsIuq9uiIsNSwi6r6B6r6C6r6D6r6F6r6G6r6H6r6JIiw2LCLqvpLqvpPqvpTqvpYiLDUsIuq+nSIsMjYsIuq+uuq+u+q+veq+viJdLFsiODU0MSIsIuq+v+q/gSIsNSwi6r+K6r+M6r+PIiw0LCLqv5UiLDYsIuq/nSIsNF0sWyI4NTYxIiwi6r+iIiw1LCLqv6oiLDUsIuq/suq/s+q/teq/tuq/t+q/uSIsNiwi64CC64CDIl0sWyI4NTgxIiwi64CFIiw2LCLrgI3rgI7rgI/rgJHrgJLrgJPrgJUiLDYsIuuAniIsOSwi64CpIiwyNiwi64GG64GH64GJ64GL64GN64GP64GQ64GR64GS64GW64GY64Ga64Gb64Gc64GeIiwyOSwi64G+64G/64KB64KC64KD64KFIiw2LCLrgo7rgpDrgpIiLDUsIuuCm+uCneuCnuuCo+uCpCJdLFsiODY0MSIsIuuCpeuCpuuCp+uCquuCsOuCsuuCtuuCt+uCueuCuuuCu+uCvSIsNiwi64OG64OKIiw1LCLrg5IiXSxbIjg2NjEiLCLrg5Prg5Xrg5brg5frg5kiLDYsIuuDoeuDouuDo+uDpOuDpiIsMTBdLFsiODY4MSIsIuuDsSIsMjIsIuuEiuuEjeuEjuuEj+uEkeuElOuEleuEluuEl+uEmuuEniIsNCwi64Sm64Sn64Sp64Sq64Sr64StIiw2LCLrhLbrhLoiLDUsIuuFguuFg+uFheuFhuuFh+uFiSIsNiwi64WS64WT64WW64WX64WZ64Wa64Wb64Wd64We64Wf64WhIiwyMiwi64W664W764W964W+64W/64aB64aDIiw0LCLrhorrhozrho7rho/rhpDrhpHrhpXrhpbrhpfrhpnrhprrhpvrhp0iXSxbIjg3NDEiLCLrhp4iLDksIuuGqSIsMTVdLFsiODc2MSIsIuuGuSIsMTgsIuuHjeuHjuuHj+uHkeuHkuuHk+uHlSJdLFsiODc4MSIsIuuHliIsNSwi64ee64egIiw3LCLrh6rrh6vrh63rh67rh6/rh7EiLDcsIuuHuuuHvOuHviIsNSwi64iG64iH64iJ64iK64iNIiw2LCLriJbriJjriJoiLDUsIuuIoSIsMTgsIuuItSIsNiwi64i9IiwyNiwi64mZ64ma64mb64md64me64mf64mhIiw2LCLriaoiLDRdLFsiODg0MSIsIuuJryIsNCwi64m2Iiw1LCLrib0iLDYsIuuKhuuKh+uKiOuKiiIsNF0sWyI4ODYxIiwi64qP64qS64qT64qV64qW64qX64qbIiw0LCLriqLriqTriqfriqjriqnriqvriq3riq7riq/rirHrirLrirPrirXrirbrirciXSxbIjg4ODEiLCLrirgiLDE1LCLri4rri4vri43ri47ri4/ri5Hri5MiLDQsIuuLmuuLnOuLnuuLn+uLoOuLoeuLo+uLp+uLqeuLquuLsOuLseuLsuuLtuuLvOuLveuLvuuMguuMg+uMheuMhuuMh+uMiSIsNiwi64yS64yWIiw1LCLrjJ0iLDU0LCLrjZfrjZnrjZrrjZ3rjaDrjaHrjaLrjaMiXSxbIjg5NDEiLCLrjabrjajrjarrjazrja3rja/rjbLrjbPrjbXrjbbrjbfrjbkiLDYsIuuOguuOhiIsNSwi646NIl0sWyI4OTYxIiwi646O646P646R646S646T646VIiwxMCwi646iIiw1LCLrjqnrjqrrjqvrjq0iXSxbIjg5ODEiLCLrjq4iLDIxLCLrj4brj4frj4nrj4rrj43rj4/rj5Hrj5Lrj5Prj5brj5jrj5rrj5zrj57rj5/rj6Hrj6Lrj6Prj6Xrj6brj6frj6kiLDE4LCLrj70iLDE4LCLrkJEiLDYsIuuQmeuQmuuQm+uQneuQnuuQn+uQoSIsNiwi65Cq65CsIiw3LCLrkLUiLDE1XSxbIjhhNDEiLCLrkYUiLDEwLCLrkZLrkZPrkZXrkZbrkZfrkZkiLDYsIuuRouuRpOuRpiJdLFsiOGE2MSIsIuuRpyIsNCwi65GtIiwxOCwi65KB65KCIl0sWyI4YTgxIiwi65KDIiw0LCLrkokiLDE5LCLrkp4iLDUsIuuSpeuSpuuSp+uSqeuSquuSq+uSrSIsNywi65K265K465K6Iiw1LCLrk4Hrk4Lrk4Prk4Xrk4brk4frk4kiLDYsIuuTkeuTkuuTk+uTlOuTliIsNSwi65Oe65Of65Oh65Oi65Ol65OnIiw0LCLrk67rk7Drk7IiLDUsIuuTuSIsMjYsIuuUluuUl+uUmeuUmuuUnSJdLFsiOGI0MSIsIuuUniIsNSwi65Sm65SrIiw0LCLrlLLrlLPrlLXrlLbrlLfrlLkiLDYsIuuVguuVhiJdLFsiOGI2MSIsIuuVh+uViOuVieuViuuVjuuVj+uVkeuVkuuVk+uVlSIsNiwi65We65WiIiw4XSxbIjhiODEiLCLrlasiLDUyLCLrlqLrlqPrlqXrlqbrlqfrlqnrlqzrlq3rlq7rlq/rlrLrlrYiLDQsIuuWvuuWv+uXgeuXguuXg+uXhSIsNiwi65eO65eSIiw1LCLrl5kiLDE4LCLrl60iLDE4XSxbIjhjNDEiLCLrmIAiLDE1LCLrmJLrmJPrmJXrmJbrmJfrmJkiLDRdLFsiOGM2MSIsIuuYniIsNiwi65imIiw1LCLrmK0iLDYsIuuYtSIsNV0sWyI4YzgxIiwi65i7IiwxMiwi65mJIiwyNiwi65ml65mm65mn65mpIiw1MCwi65qe65qf65qh65qi65qj65qlIiw1LCLrmq3rmq7rmq/rmrDrmrIiLDE2XSxbIjhkNDEiLCLrm4MiLDE2LCLrm5UiLDhdLFsiOGQ2MSIsIuubniIsMTcsIuubseubsuubs+ubteubtuubt+ubueubuiJdLFsiOGQ4MSIsIuubuyIsNCwi65yC65yD65yE65yGIiwzMywi65yq65yr65yt65yu65yxIiw2LCLrnLrrnLwiLDcsIuudheudhuudh+udieudiuudi+udjSIsNiwi652WIiw5LCLrnaHrnaLrnaPrnaXrnabrnafrnakiLDYsIuudsuudtOudtiIsNSwi652+652/656B656C656D656FIiw2LCLrno7rnpPrnpTrnpXrnprrnpvrnp3rnp4iXSxbIjhlNDEiLCLrnp/rnqEiLDYsIuuequueriIsNSwi656265636565Iiw4XSxbIjhlNjEiLCLrn4IiLDQsIuufiOufiiIsMTldLFsiOGU4MSIsIuufniIsMTMsIuufruufr+ufseufsuufs+uftSIsNiwi65++66CCIiw0LCLroIrroIvroI3roI7roI/roJEiLDYsIuugmuugnOugniIsNSwi66Cm66Cn66Cp66Cq66Cr66CtIiw2LCLroLbroLoiLDUsIuuhgeuhguuhg+uhhSIsMTEsIuuhkuuhlCIsNywi66Ge66Gf66Gh66Gi66Gj66GlIiw2LCLroa7robDrobIiLDUsIuuhueuhuuuhu+uhvSIsN10sWyI4ZjQxIiwi66KFIiw3LCLroo4iLDE3XSxbIjhmNjEiLCLroqAiLDcsIuuiqSIsNiwi66Kx66Ky66Kz66K166K266K366K5Iiw0XSxbIjhmODEiLCLror7ror/ro4Lro4Tro4YiLDUsIuujjeujjuujj+ujkeujkuujk+ujlSIsNywi66Oe66Og66OiIiw1LCLro6rro6vro63ro67ro6/ro7EiLDYsIuujuuujvOujviIsNSwi66SFIiwxOCwi66SZIiw2LCLrpKEiLDI2LCLrpL7rpL/rpYHrpYLrpYPrpYUiLDYsIuuljeuljuulkOulkiIsNV0sWyI5MDQxIiwi66Wa66Wb66Wd66We66Wf66WhIiw2LCLrparrpazrpa4iLDUsIuultuult+ulueuluuulu+ulvSJdLFsiOTA2MSIsIuulviIsNSwi66aG66aI66aL66aM66aPIiwxNV0sWyI5MDgxIiwi66afIiwxMiwi66au66av66ax66ay66az66a1Iiw2LCLrpr7rp4Drp4IiLDUsIuuniuuni+unjeunkyIsNCwi66ea66ec66ef66eg66ei66em66en66ep66eq66er66etIiw2LCLrp7brp7siLDQsIuuogiIsNSwi66iJIiwxMSwi66iWIiwzMywi66i666i766i966i+66i/66mB66mD66mE66mF66mGIl0sWyI5MTQxIiwi66mH66mK66mM66mP66mQ66mR66mS66mW66mX66mZ66ma66mb66mdIiw2LCLrqabrqaoiLDVdLFsiOTE2MSIsIuupsuups+upteuptuupt+upuSIsOSwi66qG66qI66qJ66qK66qL66qNIiw1XSxbIjkxODEiLCLrqpMiLDIwLCLrqqrrqq3rqq7rqq/rqrHrqrMiLDQsIuuquuuqvOuqviIsNSwi66uF66uG66uH66uJIiwxNCwi66uaIiwzMywi66u966u+66u/66yB66yC66yD66yFIiw3LCLrrI7rrJDrrJIiLDUsIuusmeusmuusm+usneusnuusn+usoSIsNl0sWyI5MjQxIiwi66yo66yq66ysIiw3LCLrrLfrrLnrrLrrrL8iLDQsIuuthuutiOutiuuti+utjOutjuutkeutkiJdLFsiOTI2MSIsIuutk+utleutluutl+utmSIsNywi662i662kIiw3LCLrra0iLDRdLFsiOTI4MSIsIuutsiIsMjEsIuuuieuuiuuui+uujeuujuuuj+uukSIsMTgsIuuupeuupuuup+uuqeuuquuuq+uurSIsNiwi666166626664Iiw3LCLrr4Hrr4Lrr4Prr4Xrr4brr4frr4kiLDYsIuuvkeuvkuuvlCIsMzUsIuuvuuuvu+uvveuvvuuwgSJdLFsiOTM0MSIsIuuwgyIsNCwi67CK67CO67CQ67CS67CT67CZ67Ca67Cg67Ch67Ci67Cj67Cm67Co67Cq67Cr67Cs67Cu67Cv67Cy67Cz67C1Il0sWyI5MzYxIiwi67C267C367C5Iiw2LCLrsYLrsYbrsYfrsYjrsYrrsYvrsY7rsY/rsZEiLDhdLFsiOTM4MSIsIuuxmuuxm+uxnOuxniIsMzcsIuuyhuuyh+uyieuyiuuyjeuyjyIsNCwi67KW67KY67KbIiw0LCLrsqLrsqPrsqXrsqbrsqkiLDYsIuuysuuytiIsNSwi67K+67K/67OB67OC67OD67OFIiw3LCLrs47rs5Lrs5Prs5Trs5brs5frs5nrs5rrs5vrs50iLDIyLCLrs7frs7nrs7rrs7vrs70iXSxbIjk0NDEiLCLrs74iLDUsIuu0huu0iOu0iiIsNSwi67SR67SS67ST67SVIiw4XSxbIjk0NjEiLCLrtJ4iLDUsIuu0pSIsNiwi67StIiwxMl0sWyI5NDgxIiwi67S6Iiw1LCLrtYEiLDYsIuu1iuu1i+u1jeu1juu1j+u1kSIsNiwi67WaIiw5LCLrtaXrtabrtafrtakiLDIyLCLrtoLrtoPrtoXrtobrtosiLDQsIuu2kuu2lOu2luu2l+u2mOu2m+u2nSIsNiwi67alIiwxMCwi67axIiw2LCLrtrkiLDI0XSxbIjk1NDEiLCLrt5Lrt5Prt5brt5frt5nrt5rrt5vrt50iLDExLCLrt6oiLDUsIuu3sSJdLFsiOTU2MSIsIuu3suu3s+u3teu3tuu3t+u3uSIsNiwi67iB67iC67iE67iGIiw1LCLruI7ruI/ruJHruJLruJMiXSxbIjk1ODEiLCLruJUiLDYsIuu4nuu4oCIsMzUsIuu5huu5h+u5ieu5iuu5i+u5jeu5jyIsNCwi67mW67mY67mc67md67me67mf67mi67mj67ml67mm67mn67mp67mrIiw0LCLrubLrubYiLDQsIuu5vuu5v+u6geu6guu6g+u6hSIsNiwi67qO67qSIiw1LCLrupoiLDEzLCLruqkiLDE0XSxbIjk2NDEiLCLrurgiLDIzLCLru5Lru5MiXSxbIjk2NjEiLCLru5Xru5bru5kiLDYsIuu7oeu7ouu7piIsNSwi67utIiw4XSxbIjk2ODEiLCLru7YiLDEwLCLrvIIiLDUsIuu8iiIsMTMsIuu8muu8niIsMzMsIuu9guu9g+u9heu9huu9h+u9iSIsNiwi672S672T672U672WIiw0NF0sWyI5NzQxIiwi676DIiwxNiwi676VIiw4XSxbIjk3NjEiLCLrvp4iLDE3LCLrvrEiLDddLFsiOTc4MSIsIuu+uSIsMTEsIuu/hiIsNSwi67+O67+P67+R67+S67+T67+VIiw2LCLrv53rv57rv6Drv6IiLDg5LCLsgL3sgL7sgL8iXSxbIjk4NDEiLCLsgYAiLDE2LCLsgZIiLDUsIuyBmeyBmuyBmyJdLFsiOTg2MSIsIuyBneyBnuyBn+yBoSIsNiwi7IGqIiwxNV0sWyI5ODgxIiwi7IG6IiwyMSwi7IKS7IKT7IKV7IKW7IKX7IKZIiw2LCLsgqLsgqTsgqYiLDUsIuyCruyCseyCsuyCtyIsNCwi7IK+7IOC7IOD7IOE7IOG7IOH7IOK7IOL7ION7IOO7IOP7IORIiw2LCLsg5rsg54iLDUsIuyDpuyDp+yDqeyDquyDq+yDrSIsNiwi7IO27IO47IO6Iiw1LCLshIHshILshIPshIXshIbshIfshIkiLDYsIuyEkeyEkuyEk+yElOyEliIsNSwi7ISh7ISi7ISl7ISo7ISp7ISq7ISr7ISuIl0sWyI5OTQxIiwi7ISy7ISz7IS07IS17IS37IS67IS77IS97IS+7IS/7IWBIiw2LCLshYrshY4iLDUsIuyFluyFlyJdLFsiOTk2MSIsIuyFmeyFmuyFm+yFnSIsNiwi7IWm7IWqIiw1LCLshbHshbLshbPshbXshbbshbfshbnshbrshbsiXSxbIjk5ODEiLCLshbwiLDgsIuyGhiIsNSwi7IaP7IaR7IaS7IaT7IaV7IaXIiw0LCLshp7shqDshqLshqPshqTshqbshqfshqrshqvshq3shq7shq/shrEiLDExLCLshr4iLDUsIuyHheyHhuyHh+yHieyHiuyHi+yHjSIsNiwi7IeV7IeW7IeZIiw2LCLsh6Hsh6Lsh6Psh6Xsh6bsh6fsh6kiLDYsIuyHsuyHtCIsNywi7Ie+7Ie/7IiB7IiC7IiD7IiFIiw2LCLsiI7siJDsiJIiLDUsIuyImuyIm+yIneyInuyIoeyIouyIoyJdLFsiOWE0MSIsIuyIpOyIpeyIpuyIp+yIquyIrOyIruyIsOyIs+yItSIsMTZdLFsiOWE2MSIsIuyJhuyJh+yJiSIsNiwi7ImS7ImT7ImV7ImW7ImX7ImZIiw2LCLsiaHsiaLsiaPsiaTsiaYiXSxbIjlhODEiLCLsiaciLDQsIuyJruyJr+yJseyJsuyJs+yJtSIsNiwi7Im+7IqA7IqCIiw1LCLsiooiLDUsIuyKkSIsNiwi7IqZ7Iqa7Iqc7IqeIiw1LCLsiqbsiqfsiqnsiqrsiqvsiq4iLDUsIuyKtuyKuOyKuiIsMzMsIuyLnuyLn+yLoeyLouyLpSIsNSwi7Iuu7Iuw7Iuy7Iuz7Iu07Iu17Iu37Iu67Iu97Iu+7Iu/7IyBIiw2LCLsjIrsjIvsjI7sjI8iXSxbIjliNDEiLCLsjJDsjJHsjJLsjJbsjJfsjJnsjJrsjJvsjJ0iLDYsIuyMpuyMp+yMqiIsOF0sWyI5YjYxIiwi7IyzIiwxNywi7I2GIiw3XSxbIjliODEiLCLsjY4iLDI1LCLsjarsjavsja3sja7sja/sjbHsjbMiLDQsIuyNuuyNu+yNviIsNSwi7I6F7I6G7I6H7I6J7I6K7I6L7I6NIiw1MCwi7I+BIiwyMiwi7I+aIl0sWyI5YzQxIiwi7I+b7I+d7I+e7I+h7I+jIiw0LCLsj6rsj6vsj6zsj64iLDUsIuyPtuyPt+yPuSIsNV0sWyI5YzYxIiwi7I+/Iiw4LCLskIkiLDYsIuyQkSIsOV0sWyI5YzgxIiwi7JCbIiw4LCLskKUiLDYsIuyQreyQruyQr+yQseyQsuyQs+yQtSIsNiwi7JC+Iiw5LCLskYkiLDI2LCLskabskafskanskarskavska0iLDYsIuyRtuyRt+yRuOyRuiIsNSwi7JKBIiwxOCwi7JKVIiw2LCLskp0iLDEyXSxbIjlkNDEiLCLskqoiLDEzLCLskrnskrrskrvskr0iLDhdLFsiOWQ2MSIsIuyThiIsMjVdLFsiOWQ4MSIsIuyToCIsOCwi7JOqIiw1LCLsk7Lsk7Psk7Xsk7bsk7fsk7nsk7vsk7zsk73sk77slIIiLDksIuyUjeyUjuyUj+yUkeyUkuyUk+yUlSIsNiwi7JSdIiwxMCwi7JSq7JSr7JSt7JSu7JSv7JSxIiw2LCLslLrslLzslL4iLDUsIuyVhuyVh+yVi+yVj+yVkOyVkeyVkuyVluyVmuyVm+yVnOyVn+yVouyVo+yVpeyVpuyVp+yVqSIsNiwi7JWy7JW2Iiw1LCLslb7slb/sloHsloLsloPsloXslobslojslonslorslovslo7slpDslpLslpPslpQiXSxbIjllNDEiLCLslpbslpnslprslpvslp3slp7slp/slqEiLDcsIuyWqiIsOSwi7Ja2Il0sWyI5ZTYxIiwi7Ja37Ja67Ja/Iiw0LCLsl4vsl43sl4/sl5Lsl5Psl5Xsl5bsl5fsl5kiLDYsIuyXouyXpOyXpuyXpyJdLFsiOWU4MSIsIuyXqOyXqeyXquyXq+yXr+yXseyXsuyXs+yXteyXuOyXueyXuuyXu+yYguyYg+yYhOyYieyYiuyYi+yYjeyYjuyYj+yYkSIsNiwi7Jia7JidIiw2LCLsmKbsmKfsmKnsmKrsmKvsmK/smLHsmLLsmLbsmLjsmLrsmLzsmL3smL7smL/smYLsmYPsmYXsmYbsmYfsmYkiLDYsIuyZkuyZliIsNSwi7Jme7Jmf7JmhIiwxMCwi7Jmt7Jmu7Jmw7JmyIiw1LCLsmbrsmbvsmb3smb7smb/smoEiLDYsIuyaiuyajOyajiIsNSwi7JqW7JqX7JqZ7Jqa7Jqb7JqdIiw2LCLsmqYiXSxbIjlmNDEiLCLsmqjsmqoiLDUsIuyasuyas+yateyatuyat+yauyIsNCwi7JuC7JuE7JuGIiw1LCLsm44iXSxbIjlmNjEiLCLsm4/sm5Hsm5Lsm5Psm5UiLDYsIuybnuybn+yboiIsNSwi7Juq7Jur7Jut7Juu7Juv7Jux7JuyIl0sWyI5ZjgxIiwi7JuzIiw0LCLsm7rsm7vsm7zsm74iLDUsIuychuych+ycieyciuyci+ycjSIsNiwi7JyW7JyY7JyaIiw1LCLsnKLsnKPsnKXsnKbsnKfsnKkiLDYsIuycsuyctOyctuycuOycueycuuycu+ycvuycv+ydgeydguydg+ydhSIsNCwi7J2L7J2O7J2Q7J2Z7J2a7J2b7J2d7J2e7J2f7J2hIiw2LCLsnansnarsnawiLDcsIuydtuydt+ydueyduuydu+ydv+yegOyegeyeguyehuyei+yejOyejeyej+yekuyek+yeleyemeyemyIsNCwi7J6i7J6nIiw0LCLsnq7snq/snrHsnrLsnrPsnrXsnrbsnrciXSxbImEwNDEiLCLsnrjsnrnsnrrsnrvsnr7sn4IiLDUsIuyfiuyfi+yfjeyfj+yfkSIsNiwi7J+Z7J+a7J+b7J+cIl0sWyJhMDYxIiwi7J+eIiw1LCLsn6Xsn6bsn6fsn6nsn6rsn6vsn60iLDEzXSxbImEwODEiLCLsn7siLDQsIuygguygg+ygheyghuygh+ygieygiyIsNCwi7KCS7KCU7KCXIiw0LCLsoJ7soJ/soKHsoKLsoKPsoKUiLDYsIuygruygsOygsiIsNSwi7KC57KC67KC77KC97KC+7KC/7KGBIiw2LCLsoYrsoYvsoY4iLDUsIuyhlSIsMjYsIuyhsuyhs+yhteyhtuyht+yhueyhuyIsNCwi7KKC7KKE7KKI7KKJ7KKK7KKOIiw1LCLsopUiLDcsIuyinuyioOyiouyio+yipCJdLFsiYTE0MSIsIuyipeyipuyip+yiqSIsMTgsIuyivuyiv+yjgOyjgSJdLFsiYTE2MSIsIuyjguyjg+yjheyjhuyjh+yjieyjiuyji+yjjSIsNiwi7KOW7KOY7KOaIiw1LCLso6Lso6Pso6UiXSxbImExODEiLCLso6YiLDE0LCLso7YiLDUsIuyjvuyjv+ykgeykguykg+ykhyIsNCwi7KSO44CA44CB44CCwrfigKXigKbCqOOAg8Kt4oCV4oil77y84oi84oCY4oCZ4oCc4oCd44CU44CV44CIIiw5LCLCscOXw7fiiaDiiaTiiaXiiJ7iiLTCsOKAsuKAs+KEg+KEq++/oO+/oe+/peKZguKZgOKIoOKKpeKMkuKIguKIh+KJoeKJksKn4oC74piG4piF4peL4peP4peO4peH4peG4pah4pag4paz4pay4pa94pa84oaS4oaQ4oaR4oaT4oaU44CT4omq4omr4oia4oi94oid4oi14oir4ois4oiI4oiL4oqG4oqH4oqC4oqD4oiq4oip4oin4oio77+iIl0sWyJhMjQxIiwi7KSQ7KSSIiw1LCLspJkiLDE4XSxbImEyNjEiLCLspK0iLDYsIuyktSIsMThdLFsiYTI4MSIsIuyliCIsNywi7KWS7KWT7KWV7KWW7KWX7KWZIiw2LCLspaLspaQiLDcsIuylreylruylr+KHkuKHlOKIgOKIg8K0772ey4fLmMudy5rLmcK4y5vCocK/y5DiiK7iiJHiiI/CpOKEieKAsOKXgeKXgOKWt+KWtuKZpOKZoOKZoeKZpeKZp+KZo+KKmeKXiOKWo+KXkOKXkeKWkuKWpOKWpeKWqOKWp+KWpuKWqeKZqOKYj+KYjuKYnOKYnsK24oCg4oCh4oaV4oaX4oaZ4oaW4oaY4pmt4pmp4pmq4pms44m/44ic4oSW44+H4oSi44+C44+Y4oSh4oKswq4iXSxbImEzNDEiLCLspbHspbLspbPspbUiLDYsIuylvSIsMTAsIuymiuymi+ymjeymjuymjyJdLFsiYTM2MSIsIuymkSIsNiwi7Kaa7Kac7KaeIiwxNl0sWyJhMzgxIiwi7KavIiwxNiwi7KeC7KeD7KeF7KeG7KeJ7KeLIiw0LCLsp5Lsp5Tsp5fsp5jsp5vvvIEiLDU4LCLvv6bvvL0iLDMyLCLvv6MiXSxbImE0NDEiLCLsp57sp5/sp6Hsp6Psp6Xsp6bsp6jsp6nsp6rsp6vsp67sp7IiLDUsIuynuuynu+ynveynvuynv+yogeyoguyog+yohCJdLFsiYTQ2MSIsIuyoheyohuyoh+yoiuyojiIsNSwi7KiV7KiW7KiX7KiZIiwxMl0sWyJhNDgxIiwi7Kim7Kin7Kio7KiqIiwyOCwi44SxIiw5M10sWyJhNTQxIiwi7KmHIiw0LCLsqY7sqY/sqZHsqZLsqZPsqZUiLDYsIuypnuypoiIsNSwi7Kmp7KmqIl0sWyJhNTYxIiwi7KmrIiwxNywi7Km+Iiw1LCLsqoXsqoYiXSxbImE1ODEiLCLsqociLDE2LCLsqpkiLDE0LCLihbAiLDldLFsiYTViMCIsIuKFoCIsOV0sWyJhNWMxIiwizpEiLDE2LCLOoyIsNl0sWyJhNWUxIiwizrEiLDE2LCLPgyIsNl0sWyJhNjQxIiwi7KqoIiwxOSwi7Kq+7Kq/7KuB7KuC7KuD7KuFIl0sWyJhNjYxIiwi7KuGIiw1LCLsq47sq5Dsq5Lsq5Tsq5Xsq5bsq5fsq5oiLDUsIuyroSIsNl0sWyJhNjgxIiwi7Kuo7Kup7Kuq7Kur7KutIiw2LCLsq7UiLDE4LCLsrInsrIrilIDilILilIzilJDilJjilJTilJzilKzilKTilLTilLzilIHilIPilI/ilJPilJvilJfilKPilLPilKvilLvilYvilKDilK/ilKjilLfilL/ilJ3ilLDilKXilLjilYLilJLilJHilJrilJnilJbilJXilI7ilI3ilJ7ilJ/ilKHilKLilKbilKfilKnilKrilK3ilK7ilLHilLLilLXilLbilLnilLrilL3ilL7ilYDilYHilYMiLDddLFsiYTc0MSIsIuysiyIsNCwi7KyR7KyS7KyT7KyV7KyW7KyX7KyZIiw2LCLsrKIiLDddLFsiYTc2MSIsIuysqiIsMjIsIuytguytg+ythCJdLFsiYTc4MSIsIuytheythuyth+ytiuyti+ytjeytjuytj+ytkSIsNiwi7K2a7K2b7K2c7K2eIiw1LCLsraUiLDcsIuOOleOOluOOl+KEk+OOmOOPhOOOo+OOpOOOpeOOpuOOmSIsOSwi44+K446N446O446P44+P446I446J44+I446n446o446wIiw5LCLjjoAiLDQsIuOOuiIsNSwi446QIiw0LCLihKbjj4Djj4Hjjorjjovjjozjj5bjj4Xjjq3jjq7jjq/jj5vjjqnjjqrjjqvjjqzjj53jj5Djj5Pjj4Pjj4njj5zjj4YiXSxbImE4NDEiLCLsra0iLDEwLCLsrboiLDE0XSxbImE4NjEiLCLsrokiLDE4LCLsrp0iLDZdLFsiYTg4MSIsIuyupCIsMTksIuyuuSIsMTEsIsOGw5DCqsSmIl0sWyJhOGE2IiwixLIiXSxbImE4YTgiLCLEv8WBw5jFksK6w57FpsWKIl0sWyJhOGIxIiwi44mgIiwyNywi4pOQIiwyNSwi4pGgIiwxNCwiwr3ihZPihZTCvMK+4oWb4oWc4oWd4oWeIl0sWyJhOTQxIiwi7K+FIiwxNCwi7K+VIiwxMF0sWyJhOTYxIiwi7K+g7K+h7K+i7K+j7K+l7K+m7K+o7K+qIiwxOF0sWyJhOTgxIiwi7K+9IiwxNCwi7LCO7LCP7LCR7LCS7LCT7LCVIiw2LCLssJ7ssJ/ssKDssKPssKTDpsSRw7DEp8SxxLPEuMWAxYLDuMWTw5/DvsWnxYvFieOIgCIsMjcsIuKSnCIsMjUsIuKRtCIsMTQsIsK5wrLCs+KBtOKBv+KCgeKCguKCg+KChCJdLFsiYWE0MSIsIuywpeywpuywquywq+ywreywr+ywsSIsNiwi7LC67LC/Iiw0LCLssYbssYfssYnssYrssYvssY3ssY4iXSxbImFhNjEiLCLssY8iLDQsIuyxluyxmiIsNSwi7LGh7LGi7LGj7LGl7LGn7LGpIiw2LCLssbHssbIiXSxbImFhODEiLCLssbPssbTssbYiLDI5LCLjgYEiLDgyXSxbImFiNDEiLCLsspTsspXsspbsspfssprsspvssp3ssp7ssp/ssqEiLDYsIuyyquyyriIsNSwi7LK27LK37LK5Il0sWyJhYjYxIiwi7LK67LK77LK9Iiw2LCLss4bss4jss4oiLDUsIuyzkeyzkuyzk+yzlSIsNV0sWyJhYjgxIiwi7LObIiw4LCLss6UiLDYsIuyzreyzruyzr+yzsSIsMTIsIuOCoSIsODVdLFsiYWM0MSIsIuyzvuyzv+y0gOy0giIsNSwi7LSK7LSL7LSN7LSO7LSP7LSRIiw2LCLstJrstJzstJ7stJ/stKAiXSxbImFjNjEiLCLstKHstKLstKPstKXstKbstKfstKnstKrstKvstK0iLDExLCLstLoiLDRdLFsiYWM4MSIsIuy0vyIsMjgsIuy1ney1nuy1n9CQIiw1LCLQgdCWIiwyNV0sWyJhY2QxIiwi0LAiLDUsItGR0LYiLDI1XSxbImFkNDEiLCLstaHstaLstaPstaUiLDYsIuy1ruy1sOy1siIsNSwi7LW5Iiw3XSxbImFkNjEiLCLstoEiLDYsIuy2iSIsMTAsIuy2luy2l+y2mey2muy2m+y2ney2nuy2nyJdLFsiYWQ4MSIsIuy2oOy2oey2ouy2o+y2puy2qOy2qiIsNSwi7LaxIiwxOCwi7LeFIl0sWyJhZTQxIiwi7LeGIiw1LCLst43st47st4/st5EiLDE2XSxbImFlNjEiLCLst6IiLDUsIuy3qey3quy3q+y3rey3ruy3r+y3sSIsNiwi7Le67Le87Le+Iiw0XSxbImFlODEiLCLsuIPsuIXsuIbsuIfsuInsuIrsuIvsuI0iLDYsIuy4ley4luy4l+y4mOy4miIsNSwi7Lii7Lij7Lil7Lim7Lin7Lip7Liq7LirIl0sWyJhZjQxIiwi7Lis7Lit7Liu7Liv7Liy7Li07Li2IiwxOV0sWyJhZjYxIiwi7LmKIiwxMywi7Lma7Lmb7Lmd7Lme7LmiIiw1LCLsuarsuawiXSxbImFmODEiLCLsua4iLDUsIuy5tuy5t+y5uey5uuy5u+y5vSIsNiwi7LqG7LqI7LqKIiw1LCLsupLsupPsupXsupbsupfsupkiXSxbImIwNDEiLCLsupoiLDUsIuy6ouy6piIsNSwi7LquIiwxMl0sWyJiMDYxIiwi7Lq7Iiw1LCLsu4IiLDE5XSxbImIwODEiLCLsu5YiLDEzLCLsu6bsu6fsu6nsu6rsu60iLDYsIuy7tuy7uiIsNSwi6rCA6rCB6rCE6rCH6rCI6rCJ6rCK6rCQIiw3LCLqsJkiLDQsIuqwoOqwpOqwrOqwreqwr+qwsOqwseqwuOqwueqwvOqxgOqxi+qxjeqxlOqxmOqxnOqxsOqxseqxtOqxt+qxuOqxuuqygOqygeqyg+qyhOqyheqyhuqyieqyiuqyi+qyjOqykOqylOqynOqyneqyn+qyoOqyoeqyqOqyqeqyquqyrOqyr+qysOqyuOqyueqyu+qyvOqyveqzgeqzhOqziOqzjOqzleqzl+qzoOqzoeqzpOqzp+qzqOqzquqzrOqzr+qzsOqzseqzs+qzteqztuqzvOqzveq0gOq0hOq0hiJdLFsiYjE0MSIsIuy8guy8g+y8hey8huy8h+y8iSIsNiwi7LyS7LyU7LyWIiw1LCLsvJ3svJ7svJ/svKHsvKLsvKMiXSxbImIxNjEiLCLsvKUiLDYsIuy8ruy8siIsNSwi7Ly5IiwxMV0sWyJiMTgxIiwi7L2FIiwxNCwi7L2W7L2X7L2Z7L2a7L2b7L2dIiw2LCLsvabsvajsvarsvavsvazqtIzqtI3qtI/qtJHqtJjqtJzqtKDqtKnqtKzqtK3qtLTqtLXqtLjqtLzqtYTqtYXqtYfqtYnqtZDqtZTqtZjqtaHqtaPqtazqta3qtbDqtbPqtbTqtbXqtbbqtbvqtbzqtb3qtb/qtoHqtoLqtojqtonqtozqtpDqtpzqtp3qtqTqtrfqt4Dqt4Hqt4Tqt4jqt5Dqt5Hqt5Pqt5zqt6Dqt6Tqt7jqt7nqt7zqt7/quIDquIHquIjquInquIvquI3quJTquLDquLHquLTquLfquLjquLrquYDquYHquYPquYXquYbquYrquYzquY3quY7quZDquZTquZbquZzquZ3quZ/quaDquaHquaXquajquanquazqubDqubgiXSxbImIyNDEiLCLsva3sva7sva/svbLsvbPsvbXsvbbsvbfsvbkiLDYsIuy+gey+guy+g+y+hOy+hiIsNSwi7L6NIl0sWyJiMjYxIiwi7L6OIiwxOCwi7L6iIiw1LCLsvqkiXSxbImIyODEiLCLsvqoiLDUsIuy+sSIsMTgsIuy/hSIsNiwi6rm56rm76rm86rm96rqE6rqF6rqM6rq86rq96rq+6ruA6ruE6ruM6ruN6ruP6ruQ6ruR6ruY6ruZ6ruc6ruo6rur6rut6ru06ru46ru86ryH6ryI6ryN6ryQ6rys6ryt6ryw6ryy6ry06ry86ry96ry/6r2B6r2C6r2D6r2I6r2J6r2Q6r2c6r2d6r2k6r2l6r256r6A6r6E6r6I6r6Q6r6R6r6V6r6c6r646r656r686r+A6r+H6r+I6r+J6r+L6r+N6r+O6r+U6r+c6r+o6r+p6r+w6r+x6r+06r+464CA64CB64CE64CM64CQ64CU64Cc64Cd64Co64GE64GF64GI64GK64GM64GO64GT64GU64GV64GX64GZIl0sWyJiMzQxIiwi7L+MIiwxOSwi7L+i7L+j7L+l7L+m7L+n7L+pIl0sWyJiMzYxIiwi7L+qIiw1LCLsv7Lsv7Tsv7YiLDUsIuy/vey/vuy/v+2Age2Agu2Ag+2AhSIsNV0sWyJiMzgxIiwi7YCLIiw1LCLtgJIiLDUsIu2AmSIsMTksIuuBneuBvOuBveuCgOuChOuCjOuCjeuCj+uCkeuCmOuCmeuCmuuCnOuCn+uCoOuCoeuCouuCqOuCqeuCqyIsNCwi64Kx64Kz64K064K164K464K864OE64OF64OH64OI64OJ64OQ64OR64OU64OY64Og64Ol64SI64SJ64SL64SM64SQ64SS64ST64SY64SZ64Sb64Sc64Sd64Sj64Sk64Sl64So64Ss64S064S164S364S464S564WA64WB64WE64WI64WQ64WR64WU64WV64WY64Wc64Wg64W464W564W864aA64aC64aI64aJ64aL64aN64aS64aT64aU64aY64ac64ao64eM64eQ64eU64ec64edIl0sWyJiNDQxIiwi7YCuIiw1LCLtgLbtgLftgLntgLrtgLvtgL0iLDYsIu2Bhu2BiO2BiiIsNV0sWyJiNDYxIiwi7YGR7YGS7YGT7YGV7YGW7YGX7YGZIiw2LCLtgaEiLDEwLCLtga7tga8iXSxbImI0ODEiLCLtgbHtgbLtgbPtgbUiLDYsIu2Bvu2Bv+2CgO2CgiIsMTgsIuuHn+uHqOuHqeuHrOuHsOuHueuHu+uHveuIhOuIheuIiOuIi+uIjOuIlOuIleuIl+uImeuIoOuItOuIvOuJmOuJnOuJoOuJqOuJqeuJtOuJteuJvOuKhOuKheuKieuKkOuKkeuKlOuKmOuKmeuKmuuKoOuKoeuKo+uKpeuKpuuKquuKrOuKsOuKtOuLiOuLieuLjOuLkOuLkuuLmOuLmeuLm+uLneuLouuLpOuLpeuLpuuLqOuLqyIsNCwi64uz64u064u164u3Iiw0LCLri7/rjIDrjIHrjITrjIjrjJDrjJHrjJPrjJTrjJXrjJzrjZTrjZXrjZbrjZjrjZvrjZzrjZ7rjZ/rjaTrjaUiXSxbImI1NDEiLCLtgpUiLDE0LCLtgqbtgqftgqntgqrtgqvtgq0iLDVdLFsiYjU2MSIsIu2Cs+2Ctu2CuO2CuiIsNSwi7YOC7YOD7YOF7YOG7YOH7YOKIiw1LCLtg5Ltg5YiLDRdLFsiYjU4MSIsIu2Dm+2Dnu2Dn+2Doe2Dou2Do+2DpSIsNiwi7YOu7YOyIiw1LCLtg7kiLDExLCLrjafrjanrjavrja7rjbDrjbHrjbTrjbjrjoDrjoHrjoPrjoTrjoXrjozrjpDrjpTrjqDrjqHrjqjrjqzrj4Trj4Xrj4jrj4vrj4zrj47rj5Drj5Trj5Xrj5frj5nrj5vrj53rj6Drj6Trj6jrj7zrkJDrkJjrkJzrkKDrkKjrkKnrkKvrkLTrkZDrkZHrkZTrkZjrkaDrkaHrkaPrkaXrkazrkoDrkojrkp3rkqTrkqjrkqzrkrXrkrfrkrnrk4Drk4Trk4jrk5Drk5Xrk5zrk53rk6Drk6Prk6Trk6brk6zrk63rk6/rk7Hrk7jrlJTrlJXrlJjrlJvrlJzrlKTrlKXrlKfrlKjrlKnrlKrrlLDrlLHrlLTrlLgiXSxbImI2NDEiLCLthIUiLDcsIu2EjiIsMTddLFsiYjY2MSIsIu2EoCIsMTUsIu2Esu2Es+2Ete2Etu2Et+2Eue2Eu+2EvO2Eve2EviJdLFsiYjY4MSIsIu2Ev+2Fgu2FhiIsNSwi7YWO7YWP7YWR7YWS7YWT7YWVIiw2LCLthZ7thaDthaIiLDUsIu2Fqe2Fqu2Fq+2FreuVgOuVgeuVg+uVhOuVheuVi+uVjOuVjeuVkOuVlOuVnOuVneuVn+uVoOuVoeuWoOuWoeuWpOuWqOuWquuWq+uWsOuWseuWs+uWtOuWteuWu+uWvOuWveuXgOuXhOuXjOuXjeuXj+uXkOuXkeuXmOuXrOuYkOuYkeuYlOuYmOuYpeuYrOuYtOuZiOuZpOuZqOuanOuaneuaoOuapOuaq+uarOuaseublOubsOubtOubuOucgOucgeucheucqOucqeucrOucr+ucsOucuOucueucu+udhOudiOudjOudlOudleudoOudpOudqOudsOudseuds+udteudvOudveuegOuehOuejOuejeuej+uekOuekeuekuueluuelyJdLFsiYjc0MSIsIu2FriIsMTMsIu2FvSIsNiwi7YaF7YaG7YaH7YaJ7YaKIl0sWyJiNzYxIiwi7YaLIiwyMCwi7Yai7Yaj7Yal7Yam7YanIl0sWyJiNzgxIiwi7YapIiw2LCLthrLthrTthrbthrfthrjthrnthrvthr3thr7thr/th4EiLDE0LCLrnpjrnpnrnpzrnqDrnqjrnqnrnqvrnqzrnq3rnrTrnrXrnrjrn4frn4nrn6zrn63rn7Drn7Trn7zrn73rn7/roIDroIHroIfroIjroInroIzroJDroJjroJnroJvroJ3roKTroKXroKjroKzroLTroLXroLfroLjroLnroYDroYTroZHroZProZzroZ3roaDroaTroazroa3roa/robHrobjrobzroo3roqjrorDrorTrorjro4Dro4Hro4Pro4Xro4zro5Dro5Tro53ro5/ro6Hro6jro6nro6zro7Dro7jro7nro7vro73rpITrpJjrpKDrpLzrpL3rpYDrpYTrpYzrpY/rpZHrpZjrpZnrpZzrpaDrpajrpakiXSxbImI4NDEiLCLth5AiLDcsIu2HmSIsMTddLFsiYjg2MSIsIu2HqyIsOCwi7Ye17Ye27Ye37Ye5IiwxM10sWyJiODgxIiwi7YiI7YiKIiw1LCLtiJEiLDI0LCLrpavrpa3rpbTrpbXrpbjrpbzrpoTrpoXrpofrponrporrpo3rpo7rpqzrpq3rprDrprTrprzrpr3rpr/rp4Hrp4jrp4nrp4zrp44iLDQsIuunmOunmeunm+unneunnuunoeuno+unpOunpeunqOunrOuntOunteunt+unuOunueunuuuogOuogeuoiOuoleuouOuoueuovOupgOupguupiOupieupi+upjeupjuupk+uplOupleupmOupnOuppOuppeupp+upqOupqeupsOupseuptOupuOuqg+uqhOuqheuqh+uqjOuqqOuqqeuqq+uqrOuqsOuqsuuquOuqueuqu+uqveurhOuriOurmOurmeurvCJdLFsiYjk0MSIsIu2Iqu2Iq+2Iru2Ir+2Ise2Isu2Is+2ItSIsNiwi7Yi+7YmA7YmCIiw1LCLtiYntiYrtiYvtiYwiXSxbImI5NjEiLCLtiY0iLDE0LCLtiZ0iLDYsIu2Jpe2Jpu2Jp+2JqCJdLFsiYjk4MSIsIu2JqSIsMjIsIu2Kgu2Kg+2Khe2Khu2Kh+2Kie2Kiu2Ki+2KjOusgOushOusjeusj+uskeusmOusnOusoOusqeusq+ustOusteustuusuOusu+usvOusveusvuuthOutheuth+utieutjeutj+utkOutlOutmOutoeuto+utrOuuiOuujOuukOuupOuuqOuurOuutOuut+uvgOuvhOuviOuvkOuvk+uvuOuvueuvvOuvv+uwgOuwguuwiOuwieuwi+uwjOuwjeuwj+uwkeuwlCIsNCwi67CbIiw0LCLrsKTrsKXrsKfrsKnrsK3rsLDrsLHrsLTrsLjrsYDrsYHrsYPrsYTrsYXrsYnrsYzrsY3rsZDrsZ3rsoTrsoXrsojrsovrsozrso7rspTrspXrspciXSxbImJhNDEiLCLtio3tio7tio/tipLtipPtipTtipYiLDUsIu2Kne2Knu2Kn+2Koe2Kou2Ko+2KpSIsNiwi7YqtIl0sWyJiYTYxIiwi7Yqu7Yqv7Yqw7YqyIiw1LCLtirrtirvtir3tir7ti4Hti4MiLDQsIu2Liu2LjCIsNV0sWyJiYTgxIiwi7YuS7YuT7YuV7YuW7YuX7YuZ7Yua7Yub7YudIiw2LCLti6YiLDksIu2Lsu2Ls+2Lte2Ltu2Lt+2Lue2LuuuymeuymuuyoOuyoeuypOuyp+uyqOuysOuyseuys+uytOuyteuyvOuyveuzgOuzhOuzjeuzj+uzkOuzkeuzleuzmOuznOuztOuzteuztuuzuOuzvOu0hOu0heu0h+u0ieu0kOu0lOu0pOu0rOu1gOu1iOu1ieu1jOu1kOu1mOu1meu1pOu1qOu2gOu2geu2hOu2h+u2iOu2ieu2iuu2kOu2keu2k+u2leu2meu2muu2nOu2pOu2sOu2uOu3lOu3leu3mOu3nOu3qeu3sOu3tOu3uOu4gOu4g+u4heu4jOu4jeu4kOu4lOu4nOu4neu4n+u5hOu5heu5iOu5jOu5juu5lOu5leu5l+u5meu5muu5m+u5oOu5oeu5pCJdLFsiYmI0MSIsIu2LuyIsNCwi7YyC7YyE7YyGIiw1LCLtjI/tjJHtjJLtjJPtjJXtjJciLDQsIu2Mnu2Mou2MoyJdLFsiYmI2MSIsIu2MpO2Mpu2Mp+2Mqu2Mq+2Mre2Mru2Mr+2MsSIsNiwi7Yy67Yy+Iiw1LCLtjYbtjYftjYjtjYkiXSxbImJiODEiLCLtjYoiLDMxLCLruajruarrubDrubHrubPrubTrubXrubvrubzrub3ruoDruoTruozruo3ruo/rupDrupHrupjrupnruqjru5Dru5Hru5Tru5fru5jru6Dru6Pru6Tru6Xru6zrvIHrvIjrvInrvJjrvJnrvJvrvJzrvJ3rvYDrvYHrvYTrvYjrvZDrvZHrvZXrvpTrvrDrv4Xrv4zrv43rv5Drv5Trv5zrv5/rv6HsgLzsgZHsgZjsgZzsgaDsgajsgansgpDsgpHsgpTsgpjsgqDsgqHsgqPsgqXsgqzsgq3sgq/sgrDsgrPsgrTsgrXsgrbsgrzsgr3sgr/sg4Dsg4Hsg4Xsg4jsg4nsg4zsg5Dsg5jsg5nsg5vsg5zsg53sg6QiXSxbImJjNDEiLCLtjaoiLDE3LCLtjb7tjb/tjoHtjoLtjoPtjoXtjobtjociXSxbImJjNjEiLCLtjojtjontjortjovtjo7tjpIiLDUsIu2Omu2Om+2One2Onu2On+2OoSIsNiwi7Y6q7Y6s7Y6uIl0sWyJiYzgxIiwi7Y6vIiw0LCLtjrXtjrbtjrftjrntjrrtjrvtjr0iLDYsIu2Phu2Ph+2PiiIsNSwi7Y+RIiw1LCLsg6Xsg6jsg6zsg7Tsg7Xsg7fsg7nshIDshITshIjshJDshJXshJwiLDQsIuyEo+yEpOyEpuyEp+yErOyEreyEr+yEsOyEseyEtuyEuOyEueyEvOyFgOyFiOyFieyFi+yFjOyFjeyFlOyFleyFmOyFnOyFpOyFpeyFp+yFqOyFqeyFsOyFtOyFuOyGheyGjOyGjeyGjuyGkOyGlOyGluyGnOyGneyGn+yGoeyGpeyGqOyGqeyGrOyGsOyGveyHhOyHiOyHjOyHlOyHl+yHmOyHoOyHpOyHqOyHsOyHseyHs+yHvOyHveyIgOyIhOyIjOyIjeyIj+yIkeyImOyImeyInOyIn+yIoOyIqOyIqeyIq+yIrSJdLFsiYmQ0MSIsIu2Pl+2PmSIsNywi7Y+i7Y+kIiw3LCLtj67tj6/tj7Htj7Ltj7Ptj7Xtj7btj7ciXSxbImJkNjEiLCLtj7jtj7ntj7rtj7vtj77tkIDtkIIiLDUsIu2QiSIsMTNdLFsiYmQ4MSIsIu2QlyIsNSwi7ZCeIiwyNSwi7Iiv7Iix7Iiy7Ii07ImI7ImQ7ImR7ImU7ImY7Img7Iml7Ims7Imt7Imw7Im07Im87Im97Im/7IqB7IqI7IqJ7IqQ7IqY7Iqb7Iqd7Iqk7Iql7Iqo7Iqs7Iqt7Iq07Iq17Iq37Iq57Iuc7Iud7Iug7Iuj7Iuk7Iur7Ius7Iut7Iuv7Iux7Iu27Iu47Iu57Iu77Iu87IyA7IyI7IyJ7IyM7IyN7IyT7IyU7IyV7IyY7Iyc7Iyk7Iyl7Iyo7Iyp7I2F7I2o7I2p7I2s7I2w7I2y7I247I257I287I297I6E7I6I7I6M7I+A7I+Y7I+Z7I+c7I+f7I+g7I+i7I+o7I+p7I+t7I+07I+17I+47JCI7JCQ7JCk7JCs7JCwIl0sWyJiZTQxIiwi7ZC4Iiw3LCLtkYHtkYLtkYPtkYUiLDE0XSxbImJlNjEiLCLtkZQiLDcsIu2Rne2Rnu2Rn+2Roe2Rou2Ro+2RpSIsNywi7ZGu7ZGw7ZGx7ZGyIl0sWyJiZTgxIiwi7ZGzIiw0LCLtkbrtkbvtkb3tkb7tkoHtkoMiLDQsIu2Siu2SjO2SjiIsNSwi7ZKVIiw4LCLskLTskLzskL3skYjskaTskaXskajskazskbTskbXskbnskoDskpTskpzskrjskrzsk6nsk7Dsk7Hsk7Tsk7jsk7rsk7/slIDslIHslIzslJDslJTslJzslKjslKnslKzslLDslLjslLnslLvslL3slYTslYXslYjslYnslYrslYzslY3slY7slZPslZTslZXslZfslZjslZnslZ3slZ7slaDslaHslaTslajslbDslbHslbPslbTslbXslbzslb3sloDsloTslofslozslo3slo/slpHslpXslpfslpjslpzslqDslqnslrTslrXslrjslrnslrvslrzslr3slr7sl4QiLDYsIuyXjOyXjiJdLFsiYmY0MSIsIu2SniIsMTAsIu2SqiIsMTRdLFsiYmY2MSIsIu2SuSIsMTgsIu2Tje2Tju2Tj+2Tke2Tku2Tk+2TlSJdLFsiYmY4MSIsIu2TliIsNSwi7ZOd7ZOe7ZOgIiw3LCLtk6ntk6rtk6vtk63tk67tk6/tk7EiLDYsIu2Tue2Tuu2TvOyXkOyXkeyXlOyXmOyXoOyXoeyXo+yXpeyXrOyXreyXruyXsOyXtOyXtuyXt+yXvCIsNSwi7JiF7JiG7JiH7JiI7JiM7JiQ7JiY7JiZ7Jib7Jic7Jik7Jil7Jio7Jis7Jit7Jiu7Jiw7Jiz7Ji07Ji17Ji37Ji57Ji77JmA7JmB7JmE7JmI7JmQ7JmR7JmT7JmU7JmV7Jmc7Jmd7Jmg7Jms7Jmv7Jmx7Jm47Jm57Jm87JqA7JqI7JqJ7JqL7JqN7JqU7JqV7JqY7Jqc7Jqk7Jql7Jqn7Jqp7Jqw7Jqx7Jq07Jq47Jq57Jq67JuA7JuB7JuD7JuF7JuM7JuN7JuQ7JuU7Juc7Jud7Jug7Juh7JuoIl0sWyJjMDQxIiwi7ZO+Iiw1LCLtlIXtlIbtlIftlIntlIrtlIvtlI0iLDYsIu2Ulu2UmCIsNV0sWyJjMDYxIiwi7ZSeIiwyNV0sWyJjMDgxIiwi7ZS47ZS57ZS67ZS77ZS+7ZS/7ZWB7ZWC7ZWD7ZWFIiw2LCLtlY7tlZDtlZIiLDUsIu2Vmu2Vm+2Vne2Vnu2Vn+2Voe2Vou2Vo+ybqeybrOybsOybuOybueybveychOycheyciOycjOyclOycleycl+ycmeycoOycoeycpOycqOycsOycseycs+ycteyct+ycvOycveydgOydhOydiuydjOydjeydj+ydkSIsNywi7J2c7J2g7J2o7J2r7J207J217J247J287J297J2+7J6D7J6E7J6F7J6H7J6I7J6J7J6K7J6O7J6Q7J6R7J6U7J6W7J6X7J6Y7J6a7J6g7J6h7J6j7J6k7J6l7J6m7J6s7J6t7J6w7J607J687J697J6/7J+A7J+B7J+I7J+J7J+M7J+O7J+Q7J+Y7J+d7J+k7J+o7J+s7KCA7KCB7KCE7KCI7KCKIl0sWyJjMTQxIiwi7ZWk7ZWm7ZWn7ZWq7ZWs7ZWuIiw1LCLtlbbtlbftlbntlbrtlbvtlb0iLDYsIu2Whu2Wiu2WiyJdLFsiYzE2MSIsIu2WjO2Wje2Wju2Wj+2WkSIsMTksIu2Wpu2WpyJdLFsiYzE4MSIsIu2WqCIsMzEsIuygkOygkeygk+ygleygluygnOygneygoOygpOygrOygreygr+ygseyguOygvOyhgOyhiOyhieyhjOyhjeyhlOyhsOyhseyhtOyhuOyhuuyigOyigeyig+yiheyihuyih+yii+yijOyijeyilOyineyin+yioeyiqOyivOyiveyjhOyjiOyjjOyjlOyjleyjl+yjmeyjoOyjoeyjpOyjteyjvOyjveykgOykhOykheykhuykjOykjeykj+ykkeykmOykrOyktOylkOylkeyllOylmOyloOyloeylo+ylrOylsOyltOylvOymiOymieymjOymkOymmOymmeymm+ymneyngOyngeynhOynh+yniOyniuynkOynkeynkyJdLFsiYzI0MSIsIu2Xiu2Xi+2Xje2Xju2Xj+2Xke2XkyIsNCwi7Zea7Zec7ZeeIiw1LCLtl6btl6ftl6ntl6rtl6vtl63tl64iXSxbImMyNjEiLCLtl68iLDQsIu2Xtu2XuO2XuiIsNSwi7ZiC7ZiD7ZiF7ZiG7ZiH7ZiJIiw2LCLtmJIiXSxbImMyODEiLCLtmJYiLDUsIu2Yne2Ynu2Yn+2Yoe2You2Yo+2YpSIsNywi7ZiuIiw5LCLtmLrtmLvsp5Xsp5bsp5nsp5rsp5zsp53sp6Dsp6Lsp6Tsp6fsp6zsp63sp6/sp7Dsp7Hsp7jsp7nsp7zsqIDsqIjsqInsqIvsqIzsqI3sqJTsqJjsqKnsqYzsqY3sqZDsqZTsqZzsqZ3sqZ/sqaDsqaHsqajsqb3sqoTsqpjsqrzsqr3sq4Dsq4Tsq4zsq43sq4/sq5Hsq5Psq5jsq5nsq6Dsq6zsq7TsrIjsrJDsrJTsrJjsrKDsrKHsrYHsrYjsrYnsrYzsrZDsrZjsrZnsrZ3sraTsrbjsrbnsrpzsrrjsr5Tsr6Tsr6fsr6nssIzssI3ssJDssJTssJzssJ3ssKHssKLssKfssKjssKnssKzssK7ssLDssLjssLnssLsiXSxbImMzNDEiLCLtmL3tmL7tmL/tmYHtmYLtmYPtmYTtmYbtmYftmYrtmYztmY7tmY/tmZDtmZLtmZPtmZbtmZftmZntmZrtmZvtmZ0iLDRdLFsiYzM2MSIsIu2ZoiIsNCwi7Zmo7ZmqIiw1LCLtmbLtmbPtmbUiLDExXSxbImMzODEiLCLtmoHtmoLtmoTtmoYiLDUsIu2aju2aj+2ake2aku2ak+2alSIsNywi7Zqe7Zqg7ZqiIiw1LCLtmqntmqrssLzssL3ssL7ssYTssYXssYjssYzssZTssZXssZfssZjssZnssaDssaTssabssajssbDssbXsspjsspnsspzssqDssqjssqnssqvssqzssq3ssrTssrXssrjssrzss4Tss4Xss4fss4nss5Dss5Tss6Tss6zss7DstIHstIjstInstIzstJDstJjstJnstJvstJ3stKTstKjstKzstLnstZzstaDstaTstazsta3sta/stbHstbjstojstpTstpXstpjstpzstqTstqXstqfstqnstrDst4Tst4zst5Dst6jst6zst7Dst7jst7nst7vst73suITsuIjsuIzsuJTsuJnsuKDsuKHsuKTsuKjsuLDsuLHsuLPsuLUiXSxbImM0NDEiLCLtmqvtmq3tmq7tmq/tmrEiLDcsIu2auu2avCIsNywi7ZuG7ZuH7ZuJ7ZuK7ZuLIl0sWyJjNDYxIiwi7ZuN7ZuO7ZuP7ZuQ7ZuS7ZuT7ZuV7ZuW7ZuY7ZuaIiw1LCLtm6Htm6Ltm6Ptm6Xtm6btm6ftm6kiLDRdLFsiYzQ4MSIsIu2bru2br+2bse2bsu2bs+2btO2btiIsNSwi7Zu+7Zu/7ZyB7ZyC7ZyD7ZyFIiwxMSwi7ZyS7ZyT7ZyU7LmY7LmZ7Lmc7Lmf7Lmg7Lmh7Lmo7Lmp7Lmr7Lmt7Lm07Lm17Lm47Lm87LqE7LqF7LqH7LqJ7LqQ7LqR7LqU7LqY7Lqg7Lqh7Lqj7Lqk7Lql7Lqs7Lqt7LuB7Luk7Lul7Luo7Lur7Lus7Lu07Lu17Lu37Lu47Lu57LyA7LyB7LyE7LyI7LyQ7LyR7LyT7LyV7Lyc7Lyg7Lyk7Lys7Lyt7Lyv7Lyw7Lyx7Ly47L2U7L2V7L2Y7L2c7L2k7L2l7L2n7L2p7L2w7L2x7L207L247L6A7L6F7L6M7L6h7L6o7L6w7L+E7L+g7L+h7L+k7L+o7L+w7L+x7L+z7L+17L+87YCA7YCE7YCR7YCY7YCt7YC07YC17YC47YC8Il0sWyJjNTQxIiwi7ZyV7ZyW7ZyX7Zya7Zyb7Zyd7Zye7Zyf7ZyhIiw2LCLtnKrtnKztnK4iLDUsIu2ctu2ct+2cuSJdLFsiYzU2MSIsIu2cuu2cu+2cvSIsNiwi7Z2F7Z2G7Z2I7Z2KIiw1LCLtnZLtnZPtnZXtnZoiLDRdLFsiYzU4MSIsIu2dn+2dou2dpO2dpu2dp+2dqO2dqu2dq+2dre2dru2dr+2dse2dsu2ds+2dtSIsNiwi7Z2+7Z2/7Z6A7Z6CIiw1LCLtnortnovtgYTtgYXtgYftgYntgZDtgZTtgZjtgaDtgaztga3tgbDtgbTtgbztgb3tgoHtgqTtgqXtgqjtgqztgrTtgrXtgrftgrntg4Dtg4Htg4Ttg4jtg4ntg5Dtg5Htg5Ptg5Ttg5Xtg5ztg53tg6Dtg6Ttg6ztg63tg6/tg7Dtg7Htg7jthI3thLDthLHthLTthLjthLrthYDthYHthYPthYTthYXthYzthY3thZDthZTthZzthZ3thZ/thaHthajthazthbzthoTthojthqDthqHthqTthqjthrDthrHthrPthrXthrrthrzth4Dth5jth7Tth7jtiIftiIntiJDtiKztiK3tiLDtiLTtiLztiL3tiL/tiYHtiYjtiZwiXSxbImM2NDEiLCLtno3tno7tno/tnpEiLDYsIu2emu2enO2eniIsNV0sWyJjNmExIiwi7Ymk7YqA7YqB7YqE7YqI7YqQ7YqR7YqV7Yqc7Yqg7Yqk7Yqs7Yqx7Yq47Yq57Yq87Yq/7YuA7YuC7YuI7YuJ7YuL7YuU7YuY7Yuc7Yuk7Yul7Yuw7Yux7Yu07Yu47YyA7YyB7YyD7YyF7YyM7YyN7YyO7YyQ7YyU7YyW7Yyc7Yyd7Yyf7Yyg7Yyh7Yyl7Yyo7Yyp7Yys7Yyw7Yy47Yy57Yy77Yy87Yy97Y2E7Y2F7Y287Y297Y6A7Y6E7Y6M7Y6N7Y6P7Y6Q7Y6R7Y6Y7Y6Z7Y6c7Y6g7Y6o7Y6p7Y6r7Y6t7Y607Y647Y687Y+E7Y+F7Y+I7Y+J7Y+Q7Y+Y7Y+h7Y+j7Y+s7Y+t7Y+w7Y+07Y+87Y+97Y+/7ZCBIl0sWyJjN2ExIiwi7ZCI7ZCd7ZGA7ZGE7ZGc7ZGg7ZGk7ZGt7ZGv7ZG47ZG57ZG87ZG/7ZKA7ZKC7ZKI7ZKJ7ZKL7ZKN7ZKU7ZKp7ZOM7ZOQ7ZOU7ZOc7ZOf7ZOo7ZOs7ZOw7ZO47ZO77ZO97ZSE7ZSI7ZSM7ZSU7ZSV7ZSX7ZS87ZS97ZWA7ZWE7ZWM7ZWN7ZWP7ZWR7ZWY7ZWZ7ZWc7ZWg7ZWl7ZWo7ZWp7ZWr7ZWt7ZW07ZW17ZW47ZW87ZaE7ZaF7ZaH7ZaI7ZaJ7ZaQ7Zal7ZeI7ZeJ7ZeM7ZeQ7ZeS7ZeY7ZeZ7Zeb7Zed7Zek7Zel7Zeo7Zes7Ze07Ze17Ze37Ze57ZiA7ZiB7ZiE7ZiI7ZiQ7ZiR7ZiT7ZiU7ZiV7Zic7ZigIl0sWyJjOGExIiwi7Zik7Zit7Zi47Zi57Zi87ZmA7ZmF7ZmI7ZmJ7ZmL7ZmN7ZmR7ZmU7ZmV7ZmY7Zmc7Zmn7Zmp7Zmw7Zmx7Zm07ZqD7ZqF7ZqM7ZqN7ZqQ7ZqU7Zqd7Zqf7Zqh7Zqo7Zqs7Zqw7Zq57Zq77ZuE7ZuF7ZuI7ZuM7ZuR7ZuU7ZuX7ZuZ7Zug7Zuk7Zuo7Zuw7Zu17Zu87Zu97ZyA7ZyE7ZyR7ZyY7ZyZ7Zyc7Zyg7Zyo7Zyp7Zyr7Zyt7Zy07Zy17Zy47Zy87Z2E7Z2H7Z2J7Z2Q7Z2R7Z2U7Z2W7Z2X7Z2Y7Z2Z7Z2g7Z2h7Z2j7Z2l7Z2p7Z2s7Z2w7Z207Z287Z297Z6B7Z6I7Z6J7Z6M7Z6Q7Z6Y7Z6Z7Z6b7Z6dIl0sWyJjYWExIiwi5Ly95L2z5YGH5YO55Yqg5Y+v5ZG15ZOl5ZiJ5auB5a625pqH5p625p635p+v5q2M54+C55eC56i86Iub6IyE6KGX6KKI6Ki26LOI6LeP6Lu76L+m6aeV5Yi75Y205ZCE5oGq5oWk5q6854+P6ISa6Ka66KeS6Zaj5L6D5YiK5aK+5aW45aem5bmy5bm55oeH5o+A5p2G5p+s5qG/5r6X55mO55yL56O156iI56u/57Ch6IKd6Imu6Imx6Kur6ZaT5Lmr5Zad5pu35ri056Kj56ut6JGb6KSQ6J2O6Z6o5YuY5Z2O5aCq5bWM5oSf5oa+5oih5pWi5p+R5qmE5rib55SY55az55uj556w57S66YKv6ZGR6ZGS6b6VIl0sWyJjYmExIiwi5Yyj5bKs55Sy6IOb6YmA6ZaY5Ymb5aCI5aec5bKh5bSX5bq35by65b2K5oW35rGf55W655aG57Og57Wz57ax576M6IWU6Iih6JaR6KWB6Kyb6Yu86ZmN6bGH5LuL5Lu35YCL5Yex5aGP5oS35oS+5oWo5pS55qeq5ryR55al55qG55uW566H6Iql6JOL76SA6Y6n6ZaL5ZaA5a6i5Z2R76SB57Kz57656Ya15YCo5Y675bGF5beo5ouS5o2u5pOa5pOn5rig54Ks56Wb6Led6Lie76SC6YG96YmF6Yu45Lm+5Lu25YGl5be+5bu65oSG5qWX6IWx6JmU6LmH6Y216air5Lme5YKR5p2w5qGA5YSJ5YqN5YqS5qqiIl0sWyJjY2ExIiwi55686YiQ6buU5Yqr5oCv6L+y5YGI5oap5o+t5pOK5qC85qqE5r+A6IaI6Kah6ZqU5aCF54m954qs55SE57W557mt6IKp6KaL6K206YGj6bWR5oqJ5rG65r2U57WQ57y66Kij5YW85oWK566d6KyZ6YmX6Y6M5Lqs5L+T5YCe5YK+5YSG5YuB5YuN5Y2/5Z2w5aKD5bqa5b6R5oW25oas5pOO5pWs5pmv5pq75pu05qKX5raH54KF54Ox55Kf55Kl55OK55eZ56Gs56Os56uf56u257WF57aT6ICV6IC/6ISb6I6W6K2m6LyV6YCV6Y+h6aCD6aC46ama6a+o5L+C5ZWT5aC65aWR5a2j5bGG5oK45oiS5qGC5qKwIl0sWyJjZGExIiwi5qOo5rqq55WM55m456OO56i957O757mr57m86KiI6Kqh6LC/6ZqO6beE5Y+k5Y+p5ZGK5ZGx5Zu65aeR5a2k5bC75bqr5ou35pS35pWF5pWy5pqg5p6v5qeB5rK955e855qQ552+56i/576U6ICD6IKh6IaP6Ium6Iu96I+w6JeB6KCx6KK06Kql76SD6L6c6Yyu6ZuH6aGn6auY6byT5ZOt5pab5puy5qKP56mA6LC36bWg5Zuw5Z2k5bSR5piG5qKx5qON5ru+55Co6KKe6a+k5rGo76SE6aqo5L6b5YWs5YWx5Yqf5a2U5bel5oGQ5oGt5oux5o6n5pS754+Z56m66Jqj6LKi6Z6P5Liy5a+h5oiI5p6c55OcIl0sWyJjZWExIiwi56eR6I+T6KqH6Kqy6Leo6YGO6Y2L6aGG5buT5qeo6Je/6YOt76SF5Yag5a6Y5a+s5oWj5qO65qy+54GM55Cv55OY566h572Q6I+F6KeA6LKr6Zec6aSo5Yiu5oGd5ous6YCC5L6K5YWJ5Yyh5aOZ5buj5pug5rS454Ka54uC54+W562Q6IOx6ZGb5Y2m5o6b572r5LmW5YKA5aGK5aOe5oCq5oSn5ouQ5qeQ6a2B5a6P57SY6IKx6L2f5Lqk5YOR5ZKs5Zas5ayM5bag5ben5pSq5pWO5qCh5qmL54uh55qO55+v57We57+56Iag6JWO6Juf6LyD6L2O6YOK6aSD6amV6a6r5LiY5LmF5Lmd5LuH5L+x5YW35Yu+Il0sWyJjZmExIiwi5Y2A5Y+j5Y+l5ZKO5ZiU5Z215Z6i5a+H5baH5buQ5oe85ouY5pWR5p645p+p5qeL5q2Q5q+G5q+s5rGC5rqd54G454uX546W55CD556/55+p56m257W/6ICJ6Ie86IiF6IiK6Iuf6KGi6Kyz6LO86LuA6YCR6YKx6Ymk6Yq26aeS6amF6bOp6beX6b6c5ZyL5bGA6I+K6Z6g6Z6r6bq05ZCb56qY576k6KOZ6LuN6YOh5aCA5bGI5o6Y56qf5a6u5byT56m556qu6IqO6Lqs5YCm5Yi45Yu45Y235ZyI5ouz5o2y5qyK5reD55y35Y6l542X6JWo6Lm26ZeV5py65quD5r2w6Kmt6LuM6aWL76SG5pm35q246LK0Il0sWyJkMGExIiwi6ay876SH5Y+r5Zyt5aWO5o+G5qe754+q56GF56q656uF57O+6JG16KaP6LWz6YC16Zao5Yu75Z2H55WH562g6I+M6Yie76SI5qmY5YWL5YmL5YqH5oif5qOY5qW16ZqZ5YOF5Yqk5Yuk5oeD5pak5qC55qe/55G+562L6Iq56I+r6Kay6Ky56L+R6aWJ76SJ5LuK5aaX5pOS5piR5qqO55C056aB56a96Iqp6KG+6KG/6KWf76SK6Yym5LyL5Y+K5oCl5omx5rGy57Sa57Wm5LqY5YWi55+c6IKv5LyB5LyO5YW25YaA5Zec5Zmo5Zy75Z+65Z+85aSU5aWH5aaT5a+E5bKQ5bSO5bex5bm+5b+M5oqA5peX5pejIl0sWyJkMWExIiwi5pye5pyf5p2e5qOL5qOE5qmf5qy65rCj5rG95rKC5reH546Y55Cm55Cq55KC55Kj55W455W/56KB56Ov56WB56WH56WI56W6566V57SA57a6576I6ICG6ICt6IKM6KiY6K2P6LGI6LW36Yyh6Yyk6aOi6aWR6aiO6aiP6aml6bqS57eK5L225ZCJ5ouu5qGU6YeR5Zar5YS676SL76SM5aic5oem76SN5ouP5ou/76SOIiw1LCLpgqPvpJQiLDQsIuirvu+kme+kmu+km++knOaalu+kneeFlu+knu+kn+mbo++koOaNj+aNuuWNl++koeaej+aloOa5s++koueUt++ko++kpO+kpSJdLFsiZDJhMSIsIue0je+kpu+kp+ihsuWbiuWomO+kqCIsNCwi5LmD76St5YWn5aWI5p+w6ICQ76Su5aWz5bm05pKa56eK5b+15oGs5ouI5o275a+n5a+X5Yqq76Sv5aW05byp5oCS76Sw76Sx76Sy55GZ76SzIiw1LCLpp5HvpLkiLDEwLCLmv4PvpYTvpYXohr/ovrLmg7HvpYbvpYfohabvpYjvpYnlsL/vpYoiLDcsIuWrqeiopeadu+e0kO+lkiIsNSwi6IO976WY76WZ5bC85rOl5Yy/5rq65aSa6Iy2Il0sWyJkM2ExIiwi5Li55Lq25L2G5Zau5ZyY5aOH5b2W5pa35pem5qqA5q615rmN55+t56uv57Ce57ee6JuL6KKS6YSy6Y2b5pK75r6+542655a46YGU5ZWW5Z2N5oa65pOU5puH5reh5rmb5r2t5r6555ew6IGD6Ia96JWB6KaD6KuH6K2a6Yyf5rKT55WT562U6LiP6YGd5ZSQ5aCC5aGY5bmi5oiH5pKe5qOg55W257OW6J6z6buo5Luj5Z6I5Z2u5aSn5bCN5bKx5bi25b6F5oi05pOh546z6Ie66KKL6LK46ZqK6bub5a6F5b635oKz5YCS5YiA5Yiw5ZyW5aC15aGX5bCO5bGg5bO25baL5bqm5b6S5oK85oyR5o6J5pCX5qGDIl0sWyJkNGExIiwi5qO55quC5reY5rih5ruU5r+k54e+55uc552556ax56i76JCE6Kap6LOt6Lez6LmI6YCD6YCU6YGT6YO96Y2N6Zm26Z+c5q+S54CG54mY54qi542o552j56a/56+k57qb6K6A5aKp5oOH5pWm5pe95pq+5rKM54Se54eJ6LGa6aCT5Lmt56qB5Lud5Yas5YeN5YuV5ZCM5oan5p2x5qGQ5qOf5rSe5r2855a8556z56ul6IO06JGj6YqF5YWc5paX5p2c5p6T55eY56uH6I2z76Wa6LGG6YCX6aCt5bGv6IeA6Iqa6YGB6YGv6YiN5b6X5bad5qmZ54eI55m7562J6Jek6KyE6YSn6aiw5ZaH5oe276Wb55mp576FIl0sWyJkNWExIiwi6Ji/6J666KO46YKP76Wc5rSb54OZ54+e57Wh6JC976Wd6YWq6aex76We5LqC5Y215qyE5qyS54C+54ib6Jit6bie5YmM6L6j5bWQ5pOl5pSs5qyW5r+r57GD57qc6JeN6KWk6Ka95ouJ6IeY6KCf5buK5pyX5rWq54u855CF55Gv6J6C6YOe5L6G5bSN5b6g6JCK5Ya35o6g55Wl5Lqu5YCG5YWp5YeJ5qKB5qiR57Ku57Kx57On6Imv6KuS6Lyb6YeP5L625YS35Yu15ZGC5bus5oWu5oi+5peF5qua5r++56Sq6Jec6KCj6Zat6ami6amq6bqX6buO5Yqb5puG5q2354Cd56Sr6L2i6Z2C5oaQ5oiA5pSj5ryjIl0sWyJkNmExIiwi54WJ55KJ57e06IGv6JOu6Lym6YCj6Y2K5Ya95YiX5Yqj5rSM54OI6KOC5buJ5paC5q6u5r+C57C+54215Luk5Ly25Zu576Wf5bK65ba65oCc546y56yt576a57+O6IGG6YCe6Yi06Zu26Z2I6aCY6b2h5L6L5r6n56au6Ya06Zq35Yue76Wg5pKI5pOE5quT5r2e54CY54iQ55un6ICB6JiG6Jmc6Lev6LyF6Zyy6a2v6be66bm156KM56W/57ag6I+J6YyE6bm/6bqT6KuW5aOf5byE5pyn54Cn55OP57Gg6IG+5YSh54Co54mi56OK6LOC6LOa6LO06Zu35LqG5YOa5a+u5buW5paZ54eO55mC556t6IGK6JO8Il0sWyJkN2ExIiwi6YG86ayn6b6N5aOY5amB5bGi5qiT5rea5ryP55i757Sv57i36JSe6KS46Y+k6ZmL5YqJ5peS5p+z5qa05rWB5rqc54CP55CJ55Gg55WZ55ik56Gr6Kys6aGe5YWt5oiu6Zm45L6W5YCr5bSZ5req57a46Lyq5b6L5oWE5qCX76Wh6ZqG5YuS6IKL5Yec5YeM5qWe56ic57a+6I+x6Zm15L+a5Yip5Y6Y5ZCP5ZSO5bGl5oKn5p2O5qKo5rWs54qB54u455CG55KD76Wi55ei57Gs572557646I6J6KOP6KOh6YeM6YeQ6Zui6a+J5ZCd5r2+54eQ55KY6Je66Lqq6Zqj6bGX6bqf5p6X5reL55Cz6Ieo6ZyW56CsIl0sWyJkOGExIiwi56uL56yg57KS5pGp55Gq55ey56K856Oo6aas6a2U6bq75a+e5bmV5ryg6Iac6I6r6YKI5LiH5Y2N5aip5beS5b2O5oWi5oy95pmp5pu85ru/5ryr54Gj556e6JCs6JST6KC76LyT6aWF6bC75ZSc5oq55pyr5rKr6IyJ6KWq6Z265Lqh5aaE5b+Y5b+Z5pyb57ay572U6IqS6Iyr6I696Lye6YKZ5Z+L5aa55aqS5a+Q5pin5p6a5qKF5q+P54Wk57216LK36LOj6YKB6a2F6ISI6LKK6ZmM6amA6bql5a2f5rCT54yb55uy55uf6JCM5Yaq6KaT5YWN5YaV5YuJ5qOJ5rKU55yE55yg57a/57es6Z2i6bq15ruFIl0sWyJkOWExIiwi6JSR5Yal5ZCN5ZG95piO5pqd5qSn5rqf55q/556R6IyX6JOC6J6f6YWp6YqY6bO06KKC5L6u5YaS5Yuf5aeG5bi95oWV5pG45pG55pqu5p+Q5qih5q+N5q+b54mf54mh55GB55y455+b6ICX6Iq86IyF6KyA6Kyo6LKM5pyo5rKQ54mn55uu552m56mG6bap5q2/5rKS5aSi5pym6JKZ5Y2v5aKT5aaZ5buf5o+P5pi05p2z5ri654yr56uX6IuX6Yyo5YuZ5ber5oau5oeL5oiK5ouH5pKr5peg5qWZ5q2m5q+L54Sh54+355Wd57mG6Iie6IyC6JWq6Kqj6LK/6Zyn6bWh5aKo6buY5YCR5YiO5ZC75ZWP5paHIl0sWyJkYWExIiwi5rG257SK57SL6IGe6JqK6ZaA6Zuv5Yu/5rKV54mp5ZGz5aqa5bC+5bWL5b2M5b6u5pyq5qK25qWj5ri85rmE55yJ57Gz576O6JaH6KyO6L+36Z2h6bu05bK35oK25oSN5oar5pWP5pe75pe85rCR5rOv546f54+J57eh6ZaU5a+G6Jyc6KyQ5Ymd5Y2a5ouN5pCP5pKy5py05qi45rOK54+A55Ke566U57KV57ib6IaK6Ii26JaE6L+r6Zu56aeB5Ly05Y2K5Y+N5Y+b5ouM5pCs5pSA5paR5qeD5rOu5r2Y54+t55WU55ii55uk55u856OQ56O756Ss57WG6Iis6J+g6L+U6aCS6aOv5YuD5ouU5pKl5rik5r2RIl0sWyJkYmExIiwi55m86LeL6Yax6Ymi6auu6a2D5YCj5YKN5Z2K5aao5bCo5bmH5b235oi/5pS+5pa55peB5piJ5p6L5qac5ruC56OF57Sh6IKq6IaA6Iir6Iqz6JKh6JqM6Kiq6KyX6YKm6Ziy6b6Q5YCN5L+z76Wj5Z+55b6Y5ouc5o6S5p2v5rmD54SZ55uD6IOM6IOa6KO06KO16KSZ6LOg6Lyp6YWN6Zmq5Lyv5L2w5bib5p+P5qCi55m955m+6a2E5bmh5qiK54Wp54eU55Wq76Wk57mB6JWD6Jep6aOc5LyQ562P572w6Zal5Yeh5biG5qK15rC+5rGO5rOb54qv56+E6IyD5rOV55C65YO75YqI5aOB5pOY5qqX55Kn55mWIl0sWyJkY2ExIiwi56Kn6JiX6Zei6Zy576Wl5Y2e5byB6K6K6L6o6L6v6YKK5Yil556l6bGJ6byI5LiZ5YCC5YW15bGb5bm35pie5pi65p+E5qOF54Kz55SB55eF56eJ56ud6Lyn6aSg6aiI5L+d5aCh5aCx5a+25pmu5q2l5rSR5rm65r2954+k55Sr6I+p6KOc6KST6K2c6LyU5LyP5YOV5YyQ5Y2c5a6T5b6p5pyN56aP6IW56Iyv6JSU6KSH6KaG6Ly56Ly76aal6bCS5pys5Lm25L+45aWJ5bCB5bOv5bOw5o2n5qOS54O954ai55Cr57ir6JOs6JyC6YCi6YuS6bOz5LiN5LuY5L+v5YKF5YmW5Ymv5ZCm5ZKQ5Z+g5aSr5ammIl0sWyJkZGExIiwi5a2a5a215a+M5bqc76Wm5om25pW35pan5rWu5rql54i256ym57C/57y26IWQ6IWR6Iaa6ImA6IqZ6I6p6KiD6LKg6LOm6LO76LW06La66YOo6Yec6Zic6ZmE6aeZ6bOn5YyX5YiG5ZCp5Zm05aKz5aWU5aWu5b+/5oak5omu5piQ5rG+54Sa55uG57KJ57Oe57Sb6Iqs6LOB6Zuw76Wn5L2b5byX5b2/5ouC5bSp5pyL5qOa56G857mD6bWs5LiV5YKZ5YyV5Yyq5Y2R5aaD5ami5bqH5oKy5oaK5omJ5om55paQ5p6H5qan5q+U5q+W5q+X5q+Y5rK476Wo55C155e656CS56KR56eV56eY57KD57eL57+h6IKlIl0sWyJkZWExIiwi6IS+6IeC6I+y6Jya6KOo6Kq56K2s6LK76YSZ6Z2e6aOb6by75Zqs5ayq5b2s5paM5qqz5q6v5rWc5r+x54CV54md546t6LKn6LOT6aC75oaR5rC36IGY6aiB5LmN5LqL5Lqb5LuV5Ly65Ly85L2/5L+f5YO/5Y+y5Y+45ZSG5Zej5Zub5aOr5aWi5aiR5a+r5a+65bCE5bez5bir5b6Z5oCd5o2o5pac5pav5p+25p+75qKt5q275rKZ5rOX5rij54CJ542F56CC56S+56WA56Wg56eB56+p57SX57Wy6IKG6IiN6I6O6JOR6JuH6KOf6KmQ6Kme6Kyd6LOc6LWm6L6t6YKq6aO86aef6bqd5YmK76Wp5pyU76WqIl0sWyJkZmExIiwi5YKY5Yiq5bGx5pWj5rGV54+K55Sj55ad566X6JKc6YW46Zyw5Lm35pKS5q6654We6Jap5LiJ76Wr5p2J5qOu5riX6Iqf6JSY6KGr5o+35r6B6YiS6aKv5LiK5YK35YOP5YSf5ZWG5Zaq5ZiX5a2A5bCZ5bOg5bi45bqK5bqg5buC5oOz5qGR5qmh5rmY54i954mA54uA55u456Wl566x57+U6KOz6Ke06Kmz6LGh6LOe6Zyc5aGe55K96LO95ZeH76Ws56mh57Si6Imy54my55Sf55Sl76Wt56yZ5aKF5aO75ba85bqP5bq25b6Q5oGV5oqS5o2/5pWN5pqR5puZ5pu45qCW5qOy54qA55Ge562u57Wu57eW572yIl0sWyJlMGExIiwi6IOl6IiS6Jav6KW/6KqT6YCd6Yuk6buN6byg5aSV5aWt5bit5oOc5piU5pmz5p6Q5rGQ5reF5r2f55+z56Kp6JOG6YeL6Yyr5LuZ5YOK5YWI5ZaE5ayL5a6j5omH5pW+5peL5riy54W955CB55GE55KH55K/55ms56aq57ea57mV576o6IW66Iaz6Ii56Jia6J+s6Km16Lej6YG46YqR6ZCl6aWN6a6u5Y2o5bGR5qWU5rOE5rSp5rir6IiM6Jab6KS76Kit6Kqq6Zuq6b2n5Ymh5pq55q6y57qW6J++6LSN6ZaD6Zmd5pSd5raJ54eu76Wu5Z+O5aeT5a6s5oCn5oO65oiQ5pif5pmf54yp54+555ub55yB562sIl0sWyJlMWExIiwi6IGW6IGy6IWl6Kqg6YaS5LiW5Yui5q2y5rSX56iF56y557Sw76Wv6LKw5Y+s5Ziv5aGR5a615bCP5bCR5bei5omA5o6D5pCU5pit5qKz5rK85raI5rqv54Cf54Kk54eS55Sm55aP55aO55iZ56yR56+g57Cr57Sg57S56JSs6JWt6JiH6Ki06YCN6YGh6YK16Yq36Z+26ai35L+X5bGs5p2f5raR57Kf57qM6KyW6LSW6YCf5a2r5be95pCN6JOA6YGc6aOh546H5a6L5oKa5p2+5ree6Kif6Kqm6YCB6aCM5Yi376Ww54GR56KO6Y6W6KGw6YeX5L+u5Y+X5Ze95Zua5Z6C5aO95auC5a6I5bKr5bOA5bil5oSBIl0sWyJlMmExIiwi5oiN5omL5o6I5pCc5pS25pW45qi55q6K5rC05rSZ5ryx54en54up542455CH55Ky55im552h56eA56mX56uq57K557aP57as57mh576e6ISp6Iyx6JKQ6JOa6Jeq6KKW6Kqw6K6Q6Ly46YGC6YKD6YWs6YqW6Yq56ZqL6Zqn6Zqo6ZuW6ZyA6aCI6aaW6auT6aya5Y+U5aG+5aSZ5a2w5a6/5reR5r2a54af55Ch55K56IKF6I+95beh5b6H5b6q5oGC5pes5qCS5qWv5qmT5q6J5rS15rez54+j55u+556s562N57SU6ISj6Iic6I2A6JO06JWj6Kmi6KuE6YaH6Yye6aCG6aa05oiM6KGT6L+w6Yml5bSH5bSnIl0sWyJlM2ExIiwi5bWp55Gf6Iad6J2o5r+V5ou+57+S6KS26KWy5Lie5LmY5YOn5Yud5Y2H5om/5piH57mp6KCF6Zme5L6N5YyZ5Zi25aeL5aqk5bC45bGO5bGN5biC5byR5oGD5pa95piv5pmC5p6+5p+054yc55+i56S657+F6JKU6JON6KaW6Kmm6Kmp6Kuh6LGV6LG65Z+05a+U5byP5oGv5out5qSN5q6W5rmc54aE56+S6J2V6K2Y6Lu+6aOf6aO+5Ly45L6B5L+h5ZG75aig5a645oS85paw5pmo54e855Sz56We57Sz6IWO6Iej6I6Y6Jaq6JeO6JyD6KiK6Lqr6L6b76Wx6L+F5aSx5a6k5a+m5oKJ5a+p5bCL5b+D5rKBIl0sWyJlNGExIiwi76Wy5rex54CL55Sa6Iqv6Ku25LuA5Y2B76Wz6ZuZ5rCP5Lqe5L+E5YWS5ZWe5ail5bOo5oiR54mZ6Iq96I6q6Ju+6KGZ6Kid6Zi/6ZuF6aST6bSJ6bWd5aCK5bKz5ba95bmE5oOh5oSV5o+h5qiC5ril6YSC6Y2U6aGO6bCQ6b235a6J5bK45oyJ5pmP5qGI55y86ZuB6Z6N6aGU6a6f5pah6KyB6LuL6Za85ZS15bKp5beW5bq15pqX55mM6I+06ZeH5aOT5oq854uO6bSo5Luw5aSu5oCP5pi75q6D56en6bSm5Y6T5ZOA5Z+D5bSW5oSb5puW5rav56KN6Im+6ZqY6Z2E5Y6E5om85o6W5ray57iK6IWL6aGNIl0sWyJlNWExIiwi5qu7572M6bav6bia5Lmf5YC75Ya25aSc5oO55o+25qSw54i66IC276W06YeO5byx76W176W257SE6Iul6JGv6JK76Jel6LqN76W35L2v76W476W55aOk5a2D5oGZ5o+a5pSY5pWt5pqY76W65qWK5qij5rSL54CB54Ws55eS55iN56az56mw76W7576K76W86KWE76W96K6T6YeA6Zm976W+6aSK5ZyE5b6h5pa85ryB55iA56am6Kqe6aat6a2a6b2s5YSE5oa25oqR5qqN6IeG5YGD5aCw5b2m54SJ6KiA6Ku65a286JiW5L+65YS85Zq05aWE5o6p5re55baq5qWt5YaG5LqI5L2Z76W/76aA76aB5aaC76aCIl0sWyJlNmExIiwi76aD5q2f5rGd76aE55K156SW76aF6IiH6ImF6Iy56Ly/6L2d76aG6aSY76aH76aI76aJ5Lqm76aK5Z+f5b255piT76aL76aM55ar57m56K2v76aN6YCG6amb5Zql5aCn5ae45aif5a6076aO5bu276aP76aQ5o2Q5oy776aR5qS95rKH5rK/5raO5raT5re15ryU76aS54Of54S254WZ76aT54eD54eV76aU56GP56Gv76aV562157ej76aW57iv76aX6KGN6Luf76aY76aZ76aa6Ymb76ab6bO276ac76ad76ae5oKF5raF76af54ax76ag76ah6Zax5Y6t76ai76aj76ak5p+T76al54KO54Sw55Cw6Im26IuSIl0sWyJlN2ExIiwi76am6Za76aul6bm95puE76an54eB6JGJ76ao76ap5aGL76aq76ar5ba45b2x76as5pig5pqO5qW55qau5rC45rOz5ri25r2B5r+a54Cb54Cv54WQ54ef542w76at55Gb76au55OU55uI56mO57qT76av76aw6Iux6Kmg6L+O76ax6Y2I76ay6ZyZ76az76a05LmC5YCq76a15YiI5Y+h5puz5rGt5r+K54yK552/56mi6Iqu6Jed6JiC76a26KOU6Kmj6K296LGr76a36Yqz76a46ZyT6aCQ5LqU5LyN5L+J5YKy5Y2I5ZC+5ZCz5Zea5aGi5aK65aWn5aib5a+k5oKf76a55oeK5pWW5pe/5pmk5qKn5rGa5r6zIl0sWyJlOGExIiwi54OP54as542S56296JyI6Kqk6bCy6byH5bGL5rKD542E546J6Yi65rqr55Gl55if56mp57iV6JiK5YWA5aOF5pOB55Ou55SV55mw57+B6YKV6ZuN6aWU5rim55Om56qp56qq6Iel6JuZ6J246Kib5amJ5a6M5a6b5qKh5qSA5rWj546p55CT55Cs56KX57ep57+r6ISY6IWV6I6e6LGM6Ziu6aCR5puw5b6A5pe65p6J5rGq546L5YCt5aiD5q2q55+u5aSW5bWs5beN54yl55WP76a676a75YOl5Ye55aCv5aSt5aaW5aea5a+l76a876a95bai5ouX5pCW5pKT5pO+76a+5puc76a/5qmI76eA54e/55Gk76eBIl0sWyJlOWExIiwi56qI56qv57mH57me6ICA6IWw76eC6J+v6KaB6Kyg6YGZ76eD6YKA6aWS5oW+5qyy5rW057if6KSl6L6x5L+R5YKt5YaX5YuH5Z+H5aKJ5a655bq45oWC5qaV5raM5rmn5rq254aU55Gi55So55Ss6IGz6Iy46JOJ6LiK6Y6U6Y+e76eE5LqO5L2R5YG25YSq5Y+I5Y+L5Y+z5a6H5a+T5bCk5oSa5oaC5pe054mb546X55GA55uC56WQ56aR56a557SG57696IqL6JeV6Jme6L+C6YGH6YO16Yeq6ZqF6Zuo6Zup5YuW5b2n5pet5pix5qCv54Wc56i26YOB6aCK5LqR76eF5qmS5q6e5r6Q54aJ6ICY6Iq46JWTIl0sWyJlYWExIiwi6YGL6ZqV6Zuy6Z+76JSa6ayx5LqQ54aK6ZuE5YWD5Y6f5ZOh5ZyT5ZyS5Z6j5aqb5auE5a+D5oCo5oS/5o+05rKF5rS55rmy5rqQ54iw54y/55GX6IuR6KKB6L2F6YGg76eG6Zmi6aGY6bSb5pyI6LaK6Yme5L2N5YGJ5YOe5Y2x5ZyN5aeU5aiB5bCJ5oWw5pqQ5rit54iy55GL57ev6IOD6JCO6JGm6JS/6J2f6KGb6KSY6KyC6YGV6Z+L6a2P5Lmz5L6R5YSS5YWq76eH5ZSv5Zap5a265a6l5bm85bm95bq+5oKg5oOf5oSI5oSJ5o+E5pS45pyJ76eI5p+U5p+a76eJ5qWh5qWi5rK55rSn76eK5ri476eLIl0sWyJlYmExIiwi5r+h54y254y376eM55Gc55Sx76eN55mS76eO76eP57at6Ie+6JC46KOV6KqY6Kub6Kut6Liw6LmC6YGK6YC+6YG66YWJ6YeJ6Y2u76eQ76eR5aCJ76eS5q+T6IKJ6IKy76eT76eU5YWB5aWr5bC576eV76eW5r2k546n6IOk6LSH76eX6YiX6ZaP76eY76eZ76ea76eb6IG/5oiO54Cc57Wo6J6N76ec5Z6g5oGp5oWH5q636Kq+6YqA6Zqx5LmZ5ZCf5rer6JSt6Zmw6Z+z6aOu5o+W5rOj6YKR5Yed5oeJ6Ia66be55L6d5YCa5YSA5a6c5oSP5oe/5pOs5qSF5q+F55aR55+j576p6Imk6JaP6J+76KGj6Kq8Il0sWyJlY2ExIiwi6K2w6Yar5LqM5Lul5LyK76ed76ee5aS35aeo76ef5bey5byb5b2b5oCh76eg76eh76ei76ej54i+54+l76ek55Ww55eN76el56e776em6ICM6ICz6IKE6Iuh6I2R76en76eo6LK96LKz6YKH76ep76eq6aO06aSM76er76es54C355uK57+K57+M57+86Kya5Lq65LuB5YiD5Y2w76et5ZK95Zug5ae75a+F5byV5b+N5rmu76eu76ev57Wq6Iy176ew6JqT6KqN76ex6Z2t6Z2376ey76ez5LiA5L2a5L2+5aO55pel5rqi6YC46Y6w6aa55Lu75aOs5aaK5aeZ5oGB76e076e156iU76e26I2P6LOD5YWl5Y2EIl0sWyJlZGExIiwi76e376e476e55LuN5Ymp5a2V6Iq/5LuU5Yi65ZKo5aeJ5ae/5a2Q5a2X5a2c5oGj5oWI5ruL54KZ54Wu546G55O355a156OB57Sr6ICF6Ieq6Iyo6JSX6JeJ6Kuu6LOH6ZuM5L2c5Yu65Zq85par5pio54G854K454i157a96IqN6YWM6ZuA6bWy5a2x5qOn5q6Y5r2655ue5bKR5pqr5r2b566057Cq6KC26Zuc5LiI5LuX5Yyg5aC05aK75aOv5aWs5bCH5biz5bqE5by15o6M5pqy5p2W5qif5qqj5qyM5ry/54mG76e6542Q55KL56ug57Kn6IW46Ief6Ien6I6K6JGs6JSj6JaU6JeP6KOd6LST6Yas6ZW3Il0sWyJlZWExIiwi6Zqc5YaN5ZOJ5Zyo5a6w5omN5p2Q5qC95qKT5ri95ruT54G957ih6KOB6LKh6LyJ6b2L6b2O54it566P6KuN6Yya5L2H5L2O5YSy5ZKA5aeQ5bqV5oq15p215qWu5qiX5rKu5ria54uZ54yq55a9566457S16Iun6I+56JGX6Je36Kmb6LKv6LqH6YCZ6YK46ZuO6b2f5Yuj5ZCK5auh5a+C5pGY5pW15ru054uE76e755qE56mN56yb57GN57i+57+f6I276Kyr6LOK6LWk6Leh6Lmf6L+q6L+56YGp6Y+R5L2D5L265YKz5YWo5YW45YmN5Ymq5aGh5aG85aWg5bCI5bGV5bub5oKb5oiw5qCT5q6/5rCI5r6xIl0sWyJlZmExIiwi54WO55Cg55Sw55S455WR55my562M566L566t56+G57qP6Kmu6Ly+6L2J6Yi/6YqT6Yyi6ZCr6Zu76aGa6aGr6aSe5YiH5oiq5oqY5rWZ55mk56uK56+A57W25Y2g5bK+5bqX5ry454K557KY6ZyR6a6O6bue5o6l5pG66J225LiB5LqV5Lqt5YGc5YG15ZGI5aeD5a6a5bmA5bqt5bu35b6B5oOF5oy65pS/5pW05peM5pm25pm45p++5qWo5qqJ5q2j5rGA5reA5reo5rif5rme54Ce54Kh546O54+955S6552b56KH56aO56iL56m957K+57aO6ImH6KiC6Kuq6LKe6YSt6YWK6YeY6Ymm6YuM6Yyg6ZyG6Z2WIl0sWyJmMGExIiwi6Z2c6aCC6byO5Yi25YqR5ZW85aCk5bid5byf5oKM5o+Q5qKv5r+f56Wt56ys6IeN6Ja66KO96Ku46LmE6YaN6Zmk6Zqb6Zy96aGM6b2K5L+O5YWG5YeL5Yqp5Ziy5byU5b2r5o6q5pON5pep5pmB5pu65pu55pyd5qKd5qOX5qe95ryV5r2u54Wn54el54iq55Kq55y656WW56Wa56ef56ig56qV57KX57Of57WE57mw6IKH6Je76Jqk6KmU6Kq/6LaZ6LqB6YCg6YGt6Yej6Zi76ZuV6bOl5peP57CH6Laz6Y+D5a2Y5bCK5Y2S5ouZ54yd5YCn5a6X5b6e5oKw5oWr5qOV5reZ55Cu56iu57WC57ac57ix6IWrIl0sWyJmMWExIiwi6Liq6Li16Y2+6ZCY5L2Q5Z2Q5bem5bqn5oyr572q5Li75L2P5L6P5YGa5aed6IOE5ZGq5ZGo5Ze+5aWP5a6Z5bee5bua5pmd5pyx5p+x5qCq5rOo5rSy5rmK5r6N54K354+g55aH57GM57SC57Ss57ai6Iif6Jub6Ki76KqF6LWw6LqK6Lyz6YCx6YWO6YWS6ZGE6aeQ56u557Kl5L+K5YSB5YeG5Z+I5a+v5bO75pmZ5qi95rWa5rqW5r+s54SM55Wv56uj6KCi6YCh6YG16ZuL6ae/6IyB5Lit5Luy6KGG6YeN5Y295qub5qWr5rGB6JG65aKe5oaO5pu+5ouv54Od55SR55eH57mS6JK46K2J6LSI5LmL5Y+qIl0sWyJmMmExIiwi5ZKr5Zyw5Z2A5b+X5oyB5oyH5pGv5pSv5peo5pm65p6d5p6z5q2i5rGg5rKa5rys55+l56Cl56WJ56WX57SZ6IKi6ISC6Iez6Iqd6Iq36JyY6KqM76e86LSE6La+6YGy55u056iZ56i357mU6IG35ZSH5ZeU5aG15oyv5pCi5pmJ5pmL5qGt5qab5q6E5rSl5rqx54+N55Go55Kh55Wb55a555uh55ye556L56em57iJ57id6Ie76JSv6KKX6Ki66LOR6Lur6L6w6YCy6Y6t6Zmj6Zmz6ZyH5L6E5Y+x5aeq5auJ5biZ5qGO55OG55a+56ep56qS6Iaj6Jut6LOq6LeM6L+t5paf5pyV76e95Z+35r2X57ed6LyvIl0sWyJmM2ExIiwi6Y+26ZuG5b615oey5r6E5LiU5L6Y5YCf5Y+J5Zef5bWv5beu5qyh5q2k56OL566a76e+6LmJ6LuK6YGu5o2J5pC+552A56qE6Yyv6ZG/6b2q5pKw5r6v54em55Ko55Oa56uE57CS57qC57Ky57qY6K6a6LSK6ZG96aSQ6aWM5Yi55a+f5pOm5pyt57Su5YOt5Y+D5aG55oWY5oWZ5oe65pas56uZ6K6S6K6W5YCJ5YCh5Ym15ZSx5ai85bug5b2w5oS05pWe5piM5pi25pqi5qeN5ruE5ryy54yW55ih56qT6IS56ImZ6I+W6JK85YK15Z+w5a+A5a+o5b2p5o6h56Cm57a16I+c6JSh6YeH6Ye15YaK5p+1562WIl0sWyJmNGExIiwi6LKs5YeE5aa75oK96JmV5YCc76e/5YmU5bC65oW95oia5ouT5pOy5pal5ruM55ig6ISK6Lmg6Zmf6Zq75Luf5Y2D5ZaY5aSp5bed5pOF5rOJ5re6546U56m/6Iib6Jam6LOk6LiQ6YG36Yen6Zeh6Zih6Z+G5Ye45ZOy5ZaG5b655pKk5r6I57a06Lyf6L2N6ZC15YOJ5bCW5rK+5re755Sb556757C957Gk6Km56KuC5aCe5aa+5biW5o2354mS55aK552r6Kuc6LK86LyS5buz5pm05re46IG96I+B6KuL6Z2R6a+W76iA5YmD5pu/5raV5ruv57eg6Kum6YCu6YGe6auU5Yid5Ym/5ZOo5oaU5oqE5oub5qKiIl0sWyJmNWExIiwi5qSS5qWa5qi154KS54Sm56Gd56SB56SO56eS56iN6IKW6Im46IuV6I2J6JWJ6LKC6LaF6YWi6YaL6Yau5L+D5ZuR54et55+X6JyA6Ke45a+45b+W5p2R6YKo5Y+i5aGa5a+15oKk5oaB5pGg57i96IGw6JSl6YqD5pKu5YKs5bSU5pyA5aKc5oq95o6o5qSO5qW45qie5rmr55q656eL6Iq76JCp6KuP6Lao6L+96YSS6YWL6Yac6YyQ6YyY6Y6a6Zub6ai26bCN5LiR55Wc56Wd56u6562R56+J57iu6JOE6LmZ6Lm06Lu46YCQ5pil5qS/55GD5Ye65pyu6buc5YWF5b+g5rKW6J+y6KGd6KG35oK06Ia16JCDIl0sWyJmNmExIiwi6LSF5Y+W5ZC55Zi05ai25bCx54KK57+g6IGa6ISG6Iet6Laj6YaJ6amf6bey5YG05LuE5Y6g5oO75ris5bGk5L6I5YCk5Zek5bOZ5bmf5oGl5qKU5rK75reE54a+55eU55e055mh56ia56mJ57eH57e7572u6Ie06Jqp6Lyc6ZuJ6aaz6b2S5YmH5YuF6aOt6Kaq5LiD5p+S5ryG5L615a+i5p6V5rKI5rW455Cb56Cn6Yed6Y286J+E56ek56ix5b+r5LuW5ZKk5ZS+5aKu5aal5oOw5omT5ouW5py25qWV6Ii16ZmA6aax6aed5YCs5Y2T5ZWE5Z2876iB5omY76iC5pOi5pmr5p+d5r+B5r+v55Ci55C46KiXIl0sWyJmN2ExIiwi6ZC45ZGR5ZiG5Z2m5b2I5oaa5q2O54GY54Kt57a76KqV5aWq6ISr5o6i55yI6IC96LKq5aGU5pCt5qa75a6V5biR5rmv76iD6JWp5YWM5Y+w5aSq5oCg5oWL5q6G5rGw5rOw56ye6IOO6IuU6LeG6YKw6aKx76iE5pOH5r6k5pKR5pSE5YWO5ZCQ5Zyf6KiO5oWf5qG276iF55eb562S57Wx6YCa5aCG5qeM6IW/6KSq6YCA6aC55YG45aWX5aas5oqV6YCP6ayq5oWd54m56ZeW5Z2h5amG5be05oqK5pKt5pO65p235rOi5rS+54is55C256C057236Iqt6Leb6aCX5Yik5Z2C5p2/54mI55Oj6LKp6L6m6YiRIl0sWyJmOGExIiwi6Ziq5YWr5Y+t5o2M5L2p5ZSE5oKW5pWX5rKb5rW/54mM54u956iX6KaH6LKd5b2t5r6O54O56Iao5oSO5L6/5YGP5omB54mH56+H57eo57+p6YGN6Z6t6aiZ6LK25Z2q5bmz5p6w6JCN6KmV5ZCg5ayW5bmj5bui5byK5paD6IK66JS96ZaJ6Zmb5L2I5YyF5YyN5YyP5ZKG5ZO65ZyD5biD5oCW5oqb5oqx5o2V76iG5rOh5rWm55ax56Cy6IOe6ISv6Iue6JGh6JKy6KKN6KSS6YCL6Yuq6aO96a6R5bmF5pq05pud54CR54iG76iH5L+15Ym95b2q5oWT5p2T5qiZ5ryC55Oi56Wo6KGo6LG56aOH6aOE6amDIl0sWyJmOWExIiwi5ZOB56if5qWT6Ku36LGK6aKo6aau5b285oqr55ay55qu6KKr6YG/6ZmC5Yy55by85b+F5rOM54+M55Wi55aL562G6Iu+6aad5LmP6YC85LiL5L2V5Y6m5aSP5buI5piw5rKz55GV6I236J2m6LOA6YGQ6Zye6bCV5aOR5a246JmQ6KyU6ba05a+S5oGo5oKN5pex5rGX5ryi5r6j54Ca572V57+w6ZaR6ZaS6ZmQ6Z+T5Ymy6L2E5Ye95ZCr5ZK45ZWj5ZaK5qq75ra157eY6Imm6Yqc6Zm36bm55ZCI5ZOI55uS6Juk6Zak6ZeU6Zmc5Lqi5LyJ5aeu5aum5be35oGS5oqX5p2t5qGB5rKG5riv57y46IKb6IiqIl0sWyJmYWExIiwi76iI76iJ6aCF5Lql5YGV5ZKz5Z6T5aWa5a2p5a6z5oeI5qW35rW354Cj6J+56Kej6Kmy6Kun6YKC6aet6aq45Yq+5qC45YCW5bm45p2P6I2H6KGM5Lqr5ZCR5Zqu54+m6YSV6Z+/6aSJ6aWX6aaZ5ZmT5aKf6Jmb6Kix5oay5qu254276LuS5q2H6Zqq6amX5aWV54iA6LWr6Z2p5L+U5bO05bym5oe45pmb5rOr54Kr546E546554++55yp552N57WD57Wi57ij6Ii36KGS76iK6LOi6YmJ6aGv5a2R56m06KGA6aCB5auM5L+g5Y2U5aS+5bO95oy+5rW554u56ISF6ISH6I6i6YuP6aCw5Lqo5YWE5YiR5Z6LIl0sWyJmYmExIiwi5b2i5rOC5ruO54CF54GQ54Kv54aS54+p55Gp6I2K6J6i6KGh6YCI6YKi6Y6j6aao5YWu5b2X5oOg5oWn5pqz6JWZ6LmK6Yav6Z6L5LmO5LqS5ZG85aOV5aO65aW95bK15byn5oi25omI5piK5pmn5q+r5rWp5reP5rmW5ru45r6U5r+g5r+p54Gd54uQ55Cl55Ga55Og55qT56Wc57OK57ie6IOh6Iqm6JGr6JK/6JmO6Jmf6J206K236LGq6Y6s6aCA6aGl5oOR5oiW6YW35ama5piP5re35ri+55C/6a2C5b+95oOa56yP5ZOE5byY5rGe5rOT5rSq54OY57SF6Jm56KiM6bS75YyW5ZKM5ayF5qi654Gr55W1Il0sWyJmY2ExIiwi56aN56a+6Iqx6I+v6Kmx6K2B6LKo6Z2076iL5pO05pSr56K656K756mr5Li45Zaa5aWQ5a6m5bm75oKj5o+b5q2h5pml5qGT5riZ54Wl55Kw57SI6YKE6amp6bCl5rS75ruR54y+6LGB6ZeK5Yew5bmM5b6o5oGN5oO25oSw5oWM5pmD5pmE5qal5rOB5rmf5ruJ5r2i54WM55Kc55qH56+B57Cn6I2S6J2X6YGR6ZqN6buD5Yyv5Zue5bu75b6K5oGi5oKU5oe35pmm5pyD5qqc5reu5r6u54Gw542q57mq6Ia+6Iy06JuU6Kqo6LOE5YqD542y5a6W5qmr6ZCE5ZOu5ZqG5a2d5pWI5paF5puJ5qKf5raN5reGIl0sWyJmZGExIiwi54i76IK06YW16amN5L6v5YCZ5Y6a5ZCO5ZC85ZaJ5ZeF5bi/5b6M5py954Wm54+d6YCF5Yub5Yuz5aGk5aOO54SE54aP54e76Jaw6KiT5pqI6Jao5Zan5pqE54WK6JCx5Y2J5ZaZ5q+B5b2Z5b695o+u5pqJ54WH6Kux6Lyd6bq+5LyR5pC654OL55Wm6Jmn5oGk6K2O6be45YWH5Ye25YyI5rS26IO46buR5piV5qyj54KY55eV5ZCD5bG557SH6KiW5qyg5qy95q2G5ZC45oGw5rS957+V6IiI5YOW5Yee5Zac5Zmr5ZuN5aes5ayJ5biM5oaZ5oaY5oix5pme5pum54aZ54a554a654qn56an56iA576y6KmwIl1dCgovKioqLyB9KSwKLyogMTg0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0gW1siODc0MCIsIuSPsOSwsuSYg+SWpuSVuPCniafktbfklrPwp7Kx5LOi8KezheOuleSctuSdhOSxh+SxgPCkir/wo5iX8KeNkvCmuovwp4OS5LGX8KqNkeSdj+SXmuSyhfCnsazktIfkqqTkmqHwpqyj54il8KWplPChqaPwo7iG8KO9oeaZjeWbuyJdLFsiODc2NyIsIue2leWknfCorrnjt7TpnLTwp6+v5a+b8KG1nuWqpOOYpfCpurDlq5Hlrrfls7zmna7olpPwqaWF55Gh55Kd46G18KG1k/Cjmp7wpoCh47usIl0sWyI4N2ExIiwi8KWjnuOrteervOm+l/CkhaHwqKSN8KOHqvCgqorwo4me5IyK6JKE6b6W6ZCv5KSw6JiT5aKW6Z2K6YiY56eQ56iy5pmg5qip6KKd55GM56+F5p6C56is5YmP6YGG45Om54+E8KW2ueeThum/h+Wes+Skr+WRjOSEsfCjmo7loJjnqbLwp62l6K6P5Jqu8Ka6iOSGgfCltpnnrq7wopK86b+I8KKTgfCik4nwopOM6b+J6JSE8KOWu+SCtOm/iuSTofCqt7/mi4Hnga7pv4siXSxbIjg4NDAiLCLjh4AiLDQsIvCghIzjh4XwoIOR8KCDjeOHhuOHh/Cgg4vwob+o44eI8KCDiuOHieOHiuOHi+OHjPCghI7jh43jh47EgMOBx43DgMSSw4nEmsOIxYzDk8eRw5Lgv7/DisyE4bq+4L+/w4rMjOG7gMOKxIHDoceOw6DJkcSTw6nEm8OoxKvDrceQw6zFjcOzx5LDssWrw7rHlMO5x5bHmMeaIl0sWyI4OGExIiwix5zDvOC/v8OqzIThur/gv7/DqsyM4buBw6rJoeKPmuKPmyJdLFsiODk0MCIsIvCqjqnwoYWFIl0sWyI4OTQzIiwi5pSKIl0sWyI4OTQ2Iiwi5Li95rud6bWO6YefIl0sWyI4OTRjIiwi8KecteaSkeS8muS8qOS+qOWFluWFtOWGnOWHpOWKoeWKqOWMu+WNjuWPkeWPmOWbouWjsOWkhOWkh+WksuWktOWtpuWunuWun+WymuW6huaAu+aWieafvuaghOahpea1jueCvOeUtee6pOe6rOe6uue7h+e7j+e7n+e8hue8t+iJuuiLj+iNr+inhuiuvuivoui9pui9p+i9riJdLFsiODlhMSIsIueQkeezvOe3jealhuerieWIpyJdLFsiODlhYiIsIumGjOeiuOmFnuiCvCJdLFsiODliMCIsIui0i+iDtvCgp6ciXSxbIjg5YjUiLCLogp/pu4fks43pt4npuIzksL7wqbe28KeAjum4ivCqhLPjl4EiXSxbIjg5YzEiLCLmuproiL7nlJkiXSxbIjg5YzUiLCLkpJHpqazpqo/pvpnnpofwqJGs8KG3ivCgl5Dwoqum5Lik5LqB5LqA5LqH5Lq/5Lur5Ly345GM5L6947mI5YCD5YKI45G945KT45Kl5YaG5aSF5Yeb5Ye85YiF5LqJ5Ym55YqQ5Yyn45eH5Y6p45WR5Y6w45WT5Y+C5ZCj45Wt45Wy45qB5ZKT5ZKj5ZK05ZK55ZOQ5ZOv5ZSY5ZSj5ZSo45aY5ZS/45al45a/5ZeX45eFIl0sWyI4YTQwIiwi8Ke2hOWUpSJdLFsiOGE0MyIsIvCgsYLwoLSV8KWEq+WWkPCis4bjp6zwoI2B6LmG8KS2uPCpk6XkgZPwqIK+55268KKwuOOotOSflfCohZ3wpqey8KS3quaTnfCgtbzwoL608KCzlfChg7Tmko3oub7woLqW8KCwi/CgvaTworKp8KiJlvCkk5MiXSxbIjhhNjQiLCLwoLWG8KmpjfCog6nkn7TwpLqn8KKzgumqsuOpp/Cpl7Tjv63jlIbwpYuH8KmflPCno4jworWE6bWu6aCVIl0sWyI4YTc2Iiwi5I+Z8KaCpeaStOWTo/CitYzwoq+K8KGBt+Onu/Chga8iXSxbIjhhYTEiLCLwppua8KaclvCnpqDmk6rwpYGS8KCxg+i5qPCihqHwqK2M8KCcsSJdLFsiOGFhYyIsIuSgi/Cghqnjv7rlobPworaNIl0sWyI4YWIyIiwi8KSXiPCgk7zwpoKX8KC9jPCgtpbllbnkgrvkjroiXSxbIjhhYmIiLCLkqrTwoqmm8KGCneiGqumjtfCgtpzmjbnjp77wop216LeA5Zqh5pG847mDIl0sWyI4YWM5Iiwi8KqYgfCguInwoquP8KKziSJdLFsiOGFjZSIsIvChg4jwo6eC46aS46iG8KiKm+OVuPCluYnwooOH5ZmS8KC8sfCisrLwqZyg45K85rC98KS4uyJdLFsiOGFkZiIsIvCnlbTworqL8KKIiPCqmZvwqLON8KC5uvCgsLTwpqCc576T8KGDj/CioIPwoqS545e78KWHo/CguozwoL6N8KC6quO+k/CgvLDwoLWH8KGFj/CguYwiXSxbIjhhZjYiLCLwoLqr8KCuqfCgtYjwoYOA8KGEveO/ufCimpbmkLLwoL6tIl0sWyI4YjQwIiwi8KOPtPCnmLnwoq+O8KC1vvCgtb/worGR8KKxleOomPCgupjwoYOH8KC8rvCqmLLwpq2Q8KizkvCotpnwqLOK6Zaq5ZOM6IuE5Za5Il0sWyI4YjU1Iiwi8Km7g+mwpumqtvCnnZ7woreu54WA6IWt6IOs5bCc8KaVsuiEtOOel+WNn/Cogr3phrbwoLu68KC4j/CgubfwoLu745ed8KS3q+OYifCgs5blmq/wop618KGDifCguJDwoLm48KGBuPChhYjwqIiH8KGRlfCgubnwpLmQ8KK2pOWplPChgJ3woYCe8KGDtfChg7blnpzwoLiRIl0sWyI4YmExIiwi8KealPCoi43woL618KC5u/Clhb7jnIPwoL628KGGgPCli5jwqoq98KSnmvChoLrwpIW38KiJvOWimeWJqOOYmvClnL3nrrLlrajkoIDkrKzpvKfkp6fpsJ/pro3wpa208KOEveWXu+OXsuWaieS4qOWkgvChr4Hwr6G46Z2R8KCChuS5m+S6u+OUvuWwo+W9keW/hOOjuuaJjOaUteatuuawteawuueBrOeIq+S4rOeKrfCko6nnvZLnpLvns7nnvZPwpomq45OBIl0sWyI4YmRlIiwi8KaNi+iAguiCgPCmmJLwpqWR5Y2d6KGk6KeB8KeisuiuoOi0nemShemVuOmVv+mXqPCouI/pn6bpobXpo47po57ppaPwqaCQ6bG86bif6buE5q2v76SH5Li38KCCh+mYneaIt+mSoiJdLFsiOGM0MCIsIuWAu+a3vvCpsbPpvqbjt4nooo/wpIWO54G35bO15Kyg8KWHjeOVmfCltLDmhKLwqKiy6L6n6Ye254aR5pyZ54668KOKgfCqhIfjsovwoaaA5KyQ56Ok55CC5Yau8Kicj+SAieapo/CqirrkiKPomI/woKmv56iq8Kmlh/Coq6rpnZXngY3ljKTwooG+6Y+055uZ8Kino+m+p+efneS6o+S/sOWCvOS4r+S8l+m+qOWQtOe2i+WikuWjkPChtrblupLlupnlv4LwopyS5paLIl0sWyI4Y2ExIiwi8KOPueakmeapg/CjsaPms78iXSxbIjhjYTciLCLniIDwpJSF546M47ub8KSok+WsleeSueiug/ClsqTwpZqV56qT56+s57OD57ms6Iu46JaX6b6p6KKQ6b6q6Lq56b6r6L+P6JWf6aeg6Yih6b6s8Ki2ufChkL/kgbHkiqLlqJoiXSxbIjhjYzkiLCLpoajmnavkibblnL0iXSxbIjhjY2UiLCLol5bwpKW76Iq/8KeEjeSygfCmtbTltbvwpqyV8Ka+vum+rem+ruWulum+r+abp+e5m+a5l+eniuO2iOSTg/CjiZbwop6W5I6a5JS2Il0sWyI4Y2U2Iiwi5bOV8KOsmuirueWxuOO0kvCjlZHltbjpvrLnhZfklZjwpIOs8KG4o+Sxt+OluOORivCghqTwprGB6KuM5L608KCIueWmv+iFrOmhlvCpo7rlvLsiXSxbIjhkNDAiLCLwoK6fIl0sWyI4ZDQyIiwi8KKHgfCopa3khILkmrvwqYG547yH6b6z8KqGteSDuOOfluSbt/CmsYbkhbzwqJqy8KePv+SVreOjlPClkprklaHklJvktonksbvktbbkl6rjv4jwpKyP45mh5JOe5JK95Iet5bS+5bWI5bWW47e846CP5bak5ba546Cg46C45bmC5bq95byl5b6D46SI46SU46S/46WN5oOX5oS95bOl46aJ5oa35oa55oeP46a45ois5oqQ5oul5oyY46e45ZqxIl0sWyI4ZGExIiwi46iD5o+i5o+75pCH5pGa46mL5pOA5bSV5Zih6b6f46qX5paG46q95pe/5pmT46uy5pqS46yi5pyW462C5p6k5qCA462Y5qGK5qKE462y462x46275qSJ5qWD54mc5qWk5qaf5qaF46685qeW46+d5qml5qm05qmx5qqC46+s5qqZ46+y5qqr5qq15quU5qu25q6B5q+B5q+q5rG15rKq47OL5rSC5rSG5rSm5raB47Ov5rak5rax5riV5riY5rip5rqG8KingOa6u+a7oua7mum9v+a7qOa7qea8pOa8tOO1hvCjvYHmvoHmvr7jtarjtbXnhrflspnjtorngKzjtpHngZDngZTnga/ngb/ngonwoIyl5I+B45ex8KC7mCJdLFsiOGU0MCIsIvCju5flnr7wpruT54S+8KWfoOOZjuamovCor6nlrbTnqYnwpaOh8KmTmeeppeepvfClpqznqrvnqrDnq4Lnq4Pnh5HwppKN5IeK56ua56ud56uq5Iev5ZKy8KWwgeesi+etleesqfCljI7wpbO+566i562v6I6c8KWutPCmsb/nr5DokKHnrpLnrrjwpbSg47at8KWxpeiSkuevuuewhuewtfCls4HnsYTnsoPwpKKC57Km5pm98KSVuOezieezh+ezpuextOezs+ezteezjiJdLFsiOGVhMSIsIue5p+SUnfCmuYTntZ3wpruW55KN57aJ57ar54S157az57eS8KSBl/CmgKnnt6TjtJPnt7XwoZ+557el8KiNree4nfCmhKHwpoWa57mu57qS5Iyr6ZGs57in572A572B572H56S28KaLkOmnoee+l/CmjZHnvqPwoZmh8KCBqOSVnPCjnabklIPwqIy657+68KaSieiAheiAiOiAneiAqOiAr/CqgofwprOD6IC76IC86IGh8KKclOSmifCmmKbwo7ej8KabqOacpeiCp/CoqYjohIfohJrlorDwopu25rG/8KaSmPCkvrjmk6fwoZKK6IiY8KGhnuapk/CkqaXwpKqV5JG66Iip8KCsjfCmqZLwo7W+5L+58KGTveiTouiNovCmrIrwpKan8KOUsPChnbPwo7e46Iqq5qSb8K+mlOSHmyJdLFsiOGY0MCIsIuiVi+iLkOiMmvCguJbwoZ6045uB8KOFvfCjlZroibvoi6LojJjwo7qL8Ka2o/CmrIXwpq6X8KOXjuO2v+iMneWXrOiOheSUi/CmtqXojqzoj4Hoj5Pjkb7wpruU5qmX6JWa45KW8Ka5gvCiu6/okZjwpa+k6JGx47eT5JOk5qqn6JGK8KOyteelmOiSqPCmrpbwprm38Ka5g+iTnuiQj+iOkeSSoOiSk+iTpPClspHkiYDwpbOA5JWD6JS05auy8Ka6meSUp+iVs+SUluaev+iYliJdLFsiOGZhMSIsIvComKXwqJi76JeB8KeCiOiYgvChloLwp4ON8K+msuSVquiYqOOZiPChoqLlj7fwp46a6Jm+6J2x8KqDuOifrvCisKfonrHon5rooI/lmaHomazmoZbkmI/ooYXooYbwp5eg8KO2ufCnl6TooZ7oopzkmZvoorToorXmj4Hoo4Xnnbfwp5yP6KaH6KaK6Kam6Kap6Kan6Ka88Kiopeinp/CnpKTwp6q96Kqc556T6Ye+6KqQ8KepmeerqfCnrLrwo76P5JyT8KesuOeFvOisjOisn/ClkLDwpZWl6Ky/6K2M6K2N6Kqp8KSpuuiukOium+iqr/Chm5/kmJXooY/ospvwp7WU8Ke2j/Cvp5TjnKXwp7WT6LOW8Ke2mPCntr3otJLotIPwoaSQ6LOb54Gc6LSR8KSzieO7kOi1tyJdLFsiOTA0MCIsIui2qfCogILwoYCU8KSmiuOtvPCohrzwp4SM56un6Lqt6Lq26LuD6YuU6LyZ6Lyt8KiNpfCokJLovqXpjIPwqoqf8KCpkOi+s+SkqvCop57wqJS98KO2u+W7uPCjiaLov7nwqoCU8KiavPColIHwooyl46aA8Ka7l+mAt/ColLzwp6q+6YGh8KiVrPComIvpgqjwqJyT6YOE8KibpumCrumDvemFp+OrsOmGqemHhOeyrPCopLPwobqJ6YiO5rKf6YmB6Ymi8KWWuemKufCoq4bwo7Kb8KisjPCll5siXSxbIjkwYTEiLCLwoLSx6Yys6Y2r8KirofCor6vngo/lq4PwqKui8KirpeSlpemJhPCor6zwqLC58Kivv+mNs+mRm+i6vOmWhemWpumQpumWoOa/tuSKufCimbrwqJuY8KGJvPCjuK7kp5/msJzpmbvpmpbkhazpmqPwpruV5oea6Zq256O18KiroOmaveWPjOSmofCmsrjwoIm08KaQkPCpgq/wqYOl8KSrkfChpJXwo4yK6Zyx6JmC6Zy25KiP5JS95JaF8KSrqeeBteWtgemcm+mdnPCph5XpnZflrYrwqYer6Z2f6ZCl5YOQ8KOCt/Cjgrzpnonpnp/pnrHpnr7pn4Dpn5Lpn6DwpZGs6Z+u55Cc8KmQs+mfv+mftfCpkJ3wp6W65KuR6aC06aCz6aGL6aGm46yO8KeFteO1kfCgmLDwpIWcIl0sWyI5MTQwIiwi8KWchumjiumit+mjiOmjh+Srv/CmtKfwoZuT5Zaw6aOh6aOm6aOs6Y246aS58KSoqeStsvCpoZfwqaSF6ae16aiM6ai76aiQ6amY8KWcpeObhPCpgrHwqa+V6aug6aui8KmshemrtOSwjumslOmsrfComIDlgLTprLTwpqao46OD8KOBvemtkOmtgPCptL7lqYXwoaGj6a6O8KSJi+mwgumvv+mwjPCpuajpt5Twqb638KqGkvCqhqvwqoOh8KqEo/Cqh5/ptb7ptoPwqoS06biO5qKIIl0sWyI5MWExIiwi6beE8KKFm/CqhpPwqoig8KGku/CqiLPptLnwqoK58KqKtOm6kOm6lem6num6ouS0tOm6qum6r/CkjaTpu4HjraDjp6XjtJ3kvLLjnr7wqLCr6byC6byI5K6W6ZCk8Ka2oum8l+m8lum8ueWan+Waium9hemmuPCpgovpn7Lokb/pvaLpvannq5zpvo7niJbkrr7wpKW18KSmu+eFt/Ckp7jwpI2I8KSpkeeOnvCor5rwoaO656af8KilvvCouLbpjanpj7PwqKmE6Yus6Y6B6Y+L8KilrPCkkrnniJfju6vnnbLnqYPng5DwpJGz8KSPuOeFvvChn6/ngqPwoaK+8KOWmeO7h/ChooXwpZCv8KGfuOOcovChm7vwoaC545uh8KGdtPCho5Hwpb2L45yj8KGbgOWdm/CkqKXwoY++8KGKqCJdLFsiOTI0MCIsIvChj4bwoZK26JSD8KOapuiUg+iRlfCkppTwp4Wl8KO4sfCllZzwo7u78KeBkuSTtPCjm67wqaad8Ka8puafueOcs+OwleO3p+WhrPChpKLmoJDkgZfwo5y/8KSDofCkgovwpISP8KawoeWTi+WanvCmmrHlmpLwoL+f8KCuqPCguI3pj4bwqKyT6Y6c5Lu45YSr46CZ8KSQtuS6vPCgkaXwoI2/5L2L5L6K8KWZkeWpqPCghqvwoI+L46aZ8KCMivCgkJTjkLXkvKnwoIuA8Ki6s/CgibXoq5rwoIiM5LqYIl0sWyI5MmExIiwi5YON5YSN5L6i5LyD8KSojvCjuorkvYLlgK7lgazlgoHkv4zkv6XlgZjlg7zlhZnlhZvlhZ3lhZ7mubbwo5aV8KO4ufCjur/mtbLwoaKE8KO6ieWGqOWHg/Cgl6Dkk53woJKj8KCSkvCgkpHotbrwqKqc8KCcjuWJmeWKpPCgobPli6Hpja7kmbrnhozwpI6M8KCwoPCkpqzwoYOk5qeR8KC4neeRueO7nueSmeeQlOeRlueOmOSujvCkqrzwpIKN5Y+Q45aE54iP8KSDieWWtPCgjYXlk43woK+G5Zyd6Ymd6Zu06Y2m5Z+d5Z6N5Z2/45i+5aOL5aqZ8KiphvChm7rwoZ2v8KGckOWorOWmuOmKj+WpvuWrj+WokvClpYbwoaez8KGhofCkipXjm7XmtIXnkYPlqKHwpbqDIl0sWyI5MzQwIiwi5aqB8Kivl/CgkJPpj6DnkozwoYyD54SF5KWy6ZCI8Kinu+mOveOeoOWwnuWynuW5nuW5iPChppbwoaW88KOrruW7jeWtj/ChpIPwoaSE45yB8KGioOObnfChm77jm5PohKrwqKmH8KG2uvCjkbLwqKao5byM5byO8KGkp/ChnqvlqavwoZy75a2E6JiU8KeXveihoOaBvvCioaDwopir5b+b47q48KKWr/Cilr7wqYKI8Ka9s+aHgPCggL7woIGG8KKYm+aGmeaGmOaBtfCispvworSH8KSblPCphY0iXSxbIjkzYTEiLCLmkbHwpJml8KKtquOoqfCirKLwo5GQ8KmjqvCiubjmjLfwqpGb5pK25oyx5o+R8KSno/CitafmiqTworKh5pC75pWr5qWy46+08KOCjvCjiq3wpKaJ8KOKq+WUjfCji6DwoaOZ8KmQv+abjvCjionwo4az46ug5IaQ8KWWhPCorKLwpZaP8KGbvPCllZvwpZCl56Ou8KOEg/ChoKrwo4i045Gk8KOIj/CjhoLwpIuJ5pqO8Ka0pOaZq+Suk+aYsPCnobDwober5pmj8KOLkvCji6HmmJ7wpaGy46OR8KOguvCjnrzjrpnwo56i8KOPvueTkOOuluaej/CkmKrmorbmoJ7jr4Tmqr7joaPwo5+V8KSSh+aos+apkuarieashfChpJLmlJHmopjmqYzjr5fmqbrmrZfwo7+A8KOymumOoOmLsvCor6rwqKuLIl0sWyI5NDQwIiwi6YqJ8KiAnvCop5zpkafmtqXmvIvwpKes5rWn8KO9v+O2j+a4hPCkgLzlqL3muIrloYfmtKTnoYLnhLvwpIya8KSJtueDseeJkOeKh+eKlPCkno/wpJyl5YW58KSqpPCgl6vnkbrwo7u48KOZn/CkqYrwpKSX8KW/oeO8huO6sfCkq5/wqLCj8KO8teaCp+O7s+eTjOeQvOmOh+eQt+SSn/Cmt6rklZHnloPjvaPwpLOZ8KS0huO9mOeVleeZs/Cql4bjrJnnkajwqKuM8KSmq/Ckpo7jq7siXSxbIjk0YTEiLCLjt43wpKmO47u/8KSnhfCko7Pph7rlnLLpjYLwqKuj8KGhpOWDn/CliKHwpYen55248KOIsuecjuecj+edu/Ckmpfwo56B46me8KSjsOeQuOeSm+O6v/CkqrrwpKuH5IOI8KSqlvCmhq7pjIfwpZaB56Ce56KN56KI56OS54+Q56WZ8KedgfClm6PkhI7nppvokpbnpqXmqK3wo7u656i656e05IWu8KGbpuSEsumIteensfCgtYzwpKaM8KCKmfCjtrrwoZ2u45aX5ZWr45Ww45qq8KCHlPCgsI3nq6LlqZnwopu18KWqr/ClqpzlqI3woImb56Ow5aiq8KWvhuervuSHueexneexreSIkfClrrPwpbq88KW6puezjfCkp7nwoZ6w57KO57G857Ku5qqy57ec57iH57eT572O8KaJoSJdLFsiOTU0MCIsIvCmhZzwp62I57aX8KW6guSJqvCmrbXwoKSW5p+W8KCBjvCjl4/ln4TwppCS8KaPuPCkpaLnv53nrKfwoKCs8KWrqfCltYPnrIzwpbiO6aem6JmF6amj5qic8KOQv+OnovCkp7fwppat6aif8KaWoOiSgPCnhKfwprOR5JOq6IS35JCC6IOG6ISJ6IWC8KaetOmjg/CmqYLoiaLoiaXwpqmR6JGT8Ka2p+iYkPCniJvlqobkhb/woaGA5ayr8KGioeWrpPCho5jomqDwr6a88KO2j+igrfCnkKLlqIIiXSxbIjk1YTEiLCLooa7kvYXooofoor/oo6bopaXopY3wpZqD6KWU8KeehfCnnoTwqK+18KivmfCorpzwqKe547qt6JKj5Ju15JuP45+y6Ki96Kic8KmRiOW9jemIq/CkioTml5TnhKnng4TwoaGF6bWt6LKf6LOp8Ke3nOWmmuefg+WnsOSNruOblOi4qui6p/CksInovLDovYrki7TmsZjmvrvwooyh5KKb5r255rqL8KGfmumvqeOatfCkpK/pgrvpgpfllbHkpIbphrvpkITwqKmL5IGi8KirvOmQp/CosJ3wqLC76JOl6Kir6ZaZ6Zan6ZaX6ZaW8Ki0tOeRheO7gvCko7/wpKmC8KSPquO7p/CjiKXpmo/wqLun8Ki5pvCouaXju4zwpKet8KSpuPCjv67nkJLnkavju7zpnYHwqYKwIl0sWyI5NjQwIiwi5qGH5Kid8KmCk/Cln5/pnZ3pjajwqKaJ8KiwpvCorK/wpo6+6Yq65ayR6K2p5KS854+58KSIm+mem+mdsemkuPCgvKblt4HwqK+F8KSqsumgn/Cpk5rpi7bwqZeX6Yel5JOA8KitkPCkqafwqK2k6aOc8KipheO8gOmIquSkpeiQlOmku+mljfCnrIbjt73pppvkra/ppqrpqZzwqK2l8KWjiOaqj+mooeWrvumor/Cpo7HkrpDwqaWI6aa85K695K6X6Y295aGy8KGMguWgovCkprgiXSxbIjk2YTEiLCLwoZOo56GE8KKcn/Cjtrjmo4Xjtb3pkZjjpKfmhZDwop6B8KKlq+aEh+mxj+mxk+mxu+mwtemwkOmtv+mvj/CpuK3prp/wqoe18KqDvum0oeSyrvCkhITpuJjksrDptIzwqoa08KqDrfCqg7PwqaSv6bal6JK98Ka4kvCmv5/wpq6C6Je85JSz8Ka2pPCmuoTwprew6JCg6Jeu8Ka4gPCjn5fwpoGk56ei8KOWnPCjmYDkpK3wpKee47Wi6Y+b6Yq+6Y2I8KCKv+eiuemJt+mRjeS/pOORgOmBpPCllZ3noL3noZTnorbnoYvwoZ2X8KOHifCkpYHjmprkvbLmv5rmv5nngJ7ngJ7lkJTwpIa15Z675aOz5Z6K6bSW5Z+X54S045Kv8KSGrOeHq/CmsYDwpL6X5ayo8KGetfCoqYkiXSxbIjk3NDAiLCLmhIzlq47lqIvkirzwpJKI45ys5K278KinvOmOu+mOuPCho5bwoLyd6JGy8KazgPChkJPwpIu68KKwpvCkj4HlppTwo7a38Kadgee2qPCmhZvwpoKk8KSmufCkpovwqKe66Yul54+i47up55K08Kito/Chop/ju6HwpKqz5quY54+z54+747uW8KSovvCkqpTwoZ+Z8KSppvCgjqfwoZCk8KSnpeeRiPCkpJbngqXwpKW26YqE54+m6Y2f8KCTvumMsfCoq47wqKiW6Y6G8Kivp/Cll5XkpLXwqKqC54WrIl0sWyI5N2ExIiwi8KSlg/Cgs7/lmqTwoJia8KCvq/CgsrjllILnp4TwoZ+657e+8KGbgvCkqZDwoaGS5JSu6ZCB45yK8KirgPCkpq3lprDwoaK/8KGig/CnkoTlqqHjm6Lwo7Wb45qw6Ymf5am58KiqgfChoaLpjbTjs43woKq05KqW46aK5YO047Wp47WM8KGOnOeFteSLu/CoiJjmuI/wqYOk5JOr5rWX8Ke5j+eBp+ayr+OzlvCjv63wo7it5riC5ryM47Wv8KCPteeVkeOavOOTiOSagOO7muShseWnhOmJruSkvui9gfCosJzwpq+A5aCS5Z+I45uW8KGRkueDvvCkjaLwpKmx8KK/o/ChirDwoo695qK55qWn8KGOmPCjk6Xwp6+08KObn/CoqoPwo5+W8KOPuvCksp/mqJrwo5qt8Kayt+iQvuSTn+STjiJdLFsiOTg0MCIsIvCmtKbwprWR8KaygvCmv57mvJfwp4SJ6Iy98KGcuuiPrfCmsoDwp4GT8KGfm+WmieWqgvChnrPlqaHlqbHwoaSF8KSHvOOcreWnr/ChnLzjm4fnho7pjpDmmprwpIql5amu5air8KSKk+aoq/Cju7nwp5y28KSRm/Cki4rnhJ3wpImZ8KinoeS+sPCmtKjls4LwpJOO8Ke5jfCkjr3mqIzwpImW8KGMhOeCpueEs/Ckj6njtqXms5/wr6Cl8KSpj+e5peWnq+W0r+O3s+W9nPCkqZ3woZ+f57ak6JCmIl0sWyI5OGExIiwi5ZKF8KOruvCjjIDwoIiU5Z2+8KCjlfCgmJnjv6Xwob6e8KqKtueAg/CphZvltbDnjo/ns5PwqKmZ8KmQoOS/iOe/p+eLjeeMkPCnq7TnjLjnjLnwpZu2542B542I47qp8KesmOmBrOeHtfCko7Lnj6Hoh7bju4rnnIzju5HmsqLlm73nkJnnkJ7nkJ/ju6Lju7Dju7Tju7rnk5PjvI7jvZPnlYLnla3nlbLnlo3jvbznl4jnl5zjv4DnmY3jv5fnmbTjv5znmbrwpL2c54aI5Zij6KaA5aGp5ICd552D5IC55p2h5IGF45eb556Y5IGq5IGv5bGe556+55+L5aOy56CY54K556Cc5IKo56C556GH56GR56Gm6JGI8KWUteeks+agg+eksuSEgyJdLFsiOTk0MCIsIuSEieemkeemmei+u+eohui+vOSFp+eqkeSGsueqvOiJueSHhOerj+erm+SHj+S4oeetouetrOetu+ewkuewm+SJoOSJuuexu+eynOSKjOeyuOSKlOezrei+k+eDgPCgs4/nt4/nt5Tnt5Dnt73nvq7nvrTnip/kjpfogKDogKXnrLnogK7ogLHogZTjt4zlnrTngqDogrfog6nkj63ohIznjKrohI7ohJLnlaDohJTkkIHjrLnohZbohZnohZoiXSxbIjk5YTEiLCLkkJPloLrohbzohoTkkKXohpPkkK3ohqXln6/oh4Hoh6ToiZTkko/oiqboibboi4roi5joi7/kkrDojZfpmanmporokIXng7XokaTmg6PokojklITokr7ok6Hok7jolJDolLjolZLklLvola/olbDol6DklbfombLompLomrLom6/pmYXonovkmIbkmJfooq7oo7/opKTopYfoppHwp6Wn6Kip6Ki46KqU6Kq06LGR6LOU6LOy6LSc5J6Y5aGf6LeD5J+t5Luu6Li65ZeY5Z2U6Lmx5Ze16Lqw5KC36LuO6Lui6Luk6Lut6Luy6L636L+B6L+K6L+M6YCz6aeE5KKt6aOg6YiT5KSe6Yio6YmY6Ymr6Yqx6Yqu6Yq/Il0sWyI5YTQwIiwi6Yuj6Yur6Yuz6Yu06Yu96Y2D6Y6E6Y6t5KWF5KWR6bq/6ZCX5YyB6ZCd6ZCt6ZC+5KWq6ZGU6ZG56ZSt6Zai5Kan6Ze06Ziz5Kel5p6g5Kik6Z2A5Ki16Z6y6Z+C5ZmU5Kuk5oOo6aK55KyZ6aOx5aGE6aSO6aSZ5Ya06aSc6aS36aWC6aWd6aWi5K2w6aeF5K6d6ai86ayP56qD6a2p6a6B6a+d6a+x6a+05LGt6bCg452v8KGvgum1iemwuiJdLFsiOWFhMSIsIum7vuWZkOm2k+m2vem3gOm3vOmTtui+tum5u+m6rOm6sem6vem7humTnOm7oum7sem7uOeriOm9hPCggpTwoIq38KCOoOakmumTg+WmrPCgk5floYDpk4HjnrnwoJeV8KCYlfCgmbbwoZq65Z2X54Wz8KCrgvCgq43woK6/5ZGq8K+gu/Cgr4vlkp7woK+78KCwu/CgsZPwoLGl8KCxvOaDp/Cgso3lmbrwoLK18KCznfCgs63woLWv8KC2svCgt4jmpZXpsK/onqXwoLiE8KC4jvCgu5fwoL6Q8KC8rfCgubPlsKDwoL685biL8KGBnPChgY/woYG25pye8KGBu/ChgojwoYKW45mH8KGCv/Chg5PwoYSv8KGEu+WNpOiSrfChi6PwoY218KGMtuiugfChlbfwoZiZ8KGfg/Chn4fkubjngrvwoaCt8KGlqiJdLFsiOWI0MCIsIvChqK3woamF8KGwqvChsbDwobKs8KG7iOaLg/Chu5XwobyV54aY5qGV8KKBheanqeObiPCiibzwoo+X8KKPuvCinKrwoqGx8KKlj+iLvfCipafwoqaT8KKrleimpfCiq6jovqDwoqyO6Z648KKsv+mhh+mqvfCisYwiXSxbIjliNjIiLCLworKI8KKyt/Clr6jworSI8KK0kvCitrfworaV8KK5gvCivbTwor+M8KOAs/Cjgabwo4yf8KOPnuW+seaZiOaav/Cnqbnwo5Wn8KOXs+eIgfCkprrnn5fwo5ia8KOclue6h/CgjYblorXmnI4iXSxbIjliYTEiLCLmpJjwo6qn8KeZl/Clv6Lwo7iR8KO6ufCnl77wooKa5KOQ5Kq48KSEmfCoqprwpIuu8KSMjfCkgLvwpIy08KSOlvCkqYXwoJeK5YeS8KCYkeWmn/Chuqjjrr7wo7O/8KSQhPCkk5blnojwpJm046ab8KScr/Col6jwqaeJ452i8KKHg+itnvCorY7pp5bwpKCS8KSju/CkqJXniInwpKuA8KCxuOWlpfCkuqXwpL6G8KCduei7mvClgKzlio/lnL/nhbHwpYqZ8KWQmfCjvYrwpKqn5Za88KWRhvClka7wpq2S6YeU45Gz8KWUv/CnmLLwpZWe5JyY8KWVovCllabwpZ+H8KSkv/CloZ3lgabjk7vwo4+M5oOe8KWkg+SdvPCopYjwpaqu8KWuifClsIbwobaQ5Z6h54WR5r628KaEgvCnsJLpgZbwpoay8KS+muitovCmkILwppGKIl0sWyI5YzQwIiwi5bWb8Kavt+i8tvCmkoTwoaSc6Kuq8KSntvCmkojwo7+v8KaUkuSvgPCmlr/wppq18KKcm+mRpfCln6HmhpXlqKfwr6ON5L675Zq58KSUofCmm7zkuarwpKS06ZmW5raP8KayveOYmOilt/CmnpnwpqGu8KaQkfCmoZ7nh5/wpqOH562C8KmDgPCgqJHwpqSm6YSE8Kakueephem3sPCmp7rpqKbwpqit45mf8KaRqfCggKHnpoPwpqi08Katm+W0rPCjlJnoj4/wpq6d5JuQ8KaypOeUu+ihpfCmtq7lorYiXSxbIjljYTEiLCLjnJzwopaN8KeBi/Cnh43jsZTwp4qA8KeKhemKgfCihbrwp4qL6Yyw8KeLpvCkp5DmsLnpkp/wp5GQ8KC7uOigp+ijtfCipKbwqJGz8KGesea6uPCkqKrwoaCg46ak45q55bCQ56ej5JS/5pq28KmyrfCpoqTopYPwp5+M8KehmOWbluSDn/ChmIrjpqHwo5yv8KiDqPChj4Xnhq3ojabwp6ed8KmGqOWpp+Syt/Cngq/wqKar8KenvfCnqIrwp6yL8Ke1pvCkhbrnrYPnpb7wqICJ5r618KqLn+aog/CojJjljqLwpriH6Y6/5qC26Z2d8KiFr/CogKPwpqa18KGPrfCjiK/wqIGI5baF8KiwsPCogoPlnJXpoKPwqKWJ5bar8KSmiOaWvuanleWPkvCkqqXwo76B47CR5py28KiCkPCog7TwqISu8KG+ofCohY8iXSxbIjlkNDAiLCLwqIaJ8KiGr/CoiJrwqIyG8KiMr/Cojorjl4rwqJGo8KiaquSjuuaPpvCopZbnoIjpiZXwqKa45I+y8Kinp+SPn/Cop6jwqK2G8KivlOWnuPCosInovIvwqL+F8KmDrOetkfCphJDwqYS847e38KmFnvCkq4rov5Dnio/lmovwqZOn8KmXqfCplrDwqZa48KmcsvCpo5HwqaWJ8KmlqvCpp4Pwqaio8KmsjvCptZrwqbab57qf8Km7uPCpvKPksqTplYfwqoqT54ai8KqLv+S2kemAkvCql4vktpzwoLKc6L6+5ZeBIl0sWyI5ZGExIiwi6L668KKSsOi+ufCkqpPklInnub/mvZbmqrHku6rjk6TwqKys8KeineOcuui6gPChn7XwqICk8KitrPCorpnwp6i+8Kaar+O3q/CnmZXwo7K38KWYtfClpZbkuprwpbqB8KaJmOWav/Cgua3ouI7lra3wo7qI8KSynuaPnuaLkPChn7bwoaG75pSw5Zit8KWxiuWQmvCljJHjt4bwqbaY5LG95Zii5Zie572J8KW7mOWltfCjtYDonbDkuJzwoL+q8KC1ifCjmrrohJfptZ7otJjnmLvpsYXnmY7nnrnpjYXlkLLohYjoi7flmKXohLLokJjogr3ll6rnpaLlmYPlkJbwoLqd45eO5ZiF5Zex5pux8KiLouOYreeUtOWXsOWWuuWSl+WVsvCgsYHwoLKW5buQ8KWFiPCgubbworGiIl0sWyI5ZTQwIiwi8KC6oum6q+e1muWXnvChgbXmip3pna3lkpTos43nh7bphbbmj7zmjrnmj77llanwoq2D6bGy8KK6s+WGmuOTn/CgtqflhqflkY3llJ7llJPnmabouK3wpqKK55ax6IK26KCE6J6G6KOH6Ia26JCc8KGDgeSTrOeMhPCknIblrpDojIvwpqKT5Zm78KKbtPCntK/wpIaj8Ke1s/Cmu5Dwp4q26YWw8KGHmemIiPCjs7zwqpqp8KC6rPCgu7nniabwobKi5J2O8KS/gvCnv7nwoL+r5IO6Il0sWyI5ZWExIiwi6bGd5pSf8KK2oOSjs/Ckn6DwqbW88KC/rPCguIrmgaLwp5aj8KC/rSJdLFsiOWVhZCIsIvCmgYjwoYaH54aj57qO6bWQ5Lia5LiE45W35ayN5rKy5Y2n45qs46ec5Y2945ql8KSYmOWimvCkra7oiK3lkYvlnqrwpaqV8KCluSJdLFsiOWVjNSIsIuOpkvCikaXnjbTwqbqs5LSJ6a+t8KOzvvCpvLDksZvwpL6p8KmWnvCpv57okZzwo7a28KeKsvCmnrPwo5yg5oyu57Sl8KO7t/CjuKzjqKrpgIjli4zjubTjmbrkl6nwoJKO55mA5auw8KC6tuehuvCnvK7loqfkgr/lmbzprovltbTnmZTwqpC06bqF5LOh55e545+75oSZ8KODmvCkj7IiXSxbIjllZjUiLCLlmZ3woYqp5Z6n8KSlo/CpuIbliLTwp4Ku45at5rGK6bW8Il0sWyI5ZjQwIiwi57GW6ay55Z+e8KGdrOWxk+aTk/Cpk5Dwpoy18KeFpOiarfCgtKjwprSi8KSrovCgtbEiXSxbIjlmNGYiLCLlh77wobyP5baO6ZyD8KG3kem6gemBjOesn+msguWzkeeuo+aJqOaMtemrv+evj+msquexvumsruexgueyhumwleevvOmsiem8l+mwm/CkpL7pvZrllbPlr4Pkv73pupjkv7LliaDjuIbli5HlnaflgZblprfluJLpn4jptqvovZzlkanpnrTppYDpnrrljKzmhLAiXSxbIjlmYTEiLCLmpKzlj5rpsIrptILksLvpmYHmpoDlgqbnlYbwoZ2t6aea5YmzIl0sWyI5ZmFlIiwi6YWZ6ZqB6YWcIl0sWyI5ZmIyIiwi6YWR8Ki6l+aNv/CmtKPmq4rlmJHpho7nlbrmioXwoI+8542P57Gw8KWwofCjs70iXSxbIjlmYzEiLCLwpKSZ55uW6a6d5Liq8KCzlOiOvuihgiJdLFsiOWZjOSIsIuWxiuangOWDreWduuWIn+W3teS7juawsfCgh7LkvLnlkpzlk5rliprotoLjl77lvIzjl7MiXSxbIjlmZGIiLCLmrZLphbzpvqXprpfpoK7porTpqrrpuqjpuoTnhbrnrJQiXSxbIjlmZTciLCLmr7rooJjnvbgiXSxbIjlmZWIiLCLlmKDwqpmK6Lm36b2TIl0sWyI5ZmYwIiwi6LeU6LmP6bic6LiB5oqC8KiNvei4qOi5teerk/CkqbfnqL7no5jms6roqafnmIciXSxbImEwNDAiLCLwqKma6bym5rOO6J+W55eD8KqKsuehk/CvoYDotIzni6LnjbHorK3njILnk7Hos6vwpKq76Jiv5b666KKg5JK3Il0sWyJhMDU1Iiwi8KGgu/CmuIUiXSxbImEwNTgiLCLoqb7wopSbIl0sWyJhMDViIiwi5oO955mn6auX6bWE6Y2u6a6P6J+1Il0sWyJhMDYzIiwi6KCP6LO354ys6Zyh6a6w45eW54qy5LCH57GR6aWK8KaFmeaFmeSwhOm6luaFvSJdLFsiYTA3MyIsIuWdn+aFr+aKpuaIueaLjuOpnOaHouWOqvCjj7XmjaTmoILjl5IiXSxbImEwYTEiLCLltZfwqK+C6L+a8Ki4uSJdLFsiYTBhNiIsIuWDmfChtYbnpIbljLLpmLjwoLy75IGlIl0sWyJhMGFlIiwi55++Il0sWyJhMGIwIiwi57OC8KW8muezmueoreiBpuiBo+e1jeeUheeTsuimlOiImuacjOiBovCnkobogZvnk7DohIPnnKToponwpp+M55WT8Ka7keieqeifjuiHiOiejOipieiyreitg+ecq+eTuOiTmuOYteamsui2piJdLFsiYTBkNCIsIuimqeeRqOa2ueifgfCkgJHnk6fjt5vnhbbmgqTmhpzjs5HnhaLmgbciXSxbImEwZTIiLCLnvbHwqKyt54mQ5oOp5K2+5Yig47CY8KOzh/Clu5fwp5mW8KWUsfChpYTwoYu+8Kmkg/Cmt5zwp4Kt5bOB8KaGrfCoqI/wo5m38KCDrvCmoYbwpLyO5JWi5ayf8KaNjOm9kOm6pvCmiasiXSxbImEzYzAiLCLikIAiLDMxLCLikKEiXSxbImM2YTEiLCLikaAiLDksIuKRtCIsOSwi4oWwIiw5LCLkuLbkuL/kuoXkuqDlhoLlhpblhqvli7nljLjljanljrblpIrlroDlt5vivLPlub/lu7TlvZDlvaHmlLTml6DnlpLnmbbovrXpmrbCqMuG44O944O+44Kd44Ke44CD5Lud44CF44CG44CH44O877y777y94py944GBIiwyM10sWyJjNzQwIiwi44GZIiw1OCwi44Kh44Ki44Kj44KkIl0sWyJjN2ExIiwi44KlIiw4MSwi0JAiLDUsItCB0JYiLDRdLFsiYzg0MCIsItCbIiwyNiwi0ZHQtiIsMjUsIuKHp+KGuOKGueOHj/Cgg4zkuZrwoIKK5YiC5JKRIl0sWyJjOGExIiwi6b6w5YaI6b6x8KeYhyJdLFsiYzhjZCIsIu+/ou+/pO+8h++8guOIseKEluKEoeOCm+OCnOK6gOK6hOK6huK6h+K6iOK6iuK6jOK6jeK6leK6nOK6neK6peK6p+K6quK6rOK6ruK6tuK6vOK6vuK7huK7iuK7jOK7jeK7j+K7luK7l+K7nuK7oyJdLFsiYzhmNSIsIsqDyZDJm8mUybXFk8O4xYvKismqIl0sWyJmOWZlIiwi77+tIl0sWyJmYTQwIiwi8KCVh+mLm/Cgl5/wo7+F6JWM5Iq154+v5Ya145mJ8KSlgvCop6TpjYTwoaeb6Iuu8KOziOegvOadhOaLn/CkpLPwqKaq8KCKoPCmrrPwoYyF5L6r8KKTreWAiPCmtKnwp6qE8KOYgPCkqrHwopST5YCp8KCNvuW+pPCgjoDwoI2H5rub8KCQn+WBveWEgeORuuWEjumhrOOdg+iQlvCkpqTwoJKH5YWg8KOOtOWFqvCgr7/wooO88KCLpfCilLDwoJaO8KOIs/ChpoPlroLonb3woJaz8KOymeWGsuWGuCJdLFsiZmFhMSIsIum0tOWHieWHj+WHkeOznOWHk/CkqqblhrPlh6LljYLlh63oj43mpL7wo5yt5b275YiL5Yim5Yi85Yq15YmX5YqU5Yq55YuF57CV6JWC5Yug6JiN8Kask+WMhfCoq57llYnmu5nwo76A8KCllPCjv6zljLPljYTwoK+i5rOL8KGcpuagm+ePleaBiuO6quOjjPChm6jnh53kkqLlja3ljbTwqJqr5Y2+5Y2/8KGWlvChmJPnn6bljpPwqKqb5Y6g5Y6r5Y6u546n8KWdsuO9meeOnOWPgeWPheaxieS5ieWfvuWPmeOqq/Cgro/lj6Dwo7+r8KK2o+WPtvCgsbflkJPngbnllKvmmZfmtZvlka3wpq2T8KC1tOWVneWSj+WSpOSepvChnI3woLud47a08KC1jSJdLFsiZmI0MCIsIvCoprzwopqY5ZWH5LOt5ZCv55CX5ZaG5Zap5ZiF8KGjl/CkgLrklZLwpJC15pqz8KGCtOWYt+abjfCjiormmqTmmq3lmY3lmY/no7Hlm7Hpnoflj77lnIDlm6/lm63wqK2m45ij8KGJj+WdhvCkhqXmsa7ngovlnYLjmrHwprG+5Z+m8KGQluWgg/ChkZTwpI2j5aCm8KSvteWhnOWiquOVoeWjoOWjnPChiLzlo7vlr7/lnYPwqoWQ8KSJuOmPk+OWoeWkn+aipuObg+a5mSJdLFsiZmJhMSIsIvChmL7lqKTllZPwoZqS6JSF5aeJ8KC1jvCmsoHwprSq8KGfnOWnmfChn7vwoZ6y8Ka2pua1sfChoKjwoZuV5ae58Ka5heWqq+Wpo+ObpvCkpqnlqbfjnIjlqpbnkaXlq5Pwpr6h8KKVlOO2hfChpJHjnLLwoZq45bqD5YuQ5a225paI5a288KeojuSAhOShnfCgiITlr5XmhaDwoai08KWnjPCglqXlr7Plrp3ktJDlsIXwoa2E5bCT54+O5bCU8KGypfCmrKjlsYnko53lsoXls6nls6/ltovwobe58KG4t+W0kOW0mOW1hvChuqTlsrrlt5foi7zjoK3wpKSB8KKBifCihbPoiofjoLbjr4LluK7mqorlubXlubrwpJK88KCzk+WOpuS6t+W7kOWOqPChnbHluInlu7TwqJKCIl0sWyJmYzQwIiwi5bu55bu746Kg5bu85qC+6ZCb5byN8KCHgfCvopTjq57koq7woYy65by68KaiiPCij5DlvZjwopGx5b2j6Z698Ka5ruW9sumNgPCoqLblvqfltrbjtZ/wpYmQ8KG9qvCng7jwopmo6YeW8KCKnvCoqKnmgLHmmoXwoaG346Wj47eH45i55Z6Q8KKetOelseO5gOaCnuaCpOaCs/CkpoLwpKaP8Kepk+eSpOWDoeWqoOaFpOiQpOaFgvCvoqbwpruS5oaB5Ye08KCZluaGh+WuqvCjvrciXSxbImZjYTEiLCLwoqGf5oeT8KiunfCppZ3mh5DjpLLwoqaA8KKjgeaAo+aFnOaUnuaOi/CghJjmi4XwoZ2w5ouV8KK4jeaNrPCkp5/jqJfmkLjmj7jwoY6O8KGfvOaSkOa+ivCiuLbpoJTwpIKM8KWcneaToeaTpemRu+OppuaQuuOpl+aVjea8lvCkqKjwpKij5paF5pWt5pWf8KOBvuaWtfCkpYDkrLfml5Hkg5jwoaCp5peg5pej5b+f8KOQgOaYmPCjh7fwo4e45pmE8KOGpPCjhqXmmYvwoLm15pmn8KWHpuaZs+aZtPChuL3wo4ix8KiXtPCjh4jwpYyT55+F8KKjt+mmpOacgvCkjpzwpKih46yr5qe68KOfguadnuadp+adovCkh43wqYOt5p+X5JOp5qCi5rmQ6Yi85qCB8KOPpvCmtqDmoZ0iXSxbImZkNDAiLCLwo5Gv5qeh5qiL8Kirn+als+ajg/Cjl43mpIHmpIDjtLLjqIHwo5i8466A5p6s5qWh8KipiuSLvOaktuammOOuofCgj4nojaPlgpDmp7nwo5mZ8KKEquaphfCjnIPmqp3jr7PmnrHmq4jwqYac47CN5qyd8KCko+aDnuasteattPCin43murXwo6ub8KCOtfChpZjjnYDlkKHwo62a5q+h8KO7vOavnOawt/CikovwpKOx8KatkeaxmuiIpuaxufCjtrzkk4Xwo7a98KSGpPCkpIzwpKSAIl0sWyJmZGExIiwi8KOzieObpeOzq/CgtLLproPwo4e58KKSkee+j+agt/CmtKXwprah8Ka3q+a2lua1nOa5vOa8hPCkpb/wpIKF8Ka5suiUs/CmvbTlh4fmspzmuJ3okK7wqKyh5riv8KO4r+eRk/CjvoLnp4zmuY/lqpHwo4GL5r+445yN5r6d8KO4sOa7uvChkpfwpIC95JWV6Y+w5r2E5r2c47WO5r208KmFsOO0u+a+n/CkhYTmv5PwpIKR8KSFlfCkgLnwo7+w8KO+tPCkhL/lh5/wpIWW8KSFl/CkhYDwpoed54GL54G+54Kn54KB54OM54OV54OW54Of5ISE47eo54a054aW8KSJt+eEq+eFheWqiOeFiueFruWynPCkjaXnhY/pjaLwpIuB54Ss8KSRmvCkqKfwpKii54a68KivqOeCveeIjiJdLFsiZmU0MCIsIumRgueIleWkkemRg+eIpOmNgfClmIXniK7niYDwpKW05qK954mV54mX47mV8KOBhOagjea8veeKgueMqueMq/CkoKPwqKCr5KOt8KighOeMqOeMruePj+eOqvCgsLrwpqiu54+J55GJ8KSHovChm6fwpKik5pij45uF8KSmt/Ckpo3wpKe754+355CV5qSD8KSopueQufCgl4Pju5fnkZzwoqKt55Gg8Ki6sueRh+ePpOeRtuiOueeRrOOcsOeRtOmPseaorOeSguSlk/CkqowiXSxbImZlYTEiLCLwpIWf8KSpufCoro/lrYbwqLCD8KGinueTiPChpojnlI7nk6nnlJ7wqLuZ8KGpi+Wvl/CouqzpjoXnlY3nlYrnlafnla7wpL6C47yE8KS0k+eWjueRneeWnueWtOeYgueYrOeZkeeZj+eZr+eZtvCmj7XnmpDoh6/jn7jwpqSR8Kakjueaoeeapeeat+ebjPCmvp/okaLwpYKd8KWFvfChuJznnJ7nnKbnnYDmkq/wpYig552Y8KOKrOeer/CopaTwqKWo8KGbgeeftOegifChjbbwpKiS5qOK56Kv56OH56OT6Zql56Su8KWXoOejl+ektOeisfCnmIzovrjoooTwqKyr8KaCg/CimJznpobopIDmpILnpoDwpaGX56ad8KesueekvOemqea4qvCnhKbjuqjnp4bwqYSN56eUIl1dCgovKioqLyB9KSwKLyogMTg1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgp2YXIgQnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIsCiAgICBUcmFuc2Zvcm0gPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE1KS5UcmFuc2Zvcm07CgoKLy8gPT0gRXhwb3J0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbihpY29udikgewogICAgCiAgICAvLyBBZGRpdGlvbmFsIFB1YmxpYyBBUEkuCiAgICBpY29udi5lbmNvZGVTdHJlYW0gPSBmdW5jdGlvbiBlbmNvZGVTdHJlYW0oZW5jb2RpbmcsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbmV3IEljb252TGl0ZUVuY29kZXJTdHJlYW0oaWNvbnYuZ2V0RW5jb2RlcihlbmNvZGluZywgb3B0aW9ucyksIG9wdGlvbnMpOwogICAgfQoKICAgIGljb252LmRlY29kZVN0cmVhbSA9IGZ1bmN0aW9uIGRlY29kZVN0cmVhbShlbmNvZGluZywgb3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgSWNvbnZMaXRlRGVjb2RlclN0cmVhbShpY29udi5nZXREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKSwgb3B0aW9ucyk7CiAgICB9CgogICAgaWNvbnYuc3VwcG9ydHNTdHJlYW1zID0gdHJ1ZTsKCgogICAgLy8gTm90IHB1Ymxpc2hlZCB5ZXQuCiAgICBpY29udi5JY29udkxpdGVFbmNvZGVyU3RyZWFtID0gSWNvbnZMaXRlRW5jb2RlclN0cmVhbTsKICAgIGljb252Lkljb252TGl0ZURlY29kZXJTdHJlYW0gPSBJY29udkxpdGVEZWNvZGVyU3RyZWFtOwogICAgaWNvbnYuX2NvbGxlY3QgPSBJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZS5jb2xsZWN0Owp9OwoKCi8vID09IEVuY29kZXIgc3RyZWFtID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZnVuY3Rpb24gSWNvbnZMaXRlRW5jb2RlclN0cmVhbShjb252LCBvcHRpb25zKSB7CiAgICB0aGlzLmNvbnYgPSBjb252OwogICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICBvcHRpb25zLmRlY29kZVN0cmluZ3MgPSBmYWxzZTsgLy8gV2UgYWNjZXB0IG9ubHkgc3RyaW5ncywgc28gd2UgZG9uJ3QgbmVlZCB0byBkZWNvZGUgdGhlbS4KICAgIFRyYW5zZm9ybS5jYWxsKHRoaXMsIG9wdGlvbnMpOwp9CgpJY29udkxpdGVFbmNvZGVyU3RyZWFtLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoVHJhbnNmb3JtLnByb3RvdHlwZSwgewogICAgY29uc3RydWN0b3I6IHsgdmFsdWU6IEljb252TGl0ZUVuY29kZXJTdHJlYW0gfQp9KTsKCkljb252TGl0ZUVuY29kZXJTdHJlYW0ucHJvdG90eXBlLl90cmFuc2Zvcm0gPSBmdW5jdGlvbihjaHVuaywgZW5jb2RpbmcsIGRvbmUpIHsKICAgIGlmICh0eXBlb2YgY2h1bmsgIT0gJ3N0cmluZycpCiAgICAgICAgcmV0dXJuIGRvbmUobmV3IEVycm9yKCJJY29udiBlbmNvZGluZyBzdHJlYW0gbmVlZHMgc3RyaW5ncyBhcyBpdHMgaW5wdXQuIikpOwogICAgdHJ5IHsKICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LndyaXRlKGNodW5rKTsKICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMpOwogICAgICAgIGRvbmUoKTsKICAgIH0KICAgIGNhdGNoIChlKSB7CiAgICAgICAgZG9uZShlKTsKICAgIH0KfQoKSWNvbnZMaXRlRW5jb2RlclN0cmVhbS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24oZG9uZSkgewogICAgdHJ5IHsKICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LmVuZCgpOwogICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcyk7CiAgICAgICAgZG9uZSgpOwogICAgfQogICAgY2F0Y2ggKGUpIHsKICAgICAgICBkb25lKGUpOwogICAgfQp9CgpJY29udkxpdGVFbmNvZGVyU3RyZWFtLnByb3RvdHlwZS5jb2xsZWN0ID0gZnVuY3Rpb24oY2IpIHsKICAgIHZhciBjaHVua3MgPSBbXTsKICAgIHRoaXMub24oJ2Vycm9yJywgY2IpOwogICAgdGhpcy5vbignZGF0YScsIGZ1bmN0aW9uKGNodW5rKSB7IGNodW5rcy5wdXNoKGNodW5rKTsgfSk7CiAgICB0aGlzLm9uKCdlbmQnLCBmdW5jdGlvbigpIHsKICAgICAgICBjYihudWxsLCBCdWZmZXIuY29uY2F0KGNodW5rcykpOwogICAgfSk7CiAgICByZXR1cm4gdGhpczsKfQoKCi8vID09IERlY29kZXIgc3RyZWFtID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZnVuY3Rpb24gSWNvbnZMaXRlRGVjb2RlclN0cmVhbShjb252LCBvcHRpb25zKSB7CiAgICB0aGlzLmNvbnYgPSBjb252OwogICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICBvcHRpb25zLmVuY29kaW5nID0gdGhpcy5lbmNvZGluZyA9ICd1dGY4JzsgLy8gV2Ugb3V0cHV0IHN0cmluZ3MuCiAgICBUcmFuc2Zvcm0uY2FsbCh0aGlzLCBvcHRpb25zKTsKfQoKSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKFRyYW5zZm9ybS5wcm90b3R5cGUsIHsKICAgIGNvbnN0cnVjdG9yOiB7IHZhbHVlOiBJY29udkxpdGVEZWNvZGVyU3RyZWFtIH0KfSk7CgpJY29udkxpdGVEZWNvZGVyU3RyZWFtLnByb3RvdHlwZS5fdHJhbnNmb3JtID0gZnVuY3Rpb24oY2h1bmssIGVuY29kaW5nLCBkb25lKSB7CiAgICBpZiAoIUJ1ZmZlci5pc0J1ZmZlcihjaHVuaykpCiAgICAgICAgcmV0dXJuIGRvbmUobmV3IEVycm9yKCJJY29udiBkZWNvZGluZyBzdHJlYW0gbmVlZHMgYnVmZmVycyBhcyBpdHMgaW5wdXQuIikpOwogICAgdHJ5IHsKICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LndyaXRlKGNodW5rKTsKICAgICAgICBpZiAocmVzICYmIHJlcy5sZW5ndGgpIHRoaXMucHVzaChyZXMsIHRoaXMuZW5jb2RpbmcpOwogICAgICAgIGRvbmUoKTsKICAgIH0KICAgIGNhdGNoIChlKSB7CiAgICAgICAgZG9uZShlKTsKICAgIH0KfQoKSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuX2ZsdXNoID0gZnVuY3Rpb24oZG9uZSkgewogICAgdHJ5IHsKICAgICAgICB2YXIgcmVzID0gdGhpcy5jb252LmVuZCgpOwogICAgICAgIGlmIChyZXMgJiYgcmVzLmxlbmd0aCkgdGhpcy5wdXNoKHJlcywgdGhpcy5lbmNvZGluZyk7ICAgICAgICAgICAgICAgIAogICAgICAgIGRvbmUoKTsKICAgIH0KICAgIGNhdGNoIChlKSB7CiAgICAgICAgZG9uZShlKTsKICAgIH0KfQoKSWNvbnZMaXRlRGVjb2RlclN0cmVhbS5wcm90b3R5cGUuY29sbGVjdCA9IGZ1bmN0aW9uKGNiKSB7CiAgICB2YXIgcmVzID0gJyc7CiAgICB0aGlzLm9uKCdlcnJvcicsIGNiKTsKICAgIHRoaXMub24oJ2RhdGEnLCBmdW5jdGlvbihjaHVuaykgeyByZXMgKz0gY2h1bms7IH0pOwogICAgdGhpcy5vbignZW5kJywgZnVuY3Rpb24oKSB7CiAgICAgICAgY2IobnVsbCwgcmVzKTsKICAgIH0pOwogICAgcmV0dXJuIHRoaXM7Cn0KCgoKLyoqKi8gfSksCi8qIDE4NiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Cgp2YXIgQnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXI7CgovLyA9PSBFeHRlbmQgTm9kZSBwcmltaXRpdmVzIHRvIHVzZSBpY29udi1saXRlID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaWNvbnYpIHsKICAgIHZhciBvcmlnaW5hbCA9IHVuZGVmaW5lZDsgLy8gUGxhY2UgdG8ga2VlcCBvcmlnaW5hbCBtZXRob2RzLgoKICAgIC8vIE5vZGUgYXV0aG9ycyByZXdyb3RlIEJ1ZmZlciBpbnRlcm5hbHMgdG8gbWFrZSBpdCBjb21wYXRpYmxlIHdpdGgKICAgIC8vIFVpbnQ4QXJyYXkgYW5kIHdlIGNhbm5vdCBwYXRjaCBrZXkgZnVuY3Rpb25zIHNpbmNlIHRoZW4uCiAgICBpY29udi5zdXBwb3J0c05vZGVFbmNvZGluZ3NFeHRlbnNpb24gPSAhKG5ldyBCdWZmZXIoMCkgaW5zdGFuY2VvZiBVaW50OEFycmF5KTsKCiAgICBpY29udi5leHRlbmROb2RlRW5jb2RpbmdzID0gZnVuY3Rpb24gZXh0ZW5kTm9kZUVuY29kaW5ncygpIHsKICAgICAgICBpZiAob3JpZ2luYWwpIHJldHVybjsKICAgICAgICBvcmlnaW5hbCA9IHt9OwoKICAgICAgICBpZiAoIWljb252LnN1cHBvcnRzTm9kZUVuY29kaW5nc0V4dGVuc2lvbikgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKCJBQ1RJT04gTkVFREVEOiByZXF1aXJlKCdpY29udi1saXRlJykuZXh0ZW5kTm9kZUVuY29kaW5ncygpIGlzIG5vdCBzdXBwb3J0ZWQgaW4geW91ciB2ZXJzaW9uIG9mIE5vZGUiKTsKICAgICAgICAgICAgY29uc29sZS5lcnJvcigiU2VlIG1vcmUgaW5mbyBhdCBodHRwczovL2dpdGh1Yi5jb20vYXNodHVjaGtpbi9pY29udi1saXRlL3dpa2kvTm9kZS12NC1jb21wYXRpYmlsaXR5Iik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIHZhciBub2RlTmF0aXZlRW5jb2RpbmdzID0gewogICAgICAgICAgICAnaGV4JzogdHJ1ZSwgJ3V0ZjgnOiB0cnVlLCAndXRmLTgnOiB0cnVlLCAnYXNjaWknOiB0cnVlLCAnYmluYXJ5JzogdHJ1ZSwgCiAgICAgICAgICAgICdiYXNlNjQnOiB0cnVlLCAndWNzMic6IHRydWUsICd1Y3MtMic6IHRydWUsICd1dGYxNmxlJzogdHJ1ZSwgJ3V0Zi0xNmxlJzogdHJ1ZSwKICAgICAgICB9OwoKICAgICAgICBCdWZmZXIuaXNOYXRpdmVFbmNvZGluZyA9IGZ1bmN0aW9uKGVuYykgewogICAgICAgICAgICByZXR1cm4gZW5jICYmIG5vZGVOYXRpdmVFbmNvZGluZ3NbZW5jLnRvTG93ZXJDYXNlKCldOwogICAgICAgIH0KCiAgICAgICAgLy8gLS0gU2xvd0J1ZmZlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgIHZhciBTbG93QnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKS5TbG93QnVmZmVyOwoKICAgICAgICBvcmlnaW5hbC5TbG93QnVmZmVyVG9TdHJpbmcgPSBTbG93QnVmZmVyLnByb3RvdHlwZS50b1N0cmluZzsKICAgICAgICBTbG93QnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKGVuY29kaW5nLCBzdGFydCwgZW5kKSB7CiAgICAgICAgICAgIGVuY29kaW5nID0gU3RyaW5nKGVuY29kaW5nIHx8ICd1dGY4JykudG9Mb3dlckNhc2UoKTsKCiAgICAgICAgICAgIC8vIFVzZSBuYXRpdmUgY29udmVyc2lvbiB3aGVuIHBvc3NpYmxlCiAgICAgICAgICAgIGlmIChCdWZmZXIuaXNOYXRpdmVFbmNvZGluZyhlbmNvZGluZykpCiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWwuU2xvd0J1ZmZlclRvU3RyaW5nLmNhbGwodGhpcywgZW5jb2RpbmcsIHN0YXJ0LCBlbmQpOwoKICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB1c2Ugb3VyIGRlY29kaW5nIG1ldGhvZC4KICAgICAgICAgICAgaWYgKHR5cGVvZiBzdGFydCA9PSAndW5kZWZpbmVkJykgc3RhcnQgPSAwOwogICAgICAgICAgICBpZiAodHlwZW9mIGVuZCA9PSAndW5kZWZpbmVkJykgZW5kID0gdGhpcy5sZW5ndGg7CiAgICAgICAgICAgIHJldHVybiBpY29udi5kZWNvZGUodGhpcy5zbGljZShzdGFydCwgZW5kKSwgZW5jb2RpbmcpOwogICAgICAgIH0KCiAgICAgICAgb3JpZ2luYWwuU2xvd0J1ZmZlcldyaXRlID0gU2xvd0J1ZmZlci5wcm90b3R5cGUud3JpdGU7CiAgICAgICAgU2xvd0J1ZmZlci5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZykgewogICAgICAgICAgICAvLyBTdXBwb3J0IGJvdGggKHN0cmluZywgb2Zmc2V0LCBsZW5ndGgsIGVuY29kaW5nKQogICAgICAgICAgICAvLyBhbmQgdGhlIGxlZ2FjeSAoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0LCBsZW5ndGgpCiAgICAgICAgICAgIGlmIChpc0Zpbml0ZShvZmZzZXQpKSB7CiAgICAgICAgICAgICAgICBpZiAoIWlzRmluaXRlKGxlbmd0aCkpIHsKICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyA9IGxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7ICAvLyBsZWdhY3kKICAgICAgICAgICAgICAgIHZhciBzd2FwID0gZW5jb2Rpbmc7CiAgICAgICAgICAgICAgICBlbmNvZGluZyA9IG9mZnNldDsKICAgICAgICAgICAgICAgIG9mZnNldCA9IGxlbmd0aDsKICAgICAgICAgICAgICAgIGxlbmd0aCA9IHN3YXA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG9mZnNldCA9ICtvZmZzZXQgfHwgMDsKICAgICAgICAgICAgdmFyIHJlbWFpbmluZyA9IHRoaXMubGVuZ3RoIC0gb2Zmc2V0OwogICAgICAgICAgICBpZiAoIWxlbmd0aCkgewogICAgICAgICAgICAgICAgbGVuZ3RoID0gcmVtYWluaW5nOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbGVuZ3RoID0gK2xlbmd0aDsKICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPiByZW1haW5pbmcpIHsKICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSByZW1haW5pbmc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZW5jb2RpbmcgPSBTdHJpbmcoZW5jb2RpbmcgfHwgJ3V0ZjgnKS50b0xvd2VyQ2FzZSgpOwoKICAgICAgICAgICAgLy8gVXNlIG5hdGl2ZSBjb252ZXJzaW9uIHdoZW4gcG9zc2libGUKICAgICAgICAgICAgaWYgKEJ1ZmZlci5pc05hdGl2ZUVuY29kaW5nKGVuY29kaW5nKSkKICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5TbG93QnVmZmVyV3JpdGUuY2FsbCh0aGlzLCBzdHJpbmcsIG9mZnNldCwgbGVuZ3RoLCBlbmNvZGluZyk7CgogICAgICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignYXR0ZW1wdCB0byB3cml0ZSBiZXlvbmQgYnVmZmVyIGJvdW5kcycpOwoKICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB1c2Ugb3VyIGVuY29kaW5nIG1ldGhvZC4KICAgICAgICAgICAgdmFyIGJ1ZiA9IGljb252LmVuY29kZShzdHJpbmcsIGVuY29kaW5nKTsKICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGggPCBsZW5ndGgpIGxlbmd0aCA9IGJ1Zi5sZW5ndGg7CiAgICAgICAgICAgIGJ1Zi5jb3B5KHRoaXMsIG9mZnNldCwgMCwgbGVuZ3RoKTsKICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKICAgICAgICB9CgogICAgICAgIC8vIC0tIEJ1ZmZlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgICAgb3JpZ2luYWwuQnVmZmVySXNFbmNvZGluZyA9IEJ1ZmZlci5pc0VuY29kaW5nOwogICAgICAgIEJ1ZmZlci5pc0VuY29kaW5nID0gZnVuY3Rpb24oZW5jb2RpbmcpIHsKICAgICAgICAgICAgcmV0dXJuIEJ1ZmZlci5pc05hdGl2ZUVuY29kaW5nKGVuY29kaW5nKSB8fCBpY29udi5lbmNvZGluZ0V4aXN0cyhlbmNvZGluZyk7CiAgICAgICAgfQoKICAgICAgICBvcmlnaW5hbC5CdWZmZXJCeXRlTGVuZ3RoID0gQnVmZmVyLmJ5dGVMZW5ndGg7CiAgICAgICAgQnVmZmVyLmJ5dGVMZW5ndGggPSBTbG93QnVmZmVyLmJ5dGVMZW5ndGggPSBmdW5jdGlvbihzdHIsIGVuY29kaW5nKSB7CiAgICAgICAgICAgIGVuY29kaW5nID0gU3RyaW5nKGVuY29kaW5nIHx8ICd1dGY4JykudG9Mb3dlckNhc2UoKTsKCiAgICAgICAgICAgIC8vIFVzZSBuYXRpdmUgY29udmVyc2lvbiB3aGVuIHBvc3NpYmxlCiAgICAgICAgICAgIGlmIChCdWZmZXIuaXNOYXRpdmVFbmNvZGluZyhlbmNvZGluZykpCiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWwuQnVmZmVyQnl0ZUxlbmd0aC5jYWxsKHRoaXMsIHN0ciwgZW5jb2RpbmcpOwoKICAgICAgICAgICAgLy8gU2xvdywgSSBrbm93LCBidXQgd2UgZG9uJ3QgaGF2ZSBhIGJldHRlciB3YXkgeWV0LgogICAgICAgICAgICByZXR1cm4gaWNvbnYuZW5jb2RlKHN0ciwgZW5jb2RpbmcpLmxlbmd0aDsKICAgICAgICB9CgogICAgICAgIG9yaWdpbmFsLkJ1ZmZlclRvU3RyaW5nID0gQnVmZmVyLnByb3RvdHlwZS50b1N0cmluZzsKICAgICAgICBCdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oZW5jb2RpbmcsIHN0YXJ0LCBlbmQpIHsKICAgICAgICAgICAgZW5jb2RpbmcgPSBTdHJpbmcoZW5jb2RpbmcgfHwgJ3V0ZjgnKS50b0xvd2VyQ2FzZSgpOwoKICAgICAgICAgICAgLy8gVXNlIG5hdGl2ZSBjb252ZXJzaW9uIHdoZW4gcG9zc2libGUKICAgICAgICAgICAgaWYgKEJ1ZmZlci5pc05hdGl2ZUVuY29kaW5nKGVuY29kaW5nKSkKICAgICAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbC5CdWZmZXJUb1N0cmluZy5jYWxsKHRoaXMsIGVuY29kaW5nLCBzdGFydCwgZW5kKTsKCiAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgdXNlIG91ciBkZWNvZGluZyBtZXRob2QuCiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RhcnQgPT0gJ3VuZGVmaW5lZCcpIHN0YXJ0ID0gMDsKICAgICAgICAgICAgaWYgKHR5cGVvZiBlbmQgPT0gJ3VuZGVmaW5lZCcpIGVuZCA9IHRoaXMubGVuZ3RoOwogICAgICAgICAgICByZXR1cm4gaWNvbnYuZGVjb2RlKHRoaXMuc2xpY2Uoc3RhcnQsIGVuZCksIGVuY29kaW5nKTsKICAgICAgICB9CgogICAgICAgIG9yaWdpbmFsLkJ1ZmZlcldyaXRlID0gQnVmZmVyLnByb3RvdHlwZS53cml0ZTsKICAgICAgICBCdWZmZXIucHJvdG90eXBlLndyaXRlID0gZnVuY3Rpb24oc3RyaW5nLCBvZmZzZXQsIGxlbmd0aCwgZW5jb2RpbmcpIHsKICAgICAgICAgICAgdmFyIF9vZmZzZXQgPSBvZmZzZXQsIF9sZW5ndGggPSBsZW5ndGgsIF9lbmNvZGluZyA9IGVuY29kaW5nOwogICAgICAgICAgICAvLyBTdXBwb3J0IGJvdGggKHN0cmluZywgb2Zmc2V0LCBsZW5ndGgsIGVuY29kaW5nKQogICAgICAgICAgICAvLyBhbmQgdGhlIGxlZ2FjeSAoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0LCBsZW5ndGgpCiAgICAgICAgICAgIGlmIChpc0Zpbml0ZShvZmZzZXQpKSB7CiAgICAgICAgICAgICAgICBpZiAoIWlzRmluaXRlKGxlbmd0aCkpIHsKICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyA9IGxlbmd0aDsKICAgICAgICAgICAgICAgICAgICBsZW5ndGggPSB1bmRlZmluZWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7ICAvLyBsZWdhY3kKICAgICAgICAgICAgICAgIHZhciBzd2FwID0gZW5jb2Rpbmc7CiAgICAgICAgICAgICAgICBlbmNvZGluZyA9IG9mZnNldDsKICAgICAgICAgICAgICAgIG9mZnNldCA9IGxlbmd0aDsKICAgICAgICAgICAgICAgIGxlbmd0aCA9IHN3YXA7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVuY29kaW5nID0gU3RyaW5nKGVuY29kaW5nIHx8ICd1dGY4JykudG9Mb3dlckNhc2UoKTsKCiAgICAgICAgICAgIC8vIFVzZSBuYXRpdmUgY29udmVyc2lvbiB3aGVuIHBvc3NpYmxlCiAgICAgICAgICAgIGlmIChCdWZmZXIuaXNOYXRpdmVFbmNvZGluZyhlbmNvZGluZykpCiAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ2luYWwuQnVmZmVyV3JpdGUuY2FsbCh0aGlzLCBzdHJpbmcsIF9vZmZzZXQsIF9sZW5ndGgsIF9lbmNvZGluZyk7CgogICAgICAgICAgICBvZmZzZXQgPSArb2Zmc2V0IHx8IDA7CiAgICAgICAgICAgIHZhciByZW1haW5pbmcgPSB0aGlzLmxlbmd0aCAtIG9mZnNldDsKICAgICAgICAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAgICAgICAgIGxlbmd0aCA9IHJlbWFpbmluZzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGxlbmd0aCA9ICtsZW5ndGg7CiAgICAgICAgICAgICAgICBpZiAobGVuZ3RoID4gcmVtYWluaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgbGVuZ3RoID0gcmVtYWluaW5nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCA+IDAgJiYgKGxlbmd0aCA8IDAgfHwgb2Zmc2V0IDwgMCkpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignYXR0ZW1wdCB0byB3cml0ZSBiZXlvbmQgYnVmZmVyIGJvdW5kcycpOwoKICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCB1c2Ugb3VyIGVuY29kaW5nIG1ldGhvZC4KICAgICAgICAgICAgdmFyIGJ1ZiA9IGljb252LmVuY29kZShzdHJpbmcsIGVuY29kaW5nKTsKICAgICAgICAgICAgaWYgKGJ1Zi5sZW5ndGggPCBsZW5ndGgpIGxlbmd0aCA9IGJ1Zi5sZW5ndGg7CiAgICAgICAgICAgIGJ1Zi5jb3B5KHRoaXMsIG9mZnNldCwgMCwgbGVuZ3RoKTsKICAgICAgICAgICAgcmV0dXJuIGxlbmd0aDsKCiAgICAgICAgICAgIC8vIFRPRE86IFNldCBfY2hhcnNXcml0dGVuLgogICAgICAgIH0KCgogICAgICAgIC8vIC0tIFJlYWRhYmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICBpZiAoaWNvbnYuc3VwcG9ydHNTdHJlYW1zKSB7CiAgICAgICAgICAgIHZhciBSZWFkYWJsZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpLlJlYWRhYmxlOwoKICAgICAgICAgICAgb3JpZ2luYWwuUmVhZGFibGVTZXRFbmNvZGluZyA9IFJlYWRhYmxlLnByb3RvdHlwZS5zZXRFbmNvZGluZzsKICAgICAgICAgICAgUmVhZGFibGUucHJvdG90eXBlLnNldEVuY29kaW5nID0gZnVuY3Rpb24gc2V0RW5jb2RpbmcoZW5jLCBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICAvLyBVc2Ugb3VyIG93biBkZWNvZGVyLCBpdCBoYXMgdGhlIHNhbWUgaW50ZXJmYWNlLgogICAgICAgICAgICAgICAgLy8gV2UgY2Fubm90IHVzZSBvcmlnaW5hbCBmdW5jdGlvbiBhcyBpdCBkb2Vzbid0IGhhbmRsZSBCT00tcy4KICAgICAgICAgICAgICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2RlciA9IGljb252LmdldERlY29kZXIoZW5jLCBvcHRpb25zKTsKICAgICAgICAgICAgICAgIHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2RpbmcgPSBlbmM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFJlYWRhYmxlLnByb3RvdHlwZS5jb2xsZWN0ID0gaWNvbnYuX2NvbGxlY3Q7CiAgICAgICAgfQogICAgfQoKICAgIC8vIFJlbW92ZSBpY29udi1saXRlIE5vZGUgcHJpbWl0aXZlIGV4dGVuc2lvbnMuCiAgICBpY29udi51bmRvRXh0ZW5kTm9kZUVuY29kaW5ncyA9IGZ1bmN0aW9uIHVuZG9FeHRlbmROb2RlRW5jb2RpbmdzKCkgewogICAgICAgIGlmICghaWNvbnYuc3VwcG9ydHNOb2RlRW5jb2RpbmdzRXh0ZW5zaW9uKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKCFvcmlnaW5hbCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJyZXF1aXJlKCdpY29udi1saXRlJykudW5kb0V4dGVuZE5vZGVFbmNvZGluZ3MoKTogTm90aGluZyB0byB1bmRvOyBleHRlbmROb2RlRW5jb2RpbmdzKCkgaXMgbm90IGNhbGxlZC4iKQoKICAgICAgICBkZWxldGUgQnVmZmVyLmlzTmF0aXZlRW5jb2Rpbmc7CgogICAgICAgIHZhciBTbG93QnVmZmVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygxKS5TbG93QnVmZmVyOwoKICAgICAgICBTbG93QnVmZmVyLnByb3RvdHlwZS50b1N0cmluZyA9IG9yaWdpbmFsLlNsb3dCdWZmZXJUb1N0cmluZzsKICAgICAgICBTbG93QnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IG9yaWdpbmFsLlNsb3dCdWZmZXJXcml0ZTsKCiAgICAgICAgQnVmZmVyLmlzRW5jb2RpbmcgPSBvcmlnaW5hbC5CdWZmZXJJc0VuY29kaW5nOwogICAgICAgIEJ1ZmZlci5ieXRlTGVuZ3RoID0gb3JpZ2luYWwuQnVmZmVyQnl0ZUxlbmd0aDsKICAgICAgICBCdWZmZXIucHJvdG90eXBlLnRvU3RyaW5nID0gb3JpZ2luYWwuQnVmZmVyVG9TdHJpbmc7CiAgICAgICAgQnVmZmVyLnByb3RvdHlwZS53cml0ZSA9IG9yaWdpbmFsLkJ1ZmZlcldyaXRlOwoKICAgICAgICBpZiAoaWNvbnYuc3VwcG9ydHNTdHJlYW1zKSB7CiAgICAgICAgICAgIHZhciBSZWFkYWJsZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTUpLlJlYWRhYmxlOwoKICAgICAgICAgICAgUmVhZGFibGUucHJvdG90eXBlLnNldEVuY29kaW5nID0gb3JpZ2luYWwuUmVhZGFibGVTZXRFbmNvZGluZzsKICAgICAgICAgICAgZGVsZXRlIFJlYWRhYmxlLnByb3RvdHlwZS5jb2xsZWN0OwogICAgICAgIH0KCiAgICAgICAgb3JpZ2luYWwgPSB1bmRlZmluZWQ7CiAgICB9Cn0KCgovKioqLyB9KSwKLyogMTg3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBBcnJheVQsIExhenlBcnJheSwgTGF6eUFycmF5VCwgTnVtYmVyVCwgaW5zcGVjdCwgdXRpbHMsCiAgICBfX2hhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eSwKICAgIF9fZXh0ZW5kcyA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2YXIga2V5IGluIHBhcmVudCkgeyBpZiAoX19oYXNQcm9wLmNhbGwocGFyZW50LCBrZXkpKSBjaGlsZFtrZXldID0gcGFyZW50W2tleV07IH0gZnVuY3Rpb24gY3RvcigpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGNoaWxkOyB9IGN0b3IucHJvdG90eXBlID0gcGFyZW50LnByb3RvdHlwZTsgY2hpbGQucHJvdG90eXBlID0gbmV3IGN0b3IoKTsgY2hpbGQuX19zdXBlcl9fID0gcGFyZW50LnByb3RvdHlwZTsgcmV0dXJuIGNoaWxkOyB9OwoKICBBcnJheVQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkzKTsKCiAgTnVtYmVyVCA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpLk51bWJlcjsKCiAgdXRpbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKCiAgaW5zcGVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oNDkpLmluc3BlY3Q7CgogIExhenlBcnJheVQgPSAoZnVuY3Rpb24oX3N1cGVyKSB7CiAgICBfX2V4dGVuZHMoTGF6eUFycmF5VCwgX3N1cGVyKTsKCiAgICBmdW5jdGlvbiBMYXp5QXJyYXlUKCkgewogICAgICByZXR1cm4gTGF6eUFycmF5VC5fX3N1cGVyX18uY29uc3RydWN0b3IuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgIH0KCiAgICBMYXp5QXJyYXlULnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIHBhcmVudCkgewogICAgICB2YXIgbGVuZ3RoLCBwb3MsIHJlczsKICAgICAgcG9zID0gc3RyZWFtLnBvczsKICAgICAgbGVuZ3RoID0gdXRpbHMucmVzb2x2ZUxlbmd0aCh0aGlzLmxlbmd0aCwgc3RyZWFtLCBwYXJlbnQpOwogICAgICBpZiAodGhpcy5sZW5ndGggaW5zdGFuY2VvZiBOdW1iZXJUKSB7CiAgICAgICAgcGFyZW50ID0gewogICAgICAgICAgcGFyZW50OiBwYXJlbnQsCiAgICAgICAgICBfc3RhcnRPZmZzZXQ6IHBvcywKICAgICAgICAgIF9jdXJyZW50T2Zmc2V0OiAwLAogICAgICAgICAgX2xlbmd0aDogbGVuZ3RoCiAgICAgICAgfTsKICAgICAgfQogICAgICByZXMgPSBuZXcgTGF6eUFycmF5KHRoaXMudHlwZSwgbGVuZ3RoLCBzdHJlYW0sIHBhcmVudCk7CiAgICAgIHN0cmVhbS5wb3MgKz0gbGVuZ3RoICogdGhpcy50eXBlLnNpemUobnVsbCwgcGFyZW50KTsKICAgICAgcmV0dXJuIHJlczsKICAgIH07CgogICAgTGF6eUFycmF5VC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKHZhbCwgY3R4KSB7CiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBMYXp5QXJyYXkpIHsKICAgICAgICB2YWwgPSB2YWwudG9BcnJheSgpOwogICAgICB9CiAgICAgIHJldHVybiBMYXp5QXJyYXlULl9fc3VwZXJfXy5zaXplLmNhbGwodGhpcywgdmFsLCBjdHgpOwogICAgfTsKCiAgICBMYXp5QXJyYXlULnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIHZhbCwgY3R4KSB7CiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBMYXp5QXJyYXkpIHsKICAgICAgICB2YWwgPSB2YWwudG9BcnJheSgpOwogICAgICB9CiAgICAgIHJldHVybiBMYXp5QXJyYXlULl9fc3VwZXJfXy5lbmNvZGUuY2FsbCh0aGlzLCBzdHJlYW0sIHZhbCwgY3R4KTsKICAgIH07CgogICAgcmV0dXJuIExhenlBcnJheVQ7CgogIH0pKEFycmF5VCk7CgogIExhenlBcnJheSA9IChmdW5jdGlvbigpIHsKICAgIGZ1bmN0aW9uIExhenlBcnJheSh0eXBlLCBsZW5ndGgsIHN0cmVhbSwgY3R4KSB7CiAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoOwogICAgICB0aGlzLnN0cmVhbSA9IHN0cmVhbTsKICAgICAgdGhpcy5jdHggPSBjdHg7CiAgICAgIHRoaXMuYmFzZSA9IHRoaXMuc3RyZWFtLnBvczsKICAgICAgdGhpcy5pdGVtcyA9IFtdOwogICAgfQoKICAgIExhenlBcnJheS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24oaW5kZXgpIHsKICAgICAgdmFyIHBvczsKICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSB0aGlzLmxlbmd0aCkgewogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHRoaXMuaXRlbXNbaW5kZXhdID09IG51bGwpIHsKICAgICAgICBwb3MgPSB0aGlzLnN0cmVhbS5wb3M7CiAgICAgICAgdGhpcy5zdHJlYW0ucG9zID0gdGhpcy5iYXNlICsgdGhpcy50eXBlLnNpemUobnVsbCwgdGhpcy5jdHgpICogaW5kZXg7CiAgICAgICAgdGhpcy5pdGVtc1tpbmRleF0gPSB0aGlzLnR5cGUuZGVjb2RlKHRoaXMuc3RyZWFtLCB0aGlzLmN0eCk7CiAgICAgICAgdGhpcy5zdHJlYW0ucG9zID0gcG9zOwogICAgICB9CiAgICAgIHJldHVybiB0aGlzLml0ZW1zW2luZGV4XTsKICAgIH07CgogICAgTGF6eUFycmF5LnByb3RvdHlwZS50b0FycmF5ID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBpLCBfaSwgX3JlZiwgX3Jlc3VsdHM7CiAgICAgIF9yZXN1bHRzID0gW107CiAgICAgIGZvciAoaSA9IF9pID0gMCwgX3JlZiA9IHRoaXMubGVuZ3RoOyBfaSA8IF9yZWY7IGkgPSBfaSArPSAxKSB7CiAgICAgICAgX3Jlc3VsdHMucHVzaCh0aGlzLmdldChpKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIF9yZXN1bHRzOwogICAgfTsKCiAgICBMYXp5QXJyYXkucHJvdG90eXBlLmluc3BlY3QgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGluc3BlY3QodGhpcy50b0FycmF5KCkpOwogICAgfTsKCiAgICByZXR1cm4gTGF6eUFycmF5OwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IExhenlBcnJheVQ7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAxODggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIEJpdGZpZWxkOwoKICBCaXRmaWVsZCA9IChmdW5jdGlvbigpIHsKICAgIGZ1bmN0aW9uIEJpdGZpZWxkKHR5cGUsIGZsYWdzKSB7CiAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICAgIHRoaXMuZmxhZ3MgPSBmbGFncyAhPSBudWxsID8gZmxhZ3MgOiBbXTsKICAgIH0KCiAgICBCaXRmaWVsZC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oc3RyZWFtKSB7CiAgICAgIHZhciBmbGFnLCBpLCByZXMsIHZhbCwgX2ksIF9sZW4sIF9yZWY7CiAgICAgIHZhbCA9IHRoaXMudHlwZS5kZWNvZGUoc3RyZWFtKTsKICAgICAgcmVzID0ge307CiAgICAgIF9yZWYgPSB0aGlzLmZsYWdzOwogICAgICBmb3IgKGkgPSBfaSA9IDAsIF9sZW4gPSBfcmVmLmxlbmd0aDsgX2kgPCBfbGVuOyBpID0gKytfaSkgewogICAgICAgIGZsYWcgPSBfcmVmW2ldOwogICAgICAgIGlmIChmbGFnICE9IG51bGwpIHsKICAgICAgICAgIHJlc1tmbGFnXSA9ICEhKHZhbCAmICgxIDw8IGkpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHJlczsKICAgIH07CgogICAgQml0ZmllbGQucHJvdG90eXBlLnNpemUgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMudHlwZS5zaXplKCk7CiAgICB9OwoKICAgIEJpdGZpZWxkLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIGtleXMpIHsKICAgICAgdmFyIGZsYWcsIGksIHZhbCwgX2ksIF9sZW4sIF9yZWY7CiAgICAgIHZhbCA9IDA7CiAgICAgIF9yZWYgPSB0aGlzLmZsYWdzOwogICAgICBmb3IgKGkgPSBfaSA9IDAsIF9sZW4gPSBfcmVmLmxlbmd0aDsgX2kgPCBfbGVuOyBpID0gKytfaSkgewogICAgICAgIGZsYWcgPSBfcmVmW2ldOwogICAgICAgIGlmIChmbGFnICE9IG51bGwpIHsKICAgICAgICAgIGlmIChrZXlzW2ZsYWddKSB7CiAgICAgICAgICAgIHZhbCB8PSAxIDw8IGk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB0aGlzLnR5cGUuZW5jb2RlKHN0cmVhbSwgdmFsKTsKICAgIH07CgogICAgcmV0dXJuIEJpdGZpZWxkOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IEJpdGZpZWxkOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTg5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBCb29sZWFuVDsKCiAgQm9vbGVhblQgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBCb29sZWFuVCh0eXBlKSB7CiAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICB9CgogICAgQm9vbGVhblQucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uKHN0cmVhbSwgcGFyZW50KSB7CiAgICAgIHJldHVybiAhIXRoaXMudHlwZS5kZWNvZGUoc3RyZWFtLCBwYXJlbnQpOwogICAgfTsKCiAgICBCb29sZWFuVC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKHZhbCwgcGFyZW50KSB7CiAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZSh2YWwsIHBhcmVudCk7CiAgICB9OwoKICAgIEJvb2xlYW5ULnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIHZhbCwgcGFyZW50KSB7CiAgICAgIHJldHVybiB0aGlzLnR5cGUuZW5jb2RlKHN0cmVhbSwgK3ZhbCwgcGFyZW50KTsKICAgIH07CgogICAgcmV0dXJuIEJvb2xlYW5UOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IEJvb2xlYW5UOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTkwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBCdWZmZXJULCBOdW1iZXJULCB1dGlsczsKCiAgdXRpbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKCiAgTnVtYmVyVCA9IF9fd2VicGFja19yZXF1aXJlX18oMjIpLk51bWJlcjsKCiAgQnVmZmVyVCA9IChmdW5jdGlvbigpIHsKICAgIGZ1bmN0aW9uIEJ1ZmZlclQobGVuZ3RoKSB7CiAgICAgIHRoaXMubGVuZ3RoID0gbGVuZ3RoOwogICAgfQoKICAgIEJ1ZmZlclQucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uKHN0cmVhbSwgcGFyZW50KSB7CiAgICAgIHZhciBsZW5ndGg7CiAgICAgIGxlbmd0aCA9IHV0aWxzLnJlc29sdmVMZW5ndGgodGhpcy5sZW5ndGgsIHN0cmVhbSwgcGFyZW50KTsKICAgICAgcmV0dXJuIHN0cmVhbS5yZWFkQnVmZmVyKGxlbmd0aCk7CiAgICB9OwoKICAgIEJ1ZmZlclQucHJvdG90eXBlLnNpemUgPSBmdW5jdGlvbih2YWwsIHBhcmVudCkgewogICAgICBpZiAoIXZhbCkgewogICAgICAgIHJldHVybiB1dGlscy5yZXNvbHZlTGVuZ3RoKHRoaXMubGVuZ3RoLCBudWxsLCBwYXJlbnQpOwogICAgICB9CiAgICAgIHJldHVybiB2YWwubGVuZ3RoOwogICAgfTsKCiAgICBCdWZmZXJULnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIGJ1ZiwgcGFyZW50KSB7CiAgICAgIGlmICh0aGlzLmxlbmd0aCBpbnN0YW5jZW9mIE51bWJlclQpIHsKICAgICAgICB0aGlzLmxlbmd0aC5lbmNvZGUoc3RyZWFtLCBidWYubGVuZ3RoKTsKICAgICAgfQogICAgICByZXR1cm4gc3RyZWFtLndyaXRlQnVmZmVyKGJ1Zik7CiAgICB9OwoKICAgIHJldHVybiBCdWZmZXJUOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IEJ1ZmZlclQ7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAxOTEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIEVudW07CgogIEVudW0gPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBFbnVtKHR5cGUsIG9wdGlvbnMpIHsKICAgICAgdGhpcy50eXBlID0gdHlwZTsKICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucyAhPSBudWxsID8gb3B0aW9ucyA6IFtdOwogICAgfQoKICAgIEVudW0ucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uKHN0cmVhbSkgewogICAgICB2YXIgaW5kZXg7CiAgICAgIGluZGV4ID0gdGhpcy50eXBlLmRlY29kZShzdHJlYW0pOwogICAgICByZXR1cm4gdGhpcy5vcHRpb25zW2luZGV4XSB8fCBpbmRleDsKICAgIH07CgogICAgRW51bS5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhpcy50eXBlLnNpemUoKTsKICAgIH07CgogICAgRW51bS5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24oc3RyZWFtLCB2YWwpIHsKICAgICAgdmFyIGluZGV4OwogICAgICBpbmRleCA9IHRoaXMub3B0aW9ucy5pbmRleE9mKHZhbCk7CiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gb3B0aW9uIGluIGVudW06ICIgKyB2YWwpOwogICAgICB9CiAgICAgIHJldHVybiB0aGlzLnR5cGUuZW5jb2RlKHN0cmVhbSwgaW5kZXgpOwogICAgfTsKCiAgICByZXR1cm4gRW51bTsKCiAgfSkoKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBFbnVtOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTkyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBPcHRpb25hbDsKCiAgT3B0aW9uYWwgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBPcHRpb25hbCh0eXBlLCBjb25kaXRpb24pIHsKICAgICAgdGhpcy50eXBlID0gdHlwZTsKICAgICAgdGhpcy5jb25kaXRpb24gPSBjb25kaXRpb24gIT0gbnVsbCA/IGNvbmRpdGlvbiA6IHRydWU7CiAgICB9CgogICAgT3B0aW9uYWwucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uKHN0cmVhbSwgcGFyZW50KSB7CiAgICAgIHZhciBjb25kaXRpb247CiAgICAgIGNvbmRpdGlvbiA9IHRoaXMuY29uZGl0aW9uOwogICAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5jYWxsKHBhcmVudCwgcGFyZW50KTsKICAgICAgfQogICAgICBpZiAoY29uZGl0aW9uKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5kZWNvZGUoc3RyZWFtLCBwYXJlbnQpOwogICAgICB9CiAgICB9OwoKICAgIE9wdGlvbmFsLnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24odmFsLCBwYXJlbnQpIHsKICAgICAgdmFyIGNvbmRpdGlvbjsKICAgICAgY29uZGl0aW9uID0gdGhpcy5jb25kaXRpb247CiAgICAgIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgY29uZGl0aW9uID0gY29uZGl0aW9uLmNhbGwocGFyZW50LCBwYXJlbnQpOwogICAgICB9CiAgICAgIGlmIChjb25kaXRpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemUodmFsLCBwYXJlbnQpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAwOwogICAgICB9CiAgICB9OwoKICAgIE9wdGlvbmFsLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIHZhbCwgcGFyZW50KSB7CiAgICAgIHZhciBjb25kaXRpb247CiAgICAgIGNvbmRpdGlvbiA9IHRoaXMuY29uZGl0aW9uOwogICAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5jYWxsKHBhcmVudCwgcGFyZW50KTsKICAgICAgfQogICAgICBpZiAoY29uZGl0aW9uKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5lbmNvZGUoc3RyZWFtLCB2YWwsIHBhcmVudCk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIE9wdGlvbmFsOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IE9wdGlvbmFsOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTkzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS43LjEKKGZ1bmN0aW9uKCkgewogIHZhciBSZXNlcnZlZCwgdXRpbHM7CgogIHV0aWxzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7CgogIFJlc2VydmVkID0gKGZ1bmN0aW9uKCkgewogICAgZnVuY3Rpb24gUmVzZXJ2ZWQodHlwZSwgY291bnQpIHsKICAgICAgdGhpcy50eXBlID0gdHlwZTsKICAgICAgdGhpcy5jb3VudCA9IGNvdW50ICE9IG51bGwgPyBjb3VudCA6IDE7CiAgICB9CgogICAgUmVzZXJ2ZWQucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uKHN0cmVhbSwgcGFyZW50KSB7CiAgICAgIHN0cmVhbS5wb3MgKz0gdGhpcy5zaXplKG51bGwsIHBhcmVudCk7CiAgICAgIHJldHVybiB2b2lkIDA7CiAgICB9OwoKICAgIFJlc2VydmVkLnByb3RvdHlwZS5zaXplID0gZnVuY3Rpb24oZGF0YSwgcGFyZW50KSB7CiAgICAgIHZhciBjb3VudDsKICAgICAgY291bnQgPSB1dGlscy5yZXNvbHZlTGVuZ3RoKHRoaXMuY291bnQsIG51bGwsIHBhcmVudCk7CiAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZSgpICogY291bnQ7CiAgICB9OwoKICAgIFJlc2VydmVkLnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIHZhbCwgcGFyZW50KSB7CiAgICAgIHJldHVybiBzdHJlYW0uZmlsbCgwLCB0aGlzLnNpemUodmFsLCBwYXJlbnQpKTsKICAgIH07CgogICAgcmV0dXJuIFJlc2VydmVkOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IFJlc2VydmVkOwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMTk0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihCdWZmZXIpIHsvLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuNy4xCihmdW5jdGlvbigpIHsKICB2YXIgTnVtYmVyVCwgU3RyaW5nVCwgdXRpbHM7CgogIE51bWJlclQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyKS5OdW1iZXI7CgogIHV0aWxzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMik7CgogIFN0cmluZ1QgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBTdHJpbmdUKGxlbmd0aCwgZW5jb2RpbmcpIHsKICAgICAgdGhpcy5sZW5ndGggPSBsZW5ndGg7CiAgICAgIHRoaXMuZW5jb2RpbmcgPSBlbmNvZGluZyAhPSBudWxsID8gZW5jb2RpbmcgOiAnYXNjaWknOwogICAgfQoKICAgIFN0cmluZ1QucHJvdG90eXBlLmRlY29kZSA9IGZ1bmN0aW9uKHN0cmVhbSwgcGFyZW50KSB7CiAgICAgIHZhciBidWZmZXIsIGVuY29kaW5nLCBsZW5ndGgsIHBvcywgc3RyaW5nOwogICAgICBsZW5ndGggPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMubGVuZ3RoICE9IG51bGwpIHsKICAgICAgICAgIHJldHVybiB1dGlscy5yZXNvbHZlTGVuZ3RoKHRoaXMubGVuZ3RoLCBzdHJlYW0sIHBhcmVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJ1ZmZlciA9IHN0cmVhbS5idWZmZXIsIGxlbmd0aCA9IHN0cmVhbS5sZW5ndGgsIHBvcyA9IHN0cmVhbS5wb3M7CiAgICAgICAgICB3aGlsZSAocG9zIDwgbGVuZ3RoICYmIGJ1ZmZlcltwb3NdICE9PSAweDAwKSB7CiAgICAgICAgICAgICsrcG9zOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHBvcyAtIHN0cmVhbS5wb3M7CiAgICAgICAgfQogICAgICB9KS5jYWxsKHRoaXMpOwogICAgICBlbmNvZGluZyA9IHRoaXMuZW5jb2Rpbmc7CiAgICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICBlbmNvZGluZyA9IGVuY29kaW5nLmNhbGwocGFyZW50LCBwYXJlbnQpIHx8ICdhc2NpaSc7CiAgICAgIH0KICAgICAgc3RyaW5nID0gc3RyZWFtLnJlYWRTdHJpbmcobGVuZ3RoLCBlbmNvZGluZyk7CiAgICAgIGlmICgodGhpcy5sZW5ndGggPT0gbnVsbCkgJiYgc3RyZWFtLnBvcyA8IHN0cmVhbS5sZW5ndGgpIHsKICAgICAgICBzdHJlYW0ucG9zKys7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmluZzsKICAgIH07CgogICAgU3RyaW5nVC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKHZhbCwgcGFyZW50KSB7CiAgICAgIHZhciBlbmNvZGluZywgc2l6ZTsKICAgICAgaWYgKCF2YWwpIHsKICAgICAgICByZXR1cm4gdXRpbHMucmVzb2x2ZUxlbmd0aCh0aGlzLmxlbmd0aCwgbnVsbCwgcGFyZW50KTsKICAgICAgfQogICAgICBlbmNvZGluZyA9IHRoaXMuZW5jb2Rpbmc7CiAgICAgIGlmICh0eXBlb2YgZW5jb2RpbmcgPT09ICdmdW5jdGlvbicpIHsKICAgICAgICBlbmNvZGluZyA9IGVuY29kaW5nLmNhbGwocGFyZW50ICE9IG51bGwgPyBwYXJlbnQudmFsIDogdm9pZCAwLCBwYXJlbnQgIT0gbnVsbCA/IHBhcmVudC52YWwgOiB2b2lkIDApIHx8ICdhc2NpaSc7CiAgICAgIH0KICAgICAgaWYgKGVuY29kaW5nID09PSAndXRmMTZiZScpIHsKICAgICAgICBlbmNvZGluZyA9ICd1dGYxNmxlJzsKICAgICAgfQogICAgICBzaXplID0gQnVmZmVyLmJ5dGVMZW5ndGgodmFsLCBlbmNvZGluZyk7CiAgICAgIGlmICh0aGlzLmxlbmd0aCBpbnN0YW5jZW9mIE51bWJlclQpIHsKICAgICAgICBzaXplICs9IHRoaXMubGVuZ3RoLnNpemUoKTsKICAgICAgfQogICAgICBpZiAodGhpcy5sZW5ndGggPT0gbnVsbCkgewogICAgICAgIHNpemUrKzsKICAgICAgfQogICAgICByZXR1cm4gc2l6ZTsKICAgIH07CgogICAgU3RyaW5nVC5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24oc3RyZWFtLCB2YWwsIHBhcmVudCkgewogICAgICB2YXIgZW5jb2Rpbmc7CiAgICAgIGVuY29kaW5nID0gdGhpcy5lbmNvZGluZzsKICAgICAgaWYgKHR5cGVvZiBlbmNvZGluZyA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgIGVuY29kaW5nID0gZW5jb2RpbmcuY2FsbChwYXJlbnQgIT0gbnVsbCA/IHBhcmVudC52YWwgOiB2b2lkIDAsIHBhcmVudCAhPSBudWxsID8gcGFyZW50LnZhbCA6IHZvaWQgMCkgfHwgJ2FzY2lpJzsKICAgICAgfQogICAgICBpZiAodGhpcy5sZW5ndGggaW5zdGFuY2VvZiBOdW1iZXJUKSB7CiAgICAgICAgdGhpcy5sZW5ndGguZW5jb2RlKHN0cmVhbSwgQnVmZmVyLmJ5dGVMZW5ndGgodmFsLCBlbmNvZGluZykpOwogICAgICB9CiAgICAgIHN0cmVhbS53cml0ZVN0cmluZyh2YWwsIGVuY29kaW5nKTsKICAgICAgaWYgKHRoaXMubGVuZ3RoID09IG51bGwpIHsKICAgICAgICByZXR1cm4gc3RyZWFtLndyaXRlVUludDgoMHgwMCk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIFN0cmluZ1Q7CgogIH0pKCk7CgogIG1vZHVsZS5leHBvcnRzID0gU3RyaW5nVDsKCn0pLmNhbGwodGhpcyk7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIpKQoKLyoqKi8gfSksCi8qIDE5NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuNy4xCihmdW5jdGlvbigpIHsKICB2YXIgU3RydWN0LCBWZXJzaW9uZWRTdHJ1Y3QsCiAgICBfX2hhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eSwKICAgIF9fZXh0ZW5kcyA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2YXIga2V5IGluIHBhcmVudCkgeyBpZiAoX19oYXNQcm9wLmNhbGwocGFyZW50LCBrZXkpKSBjaGlsZFtrZXldID0gcGFyZW50W2tleV07IH0gZnVuY3Rpb24gY3RvcigpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGNoaWxkOyB9IGN0b3IucHJvdG90eXBlID0gcGFyZW50LnByb3RvdHlwZTsgY2hpbGQucHJvdG90eXBlID0gbmV3IGN0b3IoKTsgY2hpbGQuX19zdXBlcl9fID0gcGFyZW50LnByb3RvdHlwZTsgcmV0dXJuIGNoaWxkOyB9OwoKICBTdHJ1Y3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDk0KTsKCiAgVmVyc2lvbmVkU3RydWN0ID0gKGZ1bmN0aW9uKF9zdXBlcikgewogICAgX19leHRlbmRzKFZlcnNpb25lZFN0cnVjdCwgX3N1cGVyKTsKCiAgICBmdW5jdGlvbiBWZXJzaW9uZWRTdHJ1Y3QodHlwZSwgdmVyc2lvbnMpIHsKICAgICAgdGhpcy50eXBlID0gdHlwZTsKICAgICAgdGhpcy52ZXJzaW9ucyA9IHZlcnNpb25zICE9IG51bGwgPyB2ZXJzaW9ucyA6IHt9OwogICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSA9PT0gJ3N0cmluZycpIHsKICAgICAgICB0aGlzLnZlcnNpb25HZXR0ZXIgPSBuZXcgRnVuY3Rpb24oJ3BhcmVudCcsICJyZXR1cm4gcGFyZW50LiIgKyB0aGlzLnR5cGUpOwogICAgICAgIHRoaXMudmVyc2lvblNldHRlciA9IG5ldyBGdW5jdGlvbigncGFyZW50JywgJ3ZlcnNpb24nLCAicmV0dXJuIHBhcmVudC4iICsgdGhpcy50eXBlICsgIiA9IHZlcnNpb24iKTsKICAgICAgfQogICAgfQoKICAgIFZlcnNpb25lZFN0cnVjdC5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oc3RyZWFtLCBwYXJlbnQsIGxlbmd0aCkgewogICAgICB2YXIgZmllbGRzLCByZXMsIF9yZWY7CiAgICAgIGlmIChsZW5ndGggPT0gbnVsbCkgewogICAgICAgIGxlbmd0aCA9IDA7CiAgICAgIH0KICAgICAgcmVzID0gdGhpcy5fc2V0dXAoc3RyZWFtLCBwYXJlbnQsIGxlbmd0aCk7CiAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlID09PSAnc3RyaW5nJykgewogICAgICAgIHJlcy52ZXJzaW9uID0gdGhpcy52ZXJzaW9uR2V0dGVyKHBhcmVudCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmVzLnZlcnNpb24gPSB0aGlzLnR5cGUuZGVjb2RlKHN0cmVhbSk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMudmVyc2lvbnMuaGVhZGVyKSB7CiAgICAgICAgdGhpcy5fcGFyc2VGaWVsZHMoc3RyZWFtLCByZXMsIHRoaXMudmVyc2lvbnMuaGVhZGVyKTsKICAgICAgfQogICAgICBmaWVsZHMgPSB0aGlzLnZlcnNpb25zW3Jlcy52ZXJzaW9uXTsKICAgICAgaWYgKGZpZWxkcyA9PSBudWxsKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHZlcnNpb24gIiArIHJlcy52ZXJzaW9uKTsKICAgICAgfQogICAgICBpZiAoZmllbGRzIGluc3RhbmNlb2YgVmVyc2lvbmVkU3RydWN0KSB7CiAgICAgICAgcmV0dXJuIGZpZWxkcy5kZWNvZGUoc3RyZWFtLCBwYXJlbnQpOwogICAgICB9CiAgICAgIHRoaXMuX3BhcnNlRmllbGRzKHN0cmVhbSwgcmVzLCBmaWVsZHMpOwogICAgICBpZiAoKF9yZWYgPSB0aGlzLnByb2Nlc3MpICE9IG51bGwpIHsKICAgICAgICBfcmVmLmNhbGwocmVzLCBzdHJlYW0pOwogICAgICB9CiAgICAgIHJldHVybiByZXM7CiAgICB9OwoKICAgIFZlcnNpb25lZFN0cnVjdC5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKHZhbCwgcGFyZW50LCBpbmNsdWRlUG9pbnRlcnMpIHsKICAgICAgdmFyIGN0eCwgZmllbGRzLCBrZXksIHNpemUsIHR5cGUsIF9yZWY7CiAgICAgIGlmIChpbmNsdWRlUG9pbnRlcnMgPT0gbnVsbCkgewogICAgICAgIGluY2x1ZGVQb2ludGVycyA9IHRydWU7CiAgICAgIH0KICAgICAgaWYgKCF2YWwpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBhIGZpeGVkIHNpemUnKTsKICAgICAgfQogICAgICBjdHggPSB7CiAgICAgICAgcGFyZW50OiBwYXJlbnQsCiAgICAgICAgdmFsOiB2YWwsCiAgICAgICAgcG9pbnRlclNpemU6IDAKICAgICAgfTsKICAgICAgc2l6ZSA9IDA7CiAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAnc3RyaW5nJykgewogICAgICAgIHNpemUgKz0gdGhpcy50eXBlLnNpemUodmFsLnZlcnNpb24sIGN0eCk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMudmVyc2lvbnMuaGVhZGVyKSB7CiAgICAgICAgX3JlZiA9IHRoaXMudmVyc2lvbnMuaGVhZGVyOwogICAgICAgIGZvciAoa2V5IGluIF9yZWYpIHsKICAgICAgICAgIHR5cGUgPSBfcmVmW2tleV07CiAgICAgICAgICBpZiAodHlwZS5zaXplICE9IG51bGwpIHsKICAgICAgICAgICAgc2l6ZSArPSB0eXBlLnNpemUodmFsW2tleV0sIGN0eCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGZpZWxkcyA9IHRoaXMudmVyc2lvbnNbdmFsLnZlcnNpb25dOwogICAgICBpZiAoZmllbGRzID09IG51bGwpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gdmVyc2lvbiAiICsgdmFsLnZlcnNpb24pOwogICAgICB9CiAgICAgIGZvciAoa2V5IGluIGZpZWxkcykgewogICAgICAgIHR5cGUgPSBmaWVsZHNba2V5XTsKICAgICAgICBpZiAodHlwZS5zaXplICE9IG51bGwpIHsKICAgICAgICAgIHNpemUgKz0gdHlwZS5zaXplKHZhbFtrZXldLCBjdHgpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoaW5jbHVkZVBvaW50ZXJzKSB7CiAgICAgICAgc2l6ZSArPSBjdHgucG9pbnRlclNpemU7CiAgICAgIH0KICAgICAgcmV0dXJuIHNpemU7CiAgICB9OwoKICAgIFZlcnNpb25lZFN0cnVjdC5wcm90b3R5cGUuZW5jb2RlID0gZnVuY3Rpb24oc3RyZWFtLCB2YWwsIHBhcmVudCkgewogICAgICB2YXIgY3R4LCBmaWVsZHMsIGksIGtleSwgcHRyLCB0eXBlLCBfcmVmLCBfcmVmMTsKICAgICAgaWYgKChfcmVmID0gdGhpcy5wcmVFbmNvZGUpICE9IG51bGwpIHsKICAgICAgICBfcmVmLmNhbGwodmFsLCBzdHJlYW0pOwogICAgICB9CiAgICAgIGN0eCA9IHsKICAgICAgICBwb2ludGVyczogW10sCiAgICAgICAgc3RhcnRPZmZzZXQ6IHN0cmVhbS5wb3MsCiAgICAgICAgcGFyZW50OiBwYXJlbnQsCiAgICAgICAgdmFsOiB2YWwsCiAgICAgICAgcG9pbnRlclNpemU6IDAKICAgICAgfTsKICAgICAgY3R4LnBvaW50ZXJPZmZzZXQgPSBzdHJlYW0ucG9zICsgdGhpcy5zaXplKHZhbCwgY3R4LCBmYWxzZSk7CiAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAnc3RyaW5nJykgewogICAgICAgIHRoaXMudHlwZS5lbmNvZGUoc3RyZWFtLCB2YWwudmVyc2lvbik7CiAgICAgIH0KICAgICAgaWYgKHRoaXMudmVyc2lvbnMuaGVhZGVyKSB7CiAgICAgICAgX3JlZjEgPSB0aGlzLnZlcnNpb25zLmhlYWRlcjsKICAgICAgICBmb3IgKGtleSBpbiBfcmVmMSkgewogICAgICAgICAgdHlwZSA9IF9yZWYxW2tleV07CiAgICAgICAgICBpZiAodHlwZS5lbmNvZGUgIT0gbnVsbCkgewogICAgICAgICAgICB0eXBlLmVuY29kZShzdHJlYW0sIHZhbFtrZXldLCBjdHgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBmaWVsZHMgPSB0aGlzLnZlcnNpb25zW3ZhbC52ZXJzaW9uXTsKICAgICAgZm9yIChrZXkgaW4gZmllbGRzKSB7CiAgICAgICAgdHlwZSA9IGZpZWxkc1trZXldOwogICAgICAgIGlmICh0eXBlLmVuY29kZSAhPSBudWxsKSB7CiAgICAgICAgICB0eXBlLmVuY29kZShzdHJlYW0sIHZhbFtrZXldLCBjdHgpOwogICAgICAgIH0KICAgICAgfQogICAgICBpID0gMDsKICAgICAgd2hpbGUgKGkgPCBjdHgucG9pbnRlcnMubGVuZ3RoKSB7CiAgICAgICAgcHRyID0gY3R4LnBvaW50ZXJzW2krK107CiAgICAgICAgcHRyLnR5cGUuZW5jb2RlKHN0cmVhbSwgcHRyLnZhbCwgcHRyLnBhcmVudCk7CiAgICAgIH0KICAgIH07CgogICAgcmV0dXJuIFZlcnNpb25lZFN0cnVjdDsKCiAgfSkoU3RydWN0KTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBWZXJzaW9uZWRTdHJ1Y3Q7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAxOTYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjcuMQooZnVuY3Rpb24oKSB7CiAgdmFyIFBvaW50ZXIsIFZvaWRQb2ludGVyLCB1dGlsczsKCiAgdXRpbHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyKTsKCiAgUG9pbnRlciA9IChmdW5jdGlvbigpIHsKICAgIGZ1bmN0aW9uIFBvaW50ZXIob2Zmc2V0VHlwZSwgdHlwZSwgb3B0aW9ucykgewogICAgICB2YXIgX2Jhc2UsIF9iYXNlMSwgX2Jhc2UyLCBfYmFzZTM7CiAgICAgIHRoaXMub2Zmc2V0VHlwZSA9IG9mZnNldFR5cGU7CiAgICAgIHRoaXMudHlwZSA9IHR5cGU7CiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgIT0gbnVsbCA/IG9wdGlvbnMgOiB7fTsKICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3ZvaWQnKSB7CiAgICAgICAgdGhpcy50eXBlID0gbnVsbDsKICAgICAgfQogICAgICBpZiAoKF9iYXNlID0gdGhpcy5vcHRpb25zKS50eXBlID09IG51bGwpIHsKICAgICAgICBfYmFzZS50eXBlID0gJ2xvY2FsJzsKICAgICAgfQogICAgICBpZiAoKF9iYXNlMSA9IHRoaXMub3B0aW9ucykuYWxsb3dOdWxsID09IG51bGwpIHsKICAgICAgICBfYmFzZTEuYWxsb3dOdWxsID0gdHJ1ZTsKICAgICAgfQogICAgICBpZiAoKF9iYXNlMiA9IHRoaXMub3B0aW9ucykubnVsbFZhbHVlID09IG51bGwpIHsKICAgICAgICBfYmFzZTIubnVsbFZhbHVlID0gMDsKICAgICAgfQogICAgICBpZiAoKF9iYXNlMyA9IHRoaXMub3B0aW9ucykubGF6eSA9PSBudWxsKSB7CiAgICAgICAgX2Jhc2UzLmxhenkgPSBmYWxzZTsKICAgICAgfQogICAgICBpZiAodGhpcy5vcHRpb25zLnJlbGF0aXZlVG8pIHsKICAgICAgICB0aGlzLnJlbGF0aXZlVG9HZXR0ZXIgPSBuZXcgRnVuY3Rpb24oJ2N0eCcsICJyZXR1cm4gY3R4LiIgKyB0aGlzLm9wdGlvbnMucmVsYXRpdmVUbyk7CiAgICAgIH0KICAgIH0KCiAgICBQb2ludGVyLnByb3RvdHlwZS5kZWNvZGUgPSBmdW5jdGlvbihzdHJlYW0sIGN0eCkgewogICAgICB2YXIgYywgZGVjb2RlVmFsdWUsIG9mZnNldCwgcHRyLCByZWxhdGl2ZSwgdmFsOwogICAgICBvZmZzZXQgPSB0aGlzLm9mZnNldFR5cGUuZGVjb2RlKHN0cmVhbSwgY3R4KTsKICAgICAgaWYgKG9mZnNldCA9PT0gdGhpcy5vcHRpb25zLm51bGxWYWx1ZSAmJiB0aGlzLm9wdGlvbnMuYWxsb3dOdWxsKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgcmVsYXRpdmUgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgc3dpdGNoICh0aGlzLm9wdGlvbnMudHlwZSkgewogICAgICAgICAgY2FzZSAnbG9jYWwnOgogICAgICAgICAgICByZXR1cm4gY3R4Ll9zdGFydE9mZnNldDsKICAgICAgICAgIGNhc2UgJ2ltbWVkaWF0ZSc6CiAgICAgICAgICAgIHJldHVybiBzdHJlYW0ucG9zIC0gdGhpcy5vZmZzZXRUeXBlLnNpemUoKTsKICAgICAgICAgIGNhc2UgJ3BhcmVudCc6CiAgICAgICAgICAgIHJldHVybiBjdHgucGFyZW50Ll9zdGFydE9mZnNldDsKICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGMgPSBjdHg7CiAgICAgICAgICAgIHdoaWxlIChjLnBhcmVudCkgewogICAgICAgICAgICAgIGMgPSBjLnBhcmVudDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYy5fc3RhcnRPZmZzZXQgfHwgMDsKICAgICAgICB9CiAgICAgIH0pLmNhbGwodGhpcyk7CiAgICAgIGlmICh0aGlzLm9wdGlvbnMucmVsYXRpdmVUbykgewogICAgICAgIHJlbGF0aXZlICs9IHRoaXMucmVsYXRpdmVUb0dldHRlcihjdHgpOwogICAgICB9CiAgICAgIHB0ciA9IG9mZnNldCArIHJlbGF0aXZlOwogICAgICBpZiAodGhpcy50eXBlICE9IG51bGwpIHsKICAgICAgICB2YWwgPSBudWxsOwogICAgICAgIGRlY29kZVZhbHVlID0gKGZ1bmN0aW9uKF90aGlzKSB7CiAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBwb3M7CiAgICAgICAgICAgIGlmICh2YWwgIT0gbnVsbCkgewogICAgICAgICAgICAgIHJldHVybiB2YWw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcG9zID0gc3RyZWFtLnBvczsKICAgICAgICAgICAgc3RyZWFtLnBvcyA9IHB0cjsKICAgICAgICAgICAgdmFsID0gX3RoaXMudHlwZS5kZWNvZGUoc3RyZWFtLCBjdHgpOwogICAgICAgICAgICBzdHJlYW0ucG9zID0gcG9zOwogICAgICAgICAgICByZXR1cm4gdmFsOwogICAgICAgICAgfTsKICAgICAgICB9KSh0aGlzKTsKICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxhenkpIHsKICAgICAgICAgIHJldHVybiBuZXcgdXRpbHMuUHJvcGVydHlEZXNjcmlwdG9yKHsKICAgICAgICAgICAgZ2V0OiBkZWNvZGVWYWx1ZQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBkZWNvZGVWYWx1ZSgpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBwdHI7CiAgICAgIH0KICAgIH07CgogICAgUG9pbnRlci5wcm90b3R5cGUuc2l6ZSA9IGZ1bmN0aW9uKHZhbCwgY3R4KSB7CiAgICAgIHZhciBwYXJlbnQsIHR5cGU7CiAgICAgIHBhcmVudCA9IGN0eDsKICAgICAgc3dpdGNoICh0aGlzLm9wdGlvbnMudHlwZSkgewogICAgICAgIGNhc2UgJ2xvY2FsJzoKICAgICAgICBjYXNlICdpbW1lZGlhdGUnOgogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAncGFyZW50JzoKICAgICAgICAgIGN0eCA9IGN0eC5wYXJlbnQ7CiAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgd2hpbGUgKGN0eC5wYXJlbnQpIHsKICAgICAgICAgICAgY3R4ID0gY3R4LnBhcmVudDsKICAgICAgICAgIH0KICAgICAgfQogICAgICB0eXBlID0gdGhpcy50eXBlOwogICAgICBpZiAodHlwZSA9PSBudWxsKSB7CiAgICAgICAgaWYgKCEodmFsIGluc3RhbmNlb2YgVm9pZFBvaW50ZXIpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk11c3QgYmUgYSBWb2lkUG9pbnRlciIpOwogICAgICAgIH0KICAgICAgICB0eXBlID0gdmFsLnR5cGU7CiAgICAgICAgdmFsID0gdmFsLnZhbHVlOwogICAgICB9CiAgICAgIGlmICh2YWwgJiYgY3R4KSB7CiAgICAgICAgY3R4LnBvaW50ZXJTaXplICs9IHR5cGUuc2l6ZSh2YWwsIHBhcmVudCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMub2Zmc2V0VHlwZS5zaXplKCk7CiAgICB9OwoKICAgIFBvaW50ZXIucHJvdG90eXBlLmVuY29kZSA9IGZ1bmN0aW9uKHN0cmVhbSwgdmFsLCBjdHgpIHsKICAgICAgdmFyIHBhcmVudCwgcmVsYXRpdmUsIHR5cGU7CiAgICAgIHBhcmVudCA9IGN0eDsKICAgICAgaWYgKHZhbCA9PSBudWxsKSB7CiAgICAgICAgdGhpcy5vZmZzZXRUeXBlLmVuY29kZShzdHJlYW0sIHRoaXMub3B0aW9ucy5udWxsVmFsdWUpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy50eXBlKSB7CiAgICAgICAgY2FzZSAnbG9jYWwnOgogICAgICAgICAgcmVsYXRpdmUgPSBjdHguc3RhcnRPZmZzZXQ7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdpbW1lZGlhdGUnOgogICAgICAgICAgcmVsYXRpdmUgPSBzdHJlYW0ucG9zICsgdGhpcy5vZmZzZXRUeXBlLnNpemUodmFsLCBwYXJlbnQpOwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAncGFyZW50JzoKICAgICAgICAgIGN0eCA9IGN0eC5wYXJlbnQ7CiAgICAgICAgICByZWxhdGl2ZSA9IGN0eC5zdGFydE9mZnNldDsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZWxhdGl2ZSA9IDA7CiAgICAgICAgICB3aGlsZSAoY3R4LnBhcmVudCkgewogICAgICAgICAgICBjdHggPSBjdHgucGFyZW50OwogICAgICAgICAgfQogICAgICB9CiAgICAgIGlmICh0aGlzLm9wdGlvbnMucmVsYXRpdmVUbykgewogICAgICAgIHJlbGF0aXZlICs9IHRoaXMucmVsYXRpdmVUb0dldHRlcihwYXJlbnQudmFsKTsKICAgICAgfQogICAgICB0aGlzLm9mZnNldFR5cGUuZW5jb2RlKHN0cmVhbSwgY3R4LnBvaW50ZXJPZmZzZXQgLSByZWxhdGl2ZSk7CiAgICAgIHR5cGUgPSB0aGlzLnR5cGU7CiAgICAgIGlmICh0eXBlID09IG51bGwpIHsKICAgICAgICBpZiAoISh2YWwgaW5zdGFuY2VvZiBWb2lkUG9pbnRlcikpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhIFZvaWRQb2ludGVyIik7CiAgICAgICAgfQogICAgICAgIHR5cGUgPSB2YWwudHlwZTsKICAgICAgICB2YWwgPSB2YWwudmFsdWU7CiAgICAgIH0KICAgICAgY3R4LnBvaW50ZXJzLnB1c2goewogICAgICAgIHR5cGU6IHR5cGUsCiAgICAgICAgdmFsOiB2YWwsCiAgICAgICAgcGFyZW50OiBwYXJlbnQKICAgICAgfSk7CiAgICAgIHJldHVybiBjdHgucG9pbnRlck9mZnNldCArPSB0eXBlLnNpemUodmFsLCBwYXJlbnQpOwogICAgfTsKCiAgICByZXR1cm4gUG9pbnRlcjsKCiAgfSkoKTsKCiAgVm9pZFBvaW50ZXIgPSAoZnVuY3Rpb24oKSB7CiAgICBmdW5jdGlvbiBWb2lkUG9pbnRlcih0eXBlLCB2YWx1ZSkgewogICAgICB0aGlzLnR5cGUgPSB0eXBlOwogICAgICB0aGlzLnZhbHVlID0gdmFsdWU7CiAgICB9CgogICAgcmV0dXJuIFZvaWRQb2ludGVyOwoKICB9KSgpOwoKICBleHBvcnRzLlBvaW50ZXIgPSBQb2ludGVyOwoKICBleHBvcnRzLlZvaWRQb2ludGVyID0gVm9pZFBvaW50ZXI7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAxOTcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKbW9kdWxlLmV4cG9ydHMgPSB7ICJkZWZhdWx0IjogX193ZWJwYWNrX3JlcXVpcmVfXygxOTgpLCBfX2VzTW9kdWxlOiB0cnVlIH07CgovKioqLyB9KSwKLyogMTk4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCl9fd2VicGFja19yZXF1aXJlX18oMTk5KTsKdmFyICRPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpLk9iamVjdDsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkgewogIHJldHVybiAkT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpdCwga2V5KTsKfTsKCgovKioqLyB9KSwKLyogMTk5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIDE5LjEuMi42IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkKdmFyIHRvSU9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpOwp2YXIgJGdldE93blByb3BlcnR5RGVzY3JpcHRvciA9IF9fd2VicGFja19yZXF1aXJlX18oNTcpLmY7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDU5KSgnZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yJywgZnVuY3Rpb24gKCkgewogIHJldHVybiBmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaXQsIGtleSkgewogICAgcmV0dXJuICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodG9JT2JqZWN0KGl0KSwga2V5KTsKICB9Owp9KTsKCgovKioqLyB9KSwKLyogMjAwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCl9fd2VicGFja19yZXF1aXJlX18oMjgpOwpfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTsKbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwOCk7CgoKLyoqKi8gfSksCi8qIDIwMSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7Cgp2YXIgYWRkVG9VbnNjb3BhYmxlcyA9IF9fd2VicGFja19yZXF1aXJlX18oMjAyKTsKdmFyIHN0ZXAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDk4KTsKdmFyIEl0ZXJhdG9ycyA9IF9fd2VicGFja19yZXF1aXJlX18oMjMpOwp2YXIgdG9JT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNyk7CgovLyAyMi4xLjMuNCBBcnJheS5wcm90b3R5cGUuZW50cmllcygpCi8vIDIyLjEuMy4xMyBBcnJheS5wcm90b3R5cGUua2V5cygpCi8vIDIyLjEuMy4yOSBBcnJheS5wcm90b3R5cGUudmFsdWVzKCkKLy8gMjIuMS4zLjMwIEFycmF5LnByb3RvdHlwZVtAQGl0ZXJhdG9yXSgpCm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2MSkoQXJyYXksICdBcnJheScsIGZ1bmN0aW9uIChpdGVyYXRlZCwga2luZCkgewogIHRoaXMuX3QgPSB0b0lPYmplY3QoaXRlcmF0ZWQpOyAvLyB0YXJnZXQKICB0aGlzLl9pID0gMDsgICAgICAgICAgICAgICAgICAgLy8gbmV4dCBpbmRleAogIHRoaXMuX2sgPSBraW5kOyAgICAgICAgICAgICAgICAvLyBraW5kCi8vIDIyLjEuNS4yLjEgJUFycmF5SXRlcmF0b3JQcm90b3R5cGUlLm5leHQoKQp9LCBmdW5jdGlvbiAoKSB7CiAgdmFyIE8gPSB0aGlzLl90OwogIHZhciBraW5kID0gdGhpcy5fazsKICB2YXIgaW5kZXggPSB0aGlzLl9pKys7CiAgaWYgKCFPIHx8IGluZGV4ID49IE8ubGVuZ3RoKSB7CiAgICB0aGlzLl90ID0gdW5kZWZpbmVkOwogICAgcmV0dXJuIHN0ZXAoMSk7CiAgfQogIGlmIChraW5kID09ICdrZXlzJykgcmV0dXJuIHN0ZXAoMCwgaW5kZXgpOwogIGlmIChraW5kID09ICd2YWx1ZXMnKSByZXR1cm4gc3RlcCgwLCBPW2luZGV4XSk7CiAgcmV0dXJuIHN0ZXAoMCwgW2luZGV4LCBPW2luZGV4XV0pOwp9LCAndmFsdWVzJyk7CgovLyBhcmd1bWVudHNMaXN0W0BAaXRlcmF0b3JdIGlzICVBcnJheVByb3RvX3ZhbHVlcyUgKDkuNC40LjYsIDkuNC40LjcpCkl0ZXJhdG9ycy5Bcmd1bWVudHMgPSBJdGVyYXRvcnMuQXJyYXk7CgphZGRUb1Vuc2NvcGFibGVzKCdrZXlzJyk7CmFkZFRvVW5zY29wYWJsZXMoJ3ZhbHVlcycpOwphZGRUb1Vuc2NvcGFibGVzKCdlbnRyaWVzJyk7CgoKLyoqKi8gfSksCi8qIDIwMiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7Cgptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uICgpIHsgLyogZW1wdHkgKi8gfTsKCgovKioqLyB9KSwKLyogMjAzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCnZhciBjcmVhdGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM2KTsKdmFyIGRlc2NyaXB0b3IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3KTsKdmFyIHNldFRvU3RyaW5nVGFnID0gX193ZWJwYWNrX3JlcXVpcmVfXygzOSk7CnZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9OwoKLy8gMjUuMS4yLjEuMSAlSXRlcmF0b3JQcm90b3R5cGUlW0BAaXRlcmF0b3JdKCkKX193ZWJwYWNrX3JlcXVpcmVfXygxMykoSXRlcmF0b3JQcm90b3R5cGUsIF9fd2VicGFja19yZXF1aXJlX18oNCkoJ2l0ZXJhdG9yJyksIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0pOwoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIE5BTUUsIG5leHQpIHsKICBDb25zdHJ1Y3Rvci5wcm90b3R5cGUgPSBjcmVhdGUoSXRlcmF0b3JQcm90b3R5cGUsIHsgbmV4dDogZGVzY3JpcHRvcigxLCBuZXh0KSB9KTsKICBzZXRUb1N0cmluZ1RhZyhDb25zdHJ1Y3RvciwgTkFNRSArICcgSXRlcmF0b3InKTsKfTsKCgovKioqLyB9KSwKLyogMjA0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIGZhbHNlIC0+IEFycmF5I2luZGV4T2YKLy8gdHJ1ZSAgLT4gQXJyYXkjaW5jbHVkZXMKdmFyIHRvSU9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpOwp2YXIgdG9MZW5ndGggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM3KTsKdmFyIHRvQWJzb2x1dGVJbmRleCA9IF9fd2VicGFja19yZXF1aXJlX18oMTAyKTsKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoSVNfSU5DTFVERVMpIHsKICByZXR1cm4gZnVuY3Rpb24gKCR0aGlzLCBlbCwgZnJvbUluZGV4KSB7CiAgICB2YXIgTyA9IHRvSU9iamVjdCgkdGhpcyk7CiAgICB2YXIgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpOwogICAgdmFyIGluZGV4ID0gdG9BYnNvbHV0ZUluZGV4KGZyb21JbmRleCwgbGVuZ3RoKTsKICAgIHZhciB2YWx1ZTsKICAgIC8vIEFycmF5I2luY2x1ZGVzIHVzZXMgU2FtZVZhbHVlWmVybyBlcXVhbGl0eSBhbGdvcml0aG0KICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1zZWxmLWNvbXBhcmUKICAgIGlmIChJU19JTkNMVURFUyAmJiBlbCAhPSBlbCkgd2hpbGUgKGxlbmd0aCA+IGluZGV4KSB7CiAgICAgIHZhbHVlID0gT1tpbmRleCsrXTsKICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtY29tcGFyZQogICAgICBpZiAodmFsdWUgIT0gdmFsdWUpIHJldHVybiB0cnVlOwogICAgLy8gQXJyYXkjaW5kZXhPZiBpZ25vcmVzIGhvbGVzLCBBcnJheSNpbmNsdWRlcyAtIG5vdAogICAgfSBlbHNlIGZvciAoO2xlbmd0aCA+IGluZGV4OyBpbmRleCsrKSBpZiAoSVNfSU5DTFVERVMgfHwgaW5kZXggaW4gTykgewogICAgICBpZiAoT1tpbmRleF0gPT09IGVsKSByZXR1cm4gSVNfSU5DTFVERVMgfHwgaW5kZXggfHwgMDsKICAgIH0gcmV0dXJuICFJU19JTkNMVURFUyAmJiAtMTsKICB9Owp9OwoKCi8qKiovIH0pLAovKiAyMDUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGRvY3VtZW50ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMCkuZG9jdW1lbnQ7Cm1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwoKCi8qKiovIH0pLAovKiAyMDYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gMTkuMS4yLjkgLyAxNS4yLjMuMiBPYmplY3QuZ2V0UHJvdG90eXBlT2YoTykKdmFyIGhhcyA9IF9fd2VicGFja19yZXF1aXJlX18oMTgpOwp2YXIgdG9PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTsKdmFyIElFX1BST1RPID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2NCkoJ0lFX1BST1RPJyk7CnZhciBPYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7Cgptb2R1bGUuZXhwb3J0cyA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiB8fCBmdW5jdGlvbiAoTykgewogIE8gPSB0b09iamVjdChPKTsKICBpZiAoaGFzKE8sIElFX1BST1RPKSkgcmV0dXJuIE9bSUVfUFJPVE9dOwogIGlmICh0eXBlb2YgTy5jb25zdHJ1Y3RvciA9PSAnZnVuY3Rpb24nICYmIE8gaW5zdGFuY2VvZiBPLmNvbnN0cnVjdG9yKSB7CiAgICByZXR1cm4gTy5jb25zdHJ1Y3Rvci5wcm90b3R5cGU7CiAgfSByZXR1cm4gTyBpbnN0YW5jZW9mIE9iamVjdCA/IE9iamVjdFByb3RvIDogbnVsbDsKfTsKCgovKioqLyB9KSwKLyogMjA3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciB0b0ludGVnZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYzKTsKdmFyIGRlZmluZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU2KTsKLy8gdHJ1ZSAgLT4gU3RyaW5nI2F0Ci8vIGZhbHNlIC0+IFN0cmluZyNjb2RlUG9pbnRBdAptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUT19TVFJJTkcpIHsKICByZXR1cm4gZnVuY3Rpb24gKHRoYXQsIHBvcykgewogICAgdmFyIHMgPSBTdHJpbmcoZGVmaW5lZCh0aGF0KSk7CiAgICB2YXIgaSA9IHRvSW50ZWdlcihwb3MpOwogICAgdmFyIGwgPSBzLmxlbmd0aDsKICAgIHZhciBhLCBiOwogICAgaWYgKGkgPCAwIHx8IGkgPj0gbCkgcmV0dXJuIFRPX1NUUklORyA/ICcnIDogdW5kZWZpbmVkOwogICAgYSA9IHMuY2hhckNvZGVBdChpKTsKICAgIHJldHVybiBhIDwgMHhkODAwIHx8IGEgPiAweGRiZmYgfHwgaSArIDEgPT09IGwgfHwgKGIgPSBzLmNoYXJDb2RlQXQoaSArIDEpKSA8IDB4ZGMwMCB8fCBiID4gMHhkZmZmCiAgICAgID8gVE9fU1RSSU5HID8gcy5jaGFyQXQoaSkgOiBhCiAgICAgIDogVE9fU1RSSU5HID8gcy5zbGljZShpLCBpICsgMikgOiAoYSAtIDB4ZDgwMCA8PCAxMCkgKyAoYiAtIDB4ZGMwMCkgKyAweDEwMDAwOwogIH07Cn07CgoKLyoqKi8gfSksCi8qIDIwOCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgYW5PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKdmFyIGdldCA9IF9fd2VicGFja19yZXF1aXJlX18oNjcpOwptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMikuZ2V0SXRlcmF0b3IgPSBmdW5jdGlvbiAoaXQpIHsKICB2YXIgaXRlckZuID0gZ2V0KGl0KTsKICBpZiAodHlwZW9mIGl0ZXJGbiAhPSAnZnVuY3Rpb24nKSB0aHJvdyBUeXBlRXJyb3IoaXQgKyAnIGlzIG5vdCBpdGVyYWJsZSEnKTsKICByZXR1cm4gYW5PYmplY3QoaXRlckZuLmNhbGwoaXQpKTsKfTsKCgovKioqLyB9KSwKLyogMjA5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjEwKSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDIxMCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDIxMSk7Cm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKS5PYmplY3QuZnJlZXplOwoKCi8qKiovIH0pLAovKiAyMTEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gMTkuMS4yLjUgT2JqZWN0LmZyZWV6ZShPKQp2YXIgaXNPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpOwp2YXIgbWV0YSA9IF9fd2VicGFja19yZXF1aXJlX18oNDApLm9uRnJlZXplOwoKX193ZWJwYWNrX3JlcXVpcmVfXyg1OSkoJ2ZyZWV6ZScsIGZ1bmN0aW9uICgkZnJlZXplKSB7CiAgcmV0dXJuIGZ1bmN0aW9uIGZyZWV6ZShpdCkgewogICAgcmV0dXJuICRmcmVlemUgJiYgaXNPYmplY3QoaXQpID8gJGZyZWV6ZShtZXRhKGl0KSkgOiBpdDsKICB9Owp9KTsKCgovKioqLyB9KSwKLyogMjEyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjEzKSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDIxMyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDIxNCk7Cm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKS5PYmplY3Qua2V5czsKCgovKioqLyB9KSwKLyogMjE0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIDE5LjEuMi4xNCBPYmplY3Qua2V5cyhPKQp2YXIgdG9PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTsKdmFyICRrZXlzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyOSk7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDU5KSgna2V5cycsIGZ1bmN0aW9uICgpIHsKICByZXR1cm4gZnVuY3Rpb24ga2V5cyhpdCkgewogICAgcmV0dXJuICRrZXlzKHRvT2JqZWN0KGl0KSk7CiAgfTsKfSk7CgoKLyoqKi8gfSksCi8qIDIxNSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTsKX193ZWJwYWNrX3JlcXVpcmVfXygyOCk7Cm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3MCkuZignaXRlcmF0b3InKTsKCgovKioqLyB9KSwKLyogMjE2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjE3KSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDIxNyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDIxOCk7Cl9fd2VicGFja19yZXF1aXJlX18oNzMpOwpfX3dlYnBhY2tfcmVxdWlyZV9fKDIyMSk7Cl9fd2VicGFja19yZXF1aXJlX18oMjIyKTsKbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpLlN5bWJvbDsKCgovKioqLyB9KSwKLyogMjE4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCi8vIEVDTUFTY3JpcHQgNiBzeW1ib2xzIHNoaW0KdmFyIGdsb2JhbCA9IF9fd2VicGFja19yZXF1aXJlX18oMTApOwp2YXIgaGFzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOCk7CnZhciBERVNDUklQVE9SUyA9IF9fd2VicGFja19yZXF1aXJlX18oNSk7CnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKdmFyIHJlZGVmaW5lID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5OSk7CnZhciBNRVRBID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0MCkuS0VZOwp2YXIgJGZhaWxzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxOSk7CnZhciBzaGFyZWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDY1KTsKdmFyIHNldFRvU3RyaW5nVGFnID0gX193ZWJwYWNrX3JlcXVpcmVfXygzOSk7CnZhciB1aWQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM4KTsKdmFyIHdrcyA9IF9fd2VicGFja19yZXF1aXJlX18oNCk7CnZhciB3a3NFeHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcwKTsKdmFyIHdrc0RlZmluZSA9IF9fd2VicGFja19yZXF1aXJlX18oNzEpOwp2YXIgZW51bUtleXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIxOSk7CnZhciBpc0FycmF5ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMDQpOwp2YXIgYW5PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKdmFyIGlzT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTsKdmFyIHRvSU9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMTcpOwp2YXIgdG9QcmltaXRpdmUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU4KTsKdmFyIGNyZWF0ZURlc2MgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3KTsKdmFyIF9jcmVhdGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDM2KTsKdmFyIGdPUE5FeHQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIyMCk7CnZhciAkR09QRCA9IF9fd2VicGFja19yZXF1aXJlX18oNTcpOwp2YXIgJERQID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2KTsKdmFyICRrZXlzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyOSk7CnZhciBnT1BEID0gJEdPUEQuZjsKdmFyIGRQID0gJERQLmY7CnZhciBnT1BOID0gZ09QTkV4dC5mOwp2YXIgJFN5bWJvbCA9IGdsb2JhbC5TeW1ib2w7CnZhciAkSlNPTiA9IGdsb2JhbC5KU09OOwp2YXIgX3N0cmluZ2lmeSA9ICRKU09OICYmICRKU09OLnN0cmluZ2lmeTsKdmFyIFBST1RPVFlQRSA9ICdwcm90b3R5cGUnOwp2YXIgSElEREVOID0gd2tzKCdfaGlkZGVuJyk7CnZhciBUT19QUklNSVRJVkUgPSB3a3MoJ3RvUHJpbWl0aXZlJyk7CnZhciBpc0VudW0gPSB7fS5wcm9wZXJ0eUlzRW51bWVyYWJsZTsKdmFyIFN5bWJvbFJlZ2lzdHJ5ID0gc2hhcmVkKCdzeW1ib2wtcmVnaXN0cnknKTsKdmFyIEFsbFN5bWJvbHMgPSBzaGFyZWQoJ3N5bWJvbHMnKTsKdmFyIE9QU3ltYm9scyA9IHNoYXJlZCgnb3Atc3ltYm9scycpOwp2YXIgT2JqZWN0UHJvdG8gPSBPYmplY3RbUFJPVE9UWVBFXTsKdmFyIFVTRV9OQVRJVkUgPSB0eXBlb2YgJFN5bWJvbCA9PSAnZnVuY3Rpb24nOwp2YXIgUU9iamVjdCA9IGdsb2JhbC5RT2JqZWN0OwovLyBEb24ndCB1c2Ugc2V0dGVycyBpbiBRdCBTY3JpcHQsIGh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2lzc3Vlcy8xNzMKdmFyIHNldHRlciA9ICFRT2JqZWN0IHx8ICFRT2JqZWN0W1BST1RPVFlQRV0gfHwgIVFPYmplY3RbUFJPVE9UWVBFXS5maW5kQ2hpbGQ7CgovLyBmYWxsYmFjayBmb3Igb2xkIEFuZHJvaWQsIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD02ODcKdmFyIHNldFN5bWJvbERlc2MgPSBERVNDUklQVE9SUyAmJiAkZmFpbHMoZnVuY3Rpb24gKCkgewogIHJldHVybiBfY3JlYXRlKGRQKHt9LCAnYScsIHsKICAgIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gZFAodGhpcywgJ2EnLCB7IHZhbHVlOiA3IH0pLmE7IH0KICB9KSkuYSAhPSA3Owp9KSA/IGZ1bmN0aW9uIChpdCwga2V5LCBEKSB7CiAgdmFyIHByb3RvRGVzYyA9IGdPUEQoT2JqZWN0UHJvdG8sIGtleSk7CiAgaWYgKHByb3RvRGVzYykgZGVsZXRlIE9iamVjdFByb3RvW2tleV07CiAgZFAoaXQsIGtleSwgRCk7CiAgaWYgKHByb3RvRGVzYyAmJiBpdCAhPT0gT2JqZWN0UHJvdG8pIGRQKE9iamVjdFByb3RvLCBrZXksIHByb3RvRGVzYyk7Cn0gOiBkUDsKCnZhciB3cmFwID0gZnVuY3Rpb24gKHRhZykgewogIHZhciBzeW0gPSBBbGxTeW1ib2xzW3RhZ10gPSBfY3JlYXRlKCRTeW1ib2xbUFJPVE9UWVBFXSk7CiAgc3ltLl9rID0gdGFnOwogIHJldHVybiBzeW07Cn07Cgp2YXIgaXNTeW1ib2wgPSBVU0VfTkFUSVZFICYmIHR5cGVvZiAkU3ltYm9sLml0ZXJhdG9yID09ICdzeW1ib2wnID8gZnVuY3Rpb24gKGl0KSB7CiAgcmV0dXJuIHR5cGVvZiBpdCA9PSAnc3ltYm9sJzsKfSA6IGZ1bmN0aW9uIChpdCkgewogIHJldHVybiBpdCBpbnN0YW5jZW9mICRTeW1ib2w7Cn07Cgp2YXIgJGRlZmluZVByb3BlcnR5ID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgRCkgewogIGlmIChpdCA9PT0gT2JqZWN0UHJvdG8pICRkZWZpbmVQcm9wZXJ0eShPUFN5bWJvbHMsIGtleSwgRCk7CiAgYW5PYmplY3QoaXQpOwogIGtleSA9IHRvUHJpbWl0aXZlKGtleSwgdHJ1ZSk7CiAgYW5PYmplY3QoRCk7CiAgaWYgKGhhcyhBbGxTeW1ib2xzLCBrZXkpKSB7CiAgICBpZiAoIUQuZW51bWVyYWJsZSkgewogICAgICBpZiAoIWhhcyhpdCwgSElEREVOKSkgZFAoaXQsIEhJRERFTiwgY3JlYXRlRGVzYygxLCB7fSkpOwogICAgICBpdFtISURERU5dW2tleV0gPSB0cnVlOwogICAgfSBlbHNlIHsKICAgICAgaWYgKGhhcyhpdCwgSElEREVOKSAmJiBpdFtISURERU5dW2tleV0pIGl0W0hJRERFTl1ba2V5XSA9IGZhbHNlOwogICAgICBEID0gX2NyZWF0ZShELCB7IGVudW1lcmFibGU6IGNyZWF0ZURlc2MoMCwgZmFsc2UpIH0pOwogICAgfSByZXR1cm4gc2V0U3ltYm9sRGVzYyhpdCwga2V5LCBEKTsKICB9IHJldHVybiBkUChpdCwga2V5LCBEKTsKfTsKdmFyICRkZWZpbmVQcm9wZXJ0aWVzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyhpdCwgUCkgewogIGFuT2JqZWN0KGl0KTsKICB2YXIga2V5cyA9IGVudW1LZXlzKFAgPSB0b0lPYmplY3QoUCkpOwogIHZhciBpID0gMDsKICB2YXIgbCA9IGtleXMubGVuZ3RoOwogIHZhciBrZXk7CiAgd2hpbGUgKGwgPiBpKSAkZGVmaW5lUHJvcGVydHkoaXQsIGtleSA9IGtleXNbaSsrXSwgUFtrZXldKTsKICByZXR1cm4gaXQ7Cn07CnZhciAkY3JlYXRlID0gZnVuY3Rpb24gY3JlYXRlKGl0LCBQKSB7CiAgcmV0dXJuIFAgPT09IHVuZGVmaW5lZCA/IF9jcmVhdGUoaXQpIDogJGRlZmluZVByb3BlcnRpZXMoX2NyZWF0ZShpdCksIFApOwp9Owp2YXIgJHByb3BlcnR5SXNFbnVtZXJhYmxlID0gZnVuY3Rpb24gcHJvcGVydHlJc0VudW1lcmFibGUoa2V5KSB7CiAgdmFyIEUgPSBpc0VudW0uY2FsbCh0aGlzLCBrZXkgPSB0b1ByaW1pdGl2ZShrZXksIHRydWUpKTsKICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8gJiYgaGFzKEFsbFN5bWJvbHMsIGtleSkgJiYgIWhhcyhPUFN5bWJvbHMsIGtleSkpIHJldHVybiBmYWxzZTsKICByZXR1cm4gRSB8fCAhaGFzKHRoaXMsIGtleSkgfHwgIWhhcyhBbGxTeW1ib2xzLCBrZXkpIHx8IGhhcyh0aGlzLCBISURERU4pICYmIHRoaXNbSElEREVOXVtrZXldID8gRSA6IHRydWU7Cn07CnZhciAkZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGl0LCBrZXkpIHsKICBpdCA9IHRvSU9iamVjdChpdCk7CiAga2V5ID0gdG9QcmltaXRpdmUoa2V5LCB0cnVlKTsKICBpZiAoaXQgPT09IE9iamVjdFByb3RvICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICFoYXMoT1BTeW1ib2xzLCBrZXkpKSByZXR1cm47CiAgdmFyIEQgPSBnT1BEKGl0LCBrZXkpOwogIGlmIChEICYmIGhhcyhBbGxTeW1ib2xzLCBrZXkpICYmICEoaGFzKGl0LCBISURERU4pICYmIGl0W0hJRERFTl1ba2V5XSkpIEQuZW51bWVyYWJsZSA9IHRydWU7CiAgcmV0dXJuIEQ7Cn07CnZhciAkZ2V0T3duUHJvcGVydHlOYW1lcyA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHsKICB2YXIgbmFtZXMgPSBnT1BOKHRvSU9iamVjdChpdCkpOwogIHZhciByZXN1bHQgPSBbXTsKICB2YXIgaSA9IDA7CiAgdmFyIGtleTsKICB3aGlsZSAobmFtZXMubGVuZ3RoID4gaSkgewogICAgaWYgKCFoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYga2V5ICE9IEhJRERFTiAmJiBrZXkgIT0gTUVUQSkgcmVzdWx0LnB1c2goa2V5KTsKICB9IHJldHVybiByZXN1bHQ7Cn07CnZhciAkZ2V0T3duUHJvcGVydHlTeW1ib2xzID0gZnVuY3Rpb24gZ2V0T3duUHJvcGVydHlTeW1ib2xzKGl0KSB7CiAgdmFyIElTX09QID0gaXQgPT09IE9iamVjdFByb3RvOwogIHZhciBuYW1lcyA9IGdPUE4oSVNfT1AgPyBPUFN5bWJvbHMgOiB0b0lPYmplY3QoaXQpKTsKICB2YXIgcmVzdWx0ID0gW107CiAgdmFyIGkgPSAwOwogIHZhciBrZXk7CiAgd2hpbGUgKG5hbWVzLmxlbmd0aCA+IGkpIHsKICAgIGlmIChoYXMoQWxsU3ltYm9scywga2V5ID0gbmFtZXNbaSsrXSkgJiYgKElTX09QID8gaGFzKE9iamVjdFByb3RvLCBrZXkpIDogdHJ1ZSkpIHJlc3VsdC5wdXNoKEFsbFN5bWJvbHNba2V5XSk7CiAgfSByZXR1cm4gcmVzdWx0Owp9OwoKLy8gMTkuNC4xLjEgU3ltYm9sKFtkZXNjcmlwdGlvbl0pCmlmICghVVNFX05BVElWRSkgewogICRTeW1ib2wgPSBmdW5jdGlvbiBTeW1ib2woKSB7CiAgICBpZiAodGhpcyBpbnN0YW5jZW9mICRTeW1ib2wpIHRocm93IFR5cGVFcnJvcignU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIScpOwogICAgdmFyIHRhZyA9IHVpZChhcmd1bWVudHMubGVuZ3RoID4gMCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZCk7CiAgICB2YXIgJHNldCA9IGZ1bmN0aW9uICh2YWx1ZSkgewogICAgICBpZiAodGhpcyA9PT0gT2JqZWN0UHJvdG8pICRzZXQuY2FsbChPUFN5bWJvbHMsIHZhbHVlKTsKICAgICAgaWYgKGhhcyh0aGlzLCBISURERU4pICYmIGhhcyh0aGlzW0hJRERFTl0sIHRhZykpIHRoaXNbSElEREVOXVt0YWddID0gZmFsc2U7CiAgICAgIHNldFN5bWJvbERlc2ModGhpcywgdGFnLCBjcmVhdGVEZXNjKDEsIHZhbHVlKSk7CiAgICB9OwogICAgaWYgKERFU0NSSVBUT1JTICYmIHNldHRlcikgc2V0U3ltYm9sRGVzYyhPYmplY3RQcm90bywgdGFnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgc2V0OiAkc2V0IH0pOwogICAgcmV0dXJuIHdyYXAodGFnKTsKICB9OwogIHJlZGVmaW5lKCRTeW1ib2xbUFJPVE9UWVBFXSwgJ3RvU3RyaW5nJywgZnVuY3Rpb24gdG9TdHJpbmcoKSB7CiAgICByZXR1cm4gdGhpcy5fazsKICB9KTsKCiAgJEdPUEQuZiA9ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7CiAgJERQLmYgPSAkZGVmaW5lUHJvcGVydHk7CiAgX193ZWJwYWNrX3JlcXVpcmVfXygxMDUpLmYgPSBnT1BORXh0LmYgPSAkZ2V0T3duUHJvcGVydHlOYW1lczsKICBfX3dlYnBhY2tfcmVxdWlyZV9fKDM1KS5mID0gJHByb3BlcnR5SXNFbnVtZXJhYmxlOwogIF9fd2VicGFja19yZXF1aXJlX18oNzIpLmYgPSAkZ2V0T3duUHJvcGVydHlTeW1ib2xzOwoKICBpZiAoREVTQ1JJUFRPUlMgJiYgIV9fd2VicGFja19yZXF1aXJlX18oNjIpKSB7CiAgICByZWRlZmluZShPYmplY3RQcm90bywgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJywgJHByb3BlcnR5SXNFbnVtZXJhYmxlLCB0cnVlKTsKICB9CgogIHdrc0V4dC5mID0gZnVuY3Rpb24gKG5hbWUpIHsKICAgIHJldHVybiB3cmFwKHdrcyhuYW1lKSk7CiAgfTsKfQoKJGV4cG9ydCgkZXhwb3J0LkcgKyAkZXhwb3J0LlcgKyAkZXhwb3J0LkYgKiAhVVNFX05BVElWRSwgeyBTeW1ib2w6ICRTeW1ib2wgfSk7Cgpmb3IgKHZhciBlczZTeW1ib2xzID0gKAogIC8vIDE5LjQuMi4yLCAxOS40LjIuMywgMTkuNC4yLjQsIDE5LjQuMi42LCAxOS40LjIuOCwgMTkuNC4yLjksIDE5LjQuMi4xMCwgMTkuNC4yLjExLCAxOS40LjIuMTIsIDE5LjQuMi4xMywgMTkuNC4yLjE0CiAgJ2hhc0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzJwopLnNwbGl0KCcsJyksIGogPSAwOyBlczZTeW1ib2xzLmxlbmd0aCA+IGo7KXdrcyhlczZTeW1ib2xzW2orK10pOwoKZm9yICh2YXIgd2VsbEtub3duU3ltYm9scyA9ICRrZXlzKHdrcy5zdG9yZSksIGsgPSAwOyB3ZWxsS25vd25TeW1ib2xzLmxlbmd0aCA+IGs7KSB3a3NEZWZpbmUod2VsbEtub3duU3ltYm9sc1trKytdKTsKCiRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogIVVTRV9OQVRJVkUsICdTeW1ib2wnLCB7CiAgLy8gMTkuNC4yLjEgU3ltYm9sLmZvcihrZXkpCiAgJ2Zvcic6IGZ1bmN0aW9uIChrZXkpIHsKICAgIHJldHVybiBoYXMoU3ltYm9sUmVnaXN0cnksIGtleSArPSAnJykKICAgICAgPyBTeW1ib2xSZWdpc3RyeVtrZXldCiAgICAgIDogU3ltYm9sUmVnaXN0cnlba2V5XSA9ICRTeW1ib2woa2V5KTsKICB9LAogIC8vIDE5LjQuMi41IFN5bWJvbC5rZXlGb3Ioc3ltKQogIGtleUZvcjogZnVuY3Rpb24ga2V5Rm9yKHN5bSkgewogICAgaWYgKCFpc1N5bWJvbChzeW0pKSB0aHJvdyBUeXBlRXJyb3Ioc3ltICsgJyBpcyBub3QgYSBzeW1ib2whJyk7CiAgICBmb3IgKHZhciBrZXkgaW4gU3ltYm9sUmVnaXN0cnkpIGlmIChTeW1ib2xSZWdpc3RyeVtrZXldID09PSBzeW0pIHJldHVybiBrZXk7CiAgfSwKICB1c2VTZXR0ZXI6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gdHJ1ZTsgfSwKICB1c2VTaW1wbGU6IGZ1bmN0aW9uICgpIHsgc2V0dGVyID0gZmFsc2U7IH0KfSk7CgokZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFVU0VfTkFUSVZFLCAnT2JqZWN0JywgewogIC8vIDE5LjEuMi4yIE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSkKICBjcmVhdGU6ICRjcmVhdGUsCiAgLy8gMTkuMS4yLjQgT2JqZWN0LmRlZmluZVByb3BlcnR5KE8sIFAsIEF0dHJpYnV0ZXMpCiAgZGVmaW5lUHJvcGVydHk6ICRkZWZpbmVQcm9wZXJ0eSwKICAvLyAxOS4xLjIuMyBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhPLCBQcm9wZXJ0aWVzKQogIGRlZmluZVByb3BlcnRpZXM6ICRkZWZpbmVQcm9wZXJ0aWVzLAogIC8vIDE5LjEuMi42IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTywgUCkKICBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ICRnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsCiAgLy8gMTkuMS4yLjcgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoTykKICBnZXRPd25Qcm9wZXJ0eU5hbWVzOiAkZ2V0T3duUHJvcGVydHlOYW1lcywKICAvLyAxOS4xLjIuOCBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKE8pCiAgZ2V0T3duUHJvcGVydHlTeW1ib2xzOiAkZ2V0T3duUHJvcGVydHlTeW1ib2xzCn0pOwoKLy8gMjQuMy4yIEpTT04uc3RyaW5naWZ5KHZhbHVlIFssIHJlcGxhY2VyIFssIHNwYWNlXV0pCiRKU09OICYmICRleHBvcnQoJGV4cG9ydC5TICsgJGV4cG9ydC5GICogKCFVU0VfTkFUSVZFIHx8ICRmYWlscyhmdW5jdGlvbiAoKSB7CiAgdmFyIFMgPSAkU3ltYm9sKCk7CiAgLy8gTVMgRWRnZSBjb252ZXJ0cyBzeW1ib2wgdmFsdWVzIHRvIEpTT04gYXMge30KICAvLyBXZWJLaXQgY29udmVydHMgc3ltYm9sIHZhbHVlcyB0byBKU09OIGFzIG51bGwKICAvLyBWOCB0aHJvd3Mgb24gYm94ZWQgc3ltYm9scwogIHJldHVybiBfc3RyaW5naWZ5KFtTXSkgIT0gJ1tudWxsXScgfHwgX3N0cmluZ2lmeSh7IGE6IFMgfSkgIT0gJ3t9JyB8fCBfc3RyaW5naWZ5KE9iamVjdChTKSkgIT0gJ3t9JzsKfSkpLCAnSlNPTicsIHsKICBzdHJpbmdpZnk6IGZ1bmN0aW9uIHN0cmluZ2lmeShpdCkgewogICAgdmFyIGFyZ3MgPSBbaXRdOwogICAgdmFyIGkgPSAxOwogICAgdmFyIHJlcGxhY2VyLCAkcmVwbGFjZXI7CiAgICB3aGlsZSAoYXJndW1lbnRzLmxlbmd0aCA+IGkpIGFyZ3MucHVzaChhcmd1bWVudHNbaSsrXSk7CiAgICAkcmVwbGFjZXIgPSByZXBsYWNlciA9IGFyZ3NbMV07CiAgICBpZiAoIWlzT2JqZWN0KHJlcGxhY2VyKSAmJiBpdCA9PT0gdW5kZWZpbmVkIHx8IGlzU3ltYm9sKGl0KSkgcmV0dXJuOyAvLyBJRTggcmV0dXJucyBzdHJpbmcgb24gdW5kZWZpbmVkCiAgICBpZiAoIWlzQXJyYXkocmVwbGFjZXIpKSByZXBsYWNlciA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7CiAgICAgIGlmICh0eXBlb2YgJHJlcGxhY2VyID09ICdmdW5jdGlvbicpIHZhbHVlID0gJHJlcGxhY2VyLmNhbGwodGhpcywga2V5LCB2YWx1ZSk7CiAgICAgIGlmICghaXNTeW1ib2wodmFsdWUpKSByZXR1cm4gdmFsdWU7CiAgICB9OwogICAgYXJnc1sxXSA9IHJlcGxhY2VyOwogICAgcmV0dXJuIF9zdHJpbmdpZnkuYXBwbHkoJEpTT04sIGFyZ3MpOwogIH0KfSk7CgovLyAxOS40LjMuNCBTeW1ib2wucHJvdG90eXBlW0BAdG9QcmltaXRpdmVdKGhpbnQpCiRTeW1ib2xbUFJPVE9UWVBFXVtUT19QUklNSVRJVkVdIHx8IF9fd2VicGFja19yZXF1aXJlX18oMTMpKCRTeW1ib2xbUFJPVE9UWVBFXSwgVE9fUFJJTUlUSVZFLCAkU3ltYm9sW1BST1RPVFlQRV0udmFsdWVPZik7Ci8vIDE5LjQuMy41IFN5bWJvbC5wcm90b3R5cGVbQEB0b1N0cmluZ1RhZ10Kc2V0VG9TdHJpbmdUYWcoJFN5bWJvbCwgJ1N5bWJvbCcpOwovLyAyMC4yLjEuOSBNYXRoW0BAdG9TdHJpbmdUYWddCnNldFRvU3RyaW5nVGFnKE1hdGgsICdNYXRoJywgdHJ1ZSk7Ci8vIDI0LjMuMyBKU09OW0BAdG9TdHJpbmdUYWddCnNldFRvU3RyaW5nVGFnKGdsb2JhbC5KU09OLCAnSlNPTicsIHRydWUpOwoKCi8qKiovIH0pLAovKiAyMTkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gYWxsIGVudW1lcmFibGUgb2JqZWN0IGtleXMsIGluY2x1ZGVzIHN5bWJvbHMKdmFyIGdldEtleXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI5KTsKdmFyIGdPUFMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDcyKTsKdmFyIHBJRSA9IF9fd2VicGFja19yZXF1aXJlX18oMzUpOwptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdCkgewogIHZhciByZXN1bHQgPSBnZXRLZXlzKGl0KTsKICB2YXIgZ2V0U3ltYm9scyA9IGdPUFMuZjsKICBpZiAoZ2V0U3ltYm9scykgewogICAgdmFyIHN5bWJvbHMgPSBnZXRTeW1ib2xzKGl0KTsKICAgIHZhciBpc0VudW0gPSBwSUUuZjsKICAgIHZhciBpID0gMDsKICAgIHZhciBrZXk7CiAgICB3aGlsZSAoc3ltYm9scy5sZW5ndGggPiBpKSBpZiAoaXNFbnVtLmNhbGwoaXQsIGtleSA9IHN5bWJvbHNbaSsrXSkpIHJlc3VsdC5wdXNoKGtleSk7CiAgfSByZXR1cm4gcmVzdWx0Owp9OwoKCi8qKiovIH0pLAovKiAyMjAgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gZmFsbGJhY2sgZm9yIElFMTEgYnVnZ3kgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgd2l0aCBpZnJhbWUgYW5kIHdpbmRvdwp2YXIgdG9JT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygxNyk7CnZhciBnT1BOID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMDUpLmY7CnZhciB0b1N0cmluZyA9IHt9LnRvU3RyaW5nOwoKdmFyIHdpbmRvd05hbWVzID0gdHlwZW9mIHdpbmRvdyA9PSAnb2JqZWN0JyAmJiB3aW5kb3cgJiYgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMKICA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdykgOiBbXTsKCnZhciBnZXRXaW5kb3dOYW1lcyA9IGZ1bmN0aW9uIChpdCkgewogIHRyeSB7CiAgICByZXR1cm4gZ09QTihpdCk7CiAgfSBjYXRjaCAoZSkgewogICAgcmV0dXJuIHdpbmRvd05hbWVzLnNsaWNlKCk7CiAgfQp9OwoKbW9kdWxlLmV4cG9ydHMuZiA9IGZ1bmN0aW9uIGdldE93blByb3BlcnR5TmFtZXMoaXQpIHsKICByZXR1cm4gd2luZG93TmFtZXMgJiYgdG9TdHJpbmcuY2FsbChpdCkgPT0gJ1tvYmplY3QgV2luZG93XScgPyBnZXRXaW5kb3dOYW1lcyhpdCkgOiBnT1BOKHRvSU9iamVjdChpdCkpOwp9OwoKCi8qKiovIH0pLAovKiAyMjEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKX193ZWJwYWNrX3JlcXVpcmVfXyg3MSkoJ2FzeW5jSXRlcmF0b3InKTsKCgovKioqLyB9KSwKLyogMjIyICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCl9fd2VicGFja19yZXF1aXJlX18oNzEpKCdvYnNlcnZhYmxlJyk7CgoKLyoqKi8gfSksCi8qIDIyMyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDIyNCk7CnZhciAkT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKS5PYmplY3Q7Cm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoaXQsIGtleSwgZGVzYykgewogIHJldHVybiAkT2JqZWN0LmRlZmluZVByb3BlcnR5KGl0LCBrZXksIGRlc2MpOwp9OwoKCi8qKiovIH0pLAovKiAyMjQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyICRleHBvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwovLyAxOS4xLjIuNCAvIDE1LjIuMy42IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPLCBQLCBBdHRyaWJ1dGVzKQokZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICFfX3dlYnBhY2tfcmVxdWlyZV9fKDUpLCAnT2JqZWN0JywgeyBkZWZpbmVQcm9wZXJ0eTogX193ZWJwYWNrX3JlcXVpcmVfXyg2KS5mIH0pOwoKCi8qKiovIH0pLAovKiAyMjUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKbW9kdWxlLmV4cG9ydHMgPSB7ICJkZWZhdWx0IjogX193ZWJwYWNrX3JlcXVpcmVfXygyMjYpLCBfX2VzTW9kdWxlOiB0cnVlIH07CgovKioqLyB9KSwKLyogMjI2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCl9fd2VicGFja19yZXF1aXJlX18oNzMpOwpfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTsKX193ZWJwYWNrX3JlcXVpcmVfXygyOCk7Cl9fd2VicGFja19yZXF1aXJlX18oMjI3KTsKX193ZWJwYWNrX3JlcXVpcmVfXygyMzIpOwpfX3dlYnBhY2tfcmVxdWlyZV9fKDIzNCk7Cl9fd2VicGFja19yZXF1aXJlX18oMjM1KTsKbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpLk1hcDsKCgovKioqLyB9KSwKLyogMjI3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCnZhciBzdHJvbmcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwOCk7CnZhciB2YWxpZGF0ZSA9IF9fd2VicGFja19yZXF1aXJlX18oNzUpOwp2YXIgTUFQID0gJ01hcCc7CgovLyAyMy4xIE1hcCBPYmplY3RzCm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygxMTMpKE1BUCwgZnVuY3Rpb24gKGdldCkgewogIHJldHVybiBmdW5jdGlvbiBNYXAoKSB7IHJldHVybiBnZXQodGhpcywgYXJndW1lbnRzLmxlbmd0aCA+IDAgPyBhcmd1bWVudHNbMF0gOiB1bmRlZmluZWQpOyB9Owp9LCB7CiAgLy8gMjMuMS4zLjYgTWFwLnByb3RvdHlwZS5nZXQoa2V5KQogIGdldDogZnVuY3Rpb24gZ2V0KGtleSkgewogICAgdmFyIGVudHJ5ID0gc3Ryb25nLmdldEVudHJ5KHZhbGlkYXRlKHRoaXMsIE1BUCksIGtleSk7CiAgICByZXR1cm4gZW50cnkgJiYgZW50cnkudjsKICB9LAogIC8vIDIzLjEuMy45IE1hcC5wcm90b3R5cGUuc2V0KGtleSwgdmFsdWUpCiAgc2V0OiBmdW5jdGlvbiBzZXQoa2V5LCB2YWx1ZSkgewogICAgcmV0dXJuIHN0cm9uZy5kZWYodmFsaWRhdGUodGhpcywgTUFQKSwga2V5ID09PSAwID8gMCA6IGtleSwgdmFsdWUpOwogIH0KfSwgc3Ryb25nLCB0cnVlKTsKCgovKioqLyB9KSwKLyogMjI4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCnZhciBnbG9iYWwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwKTsKdmFyIGNvcmUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIpOwp2YXIgZFAgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwp2YXIgREVTQ1JJUFRPUlMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDUpOwp2YXIgU1BFQ0lFUyA9IF9fd2VicGFja19yZXF1aXJlX18oNCkoJ3NwZWNpZXMnKTsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKEtFWSkgewogIHZhciBDID0gdHlwZW9mIGNvcmVbS0VZXSA9PSAnZnVuY3Rpb24nID8gY29yZVtLRVldIDogZ2xvYmFsW0tFWV07CiAgaWYgKERFU0NSSVBUT1JTICYmIEMgJiYgIUNbU1BFQ0lFU10pIGRQLmYoQywgU1BFQ0lFUywgewogICAgY29uZmlndXJhYmxlOiB0cnVlLAogICAgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzOyB9CiAgfSk7Cn07CgoKLyoqKi8gfSksCi8qIDIyOSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyAwIC0+IEFycmF5I2ZvckVhY2gKLy8gMSAtPiBBcnJheSNtYXAKLy8gMiAtPiBBcnJheSNmaWx0ZXIKLy8gMyAtPiBBcnJheSNzb21lCi8vIDQgLT4gQXJyYXkjZXZlcnkKLy8gNSAtPiBBcnJheSNmaW5kCi8vIDYgLT4gQXJyYXkjZmluZEluZGV4CnZhciBjdHggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKdmFyIElPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDU0KTsKdmFyIHRvT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMCk7CnZhciB0b0xlbmd0aCA9IF9fd2VicGFja19yZXF1aXJlX18oMzcpOwp2YXIgYXNjID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMzApOwptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChUWVBFLCAkY3JlYXRlKSB7CiAgdmFyIElTX01BUCA9IFRZUEUgPT0gMTsKICB2YXIgSVNfRklMVEVSID0gVFlQRSA9PSAyOwogIHZhciBJU19TT01FID0gVFlQRSA9PSAzOwogIHZhciBJU19FVkVSWSA9IFRZUEUgPT0gNDsKICB2YXIgSVNfRklORF9JTkRFWCA9IFRZUEUgPT0gNjsKICB2YXIgTk9fSE9MRVMgPSBUWVBFID09IDUgfHwgSVNfRklORF9JTkRFWDsKICB2YXIgY3JlYXRlID0gJGNyZWF0ZSB8fCBhc2M7CiAgcmV0dXJuIGZ1bmN0aW9uICgkdGhpcywgY2FsbGJhY2tmbiwgdGhhdCkgewogICAgdmFyIE8gPSB0b09iamVjdCgkdGhpcyk7CiAgICB2YXIgc2VsZiA9IElPYmplY3QoTyk7CiAgICB2YXIgZiA9IGN0eChjYWxsYmFja2ZuLCB0aGF0LCAzKTsKICAgIHZhciBsZW5ndGggPSB0b0xlbmd0aChzZWxmLmxlbmd0aCk7CiAgICB2YXIgaW5kZXggPSAwOwogICAgdmFyIHJlc3VsdCA9IElTX01BUCA/IGNyZWF0ZSgkdGhpcywgbGVuZ3RoKSA6IElTX0ZJTFRFUiA/IGNyZWF0ZSgkdGhpcywgMCkgOiB1bmRlZmluZWQ7CiAgICB2YXIgdmFsLCByZXM7CiAgICBmb3IgKDtsZW5ndGggPiBpbmRleDsgaW5kZXgrKykgaWYgKE5PX0hPTEVTIHx8IGluZGV4IGluIHNlbGYpIHsKICAgICAgdmFsID0gc2VsZltpbmRleF07CiAgICAgIHJlcyA9IGYodmFsLCBpbmRleCwgTyk7CiAgICAgIGlmIChUWVBFKSB7CiAgICAgICAgaWYgKElTX01BUCkgcmVzdWx0W2luZGV4XSA9IHJlczsgICAvLyBtYXAKICAgICAgICBlbHNlIGlmIChyZXMpIHN3aXRjaCAoVFlQRSkgewogICAgICAgICAgY2FzZSAzOiByZXR1cm4gdHJ1ZTsgICAgICAgICAgICAgLy8gc29tZQogICAgICAgICAgY2FzZSA1OiByZXR1cm4gdmFsOyAgICAgICAgICAgICAgLy8gZmluZAogICAgICAgICAgY2FzZSA2OiByZXR1cm4gaW5kZXg7ICAgICAgICAgICAgLy8gZmluZEluZGV4CiAgICAgICAgICBjYXNlIDI6IHJlc3VsdC5wdXNoKHZhbCk7ICAgICAgICAvLyBmaWx0ZXIKICAgICAgICB9IGVsc2UgaWYgKElTX0VWRVJZKSByZXR1cm4gZmFsc2U7IC8vIGV2ZXJ5CiAgICAgIH0KICAgIH0KICAgIHJldHVybiBJU19GSU5EX0lOREVYID8gLTEgOiBJU19TT01FIHx8IElTX0VWRVJZID8gSVNfRVZFUlkgOiByZXN1bHQ7CiAgfTsKfTsKCgovKioqLyB9KSwKLyogMjMwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIDkuNC4yLjMgQXJyYXlTcGVjaWVzQ3JlYXRlKG9yaWdpbmFsQXJyYXksIGxlbmd0aCkKdmFyIHNwZWNpZXNDb25zdHJ1Y3RvciA9IF9fd2VicGFja19yZXF1aXJlX18oMjMxKTsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKG9yaWdpbmFsLCBsZW5ndGgpIHsKICByZXR1cm4gbmV3IChzcGVjaWVzQ29uc3RydWN0b3Iob3JpZ2luYWwpKShsZW5ndGgpOwp9OwoKCi8qKiovIH0pLAovKiAyMzEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIGlzT2JqZWN0ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg5KTsKdmFyIGlzQXJyYXkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEwNCk7CnZhciBTUEVDSUVTID0gX193ZWJwYWNrX3JlcXVpcmVfXyg0KSgnc3BlY2llcycpOwoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob3JpZ2luYWwpIHsKICB2YXIgQzsKICBpZiAoaXNBcnJheShvcmlnaW5hbCkpIHsKICAgIEMgPSBvcmlnaW5hbC5jb25zdHJ1Y3RvcjsKICAgIC8vIGNyb3NzLXJlYWxtIGZhbGxiYWNrCiAgICBpZiAodHlwZW9mIEMgPT0gJ2Z1bmN0aW9uJyAmJiAoQyA9PT0gQXJyYXkgfHwgaXNBcnJheShDLnByb3RvdHlwZSkpKSBDID0gdW5kZWZpbmVkOwogICAgaWYgKGlzT2JqZWN0KEMpKSB7CiAgICAgIEMgPSBDW1NQRUNJRVNdOwogICAgICBpZiAoQyA9PT0gbnVsbCkgQyA9IHVuZGVmaW5lZDsKICAgIH0KICB9IHJldHVybiBDID09PSB1bmRlZmluZWQgPyBBcnJheSA6IEM7Cn07CgoKLyoqKi8gfSksCi8qIDIzMiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBodHRwczovL2dpdGh1Yi5jb20vRGF2aWRCcnVhbnQvTWFwLVNldC5wcm90b3R5cGUudG9KU09OCnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKCiRleHBvcnQoJGV4cG9ydC5QICsgJGV4cG9ydC5SLCAnTWFwJywgeyB0b0pTT046IF9fd2VicGFja19yZXF1aXJlX18oMTE0KSgnTWFwJykgfSk7CgoKLyoqKi8gfSksCi8qIDIzMyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgZm9yT2YgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQxKTsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZXIsIElURVJBVE9SKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIGZvck9mKGl0ZXIsIGZhbHNlLCByZXN1bHQucHVzaCwgcmVzdWx0LCBJVEVSQVRPUik7CiAgcmV0dXJuIHJlc3VsdDsKfTsKCgovKioqLyB9KSwKLyogMjM0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vcHJvcG9zYWwtc2V0bWFwLW9mZnJvbS8jc2VjLW1hcC5vZgpfX3dlYnBhY2tfcmVxdWlyZV9fKDExNSkoJ01hcCcpOwoKCi8qKiovIH0pLAovKiAyMzUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9wcm9wb3NhbC1zZXRtYXAtb2Zmcm9tLyNzZWMtbWFwLmZyb20KX193ZWJwYWNrX3JlcXVpcmVfXygxMTYpKCdNYXAnKTsKCgovKioqLyB9KSwKLyogMjM2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgpleHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOwoKdmFyIF90eXBlb2YyID0gX193ZWJwYWNrX3JlcXVpcmVfXyg2OSk7Cgp2YXIgX3R5cGVvZjMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF90eXBlb2YyKTsKCmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9CgpleHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoc2VsZiwgY2FsbCkgewogIGlmICghc2VsZikgewogICAgdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTsKICB9CgogIHJldHVybiBjYWxsICYmICgodHlwZW9mIGNhbGwgPT09ICJ1bmRlZmluZWQiID8gInVuZGVmaW5lZCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoY2FsbCkpID09PSAib2JqZWN0IiB8fCB0eXBlb2YgY2FsbCA9PT0gImZ1bmN0aW9uIikgPyBjYWxsIDogc2VsZjsKfTsKCi8qKiovIH0pLAovKiAyMzcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Cgp2YXIgX3NldFByb3RvdHlwZU9mID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMzgpOwoKdmFyIF9zZXRQcm90b3R5cGVPZjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9zZXRQcm90b3R5cGVPZik7Cgp2YXIgX2NyZWF0ZSA9IF9fd2VicGFja19yZXF1aXJlX18oMjQyKTsKCnZhciBfY3JlYXRlMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2NyZWF0ZSk7Cgp2YXIgX3R5cGVvZjIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDY5KTsKCnZhciBfdHlwZW9mMyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX3R5cGVvZjIpOwoKZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH0KCmV4cG9ydHMuZGVmYXVsdCA9IGZ1bmN0aW9uIChzdWJDbGFzcywgc3VwZXJDbGFzcykgewogIGlmICh0eXBlb2Ygc3VwZXJDbGFzcyAhPT0gImZ1bmN0aW9uIiAmJiBzdXBlckNsYXNzICE9PSBudWxsKSB7CiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIgKyAodHlwZW9mIHN1cGVyQ2xhc3MgPT09ICJ1bmRlZmluZWQiID8gInVuZGVmaW5lZCIgOiAoMCwgX3R5cGVvZjMuZGVmYXVsdCkoc3VwZXJDbGFzcykpKTsKICB9CgogIHN1YkNsYXNzLnByb3RvdHlwZSA9ICgwLCBfY3JlYXRlMi5kZWZhdWx0KShzdXBlckNsYXNzICYmIHN1cGVyQ2xhc3MucHJvdG90eXBlLCB7CiAgICBjb25zdHJ1Y3RvcjogewogICAgICB2YWx1ZTogc3ViQ2xhc3MsCiAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICB3cml0YWJsZTogdHJ1ZSwKICAgICAgY29uZmlndXJhYmxlOiB0cnVlCiAgICB9CiAgfSk7CiAgaWYgKHN1cGVyQ2xhc3MpIF9zZXRQcm90b3R5cGVPZjIuZGVmYXVsdCA/ICgwLCBfc2V0UHJvdG90eXBlT2YyLmRlZmF1bHQpKHN1YkNsYXNzLCBzdXBlckNsYXNzKSA6IHN1YkNsYXNzLl9fcHJvdG9fXyA9IHN1cGVyQ2xhc3M7Cn07CgovKioqLyB9KSwKLyogMjM4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjM5KSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDIzOSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDI0MCk7Cm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKS5PYmplY3Quc2V0UHJvdG90eXBlT2Y7CgoKLyoqKi8gfSksCi8qIDI0MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyAxOS4xLjMuMTkgT2JqZWN0LnNldFByb3RvdHlwZU9mKE8sIHByb3RvKQp2YXIgJGV4cG9ydCA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7CiRleHBvcnQoJGV4cG9ydC5TLCAnT2JqZWN0JywgeyBzZXRQcm90b3R5cGVPZjogX193ZWJwYWNrX3JlcXVpcmVfXygyNDEpLnNldCB9KTsKCgovKioqLyB9KSwKLyogMjQxICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIFdvcmtzIHdpdGggX19wcm90b19fIG9ubHkuIE9sZCB2OCBjYW4ndCB3b3JrIHdpdGggbnVsbCBwcm90byBvYmplY3RzLgovKiBlc2xpbnQtZGlzYWJsZSBuby1wcm90byAqLwp2YXIgaXNPYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDkpOwp2YXIgYW5PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDE0KTsKdmFyIGNoZWNrID0gZnVuY3Rpb24gKE8sIHByb3RvKSB7CiAgYW5PYmplY3QoTyk7CiAgaWYgKCFpc09iamVjdChwcm90bykgJiYgcHJvdG8gIT09IG51bGwpIHRocm93IFR5cGVFcnJvcihwcm90byArICI6IGNhbid0IHNldCBhcyBwcm90b3R5cGUhIik7Cn07Cm1vZHVsZS5leHBvcnRzID0gewogIHNldDogT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8ICgnX19wcm90b19fJyBpbiB7fSA/IC8vIGVzbGludC1kaXNhYmxlLWxpbmUKICAgIGZ1bmN0aW9uICh0ZXN0LCBidWdneSwgc2V0KSB7CiAgICAgIHRyeSB7CiAgICAgICAgc2V0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMCkoRnVuY3Rpb24uY2FsbCwgX193ZWJwYWNrX3JlcXVpcmVfXyg1NykuZihPYmplY3QucHJvdG90eXBlLCAnX19wcm90b19fJykuc2V0LCAyKTsKICAgICAgICBzZXQodGVzdCwgW10pOwogICAgICAgIGJ1Z2d5ID0gISh0ZXN0IGluc3RhbmNlb2YgQXJyYXkpOwogICAgICB9IGNhdGNoIChlKSB7IGJ1Z2d5ID0gdHJ1ZTsgfQogICAgICByZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YoTywgcHJvdG8pIHsKICAgICAgICBjaGVjayhPLCBwcm90byk7CiAgICAgICAgaWYgKGJ1Z2d5KSBPLl9fcHJvdG9fXyA9IHByb3RvOwogICAgICAgIGVsc2Ugc2V0KE8sIHByb3RvKTsKICAgICAgICByZXR1cm4gTzsKICAgICAgfTsKICAgIH0oe30sIGZhbHNlKSA6IHVuZGVmaW5lZCksCiAgY2hlY2s6IGNoZWNrCn07CgoKLyoqKi8gfSksCi8qIDI0MiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IHsgImRlZmF1bHQiOiBfX3dlYnBhY2tfcmVxdWlyZV9fKDI0MyksIF9fZXNNb2R1bGU6IHRydWUgfTsKCi8qKiovIH0pLAovKiAyNDMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKX193ZWJwYWNrX3JlcXVpcmVfXygyNDQpOwp2YXIgJE9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMikuT2JqZWN0Owptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGNyZWF0ZShQLCBEKSB7CiAgcmV0dXJuICRPYmplY3QuY3JlYXRlKFAsIEQpOwp9OwoKCi8qKiovIH0pLAovKiAyNDQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyICRleHBvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwovLyAxOS4xLjIuMiAvIDE1LjIuMy41IE9iamVjdC5jcmVhdGUoTyBbLCBQcm9wZXJ0aWVzXSkKJGV4cG9ydCgkZXhwb3J0LlMsICdPYmplY3QnLCB7IGNyZWF0ZTogX193ZWJwYWNrX3JlcXVpcmVfXygzNikgfSk7CgoKLyoqKi8gfSksCi8qIDI0NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IHsgImRlZmF1bHQiOiBfX3dlYnBhY2tfcmVxdWlyZV9fKDI0NiksIF9fZXNNb2R1bGU6IHRydWUgfTsKCi8qKiovIH0pLAovKiAyNDYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKX193ZWJwYWNrX3JlcXVpcmVfXygyNDcpOwp2YXIgJE9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMikuT2JqZWN0Owptb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoVCwgRCkgewogIHJldHVybiAkT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVCwgRCk7Cn07CgoKLyoqKi8gfSksCi8qIDI0NyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgJGV4cG9ydCA9IF9fd2VicGFja19yZXF1aXJlX18oMyk7Ci8vIDE5LjEuMi4zIC8gMTUuMi4zLjcgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoTywgUHJvcGVydGllcykKJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhX193ZWJwYWNrX3JlcXVpcmVfXyg1KSwgJ09iamVjdCcsIHsgZGVmaW5lUHJvcGVydGllczogX193ZWJwYWNrX3JlcXVpcmVfXygxMDApIH0pOwoKCi8qKiovIH0pLAovKiAyNDggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKdmFyIHBTbGljZSA9IEFycmF5LnByb3RvdHlwZS5zbGljZTsKdmFyIG9iamVjdEtleXMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI0OSk7CnZhciBpc0FyZ3VtZW50cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjUwKTsKCnZhciBkZWVwRXF1YWwgPSBtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChhY3R1YWwsIGV4cGVjdGVkLCBvcHRzKSB7CiAgaWYgKCFvcHRzKSBvcHRzID0ge307CiAgLy8gNy4xLiBBbGwgaWRlbnRpY2FsIHZhbHVlcyBhcmUgZXF1aXZhbGVudCwgYXMgZGV0ZXJtaW5lZCBieSA9PT0uCiAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpIHsKICAgIHJldHVybiB0cnVlOwoKICB9IGVsc2UgaWYgKGFjdHVhbCBpbnN0YW5jZW9mIERhdGUgJiYgZXhwZWN0ZWQgaW5zdGFuY2VvZiBEYXRlKSB7CiAgICByZXR1cm4gYWN0dWFsLmdldFRpbWUoKSA9PT0gZXhwZWN0ZWQuZ2V0VGltZSgpOwoKICAvLyA3LjMuIE90aGVyIHBhaXJzIHRoYXQgZG8gbm90IGJvdGggcGFzcyB0eXBlb2YgdmFsdWUgPT0gJ29iamVjdCcsCiAgLy8gZXF1aXZhbGVuY2UgaXMgZGV0ZXJtaW5lZCBieSA9PS4KICB9IGVsc2UgaWYgKCFhY3R1YWwgfHwgIWV4cGVjdGVkIHx8IHR5cGVvZiBhY3R1YWwgIT0gJ29iamVjdCcgJiYgdHlwZW9mIGV4cGVjdGVkICE9ICdvYmplY3QnKSB7CiAgICByZXR1cm4gb3B0cy5zdHJpY3QgPyBhY3R1YWwgPT09IGV4cGVjdGVkIDogYWN0dWFsID09IGV4cGVjdGVkOwoKICAvLyA3LjQuIEZvciBhbGwgb3RoZXIgT2JqZWN0IHBhaXJzLCBpbmNsdWRpbmcgQXJyYXkgb2JqZWN0cywgZXF1aXZhbGVuY2UgaXMKICAvLyBkZXRlcm1pbmVkIGJ5IGhhdmluZyB0aGUgc2FtZSBudW1iZXIgb2Ygb3duZWQgcHJvcGVydGllcyAoYXMgdmVyaWZpZWQKICAvLyB3aXRoIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCksIHRoZSBzYW1lIHNldCBvZiBrZXlzCiAgLy8gKGFsdGhvdWdoIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBvcmRlciksIGVxdWl2YWxlbnQgdmFsdWVzIGZvciBldmVyeQogIC8vIGNvcnJlc3BvbmRpbmcga2V5LCBhbmQgYW4gaWRlbnRpY2FsICdwcm90b3R5cGUnIHByb3BlcnR5LiBOb3RlOiB0aGlzCiAgLy8gYWNjb3VudHMgZm9yIGJvdGggbmFtZWQgYW5kIGluZGV4ZWQgcHJvcGVydGllcyBvbiBBcnJheXMuCiAgfSBlbHNlIHsKICAgIHJldHVybiBvYmpFcXVpdihhY3R1YWwsIGV4cGVjdGVkLCBvcHRzKTsKICB9Cn0KCmZ1bmN0aW9uIGlzVW5kZWZpbmVkT3JOdWxsKHZhbHVlKSB7CiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7Cn0KCmZ1bmN0aW9uIGlzQnVmZmVyICh4KSB7CiAgaWYgKCF4IHx8IHR5cGVvZiB4ICE9PSAnb2JqZWN0JyB8fCB0eXBlb2YgeC5sZW5ndGggIT09ICdudW1iZXInKSByZXR1cm4gZmFsc2U7CiAgaWYgKHR5cGVvZiB4LmNvcHkgIT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHguc2xpY2UgIT09ICdmdW5jdGlvbicpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgaWYgKHgubGVuZ3RoID4gMCAmJiB0eXBlb2YgeFswXSAhPT0gJ251bWJlcicpIHJldHVybiBmYWxzZTsKICByZXR1cm4gdHJ1ZTsKfQoKZnVuY3Rpb24gb2JqRXF1aXYoYSwgYiwgb3B0cykgewogIHZhciBpLCBrZXk7CiAgaWYgKGlzVW5kZWZpbmVkT3JOdWxsKGEpIHx8IGlzVW5kZWZpbmVkT3JOdWxsKGIpKQogICAgcmV0dXJuIGZhbHNlOwogIC8vIGFuIGlkZW50aWNhbCAncHJvdG90eXBlJyBwcm9wZXJ0eS4KICBpZiAoYS5wcm90b3R5cGUgIT09IGIucHJvdG90eXBlKSByZXR1cm4gZmFsc2U7CiAgLy9+fn5JJ3ZlIG1hbmFnZWQgdG8gYnJlYWsgT2JqZWN0LmtleXMgdGhyb3VnaCBzY3Jld3kgYXJndW1lbnRzIHBhc3NpbmcuCiAgLy8gICBDb252ZXJ0aW5nIHRvIGFycmF5IHNvbHZlcyB0aGUgcHJvYmxlbS4KICBpZiAoaXNBcmd1bWVudHMoYSkpIHsKICAgIGlmICghaXNBcmd1bWVudHMoYikpIHsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgYSA9IHBTbGljZS5jYWxsKGEpOwogICAgYiA9IHBTbGljZS5jYWxsKGIpOwogICAgcmV0dXJuIGRlZXBFcXVhbChhLCBiLCBvcHRzKTsKICB9CiAgaWYgKGlzQnVmZmVyKGEpKSB7CiAgICBpZiAoIWlzQnVmZmVyKGIpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGlmIChhLmxlbmd0aCAhPT0gYi5sZW5ndGgpIHJldHVybiBmYWxzZTsKICAgIGZvciAoaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChhW2ldICE9PSBiW2ldKSByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgdHJ5IHsKICAgIHZhciBrYSA9IG9iamVjdEtleXMoYSksCiAgICAgICAga2IgPSBvYmplY3RLZXlzKGIpOwogIH0gY2F0Y2ggKGUpIHsvL2hhcHBlbnMgd2hlbiBvbmUgaXMgYSBzdHJpbmcgbGl0ZXJhbCBhbmQgdGhlIG90aGVyIGlzbid0CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIC8vIGhhdmluZyB0aGUgc2FtZSBudW1iZXIgb2Ygb3duZWQgcHJvcGVydGllcyAoa2V5cyBpbmNvcnBvcmF0ZXMKICAvLyBoYXNPd25Qcm9wZXJ0eSkKICBpZiAoa2EubGVuZ3RoICE9IGtiLmxlbmd0aCkKICAgIHJldHVybiBmYWxzZTsKICAvL3RoZSBzYW1lIHNldCBvZiBrZXlzIChhbHRob3VnaCBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUgb3JkZXIpLAogIGthLnNvcnQoKTsKICBrYi5zb3J0KCk7CiAgLy9+fn5jaGVhcCBrZXkgdGVzdAogIGZvciAoaSA9IGthLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICBpZiAoa2FbaV0gIT0ga2JbaV0pCiAgICAgIHJldHVybiBmYWxzZTsKICB9CiAgLy9lcXVpdmFsZW50IHZhbHVlcyBmb3IgZXZlcnkgY29ycmVzcG9uZGluZyBrZXksIGFuZAogIC8vfn5+cG9zc2libHkgZXhwZW5zaXZlIGRlZXAgdGVzdAogIGZvciAoaSA9IGthLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICBrZXkgPSBrYVtpXTsKICAgIGlmICghZGVlcEVxdWFsKGFba2V5XSwgYltrZXldLCBvcHRzKSkgcmV0dXJuIGZhbHNlOwogIH0KICByZXR1cm4gdHlwZW9mIGEgPT09IHR5cGVvZiBiOwp9CgoKLyoqKi8gfSksCi8qIDI0OSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgpleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSB0eXBlb2YgT2JqZWN0LmtleXMgPT09ICdmdW5jdGlvbicKICA/IE9iamVjdC5rZXlzIDogc2hpbTsKCmV4cG9ydHMuc2hpbSA9IHNoaW07CmZ1bmN0aW9uIHNoaW0gKG9iaikgewogIHZhciBrZXlzID0gW107CiAgZm9yICh2YXIga2V5IGluIG9iaikga2V5cy5wdXNoKGtleSk7CiAgcmV0dXJuIGtleXM7Cn0KCgovKioqLyB9KSwKLyogMjUwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCnZhciBzdXBwb3J0c0FyZ3VtZW50c0NsYXNzID0gKGZ1bmN0aW9uKCl7CiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhcmd1bWVudHMpCn0pKCkgPT0gJ1tvYmplY3QgQXJndW1lbnRzXSc7CgpleHBvcnRzID0gbW9kdWxlLmV4cG9ydHMgPSBzdXBwb3J0c0FyZ3VtZW50c0NsYXNzID8gc3VwcG9ydGVkIDogdW5zdXBwb3J0ZWQ7CgpleHBvcnRzLnN1cHBvcnRlZCA9IHN1cHBvcnRlZDsKZnVuY3Rpb24gc3VwcG9ydGVkKG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PSAnW29iamVjdCBBcmd1bWVudHNdJzsKfTsKCmV4cG9ydHMudW5zdXBwb3J0ZWQgPSB1bnN1cHBvcnRlZDsKZnVuY3Rpb24gdW5zdXBwb3J0ZWQob2JqZWN0KXsKICByZXR1cm4gb2JqZWN0ICYmCiAgICB0eXBlb2Ygb2JqZWN0ID09ICdvYmplY3QnICYmCiAgICB0eXBlb2Ygb2JqZWN0Lmxlbmd0aCA9PSAnbnVtYmVyJyAmJgogICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgJ2NhbGxlZScpICYmCiAgICAhT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKG9iamVjdCwgJ2NhbGxlZScpIHx8CiAgICBmYWxzZTsKfTsKCgovKioqLyB9KSwKLyogMjUxICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjUyKSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDI1MiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDI1Myk7Cm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKS5PYmplY3QuYXNzaWduOwoKCi8qKiovIH0pLAovKiAyNTMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gMTkuMS4zLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSkKdmFyICRleHBvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwoKJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYsICdPYmplY3QnLCB7IGFzc2lnbjogX193ZWJwYWNrX3JlcXVpcmVfXygyNTQpIH0pOwoKCi8qKiovIH0pLAovKiAyNTQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKLy8gMTkuMS4yLjEgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSwgLi4uKQp2YXIgZ2V0S2V5cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjkpOwp2YXIgZ09QUyA9IF9fd2VicGFja19yZXF1aXJlX18oNzIpOwp2YXIgcElFID0gX193ZWJwYWNrX3JlcXVpcmVfXygzNSk7CnZhciB0b09iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMzApOwp2YXIgSU9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oNTQpOwp2YXIgJGFzc2lnbiA9IE9iamVjdC5hc3NpZ247CgovLyBzaG91bGQgd29yayB3aXRoIHN5bWJvbHMgYW5kIHNob3VsZCBoYXZlIGRldGVybWluaXN0aWMgcHJvcGVydHkgb3JkZXIgKFY4IGJ1ZykKbW9kdWxlLmV4cG9ydHMgPSAhJGFzc2lnbiB8fCBfX3dlYnBhY2tfcmVxdWlyZV9fKDE5KShmdW5jdGlvbiAoKSB7CiAgdmFyIEEgPSB7fTsKICB2YXIgQiA9IHt9OwogIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZgogIHZhciBTID0gU3ltYm9sKCk7CiAgdmFyIEsgPSAnYWJjZGVmZ2hpamtsbW5vcHFyc3QnOwogIEFbU10gPSA3OwogIEsuc3BsaXQoJycpLmZvckVhY2goZnVuY3Rpb24gKGspIHsgQltrXSA9IGs7IH0pOwogIHJldHVybiAkYXNzaWduKHt9LCBBKVtTXSAhPSA3IHx8IE9iamVjdC5rZXlzKCRhc3NpZ24oe30sIEIpKS5qb2luKCcnKSAhPSBLOwp9KSA/IGZ1bmN0aW9uIGFzc2lnbih0YXJnZXQsIHNvdXJjZSkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzCiAgdmFyIFQgPSB0b09iamVjdCh0YXJnZXQpOwogIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDsKICB2YXIgaW5kZXggPSAxOwogIHZhciBnZXRTeW1ib2xzID0gZ09QUy5mOwogIHZhciBpc0VudW0gPSBwSUUuZjsKICB3aGlsZSAoYUxlbiA+IGluZGV4KSB7CiAgICB2YXIgUyA9IElPYmplY3QoYXJndW1lbnRzW2luZGV4KytdKTsKICAgIHZhciBrZXlzID0gZ2V0U3ltYm9scyA/IGdldEtleXMoUykuY29uY2F0KGdldFN5bWJvbHMoUykpIDogZ2V0S2V5cyhTKTsKICAgIHZhciBsZW5ndGggPSBrZXlzLmxlbmd0aDsKICAgIHZhciBqID0gMDsKICAgIHZhciBrZXk7CiAgICB3aGlsZSAobGVuZ3RoID4gaikgaWYgKGlzRW51bS5jYWxsKFMsIGtleSA9IGtleXNbaisrXSkpIFRba2V5XSA9IFNba2V5XTsKICB9IHJldHVybiBUOwp9IDogJGFzc2lnbjsKCgovKioqLyB9KSwKLyogMjU1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjU2KSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDI1NiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDI1Nyk7Cm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKS5TdHJpbmcuZnJvbUNvZGVQb2ludDsKCgovKioqLyB9KSwKLyogMjU3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciAkZXhwb3J0ID0gX193ZWJwYWNrX3JlcXVpcmVfXygzKTsKdmFyIHRvQWJzb2x1dGVJbmRleCA9IF9fd2VicGFja19yZXF1aXJlX18oMTAyKTsKdmFyIGZyb21DaGFyQ29kZSA9IFN0cmluZy5mcm9tQ2hhckNvZGU7CnZhciAkZnJvbUNvZGVQb2ludCA9IFN0cmluZy5mcm9tQ29kZVBvaW50OwoKLy8gbGVuZ3RoIHNob3VsZCBiZSAxLCBvbGQgRkYgcHJvYmxlbQokZXhwb3J0KCRleHBvcnQuUyArICRleHBvcnQuRiAqICghISRmcm9tQ29kZVBvaW50ICYmICRmcm9tQ29kZVBvaW50Lmxlbmd0aCAhPSAxKSwgJ1N0cmluZycsIHsKICAvLyAyMS4xLjIuMiBTdHJpbmcuZnJvbUNvZGVQb2ludCguLi5jb2RlUG9pbnRzKQogIGZyb21Db2RlUG9pbnQ6IGZ1bmN0aW9uIGZyb21Db2RlUG9pbnQoeCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLXVudXNlZC12YXJzCiAgICB2YXIgcmVzID0gW107CiAgICB2YXIgYUxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7CiAgICB2YXIgaSA9IDA7CiAgICB2YXIgY29kZTsKICAgIHdoaWxlIChhTGVuID4gaSkgewogICAgICBjb2RlID0gK2FyZ3VtZW50c1tpKytdOwogICAgICBpZiAodG9BYnNvbHV0ZUluZGV4KGNvZGUsIDB4MTBmZmZmKSAhPT0gY29kZSkgdGhyb3cgUmFuZ2VFcnJvcihjb2RlICsgJyBpcyBub3QgYSB2YWxpZCBjb2RlIHBvaW50Jyk7CiAgICAgIHJlcy5wdXNoKGNvZGUgPCAweDEwMDAwCiAgICAgICAgPyBmcm9tQ2hhckNvZGUoY29kZSkKICAgICAgICA6IGZyb21DaGFyQ29kZSgoKGNvZGUgLT0gMHgxMDAwMCkgPj4gMTApICsgMHhkODAwLCBjb2RlICUgMHg0MDAgKyAweGRjMDApCiAgICAgICk7CiAgICB9IHJldHVybiByZXMuam9pbignJyk7CiAgfQp9KTsKCgovKioqLyB9KSwKLyogMjU4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCm1vZHVsZS5leHBvcnRzID0geyAiZGVmYXVsdCI6IF9fd2VicGFja19yZXF1aXJlX18oMjU5KSwgX19lc01vZHVsZTogdHJ1ZSB9OwoKLyoqKi8gfSksCi8qIDI1OSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgpfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTsKX193ZWJwYWNrX3JlcXVpcmVfXygyNjApOwptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMikuQXJyYXkuZnJvbTsKCgovKioqLyB9KSwKLyogMjYwICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCnZhciBjdHggPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDIwKTsKdmFyICRleHBvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwp2YXIgdG9PYmplY3QgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwKTsKdmFyIGNhbGwgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExMSk7CnZhciBpc0FycmF5SXRlciA9IF9fd2VicGFja19yZXF1aXJlX18oMTEyKTsKdmFyIHRvTGVuZ3RoID0gX193ZWJwYWNrX3JlcXVpcmVfXygzNyk7CnZhciBjcmVhdGVQcm9wZXJ0eSA9IF9fd2VicGFja19yZXF1aXJlX18oMjYxKTsKdmFyIGdldEl0ZXJGbiA9IF9fd2VicGFja19yZXF1aXJlX18oNjcpOwoKJGV4cG9ydCgkZXhwb3J0LlMgKyAkZXhwb3J0LkYgKiAhX193ZWJwYWNrX3JlcXVpcmVfXygyNjIpKGZ1bmN0aW9uIChpdGVyKSB7IEFycmF5LmZyb20oaXRlcik7IH0pLCAnQXJyYXknLCB7CiAgLy8gMjIuMS4yLjEgQXJyYXkuZnJvbShhcnJheUxpa2UsIG1hcGZuID0gdW5kZWZpbmVkLCB0aGlzQXJnID0gdW5kZWZpbmVkKQogIGZyb206IGZ1bmN0aW9uIGZyb20oYXJyYXlMaWtlIC8qICwgbWFwZm4gPSB1bmRlZmluZWQsIHRoaXNBcmcgPSB1bmRlZmluZWQgKi8pIHsKICAgIHZhciBPID0gdG9PYmplY3QoYXJyYXlMaWtlKTsKICAgIHZhciBDID0gdHlwZW9mIHRoaXMgPT0gJ2Z1bmN0aW9uJyA/IHRoaXMgOiBBcnJheTsKICAgIHZhciBhTGVuID0gYXJndW1lbnRzLmxlbmd0aDsKICAgIHZhciBtYXBmbiA9IGFMZW4gPiAxID8gYXJndW1lbnRzWzFdIDogdW5kZWZpbmVkOwogICAgdmFyIG1hcHBpbmcgPSBtYXBmbiAhPT0gdW5kZWZpbmVkOwogICAgdmFyIGluZGV4ID0gMDsKICAgIHZhciBpdGVyRm4gPSBnZXRJdGVyRm4oTyk7CiAgICB2YXIgbGVuZ3RoLCByZXN1bHQsIHN0ZXAsIGl0ZXJhdG9yOwogICAgaWYgKG1hcHBpbmcpIG1hcGZuID0gY3R4KG1hcGZuLCBhTGVuID4gMiA/IGFyZ3VtZW50c1syXSA6IHVuZGVmaW5lZCwgMik7CiAgICAvLyBpZiBvYmplY3QgaXNuJ3QgaXRlcmFibGUgb3IgaXQncyBhcnJheSB3aXRoIGRlZmF1bHQgaXRlcmF0b3IgLSB1c2Ugc2ltcGxlIGNhc2UKICAgIGlmIChpdGVyRm4gIT0gdW5kZWZpbmVkICYmICEoQyA9PSBBcnJheSAmJiBpc0FycmF5SXRlcihpdGVyRm4pKSkgewogICAgICBmb3IgKGl0ZXJhdG9yID0gaXRlckZuLmNhbGwoTyksIHJlc3VsdCA9IG5ldyBDKCk7ICEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZTsgaW5kZXgrKykgewogICAgICAgIGNyZWF0ZVByb3BlcnR5KHJlc3VsdCwgaW5kZXgsIG1hcHBpbmcgPyBjYWxsKGl0ZXJhdG9yLCBtYXBmbiwgW3N0ZXAudmFsdWUsIGluZGV4XSwgdHJ1ZSkgOiBzdGVwLnZhbHVlKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgbGVuZ3RoID0gdG9MZW5ndGgoTy5sZW5ndGgpOwogICAgICBmb3IgKHJlc3VsdCA9IG5ldyBDKGxlbmd0aCk7IGxlbmd0aCA+IGluZGV4OyBpbmRleCsrKSB7CiAgICAgICAgY3JlYXRlUHJvcGVydHkocmVzdWx0LCBpbmRleCwgbWFwcGluZyA/IG1hcGZuKE9baW5kZXhdLCBpbmRleCkgOiBPW2luZGV4XSk7CiAgICAgIH0KICAgIH0KICAgIHJlc3VsdC5sZW5ndGggPSBpbmRleDsKICAgIHJldHVybiByZXN1bHQ7CiAgfQp9KTsKCgovKioqLyB9KSwKLyogMjYxICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCnZhciAkZGVmaW5lUHJvcGVydHkgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYpOwp2YXIgY3JlYXRlRGVzYyA9IF9fd2VicGFja19yZXF1aXJlX18oMjcpOwoKbW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAob2JqZWN0LCBpbmRleCwgdmFsdWUpIHsKICBpZiAoaW5kZXggaW4gb2JqZWN0KSAkZGVmaW5lUHJvcGVydHkuZihvYmplY3QsIGluZGV4LCBjcmVhdGVEZXNjKDAsIHZhbHVlKSk7CiAgZWxzZSBvYmplY3RbaW5kZXhdID0gdmFsdWU7Cn07CgoKLyoqKi8gfSksCi8qIDI2MiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgSVRFUkFUT1IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpKCdpdGVyYXRvcicpOwp2YXIgU0FGRV9DTE9TSU5HID0gZmFsc2U7Cgp0cnkgewogIHZhciByaXRlciA9IFs3XVtJVEVSQVRPUl0oKTsKICByaXRlclsncmV0dXJuJ10gPSBmdW5jdGlvbiAoKSB7IFNBRkVfQ0xPU0lORyA9IHRydWU7IH07CiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXRocm93LWxpdGVyYWwKICBBcnJheS5mcm9tKHJpdGVyLCBmdW5jdGlvbiAoKSB7IHRocm93IDI7IH0pOwp9IGNhdGNoIChlKSB7IC8qIGVtcHR5ICovIH0KCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGV4ZWMsIHNraXBDbG9zaW5nKSB7CiAgaWYgKCFza2lwQ2xvc2luZyAmJiAhU0FGRV9DTE9TSU5HKSByZXR1cm4gZmFsc2U7CiAgdmFyIHNhZmUgPSBmYWxzZTsKICB0cnkgewogICAgdmFyIGFyciA9IFs3XTsKICAgIHZhciBpdGVyID0gYXJyW0lURVJBVE9SXSgpOwogICAgaXRlci5uZXh0ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4geyBkb25lOiBzYWZlID0gdHJ1ZSB9OyB9OwogICAgYXJyW0lURVJBVE9SXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIGl0ZXI7IH07CiAgICBleGVjKGFycik7CiAgfSBjYXRjaCAoZSkgeyAvKiBlbXB0eSAqLyB9CiAgcmV0dXJuIHNhZmU7Cn07CgoKLyoqKi8gfSksCi8qIDI2MyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IHsgImRlZmF1bHQiOiBfX3dlYnBhY2tfcmVxdWlyZV9fKDI2NCksIF9fZXNNb2R1bGU6IHRydWUgfTsKCi8qKiovIH0pLAovKiAyNjQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKX193ZWJwYWNrX3JlcXVpcmVfXyg3Myk7Cl9fd2VicGFja19yZXF1aXJlX18oMjQpOwpfX3dlYnBhY2tfcmVxdWlyZV9fKDI4KTsKX193ZWJwYWNrX3JlcXVpcmVfXygyNjUpOwpfX3dlYnBhY2tfcmVxdWlyZV9fKDI2Nik7Cl9fd2VicGFja19yZXF1aXJlX18oMjY3KTsKX193ZWJwYWNrX3JlcXVpcmVfXygyNjgpOwptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMikuU2V0OwoKCi8qKiovIH0pLAovKiAyNjUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKdmFyIHN0cm9uZyA9IF9fd2VicGFja19yZXF1aXJlX18oMTA4KTsKdmFyIHZhbGlkYXRlID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3NSk7CnZhciBTRVQgPSAnU2V0JzsKCi8vIDIzLjIgU2V0IE9iamVjdHMKbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExMykoU0VULCBmdW5jdGlvbiAoZ2V0KSB7CiAgcmV0dXJuIGZ1bmN0aW9uIFNldCgpIHsgcmV0dXJuIGdldCh0aGlzLCBhcmd1bWVudHMubGVuZ3RoID4gMCA/IGFyZ3VtZW50c1swXSA6IHVuZGVmaW5lZCk7IH07Cn0sIHsKICAvLyAyMy4yLjMuMSBTZXQucHJvdG90eXBlLmFkZCh2YWx1ZSkKICBhZGQ6IGZ1bmN0aW9uIGFkZCh2YWx1ZSkgewogICAgcmV0dXJuIHN0cm9uZy5kZWYodmFsaWRhdGUodGhpcywgU0VUKSwgdmFsdWUgPSB2YWx1ZSA9PT0gMCA/IDAgOiB2YWx1ZSwgdmFsdWUpOwogIH0KfSwgc3Ryb25nKTsKCgovKioqLyB9KSwKLyogMjY2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9EYXZpZEJydWFudC9NYXAtU2V0LnByb3RvdHlwZS50b0pTT04KdmFyICRleHBvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwoKJGV4cG9ydCgkZXhwb3J0LlAgKyAkZXhwb3J0LlIsICdTZXQnLCB7IHRvSlNPTjogX193ZWJwYWNrX3JlcXVpcmVfXygxMTQpKCdTZXQnKSB9KTsKCgovKioqLyB9KSwKLyogMjY3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vcHJvcG9zYWwtc2V0bWFwLW9mZnJvbS8jc2VjLXNldC5vZgpfX3dlYnBhY2tfcmVxdWlyZV9fKDExNSkoJ1NldCcpOwoKCi8qKiovIH0pLAovKiAyNjggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9wcm9wb3NhbC1zZXRtYXAtb2Zmcm9tLyNzZWMtc2V0LmZyb20KX193ZWJwYWNrX3JlcXVpcmVfXygxMTYpKCdTZXQnKTsKCgovKioqLyB9KSwKLyogMjY5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqLyhmdW5jdGlvbihCdWZmZXIpIHsvLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuOS4xCnZhciBDQVRFR09SWV9CSVRTLCBDQVRFR09SWV9NQVNLLCBDQVRFR09SWV9TSElGVCwgQ09NQklOSU5HX0JJVFMsIENPTUJJTklOR19NQVNLLCBDT01CSU5JTkdfU0hJRlQsIEVBV19CSVRTLCBFQVdfTUFTSywgRUFXX1NISUZULCBOVU1CRVJfQklUUywgTlVNQkVSX01BU0ssIFNDUklQVF9CSVRTLCBTQ1JJUFRfTUFTSywgU0NSSVBUX1NISUZULCBVbmljb2RlVHJpZSwgYml0cywgZGF0YSwgZnMsIGxvZzIsIHRyaWU7CgpVbmljb2RlVHJpZSA9IF9fd2VicGFja19yZXF1aXJlX18oNDMpOwoKZGF0YSA9IF9fd2VicGFja19yZXF1aXJlX18oMjcwKTsKCgoKdHJpZSA9IG5ldyBVbmljb2RlVHJpZShCdWZmZXIoIkFCRUFBQUFBQUFBQUVLaVE1WmxwV0ZQWDJ2ZDczbFByYWZXSWRRQmxpclVxS2dnS0lxT2tXaFZ4Z0dKRlpJeUNpTWdRSVVDQVFOSWpSeEVab3FJaVFvZ2FCZ2NHQVpraEVaRkVRSWlNQVFLSkVDSEdFRUlJbWNpd1gyeDdUckducCt1OW5nL3ZsMmRmWE5sSmR2WmE2Lzd0Ly9yZjkxcE1EcUhmUE5OUUJnTDhzamNjU05SZGJSYzl1V0hYNU1udmJYZllYRFdZLzNDeUlucUZYdlRrUUprL0xmM2o1NDl2cGlRU3RCMTNnMDNXaHJNM0xMSnNjTjdOVTZ4MnNzTmtvOHlDUGxPZzh0M3pnMnZQOXUzbU95cWVscGVoTGtTRWk2ZFh4QXZYeVhQL3VlL2xocnd6NzFiZFBONjc4MWxrL1B1MWE3THVlSndjSExDeHJxMkpqZmtTNjV5d2Q3M2ZpbVBtRVY4ZDJucGUxOVBXZ1MzM1pYZmpSZ3hESERlZDFUNnhLM3FaczJtWW9lOUZvZisyUDJ1S1FxL3VWdzJRUDRjenFxZHdMc3hyVis3ODgrWWtuMXNidXNkcC85SHZEOHM2VVAvUmMxand1ZzNyTjMyejhkdkNlM2tQQ3U3bmM3Nm5QMy8xOHZXTE5tcG5VMnRMUi9QaDZRVEpsOGxYbkE2MnZ0cXkrZEhEb0hNOCtSdUxCUkhpMkVqSVpIY1k1ZlA3VWN0WGZKMXg3Y2IxSC8vSkppTjQwYjkwU09mOXZrTkRQcWhEOFllVnY3YjB3ekhYbmpmZG92dUJwODc0blQwZDRNOTkrMjVzWW5TalhESDdaMFA2Q0IzK2U2Q3pTMU9QdkRaaEM3MkkyWDNSdnpWVS9JK2ZJYVhtWEx4eDllN2wyK2xhdS8vNjdVcUxKY1o2ZG91TmRLeTB6SnJNN3JrYzNIZGs3NkVEenI4d3BDWGwvdU42Y3RhbFcybUV4SXlVN0tUTXR6cTlSbjhlMEhJZUtKNUxvSGhVTCtaQUV2cjZqeU11Q3BuVXovRWV0bS80blBMUTRadXZkM3k1WmEzTm9vMnJMZisrelFBVzk4V0JUOVNGT0VJRTBTZ0IwY2g4QTZMQkI5SFkrS2VDKzBqakdKQkdFSkJHS3BER0NTQ05RaUFOQm9ER3RmY2dHcXVCMnJnS3BMRVJTS01jU0dNL2lFYnBZeEFOOXg0UURlRE0xOHl4SVMrMnp2Zk1oV09aeWs3NEQ1djV5WEw1bnphbC9ndmJWdnJXdmZvTEVKbkxRREkvQXNua2c4Z3cra0ZrZ0I0U0JkUkpIVkFudTRFNklZTm9zTDhEMFVBK0JOR3dtcE9LQld3M2N1Q1VIQkFTRlJqU1NtQklqNEFoQVcwUkNiVEZhcEF0VHYvMXY3aWU1amxTbllDcytyV3JQYWYvL3VjUlU0S1VWdHMvNlVvNXdYYitmVWdxTCs1VjhuVWNnVEZJN3FTL1EzQTlxa3JGR3hXTVdMeUFyOXF2aVRMMFU5b1NyK0VJT2dOa01wdUxZUGRVbHdxWkNvWnNRc0JYSWpXUzNWSnhWT2llNmFpMDUxYU12OFNqaWw5SUs5Vm5ieE54UXVKenRIVEE1YTNZc2hDQ3BuQVdlT2hzdndiU1RBYUhHY1ozVU9BSTFPVGJZRU8xNHE3eFlnUnFsTTd3dHBMZnBXUEpFMFZOaklaWnNhVnNLWGtpazFocWMyYmEwa1YxOXF5Y1VCeXVkTExYakpDWmFHVVlXMUJJUVphMHlFMTltaGtTZlNZamFxMkNJVms5ZjE0eGYxNDJmMTR5ZjE0OGYvNTgvdndaaytFTmgrN1NrUWlVVkJYc1MwN29hQlNYS2lSU3k2Uk95a1RyL0VWcjZLNHdESUVhVWdXejZoSTZqczVmNUVvdGFhOHBFOWZuTCs2QTdtck5YeVRQMzFtZDBERXlVNm9ZbEZvdVZwWm9OREtmYmZJOUdxMkQ4a1J5Rkx3ODdiZUhoWHZqb29vYnNjSjMvVXVmT0FGbUlQZWp2TmlqVVltd2tJUi83b1BMamFaYURBLy85bnpKR1dxNElmL2p3NlBrVmcrVWhMQlBVMFlFdjZvbDZTUmZTOUV2M3Z1cnk0MGx4U3Y1dDhMY2V4RjR5NnB0STFZeTNDdVhPWm1Vd01OdEpVSnBUUTZmaWxFcnFtaSt1MWs3bGNPdzh5L2RZZCs3WUhkWGNuYytneWR6bzluMnpwQkUzQlI5WnE0T3pqUXRRc2lzbU9yQ2Uwb0RnMXhjaFByNGxNeGdSSnFBMVpWQ2E4Y3JxVytURkQ0ci9xdnZxRTdEc1ZBRTlORjhSdnYzZnB3QWM4MjRPWDNjUkJUcWw4bFdoNno3L1d5RHY5ang5UzhOUWxlRWMvUW05SzBYWlprL0M1bmRZTFRneHhDYzNkeU8vU2g0SG5yL0ozUExIWnZFaUs3L2VSUmJjRU9zVXFMbkU5YjhKRktzbkMwbE52RVZZWEF5VXduTlc4TkI0dTRYTUlWRkNTeW9aY0YwWVJlbGZaeWFDcU95aVJhT3NaNFNQWlBUN1AvckpPWTFnaXBUMHU4OEZ0dUxWbk0vRk42cGxQNDhjbmlHZnZONXdzY0h3V0FNQ1lrWC9XUHN1UnZsWFZqMnY2Y3NmSTRwS3g0dW1WZk1MRm96TjYrWW50OFhydG1WWC84QmNFMVZLY1dGK2RGT3hFeHlncHBSclpiVFVMZ1JIRmxnQkxFMHI5OUc2VGNoeDlVYkFjUDNBcFZlRDRFNVpCZlFjTDJBaGtzQUdxNHZ5SENGd0tvY0RhcktwKzFBS2ZVaHNBN3RCTkxRQWRKNEFxUnhGRWdEbUg1a3dQU0RBWlZlNTREYThBWFNRQUpwNElFMDNJRTBnRlc1REZTVlR5OEdsZVhuZ05yNEI0aUdaaDJJQnU0cGlBWjhINGdHREZpVmE0R3E4dWtra0crOEIycmpheUNOZzBBYU40RTBQSUUwU0NBYStENFFEZjgvREJhNlV5cXVyL3F0SjVydTN3Qkl3b0ZJWW9CSUxnS1J1SUtRRVBOQVNGeEFpNVBwUXRCMGVRK2NMaWYvSUZhNHREQmVZeEU3dGJBclRsSEd0U3R5V2dLRC9oVHJ1YUdmZU9NNnpvaDJMS2JvMTFLM0ZwNEJVMXJGMFg2M0NhZDY1TEFFUkhzbmtIWWRrUGIzUU5xUEFMUlBBWjA2RUxnVXJBRFN0Z0Zxenh0SUl4ZElBd0dpZ1FDbDhWUEFMSzREM0RKSUFacFRDNURHQ2lBTjRDcVNBbHhGSWtCcC9GUTNpSVk3Y0R2SkdLZ05OeUNOODBBYWFVQWF3TTAxQkNpTm53TGFFZ080MWFnSDFFWWFrTVltSUkwS0lBM2c1aG9ibE1aUGRZRm9WQU45Z3duVWhnR1F4bi84SitNL2FHUUNhWGdCYVlEUytDbGdGcGNCZlVNSjFJWWFTT012SUJyUVBSQU4zRUVRRFhnUmlBYXd3c01EZmNNUnFBMS9JSTF3SUkxL0Fta2NBOUlBYmJhZUFsYi9Ma0RmQ0FScW93Skl3d1pJb3dGSVl3K0lCZ1c0MlFxc044eUF2cEVKMUlZeGtJWWJrTVpkSUEwZklJMzdJQnJBZWdNSjlJMXFvRGFZUUJvR1FCb2xRQm91UUJxbElCckFlZ01HOUEwdG9EWWNnVFQ4Z1RTU1FUU2c0eUFhdUFJUURXQzlRUVQ2aGhsUUc1bEFHc1pBR3BWQUdnZUFOSjZBYUFEckRUYlFONFJBYldnQmFUZ0NhV1FBYVhpQWFFQVBRRFNBOVFZRjZCdHNvRGFFUUJwYVFCcUZRQnFIZ1RTS0FUVFd5UTJiWkJzQVFIWUR3elVCN2llZUFJVUx6d2FGU3dRbURmckNwTkVCOWJEVUw2M2pXTEYrUmlrbU45ekNuSEo4a0ZVWlI5ZTNXV1FJT21MUW1NUkY2OWN0ZHJYNDI1dnZwUGVHUDMrM3JvMzYyYUpKL2ExV2Y3V3BlVmZiMjFXck9Cc24yeHN3ZEJuMUpMR3N3UDdWaSs4MjZRWGZUR3Q4ZFg5Z1puTGZxN2d2VmxwLzk4V3JQWW9aUk45aGJZOE5mTmdUVHlLQ1ErSW1FR1VLaUd5bUlQZU5mRWkwVGtXK2ROV25WWFBzdXRKOFZkdWRIOERnYWNRV003L2x4QlpFQzhMeFVhNkd0QlpQV3UweUZ0U3dWaENqTFh4WjM1VU11aW1NZk96YnV5SnJUOUdHWEdwMlYzcWd5TGxCajJCOXBWbCtRTDhsUE42T3ZITGtmWXNXWjhPY3FFZnVvVnIvaGNoRDVhYUt1aW50eHUza2hEOGJjN0pQc3lJWjBNY0lNVmEyNGN1VFJHbldWem55NkhpanVxNFVHTlZwbGxNb3FwRHZYenBXSVg4aTUyOFdGRUxucUp4ekxSa3h1c2dEZHJrdGRxS3d5TEYxeXpoNjRhdTg4T2NkWGp4Ui9BMHVpd21qckhiWnhIUXg0bVgzY01iUE8wdzhXTkUza09iWlMvb2FVd2E3Sk0zVlRoVmpqUkVyMGFmdE15Zk9PTXlIU0pxdG51bUwxS0dxNFlSWktKSlo2SHRsMzdlVUFwbWFFd0xQRFlHbHp1ZzE0NjV2WnJwY2hqSTc3YXYrWHNvOFlEaWkyNnJIc2t0enJTMjhkWURjNW4rTWJQSEk3akhGNGpXTUFVbU5CalhXMk4ybXpOY0dvcEQ3Um9kbnJMWmtobS9iclRtVGh5cXc1RHA5azFCK0N1ZFI2NmZIMFpqMUl6dHVKdXdheEVaWFVZTG16blJFNytKeFd5L090SCtBZXh6VHhPZG15a1R2YnRqa2xMTEh4ZDc5a0Z2UDBRbUtyVTkwVWNXRDF5cHB4YUlvN1Z0ZUp3STlzcUpvalZOeTdWdHJiYjIzNXpiYk5IUFlXM29SRGJ0eDIwSnVzNGFqeW1OeW52Uy9DM0RPOUlnZTJlWlZJVkY2elNvYWsvbjlGTVF5WVExbDZsQitaWU5GOTUyODVnYnF1NU9rZTNmZzllck92V2syK2JXUm9oaXpxcDVjYTJGd0xESGIrcHdrek5mT0ZuVTUxbkhKVEZMZFN2NEVvb0R5UEQ3TGpRTTcwaDBRVlJDYnYxSFJZaXVvVlhjbk9SbVpoaURKL1k0S2ZkdTJoTzFIa3hndHJwMThoY1k2L1lDQ1lKRnZyMXpXL3ByVzlhNXVEU3pZZVNnMitrVFZIV2VsdFhPY1QzUE5aRXdaSlpabWRjck5MbVdPWUVBdjMrSGdaU3pZSlBEOXhzZWhvQkNWWUdJWURNZmFPcFdPRlhveEJoOWp2Mm04R3lqYnNIdXpSQnhyM3B1MVJwQ0p0UzRUaUViT3h2WFZNUTJySTlja2hyQWRlOWE4eTRpN0p1emVUNlhaeWZxdEwvc25WR3duSmliVE9La3lUSDYzSG1wQ3pOSmNDSy8xVSt6WHJyUTZ6MjhXU1JjN1VYUmdMU21iSWExV2ZEVkhMVjlIdGhLNU5seVpnZTJmRUZPM2Q5akUyUEdVR1lJZ1JMUGc5SWlicTBPRG5iRVNtUjY2dkhpbWExRnpZZjBKUmRBZTFKam92ZWNhSkN3MW9ORlUwZ1M3NWNsT3dXdk9IVWNQU0d2WUUzbkZ6Y1c2RG1hbFhsVVdjdEx3MTNUeHlCckh3YWtEOEtGQm9UMWN5WnA4NTBHUmFHNUlZbkJuNjRlM1ZxTS8wU3hxdStYYW5pNXhjZWszK3pOUXFOYmRPOGdVN1dHN25tRFNzRUgyaEZZN0dlNGVOc3orZ3VFU25wcUJzV0lLVW1WYkwzZDFCdTdIREZCbHVmaWUwRmR4enlvTVNaRmRVdVdsQm9YQVNydlg2M1o2cDFlUXVWQ3NxY1kxK3Jod1dSOUNUN1dpT1I4Mnc4WTF5WWVPKzF1ZGQ4VWZtR3pCM2t6dnB2V1A2M3AvVUR2ZHBhZVZKWjdUanRReC9jNUt3THFhR25CZ2puS3QrbFY4N1VaSko0M2RVSDU2MXFMZkt4TmxZWm1teVlPaXBycU8rbGlheHROTWhuS25YQnBmVmZqWTBOY2g3U21UTm9FODhadDczcEVya3N3ZXRhb2M0aHdHNFZ2dUlKTDI4NDlOajhXZWhxWW5zMURUMUpkSFJvNVNyUm9jSE9uajQzc2NkRWdMU0R6S1FEY1BrOXg5TXJzN2Y1Z2JzVm1yUiswY0hTOG9DNEVLaXM5ajRocld0Rk5WR2R5TWhveUxyS0tLWFY4Rkh4dUdaaFV0R3UzOVpWTVBMTFBYY282d3g3dWRNVVpiWGROR0h1N2ZyVnVtbzNSOUNNVzhmL1lNcFJMTDdSMlNFVFRrdm5TRDFIYVRLeWZtRE95eUptR21rV1dzRUUxNUhLUHlzVUJSWnNJMEZHalJvYzFRM2lsN0tJQWZjWnJna0lDOVB4eFFGdEtRdWEvMmxoaDI2eUUxclBlQllkcEFpbnB6VHIwZkxCTWY2REMwQlI1dFBnajNEaUlQMTBsSy9OeVlMWnoydHR3T1N5NHVCMzNzVGYwcFVkMlJOcDFPWEpuZ3lVdkZHcnJ5NkxzZTNPeVRUMEtXTlcyVVNlcjhKL1BZemhOOVdhOHJNbVl5YlVxclkzNk9HV3VTbVc3emMxTjMwRWlxSXI2VGtWZkR6cXFIekx4NlVoVHRWSnNlZEcxR3hjSnhIU1FrbmxhNzJOclJZTFJTems2c0lSRjltYWdNcHJyT09keE5EYjVqYXU2RjNZVWpsUGNJRkEzN3gyOUxLamJqREhTNEdQTXVPNlp2dk9yZEM0M3JxTXJzZlAwQWRUVXAvdVluOFZxclQzRmpscHV0Vnh1WWlHSnVtbDRObTJCM1dCZFNZNU15NzVwVk9CUDROY25TUUc2OGRaYXMxNGszcHBzREk3S0ZKVFZRdlIzYkxJb3lvNzdFanl5YkhIMGRVOENsWkgvU2JFMmtQaWM2dmFjemZNaW1wRE8wa0NLeTdIS2hxRi9YdzdNd2NFN3Q2L2lzcUEvZXRFMENNMk83Tkt3RFJJczFzaENiZWpac011SkduY2lCL0JySEF5Wm9RM3BadWRYWVR0enhCN3IxcmlseE8vM01wUDRGYVUrbzY5VEx6RmxOWjE0blBvdktVcGp6ZTJ1MU9ybVltRjNzTWxacWVKYVlJMVltenJlQWFXZElab0pQUmNkekU0emE1cjk0dU04eW1xUXRPZmZTZDVMR1M0blgwRkxrWjY0Ri9pU1huSnJDNEs0cDQvdnUzdHhxNUU4U05HZTdwbWFmRjVlVGQyMnA3cXk1S21wZkpGTkZkaHlJNHg2Z3hTMXBNM2xxM1padnIzRGMrTGhNci9LaDQ3ZFNQN2gyYW41dFVVZCtWNXMzcklvMUhOMGtUTUNGZENtTWQ1UHpPcVpxTkF3S1BMaEFmWFplWTZzV3dGbHoyOEJqbFdDV2tldU43SWwwMDVUZjZjOHFyWCt0RXZrcE05TUNUaURENnQ5cVVlRG1KUXc3NC9xUUJtNUNKSTBIaHpSRlRub1ptL0dzYThZa3hMOUZ4allkTmhJblJCMVk5dFZkeG9VZkRocVJXWHJaUE02UjJnelJ3aUU2VEIxUGg0VHlOSmt4RGRxczRjdVJIQW9lMnVGZ1dHQ0RaUVh1VURlZkhycHFkR24yek5qMHNlYVRiaE1sSFk1Y1BBWHhRV1crdFRsV2MrcEdwMkpjRnBnMjQ5SlpqVU90SjY0a29heEhFTmFYRnduTWR2aFNKTzNzUzZJNzJyNzQvQ3grZEd2WjRKeU9NSEdVcmJQTmxrNVo0K2hCVCtLY2VXQVY2T3FyRW9sRlpkNC9mcXZ6QVhZYkh3RXRITnV4cXRxWGRmNEVPQ3ZiTHZyWWRqWjFmZnVRWnkvRE5pNC94ZCszVzhhZ1V4dWE1Z2l2SzNIYnU0dnQ2ek12N3pqS0pkMWhkOWphcjhvL1poR0UzaVIwR1hqc0VOTDEwNjNMWlp1UnJwb0hjZTdGT01Td1RNUm1pRkdJZmk2NUJOTHBHTHo3cmxGNmhQWE5pWUcxeDlPTmY3T1E4TGtIRWFyWUJrM1F1THc0eG95OGxwMEdvd1V0alZEMTNJbTkzYWhwV05aZnZ2TXh2ZWJ2Z1h5bVI4aUs0Zy9aNFgvNzdIbGpmMDROMWt0dy90dGx3b1BHdWEvdE5lZ2I5TGhEK1JPOTdQZkhsVGdMc241d3I1ZWhvdzM1VVlza3poOVhOVWMvcTBQS3JyTWlXZTM2Z0t0emZrSWlmbnhmSHJUMEdQcEhzWVNxYkx5ZTVpK2IzdGlUYmIwbHhDeWlmQzh5REhNSnA0d3ZIekY1M3ltQUcrSkYxWFJJZFNTb3VuSGxBdldjakpZZWc2d2wrQi8vNENXeno2elN2T1ErYjdmRlNKaUFIQnM5NlYzNjlsd3Z6cGlEWDVBZGdoWHluczdSM2QyTmkvMXJQSjc0TVRsZTdVSmNUYVJwY2J3bXZLdXVxN011ckwwRzhtMXF6VWxSNk5BUUpuWUkzQmhGOWJTM016Qk1LVFBEd3F2UVdoUFM3Ty9IdTloeXBvRTZtWHArS2E3dlYrK01Nc2VIM3FFRzBQcVRTVGR4QjZzc05SdGRIZHFpVml3WWZIaldvUEF0eVJ2OWZmNDIvdG13NmsweWI2dVBmMjhIRkdwR1I4S3VYcGZhVExyVDdGYzh2K2IzM05yd0t0VjQxTm4yam14OVNOQitsQVFwR3lQZ2pMTUwvRUNaYVkvenJjQlNtUTM3MEx5eW9NaXZJRXIvR0lRTHV6OG02dFp5bEN6MktQVXdDcGRmVUx2UWpWQjNpTzZsMTNEbHp6ZEFiTTM3YmltWERxM2p3aGRrbE90MUhZZjFpNHdZVSt1SVJxVElMTXVockdSUDVIcTZkbVh6TnBzdHFTVHIzTDBhSXJRNVZ5Y2QvK0gyNGNvR2VQK001bVM3MGovM2h3ZS8ya28zMlV2V1I0blBuZDBRdDlKb1VXT3QvM1hKV3MvVnhaNm9BM1lKSTJaR3hyTW5OdDlVWmxiQVU0THhFM1lrK3ptS1orOEJYSENoYmR5TDRqUnMzOC9UdWFTU08yU2poNnpObUhOTlBqOTVZTnVIcml1TkEvaGpSdVBWcFBwOXFMeG5iVmMzWTRWTGNXSGR2RkxSaUVVbVlpc2hsYi9OVlZmTjlPRmVsa3lJTDRlbURnV3R4dC82eXQ4ckF2NHVlOXJCMXZNZTNMWS9ZVHBkKzJUcDZ3bitBTVd2a1ZtbXJweGZYbVFwSTdvcTNyM2d3S2hhMU5pUjFaS3FNenl1RzY5WlhMc1VnbmZraDBJWXQrNU1DNThBSmlkaldRL3BWbTd4MHhyV3p0dDlkbkNzblpxZEtYSmhucnpOMHFqY081QnVnOEtpQzlBSGVtY3d0dkZ5RkN0TEgxTjRxbWRPaDcvTmw1SEM2QWlRTU93Z3JrU0hRSXVpd2RPcFgzUjZiVHU2OHdCazJuYlNueXFYWGRmTFI3NnNka1RxNW5kSlZWanhrVWRQRTNKbFBmSkJEMXlGcnM2SFcxL3hhdWN2Qjg3UW1FTG5WZTBPaEZSQnE3ZG02L3pxSUI2VEdXU1M1UjdrcEZrMFBrclJaZWlxdmE2UUJrSnZwZ2UzUG5IVWhiTlMxS2V6UlBJQ3FoaHo3TU15dmpDdmM1YU5aejNFQmozckd4a0lzZmQ5NURFUVZ1U0tUV0RnS3dLbmVNbzVWVVVNcnFtc1d5dXdnN3U2SFQweDVDRVhKL0pmTnIyY1p2TU5rVlpmeFhLVmhGYk5jZTVlWC85bmNHYS9QQzYyNm5sVEZ2V2lBNTdlbHRvekttN0xXQ0toSzVFZHFjR2F3RzhKZTNGaURyYnV1M0FzWWErNk1GRHdqQm9MWWFiU0VDOHB5ZkNPUm5HUUNqbW9xWkRqSG5pYUdrRDhQSnd4ajQ2YWhOSW9qZTYyR3JwL1lJeHc5eGJKSnc0bE82UjJkRUlreThqSFBtaXhOa3ZzbkJBYmZPcXh4aEl2SGI1V0kxSGdrdUZNL0pLZkVZRklRV3lpREs4WmdYb2syV21qbERKc1Y5TWliakJtTzVlbnkwd3BzaVcvSDZwenFoQUhIYW5TQzA0UEhpbERKSGp6ZzFaMVV5LzZweTBLME9uenVVa3hRV3JpUFBwWlk4SEJzYkRNeXNZUVozNEpQUUJWYjRJalNCaysyZTNTVXY0bUpnTGQwVitNODVwNlRGU0c5bkdkbnV6RTltY1hXQ2s4b2dabEwyb2RlY3F1alFrVnZEaGtoVEFVUVdkV2RZU2JYUTB0cFJWd0dua0RIMkpNR3pDT3Y0UjBGMzNwWTBUdW5NcHpWT1JMOWhYS1drUTZYYWJkME02dWtHcVQ5WjUyVDNOM1dpVjBIaEJHeVU2RmFiV3BBbDlVMFNyT3h6OFpQbzV6TjNBc1UwVk5WTWJZNjFEY3JiWlpJYVIxWWgrWmZaRlhZRlJ0QnpIVE5GdFdidjVraHN1c1M3YXMvNUpwU0MvbjR3WXRkOVNybCtlaTNlbEtCd21sbGNzNmlndERCTnFqSlFraTg1b25zZXdqOE9MdVNUcWkveEFqNFF0OWplRytBTGx5VlptWHB3cURLeHlYdEllcWg4UEN1dEJqa2R1cVphamE4OVFmT3RiY3pyZXlwSktHL2pLOXFGTE54cjNWbkx0MWFBbkZ2eVE3RE9QTFJQUW9LN1JsQWZyUHBhRktOWDhYaXgxMi9taEoxVm1tMnFaOVoxV0M3MVM3OVFRTmRXdEg4WS9ja3JHelNrRi83dTZUSEJIYXNPajBhMDFDVWVBbHRSc09IVXhXUFloTE9RTHBhMnJDMEhuZk5scngzalN0UUFWNE5hSXlHaTdKWWg1NXpJWlhSOGFURWJ6aHc2Unc5OXV2QzYreFN3M0l2YVlwMkdLOWpzUHQzcDRRbmNodXBhQlJIa1dQb1hLWWtNc2FLVkJRdmtYbjd0TFJ6MmI3am5jc1lvb2xoY3JpN25INDk1NjlXSFJIK0JFbER1V0VSWFhUUjJpbDV4ZWp4MHlWYyt2clM3a3c4c0dwcllhM2x1MHloeUZNTFcrd1RkYWtVN0pubjZxZWVFS1RRbktSYzJGQzBWYloyZE9ZNDBnajlRSkRUdUxJRTZWYWgzQnZGTnVEekJ4TTFLME1xT1ZWVGVQVS95R0pjalQ3aTZINWRKc1o1RzllV2hIcmpNT0tIbUpmYmJ0RGhlbXJUNzF6NVJISzR0QmpGeUkxNUxzM21WYmtxZnJCWEU5VitxeExCSDRZM1RJZ3Bkelg3SGVUYXdaamo5dVd6SmR5L2dJaEtkVEh3bDJ0YVFqTnBrYkJWMnJ5SXA1YUppdjRCZitxOFl6MXZGMnNRdVNCeDVOd2hUeUp1bHZrSmZLTnR5RHJ3Vmt3UEovZHZnYUt0ay9Id1RXSmNqc1JqSXBiQllVM2FNN3phbTdOcHNrUHFjNnErcWNkQmlmbXpHcVFRdVpjS2FmYWdncHQwSVRaSjFlWDkwTkIzZXprVWlvYmoxc09iYytsd3E5Q0ppeU01SXNKU2Q5Y3M2VkdOYUN4OWowcmU2djVLUi9yWnZmNVovL2wrTW1DVDJ2U0dhcWlyL3h2di9pZkhzK1BlbGxwbk5UVDJwSElSejRmdjVoNk1VbkhML1AxNU84ejRvZFRvakxQcGV2bkwzMGVWOWRsVW5NQ00wNksrMlJWRlg2Q1cwQkN4R2tURnQ4eHZEMVg3TnNOMDk1SmkrV3Z1YjB0cW5yNzFOVEFHZjJSbkI5TkIzajl5b1VySnNkSFNqVEd2MVpIeDhOQU9QeGdTcGNhNEZYcjRGbnJzTXZGenIxSVZwNDNVaHQxOG96cmlHU0lvdEkzWUlrVTFsWnBDbFVLaCsyYnlpajBzblpNMHBubC85ajRJbHBGcEFmS2RHN1ZoaHV0YkV3ZWxUYWwxc3J6anR0cXJMRUdoYUw1VlY3RSsxTmpvZzArK29tenlvaWd6cE5yMHpLU216TmZ0a3JpcGZHTjJVKzY5TGRtNmdvSUM4djhHYjR3amRXeEdXYmFaV0p0ZjlqSU5TeEE5VWxXTlE3R1ZNZnBHT1FZanl2S2JxSGVPQTh5ZTVqUG5SNnBCL0g5OWRHYnVqcmxVRjVFRFBkcVYrc0FuZkJ5dEZuU3c4Mnd5WG5kOGNRcUV4ZGh5aTNLRUQ5OUZCN1pUaGlHTDJoVmFGSURGUXIweCtPOWUxT21idmhidERuZWFxQ2NtTkY0QnJuL3Uvd3lLWUtua29xWWFvYlgyQmsva2NZMnZJd1lSWTJJa0NwaVAxMlprVjRvNExxNTRnZDkzSmhMN1NVWmlSZEhOYTN2aG14dGpIdEM3Uys0eEhGNWIvWWdwUU1ackptNGxycTBiR2l3TXo1SHhrNmJPQWhYOHR2RkYwb29aUm5KRXkrblk5RHJGWHdIMm9ZdmFwZHAxejdpdVBNd25yZytVWjh3VjBhVEcxVFpjZjFxU1VkWmVrOE1TazVYS0lWVlI0VTgxZzNCaEtyUlo0cXJYS2dNOVdFV3ZFcWsrdkwvWFluVDVnTTc1eDZodktiS1Mrdk5ZWWxVczM5cGYvRlVCZlcvM2xYekFORzNMSGJOWStOMG9xYWxwYUZ0OXhxWnoyWmttWERPTzQ2OXJjNDU1bFJCbVNEODZhRGlMdjdFbzRyZWdoMEhDYkZMU0RtaWVPRmlUdVEyRjZ2Tlh0c0Z3UjVZa2J4Y3NOcHplS1hRdS8zb1N5bmpzNS9jRHVVYk5idUVFQlVNWDFvbXhtQUtFK0pRU0F1L2NBSzYxMXQvMnpGL1lxT242TXl6UmhQYllsWUVZWHl1dUN3Y2puUnVzTnNoa0QzbXRZam9jZFZ2N1hGcmROckp0UWZnMzdzWUJSQnpiWkJDMFJIWWswNm9yMlFKZVhNbjU5d3MyNHhiWi91N0xVeXp6Q0c3aFpMYmkzRlpNbDhRMU14T09xZHl1M05lY3dreDZKc2F6akd1YzZvU1o4dURlSU5EdXh3cG5qdEd3bTduOW1zeHVrMmlHS1lZNGxMYTd0bUt0dEgrVmY1dVdkbjJ2cWtpdFRRbVl2ZlMwdGJFaW9iVE95dUlUMDUzTnIyYUN6OSs0WWZ6cS9oVEJtRVRXNk5LUGhRb3QxYWhSNnBLNjdCV2JzU2t3Tk03bDV6MUsvekZPLzgxUDRKcUkrZVhQK1FmYmJIR3JCUWtGYzJoaGVzbTZydjQwNHJQT1JxbFA5QlRqNHBpcnB1UDV5RmZNa1hZK09Yc0ZQeGxHcWZuNXFEVDNDMzVpTnd6M2xqam9Ub1RZejlSY09GcG01Rmp2b1pXdHJJeVJ1aVZqelZpNFVzVGduUFFjMDNXdU9rbStVQ0tGcFdXYWFDY1RRd2ZHUzBqa0ZDM2JIcm14TDVRZjAzSGc5UEs0dGFCaWRVMEM1TnNoYjVXZ2k0bFBmNkRvYmU3alNEZVBEUzQyVExYUWsrSGlUbFh4bE5WSStVYTI3UVREanBUbmp1R0JuSHZTMWJhNktBVk5wZ3lLQldYRW0yTG9WVmFKK0NFOHNaU2dZOCsrN0gxSVR0RzVGeHhvK2F4ZWVMcHJQMWRIU0lNVHlneFBibEtmWFBrY2ppN28zc2RVOVlhWDFUU003eDJVbUljUHVkWENzVXU5VFdwUGFGTjFWUmdTbENsbFZJdDJEUHA3U01QaGxsSTRiN2YxcXZ5WURVL3R2bjlHUlBaNEh3bldabXRtOEtmNFVZSjRaejNCUzQvWlhic2drTmhIOFN5S2hMUlFYdUxJYVZvT01GTlg2eUtUMkVtZXBtbk5tRlJnVTl4M3NubmM4Z0RjSTM5RjZMMURtbkhlSWVUcXQrZk9sYzRtOC81ZVlVVzdxbnBGbkZkeitjUFZ4VmRJWnlnR3ZRTkVCNjI4UFRXWXBhT0RURndkcHlhTFMxUzdZNUNnb2pHWTY3RkxYM1E2elRvOWJUSENTNHNKSzdadDFIWjF6a2NGMFh1TlRISVYvbWNYT1hJbzJUN00zc3BBU2dSTzJHK0M3elNSaXVEWXpmNGlRdyt4QnVXUXU4TzA1QXRHRkdIZk1xbGs4NWRSenM4aU54dlp4dSthdVE5YloxdjNoRWJucDRvdWdFR2V5a2JJNDJLNURzRG9tOWdOMkt0eU5yc3F6aHQrRnBEUEtMZ3lFWWVraXBzWVhDME9FUWFUQXRQZzY2SFEvVnlhT3p3RmdnOWhoNmpYSUcyYXJMbGhjMDd0TXFYSlpwSk9sTTMvVGlRaSs4cXc5bHVnZXdhbmRRb2pubTdETW04SkZwR2s4UHh0UGpSQVFxR2JQSEs4NEJsTkdkMmYyZlUwckdXRkVzSDloZTFTU2RxZHhvYXNDb0ozU1NPTE5vd0lBeC9OLy9Fek5TQU05K1YvTDNodU4wRy8zTkd3b2pGd1RkclR5TUV0NFp3RjBiakJvUGdiVEpIcWlhYWFwaFk3Y2hCbWxZNlIzYXoyODlGcDNma3B4K1Q3anBDSCt3aS9md0VuT0d2YWxQMk5GdzVaaFdBYkxzNHdDdUE1aDA1QjJ1bW51ZXc3eEV4em1xMC9IMGdJV1ZYS2dFN3NieHZJSzBIYjU2MEpuNzIvUndkbDVoS2FCODUzekF6T1I2ZXIwRDdHcmI3Rjg0ZVl0a2hXakZjWThVVWJqem0ydXoreVdkdHNUUmpya0ZwanF3K2dpVnNvLzFhcnVpTng3dG40aEhRSWNVbm14RU5ONSt0RnJ4LzZScEpndHNid2dxTFhjWmNPRDFyL2w0a2FYT2EzY1FiUGZ3UWJZa1QyUWVoSGluRXpMaU5YTkd0SEpwN2hDR3FoUFRMM2w0QzU1Y3ZFSzJ4cjZPV3MxT0ZWRHhuNXhjMm12VnR4ZTVEUVJXRVhjei9lR21rL3IzSy9qSXFKTERFZjM3cC9CbGgxZXpFa1pra3NRcHhHUlhxckwrNmlsYWlTMGdkcmZKWk1lNWNrckVnM2FKTmE1M1ROVmloOTF3ZEltNUpqa2tyUG9kN2Y3Uk9QOEJuNFk3NEkwYk8vRExkb2hQekxTUEdDclhHUzFpYlQ0elNzMHR1WGp5VmQ2LzY4azFsQ216YnVjSlkxMzVwQTJzdzZ0Z1Uxelpsd2NiRnFpRkNLR1ZuL0s2SCt1Ni9sWnljWjk0MkdudGY5aU45eW1waGl4V25Yc1N4VHR1VFRybVNWc0xlUTBXdERDc3ZicCtQNHF1dlltMEtFM05LdzdHbyt4VXhrZ3UxUE5IKzhSTjlQZ0drdVhaNHBxZU41c0s0RGI4djR5TExEOXBLOThNcDRydG0yNHZkeFRtejUzTXpmRHRRM1U5aW5lTXM2VTZsRXphOFBudWp4cnZjdko4dlluaHpsVDJhZ2RaWDFzTHBZOXdvSFNIN21Wc29IVC9ldlNOd0d5MTJ2cEo1SVZYb3BqSTlHdGlhZGxqSDYxakZVSzVKSzJJbnZwYXMyWU44bEZWMVFoK3htakNyZmpvL3d0dldXL0pTMmdMdFpPNUdER3BzZllkcjNmbzJ3akJ1WVhYaEhRRVo1T09UK0huM3JEanhXS1BEYlFGMndkaWJsdkEyVDNhdVlnYzl2VFM3SVVrd0QzSnZtWGQzRVJSVDcvRzBpNjVzRy9HR0ZqYmlHNkdXOWJDYnJ3ZXlpNWl4dGlPKzY5aGZxM0dWMDNhWXMrbzVEOHFDUnlvejg2RHdxZXZFZFVzcUVxUmZPVytLV3pMRG5URjErT3V0eFovOGpNWkxjY2ZEOGM5NlRLdzMzL0xGVkFVUVFyZG0rZ1l2dEUyNGMzdnB1SnBmMllCcnZDMHJaY3hvSko0c2ltKzdraEVjQzhWdEV5SktmVVpsZnI3dEZ0TTZ6d082T3NNLzFnRmJEai9veGhZai9sMkFHS2R2YTJjbnV3bE10MXFNSUtwOXk0WTdoUnZWamVPMEZPWCtIcW5lSld4Qnd1cHRkK2txL1FMYVZWVFdiVVdQZktlbW44bGx3dkV1WXdpWDd2djRKUUhzdVJIR25GQTlOVk41UjZXNkY5dTBxVXpBWHpHVlVaL3VQUGV4VUs4cERWdWYzcjNzczgvODBWK1B6SDN6MmZQRDNHNHUwVDR3OUhDUVhGYUkrRFFlN2RSNm0zTEIrMEJENW9WK0NCcXFQNWNZdFRhdmVMRUFKcjNkYnVzZHViM1FMdEQ3Yk1kbXJRajFnZC91d20wblkxMFFEZEgyVjF3NDlERTZwMEpPOFQyaW1ab09MYUtIRXNYQmp1SnJzWHFsN05ibVNFRndvVlZoZlZucGhGTFVkVlg0aXBsNm9oT20xWHlVUURuS1o3K1VvSHcxNitMeSsra1BiT0tkcmUraUdPR2ZOVVQycDRYaVVRU2JFSXcrZXZMOW1id2VJU0hMaGdYcEJBYWM5WmFiWnZYeFprMHRReWs5SDN4MnVrK1VkT0FEK2R6M3ppTysrdmtKNnhtOVdWNis0c0VCYWFYRTNHdXRYWDUzK0NkUExaOUQ1MGdJdnkyZTBudE9GcFp1RkUybVIwNjlTcmpqd3R1WVRUOGF0OHVER0hoSjBIMVJzRi9ab2pySy9mSHU0VXlQcVBpdWVOOHFjVVZJMnVIRE0xYTc0Zm1ZbmNSMktpSlZ1WXVZS1lpemdJbDN3TVJaZDZrK3J3VThndzVlT2ZaMWozMkhHRXRIM1VsLzRMMjFVanpGS3RuSEdtSEdvcEhja1VZQ1doYjk3Y3dVcTdNZW95Um5HbGRtTC83c3VZNnpjS08wdkRPS2dLcWJVbENLd3NRWCtTOGYxSnEwSXhoUnBCNzd6Ny9hVk5ZVFpMakFKVWk5TnBQYktwMmZ0U1ZaYUkrUEZQamhlZ1JqQTd2VzBnUEVXVWhNbDYxSnU5Zk5NRnROMUpEWGNWd0dxaUtNa08zSmZKSXIzTTl2ZUV4a1RrSzJYVnZoQnJWeCt2YmJ0UkpVWnZWSE9adm02c0wwbUVXVVB2RVBZVGZUazZJWGVCemN4RjAzTytqZWRYTFZhVnRhcUlSQ1VQamFseklOR1dkUkF4dW1KaHhpaitPN0I5ejhQR1hmMUh5UU03S2dQbjhtTWVQNVNFemdQMEx4WC83RWRLdGI3QitUUmYxeWV5U2hKZ3pITUdpdllxUm5Wd2FGWUJyTVNFZkg2a0tSbUJLbWJ6dS9xa0tnR09sVENlTzgwYXNaQnZ3cWJ0VklwY3BOc1B4L3ZuRDgvM2pzS25jT3dhVCs3c3ZuN1VFWkE5S1RveW12MUl2LzhLNEw5VldybWJsV1drT2EzV3YrK3BuV3F4RDlVRTVYNFJzclpzUVBILzZpMVJ2RitaTlZ4ZitLNDlRWlhhYmhIN1A3MzNKY3dKa2tRN0QvQ3c9PSIsImJhc2U2NCIpKTsKCmxvZzIgPSBNYXRoLmxvZzIgfHwgZnVuY3Rpb24obikgewogIHJldHVybiBNYXRoLmxvZyhuKSAvIE1hdGguTE4yOwp9OwoKYml0cyA9IGZ1bmN0aW9uKG4pIHsKICByZXR1cm4gKGxvZzIobikgKyAxKSB8IDA7Cn07CgpDQVRFR09SWV9CSVRTID0gYml0cyhkYXRhLmNhdGVnb3JpZXMubGVuZ3RoIC0gMSk7CgpDT01CSU5JTkdfQklUUyA9IGJpdHMoZGF0YS5jb21iaW5pbmdDbGFzc2VzLmxlbmd0aCAtIDEpOwoKU0NSSVBUX0JJVFMgPSBiaXRzKGRhdGEuc2NyaXB0cy5sZW5ndGggLSAxKTsKCkVBV19CSVRTID0gYml0cyhkYXRhLmVhdy5sZW5ndGggLSAxKTsKCk5VTUJFUl9CSVRTID0gMTA7CgpDQVRFR09SWV9TSElGVCA9IENPTUJJTklOR19CSVRTICsgU0NSSVBUX0JJVFMgKyBFQVdfQklUUyArIE5VTUJFUl9CSVRTOwoKQ09NQklOSU5HX1NISUZUID0gU0NSSVBUX0JJVFMgKyBFQVdfQklUUyArIE5VTUJFUl9CSVRTOwoKU0NSSVBUX1NISUZUID0gRUFXX0JJVFMgKyBOVU1CRVJfQklUUzsKCkVBV19TSElGVCA9IE5VTUJFUl9CSVRTOwoKQ0FURUdPUllfTUFTSyA9ICgxIDw8IENBVEVHT1JZX0JJVFMpIC0gMTsKCkNPTUJJTklOR19NQVNLID0gKDEgPDwgQ09NQklOSU5HX0JJVFMpIC0gMTsKClNDUklQVF9NQVNLID0gKDEgPDwgU0NSSVBUX0JJVFMpIC0gMTsKCkVBV19NQVNLID0gKDEgPDwgRUFXX0JJVFMpIC0gMTsKCk5VTUJFUl9NQVNLID0gKDEgPDwgTlVNQkVSX0JJVFMpIC0gMTsKCmV4cG9ydHMuZ2V0Q2F0ZWdvcnkgPSBmdW5jdGlvbihjb2RlUG9pbnQpIHsKICB2YXIgdmFsOwogIHZhbCA9IHRyaWUuZ2V0KGNvZGVQb2ludCk7CiAgcmV0dXJuIGRhdGEuY2F0ZWdvcmllc1sodmFsID4+IENBVEVHT1JZX1NISUZUKSAmIENBVEVHT1JZX01BU0tdOwp9OwoKZXhwb3J0cy5nZXRDb21iaW5pbmdDbGFzcyA9IGZ1bmN0aW9uKGNvZGVQb2ludCkgewogIHZhciB2YWw7CiAgdmFsID0gdHJpZS5nZXQoY29kZVBvaW50KTsKICByZXR1cm4gZGF0YS5jb21iaW5pbmdDbGFzc2VzWyh2YWwgPj4gQ09NQklOSU5HX1NISUZUKSAmIENPTUJJTklOR19NQVNLXTsKfTsKCmV4cG9ydHMuZ2V0U2NyaXB0ID0gZnVuY3Rpb24oY29kZVBvaW50KSB7CiAgdmFyIHZhbDsKICB2YWwgPSB0cmllLmdldChjb2RlUG9pbnQpOwogIHJldHVybiBkYXRhLnNjcmlwdHNbKHZhbCA+PiBTQ1JJUFRfU0hJRlQpICYgU0NSSVBUX01BU0tdOwp9OwoKZXhwb3J0cy5nZXRFYXN0QXNpYW5XaWR0aCA9IGZ1bmN0aW9uKGNvZGVQb2ludCkgewogIHZhciB2YWw7CiAgdmFsID0gdHJpZS5nZXQoY29kZVBvaW50KTsKICByZXR1cm4gZGF0YS5lYXdbKHZhbCA+PiBFQVdfU0hJRlQpICYgRUFXX01BU0tdOwp9OwoKZXhwb3J0cy5nZXROdW1lcmljVmFsdWUgPSBmdW5jdGlvbihjb2RlUG9pbnQpIHsKICB2YXIgZGVub21pbmF0b3IsIGV4cCwgbnVtLCBudW1lcmF0b3IsIHZhbDsKICB2YWwgPSB0cmllLmdldChjb2RlUG9pbnQpOwogIG51bSA9IHZhbCAmIE5VTUJFUl9NQVNLOwogIGlmIChudW0gPT09IDApIHsKICAgIHJldHVybiBudWxsOwogIH0gZWxzZSBpZiAobnVtIDw9IDUwKSB7CiAgICByZXR1cm4gbnVtIC0gMTsKICB9IGVsc2UgaWYgKG51bSA8IDB4MWUwKSB7CiAgICBudW1lcmF0b3IgPSAobnVtID4+IDQpIC0gMTI7CiAgICBkZW5vbWluYXRvciA9IChudW0gJiAweGYpICsgMTsKICAgIHJldHVybiBudW1lcmF0b3IgLyBkZW5vbWluYXRvcjsKICB9IGVsc2UgaWYgKG51bSA8IDB4MzAwKSB7CiAgICB2YWwgPSAobnVtID4+IDUpIC0gMTQ7CiAgICBleHAgPSAobnVtICYgMHgxZikgKyAyOwogICAgd2hpbGUgKGV4cCA+IDApIHsKICAgICAgdmFsICo9IDEwOwogICAgICBleHAtLTsKICAgIH0KICAgIHJldHVybiB2YWw7CiAgfSBlbHNlIHsKICAgIHZhbCA9IChudW0gPj4gMikgLSAweGJmOwogICAgZXhwID0gKG51bSAmIDMpICsgMTsKICAgIHdoaWxlIChleHAgPiAwKSB7CiAgICAgIHZhbCAqPSA2MDsKICAgICAgZXhwLS07CiAgICB9CiAgICByZXR1cm4gdmFsOwogIH0KfTsKCmV4cG9ydHMuaXNBbHBoYWJldGljID0gZnVuY3Rpb24oY29kZVBvaW50KSB7CiAgdmFyIHJlZjsKICByZXR1cm4gKHJlZiA9IGV4cG9ydHMuZ2V0Q2F0ZWdvcnkoY29kZVBvaW50KSkgPT09ICdMdScgfHwgcmVmID09PSAnTGwnIHx8IHJlZiA9PT0gJ0x0JyB8fCByZWYgPT09ICdMbScgfHwgcmVmID09PSAnTG8nIHx8IHJlZiA9PT0gJ05sJzsKfTsKCmV4cG9ydHMuaXNEaWdpdCA9IGZ1bmN0aW9uKGNvZGVQb2ludCkgewogIHJldHVybiBleHBvcnRzLmdldENhdGVnb3J5KGNvZGVQb2ludCkgPT09ICdOZCc7Cn07CgpleHBvcnRzLmlzUHVuY3R1YXRpb24gPSBmdW5jdGlvbihjb2RlUG9pbnQpIHsKICB2YXIgcmVmOwogIHJldHVybiAocmVmID0gZXhwb3J0cy5nZXRDYXRlZ29yeShjb2RlUG9pbnQpKSA9PT0gJ1BjJyB8fCByZWYgPT09ICdQZCcgfHwgcmVmID09PSAnUGUnIHx8IHJlZiA9PT0gJ1BmJyB8fCByZWYgPT09ICdQaScgfHwgcmVmID09PSAnUG8nIHx8IHJlZiA9PT0gJ1BzJzsKfTsKCmV4cG9ydHMuaXNMb3dlckNhc2UgPSBmdW5jdGlvbihjb2RlUG9pbnQpIHsKICByZXR1cm4gZXhwb3J0cy5nZXRDYXRlZ29yeShjb2RlUG9pbnQpID09PSAnTGwnOwp9OwoKZXhwb3J0cy5pc1VwcGVyQ2FzZSA9IGZ1bmN0aW9uKGNvZGVQb2ludCkgewogIHJldHVybiBleHBvcnRzLmdldENhdGVnb3J5KGNvZGVQb2ludCkgPT09ICdMdSc7Cn07CgpleHBvcnRzLmlzVGl0bGVDYXNlID0gZnVuY3Rpb24oY29kZVBvaW50KSB7CiAgcmV0dXJuIGV4cG9ydHMuZ2V0Q2F0ZWdvcnkoY29kZVBvaW50KSA9PT0gJ0x0JzsKfTsKCmV4cG9ydHMuaXNXaGl0ZVNwYWNlID0gZnVuY3Rpb24oY29kZVBvaW50KSB7CiAgdmFyIHJlZjsKICByZXR1cm4gKHJlZiA9IGV4cG9ydHMuZ2V0Q2F0ZWdvcnkoY29kZVBvaW50KSkgPT09ICdacycgfHwgcmVmID09PSAnWmwnIHx8IHJlZiA9PT0gJ1pwJzsKfTsKCmV4cG9ydHMuaXNCYXNlRm9ybSA9IGZ1bmN0aW9uKGNvZGVQb2ludCkgewogIHZhciByZWY7CiAgcmV0dXJuIChyZWYgPSBleHBvcnRzLmdldENhdGVnb3J5KGNvZGVQb2ludCkpID09PSAnTmQnIHx8IHJlZiA9PT0gJ05vJyB8fCByZWYgPT09ICdObCcgfHwgcmVmID09PSAnTHUnIHx8IHJlZiA9PT0gJ0xsJyB8fCByZWYgPT09ICdMdCcgfHwgcmVmID09PSAnTG0nIHx8IHJlZiA9PT0gJ0xvJyB8fCByZWYgPT09ICdNZScgfHwgcmVmID09PSAnTWMnOwp9OwoKZXhwb3J0cy5pc01hcmsgPSBmdW5jdGlvbihjb2RlUG9pbnQpIHsKICB2YXIgcmVmOwogIHJldHVybiAocmVmID0gZXhwb3J0cy5nZXRDYXRlZ29yeShjb2RlUG9pbnQpKSA9PT0gJ01uJyB8fCByZWYgPT09ICdNZScgfHwgcmVmID09PSAnTWMnOwp9OwoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18oMSkuQnVmZmVyKSkKCi8qKiovIH0pLAovKiAyNzAgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHMgPSB7ImNhdGVnb3JpZXMiOlsiQ2MiLCJacyIsIlBvIiwiU2MiLCJQcyIsIlBlIiwiU20iLCJQZCIsIk5kIiwiTHUiLCJTayIsIlBjIiwiTGwiLCJTbyIsIkxvIiwiUGkiLCJDZiIsIk5vIiwiUGYiLCJMdCIsIkxtIiwiTW4iLCJNZSIsIk1jIiwiTmwiLCJabCIsIlpwIiwiQ3MiLCJDbyJdLCJjb21iaW5pbmdDbGFzc2VzIjpbIk5vdF9SZW9yZGVyZWQiLCJBYm92ZSIsIkFib3ZlX1JpZ2h0IiwiQmVsb3ciLCJBdHRhY2hlZF9BYm92ZV9SaWdodCIsIkF0dGFjaGVkX0JlbG93IiwiT3ZlcmxheSIsIklvdGFfU3Vic2NyaXB0IiwiRG91YmxlX0JlbG93IiwiRG91YmxlX0Fib3ZlIiwiQmVsb3dfUmlnaHQiLCJBYm92ZV9MZWZ0IiwiQ0NDMTAiLCJDQ0MxMSIsIkNDQzEyIiwiQ0NDMTMiLCJDQ0MxNCIsIkNDQzE1IiwiQ0NDMTYiLCJDQ0MxNyIsIkNDQzE4IiwiQ0NDMTkiLCJDQ0MyMCIsIkNDQzIxIiwiQ0NDMjIiLCJDQ0MyMyIsIkNDQzI0IiwiQ0NDMjUiLCJDQ0MzMCIsIkNDQzMxIiwiQ0NDMzIiLCJDQ0MyNyIsIkNDQzI4IiwiQ0NDMjkiLCJDQ0MzMyIsIkNDQzM0IiwiQ0NDMzUiLCJDQ0MzNiIsIk51a3RhIiwiVmlyYW1hIiwiQ0NDODQiLCJDQ0M5MSIsIkNDQzEwMyIsIkNDQzEwNyIsIkNDQzExOCIsIkNDQzEyMiIsIkNDQzEyOSIsIkNDQzEzMCIsIkNDQzEzMiIsIkF0dGFjaGVkX0Fib3ZlIiwiQmVsb3dfTGVmdCIsIkxlZnQiLCJLYW5hX1ZvaWNpbmciLCJDQ0MyNiIsIlJpZ2h0Il0sInNjcmlwdHMiOlsiQ29tbW9uIiwiTGF0aW4iLCJCb3BvbW9mbyIsIkluaGVyaXRlZCIsIkdyZWVrIiwiQ29wdGljIiwiQ3lyaWxsaWMiLCJBcm1lbmlhbiIsIkhlYnJldyIsIkFyYWJpYyIsIlN5cmlhYyIsIlRoYWFuYSIsIk5rbyIsIlNhbWFyaXRhbiIsIk1hbmRhaWMiLCJEZXZhbmFnYXJpIiwiQmVuZ2FsaSIsIkd1cm11a2hpIiwiR3VqYXJhdGkiLCJPcml5YSIsIlRhbWlsIiwiVGVsdWd1IiwiS2FubmFkYSIsIk1hbGF5YWxhbSIsIlNpbmhhbGEiLCJUaGFpIiwiTGFvIiwiVGliZXRhbiIsIk15YW5tYXIiLCJHZW9yZ2lhbiIsIkhhbmd1bCIsIkV0aGlvcGljIiwiQ2hlcm9rZWUiLCJDYW5hZGlhbl9BYm9yaWdpbmFsIiwiT2doYW0iLCJSdW5pYyIsIlRhZ2Fsb2ciLCJIYW51bm9vIiwiQnVoaWQiLCJUYWdiYW53YSIsIktobWVyIiwiTW9uZ29saWFuIiwiTGltYnUiLCJUYWlfTGUiLCJOZXdfVGFpX0x1ZSIsIkJ1Z2luZXNlIiwiVGFpX1RoYW0iLCJCYWxpbmVzZSIsIlN1bmRhbmVzZSIsIkJhdGFrIiwiTGVwY2hhIiwiT2xfQ2hpa2kiLCJCcmFpbGxlIiwiR2xhZ29saXRpYyIsIlRpZmluYWdoIiwiSGFuIiwiSGlyYWdhbmEiLCJLYXRha2FuYSIsIllpIiwiTGlzdSIsIlZhaSIsIkJhbXVtIiwiU3lsb3RpX05hZ3JpIiwiUGhhZ3NfUGEiLCJTYXVyYXNodHJhIiwiS2F5YWhfTGkiLCJSZWphbmciLCJKYXZhbmVzZSIsIkNoYW0iLCJUYWlfVmlldCIsIk1lZXRlaV9NYXllayIsIm51bGwiLCJMaW5lYXJfQiIsIkx5Y2lhbiIsIkNhcmlhbiIsIk9sZF9JdGFsaWMiLCJHb3RoaWMiLCJPbGRfUGVybWljIiwiVWdhcml0aWMiLCJPbGRfUGVyc2lhbiIsIkRlc2VyZXQiLCJTaGF2aWFuIiwiT3NtYW55YSIsIkVsYmFzYW4iLCJDYXVjYXNpYW5fQWxiYW5pYW4iLCJMaW5lYXJfQSIsIkN5cHJpb3QiLCJJbXBlcmlhbF9BcmFtYWljIiwiUGFsbXlyZW5lIiwiTmFiYXRhZWFuIiwiSGF0cmFuIiwiUGhvZW5pY2lhbiIsIkx5ZGlhbiIsIk1lcm9pdGljX0hpZXJvZ2x5cGhzIiwiTWVyb2l0aWNfQ3Vyc2l2ZSIsIktoYXJvc2h0aGkiLCJPbGRfU291dGhfQXJhYmlhbiIsIk9sZF9Ob3J0aF9BcmFiaWFuIiwiTWFuaWNoYWVhbiIsIkF2ZXN0YW4iLCJJbnNjcmlwdGlvbmFsX1BhcnRoaWFuIiwiSW5zY3JpcHRpb25hbF9QYWhsYXZpIiwiUHNhbHRlcl9QYWhsYXZpIiwiT2xkX1R1cmtpYyIsIk9sZF9IdW5nYXJpYW4iLCJCcmFobWkiLCJLYWl0aGkiLCJTb3JhX1NvbXBlbmciLCJDaGFrbWEiLCJNYWhhamFuaSIsIlNoYXJhZGEiLCJLaG9qa2kiLCJNdWx0YW5pIiwiS2h1ZGF3YWRpIiwiR3JhbnRoYSIsIlRpcmh1dGEiLCJTaWRkaGFtIiwiTW9kaSIsIlRha3JpIiwiQWhvbSIsIldhcmFuZ19DaXRpIiwiUGF1X0Npbl9IYXUiLCJDdW5laWZvcm0iLCJFZ3lwdGlhbl9IaWVyb2dseXBocyIsIkFuYXRvbGlhbl9IaWVyb2dseXBocyIsIk1ybyIsIkJhc3NhX1ZhaCIsIlBhaGF3aF9IbW9uZyIsIk1pYW8iLCJEdXBsb3lhbiIsIlNpZ25Xcml0aW5nIiwiTWVuZGVfS2lrYWt1aSJdLCJlYXciOlsiTiIsIk5hIiwiQSIsIlciLCJIIiwiRiJdfQoKLyoqKi8gfSksCi8qIDI3MSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKZnVuY3Rpb24gX2ludGVyb3BEZWZhdWx0IChleCkgeyByZXR1cm4gKGV4ICYmICh0eXBlb2YgZXggPT09ICdvYmplY3QnKSAmJiAnZGVmYXVsdCcgaW4gZXgpID8gZXhbJ2RlZmF1bHQnXSA6IGV4OyB9Cgp2YXIgX3NsaWNlZFRvQXJyYXkgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyNzIpKTsKdmFyIF9nZXRJdGVyYXRvciA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDYwKSk7CnZhciBfZGVmaW5lUHJvcGVydHkgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyNzYpKTsKdmFyIF9yZWdlbmVyYXRvclJ1bnRpbWUgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygyNzcpKTsKdmFyIF9TeW1ib2wkaXRlcmF0b3IgPSBfaW50ZXJvcERlZmF1bHQoX193ZWJwYWNrX3JlcXVpcmVfXygxMDMpKTsKdmFyIF9jbGFzc0NhbGxDaGVjayA9IF9pbnRlcm9wRGVmYXVsdChfX3dlYnBhY2tfcmVxdWlyZV9fKDEwNikpOwp2YXIgX2NyZWF0ZUNsYXNzID0gX2ludGVyb3BEZWZhdWx0KF9fd2VicGFja19yZXF1aXJlX18oMTA3KSk7Cgp2YXIgSU5JVElBTF9TVEFURSA9IDE7CnZhciBGQUlMX1NUQVRFID0gMDsKCi8qKgogKiBBIFN0YXRlTWFjaGluZSByZXByZXNlbnRzIGEgZGV0ZXJtaW5pc3RpYyBmaW5pdGUgYXV0b21hdG9uLgogKiBJdCBjYW4gcGVyZm9ybSBtYXRjaGVzIG92ZXIgYSBzZXF1ZW5jZSBvZiB2YWx1ZXMsIHNpbWlsYXIgdG8gYSByZWd1bGFyIGV4cHJlc3Npb24uCiAqLwoKdmFyIFN0YXRlTWFjaGluZSA9IGZ1bmN0aW9uICgpIHsKICBmdW5jdGlvbiBTdGF0ZU1hY2hpbmUoZGZhKSB7CiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgU3RhdGVNYWNoaW5lKTsKCiAgICB0aGlzLnN0YXRlVGFibGUgPSBkZmEuc3RhdGVUYWJsZTsKICAgIHRoaXMuYWNjZXB0aW5nID0gZGZhLmFjY2VwdGluZzsKICAgIHRoaXMudGFncyA9IGRmYS50YWdzOwogIH0KCiAgLyoqCiAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvYmplY3QgdGhhdCB5aWVsZHMgcGF0dGVybiBtYXRjaGVzIG92ZXIgdGhlIGlucHV0IHNlcXVlbmNlLgogICAqIE1hdGNoZXMgYXJlIG9mIHRoZSBmb3JtIFtzdGFydEluZGV4LCBlbmRJbmRleCwgdGFnc10uCiAgICovCgoKICBfY3JlYXRlQ2xhc3MoU3RhdGVNYWNoaW5lLCBbewogICAga2V5OiAnbWF0Y2gnLAogICAgdmFsdWU6IGZ1bmN0aW9uIG1hdGNoKHN0cikgewogICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgIHJldHVybiBfZGVmaW5lUHJvcGVydHkoe30sIF9TeW1ib2wkaXRlcmF0b3IsIF9yZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciBzdGF0ZSwgc3RhcnRSdW4sIGxhc3RBY2NlcHRpbmcsIGxhc3RTdGF0ZSwgcCwgYzsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgc3RhdGUgPSBJTklUSUFMX1NUQVRFOwogICAgICAgICAgICAgICAgc3RhcnRSdW4gPSBudWxsOwogICAgICAgICAgICAgICAgbGFzdEFjY2VwdGluZyA9IG51bGw7CiAgICAgICAgICAgICAgICBsYXN0U3RhdGUgPSBudWxsOwogICAgICAgICAgICAgICAgcCA9IDA7CgogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIGlmICghKHAgPCBzdHIubGVuZ3RoKSkgewogICAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjE7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGMgPSBzdHJbcF07CgoKICAgICAgICAgICAgICAgIGxhc3RTdGF0ZSA9IHN0YXRlOwogICAgICAgICAgICAgICAgc3RhdGUgPSBzZWxmLnN0YXRlVGFibGVbc3RhdGVdW2NdOwoKICAgICAgICAgICAgICAgIGlmICghKHN0YXRlID09PSBGQUlMX1NUQVRFKSkgewogICAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTU7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICghKHN0YXJ0UnVuICE9IG51bGwgJiYgbGFzdEFjY2VwdGluZyAhPSBudWxsICYmIGxhc3RBY2NlcHRpbmcgPj0gc3RhcnRSdW4pKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMzsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEzOwogICAgICAgICAgICAgICAgcmV0dXJuIFtzdGFydFJ1biwgbGFzdEFjY2VwdGluZywgc2VsZi50YWdzW2xhc3RTdGF0ZV1dOwoKICAgICAgICAgICAgICBjYXNlIDEzOgoKICAgICAgICAgICAgICAgIC8vIHJlc2V0IHRoZSBzdGF0ZSBhcyBpZiB3ZSBzdGFydGVkIG92ZXIgZnJvbSB0aGUgaW5pdGlhbCBzdGF0ZQogICAgICAgICAgICAgICAgc3RhdGUgPSBzZWxmLnN0YXRlVGFibGVbSU5JVElBTF9TVEFURV1bY107CiAgICAgICAgICAgICAgICBzdGFydFJ1biA9IG51bGw7CgogICAgICAgICAgICAgIGNhc2UgMTU6CgogICAgICAgICAgICAgICAgLy8gc3RhcnQgYSBydW4gaWYgbm90IGluIHRoZSBmYWlsdXJlIHN0YXRlCiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgIT09IEZBSUxfU1RBVEUgJiYgc3RhcnRSdW4gPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICBzdGFydFJ1biA9IHA7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gaWYgYWNjZXB0aW5nLCBtYXJrIHRoZSBwb3RlbnRpYWwgbWF0Y2ggZW5kCiAgICAgICAgICAgICAgICBpZiAoc2VsZi5hY2NlcHRpbmdbc3RhdGVdKSB7CiAgICAgICAgICAgICAgICAgIGxhc3RBY2NlcHRpbmcgPSBwOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIHJlc2V0IHRoZSBzdGF0ZSB0byB0aGUgaW5pdGlhbCBzdGF0ZSBpZiB3ZSBnZXQgaW50byB0aGUgZmFpbHVyZSBzdGF0ZQogICAgICAgICAgICAgICAgaWYgKHN0YXRlID09PSBGQUlMX1NUQVRFKSB7CiAgICAgICAgICAgICAgICAgIHN0YXRlID0gSU5JVElBTF9TVEFURTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgY2FzZSAxODoKICAgICAgICAgICAgICAgIHArKzsKICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA1OwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIGNhc2UgMjE6CiAgICAgICAgICAgICAgICBpZiAoIShzdGFydFJ1biAhPSBudWxsICYmIGxhc3RBY2NlcHRpbmcgIT0gbnVsbCAmJiBsYXN0QWNjZXB0aW5nID49IHN0YXJ0UnVuKSkgewogICAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyNDsKICAgICAgICAgICAgICAgIHJldHVybiBbc3RhcnRSdW4sIGxhc3RBY2NlcHRpbmcsIHNlbGYudGFnc1tzdGF0ZV1dOwoKICAgICAgICAgICAgICBjYXNlIDI0OgogICAgICAgICAgICAgIGNhc2UgJ2VuZCc6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSwgdGhpcyk7CiAgICAgIH0pKTsKICAgIH0KCiAgICAvKioKICAgICAqIEZvciBlYWNoIG1hdGNoIG92ZXIgdGhlIGlucHV0IHNlcXVlbmNlLCBhY3Rpb24gZnVuY3Rpb25zIG1hdGNoaW5nCiAgICAgKiB0aGUgdGFnIGRlZmluaXRpb25zIGluIHRoZSBpbnB1dCBwYXR0ZXJuIGFyZSBjYWxsZWQgd2l0aCB0aGUgc3RhcnRJbmRleCwKICAgICAqIGVuZEluZGV4LCBhbmQgc3ViLW1hdGNoIHNlcXVlbmNlLgogICAgICovCgogIH0sIHsKICAgIGtleTogJ2FwcGx5JywKICAgIHZhbHVlOiBmdW5jdGlvbiBhcHBseShzdHIsIGFjdGlvbnMpIHsKICAgICAgdmFyIF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24gPSB0cnVlOwogICAgICB2YXIgX2RpZEl0ZXJhdG9yRXJyb3IgPSBmYWxzZTsKICAgICAgdmFyIF9pdGVyYXRvckVycm9yID0gdW5kZWZpbmVkOwoKICAgICAgdHJ5IHsKICAgICAgICBmb3IgKHZhciBfaXRlcmF0b3IgPSBfZ2V0SXRlcmF0b3IodGhpcy5tYXRjaChzdHIpKSwgX3N0ZXA7ICEoX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiA9IChfc3RlcCA9IF9pdGVyYXRvci5uZXh0KCkpLmRvbmUpOyBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uID0gdHJ1ZSkgewogICAgICAgICAgdmFyIF9zdGVwJHZhbHVlID0gX3NsaWNlZFRvQXJyYXkoX3N0ZXAudmFsdWUsIDMpOwoKICAgICAgICAgIHZhciBzdGFydCA9IF9zdGVwJHZhbHVlWzBdOwogICAgICAgICAgdmFyIGVuZCA9IF9zdGVwJHZhbHVlWzFdOwogICAgICAgICAgdmFyIHRhZ3MgPSBfc3RlcCR2YWx1ZVsyXTsKICAgICAgICAgIHZhciBfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uMiA9IHRydWU7CiAgICAgICAgICB2YXIgX2RpZEl0ZXJhdG9yRXJyb3IyID0gZmFsc2U7CiAgICAgICAgICB2YXIgX2l0ZXJhdG9yRXJyb3IyID0gdW5kZWZpbmVkOwoKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAodmFyIF9pdGVyYXRvcjIgPSBfZ2V0SXRlcmF0b3IodGFncyksIF9zdGVwMjsgIShfaXRlcmF0b3JOb3JtYWxDb21wbGV0aW9uMiA9IChfc3RlcDIgPSBfaXRlcmF0b3IyLm5leHQoKSkuZG9uZSk7IF9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yID0gdHJ1ZSkgewogICAgICAgICAgICAgIHZhciB0YWcgPSBfc3RlcDIudmFsdWU7CgogICAgICAgICAgICAgIGlmICh0eXBlb2YgYWN0aW9uc1t0YWddID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgICAgICBhY3Rpb25zW3RhZ10oc3RhcnQsIGVuZCwgc3RyLnNsaWNlKHN0YXJ0LCBlbmQgKyAxKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgX2RpZEl0ZXJhdG9yRXJyb3IyID0gdHJ1ZTsKICAgICAgICAgICAgX2l0ZXJhdG9yRXJyb3IyID0gZXJyOwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBpZiAoIV9pdGVyYXRvck5vcm1hbENvbXBsZXRpb24yICYmIF9pdGVyYXRvcjIucmV0dXJuKSB7CiAgICAgICAgICAgICAgICBfaXRlcmF0b3IyLnJldHVybigpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICBpZiAoX2RpZEl0ZXJhdG9yRXJyb3IyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBfaXRlcmF0b3JFcnJvcjI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBfZGlkSXRlcmF0b3JFcnJvciA9IHRydWU7CiAgICAgICAgX2l0ZXJhdG9yRXJyb3IgPSBlcnI7CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmICghX2l0ZXJhdG9yTm9ybWFsQ29tcGxldGlvbiAmJiBfaXRlcmF0b3IucmV0dXJuKSB7CiAgICAgICAgICAgIF9pdGVyYXRvci5yZXR1cm4oKTsKICAgICAgICAgIH0KICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKF9kaWRJdGVyYXRvckVycm9yKSB7CiAgICAgICAgICAgIHRocm93IF9pdGVyYXRvckVycm9yOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogIH1dKTsKCiAgcmV0dXJuIFN0YXRlTWFjaGluZTsKfSgpOwoKbW9kdWxlLmV4cG9ydHMgPSBTdGF0ZU1hY2hpbmU7CgoKLyoqKi8gfSksCi8qIDI3MiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgoidXNlIHN0cmljdCI7CgoKZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsKCnZhciBfaXNJdGVyYWJsZTIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3Myk7Cgp2YXIgX2lzSXRlcmFibGUzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfaXNJdGVyYWJsZTIpOwoKdmFyIF9nZXRJdGVyYXRvcjIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDYwKTsKCnZhciBfZ2V0SXRlcmF0b3IzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZ2V0SXRlcmF0b3IyKTsKCmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9CgpleHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAoKSB7CiAgZnVuY3Rpb24gc2xpY2VJdGVyYXRvcihhcnIsIGkpIHsKICAgIHZhciBfYXJyID0gW107CiAgICB2YXIgX24gPSB0cnVlOwogICAgdmFyIF9kID0gZmFsc2U7CiAgICB2YXIgX2UgPSB1bmRlZmluZWQ7CgogICAgdHJ5IHsKICAgICAgZm9yICh2YXIgX2kgPSAoMCwgX2dldEl0ZXJhdG9yMy5kZWZhdWx0KShhcnIpLCBfczsgIShfbiA9IChfcyA9IF9pLm5leHQoKSkuZG9uZSk7IF9uID0gdHJ1ZSkgewogICAgICAgIF9hcnIucHVzaChfcy52YWx1ZSk7CgogICAgICAgIGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhazsKICAgICAgfQogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIF9kID0gdHJ1ZTsKICAgICAgX2UgPSBlcnI7CiAgICB9IGZpbmFsbHkgewogICAgICB0cnkgewogICAgICAgIGlmICghX24gJiYgX2lbInJldHVybiJdKSBfaVsicmV0dXJuIl0oKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBpZiAoX2QpIHRocm93IF9lOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIF9hcnI7CiAgfQoKICByZXR1cm4gZnVuY3Rpb24gKGFyciwgaSkgewogICAgaWYgKEFycmF5LmlzQXJyYXkoYXJyKSkgewogICAgICByZXR1cm4gYXJyOwogICAgfSBlbHNlIGlmICgoMCwgX2lzSXRlcmFibGUzLmRlZmF1bHQpKE9iamVjdChhcnIpKSkgewogICAgICByZXR1cm4gc2xpY2VJdGVyYXRvcihhcnIsIGkpOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpOwogICAgfQogIH07Cn0oKTsKCi8qKiovIH0pLAovKiAyNzMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKbW9kdWxlLmV4cG9ydHMgPSB7ICJkZWZhdWx0IjogX193ZWJwYWNrX3JlcXVpcmVfXygyNzQpLCBfX2VzTW9kdWxlOiB0cnVlIH07CgovKioqLyB9KSwKLyogMjc0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCl9fd2VicGFja19yZXF1aXJlX18oMjgpOwpfX3dlYnBhY2tfcmVxdWlyZV9fKDI0KTsKbW9kdWxlLmV4cG9ydHMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI3NSk7CgoKLyoqKi8gfSksCi8qIDI3NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgY2xhc3NvZiA9IF9fd2VicGFja19yZXF1aXJlX18oNjgpOwp2YXIgSVRFUkFUT1IgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQpKCdpdGVyYXRvcicpOwp2YXIgSXRlcmF0b3JzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyMyk7Cm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyKS5pc0l0ZXJhYmxlID0gZnVuY3Rpb24gKGl0KSB7CiAgdmFyIE8gPSBPYmplY3QoaXQpOwogIHJldHVybiBPW0lURVJBVE9SXSAhPT0gdW5kZWZpbmVkCiAgICB8fCAnQEBpdGVyYXRvcicgaW4gTwogICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXByb3RvdHlwZS1idWlsdGlucwogICAgfHwgSXRlcmF0b3JzLmhhc093blByb3BlcnR5KGNsYXNzb2YoTykpOwp9OwoKCi8qKiovIH0pLAovKiAyNzYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Cgp2YXIgX2RlZmluZVByb3BlcnR5ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg3NCk7Cgp2YXIgX2RlZmluZVByb3BlcnR5MiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQoX2RlZmluZVByb3BlcnR5KTsKCmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQob2JqKSB7IHJldHVybiBvYmogJiYgb2JqLl9fZXNNb2R1bGUgPyBvYmogOiB7IGRlZmF1bHQ6IG9iaiB9OyB9CgpleHBvcnRzLmRlZmF1bHQgPSBmdW5jdGlvbiAob2JqLCBrZXksIHZhbHVlKSB7CiAgaWYgKGtleSBpbiBvYmopIHsKICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKG9iaiwga2V5LCB7CiAgICAgIHZhbHVlOiB2YWx1ZSwKICAgICAgZW51bWVyYWJsZTogdHJ1ZSwKICAgICAgY29uZmlndXJhYmxlOiB0cnVlLAogICAgICB3cml0YWJsZTogdHJ1ZQogICAgfSk7CiAgfSBlbHNlIHsKICAgIG9ialtrZXldID0gdmFsdWU7CiAgfQoKICByZXR1cm4gb2JqOwp9OwoKLyoqKi8gfSksCi8qIDI3NyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMjc4KTsKCgovKioqLyB9KSwKLyogMjc4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8qKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovCgovLyBUaGlzIG1ldGhvZCBvZiBvYnRhaW5pbmcgYSByZWZlcmVuY2UgdG8gdGhlIGdsb2JhbCBvYmplY3QgbmVlZHMgdG8gYmUKLy8ga2VwdCBpZGVudGljYWwgdG8gdGhlIHdheSBpdCBpcyBvYnRhaW5lZCBpbiBydW50aW1lLmpzCnZhciBnID0gKGZ1bmN0aW9uKCkgeyByZXR1cm4gdGhpcyB9KSgpIHx8IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCk7CgovLyBVc2UgYGdldE93blByb3BlcnR5TmFtZXNgIGJlY2F1c2Ugbm90IGFsbCBicm93c2VycyBzdXBwb3J0IGNhbGxpbmcKLy8gYGhhc093blByb3BlcnR5YCBvbiB0aGUgZ2xvYmFsIGBzZWxmYCBvYmplY3QgaW4gYSB3b3JrZXIuIFNlZSAjMTgzLgp2YXIgaGFkUnVudGltZSA9IGcucmVnZW5lcmF0b3JSdW50aW1lICYmCiAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZykuaW5kZXhPZigicmVnZW5lcmF0b3JSdW50aW1lIikgPj0gMDsKCi8vIFNhdmUgdGhlIG9sZCByZWdlbmVyYXRvclJ1bnRpbWUgaW4gY2FzZSBpdCBuZWVkcyB0byBiZSByZXN0b3JlZCBsYXRlci4KdmFyIG9sZFJ1bnRpbWUgPSBoYWRSdW50aW1lICYmIGcucmVnZW5lcmF0b3JSdW50aW1lOwoKLy8gRm9yY2UgcmVldmFsdXRhdGlvbiBvZiBydW50aW1lLmpzLgpnLnJlZ2VuZXJhdG9yUnVudGltZSA9IHVuZGVmaW5lZDsKCm1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXygyNzkpOwoKaWYgKGhhZFJ1bnRpbWUpIHsKICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBydW50aW1lLgogIGcucmVnZW5lcmF0b3JSdW50aW1lID0gb2xkUnVudGltZTsKfSBlbHNlIHsKICAvLyBSZW1vdmUgdGhlIGdsb2JhbCBwcm9wZXJ0eSBhZGRlZCBieSBydW50aW1lLmpzLgogIHRyeSB7CiAgICBkZWxldGUgZy5yZWdlbmVyYXRvclJ1bnRpbWU7CiAgfSBjYXRjaChlKSB7CiAgICBnLnJlZ2VuZXJhdG9yUnVudGltZSA9IHVuZGVmaW5lZDsKICB9Cn0KCgovKioqLyB9KSwKLyogMjc5ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCi8qKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtcHJlc2VudCwgRmFjZWJvb2ssIEluYy4KICoKICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlCiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS4KICovCgohKGZ1bmN0aW9uKGdsb2JhbCkgewogICJ1c2Ugc3RyaWN0IjsKCiAgdmFyIE9wID0gT2JqZWN0LnByb3RvdHlwZTsKICB2YXIgaGFzT3duID0gT3AuaGFzT3duUHJvcGVydHk7CiAgdmFyIHVuZGVmaW5lZDsgLy8gTW9yZSBjb21wcmVzc2libGUgdGhhbiB2b2lkIDAuCiAgdmFyICRTeW1ib2wgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iID8gU3ltYm9sIDoge307CiAgdmFyIGl0ZXJhdG9yU3ltYm9sID0gJFN5bWJvbC5pdGVyYXRvciB8fCAiQEBpdGVyYXRvciI7CiAgdmFyIGFzeW5jSXRlcmF0b3JTeW1ib2wgPSAkU3ltYm9sLmFzeW5jSXRlcmF0b3IgfHwgIkBAYXN5bmNJdGVyYXRvciI7CiAgdmFyIHRvU3RyaW5nVGFnU3ltYm9sID0gJFN5bWJvbC50b1N0cmluZ1RhZyB8fCAiQEB0b1N0cmluZ1RhZyI7CgogIHZhciBpbk1vZHVsZSA9IHR5cGVvZiBtb2R1bGUgPT09ICJvYmplY3QiOwogIHZhciBydW50aW1lID0gZ2xvYmFsLnJlZ2VuZXJhdG9yUnVudGltZTsKICBpZiAocnVudGltZSkgewogICAgaWYgKGluTW9kdWxlKSB7CiAgICAgIC8vIElmIHJlZ2VuZXJhdG9yUnVudGltZSBpcyBkZWZpbmVkIGdsb2JhbGx5IGFuZCB3ZSdyZSBpbiBhIG1vZHVsZSwKICAgICAgLy8gbWFrZSB0aGUgZXhwb3J0cyBvYmplY3QgaWRlbnRpY2FsIHRvIHJlZ2VuZXJhdG9yUnVudGltZS4KICAgICAgbW9kdWxlLmV4cG9ydHMgPSBydW50aW1lOwogICAgfQogICAgLy8gRG9uJ3QgYm90aGVyIGV2YWx1YXRpbmcgdGhlIHJlc3Qgb2YgdGhpcyBmaWxlIGlmIHRoZSBydW50aW1lIHdhcwogICAgLy8gYWxyZWFkeSBkZWZpbmVkIGdsb2JhbGx5LgogICAgcmV0dXJuOwogIH0KCiAgLy8gRGVmaW5lIHRoZSBydW50aW1lIGdsb2JhbGx5IChhcyBleHBlY3RlZCBieSBnZW5lcmF0ZWQgY29kZSkgYXMgZWl0aGVyCiAgLy8gbW9kdWxlLmV4cG9ydHMgKGlmIHdlJ3JlIGluIGEgbW9kdWxlKSBvciBhIG5ldywgZW1wdHkgb2JqZWN0LgogIHJ1bnRpbWUgPSBnbG9iYWwucmVnZW5lcmF0b3JSdW50aW1lID0gaW5Nb2R1bGUgPyBtb2R1bGUuZXhwb3J0cyA6IHt9OwoKICBmdW5jdGlvbiB3cmFwKGlubmVyRm4sIG91dGVyRm4sIHNlbGYsIHRyeUxvY3NMaXN0KSB7CiAgICAvLyBJZiBvdXRlckZuIHByb3ZpZGVkIGFuZCBvdXRlckZuLnByb3RvdHlwZSBpcyBhIEdlbmVyYXRvciwgdGhlbiBvdXRlckZuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvci4KICAgIHZhciBwcm90b0dlbmVyYXRvciA9IG91dGVyRm4gJiYgb3V0ZXJGbi5wcm90b3R5cGUgaW5zdGFuY2VvZiBHZW5lcmF0b3IgPyBvdXRlckZuIDogR2VuZXJhdG9yOwogICAgdmFyIGdlbmVyYXRvciA9IE9iamVjdC5jcmVhdGUocHJvdG9HZW5lcmF0b3IucHJvdG90eXBlKTsKICAgIHZhciBjb250ZXh0ID0gbmV3IENvbnRleHQodHJ5TG9jc0xpc3QgfHwgW10pOwoKICAgIC8vIFRoZSAuX2ludm9rZSBtZXRob2QgdW5pZmllcyB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSAubmV4dCwKICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gbWV0aG9kcy4KICAgIGdlbmVyYXRvci5faW52b2tlID0gbWFrZUludm9rZU1ldGhvZChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTsKCiAgICByZXR1cm4gZ2VuZXJhdG9yOwogIH0KICBydW50aW1lLndyYXAgPSB3cmFwOwoKICAvLyBUcnkvY2F0Y2ggaGVscGVyIHRvIG1pbmltaXplIGRlb3B0aW1pemF0aW9ucy4gUmV0dXJucyBhIGNvbXBsZXRpb24KICAvLyByZWNvcmQgbGlrZSBjb250ZXh0LnRyeUVudHJpZXNbaV0uY29tcGxldGlvbi4gVGhpcyBpbnRlcmZhY2UgY291bGQKICAvLyBoYXZlIGJlZW4gKGFuZCB3YXMgcHJldmlvdXNseSkgZGVzaWduZWQgdG8gdGFrZSBhIGNsb3N1cmUgdG8gYmUKICAvLyBpbnZva2VkIHdpdGhvdXQgYXJndW1lbnRzLCBidXQgaW4gYWxsIHRoZSBjYXNlcyB3ZSBjYXJlIGFib3V0IHdlCiAgLy8gYWxyZWFkeSBoYXZlIGFuIGV4aXN0aW5nIG1ldGhvZCB3ZSB3YW50IHRvIGNhbGwsIHNvIHRoZXJlJ3Mgbm8gbmVlZAogIC8vIHRvIGNyZWF0ZSBhIG5ldyBmdW5jdGlvbiBvYmplY3QuIFdlIGNhbiBldmVuIGdldCBhd2F5IHdpdGggYXNzdW1pbmcKICAvLyB0aGUgbWV0aG9kIHRha2VzIGV4YWN0bHkgb25lIGFyZ3VtZW50LCBzaW5jZSB0aGF0IGhhcHBlbnMgdG8gYmUgdHJ1ZQogIC8vIGluIGV2ZXJ5IGNhc2UsIHNvIHdlIGRvbid0IGhhdmUgdG8gdG91Y2ggdGhlIGFyZ3VtZW50cyBvYmplY3QuIFRoZQogIC8vIG9ubHkgYWRkaXRpb25hbCBhbGxvY2F0aW9uIHJlcXVpcmVkIGlzIHRoZSBjb21wbGV0aW9uIHJlY29yZCwgd2hpY2gKICAvLyBoYXMgYSBzdGFibGUgc2hhcGUgYW5kIHNvIGhvcGVmdWxseSBzaG91bGQgYmUgY2hlYXAgdG8gYWxsb2NhdGUuCiAgZnVuY3Rpb24gdHJ5Q2F0Y2goZm4sIG9iaiwgYXJnKSB7CiAgICB0cnkgewogICAgICByZXR1cm4geyB0eXBlOiAibm9ybWFsIiwgYXJnOiBmbi5jYWxsKG9iaiwgYXJnKSB9OwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHJldHVybiB7IHR5cGU6ICJ0aHJvdyIsIGFyZzogZXJyIH07CiAgICB9CiAgfQoKICB2YXIgR2VuU3RhdGVTdXNwZW5kZWRTdGFydCA9ICJzdXNwZW5kZWRTdGFydCI7CiAgdmFyIEdlblN0YXRlU3VzcGVuZGVkWWllbGQgPSAic3VzcGVuZGVkWWllbGQiOwogIHZhciBHZW5TdGF0ZUV4ZWN1dGluZyA9ICJleGVjdXRpbmciOwogIHZhciBHZW5TdGF0ZUNvbXBsZXRlZCA9ICJjb21wbGV0ZWQiOwoKICAvLyBSZXR1cm5pbmcgdGhpcyBvYmplY3QgZnJvbSB0aGUgaW5uZXJGbiBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzCiAgLy8gYnJlYWtpbmcgb3V0IG9mIHRoZSBkaXNwYXRjaCBzd2l0Y2ggc3RhdGVtZW50LgogIHZhciBDb250aW51ZVNlbnRpbmVsID0ge307CgogIC8vIER1bW15IGNvbnN0cnVjdG9yIGZ1bmN0aW9ucyB0aGF0IHdlIHVzZSBhcyB0aGUgLmNvbnN0cnVjdG9yIGFuZAogIC8vIC5jb25zdHJ1Y3Rvci5wcm90b3R5cGUgcHJvcGVydGllcyBmb3IgZnVuY3Rpb25zIHRoYXQgcmV0dXJuIEdlbmVyYXRvcgogIC8vIG9iamVjdHMuIEZvciBmdWxsIHNwZWMgY29tcGxpYW5jZSwgeW91IG1heSB3aXNoIHRvIGNvbmZpZ3VyZSB5b3VyCiAgLy8gbWluaWZpZXIgbm90IHRvIG1hbmdsZSB0aGUgbmFtZXMgb2YgdGhlc2UgdHdvIGZ1bmN0aW9ucy4KICBmdW5jdGlvbiBHZW5lcmF0b3IoKSB7fQogIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uKCkge30KICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSgpIHt9CgogIC8vIFRoaXMgaXMgYSBwb2x5ZmlsbCBmb3IgJUl0ZXJhdG9yUHJvdG90eXBlJSBmb3IgZW52aXJvbm1lbnRzIHRoYXQKICAvLyBkb24ndCBuYXRpdmVseSBzdXBwb3J0IGl0LgogIHZhciBJdGVyYXRvclByb3RvdHlwZSA9IHt9OwogIEl0ZXJhdG9yUHJvdG90eXBlW2l0ZXJhdG9yU3ltYm9sXSA9IGZ1bmN0aW9uICgpIHsKICAgIHJldHVybiB0aGlzOwogIH07CgogIHZhciBnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKICB2YXIgTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUgPSBnZXRQcm90byAmJiBnZXRQcm90byhnZXRQcm90byh2YWx1ZXMoW10pKSk7CiAgaWYgKE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICYmCiAgICAgIE5hdGl2ZUl0ZXJhdG9yUHJvdG90eXBlICE9PSBPcCAmJgogICAgICBoYXNPd24uY2FsbChOYXRpdmVJdGVyYXRvclByb3RvdHlwZSwgaXRlcmF0b3JTeW1ib2wpKSB7CiAgICAvLyBUaGlzIGVudmlyb25tZW50IGhhcyBhIG5hdGl2ZSAlSXRlcmF0b3JQcm90b3R5cGUlOyB1c2UgaXQgaW5zdGVhZAogICAgLy8gb2YgdGhlIHBvbHlmaWxsLgogICAgSXRlcmF0b3JQcm90b3R5cGUgPSBOYXRpdmVJdGVyYXRvclByb3RvdHlwZTsKICB9CgogIHZhciBHcCA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZSA9CiAgICBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShJdGVyYXRvclByb3RvdHlwZSk7CiAgR2VuZXJhdG9yRnVuY3Rpb24ucHJvdG90eXBlID0gR3AuY29uc3RydWN0b3IgPSBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZTsKICBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IEdlbmVyYXRvckZ1bmN0aW9uOwogIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlW3RvU3RyaW5nVGFnU3ltYm9sXSA9CiAgICBHZW5lcmF0b3JGdW5jdGlvbi5kaXNwbGF5TmFtZSA9ICJHZW5lcmF0b3JGdW5jdGlvbiI7CgogIC8vIEhlbHBlciBmb3IgZGVmaW5pbmcgdGhlIC5uZXh0LCAudGhyb3csIGFuZCAucmV0dXJuIG1ldGhvZHMgb2YgdGhlCiAgLy8gSXRlcmF0b3IgaW50ZXJmYWNlIGluIHRlcm1zIG9mIGEgc2luZ2xlIC5faW52b2tlIG1ldGhvZC4KICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHMocHJvdG90eXBlKSB7CiAgICBbIm5leHQiLCAidGhyb3ciLCAicmV0dXJuIl0uZm9yRWFjaChmdW5jdGlvbihtZXRob2QpIHsKICAgICAgcHJvdG90eXBlW21ldGhvZF0gPSBmdW5jdGlvbihhcmcpIHsKICAgICAgICByZXR1cm4gdGhpcy5faW52b2tlKG1ldGhvZCwgYXJnKTsKICAgICAgfTsKICAgIH0pOwogIH0KCiAgcnVudGltZS5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24oZ2VuRnVuKSB7CiAgICB2YXIgY3RvciA9IHR5cGVvZiBnZW5GdW4gPT09ICJmdW5jdGlvbiIgJiYgZ2VuRnVuLmNvbnN0cnVjdG9yOwogICAgcmV0dXJuIGN0b3IKICAgICAgPyBjdG9yID09PSBHZW5lcmF0b3JGdW5jdGlvbiB8fAogICAgICAgIC8vIEZvciB0aGUgbmF0aXZlIEdlbmVyYXRvckZ1bmN0aW9uIGNvbnN0cnVjdG9yLCB0aGUgYmVzdCB3ZSBjYW4KICAgICAgICAvLyBkbyBpcyB0byBjaGVjayBpdHMgLm5hbWUgcHJvcGVydHkuCiAgICAgICAgKGN0b3IuZGlzcGxheU5hbWUgfHwgY3Rvci5uYW1lKSA9PT0gIkdlbmVyYXRvckZ1bmN0aW9uIgogICAgICA6IGZhbHNlOwogIH07CgogIHJ1bnRpbWUubWFyayA9IGZ1bmN0aW9uKGdlbkZ1bikgewogICAgaWYgKE9iamVjdC5zZXRQcm90b3R5cGVPZikgewogICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoZ2VuRnVuLCBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSk7CiAgICB9IGVsc2UgewogICAgICBnZW5GdW4uX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGU7CiAgICAgIGlmICghKHRvU3RyaW5nVGFnU3ltYm9sIGluIGdlbkZ1bikpIHsKICAgICAgICBnZW5GdW5bdG9TdHJpbmdUYWdTeW1ib2xdID0gIkdlbmVyYXRvckZ1bmN0aW9uIjsKICAgICAgfQogICAgfQogICAgZ2VuRnVuLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoR3ApOwogICAgcmV0dXJuIGdlbkZ1bjsKICB9OwoKICAvLyBXaXRoaW4gdGhlIGJvZHkgb2YgYW55IGFzeW5jIGZ1bmN0aW9uLCBgYXdhaXQgeGAgaXMgdHJhbnNmb3JtZWQgdG8KICAvLyBgeWllbGQgcmVnZW5lcmF0b3JSdW50aW1lLmF3cmFwKHgpYCwgc28gdGhhdCB0aGUgcnVudGltZSBjYW4gdGVzdAogIC8vIGBoYXNPd24uY2FsbCh2YWx1ZSwgIl9fYXdhaXQiKWAgdG8gZGV0ZXJtaW5lIGlmIHRoZSB5aWVsZGVkIHZhbHVlIGlzCiAgLy8gbWVhbnQgdG8gYmUgYXdhaXRlZC4KICBydW50aW1lLmF3cmFwID0gZnVuY3Rpb24oYXJnKSB7CiAgICByZXR1cm4geyBfX2F3YWl0OiBhcmcgfTsKICB9OwoKICBmdW5jdGlvbiBBc3luY0l0ZXJhdG9yKGdlbmVyYXRvcikgewogICAgZnVuY3Rpb24gaW52b2tlKG1ldGhvZCwgYXJnLCByZXNvbHZlLCByZWplY3QpIHsKICAgICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKGdlbmVyYXRvclttZXRob2RdLCBnZW5lcmF0b3IsIGFyZyk7CiAgICAgIGlmIChyZWNvcmQudHlwZSA9PT0gInRocm93IikgewogICAgICAgIHJlamVjdChyZWNvcmQuYXJnKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgcmVzdWx0ID0gcmVjb3JkLmFyZzsKICAgICAgICB2YXIgdmFsdWUgPSByZXN1bHQudmFsdWU7CiAgICAgICAgaWYgKHZhbHVlICYmCiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgJiYKICAgICAgICAgICAgaGFzT3duLmNhbGwodmFsdWUsICJfX2F3YWl0IikpIHsKICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodmFsdWUuX19hd2FpdCkudGhlbihmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICBpbnZva2UoIm5leHQiLCB2YWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBpbnZva2UoInRocm93IiwgZXJyLCByZXNvbHZlLCByZWplY3QpOwogICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKGZ1bmN0aW9uKHVud3JhcHBlZCkgewogICAgICAgICAgLy8gV2hlbiBhIHlpZWxkZWQgUHJvbWlzZSBpcyByZXNvbHZlZCwgaXRzIGZpbmFsIHZhbHVlIGJlY29tZXMKICAgICAgICAgIC8vIHRoZSAudmFsdWUgb2YgdGhlIFByb21pc2U8e3ZhbHVlLGRvbmV9PiByZXN1bHQgZm9yIHRoZQogICAgICAgICAgLy8gY3VycmVudCBpdGVyYXRpb24uIElmIHRoZSBQcm9taXNlIGlzIHJlamVjdGVkLCBob3dldmVyLCB0aGUKICAgICAgICAgIC8vIHJlc3VsdCBmb3IgdGhpcyBpdGVyYXRpb24gd2lsbCBiZSByZWplY3RlZCB3aXRoIHRoZSBzYW1lCiAgICAgICAgICAvLyByZWFzb24uIE5vdGUgdGhhdCByZWplY3Rpb25zIG9mIHlpZWxkZWQgUHJvbWlzZXMgYXJlIG5vdAogICAgICAgICAgLy8gdGhyb3duIGJhY2sgaW50byB0aGUgZ2VuZXJhdG9yIGZ1bmN0aW9uLCBhcyBpcyB0aGUgY2FzZQogICAgICAgICAgLy8gd2hlbiBhbiBhd2FpdGVkIFByb21pc2UgaXMgcmVqZWN0ZWQuIFRoaXMgZGlmZmVyZW5jZSBpbgogICAgICAgICAgLy8gYmVoYXZpb3IgYmV0d2VlbiB5aWVsZCBhbmQgYXdhaXQgaXMgaW1wb3J0YW50LCBiZWNhdXNlIGl0CiAgICAgICAgICAvLyBhbGxvd3MgdGhlIGNvbnN1bWVyIHRvIGRlY2lkZSB3aGF0IHRvIGRvIHdpdGggdGhlIHlpZWxkZWQKICAgICAgICAgIC8vIHJlamVjdGlvbiAoc3dhbGxvdyBpdCBhbmQgY29udGludWUsIG1hbnVhbGx5IC50aHJvdyBpdCBiYWNrCiAgICAgICAgICAvLyBpbnRvIHRoZSBnZW5lcmF0b3IsIGFiYW5kb24gaXRlcmF0aW9uLCB3aGF0ZXZlcikuIFdpdGgKICAgICAgICAgIC8vIGF3YWl0LCBieSBjb250cmFzdCwgdGhlcmUgaXMgbm8gb3Bwb3J0dW5pdHkgdG8gZXhhbWluZSB0aGUKICAgICAgICAgIC8vIHJlamVjdGlvbiByZWFzb24gb3V0c2lkZSB0aGUgZ2VuZXJhdG9yIGZ1bmN0aW9uLCBzbyB0aGUKICAgICAgICAgIC8vIG9ubHkgb3B0aW9uIGlzIHRvIHRocm93IGl0IGZyb20gdGhlIGF3YWl0IGV4cHJlc3Npb24sIGFuZAogICAgICAgICAgLy8gbGV0IHRoZSBnZW5lcmF0b3IgZnVuY3Rpb24gaGFuZGxlIHRoZSBleGNlcHRpb24uCiAgICAgICAgICByZXN1bHQudmFsdWUgPSB1bndyYXBwZWQ7CiAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7CiAgICAgICAgfSwgcmVqZWN0KTsKICAgICAgfQogICAgfQoKICAgIHZhciBwcmV2aW91c1Byb21pc2U7CgogICAgZnVuY3Rpb24gZW5xdWV1ZShtZXRob2QsIGFyZykgewogICAgICBmdW5jdGlvbiBjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZygpIHsKICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICBpbnZva2UobWV0aG9kLCBhcmcsIHJlc29sdmUsIHJlamVjdCk7CiAgICAgICAgfSk7CiAgICAgIH0KCiAgICAgIHJldHVybiBwcmV2aW91c1Byb21pc2UgPQogICAgICAgIC8vIElmIGVucXVldWUgaGFzIGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiB3ZSB3YW50IHRvIHdhaXQgdW50aWwKICAgICAgICAvLyBhbGwgcHJldmlvdXMgUHJvbWlzZXMgaGF2ZSBiZWVuIHJlc29sdmVkIGJlZm9yZSBjYWxsaW5nIGludm9rZSwKICAgICAgICAvLyBzbyB0aGF0IHJlc3VsdHMgYXJlIGFsd2F5cyBkZWxpdmVyZWQgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuIElmCiAgICAgICAgLy8gZW5xdWV1ZSBoYXMgbm90IGJlZW4gY2FsbGVkIGJlZm9yZSwgdGhlbiBpdCBpcyBpbXBvcnRhbnQgdG8KICAgICAgICAvLyBjYWxsIGludm9rZSBpbW1lZGlhdGVseSwgd2l0aG91dCB3YWl0aW5nIG9uIGEgY2FsbGJhY2sgdG8gZmlyZSwKICAgICAgICAvLyBzbyB0aGF0IHRoZSBhc3luYyBnZW5lcmF0b3IgZnVuY3Rpb24gaGFzIHRoZSBvcHBvcnR1bml0eSB0byBkbwogICAgICAgIC8vIGFueSBuZWNlc3Nhcnkgc2V0dXAgaW4gYSBwcmVkaWN0YWJsZSB3YXkuIFRoaXMgcHJlZGljdGFiaWxpdHkKICAgICAgICAvLyBpcyB3aHkgdGhlIFByb21pc2UgY29uc3RydWN0b3Igc3luY2hyb25vdXNseSBpbnZva2VzIGl0cwogICAgICAgIC8vIGV4ZWN1dG9yIGNhbGxiYWNrLCBhbmQgd2h5IGFzeW5jIGZ1bmN0aW9ucyBzeW5jaHJvbm91c2x5CiAgICAgICAgLy8gZXhlY3V0ZSBjb2RlIGJlZm9yZSB0aGUgZmlyc3QgYXdhaXQuIFNpbmNlIHdlIGltcGxlbWVudCBzaW1wbGUKICAgICAgICAvLyBhc3luYyBmdW5jdGlvbnMgaW4gdGVybXMgb2YgYXN5bmMgZ2VuZXJhdG9ycywgaXQgaXMgZXNwZWNpYWxseQogICAgICAgIC8vIGltcG9ydGFudCB0byBnZXQgdGhpcyByaWdodCwgZXZlbiB0aG91Z2ggaXQgcmVxdWlyZXMgY2FyZS4KICAgICAgICBwcmV2aW91c1Byb21pc2UgPyBwcmV2aW91c1Byb21pc2UudGhlbigKICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnLAogICAgICAgICAgLy8gQXZvaWQgcHJvcGFnYXRpbmcgZmFpbHVyZXMgdG8gUHJvbWlzZXMgcmV0dXJuZWQgYnkgbGF0ZXIKICAgICAgICAgIC8vIGludm9jYXRpb25zIG9mIHRoZSBpdGVyYXRvci4KICAgICAgICAgIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnCiAgICAgICAgKSA6IGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCk7CiAgICB9CgogICAgLy8gRGVmaW5lIHRoZSB1bmlmaWVkIGhlbHBlciBtZXRob2QgdGhhdCBpcyB1c2VkIHRvIGltcGxlbWVudCAubmV4dCwKICAgIC8vIC50aHJvdywgYW5kIC5yZXR1cm4gKHNlZSBkZWZpbmVJdGVyYXRvck1ldGhvZHMpLgogICAgdGhpcy5faW52b2tlID0gZW5xdWV1ZTsKICB9CgogIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSk7CiAgQXN5bmNJdGVyYXRvci5wcm90b3R5cGVbYXN5bmNJdGVyYXRvclN5bWJvbF0gPSBmdW5jdGlvbiAoKSB7CiAgICByZXR1cm4gdGhpczsKICB9OwogIHJ1bnRpbWUuQXN5bmNJdGVyYXRvciA9IEFzeW5jSXRlcmF0b3I7CgogIC8vIE5vdGUgdGhhdCBzaW1wbGUgYXN5bmMgZnVuY3Rpb25zIGFyZSBpbXBsZW1lbnRlZCBvbiB0b3Agb2YKICAvLyBBc3luY0l0ZXJhdG9yIG9iamVjdHM7IHRoZXkganVzdCByZXR1cm4gYSBQcm9taXNlIGZvciB0aGUgdmFsdWUgb2YKICAvLyB0aGUgZmluYWwgcmVzdWx0IHByb2R1Y2VkIGJ5IHRoZSBpdGVyYXRvci4KICBydW50aW1lLmFzeW5jID0gZnVuY3Rpb24oaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpIHsKICAgIHZhciBpdGVyID0gbmV3IEFzeW5jSXRlcmF0b3IoCiAgICAgIHdyYXAoaW5uZXJGbiwgb3V0ZXJGbiwgc2VsZiwgdHJ5TG9jc0xpc3QpCiAgICApOwoKICAgIHJldHVybiBydW50aW1lLmlzR2VuZXJhdG9yRnVuY3Rpb24ob3V0ZXJGbikKICAgICAgPyBpdGVyIC8vIElmIG91dGVyRm4gaXMgYSBnZW5lcmF0b3IsIHJldHVybiB0aGUgZnVsbCBpdGVyYXRvci4KICAgICAgOiBpdGVyLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgcmV0dXJuIHJlc3VsdC5kb25lID8gcmVzdWx0LnZhbHVlIDogaXRlci5uZXh0KCk7CiAgICAgICAgfSk7CiAgfTsKCiAgZnVuY3Rpb24gbWFrZUludm9rZU1ldGhvZChpbm5lckZuLCBzZWxmLCBjb250ZXh0KSB7CiAgICB2YXIgc3RhdGUgPSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0OwoKICAgIHJldHVybiBmdW5jdGlvbiBpbnZva2UobWV0aG9kLCBhcmcpIHsKICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZUV4ZWN1dGluZykgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpOwogICAgICB9CgogICAgICBpZiAoc3RhdGUgPT09IEdlblN0YXRlQ29tcGxldGVkKSB7CiAgICAgICAgaWYgKG1ldGhvZCA9PT0gInRocm93IikgewogICAgICAgICAgdGhyb3cgYXJnOwogICAgICAgIH0KCiAgICAgICAgLy8gQmUgZm9yZ2l2aW5nLCBwZXIgMjUuMy4zLjMuMyBvZiB0aGUgc3BlYzoKICAgICAgICAvLyBodHRwczovL3Blb3BsZS5tb3ppbGxhLm9yZy9+am9yZW5kb3JmZi9lczYtZHJhZnQuaHRtbCNzZWMtZ2VuZXJhdG9ycmVzdW1lCiAgICAgICAgcmV0dXJuIGRvbmVSZXN1bHQoKTsKICAgICAgfQoKICAgICAgY29udGV4dC5tZXRob2QgPSBtZXRob2Q7CiAgICAgIGNvbnRleHQuYXJnID0gYXJnOwoKICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBjb250ZXh0LmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSkgewogICAgICAgICAgdmFyIGRlbGVnYXRlUmVzdWx0ID0gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCk7CiAgICAgICAgICBpZiAoZGVsZWdhdGVSZXN1bHQpIHsKICAgICAgICAgICAgaWYgKGRlbGVnYXRlUmVzdWx0ID09PSBDb250aW51ZVNlbnRpbmVsKSBjb250aW51ZTsKICAgICAgICAgICAgcmV0dXJuIGRlbGVnYXRlUmVzdWx0OwogICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGNvbnRleHQubWV0aG9kID09PSAibmV4dCIpIHsKICAgICAgICAgIC8vIFNldHRpbmcgY29udGV4dC5fc2VudCBmb3IgbGVnYWN5IHN1cHBvcnQgb2YgQmFiZWwncwogICAgICAgICAgLy8gZnVuY3Rpb24uc2VudCBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgIGNvbnRleHQuc2VudCA9IGNvbnRleHQuX3NlbnQgPSBjb250ZXh0LmFyZzsKCiAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0Lm1ldGhvZCA9PT0gInRocm93IikgewogICAgICAgICAgaWYgKHN0YXRlID09PSBHZW5TdGF0ZVN1c3BlbmRlZFN0YXJ0KSB7CiAgICAgICAgICAgIHN0YXRlID0gR2VuU3RhdGVDb21wbGV0ZWQ7CiAgICAgICAgICAgIHRocm93IGNvbnRleHQuYXJnOwogICAgICAgICAgfQoKICAgICAgICAgIGNvbnRleHQuZGlzcGF0Y2hFeGNlcHRpb24oY29udGV4dC5hcmcpOwoKICAgICAgICB9IGVsc2UgaWYgKGNvbnRleHQubWV0aG9kID09PSAicmV0dXJuIikgewogICAgICAgICAgY29udGV4dC5hYnJ1cHQoInJldHVybiIsIGNvbnRleHQuYXJnKTsKICAgICAgICB9CgogICAgICAgIHN0YXRlID0gR2VuU3RhdGVFeGVjdXRpbmc7CgogICAgICAgIHZhciByZWNvcmQgPSB0cnlDYXRjaChpbm5lckZuLCBzZWxmLCBjb250ZXh0KTsKICAgICAgICBpZiAocmVjb3JkLnR5cGUgPT09ICJub3JtYWwiKSB7CiAgICAgICAgICAvLyBJZiBhbiBleGNlcHRpb24gaXMgdGhyb3duIGZyb20gaW5uZXJGbiwgd2UgbGVhdmUgc3RhdGUgPT09CiAgICAgICAgICAvLyBHZW5TdGF0ZUV4ZWN1dGluZyBhbmQgbG9vcCBiYWNrIGZvciBhbm90aGVyIGludm9jYXRpb24uCiAgICAgICAgICBzdGF0ZSA9IGNvbnRleHQuZG9uZQogICAgICAgICAgICA/IEdlblN0YXRlQ29tcGxldGVkCiAgICAgICAgICAgIDogR2VuU3RhdGVTdXNwZW5kZWRZaWVsZDsKCiAgICAgICAgICBpZiAocmVjb3JkLmFyZyA9PT0gQ29udGludWVTZW50aW5lbCkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICB2YWx1ZTogcmVjb3JkLmFyZywKICAgICAgICAgICAgZG9uZTogY29udGV4dC5kb25lCiAgICAgICAgICB9OwoKICAgICAgICB9IGVsc2UgaWYgKHJlY29yZC50eXBlID09PSAidGhyb3ciKSB7CiAgICAgICAgICBzdGF0ZSA9IEdlblN0YXRlQ29tcGxldGVkOwogICAgICAgICAgLy8gRGlzcGF0Y2ggdGhlIGV4Y2VwdGlvbiBieSBsb29waW5nIGJhY2sgYXJvdW5kIHRvIHRoZQogICAgICAgICAgLy8gY29udGV4dC5kaXNwYXRjaEV4Y2VwdGlvbihjb250ZXh0LmFyZykgY2FsbCBhYm92ZS4KICAgICAgICAgIGNvbnRleHQubWV0aG9kID0gInRocm93IjsKICAgICAgICAgIGNvbnRleHQuYXJnID0gcmVjb3JkLmFyZzsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgfQoKICAvLyBDYWxsIGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXShjb250ZXh0LmFyZykgYW5kIGhhbmRsZSB0aGUKICAvLyByZXN1bHQsIGVpdGhlciBieSByZXR1cm5pbmcgYSB7IHZhbHVlLCBkb25lIH0gcmVzdWx0IGZyb20gdGhlCiAgLy8gZGVsZWdhdGUgaXRlcmF0b3IsIG9yIGJ5IG1vZGlmeWluZyBjb250ZXh0Lm1ldGhvZCBhbmQgY29udGV4dC5hcmcsCiAgLy8gc2V0dGluZyBjb250ZXh0LmRlbGVnYXRlIHRvIG51bGwsIGFuZCByZXR1cm5pbmcgdGhlIENvbnRpbnVlU2VudGluZWwuCiAgZnVuY3Rpb24gbWF5YmVJbnZva2VEZWxlZ2F0ZShkZWxlZ2F0ZSwgY29udGV4dCkgewogICAgdmFyIG1ldGhvZCA9IGRlbGVnYXRlLml0ZXJhdG9yW2NvbnRleHQubWV0aG9kXTsKICAgIGlmIChtZXRob2QgPT09IHVuZGVmaW5lZCkgewogICAgICAvLyBBIC50aHJvdyBvciAucmV0dXJuIHdoZW4gdGhlIGRlbGVnYXRlIGl0ZXJhdG9yIGhhcyBubyAudGhyb3cKICAgICAgLy8gbWV0aG9kIGFsd2F5cyB0ZXJtaW5hdGVzIHRoZSB5aWVsZCogbG9vcC4KICAgICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7CgogICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09ICJ0aHJvdyIpIHsKICAgICAgICBpZiAoZGVsZWdhdGUuaXRlcmF0b3IucmV0dXJuKSB7CiAgICAgICAgICAvLyBJZiB0aGUgZGVsZWdhdGUgaXRlcmF0b3IgaGFzIGEgcmV0dXJuIG1ldGhvZCwgZ2l2ZSBpdCBhCiAgICAgICAgICAvLyBjaGFuY2UgdG8gY2xlYW4gdXAuCiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9ICJyZXR1cm4iOwogICAgICAgICAgY29udGV4dC5hcmcgPSB1bmRlZmluZWQ7CiAgICAgICAgICBtYXliZUludm9rZURlbGVnYXRlKGRlbGVnYXRlLCBjb250ZXh0KTsKCiAgICAgICAgICBpZiAoY29udGV4dC5tZXRob2QgPT09ICJ0aHJvdyIpIHsKICAgICAgICAgICAgLy8gSWYgbWF5YmVJbnZva2VEZWxlZ2F0ZShjb250ZXh0KSBjaGFuZ2VkIGNvbnRleHQubWV0aG9kIGZyb20KICAgICAgICAgICAgLy8gInJldHVybiIgdG8gInRocm93IiwgbGV0IHRoYXQgb3ZlcnJpZGUgdGhlIFR5cGVFcnJvciBiZWxvdy4KICAgICAgICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb250ZXh0Lm1ldGhvZCA9ICJ0aHJvdyI7CiAgICAgICAgY29udGV4dC5hcmcgPSBuZXcgVHlwZUVycm9yKAogICAgICAgICAgIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ3Rocm93JyBtZXRob2QiKTsKICAgICAgfQoKICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7CiAgICB9CgogICAgdmFyIHJlY29yZCA9IHRyeUNhdGNoKG1ldGhvZCwgZGVsZWdhdGUuaXRlcmF0b3IsIGNvbnRleHQuYXJnKTsKCiAgICBpZiAocmVjb3JkLnR5cGUgPT09ICJ0aHJvdyIpIHsKICAgICAgY29udGV4dC5tZXRob2QgPSAidGhyb3ciOwogICAgICBjb250ZXh0LmFyZyA9IHJlY29yZC5hcmc7CiAgICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsOwogICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDsKICAgIH0KCiAgICB2YXIgaW5mbyA9IHJlY29yZC5hcmc7CgogICAgaWYgKCEgaW5mbykgewogICAgICBjb250ZXh0Lm1ldGhvZCA9ICJ0aHJvdyI7CiAgICAgIGNvbnRleHQuYXJnID0gbmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgcmVzdWx0IGlzIG5vdCBhbiBvYmplY3QiKTsKICAgICAgY29udGV4dC5kZWxlZ2F0ZSA9IG51bGw7CiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsOwogICAgfQoKICAgIGlmIChpbmZvLmRvbmUpIHsKICAgICAgLy8gQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGZpbmlzaGVkIGRlbGVnYXRlIHRvIHRoZSB0ZW1wb3JhcnkKICAgICAgLy8gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IGRlbGVnYXRlLnJlc3VsdE5hbWUgKHNlZSBkZWxlZ2F0ZVlpZWxkKS4KICAgICAgY29udGV4dFtkZWxlZ2F0ZS5yZXN1bHROYW1lXSA9IGluZm8udmFsdWU7CgogICAgICAvLyBSZXN1bWUgZXhlY3V0aW9uIGF0IHRoZSBkZXNpcmVkIGxvY2F0aW9uIChzZWUgZGVsZWdhdGVZaWVsZCkuCiAgICAgIGNvbnRleHQubmV4dCA9IGRlbGVnYXRlLm5leHRMb2M7CgogICAgICAvLyBJZiBjb250ZXh0Lm1ldGhvZCB3YXMgInRocm93IiBidXQgdGhlIGRlbGVnYXRlIGhhbmRsZWQgdGhlCiAgICAgIC8vIGV4Y2VwdGlvbiwgbGV0IHRoZSBvdXRlciBnZW5lcmF0b3IgcHJvY2VlZCBub3JtYWxseS4gSWYKICAgICAgLy8gY29udGV4dC5tZXRob2Qgd2FzICJuZXh0IiwgZm9yZ2V0IGNvbnRleHQuYXJnIHNpbmNlIGl0IGhhcyBiZWVuCiAgICAgIC8vICJjb25zdW1lZCIgYnkgdGhlIGRlbGVnYXRlIGl0ZXJhdG9yLiBJZiBjb250ZXh0Lm1ldGhvZCB3YXMKICAgICAgLy8gInJldHVybiIsIGFsbG93IHRoZSBvcmlnaW5hbCAucmV0dXJuIGNhbGwgdG8gY29udGludWUgaW4gdGhlCiAgICAgIC8vIG91dGVyIGdlbmVyYXRvci4KICAgICAgaWYgKGNvbnRleHQubWV0aG9kICE9PSAicmV0dXJuIikgewogICAgICAgIGNvbnRleHQubWV0aG9kID0gIm5leHQiOwogICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkOwogICAgICB9CgogICAgfSBlbHNlIHsKICAgICAgLy8gUmUteWllbGQgdGhlIHJlc3VsdCByZXR1cm5lZCBieSB0aGUgZGVsZWdhdGUgbWV0aG9kLgogICAgICByZXR1cm4gaW5mbzsKICAgIH0KCiAgICAvLyBUaGUgZGVsZWdhdGUgaXRlcmF0b3IgaXMgZmluaXNoZWQsIHNvIGZvcmdldCBpdCBhbmQgY29udGludWUgd2l0aAogICAgLy8gdGhlIG91dGVyIGdlbmVyYXRvci4KICAgIGNvbnRleHQuZGVsZWdhdGUgPSBudWxsOwogICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7CiAgfQoKICAvLyBEZWZpbmUgR2VuZXJhdG9yLnByb3RvdHlwZS57bmV4dCx0aHJvdyxyZXR1cm59IGluIHRlcm1zIG9mIHRoZQogIC8vIHVuaWZpZWQgLl9pbnZva2UgaGVscGVyIG1ldGhvZC4KICBkZWZpbmVJdGVyYXRvck1ldGhvZHMoR3ApOwoKICBHcFt0b1N0cmluZ1RhZ1N5bWJvbF0gPSAiR2VuZXJhdG9yIjsKCiAgLy8gQSBHZW5lcmF0b3Igc2hvdWxkIGFsd2F5cyByZXR1cm4gaXRzZWxmIGFzIHRoZSBpdGVyYXRvciBvYmplY3Qgd2hlbiB0aGUKICAvLyBAQGl0ZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCBvbiBpdC4gU29tZSBicm93c2VycycgaW1wbGVtZW50YXRpb25zIG9mIHRoZQogIC8vIGl0ZXJhdG9yIHByb3RvdHlwZSBjaGFpbiBpbmNvcnJlY3RseSBpbXBsZW1lbnQgdGhpcywgY2F1c2luZyB0aGUgR2VuZXJhdG9yCiAgLy8gb2JqZWN0IHRvIG5vdCBiZSByZXR1cm5lZCBmcm9tIHRoaXMgY2FsbC4gVGhpcyBlbnN1cmVzIHRoYXQgZG9lc24ndCBoYXBwZW4uCiAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9pc3N1ZXMvMjc0IGZvciBtb3JlIGRldGFpbHMuCiAgR3BbaXRlcmF0b3JTeW1ib2xdID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gdGhpczsKICB9OwoKICBHcC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgewogICAgcmV0dXJuICJbb2JqZWN0IEdlbmVyYXRvcl0iOwogIH07CgogIGZ1bmN0aW9uIHB1c2hUcnlFbnRyeShsb2NzKSB7CiAgICB2YXIgZW50cnkgPSB7IHRyeUxvYzogbG9jc1swXSB9OwoKICAgIGlmICgxIGluIGxvY3MpIHsKICAgICAgZW50cnkuY2F0Y2hMb2MgPSBsb2NzWzFdOwogICAgfQoKICAgIGlmICgyIGluIGxvY3MpIHsKICAgICAgZW50cnkuZmluYWxseUxvYyA9IGxvY3NbMl07CiAgICAgIGVudHJ5LmFmdGVyTG9jID0gbG9jc1szXTsKICAgIH0KCiAgICB0aGlzLnRyeUVudHJpZXMucHVzaChlbnRyeSk7CiAgfQoKICBmdW5jdGlvbiByZXNldFRyeUVudHJ5KGVudHJ5KSB7CiAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbiB8fCB7fTsKICAgIHJlY29yZC50eXBlID0gIm5vcm1hbCI7CiAgICBkZWxldGUgcmVjb3JkLmFyZzsKICAgIGVudHJ5LmNvbXBsZXRpb24gPSByZWNvcmQ7CiAgfQoKICBmdW5jdGlvbiBDb250ZXh0KHRyeUxvY3NMaXN0KSB7CiAgICAvLyBUaGUgcm9vdCBlbnRyeSBvYmplY3QgKGVmZmVjdGl2ZWx5IGEgdHJ5IHN0YXRlbWVudCB3aXRob3V0IGEgY2F0Y2gKICAgIC8vIG9yIGEgZmluYWxseSBibG9jaykgZ2l2ZXMgdXMgYSBwbGFjZSB0byBzdG9yZSB2YWx1ZXMgdGhyb3duIGZyb20KICAgIC8vIGxvY2F0aW9ucyB3aGVyZSB0aGVyZSBpcyBubyBlbmNsb3NpbmcgdHJ5IHN0YXRlbWVudC4KICAgIHRoaXMudHJ5RW50cmllcyA9IFt7IHRyeUxvYzogInJvb3QiIH1dOwogICAgdHJ5TG9jc0xpc3QuZm9yRWFjaChwdXNoVHJ5RW50cnksIHRoaXMpOwogICAgdGhpcy5yZXNldCh0cnVlKTsKICB9CgogIHJ1bnRpbWUua2V5cyA9IGZ1bmN0aW9uKG9iamVjdCkgewogICAgdmFyIGtleXMgPSBbXTsKICAgIGZvciAodmFyIGtleSBpbiBvYmplY3QpIHsKICAgICAga2V5cy5wdXNoKGtleSk7CiAgICB9CiAgICBrZXlzLnJldmVyc2UoKTsKCiAgICAvLyBSYXRoZXIgdGhhbiByZXR1cm5pbmcgYW4gb2JqZWN0IHdpdGggYSBuZXh0IG1ldGhvZCwgd2Uga2VlcAogICAgLy8gdGhpbmdzIHNpbXBsZSBhbmQgcmV0dXJuIHRoZSBuZXh0IGZ1bmN0aW9uIGl0c2VsZi4KICAgIHJldHVybiBmdW5jdGlvbiBuZXh0KCkgewogICAgICB3aGlsZSAoa2V5cy5sZW5ndGgpIHsKICAgICAgICB2YXIga2V5ID0ga2V5cy5wb3AoKTsKICAgICAgICBpZiAoa2V5IGluIG9iamVjdCkgewogICAgICAgICAgbmV4dC52YWx1ZSA9IGtleTsKICAgICAgICAgIG5leHQuZG9uZSA9IGZhbHNlOwogICAgICAgICAgcmV0dXJuIG5leHQ7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBUbyBhdm9pZCBjcmVhdGluZyBhbiBhZGRpdGlvbmFsIG9iamVjdCwgd2UganVzdCBoYW5nIHRoZSAudmFsdWUKICAgICAgLy8gYW5kIC5kb25lIHByb3BlcnRpZXMgb2ZmIHRoZSBuZXh0IGZ1bmN0aW9uIG9iamVjdCBpdHNlbGYuIFRoaXMKICAgICAgLy8gYWxzbyBlbnN1cmVzIHRoYXQgdGhlIG1pbmlmaWVyIHdpbGwgbm90IGFub255bWl6ZSB0aGUgZnVuY3Rpb24uCiAgICAgIG5leHQuZG9uZSA9IHRydWU7CiAgICAgIHJldHVybiBuZXh0OwogICAgfTsKICB9OwoKICBmdW5jdGlvbiB2YWx1ZXMoaXRlcmFibGUpIHsKICAgIGlmIChpdGVyYWJsZSkgewogICAgICB2YXIgaXRlcmF0b3JNZXRob2QgPSBpdGVyYWJsZVtpdGVyYXRvclN5bWJvbF07CiAgICAgIGlmIChpdGVyYXRvck1ldGhvZCkgewogICAgICAgIHJldHVybiBpdGVyYXRvck1ldGhvZC5jYWxsKGl0ZXJhYmxlKTsKICAgICAgfQoKICAgICAgaWYgKHR5cGVvZiBpdGVyYWJsZS5uZXh0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIGl0ZXJhYmxlOwogICAgICB9CgogICAgICBpZiAoIWlzTmFOKGl0ZXJhYmxlLmxlbmd0aCkpIHsKICAgICAgICB2YXIgaSA9IC0xLCBuZXh0ID0gZnVuY3Rpb24gbmV4dCgpIHsKICAgICAgICAgIHdoaWxlICgrK2kgPCBpdGVyYWJsZS5sZW5ndGgpIHsKICAgICAgICAgICAgaWYgKGhhc093bi5jYWxsKGl0ZXJhYmxlLCBpKSkgewogICAgICAgICAgICAgIG5leHQudmFsdWUgPSBpdGVyYWJsZVtpXTsKICAgICAgICAgICAgICBuZXh0LmRvbmUgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm4gbmV4dDsKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAgICAgICAgIG5leHQudmFsdWUgPSB1bmRlZmluZWQ7CiAgICAgICAgICBuZXh0LmRvbmUgPSB0cnVlOwoKICAgICAgICAgIHJldHVybiBuZXh0OwogICAgICAgIH07CgogICAgICAgIHJldHVybiBuZXh0Lm5leHQgPSBuZXh0OwogICAgICB9CiAgICB9CgogICAgLy8gUmV0dXJuIGFuIGl0ZXJhdG9yIHdpdGggbm8gdmFsdWVzLgogICAgcmV0dXJuIHsgbmV4dDogZG9uZVJlc3VsdCB9OwogIH0KICBydW50aW1lLnZhbHVlcyA9IHZhbHVlczsKCiAgZnVuY3Rpb24gZG9uZVJlc3VsdCgpIHsKICAgIHJldHVybiB7IHZhbHVlOiB1bmRlZmluZWQsIGRvbmU6IHRydWUgfTsKICB9CgogIENvbnRleHQucHJvdG90eXBlID0gewogICAgY29uc3RydWN0b3I6IENvbnRleHQsCgogICAgcmVzZXQ6IGZ1bmN0aW9uKHNraXBUZW1wUmVzZXQpIHsKICAgICAgdGhpcy5wcmV2ID0gMDsKICAgICAgdGhpcy5uZXh0ID0gMDsKICAgICAgLy8gUmVzZXR0aW5nIGNvbnRleHQuX3NlbnQgZm9yIGxlZ2FjeSBzdXBwb3J0IG9mIEJhYmVsJ3MKICAgICAgLy8gZnVuY3Rpb24uc2VudCBpbXBsZW1lbnRhdGlvbi4KICAgICAgdGhpcy5zZW50ID0gdGhpcy5fc2VudCA9IHVuZGVmaW5lZDsKICAgICAgdGhpcy5kb25lID0gZmFsc2U7CiAgICAgIHRoaXMuZGVsZWdhdGUgPSBudWxsOwoKICAgICAgdGhpcy5tZXRob2QgPSAibmV4dCI7CiAgICAgIHRoaXMuYXJnID0gdW5kZWZpbmVkOwoKICAgICAgdGhpcy50cnlFbnRyaWVzLmZvckVhY2gocmVzZXRUcnlFbnRyeSk7CgogICAgICBpZiAoIXNraXBUZW1wUmVzZXQpIHsKICAgICAgICBmb3IgKHZhciBuYW1lIGluIHRoaXMpIHsKICAgICAgICAgIC8vIE5vdCBzdXJlIGFib3V0IHRoZSBvcHRpbWFsIG9yZGVyIG9mIHRoZXNlIGNvbmRpdGlvbnM6CiAgICAgICAgICBpZiAobmFtZS5jaGFyQXQoMCkgPT09ICJ0IiAmJgogICAgICAgICAgICAgIGhhc093bi5jYWxsKHRoaXMsIG5hbWUpICYmCiAgICAgICAgICAgICAgIWlzTmFOKCtuYW1lLnNsaWNlKDEpKSkgewogICAgICAgICAgICB0aGlzW25hbWVdID0gdW5kZWZpbmVkOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKCiAgICBzdG9wOiBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5kb25lID0gdHJ1ZTsKCiAgICAgIHZhciByb290RW50cnkgPSB0aGlzLnRyeUVudHJpZXNbMF07CiAgICAgIHZhciByb290UmVjb3JkID0gcm9vdEVudHJ5LmNvbXBsZXRpb247CiAgICAgIGlmIChyb290UmVjb3JkLnR5cGUgPT09ICJ0aHJvdyIpIHsKICAgICAgICB0aHJvdyByb290UmVjb3JkLmFyZzsKICAgICAgfQoKICAgICAgcmV0dXJuIHRoaXMucnZhbDsKICAgIH0sCgogICAgZGlzcGF0Y2hFeGNlcHRpb246IGZ1bmN0aW9uKGV4Y2VwdGlvbikgewogICAgICBpZiAodGhpcy5kb25lKSB7CiAgICAgICAgdGhyb3cgZXhjZXB0aW9uOwogICAgICB9CgogICAgICB2YXIgY29udGV4dCA9IHRoaXM7CiAgICAgIGZ1bmN0aW9uIGhhbmRsZShsb2MsIGNhdWdodCkgewogICAgICAgIHJlY29yZC50eXBlID0gInRocm93IjsKICAgICAgICByZWNvcmQuYXJnID0gZXhjZXB0aW9uOwogICAgICAgIGNvbnRleHQubmV4dCA9IGxvYzsKCiAgICAgICAgaWYgKGNhdWdodCkgewogICAgICAgICAgLy8gSWYgdGhlIGRpc3BhdGNoZWQgZXhjZXB0aW9uIHdhcyBjYXVnaHQgYnkgYSBjYXRjaCBibG9jaywKICAgICAgICAgIC8vIHRoZW4gbGV0IHRoYXQgY2F0Y2ggYmxvY2sgaGFuZGxlIHRoZSBleGNlcHRpb24gbm9ybWFsbHkuCiAgICAgICAgICBjb250ZXh0Lm1ldGhvZCA9ICJuZXh0IjsKICAgICAgICAgIGNvbnRleHQuYXJnID0gdW5kZWZpbmVkOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICEhIGNhdWdodDsKICAgICAgfQoKICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgewogICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTsKICAgICAgICB2YXIgcmVjb3JkID0gZW50cnkuY29tcGxldGlvbjsKCiAgICAgICAgaWYgKGVudHJ5LnRyeUxvYyA9PT0gInJvb3QiKSB7CiAgICAgICAgICAvLyBFeGNlcHRpb24gdGhyb3duIG91dHNpZGUgb2YgYW55IHRyeSBibG9jayB0aGF0IGNvdWxkIGhhbmRsZQogICAgICAgICAgLy8gaXQsIHNvIHNldCB0aGUgY29tcGxldGlvbiB2YWx1ZSBvZiB0aGUgZW50aXJlIGZ1bmN0aW9uIHRvCiAgICAgICAgICAvLyB0aHJvdyB0aGUgZXhjZXB0aW9uLgogICAgICAgICAgcmV0dXJuIGhhbmRsZSgiZW5kIik7CiAgICAgICAgfQoKICAgICAgICBpZiAoZW50cnkudHJ5TG9jIDw9IHRoaXMucHJldikgewogICAgICAgICAgdmFyIGhhc0NhdGNoID0gaGFzT3duLmNhbGwoZW50cnksICJjYXRjaExvYyIpOwogICAgICAgICAgdmFyIGhhc0ZpbmFsbHkgPSBoYXNPd24uY2FsbChlbnRyeSwgImZpbmFsbHlMb2MiKTsKCiAgICAgICAgICBpZiAoaGFzQ2F0Y2ggJiYgaGFzRmluYWxseSkgewogICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgZW50cnkuY2F0Y2hMb2MpIHsKICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlKGVudHJ5LmNhdGNoTG9jLCB0cnVlKTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnByZXYgPCBlbnRyeS5maW5hbGx5TG9jKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5maW5hbGx5TG9jKTsKICAgICAgICAgICAgfQoKICAgICAgICAgIH0gZWxzZSBpZiAoaGFzQ2F0Y2gpIHsKICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmNhdGNoTG9jKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZShlbnRyeS5jYXRjaExvYywgdHJ1ZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICB9IGVsc2UgaWYgKGhhc0ZpbmFsbHkpIHsKICAgICAgICAgICAgaWYgKHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHsKICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlKGVudHJ5LmZpbmFsbHlMb2MpOwogICAgICAgICAgICB9CgogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKCiAgICBhYnJ1cHQ6IGZ1bmN0aW9uKHR5cGUsIGFyZykgewogICAgICBmb3IgKHZhciBpID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgdmFyIGVudHJ5ID0gdGhpcy50cnlFbnRyaWVzW2ldOwogICAgICAgIGlmIChlbnRyeS50cnlMb2MgPD0gdGhpcy5wcmV2ICYmCiAgICAgICAgICAgIGhhc093bi5jYWxsKGVudHJ5LCAiZmluYWxseUxvYyIpICYmCiAgICAgICAgICAgIHRoaXMucHJldiA8IGVudHJ5LmZpbmFsbHlMb2MpIHsKICAgICAgICAgIHZhciBmaW5hbGx5RW50cnkgPSBlbnRyeTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGZpbmFsbHlFbnRyeSAmJgogICAgICAgICAgKHR5cGUgPT09ICJicmVhayIgfHwKICAgICAgICAgICB0eXBlID09PSAiY29udGludWUiKSAmJgogICAgICAgICAgZmluYWxseUVudHJ5LnRyeUxvYyA8PSBhcmcgJiYKICAgICAgICAgIGFyZyA8PSBmaW5hbGx5RW50cnkuZmluYWxseUxvYykgewogICAgICAgIC8vIElnbm9yZSB0aGUgZmluYWxseSBlbnRyeSBpZiBjb250cm9sIGlzIG5vdCBqdW1waW5nIHRvIGEKICAgICAgICAvLyBsb2NhdGlvbiBvdXRzaWRlIHRoZSB0cnkvY2F0Y2ggYmxvY2suCiAgICAgICAgZmluYWxseUVudHJ5ID0gbnVsbDsKICAgICAgfQoKICAgICAgdmFyIHJlY29yZCA9IGZpbmFsbHlFbnRyeSA/IGZpbmFsbHlFbnRyeS5jb21wbGV0aW9uIDoge307CiAgICAgIHJlY29yZC50eXBlID0gdHlwZTsKICAgICAgcmVjb3JkLmFyZyA9IGFyZzsKCiAgICAgIGlmIChmaW5hbGx5RW50cnkpIHsKICAgICAgICB0aGlzLm1ldGhvZCA9ICJuZXh0IjsKICAgICAgICB0aGlzLm5leHQgPSBmaW5hbGx5RW50cnkuZmluYWxseUxvYzsKICAgICAgICByZXR1cm4gQ29udGludWVTZW50aW5lbDsKICAgICAgfQoKICAgICAgcmV0dXJuIHRoaXMuY29tcGxldGUocmVjb3JkKTsKICAgIH0sCgogICAgY29tcGxldGU6IGZ1bmN0aW9uKHJlY29yZCwgYWZ0ZXJMb2MpIHsKICAgICAgaWYgKHJlY29yZC50eXBlID09PSAidGhyb3ciKSB7CiAgICAgICAgdGhyb3cgcmVjb3JkLmFyZzsKICAgICAgfQoKICAgICAgaWYgKHJlY29yZC50eXBlID09PSAiYnJlYWsiIHx8CiAgICAgICAgICByZWNvcmQudHlwZSA9PT0gImNvbnRpbnVlIikgewogICAgICAgIHRoaXMubmV4dCA9IHJlY29yZC5hcmc7CiAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09ICJyZXR1cm4iKSB7CiAgICAgICAgdGhpcy5ydmFsID0gdGhpcy5hcmcgPSByZWNvcmQuYXJnOwogICAgICAgIHRoaXMubWV0aG9kID0gInJldHVybiI7CiAgICAgICAgdGhpcy5uZXh0ID0gImVuZCI7CiAgICAgIH0gZWxzZSBpZiAocmVjb3JkLnR5cGUgPT09ICJub3JtYWwiICYmIGFmdGVyTG9jKSB7CiAgICAgICAgdGhpcy5uZXh0ID0gYWZ0ZXJMb2M7CiAgICAgIH0KCiAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsOwogICAgfSwKCiAgICBmaW5pc2g6IGZ1bmN0aW9uKGZpbmFsbHlMb2MpIHsKICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgewogICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTsKICAgICAgICBpZiAoZW50cnkuZmluYWxseUxvYyA9PT0gZmluYWxseUxvYykgewogICAgICAgICAgdGhpcy5jb21wbGV0ZShlbnRyeS5jb21wbGV0aW9uLCBlbnRyeS5hZnRlckxvYyk7CiAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTsKICAgICAgICAgIHJldHVybiBDb250aW51ZVNlbnRpbmVsOwogICAgICAgIH0KICAgICAgfQogICAgfSwKCiAgICAiY2F0Y2giOiBmdW5jdGlvbih0cnlMb2MpIHsKICAgICAgZm9yICh2YXIgaSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBpID49IDA7IC0taSkgewogICAgICAgIHZhciBlbnRyeSA9IHRoaXMudHJ5RW50cmllc1tpXTsKICAgICAgICBpZiAoZW50cnkudHJ5TG9jID09PSB0cnlMb2MpIHsKICAgICAgICAgIHZhciByZWNvcmQgPSBlbnRyeS5jb21wbGV0aW9uOwogICAgICAgICAgaWYgKHJlY29yZC50eXBlID09PSAidGhyb3ciKSB7CiAgICAgICAgICAgIHZhciB0aHJvd24gPSByZWNvcmQuYXJnOwogICAgICAgICAgICByZXNldFRyeUVudHJ5KGVudHJ5KTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0aHJvd247CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBUaGUgY29udGV4dC5jYXRjaCBtZXRob2QgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aXRoIGEgbG9jYXRpb24KICAgICAgLy8gYXJndW1lbnQgdGhhdCBjb3JyZXNwb25kcyB0byBhIGtub3duIGNhdGNoIGJsb2NrLgogICAgICB0aHJvdyBuZXcgRXJyb3IoImlsbGVnYWwgY2F0Y2ggYXR0ZW1wdCIpOwogICAgfSwKCiAgICBkZWxlZ2F0ZVlpZWxkOiBmdW5jdGlvbihpdGVyYWJsZSwgcmVzdWx0TmFtZSwgbmV4dExvYykgewogICAgICB0aGlzLmRlbGVnYXRlID0gewogICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoaXRlcmFibGUpLAogICAgICAgIHJlc3VsdE5hbWU6IHJlc3VsdE5hbWUsCiAgICAgICAgbmV4dExvYzogbmV4dExvYwogICAgICB9OwoKICAgICAgaWYgKHRoaXMubWV0aG9kID09PSAibmV4dCIpIHsKICAgICAgICAvLyBEZWxpYmVyYXRlbHkgZm9yZ2V0IHRoZSBsYXN0IHNlbnQgdmFsdWUgc28gdGhhdCB3ZSBkb24ndAogICAgICAgIC8vIGFjY2lkZW50YWxseSBwYXNzIGl0IG9uIHRvIHRoZSBkZWxlZ2F0ZS4KICAgICAgICB0aGlzLmFyZyA9IHVuZGVmaW5lZDsKICAgICAgfQoKICAgICAgcmV0dXJuIENvbnRpbnVlU2VudGluZWw7CiAgICB9CiAgfTsKfSkoCiAgLy8gSW4gc2xvcHB5IG1vZGUsIHVuYm91bmQgYHRoaXNgIHJlZmVycyB0byB0aGUgZ2xvYmFsIG9iamVjdCwgZmFsbGJhY2sgdG8KICAvLyBGdW5jdGlvbiBjb25zdHJ1Y3RvciBpZiB3ZSdyZSBpbiBnbG9iYWwgc3RyaWN0IG1vZGUuIFRoYXQgaXMgc2FkbHkgYSBmb3JtCiAgLy8gb2YgaW5kaXJlY3QgZXZhbCB3aGljaCB2aW9sYXRlcyBDb250ZW50IFNlY3VyaXR5IFBvbGljeS4KICAoZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzIH0pKCkgfHwgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKQopOwoKCi8qKiovIH0pLAovKiAyODAgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKbW9kdWxlLmV4cG9ydHMgPSB7ICJkZWZhdWx0IjogX193ZWJwYWNrX3JlcXVpcmVfXygyODEpLCBfX2VzTW9kdWxlOiB0cnVlIH07CgovKioqLyB9KSwKLyogMjgxICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCl9fd2VicGFja19yZXF1aXJlX18oMjgyKTsKbW9kdWxlLmV4cG9ydHMgPSBNYXRoLnBvdygyLCAtNTIpOwoKCi8qKiovIH0pLAovKiAyODIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gMjAuMS4yLjEgTnVtYmVyLkVQU0lMT04KdmFyICRleHBvcnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMpOwoKJGV4cG9ydCgkZXhwb3J0LlMsICdOdW1iZXInLCB7IEVQU0lMT046IE1hdGgucG93KDIsIC01MikgfSk7CgoKLyoqKi8gfSksCi8qIDI4MyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oQnVmZmVyKSB7dmFyIGNsb25lID0gKGZ1bmN0aW9uKCkgewondXNlIHN0cmljdCc7CgovKioKICogQ2xvbmVzIChjb3BpZXMpIGFuIE9iamVjdCB1c2luZyBkZWVwIGNvcHlpbmcuCiAqCiAqIFRoaXMgZnVuY3Rpb24gc3VwcG9ydHMgY2lyY3VsYXIgcmVmZXJlbmNlcyBieSBkZWZhdWx0LCBidXQgaWYgeW91IGFyZSBjZXJ0YWluCiAqIHRoZXJlIGFyZSBubyBjaXJjdWxhciByZWZlcmVuY2VzIGluIHlvdXIgb2JqZWN0LCB5b3UgY2FuIHNhdmUgc29tZSBDUFUgdGltZQogKiBieSBjYWxsaW5nIGNsb25lKG9iaiwgZmFsc2UpLgogKgogKiBDYXV0aW9uOiBpZiBgY2lyY3VsYXJgIGlzIGZhbHNlIGFuZCBgcGFyZW50YCBjb250YWlucyBjaXJjdWxhciByZWZlcmVuY2VzLAogKiB5b3VyIHByb2dyYW0gbWF5IGVudGVyIGFuIGluZmluaXRlIGxvb3AgYW5kIGNyYXNoLgogKgogKiBAcGFyYW0gYHBhcmVudGAgLSB0aGUgb2JqZWN0IHRvIGJlIGNsb25lZAogKiBAcGFyYW0gYGNpcmN1bGFyYCAtIHNldCB0byB0cnVlIGlmIHRoZSBvYmplY3QgdG8gYmUgY2xvbmVkIG1heSBjb250YWluCiAqICAgIGNpcmN1bGFyIHJlZmVyZW5jZXMuIChvcHRpb25hbCAtIHRydWUgYnkgZGVmYXVsdCkKICogQHBhcmFtIGBkZXB0aGAgLSBzZXQgdG8gYSBudW1iZXIgaWYgdGhlIG9iamVjdCBpcyBvbmx5IHRvIGJlIGNsb25lZCB0bwogKiAgICBhIHBhcnRpY3VsYXIgZGVwdGguIChvcHRpb25hbCAtIGRlZmF1bHRzIHRvIEluZmluaXR5KQogKiBAcGFyYW0gYHByb3RvdHlwZWAgLSBzZXRzIHRoZSBwcm90b3R5cGUgdG8gYmUgdXNlZCB3aGVuIGNsb25pbmcgYW4gb2JqZWN0LgogKiAgICAob3B0aW9uYWwgLSBkZWZhdWx0cyB0byBwYXJlbnQgcHJvdG90eXBlKS4KKi8KZnVuY3Rpb24gY2xvbmUocGFyZW50LCBjaXJjdWxhciwgZGVwdGgsIHByb3RvdHlwZSkgewogIHZhciBmaWx0ZXI7CiAgaWYgKHR5cGVvZiBjaXJjdWxhciA9PT0gJ29iamVjdCcpIHsKICAgIGRlcHRoID0gY2lyY3VsYXIuZGVwdGg7CiAgICBwcm90b3R5cGUgPSBjaXJjdWxhci5wcm90b3R5cGU7CiAgICBmaWx0ZXIgPSBjaXJjdWxhci5maWx0ZXI7CiAgICBjaXJjdWxhciA9IGNpcmN1bGFyLmNpcmN1bGFyCiAgfQogIC8vIG1haW50YWluIHR3byBhcnJheXMgZm9yIGNpcmN1bGFyIHJlZmVyZW5jZXMsIHdoZXJlIGNvcnJlc3BvbmRpbmcgcGFyZW50cwogIC8vIGFuZCBjaGlsZHJlbiBoYXZlIHRoZSBzYW1lIGluZGV4CiAgdmFyIGFsbFBhcmVudHMgPSBbXTsKICB2YXIgYWxsQ2hpbGRyZW4gPSBbXTsKCiAgdmFyIHVzZUJ1ZmZlciA9IHR5cGVvZiBCdWZmZXIgIT0gJ3VuZGVmaW5lZCc7CgogIGlmICh0eXBlb2YgY2lyY3VsYXIgPT0gJ3VuZGVmaW5lZCcpCiAgICBjaXJjdWxhciA9IHRydWU7CgogIGlmICh0eXBlb2YgZGVwdGggPT0gJ3VuZGVmaW5lZCcpCiAgICBkZXB0aCA9IEluZmluaXR5OwoKICAvLyByZWN1cnNlIHRoaXMgZnVuY3Rpb24gc28gd2UgZG9uJ3QgcmVzZXQgYWxsUGFyZW50cyBhbmQgYWxsQ2hpbGRyZW4KICBmdW5jdGlvbiBfY2xvbmUocGFyZW50LCBkZXB0aCkgewogICAgLy8gY2xvbmluZyBudWxsIGFsd2F5cyByZXR1cm5zIG51bGwKICAgIGlmIChwYXJlbnQgPT09IG51bGwpCiAgICAgIHJldHVybiBudWxsOwoKICAgIGlmIChkZXB0aCA9PSAwKQogICAgICByZXR1cm4gcGFyZW50OwoKICAgIHZhciBjaGlsZDsKICAgIHZhciBwcm90bzsKICAgIGlmICh0eXBlb2YgcGFyZW50ICE9ICdvYmplY3QnKSB7CiAgICAgIHJldHVybiBwYXJlbnQ7CiAgICB9CgogICAgaWYgKGNsb25lLl9faXNBcnJheShwYXJlbnQpKSB7CiAgICAgIGNoaWxkID0gW107CiAgICB9IGVsc2UgaWYgKGNsb25lLl9faXNSZWdFeHAocGFyZW50KSkgewogICAgICBjaGlsZCA9IG5ldyBSZWdFeHAocGFyZW50LnNvdXJjZSwgX19nZXRSZWdFeHBGbGFncyhwYXJlbnQpKTsKICAgICAgaWYgKHBhcmVudC5sYXN0SW5kZXgpIGNoaWxkLmxhc3RJbmRleCA9IHBhcmVudC5sYXN0SW5kZXg7CiAgICB9IGVsc2UgaWYgKGNsb25lLl9faXNEYXRlKHBhcmVudCkpIHsKICAgICAgY2hpbGQgPSBuZXcgRGF0ZShwYXJlbnQuZ2V0VGltZSgpKTsKICAgIH0gZWxzZSBpZiAodXNlQnVmZmVyICYmIEJ1ZmZlci5pc0J1ZmZlcihwYXJlbnQpKSB7CiAgICAgIGNoaWxkID0gbmV3IEJ1ZmZlcihwYXJlbnQubGVuZ3RoKTsKICAgICAgcGFyZW50LmNvcHkoY2hpbGQpOwogICAgICByZXR1cm4gY2hpbGQ7CiAgICB9IGVsc2UgewogICAgICBpZiAodHlwZW9mIHByb3RvdHlwZSA9PSAndW5kZWZpbmVkJykgewogICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHBhcmVudCk7CiAgICAgICAgY2hpbGQgPSBPYmplY3QuY3JlYXRlKHByb3RvKTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICBjaGlsZCA9IE9iamVjdC5jcmVhdGUocHJvdG90eXBlKTsKICAgICAgICBwcm90byA9IHByb3RvdHlwZTsKICAgICAgfQogICAgfQoKICAgIGlmIChjaXJjdWxhcikgewogICAgICB2YXIgaW5kZXggPSBhbGxQYXJlbnRzLmluZGV4T2YocGFyZW50KTsKCiAgICAgIGlmIChpbmRleCAhPSAtMSkgewogICAgICAgIHJldHVybiBhbGxDaGlsZHJlbltpbmRleF07CiAgICAgIH0KICAgICAgYWxsUGFyZW50cy5wdXNoKHBhcmVudCk7CiAgICAgIGFsbENoaWxkcmVuLnB1c2goY2hpbGQpOwogICAgfQoKICAgIGZvciAodmFyIGkgaW4gcGFyZW50KSB7CiAgICAgIHZhciBhdHRyczsKICAgICAgaWYgKHByb3RvKSB7CiAgICAgICAgYXR0cnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHByb3RvLCBpKTsKICAgICAgfQoKICAgICAgaWYgKGF0dHJzICYmIGF0dHJzLnNldCA9PSBudWxsKSB7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgY2hpbGRbaV0gPSBfY2xvbmUocGFyZW50W2ldLCBkZXB0aCAtIDEpOwogICAgfQoKICAgIHJldHVybiBjaGlsZDsKICB9CgogIHJldHVybiBfY2xvbmUocGFyZW50LCBkZXB0aCk7Cn0KCi8qKgogKiBTaW1wbGUgZmxhdCBjbG9uZSB1c2luZyBwcm90b3R5cGUsIGFjY2VwdHMgb25seSBvYmplY3RzLCB1c2VmdWxsIGZvciBwcm9wZXJ0eQogKiBvdmVycmlkZSBvbiBGTEFUIGNvbmZpZ3VyYXRpb24gb2JqZWN0IChubyBuZXN0ZWQgcHJvcHMpLgogKgogKiBVU0UgV0lUSCBDQVVUSU9OISBUaGlzIG1heSBub3QgYmVoYXZlIGFzIHlvdSB3aXNoIGlmIHlvdSBkbyBub3Qga25vdyBob3cgdGhpcwogKiB3b3Jrcy4KICovCmNsb25lLmNsb25lUHJvdG90eXBlID0gZnVuY3Rpb24gY2xvbmVQcm90b3R5cGUocGFyZW50KSB7CiAgaWYgKHBhcmVudCA9PT0gbnVsbCkKICAgIHJldHVybiBudWxsOwoKICB2YXIgYyA9IGZ1bmN0aW9uICgpIHt9OwogIGMucHJvdG90eXBlID0gcGFyZW50OwogIHJldHVybiBuZXcgYygpOwp9OwoKLy8gcHJpdmF0ZSB1dGlsaXR5IGZ1bmN0aW9ucwoKZnVuY3Rpb24gX19vYmpUb1N0cihvKSB7CiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvKTsKfTsKY2xvbmUuX19vYmpUb1N0ciA9IF9fb2JqVG9TdHI7CgpmdW5jdGlvbiBfX2lzRGF0ZShvKSB7CiAgcmV0dXJuIHR5cGVvZiBvID09PSAnb2JqZWN0JyAmJiBfX29ialRvU3RyKG8pID09PSAnW29iamVjdCBEYXRlXSc7Cn07CmNsb25lLl9faXNEYXRlID0gX19pc0RhdGU7CgpmdW5jdGlvbiBfX2lzQXJyYXkobykgewogIHJldHVybiB0eXBlb2YgbyA9PT0gJ29iamVjdCcgJiYgX19vYmpUb1N0cihvKSA9PT0gJ1tvYmplY3QgQXJyYXldJzsKfTsKY2xvbmUuX19pc0FycmF5ID0gX19pc0FycmF5OwoKZnVuY3Rpb24gX19pc1JlZ0V4cChvKSB7CiAgcmV0dXJuIHR5cGVvZiBvID09PSAnb2JqZWN0JyAmJiBfX29ialRvU3RyKG8pID09PSAnW29iamVjdCBSZWdFeHBdJzsKfTsKY2xvbmUuX19pc1JlZ0V4cCA9IF9faXNSZWdFeHA7CgpmdW5jdGlvbiBfX2dldFJlZ0V4cEZsYWdzKHJlKSB7CiAgdmFyIGZsYWdzID0gJyc7CiAgaWYgKHJlLmdsb2JhbCkgZmxhZ3MgKz0gJ2cnOwogIGlmIChyZS5pZ25vcmVDYXNlKSBmbGFncyArPSAnaSc7CiAgaWYgKHJlLm11bHRpbGluZSkgZmxhZ3MgKz0gJ20nOwogIHJldHVybiBmbGFnczsKfTsKY2xvbmUuX19nZXRSZWdFeHBGbGFncyA9IF9fZ2V0UmVnRXhwRmxhZ3M7CgpyZXR1cm4gY2xvbmU7Cn0pKCk7CgppZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcgJiYgbW9kdWxlLmV4cG9ydHMpIHsKICBtb2R1bGUuZXhwb3J0cyA9IGNsb25lOwp9CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIpKQoKLyoqKi8gfSksCi8qIDI4NCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX18oMTE3KS5Ccm90bGlEZWNvbXByZXNzQnVmZmVyOwoKCi8qKiovIH0pLAovKiAyODUgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKICAgQml0IHJlYWRpbmcgaGVscGVycwoqLwoKdmFyIEJST1RMSV9SRUFEX1NJWkUgPSA0MDk2Owp2YXIgQlJPVExJX0lCVUZfU0laRSA9ICAoMiAqIEJST1RMSV9SRUFEX1NJWkUgKyAzMik7CnZhciBCUk9UTElfSUJVRl9NQVNLID0gICgyICogQlJPVExJX1JFQURfU0laRSAtIDEpOwoKdmFyIGtCaXRNYXNrID0gbmV3IFVpbnQzMkFycmF5KFsKICAwLCAxLCAzLCA3LCAxNSwgMzEsIDYzLCAxMjcsIDI1NSwgNTExLCAxMDIzLCAyMDQ3LCA0MDk1LCA4MTkxLCAxNjM4MywgMzI3NjcsCiAgNjU1MzUsIDEzMTA3MSwgMjYyMTQzLCA1MjQyODcsIDEwNDg1NzUsIDIwOTcxNTEsIDQxOTQzMDMsIDgzODg2MDcsIDE2Nzc3MjE1Cl0pOwoKLyogSW5wdXQgYnl0ZSBidWZmZXIsIGNvbnNpc3Qgb2YgYSByaW5nYnVmZmVyIGFuZCBhICJzbGFjayIgcmVnaW9uIHdoZXJlICovCi8qIGJ5dGVzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByaW5nYnVmZmVyIGFyZSBjb3BpZWQuICovCmZ1bmN0aW9uIEJyb3RsaUJpdFJlYWRlcihpbnB1dCkgewogIHRoaXMuYnVmXyA9IG5ldyBVaW50OEFycmF5KEJST1RMSV9JQlVGX1NJWkUpOwogIHRoaXMuaW5wdXRfID0gaW5wdXQ7ICAgIC8qIGlucHV0IGNhbGxiYWNrICovCiAgCiAgdGhpcy5yZXNldCgpOwp9CgpCcm90bGlCaXRSZWFkZXIuUkVBRF9TSVpFID0gQlJPVExJX1JFQURfU0laRTsKQnJvdGxpQml0UmVhZGVyLklCVUZfTUFTSyA9IEJST1RMSV9JQlVGX01BU0s7CgpCcm90bGlCaXRSZWFkZXIucHJvdG90eXBlLnJlc2V0ID0gZnVuY3Rpb24oKSB7CiAgdGhpcy5idWZfcHRyXyA9IDA7ICAgICAgLyogbmV4dCBpbnB1dCB3aWxsIHdyaXRlIGhlcmUgKi8KICB0aGlzLnZhbF8gPSAwOyAgICAgICAgICAvKiBwcmUtZmV0Y2hlZCBiaXRzICovCiAgdGhpcy5wb3NfID0gMDsgICAgICAgICAgLyogYnl0ZSBwb3NpdGlvbiBpbiBzdHJlYW0gKi8KICB0aGlzLmJpdF9wb3NfID0gMDsgICAgICAvKiBjdXJyZW50IGJpdC1yZWFkaW5nIHBvc2l0aW9uIGluIHZhbF8gKi8KICB0aGlzLmJpdF9lbmRfcG9zXyA9IDA7ICAvKiBiaXQtcmVhZGluZyBlbmQgcG9zaXRpb24gZnJvbSBMU0Igb2YgdmFsXyAqLwogIHRoaXMuZW9zXyA9IDA7ICAgICAgICAgIC8qIGlucHV0IHN0cmVhbSBpcyBmaW5pc2hlZCAqLwogIAogIHRoaXMucmVhZE1vcmVJbnB1dCgpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICB0aGlzLnZhbF8gfD0gdGhpcy5idWZfW3RoaXMucG9zX10gPDwgKDggKiBpKTsKICAgICsrdGhpcy5wb3NfOwogIH0KICAKICByZXR1cm4gdGhpcy5iaXRfZW5kX3Bvc18gPiAwOwp9OwoKLyogRmlsbHMgdXAgdGhlIGlucHV0IHJpbmdidWZmZXIgYnkgY2FsbGluZyB0aGUgaW5wdXQgY2FsbGJhY2suCgogICBEb2VzIG5vdGhpbmcgaWYgdGhlcmUgYXJlIGF0IGxlYXN0IDMyIGJ5dGVzIHByZXNlbnQgYWZ0ZXIgY3VycmVudCBwb3NpdGlvbi4KCiAgIFJldHVybnMgMCBpZiBlaXRoZXI6CiAgICAtIHRoZSBpbnB1dCBjYWxsYmFjayByZXR1cm5lZCBhbiBlcnJvciwgb3IKICAgIC0gdGhlcmUgaXMgbm8gbW9yZSBpbnB1dCBhbmQgdGhlIHBvc2l0aW9uIGlzIHBhc3QgdGhlIGVuZCBvZiB0aGUgc3RyZWFtLgoKICAgQWZ0ZXIgZW5jb3VudGVyaW5nIHRoZSBlbmQgb2YgdGhlIGlucHV0IHN0cmVhbSwgMzIgYWRkaXRpb25hbCB6ZXJvIGJ5dGVzIGFyZQogICBjb3BpZWQgdG8gdGhlIHJpbmdidWZmZXIsIHRoZXJlZm9yZSBpdCBpcyBzYWZlIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiBhZnRlcgogICBldmVyeSAzMiBieXRlcyBvZiBpbnB1dCBpcyByZWFkLgoqLwpCcm90bGlCaXRSZWFkZXIucHJvdG90eXBlLnJlYWRNb3JlSW5wdXQgPSBmdW5jdGlvbigpIHsKICBpZiAodGhpcy5iaXRfZW5kX3Bvc18gPiAyNTYpIHsKICAgIHJldHVybjsKICB9IGVsc2UgaWYgKHRoaXMuZW9zXykgewogICAgaWYgKHRoaXMuYml0X3Bvc18gPiB0aGlzLmJpdF9lbmRfcG9zXykKICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIGVuZCBvZiBpbnB1dCAnICsgdGhpcy5iaXRfcG9zXyArICcgJyArIHRoaXMuYml0X2VuZF9wb3NfKTsKICB9IGVsc2UgewogICAgdmFyIGRzdCA9IHRoaXMuYnVmX3B0cl87CiAgICB2YXIgYnl0ZXNfcmVhZCA9IHRoaXMuaW5wdXRfLnJlYWQodGhpcy5idWZfLCBkc3QsIEJST1RMSV9SRUFEX1NJWkUpOwogICAgaWYgKGJ5dGVzX3JlYWQgPCAwKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBlbmQgb2YgaW5wdXQnKTsKICAgIH0KICAgIAogICAgaWYgKGJ5dGVzX3JlYWQgPCBCUk9UTElfUkVBRF9TSVpFKSB7CiAgICAgIHRoaXMuZW9zXyA9IDE7CiAgICAgIC8qIFN0b3JlIDMyIGJ5dGVzIG9mIHplcm8gYWZ0ZXIgdGhlIHN0cmVhbSBlbmQuICovCiAgICAgIGZvciAodmFyIHAgPSAwOyBwIDwgMzI7IHArKykKICAgICAgICB0aGlzLmJ1Zl9bZHN0ICsgYnl0ZXNfcmVhZCArIHBdID0gMDsKICAgIH0KICAgIAogICAgaWYgKGRzdCA9PT0gMCkgewogICAgICAvKiBDb3B5IHRoZSBoZWFkIG9mIHRoZSByaW5nYnVmZmVyIHRvIHRoZSBzbGFjayByZWdpb24uICovCiAgICAgIGZvciAodmFyIHAgPSAwOyBwIDwgMzI7IHArKykKICAgICAgICB0aGlzLmJ1Zl9bKEJST1RMSV9SRUFEX1NJWkUgPDwgMSkgKyBwXSA9IHRoaXMuYnVmX1twXTsKCiAgICAgIHRoaXMuYnVmX3B0cl8gPSBCUk9UTElfUkVBRF9TSVpFOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5idWZfcHRyXyA9IDA7CiAgICB9CiAgICAKICAgIHRoaXMuYml0X2VuZF9wb3NfICs9IGJ5dGVzX3JlYWQgPDwgMzsKICB9Cn07CgovKiBHdWFyYW50ZWVzIHRoYXQgdGhlcmUgYXJlIGF0IGxlYXN0IDI0IGJpdHMgaW4gdGhlIGJ1ZmZlci4gKi8KQnJvdGxpQml0UmVhZGVyLnByb3RvdHlwZS5maWxsQml0V2luZG93ID0gZnVuY3Rpb24oKSB7ICAgIAogIHdoaWxlICh0aGlzLmJpdF9wb3NfID49IDgpIHsKICAgIHRoaXMudmFsXyA+Pj49IDg7CiAgICB0aGlzLnZhbF8gfD0gdGhpcy5idWZfW3RoaXMucG9zXyAmIEJST1RMSV9JQlVGX01BU0tdIDw8IDI0OwogICAgKyt0aGlzLnBvc187CiAgICB0aGlzLmJpdF9wb3NfID0gdGhpcy5iaXRfcG9zXyAtIDggPj4+IDA7CiAgICB0aGlzLmJpdF9lbmRfcG9zXyA9IHRoaXMuYml0X2VuZF9wb3NfIC0gOCA+Pj4gMDsKICB9Cn07CgovKiBSZWFkcyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBiaXRzIGZyb20gUmVhZCBCdWZmZXIuICovCkJyb3RsaUJpdFJlYWRlci5wcm90b3R5cGUucmVhZEJpdHMgPSBmdW5jdGlvbihuX2JpdHMpIHsKICBpZiAoMzIgLSB0aGlzLmJpdF9wb3NfIDwgbl9iaXRzKSB7CiAgICB0aGlzLmZpbGxCaXRXaW5kb3coKTsKICB9CiAgCiAgdmFyIHZhbCA9ICgodGhpcy52YWxfID4+PiB0aGlzLmJpdF9wb3NfKSAmIGtCaXRNYXNrW25fYml0c10pOwogIHRoaXMuYml0X3Bvc18gKz0gbl9iaXRzOwogIHJldHVybiB2YWw7Cn07Cgptb2R1bGUuZXhwb3J0cyA9IEJyb3RsaUJpdFJlYWRlcjsKCgovKioqLyB9KSwKLyogMjg2ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCnZhciBiYXNlNjQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI4Nyk7CnZhciBmcyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CgovKioKICogVGhlIG5vcm1hbCBkaWN0aW9uYXJ5LWRhdGEuanMgaXMgcXVpdGUgbGFyZ2UsIHdoaWNoIG1ha2VzIGl0IAogKiB1bnN1aXRhYmxlIGZvciBicm93c2VyIHVzYWdlLiBJbiBvcmRlciB0byBtYWtlIGl0IHNtYWxsZXIsIAogKiB3ZSByZWFkIGRpY3Rpb25hcnkuYmluLCB3aGljaCBpcyBhIGNvbXByZXNzZWQgdmVyc2lvbiBvZgogKiB0aGUgZGljdGlvbmFyeSwgYW5kIG9uIGluaXRpYWwgbG9hZCwgQnJvdGxpIGRlY29tcHJlc3NlcyAKICogaXQncyBvd24gZGljdGlvbmFyeS4g8J+YnAogKi8KZXhwb3J0cy5pbml0ID0gZnVuY3Rpb24oKSB7CiAgdmFyIEJyb3RsaURlY29tcHJlc3NCdWZmZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDExNykuQnJvdGxpRGVjb21wcmVzc0J1ZmZlcjsKICB2YXIgY29tcHJlc3NlZCA9IGJhc2U2NC50b0J5dGVBcnJheShfX3dlYnBhY2tfcmVxdWlyZV9fKDI4OCkpOwogIHJldHVybiBCcm90bGlEZWNvbXByZXNzQnVmZmVyKGNvbXByZXNzZWQpOwp9OwoKCi8qKiovIH0pLAovKiAyODcgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwoKCmV4cG9ydHMuYnl0ZUxlbmd0aCA9IGJ5dGVMZW5ndGgKZXhwb3J0cy50b0J5dGVBcnJheSA9IHRvQnl0ZUFycmF5CmV4cG9ydHMuZnJvbUJ5dGVBcnJheSA9IGZyb21CeXRlQXJyYXkKCnZhciBsb29rdXAgPSBbXQp2YXIgcmV2TG9va3VwID0gW10KdmFyIEFyciA9IHR5cGVvZiBVaW50OEFycmF5ICE9PSAndW5kZWZpbmVkJyA/IFVpbnQ4QXJyYXkgOiBBcnJheQoKdmFyIGNvZGUgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycKZm9yICh2YXIgaSA9IDAsIGxlbiA9IGNvZGUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKICBsb29rdXBbaV0gPSBjb2RlW2ldCiAgcmV2TG9va3VwW2NvZGUuY2hhckNvZGVBdChpKV0gPSBpCn0KCi8vIFN1cHBvcnQgZGVjb2RpbmcgVVJMLXNhZmUgYmFzZTY0IHN0cmluZ3MsIGFzIE5vZGUuanMgZG9lcy4KLy8gU2VlOiBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CYXNlNjQjVVJMX2FwcGxpY2F0aW9ucwpyZXZMb29rdXBbJy0nLmNoYXJDb2RlQXQoMCldID0gNjIKcmV2TG9va3VwWydfJy5jaGFyQ29kZUF0KDApXSA9IDYzCgpmdW5jdGlvbiBwbGFjZUhvbGRlcnNDb3VudCAoYjY0KSB7CiAgdmFyIGxlbiA9IGI2NC5sZW5ndGgKICBpZiAobGVuICUgNCA+IDApIHsKICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCcpCiAgfQoKICAvLyB0aGUgbnVtYmVyIG9mIGVxdWFsIHNpZ25zIChwbGFjZSBob2xkZXJzKQogIC8vIGlmIHRoZXJlIGFyZSB0d28gcGxhY2Vob2xkZXJzLCB0aGFuIHRoZSB0d28gY2hhcmFjdGVycyBiZWZvcmUgaXQKICAvLyByZXByZXNlbnQgb25lIGJ5dGUKICAvLyBpZiB0aGVyZSBpcyBvbmx5IG9uZSwgdGhlbiB0aGUgdGhyZWUgY2hhcmFjdGVycyBiZWZvcmUgaXQgcmVwcmVzZW50IDIgYnl0ZXMKICAvLyB0aGlzIGlzIGp1c3QgYSBjaGVhcCBoYWNrIHRvIG5vdCBkbyBpbmRleE9mIHR3aWNlCiAgcmV0dXJuIGI2NFtsZW4gLSAyXSA9PT0gJz0nID8gMiA6IGI2NFtsZW4gLSAxXSA9PT0gJz0nID8gMSA6IDAKfQoKZnVuY3Rpb24gYnl0ZUxlbmd0aCAoYjY0KSB7CiAgLy8gYmFzZTY0IGlzIDQvMyArIHVwIHRvIHR3byBjaGFyYWN0ZXJzIG9mIHRoZSBvcmlnaW5hbCBkYXRhCiAgcmV0dXJuIChiNjQubGVuZ3RoICogMyAvIDQpIC0gcGxhY2VIb2xkZXJzQ291bnQoYjY0KQp9CgpmdW5jdGlvbiB0b0J5dGVBcnJheSAoYjY0KSB7CiAgdmFyIGksIGwsIHRtcCwgcGxhY2VIb2xkZXJzLCBhcnIKICB2YXIgbGVuID0gYjY0Lmxlbmd0aAogIHBsYWNlSG9sZGVycyA9IHBsYWNlSG9sZGVyc0NvdW50KGI2NCkKCiAgYXJyID0gbmV3IEFycigobGVuICogMyAvIDQpIC0gcGxhY2VIb2xkZXJzKQoKICAvLyBpZiB0aGVyZSBhcmUgcGxhY2Vob2xkZXJzLCBvbmx5IGdldCB1cCB0byB0aGUgbGFzdCBjb21wbGV0ZSA0IGNoYXJzCiAgbCA9IHBsYWNlSG9sZGVycyA+IDAgPyBsZW4gLSA0IDogbGVuCgogIHZhciBMID0gMAoKICBmb3IgKGkgPSAwOyBpIDwgbDsgaSArPSA0KSB7CiAgICB0bXAgPSAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkpXSA8PCAxOCkgfCAocmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAxKV0gPDwgMTIpIHwgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMildIDw8IDYpIHwgcmV2TG9va3VwW2I2NC5jaGFyQ29kZUF0KGkgKyAzKV0KICAgIGFycltMKytdID0gKHRtcCA+PiAxNikgJiAweEZGCiAgICBhcnJbTCsrXSA9ICh0bXAgPj4gOCkgJiAweEZGCiAgICBhcnJbTCsrXSA9IHRtcCAmIDB4RkYKICB9CgogIGlmIChwbGFjZUhvbGRlcnMgPT09IDIpIHsKICAgIHRtcCA9IChyZXZMb29rdXBbYjY0LmNoYXJDb2RlQXQoaSldIDw8IDIpIHwgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMSldID4+IDQpCiAgICBhcnJbTCsrXSA9IHRtcCAmIDB4RkYKICB9IGVsc2UgaWYgKHBsYWNlSG9sZGVycyA9PT0gMSkgewogICAgdG1wID0gKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpKV0gPDwgMTApIHwgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMSldIDw8IDQpIHwgKHJldkxvb2t1cFtiNjQuY2hhckNvZGVBdChpICsgMildID4+IDIpCiAgICBhcnJbTCsrXSA9ICh0bXAgPj4gOCkgJiAweEZGCiAgICBhcnJbTCsrXSA9IHRtcCAmIDB4RkYKICB9CgogIHJldHVybiBhcnIKfQoKZnVuY3Rpb24gdHJpcGxldFRvQmFzZTY0IChudW0pIHsKICByZXR1cm4gbG9va3VwW251bSA+PiAxOCAmIDB4M0ZdICsgbG9va3VwW251bSA+PiAxMiAmIDB4M0ZdICsgbG9va3VwW251bSA+PiA2ICYgMHgzRl0gKyBsb29rdXBbbnVtICYgMHgzRl0KfQoKZnVuY3Rpb24gZW5jb2RlQ2h1bmsgKHVpbnQ4LCBzdGFydCwgZW5kKSB7CiAgdmFyIHRtcAogIHZhciBvdXRwdXQgPSBbXQogIGZvciAodmFyIGkgPSBzdGFydDsgaSA8IGVuZDsgaSArPSAzKSB7CiAgICB0bXAgPSAoKHVpbnQ4W2ldIDw8IDE2KSAmIDB4RkYwMDAwKSArICgodWludDhbaSArIDFdIDw8IDgpICYgMHhGRjAwKSArICh1aW50OFtpICsgMl0gJiAweEZGKQogICAgb3V0cHV0LnB1c2godHJpcGxldFRvQmFzZTY0KHRtcCkpCiAgfQogIHJldHVybiBvdXRwdXQuam9pbignJykKfQoKZnVuY3Rpb24gZnJvbUJ5dGVBcnJheSAodWludDgpIHsKICB2YXIgdG1wCiAgdmFyIGxlbiA9IHVpbnQ4Lmxlbmd0aAogIHZhciBleHRyYUJ5dGVzID0gbGVuICUgMyAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlcwogIHZhciBvdXRwdXQgPSAnJwogIHZhciBwYXJ0cyA9IFtdCiAgdmFyIG1heENodW5rTGVuZ3RoID0gMTYzODMgLy8gbXVzdCBiZSBtdWx0aXBsZSBvZiAzCgogIC8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXIKICBmb3IgKHZhciBpID0gMCwgbGVuMiA9IGxlbiAtIGV4dHJhQnl0ZXM7IGkgPCBsZW4yOyBpICs9IG1heENodW5rTGVuZ3RoKSB7CiAgICBwYXJ0cy5wdXNoKGVuY29kZUNodW5rKHVpbnQ4LCBpLCAoaSArIG1heENodW5rTGVuZ3RoKSA+IGxlbjIgPyBsZW4yIDogKGkgKyBtYXhDaHVua0xlbmd0aCkpKQogIH0KCiAgLy8gcGFkIHRoZSBlbmQgd2l0aCB6ZXJvcywgYnV0IG1ha2Ugc3VyZSB0byBub3QgZm9yZ2V0IHRoZSBleHRyYSBieXRlcwogIGlmIChleHRyYUJ5dGVzID09PSAxKSB7CiAgICB0bXAgPSB1aW50OFtsZW4gLSAxXQogICAgb3V0cHV0ICs9IGxvb2t1cFt0bXAgPj4gMl0KICAgIG91dHB1dCArPSBsb29rdXBbKHRtcCA8PCA0KSAmIDB4M0ZdCiAgICBvdXRwdXQgKz0gJz09JwogIH0gZWxzZSBpZiAoZXh0cmFCeXRlcyA9PT0gMikgewogICAgdG1wID0gKHVpbnQ4W2xlbiAtIDJdIDw8IDgpICsgKHVpbnQ4W2xlbiAtIDFdKQogICAgb3V0cHV0ICs9IGxvb2t1cFt0bXAgPj4gMTBdCiAgICBvdXRwdXQgKz0gbG9va3VwWyh0bXAgPj4gNCkgJiAweDNGXQogICAgb3V0cHV0ICs9IGxvb2t1cFsodG1wIDw8IDIpICYgMHgzRl0KICAgIG91dHB1dCArPSAnPScKICB9CgogIHBhcnRzLnB1c2gob3V0cHV0KQoKICByZXR1cm4gcGFydHMuam9pbignJykKfQoKCi8qKiovIH0pLAovKiAyODggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKbW9kdWxlLmV4cG9ydHM9Ilc1L2ZjUUxuNWdLZjJYVWJBaVExWFVMWCtUWno2QURUb0RzZ3FrNnFWZmVDMGU0bTZPTzJ3Y1ExSjc2WkJWUlYxZlJrRXNkdS8vNjJ6UXNGRVpXU1RDbk1oY3NRS2xTMnFPaHVWWVlNR0NrVjBmWFdFb01GYkVTWHJLRVo5d2RVRXN5dzlnNGJKbEV0MVk2b1ZNeE1SVEVWYkNJd1p6Snpib0s1ajhtNFlIMDJxZ1hZaHYxVitQTTQzNXNMVnh5SEppaGFKUkVFaFpHcUwwM3R4R0ZRTG03NmNhR08vb3Z4S3Z6Q2J5LzN2TVR0WC80NTlmMGlnaTdXdXRuS2lNUTZ3T0RTb1JoLzhMeDFWM1E5OU12S3R3QjZiSGRFUllSWTBoU3RKb01qTmVUc05YN2JuK1k3ZTRFUTNiZjh4QmM3TDBCc3lmRlBLNDNkR1NYcEw2Y2xZQy9JMzI4aDU0L1ZZclE1aTA2NDhGZ2JHdGw4MzdzdkozNUwzTW90LytuUGxOcFdnS3gxZ0dYUVlxWDZuK2JiWjd3dXlDSEtjVW9rMTJYanF1YjdOWFpHenFCeDBTRCt1emlOZjg3dDd2ZTQyanhTS1FvVzNueXhWcldJR2xGU2hoQ0t4anBaWjVNZUduYTArbEJraytrYU44RjlxRkJBRmdFb2d5TUJkY1gvVDFXL1duTU9pLzd5Y1dVUWxvRUJLR2VDNDhNa2l3cUprSk8rMTJlUWlPRkhNbWNrNnEvSWpXVzNSWmxhbnkyM1RCbStjTnIvODQvb2k1R0dtR0JaV3JaNmorenlrVm96ejVmVC9RSC9EYTZXVGJaWVlQeW5WTk83a3h6dU5OMmt4S0tXY2hlNVd2ZWl0UEtBZWNCOFljQUh6Lyt6WExqY0x6a2REU2t0TklEd1pFOUo5WCt0dG80M29KeTY1d0FwTTNtRHpZdEN3WDlsTStONVZSM2tYWW8wWjN0MFR0WGZnQkZnN2dVOG9OMERnbDdmWmxVYmhObGwrMHV1b2hSVktqckVkOGVnclNuZHk1L1RnZDJncWpBNENBVnVDN0VTVW1MM0Rab0duZmhRVjh1d25waThFR3ZBVlZzb3dOUnhQdWRjazcrb3FBVURrd1pvcFdxRm5XMXJpc3MwdDF6NmlDSVNWS3JlWUdOdlFjWHYrMUw5K2piUDhjZC9kUFVpcUJzbzJxKzdaeUZCdkVOQ2trVnI0NGl5UGJ0T29Pb0NlY1dzaXVxTVNNTDVsdit2TjVNelVyK0RuaDczRzdRMVluUllKVllYSFJKYU5BT0J5aWFLNkN1c2dGZEJQRTQwcjBydnFYVjd0a3NLTzJEckhZWEJUdjhQNXlzcXhFeDhWRFhVRERxa1BINk5OT1YvYTJXSDh6bGtYUkVMU2E4UCtoZU55SkJCUDdQZ3NHMUV0V3ROZWY2L2krbGNheXpRd1FDc2R1aWRwYktmaFdVRGdBRW15aEd1L3pWVGFjSTZSUzB6VEFCck9ZdWVlbW5WYTE5dTlmVDIzTi9UYTZSdlRwb2Y1RFd5Z3FyZUNxckRBZ000TElEMSsxVC90YVU2eVRGVkxxWE92Ky9NdVFPRm5hRjh2TE1LRDd0S1dEb0JkQUxneEYzM3pRY2NDY2RIeDhmS0lWZFc2OU83cUh0WHBlR3I5amJicEZBK3FSTVdyNWhwMHM2N0ZQYzdIQWlMVjBnMC9wZVpsVzdoSlBZRWhaeWhwU3dhaG5mOTMvdFpnZnFaV1hGZG1kWEJ6cXhHSExyUUt4b0FZNmZSb0JoZ0NSUG1tR3VlWVo1SmV4VFZES1VJWHprRy9mcXAvMFUzaEFnUWRKOXp1bXV0SzZucVdiYXF2bTFwZ3UwM0lZUitHKzhzMGpEQkJ6OGNBcFpGU0JldVdhc3lxbzJPTURLQVpDb3pTK0dXU3ZML0hzRTlySHhvb2UxN1Uzcy9sVEUrVlpBazRqM2RwNnVJR2FDMEpNaXFSNUNVc2FiUHlNMGRPWURSN0VhN2lwNFVTWmx5YTM4WWZQdHZyWC90QmxoSGlsajU1bloxbmZOMjRBT0FpOUJWdHovTWJuOEFFREpDcUpnc1ZVYTZuUW5TeHYyRnM3bC9ObEN6cGZZRWptUHJOeWliLyt0MGVpMmVFTWp2TmhMa0hDWmxjaTRXaEJlN2VQWlRtellxbFk5KzFweHRTNEdCKzVsTTFCSFQ5dFMyNzBFV1VEWUZxMUkweVkvZk5pQWs0Yms5eUJnbWVmL2YyazZBbFlRWkhzTkZuVzh3QlF4Q2Q2OGlXdjcvMzViWGZ6M0pabWZHbGlnV0FLUmpJczNJcHp4UTI3dkFnbEhTaU96Q1l6SjlMOUExQ2RpeUZ2eVI2NnVjQTRqS2lmdTVlaHdFUjI2eVY3SGpLcW41TWZvem83Q294eHQ4TFdXUFQ0N0JlTXhYOHAwUGpiN2habis2Ync3ejNMdys3NjUzajVzSThDTHU1a1RocE1sajFtNGMyY2gzakdjUDFGc1QxM3Z1SzNxamVjS1RaazJrSGNPWlk0MFVYK3FkYXhzdFpxc3FRcWdYeitRR0Y5OVpKTHFyM1ZZdTRhZWNsMUFiNUdtcVM4ay9HVjViOTV6eFE1ZDRFZlhVSjZrVFMvQ1hGL2FpcUtET1QxVDdKejV6MFB3RFVjd3I5Y2xMTjFPSkdDaUtmcXZhaCtoM1h6ckJPaUxPVzh3dm44Z1c2cUU4dlB4aStFZnYrVUg1NVQ3UFFGVk1oNmNaMXBaUWx6SnBLWjdQN3VXdndQR0o2RFRsUjZ3YnlqM0l2Mkh5ZWZuUm8vZHY3ZE54K3FhYTBOMzhpQnNSKytVaWw3V2Q0YWZ3RE5zcnpEQUs0Zlhad3ZFWS9qZEt1SUtYbGZyUWQyQzM5ZFc3bnRuUmJJcDlPdEd5OXBQQm4vVjJBU29pLzJVSlpmUyt4dUdMSDhibkx1UGx6ZFROUzZ6ZHlrOER0L2g2c2ZPVzVteXhoMWYremYzelozTVgvbU85Y1FQcDVwT3g5NjdaQTYvcHFIdmNsTmZuVUZGK3JxK1ZkN2FsS3I2S1dQY0lEaHBuNnYySzZObFV1NkxyS284Yi9wWXBVL0dhemZ2dHdobjd0RU9VdVhodDVyVUpkU2Y2c0xqWWYwVlRZRGd3SjgxeWFxS1RVWWVqL3RiSGNrU1JiL0haaWN3R0pxaDFtQUhCL0l1TnM5ZGM5eXV2RjNENVhvY20zZWxXRmRxNW9FeTcwZFlGaXQ3OXlhTGlOalBqNVVVY1ZtWlVWaFFFaFc1VjJaNkNtNEhWSC9SOHFsYW1SWXdCaWxldWgwN0NiRWNlM1RYYTJKbVhXQmYrb3p0MzE5cHNib29iZVpoVm53aE1aek9lUUp6aHBURGJQNzFUdjhIdVp4eFVJLyttYTNYVzZERkREczQrcW1wRVJ3SEdCZDJlZHh3VUtsT0RSZFVXWi9nMEdPZXpyYnpPWmF1Rk1haTRRVTZHVkhWNmFQTkJpQm5kSFNzVjRJenB2VWlpWXlnNk95eXJMNERqNXEvTHczTjVrQXdmdEVWbDlyTmQ3Sms1UERpajJoVEg2d0lYbnN5WGtLZVB4Ym1IWWdDOEE2YW41Rm9iL0tINUd0QzBsNGVGc28rVnB4ZWR0SkhkSHBObStCdnk0Qzc5eVZPa3Jac0xyUTNPSENlQjBSYStrQklSbGRVR2xEQ0VtcTJSd1huZnloNkR6K2FsazZlZnRJMm42c2FzdFJyR3did3N6QmVEUlMvRmEvS3dSSmtDelRzTHIvSkNzNWhPUEUvTVBMWWRaMUYxZnY3RCtWbXlzWDZOcE9DOGFVOUY0UXM2SHZEeVV5OVB2RkdES1ovUDUxMDFUWUhGbDhwamo2d20vcXlTNzVldFpoaGZnMFVFTDRPWW1IazZtNmRPMTkyQXpvSXlQU1Y5UWVkREE0TWwyM3JSYnF4TVBNeGY3RkpuRGM1RlRFbFZTL1B5cWdlUHptd1ZaMjZOV2hSRFErb2FUN2x5N2VsbDRzM0R5cFMxczBnK3RPcjdYSHJya1pqOSt4L21KQnR0ckx4OThsRklhUlp6SHo0YUM3cjUyL0pRNFZqSGFoWTIvWVZYWm4vUUMyenRRYi9zWTN1Umx5YzV2UVM4bkxQR1QvbjI3NDk1aThIUEExNTJ6N0ZoNWFGcHluMUdQSktIdVBMOEl3OTREdVczS2prVVJBV1pYbjRFUXk4OXhpS0VITjFtay90a000Z1lEQnh3Tm9ZdlJmRTZMRnFzeFdKdFByREdic25MTWFwM0thM01Vb3l0VzBjdmllb3pPbWRFUm1oY3F6RyszSG1adjJ5WmVpSWVRVEtHZFJUNEhITnhla20xdFkrL24wNnJHbUZsZXFMc2NTRVJ6Y3RUS002RzlQMFBjMVJtVnZyYXNjSXhhTzFDUUNpWVBFMTViRDdjM3hTZVc3Z1h4WWpneGNyVWxjYkl2TzByK1lwbGh4MGtUdDNxYWZET21GeU1qZ0d4WHU3M3JkZE1IcFYxd011YnlBR2NmL3Y1ZExyNVA3MlRhOWxCRitmek1Kck15Y3d2Kzl2blUzQU5JbDFjSDl0Zlc3YWY4dTAvSEcwdlY0N2pORlh6RlR0YWhhMXh2emUvczhLTXRDWXVjWGMxbnpmZC9NUXlkVVhuL2I3MlJCdDV3Ty8zalJjTUg5QmRoQy95Y3RLQkl2ZVJZUHJOcERXcUJzTzhWTW1QK1d2UmFPY0E0elJNUjFQdlNvTzkyclM3cFlFditmWmZFZlRNekVkTSs2WDV0TGx5eEV4aHFMUmttczVFdUxvdkxmeDY2ZGU1ZkwyL3lYMDJINTJGUFZ3YWhyUHFtTi9FMG9WWG5zQ0toYmkveVJ4WDgzblJiVUtXaHpZY2VYT250ZnVYbjUxTnN6SjZNTzczcFFmNVBsNGluM2VjNEpVOGhGN3BwVjM0K21tOXIxTFkwZWUvaTFPMXdwZDgremZMenRFMGNxQnhnZ2lCaTVCdTk1djlsM3I5ci9VNWh3ZUxuK1RiZnhvd3JXRHFkSmF1S2Q4K3EvZEg4c2JQa2M5dHR1eU85NGY3L1hLL25IWDQ2TVBGTEViNXFRbE5QdmhKNTAvNTl0OWZ0M0xYdTd1VmFXYU8yYkRyRENuUlN6WnlXdkZLeE8xK3ZUOE13d3VuUjNiWDBDa2ZQanFiNEs5TzE5dG41WDUwUHZtWXBFd0h0aVc5V3R6dVYvczc2QjF6dkxMTmtWaU5kOHlTeElsLzNvcmZxUDkwVHlUR2FmNy9yeDhqUXplSEpYZG1oL042WUR2YnZtVEJ3Q2R4ZkVRMU5jTDZ3Tk1kU0lYTnE3YjFFVXpSeTEvQXhzeWs1cDIyR01HMWIrR3hGZ2JIRXJaaDkyd3V2Y28wQXVPTFhjdDlodncybncvTHFJY0RSUm1KbW1aemNnVWE3SnBNL1dWL1M5SVVmYkY1NlRMMm9yenF3ZWJkUkQ4bklZTko0MUQvaHozN0ZvMTFwMlkyMXd6UGNuNzEzcVZHaHF0ZXZTdFlmR0g0bjY5T0VKdFB2YmJMWVd2c2NEcWMzSGdudTE2Nit0QXlMbnhyWDBZNXpvWWpWKysxc0k3dDVrTXIwMktULyt1d3RrYytyWkxPZi9xbi9zM25ZQ2YxM0RnOC9zQjJkaUpnakdxalErVExoeGJ6eXVlMk9iN1g2LzlsVXdXN2ErbGJ6bkh6T1l5OExLVzFDL3VSUGJRWTNLVy8wZ085TFh1bkhMdlBMOTdhZmJhOWJGdGM5aG16N0dBdHRqVllsQ3ZRQWlPd0FrL2dDNStoa0xFczZ0cjNBWkt4TEp0T0V3azJkTHhUWVdzSUIvai9Ub1d0SVd6bzkwNkZyU0c4aWFxcXFxcXFpSWlJaUFnek16TXpOeitBeUsrMDEvemk4bjhTK1kxTWpvUmFRODBXVS9HOE1CbE8rNTNWUFhBTnJXbTR3ekdVVlpVampCSlpWZGhwY2ZranNtY1dhTytVRWxkWGkxZSt6cStIT3NDcGtuWXNodWg4cE9MSVNKdW43VE4wRUlHVzJ4VG5sT0ltZWVjbm9HVzRyYXhlMkcxVDNIRXZmWVVZTWhHK2dBRk9Bd2g1bks4bVpod0pNbU43cjIyNFFWc05Gdlo4N1owcWF0dmtua2x5UERLM0h5NDVQZ1ZLWGppNTJXZW40ZDRQbEZWVllHbk5hcCtmU3BGYks5MHJZbmhVYzZuOTFRM0FZOUUwdEpPRnJjZlp0bS80OTFYYmNHL2pzVmlVUFBYNzZxbWV1aXorcVkxSGs3LzFWUE00MDV6V1Z1b2hlTFVpbXBXWWRWekNtVWRLSGViTWR6Z3JZcmI4bUwyZWVMU25SV0hkb25mWmE4UnNPVTlGMzd3KzU5MWw1RkxZSGlPcVdlSHRFL2xXckJIY1JLcDN1aHRyOHlYbThMVS81bXMrTk02WktzcXU5MGNGWjRvNTgrazRyZHJ0Qjk3TkFERmJ3bUVHN2xYcXZpcmhPVE9xVTE0eHVVRjJteUlqVVJjUEhyUE9RNGxtTTNQZU1nN2JVdWswbm5aaTY3YlhzVTZIOGxocUlvOFRhT3JFYWZDTzFBUks5UGpDMFFPb3EyQnhtTWRnWUI5Ry9sSWI5KytmcU5KMnM3QkhHRnlCTm1aQVI4SjNLQ28wMTJpa2FTUDhCQ3JmNlZJMFg1eGRuYmhISU8rQjVyYk95QjU0elhremZPYnlKNGVjd3hmcUJKTUxGYzdtNTlyTmN3N2hvSG5GWjBiMDB6ZWUrZ1RxdmptNjFQYjR4bjBrY0RYNGp2SE0wckJYWnlwRzNEQ0tuRC9XYWEvWnRIbXRGUGdPNWVFVHgrazdSclZnM2FTd20yWW9OWG5DczNYUFFEaE5uK0ZpYTZJbE9PdUlHNlZKSDdUUDZhdmEyNmVoS0hRYTJUNE4wdGNaOWRQQ0dvM1pkbk5sdHNIUWJlWXQ1dlBuSmV6Vi9jQWVOeXBkbWwxdkNISThNODFuU1JQNVFpMittSTh2L3N4aVpydTkxODduUnRwM2YvNDJOZW1jT05hKzRlVkMzUENaemM4OGFaaDg1MUNxU3NzaGU3MHVQeGVOL2RtWXdsd2IzdHJ3TXJOMUdxOGpibkFwY1ZEeC95RFBlWXM1LzdyNjJ0c1E2bExnK0RpRlhURWh6UjlkSHF2MGlUNHRnajgyNVcrSDNYaVJVTlVaVDJrUjlSaTArbHArVU0zaVF0Uzh1T0UyM0x5NEtZdHZxSDEzamdoVW50SlJBZXd1ek5MRFhwOFJ4ZGNhQTNjTVk2VE8ySWVTRlJYZXplV0lqQ3F5aHNVZE1ZdUNnWVRaU0twQnlwZTF6UmZxOEZzaHZmQlBjNkJBUVdsNy9ReElEcDNWR28xSjN2bjQyT0VzM3F6bndzK1lMUlhieW15QjE5YTlYQng2bi9vd2N5eGxFWXlGV0NpK2tHOUYrRXlELzR5bjgwK2FnYVo5UDdheTJEbnk5OWFLMm85MUZrZkVPWThoQnd5Zmk1dXd4Mnk1U2FIbUcrb3EvemwxRlgvOGlyT2Y4WTN2QWNYLzZ1TFA2QTZudk1PMjRlZFNHUGpRYzgyN1J3MmF0WCt6MmJLcTBDbVc5bU90WW5yNS9BZkRhMVpmUGFYbkt0bFdib3J1cDdRWXgrT3IydVdiK04zTi8vMit5RGNYTXFJSmRmNTV4bDcvdnNqNFdvUFBseEx4dFZya0o0dy90VGUzbUxkQVRPT1l3eGNxNTJ3NVd4ejVNYlBkVnM1TzgvbGhmRTdkUGowYklpUFEzUVYwaXFtNG0zWVg4aFJmYzZqUTNmV2VwZXZNcVVESmQ4Nlo0dndNNDBDV0hubitXcGhzR0hmaWVGMDJEM3RtWnZwV0Qra0JwTkNGY0xuWmhjbW1yaHBHenpiZEErc1ExYXIxOE9KRDg3SU9LT0ZvUk56bmFIUE5IVWZVTmh2WTFpVSt1aHZFdnBLSGFVbjNxSzNleFZWeVg0am9pcHAzdW03Rm1ZSldtQStXYklEc2hScGJWUng1L25xc3RDZ3k4N0ZHYmZWQjh5REdDcVMrMnFDc25Sd25TQU42emd6eGZkQjJuQlQvdlo0LzZ1eGI2b0g4YjRWQlJ4aUlCOTN3TGE0N2hHM3cyU0wvMloyN3lPWEpGd1pwU0phQll5dmFqQTd2UlJZTktxbGpYS3B0L0NGRC90U01yMThES0tid0IweGdnQmVQYXRsMW5raTB5dnFXNXpjaGx5Wm1KME9UeEozRCtmc1lKcy9teFlONStMZTVvYWd0Y2wrWXNWdnk4a1NqSTJZR3ZHanZtcGtSUzlXMmR0WHFXblZ1eFVoVVJtMWxLdG91L2hkRXExOVZCcDlPakd2SEVRU21ycHVmMlIyNG1YR2hlaWw4S2VpQU5ZOGZXMVZFUlVmQkltYjY0ajEyY2FCWm1SVmlaSGJlVk1qQ3JQRGc5QTkwSVhydG5zWUN1WnRSUTBQeXJLRGpCTk9zUGZLc2cxcEEwMmdIbFZyME9YaUZodHA2bkpxWFZ6Y2JmTTBLbnpDM2dnT0VOUEU5VkJkbUhLTjZMWWFpamI0d1h4Sm41QTBGU0RGNWoraDFvb1p4ODg1SnQzWkt6TzVuN1o1V2ZORU90eXlQcVFFbm43V0x2NUZpczNQZGdNc2hqRjFGUnlkYk55ZUJieUtJMW9OMVRSVnJWSzdrZ3NiL3pqWDRORFBJUk1jdFZlYXhWQjM4VmgxeDVLYmVKYlUxMzhBTTVLem1adTN1bnkwRXJ5Z3hpSkY3R1ZYVXJQekZ4cmx4MXVGZEFhWkZETjljdkliNzRxRDl0ekJNbzdMN1dJRVlLK3NsYTFEVk1IcEYwRjdiMytZNlMremp2TGVETUNwYXBtSm8xd2VCV3V4S0Yzck9vY2loMWd1bjRCb0poMWtXblYvSm1pcTZ1T2hLM1ZmS3hFSEVrYWZqTGdLM291amFQelk2U1hnOHBoaEw0VE5SMXh2SmQxV2EwYVlGZlBVTUxyTkJEQ2g0QXVHUlRidEtNYzZaMVVkajhldlkvWnBDdU1BVWVmZG82OURaVW5nb3FFMVA5QTNQSmZPZjdXaXhDRWorWTZ0N2ZZZUhiYnhVQW9GVjNNODljQ0tmbWEzZmMxK2pLUmU3TUZXRWJRcUVmeXpPMngvd3JPMlZZSDdpWWRROUJrUHlJOC8za1hCcExhQ3BVN2VDMFl2L2FtL3RFRHU3SFpwcWcwRXZIbzBuZi9SL2dSelVXeTMzL0hYTUpRZXUxR3lsS21Pa1h6bENmR0ZydUFjUFBoYUdxWk90dTE5enNKMVNPMkp6NFp0dGg1Y0JYNm1SUXdXbUR3cnlHOUZVTWxaek5ja01kSytJb01KdjFyT1duQmFtUzJ3MktIaWFQTVBMQzE1aENabTRLVHBvWnlqNEUyVHFDL1A2cjcvRWhuRE1oS2ljWloxWnd4dUM3RFB6REdzNTNxOGdYYUk5a0ZUSysyTFRxN2Jod3NUYnJNVjhSc2Z1YTVsTVMwRndiVGl0VVZuVmExeVRiNUlYNTFtbVluVWNQOXdQcjhKaTF0aVlKZUpWOUdaVHJRaEY3dnZkVTJPVFU0Mm9nSjlGRHdobXljSTJMSWcrKzAzQzZzY1loVXlVdU1WNXRrdzZrR1VvTCttak5DMzgrd01kV05sam42dEdQcFJFUzd2ZXFyU241VFJ1ditkaDZKVkwvaURIVTFkYjRjOVdLMysrT3JIM1BxemlGOTE2VU1VS244RzY3bk42MEdmV2lIclhZaFVHM3lWV215WWFrNTlOSGo4dDFzbUc0VURpV3oyclBITnJLbk40Wm8xTEJicjIvZUY5WVowbjBibHgybkc0WCtFS0Z4dlMzVzI4SkVTRCtGV2s2MVZDRDN6L1VSR0hpSmwrKzdUZEJ3a0NqNnRHT0gzcURiMFFxY09GOUt6cGowSFViL0t5RlczWWhqMlZNS0pxR1psZUZCSDd2cXZmN1dxTEMzWE11SFY4cThhNHNURnV4VXRrRC82SklCdkthVmp2OTZuZGdydUtaMWsvQkh6cWYySzlmTGs3SEdYQU55TERkMXZ4a0svaTA1NXBuemwrenc2ekxud1hsVllWdGZtYWNKZ0VwUlAxaGJHZ3JZUFZONnYybEcraWRRTkdtd2NLWHUvOHhFai9QNnFlL3NCMldtd05wNnBwOGphSVNNa3dkbGVGWFlLNTVOSFdMVFRidXRTVXFqQmZER1dvL1lnOTE4cVErOEJSWlNBSFpiZnVOWnoyTzBzb3YxVWU0Q1dsVmczckZoTTNLbGpqOWtzR2QvTlVoazRuSCthNVVOMisxaTgrTk0zdlJOcDd1UTZzcWV4U0N1a0VWbFZacmlITnFGaTVyTG05VE1XYTRxbTNpZEpxcHBRQUNvbDJsNFZTdXZXTGZ0YTRKY1h5M2JST1BOYlhPZ2RPaEc0N0xDMEN3Vy9kTWxTeDRKZjE3YUVVM3lBMXg5cCtZYzBqdXBYZ2NNdVlOa3U2NGlZT2tHVG9WRHVKdmxiRUtsSnFzbWlIYnZOcklWWkVIK3lGZEY4RGJsZVo2aU5pV3dNcXZ0TXAvbVNwd3g1S3hSclQ5cDNNQVBUSEd0TWJmdmRGaHlqOXZoYUtjbjNBdDhMYzE2QWkrdkJjU3AxenRYaTdyQ0paeC9xbDdUWGNjbHE2UTc2VWVLV0R5OWJvUzBXSElqVXVXaFBHOExCbVc1eTJyaHVUcE01dnNMdCtIT0xoMVlmMERxWGE5dHNmQytrYUt0Mmh0QTBhaS9MMmk3UktvTmpFd3p0a21SVTBHZmdXMVR4VXZQRmhnMFY3RGRmV0prNWdmcmNjcFl2K01BOU0wZGtHVExFQ2VZd1VpeFJ6alJGZG1qRzd6ZFpJbDNYS0I5WWxpTktJMzFsZmE3aTJKRzVDOFNzK3JIZTBEN1o2OTYvVjNERUFPV0huUTl5TmFoTVVsNWtFTldTNnBIS0twMkQxQmFTcnJIZEUxdzJxTnhJenRwWGdVSXJGMGJtMTVZTUw0YjZWMWsrR3BOeXNUYWhLTVZyclM4NWxUVm85T0dKOTZJNDdlQXk1cllXcFJmL21JemVvWVUxREthUUNUVVZ3cmhIZXlOb0RxSGVsK2xMeHI5V0t6aFNZdzd2clI2K1Y1cTBwZmkyazNMMXpxa3ViWTZycmQ5Wkx2U3VXTmYwdXFua1krRnBUdkZ6U1c5RnAwYjlsOEpBN1RIVjllQ2kvUFkvU0NaSVVZeDNCVTJhbGo3Q20zVlY2ZVlwaW9zNGI2V3VOT0pkWVhVSzN6VHFqNUNWRzJGcVlNNFo3Q3VJVTBxTzA1WFIwZDcxRkhNMFloWm1KbVRSZkxsWEV1bU44MkJHdHpkWDBTMTl0MWUrYlVpZUs4elJtcXBhNFFjNVRTamlmbWFRc1kyRVRMamhJMzZnTVIxKzdxcGpkWFhIaWNlVWVrZkJhdWNIU2hBT2lGWG12M3NObUdReVU1aVZnbm9vY3VvblFYRVBURndzbEh0UzhSK0E0N1N0STl3ajBpU3J0Ymk1ck15c2N6RmlJbXNRK2JkRkNsbkZqanBYWHdNeTZPN3Fmak9yOEZiMGE3T0RJdGlzam5uM0VRTzE2K3lwZDFjd3lhQVc1WXp4ejVRa25mTU83NjQzZlhXL0k5eTNVMnhIMjdPYXBxcjU2Wi90RXpnbGo2SWJUNkhFSGpvcGlYcWVSYmU1bVFRdnh0Y2JET1Z2ZXJOMFpnTWR6cVJZUmphWHRNUmQ1NlE0Y1pTbWRQdlpKZFNyaEoxRDl6TlhQcUFFcVBJYXZQZGZ1YnQ1b2tlMmttdjBkenRJc3pTdjJWWXVveWYxVXVvcGJzWWIrdVg5aDZXcHdqcGd0WjZmTk5hd05KNHE4TzNDRm9TYmlvQWFPU1pNeDJHWWFQWUIrckViNnFqUWlOUkZRNzZUdndORlZLRCtCaEg5VmhjS0dzWHptTUk3QnB0VS9DTldvbE03WXpST3ZwRkFudHNpV0pwNmVSMmQzR2FyY1lTaFZZU1VxaG1ZT1dqNUU5Nk5LMld2bVlOVGVZN1pzNFJVRWR2OWg5UVQ0RXNlS3Q2THpMcnFFT3MzaHhBWTFNYU5XcFNhNnpaeDhGM1lPVmVDWU1TODhXK0NZSER1V2U0eW9jNllLK2RqRHVFT3JCUjVsdmgwcitROXVNODhscmp4OXg5QXRncFFWTkU4ciszTzZHdnc1OUQra0JGL1VNWHlobGlZVXRQam12WEdZNkRrM3gra0VPVytHdGRNVkM0RVpUcW9TL2ptUjBQMExTNzVET2MvdzJ2bnJpOTdNNFNkYlo4cWVVN2dnOERWYkVSa1U1Z2VhTVFPM21ZclNZeUFuZ2VVUXFyTjBDMC92c0ZtY2dXTlhOZWlkc1RBajcvNE1uY0pSMGNhYUJVcGJMSzF5QkNCTlJqRXY2S3Z1VlNkcFBuRU1KZHNSUnRxSitVOHROMWdYQTRlUEhjNlpUMGV2aUk3M1VPSkYwZkVaOFlhbmVBUXFRZEdwaE52d000bklxUG5YeFYweEEwZm5DVCtvQWhKdXl3L3E4ak8weThDalN0ZVpFeHdCcElONlN2TnA2QTVHL2FiaTZlZ2VORC8xR1RndWh1TmphVWJiblNiR2Q0TDg5MzdFem0zNEV5aTZuMW1hZU9CeGgzUEkwanpKRGY1bWgvQnNMRDdGMkdPS3ZsQS81Z3R2eEkzL2VWNHNMZktXNVd5K29pbytlcy91NlQ4VVUrbnNvZnk1N0ljYi9KbFpIUEZ0Q2dkL3grYnd0M1pUK3hYVHRUdFRyR0FiNFFlaEM2WDlHKzhZVCtvemNMeERzZENqc3VPcXdQRm5yZExZYUZjOTJVaTBtNGZyMzlsWW1sQ2FxVGl0N0c2Ty8za1dEa2d0WGpOSDRCaUVtLytqZWdRbmloT3RmZmZuMzNXeHNGamhmTWQ0OEhUK2Y2bzZYNjVqN1hSOFdMU0hNRmt4YnZPWXNyUnNGMWJvd0R1U1ExOE1reGs0cXoyem9HUEw1ZnU5aDJIcW10MWFzbDNRM1l1M3N6T2Mrc3BpQ21YNEFFVEJNM3BMb1RZU3Azc1Z4YWh5aEw4ZUM0bVBOOWsyeDNvMHhraWl4SXpNM0NaRnpmNW9SNG1lY1E1K2F4MndDYWgzL2NybW5Ib3FSMCtLTWFPUHhSaWYxb0VGUkZPTy9rVFBQbXR3dytOZk1YeEVLNmduNmlVMzJVNmZGcnVJejhRNFdnbGp0bmFDVlRCZ1d4N2RpVWRzaEM5WkVhNXlLcFJCQmVXMTJyL2lOYy8rRWdOcW1oc3dOQjhTQm9paEhYZURGN3JyV0RMY210M1Y4R1lZTjdwWFJ5NERaamo0REp1VUJMNWlDM0RRQWFvbzR2a2Z0cVZUWVJHTFMzbUhaN2dkbWRUVHFiZ05OL1BUZFRDT1RnWG9sYzg4TWhYQUVVTWRYMGl5MUpNdWs1d0xzZ2V1MFFVWWx6MlM0c2tUV3dKejZwT20vOGlocm1nR2ZGZ3JpK1pXVUsyZ0FQSGdiV2E4amFvY2RTdU00RkpZb0tpY1lYL1pTRU5rZzlRMVp6SmZ3U2NmVm5SMkRlZ09Hd0N2bW9nYVdKQ0xRZXB2OVdObFU2UWdzbU93SUNxdVUyOE1sazNkOVc1RTgxbFUvNUV6MExjWDZsd0tNV0RObHVOS2ZCRFV5L3BoSmdCY01uZmtoOWlSeHJkT3pnczA4SmRQQjg1THdvK0dVU2I0dDNuQyswYnlxTVp0TzJmUUo0VTJ6R0lyNDl0LzI4cW1tR3YyUmFuREQ3YTNGRWNkdHV0a1c4dHd3d2xVU3BiOFFhbG9kZGRiQmZOSEtEUTgyOEJkRTdPQmdGZGlLWW9oTGF3RllxcHliUW94QVRacmhlTGhkSTcrMFpsdTlRMW15UmNkMTVyOVVJbThLMkxHSnhxVGVnbnRxTlZNS25mMWE4elFpeVVSMXJ4b3FqaUZ4ZUh4cUZjWVVUSGZEdTdyaGJXbmc2cU94T3NJKzVBMXA5bVJ5RVBkVmtUbEUyNHZZNTRXN2JXYzZqTWdadk5YZGZDOS85cTc0MDhLRHNiZEw3VXR6N1FGU0RldHoycGljQXJ6cmRwTDhPYUNIQzlWMjZScm9lbXREWjV5Tk0vS0drV015VG1mbkluRXZ3dFNEMjNVY0ZjamhhRTNWS3prb2FFTUtHQmZ0NFhiSU82Zm9yVFkxbG1HUXdWbUtpY0JDaUFyRHpFKzFvSXhFMDhmV2V2aUlPRDVUem5xSCtPb0hhZHZvT1AyMGRyTVBlNUlyZzNYQlF6aVcyWER1SFl6anFRUTR3eVNzc2pYVXM1SCt0M0ZXWU1IcHBVbkJITXgvbllJVDVkN09takRiZ0Q5RjZuYTNtNGw3S2RrZVNPM2tURVBYYWZpV2lub2dhZzdiNTJ0YWlaaEwxVFN2QkZtRVphZkZxMkg4a2hRYVpYdWl0Q2V3VDVGQmdWdFBLMGo0eFVIUGZVejNRMjhlYWMxWjEzOURBUDIzZGdraTk0RUM4dmJEUFRRQzk3SFBQU1dqVU5HNXRXS01zYXhBRU1LQzA2NjVYdm8xTnRkMDd3Q0xOZjhRNTZtckVQVnBDeGxJTVZsUWxXUnhNM29BZnBnSWMrOEtDM3JFWFVvZzVnMDZ2dDd6Z1hZOGdySDdoaHdWU2FldXZDMDZZWVJBd3BieWsvVW56ajloTEVaTnMyb3hQUUI5eWMrR25MNnpUZ3E3ckkrK0tESndYMlNQOFNkNll6VHV3NWxWL2tVNmVReFJEMTJvbWZRQVc2Y2FUUjRMaWtZa0JCMUNNT3J2Z1JyL1ZZNzUrTlNCNDBDbmk2YkFEQXRhSyt2eXhWV3BmOU5lS0p4TjJLWVE4UTJ4UEIzSzFzN2Z1aHZXYnIyWHBnVzA0NFZENkRSczBxWG9xS2YxTkZzYUd2S0pjNDdsZVVWM3BwcFAvNVZUS0ZoYUd1b2w0RXNmamY1enlDeVVIbUh0aENoY1loNGhZTFFGK0FGV3N1cTR0MHdKeVdnZHdRVk9aaVYwZWZSSFBvSzUrRTF2ano5d1RKbVZrSVRDOW9Fc3RBc3laU2dFL2RiaWN3S3I4OVlVeEtaSStvd0QyMDVUbTVsbm5tRFJ1UC9Kbnp4WDNnTXRscmNYMFVlc1pkeHlRcVlRdUVXNFI1MXZtUTV4T1p0ZVVkOFNKcnVNbFRVemh0VncvTnE3ZVVCY3FOMi9IVm90Z2ZuZ2lmNjB5S0V0b1V4M1dZT1psVkp1Sk9oOHU1OWZ6U0RQRll0UWdxRFVBR3lHaFFPQXZLcm9YTWNPWVkwcWpuU3RKUi9HM2FQK0p0MXNMVmxHVjhQT3dyLzZPR3NxZXRueUYzVG1UcVpqRU5mblhoNTFveGU5cVZVdzJNNzhFekFKK0lNOGxaMU1CUFE5WldTVmM0SjNtV1NyTEtyTUhSZUE1cWRHb3owT0RSc2FBK3Z3eFhBMmNBTTRxbGZ6QkpBNjU4MW00aHp4SXRRdzVkeHJyQkwzWTZrQ2JVY0Z4bzFTOGp5VjQ0cS8vKzdBU05OdWRaNnhlYU5PU0lVZmZxTW40QTlsSWpGY3RZbjJncEVQQWIzZjdwM2lJQk44SDE0RlVHUTljdDJoUHNMK2NFc1RnVXJSNDd1SlZONG40d3Qvd2dmd3dIdU9uTGQ0eW9ia29meThKdnhTUVRBN3JNcERJYzYwOFNsWkZKZlpZY21iVDB0QUhwUEU4TXJ0UTQyc2lUVU5XeHF2V1pPbXZ1OWYwSlBvUW1nKzZsN3NaV3d5Zmk2UFhreEpud0JyYVVHME1ZRzR6WUhRejNpZ3kvWHNGa3g1dE5ReHc0M3F2STlkVTNmMERkaE9VbEhLam1pMVZBcjJLaXkwSFp3RDhWZUViaGgwT2lEZE1Zc3BvbFFzWWRTd2pDY2plb3dJWE5aVlVQbUwyd3dJa1lobVhLaEdvemRDSjRsUktic2Y0TkJoL1huUW9TOTJOSkVXT1ZPRnMyWWhOOGM1UVpGZUswcFJkQUc0MGhxdkxibW9TQTh4UW16T09FYzd3TGNtZTlKT3NqUENFZ3BDd1VzOUUyRG9oTUhSaFVleUdJTjZURnZyYm55OG5EdWlsc0RwenJINW1TNzZBUG9JRUptSXRTNjdzUUorbmZ3ZGR6bWpQeGNCRUJCQ3cwa1dEd2QwRVpDa05lT0Q3Tk5RaHRCbTdLSEw5bVJ4ajZVMXlXVTJwdXpsSUR0cFl4ZEg0WlBlWEJKa1RHQUpmVXIvb1RDei9peXBZNnVYYVIyVjFkb1B4SllscncyZ2hIMEQ1Z2JyaEZjSXh6WXdpNGEvNGhxVmRmMkRkeEJwNnZHWURqYXZ4TUFBb3krMSszYWlPNlMzVy9RQUtOVlhhZ0R0dnNOdHg3S3MrSEtnbzZVMjFCK1FTWmdJb2dWNUJ0K0JuWGlzZFZmeTlWeVhWKzJQNWZNdXZkcEFqTTFvL0s5WitYbkU0RU9DcnVlK2tjZFlIcUFRMC9ZL09tTmxRNk9JMzNqSC91RDFSYWxQYUhwSkFtMmF2MC94dHBxZFhWS05EcmM5RjJpem8yM1d1N2ZpcmdiVVJGRE5YOWVHR2VZQmhpeXB5WFpmdDJqM2hUdnpFNlBNV0tzb2QvL3JFSUxEa3pCWGZpN3hoMGVGa2ZiMy8xenpQSy9QSTVOazNGYlp5VGw0bXE1QmZCb1ZvcWlQSE80UTRRS1pBbHJRM01kTmZpM294SWp2c00za0FGdjNmZHVmdXJxWVIzUFN3WC9tcEd5L0dGSS9CMk1OUGlOZE9wcFdWYnMvZ2pGM1lIK1FBOWpNaGxBYmh2YXNBSHN0QjBJSmV3MDlpQWttWEhsMS9URWoranZIT3BPR3JQUlFYYlBBRE0rSWcyL09FY1VjcGdQVEl0TXRXNERkcWdmWVZJLys0aEFGV1lqVUdwT1AvVXdOdUI3K0JiS09jQUxiam9iZGd6ZUJRZmpnTlNwMkdPcHh6R0xqNzBWdnE1Y3cyQW9ZRU53S0xVdEpVWDhzR1JveDRkVmEvVE40eEt3YUtjbDlYYXdRUi91TnVzNzAwSGYxN3B5Tm5lenJVZ2FZOWU0TUFEaEVEQnBzSlQ2eTFnREpzMXE2d2x3R2h1VXpHUjdDOGtncGpQeUhXd3N2cmYzeW4xekpFSVJhNWVTeG9MQVpPQ1I5eGJ1enR4RlJKVzlabU1ZZkNGSjBldm05RjJmVm51amU5MlJjNFBsNkE4Ymx1TjhNWnl5SkdaMCtzTlNiLy9EdkFGeEMyQnFsRXNGd2NjV2VBbDZDeUJjUVYxYng0bVFNQlAxSnhxazFFVUFETkxlaWVTMmRVRmJRL2Mva3Z3SXRiWjd0eDBzdDE2dmlxZDUzV3NSbVBUS3YyQUQ4Q1VuaHRQV2c1YVVlZ05wc1lnYXNhdzIrRVZvb2VOS21yVzNNRnRqNzZiWUhKbTVLOWdwQVhaWHNFNVU4RE04WG1WT1NKMUYxV25MeTZuUXVwK2p4NTJiQWIrckNxNnk5V1hsMkIyb1pEaGZEa1c3SDNvWWZULzR4eDVWbmNCdXhNWFAybE5maFVWUWpTU3pTUmJ1WkZFNHZGYXdsenZlWHhhWUtWczhMcHZBYjhJUllGM1pIaVJubTBBRGVOUFdvY3d4U3pOc2VHN05yU0VWWm9IZEtXcWFHRUJ6MU44UHQ3a0ZicWgzTFltQWJtOWkxSUNoSXBMcE01QVM2bXI2T0FQSE13d3puVnk2MVlwQllYOHhaRE4vYStsdDduK3g1ajRiTk9WdGVaOGxqM2hwQUhTeDFWUjh2WkhlYzRBSE85WEZDZGpaOWVSa1NWNjVsak1tWlZ6YWVqMnFGbi9xdDFsdld6TlpFZkh4SzNxT0pySEw2Y3JyMENSek1veDVmMmU4QUxCQjRVR0ZaS0EzdE42RjZJWGQzMkdUSlhHUTdEVGk5ai9kTmNMRjlqQ2JEY1dHS3hvS1RZYmxJd2JMRFJlTDAwTFJjRFBNY1F1WExNaDVZemd0ZmprRksxRFAxaUR6ellZVlp6NU0va1dZUmxScGlnMWh0VlJqVkNrbm0raDFNNUxpRURYT3lIUkVodnpDR3BGWmpIUzBSc0syN28yYXZnZGlsckprYWxXcVBXM0Q5Z213VjM3SEttZk0zRjhZWmoyYXIrdkhGdmYzQjhDUm9INGtESElLOW1yQWcrb3dpRXdOampkOVYrRnNRS1lSOGN6SnJVa2Y3UW9pMllhVzZFVkRacDV6WWxxaVl0dVhPVEhrNGZBY1o3cUJiZExEaUpxMFdOVjFsMitIbnRrMW1NV3Z4clltYzhrSXg4RzNyVzM2SjZSYTRsTHJUT0NnaU9paG1vdytZbnpVVDE5amJWMkIzUldxU0h5eGtobWdzQnFNWVd2T2NVb20xakRRNDM2K2ZjYnUzeGYyYmJlcVUvY2ErQzRET0tFK2UzcXZtZU1xVzNBeGVqZnpCUkZWY3dWWVBxNEwwQVBTV1dvSnUrNVVZWDRxZzVVNllUaW9xUUdQRzlYcm51Wi9Ca3h1WXBlNkxpODcrMThFc2t5UVcvdUErdWsycnBIcHI2aHV0MlRsVmJLZ1drRnB4K0FaZmZ3ZWl3MitWaXR0a0V5Zi9pZmluUy8wSXRSTDJKcTN0UU9jeFBhV08yeHJHNjhHZEZvVXBaZ0ZYYVAyd1lWdFJjNnhZQ2ZJMUNhQnF5V3BnNGJ4OE9IQlF3c1Y0WFdNaWJaWjBMWWpXRXkySXhRMW1acmYxL1VOYllDSnBsV3Uzblo0V3BvZElHVkEwNWQrUldTUytFVDl0SDNSZkdHbU5JMWNJWTdldlpacTdvK2EwYmpqeWdwbVIzbVZmYWxrVC9TWkdUMjdROFFHYWx3R2xET1M5VkhDeUZBSUwwYTFRN0ppVzNzYXo5Z3FZOGxxS3luRnJQQ3p4a1U0U0lmTGM5VmZDSTVlZGdSaERYczBlZE85OTJuaFRLSHJpUkVQMU5KQzZTUk9NZ1EweE81a05OWk9oTU9JVDk5QVVFbGJ4cWVaRjhBM3hyZkRKc1d0RG5VZW5BSGRZV1N3QWJZakZxUVorRDVnaTNoTks4Q1N4VTlpNmY2Q2xMOUlHbGoxT1BNUUFzcjg0WUc2aWpzSnBDYUdXajc1YzN5T1pLQkI5bU5wUU5QVUtrSzBENndnTEg4TUdveVJ4VFg2WTA1UTRBbllOWE1ad1hNNGVpai85V3BzTS85Q29SbkZRWEdSNk1FYVkrRlh2WEVPM1JPMEphU3RrNk9YdUhWQVRISkUrMVcrVFUzYlNaMmtzTXRxak8wemZTSkNkQnY3eTJkOERNeDZUZlZtZTNxMFpwVEtNTXU0WUwvdDdjaVROdGREa3dQb2doM0Nuang3cWswOFNId2YrZGtzWjdNMnZDT2xmc0YwaFE2SjRlaFBDYUhUTnJNL3pCU09xRDgzZEJFQkNXL0YvTEVtZWgwbk9IZDdvVmwzL1FvLzlHVURra2JqN3l6KzljdnZ1K2REQXR4OE56Q0RUUDRpS2Radms5TVdpaXp2dElMTGVweXNmbFN2VExGQlozN1JMd2lyaXF5UnhZdi96cmdGZC85WFZIaC9PbXpCdkRYNG1pdE1SL2xVYXZzMlZ4NmNSOTRsekFrcGxtM0lSTnk0VEZmdTQ3dHVZczlFUVBJUFZ0YTRQNjR0VitzWjduM3VlZDNjZ0V4MllLK1FMNSt4bXM2b3NrOHFRYlR5dUtWR2RhWDlGUXFrNnFmRG5UNXlreGswVks3S1o2MmI2RE5EVWZRbHFHSHhTTUt2MVAwWE41QnFNZUtHMVA0V3A1UWZaRFVDRWxkcHBvWDBVNnNzMmpJa28yWHBVUktDSWhmYU9xTFBmU2hkdFMzN1pyVCtqRlJTSDJ4WVZWMXJtVC9NQnRSUWh4aU80TVEzaUFHbGFaaSs5UFdCRUlYT1ZudTlqTjFmOTIxbFdMWmt5OWJxYk0zSjJNQUFJOWptdUF4M2d5b0VVYTZQMml2czBFZU52L09SK0FYNnE1U1c2bDVIYW9GdVM2anI2eWc5bGltdStQMEtZS3pmTVhXY1FTZlRYenBPektFS3B3STNZR1hacFNTeTJMVGxNZ2ZtRkEzQ0Y2UjVjOXhXRXRSdUNnMlpQVVEyTmI2ZFJGVE5kNFRmR0hybkVXU0tIUHVSeWlKU0RBWitLWDBWeG1TSGpHUGJRVExWcHFpeGlhMnV5aFEzOTRnQk10N0MzWkFteG4vREpTK2wxZkJzQW8yRWlyL0Mwakc5Y3NkNCsvdHAxMnBQYy9CVkpHYUs5bWZ2cjdNL0NlenRybUNPNXFZMDZFZGk0eEFHdGlFaG5XQWJ6THkyVkV5YXpFMUo1blBtZ1U0UnBXNFNhMFRuT1Q2dzVsZ3QzL3RNcFJPaWdISG1leEJHQU1ZMG1kY0RiRHhXSXo0MU5nZEQ2b3hnSHNKUmdyNVJuVDZ3WkFrVE9jU3RVNE5NT1FOZW1TTzdneEdhaGRFc0MrTlJWR3hNVWhRbW1NMGxsV1JiYm1GR0h6RXFMTTRJdzBINzU3N0t5bytaZisyY1VGSU93OTNnRVkxNzF2UWFNMEhMd3BqcGRSUjZKejdWMGNrRTdYellKMFRtWTl6bkxkemt2YTB2TnJBR0dUNVNVWjV1YUhEa2NHdkkweVNwd2thc0VnWlBNc2VZY3U4NXc4SFBkU05pKzRUNkE4M2lBd0RieGdlRmNCMVpNMmlHWHpGY0VPVWxZVnJFY2thT3lvZGZ2YVlTUTdHdUI0SVNFMG5ZSmMxNVgvMWNpRFRQYlBDZ1lKSzU1VmtFb3I0THZ6TDlTMldEeTR4ais2Rk9xVnlUQUMyWk5vd2hlZWVTSTVoQS8wMmw4VVlrdjRuazlpYVZuK2tDVkVVc3RnazVIeXErZ0ptNlI5dkczcmh1TTkwNGhlL2hGbU5RYVVJQVRCMXkzdncrT214UDRYNVlpNkE1STVqSnVmSENqRjkrQUdOd25FbGxaalVjbzZYaHNPNVQ1K1IzeXh6NXlMVk9uQW4wenVTKzZ6ZGowblRKYkVaQ2JYSmR0cGZZWmZDZUNPcUpIb0UydlBQRlM2ZVJMaklKbEc2OVg5M25mUjBteFNGWHpwMVpjMGx0L1ZhZkRhSW1oVU10Ym5xV1ZiOU00bkdOUUxONjhCSFA3QVI4SWw5ZGtjeHptQnY4UENabHc5Z3VZMGx1cmJCc21OWWx3SlpzQS9CMTUvSGZrYmpid1BkZGFWZWNscy9lbG1ESE5XMnI0Y3JBeDQzZmVOa2ZSd3NhTnEveXlKMGQvcDVoWjZBWmFqejdEQmZVb2swWlU2MmdDeno3eDhlVmZKVEtBOElXbjQ1dklOTFNNMXErSEY5Q1Y5cUYzelA2TWwyMWtQUEwzQ1h6a3VZVWxuU3FUK0lqNHRJL29kNUt3SXMrdERhakRzNjRvd043dE9BZDZldWNHeitLZk8yNmlOY0JGcGJXQTU3MzJiQk5XTzRrSE5wcjlEOTU1TDYxYnZIQ0YvbXdTcno2ZVFhRGpmREVBTnFHTWtGYytOR3hwS1p6Q0Qyc2ovSnJIZCt6bFBROEl6N1ErMkpWSWlWQ3VDS29LL2hsQUVIenZrL1BpcTNtUkwxclQvZkVoOWhvVDVHSm1lWXN3ZzFvdGlLeWRpekovZlMyU2VLSFZ1NlozSkVIamlXOE5hVFFnUDV4ZEJsaThuQzU3WGlOOWhycXVCdTk5aG45enF3bzkyK1BNMkpYdHBlVlpTMFBkcVI1bUR5RHJlTU10RXdzK0Nwd2FSeXl6b1l0ZmN2dDlQSklXMGZKVk5OaS9GRnlSc2VhN3BlTHZKckwrNWI0R09YSjh0QXIrQVRrOWY4S21pSXNSaHFSeTB2Rnp3UlYzWjVkWjNRcUlVOEpRL3VRcGtKYmpNVU1GajJGOXNDRmVhQmpJNCtmTC9vTjMrTFFnakk0enVBZlErM0lQSVBGUUJjY2YwY2xKcHNmcG5CeEQ4NGF0d3R1cGtHcUt2ckg3Y0dObC9RY1djU2k2d2NWRE1MNmxqT2dZYm8rMkJPQVdOTmpsVUJQaXlpdFVBd2JuaEZ2TGJucXc0MmtSM1lwMmt2MmRNZURkY0dPWDVrVDRTNk00NEtIRUIvU3BDZmw3eGdzVXZzK0pOWTlHM08yWC82RkV0OUZ5QW41N2xyYml1K3RsODNzQ3ltU3ZxOWVaYmU5bWNoTDdNVGYvVGE3OGU4MHpTZjBoWVk1ZVVVNytmZjE0anY3WHk4cWp6Znp6enZhSm5ySWR2RmI1QkxXS2NXR3k1L3c3K3ZWMmN2SWZ3SHFkVEIrUnVKSzVvajltYnQwSHk5NEFtak1qandZTlpsTlM2dWl5eE5ud055dDNnZHJlTGI2NHAvMyswOG5Ya2I5MkxUa2tSZ0ZPd2sxb0dFVmxsY09qNWx2MWhmQVp5d0Rvd3MwOTQ0VTh2VUZ3K0EvbnVWcS9VQ3lnc3JtV0lCbkh5VTAxZDBYSlB3cmlFT3Z4L0lTSzZQazR5MncwZ21valpzN2xVOFR0YWtCQWRuZTR2L2FOeG1NcEs0VmNHTXA3c2kweXFzaW9sWFJ1T2kxWjFQN1NxRDNabXAwQ1djeUs0VWJtcDJTWGlYdUk1bkdMQ2llRkhLSE5SSWxjWTNQeXMyZHdNVFlDYXFseVdTSVR3cjJvR1h2eVUzaDFQZjhlUTN3MWJuRDdpbG9jVmpZRGtjWFIzT28xQlhnTUxUVWpOdzJ4TVZ3anRwOTlOaFNWYzVhSVdyRFFUNURIUEt0Q3RoZUJQNHpIY3c0ZHoyZVJkVE1hbWhsSGh0ZmdxSkpISTdOR0RVdzFYTDh2c1NlU0h5S3FEdHFvQW1yUXFzWXd2d2k3SFczb2pXeWhJYTVvejV4SlRhcTE0TkF6RkxqVkxSMTJyUk5VUTZ4b2hEbnJXRmI1Ykc5eWY4YUNEOGQ1cGhvYWNrY05KcCtEdzNEdWUzUk0rNVJpZDdFdUlnc253Z3BYMHJVV2gvbnFQdEJ5TWhNWlo2OU5wZ3ZSVEtaNjJWaVorUTdEcDVyNEswZDdFZkp1aXkwNkt1SVlhdVJoNUVjcmhkdDJRcFRTMWsxQXNjRUh2YXBOYlUzSEwxRjJURnlSMzNXeGI1TXZINWlac3JuM1NEY3N4bG5uc2hPOFBMd21kR04rcGFXblF1T1J0WkdYMzd1aEZUNjRTZXVQc3g4VU9va1k2T044NVdkUTFka2k1ekVyc0pHYXpjQk9kZFdKRUtxTlBpSnBzTUQxR3JWTHJWWStBT2RQV1FuZVR5eVAxaFJYL2xNTTRab2dHR09oWXVBZHI3Ri9ET2lBb2MrK2NuNXZsZjB6a01VSjQwWjFybGd2OUJlbFBxVk9weEtlT3B6S2RGOG1hSysxVnYyM01POWsvOCtxcExveHJJR0gyRURRbG5HbUg4Q0QzMUc4UXFseVFJY3BtUjVid21TVnc5L05zNklIZ3VsQ1JlaHZaLytWck02MEN1L3IzQW9udEZmcmxqZXc3NHNrWWUydXluN0pLUXRGUUJRUko5cnlHaWMvelFPc2JTNHNjVUJjdEE4Y1BUb1EzeDZaQlF1NkRQdTVtMWJuQ3RQOFRsbExZQTBVVFFOVnF6YTVuZmV3M01vcHkxR1BVd0c1anNsME9WWG5pUG1BY21McU81SEc4SHYzblNMZWNFOW9PalBEWGNzVHhvQ0J4WXl6QmRqNHdtbnlFVjRrdkZEdW5pcFM4U1NrdmRhTW5UQk45YnJIVVI4eGRtbUVBcC9QZHFrOXVleHRwMXQrSnJ0WHdwTi9NRzJ3L3FoUk1wU054UTF1aGcva0tPMzBlUS9GeUhVRGtXSFQ4VjZnR1JVNERoRE14WnU3eFhpajlVaTZqbHBXbVFDcUpnM0ZrT1RxM1dLbmVDUllaeEJYTU5BVkxRZ0hYU0NHU3FOZGplYlk5NG95SXBWak1ZZWhBaUZ4L3RxekJYRkhaYUw1UGVlRDc0clc1T3lzRm9VWFk4c2ViVVpsZUZUVWEvK3pCS1ZURkRvcFRSZVhOdVpxNDdRamtXbnhqaXJDb21tTzRML0dyRnRWVjIxRXBNeXc4d3lUaEw1WTU5ZDg4eHRseDFnMXR0U0lDRHdub2Y2bHQvNnpsaVB6Z1ZVTDhqV0JqQzBvMkQ2S2crak51VGhrQWxhREpzcS9BRzJhS0EvL0E3NmF2dzJLTnF0djIyM1ArV3EzU3RSREROS0ZGZ3RzRnVrWXQxR0ZEV29vRlZYaXRhTmhiM1JDeUppNGNNZU5qUk9pUEVEYjRrK0czK2hEOHRzZys1aGhtU2MvOHQySlRTd1lvQ3pBSTc1ZG9xOFFUSGUrRS9UdzBSUVNVRGxVKzZ1QmVOTjNoNmpKR1gvbUg4b2owaTNjYUNOc2p2VG5vaDczQnR5WnBzZmxITHE2QWZ3Sk5DRFg0Uzk4aDQrcENPaEdLRGhWM3J0a0tITWEzRUc0Sjl5OHpGV0k0VXNmTnpDL1JsNW1pZE5uN2d3b045ajIzSEdDUVErT0FacFRUUE1kaVZvdzc0MGdJeXVFdGQwcVZ4TXlOWGhIY251WFJLZHc1d0RVU0wzNThrdGpNWG1Ba3ZJQjczQkxhMXZmRjlCQVVaSW5QWUppd3hxRldRUUJWazdnUUg0b2pmVVEvS0VqbitBL1dSNkVFZTRDdGJwb0xlMW16SGthamdUSW9FMFNMREhWYXVLaHJxMTJ6ckFYQkdiUFBXS0N0NERHZWRxM0p5R1JibVBGVzMyYkU3VDIwKzczQmF0Vi9xUWhoQldmV0JGSGZoWVdYakFMdHMzOEZlbW5vVCs5Ym4xakRCTWNVTW1ZZ1NjMGU3R1FqdjJNVUJ3TFU4aW9uQ3BnVitRcmhnN2lVSWZVWTZKRnhSMFkrWlRDUE0rclZ1cTBHTkx5SlhYNm5yVVR0OEh6RkJSWTFFL0ZJbTJFZVZBOU5jWHJqN1M2WVlJQ2hWUUNXci9tMmZZVWpDNGowWExrelo4R0NTTGZta1czUEIveHErbmxYc0tWQk9qN3ZUdnFLQ09NcTdadHFyM2NRK044Z0JuUGFBcHMrb0d3V09rYnV4blJZai94L1dqaURjbFZyczIyeE1LNHFBckUxWnRrMTQ1NmtpSnJpdzZhYmtOZVJIb2dhUFJCZ2JnRjlaOGkvdGJ6V0VMTjRDdmJxdHJxVjlUdEdTbm1QUzJGOWtxT0lCYWF6SFlhSjliaTNBb0RCdmxaYXNNbHV4dDBCRFhmaHAwMkpuNDExYVZ0NlM0VFVCOFpnRkRrSTZUUDZnd1BZODV3K29VUVNzakllWFZtaW5yd0lkSzJaQWF3YjhTZTZYT0piT2FsaVF4SFNybkFlT05ETHVDbkZlaklicDRZRHRCY1FDd01zWWlSWmZIZWZ1RUpxSmN3S1RUSjhzeDVoakhtSkkxc1BGSE9yNlc5QWhaMk5Bb2QzOG1uTFFrMWdPejJMQ0FvaG9RYmdNYlVLOVJNRUEzTGtpRjdTcjl0TFpwNmxrY2lJR2hFMlY1NDZ3M01hbTUzVnRWa0diQjl3MFlrMlhpUm5DbWJweG1IcjJrNGVTQzBSdU5iak5zVWZESWZjOERadlJ2Z1VEZTFJbEtkWlR6Y1Q0WkdFYjUzZHA4VnRzb1pseVh6TEhPZEFic3AxTFBUVmFIdkxBMEdZREZNYkFXL1dVQmZVQWRId3FMRkFWKzN1SHZZV3JDZmhVT1IyaTg5cXZDQm9PYjQ4dXNBR2RjRjJNNGFLbjc5ay80M1d6QloreFIxTDB1WmZpYTcwWFA5c29RUmVldWhaaVVuWEZERzFUOC9PWE5tc3NUU25ZTysza1ZMQWdlaVk3MTl1RHdMOUZReWNnTFBlc3NOaWhNWmJBS0c3cXdQWnlHMTFHMStaQTNqQVgyeWRkcFlmbWFLQmxtZmNLL1YwbXdJUlVEQzBuSlNPUFVsMktCOGgxM0Y0ZGxWWmlSaGRHWTVmYXJ3TitmOWhFYjFjUmk0MVpjR0RuNlhlOU1NU1RPWTgxVUxKeVhJSFNXRklRSHN0VllMaUpFaVVqa3RsSGlHam50TjUvYnRCOEZ1K3ZwMjh6bDJmWlhOK2RKRHlONkVYaFMrMHl6cXBsL0xTSk5FVVZ4bXU3QnNOZGpBWTBqVnNBaGtOdXVZMEUxRzQ4ZWoyNW1TdCswMHlQYlE0U1JDVmtJd2I2SVN2WXRtSlJQejladDVkazc2YmxmK2xKd0FQSDVLREYrdkhBbUFDTG9DZEcyQWRpaTZkT0huTkpuVG1adG9PR084UTFqeTF2ZU13NmdiTEZUb1FtZkphN25UN0FsODltUmJSa1paUXhKVEtnSzVLYzlJTnptVEpGcDB0cEFQek5teUwvRjA4YlgzbmhDdW1NL2NSLzJSUG45ZW1aM1Zsam9rdHRaRDF6VldYbFVJcUVVN1NMazVJMGxGUlUwQWNFTlhCWWF6TmFWenNWSEEvc0QzbzlobTQyd2JISVJiL0JCUVRLekFpOHMzK2JNdHBPT1pnTGRRekNZUGZYM1VVeEtkMVdZVmtHSDdsaC9SQkJnTVpad1h6VTkrR1l4ZEJxbEdzMExQK0RaNWcyQldOaDZGQWNSOTQ0QitLL0pUV0kzdDlZeVZ5UmhsUDRDQ29Vay9tbUY3K3IycGlsVkJqeFhCSEZhQmZCdHI5aGJWbjJ6RHVJMGtFT0cza0J4OENHZFBPalgxcGgxUE9PWkpVTzFKRUdHMGp6VXkydEs0WDBDZ1ZOWWhta3FxUXlzUk50S3VQZENKcUszV1c1N2thVjE3dlhnaXlQcmw0S0VFV2dpR0YxZXVJNFFrU0ZIRmYwVERyb1FpTE5LSmlMYmRoSDBZQmhyaVJOQ0hQeFNxSm1OTm9rZXRhaW9vaHFNZ2xoNndMdEVHV1NNMUVaYlFnNzJoMFVKQUlQVkZDQUpPVGhwUUdHZEtmRm92Y3dFZWlCdVpITjJPYjR1Vk03K2d3Wkx6MUQ5RTd0YTRSbU1aMjRPQkJBZzdFaDZkTFhHb2ZaNFUyVEZPQ1FNS2p3aFZja2pyeWRSUytZYXFDdzFrWXQ2VWV4dXpiTkVEeVlMVFpuclkxUHpzSFpKVDRVK2F3TzJ4bHFUU1l1Nm4vVTI5TzJ3UFhnR09FS0RNU3ErelRVdHljOCs2aUxwMGl2YXY0Rkt4K3h4Vnk0RnhoSUYvcHVjVkRxcHNWZTJqRk9mZFpoVHpMejJRanR6dnNUQ3ZEUFU3YnpESDJlWFZLVVY5VForcUZ0YVNTeG5ZZ1lkWEt3VnJlSWd2V2hUOWVHREIyT3ZuV3lQTGZJSUlmTm5mSXhVOG5XN01iY0gwNW5obHNZdGFXOUVaUnN4V2NLZEVxSW5xMURpWlBLQ3o3aUdtQVU5L2Njbm5RdWQycE5nSUdGWU9UQVdqaElyZDYzYVBEZ2ZqOC9zZGxENGwrVVRsY3hUSTlqYmFNcXFOMGdReFNIczYwSUFjVzNjSDRwM1YxYVNjaVRLQjI5TDF0ejJlVVFoUmlUZ1R2bXFjK3NHdEJOaDRreTBtUUpHc2R5Y0JSRVArZkFhU3MxRVJFRFZvNWd2Z2k1K2FDTjdORUN3MzBvd2JDYzFtU3BqaWFoeU5Wd0pkMWppR2d6U3dmVHB6ZjJjNVhKdkcvZzFuMGZIODhLSE5uZit1N1ppUk1sWHVlU0lzbG9KQlV0VzllenZzeDlncmZzWC9GTnhuYnhVMUx2ZzBoTHhpeHlwSEtHRkFhUHUweENEOG9EVGVGU3lmUlQ2czgxMDlHTVVaTDhtMnhYcDhYMmRwUENXV2RYODRpZ2E0QnJUbE9mcW94NHNocUVnaC9IdDRxUnN0NTJjQTF4T0lVdU94Z2ZVaXZwNnY1ZjhJVnlhcnlFZHBWazcyRVJBd2RUNGFvWTF1c0JnbVArMG0wNlEyMTZIL251YnROWXhIYU9JWWpjYWNoM0E4RXovemMwS2NTaGhlbDBIQ1lqRnNBMEZqWXF5SjVaVUgxYVp3Myt6V0MwaExwTTZHRGZjQWRuOWZxMm9yUG1aYlc2WFhyZitLcmM5UnR2SUk1amVEM2RGb1QxS3daSnd4ZlVNdmM1S0xmbjhyUk9XMjNKdzg5c0oyYTVkcEIzcVdEVUJXRjJpWDhPQ3VLcHJIb3NKMm1mbEJSK1dxczg2VnZnSS9YTW5zcWI5NytWbEtkUFZ5c2N6UGo4Smh6ZitXQ3ZHQkhpakFxWWxhdmJGNjBzb01XbEhidktUK1NjdmhwcmdlVGxuNTF4WDBzRitFYWRjL2wyczJhNUJna1ZiSFl5ejBFODVwMExzdHFIK2dFR2lSODRuQlJSRkluOGhMU1pyR3dxalozRTI5Y3VHaSs1WjVicDdFTThNV0ZhOXNzUy92eTRWckRmRUNTdjdEU1U4NERhUDBzWEkzQXA0bFd6blE2NW5Rb1RLUldVMzBnZDdObjhab3dVdkdJeDRhcXlYR3dtQS9QQjRxTjhtc0pVT0RlelVIRWwwVlA5dW8rY1o4dlBGb2RTSUI0QzdsUVlqRUZqOHl1NDlDMktJVjNxeE1GWVRldkc4S3FBcjBUUGxrYnpISG5UcERwdnB6emlBaU5GaDh4aVQ3Qy9UaXlIMEVndVV3NHZ4QWdwbkUyN1dJeXBWK3VGTjJ6Vzd4bmlGL243NXRyczlJSjVhbUIxelhYWjFMRmtKNkdiUy9kRm9remw0Y2MybWFtVndoTDRYVTBBdjVnRFdBbCthRVdoQVA3dDJWSXdVK0VwdmZPUERjTEFTWDdIN2xacFhBMlhRZmJTbEQ0cVUxOE5mZk5Qb0FLTU5TY2NCZk85WVZWZ21sVzRSeWRCcWZIQVY3K2hyWjg0V0pHaG82Yk5UMFlNaHh4TGRPeC9kd0dqMG95YWs5YUFrTko4bFJKelV1QThzUitmUHlpeVRnVUhpbzUrUHArWWFLbEhyaFI0MWpZNU5FU1BTM3grelRNZTBTMkhuTE9LQ09RUHBkeEt5dmlCdmRIckNEUnFPK2w5NkhoaE5CTFhXdjR5RU11RVVZbzhrWG5ZSk04b0lnVk00WEoreFhPZXY0WWJXZXFzdmdxMGxtdzQvUGlZcjlzWUx0K1c1RUF1WVNGbkpFYW44Q3dKd2J0QVNCZkxCQnBKWmlSUG9yL2FDSkJac00rTWh2UzdaZXB5SHZVOG01V1NtYVpueHVMdHM4b2psNktrUzhvU0FIa3E1R1dsQ0IvTmdKNVczck8yQ2oxTUs3YWh4c0NyYlRUM2EwVi9RUUgrc0VyeFY0WFVXREh4MGtrRnkyNWJQbUJNQlE2QlUzSG9IaGhZY0pCOUpoUDZOWFVXS3huRTByYVhIQjZVOUtIcFdkUUNRSTcycWV2cDVmTXpjbStBdkM4NXJzeW5WUWhydURBOWZwOUNPZTdONTZjZzFVS0dTYXM4OXZyTitXbEdMWVR3aTVXKzB4WWRLRUd0R0NlTkp3WEtEVTBYcVU1dVFZbldzTXdURU5MR3RiUU12b0dqSUZJRU16Q1JhbDRybkJBZzdEL0NTbjhNc0N2UytGREpKQXpvaWlvSkVoWkpnQXA5bjIrMVl6bnI3SCs2ZVQ0WWtKOU1wajYwSW1jVzRpNGlIRExuOVJ5ZEI4ZHgzUVltM3JzWDZuNFZSclpEc1lLNkRDR3drd2Q1bjMvSU5GRXBrMTZmWXBQNkp0TVFwcUVNemNPZlFHQUhYQlRFR3p1TEowM0dZUUw5Ym1WMi83RXhEbFJmK1V2ZjFzTTJmclJ0Q1dtYWwxMnBNZ3RvbnZTQ3RSNG4xQ0xVWlJkVEhESFAxT3R3cWQrcmNkbGF2bktqVUIvT1lYUUhVSnpwTnlGb0twUUsrMk9nckVLcEd5SWdJQmduMnk5UUhuVEppaFpPcEV2T0tJb0hBTUdBWEhtajIxTHltMzlNYmlvdzRJRis3N3hOdWV3emlOVkJ4cjZLRDVlKzlIelpTQklsVWEvQW1zREZKRlhleXJRYWtSM0Z3b3dUR2NBREpIY0VmaEdrWFlOR1NZbzRkaDRieHdMTSsyOHhqaXFrZG4wLzNSNFVFa3ZjQnJCZm4vU3pCYzFYaEtNMlZQbEpnS1NvcmpEYWM5NlYyVW5RWVhsMS95WlBUNERWZWxnTytzb01qZXhYd1lPNThWTGw1eEluUVVaSThqYzNIMkNQbkNOYjlYMDVuT3hJeTRNbGVjYXNUcUdLNnMyYXo0UmpwRjJjUVAyRzI4Uis3d0RQc1pEWkMva1d0amRvSEM3U3BkUG1xUXJVQWhNd0tWdXhDbVlUaUQ5cS9PN0dIdFp2UFNOMENBVVFOL3J5bVhaTm5pWUxsSkRFNzBic2s2WHhzaDRrRE9keGU3QTJ3bzdQOUY1WXZxcVJESTZicmY3OXlQQ1NwNEkwalZvTzRZbkxZdFg1bnpzcFI1V0I0QUtPWXRSMXVqWGJPUXBQeVlEdmZSRTNGTjV6dzBpN3JlZWhkaTd5VjBZRFJLUmxsR0NHUms1WXorVXYxZllsMlp3cm5Hc3FzamdBVm8weEVVYmE4b2hqYU5NSk53VHdaQS93QkRXRlNDcGcxZVVIOE1ZTDJ6ZGlveFJUcWdHUXJEWnhReU56eUJKUFhaRjArb3hJVEpBYmo3b05DNUp3Z0RNVUphTTVHcWxHQ1djLy9LQ0lySSthY2xFZTRJQTB1enY3Y3VqNkdDZGFKT05waTEzTzU0NHZidElIQkYrQStKZURGVVFOeTYxR2tpM3J0eVE0YVV5d242cnUzMTQvZGtHaVA4SXdqbzBKLzJUeHM0OVprd0VsNG14K2lZVVVPNTVJNnBKelU0UCs3UlJzK0RYWmt5S1VZWnFWV3JQRjRJOTRtNFd4MXRYZUU3NG85R3VYOTc3eXZKL2prZGFrOCtBbW9IVmpJMTVWK1d3QmRBUkZWMklQaXJKZ1ZNZHNnMVBlejJWTkhxYTdFSFdkVGtsM1hUY3lqRzlCaXVlV0Z2UWZYSThhV1NrdXVSbXFpL0hVdXpxeXZMSmZOZnMwdHhNcWxkWVlmbFdCMUJTMzFXa3VQSkdHd1hVQ3BqaVFTa3RrdUJNV3dIalNrUXhlZWhxdzFLZ3owVHJ6bTdRYnRneGlFUERWbVdDTkNBZUNmUk9UcGhkMVpOT2h6THk2WGZKeUc2WGdkNU1DQVp3NHhpZTBTajVBblkxL2FrRGdOUzlZRmwzWTA2dmQ2RkFzZzJnVlFKdHpHN0xWcTFPSDJmcmJYTkhXSC9OWTg5Tk5aNFFVU0pxTDJ5RWNHQURiVDM4WDBiR2R1a3FZbFNvbGlLT2NzU1R1cWhjYWVtVWVZTExvSTgrTVpvcjJSeFhUUlRoRjFMckhmcWYvNUxjTEFqZGw0RUVSZ1V5c1lTMmdlRSt5RmRhc1U5MVVnVURzYzJjU1ExWm9UOSt1TE93ZGdBbWlmd1FxRjAyOElOYzJJUUVEZlRtVXczZVp4dno3VWQxejN4YzFQUWZlQ3ZmS3NCOWpPaFJqN3JGeWI5WGNEV0xjWWowYkJ5b3N5Y2hNZXpNTFZrRmlZY2RCQlF0dkk2SzBLUnVPWlFIMmtCc1lISmFYVGt1cDhGMGVJaE8xL0djSXdXS3ByMm1vdUI3ZzVUVURKTnZPUlhQWGEvbVU4YmgyN1RBWllCZTJzS3g0TlN2NU9qbkhJV0QyUnV5c0N6QmxVZmVOWGhEZDJqeG5Ib1VsaGVKM2pCQXB6VVJ5MGZ3bTJGd3dzU1UwY2FRR2wwS3Y4aG9wUlFFMjExTm52dExSc21DTnJoaHBFRG9OaVpFekQyUWRKV0tiUlJXbmFGZWRYSEFFTFNOMHQwYmZzQ3NNZjBrdGZCb1hCb05BK25aTjkrcFNsbXV6c3BGZXZtc3FxY01sbHp6dmt5WHJ6b0ErUnlvMWVQWHBkR09vSnZoeXJ1K0VCUnNtT3A3TVhaMHZOVU1VcUhMVW9LZ2xnMXA3M3NXZVptUGMrS0F3MHBFMnpJc0ZGRTVINDE5Mkt3RHZEeGR4RVlvREJETlpqYmcyYm1BRFRlVUtLNTdJUEQ0ZlRZRjRjNkVuWHgvdGVZTU9SQkR0SWhQSm5laVpueTdOdi96RytZbWVrSUtDb3hyNmthdUUyYlp0Qkx1ZmV0TkcwQnRCWTdmKy9JbVV5cE1CdmRXdS9RN3ZUTVJ6dzVhUUdaV3VjMVYwSEVzSXRGWU1JQm5vS0daMHhjYXJiYS9UWVpxNTBrQ2FmbEZ5c1lqQTRFREtIcUdkcFlXZEtZbW0rYTdUQURtVzM1eWZuT1lwWllya3BWRXRpcUYwRXVqSTAwYWVwbE5zMmsrcXlGWk5lRTNDRFBMOVA2YjRQUS9rYXRhSGtWcExTRVZHSzdFWDZyQWE3SVZOcnZadEZ2T0E2b2tLdkJnTXRGREFHWk94ODhNZUJjSjhBUjNBZ1VVZUl6bkFONnRqQ1VpcEdEWk9ObTFGaldKcDRBM1FJelNhSU9tWjdEdkYveXNZWWJNL2ZGRE9WMGpudEFqUmRhcHhKeEwwZVRocEVoS09qQ0REcTJrcyszR3J3eHFJRktMZTFXZE96SUk4WElPUEdud3k2TEtYVmZwU0RPVEVmYVJzR3VqaHBTNGhCSXNNT3FIYmwxNlBKeGM0RWthVnU5d3BFWWxGLzg0TlN2NVp1bTRkck1mcDl5WGJ6ekFPSnFxUzRZa0k0Y0JyRnJDN2JNUGlDZmdJM25OWkFxa2szUU9acVIreXlxeCtuRFFLQkJCWjdRS3JmR01DTCtYcHFGYUJKVTB3cGtCZEFoYlI0aEpzbVQ1YXlubHZrb3VveG0vTmpENW9lNkJ6VklPOXVrdE0rLzVkRUM1UDd2WnZhcm11Ty9sS1h6NHNCYWJWUElBVHVLVHJ3YkpQOFhVa2RNNnVFY3RIS1hJQ1VKR2phWklXUmJacDhjenF1UVlmWTZ5bkJVQ2ZJVStnRzZ3cVNJQm1ZSW05cFpwWGRhTDEyMVY3cTBWakRqbVFuWHZNZTd5c29FWm5aTDE1QjBTcHhTMWpqZDgzdU5JT0tad3U1TVB6ZzJOaE94M3hNT1BZd0VuMkNVemJTcndBczVPQXRyejNHQWFVa0pPVTc0WHdqYVlVbUdKZFpCUzFOSlZrR1lyVG9JTkxLRGp4Y3VJbHlmVnNLUVNHL0c0RHlpTzJTbFF2SjBkME90MXVPRzVJRlNBa3ErUFJWTWdWTUR2T0lKTWRxamVDRktVR1JXQlc5d2lnWXZjYlU3Q1FMLzdtZUYyS1pBYVdsKzR5OXVob3dBWDdlbG9nQXZJdEFBeG8yK1NGeEdSc0hHRVc5Qm5obFR1V2lnWXhSY25WVUJSUUhWNDFMVitGcjVDSllWN3NIZmV5d3N3eDRYTXRVeDZFa0JoUitxOEFYWFVBOHVQSjczUGI0OWk5S0c5Zk9sanZYZXlGajlpeGdibzZDY2JBSjdXSFdxS0h5L2grWWpCd3A2VmNON004OUZHelEwNHFiclF0Z3JPRnliZzNnUVJUWUc1eG43M0Fya2ZRV2pDSlJPd3kzSjM4RHgvRDdqT2E2QkJOc2l0RXcxd0dxNzgwRUVpb09lRCtaR3AySjY2QURpVkdNYXlpSFl1Y01rOG5USzJ6elQ5Q25FcmFBazk1a1FqeTRrMEdSRWxMTDVZQUtMUUVySjVycDFlYXk5TzRGYjZ5SkdtOVU0RmFNd1BHeHRLRDZvZElJSEtvV25oS28xVThLSXBGQytNVm41OVpYbWM3WlRCWmZzZzZGUThXMTBZZlRyNHUwbllycEhaYloxalhpTG1vb0YwY09tMCttUG5KQlhRdGVwYzduMEJxT2lwTkNxSTZ5eWxvVGVSU2hOS0gwNEZJbzBnY01rMEgveFRoeU40cFBBV2pERGtFcDNsTk5QUk5WZnBNSTQ0Q1dSbFJnVmlQNjRlSzBKU1JwMFdVdkNXWXVtbFcvYzU4VmN6L3lNd1ZjVzVvWWI5KzI2VEVod3ZieGlOZzQ4aGwxVkkxVVhUVS8vRXRhK0JNS25HVWl2Y3RmTDV3SU5ERDBnaVFMMWlwdDZVN0M5Y2Q0K2xncVkybE1VWjAyVXY2UHJzK1pFWmVyN1pmV0JYVmdobGZPT3JDbHdzb09GS3pXRWZ6NlJadTFlQ3MrSzhmTHZrdHM1K0JYMGd5ckZZdmUwQzNxSHJuNVUvT2g2RC9DaWhtV0lyWTdIVVpSaEpheGRlK3RsZHU2YWRZSitMZVh1cFF3MFhFeEMzNlJFVGRORnhjcTlnbE11NGNOUVNYOWNxUi9HUVlwK0l4VWtJY05HV1ZVN1p0R2E2UDNYQXlvZFJ0MFhlUzNUcDAxQW5DaDBaYlVoNFZyU1plVjlSV2ZTb1d5eG5ZM2h6Y1ozMEcvSW5EcTR3eFJyRWVqcmVCeG5oSVFia3hlbnhrYXhsK2s3ZUxVUWtVUjZ2S0oyaURGTkdYM1dtVkExeWFPSCttdmhCZCtzRTZ2YWNRekZvYndZNUJxRUFGbWVqd1c1bmU3SHRWTm9sT1VnSmM4Q3NVeG1jL0xCaThONW11OVZzSUE1SHlFcm5TNnplQ3o3VkxJOStuL2hiVDZoVG9rTVhUVnlYSlJLU0cyaGQybGFiWFRidG1LNGZOSDNJWkJQcmVTQTRGTWVWb3VWTjN6RzV4OUNpR3BMdy8zcGNlbzRxR3FwK3JWcCt6Kzd5UTk4b0VmK255SDRGMytKOUloZURCYTk0V2k2M3pKYkxCQ0labTdQMGFzSEdwSUp0M1B6RTNtMFM0WUlXeVhCQ1ZYR2lrajhNdWREUEIvNk5tMnY0SXhKNWdVMGlpMGd1eTVTVUhxR1VZelRQMGpJSlU1RTgyUkhVWHRYNGxEZHJpaEJMZFAxWWFHMUFHVUMxMnJRS3VJYUd2Q3BNalpDOWJXU0NZbmpEbHZwV2JrZFhNVE5lQkhMS2l1b296TUdJdmtjem1QMGFSSlNKOFBZbkxDVk5oS0hYQk5ja0g3OWU4WjhLYzJ3VWVqNHNRWm9IOHFEUkdrZzg2bWFXL1pRV0dObkxjWG1xM0ZsWE02c3NSLzNQNkUvYkhNdm02SExydjF5Uml4aXQyNUpzSDMvSU9yMlVWNEJXSmh4WFc1Qko2WGRyMDduOWtGM1pOQWs2L1hwYzVNU0ZtWUoyUjdiZEw4S2s3cTFPVTlFbGcvdEN4SjhnaVQyN3dTVHlTRjBHT3hnNFBiWUpkaS9OeWlhOU5uODlDR0R1bGZKZW1tMWFpRXIvZWxlR1NOKzVNUnJWSjRLNmxneVRUSVczaTljUTBkQWk2Rkh0MFlNYkgzd0RTQXRHTFNBY2Nlenp4SGl0dDFRZGhXMzZDUWdQY0E4dklJQmgzL0pOamYvT2JtYzJ5enBrOGVkU2xTNGxWZHdnVzV2emJZRXlGb0Y0R0NCQmJ5MWtlVk51ZUhBSCtldmkrSDdvT1ZmUzNYdVBRU05UWE9PTkFiekplU2I1c3R3ZFFIbDFaanJHb0U0OUk4K0E5ajN0K2FoaFFqNzRGQ1NXcFpyajd3UlNGSkpubndpMVQ5SEw1cXJDRlcvSlpxNlA2MlhrTVdUYit1NGxHcEtmbW13aUpXeDE3OEdPRzdLYnJaR3F5V3dtdXlLV1BrTnN3a1oxcTh1cHRVbHZpSWkrQVhoMmJPT1RPTHNydE5rZnFiUUplaDI0cmVlYmtJTkxranV0NXI0ZDlHUi9yOENCYTlTVTBVUWhzblpwNWNQK1JxV0NpeFJtN2k0WVJGYnRaNEVBa2h0TmE2akhiNmdQWVF2N01LcWtQTFJtWDNkRnNLOFhzUkxWWjZJRVZyQ2JtTkRjOG81bXFzb2dqQVFmb0M5QmM3UjZnZncwM20rbFFwdjZrVGZoeHNjRElYNnMwdytmQnh0a2hqWEFYcjEwVW91V0N4M0MvcC9GWXdKUlMvQVhSS2tqT2I1Q0xtSzRYUmUwK3hlRER3VmtKUFphdTUyYnpMRURIQ3FWMGY0NHBQZ0tPa1lLZ1RaSjMzZm1rM1R1OFNkeEowMlNITThGZW01U01zV3FSeWkyRjF5bmZSSnN6Y0ZLeWtkV2xOcWdEQS9MOWxLWUJtYzdadS9xOWlpMUZQRjQ3VkprcWhpclVvYjUzem9pSnRWVlJWd01SMzRnVjlpcWNCYUhiUnU5a2t2cWszeU1wZlJGRzQ5cEtLaklpcTdoL1ZwUndQR1RIb1k0Y2cwNVg1MDI4aUhzTHZVVy91eitralB5SUVoaGNLVXdDa0pBd2JSOXBJRUdPbjh6NnN2QU84aTg5c0ozZEw1cURXRlliUytIR1BSTXhZd0pJdEZRTjg2WUVTZUpRaG4ydXJHaUxSZmZRZUxwdERsOGRBZ2IrVHA0N1VRUHhXT3cxN09lQ2hMTjFXbnpsa1BMMVQ1TytPM01lbnBuNEMzSVk1TEVlcEhwblBlWkhidnVXZmVWdFBsa0g0TFpqUGJCcmtKVDNOb1JKekJ0ODZDTzBYcTU5b1ErOGRzbTB5bVJjbVF5bjh3NzFtaG1jdUVJNWJ5dUYrQzg4VlBZbHkyc0V6amx6QVEzdmRuLzErSHpndXc2cUZOTmJxZW5oWkdiZGlHNlJ3WmFURzdqVEEyWDlSZFhqRE45eWoxdVFweU80THg4S1JBY1pjYlpNYWZwNHdQT2Q1TWRYb0ZZNTJWMUE4TTloaTNzc285Myt1cHJFMHFZTk1qa0UyMkN2SzRIdVV4cU43b0l6NXBXdUVUcTFsUUFqcWxTbHFkRDJSbnIvZ2dwL1RWa1FZam45bE1mWWVsazJzSDVIUGRvcFlvN01Id2xWMW9yOUJ4ZitRQ3lMem05MnZ6RzJ3amlJakMvWkhFSnplcm9KbDZiZEZQVHBaaG81TVYyVTg2ZkxRcXhObEdJTXFDR3krOVdZaEo4b2IxcjArV2h4ZGU5TDJQZHlzRVR2OTdPK3hWdytWTk4xVFpTUU41STZsOW01SXA2cExJcUxtNGExQjFmZkg2Z0h5cVQ5cDgyTk9qbnRSV0dJb2ZPM2JKejVHaGt2U1dic1h1ZVRBTWFKRG91OTlrR0xxRGxod0JaTkVRNG1LUHVEdlZ3U0s0V21MbHVIeWhBOTdwWmlWZThnK0p4bW5KRjhJa1YvdENzNEpxL0hnT29BRUdSOXRDRHNEYkRtaTNPdmlVUXBHNUQ4WG1LY1NBVWFGTFJYYjJsbUpUTllkaHRZeWZqQllaUW1ONXFUNUNOdWFEM0JWbmxrQ2s3YnNNVzNBdFhrTk1NVHVXNEhqVUVSU0puVlEwdnNCR2Exd28zUWg3MTE1WEdlVEYzTlR6OHcwNDQwQWdVN2MzYlNYTy9LTUlOYUlXWGQwb0xwb3EvMC9RSnhDUVNKOVhuWXkxVzdUWUxCSnBIc1ZXRDFhaHNBN0ZqTnZSZDZteENpSHNtOGc2WjBwbnpxSXBGMWRIVXRQMklUVTVaMWhaSGJ1K0wzQkVFU3RCYkw5WFl2R2ZFYWt2MWJtZitiT1pHbm9pdUhFZGxCbmFDaHhZS056QjIzYjhzdzhZeVQ3QWp4Zms0OWVKSUF2ZGJWa2RGQ2UySjBnTWVmaFEwYklaeGh4M2Z6TUl5c1FOaU44UGdPVUt4T011cjEwTGR1aWdSRURSTVp5UDRvR1dyUDFHRlk0dDZncm9BU3NaNDIxb3M0OHdBZG5yYm92TmhMdDdTY05VTGt3WjVBSVpKVHJiYUtZVExqQTFvSjNzSXVOL2FZb2NtLzl1b1FIRUlsYWNGMXMvVE0xZkxjUFRMMzhPOWZPc2pNRUl3b1BLZnZ0N29wdUk5RzJIZi9QUjRhQ0xEUTd3Tm1JZEV1WEovUU5MNzJrNXE0TmVqQWxkUGZlM1VWVnF6a3lzOFlaL2pZT0dPcDZjK1l6UkNyQ3VxME0xMXk3VGlONnFrN1lYUk1uL2d1a3hyRWltYk1RanIzandSTTZkS1ZaNFJVZldRcjhub1BYTEpxNnloNVIzRUgxSVZPSEVTc3QvTEl0YkcyRDJ2UnNaUmtBT2J6dlFBQUQzbWIzL0c0TnpvcEkwRkFpSGZicHEwWDcyYWRnNlNSais4T0hNU2h0Rnh4TFpsZi9uTGdSTGJDbHdsNVdtYVlTcyt5RWprcTQ4dFk3WjJiRTBOOTFtSnd0K3VhME5sUkpJRGgwSGlrRjRVdlNWb3JGajJZVnU5WWVTNXRmdmxWalBTb051L1p1NmRFVWZCT1Q1NTVoYWhCZE4zU2E1WHVqMlJ2YXUxbFFOSWFDOTQ0eTBSV2o5VWlORHNrQUsxV29MK0VmWGNDNkliQlhGUnlWZlgvV0tYeFBBd1V5SUFHVzhnZ1owOGhjaWpLVHQxWUtuVU82UVB2Y3JtRFZBYjBGQ0xJWG41aWQ0ZkQvSng0dHcvZ2JYczdXRjliMlJnWHRQaExCRzl2RjVGRWtkSEFLclFIWkFKQy9IV3ZrN252enpEeklYWmxmRlRKb0MzSnBHZ0xQQlk3U1FUakdsVXZHNTc3eU51dFoxaFRmczkvMW5rU1hLOXp6S0xSWjNWT0RlS1VvdkplMFdDcTF6Vk1ZeENKTWVubU56UElVMlM4VEE0RTd3V21iTmt4cTlySTJkZDZ2MFZwY0FQVk14bkRzdldUV0ZheXlxdktaTzdaMDhhNjJpL29IMi9qeGY4cnBtZk82NGluM0ZMaUwxR1g4SUd0VkU5TTIzeUdzSXFKYnhEVHkrTHRhTVdEYVBxa3ltYjVWclFkek92cWxkZVUwU1VpNklpckc4VVozamNwUmJ3SGExQzBEd3c5Ry9TRlgzZ1B2VEpRRStreXorZzFCZU1JTEtLTytvbGNIemN0T1dnenhZSG5PRDdkcENSdHVaRVhBQ2pncWVzWk1hc29QZ251REM0blV2aUFBeERjNXBuZ2pvQUlUSWt2aEt3ZzVkNjA4cGRyWmNBK3FuNVRNVDZVby9RekJhT3hCQ0xUSlgzTWdrODVyTWZzbld4ODZvTHhmN3AyUFg1T05xaWVUYS9xTTN0UHc0Wlh2bEFwODNOU0Q4RjcrWmdjdEsxVHBvWXd0aVUyaDAySENHaW9INXRrVkNxTlZUTUg1cDAwc1J5MkpVMXF5REJQMkNJSS9EZzRXRHNJbCt6Z2VYNzU4OXNyeDZZT1JSUU1CZktib2RiQjc0M1RsNFdMS09FbndXVVZCc205NFNPbENyYWNVNzJNU3lqMDY4d2RwWWp5ejFGd0MyYmpRbnhuQjZNcC9wWit5eVpYdGd1RWFZQitrcWhqUTZVVW13U0Zhek9iK3JoWWpMYW9pTSthTjkvOEtLbjB6YUNURnBOOWVLd1d5Ny91NEVIek80NlRkRlNOak1mbjJpUFNKd0RQQ0ZIYzBJMSt2amRBWnc1WmpxUi91emk5Wm4yMG9BYTVKbkxFay9FQTNWUldFN0ovWHJ1cGZGSlB0Q1V1cUhQcG5sTDdJU0p0UnBTVmNCOHFzWkNtMlFFa1dvUk90Q0tLeFVoM3lFY01iV1lKd2s2RGxFQkcwYlpQNmVnMDZGTDN2NlJQYjdvZEd1d203Rk44Zkc0d29xdEI4ZTdNNWtsUHBvOTdHb09iTnd0K2x1ZFRBbXh5QzVobWNGeCtkSXZFWktJNmlnRktIcUxIMDFpWTFvNzkwM1Z6RzlRR2V0eVZ4NVJObUJZVVUrekl1U3ZhL3lJY0VDVWk0cFJtRTNWa0YyYXZxdWxRRVVZNHlaL3dtTmJvQnpQbUFQZXkzK2RTWXRCWlVqZVdXVDBwUHdDejRWb3p4cDl4ZUNsSVU2MHF2RUZNUUNhUHZQYUE3MFdsT1A5Zi9leTM5bWFjdnBHQ1ZhK3pmYThnTzQ0d2J4cEpVbEM4R04vcFJNVFF0elk4WjgvaGlOclUrWnE2NFpmRkdJa2RqN203YWJjSzFFQnR3czFYNEovaG5xdmFzUHZ2RFNEWVdOK1FjUVZHTXFYYWxrRHRUYWQ1cllZMFRJUjFFcW94M2N6d1BNaktQdkY1c0Z2MTdUaHVqcjFJWjFZdGw0VlgxSjB2alhLbUxZNGxtWGlwUkFybzBxVkdFY1h4RVZNTUVsNTRqUU1kNEo3Umpnb21VMGoxcHRqeXhZK2NMaVN5WFBmaUVjSVMybFdESzNJU0F5NlVaM0hiNXZuUG5jQTk0NDExamN5NzVheTZCNkRTVHpLNlVUQ1pSOXVEQU50UEJydklEZ2pzZmFyTWl3b2F4Mk9sTHhhU29ZbjRpUmdrcEVHcUVrd294NXR5SThhS2tMbGZaMTJsTzExVHhzcVJNWTg5ajVKYU81NVhmUEpQREwxTEdTbkM4OFJlOUFpK051NWJaanR3UnJ2RklUVUZIUFI0Wm14R3NsUU1lY2diWk83bkhrMzJxSHhZa2R2V3B1cDA3b2pjTUNhVnJwRkF5RlpKSmJOdkJwWmZkZjM5SGRvMmtQdFQ3djAvZjhSL0I1Tno0ZjF0OS8zek5NLzduNlNVSGZjV2s1ZGZRRkp2Y0pNZ1BvbEdDcE9GYi9XQzBGR1dVMmFzdVF5VCtybTg4WktaNzhDZWkvQ0FoOTM5Q0gwSllicFpJUHR4YzJ1ZlhxalMzcEhIOWxuV0s0aUo3T2pSL0VFU3BDbzJSM01ZS3lFN3JIZmhUdldobzRjTDFRZE40akZUeVI2c3lNd0ZtMTI0VFZERFJYTU52ZUkxRHAvbnR3ZHo4azhreHc3aUZTeDYrWXg2TysxTHpNVnJOMEJCenppWmk5a25lWlN6Z29sbEJuVndCaDZvU09QSFhyZ2xyT2orUW1SL0FFU3JoRHBLcldUKzgvQWlNRHhTLzV3d1JOdUdRUExsSjlvdm9taEpXbjhzTUxWSXRROE4vN0lYdnREOGtkT29IYXcrdkJTYkZJbVFzdi9PQ0FJdWk5OUUrWVNJT01sTXZCWGtBdCtOQVpLOHdCOUpmOENQdEIrVE9VT1IrejcxZC9BRlhwUEJUNitBNUZManhNakxJRW9KenJRZnF1dnhFSWkrV29VekdSMUl6UUZOdmJZT254YjJQeVEwa0dkeVhLelcyYXhRTDhsTkFYUGs2TkVqcXJSRDFvWnRLTGxGb29mclh3MGRDTldBU0h6eSs3UFN6T1VKM1h0YVBac3hMRGpyK280MWZLdUtXTm1qaVp0ZmtPekl0dmxWMk1ER1NoZUdGMG1hMDRxRTNUVUVmcUpNclhGbTdEcEsrMjdEU3ZDVVZmN3JiTm9salBoaGE1VzdLQnFWcTBTaFVTVGJSbXVxUHRRcmVWV0g0SkVUNXlNaHVxTW9TZDRyL044c0RtZVFpUVF2aTF0Y1p2N01vYzdkVDVYNUF0Q0Q2a05FR1pPelZjTllscFg0QWJUc0xnU1lZbGlpUHlWb25pdVlZeVN4c0J5NWNnYjNwRCtFSzBHcGIwd0pnMDMxZFBnYUw4Slp0NnNJdnpOUEVIZlZQT2pYbWFYajRiZDR2b1h6cFo1R0FwTWhJTGdNYkNFV1oyendnZGVRZ2pOSExiUEl0K0txeFJ3V1BMVE42SHdaME91aWpqNFVGK1NnMEF1OFh1SUtXMFd4bGV4ZHJGckRjWko4U2hhdWF0M1gwWG1IeWdxZ0wxbkF1MmhySkZiNHdaWGtjUytpMzZLTXlVMXlGdll2MjNiUVVKaS8zeVFwcXIvbmFVT29pRVdPeGNreXEvZ3E0M2RGb3UxRFZEYVlNWks5dGhvNytJWFhva0JDczVHUmZPY0JLN2czQStqWFEzOUs0WUE4UEJSVzRtNSt5UjBaQXhXSm5jalJWYklUdklBUEhZUnQxRUozWUxpVWJxSXZvS0h0ekhLdFV5MWRkUlVRMEFVTzQxdm9uWkRVT1crbXJzencrU1cvNlEvSVVnTnBjWEZqa003RjRDU1NRMkV4Wmc4NW90c01zN2txc1FENE94WWVCTkRjU3BpZmpNb0xiN0dFYkdXVHdhc1ZPYm1CL2JmUGNVbHEwd1loWENZRURXUlcwMlRQNWJCcllzS1RHV2puV0RESjFGN3pXYWkwelcvMlhzQ3V2QlFqUEZjVFlhUVgzdFNYUlNtOGhzQW9EZGpBcksvT0ZwNnZjV1lPRTdsaXpQMFljKzhwMTZpNy9OaVhJaWlRVHA3YzdYdXM5MjVWRXRsS0FqVWRGaHlhaUxUN1Z4RGFncHJNRndpeDR3WjA1dTBxajdjRFdGZDBXOU9ZSEl1M0piSktNWFJKMWFZTm92dWdnK1FxUk43Zk5IU2kyNlZTZ0JwbitKZk11UG8zYWVxUFdpay93STVSejNCV2FyUFFYNGk1K2RNMG5wd1ZPc1grS3NPaEM3dkRnK09Kc3o0UTV6bG5JZWZsVVdMNlFZTWJmOVdEZkxtb3NMRjRRZXYzbUppT3VIam9vci9kTWVCcEE5aUtEa01qWUJOYlJvNDE0SEN4anNIckI0RVhOYkh6Tk1ESENMdU5CRzZTZitKNE1aL0VsVnNEU0x4aklpR3NUUGh3OEJQanhiZlF0c2tqK2R5Tk1LT09jVVlJUkJFSXFiYXp6M2xtamxSUWhwbHhxNjczVmtsTU1ZNjU5N3Z1K2Q4OWVjL3pxN01pNGdRdmg4N2VoWWJwT3VaRVhqNWcvUTdTN0JGREFBQjlEekczNVNDODUzeHRXVmNuWlFvSDU0amVPcVlMUjlORHV3eHNWdGhUVjdWOTluL0I3SFNiQXl0YkV5VlR6LzVOaEo4Z0dJakcwRTVqM2dyaVVMVWQ1Umc3dFFSKzkwaEpnTlFLUUgyYnRiU2ZQY2FUT2ZJZXhjMWRiMUJ4VU9oTTF2V0NwTGFZdUtyM0ZkTlR0L1QzUFdDcEVVV0RLRXR6WXJqcHpsTC93cmkzTUlUS3NGdnRGOFFWVi9OaFZvOTdhS0lCZ2RsaU5jMTBkV2RYVkRwVnRzTm4rMlVJb2xyZ3FkV0E0RVk4c28wWXZCNGErYUx6TVhpTUF1T0hRclhZMHRyK0NMMTBKYnZaemdqSkp1QjFjUmtkVDdEVXFUdm5zd1ZVcDVra1VTRlZ0SUlGWUswNSt0UXhUNjk5MkhITldWaFd4VXNEMVBrY2VJcmxYdVVWUm9nd21mZGh5cmY2enphTDgrYzBMN0dYTVpPdGVBaEFWUVZ3ZEpoKzduclg3eDRMYUlJZnoyRjJ2N0RnL3VEZnoyRmErNGdGbTJ6SEFvcjhVcWltSkczVlRKdFpFb0ZYaG5EWVh2eE1KRmM2a3UyYmhiQ3h6aWoyejVVTnVLMGptcDFtbnZrVk5VZlIrU0VtajFMcjk0THltNzVQTzdGczBNSXIzR2RzV1hSWFNmZ0xUVlkwRkxxYmE5N3UxSW44TkFjWTdJQzZUaldMaWd3S0VJbTQzTnhUZGFWVHY5bWNLa3p1ekJrS2Q4eC94dDFwLzlCYlA3V3liNGJwbzFLMWduT3BiTHZLejU4cFdsM0I1NVJKL1o1bVJETFB0TlFnMTRqZE9FczkraC9WNVVWcHdyQUk4a0diWDhLUFZQRElNZklxS0RqSkQ5VXlET1BoalozdkZBeWVjd3lxNGFrVUU5bURPdEpFSzFocER5aTZBZTg3c1dBQ2xYR1Rpd1B3TjdQWFd3anhhUjc5QXJIUklQZVlLVHVuVlcyNHNQci8zSFB6Mkl3SDhvS0g0T2xXRW10NEJMTTZXNWc0a01jWWJMd2oydXNvZEQxMDg4c3RaQTdWT3NVU3BFVmw0dzdOTWIxRVVITVJ4QXhMRjBDSVYrMEwzaVpiK2VrQjF2U0RTRmpBWjNoZkxKZjdnRmFYck9LbittaFIrcld3L2VUWEljQWdsNEh2RnVCZzFMT21PQXdKSDNlb1ZFamp3aGVLQTRpY2JyUUNtdkF0cFEwbVhHMGFnWXA1bWo0UmI2bWRRK1JWNFFCUGJ4TXFoOUM3bzhuUDBXa28yb2NuQ0hlUkdoTjFYVnlUMmI5QUNzTCs2eWxVeSt5QzNRRW5hS1JJSks5MVl0YW9TcmNXWk1Nd3h1TTBFOUo2OForWXlqQTBnOHAxUGZIQUFJUk95NlNhMDRWWE91VDZBMzUxRk9XaEtmVEdzRkozUlRKR1dZUG9MazVGVks0T2FZUjloa0p2ZXp3Rjl2UU4xMTI2cjZpc01HWFdUcUZXKzNITDNJL2p1cmxJZERXSVZ2WVkrczZ5cTdsckZTUEFHUmRuVTdQVndZL1N2V2JaR3BYenkzQlEyTG1BSmxyT05Vc1pzNG9Ha2x5MFYyNjd4YkQ1S01ZOHdvTk5zbVdHMVZWZ0xDcmE4YVFCQmNJNERQMkJsTnd4aGlDdEhsYXo2T1dGb0NXMHZNUjNFcnJHN0p5TWpUU0NudlJjc0VIZ21QbndBNmlOcEoyRHJGYjRnTGxoS0p5WkdhV2tBOTdINkZGZHdFY0xUNkRSUVFMKytmT2tWQzRjWUdXMVRHLzNpSzVkU2hSU3VpQnVsbWlocWdqUjQ1VmkwM28yUmJRYlAzc3h0OTBWeFE2dnpkbEdma1htbUttak9pMDgwSlNIa0xudGp2c0JKbnY3Z0tzY09hVE9rRWFSUXFBbkNBNEhXdEI0WG5NdE9ocFJtSDJGSDh0VFhySWpBR05XRW11ZFFMQ2tjVmxHVFE5NjVLaDBINml4WGJnSW1RUDZiNDJCNDlzTzVDOHBjN2lSbGd5dlNZdmNuSDlGZ1EzYXpMYlFHMmNVVzk2U0RvalRRU3R4a09KeU91REdUSEFubldrejI5YUV3TjlGVDhFSjR5aFhPZytqTFRyQ1BLZUVvSjlhN2xEWE9qRXI4QWdYNEJtbk1RNjY4b1cwellQeVFpVk1QeEtSSHRwZm5FRXlhS2hkek5WVGhseHhEUU5kckhlWmlVRmI2Tm9ZMkt3dlNiN0JuUmNwSnkrL2cvekFZeDNmWVNONVFFYVZEMlkxVnNOV3hCMEJTTzEyTVJzUlk4SkxmQWV6Uk16NWxVUnVMVW5HMVRvS2s2UTMwRnVnaHFXTjZnQk5jRnhQL25ZL2l2K2lhVVFPYSsyTnV5bTQ2d3RJL0R2U2Z6U3AxakVpNFNkWUJFN1loVGlWVjVjWDlnd2JvVkRNVmdacDVZQlFsSE9RdmFETmZjQ29DSnVZaGY1a3o1a3dpSUtQanpncGNSSkhQYk9oSmFqZW9lUkw1M2N1TWFoaFY4WjdJUnI2TTRoVzBKelQ3bXphTVV6UXBtODY2endNN0NzMDdmSllYdVd2akFNa2JlNU82VjRidTcxc09HNkpRNG9MOHpJZVhIaGVGVmF2enhtbEl5QmtnYzlJWmxFRHBsTVByOHhsY3lzczRwVlVkd0sxZTdDSzJrVHNTZHE3ZzVTSFJBbDNwWVVCOUtvNGZzaDRxbGVPeUp2MXozS0ZTVFN2d0VjUk8vRXc4b3pFRFlaU3FwZm9WVzl1aEpmWXJOQVhSMFozVm1lb0FEK3JWV3R3UC8xM3NFLzNJQ1gzSGhERzNDTWM0NzZkRUVDMEszdW1TQUQ0aitaUUxWZEZPc1dMMkMxVEg1KzRLaVNXSCtsTWlibytCNTVoUjNHcTQwRzFuMjVzR2NOMG1FY29VMndOOUZDVnlRTEJoWU91OWFIVkxXakVLeDJKSVVaaTV5U29IVUFJOWI4aEd6YUxNeENaRE1MaHY4TWtjcFRxRXd6OUtGRHBDcHFRaFZtc0dRTjhtMjR3eUI4MkZBS05tamdmS1JzWFJtc1NFU292QXdYakJJb01LU0c1MXA2VW04YjNpN0dJU3M3a2pUcS9QWm9pb0NmSnpmS2RKVE4wUTQ1a1FFUXVoOUg4OE0zeUVzM0RidFJUS0FMcmFNMFlDOGxhaU1pT09lNkFEbVRjQ2lSRWVBV1plbEJhRVhSYVN1ajJseDB4SGFSWXFGNjVPMExvNU9DRlUxOEE4Y01ERTRNTFltOXcyUVNyOU5nUUFJY1J4WnNOcEE3VUpSMGU3MUpMK1ZVK0lTV0ZrNUk5N2xyYTh1R2c3R2xRWWhHZDRHYzZyeHNMRlJpSWVHTzRhYlA0UzRla1ExZmlxREN5ODdHWkhkNTJmbjVhYURHdXZPbUlvZnJ6cFZ3TXZ0YnJlWi84NTVPYVhUUmNOaU5FMHd6R1pTeGJqZzI2djhrbzhMNTM3di9YQ0NXUDJNRmFBckpwdm5rZXAwcEErTzg2TVdqUkFaUFFSZnpuWmlTSWFUcHB5Nm0zcDZIck5Tc1k3ZkR0ejdDbDRWL0RKQWpRRG95aUwydXdmMVVIVmQyQUlyekJVU2xKYVRqNGs2Tkw5N2EvR3FoV0tVOVJVbWpuWUtwbTJyK0pZVWNya0N1Wkt2Y1l2cmc4cERvVUtReXdZOUdEV2cwM0RVRlNpcmxVWEJTNVNXbi9LQW50bmYwSWRIR0wvN213WHFERytMWllqYkVkUW1xVXFxNHk1NFRObVdVUDdJZ2NBdzU4MTZZQnp3aU5JSmlFOU00bFBDemVJL0ZHQmVZeTNwNklBbUg0QWpYWG12UTRJeTBZODJOVG9iY0FnZ1QyQ2RxejZNeDRUZEdvcTlmbjJldHJXS1VORnlhdEFIeWRRVFZVUTJTNU9XVlVsdWdjTnZvVXJsQThjSkp6OU1xT2EvVzNpVm5vNHpESGZFN3pob1k1ZjVsUlRWWkRoclFiUjhMUzRlUkx6OGlQTXlCTDZvNFBpTGxwODlGamRva1FMYVNCbUtIVXdXcDBuYTVmRTN2OXpueTJZY0RYRy9qZkk5c2N0dWxIUmJka0k1YTRHT1BKeDRvQUpRelZaL3lZQWFkbzhLTlpVZEVGczlaUGlCc2F1c290WE1OZWJFZ3IwZHlvcHVxZlNjRkozT0ROUEhnY2xBQ1BkY2N3djBZSkdRZHNOMmxob1Y0SFZHQnhjRVVlVVgvYWxyNG5xcGNjMUNDUjN2UjdnNDB6dGVRZy9KdldtRmxVRTRtQWlUcEhsWUdyQjd3K1UyS2RTd1F6MlFKS0JlLzVlaWl4V2lwbWZQMTVBRldySzhTaDFHQkJZTGd6a2kxd1RNaEdRbWFnWHFKMitGdXFKOGYwWHpYQ1ZKRkhRZE1Bdzh4Y28xMUhoTTM0N2FsckF1K3dtWDNwREZBQk92a0MrV1BYMFVoZzFaNU1WSEtOUk94YVI4NFlWM3MxMlVjTSs3MGNKNDYwU3pFYUtMeWg0NzJ2T01EM1huYUs3enhaY1hsV3FlbkV2Y2ptZ0dOUjJPS2JJMXM4VStpd2lXK0hvdEhhbHAzZTFNR0R5NkJNVkl2YWpuQXprRkhiZVZzZ2ptSlVrclA5T0F3bkVIWVhWQnFZeDNxN0x2WGpvVlIwbVk4aCtaYU9uaDA1M3Bkc0drbWJxaHlyeU4wMWVWSHlTcitDa0RZa1NNZVoxeGpQTlZNK2dWTFRES3UyVkdzTVVKcVdPNFR3UERQMFZPZzIvOElUYkFVYU1HYjRMakw3TCtQaTExbEVWTVhUWUlsQVovUUhtVEVOanl4M2tEa0JkZmN2dlF0NnRLazZqWUZNNEVHNVVYRFRhRjUrMVpqUno2VzdNZEpQQyt3VGtiRFVpbTRwNVFRSDNiOWtHazJCa2lseWV1cjhCYzIwd201dUpTQk85NUdmWURJMUVaaXBvUmFIN3VWdmVuZXF6NDN0bFRaR1JRNGE3Q05tTUhnWHlPUVFPTDZXUWtnTVVUUURUOHZoMjFhU2R6N0VSaVpUMWpLOUYrdjZ3Z0Z2dUVtR25nU3ZJVVIyQ0prYzV0eDFReWdmWm5BcnVPTm9iQjFpZENMQjFGQ2ZPN04xWmRSb2NUOC9XeWUrRW5EaU85cHpxSXBuTERsNGJrYVJLVytla0JWd0huNDZTaHcxWDB0Y2x0LzBST2lqdVVCNGtJSW5yVkpVNGJ1V2Y0WUlUSnRqT0o2aUtkcjF1K2ZsZ1FlRkg3MEd4S2poZGd0L01yd2ZCNEsvc1hjelErOXpZY3JENGRoWTZxWmhaMDEwcnJ4Z2dXQThKYVp5ZzJwWWlqOGllWUVnMWFaSmtaSzlPMVJlN3NCMGlvdWY2MHJLMEdkK0FZbHA3c29xQ0JDREd3ZktlVVFoQ0JuMEUwbzBHUzZQZG1qTGkwVHRDWVplcWF6cXdOK3lOSU5JQThMazNpUERuV1VpSVBMR05jSG1aRHhmZUswaUFkeG0vVDdMbk4rZ2VtUkw2MWhISWMwTkNBWmFpWUpSK09IbkxXU2U4c0xySzkwNUI1ZUVKSE5sV3E0Um1FWElhRlRtbzQ5Zjh3NjErTndmRVV5dUpBd1ZxWkNMRmN5SEJLQWNJVmozc056ZkVPWHpWS0luZHhIdytBUjkzb3doYkN4VVpmNkdzOGN6Ni8xVmRyRkVQcnYzMzArOXM2QnRNVlBKM3psL1VmOXJVaTBaL29wZXhmZEwzeWtGNzZlOTk5R1BmVnY4Zkp2L1kvKy81aEVNb24xdHFORnlWUmV2Vjl5OS91SXZzRzNkYkI4R1JScmdhRVhmaHgrMnhlT0Z0K2NFbjNSWmFuTnhkRWUyK0I2TUhwTmJyUkU1M1BsRGlmUHZGY3A0a083OElMUjBUNHh5Vy9XR1B5QnNxR2RvQTd6SkpDdTFUS2JHZmhucWduUmJ4YkIyQjNVWm9lUTJiejJzVFZuVXdva1RjVFUyMVJ4TjFQWVBTM1NhcjdUMGVSSXN5Q05vd3I5YW13b01VL29kOXMyQVB0aUtOTDZFTk9seUtBRHN0QUVXS0Erc2RLRGhySjZCT2hSSm1aK1FKYkFhWjMvNUZxMC9sdW1DZ0V6R0VidTN5aTBZNEk0RWdWQWpxeGg0SGJ1UW4wR3JSaE9XeUFmc2dsUUpBVkwxeS82eWV6UzJrOFJFMk1zdEpMaDkyTk9CM0dDWWdGWHpuRjRkMjVxaVA0WkN5STRSWUdlc3V0NkZYSzZHd1BwS0s4V0hFa2hZdWkwQXlFbXI1TWwzdUJGdFBGZG5pb0k4UmlDb29hN1oxRzFXdXlJaTNuU05nbHV0Yyt4WThCa2VXM0pKWFBLNmpkMlZJTXBhU3hwVnRGcStSK3lTSzlKNldHNVF2dCtDK1FIMWh5WVVPVks3ODU3bkZteURCWWdaL28rQW5pYnpOVnF5WUNKUXZ5RFhEVEsraVhka0E3MWJZN1RMM2J2dUx4TEJROGtiVHZURVk5YXFrUTMrTWlMV2JFZ2pMek9IK2xYZ2NvMUVSZ3pkODByREN5bWxwYVJRYk9ZbktHL09Eb0ZsNDZselQwY2pNNUZZVnZ2MHFMVWJENWx5SnRNVWFDMXBGbFRrTk9OeDZsbGlhWDlvMGkvMXZ3czViTktuNU91RU5RRUttTGxjUDRvMlptSmpENHp6ZDNGazMydVE0dVJXa1BTVXFiNExCZTNFWEhkT1JOQjJCV3N3czVkYVJuTWZOVlg3aXNQU2IxaE1RZEFKaTEvcW1ETWZSVWxDVTc0cG1uempiWGZMOFBWRzhOc1c2SVFNMk5lMjNpQ1BJcHJ5SmpZYlZubTVoQ3ZLcE1hN0hMVmlOaU5jK3hUZkRJYUttM2pjdFZpRDhBMU05WVBKTmswMDNWVnI0Wm8yTXVHVzh2aWw4U0xhR3BQWHFHN0k0RExkdGw4YTRSYngxTHQ0dzVIdXFhYTFYelpCdGoyMDhFSlZHY21LWUV1YWVOMjd6VDlFRTZhMDlKZXJYZEVicGFOZ05xWUpkaFAxTmRxaVBLc2JEUlVpODZYdnZOQzdyTUU1bXJTUXRyekFaVm5kdFNqQ01xZDhCbWFlR1I0bDRZRlVMR1JCZVhJVjlZNHl4TEZkeW9VTnBpeTJJaGVQU1d6Qm9mWVBQMGVJYTJxNUpQNGo5RzhhdC9BcW9Tc0xBVXVSWHR2Z3NxWC96WXdzRStvZjZvU0RiVU9vNFJNSncrRE9VVEpxK2hucXdLaW05WXkvbmFweVpOVGMyckNxNlY5akh0SmJ4R1BEd2x6V2ovU2szekYvQkhPbFQvZlNqU3E3RnFsUEkxcTZKK3J1OEFrdTAwOFNGSU5YWmZPZm5aTk92R1BNdEVtbjJnTFB0K0g0UUxBKy9TWWU0ajM5OGF1emhLSXAyUG9rM21QQzVxMUlOMUhnUittbkVmYzROZWVIWXdkMi9rcHN6UjNjQm43bmk5TmJJcWh0U1dGVzh4YlVKdVVQVk9lZVh1M2owSUdabUZOaXdhTlo2ckg0L3pRMk9EejZ0RnhSTHNVWVp1MWJmZDF1SXZmUUR0NFlEL2VmS1l2OFZGOGJIR0RnSzIydzJXcXdwaTQzdk5DT1hGSlpDR01xV2lQYkw4bWlsNnRzbU9UWEFXQ3lNQ3c3M2UyckFEWmoySUs2cnFrc00zRVhGMmNiTGI0dmpCMTR3YS95WEs1dndVKzA1TXpFUko1blhzWHNXMjFvN00rZ08wanMyT3lLY2lQNXVGMmlYeWIyRGlwdHdRZUhlcXlna3JOc3FWQ1NsbGR4Qk1wd0hpMXZmYzhSS3BQLzRMM0xtcHE2RFpjdmhERGZ4VENFM3NwbGFjVGNPdFhkSzJnMzAzZElXQlZlMndEL0d2amExY0NsRlE2N2d3MHQxWlV0dHNVZ1ExVmVreThvT3BTNmtzWUVjNGJxc2VDYlp5NzY2U3ZMM0ZvZG1uYWhsV0pSZ1ZDTmpQeGhML2ZrMnd5dmxLaElUSC9WUUNpcE9JMGROY1JhNUIxTTVIbU9CalRMZVpRSnkyMzdlMm1vYndtRHlKTkhlUGhkRG1pa252TEthRGJTaEwrSXMxWFRDSnVMUWQyd21kSkw3K21LdnMyOTR3aFhRRCt2dGQ4OEtLazBEWFA4QjFYdTlKK3hvNjlWT3VGZ2V4Z1RyY3ZJNlN5bHR1TGl4OU9QdUU2L2lSSllvQk1FWHhVNHNoUU1mNEZqcXdmMVB0bkovd1dTWmQyOXJoWmpSbVRHZ2lHVEFVUXFSeituQ2RqZU1mWWhzQkQ1THY2MEtJTFdFdk5FSGZtc0RzMkwwQTI1MjM1MWVVb1l4QXlzVmFDSlZMZEg5UUZXQW1xSkRDT0RVY2RvbzEyK2dkNmJXMmJvWTBwQlZIV0w2TFFESzViWVdoMVY4dkZ2aTBjUnBmd3Y3Y0ppTVgzQVpOSnVUZGRIZWhUSWRVMFlRL3NRMWRMb0YyeFFQY0N1SEtpdUNXT1kzMERIZTFPd2NDbExBaHFBS3lxbG5JYkgvOHU5U2NKcGNTNGtncDZIS0RVZGlPZ1JhUkdTaVVDUkJqekk1Z1Nrc01aS3F5N1NkNTFhZWcwdGdKK3gwVEg5WUgyTWdzYXA5TjdFTlpkRUIwYmV5MkRNVHJCQTFobjU2U0VyTkhmM3RLdHF5TDliNnlYRVA5Ny9yYytqZ0QyTjFMTlVINlJNOUF6UDNrU2lwcjA2UmtLT29sUjdITzc2OGpqV2lIMVg5MmpBN2RrZzdnY05janFzWkNnZnFXdzB0UFhkTGcyMGNGNnZuUXlwZzdnTHRrYXpySEFvZHlZZkVOUFFac2RmbmpNWmlOdTRuSk85N0QxL3NRRSszdk5GenJTRE9LdytrZUxFQ1lmN1JKd1ZIZVAvajc5ODMzb1owZWdvbllCMkZsRkU1cWowMkIvTFZPTUpRbHNCOHVOZzNMZWc0cXRad250c09TTmlkUjBhYmJabUFLNHNDenZ0OFlpdXoyeXJOQ0pvSDVPOFh2WC92TGVSL0JCWVRXajBzT1BZTS9qeXhSZDUrL0p6aUtBQUJhUGN3LzM0VUEzYWovZ0xaeFpnUkNXTjZtNG0zZGVtYW5OZ3N4MFAyMzcvUStFdzVWWW5KUGt5Q1kwY0lWSG9GbjJBeS9lN1U0UDE5QVBiUEZYRUhYOTRONktoRU1QRzdpd0IzK0krTzFqZDVuNlZTZ0hlZ3hnYVNhd082aVFDWUZnRHNQU01zTk9jVWo0cTNzRjZLekdhSC8wdTVQUW9Bai84enE2VWM5TW9OckdxaFllYjJqUW8wV2xHbFhqeHRhblpMUzI0L09JTjVHeC8yZzY4NEJQRFFwd2xxbmtGY3hwbVAvb3NuT1hyRnV1NFBxaWZvdVFIMGVGNXFDa3ZJVFFiSncvWnZ5NW1BSFdDOW9VK2NUaVloSm1TZktzQ3l0MWNHVnhpc0t1K055bUVRSUF5YUNndWQvVjA5cVQzbmsvOXMvU1dzWXRoYTd5TnB6QklNTTQwckNTR2FKOXU2bEVrbDAwdlhCaUV0N3A5UDVJQkNpYXZ5bkVPdjdGZ0xxUGRlcXhSaUN3dUZWTW9sU0lVQmNveWZVQzJlMkZKU0FVZ1lkVkdGZjBiMEtuMkVabEs5N3l5eHJUMk1WZ3Z0UmlrZmRhQVc4UndFRWZOK0I3L2VLOGJCZHA3VVJwYnFuMXhjckM2ZDJVamRzS2J6Q2pCRnFrS2tvWnQ3TXJoZzZZYWdFN3Nwa3FqMGpPcldNK1VHUTBNVWxHMmV2UDF1RTFwMnhTdjRkTUswZG5hNkVOY05VRit4a2FKN0I3NjROZHhMQ3B1dmhibGx0VlJBZjd2SzVxUHR0Si85UllGVVVTR2NMZGlibno2bWY3V2tQTzNNa1VVaFIybUFPdUd2OElXdzVYRzFadm9WTW5qU0FaZTZUN1dZQTk5R0VOeG9Ia01pS3hIbEN1SzVHZDBJTnJJU0ltSFFyUW12NkY0bXFVL1RUUThuSE1EekNSaXZLeVNROGRxa3BRZ25VTW53SWthQXVjNi9GR3ExaHczYjJTYmEzOThCaFV3VVpTQUlPOFhadm51TGRZMm42aE9Yd3MrZ3E5QkhVS2NLRkE2a3o2RkRucHhMUElDYTNxR2huYzk3Ym8xRlQvWEprNDhMcmtISjJDQXRCdjBSdE45N04yMXBsZnBYSHZaOGdNSmI3WmM0Y2ZJNk1iUHdzVzdBaWxDU1hNRklFVUVtaXI4WExFa2xBMHp0WWJHcFRUR3F0dHA1aHBGVFRJcVV5YUFJcXZNVDlBL3grSmk1ZWpBNEJoeGIvY2wxcFVkT0Q2ZXBkM3lpbElkTzZqMjk3eElub2lCUHVFRFcyL1Vmc2xEeWhHa1FzN1d5MjUzYlZubFQrU1dnODl6WUlLLzlLWEZsNWZlK2pvdzJyZDVGWHY4ekRQcm1mTVhpVVB0OVFCTy9pSzRRR2JYNWovN1J4MWMxdnpzWThPTmJQM2xWSWFQcmhMNCsxUXJFQ1ROM255S2F2R0cwZ0JCdEh2VEtoR29CSGdNWEhTdEZvd04rSEtyUHJpWXUrT1owNUZybjhva1FyUGFheG9LUDFVTENTL2NtS0ZOM2djSDdIUWxWanJhQ2VRbXRqZzFwU1F4ZXVxWGlTS2dMcHhjLzFPaVpzVTQrbjRsejRocGFoR3lXQlVSTGk0NjQybjFnbjlxejliSXNhQ2VFUEowdUptZW5NV3AydEptSXdMUTZWU2dEWUVyT2VCQ2ZTajlQNEcvdkk3b0lGK2wvbjVmcDk1NlFneEd2dXI3N3luYXdBdTNHOU1kRmJKYnU0OU5abldubkZjUUhqeFJ1aFVZdmcxVS9lODRONEpUZWNjaURBS2IvS1lJRlh6bG95dUUxZVlYZjU0TW1oalRxN0IveUJUb0R6enB4M3RKQ1RvM0hDbVZQWWZtdEJSZTNtUFlFRS82UmxUSXhiZjRmU09jYUtGR2s0Z2JhVVdlNDRoVms5U1p6aFc4MHlmVzVRV0JIeG10VXp2TWhmVlFsaTRnWlRrdElPWmQ5bWpKNWhzYm16dHRhSFFCMjlBbTNkWmtteDNnL3F2WW9jeWhaMlBYQVdzTlFpSWFmK1E4Vy9NV1BJSzcvVGp2Q3g1cTJYUnA0bFZXeWRNYzJ3SVFraGFkREIweHNudy9rU0V5R2pMS2pJNGNvVkl3dHViVEYzRTdNSjZMUzZVT3NKS2o4MlhWQVZQSkpjZXBmZXdiekU5MWl2WFp2T3ZZZnNtTWV2d3RQcGZNekdtQzdXSmx5VzJqMGpoN0FGMUpMbXdFSlNLWXdJdnU2REhjM1lueUxIOVpkSUJuUStuT1ZEUmlQK1JFcHF2Kyt0eXBZSEl2b0p5SUNHQTQwZDhiUjdIUjJrN2RvNlVRVEhGNG9yaVllSVFieEtlNFRoNisvbDFCalV0UzlocU9SaDNNYmd2WXJTdFhUZlN3YUJPbUFWUVp6cFlOcXNBbVF5alk1Nk1VcXR5M2MveEg2R3VoTnZOYUc5dkdiRzZjUHRCTThVQTNlOHI1MUQwQVI5a296S3VHR1NNZ0x6M25BSHhETm5jN0dUd3BMajcvNkhlV3AxaWtzRGVUandDTHB4ZWp1TXRwTW5HSmdzaWt1MXNPQUN3UTl1a3pFU2lEUk43N1lORVN4UjVMcGhPbGNBU1hBNXVJdHMxTG5CSWNuMUo3QkxXczQ5RE1BTFNudXo5NWdkT3JUWnIwdTFTZVlIaW5uby9wRTU4eFlvWGJWTy9TK0ZFTU1zNXF5V2tNbnA4UTNDbHlUbFpQNTJZOW5xN2I4ZklUUHVWWFVrOW9oRzVFRkh3NGdBRWNqRnhmS2IzeHVBc0VqeDJ6MXd4TmJTWk1jZ1M5R0t5VzNSNkt3Sk9OZ3RBNjRMVHl4V204QnZ1ZHAwTTFGZEpQRUdvcE00RnZnN0cvaHNwdGtoQ2ZIRmVndjRFTnd4UGVYbVloeHdaeTdqcytCZU0yN3Q5T0RCTXluVkNMSjdSV2NCTXRlWkp0dmpPWUhiNWxPbkNMWVdORU1LQzU5QkE3Y292dTFjQU5hMlBYTDA1aUdkdWZPemtnRnFxSEJPcmdRVlVtTEVjK01rejRScThPNldrTnI3YXROa0g0TThkK1NEMXQvdFN6dDNvRnFsK25lVnMrQXdFSTVKYUJKYXhBUnRZMlo0bUtvVXF4ZHM0VXBaMHN2M3pJYk5vbzBKNGZpaGxkUVRYM1hOY3VOY1ptY3JCNUxUV01kemVSdUF0QmszY1pIWVFGNmdUaTNQTnVESjBubVIrNExQTG9IdnhRSXhSZ0o5aU5OWHFmMlNZSmhjdkN0SmlWV284NVRzeUZPdXE3RXlCUEpyQWRoRWdFMGNUcTE2RlFYaFlQSkZxU2ZpVm4wSVFuUE95MExiVTRCZUc5NFFqZFlOQjBDaVEzUWF4UXFEMmViU01pTmphVmF3OFdhTTRaNVduemNWRHNyNGVHd2VTTGEyREUzQldWaWF4aFpGSWNTVGpneE5DQWZlbGcraHpuVk9Zb2U1VnFUWXMxZzdXdGZUbTNlNC9XZHVDNnArcXFBTThINFp5ckpDR3Bld1RoVERQZTZIN0N6WC96UThUbStyNjVIZVpuK01zbXhVY2lFV1BsQVZhSy9WQmFRQldmb0cvYVJML2pTWklRZmVwLzg5R2phc1dtYmFXemVFWjJSMUZPanZ5SlQzN085QjgwNDZTUlNLVkVuWFdsQnFia2I1WENTM3FGZXVFOXhiOStmckVrbnhXQjVoMUQvaHJ1ejJpVkRFQVM3K3FrRXo1T3Q1YWdISmM3V0NkWTk0V3M2MXNVUmNYNW5HOFVFTEdCQUhaM2krM1Z1bEF5VDBuS05OejRLMkxCSEJXSmNUQlgxd3pmKy8vdS9qLzkrLy92ODcrOS9sOUxiaC9ML3V5TllpVHNXVjJMd3NqYUE2TXhUdXpGTXFteFc4SncvK0lwcGRYOHQvQ2xnaTFySTFTTjBVQy9yNnRYLzRsVWMyVlYxT1FSZVNlQ3NqVXBLWmNodzRYVWNqSGZ3NnJ5Q1YzUjhzNlZYbTY3dnA0bitsY1BWOWdKd21iS1FFc21ySmk5YzJ2a3dybThIRmJWWU5UYVJHcThEOTF0OW41K1UrYUQvaE50TjNIakMvbkMvdlVvR0ZTQ2tYUCtObFJjbUxVcUxiaVVCbDRMWWYxVS9DQ3Z3dGQzcnlDSDhnVW1HSVRBeGlIMU81cm5HVHo3eTFMdUZqbW5GR1ExVVd1TTdId2ZYdFdsMmZQRktrbFl3TlVwRjJJTC9UbWFSRVRqUWlNNVNKYWNJKzNHdjVNQlU4bFA1SW82Z1drYXdweXpORVZHcU9keDRZbE8xZEN2amJXRlpXYkNtZWlGS1BTbE1LdEtjTUZMcy9LUXh0Z0FIaTdOWk5DUTMyYkJBVzJtYkhmbFZaOHdYS2kxSktWSGtXMjBibllubDNkS1dKZVdKT2lYM29LUEJENlpiaTBadlNJdVdrdFVIQjhxRFI4RE1NaDFaZmtCTDlGUzl4NXIwaEJHTEo4cFVDSnYzTllIK0FlOHA0MG1aV2Q1bTVmaG9iRmpRZVF2cVRUNFZLV0lZZlJMMHRmYVhLaVZsNzVoSFJldVRKRWNxVmx1ZytlT0lJYzRiZEl5ZHRuMkswaU5aUHNZV1F2UWlvMnFiTzNPcUFsUEhERE9CN0RmakdFZlZGNTFGcXFOYWNkNlFtZ0ZLSnBNZkxwNURIVHY0d1hsT05LVlhGOXpUSnBEVjRtMXNZWnFKUGhvdGNzbGlaTTh5a3NLa0NrenBpWHQrRWNSUXZTUXFtQlM5V2RXa3hNVEpYUFN3OTRqcUkzdmFyQ2pReFRhempsTUg4alRTOGlsYVc4MDE0L3Z3QS9MTmErWWlGb3l5eDNzL0tzd1AzTzhRVzFqdHE0NXlUTS9EWDlhOE00dm9UVmFPMmVidncxRW9vRHcveWc2WTFmYVkrV3dyZFZzNVl0MGhRNUV3UmZZWFNGeHJheTFZdlNNK2tZbWxwTEcyLzltbTFNZm1iS0hYcjQ0SWg4blZLYjFNNTM3WkFOVWtDdGRzUFo4MEpWS1ZLYWJWSENhZGFMWGcrSVY4aTVHU3dwWnRpMGg2ZGlUYUtzOXNkcFVLRXBkN2pEVXBZbUh0aVgzM1NLaU8zdHV5ZGtheEE3cEVjOVhJUUVPZldKbHN6ajVZcEw1YktlUXlUN2FaU0JPYW12U0hsOHhzV3ZnbzI2SVAvYnFrKzBFSlV6K2dra2N2bFVseVBwMmtkS0Z0dDd5NWFDZGtzOVpKSmNGcDVaV2VhV0tndG5YTU4zT1J3R0xCRTBQdGtFSWVrNUZZMmFWc3NVWkh0c1dJdm5sak1WSnR1VklqcFp1cC81VkwxeVBPSFdXSGtPTWM2WXlTV01ja2N6RDVqVWoybWxMVnF1RmFNVThsZUdWYXFlWGlzK2FSUkw4em00V3VCazZjeVdmR014Z3RyOHVzZVFFeDdrL1B2Um9aeWQ5bmRlMUdVQ1Y4NGdNWDhPZ3UvQldlellQU1IyN2xselFuQTk3b28wcFl5eG9iWVVKZnNqK3lzVG05ekorUzRwazBUR285VlRHMEtqcVloVG1BTGZvRFpWS2xhMmI1eWh2MjQxUHhGYUxKczNpMDVLMEFBSWRjR3hDSlptVDNaZFQ3Q2xpUjdxK2t1cjdXZFFqeWdZdE9XUkw5QjhFNHM0TEk4S3BBajdiRTBkZzdETE9hWCtNR2VBaTBoTU1TU1daRXorUnVkWGJaQ3NHWVMwUXFpWGpIOVhRYmQ4c0NCK25JVlRxNy9UL0ZEUyt6V1k5cTdaMmZkcTF0ZExiNnYzaEtLVkRBdzVnamo2bzlyMXdIRlJPZEhjMThNSnA0U0oyVWN2dStpUTlFZ2tla1c4VkNNK3BzTTZ5Ky8yU0J5OHROTjRhM0wxTXpQK09Mc3l2RVNvNWdTN0lRT25JcU1tdmlKQlZjNnpiVkcxbjhlWGlBM2o0NmttdnZ0Smxld3dORHJ4azRTYkpPdFAvVFYvbElWSzl1ZVNoTmJiTUhmd25MVExMaGJadU83OWVjNVh2ZmdSd0xGSyt3MXI1WldXMTVyVkZackUrd0txTlJ2NUtxc0xOZnBHZ25vVVU2WTcxTnhFbU43TXlxd3FBUXFvSVVMT3cvTGJ1VUIyK3VFNzVnSnQra3ExcVk0TG94VitxUi96YWx1cGVhM0Q1K1dNZWFSSW4wc0FJNkREV0RoMTU4ZnFVYjRZaEF4aFJFYlVOMHF5eUpZa0JVNFYyS0FSWERUNjVnVzNnUnNpdjd4U1BZRUtMd3pncmlXY1dnUHIwc2JabnY3bTFYSE5GVzZ4UGRHTlpVZHhGaVVZbG1YTmpEVld1dTdMQ2tYL25Wa3JYYUpoaVlrdEJJU0MyeGdCWFFuTkVQK2NwdFdsMWVHNjJhN0NQWHJucmtUUTVCUUFTYkVxVVpXTURpWlVpc0t5SERlTEZPYUpJTFVvNWY2aUR0NFpPOE1scWFLTHRvMEFtVEhWVmJrR3V5UGExUi95d1pzV1JvUkRvUmROTU1Id1lUc2tsTVZubEFkMlMwMjgyYmdNSThmaUpwRGg2OU9TTDZLM3FibzIwS2ZwTk11cm5ZR1FTci9zdEZxWjdoWXN4S2xMbktBS2hzbUI4QUlwRVE0YmQvTnJUTFRYZWZzRTZDaFJtS1dqWEtWZ3BHb1BzOEdBaWNnS1Z3NEswcWdEZ3kxQTZoRnExV1JhdDNmSEYrRmtVK2I2SDROV3BPVTNLWFR4ckliMnFTSEFiK3FobThoaVNST2kvOW9mYXBqeGh5S3h4bnRQcGdlNktMNVo0K1dCTVlrQWNFNiswSGQzWWgyekJzSzJNVjNpVzBZNmN2T0Nyb1hsUmIyTU1KdGRXeCszZGtGekdoMlBlM0RaOVFwU3FwYVIvckUxSW1PckhxWVl5Y2NwaUxDMjJhbUpJalJXVkFoZXJUZnBRTG1vNi9LMnBuYTg1R3JEdVFQbEgxVHNhcjhpc0FKYlhMYWZTd09vZjRnZzlSa0FHbS9vWXBCUVFpUFVveURrMkJDUTFrK0tJTHE0OEVyRm80V1NSaEhMcS95N21ndzMrTDg1UHBQNnhXcjZjZ3A5c09qWWpLYWdPcnhGMTQ4dWh1YVd0amV0OTUzZmgxSVFpRXpnQytkMklnQkNjVVpxZ1RBSUNtMmJSOG9DakRMQnNtZytUaHloZkQrekJhbHNLQlkxQ2U1NFkvdDljd2ZiTHU5U0Z3RWdwaGZvcE5BM3lOeGd5RGFmVU0zbVlUb3ZaTmdQR2RkNFpGRk9qMXZ0ZkZXM3U3TitpSEVOMUhrZWVzRE1YS1B5b0NEQ0dWTW80R0NDRDZQQmhRM2RSWklIeTBZLzNNYUU1elU5bVRDcnd3blpvanRFK3FOcE1Ta0pTcG1HZTBFekx5RmVsTUpxaGZGUTdhNTB1WHhaOHBDYzJ3eHRBS1dnSG9lYW1SMk83UiticTdJYlBZSXRPMGVzZFJnb1RhWTM4aFpMSjV5MDJvSVZ3b1Bva0dJenhBTUR1YW5RMXZuMldEUTAwUmg2bzVRT2FDUnU5OWZ3RGJRY04wWEF1cWtGcHhUL2NmejNzbEdSVm9rck5VMGlxaU1BSkZFYktTY1pkbVNrVFV6bkMwVStNZndGT0dkTGdzZXdSeVBLd0JaWVNteTZVMzI1aVVoQlFOeGJBQzNGTEtEVjlWU091UXBPT3VrSi9HQW11L3R5RWJYOURnRXA2ZHYxem9VMElxenBHNmdzc1NqSVlSVlBHZ1UxUUFRWVJnSVQ4Z0VWMEVYcjFzcWVoMkk2clhqdG1vQ1l5RURDZS9Qa0ZFaS9RNDhGdVQyOXA1NTdpTitMQ3drNUNLL0NaMldkQWRmUVpoMlo5UUdyelBMU05SajVpZ1VXemw5VmkwckNxSDhHMUtwNFFNTGt1d01DQXlwZHZpRFh5T0lrMEFIVE04SEJZS2gzYjAvRitEeG9OajRaZG9aZkNwUVZkblphcnFvTWFIV25NTE5WY3lldnl0R3NyWFFFb0lidWJxV1lObzdOUkh6ZGMwenZUMjFmV1Zpcmo3ZzM2aXk2cHhvZ2Z2Z0hwMXhIMVR1cmJ6OFF5eUhuWGVCSmljcFlVY3RiekFwd3paMUhUK0ZQRVhNQWdVWmV0Z2VHTXd0NEcrREhpRFQyTHUrUFQyMWZqSkNBZlYxNmEvV3UxUHFPa1VIU1RLWWhXVzZQaGhIVWxOdFd6Rm5BN01iWStyNjR2a3dkcGZOQjJKZldnV1hBdmt6ZDQySzRsTjl4N1dyZzRrSUtnWENiNG1jVzU5NU1DUEovY1RmUEFNUU1GV3ducXdkZTR3OEhaWUpGcFF3Y1NNaGpWejRCOHA2bmNTQ04xWDRrbHhvSUg0Qk4ySjZ0YUJNajZsSGtBT3M4SkpBbVhxNXhzUXRyUElQSUlwL0hHNmkyMXhNR2NGZ3FEWFNSRjB4UWcxNGQydXk2SGdLRTEzTFN2UWU1Mm9TaEY1SngxUjZhdnlMNHRoaFhRWkhmQzk0b1p6dVBVQktGWWYxVnZEYXhJcnRWNmROR1N4N0RPMGkxcDZDekJrdUFtRXF5V2NlUVk3RjkrVTBPYllEem9hMWlLYW8vY09EL3Y2UTlnSHJycjF1Q2VPazhmU1Q5TUcyM1VsMEttTTNyK1duNkhpNldBY0w3Z0VlYXlraWN2Z2p6a2pTd0ZzQVhJUjgxWng0UUo2b29zVnlKa0NjVCs0eEFsZENjaWhxdlRmOTRISFVQWFlwM1JFSWFSNGRocFFGNitGSzFIMGk5aTdQdmg4b3d1M2xPNFBUMWl1cXUrRGtMMkJqOStrZGZHQWcyVFh3MDNpTkh5b2J4b2ZMRTJpYmpzWURQZ2VFUWxSTVI3YWZYYlNHUWNuUGpJMkQrc2R0bXVRNzcxZGJBU1VzRG5kVTd0NThqcnJOR1J6SVN2d2lvQWxIczVGQStjQkU1Q2N6bmtkOE5NVjZCUjZrc25LTFBabk1VYXdSRFUxTVovaWIzeENka1RibEhLdTRibE5peWxINW4yMTN5TTB6dWJFaWUwbzRKaHpjZkF5M0g1cWgybDE3dUxvb0JOTGFPK2d6b25USDJ1RjhQUXU5RXlIK3BqR3NBQ1RNeTRjSHpzUGR5bVVTWFlKT01QM3lUa1hxdk8vbHB2dDBjWDVla0RFdTlQVWZCZVpPRGtGdUFqWENhR2RpNmV3NHF4SjhQbUZmd21QcGtnUWpRbFdxb21GWTZVa2ptY25BdEpHNzVFVlIrTnB6R3BQMUVmNXFVVWJmb3dyQzN6Y1NMWDNCeGdXRWdFeC92OWNQOEg4dTFNdnQ5L3JNRFlmNnNqd1UxeFNPUEJnekZFZUpMTVJWRnRLbzVRSHNVWVQ4WlJMQ2FoMjc1OTlFdXFvQzlQWWpZTzZhb0FNSEI4WDFPSHdFQVlvdUhmSEIzbnliMkIrU25aeE0vdncvYkN0T1JqTE1TeTVhWm9FcHZnZEd2bEpmTlBGVXUvcDdaNFZWSzFoaUkwL1VUdUIzWlBxNG9oRWJtN01udGdjMWV2RXRrbmFvc2daU3duREMyQmRNbWlicGVnNDhYOEl4bCsvOCt4WGRic2hRWFVQUHZ4OGpUM2ZrRUxpdkhTbXFiaGJsZk5GU2hXQXlRbkozV0JVNlNNWVNJcFREbUhqZExWQWRsQURkejlnQ3BsWnc2bVRpSHFEd0lzeGJtOUVyR3VzaVZwZzJ3OFEza2hLVi9SOU9qOFBGZUY0M2htVy9uU2Q5OW5aemh5akNYM1FPWmtrQjZCc0g0SDg2NldHeXY5RTBoVkF6UFlhaDJ0a1JmUVpNbVAycmluZk9lUWFsZ2Uwb3ZoZHVCakpzOWExR0J3UmVlcmNlaWZ5NDljdE9oNS82NUFUWXVNc0FrVmx0bXZUTEJrNG9IcGRsNmkrcDhEb05qNEZiMnZoZEZZZXIySlNFaWxFd1BkNW41ek5vR0JYRWpyZWcvd2gyTkZuTlJhSVVIU09YYTRlSlJ3eWdab1g2dm5XbnFWZENSVDFBUnhlRnJOQkordHNkb29Nd3FuWWhFN3pJeG5EOHBaSCtQME51MXdXeENQVEFEZk5XbXF4NjI2SUJKSnE2TmVhcGNHZU9tYnRYdmwwVGVXRzBZN09HR1Y0K0VIVHROQklUNVdkMEJ1amw3aW5YZ1pnZlhUTTVlZkQzcURUSjU0Tzl2M0Jrdit0ZElSbHExa1hjVkQwQkVNaXJtRnhnbE5QdDVwZWRiMUFueHVDWU1DaFV5a3dzVElXcVQyM1hEcHZUaUtFcnUxY1RjRU1lbmlCK0hRRGVoeFBYTm1rb3RGZHdVUG5pbEIvdTROeDVYYzZsOEo5akgxRWdLWlVVdDh0OGN5b1psZURCRXQ4b2liRG1KUkFvTUtKNU9lOUNTV1M1Wk1FSnZhY3NHVmRYRFdqcC9ZcGU1eDBwOVBYQjJQQXd0MkxSRDNkK2Z0TmdwdXl2eGxQOHBCODRvQjFpNzN2QVZwd3lybVhXNzJoZlc2RHpuOUprajQrKzBWUTRkMEtTeDFBc0RBNE90WFhEbzYzL3crR0QrekM3dzVTSmF4c21ubFlSUTRkZ2RqQTd0VGwyS05MbnBKK212a29EeHR0MWE0b1BhWDNFVnFqOTZvOXNSS0JRcVU3Wk9pdXBlQUl5TE1EK1kzWXdIeDMwWFdIQjVDUWl3N3EzbWoxRURsUDJlQnNaYno3OWF5VU1ieUhRN3M4Z3U0TGdpcDFMaUdKajdOUWo5MDUvK3JnVVlLQUE1cWRybEhLSWtuV21xZnVSK1BCOFJkQmtEZy9OZ25sVDg5RzcyaDJOdnlTbmo3VXlCd0QrbWkvSVdzMXhXYnh1VndVSVZYdW41Y01xQnRGYnJjY0krRElManNWUWc2ZWVxMGl0aVJmZWRuODlDdnlGdHBreGFhdUV2U0FOdVptQjFwOEZHUGJVOTRKOW1lZHdzWjlIa1VZam1JN09INUh1eGVuZExieFRhWXJQdUlmRTJmZlhGS2hvTkJVcDMzSHNGQVhtQ1YvVnhwcTVBWWdGb1JyNUF5OTNaTFJsZ2FJUGpoWmpYWlpDaFQrYUU1aVdBWE1YMG9TRlFFdHdqaXVoUVFJdFRRWDVJWXJLZktCK3F1ZVROcGxSMUhvZmxvNS9JNmFQUG1BQ3dRQ0UyalRPWW81RHoxY3M3U29kMEtURy8za0VER2sza1VhVUNPTjE5eFNKQ2FiM2tOcFdaaFNXa084bCtTcFc3MFduM2cwY2lPSUpPNUpYbWE2ZGJvczZqeWlzdXhYd1VVaGoyKzF1R2hjdnVsaUt0V3dzVVR3NGdpMWMvZGlFRXBaSG9Lb3hUQmVNRG1oUGhLVHg3VFhXUmFrVjhpbUpSMzU1RGNJSGtSOUlSRUh4b2hQNFRieVI1THRGVTI0dW1SUFJtRVlIYnBlMUxnaHl4UHg3WWdVSGpOYmJRRlJRaGg0S2VVMUVhYlh4OEZTM0pBeHAycndSRG9lV2tKZ1dSVVNLdzZnR1A1VTJQdU85VjRadWlLWEdHekZRdVJ1Zit0a1NTc2JCdFJKS2hDaTNFTnVMbFhoUGJqVEtENGRqWFZuZlhGZHM2WmIrMVhpVXJSZnlheUd4SnExK1NZQkVmYktsZ2ppU21rMG9yZ1RxelNTK0RaNXJUcXNKYnR0aU50cCtLTXFHRTJBSEdGdzZqUXFNNXZENnZNcHRtWFY5T0FqcTQ5VWYvTHg5T3BhbStIbjVPOXA4cW9CQkFRaXh6UVo0ZU5Wa085c1B6SkFNeVIxeTQvUkNRUTFzMHBWNUtBVTVzS0x3M3RrY0ZiSS9KcXJqQ3NLNE13K1c4YW9kNGxpb1l1YXdVaUN5VldCRS9xUGFGaTVibmtncGZ1L2FlNDcxNzRySTFmcVFvVGJXMEhyVTZGQWVqcTdCeU0wVjR6a1pUZzAyL1lKSzJON2hVUVJDZVo0QklnU0VxZ0Q4WHNqekc2TElzU2J1SG9JZHovTGhGemJObjFjbGNpMU5IV0owLzYvTzhISk1kSXBFWmJxaTFScnJGZm9vL3JJLzd1Zm0yTVBHNWxVSTBJWUo0TUFpSFJUU09GSjJvVHZlckZIWVhUaGtZRklveUZ4NnJNWUZnYU9LTTR4TldkbE9uSWNLYi9zdXB0cHRnVE9UZFZJZjRZZ2RhQWpKbklBbTRxTk5ITlFxcUF6dmk1M0dreVJDRW9zZVVCckhvaFpzalVia1I4Z2ZLdGMvK09hNzJsd3hKOE1xNkhEZkRBVGJmYkpoemVJdUZRSlNpdzF1WnBySGx6VWY5MFdncUc3NnpPMGVDQjFXZFB2MUlUNnNOeHhoOTFHRUwyWXBnQzk3aWtGSHlvYUg5Mm5kd2R1cVo2SVlqa2cyMERYMzNNV2RvWms3UWtjS1VDZ2lzSVlzbE9hYUx5dklJcVJLV1FqMTZqRTFEbFFXSkphUG9wV1RKalhmaXhFalJKSm84ZzQrK3d1UWpicStXVllqc3FDdU5JUVczWWpueEtlMk01WktFcXErY1g3WlZnbmtic1UzUldJeVhBMXJ4djRrR2Vyc1lKakQvL2F1bGRYR21jRWJjZlRlRjE2WTE3MDhGQjFISWZtV3Y2ZFNGaTZvRDRFK1JJakNzRVora1k3ZEtud1JlSkp3M3hDakt2aTNrR040MnJ2eWhVbEl6MEJwK2ZOU1Y1eHdGaXVCekcyOTZlNXMvb0hvRnRVeVVwbG1QdWxJUGwrZTFDUUlRVnRqbHpMenp6YlYrRC9PVlF0WXpvNWl4dE1pNUJtSHVHNE4vdUtmSms1VUlSRXA3KzEyb1psS3RQQm9tWFN6QVkwS2d0YlB6elpvSFF4dWpuUkVVZ0JVK08vaktLaGd4VmhSUHRicXlIaVVhUndScEh2N3BnUlB5VXJuRTdmWWtWYmxHbWZUWTI4dEZDdmxJTEMwNFR6M2l2a05XVmF6QStPc1lyeHZSTS9oaU5uOEZjNGJRQmVVWkFCR3g1Uy94RmY5TGJibWsyOThYN2lGZzJ5ZWltdnNRcXFKK2hZYnQ2dXErWmY5akMrSmN3aWNjZDYxTktRdEZ2R1dyZ0ppSEI1bHdpNmZSOEt6WVM3RWFFSGYva2E5RUM3SDhEK1dFYTNURUFDSEJrTlNqL2NYeEZlcTRSbGxDK2ZVRm0yeHRzdFlMTDJub3MxRGZ6c0M5dnFERGRSVmNQQTNIbzk1YUVRSHZFeFZUaFhQcXltNjVsbGtLbGZSWGJQVFJpRGVwZHlsSGptVjlZVFdBRWpsRDlEZFFuQ2VtN0FqL21sNThPbjM2NjM5MjIxNEI1enJtUXovOXlTRzJtRnFFd2pxNXNGbDV0WUpQdzVoTno4bHlaUFVUc3I1RTBGMkM5Vk1Qblpja1dQNyttYndwL0JpTjdmNGtmN3Z0R25aRjJKR3ZqSy9zRFgxUnRjRlk1b1BRbkU0bElBWVY0OVUzQzlTUDBMQ1kvOWkvV0lGSzlPUmp6TTlrRy9LR3JBdXdGbWdkRXBkTGFpcVFOcENUR1pWdUFPNjVhZmtZMWgzM2hycXlMalp5OTJKSzMvdHdkajlwYWZGY3dmWE9ObVBRV2xkUGxNZTdqbFAyNEpzMHY5bThiSUo5VGdTMkl1UnZFOVpWUmFDd1NKWU90QWZMNUgvWVM0RmZ6S1dLYmVrK0dGdWxoZXlLdERObEJ0cmRtcitLVStpYkhUZGFsekZVbU1meHczZjM2eCszY1FiSkxJdFNpbFc5Y3V2WkVNakt3OTg3anlrWlJsc0gvVUkrSGxLZm8ydEx3ZW1CRWVCRnRteEYyeG1JdEEvZEFJZlErclhubTg4ZHF2WGErR2FwT1lWdC8yd2FGaW1YRngzVEMyTVVpT2k1L01sKzNyai9ZVTZJaHgyaFhnaURYRnNVZVFrUkFENndGM1NDUGkyZmxrN1h3S0FBNHpib3F5bnVFTEQzMTJFSjg4bG1ERVZPTWExVy9LL2E4dEd5bFpSTXJNb0lMeW9NUXp6YkRKSE5acmhINzdMOXFTQzQySFZtS2laNVMwMDE2VVRwODNnT2hDd3o5WEl0SzlmZ1hmSzNGNWQ3blpDQlVla29MeHJ1dFFhUEhhMTZSanNhMGdUcnp5anFUbm1jSWNyeGc2WDZka0tpdWN1ZGMwREQ1VzRwSlBmMHZ1RFc4cjUvdXcyNFlmTXV4RlJwRDJvdlQybUZYNzl4SDZKZitNVmR2MlRZcVI2Lzk1NVFnVlBlM0pDRC9XakFZY0xBOXRwWGdGaUVqZ2UySjVsamVJL2lVemc5MUtRdUhrSUk0bW1IWnhDM1hRT1JMQUM2Rzd1Rm41TE9tbG5Ya2pGZG9POTc2bW9OVHhFbFM4SGR4V29QQWtqam9jRFIxMzZtMmwrZjV0NnhhYU5nZG9kT3ZUdTByaWV2bmhOQUI3OVdOclZzNkVzUGdrZ2ZhaEY5Z1NGenpBZCtySlNyYXc1TWxsaXQ3dlVQNVl4QTg0M2xVcHU2LzVqQVIwUnZINHJSWGtTZzNuRStPNUdGeWZlK0wwczVyM2swNUZ5Z2hTRm5LbzRUVGdzMDdxajRuVExxT1lqNnFhVzlrbkpURGtGNU9GTVlibUNQKzhIMTZUeTQ4Mk9qdkVSVjZPRnl3MDQzTDl3M2hvSmk0MDhzUitTR28xV3ZpWFV1OGQ3cVMrZWhLanBLd3hlQ3Roc20yTEJGU0ZlZXR4MHg0QWFLUHh0cDNDeGRXcUNzTHJCMXMvajVUQWhjMWpOWnNYV2w2dGpvL1dEb2V3eHpnOFQ4Tm5oWjFuaVV3TC9uaGZ5Z0xhbkNuUndhRkdEeUx3K3NmWmh5WjFVdFlUcDhUWUI2ZEU3UjNWc0tLSDk1Q1V4Sjh1OE4rOXUyLzlIVU5LSFczeDN3NUdRcmZPUGFmazJ3NXFacThNYUhUMGViZVkzd0lzcDNyTjlscnBJc1c5YzF3czNWTlYrSndOejBMbzkrVjd6WnI2R0Q1NldlNmdXVkl2dG1hbTVHUFBrVkFicjc0cjZTd2h1TCtUUlh0Vy8wcGd5WDE2Vk5sNC9FQUQ1MFRuVVB1d3JXNk9jVU8yVmxXWFMwaW5xODcya2s3R1VsVzZvL296RktxK1NpcDZMY1R0U0RmRHJQVGNDSGh4NzVIOEJlUm9uK0tHMndSd3pmRGdXaEFMbWlXT01PNmgzcG0xVUNaRVBFalNjeWs3dGRMeDZXcmRBMk4xUVRQRU52Tm5oQ1FqVzZrbDA1Ny9xdjdJd1JyeUhyWkJDd1ZTYkxMbkZSaUhkVHdrOG1sWWl4RnQxc2xFY1BEN0ZWaHQxM0h5cVZleUQ1NUhPWHJoMkVsQXhKeWluR2VvRnp3S0E5MXpmcmRMdkR4SlNqem1JbWZ2VGlzcmVJMjVFRGNWZkdzbXhMVmJmVThQR2UvN05tV1dLalhjZFRKMTFqQWxWSVkvQnYvbWN4Zy9RMTB2Q0h3S0cxR1cvWGJKcTVueERoeUxxaW9ybjdXZDdWRVZMOFVnVnpwSE1qUStaOERVZ1N1a2lWd1dBS2tlVGxWVmVaN3QxREduQ2dKVklkQlBaQUVLNWY4Q0R5RE5vN3RLNC81REJqZEQ1TVBWODZUYUVoR3NMVkZQUVNJNjhLbEJZeTg0RmlldmRVOWdXaDZYWnJ1Z3Z0Q1ptaTl2ZmQ2ZGI2VjdGbW9FY1JIbkczNlZaSDhONGFaYWxkcTl6WmF3dDF1QkZneFlZeCtHcy9xVzFqd0FOZUZ5K0xDb3lteU02emdHN2o4Ykd6VXlMaHZyYkprVFlBRWRJQ0ViNGtNS3VzS1Q5VjNlSXdNTHNqZFVkZ2lqTWMrN2lLcnIrVHhyVldHMFUrVzk1U0dyeG54R3JFNGVhSkZmZ3ZBalVNNFNBeThVYVJ3RTlqNlpRSDVxWUFXR3RYQnl2RGlMU0RmT0QweUZBM1VDTUtTeVEzMGZ5eTFtSVJnNFpjZ1pITE5IV2wrYzlTZWlqT3ZiT0p4b1F5N2xUTjJyM1k4cDZvdnh2VVk3NGFPWWJ1VmV6cnlxWEE2VStmY3A2d1NWOVg1L09aS1AxOHRCNTZVYTBnTXl4Skk3WHlOVDdJcnFOOEdzQjlyTC9rUDVLTXJqWHhncUtMRGErVjVPQ0g2YTVobU9XZW1NVXNlYTl2UWw5dDVPY2U3NlByVHlUdjUwRXhPcW5nRTNQSFBmU0wvL0FJdFBkQjdrR255VFJoVlVVRk5kSkoyejdSdGt0WndnbVF6aEJHL0c3UXNqWm1KZkNFN2s3NUVtZElLSDd4bG5tRHJOTS9YYlRUNkZ6bGRjSC9yY1JHeGxQcnY0cURTY3FFN0pTbVFBQkpXcVJUL1RVY0pTd29RTSsxanZEaWd2cmpqSDhvZUsyaW4xUysveU8xajh4QXdzL1Q1dTBWbkl2QVBxYUUxYXROdU4wY3VSbGlMY0gyajBuVEw0SnBjUjd3OVF5YTBKb2FIZ3NPaUFMTENDelJrbDFVVUVTeit6ZS9nSVhIR3REd2dZcks2cENGS0oxd2ViU0RvZzR6VGxQa2dYWnF4bFFEaVlNamhEcHdUdEJXMld4dGhXYm92OWR0Mlg5WEZMRm1jRitlRWMxVWFRNzRncVppWnNkajYzcEgxcWN2M1Z5OEpZY2lvZ0lWS3NKOFl5M0o5dy9HaGpXVlNRQW1yUzBCUE9XSytSS1YrMGxXcVhnWU1uSUZ3cGNaVkQ3elBTcDU0N2k5SGxmbEI4Z1ZuU1RHbW1xMUNsTzA4MU9XL1VIMTFwRVFNZmtFZERGempMQzFDZG8vQmRMM3M3Y1hiOEorK0h6ejFyaE9VVlpGSVBlaFJpWjhWWXU2KzdFcjdqNVBTWnU5Zy9HQmRtTnpKbXlDRDl3aXN3ajlCWncrVDNpQnJnODFyZTM2aWhNTGpvVkxvV2MrNjJhMVUvN3FWWDVDcHZUVkY3cm9jU0FLd3Y0Y0JWcVptN2xMRFMvcW9YczRmTXMvVlFpNkJ0VmJOQTN1U3pLcFFmakgxbzN4NExydmtPbjQwemhtNmhqZHVEZ2x6SlV3QTBQT2FiZ2RYSW5kcDlmemhPbzIzUGUrUms5R1NMWDBkNzFQb3FyeThOUURUek5sc2ErSlRORzkrVXJFZituZ3hDakdFc0RDYzBieit1ZFZSeUhRSTFqbUVPM1MrSU9ReWNFcTdYd0I2ejN3Zk1mYTczbThQVlJwK2lPZ3RaZmVTQmwwMXhuMDN2TWFRSmt5ajd2bmhHQ2tsc0NXVlJVbDR5KzVvTlV6UTYzQjJkYmpERjN2aWtkLzNSVU1pZlBZblg1R2xmdWsyRnNWLzdScWpJOXlLVGJFOHdKWSs3NHA3cVhPOCtkSVlnanRMRC9OOFRKdFJoMDROOXRYSkE0SDU5SWtNbUxFbGd2cjBRNU9DZVZmZEF0KzVoa2g0cFFnZlJNSHBMNzRYYXRMUXBQaU95SFJzL09kbUh0QmY4bk9aY3hWS3pkR2NsSU4xNmxFN2tKK3BWTWpzcE9JKzUrVHFMUk82bTBacE5YSm9aUnY5TVBEUmNBZkpVdE5aSHlpZy9zMnd3UmVha0ZnUFBKd0NRbXUxSTMwL3RjQmJqaStOYTUzaTFXMU4rQnFvWTdaeG8rVS9NOVh5SjRPazJTU2tCdG9Pcnd1aEFZM2EwM0V1Nmw4d0ZkSUcxY04rZThob3BUa2lLRjA5M0t1SC9CY0IzOXJNaUdETG42WFZoR0tFYWFUL3ZxYi9sdWZ1QWRwR0V4ZXZGMStKOWl0a0ZoQ2Z5bVdyOXZHYjNCVEs0ajU5OHpSSDcrZStNVTltYXJ1WnFiMHBrR3hSRFJFMUNENFo4TFY0dmhnUGlkazV3MkJxODE2ZzNuSHcxLy9qM0pTdHo3TlI5SElXRUxPOFRNbjNRclAvelpwLy8rRHY5cDQyOS9vZ3YrR0FUUituL1VkRituczl4TmtYWlFKWFk0dDlqTWtKTlVGeWdBdHpuZFh3anNzK3lXSDlIQW5MUVFmaEFza2RaUzJsMDFITFd2N0w3dXM1dVRINDA5cHFpdHZmU09RZy9jK1p0N2s4NzlQM0s5K1dWNjhuNyszY1pmdVJkL2REUFAvMDNybitkKy9uQnZXZmdEbHQ4K0x6anFKL3Z4M0NuTk93aVhoaG83NzhDOTZpRCsxVEJ2UlpZZVArRUg4MUxFMHZWd09Pcm1DTEIzaUt6STF4K3ZKRXNyUEg0dUYwVUI0VEo0WDN1RGZPQ28zUFlwWWUwTUY0Ym91aDBEUS9sNDNmeFVGN1krZHBXdXZUU2ZmQjB5TzJVUVVFVEkvTHdDWkUzQnZuZXZKN2M5elVsWTNINTh4emtlNkRORkRRRzhuMFd0RE40TEFZTjRub2dLYXYxZXpPZksveit0NnRzQ1RwK2RoeDR5bWpXdUNKazFkRVVpZkRQK0h5UzRpUC9WZzlCMmpUbzlMNE5iaUJ1RFM0bnV1SFc2SCtKRFFuMkp0cVJLR2tFUVBFWUU3dXphelhJa2N4SUFxVXExZXNhc1pCRVRsRVpZN3k3Sm8rUm9WL0lzalk5ZUlNa1V2cjQySGMweHF0c2F2WnZoejFPTHdTeE1PVHVxemxoYjBXYmRPd0JIOUVZaXlCamF0ejQwYlV4VEhiaVd4cUowdW1hMTlxaFBydXZjV0psYmlTU0g0OE9MRERwYUhQc3p2eWN0NDFaZlR1MTArdmpveDZrT3FLNnYwSy9nRVBwaEV2TWwvdndTditBNEhobTM2SlNQOUlYVHlDWkRtNGtLc3FENWF5OGIxU2FkL3ZhaXlPNU4vc0RmRVY2WjRxOTVFK3lmanhwcUJvQkVUVzJDN3hsNHBJTzJiRE9EREZ1clVQd0U3RVdDMlVwbHErQUhtQkh2aXIyUFNna1IxMi9SeTY1TzBhWnRRUGVYaTltVGxGL1dqNUdRK3ZGa1l5aFhzTFRqckJTUDlod2s0R1BxRFA1ckJuNS9sOGIwbUxSQXZSU3pYSGMyOTNiczNzOEVzZEUzbTJleHhpZFdWQjRqb0hSK1MrZHo1L1crdjAwSzNUcU4xNENEQnRoOGVXY3NUYml3WFBzeWdIZEdpZDBQRWR5NkhIbTJ2L0lVdVY1UlZhcFltekdzWDkwbXBuSWROR2NPT3E2NERiYzVHVWJZcEQ5TTdTKzZjTFkvL1FtanhGTFA1Y3VURlJtM3ZBNXJrRlpyb0ZuTzNiakhGMzV1VTNzOG12TDdUcDlueVRjNG15bVRKNXNMSXA3dW1TbkdrTzIzZmFlaHR6M21tVFM3ZmJWeDVyUDd4M0hYSWpSTmVxL0EzeENzOUpOQjA4YzlTOUJGMk8zYk91cjBJdHNsRnhYZ1JQZGFhcEJJaTRkUnBLR3hWejdpcjY5dC9iYzlxVHhqdnRPeUdPZmlMR0RoUjRmWXl3SHYxV2RPcGx4SVY4N1RwTEJ5M1djMFFQMFA5czRHN0ZCTk9kSVRTL3RlcDNvM2gxVEVhNVhERGlpN2ZXdHFSelVFUmVQMmZieHo3YkhXV0pkYklPeE9VSlp0SXROWnBURlJmajZ2bTlzWWpSeFFWTytXVGRpT2hkUGVUSis4WWlyUHZvZUw4OGw1aUxZT0hkM2IvSW1rcSsxWk4xRWwzVWlraGZ0dXRlRVl4ZjFXdWpvZjhQcjRJQ1R1NWV6WnlaNHRIUU14bHpVSExZTzJWTU9vTk1HTC8yMFM1aTJvMm9iZmsrOHFxZFI3eHpiUkRiZ1UwbG51SWd6NExlbFE1WFM3eGJMdVNRdE5TOTV2M1pVT2RhVXgvUWQ4cXhDdDZ4ZjJFNjJ5Yi9IdWtMTzZSeW9yVjhLZ1lsNVlOYzc1eStLdmVmcnhZK2xjLzY0eTlrdldQMGEwYkR6L3JvanErUldqTzA2V2VydVdxTkZVN3IzSFBJY0xXUnFsOElDWnN6MkxzL3FPbS9DTG42KytYK1FmN21Hc3BZQ3Jab2QvbHBsNlJ3NHhOL3l1cThncVY0QjZhSGsxaFZFMVNmSUx4V3U1Z3ZYcWJmQVJZUXBzcGN4S3AxRi9jOFhPUHprWnZtb1N3K3ZFcUJMZHJxMWZyM3dBUHY1Tm5NOWk4RitqZEF1eGtQNVo3MWM2dWhLM2VubG5HeW1yN1VzV1pLQzEycWdVaUc4WFhHUTlteG5xejRHU0lseWJGOWVYbWJxajJzSFgrYTFqZjBnUm9PTkhSZFJTcklxMDNUeTg5ZVExR2JWL0JrK2R1NCtWMTV6bHMrdnZFUnZaNEU3WmJueFdUVmpEamI0by9rOGpsdzQ0cFRJclVHeHh1SnZCZU8raGV1aE9qcEZzTzZsVkovYVhuSkRhL2JNMFFsMWNMYlhFL1BidjNFWjN2ajNpVnJCNWlyanVwWlR6bG52Njc3TnJJOVVOWU5xYlBncC9IWlhTK2xKbWs4N3dlYys3WU94VERvMmF3MmwzTmZEcjM0Vk5sdnFXSkJrbnVLN29TbFo2L1QxMHp1T29QWk9lb0lrODFOK3NMODQzV0oyUTRaMGZaM3Njc3FDL0pWMmZ1aFdpMWpHVVJTS1pWNjM3bGY1M1hubngxNi92S0VYWTg5YVZKMGZ2OTFqR2RmRytHNCtzbml3SGVzNGhTK3VkT3I0UmZoRmhHL0Y1Z1VHMzVRYVUrTWN1TG1jbGI1WldtUitzRzVWNm5mK1B4WXpscm5GR3hwWmFLOGVxcVZvME5mbUFXb0dmWERpVC9GblViV3Z6R0RPVHI4YWt0T1pXZzRCWXZ6NVlIMTJaYmZDY0d0TmsrZERBWk5HV3ZIb3YrUElPblk5UHJqZzhoL3dMUnJUNjlzdWFNVlo1Yk51SzAwbFNWcG5xU1gxTk9OLzgxRm9QOTJyWW5kaW9ud2dPaUE4V01mNHZjOGwxNUtxRUVHNHlBbTIrV0FONUJyZnUxc3E5c3VXWXFnb2FqZ09ZdC9KQ2sxZ0M4d1BrSytYS0N0Ulg2VEF0Z3ZybnVCZ05SbW42SThsVkRpcE9WQjlrWDZPeGtwNFpLeWQxTTZHajgvdjJVN2srWVFCTDk1S2I5UFFFTnVjSmIwSmxXM2I1dE9iTjdtL1oxajFldjM4OGQ3bzE1emdYc0k5Q2lrQUdBVmlSNmxrSnY3bmI0QWs0ME0yRzhUSjQ0N2tOK3B2ZkhpT0ZqU1VTUDZQTStRZmJBeXdLSkNCYXhTVnhwaXpIc2VaVXlVQmhxNTl2Rndya3lHb1JpSGJvMGFwd2VFWmVTTHVOaVErSEFla09uYXJGZzAwZFpOWGFQZW9IUFRSUjBGbUV5cVlFeE9WYWFhTzhjMHVGVWg3VTRlL1V4ZEJtdGhsQkRnZzI1N1EzM2oxaEE3SFR4U2VUVFN1Vm5QWmJnVzFub2R3bUcxNmFLQkRLeEVldHY3RDlPak8wSmhyYkpUbm9lK2tjR29ESmF6RlNPOC9mVU45SnkvZzRYSzVQVWt3MmRnUERHcEpxQmZoZTdHQStjanpmRS9FR3NNTStGVjluajlJQWhyU2ZUL0ozUUU1VEVJWXlrNVVqc0k2WlpjQ1ByNkE4RlpVRjRnOW5ucFZtalg5ME1MU1F5c0lQRDBuRnpxd0NjU0ptSWI1bVl2MkNtaytDMU1ERmtaUXlDQnE0Yy9ZYWk5TEo2eFlrR1MveDJzNS9mcklXMnZtRzJXcnYwQVBwQ2RnQ0E5c25GdmZwZTh1YzBPd2RSczRHOTk3M1BHRUJuUUI1cUtyQ1E2bTZYL0g3TkluWjd5LzE2NzQvWlhPVnA3T2V1Q1JrOEpGUzUxNlZIcm5IMUhrSVVJbFRJbGpqSGFRdEV0a0p0b3NZdWw3N2NWd2prM2dXMUFqYWE2eldleUhHTGxwazNWSEUyVkZ6VDJ5SS9FdmxHVVN6Mkg5ellFMXM0bnNLTXRNcU55S050TC81OUNwRkpraTVGb3U2VlhHbTh2V0FURVB3clVWT0x2b0E4akx1d096VkJDZ0hCMkNyNVY2T3dFV3RKRUtva0prZmM4N2grc05IVHZNYjBLVlRwNTI4NFFUUHVwb1d2UVZVd1Vlb2daUjNrQk1FU1lvMG1mdWtld1JWUEtoNStyekxRYjdIS2pGRklnV2hqMXczeU4vcUNOb1BJOFhGaVVnQk5UMWhDSEJzQXo4TDdPeXQ4d1FXVUZqOTJPTm4vQVB5SkZnOGh6dWVxb0pkTmo1N1JPckZiZmZ1Uy9YeHJTWExUUmdqNXV4WmpwZ1FZY2VlTWMyd0pyYWhSZVNLcG0zUWpIZnFFeFRMQUIyaXBWdW1FOHBxY1p2OExZWFFpUEhIc2diNUJNVzh6TTVwdlFpdCttUXg4WEdhVkRjZlZiTHlNVGxZOHhjZm1tL1JTQVQvSDA5VVFvbDVnSXo3ckVTRG1uclE0YlVSSUI0aVJYTURRd3hnZXgxR2d0RHhLcDJIYXlJa1IrRS9hRG1DdHRObTJDNmx5dFdkZk9WekQ2WDJTcERXalFEbE1SdkFwMXN5bVd2NG15MWJQQ0QrRTFFbUduTUdXaE53bXljSm5EVjJXclFOeE80NXVrRWIwOEFBZmZpellLVlVMcDE1STR2Yk5LNUR6V3dDU1VBRGZtS2hmR1NVcWlpMUwyVXNFOHJCN21MdUh1VUpaT3g0K1dpaXpIQkovaHdib2FCemhwTk9WdmdGVGY1Y0pzSGVmN0wxSENJOWRPVVViYitZeFVKV242ZFlPTHorVEhpOTFrelk1ZHRPNWMrZ3JYN3YwakVic3VvT0dub0lyZURJZy9zRk15RytUeUNMSWNBV2QxSVoxVU5GeEU4VWllMTN1Y200MFUyZmN4QzB1M1dMdkxPeHd1K0Y3TVdVc0hzZHRGUVo3VytubGZDQVNpQUt5aDhyblAzRXlEQnl2dEpiNktheDYvSGtMelQ5U3lFeVRNVk0xelB0TTBNSlkxNERtc1doNE1nRDE1RWE5SGQwMEFka1RaMEVpRzVOQUd1SUJ6UUpKMEpSMG5hK09CN2xRQTZVS3hNZmloSVE3R0NDblZ6Njk0UXZ5a1dYVHhwUzJzb0R1K3NtcnUxVWRJeFN2QXN6QkZEMWM4YzZaT29iQThiSmlKSXZ1eWNnSVhCUUlYV3doeVRnWkRReEpUUlhnRXdSTkFhd0dTWE8wYTFES2pkaWhMVk5wL3RhRS94WWhzZ3dlK1ZwS0VFQjRMbHJhUXlFODRnRWloeENuYmZveU91SklFWHkyRklZdytKalJ1c3liS2xVMmcvdmhUU0dUeWR2Q3ZYaFlCZHRBWHRTMnY3TGtIdG1YaC84Zmx5MWRvOEZJL0QwZjhVYnpWYjVoK0tSaE1HU0FtUjJtaGkwWUcvdWo3d2d4Y2Z6Q3JNdmRqaXRVSXBYRFg4YWUySmNGLzM2cVVXSU13TjZKc2phUkdOaitqRXRlR0RjRnlUVWI4WC9OSFN1Y0tNSnA3cGR1eHRENkt1eFZseXh4d2FlaUMxRmJHQkVTTzg0bGJ5ckF1Z1l4ZGwrMk44LzZBZ1dwby9JZW9BT2NzRzM1SUEvYjNBdVN5b2E1NUw3bGxCTGxhV2xFV3Z1Q0ZkOGY4TmZjVFVnekp2NkNiQis2b2hXd29kbGs5bkdXRnBCQU9hejV1RVc1eEJ2bWpuSEZlRHNiMG1Yd2F5ajNtZFlxNWd4eE5mM0gzL3RuQ2dId2pTcnBTZ1Z4TG1pVHR1c3pkUlVGSXNuNkxpTVBqTDgwOHZMMXVRaERiTTdhQTQzbUlTWFJlcWpTc2t5bklSY0hDSjlxZUZvcEpmeDl0cXlVb0diU3dKZXgvMGFERTNwbEJQR3ROQllnV2JkTG9tMytRL2JqZGl6UjIvQVMvYy9kSC9kM0c3cHlsMXFEWGd0T0Z0RXFpZHdMcXhQWXRyTkV2ZWFzV3EzdlBVVXRxVGV1OGdwb3Y0YmRPUVJJMmtuZUZ2Uk5NclNoeVZlRXVwSzFQb0xEUE1TZldNSUpjczI2N21HQjhYOUNlaFFDRjBnSXlocFAxMG1ieU03bHdXMWU2VEd2SEJWMXNnL1V5VGdoSFBHUnFNeWFlYkM2cGJCMVdLTkNRdGxhaTFHR3ZtcTl6VUthVXpMYVhzWEVCWXRIeG1GYkVaMmtKaFIxNjRMaFdXMlRscDFkaHNHRTdaZ0lXUkJPeDNaY3UyRHhnSCtHODNXVFBjZUtHMFRnUUtLaWlOTk9sV2d2cU5FYm5yazZmVkQrQXFSYW0yT2d1WmIwWVdTVFg4OE4raS9FTFN4YmFVVXBQeDR2SlV6WWcvV29uU2VBOHhVSzZ1N0RQSGdwcVdwRWU2RDRjWGc1dUs5RklZVmJhNDdWL25iK3d5T3RrK3pHOFJyUzRFQTBvdXdhMDRpQnlSTFN2b0pBMkZ6YW9iYlp0WG5xOEdkYmZxRXA1STJkcGZwajU5VENWaWY2K0U3NXA2NjVmYWlYOGdTMjEzUnFCeFRacWZIUDQ2bkY2TlNlbk9uZXVUK3ZnYkxVYmRUSDIvdDBSRUZYWkpPRUI2REh2eDZONmc5OTU2Q1lyWS9BWWNtOWdFTEpYWWtyU2krMEYwZ2VLRFpnT0NJWWtMVS8rR09XNWFHajhtdkxGZ3RGSDUrWEM4aHZBRTNDdkhSZmw0b2ZNL1F3azR4MkErUitueWM5Z051LzlUZW03WFc0WFJueVJ5bWY1MnowOWNUT2RyK1BHNitQL1ZiNFFpWGx3YXVjNVdCMXozbytJSmpsYnhJOE15V3RTelQrazRzS1ZiaEYzeGErdkR0czNOeFhhODdpaXUreFJIOWNBcHJuT0wyaDZ2VjU0aVFSWHVPQWoxczhuTEZLOGdaNzBUaElRY1dkRjE5LzJ4YUptVDBlZnJrTkRrV2JwQVFQZG85Mlo4K0huL2FMamJPekI5QUkvazEyZlBzOUhoVU5ESjF1NmF4MlZ4RDNSNlB5d043QnJMSjI2ejZzM1FvTXA3NnF6endldHJEQUJLU0drZlc1UHdTMUd2WU5VYks2dVJxeGZ5VkdOeUZCMEUrT3VnTU04a0t3bUptdXB1UldPOFhrWFhYUUVDeVJWdzlVeUlydEN0Y2M0b05xWHFyN0FVUkJtS242S2h6M2VCTjk2THdJSnJBR1A5bXIvNTl1VE9TeDYzMXN1eVQrUXVqRGQ0YmVVRnBaMGtKRUVuamxQK1gvS3Iya0NLaG5FTlRnNEJzTVRPbU1xbGoyV01GTFJVbFZHMGZ6ZENCZ1V0YTlvZHJKZnBWZEZvbVRpNmFrMHRGalhUY2RxcXZXQkF6alk2aFZySDlzYnQzWjlnbitBVkRwVGNRSW1lZmJCNGVkaXJqenJzTmlldnZlNFpUNEVVWldWM1R4RXNJVys5TVQvUkpvS2ZaWllTUkdmQzFDd1BHLzlyZE1PTThxUi9MVVl2dzVmL2VtVVNvRDdZU0Z1T29xY2hkVWcyVWVQZDFlQ3RGU0tneExTWjc2NG95NGx2UkNJSDZib3dQeFpXd3hORmN0a3NMZWlsNDdwZmV2Y0JpcGtrQkljNG5nWkcra3hHWjcxYTcyS1E3VmFaNk1aT1prUUpaWE02a2IvQWMwL1hrSng4ZHZ5ZkpjV2JJM3pPTkVhRVBJVzhHYmtZanNaY3d5K2VNb0tyWWpEbXZFRWl4SHprQ1NDUlBSemhPZkpadUxkY2J4MTlFTDIzTUE4cm5qVFpaNzg3RkdNbmtxbnB1ekI1LzkwdzFndFVTUmFXY2IwZXRhODE5OFZFZVpNVVNmSWh5dWM0L255d0ZROXVxbjdqZHFYaCs1d3d2K1JLOVhvdU5QYllkb0VlbE5HbzM0S3l5U3dpZ3NyZkNlMHYvUGxXUHZRdlFnOFIwS2dITzE4bVRWVGhoUXJsYkVRMEtwL0p4UGRqSHlSN0UxUVB3L3V0MHIrSERERzdCd1pGbTlJcUVVWlJwdjJXcHpsTWtPZW1lTGNBdDVDc3J6c2tMR2FWT0F4eXlTelpWL0QyRVk3eWROWk1mOGU4VmhIY0tHSEFXTnN6ZjFFT3E4Zk5zdGlqTVk0Slh5QVR3VGRuY0ZGcWNORGZEbyttV0Z2eEpKcGM0c0VadGpYeUJkb0ZjeGJVbW5pQ29LcTVqeWRVSE5qWUp4TXFOMUt6WVY2Mk11Z2NFTFZoUzNCbmQrVExMT2g3ZHdzL3pTWFd6eEViNE5qNGFGdW41eDRrRFdMSzVUVUYveUNYQi9jWll2STlrUGdWc0cyalNodFhreGZnVCt4empKb2ZYcVBFbklYSVExbG5JZG1WekJPTTkwRVh2SlVXNmEwblovN1hqSkdsOFRvTzNIL2ZkeG54bVROS0JaeG5rcFhMVmdMWENaeXdHVDNZeVM3NXcvUEFINUkvak11UnNwZWo4eFpPYlU5a1JFYlJBK2txam1LUkZhS0dXQW1GUXNwQytRTGJLUGYwUmFLM09YdkJTV3FvNDZwNzB3cy9lWnB1NmpDdFpVZ1F5NnI0dEhNUFVkQWdXR0dVWU5idXYvMWE2SytNVkZzZDNUMTgzK1Q4Y2FwU282bTArU2g1N2ZFZUcvOTVkeWtHSkJRTWowOURTVzJiWTBtVW9uRHk5YTh0ckxubkw1QjVMVzNObDhySlpOeXNPOFpiKzgwelh4cVVHRnB1ZDNRendiN2JmKzhtcTZ4MFRBbkpVOXBEUVI5WVFtWmhsbmEyeHV4SnQwYUNPL2YxU1U4Z2JsT3JiSXlNc3hUbFZVVzY5VkpQellVMkhsUlhjcUUybExMeG5PYlp1ejJ0VDlDaXZmVEFVWWZtekpsdC9sT1Bnc1I2Vk42NC94UWQ0SmxrL1JWN1VLVnYyR3gvQVdzbVRBdUNXS2hkd0MrNEhtS0VLWVpoMlhpczRLc1VSMUJlT2JzMWMxM3dxRlJub2NkbXVoZWFUVjMwZ3ZWWFpjb3V6SEtLNXp3ck41MmpYSkV1WDZkR3gzQkNwVi8rKzRmM2h5YVcvY1FKTEZLcWFzanNNdU8zQjNXbE1xMmd5WWZkSzFlN0wycE8vdFJ5ZTJtd3p3WlBmZFVNcmw1d2RMcWRkMkt2L3dWdG5weVdZaGQ0OUw2cnNPVis4SFhQcldIMkt1cDg5bDJ0ejZiZjgwaVlTZCtWNExST1NPSGVhbXZleFI1MjRxNHI0M3JUbXRGelF2QXJwdldmTFlGWnJiRnNwQnNYTlVxcWVuanhOTnNGWGF0WnZsSWhrN3RlVVBmSytZTDMyRjhNY1RuanYwQlpOcHBiK3ZzaG9DcnRMWGpJV3EzRUpYcFZYSWxHNlpOTDBkaDZxRW0yV013RGpEM0xmT2ZrR2gxL2N6WWMvMHFoaUQyb3pObkg0ODgyTVZWdDNKYlZGa2J3b3dOQ08zS0w1SW9ZVzV3bFZlR0NWaU91djFzdlp4N0ZienhLekE0ekdxQmxSUmFSV0NvYlhhVnE0eVlDV2JaZjhlaUp3dDNPWStNRmlTSmVuZ2NGUDJ0MEpNZnpPaUo3Y0VDdnB4N25lZzFSYzV4KzdteVBKT1h0MkZvaFZSeVh0RCsvckRvVE95R1lJbkplbFpNam9sZWNWSFVoVU5xdmRaV2cySjJ0MGpQbWlMRmVSRC84Zk9UNG8rTkdJTGIrVHVmQ285Y2VCQm0zSkxWbitNTzI2NzVuN3FpRVgvNlcrMTg4Y1lnM1puNU5TVGpnT0tmV0ZTQUFOYTZyYUN4U29WVTg1MW9KTFkxMVdJb1lLMGR1MGVjNUU0dENuQVBvS2g3MXJpVHNqVklwM2dLdkJiRVlRaU5Zcm1IMjJvTFFXQTJBZHdNbklENlBYOWI1OGRSMlFLbzRxYWcxRDFaK0wvRndFS1RSN29zT1pQV0VDUEpJSFFxUFVzTTVpL0NINVl1cFZQZkZBNXBIVUJjc2VzaDhlTzVZaHlXbmFWUlBabi9CbWRYVnVtWldQeE1QNWUyOHptMnVxSGdGb1Q5Q3ltSFlOTnJ6cnJqbFhaTTA2SG56RHhZTmxJNWIvUW9zeExtbXJxREZxbW9nUWRxazBXTGtVY2VvQXZReEhna0l5dldVNjlCUEZyMjRWQjYrbHg3NVJuYTZkR3RybU94RG52Qm9qdmkxLzRkSGpWZWc4b3dvZlBlMWNPbnhVMWlvaDAxNnMvVnVkdjltaFY5ZjM1QXQrU2gyOGgxYnBwOHhocjA5K3ZmNDdFbHgzTXM2aHlwNlF2QjN0MHZuTGJPaHdvNjYwY3A3SzB2dmVwYWJLN1lKZnhFV1dmckMyWXpKZllPanlnUHdmd2QvMWFtVHFhMGhaNXVlZWJoV1lWTXViUlR3SWpqKzBPcTBvaFUzemZSZnVMOGd0NTlYc0hkd0t0eFRRUTRZMnF6Nmdpc3hubTJVZGxtcEVrZ09zWno3aUVrNlFPdDhCdVB3citOUjAxTFRxWG1KbzFDNzZvMU4yNzR0d0p2bCtJMDY5VGlMcGVuSy9taVJ4aHlZOGp2WVY2VzFXdVN3aEg5cTdrdXduSk10bTdJV2NxczdIc255SFNxV1hMU3BZdFpHYVIxVjN0MGdhdW5pbkZQWkd0V3NrRjY1cnR0aTQ4VVY5dVY5S004a2ZEWXMwcGdCMDBTK1RselRYVjZQOG14cTE1YjlFbjhzejNqV1NzemNpZlphL051dWZQTm5OVGIwMzFwcHR0MCtzUlNILzdVRzhwemJzZ3R0M09HM3V0N0I5SnpETXQybVRadXlSTklWOEQ1NFR1VHJwTmNIdGdtTWxZSmVpWTlYUzgzTllKaWNqUmp0SlNmOUJaTHNRdjYyOVFkRHNLUWhUSzVDblhocGs3dk1Oa0h6UGhtMEV4Vy9WQ0dBcEhmUHlCYWd0WlFUUW1QSHg3ZzVJWFhzclFEUHpJVmh2MkxCNkloMTM4aVNEd3cxSk5IckR2elV4dnA3M01zUUJWaFc4RWJyUmVhVlVjTEIxUjNQVVh5YVlHNEhwSlVjTFZ4TWdEeGNQa1ZSUXBMN1ZUQUdhYkR6YktjdmcxMnQ1UDhUU0dRa3JqL2dPcnBuYmlESHdsdUE3M3hiWHRzL0w3dTQ2OGNSV1NXUnRnVHdsUW5BNDdFS2cwT2laRGdGeEFLUVFVY3NiR29tSVRnZVhVQUF5S2UwM2VBN01wNGdueUtRbW0wTFhKdEVrNmRka3NNSkN1eERtbUh6bVZoTytYYU4yQTU0TUloM25pdzVDRjdQd2lYRlpybkE4d09kZUhMdnZoZG9xSURHOVBESTdVbldXSHE1MjZUOHk2aXhKUGhrdVZLWm5vVXJ1T3BVZ09PcDNpSUtCamsreWkxdkhvNWNJdEhYYjFQSUt6R2FabFJTMGc1ZDNNVjJwRDhGUWRHWUxaNzNhYWUvZUVJVWVQTWM0TkZ6OHBJVWZMQ3JyRjRqVldINWdRbmVOM1M4dkFOQm1VWHJFY0tHbjZoSVVOOTV5MXZwc3ZMd2JHcHpWOUwwWktUYW42VERYTTA1MjM2dUxKY0lFTUtWQXhLTlQwSzhXbGp1d05ueTNCTlFSZnpvdkE4NWJlSTl6cjFBR05ZbllDVmtSMWFHbmdXVVJVcmdxUitnUnJRaHhXODFsM0NIZXZqdkdFUHpQTVR4ZHNJZkI5ZGZHUmJaVTBjZy8xbWN1YnRFQ1g0dHZhZWRtTkF2VHhDSnRjMlFhb1VhbEdmRU5DR0s3SVMvTzhDUnBkT1ZjYThFV0NSd3Yyc1NXRThDSlBXNVBDdWdqQ1hQZDNoNlU2MGNQRCtiZGh0WFp1WUI2c3Rjb3ZlRTdTbTVNTTJ5dmZVSFhGU1c3S3pMbWk3L0VlRVdMMHdxY09IOU1PU0tqaENISG13K0pHTGNZRS83U0JaUUNSZ2dveDBaWlRBeHJsek5OWFlYTDVmTklqa2RUNFlNcVZVejZwOFlEdDA0OXY0T1hHZGczcVRydExCVVhPWmY3YWhQbFpBWS9PKzdTcDBidkdTSGR5UThCMUxPc3BscU1iOVNlOFZBRTdnSWRTWnZ4YlJTcmZsK0xrNVFhcWk1UUpjZXFqaXRkRXJjSFhnLzNNcnlsalBTSUFNYWFsb0ZtMWNWd0JKOERObWtEcW9HUk9TSEZldHJnalE1Q2FodUtrZEg1cFJQaWdNcmdUdGxGSTh1ZkpQSlNVbEdnVGpiQlN2cFJjMHp5cGlVbjZVNUtacWNSb3lydHpobUo3L2NhZVprbVZSd0pRZUxPRzhMWTZ2UDVDaHBLaGM4SnMwRWwrbjZGWHFieDlJdGR0THRZUDkya0tmYVRMdENpOFN0TFpkRU5KYTlFeDFuT296MWtRN3F4b2laRktSeUxmNE80Q0hSVDBULzBXOUY4ZXBOS1ZvZXl4VVhoeTNzUU1Nc0pqUUpFeU1Pam1PaE1GZ09tbWxzY1Y0ZUZpMUNsZFU5Mnlqd2xlaXJFS1BXM2JQQXVFaFJaVjdKc0tWM0xyNWNFVEFpRnVYNU53NVVsRjdkMkhaOTZCaDBzZ0ZJTDVLR2FLU29WWVZsdmRLcFpKVlA1K05aN3hERWtRaG1EZ3NES2NpYXpKQ1hKNlpOMkIzRlkyZjZWWnlHbC90NGF1bkdJQWsvQkhhUytpK1NwZFJmbkIvT2t0T3Z5amluV05mTTlLc3I2V3d0Q2ExaENtZVJJNmljcEZNNG84cXVDTHNpa1UwdE1vWkkvOUVxWFJNcEtHYVd6b2ZsNG5RdVZRbTE3ZDVmVTVxWENRZUNEcVZhTDlYSjlxSjA4bjNHM0VGWlMyOFNIRWIzY2RSQmR0TzBZY1R6aWwzUWtuTktFZS9zbVExZlRiMFhicHlOQjV4QWV1SWxmKzVLV2xFWTBEcUpic256SmxReEpQT1Z5SGlLTXg1WHU5RmNFdjFGYmc2RmhtNHQrSnl5NUpDMVczWU84ZFlMc08wUFhQYnhvZEJndHRUYkgzcnQ5Q3AxbEpJazJyM08xWnF1OTRlUmJuSXoyZjUwbFdvbFl6dUtzajRQTW9rNGFiSExPOE5BQzg4NGhpWHg1Rnk1cFdLTzBiV0w3dUVHWGFKQ3R6bmhQNjdTbFE0eGpXSWZncTZFcFoyOFFNdHVaSzdKQzBSR2JsOW5BNFh0Rkx1Zy9OTE1vSDFwR3Q5SW9uQUpxY0VETHlINlREUk9jYnNtR1BhR0l4TW80MUlVQW5RVlBNUEdCeXA0bU9taDlaUU1rQkFja3NVSzU1THNaajdFNXo1WHVab3lXQ0t1Nm5IbURxMjJ4SS85WjhZZHhKeTRrV3BEMTZqTFZycHdHTFdmeU9EMFdkK2NCekZCeFZhR3Y3UzVrOXF3aC81dC9MUUVYc1JxSTNROVJtM1FJb2FaVzlHbHNEYUtPVXl5a3lXdWhOT3ByU0VpMHMxRzRyZ29pWDFWNzQzRUVMdGkrcEp1NW9nNlgwZzZvVHluVXFsaEg5azZlenlSaTA1TkdaSHowbnZwM0hPSnI3ZWJyQVVGckRqYmtGQk9iRXZkUVdra1ViTDBwRXZNVTQ2WDU4dkY5ajlGM2o2a3B5ZXROVUJJdHJFdWJXOVp2TVBNNHFOcUxsc1NCSnFPSDNYYk53di9jWERYTnhOOGlGTHpVaHRlaXNZWStSbEhZT3VQMjkvQ2IrTCt4diszNVJ2N3h1ZG5aNm9oSzRjTVBmQ0c4S0k3ZE5tak5rL0g0ZTg0cE94bi9zWkhLOXBzZnZqOG5jQThxSno3Tzh4cWJ4RVNEaXZHSk9aekY3bzVQSkxRN2czNHFBV295dUEreDNidFU5OExUNlp5R3ljZUlYanJxb2IyQ0FWcWw0Vk9UUVBVUVl2SFYvZzR6QXVDWkd2WVFCdGYwd21kNWxpbHJ2dUVuMUJYTG55MDFCNGg0U01EbFlzbk5wbTlkN205aDU3OHVmcGVmOVo0V3BscVdRdnFvNTJmeVVBN0oyNGVaRDVhdjZTeUdJVjlrcG1ITnF5dmRmemNwRU13OTdCdmtuVjJmcStNRkh1bjlCVDNMc2Y4cGJ6dmlzV2lJUXZZa25nKzhWeGsxVitkbGkxdTU2a1k1MExSamFQZG90dlQ1QndxdHd5RitlbW8vejlKM3lWVVZHZktyeFF0Sk1PQVFXb1FpaS80ZHA5d2d5YlNhNW1rdWNtUkx0RVFaL3B6MHRML05WY2dXQWQ5NW5FUTNUZzZ0TmJ1eW4zSWVwejY1TDNodU1VVUJudGxsV3V1NERidE9GU01TYnBJTFY0Znk2d2xNMFNPdmk2Q3BMaDgxYzFMcmVJdktkNjF1RVdCY0R3MWxVQlVXMUkwWittL1BhUmxYK1BRL294ZzBZZTZLVWlJaVRGNEFETms1OVlkcHQ1L3JreG1xOXRWNUtjcC9lUUxVVlZtQnpRTlZ1eXRRQ1A2RXpkMEc4ZUx4V3lIcG1aV0ozYkF6a1dUdGc0bFpsdzQyU1FlekVtaVVQYUpVdVIvcWtsVkEvODdTNEFyRkNwQUxkWTNRUmRVdzNHM1hiV1VwNmFxOXowelVpemNQYTczNTFwOUpYT1p5ZmRaQkZucXQ5MFZ6UW5kWEIvbXdmOExDOVNUajVrZW5WcE51cU9RUVAzbUlSSmo3ZVYyMUZ4RzhWQXhLckVuM2MrWGZtWjgwMEVQYjkvNWxJbGlqc2NVYkI2ZGEwUlFhTW9vazB6dWcxRzB0S2kvSkJDNHJ3Ny9EM200QVJ6QWt6TWNWckRjVDJTeUZ0VWRXQXNGbHNQREZxVjNOK0VqeVhhb0VlUHdyb2FaQ2lMcUV6YjhNVytQTkU5VG1UQzAxRXpXbGk1MVB6WnZVcWtteXVST1UrVjZpaytMZS85cVQ2bnd6VXpmOXRQNjh0WWVpMFlhREd4NmtBZDdqbjFjS3FPQ3VZYmlFTEg5ellxY2M0TW5SSmprZUdpcWFHd0xJbWh5ZUtzK3hLSk1CbE9KMDVvdzlnR0NLWjFWcG5NS29TQ1RiTVMrWCsyM3kwNDJ6T2I1TXRjWS82b0JlQW8xVnk4OU9UeWhwYXZGUDc4alhDY0ZIMHQ3R3gyNGhNRU9tMmdzRWZHYWJWcFFndkZxYlFLTXNrbkZSUm11UEhjWnUwU3UvV01GcGhadkIyci9FR2JHNzJycEdHaG8zaCtNc3owdUd6SjdoTksydXFRaUUxcW1uMHpnYWNLWVlaQkNxc3hWK3NqYnBvVmRTaWxXL2I5NG4yeE5iNjQ4Vm1OSW9penFFV2hCbnNlbitkMGtiQ1BtUkl0ZldxU0JlT2Q5V25lM2M2YmNkNnV2WE9KNldkaVNzdVhxMG5kaHFyUTRRb1dVakNqWXRaMEVBaG5TT1AxbTQ0eGtmME83alhnaHJ6U0pXeFA0YS90NzJqVTI5VnUycnZ1NG43SGZIa2ttUU9NR1NTK05QZUxHTzVJNzNtQzJCNytsTWlCUVFaUk05LzlsaUxJZm93dXBVRkFiUEJiUitseERNNk04UHRnaDFwYUpxNVJ2czd5RXVMUXYvN2Qxb1Uyd29GU2IzRk1QV1FPS011Q3VKN3BERGpwSWNsdXM1VGVFb01CeTJZZFZCNGZ4bWVzYUNlTU5zRWdUSEtTNVdEU0d5TlVPb0VwY0MyT0ZXdElSZjB3MjdjazM0L0RqeFJUVkljYzkra3FaRTZpTVNpVkRzaUtkUC9YejVYZkVobS9zQmhPNTBwMXJ2SkRsa3l5eHVKOVNQZ3M3WWVVSkJqWGRlQWtFK1A5T1FKbTZTWm5uMXN2Y2R1STc4ZFltYmtFMm10emlQcmNqVmlzWEc3OHNwTHZiWmFTRngvUmtzOXpQNExLbjBDZHovM0pzZXRrVDA2QThmL3lDZ01PNk1iMUhtZTBKSjdiMndaejFxbGVxVHVLQkdva2hQVlVaMGRWdSt0blFZTkVZMWZta1pTejYrRUdaNUV6TDc2NTdtcmVaR1IzalVmYUVrNDU4UERuaUJ6c1NtQktoRFJ6ZlhhbWVyeUp2OS9ENW02SElxWjBSK291Q0U1NER6cDRJSnV1RDFlNERjNWkrUHBTT1JKZkcyM3VWZ3FpeEFNRHZjaE1SMG5aZEg1YnJjbFl3Um9KUld2L3JseEdSSTVmZkQ1TlBHbUlEdDd2REUxNDM0cFlkVlpJRmg4OUJzOTRIR0dKYlR3ck44VDZsaDFIWkZUT0I0bFd6V2o2RVZxeFNNdkMwL2xqV0JRM0Yya2MvbU8yYjZ0V29uVDJKRXFFd0Z0czhyejJoK29XTmRzOWNlUjJjYjd6WnZKVERwcEhhRWhLNWF2V3Fzc2VXYTJEdDVCQmhhYmRXU2t0Uzgwb01Rckw0VHZBTTliNUhNbXlEbk8rT2trYk1YZlVKRzdlWHFUSUc2bHFTT0VicVZSK3FZZFA3dVdiNTdXRUpxenloNDExR0FWc0RpblBzN0t2VWVYSXRsY01kT1VXelhCSDZ6c2N5bVYxTExWQ3RjOEllUG9qelhIRjltNWI1ekd3QlJkemN5VUpraXU5MzhBcG1BYXlSZEpyWDFQbVZndVdVdnQyVGhRNjJjekl0VHlXSk1XMkFuL2hkRGZNSzdTaUZRbEdJZEFibHRIejN5Y29oN2o5VjdHeE5XQnBidGNTZHFtNFh4UndUYXdjM2NiWit4ZlN2OXFRZkVrREtmWlR3Q2txV0dJL3VyMjUwSXRYbE1saDZ2VU5XRVlJZzlBM0d6YmdtYnF2VE44anMyWU1vODdDVTV5Nm5aNGRiSkxEUUpqOWZjN3lNN3RaekpEWkZ0cU9jVTgrbVpqWWxxNFZtaWZJMjNpSGIxWm9UOUUra1QyZG9sblAxQWZpT2t0N1BRQ1N5a0JpWHk1bXY2MzdJZWdXU0tqOUlLcllaZjRMdTkrSTd1Yitta1JkbHZZemVoaC9qYUo5bjdIVUg1YjJJYmdlTmRrWTd3eDF5Vnp4UzdwYnZreTYrbm1WVXRSbGxFRmZ3ZVVRMC9uRzAxN1dvVVlTeHMrajJCNEZWL0Y2MkV0SGxNV1pYWXJqR0hwdGhuTmIxeDY2TEtaMFFlOTJJTldIZGZSL3ZxcDAyd01TOHIxRzRkSnFIb2s4S21RNzk0N0cxM2E0WVhic0dnSGNCdlJ1VnUxZUFpNC9BNStaaXhtZFNYTTczTHVwQi9MSDdPOXl4TFRWWEpUeUJiSTFTNDlUSVJPcmZWQ09iL2N6WjlwTTRKc1p4OGtVejhkUUd2N2dVV0t4WHZUSDdRTS8zSjJPdVhYZ2NpVWhxWStjZ3RhT2xpUVFWT1l0aEJMVjN4cEVTWlQzcm1mRVlOWnhtcEJiYjI0Q1Jhbzg2cHJuK2k5VE5PaDhWeFJKR1hKZlhIQVRKSHMxVDV0eGdjL29wWXJZOFhqbEdRUWJSY294SUJjblZzTWptVTF5bW1JVUw0ZHZpSlhuZE1BSjBZZXQrYzdPNTIvcDk4eXRsbUFzR0JhVEFtTWhpbUFudnAxVFdOR005QnB1aXRHait0ODEwQ1UyVWhvcnJqUEtHdFRoVkM4V2FYdzA0V0ZuVDVmVGpxbVB5clEwdE4zQ2tMc2N0VnkyeHIwWldnaVdWWjFPcmxGamp4SllzT2ladjJjQW9PdkUrN3NZMEkvVHdXY1pxTW95SUtOT2Z0d1A3dysrUmZnNjdsamZvdktZYTUwaWYzZnpFLzhhUFlWZXkvTnEzNStuSDJzTFBoL2ZQNVRzeWxTS0dPWjRrNjlkMlBuSDQzK2txKytzUlhIUXFHQXJXZHdoeCtocHdRQzZKZ1QydXhlaFlVNFpidzdvTmI2L0hMaWtQeUpST0dLMm91eXIrdnpzZUVTcDlHNTBUNEF5RnJTcU9RMHJyb0NZUDRzTURGQnJIbjM0MkV5WlRNbFN5azQ3ckhTcTg5WTkvbkkzekc1bFgxNlo1bHhwaGd1TE9jWlVuZEw4d05jcmt5akg4MmpxZzhCbzhPWWt5bnJ4WnZiRm5vNWxVUzNPUHI4S28zbVg5Tm9SUGRZT0tLakQwN2J2Z0ZncFovUkYrWXprV3ZKL0hzL3RVYmZlR3pHV0x4TkFqZkR6SEhNVlNEd0I1U2FiUUxzSVpIaUJwNDNGakdrYWllbllvRGQxOGh1MkJHd09LN1UzbzcwSy9XWS9rdXVLZG1kcnlrSUJVZEcybXZFOTFMMUp0VGJoMjBtT0xiazF2Q0FhbXU3dXRsWGVHVTJvb1Zpa2JVL2FjdGNnbXNDMUZLazJxbWozR1dlSVdiajR0R0l4RTdCTGNCV1V2dmNuZC9sWXhzTVY0RjkxN2ZXZUZCL1hiSU5OM3FHdkl5VHBDYWx6MWxWZXdkSUdxZUFTL2dCOE1pK3NBK0JxRGlYM1ZHRDJlVXVuVFJiU1krQXVEeTRFM1F4M2hBaHduU1hYK0IwenVqM2VRMW1pUzhWdXgyei9sNi9Ca1d0aktHVTcyYUprT0NXaEdjU2YzK2tGa2tCMTV2R09zUXJTZEZyNnFUajBnQllpT2xuQk80MTE3MGdPV0hTVW9CVlJVMkpqd3BwWWRoSUZEZnU3dElSSGNjU05NNUtaT0ZEUHowVEdNQWp6ekVwZUx3VFdwK2tuMjAxa1U2TmpiaU1RSng4MytMWDFlMXRaMTBrdUNoSlovWEJVUTFkd2FCSGpUREpEcU95bXBFazhYMk0zVnRWdzIxSmtzQ2hBOHcxdFRlZk8zUkoxRk1icVowMWJISGt1ZERCL09oTGZlN1A1R09IYUkyOFpYS1RNdXFvMGhMV1E0SGFiQnNHRzdOYlAxUmlYdEVUejA3NGVyNncvT2VySldFcWpta3EyeTUxcTFCVkkrSlV1ZG5WYTNvZ0JwemRoRkU3ZkM3a3lickF0Mlo2UnFEakFUQVVFWWVZSzQ1V011cEJLUVJ0UWxVK3VOc2puemo2Wm1HcmV6QStBU3JXeFE2TE1rSFJYcVh3TnE3ZnR2MjhkVXgvWlNKY2lEWFAyU1dKc1dhTjBGalBYOVlrbzZMb2JaN2FZVy9JZFVrdEk5YXBUTHlIUzhEeVdQeXVvWnl4TjFUSy92dGZ4azNId1doNkpjelpDOEZ0bjBiSUpheTJnK241d2Q3bG05ckVzS08rc3ZxVm1pK2Mxajg4aFNDeGJ6cmc0K0hFUDBOdDEvQjZZVzFYVm0wOVQxQ3BBS2pjOW4xOGhqcXNhRkdkZnl2YTFaRzBYdTNpcDZONkpHcHlUU3FZNWg0Qk9scExQYU9ueXc0NVBkWFROK0R0QUtnN0RMckxGVG5XdXNvU0JIazNzMGQ3WW91SkhxODUvUjA5VGZjMzdFTlhaRjQ4ZUFZTG5xOUdMaW9OY3dEWnJDNkZXNmdvZEI4Sm5xWVVQdm4wcFdMZlF6MGxNMFl5OE15YmduODREczNROWJEUDEwYkx5T1YrcXp4YTRSZDlEaHU3Y2p1OG1NYU9OWEszVXFtQlE5cUlnN2V0SXdFcU0va0VDay9EemphNEJzMXhSK1EvdENiYzhJS3JTR3NUZEpKMHZnZTdJRzIwVzY4N3VWbUs2aWNXUTZjRDNsd0Z6Z05NR3RGdk81cXlKZUtmbEdMQUFjUVpPcmt4Vnd5M2NXdnFsR3B2am1mOVFlNkFwMjBNUGJWOTJEUFYwT2hGTTRrejhZcjBmZkMyekxXU1Exa3FZNlFkUXJ0dFIza2gxWUx0UWQxa0NFdjVoVm9QSVJXbDVFUmNVVHR0QklyV3A2WHM1RWhoNU9VVXdJNWFFQnZ1aURtVW9FTm1uVncxRm9oQ3JiUnAxQTFFK1hTbFdWT1RpN0FEVys1T2hiOXoxdks0cXg1UjVsUGRHQ1BCSlowMG1DK1NzcDhWVWJncEdBdlhXTXVXUVFSYkNxSTZScjJqdHhaeHRmUDdXLzhvbnoreXowR3M3NkxhVDVIWDllY3lpWkNCL1pSL2dGdE14UHNEd29ob2VDUnRpdUx4RTFHTTF2VUVVZ0J2ODYrZWVoTDU4L1A1NlFGR1EvTXFPZS92Qzc2TDYzanptZWF4NGV4ZC9PS1RVdmtYZytmT0pVSHljaDl4dC85Z29KTXJhcFNndlhyajgrOHZrL044MGYyMlNld2o2Y3lHcXQxQjZtenRvZWtsVkhIcmFvdWh2SEphRy9PdUJ6NkRIS01wRm1RVUxVMWJSV2x5WUUwUlBYWVlrVXljSWVtTjdUTHRnTkNKWDZCcWR5eERLa2VnTzduSks1eFE3T1ZZRFpUTWY5YlZIaWR0azZEUVg5RXQrVjlNN2VzZ2JzWUJkRWVVcHNCMFh2dzJrZDkrckk3VittNDd1K08vdHE3bXc3MjYySFUxV2xTOXVGenNWNkp4SUhObVVDeTBRUzllMDc3SkdSRmJHNjV6My9kT0tCL1prK3lEZEtwVW1kWGpuL2FTM041bnY0Zks3Yk1ISG1QbEhkNEUyK2lUYlY1cnB6U2NSbnhrNktBUnVEVEo4UTFMcEsybVA4Z2oxRWJ1SjlSSXlZK0VXSzRoQ2lJREJBUzFUbTJJRVhBRmZnS1BnZEw5TzZtQWEwNndqQ2NVQUw2RXN4UFFXTzlWTmVnQlBtLzBHZ2taYkR4Q3lueHVqWC85MnZtR2NqWlJNQVk0NXB1YWsyc0ZMQ0xTd1hwRXN5eTVmbkYwakdKQmhtK2ZOU0hLS1VVZnkrMjc2QTcvZmVMT0Z4eFV1SFJOSkkyT3Nlbnh5dmY4REFHT2JUNjBwZlRUbGhFZzl1L0tLa2hKcW01VTEvK0JFY1NrcEZEQTVYZUNxeHdYbVBhYzFqY3VaM0pXUStwME5kV3piLzV2MVp2RjhHdE1URkZFZFFqcExPMGJ3UGIwQkhOV25pcDNsaURYSTJmWGYwNWpqdmZKME5wakxDVWdmVGg5Q01GWVZGS0VkNFovT0cvMkMrTjQzNW1uSys5dDFndkNpVmNhYUg3cks0K1BqQ3ZwVk5peit0MlF5cUgxTzh4M0pLWlZsNlErTHAvWEs4d01qVk1zbE9xOUZkU3c1RnRVcy9DcHRYSDlQVyt3YldIZ3JWMTdSNWpUVk90R3RLRnUzbmI4MFQrRTB0djlRa3pXM0oyZGJhdy84ZGRBS1owcHhJYUVxTGpsUHJqaTNWZ0ozR3ZkRnZscUQ4MDc1d294aDRmVnQwSlpFMEtWRnNBdnFoZTBkcU45YjM1anRTcG5ZTVhrVSt2WnErSUFIYWQzSUhjMnMvTFlybkQxYW5mRzQ2SUZpTUlyOW9OYlpEV3Z3dGhxWU5xT2lnYUtkL1hsTFU0WEhmay9QWElqUHNMeS85L2tBdFErL3dLSCtoSS9JUk9XajVGUHZUWkFUOWY3ajRaWFF5RzRNMFR1ak1BRlhZa0t2RUh2MXhoeVNla2dYR0dxTnhXZVdLbGY4ZERBbEx1QjFjYi9xT0Qrcms3Y213dCsxeUtwazljdWRxQmFuVGk2elRiWFJ0VjhxeWxOdGp5T1ZLeTFIVHowR1c5cmp0NnNTakFaY1Q1UitLZHR5WWIwenlxRzlwU0x1Q3c1V0J3QW43ZmpCaktMTG94TFhNSSs1Mkw5Y0x3SVIyQjZPbGxKWkxISjh2RHhtV2R0RitRSm5tdDFyc0hQSVdZMjBsZnRrOGZZZVBrQUlnNkhnbjUzMlFvSXBlZ014aVdnQU9mZTUvVTQ0QVBSOEFjME5lWnJWaDNnRWhzMTJXK3RWU2lXaVVRZWtmL1lCRUNVeTVmZFliQTA4ZGQ3VnpQQVA5YWlWY0lCOWs2dFk3V2RKMXdOVitiSGV5ZE50bUM2RzVJQ3RGQzFad21KVS9qOGhmMEk4VFJWS1NpejVvWUlhOTNFcFVJNzhYOEdZSUFaYWJ4NDcvbjhMREFBSjBuTnRQMXJwUk9wcnFLTUJSZWNTaGNhNnFYdVRTSTNqWkJMT0IzVnAzODFCNXJDR2hqU3ZoL05TVmtZcDJxSWRQL0JnPSI7CgoKLyoqKi8gfSksCi8qIDI4OSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovKiBDb3B5cmlnaHQgMjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgoKICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogICBMb29rdXAgdGFibGUgdG8gbWFwIHRoZSBwcmV2aW91cyB0d28gYnl0ZXMgdG8gYSBjb250ZXh0IGlkLgoKICAgVGhlcmUgYXJlIGZvdXIgZGlmZmVyZW50IGNvbnRleHQgbW9kZWxpbmcgbW9kZXMgZGVmaW5lZCBoZXJlOgogICAgIENPTlRFWFRfTFNCNjogY29udGV4dCBpZCBpcyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgNiBiaXRzIG9mIHRoZSBsYXN0IGJ5dGUsCiAgICAgQ09OVEVYVF9NU0I2OiBjb250ZXh0IGlkIGlzIHRoZSBtb3N0IHNpZ25pZmljYW50IDYgYml0cyBvZiB0aGUgbGFzdCBieXRlLAogICAgIENPTlRFWFRfVVRGODogc2Vjb25kLW9yZGVyIGNvbnRleHQgbW9kZWwgdHVuZWQgZm9yIFVURjgtZW5jb2RlZCB0ZXh0LAogICAgIENPTlRFWFRfU0lHTkVEOiBzZWNvbmQtb3JkZXIgY29udGV4dCBtb2RlbCB0dW5lZCBmb3Igc2lnbmVkIGludGVnZXJzLgoKICAgVGhlIGNvbnRleHQgaWQgZm9yIHRoZSBVVEY4IGNvbnRleHQgbW9kZWwgaXMgY2FsY3VsYXRlZCBhcyBmb2xsb3dzLiBJZiBwMQogICBhbmQgcDIgYXJlIHRoZSBwcmV2aW91cyB0d28gYnl0ZXMsIHdlIGNhbGN1YWx0ZSB0aGUgY29udGV4dCBhcwoKICAgICBjb250ZXh0ID0ga0NvbnRleHRMb29rdXBbcDFdIHwga0NvbnRleHRMb29rdXBbcDIgKyAyNTZdLgoKICAgSWYgdGhlIHByZXZpb3VzIHR3byBieXRlcyBhcmUgQVNDSUkgY2hhcmFjdGVycyAoaS5lLiA8IDEyOCksIHRoaXMgd2lsbCBiZQogICBlcXVpdmFsZW50IHRvCgogICAgIGNvbnRleHQgPSA0ICogY29udGV4dDEocDEpICsgY29udGV4dDIocDIpLAoKICAgd2hlcmUgY29udGV4dDEgaXMgYmFzZWQgb24gdGhlIHByZXZpb3VzIGJ5dGUgaW4gdGhlIGZvbGxvd2luZyB3YXk6CgogICAgIDAgIDogbm9uLUFTQ0lJIGNvbnRyb2wKICAgICAxICA6IFx0LCBcbiwgXHIKICAgICAyICA6IHNwYWNlCiAgICAgMyAgOiBvdGhlciBwdW5jdHVhdGlvbgogICAgIDQgIDogIiAnCiAgICAgNSAgOiAlCiAgICAgNiAgOiAoIDwgWyB7CiAgICAgNyAgOiApID4gXSB9CiAgICAgOCAgOiAsIDsgOgogICAgIDkgIDogLgogICAgIDEwIDogPQogICAgIDExIDogbnVtYmVyCiAgICAgMTIgOiB1cHBlci1jYXNlIHZvd2VsCiAgICAgMTMgOiB1cHBlci1jYXNlIGNvbnNvbmFudAogICAgIDE0IDogbG93ZXItY2FzZSB2b3dlbAogICAgIDE1IDogbG93ZXItY2FzZSBjb25zb25hbnQKCiAgIGFuZCBjb250ZXh0MiBpcyBiYXNlZCBvbiB0aGUgc2Vjb25kIGxhc3QgYnl0ZToKCiAgICAgMCA6IGNvbnRyb2wsIHNwYWNlCiAgICAgMSA6IHB1bmN0dWF0aW9uCiAgICAgMiA6IHVwcGVyLWNhc2UgbGV0dGVyLCBudW1iZXIKICAgICAzIDogbG93ZXItY2FzZSBsZXR0ZXIKCiAgIElmIHRoZSBsYXN0IGJ5dGUgaXMgQVNDSUksIGFuZCB0aGUgc2Vjb25kIGxhc3QgYnl0ZSBpcyBub3QgKGluIGEgdmFsaWQgVVRGOAogICBzdHJlYW0gaXQgd2lsbCBiZSBhIGNvbnRpbnVhdGlvbiBieXRlLCB2YWx1ZSBiZXR3ZWVuIDEyOCBhbmQgMTkxKSwgdGhlCiAgIGNvbnRleHQgaXMgdGhlIHNhbWUgYXMgaWYgdGhlIHNlY29uZCBsYXN0IGJ5dGUgd2FzIGFuIEFTQ0lJIGNvbnRyb2wgb3Igc3BhY2UuCgogICBJZiB0aGUgbGFzdCBieXRlIGlzIGEgVVRGOCBsZWFkIGJ5dGUgKHZhbHVlID49IDE5MiksIHRoZW4gdGhlIG5leHQgYnl0ZSB3aWxsCiAgIGJlIGEgY29udGludWF0aW9uIGJ5dGUgYW5kIHRoZSBjb250ZXh0IGlkIGlzIDIgb3IgMyBkZXBlbmRpbmcgb24gdGhlIExTQiBvZgogICB0aGUgbGFzdCBieXRlIGFuZCB0byBhIGxlc3NlciBleHRlbnQgb24gdGhlIHNlY29uZCBsYXN0IGJ5dGUgaWYgaXQgaXMgQVNDSUkuCgogICBJZiB0aGUgbGFzdCBieXRlIGlzIGEgVVRGOCBjb250aW51YXRpb24gYnl0ZSwgdGhlIHNlY29uZCBsYXN0IGJ5dGUgY2FuIGJlOgogICAgIC0gY29udGludWF0aW9uIGJ5dGU6IHRoZSBuZXh0IGJ5dGUgaXMgcHJvYmFibHkgQVNDSUkgb3IgbGVhZCBieXRlIChhc3N1bWluZwogICAgICAgNC1ieXRlIFVURjggY2hhcmFjdGVycyBhcmUgcmFyZSkgYW5kIHRoZSBjb250ZXh0IGlkIGlzIDAgb3IgMS4KICAgICAtIGxlYWQgYnl0ZSAoMTkyIC0gMjA3KTogbmV4dCBieXRlIGlzIEFTQ0lJIG9yIGxlYWQgYnl0ZSwgY29udGV4dCBpcyAwIG9yIDEKICAgICAtIGxlYWQgYnl0ZSAoMjA4IC0gMjU1KTogbmV4dCBieXRlIGlzIGNvbnRpbnVhdGlvbiBieXRlLCBjb250ZXh0IGlzIDIgb3IgMwoKICAgVGhlIHBvc3NpYmxlIHZhbHVlIGNvbWJpbmF0aW9ucyBvZiB0aGUgcHJldmlvdXMgdHdvIGJ5dGVzLCB0aGUgcmFuZ2Ugb2YKICAgY29udGV4dCBpZHMgYW5kIHRoZSB0eXBlIG9mIHRoZSBuZXh0IGJ5dGUgaXMgc3VtbWFyaXplZCBpbiB0aGUgdGFibGUgYmVsb3c6CgogICB8LS0tLS0tLS1cLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18CiAgIHwgICAgICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgIExhc3QgYnl0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgfCBTZWNvbmQgICBcLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAogICB8IGxhc3QgYnl0ZSBcICAgIEFTQ0lJICAgICAgICAgICAgfCAgIGNvbnQuIGJ5dGUgICAgICAgIHwgICBsZWFkIGJ5dGUgICAgICB8CiAgIHwgICAgICAgICAgICBcICAgKDAtMTI3KSAgICAgICAgICB8ICAgKDEyOC0xOTEpICAgICAgICAgfCAgICgxOTItKSAgICAgICAgIHwKICAgfD09PT09PT09PT09PT18PT09PT09PT09PT09PT09PT09PXw9PT09PT09PT09PT09PT09PT09PT18PT09PT09PT09PT09PT09PT09fAogICB8ICBBU0NJSSAgICAgIHwgbmV4dDogQVNDSUkvbGVhZCAgfCAgbm90IHZhbGlkICAgICAgICAgIHwgIG5leHQ6IGNvbnQuICAgICB8CiAgIHwgICgwLTEyNykgICAgfCBjb250ZXh0OiA0IC0gNjMgICB8ICAgICAgICAgICAgICAgICAgICAgfCAgY29udGV4dDogMiAtIDMgIHwKICAgfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAogICB8ICBjb250LiBieXRlIHwgbmV4dDogQVNDSUkvbGVhZCAgfCAgbmV4dDogQVNDSUkvbGVhZCAgIHwgIG5leHQ6IGNvbnQuICAgICB8CiAgIHwgICgxMjgtMTkxKSAgfCBjb250ZXh0OiA0IC0gNjMgICB8ICBjb250ZXh0OiAwIC0gMSAgICAgfCAgY29udGV4dDogMiAtIDMgIHwKICAgfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAogICB8ICBsZWFkIGJ5dGUgIHwgbm90IHZhbGlkICAgICAgICAgfCAgbmV4dDogQVNDSUkvbGVhZCAgIHwgIG5vdCB2YWxpZCAgICAgICB8CiAgIHwgICgxOTItMjA3KSAgfCAgICAgICAgICAgICAgICAgICB8ICBjb250ZXh0OiAwIC0gMSAgICAgfCAgICAgICAgICAgICAgICAgIHwKICAgfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAogICB8ICBsZWFkIGJ5dGUgIHwgbm90IHZhbGlkICAgICAgICAgfCAgbmV4dDogY29udC4gICAgICAgIHwgIG5vdCB2YWxpZCAgICAgICB8CiAgIHwgICgyMDgtKSAgICAgfCAgICAgICAgICAgICAgICAgICB8ICBjb250ZXh0OiAyIC0gMyAgICAgfCAgICAgICAgICAgICAgICAgIHwKICAgfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tfAoKICAgVGhlIGNvbnRleHQgaWQgZm9yIHRoZSBzaWduZWQgY29udGV4dCBtb2RlIGlzIGNhbGN1bGF0ZWQgYXM6CgogICAgIGNvbnRleHQgPSAoa0NvbnRleHRMb29rdXBbNTEyICsgcDFdIDw8IDMpIHwga0NvbnRleHRMb29rdXBbNTEyICsgcDJdLgoKICAgRm9yIGFueSBjb250ZXh0IG1vZGVsaW5nIG1vZGVzLCB0aGUgY29udGV4dCBpZHMgY2FuIGJlIGNhbGN1bGF0ZWQgYnkgfC1pbmcKICAgdG9nZXRoZXIgdHdvIGxvb2t1cHMgZnJvbSBvbmUgdGFibGUgdXNpbmcgY29udGV4dCBtb2RlbCBkZXBlbmRlbnQgb2Zmc2V0czoKCiAgICAgY29udGV4dCA9IGtDb250ZXh0TG9va3VwW29mZnNldDEgKyBwMV0gfCBrQ29udGV4dExvb2t1cFtvZmZzZXQyICsgcDJdLgoKICAgd2hlcmUgb2Zmc2V0MSBhbmQgb2Zmc2V0MiBhcmUgZGVwZW5kZW50IG9uIHRoZSBjb250ZXh0IG1vZGUuCiovCgp2YXIgQ09OVEVYVF9MU0I2ICAgICAgICAgPSAwOwp2YXIgQ09OVEVYVF9NU0I2ICAgICAgICAgPSAxOwp2YXIgQ09OVEVYVF9VVEY4ICAgICAgICAgPSAyOwp2YXIgQ09OVEVYVF9TSUdORUQgICAgICAgPSAzOwoKLyogQ29tbW9uIGNvbnRleHQgbG9va3VwIHRhYmxlIGZvciBhbGwgY29udGV4dCBtb2Rlcy4gKi8KZXhwb3J0cy5sb29rdXAgPSBuZXcgVWludDhBcnJheShbCiAgLyogQ09OVEVYVF9VVEY4LCBsYXN0IGJ5dGUuICovCiAgLyogQVNDSUkgcmFuZ2UuICovCiAgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDQsICA0LCAgMCwgIDAsICA0LCAgMCwgIDAsCiAgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsCiAgIDgsIDEyLCAxNiwgMTIsIDEyLCAyMCwgMTIsIDE2LCAyNCwgMjgsIDEyLCAxMiwgMzIsIDEyLCAzNiwgMTIsCiAgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDMyLCAzMiwgMjQsIDQwLCAyOCwgMTIsCiAgMTIsIDQ4LCA1MiwgNTIsIDUyLCA0OCwgNTIsIDUyLCA1MiwgNDgsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNDgsCiAgNTIsIDUyLCA1MiwgNTIsIDUyLCA0OCwgNTIsIDUyLCA1MiwgNTIsIDUyLCAyNCwgMTIsIDI4LCAxMiwgMTIsCiAgMTIsIDU2LCA2MCwgNjAsIDYwLCA1NiwgNjAsIDYwLCA2MCwgNTYsIDYwLCA2MCwgNjAsIDYwLCA2MCwgNTYsCiAgNjAsIDYwLCA2MCwgNjAsIDYwLCA1NiwgNjAsIDYwLCA2MCwgNjAsIDYwLCAyNCwgMTIsIDI4LCAxMiwgIDAsCiAgLyogVVRGOCBjb250aW51YXRpb24gYnl0ZSByYW5nZS4gKi8KICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLAogIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsCiAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwKICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxLAogIC8qIFVURjggbGVhZCBieXRlIHJhbmdlLiAqLwogIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsCiAgMiwgMywgMiwgMywgMiwgMywgMiwgMywgMiwgMywgMiwgMywgMiwgMywgMiwgMywKICAyLCAzLCAyLCAzLCAyLCAzLCAyLCAzLCAyLCAzLCAyLCAzLCAyLCAzLCAyLCAzLAogIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsIDIsIDMsCiAgLyogQ09OVEVYVF9VVEY4IHNlY29uZCBsYXN0IGJ5dGUuICovCiAgLyogQVNDSUkgcmFuZ2UuICovCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIDAsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCiAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMSwgMSwgMSwgMSwgMSwgMSwKICAxLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLAogIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDEsIDEsIDEsIDEsIDEsCiAgMSwgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywKICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAxLCAxLCAxLCAxLCAwLAogIC8qIFVURjggY29udGludWF0aW9uIGJ5dGUgcmFuZ2UuICovCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIC8qIFVURjggbGVhZCBieXRlIHJhbmdlLiAqLwogIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwKICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLAogIC8qIENPTlRFWFRfU0lHTkVELCBzZWNvbmQgbGFzdCBieXRlLiAqLwogIDAsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCiAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwKICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLAogIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsCiAgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywKICAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLCAzLAogIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsCiAgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywKICA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LAogIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsIDQsCiAgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwgNCwKICA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LCA0LAogIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsCiAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwKICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LAogIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDcsCiAgLyogQ09OVEVYVF9TSUdORUQsIGxhc3QgYnl0ZSwgc2FtZSBhcyB0aGUgYWJvdmUgdmFsdWVzIHNoaWZ0ZWQgYnkgMyBiaXRzLiAqLwogICAwLCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LCA4LAogIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LAogIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LAogIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LAogIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LAogIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LAogIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LAogIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LAogIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAogIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAogIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAogIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLCAzMiwgMzIsIDMyLAogIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLAogIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLAogIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDQwLAogIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDU2LAogIC8qIENPTlRFWFRfTFNCNiwgbGFzdCBieXRlLiAqLwogICAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAogIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAogIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAogIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLAogICAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAogIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAogIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAogIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLAogICAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAogIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAogIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAogIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLAogICAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywgIDgsICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LAogIDE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLAogIDMyLCAzMywgMzQsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LAogIDQ4LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDU3LCA1OCwgNTksIDYwLCA2MSwgNjIsIDYzLAogIC8qIENPTlRFWFRfTVNCNiwgbGFzdCBieXRlLiAqLwogICAwLCAgMCwgIDAsICAwLCAgMSwgIDEsICAxLCAgMSwgIDIsICAyLCAgMiwgIDIsICAzLCAgMywgIDMsICAzLAogICA0LCAgNCwgIDQsICA0LCAgNSwgIDUsICA1LCAgNSwgIDYsICA2LCAgNiwgIDYsICA3LCAgNywgIDcsICA3LAogICA4LCAgOCwgIDgsICA4LCAgOSwgIDksICA5LCAgOSwgMTAsIDEwLCAxMCwgMTAsIDExLCAxMSwgMTEsIDExLAogIDEyLCAxMiwgMTIsIDEyLCAxMywgMTMsIDEzLCAxMywgMTQsIDE0LCAxNCwgMTQsIDE1LCAxNSwgMTUsIDE1LAogIDE2LCAxNiwgMTYsIDE2LCAxNywgMTcsIDE3LCAxNywgMTgsIDE4LCAxOCwgMTgsIDE5LCAxOSwgMTksIDE5LAogIDIwLCAyMCwgMjAsIDIwLCAyMSwgMjEsIDIxLCAyMSwgMjIsIDIyLCAyMiwgMjIsIDIzLCAyMywgMjMsIDIzLAogIDI0LCAyNCwgMjQsIDI0LCAyNSwgMjUsIDI1LCAyNSwgMjYsIDI2LCAyNiwgMjYsIDI3LCAyNywgMjcsIDI3LAogIDI4LCAyOCwgMjgsIDI4LCAyOSwgMjksIDI5LCAyOSwgMzAsIDMwLCAzMCwgMzAsIDMxLCAzMSwgMzEsIDMxLAogIDMyLCAzMiwgMzIsIDMyLCAzMywgMzMsIDMzLCAzMywgMzQsIDM0LCAzNCwgMzQsIDM1LCAzNSwgMzUsIDM1LAogIDM2LCAzNiwgMzYsIDM2LCAzNywgMzcsIDM3LCAzNywgMzgsIDM4LCAzOCwgMzgsIDM5LCAzOSwgMzksIDM5LAogIDQwLCA0MCwgNDAsIDQwLCA0MSwgNDEsIDQxLCA0MSwgNDIsIDQyLCA0MiwgNDIsIDQzLCA0MywgNDMsIDQzLAogIDQ0LCA0NCwgNDQsIDQ0LCA0NSwgNDUsIDQ1LCA0NSwgNDYsIDQ2LCA0NiwgNDYsIDQ3LCA0NywgNDcsIDQ3LAogIDQ4LCA0OCwgNDgsIDQ4LCA0OSwgNDksIDQ5LCA0OSwgNTAsIDUwLCA1MCwgNTAsIDUxLCA1MSwgNTEsIDUxLAogIDUyLCA1MiwgNTIsIDUyLCA1MywgNTMsIDUzLCA1MywgNTQsIDU0LCA1NCwgNTQsIDU1LCA1NSwgNTUsIDU1LAogIDU2LCA1NiwgNTYsIDU2LCA1NywgNTcsIDU3LCA1NywgNTgsIDU4LCA1OCwgNTgsIDU5LCA1OSwgNTksIDU5LAogIDYwLCA2MCwgNjAsIDYwLCA2MSwgNjEsIDYxLCA2MSwgNjIsIDYyLCA2MiwgNjIsIDYzLCA2MywgNjMsIDYzLAogIC8qIENPTlRFWFRfe00sTH1TQjYsIHNlY29uZCBsYXN0IGJ5dGUsICovCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAogIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKXSk7CgpleHBvcnRzLmxvb2t1cE9mZnNldHMgPSBuZXcgVWludDE2QXJyYXkoWwogIC8qIENPTlRFWFRfTFNCNiAqLwogIDEwMjQsIDE1MzYsCiAgLyogQ09OVEVYVF9NU0I2ICovCiAgMTI4MCwgMTUzNiwKICAvKiBDT05URVhUX1VURjggKi8KICAwLCAyNTYsCiAgLyogQ09OVEVYVF9TSUdORUQgKi8KICA3NjgsIDUxMiwKXSk7CgoKLyoqKi8gfSksCi8qIDI5MCAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovKiBDb3B5cmlnaHQgMjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgoKICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgogICBMb29rdXAgdGFibGVzIHRvIG1hcCBwcmVmaXggY29kZXMgdG8gdmFsdWUgcmFuZ2VzLiBUaGlzIGlzIHVzZWQgZHVyaW5nCiAgIGRlY29kaW5nIG9mIHRoZSBibG9jayBsZW5ndGhzLCBsaXRlcmFsIGluc2VydGlvbiBsZW5ndGhzIGFuZCBjb3B5IGxlbmd0aHMuCiovCgovKiBSZXByZXNlbnRzIHRoZSByYW5nZSBvZiB2YWx1ZXMgYmVsb25naW5nIHRvIGEgcHJlZml4IGNvZGU6ICovCi8qIFtvZmZzZXQsIG9mZnNldCArIDJebmJpdHMpICovCmZ1bmN0aW9uIFByZWZpeENvZGVSYW5nZShvZmZzZXQsIG5iaXRzKSB7CiAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7CiAgdGhpcy5uYml0cyA9IG5iaXRzOwp9CgpleHBvcnRzLmtCbG9ja0xlbmd0aFByZWZpeENvZGUgPSBbCiAgbmV3IFByZWZpeENvZGVSYW5nZSgxLCAyKSwgbmV3IFByZWZpeENvZGVSYW5nZSg1LCAyKSwgbmV3IFByZWZpeENvZGVSYW5nZSg5LCAyKSwgbmV3IFByZWZpeENvZGVSYW5nZSgxMywgMiksCiAgbmV3IFByZWZpeENvZGVSYW5nZSgxNywgMyksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMjUsIDMpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDMzLCAzKSwgbmV3IFByZWZpeENvZGVSYW5nZSg0MSwgMyksCiAgbmV3IFByZWZpeENvZGVSYW5nZSg0OSwgNCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNjUsIDQpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDgxLCA0KSwgbmV3IFByZWZpeENvZGVSYW5nZSg5NywgNCksCiAgbmV3IFByZWZpeENvZGVSYW5nZSgxMTMsIDUpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDE0NSwgNSksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMTc3LCA1KSwgbmV3IFByZWZpeENvZGVSYW5nZSgyMDksIDUpLAogIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMjQxLCA2KSwgbmV3IFByZWZpeENvZGVSYW5nZSgzMDUsIDYpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDM2OSwgNyksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNDk3LCA4KSwKICBuZXcgUHJlZml4Q29kZVJhbmdlKDc1MywgOSksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMTI2NSwgMTApLCBuZXcgUHJlZml4Q29kZVJhbmdlKDIyODksIDExKSwgbmV3IFByZWZpeENvZGVSYW5nZSg0MzM3LCAxMiksCiAgbmV3IFByZWZpeENvZGVSYW5nZSg4NDMzLCAxMyksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMTY2MjUsIDI0KQpdOwoKZXhwb3J0cy5rSW5zZXJ0TGVuZ3RoUHJlZml4Q29kZSA9IFsKICBuZXcgUHJlZml4Q29kZVJhbmdlKDAsIDApLCBuZXcgUHJlZml4Q29kZVJhbmdlKDEsIDApLCBuZXcgUHJlZml4Q29kZVJhbmdlKDIsIDApLCBuZXcgUHJlZml4Q29kZVJhbmdlKDMsIDApLAogIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNCwgMCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNSwgMCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNiwgMSksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoOCwgMSksCiAgbmV3IFByZWZpeENvZGVSYW5nZSgxMCwgMiksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMTQsIDIpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDE4LCAzKSwgbmV3IFByZWZpeENvZGVSYW5nZSgyNiwgMyksCiAgbmV3IFByZWZpeENvZGVSYW5nZSgzNCwgNCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNTAsIDQpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDY2LCA1KSwgbmV3IFByZWZpeENvZGVSYW5nZSg5OCwgNSksCiAgbmV3IFByZWZpeENvZGVSYW5nZSgxMzAsIDYpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDE5NCwgNyksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMzIyLCA4KSwgbmV3IFByZWZpeENvZGVSYW5nZSg1NzgsIDkpLAogIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMTA5MCwgMTApLCBuZXcgUHJlZml4Q29kZVJhbmdlKDIxMTQsIDEyKSwgbmV3IFByZWZpeENvZGVSYW5nZSg2MjEwLCAxNCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMjI1OTQsIDI0KSwKXTsKCmV4cG9ydHMua0NvcHlMZW5ndGhQcmVmaXhDb2RlID0gWwogIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMiwgMCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMywgMCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNCwgMCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNSwgMCksCiAgbmV3IFByZWZpeENvZGVSYW5nZSg2LCAwKSwgbmV3IFByZWZpeENvZGVSYW5nZSg3LCAwKSwgbmV3IFByZWZpeENvZGVSYW5nZSg4LCAwKSwgbmV3IFByZWZpeENvZGVSYW5nZSg5LCAwKSwKICBuZXcgUHJlZml4Q29kZVJhbmdlKDEwLCAxKSwgbmV3IFByZWZpeENvZGVSYW5nZSgxMiwgMSksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMTQsIDIpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDE4LCAyKSwKICBuZXcgUHJlZml4Q29kZVJhbmdlKDIyLCAzKSwgbmV3IFByZWZpeENvZGVSYW5nZSgzMCwgMyksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMzgsIDQpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDU0LCA0KSwKICBuZXcgUHJlZml4Q29kZVJhbmdlKDcwLCA1KSwgbmV3IFByZWZpeENvZGVSYW5nZSgxMDIsIDUpLCBuZXcgUHJlZml4Q29kZVJhbmdlKDEzNCwgNiksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMTk4LCA3KSwKICBuZXcgUHJlZml4Q29kZVJhbmdlKDMyNiwgOCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoNTgyLCA5KSwgbmV3IFByZWZpeENvZGVSYW5nZSgxMDk0LCAxMCksIG5ldyBQcmVmaXhDb2RlUmFuZ2UoMjExOCwgMjQpLApdOwoKZXhwb3J0cy5rSW5zZXJ0UmFuZ2VMdXQgPSBbCiAgMCwgMCwgOCwgOCwgMCwgMTYsIDgsIDE2LCAxNiwKXTsKCmV4cG9ydHMua0NvcHlSYW5nZUx1dCA9IFsKICAwLCA4LCAwLCA4LCAxNiwgMCwgMTYsIDgsIDE2LApdOwoKCi8qKiovIH0pLAovKiAyOTEgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KCiAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKICAgVHJhbnNmb3JtYXRpb25zIG9uIGRpY3Rpb25hcnkgd29yZHMuCiovCgp2YXIgQnJvdGxpRGljdGlvbmFyeSA9IF9fd2VicGFja19yZXF1aXJlX18oMTE5KTsKCnZhciBrSWRlbnRpdHkgICAgICAgPSAwOwp2YXIga09taXRMYXN0MSAgICAgID0gMTsKdmFyIGtPbWl0TGFzdDIgICAgICA9IDI7CnZhciBrT21pdExhc3QzICAgICAgPSAzOwp2YXIga09taXRMYXN0NCAgICAgID0gNDsKdmFyIGtPbWl0TGFzdDUgICAgICA9IDU7CnZhciBrT21pdExhc3Q2ICAgICAgPSA2Owp2YXIga09taXRMYXN0NyAgICAgID0gNzsKdmFyIGtPbWl0TGFzdDggICAgICA9IDg7CnZhciBrT21pdExhc3Q5ICAgICAgPSA5Owp2YXIga1VwcGVyY2FzZUZpcnN0ID0gMTA7CnZhciBrVXBwZXJjYXNlQWxsICAgPSAxMTsKdmFyIGtPbWl0Rmlyc3QxICAgICA9IDEyOwp2YXIga09taXRGaXJzdDIgICAgID0gMTM7CnZhciBrT21pdEZpcnN0MyAgICAgPSAxNDsKdmFyIGtPbWl0Rmlyc3Q0ICAgICA9IDE1Owp2YXIga09taXRGaXJzdDUgICAgID0gMTY7CnZhciBrT21pdEZpcnN0NiAgICAgPSAxNzsKdmFyIGtPbWl0Rmlyc3Q3ICAgICA9IDE4Owp2YXIga09taXRGaXJzdDggICAgID0gMTk7CnZhciBrT21pdEZpcnN0OSAgICAgPSAyMDsKCmZ1bmN0aW9uIFRyYW5zZm9ybShwcmVmaXgsIHRyYW5zZm9ybSwgc3VmZml4KSB7CiAgdGhpcy5wcmVmaXggPSBuZXcgVWludDhBcnJheShwcmVmaXgubGVuZ3RoKTsKICB0aGlzLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTsKICB0aGlzLnN1ZmZpeCA9IG5ldyBVaW50OEFycmF5KHN1ZmZpeC5sZW5ndGgpOwogIAogIGZvciAodmFyIGkgPSAwOyBpIDwgcHJlZml4Lmxlbmd0aDsgaSsrKQogICAgdGhpcy5wcmVmaXhbaV0gPSBwcmVmaXguY2hhckNvZGVBdChpKTsKICAKICBmb3IgKHZhciBpID0gMDsgaSA8IHN1ZmZpeC5sZW5ndGg7IGkrKykKICAgIHRoaXMuc3VmZml4W2ldID0gc3VmZml4LmNoYXJDb2RlQXQoaSk7Cn0KCnZhciBrVHJhbnNmb3JtcyA9IFsKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiAiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga0lkZW50aXR5LCAgICAgICAiICIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdEZpcnN0MSwgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtVcHBlcmNhc2VGaXJzdCwgIiAiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIHRoZSAiICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrSWRlbnRpdHksICAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICJzICIsIGtJZGVudGl0eSwgICAgICAgIiAiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIG9mICIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlRmlyc3QsICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiBhbmQgIiAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga09taXRGaXJzdDIsICAgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdExhc3QxLCAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICIsICIsIGtJZGVudGl0eSwgICAgICAgIiAiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiLCAiICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrVXBwZXJjYXNlRmlyc3QsICIgIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiBpbiAiICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIHRvICIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAiZSAiLCBrSWRlbnRpdHksICAgICAgICIgIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIlwiIiAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiLiIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICJcIj4iICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIlxuIiAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga09taXRMYXN0MywgICAgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICJdIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiBmb3IgIiAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga09taXRGaXJzdDMsICAgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdExhc3QyLCAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiBhICIgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIHRoYXQgIiAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrVXBwZXJjYXNlRmlyc3QsICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIi4gIiAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIuIiwga0lkZW50aXR5LCAgICAgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrSWRlbnRpdHksICAgICAgICIsICIgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtPbWl0Rmlyc3Q0LCAgICAgIiIgICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIHdpdGggIiAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICInIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiBmcm9tICIgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIGJ5ICIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdEZpcnN0NSwgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtPbWl0Rmlyc3Q2LCAgICAgIiIgICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgIiB0aGUgIiwga0lkZW50aXR5LCAgICAgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdExhc3Q0LCAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIi4gVGhlICIgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUFsbCwgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICIgb24gIiAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiBhcyAiICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIGlzICIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdExhc3Q3LCAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtPbWl0TGFzdDEsICAgICAgImluZyAiICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiXG5cdCIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICI6IiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiICIsIGtJZGVudGl0eSwgICAgICAgIi4gIiAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiZWQgIiAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdEZpcnN0OSwgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtPbWl0Rmlyc3Q3LCAgICAgIiIgICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga09taXRMYXN0NiwgICAgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICIoIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtVcHBlcmNhc2VGaXJzdCwgIiwgIiAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga09taXRMYXN0OCwgICAgICAiIiAgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICIgYXQgIiAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgImx5ICIgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgIiB0aGUgIiwga0lkZW50aXR5LCAgICAgICAiIG9mICIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrT21pdExhc3Q1LCAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtPbWl0TGFzdDksICAgICAgIiIgICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga1VwcGVyY2FzZUZpcnN0LCAiLCAiICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlRmlyc3QsICJcIiIgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiLiIsIGtJZGVudGl0eSwgICAgICAgIigiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUFsbCwgICAiICIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlRmlyc3QsICJcIj4iICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIj1cIiIgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga0lkZW50aXR5LCAgICAgICAiLiIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAiLmNvbS8iLCBrSWRlbnRpdHksICAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICIgdGhlICIsIGtJZGVudGl0eSwgICAgICAgIiBvZiB0aGUgIiAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUZpcnN0LCAiJyIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICIuIFRoaXMgIiAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIiwiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIuIiwga0lkZW50aXR5LCAgICAgICAiICIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlRmlyc3QsICIoIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtVcHBlcmNhc2VGaXJzdCwgIi4iICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiIG5vdCAiICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrSWRlbnRpdHksICAgICAgICI9XCIiICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgImVyICIgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga1VwcGVyY2FzZUFsbCwgICAiICIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICJhbCAiICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiICIsIGtVcHBlcmNhc2VBbGwsICAgIiIgICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiPSciICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlQWxsLCAgICJcIiIgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtVcHBlcmNhc2VGaXJzdCwgIi4gIiAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga0lkZW50aXR5LCAgICAgICAiKCIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICJmdWwgIiAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiICIsIGtVcHBlcmNhc2VGaXJzdCwgIi4gIiAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiaXZlICIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrSWRlbnRpdHksICAgICAgICJsZXNzICIgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtVcHBlcmNhc2VBbGwsICAgIiciICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga0lkZW50aXR5LCAgICAgICAiZXN0ICIgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrVXBwZXJjYXNlRmlyc3QsICIuIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtVcHBlcmNhc2VBbGwsICAgIlwiPiIgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga0lkZW50aXR5LCAgICAgICAiPSciICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlRmlyc3QsICIsIiAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIml6ZSAiICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUFsbCwgICAiLiIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAiXHhjMlx4YTAiLCBrSWRlbnRpdHksICAgICAgICIiICAgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiICIsIGtJZGVudGl0eSwgICAgICAgIiwiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUZpcnN0LCAiPVwiIiAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlQWxsLCAgICI9XCIiICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtJZGVudGl0eSwgICAgICAgIm91cyAiICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUFsbCwgICAiLCAiICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlRmlyc3QsICI9JyIgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiICIsIGtVcHBlcmNhc2VGaXJzdCwgIiwiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga1VwcGVyY2FzZUFsbCwgICAiPVwiIiAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrVXBwZXJjYXNlQWxsLCAgICIsICIgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAgIiIsIGtVcHBlcmNhc2VBbGwsICAgIiwiICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUFsbCwgICAiKCIgICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgICIiLCBrVXBwZXJjYXNlQWxsLCAgICIuICIgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiICIsIGtVcHBlcmNhc2VBbGwsICAgIi4iICAgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICAiIiwga1VwcGVyY2FzZUFsbCwgICAiPSciICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrVXBwZXJjYXNlQWxsLCAgICIuICIgICAgICAgICApLAogICAgIG5ldyBUcmFuc2Zvcm0oICAgICAgICAiICIsIGtVcHBlcmNhc2VGaXJzdCwgIj1cIiIgICAgICAgICksCiAgICAgbmV3IFRyYW5zZm9ybSggICAgICAgICIgIiwga1VwcGVyY2FzZUFsbCwgICAiPSciICAgICAgICAgKSwKICAgICBuZXcgVHJhbnNmb3JtKCAgICAgICAgIiAiLCBrVXBwZXJjYXNlRmlyc3QsICI9JyIgICAgICAgICApCl07CgpleHBvcnRzLmtUcmFuc2Zvcm1zID0ga1RyYW5zZm9ybXM7CmV4cG9ydHMua051bVRyYW5zZm9ybXMgPSBrVHJhbnNmb3Jtcy5sZW5ndGg7CgpmdW5jdGlvbiBUb1VwcGVyQ2FzZShwLCBpKSB7CiAgaWYgKHBbaV0gPCAweGMwKSB7CiAgICBpZiAocFtpXSA+PSA5NyAmJiBwW2ldIDw9IDEyMikgewogICAgICBwW2ldIF49IDMyOwogICAgfQogICAgcmV0dXJuIDE7CiAgfQogIAogIC8qIEFuIG92ZXJseSBzaW1wbGlmaWVkIHVwcGVyY2FzaW5nIG1vZGVsIGZvciB1dGYtOC4gKi8KICBpZiAocFtpXSA8IDB4ZTApIHsKICAgIHBbaSArIDFdIF49IDMyOwogICAgcmV0dXJuIDI7CiAgfQogIAogIC8qIEFuIGFyYml0cmFyeSB0cmFuc2Zvcm0gZm9yIHRocmVlIGJ5dGUgY2hhcmFjdGVycy4gKi8KICBwW2kgKyAyXSBePSA1OwogIHJldHVybiAzOwp9CgpleHBvcnRzLnRyYW5zZm9ybURpY3Rpb25hcnlXb3JkID0gZnVuY3Rpb24oZHN0LCBpZHgsIHdvcmQsIGxlbiwgdHJhbnNmb3JtKSB7CiAgdmFyIHByZWZpeCA9IGtUcmFuc2Zvcm1zW3RyYW5zZm9ybV0ucHJlZml4OwogIHZhciBzdWZmaXggPSBrVHJhbnNmb3Jtc1t0cmFuc2Zvcm1dLnN1ZmZpeDsKICB2YXIgdCA9IGtUcmFuc2Zvcm1zW3RyYW5zZm9ybV0udHJhbnNmb3JtOwogIHZhciBza2lwID0gdCA8IGtPbWl0Rmlyc3QxID8gMCA6IHQgLSAoa09taXRGaXJzdDEgLSAxKTsKICB2YXIgaSA9IDA7CiAgdmFyIHN0YXJ0X2lkeCA9IGlkeDsKICB2YXIgdXBwZXJjYXNlOwogIAogIGlmIChza2lwID4gbGVuKSB7CiAgICBza2lwID0gbGVuOwogIH0KICAKICB2YXIgcHJlZml4X3BvcyA9IDA7CiAgd2hpbGUgKHByZWZpeF9wb3MgPCBwcmVmaXgubGVuZ3RoKSB7CiAgICBkc3RbaWR4KytdID0gcHJlZml4W3ByZWZpeF9wb3MrK107CiAgfQogIAogIHdvcmQgKz0gc2tpcDsKICBsZW4gLT0gc2tpcDsKICAKICBpZiAodCA8PSBrT21pdExhc3Q5KSB7CiAgICBsZW4gLT0gdDsKICB9CiAgCiAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CiAgICBkc3RbaWR4KytdID0gQnJvdGxpRGljdGlvbmFyeS5kaWN0aW9uYXJ5W3dvcmQgKyBpXTsKICB9CiAgCiAgdXBwZXJjYXNlID0gaWR4IC0gbGVuOwogIAogIGlmICh0ID09PSBrVXBwZXJjYXNlRmlyc3QpIHsKICAgIFRvVXBwZXJDYXNlKGRzdCwgdXBwZXJjYXNlKTsKICB9IGVsc2UgaWYgKHQgPT09IGtVcHBlcmNhc2VBbGwpIHsKICAgIHdoaWxlIChsZW4gPiAwKSB7CiAgICAgIHZhciBzdGVwID0gVG9VcHBlckNhc2UoZHN0LCB1cHBlcmNhc2UpOwogICAgICB1cHBlcmNhc2UgKz0gc3RlcDsKICAgICAgbGVuIC09IHN0ZXA7CiAgICB9CiAgfQogIAogIHZhciBzdWZmaXhfcG9zID0gMDsKICB3aGlsZSAoc3VmZml4X3BvcyA8IHN1ZmZpeC5sZW5ndGgpIHsKICAgIGRzdFtpZHgrK10gPSBzdWZmaXhbc3VmZml4X3BvcysrXTsKICB9CiAgCiAgcmV0dXJuIGlkeCAtIHN0YXJ0X2lkeDsKfQoKCi8qKiovIH0pLAovKiAyOTIgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKF9fZGlybmFtZSkgey8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CihmdW5jdGlvbigpIHsKICB2YXIgQUZNRm9udCwgUERGRm9udCwgU3RhbmRhcmRGb250LCBmcywKICAgIGV4dGVuZCA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2YXIga2V5IGluIHBhcmVudCkgeyBpZiAoaGFzUHJvcC5jYWxsKHBhcmVudCwga2V5KSkgY2hpbGRba2V5XSA9IHBhcmVudFtrZXldOyB9IGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfSBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7IGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7IGNoaWxkLl9fc3VwZXJfXyA9IHBhcmVudC5wcm90b3R5cGU7IHJldHVybiBjaGlsZDsgfSwKICAgIGhhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eTsKCiAgQUZNRm9udCA9IF9fd2VicGFja19yZXF1aXJlX18oMjkzKTsKCiAgUERGRm9udCA9IF9fd2VicGFja19yZXF1aXJlX18oNTApOwoKICBmcyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CgogIFN0YW5kYXJkRm9udCA9IChmdW5jdGlvbihzdXBlckNsYXNzKSB7CiAgICB2YXIgU1RBTkRBUkRfRk9OVFM7CgogICAgZXh0ZW5kKFN0YW5kYXJkRm9udCwgc3VwZXJDbGFzcyk7CgogICAgZnVuY3Rpb24gU3RhbmRhcmRGb250KGRvY3VtZW50LCBuYW1lMSwgaWQpIHsKICAgICAgdmFyIHJlZjsKICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50OwogICAgICB0aGlzLm5hbWUgPSBuYW1lMTsKICAgICAgdGhpcy5pZCA9IGlkOwogICAgICB0aGlzLmZvbnQgPSBuZXcgQUZNRm9udChTVEFOREFSRF9GT05UU1t0aGlzLm5hbWVdKCkpOwogICAgICByZWYgPSB0aGlzLmZvbnQsIHRoaXMuYXNjZW5kZXIgPSByZWYuYXNjZW5kZXIsIHRoaXMuZGVzY2VuZGVyID0gcmVmLmRlc2NlbmRlciwgdGhpcy5iYm94ID0gcmVmLmJib3gsIHRoaXMubGluZUdhcCA9IHJlZi5saW5lR2FwOwogICAgfQoKICAgIFN0YW5kYXJkRm9udC5wcm90b3R5cGUuZW1iZWQgPSBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5kaWN0aW9uYXJ5LmRhdGEgPSB7CiAgICAgICAgVHlwZTogJ0ZvbnQnLAogICAgICAgIEJhc2VGb250OiB0aGlzLm5hbWUsCiAgICAgICAgU3VidHlwZTogJ1R5cGUxJywKICAgICAgICBFbmNvZGluZzogJ1dpbkFuc2lFbmNvZGluZycKICAgICAgfTsKICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeS5lbmQoKTsKICAgIH07CgogICAgU3RhbmRhcmRGb250LnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbih0ZXh0KSB7CiAgICAgIHZhciBhZHZhbmNlcywgZW5jb2RlZCwgZ2x5cGgsIGdseXBocywgaSwgaiwgbGVuLCBwb3NpdGlvbnM7CiAgICAgIGVuY29kZWQgPSB0aGlzLmZvbnQuZW5jb2RlVGV4dCh0ZXh0KTsKICAgICAgZ2x5cGhzID0gdGhpcy5mb250LmdseXBoc0ZvclN0cmluZygnJyArIHRleHQpOwogICAgICBhZHZhbmNlcyA9IHRoaXMuZm9udC5hZHZhbmNlc0ZvckdseXBocyhnbHlwaHMpOwogICAgICBwb3NpdGlvbnMgPSBbXTsKICAgICAgZm9yIChpID0gaiA9IDAsIGxlbiA9IGdseXBocy5sZW5ndGg7IGogPCBsZW47IGkgPSArK2opIHsKICAgICAgICBnbHlwaCA9IGdseXBoc1tpXTsKICAgICAgICBwb3NpdGlvbnMucHVzaCh7CiAgICAgICAgICB4QWR2YW5jZTogYWR2YW5jZXNbaV0sCiAgICAgICAgICB5QWR2YW5jZTogMCwKICAgICAgICAgIHhPZmZzZXQ6IDAsCiAgICAgICAgICB5T2Zmc2V0OiAwLAogICAgICAgICAgYWR2YW5jZVdpZHRoOiB0aGlzLmZvbnQud2lkdGhPZkdseXBoKGdseXBoKQogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBbZW5jb2RlZCwgcG9zaXRpb25zXTsKICAgIH07CgogICAgU3RhbmRhcmRGb250LnByb3RvdHlwZS53aWR0aE9mU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nLCBzaXplKSB7CiAgICAgIHZhciBhZHZhbmNlLCBhZHZhbmNlcywgZ2x5cGhzLCBqLCBsZW4sIHNjYWxlLCB3aWR0aDsKICAgICAgZ2x5cGhzID0gdGhpcy5mb250LmdseXBoc0ZvclN0cmluZygnJyArIHN0cmluZyk7CiAgICAgIGFkdmFuY2VzID0gdGhpcy5mb250LmFkdmFuY2VzRm9yR2x5cGhzKGdseXBocyk7CiAgICAgIHdpZHRoID0gMDsKICAgICAgZm9yIChqID0gMCwgbGVuID0gYWR2YW5jZXMubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHsKICAgICAgICBhZHZhbmNlID0gYWR2YW5jZXNbal07CiAgICAgICAgd2lkdGggKz0gYWR2YW5jZTsKICAgICAgfQogICAgICBzY2FsZSA9IHNpemUgLyAxMDAwOwogICAgICByZXR1cm4gd2lkdGggKiBzY2FsZTsKICAgIH07CgogICAgU3RhbmRhcmRGb250LmlzU3RhbmRhcmRGb250ID0gZnVuY3Rpb24obmFtZSkgewogICAgICByZXR1cm4gbmFtZSBpbiBTVEFOREFSRF9GT05UUzsKICAgIH07CgogICAgU1RBTkRBUkRfRk9OVFMgPSB7CiAgICAgICJDb3VyaWVyIjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAiLy4uL2ZvbnQvZGF0YS9Db3VyaWVyLmFmbSIsICd1dGY4Jyk7CiAgICAgIH0sCiAgICAgICJDb3VyaWVyLUJvbGQiOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKF9fZGlybmFtZSArICIvLi4vZm9udC9kYXRhL0NvdXJpZXItQm9sZC5hZm0iLCAndXRmOCcpOwogICAgICB9LAogICAgICAiQ291cmllci1PYmxpcXVlIjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAiLy4uL2ZvbnQvZGF0YS9Db3VyaWVyLU9ibGlxdWUuYWZtIiwgJ3V0ZjgnKTsKICAgICAgfSwKICAgICAgIkNvdXJpZXItQm9sZE9ibGlxdWUiOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKF9fZGlybmFtZSArICIvLi4vZm9udC9kYXRhL0NvdXJpZXItQm9sZE9ibGlxdWUuYWZtIiwgJ3V0ZjgnKTsKICAgICAgfSwKICAgICAgIkhlbHZldGljYSI6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoX19kaXJuYW1lICsgIi8uLi9mb250L2RhdGEvSGVsdmV0aWNhLmFmbSIsICd1dGY4Jyk7CiAgICAgIH0sCiAgICAgICJIZWx2ZXRpY2EtQm9sZCI6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoX19kaXJuYW1lICsgIi8uLi9mb250L2RhdGEvSGVsdmV0aWNhLUJvbGQuYWZtIiwgJ3V0ZjgnKTsKICAgICAgfSwKICAgICAgIkhlbHZldGljYS1PYmxpcXVlIjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAiLy4uL2ZvbnQvZGF0YS9IZWx2ZXRpY2EtT2JsaXF1ZS5hZm0iLCAndXRmOCcpOwogICAgICB9LAogICAgICAiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAiLy4uL2ZvbnQvZGF0YS9IZWx2ZXRpY2EtQm9sZE9ibGlxdWUuYWZtIiwgJ3V0ZjgnKTsKICAgICAgfSwKICAgICAgIlRpbWVzLVJvbWFuIjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAiLy4uL2ZvbnQvZGF0YS9UaW1lcy1Sb21hbi5hZm0iLCAndXRmOCcpOwogICAgICB9LAogICAgICAiVGltZXMtQm9sZCI6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoX19kaXJuYW1lICsgIi8uLi9mb250L2RhdGEvVGltZXMtQm9sZC5hZm0iLCAndXRmOCcpOwogICAgICB9LAogICAgICAiVGltZXMtSXRhbGljIjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGZzLnJlYWRGaWxlU3luYyhfX2Rpcm5hbWUgKyAiLy4uL2ZvbnQvZGF0YS9UaW1lcy1JdGFsaWMuYWZtIiwgJ3V0ZjgnKTsKICAgICAgfSwKICAgICAgIlRpbWVzLUJvbGRJdGFsaWMiOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKF9fZGlybmFtZSArICIvLi4vZm9udC9kYXRhL1RpbWVzLUJvbGRJdGFsaWMuYWZtIiwgJ3V0ZjgnKTsKICAgICAgfSwKICAgICAgIlN5bWJvbCI6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBmcy5yZWFkRmlsZVN5bmMoX19kaXJuYW1lICsgIi8uLi9mb250L2RhdGEvU3ltYm9sLmFmbSIsICd1dGY4Jyk7CiAgICAgIH0sCiAgICAgICJaYXBmRGluZ2JhdHMiOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKF9fZGlybmFtZSArICIvLi4vZm9udC9kYXRhL1phcGZEaW5nYmF0cy5hZm0iLCAndXRmOCcpOwogICAgICB9CiAgICB9OwoKICAgIHJldHVybiBTdGFuZGFyZEZvbnQ7CgogIH0pKFBERkZvbnQpOwoKICBtb2R1bGUuZXhwb3J0cyA9IFN0YW5kYXJkRm9udDsKCn0pLmNhbGwodGhpcyk7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgIi8iKSkKCi8qKiovIH0pLAovKiAyOTMgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjEyLjYKKGZ1bmN0aW9uKCkgewogIHZhciBBRk1Gb250LCBmczsKCiAgZnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpOwoKICBBRk1Gb250ID0gKGZ1bmN0aW9uKCkgewogICAgdmFyIFdJTl9BTlNJX01BUCwgY2hhcmFjdGVyczsKCiAgICBBRk1Gb250Lm9wZW4gPSBmdW5jdGlvbihmaWxlbmFtZSkgewogICAgICByZXR1cm4gbmV3IEFGTUZvbnQoZnMucmVhZEZpbGVTeW5jKGZpbGVuYW1lLCAndXRmOCcpKTsKICAgIH07CgogICAgZnVuY3Rpb24gQUZNRm9udChjb250ZW50cykgewogICAgICB2YXIgZSwgaTsKICAgICAgdGhpcy5jb250ZW50cyA9IGNvbnRlbnRzOwogICAgICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTsKICAgICAgdGhpcy5nbHlwaFdpZHRocyA9IHt9OwogICAgICB0aGlzLmJvdW5kaW5nQm94ZXMgPSB7fTsKICAgICAgdGhpcy5rZXJuUGFpcnMgPSB7fTsKICAgICAgdGhpcy5wYXJzZSgpOwogICAgICB0aGlzLmNoYXJXaWR0aHMgPSAoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGosIHJlc3VsdHM7CiAgICAgICAgcmVzdWx0cyA9IFtdOwogICAgICAgIGZvciAoaSA9IGogPSAwOyBqIDw9IDI1NTsgaSA9ICsraikgewogICAgICAgICAgcmVzdWx0cy5wdXNoKHRoaXMuZ2x5cGhXaWR0aHNbY2hhcmFjdGVyc1tpXV0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgfSkuY2FsbCh0aGlzKTsKICAgICAgdGhpcy5iYm94ID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBqLCBsZW4sIHJlZiwgcmVzdWx0czsKICAgICAgICByZWYgPSB0aGlzLmF0dHJpYnV0ZXNbJ0ZvbnRCQm94J10uc3BsaXQoL1xzKy8pOwogICAgICAgIHJlc3VsdHMgPSBbXTsKICAgICAgICBmb3IgKGogPSAwLCBsZW4gPSByZWYubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHsKICAgICAgICAgIGUgPSByZWZbal07CiAgICAgICAgICByZXN1bHRzLnB1c2goK2UpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgfSkuY2FsbCh0aGlzKTsKICAgICAgdGhpcy5hc2NlbmRlciA9ICsodGhpcy5hdHRyaWJ1dGVzWydBc2NlbmRlciddIHx8IDApOwogICAgICB0aGlzLmRlc2NlbmRlciA9ICsodGhpcy5hdHRyaWJ1dGVzWydEZXNjZW5kZXInXSB8fCAwKTsKICAgICAgdGhpcy5saW5lR2FwID0gKHRoaXMuYmJveFszXSAtIHRoaXMuYmJveFsxXSkgLSAodGhpcy5hc2NlbmRlciAtIHRoaXMuZGVzY2VuZGVyKTsKICAgIH0KCiAgICBBRk1Gb250LnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgYSwgaiwga2V5LCBsZW4sIGxpbmUsIG1hdGNoLCBuYW1lLCByZWYsIHNlY3Rpb24sIHZhbHVlOwogICAgICBzZWN0aW9uID0gJyc7CiAgICAgIHJlZiA9IHRoaXMuY29udGVudHMuc3BsaXQoJ1xuJyk7CiAgICAgIGZvciAoaiA9IDAsIGxlbiA9IHJlZi5sZW5ndGg7IGogPCBsZW47IGorKykgewogICAgICAgIGxpbmUgPSByZWZbal07CiAgICAgICAgaWYgKG1hdGNoID0gbGluZS5tYXRjaCgvXlN0YXJ0KFx3KykvKSkgewogICAgICAgICAgc2VjdGlvbiA9IG1hdGNoWzFdOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfSBlbHNlIGlmIChtYXRjaCA9IGxpbmUubWF0Y2goL15FbmQoXHcrKS8pKSB7CiAgICAgICAgICBzZWN0aW9uID0gJyc7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgc3dpdGNoIChzZWN0aW9uKSB7CiAgICAgICAgICBjYXNlICdGb250TWV0cmljcyc6CiAgICAgICAgICAgIG1hdGNoID0gbGluZS5tYXRjaCgvKF5cdyspXHMrKC4qKS8pOwogICAgICAgICAgICBrZXkgPSBtYXRjaFsxXTsKICAgICAgICAgICAgdmFsdWUgPSBtYXRjaFsyXTsKICAgICAgICAgICAgaWYgKGEgPSB0aGlzLmF0dHJpYnV0ZXNba2V5XSkgewogICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShhKSkgewogICAgICAgICAgICAgICAgYSA9IHRoaXMuYXR0cmlidXRlc1trZXldID0gW2FdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBhLnB1c2godmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1trZXldID0gdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdDaGFyTWV0cmljcyc6CiAgICAgICAgICAgIGlmICghL15DSD9ccy8udGVzdChsaW5lKSkgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5hbWUgPSBsaW5lLm1hdGNoKC9cYk5ccysoXC4/XHcrKVxzKjsvKVsxXTsKICAgICAgICAgICAgdGhpcy5nbHlwaFdpZHRoc1tuYW1lXSA9ICtsaW5lLm1hdGNoKC9cYldYXHMrKFxkKylccyo7LylbMV07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnS2VyblBhaXJzJzoKICAgICAgICAgICAgbWF0Y2ggPSBsaW5lLm1hdGNoKC9eS1BYXHMrKFwuP1x3KylccysoXC4/XHcrKVxzKygtP1xkKykvKTsKICAgICAgICAgICAgaWYgKG1hdGNoKSB7CiAgICAgICAgICAgICAgdGhpcy5rZXJuUGFpcnNbbWF0Y2hbMV0gKyAnXDAnICsgbWF0Y2hbMl1dID0gcGFyc2VJbnQobWF0Y2hbM10pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9OwoKICAgIFdJTl9BTlNJX01BUCA9IHsKICAgICAgNDAyOiAxMzEsCiAgICAgIDgyMTE6IDE1MCwKICAgICAgODIxMjogMTUxLAogICAgICA4MjE2OiAxNDUsCiAgICAgIDgyMTc6IDE0NiwKICAgICAgODIxODogMTMwLAogICAgICA4MjIwOiAxNDcsCiAgICAgIDgyMjE6IDE0OCwKICAgICAgODIyMjogMTMyLAogICAgICA4MjI0OiAxMzQsCiAgICAgIDgyMjU6IDEzNSwKICAgICAgODIyNjogMTQ5LAogICAgICA4MjMwOiAxMzMsCiAgICAgIDgzNjQ6IDEyOCwKICAgICAgODI0MDogMTM3LAogICAgICA4MjQ5OiAxMzksCiAgICAgIDgyNTA6IDE1NSwKICAgICAgNzEwOiAxMzYsCiAgICAgIDg0ODI6IDE1MywKICAgICAgMzM4OiAxNDAsCiAgICAgIDMzOTogMTU2LAogICAgICA3MzI6IDE1MiwKICAgICAgMzUyOiAxMzgsCiAgICAgIDM1MzogMTU0LAogICAgICAzNzY6IDE1OSwKICAgICAgMzgxOiAxNDIsCiAgICAgIDM4MjogMTU4CiAgICB9OwoKICAgIEFGTUZvbnQucHJvdG90eXBlLmVuY29kZVRleHQgPSBmdW5jdGlvbih0ZXh0KSB7CiAgICAgIHZhciBjaGFyLCBpLCBqLCByZWYsIHJlczsKICAgICAgcmVzID0gW107CiAgICAgIGZvciAoaSA9IGogPSAwLCByZWYgPSB0ZXh0Lmxlbmd0aDsgMCA8PSByZWYgPyBqIDwgcmVmIDogaiA+IHJlZjsgaSA9IDAgPD0gcmVmID8gKytqIDogLS1qKSB7CiAgICAgICAgY2hhciA9IHRleHQuY2hhckNvZGVBdChpKTsKICAgICAgICBjaGFyID0gV0lOX0FOU0lfTUFQW2NoYXJdIHx8IGNoYXI7CiAgICAgICAgcmVzLnB1c2goY2hhci50b1N0cmluZygxNikpOwogICAgICB9CiAgICAgIHJldHVybiByZXM7CiAgICB9OwoKICAgIEFGTUZvbnQucHJvdG90eXBlLmdseXBoc0ZvclN0cmluZyA9IGZ1bmN0aW9uKHN0cmluZykgewogICAgICB2YXIgY2hhckNvZGUsIGdseXBocywgaSwgaiwgcmVmOwogICAgICBnbHlwaHMgPSBbXTsKICAgICAgZm9yIChpID0gaiA9IDAsIHJlZiA9IHN0cmluZy5sZW5ndGg7IDAgPD0gcmVmID8gaiA8IHJlZiA6IGogPiByZWY7IGkgPSAwIDw9IHJlZiA/ICsraiA6IC0taikgewogICAgICAgIGNoYXJDb2RlID0gc3RyaW5nLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgZ2x5cGhzLnB1c2godGhpcy5jaGFyYWN0ZXJUb0dseXBoKGNoYXJDb2RlKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGdseXBoczsKICAgIH07CgogICAgQUZNRm9udC5wcm90b3R5cGUuY2hhcmFjdGVyVG9HbHlwaCA9IGZ1bmN0aW9uKGNoYXJhY3RlcikgewogICAgICByZXR1cm4gY2hhcmFjdGVyc1tXSU5fQU5TSV9NQVBbY2hhcmFjdGVyXSB8fCBjaGFyYWN0ZXJdIHx8ICcubm90ZGVmJzsKICAgIH07CgogICAgQUZNRm9udC5wcm90b3R5cGUud2lkdGhPZkdseXBoID0gZnVuY3Rpb24oZ2x5cGgpIHsKICAgICAgcmV0dXJuIHRoaXMuZ2x5cGhXaWR0aHNbZ2x5cGhdIHx8IDA7CiAgICB9OwoKICAgIEFGTUZvbnQucHJvdG90eXBlLmdldEtlcm5QYWlyID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHsKICAgICAgcmV0dXJuIHRoaXMua2VyblBhaXJzW2xlZnQgKyAnXDAnICsgcmlnaHRdIHx8IDA7CiAgICB9OwoKICAgIEFGTUZvbnQucHJvdG90eXBlLmFkdmFuY2VzRm9yR2x5cGhzID0gZnVuY3Rpb24oZ2x5cGhzKSB7CiAgICAgIHZhciBhZHZhbmNlcywgaW5kZXgsIGosIGxlZnQsIGxlbiwgcmlnaHQ7CiAgICAgIGFkdmFuY2VzID0gW107CiAgICAgIGZvciAoaW5kZXggPSBqID0gMCwgbGVuID0gZ2x5cGhzLmxlbmd0aDsgaiA8IGxlbjsgaW5kZXggPSArK2opIHsKICAgICAgICBsZWZ0ID0gZ2x5cGhzW2luZGV4XTsKICAgICAgICByaWdodCA9IGdseXBoc1tpbmRleCArIDFdOwogICAgICAgIGFkdmFuY2VzLnB1c2godGhpcy53aWR0aE9mR2x5cGgobGVmdCkgKyB0aGlzLmdldEtlcm5QYWlyKGxlZnQsIHJpZ2h0KSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGFkdmFuY2VzOwogICAgfTsKCiAgICBjaGFyYWN0ZXJzID0gJy5ub3RkZWYgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZlxuLm5vdGRlZiAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmXG4ubm90ZGVmICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWZcbi5ub3RkZWYgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZlxuLm5vdGRlZiAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmXG4ubm90ZGVmICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWYgICAgICAgIC5ub3RkZWZcbi5ub3RkZWYgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZiAgICAgICAgLm5vdGRlZlxuLm5vdGRlZiAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmICAgICAgICAubm90ZGVmXG5cbnNwYWNlICAgICAgICAgZXhjbGFtICAgICAgICAgcXVvdGVkYmwgICAgICAgbnVtYmVyc2lnblxuZG9sbGFyICAgICAgICBwZXJjZW50ICAgICAgICBhbXBlcnNhbmQgICAgICBxdW90ZXNpbmdsZVxucGFyZW5sZWZ0ICAgICBwYXJlbnJpZ2h0ICAgICBhc3RlcmlzayAgICAgICBwbHVzXG5jb21tYSAgICAgICAgIGh5cGhlbiAgICAgICAgIHBlcmlvZCAgICAgICAgIHNsYXNoXG56ZXJvICAgICAgICAgIG9uZSAgICAgICAgICAgIHR3byAgICAgICAgICAgIHRocmVlXG5mb3VyICAgICAgICAgIGZpdmUgICAgICAgICAgIHNpeCAgICAgICAgICAgIHNldmVuXG5laWdodCAgICAgICAgIG5pbmUgICAgICAgICAgIGNvbG9uICAgICAgICAgIHNlbWljb2xvblxubGVzcyAgICAgICAgICBlcXVhbCAgICAgICAgICBncmVhdGVyICAgICAgICBxdWVzdGlvblxuXG5hdCAgICAgICAgICAgIEEgICAgICAgICAgICAgIEIgICAgICAgICAgICAgIENcbkQgICAgICAgICAgICAgRSAgICAgICAgICAgICAgRiAgICAgICAgICAgICAgR1xuSCAgICAgICAgICAgICBJICAgICAgICAgICAgICBKICAgICAgICAgICAgICBLXG5MICAgICAgICAgICAgIE0gICAgICAgICAgICAgIE4gICAgICAgICAgICAgIE9cblAgICAgICAgICAgICAgUSAgICAgICAgICAgICAgUiAgICAgICAgICAgICAgU1xuVCAgICAgICAgICAgICBVICAgICAgICAgICAgICBWICAgICAgICAgICAgICBXXG5YICAgICAgICAgICAgIFkgICAgICAgICAgICAgIFogICAgICAgICAgICAgIGJyYWNrZXRsZWZ0XG5iYWNrc2xhc2ggICAgIGJyYWNrZXRyaWdodCAgIGFzY2lpY2lyY3VtICAgIHVuZGVyc2NvcmVcblxuZ3JhdmUgICAgICAgICBhICAgICAgICAgICAgICBiICAgICAgICAgICAgICBjXG5kICAgICAgICAgICAgIGUgICAgICAgICAgICAgIGYgICAgICAgICAgICAgIGdcbmggICAgICAgICAgICAgaSAgICAgICAgICAgICAgaiAgICAgICAgICAgICAga1xubCAgICAgICAgICAgICBtICAgICAgICAgICAgICBuICAgICAgICAgICAgICBvXG5wICAgICAgICAgICAgIHEgICAgICAgICAgICAgIHIgICAgICAgICAgICAgIHNcbnQgICAgICAgICAgICAgdSAgICAgICAgICAgICAgdiAgICAgICAgICAgICAgd1xueCAgICAgICAgICAgICB5ICAgICAgICAgICAgICB6ICAgICAgICAgICAgICBicmFjZWxlZnRcbmJhciAgICAgICAgICAgYnJhY2VyaWdodCAgICAgYXNjaWl0aWxkZSAgICAgLm5vdGRlZlxuXG5FdXJvICAgICAgICAgIC5ub3RkZWYgICAgICAgIHF1b3Rlc2luZ2xiYXNlIGZsb3JpblxucXVvdGVkYmxiYXNlICBlbGxpcHNpcyAgICAgICBkYWdnZXIgICAgICAgICBkYWdnZXJkYmxcbmNpcmN1bWZsZXggICAgcGVydGhvdXNhbmQgICAgU2Nhcm9uICAgICAgICAgZ3VpbHNpbmdsbGVmdFxuT0UgICAgICAgICAgICAubm90ZGVmICAgICAgICBaY2Fyb24gICAgICAgICAubm90ZGVmXG4ubm90ZGVmICAgICAgIHF1b3RlbGVmdCAgICAgIHF1b3RlcmlnaHQgICAgIHF1b3RlZGJsbGVmdFxucXVvdGVkYmxyaWdodCBidWxsZXQgICAgICAgICBlbmRhc2ggICAgICAgICBlbWRhc2hcbnRpbGRlICAgICAgICAgdHJhZGVtYXJrICAgICAgc2Nhcm9uICAgICAgICAgZ3VpbHNpbmdscmlnaHRcbm9lICAgICAgICAgICAgLm5vdGRlZiAgICAgICAgemNhcm9uICAgICAgICAgeWRpZXJlc2lzXG5cbnNwYWNlICAgICAgICAgZXhjbGFtZG93biAgICAgY2VudCAgICAgICAgICAgc3RlcmxpbmdcbmN1cnJlbmN5ICAgICAgeWVuICAgICAgICAgICAgYnJva2VuYmFyICAgICAgc2VjdGlvblxuZGllcmVzaXMgICAgICBjb3B5cmlnaHQgICAgICBvcmRmZW1pbmluZSAgICBndWlsbGVtb3RsZWZ0XG5sb2dpY2Fsbm90ICAgIGh5cGhlbiAgICAgICAgIHJlZ2lzdGVyZWQgICAgIG1hY3JvblxuZGVncmVlICAgICAgICBwbHVzbWludXMgICAgICB0d29zdXBlcmlvciAgICB0aHJlZXN1cGVyaW9yXG5hY3V0ZSAgICAgICAgIG11ICAgICAgICAgICAgIHBhcmFncmFwaCAgICAgIHBlcmlvZGNlbnRlcmVkXG5jZWRpbGxhICAgICAgIG9uZXN1cGVyaW9yICAgIG9yZG1hc2N1bGluZSAgIGd1aWxsZW1vdHJpZ2h0XG5vbmVxdWFydGVyICAgIG9uZWhhbGYgICAgICAgIHRocmVlcXVhcnRlcnMgIHF1ZXN0aW9uZG93blxuXG5BZ3JhdmUgICAgICAgIEFhY3V0ZSAgICAgICAgIEFjaXJjdW1mbGV4ICAgIEF0aWxkZVxuQWRpZXJlc2lzICAgICBBcmluZyAgICAgICAgICBBRSAgICAgICAgICAgICBDY2VkaWxsYVxuRWdyYXZlICAgICAgICBFYWN1dGUgICAgICAgICBFY2lyY3VtZmxleCAgICBFZGllcmVzaXNcbklncmF2ZSAgICAgICAgSWFjdXRlICAgICAgICAgSWNpcmN1bWZsZXggICAgSWRpZXJlc2lzXG5FdGggICAgICAgICAgIE50aWxkZSAgICAgICAgIE9ncmF2ZSAgICAgICAgIE9hY3V0ZVxuT2NpcmN1bWZsZXggICBPdGlsZGUgICAgICAgICBPZGllcmVzaXMgICAgICBtdWx0aXBseVxuT3NsYXNoICAgICAgICBVZ3JhdmUgICAgICAgICBVYWN1dGUgICAgICAgICBVY2lyY3VtZmxleFxuVWRpZXJlc2lzICAgICBZYWN1dGUgICAgICAgICBUaG9ybiAgICAgICAgICBnZXJtYW5kYmxzXG5cbmFncmF2ZSAgICAgICAgYWFjdXRlICAgICAgICAgYWNpcmN1bWZsZXggICAgYXRpbGRlXG5hZGllcmVzaXMgICAgIGFyaW5nICAgICAgICAgIGFlICAgICAgICAgICAgIGNjZWRpbGxhXG5lZ3JhdmUgICAgICAgIGVhY3V0ZSAgICAgICAgIGVjaXJjdW1mbGV4ICAgIGVkaWVyZXNpc1xuaWdyYXZlICAgICAgICBpYWN1dGUgICAgICAgICBpY2lyY3VtZmxleCAgICBpZGllcmVzaXNcbmV0aCAgICAgICAgICAgbnRpbGRlICAgICAgICAgb2dyYXZlICAgICAgICAgb2FjdXRlXG5vY2lyY3VtZmxleCAgIG90aWxkZSAgICAgICAgIG9kaWVyZXNpcyAgICAgIGRpdmlkZVxub3NsYXNoICAgICAgICB1Z3JhdmUgICAgICAgICB1YWN1dGUgICAgICAgICB1Y2lyY3VtZmxleFxudWRpZXJlc2lzICAgICB5YWN1dGUgICAgICAgICB0aG9ybiAgICAgICAgICB5ZGllcmVzaXMnLnNwbGl0KC9ccysvKTsKCiAgICByZXR1cm4gQUZNRm9udDsKCiAgfSkoKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBBRk1Gb250OwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMjk0ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CihmdW5jdGlvbigpIHsKICB2YXIgRW1iZWRkZWRGb250LCBQREZGb250LCBQREZPYmplY3QsCiAgICBleHRlbmQgPSBmdW5jdGlvbihjaGlsZCwgcGFyZW50KSB7IGZvciAodmFyIGtleSBpbiBwYXJlbnQpIHsgaWYgKGhhc1Byb3AuY2FsbChwYXJlbnQsIGtleSkpIGNoaWxkW2tleV0gPSBwYXJlbnRba2V5XTsgfSBmdW5jdGlvbiBjdG9yKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gY2hpbGQ7IH0gY3Rvci5wcm90b3R5cGUgPSBwYXJlbnQucHJvdG90eXBlOyBjaGlsZC5wcm90b3R5cGUgPSBuZXcgY3RvcigpOyBjaGlsZC5fX3N1cGVyX18gPSBwYXJlbnQucHJvdG90eXBlOyByZXR1cm4gY2hpbGQ7IH0sCiAgICBoYXNQcm9wID0ge30uaGFzT3duUHJvcGVydHksCiAgICBzbGljZSA9IFtdLnNsaWNlOwoKICBQREZGb250ID0gX193ZWJwYWNrX3JlcXVpcmVfXyg1MCk7CgogIFBERk9iamVjdCA9IF9fd2VicGFja19yZXF1aXJlX18oMjYpOwoKICBFbWJlZGRlZEZvbnQgPSAoZnVuY3Rpb24oc3VwZXJDbGFzcykgewogICAgdmFyIHRvSGV4OwoKICAgIGV4dGVuZChFbWJlZGRlZEZvbnQsIHN1cGVyQ2xhc3MpOwoKICAgIGZ1bmN0aW9uIEVtYmVkZGVkRm9udChkb2N1bWVudCwgZm9udCwgaWQpIHsKICAgICAgdGhpcy5kb2N1bWVudCA9IGRvY3VtZW50OwogICAgICB0aGlzLmZvbnQgPSBmb250OwogICAgICB0aGlzLmlkID0gaWQ7CiAgICAgIHRoaXMuc3Vic2V0ID0gdGhpcy5mb250LmNyZWF0ZVN1YnNldCgpOwogICAgICB0aGlzLnVuaWNvZGUgPSBbWzBdXTsKICAgICAgdGhpcy53aWR0aHMgPSBbdGhpcy5mb250LmdldEdseXBoKDApLmFkdmFuY2VXaWR0aF07CiAgICAgIHRoaXMubmFtZSA9IHRoaXMuZm9udC5wb3N0c2NyaXB0TmFtZTsKICAgICAgdGhpcy5zY2FsZSA9IDEwMDAgLyB0aGlzLmZvbnQudW5pdHNQZXJFbTsKICAgICAgdGhpcy5hc2NlbmRlciA9IHRoaXMuZm9udC5hc2NlbnQgKiB0aGlzLnNjYWxlOwogICAgICB0aGlzLmRlc2NlbmRlciA9IHRoaXMuZm9udC5kZXNjZW50ICogdGhpcy5zY2FsZTsKICAgICAgdGhpcy5saW5lR2FwID0gdGhpcy5mb250LmxpbmVHYXAgKiB0aGlzLnNjYWxlOwogICAgICB0aGlzLmJib3ggPSB0aGlzLmZvbnQuYmJveDsKICAgICAgdGhpcy5sYXlvdXRDYWNoZSA9IE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICB9CgogICAgRW1iZWRkZWRGb250LnByb3RvdHlwZS5sYXlvdXRSdW4gPSBmdW5jdGlvbih0ZXh0LCBmZWF0dXJlcykgewogICAgICB2YXIgaSwgaiwga2V5LCBsZW4sIHBvc2l0aW9uLCByZWYsIHJ1bjsKICAgICAgcnVuID0gdGhpcy5mb250LmxheW91dCh0ZXh0LCBmZWF0dXJlcyk7CiAgICAgIHJlZiA9IHJ1bi5wb3NpdGlvbnM7CiAgICAgIGZvciAoaSA9IGogPSAwLCBsZW4gPSByZWYubGVuZ3RoOyBqIDwgbGVuOyBpID0gKytqKSB7CiAgICAgICAgcG9zaXRpb24gPSByZWZbaV07CiAgICAgICAgZm9yIChrZXkgaW4gcG9zaXRpb24pIHsKICAgICAgICAgIHBvc2l0aW9uW2tleV0gKj0gdGhpcy5zY2FsZTsKICAgICAgICB9CiAgICAgICAgcG9zaXRpb24uYWR2YW5jZVdpZHRoID0gcnVuLmdseXBoc1tpXS5hZHZhbmNlV2lkdGggKiB0aGlzLnNjYWxlOwogICAgICB9CiAgICAgIHJldHVybiBydW47CiAgICB9OwoKICAgIEVtYmVkZGVkRm9udC5wcm90b3R5cGUubGF5b3V0Q2FjaGVkID0gZnVuY3Rpb24odGV4dCkgewogICAgICB2YXIgY2FjaGVkLCBydW47CiAgICAgIGlmIChjYWNoZWQgPSB0aGlzLmxheW91dENhY2hlW3RleHRdKSB7CiAgICAgICAgcmV0dXJuIGNhY2hlZDsKICAgICAgfQogICAgICBydW4gPSB0aGlzLmxheW91dFJ1bih0ZXh0KTsKICAgICAgdGhpcy5sYXlvdXRDYWNoZVt0ZXh0XSA9IHJ1bjsKICAgICAgcmV0dXJuIHJ1bjsKICAgIH07CgogICAgRW1iZWRkZWRGb250LnByb3RvdHlwZS5sYXlvdXQgPSBmdW5jdGlvbih0ZXh0LCBmZWF0dXJlcywgb25seVdpZHRoKSB7CiAgICAgIHZhciBhZHZhbmNlV2lkdGgsIGdseXBocywgaW5kZXgsIGxhc3QsIHBvc2l0aW9ucywgcmVmLCBydW47CiAgICAgIGlmIChvbmx5V2lkdGggPT0gbnVsbCkgewogICAgICAgIG9ubHlXaWR0aCA9IGZhbHNlOwogICAgICB9CiAgICAgIGlmIChmZWF0dXJlcykgewogICAgICAgIHJldHVybiB0aGlzLmxheW91dFJ1bih0ZXh0LCBmZWF0dXJlcyk7CiAgICAgIH0KICAgICAgZ2x5cGhzID0gb25seVdpZHRoID8gbnVsbCA6IFtdOwogICAgICBwb3NpdGlvbnMgPSBvbmx5V2lkdGggPyBudWxsIDogW107CiAgICAgIGFkdmFuY2VXaWR0aCA9IDA7CiAgICAgIGxhc3QgPSAwOwogICAgICBpbmRleCA9IDA7CiAgICAgIHdoaWxlIChpbmRleCA8PSB0ZXh0Lmxlbmd0aCkgewogICAgICAgIGlmICgoaW5kZXggPT09IHRleHQubGVuZ3RoICYmIGxhc3QgPCBpbmRleCkgfHwgKChyZWYgPSB0ZXh0LmNoYXJBdChpbmRleCkpID09PSAnICcgfHwgcmVmID09PSAnXHQnKSkgewogICAgICAgICAgcnVuID0gdGhpcy5sYXlvdXRDYWNoZWQodGV4dC5zbGljZShsYXN0LCArK2luZGV4KSk7CiAgICAgICAgICBpZiAoIW9ubHlXaWR0aCkgewogICAgICAgICAgICBnbHlwaHMucHVzaC5hcHBseShnbHlwaHMsIHJ1bi5nbHlwaHMpOwogICAgICAgICAgICBwb3NpdGlvbnMucHVzaC5hcHBseShwb3NpdGlvbnMsIHJ1bi5wb3NpdGlvbnMpOwogICAgICAgICAgfQogICAgICAgICAgYWR2YW5jZVdpZHRoICs9IHJ1bi5hZHZhbmNlV2lkdGg7CiAgICAgICAgICBsYXN0ID0gaW5kZXg7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGluZGV4Kys7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7CiAgICAgICAgZ2x5cGhzOiBnbHlwaHMsCiAgICAgICAgcG9zaXRpb25zOiBwb3NpdGlvbnMsCiAgICAgICAgYWR2YW5jZVdpZHRoOiBhZHZhbmNlV2lkdGgKICAgICAgfTsKICAgIH07CgogICAgRW1iZWRkZWRGb250LnByb3RvdHlwZS5lbmNvZGUgPSBmdW5jdGlvbih0ZXh0LCBmZWF0dXJlcykgewogICAgICB2YXIgYmFzZSwgYmFzZTEsIGdpZCwgZ2x5cGgsIGdseXBocywgaSwgaiwgbGVuLCBwb3NpdGlvbnMsIHJlZiwgcmVzOwogICAgICByZWYgPSB0aGlzLmxheW91dCh0ZXh0LCBmZWF0dXJlcyksIGdseXBocyA9IHJlZi5nbHlwaHMsIHBvc2l0aW9ucyA9IHJlZi5wb3NpdGlvbnM7CiAgICAgIHJlcyA9IFtdOwogICAgICBmb3IgKGkgPSBqID0gMCwgbGVuID0gZ2x5cGhzLmxlbmd0aDsgaiA8IGxlbjsgaSA9ICsraikgewogICAgICAgIGdseXBoID0gZ2x5cGhzW2ldOwogICAgICAgIGdpZCA9IHRoaXMuc3Vic2V0LmluY2x1ZGVHbHlwaChnbHlwaC5pZCk7CiAgICAgICAgcmVzLnB1c2goKCcwMDAwJyArIGdpZC50b1N0cmluZygxNikpLnNsaWNlKC00KSk7CiAgICAgICAgaWYgKChiYXNlID0gdGhpcy53aWR0aHMpW2dpZF0gPT0gbnVsbCkgewogICAgICAgICAgYmFzZVtnaWRdID0gZ2x5cGguYWR2YW5jZVdpZHRoICogdGhpcy5zY2FsZTsKICAgICAgICB9CiAgICAgICAgaWYgKChiYXNlMSA9IHRoaXMudW5pY29kZSlbZ2lkXSA9PSBudWxsKSB7CiAgICAgICAgICBiYXNlMVtnaWRdID0gZ2x5cGguY29kZVBvaW50czsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIFtyZXMsIHBvc2l0aW9uc107CiAgICB9OwoKICAgIEVtYmVkZGVkRm9udC5wcm90b3R5cGUud2lkdGhPZlN0cmluZyA9IGZ1bmN0aW9uKHN0cmluZywgc2l6ZSwgZmVhdHVyZXMpIHsKICAgICAgdmFyIHNjYWxlLCB3aWR0aDsKICAgICAgd2lkdGggPSB0aGlzLmxheW91dChzdHJpbmcsIGZlYXR1cmVzLCB0cnVlKS5hZHZhbmNlV2lkdGg7CiAgICAgIHNjYWxlID0gc2l6ZSAvIDEwMDA7CiAgICAgIHJldHVybiB3aWR0aCAqIHNjYWxlOwogICAgfTsKCiAgICBFbWJlZGRlZEZvbnQucHJvdG90eXBlLmVtYmVkID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBiYm94LCBkZXNjZW5kYW50Rm9udCwgZGVzY3JpcHRvciwgZmFtaWx5Q2xhc3MsIGZsYWdzLCBmb250RmlsZSwgaSwgaXNDRkYsIG5hbWUsIHJlZiwgdGFnOwogICAgICBpc0NGRiA9IHRoaXMuc3Vic2V0LmNmZiAhPSBudWxsOwogICAgICBmb250RmlsZSA9IHRoaXMuZG9jdW1lbnQucmVmKCk7CiAgICAgIGlmIChpc0NGRikgewogICAgICAgIGZvbnRGaWxlLmRhdGEuU3VidHlwZSA9ICdDSURGb250VHlwZTBDJzsKICAgICAgfQogICAgICB0aGlzLnN1YnNldC5lbmNvZGVTdHJlYW0oKS5waXBlKGZvbnRGaWxlKTsKICAgICAgZmFtaWx5Q2xhc3MgPSAoKChyZWYgPSB0aGlzLmZvbnRbJ09TLzInXSkgIT0gbnVsbCA/IHJlZi5zRmFtaWx5Q2xhc3MgOiB2b2lkIDApIHx8IDApID4+IDg7CiAgICAgIGZsYWdzID0gMDsKICAgICAgaWYgKHRoaXMuZm9udC5wb3N0LmlzRml4ZWRQaXRjaCkgewogICAgICAgIGZsYWdzIHw9IDEgPDwgMDsKICAgICAgfQogICAgICBpZiAoKDEgPD0gZmFtaWx5Q2xhc3MgJiYgZmFtaWx5Q2xhc3MgPD0gNykpIHsKICAgICAgICBmbGFncyB8PSAxIDw8IDE7CiAgICAgIH0KICAgICAgZmxhZ3MgfD0gMSA8PCAyOwogICAgICBpZiAoZmFtaWx5Q2xhc3MgPT09IDEwKSB7CiAgICAgICAgZmxhZ3MgfD0gMSA8PCAzOwogICAgICB9CiAgICAgIGlmICh0aGlzLmZvbnQuaGVhZC5tYWNTdHlsZS5pdGFsaWMpIHsKICAgICAgICBmbGFncyB8PSAxIDw8IDY7CiAgICAgIH0KICAgICAgdGFnID0gKChmdW5jdGlvbigpIHsKICAgICAgICB2YXIgaiwgcmVzdWx0czsKICAgICAgICByZXN1bHRzID0gW107CiAgICAgICAgZm9yIChpID0gaiA9IDA7IGogPCA2OyBpID0gKytqKSB7CiAgICAgICAgICByZXN1bHRzLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShNYXRoLnJhbmRvbSgpICogMjYgKyA2NSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0czsKICAgICAgfSkoKSkuam9pbignJyk7CiAgICAgIG5hbWUgPSB0YWcgKyAnKycgKyB0aGlzLmZvbnQucG9zdHNjcmlwdE5hbWU7CiAgICAgIGJib3ggPSB0aGlzLmZvbnQuYmJveDsKICAgICAgZGVzY3JpcHRvciA9IHRoaXMuZG9jdW1lbnQucmVmKHsKICAgICAgICBUeXBlOiAnRm9udERlc2NyaXB0b3InLAogICAgICAgIEZvbnROYW1lOiBuYW1lLAogICAgICAgIEZsYWdzOiBmbGFncywKICAgICAgICBGb250QkJveDogW2Jib3gubWluWCAqIHRoaXMuc2NhbGUsIGJib3gubWluWSAqIHRoaXMuc2NhbGUsIGJib3gubWF4WCAqIHRoaXMuc2NhbGUsIGJib3gubWF4WSAqIHRoaXMuc2NhbGVdLAogICAgICAgIEl0YWxpY0FuZ2xlOiB0aGlzLmZvbnQuaXRhbGljQW5nbGUsCiAgICAgICAgQXNjZW50OiB0aGlzLmFzY2VuZGVyLAogICAgICAgIERlc2NlbnQ6IHRoaXMuZGVzY2VuZGVyLAogICAgICAgIENhcEhlaWdodDogKHRoaXMuZm9udC5jYXBIZWlnaHQgfHwgdGhpcy5mb250LmFzY2VudCkgKiB0aGlzLnNjYWxlLAogICAgICAgIFhIZWlnaHQ6ICh0aGlzLmZvbnQueEhlaWdodCB8fCAwKSAqIHRoaXMuc2NhbGUsCiAgICAgICAgU3RlbVY6IDAKICAgICAgfSk7CiAgICAgIGlmIChpc0NGRikgewogICAgICAgIGRlc2NyaXB0b3IuZGF0YS5Gb250RmlsZTMgPSBmb250RmlsZTsKICAgICAgfSBlbHNlIHsKICAgICAgICBkZXNjcmlwdG9yLmRhdGEuRm9udEZpbGUyID0gZm9udEZpbGU7CiAgICAgIH0KICAgICAgZGVzY3JpcHRvci5lbmQoKTsKICAgICAgZGVzY2VuZGFudEZvbnQgPSB0aGlzLmRvY3VtZW50LnJlZih7CiAgICAgICAgVHlwZTogJ0ZvbnQnLAogICAgICAgIFN1YnR5cGU6IGlzQ0ZGID8gJ0NJREZvbnRUeXBlMCcgOiAnQ0lERm9udFR5cGUyJywKICAgICAgICBCYXNlRm9udDogbmFtZSwKICAgICAgICBDSURTeXN0ZW1JbmZvOiB7CiAgICAgICAgICBSZWdpc3RyeTogbmV3IFN0cmluZygnQWRvYmUnKSwKICAgICAgICAgIE9yZGVyaW5nOiBuZXcgU3RyaW5nKCdJZGVudGl0eScpLAogICAgICAgICAgU3VwcGxlbWVudDogMAogICAgICAgIH0sCiAgICAgICAgRm9udERlc2NyaXB0b3I6IGRlc2NyaXB0b3IsCiAgICAgICAgVzogWzAsIHRoaXMud2lkdGhzXQogICAgICB9KTsKICAgICAgZGVzY2VuZGFudEZvbnQuZW5kKCk7CiAgICAgIHRoaXMuZGljdGlvbmFyeS5kYXRhID0gewogICAgICAgIFR5cGU6ICdGb250JywKICAgICAgICBTdWJ0eXBlOiAnVHlwZTAnLAogICAgICAgIEJhc2VGb250OiBuYW1lLAogICAgICAgIEVuY29kaW5nOiAnSWRlbnRpdHktSCcsCiAgICAgICAgRGVzY2VuZGFudEZvbnRzOiBbZGVzY2VuZGFudEZvbnRdLAogICAgICAgIFRvVW5pY29kZTogdGhpcy50b1VuaWNvZGVDbWFwKCkKICAgICAgfTsKICAgICAgcmV0dXJuIHRoaXMuZGljdGlvbmFyeS5lbmQoKTsKICAgIH07CgogICAgdG9IZXggPSBmdW5jdGlvbigpIHsKICAgICAgdmFyIGNvZGUsIGNvZGVQb2ludHMsIGNvZGVzOwogICAgICBjb2RlUG9pbnRzID0gMSA8PSBhcmd1bWVudHMubGVuZ3RoID8gc2xpY2UuY2FsbChhcmd1bWVudHMsIDApIDogW107CiAgICAgIGNvZGVzID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBqLCBsZW4sIHJlc3VsdHM7CiAgICAgICAgcmVzdWx0cyA9IFtdOwogICAgICAgIGZvciAoaiA9IDAsIGxlbiA9IGNvZGVQb2ludHMubGVuZ3RoOyBqIDwgbGVuOyBqKyspIHsKICAgICAgICAgIGNvZGUgPSBjb2RlUG9pbnRzW2pdOwogICAgICAgICAgcmVzdWx0cy5wdXNoKCgnMDAwMCcgKyBjb2RlLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTQpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICAgIH0pKCk7CiAgICAgIHJldHVybiBjb2Rlcy5qb2luKCcnKTsKICAgIH07CgogICAgRW1iZWRkZWRGb250LnByb3RvdHlwZS50b1VuaWNvZGVDbWFwID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBjbWFwLCBjb2RlUG9pbnRzLCBlbmNvZGVkLCBlbnRyaWVzLCBqLCBrLCBsZW4sIGxlbjEsIHJlZiwgdmFsdWU7CiAgICAgIGNtYXAgPSB0aGlzLmRvY3VtZW50LnJlZigpOwogICAgICBlbnRyaWVzID0gW107CiAgICAgIHJlZiA9IHRoaXMudW5pY29kZTsKICAgICAgZm9yIChqID0gMCwgbGVuID0gcmVmLmxlbmd0aDsgaiA8IGxlbjsgaisrKSB7CiAgICAgICAgY29kZVBvaW50cyA9IHJlZltqXTsKICAgICAgICBlbmNvZGVkID0gW107CiAgICAgICAgZm9yIChrID0gMCwgbGVuMSA9IGNvZGVQb2ludHMubGVuZ3RoOyBrIDwgbGVuMTsgaysrKSB7CiAgICAgICAgICB2YWx1ZSA9IGNvZGVQb2ludHNba107CiAgICAgICAgICBpZiAodmFsdWUgPiAweGZmZmYpIHsKICAgICAgICAgICAgdmFsdWUgLT0gMHgxMDAwMDsKICAgICAgICAgICAgZW5jb2RlZC5wdXNoKHRvSGV4KHZhbHVlID4+PiAxMCAmIDB4M2ZmIHwgMHhkODAwKSk7CiAgICAgICAgICAgIHZhbHVlID0gMHhkYzAwIHwgdmFsdWUgJiAweDNmZjsKICAgICAgICAgIH0KICAgICAgICAgIGVuY29kZWQucHVzaCh0b0hleCh2YWx1ZSkpOwogICAgICAgIH0KICAgICAgICBlbnRyaWVzLnB1c2goIjwiICsgKGVuY29kZWQuam9pbignICcpKSArICI+Iik7CiAgICAgIH0KICAgICAgY21hcC5lbmQoIi9DSURJbml0IC9Qcm9jU2V0IGZpbmRyZXNvdXJjZSBiZWdpblxuMTIgZGljdCBiZWdpblxuYmVnaW5jbWFwXG4vQ0lEU3lzdGVtSW5mbyA8PFxuICAvUmVnaXN0cnkgKEFkb2JlKVxuICAvT3JkZXJpbmcgKFVDUylcbiAgL1N1cHBsZW1lbnQgMFxuPj4gZGVmXG4vQ01hcE5hbWUgL0Fkb2JlLUlkZW50aXR5LVVDUyBkZWZcbi9DTWFwVHlwZSAyIGRlZlxuMSBiZWdpbmNvZGVzcGFjZXJhbmdlXG48MDAwMD48ZmZmZj5cbmVuZGNvZGVzcGFjZXJhbmdlXG4xIGJlZ2luYmZyYW5nZVxuPDAwMDA+IDwiICsgKHRvSGV4KGVudHJpZXMubGVuZ3RoIC0gMSkpICsgIj4gWyIgKyAoZW50cmllcy5qb2luKCcgJykpICsgIl1cbmVuZGJmcmFuZ2VcbmVuZGNtYXBcbkNNYXBOYW1lIGN1cnJlbnRkaWN0IC9DTWFwIGRlZmluZXJlc291cmNlIHBvcFxuZW5kXG5lbmQiKTsKICAgICAgcmV0dXJuIGNtYXA7CiAgICB9OwoKICAgIHJldHVybiBFbWJlZGRlZEZvbnQ7CgogIH0pKFBERkZvbnQpOwoKICBtb2R1bGUuZXhwb3J0cyA9IEVtYmVkZGVkRm9udDsKCn0pLmNhbGwodGhpcyk7CgoKLyoqKi8gfSksCi8qIDI5NSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgooZnVuY3Rpb24oKSB7CiAgdmFyIExpbmVXcmFwcGVyLCBudW1iZXI7CgogIExpbmVXcmFwcGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygyOTYpOwoKICBudW1iZXIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDI2KS5udW1iZXI7CgogIG1vZHVsZS5leHBvcnRzID0gewogICAgaW5pdFRleHQ6IGZ1bmN0aW9uKCkgewogICAgICB0aGlzLnggPSAwOwogICAgICB0aGlzLnkgPSAwOwogICAgICByZXR1cm4gdGhpcy5fbGluZUdhcCA9IDA7CiAgICB9LAogICAgbGluZUdhcDogZnVuY3Rpb24oX2xpbmVHYXApIHsKICAgICAgdGhpcy5fbGluZUdhcCA9IF9saW5lR2FwOwogICAgICByZXR1cm4gdGhpczsKICAgIH0sCiAgICBtb3ZlRG93bjogZnVuY3Rpb24obGluZXMpIHsKICAgICAgaWYgKGxpbmVzID09IG51bGwpIHsKICAgICAgICBsaW5lcyA9IDE7CiAgICAgIH0KICAgICAgdGhpcy55ICs9IHRoaXMuY3VycmVudExpbmVIZWlnaHQodHJ1ZSkgKiBsaW5lcyArIHRoaXMuX2xpbmVHYXA7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIG1vdmVVcDogZnVuY3Rpb24obGluZXMpIHsKICAgICAgaWYgKGxpbmVzID09IG51bGwpIHsKICAgICAgICBsaW5lcyA9IDE7CiAgICAgIH0KICAgICAgdGhpcy55IC09IHRoaXMuY3VycmVudExpbmVIZWlnaHQodHJ1ZSkgKiBsaW5lcyArIHRoaXMuX2xpbmVHYXA7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIF90ZXh0OiBmdW5jdGlvbih0ZXh0LCB4LCB5LCBvcHRpb25zLCBsaW5lQ2FsbGJhY2spIHsKICAgICAgdmFyIGosIGxlbiwgbGluZSwgcmVmLCB3cmFwcGVyOwogICAgICBvcHRpb25zID0gdGhpcy5faW5pdE9wdGlvbnMoeCwgeSwgb3B0aW9ucyk7CiAgICAgIHRleHQgPSB0ZXh0ID09IG51bGwgPyAnJyA6ICcnICsgdGV4dDsKICAgICAgaWYgKG9wdGlvbnMud29yZFNwYWNpbmcpIHsKICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9cc3syLH0vZywgJyAnKTsKICAgICAgfQogICAgICBpZiAob3B0aW9ucy53aWR0aCkgewogICAgICAgIHdyYXBwZXIgPSB0aGlzLl93cmFwcGVyOwogICAgICAgIGlmICghd3JhcHBlcikgewogICAgICAgICAgd3JhcHBlciA9IG5ldyBMaW5lV3JhcHBlcih0aGlzLCBvcHRpb25zKTsKICAgICAgICAgIHdyYXBwZXIub24oJ2xpbmUnLCBsaW5lQ2FsbGJhY2spOwogICAgICAgIH0KICAgICAgICB0aGlzLl93cmFwcGVyID0gb3B0aW9ucy5jb250aW51ZWQgPyB3cmFwcGVyIDogbnVsbDsKICAgICAgICB0aGlzLl90ZXh0T3B0aW9ucyA9IG9wdGlvbnMuY29udGludWVkID8gb3B0aW9ucyA6IG51bGw7CiAgICAgICAgd3JhcHBlci53cmFwKHRleHQsIG9wdGlvbnMpOwogICAgICB9IGVsc2UgewogICAgICAgIHJlZiA9IHRleHQuc3BsaXQoJ1xuJyk7CiAgICAgICAgZm9yIChqID0gMCwgbGVuID0gcmVmLmxlbmd0aDsgaiA8IGxlbjsgaisrKSB7CiAgICAgICAgICBsaW5lID0gcmVmW2pdOwogICAgICAgICAgbGluZUNhbGxiYWNrKGxpbmUsIG9wdGlvbnMpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdGhpczsKICAgIH0sCiAgICB0ZXh0OiBmdW5jdGlvbih0ZXh0LCB4LCB5LCBvcHRpb25zKSB7CiAgICAgIHJldHVybiB0aGlzLl90ZXh0KHRleHQsIHgsIHksIG9wdGlvbnMsIHRoaXMuX2xpbmUuYmluZCh0aGlzKSk7CiAgICB9LAogICAgd2lkdGhPZlN0cmluZzogZnVuY3Rpb24oc3RyaW5nLCBvcHRpb25zKSB7CiAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHsKICAgICAgICBvcHRpb25zID0ge307CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuX2ZvbnQud2lkdGhPZlN0cmluZyhzdHJpbmcsIHRoaXMuX2ZvbnRTaXplLCBvcHRpb25zLmZlYXR1cmVzKSArIChvcHRpb25zLmNoYXJhY3RlclNwYWNpbmcgfHwgMCkgKiAoc3RyaW5nLmxlbmd0aCAtIDEpOwogICAgfSwKICAgIGhlaWdodE9mU3RyaW5nOiBmdW5jdGlvbih0ZXh0LCBvcHRpb25zKSB7CiAgICAgIHZhciBoZWlnaHQsIGxpbmVHYXAsIHJlZiwgeCwgeTsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICByZWYgPSB0aGlzLCB4ID0gcmVmLngsIHkgPSByZWYueTsKICAgICAgb3B0aW9ucyA9IHRoaXMuX2luaXRPcHRpb25zKG9wdGlvbnMpOwogICAgICBvcHRpb25zLmhlaWdodCA9IDJlMzA4OwogICAgICBsaW5lR2FwID0gb3B0aW9ucy5saW5lR2FwIHx8IHRoaXMuX2xpbmVHYXAgfHwgMDsKICAgICAgdGhpcy5fdGV4dCh0ZXh0LCB0aGlzLngsIHRoaXMueSwgb3B0aW9ucywgKGZ1bmN0aW9uKF90aGlzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGxpbmUsIG9wdGlvbnMpIHsKICAgICAgICAgIHJldHVybiBfdGhpcy55ICs9IF90aGlzLmN1cnJlbnRMaW5lSGVpZ2h0KHRydWUpICsgbGluZUdhcDsKICAgICAgICB9OwogICAgICB9KSh0aGlzKSk7CiAgICAgIGhlaWdodCA9IHRoaXMueSAtIHk7CiAgICAgIHRoaXMueCA9IHg7CiAgICAgIHRoaXMueSA9IHk7CiAgICAgIHJldHVybiBoZWlnaHQ7CiAgICB9LAogICAgbGlzdDogZnVuY3Rpb24obGlzdCwgeCwgeSwgb3B0aW9ucywgd3JhcHBlcikgewogICAgICB2YXIgZmxhdHRlbiwgaSwgaW5kZW50LCBpdGVtSW5kZW50LCBpdGVtcywgbGV2ZWwsIGxldmVscywgbWlkTGluZSwgcjsKICAgICAgb3B0aW9ucyA9IHRoaXMuX2luaXRPcHRpb25zKHgsIHksIG9wdGlvbnMpOwogICAgICBtaWRMaW5lID0gTWF0aC5yb3VuZCgodGhpcy5fZm9udC5hc2NlbmRlciAvIDEwMDAgKiB0aGlzLl9mb250U2l6ZSkgLyAyKTsKICAgICAgciA9IG9wdGlvbnMuYnVsbGV0UmFkaXVzIHx8IE1hdGgucm91bmQoKHRoaXMuX2ZvbnQuYXNjZW5kZXIgLyAxMDAwICogdGhpcy5fZm9udFNpemUpIC8gMyk7CiAgICAgIGluZGVudCA9IG9wdGlvbnMudGV4dEluZGVudCB8fCByICogNTsKICAgICAgaXRlbUluZGVudCA9IG9wdGlvbnMuYnVsbGV0SW5kZW50IHx8IHIgKiA4OwogICAgICBsZXZlbCA9IDE7CiAgICAgIGl0ZW1zID0gW107CiAgICAgIGxldmVscyA9IFtdOwogICAgICBmbGF0dGVuID0gZnVuY3Rpb24obGlzdCkgewogICAgICAgIHZhciBpLCBpdGVtLCBqLCBsZW4sIHJlc3VsdHM7CiAgICAgICAgcmVzdWx0cyA9IFtdOwogICAgICAgIGZvciAoaSA9IGogPSAwLCBsZW4gPSBsaXN0Lmxlbmd0aDsgaiA8IGxlbjsgaSA9ICsraikgewogICAgICAgICAgaXRlbSA9IGxpc3RbaV07CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShpdGVtKSkgewogICAgICAgICAgICBsZXZlbCsrOwogICAgICAgICAgICBmbGF0dGVuKGl0ZW0pOwogICAgICAgICAgICByZXN1bHRzLnB1c2gobGV2ZWwtLSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pOwogICAgICAgICAgICByZXN1bHRzLnB1c2gobGV2ZWxzLnB1c2gobGV2ZWwpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICAgIH07CiAgICAgIGZsYXR0ZW4obGlzdCk7CiAgICAgIHdyYXBwZXIgPSBuZXcgTGluZVdyYXBwZXIodGhpcywgb3B0aW9ucyk7CiAgICAgIHdyYXBwZXIub24oJ2xpbmUnLCB0aGlzLl9saW5lLmJpbmQodGhpcykpOwogICAgICBsZXZlbCA9IDE7CiAgICAgIGkgPSAwOwogICAgICB3cmFwcGVyLm9uKCdmaXJzdExpbmUnLCAoZnVuY3Rpb24oX3RoaXMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZGlmZiwgbDsKICAgICAgICAgIGlmICgobCA9IGxldmVsc1tpKytdKSAhPT0gbGV2ZWwpIHsKICAgICAgICAgICAgZGlmZiA9IGl0ZW1JbmRlbnQgKiAobCAtIGxldmVsKTsKICAgICAgICAgICAgX3RoaXMueCArPSBkaWZmOwogICAgICAgICAgICB3cmFwcGVyLmxpbmVXaWR0aCAtPSBkaWZmOwogICAgICAgICAgICBsZXZlbCA9IGw7CiAgICAgICAgICB9CiAgICAgICAgICBfdGhpcy5jaXJjbGUoX3RoaXMueCAtIGluZGVudCArIHIsIF90aGlzLnkgKyBtaWRMaW5lLCByKTsKICAgICAgICAgIHJldHVybiBfdGhpcy5maWxsKCk7CiAgICAgICAgfTsKICAgICAgfSkodGhpcykpOwogICAgICB3cmFwcGVyLm9uKCdzZWN0aW9uU3RhcnQnLCAoZnVuY3Rpb24oX3RoaXMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgcG9zOwogICAgICAgICAgcG9zID0gaW5kZW50ICsgaXRlbUluZGVudCAqIChsZXZlbCAtIDEpOwogICAgICAgICAgX3RoaXMueCArPSBwb3M7CiAgICAgICAgICByZXR1cm4gd3JhcHBlci5saW5lV2lkdGggLT0gcG9zOwogICAgICAgIH07CiAgICAgIH0pKHRoaXMpKTsKICAgICAgd3JhcHBlci5vbignc2VjdGlvbkVuZCcsIChmdW5jdGlvbihfdGhpcykgewogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBwb3M7CiAgICAgICAgICBwb3MgPSBpbmRlbnQgKyBpdGVtSW5kZW50ICogKGxldmVsIC0gMSk7CiAgICAgICAgICBfdGhpcy54IC09IHBvczsKICAgICAgICAgIHJldHVybiB3cmFwcGVyLmxpbmVXaWR0aCArPSBwb3M7CiAgICAgICAgfTsKICAgICAgfSkodGhpcykpOwogICAgICB3cmFwcGVyLndyYXAoaXRlbXMuam9pbignXG4nKSwgb3B0aW9ucyk7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIF9pbml0T3B0aW9uczogZnVuY3Rpb24oeCwgeSwgb3B0aW9ucykgewogICAgICB2YXIga2V5LCByZWYsIHZhbDsKICAgICAgaWYgKHggPT0gbnVsbCkgewogICAgICAgIHggPSB7fTsKICAgICAgfQogICAgICBpZiAob3B0aW9ucyA9PSBudWxsKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgeCA9PT0gJ29iamVjdCcpIHsKICAgICAgICBvcHRpb25zID0geDsKICAgICAgICB4ID0gbnVsbDsKICAgICAgfQogICAgICBvcHRpb25zID0gKGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBrLCBvcHRzLCB2OwogICAgICAgIG9wdHMgPSB7fTsKICAgICAgICBmb3IgKGsgaW4gb3B0aW9ucykgewogICAgICAgICAgdiA9IG9wdGlvbnNba107CiAgICAgICAgICBvcHRzW2tdID0gdjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG9wdHM7CiAgICAgIH0pKCk7CiAgICAgIGlmICh0aGlzLl90ZXh0T3B0aW9ucykgewogICAgICAgIHJlZiA9IHRoaXMuX3RleHRPcHRpb25zOwogICAgICAgIGZvciAoa2V5IGluIHJlZikgewogICAgICAgICAgdmFsID0gcmVmW2tleV07CiAgICAgICAgICBpZiAoa2V5ICE9PSAnY29udGludWVkJykgewogICAgICAgICAgICBpZiAob3B0aW9uc1trZXldID09IG51bGwpIHsKICAgICAgICAgICAgICBvcHRpb25zW2tleV0gPSB2YWw7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHggIT0gbnVsbCkgewogICAgICAgIHRoaXMueCA9IHg7CiAgICAgIH0KICAgICAgaWYgKHkgIT0gbnVsbCkgewogICAgICAgIHRoaXMueSA9IHk7CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMubGluZUJyZWFrICE9PSBmYWxzZSkgewogICAgICAgIGlmIChvcHRpb25zLndpZHRoID09IG51bGwpIHsKICAgICAgICAgIG9wdGlvbnMud2lkdGggPSB0aGlzLnBhZ2Uud2lkdGggLSB0aGlzLnggLSB0aGlzLnBhZ2UubWFyZ2lucy5yaWdodDsKICAgICAgICB9CiAgICAgIH0KICAgICAgb3B0aW9ucy5jb2x1bW5zIHx8IChvcHRpb25zLmNvbHVtbnMgPSAwKTsKICAgICAgaWYgKG9wdGlvbnMuY29sdW1uR2FwID09IG51bGwpIHsKICAgICAgICBvcHRpb25zLmNvbHVtbkdhcCA9IDE4OwogICAgICB9CiAgICAgIHJldHVybiBvcHRpb25zOwogICAgfSwKICAgIF9saW5lOiBmdW5jdGlvbih0ZXh0LCBvcHRpb25zLCB3cmFwcGVyKSB7CiAgICAgIHZhciBsaW5lR2FwOwogICAgICBpZiAob3B0aW9ucyA9PSBudWxsKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIHRoaXMuX2ZyYWdtZW50KHRleHQsIHRoaXMueCwgdGhpcy55LCBvcHRpb25zKTsKICAgICAgbGluZUdhcCA9IG9wdGlvbnMubGluZUdhcCB8fCB0aGlzLl9saW5lR2FwIHx8IDA7CiAgICAgIGlmICghd3JhcHBlcikgewogICAgICAgIHJldHVybiB0aGlzLnggKz0gdGhpcy53aWR0aE9mU3RyaW5nKHRleHQpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB0aGlzLnkgKz0gdGhpcy5jdXJyZW50TGluZUhlaWdodCh0cnVlKSArIGxpbmVHYXA7CiAgICAgIH0KICAgIH0sCiAgICBfZnJhZ21lbnQ6IGZ1bmN0aW9uKHRleHQsIHgsIHksIG9wdGlvbnMpIHsKICAgICAgdmFyIGFkZFNlZ21lbnQsIGFsaWduLCBiYXNlLCBjaGFyYWN0ZXJTcGFjaW5nLCBjb21tYW5kcywgZCwgZW5jb2RlZCwgZW5jb2RlZFdvcmQsIGZsdXNoLCBoYWRPZmZzZXQsIGksIGosIGtleSwgbGFzdCwgbGVuLCBsZW4xLCBsaW5lV2lkdGgsIGxpbmVZLCBtLCBtb2RlLCBuYW1lLCBwb3MsIHBvc2l0aW9ucywgcG9zaXRpb25zV29yZCwgcmVmLCByZWYxLCByZWYyLCByZW5kZXJlZFdpZHRoLCBzY2FsZSwgc3BhY2UsIHNwYWNlV2lkdGgsIHRleHRXaWR0aCwgdmFsLCB3b3JkLCB3b3JkU3BhY2luZywgd29yZHM7CiAgICAgIHRleHQgPSAoJycgKyB0ZXh0KS5yZXBsYWNlKC9cbi9nLCAnJyk7CiAgICAgIGlmICh0ZXh0Lmxlbmd0aCA9PT0gMCkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBhbGlnbiA9IG9wdGlvbnMuYWxpZ24gfHwgJ2xlZnQnOwogICAgICB3b3JkU3BhY2luZyA9IG9wdGlvbnMud29yZFNwYWNpbmcgfHwgMDsKICAgICAgY2hhcmFjdGVyU3BhY2luZyA9IG9wdGlvbnMuY2hhcmFjdGVyU3BhY2luZyB8fCAwOwogICAgICBpZiAob3B0aW9ucy53aWR0aCkgewogICAgICAgIHN3aXRjaCAoYWxpZ24pIHsKICAgICAgICAgIGNhc2UgJ3JpZ2h0JzoKICAgICAgICAgICAgdGV4dFdpZHRoID0gdGhpcy53aWR0aE9mU3RyaW5nKHRleHQucmVwbGFjZSgvXHMrJC8sICcnKSwgb3B0aW9ucyk7CiAgICAgICAgICAgIHggKz0gb3B0aW9ucy5saW5lV2lkdGggLSB0ZXh0V2lkdGg7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnY2VudGVyJzoKICAgICAgICAgICAgeCArPSBvcHRpb25zLmxpbmVXaWR0aCAvIDIgLSBvcHRpb25zLnRleHRXaWR0aCAvIDI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnanVzdGlmeSc6CiAgICAgICAgICAgIHdvcmRzID0gdGV4dC50cmltKCkuc3BsaXQoL1xzKy8pOwogICAgICAgICAgICB0ZXh0V2lkdGggPSB0aGlzLndpZHRoT2ZTdHJpbmcodGV4dC5yZXBsYWNlKC9ccysvZywgJycpLCBvcHRpb25zKTsKICAgICAgICAgICAgc3BhY2VXaWR0aCA9IHRoaXMud2lkdGhPZlN0cmluZygnICcpICsgY2hhcmFjdGVyU3BhY2luZzsKICAgICAgICAgICAgd29yZFNwYWNpbmcgPSBNYXRoLm1heCgwLCAob3B0aW9ucy5saW5lV2lkdGggLSB0ZXh0V2lkdGgpIC8gTWF0aC5tYXgoMSwgd29yZHMubGVuZ3RoIC0gMSkgLSBzcGFjZVdpZHRoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmVuZGVyZWRXaWR0aCA9IG9wdGlvbnMudGV4dFdpZHRoICsgKHdvcmRTcGFjaW5nICogKG9wdGlvbnMud29yZENvdW50IC0gMSkpICsgKGNoYXJhY3RlclNwYWNpbmcgKiAodGV4dC5sZW5ndGggLSAxKSk7CiAgICAgIGlmIChvcHRpb25zLmxpbmspIHsKICAgICAgICB0aGlzLmxpbmsoeCwgeSwgcmVuZGVyZWRXaWR0aCwgdGhpcy5jdXJyZW50TGluZUhlaWdodCgpLCBvcHRpb25zLmxpbmspOwogICAgICB9CiAgICAgIGlmIChvcHRpb25zLnVuZGVybGluZSB8fCBvcHRpb25zLnN0cmlrZSkgewogICAgICAgIHRoaXMuc2F2ZSgpOwogICAgICAgIGlmICghb3B0aW9ucy5zdHJva2UpIHsKICAgICAgICAgIHRoaXMuc3Ryb2tlQ29sb3IuYXBwbHkodGhpcywgdGhpcy5fZmlsbENvbG9yKTsKICAgICAgICB9CiAgICAgICAgbGluZVdpZHRoID0gdGhpcy5fZm9udFNpemUgPCAxMCA/IDAuNSA6IE1hdGguZmxvb3IodGhpcy5fZm9udFNpemUgLyAxMCk7CiAgICAgICAgdGhpcy5saW5lV2lkdGgobGluZVdpZHRoKTsKICAgICAgICBkID0gb3B0aW9ucy51bmRlcmxpbmUgPyAxIDogMjsKICAgICAgICBsaW5lWSA9IHkgKyB0aGlzLmN1cnJlbnRMaW5lSGVpZ2h0KCkgLyBkOwogICAgICAgIGlmIChvcHRpb25zLnVuZGVybGluZSkgewogICAgICAgICAgbGluZVkgLT0gbGluZVdpZHRoOwogICAgICAgIH0KICAgICAgICB0aGlzLm1vdmVUbyh4LCBsaW5lWSk7CiAgICAgICAgdGhpcy5saW5lVG8oeCArIHJlbmRlcmVkV2lkdGgsIGxpbmVZKTsKICAgICAgICB0aGlzLnN0cm9rZSgpOwogICAgICAgIHRoaXMucmVzdG9yZSgpOwogICAgICB9CiAgICAgIHRoaXMuc2F2ZSgpOwogICAgICB0aGlzLnRyYW5zZm9ybSgxLCAwLCAwLCAtMSwgMCwgdGhpcy5wYWdlLmhlaWdodCk7CiAgICAgIHkgPSB0aGlzLnBhZ2UuaGVpZ2h0IC0geSAtICh0aGlzLl9mb250LmFzY2VuZGVyIC8gMTAwMCAqIHRoaXMuX2ZvbnRTaXplKTsKICAgICAgaWYgKChiYXNlID0gdGhpcy5wYWdlLmZvbnRzKVtuYW1lID0gdGhpcy5fZm9udC5pZF0gPT0gbnVsbCkgewogICAgICAgIGJhc2VbbmFtZV0gPSB0aGlzLl9mb250LnJlZigpOwogICAgICB9CiAgICAgIHRoaXMuYWRkQ29udGVudCgiQlQiKTsKICAgICAgdGhpcy5hZGRDb250ZW50KCIxIDAgMCAxICIgKyAobnVtYmVyKHgpKSArICIgIiArIChudW1iZXIoeSkpICsgIiBUbSIpOwogICAgICB0aGlzLmFkZENvbnRlbnQoIi8iICsgdGhpcy5fZm9udC5pZCArICIgIiArIChudW1iZXIodGhpcy5fZm9udFNpemUpKSArICIgVGYiKTsKICAgICAgbW9kZSA9IG9wdGlvbnMuZmlsbCAmJiBvcHRpb25zLnN0cm9rZSA/IDIgOiBvcHRpb25zLnN0cm9rZSA/IDEgOiAwOwogICAgICBpZiAobW9kZSkgewogICAgICAgIHRoaXMuYWRkQ29udGVudChtb2RlICsgIiBUciIpOwogICAgICB9CiAgICAgIGlmIChjaGFyYWN0ZXJTcGFjaW5nKSB7CiAgICAgICAgdGhpcy5hZGRDb250ZW50KChudW1iZXIoY2hhcmFjdGVyU3BhY2luZykpICsgIiBUYyIpOwogICAgICB9CiAgICAgIGlmICh3b3JkU3BhY2luZykgewogICAgICAgIHdvcmRzID0gdGV4dC50cmltKCkuc3BsaXQoL1xzKy8pOwogICAgICAgIHdvcmRTcGFjaW5nICs9IHRoaXMud2lkdGhPZlN0cmluZygnICcpICsgY2hhcmFjdGVyU3BhY2luZzsKICAgICAgICB3b3JkU3BhY2luZyAqPSAxMDAwIC8gdGhpcy5fZm9udFNpemU7CiAgICAgICAgZW5jb2RlZCA9IFtdOwogICAgICAgIHBvc2l0aW9ucyA9IFtdOwogICAgICAgIGZvciAoaiA9IDAsIGxlbiA9IHdvcmRzLmxlbmd0aDsgaiA8IGxlbjsgaisrKSB7CiAgICAgICAgICB3b3JkID0gd29yZHNbal07CiAgICAgICAgICByZWYgPSB0aGlzLl9mb250LmVuY29kZSh3b3JkLCBvcHRpb25zLmZlYXR1cmVzKSwgZW5jb2RlZFdvcmQgPSByZWZbMF0sIHBvc2l0aW9uc1dvcmQgPSByZWZbMV07CiAgICAgICAgICBlbmNvZGVkLnB1c2guYXBwbHkoZW5jb2RlZCwgZW5jb2RlZFdvcmQpOwogICAgICAgICAgcG9zaXRpb25zLnB1c2guYXBwbHkocG9zaXRpb25zLCBwb3NpdGlvbnNXb3JkKTsKICAgICAgICAgIHNwYWNlID0ge307CiAgICAgICAgICByZWYxID0gcG9zaXRpb25zW3Bvc2l0aW9ucy5sZW5ndGggLSAxXTsKICAgICAgICAgIGZvciAoa2V5IGluIHJlZjEpIHsKICAgICAgICAgICAgdmFsID0gcmVmMVtrZXldOwogICAgICAgICAgICBzcGFjZVtrZXldID0gdmFsOwogICAgICAgICAgfQogICAgICAgICAgc3BhY2UueEFkdmFuY2UgKz0gd29yZFNwYWNpbmc7CiAgICAgICAgICBwb3NpdGlvbnNbcG9zaXRpb25zLmxlbmd0aCAtIDFdID0gc3BhY2U7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHJlZjIgPSB0aGlzLl9mb250LmVuY29kZSh0ZXh0LCBvcHRpb25zLmZlYXR1cmVzKSwgZW5jb2RlZCA9IHJlZjJbMF0sIHBvc2l0aW9ucyA9IHJlZjJbMV07CiAgICAgIH0KICAgICAgc2NhbGUgPSB0aGlzLl9mb250U2l6ZSAvIDEwMDA7CiAgICAgIGNvbW1hbmRzID0gW107CiAgICAgIGxhc3QgPSAwOwogICAgICBoYWRPZmZzZXQgPSBmYWxzZTsKICAgICAgYWRkU2VnbWVudCA9IChmdW5jdGlvbihfdGhpcykgewogICAgICAgIHJldHVybiBmdW5jdGlvbihjdXIpIHsKICAgICAgICAgIHZhciBhZHZhbmNlLCBoZXg7CiAgICAgICAgICBpZiAobGFzdCA8IGN1cikgewogICAgICAgICAgICBoZXggPSBlbmNvZGVkLnNsaWNlKGxhc3QsIGN1cikuam9pbignJyk7CiAgICAgICAgICAgIGFkdmFuY2UgPSBwb3NpdGlvbnNbY3VyIC0gMV0ueEFkdmFuY2UgLSBwb3NpdGlvbnNbY3VyIC0gMV0uYWR2YW5jZVdpZHRoOwogICAgICAgICAgICBjb21tYW5kcy5wdXNoKCI8IiArIGhleCArICI+ICIgKyAobnVtYmVyKC1hZHZhbmNlKSkpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGxhc3QgPSBjdXI7CiAgICAgICAgfTsKICAgICAgfSkodGhpcyk7CiAgICAgIGZsdXNoID0gKGZ1bmN0aW9uKF90aGlzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKGkpIHsKICAgICAgICAgIGFkZFNlZ21lbnQoaSk7CiAgICAgICAgICBpZiAoY29tbWFuZHMubGVuZ3RoID4gMCkgewogICAgICAgICAgICBfdGhpcy5hZGRDb250ZW50KCJbIiArIChjb21tYW5kcy5qb2luKCcgJykpICsgIl0gVEoiKTsKICAgICAgICAgICAgcmV0dXJuIGNvbW1hbmRzLmxlbmd0aCA9IDA7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSkodGhpcyk7CiAgICAgIGZvciAoaSA9IG0gPSAwLCBsZW4xID0gcG9zaXRpb25zLmxlbmd0aDsgbSA8IGxlbjE7IGkgPSArK20pIHsKICAgICAgICBwb3MgPSBwb3NpdGlvbnNbaV07CiAgICAgICAgaWYgKHBvcy54T2Zmc2V0IHx8IHBvcy55T2Zmc2V0KSB7CiAgICAgICAgICBmbHVzaChpKTsKICAgICAgICAgIHRoaXMuYWRkQ29udGVudCgiMSAwIDAgMSAiICsgKG51bWJlcih4ICsgcG9zLnhPZmZzZXQgKiBzY2FsZSkpICsgIiAiICsgKG51bWJlcih5ICsgcG9zLnlPZmZzZXQgKiBzY2FsZSkpICsgIiBUbSIpOwogICAgICAgICAgZmx1c2goaSArIDEpOwogICAgICAgICAgaGFkT2Zmc2V0ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKGhhZE9mZnNldCkgewogICAgICAgICAgICB0aGlzLmFkZENvbnRlbnQoIjEgMCAwIDEgIiArIChudW1iZXIoeCkpICsgIiAiICsgKG51bWJlcih5KSkgKyAiIFRtIik7CiAgICAgICAgICAgIGhhZE9mZnNldCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBvcy54QWR2YW5jZSAtIHBvcy5hZHZhbmNlV2lkdGggIT09IDApIHsKICAgICAgICAgICAgYWRkU2VnbWVudChpICsgMSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHggKz0gcG9zLnhBZHZhbmNlICogc2NhbGU7CiAgICAgIH0KICAgICAgZmx1c2goaSk7CiAgICAgIHRoaXMuYWRkQ29udGVudCgiRVQiKTsKICAgICAgcmV0dXJuIHRoaXMucmVzdG9yZSgpOwogICAgfQogIH07Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAyOTYgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjEyLjYKKGZ1bmN0aW9uKCkgewogIHZhciBFdmVudEVtaXR0ZXIsIExpbmVCcmVha2VyLCBMaW5lV3JhcHBlciwKICAgIGV4dGVuZCA9IGZ1bmN0aW9uKGNoaWxkLCBwYXJlbnQpIHsgZm9yICh2YXIga2V5IGluIHBhcmVudCkgeyBpZiAoaGFzUHJvcC5jYWxsKHBhcmVudCwga2V5KSkgY2hpbGRba2V5XSA9IHBhcmVudFtrZXldOyB9IGZ1bmN0aW9uIGN0b3IoKSB7IHRoaXMuY29uc3RydWN0b3IgPSBjaGlsZDsgfSBjdG9yLnByb3RvdHlwZSA9IHBhcmVudC5wcm90b3R5cGU7IGNoaWxkLnByb3RvdHlwZSA9IG5ldyBjdG9yKCk7IGNoaWxkLl9fc3VwZXJfXyA9IHBhcmVudC5wcm90b3R5cGU7IHJldHVybiBjaGlsZDsgfSwKICAgIGhhc1Byb3AgPSB7fS5oYXNPd25Qcm9wZXJ0eTsKCiAgRXZlbnRFbWl0dGVyID0gX193ZWJwYWNrX3JlcXVpcmVfXygzMSkuRXZlbnRFbWl0dGVyOwoKICBMaW5lQnJlYWtlciA9IF9fd2VicGFja19yZXF1aXJlX18oNzgpOwoKICBMaW5lV3JhcHBlciA9IChmdW5jdGlvbihzdXBlckNsYXNzKSB7CiAgICBleHRlbmQoTGluZVdyYXBwZXIsIHN1cGVyQ2xhc3MpOwoKICAgIGZ1bmN0aW9uIExpbmVXcmFwcGVyKGRvY3VtZW50LCBvcHRpb25zKSB7CiAgICAgIHZhciByZWY7CiAgICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDsKICAgICAgdGhpcy5pbmRlbnQgPSBvcHRpb25zLmluZGVudCB8fCAwOwogICAgICB0aGlzLmNoYXJhY3RlclNwYWNpbmcgPSBvcHRpb25zLmNoYXJhY3RlclNwYWNpbmcgfHwgMDsKICAgICAgdGhpcy53b3JkU3BhY2luZyA9IG9wdGlvbnMud29yZFNwYWNpbmcgPT09IDA7CiAgICAgIHRoaXMuY29sdW1ucyA9IG9wdGlvbnMuY29sdW1ucyB8fCAxOwogICAgICB0aGlzLmNvbHVtbkdhcCA9IChyZWYgPSBvcHRpb25zLmNvbHVtbkdhcCkgIT0gbnVsbCA/IHJlZiA6IDE4OwogICAgICB0aGlzLmxpbmVXaWR0aCA9IChvcHRpb25zLndpZHRoIC0gKHRoaXMuY29sdW1uR2FwICogKHRoaXMuY29sdW1ucyAtIDEpKSkgLyB0aGlzLmNvbHVtbnM7CiAgICAgIHRoaXMuc3BhY2VMZWZ0ID0gdGhpcy5saW5lV2lkdGg7CiAgICAgIHRoaXMuc3RhcnRYID0gdGhpcy5kb2N1bWVudC54OwogICAgICB0aGlzLnN0YXJ0WSA9IHRoaXMuZG9jdW1lbnQueTsKICAgICAgdGhpcy5jb2x1bW4gPSAxOwogICAgICB0aGlzLmVsbGlwc2lzID0gb3B0aW9ucy5lbGxpcHNpczsKICAgICAgdGhpcy5jb250aW51ZWRYID0gMDsKICAgICAgdGhpcy5mZWF0dXJlcyA9IG9wdGlvbnMuZmVhdHVyZXM7CiAgICAgIGlmIChvcHRpb25zLmhlaWdodCAhPSBudWxsKSB7CiAgICAgICAgdGhpcy5oZWlnaHQgPSBvcHRpb25zLmhlaWdodDsKICAgICAgICB0aGlzLm1heFkgPSB0aGlzLnN0YXJ0WSArIG9wdGlvbnMuaGVpZ2h0OwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMubWF4WSA9IHRoaXMuZG9jdW1lbnQucGFnZS5tYXhZKCk7CiAgICAgIH0KICAgICAgdGhpcy5vbignZmlyc3RMaW5lJywgKGZ1bmN0aW9uKF90aGlzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKG9wdGlvbnMpIHsKICAgICAgICAgIHZhciBpbmRlbnQ7CiAgICAgICAgICBpbmRlbnQgPSBfdGhpcy5jb250aW51ZWRYIHx8IF90aGlzLmluZGVudDsKICAgICAgICAgIF90aGlzLmRvY3VtZW50LnggKz0gaW5kZW50OwogICAgICAgICAgX3RoaXMubGluZVdpZHRoIC09IGluZGVudDsKICAgICAgICAgIHJldHVybiBfdGhpcy5vbmNlKCdsaW5lJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF90aGlzLmRvY3VtZW50LnggLT0gaW5kZW50OwogICAgICAgICAgICBfdGhpcy5saW5lV2lkdGggKz0gaW5kZW50OwogICAgICAgICAgICBpZiAob3B0aW9ucy5jb250aW51ZWQgJiYgIV90aGlzLmNvbnRpbnVlZFgpIHsKICAgICAgICAgICAgICBfdGhpcy5jb250aW51ZWRYID0gX3RoaXMuaW5kZW50OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghb3B0aW9ucy5jb250aW51ZWQpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuY29udGludWVkWCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgIH0pKHRoaXMpKTsKICAgICAgdGhpcy5vbignbGFzdExpbmUnLCAoZnVuY3Rpb24oX3RoaXMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24ob3B0aW9ucykgewogICAgICAgICAgdmFyIGFsaWduOwogICAgICAgICAgYWxpZ24gPSBvcHRpb25zLmFsaWduOwogICAgICAgICAgaWYgKGFsaWduID09PSAnanVzdGlmeScpIHsKICAgICAgICAgICAgb3B0aW9ucy5hbGlnbiA9ICdsZWZ0JzsKICAgICAgICAgIH0KICAgICAgICAgIF90aGlzLmxhc3RMaW5lID0gdHJ1ZTsKICAgICAgICAgIHJldHVybiBfdGhpcy5vbmNlKCdsaW5lJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIF90aGlzLmRvY3VtZW50LnkgKz0gb3B0aW9ucy5wYXJhZ3JhcGhHYXAgfHwgMDsKICAgICAgICAgICAgb3B0aW9ucy5hbGlnbiA9IGFsaWduOwogICAgICAgICAgICByZXR1cm4gX3RoaXMubGFzdExpbmUgPSBmYWxzZTsKICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgIH0pKHRoaXMpKTsKICAgIH0KCiAgICBMaW5lV3JhcHBlci5wcm90b3R5cGUud29yZFdpZHRoID0gZnVuY3Rpb24od29yZCkgewogICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC53aWR0aE9mU3RyaW5nKHdvcmQsIHRoaXMpICsgdGhpcy5jaGFyYWN0ZXJTcGFjaW5nICsgdGhpcy53b3JkU3BhY2luZzsKICAgIH07CgogICAgTGluZVdyYXBwZXIucHJvdG90eXBlLmVhY2hXb3JkID0gZnVuY3Rpb24odGV4dCwgZm4pIHsKICAgICAgdmFyIGJrLCBicmVha2VyLCBmYmssIGwsIGxhc3QsIGxiaywgc2hvdWxkQ29udGludWUsIHcsIHdvcmQsIHdvcmRXaWR0aHM7CiAgICAgIGJyZWFrZXIgPSBuZXcgTGluZUJyZWFrZXIodGV4dCk7CiAgICAgIGxhc3QgPSBudWxsOwogICAgICB3b3JkV2lkdGhzID0gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgICAgd2hpbGUgKGJrID0gYnJlYWtlci5uZXh0QnJlYWsoKSkgewogICAgICAgIHdvcmQgPSB0ZXh0LnNsaWNlKChsYXN0ICE9IG51bGwgPyBsYXN0LnBvc2l0aW9uIDogdm9pZCAwKSB8fCAwLCBiay5wb3NpdGlvbik7CiAgICAgICAgdyA9IHdvcmRXaWR0aHNbd29yZF0gIT0gbnVsbCA/IHdvcmRXaWR0aHNbd29yZF0gOiB3b3JkV2lkdGhzW3dvcmRdID0gdGhpcy53b3JkV2lkdGgod29yZCk7CiAgICAgICAgaWYgKHcgPiB0aGlzLmxpbmVXaWR0aCArIHRoaXMuY29udGludWVkWCkgewogICAgICAgICAgbGJrID0gbGFzdDsKICAgICAgICAgIGZiayA9IHt9OwogICAgICAgICAgd2hpbGUgKHdvcmQubGVuZ3RoKSB7CiAgICAgICAgICAgIGwgPSB3b3JkLmxlbmd0aDsKICAgICAgICAgICAgd2hpbGUgKHcgPiB0aGlzLnNwYWNlTGVmdCkgewogICAgICAgICAgICAgIHcgPSB0aGlzLndvcmRXaWR0aCh3b3JkLnNsaWNlKDAsIC0tbCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZiay5yZXF1aXJlZCA9IGwgPCB3b3JkLmxlbmd0aDsKICAgICAgICAgICAgc2hvdWxkQ29udGludWUgPSBmbih3b3JkLnNsaWNlKDAsIGwpLCB3LCBmYmssIGxiayk7CiAgICAgICAgICAgIGxiayA9IHsKICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd29yZCA9IHdvcmQuc2xpY2UobCk7CiAgICAgICAgICAgIHcgPSB0aGlzLndvcmRXaWR0aCh3b3JkKTsKICAgICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09PSBmYWxzZSkgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gZm4od29yZCwgdywgYmssIGxhc3QpOwogICAgICAgIH0KICAgICAgICBpZiAoc2hvdWxkQ29udGludWUgPT09IGZhbHNlKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgbGFzdCA9IGJrOwogICAgICB9CiAgICB9OwoKICAgIExpbmVXcmFwcGVyLnByb3RvdHlwZS53cmFwID0gZnVuY3Rpb24odGV4dCwgb3B0aW9ucykgewogICAgICB2YXIgYnVmZmVyLCBlbWl0TGluZSwgbGMsIG5leHRZLCB0ZXh0V2lkdGgsIHdjLCB5OwogICAgICBpZiAob3B0aW9ucy5pbmRlbnQgIT0gbnVsbCkgewogICAgICAgIHRoaXMuaW5kZW50ID0gb3B0aW9ucy5pbmRlbnQ7CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMuY2hhcmFjdGVyU3BhY2luZyAhPSBudWxsKSB7CiAgICAgICAgdGhpcy5jaGFyYWN0ZXJTcGFjaW5nID0gb3B0aW9ucy5jaGFyYWN0ZXJTcGFjaW5nOwogICAgICB9CiAgICAgIGlmIChvcHRpb25zLndvcmRTcGFjaW5nICE9IG51bGwpIHsKICAgICAgICB0aGlzLndvcmRTcGFjaW5nID0gb3B0aW9ucy53b3JkU3BhY2luZzsKICAgICAgfQogICAgICBpZiAob3B0aW9ucy5lbGxpcHNpcyAhPSBudWxsKSB7CiAgICAgICAgdGhpcy5lbGxpcHNpcyA9IG9wdGlvbnMuZWxsaXBzaXM7CiAgICAgIH0KICAgICAgbmV4dFkgPSB0aGlzLmRvY3VtZW50LnkgKyB0aGlzLmRvY3VtZW50LmN1cnJlbnRMaW5lSGVpZ2h0KHRydWUpOwogICAgICBpZiAodGhpcy5kb2N1bWVudC55ID4gdGhpcy5tYXhZIHx8IG5leHRZID4gdGhpcy5tYXhZKSB7CiAgICAgICAgdGhpcy5uZXh0U2VjdGlvbigpOwogICAgICB9CiAgICAgIGJ1ZmZlciA9ICcnOwogICAgICB0ZXh0V2lkdGggPSAwOwogICAgICB3YyA9IDA7CiAgICAgIGxjID0gMDsKICAgICAgeSA9IHRoaXMuZG9jdW1lbnQueTsKICAgICAgZW1pdExpbmUgPSAoZnVuY3Rpb24oX3RoaXMpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBvcHRpb25zLnRleHRXaWR0aCA9IHRleHRXaWR0aCArIF90aGlzLndvcmRTcGFjaW5nICogKHdjIC0gMSk7CiAgICAgICAgICBvcHRpb25zLndvcmRDb3VudCA9IHdjOwogICAgICAgICAgb3B0aW9ucy5saW5lV2lkdGggPSBfdGhpcy5saW5lV2lkdGg7CiAgICAgICAgICB5ID0gX3RoaXMuZG9jdW1lbnQueTsKICAgICAgICAgIF90aGlzLmVtaXQoJ2xpbmUnLCBidWZmZXIsIG9wdGlvbnMsIF90aGlzKTsKICAgICAgICAgIHJldHVybiBsYysrOwogICAgICAgIH07CiAgICAgIH0pKHRoaXMpOwogICAgICB0aGlzLmVtaXQoJ3NlY3Rpb25TdGFydCcsIG9wdGlvbnMsIHRoaXMpOwogICAgICB0aGlzLmVhY2hXb3JkKHRleHQsIChmdW5jdGlvbihfdGhpcykgewogICAgICAgIHJldHVybiBmdW5jdGlvbih3b3JkLCB3LCBiaywgbGFzdCkgewogICAgICAgICAgdmFyIGxoLCBzaG91bGRDb250aW51ZTsKICAgICAgICAgIGlmICgobGFzdCA9PSBudWxsKSB8fCBsYXN0LnJlcXVpcmVkKSB7CiAgICAgICAgICAgIF90aGlzLmVtaXQoJ2ZpcnN0TGluZScsIG9wdGlvbnMsIF90aGlzKTsKICAgICAgICAgICAgX3RoaXMuc3BhY2VMZWZ0ID0gX3RoaXMubGluZVdpZHRoOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHcgPD0gX3RoaXMuc3BhY2VMZWZ0KSB7CiAgICAgICAgICAgIGJ1ZmZlciArPSB3b3JkOwogICAgICAgICAgICB0ZXh0V2lkdGggKz0gdzsKICAgICAgICAgICAgd2MrKzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChiay5yZXF1aXJlZCB8fCB3ID4gX3RoaXMuc3BhY2VMZWZ0KSB7CiAgICAgICAgICAgIGlmIChiay5yZXF1aXJlZCkgewogICAgICAgICAgICAgIF90aGlzLmVtaXQoJ2xhc3RMaW5lJywgb3B0aW9ucywgX3RoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxoID0gX3RoaXMuZG9jdW1lbnQuY3VycmVudExpbmVIZWlnaHQodHJ1ZSk7CiAgICAgICAgICAgIGlmICgoX3RoaXMuaGVpZ2h0ICE9IG51bGwpICYmIF90aGlzLmVsbGlwc2lzICYmIF90aGlzLmRvY3VtZW50LnkgKyBsaCAqIDIgPiBfdGhpcy5tYXhZICYmIF90aGlzLmNvbHVtbiA+PSBfdGhpcy5jb2x1bW5zKSB7CiAgICAgICAgICAgICAgaWYgKF90aGlzLmVsbGlwc2lzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBfdGhpcy5lbGxpcHNpcyA9ICfigKYnOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBidWZmZXIgPSBidWZmZXIucmVwbGFjZSgvXHMrJC8sICcnKTsKICAgICAgICAgICAgICB0ZXh0V2lkdGggPSBfdGhpcy53b3JkV2lkdGgoYnVmZmVyICsgX3RoaXMuZWxsaXBzaXMpOwogICAgICAgICAgICAgIHdoaWxlICh0ZXh0V2lkdGggPiBfdGhpcy5saW5lV2lkdGgpIHsKICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGJ1ZmZlci5zbGljZSgwLCAtMSkucmVwbGFjZSgvXHMrJC8sICcnKTsKICAgICAgICAgICAgICAgIHRleHRXaWR0aCA9IF90aGlzLndvcmRXaWR0aChidWZmZXIgKyBfdGhpcy5lbGxpcHNpcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJ1ZmZlciA9IGJ1ZmZlciArIF90aGlzLmVsbGlwc2lzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChiay5yZXF1aXJlZCAmJiB3ID4gX3RoaXMuc3BhY2VMZWZ0KSB7CiAgICAgICAgICAgICAgYnVmZmVyID0gd29yZDsKICAgICAgICAgICAgICB0ZXh0V2lkdGggPSB3OwogICAgICAgICAgICAgIHdjID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbWl0TGluZSgpOwogICAgICAgICAgICBpZiAoX3RoaXMuZG9jdW1lbnQueSArIGxoID4gX3RoaXMubWF4WSkgewogICAgICAgICAgICAgIHNob3VsZENvbnRpbnVlID0gX3RoaXMubmV4dFNlY3Rpb24oKTsKICAgICAgICAgICAgICBpZiAoIXNob3VsZENvbnRpbnVlKSB7CiAgICAgICAgICAgICAgICB3YyA9IDA7CiAgICAgICAgICAgICAgICBidWZmZXIgPSAnJzsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJrLnJlcXVpcmVkKSB7CiAgICAgICAgICAgICAgX3RoaXMuc3BhY2VMZWZ0ID0gX3RoaXMubGluZVdpZHRoOwogICAgICAgICAgICAgIGJ1ZmZlciA9ICcnOwogICAgICAgICAgICAgIHRleHRXaWR0aCA9IDA7CiAgICAgICAgICAgICAgcmV0dXJuIHdjID0gMDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBfdGhpcy5zcGFjZUxlZnQgPSBfdGhpcy5saW5lV2lkdGggLSB3OwogICAgICAgICAgICAgIGJ1ZmZlciA9IHdvcmQ7CiAgICAgICAgICAgICAgdGV4dFdpZHRoID0gdzsKICAgICAgICAgICAgICByZXR1cm4gd2MgPSAxOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gX3RoaXMuc3BhY2VMZWZ0IC09IHc7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSkodGhpcykpOwogICAgICBpZiAod2MgPiAwKSB7CiAgICAgICAgdGhpcy5lbWl0KCdsYXN0TGluZScsIG9wdGlvbnMsIHRoaXMpOwogICAgICAgIGVtaXRMaW5lKCk7CiAgICAgIH0KICAgICAgdGhpcy5lbWl0KCdzZWN0aW9uRW5kJywgb3B0aW9ucywgdGhpcyk7CiAgICAgIGlmIChvcHRpb25zLmNvbnRpbnVlZCA9PT0gdHJ1ZSkgewogICAgICAgIGlmIChsYyA+IDEpIHsKICAgICAgICAgIHRoaXMuY29udGludWVkWCA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuY29udGludWVkWCArPSBvcHRpb25zLnRleHRXaWR0aDsKICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC55ID0geTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC54ID0gdGhpcy5zdGFydFg7CiAgICAgIH0KICAgIH07CgogICAgTGluZVdyYXBwZXIucHJvdG90eXBlLm5leHRTZWN0aW9uID0gZnVuY3Rpb24ob3B0aW9ucykgewogICAgICB2YXIgcmVmOwogICAgICB0aGlzLmVtaXQoJ3NlY3Rpb25FbmQnLCBvcHRpb25zLCB0aGlzKTsKICAgICAgaWYgKCsrdGhpcy5jb2x1bW4gPiB0aGlzLmNvbHVtbnMpIHsKICAgICAgICBpZiAodGhpcy5oZWlnaHQgIT0gbnVsbCkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICB0aGlzLmRvY3VtZW50LmFkZFBhZ2UoKTsKICAgICAgICB0aGlzLmNvbHVtbiA9IDE7CiAgICAgICAgdGhpcy5zdGFydFkgPSB0aGlzLmRvY3VtZW50LnBhZ2UubWFyZ2lucy50b3A7CiAgICAgICAgdGhpcy5tYXhZID0gdGhpcy5kb2N1bWVudC5wYWdlLm1heFkoKTsKICAgICAgICB0aGlzLmRvY3VtZW50LnggPSB0aGlzLnN0YXJ0WDsKICAgICAgICBpZiAodGhpcy5kb2N1bWVudC5fZmlsbENvbG9yKSB7CiAgICAgICAgICAocmVmID0gdGhpcy5kb2N1bWVudCkuZmlsbENvbG9yLmFwcGx5KHJlZiwgdGhpcy5kb2N1bWVudC5fZmlsbENvbG9yKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5lbWl0KCdwYWdlQnJlYWsnLCBvcHRpb25zLCB0aGlzKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmRvY3VtZW50LnggKz0gdGhpcy5saW5lV2lkdGggKyB0aGlzLmNvbHVtbkdhcDsKICAgICAgICB0aGlzLmRvY3VtZW50LnkgPSB0aGlzLnN0YXJ0WTsKICAgICAgICB0aGlzLmVtaXQoJ2NvbHVtbkJyZWFrJywgb3B0aW9ucywgdGhpcyk7CiAgICAgIH0KICAgICAgdGhpcy5lbWl0KCdzZWN0aW9uU3RhcnQnLCBvcHRpb25zLCB0aGlzKTsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9OwoKICAgIHJldHVybiBMaW5lV3JhcHBlcjsKCiAgfSkoRXZlbnRFbWl0dGVyKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBMaW5lV3JhcHBlcjsKCn0pLmNhbGwodGhpcyk7CgoKLyoqKi8gfSksCi8qIDI5NyAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgooZnVuY3Rpb24oKSB7CiAgdmFyIFBERkltYWdlOwoKICBQREZJbWFnZSA9IF9fd2VicGFja19yZXF1aXJlX18oMTIxKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSB7CiAgICBpbml0SW1hZ2VzOiBmdW5jdGlvbigpIHsKICAgICAgdGhpcy5faW1hZ2VSZWdpc3RyeSA9IHt9OwogICAgICByZXR1cm4gdGhpcy5faW1hZ2VDb3VudCA9IDA7CiAgICB9LAogICAgaW1hZ2U6IGZ1bmN0aW9uKHNyYywgeCwgeSwgb3B0aW9ucykgewogICAgICB2YXIgYmFzZSwgYmgsIGJwLCBidywgaCwgaHAsIGltYWdlLCBpcCwgbmFtZSwgcmVmLCByZWYxLCByZWYyLCByZWYzLCB3LCB3cDsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBpZiAodHlwZW9mIHggPT09ICdvYmplY3QnKSB7CiAgICAgICAgb3B0aW9ucyA9IHg7CiAgICAgICAgeCA9IG51bGw7CiAgICAgIH0KICAgICAgeCA9IChyZWYgPSB4ICE9IG51bGwgPyB4IDogb3B0aW9ucy54KSAhPSBudWxsID8gcmVmIDogdGhpcy54OwogICAgICB5ID0gKHJlZjEgPSB5ICE9IG51bGwgPyB5IDogb3B0aW9ucy55KSAhPSBudWxsID8gcmVmMSA6IHRoaXMueTsKICAgICAgaWYgKHR5cGVvZiBzcmMgPT09ICdzdHJpbmcnKSB7CiAgICAgICAgaW1hZ2UgPSB0aGlzLl9pbWFnZVJlZ2lzdHJ5W3NyY107CiAgICAgIH0KICAgICAgaWYgKCFpbWFnZSkgewogICAgICAgIGlmIChzcmMud2lkdGggJiYgc3JjLmhlaWdodCkgewogICAgICAgICAgaW1hZ2UgPSBzcmM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGltYWdlID0gdGhpcy5vcGVuSW1hZ2Uoc3JjKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKCFpbWFnZS5vYmopIHsKICAgICAgICBpbWFnZS5lbWJlZCh0aGlzKTsKICAgICAgfQogICAgICBpZiAoKGJhc2UgPSB0aGlzLnBhZ2UueG9iamVjdHMpW25hbWUgPSBpbWFnZS5sYWJlbF0gPT0gbnVsbCkgewogICAgICAgIGJhc2VbbmFtZV0gPSBpbWFnZS5vYmo7CiAgICAgIH0KICAgICAgdyA9IG9wdGlvbnMud2lkdGggfHwgaW1hZ2Uud2lkdGg7CiAgICAgIGggPSBvcHRpb25zLmhlaWdodCB8fCBpbWFnZS5oZWlnaHQ7CiAgICAgIGlmIChvcHRpb25zLndpZHRoICYmICFvcHRpb25zLmhlaWdodCkgewogICAgICAgIHdwID0gdyAvIGltYWdlLndpZHRoOwogICAgICAgIHcgPSBpbWFnZS53aWR0aCAqIHdwOwogICAgICAgIGggPSBpbWFnZS5oZWlnaHQgKiB3cDsKICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmhlaWdodCAmJiAhb3B0aW9ucy53aWR0aCkgewogICAgICAgIGhwID0gaCAvIGltYWdlLmhlaWdodDsKICAgICAgICB3ID0gaW1hZ2Uud2lkdGggKiBocDsKICAgICAgICBoID0gaW1hZ2UuaGVpZ2h0ICogaHA7CiAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5zY2FsZSkgewogICAgICAgIHcgPSBpbWFnZS53aWR0aCAqIG9wdGlvbnMuc2NhbGU7CiAgICAgICAgaCA9IGltYWdlLmhlaWdodCAqIG9wdGlvbnMuc2NhbGU7CiAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5maXQpIHsKICAgICAgICByZWYyID0gb3B0aW9ucy5maXQsIGJ3ID0gcmVmMlswXSwgYmggPSByZWYyWzFdOwogICAgICAgIGJwID0gYncgLyBiaDsKICAgICAgICBpcCA9IGltYWdlLndpZHRoIC8gaW1hZ2UuaGVpZ2h0OwogICAgICAgIGlmIChpcCA+IGJwKSB7CiAgICAgICAgICB3ID0gYnc7CiAgICAgICAgICBoID0gYncgLyBpcDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaCA9IGJoOwogICAgICAgICAgdyA9IGJoICogaXA7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuY292ZXIpIHsKICAgICAgICByZWYzID0gb3B0aW9ucy5jb3ZlciwgYncgPSByZWYzWzBdLCBiaCA9IHJlZjNbMV07CiAgICAgICAgYnAgPSBidyAvIGJoOwogICAgICAgIGlwID0gaW1hZ2Uud2lkdGggLyBpbWFnZS5oZWlnaHQ7CiAgICAgICAgaWYgKGlwID4gYnApIHsKICAgICAgICAgIGggPSBiaDsKICAgICAgICAgIHcgPSBiaCAqIGlwOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB3ID0gYnc7CiAgICAgICAgICBoID0gYncgLyBpcDsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMuZml0IHx8IG9wdGlvbnMuY292ZXIpIHsKICAgICAgICBpZiAob3B0aW9ucy5hbGlnbiA9PT0gJ2NlbnRlcicpIHsKICAgICAgICAgIHggPSB4ICsgYncgLyAyIC0gdyAvIDI7CiAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmFsaWduID09PSAncmlnaHQnKSB7CiAgICAgICAgICB4ID0geCArIGJ3IC0gdzsKICAgICAgICB9CiAgICAgICAgaWYgKG9wdGlvbnMudmFsaWduID09PSAnY2VudGVyJykgewogICAgICAgICAgeSA9IHkgKyBiaCAvIDIgLSBoIC8gMjsKICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudmFsaWduID09PSAnYm90dG9tJykgewogICAgICAgICAgeSA9IHkgKyBiaCAtIGg7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmICh0aGlzLnkgPT09IHkpIHsKICAgICAgICB0aGlzLnkgKz0gaDsKICAgICAgfQogICAgICB0aGlzLnNhdmUoKTsKICAgICAgdGhpcy50cmFuc2Zvcm0odywgMCwgMCwgLWgsIHgsIHkgKyBoKTsKICAgICAgdGhpcy5hZGRDb250ZW50KCIvIiArIGltYWdlLmxhYmVsICsgIiBEbyIpOwogICAgICB0aGlzLnJlc3RvcmUoKTsKICAgICAgcmV0dXJuIHRoaXM7CiAgICB9LAogICAgb3BlbkltYWdlOiBmdW5jdGlvbihzcmMpIHsKICAgICAgdmFyIGltYWdlOwogICAgICBpZiAodHlwZW9mIHNyYyA9PT0gJ3N0cmluZycpIHsKICAgICAgICBpbWFnZSA9IHRoaXMuX2ltYWdlUmVnaXN0cnlbc3JjXTsKICAgICAgfQogICAgICBpZiAoIWltYWdlKSB7CiAgICAgICAgaW1hZ2UgPSBQREZJbWFnZS5vcGVuKHNyYywgJ0knICsgKCsrdGhpcy5faW1hZ2VDb3VudCkpOwogICAgICAgIGlmICh0eXBlb2Ygc3JjID09PSAnc3RyaW5nJykgewogICAgICAgICAgdGhpcy5faW1hZ2VSZWdpc3RyeVtzcmNdID0gaW1hZ2U7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBpbWFnZTsKICAgIH0KICB9OwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMjk4ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCi8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CihmdW5jdGlvbigpIHsKICB2YXIgRGF0YTsKCiAgRGF0YSA9IChmdW5jdGlvbigpIHsKICAgIGZ1bmN0aW9uIERhdGEoZGF0YSkgewogICAgICB0aGlzLmRhdGEgPSBkYXRhICE9IG51bGwgPyBkYXRhIDogW107CiAgICAgIHRoaXMucG9zID0gMDsKICAgICAgdGhpcy5sZW5ndGggPSB0aGlzLmRhdGEubGVuZ3RoOwogICAgfQoKICAgIERhdGEucHJvdG90eXBlLnJlYWRCeXRlID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aGlzLmRhdGFbdGhpcy5wb3MrK107CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLndyaXRlQnl0ZSA9IGZ1bmN0aW9uKGJ5dGUpIHsKICAgICAgcmV0dXJuIHRoaXMuZGF0YVt0aGlzLnBvcysrXSA9IGJ5dGU7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLmJ5dGVBdCA9IGZ1bmN0aW9uKGluZGV4KSB7CiAgICAgIHJldHVybiB0aGlzLmRhdGFbaW5kZXhdOwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS5yZWFkQm9vbCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gISF0aGlzLnJlYWRCeXRlKCk7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLndyaXRlQm9vbCA9IGZ1bmN0aW9uKHZhbCkgewogICAgICByZXR1cm4gdGhpcy53cml0ZUJ5dGUodmFsID8gMSA6IDApOwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS5yZWFkVUludDMyID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBiMSwgYjIsIGIzLCBiNDsKICAgICAgYjEgPSB0aGlzLnJlYWRCeXRlKCkgKiAweDEwMDAwMDA7CiAgICAgIGIyID0gdGhpcy5yZWFkQnl0ZSgpIDw8IDE2OwogICAgICBiMyA9IHRoaXMucmVhZEJ5dGUoKSA8PCA4OwogICAgICBiNCA9IHRoaXMucmVhZEJ5dGUoKTsKICAgICAgcmV0dXJuIGIxICsgYjIgKyBiMyArIGI0OwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS53cml0ZVVJbnQzMiA9IGZ1bmN0aW9uKHZhbCkgewogICAgICB0aGlzLndyaXRlQnl0ZSgodmFsID4+PiAyNCkgJiAweGZmKTsKICAgICAgdGhpcy53cml0ZUJ5dGUoKHZhbCA+PiAxNikgJiAweGZmKTsKICAgICAgdGhpcy53cml0ZUJ5dGUoKHZhbCA+PiA4KSAmIDB4ZmYpOwogICAgICByZXR1cm4gdGhpcy53cml0ZUJ5dGUodmFsICYgMHhmZik7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLnJlYWRJbnQzMiA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgaW50OwogICAgICBpbnQgPSB0aGlzLnJlYWRVSW50MzIoKTsKICAgICAgaWYgKGludCA+PSAweDgwMDAwMDAwKSB7CiAgICAgICAgcmV0dXJuIGludCAtIDB4MTAwMDAwMDAwOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBpbnQ7CiAgICAgIH0KICAgIH07CgogICAgRGF0YS5wcm90b3R5cGUud3JpdGVJbnQzMiA9IGZ1bmN0aW9uKHZhbCkgewogICAgICBpZiAodmFsIDwgMCkgewogICAgICAgIHZhbCArPSAweDEwMDAwMDAwMDsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy53cml0ZVVJbnQzMih2YWwpOwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS5yZWFkVUludDE2ID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBiMSwgYjI7CiAgICAgIGIxID0gdGhpcy5yZWFkQnl0ZSgpIDw8IDg7CiAgICAgIGIyID0gdGhpcy5yZWFkQnl0ZSgpOwogICAgICByZXR1cm4gYjEgfCBiMjsKICAgIH07CgogICAgRGF0YS5wcm90b3R5cGUud3JpdGVVSW50MTYgPSBmdW5jdGlvbih2YWwpIHsKICAgICAgdGhpcy53cml0ZUJ5dGUoKHZhbCA+PiA4KSAmIDB4ZmYpOwogICAgICByZXR1cm4gdGhpcy53cml0ZUJ5dGUodmFsICYgMHhmZik7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLnJlYWRJbnQxNiA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgaW50OwogICAgICBpbnQgPSB0aGlzLnJlYWRVSW50MTYoKTsKICAgICAgaWYgKGludCA+PSAweDgwMDApIHsKICAgICAgICByZXR1cm4gaW50IC0gMHgxMDAwMDsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gaW50OwogICAgICB9CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLndyaXRlSW50MTYgPSBmdW5jdGlvbih2YWwpIHsKICAgICAgaWYgKHZhbCA8IDApIHsKICAgICAgICB2YWwgKz0gMHgxMDAwMDsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy53cml0ZVVJbnQxNih2YWwpOwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS5yZWFkU3RyaW5nID0gZnVuY3Rpb24obGVuZ3RoKSB7CiAgICAgIHZhciBpLCBqLCByZWYsIHJldDsKICAgICAgcmV0ID0gW107CiAgICAgIGZvciAoaSA9IGogPSAwLCByZWYgPSBsZW5ndGg7IDAgPD0gcmVmID8gaiA8IHJlZiA6IGogPiByZWY7IGkgPSAwIDw9IHJlZiA/ICsraiA6IC0taikgewogICAgICAgIHJldFtpXSA9IFN0cmluZy5mcm9tQ2hhckNvZGUodGhpcy5yZWFkQnl0ZSgpKTsKICAgICAgfQogICAgICByZXR1cm4gcmV0LmpvaW4oJycpOwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS53cml0ZVN0cmluZyA9IGZ1bmN0aW9uKHZhbCkgewogICAgICB2YXIgaSwgaiwgcmVmLCByZXN1bHRzOwogICAgICByZXN1bHRzID0gW107CiAgICAgIGZvciAoaSA9IGogPSAwLCByZWYgPSB2YWwubGVuZ3RoOyAwIDw9IHJlZiA/IGogPCByZWYgOiBqID4gcmVmOyBpID0gMCA8PSByZWYgPyArK2ogOiAtLWopIHsKICAgICAgICByZXN1bHRzLnB1c2godGhpcy53cml0ZUJ5dGUodmFsLmNoYXJDb2RlQXQoaSkpKTsKICAgICAgfQogICAgICByZXR1cm4gcmVzdWx0czsKICAgIH07CgogICAgRGF0YS5wcm90b3R5cGUuc3RyaW5nQXQgPSBmdW5jdGlvbihwb3MsIGxlbmd0aCkgewogICAgICB0aGlzLnBvcyA9IHBvczsKICAgICAgcmV0dXJuIHRoaXMucmVhZFN0cmluZyhsZW5ndGgpOwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS5yZWFkU2hvcnQgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMucmVhZEludDE2KCk7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLndyaXRlU2hvcnQgPSBmdW5jdGlvbih2YWwpIHsKICAgICAgcmV0dXJuIHRoaXMud3JpdGVJbnQxNih2YWwpOwogICAgfTsKCiAgICBEYXRhLnByb3RvdHlwZS5yZWFkTG9uZ0xvbmcgPSBmdW5jdGlvbigpIHsKICAgICAgdmFyIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3LCBiODsKICAgICAgYjEgPSB0aGlzLnJlYWRCeXRlKCk7CiAgICAgIGIyID0gdGhpcy5yZWFkQnl0ZSgpOwogICAgICBiMyA9IHRoaXMucmVhZEJ5dGUoKTsKICAgICAgYjQgPSB0aGlzLnJlYWRCeXRlKCk7CiAgICAgIGI1ID0gdGhpcy5yZWFkQnl0ZSgpOwogICAgICBiNiA9IHRoaXMucmVhZEJ5dGUoKTsKICAgICAgYjcgPSB0aGlzLnJlYWRCeXRlKCk7CiAgICAgIGI4ID0gdGhpcy5yZWFkQnl0ZSgpOwogICAgICBpZiAoYjEgJiAweDgwKSB7CiAgICAgICAgcmV0dXJuICgoYjEgXiAweGZmKSAqIDB4MTAwMDAwMDAwMDAwMDAwICsgKGIyIF4gMHhmZikgKiAweDEwMDAwMDAwMDAwMDAgKyAoYjMgXiAweGZmKSAqIDB4MTAwMDAwMDAwMDAgKyAoYjQgXiAweGZmKSAqIDB4MTAwMDAwMDAwICsgKGI1IF4gMHhmZikgKiAweDEwMDAwMDAgKyAoYjYgXiAweGZmKSAqIDB4MTAwMDAgKyAoYjcgXiAweGZmKSAqIDB4MTAwICsgKGI4IF4gMHhmZikgKyAxKSAqIC0xOwogICAgICB9CiAgICAgIHJldHVybiBiMSAqIDB4MTAwMDAwMDAwMDAwMDAwICsgYjIgKiAweDEwMDAwMDAwMDAwMDAgKyBiMyAqIDB4MTAwMDAwMDAwMDAgKyBiNCAqIDB4MTAwMDAwMDAwICsgYjUgKiAweDEwMDAwMDAgKyBiNiAqIDB4MTAwMDAgKyBiNyAqIDB4MTAwICsgYjg7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLndyaXRlTG9uZ0xvbmcgPSBmdW5jdGlvbih2YWwpIHsKICAgICAgdmFyIGhpZ2gsIGxvdzsKICAgICAgaGlnaCA9IE1hdGguZmxvb3IodmFsIC8gMHgxMDAwMDAwMDApOwogICAgICBsb3cgPSB2YWwgJiAweGZmZmZmZmZmOwogICAgICB0aGlzLndyaXRlQnl0ZSgoaGlnaCA+PiAyNCkgJiAweGZmKTsKICAgICAgdGhpcy53cml0ZUJ5dGUoKGhpZ2ggPj4gMTYpICYgMHhmZik7CiAgICAgIHRoaXMud3JpdGVCeXRlKChoaWdoID4+IDgpICYgMHhmZik7CiAgICAgIHRoaXMud3JpdGVCeXRlKGhpZ2ggJiAweGZmKTsKICAgICAgdGhpcy53cml0ZUJ5dGUoKGxvdyA+PiAyNCkgJiAweGZmKTsKICAgICAgdGhpcy53cml0ZUJ5dGUoKGxvdyA+PiAxNikgJiAweGZmKTsKICAgICAgdGhpcy53cml0ZUJ5dGUoKGxvdyA+PiA4KSAmIDB4ZmYpOwogICAgICByZXR1cm4gdGhpcy53cml0ZUJ5dGUobG93ICYgMHhmZik7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLnJlYWRJbnQgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMucmVhZEludDMyKCk7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLndyaXRlSW50ID0gZnVuY3Rpb24odmFsKSB7CiAgICAgIHJldHVybiB0aGlzLndyaXRlSW50MzIodmFsKTsKICAgIH07CgogICAgRGF0YS5wcm90b3R5cGUuc2xpY2UgPSBmdW5jdGlvbihzdGFydCwgZW5kKSB7CiAgICAgIHJldHVybiB0aGlzLmRhdGEuc2xpY2Uoc3RhcnQsIGVuZCk7CiAgICB9OwoKICAgIERhdGEucHJvdG90eXBlLnJlYWQgPSBmdW5jdGlvbihieXRlcykgewogICAgICB2YXIgYnVmLCBpLCBqLCByZWY7CiAgICAgIGJ1ZiA9IFtdOwogICAgICBmb3IgKGkgPSBqID0gMCwgcmVmID0gYnl0ZXM7IDAgPD0gcmVmID8gaiA8IHJlZiA6IGogPiByZWY7IGkgPSAwIDw9IHJlZiA/ICsraiA6IC0taikgewogICAgICAgIGJ1Zi5wdXNoKHRoaXMucmVhZEJ5dGUoKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGJ1ZjsKICAgIH07CgogICAgRGF0YS5wcm90b3R5cGUud3JpdGUgPSBmdW5jdGlvbihieXRlcykgewogICAgICB2YXIgYnl0ZSwgaiwgbGVuLCByZXN1bHRzOwogICAgICByZXN1bHRzID0gW107CiAgICAgIGZvciAoaiA9IDAsIGxlbiA9IGJ5dGVzLmxlbmd0aDsgaiA8IGxlbjsgaisrKSB7CiAgICAgICAgYnl0ZSA9IGJ5dGVzW2pdOwogICAgICAgIHJlc3VsdHMucHVzaCh0aGlzLndyaXRlQnl0ZShieXRlKSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdHM7CiAgICB9OwoKICAgIHJldHVybiBEYXRhOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IERhdGE7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAyOTkgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLy8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjEyLjYKKGZ1bmN0aW9uKCkgewogIHZhciBKUEVHLCBmcywKICAgIGluZGV4T2YgPSBbXS5pbmRleE9mIHx8IGZ1bmN0aW9uKGl0ZW0pIHsgZm9yICh2YXIgaSA9IDAsIGwgPSB0aGlzLmxlbmd0aDsgaSA8IGw7IGkrKykgeyBpZiAoaSBpbiB0aGlzICYmIHRoaXNbaV0gPT09IGl0ZW0pIHJldHVybiBpOyB9IHJldHVybiAtMTsgfTsKCiAgZnMgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDgpOwoKICBKUEVHID0gKGZ1bmN0aW9uKCkgewogICAgdmFyIE1BUktFUlM7CgogICAgTUFSS0VSUyA9IFsweEZGQzAsIDB4RkZDMSwgMHhGRkMyLCAweEZGQzMsIDB4RkZDNSwgMHhGRkM2LCAweEZGQzcsIDB4RkZDOCwgMHhGRkM5LCAweEZGQ0EsIDB4RkZDQiwgMHhGRkNDLCAweEZGQ0QsIDB4RkZDRSwgMHhGRkNGXTsKCiAgICBmdW5jdGlvbiBKUEVHKGRhdGEsIGxhYmVsKSB7CiAgICAgIHZhciBjaGFubmVscywgbWFya2VyLCBwb3M7CiAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CiAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDsKICAgICAgaWYgKHRoaXMuZGF0YS5yZWFkVUludDE2QkUoMCkgIT09IDB4RkZEOCkgewogICAgICAgIHRocm93ICJTT0kgbm90IGZvdW5kIGluIEpQRUciOwogICAgICB9CiAgICAgIHBvcyA9IDI7CiAgICAgIHdoaWxlIChwb3MgPCB0aGlzLmRhdGEubGVuZ3RoKSB7CiAgICAgICAgbWFya2VyID0gdGhpcy5kYXRhLnJlYWRVSW50MTZCRShwb3MpOwogICAgICAgIHBvcyArPSAyOwogICAgICAgIGlmIChpbmRleE9mLmNhbGwoTUFSS0VSUywgbWFya2VyKSA+PSAwKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgcG9zICs9IHRoaXMuZGF0YS5yZWFkVUludDE2QkUocG9zKTsKICAgICAgfQogICAgICBpZiAoaW5kZXhPZi5jYWxsKE1BUktFUlMsIG1hcmtlcikgPCAwKSB7CiAgICAgICAgdGhyb3cgIkludmFsaWQgSlBFRy4iOwogICAgICB9CiAgICAgIHBvcyArPSAyOwogICAgICB0aGlzLmJpdHMgPSB0aGlzLmRhdGFbcG9zKytdOwogICAgICB0aGlzLmhlaWdodCA9IHRoaXMuZGF0YS5yZWFkVUludDE2QkUocG9zKTsKICAgICAgcG9zICs9IDI7CiAgICAgIHRoaXMud2lkdGggPSB0aGlzLmRhdGEucmVhZFVJbnQxNkJFKHBvcyk7CiAgICAgIHBvcyArPSAyOwogICAgICBjaGFubmVscyA9IHRoaXMuZGF0YVtwb3MrK107CiAgICAgIHRoaXMuY29sb3JTcGFjZSA9IChmdW5jdGlvbigpIHsKICAgICAgICBzd2l0Y2ggKGNoYW5uZWxzKSB7CiAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgIHJldHVybiAnRGV2aWNlR3JheSc7CiAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIHJldHVybiAnRGV2aWNlUkdCJzsKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgcmV0dXJuICdEZXZpY2VDTVlLJzsKICAgICAgICB9CiAgICAgIH0pKCk7CiAgICAgIHRoaXMub2JqID0gbnVsbDsKICAgIH0KCiAgICBKUEVHLnByb3RvdHlwZS5lbWJlZCA9IGZ1bmN0aW9uKGRvY3VtZW50KSB7CiAgICAgIGlmICh0aGlzLm9iaikgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLm9iaiA9IGRvY3VtZW50LnJlZih7CiAgICAgICAgVHlwZTogJ1hPYmplY3QnLAogICAgICAgIFN1YnR5cGU6ICdJbWFnZScsCiAgICAgICAgQml0c1BlckNvbXBvbmVudDogdGhpcy5iaXRzLAogICAgICAgIFdpZHRoOiB0aGlzLndpZHRoLAogICAgICAgIEhlaWdodDogdGhpcy5oZWlnaHQsCiAgICAgICAgQ29sb3JTcGFjZTogdGhpcy5jb2xvclNwYWNlLAogICAgICAgIEZpbHRlcjogJ0RDVERlY29kZScKICAgICAgfSk7CiAgICAgIGlmICh0aGlzLmNvbG9yU3BhY2UgPT09ICdEZXZpY2VDTVlLJykgewogICAgICAgIHRoaXMub2JqLmRhdGFbJ0RlY29kZSddID0gWzEuMCwgMC4wLCAxLjAsIDAuMCwgMS4wLCAwLjAsIDEuMCwgMC4wXTsKICAgICAgfQogICAgICB0aGlzLm9iai5lbmQodGhpcy5kYXRhKTsKICAgICAgcmV0dXJuIHRoaXMuZGF0YSA9IG51bGw7CiAgICB9OwoKICAgIHJldHVybiBKUEVHOwoKICB9KSgpOwoKICBtb2R1bGUuZXhwb3J0cyA9IEpQRUc7Cgp9KS5jYWxsKHRoaXMpOwoKCi8qKiovIH0pLAovKiAzMDAgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKEJ1ZmZlcikgey8vIEdlbmVyYXRlZCBieSBDb2ZmZWVTY3JpcHQgMS4xMi42CihmdW5jdGlvbigpIHsKICB2YXIgUE5HLCBQTkdJbWFnZSwgemxpYjsKCiAgemxpYiA9IF9fd2VicGFja19yZXF1aXJlX18oNDgpOwoKICBQTkcgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDMwMSk7CgogIFBOR0ltYWdlID0gKGZ1bmN0aW9uKCkgewogICAgZnVuY3Rpb24gUE5HSW1hZ2UoZGF0YSwgbGFiZWwpIHsKICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsOwogICAgICB0aGlzLmltYWdlID0gbmV3IFBORyhkYXRhKTsKICAgICAgdGhpcy53aWR0aCA9IHRoaXMuaW1hZ2Uud2lkdGg7CiAgICAgIHRoaXMuaGVpZ2h0ID0gdGhpcy5pbWFnZS5oZWlnaHQ7CiAgICAgIHRoaXMuaW1nRGF0YSA9IHRoaXMuaW1hZ2UuaW1nRGF0YTsKICAgICAgdGhpcy5vYmogPSBudWxsOwogICAgfQoKICAgIFBOR0ltYWdlLnByb3RvdHlwZS5lbWJlZCA9IGZ1bmN0aW9uKGRvY3VtZW50KSB7CiAgICAgIHZhciBrLCBsZW4xLCBtYXNrLCBwYWxldHRlLCBwYXJhbXMsIHJnYiwgdmFsLCB4OwogICAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7CiAgICAgIGlmICh0aGlzLm9iaikgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLm9iaiA9IHRoaXMuZG9jdW1lbnQucmVmKHsKICAgICAgICBUeXBlOiAnWE9iamVjdCcsCiAgICAgICAgU3VidHlwZTogJ0ltYWdlJywKICAgICAgICBCaXRzUGVyQ29tcG9uZW50OiB0aGlzLmltYWdlLmJpdHMsCiAgICAgICAgV2lkdGg6IHRoaXMud2lkdGgsCiAgICAgICAgSGVpZ2h0OiB0aGlzLmhlaWdodCwKICAgICAgICBGaWx0ZXI6ICdGbGF0ZURlY29kZScKICAgICAgfSk7CiAgICAgIGlmICghdGhpcy5pbWFnZS5oYXNBbHBoYUNoYW5uZWwpIHsKICAgICAgICBwYXJhbXMgPSB0aGlzLmRvY3VtZW50LnJlZih7CiAgICAgICAgICBQcmVkaWN0b3I6IDE1LAogICAgICAgICAgQ29sb3JzOiB0aGlzLmltYWdlLmNvbG9ycywKICAgICAgICAgIEJpdHNQZXJDb21wb25lbnQ6IHRoaXMuaW1hZ2UuYml0cywKICAgICAgICAgIENvbHVtbnM6IHRoaXMud2lkdGgKICAgICAgICB9KTsKICAgICAgICB0aGlzLm9iai5kYXRhWydEZWNvZGVQYXJtcyddID0gcGFyYW1zOwogICAgICAgIHBhcmFtcy5lbmQoKTsKICAgICAgfQogICAgICBpZiAodGhpcy5pbWFnZS5wYWxldHRlLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHRoaXMub2JqLmRhdGFbJ0NvbG9yU3BhY2UnXSA9IHRoaXMuaW1hZ2UuY29sb3JTcGFjZTsKICAgICAgfSBlbHNlIHsKICAgICAgICBwYWxldHRlID0gdGhpcy5kb2N1bWVudC5yZWYoKTsKICAgICAgICBwYWxldHRlLmVuZChuZXcgQnVmZmVyKHRoaXMuaW1hZ2UucGFsZXR0ZSkpOwogICAgICAgIHRoaXMub2JqLmRhdGFbJ0NvbG9yU3BhY2UnXSA9IFsnSW5kZXhlZCcsICdEZXZpY2VSR0InLCAodGhpcy5pbWFnZS5wYWxldHRlLmxlbmd0aCAvIDMpIC0gMSwgcGFsZXR0ZV07CiAgICAgIH0KICAgICAgaWYgKHRoaXMuaW1hZ2UudHJhbnNwYXJlbmN5LmdyYXlzY2FsZSkgewogICAgICAgIHZhbCA9IHRoaXMuaW1hZ2UudHJhbnNwYXJlbmN5LmdyZXlzY2FsZTsKICAgICAgICByZXR1cm4gdGhpcy5vYmouZGF0YVsnTWFzayddID0gW3ZhbCwgdmFsXTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmltYWdlLnRyYW5zcGFyZW5jeS5yZ2IpIHsKICAgICAgICByZ2IgPSB0aGlzLmltYWdlLnRyYW5zcGFyZW5jeS5yZ2I7CiAgICAgICAgbWFzayA9IFtdOwogICAgICAgIGZvciAoayA9IDAsIGxlbjEgPSByZ2IubGVuZ3RoOyBrIDwgbGVuMTsgaysrKSB7CiAgICAgICAgICB4ID0gcmdiW2tdOwogICAgICAgICAgbWFzay5wdXNoKHgsIHgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5vYmouZGF0YVsnTWFzayddID0gbWFzazsKICAgICAgfSBlbHNlIGlmICh0aGlzLmltYWdlLnRyYW5zcGFyZW5jeS5pbmRleGVkKSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEluZGV4ZWRBbHBoYUNoYW5uZWwoKTsKICAgICAgfSBlbHNlIGlmICh0aGlzLmltYWdlLmhhc0FscGhhQ2hhbm5lbCkgewogICAgICAgIHJldHVybiB0aGlzLnNwbGl0QWxwaGFDaGFubmVsKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHRoaXMuZmluYWxpemUoKTsKICAgICAgfQogICAgfTsKCiAgICBQTkdJbWFnZS5wcm90b3R5cGUuZmluYWxpemUgPSBmdW5jdGlvbigpIHsKICAgICAgdmFyIHNNYXNrOwogICAgICBpZiAodGhpcy5hbHBoYUNoYW5uZWwpIHsKICAgICAgICBzTWFzayA9IHRoaXMuZG9jdW1lbnQucmVmKHsKICAgICAgICAgIFR5cGU6ICdYT2JqZWN0JywKICAgICAgICAgIFN1YnR5cGU6ICdJbWFnZScsCiAgICAgICAgICBIZWlnaHQ6IHRoaXMuaGVpZ2h0LAogICAgICAgICAgV2lkdGg6IHRoaXMud2lkdGgsCiAgICAgICAgICBCaXRzUGVyQ29tcG9uZW50OiA4LAogICAgICAgICAgRmlsdGVyOiAnRmxhdGVEZWNvZGUnLAogICAgICAgICAgQ29sb3JTcGFjZTogJ0RldmljZUdyYXknLAogICAgICAgICAgRGVjb2RlOiBbMCwgMV0KICAgICAgICB9KTsKICAgICAgICBzTWFzay5lbmQodGhpcy5hbHBoYUNoYW5uZWwpOwogICAgICAgIHRoaXMub2JqLmRhdGFbJ1NNYXNrJ10gPSBzTWFzazsKICAgICAgfQogICAgICB0aGlzLm9iai5lbmQodGhpcy5pbWdEYXRhKTsKICAgICAgdGhpcy5pbWFnZSA9IG51bGw7CiAgICAgIHJldHVybiB0aGlzLmltZ0RhdGEgPSBudWxsOwogICAgfTsKCiAgICBQTkdJbWFnZS5wcm90b3R5cGUuc3BsaXRBbHBoYUNoYW5uZWwgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRoaXMuaW1hZ2UuZGVjb2RlUGl4ZWxzKChmdW5jdGlvbihfdGhpcykgewogICAgICAgIHJldHVybiBmdW5jdGlvbihwaXhlbHMpIHsKICAgICAgICAgIHZhciBhLCBhbHBoYUNoYW5uZWwsIGNvbG9yQnl0ZVNpemUsIGRvbmUsIGksIGltZ0RhdGEsIGxlbiwgcCwgcGl4ZWxDb3VudDsKICAgICAgICAgIGNvbG9yQnl0ZVNpemUgPSBfdGhpcy5pbWFnZS5jb2xvcnMgKiBfdGhpcy5pbWFnZS5iaXRzIC8gODsKICAgICAgICAgIHBpeGVsQ291bnQgPSBfdGhpcy53aWR0aCAqIF90aGlzLmhlaWdodDsKICAgICAgICAgIGltZ0RhdGEgPSBuZXcgQnVmZmVyKHBpeGVsQ291bnQgKiBjb2xvckJ5dGVTaXplKTsKICAgICAgICAgIGFscGhhQ2hhbm5lbCA9IG5ldyBCdWZmZXIocGl4ZWxDb3VudCk7CiAgICAgICAgICBpID0gcCA9IGEgPSAwOwogICAgICAgICAgbGVuID0gcGl4ZWxzLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChpIDwgbGVuKSB7CiAgICAgICAgICAgIGltZ0RhdGFbcCsrXSA9IHBpeGVsc1tpKytdOwogICAgICAgICAgICBpbWdEYXRhW3ArK10gPSBwaXhlbHNbaSsrXTsKICAgICAgICAgICAgaW1nRGF0YVtwKytdID0gcGl4ZWxzW2krK107CiAgICAgICAgICAgIGFscGhhQ2hhbm5lbFthKytdID0gcGl4ZWxzW2krK107CiAgICAgICAgICB9CiAgICAgICAgICBkb25lID0gMDsKICAgICAgICAgIHpsaWIuZGVmbGF0ZShpbWdEYXRhLCBmdW5jdGlvbihlcnIsIGltZ0RhdGExKSB7CiAgICAgICAgICAgIF90aGlzLmltZ0RhdGEgPSBpbWdEYXRhMTsKICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgIHRocm93IGVycjsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoKytkb25lID09PSAyKSB7CiAgICAgICAgICAgICAgcmV0dXJuIF90aGlzLmZpbmFsaXplKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuIHpsaWIuZGVmbGF0ZShhbHBoYUNoYW5uZWwsIGZ1bmN0aW9uKGVyciwgYWxwaGFDaGFubmVsMSkgewogICAgICAgICAgICBfdGhpcy5hbHBoYUNoYW5uZWwgPSBhbHBoYUNoYW5uZWwxOwogICAgICAgICAgICBpZiAoZXJyKSB7CiAgICAgICAgICAgICAgdGhyb3cgZXJyOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgrK2RvbmUgPT09IDIpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuZmluYWxpemUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfSkodGhpcykpOwogICAgfTsKCiAgICBQTkdJbWFnZS5wcm90b3R5cGUubG9hZEluZGV4ZWRBbHBoYUNoYW5uZWwgPSBmdW5jdGlvbihmbikgewogICAgICB2YXIgdHJhbnNwYXJlbmN5OwogICAgICB0cmFuc3BhcmVuY3kgPSB0aGlzLmltYWdlLnRyYW5zcGFyZW5jeS5pbmRleGVkOwogICAgICByZXR1cm4gdGhpcy5pbWFnZS5kZWNvZGVQaXhlbHMoKGZ1bmN0aW9uKF90aGlzKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHBpeGVscykgewogICAgICAgICAgdmFyIGFscGhhQ2hhbm5lbCwgaSwgaiwgaywgcmVmOwogICAgICAgICAgYWxwaGFDaGFubmVsID0gbmV3IEJ1ZmZlcihfdGhpcy53aWR0aCAqIF90aGlzLmhlaWdodCk7CiAgICAgICAgICBpID0gMDsKICAgICAgICAgIGZvciAoaiA9IGsgPSAwLCByZWYgPSBwaXhlbHMubGVuZ3RoOyBrIDwgcmVmOyBqID0gayArPSAxKSB7CiAgICAgICAgICAgIGFscGhhQ2hhbm5lbFtpKytdID0gdHJhbnNwYXJlbmN5W3BpeGVsc1tqXV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gemxpYi5kZWZsYXRlKGFscGhhQ2hhbm5lbCwgZnVuY3Rpb24oZXJyLCBhbHBoYUNoYW5uZWwxKSB7CiAgICAgICAgICAgIF90aGlzLmFscGhhQ2hhbm5lbCA9IGFscGhhQ2hhbm5lbDE7CiAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICB0aHJvdyBlcnI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIF90aGlzLmZpbmFsaXplKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9OwogICAgICB9KSh0aGlzKSk7CiAgICB9OwoKICAgIHJldHVybiBQTkdJbWFnZTsKCiAgfSkoKTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBQTkdJbWFnZTsKCn0pLmNhbGwodGhpcyk7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIpKQoKLyoqKi8gfSksCi8qIDMwMSAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oQnVmZmVyKSB7Ly8gR2VuZXJhdGVkIGJ5IENvZmZlZVNjcmlwdCAxLjQuMAoKLyoKIyBNSVQgTElDRU5TRQojIENvcHlyaWdodCAoYykgMjAxMSBEZXZvbiBHb3ZldHQKIyAKIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5IG9mIHRoaXMgCiMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSAKIyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCAKIyBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgCiMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKIyAKIyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIAojIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KIyAKIyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgCiMgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIAojIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIAojIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgCiMgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCiovCgoKKGZ1bmN0aW9uKCkgewogIHZhciBQTkcsIGZzLCB6bGliOwoKICBmcyA9IF9fd2VicGFja19yZXF1aXJlX18oOCk7CgogIHpsaWIgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDQ4KTsKCiAgbW9kdWxlLmV4cG9ydHMgPSBQTkcgPSAoZnVuY3Rpb24oKSB7CgogICAgUE5HLmRlY29kZSA9IGZ1bmN0aW9uKHBhdGgsIGZuKSB7CiAgICAgIHJldHVybiBmcy5yZWFkRmlsZShwYXRoLCBmdW5jdGlvbihlcnIsIGZpbGUpIHsKICAgICAgICB2YXIgcG5nOwogICAgICAgIHBuZyA9IG5ldyBQTkcoZmlsZSk7CiAgICAgICAgcmV0dXJuIHBuZy5kZWNvZGUoZnVuY3Rpb24ocGl4ZWxzKSB7CiAgICAgICAgICByZXR1cm4gZm4ocGl4ZWxzKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9OwoKICAgIFBORy5sb2FkID0gZnVuY3Rpb24ocGF0aCkgewogICAgICB2YXIgZmlsZTsKICAgICAgZmlsZSA9IGZzLnJlYWRGaWxlU3luYyhwYXRoKTsKICAgICAgcmV0dXJuIG5ldyBQTkcoZmlsZSk7CiAgICB9OwoKICAgIGZ1bmN0aW9uIFBORyhkYXRhKSB7CiAgICAgIHZhciBjaHVua1NpemUsIGNvbG9ycywgaSwgaW5kZXgsIGtleSwgc2VjdGlvbiwgc2hvcnQsIHRleHQsIF9pLCBfaiwgX3JlZjsKICAgICAgdGhpcy5kYXRhID0gZGF0YTsKICAgICAgdGhpcy5wb3MgPSA4OwogICAgICB0aGlzLnBhbGV0dGUgPSBbXTsKICAgICAgdGhpcy5pbWdEYXRhID0gW107CiAgICAgIHRoaXMudHJhbnNwYXJlbmN5ID0ge307CiAgICAgIHRoaXMudGV4dCA9IHt9OwogICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgIGNodW5rU2l6ZSA9IHRoaXMucmVhZFVJbnQzMigpOwogICAgICAgIHNlY3Rpb24gPSAoKGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIF9pLCBfcmVzdWx0czsKICAgICAgICAgIF9yZXN1bHRzID0gW107CiAgICAgICAgICBmb3IgKGkgPSBfaSA9IDA7IF9pIDwgNDsgaSA9ICsrX2kpIHsKICAgICAgICAgICAgX3Jlc3VsdHMucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKHRoaXMuZGF0YVt0aGlzLnBvcysrXSkpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIF9yZXN1bHRzOwogICAgICAgIH0pLmNhbGwodGhpcykpLmpvaW4oJycpOwogICAgICAgIHN3aXRjaCAoc2VjdGlvbikgewogICAgICAgICAgY2FzZSAnSUhEUic6CiAgICAgICAgICAgIHRoaXMud2lkdGggPSB0aGlzLnJlYWRVSW50MzIoKTsKICAgICAgICAgICAgdGhpcy5oZWlnaHQgPSB0aGlzLnJlYWRVSW50MzIoKTsKICAgICAgICAgICAgdGhpcy5iaXRzID0gdGhpcy5kYXRhW3RoaXMucG9zKytdOwogICAgICAgICAgICB0aGlzLmNvbG9yVHlwZSA9IHRoaXMuZGF0YVt0aGlzLnBvcysrXTsKICAgICAgICAgICAgdGhpcy5jb21wcmVzc2lvbk1ldGhvZCA9IHRoaXMuZGF0YVt0aGlzLnBvcysrXTsKICAgICAgICAgICAgdGhpcy5maWx0ZXJNZXRob2QgPSB0aGlzLmRhdGFbdGhpcy5wb3MrK107CiAgICAgICAgICAgIHRoaXMuaW50ZXJsYWNlTWV0aG9kID0gdGhpcy5kYXRhW3RoaXMucG9zKytdOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgJ1BMVEUnOgogICAgICAgICAgICB0aGlzLnBhbGV0dGUgPSB0aGlzLnJlYWQoY2h1bmtTaXplKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBjYXNlICdJREFUJzoKICAgICAgICAgICAgZm9yIChpID0gX2kgPSAwOyBfaSA8IGNodW5rU2l6ZTsgaSA9IF9pICs9IDEpIHsKICAgICAgICAgICAgICB0aGlzLmltZ0RhdGEucHVzaCh0aGlzLmRhdGFbdGhpcy5wb3MrK10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAndFJOUyc6CiAgICAgICAgICAgIHRoaXMudHJhbnNwYXJlbmN5ID0ge307CiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jb2xvclR5cGUpIHsKICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zcGFyZW5jeS5pbmRleGVkID0gdGhpcy5yZWFkKGNodW5rU2l6ZSk7CiAgICAgICAgICAgICAgICBzaG9ydCA9IDI1NSAtIHRoaXMudHJhbnNwYXJlbmN5LmluZGV4ZWQubGVuZ3RoOwogICAgICAgICAgICAgICAgaWYgKHNob3J0ID4gMCkgewogICAgICAgICAgICAgICAgICBmb3IgKGkgPSBfaiA9IDA7IDAgPD0gc2hvcnQgPyBfaiA8IHNob3J0IDogX2ogPiBzaG9ydDsgaSA9IDAgPD0gc2hvcnQgPyArK19qIDogLS1faikgewogICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNwYXJlbmN5LmluZGV4ZWQucHVzaCgyNTUpOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zcGFyZW5jeS5ncmF5c2NhbGUgPSB0aGlzLnJlYWQoY2h1bmtTaXplKVswXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIHRoaXMudHJhbnNwYXJlbmN5LnJnYiA9IHRoaXMucmVhZChjaHVua1NpemUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAndEVYdCc6CiAgICAgICAgICAgIHRleHQgPSB0aGlzLnJlYWQoY2h1bmtTaXplKTsKICAgICAgICAgICAgaW5kZXggPSB0ZXh0LmluZGV4T2YoMCk7CiAgICAgICAgICAgIGtleSA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLCB0ZXh0LnNsaWNlKDAsIGluZGV4KSk7CiAgICAgICAgICAgIHRoaXMudGV4dFtrZXldID0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsIHRleHQuc2xpY2UoaW5kZXggKyAxKSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAnSUVORCc6CiAgICAgICAgICAgIHRoaXMuY29sb3JzID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jb2xvclR5cGUpIHsKICAgICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICAgIHJldHVybiAzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkuY2FsbCh0aGlzKTsKICAgICAgICAgICAgdGhpcy5oYXNBbHBoYUNoYW5uZWwgPSAoX3JlZiA9IHRoaXMuY29sb3JUeXBlKSA9PT0gNCB8fCBfcmVmID09PSA2OwogICAgICAgICAgICBjb2xvcnMgPSB0aGlzLmNvbG9ycyArICh0aGlzLmhhc0FscGhhQ2hhbm5lbCA/IDEgOiAwKTsKICAgICAgICAgICAgdGhpcy5waXhlbEJpdGxlbmd0aCA9IHRoaXMuYml0cyAqIGNvbG9yczsKICAgICAgICAgICAgdGhpcy5jb2xvclNwYWNlID0gKGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jb2xvcnMpIHsKICAgICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICAgcmV0dXJuICdEZXZpY2VHcmF5JzsKICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgcmV0dXJuICdEZXZpY2VSR0InOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkuY2FsbCh0aGlzKTsKICAgICAgICAgICAgdGhpcy5pbWdEYXRhID0gbmV3IEJ1ZmZlcih0aGlzLmltZ0RhdGEpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aGlzLnBvcyArPSBjaHVua1NpemU7CiAgICAgICAgfQogICAgICAgIHRoaXMucG9zICs9IDQ7CiAgICAgICAgaWYgKHRoaXMucG9zID4gdGhpcy5kYXRhLmxlbmd0aCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbmNvbXBsZXRlIG9yIGNvcnJ1cHQgUE5HIGZpbGUiKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuOwogICAgfQoKICAgIFBORy5wcm90b3R5cGUucmVhZCA9IGZ1bmN0aW9uKGJ5dGVzKSB7CiAgICAgIHZhciBpLCBfaSwgX3Jlc3VsdHM7CiAgICAgIF9yZXN1bHRzID0gW107CiAgICAgIGZvciAoaSA9IF9pID0gMDsgMCA8PSBieXRlcyA/IF9pIDwgYnl0ZXMgOiBfaSA+IGJ5dGVzOyBpID0gMCA8PSBieXRlcyA/ICsrX2kgOiAtLV9pKSB7CiAgICAgICAgX3Jlc3VsdHMucHVzaCh0aGlzLmRhdGFbdGhpcy5wb3MrK10pOwogICAgICB9CiAgICAgIHJldHVybiBfcmVzdWx0czsKICAgIH07CgogICAgUE5HLnByb3RvdHlwZS5yZWFkVUludDMyID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBiMSwgYjIsIGIzLCBiNDsKICAgICAgYjEgPSB0aGlzLmRhdGFbdGhpcy5wb3MrK10gPDwgMjQ7CiAgICAgIGIyID0gdGhpcy5kYXRhW3RoaXMucG9zKytdIDw8IDE2OwogICAgICBiMyA9IHRoaXMuZGF0YVt0aGlzLnBvcysrXSA8PCA4OwogICAgICBiNCA9IHRoaXMuZGF0YVt0aGlzLnBvcysrXTsKICAgICAgcmV0dXJuIGIxIHwgYjIgfCBiMyB8IGI0OwogICAgfTsKCiAgICBQTkcucHJvdG90eXBlLnJlYWRVSW50MTYgPSBmdW5jdGlvbigpIHsKICAgICAgdmFyIGIxLCBiMjsKICAgICAgYjEgPSB0aGlzLmRhdGFbdGhpcy5wb3MrK10gPDwgODsKICAgICAgYjIgPSB0aGlzLmRhdGFbdGhpcy5wb3MrK107CiAgICAgIHJldHVybiBiMSB8IGIyOwogICAgfTsKCiAgICBQTkcucHJvdG90eXBlLmRlY29kZVBpeGVscyA9IGZ1bmN0aW9uKGZuKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHJldHVybiB6bGliLmluZmxhdGUodGhpcy5pbWdEYXRhLCBmdW5jdGlvbihlcnIsIGRhdGEpIHsKICAgICAgICB2YXIgYnl0ZSwgYywgY29sLCBpLCBsZWZ0LCBsZW5ndGgsIHAsIHBhLCBwYWV0aCwgcGIsIHBjLCBwaXhlbEJ5dGVzLCBwaXhlbHMsIHBvcywgcm93LCBzY2FubGluZUxlbmd0aCwgdXBwZXIsIHVwcGVyTGVmdCwgX2ksIF9qLCBfaywgX2wsIF9tOwogICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgIHRocm93IGVycjsKICAgICAgICB9CiAgICAgICAgcGl4ZWxCeXRlcyA9IF90aGlzLnBpeGVsQml0bGVuZ3RoIC8gODsKICAgICAgICBzY2FubGluZUxlbmd0aCA9IHBpeGVsQnl0ZXMgKiBfdGhpcy53aWR0aDsKICAgICAgICBwaXhlbHMgPSBuZXcgQnVmZmVyKHNjYW5saW5lTGVuZ3RoICogX3RoaXMuaGVpZ2h0KTsKICAgICAgICBsZW5ndGggPSBkYXRhLmxlbmd0aDsKICAgICAgICByb3cgPSAwOwogICAgICAgIHBvcyA9IDA7CiAgICAgICAgYyA9IDA7CiAgICAgICAgd2hpbGUgKHBvcyA8IGxlbmd0aCkgewogICAgICAgICAgc3dpdGNoIChkYXRhW3BvcysrXSkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgZm9yIChpID0gX2kgPSAwOyBfaSA8IHNjYW5saW5lTGVuZ3RoOyBpID0gX2kgKz0gMSkgewogICAgICAgICAgICAgICAgcGl4ZWxzW2MrK10gPSBkYXRhW3BvcysrXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICBmb3IgKGkgPSBfaiA9IDA7IF9qIDwgc2NhbmxpbmVMZW5ndGg7IGkgPSBfaiArPSAxKSB7CiAgICAgICAgICAgICAgICBieXRlID0gZGF0YVtwb3MrK107CiAgICAgICAgICAgICAgICBsZWZ0ID0gaSA8IHBpeGVsQnl0ZXMgPyAwIDogcGl4ZWxzW2MgLSBwaXhlbEJ5dGVzXTsKICAgICAgICAgICAgICAgIHBpeGVsc1tjKytdID0gKGJ5dGUgKyBsZWZ0KSAlIDI1NjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBmb3IgKGkgPSBfayA9IDA7IF9rIDwgc2NhbmxpbmVMZW5ndGg7IGkgPSBfayArPSAxKSB7CiAgICAgICAgICAgICAgICBieXRlID0gZGF0YVtwb3MrK107CiAgICAgICAgICAgICAgICBjb2wgPSAoaSAtIChpICUgcGl4ZWxCeXRlcykpIC8gcGl4ZWxCeXRlczsKICAgICAgICAgICAgICAgIHVwcGVyID0gcm93ICYmIHBpeGVsc1socm93IC0gMSkgKiBzY2FubGluZUxlbmd0aCArIGNvbCAqIHBpeGVsQnl0ZXMgKyAoaSAlIHBpeGVsQnl0ZXMpXTsKICAgICAgICAgICAgICAgIHBpeGVsc1tjKytdID0gKHVwcGVyICsgYnl0ZSkgJSAyNTY7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgZm9yIChpID0gX2wgPSAwOyBfbCA8IHNjYW5saW5lTGVuZ3RoOyBpID0gX2wgKz0gMSkgewogICAgICAgICAgICAgICAgYnl0ZSA9IGRhdGFbcG9zKytdOwogICAgICAgICAgICAgICAgY29sID0gKGkgLSAoaSAlIHBpeGVsQnl0ZXMpKSAvIHBpeGVsQnl0ZXM7CiAgICAgICAgICAgICAgICBsZWZ0ID0gaSA8IHBpeGVsQnl0ZXMgPyAwIDogcGl4ZWxzW2MgLSBwaXhlbEJ5dGVzXTsKICAgICAgICAgICAgICAgIHVwcGVyID0gcm93ICYmIHBpeGVsc1socm93IC0gMSkgKiBzY2FubGluZUxlbmd0aCArIGNvbCAqIHBpeGVsQnl0ZXMgKyAoaSAlIHBpeGVsQnl0ZXMpXTsKICAgICAgICAgICAgICAgIHBpeGVsc1tjKytdID0gKGJ5dGUgKyBNYXRoLmZsb29yKChsZWZ0ICsgdXBwZXIpIC8gMikpICUgMjU2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIGZvciAoaSA9IF9tID0gMDsgX20gPCBzY2FubGluZUxlbmd0aDsgaSA9IF9tICs9IDEpIHsKICAgICAgICAgICAgICAgIGJ5dGUgPSBkYXRhW3BvcysrXTsKICAgICAgICAgICAgICAgIGNvbCA9IChpIC0gKGkgJSBwaXhlbEJ5dGVzKSkgLyBwaXhlbEJ5dGVzOwogICAgICAgICAgICAgICAgbGVmdCA9IGkgPCBwaXhlbEJ5dGVzID8gMCA6IHBpeGVsc1tjIC0gcGl4ZWxCeXRlc107CiAgICAgICAgICAgICAgICBpZiAocm93ID09PSAwKSB7CiAgICAgICAgICAgICAgICAgIHVwcGVyID0gdXBwZXJMZWZ0ID0gMDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHVwcGVyID0gcGl4ZWxzWyhyb3cgLSAxKSAqIHNjYW5saW5lTGVuZ3RoICsgY29sICogcGl4ZWxCeXRlcyArIChpICUgcGl4ZWxCeXRlcyldOwogICAgICAgICAgICAgICAgICB1cHBlckxlZnQgPSBjb2wgJiYgcGl4ZWxzWyhyb3cgLSAxKSAqIHNjYW5saW5lTGVuZ3RoICsgKGNvbCAtIDEpICogcGl4ZWxCeXRlcyArIChpICUgcGl4ZWxCeXRlcyldOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcCA9IGxlZnQgKyB1cHBlciAtIHVwcGVyTGVmdDsKICAgICAgICAgICAgICAgIHBhID0gTWF0aC5hYnMocCAtIGxlZnQpOwogICAgICAgICAgICAgICAgcGIgPSBNYXRoLmFicyhwIC0gdXBwZXIpOwogICAgICAgICAgICAgICAgcGMgPSBNYXRoLmFicyhwIC0gdXBwZXJMZWZ0KTsKICAgICAgICAgICAgICAgIGlmIChwYSA8PSBwYiAmJiBwYSA8PSBwYykgewogICAgICAgICAgICAgICAgICBwYWV0aCA9IGxlZnQ7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBiIDw9IHBjKSB7CiAgICAgICAgICAgICAgICAgIHBhZXRoID0gdXBwZXI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBwYWV0aCA9IHVwcGVyTGVmdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHBpeGVsc1tjKytdID0gKGJ5dGUgKyBwYWV0aCkgJSAyNTY7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCBmaWx0ZXIgYWxnb3JpdGhtOiAiICsgZGF0YVtwb3MgLSAxXSk7CiAgICAgICAgICB9CiAgICAgICAgICByb3crKzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZuKHBpeGVscyk7CiAgICAgIH0pOwogICAgfTsKCiAgICBQTkcucHJvdG90eXBlLmRlY29kZVBhbGV0dGUgPSBmdW5jdGlvbigpIHsKICAgICAgdmFyIGMsIGksIGxlbmd0aCwgcGFsZXR0ZSwgcG9zLCByZXQsIHRyYW5zcGFyZW5jeSwgX2ksIF9yZWYsIF9yZWYxOwogICAgICBwYWxldHRlID0gdGhpcy5wYWxldHRlOwogICAgICB0cmFuc3BhcmVuY3kgPSB0aGlzLnRyYW5zcGFyZW5jeS5pbmRleGVkIHx8IFtdOwogICAgICByZXQgPSBuZXcgQnVmZmVyKHRyYW5zcGFyZW5jeS5sZW5ndGggKyBwYWxldHRlLmxlbmd0aCk7CiAgICAgIHBvcyA9IDA7CiAgICAgIGxlbmd0aCA9IHBhbGV0dGUubGVuZ3RoOwogICAgICBjID0gMDsKICAgICAgZm9yIChpID0gX2kgPSAwLCBfcmVmID0gcGFsZXR0ZS5sZW5ndGg7IF9pIDwgX3JlZjsgaSA9IF9pICs9IDMpIHsKICAgICAgICByZXRbcG9zKytdID0gcGFsZXR0ZVtpXTsKICAgICAgICByZXRbcG9zKytdID0gcGFsZXR0ZVtpICsgMV07CiAgICAgICAgcmV0W3BvcysrXSA9IHBhbGV0dGVbaSArIDJdOwogICAgICAgIHJldFtwb3MrK10gPSAoX3JlZjEgPSB0cmFuc3BhcmVuY3lbYysrXSkgIT0gbnVsbCA/IF9yZWYxIDogMjU1OwogICAgICB9CiAgICAgIHJldHVybiByZXQ7CiAgICB9OwoKICAgIFBORy5wcm90b3R5cGUuY29weVRvSW1hZ2VEYXRhID0gZnVuY3Rpb24oaW1hZ2VEYXRhLCBwaXhlbHMpIHsKICAgICAgdmFyIGFscGhhLCBjb2xvcnMsIGRhdGEsIGksIGlucHV0LCBqLCBrLCBsZW5ndGgsIHBhbGV0dGUsIHYsIF9yZWY7CiAgICAgIGNvbG9ycyA9IHRoaXMuY29sb3JzOwogICAgICBwYWxldHRlID0gbnVsbDsKICAgICAgYWxwaGEgPSB0aGlzLmhhc0FscGhhQ2hhbm5lbDsKICAgICAgaWYgKHRoaXMucGFsZXR0ZS5sZW5ndGgpIHsKICAgICAgICBwYWxldHRlID0gKF9yZWYgPSB0aGlzLl9kZWNvZGVkUGFsZXR0ZSkgIT0gbnVsbCA/IF9yZWYgOiB0aGlzLl9kZWNvZGVkUGFsZXR0ZSA9IHRoaXMuZGVjb2RlUGFsZXR0ZSgpOwogICAgICAgIGNvbG9ycyA9IDQ7CiAgICAgICAgYWxwaGEgPSB0cnVlOwogICAgICB9CiAgICAgIGRhdGEgPSAoaW1hZ2VEYXRhICE9IG51bGwgPyBpbWFnZURhdGEuZGF0YSA6IHZvaWQgMCkgfHwgaW1hZ2VEYXRhOwogICAgICBsZW5ndGggPSBkYXRhLmxlbmd0aDsKICAgICAgaW5wdXQgPSBwYWxldHRlIHx8IHBpeGVsczsKICAgICAgaSA9IGogPSAwOwogICAgICBpZiAoY29sb3JzID09PSAxKSB7CiAgICAgICAgd2hpbGUgKGkgPCBsZW5ndGgpIHsKICAgICAgICAgIGsgPSBwYWxldHRlID8gcGl4ZWxzW2kgLyA0XSAqIDQgOiBqOwogICAgICAgICAgdiA9IGlucHV0W2srK107CiAgICAgICAgICBkYXRhW2krK10gPSB2OwogICAgICAgICAgZGF0YVtpKytdID0gdjsKICAgICAgICAgIGRhdGFbaSsrXSA9IHY7CiAgICAgICAgICBkYXRhW2krK10gPSBhbHBoYSA/IGlucHV0W2srK10gOiAyNTU7CiAgICAgICAgICBqID0gazsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgd2hpbGUgKGkgPCBsZW5ndGgpIHsKICAgICAgICAgIGsgPSBwYWxldHRlID8gcGl4ZWxzW2kgLyA0XSAqIDQgOiBqOwogICAgICAgICAgZGF0YVtpKytdID0gaW5wdXRbaysrXTsKICAgICAgICAgIGRhdGFbaSsrXSA9IGlucHV0W2srK107CiAgICAgICAgICBkYXRhW2krK10gPSBpbnB1dFtrKytdOwogICAgICAgICAgZGF0YVtpKytdID0gYWxwaGEgPyBpbnB1dFtrKytdIDogMjU1OwogICAgICAgICAgaiA9IGs7CiAgICAgICAgfQogICAgICB9CiAgICB9OwoKICAgIFBORy5wcm90b3R5cGUuZGVjb2RlID0gZnVuY3Rpb24oZm4pIHsKICAgICAgdmFyIHJldCwKICAgICAgICBfdGhpcyA9IHRoaXM7CiAgICAgIHJldCA9IG5ldyBCdWZmZXIodGhpcy53aWR0aCAqIHRoaXMuaGVpZ2h0ICogNCk7CiAgICAgIHJldHVybiB0aGlzLmRlY29kZVBpeGVscyhmdW5jdGlvbihwaXhlbHMpIHsKICAgICAgICBfdGhpcy5jb3B5VG9JbWFnZURhdGEocmV0LCBwaXhlbHMpOwogICAgICAgIHJldHVybiBmbihyZXQpOwogICAgICB9KTsKICAgIH07CgogICAgcmV0dXJuIFBORzsKCiAgfSkoKTsKCn0pLmNhbGwodGhpcyk7CgovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi99LmNhbGwoZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXygxKS5CdWZmZXIpKQoKLyoqKi8gfSksCi8qIDMwMiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzKSB7CgovLyBHZW5lcmF0ZWQgYnkgQ29mZmVlU2NyaXB0IDEuMTIuNgooZnVuY3Rpb24oKSB7CiAgbW9kdWxlLmV4cG9ydHMgPSB7CiAgICBhbm5vdGF0ZTogZnVuY3Rpb24oeCwgeSwgdywgaCwgb3B0aW9ucykgewogICAgICB2YXIga2V5LCByZWYsIHZhbDsKICAgICAgb3B0aW9ucy5UeXBlID0gJ0Fubm90JzsKICAgICAgb3B0aW9ucy5SZWN0ID0gdGhpcy5fY29udmVydFJlY3QoeCwgeSwgdywgaCk7CiAgICAgIG9wdGlvbnMuQm9yZGVyID0gWzAsIDAsIDBdOwogICAgICBpZiAob3B0aW9ucy5TdWJ0eXBlICE9PSAnTGluaycpIHsKICAgICAgICBpZiAob3B0aW9ucy5DID09IG51bGwpIHsKICAgICAgICAgIG9wdGlvbnMuQyA9IHRoaXMuX25vcm1hbGl6ZUNvbG9yKG9wdGlvbnMuY29sb3IgfHwgWzAsIDAsIDBdKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZGVsZXRlIG9wdGlvbnMuY29sb3I7CiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5EZXN0ID09PSAnc3RyaW5nJykgewogICAgICAgIG9wdGlvbnMuRGVzdCA9IG5ldyBTdHJpbmcob3B0aW9ucy5EZXN0KTsKICAgICAgfQogICAgICBmb3IgKGtleSBpbiBvcHRpb25zKSB7CiAgICAgICAgdmFsID0gb3B0aW9uc1trZXldOwogICAgICAgIG9wdGlvbnNba2V5WzBdLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSldID0gdmFsOwogICAgICB9CiAgICAgIHJlZiA9IHRoaXMucmVmKG9wdGlvbnMpOwogICAgICB0aGlzLnBhZ2UuYW5ub3RhdGlvbnMucHVzaChyZWYpOwogICAgICByZWYuZW5kKCk7CiAgICAgIHJldHVybiB0aGlzOwogICAgfSwKICAgIG5vdGU6IGZ1bmN0aW9uKHgsIHksIHcsIGgsIGNvbnRlbnRzLCBvcHRpb25zKSB7CiAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHsKICAgICAgICBvcHRpb25zID0ge307CiAgICAgIH0KICAgICAgb3B0aW9ucy5TdWJ0eXBlID0gJ1RleHQnOwogICAgICBvcHRpb25zLkNvbnRlbnRzID0gbmV3IFN0cmluZyhjb250ZW50cyk7CiAgICAgIG9wdGlvbnMuTmFtZSA9ICdDb21tZW50JzsKICAgICAgaWYgKG9wdGlvbnMuY29sb3IgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMuY29sb3IgPSBbMjQzLCAyMjMsIDkyXTsKICAgICAgfQogICAgICByZXR1cm4gdGhpcy5hbm5vdGF0ZSh4LCB5LCB3LCBoLCBvcHRpb25zKTsKICAgIH0sCiAgICBsaW5rOiBmdW5jdGlvbih4LCB5LCB3LCBoLCB1cmwsIG9wdGlvbnMpIHsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBvcHRpb25zLlN1YnR5cGUgPSAnTGluayc7CiAgICAgIG9wdGlvbnMuQSA9IHRoaXMucmVmKHsKICAgICAgICBTOiAnVVJJJywKICAgICAgICBVUkk6IG5ldyBTdHJpbmcodXJsKQogICAgICB9KTsKICAgICAgb3B0aW9ucy5BLmVuZCgpOwogICAgICByZXR1cm4gdGhpcy5hbm5vdGF0ZSh4LCB5LCB3LCBoLCBvcHRpb25zKTsKICAgIH0sCiAgICBfbWFya3VwOiBmdW5jdGlvbih4LCB5LCB3LCBoLCBvcHRpb25zKSB7CiAgICAgIHZhciByZWYxLCB4MSwgeDIsIHkxLCB5MjsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICByZWYxID0gdGhpcy5fY29udmVydFJlY3QoeCwgeSwgdywgaCksIHgxID0gcmVmMVswXSwgeTEgPSByZWYxWzFdLCB4MiA9IHJlZjFbMl0sIHkyID0gcmVmMVszXTsKICAgICAgb3B0aW9ucy5RdWFkUG9pbnRzID0gW3gxLCB5MiwgeDIsIHkyLCB4MSwgeTEsIHgyLCB5MV07CiAgICAgIG9wdGlvbnMuQ29udGVudHMgPSBuZXcgU3RyaW5nOwogICAgICByZXR1cm4gdGhpcy5hbm5vdGF0ZSh4LCB5LCB3LCBoLCBvcHRpb25zKTsKICAgIH0sCiAgICBoaWdobGlnaHQ6IGZ1bmN0aW9uKHgsIHksIHcsIGgsIG9wdGlvbnMpIHsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBvcHRpb25zLlN1YnR5cGUgPSAnSGlnaGxpZ2h0JzsKICAgICAgaWYgKG9wdGlvbnMuY29sb3IgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMuY29sb3IgPSBbMjQxLCAyMzgsIDE0OF07CiAgICAgIH0KICAgICAgcmV0dXJuIHRoaXMuX21hcmt1cCh4LCB5LCB3LCBoLCBvcHRpb25zKTsKICAgIH0sCiAgICB1bmRlcmxpbmU6IGZ1bmN0aW9uKHgsIHksIHcsIGgsIG9wdGlvbnMpIHsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBvcHRpb25zLlN1YnR5cGUgPSAnVW5kZXJsaW5lJzsKICAgICAgcmV0dXJuIHRoaXMuX21hcmt1cCh4LCB5LCB3LCBoLCBvcHRpb25zKTsKICAgIH0sCiAgICBzdHJpa2U6IGZ1bmN0aW9uKHgsIHksIHcsIGgsIG9wdGlvbnMpIHsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBvcHRpb25zLlN1YnR5cGUgPSAnU3RyaWtlT3V0JzsKICAgICAgcmV0dXJuIHRoaXMuX21hcmt1cCh4LCB5LCB3LCBoLCBvcHRpb25zKTsKICAgIH0sCiAgICBsaW5lQW5ub3RhdGlvbjogZnVuY3Rpb24oeDEsIHkxLCB4MiwgeTIsIG9wdGlvbnMpIHsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBvcHRpb25zLlN1YnR5cGUgPSAnTGluZSc7CiAgICAgIG9wdGlvbnMuQ29udGVudHMgPSBuZXcgU3RyaW5nOwogICAgICBvcHRpb25zLkwgPSBbeDEsIHRoaXMucGFnZS5oZWlnaHQgLSB5MSwgeDIsIHRoaXMucGFnZS5oZWlnaHQgLSB5Ml07CiAgICAgIHJldHVybiB0aGlzLmFubm90YXRlKHgxLCB5MSwgeDIsIHkyLCBvcHRpb25zKTsKICAgIH0sCiAgICByZWN0QW5ub3RhdGlvbjogZnVuY3Rpb24oeCwgeSwgdywgaCwgb3B0aW9ucykgewogICAgICBpZiAob3B0aW9ucyA9PSBudWxsKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIG9wdGlvbnMuU3VidHlwZSA9ICdTcXVhcmUnOwogICAgICBvcHRpb25zLkNvbnRlbnRzID0gbmV3IFN0cmluZzsKICAgICAgcmV0dXJuIHRoaXMuYW5ub3RhdGUoeCwgeSwgdywgaCwgb3B0aW9ucyk7CiAgICB9LAogICAgZWxsaXBzZUFubm90YXRpb246IGZ1bmN0aW9uKHgsIHksIHcsIGgsIG9wdGlvbnMpIHsKICAgICAgaWYgKG9wdGlvbnMgPT0gbnVsbCkgewogICAgICAgIG9wdGlvbnMgPSB7fTsKICAgICAgfQogICAgICBvcHRpb25zLlN1YnR5cGUgPSAnQ2lyY2xlJzsKICAgICAgb3B0aW9ucy5Db250ZW50cyA9IG5ldyBTdHJpbmc7CiAgICAgIHJldHVybiB0aGlzLmFubm90YXRlKHgsIHksIHcsIGgsIG9wdGlvbnMpOwogICAgfSwKICAgIHRleHRBbm5vdGF0aW9uOiBmdW5jdGlvbih4LCB5LCB3LCBoLCB0ZXh0LCBvcHRpb25zKSB7CiAgICAgIGlmIChvcHRpb25zID09IG51bGwpIHsKICAgICAgICBvcHRpb25zID0ge307CiAgICAgIH0KICAgICAgb3B0aW9ucy5TdWJ0eXBlID0gJ0ZyZWVUZXh0JzsKICAgICAgb3B0aW9ucy5Db250ZW50cyA9IG5ldyBTdHJpbmcodGV4dCk7CiAgICAgIG9wdGlvbnMuREEgPSBuZXcgU3RyaW5nOwogICAgICByZXR1cm4gdGhpcy5hbm5vdGF0ZSh4LCB5LCB3LCBoLCBvcHRpb25zKTsKICAgIH0sCiAgICBfY29udmVydFJlY3Q6IGZ1bmN0aW9uKHgxLCB5MSwgdywgaCkgewogICAgICB2YXIgbTAsIG0xLCBtMiwgbTMsIG00LCBtNSwgcmVmMSwgeDIsIHkyOwogICAgICB5MiA9IHkxOwogICAgICB5MSArPSBoOwogICAgICB4MiA9IHgxICsgdzsKICAgICAgcmVmMSA9IHRoaXMuX2N0bSwgbTAgPSByZWYxWzBdLCBtMSA9IHJlZjFbMV0sIG0yID0gcmVmMVsyXSwgbTMgPSByZWYxWzNdLCBtNCA9IHJlZjFbNF0sIG01ID0gcmVmMVs1XTsKICAgICAgeDEgPSBtMCAqIHgxICsgbTIgKiB5MSArIG00OwogICAgICB5MSA9IG0xICogeDEgKyBtMyAqIHkxICsgbTU7CiAgICAgIHgyID0gbTAgKiB4MiArIG0yICogeTIgKyBtNDsKICAgICAgeTIgPSBtMSAqIHgyICsgbTMgKiB5MiArIG01OwogICAgICByZXR1cm4gW3gxLCB5MSwgeDIsIHkyXTsKICAgIH0KICB9OwoKfSkuY2FsbCh0aGlzKTsKCgovKioqLyB9KSwKLyogMzAzICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgptb2R1bGUuZXhwb3J0cyA9IHsKCSc0QTAnOiBbNDc2Ny44NywgNjc0MC43OV0sCgknMkEwJzogWzMzNzAuMzksIDQ3NjcuODddLAoJQTA6IFsyMzgzLjk0LCAzMzcwLjM5XSwKCUExOiBbMTY4My43OCwgMjM4My45NF0sCglBMjogWzExOTAuNTUsIDE2ODMuNzhdLAoJQTM6IFs4NDEuODksIDExOTAuNTVdLAoJQTQ6IFs1OTUuMjgsIDg0MS44OV0sCglBNTogWzQxOS41MywgNTk1LjI4XSwKCUE2OiBbMjk3LjY0LCA0MTkuNTNdLAoJQTc6IFsyMDkuNzYsIDI5Ny42NF0sCglBODogWzE0Ny40MCwgMjA5Ljc2XSwKCUE5OiBbMTA0Ljg4LCAxNDcuNDBdLAoJQTEwOiBbNzMuNzAsIDEwNC44OF0sCglCMDogWzI4MzQuNjUsIDQwMDguMTldLAoJQjE6IFsyMDA0LjA5LCAyODM0LjY1XSwKCUIyOiBbMTQxNy4zMiwgMjAwNC4wOV0sCglCMzogWzEwMDAuNjMsIDE0MTcuMzJdLAoJQjQ6IFs3MDguNjYsIDEwMDAuNjNdLAoJQjU6IFs0OTguOTAsIDcwOC42Nl0sCglCNjogWzM1NC4zMywgNDk4LjkwXSwKCUI3OiBbMjQ5LjQ1LCAzNTQuMzNdLAoJQjg6IFsxNzUuNzUsIDI0OS40NV0sCglCOTogWzEyNC43MiwgMTc1Ljc1XSwKCUIxMDogWzg3Ljg3LCAxMjQuNzJdLAoJQzA6IFsyNTk5LjM3LCAzNjc2LjU0XSwKCUMxOiBbMTgzNi44NSwgMjU5OS4zN10sCglDMjogWzEyOTguMjcsIDE4MzYuODVdLAoJQzM6IFs5MTguNDMsIDEyOTguMjddLAoJQzQ6IFs2NDkuMTMsIDkxOC40M10sCglDNTogWzQ1OS4yMSwgNjQ5LjEzXSwKCUM2OiBbMzIzLjE1LCA0NTkuMjFdLAoJQzc6IFsyMjkuNjEsIDMyMy4xNV0sCglDODogWzE2MS41NywgMjI5LjYxXSwKCUM5OiBbMTEzLjM5LCAxNjEuNTddLAoJQzEwOiBbNzkuMzcsIDExMy4zOV0sCglSQTA6IFsyNDM3LjgwLCAzNDU4LjI3XSwKCVJBMTogWzE3MjkuMTMsIDI0MzcuODBdLAoJUkEyOiBbMTIxOC45MCwgMTcyOS4xM10sCglSQTM6IFs4NjQuNTcsIDEyMTguOTBdLAoJUkE0OiBbNjA5LjQ1LCA4NjQuNTddLAoJU1JBMDogWzI1NTEuMTgsIDM2MjguMzVdLAoJU1JBMTogWzE4MTQuMTcsIDI1NTEuMThdLAoJU1JBMjogWzEyNzUuNTksIDE4MTQuMTddLAoJU1JBMzogWzkwNy4wOSwgMTI3NS41OV0sCglTUkE0OiBbNjM3LjgwLCA5MDcuMDldLAoJRVhFQ1VUSVZFOiBbNTIxLjg2LCA3NTYuMDBdLAoJRk9MSU86IFs2MTIuMDAsIDkzNi4wMF0sCglMRUdBTDogWzYxMi4wMCwgMTAwOC4wMF0sCglMRVRURVI6IFs2MTIuMDAsIDc5Mi4wMF0sCglUQUJMT0lEOiBbNzkyLjAwLCAxMjI0LjAwXQp9OwoKCi8qKiovIH0pLAovKiAzMDQgKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXykgewoKInVzZSBzdHJpY3QiOwovKiBXRUJQQUNLIFZBUiBJTkpFQ1RJT04gKi8oZnVuY3Rpb24oQnVmZmVyKSB7Cgp2YXIgUERGSW1hZ2UgPSBfX3dlYnBhY2tfcmVxdWlyZV9fKDEyMSk7CgpmdW5jdGlvbiBJbWFnZU1lYXN1cmUocGRmS2l0RG9jLCBpbWFnZURpY3Rpb25hcnkpIHsKCXRoaXMucGRmS2l0RG9jID0gcGRmS2l0RG9jOwoJdGhpcy5pbWFnZURpY3Rpb25hcnkgPSBpbWFnZURpY3Rpb25hcnkgfHwge307Cn0KCkltYWdlTWVhc3VyZS5wcm90b3R5cGUubWVhc3VyZUltYWdlID0gZnVuY3Rpb24gKHNyYykgewoJdmFyIGltYWdlLCBsYWJlbDsKCXZhciB0aGF0ID0gdGhpczsKCglpZiAoIXRoaXMucGRmS2l0RG9jLl9pbWFnZVJlZ2lzdHJ5W3NyY10pIHsKCQlsYWJlbCA9ICdJJyArICgrK3RoaXMucGRmS2l0RG9jLl9pbWFnZUNvdW50KTsKCQl0cnkgewoJCQlpbWFnZSA9IFBERkltYWdlLm9wZW4ocmVhbEltYWdlU3JjKHNyYyksIGxhYmVsKTsKCQl9IGNhdGNoIChlcnJvcikgewoJCQlpbWFnZSA9IG51bGw7CgkJfQoJCWlmIChpbWFnZSA9PT0gbnVsbCB8fCBpbWFnZSA9PT0gdW5kZWZpbmVkKSB7CgkJCXRocm93ICdpbnZhbGlkIGltYWdlLCBpbWFnZXMgZGljdGlvbmFyeSBzaG91bGQgY29udGFpbiBkYXRhVVJMIGVudHJpZXMgKG9yIGxvY2FsIGZpbGUgcGF0aHMgaW4gbm9kZS5qcyknOwoJCX0KCQlpbWFnZS5lbWJlZCh0aGlzLnBkZktpdERvYyk7CgkJdGhpcy5wZGZLaXREb2MuX2ltYWdlUmVnaXN0cnlbc3JjXSA9IGltYWdlOwoJfSBlbHNlIHsKCQlpbWFnZSA9IHRoaXMucGRmS2l0RG9jLl9pbWFnZVJlZ2lzdHJ5W3NyY107Cgl9CgoJcmV0dXJuIHt3aWR0aDogaW1hZ2Uud2lkdGgsIGhlaWdodDogaW1hZ2UuaGVpZ2h0fTsKCglmdW5jdGlvbiByZWFsSW1hZ2VTcmMoc3JjKSB7CgkJdmFyIGltZyA9IHRoYXQuaW1hZ2VEaWN0aW9uYXJ5W3NyY107CgoJCWlmICghaW1nKSB7CgkJCXJldHVybiBzcmM7CgkJfQoKCQl2YXIgaW5kZXggPSBpbWcuaW5kZXhPZignYmFzZTY0LCcpOwoJCWlmIChpbmRleCA8IDApIHsKCQkJcmV0dXJuIHRoYXQuaW1hZ2VEaWN0aW9uYXJ5W3NyY107CgkJfQoKCQlyZXR1cm4gQnVmZmVyLmZyb20oaW1nLnN1YnN0cmluZyhpbmRleCArIDcpLCAnYmFzZTY0Jyk7Cgl9Cn07Cgptb2R1bGUuZXhwb3J0cyA9IEltYWdlTWVhc3VyZTsKCi8qIFdFQlBBQ0sgVkFSIElOSkVDVElPTiAqL30uY2FsbChleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKDEpLkJ1ZmZlcikpCgovKioqLyB9KSwKLyogMzA1ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pIHsKCiJ1c2Ugc3RyaWN0IjsKCgp2YXIgaXNBcnJheSA9IF9fd2VicGFja19yZXF1aXJlX18oMCkuaXNBcnJheTsKCmZ1bmN0aW9uIGdyb3VwRGVjb3JhdGlvbnMobGluZSkgewoJdmFyIGdyb3VwcyA9IFtdLCBjdXJyZW50R3JvdXAgPSBudWxsOwoJZm9yICh2YXIgaSA9IDAsIGwgPSBsaW5lLmlubGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJdmFyIGlubGluZSA9IGxpbmUuaW5saW5lc1tpXTsKCQl2YXIgZGVjb3JhdGlvbiA9IGlubGluZS5kZWNvcmF0aW9uOwoJCWlmICghZGVjb3JhdGlvbikgewoJCQljdXJyZW50R3JvdXAgPSBudWxsOwoJCQljb250aW51ZTsKCQl9CgkJaWYgKCFpc0FycmF5KGRlY29yYXRpb24pKSB7CgkJCWRlY29yYXRpb24gPSBbZGVjb3JhdGlvbl07CgkJfQoJCXZhciBjb2xvciA9IGlubGluZS5kZWNvcmF0aW9uQ29sb3IgfHwgaW5saW5lLmNvbG9yIHx8ICdibGFjayc7CgkJdmFyIHN0eWxlID0gaW5saW5lLmRlY29yYXRpb25TdHlsZSB8fCAnc29saWQnOwoJCWZvciAodmFyIGlpID0gMCwgbGwgPSBkZWNvcmF0aW9uLmxlbmd0aDsgaWkgPCBsbDsgaWkrKykgewoJCQl2YXIgZGVjb3JhdGlvbkl0ZW0gPSBkZWNvcmF0aW9uW2lpXTsKCQkJaWYgKCFjdXJyZW50R3JvdXAgfHwgZGVjb3JhdGlvbkl0ZW0gIT09IGN1cnJlbnRHcm91cC5kZWNvcmF0aW9uIHx8CgkJCQlzdHlsZSAhPT0gY3VycmVudEdyb3VwLmRlY29yYXRpb25TdHlsZSB8fCBjb2xvciAhPT0gY3VycmVudEdyb3VwLmRlY29yYXRpb25Db2xvciB8fAoJCQkJZGVjb3JhdGlvbkl0ZW0gPT09ICdsaW5lVGhyb3VnaCcpIHsKCgkJCQljdXJyZW50R3JvdXAgPSB7CgkJCQkJbGluZTogbGluZSwKCQkJCQlkZWNvcmF0aW9uOiBkZWNvcmF0aW9uSXRlbSwKCQkJCQlkZWNvcmF0aW9uQ29sb3I6IGNvbG9yLAoJCQkJCWRlY29yYXRpb25TdHlsZTogc3R5bGUsCgkJCQkJaW5saW5lczogW2lubGluZV0KCQkJCX07CgkJCQlncm91cHMucHVzaChjdXJyZW50R3JvdXApOwoJCQl9IGVsc2UgewoJCQkJY3VycmVudEdyb3VwLmlubGluZXMucHVzaChpbmxpbmUpOwoJCQl9CgkJfQoJfQoKCXJldHVybiBncm91cHM7Cn0KCmZ1bmN0aW9uIGRyYXdEZWNvcmF0aW9uKGdyb3VwLCB4LCB5LCBwZGZLaXREb2MpIHsKCWZ1bmN0aW9uIG1heElubGluZSgpIHsKCQl2YXIgbWF4ID0gMDsKCQlmb3IgKHZhciBpID0gMCwgbCA9IGdyb3VwLmlubGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJCXZhciBpbmxpbmUgPSBncm91cC5pbmxpbmVzW2ldOwoJCQltYXggPSBpbmxpbmUuZm9udFNpemUgPiBtYXggPyBpIDogbWF4OwoJCX0KCQlyZXR1cm4gZ3JvdXAuaW5saW5lc1ttYXhdOwoJfQoJZnVuY3Rpb24gd2lkdGgoKSB7CgkJdmFyIHN1bSA9IDA7CgkJZm9yICh2YXIgaSA9IDAsIGwgPSBncm91cC5pbmxpbmVzLmxlbmd0aDsgaSA8IGw7IGkrKykgewoJCQlzdW0gKz0gZ3JvdXAuaW5saW5lc1tpXS53aWR0aDsKCQl9CgkJcmV0dXJuIHN1bTsKCX0KCXZhciBmaXJzdElubGluZSA9IGdyb3VwLmlubGluZXNbMF0sCgkJYmlnZ2VySW5saW5lID0gbWF4SW5saW5lKCksCgkJdG90YWxXaWR0aCA9IHdpZHRoKCksCgkJbGluZUFzY2VudCA9IGdyb3VwLmxpbmUuZ2V0QXNjZW5kZXJIZWlnaHQoKSwKCQlhc2NlbnQgPSBiaWdnZXJJbmxpbmUuZm9udC5hc2NlbmRlciAvIDEwMDAgKiBiaWdnZXJJbmxpbmUuZm9udFNpemUsCgkJaGVpZ2h0ID0gYmlnZ2VySW5saW5lLmhlaWdodCwKCQlkZXNjZW50ID0gaGVpZ2h0IC0gYXNjZW50OwoKCXZhciBsdyA9IDAuNSArIE1hdGguZmxvb3IoTWF0aC5tYXgoYmlnZ2VySW5saW5lLmZvbnRTaXplIC0gOCwgMCkgLyAyKSAqIDAuMTI7CgoJc3dpdGNoIChncm91cC5kZWNvcmF0aW9uKSB7CgkJY2FzZSAndW5kZXJsaW5lJzoKCQkJeSArPSBsaW5lQXNjZW50ICsgZGVzY2VudCAqIDAuNDU7CgkJCWJyZWFrOwoJCWNhc2UgJ292ZXJsaW5lJzoKCQkJeSArPSBsaW5lQXNjZW50IC0gKGFzY2VudCAqIDAuODUpOwoJCQlicmVhazsKCQljYXNlICdsaW5lVGhyb3VnaCc6CgkJCXkgKz0gbGluZUFzY2VudCAtIChhc2NlbnQgKiAwLjI1KTsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJdGhyb3cgJ1Vua293biBkZWNvcmF0aW9uIDogJyArIGdyb3VwLmRlY29yYXRpb247Cgl9CglwZGZLaXREb2Muc2F2ZSgpOwoKCWlmIChncm91cC5kZWNvcmF0aW9uU3R5bGUgPT09ICdkb3VibGUnKSB7CgkJdmFyIGdhcCA9IE1hdGgubWF4KDAuNSwgbHcgKiAyKTsKCQlwZGZLaXREb2MuZmlsbENvbG9yKGdyb3VwLmRlY29yYXRpb25Db2xvcikKCQkJLnJlY3QoeCArIGZpcnN0SW5saW5lLngsIHkgLSBsdyAvIDIsIHRvdGFsV2lkdGgsIGx3IC8gMikuZmlsbCgpCgkJCS5yZWN0KHggKyBmaXJzdElubGluZS54LCB5ICsgZ2FwIC0gbHcgLyAyLCB0b3RhbFdpZHRoLCBsdyAvIDIpLmZpbGwoKTsKCX0gZWxzZSBpZiAoZ3JvdXAuZGVjb3JhdGlvblN0eWxlID09PSAnZGFzaGVkJykgewoJCXZhciBuYkRhc2hlcyA9IE1hdGguY2VpbCh0b3RhbFdpZHRoIC8gKDMuOTYgKyAyLjg0KSk7CgkJdmFyIHJkeCA9IHggKyBmaXJzdElubGluZS54OwoJCXBkZktpdERvYy5yZWN0KHJkeCwgeSwgdG90YWxXaWR0aCwgbHcpLmNsaXAoKTsKCQlwZGZLaXREb2MuZmlsbENvbG9yKGdyb3VwLmRlY29yYXRpb25Db2xvcik7CgkJZm9yICh2YXIgaSA9IDA7IGkgPCBuYkRhc2hlczsgaSsrKSB7CgkJCXBkZktpdERvYy5yZWN0KHJkeCwgeSAtIGx3IC8gMiwgMy45NiwgbHcpLmZpbGwoKTsKCQkJcmR4ICs9IDMuOTYgKyAyLjg0OwoJCX0KCX0gZWxzZSBpZiAoZ3JvdXAuZGVjb3JhdGlvblN0eWxlID09PSAnZG90dGVkJykgewoJCXZhciBuYkRvdHMgPSBNYXRoLmNlaWwodG90YWxXaWR0aCAvIChsdyAqIDMpKTsKCQl2YXIgcnggPSB4ICsgZmlyc3RJbmxpbmUueDsKCQlwZGZLaXREb2MucmVjdChyeCwgeSwgdG90YWxXaWR0aCwgbHcpLmNsaXAoKTsKCQlwZGZLaXREb2MuZmlsbENvbG9yKGdyb3VwLmRlY29yYXRpb25Db2xvcik7CgkJZm9yICh2YXIgaWkgPSAwOyBpaSA8IG5iRG90czsgaWkrKykgewoJCQlwZGZLaXREb2MucmVjdChyeCwgeSAtIGx3IC8gMiwgbHcsIGx3KS5maWxsKCk7CgkJCXJ4ICs9IChsdyAqIDMpOwoJCX0KCX0gZWxzZSBpZiAoZ3JvdXAuZGVjb3JhdGlvblN0eWxlID09PSAnd2F2eScpIHsKCQl2YXIgc2ggPSAwLjcsIHN2ID0gMTsKCQl2YXIgbmJXYXZlcyA9IE1hdGguY2VpbCh0b3RhbFdpZHRoIC8gKHNoICogMikpICsgMTsKCQl2YXIgcnd4ID0geCArIGZpcnN0SW5saW5lLnggLSAxOwoJCXBkZktpdERvYy5yZWN0KHggKyBmaXJzdElubGluZS54LCB5IC0gc3YsIHRvdGFsV2lkdGgsIHkgKyBzdikuY2xpcCgpOwoJCXBkZktpdERvYy5saW5lV2lkdGgoMC4yNCk7CgkJcGRmS2l0RG9jLm1vdmVUbyhyd3gsIHkpOwoJCWZvciAodmFyIGlpaSA9IDA7IGlpaSA8IG5iV2F2ZXM7IGlpaSsrKSB7CgkJCXBkZktpdERvYy5iZXppZXJDdXJ2ZVRvKHJ3eCArIHNoLCB5IC0gc3YsIHJ3eCArIHNoICogMiwgeSAtIHN2LCByd3ggKyBzaCAqIDMsIHkpCgkJCQkuYmV6aWVyQ3VydmVUbyhyd3ggKyBzaCAqIDQsIHkgKyBzdiwgcnd4ICsgc2ggKiA1LCB5ICsgc3YsIHJ3eCArIHNoICogNiwgeSk7CgkJCXJ3eCArPSBzaCAqIDY7CgkJfQoJCXBkZktpdERvYy5zdHJva2UoZ3JvdXAuZGVjb3JhdGlvbkNvbG9yKTsKCX0gZWxzZSB7CgkJcGRmS2l0RG9jLmZpbGxDb2xvcihncm91cC5kZWNvcmF0aW9uQ29sb3IpCgkJCS5yZWN0KHggKyBmaXJzdElubGluZS54LCB5IC0gbHcgLyAyLCB0b3RhbFdpZHRoLCBsdykKCQkJLmZpbGwoKTsKCX0KCXBkZktpdERvYy5yZXN0b3JlKCk7Cn0KCmZ1bmN0aW9uIGRyYXdEZWNvcmF0aW9ucyhsaW5lLCB4LCB5LCBwZGZLaXREb2MpIHsKCXZhciBncm91cHMgPSBncm91cERlY29yYXRpb25zKGxpbmUpOwoJZm9yICh2YXIgaSA9IDAsIGwgPSBncm91cHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJZHJhd0RlY29yYXRpb24oZ3JvdXBzW2ldLCB4LCB5LCBwZGZLaXREb2MpOwoJfQp9CgpmdW5jdGlvbiBkcmF3QmFja2dyb3VuZChsaW5lLCB4LCB5LCBwZGZLaXREb2MpIHsKCXZhciBoZWlnaHQgPSBsaW5lLmdldEhlaWdodCgpOwoJZm9yICh2YXIgaSA9IDAsIGwgPSBsaW5lLmlubGluZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CgkJdmFyIGlubGluZSA9IGxpbmUuaW5saW5lc1tpXTsKCQlpZiAoIWlubGluZS5iYWNrZ3JvdW5kKSB7CgkJCWNvbnRpbnVlOwoJCX0KCQl2YXIganVzdGlmeVNoaWZ0ID0gKGlubGluZS5qdXN0aWZ5U2hpZnQgfHwgMCk7CgkJcGRmS2l0RG9jLmZpbGxDb2xvcihpbmxpbmUuYmFja2dyb3VuZCkKCQkJLnJlY3QoeCArIGlubGluZS54IC0ganVzdGlmeVNoaWZ0LCB5LCBpbmxpbmUud2lkdGggKyBqdXN0aWZ5U2hpZnQsIGhlaWdodCkKCQkJLmZpbGwoKTsKCX0KfQoKbW9kdWxlLmV4cG9ydHMgPSB7CglkcmF3QmFja2dyb3VuZDogZHJhd0JhY2tncm91bmQsCglkcmF3RGVjb3JhdGlvbnM6IGRyYXdEZWNvcmF0aW9ucwp9OwoKLyoqKi8gfSksCi8qIDMwNiAqLwovKioqLyAoZnVuY3Rpb24obW9kdWxlLCBleHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKSB7Cgp2YXIgX19XRUJQQUNLX0FNRF9ERUZJTkVfUkVTVUxUX187LyogRmlsZVNhdmVyLmpzCiAqIEEgc2F2ZUFzKCkgRmlsZVNhdmVyIGltcGxlbWVudGF0aW9uLgogKiAxLjMuMgogKiAyMDE2LTA2LTE2IDE4OjI1OjE5CiAqCiAqIEJ5IEVsaSBHcmV5LCBodHRwOi8vZWxpZ3JleS5jb20KICogTGljZW5zZTogTUlUCiAqICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9lbGlncmV5L0ZpbGVTYXZlci5qcy9ibG9iL21hc3Rlci9MSUNFTlNFLm1kCiAqLwoKLypnbG9iYWwgc2VsZiAqLwovKmpzbGludCBiaXR3aXNlOiB0cnVlLCBpbmRlbnQ6IDQsIGxheGJyZWFrOiB0cnVlLCBsYXhjb21tYTogdHJ1ZSwgc21hcnR0YWJzOiB0cnVlLCBwbHVzcGx1czogdHJ1ZSAqLwoKLyohIEBzb3VyY2UgaHR0cDovL3B1cmwuZWxpZ3JleS5jb20vZ2l0aHViL0ZpbGVTYXZlci5qcy9ibG9iL21hc3Rlci9GaWxlU2F2ZXIuanMgKi8KCnZhciBzYXZlQXMgPSBzYXZlQXMgfHwgKGZ1bmN0aW9uKHZpZXcpIHsKCSJ1c2Ugc3RyaWN0IjsKCS8vIElFIDwxMCBpcyBleHBsaWNpdGx5IHVuc3VwcG9ydGVkCglpZiAodHlwZW9mIHZpZXcgPT09ICJ1bmRlZmluZWQiIHx8IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICJ1bmRlZmluZWQiICYmIC9NU0lFIFsxLTldXC4vLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpIHsKCQlyZXR1cm47Cgl9Cgl2YXIKCQkgIGRvYyA9IHZpZXcuZG9jdW1lbnQKCQkgIC8vIG9ubHkgZ2V0IFVSTCB3aGVuIG5lY2Vzc2FyeSBpbiBjYXNlIEJsb2IuanMgaGFzbid0IG92ZXJyaWRkZW4gaXQgeWV0CgkJLCBnZXRfVVJMID0gZnVuY3Rpb24oKSB7CgkJCXJldHVybiB2aWV3LlVSTCB8fCB2aWV3LndlYmtpdFVSTCB8fCB2aWV3OwoJCX0KCQksIHNhdmVfbGluayA9IGRvYyA/IGRvYy5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiYSIpIDogW10KCQksIGNhbl91c2Vfc2F2ZV9saW5rID0gImRvd25sb2FkIiBpbiBzYXZlX2xpbmsKCQksIGNsaWNrID0gZnVuY3Rpb24obm9kZSkgewoJCQl2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgiY2xpY2siKTsKCQkJbm9kZS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKCQl9CgkJLCBpc19zYWZhcmkgPSAvY29uc3RydWN0b3IvaS50ZXN0KHZpZXcuSFRNTEVsZW1lbnQpIHx8IHZpZXcuc2FmYXJpCgkJLCBpc19jaHJvbWVfaW9zID0vQ3JpT1NcL1tcZF0rLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpCgkJLCB0aHJvd19vdXRzaWRlID0gZnVuY3Rpb24oZXgpIHsKCQkJKHZpZXcuc2V0SW1tZWRpYXRlIHx8IHZpZXcuc2V0VGltZW91dCkoZnVuY3Rpb24oKSB7CgkJCQl0aHJvdyBleDsKCQkJfSwgMCk7CgkJfQoJCSwgZm9yY2Vfc2F2ZWFibGVfdHlwZSA9ICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iCgkJLy8gdGhlIEJsb2IgQVBJIGlzIGZ1bmRhbWVudGFsbHkgYnJva2VuIGFzIHRoZXJlIGlzIG5vICJkb3dubG9hZGZpbmlzaGVkIiBldmVudCB0byBzdWJzY3JpYmUgdG8KCQksIGFyYml0cmFyeV9yZXZva2VfdGltZW91dCA9IDEwMDAgKiA0MCAvLyBpbiBtcwoJCSwgcmV2b2tlID0gZnVuY3Rpb24oZmlsZSkgewoJCQl2YXIgcmV2b2tlciA9IGZ1bmN0aW9uKCkgewoJCQkJaWYgKHR5cGVvZiBmaWxlID09PSAic3RyaW5nIikgeyAvLyBmaWxlIGlzIGFuIG9iamVjdCBVUkwKCQkJCQlnZXRfVVJMKCkucmV2b2tlT2JqZWN0VVJMKGZpbGUpOwoJCQkJfSBlbHNlIHsgLy8gZmlsZSBpcyBhIEZpbGUKCQkJCQlmaWxlLnJlbW92ZSgpOwoJCQkJfQoJCQl9OwoJCQlzZXRUaW1lb3V0KHJldm9rZXIsIGFyYml0cmFyeV9yZXZva2VfdGltZW91dCk7CgkJfQoJCSwgZGlzcGF0Y2ggPSBmdW5jdGlvbihmaWxlc2F2ZXIsIGV2ZW50X3R5cGVzLCBldmVudCkgewoJCQlldmVudF90eXBlcyA9IFtdLmNvbmNhdChldmVudF90eXBlcyk7CgkJCXZhciBpID0gZXZlbnRfdHlwZXMubGVuZ3RoOwoJCQl3aGlsZSAoaS0tKSB7CgkJCQl2YXIgbGlzdGVuZXIgPSBmaWxlc2F2ZXJbIm9uIiArIGV2ZW50X3R5cGVzW2ldXTsKCQkJCWlmICh0eXBlb2YgbGlzdGVuZXIgPT09ICJmdW5jdGlvbiIpIHsKCQkJCQl0cnkgewoJCQkJCQlsaXN0ZW5lci5jYWxsKGZpbGVzYXZlciwgZXZlbnQgfHwgZmlsZXNhdmVyKTsKCQkJCQl9IGNhdGNoIChleCkgewoJCQkJCQl0aHJvd19vdXRzaWRlKGV4KTsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJLCBhdXRvX2JvbSA9IGZ1bmN0aW9uKGJsb2IpIHsKCQkJLy8gcHJlcGVuZCBCT00gZm9yIFVURi04IFhNTCBhbmQgdGV4dC8qIHR5cGVzIChpbmNsdWRpbmcgSFRNTCkKCQkJLy8gbm90ZTogeW91ciBicm93c2VyIHdpbGwgYXV0b21hdGljYWxseSBjb252ZXJ0IFVURi0xNiBVK0ZFRkYgdG8gRUYgQkIgQkYKCQkJaWYgKC9eXHMqKD86dGV4dFwvXFMqfGFwcGxpY2F0aW9uXC94bWx8XFMqXC9cUypcK3htbClccyo7LipjaGFyc2V0XHMqPVxzKnV0Zi04L2kudGVzdChibG9iLnR5cGUpKSB7CgkJCQlyZXR1cm4gbmV3IEJsb2IoW1N0cmluZy5mcm9tQ2hhckNvZGUoMHhGRUZGKSwgYmxvYl0sIHt0eXBlOiBibG9iLnR5cGV9KTsKCQkJfQoJCQlyZXR1cm4gYmxvYjsKCQl9CgkJLCBGaWxlU2F2ZXIgPSBmdW5jdGlvbihibG9iLCBuYW1lLCBub19hdXRvX2JvbSkgewoJCQlpZiAoIW5vX2F1dG9fYm9tKSB7CgkJCQlibG9iID0gYXV0b19ib20oYmxvYik7CgkJCX0KCQkJLy8gRmlyc3QgdHJ5IGEuZG93bmxvYWQsIHRoZW4gd2ViIGZpbGVzeXN0ZW0sIHRoZW4gb2JqZWN0IFVSTHMKCQkJdmFyCgkJCQkgIGZpbGVzYXZlciA9IHRoaXMKCQkJCSwgdHlwZSA9IGJsb2IudHlwZQoJCQkJLCBmb3JjZSA9IHR5cGUgPT09IGZvcmNlX3NhdmVhYmxlX3R5cGUKCQkJCSwgb2JqZWN0X3VybAoJCQkJLCBkaXNwYXRjaF9hbGwgPSBmdW5jdGlvbigpIHsKCQkJCQlkaXNwYXRjaChmaWxlc2F2ZXIsICJ3cml0ZXN0YXJ0IHByb2dyZXNzIHdyaXRlIHdyaXRlZW5kIi5zcGxpdCgiICIpKTsKCQkJCX0KCQkJCS8vIG9uIGFueSBmaWxlc3lzIGVycm9ycyByZXZlcnQgdG8gc2F2aW5nIHdpdGggb2JqZWN0IFVSTHMKCQkJCSwgZnNfZXJyb3IgPSBmdW5jdGlvbigpIHsKCQkJCQlpZiAoKGlzX2Nocm9tZV9pb3MgfHwgKGZvcmNlICYmIGlzX3NhZmFyaSkpICYmIHZpZXcuRmlsZVJlYWRlcikgewoJCQkJCQkvLyBTYWZhcmkgZG9lc24ndCBhbGxvdyBkb3dubG9hZGluZyBvZiBibG9iIHVybHMKCQkJCQkJdmFyIHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CgkJCQkJCXJlYWRlci5vbmxvYWRlbmQgPSBmdW5jdGlvbigpIHsKCQkJCQkJCXZhciB1cmwgPSBpc19jaHJvbWVfaW9zID8gcmVhZGVyLnJlc3VsdCA6IHJlYWRlci5yZXN1bHQucmVwbGFjZSgvXmRhdGE6W147XSo7LywgJ2RhdGE6YXR0YWNobWVudC9maWxlOycpOwoJCQkJCQkJdmFyIHBvcHVwID0gdmlldy5vcGVuKHVybCwgJ19ibGFuaycpOwoJCQkJCQkJaWYoIXBvcHVwKSB2aWV3LmxvY2F0aW9uLmhyZWYgPSB1cmw7CgkJCQkJCQl1cmw9dW5kZWZpbmVkOyAvLyByZWxlYXNlIHJlZmVyZW5jZSBiZWZvcmUgZGlzcGF0Y2hpbmcKCQkJCQkJCWZpbGVzYXZlci5yZWFkeVN0YXRlID0gZmlsZXNhdmVyLkRPTkU7CgkJCQkJCQlkaXNwYXRjaF9hbGwoKTsKCQkJCQkJfTsKCQkJCQkJcmVhZGVyLnJlYWRBc0RhdGFVUkwoYmxvYik7CgkJCQkJCWZpbGVzYXZlci5yZWFkeVN0YXRlID0gZmlsZXNhdmVyLklOSVQ7CgkJCQkJCXJldHVybjsKCQkJCQl9CgkJCQkJLy8gZG9uJ3QgY3JlYXRlIG1vcmUgb2JqZWN0IFVSTHMgdGhhbiBuZWVkZWQKCQkJCQlpZiAoIW9iamVjdF91cmwpIHsKCQkJCQkJb2JqZWN0X3VybCA9IGdldF9VUkwoKS5jcmVhdGVPYmplY3RVUkwoYmxvYik7CgkJCQkJfQoJCQkJCWlmIChmb3JjZSkgewoJCQkJCQl2aWV3LmxvY2F0aW9uLmhyZWYgPSBvYmplY3RfdXJsOwoJCQkJCX0gZWxzZSB7CgkJCQkJCXZhciBvcGVuZWQgPSB2aWV3Lm9wZW4ob2JqZWN0X3VybCwgIl9ibGFuayIpOwoJCQkJCQlpZiAoIW9wZW5lZCkgewoJCQkJCQkJLy8gQXBwbGUgZG9lcyBub3QgYWxsb3cgd2luZG93Lm9wZW4sIHNlZSBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9zYWZhcmkvZG9jdW1lbnRhdGlvbi9Ub29scy9Db25jZXB0dWFsL1NhZmFyaUV4dGVuc2lvbkd1aWRlL1dvcmtpbmd3aXRoV2luZG93c2FuZFRhYnMvV29ya2luZ3dpdGhXaW5kb3dzYW5kVGFicy5odG1sCgkJCQkJCQl2aWV3LmxvY2F0aW9uLmhyZWYgPSBvYmplY3RfdXJsOwoJCQkJCQl9CgkJCQkJfQoJCQkJCWZpbGVzYXZlci5yZWFkeVN0YXRlID0gZmlsZXNhdmVyLkRPTkU7CgkJCQkJZGlzcGF0Y2hfYWxsKCk7CgkJCQkJcmV2b2tlKG9iamVjdF91cmwpOwoJCQkJfQoJCQk7CgkJCWZpbGVzYXZlci5yZWFkeVN0YXRlID0gZmlsZXNhdmVyLklOSVQ7CgoJCQlpZiAoY2FuX3VzZV9zYXZlX2xpbmspIHsKCQkJCW9iamVjdF91cmwgPSBnZXRfVVJMKCkuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwoJCQkJc2V0VGltZW91dChmdW5jdGlvbigpIHsKCQkJCQlzYXZlX2xpbmsuaHJlZiA9IG9iamVjdF91cmw7CgkJCQkJc2F2ZV9saW5rLmRvd25sb2FkID0gbmFtZTsKCQkJCQljbGljayhzYXZlX2xpbmspOwoJCQkJCWRpc3BhdGNoX2FsbCgpOwoJCQkJCXJldm9rZShvYmplY3RfdXJsKTsKCQkJCQlmaWxlc2F2ZXIucmVhZHlTdGF0ZSA9IGZpbGVzYXZlci5ET05FOwoJCQkJfSk7CgkJCQlyZXR1cm47CgkJCX0KCgkJCWZzX2Vycm9yKCk7CgkJfQoJCSwgRlNfcHJvdG8gPSBGaWxlU2F2ZXIucHJvdG90eXBlCgkJLCBzYXZlQXMgPSBmdW5jdGlvbihibG9iLCBuYW1lLCBub19hdXRvX2JvbSkgewoJCQlyZXR1cm4gbmV3IEZpbGVTYXZlcihibG9iLCBuYW1lIHx8IGJsb2IubmFtZSB8fCAiZG93bmxvYWQiLCBub19hdXRvX2JvbSk7CgkJfQoJOwoJLy8gSUUgMTArIChuYXRpdmUgc2F2ZUFzKQoJaWYgKHR5cGVvZiBuYXZpZ2F0b3IgIT09ICJ1bmRlZmluZWQiICYmIG5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKSB7CgkJcmV0dXJuIGZ1bmN0aW9uKGJsb2IsIG5hbWUsIG5vX2F1dG9fYm9tKSB7CgkJCW5hbWUgPSBuYW1lIHx8IGJsb2IubmFtZSB8fCAiZG93bmxvYWQiOwoKCQkJaWYgKCFub19hdXRvX2JvbSkgewoJCQkJYmxvYiA9IGF1dG9fYm9tKGJsb2IpOwoJCQl9CgkJCXJldHVybiBuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihibG9iLCBuYW1lKTsKCQl9OwoJfQoKCUZTX3Byb3RvLmFib3J0ID0gZnVuY3Rpb24oKXt9OwoJRlNfcHJvdG8ucmVhZHlTdGF0ZSA9IEZTX3Byb3RvLklOSVQgPSAwOwoJRlNfcHJvdG8uV1JJVElORyA9IDE7CglGU19wcm90by5ET05FID0gMjsKCglGU19wcm90by5lcnJvciA9CglGU19wcm90by5vbndyaXRlc3RhcnQgPQoJRlNfcHJvdG8ub25wcm9ncmVzcyA9CglGU19wcm90by5vbndyaXRlID0KCUZTX3Byb3RvLm9uYWJvcnQgPQoJRlNfcHJvdG8ub25lcnJvciA9CglGU19wcm90by5vbndyaXRlZW5kID0KCQludWxsOwoKCXJldHVybiBzYXZlQXM7Cn0oCgkgICB0eXBlb2Ygc2VsZiAhPT0gInVuZGVmaW5lZCIgJiYgc2VsZgoJfHwgdHlwZW9mIHdpbmRvdyAhPT0gInVuZGVmaW5lZCIgJiYgd2luZG93Cgl8fCB0aGlzLmNvbnRlbnQKKSk7Ci8vIGBzZWxmYCBpcyB1bmRlZmluZWQgaW4gRmlyZWZveCBmb3IgQW5kcm9pZCBjb250ZW50IHNjcmlwdCBjb250ZXh0Ci8vIHdoaWxlIGB0aGlzYCBpcyBuc0lDb250ZW50RnJhbWVNZXNzYWdlTWFuYWdlcgovLyB3aXRoIGFuIGF0dHJpYnV0ZSBgY29udGVudGAgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgd2luZG93CgppZiAodHlwZW9mIG1vZHVsZSAhPT0gInVuZGVmaW5lZCIgJiYgbW9kdWxlLmV4cG9ydHMpIHsKICBtb2R1bGUuZXhwb3J0cy5zYXZlQXMgPSBzYXZlQXM7Cn0gZWxzZSBpZiAoKCJmdW5jdGlvbiIgIT09ICJ1bmRlZmluZWQiICYmIF9fd2VicGFja19yZXF1aXJlX18oMzA3KSAhPT0gbnVsbCkgJiYgKF9fd2VicGFja19yZXF1aXJlX18oMzA4KSAhPT0gbnVsbCkpIHsKICAhKF9fV0VCUEFDS19BTURfREVGSU5FX1JFU1VMVF9fID0gKGZ1bmN0aW9uKCkgewogICAgcmV0dXJuIHNhdmVBczsKICB9KS5jYWxsKGV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18sIGV4cG9ydHMsIG1vZHVsZSksCgkJCQlfX1dFQlBBQ0tfQU1EX0RFRklORV9SRVNVTFRfXyAhPT0gdW5kZWZpbmVkICYmIChtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19BTURfREVGSU5FX1JFU1VMVF9fKSk7Cn0KCgovKioqLyB9KSwKLyogMzA3ICovCi8qKiovIChmdW5jdGlvbihtb2R1bGUsIGV4cG9ydHMpIHsKCm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7Cgl0aHJvdyBuZXcgRXJyb3IoImRlZmluZSBjYW5ub3QgYmUgdXNlZCBpbmRpcmVjdCIpOwp9OwoKCi8qKiovIH0pLAovKiAzMDggKi8KLyoqKi8gKGZ1bmN0aW9uKG1vZHVsZSwgZXhwb3J0cykgewoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovKGZ1bmN0aW9uKF9fd2VicGFja19hbWRfb3B0aW9uc19fKSB7LyogZ2xvYmFscyBfX3dlYnBhY2tfYW1kX29wdGlvbnNfXyAqLwptb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19hbWRfb3B0aW9uc19fOwoKLyogV0VCUEFDSyBWQVIgSU5KRUNUSU9OICovfS5jYWxsKGV4cG9ydHMsIHt9KSkKCi8qKiovIH0pCi8qKioqKiovIF0pOwp9KTs="></script>
|
||
<script src="data:application/javascript;base64,dGhpcy5wZGZNYWtlID0gdGhpcy5wZGZNYWtlIHx8IHt9OyB0aGlzLnBkZk1ha2UudmZzID0gewogICJSb2JvdG8tSXRhbGljLnR0ZiI6ICJBQUVBQUFBU0FRQUFCQUFnUjBSRlJ0UlgxRmtBQWdwOEFBQUNSRWRRVDFOS2N1Q3pBQUlNd0FBQVVpUkhVMVZDdzRhWkVRQUNYdVFBQUJmb1QxTXZNcUNuc08wQUFBR29BQUFBWUdOdFlYQkFiYjlEQUFBYWZBQUFCb0JqZG5RZ0pFRUc1UUFBSTVRQUFBQk1abkJuYldmMFhLc0FBQ0Q4QUFBQnZHZGhjM0FBQ0FBVEFBSUtjQUFBQUF4bmJIbG1vTHNrdEFBQUxhZ0FBZG4yYUdSdGVDRWUvQVVBQUJXUUFBQUU3R2hsWVdUNGdhc0FBQUFCTEFBQUFEWm9hR1ZoREtZU2VnQUFBV1FBQUFBa2FHMTBlSEpPMXlnQUFBSUlBQUFUaUd4dlkyRVhNNXpCQUFBajRBQUFDY1p0WVhod0J4SUNXd0FBQVlnQUFBQWdibUZ0WlRsTFpGQUFBZ2VnQUFBQ3JuQnZjM1QvWVFCa0FBSUtVQUFBQUNCd2NtVndkS0NQN0FBQUlyZ0FBQURiQUFFQUFBQUNBQUFjYWRJaVh3ODg5UUFiQ0FBQUFBQUF4UEFSTGdBQUFBRFEyMDZNK2pqOTFRbE1DSE1BQWdBSkFBSUFBQUFBQUFBQUFRQUFCMnorREFBQUNSYjZPUDUyQ1V3SUFBR3pBQUFBQUFBQUFBQUFBQUFBQk9JQUFRQUFCT0lBa0FBV0FGWUFCUUFCQUFBQUFBQU9BQUFDQUFGekFBWUFBUUFEQkFzQmtBQUZBQUFGbWdVekFBQUJId1dhQlRNQUFBUFJBR1lDQUFBQUFnQUFBQUFBQUFBQUFPQUFDdjlRQUNGL0FBQUFJUUFBQUFCSFQwOUhBQUVBQVAvOUJnRCtBQUJtQjVvQ0FDQUFBWjhBQUFBQUJEb0ZzQUFnQUNBQUFnT1dBR1FBQ2dBQUFBb0FBQUgyQUFBQjlnQUFBZ2tBUXdLRkFNZ0UwUUJTQkdZQVNnVzVBTHNFM1FBNkFXUUFxZ0t4QUcwQ3ZmK1BBMklBYXdSd0FFd0JrUCtQQWk0QUdRSVZBRFVEUGYrUEJHWUFhQVJtQVBrRVpnQVhCR1lBTkFSbUFBVUVaZ0J5QkdZQWNBUm1BSjBFWmdCQkJHWUFsQUhyQUNzQnJ2K2JBL3dBUVFSTUFIQUVHQUE2QTdRQXBRY0NBRVFGR3YrdkJOOEFPd1VYQUhRRklRQTdCSE1BT3dSVUFEc0ZVd0I1QlpJQU93SW1BRWtFVWdBS0JPY0FPd1EzQURzRzBBQTdCWklBT3dWZ0FIY0U3d0E3QldBQWJ3VFJBRG9FcFFBbkJLc0FxQVVTQUdjRStnQ2tCdXdBd3dUbi85UUVzd0NvQksvLzZ3SVovLzhET1FDL0Fobi9lZ05JQUU4RGl2K0JBbkFBendSREFETUVaUUFmQkJvQVJnUnFBRXNFSmdCRkFyd0FkQVJsQUFRRVVBQWZBZXdBTHdIay94UUQrUUFnQWV3QUx3YlhBQjRFVWdBZkJIY0FSUVJsLzljRWN3QkpBcW9BSHdRS0FDNENrd0JEQkZFQVd3UE1BRzRGM3dDQUErUC94QU8yLzZVRDQvL3RBcW9BT0FIdUFDRUNxditNQlZFQWFRSHUvL0VFU0FCU0JJei84d1dTQUJJRXZRQlRBZWIvOXdUTS85MERTQURiQmlNQVlnT0NBTU1EcmdCWkJGWUFnUVlrQUdFRG1BRGpBdkFBNkFRdkFDVUM0Z0JjQXVJQWJnSjVBTlVFYi8vbEE5VUFld0lRQUtVQjl2L0lBdUlBM3dPUkFNQURyUUFQQmJrQXVRWVBBTFFHRXdDZUE3Yi8wd2RMLzRRRUxRQW9CV0FBSUFTZ0FEZ0Vwd0FlQnBjQUV3U1dBRndFZUFCRUJHOEFPUVNELytBRmVRQTFBZlVBTGdSYkFDMEVPQUFpQWlJQUl3VnFBRFVFYndBa0IzQUFWQWNXQUVjQjl3QXpCV2NBVVFLdS8wa0ZYZ0JuQkhrQVFnVnZBR2NFMXdCYUFmNy9DUVFoQUQ0RHNRRVhBM3dCSmdPWkFPTURXZ0VIQWV3QkRnS2lBUUVDSS8rdkE3TUEzUUx2QU1JQ1V2L3BBQXI5YWdBSy9lc0FDdjBMQUFyOTlRQUsvTnNCNnZ5N0FnY0JJUVAyQVBNQ0VRQ2xCRnNBUXdXRC83RUZVUUJwQlNEL3hBUjRBQXdGa3dCRUJIai8yZ1daQUZRRmFBQ0dCVE1BQ2dSc0FFZ0VvLy93QSswQWhBUnZBRU1FT1FBcEJBOEFnZ1J2QUNRRWRRQnpBbzBBaFFSVy83Y0QyQUEvQktrQVlBUnYvOXdFTmdCT0JHOEFTZ1FXQUljRVJRQm5CWUlBUVFWNUFFOEdiZ0JtQkljQVVRUXJBR2NHSWdCbUJkc0FvUVZGQUhnSVdmL01DR3dBUXdaYUFMUUZrZ0JDQk80QU5BWGcvNHNIRmYrc0JLVUFKUVdTQUVNRmlQL0tCT29Ba3dZSEFGc0Z0Z0JCQlZvQXpnZFhBRUlIamdCQ0JlMEFpUWJBQUVVRTZBQTJCVVVBZEFiNkFFa0UrLy9vQkZRQVJnUjVBREFEU3dBdEJMbi9qUVg3LzZVRCt3QWhCSVVBTHdRN0FDOEVodi9JQmNzQU1BU0VBQzhFaFFBdkE4UUFZQVdxQUV3RW93QXZCRUlBZXdaUUFDOEdkUUFrQk5zQVZnWVFBREFFUVFBd0JEWUFOQVpmQURBRVRQKy9CRkFBSHdRMkFFNEduLy9EQnJrQUx3UndBQjhFaFFBdkJ0d0Fid1lHQUU4RVB3QXVCdjRBU1FYVUFDd0V0Lys2QkMvL29nYmZBRm9GNXdCT0JxY0FKZ1crQUNrSXlRQklCNThBTGdRTi84NER4Ly9LQlZFQWFRUnlBRUlFN1FDdEErNEFoQVZSQUdvRWJ3QkVCdFVBZEFYL0FGSUczQUJ2QmdZQVR3VVVBR1lFTUFCTkJPRUFRQUFLL09nQUN2MExBQXIrRndBSy9qc0FDdm80QUFyNlR3US9BQzRFL2dBNkJIRC8xd1JMQURVRGZ3QWtCTUFBUXdQd0FDUUU3QUEyQkdZQUxRWmtBTHNGWXdCMEI1MEFPZ1dTQUNRSC9BQkNCc2tBSkFYS0FIRUV1QUJmQnY4QXJBVTlBRmNGVHdERUJGSUFtQVZRQU93R0NnQ0tCS01BQndUc0FEVUVRd0F0QlpBQVF3UnZBQ1FGWndCUkJJNEFQQVNPLy93RW5mLzRBenIvNlFUYUFERUdhd0F5QnJrQVRBWXZBSzBGRFFCb0JESUFyd1B5QUtBSGovL2ZCazMvMmdmSUFEc0dlQUFqQk5vQWFnUUhBRXdGaXdDYUJRTUFmUVZGQUdvREVnRHlBLzhBQUFmMEFBQUQvd0FBQi9RQUFBS3VBQUFDQkFBQUFWd0FBQVJtQUFBQ0tRQUFBWjhBQUFEVkFBQUFDZ0FBQWkwQUdRSXRBQmtGSWdDbkJoa0FtUU9VLzE4Qmx3Q3VBWmNBaVFHVi81Z0Jsd0RVQXNnQXRnTFBBSlVDdHYrVUJGRUFkd1IyLy9ZQ3B3Q2dBN0VBT1FVN0FEa0ErUUFhQjNrQWx3SmVBRjhDWGdBQ0E1SC83d0xpQUdFRFVBQitCSXovOHdZdUFBb0dhQUE1Q0Q4QU9nYzBBQ0lHQmdBZkJHWUFVUVczQUVNRURBQkpCRndBQ2dVcC8vSUZNUC9sQmNRQXpBTzdBRXNJQlFBMUJPVUE2Z1Q2QUlJR0FRQzFCcXdBa2dhbEFJOEdRd0MrQkhZQVRRVnRBQ1FFbGYrc0JIa0Fxd1NxQUVFSUJRQk5BZ2IvR2dScEFERUVUQUJ3QS96LzFBUVpBQmtEOHdCQkFrUUFlQUtGQUhBQi92L2pCTmNBZEFSV0FGZ0VjZ0IwQnFvQWRBYXFBSFFFMGdCMEJuSUFLUUFLQUFBSC92K3JDRFVBWEFRS0FHSUVoUUJCQWZmL0R3R1AvNzBEa2dFVEE0d0JFZ09OQVJFRDRBRE5BL2tBemdQZkFDSUQyd0RTQTVJQkVRSDRBUHdFYlArbEJEa0FIUVJrQUVjRVp3QWRBOUlBSFFPNEFCMEVrZ0JNQk1jQUhRSGpBQ29EdlAvMkJEMEFIUU9pQUIwRjNnQWRCTWNBSFFTaEFFb0VSUUFkQktFQVJRUXpBQjBFQ2dBUkJCQUFiUVJrQUVVRVR3QjZCZkFBbFFROS83WUVGUUIwQkEzLzNBTGlBQjBDNGdCckF1TC82UUxpLy9zQzR2L3dBdUlBRmdMaUFCNEM0Z0F2QXVJQUN3TGlBRFlEaEFDVEFxb0JDd1FrLzVvRXFBQkxCUzBBUXdVSEFFUUQvZ0FsQlI4QVJBUDZBQ1VFQ2dBU0JCMEFCZ1FsQURRRG5RQWRCRS8vc0FTaEFFb0VULyt3QTNqLzB3U3pBQjBEMi8vVkJVZ0FVUVQ2QUg0RTFnQU1CVklBYkFSa0FFY0hFLy9FQnlFQUhRVlVBRzBFc2dBZEJFSUFId1VILzRrRjUvK3ZCQ2dBRVFUUUFCOEVOd0FlQktiL3hBUUpBRmdGQ2dBZEJGSUFXZ1lxQUIwR2d3QWRCUUFBVUFYTkFCOEVOd0FmQkdNQUlBWk9BQjBFYnYvZkEvei8rZ1loLzY4RVlRQWVCT3dBSGdVWkFHa0ZvQUJRQkVjQWRBU08vN1lHT2dCc0JGSUFXZ1JTQUIwRm9RQXZCSzhBUVFRb0FCRUVvUUJLQkIzLy93UFBBQjRIN2dBZEJKSC8zUVJsQUI4RUhBQkRCSG9BUndSekFDUURhQUNwQkhULzF3U0RBRVlFSmdCRkJHVUFOUVZoQUlFRmpBQ0VCWElBUkFXOUFJVUZ3QUNGQThJQXV3UnBBRGtEblFBZEJFSC9nUVMwLzlNQzRnQ1FBdUlBWVFMaUFJa0M0Z0NSQXVJQW9nTGlBSDRDNGdDcEJGUC8xUVFZQUNzR2V3QkpCSjhBUHdUa0FHUUNBUDhKQWYvL0NRSDJBQzRCOXY5NkFmWUFMZ0gyLy9FRU9RQWRBZllBQUFJdUFCa0ZQd0F2QlQ4QUx3UnVBRDBFcXdDb0FwUC85QVVhLzY4Rkd2K3ZCUnIvcndVYS82OEZHdit2QlJyL3J3VWEvNjhGRndCMEJITUFPd1J6QURzRWN3QTdCSE1BT3dJbUFFa0NKZ0JKQWlZQVNRSW1BRWtGa2dBN0JXQUFkd1ZnQUhjRllBQjNCV0FBZHdWZ0FIY0ZFZ0JuQlJJQVp3VVNBR2NGRWdCbkJMTUFxQVJEQURNRVF3QXpCRU1BTXdSREFETUVRd0F6QkVNQU13UkRBRE1FR2dCR0JDWUFSUVFtQUVVRUpnQkZCQ1lBUlFIMUFDNEI5UUF1QWZVQUxnSDFBQzRFVWdBZkJIY0FSUVIzQUVVRWR3QkZCSGNBUlFSM0FFVUVVUUJiQkZFQVd3UlJBRnNFVVFCYkE3Yi9wUU8yLzZVRkd2K3ZCRU1BTXdVYS82OEVRd0F6QlJyL3J3UkRBRE1GRndCMEJCb0FSZ1VYQUhRRUdnQkdCUmNBZEFRYUFFWUZGd0IwQkJvQVJnVWhBRHNGQUFCTEJITUFPd1FtQUVVRWN3QTdCQ1lBUlFSekFEc0VKZ0JGQkhNQU93UW1BRVVFY3dBN0JDWUFSUVZUQUhrRVpRQUVCVk1BZVFSbEFBUUZVd0I1QkdVQUJBVlRBSGtFWlFBRUJaSUFPd1JRQUI4Q0pnQkpBZlVBRVFJbUFFa0I5UUFhQWlZQVNRSDFBQzRDSnYrT0Flei9jQUltQUVrR2VBQkpBOUFBTHdSU0FBb0IvdjhKQk9jQU93UDVBQ0FFTndBN0Fld0FMd1EzQURzQjdQK2pCRGNBT3dLQ0FDOEVOd0E3QXNnQUx3V1NBRHNFVWdBZkJaSUFPd1JTQUI4RmtnQTdCRklBSHdSU0FCOEZZQUIzQkhjQVJRVmdBSGNFZHdCRkJXQUFkd1IzQUVVRTBRQTZBcW9BSHdUUkFEb0NxditmQk5FQU9nS3FBQjhFcFFBbkJBb0FMZ1NsQUNjRUNnQXVCS1VBSndRS0FDNEVwUUFuQkFvQUxnU2xBQ2NFQ2dBdUJLc0FxQUtUQUVNRXF3Q29BcE1BUXdTckFLZ0N1d0JEQlJJQVp3UlJBRnNGRWdCbkJGRUFXd1VTQUdjRVVRQmJCUklBWndSUkFGc0ZFZ0JuQkZFQVd3VVNBR2NFVVFCYkJ1d0F3d1hmQUlBRXN3Q29BN2IvcFFTekFLZ0VyLy9yQStQLzdRU3YvK3NENC8vdEJLLy82d1BqLyswSFMvK0VCcGNBRXdWZ0FDQUVid0E1QkdmL3NBUm4vN0FFRUFCdEJHei9wUVJzLzZVRWJQK2xCR3ovcFFScy82VUViUCtsQkd6L3BRUmtBRWNEMGdBZEE5SUFIUVBTQUIwRDBnQWRBZU1BS2dIakFDb0I0d0FxQWVNQUtnVEhBQjBFb1FCS0JLRUFTZ1NoQUVvRW9RQktCS0VBU2dSa0FFVUVaQUJGQkdRQVJRUmtBRVVFRlFCMEJHei9wUVJzLzZVRWJQK2xCR1FBUndSa0FFY0VaQUJIQkdRQVJ3Um5BQjBEMGdBZEE5SUFIUVBTQUIwRDBnQWRBOUlBSFFTU0FFd0VrZ0JNQkpJQVRBU1NBRXdFeHdBZEFlTUFEd0hqQUJnQjR3QXFBZVAvZWdIakFDb0R2UC8yQkQwQUhRT2lBQjBEb2dBZEE2SUFIUU9pQUIwRXh3QWRCTWNBSFFUSEFCMEVvUUJLQktFQVNnU2hBRW9FTXdBZEJETUFIUVF6QUIwRUNnQVJCQW9BRVFRS0FCRUVDZ0FSQkJBQWJRUVFBRzBFRUFCdEJHUUFSUVJrQUVVRVpBQkZCR1FBUlFSa0FFVUVaQUJGQmZBQWxRUVZBSFFFRlFCMEJBMy8zQVFOLzl3RURmL2NCUnIvcndUWEFHTUY5Z0J4QW9vQWR3VjBBR29GRi8vdUJVY0FIZ0tOQUNBRkd2K3ZCTjhBT3dSekFEc0VyLy9yQlpJQU93SW1BRWtFNXdBN0J0QUFPd1dTQURzRllBQjNCTzhBT3dTckFLZ0Vzd0NvQk9mLzFBSW1BRWtFc3dDb0JHd0FTQVE1QUNrRWJ3QWtBbzBBaFFSRkFHY0VXd0F0QkhjQVJRUnYvK1VEekFCdUErUC94QUtOQUdjRVJRQm5CSGNBUlFSRkFHY0diZ0JtQkhNQU93UmJBRU1FcFFBbkFpWUFTUUltQUVrRVVnQUtCUWNBUkFUbkFEc0U2Z0NUQlJyL3J3VGZBRHNFV3dCREJITUFPd1dTQUVNRzBBQTdCWklBT3dWZ0FIY0Zrd0JFQk84QU93VVhBSFFFcXdDb0JPZi8xQVJEQURNRUpnQkZCSVVBTHdSM0FFVUVaZi9YQkJvQVJnTzIvNlVENC8vRUJDWUFSUU5MQUMwRUNnQXVBZXdBTHdIMUFDNEI1UDhVQkRzQUx3TzIvNlVHN0FEREJkOEFnQWJzQU1NRjN3Q0FCdXdBd3dYZkFJQUVzd0NvQTdiL3BRRmtBS29DaFFESUJCSUFRd0grL3drQmx3Q0pCdEFBT3diWEFCNEZHdit2QkVNQU13UnpBRHNGa2dCREJDWUFSUVNGQUM4RmFBQ0dCWGtBVHdUdEFLMEQ3Z0NFQ0MwQVJRa1dBSGNFcFFBbEEvc0FJUVVYQUhRRUdnQkdCTE1BcUFQdEFJUUNKZ0JKQnhYL3JBWDcvNlVDSmdCSkJSci9yd1JEQURNRkd2K3ZCRU1BTXdkTC80UUdsd0FUQkhNQU93UW1BRVVGWndCUkJDRUFQZ1FoQUQ0SEZmK3NCZnYvcFFTbEFDVUQrd0FoQlpJQVF3U0ZBQzhGa2dCREJJVUFMd1ZnQUhjRWR3QkZCVkVBYVFSeUFFSUZVUUJwQkhJQVFnVkZBSFFFTmdBMEJPb0Frd08yLzZVRTZnQ1RBN2IvcFFUcUFKTUR0ditsQlZvQXpnUkNBSHNHd0FCRkJoQUFNQVRuLzlRRDQvL0VCR29BU3dXSS84b0Vodi9JQlJyL3J3UkRBRE1GR3YrdkJFTUFNd1VhLzY4RVF3QXpCUnIvcndSREFETUZHdit2QkVNQU13VWEvNjhFUXdBekJSci9yd1JEQURNRkd2K3ZCRU1BTXdVYS82OEVRd0F6QlJyL3J3UkRBRE1GR3YrdkJFTUFNd1VhLzY4RVF3QXpCSE1BT3dRbUFFVUVjd0E3QkNZQVJRUnpBRHNFSmdCRkJITUFPd1FtQUVVRWN3QTdCQ1lBUlFSekFEc0VKZ0JGQkhNQU93UW1BRVVFY3dBN0JDWUFSUUltQUVrQjlRQXVBaVlBRGdIcy8vRUZZQUIzQkhjQVJRVmdBSGNFZHdCRkJXQUFkd1IzQUVVRllBQjNCSGNBUlFWZ0FIY0Vkd0JGQldBQWR3UjNBRVVGWUFCM0JIY0FSUVZlQUdjRWVRQkNCVjRBWndSNUFFSUZYZ0JuQkhrQVFnVmVBR2NFZVFCQ0JWNEFad1I1QUVJRkVnQm5CRkVBV3dVU0FHY0VVUUJiQlc4QVp3VFhBRm9GYndCbkJOY0FXZ1Z2QUdjRTF3QmFCVzhBWndUWEFGb0Zid0JuQk5jQVdnU3pBS2dEdHYrbEJMTUFxQU8yLzZVRXN3Q29BN2IvcFFTSUFFc0VpQUFBQlFjQVJBUTdBQzhGa2dBN0JJUUFMd1NyQUtnRHhBQmdCT2YvMUFQai84UUZXZ0RPQkVJQWV3VmFBTTRFUWdCN0JGc0FRd05MQUMwSEZmK3NCZnYvcFFZS0FJb0Vvd0FIQkZBQUh3VG9BQ3NFNkFBckJGc0FFQU5MLytZRkd3QllCQklBT1FXU0FFTUVoUUF2QlpJQU93U0VBQzhHMEFBN0Jjc0FNQVdJLzhvRWh2L0lCTE1BcUFQdEFGMEU1Ly9VQStQL3hBUTVBQ2tFVlAvWEJoa0FtUVJtQUJjRVpnQTBCR1lBQlFSbUFISUVlZ0NVQkk0QWZBVlRBSGtFWlFBRUJaSUFPd1JTQUI4Rkd2K3ZCRU1BTXdSekFEc0VKZ0JGQWliLzN3SDEvNDBGWUFCM0JIY0FSUVRSQURvQ3FnQWZCUklBWndSUkFGc0VqLyt5Qk44QU93UmxBQjhGSVFBN0JHb0FTd1VoQURzRWFnQkxCWklBT3dSUUFCOEU1d0E3QS9rQUlBVG5BRHNEK1FBZ0JEY0FPd0hzLy9JRzBBQTdCdGNBSGdXU0FEc0VVZ0FmQk84QU93UmwvOWNFMFFBNkFxci83Z1NsQUNjRUNnQXVCS3NBcUFLVEFFTUUrZ0NrQTh3QWJnVDZBS1FEekFCdUJ1d0F3d1hmQUlBRXIvL3JBK1AvN1FXbS93d0ViUCtsQkE3LzRRVUQvLzBDSHdBQkJLc0FIUVJSLzVzRTRBQVdCR3ovcFFRNUFCMEQwZ0FkQkEzLzNBVEhBQjBCNHdBcUJEMEFIUVhlQUIwRW9RQktCRVVBSFFRUUFHMEVGUUIwQkQzL3RnSGpBQ29FRlFCMEE5SUFIUU9kQUIwRUNnQVJBZU1BS2dIakFDb0R2UC8yQkQwQUhRUUpBRmdFYlArbEJEa0FIUU9kQUIwRDBnQWRCTkFBSHdYZUFCMEV4d0FkQktFQVNnU3pBQjBFUlFBZEJHUUFSd1FRQUcwRVBmKzJCQ2dBRVFUSEFCMEVaQUJJQkJVQWRBV2hBQzhFMEFBZkJBa0FXQVZJQUZFRkd2K3ZCRU1BTXdSekFEc0VKZ0JGQUFBQUFRQUFCT1FKQ2dRQUFBSUNBZ01GQlFZRkFnTURCQVVDQWdJRUJRVUZCUVVGQlFVRkJRSUNCQVVGQkFnR0JRWUdCUVVHQmdJRkJnVUlCZ1lHQmdVRkJRWUdDQVlGQlFJRUFnUUVBd1VGQlFVRkF3VUZBZ0lFQWdnRkJRVUZBd1VEQlFRSEJBUUVBd0lEQmdJRkJRWUZBZ1VFQndRRUJRY0VBd1VEQXdNRkJBSUNBd1FFQmdjSEJBZ0ZCZ1VGQndVRkJRVUdBZ1VGQWdZRkNBZ0NCZ01HQlFZRkFnVUVCQVFFQWdNQ0JBTURBQUFBQUFBQ0FnUUNCUVlHQmdVR0JRWUdCZ1VGQkFVRkJRVUZBd1VFQlFVRkJRVUZCZ1lIQlFVSEJ3WUpDUWNHQmdjSUJRWUdCZ2NHQmdnSkJ3Z0dCZ2dHQlFVRUJRY0VCUVVGQndVRkJBWUZCUWNIQlFjRkJRY0ZCUVVIQ0FVRkNBY0ZDQWNGQlFnSEJ3WUtDUVVFQmdVR0JBWUZDQWNJQndZRkJRQUFBQUFBQUFVR0JRVUVCUVFHQlFjR0NRWUpDQWNGQ0FZR0JRWUhCUVlGQmdVR0JRVUZCQVVIQ0FjR0JRUUpCd2tIQlFVR0JnWURCUWtGQ1FNQ0FnVUNBZ0VBQWdJR0J3UUNBZ0lDQXdNREJRVURCQVlCQ0FNREJBTUVCUWNIQ1FnSEJRWUZCUVlHQmdRSkJnWUhDQWNIQlFZRkJRVUpBZ1VGQkFVRUF3TUNCUVVGQ0FnRkJ3QUpDUVVGQWdJRUJBUUVCQVFFQkFJRkJRVUZCQVFGQlFJRUJRUUhCUVVGQlFVRkJRVUZCd1VGQlFNREF3TURBd01EQXdNRUF3VUZCZ1lFQmdRRkJRVUVCUVVGQkFVRUJnWUZCZ1VJQ0FZRkJRWUhCUVVGQlFVR0JRY0hCZ2NGQlFjRkJBY0ZCZ1lHQlFVSEJRVUdCUVVGQlFRSkJRVUZCUVVFQlFVRkJRWUdCZ1lHQkFVRUJRVURBd01EQXdNREJRVUhCUVlDQWdJQ0FnSUZBZ0lHQmdVRkF3WUdCZ1lHQmdZR0JRVUZCUUlDQWdJR0JnWUdCZ1lHQmdZR0JRVUZCUVVGQlFVRkJRVUZCUUlDQWdJRkJRVUZCUVVGQlFVRkJBUUdCUVlGQmdVR0JRWUZCZ1VHQlFZR0JRVUZCUVVGQlFVRkJRWUZCZ1VHQlFZRkJnVUNBZ0lDQWdJQ0FnSUhCQVVDQmdRRkFnVUNCUU1GQXdZRkJnVUdCUVVHQlFZRkJnVUZBd1VEQlFNRkJRVUZCUVVGQlFVRkJRTUZBd1VEQmdVR0JRWUZCZ1VHQlFZRkNBY0ZCQVVGQkFVRUJRUUlCd1lGQlFVRkJRVUZCUVVGQlFVRUJBUUVBZ0lDQWdVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRUJBUUVCQVVGQlFVRkFnSUNBZ0lFQlFRRUJBUUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQndVRkJRVUZCZ1VIQXdZR0JnTUdCUVVGQmdJR0NBWUdCZ1VGQmdJRkJRVUZBd1VGQlFVRUJBTUZCUVVIQlFVRkFnSUZCZ1lHQmdVRkJRWUlCZ1lHQmdZRkJnVUZCUVVGQlFRRUJRUUZBZ0lDQlFRSUJ3Z0hDQWNGQkFJREJRSUNDQWdHQlFVR0JRVUdCZ1lFQ1FvRkJBWUZCUVFDQ0FjQ0JnVUdCUWdIQlFVR0JRVUlCd1VFQmdVR0JRWUZCZ1VHQlFZRkJnUUdCQVlFQmdVSUJ3WUVCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUdCUVlGQmdVR0JRWUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRSUNBZ0lHQlFZRkJnVUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUdCUVlGQmdVR0JRWUZCZ1VHQlFVRUJRUUZCQVVGQmdVR0JRVUVCZ1FHQlFZRkJRUUlCd2NGQlFZR0JRUUdCUVlGQmdVSUJ3WUZCUVFHQkFVRkJ3VUZCUVVGQlFZRkJnVUdCUVVGQWdJR0JRVURCZ1VGQlFVR0JRWUZCZ1VHQkFZRUJRSUlDQVlGQmdVRkF3VUZCUU1HQkFZRUNBY0ZCQVlGQlFZQ0JRVUZCUVVFQlFVQ0JRY0ZCUVVGQlFJRkJBUUZBZ0lFQlFVRkJRUUVCUWNGQlFVRkJRVUZCUVVGQlFZRkJRWUdCUVVGQUFBQUFnQUFBQU1BQUFBVUFBTUFBUUFBQUJRQUJBWnNBQUFBNmdDQUFBWUFhZ0FBQUFJQURRQitBS0FBckFDdEFMOEF4Z0RQQU9ZQTd3RCtBUThCRVFFbEFTY0JNQUZUQVY4Qlp3RitBWDhCandHU0FhRUJzQUh3QWY4Q0d3STNBbGtDdkFMSEFza0MzUUx6QXdFREF3TUpBdzhESXdPS0E0d0RrZ09oQTdBRHVRUEpBODREMGdQV0JDVUVMd1JGQkU4RVlnUnZCSGtFaGdUT0JOY0U0UVQxQlFFRkVBVVRIZ0VlUHg2Rkh2RWU4eDc1SDAwZ0N5QVJJQlVnSGlBaUlDY2dNQ0F6SURvZ1BDQkVJSFFnZnlDa0lLb2dyQ0N4SUxvZ3ZTRUZJUk1oRmlFaUlTWWhMaUZlSWdJaUJpSVBJaElpR2lJZUlpc2lTQ0pnSW1VbHl1NEM5c1A3QlA3Ly8vMy8vd0FBQUFBQUFnQU5BQ0FBb0FDaEFLMEFyZ0RBQU1jQTBBRG5BUEFBL3dFUUFSSUJKZ0VvQVRFQlZBRmdBV2dCZndHUEFaSUJvQUd2QWZBQitnSVlBamNDV1FLOEFzWUN5UUxZQXZNREFBTURBd2tERHdNakE0UURqQU9PQTVNRG93T3hBN29EeWdQUkE5WUVBQVFtQkRBRVJnUlFCR01FY0FSNkJJZ0V6d1RZQk9JRTlnVUNCUkVlQUI0K0hvQWVvQjd5SHZRZlRTQUFJQkFnRXlBWElDQWdKU0F3SURJZ09TQThJRVFnZENCL0lLTWdwaUNySUxFZ3VTQzhJUVVoRXlFV0lTSWhKaUV1SVZzaUFpSUdJZzhpRVNJYUloNGlLeUpJSW1BaVpDWEs3Z0gydy9zQi92Ly8vUC8vQUFFQUFQLzIvK1FCcGYvQ0Fabi93UUFBQVl3QUFBR0hBQUFCZ3dBQUFZRUFBQUYvQUFBQmR3QUFBWG4vRmY4Ry93VCs5LzdxQWJzQUFBQUEvbVQrUXdEdy9kZjkxdjNJL2JQOXAvMm0vYUg5blAySkFBRC95Ly9LQUFBQUFQMEpBQUQvcS96OS9Qb0FBUHk1QUFEOHNRQUEvS1lBQVB5Z0FBRCs5UUFBL3ZJQUFQeEpBQURscitWdjVTRGxUK1MwNVUzbFhlRmI0VmNBQU9GVTRWUGhVZUZKNDNiaFFlTnU0VGpoQ2VEL0FBRGcyZ0FBNE5YZ3p1RE40SWJnZWVCMzRHemZrK0JoNERYZmt0NnIzNGJmaGQ5KzMzdmZiOTlUM3p6Zk9kdlZFNThLM3dhakFxc0Jyd0FCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURhQUFBQTVBQUFBUTRBQUFFb0FBQUJLQUFBQVNnQUFBRnFBQUFBQUFBQUFBQUFBQUFBQUFBQmFnRjBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFXSUFBQUFBQVdvQmhnQUFBWjRBQUFBQUFBQUJ0Z0FBQWY0QUFBSW1BQUFDU0FBQUFsZ0FBQUxpQUFBQzhnQUFBd1lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDK0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF1Z0FBQUxvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWt3Q1RRSk9BazhDVUFKUkFJRUNTQUpjQWwwQ1hnSmZBbUFDWVFDQ0FJTUNZZ0pqQW1RQ1pRSm1BSVFBaFFKbkFtZ0NhUUpxQW1zQ2JBQ0dBSWNDZHdKNEFua0NlZ0o3QW53QWlBQ0pBbjBDZmdKL0FvQUNnUUNLQWtjRVJ3Q0xBa2tBakFLd0FyRUNzZ0t6QXJRQ3RRQ05BcllDdHdLNEFya0N1Z0s3QXJ3Q3ZRQ09BSThDdmdLL0FzQUN3UUxDQXNNQ3hBQ1FBSkVDeFFMR0FzY0N5QUxKQXNvQWtnQ1RBdGtDMmdMZEF0NEMzd0xnQWtvQ1N3SlNBbTBDK0FMNUF2b0Mrd0xYQXRnQzJ3TGNBSzBBcmdOVEFLOERWQU5WQTFZQXNBQ3hBMTBEWGdOZkFMSURZQU5oQUxNRFlnTmpBTFFEWkFDMUEyVUF0Z05tQTJjQXR3Tm9BTGdBdVFOcEEyb0Rhd05zQTIwRGJnTnZBM0FBd3dOeUEzTUF4QU54QU1VQXhnREhBTWdBeVFES0FNc0RkQURNQU0wRHNRTjZBTkVEZXdEU0Ezd0RmUU4rQTM4QTB3RFVBTlVEZ1FPeUE0SUExZ09EQU5jRGhBT0ZBTmdEaGdEWkFOb0Eyd09IQTRBQTNBT0lBNGtEaWdPTEE0d0RqUU9PQU4wQTNnT1BBNUFBNlFEcUFPc0E3QU9SQU8wQTdnRHZBNUlBOEFEeEFQSUE4d09UQVBRRGxBT1ZBUFVEbGdEMkE1Y0Rzd09ZQVFFRG1RRUNBNW9EbXdPY0E1MEJBd0VFQVFVRG5nTzBBNThCQmdFSEFRZ0VYUU8xQTdZQkZnRVhBUmdCR1FPM0E3Z0R1Z081QVNjQktBUmlCR01FWEFFcEFTb0JLd0VzQVMwRVhnUmZBUzRCTHdSWEJGZ0R1d084QkVrRVNnRXdBVEVFWUFSaEFUSUJNd1JMQkV3Qk5BRTFBVFlCTndFNEFUa0R2UU8rQkUwRVRnTy9BOEFFYWdSckJFOEVVQUU2QVRzRVVRUlNBVHdCUFFFK0JGc0JQd0ZBQkZrRVdnUEJBOElEd3dGQkFVSUVhQVJwQVVNQlJBUmtCR1VFVXdSVUJHWUVad0ZGQTg0RHpRUFBBOUFEMFFQU0E5TUJSZ0ZIQkZVRVZnUG9BK2tCU0FGSkErb0Q2d1JzQkcwQlNnUHNCRzREN1FQdUFXa0JhZ1J3Qkc4QmZ3UklBWVd3QUN4THNBbFFXTEVCQVk1WnVBSC9oYkNFSGJFSkExOWVMYkFCTENBZ1JXbEVzQUZnTGJBQ0xMQUJLaUV0c0FNc0lFYXdBeVZHVWxnaldTQ0tJSXBKWklvZ1JpQm9ZV1N3QkNWR0lHaGhaRkpZSTJXS1dTOGdzQUJUV0drZ3NBQlVXQ0d3UUZrYmFTQ3dBRlJZSWJCQVpWbFpPaTJ3QkN3Z1JyQUVKVVpTV0NPS1dTQkdJR3BoWkxBRUpVWWdhbUZrVWxnamlsa3YvUzJ3QlN4TElMQURKbEJZVVZpd2dFUWJzRUJFV1JzaElTQkZzTUJRV0xEQVJCc2hXVmt0c0FZc0lDQkZhVVN3QVdBZ0lFVjlhUmhFc0FGZ0xiQUhMTEFHS2kyd0NDeExJTEFESmxOWXNFQWJzQUJaaW9vZ3NBTW1VMWdqSWJDQWlvb2JpaU5aSUxBREpsTllJeUd3d0lxS0c0b2pXU0N3QXlaVFdDTWh1QUVBaW9vYmlpTlpJTEFESmxOWUl5RzRBVUNLaWh1S0kxa2dzQU1tVTFpd0F5VkZ1QUdBVUZnakliZ0JnQ01oRzdBREpVVWpJU01oV1JzaFdVUXRzQWtzUzFOWVJVUWJJU0ZaTGJBS0xMQWtSUzJ3Q3l5d0pVVXRzQXdzc1NjQmlDQ0tVMWk1UUFBRUFHTzRDQUNJVkZpNUFDUUQ2SEJaRzdBalUxaXdJSWk0RUFCVVdMa0FKQVBvY0ZsWldTMndEU3l3UUlpNElBQmFXTEVsQUVRYnVRQWxBK2hFV1Myd0RDdXdBQ3NBc2dFT0Fpc0JzZzhCQWlzQnR3ODZNQ1ViRUFBSUt3QzNBVWc3TGlFVUFBZ3J0d0pZU0Rnb0ZBQUlLN2NEVWtNMEpSWUFDQ3UzQkY1TlBDc1pBQWdydHdVMkxDSVpEd0FJSzdjR2NWMUdNaHNBQ0N1M0I1RjNYRG9qQUFncnR3aCtaMUE1R2dBSUs3Y0pWRVUySmhjQUNDdTNDblpnU3pZZEFBZ3J0d3VEWkU0Nkl3QUlLN2NNMmJLS1l6d0FDQ3UzRFJRUkRRa0dBQWdydHc0OE1pY2NFUUFJS3dDeUVBb0hLN0FBSUVWOWFSaEVzakFTQVhPeXNCUUJjN0pRRkFGMHNvQVVBWFN5Y0JRQmRiSVBIQUZ6c204Y0FYVUFBQ29BblFDQUFJb0FlQURVQUdRQVRnQmFBSWNBWUFCV0FEUUNQQUM4QU1RQUFBQVUvbUFBRkFLYkFDQURJUUFMQkRvQUZBU05BQkFGc0FBVUJoZ0FGUUdtQUJFR3dBQU9BQUFBQUFBQUFHRUFZUUJoQUdFQVlRQ2dBTVlCUlFIRUFuSURFd01yQTFzRGpBTy9BK2NFQmdRZEJFSUVXUVM4Qk9zRlJRWExCaEVHZkFiekJ5QUhyQWdsQ0RvSVR3aHZDSmNJdUFrbkNlTUtJZ3FSQ3ZNTFFndUZDNzBNS0F4c0RJY012ZzBWRFRvTmlnM0lEaTBPZkE3bkQwY1B2QS9vRUMwUVhSQ3hFUVlSTnhGd0VaWVJyUkhVRWZzU0ZoSTFFcnNUSmhPREUrd1VXeFMwRlQ0VmlCVzhGZ2tXWWhaOUZ2UVhReGVpR0E0WWVSaTNHU29aZ3huUEdmNGFUUnFWR3RjYkVCdGRHM1Fidnh3RkhEWWNtaDBJSFhjZDJoMzdIcUFlMngrSEgvc2dCeUFsSU5zZzhpRTBJWGtoelNKQkltRWl0U0xoSXdJak9pTnRJN29qeGlQZ0kvb2tGQ1IzSk53bEdpV2pKZjBtY2lkREo3UW9BaWlIS08wcFVDbHJLYndxQ1NwSktwNHEvU3VKTEVJc2N5emZMVWt0dkM0bUxuc3UxeThITDI4dm5TL0RMOHN2K0RBYU1GVXdpREROTVFBeFF6RmdNWDR4aHpHMk1lY3lDVElsTW5JeWVqS2hNczR6UnpOME03Z3o2RFFtTktNMUF6VjBOZlkyY2phbU55azNxamYrT0UwNHhqajVPVkE1eFRvZU9vQTY0anRITzQ0NzJUeE1QS2c5SUQycVBnRStnejdrUDFzLzAwQktRS05BNGtFOVFaWkNCa0tBUXNkREVVTlNROVZFRFVSWFJKZEU0MFUvUmFaRjlVWmtSdWxIU1VlN1NDQklSMGljU1JCSmlFbkRTaHhLWjBxeFN4QkxRRXR0VEJGTVNVeVJUTkZOR1UxMFRkRk9JRTZQVHhOUGMwL3dVRmxRMVZGSVViVlI5RkpoVXNSVE1sUEJWR0pVcmxUOVZXbFYyVlpWVnIxWFZsZmlXSUJaSkZtZFdmOWFQMXFEV3ZSYllGd3RYTzFkYzEzc1hrSmVrbDdGWHVKZkhWODBYMHRnSW1DV1lRUmhZV0hkWWc1aU9tS1ZZdTVqU0dPdVpBUmtaV1N5WlI1bGdXWGJabjVuRldkb1o2NW9CMmhaYUoxcEhHbVVhZTlxVEdxb2F3OXJnMnZvYkVwc1dXeHRiTDV0S0czRGJrQnVzVzhmYjRodi9YQndjT2h4Wm5IRWNocHlibkxIYzBaemQzTjNjM2R6ZDNOM2MzZHpkM04zYzNkemQzTjNjM2R6ZDNOL2M0ZHprWE9iYzdKejBYUHZkQTUwTG5RNmRFWjBkM1M0ZFIxMVFuVk9kVjUxY25aR2RtSjJmM2FTZHFaMjczZDZlQng0cVhpMWVYaDUwM3BaZXdSN1pudnBmRWQ4dUgxZGZjbCtXMzY4ZnlSL1BuOVlmM0ovakgvL2dDZUFZWUI5Z0xLQk80R0JnZmlDT1lKSGdsV0Nqb0tiZ3NLQzI0TG5nMHFEbzRRM2hNS0ZRNFlYaGhlSGxJZnhpQ0tJZ0lpdmlNV0pLSWw2aWJxS0xJcUZpc1dMQ0l0SWkyS0xxSXdlakhxTXg0MFRqVStOdG80RWppS09XSTZjanNTUEZvOVVqN09RQTVCaGtMV1JJNUZQa1l1UnZwSVNrbGVTaTVMSWt4dVRScE9WbEFhVVNKU29sUWlWTlpXK2xpQ1dONWFCbHo2WHVaZ3RtSHlZd3BrRW1VeVp6Sm80bXErYTJwc1FtNGlidVp3SG5EcWNlcHp1blZDZHU1NGVub3lmQTU5N245S2dEYUJwb01HaE42RzhvZnFpUzZLVW90aWpFNk5ibzV1ajVhUkFwRXlrbmFVUnBaeWwrYVpJcHRDbk02ZVlwL2lvb3FpdXFRR3BUYW1pcWV1cVphclNxemVycTZ4SHJNNnRiNjNpcmsrdXFLOFRyNXl2cExBUXNINnc2YkZ5c2RXeVFMS1NzdlN6V3JPRnM5cTBCTFJkdEtHMHRiVEp0TnUwNzdVQnRSaTFMTFdPdGJhMlJMYTB0dzIzRmJjZHR5VzNNTGM0dDBTM3NMZXd0N2k0S0xpWXVQcTVRTG1vdWIrNTFybnR1Z1M2SExvdnVqdTZSN3BldW5DNmg3cWF1ckc2dzdyYXV1MjdCTHNidXkyN1JMdGJ1MjY3aGJ1WHU2Njd3YnZUdStxNy9Md1N2Q084TnJ4SnZGVzhZYng0dklxOG9MeXp2TW04MnJ6eHZRbTlHcjB4dlVPOVdiMXF2WDI5bEwybXZieTl6NzNodmZPK0NyNGd2amUrU2I2MnYyUy9kcitJdjVxL3E3Kzl2OCsvNGIveXdBVEFFTUFpd0RQQVJjQlh3R25BZThEdndYM0JqOEdnd2JMQnc4SFZ3ZWZCK2NJTHdoZkNLY0k3d2svQ1ljSnp3b1hDbDhLcHdydkN4c0xSd3VQQzc4TDd3dzNESDhNcnd6ZkRTY05idzJmRGM4T0l3NVREb01Pc3c3N0QwTVBjdytqRCtzUUx4QmZFS2NRNnhFekVYc1J4eElURWxzU294TFRFd01UU3hPUEU5Y1VIeFJuRktzVTJ4VUxGVHNWYXhXekZmY1dKeFpYRm9jV3R4Yi9GeThYZHhlN0dBTVlSeGlQR05jWkl4bHZHYnNhQnh1TEhVY2RqeDNYSGg4ZVl4NnZIdmNmUHgrSEg4OGdGeUJiSUxjaEV5RnZJY3NpVnlMakl5TWpmeVBISkI4a1l5U3ZKUHNsS3lWYkpiY2wveVpESm9zbTR5Y25KMjhudXlnREtGOG9weWp2S1RjcGd5bmZLaWNxYXlxM0t2OHJReXVMTFNjdGJ5MnpMZnN1UXk2SExzc3ZEeTlYTVQ4eGd6SEhNZzh5VnpLSE1zOHpGek5mTTZjejB6UVhORjgwanpUVE5RTTFWeldITmM4MS96WkhObzgyMXpjak4yczNtemZmT0NjNGF6aWJPTjg1RHpsVE9ZTTV4em9MT2xNNm56cnJQSmM4M3owalBXczlzejM3UGo4K2F6NmJQc3MrK3o4clAxcy9pei8zUUJkQU4wQlhRSGRBbDBDM1FOZEE5MEVYUVRkQlYwRjNRWmRCdDBJRFFrOUNsMExmUXlkRGEwTy9ROTlELzBRZlJEOUVYMFNuUk85Rk4wVi9SY2RHSjBhRFNGZElkMGpEU09OSkEwbGZTYnRKMjBuN1NodEtPMHFEU3FOS3cwcmpTd05MSTB0RFMyTkxnMHVqUzhOTUMwd3JURXROdjAzZlRmOU9TMDZuVHNkTzUwOHpUMU5QcjFBSFVHTlF2MUViVVhkUjExSTNVcE5TNzFNUFV5OVRYMU83VTl0VU4xU1RWTU5VODFWUFZhdFdCMVpqVm9OV28xY0RWMk5YazFmRFYvTllJMWhUV0lOWW8xakRXT05aUDFtYldidGFGMXB6V3ROYkgxcy9XMTlicDF2dlhEdGNXMXluWFBOZFAxMkxYZE5lRzE1ZlhxdGU5MTlEWDQ5ZnIxL1BZQnRnWjJDellQOWhSMkdMWWRkaUgySi9ZdDlqUDJPSFkvZGtaMlNYWk1kazUyVVhaVWRsZDJXblplOW1OMmFYWnZOblUyZXZhQTlvYTJqTGFTZHBrMm43YWtkcWsycmZheXRyZDJ2RGJBOXNXMnpIYlROdFkyMlRiZHR1STI1cmJxOXZEMjlyYjh0d0ozQ0hjT054UTNHZmNndHljM0s3Y3dOek0zTmpjNU56dzNRTGRGTjBzM1VQZFc5MXkzWXJkb2QyNTNkRGQ2OTRGM2h6ZU05NUszbUhlZU42UDNxYmV2TjdJM3RUZTRON3MzdjdmRU44bjN6N2ZWZDlzMzRQZm10K3gzOGZmMDkvZjMrdmY5K0FKNEJ2Z0xlQSs0TDdnenVEYTRPYmc4dUQrNFFyaEZ1RWk0UzdoT3VGRzRWTGhYdUZxNFhiaGd1R080WnJocHVHdTRoamloT0xLNHhEamIrUEs0K1hrQU9RTTVCamtKT1F3NUR6a1NPU1Q1T1BsTytXVjVaM2xxZVd6NWJ2bHcrWEw1ZFBsMitYajVmcm1FZVlvNWovbVYrWnY1b2ZtbithMzVzL201K2IvNXhmbkwrZEg1MS9uYStkMzU0UG5qK2ViNTZmbnMrZS81OHZuNHVmMDZBRG9ET2dZNkNUb01PZzg2RWpvVk9ocjZJTG9qdWlhNktib3N1aSs2TXJvNGVqMzZRUHBEK2tiNlNmcE0ray82VXZwVitsajZXL3BlK21INlpQcG4rbW42YS9wdCttLzZjZnB6K25YNmQvcDUrbnY2ZmZwLytvSDZoL3FOdXBONm1UcWJPcDA2b3pxbE9xcjZzSHF5ZXJSNnRucTRlcjQ2d0RyQ09zUTZ4anJJT3NvNnpEck9PdkQ3QjNzZ3V5SzdKYnNyZXpEN012czEremo3Ty9zK3dBQUFBVUFaQUFBQXlnRnNBQURBQVlBQ1FBTUFBOEFjYklNRUJFUkVqbXdEQkN3QU5Dd0RCQ3dCdEN3REJDd0NkQ3dEQkN3RGRBQXNBQkZXTEFDTHh1eEFodytXYkFBUlZpd0FDOGJzUUFRUGxteUJBSUFFUkk1c2dVQ0FCRVNPYklIQWdBUkVqbXlDQUlBRVJJNXNRb005TElNQWdBUkVqbXlEUUlBRVJJNXNBSVFzUTRNOURBeElTRVJJUU1SQVFFUkFRTWhBVFVCSVFNby9Ud0N4RGIrN3Y2NkFRemtBZ1ArL2dFQy9mMEZzUHFrQlFmOWZRSjMreEVDZVAxZUFsNklBbDRBQWdCRC8vSUI5QVd3QUFNQURnQS9zZ2tQRUJFU09iQUpFTEFBMEFDd0FFVllzQUl2RzdFQ0hENVpzQUJGV0xBTkx4dXhEUkErV2JJSEJRb3JXQ0hZRy9SWnNnRUhBaEVTT2JBQkx6QXhBU01UTXdFMk5qYzJGaFVVQmdZbUFUR2txYjcrVHdFNk1DNDhQRjQ3QVpzRUZmcXFMejBDQWp3dUx6c0VPZ0FBQWdESUJCRUNwZ1lJQUFRQUNRQVpBTEFETDdJQ0NnTVJFam13QWkrd0I5Q3dBeEN3Q05Bd01RRURCeE1YRndNakV4Y0JpVk51VUlqdlUyNVFpQVZ1L3FRQkFmY0prZjZrQWZZSkFBSUFVZ0FBQlBzRnNBQWJBQjhBandDd0FFVllzQXd2RzdFTUhENVpzQUJGV0xBUUx4dXhFQncrV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0Jvdkc3RWFFRDVac2gwTUFoRVNPWHl3SFM4WXNnQURDaXRZSWRnYjlGbXdCTkN3SFJDd0J0Q3dIUkN3QzlDd0N5K3lDQU1LSzFnaDJCdjBXYkFMRUxBTzBMQUxFTEFTMExBSUVMQVUwTEFkRUxBVzBMQUFFTEFZMExBSUVMQWUwREF4QVNNREl4TWpOek1USXpjaEV6TURNeE16QXpNSEl3TXpCeU1ESXdNekV5TUN3L3FXa0pYbUdQK0ErQmdCRXBpUm1mdVlrcG5FR042QTJCanhsWkkwK29INkFacitaZ0dhaVFGaWl3R2cvbUFCb1A1Z2kvNmVpZjVtQWlNQllnQUFBUUJLL3pBRVBBYWNBQ3NBYmJJZkxDMFJFamtBc0FCRldMQUpMeHV4Q1J3K1diQUFSVml3SWk4YnNTSVFQbG15QWlJSkVSSTVzQWtRc0F6UXNBa1FzQkRRc0FrUXNoTUJDaXRZSWRnYjlGbXdBaEN5R1FFS0sxZ2gyQnYwV2JBaUVMQWYwTEFpRUxBbTBMQWlFTElwQVFvcldDSFlHL1JaTURFQk5pWW1KeVkzTmpZM056TUhGaFlISXpZbUp5WUdCd1lXQkJZV0J3WUdCd2NqTnlZbU56TUdGaGNXTmdNaENtcjlTNVFPQzlleEo1SW9sSkVQc3doblpIR1REQWxkQVJLT1FRY041YjBpa1NPa3FBdTFDM1YyZjZzQmZsYUFZVDE1eEtUWEY5dmVIZkhBazUwREFvTnZWbnh0ZDVwanE5SVV2OEVZNnJxRG5BSUNoUUFGQUx2LzVnVTRCY2dBRFFBYkFDa0FOd0E3QUlteUpUdzlFUkk1c0NVUXNBWFFzQ1VRc0JiUXNDVVFzQ3ZRc0NVUXNEalFBTEE0TDdBNkw3QUFSVml3QUM4YnNRQWNQbG13QUVWWXNDTXZHN0VqRUQ1WnNBQVFzQWZRc0FjdnNoRUVDaXRZSWRnYjlGbXdBQkN5R0FRS0sxZ2gyQnYwV2JBakVMQWMwTEFjTDdBakVMSXRCQW9yV0NIWUcvUlpzQndRc2pRRUNpdFlJZGdiOUZrd01RRVdGZ2NIQmdZbkppWTNOelkyQXdZV0Z4WTJOemMySmljbUJnY0JGaFlIQndZR0p5WW1OemMyTmdNR0ZoY1dOamMzTmlZbkpnWUhCU2NCRndJTmVZOElCZysxZlhtU0NBWU50ME1GUlVCRVpRc0pCMEpEUldZTEF0dDhqZ2dHRGJXQWVKTUlCZzJ5UGdWRFFrWmpDd2tIUWtOSFpBdjk4Mk1EY1dNRnhnU3BnVTJHcWdRQ3JINUFrSzMrZ1ZGZkFnSmxVVTVNWmdJQ1psSDkrZ1NyZmtPTnJ3UUNxb0ZFaTY3K2dWQmhBZ0ptVVU5TFpnSUNabEQxU0FSb1J3QURBRHIvNlFTSEJjZ0FIQUFsQURFQW1MSWVNak1SRWptd0hoQ3dEOUN3SGhDd01OQUFzQUJGV0xBSkx4dXhDUncrV2JBQVJWaXdHaThic1JvUVBsbXdBRVZZc0Jjdkc3RVhFRDVac2lBYUNSRVNPYklwQ1JvUkVqbXlBeUFwRVJJNXNnOHBJQkVTT2JJUUdna1JFam15RWhvSkVSSTVzaGdhQ1JFU09iSVZFQmdSRWptd0doQ3lIUUVLSzFnaDJCdjBXYklmSFJBUkVqbXdDUkN5THdFS0sxZ2gyQnYwV1RBeEV6WTNOeWNtTnpZMkZ4WVdCd1lIQnhNMk56TUdCeGNqSndZbkppWUZGamNCQndZSEJoWVRCaGNYTnpZM05pWWpJZ1pIRDg5eUswZ0lETmlraDdBSUNjeVQrVnNYb1J1YW5jcEpydEc5NWdHcGhwYis4U3V6RXc5K2NBZzVHNWxyQ3daU1JGTndBWUM2a2t4TmhIR2x5UVFDcTMrc2oyTCtnNGViLzZ6MWNZZ0VBdUZOQTNRQnFCNThnMnlPQTl4VVpTOW5VR2xBVkhrQUFRQ3FCQ0VCaVFZQUFBUUFFQUN3QXkreUFnVURFUkk1c0FJdk1ERUJBeU1UTXdGMlRJQk5rZ1dLL3BjQjN3QUFBUUJ0L2lvREdBWnNBQklBRUxJQ0V4UVJFamtBc0FRdnNBMHZNREVUTmhJQU54Y0dBZ0lYRkJJWEJ5WUNFelkzaFNHekFRU2dHNTNoZWdKclpTMm5zUWdDREFKTDV3RzJBVFZQZkhYK2gvMzUvTS8reFZ0d2RBSEdBU1ZnVndBQUFmK1AvaWtDT0FackFCSUFFTElIRXhRUkVqa0FzQVF2c0F3dk1ERUJCZ0lBQnljQUV6WW5BaWMzRmhJU0J3WUhBaU1qdVA3L25Cd0JWM011QWdYTEwzQ2JTUVFEREFKSjlQNU4vdFZPY3dFQ0Fqdm0xUUd0dW5CTy92MytxYmhoVmdBQkFHc0NYd09LQmJBQURnQWdBTEFBUlZpd0JDOGJzUVFjUGxtd0FOQVpzQUF2R0xBSjBCbXdDUzhZTURFQkpUY0ZFek1ESlJjRkV3Y0RBeWNCZ1A3clJBRVdNNVpHQVM4VC9zV1RnSVBlY2dQYldwQnhBVnorcUd5ZlcvN3RXQUVpL3VoaUFBQUJBRXdBa2dRMEJMWUFDd0FhQUxBSkw3QUEwTEFKRUxJR0FRb3JXQ0hZRy9SWnNBUFFNREVCSVFjaEF5TVRJVGNoRXpNQ3FnR0tILzUzVUxaUS9uWWZBWWxLdGdNTnIvNDBBY3l2QWFrQUFBSC9qLzdkQU9vQTJ3QUhBQmNBc0FndnNnUUZDaXRZSWRnYjlGbXdBTkN3QUM4d01RTW5OamMzTXdjR0NXaDBIQnF4RlNUKzNVdVBqWmVINUFBQUFRQVpBaDhDRHdLMkFBTUFFUUN3QWkreUFRRUtLMWdoMkJ2MFdUQXhBU0UzSVFIMC9pVWJBZHNDSDVjQUFBRUFOZi95QVJVQTB3QUlBQ0t5QXdrS0VSSTVBTEFBUlZpd0JTOGJzUVVRUGxteUFBVUtLMWdoMkJ2MFdUQXhOellXRGdJbU5EYWtNVUFDUUdBK1B0SUJQbUk5QkR0aVFRQUFBZitQLzRNRGtnV3dBQU1BRXdDd0FDK3dBRVZZc0FJdkc3RUNIRDVaTURFWEl3RXpNNlFEWUtOOUJpMEFBQUlBYVAvbkJDc0Z5UUFSQUNFQVJySVhJaU1SRWptd0Z4Q3dDTkFBc0FCRldMQUpMeHV4Q1J3K1diQUFSVml3QUM4YnNRQVFQbG13Q1JDeUZnRUtLMWdoMkJ2MFdiQUFFTEllQVFvcldDSFlHL1JaTURFRkppWTNOamMzRWdBWEZoWUhCZ2NIQWdBVE5pY21KeVlHQndNR0Z4SVhGalkzQWRpNHVBZ0NDU1F3QVE3ZHVyY0hBd2tqTmY3MHRRNEJCY0NNclNJckRnRUZ2NFd0SlJRRS9lNUtTUE1CTndFeUJRVDM2MHRJNi82My90QURoWGxEL2djRjJlaiszblJKL3ZjSEJ0RGlBQUVBK1FBQUExUUZ0d0FHQURrQXNBQkZXTEFGTHh1eEJSdytXYkFBUlZpd0FDOGJzUUFRUGxteUJBQUZFUkk1c0FRdnNnTUJDaXRZSWRnYjlGbXlBZ01GRVJJNU1ERWhJeE1GTnlVekFseTIxdjU5SHdJY0lBVE1pTEREQUFBQkFCY0FBQVFyQmNjQUdRQlVzZ01hR3hFU09RQ3dBRVZZc0JFdkc3RVJIRDVac0FCRldMQUFMeHV4QUJBK1diSVpBUW9yV0NIWUcvUlpzQUxRc2dNUkdSRVNPYkFSRUxJSkFRb3JXQ0hZRy9SWnNCRVFzQXpRc2hjWkVSRVNPVEF4SVNFM0FUYzJOelltSnlZR0J3YytBaGNXRmdjR0J3Y0JJUU8yL0dFV0FobGlxUklOY0dhRHNCT3pEWXZqaGJYVkR4SE1YUDRzQXIrTkFncGhxWTl1aXdRRW9Zd0Joczl2QXdUVHFNRFVYZjVEQUFBQkFEVC82QVFoQmNjQUtBQi9zZ2dwS2hFU09RQ3dBRVZZc0E0dkc3RU9IRDVac0FCRldMQWFMeHV4R2hBK1diSUFHZzRSRWptd0FDK3l6d0FCWGJLZkFBRnhzaThBQVYyeVh3QUJjckFPRUxJSEFRb3JXQ0hZRy9SWnNBNFFzQXJRc0FBUXNpZ0JDaXRZSWRnYjlGbXlGQ2dBRVJJNXNCb1FzQjNRc0JvUXNpRUJDaXRZSWRnYjlGa3dNUUVYTWpZM05pWW5KZ1lIQnpZa0Z4WVdCd1lHQnhZV0J3WUVKeVltTnhjR0ZoY1dOamMySmljbkFhQjRoTFVORFhCcmNwOFNzeEVCRWIyMzBRNEpqSHhqWWdnUS91Zkp1OTRJdFFaNGNvQ3FEQXVDZ1lzRE1nR0xkM1NGQWdLSmRBRzA0UUlFM2JWbnFqZ29yWFRGOEFRRTRMRUJjSWtFQkpxQmQ0VUVBUUFBQWdBRkFBQUVIUVd3QUFvQURnQkpBTEFBUlZpd0NTOGJzUWtjUGxtd0FFVllzQVF2RzdFRUVENVpzZ0VKQkJFU09iQUJMN0lDQVFvcldDSFlHL1Jac0FiUXNBRVFzQXZRc2dnR0N4RVNPYklOQ1FRUkVqa3dNUUV6QnlNREl4TWhOd0V6QVNFVEJ3Tlp4QnZETzdZNy9Yd1ZBeURHL1BNQnNJSWRBZW1YL3E0QlVuY0Q1L3c1QXN3cUFBQUJBSEwvNXdScUJiQUFIUUJvc2hzZUh4RVNPUUN3QUVWWXNBRXZHN0VCSEQ1WnNBQkZXTEFOTHh1eERSQStXYkFCRUxJREFRb3JXQ0hZRy9SWnNnY0JEUkVTT2JBSEw3SWFBUW9yV0NIWUcvUlpzZ1VIR2hFU09iQU5FTEFSMExBTkVMSVVBUW9yV0NIWUcvUlpzQm9Rc0IzUU1ERVRFeUVISVFNMkZ4WVNCd1lBSnlZbUp6TVdGaGNXTmpjMkppY21CZ2ZidVFMV0cvM0djRzZBdGNJU0UvN28wYTdXQnFrSGVtaUFyeEFPZW5aSmNUZ0MzUUxUcS81eVFRSUMvdlBRNFA3d0JBTGN0M2lFQWdTK21vZXZCQUl3TFFBQUFnQncvK1lEK0FXeUFCWUFKZ0Jpc2hnbktCRVNPYkFZRUxBTzBBQ3dBRVZZc0FBdkc3RUFIRDVac0FCRldMQU9MeHV4RGhBK1diQUFFTElCQVFvcldDSFlHL1Jac2djQURoRVNPYkFITDdJRkJ3NFJFam15RndFS0sxZ2gyQnYwV2JBT0VMSWdBUW9yV0NIWUcvUlpNREVCQnlNR0JBYzJGeDRDQndZQUp5WW1KeVkzRWdBaEFTWUdEd0lVRmhZWEZqWTNOaVltQTdzUUk4ais1RTZJdG5Pa1RRd1UvdXZLb3RBUENDRkZBWmNCT3Y3R1lhb3VCd0l5WWtKNXJSRUtLbUVGc3AwRThPcUlCQUo3MllQZC91RUdCT2JCYWJNQmRRR0svWEFDZEZwRFVWS2FVQUVGdnB0YWxsY0FBQUVBblFBQUJJd0ZzQUFHQURJQXNBQkZXTEFGTHh1eEJSdytXYkFBUlZpd0FTOGJzUUVRUGxtd0JSQ3lBd0VLSzFnaDJCdjBXYklBQXdVUkVqa3dNUUVCSXdFaE55RUVldnpweGdNVC9RZ1lBN3dGUHZyQ0JSaVlBQU1BUWYvb0JEWUZ5QUFYQUNNQUx3QnZzaHN3TVJFU09iQWJFTEFVMExBYkVMQW8wQUN3QUVWWXNCVXZHN0VWSEQ1WnNBQkZXTEFKTHh1eENSQStXYkl0RlFrUkVqbXdMUyt5R3dFS0sxZ2gyQnYwV2JJRExSc1JFam15RHhzdEVSSTVzQWtRc2lFQkNpdFlJZGdiOUZtd0ZSQ3lKd0VLSzFnaDJCdjBXVEF4QVFZR0J4WVdCd1lFSnlZbU56WTJOeVltTnpZa0Z4WVdBVFltSnlZR0J3WVdGeFkyRXpZbUp5WUdCd1lXRnhZMkJDZ0ppWFplV3dnUC91TEt2ZHdQQzVxRlRrc0lEZ0VHdjY3TS91Z01lSEo4c0E0TWVXOStzR0lMYVdGd21nMExhMkZ0bXdROWJhODVOclZyd2VrRUJPS3ZmYnM2TnFSZXVlUUVCTnI4c0hHWEJBS2hmM1NNQWdTYkF5RmxpZ1FDazNSb2hnSUNrUUFDQUpULy9nUVRCY2dBR0FBb0FHV3lFaWtxRVJJNXNCSVFzQm5RQUxBQVJWaXdDeThic1FzY1BsbXdBRVZZc0JNdkc3RVRFRDVac2dNVEN4RVNPYkFETDdJQUF3c1JFam13RXhDeUZRRUtLMWdoMkJ2MFdiQURFTElaQVFvcldDSFlHL1Jac0FzUXNpRUJDaXRZSWRnYjlGa3dNUUVHQmljdUFqYytBaGNXRmhjV0J3SUFCU00zTXpZa0p4WTJQd0ltSmljbUJnY0dGaGNXQXpkS3BsSnpvMHNNRFlqYmhLN0dDQU1jUXY1Ny9zOHRFQ1hYQVJQV1c2ZzJDQU1FYTJSOHJ3NEhFaHMyQW9CT1RRSUNmdHlDa1BDREJBVDB6V3VmL29yK2hRYWNCT241Qkc5ZVNWR2JxQVFGeVpjOWZqQmgvLzhBSy8veUFhUUVSZ0FtQUJMMkFBRUhBQklBandOekFCQUFzQUJGV0xBSkx4dXhDUmcrV1RBeC8vLy9tLzdkQVkwRVJnQW5BQklBZUFOekFRWUFFQXdBQUJBQXNBQkZXTEFBTHh1eEFCZytXVEF4QUFFQVFRRElBN2dFVHdBR0FCWUFzQUJGV0xBRkx4dXhCUmcrV2JBQzBMQUNMekF4QVFVSEFUY0JCd0VIQWpVaC9TWWFBMTBrQW9EOXV3RjdrZ0Y2elFBQ0FIQUJqd1AvQTg4QUF3QUhBQ1VBc0FjdnNBUFFzQU12c2dBQkNpdFlJZGdiOUZtd0J4Q3lCQUVLSzFnaDJCdjBXVEF4QVNFM0lRTWhOeUVENHZ6V0hBTXJaZnpXSEFNckF5NmgvY0NnQUFFQU9nQy9BOVFFUndBR0FCWUFzQUJGV0xBQ0x4dXhBaGcrV2JBRjBMQUZMekF4QVFFM0FRY0JOd01OL2FvaEF2d2EvSUFrQW80QkE3YitoWkgraE1rQUFBSUFwZi95QTc4Rnh3QVlBQ1FBWGJJZUpTWVJFam13SGhDd0N0QUFzQUJGV0xBUUx4dXhFQncrV2JBQVJWaXdJaThic1NJUVBsbXlIQVVLSzFnaDJCdjBXYkFBMExBQUw3SUVFQUFSRWptd0VCQ3lDUUVLSzFnaDJCdjBXYkFRRUxBTTBMSVZBQkFSRWprd01RRTJOamMzTmpjMkppY21CZ2NITmpZWEZoWUhCZ2NIQmdjRE5qWTNOaFlIRkFZSEJpWUJRUTFnYkZGOUVBeFdXMmFERWJRVDliR291UTRSdTNwaUYvZ0JPakF1UFFFOEx5ODdBWmx6c0dCSGIzcGVkZ1FDY1ZrQnBjY0NCTXlsdHFob1daZit3Qzg5QWdFN0x5NDhBUUk2QUFJQVJQNDdCcHNGbWdBM0FFUUFoN0pDUlVZUkVqbXdRaEN3QzlBQXNDY3ZzREF2c0FCRldMQUZMeHV4QlJBK1diQUFSVml3QUM4YnNRQVFQbG15QXpBQUVSSTVzZ3d3QUJFU09iQU1MN0FBRUxJVEFnb3JXQ0hZRy9SWnNEQVFzaG9DQ2l0WUlkZ2I5Rm13SnhDeUlnSUtLMWdoMkJ2MFdiQUZFTEk2QWdvcldDSFlHL1Jac0F3UXNrRUNDaXRZSWRnYjlGa3dNUVVtSmljR0p5WW1OellTTmhjV0Z3TUdGUVlYRmhJVE5nSW1KeVlFQWdNR0VoWVhGamNYQmlNbUpBSTFKaElBSkJjV0JCSVZGQUlHQVFZWEZqOENFeVluSmdJSEJLOVpiUTJJajNSd0RBcVkzSUtMaFlVS0JXR1R0Z3NIYXVlcDNmNkc5UXdJYnVDaXFhb2JpK1cvL3VhYUFwOEJHd0ZweU1JQkY1T0QzZjFPQlhWclhTQUJoVFEzaThFaUZBSlpUYXdEQXJhY29RRlBzUUlEWnYzU1FodUhBd1lCVmdFT3RBRVNqQU1FL3Y0YS91bTEvdVNSQVFSU2RWY0Jwd0ZCMHRrQnd3RlhzUU1EcVA2K3pPSCtvTFVCUHFzREJaVTFDd0g2SEFFRi91anRBQUFDLzY4QUFBU0xCYkFBQndBS0FFWUFzQUJGV0xBRUx4dXhCQncrV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0FZdkc3RUdFRDVac2drRUFoRVNPYkFKTDdJQUFRb3JXQ0hZRy9SWnNnb0VBaEVTT1RBeEFTRURJd0V6QVNNQklRTURqZjJ5eDhrREY2VUJJTG45d0FIZmVRRjgvb1FGc1BwUUFob0Nwd0FEQURzQUFBU2dCYkFBRFFBV0FCOEFhTElZSUNFUkVqbXdHQkN3RGRDd0dCQ3dFTkFBc0FCRldMQUNMeHV4QWh3K1diQUFSVml3QUM4YnNRQVFQbG15R0FJQUVSSTVzQmd2c2hZQkNpdFlJZGdiOUZteUJ4WVlFUkk1c0FBUXNoQUJDaXRZSWRnYjlGbXdBaEN5SGdFS0sxZ2gyQnYwV1RBeE14TUZNaFlIQmdjV0ZnY0dCQ01EQXdVeU5qYzJKaWNsQlRJMk56WW1KeVU3L1FHcjM5NE9FdlZpWVFrUC91TGp5RnNCS1lpNER3NXVkdjdVQVE5L3J3OE5iWDcrNGdXd0FjaXowV29tdUcvRjV3S3AvZlFCa254MmhBU2JBWUp5YW13RkFRQUJBSFQvNWdUNUJja0FId0JPc2hVZ0lSRVNPUUN3QUVWWXNBMHZHN0VOSEQ1WnNBQkZXTEFETHh1eEF4QStXYklBRFFNUkVqbXlFQU1ORVJJNXNBMFFzaFFCQ2l0WUlkZ2I5Rm13QXhDeUhBRUtLMWdoMkJ2MFdUQXhBUVlBSnk0Q0p5WTNOeElBQlJZU0Z5TUNKeWNtQWc4Q0JoWVhGalkzQkpFcS9ydmpoOHB3QmdRTEVTOEJid0VIemZBSHV3M2pJYjM5SlJZR0JvK05tTWMwQWREaS92Z0dBMy92a1ZKT2VBRklBWHNGQlA3LzVBRXlHQUlGL3QzOGwxaTQyUVFGbkswQUFnQTdBQUFFMVFXd0FBb0FGUUJEc2c0V0Z4RVNPYkFPRUxBQzBBQ3dBRVZZc0FJdkc3RUNIRDVac0FCRldMQUFMeHV4QUJBK1diSU5BUW9yV0NIWUcvUlpzQUlRc2hVQkNpdFlJZGdiOUZrd01UTVRCVElFRWdjSEFnQWhFd01YTWdBM05pY21KaWM3L1FGNnNnRUJjQmNLTFA1cS9zMFp4cm5VQVNjc0l3c1BzSlFGc0FHeS9zZkNTZjdDL29VRkV2dUxBUUVJNXJpQm02OEVBQUFCQURzQUFBU3hCYkFBQ3dCT0FMQUFSVml3Qmk4YnNRWWNQbG13QUVWWXNBUXZHN0VFRUQ1WnNnc0VCaEVTT2JBTEw3SUFBUW9yV0NIWUcvUlpzQVFRc2dJQkNpdFlJZGdiOUZtd0JoQ3lDQUVLSzFnaDJCdjBXVEF4QVNFRElRY2hFeUVISVFNaEE5RDluRm9DeUJ6OGZmMERlUno5UTFFQ1pBS2gvZnlkQmJDZS9pd0FBQUVBT3dBQUJLUUZzQUFKQUVBQXNBQkZXTEFFTHh1eEJCdytXYkFBUlZpd0FpOGJzUUlRUGxteUNRSUVFUkk1c0FrdnNnQUJDaXRZSWRnYjlGbXdCQkN5QmdFS0sxZ2gyQnYwV1RBeEFTRURJeE1oQnlFRElRTzMvYkJ3dlAwRGJCejlVRllDVVFLRC9YMEZzSjcrRGdBQkFIbi82Z1VHQmNjQUlRQmNzaDhpSXhFU09RQ3dBRVZZc0F3dkc3RU1IRDVac0FCRldMQURMeHV4QXhBK1diSVFEQU1SRWptd0RCQ3lFd0VLSzFnaDJCdjBXYkFERUxJYkFRb3JXQ0hZRy9SWnNpRU1BeEVTT2JBaEw3SWVBUW9yV0NIWUcvUlpNREVsQmdRbkxnSW5KaElTSkJjV0ZoY2pKaVluSmdJREJ3Y1VGaGNXTnhNaE55RUVlMG4rNmJPUDFub0pCMG0yQVJHd3kvRVJ1Z3VRZjd6OUtCTURvcExUZkR6K3VCd0NBTUJuYndJRGdPK1lkd0dXQVNpY0F3VHAwNHFVQkFmKzVQN3ZqRXpGMXdJRmJRRkhuQUFBQVFBN0FBQUZkd1d3QUFzQVZRQ3dBRVZZc0FZdkc3RUdIRDVac0FCRldMQUtMeHV4Q2h3K1diQUFSVml3QUM4YnNRQVFQbG13QUVWWXNBUXZHN0VFRUQ1WnNBQVFzQW5Rc0FrdnNwOEpBWEt5THdrQlhiSUNBUW9yV0NIWUcvUlpNREVoSXhNaEF5TVRNd01oRXpNRWVyeDEvVGwxdlAyOGJRTEdiYjBDb2YxZkJiRDlqZ0p5QUFFQVNRQUFBZ0VGc0FBREFCMEFzQUJGV0xBQ0x4dXhBaHcrV2JBQVJWaXdBQzhic1FBUVBsa3dNU0VqRXpNQkJMdjl1d1d3QUFFQUN2L21CRW9Gc0FBUEFDNEFzQUJGV0xBQUx4dXhBQncrV2JBQVJWaXdCUzhic1FVUVBsbXdDZEN3QlJDeURBRUtLMWdoMkJ2MFdUQXhBVE1EQmdRbkppWTNNd1lXRnhZMk53T092SzhkL3V6T3dOSU11d3R3Y0h1cUV3V3crL25POVFRRTRNUjRqd0lFb29FQUFRQTdBQUFGVUFXd0FBc0FkQUN3QUVWWXNBVXZHN0VGSEQ1WnNBQkZXTEFITHh1eEJ4dytXYkFBUlZpd0FpOGJzUUlRUGxtd0FFVllzQXN2RzdFTEVENVpzZ0FDQlJFU09VQVJTZ0JhQUdvQWVnQ0tBSm9BcWdDNkFBaGRzamtBQVYyeUJnVUNFUkk1UUJNMkJrWUdWZ1ptQm5ZR2hnYVdCcVlHdGdZSlhUQXhBUWNESXhNekF3RXpBUUVqQWlEVlZMejl2SHdDNXZMOVd3SEYwUUtqdi80Y0JiRDlPd0xGL1hUODNBQUFBUUE3QUFBRHNRV3dBQVVBS0FDd0FFVllzQVF2RzdFRUhENVpzQUJGV0xBQ0x4dXhBaEErV2JJQUFRb3JXQ0hZRy9SWk1ERWxJUWNoRXpNQkV3S2VIUHltL2IyZG5RV3dBQUFCQURzQUFBYTNCYkFBRGdCWkFMQUFSVml3QUM4YnNRQWNQbG13QUVWWXNBSXZHN0VDSEQ1WnNBQkZXTEFFTHh1eEJCQStXYkFBUlZpd0NDOGJzUWdRUGxtd0FFVllzQXd2RzdFTUVENVpzZ0VBQkJFU09iSUhBQVFSRWpteUNnQUVFUkk1TURFQkV3RXpBeU1URXdFakFRTURJeE1DSmY4Q25QZjl1MlIzL1d5US92eGFZYno5QmJEN1hnU2krbEFDUUFKSyszWUVvZjJNL2RNRnNBQUFBUUE3QUFBRmR3V3dBQWtBVExJQkNnc1JFamtBc0FCRldMQUZMeHV4QlJ3K1diQUFSVml3Q0M4YnNRZ2NQbG13QUVWWXNBQXZHN0VBRUQ1WnNBQkZXTEFETHh1eEF4QStXYklDQlFBUkVqbXlCd1VBRVJJNU1ERWhJd0VESXhNekFSTXpCSHEyL2ZqRXZmMjJBZ25GdXdScSs1WUZzUHVSQkc4QUFBSUFkLy9uQlEwRnlBQVNBQ0lBUnJJWEl5UVJFam13RnhDd0NkQUFzQUJGV0xBS0x4dXhDaHcrV2JBQVJWaXdBQzhic1FBUVBsbXdDaEN5RmdFS0sxZ2gyQnYwV2JBQUVMSWVBUW9yV0NIWUcvUlpNREVGTGdJbkpoSVNOellYRmhJWEZnSUNCd1lCTmlZbkpnWUNCd2NHRmhjV0VoTTJBbEdMelhZR0JrS2lkSjNKMWZZSkJET0RaYkFCRGdhV2xJYlRoeElEQnBpUnZma3BGQlFEZ1BtYmVRRmtBUjVXZEFRRS91SDFhZjY4L3VwZXBBT1h4ZGtFQkpqKzBlaEJ4TjRFQlFFYkFRQitBQUFDQURzQUFBVHpCYkFBQ2dBVEFFMnlDaFFWRVJJNXNBb1FzQXpRQUxBQVJWaXdBeThic1FNY1BsbXdBRVZZc0FFdkc3RUJFRDVac2dzREFSRVNPYkFMTDdJQUFRb3JXQ0hZRy9SWnNBTVFzaElCQ2l0WUlkZ2I5Rmt3TVFFREl4TUZNaFlIQmdRakpRVXlOamMySmljbEFWcGp2UDBCNXVIMEVSTCsxL1Ard1FGRW1jUVJFSWFBL3FjQ092M0dCYkFCNzhiUjhKNEJtb2w3bVFRQkFBSUFiLzhLQlFRRnlBQVhBQ2dBUnJJY0tTb1JFam13SEJDd0JOQUFzQUJGV0xBUEx4dXhEeHcrV2JBQVJWaXdCUzhic1FVUVBsbXdEeEN5R3dFS0sxZ2gyQnYwV2JBRkVMSWtBUW9yV0NIWUcvUlpNREVsRndjbkJpTXVBaWNtRWhJM05oY2VBaGNXQndjQ0F6WW1KeVlHQWdjSEJoWVdGeFlTTnpZRGk5bUwva3BLaWRCekJnWkJubkNnem8zUWNnWURDZ3crYVFlWWtvYlRoeElEQkQ2SFlyajdLaFZNMFhIekVBR0Q5NXgrQVYwQkdWWjZCQU9DOTV4VVUxWCtVUUo5eU5ZRUJKaiswZWhCYzhob0F3Y0JHUDkvQUFBQ0FEb0FBQVRDQmJBQURnQVhBR0d5QlJnWkVSSTVzQVVRc0JiUUFMQUFSVml3QkM4YnNRUWNQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFOTHh1eERSQStXYklRQkFJUkVqbXdFQyt5QUFFS0sxZ2gyQnYwV2JJTEFBUVJFam13QkJDeUZnRUtLMWdoMkJ2MFdUQXhBU0VESXhNRkZoWUhCZ1lIRXdjakFRVXlOamMySmljbEFxMytzR2E5L1FHMjVmQVRDN0dUNGdISS9mOEJGSkRHRVErQ2hmN2RBazM5c3dXd0FRSG14b25RTmYyWkRRTHFBWm1BZlk0RUFRQUJBQ2YvNlFTakJjY0FLQUJoc2hNcEtoRVNPUUN3QUVWWXNBb3ZHN0VLSEQ1WnNBQkZXTEFmTHh1eEh4QStXYklDSHdvUkVqbXdDaEN3RDlDd0NoQ3lFZ0VLSzFnaDJCdjBXYkFDRUxJWUFRb3JXQ0hZRy9SWnNCOFFzQ1RRc0I4UXNpWUJDaXRZSWRnYjlGa3dNUUUyTHdJa056NENGeDRDQnljMkppY21CZ2NHSHdJRUF3NENKeTRDTnhjR0ZnUTJBMjBXdkswNi90d1RDcEx4aUlUUGJBYTlDb3lDaWJnT0ZNdVZTd0VhRlF1UTk0Nko0M1lIdkFtZkFTSzhBWGVnU2o4WmhmRjV1bVVEQTNESmZnR0drd0lDaEhLVlRUVWdndjhBZTdOaUF3Rnp5SDhCZ3BrRWdnQUJBS2dBQUFVSkJiQUFCd0F1QUxBQVJWaXdCaThic1FZY1BsbXdBRVZZc0FJdkc3RUNFRDVac0FZUXNnQUJDaXRZSWRnYjlGbXdCTkF3TVFFaEF5TVRJVGNoQk8zK08rRzc0ZjQ3SEFSRkJSTDY3Z1VTbmdBQUFRQm4vK2NGSUFXd0FCSUFQTElQRXhRUkVqa0FzQUJGV0xBS0x4dXhDaHcrV2JBQVJWaXdFaThic1JJY1BsbXdBRVZZc0FRdkc3RUVFRDVac2c0QkNpdFlJZGdiOUZrd01RRURCZ0FuTGdJM0V6TURCaFlYRmpZM0V3VWdxQ0wrdk9XUDAyUVJxTG1uRVlxTW1ORWJxQVd3L0Nmai92TUVBM3ZmamdQYS9DV1pyd1FHc2FBRDNBQUFBUUNrQUFBRllRV3dBQVlBT0xJQUJ3Z1JFamtBc0FCRldMQUJMeHV4QVJ3K1diQUFSVml3QlM4YnNRVWNQbG13QUVWWXNBTXZHN0VERUQ1WnNnQUJBeEVTT1RBeEFRRXpBU01CTXdJK0FrL1UvUkNtL3RuRkFRRUVyL3BRQmJBQUFRRERBQUFIUVFXd0FCSUFXUUN3QUVWWXNBTXZHN0VESEQ1WnNBQkZXTEFJTHh1eENCdytXYkFBUlZpd0VTOGJzUkVjUGxtd0FFVllzQW92RzdFS0VENVpzQUJGV0xBUEx4dXhEeEErV2JJQkF3b1JFam15QmdNS0VSSTVzZzBEQ2hFU09UQXhBUWMzQVRNVEZ6Y0JNd0VqQXljSEFTTURNd0crQkVRQnM1OXpDajhCZE1IOXhxdCtCQ3IrTUt0eXR3SEJzS3dEOC93QXBza0QzZnBRQkMxa2RQdmpCYkFBQWYvVUFBQUZLd1d3QUFzQWF3Q3dBRVZZc0FFdkc3RUJIRDVac0FCRldMQUtMeHV4Q2h3K1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNBY3ZHN0VIRUQ1WnNnQUJCQkVTT1VBSmhnQ1dBS1lBdGdBRVhiSUdBUVFSRWpsQUNZa0dtUWFwQnJrR0JGMnlBd0FHRVJJNXNna0dBQkVTT1RBeEFRRXpBUUVqQVFFakFRRXpBcG9CcWVqOXlRRlQwLzcrL2tyb0FrUCt0dEFEZ3dJdC9TWDlLd0kzL2NrQzV3TEpBQUFCQUtnQUFBVXlCYkFBQ0FBeEFMQUFSVml3QVM4YnNRRWNQbG13QUVWWXNBY3ZHN0VISEQ1WnNBQkZXTEFFTHh1eEJCQStXYklBQVFRUkVqa3dNUUVCTXdFREl4TUJNd0pqQWUvZy9YTmR1MkQrdTh3QzFnTGEvR1g5NndJcUE0WUFBQUgvNndBQUJNNEZzQUFKQUVRQXNBQkZXTEFITHh1eEJ4dytXYkFBUlZpd0FpOGJzUUlRUGxteUFBRUtLMWdoMkJ2MFdiSUVBQUlSRWptd0J4Q3lCUUVLSzFnaDJCdjBXYklKQlFjUkVqa3dNVGNoQnlFM0FTRTNJUWZxQXlJYysvc2JBOGI5REJ3RDJocWRuWm9FZUo2WEFBSC8vLzdJQXFNR2dBQUhBQ0lBc0FRdnNBY3ZzZ0FCQ2l0WUlkZ2I5Rm13QkJDeUF3RUtLMWdoMkJ2MFdUQXhBU01CTXdjaEFTRUNpcm4rKzdvWS9wRUJOQUZ3QmVqNWVKZ0h1QUFCQUwvL2d3S2VCYkFBQXdBVEFMQUNMN0FBUlZpd0FDOGJzUUFjUGxrd01STXpBU08vcEFFN293V3crZE1BQWY5Ni9zZ0NId2FBQUFjQUpRQ3dBaSt3QVMrd0FoQ3lCUUVLSzFnaDJCdjBXYkFCRUxJR0FRb3JXQ0hZRy9SWk1ERVRJUUVoTnpNQkk2OEJjUDdML3BBWXV3RUZ2QWFBK0VpWUJvZ0FBUUJQQXRrRER3V3dBQVlBSjdJQUJ3Z1JFamtBc0FCRldMQURMeHV4QXh3K1diQUEwTElCQndNUkVqbXdBUyt3QmRBd01RRUJJd0V6RXlNQ0RQNzBzUUdoZktPZUJMbitJQUxYL1NrQUFmK0IvMmtERmdBQUFBTUFHd0N3QUVWWXNBTXZHN0VERUQ1WnNnQUJDaXRZSWRnYjlGa3dNUVVoTnlFQysveUdHd042bDVjQUFRRFBCTmdDS3dYK0FBTUFJd0N3QVMreUR3RUJYYkFBMEJtd0FDOFlzQUVRc0FMUXNBSXZ0QThDSHdJQ1hUQXhBU01ETXdJcmo4M05CTmdCSmdBQ0FEUC82QVBQQkZFQUlBQXJBSG15QkN3dEVSSTVzQVFRc0NMUUFMQUFSVml3R0M4YnNSZ1lQbG13QUVWWXNBVXZHN0VGRUQ1WnNBQkZXTEFBTHh1eEFCQStXYklER0FVUkVqbXlDeGdGRVJJNXNBc3ZzQmdRc2hBQkNpdFlJZGdiOUZteUV3c1lFUkk1c0FVUXNpRUJDaXRZSWRnYjlGbXdDeEN5SmdFS0sxZ2gyQnYwV1RBeElTWTFOd1luSmlZM05pUXpGemMySmljbUJnY0hQZ0lYRmhZSEF3Y0dGd2NsRmpZM055Y2lCZ2NHRmdLMUJ3T1ZwNCt6Q0FvQkdlVzlEQXBmWDEyUEVMWUpnc3h0cWJ3UFdBVUNEZ0wrTEZlYk9DZUpxN1lNQ1ZrZEhEbUtCQUt4aGF6QkFWWmhjUUlDWDA0Qlg1TlJBZ1RGby8zb1RUYzJFWXdDVjAzZkFXeGpUR1VBQWdBZi8rZ0QvZ1lBQUJJQUhnQmtzaHdmSUJFU09iQWNFTEFFMEFDd0NTK3dBRVZZc0Ewdkc3RU5HRDVac0FCRldMQUVMeHV4QkJBK1diQUFSVml3Qnk4YnNRY1FQbG15QmcwRUVSSTVzZ3NOQkJFU09iQU5FTElXQVFvcldDSFlHL1Jac0FRUXNoc0JDaXRZSWRnYjlGa3dNUUVHQWdZbkppY0hJd0V6QXpZWEZoWVhGZ2NuTmlZbkpnY0RGaGNXTmpZRDlSU095bnZFWHlXbkFRdTFiWUs2bks0RkFRZXVBMmhycVhWUlBLVnFuMUlDR0tiKzlvQURCSTkrQmdEOXdwQUVCTjdEUUR4VWtwc0VCSzcrS2FVRUJJYnhBQUVBUnYvcEErWUVVZ0FnQUV1eUFDRWlFUkk1QUxBQVJWaXdFUzhic1JFWVBsbXdBRVZZc0Fndkc3RUlFRDVac2dBQkNpdFlJZGdiOUZteUJCRUlFUkk1c2hRUkNCRVNPYkFSRUxJWUFRb3JXQ0hZRy9SWk1ERWxGalkzTnc0Q0p5NENOemMrQWhjV0ZoVW5KaVluSmdZSEJ3WVhGaFlCNkdHY0dLc1BoY3BxaDd0WURnVVRrT2lNcXN5cEFuSmhqYnNYQXdZRUIzYUNBblZmQVdhb1hnTUNpZldaTXB6MmlRUUUzS2tCYW9NRUE5akNHa0JFZFlnQUFBSUFTLy9vQkhVR0FBQVJBQjBBWkxJRUhoOFJFam13QkJDd0d0QUFzQWN2c0FCRldMQUVMeHV4QkJnK1diQUFSVml3RFM4YnNRMFFQbG13QUVWWXNBb3ZHN0VLRUQ1WnNnWUVEUkVTT2JJTEJBMFJFam13RFJDeUZRRUtLMWdoMkJ2MFdiQUVFTElhQVFvcldDSFlHL1JaTURFVE5oSTJGeFlYRXpNQkl6Y0dKeVltSnlZWEJoWVhGamNUSmljbUJnWlRGSTdRZmJWaGFMWCs5cVVUZ0x5V3NnY0R0Z05zYUoxNlZqeWVhNk5WQWgrbEFRcUVBd1NBQWpYNkFIU01CQVRqdnpzV2o1NENCNlVCOUpRRUE0ZnpBQUlBUmYvcUErQUVVUUFYQUI4QWFiSVNJQ0VSRWptd0VoQ3dHZEFBc0FCRldMQUlMeHV4Q0JnK1diQUFSVml3QUM4YnNRQVFQbG15SEFnQUVSSTVzQnd2dEw4Y3p4d0NYYklPQVFvcldDSFlHL1Jac0FBUXNoSUJDaXRZSWRnYjlGbXlGQWdBRVJJNXNBZ1FzaGdCQ2l0WUlkZ2I5Rmt3TVFVbUFqYzNOaEkyRnhZV0Z4WUhCeUVHRmhjV054Y0dCZ01tQmdjRk56WW1BZlBLNUJJRkVaM2lnNmUrQ1FNSEMvMDlFb1dFb0lob1JOY1JjS2N4QWc0RUVIRVVCQUVpNGl1aEFRcUhBd1RXdDBGQlU1UE9CQVNVV0dKdkE4MERucHdCRUg2bkFBRUFkQUFBQTFBR0dRQVdBR095QmhjWUVSSTVBTEFBUlZpd0NTOGJzUWtlUGxtd0FFVllzQU12RzdFREdENVpzQUJGV0xBU0x4dXhFaGcrV2JBQVJWaXdBQzhic1FBUVBsbXdBeEN5QVFFS0sxZ2gyQnYwV2JBSkVMSU9BUW9yV0NIWUcvUlpzQUVRc0JUUXNCWFFNREV6RXlNM016YzJOellYTWhjSEppY2lCZ2NITXdjakEzZWtweG1tRWhwa2FhTXpUaFl3TVY1MURoRGdHZUNqQTZ1UGdLTmNZQUlSbHdvQ2RXRnJqL3hWQUFBQ0FBVCtUd1FvQkZJQUhRQXBBSU95Q3lvckVSSTVzQXNRc0NiUUFMQUFSVml3QkM4YnNRUVlQbG13QUVWWXNBY3ZHN0VIR0Q1WnNBQkZXTEFNTHh1eERCSStXYkFBUlZpd0dDOGJzUmdRUGxteUJnUVlFUkk1c2hBWURCRVNPYkFNRUxJU0FRb3JXQ0hZRy9SWnNoWUVHQkVTT2JBWUVMSWhBUW9yV0NIWUcvUlpzQVFRc2lZQkNpdFlJZGdiOUZrd01STTJFallYRmhjM013TUdCQ2NtSmljM0ZoY1dOamMzQmljdUFpY21Gd1lXRnhZM0V5WW5KZ1lIVkJpUHpYcThZQ1NtdEIzKzZzeHV5VHBuWXFHQnN4MFVoTEZsbFZJRUFyY0RhV3FpZFZVOG5aTzlFUUlmc1FFRmZRTUVpbm43M2MvNUJnSmtWMitSQkFTWWpHQ0VCQU5udzNnN0ZJK2RCQVNqQWZHVUJnVDQwd0FCQUI4QUFBUGpCZ0FBRWdCSnNnRVRGQkVTT1FDd0VpK3dBRVZZc0FJdkc3RUNHRDVac0FCRldMQVBMeHV4RHhBK1diQUFSVml3Qnk4YnNRY1FQbG15QUFJUEVSSTVzQUlRc2d3QkNpdFlJZGdiOUZrd01RRTJGeFlXQndNakV6WW5KaWNtQndNakFUTUJjWTY1bUpNVGRyVjNCZ1VSbEtaNGhyVUJDN1VEdHBzRUFzMjUvVHNDeURFcWpBTUVzdno4QmdBQUFnQXZBQUFCNHdYSEFBTUFEUUF4QUxBQVJWaXdBaThic1FJWVBsbXdBRVZZc0FFdkc3RUJFRDVac0FJUXNBclFzQW92c2dRRkNpdFlJZGdiOUZrd01UTWpFek1ETmhZVkRnSW1OamJqdEx5MEp5NDlBVHRlUEFJNkJEb0Jpd0k3TUM4OEJEcGVQZ0FDL3hUK1JnSFZCY2NBREFBWUFEd0FzQUJGV0xBTUx4dXhEQmcrV2JBQVJWaXdCQzhic1FRU1BsbXlDUUVLSzFnaDJCdjBXYkFNRUxBWDBMQVhMN0lRQlFvcldDSFlHL1JaTURFQkF3WUdKeVluTnhZWE1qY1RFelkyTnpZV0ZRWUdCd1ltQVpiTkZLV0ZOVUlRSlM2QkdzOGZBVGt3TGowQlBDOHRQQVE2KzBXWm9BSUNFcFFKQXBvRXV3RWNMejRDQWowdUx6d0NBandBQVFBZ0FBQUVHZ1lBQUF3QWRRQ3dBRVZZc0FRdkc3RUVIajVac0FCRldMQUlMeHV4Q0JnK1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBc3ZHN0VMRUQ1WnNnQUlBaEVTT1VBVk9nQktBRm9BYWdCNkFJb0FtZ0NxQUxvQXlnQUtYYklHQ0FJUkVqbEFGVFlHUmdaV0JtWUdkZ2FHQnBZR3BnYTJCc1lHQ2wwd01RRUhBeU1CTXdNM0FUTUJBU01CbzQ1QXRRRUx0YUJ2QVlEci9nOEJWc1lCODMvK2pBWUEvR3B3QVdEK00vMlRBQUVBTHdBQUFlNEdBQUFEQUIwQXNBQkZXTEFDTHh1eEFoNCtXYkFBUlZpd0FDOGJzUUFRUGxrd01UTWpBVFBqdEFFS3RRWUFBQUVBSGdBQUJtb0VVZ0FnQUhleUZpRWlFUkk1QUxBQVJWaXdBeThic1FNWVBsbXdBRVZZc0Fndkc3RUlHRDVac0FCRldMQUFMeHV4QUJnK1diQUFSVml3Rnk4YnNSY1FQbG13QUVWWXNBMHZHN0VORUQ1WnNBQkZXTEFlTHh1eEhoQStXYklCSGdNUkVqbXlCZ01YRVJJNXNBTVFzaHNCQ2l0WUlkZ2I5Rm13RXRBd01RRUhOaGNXRmhjMkZ4WVdCd01qRXpZbkppY21CZ2NESXhNMkppY21Cd01qRXdHRUY0akJaNDhibU0raW1oUjN0SFlHQmhPZlk2RVhlN1o0RFYxaXFXU0p0YndFTzNtUUJBSmFVcklFQk5LeC9Ua0N5VFFyaUFNQ2YyZjlNUUxJYjNnQ0JKNzg2UVE2QUFBQkFCOEFBQVBqQkZJQUVnQlRzZ0lURkJFU09RQ3dBRVZZc0FNdkc3RURHRDVac0FCRldMQUFMeHV4QUJnK1diQUFSVml3RUM4YnNSQVFQbG13QUVWWXNBZ3ZHN0VJRUQ1WnNnRURFQkVTT2JBREVMSU5BUW9yV0NIWUcvUlpNREVCQnpZWEZoWUhBeU1UTmljbUp5WUhBeU1UQVlZYWtycVpraE4ydFhjR0JSR1VvM3VHdGJ3RU80bWdCQVRNdWYwN0FzZ3hLb3dEQTdIOC9BUTZBQUlBUmYvb0JCOEVVZ0FRQUNJQVE3SVhJeVFSRWptd0Z4Q3dDTkFBc0FCRldMQUFMeHV4QUJnK1diQUFSVml3Q1M4YnNRa1FQbG15RmdFS0sxZ2gyQnYwV2JBQUVMSWZBUW9yV0NIWUcvUlpNREVCSGdJSEJ3NENKeTRDTnpZU05nTUdGeFlXRnhZMk5qYzJKeVltSnlZR0J3SjRpTUpkRHdJVGx1Nk9oOE5hRFErWTcrQUhCd3A1WlZxWWFBOElCUXg2Wll6RUZ3Uk9BcEQ5bGhhZS80NEVBcEQ0bGFnQkRKUDl1RDlFZG93REExL0FkVncvZVl3RUErSzNBQUFDLzlmK1lBUDhCRklBRWdBZUFHZXlCQjhnRVJJNXNBUVFzQjNRQUxBQVJWaXdEUzhic1EwWVBsbXdBRVZZc0Fvdkc3RUtHRDVac0FCRldMQUhMeHV4QnhJK1diQUFSVml3QkM4YnNRUVFQbG15Q3cwSEVSSTVzQTBRc2hjQkNpdFlJZGdiOUZtd0JCQ3lIQUVLSzFnaDJCdjBXVEF4QVFZQ0JpY21Kd01qQVRjSE5oY1dGaGNXQnlNM05DWW5KZ2NERmhjV05nUHpGSXJNZkx4a1liVUJCS1FVaHJ1Y3JnVUJCclVGYjJtZGNsczlub2U5QWhpbC92aURBd1I3L2ZZRjJnRjVrQVFFM3NOQVBGU1Ntd1FFbWYzNWtBUUQyUUFDQUVuK1lBUW9CRklBRUFBY0FHaXlBQjBlRVJJNXNCclFBTEFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQU12RzdFREdENVpzQUJGV0xBRkx4dXhCUkkrV2JBQVJWaXdDUzhic1FrUVBsbXlBZ0FKRVJJNXNnY0FDUkVTT2JJVkFRb3JXQ0hZRy9SWnNBQVFzaG9CQ2l0WUlkZ2I5Rmt3TVFFV0Z6Y3pBU01UQmljbUppY21FalkyQXdjR0ZoY1dOeE1tSnlZR0FrbTNZQ0duL3Z5MFlvS3NtTFlIQmthTHZzOEZBMjlvbVhaZVFwYUp2QVJQQkg5dStpWUNCSHdFQXVMQWZBRVR6V2I5dUZTUm9RSUVsZ0lVaXdRRDJBQUFBUUFmQUFBQzFBUlVBQXdBUnJJRERRNFJFamtBc0FCRldMQUtMeHV4Q2hnK1diQUFSVml3Qnk4YnNRY1lQbG13QUVWWXNBUXZHN0VFRUQ1WnNBb1FzZ0VPQ2l0WUlkZ2I5Rm15Q0FvQkVSSTVNREVCSnlJSEF5TVROd2MyRnpJWEFzQlZybVNGdGJ5dkczT2NJVFVEbFFtZC9QOEVPZ0YrbHdRUEFBRUFMdi9wQTdZRVVBQW1BR095Rmljb0VSSTVBTEFBUlZpd0NDOGJzUWdZUGxtd0FFVllzQjB2RzdFZEVENVpzZ01kQ0JFU09iSUxDQjBSRWptd0NCQ3lEd0VLSzFnaDJCdjBXYkFERUxJVkFRb3JXQ0hZRy9SWnNpQUlIUkVTT2JBZEVMSWtBUW9yV0NIWUcvUlpNREVCTmljbkpqYzJOaGNXRmdjbk5pWW5KZ2NHQndZWEZ4WVdCdzRDSnlZbU54Y1VGak1XTmdLOUQ0cTg3Z2dIOTZla3pRUzBBbXBZWGtRL0NnMkFXN3FjQmdaNHlIR3M0QVMxZEdWamtBRWxjQzQzVXI2UHR3SUN1NVlCVVdZQ0FqQXRTVjRyR1RDYWNtV1dUd01DeFpzQlcyNENWd0FBQVFCRC8rMENsQVZBQUJZQVg3SVdGeGdSRWprQXNBQkZXTEFCTHh1eEFSZytXYkFBUlZpd0ZDOGJzUlFZUGxtd0FFVllzQTR2RzdFT0VENVpzQUVRc0FEUXNBQXZzQUVRc2dNQkNpdFlJZGdiOUZtd0RoQ3lDUUVLSzFnaDJCdjBXYkFERUxBUzBMQVQwREF4QVFNekJ5TURCaGNXTXpJM0J3WWpKaVkzRXlNM014TUIvUzdGR2NSeEF3SUhUaUUzRGtGRGJHd01icjhadnk0RlFQNzZqLzFmR2haT0NwY1NBcHVEQXA2UEFRWUFBQUVBVy8vb0JCNEVPZ0FUQUV5eUFSUVZFUkk1QUxBQVJWaXdCaThic1FZWVBsbXdBRVZZc0JBdkc3RVFHRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3RXk4YnNSTVFQbG13QWhDeURRRUtLMWdoMkJ2MFdUQXhKUVluSmlZM0V6TURCaGNXRmhjV054TXpBeU1Dem4vRW01VVRkTFYxQlFNRlRFVENhb2kxdkt0cmd3UUUxcmtDdS8xQ0xDcElVZ01Hb3dNVSs4WUFBUUJ1QUFBRDdRUTZBQVlBT0xJQUJ3Z1JFamtBc0FCRldMQUJMeHV4QVJnK1diQUFSVml3QlM4YnNRVVlQbG13QUVWWXNBTXZHN0VERUQ1WnNnQUZBeEVTT1RBeEpRRXpBU01ETXdHb0FZYS8vZCtLMUxMOUF6Mzd4Z1E2QUFFQWdBQUFCZjRFT2dBTUFHQ3lCUTBPRVJJNUFMQUFSVml3QVM4YnNRRVlQbG13QUVWWXNBZ3ZHN0VJR0Q1WnNBQkZXTEFMTHh1eEN4ZytXYkFBUlZpd0F5OGJzUU1RUGxtd0FFVllzQVl2RzdFR0VENVpzZ0FMQXhFU09iSUZDd01SRWpteUNnc0RFUkk1TURFQkFUTUJJd01CSXdNekV3RXpBK29CV2J2K0U1TncvbnFUZGExQ0FZQ1NBUUFET3Z2R0F6TDh6Z1E2L05vREpnQUFBZi9FQUFBRDlBUTZBQXNBVXdDd0FFVllzQUV2RzdFQkdENVpzQUJGV0xBS0x4dXhDaGcrV2JBQVJWaXdCQzhic1FRUVBsbXdBRVZZc0Fjdkc3RUhFRDVac2dBS0JCRVNPYklHQ2dRUkVqbXlBd0FHRVJJNXNna0dBQkVTT1RBeEFRRXpBUUVqQXdFakFRRXpBZkFCSnQ3K1RnRUl4YlArejkwQnYvOEF4Z0t3QVlyOTRQM21BWlQrYkFJc0FnNEFBZitsL2tVRDdBUTZBQThBUDdJQUVCRVJFamtBc0FCRldMQVBMeHV4RHhnK1diQUFSVml3QlM4YnNRVVNQbG15QUFVUEVSSTVzQThRc0FIUXNBVVFzZ2tCQ2l0WUlkZ2I5Rmt3TVFFQk13RUNKeVluTnhjV05qYzNBek1Cb3dHQnlQMStodElsU0JBdlZuMHdRYnU5QVJFREtmc1MvdmtEQVJHV0JRUlZYM3dFSXdBQUFmL3RBQUFEemdRNkFBa0FSQUN3QUVWWXNBY3ZHN0VIR0Q1WnNBQkZXTEFDTHh1eEFoQStXYklBQVFvcldDSFlHL1Jac2dRQUFoRVNPYkFIRUxJRkFRb3JXQ0hZRy9SWnNna0ZCeEVTT1RBeE55RUhJVGNCSVRjaEIrb0NZQnY4dmhrQ3hmM0xIQU1jR0plWGtRTVFtWXdBQVFBNC9wTURGUVkvQUIwQUxySU1IaDhSRWprQXNBQXZzQTR2c2drQURoRVNPWHl3Q1M4WXNnZ0RDaXRZSWRnYjlGbXlGQWdKRVJJNU1ERUJKaVkzTnpZbkppYzNOamMzRWlVWEJnTUhCZ2NXRnhZUEFoY1dGd0hlbnBRVEhBWUZFWk1RMlNBZk93RmZHOVF0SWlHeVp3b0RCQjhDQWhHRy9wTTE3NnpQTVNxSUNKRUs2K1FCVTJWMVJ2NzE4TWhlVFk0c0svTkhINTgxQUFFQUlmN3lBY0VGc0FBREFCTUFzQUF2c0FCRldMQUNMeHV4QWh3K1dUQXhFeU1CTTdPU0FRNlMvdklHdmdBQi80eitrQUpxQmpzQUhBQXVzaGtkSGhFU09RQ3dEaSt3SEMreUZod09FUkk1ZkxBV0x4aXlGd01LSzFnaDJCdjBXYklGRnhZUkVqa3dNUWMyRXpjMk55WW5KajhDSmljM0ZoWUhCd1lYRmhjSEJnY0hBZ1YwMlNzZkg4TnhEUVFGSHdJRGxTMmNrQk1iQmdVUWt3L2FJQnd6L3BiN1J3RVI0dEJkUlpNcUxmWkh1RHB4TmUrcjBESXBod2lSQ3U3UC9wNW9BQUFCQUdrQmpnVGRBeWNBRndBNHNoRVlHUkVTT1FDd0R5K3dBTkN3RHhDd0ZOQ3dGQyt5QXdFS0sxZ2gyQnYwV2JBUEVMSUlBUW9yV0NIWUcvUlpzQU1Rc0F6UU1ERUJCZ1luSmljbkppTW1Ed0kyTmhjV0Z4Y1dNekkyTndUZERzT01mbnM4U0VLSUxBaWNFTU9OZDJ4WlJEOUxhUklEQ3FQWkFnTndPa01EcHlVRG90RUVBMTFUUFc1bUFBTC84ZjZZQWFFRVR3QURBQTRBSkFDd0F5K3dBRVZZc0F3dkc3RU1HRDVac2djRkNpdFlJZGdiOUZtd0FkQ3dBUzh3TVJNekF5TUJGQVlHSmpVMk5qYzJGck9scWI0QnJ6cGdPd0U3THk0OUFxejc3QVZQTHo0RVBpMHdPd0lCT2dBQUFRQlMvd3NEOHdVbUFDSUFVcklISXlRUkVqa0FzQUJGV0xBU0x4dXhFaGcrV2JBQVJWaXdCeThic1FjUVBsbXlBQU1LSzFnaDJCdjBXYkFIRUxBRDBMQUhFTEFLMExBU0VMQVYwTEFaMExBVkVMSWNBd29yV0NIWUcvUlpNREVsRmpZM053WUdCd2NqTnlZbUp5WVNOalkzTnpNSEZoWVZJelFtSnlZQ0J3Y0dGZ0hwWVowYnJCWFJvQzYxTDNlUkRnd3NlYnAzTGJVdGc1T3FjR0dZeGc0QkEzU0NBbk5oQVlhOUh1bnNIcnlOYndFTDBvVVY0dUVneTVWcWhBUUcvd0RrS282ZEFBQUIvL01BQUFTSkJjb0FId0Jyc2hFZ0lSRVNPUUN3QUVWWXNCSXZHN0VTSEQ1WnNBQkZXTEFGTHh1eEJSQStXYklkRWdVUkVqbXdIUyt5QUFFS0sxZ2gyQnYwV2JBRkVMSURBUW9yV0NIWUcvUlpzQWpRc0FBUXNBdlFzQjBRc0EzUXNoVVNCUkVTT2JBU0VMSVpBUW9yV0NIWUcvUlpNREVCQndZSEpRY2hOeGMyTnpjak56TTNOaVFYRmhZSEp6WW1KeVlHQndjaEJ3RzRIQlJZQXNzZC9CVWRRM0VkRzZBYm5COFpBUmJBcU1BSXV3ZGlaVzZhRUNBQk5oc0NidFNaWndPZG5BSXAzYzZkL2N6MkJnVFJzUUZxZWdRRXBJSDduUUFBQWdBUy8rVUZqUVR4QUIwQUxRQS9zaXN1THhFU09iQXJFTEFRMEFDd0FFVllzQUl2RzdFQ0VENVpzQkhRc0JFdnNBSVFzaUlCQ2l0WUlkZ2I5Rm13RVJDeUtnRUtLMWdoMkJ2MFdUQXhKUVluSmljSEp6Y21KeVlTTnljM0Z6WVhGaGMzRndjV0Z4WUNCeGNIQVFZV0ZoY1dOalkzTmlZbUp5WUdCZ1BrdTc3SGlKMXRueDRLRTFsb2RZMXlzN2E4aWE5dnJTQU1FbEZqYzQvODRnOUtuMngxMTVFUURrbWViSGJZa0c2R0JBUitpSkNHVlZlV0FTRjFuWCtVZWdRQ2Q1aVNrMWRaa1A3bWVKWi9Bbkp5MEhzRUJIN2VlM1BPZVFRRWZ0d0FBUUJUQUFBRkpBV3dBQllBYXdDd0FFVllzQll2RzdFV0hENVpzQUJGV0xBQkx4dXhBUncrV2JBQVJWaXdEQzhic1F3UVBsbXlEeE1ESzdJQURCWVJFam0wRHhNZkV3SmRzQk1Rc0FQUXNCTVFzaElDQ2l0WUlkZ2I5Rm13QnRDd0R4Q3dCOUN3RHhDeURnSUtLMWdoMkJ2MFdiQUswREF4QVFFekFTRUhJUWNoQnlFREl4TWhOeUUzSVRjaEFUTUNiZ0hWNGYzdUFTa1cvb3dkQVhVVy9vdzV2RGora1JZQmJoMytrUllCTnY3bnl3TVBBcUg5TUgybGZQNitBVUo4cFgwQzBBQUFBdi8zL3ZJQjJRV3dBQU1BQndBWUFMQUFMN0FBUlZpd0JpOGJzUVljUGxteUJRRURLekF4QXhNekF4TWpFek1KaXJhS3FMYUV0djd5QXhmODZRUElBdllBQXYvZC9nNEVvUVhHQURFQVB3QnpBTEFITDdBQVJWaXdJaThic1NJY1BsbXlGUWNpRVJJNXNCVVFzam9CQ2l0WUlkZ2I5Rm15QWhVNkVSSTVzQWNRc0F2UXNBY1FzZzhCQ2l0WUlkZ2I5Rm15TGlJSEVSSTVzQzRRc2pNQkNpdFlJZGdiOUZteUd6TXVFUkk1c0NJUXNDYlFzQ0lRc2lrQkNpdFlJZGdiOUZrd01RRUdCeFlIQmdRbkppWTNOd1lXRmhjV05qWTNOaVlrSnlZM05qY21OelkyTnpZWEZoWUhJelltSnlZR0J3WVdCQmNFSlNjR0J3WVhGZ1FYTmpjMkppY0VQeExUWncwTy91RGUyZklMdFFZL2dsaFRsRndKREd2KzYxRHlGQTdTWXcwSWhuZDdqYy9oRExRSWhIeUh0dzhMWUFFUFJ3RU4vaFNhcHhZT1N6SUJBa0d1Rmd0ZmR3RzN2MkJucWE3TUFnVG14d0ZWZmtVQkFqWmpSVTF2V1NaejdMaG5hcVpzclM4d0FnVGx4bjZXQkFKMWFWRnRWQjkwQnpRdmwyUTlLVkVaTkpOSmNDb0FBZ0RiQk80RFVnWEhBQXNBRndBZEFMQUpMN0lEQlFvcldDSFlHL1Jac0EvUXNBa1FzQlhRc0JVdk1ERVROalkzTmhZSEZBWUhCaVlsTmpZM05oWUhGQVlIQmliYkFUb3ZMejBCUEM4dk93R2hBVG92TUR3QlBDOHVQUVZaTGowQ0FUc3ZMandDQVRvdExqNENBVHN3THpzQ0FUb0FBQU1BWXYvcUJlMEZ5QUFiQUNrQU9nQ0NBTEFBUlZpd0xpOGJzUzRjUGxtd0FFVllzRGN2RzdFM0VENVpzZ00zTGhFU09iQURMN1FQQXg4REFsMnlDaTQzRVJJNXNBb3Z0QUFLRUFvQ1hiSU9DZ01SRWpteUVRSUtLMWdoMkJ2MFdiQURFTElaQWdvcldDSFlHL1Jac2hzRENoRVNPYkEzRUxJZkJBb3JXQ0hZRy9SWnNDNFFzaVlFQ2l0WUlkZ2I5Rmt3TVFFR0JpY21KamMzTmpZWEZoWUhKelltSnlZR0JoY1hGaFlYRmpjRkZnQVhGaVFTSnlZQUp5WUVBZ2MyRWlRWEZnUVNCd1lDQkNjakppUUNCRVVPdXBXUm9BNEtGTStkanBzR2p3WkZXbDkvSFFFQ0IwOUVxaVA5TFJZQkJMNjdBVTIzRkJiL0FNRzkvck8yV3hia0FWN0NzZ0VjamhVWDVQNm92QXEzL3VpT0FsV1hwd1FFMktkaXZkc0NCS09VQVZWaUFnS1IveDRqVFZvREI3OGF6Lzc1QWdUZkFYMit6UUVDQlFUZy9vZ214d0ZreXdRQ3hQNmx4TXYrbnNnQkJNUUJXd0FBQWdEREFyTURUZ1hIQUIwQUp3QmdBTEFBUlZpd0ZpOGJzUlljUGxteUF5Z1dFUkk1c0FNdnNBRFFzQUF2c2drREZoRVNPYkFKTDdBV0VMSVBBd29yV0NIWUcvUlpzaElKRmhFU09YeXdFaThZc0FNUXNoNERDaXRZSWRnYjlGbXdDUkN5SVFRS0sxZ2gyQnYwV1RBeEFTY0dJeUltTnpZMk14YzNOaWNtSnlZR0J5YzJOaGNXRmdjREJ3WVhKVEkzTnlNR0JnY0dGZ0oyQkZ4eWFYZ0VCYnFuYndrREFnZFZPRmNQbkF1d2czdUZDallFQVFqK3UwdGJIRjFZYUFnRk5nSy9TbFo3WVhOOEFUWWJHRThEQVRFNEMyMS9BZ1NWZlA2bE9pMHVla1NQQTBBM0t5NEEvLzhBV1FDWEE0NERzd0FtQVhyNi9nQUhBWG9CT3YvK0FBRUFnUUYzQThVRElBQUZBQm9Bc0FRdnNBSFFzQUV2c0FRUXNnSUJDaXRZSWRnYjlGa3dNUUVqRXlFM0lRTjd0aS85alIwREp3RjNBUWloQUFRQVlmL21CZTBGeUFBUEFCOEFPUUJDQUlRQXNBQkZXTEFFTHh1eEJCdytXYkFBUlZpd0RDOGJzUXdRUGxteUZBUUtLMWdoMkJ2MFdiQUVFTEljQkFvcldDSFlHL1Jac2lFTUJCRVNPYkFoTDdJakJBd1JFam13SXkrMEFDTVFJd0pkc2pvaEl4RVNPYkE2TDdJZ0Fnb3JXQ0hZRy9SWnNpb2dPaEVTT2JBaEVMQXkwTEF5TDdBakVMSkNBZ29yV0NIWUcvUlpNREVUTmhJa0Z4WUVFZ2NHQWdRbkppUUNOeDRDRnhZa0VpY3VBaWNtQkFJRkF5TVRCUllXQndZR0J4WVhCd1lYRndjakpqOENOaVluSnhjMk5qYzJKaWNqZGhia0FWN0Nyd0Via3hZWDV2Nmx3TFArNkpPRURJSE5mcnNCU3JvVERvSExmcm4rdHIwQnZUV0toUUVCaTVVSEEwUlJUUWtCQ3dJREFvb0dBZ2NHQnpCRWxJOUlaUWtLUVZtTUF0TEhBV1RMQkFLLy9xWEp6UDZkeWdRRXZ3RmVMb1BjZGdNRTNBRjh3NFhZZEFNRTF2NkRiLzZ1QTFFQkJZRnlPbUF1TEdFOVZ4OUFFU1VrU0RaQ1JRU0JBUUpGT2o4K0F3QUJBT01GSVFPd0JiQUFBd0FSQUxBQkw3SUNBd29yV0NIWUcvUlpNREVCSVRjaEE1bjlTaGNDdGdVaGp3QUFBZ0RvQTcwQzJBWEhBQXNBRndBdkFMQUFSVml3QXk4YnNRTWNQbG13RDlDd0R5K3lDUUlLSzFnaDJCdjBXYkFERUxJVkFnb3JXQ0hZRy9SWk1ERVROallYRmhZSEJnWW5KaVkzQmhZek1qWTNOaVlqSWdic0JLRm5ZWDhDQko5bVlvTjlCajB4TmxVR0JqZzBObGNFdDIraEFnS1ZaWENjQWdLUlp6RkpVRGd3VDFVQUFnQWxBQUFEL3dUekFBc0FEd0JHQUxBSkw3QUFSVml3RFM4YnNRMFFQbG13Q1JDd0FOQ3dDUkN5QmdFS0sxZ2gyQnYwV2JBRDBMQU5FTElPQVFvcldDSFlHL1Jac2dVT0JoRVNPYlFMQlJzRkFsMHdNUUVoQnlFREl4TWhOeUVUTXhNaE55RUNuZ0ZoR1A2Z1FhUkIvb29aQVhWQm8zSDgxUmdES3dOV2wvNWlBWjZYQVozN0RaZ0FBUUJjQXBzQzVnVy9BQmNBVGdDd0FFVllzQTh2RzdFUEhENVpzQUJGV0xBQUx4dXhBQlErV2JJWEFnb3JXQ0hZRy9SWnNBTFFzZ01YRHhFU09iQVBFTElJQWdvcldDSFlHL1Jac2dzUEFCRVNPYklVRnc4UkVqa3dNUUVoTndFMk56WW1KeVlHQndjMk5oY1dGZ2NHRHdJaEFxTDl1aFFCWTJNTUJ6VXdRbEFPbWd1dWdIaUxCUWlYUU1RQmV3S2JkQUVxVkVvd05nRUJTejRCZFpVQ0FuNW1lMzB6a1FBQUFRQnVBbzBDNndXOEFDUUFjUUN3QUVWWXNBMHZHN0VOSEQ1WnNBQkZXTEFYTHh1eEZ4UStXYklBRncwUkVqbDhzQUF2R0xiUUFPQUE4QUFEWGJBTkVMSUhBZ29yV0NIWUcvUlpzZ2tBRFJFU09iQUFFTElqQkFvcldDSFlHL1Jac2hJakFCRVNPYkliRncwUkVqbXdGeEN5SGdJS0sxZ2gyQnYwV1RBeEFSYzJOamMySmlNaUJ5TTJOak1XRmdjR0J4WUhCZ1luSmlZMU14UVdNekkyTnpZbkp3RlhUa0pkQndZK01uQWRuQXVmZlg2T0JRZVlkZ1FGdFlWM2xaZENPa0JiQncyTlZ3UmxBUUk5TmpFeFhXVjVBM1poZDBJcmdXK0JBZ0o4YkRJM1FEVm1CUUVBQUFFQTFRVFlBcVVGL2dBREFDTUFzQUl2c2c4Q0FWMndBTkN3QUMrMER3QWZBQUpkc0FJUXNBUFFHYkFETHhnd01RRXpBU01CditiK3pwNEYvdjdhQUFBQi8rWCtZQVFsQkRvQUV3QlpzZzBVRlJFU09RQ3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQUlMeHV4Q0JnK1diQUFSVml3RVM4YnNSRVNQbG13QUVWWXNBNHZHN0VPRUQ1WnNBQkZXTEFMTHh1eEN4QStXYkFPRUxJRkFRb3JXQ0hZRy9SWk1ERUJBd1lYRmhjV054TXpBeU0zQmljaUp3TWpBUUdlWndvRENwSzNZWXUydktJVGI2S0hVRm0wQVFRRU92MlFWRHEzQXdhZEF5SDd4bk9LQWt2K0tnWGFBQUFCQUhzQUFBUEdCYkVBQ3dBa3NnQU1EUkVTT1FDd0FFVllzQW92RzdFS0hENVpzQUJGV0xBQUx4dXhBQkErV1RBeElSTW5KaVkzUGdJekJRTUNGRnRBMCtFVURwVHdrQUVWL0FJSUFRUC95WTdhZFFINlVBQUFBUUNsQW1nQmhRTk1BQXNBRHdDd0F5K3hDUW9yV05nYjNGa3dNUk0yTmpjMkZoVUdCZ2NHSnFVQlBUSXdRQUZBTVMxQkF0WXhRUUlDUGpJeFB3SUNPd0FBQWYvSS9rc0JFd0FBQUEwQU9RQ3dBRVZZc0FZdkc3RUdFajVac0FCRldMQU5MeHV4RFJBK1diSUJEUVlSRWptd0JoQ3lCd1lLSzFnaDJCdjBXYklNQmdFUkVqa3dNVE1IRmdjR0JnYzNOamMySnljM3B4V0JCQU91bGdTbUVBeG9MaTQzSFlabWNnTnNCbVZIREFhRkFBRUEzd0tpQW5BRnR3QUdBRUN5QVFjSUVSSTVBTEFBUlZpd0JTOGJzUVVjUGxtd0FFVllzQUF2RzdFQUZENVpzZ1FBQlJFU09iQUVMN0lEQWdvcldDSFlHL1Jac2dJREJSRVNPVEF4QVNNVEJ6Y2xNd0h0bW1qY0dBRmtGUUtpQWxVNGgzRUFBQUlBd0FLdEEzc0Z5UUFOQUJzQU13Q3dBRVZZc0FBdkc3RUFIRDVac2djY0FCRVNPYkFITDdJUkF3b3JXQ0hZRy9SWnNBQVFzaGdEQ2l0WUlkZ2I5Rmt3TVFFV0ZnY0hCZ1luSmlZM056WTJBd1lXRnhZMk56YzJKaWNtQmdjQ1RZMmhEUWNSMFphT29RMEhFZE5MQ2toTlQzQVBDUWhLU0ZKd0RnWEZCTVdaUjZiSkJBVElsa2FveVA1SVlITUNBM0pvVVdadEFnSjBaUC8vQUE4QW1BTldBN1VBSmdGN0RRQUFCd0Y3QVY4QUFQLy9BTGtBQUFVekJhMEFKd0hWQUU0Q21BQW5BWHdCRVFBSUFRY0IyQUxBQUFBQUVBQ3dBRVZZc0FVdkc3RUZIRDVaTURILy93QzBBQUFGZVFXdEFDY0JmQURtQUFnQUp3SFZBRWtDbUFFSEFkWURCZ0FBQUJBQXNBQkZXTEFKTHh1eENSdytXVEF4Ly84QW5nQUFCWXdGdlFBbkFYd0JqQUFJQUNjQjJBTVpBQUFCQndIWEFLTUNtd0FRQUxBQVJWaXdJQzhic1NBY1Bsa3dNUUFDLzlQK2VnTDJCRThBR0FBa0FFWUFzQkF2c0FCRldMQWlMeHV4SWhnK1diSWNCUW9yV0NIWUcvUlpzQURRc0FBdnNnTVFBQkVTT2JBUUVMSUpBUW9yV0NIWUcvUlpzQkFRc0F6UXNoWUFFQkVTT1RBeEFRWUdCd2NHQndZV0Z4WTJOemNHQmljbUpqYzJOemMyTnhNVUJnY0dKalUyTmpjMkZnSklERk5wWVhjTkRWNWRZb1VTdEJQMHNhMitEdysvZEZzWjlqc3ZNRHNCUEM0dVBRS3BiYUZrVzNOelluUUNBbkZlQWFmTEJBVEtwcmV2WmxXVkFVQXZQZ0lDUGkwdk93SUJPUUFDLzRRQUFBZDRCYkFBRHdBU0FIY0FzQUJGV0xBR0x4dXhCaHcrV2JBQVJWaXdBQzhic1FBUVBsbXdBRVZZc0FRdkc3RUVFRDVac2hFR0FCRVNPYkFSTDdJQ0FRb3JXQ0hZRy9SWnNBWVFzZ2dCQ2l0WUlkZ2I5Rm15Q3dBR0VSSTVzQXN2c2d3QkNpdFlJZGdiOUZtd0FCQ3lEZ0VLSzFnaDJCdjBXYklTQmdBUkVqa3dNU0VoRXlFQkl3RWhCeUVESVFjaEF5RUJJUk1HdC95bkwvM2svdnZvQkZJRG9odjlZajhDUGh2OXlVY0NyZnNlQWJSZ0FXSCtud1d3bVA0cGwvM3RBWGdDMGdBQUFRQW9BTTRFQWdSakFBc0FPQUN3QXkreUNRd0RFUkk1c0FrdnNnb0pBeEVTT2JJRUF3a1JFam15QVFvRUVSSTVzQU1Rc0FYUXNnY0VDaEVTT2JBSkVMQUwwREF4RXdFQk53RUJGd0VCQndFQktBRjcvdnVBQVFZQmVXWCtpQUVHZ1A3NS9vVUJVZ0ZQQVZCeS9ySUJUb1Arc1A2d2NnRlEvckFBQUFNQUlQK2tCWndGNndBWkFDTUFMUUJtc2d3dUx4RVNPYkFNRUxBZzBMQU1FTEFwMEFDd0FFVllzQTB2RzdFTkhENVpzQUJGV0xBQUx4dXhBQkErV2JJY0RRQVJFam15SmcwQUVSSTVzQ1lRc0IzUXNBMFFzaDhCQ2l0WUlkZ2I5Rm13SEJDd0o5Q3dBQkN5S1FFS0sxZ2gyQnYwV1RBeEJTWW5CeU0zSmpjMkVoSTJOaGNXRnpjekF4WVhGZ0lDQndZQkZoY0JKaWNtQWdjR0FUWW5BUllYRmhJVE5nSk9wblY4bDcxcUJRRXhkN0xpZjg2Qmc1YlFNUW9PVnVLZmNQNWdBaDhDeGsyY3R2d3NJZ01wQkF2OVRVcHl2LzBvRmhVRVVKdm9xK1poQVN3QkE3bGhBd1I2cGY4QWRIcXAva1Qrd1VJdkFmOXNVd09NYUFVRi91ejB3QUZIVGs3OGlqb0VCUUVtQVE2VEFBQUNBRGdBQUFSaUJiQUFEUUFXQUZxeUVCY1lFUkk1c0JBUXNBblFBTEFBUlZpd0FDOGJzUUFjUGxtd0FFVllzQXN2RzdFTEVENVpzZ0VBQ3hFU09iQUJMN0lLQ3dBUkVqbXdDaSt3QVJDeURnRUtLMWdoMkJ2MFdiQUtFTElQQVFvcldDSFlHL1JaTURFQkF4Y1dGZ2NPQWlNbEF5TVRFd01GTWpZM05pWW5BZXN6N3REc0R3dU43cEgrNlRlMi9XbGZBUUdMd2hFT2dYWUZzUDdiQVFIanZJTEZhd0greHdXdy9rUDkzZ0daZjNpT0JBQUJBQjcvNXdRWkJoVUFMQUJic2lBdExoRVNPUUN3QUVWWXNBWXZHN0VHSGo1WnNBQkZXTEFVTHh1eEZCQStXYkFBUlZpd0FDOGJzUUFRUGxteUN3WVVFUkk1c0JRUXNoa0JDaXRZSWRnYjlGbXlIeFFHRVJJNXNBWVFzaWtCQ2l0WUlkZ2I5Rmt3TVRNakV6NENGeFlXQndZR0J3WWVBZ2NHQmljbUp6Y1dGekkyTnpZdUFqYytBemMySmljbUJnZlR0YjRTZHJwNW42NE5DYUlNQ1RhU09nTUs2SzJ5Y2p0cWNXV0xDd2Mza3owR0JUaEJPUWdLVEZGcGlCVUVWNGJPYWdJRXNwUmY5RXczYkpSeFBLUzdCQUpKbVVzQ1kxWTVhNVozUHp0aFcxODZVbXdFQTVlUkFBQURBQlAvNkFaaEJGSUFMQUEzQUVFQXg3SUNRa01SRWptd0FoQ3dNZEN3QWhDd085QUFzQUJGV0xBY0x4dXhIQmcrV2JBQVJWaXdBQzhic1FBUVBsbXdBRVZZc0FVdkc3RUZFRDVac2dNY0FCRVNPYklMSEFBUkVqbXdDeSswdnd2UEN3SmRzQndRc2pnQkNpdFlJZGdiOUZtd0VOQ3lFd3NjRVJJNXNCd1FzQmZRc2hvY0FCRVNPYkk4SEFBUkVqbXdQQyswdnp6UFBBSmRzaUVCQ2l0WUlkZ2I5Rm13QUJDeUp3RUtLMWdoMkJ2MFdiSXFIQUFSRWptd0JSQ3lMUUVLSzFnaDJCdjBXYkFMRUxJeUFRb3JXQ0hZRy9SWk1ERUZKaVluQmlVbUpqYzJOak1YTnpZbUp5WUdCeWMyTmhjV0ZoYzJGeDRDQndjaEJoY1dGaGNXTmpjWEJpVVdOamMzSnlJR0J3WVdBU1lHQnlFM05pY21KZ1J3ZWJrenFmN3NrcWtLQ3Y3WjRnd01WbHBva0ErekVQeTZiYU1pb3NKL3Jrb1JFdjFDQ1FrTmdXaGFuVW8xaXZ3VlJwOUNLOHQ0cGd3SldnTzdicW8xQWdvR0NRY0xaaFFDWFZXNEJBS3RqYUMwQVZab2VRUUNhMVlUbDdBQ0FsZE5xUVFDZnQyS2RrUkFhMzBCQWp3dmlYaVZBa2s1N2dGeFcwcFhBelVEblo0Z056SlFYQUFBQWdCYy8rZ0VWQVlyQUJ3QUtBQlFzaFlwS2hFU09iQVdFTEFtMEFDd0RpK3dBRVZZc0Jndkc3RVlIajVac0FCRldMQUhMeHV4QnhBK1diSVFEZ2NSRWptd0RoQ3lId0VLSzFnaDJCdjBXYkFIRUxJbEFRb3JXQ0hZRy9SWk1ERUJFZ01IQmdJR0p5WUNOejRDRnhZWEppY0hKemNtSnpjV0Z6Y1hBeVluSmdZSEJoWVhGalkzQTU2eE1nMFluZUdDdk9BVERvcmVoSnB2Qkdydk84OW1za2JjbHRFNjV6aXFrTVFURDRCd2Y3WWZCUlArMmY2Tlc2Zis5b1VEQkFFVHlaRHppQVFFYjdhWmxHeCtWalNkT0lpQ2JmMDNmZ1VFeTZtTHV3TUYyOEFBQUFNQVJBQ3BCQzRFdlFBREFBNEFHUUE3QUxBQ0w3SUJEZ29yV0NIWUcvUlpzQUlRc1EwS0sxallHOXhac1FjS0sxallHOXhac0FFUXNSSUtLMWpZRzl4WnNSZ0tLMWpZRzl4Wk1ERUJJVGNoQVRRMk56WVdGUTRDSmdNMk5qYzJGaFVPQWlZRUR2dzJJUVBKL2VnOU1qQkFBVDlpUG8wQlBUSXdRQUZBWWowQ1dMZ0JOekZCQWdJK01qRStCRHo5QURGQkFnSStNakUrQkQwQUFBTUFPZjk2QkNvRXVBQVpBQ0VBS3dCbXNnd3NMUkVTT2JBTUVMQWYwTEFNRUxBbzBBQ3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQU5MeHV4RFJBK1diSWNBQTBSRWpteUpBQU5FUkk1c0NRUXNCM1FzQUFRc2g4QkNpdFlJZGdiOUZtd0hCQ3dKZEN3RFJDeUp3RUtLMWdoMkJ2MFdUQXhBUllYTnhjSEZoY1dCd1lDQmljbUp3Y25OeVluSmpjM0VnQURCaGNCSmljbUFpVW1Kd0VXRnhZMk56WUNmbWRiWm9TUWJnY0NDQk9mOEk1WlhXYUVqWFlIQWdZQ0pBRTJzQW96QWNzM1FKM1JBbGNESC80NE1qbU15UjhOQkZBQ0s1VUJ6NExHTjFhYy92bUlBZ0lqbFFITmZNMDlQQkFCQndFei9XdUVXd0s2SFFJRS91MFRTa1g5VEJjQ0E5eTdYd0FBQXYvZy9tQUVCQVlBQUJFQUhRQmRzZ1FlSHhFU09iQUVFTEFjMEFDd0NTK3dBRVZZc0Ewdkc3RU5HRDVac0FCRldMQUhMeHV4QnhJK1diQUFSVml3QkM4YnNRUVFQbG15Q3cwSEVSSTVzQTBRc2hZQkNpdFlJZGdiOUZtd0JCQ3lHd0VLSzFnaDJCdjBXVEF4QVFZQ0JpY21Kd01qQVRNRE5oY1dGaGNXQnpjMEppY21Cd01XRnhZMkEvd1VqTXQ4dW1WaHRRRlR0R3FEdFo2dEF3RzZCWEJvb0hCYVBaMkp2UUlZcHY3MmdRTUVmUDMyQjZEOXlZa0VCT1M5UFQ1VWtad0NCSmo5K1k4RkE5c0FBZ0ExQUFBRndRV3dBQk1BRndCckFMQUFSVml3RHk4YnNROGNQbG13QUVWWXNBZ3ZHN0VJRUQ1WnNoUUlEeEVTT2JBVUw3SVFGQThSRWptd0VDK3dBTkN3RUJDeUZ3RUtLMWdoMkJ2MFdiQUQwTEFJRUxBRjBMQVVFTElIQVFvcldDSFlHL1Jac0JjUXNBclFzQkFRc0EzUXNBOFFzQkxRTURFQk13Y2pBeU1USVFNakV5TTNNeE16QXlFVE13RWhOeUVGUG9NWmdySzhkZjA2ZGIyeWdobUNNcjB6QXNZenZQd1JBc1VqL1RvRWpvNzhBQUtoL1Y4RUFJNEJJdjdlQVNMOWpzSUFBUUF1QUFBQm53UTZBQU1BSFFDd0FFVllzQUl2RzdFQ0dENVpzQUJGV0xBQkx4dXhBUkErV1RBeE15TVRNK08xdkxVRU9nQUFBUUF0QUFBRVZ3UTZBQXdBYUFDd0FFVllzQVF2RzdFRUdENVpzQUJGV0xBSUx4dXhDQmcrV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0Fzdkc3RUxFRDVac0FJUXNBYlFzQVl2c3A4R0FWMjB2d2JQQmdKZHNpOEdBVjJ5L3dZQlhiSUJBUW9yV0NIWUcvUlpzZ29CQmhFU09UQXhBU01ESXhNekF6TUJNd0VCSXdHaGJsQzJ2TFpSVUFIUjZQM2xBWFRVQWMzK013UTYvallCeXYzcS9kd0FBUUFpQUFBRHNBV3dBQTBBV3dDd0FFVllzQXd2RzdFTUhENVpzQUJGV0xBR0x4dXhCaEErV2JJQkRBWVJFam13QVMrd0FOQ3dBUkN5QWdFS0sxZ2gyQnYwV2JBRDBMQUdFTElFQVFvcldDSFlHL1Jac0FNUXNBalFzQW5Rc0FBUXNBdlFzQXJRTURFQkpRY0ZBeUVISVJNSE56Y1RNd0dLQVE0WS92TmhBcDRjL0taeWloaUpkTDBEVDFPRVUvM1NuUUtOS1lRcEFwOEFBQUVBSXdBQUFqWUdBQUFMQUVvQXNBQkZXTEFLTHh1eENoNCtXYkFBUlZpd0JDOGJzUVFRUGxteUFRUUtFUkk1c0FFdnNBRFFzQUVRc2dJQkNpdFlJZGdiOUZtd0E5Q3dCdEN3QjlDd0FCQ3dDZEN3Q05Bd01RRTNCd2NESXhNSE56Y1RNd0dScFJpamdiWjFsaGVWZ0xVRGFqeURQZjBhQXA0Mmd6Y0MzZ0FBQVFBMS9rVUZZUVd3QUJNQVdySUdGQlVSRWprQXNBQkZXTEFBTHh1eEFCdytXYkFBUlZpd0VDOGJzUkFjUGxtd0FFVllzQVF2RzdFRUVqNVpzQUJGV0xBT0x4dXhEaEErV2JBRUVMSUpBUW9yV0NIWUcvUlpzZzBPRUJFU09iSVNEZ0FSRWprd01RRUJCZ1luSWljM0ZqTXlOemNCQXlNVE13RVRCV0grK1JuQmx6VkRIamdwaENVUi9nekd1L3kxQWZqRkJiRDUvYXk4QkJTWkViMWVCSEw3amdXdys1QUVjQUFCQUNUK1J3UHlCRklBR3dCYUFMQUFSVml3QUM4YnNRQVlQbG13QUVWWXNBTXZHN0VER0Q1WnNBQkZXTEFLTHh1eENoSStXYkFBUlZpd0dTOGJzUmtRUGxteUFSa0RFUkk1c0FvUXNnOEJDaXRZSWRnYjlGbXdBeEN5RmdFS0sxZ2gyQnYwV1RBeEFRYzJGeFlXQndNR0JpY2lKemNXTXpJM0V6WW5KaWNtQndNakV3R0JGb3kvbzVrVmZSYS9salZESHpVdWpDQjhCZ01PcEo5eGpyYThCRHVic2dRRTQ3MzgvYWE2QWhTY0VNVUMrVFl3b0FVRWlmelRCRG9BQWdCVS8rMEhaUVhIQUJZQUpBQ1JzaFVsSmhFU09iQVZFTEFhMEFDd0FFVllzQXN2RzdFTEhENVpzQUJGV0xBTkx4dXhEUncrV2JBQVJWaXdBQzhic1FBUVBsbXdBRVZZc0FNdkc3RURFRDVac0EwUXNnOEJDaXRZSWRnYjlGbXlFZzBBRVJJNXNCSXZzaE1CQ2l0WUlkZ2I5Rm13QUJDeUZRRUtLMWdoMkJ2MFdiQURFTElYQVFvcldDSFlHL1Jac0FzUXNod0JDaXRZSWRnYjlGa3dNU0VoQndjbUpnSTNFeElBSHdJaEJ5RURJUWNoQXlFRkZqY1RKaU1tQmdjREJoY1dGZ1p5L05UWlJaamJZUlV2S3dGWjgwclRBemtjL1VOUkFtUWMvWjFhQXNqN29FeUswV3hmcit3aEx3b0hDbzRTQVFTZUFSS2ZBU3NCRWdGS0FnSVRudjRzbmYzOEdBTU5CSkFSQXZQVS90Uk9Ub09YQUFNQVIvL21CdUlFVXdBaUFETUFQUUNoc2hrK1B4RVNPYkFaRUxBdDBMQVpFTEEzMEFDd0FFVllzQVV2RzdFRkdENVpzQUJGV0xBQUx4dXhBQmcrV2JBQVJWaXdHeThic1JzUVBsbXdBRVZZc0JZdkc3RVdFRDVac2dNRkZoRVNPYkk0QlJZUkVqbXdPQyt5Q2dFS0sxZ2gyQnYwV2JBV0VMSVFBUW9yV0NIWUcvUlpzaElGRmhFU09iSVpCUllSRWptd0d4Q3lLQUVLSzFnaDJCdjBXYkFGRUxJd0FRb3JXQ0hZRy9SWnNEVFFNREVCRmhZWE5oY2VBZ2NISVFZWEZoWVhGamNYQmdZbkppWW5CaWN1QWpjM0VnQURCaGNXRmhjV05qOENOQ1luSmdZSEFTWUdCd1UzTmljbUpnSitlYjRyc3RsOXNFb1JFLzFNQ0FZS2RXQ3NrRDFFeUhOOHZTeXI5SVc4VlJBQ0pBRXRuUWNFQlhObGlNTWFBZ1Z6Yll6QkZ3UlNaYVUzQWY0RkNBY05ad1JPQW5SajNRTUNmdHlJZWoxQWJJRURCbTkvUVVJQ0FuRmYyUVlDanZtVkVBRUZBVFQ5dHo1RWRZOERCZHk3RmxlUHBBUUY1N1VCbHdPYWx3RWNOVEZQV3dBQkFETUFBQU1LQmhvQURRQXJBTEFBUlZpd0JDOGJzUVFlUGxtd0FFVllzQTB2RzdFTkVENVpzQVFRc2drQkNpdFlJZGdiOUZrd01UTVROallYTWhjSEppY2lCZ2NETThzV3hwNHZZeUVzTEZkMUVjMEVxNnZFQWhhUERBSnZadnRVQUFJQVVmL3BCU29GeGdBYUFDUUFVUUN3QUVWWXNCSXZHN0VTSEQ1WnNBQkZXTEFBTHh1eEFCQStXYklGQUJJUkVqbXdCUyt3RWhDeURBRUtLMWdoMkJ2MFdiQUFFTEliQVFvcldDSFlHL1Jac0FVUXNoOEJDaXRZSWRnYjlGa3dNUVVtSmdJM053VTNOaWNtSmljbUJ5YzJOaGNXQkJJSEJ3WUNCQ2NXTmpjRkJ3WVhGaFlDVDY3dFl4b1VBOUFERlFrUHZaaW15aU5FMUlHNEFRRnhHZzRmenY3Zm5hWDdSL3pvQnc4S0VLUVVBcWdCTDc1OEF3eGpZSnk1QXdOV2tTODJBd0t6L3I3R1k4ait1S3FnQmZYeUFTTlpVSUdSQUFIL1NmNUdBeThHR2dBZEFIR3lFaDRmRVJJNUFMQUFSVml3RkM4YnNSUWVQbG13QUVWWXNBOHZHN0VQR0Q1WnNBQkZXTEFjTHh1eEhCZytXYkFBUlZpd0JTOGJzUVVTUGxtd0hCQ3lBQUVLSzFnaDJCdjBXYkFGRUxJS0FRb3JXQ0hZRy9SWnNBQVFzQTNRc0E3UXNCUVFzaGtCQ2l0WUlkZ2I5Rmt3TVFFakF3WUdKeVluTnhZek1qY1RJemN6TnpZMkZ6SVhCeVlqSWdjSE13S0R4SjBVdTVjMVBodzFLb2dnbmFZV3BnNFZ4cGd6WEIwM0tMUWREY1VEcS92OHA3b0NBaE9TRU00RC9vOXhyOEFDRlpVTTNXTUFBZ0JuLytrR0d3WTNBQmdBS0FCT0FMQUFSVml3Q2k4YnNRb2NQbG13QUVWWXNBQXZHN0VBRUQ1WnNnd0FDaEVTT2JBTUw3SVNBZ29yV0NIWUcvUlpzQW9Rc2h3QkNpdFlJZGdiOUZtd0FCQ3lKQUVLSzFnaDJCdjBXVEF4QlM0Q0p5WTNOaElrRnhZWE5qWTNOd0lGRmhjV0FnSUVBVFltSnlZQ0F3WUhCaFlYRmhJM05nSkFpOUJ6QmdVYklzVUJGYWZsaG1SekU2RWovdVFhQlFaTnVmN3dBVlFHbFpXKy9pWVRBUWFXbE1UOEloSVVBNFAxbkcybnp3RkJvQU1FbVFxRmdBSCt0a0pwYVpqK2NmN1hvQU9XeE5nRUJmN1ovdjUvU0wvakJBVUJMLzZEQUFBQ0FFTC81d1QvQkxBQUZnQWxBRTRBc0FCRldMQUFMeHV4QUJnK1diQUFSVml3RHk4YnNROFFQbG15QWc4QUVSSTVzQUl2c2drQ0NpdFlJZGdiOUZtd0R4Q3lHZ0VLSzFnaDJCdjBXYkFBRUxJaUFRb3JXQ0hZRy9SWk1ERUJGaGMyTmpjekJnWUhGaGNXQWdRbkxnSTNOellBQXhRV0Z4WTJOelluSmlZbkpnWUdBb0xFZVV0U0U1QVFlWFlTQkFxTy92U2xpTDlZRUFNaUFUU29lRzZOeVJzSEJBbDJabTZ1V3dSUEJJa09ZMzJVcENCTFM4ZitxYjBFQkk3NGxSWCtBVGI5WUl5aEJBWGp5VDlGZVkwRUJJLzRBQUVBWi8vb0Jwb0dBZ0FhQUVZQXNBQkZXTEFTTHh1eEVodytXYkFBUlZpd0RTOGJzUTBRUGxtd0VoQ3dHdEN5QVEwYUVSSTVzQUV2c2dnQ0NpdFlJZGdiOUZtd0RSQ3lGZ0VLSzFnaDJCdjBXVEF4QVFjMk5qYzNCZ1lIQXc0Q0p5WUNOeE16QXdZV0Z4WTJOeE1GSmg1dmR4T1pGOUxBY0JhZi81amE5QnFvdWFjUmk0eVYwQnlyQmJEWkRveVFBYzdXQy8yRGxPRjVBd1FCRDlnRDJ2d2xtNjRFQktxZEErVUFBUUJhLytnRlRnU1JBQnNBVXdDd0FFVllzQTB2RzdFTkdENVpzQUJGV0xBRkx4dXhCUkErV2JBQVJWaXdDQzhic1FnUVBsbXdEUkN3RnRDeUdCWUlFUkk1c0JndnNnTUNDaXRZSWRnYjlGbXdDQkN5RXdFS0sxZ2gyQnYwV1RBeEFRWUdCd01qTndZbkppWTNFek1EQmhjV0ZoY1dOeE16QnpZMk53Vk9EcUtsbHFzWGZjV2NseFYwdFhVRkF3Vk1STUZyaUxRWVcxY1VCSkdvbmdiOHUydURCQVRZdHdLNy9VSXNLa2hTQXdpbEF4U0dCMVNCQUFIL0NmNUdBYThFT2dBTUFDZ0FzQUJGV0xBTUx4dXhEQmcrV2JBQVJWaXdCQzhic1FRU1BsbXlDUUVLSzFnaDJCdjBXVEF4QVFNR0JpY21KemNXTXpJM0V3R3Z4aGErbURZK0hqVXFpaVRHQkRyN2JxYThBZ0lUa2hEVEJJZ0FBQUlBUHYvcEE5OEVUZ0FZQUNJQVVRQ3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQUpMeHV4Q1JBK1diSU9BQWtSRWptd0RpK3dBQkN5RXdFS0sxZ2gyQnYwV2JBSkVMSVpBUW9yV0NIWUcvUlpzQTRRc2h3QkNpdFlJZGdiOUZrd01RRWVBZ2NIQmdJR0p5WUNOemNoTmljbUppY21CeWMyTndNV05qY2xCd1lYRmhZQ1I0YThWZzhFRVpYbGdzSEFHaElDc3dnR0NuUmdxWk05ZTlOT1pLVTMvZ01HQ0FnTGFRUk9Bb3oybFNTVy92K1JCQVlCQ05SNVBVQnRnUU1HYjM1M0MvdzJBNXFYQVJ3MU1VNWVBQUFCQVJjRTRnTmtCZ0FBQ0FBeEFMQUZMN0FCMExBQkw3RUFDaXRZMkJ2Y1diQUZFTEFIMExBSEw3UVBCeDhIQWwyd0E5Q3dBQkN3QnRDd0JpOHdNUUVWSnljSEJ6VUJNd05razNHd21RRVdhZ1R3RGdLcHFBTVFBUTRBQUFFQkpnVGpBNEFHQVFBSUFDQUFzQVF2c0FMUXNBSXZ0QThDSHdJQ1hiSUFCQUlSRWptd0I5Q3dCeTh3TVFFM054Y0JJd00xRndJdnNaOEIvdUp1enBZRlZxZ0REZjd2QVJBT0F2Ly9BT01GSVFPd0JiQUFCZ0J3QUFBQUFRRUhCTWNEVEFYWUFBd0FJZ0N3QXkreUR3TUJYYklKQkFvcldDSFlHL1Jac0FmUXNBY3ZzQURRc0FBdk1ERUJCZ1luSmlZM0Z3WVhGalkzQTB3TXE0Qjdrd0tUQjRGSFVnd0YxMzJUQkFLU2VRR1NCQUZWUVFBQUFRRU9CT3NCNHdYRkFBc0FFUUN3Q1MreUF3VUtLMWdoMkJ2MFdUQXhBVFEyTnpZV0ZRWUdCd1ltQVE0Nk1DNDlBVHN2TEQ0RlZDOCtBZ0k3TUM4OEFnSTVBQUFDQVFFRXN3S2tCbEVBQ3dBWEFDVUFzQWt2c0JYUXNCVXZzZ01JQ2l0WUlkZ2I5Rm13Q1JDeUR3Z0tLMWdoMkJ2MFdUQXhBVFkyTXpJV0ZRWUdJeUltTndZV016STJOelltSXlJR0FRTUNnVmxTY3dLQldWUnpZZ1EyS3k1UEJnWTRLaTVRQlhoYmZuUlZXWHh5VlM0L1J6SXVRa2tBQWYrdi9rOEJGZ0E1QUE4QUp3Q3dFQyt3QUVWWXNBb3ZHN0VLRWo1WnNnVURDaXRZSWRnYjlGbXdFQkN3RDlDd0R5OHdNUVVIQmdjR0Z4WTNGd1lqSWlZM05pVUJGa0Y2Q1FkQklFTUVSRk5PWHdJREFSWURMMXBaUHdJQkdua3JaVkt4Z2dBQUFRRGRCTm9EcmdYbkFCVUFQZ0N3QXkrd0NOQ3dDQyswRHdnZkNBSmRzQU1Rc0FyUXNBb3ZzQWdRc2c0RENpdFlJZGdiOUZtd0F4Q3lFd01LSzFnaDJCdjBXYkFPRUxBVjBEQXhBUVlHSXlJdUFnY0dCeWMyTmhjeUhnSTNNamNEcmd4NlhTVTlQRDRrVlI5NkRIMWRHeTlxTVJ0V0lBWGRiNFlmSmg0QkEyMEhib3dDRVVFU0FYRUFBZ0RDQk5BRHZnWC9BQU1BQndBN0FMQUNMN0FBMExBQUw3UVBBQjhBQWwyd0FoQ3dBOUFac0FNdkdMQUFFTEFGMExBRkw3QUNFTEFHMExBR0w3QURFTEFIMEJtd0J5OFlNREVCTXdFakF6TUJJd0xtMlA3R3N6VE4vdmVmQmYvKzBRRXYvdEVBQXYvcC9tb0JOZisyQUFzQUZ3QTVBTEFZTDdBRDBMQURMMEFMQUFNUUF5QURNQU5BQXdWZHNBL1FzQTh2c2drSENpdFlJZGdiOUZtd0F4Q3lGUWNLSzFnaDJCdjBXVEF4QnpRMk16SVdGUlFHSXlJbU53WVdNekkyTnpZbUl5SUdGMmhHUkZwalJrVmVWQVFvSUI4N0J3UW1IaVU2K1VsbVgwTkhZMWxHSHk4eEp5RXdPUUFCL1dvRTJQNi9CZjRBQXdBZUFMQUJMN0FBMEJtd0FDOFlzQUVRc0FMUXNBSXZ0QThDSHdJQ1hUQXhBU01ETS82L2pzZk1CTmdCSmdBQUFmM3JCTmovd2dYK0FBTUFIZ0N3QWkrd0FkQ3dBUyswRHdFZkFRSmRzQUlRc0FQUUdiQURMeGd3TVFFWEFTUCsyZW4reUo4Ri9nSCsyd0QvLy8wTEJOci8zQVhuQUFjQXBQd3VBQUFBQWYzMUJOai9OZ1p6QUEwQUpRQ3dEUyt3QjlDd0J5K3lEQTBIRVJJNXNnRUhEQkVTT2JJR0Jnb3JXQ0hZRy9SWk1ERUJOemMyTnpZak54WVdCd1lIQi8zMUZpbHJDZ3ViRDRLTUF3ZWlEQVRabVFRS1FrZHFBMkJSZ2gxSUFBTDgyd1RrLzRZRjdnQURBQWNBTndDd0FTK3dBTkFac0FBdkdMQUJFTEFGMExBRkw3QUcwTEFHTDdZUEJoOEdMd1lEWGJBRDBMQURMN0FBRUxBRTBCbXdCQzhZTURFQkl3TXpBU01ETS82S3RQdnFBY0dmd2RZRTVBRUsvdllCQ2dBQUFmeTcvcC85a1A5NUFBc0FFUUN3QXkreUNRVUtLMWdoMkJ2MFdUQXhCVFkyTnpZV0ZRWUdCd1ltL0xzQk9pOHVQUUU3THl3KytDOCtBZ0k3TUM4OEFnSTVBQUFCQVNFRTdnSkJCajhBQXdBZEFMQUNMN0FBMExBQUw3SVBBQUZkc2dNQ0FCRVNPUm13QXk4WU1ERUJNd01qQVpHd3JIUUdQLzZ2QUFNQTh3VHRBKzRHaUFBREFBNEFHUUE2QUxBTUw3QUMwTEFDTDdBQTBMQUFMN0FDRUxBRDBCbXdBeThZc0F3UXNnWUZDaXRZSWRnYjlGbXdEQkN3RmRDd0ZTK3dCaEN3R2RBd01RRXpBeU1GUGdJV0ZSUUdCd1ltSlRZV0ZRWUdCd1ltTmpZQ2lyNlJpdjdHQVRwZVBEd3ZMRDRDa0N3L0FUd3VMendDT2dhSS92Z29MejBFUEM0dlBBSUNPWjBDUEM4dlBBSUNPbDQrQVAvL0FLVUNhQUdGQTB3QUJnQjRBQUFBQVFCREFBQUVwUVd3QUFVQUt3Q3dBRVZZc0FRdkc3RUVIRDVac0FCRldMQUNMeHV4QWhBK1diQUVFTElBQVFvcldDSFlHL1JaTURFQklRTWpFeUVFaWYxWTRiMzlBMlVGRXZydUJiQUFBdit4QUFBRTNnV3dBQU1BQmdBdkFMQUFSVml3QUM4YnNRQWNQbG13QUVWWXNBSXZHN0VDRUQ1WnNnUUJDaXRZSWRnYjlGbXlCZ0lBRVJJNU1ERUJNd0VoSlNFREF3S25BVFg2MHdFakF6TFVCYkQ2VUowRUpnQUFBd0JwLytrRS9BWElBQU1BRmdBbkFGY0FzQUJGV0xBTkx4dXhEUncrV2JBQVJWaXdCQzhic1FRUVBsbXlBZ1FORVJJNWZMQUNMeGkwWUFKd0FnSmRzZ0VCQ2l0WUlkZ2I5Rm13RFJDeUd3RUtLMWdoMkJ2MFdiQUVFTElqQVFvcldDSFlHL1JaTURFQklUY2hBU1lDSnlZU056WWtGeFlTRnhZSEJ3WUNCQUUySmlZbkpnQURCZ2NHRmhjV0VoTTJBNi8rQ1JzQjkvNTQwL2NLQlRCQ1hRRXd2dFQyQ1FNS0RCL0MvdWNCVkFROGlHUEIvd0FrRUFFR2xwUzYreWtVQXBPWS9NRUVBUi8wWWdGQ2pNVFJCQVQrNC9kVVUxVFovcmFsQTVWN3YyVURCZjdPL3ZoMFE4RGhCQWNCR3dFQmZnQUIvOFFBQUFSeEJiQUFCZ0F4QUxBQVJWaXdBeThic1FNY1BsbXdBRVZZc0FFdkc3RUJFRDVac0FCRldMQUZMeHV4QlJBK1diSUFBd0VSRWprd01RRUJJd0V6QVNNQzdQMnAwUUwvcUFFR3dnU0grM2tGc1BwUUFBQURBQXdBQUFTR0JiQUFBd0FIQUFzQVR3Q3dBRVZZc0Fndkc3RUlIRDVac0FCRldMQUNMeHV4QWhBK1diSUFBUW9yV0NIWUcvUlpzQUlRc0FYUXNBVXZzaThGQVYyeUJnRUtLMWdoMkJ2MFdiQUlFTElLQVFvcldDSFlHL1JaTURFM0lRY2hFeUVISVJNaEJ5RW9BNDRjL0hMbEF0d2IvU000QTNrYy9JYWRuUU0vblFNT25nQUFBUUJFQUFBRmNBV3dBQWNBT0FDd0FFVllzQVl2RzdFR0hENVpzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdCQzhic1FRUVBsbXdCaEN5QWdFS0sxZ2gyQnYwV1RBeElTTVRJUU1qRXlFRWM3emgvVW5odlAwRUx3VVMrdTRGc0FBQUFmL2FBQUFFaVFXd0FBd0FQQUN3QUVWWXNBZ3ZHN0VJSEQ1WnNBQkZXTEFETHh1eEF4QStXYklCQVFvcldDSFlHL1Jac0FYUXNBZ1FzZ29CQ2l0WUlkZ2I5Rm13QjlBd01RRUJJUWNoTndFQk55RUhJUUVDOHYzMUF2RWMvQjRiQWpqK2toZ0RzaHo5TXdGVUF0RDl6WjJZQWtvQ1I0ZWUvZFlBQUFNQVZBQUFCWEFGc0FBSkFCTUFMQUJaQUxBQVJWaXdIaThic1I0Y1BsbXdBRVZZc0Nzdkc3RXJFRDVac2hRckhoRVNPYkFVTDdJQUFRb3JXQ0hZRy9SWnNoMGVLeEVTT2JBZEw3QWcwTElLQVFvcldDSFlHL1Jac0FIUXNBQVFzQXZRc0JRUXNDblFNREVCRXlNbUJnWUhCaFlYQVFNWEZqWTJOelltSndFR0ppWTNOaElrRnpNM0Z3Y3lGaFlIQmdJRUp5TUhJemNDTzVNQ1pMaUZEaFdRbkFGV2xBTml0NFFSRlpLYS9wcUY0bThQRDZzQkZaNE5KN29waXVKdkR4Q3QvdU9aQmlTK0pBRk9Bd3dSWDg5enBNMExBd3I4OVFFTlc4ZDdxTWtML0ZnQmp2bVVtd0VCa3dLNUFiaU8rWlNjL3Z5VEJxK3dBQUFCQUlZQUFBV2RCYkFBR1FCY3Nnb2FHeEVTT1FDd0FFVllzQVF2RzdFRUhENVpzQUJGV0xBUUx4dXhFQncrV2JBQVJWaXdHQzhic1JnY1BsbXdBRVZZc0Fzdkc3RUxFRDVac2hjRUN4RVNPYkFYTDdBQTBMQVhFTElNQVFvcldDSFlHL1Jac0FuUU1ERUJOalkzRXpNREJnQUhBeU1USmdJM0V6TURCaGNXRmhjVE13TC9uTTBkWEx4ZEsvN0Q3MFM5UmREWEcxaThXUWtIQ25ka3ByMENDQm5Ub3dJWi9kdnIvdUVYL3BZQmJCNEJOdUlDRHYzeFJVRnFqUmdEcEFBQkFBb0FBQVRhQmNjQUpnQlpzZ0FuS0JFU09RQ3dBRVZZc0Jvdkc3RWFIRDVac0FCRldMQVFMeHV4RUJBK1diQUFSVml3SlM4YnNTVVFQbG15SXdFS0sxZ2gyQnYwV2JBQTBMQWFFTElJQVFvcldDSFlHL1Jac0FBUXNBL1FzQ01Rc0JMUU1ERWxOaEkvQWpZbUp5WUdBaGNXRmhjSElUYzNBaE0zTmhJa0Z4NENGeFlDQndZSE53Y2hBbnVZeGlZUkNBT0tpS2ptU1FRRGFWOFovaUljMXFFcEZCNjFBUWllZjhaMENRYzlXVkIzMkJ6K0thRWhBUmozZVd1cXhBUUYrZjVKZnBXdkdLS2RBZ0VEQVRTRXRBRWhtQU1EZHQrTGFQNmNsb2RlQTUwQUFnQkkvK2NFTWdSVUFCZ0FKUUI1c2hVbUp4RVNPYkFWRUxBaTBBQ3dBRVZZc0JVdkc3RVZHRDVac0FCRldMQVlMeHV4R0JnK1diQUFSVml3RGk4YnNRNFFQbG13QUVWWXNBb3ZHN0VLRUQ1WnNnVUJDaXRZSWRnYjlGbXlEQlVLRVJJNXNoY1ZDaEVTT2JBT0VMSWRBUW9yV0NIWUcvUlpzQlVRc2lJQkNpdFlJZGdiOUZrd01RRURCaGNXRnpNM0Z3WW5KaWNHSnlZQ056YzJBQmNXRnpjQkJ3WVdGeFkzRXlZbkpnWUhCREtFQ0FRRktoRVFDalU5akJDS3dLKzFGd3NzQVFHNXdGZ3YvWDRGQTIxbXBIVk1PSnFNdGhvRU92enJPaDA0QWdPTElBRUVuNmtFQXdFYzUwdjVBUjhGQnAyTy9iTlJoSllDQTc0QndiTUhCZTNNQUFBQy8vRCtnQVJNQmNjQUV3QXBBR1d5R3lvckVSSTVzQnNRc0JQUUFMQU9MN0FBUlZpd0FDOGJzUUFjUGxtd0FFVllzQXN2RzdFTEVENVpzaFFBQ3hFU09iQVVMN0luQVFvcldDSFlHL1Jac2dVbkZCRVNPYkFBRUxJYUFRb3JXQ0hZRy9SWnNBc1FzaUVCQ2l0WUlkZ2I5Rmt3TVFFV0ZnY0dCeFlXQndZRUp5WW5BeU1UUGdJVE5qWTNOaVluSmdZSEF4WVdNeFkyTnpZbUp5YzNBdEtzemc0UjFsNWdDUkQrNXN1c2IxYTIrUkdMMkExNm1nc0thV0pzcVJPT0tZaEpnN29RRG1oaGx4c0Z4QVRYcHJ4eUxycDl5LzRFQkYzK05BV3hjcnBxL1pFQ2dXMWhnUVFDajIvOHd6czRBcWVGY1o4RkFaY0FBQUVBaFA1Z0JCb0VPZ0FJQURpeUFBa0tFUkk1QUxBQVJWaXdBUzhic1FFWVBsbXdBRVZZc0Fjdkc3RUhHRDVac0FCRldMQUVMeHV4QkJJK1diSUFCd1FSRWprd01RRUJNd0VESXhNRE13RytBWnpBL2RoUXRWVytzUUVXQXlUNzlQNHlBZXNEN3dBQUFnQkQvK2NFRXdZZ0FDQUFMd0Jpc2dJd01SRVNPYkFDRUxBbzBBQ3dBRVZZc0FNdkc3RURIajVac0FCRldMQVZMeHV4RlJBK1diQURFTElJQVFvcldDSFlHL1Jac2kwVkF4RVNPYkF0TDdJT0FRb3JXQ0hZRy9SWnNoMHREaEVTT2JBVkVMSW5BUW9yV0NIWUcvUlpNREVCTmpZWEZoY0hKZ2NpQmdjR0Z4Y1dFZ2NIQmdBbkxnSTNOelkyTnpjbUpnTUdGeFlYRmhjV05qYzJKaWNtQmdGUEIrS3FlcEFVZ241VmRRb1BqelcxcFJRRElmN1Uwb2U5Vmc0REY5bWpBMHhVUVFjRkMxY3dUWVhBSGc5N2JZZkVCTzJPcFFJQ042RS9BazVBWFVFWVMvN2x3aFgyL3QwRkJJandraGF6L1I4TkpZYjlYejVCakVNbEFnWE95b25pRHhMbkFBRUFLZi9uQStVRVRRQW9BSGl5SmlrcUVSSTVBTEFBUlZpd0dTOGJzUmtZUGxtd0FFVllzQTB2RzdFTkVENVpzaWNaRFJFU09YeXdKeThZc29BbkFWMjBRQ2RRSndKZHNnQUJDaXRZSWRnYjlGbXdEUkN5QmdFS0sxZ2gyQnYwV2JJS0dRMFJFam15RXdBbkVSSTVzaDBaRFJFU09iQVpFTEloQVFvcldDSFlHL1JaTURFQklnWUhCaFlYRmpZM053WUVKeVluSmpjMk55WW1OelkyTnpjV0ZnY25OaVluSWdZSEJoY1hCd0lGZkpVS0NYeHFhNmdSdFJEKzlNU0xhS1FLQ3VkQ1RRUUcycnd0cnRVRHNnSnpZMnlZREJQUTFCc0IzMTVaU2x3REFtdFhBWjY3QlFJMlZxMjRVaUowUTR1dENnRUZzSTBCUzEwRFcxR1NCZ0dVQUFFQWd2NkFCRHdGc0FBY0FEbXlFeDBlRVJJNUFMQU5MN0FVTDdBQVJWaXdBQzhic1FBY1BsbXlHZ0VLSzFnaDJCdjBXYkFCMExBVUVMSUlBUW9yV0NIWUcvUlpNREVCQndFSEJnY0dGaGNYRmdjR0J5YzNOamMySnljbUpqY1NBUUVoTndROEYvNHZLc1laQ2lsS3pZc0tDc1pjSWs0S0NGOXZpbjRRSEFGQ0FWYjluUnNGc0lIK0lDM1gwRXRwRzBVeWhKaVpXU1JVUkRvZ0lTdXJrQUVNQVVvQlRKZ0FBQUVBSlA1aEEvTUVVZ0FTQUZPeUNCTVVFUkk1QUxBQVJWaXdBeThic1FNWVBsbXdBRVZZc0FBdkc3RUFHRDVac0FCRldMQUhMeHV4QnhJK1diQUFSVml3RUM4YnNSQVFQbG15QVFNSEVSSTVzQU1Rc2cwQkNpdFlJZGdiOUZrd01RRUhOaGNXRmdjREl4TTJKeVluSmdjREl4TUJnaFdPdTZhWEZidTF1d1lFRGFXcGJvaTJ2QVE3aWFBRUJOUEIrNnNFVWpZdm5BTUVxZnp1QkRvQUF3QnovK1VFS3dYS0FCRUFHd0FrQUdheUdTVW1FUkk1c0JrUXNBRFFzQmtRc0NMUUFMQUFSVml3Q1M4YnNRa2NQbG13QUVWWXNBQXZHN0VBRUQ1WnNoSUFDUkVTT1h5d0VpOFlzQWtRc2hnQkNpdFlJZGdiOUZtd0VoQ3lIUUVLSzFnaDJCdjBXYkFBRUxJaUFRb3JXQ0hZRy9SWk1ERUZMZ0kzTmhJM05nVVdFZ2NHQndjQ0FBRWhOelluQWljbUJnY0ZJUVlYRmhZWEZoTUIzSG1sU3dRRFRtS1FBUU8ydUFZQ0NSd3ovdW4rbFFJWUNROENDN2lJcnlrQisvM3BGZ01EWkZyMFd4UURmdTJYY3dIZW4ra0dCUDcyN1V0RnQvNjEvcTRET3pseVNnRVJCd1RvOE5DQVpZeVRBd3dCa1FBQkFJWC85QUh1QkRvQURnQW9BTEFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQW92RzdFS0VENVpzZ1VCQ2l0WUlkZ2I5Rmt3TVFFREJoY1dGekkzQndZbkppWTNFd0hNaUFNQ0JrOGlOQXhIUG14c0RJY0VPdnpYR2haS0F3cVlFZ0lDbUlRREpnQUIvN2YvOEFQQUJld0FHUUJOc2c0YUd4RVNPUUN3QUMrd0FFVllzQW92RzdFS0VENVpzQUJGV0xBUEx4dXhEeEErV2JBS0VMSUZBUW9yV0NIWUcvUlpzZzRBQ2hFU09iQUFFTElWQVFvcldDSFlHL1Jac0JmUU1ERUJNaGNURmhjek53Y0dCeUltSndNQkl3RW5KaVluSndjM05nR090aWppRkRrVEVnWWVLRkJpSUgzK1k5RUNOelFSS3lNWUdRd3dCZXl1KzZ0VEF3S2FDUUpXZFFKTy9QY0VFT0E2SndJQkFZNExBQUFCQUQvK2R3UVBCY2dBTGdCU3Noa3ZNQkVTT1FDd0dDK3dIaSt3QUVWWXNDd3ZHN0VzSEQ1WnNnSUJDaXRZSWRnYjlGbXlDU3dZRVJJNXNBa3ZzZ3NCQ2l0WUlkZ2I5Rm13SGhDeUVRRUtLMWdoMkJ2MFdiSWxDd2tSRWprd01RRW1JeUlHQndZV0Z4Y0hKeUlHQndZZUJBY0dCZ2NuTnpZM05pY21KeVlUTmpZM0ppWTNOamMyRnhZWEErVitXWXl6RFErUGxJc2JmOEhvRVF4eDlGay9Jd01GYVdCa096NElDbGluUlBVWERMdXZYV1lGQzZTUHhZTjdCUWdtYVZ0a2J3RUJtQUd2bTJ5Y1F5QXRSVE5JbkVsWFBVUS9PaGd0SVhRQkZvL1BPU3FWVnJWZVVRTUNKd0FCQUdELzlBU2tCRG9BRmdCY3NnMFhHQkVTT1FDd0FFVllzQlV2RzdFVkdENVpzQUJGV0xBTEx4dXhDeEErV2JBQVJWaXdFUzhic1JFUVBsbXdGUkN5QUFFS0sxZ2gyQnYwV2JBTEVMSUdBUW9yV0NIWUcvUlpzQUFRc0EvUXNCRFFzQlBRc0JUUU1ERUJJd01HRnhZekZqY0hCaWNtSmpjVElRTWpFeU0zSVFTSmwyOERBZ2RQSlM4SlFrSnRiUXhzL255aHRhR2tHd1FwQTZIOWNCb1dUQUlNbVJJQkFwaUZBbzM4WHdPaG1RQUFBdi9jL21BRCtRUlRBQk1BSUFCUXNnOGhJaEVTT2JBUEVMQVgwQUN3QUVWWXNBVXZHN0VGR0Q1WnNBQkZXTEFTTHh1eEVoSStXYkFBUlZpd0R5OGJzUThRUGxteUZnRUtLMWdoMkJ2MFdiQUZFTElkQVFvcldDSFlHL1JaTURFVE5qWTNOaGNlQWhjV0J3NENKeVluQXlNQkZoY1dOamMzTmlZbkpnWUhoaEZYUjRyR2M2VllBd0VKRTRISmdieGpZYllCTDBHWmliY1dDUWRrYlhxb0hnSkJjTWxKa0FVRGJNMS9QR0tZODRFQ0JIcjk5d0t6alFRRHphcHJvN0FFQXRTM0FBRUFUdjZKQStzRVV3QWhBRXF5R1NJakVSSTVBTEFUTDdBQVJWaXdBQzhic1FBWVBsbXdBRVZZc0Jrdkc3RVpFRDVac2dNQUV4RVNPYkFBRUxJSEFRb3JXQ0hZRy9SWnNCa1FzZzBCQ2l0WUlkZ2I5Rmt3TVFFV0ZnY25OaVluSmdZSEJ3SUZGeFlIQmdZSEp6YzJOelluSnlZQ056YzJFallDZTZ2RkNxb0hhR1dEdlJzRUhnRTBWcFVLQld0ZFhDbEhDUWRPTHMvSEV3UVJsdWNFVHdUWXJ3RnRnUVFGMjc0ZC92RmpIVGlJUjZCSFdpdExSejBYRERrQkI4VXJsZ0VBalFBQ0FFci81Z1N0QkRzQUVnQWhBRXl5SGlJakVSSTVzQjRRc0JIUUFMQUFSVml3RWk4YnNSSVlQbG13QUVWWXNBY3ZHN0VIRUQ1WnNCSVFzZ0VCQ2l0WUlkZ2I5Rm13QnhDeUZnRUtLMWdoMkJ2MFdiQUJFTEFlMERBeEFRVVdCd2NHQUNjdUFpY21OemMyQURNRkFSUVdGeFkyTnpZbkppWW5KZ1lHQkpMKzdaQVhBUjcrek0xdXJHWUpCUWNDSUFFcTJ3STEvRlZ6Ykl2Qkdna0ZDWFZqYXFaWUE2RURxZkFLN3Y3WkJnRm13SFpDUXhEekFTb0IvWHFQb0FRRjM3bGFQSENGQXdPQzZRQUFBUUNILyt3RUVBUTZBQkVBU2JJREVoTVJFamtBc0FCRldMQVFMeHV4RUJnK1diQUFSVml3Q2k4YnNRb1FQbG13RUJDeUFBRUtLMWdoMkJ2MFdiQUtFTElGQVFvcldDSFlHL1Jac0FBUXNBN1FzQS9RTURFQklRTUhGRE15TnhjR0p5WW1OeE1oTnlFRDl2NlljQUZJSVRzZVQxMXNadzFyL3E4YkEyNERwUDFvTFZRWGhESUJBcGFTQW8yV0FBRUFaLy9sQS9vRVBBQVZBRHl5QmhZWEVSSTVBTEFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQXN2RzdFTEdENVpzQUJGV0xBUkx4dXhFUkErV2JJRkFRb3JXQ0hZRy9SWk1ERUJBd2NVRmhjV0VnTW5KaWNYRmhjU0FDVW1KamNUQWFGdEJVcEhwTnNIQWdvaXRpWUZELzdHL3Y2dnFCZHRCRHI5YlYxZGFnSUdBWFVCRmphRGZRSjlndjU3L2k4R0JQRE5BbzRBQUFJQVFmNGlCVGdFUGdBYUFDTUFYN0lZSkNVUkVqbXdHQkN3RzlBQXNCa3ZzQUJGV0xBUkx4dXhFUmcrV2JBQVJWaXdCaThic1FZWVBsbXdBRVZZc0FBdkc3RUFFRDVac2cwQkNpdFlJZGdiOUZtd0FCQ3dHTkN3RFJDd0c5Q3dFUkN5SVFFS0sxZ2gyQnYwV1RBeEJTWUNOellTTnhjR0FoY1dGaGNUTmpZWEhnSUhCZ0FGQXlNQk5oSW5KaVlIQmdjQ0F1RGhIUlNsamxhQmV4TU9obTE3RFpKdWZzSmREaHYrclA3OFZiVUJJOEh0QmdkNFl6d1NEeDBCT2Vhb0FReGFpR3IrMklSc2tSZ0N6MmVBQWdLVStJZjEvdElWL2pNQ1l4OEJGTDZPcGdnRVFRQUFBUUJQL2lnRlR3UThBQjBBUkxJZEhoOFJFamtBc0E4dnNBQkZXTEFXTHh1eEZoZytXYkFBUlZpd0VTOGJzUkVRUGxteUhBRUtLMWdoMkJ2MFdiQUIwTEFXRUxBZDBMQUgwTEFSRUxBTzBEQXhBUU0yRWdNbkppY1hGaGNTQlFZSEF5TVRKZ0kzRXpNREJoY1dGaGNUQTJ1bDF1OEpBd3dsdFNjSUhmNzRwUEpVdFZYZTBDRlN0VklLQkFWNWNLa0VPdnhMSlFGQ0FSVStnbnNDZTRIK0pkcUhFLzQ1QWNzZkFVYjhBZWIrRjB4SmU1OFpBN0VBQUFFQVp2L2tCZndFUEFBcUFGcXlJU3NzRVJJNUFMQUFSVml3QUM4YnNRQVlQbG13QUVWWXNCZ3ZHN0VZR0Q1WnNBQkZXTEFmTHh1eEh4QStXYkFBUlZpd0pDOGJzU1FRUGxteUNBRUtLMWdoMkJ2MFdiSU1Id0FSRWptd0V0Q3lJZ2dmRVJJNU1ERUJCd1lDQnhVVUZoY1dFeE16QXdZSEJoWVhGaE0ySnlZbkZ4WVhGZ0lHSnlZbUp3WW5MZ0kzRWhNQ0NVaExXd0pQU3RNOE03WXZCZ0VDVWxDMVREUVVEUzIzTHdvUmIrQ2JiSmdVZmQ5bmtFRURCZGNFT1grRC92cWZDbitGQXcwQlR3RS8vdFF2T210L0FnY0JLTXpPZzMwQ2ZJTGEvbDdaQkFLQmJQWUhBM0RTZ0FGZUFTd0FBQUlBVWYvbkJHMEZ5d0FrQUM4QWE3SW1NREVSRWptd0poQ3dGTkFBc0FCRldMQWVMeHV4SGh3K1diQUFSVml3Qnk4YnNRY1FQbG15S0I0SEVSSTVzQ2d2c2hjQkNpdFlJZGdiOUZtd0F0Q3lEUjRIRVJJNXNBY1FzaE1CQ2l0WUlkZ2I5Rm13S0JDd0l0Q3dIaEN5TEFFS0sxZ2gyQnYwV1RBeEFRWUhCd1lIQmljdUFqY1ROd01HRnhZV0Z4WTJOemNtQWpjM05qWVhGaFlIQXpZM0FRWVdGeE0zSmljbUJnY0VaelJnSHllQ2dMaDZ0RlFQTnJZMkJ3Y0xhVlYzbHhZZXdOSU9BZzdNbFpHWEVqdE9OdjNrQ201K093UUViMGhiQ2dKeUVnMjMwbk53QlFOMTBIOEJUZ0wrcnpnMVZtUURBNTJRcVNZQkZNVVFtc2NFQk02ay9wNExEZ0ZRZ0xrbEFWaElqUUlDYVZrQUFBRUFad0FBQk5nRndRQWFBRW15QUJzY0VSSTVBTEFBUlZpd0JDOGJzUVFjUGxtd0FFVllzQmN2RzdFWEhENVpzQUJGV0xBTkx4dXhEUkErV2JJQUJBMFJFam13QkJDeUNRRUtLMWdoMkJ2MFdiQVMwREF4QVFFMk5oY3lGd2NtSXlZSEFRTWpFd01tSnlZSEp6WXpGaFlYQWkwQkxUWjVUMEJBTHgwVlFqYithbUc2WmEwYU93OG1GVFkrUzJRZ0F3Z0IrMlpZQWh5WENRSlQvV3Y5MFFKSUFudEpBd0VJbVJrQ1YyQUFBQUlBWnYva0JrUUVPZ0FXQUN3QWFySUpMUzRSRWptd0NSQ3dKOUFBc0FCRldMQVZMeHV4RlJnK1diQUFSVml3Qnk4YnNRY1FQbG13QUVWWXNBd3ZHN0VNRUQ1WnNCVVFzZ0FCQ2l0WUlkZ2I5Rm15Q2hVSEVSSTVzQlRRc0JuUXNBY1FzaWtCQ2l0WUlkZ2I5Rm13SU5DeUpCa0hFUkk1TURFQkl4WVZGQUlHSnlZbUp3WW5MZ0kzTmpZM0J6Y2hBU1luSlFZR0J3WVdGeFlUTnpNSEJ3WVdGeFlUTmdZbmdBZHl3NFZ2bHhKKzNXR0NPQVlIUkVCMUhBV20vck1EQy96VFVFa0hCVDFDMlRnbXR5Y0dCMUpXcVR3ZEE2RmNXdEQraHJvRUFvTnI5d2NEY3R0OWxlZHZBcG4rc2xwYkFZdnFtbitPQlE0QmFQZjhSWVNMQWdRQlRxRUFBUUNoLy9JRmVnV3dBQmtBWVFDd0FFVllzQmd2RzdFWUhENVpzQUJGV0xBVUx4dXhGQkErV2JBQVJWaXdDaThic1FvUVBsbXdHQkN5RndFS0sxZ2gyQnYwV2JBQjBMSUVGQmdSRWptd0JDK3dDaEN5Q3dFS0sxZ2gyQnYwV2JBRUVMSVJBUW9yV0NIWUcvUlpNREVCSVFNMkZ4WVdCd1lFQnpjMk5qYzJKaWNtQndNakV5RTNJUVRxL2dkV28zYlc4QkVTL3Q3ekM1ZTVEdzZKaFh5bmVyemgvbTBjQkVrRkV2NDRNZ01DOGM3VTdnU1lBcDZQaHBFQ0F5NzlXUVVTbmdBQkFIai81Z1QvQmNjQUpBQnFBTEFBUlZpd0RTOGJzUTBjUGxtd0FFVllzQU12RzdFREVENVpzQTBRc1JFS0sxallHOXhac0EwUXNoUUJDaXRZSWRnYjlGbXdBeEN3R05Dd0dDK3lMeGdCWGJJWkFRb3JXQ0hZRy9SWnNBTVFzaUVCQ2l0WUlkZ2I5Rm13QXhDeEpBb3JXTmdiM0Zrd01RRUdBQ2N1QWljbUVoSTNOaGNXRWhjakppWW5KZ1lESVFjbEJ3WUhCaFlXRnhZMk53U1hLdjY3NDRmSmNRWUdUZWFvYlh2TjhBZTZCNHFCcnZZN0FqQWMvZDBDREFNR1FZSmNtc2N6QWREaS92Z0dBMy91a25BQnVBRkZRU3NEQlA3LzVLaWhBd1g4L3YyZEJRbzBPbTYvWkFNRm5hd0FBdi9NQUFBSDhnV3dBQmdBSVFCdXNob2lJeEVTT2JBYUVMQUswQUN3QUVWWXNBQXZHN0VBSEQ1WnNBQkZXTEFJTHh1eENCQStXYkFBUlZpd0VDOGJzUkFRUGxteUFnQUlFUkk1c0FJdnNBQVFzZ29CQ2l0WUlkZ2I5Rm13RUJDeUVnRUtLMWdoMkJ2MFdiQWIwTEFDRUxJaEFRb3JXQ0hZRy9SWk1ERUJBd1VXRmdjR0JDTWhFeUVEQndJQ0J5TTNOelkyRXpjVEFRTUZNalkzTmlZbkJWNWpBVWpNNHhFVC90YmsvZVhpL2hGNEh6N3d1MHdTSm9Tb0t4V1BBdUZrQVVxTXdoSVBmM2NGc1AzTEFRYnd3TTMzQlJMOTFKbit6djdwQkp3QkJ1Z0JCSGNDcXYwdC9jQUJwWWQ4bEFRQUFnQkRBQUFIL2dXd0FCSUFHd0NDc2dFY0hSRVNPYkFCRUxBVDBBQ3dBRVZZc0JJdkc3RVNIRDVac0FCRldMQUNMeHV4QWh3K1diQUFSVml3RHk4YnNROFFQbG13QUVWWXNBd3ZHN0VNRUQ1WnNnQUNEeEVTT2JBQUw3SUVEQUlSRWptd0JDK3dBQkN5RGdFS0sxZ2gyQnYwV2JBRUVMSVRBUW9yV0NIWUcvUlpzQXdRc2hRQkNpdFlJZGdiOUZrd01RRWhFek1EQlJZV0J3WUVJeUVUSVFNakV6TUJBd1V5TmpjMkppY0Jqd0szYnJ0cUFUZlI4UThSL3Rqbi9laDAvVWwwdmYyOEF1NWJBVW1Md0JFUGZYMERPUUozL1o0QkFkMjd4KzBDblAxa0JiRDlBZjMxQVpOL2JvY0VBQUVBdEFBQUJhSUZzQUFYQUZleUF4Z1pFUkk1QUxBQVJWaXdGaThic1JZY1BsbXdBRVZZc0Fndkc3RUlFRDVac0FCRldMQVNMeHV4RWhBK1diQVdFTElWQVFvcldDSFlHL1Jac0FIUXNnUUlGaEVTT2JBRUw3SVBBUW9yV0NIWUcvUlpNREVCSVFNMkZ4WVdCd01qRXpZbkppWW5KZ2NESXhNaE55RUUvUDRBVVp5cDM5TVhTNzFNQ0FnTWIydU13Mys4NHY1ekhBUklCUkwrVHlrQ0JPdlMvamtCeUVVMlVWTURBeXI5UFFVU25nQUJBRUwrbVFWdUJiQUFDd0JJQUxBSkw3QUFSVml3QUM4YnNRQWNQbG13QUVWWXNBUXZHN0VFSEQ1WnNBQkZXTEFHTHh1eEJoQStXYkFBUlZpd0NpOGJzUW9RUGxteUFnRUtLMWdoMkJ2MFdiQUQwREF4QVRNRElSTXpBeUVESXhNaEFUKzg0UUszNHJ2OS9rNCt2VC8rUHdXdyt1MEZFL3BRL3BrQlp3QUNBRFFBQUFTV0JiQUFEQUFWQUZ1eUR4WVhFUkk1c0E4UXNBUFFBTEFBUlZpd0N5OGJzUXNjUGxtd0FFVllzQWt2RzdFSkVENVpzQXNRc2dBQkNpdFlJZGdiOUZteUFnc0pFUkk1c0FJdnNnMEJDaXRZSWRnYjlGbXdDUkN5RGdFS0sxZ2gyQnYwV1RBeEFTRURCUllXQndZRUl5RVRJUUVEQlRJMk56WW1Kd1I2L1ZoTEFUYlk3QkVRL3RqcC9lWDlBMlg4MW1BQlNvM0FFUTU4ZkFVUy9rd0JBZUsveC9RRnNQMFEvZDBCbm9OMmlBUUFBQUwvaS82YUJYb0ZzQUFPQUJVQVZiSVNGaGNSRWptd0VoQ3dDOUFBc0FRdnNBQkZXTEFMTHh1eEN4dytXYkFBUlZpd0FpOGJzUUlRUGxtd0JCQ3dBZEN3QWhDeUJ3RUtLMWdoMkJ2MFdiQVAwTEFOMExBTEVMSVJBUW9yV0NIWUcvUlpNREVCSXhNaEF5TVRGellUTnhNaEF6TUZKUk1oQXdjQ0JQYTdQdndNUDd0WmE4OWxGSlFEVCtLNSs5Z0NzOGIrSkc0ZFhmNmJBV1grbWdJREFxa0JmazRDb1BydEF3TUVkZjRMY3Y2cEFBQUIvNndBQUFkMUJiQUFGUUNHQUxBQVJWaXdDUzhic1FrY1BsbXdBRVZZc0Ewdkc3RU5IRDVac0FCRldMQVJMeHV4RVJ3K1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBWXZHN0VHRUQ1WnNBQkZXTEFVTHh1eEZCQStXYkFDRUxBUTBMQVFMN0l2RUFGZHNzOFFBVjJ5QUFFS0sxZ2gyQnYwV2JBRTBMSUlFQUFSRWptd0VCQ3dDOUN5RXdBUUVSSTVNREVCSXdNakV5TUJJd0VCTXdFekV6TURNd0V6QVFFakJKV2NjN3gwbWYzOTlnSm8vc1hSQVFxbGJydHVrZ0htNmYzSkFWTGNBcGo5YUFLWS9XZ0RDZ0ttL1lnQ2VQMklBbmo5Ui8wSkFBRUFKZi9xQkpnRnh3QXFBR0FBc0FCRldMQU5MeHV4RFJ3K1diQUFSVml3R1M4YnNSa1FQbG13RFJDeUJnRUtLMWdoMkJ2MFdiQU5FTEFLMExBWkVMQXEwTEFxTDdJcEFRb3JXQ0hZRy9SWnNoSXBLaEVTT2JBWkVMQWQwTEFaRUxJZ0FRb3JXQ0hZRy9SWk1ERUJNalkzTmlZbkpnWUhCellrRnhZV0J3WUZGaFlIQmdZRUp5WW1OeGNHRmhjV05qYzJOelltSnljM0FtMlV2UTRObFlCK3V4UzZFZ0VzMHR2d0VCSCs5V2RmQ0F1WC92bVowUE1KdWdpVWZFV0dObTRRRG9LVXJSd0ROSVY0YzRJQ0FvbHZBYmJnQWdYZHRkUjBMYXh2aE1WckFnVG92UUYxa3dRQ0pDVk1mM1dDQlFHZUFBQUJBRU1BQUFWdUJiQUFDUUJkQUxBQVJWaXdBQzhic1FBY1BsbXdBRVZZc0Fjdkc3RUhIRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3QlM4YnNRVVFQbG15QkFBQ0VSSTVRQW1LQkpvRXFnUzZCQVJkc2drQUFoRVNPVUFKaFFtVkNhVUp0UWtFWFRBeEFUTURJeE1CSXhNekF3U3N3djI3d2Z5UHcvMjh3UVd3K2xBRVZ2dXFCYkQ3cWdBQUFmL0tBQUFGWlFXd0FCQUFUYklFRVJJUkVqa0FzQUJGV0xBQUx4dXhBQncrV2JBQVJWaXdBUzhic1FFUVBsbXdBRVZZc0Fndkc3RUlFRDVac0FBUXNnTUJDaXRZSWRnYjlGbXdDQkN5Q2dFS0sxZ2gyQnYwV1RBeEFRTWpFeUVEQWdZSEl6YzNOalkzTnhNRlpmeTg0ZjRJcDBIaXExY1NKSWVtS3hhUEJiRDZVQVVTL1BiKzgvVUduUUVJNVA5OUFxb0FBQUVBay8vbUJVQUZzQUFRQUR5eUF4RVNFUkk1QUxBQVJWaXdBUzhic1FFY1BsbXdBRVZZc0JBdkc3RVFIRDVac0FCRldMQUdMeHV4QmhBK1diSUtBUW9yV0NIWUcvUlpNREVCQVRNQkJnWW5KaWMzRnpJL0FnRXpBb1lCMk9MOVBWRzBland2RmxsalJTUTYvdHZKQW1RRFRQdENrM2tDQWdtWUJtTTRaZ1FxQUFBREFGdi94QVhmQmV3QUdBQWhBQ29BYXJJZUt5d1JFam13SGhDd0M5Q3dIaEN3STlBQXNCY3ZzaFlYS3hFU09iQVdMN0FBMExBQUw3SU5LeGNSRWptd0RTK3dDdEN3Q2krd0RSQ3dETkN3REMrd0RSQ3lIUUVLSzFnaDJCdjBXYkFXRUxJZkFRb3JXQ0hZRy9SWnNCMFFzQ1BRc0I4UXNDclFNREVCRnhZV0VnY0dBZ1FuSXdjak55SW1BamMyRWlRM016Y3pBUVlXRnhjVEl3WUVKUU16TmlRM05pWW5BOWdVbU9weEVCSzYvdHVuSUNlMktLanNjeEFRc3dFY29qWXFzUDBpRjV1aUxwOGV2UDcvQXBLZUhib0JBUmtXcEtjRkhRRURsLzczbktqKzY1a0J4TVdXQVF5Z293RVFuQVRPL04rNDVRd0NBMmtEOXZmOGx3UDB5TC9rQndBQUFRQkIvcUVGYlFXd0FBc0FPd0N3Q1Mrd0FFVllzQUF2RzdFQUhENVpzQUJGV0xBRUx4dXhCQncrV2JBQVJWaXdDaThic1FvUVBsbXlBZ0VLSzFnaDJCdjBXYkFHMERBeEFUTURJUk16QXpNREl4TWhBVDY4NFFLMzRydmhsV3FxUHZ2MkJiRDY3UVVUK3ZIK0FBRmZBQUVBemdBQUJVUUZzQUFTQUVpeUR4TVVFUkk1QUxBQVJWaXdFaThic1JJY1BsbXdBRVZZc0Fvdkc3RUtIRDVac0FCRldMQUJMeHV4QVJBK1diSVBBUW9SRWpsOHNBOHZHTElGQVFvcldDSFlHL1JaTURFQkF5TVRCaWNtSmpjVE13TUdGeFlYRmpjVEJVVDl2Ryt4eWR6V0YweThTd2dJR00raDRIMEZzUHBRQWx3M0FnTHIxUUhIL2poRk5hVURBellDdHdBQkFFSUFBQWM0QmJBQUN3QklBTEFBUlZpd0FDOGJzUUFjUGxtd0FFVllzQU12RzdFREhENVpzQUJGV0xBSEx4dXhCeHcrV2JBQVJWaXdDUzhic1FrUVBsbXlBUUVLSzFnaDJCdjBXYkFGMExBRzBEQXhBUU1oRXpNRElSTXpBeUVUQWZ2aEFlWGh1K0lCNHVHOC9mb0gvUVd3K3UwRkUvcnRCUlA2VUFXd0FBRUFRdjZoQnpnRnNBQVBBRlFBc0FzdnNBQkZXTEFBTHh1eEFCdytXYkFBUlZpd0F5OGJzUU1jUGxtd0FFVllzQWN2RzdFSEhENVpzQUJGV0xBTkx4dXhEUkErV2JJQkFRb3JXQ0hZRy9SWnNBWFFzQWJRc0FuUXNBclFzQUxRTURFQkF5RVRNd01oRXpNRE13TWpFeUVUQWZ2aEFlWGh1K0lCNHVHODRvOXBvajM2Sy8wRnNQcnRCUlA2N1FVVCt1ZitDZ0ZmQmJBQUFnQ0pBQUFGZ0FXd0FBd0FGUUJlc2dFV0Z4RVNPYkFCRUxBTjBBQ3dBRVZZc0FBdkc3RUFIRDVac0FCRldMQUpMeHV4Q1JBK1diSUNBQWtSRWptd0FpK3dBQkN5Q3dFS0sxZ2gyQnYwV2JBQ0VMSU5BUW9yV0NIWUcvUlpzQWtRc2c0QkNpdFlJZGdiOUZrd01STWhBd1VXRmdjR0JDTWhFeUVCQXdVeU5qYzJKaWVrQWtwbkFUYmE2UkVSL3Ruby9lYmkvbklCNDJBQlNvMi9FUTU4ZXdXdy9hNEJBZVc5eWZFRkdQMm8vZDBCbm9OMmlBUUFBQU1BUlFBQUJwWUZzQUFLQUJNQUZ3QnRzaElZR1JFU09iQVNFTEFHMExBU0VMQVYwQUN3QUVWWXNBa3ZHN0VKSEQ1WnNBQkZXTEFXTHh1eEZodytXYkFBUlZpd0J5OGJzUWNRUGxtd0FFVllzQlF2RzdFVUVENVpzZ0FKQnhFU09iQUFMN0lMQVFvcldDSFlHL1Jac0FjUXNnd0JDaXRZSWRnYjlGa3dNUUVGRmhZSEJnUWpJUk16QXdNRk1qWTNOaVluQVNNVE13R1dBVGJZN0JFUS90anAvZWY4dklKZ0FVcU53QkVPZkh3Q3dMdjl1d05lQVFIaXY4ZjBCYkQ5RVAzZEFaNkRkb2dFL1VFRnNBQUFBZ0EyQUFBRWdRV3dBQW9BRXdCTnNnMFVGUkVTT2JBTkVMQUIwQUN3QUVWWXNBa3ZHN0VKSEQ1WnNBQkZXTEFITHh1eEJ4QStXYklBQ1FjUkVqbXdBQyt5Q3dFS0sxZ2gyQnYwV2JBSEVMSU1BUW9yV0NIWUcvUlpNREVCQlJZV0J3WUVJeUVUTXdNREJUSTJOelltSndHSEFUYlk3QkVRL3RqcC9lZjh2SUpnQVVxTndCRU9mSHdEWGdFQjRyL0g5QVd3L1JEOTNRR2VnM2FJQkFBQkFIVC82UVQ4QmNvQUlnQmdBTEFBUlZpd0ZTOGJzUlVjUGxtd0FFVllzQjh2RzdFZkVENVpzQURRc0I4UXNnTUJDaXRZSWRnYjlGbXdIeEN3Q05Dd0NDK3lMd2dCWGJMUENBRmRzZ2NCQ2l0WUlkZ2I5Rm13RlJDeURnRUtLMWdoMkJ2MFdiQVZFTEFSMERBeEFSWVdGeFlTTndVM0lUWTNOaVluSmdZSEJ6WUFGeDRDRnhZQ0FnY0dKeVltSndFd0I0Mk9yT3czL2MwY0Fpa0pBZ09aa1kvRk1ic3VBVDNjak01M0J3WkwyNkJ2ZmRYNUNBSFBwNXdFQlFFSS9RR2VPRHU1MGdRRnBLc0I1Z0VJQmdOOTdKUnkvay8rdkVRd0F3VCs0UUFDQUVuLzV3Yk9CY2NBRndBbkFIZXlBU2dwRVJJNXNBRVFzQ0xRQUxBQVJWaXdEeThic1E4Y1BsbXdBRVZZc0Frdkc3RUpIRDVac0FCRldMQUFMeHV4QUJBK1diQUFSVml3Qmk4YnNRWVFQbG15Q2dZSkVSSTVmTEFLTHhpeUJRRUtLMWdoMkJ2MFdiQVBFTEliQVFvcldDSFlHL1Jac0FBUXNpTUJDaXRZSWRnYjlGa3dNUVVtSmdJM0l3TWpFek1ETXpZU0pCY1dFaGNXQWdJSEJnRTJKaWNtQmdJSEJ3WVdGeFlTRXpZRUVwdmVhUkRPYnJ2OXUzVEhJY0lCR2FiVjlna0VNNE5sc0FFT0JwYVVodE9IRWdNR21KRzkrU2tVRkFPaUFUYTIvWU1Gc1Axa3pnRkNvd01FL3VIMWFmNjgvdXBlcEFPWHhka0VCSmorMGVoQnhONEVCUUViQVFCK0FBTC82QUFBQk5nRnNRQU5BQllBWWJJUkZ4Z1JFam13RVJDd0F0QUFzQUJGV0xBTEx4dXhDeHcrV2JBQVJWaXdBQzhic1FBUVBsbXdBRVZZc0FNdkc3RURFRDVac2hJQUN4RVNPYkFTTDdJQkFRb3JXQ0hZRy9SWnNnVUJDeEVTT2JBTEVMSVVBUW9yV0NIWUcvUlpNREVoRXlFQkl3RW1KamMySkRNRkF3RUdGaGNGRXljaUJnTWVZLzdCL25uVEFieHlhQXNTQVRUc0FkSDkvYllRaFgwQkdXVCttc1lDTi8zSkFuQTZ5SC9ROEFINlVBUHlmSjBFQVFJK0Fab0FBQUlBUnYvbkJGVUdFUUFjQUNzQVRiSVpMQzBSRWptd0dSQ3dIZEFBc0JRdnNBQkZXTEFJTHh1eENCQStXYklBQ0JRUkVqbXdBQyt5R3dBSUVSSTVzQWdRc2lVQkNpdFlJZGdiOUZtd0FCQ3lLd0VLSzFnaDJCdjBXVEF4QVI0Q0J3Y0dBQ2N1QWo4Q0VnQTNOelkzTXc0Q0JBWUhOaGNtQmc4Q0ZoWVhGalkzTmlZbkFvMTZzVllNQXg3KzE5R0d3bGtRQkFVbkFTZnljWmNabFFwTGl2NjYwa0NwbW4rMkd3Y0RBM2xzaWJzYURuNTVBL3dDZnVDSEYvVCszUVVDamZHUEhpMEJUd0dtTVJVaGIyQjNTVUM0cDY2YkE2dVZMMVdFblFJRHpzaVl0UVFBQUFNQU1BQUFCQTBFT2dBTkFCWUFIZ0JYQUxBQVJWaXdBUzhic1FFWVBsbXdBRVZZc0FBdkc3RUFFRDVac2hjQUFSRVNPWHl3Rnk4WXNnNEJDaXRZSWRnYjlGbXlCdzRYRVJJNXNBQVFzZzhCQ2l0WUlkZ2I5Rm13QVJDeUhnRUtLMWdoMkJ2MFdUQXhNeE1GRmhZSEJnY1dGZ2NHQmdjREF3VXlOamMySmljbEZ6STJOelluSnpDOEFYN0syUW9LeWxCYUJBYm13ZkU1QVI1d2l3c0tZV0grNXQ2RGtnc1Y3UEVFT2dFQms0eWJWaGlCVkpLbkFnSGIvcm9CVzFGSVR3T1ZBVkpPamdjQkFBQUJBQzBBQUFPREJEb0FCUUFyQUxBQVJWaXdCQzhic1FRWVBsbXdBRVZZc0FJdkc3RUNFRDVac0FRUXNnQUJDaXRZSWRnYjlGa3dNUUVoQXlNVElRTm4vaDJodHJ3Q21nT2gvRjhFT2dBQy80Myt3Z1ErQkRvQURnQVVBRkt5RWhVV0VSSTVzQklRc0FuUUFMQU1MN0FBUlZpd0JDOGJzUVFZUGxtd0FFVllzQW92RzdFS0VENVpzZ0FCQ2l0WUlkZ2I5Rm13RDlDd0J0Q3dEQkN3Q2RDd0JCQ3lFUUVLSzFnaDJCdjBXVEF4TnpZMk54TWhBek1ESXhNaEF5TVRCU1VUSVFNQ0xXK0lJRlFDcHFLSFVyUTMvU1UzdFZNQkpBSGpoUDYvUkVTVVp2eXVBWmI4WGY0ckFUNyt3Z0hWQXdNQytQNjcvdVVBQUFIL3BRQUFCZzRFT2dBVkFKQUFzQUJGV0xBSkx4dXhDUmcrV2JBQVJWaXdEUzhic1EwWVBsbXdBRVZZc0JFdkc3RVJHRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3Qmk4YnNRWVFQbG13QUVWWXNCUXZHN0VVRUQ1WnNBSVFzQkRRc0JBdnNyOFFBVjJ5L3hBQlhiSXZFQUZkc3M4UUFYR3lBQUVLSzFnaDJCdjBXYkFFMExJSUVBQVJFam13RUJDd0M5Q3lFd0FRRVJJNU1ERUJJd01qRXlNQkl3RURNeE16RXpNRE13RXpBUUVqQTd5RFViVlNkLzZJOFFIaTljN0JnRTYxVDNNQlgrZitTQUVTMXdIVy9pb0IxdjRxQWpvQ0FQNUFBY0QrUUFIQS9ldjkyd0FCQUNILzZnT3FCRkFBSndCcUFMQUFSVml3RFM4YnNRMFlQbG13QUVWWXNCa3ZHN0VaRUQ1WnNBMFFzZ1lCQ2l0WUlkZ2I5Rm13RFJDd0N0Q3dHUkN3SjlDd0p5K3lMeWNCWGJLL0p3RmRzaVlCQ2l0WUlkZ2I5Rm15RWlZbkVSSTVzQmtRc0J6UXNCa1FzaUFCQ2l0WUlkZ2I5Rmt3TVFFeU5qYzJKaU1tQmdjSE5qWVhGaFlIQmdjV0ZnY09BaWNtSmpjWEJoWVhGalkzTmljbk53SUJabnNJQ1dOWVdvNFJ0QkQ1cktuQkNnckNTMFVGQm5mTWQ2blZCckVFZEY5bmt3c1Z6YmtjQW5WV1QwZFlBbUJPQVpXdkFnS2xpNXhaSVgxUmFKWlFBd0s2bUFGU2F3SUNaRlNoQVFHY0FBQUJBQzhBQUFRM0JEb0FDUUJGQUxBQVJWaXdBQzhic1FBWVBsbXdBRVZZc0Fjdkc3RUhHRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3QlM4YnNRVVFQbG15QkFjQ0VSSTVzZ2tIQWhFU09UQXhBVE1ESXhNQkl4TXpBd044dTd5MWlQMmN1N3kwaHdRNis4WURDZnozQkRyODlnQUFBUUF2QUFBRVZ3UTZBQXdBZHdDd0FFVllzQVF2RzdFRUdENVpzQUJGV0xBSUx4dXhDQmcrV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0Fzdkc3RUxFRDVac0FJUXNBYlFzQVl2c3A4R0FWMnkvd1lCWGJMUEJnRnhzcDhHQVhHMHZ3YlBCZ0pkc2k4R0FWMnlid1lCY3JJQkFRb3JXQ0hZRy9SWnNnb0JCaEVTT1RBeEFTTURJeE16QXpNQk13RUJJd0craVZHMXZMVlFiZ0d3NmYzK0FWdldBYzMrTXdRNi9qWUJ5djN2L2RjQUFBSC95QUFBQkRrRU9nQVJBRTJ5QkJJVEVSSTVBTEFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQUV2RzdFQkVENVpzQUJGV0xBSkx4dXhDUkErV2JBQUVMSURBUW9yV0NIWUcvUlpzQWtRc2d3QkNpdFlJZGdiOUZrd01RRURJeE1oQXdjR0JnY2pOemMyTmpjM0V3UTV2TGFpL3B4UkZqVytsVTRTSjJGOElCSmlCRHI3eGdPaC9vNXM4czREb2dJR29hNW5BZG9BQUFFQU1BQUFCWDRFT2dBTUFGa0FzQUJGV0xBQkx4dXhBUmcrV2JBQVJWaXdDeThic1FzWVBsbXdBRVZZc0FNdkc3RURFRDVac0FCRldMQUdMeHV4QmhBK1diQUFSVml3Q1M4YnNRa1FQbG15QUFzREVSSTVzZ1VMQXhFU09iSUlDd01SRWprd01TVUJNd01qRXdFakF3TWpFek1Db2dIMjVyeTFoLzRzZnRDT3RMemw5d05EKzhZREJmejdBeXo4MUFRNkFBQUJBQzhBQUFRMkJEb0FDd0NLQUxBQVJWaXdCaThic1FZWVBsbXdBRVZZc0Fvdkc3RUtHRDVac0FCRldMQUFMeHV4QUJBK1diQUFSVml3QkM4YnNRUVFQbG13QUJDd0NkQ3dDUyt5YndrQlhiUy9DYzhKQWwyeVB3a0JjYlRQQ2Q4SkFuR3lEd2tCY3JTZkNhOEpBbkd5L3drQlhiSVBDUUZ4c3A4SkFWMnlMd2tCWGJSdkNYOEpBbkt5QWdFS0sxZ2gyQnYwV1RBeElTTVRJUU1qRXpNRElSTXpBM3ExVWY0ZlViVzh0VkVCNEZLMUFjNytNZ1E2L2lzQjFRQUFBUUF2QUFBRU53UTZBQWNBT0FDd0FFVllzQVl2RzdFR0dENVpzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdCQzhic1FRUVBsbXdCaEN5QWdFS0sxZ2gyQnYwV1RBeElTTVRJUU1qRXlFRGU3V2kvaDZpdGJ3RFRBT2gvRjhFT2dBQUFRQmdBQUFENkFRNkFBY0FNUUN3QUVWWXNBWXZHN0VHR0Q1WnNBQkZXTEFDTHh1eEFoQStXYkFHRUxJQUFRb3JXQ0hZRy9SWnNBVFFzQVhRTURFQklRTWpFeUUzSVFQTy9xQ2l0S0grcHhvRGJnT2svRndEcEpZQUF3Qk0vbUFGUFFZQUFCOEFMQUE2QUgyeUp6czhFUkk1c0NjUXNCTFFzQ2NRc0RYUUFMQURMN0FBUlZpd0FDOGJzUUFZUGxtd0FFVllzQWN2RzdFSEdENVpzQUJGV0xBVEx4dXhFeEkrV2JBQVJWaXdGeThic1JjUVBsbXdFTkN3QnhDeUpBRUtLMWdoMkJ2MFdiQVhFTEl5QVFvcldDSFlHL1Jac0NuUXNBQVFzamNCQ2l0WUlkZ2I5Rmt3TVFFV0Z4TXpBellYRmhjV0R3SUdBaWNtSndNakV3WW5JaVluSmpjM0VoSUJOaWNtSnlZSEF4WVhGalkzQlFZVkZ4WVhGamNUSmlNbUJnY0NKMUpCVjdWWlRWSFZRUndDQ0FJaThiaFhURkMxVVVsSGtKOERBUVlNTGVzRENBc0RFS1l6UFk0c08zK3BHdnlNQmdJVG5TODZqalFxZmFFZ0JGQUNIZ0hRL2lvakFRUHJaM1I0RVBuKzVBTUNJZjVVQWFrZEFkVzVPemRTQVFBQkUvMjlaRWZ6QndJVS9POFFBZ0xIdGcwMVBqQy9Cd0lTQXhNU0FzM1BBQUVBTC82L0JEY0VPZ0FMQURzQXNBZ3ZzQUJGV0xBQUx4dXhBQmcrV2JBQVJWaXdCQzhic1FRWVBsbXdBRVZZc0Fvdkc3RUtFRDVac2dJQkNpdFlJZGdiOUZtd0J0QXdNUk16QXlFVE13TXpBeU1USWV1MW9RSGhvcldpZm1TaU9QenFCRHI4WFFPai9GMytLQUZCQUFBQkFIc0FBQVFBQkRzQUVnQklzZzRURkJFU09RQ3dBRVZZc0JFdkc3RVJHRDVac0FCRldMQUpMeHV4Q1JnK1diQUFSVml3QVM4YnNRRVFQbG15RGdFSkVSSTVmTEFPTHhpeUJBRUtLMWdoMkJ2MFdUQXhJU01UQmljbUpqY1RNd01HRnhZWEZqY1RNd05FdGt0N2RySzdGVEsxTXdZRkVKNXVpV0syQVlraEFnTGF1UUU4L3NNMExaUUdBeDhDR3dBQkFDOEFBQVlJQkRvQUN3QklBTEFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQU12RzdFREdENVpzQUJGV0xBSEx4dXhCeGcrV2JBQVJWaXdDUzhic1FrUVBsbXlBUUVLSzFnaDJCdjBXYkFGMExBRzBEQXhBUU1oRXpNRElSTXpBeUVUQWFDaEFYK2h0YUlCZnFLMnZQcmp2QVE2L0YwRG8veGRBNlA3eGdRNkFBRUFKUDYvQmYwRU9nQVBBRXNBc0F3dnNBQkZXTEFBTHh1eEFCZytXYkFBUlZpd0F5OGJzUU1ZUGxtd0FFVllzQWN2RzdFSEdENVpzQUJGV0xBTkx4dXhEUkErV2JJQkFRb3JXQ0hZRy9SWnNBWFFzQW5RTURFQkF5RVRNd01oRXpNRE13TWpFeUVUQVphaUFYK2l0S0VCZmFLMm9wUmpvemo3QTd3RU92eGRBNlA4WFFPai9GMytLQUZCQkRvQUFBSUFWZ0FBQkhzRU9nQU1BQlVBWHJJQkZoY1JFam13QVJDd0RkQUFzQUJGV0xBQUx4dXhBQmcrV2JBQVJWaXdDUzhic1FrUVBsbXlBZ0FKRVJJNXNBSXZzQUFRc2dzQkNpdFlJZGdiOUZtd0FoQ3lEUUVLSzFnaDJCdjBXYkFKRUxJT0FRb3JXQ0hZRy9SWk1ERVRJUU1YRmhZSEJnWWpJUk1oQVFNRk5qWTNOaVluY1FIc1FmNmp2Z3NMODd2K05hSCt5UUdzUndFQWE0Y05DMVpZQkRyK2l3RUV1cGlseVFPaS9veithUUVDY1Y1WGF3UUFBd0F3QUFBRnFRUTZBQW9BRXdBWEFGb0FzQUJGV0xBS0x4dXhDaGcrV2JBQVJWaXdGaThic1JZWVBsbXdBRVZZc0Fndkc3RUlFRDVac0FCRldMQVZMeHV4RlJBK1diSUFDQW9SRWptd0FDK3lDd0VLSzFnaDJCdjBXYkFJRUxJTUFRb3JXQ0hZRy9SWk1ERUJGeFlXQndZR0l5RVRNd01EQlRZMk56WW1Kd0VqRXpNQlgrMnh3Z3NMODczK043eTFXMGNCQUd1SERRdFhWd0tTdGJ5MUFzVUNBYnVacGNrRU92MzAvbWtCQW5GZVYyc0UvZE1FT2dBQUFnQXdBQUFEdndRNkFBb0FFd0JOc2djVUZSRVNPYkFIRUxBTjBBQ3dBRVZZc0Frdkc3RUpHRDVac0FCRldMQUhMeHV4QnhBK1diSUFDUWNSRWptd0FDK3lDd0VLSzFnaDJCdjBXYkFIRUxJTUFRb3JXQ0hZRy9SWk1ERUJGeFlXQndZR0l5RVRNd01EQlRZMk56WW1Kd0ZmN2JIQ0N3dnp2ZjQzdkxWYlJ3RUFhNGNOQzFkWEFzVUNBYnVacGNrRU92MzAvbWtCQW5GZVYyc0VBQUFCQURULzV3UEVCRkFBSVFCb0FMQUFSVml3Q0M4YnNRZ1lQbG13QUVWWXNCSXZHN0VTRUQ1WnNBZ1FzZ0FCQ2l0WUlkZ2I5Rm13Q0JDd0JOQ3dFaEN3RmRDd0VoQ3lHUUVLSzFnaDJCdjBXYkFTRUxBZTBMQWVMN0l2SGdGZHNyOGVBVjJ5SUI0QmNiSWRBUW9yV0NIWUcvUlpNREVCSmdZSEJ6NENGeDRDRnhZSEJ3WUFKeVltTnhjR0ZoY1dOamNoTnlFMkpnSTdZNWdVcXdxRHlXeHNwR01KQlFZREhmN1YwS1hLQ0tzR2EyQjBzREgrY0JzQmhBaHpBN2NDZUY0QlpLdGZBUU5qdTNkQlFSbjcvc1lGQk55b0FXV0pCQVd4cnBpUnNBQUNBREQvNXdZSEJGUUFGUUFtQUgwQXNBQkZXTEFWTHh1eEZSZytXYkFBUlZpd0JDOGJzUVFZUGxtd0FFVllzQkl2RzdFU0VENVpzQUJGV0xBTUx4dXhEQkErV2JJQUVoVVJFamw4c0FBdkdMS0FBQUZkdEVBQVVBQUNYYlJRQUdBQUFuR3lFUUVLSzFnaDJCdjBXYkFNRUxJYkFRb3JXQ0hZRy9SWnNBUVFzaU1CQ2l0WUlkZ2I5Rmt3TVFFek5nQVhIZ0lIQndJQUp5NENOd1VESXhNekFRWVhGQllYRmpZM05pY21KaWNtQmdjQlVQUkNBU1BBaUw5WER3RWkvc3pZZnNGZEMvNy9VN1M4dEFGUEJRRjRib3ZMR3djRkNYWm1qTWdhQW0vbEFRQUZCSS82bUFuKy9QN0tCUUtFNElZQi9pa0VPdjNRS2kyTm9RUUY1TWsvUlhpTkJBWGp1QUFDLzc4QUFBUC9CRHNBRFFBV0FHR3lGQmNZRVJJNXNCUVFzQTNRQUxBQVJWaXdBQzhic1FBWVBsbXdBRVZZc0FFdkc3RUJFRDVac0FCRldMQUZMeHV4QlJBK1diSVNBQUVSRWptd0VpK3lBd0VLSzFnaDJCdjBXYklIQXdBUkVqbXdBQkN5RXdFS0sxZ2gyQnYwV1RBeEFRTWpFeUVCSXdFbUpqYzJOak1CQmhZWEJSTW5CZ1lELzd5MlNmNzUvci9QQVY5VlVBWUwrcmorK0FwV1RnRWlQL2RwamdRNis4WUJwZjViQWNVcW5GMmJ1UDZzVFZnRUFRRm5BUUptQUFBQkFCLytSUVBqQmdBQUl3Q0FBTEFoTDdBQVJWaXdCQzhic1FRWVBsbXdBRVZZc0Fzdkc3RUxFajVac0FCRldMQWFMeHV4R2hBK1diSy9JUUZkc2k4aEFWMnlEeUVCWGJJaUdpRVJFam13SWkreUFRRUtLMWdoMkJ2MFdiSUNHZ1FSRWptd0N4Q3lFQUVLSzFnaDJCdjBXYkFFRUxJWEFRb3JXQ0hZRy9SWnNBRVFzQnpRc0NJUXNCL1FNREVCSVFNMkZ4WVdCd01HQmljaUp6Y1dNekkzRXpZbkppY21Cd01qRXlNM016Y3pCeUVDdS83ck5vNjZtcEVUZ1JiQWxTMUxIekV4aXlPQkJnUVJsYVo0aHJYU254cWZIN1VmQVJZRXVmNzltd1FFejdYODRxaTZCQlNTRDlNREZURXFqQU1Fc3Z6OEJMbVlyNjhBQVFCTy8rZ0QvUVJUQUI0QVpRQ3dBRVZZc0E4dkc3RVBHRDVac0FCRldMQUlMeHV4Q0JBK1diSUFBUW9yV0NIWUcvUlpzQWdRc0FUUXNBOFFzQkxRc0E4UXNoWUJDaXRZSWRnYjlGbXdDQkN3R3RDd0dpK3l2eG9CWGJML0dnRmRzaThhQVYyeUd3RUtLMWdoMkJ2MFdUQXhKUlkyTnpjT0FpY21BamMzRWdBWEZoWUhJelFtSnlZR0J5RUhJUVlXQWZGaG5SdXNENFhPYThyUkZ3TWVBUzNYcWNvQ3FuRmZlckl4QVk0Yi9uMFBkb0lDYzJFQlphaGdBd1VCS08wYkFRSUJNUVVFM2Focmd3UUZwNjJZbHJVQUF2L0RBQUFHTHdRNkFCZ0FJUUI1c2dvaUl4RVNPYkFLRUxBYTBBQ3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQUlMeHV4Q0JBK1diQUFSVml3RUM4YnNSQVFQbG15QWdBSUVSSTVzQUl2c0FBUXNnb0JDaXRZSWRnYjlGbXdFQkN5RXdFS0sxZ2gyQnYwV2JBSUVMSWJBUW9yV0NIWUcvUlpzQUlRc2lFQkNpdFlJZGdiOUZrd01RRURGeFlXQndZR0l5RVRJUU1IQmdZSEl6YzNOalkzTnhNQkF3VTJOamMySmljRUZraitwYjRKQ2ZHKy9qYWkvcnRSR0RQQW1rZ1RKbUY4SUJKaUFrZEFBUUJtakFzTFdGc0VPdjVrQVFXdGtadS9BNkgram5ibjBRR2lBZ2Focm1jQjJ2M00vbzhCQW0xWlNsb0ZBQUFDQUM4QUFBWlBCRG9BRWdBYkFIdXlBUndkRVJJNXNBRVFzQlBRQUxBQVJWaXdBaThic1FJWVBsbXdBRVZZc0JFdkc3RVJHRDVac0FCRldMQUxMeHV4Q3hBK1diQUFSVml3RHk4YnNROFFQbG15QVJFTEVSSTVzQUV2c0FUUXNBRVFzZzBCQ2l0WUlkZ2I5Rm13QkJDeUV3RUtLMWdoMkJ2MFdiQUxFTElVQVFvcldDSFlHL1JaTURFQklSTXpBeGNXRmdjR0JpTWhFeUVESXhNekFRTUZOalkzTmlZbkFWa0I0VWUxU1A2andBa0o4YjcrTjF2K0gxdTF2TFVDTkVBQkFHYUtEUXRYWEFLaEFabitZd0VFcnBDYnZ3SUsvZllFT3YzTS9vOEJBbXhhU2xvRkFBRUFId0FBQStNR0FBQWFBSG15QXhzY0VSSTVBTEFYTDdBQVJWaXdCQzhic1FRWVBsbXdBRVZZc0Fndkc3RUlFRDVac0FCRldMQVJMeHV4RVJBK1diSy9Gd0Zkc2k4WEFWMnlEeGNCWGJJYUVSY1JFam13R2kreUFBRUtLMWdoMkJ2MFdiSUNCQkVSRWptd0JCQ3lEZ0VLSzFnaDJCdjBXYkFBRUxBVDBMQWFFTEFWMERBeEFTRUROaGNXRmdjREl4TTJKeVluSmdjREl4TWpOek0zTXdjaEF0SCswVEdPdVppVEUzYTFkd1lGRVpTbWVJYTEwNHNiaWg2MUlBRXRCTDcrK0pzRUFzMjUvVHNDeURFcWpBTUVzdno4Qkw2WHE2c0FBUUF2L3B3RU53UTZBQXNBUlFDd0NDK3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQURMeHV4QXhnK1diQUFSVml3QlM4YnNRVVFQbG13QUVWWXNBa3ZHN0VKRUQ1WnNnRUJDaXRZSWRnYjlGa3dNUUVESVJNekF5RURJeE1oRXdHZ29RSGhvclc4L3JnL3RENytzYndFT3Z4ZEE2UDd4djZjQVdRRU9nQUFBUUJ2LytRRzR3V3dBQ0VBWUxJR0lpTVJFamtBc0FCRldMQUFMeHV4QUJ3K1diQUFSVml3R1M4YnNSa2NQbG13QUVWWXNBNHZHN0VPSEQ1WnNBQkZXTEFFTHh1eEJCQStXYkFBUlZpd0NTOGJzUWtRUGxteUZBRUtLMWdoMkJ2MFdiSUhGQVFSRWptd0hkQXdNUUVEQmdZbkppWW5CaWNtSmpjVE13TUdGeFlXRnhZMk54TXpBd1lXRnhZMk54TUc0N1FiLzdscW5DQ0wzYXUwRTdTOHN3VUVCMUpGYlp3UnRjS3pERjVlWkk0VnRnV3crOTNFNHdRQ1gxQzNCZ2JudGdRais5d3RMVTVhQXdXUWVnUWsrOXg0aWdNRGhuY0VMd0FCQUUvLzVnWGZCRG9BSVFCTEFMQUFSVml3RGk4YnNRNFlQbG13QUVWWXNCZ3ZHN0VZR0Q1WnNBQkZXTEFoTHh1eElSZytXYkFBUlZpd0NTOGJzUWtRUGxtd0JOQ3dDUkN5RkFFS0sxZ2gyQnYwV2JBZDBEQXhBUU1HQmljbUppY0dKeVltTnhNekF3WVhGaFlYRmpZM0V6TURCaFlYRmpZM0V3WGZlaG5kckZxSUgzdSttS0lSZXJSNkJBTURSRHhiZ3hKN3Rub0tUMDlWZUJKNkJEcjlLTERNQkFKTlJaZ0VCTTZsQXRuOUppWW1RRkFEQkhockF0cjlKbVozQWdOMWJRTGFBQUFDQUM3Ly9BUERCaFlBRWdBYkFIR3lGUndkRVJJNXNCVVFzQW5RQUxBQVJWaXdEeThic1E4ZVBsbXdBRVZZc0Frdkc3RUpFRDVac2hJUENSRVNPYkFTTDdJQUFRb3JXQ0hZRy9SWnNnTVBDUkVTT2JBREw3QUFFTEFMMExBU0VMQU4wTEFKRUxJVkFRb3JXQ0hZRy9SWnNBTVFzaHNCQ2l0WUlkZ2I5Rmt3TVFFaEF4Y1dGZ2NHQmljaEV5TTNNeE16QXlFQkF4YzJOamMySmljQzF2N0pPdjJsdkF3Tys3WCtOYnk2RzdnNXRqa0JPUDVhVGY5b2pnd05WMVlFT3Y2d0FRYkVuckRWQkFRNmx3RkYvcnY5Z2Y1RkFnSjdhVnQzQkFBQUFRQkovK2NHc3dYS0FDc0FoN0lZTEMwUkVqa0FzQUJGV0xBckx4dXhLeHcrV2JBQVJWaXdCaThic1FZY1BsbXdBRVZZc0Nndkc3RW9FRDVac0FCRldMQWdMeHV4SUJBK1diSUFLeWdSRWptd0FDK3dCaEN3Q3RDd0JoQ3lEUUVLSzFnaDJCdjBXYkFBRUxBUTBMQUFFTEluQVFvcldDSFlHL1Jac0JMUXNDQVFzaGtCQ2l0WUlkZ2I5Rm13SUJDd0hOQXdNUUV6TmpZM05oY1dFaGNqSmlZbkpnWUhJUWNsQmdjR0ZoWVhGalkzTndZQUp5WUNKeVkzTndjREl4TXpBWmE1SVh4YXNQblA3d2E2QjRxQnEvTTlBaFFiL2ZjT0FnWStnVjJaeURTNkwvNjY0OHIzQndNT0JzWjN2UDI4QTBDUStWZXFCUVQrL2VLb29RTUY5UG1YQVU0OWJzQmtBd1dkckFIai92c0dCQUVZNVZCUUhBSDlWd1d3QUFFQUxQL29CWTBFVXdBa0FNU3lBeVVtRVJJNUFMQUFSVml3QkM4YnNRUVlQbG13QUVWWXNDUXZHN0VrR0Q1WnNBQkZXTEFoTHh1eElSQStXYkFBUlZpd0hDOGJzUndRUGxteUR4d0VFUkk1c0E4dnRMOFB6dzhDWGJRL0QwOFBBbkcwencvZkR3Snh0QThQSHc4Q2NyU2ZENjhQQW5HeS93OEJYYklQRHdGeHRDOFBQdzhDWGJSdkQzOFBBbkt3QU5DeUNBOEVFUkk1c0FRUXNnc0JDaXRZSWRnYjlGbXdEeEN5RUFFS0sxZ2gyQnYwV2JBY0VMSVVBUW9yV0NIWUcvUlpzaGNjQkJFU09iQVFFTEFmMERBeEFUTTJKQmNXRmdjak5DWW5KZ1lISVFjaEJoWVhGalkzTnc0Q0p5WUNOd2NESXhNekFVeXhRUUVadzZmTUFxcHdYMzJ4TUFHdUcvNWREM1oyWnBrYXJBK0h6R3UvMnhQQVVMYTh0Z0puOFB3RkJOMm9hb1FFQTZtcWw1YTFBd0oxWHdGbHFWOERCQUVUendIK01BUTZBQUFDLzdvQUFBUlRCYkFBQ3dBT0FGWUFzQUJGV0xBSUx4dXhDQncrV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0FZdkc3RUdFRDVac0FCRldMQUtMeHV4Q2hBK1diSU5DQUlSRWptd0RTK3lBQUVLSzFnaDJCdjBXYkFFMExJT0NBSVJFamt3TVFFakF5TVRJd01qQVRNVEl3RWhBd05WcDB5NFRaYmV5UUw2cC9pNC9ob0JobHNCdHY1S0FiYitTZ1d3K2xBQ1dnSkhBQUwvb2dBQUE1b0VPZ0FMQUJBQVZnQ3dBRVZZc0Fndkc3RUlHRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3Qmk4YnNRWVFQbG13QUVWWXNBb3ZHN0VLRUQ1WnNnMENDQkVTT2JBTkw3SUJBUW9yV0NIWUcvUlpzQVRRc2c4SUFoRVNPVEF4QVNNREl4TWpBeU1CTXhNakFTRURKd2NDcG5RMHRUUnlxTUVDYUp6MHNmNTJBU1ZJQlNnQktmN1hBU24rMXdRNis4WUJ3UUZHVEZzQUFnQmFBQUFHVlFXd0FCTUFGZ0I4QUxBQVJWaXdBaThic1FJY1BsbXdBRVZZc0JJdkc3RVNIRDVac0FCRldMQUVMeHV4QkJBK1diQUFSVml3Q0M4YnNRZ1FQbG13QUVWWXNBd3ZHN0VNRUQ1WnNBQkZXTEFRTHh1eEVCQStXYklWQWdRUkVqbXdGUyt3QU5Dd0ZSQ3lCZ0VLSzFnaDJCdjBXYkFLMExBR0VMQU8wTElXQWdRUkVqa3dNUUVoQVRNVEl3TWpBeU1USXdNakV5RURJeE16QVNFREFYOEJkZ0hCcC9pNVJxZE11RTJWNE1qbi9zSk52ZjI5QWFNQmhWb0NXUU5YK2xBQnR2NUtBYmIrU2dHNC9rZ0ZzUHlxQWtjQUFnQk9BQUFGU3dRNkFCTUFHQUIvQUxBQVJWaXdBaThic1FJWVBsbXdBRVZZc0JJdkc3RVNHRDVac0FCRldMQUVMeHV4QkJBK1diQUFSVml3Q0M4YnNRZ1FQbG13QUVWWXNBd3ZHN0VNRUQ1WnNBQkZXTEFRTHh1eEVCQStXYklBRUJJUkVqbXdBQyt3QWRDeURnRUtLMWdoMkJ2MFdiQUwwTEFIMExBQkVMQVUwTEFWMExJWEVnUVJFamt3TVFFaEFUTVRJd01qQXlNVEl3TWpFeU1ESXhNekFTRURKd2NCVVFFQ0FXbWI5TEJEZFRTMU5YT293YXJHTkxXOHRnRlJBU1ZJQmljQndRSjUrOFlCS2Y3WEFTbisxd0VvL3RnRU92MkhBVVpNV3dBQ0FDWUFBQVl2QmJBQUhnQWlBSGF5RGlNa0VSSTVzQTRRc0IvUUFMQUFSVml3SFM4YnNSMGNQbG13QUVWWXNCWXZHN0VXRUQ1WnNBQkZXTEFHTHh1eEJoQStXYkFBUlZpd0RpOGJzUTRRUGxteUd3NGRFUkk1c0JzdnNBRFFzQnNRc2hJQkNpdFlJZGdiOUZtd0ROQ3dHeEN3SDlDd0hSQ3lJZ0VLSzFnaDJCdjBXVEF4QVRNeUZnY0RJeE0ySnlZbkp3Y0RJeE1uSnlZR0J3TWpFellrTXpNQkJRRXpBUVVFUWczWTFSZzh2VDBJQnhYSmR4NXR2WElHZ0ptb0dEMjhQUjRCRVBnay92d0VodjA4RHdGby9kVURKK2JRL284QmNrTTBvQU1DSmYyWEFuZ1RBd0tJa2Y2SkFYSGIzd0tGQXYxOEFlZ0JBQUlBS1FBQUJRc0VPZ0FjQUNBQVdBQ3dBRVZZc0FVdkc3RUZHRDVac0FCRldMQWNMeHV4SEJBK1diSUVIQVVSRWptd0JDK3dCOUN3SEJDd0ZkQ3dETkN3QkJDeUdBRUtLMWdoMkJ2MFdiQVIwTEFFRUxBZDBMQUZFTElnQVFvcldDSFlHL1JaTURFek56WTJOd01oQVJZV0J3Y2pOelluSmljbkJ3TWpFeWNuSmdZSEJ3RVhFeUVwR2g3dDFyd0RvLzZOcTZjV0diWVpCd0lLdFRVUlQ3VlVBenFEbXhnY0FmVUo2LzZmcXRMWENRSGUvaDRMNU1Xa3BUMHpxQWNDRnY1UUFid0pBUUtDajdjQ1hBRUJSd0FDQUVnQUFBaGFCYkFBSkFBb0FKbXlJQ2txRVJJNXNDQVFzQ2pRQUxBQVJWaXdCeThic1FjY1BsbXdBRVZZc0Fzdkc3RUxIRDVac0FCRldMQUFMeHV4QUJBK1diQUFSVml3QlM4YnNRVVFQbG13QUVWWXNCTXZHN0VURUQ1WnNBQkZXTEFjTHh1eEhCQStXYklKQlFjUkVqbXdDUyt5QkFFS0sxZ2gyQnYwV2JBSkVMQU4wTEFFRUxBWjBMQUVFTEFmMExBSkVMQWwwTEFMRUxJb0FRb3JXQ0hZRy9SWk1ERWhFelkzQlFNakV6TURJUUVoQVRNV0Z4WUhBeU1UTmljbUp5Y0hBeU1USnljbUJnY0RBVE1CQlFKSFF5RmYvbTF6dlAyOGNBTkYvdlFFa1A0S0U5Wm9hQmM4dlQwSUJ4U3drUjl0dkhJSGdKV3FHRDRDaVE4QmFQM1ZBWXlvWXdQOWJBV3cvWHdDaFAxM0FYSnowUDZQQVhKRE5KUU5CQ2Y5bVFKM0ZBSUNnNVgraVFNcUFlZ0JBQUFDQUM0QUFBYnRCRG9BSWdBbUFJd0FzQUJGV0xBTEx4dXhDeGcrV2JBQVJWaXdDQzhic1FnWVBsbXdBRVZZc0FVdkc3RUZFRDVac0FCRldMQUFMeHV4QUJBK1diQUFSVml3R3k4YnNSc1FQbG13QUVWWXNCSXZHN0VTRUQ1WnNna0ZDQkVTT2JBSkw3SUVBUW9yV0NIWUcvUlpzQWtRc0EzUXNBUVFzQmZRc0FRUXNCN1FzQWtRc0NQUXNBc1FzaVlCQ2l0WUlkZ2I5Rmt3TVNFM05qY0ZBeU1UTXdNaEF5RUJGaFlIQnlNM05pY21KeWNIQXlNVEp5Y2lCZ2NIQVJjVElRSUtIQjFmL3BCUHRieTJWQUxCeEFPay9veXVwQlladGhrSEFncTFOUkZQdFZRRFI0R1VGeGtCOVFuci9wK3FzMm9EL2p3RU92NGlBZDcrSFEza3dxU2xQVE9vQndJVy9sQUJ2QWdDaVpta0Fsd0JBVWNBQXYvTy9rZ0VJUWVJQUMwQU5nQ0dBTEF6TDdBQVJWaXdDUzhic1FrY1BsbXdBRVZZc0I0dkc3RWVFajVac0FCRldMQVlMeHV4R0JBK1diQUpFTElJQVFvcldDSFlHL1Jac0JnUXNDM1FzQzB2c2l3QkNpdFlJZGdiOUZteUVDd3RFUkk1c0JnUXNpUUJDaXRZSWRnYjlGbXlEek1CWGJBekVMQTIwTEEyTDdRUE5oODJBbDJ5TGpNMkVSSTVzRERRc0RBdk1ERUJNalkzTmlZbkp5VTNCUjRDQndZRkZoWUhEZ0lqSndZR0J3WVhCeVltTnpZMk16TXlOamMySmljbk53RTNOeGNCSXdNMUZ3R3prNzhRREhCekQvN0xHd0VlZXNOaENCSCs3bXBrQ1FxTDdJMDBVVmtHRUk1UmJXc0RCYjJwSUl6QUR3NkdrWlViQVp1eG9BSCs0bS9ObGdNMmczcGhlUWtCQVpnQkEyT3FjZFZ3TEs1eGdzVnJBUU0vTm05RWVqbWhXMzZKbW4xNWhRVUJtQU9tcUFNTi91OEJFQTRDQUFML3l2NUlBNWdHTWdBb0FERUFud0N3TGkrd0FFVllzQWd2RzdFSUdENVpzQUJGV0xBYkx4dXhHeEkrV2JBQVJWaXdGUzhic1JVUVBsbXdDQkN5QndFS0sxZ2gyQnYwV2JBVkVMQW8wTEFvTDdJdktBRmRzdjhvQVYyeWp5Z0JjYksvS0FGZHNzOG9BWEd5WHlnQmNySW5BUW9yV0NIWUcvUlpzZzhuS0JFU09iQVZFTEloQVFvcldDSFlHL1Jac0M0UXNERFFzREF2dEE4d0h6QUNYYklwTGpBUkVqbXdLOUN3S3k4d01RRXlOamMySmljbE53VVdGZ2NHQmdjV0ZnY0dCQ01qQmdjR0Z3Y21KamMyTmpNeU5qYzJKeWMzQVRjM0Z3RWpBelVYQVlpSG1Rc0paMjMrenh3QkdMVFBDQVZuZGxaVEJBaisrOVFpbnhFUWpsSm5jUVFGdXJpTW1Rc1YrS1FiQVQ2eG53SCs0bS9ObHdKb1ZsTS9UUU1CbVFFRnBJSkpkak1qZGt1WXN3VnphMGw1TnFGZWZZcGZVWllHQVpnREhxZ0REZjd2QVJBT0FnQURBR24vNlFUOEJjZ0FFZ0FiQUNRQVpySUlKU1lSRWptd0NCQ3dGTkN3Q0JDd0hkQUFzQUJGV0xBSkx4dXhDUncrV2JBQVJWaXdBQzhic1FBUVBsbXdDUkN5RXdFS0sxZ2gyQnYwV2JJV0FBa1JFamw4c0JZdkdMQUFFTEljQVFvcldDSFlHL1Jac0JZUXNpQUJDaXRZSWRnYjlGa3dNUVVtQWljbUVqYzJKQmNXRWhjV0J3Y0dBZ1FUSmdJRElUWTNOaVlCRmpZM0lRWVhGQllDUXRQM0NnVTNSMkFCS0xmVTlna0RDZ3dmd3Y3bk1iSDNPd0wrQ0FJRG1QNmVydlU2L1FJSEFaZ1VCQUVmOUc0QlVJcTd3Z1FFL3VQM1ZGTlUyZjYycFFVM0JmNzUvdnc0UEw3USszTUcvUDQyT2JIUUFBTUFRdi9uQkNBRVV3QVJBQmdBSHdCTkFMQUFSVml3QkM4YnNRUVlQbG13QUVWWXNBMHZHN0VORUQ1WnNoSUJDaXRZSWRnYjlGbXlIQTBFRVJJNWZMQWNMeGl5RmdFS0sxZ2gyQnYwV2JBRUVMSVpBUW9yV0NIWUcvUlpNREVUTmhJMkZ4NENCd2NHQWdZbkxnSTNBUlkyTnlFR0ZnRW1CZ2NoTmlaVUZKdnZqNGkvV0JBQ0ZKenZqb2kvV0JBQmwzaTRPUDJ3REh3QkIzbTNOUUpOQjM0Q0lKNEJCbzhFQkkvOGxoZWQvdjZOQkFTTytKWCtlQVdwc0pEQkF6SURxcUtRdGdBQkFLMEFBQVZMQmNZQUR3QS9BTEFBUlZpd0R5OGJzUThjUGxtd0FFVllzQVl2RzdFR0hENVpzQUJGV0xBTkx4dXhEUkErV2JJQkRROFJFam13QmhDeUNBNEtLMWdoMkJ2MFdUQXhBUmMzQVRZMk14Y0hJeVlIQVNNRE13SUpDRHdCZlVtYmFqTVZDbWhGL2NLbjdjUUJibmVHQXlLcWZRS3JBNVQ3ZUFXd0FBRUFoQUFBQkR3RVVBQVFBRWF5QWhFU0VSSTVBTEFBUlZpd0JTOGJzUVVZUGxtd0FFVllzQkF2RzdFUUdENVpzQUJGV0xBTkx4dXhEUkErV2JJQkRSQVJFam13QlJDeUNnRUtLMWdoMkJ2MFdUQXhBUmMzRXpZek1oY0hKaU1pQndFakF6TUJtZ1FzOEdhc1BEUWtGaE5LT3Y1WWliYXhBVEpYYVFJZTdodVNDWEg4eFFRNkFBQUNBR3IvY3dUNkJqVUFGUUFwQUVnQXNBQkZXTEFMTHh1eEN4dytXYkFBUlZpd0F5OGJzUU1RUGxtd0FOQ3dDeEN3RHRDd0N4Q3lHd0VLSzFnaDJCdjBXYkFZMExBQUVMSWxBUW9yV0NIWUcvUlpzQ0xRTURFRkJ5TTNKZ0luSmpjU0FEYzNGd2NXRWhjVUJ3SUFFd0luQnljM0JnSVBBZ0lYTnhjSE5oSTNOZ0taRzdVYnNNWURBUm95QVR2cUdiVWFyN29DSGpUKzBjZ1B0aFMxRnByTUpCRUpGT1lXdFJlWHhDSWZESUdCSUFFZzRXNmFBU0VCWVI5M0FYb24vdURjZXFMKzZ2NnZBNzhCQXoxaUFXWWkvdm5WY21YK20wWm5BV1luQVFmZXlRQUFBZ0JFLzRnRUxRUzJBQk1BSndCTEFMQUFSVml3QUM4YnNRQVlQbG13QUVWWXNBMHZHN0VORUQ1WnNBQVFzQVBRc0EwUXNBclFzaFFCQ2l0WUlkZ2I5Rm13QUJDeUhRRUtLMWdoMkJ2MFdiQWEwTEFVRUxBbDBEQXhBVGNYQnhZU0J3Y0dBZ2NISnpjbUFqYzNOaElUTmhJMU5DWW5CeWMzQmdZSEJ3WVZGQmMzRndJMkY3VVlvYUlXQWh6L3hSZTFGNTZlRlFNZS9NK0pta3BGRmJVV2NZMFhBZ2VLRnJVRVJYRUJjU2IrMnM0WDIvN2NJR3dCYmlZQkk4b1c0d0VoL0drdkFSYkVaSkFlWXdGa0s4cVJGVE01MEVGbkFRQUFBd0IwLytZR21nZFdBREVBUkFCTUFKa0FzQUJGV0xBV0x4dXhGaHcrV2JBQVJWaXdEUzhic1EwUVBsbXdGaEN3QU5Dd0RSQ3dDTkN5Q3cwV0VSSTVzQllRc2hjQkNpdFlJZGdiOUZtd0RSQ3lId0VLSzFnaDJCdjBXYklqRmcwUkVqbXdLTkN3RnhDd01kQ3dGaEN3UE5Dd1BDK3dOTkN3TkMreU1nSUtLMWdoMkJ2MFdiQTBFTEEzMExBM0w3SkFBZ29yV0NIWUcvUlpzRHdRc0VqUXNFZ3ZzRXpRc0V3dk1ERUJGaFlIQXc0Q0p5WW1Kd1luSmlZM054TTJOelkzQndZREF3WVhGaFlYRmpZM0V6TURCaFlYRmpZM0V6WW5KaVluRXdjbkppUWpJZ1lIQnljM05qWVhIZ01CTmpjM0Z3Y0dCd1UvcTdBWFhCTjh3WHBzb3lPSTI2T3hDZ05mSTNsNXZoTGFNVmtGQWdKUVNteVpGVWU4Umc1bVoyR0dHRjBHQVFKTlNhd0tQa2IrOEV3MlJRa0NmUU1KaFcwd1Y3WmIvZ0JNRHhLYUR4T2JCYThKOThYOXhZblNiZ1FDWFU2eEJBWGh1U1lDVk1seGNBU2VCLzdOL2RVdE1sbHJCQVdNZmdHdC9sTjFqUVFEbFpBQ1F5OHlWV2dHQWNXQkFnWjZPelVTQVNSc2NnSUJHRThZL3BKUlFXQUJaVzlaQUFBREFGTC81UVdtQmZZQUt3QS9BRWNBa2dDd0FFVllzQk12RzdFVEdENVpzQUJGV0xBTUx4dXhEQkErV2JBVEVMQUEwTEFNRUxBSDBMQVRFTElVQVFvcldDSFlHL1Jac0F3UXNoc0JDaXRZSWRnYjlGbXlId3dURVJJNXNDVFFzQlFRc0N2UXNCTVFzRGJRc0RZdnNDM1FzQzB2c2l3Q0NpdFlJZGdiOUZtd0xSQ3dNdEN3TWkreU93SUtLMWdoMkJ2MFdiQXRFTEJFMExCRUw3QkgwTEJITHpBeEFSWVdCd01HQmljbUppY0dKeVltTnhNMk5qY0hCZ01EQndZV0Z4WTJOemN6QndZV0Z4WTJOeE0zTkNjVEJ5NERJeVlHQndjbk56WTJGeDREQVRZM054Y0hCZ2NFZEpxWUVpb2IyYVJpamlGOXZKaWVFeXdkMTY0UnVTY3BBd05DUVZ1REVTYTBKQXRaVjFKd0V5MEVmTzBLV0ZLeFdDMDFSZ2tDZlFJTGhXMHZWNzVWL2Z4SkRoV2JEaFNZQkVRSjRiTCszOFRkQkFKUFJKb0dBK08xQVMrL3pnU1lCLzd6L3VRdFkyc0NCWGxyN094a2VnSURpSUFCTTBTaERRSEtnUUlYVFJvQk9qVVNBU1J0Y1FJQkdGSVYvb2hRTlcwQlpYSlhBQUFDQUcvLzRnYmpCd01BSWdBcUFIVUFzQUJGV0xBWkx4dXhHUncrV2JBQVJWaXdEeThic1E4Y1BsbXdBRVZZc0NJdkc3RWlIRDVac0FCRldMQUtMeHV4Q2hBK1diQUUwTElJQ2c4UkVqbXdDaEN5RlFFS0sxZ2gyQnYwV2JBZTBMQVpFTEFwMExBcEw3QXEwTEFxTDdJa0Jnb3JXQ0hZRy9SWnNDb1FzQ2ZRc0Njdk1ERUJBd1lHQnlNbUppY0dKeVltTnhNekF3WVhGaFlYRmpZM0V6TURCaFlYRmpZM0V5VTNJUWNoQnlNM0J1TzBHL2F6RG0yYUlJM2JxN1FUdEx5ekJRUUhVa1ZybWhhMHdyTU1YbDVramhXMi9JY1RBeFVTL3I4V3BCWUZzUHZkd09JQkFtQlB1UWdHNTdZRUkvdmNMUzFPV2dNRmlvQUVKUHZjZUlvREE0WjNCQy9vYTJ0OWZRQUFBZ0JQLytZRjN3V3dBQ0FBS0FCZ0FMQUFSVml3Rnk4YnNSY1lQbG13QUVWWXNBZ3ZHN0VJRUQ1WnNBVFFzQmNRc0EzUXNBZ1FzaE1CQ2l0WUlkZ2I5Rm13SE5Dd0Z4Q3dJTkN3RnhDd0o5Q3dKeSt3S05Dd0tDK3lJZ1lLSzFnaDJCdjBXYkFvRUxBbDBMQWxMekF4QVFNR0JpY21Kd1luSmlZM0V6TURCaGNXRmhjV05qY1RNd01HRmhjV05qY1RBVGNoQnlFSEl6Y0YzM3NYM3F1K1JIdSttNThSZXJSNkJBTURSRHhiZ3hKN3Rub0tUMDlWZUJKNi9Oc1VBeFFRL3I0WHBSY0VPdjBvcjgwRUJZK1lCQVRVbndMWi9TWW1Ka0JRQXdSNGF3TGEvU1ptZHdJRGRXMEMyZ0VMYTJ1QWdBQUJBR2IraEFUeUJjZ0FIQUJDQUxBQkw3QUFSVml3Q3k4YnNRc2NQbG13QUVWWXNBSXZHN0VDRUQ1WnNBc1FzQS9Rc0FzUXNoSUJDaXRZSWRnYjlGbXdBaEN5R3dFS0sxZ2gyQnYwV1RBeEFTTVRKaVlDTnpjMkVpUVhGaElISXpZbUp5WUdCZ2NEQnhRV0Z4Y0NXYnRGZ3JKSkZDWWV2UUVKbXQzM0Ryd0xrSTVvdG9RV0tnU05mSHYraEFGdUdMQUJEWlQwdndFbmt3TUUvdlhabktzRUEyN2lpZjd5VHFYRUJBRUFBUUJOL29JRDVBUlNBQmtBUWdDd0FTK3dBRVZZc0Fzdkc3RUxHRDVac0FCRldMQUNMeHV4QWhBK1diQUxFTEFQMExBTEVMSVNBUW9yV0NIWUcvUlpzQUlRc2hnRENpdFlJZGdiOUZrd01RRWpFeTRDTnpjK0FoY1dGZ2NuTmlZbkpnSUhCaFlYRndIcHRVWnBpam9PQkJPWDVZaWx5UWlxQm10Zm1jc0NBMnBtYnY2Q0FYSVpsT0tDSzVyK2lnUUUzcWdCWllrRUJ2N2I1SWlqQmdFQUFBRUFRQUFBQkxnRlBnQVRBQk1Bc0E0dnNBQkZXTEFFTHh1eEJCQStXVEF4QVJjSEp3TWpBU2MzRndFbk54Y1RNd0VYQnljQ0xQeFMvT3F3QVNYN1V2NEJEZjFVL1BLcy90VC9WZm9CdDZ4eXFmNitBWldyY3FvQmRhdDBxZ0ZNL21HcmNha0FBQUg4NkFTbS85QUYvQUFIQUJFQXNBQXZzZ01HQ2l0WUlkZ2I5Rmt3TVFFSEp6Y2hOeGNIL2FFWG9pb0NDeEtoSmdVamZRSHBiQUhZQUFBQi9Rc0ZGdi9xQmhRQUV3QXJBTEFTTDdBTjBMQU5MN0lGQWdvcldDSFlHL1Jac0JJUXNBclFzQklRc2hNQ0NpdFlJZGdiOUZrd01RRStBeGNXRmdjSEp6YzJKeVlHQmdjSE4vMDhRSGh1ZHoxbGJ3VURlZ0lJWUN4VStrTktEQVdWQVNrdEtBRUJiMlluQVJSa0JBRVNaUVVCZndBQUFmNFhCUlgrNUFaWEFBVUFEQUN3QVMrd0JkQ3dCUzh3TVFFM013Y1hCLzRYRks4YkpVMEY1WEtYY2prQUFBSCtPd1VYLzFFR1Z3QUZBQXdBc0FNdnNBRFFzQUF2TURFQkp6YzNNd2YrZ2tkUUZiRVlCUmRJZVgrRUFBQUkramord2dHVUJiRUFDd0FYQUNNQUx3QTdBRWNBVXdCZkFIb0FzRDh2c0VzdnNGY3ZzRE12c0FCRldMQURMeHV4QXh3K1diSUpDd29yV0NIWUcvUlpzRDhRc0EvUXNEOFFza1VMQ2l0WUlkZ2I5Rm13RmRDd1N4Q3dHOUN3U3hDeVVRc0tLMWdoMkJ2MFdiQWgwTEJYRUxBbjBMQlhFTEpkQ3dvcldDSFlHL1Jac0MzUXNETVFzamtMQ2l0WUlkZ2I5Rmt3TVFFMk5oY1dGaFVuTmlNbUJ3RTJOaGN5RmhVbk5pTW1Cd00yTmpNV0ZoVW5OaU1pQndFMk5oY1dGaFVuTmlNaUJ3RTJOaGNXRmhVbk5pTW1Cd0UyTmhjV0ZoVW5OaU1tQndFMk5oY1dGaFVuTmlNaUJ3TTJOaGNXRmhVbk5pTWlCLzJUQ25GYldHbHNCVkZUSFFHZkNYRmFXR3BzQlZKU0d4RUljVnRZYUdzRlVWTWQvbnNJYzFoWWFHc0ZVVlVhL1RFS2NWdFlhR3NGVVZJZS9rSUtjMXBZYVd3RlVWUWIvcEFKY0Z0WWFHc0ZVbFFiSmdoeldWaHBiQVZTVXhzRTgxbGxBUUZtV0FGbUFtYis2bGhtQVdsV0FXWUNadjRJVldjQlpWZ0JabVQ5K0ZkbkFnRmxXQUZtWlA3aldXVUJBbVZZQVdZQ1pnVVpXV1VCQW1WWUFXWUNadjRJV0dVQkFXVllBV1prL2ZoWFp3SUJaVmdCWm1RQUNQcFAvbU1CVXdYR0FBUUFDUUFPQUJNQUdBQWRBQ0lBSndBNUFMQWhMN0FTTDdBTEw3QWJMN0FtTDdBQVJWaXdCeThic1FjY1BsbXdBRVZZc0JZdkc3RVdHajVac0FCRldMQUNMeHV4QWhJK1dUQXhCUmNESXhNVEp4TXpBd0UzQlFjbEJRY2xOd1VCTnlVWEJRRUhCU2NsRXljRE54TUJGeE1IQS8zRkRheGxmNkVOcTJSK0Fhd0xBVGNSL3NEN2pncit5UkVCUUFQTkF3Rk1QZjdOL0dnRC9yVStBVFJwRVYxRGxBS3pFRjVGa2pvUy9xOEJZQVNpRUFGUi9xSCtFUXAvWEVVOENuOWJSQUd1RVpsTnYveU5FcGxPdndMbEFnRlBQdjdRL09ZQy9ySS9BUzhBQUFJQUx2LzhBOE1HY1FBU0FCc0FkTElRSEIwUkVqbXdFQkN3RmRBQXNBQkZXTEFOTHh1eERSdytXYkFBUlZpd0VTOGJzUkVjUGxtd0FFVllzQWt2RzdFSkVENVpzQkVRc2dBQkNpdFlJZGdiOUZteUFnMEpFUkk1c0FJdnNBQVFzQXZRc0F6UXNBSVFzaE1CQ2l0WUlkZ2I5Rm13Q1JDeUZBRUtLMWdoMkJ2MFdUQXhBU0VERnhZV0J3WUdKeUVUSXpjek56TUhJUUVERnpZMk56WW1Kd0w5L3NsaC9hVzhEQTc3dGY0MTRyb2J1U0sySWdFNC9qTk4vMmlPREExWFZnVVkvZElCQnNTZXNOVUVCUmlZd2NIOG92NUZBZ0o3YVZ0M0JBQUNBRG9BQUFUdUJiQUFEd0FjQUUyeUR4MGVFUkk1c0E4UXNCalFBTEFBUlZpd0JDOGJzUVFjUGxtd0FFVllzQUV2RzdFQkVENVpzaGNFQVJFU09iQVhMN0lBQVFvcldDSFlHL1Jac0FRUXNoVUJDaXRZSWRnYjlGa3dNUUVESXhNRkhnSUhCZ2NYQnljR0l3RTJOelltSnlVRElUSTNKemNCV21POS9RSDlpYzFrRGhLRFluTnFnS2dCT0RVTkVvWisvcWhqQVR4ZVdsVjBBanI5eGdXd0FRUnR4SCs2ZTVCZW1EWUJHMDFYZnBZRUFmM0ZINEJkQUFBQy85ZitZQVA5QkZJQUZRQW1BRzZ5SWljb0VSSTVzQ0lRc0FmUUFMQUFSVml3RUM4YnNSQVlQbG13QUVWWXNBd3ZHN0VNR0Q1WnNBQkZXTEFLTHh1eENoSStXYkFBUlZpd0J5OGJzUWNRUGxteUNSQUhFUkk1c2c0UUJ4RVNPYkFRRUxJYUFRb3JXQ0hZRy9SWnNBY1FzaDhCQ2l0WUlkZ2I5Rmt3TVFFR0J4Y0hKd1luSmljREl3RTNCellYRmhZWEZnY25OelltSnlZSEF4WVhNamNuTnhjMk53UDBJSTFYZEZOcFpiaGtZYlVCQktRVWhydWJzQVVCQjdjR0EyOXJuWEpiTzVwRVZFNTBSVWdYQWhmeG5ZTmVlemdDQW52OTlnWGFBWG1RQkFUZ3drQThBVlNMb2dRRW1mMzVqUVFwZUY1b2I0MEFBQUVBTlFBQUJNMEhBQUFKQURXeUF3b0xFUkk1QUxBSUw3QUFSVml3Qmk4YnNRWWNQbG13QUVWWXNBUXZHN0VFRUQ1WnNBWVFzZ0lCQ2l0WUlkZ2I5Rmt3TVFFakZTRURJeE1oRXpNRWhBUDlVT0c3L0FLeVBLNEZHQWI2N2dXd0FWQUFBUUFrQUFBRHRBVjJBQWNBTGdDd0JpK3dBRVZZc0FRdkc3RUVHRDVac0FCRldMQUNMeHV4QWhBK1diQUVFTElBQVFvcldDSFlHL1JaTURFQklRTWpFeUVUTXdOai9oaWh0cndCNkRpMEE2SDhYd1E2QVR3QUFBRUFRLzdlQktVRnNBQVdBRnV5QXhjWUVSSTVBTEFLTDdBQVJWaXdGUzhic1JVY1BsbXdBRVZZc0JNdkc3RVRFRDVac0JVUXNnQUJDaXRZSWRnYjlGbXlBeFVURVJJNXNBTXZzQW9Rc2dzRENpdFlJZGdiOUZtd0F4Q3lFUUVLSzFnaDJCdjBXVEF4QVNFREZ4WVdFZ2NDQUFjM05qWTNOaVluSndNakV5RUVpZjFZVWFTbTZtb1JIUDdrNnc2VHRSY1dwNit6ZEwzOUEyVUZFdjR2QVFTTy93Q24vdjMrM2dTU0E4N0h3OUlCQWYxaEJiQUFBUUFrL3VFRGVnUTZBQllBVzdJTUZ4Z1JFamtBc0FvdnNBQkZXTEFWTHh1eEZSZytXYkFBUlZpd0V5OGJzUk1RUGxtd0ZSQ3lBQUVLSzFnaDJCdjBXYklDRlJNUkVqbXdBaSt3Q2hDeUN3RUtLMWdoMkJ2MFdiQUNFTElTQVFvcldDSFlHL1JaTURFQklRTVhIZ0lIQmdJSEp6WTJOelltSnljREl4TWhBMS8rSERGamg4MWtEUkgyc2lSNW5oQVBpbjk2VkxhOEFwb0RvZjdrQVFSNDA0U3AvdjhtbGlDZGY0bWlCQUgrSFFRNkFBRUFOZ0FBQlVnRnNBQVVBR0lBc0FCRldMQUFMeHV4QUJ3K1diQUFSVml3REM4YnNRd2NQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFLTHh1eENoQStXYkFQMExBUEw3SXZEd0Zkc3M4UEFWMnlDQUVLSzFnaDJCdjBXYklCQ0E4UkVqbXdCZEN3RHhDd0V0QXdNUWtDSXdNakJ5TTNJd01qRXpNRE14TXpBek1CQlVqOS9BRW80T0pTSzVFc1pISzgvTDF3WkMyUkxrVUJxUVd3L1VUOURBS085UFQ5Y2dXdy9YOEJBUDhBQW9FQUFBRUFMUUFBQkpNRU9nQVVBSHNBc0FCRldMQU5MeHV4RFJnK1diQUFSVml3RkM4YnNSUVlQbG13QUVWWXNBb3ZHN0VLRUQ1WnNBQkZXTEFETHh1eEF4QStXYkFLRUxBTzBMQU9MN0tmRGdGZHN2OE9BVjJ5bnc0QmNiUy9EczhPQWwyeUx3NEJYYkp2RGdGeXNna0JDaXRZSWRnYjlGbXlBUWtPRVJJNXNBWFFzQTRRc0JMUU1ERUpBaU1ESndjak55TURJeE16QXpNM013YzNBUVNUL2xjQkJkbTdNaWVSSTJGUXRyeTJVV0Vta1NzbkFVc0VPdjMwL2RJQnpRSER3djR6QkRyK050WFhBUUhMQUFFQXV3QUFCc3dGc0FBT0FHc0FzQUJGV0xBR0x4dXhCaHcrV2JBQVJWaXdDaThic1FvY1BsbXdBRVZZc0FJdkc3RUNFRDVac0FCRldMQU5MeHV4RFJBK1diSUlCZ0lSRWptd0NDK3lMd2dCWGJMUENBRmRzZ0VCQ2l0WUlkZ2I5Rm13QmhDeUJBRUtLMWdoMkJ2MFdiSU1BUWdSRWprd01RRWpBeU1USVRjaEF6TUJNd0VCSXdPRnNYRzk0djR6R3dLSmI0a0NYUGY5WWdHOTJBS08vWElGR0pqOWZnS0MvVGI5R2dBQkFIUUFBQVdNQkRvQURnQ0FBTEFBUlZpd0JpOGJzUVlZUGxtd0FFVllzQW92RzdFS0dENVpzQUJGV0xBQ0x4dXhBaEErV2JBQVJWaXdEUzhic1EwUVBsbXdBaEN3Q2RDd0NTK3lud2tCWGJML0NRRmRzcDhKQVhHMHZ3blBDUUpkc2k4SkFWMnlid2tCY3JJQUFRb3JXQ0hZRy9SWnNBWVFzZ1FCQ2l0WUlkZ2I5Rm15REFBSkVSSTVNREVCSXdNakV5RTNJUU16QVRNQkFTTUM4b3BRdHFMK2NCd0NSRkJ1QWJEcS9md0JYTllCemY0ekE2R1ovallCeXYzdi9kY0FBQUVBT2dBQUIrQUZzQUFOQUY0QXNBQkZXTEFDTHh1eEFodytXYkFBUlZpd0RDOGJzUXdjUGxtd0FFVllzQVl2RzdFR0VENVpzQUJGV0xBS0x4dXhDaEErV2JBQjBMQUJMN0l2QVFGZHNBSVFzZ1FCQ2l0WUlkZ2I5Rm13QVJDeUNBRUtLMWdoMkJ2MFdUQXhBU0VUSVFjaEF5TVRJUU1qRXpNQmh3TEdiUU1tRy8yVzRydDEvVGwxdmYyOUF6NENjcGo2NkFLaC9WOEZzQUFCQUNRQUFBV1VCRG9BRFFDYkFMQUFSVml3QWk4YnNRSVlQbG13QUVWWXNBd3ZHN0VNR0Q1WnNBQkZXTEFHTHh1eEJoQStXYkFBUlZpd0NpOGJzUW9RUGxtd0JoQ3dBZEN3QVMreWJ3RUJYYlMvQWM4QkFsMnlQd0VCY2JUUEFkOEJBbkd5RHdFQmNyU2ZBYThCQW5HeS93RUJYYklQQVFGeHNwOEJBVjJ5THdFQlhiUnZBWDhCQW5Ld0FoQ3lCQUVLSzFnaDJCdjBXYkFCRUxJSUFRb3JXQ0hZRy9SWk1ERUJJUk1oQnlFREl4TWhBeU1UTXdGRUFlRlJBaDRiL3BpaXRGRCtIMUMydkxZQ1pRSFZtZnhmQWM3K01nUTZBQUFCQUVMKzNnZHZCYkFBRndCb3NoRVlHUkVTT1FDd0J5K3dBRVZZc0JZdkc3RVdIRDVac0FCRldMQVVMeHV4RkJBK1diQUFSVml3RVM4YnNSRVFQbG15QVJZSEVSSTVzQUV2c0FjUXNnZ0JDaXRZSWRnYjlGbXdBUkN5RGdFS0sxZ2gyQnYwV2JBV0VMSVNBUW9yV0NIWUcvUlpNREVCTXhZQUJ3SUFCemMyTmpjMkppY2pBeU1USVFNakV5RUZBV3I5QVFjYUhQN2s2dzZUdFJjV29xMkJkTHpoL1VuaHZQMEVMd05BQnY3TS8vNzkvdDRFa2dQT3g4RFNCUDFpQlJMNjdnV3dBQUFCQUNUKzRRWkJCRG9BR0FCWEFMQUlMN0FBUlZpd0dDOGJzUmdZUGxtd0FFVllzQlV2RzdFVkVENVpzQkxRc2dBU0dCRVNPYkFBTDdBSUVMSUpBUW9yV0NIWUcvUlpzQUFRc2hBQkNpdFlJZGdiOUZtd0dCQ3lFd0VLSzFnaDJCdjBXVEF4QVJjZUFnY0dCZ2NuTmpZM05pWW5Kd01qRXlFREl4TWhBK0NXaTlkcERoSDFzaVNBbGc4UWtZbXVWTFNoL2g2aHRyd0RUQUtGQVFOMzFJU3MveWFXSXFKNGhLY0VBZjRkQTZIOFh3UTZBQUFDQUhILzR3V3BCY2NBS2dBNUFJRUFzQUJGV0xBZkx4dXhIeHcrV2JBQVJWaXdCQzhic1FRUVBsbXdBTkN5QWdRZkVSSTVzQUl2c0I4UXNBN1FzZzhCQ2l0WUlkZ2I5Rm13QkJDeUZ3RUtLMWdoMkJ2MFdiQUNFTEl0RGdvcldDSFlHL1Jac2hrQ0xSRVNPYklvTFFJUkVqbXdBQkN5S2dFS0sxZ2gyQnYwV2JBZkVMSTBBUW9yV0NIWUcvUlpNREVGSmljR0p5NENKeVkzTnhJQU53Y0dCZzhDRkJZWEZqY21FemMyRWhjZUFoY1dCd2NDQnhZWEFSWVhOaE0zTmljbUp5WUdCd2NHQlJYTm81dWZqZG1DQ3djUEdURUJJZFFTaDdJaEhBT29sVHBNdnlraUovNjZaSkpPQWdFSEpEWDRYblQ5OGdxWjJ6RWdEZ1FMajJpUUhpSUtIUVJGUWdJRGd2Q2FYR0NrQVJvQlRRV2xCZnpkd2xhNTRRSUNFT2NCTnQzNkFUVUZBMjNKZHo4NTZQNnV4UlFDQWJIV2Q1b0JQTTVaVU9NSEJNbkIzRUlBQUFJQVgvL3FCRm9FVlFBbkFESUFnUUN3QUVWWXNCNHZHN0VlR0Q1WnNBQkZXTEFFTHh1eEJCQStXYkFBMExJQ0JCNFJFam13QWkrd0hoQ3dEZEN5RGdFS0sxZ2gyQnYwV2JBRUVMSVdBUW9yV0NIWUcvUlpzQUlRc2lvQkNpdFlJZGdiOUZteUdBSXFFUkk1c2lVcUFoRVNPYkFBRUxJbkFRb3JXQ0hZRy9SWnNCNFFzakFCQ2l0WUlkZ2I5Rmt3TVFVbUp3WW5MZ0luSmhJMk5qY0hCZ1lIQndZV0ZoY1dOeVkzTnpZMkZ4WVdGeFlIQmdjV0Z3RUdGelkyTnpVbUp5WURCQnVsZzRTQ2JxNWtCd2N6Y0tkc0VtQjRFQU1DTG1aSkl6Nk9IUXNhd1pGMWhnTUNGaU9jUTJIK2JoYURURW9MQlZlRUlRMEVOVUlDQVhEU2dIUUJCN2hyQTU0RnpzWTRZSjlXQVFFTXR2Qlp6Zk1GQkw2Z1Q0WGJuUThDQWFqU2VFN2h2eW1xQkFUKzdRQUFBUUNzL3FFR1l3V3dBQk1BV3dDd0VTK3dBRVZZc0Fjdkc3RUhIRDVac0FCRldMQU1MeHV4REJ3K1diQUFSVml3RXk4YnNSTVFQbG13QnhDeUNBRUtLMWdoMkJ2MFdiQUEwTEFIRUxBRjBMQUQwTEFDMExBVEVMSUtBUW9yV0NIWUcvUlpzQTdRTURFQklUY2hOVE1WSVFjaEF5RVRNd016QXlNVElRSVkvcFFhQVdTOEFYNGIvb3ZIQXJqaHZlR1VhNmc5Ky9ZRkdKY0JBWmY3aFFVVCt2SCtBQUZmQUFFQVYvNi9CTWdFT2dBUEFFc0FzQTB2c0FCRldMQURMeHV4QXhnK1diQUFSVml3RHk4YnNROFFQbG13QXhDeUJBRUtLMWdoMkJ2MFdiQUEwTEFQRUxJR0FRb3JXQ0hZRy9SWnNBTVFzQWpRc0FZUXNBclFNREVCSVRjaEJ5TURJUk16QXpNREl4TWhBV0grOWhvQ3NSdnhpQUhpb3JhaWZXU2lPUHpxQTZPWGwvejBBNlA4WGY0b0FVRUFBUURFQUFBRk9RV3dBQmtBVWJJSEdoc1JFamtBc0FCRldMQUFMeHV4QUJ3K1diQUFSVml3REM4YnNRd2NQbG13QUVWWXNBOHZHN0VQRUQ1WnNnWUFEeEVTT1h5d0JpOFlzQW5Rc0FZUXNoVUJDaXRZSWRnYjlGbXdFdEF3TVFFREJoY1dGaGNUTXdNMk54TXpBeU1UQmdjSEl6Y21KamNUQWVKTENRZ01ibXM3a2poaWpueTkvYnh1ZFgwdWtpN1UwaGRMQmJEK04wWTFVRklHQVRiKzBRMGhBcmY2VUFKY0l3enY2Z2ZpMkFISEFBRUFtQUFBQkJvRU93QVlBRW9Bc0FCRldMQVhMeHV4RnhnK1diQUFSVml3REM4YnNRd1lQbG13QUVWWXNBRXZHN0VCRUQ1WnNoRUJEQkVTT1h5d0VTOFlzZ2NCQ2l0WUlkZ2I5Rm13Qk5Dd0VSQ3dGTkF3TVNFakV3WUhCeU0zSmlZM0V6TURCaGNXRnhNekF6WTNFek1EWHJaS05HVWNraHlXbVJJeXRUUUZBUU43TnBNMFBWcGh0Z0dKRHcySWh4TFVyUUU4L3NNcktJc2RBUmorNlFnVEFoc0FBUURzQUFBRllnV3dBQklBUHdDd0FFVllzQUl2RzdFQ0hENVpzQUJGV0xBU0x4dXhFaEErV2JBQVJWaXdDaThic1FvUVBsbXlCUklDRVJJNXNBVXZzZzhCQ2l0WUlkZ2I5Rmt3TVRNVE13TTJGeFlXQndNakV6WW5KaWNtQndQcy9ieHZzY25lMUJkTXZFc0lDQmpQb2VCOUJiRDlwRGNDQk9yVS9qa0J5RVUyb1FZRE52MUpBQUlBaXYvckJjVUZ5QUFqQUM0QVZ3Q3dBRVZZc0JFdkc3RVJIRDVac0FCRldMQUFMeHV4QUJBK1diSWxBQkVSRWptd0pTK3lGd0VLSzFnaDJCdjBXYkFGMExBbEVMQU4wTEFBRUxJZUFRb3JXQ0hZRy9SWnNCRVFzaW9CQ2l0WUlkZ2I5Rmt3TVFVbUpnSTNOeVltTnhjR0Z4WVhOeElBRnhZU0Z4WUhCeUVIQmhjV0ZoY1dOamNYQmdFbE5qYzJKaWNtQmdjSEEzT3IrbTBiRTRXQUM1TUVBd3ByRkU0QlBOako1QVVCRFJEOG5nOE1DeENvaTE2cVZTS0EvZUFDcXc0Q0E0cUVqZE04RHhVQnBRRWZxMmNheHBnQ0tDUjJLMHdCQ2dFbkJRVCs5dTFhVW1SZVdsT0dtZ01DTGlXUVlBTlhBazQ4b2JFRUJNclFPZ0FBQWdBSC8rb0VSd1JUQUI4QUtRQmVBTEFBUlZpd0R5OGJzUThZUGxtd0FFVllzQUF2RzdFQUVENVpzaVFBRHhFU09iQWtMN1MvSk04a0FsMnlGUUVLSzFnaDJCdjBXYkFGMExBa0VMQU0wTEFBRUxJWkFRb3JXQ0hZRy9SWnNBOFFzaUFCQ2l0WUlkZ2I5Rmt3TVFVdUFqYzNKaVkzRndjR0Z6WWtGeFlXRnhZSEJ5RUdGaGNXTmpjWEJnWVRKZ1lIQlRjMkp5WW1BbENGeTFjWEJHQmRCNDhFQXo5R0FSaXBwcjBHQWdnTS9UMFRoSDlja1Qxb1NOd0ZiYTAwQWc0RUNBY0xhUlFDa1BDSkV4NnJoZ0UzWGkzUTdRVUUyTFpBUVZPWXlnTUNVVUZZYUdrRHpRV2Rud0lTTlRSVVp3QUFBUUExL3RNRlJBV3dBQllBWGJJVkZ4Z1JFamtBc0E0dnNBQkZXTEFDTHh1eEFodytXYkFBUlZpd0JpOGJzUVljUGxtd0FFVllzQUF2RzdFQUVENVpzZ1FBQWhFU09iQUVMN0FJMExBT0VMSVBBUW9yV0NIWUcvUlpzQVFRc2hZQkNpdFlJZGdiOUZrd01UTWpFek1ETXdFekFSWVNCd0lBQnpjMk5qYzJKaWNsOHIzOXZXMTRBbC9yL1pEVDJCZ2EvdDdxQzVLMUZ4YWpyZjcxQmJEOWp3SngvWVFZL3MvcS92Mysyd2FhQXMzRXdOTUJBUUFCQUMzKytnUldCRG9BRmdCakFMQUdMN0FBUlZpd0VpOGJzUklZUGxtd0FFVllzQlV2RzdFVkdENVpzQUJGV0xBUEx4dXhEeEErV2JBVDBMQVRMN1MvRTg4VEFsMnlMeE1CWGJML0V3RmRzQURRc0FZUXNnY0JDaXRZSWRnYjlGbXdFeEN5RGdFS0sxZ2gyQnYwV1RBeEFSWVdCd1lHQnljMk5qYzJKaWNuQXlNVE13TXpBVE1DYktPcUVCSHpzU1IvbHcwUGpKT3dVTGE4dGxGUUFjN3FBbUFnNktLbDhpV1dINXB2ZjVBRkFmNHpCRHIrTmdIS0FBQUJBRVArUndWdEJiQUFGQUJtQUxBSUw3QUFSVml3QUM4YnNRQWNQbG13QUVWWXNBTXZHN0VESEQ1WnNBQkZXTEFTTHh1eEVoQStXYklCRWdBUkVqbDhzQUV2R0xJZkFRRnh0R0FCY0FFQ1hiS1FBUUZkc0FnUXNnMEJDaXRZSWRnYjlGbXdBUkN5RVFFS0sxZ2gyQnYwV1RBeEFRTWhFek1CQmdZbklpYzNGak15TnhNaEF5TVRBZnh5QXJWenUvNzVHY0tWTGtrZU9DaU1JM2o5UzIrOS9RV3cvVzRDa3ZuOHJiZ0NGSmtSMGdMSy9YOEZzQUFBQVFBay9rY0VLd1E2QUJRQWZnQ3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQURMeHV4QXhnK1diQUFSVml3Q0M4YnNRZ1NQbG13QUVWWXNCSXZHN0VTRUQ1WnNBSFFzQUV2c204QkFWMjB2d0hQQVFKZHN2OEJBVjJ5RHdFQmNiS2ZBUUZkc2k4QkFWMnlQd0VCY2JBSUVMSU5BUW9yV0NIWUcvUlpzQUVRc2hFQkNpdFlJZGdiOUZrd01RRURJUk16QXdZR0p5SW5OeFl6TWpjVElRTWpFd0dXVWdIaFVyVEhGcjZXTEVzZk5TdU1JMXIrSDFDMnZBUTYvaXNCMWZ0dHA3a0NGSklRMHdJYy9qSUVPZ0FDQUZILzZRVXFCY1lBR2dBa0FGNnlHaVVtRVJJNXNCb1FzQnpRQUxBQVJWaXdBQzhic1FBY1BsbXdBRVZZc0Frdkc3RUpFRDVac2c4QUNSRVNPYkFQTDdBQUVMSVZBUW9yV0NIWUcvUlpzQWtRc2hzQkNpdFlJZGdiOUZtd0R4Q3lId01LSzFnaDJCdjBXVEF4QVJZRUVnY0hCZ0lFSnlZbUFqYzNCVGMySnlZbUp5WUhKelkyQXhZMk53VUhCaGNXRmdNQXVBRUJjUm9NSGREKzNhV3Y3R01hRkFQUUF4VUpENzJZcHNvalJOUW9wZnRIL09nSER3b1FwQVhEQXJQK3ZzWlZ6djZ3cWdNRXB3RXR2M3dEREdOZ25Ma0RBMWFSTHpiNnd3WDE4Z0VqV1ZDQmtRQUFBUUE4LytjRWV3V3dBQnNBWmJJWkhCMFJFamtBc0FCRldMQUNMeHV4QWh3K1diQUFSVml3REM4YnNRd1FQbG13QWhDeUFBRUtLMWdoMkJ2MFdiSUVBQUlSRWpteUJRSU1FUkk1c0FVdnNBd1FzQkRRc0F3UXNoTUJDaXRZSWRnYjlGbXdCUkN5R1FNS0sxZ2gyQnYwV1RBeEFTRTNJUWNCRmhZSERnSW5KaVkzTXdZV0Z4WTJOelltSnljM0EzejlrUndEVWhmK0k3VEVEZ3VROG8yKzNReTZDSHR1Zzc4UUVZS0xsQndGRXA2Ry9pUVE1cnFEeUd3REJPeTZkSk1FQkpaL2pKSUVBYUFBQUFILy9QNXhCRFVFT2dBYUFHR3lCUnNjRVJJNUFMQUxMN0FBUlZpd0FpOGJzUUlZUGxteUFBRUtLMWdoMkJ2MFdiSUVBQUlSRWpteUdnc0NFUkk1c0JvdnNBWFFzQXNRc1E4S0sxallHOXhac0FzUXNoSUJDaXRZSWRnYjlGbXdHaEN5R1FFS0sxZ2gyQnYwV1RBeEFTRTNJUWNCRmhZSEJnUW5KaVkzTXdZV0Z4WTJOelltSnljM0F5ejlvaHNEVEJYK0o3Uy9EaEgrMWRxOTNReTBDSHh3aHNNUEVJaUtsQnNEb1psLy9oWVM0clhFOHdRRTdMaHptQVFFbTM2TmtBUUJvUC8vLy9qK1JRVG5CYkFBSmdDd1FnQUFKZ0hldVVBQUJ3R3ZBT2tBQVAvLy8rbitSUVBRQkRvQUpnRHJUUUFBSmdIZW00NEJCd0d2QU5vQUFBQUlBTElBQ1FGZE1ERUFBZ0F4QUFBRTRRV3dBQW9BRXdCUXNnUVVGUkVTT2JBRUVMQU4wQUN3QUVWWXNBRXZHN0VCSEQ1WnNBQkZXTEFETHh1eEF4QStXYklBQVFNUkVqbXdBQyt3QXhDeUN3RUtLMWdoMkJ2MFdiQUFFTElNQVFvcldDSFlHL1JaTURFQkV6TURKU1ltTnpZa014TVRKU0lHQndZV0Z3UEFZNzc5L2Z2SjVSRVJBUzdmNG1QK3RvMi9FUkI2ZXdOekFqMzZVQUVHNjhQTjh2MHBBamdCbW9SM25RWUFBZ0F5Ly80R013V3dBQmNBSUFCYXNoZ2hJaEVTT2JBWUVMQUgwQUN3QUVWWXNBZ3ZHN0VJSEQ1WnNBQkZXTEFYTHh1eEZ4QStXYklHRndnUkVqbXdCaSt3RnhDeUdBRUtLMWdoMkJ2MFdiQUswTElRQmhjUkVqbXdCaEN5R2dFS0sxZ2gyQnYwV1RBeEpTWW1OellrTXdVVE13TVhOalluSmljWEZoY1dBZ1luSlJNbElnWUhCaFlYQWVMTjR4RVRBU3ZpQVdCa3ZlSkxqWjRGQWhPdkR3Z1BjK1dUL3Y1aS9yYU13QkVRZlhnQkNPMi96ZklCQWozNjZ3RUM1OUZTVUFGUlVLdis2NVlDblFJNEFacUVlWjBFQUFBQ0FFei81Z1pCQmhnQUl3QXpBSUN5QmpRMUVSSTVzQVlRc0NUUUFMQUFSVml3Qnk4YnNRY2VQbG13QUVWWXNBUXZHN0VFR0Q1WnNBQkZXTEFlTHh1eEhoQStXYkFBUlZpd0dpOGJzUm9RUGxteUJnUWVFUkk1c2c0QkNpdFlJZGdiOUZteUZBUWVFUkk1c2h3RUhoRVNPYkFFRUxJbUFRb3JXQ0hZRy9SWnNCNFFzaThCQ2l0WUlkZ2I5Rmt3TVJNMkVqWVhGaGNUTXdNR0Z4WVdGeFlTRXpZbk54WVhGZ0lFSnlZbkJpY21KaWNtTndFbUp5WUdCd2NHRnhZV0Z4WTJOemRWRll6TGdLNWRiYlhQQkFRRlFqbWp4Z2dDRUtnTkF3ZUkvdjJtN2kyTHpKZXhCd01HQXVJL2tJaTJIZ01IQXdWcllWZURNd1lDQXJJQkZvY0RCSUFDVHZ0QUpDVS9TZ01KQVVFQkltTmtBV1JqMS82Z3Z3TUZzYnNFQXRTMVBUc0JRb0FFQmQvVEZEdy9iWDhEQTFOQ1B3QUFBUUN0LytnRnFnV3dBQzBBWEFDd0FFVllzQTR2RzdFT0hENVpzQUJGV0xBcUx4dXhLaEErV2JJRkxnNFJFam13QlMreUJBRUtLMWdoMkJ2MFdiQU9FTElOQVFvcldDSFlHL1Jac2hVRUJSRVNPYkFxRUxJZEFRb3JXQ0hZRy9SWnNpTXFEaEVTT1RBeEFUWW1KeWMzRnpJMk56WW1KeVUzQlJZWEZnY0dCUllXRnhZSEJoWVhGallTTnpZbk14WVhGZ0lHSnlZbU53S0JDV05qeVJ5Q29iZ1FEWHVBL3BrY0FUbjdjbDhQRmY3MVJsSUdCQXdIT3o5ZGtGY0dBeEN2REFRR2d2Q2ZqNWNJQVhWMmh3VUNuZ0dGaEhKOEJBR2VBUUYvYXFqbmNCOTZVVFI1UjF3RUJZUUJGOEJqWkdSajF2NmZ2d0lDcUpzQUFBRUFhUC9qQkxnRU9nQW5BRmtBc0FCRldMQWVMeHV4SGhnK1diQUFSVml3RGk4YnNRNFFQbG15QWdFS0sxZ2gyQnYwV2JJSERoNFJFam15RmlnZUVSSTVzQll2c2hVQkNpdFlJZGdiOUZtd0hoQ3lIUUVLSzFnaDJCdjBXYklsRlJZUkVqa3dNU1VHRnhZMk56WW5GeFlYRmdJR0p5WW1OemMySnljM0Z6STJOelluSlRjWEZoWUhCZ2NIRmdjQ2tRaFNhcFlZR2lpcER3a1NjZVdRZlgwR0NBdXgyQm1yZFl3S0ZkVCs5eFQ0dDhjS0NKayttQS9UVXdRRm9wQ2VuUUZPVHB6KzJhRURBbnh5VFl3S0FaWUJXVkdmQ3dHV0FRV2xqb2xQSFRpeUFBQUJBSy8rMWdPVkJhOEFKd0JXQUxBYkw3QUFSVml3Q2k4YnNRb2NQbG13QUVWWXNCNHZHN0VlRUQ1WnNnRW9DaEVTT2JBQkw3SUFBUW9yV0NIWUcvUlpzQW9Rc2drQkNpdFlJZGdiOUZteUVRQUJFUkk1c0I0UXNSY0tLMWpZRzl4Wk1ERVROeGN5TmpjMkppY2xOeGNXRmdjR0JnY1dGeFlQQWpjSEJnY25OamNqSmljbU56YzJKaWV2RzVPbnZBOE5lNEQrNkJ2dTNlVVJDNG1Fa0JBRUJ4Y0dxaGNrdVdoWEwyQWhCUVFJRmcxbmFnSjVsd0dMZ1hpQUJBR1hBUUhZdkhHbk8wQ3JNeldJR0FHTjNaUk1aM2NyUnlVL25IT09CQUFBQVFDZy9zWURkZ1E2QUNNQVZnQ3dHaSt3QUVWWXNBb3ZHN0VLR0Q1WnNBQkZXTEFkTHh1eEhSQStXYklCSkFvUkVqbXdBUyt5QUFFS0sxZ2gyQnYwV2JBS0VMSUpBUW9yV0NIWUcvUlpzaEVBQVJFU09iQWRFTEVXQ2l0WTJCdmNXVEF4RXpjWE1qWTNOaVluSlRjRkZoWUhCZ1lIRmhjV0J3YzNCd1lISnpZM0l5WTNOellub0JuRWRvNExDbUZuL3VBYkFRaTF4d29GYTNKM0VBVUdESnNXSXJ4blhpeGNLUVlSRDdFQnVKY0JXRk5SVmdNQmxnRUZwWTVRZWkwdGZpa29Td0dPMjVWTWMzc3JWSStmQ1FBQUFmL2YvK1VIT3dXd0FDUUFZcklqSlNZUkVqa0FzQUJGV0xBT0x4dXhEaHcrV2JBQVJWaXdJUzhic1NFUVBsbXdBRVZZc0FZdkc3RUdFRDVac0E0UXNnQUJDaXRZSWRnYjlGbXdCaEN5Q0FFS0sxZ2gyQnYwV2JBaEVMSVZBUW9yV0NIWUcvUlpzaHNPQmhFU09UQXhBU0VEQndJQ0J5TTNOelkyTnpjVElRTUdGeFlXRnhZU0V6WW5OeFlYRmdJRUp5WW1Od1NBL2l0M0p6L3R0MHNSTTM2ZEt4bVFBMGU4QkFRRlFUZWZ3d2dDRWE4TkF3ZUovdjJrb0owUkJSTDkzYnorMi83MkJKd0RETjN3amdLcSs2a2pKRDVKQXdrQlBRRWhZMlFCWkdQWi9xREFCQWJDcVFBQUFmL2EvK1VHQlFRNkFDUUFZcklBSlNZUkVqa0FzQUJGV0xBT0x4dXhEaGcrV2JBQVJWaXdJUzhic1NFUVBsbXdBRVZZc0FZdkc3RUdFRDVac0E0UXNnQUJDaXRZSWRnYjlGbXdCaEN5Q1FFS0sxZ2gyQnYwV2JBaEVMSVZBUW9yV0NIWUcvUlpzaG9oRGhFU09UQXhBU0VEQndZR0J5TTNOelkyTnpjVElRTUdGeFlXRnhZU0V6WW5NeFlYRmdJR0p5WW1Od05SL3NkU0ZqVytsVTRUSm1SK0lBMWlBcHg3QXdNRlF6ZUpvUVVCRWFnTkJRaDU1SkNiblJFRG9mNk9iUExPQTZJQ0JxbkRTZ0hhL1I0akpVQk5BUVlCSmdFRVhsNWVYc1QrczdBRUJNQ3NBQUFCQUR2LzVnYzhCYkFBSGdCN0FMQUFSVml3R3k4YnNSc2NQbG13QUVWWXNCNHZHN0VlSEQ1WnNBQkZXTEFZTHh1eEdCQStXYkFBUlZpd0VpOGJzUklRUGxteUJnRUtLMWdoMkJ2MFdiSUxFaDRSRWptd0dCQ3dITkN3SEMreS94d0JYYkpmSEFGZHNzOGNBVjJ5THh3QlhiSWZIQUZ4c2s4Y0FYR3lGd0VLSzFnaDJCdjBXVEF4QVFNR0Z4WVdGeFlTRXpZbk54WVhGZ0lFSnlZbU54TWhBeU1UTXdNaEV3Vll1Z01EQlVJMW44UUdBaEd3RFFRSGlmNytwcHljRFMvOVdHKzkvYjF6QXFoeUJiRDdweU1rUGtrQkNBRS9BUjVqWkFGa1k5ditvOEFEQk1TcEFTZjlmd1d3L1c0Q2tnQUJBQ1AvNXdZWEJEb0FIZ0NMQUxBQVJWaXdCUzhic1FVWVBsbXdBRVZZc0Fndkc3RUlHRDVac0FCRldMQWJMeHV4R3hBK1diQUFSVml3QWk4YnNRSVFQbG13QnRDd0JpK3lid1lCWGJML0JnRmRzZzhHQVhHMG53YXZCZ0p4c2o4R0FYRzB2d2JQQmdKZHNpOEdBVjIwendiZkJnSnhzZ0VCQ2l0WUlkZ2I5Rm13R3hDeUR3RUtLMWdoMkJ2MFdiSVVHd2dSRWprd01RRWhBeU1UTXdNaEV6TURCaGNXRmhjV0VoTTJKek1XRnhZQ0JpY21KamNERXY0V1VMVzh0VklCNlZLMWV3UUVCVUU0aWFRREFSR25EZ1VJZWVLVG1aMFBBYzMrTXdRNi9pb0IxdjBlSXlWQlNnTUdBU2tCQVY1ZVhsM0kvcmV2QWdMR3FBQUJBR3IvNkFTQ0JjZ0FJZ0JBQUxBQVJWaXdDUzhic1FrY1BsbXdBRVZZc0FBdkc3RUFFRDVac0FrUXNnNEJDaXRZSWRnYjlGbXdBQkN5RndFS0sxZ2gyQnYwV2JJZEFBa1JFamt3TVFVbUppY21OemNTQUJjV0Z3Y21KeVlDQndjR0Z4WVdGeFkyTmpjMEp6TVhGZ0lFQWtqRy9oTUhDaWN0QVdyOHlZdEZmcGV3L3lNbkJ3SURub1pvcDFjQkM3TUtCNGIrL2hVRi9NNU1UL2tCSGdGY0FnSldpMFVDQXY3NjNQWTBOcDNFQWdOb3dySmFXYlBWL3ZHVUFBRUFUUC9uQTRvRVVnQWZBRDBBc0FCRldMQVRMeHV4RXhnK1diQUFSVml3Q3k4YnNRc1FQbG15QUFFS0sxZ2gyQnYwV2JJRkN4TVJFam13RXhDeUdBRUtLMWdoMkJ2MFdUQXhKUlkyTmpjbk14Y1dCZ1luTGdJM056WUFGeFlYQnlZakpnWUhCaGNXRmdIMlNtb3VBZ0twQmdObHdubUh2MWdRQXgwQkt0S29hamxoZm9YQUdnd0dDbnVDQWo5eWRIVjBuN3hrQXdTTitKSWErd0U0QWdKRWpqMEMyckZuUm5TTUFBQUJBSnIvNVFVZ0JiQUFHZ0JEQUxBQVJWaXdBeThic1FNY1BsbXdBRVZZc0Jjdkc3RVhFRDVac0FNUXNnUUJDaXRZSWRnYjlGbXdBTkN3RnhDeUNRRUtLMWdoMkJ2MFdiSVBGd01SRWprd01RRWhOeUVISVFNR0ZoY1dOaEkzTmljM0ZoY1dBZ2NHSnlZbU53Sm4vak1jQkY4Yy9pdWhDRU5EYTZOWkF3RVFyZzREQlY5ZWxOMllvQTBGRXA2ZS9FZGliUUlFa0FFWnNHTmtBV1JqdGY3SmFLVUVBc09zQUFBQkFIMy82QVNJQkRvQUdnQk5zZ1ViSEJFU09RQ3dBRVZZc0FJdkc3RUNHRDVac0FCRldMQVhMeHV4RnhBK1diQUNFTElBQVFvcldDSFlHL1Jac0FUUXNBWFFzQmNRc2dzQkNpdFlJZGdiOUZteUVBSVhFUkk1TURFQklUY2hCeUVEQmhjV0ZoY1dFaWNtSnhjV0Z4WUNCaWNtSmpjQjJQNmxHZ054R3Y2Z1lRUUVCVUk1aGFNR0F4S25EZ2tRY2VPVG1wME5BNlNXbHYyMEpDVS9Td01HQVFMVFVVOEJUMCtpL3RpZ0FRTEVxZ0FBQVFCcS8ra0ZJd1hIQUN3QVpySWFMUzRSRWprQXNBQkZXTEFiTHh1eEd4dytXYkFBUlZpd0RpOGJzUTRRUGxteUJnRUtLMWdoMkJ2MFdiSUtHdzRSRWptd0RoQ3dLOUN3S3kreUxBRUtLMWdoMkJ2MFdiSVVMQ3NSRWpteUh4c09FUkk1c0JzUXNpTUJDaXRZSWRnYjlGa3dNUUVpQmdjR0ZoY1dOamMzQmdZRUp5NENOellsSmlZM05qWWtGeDRDQnljMkppY21Cd1lIQmhZWEZ3Y0N6YjNRRGcrd25aWGhGYndPbi83NW01bnhkQW9WQVRKZlpBVUlsQUVQcDRiWWRnVzdCWnlGbkd0M0VBNlptN1FjQXBpUGYzV0xBd0tUZXdHRXdXWURBbXk2ZXY5ak1LQmRnTUZwQWdObHRuY0JiWVFGQWtCSWYzRjZBUUdlQUFBQ0FQSUVjZ05NQmRZQUJRQVFBQnNBc0EwdnNBYlFzQVl2c0FIUXNBRXZzQTBRc0FYUXNBVXZNREVCRXpNSEFRY0RNd2NHRnhZWEJ5WW1Od0hxbzc4Qi92Wlk0cVFOQ2dnSUpraElTQWtFbFFGQkZ2N0ZBZ0ZUVHo0Mk56TTNMb3hXLy84QUdRSWZBZzhDdGdBR0FCRUFBUC8vQUJrQ0h3SVBBcllBQmdBUkFBRC8vd0NuQW9zRWxRTWlBRVlCbDlvQVRNMUFBUC8vQUprQ2l3WFhBeUlBUmdHWGlBQm1aa0FBLy8vL1gvNXNBeDhBQUFBbkFFUC8zdjhEQVFZQVF3a0FBQlFBUUFrQUFoQUNJQUl3QWdSZHNyQUNBVjB3TVFBQkFLNEVNUUlGQmhNQUJ3QVdBTEFBUlZpd0FDOGJzUUFlUGxtd0JkQ3dCUzh3TVFFWEJnY0hJemMyQWFGa2NCc1l0QklrQmhOS2pJYUdjTjRBQUFFQWlRUVdBZUFHQUFBSEFCWUFzQUJGV0xBRUx4dXhCQjQrV2JBQTBMQUFMekF4RXljMk56Y3pCd2J0WkhZWUY3SVRKQVFXU3BPS2czbmhBQUgvbVA3bEFPb0F0UUFIQUJjQXNBZ3ZzZ1FGQ2l0WUlkZ2I5Rm13QU5Dd0FDOHdNUU1uTmpjM013Y0dCV056R0JLMUR5UCs1VXVRaTJwZzNBQUFBUURVQkJjQnVnWUFBQXNBREFDd0N5K3dCdEN3Qmk4d01RRUhCaGNXRndjbUp5WTNOd0doRmdzS0NpWnFaeEFGQmhVR0FJVk5Sa2RGUldxZE1UR0EvLzhBdGdReEF6NEdFd0FtQVd3SUFBQUhBV3dCT1FBQS8vOEFsUVFXQXhVR0FBQW1BVzBNQUFBSEFXMEJOUUFBQUFML2xQN1NBaFVBOWdBSEFBOEFJd0N3RUMreUJBVUtLMWdoMkJ2MFdiQU0wTEFNTDdBSTBMQUlMN0FBMExBQUx6QXhBeWMyTnpjekJ3WVhKelkzTnpNSEJnUm9kQnNldEJrblptZDBHaDYxR1NmKzBrdVhsNnVjOFpkTG1wU3JuUEFBQVFCM0FBQUVVUVd3QUFzQVN3Q3dBRVZZc0Fndkc3RUlIRDVac0FCRldMQUdMeHV4QmhnK1diQUFSVml3Q2k4YnNRb1lQbG13QUVWWXNBSXZHN0VDRUQ1WnNBb1FzZ0FCQ2l0WUlkZ2I5Rm13Qk5Dd0JkQXdNUUVoQXlNVElUY2hFek1ESVFRNC9ubVN0WkgrZkJnQmd6dTJPd0dKQTZIOFh3T2htUUYyL29vQUFBSC85djVnQkdBRnNBQVRBSHdBc0FCRldMQU1MeHV4REJ3K1diQUFSVml3Q2k4YnNRb1lQbG13QUVWWXNBNHZHN0VPR0Q1WnNBQkZXTEFDTHh1eEFoSStXYkFBUlZpd0FDOGJzUUFRUGxtd0FFVllzQVF2RzdFRUVENVpzZ1lCQ2l0WUlkZ2I5Rm13RGhDeUNBRUtLMWdoMkJ2MFdiQUowTEFRMExBUjBMQUdFTEFTMExBVDBEQXhJU0VESXhNaE55RVRJVGNoRXpNRElRY2hBeUVEdC81MlFiWkMvbjRZQVlGNi9uNFlBWUU3dGpzQmloaitkbmtCaXY1Z0FhQ1hBd3FaQVhiK2lwbjg5Z0FCQUtBQ0ZRSXNBOHdBRFFBV3Nnb09EeEVTT1FDd0F5K3hDZ29yV05nYjNGa3dNUk0yTmpNeUZoVUhCZ1lqSWlZMW9RWjFWbEZwQWdaeFdsSm5BdjFlY1cxWUtscHVhbFVBLy84QU9mL3lBc0VBMHdBbUFCSUVBQUFIQUJJQnJBQUEvLzhBT2YveUJGTUEwd0FtQUJJRUFBQW5BQklCckFBQUFBY0FFZ00rQUFBQUFRQWFBaDRBMndLM0FBTUFEd0N3QWkreEFRb3JXTmdiM0Zrd01STWpOek8vcFJ1bUFoNlpBQVlBbC8vbkJ2NEZ4d0FYQUNZQUtnQTRBRVlBVkFDRkFMQXBMN0FuTDdBQVJWaXdHQzhic1JnY1BsbXdBRVZZc0JFdkc3RVJFRDVac0FEUXNBQXZzQVhRc0FVdnNCRVFzQTNRc0EwdnNCZ1FzQi9Rc0I4dnNCRVFzaTRFQ2l0WUlkZ2I5Rm13QUJDeU5RUUtLMWdoMkJ2MFdiQXVFTEE4MExBMUVMQkQwTEFmRUxKS0JBb3JXQ0hZRy9SWnNCZ1FzbEVFQ2l0WUlkZ2I5Rmt3TVFFV0ZoYzJGeFlYRmdjSEJnWW5KaWNHSnlZbU56YzJOZ0VXRmdjSEJnWW5KaVkzTno0Q0F5Y0JGd0VHRmhjV05qYzNOaVluSmdZSEJRWVdGeFkyTnpjMkppY21CZ2NCQmhZWEZqWTNOelltSnlZR0J3UTdRbkFlWm9kNFNFWUlCZzIzZ3BVK1pJVjRrUWdHRGJmK01YeU9DQVlQdG4xNWtnZ0hDRm1OUFdJRGNXTCtyUWRFUWtaakN3a0hRa05HWXd3QnRBZERRa2RqQ3drSFFrTkdZd3o3N0FkRVFrTmxEQWtIUWtOSVl3c0Nrd0k4UEhvQ0FsZFZma09PclFJRmRIc0VBcXQvUW8ydkF6RUVxMzlOaHFvRUFxeCtURldQVFBxcFNBUm9SL3c4VG1RQ0FtZFJUMDVqQWdKalUxQk1aZ0lDYVU5UFMyWUNBbU5UQXVSTlpBSUNZMVJPVEdZQ0FtaFBBQUFCQUY4QW1RSlVBN1VBQmdBUUFMQUZMN0lDQndVUkVqbXdBaTh3TVFFVEl3TTNBVE1CQzdKOTRRSUJXNWdDSFA1OUFZTVVBWVVBQUFFQUFnQ1lBZmNEdFFBR0FCQUFzQUF2c2dNSEFCRVNPYkFETHpBeEFSTUhBU01CQXdFVzRRTCtwWmdCU0xFRHRmNTlGZjU3QVpnQmhRQUIvKzhBY0FQQ0JTQUFBd0FKQUxBQUw3QUNMekF4TnljQkYxRmlBM0ZpY0VnRWFFZ0EvLzhBWVFLUUF1UUZwUU1IQWRnQWNRS1FBQk1Bc0FCRldMQUpMeHV4Q1J3K1diQU4wREF4QUFBQkFINENpd05LQmJvQUVRQk1BTEFBUlZpd0FDOGJzUUFjUGxtd0FFVllzQU12RzdFREhENVpzQUJGV0xBUEx4dXhEeFErV2JBQVJWaXdDQzhic1FnVVBsbXlBUU1QRVJJNXNBTVFzZ3dEQ2l0WUlkZ2I5Rmt3TVFFWE5qTXlGZ2NESXhNM0ppY21Cd01qRXdHRUFWeUdjWElNVTZaTkF3Um1ZME5ncDRzRnJIeUtvcEgrQkFIZFFuNERBbS85elFNZ0FBSC84d0FBQklrRnlnQW5BSThBc0FCRldMQVhMeHV4Rnh3K1diQUFSVml3Qmk4YnNRWVFQbG15SndZWEVSSTVzQ2N2c2dBQ0NpdFlJZGdiOUZtd0JoQ3lCUUVLSzFnaDJCdjBXYkFKMExBQUVMQU4wTEFuRUxBUDBMQW5FTEFqMExBakw3WVBJeDhqTHlNRFhiSWtBZ29yV0NIWUcvUlpzQkhRc0NNUXNCUFFzQmNRc1JzS0sxallHOXhac0JjUXNoNEJDaXRZSWRnYjlGa3dNUUVoQndZSEpRY2hOeGMyTnpjSE56TTNJemN6TnpZa0Z4WVdCeWMySmljbUJnY0hJUWNoQnlFQzUvNitDUmhVQXNzZC9CVWRRMmtsQzZzV29SU2VGcGtWR1FFV3dLakFDTHNIWkdOdm1nOFZBVklXL3JNVUFVb0Ixa1NVWXdLZG5BSW0wRWNCZlloOXI4MzJCZ1RSc1FGcmVRUUVwMzJ2ZllnQUJRQUtBQUFHUWdXd0FCc0FId0FqQUNZQUtRQ3hBTEFBUlZpd0Z5OGJzUmNjUGxtd0FFVllzQm92RzdFYUhENVpzQUJGV0xBTUx4dXhEQkErV2JBQVJWaXdDUzhic1FrUVBsbXlFQXdYRVJJNXNCQXZzQlRRc0JRdnRBOFVIeFFDWGJBazBMQWtMN0FZMExBWUw3QUEwTEFBTDdBVUVMSVRBUW9yV0NIWUcvUlpzQi9Rc0NQUXNBUFFzQkFRc0J6UXNCd3ZzQ0RRc0NBdnNBVFFzQVF2c0JBUXNnOEJDaXRZSWRnYjlGbXdDOUN3S2RDd0I5Q3lKaGNNRVJJNXNpY0pHaEVTT1RBeEFUTUhJd2N6QnlNREl3TWhBeU1USXpjek55TTNNeE16RXlFVE13RWhKeU1GTXpjaEpUTW5BVGNqQldyWUd0Z2EyQnJZVmJmaC9tcFZ2RlhURzlJYTB4dlNXclh0QVloYXUvdnVBVGRFMkFIanl4cisyUDU1ZVZjQ1BCMXFBNnlZbEpqK0dBSG8vaGdCNkppVW1BSUUvZndDQlB6UWxKU1VtTDc4MTZjQUFnQTUvKzBHSlFXd0FDQUFLUUNJQUxBQVJWaXdIQzhic1J3WVBsbXdBRVZZc0JZdkc3RVdIRDVac0FCRldMQVVMeHV4RkJBK1diQUFSVml3Q3k4YnNRc1FQbG13SEJDd0g5Q3lBUUVLSzFnaDJCdjBXYkFMRUxJR0FRb3JXQ0hZRy9SWnNBRVFzQS9Rc2lFV0ZCRVNPYkFoTDdJVEFRb3JXQ0hZRy9SWnNCd1FzQjNRc0IwdnNCWVFzaWtCQ2l0WUlkZ2I5Rmt3TVFFakF3WVhGak15TndjR0p5WW1OeE1qQWlFbkF5TVRCUjRDQnpjVE13TXpBUmMrQWljbUp5Y0dDOE55QXdJSFR5QTFDMEpFYTJ3TWJvRnYvblRGWTdYOUFXSjR0RnNGa0MrMUxzWDdSYkI0bTBNTUU3ekZBNnY5WUJvWFRRcVlFZ0VDbFlnQ252NkpBZjNMQmJBQkExeW5jQUVCQnY3Ni9wSUJBbXJFYTZrSUFRRC8vd0E2LytrSDZnV3dBQ1lBTmdBQUFBY0FWd1EwQUFBQUJ3QWlBQUFIYVFXd0FCOEFJd0FuQUNzQU1BQTFBRG9BdHdDd0FFVllzQjR2RzdFZUhENVpzQUJGV0xBYkx4dXhHeHcrV2JBQVJWaXdBaThic1FJY1BsbXdBRVZZc0Ewdkc3RU5FRDVac0FCRldMQVFMeHV4RUJBK1diSVVFQnNSRWptd0ZDK3dHTkN3R0Mrd0hOQ3dOdEN3QU5Dd0JOQ3dHQkN5RndFS0sxZ2gyQnYwV2JBbjBMQWowTEFyMExBSDBMQVVFTEFrMExBZzBMQW8wTEFJMExBVUVMSVRBUW9yV0NIWUcvUlpzRExRc0EvUXNDM1FzQXZRc2pRUUhoRVNPYkEwRUxBdjBMSTVIaEFSRWprd01RRWhFek1ETXdjakJ6TUhJUU1qQXlFREl3TWhOek1uSXpjekF6TVRJUk16QVNFbkl3VXpOeU1GTXpjakV3Y1hGemNsQnhjSE53RTNKeWNIQktRQlNibkR3bzRic1ZEZ0cvNzl3NnN4L3BIZHF4NysreHZoRExRYmp4MjJHQUZLMTUzK25BRWFGSzMrWHA1WS93TUVuMDMrZkZZREJVUDlCbE1CQ1VVQmxXSUtBaXNEMUFIYy9pU1l3cGorSGdIaS9oNEI0cGpDbUFIYy9pUUIzUHpLd3NMQ3dzTCtxQUlwc3NNYUFSaTZwUUljQWx0aWF3QUFBZ0FmLy93RnlBUTZBQTRBR3dCS0FMQUFSVml3Rmk4YnNSWVlQbG13QUVWWXNBd3ZHN0VNRUQ1WnNBL1FzaElCQ2l0WUlkZ2I5Rm13RmhDd0R0Q3lCUklPRVJJNXNnc0JDaXRZSWRnYjlGbXlFQXNQRVJJNU1ERUJGaFlIQXlNVE5pY21KeVVESXhzQ013TUZNamNUTXdNR0JpY0M2NW1QRXpXMU5nWUNDcEwrd2FHMXZNR0F0V1VCS3VFb2RMVnlHY3VyQkRnRnpjRCt0d0ZNTUN5VkJRTDhYd1E2KzhZQzNmMjdBdlVDci8xWnljNEVBQUFCQUZILzdBU0lCY2NBSlFDS3NoOG1KeEVTT1FDd0FFVllzQmd2RzdFWUhENVpzQUJGV0xBTEx4dXhDeEErV2JJbEdBc1JFam13SlMreUFBSUtLMWdoMkJ2MFdiQUxFTElHQVFvcldDSFlHL1Jac0FBUXNBL1FzQ1VRc0JEUXNDVVFzQlhRc0JVdnRnOFZIeFV2RlFOZHNoSUNDaXRZSWRnYjlGbXdHQkN5SFFFS0sxZ2gyQnYwV2JBVkVMQWcwTEFTRUxBaTBEQXhBU0VHRnhZV0Z4WTNGd1luSmdJM0J6Y3pOeU0zTXhJQUZ6SVhCeVluSmdZSElRY2hCeUVETHY2T0NRY01obkpmZkFWeWQrTHVJTFFXckJtdEZxVStBVHZvV1pRaWFtT2gweTRCZWhiK2pCZ0JkUUlkU2tkNGhnTURJcUVkQWdRQk52WUJmSWw5QVEwQkd3SWVwQ1FDQXNyQ2ZZa0FCQUJEQUFBRit3V3dBQmtBSGdBakFDZ0F3QUN3QUVWWXNBc3ZHN0VMSEQ1WnNBQkZXTEFCTHh1eEFSQStXYkFMRUxJb0FRb3JXQ0hZRy9SWnNDVFFzQ1F2UUFrQUpCQWtJQ1F3SkFSZHNBYlFzQVl2dEE4R0h3WUNYYlFnQmpBR0FsMnlzQVlCWGJBajBMQWpMN1N3SThBakFsMUFDUUFqRUNNZ0l6QWpCRjJ5QUFFS0sxZ2gyQnYwV2JBR0VMSURBUW9yV0NIWUcvUlpzQ1FRc2h3QkNpdFlJZGdiOUZtd0I5Q3dKQkN3Q3RDd0NpK3dKQkN3RDlDd0hCQ3dFdEN3QmhDd0hkQ3dGTkN3QXhDd0l0Q3dGOUF3TVFFREl4TWpOek0zSXpjek53VXlGaGN6QnljSEJ6Y0hCd1loQVRjRkJ3VUZOamNGQnhNbEppY2hBWlJqdTQzQUdzQVJ3UnZBS2dIdHBlSW43aHU0Q2c3Qkc5U1kvcVFCZGduOWZCQUNmZjZjb1hMOXVoQlVBalk0bGY2bkFqcjl4Z013bDE2WDlBRitkWmNCTXk0Q2x3SDJBYmswQVY0QjhBSmFBbGtCNVFKUEJRQUFBUUJKQUFBRWNnV3dBQm9BWHdDd0FFVllzQmt2RzdFWkhENVpzQUJGV0xBTUx4dXhEQkErV2JBWkVMSVlBUW9yV0NIWUcvUlpzQUhRc0JnUXNCUFFzQk12c0FQUXNCTVFzaElCQ2l0WUlkZ2I5Rm13QnRDd0VoQ3dEdEN3RGkreUNRRUtLMWdoMkJ2MFdUQXhBUWNXQnpNSEl3WUVCd0VISXdFM0Z6STNCVGNoSmlZbkpUY2hCQ25tSndUUFNZODAvd0RsQVh3QjJmNWpGT0wxWnYzR1NRSUJCbnhvL3VCSkE0a0ZFZ0ZlWjU2eXJ3Zjl5QTRDY25RQ3l3R2VYV1FFQVo0QUFBRUFDdi9wQkJRRnNBQWVBSTBBc0FCRldMQVJMeHV4RVJ3K1diQUFSVml3QlM4YnNRVVFQbG15RXhFRkVSSTVzQk12c0JmUXNCY3ZzZ0FYQVYyeUdBRUtLMWdoMkJ2MFdiQVowTEFJMExBSjBMQVhFTEFXMExBTDBMQUswTEFURUxJVUFRb3JXQ0hZRy9SWnNCWFFzQXpRc0EzUXNCTVFzQkxRc0EvUXNBN1FzQVVRc2hvQkNpdFlJZGdiOUZteUhnVVJFUkk1c0I0dk1ERUJCd1lDQkNjbUp4TUZQd0lGTnlVVE13Y2xCd1VISlFjRkF6WVNOemNFRkFvYndmN2xya3B5WXY3L0l2OGEvdjhoQVFBN3ZDMEJDQ0grK1JrQkNDSCsrV0cvOHlVT0F3Tk8xZjZ6cWdJQ0V3SlVicnh2am02OGJ3RlUrM0s4Y285eXZIUDk0UVVCRmZCckFBQUIvL0lBQUFTR0JEb0FIQUJWQUxBQVJWaXdIQzhic1J3WVBsbXdBRVZZc0Fndkc3RUlFRDVac0FCRldMQVBMeHV4RHhBK1diQUFSVml3RlM4YnNSVVFQbG15QUE4Y0VSSTVzQUF2c2c0QkNpdFlJZGdiOUZtd0VkQ3dBQkN3R3RBd01RRWVBaFVVQndjak56WW5KaVluQXlNVEJnSUhCeU0zRWdBM056TURGSGFuVlFvZXRSd1VCZ3RwWFlHMWdaZkdKeUsxSHk4Qk51b290UU52RjVQdGkwdEl1cXA4WjR5WUhQMHpBc3dsL3dEWnpya0JLd0ZxSThrQUFBTC81UUFBQlRVRnNBQVdBQjhBYlFDd0FFVllzQXd2RzdFTUhENVpzQUJGV0xBREx4dXhBeEErV2JJR0F3d1JFam13QmkreUJRRUtLMWdoMkJ2MFdiQUIwTEFHRUxBSzBMQUtMN1FQQ2g4S0FsMnlDUUVLSzFnaDJCdjBXYkFVMExBR0VMQVYwTEFLRUxBWDBMQU1FTElmQVFvcldDSFlHL1JaTURFQklRTWpFeU0zTXpjak56TVRCUllXQndZRUl5VUhJUUVGTWpZM05pWW5KUUt0L3J3d3V6REpITWdaeWh6SWZ3SDkwK29SRXY3VjhQNmxHQUZGL3U0QlJabkRFUkNIZnY2bUFSUCs3UUVUbm9tZEF0a0JCK3krMHZNQmlRRW1BWnlMZXBZRUFRQUVBTXovNWdVNUJjZ0FHd0FwQURjQU93QjdBTEE0TDdBNkw3QUFSVml3Q2k4YnNRb2NQbG13QUVWWXNDTXZHN0VqRUQ1WnNBb1FzQVBRc0FNdnNnQURDaEVTT2JJT0NnTVJFam13Q2hDeUVRUUtLMWdoMkJ2MFdiQURFTElZQkFvcldDSFlHL1Jac0NNUXNCelFzQnd2c0NNUXNpMEVDaXRZSWRnYjlGbXdIQkN5TkFRS0sxZ2gyQnYwV1RBeEFRWUdKeVltTnpjMk5oY1dGZ2NuTmlZbklnWUhCd1lXRnpJMk53RVdGZ2NIQmdZbkppWTNOelkyQXdZV0Z4WTJOemMySmljbUJnY0ZKd0VYQXVVTW4zTnppQWtHRGF0OGI0a0Nod00yUUVGY0NnZ0lPRHc4VGcwQjBIdVBDQVlOdFlGNWtRZ0dETFEvQlVOQ1NHRUxDUWREUWtWbUMvM3paQU54WXdRZWM0OEVBcXQrUTR1dkFnS1BjUUU2VFFKb1ZrWktad0pMTy81MEJLbC9RNDJ2QkFLcmdFU0xyZjZDVUdFQ0FtbE9UMHhtQWdKbVVmVklCR2hIQUFBQ0FFdi82d1BEQmhjQUhBQWtBRk1Bc0FrdnNBQkZXTEFQTHh1eER4NCtXYkFBUlZpd0FDOGJzUUFRUGxtd0NSQ3lDQUVLSzFnaDJCdjBXYkFXMExBQUVMSWNBUW9yV0NIWUcvUlpzQWtRc0IzUXNBOFFzaUlCQ2l0WUlkZ2I5Rmt3TVFVbUppY21OemNHQnpjMk54TTJOaGNXRmdjSEJnQUhCd1lWQmhZWEF6WVNOelluSmdjQ1ZZT29GQTBQQkdSdEZHVnNYaGl1aEhGNkNnTVQvd0RIRVFnQ1VsQnRmbzBHQkVOdUdSVUdsSUZQV0JRYkFyQUNJUUlodHNrREJLK0hIOGYralhGak5USlZZZ1VDWDI4QkNxUnRCUWJsQUFBRUFEVUFBQWZ2QmNVQUF3QVJBQ0FBS2dDSUFMQUFSVml3Snk4YnNTY2NQbG13QUVWWXNDa3ZHN0VwSEQ1WnNBQkZXTEFFTHh1eEJCdytXYkFBUlZpd0lTOGJzU0VRUGxtd0FFVllzQ1F2RzdFa0VENVpzQVFRc0F2UXNBc3ZzQUxRc0FJdnNnRURDaXRZSWRnYjlGbXdDeEN5RlFNS0sxZ2gyQnYwV2JBRUVMSWRBd29yV0NIWUcvUlpzaU1wSkJFU09iSW9JU2tSRWprd01RRWhOeUVERmhZSEJ3WUdKeVltTnpjMk5nTUdGaGNXTmo4REppY21CZ2NCSXdFREl4TXpBUk16QjBuOXFob0NWcUtRbmd3SkVkQ1dqNkVNQ0EvVVNnaExTazVyRVFJTEFRYUlVbTBPL2dUQi9vUEh0UHpCQVgvSHN3R2NqZ09YQk1PVFY2WENCQVRDa2xhaXlQNCtZMmNDQTJWZ0RHTXBvQU1DYldMN21RUjIrNG9Gc1B1SEJIa0FBZ0RxQTVZRXJRV3dBQXdBRkFCdEFMQUFSVml3Qmk4YnNRWWNQbG13QUVWWXNBa3ZHN0VKSEQ1WnNBQkZXTEFUTHh1eEV4dytXYklCRlFZUkVqbXdBUyt5QUFrQkVSSTVzZ01CQmhFU09iQUUwTElJQVFrUkVqbXdBUkN3QzlDd0JoQ3hEUW9yV05nYjNGbXdBUkN3RDlDd0RSQ3dFZEN3RXRBd01RRURCd01ESXhNekV4TXpBeU1CSXdNakV5TTNJUVE2d3pSR1IxbGVha1hTY1Y1WS9tcU9VRmxQanc0QmVBVVMvb1lDQVpIK2NBSVovbk1CamYzbkFjaitPQUhJVVFBQ0FJTC82UVI4QkZJQUZRQWNBR0t5QWgwZUVSSTVzQUlRc0JiUUFMQUFSVml3Q2k4YnNRb1lQbG13QUVWWXNBSXZHN0VDRUQ1WnNob0tBaEVTT2JBYUw3SVBDZ29yV0NIWUcvUlpzQUlRc2hNS0NpdFlJZGdiOUZteUZRb0NFUkk1c0FvUXNoWUtDaXRZSWRnYjlGa3dNU1VHSnlZbUFqYzJFaVFYSGdJSEJ5RURGaGNXTndNbUJ3TWhFeVlEc0xpK2hOQmtEZzZ5QVFTS2dMNWdDd1g5RkR0Zmo2cld6b2lhTXdJTE0xMWRkQVFDbWdFQ2laSUJFWnNFQklyN2tqSCt0bWNFQjM4REt3TjgvdW9CSDJ6Ly93QzEvL1FGZEFXYkFDY0IxUUJLQW9ZQUp3RjhBTjhBQUFFSEFkd0MvQUFBQUJBQXNBQkZXTEFGTHh1eEJSdytXVEF4Ly84QWt2LzBCaEFGdGdBbkFkY0Fsd0tVQUNjQmZBR1lBQUFCQndIY0E1Z0FBQUFRQUxBQVJWaXdEUzhic1EwY1Bsa3dNZi8vQUkvLzlBWUdCYVFBSndIWkFIa0Nqd0FuQVh3QmR3QUFBUWNCM0FPT0FBQUFFQUN3QUVWWXNBRXZHN0VCSEQ1Wk1ESC8vd0MrLy9RRnZBV2tBQ2NCMndDUEFvOEFKd0Y4QVJjQUFBRUhBZHdEUkFBQUFCQUFzQUJGV0xBRkx4dXhCUncrV1RBeEFBSUFUZi9uQkRjRjdBQWVBQ3dBUndDd0R5K3dBRVZZc0Jjdkc3RVhFRDVac2dBUEZ4RVNPYkFBTDdBUEVMSUpBUW9yV0NIWUcvUlpzQUFRc2g4QkNpdFlJZGdiOUZtd0Z4Q3lKZ0VLSzFnaDJCdjBXVEF4QVJZV0Z6WW5MZ0luSmdZSEp6WVhGaFlTQndJQ0JDY21BajhDTmdBWEpnWUdGeFlXRnhZMk56YzJKZ0prVnBjMEJBSUVRWGxTUzQ5R0FwT2xrOE5VQ0EyZS92Nmt1OVlHQXdJZEFTTFZiS3hXQ3dseVk0L0NKQW9Ea3dQK0FrdEZMalZsc21BREFpTVltRVFCQTU3KzA4RCsyLzU2eXdRRkFRVFRNUkxsQVJXZEEzM2tqM0tEQkFYejVVRlVlUUFBQVFBay95c0ZSZ1d3QUFjQUp3Q3dCQyt3QUVWWXNBWXZHN0VHSEQ1WnNBUVFzQUhRc0FZUXNnSUJDaXRZSWRnYjlGa3dNUVVqRXlFREl3RWhCRUcxN3YxTTdiVUJCUVFkMVFYdCtoTUdoUUFCLzZ6Kzh3VFNCYkFBREFBMUFMQURMN0FBUlZpd0NDOGJzUWdjUGxtd0F4Q3lBZ0VLSzFnaDJCdjBXYkFGMExBSUVMSUtBUW9yV0NIWUcvUlpzQWZRTURFQkFTRUhJVGNCQVRjaEJ5RUJBMC85V2dOakcvdTdHZ0xNL2kwWUEvc2IvTmtCd1FKQy9VbVltQUxNQXRLSG1QMUVBQUVBcXdLTEEvRURJZ0FEQUJzQXNBQkZXTEFDTHh1eEFoWStXYklCQVFvcldDSFlHL1JaTURFQklUY2hBOWI4MVJzREt3S0xsd0FBQVFCQkFBQUZEZ1d3QUFnQVBMSURDUW9SRWprQXNBY3ZzQUJGV0xBQkx4dXhBUncrV2JBQVJWaXdBeThic1FNUVBsbXlBQUVERVJJNXNBY1FzZ1lCQ2l0WUlkZ2I5Rmt3TVFFQk13RWpBeU0zSVFIbEFtbkEvUGFLZ2JnY0FTNEJIZ1NTK2xBQ2RKb0FBQU1BVGYvbUI2RUVVZ0FaQUNvQU93QkVBTEFBUlZpd0JpOGJzUVlRUGxtd0FOQ3dCaEN3RGRDd0RTK3dFOUN3QmhDeUhRRUtLMWdoMkJ2MFdiQU5FTEluQVFvcldDSFlHL1Jac0MvUXNCMFFzRGpRTURFRkppWW5CZ1luSmlZbkpoSWtGeFlXRnpZMkZ4NENCd0lBQVJRV0Z4WTJOamMzTmlZbkppY21CZ1lGTnlZbUp5WUdCZ2NIQmhZV0Z4WTJOd1ZwanRRb2ZmU0ZvOVFTRTVJQkM1Nk4xU2g2OW9xQnUxa1BIdjdJK3RWM2FsU3JpUndIQlQ4NFRsNXBwV0lGendRRGMybFVxSTRkQndaTmgwK054QmNWQk1lZnlhVURCT1czckFGYXdnUUV4cUhFcXdNRWsvdU4vdjMrdVFITWlhY0NBbTdDWFNwS3FEcFJCQVNEOXc5VGo2RUVBbW5EWUNsUHZYTUVCZWV6QUFBQi94citSUU1IQmhvQUZRQTlzZ0lXRnhFU09RQ3dBRVZZc0E0dkc3RU9IajVac0FCRldMQURMeHV4QXhJK1diSUlBUW9yV0NIWUcvUlpzQTRRc2hNQkNpdFlJZGdiOUZrd01SY0dCaWNtSnpjV0Z4WTNFelkyRnhZWEJ5WWpJZ2Z4RTdtVk5VRWNOQm1jSHNNVHhaMDJYQ0l3S0xjamE2T3RBZ0lVa2c0QkI4a0ZES2pFQWdFVmp3M2xBQUlBTVFFVkJDMEQ4d0FXQUNrQWF3Q3dHUyt3QXRDd0FpK3dDTkN3Q0Mrd0FoQ3dDOUN3Q0JDeURnRUtLMWdoMkJ2MFdiQUNFTElVQVFvcldDSFlHL1Jac0E0UXNCYlFzQmtRc0IzUXNCMHZzQmtRc0IvUXNCMFFzaUlCQ2l0WUlkZ2I5Rm13R1JDeUpnRUtLMWdoMkJ2MFdiQWlFTEFwMERBeEV6WXpNaGNYRmhZek1qWTNCd1luSWlZbkp5WWpJZ2NITmpNMkZoWXpNamNIQmljaUppWWpJZ2NIakcyUVUxQTRNVjQ2UEhkTkZXK0NPMkF4TWxSU2Y0azRibzB5VTlSTmVvUVViNElzU3RsVWJIQXRBNFp0S3g4ZEtUaEh2VzhDS1IwY0wzL21iZ0VhZUgrOGJ3SVdlbGttQUFBQkFIQUFuUVAvQk5NQUV3QTNBTEFUTDdJQUFRb3JXQ0hZRy9SWnNBVFFzQk1Rc0FmUXNCTVFzQS9Rc0E4dnNoQUJDaXRZSWRnYjlGbXdDTkN3RHhDd0M5QXdNUUVoQnljM0l6Y3pOeUUzSVJNWEJ6TUhJUWNoQTVyK0E3TmJoYVFjL2IzK2Nod0I2Y0Zia3JnZC91NjhBYU1Cai9KQnNhRC9vUUVFUWNPaC93RC8vLy9VQUFJRHlRUkNBR1lBSUJGaFFBQTVtZ0FIQVpmL0tmMTMvLzhBR1FBQkErZ0VUUUJtQUNJVWMwQUFPWm9BQndHWC8yNzlkZ0FDQUVFQUFBUFVCYkFBQlFBSkFEaXlDQW9MRVJJNXNBZ1FzQUhRQUxBQVJWaXdBQzhic1FBY1BsbXdBRVZZc0FNdkc3RURFRDVac2dZQUF4RVNPYklJQUFNUkVqa3dNUUV6QVFFakNRSVRBUUk5aVFFTy9nV0svdklDS1A2UHRBRnlCYkQ5SGYwekF1RUNCUDNuL2Y0Q0YvLy9BSGdBcEFId0JQY0FKd0FTQUVNQXNnQUhBQklBMndRa0FBSUFjQUo1QW5jRU9nQURBQWNBSlFDd0FFVllzQU12RzdFREdENVpzQURRc0FBdnNBWFFzQVV2c0FNUXNBYlFzQVl2TURFVEl4TXpFeU1UTS9xS1RvcmdpaytLQW5rQndmNC9BY0VBQUFILzQvOWZBUThBN3dBSEFBd0FzQVF2c0FEUXNBQXZNREVYSnpZM056TUhCa1pqV3hZUHJBa2VvVXA3ZVZJLzB3RC8vd0IwQUFBRmF3WVpBQ1lBU2dBQUFBY0FTZ0liQUFBQUFnQllBQUFFQlFZWkFCWUFHZ0JwQUxBQVJWaXdDUzhic1FrZVBsbXdBRVZZc0JNdkc3RVRHRDVac0FCRldMQVpMeHV4R1JnK1diQUFSVml3Rmk4YnNSWVFQbG13QUVWWXNCZ3ZHN0VZRUQ1WnNCTVFzaFFCQ2l0WUlkZ2I5Rm13QWRDd0V4Q3dCTkN3Q1JDeUR3RUtLMWdoMkJ2MFdUQXhNeE1qUHdJMk56WVhGaFlYQnlZbkpnY0hNd2NqQXlFakV6TmJvNllacGc0YmVIT3ZSNFZHTEhGdjVTSU4xeG5Xb3dJNHRyeTJBNnVQQVdTM1pGOENBaU1ZbmpNQ0JPUlhqL3hWQkRvQUFRQjBBQUFFWWdZYUFCZ0FYQUN3QUVWWXNCTXZHN0VUSGo1WnNBQkZXTEFITHh1eEJ4ZytXYkFBUlZpd0NpOGJzUW9RUGxtd0FFVllzQmd2RzdFWUVENVpzQk1Rc2dJQkNpdFlJZGdiOUZtd0J4Q3lDQUVLSzFnaDJCdjBXYkFNMExBSEVMQVAwREF4QVNZaklnWUhCek1ISXdNakV5TTNNemMyTmhjV0Z4Y0RJd09mZ1R0amVBOFM0Um5nbzdXa3B4bW1FaHJZcG0yNFlQNjFCV1VXYjE5emoveFZBNnVQZjZlNkFnSXFGUG9vQUFJQWRBQUFCbGNHR3dBbkFDc0Fsd0N3QUVWWXNBZ3ZHN0VJSGo1WnNBQkZXTEFXTHh1eEZoNCtXYkFBUlZpd0lDOGJzU0FZUGxtd0FFVllzQ292RzdFcUdENVpzQUJGV0xBbkx4dXhKeEErV2JBQVJWaXdKQzhic1NRUVBsbXdBRVZZc0Nrdkc3RXBFRDVac0NBUXNpRUJDaXRZSWRnYjlGbXdKZEN3QWRDd0lCQ3dFdEN3Qk5Dd0NCQ3lEUUVLSzFnaDJCdjBXYkFXRUxJY0FRb3JXQ0hZRy9SWk1ERXpFeU0zTXpjMk5oY1dGd2NtSnlJR0J3Y2hOelkyRnhZV0Z3Y21KeVlIQnpNSEl3TWpFeUVESVNNVE0zZWtweG1tRVJmVW9EWkxGakF4V1hVUkV3R0REaHJudFVpSlJDOXpiK1FpRGRnWjE2TzFvLzU5b3dSdnRieTFBNnVQZWFqQUFnSVFtQW9DYWw1NVpiSEpBZ0ltR0pzekFnTGlWNC84VlFPci9GVUVPZ0FBQVFCMEFBQUdtUVliQUNvQWlnQ3dBRVZZc0Frdkc3RUpIajVac0FCRldMQVhMeHV4Rng0K1diQUFSVml3SXk4YnNTTVlQbG13QUVWWXNDb3ZHN0VxRUQ1WnNBQkZXTEFuTHh1eEp4QStXYkFBUlZpd0hDOGJzUndRUGxtd0l4Q3lKQUVLSzFnaDJCdjBXYkFvMExBQjBMQWpFTEFUMExBRTBMQUpFTElPQVFvcldDSFlHL1Jac0JjUXNoOEJDaXRZSWRnYjlGa3dNVE1USXpjek56WTNOaGNXRndjbUl5SUdCd2NoTnpZMkZ4WVhGd01qRXlZakpnY0hNd2NqQXlNVElRTjNvNllacGhJZGVtYU9OVXNXT2loYmRSQVJBWVFQR2RhcVZuRy8vclh6Z1R6TklnN2hHdCtqdGFQK2ZhTURxNDkvdGw1T0FnSVFtQXh1WjJ4cnRNRUNBaFlvK2lnRlpCWUM0MStQL0ZVRHEveFZBQUFCQUhULzdRVElCaG9BSmdDQkFMQUFSVml3SWk4YnNTSWVQbG13QUVWWXNCNHZHN0VlR0Q1WnNBQkZXTEFSTHh1eEVSZytXYkFBUlZpd0pTOGJzU1VZUGxtd0FFVllzQXN2RzdFTEVENVpzQUJGV0xBWkx4dXhHUkErV2JBZUVMSWJBUW9yV0NIWUcvUlpzQkRRc0FIUXNBc1FzZ1lCQ2l0WUlkZ2I5Rm13SWhDeUZRRUtLMWdoMkJ2MFdUQXhBU01EQmhjV016STNCd1luSmlZM0V5TTNNeE1tSnlJR0J3TWpFeU0zTXpjMk5oY1dGd016Qks3RGNnTUNCMDhpTWdwQ1FXNXNERzdBR3I4elJXcFZjaExOdGFTbkdhWVJGOFdlck5VOHhRT3IvV0FhRjAwS21CSUJBcHVDQXA2UEFTRWtBbXRwKzFNRHE0OTRwY01DQTJiK2l3QUJBQ24vNlFaMkJoTUFUUUMyQUxBQVJWaXdTQzhic1VnZVBsbXdBRVZZc0VFdkc3RkJHRDVac0FCRldMQVNMeHV4RWhnK1diQUFSVml3TGk4YnNTNFFQbG13QUVWWXNBb3ZHN0VLRUQ1WnNCSVFzRXpRc2dFQkNpdFlJZGdiOUZtd0NoQ3lCUUVLSzFnaDJCdjBXYkFCRUxBUDBMQklFTElYQVFvcldDSFlHL1Jac2g5QkxoRVNPYkJCRUxJaUFRb3JXQ0hZRy9SWnNqb3VRUkVTT2JBNkVMSW5BUW9yV0NIWUcvUlpzakl1UVJFU09iQXVFTEkxQVFvcldDSFlHL1JaTURFQkl3TUhGQmNXTndjR0p5WW1OemNUSXpjek56WW5KaWNtQmg4Q0ZnY2pOaVluSmdZSEJnUVhGZ2NPQWljbUpqY3pGQllYRmpZM05pY25KamMrQWpNV0Z5WTNOallYRmhZSEJ6TUdYY1JzQVZJYk9BeExPbUZxQXdKcXR4bTFEQVVFRG90bGVnd0ZGZ2NHdFFKb1dGMkVEQTRCSnp6S0N3WjV5bktyM1FhMGNXVmtrQXdTa3FEL0N3VjF4VzFiV1JNSEQ5MlVxYkVVRGNRRHEvMTlOR1FEQVF1WUV3SUJrSWNrQW9HUFZpc3FqZ01EaVpJN3EwQThVbVVDQWx0TGFVMGJXYlJrbGxBREFzV2JYV3NDQWxkTmN5MHVWY0JnbEZNQkgzcy9ocU1DQk5LcVZ3QUFGdityL25JSVJnV3VBQTBBSEFBcEFEZ0FQZ0JFQUVvQVVBQlhBRnNBWHdCakFHY0Fhd0J2QUhjQWV3Qi9BSU1BaHdDTEFJOEJEQUN3UGkrd0FFVllzRWN2RzdGSEhENVpzbjlLQXl1eWZIc0RLN0o0Z3dNcnNvQTdBeXV5Q2o1SEVSSTVzQW92c0FQUXNBTXZzQTdRc0E0dnNBb1FzQS9Rc0E4dnNsRU9EeEVTT2JCUkw3SndCd29yV0NIWUcvUlpzaFpSY0JFU09iQUtFTElnQndvcldDSFlHL1Jac0FNUXNpWUhDaXRZSWRnYjlGbXdEeEN3S3RDd0tpK3dEaEN3TDlDd0x5K3lOUWNLSzFnaDJCdjBXYkErRUxJOUNnb3JXQ0hZRy9SWnNENFFzR3pRc0dqUXNHVFFzRC9Rc0QwUXNHM1FzR25Rc0dYUXNFRFFzRWNRc2tnS0NpdFlJZGdiOUZtd1lOQ3dYTkN3V05Dd1M5Q3dSeEN3WWRDd1hkQ3dXZEN3VE5Dd0RoQ3lVZ2NLSzFnaDJCdjBXYkFQRUxKM0J3b3JXQ0hZRy9SWk1ERUJCZ1luSmlZM056WTJGeFlXQnhNVEZ4WVdCd1lHQnhZVkJnY0dCd0UySmljbUJnY0hCaFlXTmpjQk13TUdCaU1pSmljWEJqYzJOamNCRXpNSE13Y2hOek0zTXdNQkV5RUhJd2NsTnlFREl6Y0JCek0yTnpZbkFUY2hCeUUzSVFjaE55RUhFemNoQnlFM0lRY2hOeUVIQVRjMk56WXZBZ0VqTnpNM0l6Y3pBeU0zTXlVak56TTNJemN6QXlNM013TVFDb3RmWG5RRUNRaUxZRjEwQWd0Z3FsNWZBd0kzSjA4QkZqU0YvcmdGT0RvN1Znd05Cemw0VlFzRDBHRTdDbXROVW1ZQldRUllMRGtKK1dNM2J5Uy9GQVQvRk1Ba2JUZjV0VElCTFJTK0hnWGJGQUV1TW0wZSsrZ2ViMjhPRFZJQlNoVUJEeFg5YmhVQkRoWDlieFVCRFJYTkZBRVBGUDF1RkFFT0ZQMXZGQUVORkFGWVYzc05Da1VoWHZ6T2J5MXZGVzhzYjY5dkxXOEhBRzBzYlJWdExXMnZiU3h0QWRSbGVnSUNlbUZ1WlhzQ0FucGcvcmdDSlFFRFNrSXdPUlVkV0RBaFRnUUJTME5PQWdKT1NISS9VZ1JSUlFGUC9vVlBXMUpWQWw4Q0FUZ3AvTW9CTzhweGNjcit4UVlmQVIxMHFhbDAvdU9wL0xhcEJWUklCd05MZEhSMGRIUjArVGh4Y1hGeGNYRUR3Z0VHVVRjSEF3SCswdngrK3Z3VitYNzhmdnI4RmZrQUJRQmMvZFVIMXdoekFBTUFIQUFnQUNRQUtBQTBBTEFsTDdBaEw3SWNIZ01yc0NVUXNBRFFzQUF2c0NFUXNBTFFzQUl2c2cwQUhCRVNPYkFOTDdJZkFoNFJFam13SHk4d01Ra0RCVFEyTnpZMk5UUW1JeUlHQnpNMk5qTXlGaFVVQndZR0ZSY2pGVE1ETXhVakF6TVZJd1FZQTcvOFFmeEVCQThlSkVwY3A1V1FvQUxMQWpvck9UaGRXeS9LeXNwTEJBUUNCQVFHVXZ3eC9ERUR6L0U2T2hnbmgwcUFsNHQvTXpSQU5GODhRVnhNVzZyOVRBUUtuZ1FBQVFCaUFBQUVTZ1d3QUFZQU9iSUJCd2dSRWprQXNBQkZXTEFGTHh1eEJSdytXYkFBUlZpd0FpOGJzUUlRUGxtd0JSQ3lBd0VLSzFnaDJCdjBXYklBQXdVUkVqa3dNUUVCSXdFaE55RUVOdnpydndNUy9UNGJBMzBGUGZyREJSaVlBQUFDQUVILzZBUW9CRklBRWdBaEFFT3lDQ0lqRVJJNXNBZ1FzQmZRQUxBQVJWaXdBQzhic1FBWVBsbXdBRVZZc0Frdkc3RUpFRDVac2hZQkNpdFlJZGdiOUZtd0FCQ3lIZ0VLSzFnaDJCdjBXVEF4QVI0Q0J3Y09BaWNtSmljbU56YzJFallERmhZWEZqWTNOaWNtSmljbUJnWUNnSXJEV3c4REZaMzFqNkxYR2d3SkF4V2c4UGNEZTNDTTBoMEZBUU44Y1cyeVlRUk9CSS82bHhhZy80MEVCTXV1VUZFV293RUZpdjFmaDZRRUJlTEtLeTZJcVFRRWpQc0FBQUgvRC81RkFROEFtQUFNQUNjQXNBMHZzQUJGV0xBRUx4dXhCQkkrV2JJSkFRb3JXQ0hZRy9SWnNBMFFzQXpRc0F3dk1ERWxBd1lHSnlZbk54WVhNamMzQVE4bkc3eVBORDhiTGpHRkpDbVkvdnVncmdJQ0VaOE9BclA4QUFBQi83MyttUURNQUprQUF3QVNBTEFFTDdBQzBMQUNMN0FBMExBQUx6QXhFeU1UTTNPMldiYittUUlBQUFJQkV3VFhBM01HendBTEFCNEFYQUN3QXkreUNRUUtLMWdoMkJ2MFdiQUgwTEFITDdBTDBMQUxMN0FIRUxBUDBMQVBMN0FTMExBU0w3SS9FZ0Zkc0E4UXNCVFFzQlF2c0JJUXNoZ0VDaXRZSWRnYjlGbXdEeEN5SEFRS0sxZ2gyQnYwV2JBWUVMQWUwREF4QVFZR0p5WW1OUmNHRnpJM0V3WUdJeUltQndZSEp6WTJNeklXRmpjMk53Tk1DYVIvZTVLUUJIMkRITGdKWGtZcGdpZEZIbElNWVVNa2VDUVRReUlGcjJaeUFnSjFZQUoxQW5ZQkRWQm5Ud0VEVlJSVFpVWUtBUU5XQUFJQkVnVGVBMFVIQXdBTEFCb0FRd0N3QXkreUNRUUtLMWdoMkJ2MFdiQUwwTEFMTDdBSDBMQUhMN0FMRUxBYTBMQWFMN0FVMExBVUw3SVpHaFFSRWpteURSUVpFUkk1c1JNS0sxallHOXhaTURFQkJnWW5KaVkxRndZWE1qY25OemMyTnpZbUl6Y1hGZ2NHQndjRFJRdWhmSHFSakFhQWhCdS9FaTloQndSQVVnd1g5QVFEbXdvRnNXWnRBZ0p3WUFKeUFuTVNmQU1JTXhvYlV3RU1mV0lZUHdBQUFnRVJCTjhEWEFhS0FBNEFFZ0EzQUxBRUw3SUxCQW9yV0NIWUcvUlpzQTdRc0E0dnNBblFzQWt2c0E0UXNCSFFzQkV2c0EvUXNBOHZzQkVRc0JMUUdiQVNMeGd3TVFFR0JnY2pKaVluTlJjR0Z4WTJOeWNYQndjRFhBcWRmdytCa3dLU0JJTTlXUTQ1b3NKeEJiQmliUUlEYjJBQkFuTUNBVGs4MndIRUFRQUNBTTBFNUFPV0J0TUFCZ0FZQUkwQXNBRXZzQWJRc0FZdlFBa1BCaDhHTHdZL0JnUmRzZ0FCQmhFU09SbXdBQzhZc0FZUXNBTFFzQUVRc0FQUXNBTXZzQUFRc0FUUUdiQUVMeGl3QmhDd0N0Q3dDaTlBQ3g4S0x3by9DazhLWHdvRlhiQU4wTEFOTDdRL0RVOE5BbDJ3Q2hDd0Q5Q3dEeSt3RFJDeUV3WUtLMWdoMkJ2MFdiQUtFTElXQmdvcldDSFlHL1Jac0JNUXNCalFNREVCSXljSEl5VXpOd1lHSXlJbUJ3WUhKelkyTXpJV056WTNBNWFUcGRxM0FVK0E2d3RkUFNseEp6NGlUd3RkUUNaMkprQWlCT1NkbmZUbVJsbEtBUVJHRTBWZFNRRUNSZ0FDQU00RTVBUjVCczhBQmdBVkFGMEFzQUV2c0FEUUdiQUFMeGl3QVJDd0J0Q3dCaSsyRHdZZkJpOEdBMTJ3QXRDd0FSQ3dBOUN3QXkrd0FCQ3dCTkFac0FRdkdMQUJFTEFIMExBSEw3QU8wTEFPTDdJSUJ3NFJFam14RFFvcldOZ2IzRm15RkE0SEVSSTVNREVCSXljSEJ3RXpGemMzTmpZbkp6Y1dGZ2NHQmdjSEE1YVVvTjYyQVRhM3FCTXJWZzVoSHd0M2NnTURSRW9LQk9TNXVBRUJCbnlEQlF0cUJRSmRCMUJETmtVUVBRQUFBZ0FpQk04RGt3YUNBQVlBQ2dCT0FMQUJMN0FBMEJtd0FDOFlzQUVRc0FQUXNBTXZzQVhRc0FVdnRnOEZId1V2QlFOZHNBTFFzQUFRc0FUUUdiQUVMeGl3QVJDd0NOQ3dDQyt3QjlBWnNBY3ZHTEFJRUxBSzBMQUtMekF4QVNNbkJ5TUJNd1VqQXpNRGs2K0t3TkFCUjVUK2ozeVd0Z1RQblowQkJsVUJBZ0FDQU5JRTRRVDdCcFVBQmdBS0FGUUFzQU12c0FIUXNBRXZ0ZzhCSHdFdkFRTmRzQU1Rc0FMUUdiQUNMeGl3QVJDd0JOQ3dBeEN3QmRDd0JTK3dBaEN3QnRBWnNBWXZHTEFERUxBSjBMQUpMN0FIMExBSEw3QUpFTEFLMEJtd0NpOFlNREVCTXhNakp3Y2pBVE1ESXdJYmxldXZpTURTQTFuUThaWUY2UDc1bnA0QnRQNzlBQUlCRVFUZkExd0dpZ0FPQUJJQU53Q3dCQyt5Q3dRS0sxZ2gyQnYwV2JBTzBMQU9MN0FKMExBSkw3QU9FTEFTMExBU0w3QVEwTEFRTDdBU0VMQVIwQm13RVM4WU1ERUJCZ1lISXlZbUp6VVhCaGNXTmpjbE14Y2pBMXdLblg4UGdaTUNrZ1NEUFZrTy91R0pTMVlGc0dKdEFnTnZZQUVDY3dJQk9UemJ4Z0FBQVFEOEJJNENKd1k5QUFjQURBQ3dCUyt3QU5Dd0FDOHdNUUVYQmdjSEl6YzJBY0JuU3hRWXRCRWRCajFYYm1hRWNzRUFBQUwvcFFBQUErTUVqUUFIQUFvQVU3SUVDd3dSRWptd0JCQ3dDdEFBc0FCRldMQUVMeHV4QkJvK1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBY3ZHN0VIRUQ1WnNnZ0NCQkVTT2JBSUw3SUFBUW9yV0NIWUcvUlpzZ29DQkJFU09UQXhBU0VESXdFekFTTUJJUU1DK2Y0Sm5NRUNtNklCQWJEK0l3R0VhQUVYL3VrRWpmdHpBYTRCK3dBQUF3QWRBQUFENXdTTkFBMEFGZ0FlQUh1eUdCOGdFUkk1c0JnUXNBM1FzQmdRc0JiUUFMQUFSVml3QVM4YnNRRWFQbG13QUVWWXNBQXZHN0VBRUQ1WnNoY0FBUkVTT2JBWEw3Sy9Gd0ZkdEI4WEx4Y0NYYlRmRis4WEFsMnlEZ0VLSzFnaDJCdjBXYklIRGhjUkVqbXdBQkN5RHdFS0sxZ2gyQnYwV2JBQkVMSWVBUW9yV0NIWUcvUlpNREV6RXdVV0ZnY0dCeFlXQndZR0J3TURGekkyTnpZbUp5Y1hNalkzTmljbkhjc0Jmci9DQ2dyU1QxWUVDTzNBdjBMMGJwVU1DMWRrK2Rsdmpnb1UxK0VFalFFRnBJeXFVeHFPWFoyMUF3SVMvb1VCWmxwVVlnV09BVjFUb0FVQkFBQUJBRWYvN0FRM0JLTUFIQUJPc2hNZEhoRVNPUUN3QUVWWXNBc3ZHN0VMR2o1WnNBQkZXTEFETHh1eEF4QStXYklBQ3dNUkVqbXlEZ01MRVJJNXNBc1FzaElCQ2l0WUlkZ2I5Rm13QXhDeUdnRUtLMWdoMkJ2MFdUQXhBUVlFSnk0Q056Y1NBQmNXRmhjakppWW5KZ1lIQmhjV0ZoY1dOd1BtSS83dHlJckJWaEVNSlFFNTRMalZDTE1GYlhpVHloOGJCZ1YyYlB0TUFYcTcwd1FFalB1WVdBRUlBVEFHQk5XMmNvSUVCY3Eybm1OMWl3UUsvQUFBQWdBZEFBQUVEd1NOQUFvQUZRQkRzaFVXRnhFU09iQVZFTEFDMEFDd0FFVllzQUl2RzdFQ0dqNVpzQUJGV0xBQUx4dXhBQkErV2JJTkFRb3JXQ0hZRy9SWnNBSVFzaFVCQ2l0WUlkZ2I5Rmt3TVRNVEJSNENCd2NDQUNFVEF4Y3lOamMzTmljbUp4M0xBVktXMm1VUUJSeitvdjc2Q0phVXZQTVpCaEk0UmF3RWpRRUVqZmlhTVA3OC9zc0Q5UHlqQWR2SE1hSm1mQVlBQUFFQUhRQUFBKzhFalFBTEFHR3lDUXdORVJJNUFMQUFSVml3Qmk4YnNRWWFQbG13QUVWWXNBUXZHN0VFRUQ1WnNnc0dCQkVTT2JBTEw3UWZDeThMQWwyeXZ3c0JYYklBQVFvcldDSFlHL1Jac0FRUXNnSUJDaXRZSWRnYjlGbXdCaEN5Q0FFS0sxZ2gyQnYwV1RBeEFTRURJUWNoRXlFSElRTWhBekg5L1VJQ1dSdjg4OHNEQnh2OXJqb0NCQUlPL29tWEJJMlovcklBQVFBZEFBQUQ0Z1NOQUFrQVI3SUhDZ3NSRWprQXNBQkZXTEFFTHh1eEJCbytXYkFBUlZpd0FpOGJzUUlRUGxteUNBSUVFUkk1c0FndnNnRUJDaXRZSWRnYjlGbXdCQkN5QndFS0sxZ2gyQnYwV1RBeEFTRURJeE1oQnlFRElRTWgvZ2hYdGNzQytodjl1ejhCK1FIei9nMEVqWm4rbUFBQUFRQk0vKzRFUVFTakFCOEFYTEllSUNFUkVqa0FzQUJGV0xBTEx4dXhDeG8rV2JBQVJWaXdBeThic1FNUVBsbXlEZ3NERVJJNXNBc1FzaEVCQ2l0WUlkZ2I5Rm13QXhDeUdRRUtLMWdoMkJ2MFdiSWZDd01SRWptd0h5K3lIQUVLSzFnaDJCdjBXVEF4SlFZR0p5NENOemNTQUJjV0ZoY25KaWNtQmdjR0Z4WVdGeFkzTnlFM0lRUFdQL0Nla2M5ZEVRY2hBVHZvczlZUXNSVGFsTXdnSEFzTWhXK2xhaTMrN2hvQnc1WlJWd01Da1B5ZE93RVdBVFlHQk1DdkFkTUlCY2k0bjE5NmlBTUZUdTZRQUFBQkFCMEFBQVNhQkkwQUN3Qm9zZ0VNRFJFU09RQ3dBRVZZc0Fvdkc3RUtHajVac0FCRldMQUhMeHV4QnhvK1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNBRXZHN0VCRUQ1WnNnZ0VCeEVTT1h5d0NDOFl0R0FJY0FnQ2NiS2dDQUZkdEdBSWNBZ0NYYklEQVFvcldDSFlHL1JaTURFaEl4TWhBeU1UTXdNaEV6TUR6N1JXL2JoWHRjdTBXUUpJV3JVQjh2NE9CSTM5L1FJREFBQUJBQ29BQUFHcUJJMEFBd0Frc2dJRUJSRVNPUUN3QUVWWXNBSXZHN0VDR2o1WnNBQkZXTEFBTHh1eEFCQStXVEF4TXlNVE0rQzJ5cllFalFBQi8vYi82d09iQkkwQURnQXZzZ3dQRUJFU09RQ3dBRVZZc0FBdkc3RUFHajVac0FCRldMQUZMeHV4QlJBK1diSUxBUW9yV0NIWUcvUlpNREVCTXdNR0JpY21KamNYQmhjV05qY0M1TGVNRnV5b3JjSUl0UXpJVzM0UkJJMzh4YVBFQkFTNW9BSEJCQUp2WkFBQkFCMEFBQVIvQkkwQURBQk1zZ29ORGhFU09RQ3dBRVZZc0FRdkc3RUVHajVac0FCRldMQUlMeHV4Q0JvK1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBc3ZHN0VMRUQ1WnNnQUVBaEVTT2JJR0JBSVJFamt3TVFFSEF5TVRNd00zQVRNQkFTTUJ3ckJBdGN1MFg1SUJ3KzM5ekFGOHpBSUdsZjZQQkkzOTRJa0JsLzN3L1lNQUFRQWRBQUFESXdTTkFBVUFMN0lGQmdjUkVqa0FzQUJGV0xBRUx4dXhCQm8rV2JBQVJWaXdBaThic1FJUVBsbXlBUUVLSzFnaDJCdjBXVEF4TnlFSElSTXo3QUkzRy8wVnk3U1hsd1NOQUFBQkFCMEFBQVd3QkkwQURnQmdzZ2dQRUJFU09RQ3dBRVZZc0FBdkc3RUFHajVac0FCRldMQUNMeHV4QWhvK1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNBZ3ZHN0VJRUQ1WnNBQkZXTEFNTHh1eERCQStXYklCQUFRUkVqbXlCd0FFRVJJNXNnb0FCQkVTT1RBeEFSTUJNd01qRXhNQkl3c0NJeE1CemQwQ0YrL0t0RWRxL2VXRjRreEV0TXNFamZ4ekE0Mzdjd0diQWZ2OGFnT3MvZHYrZVFTTkFBRUFIUUFBQkpvRWpRQUpBRXl5QVFvTEVSSTVBTEFBUlZpd0JTOGJzUVVhUGxtd0FFVllzQWd2RzdFSUdqNVpzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdBeThic1FNUVBsbXlBZ1VBRVJJNXNnY0ZBQkVTT1RBeElTTUJBeU1UTXdFVE13UFByZjVLbXJYTHJRRzNtclFEZFB5TUJJMzhpd04xQUFBQ0FFci82Z1JPQktNQUR3QWZBRWF5SENBaEVSSTVzQndRc0FqUUFMQUFSVml3Q0M4YnNRZ2FQbG13QUVWWXNBQXZHN0VBRUQ1WnNBZ1FzaE1CQ2l0WUlkZ2I5Rm13QUJDeUd3RUtLMWdoMkJ2MFdUQXhCU1ltQWpjM0VnQVhIZ0lIQndJQUV5WW1KeVlHQndZWEZoWVhGalkzTmdIMmo4VllFUVVnQVQvbGo4UlhFQVFjL3NLdUNYMXRsZEVkRlFnS2ZteVV6aDhWRUFTUkFRT2NLd0VOQVVjR0JJNytueW4rOFA2MUF4TjRpUVFGMTdhRlgzeU5CQVhSdklNQUFnQWRBQUFFS1FTTkFBb0FFd0JOc2dvVUZSRVNPYkFLRUxBTTBBQ3dBRVZZc0FNdkc3RURHajVac0FCRldMQUJMeHV4QVJBK1diSU1Bd0VSRWptd0RDK3lDZ0VLSzFnaDJCdjBXYkFERUxJVEFRb3JXQ0hZRy9SWk1ERUJBeU1UQlJZV0J3WUVJeVVGTWpZM05pWW5KUUVlVExYTEFibXoxUXNNL3ZyUi92MEJCMzJmRGd0dlovN2tBYmIrU2dTTkFRVENvS3pGbVFGeVpWOXNCQUVBQUFJQVJmODNCRXNFb3dBVEFDTUFPUUN3QUVWWXNBMHZHN0VOR2o1WnNBQkZXTEFGTHh1eEJSQStXYkFORUxJWEFRb3JXQ0hZRy9SWnNBVVFzaDhCQ2l0WUlkZ2I5Rmt3TVNVWEJ5Y0dJeVlDUHdJU0FCY1dGaElIQndJREppWW5KZ1lIQmhjV0ZoY1dOamMyQXd5Mmd0dENOOGZnREFNR0h3RkE1SkRHV0JJR0tvQUpmbTZWengwVkNBbDhiWlhPSHhaQnBHYkZDd01CSGVnbk5RRUlBVVlHQkpIKy9aNHkvcWNDSFhxTEJBWFl0b1JmZW84RUJkQzloUUFBQWdBZEFBQUVBUVNOQUEwQUZnQk5BTEFBUlZpd0JDOGJzUVFhUGxtd0FFVllzQUl2RzdFQ0VENVpzZzRDQkJFU09iQU9MN0lCQVFvcldDSFlHL1Jac2dvQkJCRVNPYkFDRUxBTjBMQUVFTElXQVFvcldDSFlHL1JaTURFQklRTWpFd1VXRmdjR0JSTVZJd0VYTWpZM05pWW5Kd0l6L3UxT3Rjc0JrYjNMREJMKytjYkEvbGprZDZBTUMyaHU5QUhCL2o4RWpRRUZ1SjNvWWY0akRBSllBWFJnVzJnRkFRQUFBUUFSLytzRDdRU2RBQ2NBVkFDd0FFVllzQW92RzdFS0dqNVpzQUJGV0xBZUx4dXhIaEErV2JJREhnb1JFam13Q2hDeUVnRUtLMWdoMkJ2MFdiQU8wTEFERUxJWEFRb3JXQ0hZRy9SWnNCNFFzaVVCQ2l0WUlkZ2I5Rm13SXRBd01RRTJMd0lrTnpZMk56Y1dGZ2NuTmljbUp5SUdCd1lYRnhZV0J3WUVKeVltTnhjR0ZoY3lOZ0xaRXFSOVB2Ny9EUWpuc3ltejF3VzBCU2szZjNHU0RCRzZRcnVsQ0FyKzk4RzY3d1cxQjRCOGVKWUJNWHMySnhkbXpveXlDZ0VFeEowQlVUUkZBMTVTY1RrVU43SjdtTEVGQXNlbEFXVnhBbHdBQUFFQWJRQUFCRUlFalFBSEFDNEFzQUJGV0xBR0x4dXhCaG8rV2JBQVJWaXdBeThic1FNUVBsbXdCaEN5QlFFS0sxZ2gyQnYwV2JBQjBEQXhBU0VESXhNaE55RUVKdjUrc0xXdy9uNGNBN2tEOVB3TUEvU1pBQUFCQUVYLzZnUlhCSTBBRVFBdUFMQUFSVml3Q1M4YnNRa2FQbG13QUVWWXNBUXZHN0VFRUQ1WnNnMEJDaXRZSWRnYjlGbXdDUkN3RWRBd01RRURCZ1FuSmlZM0V6TURCaFlYRmpZM0V3UlhneG4rNnNpLzJST0RzNFFOZFhSNnFSV0VCSTM4OWJyZUJBVGNzd01NL1BOMWdRTUVnbnNERFFBQkFIb0FBQVNaQkk0QUNBQTRzZ1VKQ2hFU09RQ3dBRVZZc0Fndkc3RUlHajVac0FCRldMQURMeHV4QXhvK1diQUFSVml3QlM4YnNRVVFQbG15QVFnRkVSSTVNREVCRnpjQk13RWpBemNCMGdjc0FjdkovWHFwOExVQkpGdGhBMlA3Y3dTTkFRQUJBSlVBQUFZcEJJNEFFZ0JaQUxBQVJWaXdBeThic1FNYVBsbXdBRVZZc0JJdkc3RVNHajVac0FCRldMQUlMeHV4Q0JvK1diQUFSVml3RHk4YnNROFFQbG13QUVWWXNBc3ZHN0VMRUQ1WnNnRVBFaEVTT2JJR0N3Z1JFam15RFJJTEVSSTVNREVCQnpjQk14TVhOd0V6QVNNRE5RY0JJd00zQVdzR0d3R0xvVkVCSHdGVHVmNFZxbG9FL2w2cVZhY0JKbEpDQTNmOGhqMWNBMXY3Y3dPVkNndjhiQVNOQVFBQi83WUFBQVJ0QkkwQUN3Qk1zZ0FNRFJFU09RQ3dBRVZZc0FFdkc3RUJHajVac0FCRldMQUtMeHV4Q2hvK1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNBY3ZHN0VIRUQ1WnNnQUJCQkVTT2JJR0FRUVJFamt3TVFFQk13RUJJd01CSXdFQk13SW9BV0hrL2hRQklzblYvcFRqQWZqKzZNZ0Myd0d5L2JUOXZ3RzYva1lDVlFJNEFBQUJBSFFBQUFSbEJJMEFDQUE0c2dBSkNoRVNPUUN3QUVWWXNBRXZHN0VCR2o1WnNBQkZXTEFITHh1eEJ4bytXYkFBUlZpd0JDOGJzUVFRUGxteUFBRUVFUkk1TURFQkFUTUJBeU1UQVRNQi9BR1QxdjNVUmJWTC91ckFBa3NDUXYwQS9uTUJyUUxnQUFILzNBQUFCQTRFalFBSkFFdXlCUW9MRVJJNUFMQUFSVml3Qnk4YnNRY2FQbG13QUVWWXNBSXZHN0VDRUQ1WnNnRUJDaXRZSWRnYjlGbXlCQUlCRVJJNXNBY1FzZ1lCQ2l0WUlkZ2I5Rm15Q1FZSEVSSTVNREUzSVFjaE53RWhOeUVINEFLV0cveUJHQU1WL1lzYkExOFhsNWVGQTIrWmdnQUFBZ0FkLy9BQ2dRTWxBQTBBR1FCR3NoQWFHeEVTT2JBUUVMQUgwQUN3QUVWWXNBY3ZHN0VIRmo1WnNBQkZXTEFBTHh1eEFCQStXYkFIRUxJUUFnb3JXQ0hZRy9SWnNBQVFzaFlDQ2l0WUlkZ2I5Rmt3TVFVbUpqYzNOallYRmhZSEJ3WUdFeVluSmc4Q0ZoY1dOemNCSUlLQkRBMFRyWW1CZ1F3T0U2czBCR09GSFJRQkJHV0VIUk1NQkxTWmVxNjRCQVMxbVlHcXRBSXhmQU1EeExNM2Z3TUd5YllBQUFFQWF3QUFBZndERlFBR0FESUFzQUJGV0xBRkx4dXhCUlkrV2JBQVJWaXdBUzhic1FFUVBsbXlCQUVGRVJJNXNBUXZzZ01DQ2l0WUlkZ2I5Rmt3TVNFakV3YzNKVE1CZVpwbzNCZ0JaQlVDVlRpSGNRQUFBZi9wQUFBQ2N3TWtBQmNBUndDd0FFVllzQTh2RzdFUEZqNVpzQUJGV0xBQkx4dXhBUkErV2JJV0Fnb3JXQ0hZRy9SWnNBTFFzZ01QRmhFU09iQVBFTElJQWdvcldDSFlHL1Jac2hVV0R4RVNPVEF4SVNFM0FUWTNOaVluSmdZSEJ6WTJGeFlXQndZUEFpRUNMLzI2RkFGall3d0hOVEJDVUE2YUM2NkFlSXNGQ0pkQXhBRjdkQUVxVkVvd05nRUJTejRCZFpVQ0FuNW1lMzB6a1FBQi8vdi84d0o0QXlJQUpBQnNBTEFBUlZpd0RTOGJzUTBXUGxtd0FFVllzQmN2RzdFWEVENVpzZ0FYRFJFU09YeXdBQzhZdG9BQWtBQ2dBQU5kdHFBQXNBREFBQU54c0EwUXNnY0NDaXRZSWRnYjlGbXdBQkN5SkFJS0sxZ2gyQnYwV2JJU0pBQVJFam13RnhDeUhnSUtLMWdoMkJ2MFdUQXhFeGMyTmpjMkppTWlCeU0yTmpNV0ZnY0dCeFlIQmdZbkppWTFNeFFXTXpJMk56WW5KK1JPUWwwSEJqNHljQjJjQzU5OWZvNEZCNWgyQkFXMWhYZVZsMEk2UUZzSERZMVhBY3NCQWowMk1URmRaWGtEZG1GM1FpdUJiNEVDQW54c01qZEFOV1lGQVFBQUF2L3dBQUFDY3dNVkFBb0FEZ0JGQUxBQVJWaXdDUzhic1FrV1BsbXdBRVZZc0FVdkc3RUZFRDVac2d3RkNSRVNPYkFNTDdBQTBMSURBZ29yV0NIWUcvUlpzQWJRc0F3UXNBalFzZzBKQlJFU09UQXhBVE1ISXdjak55RTNBVE1CTXhNSEFndG9GMmNlbWg3K2xRMEJ2NlQrUWRBNkZnRXJncW1wY0FIOC9oWUJJeDRBQVFBVy8vTUNqd01WQUJzQVlBQ3dBRVZZc0FFdkc3RUJGajVac0FCRldMQU5MeHV4RFJBK1diQUJFTElFQWdvcldDSFlHL1Jac2djTkFSRVNPYkFITDdBRjBMQU5FTEFSMExBTkVMSVRBZ29yV0NIWUcvUlpzQWNRc2hrQ0NpdFlJZGdiOUZtd0J4Q3dHOUF3TVJNVElRY2hCell6TWhZSEJnWW5KaVluRnhZM01qWTNOaVluSWdkR2RnSFRHUDZ3TzBCQ2JZRUVCcTZEZFpFRmxBbHZRVllJQmtFOFF6OEJoZ0dQaEtzY2hYTjhtd0lDZ0dNQlpRSlNSRHhHQVNvQUFnQWUvL0lDYUFNZ0FCSUFIUUJWQUxBQVJWaXdBQzhic1FBV1BsbXdBRVZZc0F3dkc3RU1FRDVac0FBUXNnRUNDaXRZSWRnYjlGbXlCZ3dBRVJJNXNBWXZzZ1FHREJFU09iSVRBZ29yV0NIWUcvUlpzQXdRc2hnQ0NpdFlJZGdiOUZrd01RRUhJeVlITmhjeUZnY0dCaVltTnpjMkpETURKZ2NIQmhZeU5qYzJKZ0k4RFF2K1ZsSm1hbllHQnJEOGtnc0ZGZ0VKMU1kZFBRUUhPbjVYQmdjOEF4K0RBK0ZPQXBOc2VwOEVySXc0ek83K2JnSlJJa2RnVnowNVNnQUFBUUF2QUFBQ3N3TVZBQVlBTWdDd0FFVllzQVV2RzdFRkZqNVpzQUJGV0xBQ0x4dXhBaEErV2JBRkVMSUVBZ29yV0NIWUcvUlpzZ0FFQlJFU09UQXhBUUVqQVNFM0lRS2gvanV0QWNYK1RoY0NXZ0t4L1U4Q2s0SUFBd0FMLy9RQ2VBTWpBQlFBSUFBc0FINEFzQUJGV0xBU0x4dXhFaFkrV2JBQVJWaXdDQzhic1FnUVBsbXlLZ2dTRVJJNWZMQXFMeGkwVUNwZ0tnSnh0cUFxc0NyQUtnTnh0b0Fxa0NxZ0tnTmR0Q0FxTUNvQ2NySVlBZ29yV0NIWUcvUlpzZ0lxR0JFU09iSU5HQ29SRWptd0NCQ3lIZ0lLSzFnaDJCdjBXYkFTRUxJa0Fnb3JXQ0hZRy9SWk1ERUJCZ2NXQndZR0J5TW1KamMyTnlZM05qWVhGaFlETmlZaklnWUhCaFl6TWpZVE5pWWpJZ1lIQmhZek1qWUNjd2VJYkFRRG8zMFFmcEFGQjV4YkJBU2plSFNKeEFWQ05qNVZCd1pDTmo1V0x3VTJNRFpKQmdZNExqSk9Ba3R4U1R0MmFZQURBM2RpZ2trM2FXdDlBZ0ozL2tJeE4wQTBNamRCQVlvcU5Ud3ZLelU5QUFJQU52LzNBbmNESWdBVEFDRUFVUUN3QUVWWXNBZ3ZHN0VJRmo1WnNBQkZXTEFQTHh1eER4QStXYklDRHdnUkVqbXdBaSt3RHhDeUVRSUtLMWdoMkJ2MFdiQUNFTElVQWdvcldDSFlHL1Jac0FnUXNod0NDaXRZSWRnYjlGa3dNUUVHSXlJbU56WTJGeFlXQndjR0JDTW5OekkySnhZM056WW5KaVlqSWdZSEJoWUJ3azFhYTNvR0JxK0NmNFVMQkJiKy85UVVEWWViV0ZFOUNBTURCVGN0UFZVSEJqc0JRRUNPY1h1b0FnS3hrRFBTNFFGL1hxSUVTejRkSFM4NFhFSThUQUFCQUpNQ2l3TVlBeUlBQXdBUkFMQUNMN0lCQVFvcldDSFlHL1JaTURFQklUY2hBdjM5bGhzQ2FnS0xsd0FBQXdFTEJEOERHd1p4QUFNQUR3QVpBRDRBc0FCRldMQU5MeHV4RFJnK1diQUgwTEFITDdBQzBMQUNMN0FBMExBQUw3QU5FTElTQndvcldDSFlHL1Jac0FjUXNoZ0hDaXRZSWRnYjlGa3dNUUV6QnlNSE5EWXpNaFlWRkFZaklpWTNGak15TmpjMkppTWlBbFBJOW4rYlpVZERXV0ZHUlZ4U0JUNGhPZ2NFSWlKRUJuRzIza1pvWFVSRlpsdEVVRE1uSHpRQUFBUC9tdjVIQkVrRVVnQXFBRGdBUmdDUEFMQUFSVml3Snk4YnNTY1lQbG13QUVWWXNCWXZHN0VXRWo1WnNDY1FzQ3JRc0NvdnNnQURDaXRZSWRnYjlGbXlDQlluRVJJNXNBZ3ZzZzhJRmhFU09iQVBMN1NRRDZBUEFsMnlPQUVLSzFnaDJCdjBXYkljT0E4UkVqbXlJQWduRVJJNXNCWVFzakVCQ2l0WUlkZ2I5Rm13Q0JDeVBBRUtLMWdoMkJ2MFdiQW5FTEpEQVFvcldDSFlHL1JaTURFQkJ4WUhCd1lIQmljaUp3WUhCaGNYRmhZSEJnWUVKeVltTnpZMk55WTNOamNtTnpjMk56WWZBZ1VCSndZSEJoWXpNalkyTnpZbUp3TUdGaGNXTmpjM05pWW5KZ1lIQkMrUUlRa0ZISjU4bDBsTlFnZ0pZTEM2dFFnR2svN3Foc0xpQndWeFh5WUdDb3VDQ3dFUm5vQ2pKbXNCY2Z6MVQ0SVJDWUZ5WEs5bENRcFRidDhHZFZsam5BOENCM0JkWXB3UUE2Y0JYR0Vrcm1OTkFoYzRPVVlFQWdhVWcyT2NZQU1Gam5sWml6QXZQM3hlYkxBTXZtZFRBZ0lUQWZ2eUJ6OTVTVkl6V2prL1JBTUNuVlp2QWdKNFd4WldkUUlDZFY0QUFBSUFTLy9rQkljRVVnQVRBQ1VBYnJJaUppY1JFam13SWhDd0M5QUFzQUJGV0xBTEx4dXhDeGcrV2JBQVJWaXdEeThic1E4WVBsbXdBRVZZc0FJdkc3RUNFRDVac0FCRldMQVRMeHV4RXhBK1diSUFBZ3NSRWpteURnc0NFUkk1c0FJUXNoa0JDaXRZSWRnYjlGbXdDeEN5SWdFS0sxZ2gyQnYwV1RBeEpRSW5KaVluSmpjMkVqWVhGaFlYTnpNREV5TUJCaGNXRmhjV056WTNOelluSmljbUJnY0RNcGY4bWJFSEF3Z1VqYzkrZktvZ1VMREtFS2o5NGdjREJXeGdvRzh4RndVR0hUT0RqTFFhOHY3eUJ3VFV0VGxXcHdFYmlRTUVpblh1L2RiOThBSHRQRDl2Z0FNRDBGMWlJMjVrcndZRjdjd0FBQUlBUXdBQUJPVUZyd0FjQUNVQVliSWVKaWNSRWptd0hoQ3dITkFBc0FCRldMQURMeHV4QXh3K1diQUFSVml3QVM4YnNRRVFQbG13QUVWWXNCTXZHN0VURUQ1WnNoMEJBeEVTT2JBZEw3SUFBUW9yV0NIWUcvUlpzZ2tBSFJFU09iQURFTElsQVFvcldDSFlHL1JaTURFQkF5TVRCVElXQndZRkZoY1dCd2NHRnhZWEJ5TW1KeVkzTnpZbUp5VUZNalkzTmlZbkpRRnRiYjM5QWQzZTZoRVYvdldRRUFRR0ZnY0RCQ0VEdVNBRkF3a1VEV2xvL3JZQkphSzVFQTE2Zi82MUFuVDlqQVd2QWRlLzVIQkFxek0xbFRjb09pb1pMVVl1UllwMGlRYWVBWWlDZEg0RUFRQUJBRVFBQUFWcUJiQUFEQUJrc2dvTkRoRVNPUUN3QUVWWXNBUXZHN0VFSEQ1WnNBQkZXTEFJTHh1eENCdytXYkFBUlZpd0FpOGJzUUlRUGxtd0FFVllzQXN2RzdFTEVENVpzZ1lDQkJFU09iQUdMN0xQQmdGZHNpOEdBVjJ5QVFFS0sxZ2gyQnYwV2JJS0FRWVJFamt3TVFFakF5TVRNd016QVRNQkFTTUNJN0p4dlAyN2I0a0NYZmY5WVFHODFnS08vWElGc1AxK0FvTDlOZjBiQUFFQUpRQUFCQjRHQUFBTUFGQ3lCUTBPRVJJNUFMQUVMN0FBUlZpd0NDOGJzUWdZUGxtd0FFVllzQUl2RzdFQ0VENVpzQUJGV0xBTEx4dXhDeEErV2JJR0FnZ1JFam13QmkreUFRRUtLMWdoMkJ2MFdiSUtBUVlSRWprd01RRWpBeU1CTXdNekFUTUJBU01CdElKWHRnRUx0Wmx5QVh6ay9qSUJOOGdCOWY0TEJnRDhqZ0dzL2dyOXZBQUFBUUJFQUFBRlNnV3dBQXNBVExJSkRBMFJFamtBc0FCRldMQURMeHV4QXh3K1diQUFSVml3Qnk4YnNRY2NQbG13QUVWWXNBRXZHN0VCRUQ1WnNBQkZXTEFLTHh1eENoQStXYklBQXdFUkVqbXlCUU1CRVJJNU1ERUJBeU1UTXdNekFUTUJBU01CZVhtOC9idDJDUUxCK3Z6NkFpSFhBcno5UkFXdy9YZ0NpUDB5L1I0QUFRQWxBQUFFQmdZWUFBd0FVN0lGRFE0UkVqa0FzQUJGV0xBRUx4dXhCQjQrV2JBQVJWaXdDQzhic1FnWVBsbXdBRVZZc0FJdkc3RUNFRDVac0FCRldMQUxMeHV4Q3hBK1diSUFCQUlSRWpteUJnUUNFUkk1c2dvSEFCRVNPVEF4QVNNREl3RXpBeGNCTXdFQkl3RThCbHUyQVErMnB3SUJ5UG45MlFHRnpBSHovZzBHR1B4ekFRR3cvZ1Q5d2dBQUFRQVMveE1EN3dWekFDd0FiYklnTFM0UkVqa0FzQUJGV0xBSkx4dXhDUm8rV2JBQVJWaXdJeThic1NNUVBsbXlCQ01KRVJJNXNBa1FzQXpRc0FrUXNCRFFzQXdRc2hRQkNpdFlJZGdiOUZtd0JCQ3lHUUVLSzFnaDJCdjBXYkFqRUxBZzBMQWpFTEFuMExBZ0VMSXFBUW9yV0NIWUcvUlpNREVCTmk4Q0pEYzJOamMzTXdjV0ZnY25OaWNtSnlJR0J3WVdGaGNXQndZR0J3Y2pOeVltTnhjR0ZoY3lOZ0xhRXFSOVB2Ny9EUW5lcnl5Uks1R2RCclFGS1RkL2NaSU1CMXJ2U01VTUNOTzNMSkl0b3JnR3RBVitmSGlXQVRGN05pY1haczZKckJIWjNSeS9nd0ZSTkVVRFhsSThWVVltYUwyRXFoTGg0eGpCandGbWNBSmNBQUVBQmdBQUE5Z0VvZ0FlQUdxeUdoOGdFUkk1QUxBQVJWaXdFeThic1JNYVBsbXdBRVZZc0FZdkc3RUdFRDVac2g0R0V4RVNPYkFlTDdJQUJBb3JXQ0hZRy9SWnNBWVFzZ1VCQ2l0WUlkZ2I5Rm13Q05Dd0FCQ3dETkN3SGhDd0Q5Q3dFeEN3RjlDd0V4Q3lHUUVLSzFnaDJCdjBXVEF4QVNVR0J3Y2xCeUUzRnpZM053YzNNemMyTmhjV0ZnY25OaWNtQmdjSElRTDAvb0lqTWlFQ2hCdjhuUllKWmlNVXBoYWNDeGZxcmFlcUNyWVFyV0I5RUEwQmlRSDBBYzVjTlFLWWxnRXB4WElCZVdyYjhBVUUwcTRCNGdjRG1ZNXlBQUVBTkFBQUJHNEVqUUFYQUpTeUFCZ1pFUkk1QUxBQVJWaXdBUzhic1FFYVBsbXdBRVZZc0Jjdkc3RVhHajVac0FCRldMQU5MeHV4RFJBK1diSUFEUmNSRWpteUVCY05FUkk1c0JBdnNnOFFBVjJ3Rk5Dd0ZDKzBEeFFmRkFKeFFBOFBGQjhVTHhRL0ZFOFVYeFJ2RkFkZHNBVFFzQVF2c0JRUXNoTUVDaXRZSWRnYjlGbXdCZEN3RUJDd0NkQ3dFQkN5RHdRS0sxZ2gyQnYwV2JBSzBEQXhBUUV6QVRNSEpRY0hKUWNoQnlNM0lUY2hOeUUzTXdNekFnVUJrOWIrT084Vy90RUxFUUUvRnY3SEo3VW4vc1VWQVRvTy9zVVYvdXkvQWt3Q1FmMk1lUUlNUXdKNDNkMTRTM2tDZEFBQkFCMEFBQVBOQkkwQUJRQXlzZ0VHQnhFU09RQ3dBRVZZc0FRdkc3RUVHajVac0FCRldMQUNMeHV4QWhBK1diQUVFTElCQVFvcldDSFlHL1JaTURFQklRTWpFeUVEc3YzUXNMWExBdVVEOVB3TUJJMEFBQUwvc0FBQUE4NEVqUUFEQUFnQVBMSUNDUW9SRWptd0FoQ3dCdEFBc0FCRldMQUNMeHV4QWhvK1diQUFSVml3QUM4YnNRQVFQbG15QlFJQUVSSTVzZ2dCQ2l0WUlkZ2I5Rmt3TVNFaEFUTURKd2NCSVFQTysrSUNocVp5Q2liK2ZRSTBCSTMrejJ4WC9TY0FBQU1BU3YvcUJGZ0VwQUFEQUJJQUlnQm5zaGNqSkJFU09iQVhFTEFDMExBWEVMQUUwQUN3QUVWWXNBc3ZHN0VMR2o1WnNBQkZXTEFFTHh1eEJCQStXYkFDMExBQ0w3TGZBZ0Zkc2g4Q0FWMnlBUUVLSzFnaDJCdjBXYkFMRUxJV0FRb3JXQ0hZRy9SWnNBUVFzaDRCQ2l0WUlkZ2I5Rmt3TVFFaE55RUJKZ0kzTnhJQUZ4WVdFZ2NIQWdBVEppWW5KZ1lIQmhjV0ZoY1dOamMyQXp2K0xCc0IxUDZxMXVBYkJTQUJRT1NQeEZjUUJpSCt4TE1KZkc2VzBCMFZDQWgvYlpUT0h4VUIrWm45WGdVQk8vUXNBUXdCU0FZRWp2OEFuelQrNy83Q0F4UjRpQVFGMmJTRVlIbVFCQVhSdklRQUFBSC9zQUFBQTg0RWpRQUlBRGl5QWdrS0VSSTVBTEFBUlZpd0FpOGJzUUlhUGxtd0FFVllzQUF2RzdFQUVENVpzQUJGV0xBRUx4dXhCQkErV2JJSEFnQVJFamt3TVRNakFUTVRJd01uQjJTMEFvYW04c2VkQ2lvRWpmdHpBMXhzWUFBQUEvL1RBQUFEbFFTTkFBTUFCd0FMQUdTeUFBd05FUkk1c0FUUXNBQVFzQXJRQUxBQVJWaXdDaThic1FvYVBsbXdBRVZZc0FBdkc3RUFFRDVac2dNQkNpdFlJZGdiOUZtd0FCQ3dCOUN3QnkreUh3Y0JYYkxmQndGZHNnUUJDaXRZSWRnYjlGbXdDaEN5Q1FFS0sxZ2gyQnYwV1RBeElTRTNJUkVoTnlFVElUY2hBc3I5Q1JzQzkvMktHd0oyZXYwSkd3TDNtQUY3bUFGSm1RQUFBUUFkQUFBRWhnU05BQWNBUDdJQkNBa1JFamtBc0FCRldMQUdMeHV4QmhvK1diQUFSVml3QUM4YnNRQVFQbG13QUVWWXNBUXZHN0VFRUQ1WnNBWVFzZ01CQ2l0WUlkZ2I5Rmt3TVNFakV5RURJeE1oQTd5MnNQM01zTFhMQTU0RDlQd01CSTBBQWYvVkFBQUQzZ1NOQUF3QVE3SUdEUTRSRWprQXNBQkZXTEFJTHh1eENCbytXYkFBUlZpd0F5OGJzUU1RUGxteUFnRUtLMWdoMkJ2MFdiQUYwTEFJRUxJTEFRb3JXQ0hZRy9SWnNBZlFNREVCQVNFSElUY0JBemNoQnlFVEFsbitmZ0tJRy95UkdnR1UvQmdEUHh6OW0vNENPdjVmbVprQnVBRzFoNW4rWUFBREFGRUFBQVR6QkkwQUVnQVlBQjRBYjdJSEh5QVJFam13QnhDd0Z0Q3dCeEN3SE5BQXNBQkZXTEFSTHh1eEVSbytXYkFBUlZpd0NDOGJzUWdRUGxteUVCRUlFUkk1c0JBdnNBRFFzZ2tJRVJFU09iQUpMN0FHMExBSkVMSVZBUW9yV0NIWUcvUlpzQUFRc2hzQkNpdFlJZGdiOUZtd0Z0Q3dGUkN3SE5Bd01RRVdGZ2NHQUFjSEl6Y21KamMrQWpjM013RUNCUk1HQmdVU0pRTTJOZ05KeWVFUEV2N0w2eGkxR012aEVReVQrSndadGYyeUh3RVlkS0s2QXdvZi91cDFvTHNFRkJQMXdORCsvdzF1Y0JIOXZJclJlUWwyL2EzKzdoOENkUTJuZlFFUEgvMk1EYWdBQVFCK0FBQUU5UVNOQUJvQVhMSVpHeHdSRWprQXNBQkZXTEFETHh1eEF4bytXYkFBUlZpd0VTOGJzUkVhUGxtd0FFVllzQmt2RzdFWkdqNVpzQUJGV0xBSkx4dXhDUkErV2JJWUF3a1JFam13R0Mrd0FOQ3dHQkN5Q3dFS0sxZ2gyQnYwV2JBSTBEQXhBU1FURXpNREJnQUhBeU1USmlZbkpqY1RNd01HRnhZV0Z4TXpBcklCSHpzMHRUVWsvdWJnT0xZNGw3WVVEUTAwdGpRSkFnSmtYWUsyQWJrNkFXSUJPUDdJOS83YkdQN2ZBU0VXd0pwZlpRRTQvc2RBUVhLUkZ3TFVBQUVBREFBQUJHb0VvUUFpQUZteUFDTWtFUkk1QUxBQVJWaXdHQzhic1JnYVBsbXdBRVZZc0E4dkc3RVBFRDVac0FCRldMQWhMeHV4SVJBK1diSWdBUW9yV0NIWUcvUlpzQURRc0JnUXNnWUJDaXRZSWRnYjlGbXdBQkN3RHRDd0lCQ3dFZEF3TVNVa0V6YzJKaWNtQmdjR0J4Y1dGd2NoTnpjbUp5WVNKQmNXRWc4Q0FnYzNCeUVDVlFFZk5BVVRoSXlaMHhZTUFRRU9xaGorU2h5cFlBRUVsQUVTcDhqcEJ3TUdLZFN5Ry81Sm5FTUJqU1NweGdNRXphMTBPU25pTjUyWEFvN0YxQUUycXdRRS92alRMeXorenAwRGx3QUJBR3ovNndUb0JJMEFHQUJvc2djWkdoRVNPUUN3QUVWWXNBSXZHN0VDR2o1WnNBQkZXTEFPTHh1eERoQStXYkFBUlZpd0Z5OGJzUmNRUGxtd0FoQ3lBUUVLSzFnaDJCdjBXYkFGMExJSUFoY1JFam13Q0Mrd0RoQ3lEd0VLSzFnaDJCdjBXYkFJRUxJVUFRb3JXQ0hZRy9SWk1ERUJJVGNoQnlFRE5oY1dGZ2NHQmdjM0pEYzJKaWNtQndNakFjWCtweHNEYnh2K256cVZsYm5GREE3LzZBOEJGeGtOWFhKK3RtYTBBL1NabWY3V05BUUV6cmk4eHdLWEJlbHVnZ0lETXYzTkFBQUJBRWYvN0FRM0JLTUFId0Jxc2hNZ0lSRVNPUUN3QUVWWXNBc3ZHN0VMR2o1WnNBQkZXTEFETHh1eEF4QStXYkFMRUxBUDBMQUxFTElTQVFvcldDSFlHL1Jac0FNUXNCYlFzQll2c3Q4V0FWMnlIeFlCWGJJWEFRb3JXQ0hZRy9SWnNBTVFzaDBCQ2l0WUlkZ2I5Rm13QXhDd0g5QXdNUUVHQkNjdUFqYzNFZ0FYRmhZWEl5WW1KeVlHQnlFSElRWVhGaFlYRmpjRDVpUCs3Y2lLd1ZZUkRDVUJPZUM0MVFpekJXMTRrTUl1QWJrYi9sSUlCZ2g1Wi90TUFYcTcwd1FFalB1WVdBRUlBVEFHQk5XMmNvSUVBN205bUVKQmJvQUVDUG9BQXYvRUFBQUdxQVNOQUJjQUlBQjJzZ2doSWhFU09iQUlFTEFaMEFDd0FFVllzQlV2RzdFVkdqNVpzQUJGV0xBR0x4dXhCaEErV2JBQVJWaXdEUzhic1EwUVBsbXdGUkN5Q1FFS0sxZ2gyQnYwV2JBTkVMSVFBUW9yV0NIWUcvUlpzaGNHRlJFU09iQVhMN0lZQVFvcldDSFlHL1Jac0FZUXNob0JDaXRZSWRnYjlGa3dNUUVXRmdjR0JDTWhFeUVEQmdZSEl6Y3pNalkzTnhNaEF3Y0RCVEkyTnpZbUp3VXRyczBMRGY3K3l2NDJyLzV0Y3piS25FTVdJbU9CSVJKdEF2bE5Ha2tCQW5LZURRdGtaZ0xXQkwrZHFzd0Q5UDNLNmRRQnBLUythd0ljL2txWS9sa0JmR1pYYVFVQUFBSUFIUUFBQnJVRWpRQVNBQnNBaExJQkhCMFJFam13QVJDd0ZOQUFzQUJGV0xBQ0x4dXhBaG8rV2JBQVJWaXdFUzhic1JFYVBsbXdBRVZZc0Fzdkc3RUxFRDVac0FCRldMQVBMeHV4RHhBK1diSUFEeEVSRWpsOHNBQXZHTElFQ3dJUkVqbXdCQyt3QUJDeURnRUtLMWdoMkJ2MFdiQUVFTElUQVFvcldDSFlHL1Jac0FzUXNoVUJDaXRZSWRnYjlGa3dNUUVoRXpNREJSWVdCd1lFSXlFVElRTWpFek1CQXdVeU5qYzJKaWNCUXdJMVdyUk1BUUN1elFzTC92N0wvalZYL2N0WHRjdTBBb1JLQVFKeW53MExZbWdDaWdJRC9rb0JCTCtkcU00Qjh2NE9CSTM5c3Y1WkFYcG9WbW9GQUFFQWJRQUFCTzBFalFBV0FGZXlCeGNZRVJJNUFMQUFSVml3QWk4YnNRSWFQbG13QUVWWXNBd3ZHN0VNRUQ1WnNBQkZXTEFWTHh1eEZSQStXYkFDRUxJQkFRb3JXQ0hZRy9SWnNBWFFzZ2dNQWhFU09iQUlMN0lTQVFvcldDSFlHL1JaTURFQklUY2hCeUVETmhjV0ZnY0RJeE0ySnlZbkpnY0RJd0hHL3FjY0EyOGIvcDg2a1pxOHhCUTZ0VGtIQmhhb2diTm10UVAwbVpuKzFqSURBdGk3L3B3QlpUZ3VrUVlETXYzTkFBRUFIZjZiQklVRWpRQUxBRUt5QVF3TkVSSTVBTEFDTDdBQVJWaXdCaThic1FZYVBsbXdBRVZZc0Fvdkc3RUtHajVac0FCRldMQUFMeHV4QUJBK1diQUUwTElJQVFvcldDSFlHL1JaTURFaElRTWpFeUVUTXdNaEV6TUR1LzZOUHJVKy9vckx0TEFDTmJDMC9wc0JaUVNOL0FzRDlRQUNBQi8vK3dQYkJJMEFEQUFWQUZ1eUV4WVhFUkk1c0JNUXNBUFFBTEFBUlZpd0N5OGJzUXNhUGxtd0FFVllzQW92RzdFS0VENVpzQXNRc2dFQkNpdFlJZGdiOUZteUFnb0xFUkk1c0FJdnNoUUJDaXRZSWRnYjlGbXdDaEN5RlFFS0sxZ2gyQnYwV1RBeEFTRURCUllXQndZRUp5VVRJUUUyTmpjMkppY2xBd1BCL2NBeUFSbXR2aFFXL3V2Qi9rektBdkwrS1hHVUJBSnlaLzcvU2dQMy91QUJCTDZlcmM0RUFRU04vQW9DZUdkYlpnVUIvbGtBQXYrSi9xd0VtZ1NOQUE0QUZRQlZzaElXRnhFU09iQVNFTEFFMEFDd0RDK3dBRVZZc0FRdkc3RUVHajVac0FCRldMQUtMeHV4Q2hBK1diSUdBUW9yV0NIWUcvUlpzQXdRc0FuUXNBWVFzQTdRc0JEUXNBUVFzaEVCQ2l0WUlkZ2I5Rmt3TVRjMk5qY1RJUU16QXlNVElRTWpFd1VsRXlFREJ3SXRiSVluWWdMeXNJdFd0VHo4MUR1MlZ3RWpBaktWL25OTUVFV1dZdmkzQWViOEMvNFVBVlQrclFIckF3TURYUDZRUS83dEFBQUIvNjhBQUFZRUJJMEFGUUNTc2cwV0Z4RVNPUUN3QUVWWXNBa3ZHN0VKR2o1WnNBQkZXTEFOTHh1eERSbytXYkFBUlZpd0VTOGJzUkVhUGxtd0FFVllzQUl2RzdFQ0VENVpzQUJGV0xBR0x4dXhCaEErV2JBQVJWaXdGQzhic1JRUVBsbXlEQUlORVJJNWZMQU1MeGl5b0F3QlhiUmdESEFNQWwyeUJBRUtLMWdoMkJ2MFdiQUIwTElJQkF3UkVqbXdEQkN3RDlDeUV3d0VFUkk1TURFQkp3TWpFeU1CSXdFRE14TXpFek1ETXdFekFRRWpBNkJvVjdaWVd2NTM4UUhxOE03TFcxaTJXVThCZk9mK1BBRVExQUgxQWY0S0FmYitDZ0piQWpMK0F3SDkvZ01CL2YzRC9iQUFBQUVBRWYvdUE5NEVvQUFvQUlLeUdpa3FFUkk1QUxBQVJWaXdEeThic1E4YVBsbXdBRVZZc0Jzdkc3RWJFRDVac0E4UXNnY0JDaXRZSWRnYjlGbXlEQThiRVJJNXNpZ1BHeEVTT2JBb0w3Sy9LQUZkc2k4b0FWMjAzeWp2S0FKZHRLOG92eWdDY2JJbkFRb3JXQ0hZRy9SWnNoUW5LQkVTT2JJZkd3OFJFam13R3hDeUlRRUtLMWdoMkJ2MFdUQXhBVEkyTnpZbkppY21Cd1lIQnpZMkZ4WVdCd1lIRmhZSERnSW5KaVkzTXhRWEZqWTNOaVVuTndJQmY1SUtCeGt6bG10RlF4RzJFUHUzdnRjS0N2SlZZQVVIZmVLSnRkTUZzdG1CcVFzWS92dUVHd0tmWVZjMkpVMEVBaTBzVVFHV3NBSURwbzI0WWlHR1hXdWRWQUlDdFpxeEJRTm1XN3dDQVpnQUFRQWZBQUFFb1FTTkFBa0FUTElEQ2dzUkVqa0FzQUJGV0xBQUx4dXhBQm8rV2JBQVJWaXdCeThic1FjYVBsbXdBRVZZc0FJdkc3RUNFRDVac0FCRldMQUZMeHV4QlJBK1diSUVBQUlSRWpteUNRQUNFUkk1TURFQk13TWpFd0VqRXpNREEvV3N5cktjL1FtcnlyS2NCSTM3Y3dOLy9JRUVqZnlCQUFFQUhnQUFCRmNFalFBTUFHaXlDZzBPRVJJNUFMQUFSVml3QkM4YnNRUWFQbG13QUVWWXNBZ3ZHN0VJR2o1WnNBQkZXTEFDTHh1eEFoQStXYkFBUlZpd0N5OGJzUXNRUGxteUJnUUNFUkk1ZkxBR0x4aXlvQVlCWGJSZ0JuQUdBbDJ5QVFFS0sxZ2gyQnYwV2JJS0FRWVJFamt3TVFFakF5TVRNd016QVRNQkFTTUJsMjFYdGN1MFdGZ0IwdWo5MXdGdzJnSDIvZ29FamY0REFmMzl2UDIzQUFIL3hBQUFCSGtFalFBUUFFMnlCQkVTRVJJNUFMQUFSVml3QUM4YnNRQWFQbG13QUVWWXNBRXZHN0VCRUQ1WnNBQkZXTEFJTHh1eENCQStXYkFBRUxJREFRb3JXQ0hZRy9SWnNBZ1FzZ29CQ2l0WUlkZ2I5Rmt3TVFFREl4TWhBd1lHQnlNM056WTJOemNUQkhuTHRLLytiWFUyeDVWTEZpbGdmQ0FTYndTTiszTUQ5UDNQNk5jRXBBSUhucmh1QWh3QUFRQlkvK2dFVkFTTkFCRUFRN0lCRWhNUkVqa0FzQUJGV0xBQ0x4dXhBaG8rV2JBQVJWaXdFQzhic1JBYVBsbXdBRVZZc0Fndkc3RUlFRDVac2dFQ0NCRVNPYklOQVFvcldDSFlHL1JaTURFQkZ3RXpBUTRDSXlJbk54WTNNamNETXdIZUZBR0oyZjNhUG1OOFVEVTBFem9kWGxMcnlBSW5iUUxUL0dSd1pUUUpsUWdCYndPZkFBRUFIZjZzQklZRWpRQUxBRUt5Q1F3TkVSSTVBTEFDTDdBQVJWaXdCaThic1FZYVBsbXdBRVZZc0Fvdkc3RUtHajVac0FCRldMQUVMeHV4QkJBK1diSUFBUW9yV0NIWUcvUlpzQW5RTURFbE13TWpFeUVUTXdNaEV6TUQxNmhub2p2OGJNdTBzQUkxc0xXWS9oUUJWQVNOL0FzRDlRQUJBRm9BQUFRdUJJMEFFZ0JJc2c4VEZCRVNPUUN3QUVWWXNBZ3ZHN0VJR2o1WnNBQkZXTEFSTHh1eEVSbytXYkFBUlZpd0FDOGJzUUFRUGxteURnQUlFUkk1ZkxBT0x4aXlCQUVLSzFnaDJCdjBXVEF4SVNNVEJpY21KamNUTXdNR0Z4WVhGamNUTXdOa3RWV1BuYnJFRkRtMU9nY0hGcXFDc0dhMEFjTXhBZ0xXdmdGai9wdzRMcE1EQXpFQ01nQUJBQjBBQUFYOUJJMEFDd0JNc2dZTURSRVNPUUN3QUVWWXNBSXZHN0VDR2o1WnNBQkZXTEFHTHh1eEJobytXYkFBUlZpd0NpOGJzUW9hUGxtd0FFVllzQUF2RzdFQUVENVpzZ2tCQ2l0WUlkZ2I5Rm13QmRBd01TRWhFek1ESVJNekF5RVRNd1V5K3V2THRMQUJlN0Myc0FGN3NMVUVqZndMQS9YOEN3UDFBQUVBSGY2c0JmNEVqUUFQQUZLeURCQVJFUkk1QUxBQ0w3QUFSVml3Qmk4YnNRWWFQbG13QUVWWXNBb3ZHN0VLR2o1WnNBQkZXTEFPTHh1eERobytXYkFBUlZpd0JDOGJzUVFRUGxteUFBRUtLMWdoMkJ2MFdiQU4wTEFKMERBeEpUTURJeE1oRXpNRElSTXpBeUVUTXdWT3FXZWpQUHIweTdTd0FYdXd0ckFCZTdDMm1QNFVBVlFFamZ3TEEvWDhDd1AxQUFBQ0FGRC8rd1NiQkkwQURBQVZBRnV5QmhZWEVSSTVzQVlRc0EzUUFMQUFSVml3Q2k4YnNRb2FQbG13QUVWWXNBY3ZHN0VIRUQ1WnNBb1FzZ2tCQ2l0WUlkZ2I5Rm15REFjS0VSSTVzQXd2c2hRQkNpdFlJZGdiOUZtd0J4Q3lGUUVLSzFnaDJCdjBXVEF4QVJZV0J3WUVKeVVUSVRjaEF4TTJOamMySmljbEF3TXdyYjRVRnY3c3dmNUtzUDY2R3dINVRMVnprUVFDY1dqL0FFb0MxZ1MrbnF2UUJBRUQ5Sm4rU3YzQUFubG1XbWNGQWY1Wi8vOEFILy83QmFFRWpRQW1BZ2dBQUFBSEFjSUQ5d0FBQUFJQUgvLzdBOU1FalFBS0FCTUFUYklMRkJVUkVqbXdDeEN3QnRBQXNBQkZXTEFJTHh1eENCbytXYkFBUlZpd0J5OGJzUWNRUGxteUNnY0lFUkk1c0FvdnNoSUJDaXRZSWRnYjlGbXdCeEN5RXdFS0sxZ2gyQnYwV1RBeEFSWVdCd1lFSnlVVE13TVROalkzTmlZbkpRTUNhSzIrRkJiKzdNTCtUTXF5VExWeGxBUUVjbW4rLzBvQzFnUytucXZRQkFFRWpmNUsvY0FDZUdkV2F3VUIvbGtBQUFFQUlQL3FCQm9Fb1FBZkFIT3lCQ0FoRVJJNUFMQUFSVml3RlM4YnNSVWFQbG13QUVWWXNCd3ZHN0VjRUQ1WnNBRFFzQndRc2dNQkNpdFlJZGdiOUZteUNCd1ZFUkk1ZkxBSUx4aTBZQWh3Q0FKZHNxQUlBVjIwWUFod0NBSnhzZ2NCQ2l0WUlkZ2I5Rm13RlJDeURnRUtLMWdoMkJ2MFdiQVZFTEFTMERBeEV4WVdGeFkyTnlFM0lUWW5KaVluSmdZSEJ6WWtGeFlTQndjQ0FDY21KaWZUQjNSN2pMd3Qva2diQWF3SUJneDhhWUNiSXJVbUFRL0YwK0ViQ2lMK3pONjkzQWdCZW5kNkF3TzZ2cGhEUW14K0JBU0VkZ0c4MWdRRS9zN3ZULzc0L3NrR0JOT3pBQUFDQUIzLzZnWDNCS0lBRlFBbUFJcXlBU2NvRVJJNXNBRVFzQ0xRQUxBQVJWaXdDUzhic1FrYVBsbXdBRVZZc0E0dkc3RU9HajVac0FCRldMQUdMeHV4QmhBK1diQUFSVml3QUM4YnNRQVFQbG15Q2dZSkVSSTVmTEFLTHhpMFlBcHdDZ0p4c3FBS0FWMjBZQXB3Q2dKZHNnVUJDaXRZSWRnYjlGbXdEaEN5R3dFS0sxZ2gyQnYwV2JBQUVMSWpBUW9yV0NIWUcvUlpNREVGTGdJM0J3TWpFek1ETXpZQUZ4WVdFZ2NIQWdBVE5pY21KaWNtQmdjR0Z4WVdGeFkyTndPZmhzaGdFZGRadGN1MFY4bEFBU3pUajhSWEVBWWgvc1d3QndRSmZtNlMwQjhXQ0FsK2JaYk9IaEFDaWZXUEFmNENCSTMrQ2ZrQkV3UUVqdjhBbnpQKzcvN0JBb0ZHUjNxTUJBWFJ0WVJuZW84RUJkVEFBQUwvM3dBQUJFQUVqZ0FOQUJVQVliSVFGaGNSRWptd0VCQ3dCOUFBc0FCRldMQUhMeHV4QnhvK1diQUFSVml3QUM4YnNRQVFQbG13QUVWWXNBa3ZHN0VKRUQ1WnNoRUhBQkVTT2JBUkw3SUxBUW9yV0NIWUcvUlpzZ0VMRVJFU09iQUhFTElTQVFvcldDSFlHL1JaTURFakFTWW1OelkyTXdVREl4TWhBUk1HRndVVEp5SUdJUUY5WEZzR0MvbkpBY2pLdFZUKzRQNjF0aGJqQVFKQy9uYVJBaEVtbFdTbXVBSDdjd0hmL2lFREthOEJBUUY4QVdzQUFBSC8rZ0FBQkN3RWpRQU5BR1d5Q3c0UEVSSTVBTEFBUlZpd0NDOGJzUWdhUGxtd0FFVllzQUl2RzdFQ0VENVpzZ2NDQ0JFU09YeXdCeThZc3FBSEFWMjBZQWR3QndKZHRHQUhjQWNDY2JJRUFRb3JXQ0hZRy9SWnNBSFFzQWdRc2dzQkNpdFlJZGdiOUZtd0J4Q3dETkF3TVFFakF5TVRJemN6RXlFSElRTXpBbVhiV2JWWjJ4dmFXQUxsRy8zUVBkc0IvZjREQWYyWEFmbVovcUFBQWYrdi9xd0dCQVNOQUJrQXJiSVVHaHNSRWprQXNBTXZzQUJGV0xBUUx4dXhFQm8rV2JBQVJWaXdGQzhic1JRYVBsbXdBRVZZc0Jndkc3RVlHajVac0FCRldMQUZMeHV4QlJBK1diQUFSVml3Q1M4YnNRa1FQbG13QUVWWXNBMHZHN0VORUQ1WnNoWVFCUkVTT1h5d0ZpOFlzcUFXQVYyMFlCWndGZ0pkdEdBV2NCWUNjYklJQVFvcldDSFlHL1Jac2dBSUZoRVNPYkFGRUxJQkFRb3JXQ0hZRy9SWnNBZ1FzQXZRc2c4V0NCRVNPYkFXRUxBUzBEQXhBUk16QXlNVEl3TWpBeU1USXdFakFRTXpFek1UTXdNekFUTUVRTXViVmFROGNOeGxWN1pZV3Y1MzhRSHE4TTdMVzFpMldVOEJmT2NDVVA1Ry9oWUJWQUgyL2dvQjl2NEtBbHNDTXY0REFmMytBd0g5QUFBQkFCNytyQVJYQkkwQUVBQ0FzZ0FSRWhFU09RQ3dBeSt3QUVWWXNBc3ZHN0VMR2o1WnNBQkZXTEFQTHh1eER4bytXYkFBUlZpd0JpOGJzUVlRUGxtd0FFVllzQWt2RzdFSkVENVpzZzBKQ3hFU09YeXdEUzhZdEdBTmNBMENjYktnRFFGZHRHQU5jQTBDWGJJSUFRb3JXQ0hZRy9SWnNnQUlEUkVTT2JBR0VMSUJBUW9yV0NIWUcvUlpNREVCQVRNREl4TWpBU01ESXhNekF6TUJNd0l1QVJHaFZhVThYdjdUYlZlMXk3UllXQUhTNkFKSi9rMytGZ0ZVQWZiK0NnU04vZ01CL1FBQkFCNEFBQVVOQkkwQUZBQjRzZ1VWRmhFU09RQ3dBRVZZc0FZdkc3RUdHajVac0FCRldMQVRMeHV4RXhvK1diQUFSVml3Q1M4YnNRa1FQbG13QUVWWXNCRXZHN0VSRUQ1WnNnQUdDUkVTT1h5d0FDOFlzcUFBQVYyMFlBQndBQUpkdEdBQWNBQUNjYkFFMExBQUVMSVFBUW9yV0NIWUcvUlpzZ2dRQUJFU09iQU0wREF4QVRjM013Y3pBVE1CQVNNQkp3Y2pOeU1ESXhNekFUOVRKNUV0TmdIUzZQM1dBWERhL3RSQktaRWxURmkxeTY4Q2p3SGs1UUgrL2J6OXR3SDJBYy9PL2dvRWpRQUFBUUJwQUFBRk9nU05BQTRBZmJJSER4QVJFamtBc0FCRldMQUdMeHV4QmhvK1diQUFSVml3Q2k4YnNRb2FQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFOTHh1eERSQStXYklJQmdJUkVqbDhzQWd2R0xLZ0NBRmR0R0FJY0FnQ1hiUmdDSEFJQW5HeUFRRUtLMWdoMkJ2MFdiQUdFTElGQVFvcldDSFlHL1Jac2d3QkNCRVNPVEF4QVNNREl4TWhOeUVETndFekFRRWpBbmxzVjdhdy9ya2JBZnhaV1FIUjZmM1dBWERhQWZiK0NnUDFtUDREQVFIOC9iejl0d0FBQWdCUS8rb0ZPQVNpQUNRQU1RQ2lzaFl5TXhFU09iQVdFTEFsMEFDd0FFVllzQXN2RzdFTEdqNVpzQUJGV0xBYkx4dXhHeG8rV2JBQVJWaXdCQzhic1FRUVBsbXdBRVZZc0FBdkc3RUFFRDVac2dJRUd4RVNPYkFDTDdBTEVMSU1BUW9yV0NIWUcvUlpzQVFRc2hRQkNpdFlJZGdiOUZtd0FoQ3lKd0VLSzFnaDJCdjBXYklXRkNjUkVqbXdBQkN5SkFFS0sxZ2gyQnYwV2JJaUpDY1JFam13R3hDeUxnRUtLMWdoMkJ2MFdUQXhCU1luQmljbUFoTTNFZ0EzQndZR0FoY1dGeFlYTWpjbUV4SVNGeFlXRnhZSEFnY1dGd0VXRnpZVE5qYzFKaWNtQmdjRTRNeWJsWmYvL2g0RElBRWEyeEYxbzBzT0VYZENhVEEvcEI4YTc3aVdvQU1CRFNuYlNILzkvUWVXeHlZTUF3cUtlNFFHRlFRM1BBSUVBVkFCRWlBQkF3RW5CSjRCbWY3UmtLdEtLUUVKeEFFdUFRSUJHd1VFekt0QmJ2N2F0Z3dDQVlEUFk0Y0JGV2s4THJVR0JmTFIvLzhBZEFBQUJHVUVqUUFtQWRJQUFBQUhBZDRBRVA3ZUFBSC90djZzQkcwRWpRQVFBRnF5QUJFU0VSSTVBTEFITDdBQVJWaXdBUzhic1FFYVBsbXdBRVZZc0E4dkc3RVBHajVac0FCRldMQU1MeHV4REJBK1diQUFSVml3Q2k4YnNRb1FQbG15QUFFSEVSSTVzZ1FCQ2l0WUlkZ2I5Rm15Q3dFSEVSSTVNREVCQVRNQkV6VVhBeU1USXdNQkl3RUJNd0lvQVdIay9oVFZxMVNsUEdyVi9wVGpBZmorNk1nQzJ3R3kvYlQrVlFNRS9oY0JWQUc2L2tZQ1ZRSTRBQUFCQUd6K3JBVi9CSTBBRHdCV3Nnc1FFUkVTT1FDd0FpK3dBRVZZc0Fndkc3RUlHajVac0FCRldMQU9MeHV4RGhvK1diQUFSVml3QkM4YnNRUVFQbG15QUFFS0sxZ2gyQnYwV2JBSUVMSUhBUW9yV0NIWUcvUlpzQXZRc0FBUXNBM1FNREVsTXdNakV5RVRJVGNoQnlFRElSTXpCTStwWjZJOC9HeXYvcVliQTI4Yi9xQ1ZBak93dHBqK0ZBRlVBL1NabWZ5a0EvVUFBQUVBV2dBQUJDMEVqUUFZQUZHeUJCa2FFUkk1QUxBQVJWaXdDeThic1FzYVBsbXdBRVZZc0Jjdkc3RVhHajVac0FCRldMQUFMeHV4QUJBK1diSVJDd0FSRWpsOHNCRXZHTElIQVFvcldDSFlHL1Jac0FUUXNCRVFzQlRRTURFaEl4TUdCd2NqTnlZbU54TXpBd1lYRmhjM013YzJOeE16QTJPMVZXZG5KNUlucUtFU09yVTdCZ01LalMrUkxWbHpaclFCd3lJS3g4VVMxYTRCWS82Y01DcUhIUER1RFNBQ01nQUFBUUFkQUFBRDdBU05BQk1BUnJJUUZCVVJFamtBc0FCRldMQUFMeHV4QUJvK1diQUFSVml3Q1M4YnNRa1FQbG13QUVWWXNCSXZHN0VTRUQ1WnNnUVNBQkVTT2JBRUw3SVBBUW9yV0NIWUcvUlpNREVUTXdNMkZ4NENCd01qRXpZbkppY21Cd01qNkxWVmxwUjlyVkFOT3JVNkJ3WVdxbnkzWnJVRWpmNDlNZ0lEWUxwNS9wd0JaVGd1a1FZRE0vM09BQUFDQUMvLzhRVmhCS0VBSGdBbkFHbXlEaWdwRVJJNXNBNFFzQ0RRQUxBQVJWaXdEeThic1E4YVBsbXdBRVZZc0FBdkc3RUFFRDVac2lNQUR4RVNPYkFqTDdLL0l3RmRzaFFCQ2l0WUlkZ2I5Rm13QmRDd0l4Q3dETkN3QUJDeUdnRUtLMWdoMkJ2MFdiQVBFTElmQVFvcldDSFlHL1JaTURFRkxnSTNOeVltTnhjR0ZoYzJBQmNlQWdjSElRWVhGaFlYRmpjWEJnTW1CZ2NGTmljbUpnTWZrK3BxSEFHUWxndVZDVWhTT0FFMzFaUFJXUk1VL01zTkRCT1hkNGlkTFg1ZGpzOHFBb1VSQ3hPR0R3R005WThJQzhtaEFXTnRFTzBCRmdRQ2lQQ2FobEJDYVhRQkFraVRWUVFSQThHcEFXTTlYbWNBQWdCQi8rd0VaQVNjQUJjQUlRQmVzaE1pSXhFU09iQVRFTEFZMEFDd0FFVllzQUF2RzdFQUdqNVpzQUJGV0xBSUx4dXhDQkErV2JJTkNBQVJFam13RFMrd0FCQ3lFd0VLSzFnaDJCdjBXYkFJRUxJWUFRb3JXQ0hZRy9SWnNBMFFzaDBCQ2l0WUlkZ2I5Rmt3TVFFZUFnY0hCZ0FuTGdJM053VTJKeVltSnlZSEp6WVRGamMyTnlVR0Z4WVdBcEtVMm1RUkVDTCt1OTZWejFrVEZBTXlGQXdVbkhXRW95cUtVTEp6UWlEOWV4RU1FWWdFbkFPSjg1UjE5LzdQQkFPRjhKcUdCVmxDWm5VQkFrbVVWZnZ0QkpkWWZRRmhQMTFwQUFBQkFCSC82QVB3QkkwQUd3Qm1zZ3NjSFJFU09RQ3dBRVZZc0FJdkc3RUNHajVac0FCRldMQU1MeHV4REJBK1diQUNFTElCQVFvcldDSFlHL1Jac0FUUXNoc01BaEVTT2JBYkw3SVpBUW9yV0NIWUcvUlpzZ1ViR1JFU09iSVFEQUlSRWptd0RCQ3lFd0VLSzFnaDJCdjBXVEF4QVNFM0lRY0JGaFlIRGdJbkppWTNNeFFXRnhZMk56WW1KeWMzQXVEOTFCd0RJQlQrZEpPd0NBZUc0SWExMGdXeWNtYUdwZ3dLY0hPSUhnUDBtWDcrbnhTNWgzT25XQU1GdFp4WVl3SUNkR2RZWXdVQnJnQUFBd0JLLytvRVdBU2tBQTRBRlFBY0FIT3lGeDBlRVJJNXNCY1FzQURRc0JjUXNCRFFBTEFBUlZpd0J5OGJzUWNhUGxtd0FFVllzQUF2RzdFQUVENVpzZzhCQ2l0WUlkZ2I5Rm15R1FBSEVSSTVmTEFaTHhpeW9Ca0JYYlJnR1hBWkFsMjBZQmx3R1FKeHNoTUJDaXRZSWRnYjlGbXdCeEN5RmdFS0sxZ2gyQnYwV1RBeEJTWUNOemNTQUJjV0ZoSUhCd0lBSnhZMk55RUdGZ0VtQmdjaE5pWUNBTmJnR3dVZ0FVRGtqOFJYRUFVYy9zTGdqTWd1L1lnUGd3RWVpc291QW5jUmdCQUZBVHYwTEFFTUFVZ0dCSTcvQUo0di92UCt1SjhGdmJtbHh3TjBCYjYzcE1jQUFBSC8vd0FBQTlnRW9nQW5BSyt5SlNncEVSSTVBTEFBUlZpd0hpOGJzUjRhUGxtd0FFVllzQXd2RzdFTUVENVpzZ1lNSGhFU09iQUdMN0lQQmdGZHNBSFFzQUV2UUFrZkFTOEJQd0ZQQVFSZHNnQUJBVjJ5QWdRS0sxZ2gyQnYwV2JBR0VMSUhCQW9yV0NIWUcvUlpzQXdRc2dzQkNpdFlJZGdiOUZtd0R0Q3dCeEN3RTlDd0JoQ3dGTkN3QWhDd0dOQ3dBUkN3R2RDd0hoQ3dJdEN5RHlJQlhiSTlJZ0Zkc2t3aUFWMndIaEN5SkFFS0sxZ2gyQnYwV1RBeEFTRUhJUWNISlFjbEJnY2xCeUUzRnpZM053YzNGemMzSXpjek56WTJGeFlXQnljMkp5WUdCd0dEQVpFVi9ua1FCUUdKRmY1L0p5OENoQnY4blJZSlJDWVJvUmFiQkJDZEZwTUlIK2FxcDZvS3RoQ3RXWG9ZQXFoNVhCSUJlUUZ2UlFLWWxnRWRaekVCZVFFU1hIazYydVlGQk5LdUFlSUhBNFdFQUFFQUh2L3dBOThFb1FBaUFKV3lBeU1rRVJJNUFMQUFSVml3Rmk4YnNSWWFQbG13QUVWWXNBa3ZHN0VKRUQ1WnNpSUpGaEVTT2JBaUw3SU1JZ0ZkdEJBaUlDSUNYYkFPMExJTkJBb3JXQ0hZRy9SWnNBSFFzQWtRc2dRQkNpdFlJZGdiOUZtd0loQ3dIdEN3SGk5QUNSOGVMeDQvSGs4ZUJGMnlBQjRCWGJBVDBMSVFCQW9yV0NIWUcvUlpzQllRc2hzQkNpdFlJZGdiOUZtd0VCQ3dJTkF3TVFFRkJoWVhGamNYQmljbUpqY0hOek0zSXpjek5pUVhGaGNISmlNbUF5RUhJUWNoQXZiK2RBUjJjVkI1RFhCc3V0c0tuaFdTRkpNVmpqMEJEOFJjaWlSWmIvbGFBWk1XL25FVEFaQUJsZ0YraXdJREhaY2RBZ0xpd1FGNWJYblQyUUlDSDVVZkJQN3BlVzBBQUFRQUhRQUFCNllFb2dBREFCRUFId0FwQUtpeUtDb3JFUkk1c0NnUXNBSFFzQ2dRc0EzUXNDZ1FzQlBRQUxBQVJWaXdKaThic1NZYVBsbXdBRVZZc0Nndkc3RW9HajVac0FCRldMQUVMeHV4QkJvK1diQUFSVml3SUM4YnNTQVFQbG13QUVWWXNDTXZHN0VqRUQ1WnNBUVFzQXZRc0FzdnNBTFFzQUl2dEFBQ0VBSUNYYklCQXdvcldDSFlHL1Jac0FzUXNoVURDaXRZSWRnYjlGbXdCQkN5SEFNS0sxZ2gyQnYwV2JJaUppQVJFam15SnlBbUVSSTVNREVsSVRjaEF4WVdCd2NHQmljbUpqYzNOallEQmhZWEZqWTNOelltSnlZR0J3RWpBUU1qRXpNQkV6TUc3djNqR1FJZWtwQ2dEQWNQMEplT29Rb0hEOU5KQjB0TFVXd09DUWRNU1ZGd0MvNHVyZjVLbXJYTHJRRzNtclM5amdOVEJMNk9TWjdBQkFTN2tFbWZ3UDVXV21ZQ0FtbGRWVnhrQWdKdFgveTVBM1Q4akFTTi9Jc0RkUUFDLzkwQUFBUndCSTBBRmdBZkFIWUFzQUJGV0xBTUx4dXhEQm8rV2JBQVJWaXdBeThic1FNUVBsbXlCZ01NRVJJNXNBWXZzQlhRc2dFQkNpdFlJZGdiOUZtd0JOQ3dCaEN3Q3RDd0NpKzB2Z3JPQ2dKZFFBa09DaDRLTGdvK0NnUmRzZ2dCQ2l0WUlkZ2I5Rm13Rk5Dd0NoQ3dGOUN3REJDeUh3RUtLMWdoMkJ2MFdUQXhKU01ISXpjak56TTNJemN6RXdVV0ZnY0dCQ01sQnpNbkJUWTJOelltSnlVQ1NQb2d0aUM3RzdvUXV4dTZad0cxcnNvTEMvNzd4djdwRVB2UkFRSnpuQTBNYUYvKzZiUzB0SmhabUFKUUFRVEluNnJUQVZueEFnSjlaV0Z3QkFFQUFBSUFILy9tQkJFR0FBQVRBQ0FBWkxJRklTSVJFam13QlJDd0hkQUFzQW92c0FCRldMQU9MeHV4RGhnK1diQUFSVml3Q0M4YnNRZ1FQbG13QUVWWXNBVXZHN0VGRUQ1WnNnY09DQkVTT2JJTURnZ1JFam13RGhDeUZ3RUtLMWdoMkJ2MFdiQUZFTEljQVFvcldDSFlHL1JaTURFQkJnWUhCaWNtSndjakFUTUROaGNlQWhjV0p5WW1KeVlIQXhZWEZqWTNOZ1FKRUZsRGk4WEhYaXVlQVF1MWJZSzZaNTVYQlFLNENYTmtxWFZST3FhS3hob0pBaGg1MGt5YkJRU1RnZ1lBL2NLUUJBRm94SFU5UW5XSkF3U3UvaW1tQkFYZXVsb0FBUUJELytnRDlnUlVBQndBUzdJQUhSNFJFamtBc0FCRldMQVBMeHV4RHhnK1diQUFSVml3Q0M4YnNRZ1FQbG15QUFFS0sxZ2gyQnYwV2JJRUR3Z1JFam15RWdnUEVSSTVzQThRc2hZQkNpdFlJZGdiOUZrd01TVVdOamMzRGdJbkpnSTNOeElBRnhZV0J5TTBKaWNtQWdjSEZCWUI2bUdkRzZ3UWhzeHJ5dFVaQXg0Qkx0aW16UUtxY1YrYnlRc0Jkb0lDY21JQlphbGZBd1FCTE9vYkFRQUJOQVlFMmF4cmd3UUcvdmppSkpTWEFBSUFSLy9uQklVR0FBQVNBQ0FBWWJJRUlTSVJFam13QkJDd0hkQUFzQWN2c0FCRldMQUVMeHV4QkJnK1diQUFSVml3Q2k4YnNRb1FQbG13QUVWWXNBMHZHN0VORUQ1WnNnWUVDaEVTT2JJTEJBb1JFam15R0FFS0sxZ2gyQnYwV2JBRUVMSWRBUW9yV0NIWUcvUlpNREVUTmhJMkZ4WVhFek1CSXpjR0p5WW1KeVkzTXdZWEZCWVhGamNUSmljbUJnZFFFNWJaZ0xSaGFiWCs5WnNPaEx5YnV3d0VCclVGQVhocm9uVldQSjJPeGhzQ0g2QUJEWVlEQklBQ05mb0FlSkVFQk9XN1B6d3BMSW1qQWdTakFmU1RCQVhjdGdBQ0FDVCtVQVEyQkZRQUd3QXFBSHl5Q3lzc0VSSTVzQXNRc0NiUUFMQUFSVml3QkM4YnNRUVlQbG13QUVWWXNBY3ZHN0VIR0Q1WnNBQkZXTEFNTHh1eERCSStXYkFBUlZpd0ZpOGJzUllRUGxteUJnUVdFUkk1c0F3UXNoRUJDaXRZSWRnYjlGbXlGQVFXRVJJNXNCWVFzaUVCQ2l0WUlkZ2I5Rm13QkJDeUpnRUtLMWdoMkJ2MFdUQXhFelkzTmhjV0Z6Y3pBd1lBSnlZbk54WVhCQk0zQmljbUppY21Oek1HRnhZV0Z4WTNFeVluSmdjR0IxQVhZcFh5d1Y4cm02d2ovdWZXdUp4QmVKNEJCRkVUaUxDYnV3b0VCclVIQlFsMFk2SjNWVHFndm1vNER3SWZ3WlRnQmdTUmdmd1U4UDd5QkFSbWkxb0VCZ0V5VllRRUJPVzZQencrUTNXSkJBU2xBZTZXQmdPN1pIZi8vd0NwQUFBREJBVzNBQVlBRmJBQUFBTC8xLzVnQkJBRVVnQVJBQjRBWkxJQUh5QVJFam13RzlBQXNBQkZXTEFKTHh1eENSZytXYkFBUlZpd0JpOGJzUVlZUGxtd0FFVllzQU12RzdFREVqNVpzQUJGV0xBQUx4dXhBQkErV2JJSENRTVJFam13Q1JDeUZRRUtLMWdoMkJ2MFdiQUFFTElhQVFvcldDSFlHL1JaTURFRkppY0RJd0UzQnpZWEZoWVhGZ2NIQmdBVEppWW5KZ2NERmhjV05qYzJBZ3k3WkdHMUFRU2FENGkrb0xnSkF3Y0pLdjd6alF0NFpKNXlXejJkanMwWkNCVUVlLzMyQmRvQmZwVUVCTjdCUUQ0NzdmN2hBc3QyaUFNRW1mMzVqd1VENUxWY0FBSUFSdjVnQkRVRVZBQVJBQjRBYTdJREh5QVJFam13QXhDd0hOQUFzQUJGV0xBR0x4dXhCaGcrV2JBQVJWaXdBeThic1FNWVBsbXdBRVZZc0Fndkc3RUlFajVac0FCRldMQU1MeHV4REJBK1diSUZCZ3dSRWpteUNnWU1FUkk1c2hjQkNpdFlJZGdiOUZtd0F4Q3lIQUVLSzFnaDJCdjBXVEF4RXpZQUZ4WVhOek1CSXhNR0p5NENKeVkzQmhjV0ZoY1dOeE1tSnlZR1R5QUJHYzY1WVNlZS92eTFZb0tzWnA1YkJ3UzhCd1lKZDJPWmQxMUJsWkRNQWg3NUFUMEZCSVJ6K2lZQ0JId0VBV2ZDZHpoRVBrUjNpd01FbHdJVGlRWUY1UUFDQUVYLzZ3UDdCRk1BRlFBZkFGK3lBQ0FoRVJJNXNCZlFBTEFBUlZpd0NDOGJzUWdZUGxtd0FFVllzQUF2RzdFQUVENVpzaG9JQUJFU09iQWFMN1MvR3M4YUFsMnlEQUVLSzFnaDJCdjBXYkFBRUxJUUFRb3JXQ0hZRy9SWnNBZ1FzaFlCQ2l0WUlkZ2I5Rmt3TVFVbUFqYzNFamMyRnhZU0J3Y2hCaFlYRmpjWEJnWURKZ1lIQlRjMkp5WW1BZ3pZN3hVREhhQ1d4c1BDR3hQOVBnK1RpNDJTTEVDMkFtNnVOQUlSQlFrSERXZ1RBZ0V2NXh3QkFaNlRCUWIrOHRoNmw4a0VCRjJCT1RnRHpBV2JvUUViTnpOVFhRQUFBZ0ExL2xBRUtBUlNBQndBS2dCOHNnc3JMQkVTT2JBTEVMQW4wQUN3QUVWWXNBY3ZHN0VIR0Q1WnNBQkZXTEFFTHh1eEJCZytXYkFBUlZpd0RDOGJzUXdTUGxtd0FFVllzQll2RzdFV0VENVpzZ1lIRmhFU09iQU1FTElSQVFvcldDSFlHL1Jac2hRSEZoRVNPYkFXRUxJaUFRb3JXQ0hZRy9SWnNBUVFzaWNCQ2l0WUlkZ2I5Rmt3TVJNMkVqWVhGaGMzTXdNR0FDY21KemNXRnhZVE53WW5KaVluSnlZM013WVhGaFlYRmpjVEppY21CZ2RWRkl2UGY4RmZLNXV1SS83cDFxaU5RVytJL1U4YWhMR01yQlFFQWdhMkJ3TUVhV0tlZVZVOG5ZcTNHd0llcEFFTGhRTUVrWUQ4QXVuKy9RUUVVNHRKQWdZQkZYS0VCQVRCcVRZK096dERkNGtFQjZjQjhaUUdBOWJCQUFFQWdmL25CVUVGeUFBZkFFNnlDeUFoRVJJNUFMQUFSVml3REM4YnNRd2NQbG13QUVWWXNBTXZHN0VERUQ1WnNnQU1BeEVTT2JJUUF3d1JFam13REJDeUZBRUtLMWdoMkJ2MFdiQURFTElkQVFvcldDSFlHL1JaTURFQkJnQW5MZ0luSmhJU0pCY1dBQmNqSmljbUp5WUdBZ2NIRkJZV0Z3UVRCTndzL3Jiamo5dURDZ3RkMEFFVW50VUJCQWk3QmoxUG00ZmZseE1EVFpKbEFUSm5BYy9nL3ZnRUE0VCtuYUlCYlFFZWpnTUUvdm5maWxOckJBU1kvdFRVVkh6TmJBTUxBVkVBQUFFQWhQL29CVU1GeHdBaEFGeXlGQ0lqRVJJNUFMQUFSVml3RFM4YnNRMGNQbG13QUVWWXNBTXZHN0VERUQ1WnNoRUREUkVTT2JBTkVMSVRBUW9yV0NIWUcvUlpzQU1Rc2hzQkNpdFlJZGdiOUZteUlBMERFUkk1c0NBdnNoOEJDaXRZSWRnYjlGa3dNU1VHQkNjdUFpY21OellTSkJjV0ZoY2pBaVVtQmdJWEZCWVdGeFkzRXlFM0lRUzJTZjdlczVqa2lBc0ZEUjdQQVMyeDEvNFN1UnorNTVic2tnSlJuV3plZ0R6K3VSd0NBTDVsY1FNRGgvK2dVWDdZQVZ5d0F3VHAwd0VhQ0FTNi9xREllOU53QVFWdUFVYWJBQUFDQUVRQUFBVVdCYkFBREFBWEFFYXlDeGdaRVJJNXNBc1FzQmZRQUxBQVJWaXdBUzhic1FFY1BsbXdBRVZZc0FBdkc3RUFFRDVac0FFUXNnMEJDaXRZSWRnYjlGbXdBQkN5RGdFS0sxZ2gyQnYwV1RBeE14TUZNZ1FYRmdjSEJnSUVCd01ERnpJMk5oSW5KaVluUlAwQmo3MEJFejA1RkFNWTJmNm96QW5HelpUNHFEc1FGc0NkQmJBQnZhYWV2eHZTL3JlNEFRVVMrNHNCZit3Qk1YK2h0UVFBQUFJQWhmL29CVjRGeUFBVEFDQUFScklJSVNJUkVqbXdDQkN3R05BQXNBQkZXTEFKTHh1eENSdytXYkFBUlZpd0FDOGJzUUFRUGxtd0NSQ3lGd0VLSzFnaDJCdjBXYkFBRUxJZEFRb3JXQ0hZRy9SWk1ERUZKaVlDSnlZU0VpUVhIZ0lYRmdjSEJnSUVBVFFtSnlZR0FoSVdGeFkyRWdLQ2pkbUFDd3hqMVFFUm1ZelpnZ3NGQ1FZZDBmN1JBVytwbVpQemxRYXJscEh6a2hVRGlRRUJucTBCWHdFWWpnTURoLytlVmxRcjAvNm90Z09Id080RUJMeitwLzV3N2dRR3VBRmRBQUFDQUlYL0JBVmtCY2dBRlFBakFFYXlBeVFsRVJJNXNBTVFzQnJRQUxBQVJWaXdEaThic1E0Y1BsbXdBRVZZc0FVdkc3RUZFRDVac0E0UXNoa0JDaXRZSWRnYjlGbXdCUkN5SUFFS0sxZ2gyQnYwV1RBeEpSY0hKd1lqSmlZQ0p5WVNFaVFYRmhZU0Z4WUNBaE1tSmljbUJnSVhGaFlYRmpZU0E2elFpLzg0T29yV2hBc01aZE1CRUpxTjNIOExDbUhKWndPcGxwTDFsQU1EcTVhUzlaQTl5SEh5Q2dHR0FRT2hyUUZoQVJXT0F3T0ovd0NlcmY2aC92d0M0c3prQkFTKy9xYkZ5TzRFQnJzQllRQUJBTHNBQUFNUkJJMEFCZ0F5QUxBQVJWaXdCUzhic1FVYVBsbXdBRVZZc0FFdkc3RUJFRDVac2dRRkFSRVNPYkFFTDdJREFRb3JXQ0hZRy9SWk1ERWhJeE1GTnlVekFreTBvZjZDSUFJVUlnT2hpckRHQUFFQU9RQUFBL2tFb3dBWUFFMEFzQUJGV0xBUUx4dXhFQm8rV2JBQVJWaXdBQzhic1FBUVBsbXlHQUVLSzFnaDJCdjBXYkFDMExJRUVCZ1JFam13RUJDeUNRRUtLMWdoMkJ2MFdiQVFFTEFNMExJV0dCQVJFamt3TVNFaE53RTNOamMySmljbUJnY0hOaVFYSGdJSEJnY0JJUU9aL0tBWkFqSXBnQXdMWlZ0MXBoV3lFUUVjdjJ1cVZnZ1E2UDVlQWwyTEFjRWpiM05SWmdJRWtIZ0JzK3NDQTFPVFlMdTUvck1BQVFBZEFBQUVBd1hFQUFjQUt3Q3dBRVZZc0FZdkc3RUdHajVac0FCRldMQUVMeHV4QkJBK1diQUdFTElEQVFvcldDSFlHL1JaTURFQk13TWhBeU1USVFOT3RWSDkwTEMxeXdJd0JjVCtNUHdNQkkwQUFmK0IvcUVFRUFTTkFCb0FUZ0N3RFMrd0FFVllzQUl2RzdFQ0dqNVpzZ0VCQ2l0WUlkZ2I5Rm13Qk5DeUJRMENFUkk1c0FVdnNBMFFzaElCQ2l0WUlkZ2I5Rm13QlJDeUdRRUtLMWdoMkJ2MFdiSWFCUmtSRWprd01RRWhOeUVIQVI0Q0J3WUdCQ2NtSnpjV0Z4WWtOelltSnljM0F3MzlqeHNEV1JiK1JHZVZSd2tQcGY3cnFMWFJQcEtycmdFQUZoT1ZwRUVQQS9TWmZ2NXdFM3U3YTZEOWpRSUNaSXhYQkFUU3JKdW5CUUZ2QUFMLzAvNjJCREFFalFBS0FBNEFSZ0N3QUVWWXNBa3ZHN0VKR2o1WnNBQkZXTEFHTHh1eEJoQStXYklNQVFvcldDSFlHL1Jac0FEUXNBWVFzQVBRc0FZUXNBWFFzQVV2c0F3UXNBalFzQWtRc0EzUU1ERWxNd2NqQXlNVElUY0JNd0VoRXdjRGNNQWJ2em0yT3YweUZRTnd5ZnluQWZLTUpaYVgvcmNCU1hjRUYvd0pBdjQzQVAvL0FKQUNpQUwwQmIwREJ3SFVBSE1DbUFBVEFMQUFSVml3Qnk4YnNRY2NQbG13RU5Bd01RRC8vd0JoQXBnQzVBV3RBd2NCMkFCeEFwZ0FFd0N3QUVWWXNBa3ZHN0VKSEQ1WnNBM1FNREVBLy84QWlRS0xBd0lGclFNSEFka0Fjd0tZQUJBQXNBQkZXTEFCTHh1eEFSdytXVEF4Ly84QWtRS0tBdHNGdUFNSEFkb0Fjd0tZQUJNQXNBQkZXTEFTTHh1eEVodytXYkFUMERBeEFQLy9BS0lDbUFNbUJhMERCd0hiQUhNQ21BQVFBTEFBUlZpd0JTOGJzUVVjUGxrd01mLy9BSDRDakFMckJic0RCd0hjQUhNQ21BQVpBTEFBUlZpd0VpOGJzUkljUGxtd0dOQ3dFaEN3Sk5Bd01RRC8vd0NwQW84QzZnVzZBd2NCM1FCekFwZ0FFd0N3QUVWWXNBZ3ZHN0VJSEQ1WnNCelFNREVBQUFILzFmNmFCRVFFakFBY0FGdXlCeDBlRVJJNUFMQU9MN0FBUlZpd0FTOGJzUUVhUGxteUF3RUtLMWdoMkJ2MFdiSUhBUTRSRWptd0J5K3dCZEN5RVFFT0VSSTVzQTRRc2hNQkNpdFlJZGdiOUZtd0J4Q3lHUUVLSzFnaDJCdjBXYkFIRUxBYzBEQXhFeE1oQnlFRE5oY2VBZ2NHQUNjbUp6Y1dGeFkyTnpZbUp5WUdCMWp0QXY4ZS9aU0NiNUI2ckUwTkdQNno2Y2V6UkhQSW51SVREM3Q2VzRZcUFYWURGcXYrYzBNQ0FYN2NodTcrMUFRRWI0eGpCUUxkcElXekJBTStVUUFCQUN2K3RnUTNCSTBBQmdBb3NnRUhDQkVTT1FDd0FTK3dBRVZZc0FVdkc3RUZHajVac2dNQkNpdFlJZGdiOUZtd0FOQXdNUUVCSXdFaE55RUVJL3pIdndNdS9UWWJBNDBFR2ZxZEJUK1lBQUlBU2YveUJxY0VvQUFXQUNJQW5iSUxJeVFSRWptd0N4Q3dHZEFBc0FCRldMQU5MeHV4RFJvK1diQUFSVml3Q2k4YnNRb2FQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFBTHh1eEFCQStXYkFORUxJUEFRb3JXQ0hZRy9SWnNoSU5BQkVTT2JBU0w3UWZFaThTQWwyeXZ4SUJYYklUQVFvcldDSFlHL1Jac0FBUXNoWUJDaXRZSWRnYjlGbXdBaEN5RndFS0sxZ2gyQnYwV2JBS0VMSWFBUW9yV0NIWUcvUlpNREVoSVFVakpnSTNOeElBRnpJV015RUhJUU1oQnlFRElRVTNFeWNtQmdjR0Z4UVdGd1hqL1pYKzJWWFUzeHNHSUFFLzVseklZQUowRy8ydU93SUZHLzM5UWdKYS9IbHpvZUthMUJzTkFYeDBEZ1VCT3ZNeUFRb0JRQUlSbWY2eW1QNkpDZ01EYVF3QzNzSndNWkNsQkFBQUFnQS8vcVVFUGdTbUFCa0FKd0JSc2hzb0tSRVNPYkFiRUxBTjBBQ3dGUyt3QUVWWXNBMHZHN0VOR2o1WnNCVVFzZ0FCQ2l0WUlkZ2I5Rm15QkJVTkVSSTVzQVF2c2hvQkNpdFlJZGdiOUZtd0RSQ3lJZ0VLSzFnaDJCdjBXVEF4QlFRVEJpY3VBamMyTmpjMkZ4WVNCd2NHQWdRbkppYzNGZ0VXTmo4Q05pWW5KZ1lIQmhZQlFBRllub2lwZnJWVURRcFdSby9SMk5VZUp5UEQvdU9wa253emJRRTNaYWMxRndZRGRuU0d0UkVQYzhFSEFkWnNCQUdCNEl0c3gwbVhCQVgrelAzNTJ2Nnpwd01DUFl3eUFmd0VYRldXV295Z0JBUFdwWS9EQUFBQ0FHVC81d1I0QktZQUVRQWdBRGtBc0FCRldMQUtMeHV4Q2hvK1diQUFSVml3QUM4YnNRQVFQbG13Q2hDeUZRRUtLMWdoMkJ2MFdiQUFFTEljQVFvcldDSFlHL1JaTURFRkppWUNOemMyTmpjMkZ4WVNCd2NHQWdZQkp5WW5KZ0lIRlJRV0Z4WTJOellDR1pYSVdCSUNFR05Sb3V2UDRBb0VFNkQrQVFJRUg5ZXg1QWVEZVozWEhBb1ZCSllCREtnVWZ1UlNwUVVGL3VMeE43Yis0SmtDM2ovK0NBYisyUGtobTY0RUJlelBYQUQvLy84Si9rWUJyd1E2QUFZQW13QUEvLy8vQ2Y1R0FhOEVPZ0FHQUpzQUFQLy9BQzRBQUFHZkJEb0FCZ0NNQUFELy8vOTYvbGtCbndRNkFDWUFqQUFBQUFZQW84c0svLzhBTGdBQUFaOEVPZ0FHQUl3QUFQLy8vL0grcVFHZkJEb0FKZ0NNQUFBQUJ3Q3NBellBQ2dBQkFCMy81d1BVQktJQUlRQmZBTEFBUlZpd0ZTOGJzUlVhUGxtd0FFVllzQkF2RzdFUUVENVpzQUJGV0xBZkx4dXhIeEErV2JJQ0FRb3JXQ0hZRy9SWnNna2ZGUkVTT2JBSkw3SUlBd29yV0NIWUcvUlpzQlVRc2d3QkNpdFlJZGdiOUZteUdRa0lFUkk1TURFbEZoY3lOamMySnljM0FTWW5KZ1lIQXlNVE5qWVhGaFlYQVJZV0J3WUdKeVluQVdWS1ZXR0pEQlB0WFJrQkdEeGphb1lVZ0xTQUhlaThaN05jL3J5T2x3Y004TEpyY2JVekFvTmxxd01Ca2dFaFBBSUNrNGI5RHdMeDFkd0VCRmhjL3JJU25YeXYxd0lDTWYvL0FCa0NId0lQQXJZQ0JnQVJBQUFBQWdBdkFBQUU4d1d3QUE0QUhRQnRBTEFBUlZpd0JTOGJzUVVjUGxtd0FFVllzQUF2RzdFQUVENVpzZ01BQlJFU09iQURMN0xQQXdGZHNwOERBWEd5THdNQlhiUnZBMzhEQW5LeUFnRUtLMWdoMkJ2MFdiQVEwTEFBRUxJUkFRb3JXQ0hZRy9SWnNBVVFzaHNCQ2l0WUlkZ2I5Rm13QXhDd0hkQXdNVE1USXpjekV3VXlCQklIQndJQUlSTWhBeGN5QURjMkp5WW1KeWNESVZsem5SdWRid0Y2c2dFQmNCY0tMUDVxL3MyOC91OVl1ZFFCSnl3akN3K3dsTjlVQVJJQ21wY0Nmd0d5L3NmQ1NmN0Mvb1VDbXY0REFRRUk1cmlCbTY4RUFmNGZBQUFDQUM4QUFBVHpCYkFBRGdBZEFHMnlEeDRmRVJJNXNBOFFzQWJRQUxBQVJWaXdCaThic1FZY1BsbXdBRVZZc0FBdkc3RUFFRDVac0FQUXNBTXZzaThEQVYyeXp3TUJYYklDQVFvcldDSFlHL1Jac0JEUXNBQVFzaElCQ2l0WUlkZ2I5Rm13QmhDeUdnRUtLMWdoMkJ2MFdiQURFTEFjMExBZDBEQXhNeE1qTnpNVEJUSUVFZ2NIQWdBaEV5RURGeklBTnpZbkppWW5Kd01oV1hPZEc1MXZBWHF5QVFGd0Z3b3MvbXIremJ6KzcxaTUxQUVuTENNTEQ3Q1UzMVFCRWdLYWx3Si9BYkwreDhKSi9zTCtoUUthL2dNQkFRam11SUdicndRQi9oOEFBQUVBUFFBQUJBRUdBQUFhQUdNQXNCZ3ZzQUJGV0xBRUx4dXhCQmcrV2JBQVJWaXdFUzhic1JFUVBsbXdBRVZZc0Frdkc3RUpFRDVac2k4WUFWMnlEeGdCWGJJV0VSZ1JFam13RmkreUV3RUtLMWdoMkJ2MFdiQUIwTEFFRUxJT0FRb3JXQ0hZRy9SWnNCWVFzQm5RTURFQklRTTJGeFlXQndNakV6WW5KaWNtQndNakV5TTNNemN6QnlFQzEvN3ROWTY1bUpNVGRyVjNCZ1VSbEtaNGhyWFdwaHVsRzdVZEFSSUUwdjdrbXdRQ3pibjlPd0xJTVNxTUF3U3kvUHdFMHBlWGx3QUJBS2dBQUFVSkJiQUFEd0JNQUxBQVJWaXdDaThic1FvY1BsbXdBRVZZc0FJdkc3RUNFRDVac2dZQ0NoRVNPYkFHTDdJRkFRb3JXQ0hZRy9SWnNBSFFzQW9Rc2drQkNpdFlJZGdiOUZtd0RkQ3dCaEN3RHRBd01RRWpBeU1USXpjekV5RTNJUWNoQXpNRHROK091NDdRRzg4NS9qc2NCRVVjL2pzNTRBTTMvTWtETjVjQlJKNmUvcndBQUFILzlQL3RBcFFGUUFBZUFHb0FzQUJGV0xBWkx4dXhHUmcrV2JBQVJWaXdDeThic1FzUVBsbXdHUkN3SGRDd0hTK3lBQjBCWGJBUzBMSVBBUW9yV0NIWUcvUlpzQUhRc0FzUXNnWUJDaXRZSWRnYjlGbXdHUkN5SEFFS0sxZ2gyQnYwV2JBVDBMQVpFTEFXMExBWkVMQVkwTEFZTHpBeEFTTURCaGNXTXpJM0J3WWpKaVkzRXlNM016Y2pOek1UTXdNekJ5TUhNd0plNERnREFnZE9JVGNPUVVOc2JBdzIxaHZVSDc4WnZ5NjBMc1VaeEIvaEFscitzQm9XVGdxWEVnS2Jnd0ZObDdxUEFRYisrbys2QVAvLy82OEFBQVNMQnpRQ0pnQWxBQUFCQndCRUFXa0JOZ0FUQUxBQVJWaXdCQzhic1FRY1BsbXdETnd3TVFELy8vK3ZBQUFFbUFjMEFpWUFKUUFBQVFjQWRRSHpBVFlBRXdDd0FFVllzQVV2RzdFRkhENVpzQTNjTURFQS8vLy9yd0FBQklzSE5nSW1BQ1VBQUFFSEFKMEErUUUyQUJNQXNBQkZXTEFFTHh1eEJCdytXYkFRM0RBeEFQLy8vNjhBQUFTdkJ5RUNKZ0FsQUFBQkJ3Q2tBUUVCT2dBVEFMQUFSVml3QlM4YnNRVWNQbG13RHR3d01RRC8vLyt2QUFBRWl3YjlBaVlBSlFBQUFRY0FhZ0V6QVRZQUZnQ3dBRVZZc0FRdkc3RUVIRDVac0JUY3NDRFFNREgvLy8rdkFBQUVpd2VTQWlZQUpRQUFBUWNBb2dGK0FVRUFEQUN3QkMrd0ZOeXdGOUF3TWYvLy82OEFBQVNkQjVNQ0pnQWxBQUFBQndIZkFZSUJJdi8vQUhUK1FnVDVCY2tDSmdBbkFBQUFCd0I1QWNMLzkvLy9BRHNBQUFTeEIwQUNKZ0FwQUFBQkJ3QkVBVGNCUWdBVEFMQUFSVml3Qmk4YnNRWWNQbG13RGR3d01RRC8vd0E3QUFBRXNRZEFBaVlBS1FBQUFRY0FkUUhCQVVJQUNRQ3dCaSt3RHR3d01RRC8vd0E3QUFBRXNRZENBaVlBS1FBQUFRY0FuUURIQVVJQUV3Q3dBRVZZc0FZdkc3RUdIRDVac0JIY01ERUEvLzhBT3dBQUJMRUhDUUltQUNrQUFBRUhBR29CQVFGQ0FBd0FzQVl2c0NIY3NBelFNREgvL3dCSkFBQUNHUWRBQWlZQUxRQUFBUWNBUlAvdUFVSUFFd0N3QUVWWXNBSXZHN0VDSEQ1WnNBWGNNREVBLy84QVNRQUFBeHdIUUFJbUFDMEFBQUVIQUhVQWR3RkNBQWtBc0FJdnNBYmNNREVBLy84QVNRQUFBdUlIUWdJbUFDMEFBQUVIQUozL2ZnRkNBQk1Bc0FCRldMQUNMeHV4QWh3K1diQUozREF4QVAvL0FFa0FBQU1LQndrQ0pnQXRBQUFCQndCcS83Z0JRZ0FNQUxBQ0w3QVozTEFFMERBeC8vOEFPd0FBQlhjSElRSW1BRElBQUFFSEFLUUJOUUU2QUJNQXNBQkZXTEFJTHh1eENCdytXYkFOM0RBeEFQLy9BSGYvNXdVTkJ6WUNKZ0F6QUFBQkJ3QkVBWW9CT0FBVEFMQUFSVml3Q2k4YnNRb2NQbG13Sk53d01RRC8vd0IzLytjRkRRYzJBaVlBTXdBQUFRY0FkUUlVQVRnQUNRQ3dDaSt3SmR3d01RRC8vd0IzLytjRkRRYzRBaVlBTXdBQUFRY0FuUUVhQVRnQUV3Q3dBRVZZc0Fvdkc3RUtIRDVac0NqY01ERUEvLzhBZC8vbkJRMEhJd0ltQURNQUFBRUhBS1FCSWdFOEFCTUFzQUJGV0xBS0x4dXhDaHcrV2JBbTNEQXhBUC8vQUhmLzV3VU5CdjhDSmdBekFBQUJCd0JxQVZRQk9BQU1BTEFLTDdBNDNMQWowREF4Ly84QVovL25CU0FITkFJbUFEa0FBQUVIQUVRQlpBRTJBQk1Bc0FCRldMQUtMeHV4Q2h3K1diQVUzREF4QVAvL0FHZi81d1VnQnpRQ0pnQTVBQUFCQndCMUFlNEJOZ0FKQUxBQUw3QVYzREF4QVAvL0FHZi81d1VnQnpZQ0pnQTVBQUFCQndDZEFQUUJOZ0FUQUxBQVJWaXdDaThic1FvY1BsbXdHTnd3TVFELy93Qm4vK2NGSUFiOUFpWUFPUUFBQVFjQWFnRXVBVFlBREFDd0FDK3dLTnl3RTlBd01mLy9BS2dBQUFVeUJ6UUNKZ0E5QUFBQkJ3QjFBYjBCTmdBSkFMQUJMN0FMM0RBeEFQLy9BRFAvNkFQUEJmNENKZ0JGQUFBQkJ3QkVBTnNBQUFBVEFMQUFSVml3R0M4YnNSZ1lQbG13TGR3d01RRC8vd0F6LytnRUNnWCtBaVlBUlFBQUFRY0FkUUZsQUFBQUNRQ3dHQyt3THR3d01RRC8vd0F6LytnRHp3WUFBaVlBUlFBQUFRWUFuV3NBQUJNQXNBQkZXTEFZTHh1eEdCZytXYkF4M0RBeEFQLy9BRFAvNkFRaEJlc0NKZ0JGQUFBQkJnQ2tjd1FBQ1FDd0dDK3dOdHd3TVFELy93QXovK2dEOXdYSEFpWUFSUUFBQVFjQWFnQ2xBQUFBREFDd0dDK3dRZHl3TE5Bd01mLy9BRFAvNkFQUEJsd0NKZ0JGQUFBQkJ3Q2lBUEFBQ3dBTUFMQVlMN0ExM0xBNDBEQXgvLzhBTS8vb0JBOEdYZ0ltQUVVQUFBQUhBZDhBOVAvdC8vOEFSdjVDQStZRVVnSW1BRWNBQUFBSEFIa0JQdi8zLy84QVJmL3FBK0FGL2dJbUFFa0FBQUVIQUVRQXdBQUFBQk1Bc0FCRldMQUlMeHV4Q0JnK1diQWgzREF4QVAvL0FFWC82Z1B2QmY0Q0pnQkpBQUFCQndCMUFVb0FBQUFKQUxBSUw3QWkzREF4QVAvL0FFWC82Z1BnQmdBQ0pnQkpBQUFCQmdDZFVBQUFFd0N3QUVWWXNBZ3ZHN0VJR0Q1WnNDWGNNREVBLy84QVJmL3FBK0FGeHdJbUFFa0FBQUVIQUdvQWlnQUFBQXdBc0FndnNEWGNzQ0RRTURILy93QXVBQUFCeHdYOUFpWUFqQUFBQVFZQVJKei9BQk1Bc0FCRldMQUNMeHV4QWhnK1diQUYzREF4QVAvL0FDNEFBQUxLQmYwQ0pnQ01BQUFCQmdCMUpmOEFDUUN3QWkrd0J0d3dNUUQvL3dBdUFBQUNrQVgvQWlZQWpBQUFBUWNBbmY4cy8vOEFFd0N3QUVWWXNBSXZHN0VDR0Q1WnNBbmNNREVBLy84QUxnQUFBcmdGeGdJbUFJd0FBQUVIQUdyL1p2Ly9BQllBc0FCRldMQUNMeHV4QWhnK1diQU4zTEFaMERBeC8vOEFId0FBQkJnRjZ3SW1BRklBQUFFR0FLUnFCQUFKQUxBREw3QWQzREF4QVAvL0FFWC82QVFmQmY0Q0pnQlRBQUFCQndCRUFNa0FBQUFUQUxBQVJWaXdBQzhic1FBWVBsbXdKTnd3TVFELy93QkYvK2dFSHdYK0FpWUFVd0FBQVFjQWRRRlRBQUFBQ1FDd0FDK3dKZHd3TVFELy93QkYvK2dFSHdZQUFpWUFVd0FBQVFZQW5Wa0FBQk1Bc0FCRldMQUFMeHV4QUJnK1diQW8zREF4QVAvL0FFWC82QVFmQmVzQ0pnQlRBQUFCQmdDa1lRUUFDUUN3QUMrd0xkd3dNUUQvL3dCRi8rZ0VId1hIQWlZQVV3QUFBUWNBYWdDVEFBQUFEQUN3QUMrd09OeXdJOUF3TWYvL0FGdi82QVFlQmY0Q0pnQlpBQUFCQndCRUFNMEFBQUFUQUxBQVJWaXdCeThic1FjWVBsbXdGZHd3TVFELy93QmIvK2dFSGdYK0FpWUFXUUFBQVFjQWRRRlhBQUFBQ1FDd0JpK3dGdHd3TVFELy93QmIvK2dFSGdZQUFpWUFXUUFBQVFZQW5WMEFBQk1Bc0FCRldMQUdMeHV4QmhnK1diQVozREF4QVAvL0FGdi82QVFlQmNjQ0pnQlpBQUFCQndCcUFKY0FBQUFNQUxBR0w3QXAzTEFVMERBeC8vLy9wZjVGQSt3Ri9nSW1BRjBBQUFFSEFIVUJIZ0FBQUFrQXNBRXZzQkxjTURFQS8vLy9wZjVGQSt3Rnh3SW1BRjBBQUFFR0FHcGVBQUFNQUxBQkw3QWwzTEFRMERBeC8vLy9yd0FBQkxRRzdnSW1BQ1VBQUFFSEFIQUJCQUUrQUJNQXNBQkZXTEFFTHh1eEJCdytXYkFNM0RBeEFQLy9BRFAvNkFRbUJiZ0NKZ0JGQUFBQkJnQndkZ2dBRXdDd0FFVllzQmd2RzdFWUdENVpzQzNjTURFQS8vLy9yd0FBQklzSER3SW1BQ1VBQUFFSEFLQUJMZ0UzQUJNQXNBQkZXTEFFTHh1eEJCdytXYkFPM0RBeEFQLy9BRFAvNkFQc0Jka0NKZ0JGQUFBQkJ3Q2dBS0FBQVFBSkFMQVlMN0F2M0RBeEFBQUMvNi8rVHdTTEJiQUFGd0FhQUhTeUZSc2NFUkk1c0JVUXNCclFBTEFBUlZpd0ZTOGJzUlVjUGxtd0FFVllzQk12RzdFVEVENVpzQUJGV0xBWEx4dXhGeEErV2JBQVJWaXdDeThic1FzU1BsbXlCZ01LSzFnaDJCdjBXYkFYRUxBUTBMQVFMN0lZRXhVUkVqbXdHQyt5RWdFS0sxZ2gyQnYwV2JJYUZSTVJFamt3TVNFWEJ3WUhCaGNXTnhjR0l5SW1OelkzQXlFREl3RXpBUUVoQXdSbEJFRjZDUWRCSUVNRVJGTk9Yd0lEeUVMOXNzZkpBeGVsQVNEOUJ3SGZlUU12V2xrL0FnRWFlU3RsVXBweEFXditoQVd3K2xBQ0dnS25BQUlBTS81UEE4OEVVUUF2QURvQW5iSVRPendSRWptd0V4Q3dNZEFBc0FCRldMQW5MeHV4SnhnK1diQUFSVml3Q3k4YnNRc1NQbG13QUVWWXNCUXZHN0VVRUQ1WnNBQkZXTEF2THh1eEx4QStXYkFMRUxJR0F3b3JXQ0hZRy9SWnNDOFFzQkRRc0JBdnNoSW5GQkVTT2JJYUp4UVJFam13R2krd0p4Q3lId0VLSzFnaDJCdjBXYklpR2ljUkVqbXdGQkN5TUFFS0sxZ2gyQnYwV2JBYUVMSTFBUW9yV0NIWUcvUlpNREVoRndjR0J3WVhGamNYQmlNaUpqYzJOeWMzQmljbUpqYzJKRE1YTnpZbUp5WUdCd2MrQWhjV0ZnY0RCd1lYQnlVV05qYzNKeUlHQndZV0EwUUVRWG9KQjBFZ1F3UkVVMDVmQWdQTEF3T1ZwNCt6Q0FvQkdlVzlEQXBmWDEyUEVMWUpnc3h0cWJ3UFdBVUNEZ0wrTEZlYk9DZUpxN1lNQ1ZrREwxcFpQd0lCR25rclpWS2FjakF3aWdRQ3NZV3N3UUZXWVhFQ0FsOU9BVitUVVFJRXhhUDk2RTAzTmhHTUFsZE4zd0ZzWTB4bC8vOEFkUC9tQlBrSFZRSW1BQ2NBQUFFSEFIVUIvd0ZYQUFrQXNBMHZzQ0xjTURFQS8vOEFSdi9wQStZRi9nSW1BRWNBQUFFSEFIVUJLZ0FBQUFrQXNCRXZzQ1BjTURFQS8vOEFkUC9tQlBrSFZ3SW1BQ2NBQUFFSEFKMEJCUUZYQUFrQXNBMHZzQ0hjTURFQS8vOEFSdi9wQStZR0FBSW1BRWNBQUFFR0FKMHdBQUFKQUxBUkw3QWkzREF4QVAvL0FIVC81Z1Q1Qnh3Q0pnQW5BQUFCQndDaEFkd0JWd0FKQUxBTkw3QXAzREF4QVAvL0FFYi82UVBtQmNVQ0pnQkhBQUFCQndDaEFRY0FBQUFKQUxBUkw3QXEzREF4QVAvL0FIVC81Z1Q1QjFrQ0pnQW5BQUFCQndDZUFSb0JXQUFKQUxBTkw3QWszREF4QVAvL0FFYi82UVBtQmdJQ0pnQkhBQUFCQmdDZVJRRUFDUUN3RVMrd0pkd3dNUUQvL3dBN0FBQUUxUWRFQWlZQUtBQUFBUWNBbmdEU0FVTUFDUUN3QVMrd0d0d3dNUUQvL3dCTC8rZ0ZwZ1lDQUNZQVNBQUFBQWNCb2dTWEJSUC8vd0E3QUFBRXNRYjZBaVlBS1FBQUFRY0FjQURTQVVvQUNRQ3dCaSt3RE53d01RRC8vd0JGLytvRUN3VzRBaVlBU1FBQUFRWUFjRnNJQUFrQXNBZ3ZzQ0RjTURFQS8vOEFPd0FBQkxFSEd3SW1BQ2tBQUFFSEFLQUEvQUZEQUFrQXNBWXZzQS9jTURFQS8vOEFSZi9xQStBRjJRSW1BRWtBQUFFSEFLQUFoUUFCQUFrQXNBZ3ZzQ1BjTURFQS8vOEFPd0FBQkxFSEJ3SW1BQ2tBQUFFSEFLRUJuZ0ZDQUFrQXNBWXZzQlhjTURFQS8vOEFSZi9xQStBRnhRSW1BRWtBQUFFSEFLRUJKd0FBQUFrQXNBZ3ZzQ25jTURFQUFBRUFPLzVQQkxFRnNBQWNBSUN5RkIwZUVSSTVBTEFBUlZpd0Z5OGJzUmNjUGxtd0FFVllzQkF2RzdFUUVqNVpzQUJGV0xBRUx4dXhCQkErV2JBQVJWaXdGUzhic1JVUVBsbXlIQmNFRVJJNXNCd3ZzZ0FCQ2l0WUlkZ2I5Rm13RlJDeUFnRUtLMWdoMkJ2MFdiQUQwTEFRRUxJTEF3b3JXQ0hZRy9SWnNCY1FzaGtCQ2l0WUlkZ2I5Rmt3TVFFaEF5RUhJeGNIQmdjR0Z4WTNGd1lqSWlZM05qY2hFeUVISVFNaEE5RDluRm9DeUJ4TEJFRjZDUWRCSUVNRVJGTk9Yd0lEcS8xNy9RTjVIUDFEVVFKa0FxSDkvSjBETDFwWlB3SUJHbmtyWlZLUmFRV3dudjRzQUFBQ0FFWCthQVBaQkZFQUpnQXVBSDZ5QkM4d0VSSTVzQVFRc0NqUUFMQU1MN0FBUlZpd0dpOGJzUm9ZUGxtd0FFVllzQkV2RzdFUkVENVpzaVFCQ2l0WUlkZ2I5Rm15QWhFa0VSSTVzQXdRc2djRENpdFlJZGdiOUZteUt4b1JFUkk1c0NzdnRMOHJ6eXNDWGJJZ0FRb3JXQ0hZRy9SWnNpWWFFUkVTT2JBYUVMSW5BUW9yV0NIWUcvUlpNREVsQmdjSEJnY0dGeFkzRndZaklpWTNOamN1QWpjM05oSTJGeFlXRnhZSEJ5RUdGaGNXTndNbUJnY0ZOelltQTR0VGhUdDFDZ2RCSUVNRVJGTk9Yd0lEY0h5MFZnc0ZFWjNpZzZlK0NRTUhDLzA5RW9XRW9JakVjS2N4QWc0RUVIRzdkelVyVjFrL0FnRWFlU3RsVW5KZENvbm9peXVoQVFxSEF3VFd0MEZCVTVQT0JBU1VBcVFEbnB3QkVINm4vLzhBT3dBQUJMRUhSQUltQUNrQUFBRUhBSjRBM0FGREFBa0FzQVl2c0JEY01ERUEvLzhBUmYvcUErVUdBZ0ltQUVrQUFBRUdBSjVsQVFBSkFMQUlMN0FrM0RBeEFQLy9BSG4vNmdVR0IxY0NKZ0FyQUFBQkJ3Q2RBUDBCVndBSkFMQU1MN0FqM0RBeEFQLy9BQVQrVHdRb0JnQUNKZ0JMQUFBQkJnQ2RVd0FBQ1FDd0JDK3dLOXd3TVFELy93QjUvK29GQmdjd0FpWUFLd0FBQVFjQW9BRXlBVmdBQ1FDd0RDK3dKZHd3TVFELy93QUUvazhFS0FYWkFpWUFTd0FBQVFjQW9BQ0lBQUVBQ1FDd0JDK3dMZHd3TVFELy93QjUvK29GQmdjY0FpWUFLd0FBQVFjQW9RSFVBVmNBQ1FDd0RDK3dLOXd3TVFELy93QUUvazhFS0FYRkFpWUFTd0FBQVFjQW9RRXFBQUFBQ1FDd0JDK3dNOXd3TVFELy93QjUvZllGQmdYSEFpWUFLd0FBQUFjQm9nRlkvcGYvL3dBRS9rOEVLQWFWQWlZQVN3QUFBUWNCdVFFeUFGZ0FDUUN3QkMrd0x0d3dNUUQvL3dBN0FBQUZkd2RDQWlZQUxBQUFBUWNBblFFaEFVSUFDUUN3Qmkrd0Rkd3dNUUQvL3dBZkFBQUQ0d2RCQWlZQVRBQUFBUWNBblFCVUFVRUFEZ0N3RVMrd0ZOeXkzeFFCWFRBeC8vOEFTUUFBQXpRSExRSW1BQzBBQUFFSEFLVC9oZ0ZHQUFrQXNBSXZzQTdjTURFQS8vOEFFUUFBQXVJRjZRSW1BSXdBQUFFSEFLVC9OQUFDQUFrQXNBSXZzQTdjTURFQS8vOEFTUUFBQXprRytnSW1BQzBBQUFFSEFIRC9pUUZLQUFrQXNBSXZzQVRjTURFQS8vOEFHZ0FBQXVjRnRnSW1BSXdBQUFFSEFIRC9Od0FHQUFrQXNBSXZzQVRjTURFQS8vOEFTUUFBQXY4SEd3SW1BQzBBQUFFSEFLRC9zd0ZEQUFrQXNBSXZzQWZjTURFQS8vOEFMZ0FBQXEwRjJBSW1BSXdBQUFFSEFLRC9ZUUFBQUFrQXNBSXZzQWZjTURFQS8vLy9qdjVZQWdFRnNBSW1BQzBBQUFBR0FLUGZDZi8vLzNEK1R3SGpCY2NDSmdCTkFBQUFCZ0Nqd1FELy93QkpBQUFDTndjSEFpWUFMUUFBQVFjQW9RQlVBVUlBQ1FDd0FpK3dEZHd3TVFELy93QkovK1lHY0FXd0FDWUFMUUFBQUFjQUxnSW1BQUQvL3dBdi9rWUR3UVhIQUNZQVRRQUFBQWNBVGdIc0FBRC8vd0FLLytZRkNnYzFBaVlBTGdBQUFRY0FuUUdtQVRVQUNRQ3dBQyt3RWR3d01RRC8vLzhKL2tZQ2xnWFlBaVlBbXdBQUFRY0FuZjh5LzlnQUNRQ3dBQyt3RHR3d01RRC8vd0E3L2xnRlVBV3dBaVlBTHdBQUFBY0JvZ0ZhL3ZuLy93QWcva1VFR2dZQUFpWUFUd0FBQUFjQm9nRFkvdWIvL3dBN0FBQURzUWN2QWlZQU1BQUFBUWNBZFFCbEFURUFDUUN3QkMrd0NOd3dNUUQvL3dBdkFBQUREZ2VVQWlZQVVBQUFBUWNBZFFCcEFaWUFDUUN3QWkrd0J0d3dNUUQvL3dBNy9na0RzUVd3QWlZQU1BQUFBQWNCb2dFbC9xci8vLytqL2drQjdnWUFBaVlBVUFBQUFBY0Jvdi9BL3FyLy93QTdBQUFEc1FXeEFpWUFNQUFBQVFjQm9nS2FCTUlBRUFDd0FFVllzQW92RzdFS0hENVpNREgvL3dBdkFBQURPd1lDQUNZQVVBQUFBQWNCb2dJc0JSUC8vd0E3QUFBRHNRV3dBaVlBTUFBQUFBY0FvUUZNL2NYLy93QXZBQUFDckFZQUFDWUFVQUFBQUFjQW9RREovYmIvL3dBN0FBQUZkd2MwQWlZQU1nQUFBUWNBZFFJbkFUWUFDUUN3QlMrd0ROd3dNUUQvL3dBZkFBQUVBUVgrQWlZQVVnQUFBUWNBZFFGY0FBQUFDUUN3QXkrd0Zkd3dNUUQvL3dBNy9na0Zkd1d3QWlZQU1nQUFBQWNCb2dHRy9xci8vd0FmL2drRDR3UlNBaVlBVWdBQUFBY0JvZ0R1L3FyLy93QTdBQUFGZHdjNEFpWUFNZ0FBQVFjQW5nRkNBVGNBQ1FDd0JTK3dEdHd3TVFELy93QWZBQUFEOXdZQ0FpWUFVZ0FBQVFZQW5uY0JBQWtBc0FNdnNCZmNNREVBLy84QUh3QUFBK01HQkFJbUFGSUFBQUFIQWFJQVJRVVYvLzhBZC8vbkJRMEc4QUltQURNQUFBRUhBSEFCSlFGQUFBa0FzQW92c0NQY01ERUEvLzhBUmYvb0JCOEZ1QUltQUZNQUFBRUdBSEJrQ0FBSkFMQUFMN0FqM0RBeEFQLy9BSGYvNXdVTkJ4RUNKZ0F6QUFBQkJ3Q2dBVThCT1FBSkFMQUtMN0FtM0RBeEFQLy9BRVgvNkFRZkJka0NKZ0JUQUFBQkJ3Q2dBSTRBQVFBSkFMQUFMN0FtM0RBeEFQLy9BSGYvNXdWVUJ6Y0NKZ0F6QUFBQkJ3Q2xBWllCT0FBTUFMQUtMN0FsM0xBbjBEQXgvLzhBUmYvb0JKTUYvd0ltQUZNQUFBRUhBS1VBMVFBQUFBd0FzQUF2c0NYY3NDZlFNREgvL3dBNkFBQUV3Z2MwQWlZQU5nQUFBUWNBZFFHMkFUWUFDUUN3QkMrd0d0d3dNUUQvL3dBZkFBQURZUVgrQWlZQVZnQUFBUWNBZFFDOEFBQUFDUUN3Q2krd0Q5d3dNUUQvL3dBNi9na0V3Z1d3QWlZQU5nQUFBQWNCb2dFZC9xci8vLytmL2drQzFBUlVBaVlBVmdBQUFBY0Jvdis4L3FyLy93QTZBQUFFd2djNEFpWUFOZ0FBQVFjQW5nRFJBVGNBQ1FDd0JDK3dITnd3TVFELy93QWZBQUFEV0FZQ0FpWUFWZ0FBQVFZQW50Z0JBQWtBc0FvdnNCSGNNREVBLy84QUovL3BCS01ITmdJbUFEY0FBQUVIQUhVQndnRTRBQWtBc0FvdnNDdmNNREVBLy84QUx2L3BBK3dGL2dJbUFGY0FBQUVIQUhVQlJ3QUFBQWtBc0FndnNDbmNNREVBLy84QUovL3BCS01IT0FJbUFEY0FBQUVIQUowQXlBRTRBQWtBc0FvdnNDcmNNREVBLy84QUx2L3BBN1lHQUFJbUFGY0FBQUVHQUoxTkFBQUpBTEFJTDdBbzNEQXhBUC8vQUNmK1N3U2pCY2NDSmdBM0FBQUFCd0I1QVpJQUFQLy9BQzcrUXdPMkJGQUNKZ0JYQUFBQUJ3QjVBVnYvK1AvL0FDZjkvd1NqQmNjQ0pnQTNBQUFBQndHaUFTeitvUC8vQUM3OTlnTzJCRkFDSmdCWEFBQUFCd0dpQVBYK2wvLy9BQ2YvNlFTakJ6b0NKZ0EzQUFBQkJ3Q2VBTjBCT1FBSkFMQUtMN0F0M0RBeEFQLy9BQzcvNlFQaUJnSUNKZ0JYQUFBQkJnQ2VZZ0VBQ1FDd0NDK3dLOXd3TVFELy93Q28vZjhGQ1FXd0FpWUFPQUFBQUFjQm9nRWUvcUQvL3dCRC9mOENsQVZBQWlZQVdBQUFBQWNCb2dDQy9xRC8vd0NvL2tzRkNRV3dBaVlBT0FBQUFBY0FlUUdFQUFELy93QkQva3NDbEFWQUFpWUFXQUFBQUFjQWVRRG9BQUQvL3dDb0FBQUZDUWM0QWlZQU9BQUFBUWNBbmdEU0FUY0FDUUN3Qmkrd0ROd3dNUUQvL3dCRC8rMERqUVo1QUNZQVdBQUFBQWNCb2dKK0JZci8vd0JuLytjRklBY2hBaVlBT1FBQUFRY0FwQUQ4QVRvQUNRQ3dBQyt3SGR3d01RRC8vd0JiLytnRUhnWHJBaVlBV1FBQUFRWUFwR1VFQUFrQXNBWXZzQjdjTURFQS8vOEFaLy9uQlNBRzdnSW1BRGtBQUFFSEFIQUEvd0UrQUFrQXNBQXZzQlBjTURFQS8vOEFXLy9vQkI0RnVBSW1BRmtBQUFFR0FIQm9DQUFKQUxBR0w3QVUzREF4QVAvL0FHZi81d1VnQnc4Q0pnQTVBQUFCQndDZ0FTa0JOd0FKQUxBQUw3QVczREF4QVAvL0FGdi82QVFlQmRrQ0pnQlpBQUFCQndDZ0FKSUFBUUFKQUxBR0w3QVgzREF4QVAvL0FHZi81d1VnQjVJQ0pnQTVBQUFCQndDaUFYa0JRUUFNQUxBQUw3QWMzTEFmMERBeC8vOEFXLy9vQkI0R1hBSW1BRmtBQUFFSEFLSUE0Z0FMQUF3QXNBWXZzQjNjc0NEUU1ESC8vd0JuLytjRkxnYzFBaVlBT1FBQUFRY0FwUUZ3QVRZQURBQ3dBQyt3RmR5d0Y5QXdNZi8vQUZ2LzZBU1hCZjhDSmdCWkFBQUJCd0NsQU5rQUFBQU1BTEFHTDdBVzNMQVkwREF4QUFFQVovNTdCU2dGc0FBZkFGQUFzQUJGV0xBWEx4dXhGeHcrV2JBQVJWaXdEUzhic1EwU1BsbXdBRVZZc0JJdkc3RVNFRDVac2hzQkNpdFlJZGdiOUZteUJCSWJFUkk1c0EwUXNnZ0RDaXRZSWRnYjlGbXdGeEN3SDlBd01RRURCZ1lIQmdjR0Z4WTNGd1lqSWlZM05qY21BamNUTXdNR0ZoY1dOamNUQlNpb0Y3MldsUWtIUVNCREJFUlRUbDhDQkZiWjhSbW91YWNSaW95WTBSdW9CYkQ4SjUvME5tZGdQd0lCR25rclpWSm5VZ1lCRDlZRDJ2d2xtYThFQnJHZ0E5d0FBUUJiL2s4RUhnUTZBQ01BWXdDd0FFVllzQmd2RzdFWUdENVpzQUJGV0xBVEx4dXhFeEErV2JBQVJWaXdJeThic1NNUVBsbXdBRVZZc0Fzdkc3RUxFajVac2dZRENpdFlJZGdiOUZtd0l4Q3dFTkN5RVJNWUVSSTVzQk1Rc2g0QkNpdFlJZGdiOUZtd0dCQ3dJZEF3TVNFWEJ3WUhCaGNXTnhjR0l5SW1OelkzTndZbkppWTNFek1EQmhjV0ZoY1dOeE16QXdOVUJFRjZDUWRCSUVNRVJGTk9Yd0lEeEJSL3hKdVZFM1MxZFFVREJVeEV3bXFJdGJ3REwxcFpQd0lCR25rclpWS1hjVjJEQkFUV3VRSzcvVUlzS2toU0F3YWpBeFQ3eGdELy93RERBQUFIUVFjMkFpWUFPd0FBQVFjQW5RSGNBVFlBQ1FDd0F5K3dGTnd3TVFELy93Q0FBQUFGL2dZQUFpWUFXd0FBQVFjQW5RRWJBQUFBQ1FDd0FTK3dEdHd3TVFELy93Q29BQUFGTWdjMkFpWUFQUUFBQVFjQW5RRERBVFlBQ1FDd0FTK3dDdHd3TVFELy8vK2wva1VEN0FZQUFpWUFYUUFBQVFZQW5TUUFBQWtBc0FFdnNCSGNNREVBLy84QXFBQUFCVElHL1FJbUFEMEFBQUVIQUdvQS9RRTJBQXdBc0FFdnNCN2NzQW5RTURILy8vL3JBQUFFemdjMEFpWUFQZ0FBQVFjQWRRRzhBVFlBQ1FDd0J5K3dETnd3TVFELy8vL3RBQUFEemdYK0FpWUFYZ0FBQVFjQWRRRWtBQUFBQ1FDd0J5K3dETnd3TVFELy8vL3JBQUFFemdiN0FpWUFQZ0FBQVFjQW9RR1pBVFlBQ1FDd0J5K3dFOXd3TVFELy8vL3RBQUFEemdYRkFpWUFYZ0FBQVFjQW9RRUJBQUFBQ1FDd0J5K3dFOXd3TVFELy8vL3JBQUFFemdjNEFpWUFQZ0FBQVFjQW5nRFhBVGNBQ1FDd0J5K3dEdHd3TVFELy8vL3RBQUFEemdZQ0FpWUFYZ0FBQVFZQW5qOEJBQWtBc0FjdnNBN2NNREVBLy8vL2hBQUFCM2dIUUFJbUFJRUFBQUVIQUhVQzl3RkNBQk1Bc0FCRldMQUdMeHV4Qmh3K1diQVYzREF4QVAvL0FCUC82QVpoQmY4Q0pnQ0dBQUFCQndCMUFuTUFBUUFUQUxBQVJWaXdGeThic1JjWVBsbXdSTnd3TVFELy93QWcvNlFGbkFkK0FpWUFnd0FBQVFjQWRRSW9BWUFBRXdDd0FFVllzQTB2RzdFTkhENVpzRERjTURFQS8vOEFPZjk2QkNvRi9nSW1BSWtBQUFFSEFIVUJPUUFBQUJNQXNBQkZXTEFBTHh1eEFCZytXYkF1M0RBeEFQLy8vN0FBQUFRUEJJMENKZ0c5QUFBQkJ3SGUveDMvZUFBc0FMSWZHUUZ4dE44Wjd4a0NjYlFmR1M4WkFsMnlieGtCY3JKUEdRRnh0TzhaL3hrQ1hiSmZHUUZkTURILy8vK3dBQUFFRHdTTkFpWUJ2UUFBQVFjQjN2OGQvM2dBTEFDeUh4a0JjYlRmR2U4WkFuRzBIeGt2R1FKZHNtOFpBWEt5VHhrQmNiVHZHZjhaQWwyeVh4a0JYVEF4Ly84QWJRQUFCRUlFalFJbUFjMEFBQUVHQWQ0OTRBQUlBTElBQ3dGZE1ESC8vLytsQUFBRDR3WWNBaVlCdWdBQUFRY0FSQURnQUI0QUV3Q3dBRVZZc0FRdkc3RUVHajVac0F6Y01ERUEvLy8vcFFBQUJBOEdIQUltQWJvQUFBRUhBSFVCYWdBZUFBa0FzQVF2c0EzY01ERUEvLy8vcFFBQUErTUdIZ0ltQWJvQUFBRUdBSjF3SGdBVEFMQUFSVml3QkM4YnNRUWFQbG13RU53d01RRC8vLytsQUFBRUpnWUpBaVlCdWdBQUFRWUFwSGdpQUFrQXNBUXZzQlhjTURFQS8vLy9wUUFBQS93RjVRSW1BYm9BQUFFSEFHb0FxZ0FlQUF3QXNBUXZzQ0Rjc0F2UU1ESC8vLytsQUFBRDR3WjZBaVlCdWdBQUFRY0FvZ0QxQUNrQURBQ3dCQyt3Rk55d0Y5QXdNZi8vLzZVQUFBUVVCbnNDSmdHNkFBQUFCd0hmQVBrQUN2Ly9BRWYrU0FRM0JLTUNKZ0c4QUFBQUJ3QjVBV2ovL2YvL0FCMEFBQVB2Qmh3Q0pnRytBQUFCQndCRUFMUUFIZ0FUQUxBQVJWaXdCaThic1FZYVBsbXdEZHd3TVFELy93QWRBQUFEN3dZY0FpWUJ2Z0FBQVFjQWRRRStBQjRBQ1FDd0JpK3dEdHd3TVFELy93QWRBQUFEN3dZZUFpWUJ2Z0FBQVFZQW5VUWVBQWtBc0FZdnNBM2NNREVBLy84QUhRQUFBKzhGNVFJbUFiNEFBQUVHQUdwK0hnQU1BTEFHTDdBaDNMQU0wREF4Ly84QUtnQUFBY1VHSEFJbUFjSUFBQUVHQUVTYUhnQVRBTEFBUlZpd0FpOGJzUUlhUGxtd0Jkd3dNUUQvL3dBcUFBQUN5QVljQWlZQndnQUFBUVlBZFNNZUFBa0FzQUl2c0FiY01ERUEvLzhBS2dBQUFvNEdIZ0ltQWNJQUFBRUhBSjMvS2dBZUFBa0FzQUl2c0FYY01ERUEvLzhBS2dBQUFyWUY1UUltQWNJQUFBRUhBR3IvWkFBZUFBd0FzQUl2c0JuY3NBVFFNREgvL3dBZEFBQUVtZ1lKQWlZQnh3QUFBUWNBcEFDaUFDSUFDUUN3QlMrd0ZOd3dNUUQvL3dCSy8rb0VUZ1ljQWlZQnlBQUFBUWNBUkFENEFCNEFFd0N3QUVWWXNBZ3ZHN0VJR2o1WnNDSGNNREVBLy84QVN2L3FCRTRHSEFJbUFjZ0FBQUVIQUhVQmdnQWVBQWtBc0FndnNDTGNNREVBLy84QVN2L3FCRTRHSGdJbUFjZ0FBQUVIQUowQWlBQWVBQWtBc0FndnNDSGNNREVBLy84QVN2L3FCRTRHQ1FJbUFjZ0FBQUVIQUtRQWtBQWlBQWtBc0FndnNDcmNNREVBLy84QVN2L3FCRTRGNVFJbUFjZ0FBQUVIQUdvQXdnQWVBQXdBc0FndnNEWGNzQ0RRTURILy93QkYvK29FVndZY0FpWUJ6Z0FBQVFjQVJBRGFBQjRBRXdDd0FFVllzQWt2RzdFSkdqNVpzQlBjTURFQS8vOEFSZi9xQkZjR0hBSW1BYzRBQUFFSEFIVUJaQUFlQUFrQXNBQXZzQlRjTURFQS8vOEFSZi9xQkZjR0hnSW1BYzRBQUFFR0FKMXFIZ0FKQUxBQUw3QVQzREF4QVAvL0FFWC82Z1JYQmVVQ0pnSE9BQUFCQndCcUFLUUFIZ0FNQUxBQUw3QW4zTEFTMERBeC8vOEFkQUFBQkdVR0hBSW1BZElBQUFFSEFIVUJPZ0FlQUFrQXNBRXZzQXZjTURFQS8vLy9wUUFBQkNzRjFnSW1BYm9BQUFFR0FIQjdKZ0FKQUxBRUw3QUwzREF4QVAvLy82VUFBQVB4QmZjQ0pnRzZBQUFCQndDZ0FLVUFId0FKQUxBRUw3QU8zREF4QUFBQy82WCtUd1BqQkkwQUZnQVpBR3V5RkJvYkVSSTVzQlFRc0JuUUFMQUFSVml3RkM4YnNSUWFQbG13QUVWWXNCSXZHN0VTRUQ1WnNBQkZXTEFXTHh1eEZoQStXYkFBUlZpd0NpOGJzUW9TUGxteUJRTUtLMWdoMkJ2MFdiSVhFaFFSRWptd0Z5K3lFUUVLSzFnaDJCdjBXYklaRkJJUkVqa3dNU0VIQmdjR0Z4WTNGd1lqSWlZM05qY0RJUU1qQVRNQkFTRURBOEZCZWdrSFFTQkRCRVJUVGw4Q0E4ODEvZ21jd1FLYm9nRUIvWE1CaEdneVdsay9BZ0VhZVN0bFVwcDFBUUwrNlFTTiszTUJyZ0g3Ly84QVIvL3NCRGNHSEFJbUFid0FBQUVIQUhVQmJ3QWVBQWtBc0FzdnNCL2NNREVBLy84QVIvL3NCRGNHSGdJbUFid0FBQUVHQUoxMUhnQUpBTEFMTDdBZTNEQXhBUC8vQUVmLzdBUTNCZU1DSmdHOEFBQUJCd0NoQVV3QUhnQUpBTEFMTDdBbTNEQXhBUC8vQUVmLzdBUTNCaUFDSmdHOEFBQUJCd0NlQUlvQUh3QUpBTEFMTDdBaDNEQXhBUC8vQUIwQUFBUVBCaUFDSmdHOUFBQUJCZ0NlTlI4QUNRQ3dBUyt3R3R3d01RRC8vd0FkQUFBRC93WFdBaVlCdmdBQUFRWUFjRThtQUFrQXNBWXZzQXpjTURFQS8vOEFIUUFBQSs4Rjl3SW1BYjRBQUFFR0FLQjVId0FKQUxBR0w3QVAzREF4QVAvL0FCMEFBQVB2QmVNQ0pnRytBQUFCQndDaEFSc0FIZ0FKQUxBR0w3QVYzREF4QUFBQkFCMytUd1B2QkkwQUhBQ01zaEVkSGhFU09RQ3dBRVZZc0Jjdkc3RVhHajVac0FCRldMQVFMeHV4RUJJK1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNCVXZHN0VWRUQ1WnNod1hCQkVTT2JBY0w3UWZIQzhjQWwyeXZ4d0JYYklBQVFvcldDSFlHL1Jac0JVUXNnSUJDaXRZSWRnYjlGbXdBOUN3RUJDeUN3TUtLMWdoMkJ2MFdiQVhFTElaQVFvcldDSFlHL1JaTURFQklRTWhCeU1YQndZSEJoY1dOeGNHSXlJbU56WTNJUk1oQnlFRElRTXgvZjFDQWxrYlB3UkJlZ2tIUVNCREJFUlRUbDhDQTZ2OTVjc0RCeHY5cmpvQ0JBSU8vb21YQXk5YVdUOENBUnA1SzJWU2tXa0VqWm4rc2dELy93QWRBQUFEN3dZZ0FpWUJ2Z0FBQVFZQW5sa2ZBQWtBc0FZdnNCRGNNREVBLy84QVRQL3VCRUVHSGdJbUFjQUFBQUVHQUoxekhnQUpBTEFMTDdBaDNEQXhBUC8vQUV6LzdnUkJCZmNDSmdIQUFBQUJCd0NnQUtnQUh3QUpBTEFMTDdBajNEQXhBUC8vQUV6LzdnUkJCZU1DSmdIQUFBQUJCd0NoQVVvQUhnQUpBTEFMTDdBcDNEQXhBUC8vQUV6OS9BUkJCS01DSmdIQUFBQUFCd0dpQVFmK25mLy9BQjBBQUFTYUJoNENKZ0hCQUFBQkJ3Q2RBSkVBSGdBSkFMQUdMN0FOM0RBeEFQLy9BQThBQUFMZ0Jna0NKZ0hDQUFBQkJ3Q2sveklBSWdBSkFMQUNMN0FPM0RBeEFQLy9BQmdBQUFMbEJkWUNKZ0hDQUFBQkJ3QncvelVBSmdBSkFMQUNMN0FFM0RBeEFQLy9BQ29BQUFLckJmY0NKZ0hDQUFBQkJ3Q2cvMThBSHdBSkFMQUNMN0FIM0RBeEFQLy8vM3IrVHdHcUJJMENKZ0hDQUFBQUJnQ2p5d0QvL3dBcUFBQUI0d1hqQWlZQndnQUFBUVlBb1FBZUFBa0FzQUl2c0EzY01ERUEvLy8vOXYvckJHZ0dIZ0ltQWNNQUFBRUhBSjBCQkFBZUFBa0FzQUF2c0JEY01ERUEvLzhBSGY0RkJIOEVqUUltQWNRQUFBQUhBYUlBei82bS8vOEFIUUFBQXlNR0hBSW1BY1VBQUFFR0FIVVhIZ0FKQUxBRUw3QUkzREF4QVAvL0FCMytCd01qQkkwQ0pnSEZBQUFBQndHaUFNeitxUC8vQUIwQUFBTWpCSTRDSmdIRkFBQUJCd0dpQWhNRG53QVFBTEFBUlZpd0NpOGJzUW9hUGxrd01mLy9BQjBBQUFNakJJMENKZ0hGQUFBQUJ3Q2hBT0Q5Ti8vL0FCMEFBQVNhQmh3Q0pnSEhBQUFCQndCMUFaUUFIZ0FKQUxBRkw3QU0zREF4QVAvL0FCMytBd1NhQkkwQ0pnSEhBQUFBQndHaUFTVCtwUC8vQUIwQUFBU2FCaUFDSmdISEFBQUJCd0NlQUs4QUh3QUpBTEFGTDdBTzNEQXhBUC8vQUVyLzZnUk9CZFlDSmdISUFBQUJCd0J3QUpNQUpnQUpBTEFJTDdBZzNEQXhBUC8vQUVyLzZnUk9CZmNDSmdISUFBQUJCd0NnQUwwQUh3QUpBTEFJTDdBajNEQXhBUC8vQUVyLzZnVENCaDBDSmdISUFBQUJCd0NsQVFRQUhnQU1BTEFJTDdBaTNMQWswREF4Ly84QUhRQUFCQUVHSEFJbUFjc0FBQUVIQUhVQkx3QWVBQWtBc0FRdnNCbmNNREVBLy84QUhmNEhCQUVFalFJbUFjc0FBQUFIQWFJQXlmNm8vLzhBSFFBQUJBRUdJQUltQWNzQUFBRUdBSjVLSHdBSkFMQUVMN0FiM0RBeEFQLy9BQkgvNndQdEJod0NKZ0hNQUFBQkJ3QjFBVVVBSGdBSkFMQUtMN0FxM0RBeEFQLy9BQkgvNndQdEJoNENKZ0hNQUFBQkJnQ2RTeDRBQ1FDd0NpK3dLZHd3TVFELy93QVIva3NEN1FTZEFpWUJ6QUFBQUFjQWVRRkpBQUQvL3dBUi8rc0Q3UVlnQWlZQnpBQUFBUVlBbm1BZkFBa0FzQW92c0N6Y01ERUEvLzhBYmY0QkJFSUVqUUltQWMwQUFBQUhBYUlBei82aS8vOEFiUUFBQkVJR0lBSW1BYzBBQUFFR0FKNVVId0FKQUxBR0w3QU0zREF4QVAvL0FHMytUUVJDQkkwQ0pnSE5BQUFBQndCNUFUVUFBdi8vQUVYLzZnUlhCZ2tDSmdIT0FBQUJCZ0NrY2lJQUNRQ3dBQyt3SE53d01RRC8vd0JGLytvRVZ3WFdBaVlCemdBQUFRWUFjSFVtQUFrQXNBQXZzQkxjTURFQS8vOEFSZi9xQkZjRjl3SW1BYzRBQUFFSEFLQUFud0FmQUFrQXNBQXZzQlhjTURFQS8vOEFSZi9xQkZjR2VnSW1BYzRBQUFFSEFLSUE3d0FwQUF3QXNBQXZzQnZjc0I3UU1ESC8vd0JGLytvRXBBWWRBaVlCemdBQUFRY0FwUURtQUI0QURBQ3dBQyt3Rk55d0Z0QXdNUUFCQUVYK2RBUlhCSTBBSUFCaHNna2hJaEVTT1FDd0FFVllzQ0F2RzdFZ0dqNVpzQUJGV0xBWUx4dXhHQm8rV2JBQVJWaXdEaThic1E0U1BsbXdBRVZZc0JNdkc3RVRFRDVac2dRVElCRVNPYkFPRUxJSkF3b3JXQ0hZRy9SWnNCTVFzaHdCQ2l0WUlkZ2I5Rmt3TVFFREJnWUhCZ1lIQmhjV054Y0dJeUltTnpZM0ppWTNFek1EQmhZWEZqWTNFd1JYZ3hPa2dGUktCQWRCSUVNRVJGTk9Yd0lFWXJUSEU0T3poQTExZEhxcEZZUUVqZnoxaDhjcU8yQXZQd0lCR25rclpWSndWUTNhcWdNTS9QTjFnUU1FZ25zRERRRC8vd0NWQUFBR0tRWWVBaVlCMEFBQUFRY0FuUUUzQUI0QUNRQ3dFaSt3Rk53d01RRC8vd0IwQUFBRVpRWWVBaVlCMGdBQUFRWUFuVUFlQUFrQXNBRXZzQXJjTURFQS8vOEFkQUFBQkdVRjVRSW1BZElBQUFFR0FHcDZIZ0FNQUxBQkw3QWUzTEFKMERBeC8vLy8zQUFBQkE0R0hBSW1BZE1BQUFFSEFIVUJPZ0FlQUFrQXNBY3ZzQXpjTURFQS8vLy8zQUFBQkE0RjR3SW1BZE1BQUFFSEFLRUJGd0FlQUFrQXNBY3ZzQlBjTURFQS8vLy8zQUFBQkE0R0lBSW1BZE1BQUFFR0FKNVZId0FKQUxBSEw3QU8zREF4QVAvLy82OEFBQVNMQmo4Q0pnQWxBQUFBQmdDdEJBRC8vd0JqQUFBRkZRWS9BQ1lBS1dRQUFBY0FyZjlDQUFELy93QnhBQUFGMndaQkFDWUFMR1FBQUFjQXJmOVFBQUwvL3dCM0FBQUNaUVpBQUNZQUxXUUFBQWNBcmY5V0FBSC8vd0JxLytjRklRWS9BQ1lBTXhRQUFBY0FyZjlKQUFELy8vL3VBQUFGbGdZL0FDWUFQV1FBQUFjQXJmN05BQUQvL3dBZUFBQUU3Z1kvQUNZQXVSUUFBQWNBcmY5TUFBRC8vd0FnLy9RREd3WjBBaVlBd2dBQUFRY0Fydjh0Lyt3QUhBQ3dBRVZZc0E0dkc3RU9HRDVac0J2Y3NCSFFzQnNRc0NUUU1ESC8vLyt2QUFBRWl3V3dBZ1lBSlFBQS8vOEFPd0FBQktBRnNBSUdBQ1lBQVAvL0FEc0FBQVN4QmJBQ0JnQXBBQUQvLy8vckFBQUV6Z1d3QWdZQVBnQUEvLzhBT3dBQUJYY0ZzQUlHQUN3QUFQLy9BRWtBQUFJQkJiQUNCZ0F0QUFELy93QTdBQUFGVUFXd0FnWUFMd0FBLy84QU93QUFCcmNGc0FJR0FERUFBUC8vQURzQUFBVjNCYkFDQmdBeUFBRC8vd0IzLytjRkRRWElBZ1lBTXdBQS8vOEFPd0FBQlBNRnNBSUdBRFFBQVAvL0FLZ0FBQVVKQmJBQ0JnQTRBQUQvL3dDb0FBQUZNZ1d3QWdZQVBRQUEvLy8vMUFBQUJTc0ZzQUlHQUR3QUFQLy9BRWtBQUFNS0J3a0NKZ0F0QUFBQkJ3QnEvN2dCUWdBTUFMQUNMN0FaM0xBRTBEQXgvLzhBcUFBQUJUSUcvUUltQUQwQUFBRUhBR29BL1FFMkFBd0FzQUV2c0I3Y3NBblFNREgvL3dCSS8rY0VNZ1k2QWlZQXVnQUFBUWNBclFGby8vc0FDUUN3RlMrd0tOd3dNUUQvL3dBcC8rY0Q1UVk1QWlZQXZnQUFBUWNBclFFaC8vb0FDUUN3R2krd0s5d3dNUUQvL3dBay9tRUQ4d1k2QWlZQXdBQUFBUWNBclFFNy8vc0FDUUN3QXkrd0Zkd3dNUUQvL3dDRi8vUUNaUVlsQWlZQXdnQUFBUVlBclNUbUFBa0FzQUF2c0JIY01ERUEvLzhBWi8vbEJBb0dkQUltQU1vQUFBRUdBSzRjN0FBU0FMQUxMN0FyM0xBVzBMQXJFTEFhMERBeC8vOEFMUUFBQkZjRU9nSUdBSTBBQVAvL0FFWC82QVFmQkZJQ0JnQlRBQUQvLy8vbC9tQUVKUVE2QWdZQWRnQUEvLzhBYmdBQUErMEVPZ0lHQUZvQUFQLy8vOFFBQUFQMEJEb0NCZ0JjQUFELy93Qm4vL1FDM2dXekFpWUF3Z0FBQVFZQWFvenNBQXdBc0FBdnNDVGNzQS9RTURILy93Qm4vK1VEK2dXekFpWUF5Z0FBQVFZQWFudnNBQXdBc0FzdnNDdmNzQmJRTURILy93QkYvK2dFSHdZNkFpWUFVd0FBQVFjQXJRRXMvL3NBQ1FDd0FDK3dKZHd3TVFELy93Qm4vK1VEK2dZbEFpWUF5Z0FBQVFjQXJRRVUvK1lBQ1FDd0N5K3dHTnd3TVFELy93Qm0vK1FGL0FZaUFpWUF6UUFBQVFjQXJRSTgvK01BQ1FDd0dDK3dMZHd3TVFELy93QTdBQUFFc1FjSkFpWUFLUUFBQVFjQWFnRUJBVUlBRmdDd0FFVllzQVl2RzdFR0hENVpzQlhjc0NIUU1ESC8vd0JEQUFBRXBRZEFBaVlBc0FBQUFRY0FkUUhIQVVJQUV3Q3dBRVZZc0FRdkc3RUVIRDVac0FqY01ERUFBQUVBSi8vcEJLTUZ4d0FvQUdHeUV5a3FFUkk1QUxBQVJWaXdDaThic1FvY1BsbXdBRVZZc0I4dkc3RWZFRDVac2dJZkNoRVNPYkFLRUxBUDBMQUtFTElTQVFvcldDSFlHL1Jac0FJUXNoZ0JDaXRZSWRnYjlGbXdIeEN3Sk5Dd0h4Q3lKd0VLSzFnaDJCdjBXVEF4QVRZdkFpUTNQZ0lYSGdJSEp6WW1KeVlHQndZZkFnUUREZ0luTGdJM0Z3WVdCRFlEYlJhOHJUciszQk1La3ZHSWhNOXNCcjBLaklLSnVBNFV5NVZMQVJvVkM1RDNqb25qZGdlOENaOEJJcndCZDZCS1B4bUY4WG02WlFNRGNNbCtBWWFUQWdLRWNwVk5OU0NDL3dCN3MySURBWFBJZndHQ21RU0MvLzhBU1FBQUFnRUZzQUlHQUMwQUFQLy9BRWtBQUFNS0J3a0NKZ0F0QUFBQkJ3QnEvN2dCUWdBTUFMQUNMN0FaM0xBRTBEQXgvLzhBQ3YvbUJFb0ZzQUlHQUM0QUFQLy9BRVFBQUFWcUJiQUNCZ0hqQUFELy93QTdBQUFGVUFjdUFpWUFMd0FBQVFjQWRRR3dBVEFBRXdDd0FFVllzQVV2RzdFRkhENVpzQTdjTURFQS8vOEFrLy9tQlVBSEd3SW1BTjBBQUFFSEFLQUJGZ0ZEQUJNQXNBQkZXTEFRTHh1eEVCdytXYkFVM0RBeEFQLy8vNjhBQUFTTEJiQUNCZ0FsQUFELy93QTdBQUFFb0FXd0FnWUFKZ0FBLy84QVF3QUFCS1VGc0FJR0FMQUFBUC8vQURzQUFBU3hCYkFDQmdBcEFBRC8vd0JEQUFBRmJnY2JBaVlBMndBQUFRY0FvQUZyQVVNQUNRQ3dBQyt3RGR3d01RRC8vd0E3QUFBR3R3V3dBZ1lBTVFBQS8vOEFPd0FBQlhjRnNBSUdBQ3dBQVAvL0FIZi81d1VOQmNnQ0JnQXpBQUQvL3dCRUFBQUZjQVd3QWdZQXRRQUEvLzhBT3dBQUJQTUZzQUlHQURRQUFQLy9BSFQvNWdUNUJja0NCZ0FuQUFELy93Q29BQUFGQ1FXd0FnWUFPQUFBLy8vLzFBQUFCU3NGc0FJR0FEd0FBUC8vQURQLzZBUFBCRkVDQmdCRkFBRC8vd0JGLytvRDRBUlJBZ1lBU1FBQS8vOEFMd0FBQkRjRnhRSW1BTzhBQUFFSEFLQUFwZi90QUFrQXNBQXZzQTNjTURFQS8vOEFSZi9vQkI4RVVnSUdBRk1BQVAvLy85ZitZQVA4QkZJQ0JnQlVBQUFBQVFCRy8ra0Q1Z1JTQUNBQVM3SUFJU0lSRWprQXNBQkZXTEFSTHh1eEVSZytXYkFBUlZpd0NDOGJzUWdRUGxteUFBRUtLMWdoMkJ2MFdiSUVFUWdSRWpteUZCRUlFUkk1c0JFUXNoZ0JDaXRZSWRnYjlGa3dNU1VXTmpjM0RnSW5MZ0kzTno0Q0Z4WVdGU2NtSmljbUJnY0hCaGNXRmdIb1lad1lxdytGeW1xSHUxZ09CUk9RNkl5cXpLa0NjbUdOdXhjREJnUUhkb0lDZFY4QlpxaGVBd0tKOVpreW5QYUpCQVRjcVFGcWd3UUQyTUlhUUVSMWlBRC8vLytsL2tVRDdBUTZBZ1lBWFFBQS8vLy94QUFBQS9RRU9nSUdBRndBQVAvL0FFWC82Z1BnQmNjQ0pnQkpBQUFCQndCcUFJb0FBQUFNQUxBSUw3QTEzTEFnMERBeC8vOEFMUUFBQTRNRjZnSW1BT3NBQUFFSEFIVUF6Ly9zQUJNQXNBQkZXTEFGTHh1eEJSZytXYkFJM0RBeEFQLy9BQzcvNlFPMkJGQUNCZ0JYQUFELy93QXZBQUFCNHdYSEFnWUFUUUFBLy84QUxnQUFBcmdGeGdJbUFJd0FBQUVIQUdyL1p2Ly9BQXdBc0FJdnNCbmNzQVRRTURILy8vOFUva1lCMVFYSEFnWUFUZ0FBLy84QUx3QUFCRmNGNlFJbUFQQUFBQUVIQUhVQk9mL3JBQk1Bc0FCRldMQUlMeHV4Q0JnK1diQVAzREF4QVAvLy82WCtSUVBzQmRrQ0pnQmRBQUFCQmdDZ1dRRUFFd0N3QUVWWXNBOHZHN0VQR0Q1WnNCUGNNREVBLy84QXd3QUFCMEVITkFJbUFEc0FBQUVIQUVRQ1RBRTJBQk1Bc0FCRldMQUVMeHV4QkJ3K1diQVUzREF4QVAvL0FJQUFBQVgrQmY0Q0pnQmJBQUFCQndCRUFZc0FBQUFUQUxBQVJWaXdDeThic1FzWVBsbXdEdHd3TVFELy93RERBQUFIUVFjMEFpWUFPd0FBQVFjQWRRTFdBVFlBRXdDd0FFVllzQVF2RzdFRUhENVpzQlhjTURFQS8vOEFnQUFBQmY0Ri9nSW1BRnNBQUFFSEFIVUNGUUFBQUJNQXNBQkZXTEFNTHh1eERCZytXYkFQM0RBeEFQLy9BTU1BQUFkQkJ2MENKZ0E3QUFBQkJ3QnFBaFlCTmdBV0FMQUFSVml3QXk4YnNRTWNQbG13SE55d0tOQXdNZi8vQUlBQUFBWCtCY2NDSmdCYkFBQUJCd0JxQVZVQUFBQVdBTEFBUlZpd0N5OGJzUXNZUGxtd0Z0eXdJdEF3TWYvL0FLZ0FBQVV5QnpRQ0pnQTlBQUFCQndCRUFUTUJOZ0FUQUxBQVJWaXdDQzhic1FnY1BsbXdDdHd3TVFELy8vK2wva1VEN0FYK0FpWUFYUUFBQVFjQVJBQ1VBQUFBRXdDd0FFVllzQTh2RzdFUEdENVpzQkhjTURFQS8vOEFxZ1FoQVlrR0FBSUdBQXNBQVAvL0FNZ0VFUUttQmdnQ0JnQUdBQUQvL3dCRC8vSUQvUVd3QUNZQUJRQUFBQWNBQlFJSkFBRC8vLzhKL2tZQ3h3WGFBaVlBbXdBQUFRY0FudjlILzlrQUV3Q3dBRVZZc0F3dkc3RU1HRDVac0JMY01ERUEvLzhBaVFRV0FlQUdBQUlHQVcwQUFQLy9BRHNBQUFhM0J6UUNKZ0F4QUFBQkJ3QjFBc1lCTmdBVEFMQUFSVml3QWk4YnNRSWNQbG13RWR3d01RRC8vd0FlQUFBR2FnWCtBaVlBVVFBQUFRY0FkUUtrQUFBQUV3Q3dBRVZZc0FNdkc3RURHRDVac0NQY01ERUEvLy8vci81cUJJc0ZzQUltQUNVQUFBQUhBS1lCZEFBQS8vOEFNLzVxQTg4RVVRSW1BRVVBQUFBSEFLWUF3UUFBLy84QU93QUFCTEVIUUFJbUFDa0FBQUVIQUVRQk53RkNBQk1Bc0FCRldMQUdMeHV4Qmh3K1diQU4zREF4QVAvL0FFTUFBQVZ1QjBBQ0pnRGJBQUFCQndCRUFhWUJRZ0FUQUxBQVJWaXdDQzhic1FnY1BsbXdDOXd3TVFELy93QkYvK29ENEFYK0FpWUFTUUFBQVFjQVJBREFBQUFBRXdDd0FFVllzQWd2RzdFSUdENVpzQ0hjTURFQS8vOEFMd0FBQkRjRjZnSW1BTzhBQUFFSEFFUUE0UC9zQUJNQXNBQkZXTEFJTHh1eENCZytXYkFMM0RBeEFQLy9BSVlBQUFXZEJiQUNCZ0M0QUFELy93QlAvaWdGVHdROEFnWUF6QUFBLy84QXJRQUFCVXNHNkFJbUFSZ0FBQUVIQUtzRVJBRDZBQllBc0FCRldMQVBMeHV4RHh3K1diQVIzTEFWMERBeC8vOEFoQUFBQkR3RndRSW1BUmtBQUFFSEFLc0Rydi9UQUJZQXNBQkZXTEFRTHh1eEVCZytXYkFTM0xBVzBEQXgvLzhBUmY1RkNHTUVVZ0FtQUZNQUFBQUhBRjBFZHdBQS8vOEFkLzVGQ1V3RnlBQW1BRE1BQUFBSEFGMEZZQUFBLy84QUpmNVJCSmdGeHdJbUFOb0FBQUFIQWJBQmcvKzQvLzhBSWY1U0E2b0VVQUltQU80QUFBQUhBYkFCTGYrNS8vOEFkUDVSQlBrRnlRSW1BQ2NBQUFBSEFiQUJ5dis0Ly84QVJ2NVJBK1lFVWdJbUFFY0FBQUFIQWJBQlJ2KzQvLzhBcUFBQUJUSUZzQUlHQUQwQUFQLy9BSVQrWUFRYUJEb0NCZ0M4QUFELy93QkpBQUFDQVFXd0FnWUFMUUFBLy8vL3JBQUFCM1VIR3dJbUFOa0FBQUVIQUtBQ0xBRkRBQk1Bc0FCRldMQU5MeHV4RFJ3K1diQVozREF4QVAvLy82VUFBQVlPQmNVQ0pnRHRBQUFCQndDZ0FWei83UUFUQUxBQVJWaXdEUzhic1EwWVBsbXdHZHd3TVFELy93QkpBQUFDQVFXd0FnWUFMUUFBLy8vL3J3QUFCSXNIRHdJbUFDVUFBQUVIQUtBQkxnRTNBQk1Bc0FCRldMQUVMeHV4QkJ3K1diQU8zREF4QVAvL0FEUC82QVBzQmRrQ0pnQkZBQUFCQndDZ0FLQUFBUUFUQUxBQVJWaXdHQzhic1JnWVBsbXdMOXd3TVFELy8vK3ZBQUFFaXdiOUFpWUFKUUFBQVFjQWFnRXpBVFlBRmdDd0FFVllzQVF2RzdFRUhENVpzQlRjc0NEUU1ESC8vd0F6LytnRDl3WEhBaVlBUlFBQUFRY0FhZ0NsQUFBQURBQ3dHQyt3UWR5d0xOQXdNZi8vLzRRQUFBZDRCYkFDQmdDQkFBRC8vd0FULytnR1lRUlNBZ1lBaGdBQS8vOEFPd0FBQkxFSEd3SW1BQ2tBQUFFSEFLQUEvQUZEQUFrQXNBWXZzQS9jTURFQS8vOEFSZi9xQStBRjJRSW1BRWtBQUFFSEFLQUFoUUFCQUFrQXNBZ3ZzQ1BjTURFQS8vOEFVZi9wQlNvRzJ3SW1BVVVBQUFFSEFHb0JDQUVVQUF3QXNBQXZzRHJjc0NYUU1ESC8vd0ErLytrRDN3Uk9BZ1lBbkFBQS8vOEFQdi9wQStFRnlBSW1BSndBQUFFSEFHb0Fqd0FCQUF3QXNBQXZzRGpjc0NQUU1ESC8vLytzQUFBSGRRY0pBaVlBMlFBQUFRY0FhZ0l4QVVJQURBQ3dDUyt3Szl5d0Z0QXdNZi8vLzZVQUFBWU9CYk1DSmdEdEFBQUJCd0JxQVdILzdBQU1BTEFKTDdBcjNMQVcwREF4Ly84QUpmL3FCSmdISGdJbUFOb0FBQUVIQUdvQStBRlhBQXdBc0EwdnNFRGNzQ3ZRTURILy93QWgvK29EdVFYSEFpWUE3Z0FBQVFZQWFtY0FBQXdBc0EwdnNEM2NzQ2pRTURILy93QkRBQUFGYmdiNkFpWUEyd0FBQVFjQWNBRkJBVW9BQ1FDd0FDK3dDdHd3TVFELy93QXZBQUFFTndXa0FpWUE3d0FBQVFZQWNIdjBBQWtBc0FBdnNBcmNNREVBLy84QVF3QUFCVzRIQ1FJbUFOc0FBQUVIQUdvQmNBRkNBQXdBc0FBdnNCL2NzQXJRTURILy93QXZBQUFFTndXekFpWUE3d0FBQVFjQWFnQ3EvK3dBREFDd0FDK3dIOXl3Q3RBd01mLy9BSGYvNXdVTkJ2OENKZ0F6QUFBQkJ3QnFBVlFCT0FBTUFMQUtMN0E0M0xBajBEQXgvLzhBUmYvb0JCOEZ4d0ltQUZNQUFBRUhBR29Ba3dBQUFBd0FzQUF2c0RqY3NDUFFNREgvL3dCcC8ra0UvQVhJQWdZQkZnQUEvLzhBUXYvbkJDQUVVd0lHQVJjQUFQLy9BR24vNlFUOEJ3UUNKZ0VXQUFBQkJ3QnFBV0FCUFFBTUFMQUpMN0E2M0xBbDBEQXgvLzhBUXYvbkJDQUZ5UUltQVJjQUFBRUhBR29Ba0FBQ0FBd0FzQVF2c0RYY3NDRFFNREgvL3dCMC8ra0UvQWNmQWlZQTVnQUFBUWNBYWdGTUFWZ0FEQUN3RlMrd09OeXdJOUF3TWYvL0FEVC81d1BXQmNjQ0pnRCtBQUFCQndCcUFJUUFBQUFNQUxBSUw3QTMzTEFpMERBeC8vOEFrLy9tQlVBRytnSW1BTjBBQUFFSEFIQUE3QUZLQUFrQXNBRXZzQkhjTURFQS8vLy9wZjVGQSt3RnVBSW1BRjBBQUFFR0FIQXZDQUFKQUxBQkw3QVEzREF4QVAvL0FKUC81Z1ZBQndrQ0pnRGRBQUFCQndCcUFSc0JRZ0FNQUxBQkw3QW0zTEFSMERBeC8vLy9wZjVGQSt3Rnh3SW1BRjBBQUFFR0FHcGVBQUFNQUxBQkw3QWwzTEFRMERBeC8vOEFrLy9tQlVBSFFRSW1BTjBBQUFFSEFLVUJYUUZDQUJZQXNBQkZXTEFCTHh1eEFSdytXYkFUM0xBWDBEQXgvLy8vcGY1RkJGNEYvd0ltQUYwQUFBRUhBS1VBb0FBQUFCWUFzQUJGV0xBQkx4dXhBUmcrV2JBUzNMQVcwREF4Ly84QXpnQUFCVVFIQ1FJbUFPQUFBQUVIQUdvQlJBRkNBQllBc0FCRldMQVNMeHV4RWh3K1diQW8zTEFjMERBeC8vOEFld0FBQkFBRnN3SW1BUGdBQUFFR0FHcHA3QUFNQUxBSUw3QW8zTEFUMERBeC8vOEFSUUFBQnBZSENRQW1BT1VQQUFBbkFDMEVsUUFBQVFjQWFnSUlBVUlBRmdDd0FFVllzQW92RzdFS0hENVpzQ0hjc0MzUU1ESC8vd0F3QUFBRnFRV3pBQ1lBL1FBQUFDY0FqQVFLQUFBQkJ3QnFBV3IvN0FBV0FMQUFSVml3Q2k4YnNRb1lQbG13SWR5d0xkQXdNZi8vLzlUK1JRVXJCYkFDSmdBOEFBQUFCd0d2QTVVQUFQLy8vOFQrUlFQMEJEb0NKZ0JjQUFBQUJ3R3ZBcW9BQVAvL0FFdi82QVIxQmdBQ0JnQklBQUQvLy8vSy9rVUZaUVd3QWlZQTNBQUFBQWNCcndRa0FBRC8vLy9JL2tVRVNnUTZBaVlBOFFBQUFBY0Jyd003QUFELy8vK3YvcDhFaXdXd0FpWUFKUUFBQUFjQXJBVGNBQUQvL3dBei9wOER6d1JSQWlZQVJRQUFBQWNBckFRcEFBRC8vLyt2QUFBRWl3ZTVBaVlBSlFBQUFRY0FxZ1VCQVVZQUNRQ3dCQyt3R053d01RRC8vd0F6LytnRHp3YURBaVlBUlFBQUFRY0FxZ1J6QUJBQUNRQ3dHQyt3T2R3d01RRC8vLyt2QUFBRjdRZkRBaVlBSlFBQUFRY0J0d0R5QVM0QUZnQ3dBRVZZc0FVdkc3RUZIRDVac0E3Y3NCVFFNREgvL3dBei8rZ0ZYd2FPQWlZQVJRQUFBUVlCdDJUNUFCWUFzQUJGV0xBWUx4dXhHQmcrV2JBdjNMQTEwREF4Ly8vL3J3QUFCSXNIdndJbUFDVUFBQUVIQWJZQStBRTlBQllBc0FCRldMQUZMeHV4QlJ3K1diQU0zTEFUMERBeC8vOEFNLy9vQS8wR2lRSW1BRVVBQUFFR0FiWnFCd0FXQUxBQVJWaXdHQzhic1JnWVBsbXdMOXl3Tk5Bd01mLy8vNjhBQUFWc0Irb0NKZ0FsQUFBQkJ3RzFBUE1CR3dBV0FMQUFSVml3QlM4YnNRVWNQbG13RE55d0lOQXdNZi8vQURQLzZBVGVCclVDSmdCRkFBQUJCZ0cxWmVZQUZnQ3dBRVZZc0Jndkc3RVlHRDVac0MvY3NEUFFNREgvLy8rdkFBQUVpd2ZaQWlZQUpRQUFBUWNCdEFEdkFRWUFGZ0N3QUVWWXNBUXZHN0VFSEQ1WnNBN2NzQlhRTURILy93QXovK2dEOXdha0FpWUFSUUFBQVFZQnRHSFJBQllBc0FCRldMQVlMeHV4R0JnK1diQXQzTEEyMERBeC8vLy9yLzZmQklzSE5nSW1BQ1VBQUFBbkFKMEErUUUyQVFjQXJBVGNBQUFBRXdDd0FFVllzQVF2RzdFRUhENVpzQkRjTURFQS8vOEFNLzZmQTg4R0FBSW1BRVVBQUFBbUFKMXJBQUVIQUt3RUtRQUFBQk1Bc0FCRldMQVlMeHV4R0JnK1diQXgzREF4QVAvLy82OEFBQVNMQjdjQ0pnQWxBQUFCQndHekFSY0JMUUFNQUxBRUw3QU8zTEFhMERBeC8vOEFNLy9vQStVR2dnSW1BRVVBQUFFSEFiTUFpZi80QUF3QXNCZ3ZzQy9jc0R2UU1ESC8vLyt2QUFBRWl3ZTNBaVlBSlFBQUFRY0J1QUVYQVMwQURBQ3dCQyt3RHR5d0d0QXdNZi8vQURQLzZBUGxCb0lDSmdCRkFBQUJCd0c0QUluLytBQU1BTEFZTDdBdjNMQTcwREF4Ly8vL3J3QUFCSXNJUUFJbUFDVUFBQUVIQWJJQkhnRTlBQXdBc0FRdnNBN2NzQmZRTURILy93QXovK2dEMVFjS0FpWUFSUUFBQVFjQnNnQ1FBQWNBREFDd0dDK3dMOXl3T05Bd01mLy8vNjhBQUFTU0NCUUNKZ0FsQUFBQkJ3R3hBUjhCUlFBTUFMQUVMN0FPM0xBWDBEQXgvLzhBTS8vb0JBUUczZ0ltQUVVQUFBRUhBYkVBa1FBUEFBd0FzQmd2c0MvY3NEalFNREgvLy8rdi9wOEVpd2NQQWlZQUpRQUFBQ2NBb0FFdUFUY0JCd0NzQk53QUFBQVRBTEFBUlZpd0JDOGJzUVFjUGxtd0R0d3dNUUQvL3dBei9wOEQ3QVhaQWlZQVJRQUFBQ2NBb0FDZ0FBRUJCd0NzQkNrQUFBQVRBTEFBUlZpd0dDOGJzUmdZUGxtd0w5d3dNUUQvL3dBNy9xa0VzUVd3QWlZQUtRQUFBQWNBckFTZEFBci8vd0JGL3A4RDRBUlJBaVlBU1FBQUFBY0FyQVIwQUFELy93QTdBQUFFc1FmRkFpWUFLUUFBQVFjQXFnVFBBVklBQ1FDd0JpK3dHZHd3TVFELy93QkYvK29ENEFhREFpWUFTUUFBQVFjQXFnUllBQkFBQ1FDd0NDK3dMZHd3TVFELy93QTdBQUFFc1FjdEFpWUFLUUFBQVFjQXBBRFBBVVlBQ1FDd0JpK3dGdHd3TVFELy93QkYvK29FQmdYckFpWUFTUUFBQVFZQXBGZ0VBQWtBc0FndnNDcmNNREVBLy84QU93QUFCYnNIendJbUFDa0FBQUVIQWJjQXdBRTZBQllBc0FCRldMQUdMeHV4Qmh3K1diQVIzTEFWMERBeC8vOEFSZi9xQlVRR2pnSW1BRWtBQUFFR0FiZEorUUFXQUxBQVJWaXdDQzhic1FnWVBsbXdJOXl3S2RBd01mLy9BRHNBQUFTeEI4c0NKZ0FwQUFBQkJ3RzJBTVlCU1FBV0FMQUFSVml3Qmk4YnNRWWNQbG13RDl5d0ZOQXdNZi8vQUVYLzZnUGlCb2tDSmdCSkFBQUJCZ0cyVHdjQUZnQ3dBRVZZc0Fndkc3RUlHRDVac0NQY3NDalFNREgvL3dBN0FBQUZPZ2YyQWlZQUtRQUFBUWNCdFFEQkFTY0FGZ0N3QUVWWXNBWXZHN0VHSEQ1WnNBL2NzQ0hRTURILy93QkYvK29Fd3dhMUFpWUFTUUFBQVFZQnRVcm1BQllBc0FCRldMQUlMeHV4Q0JnK1diQWgzTEExMERBeC8vOEFPd0FBQkxFSDVRSW1BQ2tBQUFFSEFiUUF2UUVTQUJZQXNBQkZXTEFHTHh1eEJodytXYkFQM0xBVzBEQXgvLzhBUmYvcUErQUdwQUltQUVrQUFBRUdBYlJHMFFBV0FMQUFSVml3Q0M4YnNRZ1lQbG13STl5d0t0QXdNZi8vQUR2K3FRU3hCMElDSmdBcEFBQUFKd0NkQU1jQlFnRUhBS3dFblFBS0FCTUFzQUJGV0xBR0x4dXhCaHcrV2JBUjNEQXhBUC8vQUVYK253UGdCZ0FDSmdCSkFBQUFKZ0NkVUFBQkJ3Q3NCSFFBQUFBVEFMQUFSVml3Q0M4YnNRZ1lQbG13SmR3d01RRC8vd0JKQUFBQ3V3ZkZBaVlBTFFBQUFRY0FxZ09GQVZJQUNRQ3dBaSt3RWR3d01RRC8vd0F1QUFBQ2FRYUJBaVlBakFBQUFRY0FxZ016QUE0QUNRQ3dBaSt3RWR3d01RRC8vd0FPL3FnQ0FRV3dBaVlBTFFBQUFBY0FyQU5UQUFuLy8vL3gvcWtCNHdYSEFpWUFUUUFBQUFjQXJBTTJBQXIvL3dCMy9wOEZEUVhJQWlZQU13QUFBQWNBckFUeEFBRC8vd0JGL3A4RUh3UlNBaVlBVXdBQUFBY0FyQVNFQUFELy93QjMvK2NGRFFlN0FpWUFNd0FBQVFjQXFnVWlBVWdBQ1FDd0NpK3dNTnd3TVFELy93QkYvK2dFSHdhREFpWUFVd0FBQVFjQXFnUmhBQkFBQ1FDd0FDK3dNTnd3TVFELy93QjMvK2NHRGdmRkFpWUFNd0FBQVFjQnR3RVRBVEFBRmdDd0FFVllzQW92RzdFS0hENVpzQ2Jjc0N6UU1ESC8vd0JGLytnRlRRYU9BaVlBVXdBQUFRWUJ0MUw1QUJZQXNBQkZXTEFBTHh1eEFCZytXYkFtM0xBczBEQXgvLzhBZC8vbkJRMEh3UUltQURNQUFBRUhBYllCR1FFL0FCWUFzQUJGV0xBS0x4dXhDaHcrV2JBbTNMQXIwREF4Ly84QVJmL29CQjhHaVFJbUFGTUFBQUVHQWJaWUJ3QVdBTEFBUlZpd0FDOGJzUUFZUGxtd0p0eXdLOUF3TWYvL0FIZi81d1dOQit3Q0pnQXpBQUFCQndHMUFSUUJIUUFXQUxBQVJWaXdDaThic1FvY1BsbXdKdHl3S3RBd01mLy9BRVgvNkFUTUJyVUNKZ0JUQUFBQkJnRzFVK1lBRmdDd0FFVllzQUF2RzdFQUdENVpzQ1Rjc0RqUU1ESC8vd0IzLytjRkRRZmJBaVlBTXdBQUFRY0J0QUVRQVFnQUZnQ3dBRVZZc0Fvdkc3RUtIRDVac0NUY3NDM1FNREgvL3dCRi8rZ0VId2FrQWlZQVV3QUFBUVlCdEUvUkFCWUFzQUJGV0xBQUx4dXhBQmcrV2JBazNMQXQwREF4Ly84QWQvNmZCUTBIT0FJbUFETUFBQUFuQUowQkdnRTRBUWNBckFUeEFBQUFFd0N3QUVWWXNBb3ZHN0VLSEQ1WnNDamNNREVBLy84QVJmNmZCQjhHQUFJbUFGTUFBQUFtQUoxWkFBRUhBS3dFaEFBQUFCTUFzQUJGV0xBQUx4dXhBQmcrV2JBbzNEQXhBUC8vQUdmLzZRWWJCeThDSmdDWEFBQUJCd0IxQWc4Qk1RQVRBTEFBUlZpd0NpOGJzUW9jUGxtd0s5d3dNUUQvL3dCQy8rY0Uvd1grQWlZQW1BQUFBUWNBZFFGbUFBQUFFd0N3QUVWWXNBQXZHN0VBR0Q1WnNDamNNREVBLy84QVovL3BCaHNITHdJbUFKY0FBQUVIQUVRQmhRRXhBQk1Bc0FCRldMQUtMeHV4Q2h3K1diQXEzREF4QVAvL0FFTC81d1QvQmY0Q0pnQ1lBQUFCQndCRUFOd0FBQUFUQUxBQVJWaXdBQzhic1FBWVBsbXdKOXd3TVFELy93Qm4vK2tHR3dlMEFpWUFsd0FBQVFjQXFnVWRBVUVBRXdDd0FFVllzQW92RzdFS0hENVpzQ25jTURFQS8vOEFRdi9uQlA4R2d3SW1BSmdBQUFFSEFLb0VkQUFRQUJNQXNBQkZXTEFBTHh1eEFCZytXYkFtM0RBeEFQLy9BR2YvNlFZYkJ4d0NKZ0NYQUFBQkJ3Q2tBUjBCTlFBVEFMQUFSVml3Q2k4YnNRb2NQbG13TE53d01RRC8vd0JDLytjRS93WHJBaVlBbUFBQUFRWUFwSFFFQUJNQXNBQkZXTEFBTHh1eEFCZytXYkFwM0RBeEFQLy9BR2YrbndZYkJqY0NKZ0NYQUFBQUJ3Q3NCT01BQVAvL0FFTCtsZ1QvQkxBQ0pnQ1lBQUFBQndDc0JIYi85Ly8vQUdmK253VWdCYkFDSmdBNUFBQUFCd0NzQk1nQUFQLy9BRnYrbndRZUJEb0NKZ0JaQUFBQUJ3Q3NCREFBQVAvL0FHZi81d1VnQjdrQ0pnQTVBQUFCQndDcUJQd0JSZ0FKQUxBQUw3QWczREF4QVAvL0FGdi82QVFlQm9NQ0pnQlpBQUFCQndDcUJHVUFFQUFKQUxBR0w3QWgzREF4QVAvL0FHZi82QWFhQjBBQ0pnQ1pBQUFCQndCMUFna0JRZ0FUQUxBQVJWaXdHaThic1JvY1BsbXdIZHd3TVFELy93QmEvK2dGVGdYcUFpWUFtZ0FBQVFjQWRRRmcvK3dBRXdDd0FFVllzQll2RzdFV0dENVpzQjdjTURFQS8vOEFaLy9vQnBvSFFBSW1BSmtBQUFFSEFFUUJmd0ZDQUJNQXNBQkZXTEFTTHh1eEVodytXYkFjM0RBeEFQLy9BRnIvNkFWT0Jlb0NKZ0NhQUFBQkJ3QkVBTmIvN0FBVEFMQUFSVml3RFM4YnNRMFlQbG13SGR3d01RRC8vd0JuLytnR21nZkZBaVlBbVFBQUFRY0FxZ1VYQVZJQUV3Q3dBRVZZc0Jvdkc3RWFIRDVac0NqY01ERUEvLzhBV3Yvb0JVNEdid0ltQUpvQUFBRUhBS29FYnYvOEFCTUFzQUJGV0xBTkx4dXhEUmcrV2JBYzNEQXhBUC8vQUdmLzZBYWFCeTBDSmdDWkFBQUJCd0NrQVJjQlJnQVRBTEFBUlZpd0dpOGJzUm9jUGxtd0h0d3dNUUQvL3dCYS8rZ0ZUZ1hYQWlZQW1nQUFBUVlBcEc3d0FCTUFzQUJGV0xBV0x4dXhGaGcrV2JBZjNEQXhBUC8vQUdmK2x3YWFCZ0lDSmdDWkFBQUFCd0NzQk9ILytQLy9BRnIrbndWT0JKRUNKZ0NhQUFBQUJ3Q3NCRFlBQVAvL0FLaitud1V5QmJBQ0pnQTlBQUFBQndDc0JKY0FBUC8vLzZYK0FnUHNCRG9DSmdCZEFBQUFCd0NzQk5yL1kvLy9BS2dBQUFVeUI3a0NKZ0E5QUFBQkJ3Q3FCTXNCUmdBSkFMQUJMN0FXM0RBeEFQLy8vNlgrUlFQc0JvTUNKZ0JkQUFBQkJ3Q3FCQ3dBRUFBSkFMQUJMN0FkM0RBeEFQLy9BS2dBQUFVeUJ5RUNKZ0E5QUFBQkJ3Q2tBTXNCT2dBSkFMQUJMN0FUM0RBeEFQLy8vNlgrUlFQc0Jlc0NKZ0JkQUFBQkJnQ2tMQVFBQ1FDd0FTK3dHdHd3TVFBQUFnQkwvK2dGRVFZQUFCa0FKUUI4QUxBV0w3QUFSVml3RHk4YnNROFlQbG13QUVWWXNBTXZHN0VERUQ1WnNBQkZXTEFHTHh1eEJoQStXYklQRmdGZHNpOFdBVjJ5RkFNV0VSSTVzQlF2c0JqUXNnRUJDaXRZSWRnYjlGbXlCQVlQRVJJNXNoRVBCaEVTT2JBUzBMQUdFTElkQVFvcldDSFlHL1Jac0E4UXNpSUJDaXRZSWRnYjlGa3dNUUVqQXlNM0JpY21KaWNtTnpZU05oY1dGeE1qTnpNM013Y3pBUVlXRnhZM0V5WW5KZ1lHQlBhMTFxVVRnTHlXc2djRENCU08wSDIxWVREOEcvMGN0UnEyKy9BRGJHaWRlbFk4bm11alZRVFMreTUwakFRRTQ3ODdVcVVCQ29RREJJQUJCNWVYbC94T2o1NENCNlVCOUpRRUE0ZnovLzhBQVA3TkJSRUdBQUFtQUVnQUFBQW5BZDRCK1FKSEFBY0FRd0IvLzJULy93QkUvcGdGYWdXd0FpWUI0d0FBQUFjQnNBUUMvLy8vL3dBdi9wa0VWd1E2QWlZQThBQUFBQWNCc0FOR0FBRC8vd0E3L3BrRmR3V3dBaVlBTEFBQUFBY0JzQVJsQUFELy93QXYvcGtFTmdRNkFpWUE4d0FBQUFjQnNBTm1BQUQvL3dDby9wa0ZDUVd3QWlZQU9BQUFBQWNCc0FJdEFBRC8vd0JnL3BrRDZBUTZBaVlBOVFBQUFBY0JzQUc0QUFELy8vL1UvcGtGS3dXd0FpWUFQQUFBQUFjQnNBUERBQUQvLy8vRS9wa0Q5QVE2QWlZQVhBQUFBQWNCc0FMWUFBRC8vd0RPL3BrRlJBV3dBaVlBNEFBQUFBY0JzQVFrQUFELy93QjcvcGtFQUFRN0FpWUErQUFBQUFjQnNBTWtBQUQvL3dETy9wa0ZSQVd3QWlZQTRBQUFBQWNCc0FMbkFBRC8vd0I3L3BrRUFBUTdBaVlBK0FBQUFBY0JzQUhtQUFELy93QkQvcGtFcFFXd0FpWUFzQUFBQUFjQnNBRG5BQUQvL3dBdC9wa0Rnd1E2QWlZQTZ3QUFBQWNCc0FET0FBRC8vLytzL3BrSGRRV3dBaVlBMlFBQUFBY0JzQVl3QUFELy8vK2wvcGtHRGdRNkFpWUE3UUFBQUFjQnNBVDBBQUQvL3dDSy9sVUZ4UVhJQWlZQlB3QUFBQWNCc0FMai83ei8vd0FIL2xrRVJ3UlRBaVlCUUFBQUFBY0JzQUhuLzhELy93QWZBQUFENHdZQUFnWUFUQUFBQUFJQUt3QUFCSUVGc0FBU0FCc0FicklWSEIwUkVqbXdGUkN3QU5BQXNBQkZXTEFQTHh1eER4dytXYkFBUlZpd0NTOGJzUWtRUGxteURnOEpFUkk1c0E0dnNnc0JDaXRZSWRnYjlGbXdBTkN5QWc4SkVSSTVzQUl2c0E0UXNCSFFzQUlRc2hNQkNpdFlJZGdiOUZtd0NSQ3lGQUVLSzFnaDJCdjBXVEF4QVNNSEJSWVdCd1lFSXlFVEl6Y3pOek1ITXdFREJUSTJOelltSndLVjVDb0JOdGpzRVJEKzJPbjk1Ny9LRzhranZDUGwvcnhnQVVxTndCRU9mSHdFVVBJQkFlSy94L1FFVUpmSnlmM1ovZDBCbm9OMmlBUUFBZ0FyQUFBRWdRV3dBQklBR3dCeHNoVWNIUkVTT2JBVkVMQUEwQUN3QUVWWXNCQXZHN0VRSEQ1WnNBQkZXTEFKTHh1eENSQStXYklTRUFrUkVqbXdFaSt5QUFFS0sxZ2gyQnYwV2JJREVBa1JFam13QXkrd0FCQ3dDOUN3RWhDd0RkQ3dDUkN5RlFFS0sxZ2gyQnYwV2JBREVMSWJBUW9yV0NIWUcvUlpNREVCSXdjRkZoWUhCZ1FqSVJNak56TTNNd2N6QVFNRk1qWTNOaVluQXBYa0tnRTIyT3dSRVA3WTZmM252OG9ieVNPOEkrWCt2R0FCU28zQUVRNThmQVJROGdFQjRyL0g5QVJRbDhuSi9kbjkzUUdlZzNhSUJBQUFBUUFRQUFBRXBRV3dBQTBBVUxJTERnOFJFamtBc0FCRldMQUlMeHV4Q0J3K1diQUFSVml3QWk4YnNRSVFQbG15RFFnQ0VSSTVzQTB2c2dBQkNpdFlJZGdiOUZtd0JOQ3dEUkN3QnRDd0NCQ3lDZ0VLSzFnaDJCdjBXVEF4QVNFREl4TWpOek1USVFjaEF5RUNldjc4ZHIxM3FodXBiQU5sSFAxWVVRRUZBcXo5VkFLc2x3SnRudjR4QUFBQi8rWUFBQU9EQkRvQURRQlFzZ3NPRHhFU09RQ3dBRVZZc0Fndkc3RUlHRDVac0FCRldMQUNMeHV4QWhBK1diSU5DQUlSRWptd0RTK3lBQUVLSzFnaDJCdjBXYkFFMExBTkVMQUcwTEFJRUxJS0FRb3JXQ0hZRy9SWk1ERUJJUU1qRXlNM014TWhCeUVESVFKUS91WlR0bE9hRzVsUEFwb2MvaDAwQVJzQjMvNGhBZCtYQWNTWi90VUFBQUVBV0FBQUJYNEZzQUFVQUcwQXNBQkZXTEFTTHh1eEVodytXYkFBUlZpd0JDOGJzUVFjUGxtd0FFVllzQXN2RzdFTEVENVpzQUJGV0xBSUx4dXhDQkErV2JJVEVnc1JFam13RXkrd0VOQ3lEUUVLSzFnaDJCdjBXYkFCMExBTEVMQUMwTEFDTDdJS0FRb3JXQ0hZRy9SWnNnWUtBaEVTT1RBeEFTTURNd0V6QVFFakFTTURJeE1qTnpNM013Y3pBc2Y0TG9rQ1hmZjlZUUc4MXY1eXNuRzh1N1lidFNpN0ova0VOLzczQW9MOU5mMGJBbzc5Y2dRM2wrTGlBQUFCQURrQUFBUXlCZ0FBRkFCbUFMQVJMN0FBUlZpd0JDOGJzUVFZUGxtd0FFVllzQXN2RzdFTEVENVpzQUJGV0xBSUx4dXhDQkErV2JJUUVRc1JFam13RUMrd0U5Q3lBUUVLSzFnaDJCdjBXYkFMRUxBQzBMQUNMN0lLQVFvcldDSFlHL1Jac2dZS0FoRVNPYkFCRUxBTjBEQXhBU01ETXdFekFRRWpBU01ESXhNak56TTNNd2N6QXFub1lYSUJmT1QrTWdFM3lQNzFnbGUyMDgwYnpSMjFIZWdFd2YzTkFheitDdjI4QWZYK0N3VEJsNmlvLy84QVEvNmFCVzRIR3dJbUFOc0FBQUFuQUtBQmF3RkRBUWNBRUFSUS83MEFFd0N3QUVWWXNBZ3ZHN0VJSEQ1WnNBM2NNREVBLy84QUwvNmFCRVVGeFFJbUFPOEFBQUFuQUtBQXBmL3RBUWNBRUFOYi83MEFFd0N3QUVWWXNBZ3ZHN0VJR0Q1WnNBM2NNREVBLy84QU8vNmFCWGNGc0FJbUFDd0FBQUFIQUJBRVdmKzkvLzhBTC82YUJFUUVPZ0ltQVBNQUFBQUhBQkFEV3YrOS8vOEFPLzZhQnJjRnNBSW1BREVBQUFBSEFCQUZqUCs5Ly84QU1QNmFCWXNFT2dJbUFQSUFBQUFIQUJBRW9mKzkvLy8veXY2YUJXVUZzQUltQU53QUFBQUhBQkFFUnYrOS8vLy95UDZhQkVjRU9nSW1BUEVBQUFBSEFCQURYZis5QUFFQXFBQUFCVElGc0FBT0FGYXlDZzhRRVJJNUFMQUFSVml3Q0M4YnNRZ2NQbG13QUVWWXNBc3ZHN0VMSEQ1WnNBQkZXTEFDTHh1eEFoQStXYklHQWdnUkVqbXdCaSt5QlFFS0sxZ2gyQnYwV2JBQTBMSUtDQUlSRWptd0JoQ3dEdEF3TVFFakF5TVRJemN6QVRNVEFUTUJNd044MlZ1N1d0VWJsZjdtek84QjcrRDkxWkFDQ2YzM0FnbVhBeEQ5SmdMYS9QQUFBQUVBWGY1Z0JCb0VPZ0FPQUdPeUFROFFFUkk1QUxBQVJWaXdDUzhic1FrWVBsbXdBRVZZc0Fzdkc3RUxHRDVac0FCRldMQURMeHV4QXhJK1diQUFSVml3QUM4YnNRQVFQbG13QUVWWXNBUXZHN0VFRUQ1WnNnWUJDaXRZSWRnYjlGbXlDZ3NBRVJJNXNBM1FzQTdRTURFRkl3TWpFeU0zTXdNekV3RXpBVE1DeDk5R3RVYldHNzJ4c1lrQm5NRCtDcjRML21zQmxaY0RydnpjQXlUOFVnQUIvOVFBQUFVckJiQUFFUUJpQUxBQVJWaXdEQzhic1F3Y1BsbXdBRVZZc0E0dkc3RU9IRDVac0FCRldMQUZMeHV4QlJBK1diQUFSVml3QXk4YnNRTVFQbG15Q1F3RkVSSTVmTEFKTHhpd0VOQ3lBQUVLSzFnaDJCdjBXYklFQlF3UkVqbXdDTkN5RFF3RkVSSTVNREVCSXdFakFRRWpBU00zTXdFekV3RXpBVE1Ec2FRQk90UCsvdjVLNkFJS2x4dVIvdHJRL1FHcDZQNFRqZ0tlL1dJQ04vM0pBcDZYQW52OTB3SXQvWVVBQUFIL3hBQUFBL1FFT2dBUkFHb0FzQUJGV0xBTUx4dXhEQmcrV2JBQVJWaXdEaThic1E0WVBsbXdBRVZZc0FVdkc3RUZFRDVac0FCRldMQURMeHV4QXhBK1diSUpCUXdSRWpsOHNBa3ZHTElJQVFvcldDSFlHL1Jac0FIUXNnUUZEQkVTT2JJTkRBVVJFam13Q1JDd0VkQjhzQkV2R0RBeEFTTVRJd01CSXdFak56TURNeE1CTXdFekF3K3g3TVd6L3MvZEFZS2hHNTdieHFjQkp0NyttWjBCNGY0ZkFaVCtiQUhobHdIQy9uWUJpdjQrLy84QUtmL25BK1VFVFFJR0FMNEFBUC8vLzljQUFBU2tCYkFDSmdBcUFBQUFCd0hlLzBUK2YvLy9BSmtDaXdYWEF5SUFSZ0dYaUFCbVprQUEvLzhBRndBQUJDc0Z4d0lHQUJZQUFQLy9BRFQvNkFRaEJjY0NCZ0FYQUFELy93QUZBQUFFSFFXd0FnWUFHQUFBLy84QWN2L25CR29Gc0FJR0FCa0FBUC8vQUpULy9nUVRCY2dBQmdBZEFBRC8vd0I4LytjRVB3WEpBQVlBRkJRQS8vOEFlZi9xQlFZSFZRSW1BQ3NBQUFFSEFIVUI5d0ZYQUJNQXNBQkZXTEFNTHh1eERCdytXYkFrM0RBeEFQLy9BQVQrVHdRb0JmNENKZ0JMQUFBQkJ3QjFBVTBBQUFBVEFMQUFSVml3QkM4YnNRUVlQbG13TE53d01RRC8vd0E3QUFBRmR3YzBBaVlBTWdBQUFRY0FSQUdkQVRZQUV3Q3dBRVZZc0FZdkc3RUdIRDVac0F2Y01ERUEvLzhBSHdBQUErTUYvZ0ltQUZJQUFBRUhBRVFBMGdBQUFCTUFzQUJGV0xBREx4dXhBeGcrV2JBVTNEQXhBUC8vLzY4QUFBU0xCeUFDSmdBbEFBQUJCd0NyQklBQk1nQVdBTEFBUlZpd0JDOGJzUVFjUGxtd0ROeXdFTkF3TWYvL0FEUC82QVBQQmVzQ0pnQkZBQUFCQndDckEvTC8vUUFXQUxBQVJWaXdHQzhic1JnWVBsbXdMZHl3TWRBd01mLy9BRHNBQUFTeEJ5d0NKZ0FwQUFBQkJ3Q3JCRTRCUGdBV0FMQUFSVml3Qmk4YnNRWWNQbG13RGR5d0VkQXdNZi8vQUVYLzZnUGdCZXNDSmdCSkFBQUJCd0NyQTlmLy9RQVdBTEFBUlZpd0NDOGJzUWdZUGxtd0lkeXdKZEF3TWYvLy85OEFBQUtLQnl3Q0pnQXRBQUFCQndDckF3UUJQZ0FXQUxBQVJWaXdBaThic1FJY1BsbXdCZHl3Q2RBd01mLy8vNDBBQUFJNEJla0NKZ0NNQUFBQkJ3Q3JBckwvK3dBV0FMQUFSVml3QWk4YnNRSVlQbG13QmR5d0NkQXdNZi8vQUhmLzV3VU5CeUlDSmdBekFBQUJCd0NyQktFQk5BQVdBTEFBUlZpd0NpOGJzUW9jUGxtd0pOeXdLTkF3TWYvL0FFWC82QVFmQmVzQ0pnQlRBQUFCQndDckErRC8vUUFXQUxBQVJWaXdBQzhic1FBWVBsbXdKTnl3S05Bd01mLy9BRG9BQUFUQ0J5QUNKZ0EyQUFBQkJ3Q3JCRU1CTWdBV0FMQUFSVml3QkM4YnNRUWNQbG13R2R5d0hkQXdNZi8vQUI4QUFBTFVCZXNDSmdCV0FBQUJCd0NyQTBuLy9RQVdBTEFBUlZpd0NpOGJzUW9ZUGxtd0V0eXdEZEF3TWYvL0FHZi81d1VnQnlBQ0pnQTVBQUFCQndDckJIc0JNZ0FXQUxBQVJWaXdDaThic1FvY1BsbXdGTnl3R05Bd01mLy9BRnYvNkFRZUJlc0NKZ0JaQUFBQkJ3Q3JBK1QvL1FBV0FMQUFSVml3Qnk4YnNRY1lQbG13RmR5d0dkQXdNZi8vLzdJQUFBVThCajhBSmdEUFpBQUFCd0N0L3BFQUFQLy9BRHYrcVFTZ0JiQUNKZ0FtQUFBQUJ3Q3NCSmdBQ3YvL0FCLytsZ1ArQmdBQ0pnQkdBQUFBQndDc0JJYi85Ly8vQUR2K3FRVFZCYkFDSmdBb0FBQUFCd0NzQkpjQUN2Ly9BRXYrbndSMUJnQUNKZ0JJQUFBQUJ3Q3NCSmtBQVAvL0FEditDUVRWQmJBQ0pnQW9BQUFBQndHaUFSLytxdi8vQUV2OS93UjFCZ0FDSmdCSUFBQUFCd0dpQVNIK29QLy9BRHYrcVFWM0JiQUNKZ0FzQUFBQUJ3Q3NCUG9BQ3YvL0FCLytxUVBqQmdBQ0pnQk1BQUFBQndDc0JIOEFDdi8vQURzQUFBVlFCeTRDSmdBdkFBQUJCd0IxQWJBQk1BQVRBTEFBUlZpd0JTOGJzUVVjUGxtd0R0d3dNUUQvL3dBZ0FBQUVJZ2MvQWlZQVR3QUFBUWNBZFFGOUFVRUFDUUN3QlMrd0Q5d3dNUUQvL3dBNy92Z0ZVQVd3QWlZQUx3QUFBQWNBckFUU0FGbi8vd0FnL3VVRUdnWUFBaVlBVHdBQUFBY0FyQVJRQUViLy93QTcvcWtEc1FXd0FpWUFNQUFBQUFjQXJBU2RBQXIvLy8veS9xa0I3Z1lBQWlZQVVBQUFBQWNBckFNM0FBci8vd0E3L3FrR3R3V3dBaVlBTVFBQUFBY0FyQVduQUFyLy93QWUvcWtHYWdSU0FpWUFVUUFBQUFjQXJBV3JBQXIvL3dBNy9xa0Zkd1d3QWlZQU1nQUFBQWNBckFUK0FBci8vd0FmL3FrRDR3UlNBaVlBVWdBQUFBY0FyQVJtQUFyLy93QTdBQUFFOHdkQUFpWUFOQUFBQVFjQWRRRzBBVUlBRXdDd0FFVllzQU12RzdFREhENVpzQmJjTURFQS8vLy8xLzVnQkRZRjlRSW1BRlFBQUFFSEFIVUJrZi8zQUJNQXNBQkZXTEFOTHh1eERSZytXYkFoM0RBeEFQLy9BRHIrcVFUQ0JiQUNKZ0EyQUFBQUJ3Q3NCSlVBQ3YvLy8rNytxUUxVQkZRQ0pnQldBQUFBQndDc0F6TUFDdi8vQUNmK253U2pCY2NDSmdBM0FBQUFCd0NzQktRQUFQLy9BQzcrbHdPMkJGQUNKZ0JYQUFBQUJ3Q3NCRzMvK1AvL0FLaitud1VKQmJBQ0pnQTRBQUFBQndDc0JKWUFBUC8vQUVQK253S1VCVUFDSmdCWUFBQUFCd0NzQS9vQUFQLy9BS1FBQUFWaEJ5MENKZ0E2QUFBQkJ3Q2tBT0VCUmdBVEFMQUFSVml3QVM4YnNRRWNQbG13Q3R3d01RRC8vd0J1QUFBRDdRWGlBaVlBV2dBQUFRWUFwQnY3QUJNQXNBQkZXTEFCTHh1eEFSZytXYkFLM0RBeEFQLy9BS1QrcVFWaEJiQUNKZ0E2QUFBQUJ3Q3NCTW9BQ3YvL0FHNytxUVB0QkRvQ0pnQmFBQUFBQndDc0JEZ0FDdi8vQU1QK3FRZEJCYkFDSmdBN0FBQUFCd0NzQmMwQUN2Ly9BSUQrcVFYK0JEb0NKZ0JiQUFBQUJ3Q3NCU3dBQ3YvLy8rditxUVRPQmJBQ0pnQStBQUFBQndDc0JKZ0FDdi8vLyszK3FRUE9CRG9DSmdCZUFBQUFCd0NzQkVJQUN2Ly8vd3ovNXdWVEJkWUFKZ0F6UmdBQUJ3RmEvaG9BQVAvLy82VUFBQVBqQlJ3Q0pnRzZBQUFBQndDdC82diszZi8vLytFQUFBUXJCUjhBSmdHK1BBQUFCd0N0L3NEKzRQLy8vLzBBQUFUV0JSd0FKZ0hCUEFBQUJ3Q3QvdHorM2YvL0FBRUFBQUhtQlI0QUpnSENQQUFBQndDdC91RCszLy8vQUIzLzZnUllCUndBSmdISUNnQUFCd0N0L3Z6KzNmLy8vNXNBQUFTaEJSd0FKZ0hTUEFBQUJ3Q3QvbnIrM2YvL0FCWUFBQVIwQlJzQUpnSHpDZ0FBQndDdC94VCszUC8vLzZVQUFBUGpCSTBDQmdHNkFBRC8vd0FkQUFBRDV3U05BZ1lCdXdBQS8vOEFIUUFBQSs4RWpRSUdBYjRBQVAvLy85d0FBQVFPQkkwQ0JnSFRBQUQvL3dBZEFBQUVtZ1NOQWdZQndRQUEvLzhBS2dBQUFhb0VqUUlHQWNJQUFQLy9BQjBBQUFSL0JJMENCZ0hFQUFELy93QWRBQUFGc0FTTkFnWUJ4Z0FBLy84QVN2L3FCRTRFb3dJR0FjZ0FBUC8vQUIwQUFBUXBCSTBDQmdISkFBRC8vd0J0QUFBRVFnU05BZ1lCelFBQS8vOEFkQUFBQkdVRWpRSUdBZElBQVAvLy83WUFBQVJ0QkkwQ0JnSFJBQUQvL3dBcUFBQUN0Z1hsQWlZQndnQUFBUWNBYXY5a0FCNEFGZ0N3QUVWWXNBSXZHN0VDR2o1WnNBM2NzQm5RTURILy93QjBBQUFFWlFYbEFpWUIwZ0FBQVFZQWFub2VBQllBc0FCRldMQUlMeHV4Q0JvK1diQVMzTEFlMERBeC8vOEFIUUFBQSs4RjVRSW1BYjRBQUFFR0FHcCtIZ0FXQUxBQVJWaXdCaThic1FZYVBsbXdGZHl3SWRBd01mLy9BQjBBQUFQZ0Jod0NKZ0hxQUFBQkJ3QjFBVHNBSGdBVEFMQUFSVml3QlM4YnNRVWFQbG13Q053d01RRC8vd0FSLytzRDdRU2RBZ1lCekFBQS8vOEFLZ0FBQWFvRWpRSUdBY0lBQVAvL0FDb0FBQUsyQmVVQ0pnSENBQUFCQndCcS8yUUFIZ0FXQUxBQVJWaXdBaThic1FJYVBsbXdEZHl3R2RBd01mLy8vL2IvNndPYkJJMENCZ0hEQUFELy93QWRBQUFFZndZY0FpWUJ4QUFBQVFjQWRRRXRBQjRBRXdDd0FFVllzQWd2RzdFSUdqNVpzQS9jTURFQS8vOEFXUC9vQkZRRjl3SW1BZ0VBQUFFR0FLQjBId0FUQUxBQVJWaXdBaThic1FJYVBsbXdGZHd3TVFELy8vK2xBQUFENHdTTkFnWUJ1Z0FBLy84QUhRQUFBK2NFalFJR0Fic0FBUC8vQUIwQUFBUE5CSTBDQmdIcUFBRC8vd0FkQUFBRDd3U05BZ1lCdmdBQS8vOEFId0FBQktFRjl3SW1BZjRBQUFFSEFLQUExQUFmQUJNQXNBQkZXTEFJTHh1eENCbytXYkFOM0RBeEFQLy9BQjBBQUFXd0JJMENCZ0hHQUFELy93QWRBQUFFbWdTTkFnWUJ3UUFBLy84QVN2L3FCRTRFb3dJR0FjZ0FBUC8vQUIwQUFBU0dCSTBDQmdIdkFBRC8vd0FkQUFBRUtRU05BZ1lCeVFBQS8vOEFSLy9zQkRjRW93SUdBYndBQVAvL0FHMEFBQVJDQkkwQ0JnSE5BQUQvLy8rMkFBQUViUVNOQWdZQjBRQUFBQUVBRWY1UUE5NEVvQUFxQUlZQXNBQkZXTEFQTHh1eER4bytXYkFBUlZpd0hTOGJzUjBRUGxtd0FFVllzQnN2RzdFYkVqNVpzQThRc2djQkNpdFlJZGdiOUZtd0R4Q3dETkN5S2gwUEVSSTVmTEFxTHhpMFlDcHdLZ0pkc3FBcUFWMjBZQ3B3S2dKeHNpa0JDaXRZSWRnYjlGbXlGQ2txRVJJNXNCMFFzQnJRc0NIUXNCb1FzaU1CQ2l0WUlkZ2I5Rmt3TVFFeU5qYzJKeVluSmdjR0J3YzJOaGNXRmdjR0J4WVdCd1lHQndNakV5WW1Oek1VRnhZMk56WWxKemNDQVgrU0NnY1pNNVpyUlVNUnRoRDd0NzdYQ2dyeVZXQUZDT1M4U0xaS2k1QUZzdG1CcVFzWS92dUVHd0tmWVZjMkpVMEVBaTBzVVFHV3NBSURwbzI0WWlHR1haRzRELzVlQWF3Y3FuK3hCUU5tVzd3Q0FaZ0FBUUFkL3BrRW1nU05BQThBY2dDd0FTK3dBRVZZc0Frdkc3RUpHajVac0FCRldMQU1MeHV4REJvK1diQUFSVml3Qmk4YnNRWVFQbG13QUVWWXNBSXZHN0VDRUQ1WnNnb0dDUkVTT1h5d0NpOFl0R0FLY0FvQ2NiS2dDZ0ZkdEdBS2NBb0NYYklGQVFvcldDSFlHL1Jac0FJUXNnNEJDaXRZSWRnYjlGa3dNUUVqRXlNVElRTWpFek1ESVJNekF6TUVMclkrbTFiOXVGZTF5N1JaQWtoYXRiR2UvcGtCWndIeS9nNEVqZjM5QWdQOERBQUFBUUJJL2xZRVB3U2pBQjRBV0FDd0FFVllzQTB2RzdFTkdqNVpzQUJGV0xBREx4dXhBeEErV2JBQVJWaXdCQzhic1FRU1BsbXdBeEN3QnRDd0RSQ3dFZEN3RFJDeUZBRUtLMWdoMkJ2MFdiQURFTEljQVFvcldDSFlHL1Jac0FNUXNCN1FNREVCQmdZSEF5TVRKZ0kzTnhJQUZ4WVdGeU1tSmljbUJnY0dGeFlXRnhZM0ErNGY3S3hIdGtxZG54Z01KUUU1NExqVkNMTUZiWGlUeWg4YkJnVjJiUHRNQVhxcDBRNytaQUdwS0FFbXhsZ0JDQUV3QmdUVnRuS0NCQVhLdHA1amRZc0VDdndBLy84QWRBQUFCR1VFalFJR0FkSUFBUC8vQUMvK1VRVmhCS0VDSmdJWEFBQUFCd0d3QXB2L3VQLy9BQjhBQUFTaEJkWUNKZ0grQUFBQkJ3QndBS29BSmdBVEFMQUFSVml3Q0M4YnNRZ2FQbG13Qzl3d01RRC8vd0JZLytnRVZBWFdBaVlDQVFBQUFRWUFjRW9tQUJNQXNBQkZXTEFSTHh1eEVSbytXYkFUM0RBeEFQLy9BRkVBQUFUekJJMENCZ0h4QUFELy8vK3YvazhFaXdXd0FpWUFKUUFBQUFjQW93Rm5BQUQvL3dBei9rOER6d1JSQWlZQVJRQUFBQWNBb3dDMEFBRC8vd0E3L2xrRXNRV3dBaVlBS1FBQUFBY0Fvd0VvQUFyLy93QkYvazhENEFSUkFpWUFTUUFBQUFjQW93RC9BQUFBQUFBQUFBMEFvZ0FEQUFFRUNRQUFBRjRBQUFBREFBRUVDUUFCQUF3QVhnQURBQUVFQ1FBQ0FBd0FhZ0FEQUFFRUNRQURBQm9BZGdBREFBRUVDUUFFQUJvQWRnQURBQUVFQ1FBRkFDd0FrQUFEQUFFRUNRQUdBQm9BdkFBREFBRUVDUUFIQUVBQTFnQURBQUVFQ1FBSkFBd0JGZ0FEQUFFRUNRQUxBQlFCSWdBREFBRUVDUUFNQUNZQk5nQURBQUVFQ1FBTkFGd0JYQUFEQUFFRUNRQU9BRlFCdUFCREFHOEFjQUI1QUhJQWFRQm5BR2dBZEFBZ0FESUFNQUF4QURFQUlBQkhBRzhBYndCbkFHd0FaUUFnQUVrQWJnQmpBQzRBSUFCQkFHd0FiQUFnQUZJQWFRQm5BR2dBZEFCekFDQUFVZ0JsQUhNQVpRQnlBSFlBWlFCa0FDNEFVZ0J2QUdJQWJ3QjBBRzhBU1FCMEFHRUFiQUJwQUdNQVVnQnZBR0lBYndCMEFHOEFJQUJKQUhRQVlRQnNBR2tBWXdCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTWdBdUFEQUFNQUF4QURFQU1BQXhBRHNBSUFBeUFEQUFNUUEwQUZJQWJ3QmlBRzhBZEFCdkFDMEFTUUIwQUdFQWJBQnBBR01BVWdCdkFHSUFid0IwQUc4QUlBQnBBSE1BSUFCaEFDQUFkQUJ5QUdFQVpBQmxBRzBBWVFCeUFHc0FJQUJ2QUdZQUlBQkhBRzhBYndCbkFHd0FaUUF1QUVjQWJ3QnZBR2NBYkFCbEFFY0Fid0J2QUdjQWJBQmxBQzRBWXdCdkFHMEFRd0JvQUhJQWFRQnpBSFFBYVFCaEFHNEFJQUJTQUc4QVlnQmxBSElBZEFCekFHOEFiZ0JNQUdrQVl3QmxBRzRBY3dCbEFHUUFJQUIxQUc0QVpBQmxBSElBSUFCMEFHZ0FaUUFnQUVFQWNBQmhBR01BYUFCbEFDQUFUQUJwQUdNQVpRQnVBSE1BWlFBc0FDQUFWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FESUFMZ0F3QUdnQWRBQjBBSEFBT2dBdkFDOEFkd0IzQUhjQUxnQmhBSEFBWVFCakFHZ0FaUUF1QUc4QWNnQm5BQzhBYkFCcEFHTUFaUUJ1QUhNQVpRQnpBQzhBVEFCSkFFTUFSUUJPQUZNQVJRQXRBRElBTGdBd0FBQUFBd0FBLy9RQUFQOXFBR1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBSUFDQUFDLy84QUR3QUJBQUFBREFBQUFBQUFBQUFDQUY0QUpRQStBQUVBUlFCZUFBRUFlUUI1QUFNQWdRQ0JBQUVBZ3dDREFBRUFoZ0NHQUFFQWlRQ0pBQUVBaXdDVkFBRUFsd0NjQUFFQW93Q2pBQU1BcHdDc0FBTUFzQUN3QUFFQXVRQzZBQUVBdmdDK0FBRUF3QURBQUFFQXdnRENBQUVBeGdER0FBRUF5Z0RLQUFFQXpBRE5BQUVBendEUUFBRUEwZ0RTQUFFQTJRRGRBQUVBNEFEZ0FBRUE1QURrQUFFQTVnRG9BQUVBNmdENkFBRUEvQUQ4QUFFQS9nRUFBQUVCQWdFQ0FBRUJCd0VJQUFFQkZRRVpBQUVCR3dFYkFBRUJId0VoQUFFQkl3RWtBQU1CT0FFNUFBRUJQZ0ZBQUFFQlJRRkZBQUVCVFFGTkFBRUJUd0ZQQUFFQlV3RlRBQUVCVlFGWEFBRUJXUUZaQUFFQm9nR2lBQU1Cb3dHcEFBSUJ1Z0hUQUFFQjRnSGlBQUVCNUFIa0FBRUI2Z0hxQUFFQjh3SHpBQUVCOVFIMUFBRUIvQUgrQUFFQ0FBSUJBQUVDQXdJREFBRUNCd0lIQUFFQ0NRSUxBQUVDRVFJUkFBRUNGZ0lZQUFFQ0dnSWFBQUVDUGdKREFBRUNSd0t2QUFFQ3NnTllBQUVEV3dOcUFBRURjUU54QUFFRGN3TjNBQUVEZWdOL0FBRURnUU9FQUFFRGhnT0tBQUVEakFPbkFBRURxd09yQUFFRHJRTzBBQUVEdGdPNEFBRUR2UU8vQUFFRHdRUE5BQUVEendQWkFBRUQzQVBzQUFFRDd3UklBQUVFU3dSTEFBRUVUUVJOQUFFRVR3UlFBQUVFV3dSYkFBRUVZZ1JrQUFFRVpnUm1BQUVFYWdScUFBRUViQVJ0QUFFRWJ3UnZBQUVFZHdTR0FBRUVod1NIQUFJRWlBU3dBQUVFc2dUS0FBRUV6QVRRQUFFRTBnVFZBQUVFMXdUWkFBRUUyd1RjQUFFRTNnVGhBQUVBQVFBQUFBb0FYQUNhQUFSRVJreFVBQnBqZVhKc0FDaG5jbVZyQURac1lYUnVBRVFBQkFBQUFBRC8vd0FDQUFBQUJBQUVBQUFBQVAvL0FBSUFBUUFGQUFRQUFBQUEvLzhBQWdBQ0FBWUFCQUFBQUFELy93QUNBQU1BQndBSVkzQnpjQUF5WTNCemNBQXlZM0J6Y0FBeVkzQnpjQUF5YTJWeWJnQTRhMlZ5YmdBNGEyVnliZ0E0YTJWeWJnQTRBQUFBQVFBQUFBQUFBUUFCQUFJQUJnSFlBQUVBQUFBQkFBZ0FBUUFLQUFVQUpBQklBQUVBM2dBSUFDVUFKZ0FuQUNnQUtRQXFBQ3NBTEFBdEFDNEFMd0F3QURFQU1nQXpBRFFBTlFBMkFEY0FPQUE1QURvQU93QThBRDBBUGdCbEFHY0FrZ0N3QUxFQXNnQ3pBTFFBdFFDMkFMY0F1QUM1QU5FQTBnRFRBTlFBMVFEV0FOY0EyQURaQU5vQTJ3RGNBTjBBM2dEZkFPQUE0UURpQU9NQTVBRGxBT1lBNXdEb0FTd0JNQUV5QVRnQk9nRThBVDRCUHdGRkFVWUJmd0dGQVlvQmpRSkhBa2dDU2dKTUFrMENUZ0pQQWxBQ1VRSlNBbE1DVkFKVkFsWUNWd0pZQWxrQ1dnSmJBbHdDWFFKZUFsOENZQUpoQW1JQ1l3SmtBbVVDWmdLREFvVUNod0tKQW9zQ2pRS1BBcEVDa3dLVkFwY0NtUUtiQXAwQ253S2hBcU1DcFFLbkFxa0Nxd0t0QXE4Q3NnSzBBcllDdUFLNkFyd0N2Z0xBQXNJQ3hRTEhBc2tDeXdMTkFzOEMwUUxUQXRVQzJRTGJBdDBDM3dMaEF1TUM1UUxuQXVrQzZ3THRBdThDOFFMeUF2UUM5Z05UQTFRRFZRTldBMWNEV0FOWkExc0RYQU5kQTE0RFh3TmdBMkVEWWdOa0EyVURaZ05uQTJnRGFRTnFBM29EZXdOOEEzMERmZ04vQTRBRGdRT0NBNE1EaEFPRkE0WURod09JQTRrRGlnT0xBNHdEalFPT0E0OER1d085QTc4RDFBUGFBK0FFU1FSTEJFOEVWd1JaQkY0RWFnQUNBQUFBQkFBT0Q4NFY4alZpQUFFRFZBQUVBQUFCcFFyU0N0SUdnZ3R3Q29BSy9nK2FEQUFHaUE3dUR1NE1SZzZnQ2lJTzdnN3VENW9LaWdhU0RHWU1SZ3JZQ3F3TlVnOFFDbDRMNGdzUURCWUdtQTIyRGJZTnRnd2dDeEFLVUF4TURiQU1UQXNRQnFZTjVndHdENW9MY0Fhc0JySUd2QWJDQnNnTVRBYk9CdGdOdGdiK0J4UUhLZ2N3QjBZSFRBZFNCNFFIaWdlUURjQU53QWUrRHU0SDRBZ0NEVklJTUE3dUR1NExKZzd1RHU0SVJnM0FEY0FJZUFpQ0NJd0lwZzFJQ0xnTnNBalNDT2dMRUFreUNVd0phQWxvQ3hBSllnbG9DV2dKYUF0d0RDQUsyQXhNQ3hBTjVnMUlEcUFPb0ExSUN0SUswZ3JTQ3RJSzBnbUtDYkFKdWduRUNlSUo5QW9HQ2hnSy9nK2FENW9QbWcrYURHWUxjQXR3QzNBTGNBdHdDM0FMY0FyK0RBQU1BQXdBREFBTzdnN3VEdTRPN2c3dUQ1b1BtZythRDVvUG1neEdERVlNUmd4R0R4QUw0Z3ZpQytJTDRndmlDK0lMNGd3V0RCWU1GZ3dXRGJZTUlBd2dEQ0FNSUF3Z0RFd01UQXR3QytJTGNBdmlDM0FMNGdyK0N2NEsvZ3IrRDVvTUFBd1dEQUFNRmd3QURCWU1BQXdXREFBTUZnN3VEYllPN2c3dUR1NE83Zzd1REVZT29Bb2lDaUlLSWdvaUR1NE50Zzd1RGJZTzdnMjJEYllQbWd3Z0Q1b01JQSthRENBS1VBcFFDbEFNWmd4bURHWU1SZ3hHREVZTVJneEdERVlLckE4UURFd1BFQXBlQ2w0S1hndHdEQUFPN2c3dUQ1b1BFQXR3Q29BTUFBcGVEdTRPN2c2Z0R1NE83ZythQ29vTVpnOFFEVklPN2c4UURiWU1JQXhNRENBTUFBM21EdTRPN2d4R0RxQU9vQXNtQzNBS2dBM21EQUFPN2c3dUQ1b0tpZ3IrREdZTlVndmlEQllNSUFzUURFd05zQXdXRFVnTVRBcXNDcXdLckE4UURFd0swZ3JTQ3RJTzdnMjJDM0FMNGd3QURCWUsyQXhNQ3Y0UEVBeE1EdTROVWcyd0R1NExjQXZpQzNBTDRnd0FEQllNRmd3V0RWSU5zQSthRENBTUlBc1FDeVlNVEFzbURFd0xKZ3hNRFZJTnNBdHdDK0lMY0F2aUMzQUw0Z3R3QytJTGNBdmlDM0FMNGd0d0MrSUxjQXZpQzNBTDRndHdDK0lMY0F2aUMzQUw0Z3dBREJZTUFBd1dEQUFNRmd3QURCWU1BQXdXREFBTUZnd0FEQllNQUF3V0R1NE83ZythRENBUG1nd2dENW9NSUErYURDQVBtZ3dnRDVvTUlBK2FEQ0FNSUF4R0RFWVBFQXhNRHhBTVRBOFFERXdPb0E3dURHWU5VZzJ3RGVZTlNBMVNEYkFOdGczQURlWU9vQTd1RHU0UEVBK2FBQUlBaHdBR0FBWUFBQUFMQUFzQUFRQVRBQk1BQWdBbEFDb0FBd0FzQURVQUNRQTRBRDRBRXdCRkFFWUFHZ0JKQUVvQUhBQk1BRXdBSGdCUkFGUUFId0JXQUZZQUl3QmFBRm9BSkFCY0FGMEFKUUNLQUlvQUp3Q2NBSndBS0FDd0FMUUFLUUMyQUxnQUxnQzZBTG9BTVFDOEFMMEFNZ0MvQU1BQU5BRENBTVFBTmdER0FNc0FPUURSQU5FQVB3RFRBTjBBUUFEZkFOOEFTd0RoQU9NQVRBRGxBT2NBVHdEcEFPMEFVZ0R3QVBBQVZ3RDFBUGNBV0FENkFQc0FXd0Q5QVA4QVhRRURBUVFBWUFFSkFRa0FZZ0VNQVF3QVl3RVhBUmtBWkFFckFTMEFad0V3QVRBQWFnRXlBVElBYXdGSkFVa0FiQUZzQVcwQWJRRnZBWEVBYndHNkFib0FjZ0c5QWIwQWN3SEVBY1VBZEFISUFjZ0FkZ0hLQWNzQWR3SE5BYzBBZVFJb0FpZ0FlZ0lxQWlzQWV3SkhBa2dBZlFKS0Frb0Fmd0pNQW0wQWdBSnZBbklBb2dKM0Fud0FwZ0tCQW9rQXJBS0xBb3NBdFFLTkFvMEF0Z0tQQW84QXR3S1JBcEVBdUFLVEFwd0F1UUtsQXFjQXd3S3BBcWtBeGdLckFxc0F4d0t0QXEwQXlBS3ZBcThBeVFLeUFySUF5Z0swQXJRQXl3SzJBcllBekFLNEFyZ0F6UUs2QXJvQXpnSzhBcndBendLK0Fzb0EwQUxNQXN3QTNRTE9BczRBM2dMUUF0QUEzd0xiQXRzQTRBTGRBdDBBNFFMZkF0OEE0Z0xoQXVFQTR3TGpBdU1BNUFMbEF1VUE1UUxuQXVjQTVnTHBBdWtBNXdMckF1c0E2QUx0QXUwQTZRTHZBdklBNmdMMEF2UUE3Z0wyQXZZQTd3TlRBMWdBOEFOYkEyb0E5Z050QTIwQkJnTnhBM0VCQndOekEzTUJDQU4zQTNjQkNRTjZBM3NCQ2dOOUE0WUJEQU9JQTRvQkZnT01BNUVCR1FPVEE1UUJId09XQTVrQklRT2ZBNkFCSlFPaUE2SUJKd09rQTZRQktBT21BNmtCS1FPc0E3RUJMUU96QTdNQk13TzNBN2dCTkFPOUE3MEJOZ08vQThnQk53UExBOHdCUVFQT0E5RUJRd1BZQTlrQlJ3UGRBOTBCU1FQZkErVUJTZ1BxQStzQlVRUHZCQmNCVXdRWkJCa0JmQVFiQkNnQmZRUXdCREFCaXdRekJETUJqQVExQkRVQmpRUkJCRVlCamdSSkJFa0JsQVJMQkVzQmxRUk5CRTBCbGdSUEJGQUJsd1JWQkZnQm1RUmJCRnNCblFSZEJGNEJuZ1JnQkdBQm9BUmtCR1FCb1FSbUJHWUJvZ1JxQkdvQm93U3FCS29CcEFBQkFCUC9JQUFDQUZiLzVnRzYvOEFBQVFHNkFBNEFBd0FOQUJRQVFRQVNBR0VBRXdBQkFQWC85UUFCQU1NQURRQUNBTGYvd2dEREFCQUFBUURELytJQUFRREcvL0lBQVFEREFBNEFBZ0RKLyswQTlmL0FBQWtBdnYvbUFNSC82d0RDLytrQXhQL3dBTVgvNXdESi8rTUF5Ly9PQU16LzFBRE4vOXNBQlFEQi8rd0F3d0FQQU1YLzZnREovOFFBeS8vbkFBVUFTdi9wQU1ILzdnRERBQkFBeGYvc0FNbi9JQUFCQU1NQUR3QUZBTW4vNmdEcy8rNEE5ZityQVRQLzdBRlkvK3dBQVFEMS85VUFBUURKQUFzQURBQktBQXdBeFFBTEFNa0FEQUc2Lzc4QnZQL3VBY0QvN0FISS8rMEJ5di9zQWN6LzlRSE5BQTRCendBTkFkSUFEUUFCQVBYLzJBQUJBUFgvcWdBTEFPWC8xQUQxLzhrQkNQL2xBUi8vNHdFei84UUJQUC9oQVUzLzFBRk8vL1VCVC8vbkFWZi8wZ0ZZLzhrQUNBRGwvOGtBOWYvZkFRai83UUVmLytzQk0vL2ZBVC8vNlFGTy8vVUJXUC9nQUFnQTVmL21BUFgvMEFFei84NEJQUC9vQVUzLzV3RlAvKzBCVi8vbUFWai8wQUFMQU5nQUZBRGwvK0FBN0FBVEFUei80UUU5LytBQlFQL2hBVVgvNlFGTi85OEJULy9lQVZmLzN3RlovL0lBQlFBYi8vSUE1Zi94QVUzLzhnRlAvL0lCVi8veUFBd0EyQUFUQU9YLzVnRG0vL1FBN0FBU0FQWC81d0V6LytjQlBQL2xBVDMvNkFGTi8rWUJULy9tQVZmLzVnRlkvK2NBQWdEWS8rSUJWLy9rQUFJQTJQL2hBT3ovNUFBR0FPei83Z0QxLys0QkNQLzBBUi8vOFFFei8rOEJXUC92QUFRQTlmLzBBUWovOVFFei8vVUJXUC8xQUFZQTdBQVVBUFgvN1FENy8rSUJNLy90QVQzLzdRRlkvKzBBQlFFYi8rc0J2UC9yQWNELzZRSEkvK3NCeXYvckFCSUFTZ0FOQU1iL3F3REgvOEFBeS8vVkFPei9xZ0ViLytJQkh3QU1BVTRBQ3dGUUFBc0J1disvQWJ6LzdnSEEvK3dCeVAvdEFjci83QUhNLy9VQnpRQU9BYzhBRFFIU0FBMEFCZ0RzQUJRQTlmL3dBUUFBREFFei8vQUJQZi9tQVZqLzhBQUZBT3dBT2dEMS8rTUJNLy9pQVQzLzR3RlkvK01BQVFEcy8rOEFDQUQxLzdvQkNQL1BBUi8vMndFei8xQUJQZitkQVU3LzhBRlEvL0lCV1A5TUFBa0J2UC95QWNELzhnSEkvL0lCeXYveUFjMy93QUhPLyt3QnovL0hBZEQvMkFIUy83OEFBZ0hQLys0QjBQLzFBQUlCeVAvckFjci82d0FIQWNqLzd3SEsvL0FCemYrN0FjNy83QUhQLzdjQjBQL1ZBZEwvdEFBRUFjMy83Z0hQLy9FQjBmL3NBZEwvNmdBRUFjMy82UUhQLytzQjBQL3hBZEwvNVFBRUFjMy84Z0hQLy9FQjBQLzFBZEwvN2dBQ0FjOEFEUUhTQUEwQUN3QmIvNlFCdWdBVEFiei84d0hBLy9FQnlQL3lBY3IvOFFITi96c0J6di9hQWMvL1ZBSFEvNUVCMHY4L0FBTUFTZ0FQQUZnQU1nQmJBQkVBQ0FCYi8rVUF0Ly9MQU16LzVBRzZBQTBCdlAvdEFjRC82d0hJLyt3Qnl2L3NBQUlCRUFBTEFWZi81Z0FJQUZnQURnQ0IvNThBdy8vZUFNYi81UURZLzZnQTdQL0tBVXIvNHdHNi84WUFDUUFOQUE4QVFRQU1BRmIvNndCaEFBNEJ1di9MQWJ6LzZRSEEvK2NCeVAvbkFjci81d0FCQUZzQUN3QUpBQTBBRkFCQkFCRUFWdi9pQUdFQUV3RzYvN1FCdlAvWkFjRC8yUUhJLzlrQnl2L1pBQVFBRGYvbUFFSC85QUJoLys4QlFQL3RBQVVBeWYvcUFPei83Z0QxLzdBQk0vL3NBVmovN0FBU0FOai9yZ0RsQUJJQTZ2L2dBT3ovclFEdS85WUEvUC9mQVFELzBnRUcvK0FCRy8vT0FTdi8zUUV0LytJQk1mL2dBVGYvNEFFOS8ra0JRUC9hQVVyL3ZRRlUvOThCVndBUkFCd0FJLy9EQUZqLzd3QmIvOThBbWYvdUFMZi81UUM0LzlFQXd3QVJBTW4veUFEWUFCTUE1Zi9GQVBYL3lnRXovNThCUFA5UkFUMy9ld0UvLzhvQlFQL2RBVVgvOGdGTi8zVUJULy9LQVZmL1R3RlkvNHdCd1AvMUFjai85UUhOLzhjQnp2L3hBYy8velFIUS85MEIwdi9FQUFjQTlmL3dBUWovOFFFZi8vTUJNLy94QVU3Lzh3RlEvK2tCV1AvVEFBVUFTdi91QUZ2LzZnSFAvL0FCMFAvdEFkTC84QUFDQVBYLzlRRnQvN0FBQ1FESi8rb0E3UCs0QVBYLzZnRUkvL0FCSC8veEFUUC82d0ZPLy9VQldQL3NBVzMvc0FBQkFici82d0FHQUVvQURRREZBQXNBeHYvcUFNa0FEQURzLzhnQkcvL3hBRGdBQlAvWUFGYi90UUJiLzhjQWJmNjRBSHovS0FDQi8wMEFoditPQUluL29RQzMvNjRBdnY5K0FNTC9ad0RGLzRjQXh2OWxBTW4vbmdETC8yb0F6UDl6QU0zL1hnRFkvNlVBNVFBUEFPbi81QURxLzZBQTdQOTBBTzcvZ0FEMS83SUEvUDk5QVA3L2dBRUEvM2tCQnY5OUFRai9md0ViLzVnQkgvL2FBU3YvZ1FFdC81Z0JNZjk5QVRQL3N3RTMvNkFCUGY5OEFULy9tZ0ZBLzJ3QlJmL21BVXIvYXdGTy81SUJVUCt0QVZUL2V3RlhBQThCV1ArUkFWbi84Z0c2LzY4QnZQKzVBY0QvdVFISS83a0J5dis1QWN6L3ZBSE4vL0VCMFAveEFkSC83UUFDQU96L3lRRWIvKzRBRndDMy85UUF3Zi90QU1NQUVRREovK0FBeS8vbkFNei81UUROLys0QTJBQVNBT24vNlFEMS85Y0JNLy9YQVQzLzB3RS8vOVlCUVAvRkFVWC81d0ZOQUEwQlR3QU1BVmovMWdGWi8vSUJ2UC9wQWNELzV3SEkvK2NCeXYvcEFBRUJHLy94QUFJQTlmL0FBVzMvc0FBSkFPWC93d0QxLzg4Qk0vL09BVHovNXdFLy85OEJUZi9SQVUvLzdBRlgvNkFCV1AvUkFDNEFWdjl0QUZ2L2pBQnQvYjhBZlA1OUFJSCt2QUNHL3lzQWlmOUxBTGYvWVFDKy93OEF3djdvQU1YL0h3REcvdVVBeWY5R0FNdis3UURNL3YwQXpmN1pBTmovVWdEbEFBVUE2Zis5QU9yL1NRRHMvdjRBN3Y4VEFQWC9hQUQ4L3c0QS92OFRBUUQvQndFRy93NEJDUDhSQVJ2L1BBRWYvNndCSy84VkFTMy9QQUV4L3c0Qk0vOXFBVGYvU1FFOS93d0JQLzgvQVVEKzhRRkYvOEFCU3Y3dkFVNy9NUUZRLzE4QlZQOEtBVmNBQlFGWS96QUJXZi9WQUJNQVcvL0JBTGYveFFESi83UUE2Zi9YQVBYL3VRRUkvN0lCRy8vU0FSLy95QUV6LzZBQlBmL0ZBVVgvNUFGTy84d0JVUC9NQVZqL3l3RlovKzhCdlAvb0FjRC81Z0hJLytjQnl2L25BQWdBMkFBVkFPd0FGUUU4LytRQlBmL2xBVC8vNUFGTi8rTUJULy9pQVZmLzVBQWlBQXIvNGdBTkFCUUFEdi9QQUVFQUVnQksvK29BVnYvWUFGai82Z0JoQUJNQWJmK3VBSHovelFDQi82QUFodi9CQUluL3dBQzMvOUFBdS8vcUFMNy94Z0MvQUEwQXdmL3BBTUwvMWdERi8rZ0F4dis2QU1uLzZRREwvOHNBelAvYUFNMy94d0YxLzlNQnV2K3JBYnovelFIQS84c0J5UC9MQWNyL3l3SE4vL01CMFAvekFkSC83d0FKQUlILzN3QzAvL01BdHYvd0FNUC82Z0RZLzk4QTVmL2dBVmYvNEFHNi8rMEIwZi8xQUFFQUdBQUVBQUFBQndBcUFGUUFxZ1BjQkZvRXhBVUdBQUVBQndBRUFBd0FLZ0ExQURZQVB3QktBQW9BT1AvWUFOSC8yQURWLzlnQk12L1lBVHIvMkFMYi85Z0MzZi9ZQXQvLzJBT08vOWdFVGYvWUFCVUFPZ0FVQURzQUVnQTlBQllCR0FBVUFtWUFGZ0x0QUJJQzd3QVdBdkVBRmdOWUFCWURad0FXQTJvQUZnT2dBQklEb2dBU0E2UUFFZ09tQUJZRHR3QVVBNzhBRmdSQkFCWUVRd0FXQkVVQUZnUnFBQllBekFBUS94WUFFdjhXQUNYL1ZnQXUvdmdBT0FBVUFFWC8zZ0JILytzQVNQL3JBRW4vNndCTC8rc0FVLy9yQUZYLzZ3QlovK29BV3Yvb0FGMy82QUNULytzQW1QL3JBSnIvNmdDeC8xWUFzLzlXQUxyLzZ3QzgvK2dBeC8vckFNai82d0RLLytvQTBRQVVBTlVBRkFEMi8rc0JBdi9yQVF6L1ZnRVgvK3NCR2Yvb0FSMy82d0VoLytzQk1nQVVBVG4vNndFNkFCUUJTLy9yQVV6LzZ3RlcvK3NCYnY4V0FYTC9GZ0YyL3hZQmQvOFdBa3ovVmdKTi8xWUNUdjlXQWsvL1ZnSlEvMVlDVWY5V0FsTC9WZ0puLzk0Q2FQL2VBbW4vM2dKcS85NENhLy9lQW16LzNnSnQvOTRDYnYvckFtLy82d0p3LytzQ2NmL3JBbkwvNndKNC8rc0NlZi9yQW5yLzZ3SjcvK3NDZlAvckFuMy82Z0orLytvQ2YvL3FBb0QvNmdLQi8rZ0Nndi9vQW9QL1ZnS0UvOTRDaGY5V0FvYi8zZ0tILzFZQ2lQL2VBb3IvNndLTS8rc0Nqdi9yQXBELzZ3S1MvK3NDbFAvckFwYi82d0tZLytzQ212L3JBcHovNndLZS8rc0NvUC9yQXFMLzZ3S2svK3NDc3Y3NEFzYi82d0xJLytzQ3l2L3JBdHNBRkFMZEFCUUMzd0FVQXVMLzZnTGsvK29DNXYvcUF1ai82Z0xxLytvQzdQL3FBdkQvNkFOVC8xWURXLzlXQTJ2LzZ3TnYvK29EY2YvckEzUC82QU4yLytvRGQvL3JBM2ovNmdOLy92Z0RnLzlXQTQ0QUZBT1EvOTREa2YvckE1UC82d09WLytzRGx2L29BNWovNndPZi8rZ0RwLy9vQTYvL1ZnT3cvOTREcy8vckE3ai82QU81LytzRHZ2L3JBOEQvNkFQRi8xWUR4di9lQThmL1ZnUEkvOTREelAvckE4Ny82d1BQLytzRDJmL3JBOXYvNndQZC8rc0Q0Zi9vQStQLzZBUGwvK2dEN1AvckErLy9WZ1B3Lzk0RDhmOVdBL0wvM2dQei8xWUQ5UC9lQS9YL1ZnUDIvOTREOS85V0Evai8zZ1A1LzFZRCt2L2VBL3YvVmdQOC85NEQvZjlXQS83LzNnUC8vMVlFQVAvZUJBSC9WZ1FDLzk0RUEvOVdCQVQvM2dRRi8xWUVCdi9lQkFqLzZ3UUsvK3NFRFAvckJBNy82d1FRLytzRUV2L3JCQlQvNndRVy8rc0VIUC9yQkI3LzZ3UWcvK3NFSXYvckJDVC82d1FtLytzRUtQL3JCQ3IvNndRcy8rc0VMdi9yQkRELzZ3UXkvK3NFTlAvcUJEYi82Z1E0LytvRU92L3FCRHovNmdRKy8rb0VRUC9xQkVMLzZBUkUvK2dFUnYvb0JFMEFGQUFmQURqLzFRQTYvK1FBTy8vc0FEMy8zUURSLzlVQTFmL1ZBUmovNUFFeS85VUJPdi9WQW1iLzNRTGIvOVVDM2YvVkF0Ly8xUUx0Lyt3QzcvL2RBdkgvM1FOWS85MERaLy9kQTJyLzNRT08vOVVEb1Avc0E2TC83QU9rLyt3RHB2L2RBN2YvNUFPLy85MEVRZi9kQkVQLzNRUkYvOTBFVGYvVkJHci8zUUFhQURqL3NBQTYvKzBBUGYvUUFOSC9zQURWLzdBQkdQL3RBVEwvc0FFNi83QUNadi9RQXR2L3NBTGQvN0FDMy8rd0F1Ly8wQUx4LzlBRFdQL1FBMmYvMEFOcS85QURqdit3QTZiLzBBTzMvKzBEdi8vUUJFSC8wQVJELzlBRVJmL1FCRTMvc0FScS85QUFFQUF1Lys0QU9mL3VBbUwvN2dKai8rNENaUC91QW1YLzdnS3kvKzRDNGYvdUF1UC83Z0xsLys0QzUvL3VBdW4vN2dMci8rNERmLy91QkRQLzdnUTEvKzRBUndBR0FCQUFDd0FRQUVmLzZBQkkvK2dBU2Yvb0FFdi82QUJWLytnQWsvL29BSmovNkFDNi8rZ0F4Ly9vQU1qLzZBRDIvK2dCQXYvb0FSMy82QUVoLytnQk9mL29BVXYvNkFGTS8rZ0JWdi9vQVd3QUVBRnRBQkFCYndBUUFYQUFFQUZ4QUJBQ2J2L29BbS8vNkFKdy8rZ0NjZi9vQW5MLzZBS0svK2dDalAvb0FvNy82QUtRLytnQ2t2L29BcFQvNkFLVy8rZ0NtUC9vQXByLzZBS2MvK2dDbnYvb0FxRC82QUtpLytnQ3BQL29BMnYvNkFPUi8rZ0RsZi9vQTVqLzZBT29BQkFEcVFBUUE2d0FFQU96LytnRHVmL29BNzcvNkFQTS8rZ0R6di9vQTgvLzZBUGIvK2dEN1Avb0JBai82QVFLLytnRURQL29CQTcvNkFRUS8rZ0VFdi9vQkJULzZBUVcvK2dFS3Yvb0JDei82QVF1LytnRU12L29BQUVBVmdBRUFBQUFKZ0NtQVp3QitnSVVBbFlDekFQQ0JMZ0ZrZ1lzQ01ZS2pBdGVERlFPR2c1TURuNE8vQkRpRVZnU0toUk1GUUlXYUJjaUY2Z1lCaGpJR1Q0ZXdCbFFHcUljNEIwQ0hoZ2VsaDdBSHVvQUFRQW1BRThBV0FCYkFGOEFuQUMwQUxZQXR3QzRBTDhBd2dEREFNUUF5UURMQU13QXpRRFJBTlVBMXdEWUFOb0E0Z0RtQU9jQTZBRHBBT29BN0FEdUFQQUE5UUQzQVBvQS93RUNBU0VCYlFBOUFFZi83QUJJLyt3QVNmL3NBRXYvN0FCVi8rd0FrLy9zQUpqLzdBQzYvK3dBeC8vc0FNai83QUQyLyt3QkF2L3NBUjMvN0FFaC8rd0JPZi9zQVV2LzdBRk0vK3dCVnYvc0FtNy83QUp2Lyt3Q2NQL3NBbkgvN0FKeS8rd0Npdi9zQW96LzdBS08vK3dDa1Avc0FwTC83QUtVLyt3Q2x2L3NBcGovN0FLYS8rd0NuUC9zQXA3LzdBS2cvK3dDb3Yvc0FxVC83QU5yLyt3RGtmL3NBNVgvN0FPWS8rd0RzLy9zQTduLzdBTysvK3dEelAvc0E4Ny83QVBQLyt3RDIvL3NBK3ovN0FRSS8rd0VDdi9zQkF6LzdBUU8vK3dFRVAvc0JCTC83QVFVLyt3RUZ2L3NCQ3IvN0FRcy8rd0VMdi9zQkRMLzdBQVhBRlAvN0FFWC8rd0NlUC9zQW5uLzdBSjYvK3dDZS8vc0Fuei83QUxHLyt3Q3lQL3NBc3IvN0FOeC8rd0RkLy9zQTVQLzdBUFovK3dEM2Yvc0JCei83QVFlLyt3RUlQL3NCQ0wvN0FRay8rd0VKdi9zQkNqLzdBUXcvK3dBQmdBUS80UUFFditFQVc3L2hBRnkvNFFCZHYrRUFYZi9oQUFRQUM3LzdBQTUvK3dDWXYvc0FtUC83QUprLyt3Q1pmL3NBckwvN0FMaC8rd0M0Ly9zQXVYLzdBTG4vK3dDNmYvc0F1di83QU4vLyt3RU0vL3NCRFgvN0FBZEFBYi84Z0FMLy9JQVd2L3pBRjMvOHdDOC8vTUJHZi96QVd6LzhnRnQvL0lCYi8veUFYRC84Z0Z4Ly9JQ2dmL3pBb0wvOHdMdy8vTURjLy96QTViLzh3T2YvL01EcC8vekE2ai84Z09wLy9JRHJQL3lBN2ovOHdQQS8vTUQ0Zi96QStQLzh3UGwvL01FUXYvekJFVC84d1JHLy9NQVBRQW4vL01BSy8vekFEUC84d0ExLy9NQWcvL3pBSkwvOHdDWC8vTUFzdi96QU5MLzh3RUgvL01CRnYvekFSci84d0VjLy9NQkh2L3pBU0QvOHdFNC8vTUJWZi96QWlqLzh3SXAvL01DSy8vekFpei84d0pULy9NQ1hmL3pBbDcvOHdKZi8vTUNZUC96QW1ILzh3S0ovL01DaS8vekFvMy84d0tQLy9NQ25mL3pBcC8vOHdLaC8vTUNvLy96QXNYLzh3TEgvL01DeWYvekF2ci84d05YLy9NRFpQL3pBNHIvOHdPTi8vTUR1di96QTczLzh3UFkvL01EMnYvekE5ei84d1FiLy9NRUhmL3pCQi8vOHdRaC8vTUVJLy96QkNYLzh3UW4vL01FS2YvekJDdi84d1F0Ly9NRUwvL3pCREgvOHdTcS8vTUFQUUFuLytZQUsvL21BRFAvNWdBMS8rWUFnLy9tQUpMLzVnQ1gvK1lBc3YvbUFOTC81Z0VILytZQkZ2L21BUnIvNWdFYy8rWUJIdi9tQVNELzVnRTQvK1lCVmYvbUFpai81Z0lwLytZQ0svL21BaXovNWdKVC8rWUNYZi9tQWw3LzVnSmYvK1lDWVAvbUFtSC81Z0tKLytZQ2kvL21BbzMvNWdLUC8rWUNuZi9tQXAvLzVnS2gvK1lDby8vbUFzWC81Z0xILytZQ3lmL21BdnIvNWdOWC8rWURaUC9tQTRyLzVnT04vK1lEdXYvbUE3My81Z1BZLytZRDJ2L21BOXovNWdRYi8rWUVIZi9tQkIvLzVnUWgvK1lFSS8vbUJDWC81Z1FuLytZRUtmL21CQ3YvNWdRdC8rWUVMLy9tQkRILzVnU3EvK1lBTmdBbC8rUUFQUC9TQUQzLzB3Q3gvK1FBcy8va0FObi8wZ0VNLytRQ1RQL2tBazMvNUFKTy8rUUNULy9rQWxELzVBSlIvK1FDVXYva0FtYi8wd0tELytRQ2hmL2tBb2YvNUFMdi85TUM4Zi9UQTFQLzVBTlkvOU1EVy8va0EyZi8wd05vLzlJRGF2L1RBNFAvNUFPUC85SURwdi9UQTYvLzVBTy8vOU1Ed3YvU0E4WC81QVBILytRRDBQL1NBK3IvMGdQdi8rUUQ4Zi9rQS9QLzVBUDEvK1FEOS8va0Evbi81QVA3LytRRC9mL2tBLy8vNUFRQi8rUUVBLy9rQkFYLzVBUkIvOU1FUS8vVEJFWC8wd1JQLzlJRVYvL1NCR3IvMHdBbUFCRC9IZ0FTL3g0QUpmL05BTEgvelFDei84MEJEUC9OQVc3L0hnRnkveDRCZHY4ZUFYZi9IZ0pNLzgwQ1RmL05BazcvelFKUC84MENVUC9OQWxIL3pRSlMvODBDZy8vTkFvWC96UUtILzgwRFUvL05BMXYvelFPRC84MERyLy9OQThYL3pRUEgvODBENy8vTkEvSC96UVB6LzgwRDlmL05BL2YvelFQNS84MEQrLy9OQS8zL3pRUC8vODBFQWYvTkJBUC96UVFGLzgwQXBnQkgvOXdBU1AvY0FFbi8zQUJMLzl3QVVmL3pBRkwvOHdCVC85WUFWUC96QUZYLzNBQlovOTBBV3YvaEFGMy80UUNULzl3QW1QL2NBSnIvM1FDNi85d0F2UC9oQU1ELzh3REgvOXdBeVAvY0FNci8zUURyLy9NQTcvL3pBUEQvOHdEeS8vTUE4Ly96QVBULzh3RDIvOXdBOS8vekFQbi84d0Q2Ly9NQS9mL3pBUC8vOHdFQy85d0JCUC96QVJmLzFnRVovK0VCSGYvY0FTSC8zQUUxLy9NQk9mL2NBVVQvOHdGSi8vTUJTLy9jQVV6LzNBRlcvOXdDYnYvY0FtLy8zQUp3Lzl3Q2NmL2NBbkwvM0FKMy8vTUNlUC9XQW5uLzFnSjYvOVlDZS8vV0Fuei8xZ0o5LzkwQ2Z2L2RBbi8vM1FLQS85MENnZi9oQW9MLzRRS0svOXdDalAvY0FvNy8zQUtRLzl3Q2t2L2NBcFQvM0FLVy85d0NtUC9jQXByLzNBS2MvOXdDbnYvY0FxRC8zQUtpLzl3Q3BQL2NBci8vOHdMQi8vTUN3Ly96QXNULzh3TEcvOVlDeVAvV0Fzci8xZ0xpLzkwQzVQL2RBdWIvM1FMby85MEM2di9kQXV6LzNRTHcvK0VEYS8vY0EyMy84d052LzkwRGNmL1dBM1AvNFFOMi85MERkLy9XQTNqLzNRT1IvOXdEa3YvekE1UC8xZ09VLy9NRGxmL2NBNWIvNFFPWS85d0RtZi96QTU3Lzh3T2YvK0VEcC8vaEE2Ny84d096Lzl3RHRQL3pBN2ovNFFPNS85d0R2di9jQThELzRRUE0vOXdEenYvY0E4Ly8zQVBWLy9NRDEvL3pBOW4vMWdQYi85d0QzZi9XQStILzRRUGovK0VENWYvaEErbi84d1BzLzl3RUNQL2NCQXIvM0FRTS85d0VEdi9jQkJELzNBUVMvOXdFRlAvY0JCYi8zQVFjLzlZRUh2L1dCQ0QvMWdRaS85WUVKUC9XQkNiLzFnUW8vOVlFS3YvY0JDei8zQVF1Lzl3RU1QL1dCREwvM0FRMC85MEVOdi9kQkRqLzNRUTYvOTBFUFAvZEJENy8zUVJBLzkwRVF2L2hCRVQvNFFSRy8rRUVTdi96QkV6Lzh3UlcvL01FWS8vekJHWC84d1JuLy9NQWNRQUcvOW9BQy8vYUFFZi84QUJJLy9BQVNmL3dBRXYvOEFCVi8vQUFXZi92QUZyLzNBQmQvOXdBay8vd0FKai84QUNhLys4QXV2L3dBTHovM0FESC8vQUF5UC93QU1yLzd3RDIvL0FCQXYvd0FSbi8zQUVkLy9BQklmL3dBVG4vOEFGTC8vQUJUUC93QVZiLzhBRnMvOW9CYmYvYUFXLy8yZ0Z3LzlvQmNmL2FBbTcvOEFKdi8vQUNjUC93QW5ILzhBSnkvL0FDZmYvdkFuNy83d0ovLys4Q2dQL3ZBb0gvM0FLQy85d0Npdi93QW96LzhBS08vL0FDa1Avd0FwTC84QUtVLy9BQ2x2L3dBcGovOEFLYS8vQUNuUC93QXA3LzhBS2cvL0FDb3Yvd0FxVC84QUxpLys4QzVQL3ZBdWIvN3dMby8rOEM2di92QXV6Lzd3THcvOXdEYS8vd0EyLy83d056Lzl3RGR2L3ZBM2ovN3dPUi8vQURsZi93QTViLzNBT1kvL0FEbi8vY0E2Zi8zQU9vLzlvRHFmL2FBNnovMmdPei8vQUR1UC9jQTduLzhBTysvL0FEd1AvY0E4ei84QVBPLy9BRHovL3dBOXYvOEFQaC85d0Q0Ly9jQStYLzNBUHMvL0FFQ1Avd0JBci84QVFNLy9BRUR2L3dCQkQvOEFRUy8vQUVGUC93QkJiLzhBUXEvL0FFTFAvd0JDNy84QVF5Ly9BRU5QL3ZCRGIvN3dRNC8rOEVPdi92QkR6Lzd3USsvKzhFUVAvdkJFTC8zQVJFLzl3RVJ2L2NBRFFBQnYrZ0FBdi9vQUJaLy9FQVd2L0ZBRjMveFFDYS8vRUF2UC9GQU1yLzhRRVovOFVCYlArZ0FXMy9vQUZ2LzZBQmNQK2dBWEgvb0FKOS8vRUNmdi94QW4vLzhRS0EvL0VDZ2YvRkFvTC94UUxpLy9FQzVQL3hBdWIvOFFMby8vRUM2di94QXV6LzhRTHcvOFVEYi8veEEzUC94UU4yLy9FRGVQL3hBNWIveFFPZi84VURwLy9GQTZqL29BT3AvNkFEclArZ0E3ai94UVBBLzhVRDRmL0ZBK1AveFFQbC84VUVOUC94QkRiLzhRUTQvL0VFT3YveEJEei84UVErLy9FRVFQL3hCRUwveFFSRS84VUVSdi9GQUQwQVIvL25BRWovNXdCSi8rY0FTLy9uQUZYLzV3Q1QvK2NBbVAvbkFMci81d0RILytjQXlQL25BUGIvNXdFQy8rY0JIZi9uQVNILzV3RTUvK2NCUy8vbkFVei81d0ZXLytjQ2J2L25BbS8vNXdKdy8rY0NjZi9uQW5MLzV3S0svK2NDalAvbkFvNy81d0tRLytjQ2t2L25BcFQvNXdLVy8rY0NtUC9uQXByLzV3S2MvK2NDbnYvbkFxRC81d0tpLytjQ3BQL25BMnYvNXdPUi8rY0RsZi9uQTVqLzV3T3ovK2NEdWYvbkE3Ny81d1BNLytjRHp2L25BOC8vNXdQYi8rY0Q3UC9uQkFqLzV3UUsvK2NFRFAvbkJBNy81d1FRLytjRUV2L25CQlQvNXdRVy8rY0VLdi9uQkN6LzV3UXUvK2NFTXYvbkFIRUFCZ0FNQUFzQURBQkgvK2dBU1Avb0FFbi82QUJMLytnQVUvL3FBRlgvNkFCYUFBc0FYUUFMQUpQLzZBQ1kvK2dBdXYvb0FMd0FDd0RILytnQXlQL29BUGIvNkFFQy8rZ0JGLy9xQVJrQUN3RWQvK2dCSWYvb0FUbi82QUZMLytnQlRQL29BVmIvNkFGc0FBd0JiUUFNQVc4QURBRndBQXdCY1FBTUFtNy82QUp2LytnQ2NQL29BbkgvNkFKeS8rZ0NlUC9xQW5uLzZnSjYvK29DZS8vcUFuei82Z0tCQUFzQ2dnQUxBb3IvNkFLTS8rZ0Nqdi9vQXBELzZBS1MvK2dDbFAvb0FwYi82QUtZLytnQ212L29BcHovNkFLZS8rZ0NvUC9vQXFMLzZBS2svK2dDeHYvcUFzai82Z0xLLytvQzhBQUxBMnYvNkFOeC8rb0Rjd0FMQTNmLzZnT1IvK2dEay8vcUE1WC82QU9XQUFzRG1QL29BNThBQ3dPbkFBc0RxQUFNQTZrQURBT3NBQXdEcy8vb0E3Z0FDd081LytnRHZ2L29BOEFBQ3dQTS8rZ0R6di9vQTgvLzZBUFovK29EMi8vb0E5My82Z1BoQUFzRDR3QUxBK1VBQ3dQcy8rZ0VDUC9vQkFyLzZBUU0vK2dFRHYvb0JCRC82QVFTLytnRUZQL29CQmIvNkFRYy8rb0VIdi9xQkNELzZnUWkvK29FSlAvcUJDYi82Z1FvLytvRUt2L29CQ3ovNkFRdS8rZ0VNUC9xQkRMLzZBUkNBQXNFUkFBTEJFWUFDd0FNQUZ6LzdRQmUvKzBBN2YvdEF2UC83UUwxLyswQzkvL3RBNWYvN1FQRC8rMEQwZi90QSt2LzdRUlEvKzBFV1AvdEFBd0FYUC95QUY3LzhnRHQvL0lDOC8veUF2WC84Z0wzLy9JRGwvL3lBOFAvOGdQUi8vSUQ2Ly95QkZELzhnUlkvL0lBSHdCYS8vUUFYUC95QUYzLzlBQmUvL01BdlAvMEFPMy84Z0VaLy9RQ2dmLzBBb0wvOUFMdy8vUUM4Ly96QXZYLzh3TDMvL01EYy8vMEE1Yi85QU9YLy9JRG4vLzBBNmYvOUFPNC8vUUR3UC8wQThQLzhnUFIvL0lENGYvMEErUC85QVBsLy9RRDYvL3lCRUwvOUFSRS8vUUVSdi8wQkZELzhnUlkvL0lBZVFBRy84b0FDLy9LQURqLzBnQTYvOVFBUFAvMEFEMy8wd0JSLzlFQVV2L1JBRlQvMFFCYS8rWUFYUC92QUYzLzVnQzgvK1lBd1AvUkFOSC8wZ0RWLzlJQTJmLzBBTjMvN1FEZy8rRUE2Ly9SQU8zLzd3RHYvOUVBOFAvUkFQTC8wUUR6LzlFQTlQL1JBUGYvMFFENS85RUErdi9SQVAzLzBRRC8vOUVCQlAvUkFSai8xQUVaLytZQk12L1NBVFgvMFFFNi85SUJSUC9SQVVuLzBRRnMvOG9CYmYvS0FXLy95Z0Z3LzhvQmNmL0tBbWIvMHdKMy85RUNnZi9tQW9MLzVnSy8vOUVDd2YvUkFzUC8wUUxFLzlFQzIvL1NBdDMvMGdMZi85SUM3Ly9UQXZELzVnTHgvOU1EV1AvVEEyZi8wd05vLy9RRGF2L1RBMjMvMFFOei8rWURndi90QTQ3LzBnT1AvL1FEa3YvUkE1VC8wUU9XLytZRGwvL3ZBNW4vMFFPZS85RURuLy9tQTZiLzB3T24vK1lEcVAvS0E2bi95Z09zLzhvRHJ2L1JBN1QvMFFPMy85UUR1UC9tQTcvLzB3UEEvK1lEd3YvMEE4UC83d1BRLy9RRDBmL3ZBOVgvMFFQWC85RUQ0UC90QStILzVnUGkvKzBENC8vbUErVC83UVBsLytZRDV2L2hBK24vMFFQcS8vUUQ2Ly92QkVILzB3UkMvK1lFUS8vVEJFVC81Z1JGLzlNRVJ2L21CRXIvMFFSTS85RUVUZi9TQkUvLzlBUlEvKzhFVWYvaEJGUC80UVJXLzlFRVYvLzBCRmovN3dSai85RUVaZi9SQkdmLzBRUnEvOU1BSFFBNC83NEFXdi92QUYzLzd3QzgvKzhBMGYrK0FOWC92Z0VaLys4Qk12KytBVHIvdmdLQi8rOENndi92QXR2L3ZnTGQvNzRDMy8rK0F2RC83d056Lys4RGp2KytBNWIvN3dPZi8rOERwLy92QTdqLzd3UEEvKzhENGYvdkErUC83d1BsLys4RVF2L3ZCRVQvN3dSRy8rOEVUZisrQURRQU9QL21BRHIvNXdBOC8vSUFQZi9uQUZ6LzhRRFIvK1lBMWYvbUFObi84Z0RkLys0QTRQL29BTzMvOFFFWS8rY0JNdi9tQVRyLzVnSm0vK2NDMi8vbUF0My81Z0xmLytZQzcvL25BdkgvNXdOWS8rY0RaLy9uQTJqLzhnTnEvK2NEZ3YvdUE0Ny81Z09QLy9JRGwvL3hBNmIvNXdPMy8rY0R2Ly9uQThMLzhnUEQvL0VEMFAveUE5SC84UVBnLys0RDR2L3VBK1QvN2dQbS8rZ0Q2di95QSt2LzhRUkIvK2NFUS8vbkJFWC81d1JOLytZRVQvL3lCRkQvOFFSUi8rZ0VVLy9vQkZmLzhnUlkvL0VFYXYvbkFJZ0FKUUFRQUNmLzZBQXIvK2dBTS8vb0FEWC82QUE0LytBQU92L2dBRDMvM3dDRC8rZ0Frdi9vQUpmLzZBQ3hBQkFBc3Yvb0FMTUFFQURSLytBQTB2L29BTk1BRUFEVi8rQUEzQUFRQU9ELzRRRHhBQkFBK1AvZ0FRTUFFQUVILytnQkRBQVFBUmIvNkFFWS8rQUJHdi9vQVJ6LzZBRWUvK2dCSVAvb0FUTC80QUU0LytnQk92L2dBVkVBRUFGVi8rZ0NLUC9vQWluLzZBSXIvK2dDTFAvb0Frd0FFQUpOQUJBQ1RnQVFBazhBRUFKUUFCQUNVUUFRQWxJQUVBSlQvK2dDWGYvb0FsNy82QUpmLytnQ1lQL29BbUgvNkFKbS85OENnd0FRQW9VQUVBS0hBQkFDaWYvb0Fvdi82QUtOLytnQ2ovL29BcDMvNkFLZi8rZ0NvZi9vQXFQLzZBTEYvK2dDeC8vb0Fzbi82QUxiLytBQzNmL2dBdC8vNEFMdi85OEM4Zi9mQXZyLzZBTlRBQkFEVi8vb0Exai8zd05iQUJBRFpQL29BMmYvM3dOcS85OERnd0FRQTRyLzZBT04vK2dEanYvZ0E2Yi8zd092QUJBRHQvL2dBN3IvNkFPOS8rZ0R2Ly9mQThVQUVBUEhBQkFEMlAvb0E5ci82QVBjLytnRDV2L2hBK2YvNEFQdEFCQUQ3Z0FRQSs4QUVBUHhBQkFEOHdBUUEvVUFFQVAzQUJBRCtRQVFBL3NBRUFQOUFCQUQvd0FRQkFFQUVBUURBQkFFQlFBUUJCdi82QVFkLytnRUgvL29CQ0gvNkFRai8rZ0VKZi9vQkNmLzZBUXAvK2dFSy8vb0JDMy82QVF2LytnRU1mL29CRUgvM3dSRC85OEVSZi9mQkUzLzRBUlIvK0VFVXYvZ0JGUC80UVJVLytBRWFBQVFCR2tBRUFScS85OEVxdi9vQUMwQU9QL3hBRHIvOUFBOC8vUUFQZi93QU5ILzhRRFQvL1VBMWYveEFObi85QURjLy9VQTNmL3pBUmovOUFFeS8vRUJPdi94QVZILzlRSm0vL0FDMi8veEF0My84UUxmLy9FQzcvL3dBdkgvOEFOWS8vQURaLy93QTJqLzlBTnEvL0FEZ3YvekE0Ny84UU9QLy9RRHB2L3dBN2YvOUFPLy8vQUR3di8wQTlELzlBUGcvL01ENHYvekErVC84d1BxLy9RRDdmLzFCRUgvOEFSRC8vQUVSZi93QkUzLzhRUlAvL1FFVi8vMEJHai85UVJxLy9BQVdRQWxBQThBT1AvbUFEci81Z0E4QUE0QVBmL21BTEVBRHdDekFBOEEwZi9tQU5NQURnRFYvK1lBMlFBT0FOd0FEZ0RkQUFzQTRQL2xBUEVBRHdENC8rZ0JBd0FQQVF3QUR3RVkvK1lCTXYvbUFUci81Z0ZSQUE0Q1RBQVBBazBBRHdKT0FBOENUd0FQQWxBQUR3SlJBQThDVWdBUEFtYi81Z0tEQUE4Q2hRQVBBb2NBRHdMYi8rWUMzZi9tQXQvLzVnTHYvK1lDOGYvbUExTUFEd05ZLytZRFd3QVBBMmYvNWdOb0FBNERhdi9tQTRJQUN3T0RBQThEanYvbUE0OEFEZ09tLytZRHJ3QVBBN2YvNWdPLy8rWUR3Z0FPQThVQUR3UEhBQThEMEFBT0ErQUFDd1BpQUFzRDVBQUxBK2IvNVFQbi8rZ0Q2Z0FPQSswQURnUHVBQThEN3dBUEEvRUFEd1B6QUE4RDlRQVBBL2NBRHdQNUFBOEQrd0FQQS8wQUR3UC9BQThFQVFBUEJBTUFEd1FGQUE4RVFmL21CRVAvNWdSRi8rWUVUZi9tQkU4QURnUlIvK1VFVXYvb0JGUC81UVJVLytnRVZ3QU9CR2dBRGdScEFBOEVhdi9tQUM0QU9QL2pBRHovNVFBOS8rUUEwZi9qQU5QLzVRRFYvK01BMmYvbEFOei81UURkLytrQThmL3FBUVAvNmdFeS8rTUJPdi9qQVZILzVRSm0vK1FDMi8vakF0My80d0xmLytNQzcvL2tBdkgvNUFOWS8rUURaLy9rQTJqLzVRTnEvK1FEZ3YvcEE0Ny80d09QLytVRHB2L2tBNy8vNUFQQy8rVUQwUC9sQStELzZRUGkvK2tENVAvcEErci81UVB0LytVRDd2L3FCRUgvNUFSRC8rUUVSZi9rQkUzLzR3UlAvK1VFVi8vbEJHai81UVJwLytvRWF2L2tBQ0VBT1AvaUFEei81QURSLytJQTAvL2tBTlgvNGdEWi8rUUEzUC9rQU4zLzZRRHgvK3NCQS8vckFUTC80Z0U2LytJQlVmL2tBdHYvNGdMZC8rSUMzLy9pQTJqLzVBT0MvK2tEanYvaUE0Ly81QVBDLytRRDBQL2tBK0QvNlFQaS8ra0Q1UC9wQStyLzVBUHQvK1FEN3YvckJFMy80Z1JQLytRRVYvL2tCR2ovNUFScC8rc0FGd0E0LytzQVBmL3pBTkgvNndEVi8rc0JNdi9yQVRyLzZ3Sm0vL01DMi8vckF0My82d0xmLytzQzcvL3pBdkgvOHdOWS8vTURaLy96QTJyLzh3T08vK3NEcHYvekE3Ly84d1JCLy9NRVEvL3pCRVgvOHdSTi8rc0Vhdi96QURBQVVmL3ZBRkwvN3dCVS8rOEFYUC93QU1ELzd3RHIvKzhBN2Yvd0FPLy83d0R3Lys4QTh2L3ZBUFAvN3dEMC8rOEE5Ly92QVBuLzd3RDYvKzhBL2YvdkFQLy83d0VFLys4Qk5mL3ZBVVQvN3dGSi8rOENkLy92QXIvLzd3TEIvKzhDdy8vdkFzVC83d050Lys4RGt2L3ZBNVQvN3dPWC8vQURtZi92QTU3Lzd3T3UvKzhEdFAvdkE4UC84QVBSLy9BRDFmL3ZBOWYvN3dQcC8rOEQ2Ly93QkVyLzd3Uk0vKzhFVVAvd0JGYi83d1JZLy9BRVkvL3ZCR1gvN3dSbi8rOEFIUUFHLy9JQUMvL3lBRnIvOVFCZC8vVUF2UC8xQVJuLzlRRnMvL0lCYmYveUFXLy84Z0Z3Ly9JQmNmL3lBb0gvOVFLQy8vVUM4UC8xQTNQLzlRT1cvL1VEbi8vMUE2Zi85UU9vLy9JRHFmL3lBNnovOGdPNC8vVUR3UC8xQStILzlRUGovL1VENWYvMUJFTC85UVJFLy9VRVJ2LzFBQVFBK1AvdEErZi83UVJTLyswRVZQL3RBRlFBUi8vd0FFai84QUJKLy9BQVMvL3dBRlAvNndCVi8vQUFrLy93QUpqLzhBQzYvL0FBeC8vd0FNai84QUQyLy9BQkF2L3dBUmYvNndFZC8vQUJJZi93QVRuLzhBRkwvL0FCVFAvd0FWYi84QUp1Ly9BQ2IvL3dBbkQvOEFKeC8vQUNjdi93QW5qLzZ3SjUvK3NDZXYvckFudi82d0o4LytzQ2l2L3dBb3ovOEFLTy8vQUNrUC93QXBMLzhBS1UvL0FDbHYvd0Fwai84QUthLy9BQ25QL3dBcDcvOEFLZy8vQUNvdi93QXFULzhBTEcvK3NDeVAvckFzci82d05yLy9BRGNmL3JBM2YvNndPUi8vQURrLy9yQTVYLzhBT1kvL0FEcy8vd0E3bi84QU8rLy9BRHpQL3dBODcvOEFQUC8vQUQyZi9yQTl2LzhBUGQvK3NEN1Avd0JBai84QVFLLy9BRURQL3dCQTcvOEFRUS8vQUVFdi93QkJULzhBUVcvL0FFSFAvckJCNy82d1FnLytzRUl2L3JCQ1QvNndRbS8rc0VLUC9yQkNyLzhBUXMvL0FFTHYvd0JERC82d1F5Ly9BQWp3QUdBQTBBQ3dBTkFFWC84QUJILzdBQVNQK3dBRW4vc0FCTC83QUFVLy9XQUZYL3NBQmFBQXNBWFFBTEFKUC9zQUNZLzdBQXV2K3dBTHdBQ3dESS83QUE4Zit2QVBiL3NBRUMvN0FCQS8rdkFSZi8xZ0VaQUFzQkhmK3dBU0gvc0FFNS83QUJTLyt3QVV6L3NBRlcvN0FCYkFBTkFXMEFEUUZ2QUEwQmNBQU5BWEVBRFFKbi8vQUNhUC93QW1uLzhBSnEvL0FDYS8vd0Ftei84QUp0Ly9BQ2J2K3dBbS8vc0FKdy83QUNjZit3QW5ML3NBSjQvOVlDZWYvV0Fuci8xZ0o3LzlZQ2ZQL1dBb0VBQ3dLQ0FBc0NoUC93QW9iLzhBS0kvL0FDaXYrd0Fvei9zQUtPLzdBQ2tQK3dBcEwvc0FLVS83QUNsdit3QXBqL3NBS2EvN0FDblArd0FwNy9zQUtnLzdBQ292K3dBcVQvc0FMRy85WUN5UC9XQXNyLzFnTHdBQXNEYS8rd0EzSC8xZ056QUFzRGQvL1dBNUQvOEFPUi83QURrLy9XQTVYL3NBT1dBQXNEbVArd0E1OEFDd09uQUFzRHFBQU5BNmtBRFFPc0FBMERzUC93QTdQL3NBTzRBQXNEdWYrd0E3Ny9zQVBBQUFzRHh2L3dBOGovOEFQTS83QUR6dit3QTgvL3NBUFovOVlEMi8rd0E5My8xZ1BoQUFzRDR3QUxBK1VBQ3dQcy83QUQ3dit2QS9ELzhBUHkvL0FEOVAvd0EvYi84QVA0Ly9BRCt2L3dBL3ovOEFQKy8vQUVBUC93QkFMLzhBUUUvL0FFQnYvd0JBai9zQVFLLzdBRURQK3dCQTcvc0FRUS83QUVFdit3QkJUL3NBUVcvN0FFSFAvV0JCNy8xZ1FnLzlZRUl2L1dCQ1QvMWdRbS85WUVLUC9XQkNyL3NBUXMvN0FFTHYrd0JERC8xZ1F5LzdBRVFnQUxCRVFBQ3dSR0FBc0VhZit2QUFnQThRQVFBUGovOEFFREFCQUQ1Ly93QSs0QUVBUlMvL0FFVlAvd0JHa0FFQUJGQUVjQURBQklBQXdBU1FBTUFFc0FEQUJWQUF3QWt3QU1BSmdBREFDNkFBd0F4d0FNQU1nQURBRHhBQmdBOWdBTUFQai85d0VDQUF3QkF3QVlBUjBBREFFaEFBd0JPUUFNQVVzQURBRk1BQXdCVmdBTUFtNEFEQUp2QUF3Q2NBQU1BbkVBREFKeUFBd0NpZ0FNQW93QURBS09BQXdDa0FBTUFwSUFEQUtVQUF3Q2xnQU1BcGdBREFLYUFBd0NuQUFNQXA0QURBS2dBQXdDb2dBTUFxUUFEQU5yQUF3RGtRQU1BNVVBREFPWUFBd0Rzd0FNQTdrQURBTytBQXdEekFBTUE4NEFEQVBQQUF3RDJ3QU1BK2YvOXdQc0FBd0Q3Z0FZQkFnQURBUUtBQXdFREFBTUJBNEFEQVFRQUF3RUVnQU1CQlFBREFRV0FBd0VLZ0FNQkN3QURBUXVBQXdFTWdBTUJGTC85d1JVLy9jRWFRQVlBQjhBV3YvMEFGei84QUJkLy9RQXZQLzBBTzMvOEFEeC8vTUJBLy96QVJuLzlBS0IvL1FDZ3YvMEF2RC85QU56Ly9RRGx2LzBBNWYvOEFPZi8vUURwLy8wQTdqLzlBUEEvL1FEdy8vd0E5SC84QVBoLy9RRDQvLzBBK1gvOUFQci8vQUQ3di96QkVMLzlBUkUvL1FFUnYvMEJGRC84QVJZLy9BRWFmL3pBQW9BQnYvV0FBdi8xZ0ZzLzlZQmJmL1dBVy8vMWdGdy85WUJjZi9XQTZqLzFnT3AvOVlEclAvV0FBb0FCdi8xQUF2LzlRRnMvL1VCYmYvMUFXLy85UUZ3Ly9VQmNmLzFBNmovOVFPcC8vVURyUC8xQUNFQVRBQWdBRThBSUFCUUFDQUFVLytBQUZmL2tBRVgvNEFDZVArQUFubi9nQUo2LzRBQ2UvK0FBbnovZ0FMRy80QUN5UCtBQXNyL2dBTFMvNUFDMVArUUF0Yi9rQUxZLzVBQzJ2K1FBM0gvZ0FOMy80QURrLytBQTVyL2tBUFovNEFEM2YrQUJCei9nQVFlLzRBRUlQK0FCQ0wvZ0FRay80QUVKditBQkNqL2dBUXcvNEFBQWdlS0FBUUFBQXBlRWI0QUlRQWRBQUFBRWYvTy80OEFFdi8xLysvL2lQLzAvN3YvZi8vMUFBei9xZitpLzhrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rVUFBQUFBLytqL3lRQUEvL01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFELzVRQVJBQUFBQUFBQUFBQUFBUC9qQUFBQUFBQUEvK1QvNUFBQUFCSUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzRRQUFBQUFBQUFBQUFBQUFBQUFBQUFELzVRQUFBQUQvNnYvVkFBQUFBUC9yLytyL212L3BBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rWUFBQUFBQUFBQUFBQUEvKzBBQUFBVS8rOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC83UUFBQUFBQUFBQUFBQUFBQUFBQUFBRC95Lys0LzN6L2Z2L2tBQUFBQVArZEFBOEFFUCtoLzhRQUVBQVFBQUFBQVAreEFBRC9KZ0FBLzUzL3MvOFkvNVAvOFArUC80ei9FQUFBLzVML2N2OE0vdy8vdlFBQUFBRC9SQUFGQUFmL1MvK0dBQWNBQndBQUFBRC9QZ0FBL25vQUFQOUUvMnIrWXY4ei85SC9MUDhuQUFBQUFBQUFBQUFBQVAvWUFBQUFBQUFBLyt3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvN0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvWS82TUFBUC9oQUFBQUFQL2xBQUFBQVAvcEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rWUFBUC9BLytrQUFBQUFBQUFBQUFBQUFBRC9ld0FBQUFEL3YvL0svckFBQVA5eC91My8xQUFBLzFIL0VRQUFBQUFBRXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9KQUE4QUFQL1pBQUFBQUFBQS8vTUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8zYi80ZjY4LytiLzh3QUFBQUFBQUFBQS8vVUFBUDg0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOVFBQUFBRC84d0FBQUFELzBnQUFBQUQvNUFBQUFBQUFBQUFBQUFEL3RRQUEveDhBQVAvVUFBRC8yd0FBQUFELzBnQUFBQUFBQUFBUi8rSC8wUUFSLytjQUFBQUEvK3NBQUFBQS8rc0FBQUFPQUFBQUFBQUFBQUFBQUFBQUFBRC81Z0FBLzlJQUFBQUFBQUFBQUFBQUFBQUFBUC9zQUFBQUFQL2ovNkFBQVArL0FCRUFFZi9aLytJQUVnQVNBQUFBQVAraUFBMy9MUUFBLzcvLzZmL00vOWovOFArMy84Yi9vQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC80UUFBQUE3LzdRQUFBQUFBQUFBQUFBRC8xUUFBLzRVQUFQL2hBQUQveEFBQUFBRC8zd0FBQUFBQUFBQUEvK1VBQUFBQS8rWUFBQUFBLytzQUFBQUEvKzBBQUFBQUFBQUFBQUFBQUEwQUFBQUFBQUQvNndBQUFBQUFBQUFBQUFBQUFBQUFBQUQveWdBQS8rbi91Ly9wQUFBQUFQKzlBQUFBRWdBQUFBQUFBQUFTQUFBQUFQK2xBQUQrYlFBQS83MEFBUCtKLzVvQUFQK1IvOUlBQUFBQUFBRC84UUFBQUFBQUFBQUEvNzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvMUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzFBQUQvOGdBQUFBRC80d0FBQUFBQUFBQUEvL0VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOFFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOHdBQUFBQUFBQUFBLy9JQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK1lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC94QUFELzhBQUFBQUQvZUFBQUFBQUFBQUFBLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzZ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvOWNBQUFBQUFBLy84UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzVVQUFQL3pBQUFBQUFBQUFBRC84UUFBQUFBQUFBQUFBQklBQUFBQUFBQUFBQUFRLyt3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK0ZBQUQvN1FBQUFBQUFBQUFBLzlnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVArVi84TUFBQUFBQUFBQUFBQUFBQUFBQUFBQS80Z0FBQUFBQUFEL3hRQUFBQUQvN0FBQS84Ny9zQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC9WZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL1VBQUFBQUFBQUFBQUFBLzhBQUFBQUEvdlVBQUFBQS84ai9yZi9uLytzQUFQL3dBQUFBQUFBQS84a0FBQUFBQUFBQUFBQUFBQUFBQUFBQS85My8yUUFBQUFBQUFQOTVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8xQUFBQUFBQUFBQUFBQUFBQUFBSUFlQUFHQUFZQUFBQUxBQXNBQVFBUUFCQUFBZ0FTQUJJQUF3QWxBQ2tBQkFBc0FEUUFDUUE0QUQ0QUVnQkZBRWNBR1FCSkFFa0FIQUJNQUV3QUhRQlJBRlFBSGdCV0FGWUFJZ0JhQUZvQUl3QmNBRjRBSkFDS0FJb0FKd0N3QUxNQUtBQzhBTHdBTEFEQUFNQUFMUURHQU1ZQUxnRFRBTlFBTHdEV0FOWUFNUURaQU5rQU1nRGJBTjBBTXdEZkFOOEFOZ0RoQU9FQU53RGpBT01BT0FEbEFPVUFPUURyQU9zQU9nRHRBTzBBT3dEMkFQWUFQQUQ3QVBzQVBRRDlBUDRBUGdFREFRUUFRQUVKQVFrQVFnRU1BUXdBUXdFWEFSa0FSQUVyQVMwQVJ3RXdBVEFBU2dFeUFUSUFTd0ZKQVVrQVRBRnNBWElBVFFGMkFYY0FWQUlvQWlnQVZnSXFBaXNBVndKSEFrZ0FXUUpLQWtvQVd3Sk1BbklBWEFKM0Fud0Fnd0tCQXBFQWlRS1RBcHdBbWdLbEFxY0FwQUtwQXFrQXB3S3JBcXNBcUFLdEFxMEFxUUt2QXE4QXFnS3lBcklBcXdLMEFyUUFyQUsyQXJZQXJRSzRBcmdBcmdLNkFyb0Fyd0s4QXJ3QXNBSytBc29Bc1FMTUFzd0F2Z0xPQXM0QXZ3TFFBdEFBd0FMYkF0c0F3UUxkQXQwQXdnTGZBdDhBd3dMaEF1RUF4QUxqQXVNQXhRTGxBdVVBeGdMbkF1Y0F4d0xwQXVrQXlBTHJBdXNBeVFMdEF1MEF5Z0x2QXZjQXl3TlRBMWdBMUFOYkEyb0EyZ050QTIwQTZnTnhBM0VBNndOekEzTUE3QU4zQTNjQTdRTjZBM3NBN2dOOUE0WUE4QU9JQTRvQStnT01BNUVBL1FPVEE1a0JBd09mQTZBQkNnT2lBNklCREFPa0E2UUJEUU9tQTZrQkRnT3NBN0VCRWdPekE3TUJHQU8zQTdnQkdRTzlBOGdCR3dQTEE4d0JKd1BPQTlFQktRUFlBOWtCTFFQZEE5MEJMd1BmQStVQk1BUHFBK3NCTndQdkJCY0JPUVFaQkJrQllnUWJCQ2dCWXdRd0JEQUJjUVF6QkRNQmNnUTFCRFVCY3dSQkJFWUJkQVJKQkVrQmVnUkxCRXNCZXdSTkJFMEJmQVJQQkZBQmZRUlZCRmdCZndSYkJGc0Jnd1JkQkY0QmhBUmdCR0FCaGdSa0JHUUJod1JtQkdZQmlBUnFCR29CaVFTcUJLb0JpZ0FDQVRvQUJnQUdBQjBBQ3dBTEFCMEFFQUFRQUI0QUVnQVNBQjRBSmdBbUFBRUFKd0FuQUFRQUtBQW9BQU1BS1FBcEFBVUFMQUF0QUFJQUxnQXVBQXdBTHdBdkFBa0FNQUF3QUFvQU1RQXlBQUlBTXdBekFBTUFOQUEwQUFzQU9BQTRBQVlBT1FBNUFBd0FPZ0E2QUEwQU93QTdBQkFBUEFBOEFBNEFQUUE5QUE4QVBnQStBQkVBUlFCRkFCTUFSZ0JHQUJVQVJ3QkhBQlFBU1FCSkFCWUFUQUJNQUJjQVVRQlNBQmNBVXdCVEFCZ0FWQUJVQUJVQVZnQldBQm9BV2dCYUFCa0FYQUJjQUJzQVhRQmRBQmtBWGdCZUFCd0FpZ0NLQUJVQXNBQ3dBQWNBc2dDeUFBTUF2QUM4QUJrQXdBREFBQmNBeGdER0FCVUEwd0RVQUI4QTFnRFdBQUlBMlFEWkFBNEEyd0RjQUFJQTNRRGRBQklBM3dEZkFBSUE0UURoQUFJQTR3RGpBQjhBNVFEbEFCOEE2d0RyQUFnQTdRRHRBQnNBOWdEMkFCVUErd0Q3QUNBQS9RRDlBQ0FBL2dEK0FCVUJBd0VFQUNBQkNRRUpBQ0FCRndFWEFCZ0JHQUVZQUEwQkdRRVpBQmtCS3dFckFCVUJMQUVzQUFjQkxRRXRBQWdCTUFFd0FBa0JNZ0V5QUFrQlNRRkpBQWdCYkFGdEFCMEJiZ0Z1QUI0QmJ3RnhBQjBCY2dGeUFCNEJkZ0YzQUI0Q0tBSW9BQVFDS2dJckFBTUNSd0pJQUFNQ1NnSktBQVlDVXdKVEFBUUNWQUpYQUFVQ1dBSmNBQUlDWFFKaEFBTUNZZ0psQUF3Q1pnSm1BQThDWndKdEFCTUNiZ0p1QUJRQ2J3SnlBQllDZHdKM0FCY0NlQUo4QUJnQ2dRS0NBQmtDaEFLRUFCTUNoZ0tHQUJNQ2lBS0lBQk1DaVFLSkFBUUNpZ0tLQUJRQ2l3S0xBQVFDakFLTUFCUUNqUUtOQUFRQ2pnS09BQlFDandLUEFBUUNrQUtRQUJRQ2tRS1JBQU1Da3dLVEFBVUNsQUtVQUJZQ2xRS1ZBQVVDbGdLV0FCWUNsd0tYQUFVQ21BS1lBQllDbVFLWkFBVUNtZ0thQUJZQ213S2JBQVVDbkFLY0FCWUNwUUtsQUFJQ3BnS21BQmNDcHdLbkFBSUNxUUtwQUFJQ3F3S3JBQUlDclFLdEFBSUNyd0t2QUFJQ3NnS3lBQXdDdEFLMEFBa0N0Z0syQUFvQ3VBSzRBQW9DdWdLNkFBb0N2QUs4QUFvQ3ZnSytBQUlDdndLL0FCY0N3QUxBQUFJQ3dRTEJBQmNDd2dMQ0FBSUN3d0xFQUJjQ3hRTEZBQU1DeGdMR0FCZ0N4d0xIQUFNQ3lBTElBQmdDeVFMSkFBTUN5Z0xLQUJnQ3pBTE1BQm9DemdMT0FCb0MwQUxRQUJvQzJ3TGJBQVlDM1FMZEFBWUMzd0xmQUFZQzRRTGhBQXdDNHdMakFBd0M1UUxsQUF3QzV3TG5BQXdDNlFMcEFBd0M2d0xyQUF3QzdRTHRBQkFDN3dMdkFBOEM4QUx3QUJrQzhRTHhBQThDOGdMeUFCRUM4d0x6QUJ3QzlBTDBBQkVDOVFMMUFCd0M5Z0wyQUJFQzl3TDNBQndEVkFOVUFBVURWUU5XQUFJRFZ3TlhBQU1EV0FOWUFBOERYQU5jQUFFRFhRTmRBQVVEWGdOZUFCRURYd05nQUFJRFlRTmhBQWtEWWdOakFBSURaQU5rQUFNRFpRTmxBQXNEWmdObUFBWURad05uQUE4RGFBTm9BQTREYVFOcEFBSURhZ05xQUE4RGJRTnRBQmNEY1FOeEFCZ0Rjd056QUJrRGR3TjNBQmdEZWdONkFBVURld043QUFjRGZRTitBQUlEZndOL0FBd0RnQU9CQUFrRGdnT0NBQklEaEFPRUFBRURoUU9GQUFjRGhnT0dBQVVEaUFPSkFBSURpZ09LQUFNRGpBT01BQXNEalFPTkFBUURqZ09PQUFZRGp3T1BBQTREa0FPUUFCTURrUU9SQUJZRGt3T1RBQmdEbEFPVUFCVURsUU9WQUJRRGxnT1dBQmtEbHdPWEFCc0RtQU9ZQUJZRG1RT1pBQWdEbndPZkFCa0RvQU9nQUJBRG9nT2lBQkFEcEFPa0FCQURwZ09tQUE4RHB3T25BQmtEcUFPcEFCMERyQU9zQUIwRHJRT3RBQUlEcmdPdUFCY0RzQU93QUJNRHNRT3hBQVVEc3dPekFCWUR0d08zQUEwRHVBTzRBQmtEdlFPOUFBUUR2Z08rQUJRRHZ3Ty9BQThEd0FQQUFCa0R3UVBCQUFJRHdnUENBQTREd3dQREFCc0R4QVBFQUFJRHhnUEdBQk1EeUFQSUFCTUR5d1BMQUFVRHpBUE1BQllEemdQUEFCWUQwQVBRQUE0RDBRUFJBQnNEMkFQWUFBTUQyUVBaQUJnRDNRUGRBQmdEM3dQZkFCVUQ0QVBnQUJJRDRRUGhBQmtENGdQaUFCSUQ0d1BqQUJrRDVBUGtBQklENVFQbEFCa0Q2Z1BxQUE0RDZ3UHJBQnNEOEFQd0FCTUQ4Z1B5QUJNRDlBUDBBQk1EOWdQMkFCTUQrQVA0QUJNRCtnUDZBQk1EL0FQOEFCTUQvZ1ArQUJNRUFBUUFBQk1FQWdRQ0FCTUVCQVFFQUJNRUJnUUdBQk1FQndRSEFBVUVDQVFJQUJZRUNRUUpBQVVFQ2dRS0FCWUVDd1FMQUFVRURBUU1BQllFRFFRTkFBVUVEZ1FPQUJZRUR3UVBBQVVFRUFRUUFCWUVFUVFSQUFVRUVnUVNBQllFRXdRVEFBVUVGQVFVQUJZRUZRUVZBQVVFRmdRV0FCWUVGd1FYQUFJRUdRUVpBQUlFR3dRYkFBTUVIQVFjQUJnRUhRUWRBQU1FSGdRZUFCZ0VId1FmQUFNRUlBUWdBQmdFSVFRaEFBTUVJZ1FpQUJnRUl3UWpBQU1FSkFRa0FCZ0VKUVFsQUFNRUpnUW1BQmdFSndRbkFBTUVLQVFvQUJnRU1BUXdBQmdFTXdRekFBd0VOUVExQUF3RVFRUkJBQThFUWdSQ0FCa0VRd1JEQUE4RVJBUkVBQmtFUlFSRkFBOEVSZ1JHQUJrRVNRUkpBQWtFU3dSTEFBSUVUUVJOQUFZRVR3UlBBQTRFVUFSUUFCc0VWUVJWQUFjRVZnUldBQWdFVndSWEFBNEVXQVJZQUJzRVd3UmJBQmNFWFFSZEFCOEVYZ1JlQUFjRVlBUmdBQWtFWkFSa0FBSUVaZ1JtQUFJRWFnUnFBQThFcWdTcUFBTUFBZ0Z0QUFZQUJnQUhBQXNBQ3dBSEFCQUFFQUFUQUJFQUVRQVhBQklBRWdBVEFDVUFKUUFSQUNjQUp3QUZBQ3NBS3dBRkFDNEFMZ0FjQURNQU13QUZBRFVBTlFBRkFEY0FOd0FaQURnQU9BQUtBRGtBT1FBR0FEb0FPZ0FOQURzQU93QUpBRHdBUEFBU0FEMEFQUUFPQUQ0QVBnQVVBRVVBUlFBYUFFY0FTUUFWQUVzQVN3QVZBRkVBVWdBWUFGTUFVd0FJQUZRQVZBQVlBRlVBVlFBVkFGY0FWd0FiQUZrQVdRQUxBRm9BV2dBQ0FGd0FYQUFXQUYwQVhRQUNBRjRBWGdBTUFJTUFnd0FGQUpJQWtnQUZBSk1Ba3dBVkFKY0Fsd0FGQUpnQW1BQVZBSm9BbWdBTEFMRUFzUUFSQUxJQXNnQUZBTE1Bc3dBUkFMb0F1Z0FWQUx3QXZBQUNBTUFBd0FBWUFNY0F5QUFWQU1vQXlnQUxBTkVBMFFBS0FOSUEwZ0FGQU5NQTB3QUJBTlVBMVFBS0FOa0EyUUFTQU53QTNBQUJBTjBBM1FBUUFPQUE0QUFQQU9zQTZ3QVlBTzBBN1FBV0FPOEE4QUFZQVBFQThRQUVBUElBOUFBWUFQWUE5Z0FWQVBjQTl3QVlBUGdBK0FBREFQa0ErZ0FZQVAwQS9RQVlBUDhBL3dBWUFRSUJBZ0FWQVFNQkF3QUVBUVFCQkFBWUFRY0JCd0FGQVF3QkRBQVJBUllCRmdBRkFSY0JGd0FJQVJnQkdBQU5BUmtCR1FBQ0FSb0JHZ0FGQVJ3QkhBQUZBUjBCSFFBVkFSNEJIZ0FGQVNBQklBQUZBU0VCSVFBVkFUSUJNZ0FLQVRVQk5RQVlBVGdCT0FBRkFUa0JPUUFWQVRvQk9nQUtBVVFCUkFBWUFVa0JTUUFZQVVzQlRBQVZBVkVCVVFBQkFWVUJWUUFGQVZZQlZnQVZBV2tCYWdBWEFXd0JiUUFIQVc0QmJnQVRBVzhCY1FBSEFYSUJjZ0FUQVhZQmR3QVRBaWdDS1FBRkFpc0NMQUFGQWtZQ1JnQVhBa3dDVWdBUkFsTUNVd0FGQWwwQ1lRQUZBbUlDWlFBR0FtWUNaZ0FPQW1jQ2JRQWFBbTRDY2dBVkFuY0Nkd0FZQW5nQ2ZBQUlBbjBDZ0FBTEFvRUNnZ0FDQW9NQ2d3QVJBb1FDaEFBYUFvVUNoUUFSQW9ZQ2hnQWFBb2NDaHdBUkFvZ0NpQUFhQW9rQ2lRQUZBb29DaWdBVkFvc0Npd0FGQW93Q2pBQVZBbzBDalFBRkFvNENqZ0FWQW84Q2p3QUZBcEFDa0FBVkFwSUNrZ0FWQXBRQ2xBQVZBcFlDbGdBVkFwZ0NtQUFWQXBvQ21nQVZBcHdDbkFBVkFwMENuUUFGQXA0Q25nQVZBcDhDbndBRkFxQUNvQUFWQXFFQ29RQUZBcUlDb2dBVkFxTUNvd0FGQXFRQ3BBQVZBcklDc2dBY0FyOEN2d0FZQXNFQ3dRQVlBc01DeEFBWUFzVUN4UUFGQXNZQ3hnQUlBc2NDeHdBRkFzZ0N5QUFJQXNrQ3lRQUZBc29DeWdBSUF0RUMwUUFaQXRJQzBnQWJBdE1DMHdBWkF0UUMxQUFiQXRVQzFRQVpBdFlDMWdBYkF0Y0Mxd0FaQXRnQzJBQWJBdGtDMlFBWkF0b0MyZ0FiQXRzQzJ3QUtBdDBDM1FBS0F0OEMzd0FLQXVFQzRRQUdBdUlDNGdBTEF1TUM0d0FHQXVRQzVBQUxBdVVDNVFBR0F1WUM1Z0FMQXVjQzV3QUdBdWdDNkFBTEF1a0M2UUFHQXVvQzZnQUxBdXNDNndBR0F1d0M3QUFMQXUwQzdRQUpBdThDN3dBT0F2QUM4QUFDQXZFQzhRQU9BdklDOGdBVUF2TUM4d0FNQXZRQzlBQVVBdlVDOVFBTUF2WUM5Z0FVQXZjQzl3QU1Bdm9DK2dBRkExTURVd0FSQTFjRFZ3QUZBMWdEV0FBT0Exc0RXd0FSQTE0RFhnQVVBMlFEWkFBRkEyY0Rad0FPQTJnRGFBQVNBMm9EYWdBT0Eyc0Rhd0FWQTIwRGJRQVlBMjhEYndBTEEzRURjUUFJQTNNRGN3QUNBM1lEZGdBTEEzY0Rkd0FJQTNnRGVBQUxBMzhEZndBY0E0SURnZ0FRQTRNRGd3QVJBNG9EaWdBRkE0MERqUUFGQTQ0RGpnQUtBNDhEandBU0E1QURrQUFhQTVFRGtRQVZBNUlEa2dBWUE1TURrd0FJQTVRRGxBQVlBNVVEbFFBVkE1WURsZ0FDQTVjRGx3QVdBNWdEbUFBVkE1a0RtUUFZQTVvRG1nQWJBNTREbmdBWUE1OERud0FDQTZBRG9BQUpBNklEb2dBSkE2UURwQUFKQTZZRHBnQU9BNmNEcHdBQ0E2Z0RxUUFIQTZ3RHJBQUhBNjREcmdBWUE2OERyd0FSQTdBRHNBQWFBN01Ec3dBVkE3UUR0QUFZQTdjRHR3QU5BN2dEdUFBQ0E3a0R1UUFWQTdvRHVnQUZBNzBEdlFBRkE3NER2Z0FWQTc4RHZ3QU9BOEFEd0FBQ0E4SUR3Z0FTQThNRHd3QVdBOFVEeFFBUkE4WUR4Z0FhQThjRHh3QVJBOGdEeUFBYUE4d0R6QUFWQTg0RHp3QVZBOUFEMEFBU0E5RUQwUUFXQTlVRDFRQVlBOWNEMXdBWUE5Z0QyQUFGQTlrRDJRQUlBOW9EMmdBRkE5c0Qyd0FWQTl3RDNBQUZBOTBEM1FBSUErQUQ0QUFRQStFRDRRQUNBK0lENGdBUUErTUQ0d0FDQStRRDVBQVFBK1VENVFBQ0ErWUQ1Z0FQQStjRDV3QURBK2tENlFBWUErb0Q2Z0FTQStzRDZ3QVdBK3dEN0FBVkErMEQ3UUFCQSs0RDdnQUVBKzhEN3dBUkEvQUQ4QUFhQS9FRDhRQVJBL0lEOGdBYUEvTUQ4d0FSQS9RRDlBQWFBL1VEOVFBUkEvWUQ5Z0FhQS9jRDl3QVJBL2dEK0FBYUEva0QrUUFSQS9vRCtnQWFBL3NEK3dBUkEvd0QvQUFhQS8wRC9RQVJBLzREL2dBYUEvOEQvd0FSQkFBRUFBQWFCQUVFQVFBUkJBSUVBZ0FhQkFNRUF3QVJCQVFFQkFBYUJBVUVCUUFSQkFZRUJnQWFCQWdFQ0FBVkJBb0VDZ0FWQkF3RURBQVZCQTRFRGdBVkJCQUVFQUFWQkJJRUVnQVZCQlFFRkFBVkJCWUVGZ0FWQkJzRUd3QUZCQndFSEFBSUJCMEVIUUFGQkI0RUhnQUlCQjhFSHdBRkJDQUVJQUFJQkNFRUlRQUZCQ0lFSWdBSUJDTUVJd0FGQkNRRUpBQUlCQ1VFSlFBRkJDWUVKZ0FJQkNjRUp3QUZCQ2dFS0FBSUJDa0VLUUFGQkNvRUtnQVZCQ3NFS3dBRkJDd0VMQUFWQkMwRUxRQUZCQzRFTGdBVkJDOEVMd0FGQkRBRU1BQUlCREVFTVFBRkJESUVNZ0FWQkRNRU13QUdCRFFFTkFBTEJEVUVOUUFHQkRZRU5nQUxCRGdFT0FBTEJEb0VPZ0FMQkR3RVBBQUxCRDRFUGdBTEJFQUVRQUFMQkVFRVFRQU9CRUlFUWdBQ0JFTUVRd0FPQkVRRVJBQUNCRVVFUlFBT0JFWUVSZ0FDQkVvRVNnQVlCRXdFVEFBWUJFMEVUUUFLQkU4RVR3QVNCRkFFVUFBV0JGRUVVUUFQQkZJRVVnQURCRk1FVXdBUEJGUUVWQUFEQkZZRVZnQVlCRmNFVndBU0JGZ0VXQUFXQkdNRVl3QVlCR1VFWlFBWUJHY0Vad0FZQkdnRWFBQUJCR2tFYVFBRUJHb0VhZ0FPQkhBRWNBQVhCS29FcWdBRkFBRUFBQUFLQWdZRzhBQUVSRVpNVkFBYVkzbHliQUJJWjNKbGF3QjJiR0YwYmdDa0FBUUFBQUFBLy84QUVnQUFBQW9BRkFBZUFDZ0FOQUJCQUVzQVZRQmZBR2tBY3dCOUFJY0FrUUNiQUtVQXJ3QUVBQUFBQVAvL0FCSUFBUUFMQUJVQUh3QXBBRFVBUWdCTUFGWUFZQUJxQUhRQWZnQ0lBSklBbkFDbUFMQUFCQUFBQUFELy93QVNBQUlBREFBV0FDQUFLZ0EyQUVNQVRRQlhBR0VBYXdCMUFIOEFpUUNUQUowQXB3Q3hBQ2dBQmtGYVJTQUFWRU5TVkNBQWZrMVBUQ0FBcUU1QlZpQUExRkpQVFNBQkFGUlZVaUFCTEFBQS8vOEFFd0FEQUEwQUZ3QWhBQ3NBTWdBM0FFUUFUZ0JZQUdJQWJBQjJBSUFBaWdDVUFKNEFxQUN5QUFELy93QVNBQVFBRGdBWUFDSUFMQUE0QUVVQVR3QlpBR01BYlFCM0FJRUFpd0NWQUo4QXFRQ3pBQUQvL3dBU0FBVUFEd0FaQUNNQUxRQTVBRVlBVUFCYUFHUUFiZ0I0QUlJQWpBQ1dBS0FBcWdDMEFBRC8vd0FUQUFZQUVBQWFBQ1FBTGdBNkFENEFSd0JSQUZzQVpRQnZBSGtBZ3dDTkFKY0FvUUNyQUxVQUFQLy9BQk1BQndBUkFCc0FKUUF2QURzQVB3QklBRklBWEFCbUFIQUFlZ0NFQUk0QW1BQ2lBS3dBdGdBQS8vOEFFd0FJQUJJQUhBQW1BREFBUEFCQUFFa0FVd0JkQUdjQWNRQjdBSVVBandDWkFLTUFyUUMzQUFELy93QVRBQWtBRXdBZEFDY0FNUUF6QUQwQVNnQlVBRjRBYUFCeUFId0FoZ0NRQUpvQXBBQ3VBTGdBdVdNeWMyTUVXR015YzJNRVdHTXljMk1FV0dNeWMyTUVXR015YzJNRVdHTXljMk1FV0dNeWMyTUVXR015YzJNRVdHTXljMk1FV0dNeWMyTUVXR05qYlhBRVhtTmpiWEFFWG1OamJYQUVYbU5qYlhBRVhtTmpiWEFFWG1OamJYQUVYbU5qYlhBRVhtTmpiWEFFWG1OamJYQUVYbU5qYlhBRVhtUnNhV2NFWm1Sc2FXY0VabVJzYVdjRVptUnNhV2NFWm1Sc2FXY0VabVJzYVdjRVptUnNhV2NFWm1Sc2FXY0VabVJzYVdjRVptUnNhV2NFWm1SdWIyMEViR1J1YjIwRWJHUnViMjBFYkdSdWIyMEViR1J1YjIwRWJHUnViMjBFYkdSdWIyMEViR1J1YjIwRWJHUnViMjBFYkdSdWIyMEViR1p5WVdNRWNtWnlZV01FY21aeVlXTUVjbVp5WVdNRWNtWnlZV01FY21aeVlXTUVjbVp5WVdNRWNtWnlZV01FY21aeVlXTUVjbVp5WVdNRWNteHBaMkVFZkd4cFoyRUVoR3h1ZFcwRWlteHVkVzBFaW14dWRXMEVpbXh1ZFcwRWlteHVkVzBFaW14dWRXMEVpbXh1ZFcwRWlteHVkVzBFaW14dWRXMEVpbXh1ZFcwRWlteHZZMndFa0d4dlkyd0VsbXh2WTJ3RW5HNTFiWElFb201MWJYSUVvbTUxYlhJRW9tNTFiWElFb201MWJYSUVvbTUxYlhJRW9tNTFiWElFb201MWJYSUVvbTUxYlhJRW9tNTFiWElFb205dWRXMEVxRzl1ZFcwRXFHOXVkVzBFcUc5dWRXMEVxRzl1ZFcwRXFHOXVkVzBFcUc5dWRXMEVxRzl1ZFcwRXFHOXVkVzBFcUc5dWRXMEVxSEJ1ZFcwRXJuQnVkVzBFcm5CdWRXMEVybkJ1ZFcwRXJuQnVkVzBFcm5CdWRXMEVybkJ1ZFcwRXJuQnVkVzBFcm5CdWRXMEVybkJ1ZFcwRXJuTnRZM0FFdEhOdFkzQUV0SE50WTNBRXRITnRZM0FFdEhOdFkzQUV0SE50WTNBRXRITnRZM0FFdEhOdFkzQUV0SE50WTNBRXRITnRZM0FFdEhOek1ERUV1bk56TURFRXVuTnpNREVFdW5Oek1ERUV1bk56TURFRXVuTnpNREVFdW5Oek1ERUV1bk56TURFRXVuTnpNREVFdW5Oek1ERUV1bk56TURJRXdITnpNRElFd0hOek1ESUV3SE56TURJRXdITnpNRElFd0hOek1ESUV3SE56TURJRXdITnpNRElFd0hOek1ESUV3SE56TURJRXdITnpNRE1FeG5Oek1ETUV4bk56TURNRXhuTnpNRE1FeG5Oek1ETUV4bk56TURNRXhuTnpNRE1FeG5Oek1ETUV4bk56TURNRXhuTnpNRE1FeG5Oek1EUUV6SE56TURRRXpITnpNRFFFekhOek1EUUV6SE56TURRRXpITnpNRFFFekhOek1EUUV6SE56TURRRXpITnpNRFFFekhOek1EUUV6SE56TURVRTBuTnpNRFVFMG5Oek1EVUUwbk56TURVRTBuTnpNRFVFMG5Oek1EVUUwbk56TURVRTBuTnpNRFVFMG5Oek1EVUUwbk56TURVRTBuTnpNRFlFMkhOek1EWUUySE56TURZRTJITnpNRFlFMkhOek1EWUUySE56TURZRTJITnpNRFlFMkhOek1EWUUySE56TURZRTJITnpNRFlFMkhOek1EY0Uzbk56TURjRTNuTnpNRGNFM25Oek1EY0Uzbk56TURjRTNuTnpNRGNFM25Oek1EY0Uzbk56TURjRTNuTnpNRGNFM25Oek1EY0UzblJ1ZFcwRTVIUnVkVzBFNUhSdWRXMEU1SFJ1ZFcwRTVIUnVkVzBFNUhSdWRXMEU1SFJ1ZFcwRTVIUnVkVzBFNUhSdWRXMEU1SFJ1ZFcwRTVBQUFBQUVBQUFBQUFBSUFBZ0FEQUFBQUFRQUhBQUFBQVFBWUFBQUFBd0FWQUJZQUZ3QUFBQUlBQ0FBSkFBQUFBUUFKQUFBQUFRQVVBQUFBQVFBRUFBQUFBUUFHQUFBQUFRQUZBQUFBQVFBWkFBQUFBUUFSQUFBQUFRQVRBQUFBQVFBQkFBQUFBUUFLQUFBQUFRQUxBQUFBQVFBTUFBQUFBUUFOQUFBQUFRQU9BQUFBQVFBUEFBQUFBUUFRQUFBQUFRQVNBQnNBT0FQR0JyUUhZQTN3RGZBT0JnNG9EbDRPaEE2eURzWU8yZzd1RHdBUEdnOWNEM29QbUEvS0Qvd1FMaEJDRUhvUWJCQjZFS1lBQVFBQUFBRUFDQUFDQWNRQTN3SG5BYm9CdXdHOEFiMEJ2Z0cvQWNBQndRSENBY01CeEFIRkFjWUJ4d0hJQWNrQnlnSExBY3dCelFIT0FjOEIwQUhSQWRJQjB3SG9BZWtDUkFJN0Flb0I2d0hzQWUwQjdnSHZBZkFCOFFIeUFmTUI5QUgxQWZZQjl3SDRBZmtCK2dIN0Fmd0IvUUgrQWdBQ0FRVGRBZ0lDQXdJRUFnVUNCZ0lIQWdnQ0NRSUtBZ3NDTHdJUEFoQUNFUUlVQWhVQ0ZnSVhBaGdDR1FJYkFod0NIZ0lkQXZ3Qy9RTCtBdjhEQUFNQkF3SURBd01FQXdVREJnTUhBd2dEQ1FNS0F3c0REQU1OQXc0RER3TVFBeEVERWdNVEF4UURGUU1XQXhjREdBTVpBeG9ER3dNY0F4MERIZ01mQXlBRElRTWlBeU1ESkFNbEF5WURKd01vQXlrREtnTXJBeXdETFFNdUF5OERNQU14QXpJRE13TTBBelVETmdNM0F6Z0RPUU02QXpzRFBBTTlBejREUHdOQUEwRURRZ05EQTBRRFJnTkZBMGNEU0FOSkEwb0RTd05NQTAwRFRnTlBBMUFEVVFOU0JLc0VyQVN0Qks0RXJ3U3dCTEVFc2dTekJMUUV0UVMyQkxjRXVBUzVCTG9FdXdTOEJMMEV2Z1MvQk1BRXdRVENCTU1FeEFURkJNWUIvd1RIQk1nRXlRVEtCTXNFekFUTkJNNEV6d1RRQk5FRTBnVFRCTlFFMVFUV0JOZ0UyUVRiQWhvRTNBSU9CTmNDRXdJTkJOb0NEQUlTQUFFQTN3QUlBQ1VBSmdBbkFDZ0FLUUFxQUNzQUxBQXRBQzRBTHdBd0FERUFNZ0F6QURRQU5RQTJBRGNBT0FBNUFEb0FPd0E4QUQwQVBnQmxBR2NBaFFDU0FMQUFzUUN5QUxNQXRBQzFBTFlBdHdDNEFMa0EwUURTQU5NQTFBRFZBTllBMXdEWUFOa0EyZ0RiQU53QTNRRGVBTjhBNEFEaEFPSUE0d0RrQU9VQTVnRG5BT2dCTEFFd0FUSUJPQUU2QVR3QlBnRS9BVVVCUmdGL0FZVUJpZ0dOQWtjQ1NBSktBa3dDVFFKT0FrOENVQUpSQWxJQ1V3SlVBbFVDVmdKWEFsZ0NXUUphQWxzQ1hBSmRBbDRDWHdKZ0FtRUNZZ0pqQW1RQ1pRSm1Bb01DaFFLSEFva0Npd0tOQW84Q2tRS1RBcFVDbHdLWkFwc0NuUUtmQXFFQ293S2xBcWNDcVFLckFxMENyd0t5QXJRQ3RnSzRBcm9DdkFLK0FzQUN3Z0xGQXNjQ3lRTExBczBDendMUkF0TUMxUUxaQXRzQzNRTGZBdUVDNHdMbEF1Y0M2UUxyQXUwQzd3THhBdklDOUFMMkExTURWQU5WQTFZRFZ3TllBMWtEV3dOY0ExMERYZ05mQTJBRFlRTmlBMlFEWlFObUEyY0RhQU5wQTJvRGVnTjdBM3dEZlFOK0EzOERnQU9CQTRJRGd3T0VBNFVEaGdPSEE0Z0RpUU9LQTRzRGpBT05BNDREandPN0E3MER2d1BVQTlvRDRBUkpCRXNFVHdSWEJGa0VYZ1JxQUFFQUFBQUJBQWdBQWdGMEFMY0J1Z0c3QWJ3QnZRRytBYjhCd0FIQkFjSUJ3d0hFQWNVQnhnSEhBY2dCeVFIS0Fjc0J6QUhOQWM0Qnp3SFFBZEVCMGdIVEF2MERNQUk3QWZvRXlnVExBZnNCL0FIOUFmNEIvd0lBQk00RXp3VFJCTlFFM1FJQ0FnTUNCQUlGQWdZQ0J3SUlBZ2tDQ2dJTEFmUUI5UUgyQWZjQitBSDVBaThDRHdJUUFoRUNGQUlWQWhjQ0dRTCtBdjhEQUFNQkF3SURBd01FQXdVREJnTUhBd2dEQ1FNS0F3c0REQU1OQXc0RER3TVFBeEVERWdNVEF4UURGUU1XQXhjREdBTVpBMDhER2dNYkF4d0RIUU1lQXg4RElBTWhBeUlESXdNa0F5VURKZ01uQXlnREtRTXFBeXNETEFNdEF5NERMd014QXpJRE13TTBBelVETmdNM0F6Z0RPUU02QXpzRFBBTTlBejREUHdOQUEwRURRZ05EQTBRRFJnTkZBMGNEU0FOSkEwb0RTd05NQTAwRFRnTlFBMUVEVWdUSkJNd0V6UVRRQk5JRTB3SUJCTlVFd1FUQ0JNTUV4QVRGQk1ZRXh3VElCTllFMkFUWkFoZ0Uyd0lhQk53Qy9BSU9CTmNDRXdJTkJOb0NGZ0lNQWhJQUFRQzNBRVVBUmdCSEFFZ0FTUUJLQUVzQVRBQk5BRTRBVHdCUUFGRUFVZ0JUQUZRQVZRQldBRmNBV0FCWkFGb0FXd0JjQUYwQVhnQ0hBSXdBa3dEcEFPb0E2d0RzQU8wQTdnRHZBUEFBOFFEeUFQTUE5QUQxQVBZQTl3RDRBUGtBK2dEN0FQd0EvUUQrQVA4QkFBRUJBUUlCQXdFRUFRVUJCZ0V0QVRFQk13RTVBVHNCUFFGQUFVY0NTd0puQW1nQ2FRSnFBbXNDYkFKdEFtNENid0p3QW5FQ2NnSnpBblFDZFFKMkFuY0NlQUo1QW5vQ2V3SjhBbjBDZmdKL0FvQUNnUUtDQW9RQ2hnS0lBb29DakFLT0FwQUNrZ0tVQXBZQ21BS2FBcHdDbmdLZ0FxSUNwQUttQXFnQ3FnS3NBcTRDc3dLMUFyY0N1UUs3QXIwQ3Z3TEJBc01DeGdMSUFzb0N6QUxPQXRBQzBnTFVBdFlDMmdMY0F0NEM0QUxpQXVRQzVnTG9BdW9DN0FMdUF2QUM4d0wxQXZjRGtBT1JBNUlEa3dPVUE1VURsZ09YQTVnRG1RT2FBNXNEbkFPZEE1NERud084QTc0RHdBUE9BOVVEMndQaEJFY0VTZ1JNQkZBRVdBUmFCRnNFWHdSckFBWUFBQUFHQUJJQUtnQkNBRm9BY2dDS0FBTUFBQUFCQUJJQUFRQ1FBQUVBQUFBYUFBRUFBUUJOQUFNQUFBQUJBQklBQVFCNEFBRUFBQUFhQUFFQUFRQk9BQU1BQUFBQkFCSUFBUUJnQUFFQUFBQWFBQUVBQVFLdUFBTUFBQUFCQUJJQUFRQklBQUVBQUFBYUFBRUFBUU9iQUFNQUFBQUJBQklBQVFBd0FBRUFBQUFhQUFFQUFRT2RBQU1BQUFBQkFCSUFBUUFZQUFFQUFBQWFBQUVBQVFRYUFBSUFBUUNuQUtzQUFBQUVBQUFBQVFBSUFBRUdIZ0EyQUhJQXBBQ3VBTGdBeWdEOEFRNEJHQUZLQVdRQmZnR1FBYm9CN0FIMkFoZ0NNZ0pFQW5ZQ2lBS2lBc3dDM2dNUUF4b0RKQU0yQTJnRGNnTjhBNFlEb0FPNkE4d0Q5Z1FvQkRJRVZBUnVCSUFFc2dURUJONEZDQVVhQlNRRkxnVTRCVUlGYkFXV0JjQUY2Z1lVQUFZQURnQVVBQm9BSUFBbUFDd0NUQUFDQUtjQ1RRQUNBS2dDVHdBQ0FLa0Q4UUFDQUtvRWV3QUNBS3NEN3dBQ0FLd0FBUUFFQklnQUFnQ3NBQUVBQkFLSkFBSUFxQUFDQUFZQURBU0tBQUlBckFTTUFBSUJvZ0FHQUE0QUZBQWFBQ0FBSmdBc0FsUUFBZ0NuQWxVQUFnQ29CQXNBQWdDcEJBa0FBZ0NxQkgwQUFnQ3JCQWNBQWdDc0FBSUFCZ0FNQkhjQUFnQ29BcU1BQWdHaUFBRUFCQVNPQUFJQXJBQUdBQTRBRkFBYUFDQUFKZ0FzQWxnQUFnQ25BbGtBQWdDb0FxY0FBZ0NwQkJjQUFnQ3FCSDhBQWdDckJCa0FBZ0NzQUFNQUNBQU9BQlFFa0FBQ0FLZ0VrZ0FDQUt3Q3RBQUNBYUlBQXdBSUFBNEFGQUsyQUFJQXFBU1VBQUlBckFLNEFBSUJvZ0FDQUFZQURBT3RBQUlBcUFTV0FBSUFyQUFGQUF3QUVnQVlBQjRBSkFSNUFBSUFwd0srQUFJQXFBSmNBQUlBcVFTWUFBSUFyQUxBQUFJQm9nQUdBQTRBRkFBYUFDQUFKZ0FzQWwwQUFnQ25BbDRBQWdDb0FtQUFBZ0NwQkIwQUFnQ3FCSUVBQWdDckJCc0FBZ0NzQUFFQUJBU2FBQUlBcUFBRUFBb0FFQUFXQUJ3Q3l3QUNBS2dFZ3dBQ0FLc0VuQUFDQUt3Q3pRQUNBYUlBQXdBSUFBNEFGQUxSQUFJQXFBU2VBQUlBckFMWEFBSUJvZ0FDQUFZQURBU2dBQUlBckFMYkFBSUJvZ0FHQUE0QUZBQWFBQ0FBSmdBc0FtSUFBZ0NuQW1NQUFnQ29BdUVBQWdDcEJEVUFBZ0NxQklVQUFnQ3JCRE1BQWdDc0FBSUFCZ0FNQktJQUFnQ3BCS1FBQWdDc0FBTUFDQUFPQUJRRG9BQUNBS2NEb2dBQ0FLZ0VwZ0FDQUt3QUJRQU1BQklBR0FBZUFDUURwZ0FDQUtjQ1pnQUNBS2dFUlFBQ0FLa0VRd0FDQUtvRVFRQUNBS3dBQWdBR0FBd0M4Z0FDQUtnRXFBQUNBS3dBQmdBT0FCUUFHZ0FnQUNZQUxBSm5BQUlBcHdKb0FBSUFxQUpxQUFJQXFRUHlBQUlBcWdSOEFBSUFxd1B3QUFJQXJBQUJBQVFFaVFBQ0FLd0FBUUFFQW9vQUFnQ29BQUlBQmdBTUJJc0FBZ0NzQkkwQUFnR2lBQVlBRGdBVUFCb0FJQUFtQUN3Q2J3QUNBS2NDY0FBQ0FLZ0VEQUFDQUtrRUNnQUNBS29FZmdBQ0FLc0VDQUFDQUt3QUFRQUVCSGdBQWdDb0FBRUFCQVNQQUFJQXJBQUJBQVFFR2dBQ0FLd0FBd0FJQUE0QUZBU1JBQUlBcUFTVEFBSUFyQUsxQUFJQm9nQURBQWdBRGdBVUFyY0FBZ0NvQkpVQUFnQ3NBcmtBQWdHaUFBSUFCZ0FNQTY0QUFnQ29CSmNBQWdDc0FBVUFEQUFTQUJnQUhnQWtCSG9BQWdDbkFyOEFBZ0NvQW5jQUFnQ3BCSmtBQWdDc0FzRUFBZ0dpQUFZQURnQVVBQm9BSUFBbUFDd0NlQUFDQUtjQ2VRQUNBS2dDZXdBQ0FLa0VIZ0FDQUtvRWdnQUNBS3NFSEFBQ0FLd0FBUUFFQkpzQUFnQ29BQVFBQ2dBUUFCWUFIQUxNQUFJQXFBU0VBQUlBcXdTZEFBSUFyQUxPQUFJQm9nQURBQWdBRGdBVUF0SUFBZ0NvQko4QUFnQ3NBdGdBQWdHaUFBSUFCZ0FNQktFQUFnQ3NBdHdBQWdHaUFBWUFEZ0FVQUJvQUlBQW1BQ3dDZlFBQ0FLY0NmZ0FDQUtnQzRnQUNBS2tFTmdBQ0FLb0VoZ0FDQUtzRU5BQUNBS3dBQWdBR0FBd0Vvd0FDQUtrRXBRQUNBS3dBQXdBSUFBNEFGQU9oQUFJQXB3T2pBQUlBcUFTbkFBSUFyQUFGQUF3QUVnQVlBQjRBSkFPbkFBSUFwd0tCQUFJQXFBUkdBQUlBcVFSRUFBSUFxZ1JDQUFJQXJBQUNBQVlBREFMekFBSUFxQVNwQUFJQXJBQUJBQVFDK0FBQ0FLZ0FBUUFFQXZvQUFnQ29BQUVBQkFMNUFBSUFxQUFCQUFRQyt3QUNBS2dBQlFBTUFCSUFHQUFlQUNRQ2N3QUNBS2NDZEFBQ0FLZ0NxQUFDQUtrRUdBQUNBS29FZ0FBQ0FLc0FCUUFNQUJJQUdBQWVBQ1FFS3dBQ0FLY0VLUUFDQUtnRUx3QUNBS2tFTFFBQ0FLb0VNUUFDQUt3QUJRQU1BQklBR0FBZUFDUUVMQUFDQUtjRUtnQUNBS2dFTUFBQ0FLa0VMZ0FDQUtvRU1nQUNBS3dBQlFBTUFCSUFHQUFlQUNRRU9RQUNBS2NFTndBQ0FLZ0VQUUFDQUtrRU93QUNBS29FUHdBQ0FLd0FCUUFNQUJJQUdBQWVBQ1FFT2dBQ0FLY0VPQUFDQUtnRVBnQUNBS2tFUEFBQ0FLb0VRQUFDQUt3QUFRQUVCSWNBQWdDb0FBSUFFUUFsQUNrQUFBQXJBQzBBQlFBdkFEUUFDQUEyQURzQURnQTlBRDRBRkFCRkFFa0FGZ0JMQUUwQUd3QlBBRlFBSGdCV0FGc0FKQUJkQUY0QUtnQ0JBSUVBTEFDREFJTUFMUUNHQUlZQUxnQ0pBSWtBTHdDTUFJd0FNQUNYQUpvQU1RRFBBTThBTlFBQkFBQUFBUUFJQUFFQUJnQUNBQUVBQWdMVkF0WUFBUUFBQUFFQUNBQUNBQTRBQkFUZUJOOEU0QVRoQUFFQUJBS0hBb2dDbVFLYUFBUUFBQUFCQUFnQUFRQW1BQUlBQ2dBY0FBSUFCZ0FNQWFNQUFnQktBYWdBQWdCWUFBRUFCQUdwQUFJQVdBQUJBQUlBU2dCWEFBUUFBQUFCQUFnQUFRQkVBQUlBQ2dBVUFBRUFCQUdrQUFJQVRRQUJBQVFCcGdBQ0FFMEFCQUFBQUFFQUNBQUJBQjRBQWdBS0FCUUFBUUFFQWFVQUFnQlFBQUVBQkFHbkFBSUFVQUFCQUFJQVNnR2pBQUVBQUFBQkFBZ0FBUUFHQVpVQUFRQUJBRXNBQVFBQUFBRUFDQUFCQUFZQkp3QUJBQUVBdWdBQkFBQUFBUUFJQUFFQUJnR3NBQUVBQVFBMkFBRUFBQUFCQUFnQUFnQWNBQUlCNHdIa0FBRUFBQUFCQUFnQUFnQUtBQUlCNVFIbUFBRUFBZ0F2QUU4QUFRQUFBQUVBQ0FBQ0FCNEFEQUlvQWlvQ0tRSXJBaXdDSHdJZ0FpRUNJZ0d1QWlRQ0pRQUJBQXdBSndBb0FDc0FNd0ExQUVZQVJ3QklBRXNBVXdCVUFGVUFBUUFBQUFFQUNBQUNBQXdBQXdJbUFpY0NKd0FCQUFNQVNRQkxBaUlBQVFBQUFBRUFDQUFDQUdZQUNBSTlBaTBDTGdJd0FqRUNPUUk2QWp3QUFRQUFBQUVBQ0FBQ0FCWUFDQUFiQUJVQUZnQVhBQmdBR1FBZEFCUUFBUUFJQWEwQ0l3UnhCSElFY3dSMEJIVUVkZ0FCQUFBQUFRQUlBQUlBRmdBSUJIWUNJd1J4QkhJRWN3UjBBYTBFZFFBQkFBZ0FGQUFWQUJZQUZ3QVlBQmtBR3dBZEFBRUFBQUFCQUFnQUFnQVdBQWdBRlFBV0FCY0FHQUFaQUJzQUhRQVVBQUVBQ0FJdEFpNENNQUl4QWprQ09nSThBajBBQVFBQUFBRUFDQUFCQUFZQmFRQUJBQUVBRXdBR0FBQUFBUUFJQUFNQUFRQVNBQUVBVWdBQUFBRUFBQUFhQUFJQUFnRjhBWHdBQUFIVUFkMEFBUUFCQUFBQUFRQUlBQUVBS0FIQUFBRUFBQUFCQUFnQUFnQWFBQW9DTWdCNkFITUFkQUl6QWpRQ05RSTJBamNDT0FBQ0FBRUFGQUFkQUFBQUFRQUFBQUVBQ0FBQ0FDWUFFQUhVQWRVQjFnSFhBZGdCMlFIYUFkc0IzQUhkQWtBQ1BnSkJBa0lDUHdKREFBRUFFQUFVQUJVQUZnQVhBQmdBR1FBYUFCc0FIQUFkQUUwQVRnS3VBNXNEblFRYSIsCiAgIlJvYm90by1NZWRpdW0udHRmIjogIkFBRUFBQUFSQVFBQUJBQVFSMUJQVTMycWNZd0FBZ2lvQUFCWkRFZFRWVUpNbkNqZ0FBSmh0QUFBR1doUFV5OHlvUXV4dGdBQUFaZ0FBQUJnWTIxaGNFQW1TSElBQUJwc0FBQVN5R04yZENBRWx5dEtBQUF2dkFBQUFGWm1jR2R0ZS9saHF3QUFMVFFBQUFHOFoyRnpjQUFJQUJNQUFnaWNBQUFBREdkc2VXYXVubUxwQUFBNTNBQUJ5OHhvWkcxNFBUODhJQUFBRllBQUFBVHNhR1ZoWlBoN3F3Z0FBQUVjQUFBQU5taG9aV0VLN3dxYkFBQUJWQUFBQUNSb2JYUjRKUE5FOVFBQUFmZ0FBQk9JYkc5allkM2VacTBBQURBVUFBQUp4bTFoZUhBSEVnTDFBQUFCZUFBQUFDQnVZVzFsUFdOdlRBQUNCYWdBQUFMVWNHOXpkUDl0QUdRQUFnaDhBQUFBSUhCeVpYQWJzZmcyQUFBdThBQUFBTXdBQVFBQUFBSUFBQkZBcEcxZkR6ejFBQnNJQUFBQUFBREU4QkV1QUFBQUFORGJUcFQ2SlAzVkNWd0ljd0FBQUFrQUFnQUFBQUFBQUFBQkFBQUhiUDRNQUFBSmEvb2sva0VKWEFBQkFBQUFBQUFBQUFBQUFBQUFBQUFFNGdBQkFBQUU0Z0NQQUJZQVRnQUZBQUVBQUFBQUFBNEFBQUlBQWhZQUJnQUJBQU1FbFFIMEFBVUFBQVdhQlRNQUFBRWZCWm9GTXdBQUE5RUFaZ0lBQUFBQ0FBQUFBQUFBQUFBQTRBQUsvMUFBSVg4QUFBQWhBQUFBQUVkUFQwY0FRQUFBLy8wR0FQNEFBR1lIbWdJQUlBQUJud0FBQUFBRU9nV3dBQ0FBSUFBQ0E0d0FaQUFBQUFBQUFBQUFBZjRBQUFIK0FBQUNKUUNQQXBnQVpRVGlBR0FFakFCa0JlQUFZd1VkQUZZQldnQlNBc29BZ0FMU0FDZ0RpUUFiQkhVQVJBSENBQndDb0FCSEFqd0Fod01xQUFJRWpBQnBCSXdBcUFTTUFGRUVqQUJQQkl3QU5BU01BSUVFakFCMUJJd0FSUVNNQUdnRWpBQmRBaDhBZ2dIbkFDNEVFUUEvQkhvQWtRUXFBSUFENUFBOEJ5Z0FXd1ZUQUJJRkRBQ1VCVGtBWmdVNkFKUUVoZ0NVQkdVQWxBVnlBR29GcndDVUFrSUFvd1J4QUMwRkN3Q1VCRlFBbEFjQkFKUUZyZ0NVQllZQVpnVWRBSlFGaGdCZ0JQNEFsQVRVQUVvRTJ3QXRCVGNBZlFVdEFCSUhDZ0F3QlJBQUtRVGdBQWNFMFFCUUFqRUFoQU5ZQUJRQ01RQU1BMnNBTlFPY0FBTUNsQUF4QkZRQVdnU0JBSHdFTUFCUEJJUUFUd1JMQUZNQzFnQXRCSWtBVWdSeEFIa0NDd0I5QWdIL3RRUXRBSDBDQ3dDTUJ2WUFmQVJ6QUhrRWpnQlBCSUVBZkFTTEFFOEMwQUI4QkNFQVN3S3BBQWdFY2dCM0EvVUFGZ1h5QUNFRUJnQWZBK1VBREFRR0FGSUNyd0E0QWdJQXJnS3ZBQnNGVVFCMUFoNEFoZ1I5QUdRRXRRQmVCWjBBWFFUZ0FCa0IvQUNJQlBnQVdnT0ZBRjBHUkFCWEE1RUFqUVBpQUZjRWJRQi9Ca1FBVndQYkFJY0RDZ0IvQkVvQVh3TDJBRHdDOWdBM0Fwc0FjQVM3QUpJRDdRQkZBa0lBamdJUUFHMEM5Z0NBQTZjQWR3UGlBRjBGMEFCWkJpc0FVQVpYQUdjRDVBQkNCNFgvOWdSRUFFMEZoQUJwQk1vQWxBVG5BSWdHd1FCSUJLY0Fad1NSQUVNRWlBQlBCSmNBZ2dXd0FCOENHZ0NQQkpnQWpnUmtBQ0lDVHdBaEJaTUFrQVNJQUg0SHRBQmtCem9BV3dJTUFJc0ZpQUJSQXRELzVBV0tBRmdFbmdCUEJhUUFmUVR5QUhjQ0p2KzFCRHdBV1FQbUFKUURzQUJ5QTl3QWh3TjhBSFVDQ3dDQkFySUFlQUpOQUNrRDJBQjZBeDhBU1FKc0FJSUFBUHlPQUFEOVhnQUEvSE1BQVAwK0FBRDhEQUFBL1J3Q1hRREdCRHdBWndKQ0FJNEVkUUNiQmI4QUdRVjZBRnNGT0FBZ0JKQUFiQVd4QUpzRWtBQkhCZThBU2dXcUFFUUZXd0JyQklRQVZnVEdBSllFRGdBZ0JJZ0FWQVJnQUdBRUdnQmhCSWdBZmdTaEFITUNxZ0NwQkdvQUZnUVRBR1FFOHdBdEJJZ0FnQVEzQUZJRWtBQlNCQzBBUHdSZ0FJQUYwQUJFQmNrQVR3YVVBR1lFc3dCMkJIdi80UVp4QURNRi9nQWlCVmtBYUFpSUFDMElqd0NiQmxzQU1RV3FBSklGQ0FDUUJnWUFKQWVpQUJZRTFnQkpCYWdBbEFXcEFDMEZDZ0E1Qmw4QVR3WDVBSklGaVFDT0I1c0FtQWY1QUpnR0dnQVlCdmtBbXdVSEFKQUZVQUJyQjFRQW9BVDNBQ0FFZlFCYkJJOEFqd05hQUlVRTlnQW5CbllBSGdRV0FFMEVtQUNHQkc0QWp3U2FBQ0VHQXdDUEJKY0FoZ1NZQUlZRDlRQWpCZE1BVkFUVEFJWUVaZ0JmQm80QWhnYnNBSDRGRndBZkJtOEFqd1JvQUk4RVBBQlJCb1FBa1FSd0FDY0VjZi9iQkR3QVZBYlJBQjRHNUFDR0JJbi83Z1NZQUlZSFNRQ0lCazhBY0FSbi8rQUhLQUNZQmdFQWhnVU1BQndFWUFBS0IwSUFyQVkyQUowRzdRQ0FCZVlBZ2dreUFLTUgrUUNQQkNBQUtBUHdBRE1GZWdCZkJJZ0FUd1VhQUJBRURnQWdCWG9BWHdTSUFFOEhSUUNJQmtRQWRBZEpBSWdHVHdCd0JSb0FaZ1JLQUZ3RS93QnRBQUQ4WmdBQS9ITUFBUDE3QUFEOXBRQUEraVFBQVBwTkJHZi80QVVUQUpRRWhnQjhCR29BandPaEFINEV0d0NiQkNBQWZnVXNBSkFFcXdDT0JwVUFOQVdrQUQwSDBBQ1VCYW9BZmdoSEFKc0c5UUIrQmlvQVp3VC9BR0VITVFBdEJYQUFKZ1YwQUlBRWN3QjBCWWNBaFFZa0FCWUV3Ly9MQlNFQWtBUjRBSTRGcndDYkJJZ0FmZ1dJQUZFRXBnQmJCS1lBWFFUSEFEUURVd0F0QlFjQVVnYnhBR2dHM1FCZUJsTUFQQVVvQUM4RWV3QklCRDRBZEFlK0FFSUduUUJBQi8wQWxBYWVBSGNGQkFCZEJDd0FWUVdxQUNFRkhRQkVCVlVBZ1FNc0FHY0VGQUFBQ0NrQUFBUVVBQUFJS1FBQUFya0FBQUlLQUFBQlhBQUFCSDhBQUFJd0FBQUJvZ0FBQU5FQUFBQUFBQUFDb1FCSEFxRUFSd1VwQUowR01BQ0JBNTBBQkFIQUFHTUJ2QUF6QWM0QU1nR29BRW9ERkFCc0F4c0FRQU1JQURJRVhRQkFCSmtBWEFMTEFJZ0QrZ0NLQmFZQWlnRnNBRWNIcHdCS0FuSUFiQUpwQUZRRG5BQXRBdllBTlFOY0FHa0V0UUJmQm5BQUlRYTRBSmdJa3dDVUI0Z0FOUWFNQUh3RWpBQmVCZlVBSVFRMEFDZ0VvZ0FoQlY0QVR3VjlBQ2dGNUFCd0ErSUFUQWd1QUpBRkNRQnRCUlFBbGdZMUFGa0czUUJVQnRFQVd3YWlBRmdFa1FCaUJaWUFwZ1RaQUVBRWd3Q2VCTElBT3doRkFGNENMZit2Qkk0QVpRUjZBSkVFRVFBOEJDb0FnQVFNQUNRQ1d3Q2hBcGdBWXdIeEFFVUZHd0F0QktnQUdBUzhBQzBISXdBdEJ5TUFMUVVSQUMwR3R3QkxBQUFBQUFnd0FGa0lOUUJjQkRNQU9nU1RBRThDRVArd0FiTUFYQU9oQUhVRG9RQjFBNkVBZFFRTEFIVUVDd0IxQkF2L1RBUUxBSG9Eb1FCMUFnVUFsQVNlQUFrRVlBQjJCSUFBVHdSNkFIWUQ0QUIyQThVQWRnU21BRlFFM2dCMkFmd0FoUVBWQUNRRVd3QjJBN2tBZGdZR0FIWUUzUUIyQk1BQVR3UnRBSFlFd0FCTUJGd0FkZ1EwQUQ0RU93QWtCSVFBWndSN0FBa0dCd0FvQkY0QUZRUThBQVVFS2dCQkF2WUFTd0wyQUlBQzlnQThBdllBTndMMkFEVUM5Z0JQQXZZQVRRTDJBRFlDOWdCTEF2WUFSZ081QUpBQ3NnQ1dCRHNBQ2dTN0FGWUZSQUNiQlNnQW13UXdBSUVGT1FDYkJDMEFnUVEwQUQ0RVpnQTRCRTBBRGdPNUFIWUVld0FKQk1BQVR3UjdBQWtEbUFCQ0JOZ0FkZ1FaQUVRRm5RQlFCVlFBVUFUa0FGOEZrUUFrQklBQVR3ZFVBQ1FIVndCMkJaY0FKQVRYQUhZRWNRQjJCVmtBSndZNkFCb0VSZ0JDQk9RQWRnUmNBSFlFeXdBa0JFWUFId1ZkQUhZRWpBQkJCb1FBZGdjS0FIWUZXZ0FLQmlBQWRnUm5BSFlFZ0FBOEJwSUFkZ1NJQUVNRUlnQUtCcElBR2dTZEFIWUZHZ0IyQlc0QUpBWHdBRThFV2dBRkJNUUFGUWFWQUNRRWpBQkJCSXdBZGdYK0FBb0UwZ0JQQkVZQVFnVEFBRThFWmdBNEEvY0FSZ2cyQUhZRTZ3QW9CSWdBZkFROUFGQUVtQUJQQTZRQVd3U2hBRXdFbEFCOEJKOEFUd1JMQUZNRWlRQlJCWG9BYXdXaUFHc0ZoZ0NiQmVBQWF3WGlBR3NFR3dDWEJJSUFiZ081QUhZRVZ3QVBCTDRBTlFMMkFFc0M5Z0ExQXZZQVR3TDJBRTBDOWdBMkF2WUFTd0wyQUVZRWF3Qm1CQzRBUXdhWUFFOEV0QUJ6Qk9zQVlnSW0vN1VDSnYrMUFoc0Fqd0liLy9zQ0d3Q1BCR0FBZGdIK0FBQUNvQUJIQlZqLzl3VlkvL2NFai8vVUJOc0FMUUtwLytnRlV3QVNCVk1BRWdWVEFCSUZVd0FTQlZNQUVnVlRBQklGVXdBU0JUa0FaZ1NHQUpRRWhnQ1VCSVlBbEFTR0FKUUNRdi9JQWtJQW93SkMvOHNDUXYrL0JhNEFsQVdHQUdZRmhnQm1CWVlBWmdXR0FHWUZoZ0JtQlRjQWZRVTNBSDBGTndCOUJUY0FmUVRnQUFjRVZBQmFCRlFBV2dSVUFGb0VWQUJhQkZRQVdnUlVBRm9FVkFCYUJEQUFUd1JMQUZNRVN3QlRCRXNBVXdSTEFGTUNHdiswQWhvQWp3SWEvN2NDR3YrckJITUFlUVNPQUU4RWpnQlBCSTRBVHdTT0FFOEVqZ0JQQkhJQWR3UnlBSGNFY2dCM0JISUFkd1BsQUF3RDVRQU1CVk1BRWdSVUFGb0ZVd0FTQkZRQVdnVlRBQklFVkFCYUJUa0FaZ1F3QUU4Rk9RQm1CREFBVHdVNUFHWUVNQUJQQlRrQVpnUXdBRThGT2dDVUJSb0FUd1NHQUpRRVN3QlRCSVlBbEFSTEFGTUVoZ0NVQkVzQVV3U0dBSlFFU3dCVEJJWUFsQVJMQUZNRmNnQnFCSWtBVWdWeUFHb0VpUUJTQlhJQWFnU0pBRklGY2dCcUJJa0FVZ1d2QUpRRWNRQjVBa0wvc3dJYS81OENRdis1QWhyL3BRSkMvOThDR3YvTEFrSUFGd0lMQUFBQ1FnQ2RCck1Bb3dRTUFIMEVjUUF0QWliL3RRVUxBSlFFTFFCOUJGUUFsQUlMQUlvRVZBQ1VBZ3NBVlFSVUFKUUNvUUNNQkZRQWxBTG5BSXdGcmdDVUJITUFlUVd1QUpRRWN3QjVCYTRBbEFSekFIa0VjLytsQllZQVpnU09BRThGaGdCbUJJNEFUd1dHQUdZRWpnQlBCUDRBbEFMUUFId0UvZ0NVQXRBQVR3VCtBSlFDMEFBNEJOUUFTZ1FoQUVzRTFBQktCQ0VBU3dUVUFFb0VJUUJMQk5RQVNnUWhBRXNFMUFCS0JDRUFTd1RiQUMwQ3FRQUlCTnNBTFFLcEFBZ0Uyd0F0QXRFQUNBVTNBSDBFY2dCM0JUY0FmUVJ5QUhjRk53QjlCSElBZHdVM0FIMEVjZ0IzQlRjQWZRUnlBSGNGTndCOUJISUFkd2NLQURBRjhnQWhCT0FBQndQbEFBd0U0QUFIQk5FQVVBUUdBRklFMFFCUUJBWUFVZ1RSQUZBRUJnQlNCNFgvOWdiQkFFZ0ZoQUJwQklnQVR3UjYvNllFZXYrbUJEc0FKQVNlQUFrRW5nQUpCSjRBQ1FTZUFBa0VuZ0FKQko0QUNRU2VBQWtFZ0FCUEErQUFkZ1BnQUhZRDRBQjJBK0FBZGdIOC82WUIvQUNEQWZ6L3FRSDgvNTBFM1FCMkJNQUFUd1RBQUU4RXdBQlBCTUFBVHdUQUFFOEVoQUJuQklRQVp3U0VBR2NFaEFCbkJEd0FCUVNlQUFrRW5nQUpCSjRBQ1FTQUFFOEVnQUJQQklBQVR3U0FBRThFZWdCcUErQUFkZ1BnQUhZRDRBQjJBK0FBZGdQZ0FIWUVwZ0JVQktZQVZBU21BRlFFcGdCVUJONEFkZ0g4LzVFQi9QK1hBZnovdlFIOEFCVUIvQUI4QTlVQUpBUmJBSFlEdVFCMkE3a0FkZ081QUhZRHVRQjJCTjBBZGdUZEFIWUUzUUIyQk1BQVR3VEFBRThFd0FCUEJGd0FkZ1JjQUhZRVhBQjJCRFFBUGdRMEFENEVOQUErQkRRQVBnUTdBQ1FFT3dBa0JEc0FKQVNFQUdjRWhBQm5CSVFBWndTRUFHY0VoQUJuQklRQVp3WUhBQ2dFUEFBRkJEd0FCUVFxQUVFRUtnQkJCQ29BUVFWVEFCSUU2djlLQmhQL1V3S20vMVlGbXYrbkJVVCs0UVZ2LzdJQ3F2K0hCVk1BRWdVTUFKUUVoZ0NVQk5FQVVBV3ZBSlFDUWdDakJRc0FsQWNCQUpRRnJnQ1VCWVlBWmdVZEFKUUUyd0F0Qk9BQUJ3VVFBQ2tDUXYrL0JPQUFCd1NFQUZZRVlBQmdCSWdBZmdLcUFLa0VZQUNBQkpnQWpnU09BRThFdXdDU0EvVUFGZ1FHQUI4Q3F2L01CR0FBZ0FTT0FFOEVZQUNBQnBRQVpnU0dBSlFFZFFDYkJOUUFTZ0pDQUtNQ1F2Ky9CSEVBTFFVb0FKc0ZDd0NVQlFvQU9RVlRBQklGREFDVUJIVUFtd1NHQUpRRnFBQ1VCd0VBbEFXdkFKUUZoZ0JtQmJFQW13VWRBSlFGT1FCbUJOc0FMUVVRQUNrRVZBQmFCRXNBVXdTWUFJWUVqZ0JQQklFQWZBUXdBRThENVFBTUJBWUFId1JMQUZNRFdnQ0ZCQ0VBU3dJTEFIMENHdityQWdIL3RRUnVBSThENVFBTUJ3b0FNQVh5QUNFSENnQXdCZklBSVFjS0FEQUY4Z0FoQk9BQUJ3UGxBQXdCV2dCU0FwZ0FaUVJLQUk4Q0p2K3hBYndBTXdjQkFKUUc5Z0I4QlZNQUVnUlVBRm9FaGdDVUJhZ0FsQVJMQUZNRW1BQ0dCYW9BUkFYSkFFOEZHZ0FRQkE3LzhRaHpBRThKYXdCbUJOWUFTUVFXQUUwRk9RQm1CREFBVHdUZ0FBY0VEZ0FnQWtJQW93ZWlBQllHZGdBZUFrSUFvd1ZUQUJJRVZBQmFCVk1BRWdSVUFGb0hoZi8yQnNFQVNBU0dBSlFFU3dCVEJZZ0FVUVE4QUZrRVBBQlpCNklBRmdaMkFCNEUxZ0JKQkJZQVRRV29BSlFFbUFDR0JhZ0FsQVNZQUlZRmhnQm1CSTRBVHdWNkFGOEVpQUJQQlhvQVh3U0lBRThGVUFCckJEd0FVUVVLQURrRDVRQU1CUW9BT1FQbEFBd0ZDZ0E1QStVQURBV0pBSTRFWmdCZkJ2a0Ftd1p2QUk4RkVBQXBCQVlBSHdTRUFFOEZxUUF0QkpvQUlRVlRBQklFVkFCYUJWTUFFZ1JVQUZvRlV3QVNCRlFBV2dWVEFCQUVWUCthQlZNQUVnUlVBRm9GVXdBU0JGUUFXZ1ZUQUJJRVZBQmFCVk1BRWdSVUFGb0ZVd0FTQkZRQVdnVlRBQklFVkFCYUJWTUFFZ1JVQUZvRlV3QVNCRlFBV2dTR0FKUUVTd0JUQklZQWxBUkxBRk1FaGdDVUJFc0FVd1NHQUpRRVN3QlRCSWIvMVFSTC80NEVoZ0NVQkVzQVV3U0dBSlFFU3dCVEJJWUFsQVJMQUZNQ1FnQ2pBaG9BandKQ0FKUUNDd0I0QllZQVpnU09BRThGaGdCbUJJNEFUd1dHQUdZRWpnQlBCWVlBSndTTy82TUZoZ0JtQkk0QVR3V0dBR1lFamdCUEJZWUFaZ1NPQUU4RmlnQllCSjRBVHdXS0FGZ0VuZ0JQQllvQVdBU2VBRThGaWdCWUJKNEFUd1dLQUZnRW5nQlBCVGNBZlFSeUFIY0ZOd0I5QkhJQWR3V2tBSDBFOGdCM0JhUUFmUVR5QUhjRnBBQjlCUElBZHdXa0FIMEU4Z0IzQmFRQWZRVHlBSGNFNEFBSEErVUFEQVRnQUFjRDVRQU1CT0FBQndQbEFBd0VvZ0JQQktJQVR3VW9BSnNFYmdDUEJhOEFsQVNYQUlZRTJ3QXRBL1VBSXdVUUFDa0VCZ0FmQllrQWpnUm1BRjhGaVFDT0JHWUFYd1IxQUpzRFdnQ0ZCNklBRmdaMkFCNEdKQUFXQk1QL3l3UnhBSGtGQi8vUUJRZi8wQVIxLy9BRFd2L2lCVHovNHdSRS82NEZxQUNVQkpnQWhnV3ZBSlFFbHdDR0J3RUFsQVlEQUk4RnFRQXRCSm9BSVFUZ0FBY0VEZ0FnQlJBQUtRUUdBQjhFWUFCZ0JHVUFBZ1l3QUlFRWpBQlJCSXdBVHdTTUFEUUVqQUNCQktBQVhRUzBBSDBGY2dCcUJJa0FVZ1d1QUpRRWN3QjVCVk1BRWdSVUFBMEVoZ0JJQkVzQUFRSkMvdllDR3Y3aUJZWUFaZ1NPQUJZRS9nQXlBdEQvYmdVM0FIRUVjZ0FQQk4vK3JBVU1BSlFFZ1FCOEJUb0FsQVNFQUU4Rk9nQ1VCSVFBVHdXdkFKUUVjUUI1QlFzQWxBUXRBSDBGQ3dDVUJDMEFmUVJVQUpRQ0N3QjRCd0VBbEFiMkFId0ZyZ0NVQkhNQWVRVWRBSlFFZ1FCOEJQNEFsQUxRQUhJRTFBQktCQ0VBU3dUYkFDMENxUUFJQlMwQUVnUDFBQllGTFFBU0EvVUFGZ2NLQURBRjhnQWhCTkVBVUFRR0FGSUZ6UDRjQko0QUNRUWMveW9GR3Y4M0Fqai9PUVRLLzVNRWVQN29CTzcvcEFTZUFBa0VZQUIyQStBQWRnUXFBRUVFM2dCMkFmd0FoUVJiQUhZR0JnQjJCTUFBVHdSdEFIWUVPd0FrQkR3QUJRUmVBQlVCL1ArZEJEd0FCUVBnQUhZRHVRQjJCRFFBUGdIOEFJVUIvUCtkQTlVQUpBUmJBSFlFUmdBZkJKNEFDUVJnQUhZRHVRQjJBK0FBZGdUa0FIWUdCZ0IyQk40QWRnVEFBRThFMkFCMkJHMEFkZ1NBQUU4RU93QWtCRjRBRlFSR0FFSUUzZ0IyQklBQVR3UThBQVVGL2dBS0JPUUFkZ1JHQUI4Rm5RQlFCVk1BRWdSVUFGb0VoZ0NVQkVzQVV3SWFBSGdBQUFBQkFBQUU1QWtMQkFBQUFnSUNBd1lGQndZQ0F3TUVCUUlEQXdRRkJRVUZCUVVGQlFVRkFnSUZCUVVFQ0FZR0JnWUZCUVlHQXdVR0JRZ0dCZ1lHQmdVRkJnWUlCZ1VGQWdRQ0JBUURCUVVGQlFVREJRVUNBZ1VDQ0FVRkJRVURCUU1GQkFjRkJBVURBZ01HQWdVRkJnVUNCZ1FIQkFRRkJ3UURCUU1EQXdVRUF3SURCQVFIQndjRUNBVUdCUVlJQlFVRkJRWUNCUVVEQmdVSkNBSUdBd1lGQmdZQ0JRUUVCQVFDQXdNRUJBTUFBQUFBQUFBREJRTUZCZ1lHQlFZRkJ3WUdCUVVGQlFVRkJRVURCUVVHQlFVRkJRVUhCd2NGQlFjSEJnb0tCd1lHQndrRkJnWUdCd2NHQ1FrSENBWUdDQVlGQlFRR0J3VUZCUVVIQlFVRUJ3VUZCd2dHQndVRkJ3VUZCUWdJQlFVSUJ3VUlCd1lGQ0FjSUJ3b0pCUVFHQlFZRkJnVUlCd2dIQmdVR0FBQUFBQUFBQlFZRkJRUUZCUVlGQndZSkJna0lCd1lJQmdZRkJnY0ZCZ1VHQlFZRkJRVUVCZ2dJQndZRkJRa0hDUWNHQlFZR0JnUUZDUVVKQXdJQ0JRSUNBUUFEQXdZSEJBSUNBZ0lEQkFNRkJRTUVCZ0lKQXdNRUF3UUZCd2dLQ0FjRkJ3VUZCZ1lIQkFrR0JnY0lDQWNGQmdVRkJRa0NCUVVGQlFVREF3SUdCUVVJQ0FZSUFBa0pCUVVDQWdRRUJBVUZCUVVFQWdVRkJRVUVCQVVGQWdRRkJBY0ZCUVVGQlFVRkJRVUhCUVVGQXdNREF3TURBd01EQXdRREJRVUdCZ1VHQlFVRkJRUUZCUVVFQlFVR0JnWUdCUWdJQmdVRkJnY0ZCZ1VGQlFZRkJ3Z0dCd1VGQndVRkJ3VUdCZ2NGQlFjRkJRY0ZCUVVGQkFrR0JRVUZCQVVGQlFVRkJnWUdCd2NGQlFRRkJRTURBd01EQXdNRkJRY0ZCZ0lDQWdJQ0JRSURCZ1lGQlFNR0JnWUdCZ1lHQmdVRkJRVURBd01EQmdZR0JnWUdCZ1lHQmdVRkJRVUZCUVVGQlFVRkJRVUNBZ0lDQlFVRkJRVUZCUVVGQlFRRUJnVUdCUVlGQmdVR0JRWUZCZ1VHQmdVRkJRVUZCUVVGQlFVR0JRWUZCZ1VHQlFZRkF3SURBZ01DQXdJRENBVUZBZ1lGQlFJRkFnVURCUU1HQlFZRkJnVUZCZ1VHQlFZRkJnTUdBd1lEQlFVRkJRVUZCUVVGQlFVREJRTUZBd1lGQmdVR0JRWUZCZ1VHQlFnSEJRUUZCUVVGQlFVRkNBZ0dCUVVGQlFVRkJRVUZCUVVGQkFRRUJBSUNBZ0lGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQkFRRUJBUUZCUVVGQlFJQ0FnSUNCQVVFQkFRRUJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUWNGQlFVRkJRWUdCd01HQmdZREJnWUZCUVlEQmdnR0JnWUZCUVlEQlFVRkJRTUZCUVVGQkFVREJRVUZCd1VGQlFNREJRWUdCZ1lHQlFVR0NBWUdCZ1lHQlFZRkJRVUZCUVVFQlFVRUJRSUNBZ1VFQ0FjSUJ3Z0hCUVFDQXdVQ0FnZ0lCZ1VGQmdVRkJnY0dCUW9MQlFVR0JRVUZBd2tIQXdZRkJnVUlDQVVGQmdVRkNRY0ZCUVlGQmdVR0JRWUZCZ1VHQlFZRUJnUUdCQVlGQ0FjR0JRVUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUdCUVlGQmdVR0JRVUZCUVVGQlFVRkJRVUZCUVVGQlFVREFnTUNCZ1VHQlFZRkJnVUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUdCUVlHQmdZR0JnWUdCZ1lGQkFVRUJRUUZCUVlGQmdVRkJBWUZCZ1VHQlFVRUNRY0hCUVVHQmdVRUJnVUdCUVlGQ0FjR0JRVUZCZ1VGQlFjRkJRVUZCUVVHQlFZRkJnVUZCUU1DQmdVR0F3WUZCUVlGQmdVR0JRWUZCZ1VHQlFVQ0NBZ0dCUVlGQmdNRkJRVURCZ1FHQkFnSEJRVUhCUVVHQXdVRkJnVUZCQVVGQWdVSEJRVUZCUVVDQlFRRUJRSUNCQVVGQlFVRUJBWUhCUVVGQlFVRkJRVUZCUVVIQmdVR0JnVUZCUUlBQUFBREFBQUFBd0FBQUJ3QUF3QUJBQUFBSEFBREFBb0FBQWFJQUFRR2JBQUFBT29BZ0FBR0FHb0FBQUFDQUEwQWZnQ2dBS3dBclFDL0FNWUF6d0RtQU84QS9nRVBBUkVCSlFFbkFUQUJVd0ZmQVdjQmZnRi9BWThCa2dHaEFiQUI4QUgvQWhzQ053SlpBcndDeHdMSkF0MEM4d01CQXdNRENRTVBBeU1EaWdPTUE1SURvUU93QTdrRHlRUE9BOUlEMWdRbEJDOEVSUVJQQkdJRWJ3UjVCSVlFemdUWEJPRUU5UVVCQlJBRkV4NEJIajhlaFI3eEh2TWUrUjlOSUFzZ0VTQVZJQjRnSWlBbklEQWdNeUE2SUR3Z1JDQjBJSDhncENDcUlLd2dzU0M2SUwwaEJTRVRJUlloSWlFbUlTNGhYaUlDSWdZaUR5SVNJaG9pSGlJcklrZ2lZQ0psSmNydUF2YkQrd1QrLy8vOS8vOEFBQUFBQUFJQURRQWdBS0FBb1FDdEFLNEF3QURIQU5BQTV3RHdBUDhCRUFFU0FTWUJLQUV4QVZRQllBRm9BWDhCandHU0FhQUJyd0h3QWZvQ0dBSTNBbGtDdkFMR0Fza0MyQUx6QXdBREF3TUpBdzhESXdPRUE0d0RqZ09UQTZNRHNRTzZBOG9EMFFQV0JBQUVKZ1F3QkVZRVVBUmpCSEFFZWdTSUJNOEUyQVRpQlBZRkFnVVJIZ0FlUGg2QUhxQWU4aDcwSDAwZ0FDQVFJQk1nRnlBZ0lDVWdNQ0F5SURrZ1BDQkVJSFFnZnlDaklLWWdxeUN4SUxrZ3ZDRUZJUk1oRmlFaUlTWWhMaUZiSWdJaUJpSVBJaEVpR2lJZUlpc2lTQ0pnSW1RbHl1NEI5c1A3QWY3Ly8vei8vd0FCQUFELzl2L2tBYVQvd2dHWS84RUFBQUdMQUFBQmhnQUFBWUlBQUFHQUFBQUJmZ0FBQVhZQUFBRjQveFgvQnY4RS92Zis2Z0c2QUFBQUFQNWsva01BNy8zWC9kYjl5UDJ6L2FmOXB2MmgvWno5aVFBQS84ci95UUFBQUFEOUNRQUEvNnI4L2Z6NkFBRDh1UUFBL0xFQUFQeW1BQUQ4b0FBQS92UUFBUDd4QUFEOFNRQUE1YTdsYnVVZjVVN2tzK1ZNNVZ6aFcrRlhBQURoVk9GVDRWSGhTZU4xNFVIamJlRTQ0UW5nL3dBQTROb0FBT0RWNE03Z3plQ0c0SG5nZCtCczM1UGdZZUExMzVMZXE5K0czNFhmZnQ5NzMyL2ZVOTg4M3puYjFST2ZDdDhHb3dLckFhOEFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEyZ0FBQU9RQUFBRU9BQUFCS0FBQUFTZ0FBQUVvQUFBQmFnQUFBQUFBQUFBQUFBQUFBQUFBQVdvQmRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGaUFBQUFBQUZxQVlZQUFBR2VBQUFBQUFBQUFiWUFBQUgrQUFBQ0pnQUFBa2dBQUFKWUFBQUM0Z0FBQXZJQUFBTUdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBdmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMb0FBQUM2QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpMQWt3Q1RRSk9BazhDVUFDQkFrY0NXd0pjQWwwQ1hnSmZBbUFBZ2dDREFtRUNZZ0pqQW1RQ1pRQ0VBSVVDWmdKbkFtZ0NhUUpxQW1zQWhnQ0hBbllDZHdKNEFua0NlZ0o3QUlnQWlRSjhBbjBDZmdKL0FvQUFpZ0pHQkVZQWl3SklBSXdDcndLd0FyRUNzZ0t6QXJRQWpRSzFBcllDdHdLNEFya0N1Z0s3QXJ3QWpnQ1BBcjBDdmdLL0FzQUN3UUxDQXNNQWtBQ1JBc1FDeFFMR0FzY0N5QUxKQUpJQWt3TFlBdGtDM0FMZEF0NEMzd0pKQWtvQ1VRSnNBdmNDK0FMNUF2b0MxZ0xYQXRvQzJ3Q3RBSzREVWdDdkExTURWQU5WQUxBQXNRTmNBMTBEWGdDeUExOERZQUN6QTJFRFlnQzBBMk1BdFFOa0FMWURaUU5tQUxjRFp3QzRBTGtEYUFOcEEyb0Rhd05zQTIwRGJnTnZBTU1EY1FOeUFNUURjQURGQU1ZQXh3RElBTWtBeWdETEEzTUF6QUROQTdBRGVRRFJBM29BMGdON0Ezd0RmUU4rQU5NQTFBRFZBNEFEc1FPQkFOWURnZ0RYQTRNRGhBRFlBNFVBMlFEYUFOc0RoZ04vQU53RGh3T0lBNGtEaWdPTEE0d0RqUURkQU40RGpnT1BBT2tBNmdEckFPd0RrQUR0QU80QTd3T1JBUEFBOFFEeUFQTURrZ0QwQTVNRGxBRDFBNVVBOWdPV0E3SURsd0VCQTVnQkFnT1pBNW9EbXdPY0FRTUJCQUVGQTUwRHN3T2VBUVlCQndFSUJGd0R0QU8xQVJZQkZ3RVlBUmtEdGdPM0E3a0R1QUVuQVNnRVlRUmlCRnNCS1FFcUFTc0JMQUV0QkYwRVhnRXVBUzhFVmdSWEE3b0R1d1JJQkVrQk1BRXhCRjhFWUFFeUFUTUVTZ1JMQVRRQk5RRTJBVGNCT0FFNUE3d0R2UVJNQkUwRHZnTy9CR2tFYWdST0JFOEJPZ0U3QkZBRVVRRThBVDBCUGdSYUFUOEJRQVJZQkZrRHdBUEJBOElCUVFGQ0JHY0VhQUZEQVVRRVl3UmtCRklFVXdSbEJHWUJSUVBOQTh3RHpnUFBBOUFEMFFQU0FVWUJSd1JVQkZVRDV3UG9BVWdCU1FQcEErb0Vhd1JzQVVvRDZ3UnRBK3dEN1FGcEFXb0Vid1J1QVg4RVJ3R0ZBQXdBQUFBQURFQUFBQUFBQUFBQkJBQUFBQUFBQUFBQUFBQUFBUUFBQUFJQUFBQUNBQUFBQWdBQUFBMEFBQUFOQUFBQUF3QUFBQ0FBQUFCK0FBQUFCQUFBQUtBQUFBQ2dBQUFDUkFBQUFLRUFBQUNzQUFBQVl3QUFBSzBBQUFDdEFBQUNSUUFBQUs0QUFBQy9BQUFBYndBQUFNQUFBQURGQUFBQ1N3QUFBTVlBQUFER0FBQUFnUUFBQU1jQUFBRFBBQUFDVWdBQUFOQUFBQURRQUFBQ1J3QUFBTkVBQUFEV0FBQUNXd0FBQU5jQUFBRFlBQUFBZ2dBQUFOa0FBQURkQUFBQ1lRQUFBTjRBQUFEZkFBQUFoQUFBQU9BQUFBRGxBQUFDWmdBQUFPWUFBQURtQUFBQWhnQUFBT2NBQUFEdkFBQUNiUUFBQVBBQUFBRHdBQUFBaHdBQUFQRUFBQUQyQUFBQ2RnQUFBUGNBQUFENEFBQUFpQUFBQVBrQUFBRDlBQUFDZkFBQUFQNEFBQUQrQUFBQWlnQUFBUDhBQUFFUEFBQUNnUUFBQVJBQUFBRVFBQUFDUmdBQUFSRUFBQUVSQUFBRVJnQUFBUklBQUFFbEFBQUNrZ0FBQVNZQUFBRW1BQUFBaXdBQUFTY0FBQUVuQUFBQ1NBQUFBU2dBQUFFd0FBQUNwZ0FBQVRFQUFBRXhBQUFBakFBQUFUSUFBQUUzQUFBQ3J3QUFBVGdBQUFFNEFBQUFqUUFBQVRrQUFBRkFBQUFDdFFBQUFVRUFBQUZDQUFBQWpnQUFBVU1BQUFGSkFBQUN2UUFBQVVvQUFBRkxBQUFBa0FBQUFVd0FBQUZSQUFBQ3hBQUFBVklBQUFGVEFBQUFrZ0FBQVZRQUFBRmZBQUFDeWdBQUFXQUFBQUZoQUFBQzJBQUFBV0lBQUFGbEFBQUMzQUFBQVdZQUFBRm5BQUFDU1FBQUFXZ0FBQUYrQUFBQzRBQUFBWDhBQUFGL0FBQUFsQUFBQVk4QUFBR1BBQUFBbFFBQUFaSUFBQUdTQUFBQWxnQUFBYUFBQUFHaEFBQUFsd0FBQWE4QUFBR3dBQUFBbVFBQUFmQUFBQUh3QUFBRHFnQUFBZm9BQUFINkFBQUNVUUFBQWZzQUFBSDdBQUFDYkFBQUFmd0FBQUgvQUFBQzl3QUFBaGdBQUFJWkFBQUMxZ0FBQWhvQUFBSWJBQUFDMmdBQUFqY0FBQUkzQUFBQW13QUFBbGtBQUFKWkFBQUFuQUFBQXJ3QUFBSzhBQUFEcXdBQUFzWUFBQUxIQUFBQW5RQUFBc2tBQUFMSkFBQUFud0FBQXRnQUFBTGRBQUFBb0FBQUF2TUFBQUx6QUFBQXBnQUFBd0FBQUFNQkFBQUFwd0FBQXdNQUFBTURBQUFBcVFBQUF3a0FBQU1KQUFBQXFnQUFBdzhBQUFNUEFBQUFxd0FBQXlNQUFBTWpBQUFBckFBQUE0UUFBQU9GQUFBQXJRQUFBNFlBQUFPR0FBQURVZ0FBQTRjQUFBT0hBQUFBcndBQUE0Z0FBQU9LQUFBRFV3QUFBNHdBQUFPTUFBQURWZ0FBQTQ0QUFBT1NBQUFEVndBQUE1TUFBQU9VQUFBQXNBQUFBNVVBQUFPWEFBQURYQUFBQTVnQUFBT1lBQUFBc2dBQUE1a0FBQU9hQUFBRFh3QUFBNXNBQUFPYkFBQUFzd0FBQTV3QUFBT2RBQUFEWVFBQUE1NEFBQU9lQUFBQXRBQUFBNThBQUFPZkFBQURZd0FBQTZBQUFBT2dBQUFBdFFBQUE2RUFBQU9oQUFBRFpBQUFBNk1BQUFPakFBQUF0Z0FBQTZRQUFBT2xBQUFEWlFBQUE2WUFBQU9tQUFBQXR3QUFBNmNBQUFPbkFBQURad0FBQTZnQUFBT3BBQUFBdUFBQUE2b0FBQU93QUFBRGFBQUFBN0VBQUFPNUFBQUF1Z0FBQTdvQUFBTzZBQUFEYndBQUE3c0FBQU83QUFBQXd3QUFBN3dBQUFPOUFBQURjUUFBQTc0QUFBTytBQUFBeEFBQUE3OEFBQU8vQUFBRGNBQUFBOEFBQUFQR0FBQUF4UUFBQThjQUFBUEhBQUFEY3dBQUE4Z0FBQVBKQUFBQXpBQUFBOG9BQUFQT0FBQURkQUFBQTlFQUFBUFNBQUFBemdBQUE5WUFBQVBXQUFBQTBBQUFCQUFBQUFRQUFBQURzQUFBQkFFQUFBUUJBQUFEZVFBQUJBSUFBQVFDQUFBQTBRQUFCQU1BQUFRREFBQURlZ0FBQkFRQUFBUUVBQUFBMGdBQUJBVUFBQVFJQUFBRGV3QUFCQWtBQUFRTEFBQUEwd0FBQkF3QUFBUU1BQUFEZ0FBQUJBMEFBQVFOQUFBRHNRQUFCQTRBQUFRT0FBQURnUUFBQkE4QUFBUVBBQUFBMWdBQUJCQUFBQVFRQUFBRGdnQUFCQkVBQUFRUkFBQUExd0FBQkJJQUFBUVRBQUFEZ3dBQUJCUUFBQVFVQUFBQTJBQUFCQlVBQUFRVkFBQURoUUFBQkJZQUFBUVlBQUFBMlFBQUJCa0FBQVFaQUFBRGhnQUFCQm9BQUFRYUFBQURmd0FBQkJzQUFBUWJBQUFBM0FBQUJCd0FBQVFpQUFBRGh3QUFCQ01BQUFRa0FBQUEzUUFBQkNVQUFBUWxBQUFEamdBQUJDWUFBQVF2QUFBQTN3QUFCREFBQUFRd0FBQURqd0FBQkRFQUFBUTBBQUFBNlFBQUJEVUFBQVExQUFBRGtBQUFCRFlBQUFRNEFBQUE3UUFBQkRrQUFBUTVBQUFEa1FBQUJEb0FBQVE5QUFBQThBQUFCRDRBQUFRK0FBQURrZ0FBQkQ4QUFBUS9BQUFBOUFBQUJFQUFBQVJCQUFBRGt3QUFCRUlBQUFSQ0FBQUE5UUFBQkVNQUFBUkRBQUFEbFFBQUJFUUFBQVJFQUFBQTlnQUFCRVVBQUFSRkFBQURsZ0FBQkVZQUFBUlBBQUFBOXdBQUJGQUFBQVJRQUFBRHNnQUFCRkVBQUFSUkFBQURsd0FBQkZJQUFBUlNBQUFCQVFBQUJGTUFBQVJUQUFBRG1BQUFCRlFBQUFSVUFBQUJBZ0FBQkZVQUFBUllBQUFEbVFBQUJGa0FBQVJiQUFBQkF3QUFCRndBQUFSY0FBQURuUUFBQkYwQUFBUmRBQUFEc3dBQUJGNEFBQVJlQUFBRG5nQUFCRjhBQUFSaEFBQUJCZ0FBQkdJQUFBUmlBQUFFWEFBQUJHTUFBQVJ2QUFBQkNRQUFCSEFBQUFSeEFBQUR0QUFBQkhJQUFBUjFBQUFCRmdBQUJIWUFBQVIzQUFBRHRnQUFCSGdBQUFSNEFBQUR1UUFBQkhrQUFBUjVBQUFEdUFBQUJIb0FBQVNHQUFBQkdnQUFCSWdBQUFTSkFBQUJKd0FBQklvQUFBU0xBQUFFWVFBQUJJd0FBQVNNQUFBRVd3QUFCSTBBQUFTUkFBQUJLUUFBQkpJQUFBU1RBQUFFWFFBQUJKUUFBQVNWQUFBQkxnQUFCSllBQUFTWEFBQUVWZ0FBQkpnQUFBU1pBQUFEdWdBQUJKb0FBQVNiQUFBRVNBQUFCSndBQUFTZEFBQUJNQUFBQko0QUFBU2ZBQUFFWHdBQUJLQUFBQVNoQUFBQk1nQUFCS0lBQUFTakFBQUVTZ0FBQktRQUFBU3BBQUFCTkFBQUJLb0FBQVNyQUFBRHZBQUFCS3dBQUFTdEFBQUVUQUFBQks0QUFBU3ZBQUFEdmdBQUJMQUFBQVN4QUFBRWFRQUFCTElBQUFTekFBQUVUZ0FBQkxRQUFBUzFBQUFCT2dBQUJMWUFBQVMzQUFBRVVBQUFCTGdBQUFTNkFBQUJQQUFBQkxzQUFBUzdBQUFFV2dBQUJMd0FBQVM5QUFBQlB3QUFCTDRBQUFTL0FBQUVXQUFBQk1BQUFBVENBQUFEd0FBQUJNTUFBQVRFQUFBQlFRQUFCTVVBQUFUR0FBQUVad0FBQk1jQUFBVElBQUFCUXdBQUJNa0FBQVRLQUFBRVl3QUFCTXNBQUFUTUFBQUVVZ0FBQk0wQUFBVE9BQUFFWlFBQUJNOEFBQVRYQUFBRHd3QUFCTmdBQUFUWUFBQUJSUUFBQk5rQUFBVFpBQUFEelFBQUJOb0FBQVRhQUFBRHpBQUFCTnNBQUFUZkFBQUR6Z0FBQk9BQUFBVGhBQUFCUmdBQUJPSUFBQVQxQUFBRDB3QUFCUFlBQUFUM0FBQUVWQUFBQlBnQUFBVDVBQUFENXdBQUJQb0FBQVQ3QUFBQlNBQUFCUHdBQUFUOUFBQUQ2UUFBQlA0QUFBVC9BQUFFYXdBQUJRQUFBQVVBQUFBQlNnQUFCUUVBQUFVQkFBQUQ2d0FBQlFJQUFBVVFBQUFCU3dBQUJSRUFBQVVSQUFBRWJRQUFCUklBQUFVVEFBQUQ3QUFBSGdBQUFCNEJBQUFEcmdBQUhqNEFBQjQvQUFBRHJBQUFIb0FBQUI2RkFBQURud0FBSHFBQUFCN3hBQUFEN2dBQUh2SUFBQjd6QUFBRHBRQUFIdlFBQUI3NUFBQUVRQUFBSDAwQUFCOU5BQUFFcVFBQUlBQUFBQ0FMQUFBQld3QUFJQkFBQUNBUkFBQUJad0FBSUJNQUFDQVVBQUFCYVFBQUlCVUFBQ0FWQUFBRWJ3QUFJQmNBQUNBZUFBQUJhd0FBSUNBQUFDQWlBQUFCY3dBQUlDVUFBQ0FuQUFBQmRnQUFJREFBQUNBd0FBQUJlUUFBSURJQUFDQXpBQUFEcHdBQUlEa0FBQ0E2QUFBQmVnQUFJRHdBQUNBOEFBQURxUUFBSUVRQUFDQkVBQUFCZkFBQUlIUUFBQ0IwQUFBQmZRQUFJSDhBQUNCL0FBQUJmZ0FBSUtNQUFDQ2pBQUFFYmdBQUlLUUFBQ0NrQUFBQmZ3QUFJS1lBQUNDcUFBQUJnQUFBSUtzQUFDQ3JBQUFFUndBQUlLd0FBQ0NzQUFBQmhRQUFJTEVBQUNDeEFBQUJoZ0FBSUxrQUFDQzZBQUFCaHdBQUlMd0FBQ0M5QUFBQmlRQUFJUVVBQUNFRkFBQUJpd0FBSVJNQUFDRVRBQUFCakFBQUlSWUFBQ0VXQUFBQmpRQUFJU0lBQUNFaUFBQUJqZ0FBSVNZQUFDRW1BQUFBdVFBQUlTNEFBQ0V1QUFBQmp3QUFJVnNBQUNGZUFBQUJrQUFBSWdJQUFDSUNBQUFCbEFBQUlnWUFBQ0lHQUFBQXNRQUFJZzhBQUNJUEFBQUJsUUFBSWhFQUFDSVNBQUFCbGdBQUlob0FBQ0lhQUFBQm1BQUFJaDRBQUNJZUFBQUJtUUFBSWlzQUFDSXJBQUFCbWdBQUlrZ0FBQ0pJQUFBQm13QUFJbUFBQUNKZ0FBQUJuQUFBSW1RQUFDSmxBQUFCblFBQUpjb0FBQ1hLQUFBQm53QUE3Z0VBQU80Q0FBQUJvQUFBOXNNQUFQYkRBQUFCb2dBQSt3RUFBUHNFQUFBQnBBQUEvdjhBQVA3L0FBQUJxZ0FBLy93QUFQLzlBQUFCcTdBQUxFdXdDVkJZc1FFQmpsbTRBZitGc0lRZHNRa0RYMTR0c0FFc0lDQkZhVVN3QVdBdHNBSXNzQUVxSVMyd0F5d2dSckFESlVaU1dDTlpJSW9naWtsa2lpQkdJR2hoWkxBRUpVWWdhR0ZrVWxnalpZcFpMeUN3QUZOWWFTQ3dBRlJZSWJCQVdSdHBJTEFBVkZnaHNFQmxXVms2TGJBRUxDQkdzQVFsUmxKWUk0cFpJRVlnYW1Ga3NBUWxSaUJxWVdSU1dDT0tXUy85TGJBRkxFc2dzQU1tVUZoUldMQ0FSQnV3UUVSWkd5RWhJRVd3d0ZCWXNNQkVHeUZaV1Myd0Jpd2dJRVZwUkxBQllDQWdSWDFwR0VTd0FXQXRzQWNzc0FZcUxiQUlMRXNnc0FNbVUxaXdRQnV3QUZtS2lpQ3dBeVpUV0NNaHNJQ0tpaHVLSTFrZ3NBTW1VMWdqSWJEQWlvb2JpaU5aSUxBREpsTllJeUc0QVFDS2lodUtJMWtnc0FNbVUxZ2pJYmdCUUlxS0c0b2pXU0N3QXlaVFdMQURKVVc0QVlCUVdDTWh1QUdBSXlFYnNBTWxSU01oSXlGWkd5RlpSQzJ3Q1N4TFUxaEZSQnNoSVZrdHNBb3NzQ2xGTGJBTExMQXFSUzJ3REN5eEp3R0lJSXBUV0xsQUFBUUFZN2dJQUloVVdMa0FLUVBvY0ZrYnNDTlRXTEFnaUxnUUFGUll1UUFwQStod1dWbFpMYkFOTExCQWlMZ2dBRnBZc1NvQVJCdTVBQ29ENkVSWkxiQU1LN0FBS3dDeUFRMENLd0d5RGdFQ0t3RzNEam93SlJzUUFBZ3JBTGNCT0M0a0doRUFDQ3UzQWs1QU1pTVZBQWdydHdOSU95NGhGQUFJSzdjRVRrQXlJeFVBQ0N1M0JUQW9IeFlPQUFncnR3WmpVVDh0R3dBSUs3Y0hRRFFrR2hFQUNDdTNDRnRLT2lrWkFBZ3J0d21EWkU0Nkl3QUlLN2NLZDJKTU5pRUFDQ3UzQzVGM1hEb2pBQWdydHd4MllFczJIUUFJSzdjTkxDUWNGQXdBQ0NzQXNnOE5CeXV3QUNCRmZXa1lSTEt3RXdGenNsQVRBWFN5Z0JNQmRMSndFd0Yxc2c4ZkFYT3lieDhCZFFBcUFNd0FrUUNlQUpFQTdBQnlBTElBZlFCV0FGOEFUZ0JnQVFRQXhBQUFBQlQrWUFBVUFwc0FFUDg1QUEzK2x3QVNBeUVBQ3dRNkFCUUVqUUFRQmJBQUZBWVlBQlVHd0FBUUFsc0FFZ2NFQUFVQUFBQUFBQUFBQUFCZ0FHQUFZQUJnQUdBQW1nREVBVUFCdndKWUF2UUREZ002QTJrRG5BUEJBK01EK1FRZ0JEY0Vpd1M1QlFvRmZRWEJCaWNHandhOEJ6b0hwQWV3Qjd3SDJ3Z0NDQ0VJaHdrekNYTUozUW93Q25rS3VRcnZDMDRMaXd1bUM5a01JQXhFREowTTJRMHpEWDROM2c0M0RxVU96dzhORHo0UGpRL1lFQWtRUVJCbEVId1FvUkRJRU9NUkJCR0RFZU1TTnhLVUV3Z1RVUlBMRkFzVVJSU1FGTmNVOGhWZEZhWVY5QlpZRnJnVzlSZGpGNjRYOUJna0dISVl1eGo4R1RRWmR4bU9HYzhhRXhwUUdySWJGUnQyRzlrYitCeVRITVFkWlIzakhlOGVEQjY4SHRJZkVSOVVINmNnR1NBNUlJb2d0aURXSVFzaE9TR0RJWThocVNIRElkMGlSaUtxSXVnall5TzBKQ0FrM2lWV0phc21IU1o4SnRvbTlTZEJKNG9ueHlnZUtIa28vU21aS2NrcUxDcVNLdjhyWXl1M0xCRXNRaXlsTE53dEJDME1MVHN0WGkyV0xjSXVCUzQ2TG40dW5pNitMc2N1OVM4bkwwTXZYQytoTDZrdnp5LzhNSFV3b3pEak1SRXhUVEhDTWh3eWhUTDRNMmd6bXpRUE5JMDA1elV3TmFNMTBEWW9OcGcyNlRkQ041ODM5VGc1T0hnNDVEazJPWlk2RGpwZU90TTdORHVqUEJnOGpEemRQUms5Y1QzTlBqayt1RDd4UHpvL2dEL3NRQ0pBWTBDZ1FPbEJRa0dtUWZKQ2FFTG5RMEZEcVVRVFJEbEVqa1Q3UlhsRnNrWURSa3BHbEVicVJ4aEhSRWZPU0FSSVJraURTTWRKRzBsOVNjZEtPRXF3U3dsTGdVdnZUR05NMDAwM1RYTk4wazR4VHBoUEhVK2VUK3RRT1ZDbFVSSlJoRkgxVW41VEJsT2tWRGRVcFZVUFZWTlZtVllFVm10WEsxZmpXRnhZMjFrd1dZTlp1Rm5VV2dkYUhWb3pXd1JiY2x2YVhERmNvRnpNWFBWZFNsMlZYZXRlUFY2Tlh1SmZRVitQWCsxZ1EyRFNZVnhob21IbFlqZGlobUxKWXpoanQyUVhaR3hreW1VbFpZeGw3bVpJWmxkbVoyYTJaeDVucFdnWGFJQm81bWxLYWJWcUgycURhdkJyUzJ1ZGErOXNRR3kyYk9GczRXemhiT0ZzNFd6aGJPRnM0V3poYk9GczRXemhiT0ZzNld6eGJQdHRCVzBnYlVOdFpXMkZiYVJ0c0cyOGJlNXVMRzZOYnJGdXZXN05idVp2dEcvUWIreHYvM0FUY0ZwdzNIRitjZ3B5Rm5MbWMwdHp5WFIrZE9SMVhuVzJkaVIyd1hjaWQ3aDRGbmg0ZUpKNHJIakdlT0I1UzNseGVhbDV2M256ZW9WNngzdEdlNFY3bEh1amU5eDc3M3dZZkRGOFBYeWdmUFY5am40WWZvOS9TSDlJZ1BpQllZR09nZ3VDUElKU2dzR0RHNE5vZzltRUw0UjFoTHlGQ29VdGhXdUY3NFpFaG95R3pJY0NoMkNIdW9mVmlBQ0lRNGhuaUxtSThvbEdpWStKNm9wQ2lxdUsxWXNPaXorTGlZdlNqQU9NTzR5RGpLeU0vbzF4amJPT0VvNXVqcHVQSDQ5L2o1V1A2SkNXa1ArUllwR3JrZkdTTTVKMGt1cVRVNVBKay9PVUtKU2JsTTZWR0pWS2xZMlYrNVpNbHErWERKZUZsL2lZaUpqWW1SZVpiSm5DbWoyYXU1cjNtMCtibUp2Ym5CU2NWWnlObk11ZElaMHRuWG1kNzU1K250R2ZFNStVbi9tZ1g2REJvVkNoWEtHdG9mbWlSNktJb3ZlalhLTzZwRENrd3FWSHBkNm1VNmF5cHdXblphZHRwN21vSHFpQnFQS3BiYW5BcWlLcWJhckpxeXFyVkt1cnE5ZXNMcXgycklxc25xeXdyTVNzMXF6dHJRR3RYNjJGcmdLdVpxNjRyc0N1eUs3UXJ0dXU0NjlKcjBtdlVhL0JzREd3a3JEVXNUZXhUckZsc1h5eGpyR21zYm14eGJIUnNlaXgvN0lXc2k2eVJiSmNzbk95aTdLZHNyU3l5N0xpc3ZtekViTW9zenF6VWJOcHM0Q3psN09wczcrejFiUHN0QVMwRUxRY3RETzBSYlJidEhLMGlMU2V0TFcwemJUZXRQVzFCN1VkdFM2MVJyVmR0VysxaGJXY3RhNjF4YlhjdGUyMkJMWWJ0b1czSjdjNXQwdTNZcmQ0dDQrM3ByZTR0OG0zMjdmcnVBSzRFN2dxdUVDNFY3aHV1TnU1Y3JtSnVacTVzYm5IdWQ2NTlMb0x1aUs2THJwQXVsZTZhYnFBdXBLNnFickF1dGU2N3JyNXV3UzdHN3NudXpPN1NydGh1MjI3ZWJ1UXU2ZTdzN3UvdTlTNzZidjF2QUc4R0x3cXZEYThRcnhadkdxOGY3eVd2S2U4dnJ6VnZPMjlCYjBYdlNtOU5iMUJ2Vk85WkwxMnZZaTluNzIxdmNHOXpiM1p2ZVc5OTc0SXZoUytJTDRzdmppK1Q3NWJ2bksraUw2YXZyQyt4NzdldnZHL0JMOGN2eSsvamIvdndBYkFIY0Ewd0VyQVlzQjV3SkRBcDhDK3dOREE0Y0Q0d1FyQkljRTR3V2pCbU1Hb3diL0Ixc0hzd2YzQ0ZjSXR3am5DUmNKY3duUENpY0tnd3JmQ3pjTGt3dnpERHNNbHd6ZkRUY05ldzNiRGpjT2t3N3JEMHNQcHcvL0VGc1I5eEkvRXBjUzh4TTNFM3NUMHhRckZJY1dPeGFURnVzWFJ4ZWpGOU1ZS3hoekdNOFpLeGxYR2E4YUN4bzdHcE1hd3hzWEcwY2JveHZUSEM4Y2N4elBIUnNkWXgyVEhkY2VIeDUzSHFjZTZ4OGJIM01mb3gvN0lEOGdteURuSVRNaXR5TVRJMnNqeHlRakpIOGsxeVVESlRNbFl5V1RKY01sOHlZakpvOG1yeWJQSnU4bkR5Y3ZKMDhuYnllUEo2OG56eWZ2S0E4b0x5aFBLSzhwRHlsWEtaOHA1eW9yS3BNcXN5clRLdk1yRXlzeks1TXI3eXczTEg4c3h5MG5MWU12T3k5Ykw3c3YyeS83TUZjd3N6RFRNUE14RXpFek1ZOHhyekhQTWU4eUR6SXZNazh5YnpLUE1xOHl6ek1yTTBzemF6UzdOTnMwK3pWWE5iTTEwelh6TmxNMmN6YlBOeWMzZ3pmZk9EczRsempqT1M4NWl6blBPaDg2bXpyTE94TTdNenVQTzljOEJ6dzNQSk04N3oxTFBhYzl4ejNuUGtjK3B6N1hQd2MvTno5blA1Yy94ei9uUUFkQUowQ0RRTjlBLzBGYlFiZENGMEp6UXBOQ3MwTVBRMmREeDBQblJFTkVvMFVEUldORnYwWWJSbk5HMDBjelI1Tkg4MGdUU0ROSWswanZTVTlKcTBuelNqZEtsMHJ6UzFOTHMwd1RURzlNMzAxUFRYOU5yMDNQVGY5T0wwNWZUbzlPMTA4ZlQ0TlB5MUF2VUhkUXcxRUxVVmRSbjFIZlVodFNaMUt2VXZ0VFExT1BVOWRVSTFSclZLdFU2MVViVlV0VmsxWGJWaU5XWjFiTFZ4TlhkMWUvV0F0WVUxaWZXT2RaSjFsaldhdFo4MW9qV2xOYWcxcXpXdnRiUTF1UFc5ZGNJMXhyWExkYy8xMUxYWk5kMDE0UFhqOWVoMTYzWHY5ZkwxOTNYNmRmNjJBYllFdGdlMkNyWVBOaE8yR0RZY3RpRTJKYllxTmk2Mk16WTNkanAyUFhaQWRrTjJSL1pNZGxEMlZUWnp0bm8yZlRhQU5vTTJoamFKTm93Mmp6YVNOcFUybURhYk5wNDJvVGFrTnFjMnFqYXROckEyc2piTGR1UzI5RGNEOXh0M016YzU5MEMzUTdkR3QwbTNUTGRQdDFLM1pYZDVONCszcGJlbnQ2cTNyVGV2TjdFM3N6ZTFON2MzdVRlOXQ4STN4L2ZOdDlPMzJiZmZ0K1czNjdmeHQvZTMvYmdEdUFtNEQ3Z1Z1Qmk0RzdnZXVDRzRKTGdudUNxNExiZ3d1RFU0T2JnOHVEKzRRcmhGdUVpNFM3aE91Rkc0VmpoYXVGMjRZTGhqdUdhNGFiaHN1SEU0ZFhoNGVIdDRmbmlCZUlSNGgzaUtlSTE0a0hpVGVKWjRtWGljZUo5NG9YaWplS1Y0cDNpcGVLdDRyWGl2ZUxGNHMzaTFlTGQ0dVhpL2VNVTR5dmpQZU5GNDAzalplTnQ0My9qbGVPZDQ2WGpyZU8xNDh6ajFPUGM0K1RqN09QMDQvemtCT1FNNUpubEN1VnI1WFBsZitXUjVhTGxxdVcyNWNMbHp1WGE1ZVlBQUFBRkFHUUFBQU1vQmJBQUF3QUdBQWtBREFBUEFHK3lEQkFSRVJJNXNBd1FzQURRc0F3UXNBYlFzQXdRc0FuUXNBd1FzQTNRQUxBQVJWaXdBaThic1FJZlBsbXdBRVZZc0FBdkc3RUFEejVac2dRQ0FCRVNPYklGQWdBUkVqbXlCd0lBRVJJNXNnZ0NBQkVTT2JBSzNMSU1BZ0FSRWpteURRSUFFUkk1c0FJUXNBN2NNREVoSVJFaEF4RUJBUkVCQXlFQk5RRWhBeWo5UEFMRU52N3Uvcm9CRE9RQ0EvNytBUUw5L1FXdytxUUZCLzE5QW5mN0VRSjQvVjRDWG9nQ1hnQUNBSS8vOGdHakJiQUFBd0FOQUR1eUJnNFBFUkk1c0FZUXNBSFFBTEFBUlZpd0FpOGJzUUlmUGxtd0FFVllzQXd2RzdFTUR6NVpzZ1lOQ2l0WUlkZ2I5Rm13QWRDd0FTOHdNUUVqQXlFQk5EWXlGaFVVQmlJbUFYN1JGd0VBL3ZsS2dFcEloRWdCclFRRCtzTTVTMHM1TjBwS0FBSUFaUVAwQWtBR0FBQUVBQWtBSlFDd0FFVllzQU12RzdFRElUNVpzQUxRc0FJdnNBZlFzQWN2c0FNUXNBalFzQWd2TURFQkF5TVJNd1VESXhFekFSTWppNjRCTFNPTHJnVjMvbjBDREluK2ZRSU1BQUlBWUFBQUJMd0ZzQUFiQUI4QWpRQ3dBRVZZc0F3dkc3RU1IejVac0FCRldMQVFMeHV4RUI4K1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNCb3ZHN0VhRHo1WnNoME1BaEVTT2JBZEw3SUFBd29yV0NIWUcvUlpzQVRRc0IwUXNBYlFzQjBRc0F2UXNBc3ZzZ2dEQ2l0WUlkZ2I5Rm13Q3hDd0R0Q3dDeEN3RXRDd0NCQ3dGTkN3SFJDd0Z0Q3dBQkN3R05Dd0NCQ3dIdEF3TVFFakF5TVRJelVoRXlNMUlSTXpBek1UTXdNekZTTURNeFVqQXlNRE14TWpBcy9nVEtoTTV3RUZPdk1CRVU2blR1Rk9wMDdRN2pyZCsweW5kdUE2NEFHYS9tWUJtcDRCT1o4Qm9QNWdBYUQrWUovK3g1NytaZ0k0QVRrQUFRQmsveTBFSmdhYkFDd0FmYklxTFM0UkVqa0FzQUJGV0xBTUx4dXhEQjgrV2JBQVJWaXdDUzhic1FrZlBsbXdBRVZZc0NNdkc3RWpEejVac0FCRldMQWdMeHV4SUE4K1diSVpEQ0FSRWptd0dSQ3lBZ0VLSzFnaDJCdjBXYklQQ1NNUkVqbXdEQkN5RXdFS0sxZ2gyQnYwV2JJbkl3a1JFam13SXhDeUtnRUtLMWdoMkJ2MFdUQXhBVFFtSmljbU5UUTJOelV6RlJZV0ZTTTBKaU1pQmhVVUZnUWVBaFVVQmdjVkl6VW1KalV6RkJZek1qWURNMno4UnVuS3JhQ3V2dkp4WVdCc2F3RUFrbVEyejdtZnh0WHpmM1J5ZHdGOFZXOVpKbjMxcHRZVTJ0d1o5Y1Ira1doaFYybGVVR2VHV3FuU0U4UENGdkRHZm9wdUFBQUZBR1AvN0FXSkJjVUFEUUFhQUNjQU5RQTVBSW15QlRvN0VSSTVzQVVRc0JQUXNBVVFzQnZRc0FVUXNDalFzQVVRc0RiUUFMQTJMN0E0TDdBQVJWaXdBeThic1FNZlBsbXdBRVZZc0NVdkc3RWxEejVac0FNUXNBclFzQW92c2hFQ0NpdFlJZGdiOUZtd0F4Q3lHQUlLSzFnaDJCdjBXYkFsRUxBZTBMQWVMN0FsRUxJckFnb3JXQ0hZRy9SWnNCNFFzaklDQ2l0WUlkZ2I5Rmt3TVJNME5qTXlGaFVWRkFZaklpWTFGeFFXTXpJMk5UVTBKaUlHRlFFME5qTXlGaFVWRkFZZ0pqVVhGQll6TWpZMU5UUW1JeUlHRlFVbkFSZGpxb3FNcWFtS2g2K3FUVDgrVEUxK1N3SVNyb2VJcmFmKzZLdXFUejVBU1U0OVBrMytBbjBDeDMwRW1JU3BxWWxJZzZpbGpBWkZWVlZKU1VWV1YwZjgwSWFtcG8xSGdxbW5pUVZFVjFOTFMwWlVWRXIwU0FSeVNBQURBRmIvN0FVUkJjUUFIQUFsQURFQW1MSXVNak1SRWptd0xoQ3dFTkN3TGhDd0h0QUFzQUJGV0xBSkx4dXhDUjgrV2JBQVJWaXdHeThic1JzUFBsbXdBRVZZc0Jndkc3RVlEejVac2lBYkNSRVNPYklvQ1JzUkVqbXlBeUFvRVJJNXNoQW9JQkVTT2JJVEd3a1JFam15RVJNWUVSSTVzaGtZRXhFU09iSVdFUmtSRWptd0d4Q3lIUUVLSzFnaDJCdjBXYklmSFJFUkVqbXdDUkN5THdFS0sxZ2gyQnYwV1RBeEV6UTJOeVltTlRRMk16SVdGUlFHQndjQk5qVXpFQWNYSVNjR0lDUUZNamNCQndZVkZCWURGQmMzTnpZMU5DWWpJZ1pXYnFKVlE5Q3duOHRjYVdNQkdUM1RmdGIrNWxLYy9sRCsvUUhpZTJ2K3doOTRnaGxuYng4K1ZrSkhWQUdKWmFsMGE1WkdxOGU3aWx1WlRFait0SGlUL3ZPcy9XRjE1U05TQVhjV1czVmxmZ09xVkg5TUdUZFdPVkZnQUFBQkFGSUQvQUVMQmdBQUJBQVdBTEFBUlZpd0F5OGJzUU1oUGxtd0F0Q3dBaTh3TVFFREl4RXpBUXNhbjdrRmcvNTVBZ1FBQVFDQS9qRUNvZ1pmQUJBQUVMSUhFUklSRWprQXNBUXZzQTB2TURFVE5CSVNOeGNHQWdNSEVCSVhCeVlDQW9CODhJWXdqYThJQWF1YU1JYnhld0pRNXdHZkFVZENqbXYrU2Y3bFZ2N1IvaVY4aDBJQlNRR2RBQUVBS1A0eEFsRUdYd0FTQUJDeUJ4TVVFUkk1QUxBRUw3QU9MekF4QVJRQ0FnY25OaElSTlJBQ0p5YzNGaElTRndKUmV2aUhNSmF2bUk0Zk1JRHdnQWdDUU43K1kvNnRRWWQwQWQwQk1oY0JGZ0hKaWh5SVB2N0Uvbm5RQUFBQkFCc0NUUU4wQmJBQURnQWdBTEFBUlZpd0JDOGJzUVFmUGxtd0FOQVpzQUF2R0xBSjBCbXdDUzhZTURFQkpUY0ZBek1ESlJjRkV3Y0RBeWNCVFA3UE53RXVEN01QQVNrMi9zcklrYlN5a2dQTVdLbDFBVmorb25Pc1dQNzJhZ0VnL3VsbUFBQUJBRVFBa2dRcUJMWUFDd0FhQUxBSkw3QUEwTEFKRUxJR0FRb3JXQ0hZRy9SWnNBUFFNREVCSVJVaEVTTVJJVFVoRVRNQ3JnRjgvb1RzL29JQmZ1d0RJZDcrVHdHeDNnR1ZBQUVBSFA2NEFWMEE2d0FKQUJpeUNRb0xFUkk1QUxBS0w3SUZEUW9yV0NIWUcvUlpNREVUSnpZMk56VXpCd1lHbjRNNkt3SGJBUUZwL3JoT1c0ZEd2YTlxMVFBQUFRQkhBZ2tDVkFMTkFBTUFFUUN3QWkreUFRRUtLMWdoMkJ2MFdUQXhBU0UxSVFKVS9mTUNEUUlKeEFBQkFJZi85UUdpQVFBQUNnQWlzZ0FMREJFU09RQ3dBRVZZc0FZdkc3RUdEejVac2dBTkNpdFlJZGdiOUZrd01RRXlGaFVVQmlNaUpqUTJBUlJFU2twRVFVeEtBUUJOT2psTFNuUk5BQUFCQUFML2d3TCtCYkFBQXdBVEFMQUFMN0FBUlZpd0FpOGJzUUlmUGxrd01SY2pBVFBCdndJOXYzMEdMUUFBQWdCcC8rd0VJZ1hFQUEwQUd3QkdzZ01jSFJFU09iQURFTEFSMEFDd0FFVllzQW92RzdFS0h6NVpzQUJGV0xBREx4dXhBdzgrV2JBS0VMSVJBUW9yV0NIWUcvUlpzQU1Rc2hnQkNpdFlJZGdiOUZrd01RRVFBaU1pQWdNMUVCSXpNaElUSnpRbUl5SUdCeEVVRmpNeU5qY0VJdXZ3N084RDYvSHY2d1B6Y0hwM2NBTnllblZ3QXdKbC9zYit3UUUzQVRIOEFUb0JPdjdPL3M4VXpiKzF3UDYyek1pNXhRQUFBUUNvQUFBQy93VzFBQVlBT1FDd0FFVllzQVV2RzdFRkh6NVpzQUJGV0xBQUx4dXhBQTgrV2JJRUFBVVJFam13QkMreUF3RUtLMWdoMkJ2MFdiSUNBd1VSRWprd01TRWpFUVUxSlRNQy8vTCttd0k0SHdTUmVzM1JBQUFCQUZFQUFBUkFCY1FBR1FCT3NoRWFHeEVTT1FDd0FFVllzQkV2RzdFUkh6NVpzQUJGV0xBQUx4dXhBQTgrV2JJREVRQVJFam13RVJDeUNRRUtLMWdoMkJ2MFdiSVdFUUFSRWptd0FCQ3lHQUVLSzFnaDJCdjBXVEF4SVNFMUFUWTJOVFFtSXlJR0ZTTTBOall6TWhZVkZBWUhBU0VFUVB3dEFlVnBXWFZqZG9MemVlR1QxUFY3alA2Y0FxU25BaEYxblU5b2dKQjloZFYyMWJ4dDc1aitnd0FCQUUvLzdBUVZCY1FBS1FCdXNnY3FLeEVTT1FDd0FFVllzQTh2RzdFUEh6NVpzQUJGV0xBYkx4dXhHdzgrV2JJQkR4c1JFam13QVMreUh3RUJjYktmQVFGZHNqOEJBWEd3RHhDeUJ3RUtLMWdoMkJ2MFdiQUJFTElvQVFvcldDSFlHL1Jac2hVb0FSRVNPYkFiRUxJaUFRb3JXQ0hZRy9SWk1ERUJNelkyTlRRbUl5SUdGU00wTmpZek1oWVZGQVlIRmhZVkZBUWpJaVExTXhRV016STJOVFFtSXlNQmhwUndnMjF3WW43emQ5V0Uydmw5WTNoOS92UGIwdjcwODRGdGNZS0lobzhEUndGeWJHaHpjVnR3dUdmYncyS3RMQ213ZXNUbzRMcGdlSGh5YzN3QUFBSUFOQUFBQkZnRnNBQUtBQTRBU1FDd0FFVllzQWt2RzdFSkh6NVpzQUJGV0xBRUx4dXhCQTgrV2JJQkNRUVJFam13QVMreUFnRUtLMWdoMkJ2MFdiQUcwTEFCRUxBTDBMSUlCZ3NSRWpteURRa0VFUkk1TURFQk14VWpFU01SSVNjQk13RWhFUWNEbzdXMTgvMkxCd0owKy8yUUFYMFNBZ2ZEL3J3QlJKUUQyUHhYQW1BZ0FBQUJBSUgvN0FRNkJiQUFIUUJxc2hvZUh4RVNPUUN3QUVWWXNBRXZHN0VCSHo1WnNBQkZXTEFOTHh1eERROCtXYkFCRUxJREFRb3JXQ0hZRy9SWnNnY0JEUkVTT2JBSEw3SWFBUW9yV0NIWUcvUlpzZ1VIR2hFU09iQU5FTElVQVFvcldDSFlHL1Jac2hFVUdoRVNPYklkR2hRUkVqa3dNUk1USVJVaEF6WXpNaElWRkFBaklpUW5NeFlXTXpJMk5UUW1JeUlHQjY1UEF3Nzl2Q2hsZjlEbi93RGZ5UDc1QytzT2ZHUndmWXA1UWx3MkF0SUMzdEwrcERyKzl1SGUvdm5qdW1weG9JcUZteU16QUFBQ0FIWC83QVEzQmJjQUZBQWZBR0t5RlNBaEVSSTVzQlVRc0EzUUFMQUFSVml3QUM4YnNRQWZQbG13QUVWWXNBMHZHN0VORHo1WnNBQVFzZ0VCQ2l0WUlkZ2I5Rm15QndBTkVSSTVzQWN2c2dVSERSRVNPYklWQVFvcldDSFlHL1Jac0EwUXNoc0JDaXRZSWRnYjlGa3dNUUVWSXdZR0J6WXpNaElWRkFBaklnQVJOUkFBSVFNaUJnY1ZGQll5TmhBbUEyRWV6UFFYZGJiQjMvNzcxTnIrOFFGMUFWN3NVSVVmaU5oK2dBVzN5UVBheUh2KzhOZmUvdTBCUWdFRlV3Ri9BYkw5U1ZwTFNxSy9vZ0VJcGdBQUFRQkZBQUFFTmdXd0FBWUFNZ0N3QUVWWXNBVXZHN0VGSHo1WnNBQkZXTEFCTHh1eEFROCtXYkFGRUxJREFRb3JXQ0hZRy9SWnNnQURCUkVTT1RBeEFRRWpBU0UxSVFRMi9ici9Ba1g5RHdQeEJTbjYxd1R0d3dBQUF3Qm8vK3dFSWdYRUFCY0FJUUFyQUhTeUNTd3RFUkk1c0FrUXNCclFzQWtRc0NUUUFMQUFSVml3RlM4YnNSVWZQbG13QUVWWXNBa3ZHN0VKRHo1WnNpa0pGUkVTT2JBcEw3SWZLUUZ4c2hvQkNpdFlJZGdiOUZteUF4b3BFUkk1c2c4cEdoRVNPYkFKRUxJZkFRb3JXQ0hZRy9SWnNCVVFzaVVCQ2l0WUlkZ2I5Rmt3TVFFVUJnY1dGaFVVQkNNaUpEVTBOamNtSmpVME5qTXlGZ00wSmlJR0ZSUVdNallETkNZaUJoVVVGakkyQkFKdVgzSjcvdnpZMmY3N2ZIQmViZkRNemZEVGdkUi9mZHg3SDI2NmJHMjZiUVF3YTZjd05iaDB3T0hpdjNXNk1qQ25hN3JhMnZ5dmJJV0ViV3VBZkFMOVgzdDFaV1IyZGdBQUFnQmQvL29FRWdYRUFCVUFJUUJrc2draUl4RVNPYkFKRUxBVzBBQ3dBRVZZc0Frdkc3RUpIejVac0FCRldMQVJMeHV4RVE4K1diSVdFUWtSRWpsOHNCWXZHTElDQVFvcldDSFlHL1Jac2dBQ0NSRVNPYkFSRUxJU0FRb3JXQ0hZRy9SWnNBa1FzaDBCQ2l0WUlkZ2I5Rmt3TVFFR0l5SUNOVFEyTmpNeUFCRVZFQUFGSXpVek5qWURNalkzTlRRbUlnWVZGQllESG5xandPUjAxbzNjQVFMK25QNmZIU1BYNXR4SmdDT0UwbjErQW1HQkFRM2JrT3FDL3JqKzdVVCtkdjVpQThrRHlRRVBWRXBmb2NTdGhJbW9BUC8vQUlMLzlRR2RCRkVBSmdBUyt3QUFCd0FTLy9zRFVmLy9BQzcrdUFHSUJGRUFKd0FTLytZRFVRQUdBQkFTQUFBQkFEOEFwQU9FQkU0QUJnQVhzZ0FIQ0JFU09RQ3dBRVZZc0FVdkc3RUZHejVaTURFQkJSVUJOUUVWQVRZQ1R2eTdBMFVDZCtEekFYWEJBWFR6QUFJQWtRRmtBKzhEMWdBREFBY0FKUUN3Qnkrd0E5Q3dBeSt5QUFFS0sxZ2gyQnYwV2JBSEVMSUVBUW9yV0NIWUcvUlpNREVCSVRVaEVTRTFJUVB2L0tJRFh2eWlBMTRERE1yOWpza0FBQUVBZ0FDbEErQUVUZ0FHQUJleUFBY0lFUkk1QUxBQVJWaXdBaThic1FJYlBsa3dNUUVsTlFFVkFUVUM2djJXQTJEOG9BSjg0Ky8rak1IK2pPOEFBZ0E4Ly9RRG1BWEVBQmdBSXdCZXNna2tKUkVTT2JBSkVMQWMwQUN3QUVWWXNCQXZHN0VRSHo1WnNBQkZXTEFpTHh1eElnOCtXYkljRFFvcldDSFlHL1Jac0FEUXNBQXZzZ1FBRUJFU09iQVFFTElKQVFvcldDSFlHL1Jac2d3UUFCRVNPYklWQUJBUkVqa3dNUUUwTmpZM05qVTBKaU1pQmhVak5qWXpNaFlWRkFjSEJnY0RORFl6TWhZVkZBWWlKZ0ZlUXNNYUtGMWFWbW56QXUzRHllR1llMElDOUVvL1FFcEloRWNCcklXZXZTZzlSMTVqWVZPeHpzeTNvNTU1UzVEK3lUdEpTemszU2tvQUFnQmIvanNHMlFXUUFEWUFRZ0I4c2p0RFJCRVNPYkE3RUxBajBBQ3dLaSt3TXkrd0FFVllzQU12RzdFRER6NVpzQUJGV0xBSUx4dXhDQTgrV2JJRk13Z1JFam15RHpNSUVSSTVzQTh2c0FnUXNqb0NDaXRZSWRnYjlGbXdGZEN3TXhDeUd3SUtLMWdoMkJ2MFdiQXFFTElqQWdvcldDSFlHL1Jac0E4UXNrQUNDaXRZSWRnYjlGa3dNUUVHQWlNaUp3WUdJeUltTnpZU05qTXlGaGNEQmpNeU5qY1NBQ0VpQkFJSEJoSUVNekkyTnhjR0JpTWlKQ2NtRXhJU0pETXlCQklCQmhZek1qWTNFeVlqSWdZR3pRemV2clU5TTRkS2twY1NFSC9EYmxTQlZ6UVRoV2FEQmhIK3dmN0F4UDdSc2drTWl3RWZ6MVMzUUNZOXoybisvcFJiWGdzTTNnR0I5dmtCWjdMOEF3MUtVVFpnSGkweUwyK01BZ2I2L3QrYVRFend5YU1CQm84cVF2M054dHV1QVhFQmlNVCtqZTN4L3FPMktDS0pLREhYek5NQkpnRVNBYlh5Mi81bC9veUlqVjlUQWUwVDBRQUNBQklBQUFWQ0JiQUFCd0FLQUVZQXNBQkZXTEFFTHh1eEJCOCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQVl2RzdFR0R6NVpzZ2tFQWhFU09iQUpMN0lBQVFvcldDSFlHL1Jac2dvRUFoRVNPVEF4QVNFRElRRXpBU0VCSVFNRHcvM01kdjc1QWliakFpZisrUDJjQWFiVEFWUCtyUVd3K2xBQ0h3SmNBQU1BbEFBQUJLTUZzQUFPQUJZQUh3QnRzZ0lnSVJFU09iQUNFTEFSMExBQ0VMQWUwQUN3QUVWWXNBRXZHN0VCSHo1WnNBQkZXTEFBTHh1eEFBOCtXYklYQUFFUkVqbXdGeSt5SHhjQmNiSVBBUW9yV0NIWUcvUlpzZ2dQRnhFU09iQUFFTElRQVFvcldDSFlHL1Jac0FFUXNoNEJDaXRZSWRnYjlGa3dNVE1SSVRJRUZSUUdCeFlXRlJRRUl3RVJJVEkyTlRRbkpUTXlOalUwSmlNamxBSHo5d0VDYkdoMmdmNzU5ZjdxQVJsM2h1aiswdmgyaFh1QzlnV3d4c1Jrb0N3Z3NYek4zQUtSL2psMmFlTUZ1bXRpYkdBQUFRQm0vK3dFNndYRUFCMEFRTElESGg4UkVqa0FzQUJGV0xBTUx4dXhEQjgrV2JBQVJWaXdBeThic1FNUFBsbXdEQkN5RXdFS0sxZ2gyQnYwV2JBREVMSWFBUW9yV0NIWUcvUlpNREVCQmdBaklpUUNKelUwRWlRek1nQVhJeVltSXlJR0J4VVVGak15TmpjRTZ4YisxUG11L3ZlUUE1SUJFYlB4QVNZWS9CS1RqcVd4QXFtamxaWVVBZHJwL3Z1bEFUREppTTRCT3FyKyt1K2RpL0hwZ2V6NGhwd0FBQUlBbEFBQUJOSUZzQUFMQUJVQVJySUNGaGNSRWptd0FoQ3dGZEFBc0FCRldMQUJMeHV4QVI4K1diQUFSVml3QUM4YnNRQVBQbG13QVJDeURBRUtLMWdoMkJ2MFdiQUFFTElOQVFvcldDSFlHL1JaTURFekVTRXlCQklWRlJRQ0JDTURFVE15TmpjMU5DWWpsQUd1d1FFcnBLWCt6OFdtcGNmVkFzN0VCYkNzL3NUTVNjLyt4cW9FNVB2bStlbFI3Zm9BQVFDVUFBQUVUQVd3QUFzQVRnQ3dBRVZZc0FZdkc3RUdIejVac0FCRldMQUVMeHV4QkE4K1diSUxCZ1FSRWptd0N5K3lBQUVLSzFnaDJCdjBXYkFFRUxJQ0FRb3JXQ0hZRy9SWnNBWVFzZ2dCQ2l0WUlkZ2I5Rmt3TVFFaEVTRVZJUkVoRlNFUklRUG4vYW9DdS94SUE3SDlUQUpXQW9yK1FNb0ZzTXorYmdBQkFKUUFBQVF4QmJBQUNRQkFBTEFBUlZpd0JDOGJzUVFmUGxtd0FFVllzQUl2RzdFQ0R6NVpzZ2tFQWhFU09iQUpMN0lBQVFvcldDSFlHL1Jac0FRUXNnWUJDaXRZSWRnYjlGa3dNUUVoRVNNUklSVWhFU0VEMi8yMi9RT2QvV0FDU2dKcC9aY0ZzTXorVHdBQkFHci83QVR3QmNRQUhnQlZzZ3NmSUJFU09RQ3dBRVZZc0Fzdkc3RUxIejVac0FCRldMQURMeHV4QXc4K1diQUxFTElSQVFvcldDSFlHL1Jac0FNUXNoZ0JDaXRZSWRnYjlGbXlIZ3NERVJJNXNCNHZzaHNCQ2l0WUlkZ2I5Rmt3TVNVR0JDTWlKQUluTlJBQUlUSUVGeU1DSVNJR0J4VVVFak15TnhFaE5TRUU4RS8rNkxLMy91YVpBd0U4QVJ2ekFSNGQrQ3IrK2FxeEE4ZXh3bEwrMUFJb3ZXZHFwZ0Uxem5JQlNnRno4T0lCQi9YdGNPeisrMWdCSGNBQUFRQ1VBQUFGR0FXd0FBc0FUQUN3QUVWWXNBWXZHN0VHSHo1WnNBQkZXTEFLTHh1eENoOCtXYkFBUlZpd0FDOGJzUUFQUGxtd0FFVllzQVF2RzdFRUR6NVpzZ2tHQUJFU09iQUpMN0lDQVFvcldDSFlHL1JaTURFaEl4RWhFU01STXhFaEVUTUZHUHo5ZGYzOUFvdjhBb2Y5ZVFXdy9hSUNYZ0FCQUtNQUFBR2ZCYkFBQXdBZEFMQUFSVml3QWk4YnNRSWZQbG13QUVWWXNBQXZHN0VBRHo1Wk1ERWhJeEV6QVovOC9BV3dBQUFCQUMzLzdBUGtCYkFBRHdBdnNnVVFFUkVTT1FDd0FFVllzQUF2RzdFQUh6NVpzQUJGV0xBRkx4dXhCUTgrV2JJTUFRb3JXQ0hZRy9SWk1ERUJNeEVVQkNNaUpqVXpGQll6TWpZMUF1ajgvdnZXNVBqOGMyMW1lUVd3L0FQUjl1Yk5kSFdIZHdBQkFKUUFBQVVZQmJBQURBQlRBTEFBUlZpd0JDOGJzUVFmUGxtd0FFVllzQWd2RzdFSUh6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdDeThic1FzUFBsbXlBQVFDRVJJNXRHb0FlZ0FDWGJJR0JBSVJFam0wWlFaMUJnSmRNREVCQnhFakVUTVJOd0VoQVFFaEFqYWwvZjJNQWFvQk12M2pBanorMUFKMXIvNDZCYkQ5VmEwQi92MTcvTlVBQVFDVUFBQUVKZ1d3QUFVQUtBQ3dBRVZZc0FRdkc3RUVIejVac0FCRldMQUNMeHV4QWc4K1diSUFBUW9yV0NIWUcvUlpNREVsSVJVaEVUTUJrUUtWL0c3OXlzb0ZzQUFBQVFDVUFBQUdhZ1d3QUE0QWJnQ3dBRVZZc0FBdkc3RUFIejVac0FCRldMQUNMeHV4QWg4K1diQUFSVml3QkM4YnNRUVBQbG13QUVWWXNBZ3ZHN0VJRHo1WnNBQkZXTEFNTHh1eERBOCtXYklCQUFRUkVqbTBaUUYxQVFKZHNnY0FCQkVTT2JScUIzb0hBbDJ5Q2dBRUVSSTV0R29LZWdvQ1hUQXhDUUloRVNNUkV3RWpBUk1SSXhFQjNBR2tBYU1CUi93Wi9sSzEvbE1aL0FXdys2UUVYUHBRQWVBQ2d2dWVCR0g5Zi80Z0JiQUFBQUVBbEFBQUJSY0ZzQUFKQUV5eUFRb0xFUkk1QUxBQVJWaXdCUzhic1FVZlBsbXdBRVZZc0Fndkc3RUlIejVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3QXk4YnNRTVBQbG15QWdVQUVSSTVzZ2NGQUJFU09UQXhJU01CRVNNUk13RVJNd1VYL2YxMy9mMENpL3NFQ2Z2M0JiRDc4d1FOQUFJQVp2L3NCUjRGeEFBUUFCNEFScklFSHlBUkVqbXdCQkN3Rk5BQXNBQkZXTEFNTHh1eERCOCtXYkFBUlZpd0JDOGJzUVFQUGxtd0RCQ3lGQUVLSzFnaDJCdjBXYkFFRUxJYkFRb3JXQ0hZRy9SWk1ERUJGQUlFSXlJa0FpYzFOQklrSUFRU0Z3YzBBaU1pQWdjVkZCSXpNaEkxQlI2VS91MnpzZjdybHdHWEFSTUJaQUVUbGdIOXQ2aWt1UUs3cHFpMUFyTFcvcjJ0clFGQTBWTFZBVWF0cS82LzFRWHlBUUwrLyt0VThQNzZBUUQyQUFJQWxBQUFCTlFGc0FBS0FCTUFUYklLRkJVUkVqbXdDaEN3RE5BQXNBQkZXTEFETHh1eEF4OCtXYkFBUlZpd0FTOGJzUUVQUGxteUN3RURFUkk1c0FzdnNnQUJDaXRZSWRnYjlGbXdBeEN5RXdFS0sxZ2gyQnYwV1RBeEFSRWpFU0V5QkJVVUJDTWxJVEkyTlRRbUp5RUJrZjBDTGZRQkgvN24vZjdUQVRDSGpwQisvc2tDSGYzakJiRCswZGJ1eTM5NGRvMENBQUlBWVA4RUJSb0Z4QUFWQUNNQVJySUlKQ1VSRWptd0NCQ3dJTkFBc0FCRldMQVJMeHV4RVI4K1diQUFSVml3Q0M4YnNRZ1BQbG13RVJDeUdRRUtLMWdoMkJ2MFdiQUlFTElnQVFvcldDSFlHL1JaTURFQkZBSUhGd2NsQmlNaUpBSW5OVFFTSkRNeUJCSVhCelFtSXlJQ0J4VVVFak15RWpVRkdZTjIrcVQreWoxR3NQN3Jsd0dYQVJPeHRBRVRsZ0grdUtpanVRSzVwNm0xQXJMUC90Rlp3NVQxRGEwQlFORlMxUUZHcmF2K3Y5VUY5djcrLytwVjdQNzJBUUQyQUFJQWxBQUFCTjRGc0FBT0FCY0FXcklGR0JrUkVqbXdCUkN3RU5BQXNBQkZXTEFFTHh1eEJCOCtXYkFBUlZpd0FpOGJzUUlQUGxteUR3SUVFUkk1c0E4dnNnRUJDaXRZSWRnYjlGbXlDd0VQRVJJNXNBSVFzQTdRc0FRUXNoY0JDaXRZSWRnYjlGa3dNUUVoRVNNUklUSUVGUlFHQndFVklRRWhNalkxTkNZbklRS3IvdWI5QWdEOEFSS05mZ0ZIL3ZIOXdnRUVnSkNGaFA3MUFqSDl6d1d3NHRhU3hUWDlvUTBDL0lGd2RZQUNBQUFCQUVyLzdBU0tCY1FBSndCanNoRW9LUkVTT1FDd0FFVllzQWt2RzdFSkh6NVpzQUJGV0xBZEx4dXhIUTgrV2JJQ0hRa1JFam15RGdrZEVSSTVzQWtRc2hFQkNpdFlJZGdiOUZtd0FoQ3lGd0VLSzFnaDJCdjBXYklpSFFrUkVqbXdIUkN5SlFFS0sxZ2gyQnYwV1RBeEFUUW1KQ2NtTlRRa016SVdGaFVqTkNZaklnWVZGQllFRmhZVkZBUWpJaVFtTlRNVUZqTXlOZ09OaC82Z2FNY0JIK1dZN29qOGo0VjhpWlFCVk01Zy91bnZudjczay8ya21ZU0ZBWGRnYUdwQmZjbXc1SERQZm5LQmFsOVFhMldCcDNDMjEzWE9pWHlJYXdBQUFRQXRBQUFFc0FXd0FBY0FMZ0N3QUVWWXNBWXZHN0VHSHo1WnNBQkZXTEFDTHh1eEFnOCtXYkFHRUxJQUFRb3JXQ0hZRy9SWnNBVFFNREVCSVJFakVTRTFJUVN3L2pyNy9qNEVnd1RrK3h3RTVNd0FBUUI5Lyt3RXZRV3dBQkFBUExJRUVSSVJFamtBc0FCRldMQUpMeHV4Q1I4K1diQUFSVml3RUM4YnNSQWZQbG13QUVWWXNBUXZHN0VFRHo1WnNnMEJDaXRZSWRnYjlGa3dNUUVSRkFBaklnQTFFVE1SRkJZeklCRVJCTDMrMS9mNi90cjhsSkFCSkFXdy9EUG8vdkVCQyswRHpQd3lrcG9CTkFQR0FBRUFFZ0FBQlIwRnNBQUdBRGl5QUFjSUVSSTVBTEFBUlZpd0FTOGJzUUVmUGxtd0FFVllzQVV2RzdFRkh6NVpzQUJGV0xBREx4dXhBdzgrV2JJQUFRTVJFamt3TVFFQklRRWpBU0VDbFFGeUFSYjk5UFg5OWdFVkFUMEVjL3BRQmJBQUFRQXdBQUFHNVFXd0FBd0FZTElGRFE0UkVqa0FzQUJGV0xBQkx4dXhBUjgrV2JBQVJWaXdDQzhic1FnZlBsbXdBRVZZc0Fzdkc3RUxIejVac0FCRldMQURMeHV4QXc4K1diQUFSVml3Qmk4YnNRWVBQbG15QUFFREVSSTVzZ1VCQXhFU09iSUtBUU1SRWprd01RRVRNd0VqQVFFakFUTVRBVE1GQ3VENy9yRHkvdXYrNWZQK3NQdmlBUmJVQVdnRVNQcFFCQ2Y3MlFXdys3b0VSZ0FCQUNrQUFBVHBCYkFBQ3dCVEFMQUFSVml3QVM4YnNRRWZQbG13QUVWWXNBb3ZHN0VLSHo1WnNBQkZXTEFFTHh1eEJBOCtXYkFBUlZpd0J5OGJzUWNQUGxteUFBRUVFUkk1c2dZQkJCRVNPYklEQUFZUkVqbXlDUVlBRVJJNU1ERUJBU0VCQVNFQkFTRUJBU0VDaVFFeUFTVCtTQUhDL3RuK3gvN0cvdG9Cdy81SEFTUURvZ0lPL1M3OUlnSVcvZW9DM2dMU0FBQUJBQWNBQUFUV0JiQUFDQUF4QUxBQVJWaXdBUzhic1FFZlBsbXdBRVZZc0Fjdkc3RUhIejVac0FCRldMQUVMeHV4QkE4K1diSUFBUVFSRWprd01RRUJJUUVSSXhFQklRSnZBVThCR1A0WS92NFhBUmtDL2dLeS9Hajk2QUlZQTVnQUFBRUFVQUFBQkl3RnNBQUpBRVFBc0FCRldMQUhMeHV4Qng4K1diQUFSVml3QWk4YnNRSVBQbG15QUFFS0sxZ2gyQnYwV2JJRUFBSVJFam13QnhDeUJRRUtLMWdoMkJ2MFdiSUpCUWNSRWprd01TVWhGU0UxQVNFMUlSVUJnZ01LKzhRQzhmMFVCQi9LeXFRRVFNeWdBQUFCQUlUK3ZBSWNCbzRBQndBaUFMQUVMN0FITDdJQUFRb3JXQ0hZRy9SWnNBUVFzZ01CQ2l0WUlkZ2I5Rmt3TVFFakVUTVZJUkVoQWh5bHBmNW9BWmdGMFBtcHZRZlNBQUFCQUJUL2d3TmtCYkFBQXdBVEFMQUNMN0FBUlZpd0FDOGJzUUFmUGxrd01STXpBU01VOEFKZzhBV3crZE1BQVFBTS9yd0JwZ2FPQUFjQUpRQ3dBaSt3QVMrd0FoQ3lCUUVLSzFnaDJCdjBXYkFCRUxJR0FRb3JXQ0hZRy9SWk1ERVRJUkVoTlRNUkl3d0JtdjVtcDZjR2p2Z3V2UVpYQUFBQkFEVUMyUU0xQmJBQUJnQW5zZ0FIQ0JFU09RQ3dBRVZZc0FNdkc3RURIejVac0FEUXNnRUhBeEVTT2JBQkw3QUYwREF4QVFNakFUTUJJd0cxc3M0Qks2c0JLczBFcHY0ekF0ZjlLUUFCQUFQL1FRT1lBQUFBQXdBYkFMQUFSVml3QXk4YnNRTVBQbG15QUFFS0sxZ2gyQnYwV1RBeEJTRTFJUU9ZL0dzRGxiKy9BQUFCQURFRTBRSUpCZ0FBQXdBa0FMQUJMN0lQQVFGZHNBUFFzQU12dEE4REh3TUNYYklBQVFNUkVqa1pzQUF2R0RBeEFTTUJJUUlKeXY3eUFSVUUwUUV2QUFBQ0FGci83QVA3QkU0QUhnQXBBSVd5RnlvckVSSTVzQmNRc0NEUUFMQUFSVml3Rnk4YnNSY2JQbG13QUVWWXNBUXZHN0VFRHo1WnNBQkZXTEFBTHh1eEFBOCtXYklDRndRUkVqbXlDeGNFRVJJNXNBc3ZzQmNRc2c4QkNpdFlJZGdiOUZteUVnc1BFUkk1UUFrTUVod1NMQkk4RWdSZHNBUVFzaDhCQ2l0WUlkZ2I5Rm13Q3hDeUl3Y0tLMWdoMkJ2MFdUQXhJU1luQmlNaUpqVTBKRE16TlRRbUl5SUdGU00wTmpZek1oWVhFUlFYRlNVeU5qYzFJeUlHRlJRV0F3TVFESFNvbzg0QkFlK1ZYbUJUYXZOMnkzMis0Z01wL2YxSWZ5Q0RoNGhkSDBaNXVvbXR1VWRVWlZOQVdadFl2NjMrR0pKWEVhOUdPOHhlVmtaVEFBSUFmUC9zQkRJR0FBQVBBQnNBWkxJVEhCMFJFam13RXhDd0ROQUFzQWt2c0FCRldMQU1MeHV4REJzK1diQUFSVml3QXk4YnNRTVBQbG13QUVWWXNBWXZHN0VHRHo1WnNnVU1BeEVTT2JJS0RBTVJFam13REJDeUV3RUtLMWdoMkJ2MFdiQURFTElZQVFvcldDSFlHL1JaTURFQkZBSWpJaWNISXhFekVUWXpNaElSSnpRbUl5SUhFUll6TWpZM0JETGh4YjVxRE56emFiTEc0dk44ZHA1QVFaOXlmQUlDRXZ6KzFvbDFCZ0Q5MG56KzJ2NzRCN0N3aXY1Q2phcXNBQUVBVC8vc0EvVUVUZ0FjQUV1eUFCMGVFUkk1QUxBQVJWaXdEeThic1E4YlBsbXdBRVZZc0Fndkc3RUlEejVac2dBQkNpdFlJZGdiOUZteUF3Z1BFUkk1c2hNUENCRVNPYkFQRUxJV0FRb3JXQ0hZRy9SWk1ERWxNalkzTXc0Q0l5SUFFVFUwQURNeUZoY2pKaVlqSWdZSEZSUVdBamxiZUFUbEJIYktkZVArOWdFSTVNSHpCdVVFZDF4MmdBRi9ybXBPWmE5bUFTWUJBeG4zQVNuaHQxMTRxNjRuc0swQUFBSUFULy9zQkFNR0FBQU9BQmtBWkxJWEdoc1JFam13RnhDd0E5QUFzQVl2c0FCRldMQURMeHV4QXhzK1diQUFSVml3REM4YnNRd1BQbG13QUVWWXNBZ3ZHN0VJRHo1WnNnVUREQkVTT2JJS0F3d1JFam13REJDeUVnRUtLMWdoMkJ2MFdiQURFTElYQVFvcldDSFlHL1JaTURFVE5CSXpNaGNSTXhFakp3WWpJZ0kzRkJZek1qY1JKaU1pQmsvb3c2eHE4OXdNYmJhKzYvTi9kWlZGUTVWMmdBSWwrZ0V2ZUFJcStnQndoQUV5OHFXNWhRSE9ncnNBQUFJQVUvL3NCQXNFVGdBVkFCMEFnN0lXSGg4UkVqbXdGaEN3Q05BQXNBQkZXTEFJTHh1eENCcytXYkFBUlZpd0FDOGJzUUFQUGxteUdnQUlFUkk1c0JvdnRMOGF6eG9DWGJSZkdtOGFBbkcwSHhvdkdnSnh0TzhhL3hvQ2NiS01HZ0Zkc2d3SENpdFlJZGdiOUZtd0FCQ3lFQUVLSzFnaDJCdjBXYklTQ0FBUkVqbXdDQkN5RmdFS0sxZ2gyQnYwV1RBeEJTSUFOVFUwTmpZek1oSVJGU0VXRmpNeU54Y0dCZ01pQmdjaE5TWW1BbG5uL3VGOTRvdmQ4ZjA5QzUxM3AybURRZG1rWkhzUkFjOEljaFFCSS9JZW92K08vdWIrL21LR25JZDlZV3NEbjR4OUVucDlBQUFCQUMwQUFBTFdCaFVBRkFCVHNnY1ZGaEVTT1FDd0FFVllzQWd2RzdFSUlUNVpzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdBQzhic1FBUFBsbXdCQkN3RU5DeUV3RUtLMWdoMkJ2MFdiQUIwTEFJRUxJTkFRb3JXQ0hZRy9SWk1ERXpFU00xTXpVME5qTXlGd2NtSXlJVkZUTVZJeEhTcGFYSXRFQklCaWcxcnR6Y0E0YTBZN1RFRXI0SXMyQzAvSG9BQUFJQVV2NVdCQXdFVGdBWkFDUUFnN0lpSlNZUkVqbXdJaEN3QzlBQXNBQkZXTEFETHh1eEF4cytXYkFBUlZpd0JpOGJzUVliUGxtd0FFVllzQXN2RzdFTEVUNVpzQUJGV0xBWEx4dXhGdzgrV2JJRkF4Y1JFam13Q3hDeUVRRUtLMWdoMkJ2MFdiSVBFUmNSRWpteUZRTVhFUkk1c0JjUXNoMEJDaXRZSWRnYjlGbXdBeEN5SWdFS0sxZ2gyQnYwV1RBeEV6UVNNeklYTnpNUkZBUWpJaVluTnhZek1qWTFOUVlqSWdJM0ZCWXpNamNSSmlNaUJsTHR4TGxxQzl2KzkrRjM0enR6Y0tSNWpHbXZ2dkh5aFhhVFIwV1RlSVVDSmZ3QkxZRnQrK2ZWOW1OUWtvV0RmMGwxQVM3Mm83dCtBZHg3dmdBQkFIa0FBQVA0QmdBQUVBQkNzZ29SRWhFU09RQ3dFQyt3QUVWWXNBSXZHN0VDR3o1WnNBQkZXTEFOTHh1eERROCtXYkFBUlZpd0JpOGJzUVlQUGxtd0FoQ3lDZ0VLSzFnaDJCdjBXVEF4QVRZeklCTVJJeEUwSmlNaUJ4RWpFVE1CYkhlMkFWb0Y4MkZla2tqejh3UEVpdjUxL1QwQ3VuQmRndno3QmdBQUFBSUFmUUFBQVpBRjFRQURBQTBBUHJJR0RnOFJFam13QmhDd0FkQUFzQUJGV0xBQ0x4dXhBaHMrV2JBQVJWaXdBUzhic1FFUFBsbXdBaEN3RE5Dd0RDK3lCZzBLSzFnaDJCdjBXVEF4SVNNUk13RTBOaklXRlJRR0lpWUJmL1B6L3Y1SGhFaEloRWNFT2dFWk9FcEtPRGRKU1FBQUF2KzEva3NCaFFYVkFBd0FGZ0JKc2dNWEdCRVNPYkFERUxBUTBBQ3dBRVZZc0F3dkc3RU1HejVac0FCRldMQUVMeHV4QkJFK1diSUpBUW9yV0NIWUcvUlpzQXdRc0JYUXNCVXZzZzhOQ2l0WUlkZ2I5Rmt3TVFFUkZBWWpJaWMxRmpNeU54RURORFl5RmhVVUJpSW1BWHFsbjBNK0pqQjVBeFZIaEVoSWhFY0VPdnRtcHE4UndBbUVCS01CR1RoS1NqZzNTVWtBQVFCOUFBQUVOZ1lBQUF3QVV3Q3dBRVZZc0FRdkc3RUVJVDVac0FCRldMQUlMeHV4Q0JzK1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNBc3ZHN0VMRHo1WnNnQUlBaEVTT2JScUFIb0FBbDJ5QmdnQ0VSSTV0R1VHZFFZQ1hUQXhBUWNSSXhFekVUY0JJUUVCSVFIY2JQUHpUQUVyQVNUK2JnRzkvdWNCMEcvK253WUEvSXBmQVZIK1BmMkpBQUVBakFBQUFYOEdBQUFEQUIwQXNBQkZXTEFDTHh1eEFpRStXYkFBUlZpd0FDOGJzUUFQUGxrd01TRWpFVE1CZi9QekJnQUFBQUVBZkFBQUJua0VUZ0FkQUhleUJCNGZFUkk1QUxBQVJWaXdBeThic1FNYlBsbXdBRVZZc0Fjdkc3RUhHejVac0FCRldMQUFMeHV4QUJzK1diQUFSVml3R3k4YnNSc1BQbG13QUVWWXNCVXZHN0VWRHo1WnNBQkZXTEFNTHh1eERBOCtXYklCQXhzUkVqbXlCUWNWRVJJNXNBY1FzaEFCQ2l0WUlkZ2I5Rm13R05Bd01RRVhOak15RnpZek1oWVhFU01STkNZaklnWUhFeU1SSmlNaUJ4RWpFUUZoQjNMRzJWQjIxck92QXZOYWFGTnBGUUh6QmI2U1BmTUVPbkdGcHFiR3dmMDVBc0JuWUZsSS9Sb0N5TDkzL1BBRU9nQUJBSGtBQUFQNEJFNEFFQUJUc2dzUkVoRVNPUUN3QUVWWXNBTXZHN0VER3o1WnNBQkZXTEFBTHh1eEFCcytXYkFBUlZpd0RpOGJzUTRQUGxtd0FFVllzQWN2RzdFSER6NVpzZ0VPQXhFU09iQURFTElMQVFvcldDSFlHL1JaTURFQkZ6WXpJQk1SSXhFMEppTWlCeEVqRVFGZUIzakRBVklHODFsbGswanpCRHA5a2Y1OS9UVUN2V2RqaGZ6K0JEb0FBQUlBVC8vc0JEMEVUZ0FQQUJvQVE3SU1HeHdSRWptd0RCQ3dHTkFBc0FCRldMQUVMeHV4QkJzK1diQUFSVml3REM4YnNRd1BQbG15RWdFS0sxZ2gyQnYwV2JBRUVMSVlBUW9yV0NIWUcvUlpNREVUTkRZMk16SUFGeGNVQmdZaklnQTFGeFFXTWpZMU5DWWpJZ1pQZnVTVTJ3RVJDd0Y3NVpibC91M3ppdmFKalhsM2pBSW5uLytKL3VicE9hRDhpZ0V4L2dtbnZjQzVwTUM5QUFJQWZQNWdCREFFVGdBUEFCb0FicklUR3h3UkVqbXdFeEN3RE5BQXNBQkZXTEFNTHh1eERCcytXYkFBUlZpd0NTOGJzUWtiUGxtd0FFVllzQVl2RzdFR0VUNVpzQUJGV0xBREx4dXhBdzgrV2JJRkRBTVJFam15Q2d3REVSSTVzQXdRc2hNQkNpdFlJZGdiOUZtd0F4Q3lHQUVLSzFnaDJCdjBXVEF4QVJRQ0l5SW5FU01STXhjMk16SVNFU2MwSmlNaUJ4RVdNekkyQkREa3dMSnI4K0FLYTdqRzRmS0JlSlZCUXBaMGd3SVMrLzdWZGYzL0JkcHVndjdaL3ZvR29yNTcvaUIrdXdBQUFnQlAvbUFFQWdST0FBNEFHUUJyc2hjYUd4RVNPYkFYRUxBRDBBQ3dBRVZZc0FNdkc3RURHejVac0FCRldMQUdMeHV4QmhzK1diQUFSVml3Q0M4YnNRZ1JQbG13QUVWWXNBd3ZHN0VNRHo1WnNnVUREQkVTT2JJS0F3d1JFam15RWdFS0sxZ2gyQnYwV2JBREVMSVhBUW9yV0NIWUcvUlpNREVUTkJJek1oYzNNeEVqRVFZaklnSTNGQll6TWpjUkppTWlCay9veHJWcUR0anphcXJDNnZPRGRKQkdSbzUwaFFJbS9nRXFmMnY2SmdIOGNBRXY5cWE5ZXdIc2Ryb0FBUUI4QUFBQ3RBUk9BQTBBUnJJSkRnOFJFamtBc0FCRldMQUlMeHV4Q0JzK1diQUFSVml3Q3k4YnNRc2JQbG13QUVWWXNBVXZHN0VGRHo1WnNBc1FzZ0lCQ2l0WUlkZ2I5Rm15Q1FzRkVSSTVNREVCSmlNaUJ4RWpFVE1YTmpNeUZ3S3pNRE9uT3ZQb0JsaWNOQ0lEWEFpQS9Sd0VPbm1ORGdBQkFFdi83QVBLQkU0QUpnQnBzZ2tuS0JFU09RQ3dBRVZZc0Frdkc3RUpHejVac0FCRldMQWNMeHV4SEE4K1diSUNIQWtSRWptd0FoQ3dGdEN3Q1JDeUVBRUtLMWdoMkJ2MFdiSU5GaEFSRWptMERBMGNEUUpkc0J3UXNpUUJDaXRZSWRnYjlGbXlJU1FDRVJJNXRBTWhFeUVDWFRBeEFUUW1KaWNtTlRRMk16SVdGU00wSmlNaUJoVVVGZ1FXRmhVVUJpTWlKaVkxTXhZV016STJBdHRyK0ZPMjdMYkM3L05vVmxCbFhnRWVvMC95eElYUWRPd0ZlR05nWkFFbVFVUTBLRmluakx6QW1VWmRTajQ0UGo5WGVsZVN0V0NvWVZaZFNRQUFBUUFJLyt3Q2NnVkJBQlFBVXJJQUZSWVJFamtBc0FCRldMQVRMeHV4RXhzK1diQUFSVml3RFM4YnNRMFBQbG13RXhDd0FkQ3dBTkN3QUMrd0FSQ3lCQUVLSzFnaDJCdjBXYkFORUxJSUFRb3JXQ0hZRy9SWnNBUVFzQkRRTURFQkVUTVZJeEVVRmpNeU54VUdJeUFSRVNNMU14RUJyYisvTVQ4cUsxTk4vdWl5c2dWQi92bTAvYVErTndxOEZ3RTFBbVcwQVFjQUFRQjMvK3dEOXdRNkFCQUFVN0lLRVJJUkVqa0FzQUJGV0xBSEx4dXhCeHMrV2JBQVJWaXdEUzhic1EwYlBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQVBMeHV4RHc4K1diSUFBZzBSRWptd0FoQ3lDZ0VLSzFnaDJCdjBXVEF4SlFZaklpWTFFVE1SRkRNeU54RXpFU01EREd2RnNMWHpxN0UrOCtWcWZzN0RBcjM5UnM1L0F3bjd4Z0FCQUJZQUFBUGFCRG9BQmdBNHNnQUhDQkVTT1FDd0FFVllzQUV2RzdFQkd6NVpzQUJGV0xBRkx4dXhCUnMrV2JBQVJWaXdBeThic1FNUFBsbXlBQVVERVJJNU1ERUJFek1CSXdFekFmcmwrLzZKMC82Ry9BRTBBd2I3eGdRNkFBQUJBQ0VBQUFYTUJEb0FEQUJnc2dVTkRoRVNPUUN3QUVWWXNBRXZHN0VCR3o1WnNBQkZXTEFJTHh1eENCcytXYkFBUlZpd0N5OGJzUXNiUGxtd0FFVllzQU12RzdFRER6NVpzQUJGV0xBR0x4dXhCZzgrV2JJQUN3TVJFam15QlFzREVSSTVzZ29MQXhFU09UQXhBUk16QVNNREF5TUJNeE1UTXdRenJPMysyY2pvNU1qKzJPMnYzcmNCVHdMcis4WUM1LzBaQkRyOUhRTGpBQUFCQUI4QUFBUG9CRG9BQ3dCVEFMQUFSVml3QVM4YnNRRWJQbG13QUVWWXNBb3ZHN0VLR3o1WnNBQkZXTEFFTHh1eEJBOCtXYkFBUlZpd0J5OGJzUWNQUGxteUFBb0VFUkk1c2dZS0JCRVNPYklEQUFZUkVqbXlDUVlBRVJJNU1ERUJFeUVCQVNFREF5RUJBU0VDQWM0QkR2NjFBVmIrOU5qWC92SUJWdjYyQVF3QzFnRmsvZXY5MndGeS9vNENKUUlWQUFFQURQNUxBOVlFT2dBUEFEK3lBQkFSRVJJNUFMQUFSVml3RHk4YnNROGJQbG13QUVWWXNBVXZHN0VGRVQ1WnNnQUZEeEVTT2JBUEVMQUIwTEFGRUxJSkFRb3JXQ0hZRy9SWk1ERUJFeUVCQWlNaUp6VVhNalkzTndFaEFmZmNBUVArVW1QdE5VQXVYRjBiSS82RUFRWUJYQUxlK3lMKzd4SzhBME5QWFFRMUFBQUJBRklBQUFQQUJEb0FDUUJFQUxBQVJWaXdCeThic1FjYlBsbXdBRVZZc0FJdkc3RUNEejVac2dBQkNpdFlJZGdiOUZteUJBQUNFUkk1c0FjUXNnVUJDaXRZSWRnYjlGbXlDUVVIRVJJNU1ERWxJUlVoTlFFaE5TRVZBWUFDUVB5U0FpWDk1UU5Qd3NLZkF0ZkVtZ0FBQVFBNC9wZ0NrUVk5QUJjQU5ySVNHQmtSRWprQXNBd3ZzQUJGV0xBQUx4dXhBQmMrV2JJR0FBd1JFam13QmkreUJRY0tLMWdoMkJ2MFdiSVNCUVlSRWprd01RRWtBelUwSXpVeU5UVTJOamNYQmdjVkZBY1dGUlVXRndKaC9wOEh3Y0VEdGJBd3JRYXRyUWF0L3BoakFXRFY0YkxpMUxUZU1vdzQrdGpoVzF6ajFmbzRBQUFCQUs3KzhnRlZCYkFBQXdBVEFMQUFMN0FBUlZpd0FpOGJzUUlmUGxrd01RRWpFVE1CVmFlbi92SUd2Z0FBQVFBYi9wZ0NkUVk5QUJnQU5ySUZHUm9SRWprQXNBc3ZzQUJGV0xBWUx4dXhHQmMrV2JJUkdBc1JFam13RVMreUVnY0tLMWdoMkJ2MFdiSUZFaEVSRWprd01SYzJOelUwTnlZMU5TWW5OeFlXRlJVVU14VWlGUlVVQmdjYnNBUzJ0Z1N3TUxheXdzS3p0ZHM1LzlEblZsYnF6Lzg1akRQbHVjamhzdUhGdStVekFBRUFkUUdEQk53REx3QVhBRCt5RVJnWkVSSTVBTEFQTDdJREdBOFJFam13QXkrd0R4Q3lDQUVLSzFnaDJCdjBXYkFERUxBTDBMQURFTElVQVFvcldDSFlHL1Jac0E4UXNCZlFNREVCRkFZaklpNENJeUlHRlNNME5qTXlIZ0l6TWpZMUJOeStqa3A5bWtNbVEwM0J0cFJLaFpGREowTlVBeEt3M3ppSklXaFVxOXM3aENKd1ZBQUNBSWIrbEFHWkJFMEFBd0FQQUQ2eUJ4QVJFUkk1c0FjUXNBRFFBTEFBUlZpd0RTOGJzUTBiUGxtd0FFVllzQU12RzdFREZ6NVpzQTBRc2djTkNpdFlJZGdiOUZtd0FOQ3dBQzh3TVJNekV5RUJGQVlqSWlZMU5EWXpNaGFxMFJqKy93RUhTRUZDU0VoQ1FVZ0NsdnYrQlRjNFMwczROMHRMQUFFQVpQOExCQW9GSmdBZ0FGMnlHeUVpRVJJNUFMQUFSVml3RVM4YnNSRWJQbG13QUVWWXNBb3ZHN0VLRHo1WnNnQUJDaXRZSWRnYjlGbXlBd29SRVJJNXNBb1FzQWZRc0FjdnNCRVFzQlRRc0JRdnNoZ1JDaEVTT2JBUkVMSWJBUW9yV0NIWUcvUlpNREVsTWpZM013WUdCeFVqTlNZQ05UVTBFamMxTXhVV0ZoY2pKaVlqSWdNSEZCWUNUMWw0QnVRRXhaTEl0OHpNdDhpZXVRVGtCM1piNWhBQmY2NW9VSWpOSE9ycUlnRWYzQnpWQVNBaTRlQWMySnhnZGY3SVNMQ3RBQUFCQUY0QUFBUjhCY01BSHdCbHNob2dJUkVTT1FDd0FFVllzQkl2RzdFU0h6NVpzQUJGV0xBRkx4dXhCUTgrV2JJRUFRb3JXQ0hZRy9SWnNBalFzaDRGRWhFU09iQWVMN0lmQVFvcldDSFlHL1Jac0F6UXNCNFFzQS9Rc2hZRkVoRVNPYkFTRUxJWkFRb3JXQ0hZRy9SWk1ERUJGeFFISVFjaE5UTTJOalVuSXpVekp6UTJJQllWSXpRbUl5SUdGUmNoRlFIOUIwQUN1QUg3NTFJbkt3ZWhtd2o2QVpibzlXbGVXV2NKQVRjQ1ZyQ0hWY3JLQ1c5YnVjZnl5dXJhdUY5cGdtanl4d0FDQUYzLzVRVlBCUEVBR3dBb0FEK3lBaWtxRVJJNXNBSVFzQi9RQUxBQVJWaXdBaThic1FJUFBsbXdFTkN3RUMrd0FoQ3lJQWNLSzFnaDJCdjBXYkFRRUxJbUJ3b3JXQ0hZRy9SWk1ERWxCaU1pSndjbk55WTFORGNuTnhjMk16SVhOeGNIRmhVVUJ4Y0hBUlFXRmpJMk5qUW1KaUlHQmdROW44dktub0dOaDJSdGtJMk9tOERDbTVHT2xHdGlpNDc4ZUc2KzNMNXRiYjNldm0xcmYzNkVrSW1jeGNpbGs1Q1JjM1dVa1plZnlzR2NqWkVDZTNqT2RYYk83c3gxZGN3QUFBRUFHUUFBQk1BRnNBQVdBSElBc0FCRldMQVdMeHV4Rmg4K1diQUFSVml3REM4YnNRd1BQbG15QUF3V0VSSTVzQllRc0FIUXNnOE1GaEVTT2JBUEw3QVQwTEFUTDdRUEV4OFRBbDJ3Qk5Dd0JDK3dFeEN5RWdRS0sxZ2gyQnYwV2JBRzBMQVBFTEFIMExBSEw3QVBFTElPQkFvcldDSFlHL1Jac0FyUU1ERUJBU0VCSVJVaEZTRVZJUkVqRVNFMUlUVWhOU0VCSVFKdEFUc0JHUDUzQVEzK293RmQvcVA4L3A0Qll2NmVBUm4rZHdFWkF6UUNmUDAybUlxWC90TUJMWmVLbUFMS0FBSUFpUDd5QVcwRnNBQURBQWNBR0FDd0FDK3dBRVZZc0FZdkc3RUdIejVac2dVQkF5c3dNUk1STXhFUkl4RXppT1hsNWY3eUF4djg1UVBJQXZZQUFnQmEvaVlFakFYRUFDOEFQUUNDc2lBK1B4RVNPYkFnRUxBdzBBQ3dCeSt3QUVWWXNDQXZHN0VnSHo1WnNqa2dCeEVTT2JBNUVMSVRBUW9yV0NIWUcvUlpzZ0k1RXhFU09iQUhFTElPQVFvcldDSFlHL1Jac2dzT0V4RVNPYkl5SUFjUkVqbXdNaEN5TEFFS0sxZ2gyQnYwV2JJYU1pd1JFam13SUJDeUp3RUtLMWdoMkJ2MFdiSWtMQ2NSRWprd01RRVVCeFlWRkFRaklpUTFOeFFXTXpJMk5UUW1KeTRDTlRRM0ppWTFOQ1F6TWdRVkl6UW1JeUlHRlJRV0JCWVdKU1luQmhVVUZoOENOalUwSmdTTXE0Zis4dXIyL3VEeW5JaDVqWWE3dkw1ZHFVRkVBUlBtOEFFTTg1RjRlNHQ0QVlQQ1d2M05VVXhzWTVXekxuT0lBY2U0V1dTNXJjYlp6d0Z1ZUY5UFRWczNNMjZhYmJoYU1vaGtxc3poekdxQVgxSlVWMmh4bVc0VkhDaDhVVll2TlJBdmRWRmhBQUlBWFFUZkF5TUZ6QUFJQUJFQUlnQ3dCeSt5RHdjQlhiSUNCUW9yV0NIWUcvUlpzQXZRc0FjUXNCRFFzQkF2TURFVE5EWXlGaFFHSWlZbE5EWXlGaFFHSWlaZFEzWkVSSFpEQWNoRWRrUkVka1FGVmpKRVJHUkVSREV5UkVSa1JFUUFBd0JYLyt3RjRnWEVBQm9BS0FBMkFJNnlIemM0RVJJNXNCOFFzQW5Rc0I4UXNEUFFBTEFBUlZpd015OGJzVE1QUGxtd0xkQ3dMUyt5QWpNdEVSSTVzQUl2dEE4Q0h3SUNYYklKTFRNUkVqbXdDUyswQUFrUUNRSmRzZzBKQWhFU09iSVFBZ29yV0NIWUcvUlpzQUlRc2hjQ0NpdFlJZGdiOUZteUdnSUpFUkk1c0MwUXNoOElDaXRZSWRnYjlGbXdNeEN5SlFnS0sxZ2gyQnYwV1RBeEFSUUdJQ1kxTlRRMk16SVdGU00wSmlNaUJoVVZGQll6TWpZMUpUUUNKQ01pQkFJUUVnUWdKQklsTkJJa0lBUVNFQUlFSXlJa0FnUmVyLzdBdmIrZW82MmNYRmhjWjJoYldWb0JwcGIrN3FPZi91K2Ntd0VSQVVBQkU1ajY3N3NCU3dHQUFVcTd1LzY0d3NIK3Q3d0NWSmlpMWJSeHJ0V2xsV0JUaUhaMWRvWlJZb1dtQVIycnBQN2cvcXorNEtlcUFTQ255Z0ZheDhmK3B2NXMvcWJKeUFGYUFBSUFqUUt6QXhFRnhBQWFBQ1FBajdJTkpTWVJFam13RFJDd0hOQUFzQUJGV0xBVUx4dXhGQjgrV2JJREpSUVJFam13QXkrd0FOQ3dBQyt5QVFNVUVSSTVzZ29ERkJFU09iQUtMN0FVRUxJTkFnb3JXQ0hZRy9SWnNoQUtEUkVTT2JMTUVBRmRRQk1NRUJ3UUxCQThFRXdRWEJCc0VId1FqQkFKWGJLNkVBRnhzQU1Rc2hzQ0NpdFlJZGdiOUZtd0NoQ3lId0lLSzFnaDJCdjBXVEF4QVNjR0l5SW1OVFEyTXpNMU5DTWlCaFVuTkRZek1oWVZFUlFYSlRJMk56VWpCZ1lWRkFKZ0VVMThkb09vcldaMFFVbXRyNGlKbWhyK29DaFVHMnBNVmdMQlJGSjdhVzU1TTM4ek1BNW9nWkdFL3NSaFVZSWtHWWtCUERGWS8vOEFWd0NLQTRVRHFRQW1BWHJyQUFBSEFYb0JVZ0FBQUFFQWZ3RjJBOElESlFBRkFCb0FzQVF2c0FIUXNBRXZzQVFRc2dJQkNpdFlJZGdiOUZrd01RRWpFU0UxSVFQQ3lQMkZBME1CZGdFRXF3QUVBRmYvN0FYaUJjUUFEUUFiQURFQU9nQ2RzZ283UEJFU09iQUtFTEFTMExBS0VMQXgwTEFLRUxBejBBQ3dBRVZZc0FNdkc3RURIejVac0FCRldMQUtMeHV4Q2c4K1diQURFTElTQ0FvcldDSFlHL1Jac0FvUXNoZ0lDaXRZSWRnYjlGbXlIUW9ERVJJNXNCMHZzaDhEQ2hFU09iQWZMN1FBSHhBZkFsMnlNaDBmRVJJNXNESXZzaHdJQ2l0WUlkZ2I5Rm15SlJ3eUVSSTVzQjBRc0N6UXNCOFFzam9JQ2l0WUlkZ2I5Rmt3TVJNMEVpUWdCQklRQWdRaklpUUNKVFFDSkNNaUJBSVFFZ1FnSkJJbEVTTVJJVElXRlJRSEZoWVVGaGNWSXlZMU5DWWpKek15TmpVMEppY2pWN3NCU3dHQUFVcTd1LzY0d3NIK3Q3d0ZFWmIrN3FPZi91K2Ntd0VSQVVBQkU1ajlKWmNCR1ptc2VFRTBCd3FiRFVKTm5vOUZYVWRkalFMWnlnRmF4OGYrcHY1cy9xYkp5QUZheTZZQkhhdWsvdUQrclA3Z3A2b0JJRnYrcndOU2gzMTFQeDF2bzBRWEVDS2dURU9HUGpaR093RUFBUUNIQlJJRFhnV3dBQU1BRVFDd0FTK3lBZ01LSzFnaDJCdjBXVEF4QVNFMUlRTmUvU2tDMXdVU25nQUNBSDhEcndLTEJjUUFDUUFUQURteUFCUVZFUkk1c0FyUUFMQUFSVml3QUM4YnNRQWZQbG13Q3RDd0NpK3lCUUlLSzFnaDJCdjBXYkFBRUxJUUFnb3JXQ0hZRy9SWk1ERUJNaFlVQmlNaUpqUTJFekkyTlRRbUlnWVVGZ0dIYXBxWWJHMmJuV3MxUlVWcVNFa0Z4SjdjbTV2Y252NTRSelUwVEV4b1NBQUNBRjhBQVFQekJQd0FDd0FQQUVZQXNBa3ZzQUJGV0xBTkx4dXhEUTgrV2JBSkVMQUEwTEFKRUxJR0FRb3JXQ0hZRy9SWnNBUFFzQTBRc2c0QkNpdFlJZGdiOUZteUJRNEdFUkk1dEFzRkd3VUNYVEF4QVNFVklSRWpFU0UxSVJFekFTRTFJUUtjQVZmK3Fkaittd0ZsMkFFeS9LOERVUU9EeC81OEFZVEhBWG43QmNRQUFBRUFQQUtiQXJJRnV3QVhBRm15Q0JnWkVSSTVBTEFBUlZpd0R5OGJzUThmUGxtd0FFVllzQUF2RzdFQUV6NVpzaFlDQ2l0WUlkZ2I5Rm15QWdBV0VSSTVzZ01QQUJFU09iQVBFTElJQWdvcldDSFlHL1Jac2d3UEFCRVNPYklURHdBUkVqa3dNUUVoTlFFMk5UUW1JeUlHRlNNME5qTXlGaFVVRHdJaEFyTDluQUVkY1RZME9rSzZxWWVQbkdwaWpBRnpBcHQ5QVFWblF5bzFRalowbVlCemEyWlhjUUFCQURjQ2p3S3BCYm9BSkFCOXNoNGxKaEVTT1FDd0FFVllzQTB2RzdFTkh6NVpzQUJGV0xBWEx4dXhGeE0rV2JJQkZ3MFJFamw4c0FFdkdMWkFBVkFCWUFFRGNiS1FBUUZkc0EwUXNnWUNDaXRZSWRnYjlGbXlDUUVORVJJNXNBRVFzaU1DQ2l0WUlkZ2I5Rm15RWlNQkVSSTVzaHNYRFJFU09iQVhFTEllQWdvcldDSFlHL1JaTURFQk16STFOQ1lqSWdZVkl6UTJNeklXRlJRSEZoVVVCaU1pSmpVekZCWXpNalkxTkNjakFReFJoRFkrTUVHNnBZS1BvNGVWc1krSHE3cEZQRDg5aGx3RWJHRWpOU2NqWTN4NWFYY3pLWTVxZm45eEpqVTNLbVVCQUFBQkFIQUUwUUpJQmdBQUF3QWpBTEFDTDdJUEFnRmRzQURRc0FBdnRBOEFId0FDWGJBQ0VMQUQwQm13QXk4WU1ERUJJUUVqQVRNQkZmN3J3d1lBL3RFQUFRQ1MvbUFFSHdRNkFCSUFZTElORXhRUkVqa0FzQUJGV0xBQUx4dXhBQnMrV2JBQVJWaXdCeThic1FjYlBsbXdBRVZZc0JBdkc3RVFFVDVac0FCRldMQU5MeHV4RFE4K1diQUFSVml3Q2k4YnNRb1BQbG13RFJDeUJBRUtLMWdoMkJ2MFdiSUxEUWNSRWprd01RRVJGaFl6TWpjUk14RWpKd1lqSWljUkl4RUJoQUpaYXFnNzg5OEhYSk41VGZJRU92MkVqWUo1QXhMN3hsWnJOLzQrQmRvQUFRQkZBQUFEVmdXd0FBb0FLN0lDQ3d3UkVqa0FzQUJGV0xBSUx4dXhDQjgrV2JBQVJWaXdBQzhic1FBUFBsbXlBUUFJRVJJNU1ERWhFU01pSkRVMEpETWhFUUtFVU9iKzl3RUs1Z0VoQWdqKzF0WC8rbEFBQUFFQWpnSkZBYWtEVWdBS0FCYXlDQXNNRVJJNUFMQUNMN0VJQ2l0WTJCdmNXVEF4RXpRMk1oWVZGQVlqSWlhT1NvWkxUa0JCVEFMS09rNU9PanRLU2dBQkFHMytRUUhKQUFNQURnQTBzZ2tQRUJFU09RQ3dCaSt3QUVWWXNBNHZHN0VPRHo1WnNBWVFzUWNLSzFqWUc5eFpzZzBIRGhFU09iSUJEUTRSRWprd01TVUhGaFVVQmlNbk1qWTFOQ1luTndFK0M1YXNtd2RDUjBkUUlBTTJHNUpwZG9rdktpMGpCWXNBQVFDQUFxQUNBZ1d6QUFZQU9iSUJCd2dSRWprQXNBQkZXTEFGTHh1eEJSOCtXYkFBUlZpd0FDOGJzUUFUUGxteUJBVUFFUkk1c0FRUXNnTUNDaXRZSWRnYjlGa3dNUUVqRVFjMUpUTUNBcm5KQVc4VEFxQUNPakNTZHdBQ0FIY0NzZ01zQmNRQURBQWFBRUN5Q1JzY0VSSTVzQWtRc0JEUUFMQUFSVml3QWk4YnNRSWZQbG15Q1JzQ0VSSTVzQWt2c2hBQ0NpdFlJZGdiOUZtd0FoQ3lGd0lLSzFnaDJCdjBXVEF4RXpRMklCWVZGUlFHSXlJbU5SY1VGak15TmpjMU5DWWpJZ1lWZDc4Qk5zQzhuWjYrcjExUVRsc0JYVTlPWFFSaG9NUENwa2lmdzhTakJXSnViR0ZRWVc1dFpnRC8vd0JkQUlvRG1RT3BBQ1lCZXdrQUFBY0Jld0YrQUFELy93QlpBQUFGZ3dXckFDY0IxZi9aQXBnQUp3RjhBUnNBQ0FFSEFkZ0N4UUFBQUJBQXNBQkZXTEFGTHh1eEJSOCtXVEF4Ly84QVVBQUFCY3dGcmdBbkFYd0E4QUFJQUNjQjFmL1FBcHNCQndIV0F4b0FBQUFRQUxBQVJWaXdDUzhic1FrZlBsa3dNZi8vQUdjQUFBWDhCYnNBSndGOEFhZ0FDQUFuQWRnRFBnQUFBUWNCMXdBd0Fwc0FFQUN3QUVWWXNDQXZHN0VnSHo1Wk1ERUFBZ0JDL244RHBRUk9BQmtBSXdCaHNoQWtKUkVTT2JBUUVMQWQwQUN3QUVWWXNDRXZHN0VoR3o1WnNBQkZXTEFRTHh1eEVCYytXYkFoRUxJZERRb3JXQ0hZRy9SWnNBRFFzQUF2c2dNQUVCRVNPYkFRRUxJSkFRb3JXQ0hZRy9SWnNnd1FBQkVTT2JJV0VBQVJFamt3TVFFR0JnY0hCaFVVRmpNeU5qVXpCZ1lqSWlZMU5EYzNOamMzRXhRR0lpWTFORFl5RmdKMkFqVkpaMXBpV1ZocTh3THZ3czdpbTF4T0NnTDNSNFJJU0lSSEFwVjhrVTlxWVdwZVhXUlRzZERKdUtXalhVaHpOUUUzT0V0TE9EZExTd0FBQXYvMkFBQUhWd1d3QUE4QUVnQjNBTEFBUlZpd0JpOGJzUVlmUGxtd0FFVllzQUF2RzdFQUR6NVpzQUJGV0xBRUx4dXhCQTgrV2JJUkJnQVJFam13RVMreUFnRUtLMWdoMkJ2MFdiQUdFTElJQVFvcldDSFlHL1Jac2dzR0FCRVNPYkFMTDdJTUFRb3JXQ0hZRy9SWnNBQVFzZzRCQ2l0WUlkZ2I5Rm15RWdZQUVSSTVNREVoSVFNaEF5RUJJUlVoRXlFVklSTWhBU0VEQjFmOGZnLytDcmorM2dOREErRDllaEVDSlAza0ZBS1grdTBCZVJzQlZQNnNCYkRGL21qRi9qWUJad0tJQUFBQkFFMEExZ1BzQklZQUN3QTRBTEFETDdJSkRBTVJFam13Q1MreUNna0RFUkk1c2dRRENSRVNPYklCQ2dRUkVqbXdBeEN3QmRDeUJ3UUtFUkk1c0FrUXNBdlFNREVUQVFFM0FRRVhBUUVIQVFGTkFUeit4SlFCT3dFOGxQN0VBVHlVL3NUK3hRRnNBVUlCUXBiK3ZnRkNsdjYrL3I2V0FVSCt2d0FBQXdCcC82RUZJZ1h1QUJjQUlBQXBBR2F5RUNvckVSSTVzQkFRc0IzUXNCQVFzQ2JRQUxBQVJWaXdFQzhic1JBZlBsbXdBRVZZc0FRdkc3RUVEejVac2hvUUJCRVNPYklqRUFRUkVqbXdJeEN3RzlDd0VCQ3lIUUVLSzFnaDJCdjBXYkFhRUxBazBMQUVFTEltQVFvcldDSFlHL1JaTURFQkZBSUVJeUluQnlNM0poRTFOQklrTXpJWE56TUhGaE1GRkJjQkppTWlBZ2NGTkNjQkZqTXlFalVGSXBUKzdiU2toRnVwa2NPV0FSU3l4WTlYcDVPZEFmeEVSd0gyVjRla3VRSUN2eXorRjA1cHFiVUNzdGIrdmExTGx1N0RBV2REMVFGRXIyV1A4OEgrdzB2UGdBTTZWZjcvNndpbWN2emNOZ0VBOWdBQUFnQ1VBQUFFZmdXd0FBd0FGQUJYc2dJVkZoRVNPYkFDRUxBUDBBQ3dBRVZZc0FBdkc3RUFIejVac0FCRldMQUtMeHV4Q2c4K1diSUJDZ0FSRWptd0FTK3lEZ29BRVJJNXNBNHZzZ2tCQ2l0WUlkZ2I5Rm13QVJDeURRRUtLMWdoMkJ2MFdUQXhBUkV6TWdRVkZBUWpJeEVqRVJNUk16STJOQ1luQVlmeDlBRVMvdTd6OHZQejluMlJqSG9Gc1A3bzdzakg3LzdVQmJEK0pmNGFndDZFQWdBQUFRQ0kvK3dFbXdZVkFDd0FXN0lqTFM0UkVqa0FzQUJGV0xBRkx4dXhCU0UrV2JBQVJWaXdGUzhic1JVUFBsbXdBRVZZc0FBdkc3RUFEejVac2c0RkZSRVNPYkFWRUxJY0FRb3JXQ0hZRy9SWnNpSVZCUkVTT2JBRkVMSXFBUW9yV0NIWUcvUlpNREVoSXhFME5qTXlGaFVVRGdJVkZCNENGUlFHSXlJbUp6Y1dGak15TmpVMExnSTFORFkxTkNZaklnY0JldkxsenJ2WEcwVVdRYkpSMmNaUXF5WXhMWDgyWVZwR3JsRitYRkM0QkFSUjF1NjdxVDVpY1VFbkxGU1VpVXVydVNjWnd4d2xWa014VzRpSVVGakpUVkZoOXdBQUF3QkkvK3dHaEFSUUFDa0FOQUE4QU1xeUFqMCtFUkk1c0FJUXNDM1FzQUlRc0RqUUFMQUFSVml3Rnk4YnNSY2JQbG13QUVWWXNBVXZHN0VGRHo1WnNBRFFzQUF2c2d3RkZ4RVNPYkFNTDdLUERBRmRzQmNRc2hBQkNpdFlJZGdiOUZtd0Z4Q3dHOUN3R3kreU9BQWJFUkk1c0RndnRCODRMemdDY2JUdk9QODRBbkcwWHpodk9BSnh0TDg0enpnQ1hiS01PQUZkc2lBSENpdFlJZGdiOUZtd0FCQ3lJd0VLSzFnaDJCdjBXYkFGRUxJcUFRb3JXQ0hZRy9SWnNBd1FzaThIQ2l0WUlkZ2I5Rm13R3hDeU5RRUtLMWdoMkJ2MFdUQXhCU0luQmdZaklpWTFORFl6TXpVMEppTWlCaFVuTkRZek1oYzJGeklTRlJVaEZoWXpNamMzRndZR0pUSTJOelVqQmdZVkZCWUJJZ1lISVRVMEpnVG0vWXhCMW9hd3lPN3B2MTlZVzNQeS9jWGZiNFBJMU83OVNRbVlob2xyUFVsRzBmeVlPb2d0eEdoNFhRTXJZMzhRQWNSdEZLRk5WTENjbnF4SFcyZFpRaE9TdVlXSEF2Nzk2NG1MbmpvaXBqaEF1RHNyMFFKZlJrRlBBdWVLZng1eGVnQUNBR2YvN0FSQUJpd0FIUUFyQUdXeUJ5d3RFUkk1c0FjUXNDalFBTEFBUlZpd0dTOGJzUmtoUGxtd0FFVllzQWN2RzdFSER6NVpzZzhIR1JFU09iQVBMN0lSRHdjUkVqbXdHUkN5R0FFS0sxZ2gyQnYwV2JBUEVMSWlBUW9yV0NIWUcvUlpzQWNRc2lnQkNpdFlJZGdiOUZrd01RRVNFUlVVQWdZaklpWW1OVFEyTmpNeUZ5WW5CeWMzSmljM0ZoYzNGd01uSmlZaklnWVZGQll6TWpZMUEwTCtmdVdNaXVKK2NjNkVrbkV4ZnN4T3JINmlTKzZ4dEU2UEFTQjdUbjZMalc1dmlRVVgvdmYrYjFLbS92bVNmdUtJbGVkOVc2bDZoMjF5VWlyRE1vZDRiZjBaRWpBNHFKVitxTWl0QUFBREFFTUFrd1EzQk13QUF3QU5BQmtBVXJJRUdoc1JFam13QkJDd0FOQ3dCQkN3RWRBQXNBTXZzZ0FCQ2l0WUlkZ2I5Rm13QXhDeENRb3JXTmdiM0ZteUJBMEtLMWdoMkJ2MFdiQUFFTEVSQ2l0WTJCdmNXYklYRFFvcldDSFlHL1JaTURFQklUVWhBVElXRkFZaklpWTBOZ00wTmpNeUZoVVVCaU1pSmdRMy9Bd0Q5UDRKUkVwS1JFTktTa3BLUTBSS1NrUkRTZ0pHMUFHeVRISkxTM0pNL0VvNlRFdzZPVXBLQUFNQVQvOTNCRDBFdXdBVkFCMEFKUUJtc2dRbUp4RVNPYkFFRUxBYjBMQUVFTEFqMEFDd0FFVllzQVF2RzdFRUd6NVpzQUJGV0xBUEx4dXhEdzgrV2JJWUJBOFJFam15SUFRUEVSSTVzQ0FRc0JuUXNBUVFzaHNCQ2l0WUlkZ2I5Rm13R0JDd0lkQ3dEeEN5SXdFS0sxZ2gyQnYwV1RBeEV6UTJOak15RnpjekJ4WVJGQVlHSXlJbkJ5TTNKaE1VRndFbUl5SUdCVFFuQVJZek1qWlBmdVNVYWxoSGtXYkVlK1dXWFZwSWtXYk84MEFCS3k4NWQ0d0NDVHIrMkNzemU0a0NKNS8vaVNLUDBKbit3S0Q4aWg2VHo1WUJOcHhpQW1FV3ZhZVVYZjJuRWNBQUFBSUFndjVnQkRjR0FBQVBBQm9BWkxJVEd4d1JFam13RXhDd0ROQUFzQWt2c0FCRldMQU1MeHV4REJzK1diQUFSVml3Qmk4YnNRWVJQbG13QUVWWXNBTXZHN0VERHo1WnNnVU1BeEVTT2JJS0RBTVJFam13REJDeUV3RUtLMWdoMkJ2MFdiQURFTElZQVFvcldDSFlHL1JaTURFQkZBSWpJaWNSSXhFekVUWXpNaElSSnpRbUl5SUhFUll6TWpZRU4rUENzbXZ6ODJxd3hlUHpnM2FWUVVLV2RJTUNFdmYrMFhYOS93ZWcvZGQzL3RyKytnV211bnYrSUg2N0FBQUNBQjhBQUFXZEJiQUFFd0FYQUdzQXNBQkZXTEFQTHh1eER4OCtXYkFBUlZpd0NDOGJzUWdQUGxteUZBZ1BFUkk1c0JRdnNoQVVEeEVTT2JBUUw3QUEwTEFRRUxJWEJ3b3JXQ0hZRy9SWnNBUFFzQWdRc0FYUXNCUVFzZ2NCQ2l0WUlkZ2I5Rm13RnhDd0N0Q3dFQkN3RGRDd0R4Q3dFdEF3TVFFekZTTVJJeEVoRVNNUkl6VXpFVE1SSVJFekFTRTFJUVVlZjMvOC9YWDhmSHo4QW92OC9Ia0NpLzExQks2aSsvUUNoLzE1QkF5aUFRTCsvZ0VDL2FLNkFBRUFqd0FBQVlJRU9nQURBQjBBc0FCRldMQUNMeHV4QWhzK1diQUFSVml3QUM4YnNRQVBQbGt3TVNFakVUTUJndlB6QkRvQUFBRUFqZ0FBQkdzRU9nQU1BRjhBc0FCRldMQUVMeHV4QkJzK1diQUFSVml3Q0M4YnNRZ2JQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFMTHh1eEN3OCtXYklHQWdRUkVqbXdCaSswSHdZdkJnSnhzbzhHQVYyeUFRRUtLMWdoMkJ2MFdiSUtBUVlSRWprd01RRWpFU01STXhFekFTRUJBU0VCNzIveThsVUJVQUVzL21FQnVmN0xBYXorVkFRNi9sQUJzUDN6L2RNQUFRQWlBQUFFTmdXd0FBMEFXd0N3QUVWWXNBd3ZHN0VNSHo1WnNBQkZXTEFHTHh1eEJnOCtXYklCREFZUkVqbXdBUyt3QU5Dd0FSQ3lBZ2NLSzFnaDJCdjBXYkFEMExBR0VMSUVBUW9yV0NIWUcvUlpzQU1Rc0FqUXNBblFzQUFRc0F2UXNBclFNREVCTnhVSEVTRVZJUkVITlRjUk13R2g2dW9DbGZ4dWdvTDlBMmRIazBmOTlzb0NoeWVUSndLV0FBQUJBQ0VBQUFJdUJnQUFDd0JLQUxBQVJWaXdDaThic1FvaFBsbXdBRVZZc0FRdkc3RUVEejVac2dFRUNoRVNPYkFCTDdBQTBMQUJFTElDQndvcldDSFlHL1Jac0FQUXNBYlFzQWZRc0FBUXNBblFzQWpRTURFQk54VUhFU01SQnpVM0VUTUJtcFNVODRhRzh3TjVOWkkxL1JrQ2tDK1NMd0xlQUFFQWtQNUxCUWtGc0FBVEFHZXlCaFFWRVJJNUFMQUFSVml3QUM4YnNRQWZQbG13QUVWWXNCQXZHN0VRSHo1WnNBQkZXTEFFTHh1eEJCRStXYkFBUlZpd0RDOGJzUXdQUGxtd0FFVllzQTR2RzdFT0R6NVpzQVFRc2drQkNpdFlJZGdiOUZteURRQU1FUkk1c2hJT0FCRVNPVEF4QVJFVUJpTWlKemNXTXpJMU5RRVJJeEV6QVJFRkNiNnBSandPS0RwNy9ZSDgvQUovQmJENkdMZkdFY2NNdURFRUZmdnJCYkQ3N0FRVUFBRUFmdjVMQkFZRVRnQWFBR0d5RlJzY0VSSTVBTEFBUlZpd0F5OGJzUU1iUGxtd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBS0x4dXhDaEUrV2JBQVJWaXdHQzhic1JnUFBsbXlBUmdERVJJNXNBb1FzZzhCQ2l0WUlkZ2I5Rm13QXhDeUZRRUtLMWdoMkJ2MFdUQXhBUmMyTXpJV0Z4RVVCaU1pSnpjV016STFFVFFtSXlJSEVTTVJBVndOYzhTd3RRRzdwa1U2RGlnN2ZGMXBrVXZ6QkRxV3F0YlMvUnUwd2hIR0RMQUMyWGh3Wi96Z0JEb0FBZ0JrLyt3SExRWEVBQmNBSXdDUnNnRWtKUkVTT2JBQkVMQWEwQUN3QUVWWXNBd3ZHN0VNSHo1WnNBQkZXTEFPTHh1eERoOCtXYkFBUlZpd0F5OGJzUU1QUGxtd0FFVllzQUF2RzdFQUR6NVpzQTRRc2hBQkNpdFlJZGdiOUZteUVnQU9FUkk1c0JJdnNoVUJDaXRZSWRnYjlGbXdBQkN5RndFS0sxZ2gyQnYwV2JBREVMSVlBUW9yV0NIWUcvUlpzQXdRc2gwQkNpdFlJZGdiOUZrd01TRWhCaU1pSkFJbkVUUVNKRE15RnlFVklSRWhGU0VSSVFVeU54RW1JeUlHQnhFVUZnY3QvSjJuZWFmKzk1UUNrUUVMcUh1bkExejlUQUpXL2FvQ3UvdDlZMmh5VzZHdkFiSVVrd0VOcWdFNnJBRVNsaFRNL203SS9rQWNEUVE0RHMrOC9zckIwUUFBQXdCYi8rd0c4Z1JQQUI0QUtnQXlBSnV5R1RNMEVSSTVzQmtRc0NUUXNCa1FzQzdRQUxBQVJWaXdBeThic1FNYlBsbXdBRVZZc0Fndkc3RUlHejVac0FCRldMQVhMeHV4Rnc4K1diQUFSVml3R3k4YnNSc1BQbG15QlFnWEVSSTVzaThYQ0JFU09iQXZMN1FmTHk4dkFuR3lqQzhCWGJJTUJ3b3JXQ0hZRy9SWnNCY1FzaEFCQ2l0WUlkZ2I5Rm15R1FnWEVSSTVzQ0xRc0FNUXNpZ0JDaXRZSWRnYjlGbXdLOUF3TVJNMEFETXlGelkyRnpJU0ZSVWhGaFl6TWpZM0Z3WUdJeUluQmlNaUFCRVhGQll6TWpZMU5DWWpJZ1lsSWdZSElUVTBKbHNCRCtENWhrRzNiZGJ1L1ZZTGtYVlpqMGRQUjgxNDk0eUc5dVArOHZLR2VYZUdoM2gxaUFQaFZYZ1VBYlZ4QWlmNEFTK3hWRjRCL3Yzc2lJdWVLaktlUDBHdXJnRXRBUUlKcXJxNXdLYSt1cnFKZVJsdmVnQUFBUUNMQUFBQ2xRWVZBQXdBTXJJRERRNFJFamtBc0FCRldMQUVMeHV4QkNFK1diQUFSVml3QUM4YnNRQVBQbG13QkJDeUNRRUtLMWdoMkJ2MFdUQXhNeEUwTmpNeUZ3Y21JeUlWRVl2Q3NEOVpHU295b3dTY3RzTVZ1UXU2KzJnQUFnQlIvK3dGSGdYRUFCWUFIZ0Jic2dBZklCRVNPYkFYMEFDd0FFVllzQTh2RzdFUEh6NVpzQUJGV0xBQUx4dXhBQTgrV2JJRkR3QVJFam13QlMrd0R4Q3lDQUVLSzFnaDJCdjBXYkFBRUxJWEFRb3JXQ0hZRy9SWnNBVVFzaG9CQ2l0WUlkZ2I5Rmt3TVFVZ0FCRTFJU1ltSXlJSEJ5YzNOak1nQUJFVkZBSUVKekkyTnlFVkZCWUN1UDdjL3IwRDBBWGZ6S2VYTkRFaHNOb0JPZ0Zyb3Y3bHFaYStFdjB2dWhRQllBRkppZUR3TkJQR0QwaitpLzYzYThQK3c2L1UycjBmdWI4QUFmL2sva3NDMHdZVkFCNEFjYklVSHlBUkVqa0FzQUJGV0xBVkx4dXhGU0UrV2JBQVJWaXdFQzhic1JBYlBsbXdBRVZZc0Iwdkc3RWRHejVac0FCRldMQUZMeHV4QlJFK1diQWRFTElBQVFvcldDSFlHL1Jac0FVUXNnc0JDaXRZSWRnYjlGbXdBQkN3RHRDd0Q5Q3dGUkN5R2dFS0sxZ2gyQnYwV1RBeEFTTVJGQVlqSWljM0ZoWXpNalVSSXpVek5UUTJNeklYQnlZaklnY1ZNd0tFeWJXa1NEWVBCMFFTZUtXbHdyRTlXeGttTzUwQnlRT0cvRFd3d0JHL0F3cXVBOHEwWXJiREZid0tyV2NBQWdCWS8rd0ZxZ1l1QUJnQUpnQmJzZ1FuS0JFU09iQUVFTEFqMEFDd0FFVllzQTB2RzdFTkh6NVpzQUJGV0xBRUx4dXhCQTgrV2JJUERRUVJFam13RHkreUZnZ0tLMWdoMkJ2MFdiQU5FTEljQVFvcldDSFlHL1Jac0FRUXNpTUJDaXRZSWRnYjlGa3dNUUVVQWdRaklpUUNKelUwRWlRek1oYzJOalV6RkFZSEZoY0hOQ1lqSWdJSEZSUVNNeklTTlFVUWxQN3R0TEQrNjVjQmx3RVRzZitpVDB5N2VYeFhCUDI0cUtTNUFybW9xYlVDc3RiK3ZhMnRBVURSVXRVQlJxMm9EWU9DcE5FanA5OFM5djcrLyt0VTdQNzJBUUQyQUFBQ0FFLy83QVM3QktnQUZ3QWlBRnV5RkNNa0VSSTVzQlFRc0NEUUFMQUFSVml3QkM4YnNRUWJQbG13QUVWWXNCUXZHN0VVRHo1WnNnWUVGQkVTT2JBR0w3SU5DQW9yV0NIWUcvUlpzQlFRc2hvQkNpdFlJZGdiOUZtd0JCQ3lJQUVLSzFnaDJCdjBXVEF4RXpRMk5qTXlGelkyTlRNVUJnY1dGeFVVQmdZaklnQVJGeFFXTWpZMU5DWWpJZ1pQZmVTVTRZbzFNS2RZWno4Q2UrZVY0LzdzOG9yMmlZMTVkNHdDSjZIOWlaVVRhbktHc3lWOW5oMmcvSW9CTGdFQkNhZTl3TG1udmIwQUFBRUFmZi9zQmowR0FRQVlBRlN5REJrYUVSSTVBTEFBUlZpd0dDOGJzUmdmUGxtd0FFVllzQkV2RzdFUkh6NVpzQUJGV0xBTUx4dXhEQTgrV2JJQkRCZ1JFam13QVMreUNBZ0tLMWdoMkJ2MFdiQU1FTElWQVFvcldDSFlHL1JaTURFQkZUWTJOVE1VQmdjUkZBQWpJZ0ExRVRNUkZCWXpJQkVSQkwxdFhyVzd4ZjdYOS9yKzJ2eVVrQUVrQmJEY0NvS2g1TllKL2FYby92RUJDKzBEelB3eWtwb0JOQVBHQUFFQWQvL3NCU2dFa3dBWkFHR3lCeG9iRVJJNUFMQUFSVml3RFM4YnNRMGJQbG13QUVWWXNBZ3ZHN0VJRHo1WnNBQkZXTEFFTHh1eEJBOCtXYkFORUxBVDBMSVZFd2dSRWptd0ZTK3lBd2dLSzFnaDJCdjBXYklHRlFnUkVqbXdDQkN5RUFFS0sxZ2gyQnYwV1RBeEFSUUdCeEVqSndZaklpWTFFVE1SRkRNeU54RXpGVFkyTnpjRktJK2k1UVpyeGJDMTg2dXhQdk5JUVFVQ0JKT3lwUXY4ejJwK3pzTUN2ZjFHem44RENZZ0hRa3hNQUFIL3RmNUxBWk1FT2dBTUFDK3lBdzBPRVJJNUFMQUFSVml3REM4YnNRd2JQbG13QUVWWXNBUXZHN0VFRVQ1WnNna0JDaXRZSWRnYjlGa3dNUUVSQmdZaklpYzNGak15TlJFQmt3RzRwMFk0RHljNmZBUTYrNFd5d2hHL0RjQUViQUFBQWdCWi8rd0QrQVJQQUJZQUhnQmVzZ2dmSUJFU09iQUlFTEFYMEFDd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBSUx4dXhDQTgrV2JJTUFBZ1JFam13REMrd0FCQ3lFQUVLSzFnaDJCdjBXYkFJRUxJWEFRb3JXQ0hZRy9SWnNBd1FzaG9IQ2l0WUlkZ2I5Rmt3TVFFeUFCVVZGQVlHSnlJQ05UVWhKaVlqSWdZSEp6WTJFekkyTnlFVkZCWUNBT1FCRkh2YWh0WHZBcW9MajNkV2kwNVBSdEtSVm5nVC9rdHhCRS8rMVBZZm12dU5BUUVCN1lpSW9TYzFuajVEL0dDT2RCbHZlZ0FBQVFDVUJPQURRd1lCQUFnQVJRQ3dCQyt5RHdRQlhiSlFCQUZkc25BRUFWMndBdEN3QWkrd0FkQVpzQUV2R0xBRUVMQUgwTEFITDdRUEJ4OEhBbDJ5QXdjRUVSSTVzQUVRc0FYUUdiQUZMeGd3TVFFVkl5Y0hJelVCTXdORHc1YVZ3UUVQandUckM1eWNEUUVVQUFBQkFISUU0QU0wQmdFQUNBQWxBTEFFTDdJUEJBRmRzQUhRc0FFdnRBOEJId0VDWGJJQUJBRVJFam13Q05Dd0NDOHdNUUUzTXhVQkl3RTFNd0hTa3REKzZaYis2ODRGWnBzSy91a0JHQWtBLy84QWh3VVNBMTRGc0FBR0FIQUFBQUFCQUhVRXpBTDdCZVlBQ3dBdkFMQURMN0lQQXdGZHNBYlFzQVl2dEE4R0h3WUNYYkFERUxJSUFnb3JXQ0hZRy9SWnNBWVFzQXZRc0Fzdk1ERUJGQVlnSmpVekZCWXlOalVDKzdEKzJyQzJTNFJLQmVaK25KeCtRa2xKUWdBQUFRQ0JCTjhCaHdYVkFBa0FIYklEQ2dzUkVqa0FzQWd2c2c4SUFWMnlBZ1VLSzFnaDJCdjBXVEF4RXpRMk1oWVZGQVlpSm9GRWZrUkVma1FGV1RWSFJ6VTBSa1lBQUFJQWVBU05Bak1HS2dBSkFCUUFLZ0N3QlMreUR3VUJYYkFUMExBVEw3SUFDZ29yV0NIWUcvUlpzQVVRc2cwS0NpdFlJZGdiOUZrd01RRXlGaFFHSXlJbU5EWUhGQll6TWpZMU5DWWlCZ0ZXWFlCOVlHRjlmeEZDTGk5QlAySS9CaXA3cW5oNHFudlFMMEZBTUM1RFF3QUJBQ24rVWdHaEFEd0FEd0Fpc2c4UUVSRVNPUUN3QUVWWXNBb3ZHN0VLRVQ1WnNnVURDaXRZSWRnYjlGa3dNU0VHQmhVVU16STNGd1lqSWlZMU5EY0JqRmRLUnl3dUZVbGNYM1QwT0Y0eFJCZU9MRzVidFd3QUFRQjZCTnNEVndYMUFCVUFRQUN3QXkrd0NOQ3dDQysyRHdnZkNDOElBMTJ3QXhDd0M5Q3dDeSt3Q0JDeUR3TUtLMWdoMkJ2MFdiQURFTElTQXdvcldDSFlHL1Jac0E4UXNCWFFNREVCRkFZaklpNENJeUlHRlNjME5qTXlGak15TmpVRFYzOWdKemxwS3hvbU5aVi9Yem1oTkNZMkJlbHVraEU4RERrdUNHNldXamt2QUFBQ0FFa0UwUU5XQmY4QUF3QUhBRUFBc0FJdnNnOENBVjJ3QU5Dd0FDKzBEd0FmQUFKZHNBSVFzQVBRR2JBREx4aXdBQkN3QmRDd0JTK3dBaEN3QnRDd0JpK3dBeEN3QjlBWnNBY3ZHREF4QVRNQkl3TXpBeU1DYU83KzlzV1E2ZDY1QmYvKzBnRXUvdElBQWdDQy9tb0I3UCsrQUFzQUZ3QTlBTEFZTDdBRDBMQURMMEFQQUFNUUF5QURNQU5BQTFBRFlBTUhYYkFQMExBUEw3SUpDUW9yV0NIWUcvUlpzQU1Rc2hVSkNpdFlJZGdiOUZrd01SYzBOak15RmhVVUJpTWlKamNVRmpNeU5qVTBKaU1pQm9KcFRrbHFha2xPYVdVd0lpRXRMU0VpTU81SlkyRkxTbDVnU0NFdUxTSWtNREFBQUFIOGpnVFIvbVlHQUFBREFDTUFzQUV2c2c4QkFWMndBTkFac0FBdkdMQUJFTEFDMExBQ0w3UVBBaDhDQWwwd01RRWpBU0grWnNyKzhnRVZCTkVCTHdBQi9WNEUwZjgyQmdBQUF3QWpBTEFDTDdJUEFnRmRzQUhRc0FFdnRBOEJId0VDWGJBQ0VMQUQwQm13QXk4WU1ERUJJUUVqL2lFQkZmN3J3d1lBL3RILy8veHpCTnYvVUFYMUFBY0FwUHY1QUFBQUFmMCtCT2IrbVFaL0FBNEFKUUN3QUMrd0J0Q3dCaSt5QVFBR0VSSTVzZ2NJQ2l0WUlkZ2I5Rm15RFFFQUVSSTVNREVCSnpZMk5UUWpOeklXRlJRR0J4WDlVUWRKUVpZSHFhdE9TQVRta2dVY0kwaDdhRmc4VGdwRkFBQUMvQXdFNVA4MEJlNEFBd0FIQURjQXNBRXZzQURRR2JBQUx4aXdBUkN3QmRDd0JTK3dCdEN3QmkrMkR3WWZCaThHQTEyd0E5Q3dBeSt3QUJDd0JOQVpzQVF2R0RBeEFTTUJJUUVqQXpQK0I5RCsxUUVHQWlMRDlmb0U1QUVLL3ZZQkNnQUFBZjBjL3BUK0wvK0xBQWdBRVFDd0FpK3lCZ1VLSzFnaDJCdjBXVEF4QlRRMk1oWVVCaUltL1J4SGhFaEloRWZ4TlVkSGFrWkdBQUFCQU1ZRTZRSGlCa0VBQXdBWEFMQUNMN0FBMExBQUw3QUNFTEFEMEJtd0F5OFlNREVCTXdNakFRUGZqSkFHUWY2b0FBTUFad1RmQTdvR3J3QURBQXdBRlFBN0FMQVVMN0FDMExBQ0w3QUIwTEFCTDdRUEFSOEJBbDJ3QWhDd0E5QVpzQU12R0xBVUVMQUwwTEFMTDdJR0JRb3JXQ0hZRy9SWnNBL1FNREVCTXdNakJUUTJNaFlVQmlJbUpUUTJNaFlVQmlJbUFlN2xncEwrcUVSMlEwTjJSQUpXUTNaRVJIWkRCcS8rMWk4eVJFUmtSRVF4TWtSRVpFUkUvLzhBamdKRkFha0RVZ0lHQUhnQUFBQUJBSnNBQUFRM0JiQUFCUUFyQUxBQVJWaXdCQzhic1FRZlBsbXdBRVZZc0FJdkc3RUNEejVac0FRUXNnQUJDaXRZSWRnYjlGa3dNUUVoRVNNUklRUTMvV0Q4QTV3RTVQc2NCYkFBQWdBWkFBQUZvQVd3QUFNQUJnQXZBTEFBUlZpd0FDOGJzUUFmUGxtd0FFVllzQUl2RzdFQ0R6NVpzZ1FCQ2l0WUlkZ2I5Rm15QmdJQUVSSTVNREVCTXdFaEpTRUJBbS96QWo3NmVRRlZBdUQrbUFXdytsREtBN3NBQXdCYi8rd0ZFd1hFQUFNQUZBQWlBSGF5Q0NNa0VSSTVzQWdRc0FIUXNBZ1FzQi9RQUxBQVJWaXdFQzhic1JBZlBsbXdBRVZZc0Fndkc3RUlEejVac2dJSUVCRVNPWHl3QWk4WXRHQUNjQUlDWGJRd0FrQUNBbDJ5QUFJQmNiSUJBUW9yV0NIWUcvUlpzQkFRc2hnQkNpdFlJZGdiOUZtd0NCQ3lId0VLSzFnaDJCdjBXVEF4QVNFMUlRVVVBZ1FqSWlRQ0p6VTBFaVFnQkJJWEJ6UUNJeUlDQnhVVUVqTXlFalVEby81QUFjQUJjSlQrN2JPdy91NlpBNVlCRkFGa0FST1dBZnkzcWFTNUFydW1xYlVDZWNLSjF2NjlyYW9CUE0xZDFRRkVyNnYrdjlVRjd3RUYvdi9yVlBEKytnRUE5Z0FCQUNBQUFBVVNCYkFBQmdBeEFMQUFSVml3QXk4YnNRTWZQbG13QUVWWXNBRXZHN0VCRHo1WnNBQkZXTEFGTHh1eEJROCtXYklBQXdFUkVqa3dNUUVCSVFFekFTRUNtUDZYL3ZFQi92VUIvLzd3QkVUN3ZBV3crbEFBQUFNQWJBQUFCQzRGc0FBREFBY0FDd0JMQUxBQVJWaXdDQzhic1FnZlBsbXdBRVZZc0FJdkc3RUNEejVac2dBQkNpdFlJZGdiOUZteUJRZ0NFUkk1c0FVdnNnWUJDaXRZSWRnYjlGbXdDQkN5Q2dFS0sxZ2gyQnYwV1RBeE55RVZJUk1oRlNFRElSVWhiQVBDL0Q1a0F2YjlDbGNEbWZ4bnlzb0RUY1lES2N3QUFRQ2JBQUFGRkFXd0FBY0FPQUN3QUVWWXNBWXZHN0VHSHo1WnNBQkZXTEFBTHh1eEFBOCtXYkFBUlZpd0JDOGJzUVFQUGxtd0JoQ3lBZ0VLSzFnaDJCdjBXVEF4SVNNUklSRWpFU0VGRlB6OWYvd0VlUVRrK3h3RnNBQUJBRWNBQUFSTkJiQUFEQUE4QUxBQVJWaXdDQzhic1FnZlBsbXdBRVZZc0FNdkc3RUREejVac2dFQkNpdFlJZGdiOUZtd0JkQ3dDQkN5Q2dFS0sxZ2gyQnYwV2JBSDBEQXhBUUVoRlNFMUFRRTFJUlVoQVFNYy9uVUN2UHY2QWNuK053UGkvV3NCaUFMUS9mcktsd0pDQWorWXpQMy9BQUFEQUVvQUFBV3VCYkFBRlFBY0FDTUFiTElMSkNVUkVqbXdDeEN3R2RDd0N4Q3dJTkFBc0FCRldMQVVMeHV4RkI4K1diQUFSVml3Q2k4YnNRb1BQbG15RXhRS0VSSTVzQk12c0FEUXNna0tGQkVTT2JBSkw3QU0wTEFKRUxJaEFRb3JXQ0hZRy9SWnNCblFzQk1Rc2hvQkNpdFlJZGdiOUZtd0lOQXdNUUVXQkJZVkZBWUhCZ2NWSXpVbUpDWVFOaVEzTlRNQkZCWVhFUVlHQlRRbUp4RTJOZ044b1FFRGpvaDhoYW45b3Y3OGo0NEJBNlQ5L2NhcWs1YW5BM1NtbEpHcEJQOERqLzZlbXZaSVRRT3BxUUdNK2dFKy80OERzZjBmb0xBQ0FxNEV0NStndGdUOVVnS3pBQUFCQUVRQUFBVmNCYkFBRndCY3NnQVlHUkVTT1FDd0FFVllzQkV2RzdFUkh6NVpzQUJGV0xBV0x4dXhGaDgrV2JBQVJWaXdCQzhic1FRZlBsbXdBRVZZc0Fzdkc3RUxEejVac2hVTEZoRVNPYkFWTDdBQTBMQVZFTElNQVFvcldDSFlHL1Jac0FuUU1ERUJOalkxRVRNUkJnQUhFU01SSmdBbkVUTVJGaFlYRVRNRFRJT1EvUVArNmZiODhQN29CUHdCajREOEFrTVh2cWNCOGY0Rzl2N1BHZjZLQVhVWEFURDFBZi8rQzUzQ0dBTnNBQUFCQUdzQUFBVGRCY01BSlFCY3NnY21KeEVTT1FDd0FFVllzQm92RzdFYUh6NVpzQUJGV0xBUEx4dXhEdzgrV2JBQVJWaXdKQzhic1NRUFBsbXdEeEN5RVFFS0sxZ2gyQnYwV2JBTzBMQUEwTEFhRUxJSEFRb3JXQ0hZRy9SWnNCRVFzQ0xRc0NQUU1ERWxOaEkzTlRRbUl5SUdGUlVVRWhjVklUVXpKZ0kxTlRRU0pETXlCQklWRlJRQ0J6TVZJUUxmZEhzQm5aQ09tMzkzL2dmWWEzaU9BUVdrcFFFR2tIZHIxUDRRenlBQkVPZHR5dHJaeldUci91c2V6OHRuQVIrZVlyWUJIWitlL3VLMVpaZiszR2ZMQUFBQ0FGYi82d1I1QkU0QUZnQWhBSG15SHlJakVSSTVzQjhRc0JQUUFMQUFSVml3RXk4YnNSTWJQbG13QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFNTHh1eERBOCtXYkFBUlZpd0NDOGJzUWdQUGxteUF3RUtLMWdoMkJ2MFdiSUtFd3dSRWpteUZSTU1FUkk1c0F3UXNob0JDaXRZSWRnYjlGbXdFeEN5SHdFS0sxZ2gyQnYwV1RBeEFSRVdNekkzRndZaklpY0dJeUlDTlRVUUVqTXlGemNCRkJZek1qY1JKaU1pQmdQOUEwWVJDaGd6VEtJMVpzSEQ0K1RFdFdjVC9oeDZkb3hHUm9wemZ3UTYvUHA3QkxRZW82SUJIZmdOQVFvQk5wZUQvYitlcllnQng0N0ZBQUlBbHY1M0JHb0Z4QUFVQUNnQVpiSW5LU29SRWptd0p4Q3dBTkFBc0E4dnNBQkZXTEFBTHh1eEFCOCtXYkFBUlZpd0RDOGJzUXdQUGxteUp3QU1FUkk1c0NjdnNpUUJDaXRZSWRnYjlGbXlCaVFuRVJJNXNBQVFzaGdCQ2l0WUlkZ2I5Rm13REJDeUhnRUtLMWdoMkJ2MFdUQXhBVElXRlJRR0J4WVdGUlFHSXlJbkVTTVJORFkyQVRRbUl5SUdGUkVXTXpJMk5UUW1KeU0xTXpJQ2FjL3lZMWg1Z3ZMUnBYcnlmTmtCVEhGZFlJRlluWEdKZW1kN1NOUUZ4Tml5WDVzd0xMMkN6ZXhUL2pnRnFYUEJjUDV0V25aK2FQemxVb2x1YlpFQnVRQUFBUUFnL2w4RDlRUTZBQWdBT0xJQUNRb1JFamtBc0FCRldMQUJMeHV4QVJzK1diQUFSVml3Qnk4YnNRY2JQbG13QUVWWXNBUXZHN0VFRVQ1WnNnQUhCQkVTT1RBeEFSTXpBUkVqRVFFekFnN3MrLzZQOC82UCt3RTdBdi83OFA0MUFkQUVDd0FBQWdCVS8rd0VPQVlnQUI4QUt3QmlzaFlzTFJFU09iQVdFTEFqMEFDd0FFVllzQU12RzdFRElUNVpzQUJGV0xBV0x4dXhGZzgrV2JBREVMSUpBUW9yV0NIWUcvUlpzZzRXQXhFU09iQU9MN0lwQVFvcldDSFlHL1Jac2gwcERoRVNPYkFXRUxJakFRb3JXQ0hZRy9SWk1ERVRORFl6TWhZWEZTWWpJZ1lWRkJjV0VoY1ZGQVlHSXlJQUVUUTJOeWNtSmhNVUZqTXlOalUwSmljaUJ0RFV0MGx4VDVkcFRscTg0TjRDZXVHVjR2N3V1SWtDVzJoMmlYbDNoNUZ0ZVlrRTZwR2xGaHZETlQwMFhVSlAvdXJNSEp2Mmh3RWpBUU9sL3lJRktJbjlmYUs4dkxaNHl4ZStBQUVBWVAvc0JBd0VUUUFuQUl1eUZpZ3BFUkk1QUxBQVJWaXdDUzhic1FrYlBsbXdBRVZZc0NVdkc3RWxEejVac2hjSkpSRVNPWHl3Rnk4WXRFQVhVQmNDWGJUUUYrQVhBbDJ5R0FjS0sxZ2gyQnYwV2JJREdCY1JFam13Q1JDeUVBRUtLMWdoMkJ2MFdiSU5GeEFSRWpteUhBMEJYYklMRFFGZHNDVVFzaDRCQ2l0WUlkZ2I5Rm15SVI0WUVSSTV0QVFoRkNFQ1hUQXhFelEyTnlZbU5UUTJNeklXRlNNMEppTWlCaFVVRmpNekZTTUdGUlFXTXpJMk5UTVVCQ01pSkdCcFlsZGgrTksvLy9KNldWNXlZR25IMGRKOVptS0M4djc4eTlYKytBRXlYSDhnSkhsSWxxVzFrVHhQVFQ4OFM2MERrejlYV1VLYnVySUFBQUVBWWY1K0E4b0ZzQUFlQUVxeUNCOGdFUkk1QUxBUEw3QUFSVml3QUM4YnNRQWZQbG13QUVWWXNCVXZHN0VWRHo1WnNBQVFzaHdCQ2l0WUlkZ2I5Rm15QVJ3QUVSSTVzQlVRc2dnQkNpdFlJZGdiOUZrd01RRVZBUVlHRlJRV0Z4Y1dGaFVVQmdjbk5qVTJKeWNtSnlZMUVBRTNJVFVEeXY1Z1ZrWTlTOTFoVDNwU2ZWMENibWpFU2prQkpkejl4QVd3a2Y0S2JicHJWRm9ZUWg5aVVVZTZQbVZuUmowaEd6SnBVSXNCSUFGUi9jTUFBQUVBZnY1aEJBWUVUZ0FSQUZPeURCSVRFUkk1QUxBQVJWaXdBeThic1FNYlBsbXdBRVZZc0FBdkc3RUFHejVac0FCRldMQUhMeHV4QnhFK1diQUFSVml3RHk4YnNROFBQbG15QVFNUEVSSTVzQU1Rc2d3QkNpdFlJZGdiOUZrd01RRVhOak15RmhjUkl4RTBKaU1pQnhFakVRRmNESGZCdHEwRDgxNW9sa2J6QkRxRGw4VEYrNXdFVTI1cGV2enZCRG9BQXdCei8rd0VMQVhFQUEwQUZnQWVBSG15QXg4Z0VSSTVzQU1Rc0JQUXNBTVFzQnZRQUxBQVJWaXdDaThic1FvZlBsbXdBRVZZc0FNdkc3RUREejVac2c0RENoRVNPWHl3RGk4WXRHQU9jQTRDWGJRd0RrQU9BbDJ5QUE0QmNiQUtFTElUQVFvcldDSFlHL1Jac0E0UXNoZ0JDaXRZSWRnYjlGbXdBeEN5R3dFS0sxZ2gyQnYwV1RBeEFSQUNJeUlDQXpVUUVqTXlFaE1GSVRVMEppTWlCaFVGSVJVVUZqSTJOd1FzK09QZitnWDI1dUwyQmYwNkFkUjZjVzk2QWRUK0xIdmdkd0lDY3Y3RS9yWUJRUUV0NlFFMUFVeit4UDdUSXpET3k4dk83eXJRMGNyS0FBQUJBS24vOUFKaEJEb0FEQUFvQUxBQVJWaXdBQzhic1FBYlBsbXdBRVZZc0Frdkc3RUpEejVac2dRQkNpdFlJZGdiOUZrd01RRVJGQll6TWpjVkJpTWdFUkVCbkRJK0tpdEtWdjdvQkRyODlqMDJDcndYQVRVREVRQUJBQmIvN2dSS0Jmc0FHUUJRc2dNYUd4RVNPUUN3QUMrd0FFVllzQXN2RzdFTER6NVpzQUJGV0xBUUx4dXhFQTgrV2JBTEVMSUhBUW9yV0NIWUcvUlpzZzhBQ3hFU09iQVBFTEFTMExBQUVMSVZBUW9yV0NIWUcvUlpNREVCTWhZWEFSWVhGemNYQmlNaUppY0RBeUVCSnlZbkl3Y25OZ0VTYkhnZkFhc2tNU0FSQkNvMGJYVXJ5dmIrOXdHQld5SkpJaHNET3dYN1ZWRDd2MVlIQVFIQUNsaHZBaFQ5TndRUDJrc0RBcllRQUFFQVpQNTJBOVFGeEFBc0FGYXlBeTB1RVJJNUFMQVdMN0FBUlZpd0tpOGJzU29mUGxteUFnRUtLMWdoMkJ2MFdiSUlMU29SRWptd0NDK3lDUUVLSzFnaDJCdjBXYklkTFNvUkVqbXdIUkN5RGdFS0sxZ2gyQnYwV2JJa0NRZ1JFamt3TVFFbUl5SUdGUlFoTXhVaklCRVVGZ1FXRnhZVkJnWUhKelkyTlRRbUpDY21KalUwTmpjbUpqVTBKRE15RndPRGlsZDZpQUVjaVl6K25vRUJHVzhqVVFKN1VJTTFMai8rL1V4L2RxT1FibndCQXVPWmZRVGFKRlpMdU1iKzQyS0lRaVVZT0cxSXV6dGtPVkFwSXkxRUlEVzNsSkhFTFNpT1lhYkZMQUFBQVFBdC8vUUV6d1E2QUJRQVhMSUxGUllSRWprQXNBQkZXTEFUTHh1eEV4cytXYkFBUlZpd0NpOGJzUW9QUGxtd0FFVllzQTh2RzdFUER6NVpzQk1Rc2dBSENpdFlJZGdiOUZtd0NoQ3lCUUVLSzFnaDJCdjBXYkFBRUxBTjBMQU8wTEFSMExBUzBEQXhBU01SRkJZek1qY1ZCaU1nRVJFaEVTTVJJelVoQkttZk1UOG1MMHBXL3VqK3RQT3JCSHdEZlAyMlBqY0t2QmNCTlFKVC9JUURmTDRBQWdDQS9tQUVNUVJPQUE0QUdnQlhzaEViSEJFU09iQVJFTEFBMEFDd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBS0x4dXhDaEUrV2JBQVJWaXdCeThic1FjUFBsbXlDUUFIRVJJNXNoRUJDaXRZSWRnYjlGbXdBQkN5RndFS0sxZ2gyQnYwV1RBeEFUSVNFUlVVQWlNaUp4RWpFVFFBQXhZek1qWTFOQ1lqSWdZVkFsYmcrK0RCczJyekFRTVFRNVYyZlh4eVpuY0VUdjdML3U4UDh2N2xkLzM5QTl2eUFTSDgxWFd0czdqRndhQUFBQUVBVXY2S0Era0VUZ0FpQUUyeUd5TWtFUkk1QUxBQVJWaXdBQzhic1FBYlBsbXdBRVZZc0JRdkc3RVVGejVac0FBUXNBVFFzQUFRc2djQkNpdFlJZGdiOUZteUhDTUFFUkk1c0J3UXNnMEJDaXRZSWRnYjlGa3dNUUV5RmhVak5DWWpJZ1lWRlJRV0JCWVdGeFFHQnljMk5qVTBKaWNtSmljMU5EWTJBampFN2VSdFlIR0RsQUV1WURFQmYweC9NeW84UWU3dEFYamNCRTdkdTJGMHZLb2FnNXRXT1ZOQ1NMODRaVGRPTENncUR6ZiswU2VkK29rQUFBSUFVdi9zQkg0RU9nQVBBQnNBVExJSEhCMFJFam13QnhDd0U5QUFzQUJGV0xBT0x4dXhEaHMrV2JBQVJWaXdCeThic1FjUFBsbXdEaEN5QUFFS0sxZ2gyQnYwV2JBSEVMSVRBUW9yV0NIWUcvUlpzQUFRc0JuUU1ERUJJUllWRkFZR0l5SUFFVFUwQURjaEFSUVdNekkyTlRRbUl5SUdCSDcrOWJwNjNwSGkvdkFCRE44Q1FmekhoWHAxZ1lOMWRvY0RkcEw3anV5REFTd0JBd3p1QVNNQy9kaXB1N3k5bkxPd0FBQUJBRC8vN0FQc0JEb0FFQUJKc2dFUkVoRVNPUUN3QUVWWXNBOHZHN0VQR3o1WnNBQkZXTEFLTHh1eENnOCtXYkFQRUxJQUFRb3JXQ0hZRy9SWnNBb1FzZ1VCQ2l0WUlkZ2I5Rm13QUJDd0RkQ3dEdEF3TVFFaEVSUVdNekkzRndZaklBTVJJVFVoQSt6K21Dc3pKemNtVUd6KzdBWCtyZ090QTNuOXNEczdGckVzQVRrQ1ZNRUFBUUNBLytzRUNBUTZBQklBT0xJT0V4UVJFamtBc0FCRldMQUFMeHV4QUJzK1diQUFSVml3RGk4YnNRNFBQbG15QXdFS0sxZ2gyQnYwV2JBQUVMQUkwTEFJTHpBeEFSRVFNekkyTlNZRE14WVJFQUFqSWlZbkVRRnlvWEdSQTI3eGMvNzg1OHZSQVFRNi9YYisvZW1nNXdFZDV2N2kvdlQrd2VMWUFwVUFBZ0JFL2lJRmhRUkJBQm9BSXdCZnNoQWtKUkVTT2JBUUVMQWIwQUN3R1Mrd0FFVllzQkV2RzdFUkd6NVpzQUJGV0xBR0x4dXhCaHMrV2JBQVJWaXdBQzhic1FBUFBsbXlEUUVLSzFnaDJCdjBXYkFBRUxBWTBMQU5FTEFiMExBUkVMSWhBUW9yV0NIWUcvUlpNREVGSkFBMU5CSTNGd1lHQnhRV0Z4RTBOak15RmhZVkZBQUZFU01UTmpZMUppWWpJaFVDWmY3OC91TitjNWhJVEFLYWxKNThrK3lIL3Q3KzlmUHpsYVVDalhRM0Rod0JOLytrQVFWVGtrYThhS0hOSGdLQWQ1S04rNUx6L3RjYS9qRUNsQm5CbDVlL1BnQUFBUUJQL2lJRmZnUTZBQmdBUkxJQUdSb1JFamtBc0EwdnNBQkZXTEFVTHh1eEZCcytXYkFBUlZpd0R5OGJzUThQUGxteUZ3RUtLMWdoMkJ2MFdiQUIwTEFVRUxBWTBMQUcwTEFQRUxBTTBEQXhBUkUyTmpVbUF6TVdFUkFBQlJFakVTUUFBeEV6RVJBRkVRTlNrNmNGY081NS91SCs4L1ArL1A3MUFmTUJIUVE2L0gwYnpxVGlBUlRqL3UzKy9QN0tHdjR5QWRBZUFUTUJDZ0h0L2hqK29qd0RnZ0FCQUdiLzdBWXRCRG9BSUFCV3Nob2hJaEVTT1FDd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBWUx4dXhHQTgrV2JBQVJWaXdIQzhic1J3UFBsbXlCUUVLSzFnaDJCdjBXYklKQUJ3UkVqbXdEdEN3QUJDd0U5Q3dFeSt5R2dVWUVSSTVNREVCQWdjVUZqTXlOalVSTXhFV0ZqTXlOalVtQXpNV0VBSWpJaWNHSXlJQ0VEY0I1WVlIWVZoYllQc0NYMXBZWVFlRjhZM1Z5K2hjWE9iTDFvMEVPdjdwN2IzTG5aUUJSdjZ2anBqTHZlOEJGZWo5eVA3UzN0NEJMZ0k0NkFBQ0FIYi83QVNZQmNRQUlBQXBBR3V5RHlvckVSSTVzQThRc0NIUUFMQUFSVml3R2k4YnNSb2ZQbG13QUVWWXNBWXZHN0VHRHo1WnNpUWFCaEVTT2JBa0w3SVRBUW9yV0NIWUcvUlpzQUxRc2dzYUJoRVNPYkFHRUxJUEFRb3JXQ0hZRy9SWnNDUVFzQjdRc0JvUXNpY0JDaXRZSWRnYjlGa3dNUUVHQnhVVUJpTWlBRFVSTnhFVUZqTXlOalUxSmdBbk5UUTJNeklXRlJFMk53RVVGaGNSSmlNaUJnU1lPa1Q2MWRQKy91eUNibUp0MGY4QUE4V2xwN3hMS3YycWZXc0ViVFJEQWxjVUMzWGEvUUVGMUFFZEF2N2VmWStHZzN3bUFSUEFHNm5NMEx2K3pnd0xBU05zb2lBQlJacEpBQUFCLytFQUFBU2VCY01BR2dCQ3NnQWJIQkVTT1FDd0FFVllzQVF2RzdFRUh6NVpzQUJGV0xBTkx4dXhEUTgrV2JJQUJBMFJFam13QkJDeUNRRUtLMWdoMkJ2MFdiQVMwTEFFRUxBWDBEQXhBUk0yTmpNeUZ3Y21JeUlIQVJFakVRRW1JeUlISnpZek1oWVhBai9TSzNwZ1JrSW1EU2hCSC83Wi9QN2JJVUFyQ2lROFNtZDlMQU1IQWZoa1lCckNCVVg5YS8zdUFoQUNsMFVGd1J0a2JBQUFBZ0F6Lyt3R1ZBUTZBQklBSmdCd3NnZ25LQkVTT2JBSUVMQWUwQUN3QUVWWXNCRXZHN0VSR3o1WnNBQkZXTEFHTHh1eEJnOCtXYkFBUlZpd0NpOGJzUW9QUGxtd0VSQ3lBQUVLSzFnaDJCdjBXYklJRVFZUkVqbXdEOUN3RU5Dd0ZkQ3dGdEN3Q2hDeUd3RUtLMWdoMkJ2MFdiSWZFQW9SRWptd0pOQXdNUUVqRmhVUUFpTWlKd1lqSWdJUk5EY2pOU0VCSmljaEJnY1VGak15TmpjMU14VVdGak15TmdaVWdEZkt2TzVjWE82OXlEWnZCaUgreFFROS9NWThCRk5MWEdZQitnSmpYVXRUQTRPZXIvN2kvdFRpNGdFdUFSeXhuTGY5L0tDdHNaeSt5cGVWNk82UGw4b0FBUUFpLy9JRnZBV3dBQmdBYnJJUkdSb1JFamtBc0FCRldMQVhMeHV4Rng4K1diQUFSVml3Q1M4YnNRa1BQbG13QUVWWXNCTXZHN0VURHo1WnNCY1FzZ0FCQ2l0WUlkZ2I5Rm15QkJjSkVSSTVzQVF2c0FrUXNnb0JDaXRZSWRnYjlGbXdCQkN5RUFFS0sxZ2gyQnYwV2JBQUVMQVYwTEFXMERBeEFTRVJOak15QkJBRUl5Y3lOalVtSmlNaUJ4RWpFU0UxSVFTUS9oT1VjdnNCR1A3dS9nR0pqQUdQajRaNC9mNThCRzRFNVA1MEp2RCtVT3kvZVlSM2h5RDlkQVRrekFBQkFHai83QVR2QmNRQUh3QnhzZ01nSVJFU09RQ3dBRVZZc0F3dkc3RU1IejVac0FCRldMQURMeHV4QXc4K1diQU1FTElUQVFvcldDSFlHL1Jac2hjTUF4RVNPWHl3Rnk4WXREQVhRQmNDWGJSZ0YzQVhBbDIwMEJmZ0Z3SmRzZ0FYQVhHeUdBRUtLMWdoMkJ2MFdiQURFTEljQVFvcldDSFlHL1JaTURFQkJnQWpJaVFDSnpVMEVpUXpNZ0FYSXlZbUl5SUdCeUVWSVJZV016STJOd1R1RnY3VStLLys5WkVCa2dFUnRQTUJKUmo4RXBTT29iQUlBZnYrQkFlcm5aT1dGQUhaNlA3N3BRRTJ6M3ZQQVRxcS92YnNuSTdsMHNyZDVZZWRBQUFDQUMwQUFBaEJCYkFBR1FBaUFIU3lDU01rRVJJNXNBa1FzQnJRQUxBQVJWaXdHQzhic1JnZlBsbXdBRVZZc0Fndkc3RUlEejVac0FCRldMQVFMeHV4RUE4K1diSUFHQWdSRWptd0FDK3dHQkN5Q2dFS0sxZ2gyQnYwV2JBUUVMSVNBUW9yV0NIWUcvUlpzQUFRc2hvQkNpdFlJZGdiOUZtd0VoQ3dHOUN3SE5Bd01RRWhIZ0lWRkFRSElSRWhBd0lDQmlNak5UYytBamNUSVJFUklUSTJOVFFtSndVTkFUR1o2My8rNitYOXl2NUNHZzlqdko1QUtGZGZNUW9jQTZzQktYNlJqM29Eb1FGMTFJZk8vUVVFNVAzTi92aiszWWJLQXdocTE5RUN5ZjBtL2ZTVGRYT1BBZ0FDQUpzQUFBaEhCYkFBRXdBY0FJZXlBUjBlRVJJNXNBRVFzQlRRQUxBQVJWaXdBaThic1FJZlBsbXdBRVZZc0JNdkc3RVRIejVac0FCRldMQVFMeHV4RUE4K1diQUFSVml3RFM4YnNRMFBQbG15QUJBVEVSSTVzQUF2c3A4QUFWMnlCQTBDRVJJNXNBUXZzQUFRc2c4QkNpdFlJZGdiOUZtd0JCQ3lGQUVLSzFnaDJCdjBXYkFORUxJVkFRb3JXQ0hZRy9SWk1ERUJJUkV6RVNFeUZoWVZGQVFqSVJFaEVTTVJNd0VSSVRJMk5UUW1Jd0dYQW9EOEFTdWM3bi8rNC9QOTRQMkEvUHdEZkFFcGZwS1VmQU5GQW12OTBtN0xoYzMzQW5yOWhnV3cvUWorR0lad2I0TUFBUUF4QUFBRnlBV3dBQlVBVmdDd0FFVllzQlF2RzdFVUh6NVpzQUJGV0xBSUx4dXhDQTgrV2JBQVJWaXdFQzhic1JBUFBsbXdGQkN5QUFFS0sxZ2gyQnYwV2JJRUVCUVJFam13QkMreURRRUtLMWdoMkJ2MFdiQUFFTEFTMExBVDBEQXhBU0VSTmpNZ0JCVVJJeEUwSmlNaUJ4RWpFU0UxSVFTUy9oR0Rqd0VNQVFmOGZacU1odnoraWdSaEJPVCtteHZzNWY0M0FjcUxlaHo5VFFUa3pBQUFBUUNTL3BnRkRRV3dBQXNBU0FDd0NTK3dBRVZZc0FBdkc3RUFIejVac0FCRldMQUVMeHV4QkI4K1diQUFSVml3Qmk4YnNRWVBQbG13QUVWWXNBb3ZHN0VLRHo1WnNnSUJDaXRZSWRnYjlGbXdBOUF3TVJNekVTRVJNeEVoRVNNUklaTDlBb0g5L2t2OS9qY0ZzUHNhQk9iNlVQNllBV2dBQWdDUUFBQUV3UVd3QUEwQUZnQmJzaEFYR0JFU09iQVFFTEFEMEFDd0FFVllzQXd2RzdFTUh6NVpzQUJGV0xBS0x4dXhDZzgrV2JBTUVMSUFBUW9yV0NIWUcvUlpzZ0lNQ2hFU09iQUNMN0lPQVFvcldDSFlHL1Jac0FvUXNnOEJDaXRZSWRnYjlGa3dNUUVoRVNFeUZoWVZGQVFISVJFaEFSRWhNalkxTkNZbkJDejlZUUVxb081OC91dnYvZE1EblAxaEFTbUFqNHg4Qk9UK24yN0toY3o0QWdXdy9RaitFb3R6Ym9BQ0FBQUNBQ1QrbWdYY0JiQUFEZ0FVQUdXeUVoVVdFUkk1c0JJUXNBdlFBTEFBUlZpd0N5OGJzUXNmUGxtd0FFVllzQVF2RzdFRUZ6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBRUVMQUIwTEFDRUxJR0FRb3JXQ0hZRy9SWnNBM1FzQTdRc0EvUXNCRFFzQXNRc2hFQkNpdFlJZGdiOUZrd01RRWpFU0VSSXdNek5oSTNFeUVSTXlFaEVTRURBZ1hQOFB4QjlBaDFWMmdQSmdPV3VmdmJBbkQrVnhnYi9wb0JadjZhQWpCVUFVSExBb2I3R2dRYS9tYitaUUFBQVFBV0FBQUhtd1d3QUJVQWZRQ3dBRVZZc0Frdkc3RUpIejVac0FCRldMQU5MeHV4RFI4K1diQUFSVml3RVM4YnNSRWZQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFHTHh1eEJnOCtXYkFBUlZpd0ZDOGJzUlFQUGxteUVBa0NFUkk1c0JBdnNnQUJDaXRZSWRnYjlGbXdCTkN5Q0JBQUVSSTVzQkFRc0F2UXNoTUFFQkVTT1RBeEFTTVJJeEVqQVNFQkFTRUJNeEV6RVRNQklRRUJJUVQvby95cS9wdit4UUhWL2tvQk1nRmNuZnlXQVZrQk1mNU9BZEgreGdKMC9Zd0NkUDJNQXdjQ3FmMmdBbUQ5b0FKZy9Wbjg5d0FBQVFCSi8rMEVmd1hEQUNrQWhySWxLaXNSRWprQXNBQkZXTEFMTHh1eEN4OCtXYkFBUlZpd0Z5OGJzUmNQUGxtd0N4Q3lBd0VLSzFnaDJCdjBXYklvQ3hjUkVqbDhzQ2d2R0xJUUtBRmR0REFvUUNnQ1hiUmdLSEFvQWwyMG9DaXdLQUpkc2dZb0F4RVNPYklsQVFvcldDSFlHL1Jac2hFbEtCRVNPYkFYRUxJZkFRb3JXQ0hZRy9SWnNod2xIeEVTT1RBeEFUUW1JeUlHRlNNME5qWXpNZ1FWRkFZSEZoWVZGQVFqSWlZbU5UTVVGak15TmpVMEppTWpOVE1nQTJ5VWYyMlMvSVRxamZvQkZYaHNlb0grMVBxYStYMzhuSGlHbzQrS3E2SUJEQVFqWW5SelczZTZaOXJFWTZZd0txdC94T2R1dm50ZWdYNWxlMi9JQUFBQkFKUUFBQVVOQmJBQUNRQkZBTEFBUlZpd0FDOGJzUUFmUGxtd0FFVllzQWN2RzdFSEh6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdCUzhic1FVUFBsbXlCQUFDRVJJNXNna0FBaEVTT1RBeEFUTVJJeEVCSXhFekVRUVEvZjM5Z2YzOUJiRDZVQVFOKy9NRnNQdnlBQUFCQUMwQUFBVU5CYkFBRVFCTnNnUVNFeEVTT1FDd0FFVllzQUF2RzdFQUh6NVpzQUJGV0xBQkx4dXhBUTgrV2JBQVJWaXdDUzhic1FrUFBsbXdBQkN5QXdFS0sxZ2gyQnYwV2JBSkVMSUxBUW9yV0NIWUcvUlpNREVCRVNNUklRTUNBZ1lqSXpVM1BnSTNFd1VOL1A1Q0dnOWp2SjVBS0ZkZk1Rb2NCYkQ2VUFUay9jMysrUDdkaHNvRENHclgwUUxKQUFFQU9mL3JCTjBGc0FBUEFFbXlBQkFSRVJJNUFMQUFSVml3RHk4YnNROGZQbG13QUVWWXNBWXZHN0VHRHo1WnNnQVBCaEVTT2JBUEVMQUIwTEFCTDdBR0VMSUtBUW9yV0NIWUcvUlpzZzBHRHhFU09UQXhBUUVoQVFjR0l5YzNGak15TnpjQklRS2dBU1FCR2Y0RkxtVGdhQUlZUFd3c05QNE9BUlFDdHdMNSswaGJzZ2JJQkZ4N0JDUUFBd0JQLzhRR0dBWHNBQllBSHdBb0FGV3lDaWtxRVJJNXNBb1FzQjdRc0FvUXNDRFFBTEFLTDdBVkw3SVVGUW9SRWptd0ZDK3dBTkN5Q3dvVkVSSTVzQXN2c0FqUXNpRUJDaXRZSWRnYjlGbXdIdEN3RkJDeUh3RUtLMWdoMkJ2MFdiQWcwREF4QVRJRUVoVVVBZ1FqRlNNMUl5WWtBalUwRWlRek5UTUJJZ1lWRkJZWE14RXpFVE15TmpVMEppTURycnNCRnBtWi91dTg4eGVwL3V5WW1nRVV2dlArKzZyQnU2c1g4eEdydjcrdEJTYVkvdkNzcXY3eGw3NitBWllCRGFxdEFSS1h4djV2ejd5MHpRSUREdnp5ejdhNTBBQUFBUUNTL3FFRnZRV3dBQXNBT3dDd0NTK3dBRVZZc0FBdkc3RUFIejVac0FCRldMQUVMeHV4QkI4K1diQUFSVml3Q2k4YnNRb1BQbG15QWdFS0sxZ2gyQnYwV2JBRzBEQXhFek1SSVJFekVUTURJeEVoa3YwQ2dmMndGT2o3MFFXdyt4b0U1dnNjL2RVQlh3QUFBUUNPQUFBRTdnV3dBQkVBUHdDd0FFVllzQUF2RzdFQUh6NVpzQUJGV0xBSkx4dXhDUjgrV2JBQVJWaXdBUzhic1FFUFBsbXlEZ0VKRVJJNXNBNHZzZ1VCQ2l0WUlkZ2I5Rmt3TVFFUkl4RUdJeUFrSnhFekVSWVdNekkzRVFUdS9LS3cvdnYrOUFIOEFYNlhycVFGc1BwUUFqMHA1dWdCenY0d2kzWXFBcWNBQUFFQW1BQUFCd01Gc0FBTEFFZ0FzQUJGV0xBQUx4dXhBQjgrV2JBQVJWaXdBeThic1FNZlBsbXdBRVZZc0Fjdkc3RUhIejVac0FCRldMQUpMeHV4Q1E4K1diSUJBUW9yV0NIWUcvUlpzQVhRc0FiUU1ERUJFU0VSTXhFaEVUTVJJUkVCbGdHOC9BRzUvUG1WQmJEN0dnVG0reG9FNXZwUUJiQUFBUUNZL3FJSHJRV3dBQThBVkFDd0N5K3dBRVZZc0FBdkc3RUFIejVac0FCRldMQURMeHV4QXg4K1diQUFSVml3Qnk4YnNRY2ZQbG13QUVWWXNBMHZHN0VORHo1WnNnRUJDaXRZSWRnYjlGbXdCZEN3QnRDd0NkQ3dDdEN3QXRBd01RRVJJUkV6RVNFUk14RXpBeU1SSVJFQmxnRzgvQUc1L0tvVTN2bmRCYkQ3R2dUbSt4b0U1dnNTL2VBQlhnV3dBQUFDQUJnQUFBWFVCYkFBRFFBV0FGNnlBUmNZRVJJNXNBRVFzQTdRQUxBQVJWaXdBQzhic1FBZlBsbXdBRVZZc0Fvdkc3RUtEejVac2dJQUNoRVNPYkFDTDdBQUVMSU1BUW9yV0NIWUcvUlpzQUlRc2c0QkNpdFlJZGdiOUZtd0NoQ3lEd0VLSzFnaDJCdjBXVEF4RXlFUklUSVdGaFVVQkFjaEVTRUJFU0V5TmpVMEppY1lBb2NCS3FEdWZmN3A3djNVL25VQ2h3RXBnSStNZkFXdy9kTnV5WWJOOXdJRTdmM0wvaEtMYzI2QUFnQUFBd0NiQUFBR1dBV3dBQXNBRHdBWUFHMnlBaGthRVJJNXNBSVFzQTNRc0FJUXNCZlFBTEFBUlZpd0N5OGJzUXNmUGxtd0FFVllzQTR2RzdFT0h6NVpzQUJGV0xBSUx4dXhDQTgrV2JBQVJWaXdEQzhic1F3UFBsbXlBQWdMRVJJNXNBQXZzaEFCQ2l0WUlkZ2I5Rm13Q0JDeUVRRUtLMWdoMkJ2MFdUQXhBU0V5RmhZVkZBUUhJUkV6QVNNUk13RVJJVEkyTlRRbUp3R1lBU3FnN256KzYrLzkwLzBFd1B6OCswQUJLWUNQakh3RGcyN0toY3o0QWdXdytsQUZzUDBJL2hLTGMyNkFBZ0FDQUpBQUFBVEJCYkFBQ3dBVUFFMnlEaFVXRVJJNXNBNFFzQUhRQUxBQVJWaXdDeThic1FzZlBsbXdBRVZZc0Frdkc3RUpEejVac2dBSkN4RVNPYkFBTDdJTUFRb3JXQ0hZRy9SWnNBa1FzZzBCQ2l0WUlkZ2I5Rmt3TVFFaE1oWVdGUlFFQnlFUk14RVJJVEkyTlRRbUp3R05BU3FnN256KzYrLzkwLzBCS1lDUGpId0RnMjdLaGN6NEFnV3cvUWorRW90emJvQUNBQUVBYS8vc0JQRUZ4QUFmQUgreUF5QWhFUkk1QUxBQVJWaXdFeThic1JNZlBsbXdBRVZZc0J3dkc3RWNEejVac2drVEhCRVNPWHl3Q1M4WXRHQUpjQWtDWGJUUUNlQUpBbDIwTUFsQUNRSmRzZ0FKQVhHeUJnRUtLMWdoMkJ2MFdiQWNFTElEQVFvcldDSFlHL1Jac2dBR0F4RVNPYkFURUxJTUFRb3JXQ0hZRy9SWnNnOEpEQkVTT1RBeEFSWVdNekkyTnlFMUlTWW1JeUlHQnlNMkFETXlCQklYRlJRQ0JDTWlBQ2NCYUJTWGs1eXJCdjMrQWdJSXNhQ01sUkw4R0FFbDhyTUJFSk1Cai83MHNQaisxQllCMlo2RzVOZk0yT1NNbnU0QkNLait5TTE3ei83SHFBRUY2QUFBQWdDZy8rd0hCd1hFQUJjQUpRQitzaEltSnhFU09iQVNFTEFkMEFDd0FFVllzQk12RzdFVEh6NVpzQUJGV0xBTkx4dXhEUjgrV2JBQVJWaXdCQzhic1FRUFBsbXdBRVZZc0Fvdkc3RUtEejVac2c0S0RSRVNPWHl3RGk4WXRHQU9jQTRDWGJJSUFRb3JXQ0hZRy9SWnNCTVFzaHNCQ2l0WUlkZ2I5Rm13QkJDeUlnRUtLMWdoMkJ2MFdUQXhBUlFDQkNNaUpBSW5JeEVqRVRNUk16WVNKRE15QkJJWEJ6UUNJeUlDQnhVVUVqTXlFalVIQjVUKzdiT24vdmllRHJiOC9MTUdtZ0VQcmJJQkU1WUIvYmVvcExrQ3U2YW90UUt5MXY2OXJaZ0JITDM5b3dXdy9YSEpBVFdscS82LzFRWHlBUUwrLyt0VThQNzZBUUQyQUFBQ0FDQUFBQVJmQmJBQURBQVZBR0d5RUJZWEVSSTVzQkFRc0FyUUFMQUFSVml3Q2k4YnNRb2ZQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFETHh1eEF3OCtXYklSQ2dBUkVqbXdFUyt5QVFFS0sxZ2gyQnYwV2JJRkFSRVJFam13Q2hDeUVnRUtLMWdoMkJ2MFdUQXhJUkVoQVNFQkpoRTBKRGNoRVFFVUZqTXpFU01pQmdOaS91Yis1Lzd4QVVYK0FSUDJBZS85QklxSzYrdU1pQUlnL2VBQ2EzZ0JFZEhwQXZwUUErbDdpZ0lBaGdBQ0FGdi82d1E4QmhNQUdnQW1BRlN5RGljb0VSSTVzQTRRc0J2UUFMQUFSVml3RVM4YnNSRWhQbG13QUVWWXNBY3ZHN0VIRHo1WnNnQVJCeEVTT2JBQUw3SVpBQWNSRWpteUd3RUtLMWdoMkJ2MFdiQUhFTEloQVFvcldDSFlHL1JaTURFQk1oSVZGUlFBSXlJQUVUVVFFamMyTmpVekZBWUdCd1lHQnpZWElnWVZGQll6TWpZMU5DWUNlc3oyL3ZYbDMvN3UrUGFLVWNSQ2lLYVlueHVSazNhR2hIcDVoWVVEL3Y3djZnenEvdDRCS0FFQVJnRmVBWmd6SEQ4MlpYNVBJeUNra1pYRG42V2NycSt3aktNQUF3Q1BBQUFFT2dRNkFBNEFGUUFjQUhpeUFoMGVFUkk1c0FJUXNCWFFzQUlRc0JmUUFMQUFSVml3QVM4YnNRRWJQbG13QUVWWXNBQXZHN0VBRHo1WnNoWUJBQkVTT1h5d0ZpOFl0RUFXVUJZQ1hiVFFGdUFXQWwyeUR3Y0tLMWdoMkJ2MFdiSUlEeFlSRWptd0FCQ3lFQUVLSzFnaDJCdjBXYkFCRUxJYkFRb3JXQ0hZRy9SWk1ERXpFU0V5RmhVVUJnY1dGaFVVQmlNQkVTRXlOVFFqSlRNeU5UUW5JNDhCdDk3b1hWdHFmTi9SL3ZnQkNydSsvdm5JejhUVEJEcWJrVXQzSUJhR1c1ZWVBYzMrODRhSHJucUFCQUFCQUlVQUFBTk5CRG9BQlFBckFMQUFSVml3QkM4YnNRUWJQbG13QUVWWXNBSXZHN0VDRHo1WnNBUVFzZ0FCQ2l0WUlkZ2I5Rmt3TVFFaEVTTVJJUU5OL2lyeUFzZ0RkdnlLQkRvQUFnQW4vcjRFeFFRNkFBNEFGQUJic2hJVkZoRVNPYkFTRUxBRTBBQ3dEQyt3QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFLTHh1eENnOCtXYklBQVFvcldDSFlHL1Jac0FiUXNBZlFzQXdRc0FuUXNBY1FzQS9Rc0JEUXNBUVFzaEVCQ2l0WUlkZ2I5Rmt3TVRjMk5qY1RJUkV6RVNNUklSRWpFeUVoRVNFSEFvRmxSUWNPQXUrVzh2MUs5Z0VCZGdHZi91OEhEc0p4eTU0Qm52eUkvZndCUXY2K0FnUUNwOC8rMWdBQkFCNEFBQVpjQkRvQUZRQ0NBTEFBUlZpd0NTOGJzUWtiUGxtd0FFVllzQTB2RzdFTkd6NVpzQUJGV0xBUkx4dXhFUnMrV2JBQVJWaXdBaThic1FJUFBsbXdBRVZZc0FZdkc3RUdEejVac0FCRldMQVVMeHV4RkE4K1diSVFFUUlSRWptd0VDK3lqeEFCWGJJQUFRb3JXQ0hZRy9SWnNBVFFzZ2dRQUJFU09iQVFFTEFMMExJVEFCQVJFamt3TVFFakVTTVJJd01oQVFFaEV6TVJNeEV6RXlFQkFTRUVOWUh6Z1BuKzFnRm4vcXdCS2ZWeTgzUDJBU24rclFGcC90SUJzLzVOQWJQK1RRSXpBZ2YrVndHcC9sY0JxZjM4L2NvQUFBRUFUZi9zQThRRVRRQW5BSTJ5SGlncEVSSTVBTEFBUlZpd0pTOGJzU1ViUGxtd0FFVllzQWd2RzdFSUR6NVpzaGtsQ0JFU09YeXdHUzhZdEVBWlVCa0NYYlRRR2VBWkFsMnlGZ2NLSzFnaDJCdjBXYklERmhrUkVqbXdDQkN5RUFjS0sxZ2gyQnYwV2JJTkZoQVJFam0wQXcwVERRSmRzQ1VRc2g0SENpdFlJZGdiOUZteUlSa2VFUkk1UUFrTElSc2hLeUU3SVFSZE1ERUJGQVlIRmhVVUJpTWlKaVkxTXhRV016STJOVFFtSXlNMU16WTFOQ1lqSWdZVkl6UTJNeklXQTdCWFQ3cnl5M3pNY3ZKMldsbHBYR0N1dEtOZVVsQnU4dkM1eWVBREVraDVKRUc2bGJGVG1XbENXVk5EVDBhdkFvUkNTazg4ajdla0FBRUFoZ0FBQkJJRU9nQUpBRVVBc0FCRldMQUFMeHV4QUJzK1diQUFSVml3Qnk4YnNRY2JQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFGTHh1eEJROCtXYklFQndJUkVqbXlDUWNDRVJJNU1ERUJNeEVqRVFFakVUTVJBeUR5OHY1WTh2SUVPdnZHQXRMOUxnUTYvUzRBQUFFQWp3QUFCR1VFT2dBTUFHZ0FzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdDQzhic1FnYlBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQUxMeHV4Q3c4K1diSUdBZ1FSRWpsOHNBWXZHTFRUQnVNR0FsMjBRd1pUQmdKZHNoTUdBWEd5QVFFS0sxZ2gyQnYwV2JJS0FRWVJFamt3TVFFakVTTVJNeEV6QVNFQkFTRUIvWHZ6ODJzQkt3RXMvbmtCcVA3RUFheitWQVE2L2xBQnNQMzYvY3dBQUFFQUlRQUFCQlFFT2dBUEFFMnlCQkFSRVJJNUFMQUFSVml3QUM4YnNRQWJQbG13QUVWWXNBRXZHN0VCRHo1WnNBQkZXTEFJTHh1eENBOCtXYkFBRUxJREFRb3JXQ0hZRy9SWnNBZ1FzZ29CQ2l0WUlkZ2I5Rmt3TVFFUkl4RWhBd0lHSXlNbk56WTJOeE1FRlBQK3poUVRxN0JMQVRKUVNRb1VCRHI3eGdOMi9vZis4TzNLQlF1dDVRSE9BQUFCQUk4QUFBVnZCRG9BREFCWkFMQUFSVml3QVM4YnNRRWJQbG13QUVWWXNBc3ZHN0VMR3o1WnNBQkZXTEFETHh1eEF3OCtXYkFBUlZpd0JpOGJzUVlQUGxtd0FFVllzQWt2RzdFSkR6NVpzZ0FMQXhFU09iSUZDd01SRWpteUNBc0RFUkk1TURFQkFTRVJJeEVCSXdFUkl4RWhBdjhCUUFFdzgvN1dwZjdWOHdFeUFTc0REL3ZHQXN6OU5BTFEvVEFFT2dBQUFRQ0dBQUFFRVFRNkFBc0FmZ0N3QUVWWXNBWXZHN0VHR3o1WnNBQkZXTEFLTHh1eENocytXYkFBUlZpd0FDOGJzUUFQUGxtd0FFVllzQVF2RzdFRUR6NVpzZ2tLQUJFU09iQUpMN1MvQ2M4SkFsMnl2d2tCY2JRdkNUOEpBbkt5WHdrQmNyVHZDZjhKQW5HMEh3a3ZDUUp4c284SkFWMjBqd21mQ1FKeXNnSUJDaXRZSWRnYjlGa3dNU0VqRVNFUkl4RXpFU0VSTXdRUjgvNWI4L01CcGZNQnRmNUxCRHIrUFFIREFBRUFoZ0FBQkJJRU9nQUhBRGdBc0FCRldMQUdMeHV4QmhzK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBUXZHN0VFRHo1WnNBWVFzZ0lCQ2l0WUlkZ2I5Rmt3TVNFakVTRVJJeEVoQkJMei9scnpBNHdEZHZ5S0JEb0FBUUFqQUFBRDBBUTZBQWNBTVFDd0FFVllzQVl2RzdFR0d6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBR0VMSUFBUW9yV0NIWUcvUlpzQVRRc0FYUU1ERUJJUkVqRVNFMUlRUFEvcUh6L3FVRHJRTjUvSWNEZWNFQUFBTUFWUDVnQlg4R0FBQWFBQ1FBTHdCL3NnY3dNUkVTT2JBSEVMQWcwTEFIRUxBcTBBQ3dCaSt3QUVWWXNBTXZHN0VER3o1WnNBQkZXTEFLTHh1eENocytXYkFBUlZpd0V5OGJzUk1SUGxtd0FFVllzQkF2RzdFUUR6NVpzQUJGV0xBWEx4dXhGdzgrV2JBS0VMSWVBUW9yV0NIWUcvUlpzQkFRc2lNQkNpdFlJZGdiOUZtd0tOQ3dIaEN3TGRBd01STVFFak15RnhFekVUWXpNaElSRkFJaklpY1JJeEVHSXlJQ0p5VTBKaU1pQnhFV016SUJGQll6TWpjUkppTWlCbFRSdTB3KzhrQld1dFBVdDFORjhqMVByOUVKQkRkMGFpMGxJVFBjL0xwc2FpMGhJaXBvY0FJT0FRa0JOeHdCenY0dUlQN0wvdUR6L3VZZS9sWUJwaG9CQStNOHRzY04vVG9LQVV1aXFRb0N5UXJCQUFFQWh2Ni9CS1VFT2dBTEFEc0FzQWd2c0FCRldMQUFMeHV4QUJzK1diQUFSVml3QkM4YnNRUWJQbG13QUVWWXNBb3ZHN0VLRHo1WnNnSUJDaXRZSWRnYjlGbXdCdEF3TVJNekVTRVJNeEV6QXlNUklZYnpBYWJ6a3hUZC9OSUVPdnlJQTNqOGlQMzlBVUVBQUFFQVh3QUFBK0FFT3dBUkFFaXlCQklURVJJNUFMQUFSVml3Q1M4YnNRa2JQbG13QUVWWXNCQXZHN0VRR3o1WnNBQkZXTEFCTHh1eEFROCtXYklOQVFrUkVqbDhzQTB2R0xJRUFRb3JXQ0hZRy9SWk1ERWhJeEVHSXlJbU5SRXpFUlFXTXpJM0VUTUQ0UE5lYU43cTgybHNZbVR6QVdrVzFjY0JUUDYwZG1JWEFnd0FBQUVBaGdBQUJnTUVPZ0FMQUVnQXNBQkZXTEFBTHh1eEFCcytXYkFBUlZpd0F5OGJzUU1iUGxtd0FFVllzQWN2RzdFSEd6NVpzQUJGV0xBSkx4dXhDUTgrV2JJQkFRb3JXQ0hZRy9SWnNBWFFzQWJRTURFQkVTRVJNeEVoRVRNUklSRUJlUUZTOHdGVDh2cURCRHI4aUFONC9JZ0RlUHZHQkRvQUFRQisvcjhHdEFRNkFBOEFTd0N3REMrd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBREx4dXhBeHMrV2JBQVJWaXdCeThic1FjYlBsbXdBRVZZc0Ewdkc3RU5EejVac2dFQkNpdFlJZGdiOUZtd0JkQ3dDZEF3TVFFUklSRXpFU0VSTXhFekF5TVJJUkVCY1FGUzh3RlQ4cmtVM2ZxN0JEcjhpQU40L0lnRGVQeUkvZjBCUVFRNkFBSUFId0FBQk9vRU9nQU5BQlVBVzdJQUZoY1JFam13RHRBQXNBQkZXTEFNTHh1eERCcytXYkFBUlZpd0NDOGJzUWdQUGxteUFBd0lFUkk1c0FBdnNBd1FzZ29CQ2l0WUlkZ2I5Rm13QUJDeURnRUtLMWdoMkJ2MFdiQUlFTElQQVFvcldDSFlHL1JaTURFQk16SVdGaFVVQmdjaEVTRTFJUkVSTXpJMk5DWW5Ba3J1aGNabjdNVCtIZjdJQWl2dFdXZGxWZ0xpWEtadXA4b0JBM2JFL2VYK28xbWtYd0VBQUFNQWp3QUFCY2tFT2dBTEFBOEFGd0J0c2djWUdSRVNPYkFIRUxBTjBMQUhFTEFVMEFDd0FFVllzQW92RzdFS0d6NVpzQUJGV0xBT0x4dXhEaHMrV2JBQVJWaXdDQzhic1FnUFBsbXdBRVZZc0F3dkc3RU1EejVac2dBT0NCRVNPYkFBTDdJUUFRb3JXQ0hZRy9SWnNBZ1FzaEVCQ2l0WUlkZ2I5Rmt3TVFFek1oWVdGUlFHQnlFUk13RWpFVE1CRVRNeU5qUW1Kd0dDN29YR1orekUvaDN6QkVmejgvdTU3VmxuWlZZQzRseW1icWZLQVFRNis4WUVPdjNsL3FOWnBGOEJBQUFDQUk4QUFBUWlCRG9BQ3dBVEFFMnlEaFFWRVJJNXNBNFFzQUhRQUxBQVJWaXdDaThic1FvYlBsbXdBRVZZc0Fndkc3RUlEejVac2dBS0NCRVNPYkFBTDdJTUFRb3JXQ0hZRy9SWnNBZ1FzZzBCQ2l0WUlkZ2I5Rmt3TVFFek1oWVdGUlFHQnlFUk14RVJNekkyTkNZbkFZTHVoY1puN01UK0hmUHRXV2RsVmdMaVhLWnVwOG9CQkRyOTVmNmpXYVJmQVFBQUFRQlIvK3dENkFST0FDQUFmYklRSVNJUkVqa0FzQUJGV0xBSUx4dXhDQnMrV2JBQVJWaXdFQzhic1JBUFBsbXdDQkN5QUFFS0sxZ2gyQnYwV2JJZUNCQVJFamw4c0I0dkdMUkFIbEFlQWwyeUF4NEFFUkk1c2h3REFWMnlDd01CWGJJYkJ3b3JXQ0hZRy9SWnNCQVFzaGdCQ2l0WUlkZ2I5Rm15RlJzWUVSSTV0QVFWRkJVQ1hUQXhBU0lHRlNNME5qWXpNZ0FWRlJRR0JpTWlKaVkxTXhRV016STJOeUUxSVNZbUFnRlZkdVYweW5MY0FRdDUzSkY3eUc3bGRsWm1mZ3orckFGVERuNERpMmxQWks5by90TDhHWnY4aUdlNmRWMTNtWW1vaEk4QUFBSUFrZi9zQmpnRVRnQVVBQjhBaGJJVklDRVJFam13RlJDd0RkQUFzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdFeThic1JNYlBsbXdBRVZZc0JFdkc3RVJEejVac0FCRldMQU1MeHV4REE4K1diSUJFUk1SRWpsOHNBRXZHTFRRQWVBQkFsMjBRQUZRQVFKZHNnOEJDaXRZSWRnYjlGbXdEQkN5RndFS0sxZ2gyQnYwV2JBRUVMSWRBUW9yV0NIWUcvUlpNREVCTXpZa016SUFGeGNVQmdZaklnQW5JeEVqRVRNQkZCWXlOalUwSmlNaUJnR0V6QnNCQ3N2YkFSRUxBWHZsbHRMKzh4WEs4L01CdVlyMmlJMTRkNHdDaDgvNC91YnBPYUQ4aWdFRTFQNDhCRHI5MktlOXdMbW52YjBBQUFJQUp3QUFBOThFT2dBTkFCWUFZYklVRnhnUkVqbXdGQkN3Qk5BQXNBQkZXTEFBTHh1eEFCcytXYkFBUlZpd0FTOGJzUUVQUGxtd0FFVllzQVV2RzdFRkR6NVpzaElBQVJFU09iQVNMN0lEQVFvcldDSFlHL1Jac2djREVoRVNPYkFBRUxJVEFRb3JXQ0hZRy9SWk1ERUJFU01SSXdNakV5WW1OVFEyTndNVUZqTXpFU01pQmdQZjh1UG4vUDlrYStuR3ZHVlA3K0JaYWdRNis4WUJqZjV6QWJVcW5HV1h3UUwrb0VSVkFUaGFBQUFCLzl2K1N3UDRCZ0FBSVFDTHNoVWlJeEVTT1FDd0hpK3dBRVZZc0FRdkc3RUVHejVac0FCRldMQUtMeHV4Q2hFK1diQUFSVml3R0M4YnNSZ1BQbG0ybng2dkhyOGVBMTJ5THg0QlhiSVBIZ0Zkc2lFWUhoRVNPYkFoTDdJQUJ3b3JXQ0hZRy9SWnNnSVlCQkVTT2JBS0VMSVBBUW9yV0NIWUcvUlpzQVFRc2hVQkNpdFlJZGdiOUZtd0FCQ3dHdEN3SVJDd0hOQXdNUUVoRlRZeklCTVJGQVlqSWljM0ZqTXlOUkUwSmlNaUJ4RWpFU00xTXpVekZTRUNkLzcxZDdZQldnVzVwa1k2RHljN2UyRmVra2p6bnA3ekFRc0VyZW1LL25YOC9yTEVFYjhOdndMdGNGMkMvUHNFcmF1b3FBQUJBRlQvN0FQNUJFNEFIUUI2c2hZZUh4RVNPUUN3QUVWWXNBOHZHN0VQR3o1WnNBQkZXTEFJTHh1eENBOCtXYklBQVFvcldDSFlHL1Jac2hrUENCRVNPWHl3R1M4WXRCOFpMeGtDY2JJYkJ3b3JXQ0hZRy9SWnNnTUFHeEVTT2JRRUF4UURBbDJ3RHhDeUZnRUtLMWdoMkJ2MFdiSVRHUllSRWpteUhCTUJYYklMRXdGZE1ERWxNalkzTXc0Q0l5SUFFVFUwQURNeUZoY2pKaVlqSWdZSElSVWhFZ0krV1hnRzVBTjR5blRrL3ZnQkNPVEE5UVRrQjNaYmJuMEtBVnYrcGhtdWFGQm1zR1FCSndFQ0dmY0JLZUsyWUhXVWphais3QUFBQWdBZUFBQUdtZ1E2QUJZQUh3QjVzZ2tnSVJFU09iQUpFTEFYMEFDd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBSUx4dXhDQTgrV2JBQVJWaXdEeThic1E4UFBsbXlBUUFJRVJJNXNBRXZzQUFRc2dvQkNpdFlJZGdiOUZtd0R4Q3lFUUVLSzFnaDJCdjBXYkFCRUxJWEFRb3JXQ0hZRy9SWnNBZ1FzaGdCQ2l0WUlkZ2I5Rmt3TVFFUk14WVdGUlFHQnlFUklRTUNCZ2NqSnpjMk5qY1RBUkV6TWpZMU5DWW5BL3I0dytYcHcvNFovdVlWRTZpdlRnSXlVa2NLRkFMejdWaG9aRllFT3Y2SEE3eWZvTUVDQTNiK2gvN3k3Z0hLQlF1djR3SE8vY1grd1ZoTlNGRUJBQUlBaGdBQUJyRUVPZ0FTQUJzQWdySUJIQjBSRWptd0FSQ3dFOUFBc0FCRldMQUNMeHV4QWhzK1diQUFSVml3RVM4YnNSRWJQbG13QUVWWXNBc3ZHN0VMRHo1WnNBQkZXTEFQTHh1eER3OCtXYklCRVFzUkVqbXdBUyt5QkJFTEVSSTVzQVF2c0FFUXNnMEJDaXRZSWRnYjlGbXdCQkN5RXdFS0sxZ2gyQnYwV2JBTEVMSVVBUW9yV0NIWUcvUlpNREVCSVJFekVUTVdGaFVVQmdjaEVTRVJJeEV6QVJFek1qWTFOQ1lqQVhrQnBmUDR3K1hwdy80Wi9sdno4d0tZN1ZwbVpGc0Nud0diL29jRHZKK2d3UUlCM2Y0akJEcjl4ZjdCV2t0R1ZBQUFBZi91QUFBRCtBWUFBQmdBZWJJTUdSb1JFamtBc0JVdnNBQkZXTEFFTHh1eEJCcytXYkFBUlZpd0J5OGJzUWNQUGxtd0FFVllzQTh2RzdFUER6NVpzcjhWQVYyeUx4VUJYYklQRlFGZHNoZ1BGUkVTT2JBWUw3SUFCd29yV0NIWUcvUlpzZ0lFQnhFU09iQUVFTElNQVFvcldDSFlHL1Jac0FBUXNCSFFzQmdRc0JQUU1ERUJJUlUyTXlBVEVTTVJOQ1lqSWdjUkl4RWpOVE0xTXhVaEFvdis0WGUyQVZvRjgyRmVra2p6aTR2ekFSOEV0ZkdLL25YOVBRSzZjRjJDL1BzRXRhcWhvUUFCQUliK21nUVNCRG9BQ3dCRkFMQUlMN0FBUlZpd0FDOGJzUUFiUGxtd0FFVllzQU12RzdFREd6NVpzQUJGV0xBRkx4dXhCUTgrV2JBQVJWaXdDUzhic1FrUFBsbXlBUUVLSzFnaDJCdjBXVEF4QVJFaEVUTVJJUkVqRVNFUkFYa0JwdlArdGZQK3NnUTYvSWdEZVB2Ry9wb0JaZ1E2QUFBQkFJai82d2JCQmJBQUhnQmdzZ1lmSUJFU09RQ3dBRVZZc0FBdkc3RUFIejVac0FCRldMQU1MeHV4REI4K1diQUFSVml3RlM4YnNSVWZQbG13QUVWWXNBUXZHN0VFRHo1WnNBQkZXTEFJTHh1eENBOCtXYklHQUFRUkVqbXlFUUVLSzFnaDJCdjBXYkFhMERBeEFSRVVCaU1pSndZaklpWTFFVE1SRkJZek1qWTFFU0VSRkJZek1qWTFFUWJCK2RMbGJYSHB6L1A5WjE1cGNnRUJiV05oYmdXdysvL1c3cVdsNzlVRUFmdjhkWUtCZHdRRCsveDBnMzk1QkFNQUFRQncvK3NGN1FRNkFCNEFZTElHSHlBUkVqa0FzQUJGV0xBQUx4dXhBQnMrV2JBQVJWaXdEQzhic1F3YlBsbXdBRVZZc0JVdkc3RVZHejVac0FCRldMQUVMeHV4QkE4K1diQUFSVml3Q0M4YnNRZ1BQbG15QmhVRUVSSTVzaEVCQ2l0WUlkZ2I5Rm13R3RBd01RRVJCZ1lqSWljR0l5SW1OUkV6RVJRV016STJOUkV6RVJRV016STJOUkVGN1FIYXZjZGdac3U0MWZOVVJsTm05RnhQU2xzRU92MU93ZHlPanQzREFxLzlVWEpzYkhJQ3IvMVJjbXhzY2dLdkFBTC80QUFBQkNFR0dBQVNBQnNBY2JJVkhCMFJFam13RlJDd0E5QUFzQUJGV0xBUEx4dXhEeUUrV2JBQVJWaXdDUzhic1FrUFBsbXlFZzhKRVJJNXNCSXZzZ0FIQ2l0WUlkZ2I5Rm15QWc4SkVSSTVzQUl2c0FBUXNBdlFzQklRc0EzUXNBSVFzaE1CQ2l0WUlkZ2I5Rm13Q1JDeUZBRUtLMWdoMkJ2MFdUQXhBU0VSTXhZV0ZSUUdCeUVSSXpVekVUTVJJUUVSTXpJMk5UUW1Kd0tqL3Q3M3hPWGx3UDRTcnE3ekFTTCszdTFiWldOWEJEcit5UVBPcnEzVEJBUTZxd0V6L3MzOVcvNkNaVmxWYVFJQUFRQ1kvKzBHelFYRkFDVUFqcklPSmljUkVqa0FzQUJGV0xBa0x4dXhKQjgrV2JBQVJWaXdCUzhic1FVZlBsbXdBRVZZc0J3dkc3RWNEejVac0FCRldMQWlMeHV4SWc4K1diSUFJaVFSRWptd0FDK3lId0FCY2JJSUpCd1JFam13QlJDeURBRUtLMWdoMkJ2MFdiQUFFTEFQMExBQUVMSWhBUW9yV0NIWUcvUlpzQkxRc0J3UXNoVUJDaXRZSWRnYjlGbXlHQ1FjRVJJNU1ERUJNellTSkRNeUFCY2pKaVlqSWdZSElSVWhGaFl6TWpZM013WUFJeUlrQWljakVTTVJNd0dVdFF1V0FRbXI4UUVtR1B3U2s0Nmhxd3NCNmY0V0FxaWlsWllVL0JiKzAvaXMvdmlUQTdUOC9BTlB2Z0VkbS83Njc1MkwzY3pENGZLR25PbisrNkVCTk1yOWRBV3dBQUFCQUliLzdBVzZCRTRBSXdDU3NnMGtKUkVTT1FDd0FFVllzQVF2RzdFRUd6NVpzQUJGV0xBakx4dXhJeHMrV2JBQVJWaXdHeThic1JzUFBsbXdBRVZZc0NBdkc3RWdEejVac2c0RUd4RVNPWHl3RGk4WXRFQU9VQTRDWGJBQTBMQUVFTElMQVFvcldDSFlHL1Jac2dnT0N4RVNPYkFPRUxJUEJ3b3JXQ0hZRy9SWnNCc1FzaE1CQ2l0WUlkZ2I5Rm15RmhNUEVSSTVzQThRc0I3UU1ERUJNellrTXpJV0Z5TW1KaU1pQXlFVklSWVdNekkyTnpNT0FpTWlKQ2NqRVNNUk13RjVuUlFCQk5MQjlRVGtCM1piMnhvQmZQNkZDbjF1V1hnRzVBTjR5blRUL3YwVW52UHpBbkhlLytLMllIWCs1cXVLam1oUVpyQmsvdHorT2dRNkFBQUNBQndBQUFVWEJiQUFDd0FPQUZZQXNBQkZXTEFJTHh1eENCOCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQVl2RzdFR0R6NVpzQUJGV0xBS0x4dXhDZzgrV2JJTkNBSVJFam13RFMreUFBRUtLMWdoMkJ2MFdiQUUwTElPQ0FJUkVqa3dNUUVqRVNNUkl3TWhBVE1CSVFFaEF3T0RmdUZ6ai83NkFnYjFBZ0QrK3YzZ0FWT29BYXIrVmdHcS9sWUZzUHBRQW1nQitBQUFBZ0FLQUFBRVJRUTZBQXNBRUFCV0FMQUFSVml3Q0M4YnNRZ2JQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFHTHh1eEJnOCtXYkFBUlZpd0NpOGJzUW9QUGxteURRSUlFUkk1c0EwdnNnRUJDaXRZSWRnYjlGbXdCTkN5RHdnQ0VSSTVNREVCSXhFakVTTURJd0V6QVNNQk13TW5Cd0xrWGNOYmFQY0JxZWNCcS9mK1hQaGtHUmtCRi83cEFSZis2UVE2KzhZQnhBRUdaR1FBQWdDc0FBQUhNQVd3QUJNQUZnQjhBTEFBUlZpd0FpOGJzUUlmUGxtd0FFVllzQkl2RzdFU0h6NVpzQUJGV0xBRUx4dXhCQTgrV2JBQVJWaXdDQzhic1FnUFBsbXdBRVZZc0F3dkc3RU1EejVac0FCRldMQVFMeHV4RUE4K1diSVZBZ1FSRWptd0ZTK3dBTkN3RlJDeUJnRUtLMWdoMkJ2MFdiQUswTEFHRUxBTzBMSVdBZ1FSRWprd01RRWhBVE1CSVFNakVTTVJJd01oRXlFUkl4RXpBU0VEQWFnQmFBRXI5UUlBL3ZxT2Z1SnlqLzc2bVA3Yi9Qd0NZZ0ZUcVFKbkEwbjZVQUdxL2xZQnF2NVdBYXYrVlFXdy9MZ0IrUUFBQWdDZEFBQUdHQVE2QUJNQUdBQi9BTEFBUlZpd0FpOGJzUUliUGxtd0FFVllzQkl2RzdFU0d6NVpzQUJGV0xBRUx4dXhCQTgrV2JBQVJWaXdDQzhic1FnUFBsbXdBRVZZc0F3dkc3RU1EejVac0FCRldMQVFMeHV4RUE4K1diSUFFQklSRWptd0FDK3dBZEN5RGdFS0sxZ2gyQnYwV2JBTDBMQUgwTEFCRUxBVTBMQVYwTElYRWdRUkVqa3dNUUV6RXpNQkl3TWpFU01SSXdNakV5TVJJeEV6QVRNREp3Y0JrUDc0NXdHcjkycGR3MXRvOTIyNjgvTUI3ZmhrR1JrQnhBSjIrOFlCRi83cEFSZis2UUVYL3VrRU92MktBUVprWkFBQ0FJQUFBQVp1QmJBQUdnQWRBSHF5R3g0ZkVSSTVzQnNRc0EzUUFMQUFSVml3R1M4YnNSa2ZQbG13QUVWWXNBUXZHN0VFRHo1WnNBQkZXTEFNTHh1eERBOCtXYkFBUlZpd0V5OGJzUk1QUGxteUFCa0VFUkk1c0FBdnNna0JDaXRZSWRnYjlGbXdEdEN3RDlDd0FCQ3dHTkN5R3hrRUVSSTVzQmtRc2h3QkNpdFlJZGdiOUZrd01RRVdGaGNSSXhFbUppTWpCeEVqRVNNaUJnY1JJeEUyTmlFQklRRVRJUVI2L3ZFRi9BSjJqMmdHL0g2UGRRUDhBL29CRC82RkJPVDlqdW4rTHdNb0JOblkvbzBCYklGdkMvMnZBbHh1ZnY2UUFXemgyd0tJL1lvQnFRQUNBSUlBQUFWa0JEb0FHZ0FkQUhxeUd4NGZFUkk1c0JzUXNCVFFBTEFBUlZpd0JTOGJzUVViUGxtd0FFVllzQUF2RzdFQUR6NVpzQUJGV0xBTEx4dXhDdzgrV2JBQVJWaXdFeThic1JNUFBsbXlCQVVBRVJJNXNBUXZzQWZRc0FRUXNoQUhDaXRZSWRnYjlGbXdGZEN3RnRDeUd3VUFFUkk1c0FVUXNod0JDaXRZSWRnYjlGa3dNVE0xTmpZM0FTRUJGaFlYRlNNMUppWW5Jd2NSSXhFaklnWUhGUUVUSVlJQ3hjeis2d1AwL3VyR3ZnTHpBVjV5THdIeUxYbGdBd0dGbGY3V3NzN1NEUUhiL2lRUjA4ZXpzWDl5QWdQK1h3R2tibnk2QW1rQklnQUFBZ0NqQUFBSXN3V3dBQ0FBSXdDWHNod2tKUkVTT2JBY0VMQWowQUN3QUVWWXNBY3ZHN0VISHo1WnNBQkZXTEFMTHh1eEN4OCtXYkFBUlZpd0FDOGJzUUFQUGxtd0FFVllzQVV2RzdFRkR6NVpzQUJGV0xBUkx4dXhFUTgrV2JBQVJWaXdHUzhic1JrUFBsbXlDUWNBRVJJNXNBa3ZzZ01CQ2l0WUlkZ2I5Rm13Q1JDd0RkQ3dBeEN3SE5Dd0Y5Q3lJUWNBRVJJNXNBc1FzaUlCQ2l0WUlkZ2I5Rmt3TVNFUk5EY2hFU01STXhFaEFTRUJGaFlYRVNNUkppWWpJd2NSSXhFaklnWUhFUUVUSVFMRk8vNmYvUHdETVA2SEJPWCtoUDd4QmZ3Q2RvOW9CZngva1hNREFnanAvaTRCWUtGbC9ab0ZzUDE3QW9YOWVBVFoyUDZOQVd5QmJ3bjlyUUpjY1h6K2tRTTVBYW9BQUFJQWp3QUFCM1lFT2dBZ0FDTUFsN0lkSkNVUkVqbXdIUkN3STlBQXNBQkZXTEFITHh1eEJ4cytXYkFBUlZpd0N5OGJzUXNiUGxtd0FFVllzQUF2RzdFQUR6NVpzQUJGV0xBRkx4dXhCUTgrV2JBQVJWaXdFUzhic1JFUFBsbXdBRVZZc0Jrdkc3RVpEejVac2drTEFCRVNPYkFKTDdJREJ3b3JXQ0hZRy9SWnNBa1FzQTNRc0FNUXNCelFzQmZRc2lFTEFCRVNPYkFMRUxJaUFRb3JXQ0hZRy9SWk1ERWhOVFkzSVJFakVUTVJJUUVoQVJZV0Z4VWpOU1ltSnlNSEVTTVJJeUlHQnhVQkV5RUNsUUUxL3Jmejh3S2wvdXdEOVA3cXhiNEM4Z0ZlY3k0QjhpMTVZQU1CaFpYKzFyQ1VaUDVZQkRyK0p3SFovaVFSMU1henNYOXlBZ1ArWHdHa2JueTZBbWtCSWdBQUFnQW8va0FEcWdlSUFDY0FNQUNuc2dJeE1oRVNPYkFDRUxBbzBBQ3dMQyt3QUVWWXNBVXZHN0VGSHo1WnNBQkZXTEFYTHh1eEZ4RStXYkFBUlZpd0VTOGJzUkVQUGxtd0JSQ3lBd0VLSzFnaDJCdjBXYkltQlJFUkVqbDhzQ1l2R0xJUUpnRmRza0FtQVYyMFlDWndKZ0pkc2lNQkNpdFlJZGdiOUZteURDTW1FUkk1c0JFUXNoMEJDaXRZSWRnYjlGbXlEeXdCWGJBc0VMQXAwTEFwTDdRUEtSOHBBbDJ5S0N3cEVSSTVzRERRc0RBdk1ERUJOQ1lqSVRVaE1nUVZGQVlIQkJVVUJDTWpCaFVVRndjbUppYzBOamN6TmpZMU5DRWpOVE1nQXpjekZRRWpBVFV6QXBhRmV2N2xBUlh0QVF0OWJnRU0vdmZvTlhxWVVvU2lBckdrUDNLSi9zK0ppUUVRbEpQUC91cVgvdXZPQkNGZWFzZlB0WENqTEZmK3hlZ0RZMnRCbVNpM2Y0YUxBZ0Y5WmZQSEE1K2JDdjdwQVJnSkFBSUFNLzVJQTRnR0hBQW5BREFBbGJJQ01USVJFam13QWhDd0tOQUFzQ3d2c0FCRldMQUZMeHV4QlJzK1diQUFSVml3Rnk4YnNSY1JQbG13QUVWWXNCSXZHN0VTRHo1WnNBVVFzZ1FCQ2l0WUlkZ2I5Rm15SlJJRkVSSTVmTEFsTHhpMFFDVlFKUUpkc2lRSENpdFlJZGdiOUZteURDUWxFUkk1c0JJUXNoMEJDaXRZSWRnYjlGbXdMQkN3S2RDd0tTKzBEeWtmS1FKZHNpZ3BMQkVTT2JBdzBEQXhBVFFtSXlFMUlUSVdGUlFHQnhZVkZBWWpJd1lWRkJjSEppWW5ORFkzTXpJMk5UUWhJelV6TWdNM014VUJJd0UxTXdKMGMybis1QUVYM1BoaFY5bjIwRFora0ZHQ2xnS3BvVFZzZC83NWtaWGlvSkxRL3VtVy91dk5BdjQ4UjdtbGpVOTNKRUtzbHE4RVltdEJrVEMyY0gySEFWQS9sS2tERXBzTC91b0JGd29BQUFNQVgvL3NCUmNGeEFBUUFCY0FIZ0Jtc2dRZklCRVNPYkFFRUxBUjBMQUVFTEFZMEFDd0FFVllzQXd2RzdFTUh6NVpzQUJGV0xBRUx4dXhCQTgrV2JBTUVMSVJBUW9yV0NIWUcvUlpzaFFFREJFU09YeXdGQzhZc0FRUXNoZ0JDaXRZSWRnYjlGbXdGQkN5SEFjS0sxZ2gyQnYwV1RBeEFSUUNCQ01pSkFJbk5UUVNKQ0FFRWhjQklnWUhJU1ltQXpJMk55RVdGZ1VYbFA3dHM3RCs3cGtEbGdFVUFXUUJFNVlCL2FTZ3RnZ0N2QWkwb0orekN2MUVDcmdDc3RiK3ZhMnFBVHpOWGRVQlJLK3Ivci9WQWUvdzJkdnUrOHJsM3RucUFBQURBRS8vN0FROUJFNEFEd0FXQUIwQVo3SUVIaDhSRWptd0JCQ3dFTkN3QkJDd0Y5QUFzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdEQzhic1F3UFBsbXlFQUVLSzFnaDJCdjBXYkliQkF3UkVqbDhzQnN2R0xSQUcxQWJBbDJ5RXdjS0sxZ2gyQnYwV2JBRUVMSVhBUW9yV0NIWUcvUlpNREVUTkRZMk16SUFGeGNVQmdZaklnQVJBVEkyTnlFV0ZoTWlCZ2NoSmlaUGZlU1UyZ0VUQ3dGNzU1WGovdXdCOTJ1RkVQMy9FSVJyYW9VUUFnQVFoUUlub2YySi91ZnFPYUQ4aWdFdUFRSCtrNUtKaUpNQzNaV0NncFVBQUFFQUVBQUFCUE1Gd2dBUEFFYXlBaEFSRVJJNUFMQUFSVml3Qmk4YnNRWWZQbG13QUVWWXNBOHZHN0VQSHo1WnNBQkZXTEFNTHh1eERBOCtXYklCREE4UkVqbXdCaEN5Q0FFS0sxZ2gyQnYwV1RBeEFSYzNFelkyTXhjSEl3WUhBU01CSVFKaEd4dmtOWng2TFFJWVZDZittUFQrRGdFTkFZdHlid0wzckpjQjF3SjgrNVFGc0FBQkFDQUFBQVFZQkU0QUVRQkdzZ0lTRXhFU09RQ3dBRVZZc0FVdkc3RUZHejVac0FCRldMQVJMeHV4RVJzK1diQUFSVml3RGk4YnNRNFBQbG15QVFVT0VSSTVzQVVRc2dvQkNpdFlJZGdiOUZrd01RRVhOeE1TTXpJWEJ5WWpJZ1lIQVNNQk13SGpGQlI2V3M5REp4Y01JQ0k3RGY3MjAvNlMrd0Z1WVdFQnZnRWlGc0FHTmlyODRnUTZBQUlBWC85MkJSY0dMZ0FUQUNjQVZiSUZLQ2tSRWptd0JSQ3dJZEFBc0FCRldMQU5MeHV4RFI4K1diQUFSVml3QXk4YnNRTVBQbG13QnRDd0RSQ3dFTkN3RFJDeUdnRUtLMWdoMkJ2MFdiQVgwTEFERUxJa0FRb3JXQ0hZRy9SWnNDSFFNREVCRUFBSEZTTTFKZ0FETlJBQU56VXpGUllBRVNjMEppY1ZJelVHQmhVVkZCWVhOVE1WTmpZMUJSZis4K25HNlA3dkF3RVM2Y2JxQVEzOWduakdlWVdFZThaNWdBS3kvdHIraXlOK2ZpTUJjd0VkVlFFa0FYb2pjWElqL29iKzJRYk85U05nWVNQMXowekgvU1ZnWHlQMnp3QUNBRS8vaUFROUJMUUFFd0FsQUZpeUF5WW5FUkk1c0FNUXNCVFFBTEFBUlZpd0F5OGJzUU1iUGxtd0FFVllzQkF2RzdFUUR6NVpzQU1Rc0FiUXNCQVFzQTNRc0JBUXNpTUJDaXRZSWRnYjlGbXdGTkN3QXhDeUhRRUtLMWdoMkJ2MFdiQWEwREF4RXpRU056VXpGUllTRlJVVUFnY1ZJelVtQWpVQk5qWTFOQ1luRlNNMUJnWVZGQllYTlROUDNiMjR2OTNmdjdpNzNRSlFVbHBhVUxoUFdGWlB1QUluMmdFbUgyNXRILzdZM1JIYi90a2RhMndmQVNiZC9xY2V0WmVDc2g5Z1lDR3lsWU91SVdnQUFBTUFpUC9yQnJVSFB3QXFBRDBBUmdDNnNqQkhTQkVTT2JBd0VMQUowTEF3RUxCRjBBQ3dBRVZZc0FBdkc3RUFIejVac0FCRldMQVNMeHV4RWg4K1diQUFSVml3Qnk4YnNRY1BQbG13QUVWWXNBc3ZHN0VMRHo1WnNna0FCeEVTT2JBU0VMSVRBUW9yV0NIWUcvUlpzQXNRc2hvQkNpdFlJZGdiOUZteUhnc1NFUkk1c0NQUXNCTVFzQ3JRc0JJUXNEYlFzRFl2c0N6UXNDd3ZzaXNJQ2l0WUlkZ2I5Rm13TEJDd010Q3dNaSt5T1FnS0sxZ2gyQnYwV2JBc0VMQkMwTEJDTDdCRzBMQkdMekF4QVRJV0Z4RVVCaU1pSndZaklpWW5FVFEyTXhVaUJoVVJGQll6TWpZMUVUTVJGaFl6TWpZMUVUUW1JeE1WSXlJdUFpTWlGUlVqTlRRek1oNENBVFkzTlRNVkZBWUhCUFRPOGdIeDBPTnljdVBPOEFUenoxOW1abDlwY3ZVQmNXaGZabVpmYWlGVGlyOHdGR2lHNnlWR3lXLytLVUVEcVdBN0JiRDYzZjNxM2Z1ZW52YlZBaURkL2N5T2dQM3RnSTZCZHdHQy9ubHpnSTZBQWhPQWpnSGpoaU5MQ21nUUl0d1BUeHIraDFJOGFHY3hlQjhBQUFNQWRQL3JCZEVGNHdBcUFEMEFSZ0N2c2dsSFNCRVNPYkFKRUxBNjBMQUpFTEJHMEFDd0FFVllzQkl2RzdFU0d6NVpzQUJGV0xBTEx4dXhDdzgrV2JBU0VMQUEwTEFBTDdBTEVMQUgwTElKRWdzUkVqbXdFaEN5RXdFS0sxZ2gyQnYwV2JBTEVMSWFBUW9yV0NIWUcvUlpzaDRMRWhFU09iQWowTEFURUxBcTBMQVNFTEEyMExBMkw3QXQwTEF0TDdJckNBb3JXQ0hZRy9SWnNDMFFzRExRc0RJdnNqa0lDaXRZSWRnYjlGbXdOaEN3UWRDd1FTK3dSdEN3Umk4d01RRXlGaGNWRkFZaklpY0dJeUltSnhFME5qTVZJZ1lWRlJRV016STJOelV6RlJZV016STJOVFUwSmlNVEZTTWlMZ0lqSWhVVkl6VTBNekllQWdFMk56VXpGUlFHQndRNnV0d0IxTFhGWVdQQ3N0TUUzTHRKVzFORFVGNEI3QUZlVVVKVVcwbTlKRk9Ld1N3VmFJZnJKVWJGY1A0d1FRT3BZRHNFUitYTStNem5rWkhneFFFRHplZkRkWHoxZkhWd2FzckthbkIxZlBWOGRRSG5oaU5NQ1dnUUl0d1BUaHYraFZJOGFHY3hlQjhBQWdDSS8rc0d3UWNSQUI0QUpnQjlzZ1luS0JFU09iQUdFTEFqMEFDd0FFVllzQTB2RzdFTkh6NVpzQUJGV0xBSUx4dXhDQTgrV2JBRTBMSUdDQTBSRWptd0NCQ3lFUUVLSzFnaDJCdjBXYkFORUxBVjBMQVZMN0FSRUxBYTBMQVZFTEFlMExBZUw3QU5FTEFsMExBbEw3QW0wTEFtTDdJZ0NBb3JXQ0hZRy9SWnNDWVFzQ1BRc0NNdk1ERUJFUlFHSXlJbkJpTWlKalVSTXhFVUZqTXlOalVSSVJFVUZqTXlOalVSSlRVaEZ5RVZJelVHd2ZuUzVXMXg2Yy96L1dkZWFYSUJBVzFqWVc3OE9RTlZBZjZtdFFXdysvL1c3cVdsNzlVRUFmdjhkWUtCZHdRRCsveDBnMzk1QkFQbmVucC9md0FDQUhELzZ3WHRCYkVBSGdBbUFJbXlCaWNvRVJJNXNBWVFzQ1hRQUxBQVJWaXdEUzhic1EwYlBsbXdBRVZZc0JVdkc3RVZHejVac0FCRldMQWVMeHV4SGhzK1diQUFSVml3QkM4YnNRUVBQbG13QUVWWXNBZ3ZHN0VJRHo1WnNnWUlGUkVTT2JJUkFRb3JXQ0hZRy9SWnNCclFzQTBRc0NYUXNDVXZzQi9Rc0I4dnNpQUlDaXRZSWRnYjlGbXdIeEN3SXRDd0k5QXdNUUVSQmdZaklpY0dJeUltTlJFekVSUVdNekkyTlJFekVSUVdNekkyTlJFbE5TRVhJUlVqTlFYdEFkcTl4MkJteTdqVjgxUkdVMmIwWEU5S1cveWRBemdFL3JLMUJEcjlUc0hjam83ZHd3S3YvVkZ5Ykd4eUFxLzlVWEpzYkhJQ3IveDdlMzkvQUFFQVp2Nk1CTFlGeFFBWUFGT3lGeGthRVJJNUFMQUFSVml3Q2k4YnNRb2ZQbG13QUVWWXNBQXZHN0VBRno1WnNBQkZXTEFDTHh1eEFnOCtXYkFLRUxBTzBMQUtFTElRQVFvcldDSFlHL1Jac0FJUXNoY0JDaXRZSWRnYjlGa3dNUUVqRVNZQU5SRTBFaVF6SUFBVkl4QWhJZ1lWRVJRV0Z6TUROUHZUL3dDTkFRR2pBUUFCSC96KzNZeXBxWXFmL293QlppQUJSL2tCRWE4QkdKdis5K2tCSnQrOC91MjIzd0VBQVFCYy9va0Q4d1JPQUJvQVU3SVpHeHdSRWprQXNBQkZXTEFLTHh1eENocytXYkFBUlZpd0FDOGJzUUFYUGxtd0FFVllzQUl2RzdFQ0R6NVpzQW9Rc0EvUXNBb1FzaElCQ2l0WUlkZ2I5Rm13QWhDeUdRRUtLMWdoMkJ2MFdUQXhBU01SSmdJMU5UUTJOak15RmhZVkl6UW1JeUlHRlJVVUZoY3pBdFh6czlONTI1Sjh4bS9sZEZoeGduNXdtUDZKQVdvZ0FTUGNISnY4aVdlN2RsdDZ2YWdib2JzQ0FBRUFiUUFBQkpNRlBnQVRBQk1Bc0E0dnNBQkZXTEFFTHh1eEJBOCtXVEF4QVFVSEpRTWpFeVUzQlJNbE53VVRNd01GQnlVQ1d3RWhTUDdkdGEvaC90OUhBU1hLL3Q1SkFTTzVyT1FCSlV6KzRBSEJySUNxL3NFQmpxdUFxd0ZvcTRLckFVYithNnQvcWdBQi9HWUVvdjg1QmYwQUJ3QVJBTEFBTDdJREJnb3JXQ0hZRy9SWk1ERUJGU2MzSVNjWEZmMFhzUUVDSWdHeEJTQitBZTVzQWR3QUFBSDhjd1VYLzIwR0ZRQVBBQzRBc0FzdnNBZlFzQWN2c2dBSUNpdFlJZGdiOUZtd0N4Q3dCTkN3QkMrd0N4Q3lEQWdLSzFnaDJCdjBXVEF4QVRJVkZTTTFOQ01pQkFjak5UTTJKUDUvN29ocU52N2lpeWtuZVFFWUJoWGNJaEJvZHdHR0FYY0FBQUg5ZXdVVy9uSUdZQUFGQUF3QXNBRXZzQVhRc0FVdk1ERUJOVE1IRndmOWU3MEJPMUlGM0lTV2NFUUFBZjJsQlJiK25BWmdBQVVBREFDd0F5K3dBTkN3QUM4d01RRW5OeWN6RmYzM1Vqc0J2UVVXUkhDV2hBQUkraVQreEFHL0JhOEFEQUFhQUNjQU5RQkNBRThBWEFCcUFIb0FzRVV2c0ZNdnNHQXZzRGd2c0FCRldMQUNMeHV4QWg4K1diSUpDUW9yV0NIWUcvUlpzRVVRc0JEUXNFVVFza3dKQ2l0WUlkZ2I5Rm13RjlDd1V4Q3dIdEN3VXhDeVdna0tLMWdoMkJ2MFdiQWwwTEJnRUxBcjBMQmdFTEpuQ1FvcldDSFlHL1Jac0RMUXNEZ1FzajhKQ2l0WUlkZ2I5Rmt3TVFFME5qSVdGU00wSmlNaUJoVUJORFl6TWhZVkl6UW1JeUlHRlJNME5qTXlGaFVqTkNZaUJoVUJORFl6TWhZVkl6UW1JeUlHRlFFME5qSVdGU00wSmlNaUJoVUJORFl5RmhVak5DWWpJZ1lWQVRRMk16SVdGU00wSmlJR0ZSTTBOak15RmhVak5DWWpJZ1lWL1JGenZuUndNekF1TXdIZWRGMWZkWEUxTGl3elNIVmRYM1J3TlZ3ei9zdDBYVjkwY0RVdUxUUDlUM08rZEhBek1DNHovVTEwdm5Sd016QXVNLzdlZFYxZmRIQTFYRE0xZFYxZmRYRTFMaTB6QlBOVWFHaFVMamMxTVA3clZHaG5WVEUwTlREK0NWVm5hRlF4TkRjdS9mbFVhR2hVTVRRM0x2N2tWR2hvVkM0M055NEZHbFJvYUZRdU56VXcvZ2xWWjJoVU1UUTNMdjM1VldkblZURTBOVEFBQ1BwTi9tTUJqQVhHQUFRQUNRQU9BQk1BR0FBZEFDSUFKd0F2QUxBaEw3QVdMN0FTTDdBTEw3QWJMN0FtTDdBQVJWaXdCeThic1FjZlBsbXdBRVZZc0FJdkc3RUNFVDVaTURFRkZ3TWpFd01uRXpNREFUY0ZGU1VGQnlVMUJRRTNKUmNGQVFjRkp5VURKd00zRXdFWEV3Y0QvbEFMZW1CR09neDZZRVlDSFEwQlRmNm0rM1VOL3JNQldnT2NBZ0ZBUlA3Yi9QTUMvc0JGQVNZckVaUkJ4Z05nRVpSQ3hEd08vcTBCWVFTaURnRlMvcUQrRVF4OFlrYzdESHhpUndHdUVKbEV5UHlPRVpsRnlBTGtBZ0ZHUmY3Vi9PTUMvcnRIQVNzQUFBTC80QUFBQkNFR1lnQVNBQnNBZExJVkhCMFJFam13RlJDd0E5QUFzQUJGV0xBTkx4dXhEUjgrV2JBQVJWaXdFUzhic1JFZlBsbXdBRVZZc0Frdkc3RUpEejVac0JFUXNnQUhDaXRZSWRnYjlGbXlBZzBKRVJJNXNBSXZzQUFRc0F2UXNBelFzQUlRc2hNQkNpdFlJZGdiOUZtd0NSQ3lGQUVLSzFnaDJCdjBXVEF4QVNFUk14WVdGUlFHQnlFUkl6VXpOVE1WSVFFUk16STJOVFFtSndLai90NzN4T1hsd1A0U3JxN3pBU0wrM3UxYlpXTlhCUVg5L2dQT3JxM1RCQVVGcTdLeS9KRCtnbVZaVldrQ0FBQUNBSlFBQUFUWkJiQUFEZ0FiQUUyeUJCd2RFUkk1c0FRUXNCZlFBTEFBUlZpd0F5OGJzUU1mUGxtd0FFVllzQUV2RzdFQkR6NVpzaFlEQVJFU09iQVdMN0lBQVFvcldDSFlHL1Jac0FNUXNoUUJDaXRZSWRnYjlGa3dNUUVSSXhFaE1nUVZGQWNYQnljR0l4TTJOVFFtSnlFUklUSTNKemNCa2YwQ0xmUUJIM1Y2YlloNXF2a2NrSDcreVFFd1R6cHpiZ0lkL2VNRnNQN1J3WGVIWkpZM0FVTTFTbmFOQXY0RUZvQmtBQUFDQUh6K1lBUXdCRTRBRXdBaUFHNnlGeU1rRVJJNXNCY1FzQkRRQUxBQVJWaXdFQzhic1JBYlBsbXdBRVZZc0Ewdkc3RU5HejVac0FCRldMQUtMeHV4Q2hFK1diQUFSVml3Qnk4YnNRY1BQbG15Q1JBSEVSSTVzZzRRQnhFU09iQVFFTElYQVFvcldDSFlHL1Jac0FjUXNod0JDaXRZSWRnYjlGa3dNUUVVQnhjSEp3WWpJaWNSSXhFekZ6WXpNaElSSnpRbUl5SUhFUll6TWpjbk54YzJCREJ1YW05b1dYQ3lhL1BnQ211NHh1SHlnWGlWUVVLV1JqSnFibGtpQWhMMGwzcGplRFoxL2Y4RjJtNkMvdG4rK2dhaXZuditJSDRoZTJSbldBQUJBSThBQUFRMEJ4QUFCd0F5c2dFSUNSRVNPUUN3QUVWWXNBUXZHN0VFSHo1WnNBQkZXTEFDTHh1eEFnOCtXYkFFRUxJQUFRb3JXQ0hZRy9SWk1ERUJJUkVqRVNFUk13UTAvVmo5QXJMekJPVDdIQVd3QVdBQUFRQitBQUFEV3dWekFBY0FLd0N3QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFDTHh1eEFnOCtXYkFFRUxJQUFRb3JXQ0hZRy9SWk1ERUJJUkVqRVNFUk13TmIvaGJ6QWV2eUEzYjhpZ1E2QVRrQUFBRUFtLzdHQkowRnNBQVVBRnV5RHhVV0VSSTVBTEFKTDdBQVJWaXdFeThic1JNZlBsbXdBRVZZc0JFdkc3RVJEejVac0JNUXNnQUJDaXRZSWRnYjlGbXlBeE1KRVJJNXNBTXZzQWtRc2dvSENpdFlJZGdiOUZtd0F4Q3lEd0VLSzFnaDJCdjBXVEF4QVNFUk15QUFFUkFBSXljeU5qVUNKU01SSXhFaEJEZjlZS2dCSWdFOC92YnpBWU9JQXY2cnZQd0RuQVRrL2wvK3pmN3MvdlQrMXJxendnRjdDZjJIQmJBQUFRQisvdUlEMndRNkFCVUFTcklMRmhjUkVqa0FzQW92c0FCRldMQVVMeHV4RkJzK1diQUFSVml3RWk4YnNSSVBQbG13RkJDeUFBRUtLMWdoMkJ2MFdiSURGQW9SRWptd0F5K3lFQUVLSzFnaDJCdjBXVEF4QVNFVk15QUFGUlFHQmdjbk5qVTBKaU1qRVNNUklRTkcvaXRKQVFFQklGNnJjMVhlbTQ1Tzh3TElBM2JsL3ZyZFlNS05IYTVLMUlHWC9qb0VPZ0FBQVFDUUFBQUZOZ1d3QUJRQVlRQ3dBRVZZc0FBdkc3RUFIejVac0FCRldMQU1MeHV4REI4K1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNBb3ZHN0VLRHo1WnNnOEtEQkVTT2JBUEw3S2ZEd0Zkc2dnQkNpdFlJZGdiOUZteUFRZ1BFUkk1c0FYUXNBOFFzQkxRTURFSkFpRUJJeFVqTlNNUkl4RXpFVE0xTXhVekFRVU4vbndCcmY3Qi90TkJvMW45L1Ztak53RWJCYkQ5Vy96MUFtM3A2ZjJUQmJEOW12NytBbVlBQUFFQWpnQUFCSzRFT2dBVUFGd0FzQUJGV0xBTkx4dXhEUnMrV2JBQVJWaXdGQzhic1JRYlBsbXdBRVZZc0Fvdkc3RUtEejVac0FCRldMQURMeHV4QXc4K1diSU9DZzBSRWptd0RpK3lDUUVLSzFnaDJCdjBXYklCQ1E0UkVqbXdCZEN3RGhDd0V0QXdNUWtDSVFNakZTTTFJeEVqRVRNUk16VXpGVE1UQkpUK3hBRlcvc3ZZTDV0WDh2SlhteWZQQkRyOS92M0lBYXl5c3Y1VUJEcitVTWZIQWJBQUFRQTBBQUFHb2dXd0FBNEFZUUN3QUVWWXNBWXZHN0VHSHo1WnNBQkZXTEFLTHh1eENoOCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQTB2RzdFTkR6NVpzZ2dHQWhFU09iQUlMN0lCQVFvcldDSFlHL1Jac0FZUXNnUUJDaXRZSWRnYjlGbXlEQUVJRVJJNU1ERUJJeEVqRVNFMUlSRXpBU0VCQVNFRHRxMzgvaWNDMVlzQnJRRTIvZ3dDSC83UUFuRDlrQVRzeFAyY0FtVDlSLzBKQUFFQVBRQUFCYWdFT2dBT0FHc0FzQUJGV0xBR0x4dXhCaHMrV2JBQVJWaXdDaThic1FvYlBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQU5MeHV4RFE4K1diSUpDZ0lSRWptd0NTK3lMd2tCY2JLTUNRRmRzZ0FCQ2l0WUlkZ2I5Rm13QmhDeUJBRUtLMWdoMkJ2MFdiSU1BQWtSRWprd01RRWpFU01SSVRVaEVUTUJJUUVCSVFOQWUvTCthZ0tJYkFFcUFTMytlQUdvL3NVQnJQNVVBM2JFL2xBQnNQMzUvYzBBQVFDVUFBQUhnd1d3QUEwQWh3Q3dBRVZZc0FJdkc3RUNIejVac0FCRldMQU1MeHV4REI4K1diQUFSVml3Qmk4YnNRWVBQbG13QUVWWXNBb3ZHN0VLRHo1WnNnRUNCaEVTT2JBQkw3S2ZBUUZkc204QkFYR3kzd0VCY2JJUEFRRnlzcDhCQVhHeVB3RUJjYlF2QVQ4QkFuS3lmQUVCWGJBQ0VMSUVBUW9yV0NIWUcvUlpzQUVRc2dnQkNpdFlJZGdiOUZrd01RRWhFU0VWSVJFakVTRVJJeEV6QVpFQ2l3Tm4vWlg4L1hYOS9RTlNBbDdEK3hNQ2gvMTVCYkFBQUFFQWZnQUFCV1lFT2dBTkFHWUFzQUJGV0xBQ0x4dXhBaHMrV2JBQVJWaXdEQzhic1F3YlBsbXdBRVZZc0FZdkc3RUdEejVac0FCRldMQUtMeHV4Q2c4K1diSUJEQVlSRWpsOHNBRXZHTFJBQVZBQkFsMndBaEN5QkFFS0sxZ2gyQnYwV2JBQkVMSUlBUW9yV0NIWUcvUlpNREVCSVJFaEZTRVJJeEVoRVNNUk13RnhBYVVDVVA2ajgvNWI4L01DZHdIRHhQeUtBYlgrU3dRNkFBRUFtLzdFQis4RnNBQVdBR2l5RUJjWUVSSTVBTEFITDdBQVJWaXdGUzhic1JVZlBsbXdBRVZZc0JNdkc3RVREejVac0FCRldMQVFMeHV4RUE4K1diSUJGUWNSRWptd0FTK3dCeEN5Q0FjS0sxZ2gyQnYwV2JBQkVMSU5BUW9yV0NIWUcvUlpzQlVRc2hFQkNpdFlJZGdiOUZrd01RRXpJQUFSRUFBakp6STJOUUlsSXhFakVTRVJJeEVoQlJSOUFTSUJQUDcyOHdHRGlBTCtxNUg4L1gvOEJIa0RRZjdOL3V6KzlQN1d1clBDQVhzSi9Za0U1UHNjQmJBQUFRQisvdVlHdWdRNkFCZ0FWN0lTR1JvUkVqa0FzQWd2c0FCRldMQVhMeHV4RnhzK1diQUFSVml3RlM4YnNSVVBQbG13QUVWWXNCSXZHN0VTRHo1WnNnRVhDQkVTT2JBQkw3SVBBUW9yV0NIWUcvUlpzQmNRc2hNQkNpdFlJZGdiOUZrd01RRXpJQUFWRkFZR0J5YzJOalUwSmlNakVTTVJJUkVqRVNFRUNuMEJCd0VzWGF0elZYVnBwWnAvOC81YTh3T01BcFQrKzk1aHY0NGRyU2lQWjRLWC9qWURkdnlLQkRvQUFBSUFaLy9yQmRjRnhRQWxBRElBaGJJV016UVJFam13RmhDd0p0QUFzQUJGV0xBTkx4dXhEUjgrV2JBQVJWaXdIUzhic1IwZlBsbXdBRVZZc0FRdkc3RUVEejVac0FEUXNBQXZzZ0lFSFJFU09iQUNMN0FORUxJT0FRb3JXQ0hZRy9SWnNBUVFzaFVCQ2l0WUlkZ2I5Rm13QUJDeUpRRUtLMWdoMkJ2MFdiQUNFTEFwMExBZEVMSXZBUW9yV0NIWUcvUlpNREVGSWljR0l5SWtBaWMxTkJJMk14VWlCaFVWRkJJek1qY21FVFUwRWpNeUVoRVZFQWNXTXdFVUZoYzJFVFUwSmlNaUJoVUYxOSt6bExlNy90U3BBMzNoakdaKzI3SXhLZUx0dU1MenUxeHEvWTVsWTZKZ1dGUmVGVWRIcmdFMnY4bXZBUjZoMU9HOXVOZisrUWZMQVVUTDhBRTEvci8rK3NiKzJzb1VBaG1FMVVpUEFRblZycXV2b1FBQ0FHSC82d1RKQkU0QUlnQXVBSXl5QkM4d0VSSTVzQVFRc0NQUUFMQUFSVml3Q3k4YnNRc2JQbG13QUVWWXNCb3ZHN0VhR3o1WnNBQkZXTEFFTHh1eEJBOCtXYkFBUlZpd0FDOGJzUUFQUGxteUFnUWFFUkk1c0FJdnNBc1FzZ3dCQ2l0WUlkZ2I5Rm13QkJDeUV3RUtLMWdoMkJ2MFdiQUFFTElpQXdvcldDSFlHL1Jac0FJUXNDWFFzQm9Rc2lzQkNpdFlJZGdiOUZrd01RVWlKd1lqSWdBUk5UUVNNeFVHQmhVVkZCWXpOeVkxTlRRMk16SVdGUlVVQnhZekFSUVhOalUxTkNZaklnWVZCTW02azNxUTVmN1UyNnBBUzVwOUpZKzJsSmE5Z1UxWS9nNTRZejB4TWpzU05qa0JRZ0VFUXM4QkRNb0VsSHRKcHN3Q2xlSjZ1K3IvelhmVGxCRUJqNnBzWTZsN2E0ZDRhZ0FCQUMzK29RYTNCYkFBRHdCUEFMQU5MN0FBUlZpd0NDOGJzUWdmUGxtd0FFVllzQUl2RzdFQ0h6NVpzQUJGV0xBT0x4dXhEZzgrV2JBQ0VMSUFBUW9yV0NIWUcvUlpzQVhRc0E0UXNnWUJDaXRZSWRnYjlGbXdDdEF3TVFFaE5TRVZJUkVoRVRNUk13TWpFU0VCamY2Z0E3Nytud0tCL0xBVTUvdlJCT3pFeFB2ZUJPYjdIUDNWQVY4QUFBRUFKdjYvQlRvRU9nQVBBRXNBc0EwdnNBQkZXTEFETHh1eEF4cytXYkFBUlZpd0R5OGJzUThQUGxtd0F4Q3lCQUVLSzFnaDJCdjBXYkFBMExBUEVMSUdBUW9yV0NIWUcvUlpzQU1Rc0FqUXNBWVFzQXJRTURFQkl6VWhGU01SSVJFekVUTURJeEVoQVJ2MUFzUGJBYWJ6a3hUZC9OSURkOFBEL1VzRGVQeUkvZjBCUVFBQUFRQ0FBQUFFNFFXd0FCZ0FUN0lGR1JvUkVqa0FzQUJGV0xBQUx4dXhBQjgrV2JBQVJWaXdDeThic1FzZlBsbXdBRVZZc0E0dkc3RU9EejVac2dVT0FCRVNPYkFGTDdBSTBMQUZFTElVQVFvcldDSFlHL1Jac0JIUU1ERUJFUllYRmhjUk14RTJOeEV6RVNNUkJnY1ZJelVtSmljUkFYMENUelZ1bzJ4ay9mMWdjS1AyK2dFRnNQNHNtRGtuQlFFci90d0tHUUtuK2xBQ1BCZ0s2K1VHNnQ4QnpRQUJBSFFBQUFQMUJEc0FGZ0JSc2dZWEdCRVNPUUN3QUVWWXNCVXZHN0VWR3o1WnNBQkZXTEFNTHh1eERCcytXYkFBUlZpd0FTOGJzUUVQUGxteUR3RU1FUkk1ZkxBUEx4aXlCd0VLSzFnaDJCdjBXYkFFMExBUEVMQVMwREF4SVNNUkJnY1ZJelVtSmljUk14RVdGeEV6RVRZM0VUTUQ5Zk5GTWFPMnZnSHlBWUtqT3p2ekFXa09CWXFMRTlDeEFWRCtzS3dmQVF2Kzd3WU9BZ3dBQUFFQWhRQUFCT1VGc0FBUkFFYXlCUklURVJJNUFMQUFSVml3QVM4YnNRRWZQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFKTHh1eENROCtXYklGQVFBUkVqbXdCUyt5RGdFS0sxZ2gyQnYwV1RBeE14RXpFVFl6SUFRWEVTTVJKaVlqSWdjUmhmeWdzZ0VGQVF3Qi9BRitsNjZrQmJEOXd5bm02ZjR6QWRDTGRpcjlXUUFBQWdBVy8ra0Z2QVhFQUJ3QUpBQmtzaFlsSmhFU09iQVdFTEFqMEFDd0FFVllzQTR2RzdFT0h6NVpzQUJGV0xBQUx4dXhBQTgrV2JJZUFBNFJFam13SGkreUVnRUtLMWdoMkJ2MFdiQUUwTEFlRUxBSzBMQUFFTElYQVFvcldDSFlHL1Jac0E0UXNpSUJDaXRZSWRnYjlGa3dNUVVnQUJFMUppWTFNeFFYTkJJa0Z5QUFFUlVoRlJRV016STNGd1lHQVNFMU5DWWpJZ1lEM1A3Uy9xcWJwN1dObEFFSW5nRUlBU0w4bU11OXNhd3hROWorQlFKc21wU09zQmNCVkFFclBCalVxcllxcmdFY29BSCtuUDY1aERYSzEwYkZLQzREYkIrNHdOMEFBdi9MLyt3RWl3Uk9BQm9BSVFDTXNpQWlJeEVTT2JBZ0VMQVUwQUN3QUVWWXNBMHZHN0VOR3o1WnNBQkZXTEFBTHh1eEFBOCtXYkljQUEwUkVqbXdIQyswdnh6UEhBSmR0RjhjYnh3Q2NiUWZIQzhjQW5HeWp4d0JYYlR2SFA4Y0FuR3lFUWNLSzFnaDJCdjBXYkFFMExBY0VMQUswTEFBRUxJVkFRb3JXQ0hZRy9SWnNoY0FEUkVTT2JBTkVMSWdBUW9yV0NIWUcvUlpNREVGSWlRbkp5WW1OVE1VRnpZa016SVNFUlVoRmhZek1qY1hCZ1lCSVRVbUppSUdBdGpVL3VZVUE0S0dxV2dmQVFlNzNmSDlQUXVkZDZobmhFSGEvbTBCendoeXlub1UrOUV5SGNHVGxUREY4LzdtL3Y1aWhweUhmV0ZyQXBZU2VuMk1BQUFCQUpEK3Z3VHRCYkFBRmdCbXNoVVhHQkVTT1FDd0VDK3dBRVZZc0FRdkc3RUVIejVac0FCRldMQUlMeHV4Q0I4K1diQUFSVml3QWk4YnNRSVBQbG15QndRQ0VSSTVmTEFITHhpMEFBY1FCd0pkc0FyUXNCQVFzaEVCQ2l0WUlkZ2I5Rm13QnhDeUZnRUtLMWdoMkJ2MFdUQXhBU01SSXhFekVUTUJJUUVXQUJVUUFDTW5JQkVDSlNFQmxRajkvWEVCc2dFeS9pTHBBUUQrOFBRQkFRa0MvcTcrK0FKeC9ZOEZzUDJrQWx6OWloLysxL24rOC83VHdnRnZBWG9HQUFBQkFJNys2Z1JEQkRvQUZnQlpzZzBYR0JFU09RQ3dCeSt3QUVWWXNCRXZHN0VSR3o1WnNBQkZXTEFWTHh1eEZScytXYkFBUlZpd0R5OGJzUThQUGxteUZCVVBFUkk1ZkxBVUx4aTBRQlJRRkFKZHNnNEJDaXRZSWRnYjlGbXlBQlFPRVJJNU1ERUJGaFlWRkFZR0J5YzJKelFtSnlNUkl4RXpFVE1CSVFMTnI3eGVxbk5WNEFLTmk2N3k4bFVCUVFFdEFtRXA0NjFndW9nY3JVZktkb1VKL2xRRU92NVFBYkFBQUFFQW0vNUxCUk1Gc0FBVUFIU3lDaFVXRVJJNUFMQUFSVml3QUM4YnNRQWZQbG13QUVWWXNBTXZHN0VESHo1WnNBQkZXTEFTTHh1eEVnOCtXYkFBUlZpd0NDOGJzUWdSUGxteUFnQVNFUkk1ZkxBQ0x4aTBZQUp3QWdKZHREQUNRQUlDWGJBSUVMSU5BUW9yV0NIWUcvUlpzQUlRc2hBQkNpdFlJZGdiOUZrd01RRVJJUkV6RVJRR0l5SW5OeFl6TWpVUklSRWpFUUdYQW4vOXZxbEZQQTRrUG52OWdmd0ZzUDJEQW4zNkdMZkdFY2NNdWdLWS9aY0ZzQUFBQVFCKy9rc0VDUVE2QUJRQWJiSUxGUllSRWprQXNBQkZXTEFBTHh1eEFCcytXYkFBUlZpd0F5OGJzUU1iUGxtd0FFVllzQkl2RzdFU0R6NVpzQUJGV0xBSUx4dXhDQkUrV2JJQ0F4SVJFamw4c0FJdkdMUkFBbEFDQWwyd0NCQ3lEUUVLSzFnaDJCdjBXYkFDRUxJUUFRb3JXQ0hZRy9SWk1ERUJFU0VSTXhFR0JpTWlKemNXTXpJMUVTRVJJeEVCY1FHbDh3RzZwa1U2RHljN2ZQNWI4d1E2L2owQncvdUZzOEVSdnczQUFlZitTd1E2QUFBQ0FGSC82d1VlQmNRQUZnQWVBRjZ5Q0I4Z0VSSTVzQWdRc0JmUUFMQUFSVml3QUM4YnNRQWZQbG13QUVWWXNBZ3ZHN0VJRHo1WnNnMEFDQkVTT2JBTkw3QUFFTElRQVFvcldDSFlHL1Jac0FnUXNoY0JDaXRZSWRnYjlGbXdEUkN5R2dFS0sxZ2gyQnYwV1RBeEFTQUFFUlVVQWdRbklBQVJOU0VtSmlNaUJ3Y25OellCTWpZM0lSVVVGZ0p4QVVBQmJhRCs0Nm4rM1A2OUE5QUYzOHlubHpReEc2WUJLWmErRXYwdnVnWEUvb3ordG12Qi9zS3hBUUZnQVVtSjRQQTBFOFlOU3ZyODJyMGZ1YjhBQUFFQVcvL3JCRXNGc0FBYkFHdXlDeHdkRVJJNUFMQUFSVml3QWk4YnNRSWZQbG13QUVWWXNBc3ZHN0VMRHo1WnNBSVFzZ0FCQ2l0WUlkZ2I5Rm15QkFJQUVSSTVzaHNMQWhFU09YeXdHeThZc0FYUXNoQUxBaEVTT2JBTEVMSVRBUW9yV0NIWUcvUlpzQnNRc2hrSENpdFlJZGdiOUZrd01RRWhOU0VYQVJZV0ZSUUVJeUltSmpVekZCWXpNalkxTkNZakl6VUMvLzJTQTVFQi9vYkkydjdsNm92aWZ2eUhhSG1RbVpHTUJPVE1vLzVQR09yQ3hlaG52NE5mZ0g5a2xJV3NBQUFCQUYzK2RRUkdCRG9BR3dCY3Nnc2NIUkVTT1FDd0N5K3dBRVZZc0FJdkc3RUNHejVac2dBQkNpdFlJZGdiOUZteUJBQUNFUkk1c2hzTEFoRVNPYkFiTDdBRjBMSVFDd0lSRWptd0N4Q3lFd0VLSzFnaDJCdjBXYkFiRUxJWkJ3b3JXQ0hZRy9SWk1ERUJJVFVoRndFV0ZoVVVCQ01pSmlZMU14UVdNekkyTlRRbUl5TTFBdlQ5bXdPTUFmNkl5OWYrNnV1SjVIdnppV3g2bEpxVGp3TjJ4SnYrUXhucHY4THFhTCtCWUlXQWFaYURxLy8vQURUK1N3U0pCYkFBSmdDd1VnQUFKZ0hlcENrQUJ3R3ZBVFVBQVAvL0FDMytTUU9pQkRvQUpnRHJWUUFBSndIZS81My9lZ0FIQWE4QkMvLytBQUlBVWdBQUJJTUZzQUFMQUJRQVVMSUVGUllSRWptd0JCQ3dEdEFBc0FCRldMQUJMeHV4QVI4K1diQUFSVml3QXk4YnNRTVBQbG15QUFFREVSSTVzQUF2c0FNUXNnd0JDaXRZSWRnYjlGbXdBQkN5RFFFS0sxZ2gyQnYwV1RBeEFSRXpFU0VpSmlZMU5DUTNBUkVoSWdZVkZCWVhBNGI5L2RxZDdvQUJGZXNCTlA3WGZKS0xlUU9iQWhYNlVIVFVpTXo4QS8wdkFnYUpkWFNSQXdBQUFnQm9BQUFHc0FXd0FCZ0FJUUJnc2djaUl4RVNPYkFIRUxBWjBBQ3dBRVZZc0Fndkc3RUlIejVac0FCRldMQUFMeHV4QUE4K1diSUhDQUFSRWptd0J5K3dBQkN5Q2dFS0sxZ2gyQnYwV2JJUkNBQVJFam13R2RDd0J4Q3lHZ0VLSzFnaDJCdjBXYkFaRUxBaDBEQXhJU0lrTlRRa055RVJNeEV6TmpZM05pWW5NeFlXQndZR0J5VVJJU0lHRlJRV0Z3Snk3UDdpQVJYckFUVDhTMTVzQlFJaEhmVWZKZ0lFODh6K3NmN1dmWkNPZXYzVHp2b0RBaFg3R2dLS2ZVclpURjdNUmRUOEE4b0NCb3AwZFpJQkFBSUFYdi9uQm44R0dBQWZBQ3NBZzdJWkxDMFJFam13R1JDd0t0QUFzQUJGV0xBR0x4dXhCaUUrV2JBQVJWaXdBeThic1FNYlBsbXdBRVZZc0Jndkc3RVlEejVac0FCRldMQWNMeHV4SEE4K1diSUZBeGdSRWptd0dCQ3lDd0VLSzFnaDJCdjBXYklRQXhnUkVqbXlHZ01ZRVJJNXNBTVFzaUlCQ2l0WUlkZ2I5Rm13SEJDeUtBRUtLMWdoMkJ2MFdUQXhFeEFTTXpJWEVUTVJCaFl6TmpZM05pY3pGeFlIRGdJakJDY0dJeUlDSndFbUl5SUdGUlFXTXpJM0oxN2t3Nk5sOHdKT1EzU0NCQVJBN0JjdkF3Sjk0b3orLzFWcnk3bmdDd0t1UjROemYzcDJqVVVHQWc0QkNnRTJlQUpDKzA5UGFRSzNxYjdWV2JlRHFQbUZCTGV6QVFYZUFWRm93YzJlcW5KRUFBRUFQUC9uQmVNRnNBQXBBR095SXlvckVSSTVBTEFBUlZpd0NTOGJzUWtmUGxtd0FFVllzQ0l2RzdFaUR6NVpzZ0VxQ1JFU09iQUJMN0lBQVFvcldDSFlHL1Jac0FrUXNnY0JDaXRZSWRnYjlGbXlEd0FCRVJJNXNDSVFzaFVCQ2l0WUlkZ2I5Rm15R2lJSkVSSTVNREVUTlRNMk5qVTBJU0UxSVJZRUZSUUhGaE1WQmhZek5qWTNOaWN6RmhZSERnSWpCaVluTlRRbUkrYW5rNFQrOC82bEFXVDZBUWIvOWdVQlBETmxjZ1FFUVBVYUt3SUNldHFLcDdJSWZHY0NZczBCYlhYUnpRSFR6T1prUC83K1RUbEpBcmFqdnRWaXltZXArSVVFcDZvK2JuNEFBQUVBTC8vaUJQNEVPZ0FrQUdDeUR5VW1FUkk1QUxBQVJWaXdIUzhic1IwYlBsbXdBRVZZc0E0dkc3RU9EejVac2dJQkNpdFlJZGdiOUZteUJ3NGRFUkk1c2hZbEhSRVNPYkFXTDdJVUJ3b3JXQ0hZRy9SWnNCMFFzaHNCQ2l0WUlkZ2I5Rm15SWhRV0VSSTVNREVsQmpNMk5qYzJKek1XRmdjR0JpTUdKaWMxTkNNakp6TTJOVFFqSXljaEZoWVFCeFlYQXdFQ1RscGdBd1JCN0MwWUFRVHB2SjZnQ0tMbUFzSzV5LzhHQVJUTDVMQzVCdXRZQW85L2xxbUdnRG5NOGdOeGcwaC92UVNEbHNNQ3B2N0tTakNzQUFFQVNQNjZCRGNGc0FBaUFGK3lDeU1rRVJJNUFMQVhMN0FBUlZpd0NTOGJzUWtmUGxtd0FFVllzQnN2RzdFYkR6NVpzZ0VKR3hFU09iQUJMN0lBQVFvcldDSFlHL1Jac0FrUXNnY0JDaXRZSWRnYjlGbXlEd0FCRVJJNXNCc1FzaElCQ2l0WUlkZ2I5Rmt3TVJNbk16WTJOVFFoSVNjaEZnUVZGQWNXRXhVekZSUUdCeWMyTmpjakppYzFOQ1lqbHdIT2tZSCs2LzdxQXdFdTd3RUQ1T01EeldSYWd5UTRDS004QTM1MEFsekRBWE52NjhNRDNNbmZaa2YrOW9hc1k5aExUVGwzU1RHeGhIR0ZBQUVBZFA2cEJCb0VPZ0FpQUYreUJpTWtFUkk1QUxBWUw3QUFSVml3Q1M4YnNRa2JQbG13QUVWWXNCd3ZHN0VjRHo1WnNnRUpIQkVTT2JBQkw3SUFCd29yV0NIWUcvUlpzQWtRc2djQkNpdFlJZGdiOUZteUVBQUJFUkk1c0J3UXNoTUJDaXRZSWRnYjlGa3dNUk1uTXpJMU5DWWpJU2NoTWhjV0ZSUUhGaGNWTXhVVUJnY25OalkzSXlZbk5UUWpzd0hoMG10ai91RUVBU0RqZUdxdHNRSzdhRldESmpnR3Bpc0J3d0diczQ1S1U4RmtXWktlVHp6REpLeGwya2ROUFg1UEhvTlVwZ0FBQVFCQy8rc0hmd1d3QUNJQVlySUFJeVFSRWprQXNBQkZXTEFOTHh1eERSOCtXYkFBUlZpd0h5OGJzUjhQUGxtd0FFVllzQVl2RzdFR0R6NVpzQTBRc2dBQkNpdFlJZGdiOUZtd0JoQ3lDQUVLSzFnaDJCdjBXYkFmRUxJU0FRb3JXQ0hZRy9SWnNoY2ZEUkVTT1RBeEFTRURBZ0lHQnlNMU56WTJFeE1oRVJRV016STJOelluTXhZV0J3NENJeUltTlFRSC9tRVlEbUc1bkVvb2VtZ1BIQU9PVEQ5dWZ3UUVRZlljS1FJQ2YrQ013OFlFNC8zZy92YiswNG9DeWdNSjN3RWNBdC83dkZKa3RLZTcyR2JIWnFmN2hNRzlBQUVBUVAvckJsb0VPZ0FoQUdLeUlDSWpFUkk1QUxBQVJWaXdEQzhic1F3YlBsbXdBRVZZc0I0dkc3RWVEejVac0FCRldMQUZMeHV4QlE4K1diQU1FTElBQVFvcldDSFlHL1Jac0FVUXNnY0JDaXRZSWRnYjlGbXdIaEN5RVFFS0sxZ2gyQnYwV2JJV0hnd1JFamt3TVFFaEF3SUdCeU1uTnpZMk54TWhFUllXTXpJMk56WW5NeGNXQnc0Q0l5SW1Kd01YL3ZjVEVhaXRVd0l5VUVrS0ZBTGhBVkZGV0djRUJFRHNGakFEQW5ESGZjTEhBUU4wL3ByKzZmUUR5Z1VMcmVVQnp2MHJVbVNnbWJYSVVMRjhtK1o4dnJrQUFRQ1UvK2NIaGdXd0FCMEFaYklVSGg4UkVqa0FzQUJGV0xBQUx4dXhBQjgrV2JBQVJWaXdHUzhic1JrZlBsbXdBRVZZc0Jjdkc3RVhEejVac0FCRldMQVJMeHV4RVE4K1diSUVBUW9yV0NIWUcvUlpzZ2tBRnhFU09iSWNBQmNSRWptd0hDK3lGUUVLSzFnaDJCdjBXVEF4QVJFVUZqTTJOamMySnpNWEZnY09BaU1HSmljMUlSRWpFVE1SSVJFRkNrMCtjSDRFQkVIMkZ5OERBbnppanJ2RENmMkMvUHdDZmdXdys3eFdZQUt6cHJ2WVdiZURxUGVIQk1ERC8vMlhCYkQ5Z3dKOUFBQUJBSGYvNHdaY0JEb0FIQUI0c2hzZEhoRVNPUUN3QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFJTHh1eENCcytXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQm92RzdFYUR6NVpzZ2NJQWhFU09YeXdCeThZdE5BSDRBY0NYYlJBQjFBSEFsMnlBQUVLSzFnaDJCdjBXYkFhRUxJTkFRb3JXQ0hZRy9SWnNoSUlBaEVTT1RBeEFTRVJJeEV6RVNFUk14RUdGak0yTmpjMkp6TVdGZ2NPQWlNRUF3TWEvbER6OHdHdzh3SlNSbDVrQXdSQTZ4b3JBZ0p3eDM3K2loTUJ1djVHQkRyK1F3RzkvUzFTWmdLbWthL09YYjlobStaOENBR0VBQUVBWGYvckJMc0Z4UUFoQUVleUFDSWpFUkk1QUxBQVJWaXdDUzhic1FrZlBsbXdBRVZZc0FBdkc3RUFEejVac0FrUXNnNEJDaXRZSWRnYjlGbXdBQkN5RlFFS0sxZ2gyQnYwV2JJYUFBa1JFamt3TVFVaUpBSW5FVFFTSkRNeUZ3Y21JeUlHRlJFVUZqTTJOamMySnpNWEZnY09BZ0s3clA3cm13S2FBUmV0MzRnL2hxS2R4Y1NlZllNREF6WDFKeE1CQW9IcUZad0JHSzBCRDY4QkhaNVp1RVRudlA4QXR1a0NoWFNWekxGWVdJdk5iZ0FBQVFCVi8rc0Q1d1JPQUI0QVJMSVRIeUFSRWprQXNBQkZXTEFUTHh1eEV4cytXYkFBUlZpd0N5OGJzUXNQUGxteUFBRUtLMWdoMkJ2MFdiSUZDeE1SRWptd0V4Q3lHQUVLSzFnaDJCdjBXVEF4SlRZMk56UW5NeFlIQmdZaklnQTFOVFEyTmpNeUZ3Y21JeUlHRlJVVUZnSmFVVVVDRStzZEFnVFN0ZWYrNG56aWtydGdMbU9LY291VXJ3SkRSM2RuakZLZ3NBRXgrQjZYK290Q3ZUcTlwQ0NhdndBQkFDSC81d1ZhQmJBQUdRQk5zZ1VhR3hFU09RQ3dBRVZZc0FJdkc3RUNIejVac0FCRldMQVdMeHV4Rmc4K1diQUNFTElBQVFvcldDSFlHL1Jac0FUUXNBWFFzQllRc2drQkNpdFlJZGdiOUZteURoWUNFUkk1TURFQklUVWhGU0VSRkJZek5qWTNOaWN6RmhZSERnSWpCaVluQWVQK1BnU0EvajVOUG5CK0JBUkI5UnNyQXdKOTRveTd3d2tFNDgzTi9JZFVZQUsybzd2WVlzcG5xUG1GQk1EREFBRUFSUC9qQk1zRU9nQVhBRTJ5QlJnWkVSSTVBTEFBUlZpd0FpOGJzUUliUGxtd0FFVllzQlV2RzdFVkR6NVpzQUlRc2dBQkNpdFlJZGdiOUZtd0JOQ3dCZEN3RlJDeUNRRUtLMWdoMkJ2MFdiSU9GUUlSRWprd01RRWhOU0VWSVJFVUZqTTJOamMySnpNV0ZnY0dCaU1FQXdHSi9yc0RpLzZ0VWtWZVl3TUVRT3NzR1FFRThjTCtpUk1EZDhQRC9mQlVaQUtFZEpPZWZINDN6UElJQVlRQUFBRUFnZi9yQlA4RnhRQW9BSE95SmlrcUVSSTVBTEFBUlZpd0ZpOGJzUllmUGxtd0FFVllzQXN2RzdFTER6NVpzZ01CQ2l0WUlkZ2I5Rm15SkJZTEVSSTVmTEFrTHhpeWN5UUJYYkpnSkFGZHNpVUJDaXRZSWRnYjlGbXlCZ01sRVJJNXNoQWxKQkVTT2JBV0VMSWVBUW9yV0NIWUcvUlpzaHNrSGhFU09UQXhBUlFXTXpJMk5UTVVCZ1FqSUNRMU5DVW1KalUwSkNFeUZoWVZJelFtSXlJR0ZSUWhNeFVqSWdZQmY3ZVpocTc4amY3OW9QN3ovcjhCRG5hQ0FTOEJDWmY2aS8yamZKQ3FBVE8ydjUyakFaaGxmb0ZlZ3I1cDZjVDlWekdtWXNYYmFicDNXWFZ6WTluSWNBQUFBZ0JuQkc4QzFnWFhBQVVBRFFBYkFMQUxMN0FIMExBSEw3QUIwTEFCTDdBTEVMQUUwTEFFTHpBeEFSTXpGUU1qQVRNVkZoY0hKalVCazNEVDVsMysxTEVEVEZDd0JKZ0JQeFgrd1FGVVgzdEdTRnErQVAvL0FFY0NDUUpVQXMwQUJnQVJBQUQvL3dCSEFna0NWQUxOQUFZQUVRQUEvLzhBblFKdEJKa0RNUUJHQVpmZ0FFek5RQUQvL3dDQkFtMEYwUU14QUVZQmw0VUFabVpBQVAvL0FBVCtQd09aQUFBQUp3QkRBQUgrL2dFR0FFTUJBQUFjQUxZQUFoQUNJQUlEWGJRUUFpQUNBbkcyZ0FLUUFxQUNBMTB3TVFBQkFHTUVJQUdXQmhvQUNBQWRzZ2dKQ2hFU09RQ3dBRVZZc0FBdkc3RUFJVDVac0FUUXNBUXZNREVCRndZSEZTTTFOallCR254YkE5VUJad1lhVFlXUW1JcGcwUUFBQVFBekJBQUJaUVlBQUFnQUhiSUlDUW9SRWprQXNBQkZXTEFFTHh1eEJDRStXYkFBMExBQUx6QXhFeWMyTnpVekZSUUdyM3hhQTlWcEJBQk5nNUtlaW1mUkFBQUJBREwrMWdGa0FNb0FDQUFZc2dnSkNoRVNPUUN3Q1MreUJBMEtLMWdoMkJ2MFdUQXhFeWMyTnpVekZRWUdyWHRWQTlvQlp2N1dUbitVazRWZDBBQUFBUUJLQkFBQmZBWUFBQWdBRmdDd0FFVllzQWd2RzdFSUlUNVpzQVRRc0FRdk1ERUJGUllYQnlZbU5UVUJId05hZkUxcEJnQ2VqNFpOUHRGbml2Ly9BR3dFSUFMdkJob0FKZ0ZzQ1FBQUJ3RnNBVmtBQVAvL0FFQUVBQUxBQmdBQUpnRnREUUFBQndGdEFWc0FBQUFDQURMK3dnS3FBUDhBQ1FBU0FDR3lDeE1VRVJJNXNBc1FzQVhRQUxBVEw3SUVEUW9yV0NIWUcvUlpzQTdRTURFVEp6WTNOVE1WQmdjR0Z5YzJOelV6RlJRR3NYOVZBOW9CTnpINGYxZ0UybWIrd2s2Sm5jbTZiSEprUVU2T2xzdTJZOTBBQVFCQUFBQUVIZ1d3QUFzQVN3Q3dBRVZZc0Fndkc3RUlIejVac0FCRldMQUdMeHV4QmhzK1diQUFSVml3Q2k4YnNRb2JQbG13QUVWWXNBSXZHN0VDRHo1WnNBb1FzZ0FCQ2l0WUlkZ2I5Rm13Qk5Dd0JkQXdNUUVoRVNNUklUVWhFVE1SSVFRZS9vanovbzBCYy9NQmVBTnkvSTREY3NnQmR2NktBQUVBWFA1Z0JEa0ZzQUFUQUh3QXNBQkZXTEFNTHh1eERCOCtXYkFBUlZpd0NpOGJzUW9iUGxtd0FFVllzQTR2RzdFT0d6NVpzQUJGV0xBQ0x4dXhBaEUrV2JBQVJWaXdBQzhic1FBUFBsbXdBRVZZc0FRdkc3RUVEejVac2dZQkNpdFlJZGdiOUZtd0RoQ3lDQUVLSzFnaDJCdjBXYkFKMExBUTBMQVIwTEFHRUxBUzBMQVQwREF4SVNFUkl4RWhOU0VSSVRVaEVUTVJJUlVoRVNFRU9mNkk4LzZPQVhMK2pnRnk4d0Y0L29nQmVQNWdBYURDQXJURUFYYitpc1Q5VEFBQUFRQ0lBZ1lDUkFQYkFBMEFGcklERGc4UkVqa0FzQU12c1FvS0sxallHOXhaTURFVE5EWXpNaFlWRlJRR0l5SW1KNGg1WkdkNGQyZGplUUlEQTE5NWVXSWxYbmR6WFFELy93Q0svL1VEYndFQUFDWUFFZ01BQUFjQUVnSE5BQUQvL3dDSy8vVUZLQUVBQUNZQUVnTUFBQ2NBRWdITkFBQUFCd0FTQTRZQUFBQUJBRWNDQ1FFaEFzMEFBd0FZc2dBRUJSRVNPUUN3QXkreUFBRUtLMWdoMkJ2MFdUQXhBU00xTXdFaDJ0b0NDY1FBQUFZQVN2L3NCMThGeEFBVkFDTUFKd0EwQUVFQVRnQzRzaWhQVUJFU09iQW9FTEFDMExBb0VMQWIwTEFvRUxBbTBMQW9FTEExMExBb0VMQkgwQUN3SkMrd0ppK3dBRVZZc0Jrdkc3RVpIejVac0FCRldMQVNMeHV4RWc4K1diQUQwTEFETDdJRkF4SVJFam13QjlDd0J5K3dFaEN3RHRDd0RpK3lFQklERVJJNXNCa1FzQ0RRc0NBdnNCSVFzaXNDQ2l0WUlkZ2I5Rm13QXhDeU1nSUtLMWdoMkJ2MFdiQXJFTEE0MExBeUVMQS8wTEFnRUxKRkFnb3JXQ0hZRy9SWnNCa1Fza3dDQ2l0WUlkZ2I5Rmt3TVFFME5qTXlGell6TWhZVkZSUUdJeUluQmlNaUpqVUJORFl6TWhZVkZSUUdJeUltTlFFbkFSY0RGQll6TWpZMU5UUW1JZ1lWQlJRV016STJOVFUwSmlJR0ZRRVVGak15TmpVMU5DWWlCaFVETDZ5SWxrNU9sWWF2cVlxWFRrNlVpcXo5RzZpRmlxdXJpSVdxQVhkOUFzZDlzRTgrUUVwT2ZFMEJ4MDgrUUVwT2ZFMzdUazAvUGt4TmZrc0JaWUtxYjIrbmpFZUJxbTV1cW9ZRGU0T3Fxb2xHZ3FtcGlmd2JTQVJ5U1B3NFJGZFNURXRHVkZSS1NrUlhVa3hMUmxSVVNnTHFSVlZWU1VoR1ZsZEpBQUFCQUd3QWlnSXpBNmtBQmdBUUFMQUZMN0lDQndVUkVqbXdBaTh3TVFFVEl3RTFBVE1CUFBlbi91QUJJS2NDR2Y1eEFZWVRBWVlBQUFFQVZBQ0tBaHNEcVFBR0FCQUFzQUF2c2dNSEFCRVNPYkFETHpBeEV3RVZBU01UQS9zQklQN2dwL2YzQTZuK2VoUCtlZ0dQQVpBQUFRQXRBRzBEY1FVbkFBTUFDUUN3QUMrd0FpOHdNVGNuQVJlcWZRTEhmVzFJQkhKSUFQLy9BRFVDa3dLK0JhZ0RCd0hZQUFBQ2t3QVRBTEFBUlZpd0NTOGJzUWtmUGxtd0RkQXdNUUFBQVFCcEFvd0Mvd1c2QUE4QVU3SUtFQkVSRWprQXNBQkZXTEFBTHh1eEFCOCtXYkFBUlZpd0F5OGJzUU1mUGxtd0FFVllzQTB2RzdFTkV6NVpzQUJGV0xBSEx4dXhCeE0rV2JJQkF3MFJFam13QXhDeUNnTUtLMWdoMkJ2MFdUQXhBUmMyTXlBUkVTTVJKaU1pQnhFakVRRUJJRXVRQVFQRkJYMWpKOFVGckhtSC9zbitDUUhhclZuOTBnTWdBQUVBWHdBQUJId0Z3d0FuQUk2eUh5Z3BFUkk1QUxBQVJWaXdGeThic1JjZlBsbXdBRVZZc0FZdkc3RUdEejVac2ljR0Z4RVNPYkFuTDdJTkFnb3JXQ0hZRy9SWnNBSFFzQVlRc2dVQkNpdFlJZGdiOUZtd0NkQ3dKeEN3RU5Dd0p4Q3dJOUN3SXkrMkR5TWZJeThqQTEyeUpRSUtLMWdoMkJ2MFdiQVIwTEFqRUxBVTBMQVhFTEllQVFvcldDSFlHL1Jac2hzakhoRVNPVEF4QVNFWEZBY2hCeUUxTXpZMk5TY2pOVE1uSXpVekp6UTJJQllWSXpRbUl5SUdGUmNoRlNFWElRTXkvdEFDUUFLNEFmdm5VaWNyQXFXZ0JKeVhCZm9CbHVqMWFWOVlad1lCUC83R0JRRTFBZFF1aDFYS3lnbHZXemVSZVpDaHl1cmF1RjlwZ21paGtIa0FCUUFoQUFBR1R3V3dBQnNBSHdBakFDWUFLUUM5c2dvcUt4RVNPYkFLRUxBZjBMQUtFTEFoMExBS0VMQW0wTEFLRUxBbzBBQ3dBRVZZc0Jvdkc3RWFIejVac0FCRldMQVhMeHV4Rng4K1diQUFSVml3REM4YnNRd1BQbG13QUVWWXNBa3ZHN0VKRHo1WnNnVUpHaEVTT2JBRkw3QUIwTEFCTDdJUEFRRmRzZ01EQ2l0WUlkZ2I5Rm13QlJDeUJ3TUtLMWdoMkJ2MFdiQWwwTEFLMExBTzBMQUZFTEFkMExBaDBMQVIwTEFERUxBZTBMQWkwTEFTMExBQkVMQVowTEFuMExBVjBMQUpFTEFrMExBWEVMQXAwREF4QVRNVkl4VXpGU01SSXdFaEVTTVJJelV6TlNNMU14RXpBU0VSTXdFek5TTUZNeWNqQVRVakFUTW5CWGZZMk5qWS9mN0ovcTM4MDlQVDAvd0JOUUZYKy81eGxQUCtaKzVmandLTUwvMmpLeXNEeGFDWG9QNFNBZTcrRWdIdW9KZWdBZXYrRlFIci9ONlhsNWYrZmtzQjEwUUFBZ0NZLyt3R09nV3dBQjRBSlFDaXNpRW1KeEVTT2JBaEVMQVEwQUN3QUVWWXNCVXZHN0VWSHo1WnNBQkZXTEFaTHh1eEdScytXYkFBUlZpd0hTOGJzUjBiUGxtd0FFVllzQW92RzdFS0R6NVpzQUJGV0xBVEx4dXhFdzgrV2JBZEVMSUFBUW9yV0NIWUcvUlpzQW9Rc2dVQkNpdFlJZGdiOUZtd0FCQ3dEZEN3RHRDeUlCTVZFUkk1c0NBdnNoRUJDaXRZSWRnYjlGbXdIUkN3SE5Dd0hDK3dGUkN5SkFFS0sxZ2gyQnYwV1RBeEFTTVJGQll6TWpjVkJpTWdFUkVqQmdZSEl4RWpFU0V5RmhjekVUTVJNd0V6TWhFMEp5TUdNNzh5UHlZdlUwMys2SGdjOU1xZStnR00xUDBZZGZLLysxK1M5T2FnQTRiOXBEMDRDcndYQVRVQ1phMjdBLzNsQmJERHN3RUgvdm4rclFFQTl3WUEvLzhBbFAvc0NEd0ZzQUFtQURZQUFBQUhBRmNFY2dBQUFBY0FOUUFBQjFNRnNBQWZBQ01BSndBckFDNEFNUUEwQU91eU1qVTJFUkk1c0RJUXNCN1FzRElRc0NMUXNESVFzQ2ZRc0RJUXNDclFzRElRc0M3UXNESVFzRERRQUxBQVJWaXdBaThic1FJZlBsbXdBRVZZc0I4dkc3RWZIejVac0FCRldMQWJMeHV4R3g4K1diQUFSVml3RUM4YnNSQVBQbG13QUVWWXNBMHZHN0VORHo1WnNna1FBaEVTT2JBSkw3QUYwTEFGTDdJUEJRRmRzQUhRc0FVUXNnY0RDaXRZSWRnYjlGbXdDUkN5Q2dNS0sxZ2gyQnYwV2JBdDBMQU8wTEF3MExBUzBMQUpFTEFsMExBcDBMQWgwTEFWMExBSEVMQW0wTEFxMExBaTBMQVcwTEFCRUxBZDBMQVowTEFRRUxBdjBMQXMwTEFmRUxBeTBMQUJFTEEwMERBeEFTRVRNd016RlNNSE14VWhBeU1ESVFNakF5RTFNeWNqTlRNRE14TWhFek1CTXpjakJUTTNJd1V6SnlNQk55TUZOeU1CQnpNRW1BRXhWL3RpbXI4bDVQNzNmdk9RL3ZLUzhuLysvZDRsdVpSaSsxZ0JOR3pVL2M2Zkt1b0REcDhoNmY2bXVpcGxBYkFtVnYweUwxVUJwd2dRQkFjQnFmNVhvS0tnL2RzQ0pmM2JBaVdnb3FBQnFmNVhBYW45RmFLaW9xS2kvZ0MrdWJrQ0FSOEFBZ0I4QUFBR0VBUTZBQTBBR3dCcnNnZ2NIUkVTT2JBSUVMQVEwQUN3QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFXTHh1eEZocytXYkFBUlZpd0N5OGJzUXNQUGxtd0FFVllzQTR2RzdFT0R6NVpzaEVCQ2l0WUlkZ2I5Rm13QUJDeUNRRUtLMWdoMkJ2MFdiSUZFUWtSRWpteUVBa1JFUkk1TURFQk1oWVhFU01STkNZaklSRWpFUUVSTXhFaE1qWTNFVE1SQmdZakF3eTdyZ0x6V21uK3J2TUJtZk1CVUdwWkFmUUI3OXdFT3NETC9yVUJRbTFqL0lvRU92dkdBdGI5N1dGb0FxNzlWN3pWQUFFQVh2L3RCREFGd3dBakFJcXlGU1FsRVJJNUFMQUFSVml3Rmk4YnNSWWZQbG13QUVWWXNBa3ZHN0VKRHo1WnNpTVdDUkVTT2JBakw3SUFBZ29yV0NIWUcvUlpzQWtRc2dRQkNpdFlJZGdiOUZtd0FCQ3dETkN3SXhDd0R0Q3dJeEN3RTlDd0V5KzJEeE1mRXk4VEExMnlFQUlLSzFnaDJCdjBXYkFXRUxJYkFRb3JXQ0hZRy9SWnNCTVFzQjdRc0JBUXNDRFFNREVCSVJZV016STNGd1lqSUFBREl6VXpOU00xTXpZQU16SVhCeVlqSWdZSElSVWhGU0VEYXY2Y0JxT1libDhjZUlEL0FQN2FDS3lzckswTkFTejlhb1VjWm1XWG9na0JZLzZjQVdRQ0Q2NnNJY3dkQVNBQkFvMkFqZjhCR3gvTklxeWtqWUFBQUFRQUlRQUFCZFFGc0FBYUFCOEFKQUFwQU9PeURDb3JFUkk1c0F3UXNCelFzQXdRc0NQUXNBd1FzQ2pRQUxBQVJWaXdDeThic1FzZlBsbXdBRVZZc0FFdkc3RUJEejVac0FzUXNpUUJDaXRZSWRnYjlGbXdJTkN3SUM5QUV3QWdFQ0FnSURBZ1FDQlFJR0FnY0NDQUlBbGRzQjdRc0I0dnRyQWV3QjdRSGdOZFFBc0FIaEFlSUI0d0hrQWVCVjJ5SmdNS0sxZ2gyQnYwV2JBbjBMQW5MMEFQTUNkQUoxQW5ZQ2R3SjRBbmtDY0hYYklBQVFvcldDSFlHL1Jac0NZUXNBUFFzQjRRc0FiUXNDQVFzQS9Rc2hJRENpdFlJZGdiOUZtd0hOQ3dIZEN3QjlDd0lCQ3dDdEN3SGhDd0ZOQ3dKaEN3RjlBd01RRVJJeEVqTlRNMUl6VXpFU0V5QkJjekZTTVhCek1WSXdZR0l3RW5JUlVoSlNFbUp5RUJJUlVoTWdIVy9iaTR1TGdDTGEwQkFUemt2UUlCdk9FMityMEJGUVA5dmdKRC9iMEI4RVp5L3NnQjlQNE1BVEY3QWgzOTR3TWZvRWlnQVFtSWdhQW1JcUI5aFFIQ0tFam9Pd0wrT3pjQUFRQW9BQUFFREFXd0FCb0FiYklXR3h3UkVqa0FzQUJGV0xBWkx4dXhHUjgrV2JBQVJWaXdEQzhic1F3UFBsbXdHUkN5R0FFS0sxZ2gyQnYwV2JBQjBMQVpFTEFVMExBVUw3QUQwTEFVRUxJVEJ3b3JXQ0hZRy9SWnNBYlFzQlFRc0E3UXNBNHZzZ2tIQ2l0WUlkZ2I5Rm15RFFrT0VSSTVNREVCSXhZWE13Y2pCZ1lIQVJVaEFTY3pNalkzSVRjaEppTWhOeUVEMmRvekQ4b3lseGJjeVFIUy91SCtBd0g5Y0lNVy9lWXpBZU14MlA3ek5nT3VCUGxMWmJhbHJ4SDkzdzBDVVpsZFRMYWJ6QUFBQVFBaC8rd0VVUVd3QUI0QWtiSWJIeUFSRWprQXNBQkZXTEFSTHh1eEVSOCtXYkFBUlZpd0JTOGJzUVVQUGxteUV4RUZFUkk1c0JNdnNCZlFzQmN2c2dBWEFWMnlHQUVLSzFnaDJCdjBXYkFaMExBSTBMQUowTEFYRUxBVzBMQUwwTEFLMExBVEVMSVVBUW9yV0NIWUcvUlpzQlhRc0F6UXNBM1FzQk1Rc0JMUXNBL1FzQTdRc0FVUXNob0JDaXRZSWRnYjlGbXlIZ1VSRVJJNU1ERUJGUVlDQkNNaUp4RUhOVGMxQnpVM0VUTVZOeFVIRlRjVkJ4RTJOalUxQkZFQ2x2N3RzbXVNM056YzNQemg0ZUhocXJJQy8xblMvc09yRkFKZFY4ZFhpVmZJVndFNzExcklXb2xheUZuOSt3TDgrRTBBQUFFQVR3QUFCUThFT2dBWEFGeXlBQmdaRVJJNUFMQUFSVml3Rnk4YnNSY2JQbG13QUVWWXNCQXZHN0VRRHo1WnNBQkZXTEFMTHh1eEN3OCtXYkFBUlZpd0JTOGJzUVVQUGxteUZRc1hFUkk1c0JVdnNBRFFzQlVRc2d3QkNpdFlJZGdiOUZtd0NkQXdNUUVXQUJNVkl6VW1KaWNSSXhFR0JoVVZJelVTQURjMU13TW80QUVEQlBNQmdYTHpjWUx6QXdFRTMvTURhaW4ra3Y3c3Y3akY3eXI5YWdLVkt2UEhzYm9CRkFGd0s5RUFBZ0FvQUFBRk13V3dBQllBSHdCNHNoZ2dJUkVTT2JBWUVMQU4wQUN3QUVWWXNBd3ZHN0VNSHo1WnNBQkZXTEFDTHh1eEFnOCtXYklHQWd3UkVqbXdCaSt5QlFFS0sxZ2gyQnYwV2JBQjBMQUdFTEFLMExBS0w3SVBDZ0Zkc2drQkNpdFlJZGdiOUZtd0ZOQ3dCaEN3RmRDd0NoQ3dGOUN3REJDeUh3RUtLMWdoMkJ2MFdUQXhKU0VWSXpVak5UTTFJelV6RVNFeUJCVVVCQWNoRlNFQklUSTJOVFFtSnlFRE0vNisvTTNOemMwQ0xmRUJJUDd1OVA3RUFVTCt2Z0V0aUpDTmZQN0U1K2ZueTJ2TEFzajcwTlR4QTJzQk5uNTljSTREQUFRQWNQL3NCWWtGeFFBWkFDWUFOQUE0QUpTeUdqazZFUkk1c0JvUXNBRFFzQm9Rc0NmUXNCb1FzRGZRQUxBMUw3QTNMN0FBUlZpd0NTOGJzUWtmUGxtd0FFVllzQ1F2RzdFa0R6NVpzQWtRc0FQUXNBTXZzZzBKQXhFU09iQUpFTElRQWdvcldDSFlHL1Jac0FNUXNoWUNDaXRZSWRnYjlGbXlHUU1KRVJJNXNDUVFzQjNRc0IwdnNDUVFzaW9DQ2l0WUlkZ2I5Rm13SFJDeU1RSUtLMWdoMkJ2MFdUQXhBUlFHSUNZMU5UUTJNeklXRlNNMEppTWlCaFVWRkJZeU5qVUJORFl6TWhZVkZSUUdJQ1kxRnhRV016STJOVFUwSmlNaUJoVUZKd0VYQXJHZi93Q2lub0tBb2FwQk5qUkNRMnBBQVJpdWg0aXRwLzdvcTZwUFBrQkpUajArVGYzN2ZnTEhmZ1FsYzVLbmlrZUNxNVJ6TlVCVVNrcEZWVU14L1VDR3BxYU5SNEtwcDRrRlJGZFRTMHRHVkZSSzlFZ0Vja2dBQWdCTS8rc0RrQVg1QUJjQUlRQmFzZ0VpSXhFU09iQUJFTEFZMEFDd0RDK3dBRVZZc0FBdkc3RUFEejVac2dZTUFCRVNPYkFHTDdJRkJ3b3JXQ0hZRy9SWnNCUFFzQUFRc2hjQkNpdFlJZGdiOUZtd0JoQ3dHTkN3REJDeUh3RUtLMWdoMkJ2MFdUQXhCU0ltTlFZak5USTNFVFkyTXpJV0ZSVVVBZ2NWRkJZekF6WTJOVFUwSmlNaUJ3TGI0ZTFoWUdGZ0E3S2FpS3pYc21oczFFMVhLeUJXQXhYcjVSTzdHQUhwdjlhMG15YXQvcWxuVFk1NkFrUkx6R1lwUDBDeUFBQUVBSkFBQUFmQ0JjQUFBd0FQQUIwQUp3Q21zaDRvS1JFU09iQWVFTEFCMExBZUVMQUUwTEFlRUxBUTBBQ3dBRVZZc0NZdkc3RW1IejVac0FCRldMQWtMeHV4SkI4K1diQUFSVml3Qmk4YnNRWWZQbG13QUVWWXNDRXZHN0VoRHo1WnNBQkZXTEFmTHh1eEh3OCtXYkFHRUxBTjBMQU5MN0FDMExBQ0w3SUFBZ0Zkc2dFQ0NpdFlJZGdiOUZtd0RSQ3lFd0lLSzFnaDJCdjBXYkFHRUxJYUFnb3JXQ0hZRy9SWnNpQWtJUkVTT2JJbEh5WVJFamt3TVFFaE5TRUJORFlnRmhVVkZBWWdKalVYRkJZek1qWTFOVFFtSXlJR0ZRRWhBUkVqRVNFQkVUTUhsLzJmQW1IOWRyNEJPTCs2L3NLOXIxeFJUMXRjVUU5Yy9zZis5UDROOUFFTEFmYnlBWnlWQWkrZndjQ21UcHpDd3FJR1lHeHNZMUZmYlcxaSs2TUVDdnYyQmJENzh3UU5BQUFDQUcwRGxBUlhCYkFBREFBVUFHMEFzQUJGV0xBR0x4dXhCaDgrV2JBQVJWaXdDUzhic1FrZlBsbXdBRVZZc0JNdkc3RVRIejVac2dFVkJoRVNPYkFCTDdJQUNRRVJFam15QXdFR0VSSTVzQVRRc2dnQkNSRVNPYkFCRUxBTDBMQUdFTEVOQ2l0WTJCdmNXYkFCRUxBUDBMQU5FTEFSMExBUzBEQXhBUU1qQXhFakVUTVRFek1SSXdFakVTTVJJelVoQStoOFBueHZpWUdGaFcvK0VZcDFqUUdNQlFuK2l3RjAvb3dDSFA2REFYMzk1QUc5L2tVQnUxOEFBQUlBbHYvc0JKRUVUZ0FWQUJ3QVlySUNIUjRSRWptd0FoQ3dGdEFBc0FCRldMQUtMeHV4Q2hzK1diQUFSVml3QWk4YnNRSVBQbG15R1FvQ0VSSTVzQmt2c2c4S0NpdFlJZGdiOUZtd0FoQ3lFd3dLSzFnaDJCdjBXYklWQ2dJUkVqbXdDaEN5RmdvS0sxZ2gyQnYwV1RBeEpRWWpJaVlDTlRRU05qTXlGaFlYRlNFUkZqTXlOd0VpQnhFaEVTWUVGTGU3a2ZTSGtQaUVoZU9FQS8wQWQ1ckVyUDZRbDNvQ0hITmVjcDBCQVpPUEFRT2ZpL09RUHY2NGJub0RLbnIrNndFZWNmLy9BRm4vOVFYTEJaa0FKd0hWLzlrQ2hnQW5BWHdBK3dBQUFRY0IzQU1oQUFBQUVBQ3dBRVZZc0FZdkc3RUdIejVaTURILy93QlUvL1VHYUFXMEFDY0Ixd0FkQXBRQUp3RjhBYWdBQUFFSEFkd0R2Z0FBQUJBQXNBQkZXTEFOTHh1eERSOCtXVEF4Ly84QVcvLzFCbHdGcUFBbkFka0FEQUtUQUNjQmZBR01BQUFCQndIY0E3SUFBQUFRQUxBQVJWaXdBUzhic1FFZlBsa3dNZi8vQUZqLzlRWWFCYU1BSndIYkFDSUNqZ0FuQVh3Qk13QUFBUWNCM0FOd0FBQUFFQUN3QUVWWXNBVXZHN0VGSHo1Wk1ERUFBZ0JpLytzRVF3WDFBQmtBSmdCYnNoTW5LQkVTT2JBVEVMQWcwQUN3Q3krd0FFVllzQk12RzdFVER6NVpzZ0FMRXhFU09iQUFMN0lDQ3hNUkVqbXdDeEN5QlFFS0sxZ2gyQnYwV2JBQUVMSWFBUW9yV0NIWUcvUlpzQk1Rc2lBQkNpdFlJZGdiOUZrd01RRXlGeVltSXlJSEp6YzJNeUFBRVJVVUFnWWpJZ0ExTlRRU0Z5SUdGUlFXTXpJMk5UVW1KZ0k0cm5jYXhZUjhpeDA4Ym84QkRRRW5ldU9VNC83ei92UjdoWVI2ZVlVV2l3UUVmY0xsTmJjWkxQNU8vbkkxd2Y3VHB3RWs5dzNmQVJMQ3A2U2FzTkRGVlV4ZkFBRUFwdjhiQlBRRnNBQUhBQ2NBc0FRdnNBQkZXTEFHTHh1eEJoOCtXYkFFRUxBQjBMQUdFTElDQVFvcldDSFlHL1JaTURFRkl4RWhFU01SSVFUMDlQMlo4d1JPNVFYVStpd0dsUUFCQUVEKzh3VEJCYkFBREFBMUFMQURMN0FBUlZpd0NDOGJzUWdmUGxtd0F4Q3lBZ0VLSzFnaDJCdjBXYkFGMExBSUVMSUtBUW9yV0NIWUcvUlpzQWZRTURFQkFTRVZJVFVCQVRVaEZTRUJBNC85N2dORSszOENULzJ4QkVmODlnSVNBa1A5YzhPWEFzZ0N4cGpEL1hNQUFRQ2VBbTBEN3dNeEFBTUFFUUN3QWkreUFRRUtLMWdoMkJ2MFdUQXhBU0UxSVFQdi9LOERVUUp0eEFBQkFEc0FBQVNTQmJBQUNBQThzZ0FKQ2hFU09RQ3dCeSt3QUVWWXNBRXZHN0VCSHo1WnNBQkZXTEFETHh1eEF3OCtXYklBQVFNUkVqbXdCeEN5QmdFS0sxZ2gyQnYwV1RBeEFRRXpBU01ESXpVaEFrRUJlTm4rRjhYWTBRRm5BU3NFaGZwUUFrSEZBQU1BWHYvc0I5OEVUZ0FhQUNvQU9RQnlzZ2M2T3hFU09iQUhFTEFpMExBSEVMQXkwQUN3QUVWWXNBUXZHN0VFRHo1WnNBQkZXTEFKTHh1eENROCtXYkFFRUxBVzBMQVdMN0lIRmdRUkVqbXdFdEN3RWkreUZCWUVFUkk1c0JZUXNoNEJDaXRZSWRnYjlGbXdCQkN5SndFS0sxZ2gyQnYwV2JBdTBMQWVFTEEzMERBeEFSUUdCaU1pSmljQ0lTSW1KalUxTkJJMk15QVRFaUV5RmhZWEJ6UW1JeUlIQmdjVkZoY1dNekkyTlFVVUZqTXlOamMzTlNZbkppTWlCZ2ZmZ09hUWplbFZxdjdmaitXQmdlU09BU1NwcVFFa2p1U0JBZStTZXFSdUtBOFBMbXVmZVpYNlhaSjdhYXdyQnc4b2JxUjVrZ0lSbVAyUW82Zit0bzcvbVJXWUFRQ1AvcmtCUjQvOWx3U2F4c2xLUWlSRlZjUERvZ1dkdzdPUUdpUkNTc25EQUFBQi82LytTd0tvQmhVQUZRQTlzZ0lXRnhFU09RQ3dBRVZZc0E0dkc3RU9JVDVac0FCRldMQURMeHV4QXhFK1diSUlBUW9yV0NIWUcvUlpzQTRRc2hNQkNpdFlJZGdiOUZrd01RVVVCaU1pSnpjV016STNFVFEyTXpJWEJ5WWpJaFVCa0xhcVFqOFNMQ1dLQXNDeVAxa1pLaktqVDdDMkU3ME5uUVQwczhNVnVRdTRBQUFDQUdVQkFRUVZBL29BRlFBckFIaXlFQ3d0RVJJNXNCQVFzQnpRQUxBWkw3QUQwTEFETDdBSTBMQUlMN0FERUxBSzBMQUlFTElOQVFvcldDSFlHL1Jac0FNUXNoSUJDaXRZSWRnYjlGbXdEUkN3RmRDd0dSQ3dIdEN3SGkrd0dSQ3dJTkN3SGhDeUl3RUtLMWdoMkJ2MFdiQVpFTElvQVFvcldDSFlHL1Jac0NNUXNDdlFNREVUTmpZek5oY1hGak15TnhVR0l5SW5KeVlISWdZSEZUWTJNellYRnhZek1qY1ZCaU1pSnljbUJ5SUdCMlV3aEVKU1RKeEdVWVJsWm45UlJwaFBWRUtITURDQVFsUlBtRVpSaDJWbWcxRkduRXhTUW9Rd0E0NHlPQUlpVGlCKzJXb2dUQ1FDUWp6TE1qZ0NKRXdnZnRscUlFNGlBa0k4QUFFQWtRQ0FBKzhFd3dBVEFEY0FzQk12c2dBQkNpdFlJZGdiOUZtd0JOQ3dFeEN3QjlDd0V4Q3dEOUN3RHkreUVBRUtLMWdoMkJ2MFdiQUkwTEFQRUxBTDBEQXhBU0VISnpjak5TRTNJVFVoTnhjSE14VWhCeUVENy8zaWdHMWRzQUVoZnY1aEFoQ0dibU85L3RGOUFhd0JaT1ErcHNuZnl1MCtyOHJmLy84QVBBQVRBNDBFYXdCbkFDQUFBQUNMUUFBNW1nQUhBWmYvbnYybS8vOEFnQUFUQStBRWF3Qm5BQ0lBQUFDTFFBQTVtZ0FIQVpmLzR2Mm1BQUlBSkFBQUErc0ZzQUFGQUFrQU9MSUdDZ3NSRWptd0JoQ3dCTkFBc0FCRldMQUFMeHV4QUI4K1diQUFSVml3QXk4YnNRTVBQbG15QmdBREVSSTVzZ2dBQXhFU09UQXhBVE1CQVNNQkFRTVRFd0dreEFHRC9vREYvbjRCNGUzeTdBV3cvU2Y5S1FMWEFkYitLdjRwQWRjQS8vOEFvUUNyQWJ3RkJ3QW5BQklBR2dDMkFRY0FFZ0FhQkFjQUNRQ3dBQyt3RWR3d01RQUFBZ0JqQW44Q1BnUTVBQU1BQndBcXNnQUlDUkVTT2JBRjBBQ3dBaSt3QUVWWXNBWXZHN0VHR3o1WnNnQUlBaEVTT2JBQUw3QUUwREF4QVNNUk13RWpFVE1CQUoyZEFUNmRuUUovQWJyK1JnRzZBQUVBUmY5bkFWb0JCZ0FJQUF3QXNBUXZzQURRc0FBdk1ERVhKelkzTlRNVkJnYkZnRWtEeVFGVG1VMXplMlJQWGJyLy93QXRBQUFGR2dZVkFDWUFTZ0FBQUFjQVNnSkVBQUFBQWdBWUFBQUVGd1lWQUJjQUd3QnpzZ2tjSFJFU09iQUpFTEFaMEFDd0FFVllzQWt2RzdFSklUNVpzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdHaThic1JvYlBsbXdBRVZZc0Jjdkc3RVhEejVac0FCRldMQVpMeHV4R1E4K1diQUVFTEFUMExJV0FRb3JXQ0hZRy9SWnNBSFFzQWtRc2c4QkNpdFlJZGdiOUZrd01UTVJJelV6TlQ0Q016SVdGd2NtSXlJR0ZSVXpGU01SSVNNUk03MmxwUUZxd29oUWswOGxpbkp2Wk5YVkFtZno4d09HdEVwL3Rsd2lHc2t3WVdGRXRQeDZCRG9BQVFBdEFBQUVMQVlWQUJZQVk3SVNGeGdSRWprQXNBQkZXTEFTTHh1eEVpRStXYkFBUlZpd0RpOGJzUTRiUGxtd0FFVllzQWt2RzdFSkR6NVpzQUJGV0xBV0x4dXhGZzgrV2JBU0VMSUNBUW9yV0NIWUcvUlpzQTRRc0FYUXNBNFFzZ3NCQ2l0WUlkZ2I5Rm13Q05Bd01RRW1JeUlWRlRNVkl4RWpFU00xTXpVMk5qTXlCUkVqQXpsbVNzVGMzUE9scFFIWHhIb0JSUE1GUHc2NFc3VDhlZ09HdEdHM3d6RDZHd0FDQUMwQUFBYVRCaFVBS0FBc0FMV3lGQzB1RVJJNXNCUVFzQ3JRQUxBQVJWaXdDQzhic1FnaFBsbXdBRVZZc0JZdkc3RVdJVDVac0FCRldMQXJMeHV4S3hzK1diQUFSVml3SVM4YnNTRWJQbG13QUVWWXNCRXZHN0VSR3o1WnNBQkZXTEFFTHh1eEJCcytXYkFBUlZpd0tDOGJzU2dQUGxtd0FFVllzQ1V2RzdFbER6NVpzQUJGV0xBcUx4dXhLZzgrV2JBaEVMSWlBUW9yV0NIWUcvUlpzQ2JRc0FIUXNBZ1FzZzBCQ2l0WUlkZ2I5Rm13RmhDeUhBRUtLMWdoMkJ2MFdUQXhNeEVqTlRNMU5EWXpNaGNISmlNaUZSVWhOVDRDTXpJV0Z3Y21JeUlHRlJVekZTTVJJeEVoRVNFakVUUFNwYVhJdEVCSUJpZzFyZ0YwQVdyQ2lGQ1RUeWFJYzI5azFkWHovb3dFenZQekE0YTBZN1RFRXI0SXMyQktmN1pjSWhySk1HRmhSTFQ4ZWdPRy9Ib0VPZ0FCQUMwQUFBYVRCaFVBSndDbHNoTW9LUkVTT1FDd0FFVllzQlV2RzdFVklUNVpzQUJGV0xBSUx4dXhDQ0UrV2JBQVJWaXdCQzhic1FRYlBsbXdBRVZZc0JBdkc3RVFHejVac0FCRldMQWZMeHV4SHhzK1diQUFSVml3Snk4YnNTY1BQbG13QUVWWXNDUXZHN0VrRHo1WnNBQkZXTEFaTHh1eEdROCtXYkFFRUxJQkFRb3JXQ0hZRy9SWnNBZ1FzZzBCQ2l0WUlkZ2I5Rm13RlJDeUhBRUtLMWdoMkJ2MFdiQUJFTEFtMExBaTBEQXhNeEVqTlRNMU5EWXpNaGNISmlNaUZSVWhOVFkyTXpJRkVTTVJKaU1pRlJVekZTTVJJeEVoRWRLbHBjaTBRRWdHS0RXdUFYUUIxOFI2QVVUelprckUzTnp6L293RGhyUmp0TVFTdmdpellHRzN3ekQ2R3dVL0RyaGJ0UHg2QTRiOGVnQUJBQzMvN0FUUkJoVUFKQUNGc2hNbEpoRVNPUUN3QUVWWXNBOHZHN0VQR3o1WnNBQkZXTEFhTHh1eEdocytXYkFBUlZpd0l5OGJzU01iUGxtd0FFVllzQW92RzdFS0R6NVpzQ01Rc2dBSENpdFlJZGdiOUZtd0NoQ3lCUUVLSzFnaDJCdjBXYkFBRUxBTjBMQU8wTEFqRUxJZkFRb3JXQ0hZRy9SWnNoTUJDaXRZSWRnYjlGbXdEaEN3R05Dd0dkQXdNUUVqRVJRV016STNGUVlqSUJFUkl6VXpOU1lqSWhVUkl4RWpOVE0xTkRZek1oWVhFVE1FeTc4eFB5WXZVMDMrNkxLeVJXeWo4Nldsd3JCbDhYSy9BNGI5cEQ0M0Nyd1hBVFVDWmJUNElMbjdad09HdEdLMnd6Z3gvbzRBQVFCTC8rd0dnQVlZQUV3QXA3SkdUVTRSRWprQXNBQkZXTEJITHh1eFJ5RStXYkFBUlZpd1FDOGJzVUFiUGxtd0FFVllzQTh2RzdFUEd6NVpzQUJGV0xCTEx4dXhTeHMrV2JBQVJWaXdDUzhic1FrUFBsbXdBRVZZc0N3dkc3RXNEejVac0VzUXNnQUhDaXRZSWRnYjlGbXdDUkN5QkFFS0sxZ2gyQnYwV2JBQUVMQU4wTEFPMExCSEVMSVVCd29yV0NIWUcvUlpzRUFRc2lBSENpdFlJZGdiOUZtd0xCQ3lOQWNLSzFnaDJCdjBXVEF4QVNNUkZETXlOeFVHSXlJbUp4RWpOVE0xTkNZaklnWVZGQjRDRlNNMEppTWlCaFVVRmdRV0ZoVVVCaU1pSmlZMU14WVdNekkyTlRRbUppY21OVFEyTXpJWEpqVTBOak15RmhVVk13WjV2M0VtTDFOTmg1QUJyS3hnV0U5WUhTRWM5R2hXVUdWZUFSNmpUL0xFaGRCMDdBVjRZMkJrYS9oVHR1eTJXMDB0MmE3SjNyOERodjIzaUFxOEY2cWlBazYwV0dKcFZFVTZhV1o1VFVaZFNqNDRQajlYZWxlU3RXQ29ZVlpkU1R0QlJEUW9XS2VNdkJkc1Q0R2x5c1ZQQUJZQVdmNXlCK3dGcmdBTkFCb0FLQUEzQUQwQVF3QkpBRThBVmdCYUFGNEFZZ0JtQUdvQWJnQjJBSG9BZmdDQ0FJWUFpZ0NPQWNDeUVJK1FFUkk1c0JBUXNBRFFzQkFRc0J2UXNCQVFzRERRc0JBUXNEelFzQkFRc0Q3UXNCQVFzRWJRc0JBUXNFclFzQkFRc0ZEUXNCQVFzRmZRc0JBUXNGdlFzQkFRc0dIUXNCQVFzR1BRc0JBUXNHZlFzQkFRc0czUXNCQVFzSERRc0JBUXNIZlFzQkFRc0h2UXNCQVFzSC9Rc0JBUXNJVFFzQkFRc0lqUXNCQVFzSXpRQUxBOUw3QUFSVml3Umk4YnNVWWZQbG15ZlVRREs3SjhlUU1yc25pQkF5dXlnRGtESzdJS1JqMFJFam13Q2krd0E5Q3dBeSt3RHRDd0RpK3dDaEN3RDlDd0R5K3lidzRQRVJJNWZMQnZMeGl5VUFzS0sxZ2gyQnYwV2JJVlVHOFJFam13Q2hDeUhnc0tLMWdoMkJ2MFdiQURFTElsQ3dvcldDSFlHL1Jac0E4UXNDblFzQ2t2c0E0UXNDN1FzQzR2c2pRTENpdFlJZGdiOUZtd1BSQ3dhOUN3WjlDd1k5Q3dQdEN5UHd3S0sxZ2gyQnYwV2JCbDBMQnAwTEJ0MExBODBMQTVFTEJCMExCR0VMSkhEQW9yV0NIWUcvUlpzRnZRc0ZmUXNFclFzRVlRc0dEUXNGelFzRmpRc0V2UXNFUVFzRTdRc0E0UXNsRUxDaXRZSWRnYjlGbXdSeEN3WDlDd0R4Q3lkZ3NLSzFnaDJCdjBXYkI0RUxDRTBMQjVFTENGMExCOEVMQ0kwTEI5RUxDSjBMQ0FFTENNMExDQkVMQ04wREF4QVJRR0l5SW1KelUwTmpNeUZoY1RFVE15RmhVVUJ4WVdGUlFqQVRRbUl5SUdGUlVVRmpNeU5qVUJNeEVVQmlNaUpqVXpGRE15TmpVQkVUTVZNeFVoTlRNMU14RUJFU0VWSXhVbE5TRVJJelVCRlRNeU5UUW5FelVoRlNFMUlSVWhOU0VWQVRVaEZTRTFJUlVoTlNFVkV6TXlOVFFtSXlNQkl6VXpOU00xTXhFak5UTWxJelV6TlNNMU14RWpOVE1ETjRGa1pvQUNmbWhsZ0FKRHZHSnlWREkwMFA2UFNrRkFTa3BDUUVrRHVseHBVbGh0WFdncE52bkVjY1FGS01kditHMEJOY1FGN0FFMmIveGNmbWRpeXdFVy9Wc0JGZjFjQVJRQ0NnRVcvVnNCRmYxY0FSUzhYWFk2UEYzODhYRnhjWEZ4Y1FjaWIyOXZiMjl2QWRSaWVYaGVkVjk4ZUY3K3N3SWxTVTFVSUExR0xac0JTRVZPVGtWd1JVNU9SUUZQL29aT1hWRlRXellzL01rQk84cHhjY3IreFFZZkFSMTBxYWwwL3VPcC9MYXBVMUlFQTBwMGRIUjBkSFQ1T0hGeGNYRnhjUVBFVUNrZS90UDhmdnI4RmZsKy9INzYvQlg1QUFVQVhQM1ZCOWNJY3dBREFCd0FJQUFrQUNnQVRBQ3dJUyt3SlMrd0FOQ3dBQyt3SVJDd0F0Q3dBaSt5SUFJQUVSSTVzQ0F2c0IzUXNCMHZzQVRRc0FRdnNnMEFBaEVTT2JBTkw3QVUwTEFVTDdJSEJCUVJFam15R1JRRUVSSTVNREVKQXdVME5qYzJOalUwSmlNaUJnY3pOall6TWhZVkZBY0dCaFVYSXhVekF6TVZJd016RlNNRUdBTy8vRUg4UkFRUEhpUktYS2VWa0tBQ3l3STZLems0WFZzdnlzcktTd1FFQWdRRUJsTDhNZnd4QTgveE9qb1lKNGRLZ0plTGZ6TTBRRFJmUEVGY1RGdXEvVXdFQ3A0RUFBRUFPZ0FBQStvRnNBQUdBRElBc0FCRldMQUZMeHV4QlI4K1diQUFSVml3QVM4YnNRRVBQbG13QlJDeUF3RUtLMWdoMkJ2MFdiSUFBd1VSRWprd01RRUJJd0VoTlNFRDZ2M1U5QUlzL1VRRHNBVXArdGNFN2NNQUFBSUFULzVXQkJjRVRnQWJBQ1lBZzdJZkp5Z1JFam13SHhDd0ROQUFzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdCeThic1FjYlBsbXdBRVZZc0F3dkc3RU1FVDVac0FCRldMQVlMeHV4R0E4K1diSUdCQmdSRWptd0RCQ3lFZ0VLSzFnaDJCdjBXYklRRWhnUkVqbXlGZ1FZRVJJNXNCZ1FzaDhCQ2l0WUlkZ2I5Rm13QkJDeUpBRUtLMWdoMkJ2MFdUQXhFelEyTmpNeUZ6Y3pFUlFBSXlJbUp6Y1dNekkyTlRVR0l5SW1KamNVRmpNeU54RW1JeUlHVDIzTmhiOXBFTkgrKys5VnVVazFncENPZzJxdWY4eHk4NDk0bFVaRmxIeU5BaWFnKzQyR2N2d2M5djcyTHkyd1RKeWJGbmVNL0oyZndJRUIyWHZCQUFBQi83RCtTd0dPQU0wQURRQXVzZ01PRHhFU09RQ3dEaSt3QUVWWXNBVXZHN0VGRVQ1WnNnb0JDaXRZSWRnYjlGbXdEaEN3RGRDd0RTOHdNU1VSRkFjR0l5SW5OeFl6TWpVUkFZNXdXNVZHT0E0a1BYek4vdmZJWWs4UnhneXlBUVVBQUFFQVhQNmFBVThBdFFBREFCSUFzQVF2c0FMUXNBSXZzQUhRc0FFdk1ERUJJeEV6QVUvejgvNmFBaHNBQWdCMUJOQUM5d2JjQUF3QUlBQjdBTEFETDdBRzBMQUdMMEFMRHdZZkJpOEdQd1pQQmdWZHNBTVFzZ2tHQ2l0WUlkZ2I5Rm13QmhDd0ROQ3dEQyt3QmhDd0VOQ3dFQyt3RTlDd0V5OUFEUThUSHhNdkV6OFRUeE5mRXdaZHNCQVFzQmJRc0JZdnNCTVFzaG9JQ2l0WUlkZ2I5Rm13RUJDeUhRZ0tLMWdoMkJ2MFdiQWFFTEFnMERBeEFSUUdJQ1kxTXhRV016STJOUk1VQmlNaUppTWlCaFVuTkRZek1oWXpNalkxQXZldy90NndyMHhHU0VxUVgwYzRnU29mS21oaFJTK0lMQjRzQmJCbGUzdGxOVG84TXdFUFMydEhNaVViVFd4SE1pUUFBZ0IxQk5VQzlnY0lBQTBBSEFCWkFMQURMN0FIMExBSEwwQUxEd2NmQnk4SFB3ZFBCd1Zkc0FNUXNnb0dDaXRZSWRnYjlGbXdCeEN3RGRDd0RTK3dCeEN3RHRDd0RpK3dGTkN3RkMreUR3NFVFUkk1c2hVTUNpdFlJZGdiOUZteUd3NFBFUkk1TURFQkZBWWpJaVkxTXhRV016STJOU2NuTmpZMU5DTTNNaFlWRkFZSEJ3TDJyNUdTcjYxUVJFVk4zd2hJUDVJSG5wOU9SQUVGc0dKNWVXSTBPVG96R1hZQ0Z4bzJZRkJFTHpvSU9nQUFBZ0IxQk5NREFBWitBQTBBRVFCZEFMQURMN0FHMExBR0wwQUxEd1lmQmk4R1B3WlBCZ1Zkc0FNUXNnb0dDaXRZSWRnYjlGbXdCaEN3RGRDd0RTK3dCaEN3RU5Dd0VDK3dEdEN3RGk5QUR3OE9IdzR2RGo4T1R3NWZEbThPQjEyd0VCQ3dFZEFac0JFdkdEQXhBUlFHSXlJbU5UTVVGak15TmpVbk13Y2pBd0N2bHBXeHNVeEpSMHhsdHFtQUJiQmhmSHBqTkR3OE5NN0FBQUlBZFFUbkExd0cwUUFHQUJvQWpRQ3dBUyt3QTlDd0F5K3dCTkFac0FRdkdMQUEwQm13QUM4WXNBTVFzQVhRc0FVdlFBa1BCUjhGTHdVL0JRUmRzZ0lGQXhFU09iQUswTEFLTDBBSlB3cFBDbDhLYndvRVhiQU4wTEFOTDBBUER3MGZEUzhOUHcxUERWOE5idzBIWGJBS0VMQVEwTEFRTDdBTkVMSVVCZ29yV0NIWUcvUlpzQW9Rc2hjR0NpdFlJZGdiOUZtd0ZCQ3dHdEF3TVFFakp3Y2pKVE0zRkFZaklpWWpJZ1lWSnpRMk16SVdNekkyTlFOY3diT3l3UUVxazdwWlBURjdKQnNwV2xrOEtuOG1HaXdFNTQ2TzdkOCtYMElzR3hoQVlFRXRIQUFDQUhVRTV3UUtCc3NBQmdBVkFHQUFzQUV2c0FQUXNBTXZzQVRRR2JBRUx4aXdBTkFac0FBdkdMQURFTEFGMExBRkwwQUpEd1VmQlM4RlB3VUVYYklDQXdVUkVqbXdBUkN3QjlDd0J5K3dEZEN3RFMreUNBY05FUkk1c2c0R0NpdFlJZGdiOUZteUZBZ0hFUkk1TURFQkl5Y0hJeVV6RnljMk5qVTBJemN5RmhVVUJnY0hBMXpCczdMQkFSYTd1UWMvT0lFSGlZeEpPQUVFNTZLaStuUjlCUmdkUG1sWlN6ZEJCenNBQXY5TUJOb0RYQWFEQUFZQUNnQmJBTEFETDdBRTBCbXdCQzhZc0FEUUdiQUFMeGl3QXhDd0FkQ3dBUyt3QnRDd0JpOUFDUThHSHdZdkJqOEdCRjJ5QWdNR0VSSTVzQU1Rc0FqUXNBZ3ZzQWZRR2JBSEx4aXdDQkN3Q3RDd0NpKzJEd29mQ2k4S0ExMHdNUUVqSndjakpUTUZJd016QTF6Vm41L1VBU09oL29lZDE5MEUybzZPK2x3QkN3QUNBSG9FNXdTTEJwQUFCZ0FLQUZzQXNBTXZzQVhRc0FVdnNBRFFzQUF2UUFrUEFCOEFMd0EvQUFSZHNBTVFzQUxRR2JBQ0x4aXlCQU1BRVJJNXNBYlFHYkFHTHhpd0F4Q3dDZEN3Q1Mrd0I5Q3dCeSsyRHdjZkJ5OEhBMTJ3Q1JDd0N0QVpzQW92R0RBeEFUTUZJeWNISXdFekF5TUJuYUVCSTlTZm45VURNOTdZblFYaCtvNk9BYW4rOVFBQUFnQjFCTlFEQUFaK0FBMEFFUUJkQUxBREw3QUcwTEFHTDBBTER3WWZCaThHUHdaUEJnVmRzQU1Rc2dvR0NpdFlJZGdiOUZtd0JoQ3dEZEN3RFMrd0JoQ3dFZEN3RVMrd0R0Q3dEaTlBRHc4T0h3NHZEajhPVHc1ZkRtOE9CMTJ3RVJDd0VOQVpzQkF2R0RBeEFSUUdJeUltTlRNVUZqTXlOalVsTXhjakF3Q3ZscFd4c1V4SlIweitsTGR5Z0FXeFlYeDZZelE4UERUTndBQUFBUUNVQkdrQnFRWXJBQWdBSGJJSUNRb1JFamtBc0FCRldMQUFMeHV4QUNFK1diQUUwTEFFTHpBeEFSY0dCd2NqTlRRMkFTYURQd0lCMDFVR0sxTnRmSWFGV2JZQUFBSUFDUUFBQkpRRWpRQUhBQW9BUmdDd0FFVllzQVF2RzdFRUhUNVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdCaThic1FZUFBsbXlDUVFDRVJJNXNBa3ZzZ0FCQ2l0WUlkZ2I5Rm15Q2dRQ0VSSTVNREVsSVFjakFUTUJJd0VoQXdNLy9oNWY5UUhYM3dIVjl2NEdBVlNxK2ZrRWpmdHpBYklCdWdBREFIWUFBQVFLQkkwQURnQVdBQjhBcExJZUlDRVJFam13SGhDd0F0Q3dIaEN3RWRBQXNBQkZXTEFCTHh1eEFSMCtXYkFBUlZpd0FDOGJzUUFQUGxteUZ3RUFFUkk1c0JjdnRLOFh2eGNDWGJSdkYzOFhBbkd5L3hjQmNiSVBGd0Z5dEk4WG54Y0NjckpmRndGeXNzOFhBWEd5UHhjQmNiUWZGeThYQWwyMHZ4ZlBGd0p5c2c4QkNpdFlJZGdiOUZteUNBOFhFUkk1c0FBUXNoQUJDaXRZSWRnYjlGbXdBUkN5SGdFS0sxZ2gyQnYwV1RBeE14RWhNaFlWRkFZSEZoWVZGQVlqQXhFek1qWTFOQ2NuTXpZMk5UUW1JeU4yQWEvZTYxbGJZSERpM2VMa1ptUzArdFJiWTJkbHhnU05wWnhQZ3lNWGoyT2pxd0g3L3NkVlFaNEZxZ0pJUlU5R0FBQUJBRS8vOEFSREJKMEFHd0JPc2dNY0hSRVNPUUN3QUVWWXNBc3ZHN0VMSFQ1WnNBQkZXTEFETHh1eEF3OCtXYklQQ3dNUkVqbXdDeEN5RWdFS0sxZ2gyQnYwV2JBREVMSVlBUW9yV0NIWUcvUlpzaHNEQ3hFU09UQXhBUVlFSXlJQUVUVTBOall6TWdRWEl5WW1JeUFSRlJRV016STJOd1JDRWY3MzJleis3SDdzbk5ZQkJCVHpESDF5L3UyR2gzaDhEUUdFdjlVQkxBRUxSS24vaXRyQ2NHbitqa2k1dFdKd0FBSUFkZ0FBQkNvRWpRQUxBQk1BUnJJVEZCVVJFam13RXhDd0F0QUFzQUJGV0xBQkx4dXhBUjArV2JBQVJWaXdBQzhic1FBUFBsbXdBUkN5REFFS0sxZ2gyQnYwV2JBQUVMSU5BUW9yV0NIWUcvUlpNREV6RVNFeUJCWVhGUlFHQkNNREVUTWdFelVRSlhZQmU2UUJBNUFDai83NXFJT0NBVWNHL3NrRWpZcjduejJqL29zRHlmejVBVnhEQVdBSUFBRUFkZ0FBQTdVRWpRQUxBRTRBc0FCRldMQUdMeHV4QmgwK1diQUFSVml3QkM4YnNRUVBQbG15Q3dZRUVSSTVzQXN2c2dBQkNpdFlJZGdiOUZtd0JCQ3lBZ0VLSzFnaDJCdjBXYkFHRUxJSUFRb3JXQ0hZRy9SWk1ERUJJUkVoRlNFUklSVWhFU0VEWC80S0Frejh3UU04L2JjQjlnSDQvc3JDQkkzRS92SUFBUUIyQUFBRG5nU05BQWtBUUFDd0FFVllzQVF2RzdFRUhUNVpzQUJGV0xBQ0x4dXhBZzgrV2JJSkJBSVJFam13Q1MreUFBRUtLMWdoMkJ2MFdiQUVFTElHQVFvcldDSFlHL1JaTURFQklSRWpFU0VWSVJFaEExditEdk1ES1AzTEFmSUIyLzRsQkkzRS90VUFBUUJVLy9BRVNBU2RBQndBWExJYUhSNFJFamtBc0FCRldMQUtMeHV4Q2gwK1diQUFSVml3QXk4YnNRTVBQbG15RGdNS0VSSTVzQW9Rc2hFQkNpdFlJZGdiOUZtd0F4Q3lGd0VLSzFnaDJCdjBXYkliQXdvUkVqbXdHeSt5R1FjS0sxZ2gyQnYwV1RBeEpRY0dJU0lBRVRVUUFETXlGaGNqSmlZaklCRVZGQllnTnpVak5TRUVTQmVXL3RYNC90d0JGdlRYK2hudEVubHMvdVNnQVNoRytRSHJreGlMQVM0QkNVRUJDUUVzdzhCa1hQNkpRTGU2T2NpeEFBQUJBSFlBQUFSb0JJMEFDd0NHQUxBQVJWaXdCaThic1FZZFBsbXdBRVZZc0Fvdkc3RUtIVDVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3QkM4YnNRUVBQbG15Q1FZQUVSSTVzQWt2dEs4SnZ3a0NYYkkvQ1FGeHNzOEpBWEd5UHdrQmNyTC9DUUZ4c2c4SkFYSzBid2wvQ1FKeHROOEo3d2tDWGJKZkNRRnl0QndKTEFrQ1hiSUNBUW9yV0NIWUcvUlpNREVoSXhFaEVTTVJNeEVoRVRNRWFQUDk5UFB6QWd6ekFkditKUVNOL2hFQjd3QUJBSVVBQUFGM0JJMEFBd0FkQUxBQVJWaXdBaThic1FJZFBsbXdBRVZZc0FBdkc3RUFEejVaTURFaEl4RXpBWGZ5OGdTTkFBQUJBQ1QvOEFOa0JJMEFEZ0Fpc2dVUEVCRVNPUUN3QUVWWXNBVXZHN0VGRHo1WnNnc0JDaXRZSWRnYjlGa3dNUUV6RVJRR0l5SW1OVE1VTXpJMk5RSng4K095eXVIMHQwdFhCSTM4NEs3UHdLK3RYbDBBQUFFQWRnQUFCR2dFalFBTUFFc0FzQUJGV0xBRUx4dXhCQjArV2JBQVJWaXdDQzhic1FnZFBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQUxMeHV4Q3c4K1diSUdBZ1FSRWptd0JoQ3dBZEN5Q2dFR0VSSTVNREVCQnhFakVUTVJOd0VoQVFFaEFmQ0g4L051QVU4QkxQNURBZFArM2dIYmcvNm9CSTM5L1lZQmZmMzMvWHdBQVFCMkFBQURsQVNOQUFVQUtBQ3dBRVZZc0FRdkc3RUVIVDVac0FCRldMQUNMeHV4QWc4K1diSUFBUW9yV0NIWUcvUlpNREVsSVJVaEVUTUJhUUlyL09MendzSUVqUUFBQVFCMkFBQUZqd1NOQUE0QVlMSUJEeEFSRWprQXNBQkZXTEFBTHh1eEFCMCtXYkFBUlZpd0FpOGJzUUlkUGxtd0FFVllzQVF2RzdFRUR6NVpzQUJGV0xBSUx4dXhDQTgrV2JBQVJWaXdEQzhic1F3UFBsbXlBUUFFRVJJNXNnY0FCQkVTT2JJS0FBUVJFamt3TVFrQ0lSRWpFUk1CSXdFVEVTTVJBYklCVVFGT0FUN3lHZjZncVA2aEdmSUVqZnkxQTB2N2N3RTdBanI4aXdOdy9jdit4UVNOQUFBQkFIWUFBQVJuQkkwQUNRQkZBTEFBUlZpd0JTOGJzUVVkUGxtd0FFVllzQWd2RzdFSUhUNVpzQUJGV0xBQUx4dXhBQTgrV2JBQVJWaXdBeThic1FNUFBsbXlBZ1VBRVJJNXNnY0ZBQkVTT1RBeElTTUJFU01STXdFUk13Um44djMwOC9NQ0RQSURHL3psQkkzODVBTWNBQUFDQUUvLzhBUnZCSjBBRGdBY0FFYXlBeDBlRVJJNXNBTVFzQkxRQUxBQVJWaXdDeThic1FzZFBsbXdBRVZZc0FNdkc3RUREejVac0FzUXNoSUJDaXRZSWRnYjlGbXdBeEN5R1FFS0sxZ2gyQnYwV1RBeEFSQUFJeUlBRVRVMEVqWXpNZ0FSSnpRbUl5SUdGUlVVRmpNeU5qVUViLzdmN2V6KzJvWHdtL0FCSVBLV2lJYVltWWVJbEFJcy92ait6QUUxQVF3dXJBRUhpLzdIL3ZVSXQ4REF0eld5eDhPMkFBQUNBSFlBQUFRc0JJMEFDZ0FUQUUyeUJCUVZFUkk1c0FRUXNBelFBTEFBUlZpd0F5OGJzUU1kUGxtd0FFVllzQUV2RzdFQkR6NVpzZ3NCQXhFU09iQUxMN0lBQVFvcldDSFlHL1Jac0FNUXNoSUJDaXRZSWRnYjlGa3dNUUVSSXhFaE1oWVZGQVlISnpNeU5qVTBKaU1qQVduekFlWFUvZkhVL3ZKb2QzbGw4d0daL21jRWpkV3RxY1lEeEZoVVYya0FBQUlBVFA4d0JHd0VuUUFVQUNJQVJySUlJeVFSRWptd0NCQ3dIOUFBc0FCRldMQVJMeHV4RVIwK1diQUFSVml3Q0M4YnNRZ1BQbG13RVJDeUdBRUtLMWdoMkJ2MFdiQUlFTElmQVFvcldDSFlHL1JaTURFQkZBWUhGd2NsQmlNaUpnSW5OVFFTTmpNeUFCRW5OQ1lqSWdZVkZSUVdNekkyTlFSc2JtUFBuZjcyTWpTYThvUUJndkdjN3dFaThaZUpocGVYaUltVkFpeWo4VWlZaU1rSml3RUJxam1yQVFXTy9zais5QWkzd01PMk03REp3N1lBQWdCMkFBQUVPUVNOQUEwQUZnQmhzZ1VYR0JFU09iQUZFTEFQMEFDd0FFVllzQVF2RzdFRUhUNVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdEUzhic1EwUFBsbXlEZ0lFRVJJNXNBNHZzZ0FCQ2l0WUlkZ2I5Rm15Q2dBT0VSSTVzQVFRc2hVQkNpdFlJZGdiOUZrd01RRWpFU01SSVRJV0ZSUUhBUlVoQVRNeU5qVTBKaU1qQWtqZjh3SEkydkRoQVJMKy9QNDAxV3hzYVcvVkFhbitWd1NOdDZyclcvNGxDd0pyWDA1UllBQUJBRDcvOEFQdkJKMEFKUUJqc2drbUp4RVNPUUN3QUVWWXNBa3ZHN0VKSFQ1WnNBQkZXTEFjTHh1eEhBOCtXYklESEFrUkVqbXlEUWtjRVJJNXNBa1FzaEFCQ2l0WUlkZ2I5Rm13QXhDeUZRRUtLMWdoMkJ2MFdiSWhIQWtSRWptd0hCQ3lJd0VLSzFnaDJCdjBXVEF4QVRRbUpDWW1OVFEyTXpJV0ZTTTBKaU1pQmhVVUZoY1dGaFVVQmlNaUppWTFNeFFoTWpZREFtait6N0JUOXNQUy92TjRaVjl1Y1kvZHdQak1pdVYrOUFFQVlXOEJNa0pQVEdLRFhKSzd5S0JSWFUxQU9rd2pOcktPbWE1ZHFuSEFTZ0FCQUNRQUFBUVdCSTBBQndBdUFMQUFSVml3Qmk4YnNRWWRQbG13QUVWWXNBSXZHN0VDRHo1WnNBWVFzZ0FCQ2l0WUlkZ2I5Rm13Qk5Bd01RRWhFU01SSVRVaEJCYitmdlArZ3dQeUE4bjhOd1BKeEFBQkFHZi84QVFlQkkwQUR3QTFzZ3dRRVJFU09RQ3dBRVZZc0Fndkc3RUlIVDVac0FCRldMQUVMeHV4QkE4K1diSU1BUW9yV0NIWUcvUlpzQWdRc0EvUU1ERUJFUlFFSUNRMUVUTVJGQll6TWpjUkJCNysvLzVLL3dEeGZtemxCQVNOL1FHKzROM0JBdi85QUhObzFBTUhBQUFCQUFrQUFBUnlCSTBBQ0FBeEFMQUFSVml3QXk4YnNRTWRQbG13QUVWWXNBY3ZHN0VISFQ1WnNBQkZXTEFGTHh1eEJROCtXYklCQXdVUkVqa3dNUUVYTndFaEFTTUJJUUlxRXhJQklnRUIva2IyL2tjQkFRRTRUVXNEVi90ekJJMEFBQUVBS0FBQUJlVUVqUUFNQUZrQXNBQkZXTEFCTHh1eEFSMCtXYkFBUlZpd0NDOGJzUWdkUGxtd0FFVllzQXN2RzdFTEhUNVpzQUJGV0xBREx4dXhBdzgrV2JBQVJWaXdCaThic1FZUFBsbXlBQUVERVJJNXNnVUJBeEVTT2JJS0FRTVJFamt3TVFFVE13RWpBd01qQVRNVEV6TUVTcS9zL3VicjJOdnIvdWJzc2RqV0FTc0RZdnR6QTBIOHZ3U04vSndEWkFBQkFCVUFBQVJLQkkwQUN3QlRBTEFBUlZpd0FTOGJzUUVkUGxtd0FFVllzQW92RzdFS0hUNVpzQUJGV0xBRUx4dXhCQTgrV2JBQVJWaXdCeThic1FjUFBsbXlBQUVFRVJJNXNnWUJCQkVTT2JJREFBWVJFam15Q1FZQUVSSTVNREVCRXlFQkFTRURBeUVCQVNFQ0ovSUJIUDZKQVl6KzRQLzYvdVFCZ2Y2SUFSb0MrZ0dUL2I3OXRRR1ovbWNDU3dKQ0FBRUFCUUFBQkRZRWpRQUlBREVBc0FCRldMQUJMeHV4QVIwK1diQUFSVml3Qnk4YnNRY2RQbG13QUVWWXNBUXZHN0VFRHo1WnNnQUJCQkVTT1RBeEFRRWhBUkVqRVFFaEFoMEJEZ0VML2wzeS9tUUJDd0o2QWhQOUIvNXNBYUVDN0FBQUFRQkJBQUFEOHdTTkFBa0FSQUN3QUVWWXNBY3ZHN0VISFQ1WnNBQkZXTEFDTHh1eEFnOCtXYklBQVFvcldDSFlHL1Jac2dRQUFoRVNPYkFIRUxJRkFRb3JXQ0hZRy9SWnNna0ZCeEVTT1RBeEpTRVZJVFVCSVRVaEZRRjRBbnY4VGdKcy9aVURvTUxDalFNOHhJb0FBQUlBUy8vMUFxb0RJQUFOQUJjQVJySURHQmtSRWptd0F4Q3dFTkFBc0FCRldMQUtMeHV4Q2hrK1diQUFSVml3QXk4YnNRTVBQbG13Q2hDeUVBSUtLMWdoMkJ2MFdiQURFTElWQWdvcldDSFlHL1JaTURFQkZBWWpJaVkxTlRRMk16SVdGU2MwSXlJSEZSUXpNamNDcXA2UWtwK2VrWkNndTNWeUEzZHZCQUUrbjZxcW5waWRycTJlREttZnVLbWFBQUVBZ0FBQUFnSURFd0FHQURFQXNBQkZXTEFGTHh1eEJSaytXYkFBUlZpd0FTOGJzUUVQUGxtd0JSQ3dCTkN3QkMreUF3SUtLMWdoMkJ2MFdUQXhJU01SQnpVbE13SUN1Y2tCYnhNQ09qQ1Nkd0FCQUR3QUFBS3lBeUFBRndCWnNnZ1lHUkVTT1FDd0FFVllzQTh2RzdFUEdUNVpzQUJGV0xBQUx4dXhBQTgrV2JJV0Fnb3JXQ0hZRy9SWnNnSVdBQkVTT2JJRER3QVJFam13RHhDeUNBSUtLMWdoMkJ2MFdiSU1BQThSRWpteUZRQVBFUkk1TURFaElUVUJOalUwSmlNaUJoVWpORFl6TWhZVkZBOENJUUt5L1p3QkhYRTJORHBDdXFtSGo1eHFZb3dCYzMwQkJXZERLalZDTm5TWmdITnJabGR4QUFFQU4vLzFBcWtESUFBa0FIK3lIaVVtRVJJNUFMQUFSVml3RFM4YnNRMFpQbG13QUVWWXNCY3ZHN0VYRHo1WnNnQVhEUkVTT1h5d0FDOFl0RkFBWUFBQ2NiYUFBSkFBb0FBRFhiQU5FTElHQWdvcldDSFlHL1Jac2dvQUJoRVNPYkFBRUxJa0Fnb3JXQ0hZRy9SWnNoSWtBQkVTT2JBWEVMSWVBZ29yV0NIWUcvUlpzaHNrSGhFU09UQXhBVE15TlRRbUl5SUdGU00wTmpNeUZoVVVCeFlWRkFZaklpWTFNeFFXTXpJMk5UUW5Jd0VNVVlRMlBqQkJ1cVdDajZPSGxiR1BoNnU2UlR3L1BZWmNBZEpoSXpVbkkyTjhlV2wzTXltT2FuNS9jU1kxTnlwbEFRQUFBZ0ExQUFBQ3ZnTVZBQW9BRGdCSkFMQUFSVml3Q1M4YnNRa1pQbG13QUVWWXNBUXZHN0VFRHo1WnNnRUpCQkVTT2JBQkw3SUNBZ29yV0NIWUcvUlpzQWJRc0FFUXNBdlFzZ2dMQmhFU09iSU5DUVFSRWprd01RRXpGU01WSXpVaEp3RXpBVE0xQndKZlgxKzcvcG9KQVcyOS9vdTZEZ0U2bDZPamVRSDUvaVh5RmdBQUFRQlAvL1VDcmdNVkFCb0FhcklOR3h3UkVqa0FzQUJGV0xBQ0x4dXhBaGsrV2JBQVJWaXdEUzhic1EwUFBsbXdBaEN5QXdJS0sxZ2gyQnYwV2JJSEFnMFJFam13QnkreUdBSUtLMWdoMkJ2MFdiSUZHQWNSRWptd0RSQ3lFd0lLSzFnaDJCdjBXYklSRXhnUkVqbXlHaGdURVJJNU1ERVRFeUVWSVFjMk16SVdGUlFHSXlJbUp6TVdNekkxTkNZaklnZGlOQUhzL3F3VVBrZURqS09NZ2EwQ3VRVnlkVU5DUXpVQmZ3R1dscFFiaG5wNG1ZUmpVbjA0UkNnQUFBSUFUZi8xQXJrRElnQVRBQjRBVzdJVUh5QVJFam13RkJDd0ROQUFzQUJGV0xBQUx4dXhBQmsrV2JBQVJWaXdEQzhic1F3UFBsbXdBQkN5QVFJS0sxZ2gyQnYwV2JJR0RBQVJFam13QmkreUZBSUtLMWdoMkJ2MFdiQU1FTElhQWdvcldDSFlHL1JaTURFQkZTSUdCell6TWhZVkZBWWpJaVkxTlRRMk13TWlCZ2NWRkRNeU5qVTBBaktSaVExSGEzV0hxSWFUcS9EZWxpMUNEMzgxUkFNaW1WOWlSWTU2ZDVtbm16SFM2UDVYSkJja2tVWTJkQUFCQURZQUFBS3VBeFVBQmdBeUFMQUFSVml3QlM4YnNRVVpQbG13QUVWWXNBSXZHN0VDRHo1WnNBVVFzZ1FDQ2l0WUlkZ2I5Rm15QUFRRkVSSTVNREVCQVNNQklUVWhBcTcrcmNRQlUvNU1BbmdDclAxVUFuK1dBQUFEQUV2LzlRS3FBeUFBRXdBY0FDUUFscklISlNZUkVqbXdCeEN3Rk5Dd0J4Q3dJdEFBc0FCRldMQVJMeHV4RVJrK1diQUFSVml3Qnk4YnNRY1BQbG15SWdjUkVSSTVmTEFpTHhpMmdDS1FJcUFpQTEyMFVDSmdJZ0p4dEFBaUVDSUNjYlJBSWxBaUFsMjAwQ0xnSWdKeHNoa0NDaXRZSWRnYjlGbXlBaUlaRVJJNXNnd1pJaEVTT2JBSEVMSVVBZ29yV0NIWUcvUlpzQkVRc2g4Q0NpdFlJZGdiOUZrd01RRVVCeFlWRkFZaklpWTFORGNtTlRRMk16SVdBVEkyTkNZaUJoUVdFelFpRlJRV01qWUNsM0dFb1k2TXBJUnhtNEdDbS83a05VQkJha0JBbDhRellERUNRWFEzUFlCcWVubHJnRDAzZEdsMmR2M2dNMW93TUZvekFhdFdWaWN3TUFBQ0FFYi85d0tqQXlBQUV3QWZBR0N5RkNBaEVSSTVzQlFRc0FqUUFMQUFSVml3Q0M4YnNRZ1pQbG13QUVWWXNCQXZHN0VRRHo1WnNnSVFDQkVTT1h5d0FpOFlzQkFRc2hFQ0NpdFlJZGdiOUZtd0FoQ3lGQUlLSzFnaDJCdjBXYkFJRUxJYUFnb3JXQ0hZRy9SWk1ERUJCaU1pSmpVME5qTXlGaGNWRkFZSEl6VXlOaWN5TnpVMEppTWlCaFVVRmdIblFscCtoNnFFaTZJQzNPQVRqM2xqVGlOQ05ETkJQQUUyT1lwOWVLU21senZYMlFHVFVxdzBSVWhCVGprM1JBQUJBSkFDaHdNdEF6RUFBd0FSQUxBQ0w3SUJBUW9yV0NIWUcvUlpNREVCSVRVaEF5MzlZd0tkQW9lcUFBTUFsZ1JJQXFJR2xRQURBQThBR3dCT0FMQU5MN0FaMExBWkw3SUhDUW9yV0NIWUcvUlpzQUxRc0FJdnNBRFFzQUF2UUE4UEFCOEFMd0EvQUU4QVh3QnZBQWRkc0FJUXNBUFFHYkFETHhpd0RSQ3lFd2tLSzFnaDJCdjBXVEF4QVRNSEl3YzBOak15RmhVVUJpTWlKamNVRmpNeU5qVTBKaU1pQmdHODV2V1ZnbTVPVEd4cFQxRnJZelFsSkRBd0pDVTBCcFhDM2s1a1pVMUtZMkpMSlRFeEpTY3pNd0FEQUFyK1NnUWJCRTRBS1FBMkFFTUFtN0lJUkVVUkVqbXdDQkN3TU5Dd0NCQ3dPdEFBc0FCRldMQW1MeHV4SmhzK1diQUFSVml3Rmk4YnNSWVJQbG13SmhDd0tOQ3dLQyt5QUFNS0sxZ2gyQnYwV2JJSUZpWVJFam13Q0MreUR4WUlFUkk1c0E4dnNqVUJDaXRZSWRnYjlGbXlHelVQRVJJNXNoOElKaEVTT2JBV0VMSXdBUW9yV0NIWUcvUlpzQWdRc2pvQkNpdFlJZGdiOUZtd0poQ3lRUUVLSzFnaDJCdjBXVEF4QVNNV0ZSVVVCZ1lqSWljR0ZSUVhNeFlXRlJRR0JpTWlKRFUwTnlZMU5EY21KalUxTkRZek1oY2hBUVlHRlJRV016STJOVFFuSlFNVUZqTXlOalUxTkNZaUJoVUVHNG82Yzg2QVVVVWxjOExEeW8vNm10bis5Yll5ZFZway9NZFZTd0Z4L1RBa01ZaHlocXlUL3VwQWVsbFlkM1c0ZFFPZ1ZXa1daS2xmRWlNdlNnTUJtbzVZcG1LYmVhVlpNa2gzVVRHZVh4YWl5aFQ3NVJOSU1FSk5Ya0JyQ1FJQ3MwdG1aMDRTU21abVRRQUNBRmIvNndSZkJFNEFFQUFkQUc2eUd4NGZFUkk1c0JzUXNBblFBTEFBUlZpd0NTOGJzUWtiUGxtd0FFVllzQXd2RzdFTUd6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdFQzhic1JBUFBsbXlBQWtDRVJJNXNnc0pBaEVTT2JBQ0VMSVVBUW9yV0NIWUcvUlpzQWtRc2hzQkNpdFlJZGdiOUZrd01TVUdJeUlDTlRVUUVqTXlGemN6QXhNakFSUVdNekkyTnpVbUppTWlCZ05qYnZMSDV1akg2WEVjM1d4ejNmM0hmSFJnZkJjUmZXTnpmOFRaQVNEMER3RUtBVGJYdy8zaS9lUUIrYUNzcTZZdnBibkZBQUFDQUpzQUFBVHlCYkFBRmdBZUFHR3lHQjhnRVJJNXNCZ1FzQVRRQUxBQVJWaXdBeThic1FNZlBsbXdBRVZZc0FFdkc3RUJEejVac0FCRldMQVBMeHV4RHc4K1diSVhBd0VSRWptd0Z5K3lBQUVLSzFnaDJCdjBXYklKQUJjUkVqbXdBeEN5SFFFS0sxZ2gyQnYwV1RBeEFSRWpFU0V5RmhVVUJ4WVRGUlFYRlNFbUp6VTBKaU1sSVRJMk5UUWhJUUdYL0FJcDlmLzM1UVZIL3Z3N0JIdHcvdE1CRkpDQi92ais0d0pXL2FvRnNObk40MlZGL3ZaenFUMGFNYmg1ZElES2NXM21BQUFCQUpzQUFBVXdCYkFBREFCWUFMQUFSVml3QkM4YnNRUWZQbG13QUVWWXNBZ3ZHN0VJSHo1WnNBQkZXTEFDTHh1eEFnOCtXYkFBUlZpd0N5OGJzUXNQUGxteUJnSUVFUkk1c0FZdnNoOEdBWEd5QVFFS0sxZ2gyQnYwV2JJS0FRWVJFamt3TVFFakVTTVJNeEV6QVNFQkFTRUNRNno4L0lzQnJBRTIvZ3dDSVA3UUFuRDlrQVd3L1p3Q1pQMUgvUWtBQUFFQWdRQUFCRFVHQUFBTUFGTUFzQUJGV0xBRUx4dXhCQ0UrV2JBQVJWaXdDQzhic1FnYlBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQUxMeHV4Q3c4K1diSUhDQUlSRWptd0J5K3lBQUVLSzFnaDJCdjBXYklLQUFjUkVqa3dNUUVqRVNNUk14RXpBU0VCQVNFQjRtL3k4bWtCRHdFYy9wOEJqLzdtQWRuK0p3WUEvSndCbnY0Ui9iVUFBUUNiQUFBRkVnV3dBQXNBVEFDd0FFVllzQU12RzdFREh6NVpzQUJGV0xBSEx4dXhCeDgrV2JBQVJWaXdBUzhic1FFUFBsbXdBRVZZc0Fvdkc3RUtEejVac2dBREFSRVNPYklGQXdFUkVqbXlDUUFGRVJJNU1ERUJFU01STXhFekFTRUJBU0VCbC96OEJnSVpBVGo5cFFKLy9zZ0NtdjFtQmJEOWZ3S0IvVFg5R3dBQUFRQ0JBQUFFSWdZWUFBb0FUQUN3QUVWWXNBTXZHN0VESVQ1WnNBQkZXTEFHTHh1eEJocytXYkFBUlZpd0FTOGJzUUVQUGxtd0FFVllzQWt2RzdFSkR6NVpzZ0FHQVJFU09iSUZCZ0VSRWpteUNBQUZFUkk1TURFQkVTTVJNeEVCSVFFQklRRno4dklCV1FFcS9sQUIzUDdiQWV2K0ZRWVkvSVFCbnY0TS9ib0FBQUVBUHY4VEErOEZjd0FxQUcreUV5c3NFUkk1QUxBQVJWaXdDUzhic1FrZFBsbXdBRVZZc0NJdkc3RWlEejVac2dNaUNSRVNPYkFKRUxBTTBMQURFTElZQVFvcldDSFlHL1Jac0FrUXNoTUJDaXRZSWRnYjlGbXlFQmdURVJJNXNDSVFzQi9Rc0NJUXNpZ0JDaXRZSWRnYjlGbXlKZ01vRVJJNU1ERUJOQ1lrSmlZMU5EWTNOVE1WRmhZVkl6UW1JeUlHRlJRV0Z4WVdGUlFHQnhVak5TWW1OVE1VSVRJMkF3Sm8vcyt3VTgrcG9LYkw4M2hsWDI1eGo5M0F3NjZndmVQMEFRQmhid0V5UWs5TVlvTmNoclFRMmR3VndJMVJYVTFBT2t3ak5yS09ocXdSNGVFVHg1ckFTZ0FBQVFBNEFBQUVHZ1NkQUI4QWJySWJJQ0VSRWprQXNBQkZXTEFUTHh1eEV4MCtXYkFBUlZpd0JTOGJzUVVQUGxteUh4TUZFUkk1c0I4dnNnQUNDaXRZSWRnYjlGbXdCUkN5QXdFS0sxZ2gyQnYwV2JBSDBMQUkwTEFBRUxBTTBMQWZFTEFPMExBVEVMSWFBUW9yV0NIWUcvUlpzaGNmR2hFU09UQXhBU0VXQnlFSElUVXpOalluSnlNMU15Y21Oak15RmhVak5DWWpJZ1lYRnlFRFIvNkZCbEFDbUFIOFpRb3BLd01Cb0pzREJ0aS93dG56VjFCTlZ3VUVBWUFCNWJKd3c4TUxrMzBIazJuTzd0UzhZV3ArZVdrQUFRQU9BQUFFUHdTTkFCZ0FsYklBR1JvUkVqa0FzQUJGV0xBQkx4dXhBUjArV2JBQVJWaXdHQzhic1JnZFBsbXdBRVZZc0F3dkc3RU1EejVac2dBTUdCRVNPYklKREFFUkVqbXdDUyt3Qk5Dd0JDOUFEUThFSHdRdkJEOEVUd1JmQkFaZHRzOEUzd1R2QkFOZHNnWUNDaXRZSWRnYjlGbXdDUkN5Q2dJS0sxZ2gyQnYwV2JBTzBMQUpFTEFRMExBUUw3QUdFTEFUMExBRUVMQVcwTEFXTHpBeEFRRWhBVE1WSVFjVklSVWhGU00xSVRVaE5TY2hOVE1CSVFJbEFROEJDLzYrMWY3YUVBRTIvc3J5L3NvQk5nbiswOXordmdFTEFub0NFLzIza3gwcWtkblprVFlSa3dKSkFBQUJBSFlBQUFPWEJJMEFCUUF5c2dFR0J4RVNPUUN3QUVWWXNBUXZHN0VFSFQ1WnNBQkZXTEFETHh1eEF3OCtXYkFFRUxJQUFRb3JXQ0hZRy9SWk1ERUJJUkVqRVNFRGwvM1M4d01oQThuOE53U05BQUFDQUFrQUFBUnlCSTBBQXdBSUFEeXlCUWtLRVJJNXNBVVFzQUxRQUxBQVJWaXdBaThic1FJZFBsbXdBRVZZc0FBdkc3RUFEejVac2dVQUFoRVNPYklIQVFvcldDSFlHL1JaTURFaElRRXpBeWNIQXlFRWN2dVhBYm4yYVJJVDNnSGpCSTMreVV0Ti9XOEFBd0JQLy9BRWJ3U2RBQU1BRWdBZ0FIYXlCeUVpRVJJNXNBY1FzQUhRc0FjUXNCYlFBTEFBUlZpd0R5OGJzUThkUGxtd0FFVllzQWN2RzdFSER6NVpzZ01QQnhFU09YeXdBeThZdEdBRGNBTUNYYlF3QTBBREFsMnlBQU1CY2JJQUFRb3JXQ0hZRy9SWnNBOFFzaFlCQ2l0WUlkZ2I5Rm13QnhDeUhRRUtLMWdoMkJ2MFdUQXhBU0UxSVFVUUFDTWlBQkUxTkJJMk16SUFFU2MwSmlNaUJoVVZGQll6TWpZMUF6aitXZ0dtQVRmKzMrM3MvdHFGOEp2d0FTRHlsb2lHbUptSGlKUUIzOE4yL3ZqK3pBRTFBUXd1ckFFSGkvN0gvdlVJdDhEQXR6V3l4OE8yQUFBQkFBa0FBQVJ5QkkwQUNBQTRzZ2NKQ2hFU09RQ3dBRVZZc0FJdkc3RUNIVDVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3QkM4YnNRUVBQbG15QndJQUVSSTVNREVoSVFFekFTRUJKd2NCQ3Y3L0FibjJBYnIrLy83ZUVoTUVqZnR6QTFaTFRRQURBRUlBQUFOVkJJMEFBd0FIQUFzQVhySUVEQTBSRWptd0JCQ3dBTkN3QkJDd0NOQUFzQUJGV0xBS0x4dXhDaDArV2JBQVJWaXdBQzhic1FBUFBsbXlBZ0VLSzFnaDJCdjBXYklIQ2dBUkVqbXdCeSt5QkFFS0sxZ2gyQnYwV2JBS0VMSUlBUW9yV0NIWUcvUlpNREVoSVRVaEF5RTFJUk1oTlNFRFZmenRBeE5KL1g0Q2drbjg3UU1Ud3dFNHhBRUt4QUFBQVFCMkFBQUVZZ1NOQUFjQVA3SUJDQWtSRWprQXNBQkZXTEFHTHh1eEJoMCtXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQUV2RzdFQkR6NVpzQVlRc2dJQkNpdFlJZGdiOUZrd01TRWpFU0VSSXhFaEJHTDAvZnZ6QSt3RHlmdzNCSTBBQUFFQVJBQUFBK1lFalFBTUFFdXlBQTBPRVJJNUFMQUFSVml3Q0M4YnNRZ2RQbG13QUVWWXNBTXZHN0VERHo1WnNnRUJDaXRZSWRnYjlGbXlCUUVERVJJNXNBZ1FzZ29CQ2l0WUlkZ2I5Rm15QndvSUVSSTVNREVCQVNFVklUVUJBVFVoRlNFQkFwRCs1Z0p3L0Y0QlAvN0JBM3o5dWdFV0FrWCtmOFNZQWJjQnBwakUvbzhBQXdCUUFBQUZUUVNOQUJFQUZnQWNBRyt5Q0IwZUVSSTVzQWdRc0JUUXNBZ1FzQnJRQUxBQVJWaXdFQzhic1JBZFBsbXdBRVZZc0Fndkc3RUlEejVac2c4UUNCRVNPYkFQTDdBQTBMSUpDQkFSRWptd0NTK3dCdEN3Q1JDeUZBRUtLMWdoMkJ2MFdiQVBFTElWQVFvcldDSFlHL1Jac0JyUXNCUVFzQnZRTURFQkZnUVZGQVFIRlNNMUppUTFOQ1EzTlRNQkFnVVJCQVUwSmljUkpBTko4QUVVL3VudDgvRCs2Z0VYNy9QOStRUUJHUDdzQXhtUWdnRVNCQlVQOXNyUStnOXRiQS81ME0zM0RYajl0Lzc5RlFJcUZmdUZnUXI5MWhVQUFBRUFVQUFBQlFNRWpRQVlBRXV5QUJrYUVSSTVBTEFBUlZpd0VpOGJzUklkUGxtd0FFVllzQXd2RzdFTUR6NVpzaFlNRWhFU09iQVdMN0FBMExBU0VMQVgwTEFFMExBV0VMSU5BUW9yV0NIWUcvUlpzQXJRTURFQk5qWTFFVE1SQmdjR0J4RWpFU1lDQXhFekVSUVdGeEV6QXlOL2J2TUJhSDM2OCtQN0F2TndmZk1CM1JqQ3B3RXYvczNqazY4ZC91Z0JGeFlCS2dFQUFUYiswYWpBR0FLdkFBRUFYd0FBQklRRW5RQWpBRnl5QnlRbEVSSTVBTEFBUlZpd0dTOGJzUmtkUGxtd0FFVllzQTh2RzdFUER6NVpzQUJGV0xBaUx4dXhJZzgrV2JBUEVMSVJBUW9yV0NIWUcvUlpzQTdRc0FEUXNCa1FzZ2NCQ2l0WUlkZ2I5Rm13RVJDd0lOQ3dJZEF3TVNVMk5qVTFOQ1lqSWdZVkZSUVdGeFVoTlRNbUVUVTBOall6TWdBVkZSUUdCek1WSVFLdGVHeVVqWXFVZG5UK01MQzlnL0tjNmdFcVkxbTIvaS9JSXNtd0s1NnNxYVFvc2NjanlNU2JBU2NXa2V5RS91UHRHWTNmU3NRQUFBRUFKUC9zQlZJRWpRQVpBR3V5RmhvYkVSSTVBTEFBUlZpd0FpOGJzUUlkUGxtd0FFVllzQTR2RzdFT0R6NVpzQUJGV0xBWUx4dXhHQTgrV2JBQ0VMSUFBUW9yV0NIWUcvUlpzQVRRc0FYUXNnZ0NEaEVTT2JBSUw3QU9FTElQQndvcldDSFlHL1Jac0FnUXNoVUJDaXRZSWRnYjlGa3dNUUVoTlNFVklSVTJNeklXRlJRR0l6VXlOalUwSmlNaUJ4RWpBWDcrcGdPdC9xQ0tqZHJ3OE90emRuUjFnWVh6QThuRXhPNG4xTWE4d0wxVWFYSm5KdjNuQUFFQVQvL3dCRU1FblFBZEFJK3lBeDRmRVJJNUFMQUFSVml3Q3k4YnNRc2RQbG13QUVWWXNBTXZHN0VERHo1WnNnOExBeEVTT2JBTEVMSVNBUW9yV0NIWUcvUlpzaFVMQXhFU09iQVZMN0wvRlFGeHNnOFZBWEt5UHhVQmNiTFBGUUZ4dEc4VmZ4VUNjYlN2RmI4VkFsMnlYeFVCY3JLUEZRRnlzaFlCQ2l0WUlkZ2I5Rm13QXhDeUdnRUtLMWdoMkJ2MFdiSWRBd3NSRWprd01RRUdCQ01pQUJFMU5EWTJNeklFRnlNbUppTWlBeUVWSVJZV016STJOd1JDRWY3MzJleis3SDdzbk5ZQkJCVHpESDF5K3hZQmdQNkFDbjZEZUh3TkFZUy8xUUVzQVF0RXFmK0syc0p3YWY3UHhKU2ZZbkFBQWdBa0FBQUhGUVNOQUJjQUlBQjJzZ1FoSWhFU09iQUVFTEFZMEFDd0FFVllzQkl2RzdFU0hUNVpzQUJGV0xBREx4dXhBdzgrV2JBQVJWaXdDeThic1FzUFBsbXdFaEN5QlFFS0sxZ2gyQnYwV2JBTEVMSU9BUW9yV0NIWUcvUlpzaFFTQXhFU09iQVVMN0lZQVFvcldDSFlHL1Jac0FNUXNoa0JDaXRZSWRnYjlGa3dNUUVVQmdjaEVTRURCZ0lHSXlNM056WTJOeE1oRVRNeUZpVVJNekkyTlRRbUl3Y1YrYy8rRmY2a0RndFlySkUwQVNaZ1Rnd1ZBenZzMnZyOVFQRm5kWFptQVgrcjBnSUR5ZjZjNy83L2RjMENCNS90QWl2K2JOQU0vbzVyVTFGakFBQUNBSFlBQUFjWUJJMEFFd0FjQU1HeUFSMGVFUkk1c0FFUXNCVFFBTEFBUlZpd0V5OGJzUk1kUGxtd0FFVllzQUl2RzdFQ0hUNVpzQUJGV0xBUUx4dXhFQTgrV2JBQVJWaXdEUzhic1EwUFBsbXlBQkFURVJJNXNBQXZ0SzhBdndBQ1hiSS9BQUZ4c3M4QUFYR3lQd0FCY3JKZkFBRnlzdjhBQVhHeUR3QUJjclJ2QUg4QUFuRzAzd0R2QUFKZHRCOEFMd0FDWGJLZkFBRnlzZ1FOQWhFU09iQUVMN0FBRUxJUEFRb3JXQ0hZRy9SWnNBUVFzaFFCQ2l0WUlkZ2I5Rm13RFJDeUZRRUtLMWdoMkJ2MFdUQXhBU0VSTXhFek1oWVdGUlFHSXlFUklSRWpFVE1CRVRNeU5qVTBKaU1CYVFIOTgvS00wbS8vMHY0Zi9nUHo4d0x3OFdkMWRtWUNuZ0h2L214ZnEzQ3YwQUhiL2lVRWpmMm8vbzVyVTFGakFBQUJBQ1FBQUFWU0JJMEFGUUJYc2hJV0Z4RVNPUUN3QUVWWXNBTXZHN0VESFQ1WnNBQkZXTEFVTHh1eEZBOCtXYkFBUlZpd0RTOGJzUTBQUGxtd0F4Q3lCQUVLSzFnaDJCdjBXYkFBMExJSUZBTVJFam13Q0MreUVRRUtLMWdoMkJ2MFdUQXhBU0UxSVJVaEZUWXpNaFlYRVNNUk5DWWpJZ2NSSXdGKy9xWURyZjZnaG83ZTZ3VHpkSFNCaGZNRHljVEU3U2JQeS82WUFWcDhhU2I5NXdBQUFRQjIvcDhFWVFTTkFBc0FUN0lEREEwUkVqa0FzQUl2c0FCRldMQUdMeHV4QmgwK1diQUFSVml3Q2k4YnNRb2RQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFFTHh1eEJBOCtXYklJQVFvcldDSFlHL1Jac0FuUU1ERWhJUkVqRVNFUk14RWhFVE1FWWY2SzgvNSs4d0lGOC82ZkFXRUVqZncyQThvQUFnQjJBQUFFS0FTTkFBc0FGQUJlc2dnVkZoRVNPYkFJRUxBTTBBQ3dBRVZZc0Fvdkc3RUtIVDVac0FCRldMQUlMeHV4Q0E4K1diQUtFTElBQVFvcldDSFlHL1Jac2dNS0NCRVNPYkFETDdBSUVMSU1BUW9yV0NIWUcvUlpzQU1Rc2hJQkNpdFlJZGdiOUZrd01RRWhGVE1XRmhBR0l5RVJJUUV5TmpVMEppY2pFUU95L2JmOHovVDQyZjRmQXp6K3FHaHpjR2IyQTh2Z0E4VCtxTXdFamZ3MlkxUlBYUUgrbkFBQ0FDZityd1VWQkkwQUR3QVZBRnV5RXhZWEVSSTVzQk1Rc0FYUUFMQU5MN0FBUlZpd0JTOGJzUVVkUGxtd0FFVllzQXN2RzdFTER6NVpzZ0FCQ2l0WUlkZ2I5Rm13QjlDd0NOQ3dEUkN3Q3RDd0NCQ3dFTkN3RWRDd0JSQ3lFZ0VLSzFnaDJCdjBXVEF4Tno0Q054TWhFVE1SSXhFaEVTTVRJU0VSSVFjQ2drcENJd1VNQXoyVzh2ejM4d0VCZEFIdy9xRUhEY05SaHJSK0FjSDhOdjNzQVZIK3J3SVVBd2I4L3E0QUFRQWFBQUFHSHdTTkFCVUFucklCRmhjUkVqa0FzQUJGV0xBUkx4dXhFUjArV2JBQVJWaXdEaThic1E0ZFBsbXdBRVZZc0Fvdkc3RUtIVDVac0FCRldMQUdMeHV4Qmc4K1diQUFSVml3QXk4YnNRTVBQbG13QUVWWXNCVXZHN0VWRHo1WnNnd0REaEVTT2JBTUw3SS9EQUZ4c2w4TUFYS3l6d3dCY2JTdkRMOE1BbDIwand5ZkRBSnlzQS9Rc2dFQkNpdFlJZGdiOUZtd0JOQ3lDQThFRVJJNXNoTUJEeEVTT1RBeEFTTVJJeEVqQXlFQkFTRVRNeEV6RVRNVElRRUJJUVAxWC9OZy9QN1RBVnoreEFFZTkxVHpWUGNCSHY3Q0FWNyswd0hWL2lzQjFmNHJBbFFDT2Y0Z0FlRCtJQUhnL2REOW93QUFBUUJDLy9BRDV3U2RBQ2NBaXJJbUtDa1JFamtBc0FCRldMQUtMeHV4Q2gwK1diQUFSVml3Rmk4YnNSWVBQbG13Q2hDeUF3RUtLMWdoMkJ2MFdiSUdDaFlSRWpteUpnb1dFUkk1c0NZdnNzOG1BWEd5UHlZQmNiU3ZKcjhtQWwyeS95WUJjYklQSmdGeXNsOG1BWEt5SXdFS0sxZ2gyQnYwV2JJUUl5WVJFam15SEJZS0VSSTVzQllRc2g0QkNpdFlJZGdiOUZrd01RRTBKaU1pQmhVak5EWXpNaFlWRkFZSEZoWVZGQVFqSWlZbkpqVXpGak15TmpVMEp5TTFNellDNG5CclcyYno4OFBZOUc1ZGIyNysvdHhkcno5ODh3dktkM1RnbEpySEEwTkdUMFk4bExPbmxsdUtKeVNSVzUrMUxTOWJuNU5YU0tZRHNBUUFBUUIyQUFBRWJnU05BQWtBVExJQUNnc1JFamtBc0FCRldMQUFMeHV4QUIwK1diQUFSVml3Q0M4YnNRZ2RQbG13QUVWWXNBVXZHN0VGRHo1WnNBQkZXTEFETHh1eEF3OCtXYklFQXdBUkVqbXlDUVVJRVJJNU1ERUJNeEVqRVFFakVUTVJBM3Z6OC8zdTgvTUVqZnR6QXlQODNRU04vT0FBQVFCMkFBQUVRQVNOQUF3QWQ3SUFEUTRSRWprQXNBQkZXTEFJTHh1eENCMCtXYkFBUlZpd0JTOGJzUVVkUGxtd0FFVllzQUl2RzdFQ0R6NVpzQUJGV0xBTUx4dXhEQTgrV2JJR0FnVVJFam13QmkreVB3WUJjYkpmQmdGeXNzOEdBWEcwcndhL0JnSmR0SThHbndZQ2NySUJBUW9yV0NIWUcvUlpzZ29CQmhFU09UQXhBU01SSXhFekVUTUJJUUVCSVFIVGF2UHpZd0U0QVIzK2NnR3QvdEVCMWY0ckJJMytJQUhnL2NYOXJnQUJBQ1FBQUFSVkJJMEFFQUJOc2dRUkVoRVNPUUN3QUVWWXNBQXZHN0VBSFQ1WnNBQkZXTEFCTHh1eEFROCtXYkFBUlZpd0NTOGJzUWtQUGxtd0FCQ3lBd0VLSzFnaDJCdjBXYkFKRUxJTUFRb3JXQ0hZRy9SWk1ERUJFU01SSVFNR0FnWUhJemMzTmpZM0V3UlY4LzZrRHd4WHFvdzZBU2RpU2d3V0JJMzdjd1BKL3AvdC92NTRBYzBFQzZEbUFpc0FBQUVBSC8vc0JEa0VqUUFQQUVPeUFCQVJFUkk1QUxBQVJWaXdEeThic1E4ZFBsbXdBRVZZc0FJdkc3RUNIVDVac0FCRldMQUlMeHV4Q0E4K1diSUJDQThSRWpteUN3RUtLMWdoMkJ2MFdUQXhBUmNUSVFFT0FpTW5OeGN5TndFaEFpa1Q4d0VLL25BNFduNWFaZ0ZYWURQK1d3RU9Ba3MzQW5uOGZuNXBPQVhBQkdFRGZ3QUFBUUIyL3E4RkpBU05BQXNBUXJJSkRBMFJFamtBc0FNdnNBQkZXTEFITHh1eEJ4MCtXYkFBUlZpd0NpOGJzUW9kUGxtd0FFVllzQVV2RzdFRkR6NVpzZ2dCQ2l0WUlkZ2I5Rm13QU5Bd01TVXpBeU1SSVJFekVTRVJNd1Jpd2hUZC9FUHpBZ1gwdy8zc0FWRUVqZncyQThvQUFRQkJBQUFFRmdTTkFCRUFScklFRWhNUkVqa0FzQUJGV0xBSkx4dXhDUjArV2JBQVJWaXdFQzhic1JBZFBsbXdBRVZZc0FFdkc3RUJEejVac2cwQkNSRVNPYkFOTDdJRUFRb3JXQ0hZRy9SWk1ERWhJeEVHSXlJbUp4RXpFUlFXTXpJM0VUTUVGdk9HZ2Vyd0FmTnZlWUtGOHdHcUp0TFJBV2Irbm5kc0pnSWZBQUVBZGdBQUJnNEVqUUFMQUVHeUJ3d05FUkk1QUxBQVJWaXdBeThic1FNZFBsbXdBRVZZc0FFdkc3RUJEejVac2dRQkNpdFlJZGdiOUZtd0F4Q3dCdEN3QkJDd0NOQ3dCaEN3Q3RBd01TRWhFVE1SSVJFekVTRVJNd1lPK21qekFWL3pBV0R6QkkzOE5nUEsvRFlEeWdBQkFIYityd2JSQkkwQUR3QkJzZ3NRRVJFU09RQ3dBeSt3QUVWWXNBY3ZHN0VISFQ1WnNBQkZXTEFFTHh1eEJBOCtXYklBQVFvcldDSFlHL1Jac0EzUXNBblFzQWNRc0FyUXNBN1FNREVsTXdNakVTRVJNeEVoRVRNUklSRXpCZy9DRk4zNmx2TUJYL01CWVBURC9ld0JVUVNOL0RZRHl2dzJBOG9BQWdBS0FBQUZHd1NOQUF3QUZRQmVzZ2dXRnhFU09iQUlFTEFVMEFDd0FFVllzQWN2RzdFSEhUNVpzQUJGV0xBREx4dXhBdzgrV2JBSEVMSUZBUW9yV0NIWUcvUlpzZ29IQXhFU09iQUtMN0FERUxJTkFRb3JXQ0hZRy9SWnNBb1FzaE1CQ2l0WUlkZ2I5Rmt3TVFFVUJnY2hFU0UxSVJFek1oWUJNalkxTkNZbkl4RUZHL25QL2hYK29nSlM2OXY1L2pKbWRYRmkrUUYvcTlJQ0E4bkUvbXpRL3BwclUwOWpBdjZPLy84QWRnQUFCYWtFalFBbUFnZ0FBQUFIQWNJRU1nQUFBQUlBZGdBQUJDZ0VqUUFMQUJRQVRiSURGUllSRWptd0F4Q3dETkFBc0FCRldMQUdMeHV4QmgwK1diQUFSVml3QkM4YnNRUVBQbG15QndRR0VSSTVzQWN2c2hNQkNpdFlJZGdiOUZtd0JCQ3lGQUVLSzFnaDJCdjBXVEF4QVJRR0l5RVJNeEV6TWhZV0FUSTJOVFFtSnlNUkJDai8wdjRmOC9LTTBtLytNbVoxY1dMNUFYK3YwQVNOL214ZnEvN1VhMU5QWXdMK2pnQUFBUUE4Ly9BRU1BU2RBQjBBaDdJREhoOFJFamtBc0FCRldMQVNMeHV4RWgwK1diQUFSVml3R2k4YnNSb1BQbG15QUJvU0VSSTVzZ01CQ2l0WUlkZ2I5Rm15Q1JJYUVSSTVzQWt2c3M4SkFYR3lQd2tCY2JSdkNYOEpBbkcwcndtL0NRSmRzdjhKQVhHeUR3a0JjckpmQ1FGeXNnWUJDaXRZSWRnYjlGbXdFaEN5Q3dFS0sxZ2gyQnYwV2JJT0Vob1JFamt3TVFFV0ZqTXlOamNoTlNFQ0l5SUdCeU0ySkRNeUFCY1hGQVlHSXlJa0p3RXZEWHg0Z29BSy9uOEJnQmI3Y24wTTh4UUJCTmJpQVJjTUFYdnFtOXorK0E4QmhIQmluNVRFQVRGcGNNTGEvdWp3ZGFuL2lOcTZBQUFDQUhiLzhBWkJCSjBBRXdBaEFLK3lCQ0lqRVJJNXNBUVFzQm5RQUxBQVJWaXdFQzhic1JBZFBsbXdBRVZZc0Fzdkc3RUxIVDVac0FCRldMQURMeHV4QXc4K1diQUFSVml3Q0M4YnNRZ1BQbG15RFFnTEVSSTVzQTB2dEs4TnZ3MENYYlJ2RFg4TkFuR3kvdzBCY2JJUERRRnl0SThObncwQ2NySmZEUUZ5c3M4TkFYR3lQdzBCY2JRZkRTOE5BbDJ5encwQmNySUdBUW9yV0NIWUcvUlpzQkFRc2hjQkNpdFlJZGdiOUZtd0F4Q3lIZ0VLSzFnaDJCdjBXVEF4QVJBQUl5SUFKeU1SSXhFekVUTTJBRE15QUJFbk5DWWpJZ1lWRlJRV016STJOUVpCL3QvdDN2N2lFN3p5OHJ3VUFSM2M4QUVnOHBhSWhwaVpoNGlVQWl6KytQN01BUkRpL2g0RWpmNFk2UUVQL3NmKzlRaTN3TUMzTmJMSHc3WUFBZ0JEQUFBRUVnU05BQXdBRlFCYXNnWVdGeEVTT2JBR0VMQVEwQUN3QUVWWXNBY3ZHN0VISFQ1WnNBQkZXTEFKTHh1eENROCtXYklSQ1FjUkVqbXdFUyt5Q2dFS0sxZ2gyQnYwV2JJQkNoRVJFam13Q1JDd0ROQ3dCeEN5RWdFS0sxZ2gyQnYwV1RBeE13RW1OVFEyTXlFUkl4RWpBeE1VRmpNekVTTWlCa01CRnRidzB3SE04L0htTG1GcjNkMWhhd0lLVnRHanVmdHpBYnorUkFNaVNsa0JTbGNBQUFFQUNnQUFBLzhFalFBTkFGQ3lBUTRQRVJJNUFMQUFSVml3Q0M4YnNRZ2RQbG13QUVWWXNBSXZHN0VDRHo1WnNnY0NDQkVTT2JBSEw3SUVCd29yV0NIWUcvUlpzQUhRc0FnUXNnc0JDaXRZSWRnYjlGbXdCeEN3RE5Bd01RRWpFU01SSXpVekVTRVZJUkV6QXFmVzg5VFVBeUg5MHRZQjV2NGFBZWFxQWYzRS9zY0FBQUVBR3Y2dkJtMEVqUUFaQUtTeUNCb2JFUkk1QUxBREw3QUFSVml3RVM4YnNSRWRQbG13QUVWWXNBVXZHN0VGRHo1WnNBQkZXTEFKTHh1eENROCtXYkFBUlZpd0RTOGJzUTBQUGxteUZ3a1JFUkk1c0JjdnNqOFhBWEd5WHhjQmNyTFBGd0Z4dEs4WHZ4Y0NYYlNQRjU4WEFuS3lCd0VLSzFnaDJCdjBXYklBQnhjUkVqbXdCUkN5QVFFS0sxZ2gyQnYwV2JBSEVMQUwwTElQRndjUkVqbXdGeEN3RXRDd0VSQ3dGTkN3R05Bd01RRVRNeEVqRVNNREl4RWpFU01ESVFFQklSTXpFVE1STXhNaEJNSHV2dENyL1YvellQeiswd0ZjL3NRQkh2ZFU4MVQzQVI0Q1hmNWwvZTBCVVFIVi9pc0IxZjRyQWxRQ09mNGdBZUQrSUFIZ0FBRUFkdjZ2Qkh3RWpRQVFBSWl5QUJFU0VSSTVBTEFFTDdBQVJWaXdEQzhic1F3ZFBsbXdBRVZZc0E4dkc3RVBIVDVac0FCRldMQUpMeHV4Q1E4K1diQUFSVml3Qmk4YnNRWVBQbG15RFFrTUVSSTVzQTB2c2o4TkFYR3lYdzBCY3JMUERRRnh0SzhOdncwQ1hiU1BEWjhOQW5LeUNBRUtLMWdoMkJ2MFdiSUFDQTBSRWptd0JoQ3lBUUVLSzFnaDJCdjBXVEF4QVFFekVTTVJJd0VqRVNNUk14RXpBU0VDa3dFaHlOQ2Ivc0pxOC9OakFUZ0JIUUpTL25EOTdRRlJBZFgrS3dTTi9pQUI0QUFCQUhZQUFBVCtCSTBBRkFDQXNnVVZGaEVTT1FDd0FFVllzQlF2RzdFVUhUNVpzQUJGV0xBR0x4dXhCaDArV2JBQVJWaXdFUzhic1JFUFBsbXdBRVZZc0Fvdkc3RUtEejVac2dBUkZCRVNPYkFBTDdJL0FBRnhzbDhBQVhLeXp3QUJjYlN2QUw4QUFsMjBqd0NmQUFKeXNBVFFzQUFRc2hBQkNpdFlJZGdiOUZtd0ROQ3lDQXdBRVJJNU1ERUJNelV6RlRNQklRRUJJUUVqRlNNMUl4RWpFVE1CYVVlak53RTRBUnorY2dHdS90SCt3ajZqUi9QekFxM2UzZ0hnL2NUOXJ3SFZ5OHYrS3dTTkFBQUJBQ1FBQUFWT0JJMEFEZ0NGc2drUEVCRVNPUUN3QUVWWXNBY3ZHN0VISFQ1WnNBQkZXTEFLTHh1eENoMCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQTR2RzdFT0R6NVpzZ2dDQnhFU09iQUlMN0kvQ0FGeHNsOElBWEt5endnQmNiU3ZDTDhJQWwyMGp3aWZDQUp5c2dFQkNpdFlJZGdiOUZtd0J4Q3lCQUVLSzFnaDJCdjBXYklNQVFnUkVqa3dNUUVqRVNNUklUVWhFVE1CSVFFQklRTGhhdlArb0FKVFl3RTRBUjMrY2dHdC90RUIxZjRyQThyRC9pQUI0UDNFL2E4QUFnQlAvK3NGbUFTbEFDTUFMZ0NNc2hVdk1CRVNPYkFWRUxBazBBQ3dBRVZZc0Jzdkc3RWJIVDVac0FCRldMQUxMeHV4Q3gwK1diQUFSVml3QkM4YnNRUVBQbG13QUVWWXNBQXZHN0VBRHo1WnNnSUVHeEVTT2JBQ0w3QUxFTElNQVFvcldDSFlHL1Jac0FRUXNoTUJDaXRZSWRnYjlGbXdBQkN5SXdFS0sxZ2gyQnYwV2JBQ0VMQW0wTEFiRUxJc0FRb3JXQ0hZRy9SWk1ERUZJaWNHSXlBQUF6VTBBRE1WSWdZVkZSUVdNek0zSmdNMU5CSXpNaElYRlJBSEZqTUJFQmMyTnpVMEppTWlFUVdZNDY2UnFmN2EvcXdFQVFqYmNYL0x3QnNid0FMY3Y4YmRBYU5mWFAyVXZxSUJVMXV6RURrK0FUd0JHRHIrQVM3TXRMRW15ODBDcWdFZUxPb0JEZjc4N0VqKy82MExBZEwrOUc5NDh6V2drUDdTLy84QUJRQUFCRFlFalFBbUFkSUFBQUFIQWQ0QU8vN1ZBQUVBRmY2dkJJc0VqUUFQQUZxeUNoQVJFUkk1QUxBSEw3QUFSVml3QVM4YnNRRWRQbG13QUVWWXNBOHZHN0VQSFQ1WnNBQkZXTEFMTHh1eEN3OCtXYkFBUlZpd0NTOGJzUWtQUGxteUFBOExFUkk1c2dRQkNpdFlJZGdiOUZteUNnc1BFUkk1TURFQkV5RUJBVE1SSXhFakF3TWhBUUVoQWlmeUFSeitpUUVKeE0rUy8vcis1QUdCL29nQkdnTDZBWlA5dnY1My9lMEJVUUdaL21jQ1N3SkNBQUVBSlA2dkJpNEVqUUFQQUZ5eUNSQVJFUkk1QUxBQ0w3QUFSVml3Q0M4YnNRZ2RQbG13QUVWWXNBNHZHN0VPSFQ1WnNBQkZXTEFFTHh1eEJBOCtXYklBQVFvcldDSFlHL1Jac0FnUXNnWUJDaXRZSWRnYjlGbXdDdEN3QzlDd0FCQ3dETkN3RGRBd01TVXpBeU1SSVJFaE5TRVZJUkVoRVRNRmFzUVUzdnhFL3FRRG92NnNBZ2J5dy8zc0FWRUR5Y1RFL1BvRHlnQUFBUUJCQUFBRUZnU05BQmNBVDdJRUdCa1JFamtBc0FCRldMQU1MeHV4REIwK1diQUFSVml3Rmk4YnNSWWRQbG13QUVWWXNBRXZHN0VCRHo1WnNoQUJEQkVTT2JBUUw3SUhBUW9yV0NIWUcvUlpzQVRRc0JBUXNCUFFNREVoSXhFR0J4VWpOU1ltSnhFekVSUVdGelV6RlRZM0VUTUVGdk5NVnFQTXp3THpWRmFqU2xqekFhb1dDc3pJRGRHL0FXcituMnRwRFBQeUNSZ0NId0FBQVFCMkFBQUVTd1NOQUJFQVJySUVFaE1SRWprQXNBQkZXTEFCTHh1eEFSMCtXYkFBUlZpd0VDOGJzUkFQUGxtd0FFVllzQWt2RzdFSkR6NVpzZ1FRQVJFU09iQUVMN0lOQVFvcldDSFlHL1JaTURFVE14RTJNeklXRlJFakVUUW1JeUlIRVNOMjg0YUE3ZS96ZFhTQmhmTUVqZjVXSnRiUi9wNEJZWHhwSnYzZ0FBSUFDdi93QmFnRW93QWJBQ01BWkxJTkpDVVJFam13RFJDd0hkQUFzQUJGV0xBT0x4dXhEaDArV2JBQVJWaXdBQzhic1FBUFBsbXlJQTRBRVJJNXNDQXZzaElCQ2l0WUlkZ2I5Rm13QTlDd0lCQ3dDdEN3QUJDeUZRRUtLMWdoMkJ2MFdiQU9FTEljQVFvcldDSFlHL1JaTURFRklBQW5KaVkxTXhRV0Z6NENNeUFBRVJVaEVpRXlOemNYQmdZRElnWUhJVFUwSmdQSi92cit3QXl1djhGVVdBbVA4WkVCQUFFWC9NQVNBVStHY3k5Qk84V2hnS0FJQWt5VkVBRVI2Z3ZkdTExMkRKTGtmdjdsL3ZlVi90QXJFcm9oTEFQdXBZd1docFVBQUFJQVQvL3dCSUVFb3dBV0FCNEFYcklJSHlBUkVqbXdDQkN3RjlBQXNBQkZXTEFBTHh1eEFCMCtXYkFBUlZpd0NDOGJzUWdQUGxteURRQUlFUkk1c0EwdnNBQVFzaEFCQ2l0WUlkZ2I5Rm13Q0JDeUZ3RUtLMWdoMkJ2MFdiQU5FTElhQVFvcldDSFlHL1JaTURFQklBQVhGUlFHQmlNZ0FCRTFJU1ltSXlJSEJ5YzJOaE15TmpjaEZSUVdBamtCQ3dFN0FvejVsdjcrL3VzRFB3ZXpwb1oyTFVGQXlaaUJuZ3I5dEpRRW8vN2MrWHFiK1lnQkhBRUlsWmFhTEJHNklpdjhFcU9PRm9hVkFBQUJBRUwvN0FQb0JJMEFHUUJwc2hJYUd4RVNPUUN3QUVWWXNBSXZHN0VDSFQ1WnNBQkZXTEFMTHh1eEN3OCtXYkFDRUxJQUFRb3JXQ0hZRy9SWnNnUUNBQkVTT2JJWkN3SVJFam13R1Mrd0JkQ3lEd3NDRVJJNXNBc1FzaElCQ2l0WUlkZ2I5Rm13R1JDeUdBY0tLMWdoMkJ2MFdUQXhBU0UxSVJjQkZoWVZGQVFqSWlZMU14WVdNekkyTlRRakl6VUNqZjNlQTFJQi9zYWl3djhBMzlEMzh3UnhaWE56OFgwRHljU2Ivc0FVdjR1b3dMbWhTVkJhVTdDN0FBTUFULy93Qkc4RW5RQU9BQlVBSEFCK3NnTWRIaEVTT2JBREVMQVAwTEFERUxBVzBBQ3dBRVZZc0Fzdkc3RUxIVDVac0FCRldMQURMeHV4QXc4K1diQUxFTElQQVFvcldDSFlHL1Jac2hNTEF4RVNPWHl3RXk4WXRHQVRjQk1DWGJRd0UwQVRBbDJ5OEJNQlhiSUFFd0Z4c0FNUXNoWUJDaXRZSWRnYjlGbXdFeEN5R1FFS0sxZ2gyQnYwV1RBeEFSQUFJeUlBRVRVMEVqWXpNZ0FSQVNJR0J5RW1KZ015TmpjaEZoWUViLzdmN2V6KzJvWHdtL0FCSVAzd2VaUU9BallPazNoNWtRNzl6QStWQWl6KytQN01BVFVCREM2c0FRZUwvc2YrOVFGL25aV1ZuZnpiblpPVG5RQUFBUUE0QUFBRUdnU2RBQ2NBcnJJbEtDa1JFamtBc0FCRldMQWRMeHV4SFIwK1diQUFSVml3REM4YnNRd1BQbG15QmgwTUVSSTVzQVl2c2c4R0FWMndBZEN3QVMreXp3RUJYVUFKSHdFdkFUOEJUd0VFWGJJQUFRRmRzZ0lDQ2l0WUlkZ2I5Rm13QmhDeUJ3SUtLMWdoMkJ2MFdiQU1FTElLQVFvcldDSFlHL1Jac0E3UXNBL1FzQWNRc0JIUXNBWVFzQlBRc0FJUXNCYlFzQUVRc0JqUXNCMFFzaVFCQ2l0WUlkZ2I5Rm15SVNRQkVSSTVzZ3doQVYwd01RRWhGU0VYRlNFVklRWUhJUWNoTlRNMk55TTFNelVuSXpVekp5WTJNeklXRlNNMEppTWlCaGNCeEFHRC9vSURBWHYrY3hJbUFwZ0IvR1VLTkJLV29RT2VtUUVHMkwvRTEvTlVVMDFYQlFLNmtrSVdrMFUxdzhNT2JKTU9TcEluenU3UXRscG5mbmtBQUFFQVJ2L3dBN0FFbmdBaUFLQ3lDaU1rRVJJNUFMQUFSVml3Rmk4YnNSWWRQbG13QUVWWXNBa3ZHN0VKRHo1WnNpSVdDUkVTT2JBaUw3SVBJZ0ZkdEJBaUlDSUNYYklBQWdvcldDSFlHL1Jac0FrUXNnUUJDaXRZSWRnYjlGbXdBQkN3RE5Dd0loQ3dEdEN3SWhDd0U5Q3dFeSt5enhNQlhiWWZFeThUUHhNRFhiSUFFd0Zkc2hBQ0NpdFlJZGdiOUZtd0ZoQ3lHd0VLSzFnaDJCdjBXYkFURUxBZDBMQVFFTEFmMERBeEFTRVdGak15TnhjR0l5SWtKeU0xTXpVak5UTTJOak15RndjbUl5SUhJUlVoRlNFRFR2NkRFWHR2VUhrYmRtN1UvdjhhbDVLU21Cci8wMng2Rmx0MTFpSUJmUDU5QVlNQmhHcG9ITDhmME1TU1hKUEQxaUMvSE5hVFhBQUFCQUIyQUFBSHh3U2VBQU1BRHdBZEFDY0FxckllS0NrUkVqbXdIaEN3QWRDd0hoQ3dCTkN3SGhDd0VOQUFzQUJGV0xBbUx4dXhKaDArV2JBQVJWaXdKQzhic1NRZFBsbXdBRVZZc0FZdkc3RUdIVDVac0FCRldMQWhMeHV4SVE4K1diQUFSVml3SHk4YnNSOFBQbG13QmhDd0RkQ3dEUyt3QXRDd0FpKzJBQUlRQWlBQ0ExMnlBUUlLSzFnaDJCdjBXYkFORUxJVEFnb3JXQ0hZRy9SWnNBWVFzaG9DQ2l0WUlkZ2I5Rm15SUNRaEVSSTVzaVVmSmhFU09UQXhKU0UxSVFFME5pQVdGUlVVQmlBbU5SY1VGak15TmpjMU5DWWpJZ1lWQVNNQkVTTVJNd0VSTXdlSS9jVUNPLzJLdndFMndMNyt5c0d2V2xOUVdBSmRUMDVkL3FieS9mVHo4d0lNOHNpVkFmS1d1YmljU0phNHVKc0ZWMlZpVkZOWFpHTmIvTFFERy96bEJJMzg1QU1jQUFBQ0FDZ0FBQVNxQkkwQUZRQWVBSXl5RFI4Z0VSSTVzQTBRc0JmUUFMQUFSVml3REM4YnNRd2RQbG13QUVWWXNBTXZHN0VERHo1WnNnWUREQkVTT2JBR0w3SUZBUW9yV0NIWUcvUlpzQUhRc0FZUXNBclFzQW92dGc4S0h3b3ZDZ05kdG84S253cXZDZ05kdEI4S0x3b0NjYklKQVFvcldDSFlHL1Jac0JQUXNBWVFzQlRRc0FvUXNCYlFzQXdRc2g0QkNpdFlJZGdiOUZrd01TVWhGU00xSXpVek5TTTFNeEVoTWhZUUJnY2hGU0VCTXpJMk5UUW1JeU1DOXY3MTg5RFEwTkFCNjlIMjdjais5Z0VML3ZYNFlYTjFYdm1abVptMlRiY0NPdFArdE0wRlRRRUVaMVZXWlFBQ0FIei83QVJHQmdBQUR3QWFBR1N5RXhzY0VSSTVzQk1Rc0F6UUFMQUpMN0FBUlZpd0RDOGJzUXdiUGxtd0FFVllzQU12RzdFRER6NVpzQUJGV0xBR0x4dXhCZzgrV2JJRkRBTVJFam15Q2d3REVSSTVzQXdRc2hNQkNpdFlJZGdiOUZtd0F4Q3lHQUVLSzFnaDJCdjBXVEF4QVJRQ0l5SW5CeU1STXhFMk16SVNFU2MwSmlNaUJ4RVdNekkyQkVieng4QnRFZEx6YWJMTThQT0xlNXBFUjVsNmlnSVI5UDdQam5vR0FQM1NmUDdXL3ZvSXBydUYvamVIdkFBQUFRQlEvK3dFQUFST0FCMEFTN0lYSGg4UkVqa0FzQUJGV0xBUUx4dXhFQnMrV2JBQVJWaXdDQzhic1FnUFBsbXlBQUVLSzFnaDJCdjBXYklEQ0JBUkVqbXlGQkFJRVJJNXNCQVFzaGNCQ2l0WUlkZ2I5Rmt3TVNVeU5qY3pEZ0lqSWdBMU5UUTJOak15RmhjakppWWpJZ1lWRlJRV0FrSmFlZ2JrQkhyS2RPYis4bnJobU1QMEJ1UUhlRng1aFlXdWFVOW1zR1FCSy80Wm52dUg1TFJmZHJPeUc2MndBQUlBVC8vc0JCY0dBQUFSQUJ3QVpMSWFIUjRSRWptd0doQ3dCTkFBc0FjdnNBQkZXTEFFTHh1eEJCcytXYkFBUlZpd0RTOGJzUTBQUGxtd0FFVllzQWt2RzdFSkR6NVpzZ1lFRFJFU09iSUxCQTBSRWptd0RSQ3lGUUVLSzFnaDJCdjBXYkFFRUxJYUFRb3JXQ0hZRy9SWk1ERVRORFkyTXpJWEVUTVJJeWNHSXlJbUpqVTNGQll6TWpjUkppTWlCazl3ellLc2F2UFRFV3k3ZnN0MDg0MTdsRVpHa24yTkFpYWYvWXgzQWluNkFIV0pqUDJiQVozQ2dRSFhmY0VBLy84QVd3QUFBcklGdFFBR0FCV3pBQUFDQUV6LzdBUlZCRTRBRHdBWkFFT3lCQm9iRVJJNXNBUVFzQmZRQUxBQVJWaXdCQzhic1FRYlBsbXdBRVZZc0F3dkc3RU1EejVac2hJQkNpdFlJZGdiOUZtd0JCQ3lGd0VLSzFnaDJCdjBXVEF4RXpRMk5qTXlBQlVWRkFZR0l5SUFOUmNVRmpJMk5UUW1JZ1pNZ3V1VzVnRWdmKzJZNXY3aDhwWDhrNWY0bFFJbm4vMkwvczM4RFozOGpRRXgvZ21neE1TMW44WEdBQUlBZlA1Z0JFUUVUZ0FRQUJzQWJySVpIQjBSRWptd0dSQ3dEZEFBc0FCRldMQU5MeHV4RFJzK1diQUFSVml3Q2k4YnNRb2JQbG13QUVWWXNBY3ZHN0VIRVQ1WnNBQkZXTEFFTHh1eEJBOCtXYklHRFFRUkVqbXlDdzBFRVJJNXNBMFFzaFFCQ2l0WUlkZ2I5Rm13QkJDeUdRRUtLMWdoMkJ2MFdUQXhBUlFHQmlNaUp4RWpFVE1YTmpNeUVoY0hOQ1lqSWdjUkZqTXlOZ1JFYjhpQnNXenoyUTVzdXNIdkN2R1JmSkpFUlpONGt3SVJudjJLZFA0QUJkcHhoZjdyN0NlZnduaitGM2pEQUFBQ0FFLytZQVFXQkU0QUVBQWJBR3V5R1J3ZEVSSTVzQmtRc0FUUUFMQUFSVml3QkM4YnNRUWJQbG13QUVWWXNBY3ZHN0VIR3o1WnNBQkZXTEFKTHh1eENSRStXYkFBUlZpd0RTOGJzUTBQUGxteUJnUU5FUkk1c2dzRURSRVNPYklVQVFvcldDSFlHL1Jac0FRUXNoa0JDaXRZSWRnYjlGa3dNUk0wTmpZek1oYzNNeEVqRVFZaklnSW5OeFFXTXpJM0VTWWpJZ1pQYjgyR3Qyc1Iwdk5xcXI3MkMvS1RlSkJHU0l4K2p3SW1vdnlLZ203NkpnSDhjQUVjNGllZXhYWUI5SFBHQUFBQ0FGUC83QVFMQkU0QUZnQWVBSHl5Q0I4Z0VSSTVzQWdRc0JmUUFMQUFSVml3Q0M4YnNRZ2JQbG13QUVWWXNBQXZHN0VBRHo1WnNoc0lBQkVTT2JBYkw3Uy9HODhiQWwyMFh4dHZHd0p4dEI4Ykx4c0NjYktQR3dGZHRPOGIveHNDY2JJTUJ3b3JXQ0hZRy9SWnNBQVFzaEFCQ2l0WUlkZ2I5Rm13Q0JDeUZ3RUtLMWdoMkJ2MFdUQXhCU0lBTlRVME5qWXpNaElWRlNFV0ZqTXlOamNYQmdZRElnWUhJVFUwSmdKMjh2N1BmZUtMM2ZIOVBnK3BqVldTTVRvL3ZhZG1mQkFCMEhNVUFTajNJWjc1aS83MDkzdUZuUzhncGpJNUE1K05mQnB3ZndBQUFnQlIvbFlFQkFST0FCa0FKQUNEc2lJbEpoRVNPYkFpRUxBTDBBQ3dBRVZZc0FNdkc3RURHejVac0FCRldMQUdMeHV4QmhzK1diQUFSVml3Q3k4YnNRc1JQbG13QUVWWXNCY3ZHN0VYRHo1WnNnVURGeEVTT2JBTEVMSVJBUW9yV0NIWUcvUlpzZzhSRnhFU09iSVZBeGNSRWptd0Z4Q3lIUUVLSzFnaDJCdjBXYkFERUxJaUFRb3JXQ0hZRy9SWk1ERVROQkl6TWhjM014RVVBQ01pSmljM0ZqTXlOalUxQmlNaUFqY1VGak15TnhFbUl5SUdVZWZEdldzUjBQNzY3VmV2TnpWMWc0NkNhcTYrNnZLQmM1ZERSSlIyZ0FJbS9RRXJobkw4RVBMKy9pNGhzRCtXbENKMkFTLzJxTGVGQWRGL3RRQUFBUUJyLytzRkpnWEZBQjBBUUxJTUhoOFJFamtBc0FCRldMQU1MeHV4REI4K1diQUFSVml3QXk4YnNRTVBQbG13REJDeUV3RUtLMWdoMkJ2MFdiQURFTElhQVFvcldDSFlHL1JaTURFQkJnQWpJaVFDSnpVMEVpUXpNZ0FYSXlZbUl5SUNGUlVVRWpNeU5qY0ZKQmYrMHZtMi90eWdBWjRCSUxmN0FUUVgvUmFqa0t6TTBxeVJteFlCMnVuKytyUUJSZEk4MVFGS3RQN3o2WmlTL3Vidk5Pdis1SStXQUFFQWEvL3JCU1lGeFFBZ0FGV3lEQ0VpRVJJNUFMQUFSVml3REM4YnNRd2ZQbG13QUVWWXNBTXZHN0VERHo1WnNBd1FzaElCQ2l0WUlkZ2I5Rm13QXhDeUdRRUtLMWdoMkJ2MFdiSWdEQU1SRWptd0lDK3lIUUVLSzFnaDJCdjBXVEF4SlFZRUl5SWtBaWMxTkJJa016SUVGeU1DSVNJQ0J4VVVFak15TmpjUklUVWhCU1pHL3R5d3dQN09yUUtmQVNPMytBRXJIL2t1L3VtcTB3UG92R1NiSC83ZEFoKzhYM0t5QVVqUk1ka0JUN2J3NHdFSC91WHBNK3orM3pBa0FSdkFBQUFDQUpzQUFBVVhCYkFBQ3dBVkFFYXlBeFlYRVJJNXNBTVFzQS9RQUxBQVJWaXdBUzhic1FFZlBsbXdBRVZZc0FBdkc3RUFEejVac0FFUXNnd0JDaXRZSWRnYjlGbXdBQkN5RFFFS0sxZ2gyQnYwV1RBeE14RWhNZ1FTRnhVVUFnUUhBeEV6TWhJMU5UUUNJNXNCdnNnQlFiSURzUDdBek1TdTNQangyZ1d3c2Y3RHlEak0vcit5QXdUaysrWUJEdkFtNmdFTUFBQUNBR3YvNndWeUJjVUFFUUFnQUVheUJDRWlFUkk1c0FRUXNCM1FBTEFBUlZpd0RTOGJzUTBmUGxtd0FFVllzQVF2RzdFRUR6NVpzQTBRc2hVQkNpdFlJZGdiOUZtd0JCQ3lIUUVLSzFnaDJCdjBXVEF4QVJRQ0JDTWlKQUluTlRRU0pETXlCQklYQnpRQ0l5SUNGUlVVRmhZek1oSTNCWEttL3RpMHN2N1lxZ0dsQVNxMHNnRW1xQVQ3M0sycDMyYTJicVRZQ2dMRHp2Nnd1cm9CVHNreHl3Rk53TGYrdWNZUzVBRWkvdHZvSlpQeGhnRUoyZ0FBQWdCci93TUZjZ1hGQUJRQUl3QkdzZ2drSlJFU09iQUlFTEFnMEFDd0FFVllzQkF2RzdFUUh6NVpzQUJGV0xBSUx4dXhDQTgrV2JBUUVMSVlBUW9yV0NIWUcvUlpzQWdRc2lBQkNpdFlJZGdiOUZrd01RRVVBZ2NYQnlVR0l5SWtBaWMxTkJJa0lBUVNGd2MwQWlNaUFoVVZGQllXTXpJU05RVnlsNG52cGY3VlF6NnovdHFxQXFjQktBRm9BU2VvQWZ2Y3JhcmVaclZ2cnRrQ3hzcit2V0xBbFBVTnR3Rk55eTdRQVZLN3QvNnZ6Z1hzQVIvKzNlOGRsL0tFQVNEMUFBQUJBSmNBQUFMdkJJd0FCZ0F5QUxBQVJWaXdCUzhic1FVZFBsbXdBRVZZc0FBdkc3RUFEejVac2dRQUJSRVNPYkFFTDdJREFRb3JXQ0hZRy9SWk1ERWhJeEVGTlNVekF1L3ovcHNDT1I4RGFYck4wQUFCQUc0QUFBUXNCSjRBR1FCWnNna2FHeEVTT1FDd0FFVllzQkV2RzdFUkhUNVpzQUJGV0xBQUx4dXhBQTgrV2JJWUFRb3JXQ0hZRy9SWnNnSVlBQkVTT2JJREFCRVJFam13RVJDeUNRRUtLMWdoMkJ2MFdiSU1BQkVSRWpteUZ4RUFFUkk1TURFaElUVUJOalkxTkNZaklnWVZJelEyTmpNeUZoVVVCZ2NCSVFRcy9HQUIrMFk1YVZwbmUvTjUxNFhLNmxkdS9yRUNTWjhCdWo5alFFaGFlR0J6dkdxM25GcWZadjdXQUFBQkFIWUFBQU9YQmNRQUJ3QXlzZ01JQ1JFU09RQ3dBRVZZc0FZdkc3RUdIVDVac0FCRldMQUZMeHV4QlE4K1diQUdFTElDQVFvcldDSFlHL1JaTURFQk14RWhFU01SSVFLazgvM1M4d0l1QmNUK0JmdzNCSTBBQVFBUC9xTUQ4Z1NOQUJrQVdiSVNHaHNSRWprQXNBd3ZzQUJGV0xBQ0x4dXhBaDArV2JJQUFRb3JXQ0hZRy9SWnNnUUFBaEVTT2JJRkRBSVJFam13QlMrd0RCQ3lFUUVLSzFnaDJCdjBXYkFGRUxJWEF3b3JXQ0hZRy9SWnNoa1hCUkVTT1RBeEFTRTFJUlVCRmhZVkZBWUVJeUluTnhZek1qWTFOQ1lqSXpVQ252MjZBM2YrbmF2YmtQN3lzTWZPT1oydHBNU3F0MGdEeWNTUC9vQWE5N0NqODRSbnRsaTRrcGFTZXdBQUFnQTEvc1FFaXdTTUFBb0FEZ0JTQUxBQVJWaXdDUzhic1FrZFBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQUdMeHV4Qmc4K1diSUFBUW9yV0NIWUcvUlpzQVlRc0FYUXNBVXZzZ2dHQUJFU09iQUFFTEFNMExJTkNRSVJFamt3TVNVekZTTVJJeEVoSndFekFTRVJCd1BWdHJieS9WZ0dBcWI2L1dRQnFoZkN3LzdGQVR1VUEvbjhOZ0tBS2dELy93QkxBbzBDcWdXNEF3Y0IxQUFBQXBnQUV3Q3dBRVZZc0Fvdkc3RUtIejVac0JEUU1ERUEvLzhBTlFLWUFyNEZyUU1IQWRnQUFBS1lBQk1Bc0FCRldMQUpMeHV4Q1I4K1diQU4wREF4QVAvL0FFOENqUUt1QmEwREJ3SFpBQUFDbUFBUUFMQUFSVml3QVM4YnNRRWZQbGt3TWYvL0FFMENqUUs1QmJvREJ3SGFBQUFDbUFBVEFMQUFSVml3QUM4YnNRQWZQbG13Rk5Bd01RRC8vd0EyQXBnQ3JnV3RBd2NCMndBQUFwZ0FFQUN3QUVWWXNBVXZHN0VGSHo1Wk1ESC8vd0JMQW8wQ3FnVzRBd2NCM0FBQUFwZ0FHUUN3QUVWWXNCRXZHN0VSSHo1WnNCblFzQkVRc0IvUU1ERUEvLzhBUmdLUEFxTUZ1QU1IQWQwQUFBS1lBQk1Bc0FCRldMQUlMeHV4Q0I4K1diQWEwREF4QUFBQkFHYitvQVFlQkl3QUhBQmRzaGtkSGhFU09RQ3dEaSt3QUVWWXNBRXZHN0VCSFQ1WnNnTUJDaXRZSWRnYjlGbXlCd0VPRVJJNXNBY3ZzaGtCQ2l0WUlkZ2I5Rm15QlFjWkVSSTVzQTRRc2hNQkNpdFlJZGdiOUZteUVSTVpFUkk1c2h3WkV4RVNPVEF4RXhNaEZTRUROamMyRWhVVUJnWWpJaWMzRmpNeU5qVTBKaU1pQmdlSFdnTXAvWm90WlliUDdZWDFwZVMxU29TOWo2dU9lRk5tR3dGMUF4ZlMvcW95QWdMKzkrU1k4NEoxc21PemxJZWlOVHNBQUFFQVEvN0VCQkFFakFBR0FDVUFzQUV2c0FCRldMQUZMeHV4QlIwK1diSURBUW9yV0NIWUcvUlpzZ0FEQlJFU09UQXhBUUVqQVNFMUlRUVEvYmJ6QWo3OU1nUE5CQWI2dmdVRnd3QUNBRS8vOEFadEJKMEFGQUFlQUpHeUZoOGdFUkk1c0JZUXNBdlFBTEFBUlZpd0NpOGJzUW9kUGxtd0FFVllzQXN2RzdFTEhUNVpzQUJGV0xBQUx4dXhBQTgrV2JBQVJWaXdBaThic1FJUFBsbXdDeEN5RFFFS0sxZ2gyQnYwV2JJUUFBc1JFam13RUMreUVRRUtLMWdoMkJ2MFdiQUFFTElUQVFvcldDSFlHL1Jac0FJUXNoVUJDaXRZSWRnYjlGbXdDaEN5R0FFS0sxZ2gyQnYwV1RBeElTRUZJZ0FSTlRRU05qTUZJUlVoRVNFVklSRWhCVGNSSnlJR0ZSVVVGZ1p0L1VmK3Jleisyb1h3bXdGVEFyajl0d0gyL2dvQ1RQdjB6YytHbUprUUFUVUJEQzZzQVFlTEVNVCs4c1AreWc4SUF4UUp3TGMxc3NjQUFnQnovclFFVkFTZ0FCZ0FKQUJUc2g4bEpoRVNPYkFmRUxBTTBBQ3dGQyt3QUVWWXNBd3ZHN0VNSFQ1WnNCUVFzZ0FCQ2l0WUlkZ2I5Rm15R1JRTUVSSTVmTEFaTHhpeUJRRUtLMWdoMkJ2MFdiQU1FTElmQVFvcldDSFlHL1JaTURFRk1qWTNCaU1pQWpVME5qWXpNZ0FSRlJRQ0JDTWlKemNXRXpJM05UUW1JeUlHRlJRV0FlbVl2Umx5cXRIM2U5cUg4UUVVa2Y3enNwNkVMMzNSc0ZLSWYyMkhpb25JdmxvQkV1V1o3WUQrMGY3Mnp1WCtzckk4dGk4QjZYaXNwYlN4a29xd0FBQUNBR0wvNndTRkJLQUFEUUFhQUVheUF4c2NFUkk1c0FNUXNCZlFBTEFBUlZpd0NpOGJzUW9kUGxtd0FFVllzQU12RzdFRER6NVpzQW9Rc2hFQkNpdFlJZGdiOUZtd0F4Q3lGZ0VLSzFnaDJCdjBXVEF4QVJBQUl5SW1BalVRQURNeUZoSUhOQ1lnQmhVVkZCWXpNalkzQklYKzQvT2U4NElCSC9LZjhvSHltLzcybVpxR2haY0NBajcrNmY3RWpnRU14d0VXQVQ2Ty92T251TWZJdWl5MXpjVzAvLy8vdGY1TEFaTUVPZ0lHQUpzQUFQLy8vN1grU3dHVEJEb0NCZ0NiQUFELy93Q1BBQUFCZ2dRNkFBWUFqQUFBLy8vLysvNWNBWUlFT2dBbUFJd0FBQUFHQUtQU0N2Ly9BSThBQUFHQ0JEb0FCZ0NNQUFBQUFRQjIvK3NFRmdTY0FDRUFaYklCSWlNUkVqa0FzQUJGV0xBVkx4dXhGUjArV2JBQVJWaXdIeThic1I4UFBsbXdBRVZZc0JBdkc3RVFEejVac0I4UXNnSUJDaXRZSWRnYjlGbXlDaDhWRVJJNXNBb3ZzQm5Rc2dnRENpdFlJZGdiOUZtd0ZSQ3lEUUVLSzFnaDJCdjBXVEF4SlJZek1qWTFOQ1lqSXpVVEppTWlGUkVqRVRZMk16SVdGd01XRmhVVUJpTWlKd0hyUzBoTlhIeDBWTXBHVWJIdkFkSFBlTTFvK2FHcTJhOThiTnN4WlZKWVI2TUJBVG41L1J3QzhOZlZZVy8rMUJla2dhL0tOZ0QvL3dCSEFna0NWQUxOQWdZQUVRQUFBQUwvOXdBQUJQQUZzQUFQQUIwQWdySVFIaDhSRWptd0VCQ3dCdEFBc0FCRldMQUZMeHV4QlI4K1diQUFSVml3QUM4YnNRQVBQbG15QXdBRkVSSTVzQU12c3M4REFWMnlQd01CY2JKdkF3RnhzaDhEQVhHeW53TUJYYklQQXdGeXNnSUhDaXRZSWRnYjlGbXdFZEN3QUJDeUVnRUtLMWdoMkJ2MFdiQUZFTEliQVFvcldDSFlHL1Jac0FNUXNCM1FNREV6RVNNMU14RWhNZ1FTRlJVVUFnUWpFeU1STXpJMk5UVTBKaU1qRVRPeXU3c0Jyc0VCSzZTbC9zL0ZQK1dqeTlYT3hMSGxBb3lxQW5xcy9zVE1TYy8reHFvQ2pQNCsvZkJHN2ZyK1VnQUFBdi8zQUFBRThBV3dBQThBSFFDQ3NoQWVIeEVTT2JBUUVMQUcwQUN3QUVWWXNBVXZHN0VGSHo1WnNBQkZXTEFBTHh1eEFBOCtXYklEQUFVUkVqbXdBeSt5endNQlhiSS9Bd0Z4c204REFYR3lId01CY2JLZkF3RmRzZzhEQVhLeUFnY0tLMWdoMkJ2MFdiQVIwTEFBRUxJU0FRb3JXQ0hZRy9SWnNBVVFzaHNCQ2l0WUlkZ2I5Rm13QXhDd0hkQXdNVE1SSXpVekVTRXlCQklWRlJRQ0JDTVRJeEV6TWpZMU5UUW1JeU1STTdLN3V3R3V3UUVycEtYK3o4VS81YVBMMWM3RXNlVUNqS29DZXF6K3hNeEp6LzdHcWdLTS9qNzk4RWJ0K3Y1U0FBQUIvOVFBQUFRV0JnQUFHQUIwc2d3WkdoRVNPUUN3RlMrd0FFVllzQVF2RzdFRUd6NVpzQUJGV0xBSEx4dXhCdzgrV2JBQVJWaXdEeThic1E4UFBsbXlMeFVCWGJJUEZRRmRzaGdQRlJFU09iQVlMN0lBQndvcldDSFlHL1Jac2dJRUR4RVNPYkFFRUxJTUFRb3JXQ0hZRy9SWnNBQVFzQkhRc0JnUXNCUFFNREVCSXhFMk15QVRFU01STkNZaklnY1JJeEVqTlRNMU14VXpBbkhuZDdZQldnWHpZVjZTU1BQRHcvUG5CTWYrL1lyK2RmMDlBcnB3WFlMOCt3VEhxbytQQUFFQUxRQUFCTEFGc0FBUEFFd0FzQUJGV0xBS0x4dXhDaDgrV2JBQVJWaXdBaThic1FJUFBsbXlEd29DRVJJNXNBOHZzZ0FIQ2l0WUlkZ2I5Rm13Qk5Dd0R4Q3dCdEN3Q2hDeUNBRUtLMWdoMkJ2MFdiQU0wREF4QVNNUkl4RWpOVE1SSVRVaEZTRVJNd081ei92VDAvNCtCSVArT3M4REV2enVBeEtxQVNqTXpQN1lBQUgvNlAvc0FvVUZRUUFjQUhLeUFCMGVFUkk1QUxBQVJWaXdHeThic1JzYlBsbXdBRVZZc0JFdkc3RVJEejVac0JzUXNBSFFzQnNRc2hnQkNpdFlJZGdiOUZtd0JOQ3dHeEN3RjlDd0Z5K3dCZEN3QlMrd0Z4Q3lGQWNLSzFnaDJCdjBXYkFJMExBUkVMSU1BUW9yV0NIWUcvUlpzQnNRc0J6UXNCd3ZNREVCRVRNVkl4VXpGU01SRkJZek1qY1ZCaU1nRVJFak5UTTFJelV6RVFHdHY3L1kyREUvS2l0VFRmN28wdEt5c2dWQi92bTBwYXIrOHo0M0Nyd1hBVFVCRnFxbHRBRUgvLzhBRWdBQUJVSUhOZ0ltQUNVQUFBRUhBRVFCSXdFMkFCTUFzQUJGV0xBRUx4dXhCQjgrV2JBTTNEQXhBUC8vQUJJQUFBVkNCellDSmdBbEFBQUJCd0IxQWNJQk5nQVRBTEFBUlZpd0JTOGJzUVVmUGxtd0Rkd3dNUUQvL3dBU0FBQUZRZ2MzQWlZQUpRQUFBUWNBblFEREFUWUFFd0N3QUVWWXNBUXZHN0VFSHo1WnNBL2NNREVBLy84QUVnQUFCVUlITEFJbUFDVUFBQUVIQUtRQXhRRTNBQWtBc0FRdnNCYmNNREVBLy84QUVnQUFCVUlIQWdJbUFDVUFBQUVIQUdvQTdnRTJBQllBc0FCRldMQUVMeHV4QkI4K1diQVMzTEFiMERBeC8vOEFFZ0FBQlVJSGxBSW1BQ1VBQUFFSEFLSUJXQUZxQUF3QXNBUXZzQkRjc0JYUU1ESC8vd0FTQUFBRlFnZXhBaVlBSlFBQUFBY0Izd0ZlQVJ6Ly93Qm0vandFNndYRUFpWUFKd0FBQUFjQWVRSEovL3YvL3dDVUFBQUVUQWM5QWlZQUtRQUFBUWNBUkFEb0FUMEFFd0N3QUVWWXNBWXZHN0VHSHo1WnNBM2NNREVBLy84QWxBQUFCRXdIUFFJbUFDa0FBQUVIQUhVQmh3RTlBQk1Bc0FCRldMQUdMeHV4Qmg4K1diQU8zREF4QVAvL0FKUUFBQVJNQno0Q0pnQXBBQUFCQndDZEFJZ0JQUUFUQUxBQVJWaXdCaThic1FZZlBsbXdFTnd3TVFELy93Q1VBQUFFVEFjSkFpWUFLUUFBQVFjQWFnQ3pBVDBBRmdDd0FFVllzQVl2RzdFR0h6NVpzQlBjc0J6UU1ESC8vLy9JQUFBQm9BYzlBaVlBTFFBQUFRY0FSUCtYQVQwQUV3Q3dBRVZZc0FJdkc3RUNIejVac0FYY01ERUEvLzhBb3dBQUFuMEhQUUltQUMwQUFBRUhBSFVBTlFFOUFCTUFzQUJGV0xBREx4dXhBeDgrV2JBRzNEQXhBUC8vLzhzQUFBSjZCejRDSmdBdEFBQUJCd0NkL3pjQlBRQVRBTEFBUlZpd0FpOGJzUUlmUGxtd0NOd3dNUUQvLy8rL0FBQUNoUWNKQWlZQUxRQUFBUWNBYXY5aUFUMEFGZ0N3QUVWWXNBSXZHN0VDSHo1WnNBdmNzQlRRTURILy93Q1VBQUFGRndjc0FpWUFNZ0FBQVFjQXBBRHVBVGNBQ1FDd0JTK3dGZHd3TVFELy93Qm0vK3dGSGdjMkFpWUFNd0FBQVFjQVJBRTZBVFlBRXdDd0FFVllzQXd2RzdFTUh6NVpzQ0RjTURFQS8vOEFadi9zQlI0SE5nSW1BRE1BQUFFSEFIVUIyUUUyQUJNQXNBQkZXTEFOTHh1eERSOCtXYkFoM0RBeEFQLy9BR2IvN0FVZUJ6Y0NKZ0F6QUFBQkJ3Q2RBTm9CTmdBVEFMQUFSVml3REM4YnNRd2ZQbG13STl3d01RRC8vd0JtLyt3RkhnY3NBaVlBTXdBQUFRY0FwQURjQVRjQUV3Q3dBRVZZc0Ewdkc3RU5IejVac0NMY01ERUEvLzhBWnYvc0JSNEhBZ0ltQURNQUFBRUhBR29CQlFFMkFCWUFzQUJGV0xBTUx4dXhEQjgrV2JBbTNMQXYwREF4Ly84QWZmL3NCTDBITmdJbUFEa0FBQUVIQUVRQkVRRTJBQk1Bc0FCRldMQUpMeHV4Q1I4K1diQVMzREF4QVAvL0FIMy83QVM5QnpZQ0pnQTVBQUFCQndCMUFiQUJOZ0FKQUxBQUw3QVQzREF4QVAvL0FIMy83QVM5QnpjQ0pnQTVBQUFCQndDZEFMRUJOZ0FUQUxBQVJWaXdDUzhic1FrZlBsbXdGZHd3TVFELy93QjkvK3dFdlFjQ0FpWUFPUUFBQVFjQWFnRGNBVFlBRmdDd0FFVllzQWt2RzdFSkh6NVpzQmpjc0NIUU1ESC8vd0FIQUFBRTFnYzJBaVlBUFFBQUFRY0FkUUdIQVRZQUV3Q3dBRVZZc0FFdkc3RUJIejVac0F2Y01ERUEvLzhBV3Yvc0Evc0dBQUltQUVVQUFBRUhBRVFBclFBQUFCTUFzQUJGV0xBWEx4dXhGeHMrV2JBcjNEQXhBUC8vQUZyLzdBUDdCZ0FDSmdCRkFBQUJCd0IxQVV3QUFBQUpBTEFYTDdBczNEQXhBUC8vQUZyLzdBUDdCZ0VDSmdCRkFBQUJCZ0NkVFFBQUV3Q3dBRVZZc0Jjdkc3RVhHejVac0M3Y01ERUEvLzhBV3Yvc0Evc0Y5Z0ltQUVVQUFBRUdBS1JQQVFBVEFMQUFSVml3Rnk4YnNSY2JQbG13TGR3d01RRC8vd0JhLyt3RCt3WE1BaVlBUlFBQUFRWUFhbmdBQUJZQXNBQkZXTEFYTHh1eEZ4cytXYkF4M0xBNjBEQXgvLzhBV3Yvc0Evc0dYZ0ltQUVVQUFBRUhBS0lBNGdBMEFCWUFzQUJGV0xBWEx4dXhGeHMrV2JBdjNMQTMwREF4Ly84QVd2L3NBL3NHZkFJbUFFVUFBQUFIQWQ4QTZQL24vLzhBVC80OEEvVUVUZ0ltQUVjQUFBQUhBSGtCUGYvNy8vOEFVLy9zQkFzR0FBSW1BRWtBQUFFSEFFUUFvUUFBQUJNQXNBQkZXTEFJTHh1eENCcytXYkFmM0RBeEFQLy9BRlAvN0FRTEJnQUNKZ0JKQUFBQkJ3QjFBVUFBQUFBSkFMQUlMN0FnM0RBeEFQLy9BRlAvN0FRTEJnRUNKZ0JKQUFBQkJnQ2RRUUFBRXdDd0FFVllzQWd2RzdFSUd6NVpzQ0xjTURFQS8vOEFVLy9zQkFzRnpBSW1BRWtBQUFFR0FHcHNBQUFXQUxBQVJWaXdDQzhic1FnYlBsbXdKZHl3THRBd01mLy8vN1FBQUFHTUJma0NKZ0NNQUFBQkJnQkVnL2tBRXdDd0FFVllzQUl2RzdFQ0d6NVpzQVhjTURFQS8vOEFqd0FBQW1rRitRSW1BSXdBQUFFR0FIVWgrUUFUQUxBQVJWaXdBeThic1FNYlBsbXdCdHd3TVFELy8vKzNBQUFDWmdYNkFpWUFqQUFBQVFjQW5mOGovL2tBRXdDd0FFVllzQUl2RzdFQ0d6NVpzQWpjTURFQS8vLy9xd0FBQW5FRnhRSW1BSXdBQUFFSEFHci9Udi81QUJZQXNBQkZXTEFDTHh1eEFocytXYkFMM0xBVTBEQXgvLzhBZVFBQUEvZ0Y5Z0ltQUZJQUFBRUdBS1JWQVFBSkFMQURMN0FjM0RBeEFQLy9BRS8vN0FROUJnQUNKZ0JUQUFBQkJ3QkVBTFlBQUFBVEFMQUFSVml3QkM4YnNRUWJQbG13SE53d01RRC8vd0JQLyt3RVBRWUFBaVlBVXdBQUFRY0FkUUZWQUFBQUNRQ3dCQyt3SGR3d01RRC8vd0JQLyt3RVBRWUJBaVlBVXdBQUFRWUFuVllBQUJNQXNBQkZXTEFFTHh1eEJCcytXYkFmM0RBeEFQLy9BRS8vN0FROUJmWUNKZ0JUQUFBQkJnQ2tXQUVBQ1FDd0JDK3dKdHd3TVFELy93QlAvK3dFUFFYTUFpWUFVd0FBQVFjQWFnQ0JBQUFBRmdDd0FFVllzQVF2RzdFRUd6NVpzQ0xjc0N2UU1ESC8vd0IzLyt3RDl3WUFBaVlBV1FBQUFRY0FSQUN2QUFBQUV3Q3dBRVZZc0Fjdkc3RUhHejVac0JMY01ERUEvLzhBZC8vc0EvY0dBQUltQUZrQUFBRUhBSFVCVGdBQUFBa0FzQVl2c0JQY01ERUEvLzhBZC8vc0EvY0dBUUltQUZrQUFBRUdBSjFQQUFBVEFMQUFSVml3Qnk4YnNRY2JQbG13RmR3d01RRC8vd0IzLyt3RDl3WE1BaVlBV1FBQUFRWUFhbm9BQUJZQXNBQkZXTEFITHh1eEJ4cytXYkFZM0xBaDBEQXgvLzhBRFA1TEE5WUdBQUltQUYwQUFBRUhBSFVCRmdBQUFBa0FzQUV2c0JMY01ERUEvLzhBRFA1TEE5WUZ6QUltQUYwQUFBRUdBR3BDQUFBV0FMQUFSVml3RHk4YnNROGJQbG13Rjl5d0lOQXdNZi8vQUJJQUFBVkNCdW9DSmdBbEFBQUJCd0J3QUw0Qk9nQVRBTEFBUlZpd0JDOGJzUVFmUGxtd0ROd3dNUUQvL3dCYS8rd0Qrd1cwQWlZQVJRQUFBUVlBY0VnRUFBa0FzQmN2c0NyY01ERUEvLzhBRWdBQUJVSUhIQUltQUNVQUFBRUhBS0FBOWdFMkFCTUFzQUJGV0xBRUx4dXhCQjgrV2JBTzNEQXhBUC8vQUZyLzdBUDdCZVlDSmdCRkFBQUJCd0NnQUlBQUFBQVRBTEFBUlZpd0Z5OGJzUmNiUGxtd0xkd3dNUUFBQWdBUy9sSUZRZ1d3QUJZQUdRQjBzaGthR3hFU09iQVpFTEFXMEFDd0FFVllzQll2RzdFV0h6NVpzQUJGV0xBVUx4dXhGQTgrV2JBQVJWaXdBUzhic1FFUFBsbXdBRVZZc0F3dkc3RU1FVDVac2djRENpdFlJZGdiOUZtd0FSQ3dFZEN3RVMreUZ4UVdFUkk1c0JjdnNoTUJDaXRZSWRnYjlGbXlHUllVRVJJNU1ERUJBU01HQmhVVU16STNGd1lqSWlZMU5EY0RJUU1oQVFNaEF3TWJBaWMrVjBwSExDNFZTVnhmZEpWei9jeDIvdmtDSm1JQnB0TUZzUHBRT0Y0eFJCZU9MRzVialdJQlNmNnRCYkQ4YndKY0FBQUNBRnIrVWdQN0JFNEFMUUE0QUtheUZ6azZFUkk1c0JjUXNDL1FBTEFBUlZpd0Z5OGJzUmNiUGxtd0FFVllzQ2t2RzdFcEVUNVpzQUJGV0xBRUx4dXhCQTgrV2JBQVJWaXdIaThic1I0UFBsbXdBTkN3QUMreUFoY0VFUkk1c2dzWEJCRVNPYkFMTDdBWEVMSVBBUW9yV0NIWUcvUlpzaElMRHhFU09VQUpEQkljRWl3U1BCSUVYYkFwRUxJa0F3b3JXQ0hZRy9SWnNBUVFzaTRCQ2l0WUlkZ2I5Rm13Q3hDeU1nRUtLMWdoMkJ2MFdUQXhKU1luQmlNaUpqVTBKRE16TlRRbUl5SUdGU00wTmpZek1oWVhFUlFYRlNNR0JoVVVNekkzRndZaklpWTFOQU15TmpjMUl5SUdGUlFXQXY4TERYU29vODRCQWUrVlhtQlRhdk4yeTMyKzRnTXBLbGRLUnl3dUZVbGNYM1IyU0g4Z2c0ZUlYUWNaUlhtNmlhMjVSMVJsVTBCWm0xaS9yZjRZa2xjUk9GNHhSQmVPTEc1YmpBRUlSanZNWGxaR1UvLy9BR2IvN0FUckIwc0NKZ0FuQUFBQkJ3QjFBY0FCU3dBSkFMQU1MN0FnM0RBeEFQLy9BRS8vN0FQMUJnQUNKZ0JIQUFBQkJ3QjFBU2tBQUFBSkFMQVBMN0FmM0RBeEFQLy9BR2IvN0FUckIwd0NKZ0FuQUFBQkJ3Q2RBTUVCU3dBVEFMQUFSVml3REM4YnNRd2ZQbG13SU53d01RRC8vd0JQLyt3RDlRWUJBaVlBUndBQUFRWUFuU29BQUJNQXNBQkZXTEFQTHh1eER4cytXYkFmM0RBeEFQLy9BR2IvN0FUckJ5a0NKZ0FuQUFBQkJ3Q2hBYWNCVkFBVEFMQUFSVml3REM4YnNRd2ZQbG13SnR3d01RRC8vd0JQLyt3RDlRWGVBaVlBUndBQUFRY0FvUUVRQUFrQUV3Q3dBRVZZc0E4dkc3RVBHejVac0NYY01ERUEvLzhBWnYvc0JPc0hUQUltQUNjQUFBRUhBSjRBMkFGTEFBa0FzQXd2c0NMY01ERUEvLzhBVC8vc0EvVUdBUUltQUVjQUFBRUdBSjVCQUFBSkFMQVBMN0FoM0RBeEFQLy9BSlFBQUFUU0J6NENKZ0FvQUFBQkJ3Q2VBR2NCUFFBSkFMQUJMN0FhM0RBeEFQLy9BRS8vN0FWYkJnSUFKZ0JJQUFBQkJ3R2lCQUVFL0FBR0FMQWVMekF4Ly84QWxBQUFCRXdHOFFJbUFDa0FBQUVIQUhBQWd3RkJBQk1Bc0FCRldMQUdMeHV4Qmg4K1diQU4zREF4QVAvL0FGUC83QVFMQmJRQ0pnQkpBQUFCQmdCd1BBUUFDUUN3Q0Mrd0h0d3dNUUQvL3dDVUFBQUVUQWNqQWlZQUtRQUFBUWNBb0FDN0FUMEFFd0N3QUVWWXNBWXZHN0VHSHo1WnNBL2NNREVBLy84QVUvL3NCQXNGNWdJbUFFa0FBQUVHQUtCMEFBQVRBTEFBUlZpd0NDOGJzUWdiUGxtd0lkd3dNUUQvL3dDVUFBQUVUQWNiQWlZQUtRQUFBUWNBb1FGdUFVWUFFd0N3QUVWWXNBWXZHN0VHSHo1WnNCVGNNREVBLy84QVUvL3NCQXNGM2dJbUFFa0FBQUVIQUtFQkp3QUpBQk1Bc0FCRldMQUlMeHV4Q0JzK1diQW0zREF4QUFBQkFKVCtVZ1JNQmJBQUd3Q0FzaEVjSFJFU09RQ3dBRVZZc0JZdkc3RVdIejVac0FCRldMQVBMeHV4RHhFK1diQUFSVml3QkM4YnNRUVBQbG13QUVWWXNCUXZHN0VVRHo1WnNob1VGaEVTT2JBYUw3SUJBUW9yV0NIWUcvUlpzQlFRc2dJQkNpdFlJZGdiOUZtd0E5Q3dEeEN5Q2dNS0sxZ2gyQnYwV2JBV0VMSVlBUW9yV0NIWUcvUlpNREVCSVJFaEZTTUdCaFVVTXpJM0Z3WWpJaVkxTkRjaEVTRVZJUkVoQStmOXFnSzdiMWRLUnl3dUZVbGNYM1NIL1pNRHNmMU1BbFlDaXY1QXlqaGVNVVFYaml4dVc0WmZCYkRNL200QUFBSUFVLzV0QkFzRVRnQWpBQ3NBcGJJUkxDMFJFam13RVJDd0pOQUFzQUJGV0xBWkx4dXhHUnMrV2JBQVJWaXdEQzhic1F3UlBsbXdBRVZZc0JFdkc3RVJEejVac2dJUkdSRVNPYkFNRUxJSEF3b3JXQ0hZRy9SWnNpZ1pFUkVTT2JBb0w3UWZLQzhvQW5HMHZ5alBLQUpkc284b0FWMjBYeWh2S0FKeHRPOG8veWdDY2JJZEJ3b3JXQ0hZRy9SWnNCRVFzaUVCQ2l0WUlkZ2I5Rm15SXhrUkVSSTVzQmtRc2lRQkNpdFlJZGdiOUZrd01TVUdCd1lHRlJRek1qY1hCaU1pSmpVME55WUFKelUwTmpZek1oSVJGU0VXRmpNeU53RWlCZ2NoTlNZbUEvcEpjVmRLUnl3dUZVbGNYM1JRei83N0JuM2lpOTN4L1QwTG5YZW5hZjdGWkhzUkFjOEljcmhxTXpoZU1VUVhqaXh1VzJaU0RRRVQxenFpLzQ3KzV2NytZb2FjaHdKV2pIMFNlbjMvL3dDVUFBQUVUQWMrQWlZQUtRQUFBUWNBbmdDZkFUMEFFd0N3QUVWWXNBWXZHN0VHSHo1WnNCSGNNREVBLy84QVUvL3NCQXNHQVFJbUFFa0FBQUVHQUo1WUFBQUpBTEFJTDdBaTNEQXhBUC8vQUdyLzdBVHdCMHdDSmdBckFBQUJCd0NkQUw0QlN3QVRBTEFBUlZpd0N5OGJzUXNmUGxtd0lkd3dNUUQvL3dCUy9sWUVEQVlCQWlZQVN3QUFBUVlBblVBQUFCTUFzQUJGV0xBREx4dXhBeHMrV2JBbjNEQXhBUC8vQUdyLzdBVHdCekVDSmdBckFBQUJCd0NnQVBFQlN3QVRBTEFBUlZpd0N5OGJzUXNmUGxtd0l0d3dNUUQvL3dCUy9sWUVEQVhtQWlZQVN3QUFBUVlBb0hNQUFCTUFzQUJGV0xBREx4dXhBeHMrV2JBbzNEQXhBUC8vQUdyLzdBVHdCeWtDSmdBckFBQUJCd0NoQWFRQlZBQVRBTEFBUlZpd0N5OGJzUXNmUGxtd0o5d3dNUUQvL3dCUy9sWUVEQVhlQWlZQVN3QUFBUWNBb1FFbUFBa0FFd0N3QUVWWXNBTXZHN0VER3o1WnNDM2NNREVBLy84QWF2MzVCUEFGeEFJbUFDc0FBQUFIQWFJQnUvNlMvLzhBVXY1V0JBd0dxUUltQUVzQUFBRUhBYmtCSndCK0FBa0FzQU12c0NuY01ERUEvLzhBbEFBQUJSZ0hQZ0ltQUN3QUFBRUhBSjBBNGdFOUFCTUFzQUJGV0xBSEx4dXhCeDgrV2JBUTNEQXhBUC8vQUhrQUFBUDRCMTRDSmdCTUFBQUJCd0NkQUJjQlhRQUpBTEFRTDdBVDNEQXhBUC8vLzdNQUFBS1FCek1DSmdBdEFBQUJCd0NrL3prQlBnQVRBTEFBUlZpd0F5OGJzUU1mUGxtd0I5d3dNUUQvLy8rZkFBQUNmQVh2QWlZQWpBQUFBUWNBcFA4bC8vb0FDUUN3QWkrd0Q5d3dNUUQvLy8rNUFBQUNrQWJ4QWlZQUxRQUFBUWNBY1A4eUFVRUFFd0N3QUVWWXNBSXZHN0VDSHo1WnNBWGNNREVBLy8vL3BRQUFBbndGclFJbUFJd0FBQUVIQUhEL0h2LzlBQk1Bc0FCRldMQUNMeHV4QWhzK1diQUYzREF4QVAvLy85OEFBQUpsQnlNQ0pnQXRBQUFCQndDZy8yb0JQUUFUQUxBQVJWaXdBaThic1FJZlBsbXdCOXd3TVFELy8vL0xBQUFDVVFYZkFpWUFqQUFBQVFjQW9QOVcvL2tBRXdDd0FFVllzQUl2RzdFQ0d6NVpzQWZjTURFQS8vOEFGLzVZQVo4RnNBSW1BQzBBQUFBR0FLUHVCdi8vQUFEK1VnR1FCZFVDSmdCTkFBQUFCZ0NqMXdELy93Q2RBQUFCb3djYkFpWUFMUUFBQVFjQW9RQWNBVVlBRXdDd0FFVllzQUl2RzdFQ0h6NVpzQXpjTURFQS8vOEFvLy9zQmlZRnNBQW1BQzBBQUFBSEFDNENRZ0FBLy84QWZmNUxBNUFGMVFBbUFFMEFBQUFIQUU0Q0N3QUEvLzhBTGYvc0JLc0hOd0ltQUM0QUFBRUhBSjBCYUFFMkFCTUFzQUJGV0xBQUx4dXhBQjgrV2JBVTNEQXhBUC8vLzdYK1N3SnJCZDhDSmdDYkFBQUJCd0NkL3lqLzNnQVRBTEFBUlZpd0RDOGJzUXdiUGxtd0Vkd3dNUUQvL3dDVS9ma0ZHQVd3QWlZQUx3QUFBQWNCb2dHZC9wTC8vd0I5L2ZrRU5nWUFBaVlBVHdBQUFBY0JvZ0V0L3BMLy93Q1VBQUFFSmdjMkFpWUFNQUFBQVFjQWRRQXBBVFlBRXdDd0FFVllzQVV2RzdFRkh6NVpzQWpjTURFQS8vOEFpZ0FBQW1JSGtRSW1BRkFBQUFFSEFIVUFHZ0dSQUJNQXNBQkZXTEFETHh1eEF5RStXYkFHM0RBeEFQLy9BSlQ5K1FRbUJiQUNKZ0F3QUFBQUJ3R2lBVzMra3YvL0FGWDkrUUYvQmdBQ0pnQlFBQUFBQndHaUFCRCtrdi8vQUpRQUFBUW1CYkVDSmdBd0FBQUJCd0dpQWdvRXF3QVFBTEFBUlZpd0NpOGJzUW9mUGxrd01mLy9BSXdBQUFMbkJnSUFKZ0JRQUFBQkJ3R2lBWTBFL0FBUUFMQUFSVml3Q0M4YnNRZ2hQbGt3TWYvL0FKUUFBQVFtQmJBQ0pnQXdBQUFBQndDaEFjcjkxUC8vQUl3QUFBTHJCZ0FBSmdCUUFBQUFCd0NoQVdUOXIvLy9BSlFBQUFVWEJ6WUNKZ0F5QUFBQkJ3QjFBZXNCTmdBVEFMQUFSVml3Q0M4YnNRZ2ZQbG13RE53d01RRC8vd0I1QUFBRCtBWUFBaVlBVWdBQUFRY0FkUUZTQUFBQUNRQ3dBeSt3RTl3d01RRC8vd0NVL2ZrRkZ3V3dBaVlBTWdBQUFBY0JvZ0hjL3BMLy93QjUvZmtEK0FST0FpWUFVZ0FBQUFjQm9nRkIvcEwvL3dDVUFBQUZGd2MzQWlZQU1nQUFBUWNBbmdFREFUWUFFd0N3QUVWWXNBWXZHN0VHSHo1WnNBL2NNREVBLy84QWVRQUFBL2dHQVFJbUFGSUFBQUVHQUo1cUFBQUpBTEFETDdBVjNEQXhBUC8vLzZVQUFBUDRCZ01DSmdCU0FBQUJCd0dpLzJBRS9RQVFBTEFBUlZpd0ZTOGJzUlVoUGxrd01mLy9BR2IvN0FVZUJ1b0NKZ0F6QUFBQkJ3QndBTlVCT2dBVEFMQUFSVml3REM4YnNRd2ZQbG13SU53d01RRC8vd0JQLyt3RVBRVzBBaVlBVXdBQUFRWUFjRkVFQUFrQXNBUXZzQnZjTURFQS8vOEFadi9zQlI0SEhBSW1BRE1BQUFFSEFLQUJEUUUyQUJNQXNBQkZXTEFNTHh1eERCOCtXYkFpM0RBeEFQLy9BRS8vN0FROUJlWUNKZ0JUQUFBQkJ3Q2dBSWtBQUFBVEFMQUFSVml3QkM4YnNRUWJQbG13SHR3d01RRC8vd0JtLyt3RkhnYzFBaVlBTXdBQUFRY0FwUUZqQVRZQUZnQ3dBRVZZc0Ewdkc3RU5IejVac0NIY3NDWFFNREgvL3dCUC8rd0VQUVgvQWlZQVV3QUFBUWNBcFFEZkFBQUFGZ0N3QUVWWXNBUXZHN0VFR3o1WnNCM2NzQ0hRTURILy93Q1VBQUFFM2djMkFpWUFOZ0FBQVFjQWRRRnhBVFlBQ1FDd0JDK3dHdHd3TVFELy93QjhBQUFDOVFZQUFpWUFWZ0FBQVFjQWRRQ3RBQUFBQ1FDd0N5K3dFTnd3TVFELy93Q1UvZmtFM2dXd0FpWUFOZ0FBQUFjQm9nRnUvcEwvL3dCUC9ma0N0QVJPQWlZQVZnQUFBQWNCb2dBSy9wTC8vd0NVQUFBRTNnYzNBaVlBTmdBQUFRY0FuZ0NKQVRZQUNRQ3dCQyt3SE53d01RRC8vd0E0QUFBQytnWUJBaVlBVmdBQUFRWUFuc1lBQUFrQXNBc3ZzQkxjTURFQS8vOEFTdi9zQklvSE5nSW1BRGNBQUFFSEFIVUJqZ0UyQUFrQXNBa3ZzQ3JjTURFQS8vOEFTLy9zQThvR0FBSW1BRmNBQUFFSEFIVUJPZ0FBQUFrQXNBa3ZzQ25jTURFQS8vOEFTdi9zQklvSE53SW1BRGNBQUFFSEFKMEFqd0UyQUJNQXNBQkZXTEFKTHh1eENSOCtXYkFxM0RBeEFQLy9BRXYvN0FQS0JnRUNKZ0JYQUFBQkJnQ2RPd0FBRXdDd0FFVllzQWt2RzdFSkd6NVpzQ25jTURFQS8vOEFTdjVCQklvRnhBSW1BRGNBQUFBSEFIa0JuUUFBLy84QVMvNDRBOG9FVGdJbUFGY0FBQUFIQUhrQlJQLzMvLzhBU3YzNUJJb0Z4QUltQURjQUFBQUhBYUlCaWY2Uy8vOEFTLzM1QThvRVRnSW1BRmNBQUFBSEFhSUJNUDZTLy84QVN2L3NCSW9ITndJbUFEY0FBQUVIQUo0QXBnRTJBQWtBc0FrdnNDemNNREVBLy84QVMvL3NBOG9HQVFJbUFGY0FBQUVHQUo1U0FBQUpBTEFKTDdBcjNEQXhBUC8vQUMzOStRU3dCYkFDSmdBNEFBQUFCd0dpQVhmK2t2Ly9BQWo5K1FKeUJVRUNKZ0JZQUFBQUJ3R2lBTWora3YvL0FDMytSQVN3QmJBQ0pnQTRBQUFBQndCNUFZc0FBLy8vQUFqK1FRS2xCVUVDSmdCWUFBQUFCd0I1QU53QUFQLy9BQzBBQUFTd0J6Y0NKZ0E0QUFBQkJ3Q2VBSmdCTmdBVEFMQUFSVml3Qmk4YnNRWWZQbG13RGR3d01RRC8vd0FJLyt3REp3YURBQ1lBV0FBQUFBY0JvZ0hOQlgzLy93QjkvK3dFdlFjc0FpWUFPUUFBQVFjQXBBQ3pBVGNBRXdDd0FFVllzQkF2RzdFUUh6NVpzQlRjTURFQS8vOEFkLy9zQS9jRjlnSW1BRmtBQUFFR0FLUlJBUUFUQUxBQVJWaXdEUzhic1EwYlBsbXdGTnd3TVFELy93QjkvK3dFdlFicUFpWUFPUUFBQVFjQWNBQ3NBVG9BQ1FDd0FDK3dFZHd3TVFELy93QjMvK3dEOXdXMEFpWUFXUUFBQVFZQWNFb0VBQk1Bc0FCRldMQUdMeHV4QmhzK1diQVMzREF4QVAvL0FIMy83QVM5Qnh3Q0pnQTVBQUFCQndDZ0FPUUJOZ0FUQUxBQVJWaXdDUzhic1FrZlBsbXdGTnd3TVFELy93QjMvK3dEOXdYbUFpWUFXUUFBQVFjQW9BQ0NBQUFBRXdDd0FFVllzQWN2RzdFSEd6NVpzQlRjTURFQS8vOEFmZi9zQkwwSGxBSW1BRGtBQUFFSEFLSUJSZ0ZxQUF3QXNBQXZzQmJjc0J2UU1ESC8vd0IzLyt3RDl3WmVBaVlBV1FBQUFRY0FvZ0RrQURRQURBQ3dCaSt3RnR5d0c5QXdNZi8vQUgzLzdBUzlCelVDSmdBNUFBQUJCd0NsQVRvQk5nQVdBTEFBUlZpd0VDOGJzUkFmUGxtd0U5eXdGOUF3TWYvL0FIZi83QVF1QmY4Q0pnQlpBQUFCQndDbEFOZ0FBQUFNQUxBR0w3QVQzTEFWMERBeEFBRUFmZjZKQkwwRnNBQWZBRmV5SENBaEVSSTVBTEFBUlZpd0dDOGJzUmdmUGxtd0FFVllzQk12RzdFVER6NVpzQUJGV0xBT0x4dXhEaGMrV2JJRUV4Z1JFam15Q1FNS0sxZ2gyQnYwV2JBVEVMSWNBUW9yV0NIWUcvUlpzQmdRc0IvUU1ERUJFUlFHQndZR0ZSUXpNamNYQmlNaUpqVTBOeUFBTlJFekVSUVdNeUFSRVFTOWhYNDlUMGNzTGhWSlhGOTBOdjhBL3R2OGxKQUJKQVd3L0RLWTVEMHBXVGRFRjQ0c2JsdFZSUUVNNndQTi9ES1NtZ0UwQThZQUFRQjMvbElEOXdRNkFCOEFacklhSUNFUkVqa0FzQUJGV0xBWEx4dXhGeHMrV2JBQVJWaXdFaThic1JJUFBsbXdBRVZZc0I4dkc3RWZEejVac0FCRldMQUtMeHV4Q2hFK1diSUZBd29yV0NIWUcvUlpzQjhRc0EvUXNBOHZzQklRc2hvQkNpdFlJZGdiOUZtd0Z4Q3dIZEF3TVNFR0JoVVVNekkzRndZaklpWTFORGNuQmlNaUpqVVJNeEVVTXpJM0VUTVJBK0pYU2tjc0xoVkpYRjkwa2dWcnhiQzE4NnV4UHZNNFhqRkVGNDRzYmx1TVlXSit6c01DdmYxR3puOERDZnZHLy84QU1BQUFCdVVITndJbUFEc0FBQUVIQUowQnFBRTJBQk1Bc0FCRldMQU1MeHV4REI4K1diQVAzREF4QVAvL0FDRUFBQVhNQmdFQ0pnQmJBQUFCQndDZEFRb0FBQUFUQUxBQVJWaXdDeThic1FzYlBsbXdFZHd3TVFELy93QUhBQUFFMWdjM0FpWUFQUUFBQVFjQW5RQ0lBVFlBRXdDd0FFVllzQUV2RzdFQkh6NVpzQXZjTURFQS8vOEFEUDVMQTlZR0FRSW1BRjBBQUFFR0FKMFhBQUFUQUxBQVJWaXdEeThic1E4YlBsbXdGTnd3TVFELy93QUhBQUFFMWdjQ0FpWUFQUUFBQVFjQWFnQ3pBVFlBRmdDd0FFVllzQWd2RzdFSUh6NVpzQkRjc0JuUU1ESC8vd0JRQUFBRWpBYzJBaVlBUGdBQUFRY0FkUUdEQVRZQUV3Q3dBRVZZc0Fjdkc3RUhIejVac0F6Y01ERUEvLzhBVWdBQUE4QUdBQUltQUY0QUFBRUhBSFVCR3dBQUFCTUFzQUJGV0xBSEx4dXhCeHMrV2JBTTNEQXhBUC8vQUZBQUFBU01CeFFDSmdBK0FBQUJCd0NoQVdvQlB3QVRBTEFBUlZpd0J5OGJzUWNmUGxtd0V0d3dNUUQvL3dCU0FBQUR3QVhlQWlZQVhnQUFBUWNBb1FFQ0FBa0FFd0N3QUVWWXNBY3ZHN0VIR3o1WnNCTGNNREVBLy84QVVBQUFCSXdITndJbUFENEFBQUVIQUo0QW13RTJBQWtBc0FjdnNBN2NNREVBLy84QVVnQUFBOEFHQVFJbUFGNEFBQUVHQUo0ekFBQUpBTEFITDdBTzNEQXhBUC8vLy9ZQUFBZFhCMElDSmdDQkFBQUJCd0IxQXJzQlFnQVRBTEFBUlZpd0JpOGJzUVlmUGxtd0Zkd3dNUUQvL3dCSS8rd0doQVlCQWlZQWhnQUFBUWNBZFFKeEFBRUFDUUN3Rnkrd1A5d3dNUUQvL3dCcC82RUZJZ2VBQWlZQWd3QUFBUWNBZFFIZ0FZQUFFd0N3QUVWWXNCQXZHN0VRSHo1WnNDemNNREVBLy84QVQvOTNCRDBGL2dJbUFJa0FBQUVIQUhVQk1QLytBQk1Bc0FCRldMQUVMeHV4QkJzK1diQW8zREF4QVAvLy82WUFBQVFxQkkwQ0pnRzlBQUFCQndIZS94Yi9iZ0JHQUxJZkZ3RnhzbThYQVhHeS94Y0JjYklQRndGeXRxOFh2eGZQRndOeXN2OFhBWEt5WHhjQmNyYS9GODhYM3hjRGNiSS9Gd0Z4dE44WDd4Y0NYYlFmRnk4WEFsMHdNZi8vLzZZQUFBUXFCSTBDSmdHOUFBQUJCd0hlL3hiL2JnQkdBTElmRndGeHNtOFhBWEd5L3hjQmNiSVBGd0Z5dHE4WHZ4ZlBGd055c3Y4WEFYS3lYeGNCY3JhL0Y4OFgzeGNEY2JJL0Z3Rnh0TjhYN3hjQ1hiUWZGeThYQWwwd01mLy9BQ1FBQUFRV0JJMENKZ0hOQUFBQkJnSGVNcjRBQ0FDeUFBc0JYVEF4Ly84QUNRQUFCSlFHSGdJbUFib0FBQUVIQUVRQXh3QWVBQk1Bc0FCRldMQUVMeHV4QkIwK1diQU0zREF4QVAvL0FBa0FBQVNVQmg0Q0pnRzZBQUFCQndCMUFXWUFIZ0FUQUxBQVJWaXdCUzhic1FVZFBsbXdEZHd3TVFELy93QUpBQUFFbEFZZkFpWUJ1Z0FBQVFZQW5XY2VBQk1Bc0FCRldMQUVMeHV4QkIwK1diQVAzREF4QVAvL0FBa0FBQVNVQmhRQ0pnRzZBQUFCQmdDa2FSOEFDUUN3QkMrd0Z0d3dNUUQvL3dBSkFBQUVsQVhxQWlZQnVnQUFBUWNBYWdDU0FCNEFGZ0N3QUVWWXNBUXZHN0VFSFQ1WnNCTGNzQnZRTURILy93QUpBQUFFbEFaOEFpWUJ1Z0FBQVFjQW9nRDhBRklBRmdDd0FFVllzQVF2RzdFRUhUNVpzQkRjc0JqUU1ESC8vd0FKQUFBRWxBYVpBaVlCdWdBQUFBY0Izd0VDQUFULy93QlAva0VFUXdTZEFpWUJ2QUFBQUFjQWVRRnJBQUQvL3dCMkFBQUR0UVllQWlZQnZnQUFBUWNBUkFDV0FCNEFFd0N3QUVWWXNBWXZHN0VHSFQ1WnNBM2NNREVBLy84QWRnQUFBN1VHSGdJbUFiNEFBQUVIQUhVQk5RQWVBQk1Bc0FCRldMQUhMeHV4QngwK1diQU8zREF4QVAvL0FIWUFBQU8xQmg4Q0pnRytBQUFCQmdDZE5oNEFFd0N3QUVWWXNBWXZHN0VHSFQ1WnNCRGNNREVBLy84QWRnQUFBN1VGNmdJbUFiNEFBQUVHQUdwaEhnQVdBTEFBUlZpd0JpOGJzUVlkUGxtd0U5eXdITkF3TWYvLy82WUFBQUYrQmg0Q0pnSENBQUFCQndCRS8zVUFIZ0FUQUxBQVJWaXdBaThic1FJZFBsbXdCZHd3TVFELy93Q0RBQUFDV3dZZUFpWUJ3Z0FBQVFZQWRSTWVBQk1Bc0FCRldMQURMeHV4QXgwK1diQUczREF4QVAvLy82a0FBQUpZQmg4Q0pnSENBQUFCQndDZC94VUFIZ0FUQUxBQVJWaXdBaThic1FJZFBsbXdDTnd3TVFELy8vK2RBQUFDWXdYcUFpWUJ3Z0FBQVFjQWF2OUFBQjRBRmdDd0FFVllzQUl2RzdFQ0hUNVpzQXZjc0JUUU1ESC8vd0IyQUFBRVp3WVVBaVlCeHdBQUFRY0FwQUNJQUI4QUNRQ3dCUyt3RmR3d01RRC8vd0JQLy9BRWJ3WWVBaVlCeUFBQUFRY0FSQURWQUI0QUV3Q3dBRVZZc0Fzdkc3RUxIVDVac0I3Y01ERUEvLzhBVC8vd0JHOEdIZ0ltQWNnQUFBRUhBSFVCZEFBZUFBa0FzQXN2c0IvY01ERUEvLzhBVC8vd0JHOEdId0ltQWNnQUFBRUdBSjExSGdBVEFMQUFSVml3Q3k4YnNRc2RQbG13SWR3d01RRC8vd0JQLy9BRWJ3WVVBaVlCeUFBQUFRWUFwSGNmQUFrQXNBc3ZzQ2pjTURFQS8vOEFULy93Qkc4RjZnSW1BY2dBQUFFSEFHb0FvQUFlQUJZQXNBQkZXTEFMTHh1eEN4MCtXYkFrM0xBdDBEQXgvLzhBWi8vd0JCNEdIZ0ltQWM0QUFBRUhBRVFBdFFBZUFCTUFzQUJGV0xBSUx4dXhDQjArV2JBUjNEQXhBUC8vQUdmLzhBUWVCaDRDSmdIT0FBQUJCd0IxQVZRQUhnQVRBTEFBUlZpd0R5OGJzUThkUGxtd0V0d3dNUUQvL3dCbi8vQUVIZ1lmQWlZQnpnQUFBUVlBblZVZUFCTUFzQUJGV0xBSUx4dXhDQjArV2JBVTNEQXhBUC8vQUdmLzhBUWVCZW9DSmdIT0FBQUJCd0JxQUlBQUhnQVdBTEFBUlZpd0NDOGJzUWdkUGxtd0Y5eXdJTkF3TWYvL0FBVUFBQVEyQmg0Q0pnSFNBQUFCQndCMUFTMEFIZ0FUQUxBQVJWaXdBUzhic1FFZFBsbXdDOXd3TVFELy93QUpBQUFFbEFYU0FpWUJ1Z0FBQVFZQWNHSWlBQk1Bc0FCRldMQUVMeHV4QkIwK1diQU0zREF4QVAvL0FBa0FBQVNVQmdRQ0pnRzZBQUFCQndDZ0FKb0FIZ0FUQUxBQVJWaXdCQzhic1FRZFBsbXdEdHd3TVFBQUFnQUovbElFbEFTTkFCWUFHUUJ4c2hrYUd4RVNPYkFaRUxBVzBBQ3dBRVZZc0FBdkc3RUFIVDVac0FCRldMQVVMeHV4RkE4K1diQUFSVml3QVM4YnNRRVBQbG13QUVWWXNBd3ZHN0VNRVQ1WnNnY0RDaXRZSWRnYjlGbXdBUkN3RWRDeUZ4UUFFUkk1c0JjdnNoTUJDaXRZSWRnYjlGbXlHUUFVRVJJNU1ERUJBU01HQmhVVU16STNGd1lqSWlZMU5EY25JUWNqQVFNaEF3Sy9BZFUyVjBwSExDNFZTVnhmZEoxWi9oNWY5UUhYUEFGVXFnU04rM000WGpGRUY0NHNibHVTWWV2NUJJMzlKUUc2QVAvL0FFLy84QVJEQmg0Q0pnRzhBQUFCQndCMUFXTUFIZ0FKQUxBTEw3QWUzREF4QVAvL0FFLy84QVJEQmg4Q0pnRzhBQUFCQmdDZFpCNEFFd0N3QUVWWXNBc3ZHN0VMSFQ1WnNDRGNNREVBLy84QVQvL3dCRU1GL0FJbUFid0FBQUVIQUtFQlNnQW5BQk1Bc0FCRldMQUxMeHV4Q3gwK1diQWszREF4QVAvL0FFLy84QVJEQmg4Q0pnRzhBQUFCQmdDZWV4NEFDUUN3Q3krd0lOd3dNUUQvL3dCcUFBQUVLZ1lmQWlZQnZRQUFBUVlBbnZnZUFBa0FzQUV2c0JqY01ERUEvLzhBZGdBQUE3VUYwZ0ltQWI0QUFBRUdBSEF4SWdBVEFMQUFSVml3Qmk4YnNRWWRQbG13RGR3d01RRC8vd0IyQUFBRHRRWUVBaVlCdmdBQUFRWUFvR2tlQUJNQXNBQkZXTEFHTHh1eEJoMCtXYkFQM0RBeEFQLy9BSFlBQUFPMUJmd0NKZ0crQUFBQkJ3Q2hBUndBSndBVEFMQUFSVml3Qmk4YnNRWWRQbG13Rk53d01RQUFBUUIyL2xJRHRRU05BQnNBZ0xJUkhCMFJFamtBc0FCRldMQVdMeHV4RmgwK1diQUFSVml3RHk4YnNROFJQbG13QUVWWXNBUXZHN0VFRHo1WnNBQkZXTEFVTHh1eEZBOCtXYkliRmdRUkVqbXdHeSt5QUFFS0sxZ2gyQnYwV2JBVUVMSUNBUW9yV0NIWUcvUlpzQVBRc0E4UXNnb0RDaXRZSWRnYjlGbXdGaEN5R0FFS0sxZ2gyQnYwV1RBeEFTRVJJUlVqQmdZVkZETXlOeGNHSXlJbU5UUTNJUkVoRlNFUklRTmYvZ29DVEY1WFNrY3NMaFZKWEY5MGgvMzdBeno5dHdIMkFmait5c0k0WGpGRUY0NHNibHVHWHdTTnhQN3lBUC8vQUhZQUFBTzFCaDhDSmdHK0FBQUJCZ0NlVFI0QUV3Q3dBRVZZc0FZdkc3RUdIVDVac0JIY01ERUEvLzhBVlAvd0JFZ0dId0ltQWNBQUFBRUdBSjFvSGdBVEFMQUFSVml3Q2k4YnNRb2RQbG13SWR3d01RRC8vd0JVLy9BRVNBWUVBaVlCd0FBQUFRY0FvQUNiQUI0QUV3Q3dBRVZZc0Fvdkc3RUtIVDVac0NEY01ERUEvLzhBVlAvd0JFZ0YvQUltQWNBQUFBRUhBS0VCVGdBbkFCTUFzQUJGV0xBS0x4dXhDaDArV2JBbDNEQXhBUC8vQUZUOStRUklCSjBDSmdIQUFBQUFCd0dpQVdyK2t2Ly9BSFlBQUFSb0JoOENKZ0hCQUFBQkJnQ2RleDRBRXdDd0FFVllzQWN2RzdFSEhUNVpzQkRjTURFQS8vLy9rUUFBQW00R0ZBSW1BY0lBQUFFSEFLVC9Gd0FmQUFrQXNBSXZzQS9jTURFQS8vLy9sd0FBQW00RjBnSW1BY0lBQUFFSEFIRC9FQUFpQUJNQXNBQkZXTEFDTHh1eEFoMCtXYkFGM0RBeEFQLy8vNzBBQUFKREJnUUNKZ0hDQUFBQkJ3Q2cvMGdBSGdBVEFMQUFSVml3QWk4YnNRSWRQbG13Qjl3d01RRC8vd0FWL2xJQmpRU05BaVlCd2dBQUFBWUFvK3dBLy84QWZBQUFBWUlGL0FJbUFjSUFBQUVHQUtIN0p3QVRBTEFBUlZpd0FpOGJzUUlkUGxtd0ROd3dNUUQvL3dBay8vQUVOd1lmQWlZQnd3QUFBUWNBblFEMEFCNEFFd0N3QUVWWXNBQXZHN0VBSFQ1WnNCUGNNREVBLy84QWR2MzVCR2dFalFJbUFjUUFBQUFIQWFJQkV2NlMvLzhBZGdBQUE1UUdIZ0ltQWNVQUFBRUdBSFVLSGdBVEFMQUFSVml3QlM4YnNRVWRQbG13Q053d01RRC8vd0IyL2ZrRGxBU05BaVlCeFFBQUFBY0JvZ0VRL3BMLy93QjJBQUFEbEFTUUFpWUJ4UUFBQVFjQm9nR1ZBNG9BRUFDd0FFVllzQW92RzdFS0hUNVpNREgvL3dCMkFBQURsQVNOQWlZQnhRQUFBQWNBb1FGeS9VYi8vd0IyQUFBRVp3WWVBaVlCeHdBQUFRY0FkUUdGQUI0QUV3Q3dBRVZZc0Fndkc3RUlIVDVac0F6Y01ERUEvLzhBZHYzNUJHY0VqUUltQWNjQUFBQUhBYUlCZVA2Uy8vOEFkZ0FBQkdjR0h3SW1BY2NBQUFFSEFKNEFuUUFlQUJNQXNBQkZXTEFHTHh1eEJoMCtXYkFQM0RBeEFQLy9BRS8vOEFSdkJkSUNKZ0hJQUFBQkJnQndjQ0lBQ1FDd0N5K3dIZHd3TVFELy93QlAvL0FFYndZRUFpWUJ5QUFBQVFjQW9BQ29BQjRBRXdDd0FFVllzQXN2RzdFTEhUNVpzQ0RjTURFQS8vOEFULy93Qkc4R0hRSW1BY2dBQUFFSEFLVUEvZ0FlQUF3QXNBc3ZzQi9jc0NIUU1ESC8vd0IyQUFBRU9RWWVBaVlCeXdBQUFRY0FkUUVYQUI0QUNRQ3dCQyt3R2R3d01RRC8vd0IyL2ZrRU9RU05BaVlCeXdBQUFBY0JvZ0VZL3BMLy93QjJBQUFFT1FZZkFpWUJ5d0FBQVFZQW5pOGVBQWtBc0FRdnNCdmNNREVBLy84QVB2L3dBKzhHSGdJbUFjd0FBQUVIQUhVQlFRQWVBQWtBc0FrdnNDamNNREVBLy84QVB2L3dBKzhHSHdJbUFjd0FBQUVHQUoxQ0hnQVRBTEFBUlZpd0NTOGJzUWtkUGxtd0t0d3dNUUQvL3dBKy9rRUQ3d1NkQWlZQnpBQUFBQWNBZVFGUEFBRC8vd0ErLy9BRDd3WWZBaVlCekFBQUFRWUFubGtlQUFrQXNBa3ZzQ3JjTURFQS8vOEFKUDM1QkJZRWpRSW1BYzBBQUFBSEFhSUJKZjZTLy84QUpBQUFCQllHSHdJbUFjMEFBQUVHQUo1SEhnQVRBTEFBUlZpd0JpOGJzUVlkUGxtd0Rkd3dNUUQvL3dBay9rY0VGZ1NOQWlZQnpRQUFBQWNBZVFFNUFBYi8vd0JuLy9BRUhnWVVBaVlCemdBQUFRWUFwRmNmQUJNQXNBQkZXTEFQTHh1eER4MCtXYkFUM0RBeEFQLy9BR2YvOEFRZUJkSUNKZ0hPQUFBQkJnQndVQ0lBQ1FDd0FDK3dFTnd3TVFELy93Qm4vL0FFSGdZRUFpWUJ6Z0FBQVFjQW9BQ0lBQjRBRXdDd0FFVllzQWd2RzdFSUhUNVpzQlBjTURFQS8vOEFaLy93QkI0R2ZBSW1BYzRBQUFFSEFLSUE2Z0JTQUF3QXNBQXZzQlhjc0JyUU1ESC8vd0JuLy9BRU5BWWRBaVlCemdBQUFRY0FwUURlQUI0QURBQ3dBQyt3RXR5d0ZOQXdNUUFCQUdmK2dnUWVCSTBBSGdCaHNoc2ZJQkVTT1FDd0FFVllzQmN2RzdFWEhUNVpzQUJGV0xBQUx4dXhBQjArV2JBQVJWaXdEUzhic1EwWFBsbXdBRVZZc0JJdkc3RVNEejVac2dRU0FCRVNPYkFORUxJSUF3b3JXQ0hZRy9SWnNCSVFzaHNCQ2l0WUlkZ2I5Rmt3TVFFUkJnWUhCaFVVTXpJM0Z3WWpJaVkxTkRjbUppY1JNeEVVRmpNeU54RUVIZ0Y5ZDM5SExDNFZTVnhmZEVETjhnTHhmbXpsQkFTTi9QeUJ2VEpXV2tRWGppeHVXMTFKQnRhN0F3WDlBSE5vMUFNSC8vOEFLQUFBQmVVR0h3SW1BZEFBQUFFSEFKMEJHUUFlQUJNQXNBQkZXTEFCTHh1eEFSMCtXYkFQM0RBeEFQLy9BQVVBQUFRMkJoOENKZ0hTQUFBQkJnQ2RMaDRBRXdDd0FFVllzQWd2RzdFSUhUNVpzQTNjTURFQS8vOEFCUUFBQkRZRjZnSW1BZElBQUFFR0FHcFpIZ0FXQUxBQVJWaXdDQzhic1FnZFBsbXdFTnl3R2RBd01mLy9BRUVBQUFQekJoNENKZ0hUQUFBQkJ3QjFBVEFBSGdBVEFMQUFSVml3Q0M4YnNRZ2RQbG13RE53d01RRC8vd0JCQUFBRDh3WDhBaVlCMHdBQUFRY0FvUUVYQUNjQUV3Q3dBRVZZc0Fjdkc3RUhIVDVac0JMY01ERUEvLzhBUVFBQUEvTUdId0ltQWRNQUFBRUdBSjVJSGdBVEFMQUFSVml3Qnk4YnNRY2RQbG13RDl3d01RRC8vd0FTQUFBRlFnWkJBaVlBSlFBQUFBWUFyYjhBLy8vL1NnQUFCTEFHUVFBbUFDbGtBQUFIQUszK2hBQUEvLy8vVXdBQUJYd0dRUUFtQUN4a0FBQUhBSzMralFBQS8vLy9WZ0FBQWdNR1F3QW1BQzFrQUFBSEFLMytrQUFDLy8vL3AvL3NCVElHUVFBbUFETVVBQUFIQUszKzRRQUEvLy8rNFFBQUJUb0dRUUFtQUQxa0FBQUhBSzMrR3dBQS8vLy9zZ0FBQlBFR1FRQW1BTGtVQUFBSEFLMys3QUFBLy8vL2gvLzBBdG9HbWdJbUFNSUFBQUVIQUs3L0lQL3JBQndBc0FCRldMQU1MeHV4REJzK1diQVkzTEFRMExBWUVMQWgwREF4Ly84QUVnQUFCVUlGc0FJR0FDVUFBUC8vQUpRQUFBU2pCYkFDQmdBbUFBRC8vd0NVQUFBRVRBV3dBZ1lBS1FBQS8vOEFVQUFBQkl3RnNBSUdBRDRBQVAvL0FKUUFBQVVZQmJBQ0JnQXNBQUQvL3dDakFBQUJud1d3QWdZQUxRQUEvLzhBbEFBQUJSZ0ZzQUlHQUM4QUFQLy9BSlFBQUFacUJiQUNCZ0F4QUFELy93Q1VBQUFGRndXd0FnWUFNZ0FBLy84QVp2L3NCUjRGeEFJR0FETUFBUC8vQUpRQUFBVFVCYkFDQmdBMEFBRC8vd0F0QUFBRXNBV3dBZ1lBT0FBQS8vOEFCd0FBQk5ZRnNBSUdBRDBBQVAvL0FDa0FBQVRwQmJBQ0JnQThBQUQvLy8rL0FBQUNoUWNKQWlZQUxRQUFBUWNBYXY5aUFUMEFGZ0N3QUVWWXNBSXZHN0VDSHo1WnNBdmNzQlRRTURILy93QUhBQUFFMWdjQ0FpWUFQUUFBQVFjQWFnQ3pBVFlBRmdDd0FFVllzQWd2RzdFSUh6NVpzQkRjc0JuUU1ESC8vd0JXLytzRWVRWkJBaVlBdWdBQUFRY0FyUUZRQUFBQUNRQ3dFeSt3Sk53d01RRC8vd0JnLyt3RURBWkJBaVlBdmdBQUFRY0FyUUVaQUFBQUNRQ3dDUyt3S3R3d01RRC8vd0IrL21FRUJnWkJBaVlBd0FBQUFRY0FyUUVqQUFBQUNRQ3dBeSt3Rk53d01RRC8vd0NwLy9RQ1lRWXNBaVlBd2dBQUFRWUFyUS9yQUFrQXNBQXZzQS9jTURFQS8vOEFnUC9yQkFnR29nSW1BTW9BQUFFR0FLNGQ4d0FjQUxBQVJWaXdBQzhic1FBYlBsbXdIdHl3RmRDd0hoQ3dKOUF3TWYvL0FJNEFBQVJyQkRvQ0JnQ05BQUQvL3dCUC8rd0VQUVJPQWdZQVV3QUEvLzhBa3Y1Z0JCOEVPZ0lHQUhZQUFQLy9BQllBQUFQYUJEb0NCZ0JhQUFELy93QWZBQUFENkFRNkFnWUFYQUFBLy8vL3pQLzBBcElGdHdJbUFNSUFBQUVIQUdyL2IvL3JBQllBc0FCRldMQU1MeHV4REJzK1diQVUzTEFkMERBeC8vOEFnUC9yQkFnRnZ3SW1BTW9BQUFFR0FHcHM4d0FXQUxBQVJWaXdBQzhic1FBYlBsbXdHdHl3STlBd01mLy9BRS8vN0FROUJrRUNKZ0JUQUFBQkJ3Q3RBU0lBQUFBSkFMQUVMN0FkM0RBeEFQLy9BSUQvNndRSUJqUUNKZ0RLQUFBQkJ3Q3RBUTMvOHdBSkFMQUFMN0FWM0RBeEFQLy9BR2IvN0FZdEJqSUNKZ0ROQUFBQkJ3Q3RBaXovOFFBSkFMQUFMN0FqM0RBeEFQLy9BSlFBQUFSTUJ3a0NKZ0FwQUFBQkJ3QnFBTE1CUFFBV0FMQUFSVml3Qmk4YnNRWWZQbG13RTl5d0hOQXdNZi8vQUpzQUFBUTNCejBDSmdDd0FBQUJCd0IxQVlJQlBRQVRBTEFBUlZpd0JDOGJzUVFmUGxtd0NOd3dNUUFBQVFCSy8rd0VpZ1hFQUNjQVk3SVJLQ2tSRWprQXNBQkZXTEFKTHh1eENSOCtXYkFBUlZpd0hTOGJzUjBQUGxteUFoMEpFUkk1c2c0SkhSRVNPYkFKRUxJUkFRb3JXQ0hZRy9SWnNBSVFzaGNCQ2l0WUlkZ2I5Rm15SWgwSkVSSTVzQjBRc2lVQkNpdFlJZGdiOUZrd01RRTBKaVFuSmpVMEpETXlGaFlWSXpRbUl5SUdGUlFXQkJZV0ZSUUVJeUlrSmpVekZCWXpNallEallmK29HakhBUi9sbU82SS9JK0ZmSW1VQVZUT1lQN3A3NTcrOTVQOXBKbUVoUUYzWUdocVFYM0pzT1J3ejM1eWdXcGZVR3RsZ2Fkd3R0ZDF6b2w4aUdzQS8vOEFvd0FBQVo4RnNBSUdBQzBBQVAvLy83OEFBQUtGQndrQ0pnQXRBQUFCQndCcS8ySUJQUUFXQUxBQVJWaXdBaThic1FJZlBsbXdDOXl3Rk5Bd01mLy9BQzMvN0FQa0JiQUNCZ0F1QUFELy93Q2JBQUFGTUFXd0FnWUI0d0FBLy84QWxBQUFCUmdITmdJbUFDOEFBQUVIQUhVQmJnRTJBQk1Bc0FCRldMQUZMeHV4QlI4K1diQVAzREF4QVAvL0FEbi82d1RkQnlNQ0pnRGRBQUFCQndDZ0FOa0JQUUFUQUxBQVJWaXdEeThic1E4ZlBsbXdFOXd3TVFELy93QVNBQUFGUWdXd0FnWUFKUUFBLy84QWxBQUFCS01Gc0FJR0FDWUFBUC8vQUpzQUFBUTNCYkFDQmdDd0FBRC8vd0NVQUFBRVRBV3dBZ1lBS1FBQS8vOEFsQUFBQlEwSEl3SW1BTnNBQUFFSEFLQUJIUUU5QUJNQXNBQkZXTEFJTHh1eENCOCtXYkFOM0RBeEFQLy9BSlFBQUFacUJiQUNCZ0F4QUFELy93Q1VBQUFGR0FXd0FnWUFMQUFBLy84QVp2L3NCUjRGeEFJR0FETUFBUC8vQUpzQUFBVVVCYkFDQmdDMUFBRC8vd0NVQUFBRTFBV3dBZ1lBTkFBQS8vOEFadi9zQk9zRnhBSUdBQ2NBQVAvL0FDMEFBQVN3QmJBQ0JnQTRBQUQvL3dBcEFBQUU2UVd3QWdZQVBBQUEvLzhBV3Yvc0Evc0VUZ0lHQUVVQUFQLy9BRlAvN0FRTEJFNENCZ0JKQUFELy93Q0dBQUFFRWdYWkFpWUE3d0FBQVFjQW9BQ1gvL01BRXdDd0FFVllzQWd2RzdFSUd6NVpzQTNjTURFQS8vOEFULy9zQkQwRVRnSUdBRk1BQVAvL0FIeitZQVF3QkU0Q0JnQlVBQUFBQVFCUC8rd0Q5UVJPQUJ3QVM3SUFIUjRSRWprQXNBQkZXTEFQTHh1eER4cytXYkFBUlZpd0NDOGJzUWdQUGxteUFBRUtLMWdoMkJ2MFdiSURDQThSRWpteUV3OElFUkk1c0E4UXNoWUJDaXRZSWRnYjlGa3dNU1V5TmpjekRnSWpJZ0FSTlRRQU16SVdGeU1tSmlNaUJnY1ZGQllDT1Z0NEJPVUVkc3AxNC83MkFRamt3Zk1HNVFSM1hIYUFBWCt1YWs1bHIyWUJKZ0VER2ZjQktlRzNYWGlycmlld3JRRC8vd0FNL2tzRDFnUTZBZ1lBWFFBQS8vOEFId0FBQStnRU9nSUdBRndBQVAvL0FGUC83QVFMQmN3Q0pnQkpBQUFCQmdCcWJBQUFGZ0N3QUVWWXNBZ3ZHN0VJR3o1WnNDWGNzQzdRTURILy93Q0ZBQUFEVFFYekFpWUE2d0FBQVFjQWRRREMvL01BRXdDd0FFVllzQVF2RzdFRUd6NVpzQWpjTURFQS8vOEFTLy9zQThvRVRnSUdBRmNBQVAvL0FIMEFBQUdRQmRVQ0JnQk5BQUQvLy8rckFBQUNjUVhGQWlZQWpBQUFBUWNBYXY5Ty8va0FGZ0N3QUVWWXNBSXZHN0VDR3o1WnNBdmNzQlRRTURILy8vKzEva3NCaFFYVkFnWUFUZ0FBLy84QWp3QUFCR1VGOGdJbUFQQUFBQUVIQUhVQlJQL3lBQk1Bc0FCRldMQUVMeHV4QkJzK1diQVAzREF4QVAvL0FBeitTd1BXQmVZQ0pnQmRBQUFCQmdDZ1NnQUFFd0N3QUVWWXNBOHZHN0VQR3o1WnNCUGNNREVBLy84QU1BQUFCdVVITmdJbUFEc0FBQUVIQUVRQ0NBRTJBQk1Bc0FCRldMQUxMeHV4Q3g4K1diQU8zREF4QVAvL0FDRUFBQVhNQmdBQ0pnQmJBQUFCQndCRUFXb0FBQUFUQUxBQVJWaXdDeThic1FzYlBsbXdEdHd3TVFELy93QXdBQUFHNVFjMkFpWUFPd0FBQVFjQWRRS25BVFlBRXdDd0FFVllzQXd2RzdFTUh6NVpzQS9jTURFQS8vOEFJUUFBQmN3R0FBSW1BRnNBQUFFSEFIVUNDUUFBQUJNQXNBQkZXTEFNTHh1eERCcytXYkFQM0RBeEFQLy9BREFBQUFibEJ3SUNKZ0E3QUFBQkJ3QnFBZE1CTmdBTUFMQUJMN0FXM0xBTjBEQXgvLzhBSVFBQUJjd0Z6QUltQUZzQUFBRUhBR29CTlFBQUFBd0FzQUV2c0JiY3NBM1FNREgvL3dBSEFBQUUxZ2MyQWlZQVBRQUFBUWNBUkFEb0FUWUFFd0N3QUVWWXNBZ3ZHN0VJSHo1WnNBcmNNREVBLy84QURQNUxBOVlHQUFJbUFGMEFBQUVHQUVSM0FBQUpBTEFCTDdBUTNEQXhBUC8vQUZJRC9BRUxCZ0FEQmdBTEFBQUFGZ0N3QUVWWXNBUXZHN0VFSVQ1WnNBSFFzQUV2TURILy93QmxBL1FDUUFZQUF3WUFCZ0FBQUN3QXNBQkZXTEFKTHh1eENTRStXYkFBUlZpd0JDOGJzUVFoUGxtd0NSQ3dCdEN3Qmkrd0FkQ3dBUzh3TWYvL0FJLy84Z1BJQmJBQUpnQUZBQUFBQndBRkFpVUFBUC8vLzdIK1N3SnpCZDhDSmdDYkFBQUJCd0NlL3ovLzNnQUpBTEFBTDdBUjNEQXhBUC8vQURNRUFBRmxCZ0FDQmdGdEFBRC8vd0NVQUFBR2FnYzJBaVlBTVFBQUFRY0FkUUtRQVRZQUV3Q3dBRVZZc0FJdkc3RUNIejVac0JIY01ERUEvLzhBZkFBQUJua0dBQUltQUZFQUFBRUhBSFVDb0FBQUFBa0FzQU12c0NEY01ERUEvLzhBRXY1dEJVSUZzQUltQUNVQUFBQUhBS1lCZWdBRC8vOEFXdjV4QS9zRVRnSW1BRVVBQUFBSEFLWUFyUUFILy84QWxBQUFCRXdIUFFJbUFDa0FBQUVIQUVRQTZBRTlBQk1Bc0FCRldMQUdMeHV4Qmg4K1diQU4zREF4QVAvL0FKUUFBQVVOQnowQ0pnRGJBQUFCQndCRUFVb0JQUUFUQUxBQVJWaXdDQzhic1FnZlBsbXdDOXd3TVFELy93QlQvK3dFQ3dZQUFpWUFTUUFBQVFjQVJBQ2hBQUFBRXdDd0FFVllzQWd2RzdFSUd6NVpzQi9jTURFQS8vOEFoZ0FBQkJJRjh3SW1BTzhBQUFFSEFFUUF4UC96QUJNQXNBQkZXTEFJTHh1eENCcytXYkFMM0RBeEFQLy9BRVFBQUFWY0JiQUNCZ0M0QUFELy93QlAvaUlGZmdRNkFnWUF6QUFBLy84QUVBQUFCUE1HL0FJbUFSZ0FBQUVIQUtzRVNRRU9BQllBc0FCRldMQVBMeHV4RHg4K1diQVIzTEFWMERBeC8vLy84UUFBQkJnRjBBSW1BUmtBQUFFSEFLc0Q1Zi9pQUJZQXNBQkZXTEFSTHh1eEVScytXYkFUM0xBWDBEQXgvLzhBVC81TENHUUVUZ0FtQUZNQUFBQUhBRjBFamdBQS8vOEFadjVMQ1Z3RnhBQW1BRE1BQUFBSEFGMEZoZ0FBLy84QVNmNDZCSDhGd3dJbUFOb0FBQUFIQWJBQmt2K2cvLzhBVGY0N0E4UUVUUUltQU80QUFBQUhBYkFCT2YraC8vOEFadjQrQk9zRnhBSW1BQ2NBQUFBSEFiQUIxditrLy84QVQvNCtBL1VFVGdJbUFFY0FBQUFIQWJBQlN2K2svLzhBQndBQUJOWUZzQUlHQUQwQUFQLy9BQ0QrWHdQMUJEb0NCZ0M4QUFELy93Q2pBQUFCbndXd0FnWUFMUUFBLy84QUZnQUFCNXNISXdJbUFOa0FBQUVIQUtBQ0hRRTlBQk1Bc0FCRldMQU5MeHV4RFI4K1diQVozREF4QVAvL0FCNEFBQVpjQmRrQ0pnRHRBQUFCQndDZ0FZZi84d0FUQUxBQVJWaXdEUzhic1EwYlBsbXdHZHd3TVFELy93Q2pBQUFCbndXd0FnWUFMUUFBLy84QUVnQUFCVUlISEFJbUFDVUFBQUVIQUtBQTlnRTJBQk1Bc0FCRldMQUVMeHV4QkI4K1diQU8zREF4QVAvL0FGci83QVA3QmVZQ0pnQkZBQUFCQndDZ0FJQUFBQUFUQUxBQVJWaXdGeThic1JjYlBsbXdMZHd3TVFELy93QVNBQUFGUWdjQ0FpWUFKUUFBQVFjQWFnRHVBVFlBRmdDd0FFVllzQVF2RzdFRUh6NVpzQkxjc0J2UU1ESC8vd0JhLyt3RCt3WE1BaVlBUlFBQUFRWUFhbmdBQUJZQXNBQkZXTEFYTHh1eEZ4cytXYkF4M0xBNjBEQXgvLy8vOWdBQUIxY0ZzQUlHQUlFQUFQLy9BRWovN0FhRUJGQUNCZ0NHQUFELy93Q1VBQUFFVEFjakFpWUFLUUFBQVFjQW9BQzdBVDBBRXdDd0FFVllzQVl2RzdFR0h6NVpzQS9jTURFQS8vOEFVLy9zQkFzRjVnSW1BRWtBQUFFR0FLQjBBQUFUQUxBQVJWaXdDQzhic1FnYlBsbXdJZHd3TVFELy93QlIvK3NGSGdiYkFpWUJSUUFBQVFjQWFnRENBUThBRmdDd0FFVllzQUF2RzdFQUh6NVpzQ2Jjc0MvUU1ESC8vd0JaLyt3RCtBUlBBZ1lBbkFBQS8vOEFXZi9zQS9nRnpRSW1BSndBQUFFR0FHcHBBUUFXQUxBQVJWaXdBQzhic1FBYlBsbXdKdHl3TDlBd01mLy9BQllBQUFlYkJ3a0NKZ0RaQUFBQkJ3QnFBaFVCUFFBV0FMQUFSVml3RFM4YnNRMGZQbG13SGR5d0p0QXdNZi8vQUI0QUFBWmNCYjhDSmdEdEFBQUJCd0JxQVgvLzh3QVdBTEFBUlZpd0RTOGJzUTBiUGxtd0hkeXdKdEF3TWYvL0FFbi83UVIvQnhjQ0pnRGFBQUFCQndCcUFLTUJTd0FXQUxBQVJWaXdDeThic1FzZlBsbXdNZHl3T3RBd01mLy9BRTMvN0FQRUJjd0NKZ0R1QUFBQkJnQnFUZ0FBRmdDd0FFVllzQ1V2RzdFbEd6NVpzQy9jc0RqUU1ESC8vd0NVQUFBRkRRYnhBaVlBMndBQUFRY0FjQURsQVVFQUV3Q3dBRVZZc0Fndkc3RUlIejVac0F2Y01ERUEvLzhBaGdBQUJCSUZwd0ltQU84QUFBRUdBSEJmOXdBVEFMQUFSVml3Qnk4YnNRY2JQbG13Qzl3d01RRC8vd0NVQUFBRkRRY0pBaVlBMndBQUFRY0FhZ0VWQVQwQUZnQ3dBRVZZc0Fndkc3RUlIejVac0JIY3NCclFNREgvL3dDR0FBQUVFZ1cvQWlZQTd3QUFBUWNBYWdDUC8vTUFGZ0N3QUVWWXNBZ3ZHN0VJR3o1WnNCSGNzQnJRTURILy93Qm0vK3dGSGdjQ0FpWUFNd0FBQVFjQWFnRUZBVFlBRmdDd0FFVllzQXd2RzdFTUh6NVpzQ2Jjc0MvUU1ESC8vd0JQLyt3RVBRWE1BaVlBVXdBQUFRY0FhZ0NCQUFBQUZnQ3dBRVZZc0FRdkc3RUVHejVac0NMY3NDdlFNREgvL3dCZi8rd0ZGd1hFQWdZQkZnQUEvLzhBVC8vc0JEMEVUZ0lHQVJjQUFQLy9BRi8vN0FVWEJ3WUNKZ0VXQUFBQkJ3QnFBUk1CT2dBV0FMQUFSVml3REM4YnNRd2ZQbG13SnR5d0w5QXdNZi8vQUUvLzdBUTlCY3dDSmdFWEFBQUJCZ0JxY3dBQUZnQ3dBRVZZc0FRdkc3RUVHejVac0NYY3NDN1FNREgvL3dCci8rd0U4UWNZQWlZQTVnQUFBUWNBYWdEakFVd0FGZ0N3QUVWWXNCTXZHN0VUSHo1WnNDZmNzRERRTURILy93QlIvK3dENkFYTUFpWUEvZ0FBQVFZQWFsa0FBQllBc0FCRldMQUlMeHV4Q0JzK1diQW8zTEF4MERBeC8vOEFPZi9yQk4wRzhRSW1BTjBBQUFFSEFIQUFvUUZCQUFrQXNBRXZzQkRjTURFQS8vOEFEUDVMQTlZRnRBSW1BRjBBQUFFR0FIQVNCQUFKQUxBQkw3QVEzREF4QVAvL0FEbi82d1RkQndrQ0pnRGRBQUFCQndCcUFORUJQUUFXQUxBQVJWaXdEeThic1E4ZlBsbXdGOXl3SU5Bd01mLy9BQXorU3dQV0Jjd0NKZ0JkQUFBQkJnQnFRZ0FBRmdDd0FFVllzQTh2RzdFUEd6NVpzQmZjc0NEUU1ESC8vd0E1LytzRTNRYzhBaVlBM1FBQUFRY0FwUUV2QVQwQUZnQ3dBRVZZc0E4dkc3RVBIejVac0JiY3NCTFFNREgvL3dBTS9rc0Q5Z1gvQWlZQVhRQUFBUWNBcFFDZ0FBQUFGZ0N3QUVWWXNBOHZHN0VQR3o1WnNCYmNzQkxRTURILy93Q09BQUFFN2djSkFpWUE0QUFBQVFjQWFnRVBBVDBBRmdDd0FFVllzQW92RzdFS0h6NVpzQm5jc0NMUU1ESC8vd0JmQUFBRDRBVy9BaVlBK0FBQUFRWUFhbWZ6QUJZQXNBQkZXTEFKTHh1eENScytXYkFaM0xBaTBEQXgvLzhBbXdBQUJsZ0hDZ0FtQU9VTEFBQW5BQzBFdVFBQUFRY0FhZ0hDQVQ0QUZnQ3dBRVZZc0Fzdkc3RUxIejVac0NEY3NDblFNREgvL3dDUEFBQUZ5UVcvQUNZQS9RQUFBQ2NBakFSSEFBQUJCd0JxQVhULzh3QVdBTEFBUlZpd0N5OGJzUXNiUGxtd0g5eXdLTkF3TWYvL0FDbitTd1ZSQmJBQ0pnQThBQUFBQndHdkE4TUFBUC8vQUIvK1N3UldCRG9DSmdCY0FBQUFCd0d2QXNnQUFQLy9BRS8vN0FRREJnQUNCZ0JJQUFELy93QXQva3NGL1FXd0FpWUEzQUFBQUFjQnJ3UnZBQUQvL3dBaC9rc0ZCd1E2QWlZQThRQUFBQWNCcndONUFBRC8vd0FTL3BjRlFnV3dBaVlBSlFBQUFBY0FyQVVOQUFQLy93QmEvcHNEK3dST0FpWUFSUUFBQUFjQXJBUkFBQWYvL3dBU0FBQUZRZ2U3QWlZQUpRQUFBUWNBcWdVRkFUd0FDUUN3QkMrd0M5d3dNUUQvL3dCYS8rd0Qrd2FGQWlZQVJRQUFBUWNBcWdTUEFBWUFDUUN3Rnkrd0t0d3dNUUQvL3dBU0FBQUZTZ2V4QWlZQUpRQUFBUWNCdHdDL0FTRUFGd0N3QUVWWXNBVXZHN0VGSHo1WnNRNEo5TEFVMERBeEFQLy9BRnIvN0FUVUJud0NKZ0JGQUFBQkJnRzNTZXdBREFDd0Z5K3dMTnl3TWRBd01mLy9BQkFBQUFWQ0I2NENKZ0FsQUFBQkJ3RzJBTVFCS3dBWEFMQUFSVml3QkM4YnNRUWZQbG14RGduMHNCUFFNREVBLy8vL212L3NBL3NHZVFJbUFFVUFBQUVHQWJaTzlnQU1BTEFYTDdBcTNMQXgwREF4Ly84QUVnQUFCVUlIM2dJbUFDVUFBQUVIQWJVQXd3RVRBQXdBc0FRdnNBdmNzQkxRTURILy93QmEvK3dFVndhcEFpWUFSUUFBQVFZQnRVM2VBQXdBc0JjdnNDcmNzREhRTURILy93QVNBQUFGUWdmV0FpWUFKUUFBQVFjQnRBREVBUVVBREFDd0JDK3dDOXl3RXRBd01mLy9BRnIvN0FQN0JxRUNKZ0JGQUFBQkJnRzBUdEFBREFDd0Z5K3dLdHl3TWRBd01mLy9BQkwrbHdWQ0J6Y0NKZ0FsQUFBQUp3Q2RBTU1CTmdBSEFLd0ZEUUFELy84QVd2NmJBL3NHQVFJbUFFVUFBQUFtQUoxTkFBQUhBS3dFUUFBSC8vOEFFZ0FBQlVJSHJnSW1BQ1VBQUFFSEFiTUE3d0V3QUF3QXNBUXZzQTdjc0JuUU1ESC8vd0JhLyt3RCt3WjVBaVlBUlFBQUFRWUJzM243QUF3QXNCY3ZzQzNjc0RqUU1ESC8vd0FTQUFBRlFnZXVBaVlBSlFBQUFRY0J1QUR2QVRBQURBQ3dCQyt3RHR5d0dkQXdNZi8vQUZyLzdBUDdCbmtDSmdCRkFBQUJCZ0c0ZWZzQURBQ3dGeSt3TGR5d09OQXdNZi8vQUJJQUFBVkNDRDRDSmdBbEFBQUJCd0d5QU80Qk5nQU1BTEFFTDdBTzNMQVowREF4Ly84QVd2L3NBL3NIQ0FJbUFFVUFBQUVHQWJKNEFBQU1BTEFYTDdBdDNMQTQwREF4Ly84QUVnQUFCVUlJR0FJbUFDVUFBQUVIQWJFQThRRThBQXdBc0FRdnNCVGNzQmpRTURILy93QmEvK3dEK3diaUFpWUFSUUFBQVFZQnNYc0dBQXdBc0JjdnNEUGNzRGZRTURILy93QVMvcGNGUWdjY0FpWUFKUUFBQUNjQW9BRDJBVFlBQndDc0JRMEFBLy8vQUZyK213UDdCZVlDSmdCRkFBQUFKd0NnQUlBQUFBQUhBS3dFUUFBSC8vOEFsUDZlQkV3RnNBSW1BQ2tBQUFBSEFLd0V5d0FLLy84QVUvNlVCQXNFVGdJbUFFa0FBQUFIQUt3RWp3QUEvLzhBbEFBQUJFd0h3Z0ltQUNrQUFBRUhBS29FeWdGREFBa0FzQVl2c0F6Y01ERUEvLzhBVS8vc0JBc0doUUltQUVrQUFBRUhBS29FZ3dBR0FBa0FzQWd2c0I3Y01ERUEvLzhBbEFBQUJFd0hNd0ltQUNrQUFBRUhBS1FBaWdFK0FBa0FzQVl2c0JmY01ERUEvLzhBVS8vc0JBc0Y5Z0ltQUVrQUFBRUdBS1JEQVFBSkFMQUlMN0FwM0RBeEFQLy9BSlFBQUFVUEI3Z0NKZ0FwQUFBQkJ3RzNBSVFCS0FBWEFMQUFSVml3Qnk4YnNRY2ZQbG14RHduMHNCWFFNREVBLy84QVUvL3NCTWdHZkFJbUFFa0FBQUVHQWJjOTdBQU1BTEFJTDdBZzNMQWwwREF4Ly8vLzFRQUFCRXdIdFFJbUFDa0FBQUVIQWJZQWlRRXlBQmNBc0FCRldMQUdMeHV4Qmg4K1diRVBDZlN3Rk5Bd01RRC8vLytPLyt3RUN3WjVBaVlBU1FBQUFRWUJ0a0wyQUF3QXNBZ3ZzQjdjc0NYUU1ESC8vd0NVQUFBRWtnZmxBaVlBS1FBQUFRY0J0UUNJQVJvQURBQ3dCaSt3RE55d0U5QXdNZi8vQUZQLzdBUkxCcWtDSmdCSkFBQUJCZ0cxUWQ0QURBQ3dDQyt3SHR5d0pkQXdNZi8vQUpRQUFBUk1COTBDSmdBcEFBQUJCd0cwQUlrQkRBQU1BTEFHTDdBTTNMQVQwREF4Ly84QVUvL3NCQXNHb1FJbUFFa0FBQUVHQWJSQzBBQU1BTEFJTDdBZTNMQWwwREF4Ly84QWxQNmVCRXdIUGdJbUFDa0FBQUFuQUowQWlBRTlBQWNBckFUTEFBci8vd0JUL3BRRUN3WUJBaVlBU1FBQUFDWUFuVUVBQUFjQXJBU1BBQUQvL3dDakFBQUNFUWZDQWlZQUxRQUFBUWNBcWdONEFVTUFDUUN3QWkrd0JOd3dNUUQvL3dDUEFBQUIvUVorQWlZQWpBQUFBUWNBcWdOay8vOEFDUUN3QWkrd0JOd3dNUUQvL3dDVS9wb0Jwd1d3QWlZQUxRQUFBQWNBckFONEFBYi8vd0I0L3A0QmtBWFZBaVlBVFFBQUFBY0FyQU5jQUFyLy93Qm0vcFFGSGdYRUFpWUFNd0FBQUFjQXJBVWRBQUQvL3dCUC9wSUVQUVJPQWlZQVV3QUFBQWNBckFTZC8vNy8vd0JtLyt3RkhnZTdBaVlBTXdBQUFRY0FxZ1VjQVR3QUNRQ3dGQyt3SDl3d01RRC8vd0JQLyt3RVBRYUZBaVlBVXdBQUFRY0FxZ1NZQUFZQUNRQ3dCQyt3Rzl3d01RRC8vd0JtLyt3RllRZXhBaVlBTXdBQUFRY0J0d0RXQVNFQURBQ3dGQyt3SWR5d0p0QXdNZi8vQUUvLzdBVGRCbndDSmdCVEFBQUJCZ0czVXV3QURBQ3dCQyt3SGR5d0l0QXdNZi8vQUNmLzdBVWVCNjRDSmdBekFBQUJCd0cyQU5zQkt3QU1BTEFVTDdBZjNMQW0wREF4Ly8vL28vL3NCRDBHZVFJbUFGTUFBQUVHQWJaWDlnQU1BTEFFTDdBYjNMQWkwREF4Ly84QVp2L3NCUjRIM2dJbUFETUFBQUVIQWJVQTJnRVRBQXdBc0JRdnNCL2NzQ2JRTURILy93QlAvK3dFWUFhcEFpWUFVd0FBQVFZQnRWYmVBQXdBc0FRdnNCdmNzQ0xRTURILy93Qm0vK3dGSGdmV0FpWUFNd0FBQVFjQnRBRGJBUVVBREFDd0ZDK3dIOXl3SnRBd01mLy9BRS8vN0FROUJxRUNKZ0JUQUFBQkJnRzBWOUFBREFDd0JDK3dHOXl3SXRBd01mLy9BR2IrbEFVZUJ6Y0NKZ0F6QUFBQUp3Q2RBTm9CTmdBSEFLd0ZIUUFBLy84QVQvNlNCRDBHQVFJbUFGTUFBQUFtQUoxV0FBQUhBS3dFbmYvKy8vOEFXUC9zQmFvSE13SW1BSmNBQUFBSEFIVUIwd0V6Ly84QVQvL3NCTHNHQUFJbUFKZ0FBQUVIQUhVQldBQUFBQWtBc0FrdnNDWGNNREVBLy84QVdQL3NCYW9ITXdJbUFKY0FBQUFIQUVRQk5BRXovLzhBVC8vc0JMc0dBQUltQUpnQUFBRUhBRVFBdVFBQUFBa0FzQWt2c0NQY01ERUEvLzhBV1Avc0Jhb0h1QUltQUpjQUFBQUhBS29GRmdFNS8vOEFULy9zQkxzR2hRSW1BSmdBQUFFSEFLb0Vtd0FHQUFrQXNBa3ZzQ1BjTURFQS8vOEFXUC9zQmFvSEtRSW1BSmNBQUFBSEFLUUExZ0UwLy84QVQvL3NCTHNGOWdJbUFKZ0FBQUVHQUtSYkFRQUpBTEFKTDdBdTNEQXhBUC8vQUZqK2xBV3FCaTRDSmdDWEFBQUFCd0NzQlFZQUFQLy9BRS8raXdTN0JLZ0NKZ0NZQUFBQUJ3Q3NCSnIvOS8vL0FIMytsQVM5QmJBQ0pnQTVBQUFBQndDc0JQSUFBUC8vQUhmK2xBUDNCRG9DSmdCWkFBQUFCd0NzQkVFQUFQLy9BSDMvN0FTOUI3c0NKZ0E1QUFBQkJ3Q3FCUE1CUEFBSkFMQUFMN0FSM0RBeEFQLy9BSGYvN0FQM0JvVUNKZ0JaQUFBQkJ3Q3FCSkVBQmdBSkFMQUdMN0FSM0RBeEFQLy9BSDMvN0FZOUIwSUNKZ0NaQUFBQkJ3QjFBZGNCUWdBSkFMQUVMN0FiM0RBeEFQLy9BSGYvN0FVb0Jld0NKZ0NhQUFBQkJ3QjFBVmYvN0FBSkFMQUFMN0FjM0RBeEFQLy9BSDMvN0FZOUIwSUNKZ0NaQUFBQkJ3QkVBVGdCUWdBSkFMQUVMN0FaM0RBeEFQLy9BSGYvN0FVb0Jld0NKZ0NhQUFBQkJ3QkVBTGovN0FBSkFMQUFMN0FhM0RBeEFQLy9BSDMvN0FZOUI4Y0NKZ0NaQUFBQkJ3Q3FCUm9CU0FBSkFMQUVMN0FaM0RBeEFQLy9BSGYvN0FVb0JuRUNKZ0NhQUFBQkJ3Q3FCSnIvOGdBSkFMQUFMN0FhM0RBeEFQLy9BSDMvN0FZOUJ6Z0NKZ0NaQUFBQkJ3Q2tBTm9CUXdBSkFMQUVMN0FrM0RBeEFQLy9BSGYvN0FVb0JlSUNKZ0NhQUFBQkJnQ2tXdTBBQ1FDd0FDK3dKZHd3TVFELy93Qjkvb3NHUFFZQkFpWUFtUUFBQUFjQXJBVVovL2YvL3dCMy9wUUZLQVNUQWlZQW1nQUFBQWNBckFSRkFBRC8vd0FIL3FRRTFnV3dBaVlBUFFBQUFBY0FyQVRHQUJELy93QU0vZzhEMWdRNkFpWUFYUUFBQUFjQXJBVkcvM3YvL3dBSEFBQUUxZ2U3QWlZQVBRQUFBUWNBcWdUS0FUd0FDUUN3QVMrd0Nkd3dNUUQvL3dBTS9rc0QxZ2FGQWlZQVhRQUFBUWNBcWdSWkFBWUFDUUN3QVMrd0VOd3dNUUQvL3dBSEFBQUUxZ2NzQWlZQVBRQUFBUWNBcEFDS0FUY0FDUUN3QVMrd0ZOd3dNUUQvL3dBTS9rc0QxZ1gyQWlZQVhRQUFBUVlBcEJrQkFBa0FzQUV2c0J2Y01ERUFBQUlBVC8vc0JMSUdBQUFXQUNFQWpMSWZJaU1SRWptd0h4Q3dFTkFBc0JNdnNBQkZXTEFNTHh1eERCcytXYkFBUlZpd0JpOGJzUVlQUGxtd0FFVllzQUl2RzdFQ0R6NVpzaThUQVYyeUR4TUJYYklXQWhNUkVqbXdGaSt5QUFjS0sxZ2gyQnYwV2JJRURBWVJFam15RGd3R0VSSTVzQS9Rc0JZUXNCSFFzQVlRc2hvQkNpdFlJZGdiOUZtd0RCQ3lId0VLSzFnaDJCdjBXVEF4QVNNUkl5Y0dJeUlDRVRRU016SVhOU00xTXpVekZUTUJGQll6TWpjUkppTWlCZ1N5cjl3TWJiYSs2K2pEckdyNysvT3YvSkIvZFpWRlE1VjJnQVRKK3pkd2hBRXlBUWY2QVM5NDg2cU5qZnlkcGJtRkFjNkN1Ly8vQUUvK3JnU3lCZ0FBSmdCSUFBQUFKd0hlQVlVQ1FnRUhBRU1BbWY5dEFCSUFzaThjQVYyeUh4d0JjYktmSEFGZE1ESC8vd0NiL3BvRmZnV3dBaVlCNHdBQUFBY0JzQVF2QUFELy93Q1AvcG9Fd2dRNkFpWUE4QUFBQUFjQnNBTnpBQUQvL3dDVS9wb0Yyd1d3QWlZQUxBQUFBQWNCc0FTTUFBRC8vd0NHL3BvRTFRUTZBaVlBOHdBQUFBY0JzQU9HQUFELy93QXQvcG9Fc0FXd0FpWUFPQUFBQUFjQnNBSk5BQUQvL3dBai9wb0QwQVE2QWlZQTlRQUFBQWNCc0FIbUFBRC8vd0FwL3BvRklnV3dBaVlBUEFBQUFBY0JzQVBUQUFELy93QWYvcG9FSndRNkFpWUFYQUFBQUFjQnNBTFlBQUQvL3dDTy9wb0ZyUVd3QWlZQTRBQUFBQWNCc0FSZUFBRC8vd0JmL3BvRXBBUTdBaVlBK0FBQUFBY0JzQU5WQUFELy93Q08vcG9FN2dXd0FpWUE0QUFBQUFjQnNBTFBBQUQvL3dCZi9wb0Q0QVE3QWlZQStBQUFBQWNCc0FIR0FBRC8vd0NiL3BvRU53V3dBaVlBc0FBQUFBY0JzQUVIQUFELy93Q0YvcG9EVFFRNkFpWUE2d0FBQUFjQnNBRHNBQUQvL3dBVy9wb0lCUVd3QWlZQTJRQUFBQWNCc0FhMkFBRC8vd0FlL3BvR3RBUTZBaVlBN1FBQUFBY0JzQVZsQUFELy93QVcva01GdkFYRUFpWUJQd0FBQUFjQnNBTHQvNm4vLy8vTC9rWUVpd1JPQWlZQlFBQUFBQWNCc0FIMS82ei8vd0I1QUFBRCtBWUFBZ1lBVEFBQUFBTC8wQUFBQk1FRnNBQVRBQndBYnJJQUhSNFJFam13RnRBQXNBQkZXTEFRTHh1eEVCOCtXYkFBUlZpd0NpOGJzUW9QUGxteUV4QUtFUkk1c0JNdnNnQUhDaXRZSWRnYjlGbXlBaEFLRVJJNXNBSXZzQUFRc0F6UXNCTVFzQTdRc0FJUXNoUUJDaXRZSWRnYjlGbXdDaEN5RlFFS0sxZ2gyQnYwV1RBeEFTTVZJVElXRmhVVUJBY2hFU00xTXpVekZUTURFU0V5TmpVMEppY0NiZUFCS3FEdWZQN3I3LzNUd01EOTRPQUJLWUNQakh3RVI4UnV5b1hNK0FJRVI2cS92LzNIL2hLTGMyNkFBZ0FDLzlBQUFBVEJCYkFBRXdBY0FHNnlBQjBlRVJJNXNCYlFBTEFBUlZpd0VDOGJzUkFmUGxtd0FFVllzQW92RzdFS0R6NVpzaE1RQ2hFU09iQVRMN0lBQndvcldDSFlHL1Jac2dJUUNoRVNPYkFDTDdBQUVMQU0wTEFURUxBTzBMQUNFTElVQVFvcldDSFlHL1Jac0FvUXNoVUJDaXRZSWRnYjlGa3dNUUVqRlNFeUZoWVZGQVFISVJFak5UTTFNeFV6QXhFaE1qWTFOQ1luQW0zZ0FTcWc3bnorNisvOTA4REEvZURnQVNtQWo0eDhCRWZFYnNxRnpQZ0NCRWVxdjcvOXgvNFNpM051Z0FJQUFmL3dBQUFFTndXd0FBMEFTUUN3QUVWWXNBZ3ZHN0VJSHo1WnNBQkZXTEFDTHh1eEFnOCtXYklOQ0FJUkVqbXdEUyt5QUFjS0sxZ2gyQnYwV2JBRTBMQU5FTEFHMExBSUVMSUtBUW9yV0NIWUcvUlpNREVCSXhFakVTTTFNeEVoRlNFUk13S045dnlycXdPYy9XRDJBcC85WVFLZnFnSm56UDVsQUFILzRnQUFBMDBFT2dBTkFFa0FzQUJGV0xBSUx4dXhDQnMrV2JBQVJWaXdBaThic1FJUFBsbXlEUWdDRVJJNXNBMHZzZ0FIQ2l0WUlkZ2I5Rm13Qk5Dd0RSQ3dCdEN3Q0JDeUNnRUtLMWdoMkJ2MFdUQXhBU0VSSXhFak5UTVJJUlVoRlNFQ2YvNzQ4cU9qQXNqK0tnRUlBZEgrTHdIUnFnRy94UHNBQUFILzR3QUFCVVFGc0FBVUFIUUFzQUJGV0xBSUx4dXhDQjgrV2JBQVJWaXdFQzhic1JBZlBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQVRMeHV4RXc4K1diSU9DQUlSRWptd0RpK3lBUUVLSzFnaDJCdjBXYklIQ0FJUkVqbXdCeSt5QkFFS0sxZ2gyQnYwV2JBSEVMQUswTEFFRUxBTTBMSVNBUTRSRWprd01RRWpFU01SSXpVek5UTVZNeFVqRlRNQklRRUJJUUpYclB6TXpQelYxWXNCckFFMi9nd0NJUDdRQW5EOWtBUS9xc2ZIcXZNQ1pQMUgvUWtBQWYrdUFBQUVTUVlBQUJRQWRBQ3dBRVZZc0Fndkc3RUlJVDVac0FCRldMQVFMeHV4RUJzK1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNCTXZHN0VURHo1WnNnNFFBaEVTT2JBT0w3SUJBUW9yV0NIWUcvUlpzZ2NJRUJFU09iQUhMN0lFQndvcldDSFlHL1Jac0FjUXNBclFzQVFRc0F6UXNoSUJEaEVTT1RBeEFTTVJJeEVqTlRNMU14VXpGU01STXdFaEFRRWhBZlp2OHVmbjhzVEVhUUVQQVJ6K253R1AvdVlCMmY0bkJMdXFtNXVxL2VFQm52NFIvYlVBLy84QWxQNStCZDBISXdJbUFOc0FBQUFuQUtBQkhRRTlBUWNBRUFTQS84WUFFd0N3QUVWWXNBZ3ZHN0VJSHo1WnNBM2NNREVBLy84QWh2NStCT1FGMlFJbUFPOEFBQUFuQUtBQWwvL3pBUWNBRUFPSC84WUFFd0N3QUVWWXNBZ3ZHN0VJR3o1WnNBM2NNREVBLy84QWxQNStCZWtGc0FJbUFDd0FBQUFIQUJBRWpQL0cvLzhBaHY1K0JPTUVPZ0ltQVBNQUFBQUhBQkFEaHYvRy8vOEFsUDUrQnpJRnNBSW1BREVBQUFBSEFCQUYxZi9HLy84QWovNStCa0VFT2dJbUFQSUFBQUFIQUJBRTVQL0cvLzhBTGY1K0Jkd0ZzQUltQU53QUFBQUhBQkFFZi8vRy8vOEFJZjUrQk9ZRU9nSW1BUEVBQUFBSEFCQURpZi9HQUFFQUJ3QUFCTllGc0FBT0FGYXlDZzhRRVJJNUFMQUFSVml3Q0M4YnNRZ2ZQbG13QUVWWXNBc3ZHN0VMSHo1WnNBQkZXTEFDTHh1eEFnOCtXYklHQWdnUkVqbXdCaSt5QlFjS0sxZ2gyQnYwV2JBQjBMSUtDQUlSRWptd0JoQ3dEdEF3TVFFakVTTVJJelV6QVNFQkFTRUJNd1BEMWY3S2V2NW5BUmtCVHdGUEFSaitaNFlDQlAzOEFnU3FBd0w5VGdLeS9QNEFBQUVBSVA1ZkEvVUVPZ0FPQUdPeUNnOFFFUkk1QUxBQVJWaXdDQzhic1FnYlBsbXdBRVZZc0Fzdkc3RUxHejVac0FCRldMQUNMeHV4QWhFK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBUXZHN0VFRHo1WnNnWUhDaXRZSWRnYjlGbXlDZ3NBRVJJNXNBM1FzQTdRTURFRkl4RWpFU00xTXdFekV4TXpBVE1EWU56enpxTCt1L3Z6N1B2K3ZLOEIvbUFCb0tvRGtmMEJBdi84YndBQUFRQXBBQUFFNlFXd0FCRUFZd0N3QUVWWXNBc3ZHN0VMSHo1WnNBQkZXTEFPTHh1eERoOCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQVV2RzdFRkR6NVpzaEVMQWhFU09iQVJMN0lBQndvcldDSFlHL1Jac2dRTEFoRVNPYkFIMExBUkVMQUowTElOQ3dJUkVqa3dNUUVqQVNFQkFTRUJJelV6QVNFQkFTRUJNd1BiaHdHVi90bit4LzdHL3RvQmxvRnovb0lCSkFFeUFUSUJKUDZEZVFLVi9Xc0NGdjNxQXBXcUFuSDk4Z0lPL1k4QUFRQWZBQUFENkFRNkFCRUFZd0N3QUVWWXNBc3ZHN0VMR3o1WnNBQkZXTEFPTHh1eERocytXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQVV2RzdFRkR6NVpzaEVPQWhFU09iQVJMN0lBQndvcldDSFlHL1Jac2dRT0FoRVNPYkFIMExBUkVMQUowTElORGdJUkVqa3dNUUVqQVNFREF5RUJJelV6QVNFVEV5RUJNd05YbFFFbS92VFkxLzd5QVNXS2d2N3ZBUXpLemdFTy91Nk1BZGYrS1FGeS9vNEIxNm9CdWY2Y0FXVCtSLy8vQUdELzdBUU1CRTBDQmdDK0FBRC8vd0FDQUFBRU1RV3dBaVlBS2dBQUFBY0Izdjl5L21uLy93Q0JBbTBGMFFNeEFFWUJsNFVBWm1aQUFQLy9BRkVBQUFSQUJjUUNCZ0FXQUFELy93QlAvK3dFRlFYRUFnWUFGd0FBLy84QU5BQUFCRmdGc0FJR0FCZ0FBUC8vQUlILzdBUTZCYkFDQmdBWkFBRC8vd0JkLy9vRUVnWEVBQVlBSFFBQS8vOEFmZi9zQkRZRnhBQUdBQlFVQVAvL0FHci83QVR3QjBzQ0pnQXJBQUFCQndCMUFiMEJTd0FKQUxBTEw3QWgzREF4QVAvL0FGTCtWZ1FNQmdBQ0pnQkxBQUFCQndCMUFUOEFBQUFKQUxBREw3QW4zREF4QVAvL0FKUUFBQVVYQnpZQ0pnQXlBQUFCQndCRUFVd0JOZ0FUQUxBQVJWaXdCaThic1FZZlBsbXdDOXd3TVFELy93QjVBQUFEK0FZQUFpWUFVZ0FBQVFjQVJBQ3pBQUFBRXdDd0FFVllzQUF2RzdFQUd6NVpzQkxjTURFQS8vOEFFZ0FBQlVJSElRSW1BQ1VBQUFFSEFLc0Vkd0V6QUJZQXNBQkZXTEFFTHh1eEJCOCtXYkFNM0xBUTBEQXgvLzhBRGYvc0Evc0Y3QUltQUVVQUFBRUhBS3NFQWYvK0FCWUFzQUJGV0xBWEx4dXhGeHMrV2JBcjNMQXYwREF4Ly84QVNBQUFCRXdIS0FJbUFDa0FBQUVIQUtzRVBBRTZBQllBc0FCRldMQUdMeHV4Qmg4K1diQU4zTEFSMERBeC8vOEFBZi9zQkFzRjdBSW1BRWtBQUFFSEFLc0Q5Zi8rQUJZQXNBQkZXTEFJTHh1eENCcytXYkFmM0xBajBEQXgvLy8rOWdBQUFoNEhLQUltQUMwQUFBRUhBS3NDNmdFNkFCWUFzQUJGV0xBQ0x4dXhBaDgrV2JBRjNMQUowREF4Ly8vKzRnQUFBZ29GNUFJbUFJd0FBQUVIQUtzQzF2LzJBQllBc0FCRldMQUNMeHV4QWhzK1diQUYzTEFKMERBeC8vOEFadi9zQlI0SElRSW1BRE1BQUFFSEFLc0VqZ0V6QUJZQXNBQkZXTEFNTHh1eERCOCtXYkFnM0xBazBEQXgvLzhBRnYvc0JEMEY3QUltQUZNQUFBRUhBS3NFQ3YvK0FCWUFzQUJGV0xBRUx4dXhCQnMrV2JBYzNMQWcwREF4Ly84QU1nQUFCTjRISVFJbUFEWUFBQUVIQUtzRUpnRXpBQllBc0FCRldMQUVMeHV4QkI4K1diQVozTEFkMERBeC8vLy9iZ0FBQXJRRjdBSW1BRllBQUFFSEFLc0RZdi8rQUJZQXNBQkZXTEFITHh1eEJ4cytXYkFQM0xBVDBEQXgvLzhBY2Yvc0JMMEhJUUltQURrQUFBRUhBS3NFWlFFekFCWUFzQUJGV0xBSkx4dXhDUjgrV2JBUzNMQVcwREF4Ly84QUQvL3NBL2NGN0FJbUFGa0FBQUVIQUtzRUEvLytBQllBc0FCRldMQUhMeHV4QnhzK1diQVMzTEFXMERBeC8vLytyQUFBQlFJR1FRQW1BTTlrQUFBSEFLMzk1Z0FBLy84QWxQNmVCS01Gc0FJbUFDWUFBQUFIQUt3RXVRQUsvLzhBZlA2TEJESUdBQUltQUVZQUFBQUhBS3dFeS8vMy8vOEFsUDZlQk5JRnNBSW1BQ2dBQUFBSEFLd0VsQUFLLy84QVQvNlVCQU1HQUFJbUFFZ0FBQUFIQUt3RXRBQUEvLzhBbFAzNUJOSUZzQUltQUNnQUFBQUhBYUlCU1A2Uy8vOEFULzM1QkFNR0FBSW1BRWdBQUFBSEFhSUJhUDZTLy84QWxQNmVCUmdGc0FJbUFDd0FBQUFIQUt3RkpnQUsvLzhBZWY2ZUEvZ0dBQUltQUV3QUFBQUhBS3dFb1FBSy8vOEFsQUFBQlJnSE5nSW1BQzhBQUFFSEFIVUJiZ0UyQUFrQXNBUXZzQS9jTURFQS8vOEFmUUFBQkRZSFBRSW1BRThBQUFFSEFIVUJhd0U5QUFrQXNBUXZzQS9jTURFQS8vOEFsUDdmQlJnRnNBSW1BQzhBQUFBSEFLd0U2UUJMLy84QWZmN0tCRFlHQUFJbUFFOEFBQUFIQUt3RWVRQTIvLzhBbFA2ZUJDWUZzQUltQURBQUFBQUhBS3dFdVFBSy8vOEFlUDZlQVlzR0FBSW1BRkFBQUFBSEFLd0RYQUFLLy84QWxQNmVCbW9Gc0FJbUFERUFBQUFIQUt3RjFnQUsvLzhBZlA2ZUJua0VUZ0ltQUZFQUFBQUhBS3dGMlFBSy8vOEFsUDZhQlJjRnNBSW1BRElBQUFBSEFLd0ZLQUFHLy84QWVmNmVBL2dFVGdJbUFGSUFBQUFIQUt3RWpRQUsvLzhBbEFBQUJOUUhRZ0ltQURRQUFBRUhBSFVCY2dGQ0FBa0FzQU12c0JiY01ERUEvLzhBZlA1Z0JEQUY5d0ltQUZRQUFBRUhBSFVCbmYvM0FBa0FzQXd2c0IzY01ERUEvLzhBbFA2ZUJONEZzQUltQURZQUFBQUhBS3dFdWdBSy8vOEFjdjZlQXJRRVRnSW1BRllBQUFBSEFLd0RWZ0FLLy84QVN2NlVCSW9GeEFJbUFEY0FBQUFIQUt3RTFRQUEvLzhBUy82TEE4b0VUZ0ltQUZjQUFBQUhBS3dFZlAvMy8vOEFMZjZYQkxBRnNBSW1BRGdBQUFBSEFLd0V3d0FELy84QUNQNlVBbklGUVFJbUFGZ0FBQUFIQUt3RUZBQUEvLzhBRWdBQUJSMEhPQUltQURvQUFBRUhBS1FBc0FGREFBa0FzQUV2c0JMY01ERUEvLzhBRmdBQUE5b0Y3UUltQUZvQUFBRUdBS1FZK0FBSkFMQUJMN0FTM0RBeEFQLy9BQkwrbmdVZEJiQUNKZ0E2QUFBQUJ3Q3NCTzhBQ3YvL0FCYituZ1BhQkRvQ0pnQmFBQUFBQndDc0JGY0FDdi8vQUREK25nYmxCYkFDSmdBN0FBQUFCd0NzQmVZQUN2Ly9BQ0grbmdYTUJEb0NKZ0JiQUFBQUJ3Q3NCVTRBQ3YvL0FGRCtuZ1NNQmJBQ0pnQStBQUFBQndDc0JNRUFDdi8vQUZMK25nUEFCRG9DSmdCZUFBQUFCd0NzQkdNQUN2Ly8vaHovN0FWa0JkY0FKZ0F6UmdBQUJ3RmEvYlVBQVAvL0FBa0FBQVNVQlI0Q0pnRzZBQUFBQndDdC8zYiszZi8vL3lvQUFBUHhCU0VBSmdHK1BBQUFCd0N0L21UKzRQLy8vemNBQUFTa0JSd0FKZ0hCUEFBQUJ3Q3QvbkgrMi8vLy96a0FBQUd6QlNFQUpnSENQQUFBQndDdC9uUCs0UC8vLzVQLzhBUjVCUjRBSmdISUNnQUFCd0N0L3MzKzNmLy8vdWdBQUFSeUJSNEFKZ0hTUEFBQUJ3Q3QvaUwrM2YvLy82UUFBQVNPQlI0QUpnSHpDZ0FBQndDdC90NyszZi8vQUFrQUFBU1VCSTBDQmdHNkFBRC8vd0IyQUFBRUNnU05BZ1lCdXdBQS8vOEFkZ0FBQTdVRWpRSUdBYjRBQVAvL0FFRUFBQVB6QkkwQ0JnSFRBQUQvL3dCMkFBQUVhQVNOQWdZQndRQUEvLzhBaFFBQUFYY0VqUUlHQWNJQUFQLy9BSFlBQUFSb0JJMENCZ0hFQUFELy93QjJBQUFGandTTkFnWUJ4Z0FBLy84QVQvL3dCRzhFblFJR0FjZ0FBUC8vQUhZQUFBUXNCSTBDQmdISkFBRC8vd0FrQUFBRUZnU05BZ1lCelFBQS8vOEFCUUFBQkRZRWpRSUdBZElBQVAvL0FCVUFBQVJLQkkwQ0JnSFJBQUQvLy8rZEFBQUNZd1hxQWlZQndnQUFBUWNBYXY5QUFCNEFGZ0N3QUVWWXNBSXZHN0VDSFQ1WnNBdmNzQlRRTURILy93QUZBQUFFTmdYcUFpWUIwZ0FBQVFZQWFsa2VBQllBc0FCRldMQUlMeHV4Q0IwK1diQVEzTEFaMERBeC8vOEFkZ0FBQTdVRjZnSW1BYjRBQUFFR0FHcGhIZ0FXQUxBQVJWaXdCaThic1FZZFBsbXdFOXl3SE5Bd01mLy9BSFlBQUFPWEJoNENKZ0hxQUFBQkJ3QjFBU01BSGdBSkFMQUVMN0FJM0RBeEFQLy9BRDcvOEFQdkJKMENCZ0hNQUFELy93Q0ZBQUFCZHdTTkFnWUJ3Z0FBLy8vL25RQUFBbU1GNmdJbUFjSUFBQUVIQUdyL1FBQWVBQllBc0FCRldMQUNMeHV4QWgwK1diQUwzTEFVMERBeC8vOEFKUC93QTJRRWpRSUdBY01BQVAvL0FIWUFBQVJvQmg0Q0pnSEVBQUFCQndCMUFSY0FIZ0FKQUxBRUw3QVAzREF4QVAvL0FCLy83QVE1QmdRQ0pnSUJBQUFCQmdDZ2VoNEFFd0N3QUVWWXNBOHZHN0VQSFQ1WnNCUGNNREVBLy84QUNRQUFCSlFFalFJR0Fib0FBUC8vQUhZQUFBUUtCSTBDQmdHN0FBRC8vd0IyQUFBRGx3U05BZ1lCNmdBQS8vOEFkZ0FBQTdVRWpRSUdBYjRBQVAvL0FIWUFBQVJ1QmdRQ0pnSCtBQUFCQndDZ0FMb0FIZ0FUQUxBQVJWaXdDQzhic1FnZFBsbXdEZHd3TVFELy93QjJBQUFGandTTkFnWUJ4Z0FBLy84QWRnQUFCR2dFalFJR0FjRUFBUC8vQUUvLzhBUnZCSjBDQmdISUFBRC8vd0IyQUFBRVlnU05BZ1lCN3dBQS8vOEFkZ0FBQkN3RWpRSUdBY2tBQVAvL0FFLy84QVJEQkowQ0JnRzhBQUQvL3dBa0FBQUVGZ1NOQWdZQnpRQUEvLzhBRlFBQUJFb0VqUUlHQWRFQUFBQUJBRUwrT1FQbkJKMEFLQUNrc2ljcEtoRVNPUUN3Rnkrd0FFVllzQW92RzdFS0hUNVpzQUJGV0xBWkx4dXhHUTgrV2JBS0VMSURBUW9yV0NIWUcvUlpzZ1lLR1JFU09iSW5HUW9SRWptd0p5K3lYeWNCY3JJL0p3RnhzczhuQVhHeS95Y0JjYklQSndGeXRHOG5meWNDY2JTdko3OG5BbDJ5anljQmNySy9Kd0Z5c2lRQkNpdFlJZGdiOUZteUVDUW5FUkk1c0JrUXNCYlFzaDBaQ2hFU09iQVpFTElmQVFvcldDSFlHL1JaTURFQk5DWWpJZ1lWSXpRMk16SVdGUlFHQnhZV0ZSUUdCeEVqRVNZbU5UTVdNekkyTlRRbkl6VXpOZ0xpY0d0Ylp2UHp3OWowYmwxdmJydXM4NXV3OHd2S2QzVGdsSnJIQTBOR1QwWThsTE9ubGx1S0p5U1JXNGF1R1A1QkFjSVlySWVUVjBpbUE3QUVBQUFCQUhiK21nVXNCSTBBRHdDb3NnTVFFUkVTT1FDd0FFVllzQXd2RzdFTUhUNVpzQUJGV0xBSkx4dXhDUjArV2JBQVJWaXdBUzhic1FFWFBsbXdBRVZZc0FZdkc3RUdEejVac0FCRldMQURMeHV4QXc4K1diSUtCZ2tSRWptd0NpKzByd3EvQ2dKZHNqOEtBWEd5endvQmNiSS9DZ0Z5c3Y4S0FYR3lEd29CY3JSdkNuOEtBbkcwM3dydkNnSmR0QjhLTHdvQ1hiSmZDZ0Z5c2dVQkNpdFlJZGdiOUZtd0F4Q3lEZ2NLSzFnaDJCdjBXVEF4QVNNUkl4RWhFU01STXhFaEVUTVJNd1VzODhUOTlQUHpBZ3p6eFA2YUFXWUIyLzRsQkkzK0VRSHYvQ2dBQVFCUC9rTUVRd1NkQUI0QVhySWJIeUFSRWprQXNBQkZXTEFPTHh1eERoMCtXYkFBUlZpd0JDOGJzUVFSUGxtd0FFVllzQU12RzdFRER6NVpzQWJRc2hJT0F4RVNPYkFPRUxJVkFRb3JXQ0hZRy9SWnNBTVFzaHNCQ2l0WUlkZ2I5Rm15SGdNT0VSSTVNREVCQmdZSEVTTVJKZ0luTlRRMk5qTXlCQmNqSmlZaklCRVZGQll6TWpZM0JFSU14cW56dGM4QmZ1eWMxZ0VFRlBNTWZYTCs3WWFIZUh3TkFZU2YwQnYrU1FHNUpBRWYzVStwLzRyYXduQnAvbzVJdWJWaWNQLy9BQVVBQUFRMkJJMENCZ0hTQUFELy93QUsvam9GcUFTakFpWUNGd0FBQUFjQnNBTG0vNkQvL3dCMkFBQUViZ1hTQWlZQi9nQUFBUWNBY0FDQ0FDSUFDUUN3QUMrd0N0d3dNUUQvL3dBZi8rd0VPUVhTQWlZQ0FRQUFBUVlBY0VJaUFBa0FzQUl2c0JEY01ERUEvLzhBVUFBQUJVMEVqUUlHQWZFQUFQLy9BQkwrVlFWQ0JiQUNKZ0FsQUFBQUJ3Q2pBWUlBQS8vL0FGcitXUVA3QkU0Q0pnQkZBQUFBQndDakFMVUFCLy8vQUpUK1hBUk1CYkFDSmdBcEFBQUFCd0NqQVVBQUN2Ly9BRlArVWdRTEJFNENKZ0JKQUFBQUJ3Q2pBUVFBQVAvL0FIaituZ0dMQkRvQ0pnQ01BQUFBQndDc0Exd0FDZ0FBQUE4QXVnQURBQUVFQ1FBQUFGNEFBQUFEQUFFRUNRQUJBQm9BWGdBREFBRUVDUUFDQUE0QWVBQURBQUVFQ1FBREFCb0FYZ0FEQUFFRUNRQUVBQm9BWGdBREFBRUVDUUFGQUN3QWhnQURBQUVFQ1FBR0FCb0FzZ0FEQUFFRUNRQUhBRUFBekFBREFBRUVDUUFKQUF3QkRBQURBQUVFQ1FBTEFCUUJHQUFEQUFFRUNRQU1BQ1lCTEFBREFBRUVDUUFOQUZ3QlVnQURBQUVFQ1FBT0FGUUJyZ0FEQUFFRUNRQVFBQXdDQWdBREFBRUVDUUFSQUF3Q0RnQkRBRzhBY0FCNUFISUFhUUJuQUdnQWRBQWdBRElBTUFBeEFERUFJQUJIQUc4QWJ3Qm5BR3dBWlFBZ0FFa0FiZ0JqQUM0QUlBQkJBR3dBYkFBZ0FGSUFhUUJuQUdnQWRBQnpBQ0FBVWdCbEFITUFaUUJ5QUhZQVpRQmtBQzRBVWdCdkFHSUFid0IwQUc4QUlBQk5BR1VBWkFCcEFIVUFiUUJTQUdVQVp3QjFBR3dBWVFCeUFGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeUFDNEFNQUF3QURFQU1RQTFBRElBT3dBZ0FESUFNQUF4QURRQVVnQnZBR0lBYndCMEFHOEFMUUJOQUdVQVpBQnBBSFVBYlFCU0FHOEFZZ0J2QUhRQWJ3QWdBR2tBY3dBZ0FHRUFJQUIwQUhJQVlRQmtBR1VBYlFCaEFISUFhd0FnQUc4QVpnQWdBRWNBYndCdkFHY0FiQUJsQUM0QVJ3QnZBRzhBWndCc0FHVUFSd0J2QUc4QVp3QnNBR1VBTGdCakFHOEFiUUJEQUdnQWNnQnBBSE1BZEFCcEFHRUFiZ0FnQUZJQWJ3QmlBR1VBY2dCMEFITUFid0J1QUV3QWFRQmpBR1VBYmdCekFHVUFaQUFnQUhVQWJnQmtBR1VBY2dBZ0FIUUFhQUJsQUNBQVFRQndBR0VBWXdCb0FHVUFJQUJNQUdrQVl3QmxBRzRBY3dCbEFDd0FJQUJXQUdVQWNnQnpBR2tBYndCdUFDQUFNZ0F1QURBQWFBQjBBSFFBY0FBNkFDOEFMd0IzQUhjQWR3QXVBR0VBY0FCaEFHTUFhQUJsQUM0QWJ3QnlBR2NBTHdCc0FHa0FZd0JsQUc0QWN3QmxBSE1BTHdCTUFFa0FRd0JGQUU0QVV3QkZBQzBBTWdBdUFEQUFVZ0J2QUdJQWJ3QjBBRzhBVFFCbEFHUUFhUUIxQUcwQUF3QUFBQUFBQVA5cUFHUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFJQUNBQUMvLzhBRHdBQkFBQUFDZ0JjQUt3QUJFUkdURlFBR21ONWNtd0FLR2R5WldzQU5teGhkRzRBUkFBRUFBQUFBUC8vQUFJQUFBQUVBQVFBQUFBQS8vOEFBZ0FCQUFVQUJBQUFBQUQvL3dBQ0FBSUFCZ0FFQUFBQUFQLy9BQUlBQXdBSEFBaGpjSE53QURKamNITndBRGhqY0hOd0FENWpjSE53QUVSclpYSnVBRXByWlhKdUFFcHJaWEp1QUVwclpYSnVBRW9BQUFBQkFBRUFBQUFCQUFNQUFBQUJBQUlBQUFBQkFBQUFBQUFCQUFRQUJRQU1BQXdBREFBTUFkNEFBUUFBQUFFQUNBQUJBQW9BQlFBa0FFZ0FBUURlQUFnQUpRQW1BQ2NBS0FBcEFDb0FLd0FzQUMwQUxnQXZBREFBTVFBeUFETUFOQUExQURZQU53QTRBRGtBT2dBN0FEd0FQUUErQUdVQVp3Q1NBTEFBc1FDeUFMTUF0QUMxQUxZQXR3QzRBTGtBMFFEU0FOTUExQURWQU5ZQTF3RFlBTmtBMmdEYkFOd0EzUURlQU44QTRBRGhBT0lBNHdEa0FPVUE1Z0RuQU9nQkxBRXdBVElCT0FFNkFUd0JQZ0UvQVVVQlJnRi9BWVVCaWdHTkFrWUNSd0pKQWtzQ1RBSk5BazRDVHdKUUFsRUNVZ0pUQWxRQ1ZRSldBbGNDV0FKWkFsb0NXd0pjQWwwQ1hnSmZBbUFDWVFKaUFtTUNaQUpsQW9JQ2hBS0dBb2dDaWdLTUFvNENrQUtTQXBRQ2xnS1lBcG9DbkFLZUFxQUNvZ0trQXFZQ3FBS3FBcXdDcmdLeEFyTUN0UUszQXJrQ3V3SzlBcjhDd1FMRUFzWUN5QUxLQXN3Q3pnTFFBdElDMUFMWUF0b0MzQUxlQXVBQzRnTGtBdVlDNkFMcUF1d0M3Z0x3QXZFQzh3TDFBMUlEVXdOVUExVURWZ05YQTFnRFdnTmJBMXdEWFFOZUExOERZQU5oQTJNRFpBTmxBMllEWndOb0Eya0RlUU42QTNzRGZBTjlBMzREZndPQUE0RURnZ09EQTRRRGhRT0dBNGNEaUFPSkE0b0Rpd09NQTQwRGpnTzZBN3dEdmdQVEE5a0Qzd1JJQkVvRVRnUldCRmdFWFFScEFBSUFBQUFDQUFvN3VnQUJBMndBQkFBQUFiRUdzamFlTnA0RzNBY3lOMEEyVERiS080bzMyQWM0T3Q0NjNqZ2VPb3cxNmpyZU90NDdpalpXQ25JSzlEZytPQjQycERaNE9USTdBRFlxQzE0M3RqYmNOKzRMb0F6S0ROUTVsam1XTi9nMjNEWVlEY280SkE0c09aQTRKQTVHTnR3T2lEbktOMEE3aWpkQUR3SVAvQkQ2RWRnU2RqZ2tFbnc1bGhVNkZ4UVlKaGhBR0VZWVRCcEdHa3dhZ2hxMEd6SWNxQjVhSUJnNjNpRk9JdUE1TWlVdU90NDYzamIyT3Q0NjNpWDRKNUk1b0Nod0tUSXB3Q29lS3ZnNUtDdUNPWkFzVEN4MkxkdzIzREJpTUtBeDBqT1FOdHd5VkRMYU13UXpXak9RTjBBMytEYWtPQ1F6dGpiY09jbzVLRHFNT293NUtEYWVNK0EybmphZU5wNDFValY0TllJMWpEV3FOYncxempYZ05zbzdpanVLTzRvN2lqZytOMEEzUURkQU4wQTNRRGRBTjBBMnlqZllOOWczMkRmWU90NDYzanJlT3Q0NjNqdUtPNG83aWp1S080bzRIamdlT0I0NEhqc0FON1kzdGplMk43WTN0amUyTjdZMzdqZnVOKzQzN2ptV04vZzMrRGY0Ti9nMytEZ2tPQ1EzUURlMk4wQTN0amRBTjdZMnlqYktOc28yeWp1S045ZzM3amZZTis0MzJEZnVOOWczN2pmWU4rNDYzam1XT3Q0NjNqcmVPdDQ2M2pnZU9vdzE2alhxTmVvMTZqcmVPWlk2M2ptV090NDVsam1XTzRvMytEdUtOL2c3aWpmNE5oZzJHRFlZT0Q0NFBqZytPQjQ0SGpnZU9CNDRIamdlTm5nN0FEZ2tPd0EyS2pZcU5pbzNRRGZZT3Q0NjNqdUtPd0EzUURaTU45ZzJLanJlT3Q0NmpEcmVPdDQ3aWpaV09ENDdBRGt5T3Q0N0FEbVdOL2c0SkRmNE45ZzV5anJlT3Q0NEhqcU1Pb3cyOWpkQU5rdzV5amZZT3Q0NjNqdUtObFkyeWpnK09USTN0amZ1Ti9nMjNEZ2tPWkEzN2prb09DUTJlRFo0Tm5nN0FEZ2tOcDQybmphZU90NDVsamRBTjdZMzJEZnVOcVE0SkRiS093QTRKRHJlT1RJNWtEcmVOMEEzdGpkQU43WTMyRGZ1Tis0Mzdqa3lPWkE3aWpmNE4vZzIzRGIyT0NRMjlqZ2tOdlk0SkRreU9aQTNRRGUyTjBBM3RqZEFON1kzUURlMk4wQTN0amRBTjdZM1FEZTJOMEEzdGpkQU43WTNRRGUyTjBBM3RqZEFON1kzMkRmdU45ZzM3amZZTis0MzJEZnVOOWczN2pmWU4rNDMyRGZ1TjlnMzdqcmVPdDQ3aWpmNE80bzMrRHVLTi9nN2lqZjRPNG8zK0R1S04vZzdpamY0Ti9nNEhqZ2VPd0E0SkRzQU9DUTdBRGdrT293NjNqZytPVEk1a0RuS09TZzVNam1RT1pZNW9EbktPb3c2M2pyZU93QTdpZ0FDQUlzQUJBQUVBQUFBQmdBR0FBRUFDd0FNQUFJQUV3QVRBQVFBSlFBcUFBVUFMQUEyQUFzQU9BQS9BQllBUlFCR0FCNEFTUUJLQUNBQVRBQk1BQ0lBVHdCUEFDTUFVUUJVQUNRQVZnQldBQ2dBV0FCWUFDa0FXZ0JkQUNvQVh3QmZBQzRBaWdDS0FDOEFuQUNjQURBQXNBQzBBREVBdGdDNEFEWUF1Z0M2QURrQXZBQzhBRG9BdndEQUFEc0F3Z0RDQUQwQXhBREVBRDRBeGdETkFEOEEwUURSQUVjQTB3RGRBRWdBM3dEZkFGTUE0UURqQUZRQTVRRHVBRmNBOEFEd0FHRUE5UUQzQUdJQStnRDdBR1VBL1FEL0FHY0JBZ0VFQUdvQkNRRUpBRzBCREFFTUFHNEJGd0VaQUc4QklRRWhBSElCS3dFdEFITUJNQUV3QUhZQk1nRXlBSGNCU1FGSkFIZ0JiQUZ0QUhrQmJ3RnhBSHNCdWdHNkFINEJ2UUc5QUg4QnhBSEZBSUFCeUFISUFJSUJ5Z0hMQUlNQnpRSE5BSVVDS0FJb0FJWUNLZ0lyQUljQ1JnSkhBSWtDU1FKSkFJc0NTd0pzQUl3Q2JnSnhBSzRDZGdKN0FMSUNnQUtJQUxnQ2lnS0tBTUVDakFLTUFNSUNqZ0tPQU1NQ2tBS1FBTVFDa2dLYkFNVUNwQUttQU04Q3FBS29BTklDcWdLcUFOTUNyQUtzQU5RQ3JnS3VBTlVDc1FLeEFOWUNzd0t6QU5jQ3RRSzFBTmdDdHdLM0FOa0N1UUs1QU5vQ3V3SzdBTnNDdlFMSkFOd0N5d0xMQU9rQ3pRTE5BT29DendMUEFPc0MyZ0xhQU93QzNBTGNBTzBDM2dMZUFPNEM0QUxnQU84QzRnTGlBUEFDNUFMa0FQRUM1Z0xtQVBJQzZBTG9BUE1DNmdMcUFQUUM3QUxzQVBVQzdnTHhBUFlDOHdMekFQb0M5UUwxQVBzRFVnTlhBUHdEV2dOcEFRSURiQU5zQVJJRGNBTndBUk1EY2dOeUFSUURkZ04yQVJVRGVRTjZBUllEZkFPRkFSZ0Rod09KQVNJRGl3T1FBU1VEa2dPVEFTc0RsUU9ZQVMwRG5nT2ZBVEVEb1FPaEFUTURvd09qQVRRRHBRT29BVFVEcXdPd0FUa0RzZ095QVQ4RHRnTzNBVUFEdkFPOEFVSUR2Z1BIQVVNRHlnUExBVTBEelFQUUFVOEQxd1BZQVZNRDNBUGNBVlVEM2dQa0FWWUQ2UVBxQVYwRDdnUVdBVjhFR0FRWUFZZ0VHZ1FuQVlrRUx3UXZBWmNFTWdReUFaZ0VOQVEwQVprRVFBUkZBWm9FU0FSSUFhQUVTZ1JLQWFFRVRBUk1BYUlFVGdSUEFhTUVWQVJYQWFVRVdnUmFBYWtFWEFSZEFhb0VYd1JmQWF3RVl3UmpBYTBFWlFSbEFhNEVhUVJwQWE4RXFRU3BBYkFBQ2dBNC84UUEwZi9FQU5YL3hBRXkvOFFCT3YvRUF0ci94QUxjLzhRQzN2L0VBNDMveEFSTS84UUFGUUE2QUJRQU93QW1BRDBBRmdFWUFCUUNaUUFXQXV3QUpnTHVBQllDOEFBV0ExY0FGZ05tQUJZRGFRQVdBNThBSmdPaEFDWURvd0FtQTZVQUZnTzJBQlFEdmdBV0JFQUFGZ1JDQUJZRVJBQVdCR2tBRmdBQkFCUC9DQURPQUJEKzdnQVMvdTRBSmY5QUFDNy9NQUE0QUJRQVJmL2VBRWYvNndCSS8rc0FTZi9yQUV2LzZ3QlQvK3NBVmYvckFGYi81Z0JaLytvQVd2L29BRjMvNkFDVC8rc0FtUC9yQUpyLzZnQ3gvMEFBcy85QUFMci82d0M4LytnQXgvL3JBTWovNndESy8rb0EwUUFVQU5VQUZBRDIvK3NCQXYvckFRei9RQUVYLytzQkdmL29BUjMvNndFaC8rc0JNZ0FVQVRuLzZ3RTZBQlFCUy8vckFVei82d0ZXLytzQmJ2N3VBWEwrN2dGMi91NEJkLzd1QWJyL3dBSkwvMEFDVFA5QUFrMy9RQUpPLzBBQ1QvOUFBbEQvUUFKUi8wQUNadi9lQW1mLzNnSm8vOTRDYWYvZUFtci8zZ0pyLzk0Q2JQL2VBbTMvNndKdS8rc0NiLy9yQW5ELzZ3SngvK3NDZC8vckFuai82d0o1LytzQ2V2L3JBbnYvNndKOC8rb0NmZi9xQW43LzZnSi8vK29DZ1Avb0FvSC82QUtDLzBBQ2cvL2VBb1QvUUFLRi85NENodjlBQW9mLzNnS0ovK3NDaS8vckFvMy82d0tQLytzQ2tmL3JBcFAvNndLVi8rc0NsLy9yQXBuLzZ3S2IvK3NDbmYvckFwLy82d0toLytzQ28vL3JBckgvTUFMRi8rc0N4Ly9yQXNuLzZ3TGFBQlFDM0FBVUF0NEFGQUxoLytvQzQvL3FBdVgvNmdMbi8rb0M2Zi9xQXV2LzZnTHYvK2dEVXY5QUExci9RQU5xLytzRGJ2L3FBM0QvNndOeS8rZ0RkZi9xQTNiLzZ3TjMvK29EZnY4d0E0TC9RQU9OQUJRRGovL2VBNUQvNndPUy8rc0RsUC9yQTVYLzZBT1gvK3NEbnYvb0E2Yi82QU91LzBBRHIvL2VBN0wvNndPMy8rZ0R1UC9yQTczLzZ3Ty8vK2dEeFA5QUE4WC8zZ1BHLzBBRHgvL2VBOHYvNndQTi8rc0R6di9yQTlqLzZ3UGEvK3NEM1AvckErRC82QVBpLytnRDVQL29BK3YvNndQdS8wQUQ3Ly9lQS9EL1FBUHgvOTREOHY5QUEvUC8zZ1AwLzBBRDlmL2VBL2IvUUFQMy85NEQrUDlBQS9uLzNnUDYvMEFEKy8vZUEvei9RQVA5Lzk0RC92OUFBLy8vM2dRQS8wQUVBZi9lQkFML1FBUUQvOTRFQlA5QUJBWC8zZ1FILytzRUNmL3JCQXYvNndRTi8rc0VELy9yQkJILzZ3UVQvK3NFRmYvckJCdi82d1FkLytzRUgvL3JCQ0gvNndRai8rc0VKZi9yQkNmLzZ3UXAvK3NFSy8vckJDMy82d1F2LytzRU1mL3JCRFAvNmdRMS8rb0VOLy9xQkRuLzZnUTcvK29FUGYvcUJELy82Z1JCLytnRVEvL29CRVgvNkFSTUFCUUFJQUE0Lzk4QU92L2tBRHYvN0FBOS85MEEwZi9mQU5YLzN3RVkvK1FCTXYvZkFUci8zd0c2QUE0Q1pmL2RBdHIvM3dMYy85OEMzdi9mQXV6LzdBTHUvOTBDOFAvZEExZi8zUU5tLzkwRGFmL2RBNDMvM3dPZi8rd0RvZi9zQTZQLzdBT2wvOTBEdHYva0E3Ny8zUVJBLzkwRVF2L2RCRVQvM1FSTS85OEVhZi9kQUJvQU9QL09BRHIvN1FBOS85QUEwZi9PQU5YL3pnRVkvKzBCTXYvT0FUci96Z0psLzlBQzJ2L09BdHovemdMZS84NEM3di9RQXZELzBBTlgvOUFEWnYvUUEybi8wQU9OLzg0RHBmL1FBN2IvN1FPKy85QUVRUC9RQkVMLzBBUkUvOUFFVFAvT0JHbi8wQUFRQUM3LzdnQTUvKzRDWWYvdUFtTC83Z0pqLys0Q1pQL3VBckgvN2dMZy8rNEM0di91QXVULzdnTG0vKzRDNlAvdUF1ci83Z04rLys0RU12L3VCRFQvN2dCS0FBWUFFQUFMQUJBQURRQVVBRUVBRWdCSC8rZ0FTUC9vQUVuLzZBQkwvK2dBVmYvb0FHRUFFd0NULytnQW1QL29BTHIvNkFESC8rZ0F5UC9vQVBiLzZBRUMvK2dCSGYvb0FTSC82QUU1LytnQlMvL29BVXovNkFGVy8rZ0JiQUFRQVcwQUVBRnZBQkFCY0FBUUFYRUFFQUp0LytnQ2J2L29BbS8vNkFKdy8rZ0NjZi9vQW9uLzZBS0wvK2dDamYvb0FvLy82QUtSLytnQ2svL29BcFgvNkFLWC8rZ0NtZi9vQXB2LzZBS2QvK2dDbi8vb0FxSC82QUtqLytnRGF2L29BNUQvNkFPVS8rZ0RsLy9vQTZjQUVBT29BQkFEcXdBUUE3TC82QU80LytnRHZmL29BOHYvNkFQTi8rZ0R6di9vQTlyLzZBUHIvK2dFQi8vb0JBbi82QVFMLytnRURmL29CQS8vNkFRUi8rZ0VFLy9vQkJYLzZBUXAvK2dFSy8vb0JDMy82QVF4LytnQUFnRDEvOVlCYmYrWUFEMEFSLy9zQUVqLzdBQkovK3dBUy8vc0FGWC83QUNULyt3QW1QL3NBTHIvN0FESC8rd0F5UC9zQVBiLzdBRUMvK3dCSGYvc0FTSC83QUU1Lyt3QlMvL3NBVXovN0FGVy8rd0NiZi9zQW03LzdBSnYvK3dDY1Avc0FuSC83QUtKLyt3Q2kvL3NBbzMvN0FLUC8rd0NrZi9zQXBQLzdBS1YvK3dDbC8vc0Fwbi83QUtiLyt3Q25mL3NBcC8vN0FLaC8rd0NvLy9zQTJyLzdBT1EvK3dEbFAvc0E1Zi83QU95Lyt3RHVQL3NBNzMvN0FQTC8rd0R6Zi9zQTg3LzdBUGEvK3dENi8vc0JBZi83QVFKLyt3RUMvL3NCQTMvN0FRUC8rd0VFZi9zQkJQLzdBUVYvK3dFS2Yvc0JDdi83QVF0Lyt3RU1mL3NBQmdBVS8vaUFSZi80Z0Z0QUJnQ2QvL2lBbmovNGdKNS8rSUNldi9pQW52LzRnTEYvK0lDeC8vaUFzbi80Z053LytJRGR2L2lBNUwvNGdQWS8rSUQzUC9pQkJ2LzRnUWQvK0lFSC8vaUJDSC80Z1FqLytJRUpmL2lCQ2YvNGdRdi8rSUFCZ0FRLzRRQUV2K0VBVzcvaEFGeS80UUJkditFQVhmL2hBQVFBQzcvN0FBNS8rd0NZZi9zQW1MLzdBSmovK3dDWlAvc0FySC83QUxnLyt3QzR2L3NBdVQvN0FMbS8rd0M2UC9zQXVyLzdBTisvK3dFTXYvc0JEVC83QUFlQUFiLzhnQUwvL0lBV3YvekFGMy84d0M4Ly9NQTlmLzFBUm4vOHdGcy8vSUJiZi95QVcvLzhnRncvL0lCY2YveUFvRC84d0tCLy9NQzcvL3pBM0wvOHdPVi8vTURudi96QTZiLzh3T24vL0lEcVAveUE2di84Z08zLy9NRHYvL3pBK0QvOHdQaS8vTUQ1UC96QkVILzh3UkQvL01FUmYvekFENEFKLy96QUN2Lzh3QXovL01BTmYvekFJUC84d0NTLy9NQWwvL3pBTEwvOHdEREFBMEEwdi96QVFmLzh3RVcvL01CR3YvekFSei84d0VlLy9NQklQL3pBVGovOHdGVi8vTUNLUC96QWluLzh3SXIvL01DTFAvekFsTC84d0pjLy9NQ1hmL3pBbDcvOHdKZi8vTUNZUC96QW9qLzh3S0svL01DalAvekFvNy84d0tjLy9NQ252L3pBcUQvOHdLaS8vTUN4UC96QXNiLzh3TEkvL01DK2YvekExYi84d05qLy9NRGlmL3pBNHovOHdPNS8vTUR2UC96QTlmLzh3UFovL01EMi8vekJCci84d1FjLy9NRUh2L3pCQ0QvOHdRaS8vTUVKUC96QkNiLzh3UW8vL01FS3YvekJDei84d1F1Ly9NRU1QL3pCS24vOHdBL0FDZi81Z0FyLytZQU0vL21BRFgvNWdDRC8rWUFrdi9tQUpmLzVnQ3kvK1lBdC8vQ0FNTUFFQURTLytZQkIvL21BUmIvNWdFYS8rWUJIUC9tQVI3LzVnRWcvK1lCT1AvbUFWWC81Z0lvLytZQ0tmL21BaXYvNWdJcy8rWUNVdi9tQWx6LzVnSmQvK1lDWHYvbUFsLy81Z0pnLytZQ2lQL21Bb3IvNWdLTS8rWUNqdi9tQXB6LzVnS2UvK1lDb1AvbUFxTC81Z0xFLytZQ3h2L21Bc2ovNWdMNS8rWURWdi9tQTJQLzVnT0ovK1lEalAvbUE3bi81Z084LytZRDEvL21BOW4vNWdQYi8rWUVHdi9tQkJ6LzVnUWUvK1lFSVAvbUJDTC81Z1FrLytZRUp2L21CQ2ovNWdRcS8rWUVMUC9tQkM3LzVnUXcvK1lFcWYvbUFEY0FKZi9rQUR6LzBnQTkvOU1Bc2Yva0FMUC81QURELytJQTJmL1NBUXovNUFKTC8rUUNUUC9rQWszLzVBSk8vK1FDVC8va0FsRC81QUpSLytRQ1pmL1RBb0wvNUFLRS8rUUNodi9rQXU3LzB3THcvOU1EVXYva0ExZi8wd05hLytRRFp2L1RBMmYvMGdOcC85TURndi9rQTQ3LzBnT2wvOU1EcnYva0E3Ny8wd1BCLzlJRHhQL2tBOGIvNUFQUC85SUQ2Zi9TQSs3LzVBUHcvK1FEOHYva0EvVC81QVAyLytRRCtQL2tBL3IvNUFQOC8rUUQvdi9rQkFELzVBUUMvK1FFQlAva0JFRC8wd1JDLzlNRVJQL1RCRTcvMGdSVy85SUVhZi9UQUNjQUVQOUdBQkwvUmdBbC84MEFzZi9OQUxQL3pRREcvL0lCRFAvTkFXNy9SZ0Z5LzBZQmR2OUdBWGYvUmdKTC84MENUUC9OQWszL3pRSk8vODBDVC8vTkFsRC96UUpSLzgwQ2d2L05Bb1QvelFLRy84MERVdi9OQTFyL3pRT0MvODBEcnYvTkE4VC96UVBHLzgwRDd2L05BL0QvelFQeS84MEQ5UC9OQS9iL3pRUDQvODBEK3YvTkEvei96UVArLzgwRUFQL05CQUwvelFRRS84MEFBUUREQUE0QXJ3QkgvOXdBU1AvY0FFbi8zQUJMLzl3QVVmL0JBRkwvd1FCVC85WUFWUC9CQUZYLzNBQlovOTBBV3YvaEFGMy80UUNULzl3QW1QL2NBSnIvM1FDNi85d0F2UC9oQUw3LzVnREEvOEVBd2YvckFNTC82UURFLy9BQXhmL25BTWYvM0FESS85d0F5Zi9qQU1yLzNRREwvODRBelAvVUFNMy8yd0RyLzhFQTcvL0JBUEQvd1FEeS84RUE4Ly9CQVBUL3dRRDIvOXdBOS8vQkFQbi93UUQ2LzhFQS9mL0JBUC8vd1FFQy85d0JCUC9CQVJmLzFnRVovK0VCSGYvY0FTSC8zQUUxLzhFQk9mL2NBVVQvd1FGSi84RUJTLy9jQVV6LzNBRlcvOXdDYmYvY0FtNy8zQUp2Lzl3Q2NQL2NBbkgvM0FKMi84RUNkLy9XQW5qLzFnSjUvOVlDZXYvV0Fudi8xZ0o4LzkwQ2ZmL2RBbjcvM1FKLy85MENnUC9oQW9ILzRRS0ovOXdDaS8vY0FvMy8zQUtQLzl3Q2tmL2NBcFAvM0FLVi85d0NsLy9jQXBuLzNBS2IvOXdDbmYvY0FwLy8zQUtoLzl3Q28vL2NBcjcvd1FMQS84RUN3di9CQXNQL3dRTEYvOVlDeC8vV0Fzbi8xZ0xoLzkwQzQvL2RBdVgvM1FMbi85MEM2Zi9kQXV2LzNRTHYvK0VEYXYvY0Eyei93UU51LzkwRGNQL1dBM0wvNFFOMS85MERkdi9XQTNmLzNRT1EvOXdEa2YvQkE1TC8xZ09ULzhFRGxQL2NBNVgvNFFPWC85d0RtUC9CQTUzL3dRT2UvK0VEcHYvaEE2My93UU95Lzl3RHMvL0JBN2YvNFFPNC85d0R2Zi9jQTcvLzRRUEwvOXdEemYvY0E4Ny8zQVBVLzhFRDF2L0JBOWovMWdQYS85d0QzUC9XQStELzRRUGkvK0VENVAvaEErai93UVByLzl3RUIvL2NCQW4vM0FRTC85d0VEZi9jQkEvLzNBUVIvOXdFRS8vY0JCWC8zQVFiLzlZRUhmL1dCQi8vMWdRaC85WUVJLy9XQkNYLzFnUW4vOVlFS2YvY0JDdi8zQVF0Lzl3RUwvL1dCREgvM0FRei85MEVOZi9kQkRmLzNRUTUvOTBFTy8vZEJEMy8zUVEvLzkwRVFmL2hCRVAvNFFSRi8rRUVTZi9CQkV2L3dRUlYvOEVFWXYvQkJHVC93UVJtLzhFQWRnQUcvOW9BQy8vYUFFZi84QUJJLy9BQVNmL3dBRXYvOEFCVi8vQUFXZi92QUZyLzNBQmQvOXdBay8vd0FKai84QUNhLys4QXV2L3dBTHovM0FEQi8rd0F3d0FQQU1YLzZnREgvL0FBeVAvd0FNbi96Z0RLLys4QXkvL25BUGIvOEFFQy8vQUJHZi9jQVIzLzhBRWgvL0FCT2Yvd0FVdi84QUZNLy9BQlZ2L3dBV3ovMmdGdC85b0JiLy9hQVhELzJnRngvOW9DYmYvd0FtNy84QUp2Ly9BQ2NQL3dBbkgvOEFKOC8rOENmZi92QW43Lzd3Si8vKzhDZ1AvY0FvSC8zQUtKLy9BQ2kvL3dBbzMvOEFLUC8vQUNrZi93QXBQLzhBS1YvL0FDbC8vd0Fwbi84QUtiLy9BQ25mL3dBcC8vOEFLaC8vQUNvLy93QXVILzd3TGovKzhDNWYvdkF1Zi83d0xwLys4QzYvL3ZBdS8vM0FOcS8vQURidi92QTNMLzNBTjEvKzhEZC8vdkE1RC84QU9VLy9BRGxmL2NBNWYvOEFPZS85d0Rwdi9jQTZmLzJnT28vOW9EcS8vYUE3TC84QU8zLzl3RHVQL3dBNzMvOEFPLy85d0R5Ly93QTgzLzhBUE8vL0FEMnYvd0ErRC8zQVBpLzl3RDVQL2NBK3YvOEFRSC8vQUVDZi93QkF2LzhBUU4vL0FFRC8vd0JCSC84QVFULy9BRUZmL3dCQ24vOEFRci8vQUVMZi93QkRILzhBUXovKzhFTmYvdkJEZi83d1E1Lys4RU8vL3ZCRDMvN3dRLy8rOEVRZi9jQkVQLzNBUkYvOXdBUkFBUUFBd0FFZ0FNQUVmLzV3QkkvK2NBU2YvbkFFdi81d0JWLytjQWsvL25BSmovNXdDNi8rY0F3d0FQQU1mLzV3REkvK2NBOXYvbkFRTC81d0VkLytjQklmL25BVG4vNXdGTC8rY0JUUC9uQVZiLzV3RnVBQXdCY2dBTUFYWUFEQUYzQUF3Q2JmL25BbTcvNXdKdi8rY0NjUC9uQW5ILzV3S0ovK2NDaS8vbkFvMy81d0tQLytjQ2tmL25BcFAvNXdLVi8rY0NsLy9uQXBuLzV3S2IvK2NDbmYvbkFwLy81d0toLytjQ28vL25BMnIvNXdPUS8rY0RsUC9uQTVmLzV3T3kvK2NEdVAvbkE3My81d1BMLytjRHpmL25BODcvNXdQYS8rY0Q2Ly9uQkFmLzV3UUovK2NFQy8vbkJBMy81d1FQLytjRUVmL25CQlAvNXdRVi8rY0VLZi9uQkN2LzV3UXQvK2NFTWYvbkFBWUF5Zi9xQU96LzdnRDEvOVVBL2YvdEFUUC83QUZZLyt3QUFRRDEvOEFBQVFESkFDQUFmZ0FHQUF3QUN3QU1BRWYvNkFCSS8rZ0FTZi9vQUVvQURBQkwvK2dBVS8vcUFGWC82QUJhQUFzQVhRQUxBSlAvNkFDWS8rZ0F1di9vQUx3QUN3REQvNUFBeFFBTEFNZi82QURJLytnQXlRQU1BUGIvNkFFQy8rZ0JGLy9xQVJrQUN3RWQvK2dCSWYvb0FUbi82QUZMLytnQlRQL29BVmIvNkFGc0FBd0JiUUFNQVc4QURBRndBQXdCY1FBTUFici92d0c4Lys0QndQL3NBY2ovN1FISy8rd0J6UC8xQWMwQURnSFBBQTBCMGdBTkFtMy82QUp1LytnQ2IvL29BbkQvNkFKeC8rZ0NkLy9xQW5qLzZnSjUvK29DZXYvcUFudi82Z0tBQUFzQ2dRQUxBb24vNkFLTC8rZ0NqZi9vQW8vLzZBS1IvK2dDay8vb0FwWC82QUtYLytnQ21mL29BcHYvNkFLZC8rZ0NuLy9vQXFILzZBS2ovK2dDeGYvcUFzZi82Z0xKLytvQzd3QUxBMnIvNkFOdy8rb0RjZ0FMQTNiLzZnT1EvK2dEa3YvcUE1VC82QU9WQUFzRGwvL29BNTRBQ3dPbUFBc0Rwd0FNQTZnQURBT3JBQXdEc3Yvb0E3Y0FDd080LytnRHZmL29BNzhBQ3dQTC8rZ0R6Zi9vQTg3LzZBUFkvK29EMnYvb0E5ei82Z1BnQUFzRDRnQUxBK1FBQ3dQci8rZ0VCLy9vQkFuLzZBUUwvK2dFRGYvb0JBLy82QVFSLytnRUUvL29CQlgvNkFRYi8rb0VIZi9xQkIvLzZnUWgvK29FSS8vcUJDWC82Z1FuLytvRUtmL29CQ3YvNkFRdC8rZ0VMLy9xQkRILzZBUkJBQXNFUXdBTEJFVUFDd0FCQVBYLzRnQU5BRnovN1FCZS8rMEE3Zi90QVBYL3dBTHkvKzBDOVAvdEF2Yi83UU9XLyswRHd2L3RBOUQvN1FQcS8rMEVULy90QkZmLzdRQU1BRnovOGdCZS8vSUE3Zi95QXZMLzhnTDAvL0lDOXYveUE1Yi84Z1BDLy9JRDBQL3lBK3IvOGdSUC8vSUVWLy95QUI4QVd2LzBBRnovOGdCZC8vUUFYdi96QUx6LzlBRHQvL0lCR2YvMEFvRC85QUtCLy9RQzcvLzBBdkwvOHdMMC8vTUM5di96QTNMLzlBT1YvL1FEbHYveUE1Ny85QU9tLy9RRHQvLzBBNy8vOUFQQy8vSUQwUC95QStELzlBUGkvL1FENVAvMEErci84Z1JCLy9RRVEvLzBCRVgvOUFSUC8vSUVWLy95QUYwQUJ2L0tBQXYveWdBNC85SUFPdi9VQUR6LzlBQTkvOU1BV3YvbUFGei83d0JkLytZQXZQL21BTkgvMGdEVi85SUEyZi8wQU4zLzdRRGcvK0VBNWYvVUFPMy83d0QxLzhrQS9mL1JBUWovNVFFWS85UUJHZi9tQVIvLzR3RXkvOUlCTS8vRUFUci8wZ0U4LytFQlRmL1VBVTcvOVFGUC8rY0JWLzlrQVZqL3lRRnMvOG9CYmYvS0FXLy95Z0Z3LzhvQmNmL0tBbVgvMHdLQS8rWUNnZi9tQXRyLzBnTGMvOUlDM3YvU0F1Ny8wd0x2LytZQzhQL1RBMWYvMHdObS85TURaLy8wQTJuLzB3TnkvK1lEZ2YvdEE0My8wZ09PLy9RRGxmL21BNWIvN3dPZS8rWURwZi9UQTZiLzVnT24vOG9EcVAvS0E2di95Z08yLzlRRHQvL21BNzcvMHdPLy8rWUR3Zi8wQThMLzd3UFAvL1FEMFAvdkE5Ly83UVBnLytZRDRmL3RBK0wvNWdQai8rMEQ1UC9tQStYLzRRUHAvL1FENnYvdkJFRC8wd1JCLytZRVF2L1RCRVAvNWdSRS85TUVSZi9tQkV6LzBnUk8vL1FFVC8vdkJGRC80UVJTLytFRVZ2LzBCRmYvN3dScC85TUFiQUFHLzhBQUMvL0FBRGovblFBNi84Y0FQUC93QUQzL3F3QlIvOUlBVXYvU0FGVC8wZ0RBLzlJQTBmK2RBTlAvOVFEVi81MEEyZi93QU56LzlRRGQvK29BNFAvbEFPWC93UURyLzlJQTcvL1NBUEQvMGdEeS85SUE4Ly9TQVBULzBnRDEvODBBOS8vU0FQbi8wZ0Q2LzlJQS9mL1NBUC8vMGdFRS85SUJHUC9IQVRML25RRXovOHdCTmYvU0FUci9uUUU4LytVQlAvL2ZBVVQvMGdGSi85SUJUZi9PQVUvLzZnRlIvL1VCVi8rZUFWai96Z0ZzLzhBQmJmL0FBVy8vd0FGdy84QUJjZi9BQW1YL3F3SjIvOUlDdnYvU0FzRC8wZ0xDLzlJQ3cvL1NBdHIvblFMYy81MEMzditkQXU3L3F3THcvNnNEVi8rckEyYi9xd05uLy9BRGFmK3JBMnovMGdPQi8rb0RqZitkQTQ3LzhBT1IvOUlEay8vU0E1ai8wZ09kLzlJRHBmK3JBNmYvd0FPby84QURxLy9BQTYzLzBnT3ovOUlEdHYvSEE3Ny9xd1BCLy9BRHovL3dBOVQvMGdQVy85SUQzLy9xQStILzZnUGovK29ENWYvbEErai8wZ1BwLy9BRDdQLzFCRUQvcXdSQy82c0VSUCtyQkVuLzBnUkwvOUlFVFArZEJFNy84QVJRLytVRVV2L2xCRlgvMGdSVy8vQUVZdi9TQkdULzBnUm0vOUlFWi8vMUJHbi9xd0J2QUFiL3NRQUwvN0VBT1ArZUFEci94UUE4Ly9JQVBmK29BRkgvendCUy84OEFWUC9QQUZ6Lzd3REEvODhBMGYrZUFOWC9uZ0RaLy9JQTNmL3NBT0QvNFFEbC84SUE2Ly9QQU8zLzd3RHYvODhBOFAvUEFQTC96d0R6Lzg4QTlQL1BBUFgveGdEMy84OEErZi9QQVByL3p3RDkvODhBLy8vUEFRVC96d0VZLzhVQk12K2VBVFAvd0FFMS84OEJPditlQVR6LzRRRS8vOThCUlAvUEFVbi96d0ZOLzgwQlQvL29BVmYvbndGWS84WUJiUCt4QVczL3NRRnYvN0VCY1AreEFYSC9zUUpsLzZnQ2R2L1BBcjcvendMQS84OEN3di9QQXNQL3p3TGEvNTRDM1ArZUF0Ny9uZ0x1LzZnQzhQK29BMWYvcUFObS82Z0RaLy95QTJuL3FBTnMvODhEZ2Yvc0E0My9uZ09PLy9JRGtmL1BBNVAvendPVy8rOERtUC9QQTUzL3p3T2wvNmdEcC8reEE2ai9zUU9yLzdFRHJmL1BBN1AvendPMi84VUR2ditvQThILzhnUEMvKzhEei8veUE5RC83d1BVLzg4RDF2L1BBOS8vN0FQaC8rd0Q0Ly9zQStYLzRRUG8vODhENmYveUErci83d1JBLzZnRVF2K29CRVQvcUFSSi84OEVTLy9QQkV6L25nUk8vL0lFVC8vdkJGRC80UVJTLytFRVZmL1BCRmIvOGdSWC8rOEVZdi9QQkdUL3p3Um0vODhFYWYrb0FFMEFPUCsrQUZILzRRQlMvK0VBVlAvaEFGci83d0JkLys4QXZQL3ZBTUQvNFFEUi83NEExZisrQU9YL3lRRHIvK0VBNy8vaEFQRC80UUR5LytFQTgvL2hBUFQvNFFEMS85OEE5Ly9oQVBuLzRRRDYvK0VBL2YvaEFQLy80UUVFLytFQkNQL3RBUm4vN3dFZi8rc0JNdisrQVRQLzN3RTEvK0VCT3YrK0FULy82UUZFLytFQlNmL2hBVTcvOVFGWS8rQUNkdi9oQW9ELzd3S0IvKzhDdnYvaEFzRC80UUxDLytFQ3cvL2hBdHIvdmdMYy83NEMzdisrQXUvLzd3TnMvK0VEY3YvdkE0My92Z09SLytFRGsvL2hBNVgvN3dPWS8rRURuZi9oQTU3Lzd3T20vKzhEcmYvaEE3UC80UU8zLys4RHYvL3ZBOVQvNFFQVy8rRUQ0UC92QStMLzd3UGsvKzhENlAvaEJFSC83d1JELys4RVJmL3ZCRW4vNFFSTC8rRUVUUCsrQkZYLzRRUmkvK0VFWlAvaEJHYi80UUJrQURqLzVnQTYvK2NBUFAveUFEMy81d0JSLzlZQVV2L1dBRlQvMWdCYy8vRUF3UC9XQU5ILzVnRFYvK1lBMmYveUFOMy83Z0RnLytnQTVmL21BT3YvMWdEdC8vRUE3Ly9XQVBELzFnRHkvOVlBOC8vV0FQVC8xZ0QxLzlBQTkvL1dBUG4vMWdENi85WUEvZi9XQVAvLzFnRUUvOVlCR1AvbkFUTC81Z0V6Lzg0Qk5mL1dBVHIvNWdFOC8rZ0JSUC9XQVVuLzFnRk4vK2NCVC8vdEFWZi81Z0ZZLzlBQ1pmL25BbmIvMWdLKy85WUN3UC9XQXNMLzFnTEQvOVlDMnYvbUF0ei81Z0xlLytZQzd2L25BdkQvNXdOWC8rY0Radi9uQTJmLzhnTnAvK2NEYlAvV0E0SC83Z09OLytZRGp2L3lBNUgvMWdPVC85WURsdi94QTVqLzFnT2QvOVlEcGYvbkE2My8xZ096LzlZRHR2L25BNzcvNXdQQi8vSUR3di94QTgvLzhnUFEvL0VEMVAvV0E5Yi8xZ1BmLys0RDRmL3VBK1AvN2dQbC8rZ0Q2UC9XQStuLzhnUHEvL0VFUVAvbkJFTC81d1JFLytjRVNmL1dCRXYvMWdSTS8rWUVUdi95QkUvLzhRUlEvK2dFVXYvb0JGWC8xZ1JXLy9JRVYvL3hCR0wvMWdSay85WUVadi9XQkduLzV3Q1RBQ1VBRUFBbi8rZ0FLLy9vQURQLzZBQTEvK2dBT1AvZ0FEci80QUE5Lzk4QWcvL29BSkwvNkFDWC8rZ0FzUUFRQUxMLzZBQ3pBQkFBMGYvZ0FOTC82QURUQUJBQTFmL2dBTmdBRkFEY0FCQUE0UC9oQU9YLzRBRHNBQk1BOFFBUUFQai80QUVEQUJBQkIvL29BUXdBRUFFVy8rZ0JHUC9nQVJyLzZBRWMvK2dCSHYvb0FTRC82QUV5LytBQk9QL29BVHIvNEFFOC8rRUJQZi9nQVVELzRRRkYvK2tCVGYvZkFVLy8zZ0ZSQUJBQlZmL29BVmYvM3dGWi8vSUNLUC9vQWluLzZBSXIvK2dDTFAvb0Frc0FFQUpNQUJBQ1RRQVFBazRBRUFKUEFCQUNVQUFRQWxFQUVBSlMvK2dDWFAvb0FsMy82QUplLytnQ1gvL29BbUQvNkFKbC85OENnZ0FRQW9RQUVBS0dBQkFDaVAvb0Fvci82QUtNLytnQ2p2L29BcHovNkFLZS8rZ0NvUC9vQXFMLzZBTEUvK2dDeHYvb0Fzai82QUxhLytBQzNQL2dBdDcvNEFMdS85OEM4UC9mQXZuLzZBTlNBQkFEVnYvb0ExZi8zd05hQUJBRFkvL29BMmIvM3dOcC85OERnZ0FRQTRuLzZBT00vK2dEamYvZ0E2WC8zd091QUJBRHR2L2dBN24vNkFPOC8rZ0R2di9mQThRQUVBUEdBQkFEMS8vb0E5bi82QVBiLytnRDVmL2hBK2IvNEFQc0FCQUQ3UUFRQSs0QUVBUHdBQkFEOGdBUUEvUUFFQVAyQUJBRCtBQVFBL29BRUFQOEFCQUQvZ0FRQkFBQUVBUUNBQkFFQkFBUUJCci82QVFjLytnRUh2L29CQ0QvNkFRaS8rZ0VKUC9vQkNiLzZBUW8vK2dFS3Yvb0JDei82QVF1LytnRU1QL29CRUQvM3dSQy85OEVSUC9mQkV6LzRBUlEvK0VFVWYvZ0JGTC80UVJULytBRVp3QVFCR2dBRUFScC85OEVxZi9vQURJQUcvL3lBRGovOFFBNi8vUUFQUC8wQUQzLzhBRFIvL0VBMC8vMUFOWC84UURaLy9RQTNQLzFBTjMvOHdEbC8vRUJHUC8wQVRMLzhRRTYvL0VCVGYveUFVLy84Z0ZSLy9VQlYvL3lBbVgvOEFMYS8vRUMzUC94QXQ3LzhRTHUvL0FDOFAvd0ExZi84QU5tLy9BRFovLzBBMm4vOEFPQi8vTURqZi94QTQ3LzlBT2wvL0FEdHYvMEE3Ny84QVBCLy9RRHovLzBBOS8vOHdQaC8vTUQ0Ly96QStuLzlBUHMvL1VFUVAvd0JFTC84QVJFLy9BRVRQL3hCRTcvOUFSVy8vUUVaLy8xQkduLzhBQm1BQ1VBRHdBNC8rWUFPdi9tQUR3QURnQTkvK1lBc1FBUEFMTUFEd0RSLytZQTB3QU9BTlgvNWdEWUFCTUEyUUFPQU53QURnRGRBQXNBNFAvbEFPWC81Z0RtLy9RQTdBQVNBUEVBRHdEMS8rY0ErUC9vQVAzLzV3RURBQThCREFBUEFSai81Z0V5LytZQk0vL25BVHIvNWdFOC8rVUJQZi9vQVUzLzVnRlAvK1lCVVFBT0FWZi81Z0ZZLytjQ1N3QVBBa3dBRHdKTkFBOENUZ0FQQWs4QUR3SlFBQThDVVFBUEFtWC81Z0tDQUE4Q2hBQVBBb1lBRHdMYS8rWUMzUC9tQXQ3LzVnTHUvK1lDOFAvbUExSUFEd05YLytZRFdnQVBBMmIvNWdObkFBNERhZi9tQTRFQUN3T0NBQThEamYvbUE0NEFEZ09sLytZRHJnQVBBN2IvNWdPKy8rWUR3UUFPQThRQUR3UEdBQThEendBT0E5OEFDd1BoQUFzRDR3QUxBK1gvNVFQbS8rZ0Q2UUFPQSt3QURnUHRBQThEN2dBUEEvQUFEd1B5QUE4RDlBQVBBL1lBRHdQNEFBOEQrZ0FQQS93QUR3UCtBQThFQUFBUEJBSUFEd1FFQUE4RVFQL21CRUwvNWdSRS8rWUVUUC9tQkU0QURnUlEvK1VFVWYvb0JGTC81UVJULytnRVZnQU9CR2NBRGdSb0FBOEVhZi9tQURjQUJ2Ky9BQXYvdndBNC81OEFPdi9KQUQzL3JRRFIvNThBMWYrZkFOMy83QURnLytZQTVmL0VBUFgvelFEOS85VUJHUC9KQVRML253RXovOHdCT3YrZkFUei81Z0UvLzk4QlRmL1JBVS8vN0FGWC82RUJXUC9QQVd6L3Z3RnQvNzhCYi8rL0FYRC92d0Z4Lzc4Q1pmK3RBdHIvbndMYy81OEMzditmQXU3L3JRTHcvNjBEVi8rdEEyYi9yUU5wLzYwRGdmL3NBNDMvbndPbC82MERwLysvQTZqL3Z3T3IvNzhEdHYvSkE3Ny9yUVBmLyt3RDRmL3NBK1AvN0FQbC8rWUVRUCt0QkVML3JRUkUvNjBFVFArZkJGRC81Z1JTLytZRWFmK3RBREFBT1AvakFEei81UUE5LytRQTBmL2pBTlAvNVFEVi8rTUEyUC9pQU5uLzVRRGMvK1VBM2YvcEFQSC82Z0VELytvQk12L2pBVHIvNHdGUi8rVUJWLy9rQW1YLzVBTGEvK01DM1AvakF0Ny80d0x1LytRQzhQL2tBMWYvNUFObS8rUURaLy9sQTJuLzVBT0IvK2tEamYvakE0Ny81UU9sLytRRHZ2L2tBOEgvNVFQUC8rVUQzLy9wQStILzZRUGovK2tENmYvbEErei81UVB0LytvRVFQL2tCRUwvNUFSRS8rUUVUUC9qQkU3LzVRUlcvK1VFWi8vbEJHai82Z1JwLytRQUl3QTQvK0lBUFAva0FOSC80Z0RULytRQTFmL2lBTmovNFFEWi8rUUEzUC9rQU4zLzZRRHMvK1FBOGYvckFRUC82d0V5LytJQk92L2lBVkgvNUFMYS8rSUMzUC9pQXQ3LzRnTm4vK1FEZ2YvcEE0My80Z09PLytRRHdmL2tBOC8vNUFQZi8ra0Q0Zi9wQStQLzZRUHAvK1FEN1Ava0ErMy82d1JNLytJRVR2L2tCRmIvNUFSbi8rUUVhUC9yQUJjQU9QL3JBRDMvOHdEUi8rc0ExZi9yQVRMLzZ3RTYvK3NDWmYvekF0ci82d0xjLytzQzN2L3JBdTcvOHdMdy8vTURWLy96QTJiLzh3TnAvL01EamYvckE2WC84d08rLy9NRVFQL3pCRUwvOHdSRS8vTUVUUC9yQkduLzh3QTJBRkgvN3dCUy8rOEFWUC92QUZ6LzhBREEvKzhBNi8vdkFPei83Z0R0Ly9BQTcvL3ZBUEQvN3dEeS8rOEE4Ly92QVBULzd3RDEvKzRBOS8vdkFQbi83d0Q2Lys4QS9mL3ZBUC8vN3dFRS8rOEJDUC8wQVIvLzhRRXovKzhCTmYvdkFVVC83d0ZKLys4QldQL3ZBbmIvN3dLKy8rOEN3UC92QXNMLzd3TEQvKzhEYlAvdkE1SC83d09ULys4RGx2L3dBNWovN3dPZC8rOERyZi92QTdQLzd3UEMvL0FEMFAvd0E5VC83d1BXLys4RDZQL3ZBK3IvOEFSSi8rOEVTLy92QkUvLzhBUlYvKzhFVi8vd0JHTC83d1JrLys4RVp2L3ZBQ0lBQnYveUFBdi84Z0JhLy9VQVhmLzFBTHovOVFEMS8vUUEvZi8wQVFqLzlRRVovL1VCTS8vMUFWai85UUZzLy9JQmJmL3lBVy8vOGdGdy8vSUJjZi95QW9ELzlRS0IvL1VDNy8vMUEzTC85UU9WLy9VRG52LzFBNmIvOVFPbi8vSURxUC95QTZ2LzhnTzMvL1VEdi8vMUErRC85UVBpLy9VRDVQLzFCRUgvOVFSRC8vVUVSZi8xQURJQVVmL3VBRkwvN2dCVS8rNEF3UC91QU92LzdnRHNBQlFBNy8vdUFQRC83Z0R5Lys0QTgvL3VBUFQvN2dEMS8rMEE5Ly91QVBqLzdRRDUvKzRBK3YvdUFQdi8wQUQ5Lys0QS8vL3VBUVQvN2dFei8rMEJOZi91QVQzLzdRRkUvKzRCU2YvdUFWai83UUoyLys0Q3Z2L3VBc0QvN2dMQy8rNEN3Ly91QTJ6LzdnT1IvKzREay8vdUE1ai83Z09kLys0RHJmL3VBN1AvN2dQVS8rNEQxdi91QStiLzdRUG8vKzRFU2YvdUJFdi83Z1JSLyswRVUvL3RCRlgvN2dSaS8rNEVaUC91QkdiLzdnQUtBQWIvOVFBTC8vVUJiUC8xQVczLzlRRnYvL1VCY1AvMUFYSC85UU9uLy9VRHFQLzFBNnYvOVFCWkFFZi84QUJJLy9BQVNmL3dBRXYvOEFCVC84Y0FWZi93QUpQLzhBQ1kvL0FBdXYvd0FNZi84QURJLy9BQTl2L3dBUUwvOEFFWC84Y0JHLy9yQVIzLzhBRWgvL0FCT2Yvd0FVdi84QUZNLy9BQlZ2L3dBYnovNndIQS8ra0J5UC9yQWNyLzZ3SnQvL0FDYnYvd0FtLy84QUp3Ly9BQ2NmL3dBbmYveHdKNC84Y0NlZi9IQW5yL3h3SjcvOGNDaWYvd0Fvdi84QUtOLy9BQ2ovL3dBcEgvOEFLVC8vQUNsZi93QXBmLzhBS1ovL0FDbS8vd0FwMy84QUtmLy9BQ29mL3dBcVAvOEFMRi84Y0N4Ly9IQXNuL3h3TnEvL0FEY1AvSEEzYi94d09RLy9BRGt2L0hBNVQvOEFPWC8vQURzdi93QTdqLzhBTzkvL0FEeS8vd0E4My84QVBPLy9BRDJQL0hBOXIvOEFQYy84Y0Q2Ly93QkFmLzhBUUovL0FFQy8vd0JBMy84QVFQLy9BRUVmL3dCQlAvOEFRVi8vQUVHLy9IQkIzL3h3UWYvOGNFSWYvSEJDUC94d1FsLzhjRUovL0hCQ24vOEFRci8vQUVMZi93QkMvL3h3UXgvL0FBb1FBR0FBMEFDd0FOQUVYLzhBQkgvOEFBU1AvQUFFbi93QUJLQUEwQVMvL0FBRlAvNGdCVi84QUFXZ0FMQUYwQUN3Q1QvOEFBbVAvQUFMci93QUM4QUFzQXh2L1dBTWYvd0FESS84QUF5Ly9WQU96L3lBRHgvOWNBOXYvQUFRTC93QUVELzljQkYvL2lBUmtBQ3dFYi8rd0JIZi9BQVI4QURBRWgvOEFCT2YvQUFVdi93QUZNLzhBQlRnQUxBVkFBQ3dGVy84QUJiQUFOQVcwQURRRnZBQTBCY0FBTkFYRUFEUUc2Lzc4QnZQL3VBY0QvN0FISS8rMEJ5di9zQWN6LzlRSE5BQTRCendBTkFkSUFEUUptLy9BQ1ovL3dBbWovOEFKcC8vQUNhdi93QW12LzhBSnMvL0FDYmYvQUFtNy93QUp2LzhBQ2NQL0FBbkgvd0FKMy8rSUNlUC9pQW5uLzRnSjYvK0lDZS8vaUFvQUFDd0tCQUFzQ2cvL3dBb1gvOEFLSC8vQUNpZi9BQW92L3dBS04vOEFDai8vQUFwSC93QUtULzhBQ2xmL0FBcGYvd0FLWi84QUNtLy9BQXAzL3dBS2YvOEFDb2YvQUFxUC93QUxGLytJQ3gvL2lBc24vNGdMdkFBc0Rhdi9BQTNELzRnTnlBQXNEZHYvaUE0Ly84QU9RLzhBRGt2L2lBNVQvd0FPVkFBc0RsLy9BQTU0QUN3T21BQXNEcHdBTkE2Z0FEUU9yQUEwRHIvL3dBN0wvd0FPM0FBc0R1UC9BQTczL3dBTy9BQXNEeGYvd0E4Zi84QVBMLzhBRHpmL0FBODcvd0FQWS8rSUQydi9BQTl6LzRnUGdBQXNENGdBTEErUUFDd1ByLzhBRDdmL1hBKy8vOEFQeC8vQUQ4Ly93QS9YLzhBUDMvL0FEK2Yvd0Evdi84QVA5Ly9BRC8vL3dCQUgvOEFRRC8vQUVCZi93QkFmL3dBUUovOEFFQy8vQUJBMy93QVFQLzhBRUVmL0FCQlAvd0FRVi84QUVHLy9pQkIzLzRnUWYvK0lFSWYvaUJDUC80Z1FsLytJRUovL2lCQ24vd0FRci84QUVMZi9BQkMvLzRnUXgvOEFFUVFBTEJFTUFDd1JGQUFzRWFQL1hBQThBN0FBVUFQRUFFQUQxLy9BQStQL3dBUDMvOEFFQUFCWUJBd0FRQVRQLzVnRTkvOXdCV1Avd0ErYi84QVB0QUJBRVVmL3dCRlAvOEFSb0FCQUFUQUJILys0QVNQL3VBRW4vN2dCTC8rNEFWZi91QUpQLzdnQ1kvKzRBdXYvdUFNZi83Z0RJLys0QTdBQVNBUEVBRGdEMS8rTUE5di91QVBqLzR3RDcvN2dBL2YvakFRTC83Z0VEQUE0QkhmL3VBU0gvN2dFei83b0JPZi91QVQzLzJRRkwvKzRCVFAvdUFWYi83Z0ZZLytNQ2JmL3VBbTcvN2dKdi8rNENjUC91QW5ILzdnS0ovKzRDaS8vdUFvMy83Z0tQLys0Q2tmL3VBcFAvN2dLVi8rNENsLy91QXBuLzdnS2IvKzRDbmYvdUFwLy83Z0toLys0Q28vL3VBMnIvN2dPUS8rNERsUC91QTVmLzdnT3kvKzREdVAvdUE3My83Z1BMLys0RHpmL3VBODcvN2dQYS8rNEQ1di9qQSt2LzdnUHRBQTRFQi8vdUJBbi83Z1FMLys0RURmL3VCQS8vN2dRUi8rNEVFLy91QkJYLzdnUXAvKzRFSy8vdUJDMy83Z1F4Lys0RVVmL2pCRlAvNHdSb0FBNEFJQUJhLzhBQVhmL0FBTHovd0FEMS80QUErUC91QVAzLzhBRUkvOXNCR2YvQUFSLy8zQUV6LzBjQlBmL3VBVTRBQndGUS8vUUJXUDkvQW9EL3dBS0IvOEFDNy8vQUEzTC93QU9WLzhBRG52L0FBNmIvd0FPMy84QUR2Ly9BQStEL3dBUGkvOEFENVAvQUErYi83Z1JCLzhBRVEvL0FCRVgvd0FSUi8rNEVVLy91QUNFQVd2LzBBRnovOEFCZC8vUUF2UC8wQU96Lzd3RHQvL0FBOGYvekFQMy83Z0VELy9NQkdmLzBBb0QvOUFLQi8vUUM3Ly8wQTNMLzlBT1YvL1FEbHYvd0E1Ny85QU9tLy9RRHQvLzBBNy8vOUFQQy8vQUQwUC93QStELzlBUGkvL1FENVAvMEErci84QVB0Ly9NRVFmLzBCRVAvOUFSRi8vUUVULy93QkZmLzhBUm8vL01BQ2dBRy85WUFDLy9XQVd6LzFnRnQvOVlCYi8vV0FYRC8xZ0Z4LzlZRHAvL1dBNmovMWdPci85WUFGUUJjLytBQTdmL2dBUFgvZGdENC84SUEvZi9UQVFqLzJRRWYvOXNCTS84ZUFUMy83UUZPLy9BQlVQL3lBVmovVmdPVy8rQUR3di9nQTlELzRBUG0vOElENnYvZ0JFLy80QVJSLzhJRVUvL0NCRmYvNEFBTkFQWC9aQUQ0LzlJQS9mL1pBUWovMlFFZi85c0JNLzhlQVQzLzdRRk8vL0FCVVAveUFWai9WZ1BtLzlJRVVmL1NCRlAvMGdBSkFQWC9hZ0Q5LzhZQkNQL1pBUi8vMndFei94NEJQZi90QVU3LzhBRlEvL0lCV1A5V0FBb0FCdi9YQUF2LzF3RnMvOWNCYmYvWEFXLy8xd0Z3LzljQmNmL1hBNmYvMXdPby85Y0RxLy9YQUZ3QVIvK1lBRWovbUFCSi81Z0FTLytZQUZQL2NBQlYvNWdBVi84WUFGc0FDd0NULzVnQW1QK1lBTHIvbUFESC81Z0F5UCtZQVBiL21BRUMvNWdCRi85d0FSMy9tQUVoLzVnQk9mK1lBVXYvbUFGTS81Z0JWditZQW0zL21BSnUvNWdDYi8rWUFuRC9tQUp4LzVnQ2QvOXdBbmovY0FKNS8zQUNldjl3QW52L2NBS0ovNWdDaS8rWUFvMy9tQUtQLzVnQ2tmK1lBcFAvbUFLVi81Z0NsLytZQXBuL21BS2IvNWdDbmYrWUFwLy9tQUtoLzVnQ28vK1lBc1gvY0FMSC8zQUN5Zjl3QXRIL0dBTFQveGdDMWY4WUF0Zi9HQUxaL3hnRGF2K1lBM0QvY0FOMi8zQURrUCtZQTVML2NBT1UvNWdEbC8rWUE1bi9HQU95LzVnRHVQK1lBNzMvbUFQTC81Z0R6ZitZQTg3L21BUFkvM0FEMnYrWUE5ei9jQVByLzVnRUIvK1lCQW4vbUFRTC81Z0VEZitZQkEvL21BUVIvNWdFRS8rWUJCWC9tQVFiLzNBRUhmOXdCQi8vY0FRaC8zQUVJLzl3QkNYL2NBUW4vM0FFS2YrWUJDdi9tQVF0LzVnRUwvOXdCREgvbUFBSkFiei84Z0hBLy9JQnlQL3lBY3IvOGdITi84QUJ6di9zQWMvL3h3SFEvOWdCMHYrL0FBSUJ6Ly91QWRELzlRQUNBY2ovNndISy8rc0FCd0hJLys4Qnl2L3dBYzMvdXdITy8rd0J6LyszQWRELzFRSFMvN1FBQkFITi8rNEJ6Ly94QWRILzdBSFMvK29BQkFITi8ra0J6Ly9yQWRELzhRSFMvK1VBQkFITi8vSUJ6Ly94QWRELzlRSFMvKzRBQWdIUEFBMEIwZ0FOQUFzQVcvL01BYm9BRXdHOC8vTUJ3UC94QWNqLzhnSEsvL0lCemYrOUFjNy83Z0hQLzdnQjBQL1hBZEwvdHdBRUFFb0FGQUJZQURJQVd3QVJBVzBBRUFBSUFGdi81UUMzLzhzQXpQL2tBYm9BRFFHOC8rMEJ3UC9yQWNqLzdBSEsvK3dBQWdFUUFBc0JWLy9tQUFnQVdBQU9BSUgrMXdERC81Z0F4di9IQU5qL0VnRHMvMUlCU3YvUEFici9nQUFKQUEwQUR3QkJBQXdBVnYvckFHRUFEZ0c2LzhzQnZQL3BBY0QvNXdISS8rY0J5di9uQUFFQVd3QUxBQWtBRFFBVUFFRUFFUUJXLytJQVlRQVRBYnIvdEFHOC85a0J3UC9aQWNqLzJRSEsvOWtBQkFBTi8rWUFRZi8wQUdILzd3RkEvKzBBQmdESi8rb0E3UC91QVBYLzFnRDkvKzBCTS8vc0FWai83QUFTQU5qL3JnRGxBQklBNnYvZ0FPei9yUUR1LzlZQS9QL2ZBUUQvMGdFRy8rQUJHLy9PQVN2LzNRRXQvK0lCTWYvZ0FUZi80QUU5LytrQlFQL2FBVXIvdlFGVS85OEJWd0FSQUIwQUkvK3ZBRmovN3dCYi85OEFtZi91QUxmLzVRQzQvOUVBd3dBUkFNbi95QURZQUJNQTVmL0ZBUFgveWdEOS85QUJNLytCQVR6L1pRRTkvNFVCUC85bUFVRC8zUUZGLy9JQlRmK3hBVS8veWdGWC82a0JXUC9JQWNELzlRSEkvL1VCemYvSEFjNy84UUhQLzgwQjBQL2RBZEwveEFBSUFQWC84QUQ5Ly9BQkNQL3hBUi8vOHdFei8vRUJUdi96QVZELzh3RlkvL0VBQlFCSy8rNEFXLy9xQWMvLzhBSFEvKzBCMHYvd0FBSUE5Zi8xQVczL3dBQUpBTW4vNmdEcy83Z0E5Zi9pQVFqLzhBRWYvL0VCTS8vckFVNy85UUZZLyt3QmJmK1FBQUVCdXYvckFBWUFTZ0FOQU1VQUN3REcvK29BeVFBTUFPei95QUViLy9FQU9nQUUvOFFBVnYrL0FGdi8wUUJ0LzJ3QWZQOXVBSUgvUXdDRy82d0FpZitoQUxmL3VBQysvMzRBd3Y5N0FNWC9td0RHLzNrQXlmK3lBTXYvZmdETS8zMEF6Zjk4QU5qL3J3RGxBQThBNmYva0FPci9vQURzLzNRQTd2K0FBUFgvc2dEOC8zMEEvZit5QVA3L2dBRUEvM2tCQVFBb0FRYi9mUUVJLzM4QkcvOW1BUi8vMmdFci80RUJMZitZQVRIL2ZRRXovN01CTi8rZ0FUMy9mQUUvLzVvQlFQOXNBVVgvNWdGSy8yc0JUditTQVZEL3JRRlUvM3NCVndBUEFWai9rUUZaLy9JQnV2K3ZBYnovdVFIQS83a0J5UCs1QWNyL3VRSE0vN3dCemYveEFkRC84UUhSLyswQUFnRHMvMmdCRy8vdUFCY0F0Ly9VQU1ILzdRRERBQkVBeWYvZ0FNdi81d0RNLytVQXpmL3VBTmdBRWdEcC8ra0E5Zi9YQVRQLzF3RTkvOU1CUC8vV0FVRC94UUZGLytjQlRRQU5BVThBREFGWS85WUJXZi95QWJ6LzZRSEEvK2NCeVAvbkFjci82UUFCQVJ2LzhRQUNBUFgvMWdGdC80Z0FDZ0RsLzhNQTlmL1BBUDMvMUFFei84NEJQUC9uQVQvLzN3Rk4vOUVCVC8vc0FWZi9vQUZZLzlFQU1BQlcvMzRBVy8rZEFHMys4UUI4L3ZRQWdmNnJBSWIvWGdDSi8wc0F0Lzl5QUw3L0R3REMvd29BeGY5QkFNYi9Cd0RKLzJnQXkvOFBBTXovRGdETi93d0EyUDlqQU9VQUJRRHAvNzBBNnY5SkFPeisvZ0R1L3hNQTlmOW9BUHovRGdEOS8yZ0EvdjhUQVFEL0J3RUJBREFCQnY4T0FRai9FUUViL3VjQkgvK3NBU3YvRlFFdC96d0JNZjhPQVRQL2FnRTMvMGtCUGY4TUFULy9Qd0ZBL3ZFQlJmL0FBVXIrN3dGTy96RUJVUDlmQVZUL0NnRlhBQVVCV1A4d0FWbi8xUUFVQUZ2L3dRQzMvOFVBeWYrMEFPbi8xd0QxLzdrQS9mL3BBUWovc2dFYi85SUJILy9JQVRQL29BRTkvOFVCUmYva0FVNy96QUZRLzh3QldQL0xBVm4vN3dHOC8rZ0J3UC9tQWNqLzV3SEsvK2NBQ0FEWUFCVUE3QUFWQVR6LzVBRTkvK1VCUC8va0FVMy80d0ZQLytJQlYvL2tBQ0lBQ3YvaUFBMEFGQUFPLzg4QVFRQVNBRXIvNmdCVy85Z0FXUC9xQUdFQUV3QnQvNjRBZlAvTkFJSC9vQUNHLzhFQWlmL0FBTGYvMEFDNy8rb0F2di9HQUw4QURRREIvK2tBd3YvV0FNWC82QURHLzdvQXlmL3BBTXYveXdETS85b0F6Zi9IQVhYLzB3RzYvNnNCdlAvTkFjRC95d0hJLzhzQnl2L0xBYzMvOHdIUS8vTUIwZi92QUFrQWdmL2ZBTFQvOHdDMi8vQUF3Ly9xQU5qLzN3RGwvK0FCVi8vZ0Fici83UUhSLy9VQUFnZUtBQVFBQUFwZUVqWUFJUUFkQUFELzIvK0kvODcveGYvcy82WC9wQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvdU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVArSUFBQUFBQUFBLzlELzlBQUEvK3YvaVAvdi83UC8yZjlxLy9YL3pnQU1BQkgveVFBUy85OEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rVUFBUC9vQUFEL3lRQUFBQUFBQUFBQUFBQUFBQUFBLy9NQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9qQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK3NBQUFBQUFBQUFBQUFBQUFEL3F3QUEvK29BQVAvVkFBQUFBQUFBLytFQUFBQUFBQUFBQVArRy8rci82UUFBQUFBQUFBQUFBQUFBQUFBQUFBRC83UUFBLyswQUFBQUFBQlFBQUFBQUFBQUFBUC92LytZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFZ0FBQUFBQUFBQUFBQUFBQVAvakFBQUFBQUFBLytRQUFBQUFBQUFBRWYva0FCSC81UUFBQUFBQUVRQUFBQUFBQUFBQUFBQUFBQUFBLytvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvNWdBQS8rVUFBUC9oQUFBQUFBQUFBQUFBQVAvcC85Z0FBQUFBQUFBQUFQK2pBQUFBQUFBQUFBRC9YQUFBQUFBQUFBQUEvdUFBRXdBQUFBQUFBQUFBQUFEL3dQOHovK2ovTXYrai91bi84ditGQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8wNy85Zi96QUFELzh3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUR3QUEvMjhBQVArbkFBQUFBUDVzLzgzLzNBQUEvMGdBQUFBQUFBQUFBUCtJLzFqL3AvK24vekQvdFAva0FCQUFBQUFRQUE4QUVQKy8vNjcveFAvTEFBRC9mdjk4QUFEKy9nQUFBQUQrOFA4by8vRC9zd0FBQUFEL3RmL1MvOVFBQVAvU0FBRC84d0FBQUFBQUFBQUFBQUQvNVAvMUFBQUFBQUFBQUFBQUFBQUEveWtBQUFBQS8yTUFBQUFBQUFBQUFBQUEvOVgvMy8vaEFBRC80UUFBQUFBQURnQUFBQUFBQUFBQS8rMEFBQUFBQUFBQUFBQUFBQUFBQVA5eEFBQUFBUC9FQUFBQUFBQUFBQUFBQUFBQUFBRC81Z0FBLytzQUFQL25BQUFBQUFBT0FBQUFBUC9yLytFQUFBQVJBQUFBRWYvUkFBQUFBQUFBQUFEL1pBQUFBQUFBQUFBQUFBRC9hdi9CLzcvLzJQKy8vOGIvNHdBUi82QUFFZ0FSQUJMLzJmL3MvK0lBQUFBQUFBQUFBQUFBL3hrQURRQUEvMmovb1Avdy8ra0FBQUFBQUEwQUFQL3JBQUQvNndBQS8rWUFBQUFBQUFBQUFBQUEvKzMvNVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzd3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8xLy9FQUFBQUEvL0lBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL0VBQVAvMUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC84Z0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK29BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC84Zi93QUFBQUFQL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3JBQUFBRUFBQS8rTC83UUFBLzl3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJJQUFBQUFBQUFBQUFBQUFBRC9Vd0FBQUFBQUFBQUFBQUFBQUFBQUFBOEFBUC94Ly9NQUFQL3hBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS85Y0FBQUFBLzFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3NBQUQvMkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOEFBQS8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvTS85Zi8xWC9WZjltLzJ2L3ZRQUhBQUFBQndBRkFBZi9mdjloLzRiL2tnQUEvdy8vREFBQS9qWUFBQUFBL2g0QUFQL1IvMm9BQVAvQUFBQUFBQUFBQUFBQUFBQUFBQUQvbndBQS84Z0FBUCt0QUFBQUFBQUFBQUQvNXdBQUFBRC82d0FBQUFBQUFBQUFBQUFBQVAvSkFBQUFBUCtsLzYvL3ZmK3UvNzMvMHYvcEFCSUFBQUFBQUFBQUVnQUFBQUFBQVAvS0FBRC91Ly9wQUFEK2R3QUFBQUQvT1FBQUFBQUFBQUFBQUFBQUFBQUEvK3dBQVAvc0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzlnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQOTVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC90UUFBQUFBQUFBQUEvK01BQUFBQUFBQUFBQUFBQUFBQUFQL3JBQUlBZUFBR0FBWUFBQUFMQUFzQUFRQVFBQkFBQWdBU0FCSUFBd0FsQUNrQUJBQXNBRFFBQ1FBNEFENEFFZ0JGQUVjQUdRQkpBRWtBSEFCTUFFd0FIUUJSQUZRQUhnQldBRllBSWdCYUFGb0FJd0JjQUY0QUpBQ0tBSW9BSndDd0FMTUFLQUM4QUx3QUxBREFBTUFBTFFER0FNWUFMZ0RUQU5RQUx3RFdBTllBTVFEWkFOa0FNZ0RiQU4wQU13RGZBTjhBTmdEaEFPRUFOd0RqQU9NQU9BRGxBT1VBT1FEckFPc0FPZ0R0QU8wQU93RDJBUFlBUEFEN0FQc0FQUUQ5QVA0QVBnRURBUVFBUUFFSkFRa0FRZ0VNQVF3QVF3RVhBUmtBUkFFckFTMEFSd0V3QVRBQVNnRXlBVElBU3dGSkFVa0FUQUZzQVhJQVRRRjJBWGNBVkFJb0FpZ0FWZ0lxQWlzQVZ3SkdBa2NBV1FKSkFra0FXd0pMQW5FQVhBSjJBbnNBZ3dLQUFwQUFpUUtTQXBzQW1nS2tBcVlBcEFLb0FxZ0Fwd0txQXFvQXFBS3NBcXdBcVFLdUFxNEFxZ0t4QXJFQXF3S3pBck1BckFLMUFyVUFyUUszQXJjQXJnSzVBcmtBcndLN0Fyc0FzQUs5QXNrQXNRTExBc3NBdmdMTkFzMEF2d0xQQXM4QXdBTGFBdG9Bd1FMY0F0d0F3Z0xlQXQ0QXd3TGdBdUFBeEFMaUF1SUF4UUxrQXVRQXhnTG1BdVlBeHdMb0F1Z0F5QUxxQXVvQXlRTHNBdXdBeWdMdUF2WUF5d05TQTFjQTFBTmFBMmtBMmdOc0Eyd0E2Z053QTNBQTZ3TnlBM0lBN0FOMkEzWUE3UU41QTNvQTdnTjhBNFVBOEFPSEE0a0ErZ09MQTVBQS9RT1NBNWdCQXdPZUE1OEJDZ09oQTZFQkRBT2pBNk1CRFFPbEE2Z0JEZ09yQTdBQkVnT3lBN0lCR0FPMkE3Y0JHUU84QThjQkd3UEtBOHNCSndQTkE5QUJLUVBYQTlnQkxRUGNBOXdCTHdQZUErUUJNQVBwQStvQk53UHVCQllCT1FRWUJCZ0JZZ1FhQkNjQll3UXZCQzhCY1FReUJESUJjZ1EwQkRRQmN3UkFCRVVCZEFSSUJFZ0JlZ1JLQkVvQmV3Uk1CRXdCZkFST0JFOEJmUVJVQkZjQmZ3UmFCRm9CZ3dSY0JGMEJoQVJmQkY4QmhnUmpCR01CaHdSbEJHVUJpQVJwQkdrQmlRU3BCS2tCaWdBQ0FVNEFFQUFRQUFFQUVnQVNBQUVBSlFBbEFBSUFKZ0FtQUFNQUp3QW5BQVFBS0FBb0FBVUFLUUFwQUFZQUxBQXRBQWNBTGdBdUFBZ0FMd0F2QUFrQU1BQXdBQW9BTVFBeUFBY0FNd0F6QUFVQU5BQTBBQXNBT0FBNEFBd0FPUUE1QUFnQU9nQTZBQTBBT3dBN0FBNEFQQUE4QUE4QVBRQTlBQkFBUGdBK0FCRUFSUUJGQUJJQVJnQkdBQk1BUndCSEFCUUFTUUJKQUJVQVRBQk1BQllBVVFCU0FCWUFVd0JUQUJjQVZBQlVBQk1BVmdCV0FCZ0FXZ0JhQUJrQVhBQmNBQm9BWFFCZEFCa0FYZ0JlQUJzQWlnQ0tBQk1Bc0FDd0FCd0FzUUN4QUFJQXNnQ3lBQVVBc3dDekFBSUF2QUM4QUJrQXdBREFBQllBeGdER0FCTUEwd0RVQUIwQTFnRFdBQWNBMlFEWkFBOEEyd0RjQUFjQTNRRGRBQjRBM3dEZkFBY0E0UURoQUFjQTR3RGpBQjBBNVFEbEFCMEE2d0RyQUI4QTdRRHRBQm9BOWdEMkFCTUErd0Q3QUNBQS9RRDlBQ0FBL2dEK0FCTUJBd0VFQUNBQkNRRUpBQ0FCREFFTUFBSUJGd0VYQUJjQkdBRVlBQTBCR1FFWkFCa0JLd0VyQUJNQkxBRXNBQndCTFFFdEFCOEJNQUV3QUFrQk1nRXlBQWtCU1FGSkFCOEJiZ0Z1QUFFQmNnRnlBQUVCZGdGM0FBRUNLQUlvQUFRQ0tnSXJBQVVDUmdKSEFBVUNTUUpKQUF3Q1N3SlJBQUlDVWdKU0FBUUNVd0pXQUFZQ1Z3SmJBQWNDWEFKZ0FBVUNZUUprQUFnQ1pRSmxBQkFDWmdKc0FCSUNiUUp0QUJRQ2JnSnhBQlVDZGdKMkFCWUNkd0o3QUJjQ2dBS0JBQmtDZ2dLQ0FBSUNnd0tEQUJJQ2hBS0VBQUlDaFFLRkFCSUNoZ0tHQUFJQ2h3S0hBQklDaUFLSUFBUUNpUUtKQUJRQ2lnS0tBQVFDaXdLTEFCUUNqQUtNQUFRQ2pRS05BQlFDamdLT0FBUUNqd0tQQUJRQ2tBS1FBQVVDa2dLU0FBWUNrd0tUQUJVQ2xBS1VBQVlDbFFLVkFCVUNsZ0tXQUFZQ2x3S1hBQlVDbUFLWUFBWUNtUUtaQUJVQ21nS2FBQVlDbXdLYkFCVUNwQUtrQUFjQ3BRS2xBQllDcGdLbUFBY0NxQUtvQUFjQ3FnS3FBQWNDckFLc0FBY0NyZ0t1QUFjQ3NRS3hBQWdDc3dLekFBa0N0UUsxQUFvQ3R3SzNBQW9DdVFLNUFBb0N1d0s3QUFvQ3ZRSzlBQWNDdmdLK0FCWUN2d0svQUFjQ3dBTEFBQllDd1FMQkFBY0N3Z0xEQUJZQ3hBTEVBQVVDeFFMRkFCY0N4Z0xHQUFVQ3h3TEhBQmNDeUFMSUFBVUN5UUxKQUJjQ3l3TExBQmdDelFMTkFCZ0N6d0xQQUJnQzJnTGFBQXdDM0FMY0FBd0MzZ0xlQUF3QzRBTGdBQWdDNGdMaUFBZ0M1QUxrQUFnQzVnTG1BQWdDNkFMb0FBZ0M2Z0xxQUFnQzdBTHNBQTRDN2dMdUFCQUM3d0x2QUJrQzhBTHdBQkFDOFFMeEFCRUM4Z0x5QUJzQzh3THpBQkVDOUFMMEFCc0M5UUwxQUJFQzlnTDJBQnNEVWdOU0FBSURVd05UQUFZRFZBTlZBQWNEVmdOV0FBVURWd05YQUJBRFdnTmFBQUlEV3dOYkFBTURYQU5jQUFZRFhRTmRBQkVEWGdOZkFBY0RZQU5nQUFrRFlRTmlBQWNEWXdOakFBVURaQU5rQUFzRFpRTmxBQXdEWmdObUFCQURad05uQUE4RGFBTm9BQWNEYVFOcEFCQURiQU5zQUJZRGNBTndBQmNEY2dOeUFCa0RkZ04yQUJjRGVRTjVBQVlEZWdONkFCd0RmQU45QUFjRGZnTitBQWdEZndPQUFBa0RnUU9CQUI0RGdnT0NBQUlEZ3dPREFBTURoQU9FQUJ3RGhRT0ZBQVlEaHdPSUFBY0RpUU9KQUFVRGl3T0xBQXNEakFPTUFBUURqUU9OQUF3RGpnT09BQThEandPUEFCSURrQU9RQUJVRGtnT1NBQmNEa3dPVEFCTURsQU9VQUJRRGxRT1ZBQmtEbGdPV0FCb0Rsd09YQUJVRG1BT1lBQjhEbmdPZUFCa0Rud09mQUE0RG9RT2hBQTREb3dPakFBNERwUU9sQUJBRHBnT21BQmtEckFPc0FBY0RyUU90QUJZRHJnT3VBQUlEcndPdkFCSURzQU93QUFZRHNnT3lBQlVEdGdPMkFBMER0d08zQUJrRHZBTzhBQVFEdlFPOUFCUUR2Z08rQUJBRHZ3Ty9BQmtEd0FQQUFBY0R3UVBCQUE4RHdnUENBQm9Ed3dQREFBY0R4QVBFQUFJRHhRUEZBQklEeGdQR0FBSUR4d1BIQUJJRHlnUEtBQVlEeXdQTEFCVUR6UVBPQUJVRHp3UFBBQThEMEFQUUFCb0Qxd1BYQUFVRDJBUFlBQmNEM0FQY0FCY0QzZ1BlQUJNRDN3UGZBQjRENEFQZ0FCa0Q0UVBoQUI0RDRnUGlBQmtENHdQakFCNEQ1QVBrQUJrRDZRUHBBQThENmdQcUFCb0Q3Z1B1QUFJRDd3UHZBQklEOEFQd0FBSUQ4UVB4QUJJRDhnUHlBQUlEOHdQekFCSUQ5QVAwQUFJRDlRUDFBQklEOWdQMkFBSUQ5d1AzQUJJRCtBUDRBQUlEK1FQNUFCSUQrZ1A2QUFJRCt3UDdBQklEL0FQOEFBSUQvUVA5QUJJRC9nUCtBQUlEL3dQL0FCSUVBQVFBQUFJRUFRUUJBQklFQWdRQ0FBSUVBd1FEQUJJRUJBUUVBQUlFQlFRRkFCSUVCZ1FHQUFZRUJ3UUhBQlVFQ0FRSUFBWUVDUVFKQUJVRUNnUUtBQVlFQ3dRTEFCVUVEQVFNQUFZRURRUU5BQlVFRGdRT0FBWUVEd1FQQUJVRUVBUVFBQVlFRVFRUkFCVUVFZ1FTQUFZRUV3UVRBQlVFRkFRVUFBWUVGUVFWQUJVRUZnUVdBQWNFR0FRWUFBY0VHZ1FhQUFVRUd3UWJBQmNFSEFRY0FBVUVIUVFkQUJjRUhnUWVBQVVFSHdRZkFCY0VJQVFnQUFVRUlRUWhBQmNFSWdRaUFBVUVJd1FqQUJjRUpBUWtBQVVFSlFRbEFCY0VKZ1FtQUFVRUp3UW5BQmNFTHdRdkFCY0VNZ1F5QUFnRU5BUTBBQWdFUUFSQUFCQUVRUVJCQUJrRVFnUkNBQkFFUXdSREFCa0VSQVJFQUJBRVJRUkZBQmtFU0FSSUFBa0VTZ1JLQUFjRVRBUk1BQXdFVGdST0FBOEVUd1JQQUJvRVZBUlVBQndFVlFSVkFCOEVWZ1JXQUE4RVZ3UlhBQm9FV2dSYUFCWUVYQVJjQUIwRVhRUmRBQndFWHdSZkFBa0VZd1JqQUFjRVpRUmxBQWNFYVFScEFCQUVxUVNwQUFVQUFnRnRBQVlBQmdBQkFBc0FDd0FCQUJBQUVBQVdBQkVBRVFBWkFCSUFFZ0FXQUNVQUpRQUNBQ2NBSndBSUFDc0FLd0FJQUM0QUxnQWFBRE1BTXdBSUFEVUFOUUFJQURjQU53QWJBRGdBT0FBSkFEa0FPUUFLQURvQU9nQUxBRHNBT3dBTUFEd0FQQUFYQUQwQVBRQU5BRDRBUGdBWUFFVUFSUUFEQUVjQVNRQUVBRXNBU3dBRUFGRUFVZ0FGQUZNQVV3QUdBRlFBVkFBRkFGVUFWUUFFQUZjQVZ3QUhBRmtBV1FBT0FGb0FXZ0FQQUZ3QVhBQWNBRjBBWFFBUEFGNEFYZ0FRQUlNQWd3QUlBSklBa2dBSUFKTUFrd0FFQUpjQWx3QUlBSmdBbUFBRUFKb0FtZ0FPQUxFQXNRQUNBTElBc2dBSUFMTUFzd0FDQUxvQXVnQUVBTHdBdkFBUEFNQUF3QUFGQU1jQXlBQUVBTW9BeWdBT0FORUEwUUFKQU5JQTBnQUlBTk1BMHdBUkFOVUExUUFKQU5rQTJRQVhBTndBM0FBUkFOMEEzUUFWQU9BQTRBQVNBT3NBNndBRkFPMEE3UUFjQU84QThBQUZBUEVBOFFBVEFQSUE5QUFGQVBZQTlnQUVBUGNBOXdBRkFQZ0ErQUFVQVBrQStnQUZBUDBBL1FBRkFQOEEvd0FGQVFJQkFnQUVBUU1CQXdBVEFRUUJCQUFGQVFjQkJ3QUlBUXdCREFBQ0FSWUJGZ0FJQVJjQkZ3QUdBUmdCR0FBTEFSa0JHUUFQQVJvQkdnQUlBUndCSEFBSUFSMEJIUUFFQVI0QkhnQUlBU0FCSUFBSUFTRUJJUUFFQVRJQk1nQUpBVFVCTlFBRkFUZ0JPQUFJQVRrQk9RQUVBVG9CT2dBSkFVUUJSQUFGQVVrQlNRQUZBVXNCVEFBRUFWRUJVUUFSQVZVQlZRQUlBVllCVmdBRUFXa0JhZ0FaQVd3QmJRQUJBVzRCYmdBV0FXOEJjUUFCQVhJQmNnQVdBWFlCZHdBV0FpZ0NLUUFJQWlzQ0xBQUlBa1VDUlFBWkFrc0NVUUFDQWxJQ1VnQUlBbHdDWUFBSUFtRUNaQUFLQW1VQ1pRQU5BbVlDYkFBREFtMENjUUFFQW5ZQ2RnQUZBbmNDZXdBR0Fud0Nmd0FPQW9BQ2dRQVBBb0lDZ2dBQ0FvTUNnd0FEQW9RQ2hBQUNBb1VDaFFBREFvWUNoZ0FDQW9jQ2h3QURBb2dDaUFBSUFva0NpUUFFQW9vQ2lnQUlBb3NDaXdBRUFvd0NqQUFJQW8wQ2pRQUVBbzRDamdBSUFvOENqd0FFQXBFQ2tRQUVBcE1Da3dBRUFwVUNsUUFFQXBjQ2x3QUVBcGtDbVFBRUFwc0Ntd0FFQXB3Q25BQUlBcDBDblFBRUFwNENuZ0FJQXA4Q253QUVBcUFDb0FBSUFxRUNvUUFFQXFJQ29nQUlBcU1Db3dBRUFyRUNzUUFhQXI0Q3ZnQUZBc0FDd0FBRkFzSUN3d0FGQXNRQ3hBQUlBc1VDeFFBR0FzWUN4Z0FJQXNjQ3h3QUdBc2dDeUFBSUFza0N5UUFHQXRBQzBBQWJBdEVDMFFBSEF0SUMwZ0FiQXRNQzB3QUhBdFFDMUFBYkF0VUMxUUFIQXRZQzFnQWJBdGNDMXdBSEF0Z0MyQUFiQXRrQzJRQUhBdG9DMmdBSkF0d0MzQUFKQXQ0QzNnQUpBdUFDNEFBS0F1RUM0UUFPQXVJQzRnQUtBdU1DNHdBT0F1UUM1QUFLQXVVQzVRQU9BdVlDNWdBS0F1Y0M1d0FPQXVnQzZBQUtBdWtDNlFBT0F1b0M2Z0FLQXVzQzZ3QU9BdXdDN0FBTUF1NEM3Z0FOQXU4Qzd3QVBBdkFDOEFBTkF2RUM4UUFZQXZJQzhnQVFBdk1DOHdBWUF2UUM5QUFRQXZVQzlRQVlBdllDOWdBUUF2a0MrUUFJQTFJRFVnQUNBMVlEVmdBSUExY0RWd0FOQTFvRFdnQUNBMTBEWFFBWUEyTURZd0FJQTJZRFpnQU5BMmNEWndBWEEya0RhUUFOQTJvRGFnQUVBMndEYkFBRkEyNERiZ0FPQTNBRGNBQUdBM0lEY2dBUEEzVURkUUFPQTNZRGRnQUdBM2NEZHdBT0EzNERmZ0FhQTRFRGdRQVZBNElEZ2dBQ0E0a0RpUUFJQTR3RGpBQUlBNDBEalFBSkE0NERqZ0FYQTQ4RGp3QURBNUFEa0FBRUE1RURrUUFGQTVJRGtnQUdBNU1Ea3dBRkE1UURsQUFFQTVVRGxRQVBBNVlEbGdBY0E1Y0Rsd0FFQTVnRG1BQUZBNWtEbVFBSEE1MERuUUFGQTU0RG5nQVBBNThEbndBTUE2RURvUUFNQTZNRG93QU1BNlVEcFFBTkE2WURwZ0FQQTZjRHFBQUJBNnNEcXdBQkE2MERyUUFGQTY0RHJnQUNBNjhEcndBREE3SURzZ0FFQTdNRHN3QUZBN1lEdGdBTEE3Y0R0d0FQQTdnRHVBQUVBN2tEdVFBSUE3d0R2QUFJQTcwRHZRQUVBNzREdmdBTkE3OER2d0FQQThFRHdRQVhBOElEd2dBY0E4UUR4QUFDQThVRHhRQURBOFlEeGdBQ0E4Y0R4d0FEQThzRHl3QUVBODBEemdBRUE4OER6d0FYQTlBRDBBQWNBOVFEMUFBRkE5WUQxZ0FGQTljRDF3QUlBOWdEMkFBR0E5a0QyUUFJQTlvRDJnQUVBOXNEMndBSUE5d0QzQUFHQTk4RDN3QVZBK0FENEFBUEErRUQ0UUFWQStJRDRnQVBBK01ENHdBVkErUUQ1QUFQQStVRDVRQVNBK1lENWdBVUErZ0Q2QUFGQStrRDZRQVhBK29ENmdBY0Erc0Q2d0FFQSt3RDdBQVJBKzBEN1FBVEErNEQ3Z0FDQSs4RDd3QURBL0FEOEFBQ0EvRUQ4UUFEQS9JRDhnQUNBL01EOHdBREEvUUQ5QUFDQS9VRDlRQURBL1lEOWdBQ0EvY0Q5d0FEQS9nRCtBQUNBL2tEK1FBREEvb0QrZ0FDQS9zRCt3QURBL3dEL0FBQ0EvMEQvUUFEQS80RC9nQUNBLzhEL3dBREJBQUVBQUFDQkFFRUFRQURCQUlFQWdBQ0JBTUVBd0FEQkFRRUJBQUNCQVVFQlFBREJBY0VCd0FFQkFrRUNRQUVCQXNFQ3dBRUJBMEVEUUFFQkE4RUR3QUVCQkVFRVFBRUJCTUVFd0FFQkJVRUZRQUVCQm9FR2dBSUJCc0VHd0FHQkJ3RUhBQUlCQjBFSFFBR0JCNEVIZ0FJQkI4RUh3QUdCQ0FFSUFBSUJDRUVJUUFHQkNJRUlnQUlCQ01FSXdBR0JDUUVKQUFJQkNVRUpRQUdCQ1lFSmdBSUJDY0VKd0FHQkNnRUtBQUlCQ2tFS1FBRUJDb0VLZ0FJQkNzRUt3QUVCQ3dFTEFBSUJDMEVMUUFFQkM0RUxnQUlCQzhFTHdBR0JEQUVNQUFJQkRFRU1RQUVCRElFTWdBS0JETUVNd0FPQkRRRU5BQUtCRFVFTlFBT0JEY0VOd0FPQkRrRU9RQU9CRHNFT3dBT0JEMEVQUUFPQkQ4RVB3QU9CRUFFUUFBTkJFRUVRUUFQQkVJRVFnQU5CRU1FUXdBUEJFUUVSQUFOQkVVRVJRQVBCRWtFU1FBRkJFc0VTd0FGQkV3RVRBQUpCRTRFVGdBWEJFOEVUd0FjQkZBRVVBQVNCRkVFVVFBVUJGSUVVZ0FTQkZNRVV3QVVCRlVFVlFBRkJGWUVWZ0FYQkZjRVZ3QWNCR0lFWWdBRkJHUUVaQUFGQkdZRVpnQUZCR2NFWndBUkJHZ0VhQUFUQkdrRWFRQU5CRzhFYndBWkJLa0VxUUFJQUFFQUFBQUtBZ1lJRUFBRVJFWk1WQUFhWTNseWJBQklaM0psYXdCMmJHRjBiZ0NrQUFRQUFBQUEvLzhBRWdBQUFBb0FGQUFlQUNnQU5BQkJBRXNBVlFCZkFHa0Fjd0I5QUljQWtRQ2JBS1VBcndBRUFBQUFBUC8vQUJJQUFRQUxBQlVBSHdBcEFEVUFRZ0JNQUZZQVlBQnFBSFFBZmdDSUFKSUFuQUNtQUxBQUJBQUFBQUQvL3dBU0FBSUFEQUFXQUNBQUtnQTJBRU1BVFFCWEFHRUFhd0IxQUg4QWlRQ1RBSjBBcHdDeEFDZ0FCa0ZhUlNBQVZFTlNWQ0FBZmsxUFRDQUFxRTVCVmlBQTFGSlBUU0FCQUZSVlVpQUJMQUFBLy84QUV3QURBQTBBRndBaEFDc0FNZ0EzQUVRQVRnQllBR0lBYkFCMkFJQUFpZ0NVQUo0QXFBQ3lBQUQvL3dBU0FBUUFEZ0FZQUNJQUxBQTRBRVVBVHdCWkFHTUFiUUIzQUlFQWl3Q1ZBSjhBcVFDekFBRC8vd0FTQUFVQUR3QVpBQ01BTFFBNUFFWUFVQUJhQUdRQWJnQjRBSUlBakFDV0FLQUFxZ0MwQUFELy93QVRBQVlBRUFBYUFDUUFMZ0E2QUQ0QVJ3QlJBRnNBWlFCdkFIa0Fnd0NOQUpjQW9RQ3JBTFVBQVAvL0FCTUFCd0FSQUJzQUpRQXZBRHNBUHdCSUFGSUFYQUJtQUhBQWVnQ0VBSTRBbUFDaUFLd0F0Z0FBLy84QUV3QUlBQklBSEFBbUFEQUFQQUJBQUVrQVV3QmRBR2NBY1FCN0FJVUFqd0NaQUtNQXJRQzNBQUQvL3dBVEFBa0FFd0FkQUNjQU1RQXpBRDBBU2dCVUFGNEFhQUJ5QUh3QWhnQ1FBSm9BcEFDdUFMZ0F1V015YzJNRVdHTXljMk1FWG1NeWMyTUVaR015YzJNRWFtTXljMk1FYW1NeWMyTUVhbU15YzJNRWFtTXljMk1FYW1NeWMyTUVhbU15YzJNRWFtTmpiWEFFY0dOamJYQUVjR05qYlhBRWNHTmpiWEFFY0dOamJYQUVjR05qYlhBRWNHTmpiWEFFY0dOamJYQUVjR05qYlhBRWNHTmpiWEFFY0dSc2FXY0VlR1JzYVdjRWZtUnNhV2NFaEdSc2FXY0VpbVJzYVdjRWltUnNhV2NFaW1Sc2FXY0VpbVJzYVdjRWltUnNhV2NFaW1Sc2FXY0VpbVJ1YjIwRWtHUnViMjBFbG1SdWIyMEVuR1J1YjIwRW9tUnViMjBFb21SdWIyMEVvbVJ1YjIwRW9tUnViMjBFb21SdWIyMEVvbVJ1YjIwRW9tWnlZV01FcUdaeVlXTUVxR1p5WVdNRXFHWnlZV01FcUdaeVlXTUVxR1p5WVdNRXFHWnlZV01FcUdaeVlXTUVxR1p5WVdNRXFHWnlZV01FcUd4cFoyRUVzbXhwWjJFRXVteHVkVzBFd0d4dWRXMEV4bXh1ZFcwRXpHeHVkVzBFMG14dWRXMEUwbXh1ZFcwRTBteHVkVzBFMG14dWRXMEUwbXh1ZFcwRTBteHVkVzBFMG14dlkyd0UyR3h2WTJ3RTNteHZZMndFNUc1MWJYSUU2bTUxYlhJRThHNTFiWElFOW01MWJYSUUvRzUxYlhJRS9HNTFiWElFL0c1MWJYSUUvRzUxYlhJRS9HNTFiWElFL0c1MWJYSUUvRzl1ZFcwRkFtOXVkVzBGQ0c5dWRXMEZEbTl1ZFcwRkZHOXVkVzBGRkc5dWRXMEZGRzl1ZFcwRkZHOXVkVzBGRkc5dWRXMEZGRzl1ZFcwRkZIQnVkVzBGR25CdWRXMEZJSEJ1ZFcwRkpuQnVkVzBGTEhCdWRXMEZMSEJ1ZFcwRkxIQnVkVzBGTEhCdWRXMEZMSEJ1ZFcwRkxIQnVkVzBGTEhOdFkzQUZNbk50WTNBRk9ITnRZM0FGUG5OdFkzQUZSSE50WTNBRlJITnRZM0FGUkhOdFkzQUZSSE50WTNBRlJITnRZM0FGUkhOdFkzQUZSSE56TURFRlNuTnpNREVGVUhOek1ERUZWbk56TURFRlhITnpNREVGWEhOek1ERUZYSE56TURFRlhITnpNREVGWEhOek1ERUZYSE56TURFRlhITnpNRElGWW5Oek1ESUZhSE56TURJRmJuTnpNRElGZEhOek1ESUZkSE56TURJRmRITnpNRElGZEhOek1ESUZkSE56TURJRmRITnpNRElGZEhOek1ETUZlbk56TURNRmdITnpNRE1GaG5Oek1ETUZqSE56TURNRmpITnpNRE1GakhOek1ETUZqSE56TURNRmpITnpNRE1GakhOek1ETUZqSE56TURRRmtuTnpNRFFGbUhOek1EUUZubk56TURRRnBITnpNRFFGcEhOek1EUUZwSE56TURRRnBITnpNRFFGcEhOek1EUUZwSE56TURRRnBITnpNRFVGcW5Oek1EVUZzSE56TURVRnRuTnpNRFVGdkhOek1EVUZ2SE56TURVRnZITnpNRFVGdkhOek1EVUZ2SE56TURVRnZITnpNRFVGdkhOek1EWUZ3bk56TURZRnlITnpNRFlGem5Oek1EWUYxSE56TURZRjFITnpNRFlGMUhOek1EWUYxSE56TURZRjFITnpNRFlGMUhOek1EWUYxSE56TURjRjJuTnpNRGNGNEhOek1EY0Y1bk56TURjRjdITnpNRGNGN0hOek1EY0Y3SE56TURjRjdITnpNRGNGN0hOek1EY0Y3SE56TURjRjdIUnVkVzBGOG5SdWRXMEYrSFJ1ZFcwRi9uUnVkVzBHQkhSdWRXMEdCSFJ1ZFcwR0JIUnVkVzBHQkhSdWRXMEdCSFJ1ZFcwR0JIUnVkVzBHQkFBQUFBRUFBUUFBQUFFQUF3QUFBQUVBQWdBQUFBRUFBQUFBQUFJQUNBQUpBQUFBQVFBT0FBQUFBUUFRQUFBQUFRQVBBQUFBQVFBTkFBQUFBUUJEQUFBQUFRQkZBQUFBQVFCRUFBQUFBUUJDQUFBQUF3QS9BRUFBUVFBQUFBSUFFUUFTQUFBQUFRQVNBQUFBQVFBOEFBQUFBUUErQUFBQUFRQTlBQUFBQVFBN0FBQUFBUUFLQUFBQUFRQU1BQUFBQVFBTEFBQUFBUUJIQUFBQUFRQkpBQUFBQVFCSUFBQUFBUUJHQUFBQUFRQXdBQUFBQVFBeUFBQUFBUUF4QUFBQUFRQXZBQUFBQVFBNEFBQUFBUUE2QUFBQUFRQTVBQUFBQVFBM0FBQUFBUUFGQUFBQUFRQUhBQUFBQVFBR0FBQUFBUUFFQUFBQUFRQVVBQUFBQVFBV0FBQUFBUUFWQUFBQUFRQVRBQUFBQVFBWUFBQUFBUUFhQUFBQUFRQVpBQUFBQVFBWEFBQUFBUUFjQUFBQUFRQWVBQUFBQVFBZEFBQUFBUUFiQUFBQUFRQWdBQUFBQVFBaUFBQUFBUUFoQUFBQUFRQWZBQUFBQVFBa0FBQUFBUUFtQUFBQUFRQWxBQUFBQVFBakFBQUFBUUFvQUFBQUFRQXFBQUFBQVFBcEFBQUFBUUFuQUFBQUFRQXNBQUFBQVFBdUFBQUFBUUF0QUFBQUFRQXJBQUFBQVFBMEFBQUFBUUEyQUFBQUFRQTFBQUFBQVFBekFFc0FtQUNZQUpnQW1BUW1CQ1lFSmdRbUJ4UUh3QTVRRGxBT1pnNklEb2dPaUE2SURyNE81QThTRHhJUEVnOFNEeVlQSmc4bUR5WVBPZzg2RHpvUE9nOU9EMDRQVGc5T0QyQVBZQTlnRDJBUGVnOTZEM29QZWcrOEQ3d1B2QSs4RDlvUDJnL2FEOW9QK0EvNEQvZ1ArQkFxRUNvUUtoQXFFRndRWEJCY0VGd1FqaENpRU5vUXpCRE1FTXdRekJEYUVOb1EyaERhRVFZQUFRQUFBQUVBQ0FBQ0FjUUEzd0huQWJvQnV3RzhBYjBCdmdHL0FjQUJ3UUhDQWNNQnhBSEZBY1lCeHdISUFja0J5Z0hMQWN3QnpRSE9BYzhCMEFIUkFkSUIwd0hvQWVrQ1F3STdBZW9CNndIc0FlMEI3Z0h2QWZBQjhRSHlBZk1COUFIMUFmWUI5d0g0QWZrQitnSDdBZndCL1FIK0FnQUNBUVRjQWdJQ0F3SUVBZ1VDQmdJSEFnZ0NDUUlLQWdzQ0x3SVBBaEFDRVFJVUFoVUNGZ0lYQWhnQ0dRSWJBaHdDSGdJZEF2c0MvQUw5QXY0Qy93TUFBd0VEQWdNREF3UURCUU1HQXdjRENBTUpBd29EQ3dNTUF3MEREZ01QQXhBREVRTVNBeE1ERkFNVkF4WURGd01ZQXhrREdnTWJBeHdESFFNZUF4OERJQU1oQXlJREl3TWtBeVVESmdNbkF5Z0RLUU1xQXlzRExBTXRBeTRETHdNd0F6RURNZ016QXpRRE5RTTJBemNET0FNNUF6b0RPd004QXowRFBnTS9BMEFEUVFOQ0EwTURSUU5FQTBZRFJ3TklBMGtEU2dOTEEwd0RUUU5PQTA4RFVBTlJCS29FcXdTc0JLMEVyZ1N2QkxBRXNRU3lCTE1FdEFTMUJMWUV0d1M0QkxrRXVnUzdCTHdFdlFTK0JMOEV3QVRCQk1JRXd3VEVCTVVCL3dUR0JNY0V5QVRKQk1vRXl3VE1CTTBFemdUUEJOQUUwUVRTQk5NRTFBVFZCTmNFMkFUYUFob0Uyd0lPQk5ZQ0V3SU5CTmtDREFJU0FBRUEzd0FJQUNVQUpnQW5BQ2dBS1FBcUFDc0FMQUF0QUM0QUx3QXdBREVBTWdBekFEUUFOUUEyQURjQU9BQTVBRG9BT3dBOEFEMEFQZ0JsQUdjQWhRQ1NBTEFBc1FDeUFMTUF0QUMxQUxZQXR3QzRBTGtBMFFEU0FOTUExQURWQU5ZQTF3RFlBTmtBMmdEYkFOd0EzUURlQU44QTRBRGhBT0lBNHdEa0FPVUE1Z0RuQU9nQkxBRXdBVElCT0FFNkFUd0JQZ0UvQVVVQlJnRi9BWVVCaWdHTkFrWUNSd0pKQWtzQ1RBSk5BazRDVHdKUUFsRUNVZ0pUQWxRQ1ZRSldBbGNDV0FKWkFsb0NXd0pjQWwwQ1hnSmZBbUFDWVFKaUFtTUNaQUpsQW9JQ2hBS0dBb2dDaWdLTUFvNENrQUtTQXBRQ2xnS1lBcG9DbkFLZUFxQUNvZ0trQXFZQ3FBS3FBcXdDcmdLeEFyTUN0UUszQXJrQ3V3SzlBcjhDd1FMRUFzWUN5QUxLQXN3Q3pnTFFBdElDMUFMWUF0b0MzQUxlQXVBQzRnTGtBdVlDNkFMcUF1d0M3Z0x3QXZFQzh3TDFBMUlEVXdOVUExVURWZ05YQTFnRFdnTmJBMXdEWFFOZUExOERZQU5oQTJNRFpBTmxBMllEWndOb0Eya0RlUU42QTNzRGZBTjlBMzREZndPQUE0RURnZ09EQTRRRGhRT0dBNGNEaUFPSkE0b0Rpd09NQTQwRGpnTzZBN3dEdmdQVEE5a0Qzd1JJQkVvRVRnUldCRmdFWFFScEFBRUFBQUFCQUFnQUFnRjBBTGNCdWdHN0Fid0J2UUcrQWI4QndBSEJBY0lCd3dIRUFjVUJ4Z0hIQWNnQnlRSEtBY3NCekFITkFjNEJ6d0hRQWRFQjBnSFRBdndETHdJN0Fmb0V5UVRLQWZzQi9BSDlBZjRCL3dJQUJNMEV6Z1RRQk5NRTNBSUNBZ01DQkFJRkFnWUNCd0lJQWdrQ0NnSUxBZlFCOVFIMkFmY0IrQUg1QWk4Q0R3SVFBaEVDRkFJVkFoY0NHUUw5QXY0Qy93TUFBd0VEQWdNREF3UURCUU1HQXdjRENBTUpBd29EQ3dNTUF3MEREZ01QQXhBREVRTVNBeE1ERkFNVkF4WURGd01ZQTA0REdRTWFBeHNESEFNZEF4NERId01nQXlFRElnTWpBeVFESlFNbUF5Y0RLQU1wQXlvREt3TXNBeTBETGdNd0F6RURNZ016QXpRRE5RTTJBemNET0FNNUF6b0RPd004QXowRFBnTS9BMEFEUVFOQ0EwTURSUU5FQTBZRFJ3TklBMGtEU2dOTEEwd0RUUU5QQTFBRFVRVElCTXNFekFUUEJORUUwZ0lCQk5RRXdBVEJCTUlFd3dURUJNVUV4Z1RIQk5VRTF3VFlBaGdFMmdJYUJOc0Mrd0lPQk5ZQ0V3SU5CTmtDRmdJTUFoSUFBUUMzQUVVQVJnQkhBRWdBU1FCS0FFc0FUQUJOQUU0QVR3QlFBRkVBVWdCVEFGUUFWUUJXQUZjQVdBQlpBRm9BV3dCY0FGMEFYZ0NIQUl3QWt3RHBBT29BNndEc0FPMEE3Z0R2QVBBQThRRHlBUE1BOUFEMUFQWUE5d0Q0QVBrQStnRDdBUHdBL1FEK0FQOEJBQUVCQVFJQkF3RUVBUVVCQmdFdEFURUJNd0U1QVRzQlBRRkFBVWNDU2dKbUFtY0NhQUpwQW1vQ2F3SnNBbTBDYmdKdkFuQUNjUUp5QW5NQ2RBSjFBbllDZHdKNEFua0NlZ0o3QW53Q2ZRSitBbjhDZ0FLQkFvTUNoUUtIQW9rQ2l3S05BbzhDa1FLVEFwVUNsd0taQXBzQ25RS2ZBcUVDb3dLbEFxY0NxUUtyQXEwQ3NnSzBBcllDdUFLNkFyd0N2Z0xBQXNJQ3hRTEhBc2tDeXdMTkFzOEMwUUxUQXRVQzJRTGJBdDBDM3dMaEF1TUM1UUxuQXVrQzZ3THRBdThDOGdMMEF2WURqd09RQTVFRGtnT1RBNVFEbFFPV0E1Y0RtQU9aQTVvRG13T2NBNTBEbmdPN0E3MER2d1BOQTlRRDJnUGdCRVlFU1FSTEJFOEVWd1JaQkZvRVhnUnFBQVlBQUFBR0FCSUFLZ0JDQUZvQWNnQ0tBQU1BQUFBQkFCSUFBUUNRQUFFQUFBQktBQUVBQVFCTkFBTUFBQUFCQUJJQUFRQjRBQUVBQUFCS0FBRUFBUUJPQUFNQUFBQUJBQklBQVFCZ0FBRUFBQUJLQUFFQUFRS3RBQU1BQUFBQkFCSUFBUUJJQUFFQUFBQktBQUVBQVFPYUFBTUFBQUFCQUJJQUFRQXdBQUVBQUFCS0FBRUFBUU9jQUFNQUFBQUJBQklBQVFBWUFBRUFBQUJLQUFFQUFRUVpBQUlBQVFDbkFLc0FBQUFFQUFBQUFRQUlBQUVHSGdBMkFISUFwQUN1QUxnQXlnRDhBUTRCR0FGS0FXUUJmZ0dRQWJvQjdBSDJBaGdDTWdKRUFuWUNpQUtpQXN3QzNnTVFBeG9ESkFNMkEyZ0RjZ044QTRZRG9BTzZBOHdEOWdRb0JESUVWQVJ1QklBRXNnVEVCTjRGQ0FVYUJTUUZMZ1U0QlVJRmJBV1dCY0FGNmdZVUFBWUFEZ0FVQUJvQUlBQW1BQ3dDU3dBQ0FLY0NUQUFDQUtnQ1RnQUNBS2tEOEFBQ0FLb0VlZ0FDQUtzRDdnQUNBS3dBQVFBRUJJY0FBZ0NzQUFFQUJBS0lBQUlBcUFBQ0FBWUFEQVNKQUFJQXJBU0xBQUlCb2dBR0FBNEFGQUFhQUNBQUpnQXNBbE1BQWdDbkFsUUFBZ0NvQkFvQUFnQ3BCQWdBQWdDcUJId0FBZ0NyQkFZQUFnQ3NBQUlBQmdBTUJIWUFBZ0NvQXFJQUFnR2lBQUVBQkFTTkFBSUFyQUFHQUE0QUZBQWFBQ0FBSmdBc0FsY0FBZ0NuQWxnQUFnQ29BcVlBQWdDcEJCWUFBZ0NxQkg0QUFnQ3JCQmdBQWdDc0FBTUFDQUFPQUJRRWp3QUNBS2dFa1FBQ0FLd0Nzd0FDQWFJQUF3QUlBQTRBRkFLMUFBSUFxQVNUQUFJQXJBSzNBQUlCb2dBQ0FBWUFEQU9zQUFJQXFBU1ZBQUlBckFBRkFBd0FFZ0FZQUI0QUpBUjRBQUlBcHdLOUFBSUFxQUpiQUFJQXFRU1hBQUlBckFLL0FBSUJvZ0FHQUE0QUZBQWFBQ0FBSmdBc0Fsd0FBZ0NuQWwwQUFnQ29BbDhBQWdDcEJCd0FBZ0NxQklBQUFnQ3JCQm9BQWdDc0FBRUFCQVNaQUFJQXFBQUVBQW9BRUFBV0FCd0N5Z0FDQUtnRWdnQUNBS3NFbXdBQ0FLd0N6QUFDQWFJQUF3QUlBQTRBRkFMUUFBSUFxQVNkQUFJQXJBTFdBQUlCb2dBQ0FBWUFEQVNmQUFJQXJBTGFBQUlCb2dBR0FBNEFGQUFhQUNBQUpnQXNBbUVBQWdDbkFtSUFBZ0NvQXVBQUFnQ3BCRFFBQWdDcUJJUUFBZ0NyQkRJQUFnQ3NBQUlBQmdBTUJLRUFBZ0NwQktNQUFnQ3NBQU1BQ0FBT0FCUURud0FDQUtjRG9RQUNBS2dFcFFBQ0FLd0FCUUFNQUJJQUdBQWVBQ1FEcFFBQ0FLY0NaUUFDQUtnRVJBQUNBS2tFUWdBQ0FLb0VRQUFDQUt3QUFnQUdBQXdDOFFBQ0FLZ0Vwd0FDQUt3QUJnQU9BQlFBR2dBZ0FDWUFMQUptQUFJQXB3Sm5BQUlBcUFKcEFBSUFxUVB4QUFJQXFnUjdBQUlBcXdQdkFBSUFyQUFCQUFRRWlBQUNBS3dBQVFBRUFva0FBZ0NvQUFJQUJnQU1CSW9BQWdDc0JJd0FBZ0dpQUFZQURnQVVBQm9BSUFBbUFDd0NiZ0FDQUtjQ2J3QUNBS2dFQ3dBQ0FLa0VDUUFDQUtvRWZRQUNBS3NFQndBQ0FLd0FBUUFFQkhjQUFnQ29BQUVBQkFTT0FBSUFyQUFCQUFRRUdRQUNBS3dBQXdBSUFBNEFGQVNRQUFJQXFBU1NBQUlBckFLMEFBSUJvZ0FEQUFnQURnQVVBcllBQWdDb0JKUUFBZ0NzQXJnQUFnR2lBQUlBQmdBTUE2MEFBZ0NvQkpZQUFnQ3NBQVVBREFBU0FCZ0FIZ0FrQkhrQUFnQ25BcjRBQWdDb0FuWUFBZ0NwQkpnQUFnQ3NBc0FBQWdHaUFBWUFEZ0FVQUJvQUlBQW1BQ3dDZHdBQ0FLY0NlQUFDQUtnQ2VnQUNBS2tFSFFBQ0FLb0VnUUFDQUtzRUd3QUNBS3dBQVFBRUJKb0FBZ0NvQUFRQUNnQVFBQllBSEFMTEFBSUFxQVNEQUFJQXF3U2NBQUlBckFMTkFBSUJvZ0FEQUFnQURnQVVBdEVBQWdDb0JKNEFBZ0NzQXRjQUFnR2lBQUlBQmdBTUJLQUFBZ0NzQXRzQUFnR2lBQVlBRGdBVUFCb0FJQUFtQUN3Q2ZBQUNBS2NDZlFBQ0FLZ0M0UUFDQUtrRU5RQUNBS29FaFFBQ0FLc0VNd0FDQUt3QUFnQUdBQXdFb2dBQ0FLa0VwQUFDQUt3QUF3QUlBQTRBRkFPZ0FBSUFwd09pQUFJQXFBU21BQUlBckFBRkFBd0FFZ0FZQUI0QUpBT21BQUlBcHdLQUFBSUFxQVJGQUFJQXFRUkRBQUlBcWdSQkFBSUFyQUFDQUFZQURBTHlBQUlBcUFTb0FBSUFyQUFCQUFRQzl3QUNBS2dBQVFBRUF2a0FBZ0NvQUFFQUJBTDRBQUlBcUFBQkFBUUMrZ0FDQUtnQUJRQU1BQklBR0FBZUFDUUNjZ0FDQUtjQ2N3QUNBS2dDcHdBQ0FLa0VGd0FDQUtvRWZ3QUNBS3NBQlFBTUFCSUFHQUFlQUNRRUtnQUNBS2NFS0FBQ0FLZ0VMZ0FDQUtrRUxBQUNBS29FTUFBQ0FLd0FCUUFNQUJJQUdBQWVBQ1FFS3dBQ0FLY0VLUUFDQUtnRUx3QUNBS2tFTFFBQ0FLb0VNUUFDQUt3QUJRQU1BQklBR0FBZUFDUUVPQUFDQUtjRU5nQUNBS2dFUEFBQ0FLa0VPZ0FDQUtvRVBnQUNBS3dBQlFBTUFCSUFHQUFlQUNRRU9RQUNBS2NFTndBQ0FLZ0VQUUFDQUtrRU93QUNBS29FUHdBQ0FLd0FBUUFFQklZQUFnQ29BQUlBRVFBbEFDa0FBQUFyQUMwQUJRQXZBRFFBQ0FBMkFEc0FEZ0E5QUQ0QUZBQkZBRWtBRmdCTEFFMEFHd0JQQUZRQUhnQldBRnNBSkFCZEFGNEFLZ0NCQUlFQUxBQ0RBSU1BTFFDR0FJWUFMZ0NKQUlrQUx3Q01BSXdBTUFDWEFKb0FNUURQQU04QU5RQUJBQUFBQVFBSUFBRUFCZ0FDQUFFQUFnTFVBdFVBQVFBQUFBRUFDQUFDQUE0QUJBVGRCTjRFM3dUZ0FBRUFCQUtHQW9jQ21BS1pBQVFBQUFBQkFBZ0FBUUFtQUFJQUNnQWNBQUlBQmdBTUFhTUFBZ0JLQWFnQUFnQllBQUVBQkFHcEFBSUFXQUFCQUFJQVNnQlhBQVFBQUFBQkFBZ0FBUUJFQUFJQUNnQVVBQUVBQkFHa0FBSUFUUUFCQUFRQnBnQUNBRTBBQkFBQUFBRUFDQUFCQUI0QUFnQUtBQlFBQVFBRUFhVUFBZ0JRQUFFQUJBR25BQUlBVUFBQkFBSUFTZ0dqQUFFQUFBQUJBQWdBQVFBR0FaVUFBUUFCQUVzQUFRQUFBQUVBQ0FBQkFBWUJKd0FCQUFFQXVnQUJBQUFBQVFBSUFBRUFCZ0dzQUFFQUFRQTJBQUVBQUFBQkFBZ0FBZ0FjQUFJQjR3SGtBQUVBQUFBQkFBZ0FBZ0FLQUFJQjVRSG1BQUVBQWdBdkFFOEFBUUFBQUFFQUNBQUNBQjRBREFJb0Fpb0NLUUlyQWl3Q0h3SWdBaUVCcmdJakFpUUNKUUFCQUF3QUp3QW9BQ3NBTXdBMUFFWUFSd0JJQUVzQVV3QlVBRlVBQVFBQUFBRUFDQUFDQUF3QUF3SW1BaWNDSndBQkFBTUFTUUJMQWE0QUFRQUFBQUVBQ0FBQ0FHWUFDQUk5QWkwQ0xnSXdBakVDT1FJNkFqd0FBUUFBQUFFQUNBQUNBQllBQ0FBYkFCVUFGZ0FYQUJnQUdRQWRBQlFBQVFBSUFhMENJZ1J3QkhFRWNnUnpCSFFFZFFBQkFBQUFBUUFJQUFJQUZnQUlCSFVDSWdSd0JIRUVjZ1J6QWEwRWRBQUJBQWdBRkFBVkFCWUFGd0FZQUJrQUd3QWRBQUVBQUFBQkFBZ0FBZ0FXQUFnQUZRQVdBQmNBR0FBWkFCc0FIUUFVQUFFQUNBSXRBaTRDTUFJeEFqa0NPZ0k4QWowQUFRQUFBQUVBQ0FBQkFBWUJhUUFCQUFFQUV3QUdBQUFBQVFBSUFBTUFBUUFTQUFFQVVnQUFBQUVBQUFCS0FBSUFBZ0Y4QVh3QUFBSFVBZDBBQVFBQkFBQUFBUUFJQUFFQUtBSEFBQUVBQUFBQkFBZ0FBZ0FhQUFvQ01nQjZBSE1BZEFJekFqUUNOUUkyQWpjQ09BQUNBQUVBRkFBZEFBQUFBUUFBQUFFQUNBQUNBQ1lBRUFIVUFkVUIxZ0hYQWRnQjJRSGFBZHNCM0FIZEFrQUNQZ0pCQWtJQ1B3VGhBQUVBRUFBVUFCVUFGZ0FYQUJnQUdRQWFBQnNBSEFBZEFFMEFUZ0t0QTVvRG5BUVoiLAogICJSb2JvdG8tTWVkaXVtSXRhbGljLnR0ZiI6ICJBQUVBQUFBUkFRQUFCQUFRUjFCUFV5RWNiWThBQWhRY0FBQlpha2RUVlVMRW5MZGNBQUp0aUFBQUdYeFBVeTh5b1F1dyt3QUFBWmdBQUFCZ1kyMWhjTmh1RHhJQUFCcHNBQUFHWEdOMmRDQUVseXRLQUFBalVBQUFBRlptY0dkdGUvbGhxd0FBSU1nQUFBRzhaMkZ6Y0FBSUFCTUFBaFFRQUFBQURHZHNlV1pndWJVR0FBQXRjQUFCNDJwb1pHMTRMeHBQN3dBQUZZQUFBQVRzYUdWaFpQaTJxd3NBQUFFY0FBQUFObWhvWldFTTJ4S1JBQUFCVkFBQUFDUm9iWFI0clJxWU5BQUFBZmdBQUJPSWJHOWpZU0tacWN3QUFDT29BQUFKeG0xaGVIQUhFZ0xaQUFBQmVBQUFBQ0J1WVcxbFJ1Uno0d0FDRU53QUFBTVVjRzl6ZFA5aEFHUUFBaFB3QUFBQUlIQnlaWEFic2ZnMkFBQWloQUFBQU13QUFRQUFBQUlBQUxEaDZ2MWZEenoxQUJzSUFBQUFBQURFOEJFdUFBQUFBTkRiVHBmNlFmM1ZDWGdJY3dBQ0FBa0FBZ0FBQUFBQUFBQUJBQUFIYlA0TUFBQUpOL3BCL213SmVBZ0FBYk1BQUFBQUFBQUFBQUFBQUFBRTRnQUJBQUFFNGdDUEFCWUFWZ0FGQUFFQUFBQUFBQTRBQUFJQUFmSUFCZ0FCQUFNRUdRSDBBQVVBQUFXYUJUTUFBQUVmQlpvRk13QUFBOUVBWmdJQUFBQUNBQUFBQUFBQUFBQUE0QUFLLzFBQUlYOEFBQUFoQUFBQUFFZFBUMGNBQVFBQS8vMEdBUDRBQUdZSG1nSUFJQUFCbndBQUFBQUVPZ1d3QUNBQUlBQUNBNVlBWkFBS0FBQUFDZ0FBQWZrQUFBSDVBQUFDSHdBM0FvNEFvUVRIQURzRWN3QkNCYjBBdFFVQUFDMEJXZ0NRQXI4QWFBTEcvNVFEZUFCbkJGMEFQUUcvLzRrQ2xnQTJBalVBTUFNYy8zOEVjd0JnQkhNQTd3UnpBQXNFY3dBbUJITUFDUVJ6QUZvRWN3QmpCSE1BaGdSekFEc0Vjd0NPQWhrQUt3SGkvNW9EL0FBeUJHSUFZZ1FVQUM4RDBBQ1ZCdnNBTWdVMC82UUU3d0FuQlJzQVpRVWNBQ2NFYlFBbkJFMEFKd1ZTQUdzRmpRQW5BanNBTlFSWkFBTUU3Z0FuQkQwQUp3YlZBQ2NGakFBbkJXWUFhd1VBQUNjRlpnQmtCT0lBSndTNUFDUUV3QUNjQlJrQVd3VVBBSnNHM2dDM0JQUC93d1RGQUtFRXR2L2xBaXIvN3dOSUFLd0NLdjk2QTFzQVJBT0svM2tDaWdES0JEMEFJZ1JvQUJBRUdnQTRCR3NBT3dRMEFEc0N5Z0JmQkhELzl3UlpBQTBDQlFBZkFmei9EQVFYQUJFQ0JRQWZCc3NBRUFSYkFBMEVkUUE1QkdqL3h3UnlBRHNDeEFBUUJBc0FIQUtmQURzRVdnQktBK0VBWkFYT0FIY0Q4Zis1QTlIL3RRUHgvK2NDcEFBd0FmMEFJQUtrLzVrRk1nQmJBZmtBQUFJWS8rWUVaUUJNQkp2LzlnVjhBQWdFeFFCUUFmZi83QVRjLzl3RGRBRFJCaDRBWGdPQUFMNER6Z0JKQkZVQWdBS1dBRFlHSGdCZUE4Y0E3d0w5QU9RRU13QWJBdWtBVmdMcEFHY0NrUURJQktILzNRUFpBSDBDT3dDZUFnci8wd0xwQU9FRGxRQytBODRBQWdXdEFMa0dCZ0N4QmpBQWxnUFEvOUlGTlAra0JUVC9wQVUwLzZRRk5QK2tCVFQvcEFVMC82UUhWZitIQlJzQVpRUnRBQ2NFYlFBbkJHMEFKd1J0QUNjQ093QTFBanNBTlFJN0FEVUNPd0ExQlRyLy93V01BQ2NGWmdCckJXWUFhd1ZtQUdzRlpnQnJCV1lBYXdRdEFDTUZaQUFWQlJrQVd3VVpBRnNGR1FCYkJSa0FXd1RGQUtFRXJ3QW5CTXNBR3dROUFDSUVQUUFpQkQwQUlnUTlBQ0lFUFFBaUJEMEFJZ2FYQUE4RUdnQTRCRFFBT3dRMEFEc0VOQUE3QkRRQU93SVVBQ0lDRkFBaUFoUUFJZ0lVQUNJRWpRQkdCRnNBRFFSMUFEa0VkUUE1QkhVQU9RUjFBRGtFZFFBNUJIZ0FQUVJ2QUNvRVdnQktCRm9BU2dSYUFFb0VXZ0JLQTlIL3RRUisvODBEMGYrMUJUVC9wQVE5QUNJRk5QK2tCRDBBSWdVMC82UUVQUUFpQlJzQVpRUWFBRGdGR3dCbEJCb0FPQVViQUdVRUdnQTRCUnNBWlFRYUFEZ0ZIQUFuQlFFQU93VTYvLzhFaVFBN0JHMEFKd1EwQURzRWJRQW5CRFFBT3dSdEFDY0VOQUE3QkcwQUp3UTBBRHdFYlFBbkJEUUFPd1ZTQUdzRWNQLzNCVklBYXdSdy8vY0ZVZ0JyQkhELzl3VlNBR3NFY1AvM0JZMEFKd1JaQUEwRmpnQXVCSGNBS3dJN0FEVUNGQUFVQWpzQU5RSVVBQjhDT3dBMUFoUUFJZ0k3LzQ0Q0JmOTJBanNBTlFJVUFDSUdsQUExQkFFQUh3UlpBQU1DSVA4UEJPNEFKd1FYQUJFRWZ3QWhCRDBBSndJRkFCOEVQUUFuQWdYL29nUTlBQ2NDbXdBZkJEMEFKd0xoQUI4RVRBQWhBa2NBSHdXTUFDY0VXd0FOQll3QUp3UmJBQTBGakFBbkJGc0FEUVJiQUEwRmNnQWpCRzhBRVFWbUFHc0VkUUE1QldZQWF3UjFBRGtGWmdCckJIVUFPUWVEQUZBSERRQkNCT0lBSndMRUFCQUU0Z0FuQXNUL25BVGlBQ2NDeEFBUUJMa0FKQVFMQUJ3RXVRQWtCQXNBSEFTNUFDUUVDd0FjQkxrQUpBUUxBQndFd0FDY0FwOEFPd1RBQUp3Q3h3QTdCTUFBbkFLZi8rSUZHUUJiQkZvQVNnVVpBRnNFV2dCS0JSa0FXd1JhQUVvRkdRQmJCRm9BU2dVWkFGc0VXZ0JLQlJrQVd3UmFBRW9HM2dDM0JjNEFkd1RGQUtFRDBmKzFCTVVBb1FTMi8rVUQ4Zi9uQkxiLzVRUHgvK2NFdHYvbEEvSC81d0lHQUI0RmFBQk9Bc1QvU2dWcEFGc0VoUUEyQllNQVd3VFdBRW9DSVA4UEJWSUFhd1J3Ly9jRmpBQW5CRnNBRFFVMC82UUVQUUFpQjFYL2h3YVhBQThGWkFBVkJHOEFLZ1UwLzZRRVBRQWlCRzBBSndRMEFEc0NPLy9KQWhUL2ZnVm1BR3NFZFFBNUJPSUFKd0xFQUFjRkdRQmJCRm9BU2dTNUFDUUVDd0FjQk1BQW5BS2ZBRHNDSVA4UEJDVUFOZ0c1QUlvRDBnRUNBNTRCRFFQSUFPOERhd0QrQWdVQkFnS25BUG9DUmYrb0E4UUEzZ01SQUt3Q1kvL3VBQXI5VkFBSy9kY0FDdnoyQUFyOTFnQUsvTDhBQ3Z5Z0FsVUJMZ1FsQU9nRk5QK2tBanNBbmdUUi83NEY4Zi9HQXAvL3lnVjZBQmdGS2Y5WUJWQUFIUUtnQUFzRk5QK2tCTzhBSndSZEFDNEZuZitxQkcwQUp3UzIvK1VGalFBbkJWb0FYZ0k3QURVRTdnQW5CUnIvc2diVkFDY0ZqQUFuQkhjQUFBVm1BR3NGandBdUJRQUFKd1IzLzl3RXdBQ2NCTVVBb1FYTEFGSUU4Ly9EQllrQWRRVThBQWtDT3dBMUJNVUFvUVJyQUQ0RVNBQW9CRzhBRVFLZ0FHNEVTQUJYQkdzQVBnU3IvK1VEK1FCM0JHOEFPQVJJQUNnRUJRQm1CRzhBRVFTSEFHd0NvQUJ1Qkg4QUlRUlMvNmdFb2YvZEErRUFaQVArQUQ0RWRRQTVCTmNBWFFSdi84c0VJUUE3QkhjQU9BUVhBRzRFU0FCWEJhMEFNZ1B4LzdrRnB3QS9CbXNBVkFLZ0FFd0VTQUJYQkhVQU9RUklBRmNHYXdCVUJKa0FVQVJqQUcwRXgvOGtCa29BVndSdEFDY0ViUUFuQmRvQWtRUmRBQzRGT2dCbkJMa0FKQUk3QURVQ093QTFCRmtBQXdoUS84b0lWd0F1QmpRQW9BVHVBQ2NGaHdBbkJPMEFtd1dKQUNVRk5QK2tCT3NBSXdUdkFDY0VYUUF1QmVML2hBUnRBQ2NIY2YrbEJMc0FIZ1dIQUNjRmh3QW5CUW9BTGdXSS84b0cxUUFuQlkwQUp3Vm1BR3NGandBdUJRQUFKd1ViQUdVRXdBQ2NCTzBBbXdZNEFGWUU4Ly9EQmRVQUpRVm9BTVVIYXdBckI4WUFLd1gxQUlrR3pRQXVCT29BSXdVeEFFOEhKZ0F5Qk52L3NBUTlBQ0lFWlFCREJIWUFJZ05LQUJnRTJ2K0ZCRFFBT3daTy82MEVBUUFXQkg4QUdRUi9BQmtFVmdBaUJJSC92d1hmQUNJRWZnQVpCSFVBT1FSL0FCa0VhUC9IQkJvQU9BUGhBRk1EMGYrMUJiQUFQUVB4LzdrRXVBQVpCRTRBY0FabUFCa0d3UUFTQlBvQVR3WklBQ0lFVUFBaUJDVUFJd1pjQUNRRVdQKzJCRFFBT3dRMEFEc0VXUUFOQTBvQUdBUWxBRHNFQ3dBY0FnVUFId0lVQUNJQi9QOE1CcWYvdlFhNUFCa0VjQUFOQkZZQUlnUi9BQmtEMGYrMUJIOEFHUWNiQUdBR0tRQkVCT29BSXdSUEFDRUcrd0FyQmQwQUdRVHYvNjRFU1ArY0J4UUFQZ1lRQURBR3dnQVVCY01BRmdqMUFEVUh4Z0FpQkFyL3FnUGMvN1VGaVFCMUJhY0FQd1ZhQUdJRWJ3QTJCUDBBcUFQNUFIY0UvUUNvQS9rQWR3azNBR3NJUmdBNUJWb0FaZ1J2QURnSEZ3QmlCaDRBU3djYkFHQUdLUUJFQlAwQVZnUXpBRVVFNHdBNEFBcjg1Z0FLL1E0QUN2NHJBQXIrUEFBSytrRUFDdnB2QlljQUp3Ui9BQmtFNmdBakJFOEFJUVQyQUNjRWJmL0hCRklBSWdPUEFCRUVYZi84QTByL3l3U2RBQzRFQ2dBUkIzSC9wUVpPLzYwRXV3QWVCQUVBRmdVS0FDNEVWZ0FpQlE0QUl3U1JBQ0VGSGdBM0JDNEFHUVpzQUtRRmd3QnNCWTBBSndSK0FCa0huZ0FuQllrQUVRZ1JBQzRHeWdBUkJnVUFaUVRqQUVzRkd3QmxCQm9BT0FUQUFKd0Q0UUJUQk1VQW9RUDVBSGNFeFFDaEEva0FWQVR6LzhNRDhmKzVCd1FBblFWUUFGWUZhQURGQkU0QWNBVlVBTGtFV3dDRkJXY0E1d1JaQUEwRi93QmlCS2ovOUFYL0FHSUVxUC8wQWpzQU5RZHgvNlVHVHYrdEJRUUFJd1JnQUNFRmlQL0tCSUgvdndXTkFDNEVid0FSQlkwQUp3UitBQmtGYUFERkJFNEFjQWJWQUNjRjN3QWlBanNBTlFVMC82UUVQUUFpQlRUL3BBUTlBQ0lIVmYrSEJwY0FEd1J0QUNjRU5BQTdCV2dBU0FRbEFEWUZhQUJJQkNVQU5nZHgvNlVHVHYrdEJMc0FIZ1FCQUJZRWpBQXZCSXovOEFXSEFDY0Vmd0FaQlljQUp3Ui9BQmtGWmdCckJIVUFPUVZhQUdJRWJ3QTJCVm9BWWdSdkFEWUZNUUJQQkNVQUl3VHRBSnNEMGYrMUJPMEFtd1BSLzdVRTdRQ2JBOUgvdFFWb0FNVUVUZ0J3QkYwQUxnTktBQmdHelFBdUJrZ0FJZ1NzQURNRFF3QUpCUFAvd3dQeC83a0U4Ly9EQS9IL3VRVHFBREFFYXdBN0JzWUFSUWF5QUVjR0xBQ3FCUW9BWVFSakFKSUVKd0NNQjQzLzNnWjAvOTRIeWdBbkJuVUFDd1RuQUV3RUZnQTlCWWtBa0FVQUFITUZOZ0JXQkVnQUtBV0kvOG9FZ2YrL0JUVC9wQVE5QUNJRTd3QW5CR2dBRUFVY0FDY0Vhd0E3QlJ3QUp3UnJBRHNGalFBbkJGa0FEUVR1QUNjRUZ3QVJCTzRBSndRWEFCRUVQUUFuQWdYLzVBYlZBQ2NHeXdBUUJ0VUFKd2JMQUJBRmpBQW5CRnNBRFFVQUFDY0VhUC9IQk9JQUp3TEUvOTRFdVFBa0JBc0FIQVRBQUp3Q253QTdCUThBbXdQaEFHUUZEd0NiQStFQVpBYmVBTGNGemdCM0J0NEF0d1hPQUhjRzNnQzNCYzRBZHdiZUFMY0Z6Z0IzQkxiLzVRUHgvK2NGTlAra0JEMEFJZ1UwLzZRRVBRQWlCVFQvcEFROUFDSUZOUCtrQkQwQUlnVTAvNlFFUFFBaUJUVC9wQVE5QUNJRk5QK2tCRDBBSWdVMC82UUVQUUFpQlRUL3BBUTlBQ0lGTlAra0JEMEFJZ1UwLzZRRVBRQWlCVFQvcEFROUFDSUViUUFuQkRRQU93UnRBQ2NFTkFBN0JHMEFKd1EwQURzRWJRQW5CRFFBT3dSdEFDY0VOQUE3QkcwQUp3UTBBRHNFYlFBbkJEUUFPd1J0QUNjRU5BQTdBanNBTlFJVUFDSUNPLy8vQWdYLzVBVm1BR3NFZFFBNUJXWUFhd1IxQURrRlpnQnJCSFVBT1FWbUFHc0VkUUE1QldZQWF3UjFBRGtGWmdCckJIVUFPUVZtQUdzRWRRQTVCV2tBV3dTRkFEWUZhUUJiQklVQU5nVnBBRnNFaFFBMkJXa0FXd1NGQURZRmFRQmJCSVVBTmdVWkFGc0VXZ0JLQlJrQVd3UmFBRW9GZ3dCYkJOWUFTZ1dEQUZzRTFnQktCWU1BV3dUV0FFb0Znd0JiQk5ZQVNnV0RBRnNFMWdCS0JNVUFvUVBSLzdVRXhRQ2hBOUgvdFFURkFLRUQwZisxQk1VQW9RUFIvN1VGclA2ekF4NEE3QVAvQUFBSDlBQUFBLzhBQUFmMEFBQUNyZ0FBQWdRQUFBRmNBQUFFWmdBQUFpa0FBQUdmQUFBQTFRQUFBQW9BQUFLWEFEWUNsd0EyQlFzQW5BWUtBSUlHQ2dDQ0E0di9UZ0c5QUs0QnVRQ0tBY3IvcEFHbEFNMERCZ0MzQXcwQWx3TDcvNkVFUlFCcEJJRC8rd0xBQUo0RDVRQXpCWVVBTXdGckFEWUhkZ0NkQVZvQWtBS09BS0VDYVFCZEFtRC8rUVErQURjRGl2L2hBdWtBWXdOTUFHNEVUZi9EQkp2LzlnWkpBQTBHamdBckNGc0FKd2RZQUNvR1pBQVFCSW4vOUFSekFFNEYwUUJDQkI0QU93U0lBQkFGUC8va0JWMy81Z1hCQU1JRHpnQXhCL2tBSXdUc0FPMEU5d0I5Qmc4QXRnYXlBSUlHcHdDSUJua0F0UVI0QUVVRmRRQWZCTDcvcHdScUFKd0VtQUEwQ0E4QVNRSW0veGNFZFFBd0JHSUFZZ1A4LzlVRUZBQVhBL2NBT2dKVEFHa0NqZ0JtQWV6L3p3VCtBRjhFamdCTEJLSUFYd2IyQUY4RzlnQmZCUFFBWHdhTkFCY0FDZ0FBQi92L3FRZzFBRndEaHYvWEJHUC9wd1NtQURvRVkvK25BNllBQ2dRMkFDMEVUZ0FSQkI0QURnUVhBQlFGR3dBdUJCb0FGQVVLQUM0RkpnQXVCS0VBT3dRbC80Y0Nwd0VHQkwwQUNnTHBBRE1DNlFBSUF1a0FJd0xwQUJZQzZRQUtBdW4vOFFMcC8vUUM2Zi9qQXVrQWJRTHBBQmNFQlAvWkJYd0FRd1UxQUhBRXlBQUFBNllBa3dYakFJd0VZd0J3QkdzQU9RUWxBR0lFSGdBT0JFVUFDZ1NtQURjRVZRQUtCS1lBT2dUQ0FBb0Y0Z0FLQTZZQUNnUkVBQW9Ed3YveUFmY0FHQVREQUFvRWpBQS9BN0lBQ2dQTUFBb0VZZ0FLQkdjQU9RUklBQW9FaGYrYkFmOEE2d09QQVFRRDlnRGNBL1lBRXdQMkFOZ0Q5Z0RYQTQ4QkJBT1BBUVVEandFRUJFYi9wQVFsQUcwRVp3QTVCWEFBWWdRZEFGVUVlZ0FxQWdyL0J3R3cvN0lFRlAvV0J5Yi93UWNwQUFvRmRnQmlCTHdBQ2dSWkFBc0ZPditEQmhUL3FRUXZBQXdFeUFBTEJFVUFDZ1N3LzhFRUx3QnlCVDRBQ2dSekFGMEdYQUFLQnQ0QUNnVTdBRW9GK3dBTEJFOEFDd1JuQUJNR2FnQUtCRy8vMGdRTS8vVUdhditwQklRQUNnVDlBQW9GVGdCaUJjd0FRQVJEQUcwRXFmK2tCbXdBWWdSekFGMEVjd0FLQmRvQU53UzNBRFFFTHdBTUJLWUFPZ1JPQUFRRDR3QWVDQUVBQ2dUUC85a0Vid0FRQkNZQU53Ui9BRHNEa2dDa0JJY0FOQVI3LzhjRWhnQTdCRFFBT3dSd0FEQUZXZ0J2QllFQWNRVm1BQzRGdlFCeUJiOEFjZ1FGQUtzRWFRQWZBNllBQ2dSQS8zOEVwUC9SQXVrQWlnTHBBR1FDNlFCOUF1a0FpUUxwQUpZQzZRQjdBdWtBcGdSVC85UUVHQUFuQm04QU9nU2FBRWNFendCT0FpRC9Ed0lnL3c4Q0ZRQWlBaFgvZlFJVkFDSUVTQUFLQkdML2x3UmkvNWNFSlFCaUJJWC9td1NGLzVzRWhmK2JCSVgvbXdTRi81c0VoZitiQklYL213Um5BRGtEekFBS0E4d0FDZ1BNQUFvRHpBQUtBZmNBR0FIM0FCZ0I5d0FZQWZjQUdBVENBQW9FcGdBNkJLWUFPZ1NtQURvRXBnQTZCS1lBT2dSckFEa0Vtd0IwQkljQWpnUnpBRm9FY3dBSkJITUFKZ1J6QUFzRWF3QTVCR3NBT1FSckFEa0VKUUJ0QklYL213U0YvNXNFaGYrYkJHY0FPUVJuQURrRVp3QTVCR2NBT1FSaUFBb0R6QUFLQTh3QUNnUE1BQW9EekFBS0E4d0FDZ1NNQUQ4RWpBQS9CSXdBUHdTTUFEOEV3d0FLQWZjQURRSDNBQmdCOXdBWUFmZi9pZ0gzQUJnRHd2L3lCRVFBQ2dPbUFBb0RwZ0FLQTZZQUNnT21BQW9Fd2dBS0JNSUFDZ1RDQUFvRXBnQTZCS1lBT2dTbUFEb0VSUUFLQkVVQUNnUkZBQW9FSGdBT0JCNEFEZ1FlQUE0RUhnQU9CQ1VBWWdRbEFHSUVKUUJpQkdzQU9RUnJBRGtFYXdBNUJHc0FPUVJyQURrRWF3QTZCZU1BakFRbEFHMEVKUUJ0QkJULzFnUVUvOVlFRlAvV0JJWC9td1FJLzIwRS8vOTRBalAvZXdTdy85SUVZZjhzQk5MLzRnU0YvNXNFU0FBS0E4d0FDZ1FVLzlZRXd3QUtBZmNBR0FSRUFBb0Y0Z0FLQktZQU9nUlZBQW9FSlFCaUJDVUFiUVJHLzZRQjl3QVlCQ1VBYlFQTUFBb0RwZ0FLQkI0QURnSDNBQmdCOXdBWUE4TC84Z1JFQUFvRUx3QnlCSVgvbXdSSUFBb0RwZ0FLQTh3QUNnVElBQXNGNGdBS0JNTUFDZ1NtQURvRXZRQUtCRlVBQ2dSbkFEa0VKUUJpQkViL3BBUXZBQTBFd3dBS0JHY0FPZ1FsQUcwRjJnQTNCTWdBQ3dRdkFISUZmQUJEQlRUL3BBUTlBQ0lFYlFBbkJEUUFPd0lVLytRQUFBQUJBQUFFNUFrS0JBQUFBZ0lDQXdVRkJnWUNBd01FQlFJREFnUUZCUVVGQlFVRkJRVUZBZ0lFQlFVRUNBWUdCZ1lGQlFZR0F3VUdCUWdHQmdZR0JnVUZCZ1lJQmdVRkFnUUNCQVFEQlFVRkJRVURCUVVDQWdVQ0NBVUZCUVVEQlFNRkJBY0VCQVFEQWdNR0FnSUZCUVlGQWdVRUJ3UUVCUU1IQkFNRkF3TURCUVFEQWdNRUJBWUhCd1FHQmdZR0JnWUlCZ1VGQlFVREF3TURCZ1lHQmdZR0JnVUdCZ1lHQmdVRkJRVUZCUVVGQlFjRkJRVUZCUUlDQWdJRkJRVUZCUVVGQlFVRkJRVUZCQVVFQmdVR0JRWUZCZ1VHQlFZRkJnVUdCZ1lGQlFVRkJRVUZCUVVGQlFZRkJnVUdCUVlGQmdVR0JRTUNBd0lEQWdNQ0F3SUhCUVVDQmdVRkJRSUZBZ1VEQlFNRkF3WUZCZ1VHQlFVR0JRWUZCZ1VHQlFnSUJnTUdBd1lEQlFVRkJRVUZCUVVGQXdVREJRTUdCUVlGQmdVR0JRWUZCZ1VJQndVRUJRVUVCUVFGQkFJR0F3WUZCZ1VDQmdVR0JRWUZDQWNHQlFZRkJRVURBZ1lGQmdNR0JRVUZCUU1DQlFJRUJBUUVBZ01EQkFNREFBQUFBQUFBQXdVR0F3VUhBd1lHQmdNR0JnVUdCUVVHQmdNR0JnZ0dCUVlHQmdVRkJRY0dCZ1lEQlFVRkJRTUZCUVVFQlFVRkJRVURCUVVGQkFRRkJRVUZCUVVGQmdRR0J3TUZCUVVIQlFVRkJ3VUZCd1VHQlFNREJRa0pCd1lHQmdZR0JnWUZCd1VJQlFZR0JnWUlCZ1lHQmdZRkJnY0dCd1lJQ1FjSUJnWUlCUVVGQlFRRkJRY0ZCUVVGQlFjRkJRVUZCUVFFQmdRRkJRY0lCZ2NGQlFjRkJRVUZCQVVGQWdJQ0J3Z0ZCUVVFQlFnSEJnVUlCd1lGQ0FjSUJnb0pCUVFHQmdZRkJnUUdCQW9KQmdVSUJ3Z0hCZ1VHQUFBQUFBQUFCZ1VHQlFZRkJRUUZCQVVGQ0FjRkJRWUZCZ1VHQlFjR0JnVUpCZ2tJQndZR0JRVUVCUVFGQkFZRUNBWUdCUVlGQmdVSEJRY0ZBd2dIQmdVR0JRWUZCZ1VHQlFnSEF3WUZCZ1VJQndVRkJnVUdCUWdIQlFVRkJRWUZCZ1VHQlFZRkJnVUdCUVlFQmdRR0JBWUZCUVFJQndVRUJnUUdCQVlGQ0FnSEJnVUZDUWNKQndZRkJnWUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUZBZ2dJQ0FnR0JRWUZCZ01GQlFVREJnUUdCQWdIQ0FjSUJ3Z0hCUVFHQlFZRkJnVUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkF3SURBZ1lGQmdVR0JRWUZCZ1VHQlFZRkJnVUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUdCUVlGQlFRRkJBVUVCUVFHQkFVSkJRa0RBZ0lGQWdJQkFBTURCZ2NIQkFJQ0FnSURBd01GQlFNRUJnSUlBZ01EQXdVRUF3UUZCUWNIQ1FnSEJRVUhCUVVHQmdZRUNRWUdCd2dIQndVR0JRVUZDUUlGQlFRRkJBTURBZ1lGQlFnSUJnY0FDUWtFQlFVRkJBVUZCUVVHQlFZR0JRVURCUU1EQXdNREF3TURBd01GQmdZRkJBY0ZCUVVGQlFVRkJRVUhCQVVFQWdVRkJBUUZCUVVGQWdRRUJBUUVCQVFFQlFVRkJnVUZBZ0lGQ0FnR0JRVUdCd1VGQlFVRkJnVUhDQVlIQlFVSEJRVUhCUVlHQndVRkJ3VUZCd1VGQlFVRUNRVUZCUVVFQlFVRkJRVUdCZ1lHQmdVRkJBVUZBd01EQXdNREF3VUZCd1VGQWdJQ0FnSUZCUVVGQlFVRkJRVUZCUVVFQkFRRUFnSUNBZ1VGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUVCQVFFQkFVRkJRVUZBZ0lDQWdJRUJRUUVCQVFGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJ3VUZCUVVGQlFVR0FnVUZCUVVGQkFVRkFnVUhCUVVGQlFVQ0JRUUVCUUlDQkFVRkJRVUVCQVVIQlFVRkJRVUZCUVVGQlFVSEJRVUdCZ1VGQlFJQUFBQURBQUFBQXdBQUFCd0FBd0FCQUFBQUhBQURBQW9BQUFLa0FBUUNpQUFBQUo0QWdBQUdBQjRBQUFBQ0FBMEFmZ0YvQVk4QmtnR2hBYkFCOEFIL0Foc0NOd0paQXJ3Q3h3TEpBdDBDOHdNQkF3TURDUU1QQXlNRGlnT01BNkVEemdQU0E5WUVoZ1VUSGdFZVB4NkZIdmtmVFNBTElCRWdGU0FlSUNJZ0p5QXdJRE1nT2lBOElFUWdkQ0IvSUtRZ3JDQ3hJTG9ndlNFRklSTWhGaUVpSVNZaExpRmVJZ0lpQmlJUEloSWlHaUllSWlzaVNDSmdJbVVseXU0QzlzUDdCUDcvLy8zLy93QUFBQUFBQWdBTkFDQUFvQUdQQVpJQm9BR3ZBZkFCK2dJWUFqY0NXUUs4QXNZQ3lRTFlBdk1EQUFNREF3a0REd01qQTRRRGpBT09BNk1EMFFQV0JBQUVpQjRBSGo0ZWdCNmdIMDBnQUNBUUlCTWdGeUFnSUNVZ01DQXlJRGtnUENCRUlIUWdmeUNqSUtZZ3NTQzVJTHdoQlNFVElSWWhJaUVtSVM0aFd5SUNJZ1lpRHlJUklob2lIaUlySWtnaVlDSmtKY3J1QWZiRCt3SCsvLy84Ly84QUFRQUEvL2IvNVAvRC83VC9zditsLzVqL1dmOVUvMGovTGY4TS9xcitvZjZnL3BMK2ZmNXgvbkQrYS81bS9sUDk4LzN5L2ZIOThQM3UvZXo5dy8zQzVOYmtxT1I0NUdMa0QrTmU0MXJqV2VOWTQxZmpWZU5ONDB6alIrTkc0ei9qRU9NRzR1UGk0dUxlNHRmaTF1S1A0b0xpZ09KMTRIUGlhdUkrNFp2ZmYrR1A0WTdoaCtHRTRYamhYT0ZGNFVMZDNoV29ET2dJckFTMEE3Z0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBQUFBQTdnQUFBQUFBQUFBVGdBQUFBQUFBQUFBQUFBQUFRQUFBQUlBQUFBQ0FBQUFBZ0FBQUEwQUFBQU5BQUFBQXdBQUFDQUFBQUIrQUFBQUJBQUFBS0FBQUFGL0FBQUFZd0FBQVk4QUFBR1BBQUFCUXdBQUFaSUFBQUdTQUFBQlJBQUFBYUFBQUFHaEFBQUJSUUFBQWE4QUFBR3dBQUFCUndBQUFmQUFBQUh3QUFBQlNRQUFBZm9BQUFIL0FBQUJUZ0FBQWhnQUFBSWJBQUFCWUFBQUFqY0FBQUkzQUFBQlpBQUFBbGtBQUFKWkFBQUJaUUFBQXJ3QUFBSzhBQUFCWmdBQUFzWUFBQUxIQUFBQlp3QUFBc2tBQUFMSkFBQUJhUUFBQXRnQUFBTGRBQUFCYWdBQUF2TUFBQUx6QUFBQmNBQUFBd0FBQUFNQkFBQUJjUUFBQXdNQUFBTURBQUFCY3dBQUF3a0FBQU1KQUFBQmRBQUFBdzhBQUFNUEFBQUJkUUFBQXlNQUFBTWpBQUFCZGdBQUE0UUFBQU9LQUFBQmR3QUFBNHdBQUFPTUFBQUJmZ0FBQTQ0QUFBT2hBQUFCZndBQUE2TUFBQVBPQUFBQmt3QUFBOUVBQUFQU0FBQUJ2d0FBQTlZQUFBUFdBQUFCd2dBQUJBQUFBQVNHQUFBQnd3QUFCSWdBQUFVVEFBQUNTZ0FBSGdBQUFCNEJBQUFDMWdBQUhqNEFBQjQvQUFBQzVnQUFIb0FBQUI2RkFBQUMrQUFBSHFBQUFCNzVBQUFEQWdBQUgwMEFBQjlOQUFBRFhBQUFJQUFBQUNBTEFBQURYZ0FBSUJBQUFDQVJBQUFEYWdBQUlCTUFBQ0FWQUFBRGJBQUFJQmNBQUNBZUFBQURid0FBSUNBQUFDQWlBQUFEZHdBQUlDVUFBQ0FuQUFBRGVnQUFJREFBQUNBd0FBQURmUUFBSURJQUFDQXpBQUFEZmdBQUlEa0FBQ0E2QUFBRGdBQUFJRHdBQUNBOEFBQURnZ0FBSUVRQUFDQkVBQUFEZ3dBQUlIUUFBQ0IwQUFBRGhBQUFJSDhBQUNCL0FBQURoUUFBSUtNQUFDQ2tBQUFEaGdBQUlLWUFBQ0NzQUFBRGlBQUFJTEVBQUNDeEFBQURqd0FBSUxrQUFDQzZBQUFEa0FBQUlMd0FBQ0M5QUFBRGtnQUFJUVVBQUNFRkFBQURsQUFBSVJNQUFDRVRBQUFEbFFBQUlSWUFBQ0VXQUFBRGxnQUFJU0lBQUNFaUFBQURsd0FBSVNZQUFDRW1BQUFCbVFBQUlTNEFBQ0V1QUFBRG1BQUFJVnNBQUNGZUFBQURtUUFBSWdJQUFDSUNBQUFEblFBQUlnWUFBQ0lHQUFBQmhRQUFJZzhBQUNJUEFBQURuZ0FBSWhFQUFDSVNBQUFEbndBQUlob0FBQ0lhQUFBRG9RQUFJaDRBQUNJZUFBQURvZ0FBSWlzQUFDSXJBQUFEb3dBQUlrZ0FBQ0pJQUFBRHBBQUFJbUFBQUNKZ0FBQURwUUFBSW1RQUFDSmxBQUFEcGdBQUpjb0FBQ1hLQUFBRHFBQUE3Z0VBQU80Q0FBQURxUUFBOXNNQUFQYkRBQUFEcXdBQSt3RUFBUHNFQUFBRHJRQUEvdjhBQVA3L0FBQURzd0FBLy93QUFQLzlBQUFEdExBQUxFdXdDVkJZc1FFQmpsbTRBZitGc0lRZHNRa0RYMTR0c0FFc0lDQkZhVVN3QVdBdHNBSXNzQUVxSVMyd0F5d2dSckFESlVaU1dDTlpJSW9naWtsa2lpQkdJR2hoWkxBRUpVWWdhR0ZrVWxnalpZcFpMeUN3QUZOWWFTQ3dBRlJZSWJCQVdSdHBJTEFBVkZnaHNFQmxXVms2TGJBRUxDQkdzQVFsUmxKWUk0cFpJRVlnYW1Ga3NBUWxSaUJxWVdSU1dDT0tXUy85TGJBRkxFc2dzQU1tVUZoUldMQ0FSQnV3UUVSWkd5RWhJRVd3d0ZCWXNNQkVHeUZaV1Myd0Jpd2dJRVZwUkxBQllDQWdSWDFwR0VTd0FXQXRzQWNzc0FZcUxiQUlMRXNnc0FNbVUxaXdRQnV3QUZtS2lpQ3dBeVpUV0NNaHNJQ0tpaHVLSTFrZ3NBTW1VMWdqSWJEQWlvb2JpaU5aSUxBREpsTllJeUc0QVFDS2lodUtJMWtnc0FNbVUxZ2pJYmdCUUlxS0c0b2pXU0N3QXlaVFdMQURKVVc0QVlCUVdDTWh1QUdBSXlFYnNBTWxSU01oSXlGWkd5RlpSQzJ3Q1N4TFUxaEZSQnNoSVZrdHNBb3NzQ2xGTGJBTExMQXFSUzJ3REN5eEp3R0lJSXBUV0xsQUFBUUFZN2dJQUloVVdMa0FLUVBvY0ZrYnNDTlRXTEFnaUxnUUFGUll1UUFwQStod1dWbFpMYkFOTExCQWlMZ2dBRnBZc1NvQVJCdTVBQ29ENkVSWkxiQU1LN0FBS3dDeUFRMENLd0d5RGdFQ0t3RzNEam93SlJzUUFBZ3JBTGNCT0M0a0doRUFDQ3UzQWs1QU1pTVZBQWdydHdOSU95NGhGQUFJSzdjRVRrQXlJeFVBQ0N1M0JUQW9IeFlPQUFncnR3WmpVVDh0R3dBSUs3Y0hRRFFrR2hFQUNDdTNDRnRLT2lrWkFBZ3J0d21EWkU0Nkl3QUlLN2NLZDJKTU5pRUFDQ3UzQzVGM1hEb2pBQWdydHd4MllFczJIUUFJSzdjTkxDUWNGQXdBQ0NzQXNnOE5CeXV3QUNCRmZXa1lSTEt3RXdGenNsQVRBWFN5Z0JNQmRMSndFd0Yxc2c4ZkFYT3lieDhCZFFBcUFNd0FrUUNlQUpFQTdBQnlBTElBZlFCV0FGOEFUZ0JnQVFRQXhBQUFBQlQrWUFBVUFwc0FFUDg1QUEzK2x3QVNBeUVBQ3dRNkFCUUVqUUFRQmJBQUZBWVlBQlVHd0FBUUFsc0FFZ2NFQUFVQUFBQUFBQUFBQUFCZ0FHQUFZQUJnQUdBQW5RRElBVVlCMVFLREF4WURNUU5nQTRzRHZnUG1CQVVFSEFSRkJGd0V2UVRzQlVVRndBWUdCbkVHNGdjUUI1a0lDQWdVQ0NBSVFRaHBDSW9JK1FtMUNmVUtZd3JEQ3hNTFZndU9DL2dNT3d4V0RKQU0yUXorRFZnTmxnMzZEa29PdFE4UkQ0Y1Bzdy81RUNvUWVSRERFUFVSTHhGVkVXd1JreEc2RWRVUjlSS0NFdTBUUXhPckZDY1VmeFVNRlZZVmxCWG1GaThXU3hiREZ4SVhiUmZhR0VzWWl4a0VHVndacWhuYUdpa2FjUnExR3U4YlBSdFVHNkliNXh2bkhDUWNpQnoySFdNZHloM3JIb3Nld2g5M0gvQWYvQ0FhSUNJZzVpRDlJVDhoaENIZElsSWljaUxFSXZNakZ5TkpJM2dqelNQWkkvTWtEU1FuSkpna3J5VEdKTjBrN3lVQ0pSVWxlaVdHSlowbHRDWExKZDRsOVNZTUppTW1OaWFqSnJVbXpDYmVKdkFuQWljVkoxRW56eWZtSi8wb0ZDZ3NLRU1vbXlrUUtTY3BQaWxVS1dvcGdpbWFLbjhxaXlxaUtya3F6eXJtS3Z3ckVpc3BLMEVydXl2UksrZ3IveXdWTENzc1BTeVpMUmN0TGkxQUxWRXRaQzEyTGRrdDZ5NENMaE11SlM0M0xxY3ZWaTlvTDNvdmpDK2RMNjh2d1MvVEwrUXYrekFITUhRdy9ERVRNU1F4TmpGSE1Wa3hhekhmTW40eWxUS21Ncmd5eVRMYk11d3kvak1RTXh3ekxqTkZNMWN6dWpRa05EWTBTRFJmTkhZMGlEU2FOS1Uwc0RUQ05OMDA2VFQxTlFjMUhqVXFOVFkxaERXYk5iSTF2alhLTmQ4MTd6WDdOZ2MyVXphVE5xbzJ2RGJJTnRRMjZ6YjhOd3czYURmTE45MDM3amdBT0JJNEpUZzRPTVk1Z3ptVk9hYzVzem0vT2RFNTRqbjBPZ1k2R0RvcE9qVTZRVHBUT21RNmNEcDhPcE02bnpybE8xZzdhanQ3TzQwN25qdXdPOEk3MVR2b08vczhEang1UFBJOUNUMGdQVGM5VFQxZ1BYYzlqajJnUGJJOXhEM1ZQZ28rZkQ3blAySS8xa0F6UUpsQXEwQzlRTTlBNWtEOVFRbEJGVUVzUVQ1QlZVRnNRWVJCbkVHMFFjeEI1RUg4UWhSQ0xFSkVRbHhDZEVLTVFwaENwRUt3UXJ4QzYwTlZRMkZEbkVQRVE4eEQvRVFpUkdGRWprVFZSUXRGVVVWd1JaQkZtVVhMUmYxR0hrWTNSb2xHbEVhY1JxaEd0RWJBUnN4RzJFYmtSdnBIQWtjS1J6RkhYa2RtUjI1SGRrZ0FTQWhJRUVnOVNFVklUVWlQU0pkSXgwalBTUTFKRlVrZFNadEpvMG9EU25KS2hVcVlTcXBLdkVyT1N0OUs5RXQrUy9sTUxVeXRUVDVObTAzcVRuRk9vazZxVHdWUERVOFZUNHhQbEUvc1VFOVF0MUVuVVc5UnVsSXFVakpTbEZNUFV5SlRORk5HVTFoVGFsUHFWRVJVVUZUUFZPWlUrVlZoVlhoVjkxWnRWblZXaUZhUVZ3NVhoVmZnVi9kWURsZ2dXRjlZWjFqRFdNdFkwMWtzV1RSWm9Wb3BXbVJhZGxwK1dzcGEwbHJhV3VKYTZscnlXdnBiQWx0SFc4SmJ5bHdDWEVsY2lWelZYVEJkbUYzcFhtbGU5VjlWWDExZjIyQmNZSU5nM0dEa1lWTmg2V0lrWWpaaWlHTFJZeHhqZFdOOVk2MWp0V1FMWkRoa1FHVGdaT2hsSUdWb1phaGw4R1pMWnJGbkFHZHpaLzVvWFdoMGFJWnBCV2tjYVlWcGpXbVZhYWhwc0dvcGFxQnJDbXNoYXpoclNXdUlhL2xzWld6U2JVQnR5MjVZYnFWdTlHOWhiOUJ3U0hDNmNVeHgzSEo1Y3loek1ITTRjN1YwSlhScGRLNTB4blRlZE9wMDluVnFkZGgyczNlSWVCaDRxSGtGZVY5NWszbXdlZWw2QUhvWGV2SjdZWHQ4ZTVkOEJIeHpmTTk5UzMxN2ZhVjk1bjRvZm9SKzAzN2ZmdXQrOTM4RGZ3OS9HMzkxZjh5QUxJQ0tnTnlCTTRFL2dVdUJtSUhwZ2srQ3FZTlVnKytEKzRRSGhCT0VINFFuaEMrRWU0VExoTmVFNDRVc2hYS0Zmb1dLaGVHR01ZWjJobjZIQUllTmg1bUhwWWV0aDcrSDBZZ3ppSTZJbW9pbWlRbUpaNGx6aVgrSmk0bVhpYU9KcjRtM2ljbUoyNG51aWdHS0NZb1JpaU9LTklxbmlxK0t3b3JVaXVlSytvc05peCtMaG92bmkvNk1GSXduakRxTVRZeGZqR2VNYjR5Q2pKU01wNHk1ak11TTNJenZqUUdORkkwc2pUK05VWTFkaldtTmhZMmhqYkNOd0kzTWpkaU9NbzZKanR5TzVJOU9qK2VRWTVEYWtVMlJ1NUl1a3AyVEVKT0NrK09VT3BTVGxPcVZiNVYzbFlPVmo1V2JsYWVWczVXL2xjdVYxNVhqbGUrVis1WUhsaG1XSzVZM2xrT1dUNVpibG5LV2hKYVFscHlXcUphMGxzYVcySmJrbHZDVy9KY0lseFNYSUpjeWwwT1hUNWRibDNLWGlaZWdsN2VYeXBmZGwrbVg5WmdCbUEyWUdaZ2xtRGVZU1poaG1IaVlrSmlubUwrWTFwanVtUVdaSUprNm1WS1phWmw4bVk2Wm9abXptY2FaMkpuem1nNmFHcG9tbWppYVNwcGNtbTJhaFpxY21yU2F5NXJqbXZxYkVwc3BtMFNiWHB0d200S2JqcHVhbTZhYnNwdkVtOWFiN3B3Rm5CMmNOSnhNbkdPY2U1eVNuSzJjeDV6ZW5QV2RESjBqblRxZFVaMW9uWDZkaXAyV25hS2RycDNGbmR5ZDg1NEtuaUdlT0o1UG5tYWVmWjZUbnArZXE1N0NudGllNUo3d253S2ZGSjhtbnplZlE1OXZuMitmYjU5dm4yK2ZiNTl2bjIrZmI1OXZuMitmYjU5dm4zZWZmNStKbjVPZm5aKzRuOXFmL0tBYm9EMmdTYUJWb0lpZ3lhRXVvVk9oWDZGdm9ZaWljcUtCb3BpaXRLTFJvdDJpOEtNRW8wK2pXNlBxcEpPbExxVTZwZ3ltZDZhUnB4aW4xS2czcUxpcEY2bU1xajJxcXF0SXE2bXNFNnd0ckVlc1lheDdyUFN0SEsxV3JXMnRvcTVCcm9pdS82OUFyMCt2WHErWHI2cXYxSy90ci9td2FMREtzWEt5RHJLYXMzQ3pjTFUydForMTZyWWJ0cGkyenJiNXQzTzMzcmhkdUtDNDVMa3N1WGE1N2Jwa3V5aTdmTHV2dkJ5OHJMelp2VUc5cXIzdnZtUyt2TDdtdnppL2ZML3R3RTNBdU1EUHdSckJTc0dOd2JuQ01jS013dS9EUGNPZXc5akVLOFJReEpYRXk4VG14VVBGcjhYcXhpL0dmY2JaeDJqSHBzZkZ5QlBJV3NpZ3lQN0pkTW5EeWlUS21jcmp5eFRMajh2eHpCN01xTXpaek8vTkJjMTZ6ZkRPU002S3p1YlBQYys2MEJ2UVdkQ3owUGZSUU5GNzBjTFIvZEkrMHByU3B0TDMwMi9UL05SYTFKL1ZKOVdPMWZmV1hOYnoxdi9YVXRlaDEvWFlQZGl4MlJyWmdOb0EycGpiSWR2RDNFVGNzZDBKM1hQZGU5M2Mza1hlczk4dDM3VGdGT0NENE5QaFB1R3Q0ZGppTStKaDRyN2pDT01jNHpEalF1Tlc0MmpqZitPVDQvYmtIZVNuNVJqbGR1Vis1WWJsanVXWjVhSG1EK1k2NW1YbWRlYU01cVBtdWViSzV0M204T2I4NXdqbkgrYzI1MHpuWHVkMDU0cm5vZWUwNThibjNlZnY2QURvRXVnbDZEem9ST2hNNkZUb1hPaGs2R3pvZnVpUDZLTG91ZWpQNk9IcFZlbG42WGpwaXVtYjZiSHB4K25ZNmVycVh1cDA2b1hxbCtxcDZyWHF5K3JkNnZUckJ1c1I2eUxyT2V0RjYxdnJaK3Q4NjRqcm4rdXI2OExyMCt2bDYvanNDdXdXN0Nmc09leEs3RmJzWit4ejdJbnNsZXltN0xmc3llemM3Ty90V2UxdzdZYnRtTzJ2N2NIdCsrNEg3aFB1SCs0cjdqZnVRKzVQN2xmdVgrNW43bS91ZCs1LzdvZnVqKzZYN3AvdXArNnY3cmZ1eXU3Yzd1N3ZBTzhJN3hEdkkrOHI3ejN2VCs5WDcxL3ZaKzl2NzRIdmllK1I3NW52b2UrcDc3SHZ1ZS9COEYzdzB2RTY4VUx4VHZGZzhYSHhlZkdGOFpIeG5mR3A4YlVBQUFBRkFHUUFBQU1vQmJBQUF3QUdBQWtBREFBUEFHK3lEQkFSRVJJNXNBd1FzQURRc0F3UXNBYlFzQXdRc0FuUXNBd1FzQTNRQUxBQVJWaXdBaThic1FJZlBsbXdBRVZZc0FBdkc3RUFEejVac2dRQ0FCRVNPYklGQWdBUkVqbXlCd0lBRVJJNXNnZ0NBQkVTT2JBSzNMSU1BZ0FSRWpteURRSUFFUkk1c0FJUXNBN2NNREVoSVJFaEF4RUJBUkVCQXlFQk5RRWhBeWo5UEFMRU52N3Uvcm9CRE9RQ0EvNytBUUw5L1FXdytxUUZCLzE5QW5mN0VRSjQvVjRDWG9nQ1hnQUNBRGYvN3dJZ0JiQUFBd0FPQUR1eUFnOFFFUkk1c0FJUXNBdlFBTEFBUlZpd0FpOGJzUUlmUGxtd0FFVllzQXd2RzdFTUR6NVpzZ2NOQ2l0WUlkZ2I5Rm13QWRDd0FTOHdNUUVqRXpNQk5EWTNOaFlVQmdjR0pnRld6Sno2L2hkTE9qbE9Tem8zVUFHdEJBUDZ2enRNQWdKS2Nrc0NBa2NBQUFJQW9RUDBBc0lHQUFBRUFBa0FKUUN3QUVWWXNBTXZHN0VESVQ1WnNBTFFzQUl2c0FmUXNBY3ZzQU1Rc0FqUXNBZ3ZNREVCQXlNVE13VURJeE16QVlkY2lsT3FBUTFjaWxPcUJXeitpQUlNbFA2SUFnd0FBZ0E3QUFBRTVRV3dBQnNBSHdDTkFMQUFSVml3REM4YnNRd2ZQbG13QUVWWXNCQXZHN0VRSHo1WnNBQkZXTEFDTHh1eEFnOCtXYkFBUlZpd0dpOGJzUm9QUGxteUhRd0NFUkk1c0IwdnNnQURDaXRZSWRnYjlGbXdCTkN3SFJDd0J0Q3dIUkN3QzlDd0N5K3lDQU1LSzFnaDJCdjBXYkFMRUxBTzBMQUxFTEFTMExBSUVMQVUwTEFkRUxBVzBMQUFFTEFZMExBSUVMQWUwREF4QVNNREl4TWpOek1USXpjaEV6TURNeE16QXpNSEl3TXpCeU1ESXdNekV5TUNsdE9ScXBIZUhQcHY2UndCQlpXcGxkU1VxWlRISE9SdTFCenhrYWtKMDIvVEFacitaZ0dhbmdFNW53R2cvbUFCb1A1Z24vN0hudjVtQWpnQk9RQUFBUUJDL3kwRVVRYWJBRFVBYjdJbk5qY1JFamtBc0FCRldMQVFMeHV4RUI4K1diQUFSVml3Snk4YnNTY1BQbG15QkNjUUVSSTVzQkFRc0EzUXNoVW5FQkVTT2JBUUVMSVlBUW9yV0NIWUcvUlpzQVFRc2g4QkNpdFlJZGdiOUZtd0p4Q3dLdEN5TGhBbkVSSTVzQ2NRc2pJQkNpdFlJZGdiOUZrd01RRTJKeVluSmlZbkpqYzJOelkzTnpNSEZoY1dCeU0ySmljbUJnY0dGeFlYRmhjV0J3WUhCZ2NISXpjbUp5WTNGd1lXRnhZM05nTCtDU2tvZGp0ZUpLb09DM0p4dFNpZEtaVktUQXJzQ1ZSWVhYd05DU2dvZEhVK3VBOExkM1c5Skp3bHAxbFlDZTBIWldOcVIwa0JnMHc0T1RFWk14eUJ6NnBzYlJYYTNpQjRlcjZBakFNQ2IyTk5OVFl6TkN5QzJxMXJhUlREeEJsNmViOEJnSVlDQWprNkFBVUF0Zi9uQlQ0RnlBQU5BQnNBS1FBM0FEc0FpYkluUEQwUkVqbXdKeEN3QmRDd0p4Q3dGdEN3SnhDd0s5Q3dKeEN3T05BQXNEZ3ZzRG92c0FCRldMQUFMeHV4QUI4K1diQUFSVml3SXk4YnNTTVBQbG13QUJDd0I5Q3dCeSt5RVFJS0sxZ2gyQnYwV2JBQUVMSVlBZ29yV0NIWUcvUlpzQ01Rc0J6UXNCd3ZzQ01Rc2kwQ0NpdFlJZGdiOUZtd0hCQ3lOQUlLSzFnaDJCdjBXVEF4QVJZV0J3Y0dCaWNtSmpjM05qWURCaFlYRmpZM056WW1KeVlHQndFV0ZnY0hCZ1luSmlZM056WTJBd1lXRnhZMk56YzJKaWNtQmdjRkp3RVhBZytEa2dnR0Q3bUNmcGtJQncyM0pBYzRPanhZQ3drSE9EczlXZ2dDdllLVENBWU91b0o4bWdZRkM3a2lCVG8zUFZVTUNnVTZOMEJZQ1AzeGVBTnZlQVhHQktxQVRZbW1CQUtxZjBxSnF2NkJRRmNDQWxkR1RrRllBZ0pkU3Y0Q0JLcCtUb2VwQkFLbWhFR09yZjZDUlZNQ0FsTkxUMGhRQWdKZFNPNVBCR2RQQUFNQUxmL3BCS0VGeUFBZUFDZ0FOQUJ5c2kwMU5oRVNPYkF0RUxBUjBMQXRFTEFoMEFDd0FFVllzQWt2RzdFSkh6NVpzQUJGV0xBWUx4dXhHQTgrV2JBQVJWaXdIQzhic1J3UFBsbXlFZ2tZRVJJNXNoVUpHQkVTT2JJZkFRb3JXQ0hZRy9SWnNpTUpHQkVTT2JJc0NSZ1JFam13Q1JDeU1nRUtLMWdoMkJ2MFdUQXhFelkzTnlZbU56WTJGeDRDQndZR0J3Y1ROamMzQWdjWElTY0dKeVltQlJZMk53TUhCZ2NHRmhNR0Z4YzNOamMySmlNaUJqZ014bkk5S0FRTTVLeGRsbEFGQldsMmVkWlRGY3NZb0tIKy9qMnd4N3ZzQWJkRWVEanpJb2tSREdod0NqQVhZNEVNQmtnM1NHUUJnYmFNUzNDTlA2clVCQU5Ta1ZkYW5WSlEvcng4a0FIKzhLMzZYM1lFQXQ0ZUFUUWpBWEVXWUhkZ2VBT2dSVndxUGxKcU9VbHBBQUVBa0FQOEFaWUdBQUFFQUJZQXNBQkZXTEFETHh1eEF5RStXYkFDMExBQ0x6QXhBUU1qRXpNQmdWU2RVYlVGZC82RkFnUUFBQUVBYVA0eEF5QUdZQUFSQUJDeUJoSVRFUkk1QUxBREw3QU1MekF4RXhJQU54Y0FBd1lIQmhJWEJ5WUNFelkzZ0RVQlQvZ2svcXBtSlFFQ1pHSTRxN2NJQWd3Q1RBRnRBamx1a1A3NC9jek92OHYrMFZlRmFnSEFBU3BnVmdBQi81VCtMd0pRQmw4QUR3QVFzZ2tRRVJFU09RQ3dDQyt3QUM4d01RTW5OaElUTnhBbk54WVdFZ2NDQWdCSEpkVHdHZ1RFT1hPalR3UUpzLzdlL2krS3BRSXZBWDk4QWFXc2hrYjkvcVMxL3VuOTlmNlhBQUVBWndKTEE2VUZzQUFPQUNBQXNBQkZXTEFFTHh1eEJCOCtXYkFBMEJtd0FDOFlzQW5RR2JBSkx4Z3dNUUVsTndVVE13TWxGd1VUQndNREp3Ri8vdWhQQVJjdHNFc0JMaGord1plVmZOeUdBOUZZb1hjQlhmNm9jTFJZL3ZGaUFTSCs3RzRBQUFFQVBRQ1NCQzRFdGdBTEFCb0FzQWt2c0FEUXNBa1FzZ1lCQ2l0WUlkZ2I5Rm13QTlBd01RRWhCeUVESXhNaE55RVRNd0s5QVhFbi9wQkw1MHorakNnQmNrYm5BeUhlL2s4QnNkNEJsUUFBQWYrSi9yZ0JGQURyQUFjQUdMSUhDQWtSRWprQXNBZ3ZzZ1FOQ2l0WUlkZ2I5Rmt3TVJNbk5qYzNNd2NHQ0g5Mkd5WFZHaWordUZDZWQ4Nmg5d0FCQURZQ0NRSllBczBBQXdBUkFMQUNMN0lCQVFvcldDSFlHL1JaTURFQklUY2hBalgrQVNNQi93SUp4QUFBQVFBdy8vSUJRd0VEQUFzQUlySUlEQTBSRWprQXNBQkZXTEFKTHh1eENROCtXYklERFFvcldDSFlHL1JaTURFM05EWTNOaFlWRkFZSEJpWXdUVHc3VDB3OU8wOTFQVTBDQWtzN09rMENBa29BQUFIL2YvK0RBNElGc0FBREFCTUFzQUF2c0FCRldMQUNMeHV4QWg4K1dUQXhGeU1CTTBQRUF6N0ZmUVl0QUFBQ0FHRC81d1E2QmNrQUVRQWdBRWF5RnlFaUVSSTVzQmNRc0FEUUFMQUFSVml3Q1M4YnNRa2ZQbG13QUVWWXNBQXZHN0VBRHo1WnNBa1FzaFlCQ2l0WUlkZ2I5Rm13QUJDeUhnRUtLMWdoMkJ2MFdUQXhCU1ltTnpZM0V4SUFGeFlXQndZSEJ3SUFFelkxSmljbUJnY0RCaGNVRnhZVEFkKzl3Z01CQ1NjeEFSamV2TU1EQVFrbk0vN3JpQTBGb0hxVUhpNE1BYVRpUVJRRS9lUktTZ0VFQVRJQkxnVUUrT1JMU2YzK3gvN05BNUJ5TU9JSEJiek4vc05uUE9vSERRRnVBQUVBN3dBQUEzZ0Z0UUFHQURrQXNBQkZXTEFGTHh1eEJSOCtXYkFBUlZpd0FDOGJzUUFQUGxteUJBQUZFUkk1c0FRdnNnTUJDaXRZSWRnYjlGbXlBZ01GRVJJNU1ERWhJeE1GTnlVekFvSHN5djZRSlFKQUpBU01ldGZNQUFBQkFBc0FBQVEvQmNjQUdBQlZzZ2taR2hFU09RQ3dBRVZZc0JBdkc3RVFIejVac0FCRldMQUFMeHV4QUE4K1diSURFQUFSRWptd0VCQ3lDQUVLSzFnaDJCdjBXYklNRUFBUkVqbXlGUkFBRVJJNXNBQVFzaGNCQ2l0WUlkZ2I5Rmt3TVNFaE53RTJOelltSnlZR0J3YytBaGNXRmdjR0J3Y0JJUVBDL0VrY0FsMnBFUTFhV20rWUVPd0tqKzJLdnQwTkVlUSsvbHNDaDdFQ1JhV0dYMzhFQkpOL0FZYldkd01FMUxMTTR6MytkQUFBQVFBbS8rZ0VPUVhGQUNvQVo3SUlLeXdSRWprQXNBQkZXTEFQTHh1eER4OCtXYkFBUlZpd0d5OGJzUnNQUGxtd0FkQ3dBUyt3RHhDeUJ3RUtLMWdoMkJ2MFdiQVBFTEFMMExBQkVMSXBBUW9yV0NIWUcvUlpzaFVwQVJFU09iQWJFTEFnMExBYkVMSWpBUW9yV0NIWUcvUlpNREVCRnpJMk56WW1KeVlHQndjK0FoY1dGZ2NHQmdjV0Z4VUdCQ2N1QWpjWEJoWVhGalkzTmlZbkp3R2dnWFdjQ3d0ZVhWNktEdTBKaU50L3crRU5CNFovclFzTi90bldlOFJwQk93RVoyTnRtUXdNYzJ5WkEwY0JmbWxqY1FJQ2NsMEJkYmhqQVFUYnVHU25QRkRHTU1UMEJBRm51M2dCWUhVREJJaHViM1FEQVFBQUFnQUpBQUFFS2dXd0FBb0FEZ0JKQUxBQVJWaXdDUzhic1FrZlBsbXdBRVZZc0FRdkc3RUVEejVac2dFSkJCRVNPYkFCTDdJQ0FRb3JXQ0hZRy9SWnNBYlFzQUVRc0F2UXNnZ0dDeEVTT2JJTkNRUVJFamt3TVFFekJ5TURJeE1oTndFekFTRVRCd042c0NLdk9lMDQvWjRWQXdMOS9RY0JhWEVZQWdmRC9yd0JSS0FEelB4WEFtTWlBQUFCQUZyLzV3UnpCYkFBSFFCcXNob2VIeEVTT1FDd0FFVllzQUV2RzdFQkh6NVpzQUJGV0xBTkx4dXhEUTgrV2JBQkVMSURBUW9yV0NIWUcvUlpzZ2NCRFJFU09iQUhMN0lhQVFvcldDSFlHL1Jac2dVSEdoRVNPYkFORUxJVUFRb3JXQ0hZRy9SWnNoRVVHaEVTT2JJZEdoUVJFamt3TVJNVElRY2hBell6RmhJSEJnQW5KaVluTXhZV0Z4WTJOelltSnlZR0I3cS9Bdm9oL2M5blpuaTV4eElTL3R6WHR1TUc0d2RsVzIrWER3eHFhVUJsTUFMVkF0dlMvcU02QXY3MDFkdis2Z1FFNHJsbWN3SURxSXg4bVFJQ0xTZ0FBZ0JqLytnRUV3VzRBQmNBSlFCYnNoa21KeEVTT2JBWkVMQUcwQUN3QUVWWXNBQXZHN0VBSHo1WnNBQkZXTEFQTHh1eER3OCtXYkFBRUxJQ0FRb3JXQ0hZRy9SWnNnY0FEeEVTT2JBSEw3SVlBUW9yV0NIWUcvUlpzQThRc2lBQkNpdFlJZGdiOUZrd01RRUhKeVlFQnpZWEhnSUhEZ0luSmlZbkpqY1NBQ0VCSmdZSEJoY1VGaGNXTmpjMkpnUE1GQTNBL3VaUWhLbDFwRXdNREk3bGlLM1lEd2tnUVFHcEFVait0RkNNTUFzQlhsaHNsdzhOWUFXNHlnRUMwOWFBQkFKLzNZS083WUVEQk83Q2E3TUJaUUdXL1VrQ1dWSmxLNENXQWdPb2lIK2lBQUVBaGdBQUJKd0ZzQUFHQURJQXNBQkZXTEFGTHh1eEJSOCtXYkFBUlZpd0FTOGJzUUVQUGxtd0JSQ3lBd0VLSzFnaDJCdjBXYklBQXdVUkVqa3dNUUVCSVFFaE55RUVoZjBFL3YwQytmMHFId1BVQlIzNjR3VHR3d0FBQXdBNy8rZ0VSUVhJQUJZQUlnQXVBR3V5R2k4d0VSSTVzQm9Rc0JMUXNCb1FzQ2ZRQUxBQVJWaXdFeThic1JNZlBsbXdBRVZZc0Fndkc3RUlEejVac0N6UXNDd3ZzaG9CQ2l0WUlkZ2I5Rm15QWl3YUVSSTVzZzBhTEJFU09iQUlFTElnQVFvcldDSFlHL1Jac0JNUXNpWUJDaXRZSWRnYjlGa3dNUUVHQnhZV0J3WUVKeVltTnpZbEppWTNOaVFYSGdJQk5pWW5KZ1lIQmhZWEZqWVROaVluSmdZSEJoWVhGallFUEJMdVdWY0lEZjdnMWNMbERSSUJFVXRJQmc0QkRNZDN0VnIrdFF0a1htcVdEQXRtWFd5VFlBbFZVMXVCQ3dsV1VWeUJCRGpaZHptd2FzRHRCQVRmdGZOOU5xRmN2T1VFQTJTMC9QaGxnd0lDajIxbmV3SUNpZ0w3V25ZQ0FvQm1YbklDQW9JQUFBSUFqdi81QkM4RnlBQVlBQ1lBV0xJWkp5Z1JFam13R1JDd0ZkQUFzQUJGV0xBTkx4dXhEUjgrV2JBQVJWaXdGaThic1JZUFBsbXlBQUVLSzFnaDJCdjBXYklGRmcwUkVqbXdCUyt5R1FFS0sxZ2gyQnYwV2JBTkVMSWhBUW9yV0NIWUcvUlpNREUzRmlRM0JpY3VBamMrQWhjZUFoY1dCd0lBSVNNM0FSWTJQd0kySmljbUJoY1dGdmZVQVFwQ2lKaHhwbElNRFkva2gzV3RZQWNGSEVEK1hQNjhGaE1CU2txRU1BMEVBMWhZZmFBUEIxckNBdEhSaEFJQ2QrQ0lrZktFQkFOeDBZRnJvUDZPL25qS0Fkb0NWVXRoUm9LWkJBVDRxRmxzLy84QUsvL3lBZEFFVkFBbUFCTDdBQUFIQUJJQWpRTlIvLy8vbXY2NEFid0VWQUFuQUJJQWVRTlJBQVlBRUJFQUFBRUFNZ0NxQThNRVZBQUdBQmV5QUFjSUVSSTVBTEFBUlZpd0JTOGJzUVViUGxrd01RRUZCd0UzQVFjQk1nSVdLZjBUSWdOdkxRSnk0T2dCZGNFQmRQNEFBQUlBWWdGa0JCUUQxZ0FEQUFjQUpRQ3dCeSt3QTlDd0F5K3lBQUVLSzFnaDJCdjBXYkFIRUxJRUFRb3JXQ0hZRy9SWk1ERUJJVGNoQXlFM0lRUHgvTG9rQTBWdC9Mc2pBMFlERE1yOWpza0FBUUF2QUo4RDJRUkpBQVlBRjdJQUJ3Z1JFamtBc0FCRldMQUNMeHV4QWhzK1dUQXhBU1UzQVFjQk53TGIvYzhvQXdjaS9IZ3NBb0hqNWY2THdmNk0rZ0FBQWdDVi8vRUQzd1hKQUJnQUpBQmVzaDRsSmhFU09iQWVFTEFLMEFDd0FFVllzQkF2RzdFUUh6NVpzQUJGV0xBaUx4dXhJZzgrV2JJY0RRb3JXQ0hZRy9SWnNBRFFzQUF2c2dRUUFCRVNPYkFRRUxJSkFRb3JXQ0hZRy9SWnNnMFFJaEVTT2JJVkFCQVJFamt3TVFFK0FqYzJKeVltSnlZR0J3YzJKQmNXRmdjR0J3Y0dCd0UwTmpjMkZoVVVCaU1HSmdFL0RGM0xIMTRTQ0VnNVVuRVI3QkVCQUw2eHlnNFB2WHBlRlA3V1N6bzRUazgyT0U0QnEzMndyQ1JzZGpROUFRSmpWUUd5MGdRRXpxcXhvMlpXamY3Rk8wd0NBa281UFVrQ1J3QUFBZ0F5L2pzR3BBV1RBRHNBUndCOHNoNUlTUkVTT2JBZUVMQkYwQUN3S3krd05DK3dBRVZZc0FBdkc3RUFEejVac0FCRldMQUZMeHV4QlE4K1diSUROQUFSRWpteUREUUFFUkk1c0F3dnNBQVFzajRFQ2l0WUlkZ2I5Rm13Rk5Dd05CQ3lIUUlLSzFnaDJCdjBXYkFyRUxJbUJBb3JXQ0hZRy9SWnNBd1Fza1FFQ2l0WUlkZ2I5Rmt3TVFVbUppY0dKeVltTnpZU05oY1dGaGNEQndZV0Z4WTJFamMySmljbUp5WUVBZ0lIQmhJV0Z4WTNGd1lqSmlRQ0p5WVNBQ1FYRmdRU0Z4WUNCZ0VHRnhZMk54TW1KeVlHQndTbVRYWVVnNHR5ZWdrSG4rS0VWWVZEaGdnSEtDOVppVllIQkRzOGZmS24vdHJyaFFjSWFkdWZwcTBiaXVYRC90MmNCQVNlQVNBQmI4bkFBUnFhQkFTQjUvMWpCV280ZHgyQkxTbUNzU1FWQWtwT25BTUN0YUNoQVUrdUFnSTVNUDNKUEQ5SkFnU1FBUk9zaHRaSGtnUURrZjdmL291K3JmNzBpd0VDUzR4V0FhUUJPTlBkQWNBQldyRURBNkwreWNqVC9wTEVBVXlpQXdOclRBSHhFUUlGKytVQUFBTC9wQUFBQks0RnNBQUhBQW9BUmdDd0FFVllzQVF2RzdFRUh6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdCaThic1FZUFBsbXlDUVFDRVJJNXNBa3ZzZ0FCQ2l0WUlkZ2I5Rm15Q2dRQ0VSSTVNREVCSVFNaEFUTUJJd0VoQXdOOS9kK3UvdllERXQ0Qkd2aitEZ0dZWXdGVC9xMEZzUHBRQWg4Q1dnQUFBd0FuQUFBRXZBV3dBQTBBRmdBZUFHbXlHQjhnRVJJNXNCZ1FzQTNRc0JnUXNCRFFBTEFBUlZpd0FpOGJzUUlmUGxtd0FFVllzQUF2RzdFQUR6NVpzQmZRc0JjdnNwOFhBVjJ5RGdFS0sxZ2gyQnYwV2JJSERoY1JFam13QUJDeUVBRUtLMWdoMkJ2MFdiQUNFTElkQVFvcldDSFlHL1JaTURFekV3VVdGZ2NHQnhZV0J3WUVJd01EQlRJMk56WW1KeVVYTWpZM05pY2xKLzBCdit6dERoTHhXbUlIRHY3YjhLMVBBUU4xcEE4T1dtaisrT042bWc0WjF2Ny9CYkFCQWN1MDFHc2dxbmJJNkFLUi9qa0JmR3huZEFTN0FYUmp1d2NCQUFFQVpmL29CUTBGeHdBZUFFNnlDeDhnRVJJNUFMQUFSVml3REM4YnNRd2ZQbG13QUVWWXNBTXZHN0VERHo1WnNnQU1BeEVTT2JJUURBTVJFam13REJDeUV3RUtLMWdoMkJ2MFdiQURFTEljQVFvcldDSFlHL1JaTURFQkJnQW5MZ0luSmhJU0pCY1dFaGNqSmlZbkpnWVBBZ1lXRmhjRUV3U3FKZjZ3OFl2UmRnY0dSTUVCR2F6Wi9RajFCWGwzbzl3bUZBa0lMWEpZQVJkUEFkdmsvdkVFQTM3eG1ISUJpUUU0bmdNRS92ZnBuSXNEQmZUcGhXWm50VjhEQ3dFdEFBSUFKd0FBQk9BRnNBQUxBQllBUnJJS0Z4Z1JFam13Q2hDd0Q5QUFzQUJGV0xBQkx4dXhBUjgrV2JBQVJWaXdBQzhic1FBUFBsbXdBUkN5REFFS0sxZ2gyQnYwV2JBQUVMSU9BUW9yV0NIWUcvUlpNREV6RXdVeUJCSUhCd1lDQkNNVEF4Y3lKRGMySnlZbUp5ZjhBWXEyQVFkMkZ3c2V6ZjY4d2lxMmtzWUJCU1VhQndtWGhnV3dBYlgrd2NCUHlmN0pyQVRrKytZQis5MlljWkdrQkFBQkFDY0FBQVM2QmJBQUN3Qk9BTEFBUlZpd0JpOGJzUVlmUGxtd0FFVllzQVF2RzdFRUR6NVpzZ3NHQkJFU09iQUxMN0lBQVFvcldDSFlHL1Jac0FRUXNnSUJDaXRZSWRnYjlGbXdCaEN5Q0FFS0sxZ2gyQnYwV1RBeEFTRURJUWNoRXlFSElRTWhBOVA5dkU0Q3BpUDhZL3dEbHlUOVlVWUNSUUtLL2tES0JiRE0vbTRBQUFFQUp3QUFCS2NGc0FBSkFFQUFzQUJGV0xBRUx4dXhCQjgrV2JBQVJWaXdBaThic1FJUFBsbXlDUVFDRVJJNXNBa3ZzZ0FCQ2l0WUlkZ2I5Rm13QkJDeUJnRUtLMWdoMkJ2MFdUQXhBU0VESXhNaEJ5RURJUVBCL2Nocjkvd0RoQ1Q5ZEVzQ09RSnAvWmNGc016K1R3QUJBR3YvNmdVV0JjZ0FJUUJic2g4aUl4RVNPUUN3QUVWWXNBMHZHN0VOSHo1WnNBQkZXTEFETHh1eEF3OCtXYkFORUxBUTBMQU5FTElUQVFvcldDSFlHL1Jac0FNUXNoc0JDaXRZSWRnYjlGbXlJQTBERVJJNXNDQXZzaDhCQ2l0WUlkZ2I5Rmt3TVNVR0JDY3VBaWNtRWhJM05oY1dGaGNuQWljbUJnY0dCd1lXRnhZM0V5RTNJUVNRVVA3Y3RKRGNnUWtIUUtWMm9NN2I5eER2RnVPcTJ5Z1hBZ2FQaWE5eE52N2NJZ0lYdldockFnRi84NXQ0QVhRQklWSnZCQVQwM0FFQkFRY0YrZXVKVjdQT0FnUmJBUjNBQUFFQUp3QUFCWWNGc0FBTEFGT3lCd3dORVJJNUFMQUFSVml3Qmk4YnNRWWZQbG13QUVWWXNBb3ZHN0VLSHo1WnNBQkZXTEFBTHh1eEFBOCtXYkFBUlZpd0JDOGJzUVFQUGxteUNRWUFFUkk1c0FrdnNnSUJDaXRZSWRnYjlGa3dNU0VqRXlFREl4TXpBeUVUTXdTSzluRDlpbkQzL2ZkcUFuWnA5d0tIL1hrRnNQMmlBbDRBQVFBMUFBQUNLQVd3QUFNQUhRQ3dBRVZZc0FJdkc3RUNIejVac0FCRldMQUFMeHV4QUE4K1dUQXhJU01UTXdFcjl2MzJCYkFBQVFBRC8rY0VZUVd3QUE0QU5ySU1EeEFSRWprQXNBQkZXTEFBTHh1eEFCOCtXYkFBUlZpd0JTOGJzUVVQUGxteUNBQUZFUkk1c2dzQkNpdFlJZGdiOUZrd01RRXpBd1lFSnlZbU54Y0dGeFkyTndOcjlxNGYvdVBSek5jSzlnN0FaSThWQmJEOEE5VDRCQVRxeHdIbEJBU0dlZ0FCQUNjQUFBVnhCYkFBREFCVEFMQUFSVml3QkM4YnNRUWZQbG13QUVWWXNBZ3ZHN0VJSHo1WnNBQkZXTEFDTHh1eEFnOCtXYkFBUlZpd0N5OGJzUXNQUGxteUFBUUNFUkk1dEdvQWVnQUNYYklHQkFJUkVqbTBaUVoxQmdKZE1ERUJCd01qRXpNRE53RWhBUUVoQWpQSVRmZjk5M1daQWZZQlBQMTRBWm4rN0FKenQvNUVCYkQ5WTU4Qi92MXYvT0VBQUFFQUp3QUFBOE1Gc0FBRkFDZ0FzQUJGV0xBRUx4dXhCQjgrV2JBQVJWaXdBaThic1FJUFBsbXlBQUVLSzFnaDJCdjBXVEF4SlNFSElSTXpBVUVDZ2lUOGlQMzN5c29Gc0FBQUFRQW5BQUFHemdXd0FBNEFiZ0N3QUVWWXNBQXZHN0VBSHo1WnNBQkZXTEFDTHh1eEFoOCtXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQWd2RzdFSUR6NVpzQUJGV0xBTUx4dXhEQTgrV2JJQkFBUVJFam0wWlFGMUFRSmRzZ2NBQkJFU09iUnFCM29IQWwyeUNnQUVFUkk1dEdvS2Vnb0NYVEF4QVJNQklRTWpFeE1CSXdzQ0l4TUNYdFVDVndGRS9QWlZnZjJvc3Q5YlVmYjlCYkQ3cGdSYStsQUI3UUpmKzdRRWJmMW0vaTBGc0FBQUFRQW5BQUFGaGdXd0FBa0FUTElCQ2dzUkVqa0FzQUJGV0xBRkx4dXhCUjgrV2JBQVJWaXdDQzhic1FnZlBsbXdBRVZZc0FBdkc3RUFEejVac0FCRldMQURMeHV4QXc4K1diSUNCUUFSRWpteUJ3VUFFUkk1TURFaEl3RURJeE16QVJNekJJbnYvam0xOS8zdkFjZTI5Z1FUKyswRnNQdnBCQmNBQUFJQWEvL25CU0VGeUFBU0FDSUFScklaSXlRUkVqbXdHUkN3QU5BQXNBQkZXTEFLTHh1eENoOCtXYkFBUlZpd0FDOGJzUUFQUGxtd0NoQ3lHQUVLSzFnaDJCdjBXYkFBRUxJZkFRb3JXQ0hZRy9SWk1ERUZMZ0luSmhJU056WVhGZ0FYRmdJQ0J3WVROelltSmljbUJnSUhCaFlYRmhJM0FsZU8xM2dJQnp1WGFhM2oyQUVCREFZNWkyZXkyZ2tHTW5kYmZzTjVDZ3FFaEszaEl4UURndmVkZlFGT0FSTlhqZ1FFL3Q3M2ZQNi8vdk5hbkFNWWFtMjVZUU1FbHY3TzU3ZlNCQVVCRHZVQUFnQW5BQUFGQkFXd0FBb0FFd0JOc2dvVUZSRVNPYkFLRUxBTTBBQ3dBRVZZc0FNdkc3RURIejVac0FCRldMQUJMeHV4QVE4K1diSUxBUU1SRWptd0N5K3lBQUVLSzFnaDJCdjBXYkFERUxJVEFRb3JXQ0hZRy9SWk1ERUJBeU1UQlRJRUJ3WUVJeVVGTWpZM05pWW5KUUY4WHZmOUFmamtBUVFSRXY3SysvN3ZBUnVHcXhFT2IzRCt6QUlkL2VNRnNBSDV6ZFQ1ekFLSWVtK0hCUUVBQUFJQVpQOEVCUm9GeUFBV0FDWUFScklESnlnUkVqbXdBeEN3Sk5BQXNBQkZXTEFPTHh1eERoOCtXYkFBUlZpd0JTOGJzUVVQUGxtd0RoQ3lIQUVLSzFnaDJCdjBXYkFGRUxJakFRb3JXQ0hZRy9SWk1ERWxGd2NsQmljbUFDY21FaEkzTmhjZUFoY1dCd2NDQXpjMkppWW5KZ0lEQmhZV0Z4WVNOd09yMEs3L0FGQXYxZjc5REFZN25YT28ySkRXZWdjRUNndytyUWtHTTNoYnhQRU9CalIzV2FYaUtGYklpdlFNQVFJQkpQWjlBVWtCSGxtQ0JBT0MrNXhXVmxmK2JnSHRhbTY0WUFNRy9wZit1Rys2WVFNSEFRRHpBQUFDQUNjQUFBVFlCYkFBRGdBWEFGcXlCUmdaRVJJNXNBVVFzQkRRQUxBQVJWaXdCQzhic1FRZlBsbXdBRVZZc0FJdkc3RUNEejVac2c4Q0JCRVNPYkFQTDdJQkFRb3JXQ0hZRy9SWnNnc0JEeEVTT2JBQ0VMQU8wTEFFRUxJWEFRb3JXQ0hZRy9SWk1ERUJJUU1qRXdVeUZnY0dCZ2NUQnlFQkZ6STJOelltSnlVQ2x2N3FZdmY5QWN2dC9CRUxwcGJYQWY3Ni9sTHZnYTBQRDI1dy92Z0NNZjNQQmJBQjVNdU56enY5cGc4Qy9BS0hkSEY1QkFFQUFRQWsvK29FdXdYSEFDa0FZYklES2lzUkVqa0FzQUJGV0xBS0x4dXhDaDgrV2JBQVJWaXdIeThic1I4UFBsbXlBeDhLRVJJNXNBb1FzQTdRc0FvUXNoSUJDaXRZSWRnYjlGbXdBeEN5R0FFS0sxZ2gyQnYwV2JBZkVMQWswTEFmRUxJbkFRb3JXQ0hZRy9SWk1ERUJOaWNuSmlZM1BnSVhIZ0lISnpZbUp5WUdCd1lYRnhZV0J3NENKeTRDTnhjR0ZoY1dOZ05NRnJOUjRyNEpDSm42allqVWNBVDJCM04wZGFFT0ZMNUw1YllMQ283N2w0L3BmQVgzQ0lxQmVLRUJmcEJHSGsvWWozeTlaZ01EY2NtQkFYSitBd0p5WVg5SkcxTGRsM3UzWkFJQmR0R0ZBWHlHQWdKcUFBQUJBSndBQUFVaUJiQUFCd0F1QUxBQVJWaXdCaThic1FZZlBsbXdBRVZZc0FJdkc3RUNEejVac0FZUXNnQUJDaXRZSWRnYjlGbXdCTkF3TVFFaEF5TVRJVGNoQlA3K1NObjIydjVMSkFSaUJPVDdIQVRrekFBQUFRQmIvK1lGTHdXd0FCSUFQTElQRXhRUkVqa0FzQUJGV0xBQUx4dXhBQjgrV2JBQVJWaXdDUzhic1FrZlBsbXdBRVZZc0FRdkc3RUVEejVac2c0QkNpdFlJZGdiOUZrd01RRURCZ0FuSmdJM054TXpBd1lXRnhZMk54TUZMNlVpL3JYcjJ2MExBNlgycFJKMmU0ZTBHYWNGc1B3ejZmN3NCQVFCQU00bUE4NzhNWXVjQkFTYWtBUFVBQUFCQUpzQUFBV0JCYkFBQmdBNHNnQUhDQkVTT1FDd0FFVllzQUV2RzdFQkh6NVpzQUJGV0xBRkx4dXhCUjgrV2JBQVJWaXdBeThic1FNUFBsbXlBQUVERVJJNU1ERUJBU0VCSXdFaEFsRUNHQUVZL1NEdi91a0JCZ0UvQkhINlVBV3dBQUVBdHdBQUJ6b0ZzQUFNQUdDeUJRME9FUkk1QUxBQVJWaXdBUzhic1FFZlBsbXdBRVZZc0Fndkc3RUlIejVac0FCRldMQUxMeHV4Q3g4K1diQUFSVml3QXk4YnNRTVBQbG13QUVWWXNBWXZHN0VHRHo1WnNnQUJBeEVTT2JJRkFRTVJFam15Q2dFREVSSTVNREVCQVRNQkl3TUJJd016RXdFekJMc0JoUHY5MXV4bC9ranVZdTh3QWJmUEFXb0VSdnBRQkNUNzNBV3crNzhFUVFBQUFmL0RBQUFGUndXd0FBc0FVd0N3QUVWWXNBRXZHN0VCSHo1WnNBQkZXTEFLTHh1eENoOCtXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQWN2RzdFSER6NVpzZ0FCQkJFU09iSUdBUVFSRWpteUF3QUdFUkk1c2drR0FCRVNPVEF4QVFFaEFRRWhBd0VoQVFFaEFxTUJlZ0VxL2RzQlB2N3UzUDU4L3RVQ01mN0pBUkFEb3dJTi9TUDlMUUlWL2VzQzZRTEhBQUVBb1FBQUJVMEZzQUFJQURFQXNBQkZXTEFCTHh1eEFSOCtXYkFBUlZpd0J5OGJzUWNmUGxtd0FFVllzQVF2RzdFRUR6NVpzZ0FCQkJFU09UQXhBUUVoQVFNakV3RWhBbk1CdkFFZS9YNWIrR0QreVFFRkF3QUNzUHhiL2ZVQ0pRT0xBQUFCLytVQUFBVG5CYkFBQ1FCRUFMQUFSVml3Qnk4YnNRY2ZQbG13QUVWWXNBSXZHN0VDRHo1WnNnQUJDaXRZSWRnYjlGbXlCQUFDRVJJNXNBY1FzZ1VCQ2l0WUlkZ2I5Rm15Q1FVSEVSSTVNREVsSVFjaE53RWhOeUVIQVRvQzdDVDc0eDhEamYweUpBUUFIc3JLc0FRMHpLd0FBQUgvNy82OEFyVUdqZ0FIQUNJQXNBUXZzQWN2c2dBQkNpdFlJZGdiOUZtd0JCQ3lBd0VLSzFnaDJCdjBXVEF4QVNNRE13Y2hBU0VDbDUvK29CNytjd0U1QVkwRjBQbXB2UWZTQUFBQkFLei9nd0xJQmJBQUF3QVRBTEFDTDdBQVJWaXdBQzhic1FBZlBsa3dNUk16QVNPczRBRTg0QVd3K2RNQUFmOTYvcndDUXdhT0FBY0FKUUN3QWkrd0FTK3dBaEN5QlFFS0sxZ2gyQnYwV2JBQkVMSUdBUW9yV0NIWUcvUlpNREVUSVFFaE56TVRJN1FCai83SC9uQWVvdjZqQm83NExyMEdWd0FBQVFCRUF0a0RMZ1d3QUFZQUo3SUFCd2dSRWprQXNBQkZXTEFETHh1eEF4OCtXYkFBMExJQkJ3TVJFam13QVMrd0JkQXdNUUVESXdFekV5TUNGUDNUQWFDbm83MEVwUDQxQXRmOUtRQUFBZjk1LzBFREZnQUFBQU1BR3dDd0FFVllzQU12RzdFRER6NVpzZ0FCQ2l0WUlkZ2I5Rmt3TVFVaE55RUM5UHlGSWdON3Y3OEFBUURLQk5FQ1ZnWUFBQU1BSkFDd0FTK3lEd0VCWGJBRDBMQURMN1FQQXg4REFsMnlBQUVERVJJNUdiQUFMeGd3TVFFakF6TUNWclhYL2dUUkFTOEFBQUlBSXYvb0E5d0VVQUFnQUNzQWhiSUtMQzBSRWptd0NoQ3dKdEFBc0FCRldMQVlMeHV4R0JzK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBUXZHN0VFRHo1WnNnSUVHQkVTT2JJS0dBQVJFam13Q2krd0dCQ3lFQWNLSzFnaDJCdjBXYklUQ2hBUkVqbEFDUXdUSEJNc0V6d1RCRjJ3QkJDeUlRRUtLMWdoMkJ2MFdiQUtFTEltQndvcldDSFlHL1JaTURFaEpqY0dKeVltTnpZa014YzNOaWNtSnlZR0J3YytBaGNXRmdjREJ3WVhCeVVXTmpjM0p5SUdCd1lXQXBNTUFvYWJqYmtHQ0FFWTdKb09CZ1lVZTB4ekRlMEhnTlIyc2NZUlV3Z0RFZ0grSVV1QUxTVnhocUFMQ0Vzb1BYMEVBckdJcThRQ1NpY2liQU1DVVVRQ1pKZFVBZ1ROby80RldqczRFcTRDU1RyTkFXVllRMDBBQUFJQUVQL29CQThHQUFBUkFCNEFaTElFSHlBUkVqbXdCQkN3RzlBQXNBa3ZzQUJGV0xBTkx4dXhEUnMrV2JBQVJWaXdCeThic1FjUFBsbXdBRVZZc0FRdkc3RUVEejVac2dZTkJ4RVNPYklMRFFjUkVqbXdEUkN5RlFFS0sxZ2gyQnYwV2JBRUVMSWFBUW9yV0NIWUcvUlpNREVCQmdJR0p5WW5CeU1CTXdNMkZ4WVdGeFluTkNZbkpnY0RGaGNXTmpjMkJBY1VpY3QvdFZ3bTJRRUs3bXg1cHAyeEJRSHNXbFdQWTA0c2tYaWJGZ2dDR0tYKzlZQURCSWQyQmdEOTBZRUVCTjdCUEM5dGV3SUVqdjVBaUFVRHZxMVZBQUFCQURqLzZRUHVCRklBSEFCTHNnQWRIaEVTT1FDd0FFVllzQkV2RzdFUkd6NVpzQUJGV0xBSUx4dXhDQTgrV2JJQUFRb3JXQ0hZRy9SWnNnUVJDQkVTT2JJVkNCRVJFam13RVJDeUdBRUtLMWdoMkJ2MFdUQXhKUlkyTnpjT0FpY3VBamMzUGdJWEZoWVZJelFtSnlZR0J3SUI2RldERXVBTGhkQnhpOFJhRHdNUmxleVFzTkxlVzFhTG9BWUhyUUpuVXdGcnNHSURBb3ozbUNPZC80b0VCT0cwWFhZRUJQVGUvdk1BQWdBNy8rY0VpQVlBQUJJQUhRQmhzZ1FlSHhFU09iQUVFTEFiMEFDd0J5K3dBRVZZc0FRdkc3RUVHejVac0FCRldMQUpMeHV4Q1E4K1diQUFSVml3RFM4YnNRMFBQbG15QmdRSkVSSTVzZ3NFQ1JFU09iSVdBUW9yV0NIWUcvUlpzQVFRc2hzQkNpdFlJZGdiOUZrd01STTJFallYRmhjVE13RWpOd1luSmlZbkpqY1hCaFlYRmpjVEppY21Ca1FVak01K3BWMW83djcxMUJCK3FwZTFCd01HNlFkYldvbGtVUytIaUtZQ0hxY0JDb01EQkhjQ0xQb0FjSWtFQXVXK1BqdElmSklDQklrQjBYMEVCUGdBQUFJQU8vL3FCQUlFVVFBV0FCOEFnN0lSSUNFUkVqbXdFUkN3RjlBQXNBQkZXTEFKTHh1eENScytXYkFBUlZpd0FDOGJzUUFQUGxteUdnQUpFUkk1c0JvdnRMOGF6eG9DWGJSZkdtOGFBbkcwSHhvdkdnSnhzbzhhQVYyMDd4ci9HZ0p4c2cwSENpdFlJZGdiOUZtd0FCQ3lFUUVLSzFnaDJCdjBXYklUQ1FBUkVqbXdDUkN5RndFS0sxZ2gyQnYwV1RBeEJTNENOemMyRWpZWEZoSUhCeUVHRmhjV054Y0dCZ01tQXdVM05pY21KZ0g2amM5akRBTVNuZXFKeThzWkR2MVhDWHBybVlGNFJONGZ2RjRCd1FRSEJndGFGQU9JN0pFcHBRRUhpQU1FL3Ryc2FJR2VBZ1dLZm1GckE2SUcvdkFCRlM0c1IxSUFBUUJmQUFBRFhnWWFBQlVBWTdJVkZoY1JFamtBc0FCRldMQUlMeHV4Q0NFK1diQUFSVml3QXk4YnNRTWJQbG13QUVWWXNCRXZHN0VSR3o1WnNBQkZXTEFBTHh1eEFBOCtXYkFERUxJQkFRb3JXQ0hZRy9SWnNBZ1FzZzBCQ2l0WUlkZ2I5Rm13QVJDd0U5Q3dGTkF3TVRNVEl6Y3pOelkyRnhZWEJ5WWpKZ1lIQnpNSEl3TmpuYUVnb0JBYTI2MDlVQm9zTFZWc0R3L1dJTldkQTRhMGRLakVBZ0lTdmdvQlhsTm10UHg2QUFBQy8vZitUd1JDQkZFQUhBQXFBSU95QkNzc0VSSTVzQVFRc0NQUUFMQUFSVml3Q0M4YnNRZ2JQbG13QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFNTHh1eERCRStXYkFBUlZpd0dDOGJzUmdQUGxteUJnZ1lFUkk1c0F3UXNoSUJDaXRZSWRnYjlGbXlFQklZRVJJNXNoWUlHQkVTT2JBWUVMSWlBUW9yV0NIWUcvUlpzQVFRc2ljQkNpdFlJZGdiOUZrd01STTJFallYRmhjM0Z3TUdCQ2NtSmljM0ZoY1dOamMzQmljbUppY21Od1lYRmhZWEZqY1RKaWNtQmdkR0U0blFockpiSmRpekh2N1gxWExNUG41Zm1YU25IQkY5bjVpM0NRUHpCZ0lDWEZXSFpWVTBoWGlrR1FJZW9nRUdpd0lFZjI4QisrVFUrd1lDWkZLUGd3UUVoMzFNZVFRQzRyODhQak03YW53REJZSUIzbmNFQThDdEFBQUJBQTBBQUFQNUJnQUFFZ0JKc2dFVEZCRVNPUUN3RVMrd0FFVllzQUl2RzdFQ0d6NVpzQUJGV0xBR0x4dXhCZzgrV2JBQVJWaXdEeThic1E4UFBsbXlBQUlHRVJJNXNBSVFzZ3dCQ2l0WUlkZ2I5Rmt3TVFFMkZ4WVdCd01qRXpZbkppY21Cd01qQVRNQmw0ZXNtcFVUZE8xMkJRTU5nNFJvaCswQkN1NER3NDRFQXRhOS9VZ0N1eXNsZWdNQ2hQejZCZ0FBQWdBZkFBQUNDUVhZQUFNQUR3QStzZ1FRRVJFU09iQUVFTEFBMEFDd0FFVllzQUl2RzdFQ0d6NVpzQUJGV0xBQUx4dXhBQTgrV2JBQ0VMQU4wTEFOTDdJSERRb3JXQ0hZRy9SWk1ERWhJeE16QXpRMk56WVdGUlFHQndZbUFRenR2TzNMU0QwNlRVczZPVTRFT2dFVk4wNENBa3MyT1VvQ0Fra0FBQUwvRFA1R0FmNEYyQUFNQUJnQVNiSUJHUm9SRWptd0FSQ3dEZEFBc0FCRldMQUFMeHV4QUJzK1diQUFSVml3QkM4YnNRUVJQbG15Q1FFS0sxZ2gyQnYwV2JBQUVMQVcwTEFXTDdJUURRb3JXQ0hZRy9SWk1ERUJBd1lHSnlZbk54WXpNamNURXpRMk56WVdGUlFHQnlJbUFjUEhGcnlYUUVjVUxpWi9Hc2tkU0R3NlRVczZQRW9FT3Z0bnFMTUNBaEhBQzVVRWxRRVZPa3NDQWtrNE9Vb0NSd0FBQVFBUkFBQUVTZ1lBQUF3QVV3Q3dBRVZZc0FRdkc3RUVJVDVac0FCRldMQUlMeHV4Q0JzK1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNBc3ZHN0VMRHo1WnNnQUlBaEVTT2JScUFIb0FBbDJ5QmdnQ0VSSTV0R1VHZFFZQ1hUQXhBUWNESXdFekF6Y0JJUUVCSVFHL2hqdnRBUXJ0bUZNQldBRXYvaUFCUFA3L0FjNTMvcWtHQVB5WVZnRk0vakw5bEFBQkFCOEFBQUlYQmdBQUF3QWRBTEFBUlZpd0FpOGJzUUloUGxtd0FFVllzQUF2RzdFQUR6NVpNREVoSXdFekFRenRBUXZ0QmdBQUFBRUFFQUFBQm1nRVVnQWhBSGV5RmlJakVSSTVBTEFBUlZpd0F5OGJzUU1iUGxtd0FFVllzQWd2RzdFSUd6NVpzQUJGV0xBQUx4dXhBQnMrV2JBQVJWaXdEQzhic1F3UFBsbXdBRVZZc0JZdkc3RVdEejVac0FCRldMQWZMeHV4SHc4K1diSUJDQXdSRWpteUJnZ01FUkk1c0FnUXNoSUJDaXRZSWRnYjlGbXdITkF3TVFFSE5oY1dGaGMyRnhZV0J3TWpFelluSmljbUJ3Y0RJeE0ySnlZbkpnY0RJeE1CcVJXR3VtYUhHSmJDbnBrVGRlMTJCUVFRaEpOVkEzenVkZ1VFRUlTRldZbnR1d1E3YzRvRUFscEtxZ1FFMGJ6OVF3Sy9MQ1YxQXdTbEZ2MHZBcndySlhrREFubjg3d1E2QUFFQURRQUFBL29FVWdBU0FGT3lBaE1VRVJJNUFMQUFSVml3QXk4YnNRTWJQbG13QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFITHh1eEJ3OCtXYkFBUlZpd0VDOGJzUkFQUGxteUFRTUhFUkk1c0FNUXNnMEJDaXRZSWRnYjlGa3dNUUVITmhjV0ZnY0RJeE0ySnlZbkpnY0RJeE1CcHhpTHRwaVNFM1h0ZGdVRURZR0hab2Z0dXdRN2Y1WUVBOU85L1VVQ3Zpc2xkd01DaC96OUJEb0FBZ0E1LytnRUp3UlNBQkFBSUFCRHNoc2hJaEVTT2JBYkVMQUUwQUN3QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFNTHh1eERBOCtXYklVQVFvcldDSFlHL1Jac0FRUXNoc0JDaXRZSWRnYjlGa3dNUk0yRWpZWEhnSUhCZ0lHSnk0Q054Y1dGaGNXTmpjM05DWW5KZ2NHQndaSkVabndrb3ZLWFE0UW0vR1Rpc2xlRGV3RlpWcDZwUlVHWm1HWVdEVU9DQUlobndFRWpnUUNrUHFaclA3NGpRUUNqL21XZEdsL0F3UENxR0tBa2dRRW1WMTVWQUFDLzhmK1lBUU5CRklBRWdBZUFHZXlCQjhnRVJJNXNBUVFzQjNRQUxBQVJWaXdEUzhic1EwYlBsbXdBRVZZc0Fvdkc3RUtHejVac0FCRldMQUhMeHV4QnhFK1diQUFSVml3QkM4YnNRUVBQbG15Q3cwSEVSSTVzQTBRc2hjQkNpdFlJZGdiOUZtd0JCQ3lIQUVLSzFnaDJCdjBXVEF4QVFZQ0JpY21Kd01qQVRjSE5oY2VBaGNXQnpjMkppY21Cd01XRnhZMkJBVVVoYzEvcVdGaDdnRUUyUko4cTJlWVVRTUI4Z1VEVzF1R1lsUXRpbmFoQWhtaS92aUhBd1IwL2YwRjJnRndod1FCWjhSNFBUOUpnWTRDQkgvK0hYa0VBNzRBQUFJQU8vNWdCRGdFVWdBU0FDQUFhN0lFSVNJUkVqbXdCQkN3R05BQXNBQkZXTEFJTHh1eENCcytXYkFBUlZpd0JDOGJzUVFiUGxtd0FFVllzQWt2RzdFSkVUNVpzQUJGV0xBTkx4dXhEUTgrV2JJR0NBMFJFam15Q3dnTkVSSTVzaGNCQ2l0WUlkZ2I5Rm13QkJDeUhRRUtLMWdoMkJ2MFdUQXhFellTTmhjV0Z6Y1hBU01UQmljbUppY21Oek1IQmhZWEZqWTNFeVluSmdZSFJCU096bitzWENmVy92enRZbm1jbTdRSEF3YnVCUU5iV0V0dkxWZzBnbktmSEFJZnF3RUpmd01FZlcwQitpWUIvWFVFQXVPK1B6eEloNHNDQTBVNEFlNXlCQU95cEFBQkFCQUFBQUx2QkZNQURRQkdzZ2tPRHhFU09RQ3dBRVZZc0Fndkc3RUlHejVac0FCRldMQUxMeHV4Q3hzK1diQUFSVml3QlM4YnNRVVBQbG13Q3hDeUFnRUtLMWdoMkJ2MFdiSUpDd1VSRWprd01RRW1JeVlIQXlNVE53YzJGeklYQXRRdUw1eGNndTI3NFJodmtTRTZBMXdLQklYOUd3UTZBWHVUQXc4QUFBRUFIUC9wQThRRVVBQWtBSFN5SXlVbUVSSTVBTEFBUlZpd0NDOGJzUWdiUGxtd0FFVllzQnN2RzdFYkR6NVpzZ01iQ0JFU09iSUxDQnNSRWpteUhBc0JYYklMQ3dGZHNBZ1FzZzhCQ2l0WUlkZ2I5Rm13QXhDeUV3RUtLMWdoMkJ2MFdiSWVDQnNSRWptMEJCNFVIZ0pkc0JzUXNpSUJDaXRZSWRnYjlGa3dNUUUySkNjbU56WTJGeFlXQnljMkppY2lCZ2NHQkJjV0J3NENKeVltTnhjV0ZoY3lOZ0tYRWY3ZE5jNEhCZit5ck5rQzZ3SldTMDl4Q1E0QkhFVEdCd1Y5MG5heDZRTGxBbVJYV0hVQkxHTk5GMWkwa3I4Q0FyNmFBVXRWQWs0L1cwY2VWN2xubVZFREFzcWVBVmRhQVVrQUFRQTcvKzBDcmdWQkFCWUFYTElXRnhnUkVqa0FzQUJGV0xBQkx4dXhBUnMrV2JBQVJWaXdGQzhic1JRYlBsbXdBRVZZc0E0dkc3RU9EejVac0FFUXNBRFFzQUF2c0FFUXNnTUJDaXRZSWRnYjlGbXdEaEN5Q1FFS0sxZ2gyQnYwV2JBREVMQVMwREF4QVFNekJ5TURCaGNXRnpJM0J3WWpKaVkzRXlNM014TUNJeTY1SDdwbUF3SUdTaVV2RUVwTGZIc05aYTBnckM0RlFmNzV0UDJpR1JSQkF3bStGUUtsaUFKcXRBRUhBQUFCQUVyLzZBUXhCRG9BRXdCUXNnRVVGUkVTT1FDd0FFVllzQWN2RzdFSEd6NVpzQUJGV0xBUUx4dXhFQnMrV2JBQVJWaXdFaThic1JJUFBsbXdBRVZZc0FJdkc3RUNEejVac2dBUUVoRVNPYklOQVFvcldDSFlHL1JaTURFbEJpY3VBamNUTXdNR0Z4WVhGamNUTXdNakFxMTd1V21MT3d4MTdYWUVBd3B6bldHSTdidmVhNE1FQW1TemVRSzgvVUVsSTN3RkJvUURDdnZHQUFBQkFHUUFBQVFOQkRvQUJnQTRzZ0FIQ0JFU09RQ3dBRVZZc0FFdkc3RUJHejVac0FCRldMQUZMeHV4QlJzK1diQUFSVml3QXk4YnNRTVBQbG15QUFVREVSSTVNREVCQVRNQkl3TXpBYm9CVnYzOTY4N0c3Z0UzQXdQN3hnUTZBQUFCQUhjQUFBWDRCRG9BREFCZ3NnVU5EaEVTT1FDd0FFVllzQUV2RzdFQkd6NVpzQUJGV0xBSUx4dXhDQnMrV2JBQVJWaXdDeThic1FzYlBsbXdBRVZZc0FNdkc3RUREejVac0FCRldMQUdMeHV4Qmc4K1diSUFDd01SRWpteUJRc0RFUkk1c2dvTEF4RVNPVEF4QVFFekFTTURBU01ETXhNQk13UGhBU251L2liRFgvNml4R1BnS1FGV3N3RlJBdW43eGdMay9Sd0VPdjBpQXQ0QUFBSC91UUFBQkJNRU9nQUxBRk1Bc0FCRldMQUJMeHV4QVJzK1diQUFSVml3Q2k4YnNRb2JQbG13QUVWWXNBUXZHN0VFRHo1WnNBQkZXTEFITHh1eEJ3OCtXYklBQ2dRUkVqbXlCZ29FRVJJNXNnTUFCaEVTT2JJSkJnQVJFamt3TVFFVElRRVRJd01CSVFFRE13SC8vd0VWL21MeCtKZis5djdzQWF2cCtBTFlBV0w5NFAzbUFYSCtqd0l3QWdvQUFBSC90ZjVGQkJJRU9nQVBBRU95QUJBUkVSSTVBTEFBUlZpd0R5OGJzUThiUGxtd0FFVllzQUV2RzdFQkd6NVpzQUJGV0xBRkx4dXhCUkUrV2JJQUJROFJFam15Q1FFS0sxZ2gyQnYwV1RBeEFRRWhBUUluSmljM0Z4WTJOemNETXdHNEFWUUJCdjEvaHRzMlJSUXJWbkFtT2JYMkFWNEMzUHNML3dBREFoSzhCQU5IUzNBRUp3QUIvK2NBQUFQa0JEb0FDUUJFQUxBQVJWaXdCeThic1FjYlBsbXdBRVZZc0FJdkc3RUNEejVac2dBQkNpdFlJZGdiOUZteUJBQUNFUkk1c0FjUXNnVUJDaXRZSWRnYjlGbXlDUVVIRVJJNU1ERWxJUWNoTndFaE55RUhBVGdDSmlMOHF4NENpUDM5SXdNM0hjTENxd0xMeEtVQUFBRUFNUDZaQXdVR1FBQWJBRGF5REJ3ZEVSSTVBTEFPTDdBQVJWaXdBQzhic1FBWFBsbXlDUTRBRVJJNXNBa3ZzZ2dIQ2l0WUlkZ2I5Rm15RkFnSkVSSTVNREVCSmlZM056WW5KaWMzTmpjM0VpVVhCZ01IQmdjV0ZnOENCaGNCelo2Y0V4d0ZCQTJHRWNjZkh6a0JZeVBCSXgwaHVVazJDUjREQTRQK21UUHdyc3d0SjNvTHNncmQ0QUZRYUk5Ry92cmF4V0Ezb2xqbVI2bzZBQUVBSVA3eUFkSUZzQUFEQUJNQXNBQXZzQUJGV0xBQ0x4dXhBaDgrV1RBeEV5TUJNOFNrQVE2ay92SUd2Z0FCLzVuK2xRSnZCanNBSEFBMnNob2RIaEVTT1FDd0RpK3dBRVZZc0J3dkc3RWNGejVac2hZT0hCRVNPYkFXTDdJWEJ3b3JXQ0hZRy9SWnNnVVhGaEVTT1RBeEJ6WTNOelkzSmljbVB3STBKemNXRmdjSEJoY1dGd2NHQndjQ0JXZTRLU0lqdm5BT0JRVWVCSUUzbzVBU0hBVUVEWWNTeUI0Zk9mNmQyMEQ0OU1OYlNwQXJMZVpJcWptSk52R296QzRtZkF1eUN0dmYvcXhtQUFBQkFGc0JmZ1RLQXpRQUZnQThzZ1VYR0JFU09RQ3dEaSt3QU5DeUF4Y09FUkk1c0FNdnNBNFFzZ2dCQ2l0WUlkZ2I5Rm13QXhDd0N0Q3dBeEN5RXdFS0sxZ2gyQnYwV1RBeEFRWUdKeTRESXlZSEl6WTJGeDRETXpJMk53VEtETVNVVVg1MFF5R0hJcnNPeDVGU2duQkVIMFJkRUFNVXJ1Z0VBa3AwSkFQQXI5d0VBa3h5SkdsY0FBQUMvK2IrbEFIT0JGQUFBd0FPQUQ2eUN3OFFFUkk1c0FzUXNBTFFBTEFBUlZpd0RDOGJzUXdiUGxtd0FFVllzQUl2RzdFQ0Z6NVpzQXdRc2djTkNpdFlJZGdiOUZtd0FkQ3dBUzh3TVJNekF5TUJGQVlHSmpVME5qYzJGcS9NbXZzQjZFcDJURW83T2swQ2x2ditCVHM1VFFSS09EbE1BZ0pMQUFFQVRQOExCQVlGSmdBaEFGZXlFaUlqRVJJNUFMQUFSVml3RlM4YnNSVWJQbG13QUVWWXNBY3ZHN0VIRHo1WnNnQUJDaXRZSWRnYjlGbXlCQWNWRVJJNXNBY1FzQXJRc0JVUXNCTFFzaGtWQnhFU09iQVZFTEljQVFvcldDSFlHL1JaTURFbEZqWTNOd1lHQndjak55NENOemMyRWpjM013Y1dGZ2NqTkNZbkpnSVZGQllCOWxpQUZOOE8xcUF2eERCcmlUb09BaG4yd1M3RExvU1RBdDFjVTQrcFhLMENhRklCamNjZDZ1d2JrOStFRk9VQklpTGg0eUhTbTJGeEJBYis5dkJxZlFBQUFmLzJBQUFFcFFYSEFDQUFhckljSVNJUkVqa0FzQUJGV0xBVEx4dXhFeDgrV2JBQVJWaXdCUzhic1FVUFBsbXlIaE1GRVJJNXNCNHZzZ0FCQ2l0WUlkZ2I5Rm13QlJDeUF3RUtLMWdoMkJ2MFdiQUkwTEFBRUxBTDBMQWVFTEFOMExBVEVMQVcwTEFURUxJYUFRb3JXQ0hZRy9SWk1ERUJCd1lISlFjaE54YzJOemNqTnpNM1BnSVhGaFlISnpZbUp5WUdCd2NoQndIdUZoRlpBcWdrL0FRa1JXUWNHSjBqbHg4UWk5bC90TXNJN3dWU1UxcC9EaDBCTGlNQ1ZxNkNYd1BLeVFJa3NybkgrMy9IYVFRRTJiWUJYMmNFQW9adzZzY0FBQUlBQ1AvbEJYOEU4UUFjQUN3QVA3SWlMUzRSRWptd0loQ3dFTkFBc0FCRldMQUNMeHV4QWc4K1diQVIwTEFSTDdBQ0VMSWhCd29yV0NIWUcvUlpzQkVRc2lrSENpdFlJZGdiOUZrd01TVUdKeVluQnljM0ppY21FamNuTnhjMkZ4WVhOeGNIRmdjR0J4Y0hBUVlXRmhjV05qWTNOaVltSnlZR0JnUFV0cnpEaDVoNG1oc0tFMWhtYzVkdXI3SzVpS3A1cVQ0VUdvTnZtUHo0RDBTYWFYSFJqeEFQUkpwcGN0T01hWUVFQkhxRW00QlZWcE1CSEhXYmhZOTBCQUp5bEp5T3VhZkpucFdHQW5KdXlYa0VCSG5aZDI3SGVBUUVldFFBQVFCUUFBQUZPQVd3QUJZQWNnQ3dBRVZZc0JZdkc3RVdIejVac0FCRldMQU1MeHV4REE4K1diSUFEQllSRWptd0ZoQ3dBZEN5RHd3V0VSSTVzQTh2c0JQUXNCTXZ0QThUSHhNQ1hiQUUwTEFFTDdBVEVMSVNCQW9yV0NIWUcvUlpzQWJRc0E4UXNBZlFzQWN2c0E4UXNnNEVDaXRZSWRnYjlGbXdDdEF3TVFFQklRRXpCeUVISVFjaEF5TVRJVGNoTnlFM0lRRWhBbm9Cb0FFZS9nZitHLzZ1R0FGVEcvNnVOUGMxL3FnYkFWY1kvcWdiQVJqKy9nRUZBellDZXYwMm1JcVgvdE1CTFplS21BTEtBQUFDLyt6KzhnSDRCYkFBQXdBSEFCZ0FzQUF2c0FCRldMQUdMeHV4Qmg4K1diSUZBUU1yTURFREV6TURFeU1UTXhTTDM0cW80SVRnL3ZJREcvemxBOGdDOWdBQy85eitJd1N4QmNZQUxnQTVBSUN5SnpvN0VSSTVzQ2NRc0RUUUFMQUlMN0FBUlZpd0h5OGJzUjhmUGxteUFnZ2ZFUkk1c0FnUXNBelFzQWdRc2c4QkNpdFlJZGdiOUZteUZRZ2ZFUkk1c2hvZkNCRVNPYkFmRUxBajBMQWZFTEltQVFvcldDSFlHL1Jac2l3SUh4RVNPYkFWRUxJekFRb3JXQ0hZRy9SWnNDd1FzamtCQ2l0WUlkZ2I5Rmt3TVFFR0J4WUhEZ0luSmlZM013WVdGekkyTnpZdkFpUTNOamNtTnpZa0Z4WVdCeWMySmljbUJ3WUhCZ1FYRmlVR0J3WWZBalkzTmljRVVnN0lZUTBKai9DUjRQc0Y4QVorZUhpZERSVzVrbG4rNnhVT3htQU5EZ0VxNDlickNld0dkR2x5VGxNT0ZnRjhWT1g5Ym5rVUZyYkRLSUVVRnNJQno3VnBhS2g1ckZrREF1TEZhM2tDWWxONFFUQWpkL1c0WjIya3NOQUNCT1RHQVd4N0FnSXVNVnFHY1N0MElEZDJpRDFBRHp0eWdVUUFBQUlBMFFUZUE0TUZ6UUFLQUJVQUlnQ3dFUyt5RHhFQlhiSUxCUW9yV0NIWUcvUlpzQURRc0JFUXNBYlFzQVl2TURFQk1oWVZGQVlISWlZME5pVXlGaFVVQmdjaUpqUTJBVXcyUmtZMU9FUkVBZkk0UkVZMU4wVkZCYzFETVRORkFrUmdTQUZFTURORkFrSmtSZ0FBQXdCZS8rZ0Y2UVhIQUJzQUtRQTZBSld5TGpzOEVSSTVzQzRRc0JMUXNDNFFzQ2ZRQUxBQVJWaXdMeThic1M4ZlBsbXdBRVZZc0Rjdkc3RTNEejVac2dNM0x4RVNPYkFETDdRUEF4OERBbDJ5Q2k4M0VSSTVzQW92dEFBS0VBb0NYYklBQXdvUkVqbXlEZ29ERVJJNXNoRUNDaXRZSWRnYjlGbXdBeEN5R1FJS0sxZ2gyQnYwV2JBM0VMSWZDQW9yV0NIWUcvUlpzQzhRc2lZSUNpdFlJZGdiOUZrd01RRUdCaWNtSmpjM05qWVhGaFlISnpZbUp5WUdCaFVYRmhZWEZqY0ZGZ0FYRmlRU0p5WUNKeVlFQWdjMkVqWWtGeFlFRWdjR0FnUW5KaVFDQkVNTXVabVNwQTRLRTlDZWxab0VtQVZJVVYxN0hRSUZTMEtuSC8wOUV3RUJ2TGdCU2JjU0UvekF1ZjYzdVdJUmllQUJEWkN5QVI2UEZSYm0vcVcvdHY3bWtBSlVscWdFQk5pblpiemNBZ1NwandGYVdRSUNqdmdiTEV0WUF3ZTVHTXorK3dJRTJ3RjN3Y29CQVFVRTJ2NkpLSllCRjlsdkF3TEYvcWJFeWY2YXlBUUV4QUZjQUFBQ0FMNENzd05RQmNjQUhRQW5BR3V5RWlncEVSSTVzQklRc0I3UUFMQUFSVml3Rmk4YnNSWWZQbG15QkNnV0VSSTVzQVF2c0FEUXNBQXZzZ29FRmhFU09iQUtMN0FXRUxJUUFnb3JXQ0hZRy9SWnNBb1FzUklLSzFqWUc5eFpzQVFRc2g0Q0NpdFlJZGdiOUZtd0NoQ3hJZ29yV05nYjNGa3dNUUVtTndZaklpWTNOall6RnpjMkp5WW5KZ2NuTmpZWEZoWUhBd2NHRnlVeU56Y2pCZ1lIQmhZQ2JnVUNYVzFxZVFRQ3U2aG9Dd1FCQjB4M0c2d0xzWUo2akFvMkJBRUovclZGV2h0VFVtWUlCekVDdnlnZVVudGhjMzBCTlJrV1N3TUVadzV2ZlFJQ2xuMytwVG90TDRJK2lnTStOU1lzLy84QVNRQ0tBNjBEcVFBbUE0RHNBQUFIQTRBQlNBQUFBQUVBZ0FGMkE4b0RKUUFGQUJvQXNBUXZzQUhRc0FFdnNBUVFzZ0lCQ2l0WUlkZ2I5Rmt3TVFFakV5RTNJUU4veEM3OWx4OERLd0YyQVFTci8vOEFOZ0lKQWxnQ3pRSUdBQkVBQUFBRUFGNy82QVhwQmNnQUR3QWZBRGdBUVFDZnNqcENReEVTT2JBNkVMQUQwTEE2RUxBZDBMQTZFTEE0MEFDd0FFVllzQVF2RzdFRUh6NVpzQUJGV0xBTUx4dXhEQTgrV2JJVUNBb3JXQ0hZRy9SWnNBUVFzaHdJQ2l0WUlkZ2I5Rm15SVF3RUVSSTVzQ0V2c2lRRURCRVNPYkFrTDdRQUpCQWtBbDJ5SUNFa0VSSTVzQ0F2c2lBZ0FWMnlPUWdLSzFnaDJCdjBXYklwSURrUkVqbXdJUkN3TWRDd0pCQ3lRQWdLSzFnaDJCdjBXVEF4RXpZU0pCY1dCQklIQmdJRUp5WWtBamNlQWhjV0pCSTNOZ0ltSnlZRUFnVURJeE1GRmhZSEJnY1dGeFlHRnhjSEl5WTNOamMySmljbkZ6WTJOelltSnlkekZ0NEJYc1d5QVI2UEZSYm0vcVcvdHY3bWtJb01mc2wrbkFFbnlSY1ZhZUNZdWY2M3VBRzROWlNGQVFTUGxBVUhpVWtIQWcwQkJBR1ZCUUlCREFZc1FwQ0JTbVVLQ3p0WmlnTFN4Z0ZoendRQ3hmNm14TW4rbXNnRUJNUUJYQ3VEMTNZREJLUUJMYXVmQVI2bUJBVGEvb3h3L3E4RFVnRUZobkYwVEM1a0gza2NQaElsSkNGZlAwUUVpQUVDUXpZN1BRTUJBQUVBN3dVU0E4c0ZzQUFEQUJFQXNBRXZzZ0lEQ2l0WUlkZ2I5Rmt3TVFFaE55RURzdjA5R1FMREJSS2VBQUFDQU9RRHJBTGtCY2NBQ3dBWEFDOEFzQUJGV0xBREx4dXhBeDgrV2JBUDBMQVBMN0lKQWdvcldDSFlHL1Jac0FNUXNoVUNDaXRZSWRnYjlGa3dNUk0yTmhjV0ZnY0dCaWNtSmpjR0ZqTXlOamMySmlNaUJ1WUNwRzlqaGdJRW9HeG1pSW9HTmpFM1VBWUdOUzgyVkFTdmI2a0NBcGxwY3FNQ0FwWnJMRWxQTkRGSlZBQUNBQnNBQVFRRkJQd0FDd0FQQUVZQXNBa3ZzQUJGV0xBTkx4dXhEUTgrV2JBSkVMQUEwTEFKRUxJR0FRb3JXQ0hZRy9SWnNBUFFzQTBRc2c0QkNpdFlJZGdiOUZteUJRNEdFUkk1dEFzRkd3VUNYVEF4QVNFSElRTWpFeUUzSVJNekV5RTNJUUs0QVUwZy9yUTkwejMrcFNBQldUelRZZnpISHdNNUE0UEgvbndCaE1jQmVmc0Z4QUFCQUZZQ213THhCYjhBRndCWnNnZ1lHUkVTT1FDd0FFVllzQTh2RzdFUEh6NVpzQUJGV0xBQUx4dXhBQk0rV2JJV0Fnb3JXQ0hZRy9SWnNnSUFGaEVTT2JJRER3QVJFam13RHhDeUNBSUtLMWdoMkJ2MFdiSU1Ed0FSRWpteUV3OEFFUkk1TURFQklUY0JOamMySmljaUJnY0hOallYRmhZSEJnOENCUUtwL2EwWUFWWmhEQWNyS1RwRERMWUtyNEova2dVRmxrK2RBVjhDbTRjQkdWTkRLUzhCUnpRQmVaZ0NBb05vZm5jOGJnSUFBUUJuQW8wQytBVytBQ1FBYjdJSkpTWVJFamtBc0FCRldMQU5MeHV4RFI4K1diQUFSVml3R0M4YnNSZ1RQbG15QVJnTkVSSTVmTEFCTHhpd0RSQ3lCd0lLSzFnaDJCdjBXYklLQVFjUkVqbXdBUkN5SXdJS0sxZ2gyQnYwV2JJVEl3RVJFam13R0JDeUhnSUtLMWdoMkJ2MFdiSWNJeDRSRWprd01RRXpOalkzTmljbkpnY0hOallYRmhZSEJnWUhGZ2NHQmljbUpqVVhGaGN5TmpjMkp5TUJXVk05VFFjSlNoZGRITG9KcG4yQm1RVURTVkoyQkFPOGkzMlpzUVJxTmxNSERYaGNCR3dDT0M1RERRSUNUQUZwZWdJRGQySTdWeVlwZ1crQ0FnS0RiUUZaQWpndldRVUFBUURJQk5FQzBnWUFBQU1BSXdDd0FpK3lEd0lCWGJBQTBMQUFMN1FQQUI4QUFsMndBaEN3QTlBWnNBTXZHREF4QVNFQkl3RzFBUjMreE00R0FQN1JBQUgvM2Y1Z0JGUUVPZ0FUQUZheURSUVZFUkk1QUxBQVJWaXdBQzhic1FBYlBsbXdBRVZZc0Fndkc3RUlHejVac0FCRldMQVJMeHV4RVJFK1diQUFSVml3Q2k4YnNRb1BQbG13QUVWWXNBNHZHN0VPRHo1WnNnVUJDaXRZSWRnYjlGa3dNUUVEQmhjV0Z4WTNFek1ESXpjR0p5SW5BeU1CQWMxbUNBSUZoWmhhaXUyNzF3OW9qR3hTVnV3QkJBUTYvWkpWS0owREJId0RFL3ZHVm00Q09mNDlCZG9BQVFCOUFBQUQzQVd4QUFvQUs3SUNDd3dSRWprQXNBQkZXTEFJTHh1eENCOCtXYkFBUlZpd0FDOGJzUUFQUGxteUFRQUlFUkk1TURFaEV5Y21KamMyQURNRkF3SVNXampUNUJRVEFTdmhBU3o5QWdnQkEvL0owd0VLQWZwUUFBRUFuZ0pDQWJFRFZRQUxBQml5QXd3TkVSSTVBTEFETDdJSkRRb3JXQ0hZRy9SWk1ERVRORFkzTmhZVkZBWUhCaWFlVFRzOVRrNDhPMDRDeGoxT0FnSlBPRHROQWdKS0FBSC8wLzQ5QVM4QUJBQU9BQ215QWc4UUVSSTVBTEFBTDdBSEw3SUlBZ29yV0NIWUcvUlpzZzBJQUJFU09iSUJBQTBSRWprd01UY0hGaFlIQmdZSE56WTNOaWNuTjhVVFBqOEJBcktuQW9rUUNWSTRMUVE3RGxVL2JYY0dqUVphUEEwR2lRQUJBT0VDb0FLQkJiTUFCZ0E1c2dFSENCRVNPUUN3QUVWWXNBVXZHN0VGSHo1WnNBQkZXTEFBTHh1eEFCTStXYklFQlFBUkVqbXdCQkN5QXdJS0sxZ2gyQnYwV1RBeEFTTVRCemNsTXdIL3RXUE1Hd0Z1RndLZ0FqWXZtWE1BQWdDK0FxMERmUVhJQUE0QUhBQkFzaEVkSGhFU09iQVJFTEFPMEFDd0FFVllzQUF2RzdFQUh6NVpzZ2NkQUJFU09iQUhMN0lTQWdvcldDSFlHL1Jac0FBUXNoa0NDaXRZSWRnYjlGa3dNUUVXRmdjSEJnWW5KaVkzTno0Q0F3WVdGeFkyTnpjMkppY21CZ2NDU3BDakN3WVAwcG1OcHdzR0NtZW1jUWhGUms5c0RBZ0lSVVpRYkFzRnhRVEhtVUtremdRRXhKdENicWxiL2tsaGJBSUNkV2RHWkdrQ0FuWmtBUC8vQUFJQWlnTjFBNmtBSmdPQkNRQUFCd09CQVhNQUFQLy9BTGtBQUFVcUJhc0FKd1BQQUV3Q21BQW5BNE1CRkFBSUFRY0R6QUt3QUFBQUVBQ3dBRVZZc0FVdkc3RUZIejVaTURILy93Q3hBQUFGZ0FXdUFDY0Rnd0RxQUFnQUp3UFBBRVFDbXdFSEE4NERBZ0FBQUJBQXNBQkZXTEFKTHh1eENSOCtXVEF4Ly84QWxnQUFCWjhGdndBbkE0TUJuUUFJQUNjRHpBTWxBQUFCQndQTkFLSUNtd0FRQUxBQVJWaXdJQzhic1NBZlBsa3dNUUFDLzlMK2VnTWpCRkVBR0FBa0FHR3lJU1VtRVJJNXNDRVFzQUxRQUxBQVJWaXdJaThic1NJYlBsbXdBRVZZc0JBdkc3RVFGejVac0NJUXNod05DaXRZSWRnYjlGbXdBTkN3QUMreUJCQUFFUkk1c0JBUXNna0JDaXRZSWRnYjlGbXlEQkFBRVJJNXNoVUFFQkVTT1RBeEFRWUdCd2NHQndZV0Z4WTJOek1HQkNjbUpqYzJOemMyTndFVUJnY0dKalUwTmpjMkZnSnJDMWRmVW5nT0MwcE9VM01SN1JIKy9MeTN5UTBQdzIxZkZBRXNTam83VEVvN09rd0NsblNyVjBwdGIxSmdBZ0psVjdQVEJBVE1xYk9yWGxhTUFUczdTd0lDU2pnNVRBSUNTZ0QvLy8ra0FBQUVyZ2MyQWlZQUpRQUFBUWNBUkFGYkFUWUFFd0N3QUVWWXNBUXZHN0VFSHo1WnNBemNNREVBLy8vL3BBQUFCTWdITmdJbUFDVUFBQUVIQUhjQjlnRTJBQk1Bc0FCRldMQUZMeHV4QlI4K1diQU4zREF4QVAvLy82UUFBQVN1QnpjQ0pnQWxBQUFCQndGbkFQSUJOZ0FUQUxBQVJWaXdCQzhic1FRZlBsbXdEOXd3TVFELy8vK2tBQUFFeVFjckFpWUFKUUFBQVFjQmJnRUFBVGNBQ1FDd0JDK3dGZHd3TVFELy8vK2tBQUFFcmdjREFpWUFKUUFBQVFjQWF3RW9BVFlBREFDd0JDK3dITnl3QzlBd01mLy8vNlFBQUFTdUI1VUNKZ0FsQUFBQkJ3RnNBWXdCYWdBTUFMQUVMN0FVM0xBWDBEQXhBQUwvaHdBQUIzZ0ZzQUFQQUJJQWR3Q3dBRVZZc0FZdkc3RUdIejVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3QkM4YnNRUVBQbG15RVFZQUVSSTVzQkV2c2dJQkNpdFlJZGdiOUZtd0JoQ3lDQUVLSzFnaDJCdjBXYklMQmdBUkVqbXdDeSt5REFFS0sxZ2gyQnYwV2JBQUVMSU9BUW9yV0NIWUcvUlpzaElHQUJFU09UQXhJU0VUSVFNaEFTRUhJUU1oQnlFRElRRWhFd2EzL0prcy9pSHUvdGdFSmdQTEkvMk9Od0lWSS8zMFBBS0UrMWdCWmxVQlZQNnNCYkRGL21qRi9qWUJad0o2QVAvL0FHWCtPQVVOQmNjQ0pnQW5BQUFBQndCN0Fici8rLy8vQUNjQUFBUzZCejBDSmdBcEFBQUJCd0JFQVNNQlBRQVRBTEFBUlZpd0JpOGJzUVlmUGxtd0Rkd3dNUUQvL3dBbkFBQUV1Z2M5QWlZQUtRQUFBUWNBZHdHK0FUMEFFd0N3QUVWWXNBWXZHN0VHSHo1WnNBN2NNREVBLy84QUp3QUFCTG9IUGdJbUFDa0FBQUVIQVdjQXVnRTlBQk1Bc0FCRldMQUdMeHV4Qmg4K1diQVIzREF4QVAvL0FDY0FBQVM2QndvQ0pnQXBBQUFCQndCckFQQUJQUUFNQUxBR0w3QWQzTEFNMERBeC8vOEFOUUFBQWpJSFBRSW1BQzBBQUFFSEFFVC8zQUU5QUJNQXNBQkZXTEFDTHh1eEFoOCtXYkFGM0RBeEFQLy9BRFVBQUFOSUJ6MENKZ0F0QUFBQkJ3QjNBSFlCUFFBVEFMQUFSVml3QXk4YnNRTWZQbG13QnR3d01RRC8vd0ExQUFBREVnYytBaVlBTFFBQUFRY0JaLzl6QVQwQUV3Q3dBRVZZc0FJdkc3RUNIejVac0FqY01ERUEvLzhBTlFBQUF5d0hDZ0ltQUMwQUFBRUhBR3YvcVFFOUFBd0FzQUl2c0JYY3NBVFFNREVBQXYvL0FBQUUvZ1d3QUE4QUhnQnBzaDRmSUJFU09iQWVFTEFPMEFDd0FFVllzQVV2RzdFRkh6NVpzQUJGV0xBQUx4dXhBQTgrV2JJREFBVVJFamw4c0FNdkdMSUNCd29yV0NIWUcvUlpzQkhRc0FBUXNoTUJDaXRZSWRnYjlGbXdCUkN5SEFFS0sxZ2gyQnYwV2JBREVMQWQwTEFlMERBeE14TWpOek1UQlRJRUVnY0hCZ0lFSXhNakF4Y3lKRGMySnlZbUp5Y0RNMFZ4dHg2MmJnR0t0Z0VIZGhjTEhzMyt2TUtmM1U2U3hnRUZKUm9IQ1plR3VVdmVBb3lxQW5vQnRmN0J3RS9KL3Ntc0FveitQZ0g3M1poeGthUUVBZjVTQVAvL0FDY0FBQVdHQnlzQ0pnQXlBQUFCQndGdUFTZ0JOd0FKQUxBRkw3QVUzREF4QVAvL0FHdi81d1VoQnpZQ0pnQXpBQUFCQndCRUFYSUJOZ0FUQUxBQVJWaXdDaThic1FvZlBsbXdKTnd3TVFELy93QnIvK2NGSVFjMkFpWUFNd0FBQVFjQWR3SU5BVFlBQ1FDd0NpK3dKZHd3TVFELy93QnIvK2NGSVFjM0FpWUFNd0FBQVFjQlp3RUpBVFlBQ1FDd0NpK3dKTnd3TVFELy93QnIvK2NGSVFjckFpWUFNd0FBQVFjQmJnRVhBVGNBQ1FDd0NpK3dMZHd3TVFELy93QnIvK2NGSVFjREFpWUFNd0FBQVFjQWF3RS9BVFlBREFDd0NpK3dOTnl3STlBd01RQUJBQ01BMWdRVUJJWUFDd0E0QUxBREw3SUpEQU1SRWptd0NTK3lDZ2tERVJJNXNnUURDUkVTT2JJQkNnUVJFam13QXhDd0JkQ3lCd1FLRVJJNXNBa1FzQXZRTURFVEFRTTNFd0VYQVJNSEF3RWpBV3Y3bnZvQmFuLytsZnVlKy82WEFYY0JRUUZEaS82L0FVR2gvci8rdllzQlFQN0FBQUFEQUJYL29RV1lCZTBBRndBaEFDc0FWYkllTEMwUkVqbXdIaEN3QzlDd0hoQ3dKOUFBc0FCRldMQU1MeHV4REI4K1diQUFSVml3QUM4YnNRQVBQbG15SndFS0sxZ2gyQnYwV2JBbDBMQWEwTEFNRUxJZEFRb3JXQ0hZRy9SWnNCdlFzQ1RRTURFRkppY0hKemNtTnpjU0VpUVhGaGMzTXdjV0Z4WUNBZ1FCQmhjQkppY21BZ2NHQVRZbkFSWVhGaEkzTndKWG5IdDJ0Y0pzQWdNVHdRRTF2cjZBY0xQRU9BNFJTc24rNVA1aEF4UUNmVDZCcHVJcEdnTFFCUWI5a3o5Z3NPTWtFUlVFU1pjQjhMRGlUd0VNQVg3S0FnUmpqL1I1Z0tyK1pmN0ltd0lpVlZNRFAwNEZCZjhBNlpVQkVFWkgvTll5QWdVQkYvcDVBUC8vQUZ2LzVnVXZCellDSmdBNUFBQUJCd0JFQVVvQk5nQVRBTEFBUlZpd0NpOGJzUW9mUGxtd0ZOd3dNUUQvL3dCYi8rWUZMd2MyQWlZQU9RQUFBUWNBZHdIbEFUWUFFd0N3QUVWWXNCSXZHN0VTSHo1WnNCWGNNREVBLy84QVcvL21CUzhITndJbUFEa0FBQUVIQVdjQTRRRTJBQk1Bc0FCRldMQUtMeHV4Q2g4K1diQVgzREF4QVAvL0FGdi81Z1V2QndNQ0pnQTVBQUFCQndCckFSY0JOZ0FXQUxBQVJWaXdDaThic1FvZlBsbXdKTnl3R2RBd01mLy9BS0VBQUFWTkJ6WUNKZ0E5QUFBQkJ3QjNBYjBCTmdBVEFMQUFSVml3QVM4YnNRRWZQbG13Qzl3d01RQUFBZ0FuQUFBRWdnV3dBQXdBRlFCWHNnOFdGeEVTT2JBUEVMQUkwQUN3QUVWWXNBQXZHN0VBSHo1WnNBQkZXTEFLTHh1eENnOCtXYklDQUFvUkVqbXdBaSt5RHdBS0VSSTVzQTh2c2dnQkNpdFlJZGdiOUZtd0FoQ3lGUUVLSzFnaDJCdjBXVEF4QVFNWEZoWUhCZ1FqSndNakV4TURGelkyTnpZbUp3SVJNY3ZlK1E4US9zM3IvRFh0L1p0VjRZQ3NEdzV3YWdXdy91Z0JBZXJDeS9RQi90UUZzUDRsL2hvQ0FvbHhhM3dFQUFBQkFCdi81d1JNQmhvQUxRQllzaUV1THhFU09RQ3dBRVZZc0FVdkc3RUZJVDVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3RlM4YnNSVVBQbG15RGdVVkVSSTVzaG9CQ2l0WUlkZ2I5Rm15SUJVRkVSSTVzQVVRc2lvQkNpdFlJZGdiOUZrd01TRWpFellrRnhZV0J3NERCd1llQWdjR0JpY21KemNXTXpJMk56WW1KeVkzUGdNM05pWW5KZ1lIQVFqdHZSd0JBTWludmcwRUpHQWNCd2d1aURVQ0NmaTlxM0ZFWjJ4WWRnc0lNa1orQ1FReVBEUUhDVVZHV25VVUJGSFM5d1FFdlp3eFY1cENKakZtbVc0NHJjVUVBa0hCUWxsSk5HWkxobTg1WFZsY04weGNCQU9EaC8vL0FDTC82QVBjQmdBQ0pnQkZBQUFCQndCRUFMTUFBQUFUQUxBQVJWaXdHQzhic1JnYlBsbXdMZHd3TVFELy93QWkvK2dFSUFZQUFpWUFSUUFBQVFjQWR3Rk9BQUFBRXdDd0FFVllzQmd2RzdFWUd6NVpzQzdjTURFQS8vOEFJdi9vQStrR0FRSW1BRVVBQUFFR0FXZEtBQUFUQUxBQVJWaXdHQzhic1JnYlBsbXdNTnd3TVFELy93QWkvK2dFSVFYMUFpWUFSUUFBQVFZQmJsZ0JBQk1Bc0FCRldMQVlMeHV4R0JzK1diQXYzREF4QVAvL0FDTC82QVFEQmMwQ0pnQkZBQUFCQndCckFJQUFBQUFXQUxBQVJWaXdHQzhic1JnYlBsbXdNdHl3UGRBd01mLy9BQ0wvNkFQY0JsOENKZ0JGQUFBQkJ3RnNBT1FBTkFBV0FMQUFSVml3R0M4YnNSZ2JQbG13TmR5d085QXdNUUFEQUEvLzZBWndCRklBS3dBMUFENEErTElDUDBBUkVqbXdBaEN3TDlDd0FoQ3dPZEFBc0FCRldMQWRMeHV4SFJzK1diQUFSVml3R1M4YnNSa2JQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFGTHh1eEJROCtXYklESFFBUkVqbXlDd1VaRVJJNXNBc3ZzQmtRc2hFQkNpdFlJZGdiOUZteUZBc1JFUkk1UUFrTUZCd1VMQlE4RkFSZHNoc2RBQkVTT2JJNkhRQVJFam13T2krMEh6b3ZPZ0p4c284NkFWMjBYenB2T2dKeHRMODZ6em9DWGJUdk92ODZBbkd5SVFjS0sxZ2gyQnYwV2JBQUVMSWxBUW9yV0NIWUcvUlpzaWdkQUJFU09iQUZFTElzQndvcldDSFlHL1Jac0FzUXNqQUhDaXRZSWRnYjlGbXdIUkN5TmdFS0sxZ2gyQnYwV1RBeEJTSW1Kd1luSmlZM05pUXpGemMySnlZbkpnWUhKejRDRnhZWE5oY1dFZ2NISVFZV0Z4WTJOeGNHQmlVeU56Y25CZ1lIQmhZQkpnWUhJVGMySnlZRWFuTzhOYXo5bXJRSUNnRUY1cjhOQmdRUmQxZDNEZTBIZTl0NzExcWJ1Y0xIR2hYOVl3NTNjMVdYU2pwQjAveTJjb29vcVd1UkRBbE9BNDFna2k0QnRnWUhCQTRUVTB5a0JBS3ZrNkd5QWtvbUluVURBbFJKRTJLWlV3SUZnSWdFQnY3eTFvMkluUUlDTlNlb09UNjRadElCQTE1UFAwZ0M1d09IaHlFdEtvMEEvLzhBT1A0NEErNEVVZ0ltQUVjQUFBQUhBSHNCUFAvNy8vOEFPLy9xQkFJR0FBSW1BRWtBQUFFSEFFUUFuQUFBQUJNQXNBQkZXTEFKTHh1eENScytXYkFoM0RBeEFQLy9BRHYvNmdRSkJnQUNKZ0JKQUFBQkJ3QjNBVGNBQUFBVEFMQUFSVml3Q1M4YnNRa2JQbG13SXR3d01RRC8vd0E3LytvRUFnWUJBaVlBU1FBQUFRWUJaek1BQUJNQXNBQkZXTEFKTHh1eENScytXYkFrM0RBeEFQLy9BRHYvNmdRQ0JjMENKZ0JKQUFBQkJnQnJhUUFBRmdDd0FFVllzQWt2RzdFSkd6NVpzQ2Jjc0RIUU1ESC8vd0FpQUFBQjV3WDVBaVlBOUFBQUFRWUFSSkg1QUJNQXNBQkZXTEFDTHh1eEFocytXYkFGM0RBeEFQLy9BQ0lBQUFMOUJma0NKZ0QwQUFBQkJnQjNLL2tBRXdDd0FFVllzQU12RzdFREd6NVpzQWJjTURFQS8vOEFJZ0FBQXNjRitnSW1BUFFBQUFFSEFXZi9LUC81QUJNQXNBQkZXTEFDTHh1eEFocytXYkFJM0RBeEFQLy9BQ0lBQUFMaEJjWUNKZ0QwQUFBQkJ3QnIvMTcvK1FBV0FMQUFSVml3QWk4YnNRSWJQbG13Q3R5d0ZkQXdNUUFDQUViLzZBUktCaXdBSGdBcUFGNnlFQ3NzRVJJNXNCQVFzQ2pRQUxBQVJWaXdHaThic1JvaFBsbXdBRVZZc0Fndkc3RUlEejVac2hBYUNCRVNPYkFRTDdBYUVMSVpBUW9yV0NIWUcvUlpzQkFRc2lFSENpdFlJZGdiOUZtd0NCQ3lKd0VLSzFnaDJCdjBXVEF4QVJZU0J3Y0dBZ1luTGdJM1BnSVhGaGNtSndjbk55WW5OeFlYTnhjQkppY21CZ2NHRmhjV05qY0RwVnRCRnd3WHFPeUpmOFZnREEySTRJV0thd1JnNEQrNFc2VmIzcFRKUHY3NE5wTi9xeEFPYVdKMm94a0ZGSnYrdkxOV3AvN3NpUU1FZ055QmtQQ0dCQVJabVlxSWVXeEpNTUkyZzNwNS9UbGhCUUsyazNpbEF3WFFyUUQvL3dBTkFBQUVKd1gxQWlZQVVnQUFBUVlCYmw0QkFCTUFzQUJGV0xBREx4dXhBeHMrV2JBVzNEQXhBUC8vQURuLzZBUW5CZ0FDSmdCVEFBQUJCd0JFQUxBQUFBQVRBTEFBUlZpd0JDOGJzUVFiUGxtd0l0d3dNUUQvL3dBNS8rZ0VKd1lBQWlZQVV3QUFBUWNBZHdGTEFBQUFFd0N3QUVWWXNBUXZHN0VFR3o1WnNDUGNNREVBLy84QU9mL29CQ2NHQVFJbUFGTUFBQUVHQVdkSEFBQVRBTEFBUlZpd0JDOGJzUVFiUGxtd0pkd3dNUUQvL3dBNS8rZ0VKd1gxQWlZQVV3QUFBUVlCYmxVQkFCTUFzQUJGV0xBRUx4dXhCQnMrV2JBazNEQXhBUC8vQURuLzZBUW5CYzBDSmdCVEFBQUJCZ0JyZlFBQURBQ3dCQyt3TXR5d0lkQXdNUUFEQUQwQWtBUTZCTThBQXdBUEFCc0FVcklZSEIwUkVqbXdHQkN3QU5Dd0dCQ3dCdEFBc0FNdnNnQUJDaXRZSWRnYjlGbXdBeEN4RFFvcldOZ2IzRm15QncwS0sxZ2gyQnYwV2JBQUVMRVRDaXRZMkJ2Y1diSVpEUW9yV0NIWUcvUlpNREVCSVRjaEFUUTJOellXRlJRR0J3WW1BelEyTnpZV0ZSUUdCd1ltQkJUOEtTVUQyUDNDVGpvOVRrcytPMCtPVEQwNVVVdzlPVkVDUnRRQktUMUxBZ0pNT0RsT0FnSkkvUW81VUFJQ1NUdzdTd0lDU0FBQUF3QXEvM2NFTXdTN0FCc0FKQUF1QUZXeUt5OHdFUkk1c0NzUXNCSFFzQ3NRc0NMUUFMQUFSVml3QlM4YnNRVWJQbG13QUVWWXNCSXZHN0VTRHo1WnNpb0JDaXRZSWRnYjlGbXdLTkN3SHRDd0JSQ3lJUUVLSzFnaDJCdjBXYkFmMExBbjBEQXhFelkyTnpZWEZoYzNGd2NXRnhZSEJnSUdKeVluQnljM0ppY21OeGNHRndFbUp5WUdCaVUySndFV0Z4WTJOelpFRDE1T25OOWVYMkdia25BSEFnZ1VtL1NVVmx0bG01SjJDQU1INFFFVUFaUW1OV1NYVUFJUUFSTCtjQ2dxZWFzZURBSWdkdE5PblFRQ0k1QUIwb1RET2xPZi92NkxBZ0lmbEFIUmdzYzlQSHcvUFFKbkV3SUJnZkdEUER6OW9RNENBNzZ2VkFELy93QksvK2dFTVFZQUFpWUFXUUFBQVFjQVJBQzFBQUFBRXdDd0FFVllzQWd2RzdFSUd6NVpzQlhjTURFQS8vOEFTdi9vQkRFR0FBSW1BRmtBQUFFSEFIY0JVQUFBQUFrQXNBY3ZzQmJjTURFQS8vOEFTdi9vQkRFR0FRSW1BRmtBQUFFR0FXZE1BQUFKQUxBSEw3QVYzREF4QVAvL0FFci82QVF4QmMwQ0pnQlpBQUFCQndCckFJSUFBQUFNQUxBSEw3QWwzTEFVMERBeC8vLy90ZjVGQkJJR0FBSW1BRjBBQUFFSEFIY0JHZ0FBQUFrQXNBRXZzQkxjTURFQUFBTC96ZjVnQkJRR0FBQVJBQjBBVnJJRUhoOFJFam13QkJDd0hOQUFzQWt2c0FCRldMQU5MeHV4RFJzK1diQUFSVml3Qnk4YnNRY1JQbG13QUVWWXNBUXZHN0VFRHo1WnNBMFFzaFlCQ2l0WUlkZ2I5Rm13QkJDeUd3RUtLMWdoMkJ2MFdUQXhBUVlDQmljbUp3TWpBVE1ETmhjV0ZoY1dCemMySmljbUJ3TVdGeFkyQkF3VWlNMTlxR0poN2dGVDdXcDZvNTJ4QlFIekJRTmFYWVZpVlMrSmRxRUNHS1QrOTRRREJIWDkvUWVnL2RaOEJBVGV3VHhCU24rTkJBUi8vaDE1QkFPKy8vLy90ZjVGQkJJRnpRSW1BRjBBQUFFR0FHdE1BQUFNQUxBQkw3QWgzTEFRMERBeC8vLy9wQUFBQk1VRzZnSW1BQ1VBQUFFSEFISUErZ0U2QUJNQXNBQkZXTEFFTHh1eEJCOCtXYkFNM0RBeEFQLy9BQ0wvNkFRZEJiUUNKZ0JGQUFBQkJnQnlVZ1FBQ1FDd0dDK3dMTnd3TVFELy8vK2tBQUFFcmdjZEFpWUFKUUFBQVFjQmFnRXdBVFlBQ1FDd0JDK3dEdHd3TVFELy93QWkvK2dEOUFYbkFpWUFSUUFBQVFjQmFnQ0lBQUFBQ1FDd0dDK3dMOXd3TVFBQUF2K2svbEVFcmdXd0FCY0FHZ0Izc2hVYkhCRVNPYkFWRUxBYTBBQ3dBRVZZc0JVdkc3RVZIejVac0FCRldMQUxMeHV4Q3hFK1diQUFSVml3RXk4YnNSTVBQbG13QUVWWXNCY3ZHN0VYRHo1WnNBc1FzZ1lEQ2l0WUlkZ2I5Rm13RnhDd0VOQ3dFQyt5R1JNVkVSSTVzQmt2c2hFQkNpdFlJZGdiOUZteUdoVVRFUkk1TURFaEZ3Y0dCd1lYRmpjWEJpY2lKamMyTndNaEF5RUJNd0VCSVFNRWNRVXZnd2NGT0JzOURFVlZWMmtDQTdRMi9kK3UvdllERXQ0Qkd2MFdBWmhqQXg5V1Zqa0RBUmVRS3dKdFZKVnBBVUgrclFXdytsQUNId0phQUFBQ0FDTCtVUVBjQkZBQU1BQTdBSnV5R2p3OUVSSTVzQm9Rc0RiUUFMQUFSVml3S0M4YnNTZ2JQbG13QUVWWXNBc3ZHN0VMRVQ1WnNBQkZXTEFBTHh1eEFBOCtXYkFBUlZpd0ZDOGJzUlFQUGxtd0FCQ3dFTkN3RUMreUVpZ0FFUkk1c2hvVUtCRVNPYkFhTDdBb0VMSWdCd29yV0NIWUcvUlpzaVFhSUJFU09VQUpEQ1FjSkN3a1BDUUVYYkFVRUxJeEFRb3JXQ0hZRy9SWnNCb1FzallIQ2l0WUlkZ2I5Rmt3TVNFWEJ3WUhCaGNXTnhjR0p5SW1OelkzSnpVR0p5WW1OellrTXhjM05pY21KeVlHQndjK0FoY1dGZ2NEQndZWEJ5VVdOamMzSnlJR0J3WVdBMG9GTDRNSEJUZ2JQUXhGVlZkcEFnTzFCSWFiamJrR0NBRVk3Sm9PQmdZVWUweHpEZTBIZ05SMnNjWVJVd2dERWdIK0lVdUFMU1Z4aHFBTENFc0RIMVpXT1FNQkY1QXJBbTFVbG1rcEtYMEVBckdJcThRQ1NpY2liQU1DVVVRQ1pKZFVBZ1ROby80RldqczRFcTRDU1RyTkFXVllRMDBBLy84QVpmL29CUTBIU3dJbUFDY0FBQUVIQUhjQitBRkxBQWtBc0F3dnNDSGNNREVBLy84QU9QL3BBL01HQUFJbUFFY0FBQUVIQUhjQklRQUFBQWtBc0JFdnNCL2NNREVBLy84QVpmL29CUTBIVEFJbUFDY0FBQUVIQVdjQTlBRkxBQWtBc0F3dnNDRGNNREVBLy84QU9QL3BBKzRHQVFJbUFFY0FBQUVHQVdjZEFBQUpBTEFSTDdBZTNEQXhBUC8vQUdYLzZBVU5CeXdDSmdBbkFBQUJCd0ZyQWRVQlZBQUpBTEFNTDdBbjNEQXhBUC8vQURqLzZRUHVCZUVDSmdCSEFBQUJCd0ZyQVA0QUNRQUpBTEFSTDdBbDNEQXhBUC8vQUdYLzZBVU5CMUFDSmdBbkFBQUJCd0ZvQVFzQlN3QUpBTEFNTDdBajNEQXhBUC8vQURqLzZRUHdCZ1VDSmdCSEFBQUJCZ0ZvTkFBQUNRQ3dFUyt3SWR3d01RRC8vd0FuQUFBRTRBZENBaVlBS0FBQUFRY0JhQUNiQVQwQUV3Q3dBRVZZc0FFdkc3RUJIejVac0J6Y01ERUEvLzhBTy8vbkJkVUdBZ0FtQUVnQUFBQUhBNnNFdndUOEFBTC8vd0FBQlA0RnNBQVBBQjRBYWJJZUh5QVJFam13SGhDd0R0QUFzQUJGV0xBRkx4dXhCUjgrV2JBQVJWaXdBQzhic1FBUFBsbXlBd0FGRVJJNWZMQURMeGl5QWdjS0sxZ2gyQnYwV2JBUjBMQUFFTElUQVFvcldDSFlHL1Jac0FVUXNod0JDaXRZSWRnYjlGbXdBeEN3SGRDd0h0QXdNVE1USXpjekV3VXlCQklIQndZQ0JDTVRJd01YTWlRM05pY21KaWNuQXpORmNiY2V0bTRCaXJZQkIzWVhDeDdOL3J6Q245MU9rc1lCQlNVYUJ3bVhocmxMM2dLTXFnSjZBYlgrd2NCUHlmN0pyQUtNL2o0Qis5MlljWkdrQkFIK1VnQUFBZ0E3LytjRkdRWUFBQm9BSlFDTXNnVW1KeEVTT2JBRkVMQWowQUN3Rnkrd0FFVllzQkF2RzdFUUd6NVpzQUJGV0xBREx4dXhBdzgrV2JBQVJWaXdCaThic1FZUFBsbXlMeGNCWGJJUEZ3RmRzaFlYQXhFU09iQVdMN0lUQndvcldDSFlHL1Jac0FIUXNnUUdFQkVTT2JJU0VBWVJFam13RmhDd0dkQ3dCaEN5SGdFS0sxZ2gyQnYwV2JBUUVMSWpBUW9yV0NIWUcvUlpNREVCSXdNak53WW5KaVluSmpjM05oSTJGeFlYTnlNM016Y3pCek1CQmhZWEZqY1RKaWNtQmdUN3FkWFVFSDZxbDdVSEF3WURGSXpPZnFWZEx2QWU4UnZ1R2FyOEVRZGJXb2xrVVMrSGlLWUV5ZnMzY0lrRUF1VytQanNWcHdFS2d3TUVkL1dxalkzOFRueVNBZ1NKQWRGOUJBVDRBUC8vQUNjQUFBUzZCdkVDSmdBcEFBQUJCd0J5QU1JQlFRQVRBTEFBUlZpd0JpOGJzUVlmUGxtd0Rkd3dNUUQvL3dBNy8rb0VCZ1cwQWlZQVNRQUFBUVlBY2pzRUFBa0FzQWt2c0NEY01ERUEvLzhBSndBQUJMb0hKQUltQUNrQUFBRUhBV29BK0FFOUFBa0FzQVl2c0EvY01ERUEvLzhBTy8vcUJBSUY1d0ltQUVrQUFBRUdBV3B4QUFBSkFMQUpMN0FqM0RBeEFQLy9BQ2NBQUFTNkJ4NENKZ0FwQUFBQkJ3RnJBWnNCUmdBSkFMQUdMN0FVM0RBeEFQLy9BRHYvNmdRQ0JlRUNKZ0JKQUFBQkJ3RnJBUlFBQ1FBSkFMQUpMN0FvM0RBeEFBQUJBQ2YrVVFTNkJiQUFIQUNBc2hFZEhoRVNPUUN3QUVWWXNCY3ZHN0VYSHo1WnNBQkZXTEFRTHh1eEVCRStXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQlV2RzdFVkR6NVpzaHNWRnhFU09iQWJMN0lCQVFvcldDSFlHL1Jac0JVUXNnSUJDaXRZSWRnYjlGbXdBOUN3RUJDeUN3TUtLMWdoMkJ2MFdiQVhFTElaQVFvcldDSFlHL1JaTURFQklRTWhCeU1YQndZSEJoY1dOeGNHSnlJbU56WTNJUk1oQnlFRElRUFQvYnhPQXFZamNRVXZnd2NGT0JzOURFVlZWMmtDQTViOXNQd0RseVQ5WVVZQ1JRS0sva0RLQXg5V1Zqa0RBUmVRS3dKdFZJeGdCYkRNL200QUFnQTgvbXdFQ0FSUkFDTUFMQUNoc2dZdExoRVNPYkFHRUxBazBBQ3dBRVZZc0Jrdkc3RVpHejVac0FCRldMQU1MeHV4REJFK1diQUFSVml3RVM4YnNSRVBQbG13QTlDeUppMFpFUkk1c0NZdnNvOG1BVjIwSHlZdkpnSnh0SjhtcnlZQ2NiUmZKbThtQW5HMHZ5YlBKZ0pkdE84bS95WUNjYlF2Smo4bUFuS3lIUWNLSzFnaDJCdjBXYkFSRUxJaEFRb3JXQ0hZRy9SWnNpTVJHUkVTT2JBWkVMSWtBUW9yV0NIWUcvUlpNREVsQmdjSEJnY0dGeFkzRndZbklpWTNOamNtQWpjM05oSTJGeFlTQndjaEJoWVhGamNESmdNRk56WW5KaVlEcGxXTk1XMElCVGdiUFF4RlZWZHBBZ0pndDh3UkF4S2Q2b25MeXhrTy9WY0plbXVaZ2NtOFhnSEJCQWNHQzFxMmVESWhURkk1QXdFWGtDc0NiVlJ0VlJrQkhNNHBwUUVIaUFNRS90cnNhSUdlQWdXS0FsZ0cvdkFCRlM0c1IxTC8vd0FuQUFBRXVnZENBaVlBS1FBQUFRY0JhQURSQVQwQUV3Q3dBRVZZc0FZdkc3RUdIejVac0JIY01ERUEvLzhBTy8vcUJBWUdCUUltQUVrQUFBRUdBV2hLQUFBSkFMQUpMN0FrM0RBeEFQLy9BR3YvNmdVV0Iwd0NKZ0FyQUFBQkJ3Rm5BUEVCU3dBSkFMQU5MN0FqM0RBeEFQLy8vL2YrVHdSQ0JnRUNKZ0JMQUFBQkJnRm5QZ0FBQ1FDd0JDK3dMTnd3TVFELy93QnIvK29GRmdjeUFpWUFLd0FBQVFjQmFnRXZBVXNBQ1FDd0RTK3dKZHd3TVFELy8vLzMvazhFUWdYbkFpWUFTd0FBQVFZQmFud0FBQWtBc0FRdnNDN2NNREVBLy84QWEvL3FCUllITEFJbUFDc0FBQUVIQVdzQjBnRlVBQWtBc0EwdnNDcmNNREVBLy8vLzkvNVBCRUlGNFFJbUFFc0FBQUVIQVdzQkh3QUpBQWtBc0FRdnNEUGNNREVBLy84QWEvMzVCUllGeUFJbUFDc0FBQUFIQTZzQmJ2NlMvLy8vOS81UEJFSUdxd0ltQUVzQUFBRUhBKzBCTkFCK0FBa0FzQVF2c0MvY01ERUEvLzhBSndBQUJZY0hQZ0ltQUN3QUFBRUhBV2NCRWdFOUFCTUFzQUJGV0xBSEx4dXhCeDgrV2JBUTNEQXhBUC8vQUEwQUFBUDVCMTRDSmdCTUFBQUJCd0ZuQUZJQlhRQUpBTEFSTDdBVTNEQXhBQUFDQUM0QUFBWGJCYkFBRXdBWEFHc0FzQUJGV0xBUEx4dXhEeDgrV2JBQVJWaXdDQzhic1FnUFBsbXlGQWdQRVJJNXNCUXZzaEFVRHhFU09iQVFMN0FBMExBUUVMSVhCd29yV0NIWUcvUlpzQVBRc0FnUXNBWFFzQlFRc2djQkNpdFlJZGdiOUZtd0Z4Q3dDdEN3RUJDd0RkQ3dEeEN3RXRBd01RRXpCeU1ESXhNaEF5TVRJemN6RXpNRElSTXpBU0UzSVFWZmZCMTdzL1p3L1lwdzlyTjRISGd0OXk0Q2RpMzIvQ3NDZGlIOWlnU3VvdnYwQW9mOWVRUU1vZ0VDL3Y0QkF2Mml1Z0FCQUNzQUFBUVhCZ0FBR2dCMHNnTWJIQkVTT1FDd0dDK3dBRVZZc0FRdkc3RUVHejVac0FCRldMQVJMeHV4RVE4K1diQUFSVml3Q1M4YnNRa1BQbG15THhnQlhiSVBHQUZkc2hvUkdCRVNPYkFhTDdJQkJ3b3JXQ0hZRy9SWnNnSVJCQkVTT2JBRUVMSU9BUW9yV0NIWUcvUlpzQUVRc0JQUXNCb1FzQmJRTURFQkl3TTJGeFlXQndNakV6WW5KaWNtQndNakV5TTNNemN6QnpNQ3krUXloNnlhbFJOMDdYWUZBdzJEaEdpSDdkUy9IcjRaN2h6aUJNZisvSTRFQXRhOS9VZ0N1eXNsZWdNQ2hQejZCTWVxajQ4QS8vOEFOUUFBQTBvSE1nSW1BQzBBQUFFSEFXNy9nUUUrQUFrQXNBSXZzQTdjTURFQS8vOEFGQUFBQXY4RjdnSW1BUFFBQUFFSEFXNy9Odi82QUFrQXNBSXZzQTdjTURFQS8vOEFOUUFBQTBZRzhRSW1BQzBBQUFFSEFITC9ld0ZCQUJNQXNBQkZXTEFDTHh1eEFoOCtXYkFGM0RBeEFQLy9BQjhBQUFMN0JhMENKZ0QwQUFBQkJ3QnkvekQvL1FBVEFMQUFSVml3QWk4YnNRSWJQbG13QmR3d01RRC8vd0ExQUFBREhRY2tBaVlBTFFBQUFRY0Jhdit4QVQwQUNRQ3dBaSt3Qjl3d01RRC8vd0FpQUFBQzBnWGdBaVlBOUFBQUFRY0JhdjltLy9rQUNRQ3dBaSt3Qjl3d01RRC8vLytPL2xjQ0tBV3dBaVlBTFFBQUFBWUJiZVlHLy8vL2R2NVJBZ2tGMkFJbUFFMEFBQUFHQVczT0FQLy9BRFVBQUFKVUJ4NENKZ0F0QUFBQkJ3RnJBRk1CUmdBSkFMQUNMN0FNM0RBeEFBQUJBQ0lBQUFITEJEb0FBd0FkQUxBQVJWaXdBaThic1FJYlBsbXdBRVZZc0FBdkc3RUFEejVaTURFaEl4TXpBUS90dk8wRU92Ly9BRFgvNXdhY0JiQUFKZ0F0QUFBQUJ3QXVBanNBQVAvL0FCLytSZ1FEQmRnQUpnQk5BQUFBQndCT0FnVUFBUC8vQUFQLzV3VXhCemNDSmdBdUFBQUJCd0ZuQVpJQk5nQUpBTEFBTDdBUTNEQXhBUC8vL3cvK1NBTEhCZDhDSmdGa0FBQUJCd0ZuL3lqLzNnQVRBTEFBUlZpd0RDOGJzUXdiUGxtd0Vkd3dNUUQvL3dBbi9ma0ZjUVd3QWlZQUx3QUFBQWNEcXdGZi9wTC8vd0FSL2ZrRVNnWUFBaVlBVHdBQUFBY0Rxd0R1L3BJQUFRQWhBQUFFalFRNkFBd0FYd0N3QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFJTHh1eENCcytXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQXN2RzdFTER6NVpzZ1lDQkJFU09iQUdMN1FmQmk4R0FuR3lqd1lCWGJJQkFRb3JXQ0hZRy9SWnNnb0JCaEVTT1RBeEFTTURJeE16QXpNQklRRUJJUUhMYzB2c3ZPeExTQUdSQVRiK0J3RkYvdVVCclA1VUJEcitVQUd3L2VmOTN3RC8vd0FuQUFBRHd3YzJBaVlBTUFBQUFRY0Fkd0JxQVRZQUV3Q3dBRVZZc0FVdkc3RUZIejVac0FqY01ERUEvLzhBSHdBQUF6MEhrUUltQUZBQUFBRUhBSGNBYXdHUkFCTUFzQUJGV0xBREx4dXhBeUUrV2JBRzNEQXhBUC8vQUNmOStRUERCYkFDSmdBd0FBQUFCd09yQVNYK2t2Ly8vNkw5K1FJWEJnQUNKZ0JRQUFBQUJ3T3IvOVAra3YvL0FDY0FBQVBmQmJFQ0pnQXdBQUFCQndPckFza0Vxd0FRQUxBQVJWaXdDaThic1FvZlBsa3dNZi8vQUI4QUFBTjBCZ0lBSmdCUUFBQUJCd09yQWw0RS9BQUdBTEFJTHpBeC8vOEFKd0FBQThNRnNBSW1BREFBQUFBSEFXc0JYUDNVLy84QUh3QUFBdk1HQUFBbUFGQUFBQUFIQVdzQTh2MnZBQUVBSVFBQUE5SUZzQUFOQUZzQXNBQkZXTEFNTHh1eERCOCtXYkFBUlZpd0JpOGJzUVlQUGxteUFRd0dFUkk1c0FFdnNBRFFzQUVRc2dJSENpdFlJZGdiOUZtd0E5Q3dCaEN5QkFFS0sxZ2gyQnYwV2JBREVMQUkwTEFKMExBQUVMQUwwTEFLMERBeEFUY0hCd01oQnlFVEJ6YzNFek1CeGZBYzcxb0NnaVA4aDNDRkc0Vnk5d05zUnB0SC9mcktBb0ltbXljQ2tnQUFBUUFmQUFBQ1d3WUFBQXNBU2dDd0FFVllzQW92RzdFS0lUNVpzQUJGV0xBRUx4dXhCQTgrV2JJQkJBb1JFam13QVMrd0FOQ3dBUkN5QWdjS0sxZ2gyQnYwV2JBRDBMQUcwTEFIMExBQUVMQUowTEFJMERBeEFUY0hCd01qRXdjM054TXpBY0taSEppQTduS01ISXAvN1FOL05KdzEvUjRDaXkrY0x3TFpBUC8vQUNjQUFBV0dCellDSmdBeUFBQUJCd0IzQWg0Qk5nQVRBTEFBUlZpd0NDOGJzUWdmUGxtd0ROd3dNUUQvL3dBTkFBQUVKZ1lBQWlZQVVnQUFBUWNBZHdGVUFBQUFDUUN3QXkrd0Zkd3dNUUQvL3dBbi9ma0ZoZ1d3QWlZQU1nQUFBQWNEcXdHUS9wTC8vd0FOL2ZrRCtnUlNBaVlBVWdBQUFBY0Rxd0Q2L3BMLy93QW5BQUFGaGdjN0FpWUFNZ0FBQVFjQmFBRXhBVFlBRXdDd0FFVllzQVl2RzdFR0h6NVpzQS9jTURFQS8vOEFEUUFBQkNNR0JRSW1BRklBQUFFR0FXaG5BQUFKQUxBREw3QVgzREF4QVAvL0FBMEFBQVA2QmdNQ0pnQlNBQUFCQndPckFFQUUvUUFHQUxBWEx6QXhBQUVBSS81R0JYZ0ZzQUFUQUdleUJoUVZFUkk1QUxBQVJWaXdBQzhic1FBZlBsbXdBRVZZc0JBdkc3RVFIejVac0FCRldMQUVMeHV4QkJFK1diQUFSVml3REM4YnNRd1BQbG13QUVWWXNBNHZHN0VPRHo1WnNBUVFzZ2tCQ2l0WUlkZ2I5Rm15RFFBTUVSSTVzaElPQUJFU09UQXhBUUVHQmljaUp6Y1dNekkzTndFREl4TXpBUk1GZVA3L0dOZWxPMHdqTmltQklnZitTTGYyL2U0QnU3Y0ZzUG9ZdHN3Q0ZNWU94Q2dFSC92aEJiRDc0Z1FlQUFBQkFCSCtSZ1FHQkZJQUd3QmhzZ0ljSFJFU09RQ3dBRVZZc0FNdkc3RURHejVac0FCRldMQUFMeHV4QUJzK1diQUFSVml3Q2k4YnNRb1JQbG13QUVWWXNCa3ZHN0VaRHo1WnNnRURHUkVTT2JBS0VMSVBBUW9yV0NIWUcvUlpzQU1Rc2hZQkNpdFlJZGdiOUZrd01RRUhOaGNXRmdjREJnWW5KaWMzRmpNeU54TTJKeVluSmdjREl4TUJwUmVHdTZHV0ZuWVkwS05CUkNNNUo0RWZkZ1VDQjR1RFpZM3V2QVE3bUs4RUErYkUvU0MxeGdJQkU4VVB1d0xUTFNtTUJRUnEvTjhFT3YvL0FHdi81d1VoQnVvQ0pnQXpBQUFCQndCeUFSRUJPZ0FKQUxBS0w3QWozREF4QVAvL0FEbi82QVFuQmJRQ0pnQlRBQUFCQmdCeVR3UUFDUUN3QkMrd0lkd3dNUUQvL3dCci8rY0ZJUWNkQWlZQU13QUFBUWNCYWdGSEFUWUFDUUN3Q2krd0p0d3dNUUQvL3dBNS8rZ0VKd1huQWlZQVV3QUFBUWNCYWdDRkFBQUFDUUN3QkMrd0pOd3dNUUQvL3dCci8rY0Zkd2MxQWlZQU13QUFBUWNCYndHT0FUWUFEQUN3Q2krd0pkeXdKOUF3TWYvL0FEbi82QVMxQmY4Q0pnQlRBQUFCQndGdkFNd0FBQUFNQUxBRUw3QWozTEFsMERBeEFBSUFVUC91QjRvRnhRQVhBQ1VBa2JJYkppY1JFam13R3hDd0Z0QUFzQUJGV0xBTUx4dXhEQjgrV2JBQVJWaXdEaThic1E0ZlBsbXdBRVZZc0FNdkc3RUREejVac0FCRldMQUFMeHV4QUE4K1diQU9FTElRQVFvcldDSFlHL1Jac2hNQURoRVNPYkFUTDdJVUFRb3JXQ0hZRy9SWnNBQVFzaGNCQ2l0WUlkZ2I5Rm13QXhDeUdBRUtLMWdoMkJ2MFdiQU1FTElkQVFvcldDSFlHL1JaTURFaElRY0hKaVlDTnhNMkVpUXpGeGNoQnlFRElRY2hBeUVGRmpjVEppY21CZ2NEQmhjV0ZnYVUvTVhFVjU3bmFSUXlITFVCRTZWS3p3TlNKUDFoUmdKRkpQMjlUZ0ttKzVCUGU4WnpUS0RhSGk4SkJnaUJFUUVFblFFUW9RRTlxUUVOa2dJVHpQNXV5UDVBR1FNTUJEc09BZ0xad3Y3VFNFWjBpQUFBQXdCQy8rZ0czQVJTQUNBQUx3QTVBTGl5R2pvN0VSSTVzQm9Rc0NuUXNCb1FzRFBRQUxBQVJWaXdDUzhic1FrYlBsbXdBRVZZc0FRdkc3RUVHejVac0FCRldMQWNMeHV4SEE4K1diQUFSVml3Rnk4YnNSY1BQbG15QndrY0VSSTVzalFKSEJFU09iQTBMN0tQTkFGZHRCODBMelFDY2JJTkJ3b3JXQ0hZRy9SWnNCY1FzaEVCQ2l0WUlkZ2I5Rm15RXhjSkVSSTVzaG9KSEJFU09iQWNFTElsQVFvcldDSFlHL1Jac0FRUXNpd0JDaXRZSWRnYjlGbXdDUkN5TUFFS0sxZ2gyQnYwV1RBeEV6WVNOaGNXRmhjMkZ4WVNCd2NoQmhZWEZqY1hCZ1luSmlZbkJpY3VBamN6QnhjV0Z4WTJOemMxSmljbUJnY0JKZ1lISVRjMkp5WW1WQlNZN3BSeXR6R216c1BKR2hiOWNBMXJhSnFhUVVQTWUzYTFNYWJsaXNKWUVPd0ZBUTZzZTZRVkJ3aTBjcUFjQS90U2hUWUJwd1VIQlFoVEFpQ2hBUVNNQWdKZVViUUVCUDd6MTQrRm53TUZYNkErUVFJQ1hFNnhCQUtPK1paTEx0OEhBOGFsWVIzeUNBT3hwQUZUQVhxTUhDMHBRMDMvL3dBbkFBQUUyQWMyQWlZQU5nQUFBUWNBZHdHb0FUWUFDUUN3QkMrd0d0d3dNUUQvL3dBUUFBQURoZ1lBQWlZQVZnQUFBUWNBZHdDMEFBQUFDUUN3Q3krd0VOd3dNUUQvL3dBbi9ma0UyQVd3QWlZQU5nQUFBQWNEcXdFbS9wTC8vLytjL2ZrQzd3UlRBaVlBVmdBQUFBY0RxLy9OL3BMLy93QW5BQUFFMkFjN0FpWUFOZ0FBQVFjQmFBQzdBVFlBQ1FDd0JDK3dITnd3TVFELy93QVFBQUFEaEFZRkFpWUFWZ0FBQVFZQmFNZ0FBQWtBc0FzdnNCTGNNREVBLy84QUpQL3FCTHNITmdJbUFEY0FBQUVIQUhjQnhBRTJBQWtBc0FvdnNDemNNREVBLy84QUhQL3BCQU1HQUFJbUFGY0FBQUVIQUhjQk1RQUFBQWtBc0FndnNDZmNNREVBLy84QUpQL3FCTHNITndJbUFEY0FBQUVIQVdjQXdBRTJBQWtBc0FvdnNDdmNNREVBLy84QUhQL3BBOHdHQVFJbUFGY0FBQUVHQVdjdEFBQUpBTEFJTDdBbTNEQXhBUC8vQUNUK1BRUzdCY2NDSmdBM0FBQUFCd0I3QVpBQUFQLy9BQnorTkFQRUJGQUNKZ0JYQUFBQUJ3QjdBVUwvOS8vL0FDVC82Z1M3QnpzQ0pnQTNBQUFCQndGb0FOY0JOZ0FKQUxBS0w3QXUzREF4QVAvL0FCei82UVFBQmdVQ0pnQlhBQUFCQmdGb1JBQUFDUUN3Q0Mrd0tkd3dNUUQvL3dDYy9rQUZJZ1d3QWlZQU9BQUFBQWNBZXdGL0FBUC8vd0E3L2owQ3JnVkJBaVlBV0FBQUFBY0Fld0RWQUFELy93Q2NBQUFGSWdjN0FpWUFPQUFBQVFjQmFBREpBVFlBRXdDd0FFVllzQVl2RzdFR0h6NVpzQTNjTURFQS8vOEFPLy90QThnR2d3QW1BRmdBQUFBSEE2c0NzZ1Y5QUFFQW5BQUFCU0lGc0FBUEFFd0FzQUJGV0xBS0x4dXhDaDgrV2JBQVJWaXdBaThic1FJUFBsbXlEd29DRVJJNXNBOHZzZ0FIQ2l0WUlkZ2I5Rm13Qk5Dd0R4Q3dCdEN3Q2hDeUNBRUtLMWdoMkJ2MFdiQU0wREF4QVNNREl4TWpOek1USVRjaEJ5RURNd08reVlqMmljMGV6RFQrU3lRRVlpVCtTRFRLQXhMODdnTVNxZ0Vvek16KzJBQUFBZi9pLyswQ3JnVkJBQjRBZ0xJWEh5QVJFamtBc0FCRldMQVZMeHV4RlJzK1diQUFSVml3R1M4YnNSa2JQbG13QUVWWXNBc3ZHN0VMRHo1WnNoNFpDeEVTT2JBZUw3SUFCd29yV0NIWUcvUlpzQXNRc2dZQkNpdFlJZGdiOUZtd0FCQ3dEOUN3SGhDd0VkQ3dGUkN5RXdFS0sxZ2gyQnYwV2JBVkVMQVgwTEFYTDdBVEVMQWIwTEFjMERBeEFTTURCaGNXRnpJM0J3WWpKaVkzRXlNM016Y2pOek1UTXdNekJ5TUhNd0p0MFMwREFnWktKUzhRU2t0OGV3MHV6eDdORzYwZ3JDN3VMcmtmdWh6U0FqZis4UmtVUVFNSnZoVUNwWWdCRzZxbHRBRUgvdm0wcGYvL0FGdi81Z1V2QnlzQ0pnQTVBQUFCQndGdUFPOEJOd0FKQUxBQUw3QWQzREF4QVAvL0FFci82QVF4QmZVQ0pnQlpBQUFCQmdGdVdnRUFDUUN3Qnkrd0h0d3dNUUQvL3dCYi8rWUZMd2JxQWlZQU9RQUFBUWNBY2dEcEFUb0FDUUN3QUMrd0U5d3dNUUQvL3dCSy8rZ0VNUVcwQWlZQVdRQUFBUVlBY2xRRUFBa0FzQWN2c0JUY01ERUEvLzhBVy8vbUJTOEhIUUltQURrQUFBRUhBV29CSHdFMkFBa0FzQUF2c0JiY01ERUEvLzhBU3Yvb0JERUY1d0ltQUZrQUFBRUhBV29BaWdBQUFBa0FzQWN2c0JmY01ERUEvLzhBVy8vbUJTOEhsUUltQURrQUFBRUhBV3dCZXdGcUFBd0FzQUF2c0J6Y3NCL1FNREgvL3dCSy8rZ0VNUVpmQWlZQVdRQUFBUWNCYkFEbUFEUUFEQUN3Qnkrd0hkeXdJTkF3TWYvL0FGdi81Z1ZQQnpVQ0pnQTVBQUFCQndGdkFXWUJOZ0FNQUxBQUw3QVYzTEFYMERBeC8vOEFTdi9vQkxvRi93SW1BRmtBQUFFSEFXOEEwUUFBQUF3QXNBY3ZzQmJjc0JqUU1ERUFBUUJiL29nRk1nV3dBQ0FBWWJJSElTSVJFamtBc0FCRldMQUFMeHV4QUI4K1diQUFSVml3Rnk4YnNSY2ZQbG13QUVWWXNBMHZHN0VORno1WnNBQkZXTEFTTHh1eEVnOCtXYklFRWdBUkVqbXdEUkN5Q0FNS0sxZ2gyQnYwV2JBU0VMSWNBUW9yV0NIWUcvUlpNREVCQXdZR0J3WUhCaGNXTnhjR0p5SW1OelkzTGdJM0V6TURCaFlYRmpZM0V3VXlwUmUrbFhvS0JUZ2JQUXhGVlZkcEFnSTlrTkpnRWFYMnBSSjJlNGUwR2FjRnNQd3pwUFk0VUZnNUF3RVhrQ3NDYlZSWVNBaUUzNHdEenZ3eGk1d0VCSnFRQTlRQUFBRUFTdjVSQkRFRU9nQWpBSGV5RWlRbEVSSTVBTEFBUlZpd0dDOGJzUmdiUGxtd0FFVllzQ0V2RzdFaEd6NVpzQUJGV0xBTEx4dXhDeEUrV2JBQVJWaXdBQzhic1FBUFBsbXdBRVZZc0JNdkc3RVREejVac0FzUXNnWURDaXRZSWRnYjlGbXdBQkN3RU5Dd0VDK3lFU0VBRVJJNXNCTVFzaDRCQ2l0WUlkZ2I5Rmt3TVNFWEJ3WUhCaGNXTnhjR0p5SW1OelkzTndZbkxnSTNFek1EQmhjV0Z4WTNFek1EQTF3Rkw0TUhCVGdiUFF4RlZWZHBBZ094RW51NWFZczdESFh0ZGdRRENuT2RZWWp0dXdNZlZsWTVBd0VYa0NzQ2JWU1daMXFEQkFKa3Mza0N2UDFCSlNOOEJRYUVBd3I3eGdELy93QzNBQUFIT2djM0FpWUFPd0FBQVFjQlp3Ry9BVFlBRXdDd0FFVllzQXd2RzdFTUh6NVpzQS9jTURFQS8vOEFkd0FBQmZnR0FRSW1BRnNBQUFFSEFXY0JBZ0FBQUJNQXNBQkZXTEFMTHh1eEN4cytXYkFSM0RBeEFQLy9BS0VBQUFWTkJ6Y0NKZ0E5QUFBQkJ3Rm5BTGtCTmdBVEFMQUFSVml3QVM4YnNRRWZQbG13Qzl3d01RRC8vLysxL2tVRUVnWUJBaVlBWFFBQUFRWUJaeFlBQUJNQXNBQkZXTEFQTHh1eER4cytXYkFVM0RBeEFQLy9BS0VBQUFWTkJ3TUNKZ0E5QUFBQkJ3QnJBTzhCTmdBTUFMQUJMN0FhM0xBSjBEQXgvLy8vNVFBQUJPY0hOZ0ltQUQ0QUFBRUhBSGNCdVFFMkFCTUFzQUJGV0xBSEx4dXhCeDgrV2JBTTNEQXhBUC8vLytjQUFBUHhCZ0FDSmdCZUFBQUJCd0IzQVI4QUFBQVRBTEFBUlZpd0J5OGJzUWNiUGxtd0ROd3dNUUQvLy8vbEFBQUU1d2NYQWlZQVBnQUFBUWNCYXdHV0FUOEFDUUN3Qnkrd0V0d3dNUUQvLy8vbkFBQUQ1QVhoQWlZQVhnQUFBUWNCYXdEOEFBa0FDUUN3Qnkrd0V0d3dNUUQvLy8vbEFBQUU1d2M3QWlZQVBnQUFBUWNCYUFETUFUWUFDUUN3Qnkrd0R0d3dNUUQvLy8vbkFBQUQ3Z1lGQWlZQVhnQUFBUVlCYURJQUFBa0FzQWN2c0E3Y01ERUFBQUVBSGdBQUF5QUdHZ0FOQURLeUFnNFBFUkk1QUxBQVJWaXdCQzhic1FRaFBsbXdBRVZZc0FBdkc3RUFEejVac0FRUXNna0JDaXRZSWRnYjlGa3dNVE1UTmpZWEZoY0hKaWNpQmdjREhza1gycW84WWl3c0xWQm9EOG9FbjdIS0FnRVh1QXdDWTFuN1pnQUNBRTcvNkFVdkJjTUFHZ0FrQUY2eURTVW1FUkk1c0EwUXNCelFBTEFBUlZpd0VpOGJzUklmUGxtd0FFVllzQUF2RzdFQUR6NVpzZ2dTQUJFU09iQUlMN0FTRUxJTkFRb3JXQ0hZRy9SWnNBQVFzaHNCQ2l0WUlkZ2I5Rm13Q0JDeUhnRUtLMWdoMkJ2MFdUQXhCU1lrSnljbU56Y0ZOaWNtSmljbUJ5YzJJUllFRWdjSEJnSUVKeFkyTnlFSEJoY1dGZ0pKMC83N0dnUUZEQllEcnc4S0VxcUxwTkVlaGdFZnZnRUxkeGtQSHN2KzFwMlIya1A5UlFjT0NoQ1JGQVRyMURKVVdvOEJXMU9IbHdNRFNjbFVBN0QrdzhSb3pmNjhydGNEeTlFaVRrTnNkd0FCLzByK1JnTk1CaGtBSFFCeHNnSWVIeEVTT1FDd0FFVllzQlF2RzdFVUlUNVpzQUJGV0xBUEx4dXhEeHMrV2JBQVJWaXdIQzhic1J3YlBsbXdBRVZZc0FVdkc3RUZFVDVac0J3UXNnQUJDaXRZSWRnYjlGbXdCUkN5Q2dFS0sxZ2gyQnYwV2JBQUVMQU4wTEFPMExBVUVMSVpBUW9yV0NIWUcvUlpNREVCSXdNR0JpY21KemNXRnpJM0V5TTNNemMyTmhjV0Z3Y21JeUlIQnpNQ29jT1VFOGlpUTBBZ055UjRIWmVoSGFBTUZkaXFOV2NxTnlla0d3dkRBNGI4Tks3R0FnSVN2ZzRDcVFQVHRHV3l5QUlCRnJzTXhWSUFBZ0JiLytnR0pnWXVBQm9BS3dCYnNpQXNMUkVTT2JBZ0VMQWEwQUN3QUVWWXNBb3ZHN0VLSHo1WnNBQkZXTEFBTHh1eEFBOCtXYklOQ2dBUkVqbXdEUyt5RXdnS0sxZ2gyQnYwV2JBS0VMSWZBUW9yV0NIWUcvUlpzQUFRc2lnQkNpdFlJZGdiOUZrd01RVXVBaWNtRWhJM05oY1dGaGMyTmpjekFnVVdGeFlDQWdjR0V6YzJKaWNtQWc4Q0JoWVdGeFlTTndKSWo5UjdDQWMvbVd5cjNuZkZRMUpsRTdVZy92SVZCUVU5bzNXbDlBa0tnNGFzNVNNSkNBWTFkMW1sNGlnVUE0SDNvWDRCVUFFU1Y0a0VBbGhRRDRDRi9xNUhaMldHL3AzKzIxaDdBeGhxdGRBRUJmN3U5VUJwYmJ4aEF3Y0JBUE1BQWdBMi8rWUZCUVNvQUJnQUp3QmJzaDBvS1JFU09iQWRFTEFFMEFDd0FFVllzQVF2RzdFRUd6NVpzQUJGV0xBVkx4dXhGUTgrV2JJSEJCVVJFam13QnkreURnZ0tLMWdoMkJ2MFdiQVZFTEljQVFvcldDSFlHL1Jac0FRUXNpTUJDaXRZSWRnYjlGa3dNUk0yRWpZWEZoWVhOamMzTXdZR0J4WVhGZ2NDQUNjbUFqY1hGaFlYRmpZM056WW1KeVlHQndaUkVwM3hsR0t2UG1jYkRxRU9jMjRQQXdJSUpmN0szZFRnR09vRFkxbDZxQmdIQTJOaWVxWVpDQUlnb0FFR2l3SUNTVTBwZkV5UXFTZElSMGRKL3ZIK3pBVUdBVFhsYzJsL0JBUENxV0o5bFFRRHc2eFJBQUVBVy8vb0JxMEdBZ0FhQUZTeUZ4c2NFUkk1QUxBQVJWaXdBQzhic1FBZlBsbXdBRVZZc0JFdkc3RVJIejVac0FCRldMQU1MeHV4REE4K1diSUJBQXdSRWptd0FTK3lDQWdLSzFnaDJCdjBXYkFNRUxJV0FRb3JXQ0hZRy9SWk1ERUJCelkyTnpjR0JnY0RCZ0FuTGdJM0V6TURCaFlYRmpZM0V3VXlLR3AzRmEwVDFjMXNJdjY1OEpYY1p4R2w5cVVTZFgySHN4bW5CYkRmQzRtY0FkYmlEUDJrNlA3dUJBTis1SkVEenZ3eGlwNEVCSnFSQTlRQUFBRUFTdi9vQldFRWxBQWJBR2l5RkJ3ZEVSSTVBTEFBUlZpd0RTOGJzUTBiUGxtd0FFVllzQll2RzdFV0d6NVpzQUJGV0xBRUx4dXhCQTgrV2JBQVJWaXdDQzhic1FnUFBsbXlHQllFRVJJNXNCZ3ZzZ01JQ2l0WUlkZ2I5Rm15QmhZRUVSSTVzQWdRc2hNQkNpdFlJZGdiOUZrd01RRUdCZ2NESXpjR0p5NENOeE16QXdZWEZoY1dOeE16QnpZMk53VmhENlNsazk0VmU3bHBpenNNZGUxMUJBTUhkcDVmaU8wZlVsSVNCSlN1cVF6OHoydURCQUprczNrQ3ZQMUJKU044QlFhRUF3cUxEVng3Ly8vL0QvNUlBdnNGNHdJbUFXUUFBQUVIQVdqL1AvL2VBQWtBc0FBdnNCSGNNREVBLy84QWEvL3FCUllIU3dJbUFDc0FBQUVIQUhjQjlRRkxBQWtBc0EwdnNDVGNNREVBLy8vLzkvNVBCRUlHQUFJbUFFc0FBQUVIQUhjQlFnQUFBQWtBc0FRdnNDM2NNREVBLy84QUp3QUFCWVlITmdJbUFESUFBQUVIQUVRQmd3RTJBQk1Bc0FCRldMQUdMeHV4Qmg4K1diQUwzREF4QVAvL0FBMEFBQVA2QmdBQ0pnQlNBQUFCQndCRUFMa0FBQUFUQUxBQVJWaXdBeThic1FNYlBsbXdGTnd3TVFELy8vK2tBQUFFMmdleEFpWUFKUUFBQUFjRHhRR0VBUnovL3dBaS8rZ0VNZ1o4QWlZQVJRQUFBQWNEeFFEYy8rZi8vLytIQUFBSGVBZENBaVlBaVFBQUFRY0Fkd0xxQVVJQUV3Q3dBRVZZc0FZdkc3RUdIejVac0JYY01ERUEvLzhBRC8vb0JuQUdBUUltQUtrQUFBRUhBSGNDYXdBQkFBa0FzQmt2c0VIY01ERUEvLzhBRmYraEJaZ0hnQUltQUpzQUFBRUhBSGNDSUFHQUFCTUFzQUJGV0xBTUx4dXhEQjgrV2JBdTNEQXhBUC8vQUNyL2R3UXpCZjRDSmdDN0FBQUJCd0IzQVRQLy9nQVRBTEFBUlZpd0JTOGJzUVViUGxtd01kd3dNUUQvLy8ra0FBQUVyZ2NoQWlZQUpRQUFBUWNCZFFTS0FUTUFGZ0N3QUVWWXNBUXZHN0VFSHo1WnNBemNzQkRRTURILy93QWkvK2dEM0FYc0FpWUFSUUFBQVFjQmRRUGkvLzRBRmdDd0FFVllzQmd2RzdFWUd6NVpzQzNjc0RIUU1ESC8vd0FuQUFBRXVnY29BaVlBS1FBQUFRY0JkUVJTQVRvQUZnQ3dBRVZZc0FZdkc3RUdIejVac0EzY3NCSFFNREgvL3dBNy8rb0VBZ1hzQWlZQVNRQUFBUWNCZFFQTC8vNEFGZ0N3QUVWWXNBa3ZHN0VKR3o1WnNDSGNzQ1hRTURILy8vL0pBQUFDdlFjb0FpWUFMUUFBQVFjQmRRTUtBVG9BRmdDd0FFVllzQUl2RzdFQ0h6NVpzQVhjc0FuUU1ESC8vLzkrQUFBQ2NnWGtBaVlBOUFBQUFRY0JkUUsvLy9ZQUZnQ3dBRVZZc0FJdkc3RUNHejVac0FYY3NBblFNREgvL3dCci8rY0ZJUWNoQWlZQU13QUFBUWNCZFFTaEFUTUFGZ0N3QUVWWXNBb3ZHN0VLSHo1WnNDVGNzQ2pRTURILy93QTUvK2dFSndYc0FpWUFVd0FBQVFjQmRRUGYvLzRBRmdDd0FFVllzQVF2RzdFRUd6NVpzQ0xjc0NiUU1ESC8vd0FuQUFBRTJBY2hBaVlBTmdBQUFRY0JkUVE4QVRNQUZnQ3dBRVZZc0FRdkc3RUVIejVac0JuY3NCM1FNREgvL3dBSEFBQUMrd1hzQWlZQVZnQUFBUWNCZFFOSS8vNEFGZ0N3QUVWWXNBY3ZHN0VIR3o1WnNBL2NzQlBRTURILy93QmIvK1lGTHdjaEFpWUFPUUFBQVFjQmRRUjVBVE1BRmdDd0FFVllzQW92RzdFS0h6NVpzQlRjc0JqUU1ESC8vd0JLLytnRU1RWHNBaVlBV1FBQUFRY0JkUVBrLy80QUZnQ3dBRVZZc0Fndkc3RUlHejVac0JYY3NCblFNREgvL3dBay9ma0V1d1hIQWlZQU53QUFBQWNEcXdFKy9wTC8vd0FjL2ZrRHhBUlFBaVlBVndBQUFBY0Rxd0R3L3BMLy93Q2MvZmtGSWdXd0FpWUFPQUFBQUFjRHF3RXQvcEwvL3dBNy9ma0NyZ1ZCQWlZQVdBQUFBQWNEcXdDRC9wSUFBZjhQL2tnQjNBUTZBQXdBS0FDd0FFVllzQXd2RzdFTUd6NVpzQUJGV0xBRUx4dXhCQkUrV2JJSkFRb3JXQ0hZRy9SWk1ERUJBd1lHSXlJbk54WXpNamNUQWR6REdNeWpQVVlmTlNwL0ljSUVPdnVJdGNVUndSRENCRzRBQUFJQU52L3FBL1lFVUFBVkFCMEFaYklRSGg4UkVqbXdFQkN3RnRBQXNBQkZXTEFBTHh1eEFCcytXYkFBUlZpd0NDOGJzUWdQUGxteURBQUlFUkk1c0F3dnNBQVFzaEFCQ2l0WUlkZ2I5Rm15RWd3UUVSSTVzQWdRc2hZQkNpdFlJZGdiOUZtd0RCQ3lHQWNLSzFnaDJCdjBXVEF4QVJZU0J3Y09BaWNtQWpjM0lUWW1KeVlISnpZMkV4WVRJUVlYRmhZQ1JjN2pGZ2NWbXVTRHhjZ2FGZ0tRREdwcGw1eEJROHdIcUdmK1dBMEdDRlVFVGdUKzFlWTVsL3lEQXdZQkROV1BnNkVEQlYrZ1BrTDhYUVlCQzBrcFEwLy8vd0NLQkFBQi9nWUFBd1lEY1FBQUFBWUFzQVF2TURFQUFRRUNCTjBEbndZQkFBZ0FTZ0N3QlMreUR3VUJYYkFHMEJtd0JpOFlzQURRR2JBQUx4aXdCUkN3QWRDd0FTK3dCUkN3Qk5Dd0JDK3dBdEN3QWkrd0JSQ3dCOUN3QnkrMER3Y2ZCd0pkc2dNRkJ4RVNPVEF4QVJVbkp3Y0hKd0V6QTUrNWRhM0JBUUV0aUFUdUVRT2JtZ1FTQVJJQUFBRUJEUVRnQTd3R0JRQUlBQ1VBc0FRdnNnOEVBVjJ3QXRDd0FpKzBEd0lmQWdKZHNnQUVBaEVTT2JBSDBMQUhMekF4QVRjM0ZRRWpBelVYQWtLcDBmN01rdW5FQldlWkJCRCs3QUVWRUFULy93RHZCUklEeXdXd0FBWUFjZ0FBQUFFQS9nVElBMndGNXdBTUFDd0FzQU12c2c4REFWMndBTkN3QUMrMER3QWZBQUpkc0FiUXNBWXZzQU1Rc2drQ0NpdFlJZGdiOUZrd01RRUdCaWNtSmpVWEJqTXlOamNEYkFxNmg0U2ZzQVY0UTB3TUJlZUZtZ1FDbVlBQmpFNDlBQUVCQWdUY0FnRUYyQUFLQUIyeUFBc01FUkk1QUxBSUw3SVBDQUZkc2dJRkNpdFlJZGdiOUZrd01RRTBOallXRlJRR0J3WW1BUUpIYmtwSE56WkxCVlU0UndSRk5qbEVBZ0pGQUFBQ0FQb0VqQUtvQmlzQUN3QVhBQzhBc0FrdnNnOEpBVjJ3RmRDd0ZTK3lEeFVCWGJJRERBb3JXQ0hZRy9SWnNBa1FzZzhLQ2l0WUlkZ2I5Rmt3TVJNME5qTXlGaFVVQmlNaUpqY0dGak15TmpjMkppTWlCdnFGWFZKNmhGMVhkbXNHTWlzeVNRWUdNU3N5U2dWU1duOTFWRmw5ZEZRb1FrZ3VLMEJKQUFBQi82aitVUUVrQUQwQUR3QWJBTEFBUlZpd0NpOGJzUW9SUGxteUJRTUtLMWdoMkJ2MFdUQXhCUWNHQndZWEZqY1hCaWNpSmpjMkpRRWtMNE1IQlRnYlBReEZWVmRwQWdNQkNBTWZWbFk1QXdFWGtDc0NiVlN6ZGdBQkFONEUyd1BKQmZRQUZBQkJBTEFETDdBSTBMQUlMN1FQQ0I4SUFsMnlEZ01LSzFnaDJCdjBXYkFVMExBQTBMQURFTEFLMExBS0w3QUwwTEFMTDdBREVMSVNBd29yV0NIWUcvUlpNREVCQmdZaklpNENCd1lISnpZMkZ4WVdGeGMyTndQSkRJRmVHQzFyTkIxUEc1VUtnbUF3bGlJWlVSd0Y2WGVNRGowVEFRTmxDSEtYQWdGWkJBRURaZ0FBQWdDc0JORUQ2UVgvQUFNQUJ3QkFBTEFDTDdJUEFnRmRzQURRc0FBdnRBOEFId0FDWGJBQ0VMQUQwQm13QXk4WXNBQVFzQVhRc0FVdnNBSVFzQWJRc0FZdnNBTVFzQWZRR2JBSEx4Z3dNUUV6QVNNRE13RWpBdS82L3NuU1Z2UCs5TVVGLy83U0FTNyswZ0FBQXYvdS9ta0JUZisvQUFzQUZ3QTlBTEFZTDdBRDBMQURMMEFQQUFNUUF5QURNQU5BQTFBRFlBTUhYYkFQMExBUEw3SUpDUW9yV0NIWUcvUlpzQU1Rc2hVSkNpdFlJZGdiOUZrd01RYzBOak15RmhVVUJpTWlKamNHRmpNeU5qYzJKaWNpQmhKcVMwbGhhVWhLWkdFRUpSMGhOZ1lGSGlBak9mVk5aMkpFU21aZVJoOHJNeUVkTVFFMkFBQUIvVlFFMGY3WkJnQUFBd0FqQUxBQkw3SVBBUUZkc0FEUUdiQUFMeGl3QVJDd0F0Q3dBaSswRHdJZkFnSmRNREVCSXdNei90bTAwZndFMFFFdkFBSDkxd1RSLytrR0FBQURBQ01Bc0FJdnNnOENBVjJ3QWRDd0FTKzBEd0VmQVFKZHNBSVFzQVBRR2JBREx4Z3dNUUVoQVNQK3lRRWcvcjdRQmdEKzBmLy8vUFlFMi8vaEJmUUFCd0Z1L0JnQUFBQUIvZFlFNWY4OUJuOEFEZ0FsQUxBT0w3QUgwTEFITDdJQkRnY1JFam15Q0FnS0sxZ2gyQnYwV2JJTkFRNFJFamt3TVFFM056WTNOaWNuTnhjRUJ3WUhCLzNXRGk5ZkNRcHJJaEVvQVF3REE2QUtCT2FTQlFzNlBBUUJmQUlXb1gwZVJnQUFBdnkvQk9UL3N3WHVBQU1BQndBM0FMQUJMN0FBMEJtd0FDOFlzQUVRc0FYUXNBVXZzQWJRc0FZdnRnOEdId1l2QmdOZHNBUFFzQU12c0FBUXNBVFFHYkFFTHhnd01RRWpBeUVCSXdNaC9wSGQ5UUVTQWVMT3dBRUVCT1FCQ3Y3MkFRb0FBQUg4b1A2Ui9hei9qZ0FMQUJFQXNBTXZzZ2tOQ2l0WUlkZ2I5Rmt3TVFVME5qYzJGaFVVQmdjR0p2eWdTem8zVUVvN09rMzFOa2tDQWtRM09VVUNBa1lBQUFFQkxnVHBBb2dHUVFBREFCY0FzQUl2c0FEUXNBQXZzQUlRc0FQUUdiQURMeGd3TVFFekF5TUJwdUxFbGdaQi9xZ0FBd0RvQk53RUl3YXZBQU1BRHdBYkFENEFzQTB2c0FMUXNBSXZzQURRc0FBdnRBOEFId0FDWGJBQ0VMQUQwQm13QXk4WXNBMFFzZ2NGQ2l0WUlkZ2I5Rm13RTlDd0RSQ3dHZEN3R1M4d01RRXpBeU1GTkRZM05oWVZCZ1lIQmlZbE5qWTNOaFlWRkFZSEJpWUNuZWl6bC82dFJEY3lTZ0ZHTXpKTEFrUUJSak15UzBVMk5FZ0dyLzdXTWpCSUFnSkNORFJFQWdKQ016UkVBZ0pDTkRCSUFnSkVBUC8vLzZRQUFBU3VCa0VDSmdBbEFBQUFCZ0Yzd1FELy93Q2VBa0lCc1FOVkFnWUFlZ0FBLy8vL3ZnQUFCUjRHUVFBbUFDbGtBQUFIQVhmK2tBQUEvLy8veGdBQUJlc0dRUUFtQUN4a0FBQUhBWGYrbUFBQS8vLy95Z0FBQW93R1F3QW1BQzFrQUFBSEFYZituQUFDLy84QUdQL25CVFVHUVFBbUFETVVBQUFIQVhmKzZnQUEvLy8vV0FBQUJiRUdRUUFtQUQxa0FBQUhBWGYrS2dBQS8vOEFIUUFBQlFzR1FRQW1BWmtVQUFBSEFYZis5QUFBLy84QUMvLzBBMFlHbWdJbUFha0FBQUVIQVhqL0kvL3JBQklBc0FBdnNDZmNzQTdRc0NjUXNCTFFNREgvLy8ra0FBQUVyZ1d3QWdZQUpRQUEvLzhBSndBQUJMd0ZzQUlHQUNZQUFBQUJBQzRBQUFTc0JiQUFCUUFyQUxBQVJWaXdCQzhic1FRZlBsbXdBRVZZc0FJdkc3RUNEejVac0FRUXNnQUJDaXRZSWRnYjlGa3dNUUVoQXlNVElRU0kvWFhaOXZ3RGdnVGsreHdGc0FBQy82b0FBQVVKQmJBQUF3QUdBQzhBc0FCRldMQUFMeHV4QUI4K1diQUFSVml3QWk4YnNRSVBQbG15QkFFS0sxZ2gyQnYwV2JJR0FnQVJFamt3TVFFekFTRWxJUU1DNiswQk1mcWhBWG9DeWJjRnNQcFF5Z081QVAvL0FDY0FBQVM2QmJBQ0JnQXBBQUQvLy8vbEFBQUU1d1d3QWdZQVBnQUEvLzhBSndBQUJZY0ZzQUlHQUN3QUFBQURBRjcvNXdVV0JjZ0FBd0FWQUNVQWc3SWJKaWNSRWptd0d4Q3dBdEN3R3hDd0RkQUFzQUJGV0xBTkx4dXhEUjgrV2JBQVJWaXdCQzhic1FRUFBsbXlBZ1FORVJJNWZMQUNMeGl5WUFJQlhiSkNBZ0Zkc25JQ0FWMjAwQUxnQWdKZHNqQUNBVjJ5QUFJQmNiSUJBUW9yV0NIWUcvUlpzQTBRc2hvQkNpdFlJZGdiOUZtd0JCQ3lJZ0VLSzFnaDJCdjBXVEF4QVNFM0lRRXVBaWNtRWhJM05nUUFGeFlDQWdjR0V6YzJKaWNtQWc4Q0JoWVhGaEkzQTVEK1N5TUJ0UDZhajlaNkNBYzZuM1NvQWJBQkFRd0dPWXRuc3R3SkI0T0RyK0lpQ2dnS2hJV2w0aWdDZWNMOHNRT0QrSjF6QVZFQklWcUNDUDdlOTN6K3YvN3pXcHdER1dxOHlRUUYvdTN0UjJtMzBnUUhBUUR6QVAvL0FEVUFBQUlvQmJBQ0JnQXRBQUQvL3dBbkFBQUZjUVd3QWdZQUx3QUFBQUgvc2dBQUJIOEZzQUFHQURFQXNBQkZXTEFETHh1eEF4OCtXYkFBUlZpd0FTOGJzUUVQUGxtd0FFVllzQVV2RzdFRkR6NVpzZ0FEQVJFU09UQXhBUUVoQVRNVElRTGUvZVgrN3dMcjcvUC9BQVJCKzc4RnNQcFEvLzhBSndBQUJzNEZzQUlHQURFQUFQLy9BQ2NBQUFXR0JiQUNCZ0F5QUFBQUF3QUFBQUFFaUFXd0FBTUFCd0FMQUVzQXNBQkZXTEFJTHh1eENCOCtXYkFBUlZpd0FpOGJzUUlQUGxteUFBRUtLMWdoMkJ2MFdiSUZDQUlSRWptd0JTK3lCZ0VLSzFnaDJCdjBXYkFJRUxJS0FRb3JXQ0hZRy9SWk1ERTNJUWNoRXlFSElSTWhCeUVrQTZZai9GbjBBdUVqL1I4NEEzOGovSURLeWdOTnhnTXB6QUQvL3dCci8rY0ZJUVhJQWdZQU13QUFBQUVBTGdBQUJZTUZzQUFIQURnQXNBQkZXTEFHTHh1eEJoOCtXYkFBUlZpd0FDOGJzUUFQUGxtd0FFVllzQVF2RzdFRUR6NVpzQVlRc2dJQkNpdFlJZGdiOUZrd01TRWpFeUVESXhNaEJJYjIyZjJVMmZiOEJGa0U1UHNjQmJBQS8vOEFKd0FBQlFRRnNBSUdBRFFBQUFBQi85d0FBQVNmQmJBQURBQThBTEFBUlZpd0NDOGJzUWdmUGxtd0FFVllzQU12RzdFRER6NVpzZ0VCQ2l0WUlkZ2I5Rm13QmRDd0NCQ3lDZ0VLSzFnaDJCdjBXYkFIMERBeEFRRWhCeUUzQVFFM0lRY2hBUU1iL2k4Q25pUDhGeHdDSVA2b0dRUEdKUDEyQVNzQzBmMzV5cUlDUXdJK2pjeitBUUQvL3dDY0FBQUZJZ1d3QWdZQU9BQUEvLzhBb1FBQUJVMEZzQUlHQUQwQUFBQURBRklBQUFXeEJiQUFGUUFjQUNNQWRiSVRKQ1VSRWptd0V4Q3dHdEN3RXhDd0lkQUFzQUJGV0xBVkx4dXhGUjgrV2JBQVJWaXdDQzhic1FnUFBsbXlFeFVJRVJJNXNCTXZzQURRc0FBdnNnb0lGUkVTT2JBS0w3QUgwTEFITDdBS0VMSVpBUW9yV0NIWUcvUlpzQk1Rc2hvQkNpdFlJZGdiOUZtd0lOQ3dHUkN3SWRBd01RRVdBQWNHQWdRSEJ5TTNMZ0kzTmhJM05qYzNNd0VHRmhjVEJnWUZOaVluQXpZMkE5WGJBUUVWRDYzKzZhY2s5eVNSM0d3UEQ2cUtqNnNtOS8xWUVYeUZncGpIQTBRU2VvV0JsY2NFL1FyK3pPYWYvd0NOQTZxckJZNzJrNkFCQUVsTEE3TDlGNUt1Q3dLeUNNQ01sYkFOL1U0SXZmLy8vOE1BQUFWSEJiQUNCZ0E4QUFBQUFRQjFBQUFGMXdXd0FCa0FYTElLR2hzUkVqa0FzQUJGV0xBRUx4dXhCQjgrV2JBQVJWaXdFQzhic1JBZlBsbXdBRVZZc0Jndkc3RVlIejVac0FCRldMQUtMeHV4Q2c4K1diSVhCQW9SRWptd0Z5K3dBTkN3RnhDeURBRUtLMWdoMkJ2MFdiQUowREF4QVRZMk54TXpBd1lBQndNakV5WUNOeE16QXdZWEZoWVhFek1EUVlhckdWWDNWaXIrd2ZaSTlramMyeDFUOWxRSUF3VmpXWjcwQWo4Ynhab0I5LzRDK2Y3VkYvNkpBWGNmQVVIb0FmSCtEajQ4WW9jWUEyMEFBUUFKQUFBRTl3WEhBQ01BV2JJQUpDVVJFamtBc0FCRldMQVpMeHV4R1I4K1diQUFSVml3RHk4YnNROFBQbG13QUVWWXNDSXZHN0VpRHo1WnNpRUJDaXRZSWRnYjlGbXdBTkN3R1JDeUJ3RUtLMWdoMkJ2MFdiQUFFTEFPMExBaEVMQVIwREF4SlRZU0V6YzFBaWNtQmdJSEJoWVhCeUUzTndJVE56WVNKQmNXRmhJSEJ3SUZOd2NoQW9DUHF5RUdDOCtRdmo0REJWRlJJUDRVSmRHaEpRMGF0QUVTcEozZ1poVU5OZjcyMFNUK0hjNG5BVE1CTjA4ekFROElCZHYrZkhhUXJ4blF5d0lCRGdFU1hiZ0JKcDhFQktUKzNxaFgvcDdSQk12Ly93QTFBQUFETEFjS0FpWUFMUUFBQVFjQWEvK3BBVDBBREFDd0FpK3dGZHl3Qk5Bd01mLy9BS0VBQUFWTkJ3TUNKZ0E5QUFBQkJ3QnJBTzhCTmdBTUFMQUJMN0FhM0xBSjBEQXgvLzhBUHYvcUJETUdRUUltQWFFQUFBRUhBWGNCUmdBQUFBa0FzQm92c0M3Y01ERUEvLzhBS1AvcUJBSUdRUUltQWFVQUFBRUhBWGNCRUFBQUFBa0FzQWd2c0NyY01ERUEvLzhBRWY1aEJBWUdRUUltQWFjQUFBRUhBWGNCR2dBQUFBa0FzQU12c0JYY01ERUEvLzhBYnYvMEFwSUdMQUltQWFrQUFBRUdBWGNLNndBSkFMQUFMN0FRM0RBeEFQLy9BRmYvNVFROUJxSUNKZ0cxQUFBQkJnRjRHdk1BRWdDd0NpK3dNTnl3RjlDd01CQ3dHOUF3TVFBQ0FENy82Z1F6QkZFQUhRQXJBSG15R2l3dEVSSTVzQm9Rc0NUUUFMQUFSVml3R2k4YnNSb2JQbG13QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFRTHh1eEVBOCtXYkFBUlZpd0NpOGJzUW9QUGxteUJRRUtLMWdoMkJ2MFdiSU5HaEFSRWpteUhCb1FFUkk1c0JBUXNpTUJDaXRZSWRnYjlGbXdHaEN5S0FFS0sxZ2gyQnYwV1RBeEFRTUdGeFlYTXpjWEJpY21KaWNHQmljbUppY21OemMyRWpZWEZoYzNBUVlYRmhZWEZqY1RKaWNtQmdjRU00QUhBZ0luRGcwR05VQk9YZzA4bEdTYXRBY0RCZ01WaTh5QXJWVXgvY3dHQVFKWlVvUmlVQzkvZVo0V0JEcjlCalFhTkFJRHR4MENBbFJMUzFrQ0F0dTFQVHdWckFFVGhnTUVsWVg5dURNNFpIUUNBNHNCeVlrRUJkTzJBQUFDLytYK2R3UnJCY2NBRkFBcEFHV3lGQ29yRVJJNXNCUVFzQnpRQUxBUEw3QUFSVml3QUM4YnNRQWZQbG13QUVWWXNBd3ZHN0VNRHo1WnNoVUFEQkVTT2JBVkw3SW5BUW9yV0NIWUcvUlpzZ1VuRlJFU09iQUFFTEliQVFvcldDSFlHL1Jac0F3UXNpRUJDaXRZSWRnYjlGa3dNUUVXRmdjR0J4WVdCdzRDSnlZbkF5TVRQZ0lUTmpZM05pWW5KZ1lIQXhZWE1qWTNOaVluSnpjQzI3allEUTdjWGw0SUNvYmJoSjEwVit6M0VKTGlGMm1DQ3dsWVVXQ1JFb3RLa1hHakVBNVpXSVFhQmNRRTFhbkRkUzY2ZFlYUmJ3TUVVdjQyQmFoM3hHMzlsQUowYVZodUJBS0FadnplVUFLUGNtV01CUUc0QUFBQkFIZitYd1F3QkRvQUNBQTRzZ0FKQ2hFU09RQ3dBRVZZc0FFdkc3RUJHejVac0FCRldMQUhMeHV4QnhzK1diQUFSVml3QkM4YnNRUVJQbG15QUFjRUVSSTVNREVCQVRNQkF5TVRBek1CeVFGcC92M2ZUdTFUc093QlBnTDgrK0wrUXdIZUEvMEFBQUlBT1AvbkJEZ0dKQUFmQUM0QVlySUNMekFSRWptd0FoQ3dKdEFBc0FCRldMQURMeHV4QXlFK1diQUFSVml3RlM4YnNSVVBQbG13QXhDeUNBRUtLMWdoMkJ2MFdiSU9GUU1SRWptd0RpK3lLd0VLSzFnaDJCdjBXYkljS3c0UkVqbXdGUkN5SlFFS0sxZ2gyQnYwV1RBeEFUWTJGeFlYQnlZSElnWUhCaGNYQkFNSERnSW5MZ0kzTmpZM05TWW1Bd1lYRmhZWEZqWTNOaVluQmdZSEFVRUg2N0ZzbVJXRWFreHJDZzl3TEFHR0p3TVVtZStRaXNSY0RoTGJua2hOQndZREEyTlhkNlFjRG1aZ2VxVVlCT0tWclFJQ01jUTRBa0UzVFRjVXJQNTFGSjM2aUFRRWgvR1V2djhjRHllRy9YTTFPMmg5QXdPOXZIKzdIZ082cWdBQkFDai82Z1FDQkZFQUp3Q2dzaFFvS1JFU09RQ3dBRVZZc0Fndkc3RUlHejVac0FCRldMQWxMeHV4SlE4K1diSVZDQ1VSRWptd0ZTK3lqeFVCWGJRZkZTOFZBbkcwWHhWdkZRSnh0TDhWenhVQ1hiVHZGZjhWQW5HeVdoVUJYYklYQndvcldDSFlHL1Jac2dJWEZSRVNPYkFJRUxJUEFRb3JXQ0hZRy9SWnNnd1ZEeEVTT2JZTURCd01MQXdEWGJBbEVMSWRBUW9yV0NIWUcvUlpzaUFYSFJFU09iUURJQk1nQWwwd01STTJOeVltTnpZa0Z4WVdGU2MwSmlNbUJnY0dGeGNISnlJR0J3WVdGeFkyTnpNT0FpY21KaThLNWoxUEFnVUJEYzZ5MitsbFRsbUdDaE94MFIrMGJvUUpDR2RjV280TzdnbUMzWDdEN0FFcHQxTWhiVWlhcmdRRnNwQUJRa2dDVUVSNUJnR3RBVlZLUDA0REFsVkthNXhRQWdTcUFBRUFadjU5QkZBRnNBQWJBRSt5RWh3ZEVSSTVBTEFNTDdBQVJWaXdBQzhic1FBZlBsbXlHUUVLSzFnaDJCdjBXYklCR1FBUkVqbXlBZ3dBRVJJNXNoTU1BQkVTT2JBVEVMSUdBUW9yV0NIWUcvUlpzaGdBREJFU09UQXhBUWNCQmhjV0Z4Y1dGZ2NHQnljM05qYzJKeWNrRXpZU053RWhOd1JRSFA0VzRnY0RYYkJaU1FRSzNub3JQd3NLVG5YKzd4d09xckVCRlAzZUlnV3duUDRKOU5sZUpEMGhZVW1scEdzdlNEbzNIQ1JiQVEyS0FTcXlBUS9EQUFFQUVmNWhCQVlFVWdBU0FGT3lDQk1VRVJJNUFMQUFSVml3QXk4YnNRTWJQbG13QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFITHh1eEJ4RStXYkFBUlZpd0VDOGJzUkFQUGxteUFRTVFFUkk1c0FNUXNnMEJDaXRZSWRnYjlGa3dNUUVITmhjV0ZnY0RJeE0ySnlZbkpnY0RJeE1CcFJTS3RhR1ZFN3Z0dkFVRERvYUlaWW51dkFRN2had0VCTlRBKzZzRVZDd25nQU1FZmZ6dUJEb0FBd0JzLytjRVB3WEpBQkVBR1FBaUFJYXlJQ01rRVJJNXNDQVFzQURRc0NBUXNCalFBTEFBUlZpd0NTOGJzUWtmUGxtd0FFVllzQUF2RzdFQUR6NVpzaE1KQUJFU09YeXdFeThZc21BVEFWMnlRaE1CWGJKeUV3RmR0TkFUNEJNQ1hiSXdFd0Zkc2dBVEFYR3dDUkN5RndFS0sxZ2gyQnYwV2JBVEVMSWFBUW9yV0NIWUcvUlpzQUFRc2lBQkNpdFlJZGdiOUZrd01RVW1BamMwTnpjU0FCY1dFZ2NHQndjQ0FBRWhOalVtSnlZREFTRUdGeFFXRnhZVEFlaTR4QUlKSHpFQkh0KzV3Z0VCQ1NJMC91Zit0Z0hKRlFXZjJVc0JuLzQzRlFGVVR0Wk9GQVFCQmV0TFI4d0JRZ0ZKQlFUKy9PZExSOTMreGY2OEExR0RVZThIQ1A2aS9zMkRTM21DQXd3QlpBQUFBUUJ1Ly9RQ0NnUTZBQTBBS0FDd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBSkx4dXhDUTgrV2JJRUFRb3JXQ0hZRy9SWk1ERUJBeFVXRnpJM0J3WW5KaVkzRXdIcmd3TkxKeTBRU2t0OGV3MkRCRHI4OVMxQUF3bStGZ0lDbzRrREZ2Ly9BQ0VBQUFTTkJEb0NCZ0Q3QUFBQUFmK28vL0FEMWdYN0FCb0FVYklQR3h3UkVqa0FzQUF2c0FCRldMQUxMeHV4Q3c4K1diQUFSVml3RUM4YnNSQVBQbG13Q3hDeUJnRUtLMWdoMkJ2MFdiSVBBQkFSRWpteUVoQUFFUkk1c0FBUXNoWUJDaXRZSWRnYjlGa3dNUUVXRnhNV0ZoY3pOd2NHSXlZbUp3TUJJUUVuSmlZbkp3YzNOZ0dadUREb0NCNGtFaEVOS2lwZmNoMXAvcGIrOUFJeExnc3FLeHNiRGo0RitRU2wrOFFmTmdVQnd3Z0NabXNDQlAwNUJCM0FLQzBDQVFHNEQvLy8vOTMrWUFSVUJEb0NCZ0I0QUFELy93QmtBQUFFRFFRNkFnWUFXZ0FBQUFFQVB2NTFCQ1lGeFFBdEFGYXlCUzR2RVJJNUFMQVhMN0FBUlZpd0t5OGJzU3NmUGxteUFnRUtLMWdoMkJ2MFdiSUhMaXNSRWptd0J5K3lDZ0VLSzFnaDJCdjBXYkllRnlzUkVqbXdIaEN5RUFFS0sxZ2gyQnYwV2JJbENnY1JFamt3TVFFbUl5SUdCd1lGRndjbklnWUhCaFlmQWhZSEJnWUhKemMyTnpZbkp5WW5KaE0yTmpjbUpqYzJKRE15RndQdWUxaDhtQXdiQVErRkkzNnMweElMWVdDRUxxa0lCWGhzZ0M5Q0NRYy9LcUJDMmhVS3VLdFVZQVFJQVIvYmpJZ0UyaVpiVHE4Q0FjWUJtWTVkZ3h3bER6eVFVcWxOYWpGSVBUSVpEek1qY2dFQmpjczRLSWxZcnNZdUFQLy9BRG4vNkFRbkJGSUNCZ0JUQUFBQUFRQmQvL1VFMmdRNkFCWUFYTElORnhnUkVqa0FzQUJGV0xBVkx4dXhGUnMrV2JBQVJWaXdDeThic1FzUFBsbXdBRVZZc0JFdkc3RVJEejVac0JVUXNnQUJDaXRZSWRnYjlGbXdDeEN5QmdFS0sxZ2gyQnYwV2JBQUVMQVAwTEFRMExBVDBMQVUwREF4QVNNREJoY1dGekkzQndZakppWTNFeUVESXhNak55RUV1WnRqQXdJR1NpWXZFVVZRZkhzTll2N0FtKzJicHlJRVd3TjgvYlFaRkVFRENiNFZBcU9LQWxqOGhBTjh2Z0FDLzh2K1lBUU1CRk1BRWdBZ0FGQ3lEaUVpRVJJNXNBNFFzQmJRQUxBQVJWaXdCUzhic1FVYlBsbXdBRVZZc0JFdkc3RVJFVDVac0FCRldMQU9MeHV4RGc4K1diSVZBUW9yV0NIWUcvUlpzQVVRc2gwQkNpdFlJZGdiOUZrd01STTJOamMyRnhZV0Z4WUhCd1lHSnlZbkF5TUJGaGNXTmpjMkp5WW1KeVlHQjNVUVcwaVEwTERJQ1FNSERTejNzYWxoWWU0QmF6U0RkWjRWQ3dNSVZVNXJqaGtDUG0vSlNaUUZCT25IUlVWVDMvZ0ZCSGI5K3dLL2J3UURzNTkxUFhGc0F3Sy9vZ0FCQUR2K2lRUHdCRk1BSUFCWnNnMGhJaEVTT1FDd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBYUx4dXhHZzgrV2JBQVJWaXdFeThic1JNWFBsbXdBQkN4QXdvcldOZ2IzRm13QUJDeUJ3RUtLMWdoMkJ2MFdiQWFFTElOQVFvcldDSFlHL1JaTURFQkZoWUhKelltSnlZR0J3Y0dGeGNXQndZR0J5YzNOamMySmljbUFqYzNFZ0FDYzdUSkNONEZWVlJ6b1JZRUhPNXRvQWNEZTJ4NUtVTUpCQ1U2emI4VEFoMEJNUVJPQk9HMEFXUnVCQVBBb3lQdFZ5YzlqMUdyVFdzc1NqOGhLQkErQVFURUZBRUNBVFVBQWdBNC8rZ0V0Z1E3QUJFQUlnQmhzaGdqSkJFU09iQVlFTEFIMEFDd0FFVllzQkF2RzdFUUd6NVpzQUJGV0xBUkx4dXhFUnMrV2JBQVJWaXdDQzhic1FnUFBsbXdFUkN5QUFFS0sxZ2gyQnYwV2JBSUVMSVhBUW9yV0NIWUcvUlpzQkFRc2lBQkNpdFlJZGdiOUZrd01RRUZGZ2NIRGdJbkxnSTNOellBTXdVQkJoY1dGaGNXTmpjM05pY21KaWNtQmdTUy92NkRFUU1RbHUrS2k4UlpFQUlpQVRIZUFqdjhnQVlDQkdCWGI1MGNCd1lDQlY1VmVLQURkZ09yeHhhUjdZVUVBcEQ4bFJEN0FTRUIvZEUyUFc1OEFnT3NwUzgwT21aM0F3TzJBQUFCQUc3LzZ3UWpCRG9BRVFCSnNnTVNFeEVTT1FDd0FFVllzQkF2RzdFUUd6NVpzQUJGV0xBS0x4dXhDZzgrV2JBUUVMSUFBUW9yV0NIWUcvUlpzQW9Rc2dVQkNpdFlJZGdiOUZtd0FCQ3dEdEN3RDlBd01RRWhBd2NVTXhZM0Z3WW5KaVkzRXlFM0lRUUIvcU5sQWo4aFBSVlNYM3g2RG1IK3R5SURrd041L2E4b1NnRVZ0Q3NDQXF1V0FrbkJBQUFCQUZmLzVRUCtCRHdBRmdBOHNoQVhHQkVTT1FDd0FFVllzQW92RzdFS0d6NVpzQUJGV0xBQUx4dXhBQnMrV2JBQVJWaXdFUzhic1JFUFBsbXlCUUVLSzFnaDJCdjBXVEF4QVFNSEJoWVhGaElESmljWEZnY0dBZ1luSmlZM054TUJ2MjBGQWpzNWxjTU9CaUhpT2dzUG0vaVpxYmdLQTI0RU92MXJURXhmQWdZQmRBRWtnWDBCcWRmNy9zYWhCQVBYd0NZQ2tRQUNBREwrSWdWdEJFUUFHd0FrQUZteUdTVW1FUkk1c0JrUXNCelFBTEFhTDdBQVJWaXdFaThic1JJYlBsbXdBRVZZc0Fjdkc3RUhHejVac0FCRldMQUFMeHV4QUE4K1diQVowTEljQVFvcldDSFlHL1Jac0E3UXNCSVFzaUlCQ2l0WUlkZ2I5Rmt3TVFVbUp5WTNOaEkzRndZQ0Z4WVdGeE0yTmhjZUFnY0dBQVVESXdFMk5pY21KZ2NHQndINjduSm9HUk9iaG9oeGJnd0tjV0J4RHFaN2g5Rm1EaHIrci83elYrMEJYcTNLQWdOblZqWU1EQ09xbk9DZ0FRbGJsbWorOUgxamhob0NoWFdUQWdLUTlZMzAvdEVhL2pFQ2tTVHhxNEdRQmdRMi8vLy91UUFBQkJNRU9nSUdBRndBQUFBQkFELytJZ1dLQkR3QUhRQlNzZzRlSHhFU09RQ3dEeSt3QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFJTHh1eENCcytXYkFBUlZpd0ZTOGJzUlViUGxtd0FFVllzQkV2RzdFUkR6NVpzQTdRc2dFQkNpdFlJZGdiOUZtd0hOQXdNUUVETmpZU0p5WW5GeFlYRWdjR0JRTWpFeVlDTnhNekF3WVhGaFlYRXdPZW81Sy9SQXdKSTk0ckNoL3ZxZjcwVisxWDRka2dVdTFTQ1FNRFoxK2lCRHI4ZWlLM0FRNnJmbmdDZG4vK1JPR2ZHZjR5QWRJaUFVVDNBZW4rRkVKQWE0NGNBNE1BQVFCVS8rUUdFQVE5QUNzQVhySWpMQzBSRWprQXNBQkZXTEFBTHh1eEFCcytXYkFBUlZpd0d5OGJzUnNiUGxtd0FFVllzQ0V2RzdFaER6NVpzQUJGV0xBbUx4dXhKZzgrV2JJSEFRb3JXQ0hZRy9SWnNnd2hBQkVTT2JBaEVMSVNBUW9yV0NIWUcvUlpNREVCQndZR0J3WVdGeFkyTnhNekF3WVhGeFlYRmpZM056WW5KaWNYRmhjV0FnWW5KaVluQmljbUpqY1FFd0lvVWs5R0F3TkRQVnQ5RXpYMU5Ba0RBaEJ5Vm5rY0NoRU1EQzNpTkF3VGN1YWthcGdZaGRPaXJBTGVCRG1ZbGVpRGQzc0RCcUNaQVViK3Vrc3hHNWdEQkttcVFJS0NnWHdEZUlMZC9sblZCQUo0WmVZSEJPblhBVjhCS3dELy93Qk0vL1FDL2dXNEFpWUJxUUFBQVFjQWEvOTcvK3NBREFDd0FDK3dIOXl3RHRBd01mLy9BRmYvNVFQK0JjQUNKZ0cxQUFBQkJnQnJjdk1BREFDd0NpK3dLTnl3RjlBd01mLy9BRG4vNkFRbkJrRUNKZ0JUQUFBQkJ3RjNBUTBBQUFBSkFMQUVMN0FqM0RBeEFQLy9BRmYvNVFQK0JqUUNKZ0cxQUFBQkJ3RjNBUUwvOHdBSkFMQUtMN0FaM0RBeEFQLy9BRlQvNUFZUUJqSUNKZ0c1QUFBQkJ3RjNBaGovOFFBSkFMQWFMN0F1M0RBeEFBQUNBRkQvNWdTTkJja0FIZ0FvQUd1eUZDa3FFUkk1c0JRUXNDRFFBTEFBUlZpd0dTOGJzUmtmUGxtd0FFVllzQVl2RzdFR0R6NVpzaUVaQmhFU09iQWhMN0lUQVFvcldDSFlHL1Jac0FMUXNnd1pCaEVTT2JBR0VMSVFBUW9yV0NIWUcvUlpzQ0VRc0IzUXNCa1FzaVVCQ2l0WUlkZ2I5Rmt3TVFFR0J3Y0dCQ2N1QWpjVE53TUdGaGNXRXpjbUFqYzJOaGNXRmdjRE53RUdGeE0zTkNjbUJnY0VnamxMRXlYKzU4aCt2RnNQTCtjd0RtUmh5alFVdDhzT0U5eWZtS0VTTkhMOThSSzZPQVJVT1VvTEFsWVRDM1hoL0FZRGVkZUFBU01DL3RwNGpnTUhBU0J2TEFFVnU3L1JCQVRacmY3TEdBRWg0VXdCT0Rkd0FnSlVUUUFBQVFCdEFBQUZCZ1hKQUJnQVZMSU1HUm9SRWprQXNBQkZXTEFFTHh1eEJCOCtXYkFBUlZpd0ZpOGJzUllmUGxtd0FFVllzQXd2RzdFTUR6NVpzZ0FXREJFU09iQUVFTElJQVFvcldDSFlHL1Jac0JZUXNoRUJDaXRZSWRnYjlGa3dNUUVCTmpZWEZoY0hKd1lIQVFNakV3TW1KeVlISnpZekZoY0NSd0VUUDRwWE8xRTFNMEVzL21oWjlsNm5GVGdSSlJFOFFLOC9Bd2tCNTNsZ0FnSVp3d1lEUmYxZC9md0NId0tKUGdNQkJjUVlCTXYvLy84a0FBQUZhZ1pCQUNZQndHUUFBQWNCZC8zMkFBQUFBZ0JYLytNR2ZRUTZBQlFBS2dCbXNna3JMQkVTT2JBSkVMQWgwQUN3QUVWWXNCTXZHN0VUR3o1WnNBQkZXTEFNTHh1eERBOCtXYkFURUxJQkFRb3JXQ0hZRy9SWnNBd1FzQWZRc2dvVERCRVNPYkFCRUxBWDBMQVMwTEFNRUxJZEFRb3JXQ0hZRy9SWnNpRU1FaEVTT2JBbjBEQXhBU2NYQmdJR0JpY21KaWNHSnlZbU54STNCemNoQVNZbkpRWUdCd1lYRmpZM056TUhCaGNXRnhZVE5nWmFlQU1DUEhpeGIydWNHSWJhbUtFR0JIaHlJZ1gwL240QkIvemRTRHdHQzNCYmZoZ2s5Q0lJQXdxQmt6WWJBNE1CcElyKzI5eHRBd0o0YWVzSEJPdmRBUURRQXJiK3BsRlNBb25YZlBZR0I1YWQ2ZU5KTmJJREJBRXBsLy8vQUNjQUFBUzZCejBDSmdBcEFBQUJCd0JFQVNNQlBRQVRBTEFBUlZpd0JpOGJzUVlmUGxtd0Rkd3dNUUQvL3dBbkFBQUV1Z2NLQWlZQUtRQUFBUWNBYXdEd0FUMEFEQUN3Qmkrd0hkeXdETkF3TVFBQkFKSC84UVdGQmJBQUdRQnVzZ0VhR3hFU09RQ3dBRVZZc0Jndkc3RVlIejVac0FCRldMQUtMeHV4Q2c4K1diQUFSVml3RkM4YnNSUVBQbG13R0JDeUFBRUtLMWdoMkJ2MFdiSUVHQlFSRWptd0JDK3dDaEN5Q3dFS0sxZ2gyQnYwV2JBRUVMSVJBUW9yV0NIWUcvUlpzQUFRc0JiUXNCZlFNREVCSVFNMkZ4WVdCd1lFQnpjMk5qYzJKaWNtQndNakV5RTNJUVRmL2lKTmpXL2Y5aEVTL3NqK0U0dWpEdzF5ZVc2U2R2Zlovb2NrQkU0RTVQNXpKd0lDODhyWjhRSy9CSWw2Ym9FRUF5RDljd1RrekFELy93QXVBQUFFckFjOUFpWUJoQUFBQVFjQWR3RzVBVDBBRXdDd0FFVllzQVF2RzdFRUh6NVpzQWpjTURFQUFBRUFaLy9vQlJFRnh3QWdBSVd5RkNFaUVSSTVBTEFBUlZpd0RDOGJzUXdmUGxtd0FFVllzQU12RzdFRER6NVpzZ0FNQXhFU09iSVFBd3dSRWptd0RCQ3lFd0VLSzFnaDJCdjBXYklXREFNUkVqbDhzQll2R0xKZ0ZnRmRzbklXQVYyeVFoWUJYYkl3RmdGZHROQVc0QllDWGJJQUZnRnhzaGtCQ2l0WUlkZ2I5Rm13QXhDeUhRRUtLMWdoMkJ2MFdUQXhBUVlBSnk0Q0p5WVNFaVFYRmhJWEl5WW1KeVlHQnlVSElRY0dGaGNXTmpjRXFTSCtyL0NMMFhjSEJrVENBUnlwMlB3TDlRVjdkcGJVUFFIMEpQNFpDUVorZkl1MkpBSGI0Lzd3QkFOKzc1cHhBWWtCT1o0REJQNzQ2NTZMQXdYVDZ3SEtZcVM1QkFhWGt3QUFBUUFrLytvRXV3WEhBQ2tBWWJJREtpc1JFamtBc0FCRldMQUtMeHV4Q2g4K1diQUFSVml3SHk4YnNSOFBQbG15QXg4S0VSSTVzQW9Rc0E3UXNBb1FzaElCQ2l0WUlkZ2I5Rm13QXhDeUdBRUtLMWdoMkJ2MFdiQWZFTEFrMExBZkVMSW5BUW9yV0NIWUcvUlpNREVCTmljbkppWTNQZ0lYSGdJSEp6WW1KeVlHQndZWEZ4WVdCdzRDSnk0Q054Y0dGaGNXTmdOTUZyTlI0cjRKQ0puNmpZalVjQVQyQjNOMGRhRU9GTDVMNWJZTENvNzdsNC9wZkFYM0NJcUJlS0VCZnBCR0hrL1lqM3k5WmdNRGNjbUJBWEorQXdKeVlYOUpHMUxkbDN1M1pBSUJkdEdGQVh5R0FnSnFBUC8vQURVQUFBSW9CYkFDQmdBdEFBRC8vd0ExQUFBRExBY0tBaVlBTFFBQUFRY0FhLytwQVQwQURBQ3dBaSt3RmR5d0JOQXdNZi8vQUFQLzV3UmhCYkFDQmdBdUFBQUFBdi9LQUFBSDlRV3dBQmtBSWdCNXNnb2pKQkVTT2JBS0VMQWIwQUN3QUVWWXNCZ3ZHN0VZSHo1WnNBQkZXTEFJTHh1eENBOCtXYkFBUlZpd0VDOGJzUkFQUGxteUFSZ0lFUkk1c0FFdnNCZ1FzZ29CQ2l0WUlkZ2I5Rm13RUJDeUVnRUtLMWdoMkJ2MFdiQUlFTEljQVFvcldDSFlHL1Jac0FFUXNpSUJDaXRZSWRnYjlGa3dNUUVGSGdJSEJnQWpJUk1oQXdjQ0FnY2pOemMyTmpjM0V5RURBd1UyTmpjMkppY0ZJQUVSaXRSbUN4SCt4ZlQ5MzluK1VuRWVRL3ZDV3hZa2Y2SXBFNG9Ea1g5YkFSSi9zQklQY1drRG9RRUVkc3lDMC83N0JPVDk5Wkwrei83dkJjb0JDZC8zYndLWC9TYjk5QUlDbEgxdWlBUUFBZ0F1QUFBSC9RV3dBQklBR3dDQ3NnRWNIUkVTT2JBQkVMQVUwQUN3QUVWWXNBSXZHN0VDSHo1WnNBQkZXTEFSTHh1eEVSOCtXYkFBUlZpd0N5OGJzUXNQUGxtd0FFVllzQTh2RzdFUER6NVpzZ0VDQ3hFU09iQUJMN0lGQWdzUkVqbXdCUyt3QVJDeURRRUtLMWdoMkJ2MFdiQUxFTElWQVFvcldDSFlHL1Jac0FVUXNoc0JDaXRZSWRnYjlGa3dNUUVoRXpNREZ4WVdCd1lFSXlFVElRTWpFek1CQXdVMk5qYzJKaWNCdFFKcmJQWmgvT0wrRHhEK3h2VDkzMjc5bFc3Mi9QWUMzbFVCRW9HdUR3NXhhd05GQW12OTBnRUI4Y1BPL2dKNi9ZWUZzUDBJL2hnQ0FveHphSHdFQUFFQW9BQUFCWmdGc0FBV0FGMnlBUmNZRVJJNUFMQUFSVml3RlM4YnNSVWZQbG13QUVWWXNBZ3ZHN0VJRHo1WnNBQkZXTEFSTHh1eEVROCtXYkFWRUxJQUFRb3JXQ0hZRy9SWnNnUVZDQkVTT2JBRUw3SU9BUW9yV0NIWUcvUlpzQUFRc0JQUXNCVFFNREVCSVFNMkZ4WVdCd01qRXpZbkppY21Cd01qRXlFM0lRVGgvaUJHZ29icTZ4aEw5MHdJQnhXK1pLOTk5dG4rbFNRRVFRVGsvcG9jQWdUMTEvNDRBY2xBTUk0R0F4ejlUQVRrekFELy93QW5BQUFGY1FjMkFpWUFMd0FBQVFjQWR3R2xBVFlBRXdDd0FFVllzQVV2RzdFRkh6NVpzQS9jTURFQS8vOEFKd0FBQlh3SFBRSW1BZHNBQUFFSEFFUUJnZ0U5QUJNQXNBQkZXTEFJTHh1eENCOCtXYkFMM0RBeEFQLy9BSnYvNXdWVEJ5UUNKZ0htQUFBQkJ3RnFBUlVCUFFBSkFMQUJMN0FVM0RBeEFBQUJBQ1grbUFWOEJiQUFDd0JJQUxBSkw3QUFSVml3QUM4YnNRQWZQbG13QUVWWXNBUXZHN0VFSHo1WnNBQkZXTEFHTHh1eEJnOCtXYkFBUlZpd0NpOGJzUW9QUGxteUFnRUtLMWdoMkJ2MFdiQUQwREF4QVRNRElSTXpBeUVESXhNaEFTTDMyZ0pzMnZmOS9say85ei8rUkFXdyt4b0U1dnBRL3BnQmFQLy8vNlFBQUFTdUJiQUNCZ0FsQUFBQUFnQWpBQUFFb1FXd0FBd0FGUUJlc2c4V0Z4RVNPYkFQRUxBSjBBQ3dBRVZZc0Fzdkc3RUxIejVac0FCRldMQUpMeHV4Q1E4K1diQUxFTElBQVFvcldDSFlHL1Jac2dNTENSRVNPYkFETDdBSkVMSVBBUW9yV0NIWUcvUlpzQU1Rc2hVQkNpdFlJZGdiOUZrd01RRWhBeGNXRmdjR0JDTWhFeUVCQXdVMk5qYzJKaWNFZmYxMlBmN2ovUkVRL3NmMC9kMzhBNEw4OGxZQkVvR3VEdzV3YXdUay9wOEJBZS9FMFA0RnNQMEkvaElDQXBCM2FYa0UvLzhBSndBQUJMd0ZzQUlHQUNZQUFQLy9BQzRBQUFTc0JiQUNCZ0dFQUFBQUF2K0UvcG9Ga1FXd0FBNEFGUUJWc2hJV0Z4RVNPYkFTRUxBTDBBQ3dBUyt3QUVWWXNBc3ZHN0VMSHo1WnNBQkZXTEFDTHh1eEFnOCtXYkFCRUxBRTBMQUNFTElOQVFvcldDSFlHL1Jac0JEUXNBYlFzQXNRc2hFQkNpdFlJZGdiOUZrd01RRWpFeUVESXhNWE5oSVRFeUVETXdVbEV5RURCd0lFL3VzKy9HQS83bHRsYzU0M2lBTjkyYlQ3OWdKZnQvNW1iaEZWL3BvQlp2NmFBakFEVXdFekFRNENWZnNhQkFRRUd2NGFRdjY4Ly84QUp3QUFCTG9Gc0FJR0FDa0FBQUFCLzZVQUFBZmdCYkFBRlFCOUFMQUFSVml3Q1M4YnNRa2ZQbG13QUVWWXNBMHZHN0VOSHo1WnNBQkZXTEFSTHh1eEVSOCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQVl2RzdFR0R6NVpzQUJGV0xBVUx4dXhGQTgrV2JJUUNRSVJFam13RUMreUFBRUtLMWdoMkJ2MFdiQUUwTElJRUFBUkVqbXdFQkN3QzlDeUV3QVFFUkk1TURFQkl3TWpFeU1CSVFFQklSTXpFek1ETXdFaEFRRWhCT1NqYnZadW5mNDUvcjRDV1A3U0FSdnBuV3IyYW9vQnR3RTUvZHNCTi83ZEFuVDlqQUowL1l3REV3S2QvYUFDWVAyZ0FtRDlUZjBEQUFFQUh2L3RCS2dGeFFBcEFJR3lCeW9yRVJJNUFMQUFSVml3RGk4YnNRNGZQbG13QUVWWXNCb3ZHN0VhRHo1WnNnQU9HaEVTT2JBQUw3SWZBQUZ4c3A4QUFWMnllZ0FCWGJKS0FBRmRzQTRRc2dZQkNpdFlJZGdiOUZteUNnNGFFUkk1c0FBUXNpY0JDaXRZSWRnYjlGbXlFeWNBRVJJNXNoME9HaEVTT2JBYUVMSWhBUW9yV0NIWUcvUlpNREVCTWpZM05pWW5KZ1lIQno0Q0Z4WVdCd1lGRmhZSEJnUUhCeVlrTnhjR0ZoY1dOamMyTHdJM0FuZCtvUXdNZlcxbm9oSDFDWTc0ak9ENERoSCsvV05jQnd6KzJlVTEwdjcvQi9NRWdtWit3UTRiMFNTMUl3TkplR3BlY0FJQ2NHRUJkN3BwQWdYWXVjOTRMcXhzdStzTUFRTG52d0ZrZVFJRWdXN0ZHUU1CeUFBQUFRQW5BQUFGZkFXd0FBa0FSUUN3QUVWWXNBQXZHN0VBSHo1WnNBQkZXTEFITHh1eEJ4OCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQVV2RzdFRkR6NVpzZ1FBQWhFU09iSUpBQUlSRWprd01RRXpBeU1UQVNNVE13TUVmZi85OTdMODYvNzk5N0lGc1BwUUEvNzhBZ1d3L0FFQS8vOEFKd0FBQlh3SEpBSW1BZHNBQUFFSEFXb0JWd0U5QUFrQXNBQXZzQTNjTURFQS8vOEFMZ0FBQlhzRnNBSUdBOEVBQUFBQi84b0FBQVY4QmJBQUVRQk5zZ1FTRXhFU09RQ3dBRVZZc0FBdkc3RUFIejVac0FCRldMQUJMeHV4QVE4K1diQUFSVml3Q1M4YnNRa1BQbG13QUJDeUF3RUtLMWdoMkJ2MFdiQUpFTElNQVFvcldDSFlHL1JaTURFQkF5TVRJUU1IQWdJSEl6YzNOalkzTnhNRmZQMzIyZjVTY1I1RS9NTllGaUorb1NvV2lnV3crbEFFNVAzMWt2N0wvdkFDeWdJSDFQQ0NBcGNBLy84QUp3QUFCczRGc0FJR0FERUFBUC8vQUNjQUFBV0hCYkFDQmdBc0FBRC8vd0JyLytjRklRWElBZ1lBTXdBQS8vOEFMZ0FBQllNRnNBSUdBWkVBQVAvL0FDY0FBQVVFQmJBQ0JnQTBBQUQvL3dCbC8rZ0ZEUVhIQWdZQUp3QUEvLzhBbkFBQUJTSUZzQUlHQURnQUFBQUJBSnYvNXdWVEJiQUFFQUJEc2dBUkVoRVNPUUN3QUVWWXNBRXZHN0VCSHo1WnNBQkZXTEFQTHh1eER4OCtXYkFBUlZpd0JpOGJzUVlQUGxteUFBRUdFUkk1c2dzQkNpdFlJZGdiOUZrd01RRUJJUUVHQmljaUp6Y1dOekkzTndFaEFwY0Jud0VkL1UxVXduOHZRUmMwSDI1RFJQN1hBUUlDdUFMNCsxV2Jnd0lIeUFjQmJId0VGZ0FEQUZiL3hBWVNCZXdBRndBZkFDa0FYcklWS2lzUkVqbXdGUkN3SGRDd0ZSQ3dJZEFBc0FvdnNCY3ZzZ0FYQ2hFU09iQUFMN0lNQ2hjUkVqbXdEQyt3Q2RDd0FCQ3dGTkN3REJDeUd3RUtLMWdoMkJ2MFdiQVVFTElkQVFvcldDSFlHL1Jac0NEUXNCc1FzQ0hRTURFQk1oWVNCd1lDQkNjbkJ5TTNJaVlDTnpZU0pCY1hOek1CQmhZWEZ4TWlCaVVETWpZM05pY21KaWNFREtMd2RCQVJ2ZjdYcXhRbzdTaWs3M1lRRXJzQktxd1dLdWI5SUJTUWxSV1R1dWdDa0pHMDZCZ0tDaENGYXdVa212N3hvYXorNlpnREFiL0FsZ0VOb2EwQkdKc0NBY2Y4M0t6SUJ3RURFZDdkL08vWnRreEZhbjBJQVAvLy84TUFBQVZIQmJBQ0JnQThBQUFBQVFBbC9xRUZmQVd3QUFzQU93Q3dDUyt3QUVWWXNBQXZHN0VBSHo1WnNBQkZXTEFFTHh1eEJCOCtXYkFBUlZpd0NpOGJzUW9QUGxteUFnRUtLMWdoMkJ2MFdiQUcwREF4QVRNRElSTXpBek1ESXhNaEFTTDMyZ0pzMnZmWnEzVGpQZnZ4QmJEN0dnVG0reHo5MVFGZkFBRUF4UUFBQldvRnNBQVFBRWF5QlJFU0VSSTVBTEFBUlZpd0FDOGJzUUFmUGxtd0FFVllzQWt2RzdFSkh6NVpzQUJGV0xBQkx4dXhBUTgrV2JJTkFRa1JFam13RFMreUJRRUtLMWdoMkJ2MFdUQXhBUU1qRXdZbkppWTNFek1EQmhZRU54TUZhdjMyYTVxdDV2QVpUUFpNRUdBQkJzNThCYkQ2VUFJK0xBUUM4OXdCeWY0MmdJSUdLZ0tvQUFBQkFDc0FBQWRqQmJBQUN3QklBTEFBUlZpd0FDOGJzUUFmUGxtd0FFVllzQU12RzdFREh6NVpzQUJGV0xBSEx4dXhCeDgrV2JBQVJWaXdDUzhic1FrUFBsbXlBUUVLSzFnaDJCdjBXYkFGMExBRzBEQXhBUU1oRXpNRElSTXpBeUVUQWgvWkFhM1o5OW9CcXRyMi9mbkYvQVd3K3hvRTV2c2FCT2I2VUFXd0FBRUFLLzZpQjJNRnNBQVBBRlFBc0FzdnNBQkZXTEFBTHh1eEFCOCtXYkFBUlZpd0F5OGJzUU1mUGxtd0FFVllzQWN2RzdFSEh6NVpzQUJGV0xBTkx4dXhEUTgrV2JJQkFRb3JXQ0hZRy9SWnNBWFFzQWJRc0FuUXNBclFzQUxRTURFQkF5RVRNd01oRXpNRE13TWpFeUVUQWgvWkFhM1o5OW9CcXRyMjI2VnkyVDM2RFB3RnNQc2FCT2I3R2dUbSt4TDk0QUZlQmJBQUFnQ0pBQUFGblFXd0FBd0FGUUJlc2dFV0Z4RVNPYkFCRUxBTjBBQ3dBRVZZc0FBdkc3RUFIejVac0FCRldMQUpMeHV4Q1E4K1diSURBQWtSRWptd0F5K3dBQkN5Q3dFS0sxZ2gyQnYwV2JBSkVMSVBBUW9yV0NIWUcvUlpzQU1Rc2hVQkNpdFlJZGdiOUZrd01STWhBeGNXRmdjR0JDTWhFeUVCQXdVeU5qYzJKaWVyQW5WZy9lSC9EeEQreC9iOTM5ditnQUlVVmdFU2dLOFBEVzF0QmJEOTB3RUI3TWJSL2dUdC9jditFZ0dSZDJkN0JBQURBQzRBQUFhOUJiQUFDZ0FUQUJjQWNMSUdHQmtSRWptd0JoQ3dEOUN3QmhDd0ZkQUFzQUJGV0xBSkx4dXhDUjgrV2JBQVJWaXdGaThic1JZZlBsbXdBRVZZc0Fjdkc3RUhEejVac0FCRldMQVVMeHV4RkE4K1diSUJDUWNSRWptd0FTK3dCeEN5RFFFS0sxZ2gyQnYwV2JBQkVMSVRBUW9yV0NIWUcvUlpNREVCRnhZV0J3WUVJeUVUTXdNREJUWTJOelltSndFakV6TUJ3ZjdqL1JFUS9zZjAvZDM5OTRSV0FSS0JyZzhPY0dzQzlmYjk5Z09EQVFIdnhORCtCYkQ5Q1A0U0FnS1FkMmw1QlAxSkJiQUFBZ0FqQUFBRWxBV3dBQW9BRXdCUXNnMFVGUkVTT2JBTkVMQUgwQUN3QUVWWXNBa3ZHN0VKSHo1WnNBQkZXTEFITHh1eEJ3OCtXYklCQ1FjUkVqbXdBUyt3QnhDeURRRUtLMWdoMkJ2MFdiQUJFTElUQVFvcldDSFlHL1JaTURFQkZ4WVdCd1lFSXlFVE13TURCVFkyTnpZbUp3RzIvdVA5RVJEK3gvVDkzZjMzaEZZQkVvR3VEdzV3YXdPREFRSHZ4TkQrQmJEOUNQNFNBZ0tRZDJsNUJBQUFBUUJQLytrRTl3WElBQ0FBaGJJT0lTSVJFamtBc0FCRldMQVVMeHV4RkI4K1diQUFSVml3SFM4YnNSMFBQbG15QXdFS0sxZ2gyQnYwV2JJSUZCMFJFamw4c0FndkdMSXdDQUZkc25JSUFWMnk0Z2dCWGJKQ0NBRmRzbUFJQVYyeTBBZ0JYYklBQ0FGeHNnY0JDaXRZSWRnYjlGbXdGQkN5RFFFS0sxZ2gyQnYwV2JJUkZCMFJFam15SUIwVUVSSTVNREVCRmhZWEZqWTNCVGNoTnpZbUp5WUdCd2MyQUJjZUFoY1dBZ0lFSnlZQUp3RkRCMzU4bE00Ni9nVWtBZTRJQTROK2lyQWo5U2dCUyt1TzFIa0pCa2U5L3V5bjN2NzlDQUhhbTRnREJkYnNBY3hrbjdZRUJKcVVBZVlCRkFRRGZ2R1llUDV6L3RHZEF3UUJCZVVBQUFJQU12L25CdmtGeHdBWUFDZ0FnN0lOS1NvUkVqbXdEUkN3Sk5BQXNBQkZXTEFJTHh1eENCOCtXYkFBUlZpd0VDOGJzUkFmUGxtd0FFVllzQVl2RzdFR0R6NVpzQUJGV0xBQUx4dXhBQTgrV2JJS0NBWVJFamw4c0FvdkdMSWZDZ0Z4dEdBS2NBb0NYYklFQVFvcldDSFlHL1Jac0JBUXNoNEJDaXRZSWRnYjlGbXdBQkN5SlFFS0sxZ2gyQnYwV1RBeEJTWUFFVGNqQXlNVE13TXpOaEkzTmhjV0FCY1dBZ0lIQmhNM05pWW1KeVlHQWdjR0ZoY1dFamNFTCtQKy9BRzRhZmI5OW5Lc0orK3ViM3pZQVFFTUJqbUxaN0xhQ1FZeWQxdCt3M2tLQ29TRXJlRWpGQVVCUEFFSkovMmpCYkQ5Y2VJQlZFUXNBd1QrM3ZkOC9yLys4MXFjQXhocWJibGhBd1NXL3M3bnQ5SUVCUUVPOVFBQy83QUFBQVRUQmJFQURnQVhBR0d5RWhnWkVSSTVzQklRc0F2UUFMQUFSVml3RFM4YnNRMGZQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFETHh1eEF3OCtXYklURFFBUkVqbXdFeSt5QVFFS0sxZ2gyQnYwV2JJRkV3RVJFam13RFJDeUZBRUtLMWdoMkJ2MFdUQXhJUk1oQVNFQkppWTNQZ0l6QlFNQkJoWVhGeE1uSWdZQzMxLys5LzZRL3VzQnNXZFlDZ3VYL3A0QjZmMzl5ZzlyYy9GWjE0YXRBaUQ5NEFKdlFjVjNqYzFyQWZwUUErRnhod1FCQWdBQ2kvLy9BQ0wvNkFQY0JGQUNCZ0JGQUFBQUFnQkQvK1lFWVFZVEFCc0FLd0Jpc2hnc0xSRVNPYkFZRUxBZDBBQ3dBRVZZc0JNdkc3RVRJVDVac0FCRldMQUdMeHV4Qmc4K1diSUFFd1lSRWptd0FDK3lGd0FURVJJNXNoRVRGeEVTT2JJYUFBWVJFam15SEFFS0sxZ2gyQnYwV2JBR0VMSWxBUW9yV0NIWUcvUlpNREVCRmhJSEJnQW5MZ0kzTnpVM0VnQTNOelkzTXc0Q0JBWUhOaGNtQmdZSEJoY1dGaGNXTmpjM05pWUNucnJQRWhiKzBlQ0x4MXNRQWdveEFTUG5YcE1Wd1FoU212N1h2MEdlZ0U5OVRRc0hCQWRpV0hXZ0ZRSU5ad1ArQlA3czEvZit6Z1FFanZtV0ZRTkxBVkFCampJU0hXWmtnRk01cEplWXhBSk5qRnRLT21SekF3T3dvQldMb0FBQUF3QWlBQUFFRmdRNkFBNEFGd0FmQUk2eUdTQWhFUkk1c0JrUXNBN1FzQmtRc0JIUUFMQUFSVml3QVM4YnNRRWJQbG13QUVWWXNBQXZHN0VBRHo1WnNoZ0FBUkVTT2JBWUw3S01HQUZkdEY4WWJ4Z0NjYlR2R1A4WUFuRzB2eGpQR0FKZHRCd1lMQmdDY2JKYUdBRmRzZzhIQ2l0WUlkZ2I5Rm15Q0E4WUVSSTVzQUFRc2hBQkNpdFlJZGdiOUZtd0FSQ3lId0VLSzFnaDJCdjBXVEF4TXhNRkZoY1dCd1lIRmhZSEJnWUhBd01YTmpZM05pWW5KeGN5TnpZbUp5Y2l2QUdlbEdLa0NRclFWR0VDQmVuTXpDLzBZVzhKQ2tkUzhyYlVGZ2xOWk1zRU9nRUVLMG1xb0ZFWmVsYVVwZ01CemY3ekFRTktRVGxEQTY4Qmdqby9Bd0VBQVFBWUFBQURpUVE2QUFVQUt3Q3dBRVZZc0FRdkc3RUVHejVac0FCRldMQUNMeHV4QWc4K1diQUVFTElBQVFvcldDSFlHL1JaTURFQklRTWpFeUVEWnY0NW11MjhBclVEZHZ5S0JEb0FBditGL3I0RVpBUTZBQTRBRkFCYnNoSVZGaEVTT2JBU0VMQUUwQUN3REMrd0FFVllzQVF2RzdFRUd6NVpzQUJGV0xBS0x4dXhDZzgrV2JJQUFRb3JXQ0hZRy9SWnNBYlFzQWZRc0F3UXNBblFzQWNRc0EvUXNCRFFzQVFRc2hFQkNpdFlJZGdiOUZrd01UYzJOamNUSVFNekF5TVRJUU1qRXdVbEV5RURBakZxZ1I5T0F0dWFrVnJzT1AxaE9QRmJBV2dCbFhiKytUWS92Mkh2cWdHQi9JajkvQUZDL3I0Q0F3TUVBcWYrOWY3MC8vOEFPLy9xQkFJRVVRSUdBRWtBQUFBQi82MEFBQVp5QkRvQUZRQ0NBTEFBUlZpd0NTOGJzUWtiUGxtd0FFVllzQTB2RzdFTkd6NVpzQUJGV0xBUkx4dXhFUnMrV2JBQVJWaXdBaThic1FJUFBsbXdBRVZZc0FZdkc3RUdEejVac0FCRldMQVVMeHV4RkE4K1diSVFFUUlSRWptd0VDK3lqeEFCWGJJQUFRb3JXQ0hZRy9SWnNBVFFzZ2dRQUJFU09iQVFFTEFMMExJVEFCQVJFamt3TVFFakF5TVRJd0VoQVFNaEV6TVRNd016QVNFQkV5RUQvNE5NN1V4ei9zTCt6d0hJNndFVHBIUks3VXBuQVRrQk1QNVQrUDdvQWJQK1RRR3ovazBDUHdINy9sY0JxZjVYQWFuOThQM1dBQUFCQUJiLzZRTzhCRkFBS1FDanNoa3FLeEVTT1FDd0FFVllzQ1l2RzdFbUd6NVpzQUJGV0xBS0x4dXhDZzgrV2JJWkpnb1JFam13R1MrMDd4bi9HUUp4dEI4Wkx4a0NjYksvR1FGeHRGOFpieGtDY2JTL0djOFpBbDJ5akJrQlhiSmFHUUZkc2hZSENpdFlJZGdiOUZteUF4WVpFUkk1c0FvUXNoRUJDaXRZSWRnYjlGbXlEaFlSRVJJNXRBTU9FdzRDWGJBbUVMSWZBUW9yV0NIWUcvUlpzaUlaSHhFU09iUU1JaHdpQWwwd01RRUdCZ2NXRmdjT0FpY21KamN6QmhZek1qWTNOaWNuTnhjMk5qYzJKaU1tQmdjSE5qWVhIZ0lEdGdWZVpraEZCQVY4MTMydzJ3VHBBbUpRVjNrTEZhVzRINXhWWndrSFQwUkxjdy90RFBtNGM3QmNBeHBLZGpNaGZVOXBsMUVEQXIyWFJWWlZTSWNGQWE4QkFrbEVQMGNDVFVFQmxMVUNBa3FKQUFBQkFCa0FBQVJJQkRvQUNRQkZBTEFBUlZpd0FDOGJzUUFiUGxtd0FFVllzQWN2RzdFSEd6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdCUzhic1FVUFBsbXlCQWNDRVJJNXNna0hBaEVTT1RBeEFUTURJeE1CSXhNekF3TlU5THp0ZlAzeTlMenRmQVE2KzhZQ3d2MCtCRHI5UGdELy93QVpBQUFFU0FYYUFpWUIrd0FBQVFjQmFnQ2MvL01BQ1FDd0FDK3dEZHd3TVFBQUFRQWlBQUFFZ1FRNkFBd0FhQUN3QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFJTHh1eENCcytXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQXN2RzdFTER6NVpzZ1lDQkJFU09YeXdCaThZdE5NRzR3WUNYYlJEQmxNR0FsMnlFd1lCY2JJQkFRb3JXQ0hZRy9SWnNnb0JCaEVTT1RBeEFTTURJeE16QXpNQklRRUJJUUhZZmt2dHZPMUxYZ0Z0QVRiK0h3RTAvdDBCclA1VUJEcitVQUd3L2U3OTJBQUIvNy8vL3dSSkJEb0FFQUJOc2dRUkVoRVNPUUN3QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFCTHh1eEFROCtXYkFBUlZpd0NDOGJzUWdQUGxtd0FCQ3lBd0VLSzFnaDJCdjBXYkFJRUxJS0FRb3JXQ0hZRy9SWk1ERUJBeU1USVFNR0JpY2pOemMyTmpjM0V3Ukp1KzZhL3Rwak5jeWZVaFlrVzNNZkQyQUVPdnZHQTNiK1BPYk5BY2tEQ0pldlVnSE9BQUVBSWdBQUJab0VPZ0FNQUZrQXNBQkZXTEFCTHh1eEFScytXYkFBUlZpd0N5OGJzUXNiUGxtd0FFVllzQU12RzdFRER6NVpzQUJGV0xBR0x4dXhCZzgrV2JBQVJWaXdDUzhic1FrUFBsbXlBQXNERVJJNXNnVUxBeEVTT2JJSUN3TVJFamt3TVFFQklRTWpFd0VqQXdNakV5RUNyd0c5QVM2ODdYcitiS0ttZ08yOEFTVUJMUU1OKzhZQ3V2MUdBdHI5SmdRNkFBRUFHUUFBQkVjRU9nQUxBSDRBc0FCRldMQUdMeHV4QmhzK1diQUFSVml3Q2k4YnNRb2JQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFFTHh1eEJBOCtXYklKQ2dBUkVqbXdDUyswdnduUENRSmRzcjhKQVhHMEx3ay9DUUp5c2w4SkFYSzA3d24vQ1FKeHRCOEpMd2tDY2JLUENRRmR0SThKbndrQ2NySUNBUW9yV0NIWUcvUlpNREVoSXhNaEF5TVRNd01oRXpNRGkrNU0vbXBNN3J6dVR3R1hUdTRCdGY1TEJEcitQUUhEQVAvL0FEbi82QVFuQkZJQ0JnQlRBQUFBQVFBWkFBQUVTQVE2QUFjQU9BQ3dBRVZZc0FZdkc3RUdHejVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3QkM4YnNRUVBQbG13QmhDeUFnRUtLMWdoMkJ2MFdUQXhJU01USVFNakV5RURqTzZhL21tYTdyd0Rjd04yL0lvRU9nRC8vLy9IL21BRURRUlNBZ1lBVkFBQUFBRUFPUC9wQSs0RVVnQWNBRXV5QUIwZUVSSTVBTEFBUlZpd0VTOGJzUkViUGxtd0FFVllzQWd2RzdFSUR6NVpzZ0FCQ2l0WUlkZ2I5Rm15QkJFSUVSSTVzaFVJRVJFU09iQVJFTElZQVFvcldDSFlHL1JaTURFbEZqWTNOdzRDSnk0Q056YytBaGNXRmhVak5DWW5KZ1lIQWdIb1ZZTVM0QXVGMEhHTHhGb1BBeEdWN0pDdzB0NWJWb3VnQmdldEFtZFRBV3V3WWdNQ2pQZVlJNTMvaWdRRTRiUmRkZ1FFOU43Kzh3QUJBRk1BQUFRSUJEb0FCd0F4QUxBQVJWaXdCaThic1FZYlBsbXdBRVZZc0FJdkc3RUNEejVac0FZUXNnQUJDaXRZSWRnYjlGbXdCTkN3QmRBd01RRWhBeU1USVRjaEErYitySnZ0bXY2dklnT1RBM244aHdONXdmLy8vN1grUlFRU0JEb0NCZ0JkQUFBQUF3QTkvbUFGVVFZQUFDRUFMQUE0QUh5eUV6azZFUkk1c0JNUXNDblFzQk1Rc0RUUUFMQURMN0FBUlZpd0FDOGJzUUFiUGxtd0FFVllzQWN2RzdFSEd6NVpzQUJGV0xBVUx4dXhGQkUrV2JBQVJWaXdHQzhic1JnUFBsbXdBRVZZc0JFdkc3RVJEejVac0FBUXNqWUJDaXRZSWRnYjlGbXdKdEN3R0JDeU1RRUtLMWdoMkJ2MFdiQXIwREF4QVJZWEV6TUROaGNXRmdjR0J3Y09BaWNtSndNakV3WWpJaVluSmpjM05oSTJBVFluSmljbUJ3TVdNeklCQmhjV0Z4WTNFeVlqSmdNQ0dFUkZXTzFhUmtpWW53RUJCZ1VYaEx4eFQwaFM3VkkrUnBLaEF3RUdCaHFCdndLNUNRRUZrQ014Z3ljbTV2MEVDUU1LaUJnM2hDUWgxenNFVUFJZEFjLytMU0VDQXZIUlFEZ2tvL0J5QXdFZy9sVUJweG5adUR3M0s3UUJCSDc5d2xzNTJRY0NEUDAzQ3dGSFZ6QzBCd0VJQXN3TEJQNlpBUC8vLzdrQUFBUVRCRG9DQmdCY0FBQUFBUUFaL3I4RVNBUTZBQXNBT3dDd0NDK3dBRVZZc0FBdkc3RUFHejVac0FCRldMQUVMeHV4QkJzK1diQUFSVml3Q2k4YnNRb1BQbG15QWdFS0sxZ2gyQnYwV2JBRzBEQXhFek1ESVJNekF6TURJeE1oMWU2YkFaaWE3cHVRYmRrNC9Pb0VPdnlJQTNqOGlQMzlBVUVBQUFFQWNBQUFCQ0FFT3dBU0FFaXlEaE1VRVJJNUFMQUFSVml3Q0M4YnNRZ2JQbG13QUVWWXNCRXZHN0VSR3o1WnNBQkZXTEFBTHh1eEFBOCtXYklPRVFBUkVqbDhzQTR2R0xJRUFRb3JXQ0hZRy9SWk1ERWhJeE1HSXlZbU54TXpBd1lYRmhjV054TXpBMlR0Umx0aHdzOFROZTQyQmdVTWtsTnlZZTBCYXhZQzNMd0JUUDZ6TUNaNUJnTVhBZzBBQUFFQUdRQUFCaW9FT2dBTEFFZ0FzQUJGV0xBQUx4dXhBQnMrV2JBQVJWaXdBeThic1FNYlBsbXdBRVZZc0Fjdkc3RUhHejVac0FCRldMQUpMeHV4Q1E4K1diSUJBUW9yV0NIWUcvUlpzQVhRc0FiUU1ERUJBeUVUTXdNaEV6TURJUk1CdzVzQlJwdnRtZ0ZIbXUyOCtxdThCRHI4aUFONC9JZ0RlUHZHQkRvQUFRQVMvcjhHUEFRNkFBOEFTd0N3REMrd0FFVllzQUF2RzdFQUd6NVpzQUJGV0xBREx4dXhBeHMrV2JBQVJWaXdCeThic1FjYlBsbXdBRVZZc0Ewdkc3RU5EejVac2dFQkNpdFlJZGdiOUZtd0JkQ3dDZEF3TVFFRElSTXpBeUVUTXdNekF5TVRJUk1CdTVzQlI1cnRtZ0ZIbSt5YXRHM1pPZnJqdXdRNi9JZ0RlUHlJQTNqOGlQMzlBVUVFT2dBQUFnQlBBQUFFcGdRNkFBd0FGUUJlc2d3V0Z4RVNPYkFNRUxBTjBBQ3dBRVZZc0Fzdkc3RUxHejVac0FCRldMQUhMeHV4Qnc4K1diSUJDd2NSRWptd0FTK3dDeEN5Q1FFS0sxZ2gyQnYwV2JBSEVMSVBBUW9yV0NIWUcvUlpzQUVRc2hVQkNpdFlJZGdiOUZrd01RRVhGaFlIQmdRaklSTWhOeUVEQXhjMk5qYzJKaWNDVWRhd3p3a0wvdnpML2lHYS90RWlBaHhkUGRoY2ZBMExURXdDNGdFRXdxR3AwUU4yeFAzbC9xTUJBbDVUVFZrRUFBQURBQ0lBQUFYeEJEb0FDZ0FUQUJjQWJiSUNHQmtSRWptd0FoQ3dFZEN3QWhDd0ZkQUFzQUJGV0xBSkx4dXhDUnMrV2JBQVJWaXdGaThic1JZYlBsbXdBRVZZc0Fjdkc3RUhEejVac0FCRldMQVVMeHV4RkE4K1diSUJCd2tSRWptd0FTK3lDd0VLSzFnaDJCdjBXYkFIRUxJTkFRb3JXQ0hZRy9SWk1ERUJGeFlXQndZRUl5RVRNd01ERnpZMk56WW1Kd0VqRXpNQmo5YXd6d2tML3Z6TC9pRzg3VjA5MkZ4OERRdE5Td0xVN2J6dEF1SUJCTUtocWRFRU92M2wvcU1CQWw1VFRWa0UvZUlFT2dBQ0FDSUFBQVBrQkRvQUNnQVRBRTJ5RFJRVkVSSTVzQTBRc0FmUUFMQUFSVml3Q1M4YnNRa2JQbG13QUVWWXNBY3ZHN0VIRHo1WnNnRUhDUkVTT2JBQkw3SUxBUW9yV0NIWUcvUlpzQWNRc2cwQkNpdFlJZGdiOUZrd01RRVhGaFlIQmdRaklSTXpBd01YTmpZM05pWW5BWS9Xc004SkMvNzh5LzRodk8xZFBkaGNmQTBMVFVzQzRnRUV3cUdwMFFRNi9lWCtvd0VDWGxOTldRUUFBQUVBSS8vb0E5UUVVQUFmQUhTeUFDQWhFUkk1QUxBQVJWaXdDQzhic1FnYlBsbXdBRVZZc0JFdkc3RVJEejVac0FnUXNnQUJDaXRZSWRnYjlGbXlIQWdSRVJJNWZMQWNMeGl5VXh3QlhiSkFIQUZkc2dNY0FCRVNPYkliQndvcldDSFlHL1Jac0JFUXNoZ0JDaXRZSWRnYjlGbXlGUnNZRVJJNXNsTVZBVjB3TVFFbUJnY0hQZ0lYSGdJSEJ3WUNCaWNtSmpjWEJoWVhGaE1GTnlFMkpnSXNWSDBRM3dtRHpuS0l2VmNQQXhLVzdvNnIwQWJmQlZkUngxeityaDRCUXdoZEE0d0NhVkVCYkxCaEFRU00rSllibi83K2pRUUU0TE1CVzNZRUJnRXFBYWgra3dBQUFnQWsvK2tHRUFSVEFCY0FKd0NMc2lZb0tSRVNPYkFtRUxBUDBBQ3dBRVZZc0JZdkc3RVdHejVac0FCRldMQUVMeHV4QkJzK1diQUFSVml3RkM4YnNSUVBQbG13QUVWWXNBNHZHN0VPRHo1WnNnQVdGQkVTT2JBQUw3UWZBQzhBQW5HeXZ3QUJjYktQQUFGZHNsOEFBWEt5RXdFS0sxZ2gyQnYwV2JBT0VMSWRBUW9yV0NIWUcvUlpzQVFRc2lRQkNpdFlJZGdiOUZrd01RRXpOaVFYSGdJSEJ3WUNCd1luTGdJM0J3TWpFek1CQmhjV0ZoY1dOamMzTkNZbkpnWUhBWUc3UndFaHdJdkVYUkFDRnJTTlpIcCt4V01JeTAvdHZPMEJUUVlEQTJKYWQ2b1pCMkZnZWFjWkFvZmI4UVFFalAyWUZxNys3ejh0QXdOOTE0SUIvandFT3YzUk56eHBnQU1Gd2F4aGhJOEVBOEd2QUFBQy83WUFBQVFXQkRzQURRQVdBR0d5RkJjWUVSSTVzQlFRc0FUUUFMQUFSVml3QUM4YnNRQWJQbG13QUVWWXNBRXZHN0VCRHo1WnNBQkZXTEFGTHh1eEJROCtXYklTQUFFUkVqbXdFaSt5QXdFS0sxZ2gyQnYwV2JJSEF4SVJFam13QUJDeUV3RUtLMWdoMkJ2MFdUQXhBUU1qRXlNQklRRW1KamMySkRNREJoWVhGeE1uQmdZRUZyenNSZFArMnY3OEFVNVFUUVVLQVFqRjZ3dE9SUE0yeTF4L0JEcjd4Z0dOL25NQnVpMldXNkhDL3BkQVRnSUJBVGdCQWwvLy93QTcvK29FQWdZQUFpWUFTUUFBQVFjQVJBQ2NBQUFBRXdDd0FFVllzQWt2RzdFSkd6NVpzQ0hjTURFQS8vOEFPLy9xQkFJRnpRSW1BRWtBQUFFR0FHdHBBQUFNQUxBSkw3QXgzTEFnMERBeEFBRUFEZjVIQS9rR0FBQWpBSVd5QXlRbEVSSTVBTEFoTDdBQVJWaXdCQzhic1FRYlBsbXdBRVZZc0Fzdkc3RUxFVDVac0FCRldMQWFMeHV4R2c4K1diYWZJYThodnlFRFhiSXZJUUZkc2c4aEFWMnlJeG9oRVJJNXNDTXZzQi9Rc2h3SENpdFlJZGdiOUZtd0FkQ3lBaG9FRVJJNXNBc1FzaEFCQ2l0WUlkZ2I5Rm13QkJDeUZ3RUtLMWdoMkJ2MFdUQXhBU0VITmhjV0ZnY0RCZ1lqSmljM0ZqTXlOeE0ySnlZbkpnY0RJeE1qTnpNM013Y2hBc3orL2pPSHE1bVhFM29ZeWFWRFFoODFLMzhnZkFVRURZT0Zab2Z0ejVrZW1SM3VIZ0VFQkszcWpnUUMwOEQ5Q2JYRkFoREJFTUlDN3lzbGVnTUNoUHo2QksycnFLai8vd0FZQUFBRG1BWHpBaVlCOWdBQUFRY0Fkd0RHLy9NQUV3Q3dBRVZZc0FRdkc3RUVHejVac0FqY01ERUFBQUVBTy8vb0EvWUVWQUFmQUdLeUdDQWhFUkk1QUxBQVJWaXdFQzhic1JBYlBsbXdBRVZZc0Fndkc3RUlEejVac2dBQkNpdFlJZGdiOUZteUdoQUlFUkk1ZkxBYUx4aXlIQWNLSzFnaDJCdjBXYklEQUJ3UkVqbXdFQkN5RndFS0sxZ2gyQnYwV2JJVUdoY1JFamt3TVNVV05qYzNEZ0luTGdJM054SUFGeFlXQnlNMEppY21CZ2NsQnlFR0ZnSGxWb01VM3d1RTFYR012MVlRQWgwQk1ONnd6Z0xkWEZOb2t5MEJXQjcrdHcxZnJRSm5Vd0ZycjJRREJJcjNtQlFCQWdFMkJnVGh0R0Z5QkFPTW1nR29nSk1BLy84QUhQL3BBOFFFVUFJR0FGY0FBUC8vQUI4QUFBSUpCZGdDQmdCTkFBRC8vd0FpQUFBQzRRWEdBaVlBOUFBQUFRY0FhLzllLy9rQURBQ3dBaSt3RmR5d0JOQXdNZi8vL3d6K1JnSCtCZGdDQmdCT0FBQUFBdis5QUFBR1JnUTZBQmNBSHdCNXNnb2dJUkVTT2JBS0VMQVowQUN3QUVWWXNBQXZHN0VBR3o1WnNBQkZXTEFJTHh1eENBOCtXYkFBUlZpd0R5OGJzUThQUGxteUFnQUlFUkk1c0FJdnNBQVFzZ29CQ2l0WUlkZ2I5Rm13RHhDeUVRRUtLMWdoMkJ2MFdiQUlFTElhQVFvcldDSFlHL1Jac0FJUXNoOEJDaXRZSWRnYjlGa3dNUUVERnhZV0J3WUVJeUVUSVFNQ0JnY2pOemMyTmpjM0V3RURGelkyTnpZbkJEQkIxckxQQ1F2L0FNeitJWnIrOFVzM3lhWmtGU1ZjYng0U1lBSjdOOWhaZlEwU293UTYvb2NCQmJlWnBjWURkdjZyL3RYeEJja0RDSmFkWlFITy9jWCt3UUVDWEUrSUNnQUNBQmtBQUFaY0JEb0FFZ0FiQUlLeUFSd2RFUkk1c0FFUXNCUFFBTEFBUlZpd0FpOGJzUUliUGxtd0FFVllzQkV2RzdFUkd6NVpzQUJGV0xBTEx4dXhDdzgrV2JBQVJWaXdEeThic1E4UFBsbXlBUkVMRVJJNXNBRXZzZ1FSQ3hFU09iQUVMN0FCRUxJTkFRb3JXQ0hZRy9SWnNBUVFzaE1CQ2l0WUlkZ2I5Rm13Q3hDeUZBRUtLMWdoMkJ2MFdUQXhBU0VUTXdNWEZoWUhCZ1FqSVJNaEF5TVRNd0VERnpZMk56WW1Kd0Y3QVpkSDdrTFdzczhKQ2Y3L3pmNGhVLzVxVSs2ODdnSWhPTmhkZXdzS1NsRUNud0diL29jQkJiZVpwTWNCM2Y0akJEcjl4ZjdCQVFKZlRFQk5CUUFBQVFBTkFBQUQrUVlBQUJvQWM3SURHeHdSRWprQXNCZ3ZzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdFUzhic1JFUFBsbXdBRVZZc0Frdkc3RUpEejVac3I4WUFWMnlMeGdCWGJJUEdBRmRzaG9SR0JFU09iQWFMN0FXMExJVEJ3b3JXQ0hZRy9SWnNBSFFzZ0lFRVJFU09iQUVFTElPQVFvcldDSFlHL1JaTURFQklRYzJGeFlXQndNakV6WW5KaWNtQndNakV5TTNNemN6QnlFQzRmN2tMb2VzbXBVVGRPMTJCUU1OZzRSb2grM1FoeDZISE80ZkFSa0V0ZktPQkFMV3ZmMUlBcnNySlhvREFvVDgrZ1MxcXFHaEFQLy9BQ0lBQUFTQkJmSUNKZ0g5QUFBQkJ3QjNBVVQvOGdBVEFMQUFSVml3QkM4YnNRUWJQbG13RDl3d01RRC8vd0FaQUFBRVNBWHpBaVlCK3dBQUFRY0FSQURILy9NQUV3Q3dBRVZZc0Fndkc3RUlHejVac0F2Y01ERUEvLy8vdGY1RkJCSUY1d0ltQUYwQUFBRUdBV3BVQUFBSkFMQUJMN0FUM0RBeEFBQUJBQm4rbWdSSUJEb0FDd0JGQUxBSUw3QUFSVml3QUM4YnNRQWJQbG13QUVWWXNBTXZHN0VER3o1WnNBQkZXTEFGTHh1eEJROCtXYkFBUlZpd0NTOGJzUWtQUGxteUFRRUtLMWdoMkJ2MFdUQXhBUU1oRXpNRElRTWpFeUVUQWNPYkFaaWE3cnordno3dVAvNjd2QVE2L0lnRGVQdkcvcG9CWmdRNkFBQUJBR0QvNWdjdUJiQUFJd0Jnc2dZa0pSRVNPUUN3QUVWWXNBQXZHN0VBSHo1WnNBQkZXTEFOTHh1eERSOCtXYkFBUlZpd0dDOGJzUmdmUGxtd0FFVllzQVF2RzdFRUR6NVpzQUJGV0xBSkx4dXhDUTgrV2JJSEFBUVJFam15RkFFS0sxZ2gyQnYwV2JBZjBEQXhBUU1HQkNjbUppY0dKeVltTnhNekF3WVhGaFlYRmpZM0V6TURCaGNXRmhjV05qY1RCeTZ2SGY3dnpteWdKWTdhdTg4VnJ2ZXZCUU1GUzBOa2lSU3YrNjhGQlFkUVJWK0JGYThGc1B2OTBQY0VBbGRNcVFRRStzUUVCUHY3S2l0SVZ3TUVnM2dFQmZ2N0xTdExVUU1EZjNzRUJRQUFBUUJFLytZR0hnUTZBQ0lBWExJWEl5UVJFamtBc0FCRldMQUFMeHV4QUJzK1diQUFSVml3RFM4YnNRMGJQbG13QUVWWXNCY3ZHN0VYR3o1WnNBQkZXTEFKTHh1eENROCtXYkFFMExBRUw3SUhGd2tSRWptd0NSQ3lFd0VLSzFnaDJCdjBXYkFlMERBeEFRTUdCaWNtSmljR0p5WW1OeE16QXdjVUZoY1dOamNUTXdNR0Z4WVdGeFkyTnhNR0huTWM4cmRiamlLQ3VxbXlFM1B0Y2dRNE9GTjBFM1B1Y2dRQ0FrSTdUMmdRY3dRNi9WTEU0Z1FDU2tLUkJBVG10Z0t2L1ZCSFExRURCWE53QXJEOVVDWW1RMDRCQTNackFyQUFBZ0FqQUFBRWxBV3dBQklBR3dCMHNoVWNIUkVTT2JBVkVMQUowQUN3QUVWWXNBOHZHN0VQSHo1WnNBQkZXTEFKTHh1eENROCtXYklTQ1E4UkVqbXdFaSt5QUFjS0sxZ2gyQnYwV2JJRER3a1JFam13QXkrd0FCQ3dDOUN3RE5Dd0VoQ3dEZEN3Q1JDeUZRRUtLMWdoMkJ2MFdiQURFTEliQVFvcldDSFlHL1JaTURFQkl3Y1hGaFlIQmdRaklSTWpOek0zTXdjekFRTUZOalkzTmlZbkFySFpJdjdqL1JFUS9zZjAvZDIrdXg2N0lmY2kydjdFVmdFU2dhNFBEbkJyQkVmRUFRSHZ4TkQrQkVlcXY3Lzl4LzRTQWdLUWQybDVCQUFDQUNILy9BUHBCaGdBRWdBYkFIR3lGUndkRVJJNXNCVVFzQVBRQUxBQVJWaXdEeThic1E4aFBsbXdBRVZZc0Frdkc3RUpEejVac2hJUENSRVNPYkFTTDdJQUJ3b3JXQ0hZRy9SWnNnSVBDUkVTT2JBQ0w3QUFFTEFMMExBU0VMQU4wTEFDRUxJVEFRb3JXQ0hZRy9SWnNBa1FzaFFCQ2l0WUlkZ2I5Rmt3TVFFaEF4Y1dGZ2NHQkNjaEV5TTNNeE16QXlFQkF4YzJOamMySmljQzQvN25Oc2U1MVF3Ti92VEMvaCs4cVI2b051MDJBUnIrY2tQWllId0xDa1pQQkRyK3lRRUJ6S20yMmdRRU9xc0JNLzdOL1Z2K2dnSUNjRlpNWmdVQUFRQXIvK2tHM3dYS0FDWUFpYkljSnlnUkVqa0FzQUJGV0xBbEx4dXhKUjgrV2JBQVJWaXdCQzhic1FRZlBsbXdBRVZZc0NNdkc3RWpEejVac0FCRldMQWJMeHV4R3c4K1diSUFKU01SRWptd0FDK3lCd1FiRVJJNXNBUVFzZ3NCQ2l0WUlkZ2I5Rm13QUJDd0R0Q3dBQkN5SWdFS0sxZ2gyQnYwV2JBUjBMQWJFTElWQVFvcldDSFlHL1Jac2hnYkJCRVNPVEF4QVJjU0FCY1dFaGNqSmlZbkpnWUhKUWNoQndZV0Z3UVROd1lBSnk0Q0p5WTNCd01qRXpNQnRLWlFBVjM2MlBzTDlRVjVkNVhTUEFIaUl2NHJDZzE5ZndFWFQvWW4vcTd3aWRGNEJnUU90WEgyL1BjRFR3RUJNZ0ZLQlFUKyt1eWNpd01GeitFQncyU3F3Z1FMQVMwQjVQN3lCQU4rNnBKUlVnSDlkQVd3QUFBQkFCbi82QVdrQkZNQUpnQ1ZzZzBuS0JFU09RQ3dBRVZZc0NZdkc3RW1HejVac0FCRldMQUVMeHV4QkJzK1diQUFSVml3SXk4YnNTTVBQbG13QUVWWXNCNHZHN0VlRHo1WnNnNGVCQkVTT1h5d0RpOFlzbElPQVYyeVFBNEJYYkFCMExBRUVMSUxBUW9yV0NIWUcvUlpzZ2dPQ3hFU09iQU9FTElQQndvcldDSFlHL1Jac0I0UXNoWUJDaXRZSWRnYjlGbXlHUllQRVJJNXNBOFFzQ0hRTURFQk16WWtGeFlXQnlNMEppY21BeVVISVFZWEZoY1dGeFkyTnpjT0FpY21BamNIQXlNVE13Rnpqa1VCSE1PdjBBTGRXVmJSVmdGNUh2NldCUVVMU2lVNldJRVQ0QXVJMDNERjRSS2hUdTY4N2dKeDdmVUZCT0MxWDNRRUJ2N2VBYXN5TW13d0dBRUNhVkVCYkxCaUF3UUJFY2NCL2pvRU9nQUMvNjRBQUFTRUJiQUFDd0FPQUZZQXNBQkZXTEFJTHh1eENCOCtXYkFBUlZpd0FpOGJzUUlQUGxtd0FFVllzQVl2RzdFR0R6NVpzQUJGV0xBS0x4dXhDZzgrV2JJTkNBSVJFam13RFMreUFBRUtLMWdoMkJ2MFdiQUUwTElPQ0FJUkVqa3dNUUVqQXlNVEl3TWhBVE1USXdFaEF3Tk9mVXJjU21uVi92Y0M4Ky8wOXY1Y0FVaExBYXIrVmdHcS9sWUZzUHBRQW1nQjlRQUFBditjQUFBRHVBUTZBQXNBRUFCV0FMQUFSVml3Q0M4YnNRZ2JQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFHTHh1eEJnOCtXYkFBUlZpd0NpOGJzUW9QUGxteURRSUlFUkk1c0EwdnNnRUJDaXRZSWRnYjlGbXdCTkN5RHdnQ0VSSTVNREVCSXdNakV5TURJd0V6RXlNQk13TW5Cd0tmWXpDK01WS1crd0pZNGVQaS9yUHdOZ1V1QVJmKzZRRVgvdWtFT3Z2R0FjUUJFMVJ0QUFBQ0FENEFBQWFOQmJBQUV3QVdBSHdBc0FCRldMQUNMeHV4QWg4K1diQUFSVml3RWk4YnNSSWZQbG13QUVWWXNBUXZHN0VFRHo1WnNBQkZXTEFJTHh1eENBOCtXYkFBUlZpd0RDOGJzUXdQUGxtd0FFVllzQkF2RzdFUUR6NVpzaFVDQkJFU09iQVZMN0FBMExBVkVMSUdBUW9yV0NIWUcvUlpzQXJRc0FZUXNBN1FzaFlDQkJFU09UQXhBU0VCTXhNakF5TURJeE1qQXlFVElRTWpFek1CSVFNQm53RllBYkx3OVBaQWZVcmRTbWpWL3ZiZS91dEw5djMyQWNJQlNFd0Nad05KK2xBQnF2NVdBYXIrVmdHci9sVUZzUHk0QWZZQUFBSUFNQUFBQlgwRU9nQVRBQmdBZndDd0FFVllzQUl2RzdFQ0d6NVpzQUJGV0xBU0x4dXhFaHMrV2JBQVJWaXdCQzhic1FRUFBsbXdBRVZZc0Fndkc3RUlEejVac0FCRldMQU1MeHV4REE4K1diQUFSVml3RUM4YnNSQVBQbG15QUJBU0VSSTVzQUF2c0FIUXNnNEJDaXRZSWRnYjlGbXdDOUN3QjlDd0FSQ3dGTkN3RmRDeUZ4SUVFUkk1TURFQk13RXpFeU1ESXdNakV5TURJeE1qQXlNVE13RXpBeWNIQVd2d0FWN2g0K2MyWFRLK01WS1crNXV1TWUyNzdnRjE4RFlGTGdIRUFuYjd4Z0VYL3VrQkYvN3BBUmYrNlFRNi9Zb0JFMVJ0QUFJQUZBQUFCbVFGc0FBYkFCNEFkN0lNSHlBUkVqbXdEQkN3SE5BQXNBQkZXTEFhTHh1eEdoOCtXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQXd2RzdFTUR6NVpzQUJGV0xBVEx4dXhFdzgrV2JJWUdnUVJFam13R0Mrd0FOQ3dHQkN5RHdFS0sxZ2gyQnYwV2JBSjBMSWNHZ1FSRWptd0doQ3lIUUVLSzFnaDJCdjBXVEF4QVJZV0J3TWpFelltSnljSEF5TVRKeVlHQndNakV6WWtKUmNESVFFQklRUjUyZFFYT2ZZNUVGWjhhQXhzOW1sc2haOFdPdlk1SUFFYkFRRVI5Z1RBL1NRQkxQNCtBeVFFNzlIK29BRmhlWDBGQXcvOXNBSmNBZ0Z6aHY2YUFXRGs0d0lCQW9qOWpBR25BQUlBRmdBQUJTb0VPZ0FiQUI0QWM3SWNIeUFSRWptd0hCQ3dGTkFBc0FCRldMQUZMeHV4QlJzK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBc3ZHN0VMRHo1WnNBQkZXTEFVTHh1eEZBOCtXYkFFMExBRUw3QUgwTEFFRUxJU0FRb3JXQ0hZRy9SWnNCZlFzaHdGQUJFU09iQUZFTElkQVFvcldDSFlHL1JaTURFek56WTJOd01oQVJZV0J3Y2pOelluSmljbkJ3TWpFeWNpQmdjSEFSTWhGaG9kNTlDeEE5ZitsS1NmRkJudUdnWUJCcG9rQmszc1RpWnloQlVjQWQzQy91Q3Z6TmNPQWRyK0lCRGp2cW1xTkMyTkRRSUkvbUVCcGdGemZyWUNhd0VnQUFJQU5RQUFDSmtGc0FBaEFDUUFsN0lkSlNZUkVqbXdIUkN3Sk5BQXNBQkZXTEFITHh1eEJ4OCtXYkFBUlZpd0N5OGJzUXNmUGxtd0FFVllzQUF2RzdFQUR6NVpzQUJGV0xBRkx4dXhCUTgrV2JBQVJWaXdFUzhic1JFUFBsbXdBRVZZc0Jvdkc3RWFEejVac2drSEFCRVNPYkFKTDdJZEFRb3JXQ0hZRy9SWnNBUFFzQWtRc0EzUXNCMFFzQmZRc2lJSEFCRVNPYkFMRUxJakFRb3JXQ0hZRy9SWk1ERWhFelkzQlFNakV6TURJUU1oQVJZV0J3TWpFelluSmljbkJ3TWpFeWNtQmdjREFRRWhBa2M3RjFiK3AydjIvZlp3QXgzK0JNTCtFOW5VRnpuMk9nY0dFckpuQzJ6MmFXNkVueFk3QW9BQksvNDlBVitmYXdQOW1nV3cvWHNDaGYxMEJPL1IvcUFCWVQwdWlnWUREZjJ1QWx3Q0FYT0cvcG9ET2dHcEFBQUNBQ0lBQUFjdEJEb0FJUUFrQUpteUd5VW1FUkk1c0JzUXNDVFFBTEFBUlZpd0J5OGJzUWNiUGxtd0FFVllzQXN2RzdFTEd6NVpzQUJGV0xBQUx4dXhBQTgrV2JBQVJWaXdCUzhic1FVUFBsbXdBRVZZc0JFdkc3RVJEejVac0FCRldMQWFMeHV4R2c4K1diQUZFTEFKMExBSkw3QUswTEljQVFvcldDSFlHL1Jac0FUUXNBb1FzQTNRc0J3UXNCZlFzaUlMQUJFU09iQUxFTElqQVFvcldDSFlHL1JaTURFaE56WTNCUU1qRXpNRElRTWhBUllXQndjak56WW5KaWNuQndNakV5TUdCZ2NIQVJNaEFoZ2NHazMrdmtydHZPMVNBcGE1QTlmK2xhR2dGQm50R2djQ0I1b2pCazNzVGl0emdSUWFBZDNDL3VDcG5tUUQvbGdFT3Y0bkFkbitJQkRpdjZtcU5TeVJDUUlJL21FQnBnRjJoYW9DYXdFZ0FBQUMvNnIrUWdReEI0d0FLZ0F6QUl1eUNUUTFFUkk1c0FrUXNEUFFBTEFiTDdBd0w3QUFSVml3Q1M4YnNRa2ZQbG13QUVWWXNCVXZHN0VWRHo1WnNnQUpGUkVTT2JBQUw3QUpFTElHQVFvcldDSFlHL1Jac0FBUXNpZ0JDaXRZSWRnYjlGbXlEeWdBRVJJNXNCVVFzaUlCQ2l0WUlkZ2I5Rm15RHpBQlhiQXdFTEF5MExBeUw3SVBNZ0Zkc2lzd01oRVNPYkF0MExBdEx6QXhBVEkyTnpZbUp5VTNGeDRDQndZRkZoWUhCZ1FuSndZSEJoY0hKaVkzTmpZekZ6STJOelltSnljM0FUYzNGUUVqQXpVWEFhUjlwQTRMWld2KzNpUDRoOUpxQ0JIKzltWm9Cdy8rMWRzMWpCRVFoMXQwaFFZRnhxbzBjcWtQRG5pQW1TTUJsS3JRL3MyVDZjUURUWE5xVm1NRkFjY0JBVnlwZE9GdExLdHd5ZThDQVFWcGFENlZLcmx4aEpjQmdXeHJlUVVCeHdPZ21RUVEvdXdCRlJBRUFBTC90ZjVLQThVR0lBQWxBQzRBdjdJckx6QVJFam13S3hDd0JOQUFzQ3N2c0FCRldMQUhMeHV4QnhzK1diQUFSVml3Rnk4YnNSY1JQbG13QUVWWXNCRXZHN0VSRHo1WnNnQVJCeEVTT2JBQUw3Uy9BTThBQWwyMFh3QnZBQUp4dEM4QVB3QUNjclR2QVA4QUFuRzBId0F2QUFKeHNvOEFBVjJ5dndBQmNyQUhFTElFQVFvcldDSFlHL1Jac0FBUXNpTUhDaXRZSWRnYjlGbXlEQ01BRVJJNXNCRVFzaDBCQ2l0WUlkZ2I5Rm13S3hDd0xkQ3dMUyswRHkwZkxRSmRzaVlyTFJFU09iQW8wTEFvTHpBeEFUWTNOaWNoTnhjV0ZnY0dCeFlIQmdRakl3WUhCaGNISmlZM05qWXpGekkyTnpZbkl6Y0JOemNYQVNNRE5SY0JoT1FYRXNMKzNpSHZ6dWtIQ3RHc0JBWCs4OVlsa3hFUWYxbG9nZ1FGdjZFd2FJME5GT2FoSGdGUHF0QUIvc3lUNmNNQ2JnYVJkUWU1QVFHYWpaMWNScHFlcndWcVlVS1BMckZ0ZjQ4QlVFYUdCNmtERTVrRUVmN3RBUlFSQkFELy93QjFBQUFGMXdXd0FnWUJtQUFBLy84QVAvNGlCWW9FUEFJR0FiZ0FBQUFEQUdMLzV3VWFCY2dBRWdBYkFDUUFjTElVSlNZUkVqbXdGQkN3Q2RDd0ZCQ3dIZEFBc0FCRldMQUtMeHV4Q2g4K1diQUFSVml3QUM4YnNRQVBQbG13Q2hDeUV3RUtLMWdoMkJ2MFdiSVdDZ0FSRWpsOHNCWXZHTEp6RmdGZHNtQVdBVjJ3QUJDeUhBRUtLMWdoMkJ2MFdiQVdFTElnQndvcldDSFlHL1JaTURFRkxnSW5KaEkzTmlRWEZnQVhGZ0lDQndZREpnWUhKVFkzTmlZQkZqWTNCUVlWRkJZQ1VJL1dlZ2dIT0VWZ0FUTzkyQUVCREFZNWkyZXlHcG5hUGdLb0J3RURoUDY4bXRVKy9WZ0doaFFEZy9pZGN3RkRoN3ZKQkFUKzN2ZDgvci8rODFxY0JRd0YzdklCTURXbnV2dk1CZHZ2QVRBenA3WUFBd0EyLytjRUpnUlNBQkVBRndBZEFHcXlHQjRmRVJJNXNCZ1FzQXpRc0JnUXNCTFFBTEFBUlZpd0JDOGJzUVFiUGxtd0FFVllzQTB2RzdFTkR6NVpzaElCQ2l0WUlkZ2I5Rm15R2dRTkVSSTVmTEFhTHhpeVVob0JYYkpBR2dGZHNoVUhDaXRZSWRnYjlGbXdCQkN5R0FFS0sxZ2gyQnYwV1RBeEV6WVNOaGNlQWdjSEJnSUdKeVlDTnpjQkZoTUZCaFlUSmdNbE5pWkdFcHZ6azR2SFd4QUNGSnp6a3NqaENnTUJwOUpoL2c0SVplWE5aQUh4Q0dnQ0lKNEJCWThFQkk3OGxoYWYvdjZNQkFVQkdkb28vcUlIQVNRQmc1WUMzQWYrNEFGOW1BQUJBS2dBQUFWZUJjWUFEd0JHc2dJUUVSRVNPUUN3QUVWWXNBWXZHN0VHSHo1WnNBQkZXTEFQTHh1eER4OCtXYkFBUlZpd0RDOGJzUXdQUGxteUFRd1BFUkk1c0FZUXNnZ0JDaXRZSWRnYjlGa3dNUUVYTndFMk5oY1hCeWNpQndFakF6TUNLZ1F5QVZkTHRIWXlHUkZiUHYzaTd1ZitBWUJqZGdMdHNwUUNBZGNCZ2Z1VUJiQUFBUUIzQUFBRVJBUlNBQkFBUnJJTkVSSVJFamtBc0FCRldMQUZMeHV4QlJzK1diQUFSVml3RUM4YnNSQWJQbG13QUVWWXNBMHZHN0VORHo1WnNnRU5FQkVTT2JBRkVMSUtBUW9yV0NIWUcvUlpNREVCRnpjVEVqTXlGd2NtQnlJSEFTTURNd0dwQWlTL2Q4ODRPQ2NZRWtzMy9udk9wK2NCYm1CZ0FjSUJJaGpCQ2dKdi9PNEVPd0QvL3dDb0FBQUZYZ2I4QWlZQ053QUFBUWNCZFFSWEFRNEFGZ0N3QUVWWXNBOHZHN0VQSHo1WnNCSGNzQlhRTURILy93QjNBQUFFUkFYUUFpWUNPQUFBQVFjQmRRUEMvK0lBRmdDd0FFVllzQTh2RzdFUEd6NVpzQkxjc0JiUU1ESC8vd0JyL2tVSmVBWElBQ1lBTXdBQUFBY0FYUVZtQUFELy93QTUva1VJaHdSU0FDWUFVd0FBQUFjQVhRUjFBQUFBQWdCbS8zVUZGQVl2QUJRQUpnQlZzaGtuS0JFU09iQVpFTEFBMEFDd0FFVllzQTB2RzdFTkh6NVpzQUJGV0xBREx4dXhBdzgrV2JBQTBMQU5FTEFLMExBTkVMSVhBUW9yV0NIWUcvUlpzQnJRc0FNUXNpQUJDaXRZSWRnYjlGbXdJOUF3TVFVSEp6Y21BaWMzRWdBbE54Y0hGaElYRmdjQ0FCTW1Kd2NuTndZQ0F4VVdGemNYQnlRVE5nS2tITUVjc2NnRUFSSUJUUUVRR2NFWnI4Y0ZBaHcwL3NhVkJad1Z3aGFsc2c4TW1CWENGZ0VQUGhnTWZ3R0FKQUVlNGt3QmJnSERKbklCZENUKzRlWjRsdjduL3FvRG9mQkFZZ0ZrTmY2eS9zVkM0ejFpQVdKWEFaUzJBQUlBT1ArSEJEVUV0UUFUQUNNQVdMSUFKQ1VSRWptd0ZOQUFzQUJGV0xBQUx4dXhBQnMrV2JBQVJWaXdDaThic1FvUFBsbXdBQkN3QTlDd0NoQ3dEZEN3Q2hDeUZBRUtLMWdoMkJ2MFdiQUFFTEljQVFvcldDSFlHL1Jac0JuUXNCUVFzQ0hRTURFQk54Y0hGaElIQndZQUJ3Y25OeVlDTnpjMkVoTTJOamMySndjbk53WUdCd1lYTnhjQ05SbTBHYWFtRlFJYy92cklHTFFZcGFNVkJ5UC8xRzk5QmdSdUZiUVdiWGtIQjJ3WHRBUkdid0Z2Si83Ynp4YmcvdHNjYkFGdUp3RWp5ekhhQVJMOGtpM3NzN2c4WVFGak1PZXh0ajlwQVFBREFHTC81UWJjQjBRQU1RQkdBRThBcjdJOVVGRVJFam13UFJDd0NkQ3dQUkN3UjlBQXNBQkZXTEFVTHh1eEZCOCtXYkFBUlZpd0J5OGJzUWNQUGxtd0ZCQ3dBTkN3QUMreUNnY1VFUkk1c0FjUXNBelFzQlFRc2hVQkNpdFlJZGdiOUZtd0J4Q3lLUUVLSzFnaDJCdjBXYkFlMExJaUZBY1JFam13RlJDd01kQ3dGQkN3UHRDd1BpK3dNOUN3TXkreU1nZ0tLMWdoMkJ2MFdiQXpFTEE1MExBNUw3SkNDQW9yV0NIWUcvUlpzRDRRc0V2UXNFc3ZzRS9Rc0U4dk1ERUJGaElIQXdZQUp5WW1Kd1luTGdJM0V6WWtOd2NHQmdjREJoY1dGaGNXTmpjVE13TUdGeFlXRnhZMk54TTJOU1luRXdjakxnTWpJZ1lIQnljM05qWVhIZ01CTmpZM054Y0hCZ2NGV0wzSEYxVWUvdS9KWjZNcGt0QjhzMUlQVlI4QkVkVVhZWUFWVlFVQkFrbEVab2tVUCs4L0JRVUlWVWRlZkJaV0JnU0tzUWtlTzNGeGJUY3pRQWtDZ3dJSWdtd3dXclZpL2Uwckp3Z1NwUTBSbmdXeENmNzd6ZjN0M1A3L0JBSlRTYU1HQW5uYWd3SVQzdm9FekFLTWd2M3NLaTVUWHdRRmhuc0JmLzU4THl4SlVRTURpb2dDRlMwdXBnb0I1b2dDSnk4a09ERVRBU1pzY1FJQkYwa1ovb294UGlWZUFXWnZXd0FEQUV2LzVRWERCZWdBTUFCRkFFMEFyN0k2VGs4UkVqbXdPaEN3Q3RDd09oQ3dSdEFBc0FCRldMQVZMeHV4RlJzK1diQUFSVml3RFM4YnNRMFBQbG13RlJDd0FOQ3dBQyt3RFJDd0NOQ3lDdzBWRVJJNXNCVVFzaFlCQ2l0WUlkZ2I5Rm13RFJDeUhRRUtLMWdoMkJ2MFdiSWhGUTBSRWptd0tOQ3dGaEN3TU5Dd0ZSQ3dQZEN3UFMrd010Q3dNaSt5TVFnS0sxZ2gyQnYwV2JBeUVMQTQwTEE0TDdKQkNBb3JXQ0hZRy9SWnNEMFFzRW5Rc0VrdnNFM1FzRTB2TURFQkhnSUhCd1lHSnlZbUp3WW5KaVkzRXpZM05qY0hCZzhDQmhZWEZqWTNOek1IQmhjV0ZoY1dOamNUTnpZbUp3RUhJeTRESXlJR0J3Y25OelkyRng0REFUWTNOeGNIQmdjRWEzR2VTUTBoSGV5eVdZMGpnTENvcmhRa0lZeDNyeFdwSnlRRUJEYzJVRzhSSCtZZEJBTURSVHRIWWhFbUJBSTdPZ0VEQ1NFNmJYaHJOekpBQ1FLRUFnaUNiREJhdjFuOThFc1BFYVlORUtBRVNBWnZ4SHp1MCswRkFrdEVsQVFFOGI0QkE5aHZYZ1BEQitYOVNFaGZBZ1YzYk1mSEppWkNVQUVEZW5VQkREOUZWUVlCNm9nQ0pUSWpPREVUQVNac2NRSUJGMDBWL29oVlAxNEJaVzljQUFBQ0FHRC81QWN0QnhFQUl3QXJBSVd5Qml3dEVSSTVzQVlRc0NyUUFMQUFSVml3QUM4YnNRQWZQbG13QUVWWXNBMHZHN0VOSHo1WnNBQkZXTEFZTHh1eEdCOCtXYkFBUlZpd0NTOGJzUWtQUGxtd0JOQ3dCQyt5QndBSkVSSTVzQWtRc2hRQkNpdFlJZGdiOUZtd0g5Q3dBQkN3S3RDd0tpK3dLTkN3S0MreUpnZ0tLMWdoMkJ2MFdiQW9FTEFyMExBckx6QXhBUU1HQkNjbUppY0dKeVltTnhNekF3WVhGaFlYRmpZM0V6TURCaGNXRmhjV05qY1RKVGNoQnlFSEl6Y0hMYThkL3U3TmFhSW1qOW0veWhTdTk2OEZBd1ZMUTJTSkZLLzdyd1VGQjFCRlhZTVZyL3g5RmdNOUZmNnhGN0VYQmJENy9kRDVCQUpYVHFvRUJ2dkNCQVQ3K3lvclNsVURCSU40QkFYNyt5MHJTMUVEQTM1OEJBWG5lbnAvZndBQ0FFVC81Z1llQmJFQUlnQXFBSW15Rnlzc0VSSTVzQmNRc0NuUUFMQUFSVml3QUM4YnNRQWJQbG13QUVWWXNBMHZHN0VOR3o1WnNBQkZXTEFYTHh1eEZ4cytXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQWt2RzdFSkR6NVpzZ2NYQkJFU09iSVRBUW9yV0NIWUcvUlpzQjdRc0JjUXNDblFzQ2t2c0NyUXNDb3ZzaVFJQ2l0WUlkZ2I5Rm13S2hDd0o5Q3dKeTh3TVFFREJnWW5KaVluQmljbUpqY1RNd01IRkJZWEZqWTNFek1EQmhjV0ZoY1dOamNUSlRjaEJ5RUhJemNHSG5NYzg3WmJqaUtEdWFteUUzUHRjZ1E0T0ZOekUzVHVjZ1FDQWtJN1QyZ1FjL3ppRmdNaEUvNitGN0VXQkRyOVVzYmdCQUpLUXBJRUJPbTBBcS85VUVkRFVRTURjR3NDdHYxUUppWkRUZ0VEZG1zQ3NQeDdlMzkvQUFBQkFGYitqQVRxQmNvQUdRQlRzZ0FhR3hFU09RQ3dBRVZZc0Fvdkc3RUtIejVac0FCRldMQUFMeHV4QUJjK1diQUFSVml3QWk4YnNRSVBQbG13Q2hDd0R0Q3dDaEN5RUFFS0sxZ2gyQnYwV2JBQ0VMSVlBUW9yV0NIWUcvUlpNREVCSXhNbUpnSTNFeElBRnhZU0J5Y1NKeVlHQndNSEJoWVhGd0o2OVVWOXJVb1RLaTBCWGZMazl3ejJFdmlQeXlBdEF3TjBhcWYrakFGb0dxa0JBcElCREFFZkFWUUZCUDczNWdFQklBY0Q0c2orNFVDUnFRUUJBQUFCQUVYK2lRUDhCRk1BR1FCVHNnQWFHeEVTT1FDd0FFVllzQW92RzdFS0d6NVpzQUJGV0xBQUx4dXhBQmMrV2JBQVJWaXdBaThic1FJUFBsbXdDaEN3RHRDd0NoQ3lFUUVLSzFnaDJCdjBXYkFDRUxJWUFRb3JXQ0hZRy9SWk1ERUJJeE1tQWpjM0VqYzJGeFlXQnljMkppY21CZ2NIQmhZWEZ3SWs3VVdibkJZQkhabVoxcXpQQnQ4RlZsSnhveFlLQjFaWW5mNkpBV3duQVNETUN3RUducHdGQk9PeUFWdDNCQVhDbzJwOGt3UUNBQUFCQURnQUFBUzZCVDRBRXdBVEFMQU9MN0FBUlZpd0JDOGJzUVFQUGxrd01RRVhCeWNESXdFbk54Y0JKemNYRXpjQkJRY25BakQ3VlAzcHVRRW0rMVQrQVF2OVZ2M3R0LzdWQVFCWitRRzRySFdxL3I4Qmw2dDFxd0Z6cTNlckFVY0IvbUtyZEtrQUFBSDg1Z1NpLytJRi9RQUhBQkVBc0FBdnNnTUdDaXRZSWRnYjlGa3dNUUVISnpjaE54Y0gvYW9XcmlzQ0VST3RKd1VnZmdIdWJBSGNBQUFCL1E0RkZ2L3pCaFFBRWdBckFMQUVMN0FJMExBSUw3SUFBZ29yV0NIWUcvUlpzQVFRc0EzUXNBMHZzZzRDQ2l0WUlkZ2I5Rmt3TVFNV0ZnY0hKemMySnlZR0JBY0hOekkrQXVSa2N3UURnZ0lHVmlwVC92TkJRd3RLVjlGaEJoTUNiR2NvQVJSZEJBSVFZZ1VCaHhOTkZ3QUIvaXNGRmY4Q0JtQUFCUUFNQUxBQkw3QUYwTEFGTHpBeEFUY3pCeGNIL2lzV3VSNG1VQVhuZWFSc093QUFBZjQ4QlJmL1d3WmdBQVVBREFDd0F5K3dBTkN3QUM4d01RRW5OemN6Qi82S1RrOFh1UmtGRjA1eWlZOEFBQWo2UWY3Q0FaNEZzUUFMQUJjQUl3QXZBRHNBUndCVEFGOEFlZ0N3UHkrd1N5K3dWeSt3TXkrd0FFVllzQU12RzdFREh6NVpzZ2tKQ2l0WUlkZ2I5Rm13UHhDd0Q5Q3dQeEN5UlFrS0sxZ2gyQnYwV2JBVjBMQkxFTEFiMExCTEVMSlJDUW9yV0NIWUcvUlpzQ0hRc0ZjUXNDZlFzRmNRc2wwSkNpdFlJZGdiOUZtd0xkQ3dNeEN5T1FrS0sxZ2gyQnYwV1RBeEFUWTJGeklXRlNjMkl5WUhBVFkyTXhZV0Z5YzJJeUlIQXpZMkZ4WVdGeWMySXlZSEFUWTJGeFlXRnljMkl5WUhBVFkyRnhZV0Z5YzJJeVlIQVRZMkZ6SVdGU2MySXlJSEFUWTJGeFlXRnljMkl5WUhBelkyRnhZV0Z5YzJJeVlIL1owSWIxdFhiV3NGVUZVYkFaMEliMXBaYXdKc0JWQlNIUklJYmx0WWFnSnJCVkJUSHY1NkNIRlhXR29DYXdWUVVoNzlNQWh3VzFocUFtc0ZVRk1lL2tJSWNGdFhiV3NGVDFRZC9vOElibHRZYWdKckJWQlRIaWNJYjFwWWF3SnNCVkJTSGdUeldHWUJhVllCWmdKbS91cFhaZ0ZtV0FGbVpQNEhXR1lCQVdaWEFXWUNadjMzV1dZQ0FXWlhBV1lDWnY3aldXVUJBV2RYQVdZQ1pnVVpXV1VCYVZZQlptVCtCMWhtQVFGbVZ3Rm1BbWI5OTFobUFRRm1Wd0ZtQW1ZQUFBajZiLzVqQVhNRnhnQUVBQWtBRGdBVEFCZ0FIUUFpQUNjQUx3Q3dJUyt3Rmkrd0VpK3dDeSt3R3krd0ppK3dBRVZZc0Fjdkc3RUhIejVac0FCRldMQUNMeHV4QWhFK1dUQXhCUmNESXhNVEp4TXpBd0UzQlFjbEJRY2xOd1VCTnlVWEJRRUhCU2NsRXljRE54TUJGeE1IQS8za0RxdG1mYVFPcW1aOUFha0tBVGtRL3NEN2p3cit4eEVCUHdQT0F3RktQLzdRL0dZRC9yWkFBVEp0RVY5QmxnS3hFVjlEbERvVC9yQUJZQVNoRVFGUi9xSCtFUXFBV2tROENvQmFSQUd1RXBoT3Z2eU5FNWhQdndMa0FRRlRPLzdRL09ZQi9xNDlBVEFBLy84QUovNStCWHdISkFJbUFkc0FBQUFuQVdvQlZ3RTlBUWNBRUFSVS84WUFFd0N3QUVWWXNBZ3ZHN0VJSHo1WnNBM2NNREVBLy84QUdmNStCSFlGMmdJbUFmc0FBQUFuQVdvQW5QL3pBUWNBRUFOaS84WUFFd0N3QUVWWXNBZ3ZHN0VJR3o1WnNBM2NNREVBQUFJQUl3QUFCSlFGc0FBU0FCc0FkTElWSEIwUkVqbXdGUkN3Q2RBQXNBQkZXTEFQTHh1eER4OCtXYkFBUlZpd0NTOGJzUWtQUGxteUVna1BFUkk1c0JJdnNnQUhDaXRZSWRnYjlGbXlBdzhKRVJJNXNBTXZzQUFRc0F2UXNBelFzQklRc0EzUXNBa1FzaFVCQ2l0WUlkZ2I5Rm13QXhDeUd3RUtLMWdoMkJ2MFdUQXhBU01IRnhZV0J3WUVJeUVUSXpjek56TUhNd0VEQlRZMk56WW1Kd0t4MlNMKzQvMFJFUDdIOVAzZHZyc2V1eUgzSXRyK3hGWUJFb0d1RHc1d2F3Ukh4QUVCNzhUUS9nUkhxcisvL2NmK0VnSUNrSGRwZVFRQUFnQWgvL3dENlFaaUFCSUFHd0Iwc2hVY0hSRVNPYkFWRUxBRDBBQ3dBRVZZc0Ewdkc3RU5IejVac0FCRldMQVJMeHV4RVI4K1diQUFSVml3Q1M4YnNRa1BQbG13RVJDeUFBY0tLMWdoMkJ2MFdiSUNEUWtSRWptd0FpK3dBQkN3QzlDd0ROQ3dBaEN5RXdFS0sxZ2gyQnYwV2JBSkVMSVVBUW9yV0NIWUcvUlpNREVCSVFNWEZoWUhCZ1FuSVJNak56TTNNd2NoQVFNWE5qWTNOaVluQXdiKzUxbkh1ZFVNRGY3MHd2NGYzNmtlcUNEdEh3RVovazlEMldCOEN3cEdUd1VGL2Y0QkFjeXB0dG9FQlFXcnNyTDhrUDZDQWdKd1ZreG1CUUFBQWdBbkFBQUZCUVd3QUE0QUd3Qk5zZ1FjSFJFU09iQUVFTEFYMEFDd0FFVllzQU12RzdFREh6NVpzQUJGV0xBQkx4dXhBUTgrV2JJV0F3RVJFam13RmkreUFBRUtLMWdoMkJ2MFdiQURFTElVQVFvcldDSFlHL1JaTURFQkF5TVRCVElFQndZSEZ3Y25CaU1CTmpjMkppY2xBeUUyTnljM0FYeGU5LzBCOStZQkJCTVRsRjl4WjRLckFSc3NDeEp4YmY3TVdBRVpSMDVZY2dJZC9lTUZzQUg3ek1PQmpWcVdOZ0ZEUkVOdWlnUUIvZ1FDRjRoWkFBTC94LzVnQkE4RVVnQVZBQ1lBYnJJRkp5Z1JFam13QlJDd0g5QUFzQUJGV0xBT0x4dXhEaHMrV2JBQVJWaXdDeThic1FzYlBsbXdBRVZZc0Fndkc3RUlFVDVac0FCRldMQUZMeHV4QlE4K1diSUhEZ1VSRWpteURBNEZFUkk1c0E0UXNoa0JDaXRZSWRnYjlGbXdCUkN5SGdFS0sxZ2gyQnYwV1RBeEpSY0hKd1luSmljREl3RTNCellYRmhZWEZnY0hCZ01tSmljbUJ3TVdGekkzSnpjWE5qYzJBMVJSY1U1alpxVmlZZTRCQk5rU2ZLeWNzUVlDQndVandRSmNWWVZpVlM2RU8wbFJjMFE0RWdxQ2dGbDROZ0lDYy8zK0Jkb0JjSWNFQk56RVFEMGs3d0dEYTM0Q0JILytIWGdDSW9OWmFHRnhTUUFBQVFBaUFBQUUzd2NRQUFrQU1ySURDZ3NSRWprQXNBQkZXTEFHTHh1eEJoOCtXYkFBUlZpd0JDOGJzUVFQUGxtd0JoQ3lBZ0VLSzFnaDJCdjBXVEF4QVNNSElRTWpFeUVUTXdTT0J3SDliTm4zL1FLZFBlWUU3UW43SEFXd0FXQUFBUUFSQUFBRHpBVnpBQWNBS3dDd0FFVllzQVF2RzdFRUd6NVpzQUJGV0xBQ0x4dXhBZzgrV2JBRUVMSUFBUW9yV0NIWUcvUlpNREVCSVFNakV5RVRNd04wL2lXYTdyd0IzRGZzQTNiOGlnUTZBVGtBQWYvOEFBQUVyQVd3QUEwQVNRQ3dBRVZZc0Fndkc3RUlIejVac0FCRldMQUNMeHV4QWc4K1diSU5DQUlSRWptd0RTK3lBQWNLSzFnaDJCdjBXYkFFMExBTkVMQUcwTEFJRUxJS0FRb3JXQ0hZRy9SWk1ERUJJd01qRXlNM014TWhCeUVETXdLSDczVDJkS1llcFdzRGdpVDlkVWZ2QXAvOVlRS2ZxZ0puelA1bEFBSC95d0FBQTRrRU9nQU5BRWtBc0FCRldMQUlMeHV4Q0JzK1diQUFSVml3QWk4YnNRSVBQbG15RFFnQ0VSSTVzQTB2c2dBSENpdFlJZGdiOUZtd0JOQ3dEUkN3QnRDd0NCQ3lDZ0VLSzFnaDJCdjBXVEF4QVNFREl4TWpOek1USVFjaEJ5RUNWdjhBVWUxUm5oNmRUZ0sxSS80NUxBRUJBZEgrTHdIUnFnRy94UHNBQUFFQUx2N0VCS3dGc0FBWEFGdXlBeGdaRVJJNUFMQUtMN0FBUlZpd0ZpOGJzUllmUGxtd0FFVllzQlF2RzdFVUR6NVpzQllRc2dBQkNpdFlJZGdiOUZteUF4WVVFUkk1c0FNdnNBb1FzZ3NIQ2l0WUlkZ2I5Rm13QXhDeUVnRUtLMWdoMkJ2MFdUQXhBU0VETXhZV0VnY0NBQWMzTmhNMkp5WW1KeU1ESXhNaEJJajlkVW1ZcWU1ckVSdit6dndTNzBjZ0RRMkdkN1J0OXZ3RGdnVGsvbDRFai83OXFmNzcvc3dHdXdZQkY0QnhibmtFL1lnRnNBQUJBQkgrM3dPQ0JEb0FGUUJLc2c4V0Z4RVNPUUN3Q2krd0FFVllzQlF2RzdFVUd6NVpzQUJGV0xBU0x4dXhFZzgrV2JBVUVMSUFBUW9yV0NIWUcvUlpzZ01VRWhFU09iQURMN0lRQVFvcldDSFlHL1JaTURFQklRY1hIZ0lIQmdJSEp6WTNOaVluSndNakV5RURYLzQ2S0VDUDJXa05EL08wUXVzZURuVjFYRS91dkFLMUEzYmxBUU41MW9pai92d3dzMUhVZVpFRUFmNDZCRG9BLy8vL3BmNmFCK0FGc0FJbUFka0FBQUFIQS8wR2d3QUEvLy8vcmY2YUJuSUVPZ0ltQWZrQUFBQUhBLzBGUEFBQS8vOEFIdjQ2QktnRnhRSW1BZG9BQUFBSEEvMEJkZitnLy84QUZ2NDdBN3dFVUFJbUFmb0FBQUFIQS8wQkgvK2gvLzhBTHY2YUJYc0ZzQUltQThFQUFBQUhBLzBFRHdBQS8vOEFJdjZhQklFRU9nSW1BZjBBQUFBSEEvMERXUUFBQUFFQUl3QUFCWU1Gc0FBVUFHRUFzQUJGV0xBQUx4dXhBQjgrV2JBQVJWaXdEQzhic1F3ZlBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQUtMeHV4Q2c4K1diSVBDZ3dSRWptd0R5K3ludzhCWGJJSUFRb3JXQ0hZRy9SWnNnRUlEeEVTT2JBRjBMQVBFTEFTMERBeENRSWhBeWNISXpjakF5TVRNd016TnpNRE13RUZnLzRJQVJYKzFyWkJMcDhwVld6My9mZHJWQzJnTXpJQmZ3V3cvVTc5QWdKdEFlcnAvWk1Gc1AyYS92OEFBbWdBQUFFQUlRQUFCTTBFT2dBVUFGd0FzQUJGV0xBTkx4dXhEUnMrV2JBQVJWaXdGQzhic1JRYlBsbXdBRVZZc0Fvdkc3RUtEejVac0FCRldMQURMeHV4QXc4K1diSU9DZzBSRWptd0RpK3lDUUVLSzFnaDJCdjBXYklCQ1E0UkVqbXdCZEN3RGhDd0V0QXdNUUVCRXlFREp3Y2pOeU1ESXhNekF6TTNNd2N6QVFUTi9tcmwvdUNHTHlTWUlGTkw3THpzUzFJa21Da2lBUllFT3YzeC9kVUJyQUd6c3Y1VUJEcitVTWZKQWJJQUFBRUFOd0FBQlk4RnNBQVVBRzRBc0FCRldMQUVMeHV4QkI4K1diQUFSVml3RWk4YnNSSWZQbG13QUVWWXNBc3ZHN0VMRHo1WnNBQkZXTEFJTHh1eENBOCtXYklURWdzUkVqbXdFeSt3RU5DeURRY0tLMWdoMkJ2MFdiQUIwTElDQ3hJUkVqbXdBaSt5Q2dFS0sxZ2gyQnYwV2JJR0NnSVJFamt3TVFFakJ6TUJJUUVCSVFFakF5TVRJemN6TnpNSE13TEN6aXA5QWdvQlB2MllBWWIrNlA2OXJtejJ2TWNleGlQMkk4OEVQL01DWlAwNy9SVUNjUDJRQkQrcXg4Y0FBQUVBR1FBQUJGa0dBQUFVQUdvQXNCSXZzQUJGV0xBRUx4dXhCQnMrV2JBQVJWaXdDeThic1FzUFBsbXdBRVZZc0Fndkc3RUlEejVac2hNU0N4RVNPYkFUTDdJQkJ3b3JXQ0hZRy9SWnNnSUxCQkVTT2JBQ0w3SUtBUW9yV0NIWUcvUlpzZ1lLQWhFU09iQUJFTEFOMExBVEVMQVEwREF4QVNNRE13RWhBUUVoQXlNREl4TWpOek0zTXdjekFxUytYbDBCVHdFbC9ra0JHUDc5M25KUzdkTGhIdUViN0J1K0JMdjk0UUdlL2dYOXdRSFovaWNFdTZxYm13QUFBUUNrQUFBRzR3V3dBQTRBWVFDd0FFVllzQVl2RzdFR0h6NVpzQUJGV0xBS0x4dXhDaDgrV2JBQVJWaXdBaThic1FJUFBsbXdBRVZZc0Ewdkc3RU5EejVac2dnR0FoRVNPYkFJTDdJQkFRb3JXQ0hZRy9SWnNBWVFzZ1FCQ2l0WUlkZ2I5Rm15REFFSUVSSTVNREVCSXdNakV5RTNJUU16QVNFQkFTRURwcTlzOXRyK05TTUN3R3A5QWdzQlB2MlhBWWIrNkFKdy9aQUU3TVQ5bkFKay9UdjlGUUFCQUd3QUFBVzdCRG9BRGdCckFMQUFSVml3Qmk4YnNRWWJQbG13QUVWWXNBb3ZHN0VLR3o1WnNBQkZXTEFDTHh1eEFnOCtXYkFBUlZpd0RTOGJzUTBQUGxteUNRb0NFUkk1c0FrdnNpOEpBWEd5akFrQlhiSUFBUW9yV0NIWUcvUlpzQVlRc2dRQkNpdFlJZGdiOUZteURBQUpFUkk1TURFQkl3TWpFeUUzSVFNekFTRUJBU0VERVg1SzdacitkaUlDZDB4ZkFXMEJOdjRlQVRUKzNnR3MvbFFEZHNUK1VBR3cvZTM5MmYvL0FDZittZ1dIQmJBQ0pnQXNBQUFBQndQOUJHa0FBUC8vQUJuK21nUnBCRG9DSmdJQUFBQUFCd1A5QTJzQUFBQUJBQ2NBQUFmZkJiQUFEUUJkQUxBQVJWaXdBaThic1FJZlBsbXdBRVZZc0F3dkc3RU1IejVac0FCRldMQUdMeHV4Qmc4K1diQUFSVml3Q2k4YnNRb1BQbG15QVFJR0VSSTVzQUV2c0FJUXNnUUJDaXRZSWRnYjlGbXdBUkN5Q0FFS0sxZ2gyQnYwV1RBeEFTRVRJUWNoQXlNVElRTWpFek1Cc1FKMmFRTlBJdjJvMi9ady9ZcHc5LzMzQTFJQ1hzUDdFd0tIL1hrRnNBQUFBUUFSQUFBRmtnUTZBQTBBWmdDd0FFVllzQUl2RzdFQ0d6NVpzQUJGV0xBTUx4dXhEQnMrV2JBQVJWaXdCaThic1FZUFBsbXdBRVZZc0Fvdkc3RUtEejVac2dFTUJoRVNPWHl3QVM4WXRFQUJVQUVDWGJBQ0VMSUVBUW9yV0NIWUcvUlpzQUVRc2dnQkNpdFlJZGdiOUZrd01RRWhFeUVISVFNakV5RURJeE16QVd3QmwwNENRU1ArcnBydFRQNXBUTzY4N2dKM0FjUEUvSW9CdGY1TEJEb0FBUUF1L3NJSGhnV3dBQmtBYUxJVUdoc1JFamtBc0FndnNBQkZXTEFZTHh1eEdCOCtXYkFBUlZpd0VpOGJzUklQUGxtd0FFVllzQll2RzdFV0R6NVpzZ0VZRWhFU09iQUJMN0FJRUxJSkJ3b3JXQ0hZRy9SWnNBRVFzaEFCQ2l0WUlkZ2I5Rm13R0JDeUZBRUtLMWdoMkJ2MFdUQXhBVE1XRmhJSEFnQUhOellUTmljbUppY2pBeU1USVFNakV5RUZGbTZwN21zUkcvN08vQkx2UnlBTkRZWjNpbTMyMmYyVTJmYjhCRmtEUUFTUC92MnAvdnYrekFhN0JnRVhnSEZ1ZVFUOWlnVGsreHdGc0FBQUFRQVIvdU1HVWdRNkFCY0FWN0lRR0JrUkVqa0FzQWN2c0FCRldMQVdMeHV4RmhzK1diQUFSVml3RUM4YnNSQVBQbG13QUVWWXNCUXZHN0VVRHo1WnNnRVdFQkVTT2JBQkw3SU9BUW9yV0NIWUcvUlpzQllRc2hJQkNpdFlJZGdiOUZrd01RRVhGZ0FIQmdJSEp6WTJOelltSnljREl4TWhBeU1USVFQMlllNEJEUk1QOUxOQ2VZUU1EMzkvalZEdG1mNXBtdTY4QTNNQ2xBRUMvdnpVcHY4QU1MSXFtR040a3dRQi9qWURkdnlLQkRvQUFnQmwvK2dGMlFYSEFDc0FPZ0NNc2hrN1BCRVNPYkFaRUxBNjBBQ3dBRVZZc0NBdkc3RWdIejVac0FCRldMQU9MeHV4RGg4K1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBUXZHN0VFRHo1WnNnSUVJQkVTT2JBQ0w3QU9FTElQQVFvcldDSFlHL1Jac0FRUXNoY0JDaXRZSWRnYjlGbXdBQkN5S3dFS0sxZ2gyQnYwV2JBQ0VMQXYwTEFnRUxJMkFRb3JXQ0hZRy9SWk1ERUZKaWNHSnk0Q0p5WTNOeElBTndjR0JnSUdGeFlXRnpJM0poTTNOaEkyRnhZV0Z4Y1dCd2NDQnhZWEFSWVdGellUTnpZMU5DY21Bd2NHQlVyU3BLdWlrT21RRUFrTUdpNEJPT0FZYjVvL0NRWU1tWDh4TXFVbElCaVN4bmFSdFJNRUFRY2lNZHRQYWY0QUEwVStyU3dpQ24rck5pUUpGd2RCU1FRQ2YrcVdWMWFyQVNzQlVnWFVBczcraUhnOGpxY0RDUEFCRnRHa0FRaDlBd1RSdFRkQ1Bkcisyc0lPQWdHa1dwbzVqUUVBNGxNeXpnY0kvc2J2UFFBQUFnQkwvK29Fa2dSU0FDY0FNZ0NNc2hzek5CRVNPYkFiRUxBcDBBQ3dBRVZZc0Iwdkc3RWRHejVac0FCRldMQU1MeHV4REJzK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBUXZHN0VFRHo1WnNnSUVIUkVTT2JBQ0w3QU1FTElOQVFvcldDSFlHL1Jac0FRUXNoUUJDaXRZSWRnYjlGbXdBQkN5SndNS0sxZ2gyQnYwV2JBQ0VMQXEwTEFkRUxJd0FRb3JXQ0hZRy9SWk1ERUZKaWNHSnlZbUFqYzNOaEkzQndZSEJ4VVdGaGN6TnlZM056NENGeFlXRnhZSEJ3WUhGaGNCQmhjMlB3STBKeVlIQkUyemg0bUJqdEJnRVFjYTg3MFdseVlPQldkYkZ4WmZGaE1TYlpwYWU1SUdBZ1VSSVo0NVlmNXBFVjlyRnc4R1MyOGRGQVEwT2dJQ21nRUltRHZjQVFzR3loUCtlRTF2aFFNQ3FjYU9lc1JjQXdUQm5qUXZmdFdXQ3dJQmpxZHdaYVNCVjVrREJ2WUEvLzhBWmY0K0JRMEZ4d0ltQUNjQUFBQUhBLzBCdVAray8vOEFPUDQrQSs0RVVnSW1BRWNBQUFBSEEvMEJPditrLy84QW5QNmFCU0lGc0FJbUFEZ0FBQUFIQS8wQ093QUEvLzhBVS82YUJBZ0VPZ0ltQWdVQUFBQUhBLzBCMkFBQS8vOEFvUUFBQlUwRnNBSUdBRDBBQVAvL0FIZitYd1F3QkRvQ0JnR2pBQUFBQVFDaEFBQUZUUVd3QUE0QVZySUtEeEFSRWprQXNBQkZXTEFJTHh1eENCOCtXYkFBUlZpd0N5OGJzUXNmUGxtd0FFVllzQUl2RzdFQ0R6NVpzZ1lDQ0JFU09iQUdMN0lGQndvcldDSFlHL1Jac0FIUXNnb0lBaEVTT2JBR0VMQU8wREF4QVNNREl4TWpOek1CSVJNQklRRXpBNW5QV3ZoYXhCNTkvdmdCQmMwQnZBRWUvZTU4QWdUOS9BSUVxZ01DL1ZBQ3NQeitBQUFCQUZUK1h3UXdCRG9BRGdCanNnb1BFQkVTT1FDd0FFVllzQWd2RzdFSUd6NVpzQUJGV0xBTEx4dXhDeHMrV2JBQVJWaXdBaThic1FJUlBsbXdBRVZZc0FBdkc3RUFEejVac0FCRldMQUVMeHV4QkE4K1diSUdCd29yV0NIWUcvUlpzZ29MQUJFU09iQU4wTEFPMERBeEJTTURJeE1qTnpNRE14TUJNd0V6QXQvVlNlMUl5QjZpbmV4bUFXbisvaWlsQWY1Z0FhQ3FBNUg5QkFMOC9HLy8vLy9EL3BvRlJ3V3dBaVlBUEFBQUFBY0QvUVBBQUFELy8vKzUvcG9FRXdRNkFpWUFYQUFBQUFjRC9RTE5BQUFBQVFDZC9xRUdiZ1d3QUE4QVR3Q3dEUyt3QUVWWXNBZ3ZHN0VJSHo1WnNBQkZXTEFDTHh1eEFoOCtXYkFBUlZpd0RpOGJzUTRQUGxtd0FoQ3lBQUVLSzFnaDJCdjBXYkFGMExBT0VMSUdBUW9yV0NIWUcvUlpzQXJRTURFQklUY2hCeUVESVJNekF6TURJeE1oQWZQK3FpTURveVArcXJnQ2JkbjIyYXR6NHo3NzhBVHN4TVQ3M2dUbSt4ejkxUUZmQUFBQkFGYit2d1RZQkRvQUR3QkxBTEFOTDdBQVJWaXdBeThic1FNYlBsbXdBRVZZc0E4dkc3RVBEejVac0FNUXNnUUJDaXRZSWRnYjlGbXdBTkN3RHhDeUJnRUtLMWdoMkJ2MFdiQURFTEFJMExBR0VMQUswREF4QVNNM0lRY2pBeUVUTXdNekF5TVRJUUZFN2lJQ3NDUFVlQUdYbSsyYWoyM1lPUHpxQTNmRHcvMUxBM2o4aVAzOUFVRUEvLzhBeGY2YUJXb0ZzQUltQWVvQUFBQUhBLzBFUFFBQS8vOEFjUDZhQkRvRU93SW1BZ29BQUFBSEEvMERQQUFBQUFFQXVRQUFCVndGc0FBWUFFK3lCUmthRVJJNUFMQUFSVml3QUM4YnNRQWZQbG13QUVWWXNBc3ZHN0VMSHo1WnNBQkZXTEFPTHh1eERnOCtXYklGRGdBUkVqbXdCUyt3Q05Dd0JSQ3lGQUVLSzFnaDJCdjBXYkFSMERBeEFRTUdGeFlYRXpNRE5qY1RNd01qRXdZSEJ5TTNKaVkzRXdJU1N3Y0ZES2s3bnpoZWNIdjMvZmRyVVg4dW9DL1kweGRMQmJEK05Ub3VqUkVCSy83YkN4Z0NxUHBRQWowV0RPem5EUGJQQWNrQUFBRUFoUUFBQkRRRU93QVZBRSt5QkJZWEVSSTVBTEFBUlZpd0NpOGJzUW9iUGxtd0FFVllzQlF2RzdFVUd6NVpzQUJGV0xBQUx4dXhBQTgrV2JJUEZBQVJFam13RHkreUJnRUtLMWdoMkJ2MFdiQUQwTEFQRUxBUzBEQXhJU01UQndjak55WW1OeE16QXdjR0Z4TXpBemNUTXdONTdrVjFIYUFmblpzU051dzRCQU5aTmFBMWRHRHRBV29UaTQwWDI2UUJUUDZ5UUdzaUFRdis3aFFDRFFBQkFPY0FBQVdNQmJBQUVBQkdzZ0lSRWhFU09RQ3dBRVZZc0FFdkc3RUJIejVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3Q1M4YnNRa1BQbG15QlFrQkVSSTVzQVV2c2c0QkNpdFlJZGdiOUZrd01UTVRNd00yRnhZV0J3TWpFelltSkFjRDUvMzJhNXF0NXZBWlRQWk1FR0QrK3M1OEJiRDl3aXdFQXZQYy9qY0J5bitEQmlyOVdQLy9BQTBBQUFQNUJnQUNCZ0JNQUFBQUFnQmkvK29Gd1FYSUFDRUFMQUJrc2h3dExoRVNPYkFjRUxBcjBBQ3dBRVZZc0JBdkc3RVFIejVac0FCRldMQUFMeHV4QUE4K1diSWpBQkFSRWptd0l5K3lGZ0VLSzFnaDJCdjBXYkFGMExBakVMQU0wTEFBRUxJZEFRb3JXQ0hZRy9SWnNCQVFzaWtCQ2l0WUlkZ2I5Rmt3TVFVbUpBSTNOeVltTnhjSEZCYzJFaVFYRmhJWEZnY0hKUWNHRnhZV0Z4WTNGd1lCSlRjMkp5WW1KeVlHQndOb3NQNzNkQjROZzRFSnNBSmVKYndCQzUvUTZRVUJDeGI4dWd3UENnNmJnSjNESFhUOThRSmJCd3NEQlhab2g4UTNGZ0drQVNHdlNCelRwUUZFZENpMEFTR1pCQVQrNnVwU1VZa0JPRk5LZFlnREEwaklVd05sQlNGQ1FuQ0JBd1hHendBQy8vVC82Z1NEQkZNQUhBQW1BSkd5RFNjb0VSSTVzQTBRc0I3UUFMQUFSVml3RGk4YnNRNGJQbG13QUVWWXNBQXZHN0VBRHo1WnNpRU9BQkVTT2JBaEw3Uy9JYzhoQWwyMFh5RnZJUUp4c3I4aEFYRzBIeUV2SVFKeHNvOGhBVjIwN3lIL0lRSnhzaElIQ2l0WUlkZ2I5Rm13Qk5Dd0lSQ3dDOUN3QUJDeUZ3RUtLMWdoMkJ2MFdiSVpEZ0FSRWptd0RoQ3lIUUVLSzFnaDJCdjBXVEF4QlM0Q055WW1OeGNIQmhjMkpCY1dFZ2NISVFZV0ZoY1dOeGNHQmdNbUJnY0ZOelluSmlZQ2JZdlFZUlJwYUFla0JBTkNTUUVhczhySkhnLzlWd2N0YUVtYWdIaEQ0ZzllalRVQndRVUhCUXBZRkFPSTdZa2d1NVFCT0Y4dDAra0ZCZjdaNm1oUmdVMENCWWw5WVdzRG9nTjlrQUlXTGl4SFV2Ly9BR0wrUXdYQkJjZ0NKZ0orQUFBQUJ3UDlBc2YvcWYvLy8vVCtSZ1NEQkZNQ0pnSi9BQUFBQndQOUFkZi9yUC8vQURVQUFBSW9CYkFDQmdBdEFBRC8vLytsQUFBSDRBY2tBaVlCMlFBQUFRY0JhZ0pRQVQwQUNRQ3dDUyt3R2R3d01RRC8vLyt0QUFBR2NnWGFBaVlCK1FBQUFRY0JhZ0dGLy9NQUNRQ3dDUyt3R2R3d01RQUFBUUFqL3IwRld3V3dBQmtBWHJJWUdoc1JFamtBc0JBdnNBQkZXTEFFTHh1eEJCOCtXYkFBUlZpd0NDOGJzUWdmUGxtd0FFVllzQUl2RzdFQ0R6NVpzZ2NFQWhFU09iQUhMN0lZQVFvcldDSFlHL1Jac2dvSEdCRVNPYkFRRUxJUkFRb3JXQ0hZRy9SWk1ERUJJd01qRXpNRE13RWhBUllTQndJQUJ6YzJOaEluSmlZbkp3R1ZDSFAzL2ZkcVpBSU9BVHo5dDhqSUdCdit4L3dUY1p4SURRMkVjdjBDY3YyT0JiRDlwQUpjL1lZZi9zemovdmYreWdUREJJa0JBWGR0ZVFRQ0FBRUFJZjduQklBRU9nQVdBRjZ5QmhjWUVSSTVBTEFHTDdBQVJWaXdFUzhic1JFYlBsbXdBRVZZc0JVdkc3RVZHejVac0FCRldMQVBMeHV4RHc4K1diSVREeEVSRWptd0V5K3lEZ0VLSzFnaDJCdjBXYklBRGhNUkVqbXdCaEN5QndjS0sxZ2gyQnYwV1RBeEFSWVdCd1lHQnljMk5qYzJKaWNuQXlNVE13TXpBU0VDdDQrV0RnL3lza0oxaGd3T2NtNjJTK3k4N0V0SUFZTUJOd0pjS3VhZG8vY3VzaVdSWW0ySEJnSCtWQVE2L2xBQnNBRC8vLy9LL240RmZBV3dBaVlCM2dBQUFBY0FFQVJULzhiLy8vKy8vbjRFZUFRNkFpWUIvZ0FBQUFjQUVBTmsvOFlBQVFBdS9rWUZnZ1d3QUJRQWRMSUtGUllSRWprQXNBQkZXTEFBTHh1eEFCOCtXYkFBUlZpd0F5OGJzUU1mUGxtd0FFVllzQkl2RzdFU0R6NVpzQUJGV0xBSUx4dXhDQkUrV2JJQ0FCSVJFamw4c0FJdkdMUmdBbkFDQWwyME1BSkFBZ0pkc0FnUXNnMEJDaXRZSWRnYjlGbXdBaEN5RUFFS0sxZ2gyQnYwV1RBeEFRTWhFek1CQmdZbklpYzNGak15TnhNaEF5TVRBaUJ1QW1wdjkvNytHTmFtTjA0ak5pbUFJVy85bG12Mi9BV3cvWU1DZmZvWHVNa0NFOGNPeEFLUi9aY0ZzQUFBQVFBUi9rY0VQd1E2QUJRQWJiSUxGUllSRWprQXNBQkZXTEFBTHh1eEFCcytXYkFBUlZpd0F5OGJzUU1iUGxtd0FFVllzQkl2RzdFU0R6NVpzQUJGV0xBSUx4dXhDQkUrV2JJQ0F4SVJFamw4c0FJdkdMUkFBbEFDQWwyd0NCQ3lEUUVLSzFnaDJCdjBXYkFDRUxJUUFRb3JXQ0hZRy9SWk1ERUJBeUVUTXdNR0JpTWlKemNXTXpJM0V5RURJeE1CdTA4QmwwL3R3eGpOb3p0SUhqMGpnQ0ZTL21sTTdyd0VPdjQ5QWNQN2g3VEdFc0VRd2dIcC9rc0VPdi8vQUNmK2ZnV0hCYkFDSmdBc0FBQUFCd0FRQkYvL3h2Ly9BQm4rZmdSMUJEb0NKZ0lBQUFBQUJ3QVFBMkgveHYvL0FNWCttZ1ZxQmJBQ0pnSHFBQUFBQndQOUFyb0FBUC8vQUhEK21nUWdCRHNDSmdJS0FBQUFCd1A5QWJrQUFQLy9BQ2YrZmdiT0JiQUNKZ0F4QUFBQUJ3QVFCWjcveHYvL0FDTCtmZ1hKQkRvQ0pnSC9BQUFBQndBUUJMWC94di8vQURVQUFBSW9CYkFDQmdBdEFBRC8vLytrQUFBRXJnY2RBaVlBSlFBQUFRY0JhZ0V3QVRZQUNRQ3dCQyt3RHR3d01RRC8vd0FpLytnRDlBWG5BaVlBUlFBQUFRY0JhZ0NJQUFBQUNRQ3dHQyt3TDl3d01RRC8vLytrQUFBRXJnY0RBaVlBSlFBQUFRY0Fhd0VvQVRZQURBQ3dCQyt3SE55d0M5QXdNZi8vQUNMLzZBUURCYzBDSmdCRkFBQUJCd0JyQUlBQUFBQU1BTEFZTDdBOTNMQXMwREF4Ly8vL2h3QUFCM2dGc0FJR0FJa0FBUC8vQUEvLzZBWndCRklDQmdDcEFBRC8vd0FuQUFBRXVnY2tBaVlBS1FBQUFRY0JhZ0Q0QVQwQUNRQ3dCaSt3RDl3d01RRC8vd0E3LytvRUFnWG5BaVlBU1FBQUFRWUJhbkVBQUFrQXNBa3ZzQ1BjTURFQUFBSUFTUC9vQlRjRnd3QWFBQ1FBWHJJVkpTWVJFam13RlJDd0hOQUFzQUJGV0xBQUx4dXhBQjgrV2JBQVJWaXdDaThic1FvUFBsbXlFQUFLRVJJNXNCQXZzQUFRc2hVQkNpdFlJZGdiOUZtd0NoQ3lHd0VLSzFnaDJCdjBXYkFRRUxJZUFRb3JXQ0hZRy9SWk1ERUJGZ1FYRmdjSEJnSUVKeVltQWpjM0JUWW5KaVluSmdjbk5qWVRGalkzSVFjR0Z4WVdBdSs5QVE4OVB4a1FIY3IrMXF5ejhtUWFGZ092RHdvU3FvdWswUjVBd1F5UjJrUDlSUWNPQ2hDUkJjTUNycHFneW03Ry9yeXZCQVNxQVRERmp3RmJVNGVYQXdOSnlTa3IrdndEeTlFaVRrTnNkd0QvL3dBMi8rb0Q5Z1JRQWdZQlpRQUEvLzhBU1Avb0JUY0czQUltQXBvQUFBRUhBR3NBOXdFUEFBd0FzQUF2c0RiY3NDWFFNREgvL3dBMi8rb0Q5Z1hPQWlZQlpRQUFBUVlBYTNJQkFBd0FzQUF2c0MvY3NCN1FNREgvLy8rbEFBQUg0QWNLQWlZQjJRQUFBUWNBYXdKSUFUMEFEQUN3Q1Mrd0o5eXdGdEF3TWYvLy82MEFBQVp5QmNBQ0pnSDVBQUFCQndCckFYMy84d0FNQUxBSkw3QW4zTEFXMERBeC8vOEFIdi90QktnSEdBSW1BZG9BQUFFSEFHc0E0d0ZMQUF3QXNBNHZzRHZjc0NyUU1ESC8vd0FXLytrRDJnWE5BaVlCK2dBQUFRWUFhMWNBQUF3QXNDWXZzRHZjc0NyUU1ERUFBUUF2LytZRW5BV3dBQnNBYXJJWkhCMFJFamtBc0FCRldMQUNMeHV4QWg4K1diQUFSVml3REM4YnNRd1BQbG13QWhDeUFBRUtLMWdoMkJ2MFdiSUVBQUlSRWpteUd3d0NFUkk1c0JzdnNoa0hDaXRZSWRnYjlGbXlCUnNaRVJJNXNoQU1HUkVTT2JBTUVMSVRBUW9yV0NIWUcvUlpNREVCSVRjaEJ3RVdGZ2NPQWljbUpqY3pCaFlYRmpZM05pWW5KemNEVS8ydUpBTjNIZjVGcUxBT0M1YjdrOGpvQ1BRRWJWcHZyUkFSZElHWElBVGt6SzcrVlJudnI0Ykphd1FFN0x0a2VRSUVmMitCaXdRQnR3QUIvL0QrY2dSVUJEb0FHd0Jkc2dzY0hSRVNPUUN3REMrd0FFVllzQUl2RzdFQ0d6NVpzZ0FCQ2l0WUlkZ2I5Rm15QkFBQ0VSSTVzaHNNQWhFU09iQWJMN0laQndvcldDSFlHL1Jac2dVWkd4RVNPYklQQWd3UkVqbXdEQkN5RXdFS0sxZ2gyQnYwV1RBeEFTRTNJUWNCRmhZSERnSW5KaVkzRndZV0Z4WTJOelltSnljM0F3bjl0aU1EY2h6K1JhVzFEd3VXK0pMRzV3anNCR3RmY3JFUUVYYUNtaUFEZHNTbS9rb1o2N0NGeUdzREJPdTZBV1IrQWdTRGNJT0tCQUcyLy84QUp3QUFCWHdHOFFJbUFkc0FBQUVIQUhJQklRRkJBQk1Bc0FCRldMQUlMeHV4Q0I4K1diQUwzREF4QVAvL0FCa0FBQVJJQmFjQ0pnSDdBQUFCQmdCeVp2Y0FFd0N3QUVWWXNBY3ZHN0VIR3o1WnNBdmNNREVBLy84QUp3QUFCWHdIQ2dJbUFkc0FBQUVIQUdzQlR3RTlBQXdBc0FBdnNCdmNzQXJRTURILy93QVpBQUFFU0FYQUFpWUIrd0FBQVFjQWF3Q1UvL01BREFDd0FDK3dHOXl3Q3RBd01mLy9BR3YvNXdVaEJ3TUNKZ0F6QUFBQkJ3QnJBVDhCTmdBTUFMQUtMN0EwM0xBajBEQXgvLzhBT2Yvb0JDY0Z6UUltQUZNQUFBRUdBR3Q5QUFBTUFMQUVMN0F5M0xBaDBEQXgvLzhBWXYvbkJSb0Z5QUlHQWpVQUFQLy9BRGIvNXdRbUJGSUNCZ0kyQUFELy93QmkvK2NGR2djSEFpWUNOUUFBQVFjQWF3Rk5BVG9BREFDd0NpK3dOdHl3SmRBd01mLy9BRGIvNXdRbUJjMENKZ0kyQUFBQkJnQnJld0FBREFDd0JDK3dMOXl3SHRBd01mLy9BRS8vNlFUM0J4a0NKZ0h3QUFBQkJ3QnJBU0VCVEFBTUFMQVVMN0F5M0xBaDBEQXgvLzhBSS8vb0ErVUZ6UUltQWhBQUFBRUdBR3RpQUFBTUFMQUlMN0F4M0xBZzBEQXgvLzhBbS8vbkJWTUc4UUltQWVZQUFBRUhBSElBM3dGQkFBa0FzQUV2c0JIY01ERUEvLy8vdGY1RkJCSUZ0QUltQUYwQUFBRUdBSEllQkFBSkFMQUJMN0FRM0RBeEFQLy9BSnYvNXdWVEJ3b0NKZ0htQUFBQkJ3QnJBUTBCUFFBTUFMQUJMN0FpM0xBUjBEQXgvLy8vdGY1RkJCSUZ6UUltQUYwQUFBRUdBR3RNQUFBTUFMQUJMN0FoM0xBUTBEQXgvLzhBbS8vbkJWTUhQQUltQWVZQUFBRUhBVzhCWEFFOUFBd0FzQUV2c0JQY3NCWFFNREgvLy8rMS9rVUVoQVgvQWlZQVhRQUFBUWNCYndDYkFBQUFGZ0N3QUVWWXNBOHZHN0VQR3o1WnNCYmNzQkxRTURILy93REZBQUFGYWdjS0FpWUI2Z0FBQVFjQWF3RkpBVDBBREFDd0FDK3dJdHl3RWRBd01mLy9BSEFBQUFRZ0JjQUNKZ0lLQUFBQkJnQnJiZk1BREFDd0NDK3dKTnl3RTlBd01mLy9BQzcrbWdTc0JiQUNKZ0dFQUFBQUJ3UDlBUDhBQVAvL0FCaittZ09KQkRvQ0pnSDJBQUFBQndQOUFPVUFBUC8vQUM0QUFBYTlCd3NBSmdIdkN3QUFKd0F0QkpVQUFBRUhBR3NCOXdFK0FCWUFzQUJGV0xBS0x4dXhDaDgrV2JBZTNMQXAwREF4Ly84QUlnQUFCZkVGd0FBbUFnOEFBQUFuQVBRRUpnQUFBUWNBYXdGeS8vTUFGZ0N3QUVWWXNBb3ZHN0VLR3o1WnNCN2NzQ25RTURILy93QXova1lFL0FXd0FDWUJoRkFBQUNZRDFhNHBBQWNEL0FFc0FBRC8vd0FKL2tRRDJ3UTZBQ1lCOWxJQUFDY0QxZitKLzNvQUJ3UDhBUUwvL3YvLy84UCtSZ1ZIQmJBQ0pnQThBQUFBQndQOEE3QUFBUC8vLzduK1JnUVRCRG9DSmdCY0FBQUFCd1A4QXIwQUFBQUIvOE1BQUFWSEJiQUFFUUJqQUxBQVJWaXdDeThic1FzZlBsbXdBRVZZc0E0dkc3RU9IejVac0FCRldMQUNMeHV4QWc4K1diQUFSVml3QlM4YnNRVVBQbG15RVFzQ0VSSTVzQkV2c2dBSENpdFlJZGdiOUZteUJBc0NFUkk1c0FmUXNCRVFzQW5Rc2cwTEFoRVNPVEF4QVNNQklRTUJJUUVqTnpNQklSTUJJUUV6QThlS0FTUCs3dHorZlA3VkFmRjRIblQrN3dFUTFnRjZBU3IrTEhJQ2xmMXJBaFg5NndLVnFnSngvZk1DRGYyUEFBQUIvN2tBQUFRVEJEb0FFUUJqQUxBQVJWaXdDeThic1FzYlBsbXdBRVZZc0E0dkc3RU9HejVac0FCRldMQUNMeHV4QWc4K1diQUFSVml3QlM4YnNRVVBQbG15RVE0Q0VSSTVzQkV2c2dBSENpdFlJZGdiOUZteUJBNENFUkk1c0FmUXNCRVFzQW5Rc2cwT0FoRVNPVEF4QVNNVEl3TUJJUUVqTnpNRE14TVRJUUV6QXltVzAvaVgvdmIrN0FGbmdoNkV4ZmlNL3dFVi9yQ0VBZGYrS1FGeC9vOEIxNm9CdWY2ZUFXTCtSd0FDQURBQUFBVDRCYkFBREFBVkFGQ3lEQllYRVJJNXNBd1FzQS9RQUxBQVJWaXdBUzhic1FFZlBsbXdBRVZZc0FNdkc3RUREejVac2dBQkF4RVNPYkFBTDdBREVMSU5BUW9yV0NIWUcvUlpzQUFRc2c0QkNpdFlJZGdiOUZrd01RRVRNd01sTGdJM1BnSXpFeE1sQmdZSEJoWVhBNlJkOS8zOStZdlNad3NMbWYrWnNGcis3b0N0RHhGdmFRT2JBaFg2VUFFRWM4eUVqTlZ6L1M0Q0JnSUNqM2R2akFULy93QTcvK2NFaUFZQUFnWUFTQUFBQUFJQVJRQUFCb0FGc0FBWUFDRUFXcklaSWlNUkVqbXdHUkN3Q2RBQXNBQkZXTEFLTHh1eENoOCtXYkFBUlZpd0dDOGJzUmdQUGxteUNBb1lFUkk1c0FndnNCZ1FzZ3dCQ2l0WUlkZ2I5Rm15RWdvWUVSSTVzQm5Rc0FnUXNob0JDaXRZSWRnYjlGa3dNU1V1QWpjK0FqTUZFek1ERnpZMk5UUW5GeFlYRWdBakpSTWxCZ1lIQmhZWEFnaUwwbVlMQzVyOW1RRXVYZmJaTzMrYUZlWVNCaEQrMy9uKzExcis3SDJ1RVE5dWFRRUVkTXVFak5aeUFRSVYreG9DQXViZlhWZ0JXVnYrMXY2YnlnSUdBZ0tOZUhDTUJBQUFBZ0JILytZR1VRWVlBQ01BTWdDQXNnWXpOQkVTT2JBR0VMQWswQUN3QUVWWXNBY3ZHN0VISVQ1WnNBQkZXTEFhTHh1eEdnOCtXYkFBUlZpd0h5OGJzUjhQUGxteUJBY2ZFUkk1c0FRdnNnWUhIeEVTT2JBYUVMSU9BUW9yV0NIWUcvUlpzaE1ISHhFU09iSWRCeDhSRWptd0JCQ3lKZ0VLSzFnaDJCdjBXYkFmRUxJdkFRb3JXQ0hZRy9SWk1ERVROaEkyRnhZWEV6TURCaGNXRmhjV0VoTTJKeGNXRnhZQ0JDY2lKaWNHSnlZbUp5WUJKaWNtQmdjSEJoY1dGaGNXTnpkUEZZckxnWnhaYmUzTkF3TUROeStPcndjQ0V0OE9CQWVML3ZXcGRwOGNocitac2djREF0RTNkM3lkRlFNR0FRSmFVbjVsQmdJSHNBRVZoZ01FZHdKRSswNGVIemRBQXdrQkt3RU5aR1FCWkdQYi9xSzlBMXBadUFRRTA3ZzdBVzVqQkFMUHNSUXpPR1p6QWdSMVJRQUFBUUNxLytnRnVnV3dBQ29BWTdJVkt5d1JFamtBc0FCRldMQU5MeHV4RFI4K1diQUFSVml3Snk4YnNTY1BQbG15QmlzTkVSSTVzQVl2c2dNQkNpdFlJZGdiOUZtd0RSQ3lEQUVLSzFnaDJCdjBXYklVQXdZUkVqbXdKeEN5R3dFS0sxZ2gyQnYwV2JJZ0RTY1JFamt3TVFFMkppY25OeGN5TmpjMkp5VTNCUllXQndZR0J4WVdCd2NHRmhjV0VoTTJKeGNXRnhZQ0JpY21KamNDWkFsVlYrRWtqNVdrRGhubS9wMGtBUy92OVE4SWtabGlYd2tIQlMwdGdwb0hBaEhvRFFRSGlmK25sNTRJQVh0bGV3VUN6UUY0ZEw4SkFjMEJBZGJBYjZzK0lxUitSalpJQWdrQk1BRUJaR1FCWkdQZC9xUzlBZ0t3bXdBQkFHSC80d1ROQkRvQUtRQmdzaVVxS3hFU09RQ3dBRVZZc0I4dkc3RWZHejVac0FCRldMQVFMeHV4RUE4K1diSURBUW9yV0NIWUcvUlpzZ2tRSHhFU09iSVlLaDhSRWptd0dDK3lGd0VLSzFnaDJCdjBXYkFmRUxJZUFRb3JXQ0hZRy9SWnNpWVhHQkVTT1RBeEpSVVdGeFkyTmljbUp4Y1dGeFlDQmljbUpqYzNOaWNuTnhjMk56WW5KVGNYRmhZSEJnWUhGaFlIQXE0RE4wbHlQUVVFRk40UkNSSnc1WldYa1FVSkM0UHdINlhPRkJXci92UWM5cjNNQ0FWamEwOUdCdWtoTXdNRmJOVjVUMDRCVGs2YS90YWdBUU44ZEV4eEJ3SzlBUWFKaEFvQnd3RUZwbzlQZFM4YWVGSUFBUUNTL3JrRDJRV3dBQ2NBWDdJa0tDa1JFamtBc0JzdnNBQkZXTEFLTHh1eENoOCtXYkFBUlZpd0h5OGJzUjhQUGxteUFTZ0tFUkk1c0FFdnNnQUJDaXRZSWRnYjlGbXdDaEN5Q1FFS0sxZ2gyQnYwV2JJUUFBRVJFam13SHhDeUdBVUtLMWdoMkJ2MFdUQXhFemNYTWpZM05pWW5KVGNYRmhZSEJnVVdGaGNXRHdJM0J3WUhKelkzQnlZbkpqYzNOaVlua2lLMWpxY09EbTVyL3RvZitPWHlEeEgrK2tkVUNBUUhGZ1BQR2lqSGcyUXNsU1VFQXdvU0RsMWVBbHpEQVhsemJYRUVBY01CQWQ3QTNuVWVlRlF6TlhjTUJLRDNuRkdIYndFdVJ5eE1mVzJBQkFBQkFJeitxQU81QkRvQUl3QmZzaDhrSlJFU09RQ3dHUyt3QUVWWXNBa3ZHN0VKR3o1WnNBQkZXTEFkTHh1eEhROCtXYklCSkFrUkVqbXdBUyt5QUFFS0sxZ2gyQnYwV2JBSkVMSUlBUW9yV0NIWUcvUlpzaEFBQVJFU09iQWRFTElWQVFvcldDSFlHL1JaTURFVE54YzJOelltSnlVM0JSWVdCd1lHQnhZWEZnY0hOd2NHQnljMk53Y21OemMySmllTUg5TFdGd3BVVlA3YUhnRU52ZFVLQldWbmJnMEVCZ2ErR1NiSWcyc29tU01HRHdsTlRBR2Jzd0VHa0VOUUFnSEJBUVd3a0ZCN01UUjdKaWdoQWFIeG9WR1djUUV0VG9CT1RnTUFBZi9lLytVSFNnV3dBQ01BWXJJakpDVVJFamtBc0FCRldMQU5MeHV4RFI4K1diQUFSVml3SUM4YnNTQVBQbG13QUVWWXNBVXZHN0VGRHo1WnNBMFFzZ0FCQ2l0WUlkZ2I5Rm13QlJDeUNBRUtLMWdoMkJ2MFdiQWdFTElVQVFvcldDSFlHL1Jac2hrTkJSRVNPVEF4QVNFREFnSUhJemMzTmpZM054TWhBd1lYRmhZWEZoSVROaWNYRmhjV0FnUW5KaVkzQkZuK2I1QkQrY0JlRnpOMG15a1Vpd04xdWdNREF6VXVpYW9GQWhMcERnUUhqdjc0cDYydkVnVGovVnYrMVA3ekJjb0RETmJwY2dLbSs3a2RIelJBQXdrQkpRRU1aR1FCWkdQZi9xTzlCQVRQcmdBQi85Ny81d1ltQkRvQUlnQmlzZ0FqSkJFU09RQ3dBRVZZc0Ewdkc3RU5HejVac0FCRldMQUZMeHV4QlE4K1diQUFSVml3SHk4YnNSOFBQbG13RFJDeUFBRUtLMWdoMkJ2MFdiQUZFTElIQVFvcldDSFlHL1Jac0I4UXNoSUJDaXRZSWRnYjlGbXlHQTBGRVJJNU1ERUJJd01HQmljak56YzJOamMzRXlFREJoWVhGalkzTnpZbkZ4WVhGZ0lHSnlZbU53TXcvbUkzenFCTkZTVmJjeDhPWUFMTWVRZzhQbTZHRFFJQkV0OE9CUXA1N1ptc3N4SURkUDQvNnMwRXlRTUltckJPQWM3OUxGRmxBZ1RwM0R4ZVhnRmVYc1ArdHJZREFzeXZBQUFCQUNmLzVnZFFCYkFBSGdCeHNoWWZJQkVTT1FDd0FFVllzQUF2RzdFQUh6NVpzQUJGV0xBYUx4dXhHaDgrV2JBQVJWaXdFaThic1JJUFBsbXdBRVZZc0Jndkc3RVlEejVac0JJUXNnWUJDaXRZSWRnYjlGbXlDd0FZRVJJNXNoMEFHQkVTT1h5d0hTOFl0REFkUUIwQ1hiSVdBUW9yV0NIWUcvUlpNREVCQXdZWEZoWVhGaElUTmljWEZoY1dBZ1FuSmlZM055RURJeE16QXlFVEJYaTNBd01FTXkySnF3VUNFdWtPQkFlTy92bXBwNjhPSi8yWGEvYjk5bThDYVc4RnNQdTNIUjQyUHdFSUFTSUJEbVJrQVdSajRQNmp1d01DenJILy9aY0ZzUDJEQW4wQUFBRUFDLy9tQmlrRU9nQWVBSFN5Q0I4Z0VSSTVBTEFBUlZpd0JDOGJzUVFiUGxtd0FFVllzQWd2RzdFSUd6NVpzQUJGV0xBYkx4dXhHdzgrV2JBQVJWaXdBaThic1FJUFBsbXlCd2dDRVJJNWZMQUhMeGl5VXdjQlhiSkFCd0Zkc2dBQkNpdFlJZGdiOUZtd0d4Q3lEd0VLSzFnaDJCdjBXYklVQ0FJUkVqa3dNUUVoQXlNVE13TWhFek1EQmhjV0ZoY1dFamMwSnhjV0Z4WUNCaWNtSmpjQzUvNWVUZTI4N1U0Qm9rM3RlUU1EQlRzd2Q0MENFZDRPQlFwNDdwbXBzUXdCdXY1R0JEcitRd0c5L1N3ZklEWkJBUVlCRSs5ZVhnRmVYcjcrc3JnREFzcXlBQUVBVFAvb0JKUUZ4d0FoQUVleUZ5SWpFUkk1QUxBQVJWaXdDUzhic1FrZlBsbXdBRVZZc0FBdkc3RUFEejVac0FrUXNnNEJDaXRZSWRnYjlGbXdBQkN5RndFS0sxZ2gyQnYwV2JJY0NRQVJFamt3TVFVbUpnSTNFellTSkJjV0Z3Y21KeVlHQndjR0Z4WVdGeFkySnlZbkZ4Y1dBZ1FDVXFQeWNSWXBITDhCSXF6TWoxQjZtNkxxSGlnS0NRMk5iNU91QVFFTjZ3MEtpLzd5RlFTa0FSeW1BUWF6QVI2YkFRUll0a1VDQXU2Ky9VWktlWk1EQXREaVdGY0JydGIrNzVZQUFRQTkvK2NEcWdSUkFCOEFRN0lBSUNFUkVqa0FzQUJGV0xBVEx4dXhFeHMrV2JBQVJWaXdDaThic1FvUFBsbXlBQUVLSzFnaDJCdjBXYkFLRUxBRTBMQVRFTElZQVFvcldDSFlHL1JaTURFbEZqWTNKek1YRmdZR0p5NENOemMrQWhjV0Z3Y21JeUlHQndZWEZoWUNCVmxpQWdYZkNBWnN6SDZOeTE4T0JSS1o4cEdvYlVGZGdYaXFGd3NHQ1d5dkFtbVdibTJldzJVREJJNzFsQ3FaL1l3QkFrUzdQYitkWHo5b2VnQUFBUUNRLytZRk5BV3dBQm9BVGJJSkd4d1JFamtBc0FCRldMQUNMeHV4QWg4K1diQUFSVml3Rnk4YnNSY1BQbG13QWhDeUFBRUtLMWdoMkJ2MFdiQUUwTEFGMExBWEVMSUtBUW9yV0NIWUcvUlpzaEFDRnhFU09UQXhBU0UzSVFjaEF3Y1dGaGNXRWpjM05pY1hGaGNXQWdRbkppWTNBa1grU3lRRVh5VCtUSllCQXpVdWg2Y0xBUUlTNkE0REI0bisrS3Vvcnc0RTQ4M04vSVU3TkVBREJnRVIveDVrWkFGa1k5bitvY0FEQXM2eEFBRUFjLy9vQkpjRU9nQVpBRTJ5Q2hvYkVSSTVBTEFBUlZpd0FpOGJzUUliUGxtd0FFVllzQll2RzdFV0R6NVpzQUlRc2dBQkNpdFlJZGdiOUZtd0JOQ3dCZEN3RmhDeUN3RUtLMWdoMkJ2MFdiSVFBaFlSRWprd01RRWhOeUVISVFNR0Z4WVdGeFkySnlZbkZ4WUhCZ1FuSmlZM0FhLyt4Q0lEY2lQK3VGZ0RBd1U3TVhlSUNnVVUzU2tPR2Y3M3dxbXlEZ04zdzhQOTd4OGdOMEFCQk95d1Mwb0J0SGZOK3dJQ3pLOEFBQUVBVnYvb0JTSUZ5QUFyQUhTeUd5d3RFUkk1QUxBQVJWaXdIQzhic1J3ZlBsbXdBRVZZc0E0dkc3RU9EejVac2lrY0RoRVNPYkFwTDdJZktRRnhza29wQVYyeUFBRUtLMWdoMkJ2MFdiQU9FTElHQVFvcldDSFlHL1Jac2dvY0RoRVNPYklVQUNrUkVqbXlIeHdPRVJJNXNCd1FzaU1CQ2l0WUlkZ2I5Rmt3TVFFaUJnY0dGaGNXTmpjM0JnWUVKeTRDTnpZbEppY21OelkySkJjV0JBY25OaVluSmdZSEJoWVhGd2NDdzZDN0R3MmJoNEsvRWZVTG9mNzFtNXo2ZHdvUkFUQlFNVDRHQ0o4QkVLYlZBUWdFOUFTR2JvM0JEdzZEaEwwa0FvTjhkMk4zQXdKK1pRR0Z3bVlEQW02N2V2dG5MRU5WWm9qQVpBTUY0YlVCWFc4Q0EzbG5aV3NCQWNqLy93QW8vK29FQWdSUkFnWUJwUUFBLy8vL3l2NUdCWXdGc0FJbUFkNEFBQUFIQS93RVRRQUEvLy8vdi81R0JKMEVPZ0ltQWY0QUFBQUhBL3dEWGdBQS8vLy9wUDVzQks0RnNBSW1BQ1VBQUFBSEFYQUJid0FELy84QUl2NXdBOXdFVUFJbUFFVUFBQUFIQVhBQXFRQUgvLzhBSi82YkJMd0ZzQUltQUNZQUFBQUhBWFlFbHdBSy8vOEFFUDZJQkE4R0FBSW1BRVlBQUFBSEFYWUVwZi8zLy84QUovNmJCT0FGc0FJbUFDZ0FBQUFIQVhZRWN3QUsvLzhBTy82UkJJZ0dBQUltQUVnQUFBQUhBWFlFa0FBQS8vOEFKLzM1Qk9BRnNBSW1BQ2dBQUFBSEE2c0JBZjZTLy84QU8vMzVCSWdHQUFJbUFFZ0FBQUFIQTZzQkh2NlMvLzhBSi82YkJZY0ZzQUltQUN3QUFBQUhBWFlGQUFBSy8vOEFEZjZiQS9rR0FBSW1BRXdBQUFBSEFYWUVmd0FLLy84QUp3QUFCWEVITmdJbUFDOEFBQUVIQUhjQnBRRTJBQWtBc0FRdnNBL2NNREVBLy84QUVRQUFCSFVIUFFJbUFFOEFBQUVIQUhjQm93RTlBQWtBc0FRdnNBL2NNREVBLy84QUovN2NCWEVGc0FJbUFDOEFBQUFIQVhZRTBRQkwvLzhBRWY3SEJFb0dBQUltQUU4QUFBQUhBWFlFWUFBMi8vOEFKLzZiQThNRnNBSW1BREFBQUFBSEFYWUVsd0FLLy8vLzVQNmJBaGNHQUFJbUFGQUFBQUFIQVhZRFJBQUsvLzhBSndBQUJzNEhOZ0ltQURFQUFBRUhBSGNDdmdFMkFCTUFzQUJGV0xBQ0x4dXhBaDgrV2JBUjNEQXhBUC8vQUJBQUFBWm9CZ0FDSmdCUkFBQUJCd0IzQXBnQUFBQUpBTEFETDdBazNEQXhBUC8vQUNmK213Yk9CYkFDSmdBeEFBQUFCd0YyQmFzQUN2Ly9BQkQrbXdab0JGSUNKZ0JSQUFBQUJ3RjJCYTRBQ3YvL0FDZitsd1dHQmJBQ0pnQXlBQUFBQndGMkJRSUFCdi8vQUEzK213UDZCRklDSmdCU0FBQUFCd0YyQkd3QUN2Ly9BQ2NBQUFVRUIwSUNKZ0EwQUFBQkJ3QjNBYXNCUWdBSkFMQURMN0FXM0RBeEFQLy8vOGYrWUFSdEJmY0NKZ0JVQUFBQkJ3QjNBWnYvOXdBSkFMQU5MN0FoM0RBeEFQLy9BQ2YrbXdUWUJiQUNKZ0EyQUFBQUJ3RjJCSmdBQ3YvLy85Nyttd0x2QkZNQ0pnQldBQUFBQndGMkF6NEFDdi8vQUNUK2tRUzdCY2NDSmdBM0FBQUFCd0YyQkxBQUFQLy9BQnoraUFQRUJGQUNKZ0JYQUFBQUJ3RjJCR0wvOS8vL0FKeitsQVVpQmJBQ0pnQTRBQUFBQndGMkJKOEFBLy8vQUR2K2tRS3VCVUVDSmdCWUFBQUFCd0YyQS9VQUFQLy9BSnNBQUFXQkJ6Y0NKZ0E2QUFBQkJ3RnVBTjBCUXdBSkFMQUJMN0FSM0RBeEFQLy9BR1FBQUFRTkJld0NKZ0JhQUFBQkJnRnVGdmdBQ1FDd0FTK3dFZHd3TVFELy93Q2IvcHNGZ1FXd0FpWUFPZ0FBQUFjQmRnVFZBQXIvL3dCay9wc0VEUVE2QWlZQVdnQUFBQWNCZGdSQ0FBci8vd0MzQUFBSE9nYzJBaVlBT3dBQUFRY0FSQUlvQVRZQUV3Q3dBRVZZc0Fzdkc3RUxIejVac0E3Y01ERUEvLzhBZHdBQUJmZ0dBQUltQUZzQUFBRUhBRVFCYXdBQUFCTUFzQUJGV0xBTEx4dXhDeHMrV2JBTzNEQXhBUC8vQUxjQUFBYzZCellDSmdBN0FBQUJCd0IzQXNNQk5nQVRBTEFBUlZpd0RDOGJzUXdmUGxtd0Q5d3dNUUQvL3dCM0FBQUYrQVlBQWlZQVd3QUFBUWNBZHdJR0FBQUFFd0N3QUVWWXNBd3ZHN0VNR3o1WnNBL2NNREVBLy84QXR3QUFCem9IQXdJbUFEc0FBQUVIQUdzQjlRRTJBQXdBc0FFdnNCN2NzQTNRTURILy93QjNBQUFGK0FYTkFpWUFXd0FBQVFjQWF3RTRBQUFBREFDd0FTK3dIdHl3RGRBd01mLy9BTGYrbXdjNkJiQUNKZ0E3QUFBQUJ3RjJCY1VBQ3YvL0FIZittd1g0QkRvQ0pnQmJBQUFBQndGMkJTY0FDdi8vLytYK213VG5CYkFDSmdBK0FBQUFCd0YyQko4QUN2Ly8vK2YrbXdQa0JEb0NKZ0JlQUFBQUJ3RjJCRU1BQ3YvLy82VCtsQVN1QmJBQ0pnQWxBQUFBQndGMkJPY0FBLy8vQUNMK21BUGNCRkFDSmdCRkFBQUFCd0YyQkNFQUIvLy8vNlFBQUFTdUI3c0NKZ0FsQUFBQkJ3RjBCUlVCUEFBSkFMQUVMN0FaM0RBeEFQLy9BQ0wvNkFQY0JvVUNKZ0JGQUFBQkJ3RjBCRzBBQmdBSkFMQVlMN0E2M0RBeEFQLy8vNlFBQUFZWUI3RUNKZ0FsQUFBQkJ3UHZBT3NCSVFBV0FMQUFSVml3QlM4YnNRVWZQbG13RHR5d0ZOQXdNZi8vQUNMLzZBVndCbndDSmdCRkFBQUJCZ1B2USt3QUZnQ3dBRVZZc0Jndkc3RVlHejVac0MvY3NEWFFNREgvLy8ra0FBQUVyZ2V1QWlZQUpRQUFBUWNEOEFEeUFTc0FGZ0N3QUVWWXNBUXZHN0VFSHo1WnNBN2NzQlBRTURILy93QWkvK2dEOGdaNUFpWUFSUUFBQVFZRDhFcjJBQllBc0FCRldMQVlMeHV4R0JzK1diQXQzTEEwMERBeC8vLy9wQUFBQllBSDNnSW1BQ1VBQUFFSEEvRUE3QUVUQUJZQXNBQkZXTEFGTHh1eEJSOCtXYkFNM0xBUzBEQXgvLzhBSXYvb0JOZ0dxUUltQUVVQUFBRUdBL0ZFM2dBV0FMQUFSVml3R0M4YnNSZ2JQbG13TGR5d005QXdNZi8vLzZRQUFBU3VCOVVDSmdBbEFBQUJCd1B5QU9zQkJRQVdBTEFBUlZpd0JDOGJzUVFmUGxtd0R0eXdGZEF3TWYvL0FDTC82QVBzQnFBQ0pnQkZBQUFCQmdQeVE5QUFGZ0N3QUVWWXNCZ3ZHN0VZR3o1WnNDM2NzRGJRTURILy8vK2svcFFFcmdjM0FpWUFKUUFBQUNjQlp3RHlBVFlCQndGMkJPY0FBd0FUQUxBQVJWaXdCQzhic1FRZlBsbXdEOXd3TVFELy93QWkvcGdENlFZQkFpWUFSUUFBQUNZQlowb0FBUWNCZGdRaEFBY0FFd0N3QUVWWXNCZ3ZHN0VZR3o1WnNERGNNREVBLy8vL3BBQUFCSzRIcmdJbUFDVUFBQUVIQS9NQkhBRXdBQllBc0FCRldMQUVMeHV4QkI4K1diQU8zTEFhMERBeC8vOEFJdi9vQSs0R2VRSW1BRVVBQUFFR0EvTjArd0FXQUxBQVJWaXdHQzhic1JnYlBsbXdMOXl3TzlBd01mLy8vNlFBQUFTdUI2NENKZ0FsQUFBQkJ3UHVBUndCTUFBTUFMQUVMN0FPM0xBYTBEQXgvLzhBSXYvb0ErNEdlUUltQUVVQUFBRUdBKzUwK3dBTUFMQVlMN0F2M0xBNDBEQXgvLy8vcEFBQUJLNElQZ0ltQUNVQUFBRUhBL1FCSEFFMkFBd0FzQVF2c0E3Y3NCalFNREgvL3dBaS8rZ0Q0Z2NJQWlZQVJRQUFBUVlEOUhRQUFBd0FzQmd2c0MvY3NEblFNREgvLy8ra0FBQUVyZ2dYQWlZQUpRQUFBUWNEOVFFZ0FUd0FEQUN3QkMrd0R0eXdGOUF3TWYvL0FDTC82QVA2QnVFQ0pnQkZBQUFCQmdQMWVBWUFEQUN3R0Mrd0w5eXdPTkF3TWYvLy82VCtsQVN1QngwQ0pnQWxBQUFBSndGcUFUQUJOZ0VIQVhZRTV3QURBQk1Bc0FCRldMQUVMeHV4QkI4K1diQU8zREF4QVAvL0FDTCttQVAwQmVjQ0pnQkZBQUFBSndGcUFJZ0FBQUVIQVhZRUlRQUhBQk1Bc0FCRldMQVlMeHV4R0JzK1diQXYzREF4QVAvL0FDZittd1M2QmJBQ0pnQXBBQUFBQndGMkJLZ0FDdi8vQUR2K2tRUUNCRkVDSmdCSkFBQUFCd0YyQkhZQUFQLy9BQ2NBQUFTNkI4SUNKZ0FwQUFBQkJ3RjBCTjBCUXdBSkFMQUdMN0FhM0RBeEFQLy9BRHYvNmdRQ0JvVUNKZ0JKQUFBQkJ3RjBCRllBQmdBSkFMQUpMN0F1M0RBeEFQLy9BQ2NBQUFTNkJ6SUNKZ0FwQUFBQkJ3RnVBTWdCUGdBSkFMQUdMN0FXM0RBeEFQLy9BRHYvNmdRS0JmVUNKZ0JKQUFBQkJnRnVRUUVBQ1FDd0NTK3dLdHd3TVFELy93QW5BQUFGNEFlNEFpWUFLUUFBQVFjRDd3Q3pBU2dBRmdDd0FFVllzQWN2RzdFSEh6NVpzQS9jc0JYUU1ESC8vd0E3LytvRldRWjhBaVlBU1FBQUFRWUQ3eXpzQUJZQXNBQkZXTEFKTHh1eENScytXYkFqM0xBcDBEQXgvLzhBSndBQUJMb0h0UUltQUNrQUFBRUhBL0FBdWdFeUFCWUFzQUJGV0xBR0x4dXhCaDgrV2JBUDNMQVUwREF4Ly84QU8vL3FCQUlHZVFJbUFFa0FBQUVHQS9BejlnQVdBTEFBUlZpd0NTOGJzUWtiUGxtd0k5eXdLTkF3TWYvL0FDY0FBQVZJQitVQ0pnQXBBQUFCQndQeEFMUUJHZ0FXQUxBQVJWaXdCaThic1FZZlBsbXdEOXl3RTlBd01mLy9BRHYvNmdUQkJxa0NKZ0JKQUFBQkJnUHhMZDRBRmdDd0FFVllzQWt2RzdFSkd6NVpzQ0hjc0NmUU1ESC8vd0FuQUFBRXVnZmNBaVlBS1FBQUFRY0Q4Z0N6QVF3QUZnQ3dBRVZZc0FZdkc3RUdIejVac0EvY3NCYlFNREgvL3dBNy8rb0VBZ2FnQWlZQVNRQUFBUVlEOGl6UUFCWUFzQUJGV0xBSkx4dXhDUnMrV2JBaDNMQXEwREF4Ly84QUovNmJCTG9IUGdJbUFDa0FBQUFuQVdjQXVnRTlBUWNCZGdTb0FBb0FFd0N3QUVWWXNBWXZHN0VHSHo1WnNCRGNNREVBLy84QU8vNlJCQUlHQVFJbUFFa0FBQUFtQVdjekFBRUhBWFlFZGdBQUFCTUFzQUJGV0xBSkx4dXhDUnMrV2JBazNEQXhBUC8vQURVQUFBTFNCOElDSmdBdEFBQUJCd0YwQTVVQlF3QUpBTEFDTDdBUzNEQXhBUC8vQUNJQUFBS0hCbjRDSmdEMEFBQUJCd0YwQTByLy93QUpBTEFDTDdBUzNEQXhBUC8vLy8vK2x3SW9CYkFDSmdBdEFBQUFCd0YyQTE4QUJ2Ly8vK1QrbXdJSkJkZ0NKZ0JOQUFBQUJ3RjJBMFFBQ3YvL0FHditrUVVoQmNnQ0pnQXpBQUFBQndGMkJQWUFBUC8vQURuK2p3UW5CRklDSmdCVEFBQUFCd0YyQklULy92Ly9BR3YvNXdVaEI3c0NKZ0F6QUFBQkJ3RjBCU3dCUEFBSkFMQUtMN0F4M0RBeEFQLy9BRG4vNkFRbkJvVUNKZ0JUQUFBQkJ3RjBCR29BQmdBSkFMQUVMN0F2M0RBeEFQLy9BR3YvNXdZdkI3RUNKZ0F6QUFBQkJ3UHZBUUlCSVFBV0FMQUFSVml3Q2k4YnNRb2ZQbG13SnR5d0xOQXdNZi8vQURuLzZBVnRCbndDSmdCVEFBQUJCZ1B2UU93QUZnQ3dBRVZZc0FRdkc3RUVHejVac0NUY3NDclFNREgvL3dCci8rY0ZJUWV1QWlZQU13QUFBUWNEOEFFSkFTc0FGZ0N3QUVWWXNBb3ZHN0VLSHo1WnNDVGNzQ3ZRTURILy93QTUvK2dFSndaNUFpWUFVd0FBQVFZRDhFZjJBQllBc0FCRldMQUVMeHV4QkJzK1diQWszTEFwMERBeC8vOEFhLy9uQlpjSDNnSW1BRE1BQUFFSEEvRUJBd0VUQUJZQXNBQkZXTEFLTHh1eENoOCtXYkFrM0xBcTBEQXgvLzhBT2Yvb0JOVUdxUUltQUZNQUFBRUdBL0ZCM2dBV0FMQUFSVml3QkM4YnNRUWJQbG13SXR5d0tOQXdNZi8vQUd2LzV3VWhCOVVDSmdBekFBQUJCd1B5QVFJQkJRQVdBTEFBUlZpd0NpOGJzUW9mUGxtd0pOeXdMZEF3TWYvL0FEbi82QVFuQnFBQ0pnQlRBQUFCQmdQeVFOQUFGZ0N3QUVWWXNBUXZHN0VFR3o1WnNDTGNzQ3ZRTURILy93QnIvcEVGSVFjM0FpWUFNd0FBQUNjQlp3RUpBVFlCQndGMkJQWUFBQUFUQUxBQVJWaXdDaThic1FvZlBsbXdKZHd3TVFELy93QTUvbzhFSndZQkFpWUFVd0FBQUNZQlowY0FBUWNCZGdTRS8vNEFFd0N3QUVWWXNBUXZHN0VFR3o1WnNDUGNNREVBLy84QVcvL29CaVlITXdJbUFVVUFBQUVIQUhjQ0JnRXpBQk1Bc0FCRldMQUtMeHV4Q2g4K1diQXUzREF4QVAvL0FEYi81Z1VGQmdBQ0pnRkdBQUFCQndCM0FWb0FBQUFUQUxBQVJWaXdCQzhic1FRYlBsbXdLdHd3TVFELy93QmIvK2dHSmdjekFpWUJSUUFBQVFjQVJBRnJBVE1BRXdDd0FFVllzQW92RzdFS0h6NVpzQzNjTURFQS8vOEFOdi9tQlFVR0FBSW1BVVlBQUFFSEFFUUF2d0FBQUJNQXNBQkZXTEFFTHh1eEJCcytXYkFwM0RBeEFQLy9BRnYvNkFZbUI3Z0NKZ0ZGQUFBQkJ3RjBCU1VCT1FBVEFMQUFSVml3Q2k4YnNRb2ZQbG13T3R3d01RRC8vd0EyLytZRkJRYUZBaVlCUmdBQUFRY0JkQVI1QUFZQUV3Q3dBRVZZc0FRdkc3RUVHejVac0NqY01ERUEvLzhBVy8vb0JpWUhLQUltQVVVQUFBRUhBVzRCRUFFMEFCTUFzQUJGV0xBS0x4dXhDaDgrV2JBdjNEQXhBUC8vQURiLzVnVUZCZlVDSmdGR0FBQUJCZ0Z1WkFFQUV3Q3dBRVZZc0FRdkc3RUVHejVac0N2Y01ERUEvLzhBVy82UkJpWUdMZ0ltQVVVQUFBQUhBWFlFNEFBQS8vOEFOdjZJQlFVRXFBSW1BVVlBQUFBSEFYWUVkZi8zLy84QVcvNlJCUzhGc0FJbUFEa0FBQUFIQVhZRXpBQUEvLzhBU3Y2UkJERUVPZ0ltQUZrQUFBQUhBWFlFSVFBQS8vOEFXLy9tQlM4SHV3SW1BRGtBQUFFSEFYUUZCQUU4QUJNQXNBQkZXTEFLTHh1eENoOCtXYkFUM0RBeEFQLy9BRXIvNkFReEJvVUNKZ0JaQUFBQkJ3RjBCRzhBQmdBVEFMQUFSVml3Q0M4YnNRZ2JQbG13Rk53d01RRC8vd0JiLytnR3JRZENBaVlCUndBQUFRY0Fkd0lOQVVJQUV3Q3dBRVZZc0Jvdkc3RWFIejVac0IzY01ERUEvLzhBU3Yvb0JXRUY3QUltQVVnQUFBRUhBSGNCVmYvc0FCTUFzQUJGV0xBV0x4dXhGaHMrV2JBZTNEQXhBUC8vQUZ2LzZBYXRCMElDSmdGSEFBQUJCd0JFQVhJQlFnQVRBTEFBUlZpd0VpOGJzUklmUGxtd0hOd3dNUUQvL3dCSy8rZ0ZZUVhzQWlZQlNBQUFBUWNBUkFDNi8rd0FFd0N3QUVWWXNBNHZHN0VPR3o1WnNCM2NNREVBLy84QVcvL29CcTBIeHdJbUFVY0FBQUVIQVhRRkxBRklBQk1Bc0FCRldMQVNMeHV4RWg4K1diQWIzREF4QVAvL0FFci82QVZoQm5FQ0pnRklBQUFCQndGMEJIVC84Z0FUQUxBQVJWaXdEaThic1E0YlBsbXdITnd3TVFELy93QmIvK2dHclFjM0FpWUJSd0FBQVFjQmJnRVhBVU1BRXdDd0FFVllzQm92RzdFYUh6NVpzQjdjTURFQS8vOEFTdi9vQldFRjRRSW1BVWdBQUFFR0FXNWY3UUFUQUxBQVJWaXdGaThic1JZYlBsbXdIOXd3TVFELy93QmIvb2dHclFZQ0FpWUJSd0FBQUFjQmRnVHcvL2YvL3dCSy9wRUZZUVNVQWlZQlNBQUFBQWNCZGdRbEFBRC8vd0NoQUFBRlRRYzJBaVlBUFFBQUFRY0FSQUVpQVRZQUV3Q3dBRVZZc0Fndkc3RUlIejVac0FyY01ERUEvLy8vdGY1RkJCSUdBQUltQUYwQUFBRUdBRVIvQUFBVEFMQUFSVml3RHk4YnNROGJQbG13RWR3d01RRC8vd0NoL3FFRlRRV3dBaVlBUFFBQUFBY0JkZ1NrQUJELy8vKzEvZ3dFRWdRNkFpWUFYUUFBQUFjQmRnVUgvM3YvL3dDaEFBQUZUUWU3QWlZQVBRQUFBUWNCZEFUY0FUd0FDUUN3QVMrd0Y5d3dNUUQvLy8rMS9rVUVFZ2FGQWlZQVhRQUFBUWNCZEFRNUFBWUFDUUN3QVMrd0h0d3dNUUQvL3dDaEFBQUZUUWNyQWlZQVBRQUFBUWNCYmdESEFUY0FDUUN3QVMrd0U5d3dNUUQvLy8rMS9rVUVFZ1gxQWlZQVhRQUFBUVlCYmlRQkFBa0FzQUV2c0JyY01ERUEvLy8rcy8vbkJXY0YyQUFtQUROR0FBQUhBMTM5eHdBQUFBSUE3QVJ4QTJBRjJBQUZBQTRBRlFDd0RDK3dCOUN3QWRDd0RCQ3dCTkN3QmRBd01RRVROd2NCQndNekJ3WVdGd2NtTndIMW5jNEIvdkZkNjYwUENRNG1UWmdRQkprQlBnRVkvc01CQVZWVFBHUXdRMTJ4QVAvL0FEWUNDUUpZQXMwQUJnQVJBQUQvL3dBMkFna0NXQUxOQUFZQUVRQUEvLzhBbkFKdEJLVURNUUJHQTZEaEFFek5RQUQvL3dDQ0FtMEY0d014QUVZRG9Ja0FabVpBQVAvL0FJSUNiUVhqQXpFQVJnT2dpUUJtWmtBQS8vLy9UdjQvQXhjQUFBQW5BRVAvMWY3K0FRWUFRd0VBQUJ3QXRnQUNFQUlnQWdOZHRCQUNJQUlDY2JhQUFwQUNvQUlEWFRBeEFBRUFyZ1FnQWlJR0dnQUhBQjJ5QndnSkVSSTVBTEFBUlZpd0FDOGJzUUFoUGxtd0JOQ3dCQzh3TVFFWEJnY0hJemMyQWF0M2F4d2QwQlFtQmhwUGpYK2ZmT2NBQVFDS0JBQUIvZ1lBQUFjQUhiSUNDQWtSRWprQXNBQkZXTEFFTHh1eEJDRStXYkFBMExBQUx6QXhBU2MyTnpjekJ3WUJBWGRxSEI3UUZpVUVBRStMZ2FXSTRnQUIvNlQrMWdFVkFNb0FCd0FZc2djSUNSRVNPUUN3Q0MreUJBMEtLMWdoMkJ2MFdUQXhFeWMyTnpjekJ3WWFkbVliSE5RVEkvN1dVSW1CbW52Z0FBRUF6UVFCQWRJR0FBQUtBQk95Q0FzTUVSSTVBTEFBTDdBRzBMQUdMekF4QVFjR0Z4WVhCeVltTnpjQndCa01DZ2trZTBWRkRCWUdBSkZPU0VsR1NVZklZbzcvL3dDM0JDQURjUVlhQUNZRGNBa0FBQWNEY0FGUEFBRC8vd0NYQkFBRFR3WUFBQ1lEY1EwQUFBY0RjUUZSQUFBQUF2K2gvc0lDV3dEL0FBZ0FFUUFoc2cwU0V4RVNPYkFORUxBRjBBQ3dFaSt5QkEwS0sxZ2gyQnYwV2JBTjBEQXhFeWMyTnpjekJ3WUdGeWMyTnpjekJ3WUdHM3B2R2lEVUhSSjczM3AwR1NEVkhoSisvc0pRb0pTNXRuSFBSMUNqa2JtM2RNa0FBUUJwQUFBRVN3V3dBQXNBU3dDd0FFVllzQWd2RzdFSUh6NVpzQUJGV0xBR0x4dXhCaHMrV2JBQVJWaXdDaThic1FvYlBsbXdBRVZZc0FJdkc3RUNEejVac0FvUXNnQUJDaXRZSWRnYjlGbXdCTkN3QmRBd01RRWhBeU1USVRjaEV6TURJUVFyL3BTSzdvditseUFCWnp2dU93RnRBM0w4amdOeXlBRjIvb29BQUFILysvNWdCR1VGc0FBVEFId0FzQUJGV0xBTUx4dXhEQjgrV2JBQVJWaXdDaThic1FvYlBsbXdBRVZZc0E0dkc3RU9HejVac0FCRldMQUNMeHV4QWhFK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBUXZHN0VFRHo1WnNnWUJDaXRZSWRnYjlGbXdEaEN5Q0FFS0sxZ2gyQnYwV2JBSjBMQVEwTEFSMExBR0VMQVMwTEFUMERBeElTRURJeE1oTnlFVElUY2hFek1ESVFjaEF5RUR2UDZUUWUxQi9wa2ZBV1pzL3BrZkFXYzY3anNCYlIvK2xHMEJidjVnQWFEQ0FyVEVBWGIraXNUOVRBQUJBSjRDQkFKTkE5d0FEUUFXc2dNT0R4RVNPUUN3QXkreENnb3JXTmdiM0Zrd01STTJOak1XRmhVSEJnWWpJaVkxbndaOVlGdHdBZ2Q5WDFwd0F2eGtmQUoyWGl0a2MzUmIvLzhBTS8veUF3SUJBd0FtQUJJREFBQUhBQklCdndBQS8vOEFNLy95Qks0QkF3QW1BQklEQUFBbkFCSUJ2d0FBQUFjQUVnTnJBQUFBQVFBMkFna0JMZ0xOQUFNQUdMSUFCQVVSRWprQXNBTXZzZ0FCQ2l0WUlkZ2I5Rmt3TVFFak56TUJDOVVqMVFJSnhBQUdBSjMvNkFjR0JjY0FGZ0FrQUNnQU5nQkVBRklBdUxJQ1UxUVJFam13QWhDd0dkQ3dBaEN3SjlDd0FoQ3dLOUN3QWhDd09OQ3dBaEN3VGRBQXNDVXZzQ2N2c0FCRldMQVhMeHV4Rng4K1diQUFSVml3RXk4YnNSTVBQbG13QTlDd0F5K3lCUU1URVJJNXNBZlFzQWN2c0JNUXNBN1FzQTR2c2hFVEF4RVNPYkFYRUxBZTBMQWVMN0FURUxJc0Fnb3JXQ0hZRy9SWnNBTVFzak1DQ2l0WUlkZ2I5Rm13TEJDd090Q3dNeEN3UWRDd0hoQ3lTQUlLSzFnaDJCdjBXYkFYRUxKUEFnb3JXQ0hZRy9SWk1ERUJOallYRmhjMkZ4WVdCd2NHQmljbUppY0dKeVltTndNV0ZnY0hCZ1luSmlZM056WTJFeWNCRndFR0ZoY1dOamMzTmlZbkpnWUhCUVlXRnhZMk56YzJKaWNtQmdjQkJoWVhGalkzTnpZbUp5WUdCd0xyRHI2RWxEeG5nbjJWQ0FZTnVvZEFjU0JtZ24yVkJ2YUFsZ2dIRGJ5QmVwVUlCUXUxQW5nRGIzbityd1U2TjBGVUN3a0hPamsrVndzQnNBVTZPRDlWQ3dvSE9qaytXZ243OXdVNk56MVdEQW9GT0RvOVZnd0JaSWFyQWdWcmNBSUNxb0JFakswQ0FUWTRid0lDcW44RXJnU3FnRXFJcWdRQ3EzOUFqTEQ2cUU4RVowLzhQMFZUQWdKWVJrOUNWZ0lDV0VWUVJWTUNBbGRIVDBKV0FnSmFTZ0xyU0ZBQ0FsWklUVVZWQWdKV1NmLy9BSkFEL0FHV0JnQURCZ0FMQUFBQURBQ3dCQyt3QWRDd0FTOHdNZi8vQUtFRDlBTENCZ0FEQmdBR0FBQUFHd0N3Q1Mrd0J0Q3dCaSt3QWRDd0FTK3dDUkN3Qk5Dd0JDOHdNUUFBQVFCZEFJb0NaUU9wQUFZQUVBQ3dCUyt5QWdjRkVSSTVzQUl2TURFQkV5TUROd0V6QVNhbWxOc0JBVlN6QWd6K2ZnR0ZGQUdHQUFBQi8va0FpZ0lDQTZrQUJnQVFBTEFBTDdJREJ3QVJFam13QXk4d01RRVRCd0VqQVFNQkp0d0MvcTIwQVQrbEE2bitmQlgrZWdHYkFZVC8vd0EzLys4RVB3V3dBQ1lBQlFBQUFBY0FCUUlmQUFBQUFmL2hBRzhEeVFVbEFBTUFDUUN3QUMrd0FpOHdNVGNuQVJkYWVRTndlRzlQQkdkUEFQLy9BR01Da3dMc0Jha0RCd1BNQUhJQ2t3QVRBTEFBUlZpd0NTOGJzUWtmUGxtd0RkQXdNUUFBQVFCdUFvd0RVd1c2QUJJQVRMSVBFeFFSRWprQXNBQkZXTEFFTHh1eEJCOCtXYkFBUlZpd0FDOGJzUUFmUGxtd0FFVllzQkF2RzdFUUV6NVpzQUJGV0xBSUx4dXhDQk0rV2JBRUVMSU5Bd29yV0NIWUcvUlpNREVCRnpZMk16SVdCd01qRXpjMkp5WUhBeU1UQVlvQ05HeEJjblFQVXNGTEJBUmZWajlod1lzRnJYcElQNmVNL2dVQnlqMS9BZ0piL2RFRElBRC8vLy9EQUFBRXB3V3dBaVlBS2dBQUFBY0QxZjh3L21rQUFmLzJBQUFFcFFYSkFDWUFtcklXSnlnUkVqa0FzQUJGV0xBWEx4dXhGeDgrV2JBQVJWaXdCaThic1FZUFBsbXlKUmNHRVJJNXNDVXZzZ0FDQ2l0WUlkZ2I5Rm13QmhDeUNRRUtLMWdoMkJ2MFdiQUUwTEFFTDdBQUVMQU4wTEFsRUxBUDBMQVBMN0FsRUxBVDBMQVRMN1lQRXg4VEx4TURYYklRQWdvcldDSFlHL1Jac0JjUXNoMEJDaXRZSWRnYjlGbXlHeE1kRVJJNXNCTVFzQ0hRc0JBUXNDUFFNREVCSVFjR0J5VUhJVGNYTmpjM0J6Y3pOeU0zTXpjMkpCY1dGZ2NuTmljbUJnY0hJUWNoQnlFREEvN2hCeFJiQXFnay9BUWtSV1FmQ3FnYW14S1lHWk1UR0FFVng3VExDTzhKcWxwK0RoSUJOaHIrMEJFQkxRSFVMWUZmQThySkFTU3hPQUdSZVpDZ3h2VUdCTm0yQWNVRUFvVnBvSkI1QUFVQURRQUFCbDhGc0FBYkFCOEFJd0FtQUNrQXZiSUtLaXNSRWptd0NoQ3dIOUN3Q2hDd0lkQ3dDaEN3SnRDd0NoQ3dLTkFBc0FCRldMQWFMeHV4R2g4K1diQUFSVml3Rnk4YnNSY2ZQbG13QUVWWXNBd3ZHN0VNRHo1WnNBQkZXTEFKTHh1eENROCtXYklGQ1JvUkVqbXdCUyt3QWRDd0FTK3lEd0VCWGJJREF3b3JXQ0hZRy9SWnNBVVFzZ2NEQ2l0WUlkZ2I5Rm13SmRDd0N0Q3dEdEN3QlJDd0hkQ3dJZEN3RWRDd0F4Q3dIdEN3SXRDd0V0Q3dBUkN3R2RDd0o5Q3dGZEN3Q1JDd0pOQ3dGeEN3S2RBd01RRXpCeU1ITXdjakF5TURJUU1qRXlNM016Y2pOek1UTXhNaEV6TUJNemNqQlRNbkl3RTNCd0UzSndXTjBoelJHOUljMFZidjJQNnhWdlpXelJ6TUc4MGN6RmJ1MWdGVFZ2WDk2cFViOHY1ZzdrS1JBakFUTC80SEtoc0R4YUNYb1A0U0FlNytFZ0h1b0plZ0FlditGUUhyL042WGw1ZitmVTREQWRVRFJnQUFBZ0FyLyswR1dBV3dBQ0FBS1FDaXNpWXFLeEVTT2JBbUVMQVkwQUN3QUVWWXNCY3ZHN0VYSHo1WnNBQkZXTEFjTHh1eEhCcytXYkFBUlZpd0h5OGJzUjhiUGxtd0FFVllzQlF2RzdFVUR6NVpzQUJGV0xBTEx4dXhDdzgrV2JBZkVMSUFBUW9yV0NIWUcvUlpzQXNRc2dZQkNpdFlJZGdiOUZtd0FCQ3dEOUN3RU5DeUloUVhFUkk1c0NJdnNoSUJDaXRZSWRnYjlGbXdIeEN3SHRDd0hpK3dGeEN5S0FFS0sxZ2gyQnYwV1RBeEFTTURCaGNXRnpJM0J3WW5KaVkzRXlNQ0lTY0RJeE1GSGdJSE54TXpBek1CRnpZM05pY21KeWNHT2JsbkF3SUdTaVl2RVV0S2Uzc05aV21DL25DYlh2VDhBWE44djJnRWVTN3RMcm43U0lMS1FpTUxFNkNiQTRiOW9oa1VRUU1KdmhVQkFxT0pBbXIrbEFIOTVRV3dBUU5jcUc4QkFRZisrZjZ0QWdPc1hGMk9DQUVBLy84QUovL3BDQlFGc0FBbUFEWUFBQUFIQUZjRVVBQUFBQWNBS2dBQUIzMEZzQUFmQUNNQUp3QXJBQzRBTVFBMEFPdXlNalUyRVJJNXNESVFzQjdRc0RJUXNDTFFzRElRc0NmUXNESVFzQ3JRc0RJUXNDN1FzRElRc0REUUFMQUFSVml3QWk4YnNRSWZQbG13QUVWWXNCOHZHN0VmSHo1WnNBQkZXTEFiTHh1eEd4OCtXYkFBUlZpd0VDOGJzUkFQUGxtd0FFVllzQTB2RzdFTkR6NVpzZ2tRQWhFU09iQUpMN0FGMExBRkw3SVBCUUZkc0FIUXNBVVFzZ2NEQ2l0WUlkZ2I5Rm13Q1JDeUNnTUtLMWdoMkJ2MFdiQXQwTEFPMExBdzBMQVMwTEFKRUxBbDBMQXAwTEFoMExBVjBMQUhFTEFtMExBcTBMQWkwTEFXMExBQkVMQWQwTEFaMExBUUVMQXYwTEFzMExBZkVMQXkwTEFCRUxBMDBEQXhBU0VUTXdNekJ5TUhNd2NqQXlNRElRTWpBeU0zTXljak56TURNeE1oRXpNQk16Y2pCVE0zSXdVekp5TUJOeU1GTnlNQkJ6Y0V2UUVubnZ1cGt4eTJRZHNjL3RudExmNzg3ZTBiL3h6YUI3Y2NraFh2Q3dFcHM4LzlYWmhHNFFMWm1UN2kvcHV6REdBQlFVZFQvU2ROVUFIMkVBNEVCd0dwL2xlZ29xRDkyd0lsL2RzQ0phQ2lvQUdwL2xjQnFmMFZvcUtpb3FMK0FyeTB0QUlIS1FJQUFBSUFFUC84QmpZRU9nQU9BQnNBYUxJQUhCMFJFam13RWRBQXNBQkZXTEFPTHh1eERocytXYkFBUlZpd0ZpOGJzUlliUGxtd0FFVllzQXd2RzdFTUR6NVpzQUJGV0xBUEx4dXhEdzgrV2JJU0FRb3JXQ0hZRy9SWnNBNFFzZ3NCQ2l0WUlkZ2I5Rm15QlJJTEVSSTVzaEFMRWhFU09UQXhBUllXQndNakV6WW5KaWNsQXlNYkFqTURCUlkzRXpNREJnUW5Bem1rbHhVejdqVUZBZ3FEL3E2YTdidlJmKzFkQVRuSUozWHVjUnYrOWM0RU9RWE14UDdBQVVJc0pYZ0ZBdnlLQkRyN3hnTFcvZTBDQXNRQ3QvMWJ4TlVFQVAvLy8vVCtyZ1VaQmdBQUpnQklBQUFBSndQVkFkMENRZ0VIQUVNQWUvOXRBQklBc2k4aEFWMnlIeUVCY2JLZklRRmRNREVBQVFCTy8rMEVuZ1hHQUNZQWlySU1KeWdSRWprQXNBQkZXTEFaTHh1eEdSOCtXYkFBUlZpd0N5OGJzUXNQUGxteUpoa0xFUkk1c0NZdnNnQUNDaXRZSWRnYjlGbXdDeEN5QmdFS0sxZ2gyQnYwV2JBQUVMQVEwTEFtRUxBUjBMQW1FTEFXMExBV0w3WVBGaDhXTHhZRFhiSVRBZ29yV0NIWUcvUlpzQmtRc2g0QkNpdFlJZGdiOUZtd0ZoQ3dJZEN3RXhDd0k5QXdNUUVoQmhjV0ZoY1dOeGNHSnk0Q053YzNNemNqTnpNU0FCY1dGd2NtSnlZR0J5RUhJUWNoQTBUK3F3a0lDM3BwVzNNSGVuT1ozV1VVcnhtbUY2Z1pvRUlCU1BCampERmZYNVRDTGdGaEdmNm5Gd0ZhQWc5RVBXTnhBd0lpenhzQ0E0cjVtd0dOZ0kwQkJ3RVdBZ0llelNNQ0FxNm5qWUFBQkFCQ0FBQUdEd1d3QUJvQUh3QWtBQ2tBMjdJYUtpc1JFam13R2hDd0hkQ3dHaEN3STlDd0doQ3dLTkFBc0FCRldMQUxMeHV4Q3g4K1diQUFSVml3QVM4YnNRRVBQbG13Q3hDeUpBRUtLMWdoMkJ2MFdiQUswTEFLTDBBUkFBb1FDaUFLTUFwQUNsQUtZQXB3Q2doZHNnY0RDaXRZSWRnYjlGbXdCdEN3Qmk5QUN3QUdFQVlnQmpBR1FBWUZYYklEQXdvcldDSFlHL1Jac0NmUXNDY3ZRQTh3SjBBblVDZGdKM0FuZ0NlUUp3ZGRzZ0FCQ2l0WUlkZ2I5Rm13Q2hDd0lOQ3dJQyt3RDlDd0R5K3dCeEN3SGRDd0V0Q3dCaEN3SHRDd0hpK3dGTkN3RkMrd0F4Q3dKdEN3RjlBd01RRURJeE1qTnhjM0J6Y3pFd1V5RmhjekJ5Y0dCemNIQndZRUl3RTNJUWNoSlNVbUp5VUJCUWNsTmdHL1h2ZUxzeDJ0RmJnZHNpOEIvTFRxSmVrZHNRZ1B2aDdPVWY3K3RnRk5DZjNPRkFJdy9mZ0I0eTkyL3RVQmxQNGRFUUViZHdJZC9lTURINkFDVEFLZ0FRa0JqSHlnQWlra0E2QUJnMzhCeENsTTZBUTVBUVArUEFFN0FnRUFBQUVBT3dBQUJJY0ZzQUFaQUdheUVCb2JFUkk1QUxBQVJWaXdHQzhic1JnZlBsbXdBRVZZc0F3dkc3RU1EejVac0JnUXNoY0JDaXRZSWRnYjlGbXdBTkN3RnhDd0U5Q3dFeSt3QTlDd0V4Q3lFZ2NLSzFnaDJCdjBXYkFHMExBU0VMQU8wTEFPTDdJSkJ3b3JXQ0hZRy9SWk1ERUJJeFlITndjakJnWUhBUlVoQVRjWE1qY0ZOeUVtSnlVM0lRUTAxUnNFMFZDTk4rM1FBV2IrN3Y1eEdPbkxaZjN0VVFIVURzTCs1VmtEbXdUNVZsc0J0cWlyRlAzakR3SmNqZ0t0QXJhVkJRSE1BQUVBRVAvbkJFY0ZzQUFlQUpHeUd4OGdFUkk1QUxBQVJWaXdFUzhic1JFZlBsbXdBRVZZc0FVdkc3RUZEejVac2hNUkJSRVNPYkFUTDdBWDBMQVhMN0lBRndGZHNoZ0JDaXRZSWRnYjlGbXdHZEN3Q05Dd0NkQ3dGeEN3RnRDd0M5Q3dDdEN3RXhDeUZBRUtLMWdoMkJ2MFdiQVYwTEFNMExBTjBMQVRFTEFTMExBUDBMQU8wTEFGRUxJYUFRb3JXQ0hZRy9SWnNoNEZFUkVTT1RBeEFRY0dBZ1FuSmljVEJ6OENCemMzRXpNSE53OENOd2NIQXpZU056Y0VSd2dieGY3YnNIU0RZdVVsNUJibEplUTI5eVhxSmVrWDZ5WHFYYTdlSHdnQy8welQvcld1QWdJVkFsZFcwVmQrVnRKWEFUYlJXZEphZmxuU1dmMytCUUVIN0UwQUFBSC81QUFBQkt3RU9nQWFBRnl5RFJzY0VSSTVBTEFBUlZpd0dTOGJzUmtiUGxtd0FFVllzQVl2RzdFR0R6NVpzQUJGV0xBTkx4dXhEUTgrV2JBQVJWaXdFaThic1JJUFBsbXlBQTBaRVJJNXNBQXZzZ3dCQ2l0WUlkZ2I5Rm13RDlDd0FCQ3dHTkF3TVFFV0ZoY1dCd2NqTnpjMkppY0RJeE1HQXdjak54SUFQd0l6QXpxZHV4RUpEaDN0SVFnRlRWTjU3bnI0UmlidEl6UUJMTm9NSyswRGFDajZ2Rzlzcjg1cGdiY28vV2tDbUdIK3B0M0xBUmtCV2lrQzBRQUMvK1lBQUFWZ0JiQUFGZ0FmQUhpeUdDQWhFUkk1c0JnUXNBM1FBTEFBUlZpd0RDOGJzUXdmUGxtd0FFVllzQUl2RzdFQ0R6NVpzZ1lDREJFU09iQUdMN0lGQVFvcldDSFlHL1Jac0FIUXNBWVFzQXJRc0FvdnNnOEtBVjJ5Q1FFS0sxZ2gyQnYwV2JBVTBMQUdFTEFWMExBS0VMQVgwTEFNRUxJZkFRb3JXQ0hZRy9SWk1ERWxJUWNqTnlNM016Y2pOek1UQlRJRUJ3WUVJeVVISVFFRk1qWTNOaVluSlFMYi9za3A5aWpISk1ZVHh5UEhmQUgzNWdFQkVSTCt4dlgreXhNQk9mNzlBUmVGc0JFT2Mydit5K2ZuNTh0cnl3TElBZmpLMmZnQmF3RTJBb2QvYm9VRUFRQUVBTUwvNXdVK0Jja0FIQUFxQURnQVBBQ1VzZ0U5UGhFU09iQUJFTEFvMExBQkVMQXMwTEFCRUxBNTBBQ3dPUyt3T3krd0FFVllzQW92RzdFS0h6NVpzQUJGV0xBa0x4dXhKQTgrV2JBS0VMQUQwTEFETDdJT0F3b1JFam13Q2hDeUVRSUtLMWdoMkJ2MFdiQURFTElaQWdvcldDSFlHL1Jac2h3RENoRVNPYkFrRUxBZDBMQWRMN0FrRUxJdUFnb3JXQ0hZRy9SWnNCMFFzalVDQ2l0WUlkZ2I5Rmt3TVFFR0JpY21KamMzTmpZWEZoWVZKelltSXlJR0J3Y1ZGaFlYTWpZM0FSWVdCd2NHQmljbUpqYzNOallEQmhZWEZqWTNOelltSnlZR0J3VW5BUmNDN0FxaGUzZU5DQVlOckg5NWpLVUNNakkzVEFvSkFpMG5NRU1PQWVKK2x3Z0dEYmVIZnBrSUJRdTZKQVU4Tmo1VURBb0ZPamMvV0FuOTZua0RiM29FSlhpUUFnS3JmMFNOclFJRWxITUJPRUJZUlU0eUxqZ0JQRGYrYkFLb2dVU01yZ1FDcW9CQ2pheitnMGRTQWdKVlNrOUlVQUlDVzBudlR3Um5UZ0FDQURILzZnUGlCZjhBR2dBa0FGcXlGaVVtRVJJNXNCWVFzQnZRQUxBT0w3QUFSVml3QUM4YnNRQVBQbG15Q0FBT0VSSTVzQWd2c2djSENpdFlJZGdiOUZtd0ZkQ3dBQkN5R2dFS0sxZ2gyQnYwV2JBSUVMQWIwTEFPRUxJaEFRb3JXQ0hZRy9SWk1ERUZMZ0kzTndZSE56WTNFelkyRnhZV0J3Y0dBQWNIQmhVVUZ3TTJQd0kwSnlZSEJ3Sm1nN3RRRmdSTGRoUmJabFFheTVXQWpnc0VGUDc2eFE4SW5XdkhIUVVDTmxNYUJ4WUhjOHAvRUJFRnZBSVZBZC9JM2dVRXVZd3N0LzZ3Wms0ekxwZ0xBaiswMHlVbFZRVUZtU3dBQUFRQUl3QUFCK2tGeFFBREFCRUFId0FwQUtHeUlDb3JFUkk1c0NBUXNBSFFzQ0FRc0JEUXNDQVFzQlBRQUxBQVJWaXdKUzhic1NVZlBsbXdBRVZZc0Nndkc3RW9IejVac0FCRldMQUhMeHV4Qng4K1diQUFSVml3SUM4YnNTQVBQbG13QUVWWXNDTXZHN0VqRHo1WnNBY1FzQTdRc0E0dnNBUFFzQU12c2dBQ0NpdFlJZGdiOUZtd0RoQ3lGUUlLSzFnaDJCdjBXYkFIRUxJY0Fnb3JXQ0hZRy9SWnNpSWxJQkVTT2JJbkpTQVJFamt3TVFFaE55RUJOallYRmhZSEJ3WUdKeVltTnhjR0ZoY1dOamMzTmlZbkpnWUhBU01CQXlNVE13RVRNd2M5L2E4YkFsRDk1QkhUbDQ2bEN3Y1ExSldRcEFxc0NFVkhUV29QQ2doRVNGQnBEdjRRLy83TnR1NzkvZ0UxdCt3Qm5KVUNMcC9IQkFURG1rcW94UVFFeEpjQ1lHa0NBMjFqVlY5ckFnSnhYdnVnQkJUNzdBV3crK2tFRndBQ0FPMERrd1RMQmJBQURBQVVBRzBBc0FCRldMQUdMeHV4Qmg4K1diQUFSVml3Q1M4YnNRa2ZQbG13QUVWWXNCTXZHN0VUSHo1WnNnRVZCaEVTT2JBQkw3SUFDUUVSRWpteUF3RUdFUkk1c0FUUXNnZ0JDUkVTT2JBQkVMQUwwTEFHRUxFTkNpdFkyQnZjV2JBQkVMQVAwTEFORUxBUjBMQVMwREF4QVFNSEF3TWpFek1URXpNREl3RWpBeU1USXpjaEJENnVQRHhEYmwrQ09jT0hYbTMrYjRaTmMwMkpFUUdDQlBiK253SUJmdjZEQWh6K2hnRjYvZVFCdmY1RkFidGZBQUlBZmYvcEJIY0VVZ0FXQUIwQVlySVVIaDhSRWptd0ZCQ3dHTkFBc0FCRldMQUtMeHV4Q2hzK1diQUFSVml3QWk4YnNRSVBQbG15R2dvQ0VSSTVzQm92c2c4TUNpdFlJZGdiOUZtd0FoQ3lFd3dLSzFnaDJCdjBXYklXQ2dJUkVqbXdDaEN5Rnd3S0sxZ2gyQnYwV1RBeEpRWW5KaVlDTnpZU0pCY2VBZ2NISVFNV0Z4WTJOd01tQndNaEV5WURyTExDaE05b0RnNnhBUU9KZ3NCZkNnWDlFenhkajFPNmRjcUttalFDQ2pWY1hITUVBcGNCQW95UkFSU1pCQVNPK0pFeC9yWm5CQU0zUkFNckEzeis2Z0VnYXdELy93QzIvL0lGaVFXWkFDY0R6d0JKQW9ZQUp3T0RBUE1BQUFFSEE4Z0RDUUFBQUJBQXNBQkZXTEFGTHh1eEJSOCtXVEF4Ly84QWd2L3lCaUVGdUFBbkE4MEFqZ0tVQUNjRGd3R2JBQUFCQndQSUE2RUFBQUFRQUxBQVJWaXdEUzhic1EwZlBsa3dNZi8vQUlqLzhnWVdCYWdBSndQTEFINENrd0FuQTRNQmdBQUFBUWNEeUFPV0FBQUFFQUN3QUVWWXNBRXZHN0VCSHo1Wk1ESC8vd0MxLy9JRjFnV2pBQ2NEeVFDU0FvNEFKd09EQVNvQUFBRUhBOGdEVmdBQUFCQUFzQUJGV0xBRkx4dXhCUjgrV1RBeEFBSUFSZi9uQkVnRjlRQWRBQzBBVkxJSUxpOFJFam13Q0JDd0h0QUFzQTB2c0FCRldMQVZMeHV4RlE4K1diSUFEUlVSRWptd0FDK3dEUkN5QndFS0sxZ2gyQnYwV2JBQUVMSWVBUW9yV0NIWUcvUlpzQlVRc2ljQkNpdFlJZGdiOUZrd01RRVdGelluSmlZbkpnWUhKellYRmhJVEZRSUNCQ2N1QWpjM1BnSVhKZ1lIQndZWEZoWVhGalkzTnlZbUFtU2thd01DQ29SdVJZTkNESkdpME4wR0RaNysrYW1LdzFzUUFoR1I0cGwycGhVREJnUUZZVmQ2cFNBTkRuUUVCUVI3S2pDVnNnUURJQlc1UXdFRS90Zis2a2IrMS81MzBnUUNpdkdURnBIcWZjWURxSlFWTmpsa2N3TUZ6czVWVGxzQUFRQWYveHNGVlFXd0FBY0FKd0N3QkMrd0FFVllzQVl2RzdFR0h6NVpzQVFRc0FIUXNBWVFzZ0lCQ2l0WUlkZ2I5Rmt3TVFVakV5RURJd0VoQkUzdTZmMnQ2ZTBCQndRdjVRWFUraXdHbFFBQi82Zis4d1Q2QmJBQURBQTFBTEFETDdBQVJWaXdDQzhic1FnZlBsbXdBeEN5QWdFS0sxZ2gyQnYwV2JBRjBMQUlFTElLQVFvcldDSFlHL1Jac0FmUU1ERUJBU0VISVRjQkFUY2hCeUVCQTNQOWxBTWlJdnVnSEFLNS9qMFpCQ2dpL1FRQm1RSkYvWEhEb2dMSUFzYU53LzExQUFFQW5BSnRBL2dETVFBREFCRUFzQUl2c2dFQkNpdFlJZGdiOUZrd01RRWhOeUVEMWZ6SEl3TTVBbTNFQUFBQkFEUUFBQVVKQmJBQUNBQThzZ0FKQ2hFU09RQ3dCeSt3QUVWWXNBRXZHN0VCSHo1WnNBQkZXTEFETHh1eEF3OCtXYklBQVFNUkVqbXdCeEN5QmdFS0sxZ2gyQnYwV1RBeEFRRXpBU01ESXpjaEFmY0NOZDM5S2NCdTBDTUJXUUV0QklQNlVBSkJ4UUFBQXdCSi8rZ0hyZ1JTQUI0QUx3QkJBR0t5QmtKREVSSTVzQVlRc0NuUXNBWVFzRHZRQUxBQVJWaXdDaThic1FvUFBsbXdCTkN3Q2hDd0U5Q3dFeSt3R2RDeUJ4a0tFUkk1c2hZWkNoRVNPYkFURUxJL0FRb3JXQ0hZRy9SWnNDVFFzQW9Rc2pVQkNpdFlJZGdiOUZtd0xOQXdNUUVHQWdZbkppWW5CZ1luTGdJM056WVNOaGNXRmhjMk5oY1dGaGNXQnljMkp5Y21KeVlHQndjR0ZoWVhGalkzQlFZWEZoWVhGalkyTnpjMkppY21KeVlHQjU4U24vU1BpTlV1ZXZDRmhNUmdEd0lTbi9PT2k5WXRlUEdIaWNrc0pnM3BCZ1FGSXA1MTNTb0hCa1o2Ulh5eUYvcUxCZ1VIWmxoTGwzOGJCZ1FtSlZGcWU3QUNHSnYrL0pFRUJMS1Z0SnNEQkk3OWxCZVhBUVdSQkFTeWtyS1pBd0tlaUhhQ0FUVTlKYjRGQXRhR0pFdWxhQUlGeXFNUU5qeHBmQU1DWHE1WUpEZDRNMndFQmNzQUFmOFgva1VESWdZWkFCWUFQYklCRnhnUkVqa0FzQUJGV0xBT0x4dXhEaUUrV2JBQVJWaXdBeThic1FNUlBsbXlDQUVLSzFnaDJCdjBXYkFPRUxJVEFRb3JXQ0hZRy9SWk1ERUZCZ1luSWljM0ZqTVdOeE0yTmhjV0Z3Y21JeUlHQndFZkZjcWpPVTBqT1JXUEc3NFYxNm8xWnlrd0tWQmxEVSt2dlFRVnZBOEVzQVRyc2NZQ0FSYTREV0JUQUFJQU1BRCtCRFVEK1FBU0FDVUFlTElPSmljUkVqbXdEaEN3SU5BQXNBSXZzQWJRc0FZdnNBSVFzQWpRc0FZUXNnc0JDaXRZSWRnYjlGbXdBaEN5RUFFS0sxZ2gyQnYwV2JBTEVMQVMwTEFDRUxBVjBMQVZMN0FaMExBWkw3QVZFTEFiMExBWkVMSWVBUW9yV0NIWUcvUlpzQlVRc2lNQkNpdFlJZGdiOUZtd0hoQ3dKZEF3TVJNMk16SVdGak15TndjR0p5SXVBaU1HQndjMk16SVdGak15TndjR0p5SXVBaU1HQjQ1dGpWM1pUUzE3Z2hadGZEeGthMlkvaG9nemJZbGQyMHd0ZW9jWWE0QXhWcVpWTG9lREE1QnBlUmQ5MldzQ0tUMHFBbnpLYVhrWGZkbHJBaHhjR0FKOEFBQUJBR0lBZ2dRVUJNRUFFd0EzQUxBVEw3SUFBUW9yV0NIWUcvUlpzQVRRc0JNUXNBZlFzQk1Rc0EvUXNBOHZzaEFCQ2l0WUlkZ2I5Rm13Q05Dd0R4Q3dDOUF3TVFFaEJ5YzNJemNoTnlFM0lUY1hCek1ISVFjaEE2ZjkrcU5xY3FRakFSR2gvblFrQWZpcmFubXhJLzdob0FHWkFXVGlSWjNKMzhyclJhYkszd0QvLy8vVkFCTUQyd1J4QUdjQUlBQVlBSXRBQURtYUFBY0RvUDg1L2FiLy93QVhBQk1EOHdSbkFHY0FJZ0FhQUl0QUFEbWFBQWNEb1A5Ny9hWUFBZ0E2QUFBRDRnV3dBQVVBQ1FBNHNnWUtDeEVTT2JBR0VMQUUwQUN3QUVWWXNBQXZHN0VBSHo1WnNBQkZXTEFETHh1eEF3OCtXYklHQUFNUkVqbXlDQUFERVJJNU1ERUJNeE1CSXdNQkFSTUJBaVcvL3Y0V3dQNENLdjdBbEFFL0JiRDlHdjAyQXVRQngvNGYvamNCNHdELy93QnBBS2dDRGdVS0FDY0FFZ0E1QUxZQkJ3QVNBTXNFQndBSkFMQURMN0FWM0RBeEFBQUNBR1lDZndLQ0JEa0FBd0FIQUNxeUFBZ0pFUkk1c0FYUUFMQUNMN0FBUlZpd0JpOGJzUVliUGxteUFBZ0NFUkk1c0FBdnNBVFFNREVCSXhNekV5TVRNd0VBbWsyYTU1cE9tZ0ovQWJyK1JnRzZBQUFCLzgvL1p3RVdBUVlBQndBTUFMQUVMN0FBMExBQUx6QXhGeWMyTnpjekJ3WktlMThWRDhRTkpKbFBoWGhUVnNVQS8vOEFYd0FBQlpFR0dnQW1BRW9BQUFBSEFFb0NNd0FBQUFJQVN3QUFCRXdHR2dBVkFCa0FnN0lIR2hzUkVqbXdCeEN3RjlBQXNBQkZXTEFJTHh1eENDRStXYkFBUlZpd0F5OGJzUU1iUGxtd0FFVllzQkl2RzdFU0d6NVpzQUJGV0xBWUx4dXhHQnMrV2JBQVJWaXdBQzhic1FBUFBsbXdBRVZZc0JZdkc3RVdEejVac0FNUXNnRUJDaXRZSWRnYjlGbXdDQkN5RGdFS0sxZ2gyQnYwV2JBQkVMQVQwTEFVMERBeE14TWpOeGMzTmpZWEZoWVhCeVlqSmdjSE53Y2pBeUVqRXpOUG5LQWdtQTRqL01OT2xVbzVmbkRVS0EzWElNNmRBbFh1dk8wRGhyUUJVYjdTQkFFbUY4Z3pBc3BDQWJUOGVnUTZBQUVBWHdBQUJLUUdHUUFZQUcyeUVoa2FFUkk1QUxBQVJWaXdFeThic1JNaFBsbXdBRVZZc0FZdkc3RUdHejVac0FCRldMQU9MeHV4RGhzK1diQUFSVml3Q2k4YnNRb1BQbG13QUVWWXNCY3ZHN0VYRHo1WnNCTVFzZ0lCQ2l0WUlkZ2I5Rm13QmhDeUNBRUtLMWdoMkJ2MFdiQU0wTEFOMERBeEFTWUhJZ1lIQnpNSEl3TWpFeU0vQWpZMkZ4WVhGd01qQTU5dE5WMTREdzdYSU5XZDdaMmhJSjhPR3UrN2JXM2EvK3dGUWhBQlgxNWF0UHg2QTRhMEFXVzJ3d0lDRUNENkd3QUNBRjhBQUFhMUJob0FKd0FyQUw2eUV5d3RFUkk1c0JNUXNDblFBTEFBUlZpd0ZpOGJzUlloUGxtd0FFVllzQU12RzdFREd6NVpzQUJGV0xBUkx4dXhFUnMrV2JBQVJWaXdJQzhic1NBYlBsbXdBRVZZc0Nvdkc3RXFHejVac0FCRldMQUlMeHV4Q0NFK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNDTXZHN0VqRHo1WnNBQkZXTEFvTHh1eEtBOCtXYkFERUxJQkFRb3JXQ0hZRy9SWnNBZ1FzZzBCQ2l0WUlkZ2I5Rm13RmhDeUhBRUtLMWdoMkJ2MFdiQUJFTEFoMExBaTBMQWwwTEFtMERBeE14TWpOek0zTmpZWEZoY0hKaU1tQmdjSEJUYzJOaGNXRmhjSEppY21Cd2MzQnlNREl4TWhBeUVqRXpOam5hRWdvQTBaMzY0OFVCb3NMVlZzRHc4QllCRW0rTUJPbGtvNmVuVFRLQTNYSU02ZDdaeittWjBFcWUyODdRT0d0R0MzeVFJQ0VyNEtBVjVUWmdGaHRza0NBaVlYeURFQ0FzcENBYlQ4ZWdPRy9Ib0VPZ0FCQUY4QUFBYjVCaHNBS2dDcnNoTXJMQkVTT1FDd0FFVllzQWd2RzdFSUlUNVpzQUJGV0xBV0x4dXhGaUUrV2JBQVJWaXdBeThic1FNYlBsbXdBRVZZc0JFdkc3RVJHejVac0FCRldMQWlMeHV4SWhzK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNCb3ZHN0VhRHo1WnNBQkZXTEFtTHh1eEpnOCtXYkFERUxJQkFRb3JXQ0hZRy9SWnNBZ1FzZzBCQ2l0WUlkZ2I5Rm13RmhDeUhnRUtLMWdoMkJ2MFdiQUJFTEFrMExBbDBMQW8wTEFwMERBeE14TWpOek0zTmpZWEZoY0hKaU1tQmdjSEpUYzJOaGNXRnhjQkl4TW1JeUlHQndjekJ5TURJeE1oQTJPZG9TQ2dEUm5pclRKWUdqY2hWV3dQRUFGbkRScnZ1MlprNi84QTdlMkdJVnQ1RUE3V0g5V2Q3WnorbVowRGhyUmZ1TW9FQVJLK0NnRmZVbVlCWmJiREFnRU9JL29iQlVFUVhGdGd0UHg2QTRiOGVnQUJBRi8vN1FUN0Joa0FKd0NVc2hBb0tSRVNPUUN3QUVWWXNDSXZHN0VpSVQ1WnNBQkZXTEFSTHh1eEVScytXYkFBUlZpd0hTOGJzUjBiUGxtd0FFVllzQ1l2RzdFbUd6NVpzQUJGV0xBWkx4dXhHUTgrV2JBQVJWaXdDeThic1FzUFBsbXdKaEN5QUFFS0sxZ2gyQnYwV2JBTEVMSUdBUW9yV0NIWUcvUlpzQUFRc0EvUXNCRFFzQ0lRc2hVQkNpdFlJZGdiOUZtd0VCQ3dHOUN3SE5Bd01RRWpBd1lYRmhjV053Y0dKeVltTnhNak56TTNKaU1pQmdjREl4TWpOek0zTmpZWEZoWVhBek1FMjdsbUF3SUdTU015RVVwS2Uzd05aYTBnckM5Q1kwMW5EOHZ0bmFFZ29BMFoxNnB5MjJrNnVRT0cvYUlaRkVBREFncStGUUVDbzRrQ2FyVDZJbDFZKzE4RGhyUmZ1TWdDQVQ4ci9vNEFBUUFYLytrR25RWWFBRW9Bd0xJcFMwd1JFamtBc0FCRldMQStMeHV4UGhzK1diQUFSVml3UlM4YnNVVWhQbG13QUVWWXNCQXZHN0VRR3o1WnNBQkZXTEJKTHh1eFNScytXYkFBUlZpd0xDOGJzU3dQUGxtd0FFVllzQW92RzdFS0R6NVpzRWtRc2dFQkNpdFlJZGdiOUZtd0NoQ3lCUUVLSzFnaDJCdjBXYkFCRUxBTzBMQkZFTElWQndvcldDSFlHL1Jac2gxSkxCRVNPYkErRUxJZ0FRb3JXQ0hZRy9SWnNqY3NQaEVTT2JBM0VMSW1BUW9yV0NIWUcvUlpzQ3dRc2pNQkNpdFlJZGdiOUZrd01RRWpBd2NXRnhZM0J3WW5KaVkzRXlNM016YzJKaWNtQmg4Q0ZnY0hOaVluSWdZSEJnUVhGZ2NPQWljbUpqY3pGQllYTWpZM05pUW5KamMySkJjeUZ5WTNOallYRmhZSEJ6TUdmcmxrQWdOTEl6SVJTMHA3ZUE5Z3B4K21EUXBLVFYxekNRUVRCZ1R1QWxKTVRuTUxEd0VRUk0wS0JYN1ZkckhrQXVaalZscDFEQkgrN2hiNENBY0JCYkZMWHhNR0R1dW91Y1VWRExrRGh2MjJMMUlEQWdxK0ZRRUN0SmtDU2JSWlgya0NBNFdOUEtvNk9RRkxWZ0pOUVZwRkhWZTdhSmxSQXdMSm4xaFpBa2xCWUU0SVdNT1d2Z0laZkRtSnBRSUUxcXhZQUFBVy82bitjZ2hGQmE0QURRQWFBQ2dBTndBOUFFTUFTUUJQQUZZQVdnQmVBR0lBWmdCcUFHNEFkZ0I2QUg0QWdnQ0dBSW9BamdHaHNsdVBrQkVTT2JCYkVMQU0wTEJiRUxBYTBMQmJFTEFjMExCYkVMQXgwTEJiRUxBODBMQmJFTEErMExCYkVMQkcwTEJiRUxCSzBMQmJFTEJTMExCYkVMQlgwTEJiRUxCaDBMQmJFTEJqMExCYkVMQnAwTEJiRUxCdDBMQmJFTEJ3MExCYkVMQjYwTEJiRUxCKzBMQmJFTENDMExCYkVMQ0UwTEJiRUxDSTBMQmJFTENNMEFDd1BTK3dBRVZZc0VZdkc3RkdIejVac244NkF5dXlkNElESzdKN2VnTXJza2wrQXl1eWlVNERLN0tGaUFNcnNvMkVBeXV5UVl3REs3SUtQVVlSRWptd0NpK3dBOUN3QXkrd0R0Q3dEaSt3Q2hDd0Q5Q3dEeSt5Ync0UEVSSTVmTEJ2THhpeVVBc0tLMWdoMkJ2MFdiSVZVRzhSRWptd0NoQ3lIZ3NLSzFnaDJCdjBXYkFERUxJbEN3b3JXQ0hZRy9SWnNBOFFzQ25Rc0NrdnNBNFFzQzdRc0M0dnNqUUxDaXRZSWRnYjlGbXdQUkN3YTlDd1o5Q3dZOUN3UHRDeVB3d0tLMWdoMkJ2MFdiQmwwTEJwMExCdDBMQTgwTEJHRUxKSERBb3JXQ0hZRy9SWnNGL1FzRnZRc0ZmUXNFclFzRVlRc0dEUXNGelFzRmpRc0V2UXNBNFFzbEVMQ2l0WUlkZ2I5Rm13RHhDeWRnc0tLMWdoMkJ2MFdUQXhBUVlHSnlZbU56YzJOaGNXRmdjVEV4Y1dCd1lHQnhZVkZBWUhBVFltSnlZR0J3Y0dGaGNXTmpjQk13TUdCaU1HSmljWEJqY3lOamNCRXpNSE13Y2hOek0zTXdNQkV5RUhJd2NsTnlFREl6Y0JCek0yTnpZbkFUY2hCeUUzSVFjaE55RUhFemNoQnlFM0lRY2hOeUVIQVRjMk56WXZBZ0VqTnpNM0l6Y3pBeU0zTXlVak56TTNJemN6QXlNM013TVBDb2hnWVhRRUNBaUZaVjExQWd4Z3FMOERBaVk0VDIxZy9yVUhOem8vVlFzUEJ6ZzdQMVFMQTlCak93aHBUMU5uQWxnRVZpMDZDZmxrTjI4a3Z4UUUveFRBSkcwMytiVXlBUzBVdmg0RjJ4UUJMek50SHZ2b0htMXVFZzFSQVVnVkFSQVYvVzBWQVE4Vi9XNFZBUTRWekJRQkR4VDliaFFCRGhUOWJ4UUJEUlFCVjFaNkVBcEFJMkQ4em5BdGJ4VnZMSEN2Y0MxdkJ3QnRMRzRVYlN4dXIyNHRiUUhVWm5rQ0FuMWVjR0IrQWdKNFl2NjRBaVVCQm9rbk9DQWRXRWxXQXdGTVFGQUNBbFJEY1VCUkFnSlJSUUZQL29WTlhRRlRWUUpmQWprcS9Na0JPOHB4Y2NyK3hRWWZBUjEwcWFsMC91T3AvTGFwQlZWSEJ3TkxkSFIwZEhSMCtUaHhjWEZ4Y1hFRHdnRUdVVFlJQXdMKzBmeCsrdndWK1g3OGZ2cjhGZmtBQUFVQVhQM1ZCOWNJY3dBREFCd0FJQUFrQUNnQVRBQ3dJUyt3SlMrd0FOQ3dBQyt3SVJDd0F0Q3dBaSt5SUFJQUVSSTVzQ0F2c0IzUXNCMHZzQVRRc0FRdnNnMEFBaEVTT2JBTkw3QVUwTEFVTDdJSEJCUVJFam15R1JRRUVSSTVNREVKQXdVME5qYzJOalUwSmlNaUJnY3pOall6TWhZVkZBY0dCaFVYSXhVekF6TVZJd016RlNNRUdBTy8vRUg4UkFRUEhpUktYS2VWa0tBQ3l3STZLems0WFZzdnlzcktTd1FFQWdRRUJsTDhNZnd4QTgveE9qb1lKNGRLZ0plTGZ6TTBRRFJmUEVGY1RGdXEvVXdFQ3A0RUFBUC8xd0FBQTU4RWpRQURBQWNBQ3dCZXNnUU1EUkVTT2JBRUVMQUEwTEFFRUxBSTBBQ3dBRVZZc0Fvdkc3RUtIVDVac0FCRldMQUFMeHV4QUE4K1diSUNBUW9yV0NIWUcvUlpzZ2NLQUJFU09iQUhMN0lFQVFvcldDSFlHL1Jac0FvUXNnZ0JDaXRZSWRnYjlGa3dNU0VoTnlFRElUY2hFeUUzSVFMVS9RTWpBdjBTL1pBakFuQjAvUU1qQXYzREFUakVBUXJFQUFIL3B3QUFBK3dFalFBSUFEaXlCd2tLRVJJNUFMQUFSVml3QWk4YnNRSWRQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFFTHh1eEJBOCtXYklIQWdBUkVqa3dNVE1qQVRNVElRTW5CNUhxQW5idDR2Ny9nd1VpQkkzN2N3TkhYbEVBQXdBNi8rb0VZd1NpQUFNQUZBQWlBSEd5R0NNa0VSSTVzQmdRc0FMUXNCZ1FzQTNRQUxBQVJWaXdEUzhic1EwZFBsbXdBRVZZc0FRdkc3RUVEejVac2dNTkJCRVNPWHl3QXk4WXRHQURjQU1DWGJRd0EwQURBbDJ5QUFFS0sxZ2gyQnYwV2JBTkVMSVlBUW9yV0NIWUcvUlpzQVFRc2g4QkNpdFlJZGdiOUZrd01RRWhOeUVCSmlZQ056Y1NOellYRmhZU0J3Y0NBQk1tSmljbUFnY1hGaFlYRmhJM0F4RCtaU01CbS83Sms5RmVFUU1oc2FIa2s4NWRFUVFnL3JtREJXeGltc0FKQVFWc1lwZkFDd0hmdy8xT0FwVUJCSjRjQVIyb21BVUVrdjc4bmlIKzdmNjVBdnR0Z3dRRy92em9SM0dGQkFZQkFQQUFBQUwvcHdBQUErd0VqUUFEQUFnQVBMSUZDUW9SRWptd0JSQ3dBdEFBc0FCRldMQUNMeHV4QWgwK1diQUFSVml3QUM4YnNRQVBQbG15QlFBQ0VSSTVzZ2NCQ2l0WUlkZ2I5Rmt3TVNFaEFUTURKd2NCSVFQcys3c0NkdTJpQlJ6K3J3SFhCSTMrdWw1RS9XSUFBQUVBQ2dBQUE5OEVqUUFGQURLeUFRWUhFUkk1QUxBQVJWaXdCQzhic1FRZFBsbXdBRVZZc0FJdkc3RUNEejVac0FRUXNnQUJDaXRZSWRnYjlGa3dNUUVoQXlNVElRTzgvZU9vN2NvREN3UEovRGNFalFBQUFRQXRBQUFFaUFTTkFCZ0FsYklBR1JvUkVqa0FzQUJGV0xBQkx4dXhBUjArV2JBQVJWaXdHQzhic1JnZFBsbXdBRVZZc0F3dkc3RU1EejVac2dBTUdCRVNPYklKREFFUkVqbXdDUyt3Qk5Dd0JDOUFEUThFSHdRdkJEOEVUd1JmQkFaZHRzOEUzd1R2QkFOZHNnWUNDaXRZSWRnYjlGbXdDUkN5Q2dJS0sxZ2gyQnYwV2JBTzBMQUpFTEFRMExBUUw3QUdFTEFUMExBRUVMQVcwTEFXTHpBeEFRRWhBVE1ISlFjSEpRY2hCeU0zSVRjRk55Y2hOek1ETXdJVUFXTUJFZjVpeVJ2KzZSb01BVElhL3RRbTdTZiswaG9CS0JJRC90UWIzTlAyQW53Q0VmMjNrd01nTEFLUjJkbVJBVGtQa3dKSkFBRUFFUUFBQkFrRW9nQWZBR1d5R3lBaEVSSTVBTEFBUlZpd0ZDOGJzUlFkUGxtd0FFVllzQVl2RzdFR0R6NVpzaDhHRkJFU09iQWZMN0FQMExJT0Fnb3JXQ0hZRy9SWnNBRFFzQVlRc2dVQkNpdFlJZGdiOUZtd0NOQ3dGQkN5R2dFS0sxZ2gyQnYwV2JJWEh4b1JFamt3TVFFbEJnWUhKUWNoTnhjMlB3SUhOek0zTmpZWEZoWUhKelluSmdZSEJ5RURHLzZZRVRzNkFva2svSDhkQ0YwaURRT2xISllNR1BHNHJiMEk3Z3VQVW1jTkNnRjJBZVVCVkpKQUE4UENBU1d2Unc0RmsyalQ3d1FFMXJnQnhnY0NoSDVpQUFBQkFBNy9Fd1AvQlhNQUt3QnZzaDhzTFJFU09RQ3dBRVZZc0Frdkc3RUpIVDVac0FCRldMQWlMeHV4SWc4K1diSURJZ2tSRWptd0NSQ3dETkN3QXhDeUdRRUtLMWdoMkJ2MFdiQUpFTElUQVFvcldDSFlHL1Jac2hBWkV4RVNPYkFpRUxBZjBMQWlFTElwQVFvcldDSFlHL1Jac2lVREtSRVNPVEF4QVRZbkp5WW1OelkyTnpjekJ4WVdCeWMySmljaUJnY0dGeGNXRmdjR0JnY0hJemNtSmpjWEJoWXpNallDdXhHUFBNeXNCd25qc3l5ZExaR2pBdXNEWmxWZGV3d1JuVDdJb1FnSjJyUXVuQzZrdkFUc0JXNXVZSHNCT1dvdkVqaXRmbzYwRWRuZkc3dUtBVlpYQVZCRFlEQVNQYk9BanFzUjRlTVl4NVFCWFdKTkFBRUFGQUFBQkRVR0dBQUtBRXdBc0FCRldMQURMeHV4QXlFK1diQUFSVml3Qmk4YnNRWWJQbG13QUVWWXNBRXZHN0VCRHo1WnNBQkZXTEFKTHh1eENROCtXYklBQmdFUkVqbXlCUVlCRVJJNXNnZ0FCUkVTT1RBeEFRTWpBVE1EQVNFQkFTRUJXRmZ0QVEvdG1nR0tBVFg5K3dGaS92VUI5ZjRMQmhqOGtRR1IvZ0g5eFFBQUFRQXVBQUFGWndXd0FBc0FUQUN3QUVWWXNBTXZHN0VESHo1WnNBQkZXTEFITHh1eEJ4OCtXYkFBUlZpd0FTOGJzUUVQUGxtd0FFVllzQW92RzdFS0R6NVpzZ0FEQVJFU09iSUZBd0VSRWpteUNRQUZFUkk1TURFQkF5TVRNd00zQVNFQkFTRUJtWFgyL1BaMkFnSjRBVVA5THdIbC91TUNvLzFkQmJEOWZRRUNndjBxL1NZQUFBRUFGQUFBQkVVR0FBQU1BRk1Bc0FCRldMQUVMeHV4QkNFK1diQUFSVml3Q0M4YnNRZ2JQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFMTHh1eEN3OCtXYklIQ0FJUkVqbXdCeSt5QUFFS0sxZ2gyQnYwV2JJS0FBY1JFamt3TVFFakF5TUJNd016QVNFQkFTRUJ4WEpTN1FFTDdKZGRBVThCSmY1SkFSaisvUUhaL2ljR0FQeWNBWjcrQmYzQkFBRUFMZ0FBQlhzRnNBQU1BRmdBc0FCRldMQUVMeHV4QkI4K1diQUFSVml3Q0M4YnNRZ2ZQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFMTHh1eEN3OCtXYklHQWdRUkVqbXdCaSt5SHdZQmNiSUJBUW9yV0NIWUcvUlpzZ29CQmhFU09UQXhBU01ESXhNekF6TUJJUUVCSVFJK3JtejIvUFpxZlFJS0FUNzltQUdHL3VnQ2NQMlFCYkQ5bkFKay9UdjlGUUFDQUM3Ly93VHdCYkFBSGdBbkFHR3lJQ2dwRVJJNXNDQVFzQjdRQUxBQVJWaXdBeThic1FNZlBsbXdBRVZZc0JVdkc3RVZEejVac0FCRldMQUJMeHV4QVE4K1diSWdBd0VSRWptd0lDK3lIZ0VLSzFnaDJCdjBXYklLSGlBUkVqbXdBeEN5SndFS0sxZ2gyQnYwV1RBeEFRTWpFd1V5RmdjR0JnY1dGeFlIQndZWEZoY0hCeVluSmpjM05pY21KeVVYTWpZM05pWW5KUUdNYVBiOEFmYmg3dzhJajVPVUVRVUdGQWNFQkNRQzlTTUZBd29TQmdZVWxQN3cvNHVpRGcxcGFQN1pBbGI5cWdXd0FkdkNjS2s5UUtzME5vczNKRDBwR3dFc1NpeE1lVEFxakFuTEFYZHdhbThFQVFBQUFnQTcvK01Fa1FSVUFCSUFJd0J1c2hra0pSRVNPYkFaRUxBSzBBQ3dBRVZZc0Fvdkc3RUtHejVac0FCRldMQU9MeHV4RGhzK1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNCSXZHN0VTRHo1WnNnQUNDaEVTT2JJTkNnSVJFam13QWhDeUdBRUtLMWdoMkJ2MFdiQUtFTElnQVFvcldDSFlHL1JaTURFbEJpY21KajhDTmdBWEZoWVhOek1ERXlNQkJoY1dGaGNXTmo4Q0p5WW5KZ1lIQXhDTzQ2dTVDUU1JSndFR3dXMmdKMFRjekJIVC9qSUdBZ0pjVW1haUlBWUJCQnVQZFpvYnhlSUhCZi9jTFRuNkFTb0ZBM0ZteGYzVC9mTUI4ak01WlhVQ0E3NmNMa1ExM0FjRng4SUFBQVAvaC81SEJGQUVVQUFyQURrQVJ3Q2JzaWRJU1JFU09iQW5FTEE1MExBbkVMQkUwQUN3QUVWWXNDZ3ZHN0VvR3o1WnNBQkZXTEFXTHh1eEZoRStXYkFvRUxBcjBMQXJMN0lBQXdvcldDSFlHL1Jac2djV0tCRVNPYkFITDdJT0ZnY1JFam13RGkreUxBRUtLMWdoMkJ2MFdiSWJMQTRSRWpteUlBY29FUkk1c0JZUXNqTUJDaXRZSWRnYjlGbXdCeEN5UFFFS0sxZ2gyQnYwV2JBb0VMSkVBUW9yV0NIWUcvUlpNREVCQnhZSEJ3WUVKeUluQmdjR0ZoY1hGaFlIQmdZRUp5WW1OelkzSmpjMk5qY21KamMzTmpZM054Y1hJUUVtSndZSEJoWXpNalkzTmlZbkF3WVdGekkyTnpjMkppY21CZ2NFTm9NZ0NRUVgvdTI2UTFJeUJ3WXBPcTJ6dEFjRmwvN2toOC9wQkFmUUlRWUhWanRIUXdVREVQVzNLQ3B3QVhYODhEZ2VZdzRKY1dlRnVBMEpQMWUvQm1CUVdJVU5Bd1pnVUZTSURnT2dBVnhlSDZQSEFoUXlKeUFpQXdJR21JTm1vbUlEQlk1NHBXWXlQVWxsSmphWVdDR1d4UW9CQXhQNzNnTUZPMWsvU1Z0S016Z0RBcTFKWUFKb1RoVk5Yd0lDWmxRQUF3RUdCRWNEVmdhVkFBTUFEZ0FaQUU0QXNBMHZzQmZRc0JjdnNnY0pDaXRZSWRnYjlGbXdBdEN3QWkrd0FOQ3dBQzlBRHc4QUh3QXZBRDhBVHdCZkFHOEFCMTJ3QWhDd0E5QVpzQU12R0xBTkVMSVJDUW9yV0NIWUcvUlpNREVCRndVbkJ6UTJNeklXRlJRR0lpWTNGak15TmpjMkppTWlCZ0poOWY3d3BwcHVUVXhpYkpobFlRTkFKRG9HQkNRZUpqY0dsUUhCQWVaUGEyaEVUV2hpUjFFM0pDUXhOQUFBQVFBS0FBQUVwQVNOQUFjQVA3SUJDQWtSRWprQXNBQkZXTEFHTHh1eEJoMCtXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQUV2RzdFQkR6NVpzQVlRc2dJQkNpdFlJZGdiOUZrd01TRWpFeUVESXhNaEE5bnVxUDRNcU8zS0E5QUR5ZnczQkkwQUFnQXovL1VDZ2dNakFCUUFJUUJuc2dnaUl4RVNPYkFJRUxBYzBBQ3dBRVZZc0Fndkc3RUlHVDVac0FCRldMQVBMeHV4RHc4K1diSUNEd2dSRWptd0FpKzJEd0lmQWk4Q0ExMndEeEN5RWdJS0sxZ2gyQnYwV2JBQ0VMSVZBZ29yV0NIWUcvUlpzQWdRc2h3Q0NpdFlJZGdiOUZrd01RRUdJeUltTnpZMkZ4WVdCd2NHQkNNbk56TVdOaWNXTnpjMkp5WWpJZ1lIQmhZQnNrdE1iWHNFQnJtQWdZc0pCUmIrL05rVkRReDNqa1E5T2d3REFndE5ORXdIQml3Qk56bUxjNEdtQWdTd2tUVFYzZ0dUQWxTc0FqWkhHQmxXVkRveFF3QURBQWovOGdLQUF5TUFGQUFnQUN3QWlySVhMUzRSRWptd0Z4Q3dFdEN3RnhDd0pOQUFzQUJGV0xBU0x4dXhFaGsrV2JBQVJWaXdDQzhic1FnUFBsbXlLZ2dTRVJJNXNDb3Z0dDhxN3lyL0tnTmR0ZzhxSHlvdktnTmR0cThxdnlyUEtnTnhzaGdDQ2l0WUlkZ2I5Rm15QXhncUVSSTVzZzBxR0JFU09iQUlFTEllQWdvcldDSFlHL1Jac0JJUXNpUUNDaXRZSWRnYjlGa3dNUUVHQmdjV0J3WUdKeVltTnpZM0pqYzJOaGNXRmdNMkppTWlCZ2NHRmpNeU5oTTJKaU1pQmdjR0ZqTXlOZ0o5QTBCR1pnUUVyNFovbGdNRG1sWUVCS2Q2ZG8vZUJUTXdNa3dIQnpZdUwwOHZCU3NtS2tFSEJpMG1La0FDU1RsWUtENXhjSDhDQW5ka2ZFODZaR3QrQWdKMC9rVW9MemdyS0RJMEFYd25LakVxSnlzeUFBQUJBQ01BQUFLN0F4VUFCZ0F5QUxBQVJWaXdCUzhic1FVWlBsbXdBRVZZc0FJdkc3RUNEejVac0FVUXNnUUNDaXRZSWRnYjlGbXlBQVFGRVJJNU1ERUJBU01CSVRjaEFxZitTYzBCdVA1Zkd3Sm1BcC85WVFKL2xnQUNBQmIvOGdKekF5UUFGQUFoQUZ1eUhTSWpFUkk1c0IwUXNBZlFBTEFBUlZpd0FDOGJzUUFaUGxtd0FFVllzQTB2RzdFTkR6NVpzQUFRc2dJQ0NpdFlJZGdiOUZteUJ3MEFFUkk1c0FjdnNoVUNDaXRZSWRnYjlGbXdEUkN5SEFJS0sxZ2gyQnYwV1RBeEFRY25KZ1lITmpNeUZnY0dCaWNtSmpjM05qWTNBeUlIQndZWEZqTXlOamMySmdKRURnZDBwVEJRWFdaNkJBUzJnNGlVQ2djWi9zbXNUVG9GQXdNS1ZqTlNCZ2N6QXlTYkFRTmJhMFdNYzN1Z0FnS3hqVVhCNEFuK1dENGtHeHBhVGpVeU93QUFBUUFLLy9JQ2tRTVZBQndBYXJJSEhSNFJFamtBc0FCRldMQUNMeHV4QWhrK1diQUFSVml3RFM4YnNRMFBQbG13QWhDeUF3SUtLMWdoMkJ2MFdiSUhBZzBSRWptd0J5K3lHZ2dLSzFnaDJCdjBXYklGQnhvUkVqbXdEUkN5RkFJS0sxZ2gyQnYwV2JJUkZCb1JFam15SEJvVUVSSTVNREVURXlFSEpRYzJOellXQndZR0p5WW1KeGNXRmpjMk5qYzJKaWNpQnpoNEFlRWIvcmszT0VOdGd3UUV1SUo0bXdTd0JETXZQRWdJQnpZMVFUVUJnd0dTbGdHWEdRSUNoSFIrbmdJQ2dtWUJMeVFCQVVrNU5UOEJKd0FBQXYveEFBQUNlZ01XQUFvQURnQkpBTEFBUlZpd0NTOGJzUWtaUGxtd0FFVllzQVF2RzdFRUR6NVpzZ0VKQkJFU09iQUJMN0lDQWdvcldDSFlHL1Jac0FiUXNBRVFzQXZRc2dnTEJoRVNPYklOQ1FRUkVqa3dNUUUzQnlNSEl6Y2hOd0UzQVRNM0J3SVdaQnhjSExnZS9xVU5BYkM2L2xPcU14SUJPUUdYbzZPRkFld0MvaVQxR0FBQUFmLzAvL01DaFFNa0FDUUFiN0lDSlNZUkVqa0FzQUJGV0xBTkx4dXhEUmsrV2JBQVJWaXdHQzhic1JnUFBsbXlBUmdORVJJNWZMQUJMeGl3RFJDeUJ3SUtLMWdoMkJ2MFdiSUpBUWNSRWptd0FSQ3lJd0lLSzFnaDJCdjBXYklUSXdFUkVqbXdHQkN5SGdJS0sxZ2gyQnYwV2JJYkhpTVJFamt3TVJNek5qWTNOaWNuSmdjSE5qWVhGaFlIQmdZSEZnY0dCaWNtSmpVWEZoY3lOamMySnlQbVV6MU5Cd2xLRjEwY3VnbW1mWUdaQlFOSlVuWUVBN3lMZlpteEJHbzJVd2NOZUZ3QjBnSTRMa01OQWdKTUFXbDZBZ04zWWp0WEppbUJiNElDQW9OdEFWa0NPQzlaQlFBQUFmL2pBQUFDZmdNa0FCY0FXYklJR0JrUkVqa0FzQUJGV0xBUEx4dXhEeGsrV2JBQVJWaXdBQzhic1FBUFBsbXlGZ0lLSzFnaDJCdjBXYklDRmdBUkVqbXlBdzhBRVJJNXNBOFFzZ2dDQ2l0WUlkZ2I5Rm15REFBUEVSSTVzaFVBRHhFU09UQXhJU0UzQVRZM05pWW5JZ1lIQnpZMkZ4WVdCd1lQQWdVQ052MnRHQUZXWVF3SEt5azZRd3kyQ3ErQ2Y1SUZCWlpQblFGZmh3RVpVME1wTHdGSE5BRjVtQUlDZzJoK2R6eHVBZ0FCQUcwQUFBSU5BeE1BQmdBeEFMQUFSVml3QlM4YnNRVVpQbG13QUVWWXNBRXZHN0VCRHo1WnNBVVFzQVRRc0FRdnNnTUNDaXRZSWRnYjlGa3dNU0VqRXdjM0pUTUJpN1ZqekJzQmJoY0NOaStaY3dBQ0FCZi84QUtNQXlVQURRQVpBRWF5RVJvYkVSSTVzQkVRc0FmUUFMQUFSVml3Qnk4YnNRY1pQbG13QUVWWXNBQXZHN0VBRHo1WnNBY1FzaEVDQ2l0WUlkZ2I5Rm13QUJDeUZ3SUtLMWdoMkJ2MFdUQXhCU1ltTnpjMk5oY1dGZ2NIQmdZVE56UW5KZzhDRkJjV053RWxoSW9MRUJPeWlJU0pDdzhTc1IwQ1ZuWVhGZ0paZGhjTUJMQ1dqNml3QkFTeWxvK21zQUh6TjI4REE3V3dNRzhEQjhNQUFBSC8yUUFBQkFjRWpRQU1BRXV5QUEwT0VSSTVBTEFBUlZpd0NDOGJzUWdkUGxtd0FFVllzQU12RzdFRER6NVpzZ0VCQ2l0WUlkZ2I5Rm15QlFFREVSSTVzQWdRc2dvQkNpdFlJZGdiOUZteUJ3b0lFUkk1TURFQkFTRUhJVGNCQXpjaEJ5RVRBbnYrc3dKV0kveDRIUUdDN1JrRFl5UDl3OVVDUlA2QXhLUUJ0d0dtak1UK2tBQURBRU1BQUFVM0JJNEFFUUFYQUIwQWJMSVFIaDhSRWptd0VCQ3dGZEN3RUJDd0c5QUFzQUJGV0xBUUx4dXhFQjArV2JBQVJWaXdCeThic1FjUFBsbXlEeEFIRVJJNXNBOHZzQURRc2dZSEVCRVNPYkFHTDdBSjBMSVVBUW9yV0NIWUcvUlpzQThRc2hVQkNpdFlJZGdiOUZtd0d0Q3dGQkN3RzlBd01RRVdGZ2NHQUFjSEl6Y21KamMySkRjM0Z3RUdGeE1HQmdVMkp3TTJOZ04rME9rUEVQN0srUmp1R2RIb0R4QUJPUGNiN2Yya0gvSnFqNTRDN3h2dGE0dWpCQk1VOWJ6Ui93QVFiVzRUK3NIUC9BNTVBZjJ2N3lJQ0xoQ1RaK2NoL2RJUGx3QUFBUUJ3QUFBRlVRU05BQmtBWExJWUdoc1JFamtBc0FCRldMQUVMeHV4QkIwK1diQUFSVml3RUM4YnNSQWRQbG13QUVWWXNCZ3ZHN0VZSFQ1WnNBQkZXTEFLTHh1eENnOCtXYklYQkFvUkVqbXdGeSt3QU5Dd0Z4Q3lEQUVLSzFnaDJCdjBXYkFKMERBeEFUWTJOeE16QXdZQUJ3TWpFeVlDTnhNekF3WUhCaFlYRXpNREFYcVpIRFB1TlNuKzNlUTM3ampMeEI0eTdUSUlBUU5SVkg3dEFkb2F1YW9CTnY3Ri9QN2JHUDduQVJrZEFUbnZBUy8rMERrOGFZb1lBckFBQVFBQUFBQUVlQVNoQUNRQVdiSUFKU1lSRWprQXNBQkZXTEFhTHh1eEdoMCtXYkFBUlZpd0VDOGJzUkFQUGxtd0FFVllzQ012RzdFakR6NVpzaUVCQ2l0WUlkZ2I5Rm13QU5Dd0doQ3lDQUVLSzFnaDJCdjBXYkFBRUxBUDBMQWhFTEFTMERBeEpUWTJOelluSmlZbkpnWUdCeGNXRndjaE56Y21OemMrQWhjZUFnY0hBZ2MzQnlFQ1RueVZHUXdHREc5Z2FhQlVBd0VNa2g3K1BDU3BnUmNGRXFYK2s0M1VadzBGSStDMEkvNDh4eVhJc1dnOFltc0RBMjNRdHlURE9NbkVBcmY2SzVMdWZ3UURnK2lQSy83bm5BVEVBQUVBa3dLSEF6d0RNUUFEQUJFQXNBSXZzZ0VCQ2l0WUlkZ2I5Rmt3TVFFaE55RURIdjExSGdLTEFvZXFBQUFCQUl3QUFBWWVCSTBBREFCWkFMQUFSVml3QVM4YnNRRWRQbG13QUVWWXNBZ3ZHN0VJSFQ1WnNBQkZXTEFMTHh1eEN4MCtXYkFBUlZpd0F5OGJzUU1QUGxtd0FFVllzQVl2RzdFR0R6NVpzZ0FCQXhFU09iSUZBUU1SRWpteUNnRURFUkk1TURFQkFUTUJJd01CSXdNekV3RXpBL0lCUU96K0pPVkEvcHptUitBVUFXZlJBUzREWC90ekF6Nzh3Z1NOL0tFRFh3QUJBSEFBQUFTNEJJNEFDQUF4QUxBQVJWaXdBeThic1FNZFBsbXdBRVZZc0Fjdkc3RUhIVDVac0FCRldMQUZMeHV4QlE4K1diSUJBd1VSRWprd01RRVhOd0VoQVNNRE53SGtCU01CcUFFRS9Zbnc0ZW9CT0VwVEEwejdjd1NOQVFBQkFEbi82d1JxQkkwQUVRQThzZzRTRXhFU09RQ3dBRVZZc0FBdkc3RUFIVDVac0FCRldMQUlMeHV4Q0IwK1diQUFSVml3QkM4YnNRUVBQbG15RFFFS0sxZ2gyQnYwV1RBeEFRTUdCQ2NtSmpjVE13TUdGaGNXTmpjVEJHcUFHLzdsMHNuZ0ZJSHNnZ3RiWjJ1T0VvTUVqZjBCd3VFRUJPVzFBd0Q4LzJWeUF3UnZhUU1IQUFFQVlnQUFCRm9FalFBSEFDNEFzQUJGV0xBR0x4dXhCaDArV2JBQVJWaXdBaThic1FJUFBsbXdCaEN5QUFFS0sxZ2gyQnYwV2JBRTBEQXhBU0VESXhNaE55RUVOLzZLcU8yby9vNGpBOVVEeWZ3M0E4bkVBQUFCQUE3LzdRUC9CSjhBSmdCdHNoRW5LQkVTT1FDd0FFVllzQWt2RzdFSkhUNVpzQUJGV0xBY0x4dXhIQTgrV2JJQ0hBa1JFam15REFrY0VSSTVzZ3dNQVYyd0NSQ3lFQUVLSzFnaDJCdjBXYkFDRUxJVkFRb3JXQ0hZRy9SWnNpQUpIQkVTT2JJRElBRmRzQndRc2lRQkNpdFlJZGdiOUZrd01RRTJMd0ltTnpZa0Z4WVdCeWMySmljaUJnY0dCQmNXQnc0Q0p5WW5KamNYQmhZek1qWUN1eEdQZGtmOURRa0JDNys4NEFMckEyZFVYWHNNRVFFOVJzUUtCMy9ZZ0o1eXBnVHNCVzF1WVhzQk9Xb3ZKQnBrMUp1OEFnWENvZ0ZXVmdGUVEyRmRKV2ZHYkpkUEF3SkhhTWdCWFdKTkFBQUNBQW9BQUFRV0JJMEFEUUFWQUY2eUFCWVhFUkk1c0EvUUFMQUFSVml3QkM4YnNRUWRQbG13QUVWWXNBSXZHN0VDRHo1WnNBQkZXTEFNTHh1eERBOCtXYklQQkFJUkVqbXdEeSt5QUFFS0sxZ2gyQnYwV2JJS0FBOFJFam13QkJDeUZRRUtLMWdoMkJ2MFdUQXhBU01ESXhNRkZoWUhCZ1VURlNNQkZ6WTJOelluSndJZjNrcnR5Z0dzeGRFS0QvOEF1ZnorcU1Ob2hnd1d1dHdCcWY1WEJJMEJCYmViOEdIK0tRMENhd0lDWUZXZkNRRUFBQUlBTi84d0JHQUVvd0FUQUNJQVJySURJeVFSRWptd0F4Q3dIOUFBc0FCRldMQU5MeHV4RFIwK1diQUFSVml3QlM4YnNRVVBQbG13RFJDeUZ3RUtLMWdoMkJ2MFdiQUZFTEllQVFvcldDSFlHL1JaTURFbEZ3Y25CaU1tSmdJM054SUFGeFlXRWdjSEFnTW1KaWNtQWdjVkZoWVhGalkzTmdNcXI2WGRPaWlSejE0UkF5QUJTZTJUejEwUkJ5NnlCMnhpbWI4S0JXeGlnTFFmRmt5ZWZzZ0hBcFVCQnA0YkFSRUJTd1lFa3Y3NW9Ucit2d0lDYjRBRUJ2Nzg1a2h4aGdRRnQ2cDNBQUlBQ2dBQUJEWUVqUUFLQUJNQVRiSUVGQlVSRWptd0JCQ3dETkFBc0FCRldMQURMeHV4QXgwK1diQUFSVml3QVM4YnNRRVBQbG15Q3dFREVSSTVzQXN2c2dBQkNpdFlJZGdiOUZtd0F4Q3lFZ0VLSzFnaDJCdjBXVEF4QVFNakV3VVdGZ2NHQkNNbkZ6STJOelltSnljQlBrZnR5Z0hJdk40TEN2N3QxOWZkYTR3TUMxeFkrQUdaL21jRWpRRUUwS1d2ek1VQllGVlNZUVFCQUFJQU92L3FCR01Fb1FBUUFDQUFSckllSVNJUkVqbXdIaEN3Q05BQXNBQkZXTEFKTHh1eENSMCtXYkFBUlZpd0FDOGJzUUFQUGxtd0NSQ3lGZ0VLSzFnaDJCdjBXYkFBRUxJZEFRb3JXQ0hZRy9SWk1ERUZKaVlDTnpjMkVqWVhGaFlTQndjQ0FCTTJKeVltSnlZQ0J4Y1dGaGNXTmpjQis1UFJYUkVKR0tYOG1KUE9YUkVESVA2NWZnWURCV3RpbXNBSkFRVnRZWWU0R1JBRWxRRURuVU9sQVFXTEJBU1MvdnVjSFA3cC9yY0NmajFBYm9JRUJ2NzY1VWh4aFFRRnpyOEFBUUFLQUFBRXFBU05BQWtBUlFDd0FFVllzQVV2RzdFRkhUNVpzQUJGV0xBSUx4dXhDQjArV2JBQVJWaXdBQzhic1FBUFBsbXdBRVZZc0FNdkc3RUREejVac2dJRkFCRVNPYklIQlFBUkVqa3dNU0VqQVFNakV6TUJFek1EM3VUK2lZenR5dVVCZDR6c0F5WDgyd1NOL05vREpnQUJBQW9BQUFYSUJJMEFEZ0Jnc2dFUEVCRVNPUUN3QUVWWXNBQXZHN0VBSFQ1WnNBQkZXTEFDTHh1eEFoMCtXYkFBUlZpd0JDOGJzUVFQUGxtd0FFVllzQWd2RzdFSUR6NVpzQUJGV0xBTUx4dXhEQTgrV2JJQkFBUVJFam15QndBRUVSSTVzZ29BQkJFU09UQXhBUk1CSVFNakV4TUJJd3NDSXhNQ0E3UUIxUUU4eSt3NWRQNGRwYjVOTmV6S0JJMzh0d05KKzNNQlNBSVgvS0VEZlAyeS90SUVqUUFBQVFBS0FBQUROQVNOQUFVQUtBQ3dBRVZZc0FRdkc3RUVIVDVac0FCRldMQUNMeHV4QWc4K1diSUFBUW9yV0NIWUcvUlpNREVsSVFjaEV6TUJHUUliSS96NXl1M0N3Z1NOQUFBQkFBb0FBQVNkQkkwQURBQkxBTEFBUlZpd0JDOGJzUVFkUGxtd0FFVllzQWd2RzdFSUhUNVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdDeThic1FzUFBsbXlCZ0lFRVJJNXNBWVFzQUhRc2dvQkJoRVNPVEF4QVFjREl4TXpBemNCSVFFQklRSFZwRHJ0eXUxWGZBR0FBVGY5NmdGUS92WUIyWXYrc2dTTi9ndCtBWGY5N1AySEFBQUIvL0wvNndPd0JJMEFEZ0F2c2dVUEVCRVNPUUN3QUVWWXNBQXZHN0VBSFQ1WnNBQkZXTEFGTHh1eEJROCtXYklMQVFvcldDSFlHL1JaTURFQk13TUdCaWNtSmpjWEJoY1dOamNDdysyR0dmZXR0Y1lHN1FtZlNtZ1BCSTM4NExQUEJBVERxZ0dyQkFKald3QUJBQmdBQUFIUEJJMEFBd0FkQUxBQVJWaXdBaThic1FJZFBsbXdBRVZZc0FBdkc3RUFEejVaTURFaEl4TXpBUVh0eSt3RWpRQUJBQW9BQUFTcEJJMEFDd0NHQUxBQVJWaXdCaThic1FZZFBsbXdBRVZZc0Fvdkc3RUtIVDVac0FCRldMQUFMeHV4QUE4K1diQUFSVml3QkM4YnNRUVBQbG15Q1FZQUVSSTVzQWt2dEs4SnZ3a0NYYkkvQ1FGeHNzOEpBWEd5UHdrQmNyTC9DUUZ4c2c4SkFYSzBid2wvQ1FKeHROOEo3d2tDWGJKZkNRRnl0QndKTEFrQ1hiSUNBUW9yV0NIWUcvUlpNREVoSXhNaEF5TVRNd01oRXpNRDMrMVMvZ1pUN2NydFZnSDdWdTBCMi80bEJJMytFUUh2QUFBQkFELy84QVJSQktNQUlBQmtzZ0loSWhFU09RQ3dBRVZZc0Fzdkc3RUxIVDVac0FCRldMQURMeHV4QXc4K1diSWZDd01SRWptd0h5K3dDeEN5RVFFS0sxZ2gyQnYwV2JJUEh4RVJFam15REE4QlhiQURFTElhQVFvcldDSFlHL1Jac0I4UXNoMEJDaXRZSWRnYjlGa3dNU1VHQlFjdUFqYzNFZ0FYRmhZWEp5WW5KZ1lIQndZWEZoWVhGamMzSXpjaEErZC8vdG82bGRSZ0VRWWZBVUh0d2QwUTVCSzloclViREFjRkNIUm1oMW9vOHlBQjNaS1VEUUVDa1ArZU53RVJBVHdHQk1tNEFid0dCYnVxV2tGQmJuc0RBanJJc1FBQkFBb0FBQVBtQkkwQUNRQkZBTEFBUlZpd0JDOGJzUVFkUGxtd0FFVllzQUl2RzdFQ0R6NVpzZ2tFQWhFU09iQUpMN0pLQ1FGZHNnQUJDaXRZSWRnYjlGbXdCQkN5QmdFS0sxZ2gyQnYwV1RBeEFTRURJeE1oQnlFRElRTXMvaDVUN2NvREVpUDkzRFFCNUFIYi9pVUVqY1QrMVFBQUFRQUtBQUFEK1FTTkFBc0FVd0N3QUVWWXNBWXZHN0VHSFQ1WnNBQkZXTEFFTHh1eEJBOCtXYklMQmdRUkVqbXdDeSt5U1FzQlhiSUFBUW9yV0NIWUcvUlpzQVFRc2dJQkNpdFlJZGdiOUZtd0JoQ3lDQUVLSzFnaDJCdjBXVEF4QVNFRElRY2hFeUVISVFNaEF6WCtHallDT3lQODJjb0RKU1A5eVM4QjZBSDQvc3JDQkkzRS92SUFBZ0FLQUFBRUdnU05BQW9BRmdCRHNnNFhHQkVTT2JBT0VMQUMwQUN3QUVWWXNBSXZHN0VDSFQ1WnNBQkZXTEFBTHh1eEFBOCtXYklOQVFvcldDSFlHL1Jac0FJUXNoWUJDaXRZSWRnYjlGa3dNVE1UQlI0Q0J3Y0dBQ0VUQXhjeU5qYzNOaWNtSmljS3lnRmlsK0ZzRUFVZC9xSCs5eCtHY0tuUEdBWUlCZ3A1YmdTTkFRU1AvWmtzL2Y3R0E4bjgrUUhCdFN4SFFHaHlCQUFBQVFBNS8rd0VTUVNqQUJ3QVRySVRIUjRSRWprQXNBQkZXTEFMTHh1eEN4MCtXYkFBUlZpd0F5OGJzUU1QUGxteUFBc0RFUkk1c2c0TEF4RVNPYkFMRUxJU0FRb3JXQ0hZRy9SWnNBTVFzaG9CQ2l0WUlkZ2I5Rmt3TVFFR0JDY3VBamMzRWdBWEZoWVhKeVltSnlZR0J3WVhGQllYRmpjRC9CeiszOVNReVZrU0JpQUJRZW5DNGdyckEyQnJoYkFhRUFGa1llTTRBWVc5M0FRQ2tQK2ZOQUVPQVVFR0JOMjlBV2R3QkFYQXRJay9jSDhFQ05vQUFBTUFDZ0FBQkFBRWpRQU9BQllBSGdDc3NoZ2ZJQkVTT2JBWUVMQUMwTEFZRUxBVzBBQ3dBRVZZc0FFdkc3RUJIVDVac0FCRldMQUFMeHV4QUE4K1diSVlBQUVSRWptd0dDK3l2eGdCY3JTdkdMOFlBbDIwYnhoL0dBSnhzdjhZQVhHeUR4Z0JjclNQR0o4WUFuS3lYeGdCY3JMUEdBRnhzajhZQVhHMEh4Z3ZHQUpkc25rWUFWMnlTUmdCWGJJV0FRb3JXQ0hZRy9SWnNnZ1dHQkVTT2JBQUVMSVJBUW9yV0NIWUcvUlpzQUVRc2g0QkNpdFlJZGdiOUZrd01UTVRCUVFYRmdjR0J4WVdCd1lHSXdNREZ6WTJOelluSnhjMk5qYzJKeWNLeWdHVUFTWlVIZ1lLejB0VUJBajMzcEEyejJWNkRCYW0xOEZmY2d3VXNzMEVqUUVJcERsVHJGY2FpRm1rc2dINy9zY0JBMUpKa2dtckFRTlBSWWdGQVFBQy81c0FBQVFGQkkwQUJ3QUtBRVlBc0FCRldMQUVMeHV4QkIwK1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNBWXZHN0VHRHo1WnNna0VBaEVTT2JBSkw3SUFBUW9yV0NIWUcvUlpzZ29FQWhFU09UQXhKU0VISXdFekV5TUJJUU1DN3Y0dWlQa0NrOXI5NXY1aUFVaFgrZmtFamZ0ekFiSUJ1QUFBQVFEckJHa0NOZ1l0QUFjQUZnQ3dBRVZZc0FBdkc3RUFJVDVac0FUUXNBUXZNREVCRndZSEJ5TTNOZ0cxZ1ZFV0ZzNFJId1l0VjMxMmVuZlhBQUFDQVFRRTBRTjZCbjRBQ3dBUEFGb0FzQU12c0FiUXNBWXZRQXNQQmg4R0x3WS9CazhHQlYyd0FOQ3dBQyt3QXhDeUNRWUtLMWdoMkJ2MFdiQUdFTEFQMExBUEw3QU0wTEFNTDBBUER3d2ZEQzhNUHd4UERGOE1id3dIWGJBUEVMQU8wQm13RGk4WU1ERUJCZ1luSmlZbkZ3WVhGamNsTXhjakEzb0l0WXlMb0FLcUJJQ0dHLzdSb2s1dEJiRm9lQU1EZUdRQ2J3SUNjODNBQUFBQ0FOd0U1d1V0QnBBQUJnQUtBRnNBc0FNdnNBWFFzQVV2c0FEUXNBQXZRQWtQQUI4QUx3QS9BQVJkc0FNUXNBTFFHYkFDTHhpeUJBTUFFUkk1c0FiUUdiQUdMeGl3QXhDd0NkQ3dDUyt3QjlDd0J5KzJEd2NmQnk4SEExMndDUkN3Q3RBWnNBb3ZHREF4QVRNWEl5Y0hJd0VYQVNNQ0lwM3d1WUt5NWdOcDZQOEFxZ1hoK28yTkFha0IvdllBQWdBVEJOb0RxQWFEQUFZQUNnQmJBTEFETDdBRTBCbXdCQzhZc0FEUUdiQUFMeGl3QXhDd0FkQ3dBUyt3QnRDd0JpOUFDUThHSHdZdkJqOEdCRjJ5QWdNR0VSSTVzQU1Rc0FqUXNBZ3ZzQWZRR2JBSEx4aXdDQkN3Q3RDd0NpKzJEd29mQ2k4S0ExMHdNUUVqSndjakpUTUZJd016QTZpN2diTGxBVWFkL29lS29zY0UybzJOK2x3QkN3QUNBTmdFNXdTVUJzc0FCZ0FWQUdnQXNBTXZzQVRRR2JBRUx4aXdBTkFac0FBdkdMQURFTEFCMExBQkw3QURFTEFGMExBRkwwQUpEd1VmQlM4RlB3VUVYYklDQXdVUkVqbXdBeEN3QjlDd0J5K3dEdEN3RGkreVB3NEJYYklJQnc0UkVqbXlEd1lLSzFnaDJCdjBXYklVQ0FjUkVqa3dNUUVqSndjbkpUTVhOemMyTnpZbkp6Y1dGZ2NHQndjRHFxZVJ5ZEVCT2Jhb0N5SmFCd2ROS2c5M2dRRURpQWtFNTZHaEFmbDBmUU1LTXk4R0Ftb0RVMGhyR1QwQUFBSUExd1RuQTZrRzBBQUdBQm9BamdDd0F5K3dCTkFac0FRdkdMQUEwQm13QUM4WXNBTVFzQUhRc0FFdnNBTVFzQVhRc0FVdlFBa1BCUjhGTHdVL0JRUmRzZ0lEQlJFU09iQUswTEFLTDBBSlB3cFBDbDhLYndvRVhiQU8wTEFPTDBBTkR3NGZEaThPUHc1UERsOE9CbDJ3Q2hDd0VOQ3dFQyt3RGhDeUZBWUtLMWdoMkJ2MFdiQUtFTElZQmdvcldDSFlHL1Jac0JRUXNCclFNREVCSXljSEl5VXpOd1lHSXlJbUpnY0dCeWMyTmpNeUZoWTNOamNEcWFXVnhkTUJTNC9tQ1ZVN0kyNGtFak1nV2dwVFBDRnpJUkk1SEFUbmpZM3QzMFJiUFFrQ0EwTVlTRm8rQ0FFRVJRQUFBZ0VFQk5BRGVnWitBQXdBRUFCYUFMQURMN0FHMExBR0wwQUxEd1lmQmk4R1B3WlBCZ1Zkc0FEUXNBQXZzQU1Rc2drR0NpdFlJZGdiOUZtd0JoQ3dEOUN3RHkrd0RkQ3dEUzlBRHc4Tkh3MHZEVDhOVHcxZkRXOE5CMTJ3RHhDd0VOQVpzQkF2R0RBeEFRWUdKeVltSnhjR0Z4WTJOeWNYQnlNRGVnaTFqSXVnQXFvRWdEcFpEa0REeG84RnNHaDRBd040WkFKdkFnRTNPODRCdmdBQ0FRVUUwZ051QndnQURBQWJBRjBBc0FNdnNBYlFzQVl2UUFzUEJoOEdMd1kvQms4R0JWMndBTkN3QUMrd0F4Q3lDUVlLSzFnaDJCdjBXYkFHRUxBYjBMQWJMN0FVMExBVUw3US9GRThVQWwyeURoc1VFUkk1c2hVTUNpdFlJZGdiOUZteUdnNGJFUkk1TURFQkJnWW5KaVluRndZWEZqWTNKemMzTmpjMkp5YzNGeFlWQmdjSEEyNEpzWWlEb2dLbUJINDZXQTdRQ2pCWENRbGZLZzFJMkFPWENRV3hhM1FDQW5abUFtd0NBVFU2R1hZQ0JqQXJCQUZoQkJONFhSZzhBQUlCQkFUTkE0SUcyd0FMQUNBQWRnQ3dBeSt3QnRDd0JpOUFDdzhHSHdZdkJqOEdUd1lGWGJBQTBMQUFMN0FERUxJSkJnb3JXQ0hZRy9SWnNBQVFzQkRRc0JBdnNCUFFzQk12UUFzUEV4OFRMeE0vRTA4VEJWMndFQkN3RmRDd0ZTK3dFeEN5R1FnS0sxZ2gyQnYwV2JBUUVMSWVDQW9yV0NIWUcvUlpzQmtRc0NEUU1ERUJCZ1luSmlZbkZ3WVhGamNUQmdjR0J5SW1Cd1lISnpZMk16SVdGeFkzTmpjRGNRaXlpNFdoQXFnRWZZVWJ2UW9zTGtZb2lTZzdIMllKWGtZV0p5OUdLRHdmQmJCcmVBSUNlMllDYmdJQ2NnRVJWREl6QWs0REExUWJVR3NOR2ljREExTUFBQUgvcEFBQUJJQUVqUUFMQUZNQXNBQkZXTEFCTHh1eEFSMCtXYkFBUlZpd0NpOGJzUW9kUGxtd0FFVllzQVF2RzdFRUR6NVpzQUJGV0xBSEx4dXhCdzgrV2JJQUFRUVJFam15QmdFRUVSSTVzZ01BQmhFU09iSUpCZ0FSRWprd01RRUJJUUVCSVFNQklRRUJJUUlyQVRFQkpQNGxBUlgrOTdEK3gvN2NBZWIrL0FFRUF2c0JrdjJ5L2NFQm1QNW9BbGNDTmdBQkFHMEFBQVNBQkkwQUNBQXhBTEFBUlZpd0FTOGJzUUVkUGxtd0FFVllzQWN2RzdFSEhUNVpzQUJGV0xBRUx4dXhCQTgrV2JJQUFRUVJFamt3TVFFQklRRURJeE1CTXdJTUFXSUJFdjNjUk94TC92YjNBbndDRWZ6Ni9ua0JyZ0xmQUFFQU9mL3NCRWtFb3dBZUFJU3lIQjhnRVJJNUFMQUFSVml3Q3k4YnNRc2RQbG13QUVWWXNBTXZHN0VERHo1WnNnQUxBeEVTT2JJT0N3TVJFam13Q3hDeUVnRUtLMWdoMkJ2MFdiSVZDd01SRWpsOHNCVXZHTEx3RlFGZHNnQVZBWEcwTUJWQUZRSmR0SUFWa0JVQ2NiUmdGWEFWQWwyeUZnRUtLMWdoMkJ2MFdiQURFTEljQVFvcldDSFlHL1JaTURFQkJnUW5MZ0kzTnhJQUZ4WVdGeWNtSmljbUF5RUhJUVlYRmhZWEZqY0QvQnorMzlTUXlWa1NCaUFCUWVyQjRncnJBMkJyN1Z3QmZTTCtrZ1lGQjJWWDR6a0JoYjNjQkFLUS81ODBBUTRCUVFZRTNiMEJaM0FFQi83SHhEZzJXMmdEQ05vQUFBRUFZdi9yQlEwRWpRQVhBR3V5QlJnWkVSSTVBTEFBUlZpd0FpOGJzUUlkUGxtd0FFVllzQll2RzdFV0R6NVpzQUJGV0xBT0x4dXhEZzgrV2JBQ0VMSUFBUW9yV0NIWUcvUlpzQVRRc0FYUXNnZ0NGaEVTT2JBSUw3QU9FTElQQndvcldDSFlHL1Jac0FnUXNoTUJDaXRZSWRnYjlGa3dNUUVoTnlFSElRYzJGeFlXQndZRUJ6YzJOelluSmdjREl3R3kvckFqQTVJai9xd3loSWpBMHd3Ty92YnlGUEFaR3M1bm4yUHRBOG5FeE84cEF3TFZ1YnpIQXIwRndjb0dBeWY5NWdBQkFGVUFBQVJpQmJBQUJnQXlBTEFBUlZpd0JTOGJzUVVmUGxtd0FFVllzQUV2RzdFQkR6NVpzQVVRc2dNQkNpdFlJZGdiOUZteUFBTUZFUkk1TURFQkFTTUJJVGNoQkVqOUIvb0M5LzFlSWdPV0JSejY1QVR0d3dBQ0FDcitVQVJNQkZFQUhBQXFBSHl5QkNzc0VSSTVzQVFRc0NmUUFMQUFSVml3Qnk4YnNRY2JQbG13QUVWWXNBUXZHN0VFR3o1WnNBQkZXTEFNTHh1eERCRStXYkFBUlZpd0ZpOGJzUllQUGxteUJnY1dFUkk1c0F3UXNoRUJDaXRZSWRnYjlGbXlGQWNXRVJJNXNCWVFzaUlCQ2l0WUlkZ2I5Rm13QkJDeUp3RUtLMWdoMkJ2MFdUQXhFellTTmhjV0Z6Y3pBd1lBSnlZbk54WVhCQk0zQmljdUFpY21OeGNHRnhZV0Z4WTNFeVluSmdZSFJCT1UxNEcyV2lyUHFpTCsxK1N1bTBKempBRUZTZ2Qrb0dXZFhBWUVCdTRHQkFWaVZZcGtWVFNHZnF3WEFoK2pBUXlEQXdTRGMvd1o4Zjd1QkFSWnNrMENCd0U4RzN3RUFXakRkajg5QVRVN1ozMERCWVVCMjNjRUE4YW1BQUFCL3dmK1JnRS9BTTBBREFBc0FMQU5MN0FBUlZpd0JDOGJzUVFSUGxteUNRRUtLMWdoMkJ2MFdiQU5FTElNQlFvcldDSFlHL1JaTURFbEF3WUdKeVluTnhZek1qY1RBVDhxR05DaVJFQWlPU1orSUN2Ti92UzB4d0lDRXNVUHJ3RU1BQUgvc3Y2YUFQNEF0UUFEQUJJQXNBUXZzQUxRc0FJdnNBSFFzQUV2TURFVEl4TXpvTzVlN3Y2YUFodi8vLy9XQUFBRUp3WWpBaVlFcVFBQUFRWUJhRXNlQUJNQXNBQkZXTEFITHh1eEJ4MCtXYkFQM0RBeEFBQUMvOEgvL3diRUJJMEFHQUFoQUd1eUJTSWpFUkk1c0FVUXNCclFBTEFBUlZpd0V5OGJzUk1kUGxtd0FFVllzQU12RzdFRER6NVpzQUJGV0xBTEx4dXhDdzgrV2JBVEVMSUZBUW9yV0NIWUcvUlpzaFlUQXhFU09iQVdMN0FERUxJYkFRb3JXQ0hZRy9SWnNCWVFzaUVCQ2l0WUlkZ2I5Rmt3TVFFR0JDTWhFeUVEQndJR0p5TTNOelkyTnpjVElRTVhGaFlsQXhjMk5qYzJKaWNHdVF2KzdkcitIcW4rc0VRWk8rZTZQaGdpWm53ZkQyZ0RKRWJIeHViOWEwSGNabzhOQzFoWkFZZXYyQVBKL3JaLy91enRBY3dCQnFUQVhBSDYvbXdCQWNvSS9vNEJBbXRhVEZvRkFBQUNBQW9BQUFiSEJJMEFFZ0FiQUlHeUFod2RFUkk1c0FJUXNCVFFBTEFBUlZpd0FpOGJzUUlkUGxtd0FFVllzQkV2RzdFUkhUNVpzQUJGV0xBTEx4dXhDdzgrV2JBQVJWaXdEeThic1E4UFBsbXlBUUlMRVJJNXNBRXZzQUlRc1JzS0sxallHOXhac2dVQkNpdFlJZGdiOUZtd0FSQ3lEUUVLSzFnaDJCdjBXYkFMRUxJVkFRb3JXQ0hZRy9SWk1ERUJJUk16QXhjV0ZnY0dCQ01oRXlFREl4TXpBUU1YTmpZM05pWW5BV3NCN0ZidVI4bkY1UXNML3UzWS9oMVQvaFJUN2NydEFuSkIzR2lORFF0WVdRS2VBZS8rYkFFQnlxYXYyQUhiL2lVRWpmMm8vbzRCQW10YVRGb0ZBQUVBWWdBQUJRNEVqUUFXQUZxeUJSY1lFUkk1QUxBQVJWaXdBaThic1FJZFBsbXdBRVZZc0F3dkc3RU1EejVac0FCRldMQVZMeHV4RlE4K1diQUNFTElBQVFvcldDSFlHL1Jac0FUUXNBWFFzZ2dDREJFU09iQUlMN0lTQVFvcldDSFlHL1JaTURFQklUY2hCeUVITmhjV0ZnY0RJeE0ySnlZbkpnY0RJd0d5L3JBakE1SWovcXd5Z1lySnpCUTQ3VGtHQlJPYmJKdGo3UVBKeE1UdUp3SUU0TUwrcGdGYk5DbC9CZ01tL2VZQUFRQUsvcDhFb3dTTkFBc0FUN0lEREEwUkVqa0FzQUl2c0FCRldMQUdMeHV4QmgwK1diQUFSVml3Q2k4YnNRb2RQbG13QUVWWXNBQXZHN0VBRHo1WnNBQkZXTEFFTHh1eEJBOCtXYklJQVFvcldDSFlHL1Jac0FuUU1ERWhJUU1qRXlFVE13TWhFek1EMlA2V1B1MCsvb25LN2FnQjlLanUvcDhCWVFTTi9EWUR5Z0FBQWdBTC8vd0Q5d1NOQUEwQUZnQmVzaFFYR0JFU09iQVVFTEFKMEFDd0FFVllzQXd2RzdFTUhUNVpzQUJGV0xBTEx4dXhDdzgrV2JBTUVMSUFBUW9yV0NIWUcvUlpzZ01NQ3hFU09iQURMN0FMRUxJT0FRb3JXQ0hZRy9SWnNBTVFzaFFCQ2l0WUlkZ2I5Rmt3TVFFaEJ4Y1dGZ2NPQWljbEV5RUJOalkzTkNZbkp3TUQxZjNKSi9uQXhSVVFrdWVGL2puTEF5SCtHV2g4QW1sYzNENER5K0FCQmNPaWQ3RmNBd0VFamZ3MUFtWlhURmNDQWY2Y0FBTC9nLzZ2Qk1BRWpRQU9BQlFBVnJJU0ZSWVJFam13RWhDd0NkQUFzQUJGV0xBRUx4dXhCQjArV2JBQVJWaXdDaThic1FvUFBsbXlBQUVLSzFnaDJCdjBXYkVNQ2l0WTJCdmNXYkFJMExJUEJBb1JFam13QkJDeUVRRUtLMWdoMkJ2MFdUQXhOelkyTnhNaEF6TURJeE1oQXlNVEJTVVRJUU1DTVcrREpGSURKNm1TWE8wNy9SQTc3VjBCWndIamh2NnVRRUhBWmYzRkFhYjhOdjNzQVZIK3J3SVRBd1FEQnY2NC90d0FBQUgvcVFBQUJqc0VqUUFWQUo2eUFSWVhFUkk1QUxBQVJWaXdFUzhic1JFZFBsbXdBRVZZc0E0dkc3RU9IVDVac0FCRldMQUtMeHV4Q2gwK1diQUFSVml3Qmk4YnNRWVBQbG13QUVWWXNBTXZHN0VERHo1WnNBQkZXTEFWTHh1eEZROCtXYklNQXc0UkVqbXdEQyt5UHd3QmNiSmZEQUZ5c3M4TUFYRzByd3kvREFKZHRJOE1ud3dDY3JBUDBMSUJBUW9yV0NIWUcvUlpzQVRRc2dnUEJCRVNPYklUQVE4UkVqa3dNUUVqQXlNVEl3RWhBUU1oRXpNVE13TXpBU0VCRXlFRHltWlI3VkpWL3JyK3pBSER5d0VKbkZkVDdsUkpBVVFCSlA1aDV2N3VBZFgrS3dIVi9pc0NZUUlzL2lBQjRQNGdBZUQ5dy8yd0FBQUJBQXovN2dQdkJLQUFKZ0JCc2lBbktCRVNPUUN3QUMrd0FFVllzQmd2RzdFWUR6NVpzZ2tBR0JFU09iSU1BQmdSRWpteUh3RUtLMWdoMkJ2MFdiQUFFTElrQndvcldDSFlHL1JaTURFQk1qWTNOaVlpQmdjSE5qWVhGaFlIQmdjV0ZnY09BaWNtSmpjekZoWXpGalkzTmljbk53SUZab0FLQ21Xd2FnL3VEUDNDdzk0SUN1bFJXZ1FGZk95THVkNEU2Z0pjVm1xUURCWGNoeUFDcWxOTlJFeEZQZ0dZc2dJRHBvMjFaU09HV1dxZFZ3SUN1WnhIVEFOWlQ2QUJBYkFBQUFFQUN3QUFCSzRFalFBSkFFeXlBQW9MRVJJNUFMQUFSVml3QUM4YnNRQWRQbG13QUVWWXNBZ3ZHN0VJSFQ1WnNBQkZXTEFGTHh1eEJROCtXYkFBUlZpd0F5OGJzUU1QUGxteUJBTUFFUkk1c2drRkNCRVNPVEF4QVRNREl4TUJJeE16QXdQTDQ4dnFqLzFtNDh2cWp3U04rM01ETWZ6UEJJMzgwZ0FCQUFvQUFBUnRCSTBBREFCM3NnQU5EaEVTT1FDd0FFVllzQWd2RzdFSUhUNVpzQUJGV0xBRkx4dXhCUjArV2JBQVJWaXdBaThic1FJUFBsbXdBRVZZc0F3dkc3RU1EejVac2dZQ0JSRVNPYkFHTDdJL0JnRnhzbDhHQVhLeXp3WUJjYlN2QnI4R0FsMjBqd2FmQmdKeXNnRUJDaXRZSWRnYjlGbXlDZ0VHRVJJNU1ERUJJd01qRXpNRE13RWhBUUVoQWJadFV1M0s3VlJYQVlNQkp2NFFBVFArNlFIVi9pc0VqZjRnQWVEOXVmMjZBQUFCLzhFQUFBU1hCSTBBRVFBL3NnUVNFeEVTT1FDd0FFVllzQUF2RzdFQUhUNVpzQUJGV0xBQkx4dXhBUTgrV2JBQVJWaXdDUzhic1FrUFBsbXdBQkN5QXdFS0sxZ2gyQnYwV1RBeEFRTWpFeUVEQndJR0J5TTNOelkyTnpjVEJKZks3cW4rc1VZWlBPSzBSeGdrWjNzY0Qya0VqZnR6QThuK3RuMys3ZTBDekFNS3FiaFpBZm9BQVFCeS8rZ0VnZ1NPQUE4QVRySUJFQkVSRWprQXNBY3ZzQUJGV0xBUEx4dXhEeDArV2JBQVJWaXdDQzhic1FnUFBsbXlBUThJRVJJNXNnSVBDQkVTT2JBQ0w3QUlFTEVLQ2l0WTJCdmNXYklPRHdnUkVqbXdEaTh3TVFFWEFTRUJCZ1lqSnpjWE5qWTNBemNDRUFjQlhBRVAvZDFjc25SckVWSTZUaVA2OVFKS09BSjcvSFNqZGdYRUJnRTZLd044QVFBQkFBcityd1M0QkkwQUN3QkNzZ2tNRFJFU09RQ3dBeSt3QUVWWXNBY3ZHN0VISFQ1WnNBQkZXTEFLTHh1eENoMCtXYkFBUlZpd0JTOGJzUVVQUGxteUNBRUtLMWdoMkJ2MFdiQUEwREF4SlRNREl4TWhFek1ESVJNekEvdTljTmc3L0YvSzdhZ0I5S2p2dy8zc0FWRUVqZncyQThvQUFRQmRBQUFFWkFTTkFCSUFScklPRXhRUkVqa0FzQUJGV0xBSUx4dXhDQjArV2JBQVJWaXdFUzhic1JFZFBsbXdBRVZZc0FBdkc3RUFEejVac2c0SUFCRVNPYkFPTDdJRUFRb3JXQ0hZRy9SWk1ERWhJeE1HSnlZbU54TXpBd1lYRmhjV054TXpBNXJ1VW45LzBOTVZPTzQ2QmdZVG0yK1laTzBCcXljQ0F1REVBV0grbmpRcGdBTURKUUlnQUFFQUNnQUFCa01FalFBTEFFR3lCd3dORVJJNUFMQUFSVml3QXk4YnNRTWRQbG13QUVWWXNBRXZHN0VCRHo1WnNnUUJDaXRZSWRnYjlGbXdBeEN3QnRDd0JCQ3dDTkN3QmhDd0N0QXdNU0VoRXpNRElSTXpBeUVUTXdWNCtwTEs3YWdCVTZqdXFRRlVxTzRFamZ3MkE4cjhOZ1BLQUFBQkFBcityd1pZQkkwQUR3QkJzZ3NRRVJFU09RQ3dBeSt3QUVWWXNBY3ZHN0VISFQ1WnNBQkZXTEFFTHh1eEJBOCtXYklBQVFvcldDSFlHL1Jac0EzUXNBblFzQWNRc0FyUXNBN1FNREVsTXdNakV5RVRNd01oRXpNRElSTXpCWnU5Y05nNytyL0s3YWdCVTZqdXFRRlVxTy9EL2V3QlVRU04vRFlEeXZ3MkE4b0FBZ0JLLy9zRTR3U05BQXdBRlFCZXNnc1dGeEVTT2JBTEVMQVUwQUN3QUVWWXNBb3ZHN0VLSFQ1WnNBQkZXTEFITHh1eEJ3OCtXYklBQ2djUkVqbXdBQyt3Q2hDeUNBRUtLMWdoMkJ2MFdiQUhFTElOQVFvcldDSFlHL1Jac0FBUXNoTUJDaXRZSWRnYjlGa3dNUUVXRmdjR0JDY2xFeUUzSVFNVE5qWTNOaVluSndNRFhydktGaGorMWN6K09LaityQ01DUGthWFpYOENBbTFZMjBFQytBWEtvclBaQkFFRHljVCtiUDNKQW10WlRsd0NBZjZPLy84QUMvLzdCZUVFalFBbUJCRUFBQUFIQStRRUVnQUFBQUlBQy8vN0EvY0VqUUFLQUJNQVQ3SVJGQlVSRWptd0VSQ3dBTkFBc0FCRldMQUlMeHV4Q0IwK1diQUFSVml3Qnk4YnNRY1BQbG13Q0JDeEVRb3JXTmdiM0ZteUFBRUtLMWdoMkJ2MFdiQUhFTElMQVFvcldDSFlHL1JaTURFQkZoWUhCZ1FuSlJNekF4TTJOamMySmljbkF3Snl1OG9XR1A3VnkvNDR5K3BIbDJPQ0FnSnNXdHRCQXZnRnlhT3oyUVFCQkkzK2JQM0pBbXRaVFYwQ0FmNk9BQUVBRS8vcUJCNEVvUUFkQUlHeUN4NGZFUkk1QUxBQVJWaXdFaThic1JJZFBsbXdBRVZZc0Jvdkc3RWFEejVac2dBYUVoRVNPYklEQVFvcldDSFlHL1Jac2dnU0doRVNPWHl3Q0M4WXRHQUljQWdDWGJRd0NFQUlBbDJ5OEFnQlhiSUFDQUZ4dElBSWtBZ0NjYklGQVFvcldDSFlHL1Jac0JJUXNnc0JDaXRZSWRnYjlGbXlEeElhRVJJNU1ERVRGaFlYRmhNaE55RTJKaWNtQmdjSE5pUVhGaElQQWdJQUp5WW1KLzBGWld6dVZ2NkNJd0Z1RFdsdGNZd2E3aUFCSU5ESzZBZ0VCaUgrdytmRDZRZ0JoV3BuQXdjQk84U1BvQU1FYzJvQnZ1SUVBLzdyNHpjei92RCt3Z1lFMkxrQUFBSUFDdi9yQmlJRW9nQVdBQ01BbHJJQkpDVVJFam13QVJDd0g5QUFzQUJGV0xBT0x4dXhEaDArV2JBQVJWaXdDUzhic1FrZFBsbXdBRVZZc0FZdkc3RUdEejVac0FCRldMQUFMeHV4QUE4K1diSUtCZ2tSRWpsOHNBb3ZHTFJnQ25BS0FsMnk4QW9CWGJJQUNnRnh0REFLUUFvQ1hiU0FDcEFLQW5HeUJRRUtLMWdoMkJ2MFdiQU9FTElhQVFvcldDSFlHL1Jac0FBUXNpQUJDaXRZSWRnYjlGa3dNUVV1QWpjSEF5TVRNd016TmdBWEZoWVNCd2NHQWdRVE5DWW5KZ0lIQmhZWEZoSTNBN3FIejJjTHZsVHN5dXhWckVVQk5kS1V6bDBSQkJXZy92L1RhMm1keEFJRGEyeWJ2d2dSQklQa2lRSCtIZ1NOL2hqMEFRa0ZCSlArL1o0a3N2N3dsQUxTaUpBRUJ2N3Y5NGFiQkFZQkRPNEFBQUwvMGdBQUJGWUVqZ0FOQUJZQVliSVJGeGdSRWptd0VSQ3dETkFBc0FCRldMQUhMeHV4QngwK1diQUFSVml3QUM4YnNRQVBQbG13QUVWWXNBa3ZHN0VKRHo1WnNoSUhBQkVTT2JBU0w3SUxBUW9yV0NIWUcvUlpzZ0VMRWhFU09iQUhFTElUQVFvcldDSFlHL1JaTURFakFTWW1OellrTXdVREl4TWpBUk1HRmhjWEV5Y2lCaTRCY2xKU0Jna0JCODhCMGNydVR1TCsxTEVMVlZIak9zbGZnd0lQSzVGZXA3NEIrM01CdlA1RUF4dEtUd0lCQVVvQld3QUFBZi8xQUFBRVJBU05BQTBBVUxJQkRnOFJFamtBc0FCRldMQUlMeHV4Q0IwK1diQUFSVml3QWk4YnNRSVBQbG15QndJSUVSSTVzQWN2c2dRSENpdFlJZGdiOUZtd0FkQ3dDQkN5Q3dFS0sxZ2gyQnYwV2JBSEVMQU0wREF4QVNNREl4TWpOek1USVFjaEF6TUNnTTlWN1ZUT0hzMVpBd3NqL2VNMjBBSG0vaG9CNXFvQi9jVCt4d0FBQWYrcC9xOEdPd1NOQUJrQXFySUlHaHNSRWprQXNBTXZzQUJGV0xBUkx4dXhFUjArV2JBQVJWaXdCUzhic1FVUFBsbXdBRVZZc0Frdkc3RUpEejVac0FCRldMQU5MeHV4RFE4K1diSVhDUkVSRWptd0Z5K3lQeGNCY2JKZkZ3RnlzczhYQVhHMHJ4ZS9Gd0pkdEk4WG54Y0NjcklIQVFvcldDSFlHL1Jac2dBSEZ4RVNPYkFGRUxJQkFRb3JXQ0hZRy9SWnNBY1FzQXZRc2c4WEJ4RVNPYkFYRUxBUzBMQVJFTEFVMExBVUw3QVkwTEFZTHpBeEFSTXpBeU1USXdNakF5TVRJd0VoQVFNaEV6TVRNd016QVNFRW5KdkFYY3M3bjZWaFV1MVNWZjY2L3N3Qnc4c0JDWnhYVSs1VVNRRkVBU1FDVVA1eS9lMEJVUUhWL2lzQjFmNHJBbUVDTFA0Z0FlRCtJQUhnQUFBQkFBcityd1J0QkkwQUVBQ0lzZ0FSRWhFU09RQ3dCQyt3QUVWWXNBd3ZHN0VNSFQ1WnNBQkZXTEFQTHh1eER4MCtXYkFBUlZpd0NTOGJzUWtQUGxtd0FFVllzQVl2RzdFR0R6NVpzZzBKREJFU09iQU5MN0kvRFFGeHNsOE5BWEt5encwQmNiU3ZEYjhOQWwyMGp3MmZEUUp5c2dnQkNpdFlJZGdiOUZteUFBZ05FUkk1c0FZUXNnRUJDaXRZSWRnYjlGa3dNUUVUTXdNakV5TURJd01qRXpNRE13RWhBbjNOeTEzTE80L2piVkx0eXUxVVZ3R0RBU1lDUnY1OC9lMEJVUUhWL2lzRWpmNGdBZUFBQUFFQUNnQUFCU1FFalFBVUFJQ3lCUlVXRVJJNUFMQUFSVml3RkM4YnNSUWRQbG13QUVWWXNBWXZHN0VHSFQ1WnNBQkZXTEFSTHh1eEVROCtXYkFBUlZpd0NpOGJzUW9QUGxteUFCRVVFUkk1c0FBdnNqOEFBWEd5WHdBQmNyTFBBQUZ4dEs4QXZ3QUNYYlNQQUo4QUFuS3dCTkN3QUJDeUVBRUtLMWdoMkJ2MFdiQU0wTElJREFBUkVqa3dNUUV6TnpNSE53RWhBUUVoQXljSEl6Y2pBeU1UTXdGcFJDdWdMaklCZ3dFbC9oQUJOUDdxNGo4cG9DbEVWdTNLNWdLcjRPQUJBZUg5dVAyN0FkVUJ6TTMrS1FTTkFBRUFZZ0FBQlhJRWpRQU9BSVd5Q1E4UUVSSTVBTEFBUlZpd0J5OGJzUWNkUGxtd0FFVllzQW92RzdFS0hUNVpzQUJGV0xBQ0x4dXhBZzgrV2JBQVJWaXdEaThic1E0UFBsbXlDQUlIRVJJNXNBZ3ZzajhJQVhHeVh3Z0JjckxQQ0FGeHRLOEl2d2dDWGJTUENKOElBbkt5QVFFS0sxZ2gyQnYwV2JBSEVMSUVBUW9yV0NIWUcvUlpzZ3dCQ0JFU09UQXhBU01ESXhNaE55RURNd0VGQVFFaEFyeHRVdTJvL3FvakFrSlVWd0dDQVNiK0VRRXovdWtCMWY0ckE4ckQvaUFCNEFIOXVmMjdBQUFDQUVELzZnVjVCS2tBSkFBdkFJS3lBekF4RVJJNXNBTVFzQy9RQUxBQVJWaXdDeThic1FzZFBsbXdBRVZZc0Jzdkc3RWJIVDVac0FCRldMQUVMeHV4QkE4K1diQUEwTElDQkJzUkVqbXdBaSt3Q3hDeURBRUtLMWdoMkJ2MFdiQUVFTElUQVFvcldDSFlHL1Jac0FBUXNpUUJDaXRZSWRnYjlGbXdBaEN3SjlDd0d4Q3lMQUVLSzFnaDJCdjBXVEF4QlNZbkJpY2tBQk0zRWdBM0J3WUdCd2NHRmhjM0ppWTNOellTRnhZV0Z4WUhCZ2NXTXdFV0Z6WTNOelluSmdNR0JSemJuYUtZL3ZYKzRSc0RIQUV1NXhaNG14b0dGWjZrUDBndkRBVWUrN21kc1FrRUVTUEhaMGo5K2dOL3RDQU5ESWU2SndrU0J6TStBZ0lCUndFVEhnRUlBVFVFelFLenJpdkMwQUlEYWVGK0p2RUJEd1VFeWExUGVQbXhCd0ZsczF4KzhvN1FCUWIrekdFQS8vOEFiUUFBQklBRWpRQW1BL2NBQUFBSEE5VUFCZjdWQUFIL3BQNnZCSUFFalFBUEFGcXlDaEFSRVJJNUFMQUhMN0FBUlZpd0FTOGJzUUVkUGxtd0FFVllzQTh2RzdFUEhUNVpzQUJGV0xBTEx4dXhDdzgrV2JBQVJWaXdDUzhic1FrUFBsbXlBQThMRVJJNXNnUUJDaXRZSWRnYjlGbXlDZ3NQRVJJNU1ERUJBU0VCRXpNREl4TWpBd0VoQVFFaEFpc0JNUUVrL2lXNHhsekxPNGF3L3NmKzNBSG0vdndCQkFMN0FaTDlzdjZEL2UwQlVRR1kvbWdDVndJMkFBQUJBR0wrcndXNkJJMEFEd0Jjc2drUUVSRVNPUUN3QWkrd0FFVllzQWd2RzdFSUhUNVpzQUJGV0xBT0x4dXhEaDArV2JBQVJWaXdCQzhic1FRUFBsbXlBQUVLSzFnaDJCdjBXYkFJRUxJR0FRb3JXQ0hZRy9SWnNBclFzQXZRc0FBUXNBelFzQTNRTURFbE13TWpFeUVUSVRjaEJ5RURJUk16QlB1L2NOazcvR0NvL3E0akE0Y2kvcmFHQWZXbzdjUDk3QUZSQThuRXhQejZBOG9BQUFFQVhRQUFCR1FFalFBWUFFK3lCUmthRVJJNUFMQUFSVml3Q3k4YnNRc2RQbG13QUVWWXNCY3ZHN0VYSFQ1WnNBQkZXTEFBTHh1eEFBOCtXYklSQ3dBUkVqbXdFUyt5QndFS0sxZ2gyQnYwV2JBRTBMQVJFTEFVMERBeElTTVRCZ2NISXpjbUpqY1RNd01HRnhZWE56TUhOamNUTXdPYTdsRkdYQ3FmS3Erd0ZEbnVPZ2NDQTNVeG55OUVYV1R0QWFzVkM4M0tFdHkyQVdIK3BDc29lQnYwOHdvWEFpQUFBQUVBQ2dBQUJCRUVqUUFTQUVheURoTVVFUkk1QUxBQVJWaXdBQzhic1FBZFBsbXdBRVZZc0Fndkc3RUlEejVac0FCRldMQVJMeHV4RVE4K1diSUVBQWdSRWptd0JDK3lEZ0VLSzFnaDJCdjBXVEF4RXpNRE5oY1dGZ2NESXhNMkp5WW5KZ2NESTlUdFVZUjQwTlVWT2UwNkJnWVRtMnliWk8wRWpmNVZKd0lDNGNQK253RmlOQ2wvQmdNbS9kOEFBQUlBTi8veEJhVUVwd0FiQUNRQVpMSU9KU1lSRWptd0RoQ3dIZEFBc0FCRldMQVBMeHV4RHgwK1diQUFSVml3QUM4YnNRQVBQbG15SUE4QUVSSTVzQ0F2c2hNQkNpdFlJZGdiOUZtd0JOQ3dJQkN3RE5Dd0FCQ3lGd0VLSzFnaDJCdjBXYkFQRUxJY0FRb3JXQ0hZRy9SWk1ERUZMZ0kzSmlZM0Z3WVhGaGMyQUJjV0VnY0hJUVlXRnhZM0Z3WURKZ1lISVRZbkppWURXSnJ5ZFJDWG1RdThBd01IY3owQlF0bm03eDBYL040U2twR0JxUzkzZlgyM0xRSTZFUXNQZEE4QmcrZVJFdHUxQVNja2VCdm9BUThFQlA3WTlKbU9uZ0lEUDcxS0ErNERuNWRUTjA1WUFBQUNBRFQvN0FSNkJLSUFGUUFmQUY2eUVTQWhFUkk1c0JFUXNCZlFBTEFBUlZpd0FDOGJzUUFkUGxtd0FFVllzQWd2RzdFSUR6NVpzZzRBQ0JFU09iQU9MN0FBRUxJUkFRb3JXQ0hZRy9SWnNBZ1FzaFlCQ2l0WUlkZ2I5Rm13RGhDeUdRRUtLMWdoMkJ2MFdUQXhBUjRDQndjR0FDY3VBamMzSVRZbUp5WUhKellURmpZM0lRY0dGeFlXQW9PZjYyMFJEU0QrcStlWjExd1RHQU1nRXBLUGdLc3dlbng4dHkzOXh3WUxDaEIxQktJRGl2aWNaZnYreXdRRGlmV2ZtWkdiQWdNL3ZFdjhFZ09mbHhrOU0xQlhBQUFCQUF6LzV3UUZCSTBBR2dCcXNoTWJIQkVTT1FDd0FFVllzQUl2RzdFQ0hUNVpzQUJGV0xBTUx4dXhEQTgrV2JBQ0VMSUFBUW9yV0NIWUcvUlpzZ1FBQWhFU09iSWFEQUlSRWptd0dpK3lHQUVLSzFnaDJCdjBXYklGR0JvUkVqbXdEQkN5RWdFS0sxZ2gyQnYwV2JJUUVoZ1JFamt3TVFFaE55RUhBUllXQnc0Q0p5WW1Oek1XRnhZMk56WW1KeWMzQXJIOStDSURPaHYrbG9tZUNBZUc2SWk4MmdUcUJMVnNqQW9LWDJDUklnUEp4S1greFJlNWdYV25XUU1Gdkp5VUJRSmlWRTFYQXdIRkFBQURBRHIvN0FSakJLTUFFQUFYQUI0QWlMSVpIeUFSRWptd0dSQ3dFTkN3R1JDd0V0QUFzQUJGV0xBSUx4dXhDQjArV2JBQVJWaXdBQzhic1FBUFBsbXdDQkN5RVFFS0sxZ2gyQnYwV2JJVkNBQVJFamw4c0JVdkdMSXdGUUZkc2tNVkFWMjBZQlZ3RlFKZHN2QVZBVjJ5QUJVQmNiU0FGWkFWQW5Hd0FCQ3lHQUVLSzFnaDJCdjBXYkFWRUxJYkFRb3JXQ0hZRy9SWk1ERUZKaVlDTnpjU0FCY1dGaElIQndZQ0JCRW1CZ2NoTmlZREZqWTNJUVlXQWZ1UzBWNFJBeDhCU2UrUnoxNFJCQldnL3Y5eXJUTUNKUXB2LzNPck12M2NDbkFRQXBVQkJKNGNBUkVCVFFZQ2t2NzZuaVN5L3ZHVUErMEZtS0NNb3Z6ZUJabWRocVlBQVFBRUFBQUVDZ1NpQUNZQXBySWxKeWdSRWprQXNBQkZXTEFlTHh1eEhoMCtXYkFBUlZpd0RDOGJzUXdQUGxteUJoNE1FUkk1c0FZdnNnOEdBVjJ3QWRDd0FTK3l6d0VCWFVBSkh3RXZBVDhCVHdFRVhiSUFBUUZkc2dJQ0NpdFlJZGdiOUZtd0JoQ3lCd0lLSzFnaDJCdjBXYkFNRUxJUEFRb3JXQ0hZRy9SWnNBclFzQWNRc0JQUXNBWVFzQlRRc0FJUXNCalFzQUVRc0JuUXNCNFFzaVFCQ2l0WUlkZ2I5Rm15SVFFa0VSSTVNREVCSVFjbEJ3Y2xCeVVHQnlVSElUY1hOamMzQnpjWE56Y0hOek0zTmpZWEZoWUhKelluSmdNQnZnR0NHdjZURHdnQmRoditpU00yQW9ray9IOGRDRFFmRTVnY2xnWVFvQnVOQXh2d3ZhNjlDTzBLa0tRb0FycVNBa01aQXBNQlJEb0R3OElCRmtBcEE1TUNFVXNDa2hqWCtRUUUwYk1Cd0FNRC92OEFBQUVBSHYvd0Erc0VvZ0FpQUp1eUhTTWtFUkk1QUxBVkw3QUFSVml3Q0M4YnNRZ1BQbG15SWhVSUVSSTVzQ0l2c2c4aUFWMnl6eUlCWGJRUUlpQWlBbDJ5QUFJS0sxZ2gyQnYwV2JBSUVMSURBUW9yV0NIWUcvUlpzQUFRc0F6UXNDSVFzQTNRc0NJUXNCM1FzQjB2c3M4ZEFWMjJIeDB2SFQ4ZEExMnlBQjBCWGJJZ0Fnb3JXQ0hZRy9SWnNBL1FzQjBRc0JMUXNCSXZzQlVRc2hvQkNpdFlJZGdiOUZrd01RRWhCaGNXTnhjR0p5WW1Od2MzTXpjak56TTJKQmNXRndjbUp5SUdCeVVISVFjaEF4SCtsUVRDUllNTWMyaSs2UVNjR28wUmpocUpRUUVWeDE2RkpWcHJaNDh3QVhrYS9va1FBWGdCaE1zRUF4M0JIZ0lDM0xVQmtseVR5ZFFDQWg3QkhnSm9jd0dUWEFBRUFBb0FBQWUrQktNQUF3QVJBQjhBS1FDcXNpQXFLeEVTT2JBZ0VMQUIwTEFnRUxBTjBMQWdFTEFUMEFDd0FFVllzQ1V2RzdFbEhUNVpzQUJGV0xBb0x4dXhLQjArV2JBQVJWaXdCQzhic1FRZFBsbXdBRVZZc0NBdkc3RWdEejVac0FCRldMQWpMeHV4SXc4K1diQUVFTEFMMExBTEw3QUQwTEFETDdZQUF4QURJQU1EWGJJQUFnb3JXQ0hZRy9SWnNBc1FzaFVDQ2l0WUlkZ2I5Rm13QkJDeUhBSUtLMWdoMkJ2MFdiSWlKU0FSRWpteUp5VWdFUkk1TURFbElUY2hBeFlXQndjR0JpY21KamMzTmpZREJoWVhGalkzTnpZbUp5WUdCd0VqQVFNakV6TUJFek1IQ3YzVUd3SXJtNCttQ2dZTzBKbVFwZ29GRE5VN0IwWkhTMnNPQ2dkR1JreHNEdjRmNVA2SmpPM0s1UUYzak96SWxRTkNCTHVSUXB6Q0JBUytqVUNkeFA1ZFdXQUNCR2haVGxsZ0FnSmtXdnl4QXlYODJ3U04vTm9ESmdBQy85a0FBQVN5QkkwQUZnQWZBSk95QUNBaEVSSTVzQi9RQUxBQVJWaXdEQzhic1F3ZFBsbXdBRVZZc0FJdkc3RUNEejVac2dZQ0RCRVNPYkFHTDdRZkJpOEdBbkd5QlFjS0sxZ2gyQnYwV2JBQjBMQUdFTEFLMExBS0w3UWZDaThLQW5HMkR3b2ZDaThLQTEyMmp3cWZDcThLQTEyeUNRY0tLMWdoMkJ2MFdiQVUwTEFHRUxBVjBMQUtFTEFYMExBWEw3QU1FTElmQVFvcldDSFlHL1JaTURFbElRY2pOeU0zTXpjak56TVRCUllXQndZRUl5Y0hJUU1YTmpZM05pWW5Kd0tUL3YwYjdSdktJTWtPeXlISll3SE91ZGtMQ3Y3dzB2NE9BUVRYNUdLTERReFhWUDJabVptMlRiY0NPZ0VGekorcjFnRk5BUVFCQW1wWlQxOEVBUUFDQUJELzZBUWpCZ0FBRWdBZkFHU3lCQ0FoRVJJNXNBUVFzQnpRQUxBSkw3QUFSVml3RFM4YnNRMGJQbG13QUVWWXNBY3ZHN0VIRHo1WnNBQkZXTEFFTHh1eEJBOCtXYklHRFFjUkVqbXlDdzBIRVJJNXNBMFFzaFlCQ2l0WUlkZ2I5Rm13QkJDeUd3RUtLMWdoMkJ2MFdUQXhBUVlDQmljbUp3Y2pBVE1ETmhjV0ZoY1dCeWNuSmljbUJ3TVdGeFkyTnpZRUdoT1MxbiszWFMzUEFRcnViSG1tb2JzSkF3YnFCQnllaldWUk00dDhxUmdJQWhpZy92T0RBd1NNZXdZQS9kR0JCQVRmdjBFK2N5ZThCUVNKL2pXREJBUENxRlFBQUFFQU4vL29CQU1FVkFBYkFFdXlBQndkRVJJNUFMQUFSVml3RHk4YnNROGJQbG13QUVWWXNBZ3ZHN0VJRHo1WnNnQUJDaXRZSWRnYjlGbXlCQThJRVJJNXNoTUlEeEVTT2JBUEVMSVdBUW9yV0NIWUcvUlpNREVsRmpZM053NENKeVlDTnpjU0FCY1dGaFVqSmlZbkpnWUhCaFlCOFZlREZ0OE9odFJ3MDk0WUFoMEJOdCt3ME4wQ1hsS0tyQWdHWXEwQ1oxTUJiSzlqQXdVQk1PZ1VBUUVCTndZRTRyTmljUVFHOHVLQ2pRQUFBZ0E3LytjRW13WUFBQklBSHdCaHNnUWdJUkVTT2JBRUVMQVowQUN3Qnkrd0FFVllzQVF2RzdFRUd6NVpzQUJGV0xBSkx4dXhDUTgrV2JBQVJWaXdEUzhic1EwUFBsbXlCZ1FKRVJJNXNnc0VDUkVTT2JJWUFRb3JXQ0hZRy9SWnNBUVFzaDBCQ2l0WUlkZ2I5Rmt3TVJNMkVqWVhGaGNUTXdFak53WW5KaVluSmpjekJoY1dGaGNXTnhNbUp5WUdSQk9XMW9HalgyanQvdmJNREgrdW03NE1CQWJ1QmdRRllsZUZaMVExZzMyc0FoK2pBUXlFQXdSMkFpdjZBSFdPQkFUbHV6ODhOVHRuZmdRRWhRSGFlQVFEd3YvL0FLUUFBQU10QmJVQUJnQVZ0UUFBQWdBMC8rZ0VQd1JSQUJNQUl3QkRzaGdrSlJFU09iQVlFTEFFMEFDd0FFVllzQVV2RzdFRkd6NVpzQUJGV0xBT0x4dXhEZzgrV2JJWEFRb3JXQ0hZRy9SWnNBVVFzaDhCQ2l0WUlkZ2I5Rmt3TVJNMkVqYzJGeDRDQndjR0FnWW5KaVluSmpjWEZoWVhGalkzTmljbUppY21CZ2NHUlJhN2ttVjVqTXhoRUFJVW9QdVRqYzR2TFEvckIybGFlN01jQmdRSmFsbCtzaGNJQWlDd0FSTkJMUU1Da1B5V0ZwNysvNDBFQXBKL2U1RjJhWHdEQmNTOU9ENXJmd01EeTZWUkFBQUMvOGYrWUFRaEJGSUFFZ0FlQUdDeUJCOGdFUkk1c0FRUXNCM1FBTEFBUlZpd0RTOGJzUTBiUGxtd0FFVllzQW92RzdFS0d6NVpzQUJGV0xBSEx4dXhCeEUrV2JBQVJWaXdCQzhic1FRUFBsbXdEUkN5RndFS0sxZ2gyQnYwV2JBRUVMSWNBUW9yV0NIWUcvUlpNREVCQmdJR0p5WW5BeU1CTndjMkZ4WVdGeFlISnpjMEppY21Cd01XRnhZMkJCZ1RrZFovcUdGaDdnRUUwZzU4cjU2OUNRTUc3UVJtWDRSalZ6S0hlckVDR0o3Kzg0VURCSFA5L2dYYUFYS0pCQUxrdlVBK0FVdCtqUVFFZlA0VmRBUUR4Z0FDQUR2K1lBUkxCRkVBRWdBZUFHdXlEQjhnRVJJNXNBd1FzQmpRQUxBQVJWaXdCeThic1FjYlBsbXdBRVZZc0FRdkc3RUVHejVac0FCRldMQUpMeHV4Q1JFK1diQUFSVml3RFM4YnNRMFBQbG15QmdjTkVSSTVzZ3NIRFJFU09iSVhBUW9yV0NIWUcvUlpzQVFRc2h3QkNpdFlJZGdiOUZrd01STTJFallYRmhjM013RWpFd1luSmlZbkpqY1hCeFFXRnhZM0V5WW5KZ1pFRXBMWmhhOWNLdEQrL08xamVaMmN3QXdFQnU0RVpGNkRaRmszZjMyeEFoK2VBUTZHQXdSL2Ivb21BZjExQkFMaHZ6ODlBVXA3bEFJRWVRSDNid01EeHdBQUFnQTcvK3NFQ0FSVUFCVUFIZ0NBc2dBZklCRVNPYkFXMEFDd0FFVllzQWd2RzdFSUd6NVpzQUJGV0xBQUx4dXhBQTgrV2JJWkNBQVJFam13R1MrMHZ4blBHUUpkdEY4WmJ4a0NjYlFmR1M4WkFuR3lqeGtCWGJUdkdmOFpBbkd5REFjS0sxZ2gyQnYwV2JBQUVMSVFBUW9yV0NIWUcvUlpzaElBQ0JFU09iQUlFTElXQVFvcldDSFlHL1JaTURFRkxnSTNOellBRnhZU0J3Y2hCaFlYRmpjWEJnWURKZ01GTnpZbkppWUNEWkRZYWc0Q0dRRTUxOGZOR3hQOVdBcUdmWW1TTFQ2OUVjQmlBY0lHQ0FVSVdCTUJpUFNYRlA0QlFRWUUvdXJpZ24rZkFnUlJxRE0zQTZFRy92QUJIUzhyUWs4QUFBSUFNUDVRQkRvRVVRQWJBQ2tBZkxJRUtpc1JFam13QkJDd0p0QUFzQUJGV0xBSEx4dXhCeHMrV2JBQVJWaXdCQzhic1FRYlBsbXdBRVZZc0F3dkc3RU1FVDVac0FCRldMQVdMeHV4Rmc4K1diSUdCeFlSRWptd0RCQ3lFUUVLSzFnaDJCdjBXYklVQnhZUkVqbXdGaEN5SVFFS0sxZ2gyQnYwV2JBRUVMSW1BUW9yV0NIWUcvUlpNREVUTmhJMkZ4WVhOek1EQmdBbkppYzNGaGNXRXpjR0p5WW1KeVkzTXdZWEZCWVhGamNUSmljbUJnZEdGSWJPZ3JWY0s4NnRJdjdZNGFDU1FteDcrRXdSZnArYXNBY0RCdTBHQVZoV2kySlNNSWg1bnhZQ0g2VUJCb2NDQklSei9BenQvdmNFQkV5eFB3SUhBUkJGZWdRRTRNRStPek03YUg4RUJJa0IxSG9FQThHckFBRUFiLy9uQlVZRnlBQWRBRTZ5REI0ZkVSSTVBTEFBUlZpd0RTOGJzUTBmUGxtd0FFVllzQU12RzdFRER6NVpzZ0FOQXhFU09iSVJBdzBSRWptd0RSQ3lFd0VLSzFnaDJCdjBXYkFERUxJYUFRb3JXQ0hZRy9SWk1ERUJCZ0FuTGdJbkpqYzJFaVFYRmdBWEl3SW5KZ0FEQndZV0Z4WTJOd1RlSS82eDlaTGVoUXNJR1NQVEFTaXQzd0VLQ3ZVTi9jai9BQklDQTVPSWk3a21BZHpqL3U0RUE0VDdubk9TelFGSHBBTUUvdlRuQVNRSEJ2NlgvdVl2dmRnRUJweVBBQUVBY2Yvb0JVb0Z5QUFrQUZ5eUZTVW1FUkk1QUxBQVJWaXdEaThic1E0ZlBsbXdBRVZZc0FNdkc3RUREejVac2hFT0F4RVNPYkFPRUxJVUFRb3JXQ0hZRy9SWnNBTVFzaDRCQ2l0WUlkZ2I5Rm15SXc0REVSSTVzQ012c2lJQkNpdFlJZGdiOUZrd01TVUdCQ2N1QWljbU56YzJFaVFYRmdRWEp3SW5KZ1lHQndZWEZCWVdGeFkzRXlFM0lRVEFTLzdhdHBqc2pnNElDd1FiendFMXR0NEJCUkx3Ri9WMHc0a1hEQUZJam1DNmNEWCs1U0lDRUx4amNRTURoUHFlVmw0bjB3RmJ0UU1FOU4wQkFRQUlBMy83bTE0OWRidGxBUVZZQVJ2QUFBSUFMZ0FBQlIwRnNBQUxBQllBUTdJUEZ4Z1JFam13RHhDd0N0QUFzQUJGV0xBQ0x4dXhBaDgrV2JBQVJWaXdBQzhic1FBUFBsbXlEZ0VLSzFnaDJCdjBXYkFDRUxJV0FRb3JXQ0hZRy9SWk1ERXpFd1V5QkJJSEJ3WUNCQWNUQXhjeUFEYzJKeVltSnk3OEFaaTlBUnVERlFVWjEvNm14Z3EybXRNQktTb2NEeFN4a1FXd0FiZit2Y1lzeHY2OXVBSUU1UHZtQVFFQjJKQjNrNk1FQUFBQ0FITC82QVZ5QmNnQUV3QW5BRWF5Q2lncEVSSTVzQW9Rc0J2UUFMQUFSVml3Q3k4YnNRc2ZQbG13QUVWWXNBQXZHN0VBRHo1WnNBc1FzaG9CQ2l0WUlkZ2I5Rm13QUJDeUpBRUtLMWdoMkJ2MFdUQXhCUzRDSnlZM056WVNKQmNlQWhjV0FnSUVBVFkzTkNZbUp5WUFCd2NHRlJRV0ZoY1dBRGNDZjQvaGlBMElDZ3dpMVFFenJaRGdpQTBPWk5iKzVnRk9CZ0ZCZzF5MS92VWlBZ1pDZzF5d0FRSW5GUU9IL3FCV1YxTENBVWV0QXdPRy9KNnUvcG4rNm84RERqUTZicjFrQXdYK3kvWVBORHB3d0djREJ3RWg1UUFBQWdCeS93TUZiQVhJQUJrQUt3QkdzaUVzTFJFU09iQWhFTEFEMEFDd0FFVllzQkF2RzdFUUh6NVpzQUJGV0xBRkx4dXhCUTgrV2JBUUVMSWdBUW9yV0NIWUcvUlpzQVVRc2ljQkNpdFlJZGdiOUZrd01TVVhCeWNHSXk0Q0p5WTNOellTSkJjV0ZoSVhGZ2NIQmdJRE5qYzBKaVluSmdZQ0ZSUVdGeFkyRWpjRDJNYXU5VVk0a3QySURRY0tDU0RWQVRTeGsrR0hEQVlLQ0IvSUNBY0JQNE5laWR1R2w0cHp4bzRXVThhSzlBc0RoditoVjFjK3hnRlFzUU1EaVA4QW5WaFhOOHIreFFJL05UcHl2R1VEQks3K3dyaTgzUVFGZlFFQ21nQUFBUUNyQUFBRE5RU01BQVlBTWdDd0FFVllzQVV2RzdFRkhUNVpzQUJGV0xBQUx4dXhBQTgrV2JJRUFBVVJFam13QkMreUF3RUtLMWdoMkJ2MFdUQXhJU01UQlRjbE13Sng3WmYra0NZQ1FDUURaSHJYeXdBQkFCOEFBQVFLQktBQUdRQlZzZ29hR3hFU09RQ3dBRVZZc0JFdkc3RVJIVDVac0FCRldMQUFMeHV4QUE4K1diSURFUUFSRWptd0VSQ3lDUUVLSzFnaDJCdjBXYklORVFBUkVqbXlGd0FSRVJJNXNBQVFzaGtCQ2l0WUlkZ2I5Rmt3TVNFaE53RTNOamMySmljbUJnY0hQZ0lYRmhZSEJnY0hBUVVEcGZ4NkhnSWJQVzBPQ1ZOT1pJb1E2d21JNG9LMjBBb010MDMrcHdJd3FRR2tNMTlsUmxRQ0FucGlBbmU5YUFFRnNwV25uVUQrOVFJQUFBRUFDZ0FBQkJVRnhBQUhBREt5QXdnSkVSSTVBTEFBUlZpd0JpOGJzUVlkUGxtd0FFVllzQVV2RzdFRkR6NVpzQVlRc2dJQkNpdFlJZGdiOUZrd01RRXpBeUVESXhNaEF5ZnVXZjNqcU8zS0FoMEZ4UDRGL0RjRWpRQUFBZjkvL3FBRUZRU05BQmdBV2JJRkdSb1JFamtBc0F3dnNBQkZXTEFDTHh1eEFoMCtXYklBQVFvcldDSFlHL1Jac2dRQUFoRVNPYklGREFJUkVqbXdCUyt3REJDeUVRRUtLMWdoMkJ2MFdiQUZFTElXQXdvcldDSFlHL1Jac2hnV0JSRVNPVEF4QVNFM0lRY0JGaFlIQmdZRUp5WW5OeFlYRmpZM0VpVW5Od0xBL2RRakExNGIvbVNUcHcwT3JQN2NxckxTU28ram9la1RJLzdoWlJJRHljU2Evb1llOUtHaStZc0RBMmEwV1FJQ3dKY0JDaFFDaGdBQUF2L1Ivc1FFSXdTTUFBb0FEZ0JTQUxBQVJWaXdDUzhic1FrZFBsbXdBRVZZc0FJdkc3RUNEejVac0FCRldMQUdMeHV4Qmc4K1diSUFBUW9yV0NIWUcvUlpzQVlRc0FYUXNBVXZzZ2dHQUJFU09iQUFFTEFNMExJTkNRSVJFamt3TVNVekJ5TURJeE1oTndFekFTRVRCd055c1NLd04rMDMvVzBWQXpuOC9OY0JsSGNld3NQK3hRRTdvQVB0L0RZQ2d5d0EvLzhBaWdLSUF2OEZ2UU1IQTlBQWN3S1lBQk1Bc0FCRldMQUhMeHV4Qng4K1diQVIwREF4QVAvL0FHUUNtQUx0QmE0REJ3UE1BSE1DbUFBVEFMQUFSVml3Q1M4YnNRa2ZQbG13RGRBd01RRC8vd0I5QW9vREJBV3RBd2NEeXdCekFwZ0FFQUN3QUVWWXNBRXZHN0VCSHo1Wk1ESC8vd0NKQW9vQzVnVzhBd2NEeWdCekFwZ0FFd0N3QUVWWXNCUXZHN0VVSHo1WnNCWFFNREVBLy84QWxnS1lBeTRGclFNSEE4a0Fjd0tZQUJBQXNBQkZXTEFGTHh1eEJSOCtXVEF4Ly84QWV3S0tBdk1GdXdNSEE4Z0Fjd0tZQUJrQXNBQkZXTEFTTHh1eEVoOCtXYkFZMExBU0VMQWswREF4QVAvL0FLWUNqUUwxQmJzREJ3UEhBSE1DbUFBVEFMQUFSVml3Q0M4YnNRZ2ZQbG13SE5Bd01RQUFBZi9VL3AwRVRnU01BQndBWGJJSEhSNFJFamtBc0E4dnNBQkZXTEFCTHh1eEFSMCtXYklEQVFvcldDSFlHL1Jac2djQkR4RVNPYkFITDdJYUFRb3JXQ0hZRy9SWnNnVWFCeEVTT2JBUEVMSVVBUW9yV0NIWUcvUlpzaElVR2hFU09iSWNHaFFSRWprd01STVRJUWNoQXpZWE1oWVdCd1lHQkNjbUp6Y1dGeFkyTnpZbUp5WUhXZUVERkNYOXIzRmpnSHF2VUEwUG52NzNwTSs1V25leWtjd1REbWhwbEVnQmRnTVcwdjZvTmdKNjM0bVg4NDBDQkhXdlpBSUN2cFovbndNRWNnQUFBUUFuL3NRRVZBU01BQVlBSlFDd0FTK3dBRVZZc0FVdkc3RUZIVDVac2dNQkNpdFlJZGdiOUZteUFBTUZFUkk1TURFQkFTTUJJVGNoQkRyODV2a0REUDFOSXdPeEEvbjZ5d1VGd3dBQUFnQTYvL0lHb1FTZkFCZ0FKQUNSc2dFbEpoRVNPYkFCRUxBYjBBQ3dBRVZZc0F3dkc3RU1IVDVac0FCRldMQVBMeHV4RHgwK1diQUFSVml3QWk4YnNRSVBQbG13QUVWWXNBQXZHN0VBRHo1WnNBOFFzaEVCQ2l0WUlkZ2I5Rm15RkFBUEVSSTVzQlF2c2hVQkNpdFlJZGdiOUZtd0FCQ3lHQUVLSzFnaDJCdjBXYkFDRUxJWkFRb3JXQ0hZRy9SWnNBd1FzaHdCQ2l0WUlkZ2I5Rmt3TVNFaEJTTW1KZ0kzTnpZU05oY3lGak1oQnlFRElRY2hBeUVGTnhNbkpnWUhCaGNXRmhjRjJmMTcvdkpPa2RCZEVRWVhvditkV2NSZEFvRWovY293QWVnai9obzJBanY4YTJXV3hJSzJJUllGQldwZERnS1VBUU9kTnFrQkNKQUJFY1QrOHNQK3lnd0VBeFlNQXJTcGNHTndoQVFBQWdCSC9yQUVSZ1NqQUJrQUtBQlJzaU1wS2hFU09iQWpFTEFFMEFDd0ZTK3dBRVZZc0F3dkc3RU1IVDVac0JVUXNnQUJDaXRZSWRnYjlGbXlCUlVNRVJJNXNBVXZzaG9CQ2l0WUlkZ2I5Rm13REJDeUlnRUtLMWdoMkJ2MFdUQXhCUlkyTndZbkpnSTNQZ0lYRmhZU0J3Y0dBZ1FuSmljM0ZnRVdOemMySnlZbUp5WUdCaGNXRmdGUWtkcFFncG04elJRT2xPaUxrOHRZRXgwa3hmN2tyWXlSUVhJQklxRnhIQWNDQTJSYVc0NUhDZ2xlaXdPNTBsMEVBZ0VWMTVQNGhnSUVrZjcrb3NMeC9xYXJBd0k5dEM4QjZRUjdyamc4YUhvREEzaldaMXh0QUFJQVR2L21CSW9FcFFBTUFCMEFScklTSGg4UkVqbXdFaEN3QU5BQXNBQkZXTEFHTHh1eEJoMCtXYkFBUlZpd0FDOGJzUUFQUGxtd0JoQ3lFUUVLSzFnaDJCdjBXYkFBRUxJYUFRb3JXQ0hZRy9SWk1ERUZKZ0lURWdBWEZoSURCd0lBRXpjMEppY21CZ2NIQmhjV0ZoY1dOamNDR09Mb0d5UUJSKy9nNXhzTE1QN0VqUVZyYUlxOEdRUUdBd1ZzWVlxN0dSVUZBVW9CQVFFaEFVa0ZCZjY2L3Y1SC92NyszQUtBVTR5VkJBWFV3aUE4UW5TTEJBWFd4d0QvLy84UC9rZ0IzQVE2QWdZQlpBQUEvLy8vRC81SUFkd0VPZ0lHQVdRQUFQLy9BQ0lBQUFITEJEb0FCZ0QwQUFELy8vOTkvbHNCeXdRNkFDWUE5QUFBQUFZQmJkVUsvLzhBSWdBQUFjc0VPZ0FHQVBRQUFBQUJBQXIvNWdQb0JLRUFJQUJwc2djaEloRVNPUUN3QUVWWXNCUXZHN0VVSFQ1WnNBQkZXTEFlTHh1eEhnOCtXYkFBUlZpd0R5OGJzUThQUGxtd0hoQ3lBZ0VLSzFnaDJCdjBXYklKSGhRUkVqbXdDUyt5QndjS0sxZ2gyQnYwV2JBVUVMSU1Cd29yV0NIWUcvUlpzaGdKQnhFU09UQXhKUll6TWpZM05pY25OemNtSnlZSEF5TVROallYRmhZWEFSWVdCd1lHSnlZbkFaQkZSVTl2Q3hQU1lCL3VOVSt4S24vcGZoN3l3WEsvWHY3WWdvNEdDdkN1Ym5mYk0yNVRsQUlCcnZvMkFnUDMvUlFDN05iZkJBUm5hdjdURnFGM3I5Z0NBamIvLy8rWEFBQUVHZ1NOQWlZRDZRQUFBUWNEMWY4RS8yNEFPd0N5SHhvQmNiSnZHZ0Z4c3Y4YUFYR3lEeG9CY3JLZkdnRnlzbDhhQVhLMnZ4clBHdDhhQTNHeVB4b0JjYkxmR2dGZHRCOGFMeG9DWFRBeEFQLy8vNWNBQUFRYUJJMENKZ1BwQUFBQkJ3UFYvd1QvYmdBN0FMSWZHZ0Z4c204YUFYR3kveG9CY2JJUEdnRnlzcDhhQVhLeVh4b0JjcmEvR3M4YTN4b0RjYkkvR2dGeHN0OGFBVjIwSHhvdkdnSmRNREVBLy84QVlnQUFCRm9FalFJbUE5a0FBQUVHQTlVbHZnQUlBTElBQ3dGZE1ESC8vLytiQUFBRUJRWWVBaVlEN0FBQUFRY0FSQURTQUI0QUV3Q3dBRVZZc0FRdkc3RUVIVDVac0F6Y01ERUEvLy8vbXdBQUJEOEdIZ0ltQSt3QUFBRUhBSGNCYlFBZUFCTUFzQUJGV0xBRkx4dXhCUjArV2JBTjNEQXhBUC8vLzVzQUFBUUlCaDhDSmdQc0FBQUJCZ0ZuYVI0QUV3Q3dBRVZZc0FRdkc3RUVIVDVac0EvY01ERUEvLy8vbXdBQUJFQUdFd0ltQSt3QUFBRUdBVzUzSHdBSkFMQUVMN0FWM0RBeEFQLy8vNXNBQUFRaUJlc0NKZ1BzQUFBQkJ3QnJBSjhBSGdBTUFMQUVMN0FjM0xBTDBEQXgvLy8vbXdBQUJBVUdmUUltQSt3QUFBRUhBV3dCQXdCU0FBd0FzQVF2c0JUY3NCZlFNREgvLy8rYkFBQUVVUWFaQWlZRDdBQUFBQWNEeFFEN0FBVC8vd0E1L2owRVNRU2pBaVlENmdBQUFBY0Fld0ZnQUFELy93QUtBQUFEK1FZZUFpWUQ2QUFBQVFjQVJBQ2lBQjRBRXdDd0FFVllzQVl2RzdFR0hUNVpzQTNjTURFQS8vOEFDZ0FBQkE4R0hnSW1BK2dBQUFFSEFIY0JQUUFlQUJNQXNBQkZXTEFITHh1eEJ4MCtXYkFPM0RBeEFQLy9BQW9BQUFQNUJoOENKZ1BvQUFBQkJnRm5PUjRBRXdDd0FFVllzQVl2RzdFR0hUNVpzQkRjTURFQS8vOEFDZ0FBQS9rRjZ3SW1BK2dBQUFFR0FHdHZIZ0FNQUxBR0w3QWQzTEFNMERBeC8vOEFHQUFBQWVBR0hnSW1BK1FBQUFFR0FFU0tIZ0FUQUxBQVJWaXdBaThic1FJZFBsbXdCZHd3TVFELy93QVlBQUFDOWdZZUFpWUQ1QUFBQVFZQWR5UWVBQk1Bc0FCRldMQURMeHV4QXgwK1diQUczREF4QVAvL0FCZ0FBQUxBQmg4Q0pnUGtBQUFCQndGbi95RUFIZ0FUQUxBQVJWaXdBaThic1FJZFBsbXdDTnd3TVFELy93QVlBQUFDMmdYckFpWUQ1QUFBQVFjQWEvOVhBQjRBREFDd0FpK3dGZHl3Qk5Bd01mLy9BQW9BQUFTb0JoTUNKZ1BmQUFBQkJ3RnVBSlVBSHdBSkFMQUZMN0FVM0RBeEFQLy9BRHIvNmdSakJoNENKZ1BlQUFBQkJ3QkVBTjhBSGdBVEFMQUFSVml3Q1M4YnNRa2RQbG13SXR3d01RRC8vd0E2LytvRVl3WWVBaVlEM2dBQUFRY0Fkd0Y2QUI0QUNRQ3dDUyt3STl3d01RRC8vd0E2LytvRVl3WWZBaVlEM2dBQUFRWUJaM1llQUFrQXNBa3ZzQ0xjTURFQS8vOEFPdi9xQkdNR0V3SW1BOTRBQUFFSEFXNEFoQUFmQUFrQXNBa3ZzQ3ZjTURFQS8vOEFPdi9xQkdNRjZ3SW1BOTRBQUFFSEFHc0FyQUFlQUF3QXNBa3ZzRExjc0NIUU1ESC8vd0E1LytzRWFnWWVBaVlEMkFBQUFRY0FSQURBQUI0QUV3Q3dBRVZZc0Frdkc3RUpIVDVac0JQY01ERUEvLzhBZFAvbkJFNEZ5UUFHQUJRVUFQLy9BSTcvK1FRdkJjZ0FCZ0FkQUFELy93QmEvK2NFY3dXd0FnWUFHUUFBLy84QUNRQUFCQ29Gc0FJR0FCZ0FBUC8vQUNiLzZBUTVCY1VDQmdBWEFBRC8vd0FMQUFBRVB3WEhBZ1lBRmdBQS8vOEFPZi9yQkdvR0hnSW1BOWdBQUFFSEFIY0JXd0FlQUFrQXNBQXZzQlRjTURFQS8vOEFPZi9yQkdvR0h3SW1BOWdBQUFFR0FXZFhIZ0FKQUxBQUw3QVQzREF4QVAvL0FEbi82d1JxQmVzQ0pnUFlBQUFCQndCckFJMEFIZ0FNQUxBQUw3QWozTEFTMERBeC8vOEFiUUFBQklBR0hnSW1BL2NBQUFFSEFIY0JOUUFlQUJNQXNBQkZXTEFCTHh1eEFSMCtXYkFMM0RBeEFQLy8vNXNBQUFROEJkSUNKZ1BzQUFBQkJnQnljU0lBRXdDd0FFVllzQVF2RzdFRUhUNVpzQXpjTURFQS8vLy9td0FBQkJNR0JRSW1BK3dBQUFFSEFXb0Fwd0FlQUFrQXNBUXZzQTdjTURFQUFBTC9tLzVSQkFVRWpRQVhBQm9BaExJVkd4d1JFam13RlJDd0d0QUFzQUJGV0xBVkx4dXhGUjArV2JBQVJWaXdDeThic1FzUlBsbXdBRVZZc0FBdkc3RUFEejVac0FCRldMQVRMeHV4RXc4K1diQUFSVml3QVM4YnNRRVBQbG13Q3hDeUJnTUtLMWdoMkJ2MFdiQUJFTEFRMExBUUw3SVpGUUFSRWptd0dTK3lFUWNLSzFnaDJCdjBXYklhRlFBUkVqa3dNU0VYQndZSEJoY1dOeGNHSnlJbU56WTNKeUVISXdFekV3RWhBd1BRQlMrREJ3VTRHejBNUlZWWGFRSUR2Q3orTG9qNUFwUGEvZjE4QVVoWEF4OVdWamtEQVJlUUt3SnRWSmhyNHZrRWpmdHpBYklCdVAvL0FEbi83QVJKQmg0Q0pnUHFBQUFCQndCM0FXb0FIZ0FKQUxBTEw3QWYzREF4QVAvL0FEbi83QVJKQmg4Q0pnUHFBQUFCQmdGblpoNEFDUUN3Q3krd0h0d3dNUUQvL3dBNS8rd0VTUVgvQWlZRDZnQUFBUWNCYXdGSEFDY0FDUUN3Q3krd0pkd3dNUUQvL3dBNS8rd0VTUVlqQWlZRDZnQUFBUVlCYUgwZUFBa0FzQXN2c0NIY01ERUEvLzhBQ2dBQUJCb0dJd0ltQStrQUFBRUdBV2orSGdBVEFMQUFSVml3QWk4YnNRSWRQbG13Rzl3d01RRC8vd0FLQUFBRURBWFNBaVlENkFBQUFRWUFja0VpQUJNQXNBQkZXTEFHTHh1eEJoMCtXYkFOM0RBeEFQLy9BQW9BQUFQNUJnVUNKZ1BvQUFBQkJnRnFkeDRBQ1FDd0JpK3dEOXd3TVFELy93QUtBQUFEK1FYL0FpWUQ2QUFBQVFjQmF3RWFBQ2NBQ1FDd0JpK3dGTnd3TVFBQUFRQUsvbEVEK1FTTkFCd0FnTElWSFI0UkVqa0FzQUJGV0xBWEx4dXhGeDArV2JBQVJWaXdFQzhic1JBUlBsbXdBRVZZc0FRdkc3RUVEejVac0FCRldMQVZMeHV4RlE4K1diSWNGd1FSRWptd0hDK3lBQUVLSzFnaDJCdjBXYkFWRUxJQ0FRb3JXQ0hZRy9SWnNBUFFzQkFRc2dzRENpdFlJZGdiOUZtd0Z4Q3lHUUVLSzFnaDJCdjBXVEF4QVNFRElRY2pGd2NHQndZWEZqY1hCaWNpSmpjMk55RVRJUWNoQXlFRE5mNGFOZ0k3STJBRkw0TUhCVGdiUFF4RlZWZHBBZ09XL2hYS0F5VWovY2t2QWVnQitQN0t3Z01mVmxZNUF3RVhrQ3NDYlZTTVlBU054UDd5Ly84QUNnQUFCQXdHSXdJbUErZ0FBQUVHQVdoUUhnQVRBTEFBUlZpd0JpOGJzUVlkUGxtd0Vkd3dNUUQvL3dBLy8vQUVVUVlmQWlZRDVnQUFBUVlCWjJvZUFBa0FzQXN2c0NMY01ERUEvLzhBUC8vd0JGRUdCUUltQStZQUFBRUhBV29BcUFBZUFBa0FzQXN2c0NUY01ERUEvLzhBUC8vd0JGRUYvd0ltQStZQUFBRUhBV3NCU3dBbkFBa0FzQXN2c0NuY01ERUEvLzhBUC8zNUJGRUVvd0ltQStZQUFBQUhBNnNCSVA2Uy8vOEFDZ0FBQktrR0h3SW1BK1VBQUFFR0FXZDhIZ0FUQUxBQVJWaXdCeThic1FjZFBsbXdFTnd3TVFELy93QU5BQUFDK0FZVEFpWUQ1QUFBQVFjQmJ2OHZBQjhBQ1FDd0FpK3dEdHd3TVFELy93QVlBQUFDOUFYU0FpWUQ1QUFBQVFjQWN2OHBBQ0lBRXdDd0FFVllzQUl2RzdFQ0hUNVpzQVhjTURFQS8vOEFHQUFBQXNzR0JRSW1BK1FBQUFFSEFXci9Yd0FlQUFrQXNBSXZzQWZjTURFQS8vLy9pdjVSQWM4RWpRSW1BK1FBQUFBR0FXM2lBUC8vQUJnQUFBSUNCZjhDSmdQa0FBQUJCZ0ZyQVNjQUNRQ3dBaSt3RE53d01RRC8vLy95LytzRWtBWWZBaVlENHdBQUFRY0Jad0R4QUI0QUV3Q3dBRVZZc0FBdkc3RUFIVDVac0JQY01ERUEvLzhBQ3YzNUJKMEVqUUltQStJQUFBQUhBNnNBelA2Uy8vOEFDZ0FBQXpRR0hnSW1BK0VBQUFFR0FIY2JIZ0FUQUxBQVJWaXdCUzhic1FVZFBsbXdDTnd3TVFELy93QUsvZmtETkFTTkFpWUQ0UUFBQUFjRHF3REsvcEwvL3dBS0FBQURPd1NRQWlZRDRRQUFBUWNEcXdJbEE0b0FFQUN3QUVWWXNBb3ZHN0VLSFQ1Wk1ESC8vd0FLQUFBRE5BU05BaVlENFFBQUFBY0Jhd0R1L1ViLy93QUtBQUFFcUFZZUFpWUQzd0FBQVFjQWR3R0xBQjRBRXdDd0FFVllzQWd2RzdFSUhUNVpzQXpjTURFQS8vOEFDdjM1QktnRWpRSW1BOThBQUFBSEE2c0JMdjZTLy84QUNnQUFCS2dHSXdJbUE5OEFBQUVIQVdnQW5nQWVBQk1Bc0FCRldMQUdMeHV4QmgwK1diQVAzREF4QVAvL0FEci82Z1JqQmRJQ0pnUGVBQUFCQmdCeWZpSUFDUUN3Q1Mrd0lkd3dNUUQvL3dBNi8rb0VZd1lGQWlZRDNnQUFBUWNCYWdDMEFCNEFDUUN3Q1Mrd0pOd3dNUUQvL3dBNi8rb0U1QVlkQWlZRDNnQUFBUWNCYndEN0FCNEFEQUN3Q1Mrd0k5eXdKZEF3TWYvL0FBb0FBQVFXQmg0Q0pnUGJBQUFCQndCM0FTQUFIZ0FKQUxBRUw3QVkzREF4QVAvL0FBcjkrUVFXQkkwQ0pnUGJBQUFBQndPckFOTCtrdi8vQUFvQUFBUVdCaU1DSmdQYkFBQUJCZ0ZvTXg0QUNRQ3dCQyt3R3R3d01RRC8vd0FPLyswRUd3WWVBaVlEMmdBQUFRY0Fkd0ZKQUI0QUNRQ3dDUyt3S2R3d01RRC8vd0FPLyswRC93WWZBaVlEMmdBQUFRWUJaMFVlQUFrQXNBa3ZzQ2pjTURFQS8vOEFEdjQ5QS84RW53SW1BOW9BQUFBSEFIc0JSUUFBLy84QUR2L3RCQmdHSXdJbUE5b0FBQUVHQVdoY0hnQUpBTEFKTDdBcjNEQXhBUC8vQUdMOStRUmFCSTBDSmdQWkFBQUFCd09yQU43K2t2Ly9BR0lBQUFSYUJpTUNKZ1BaQUFBQkJnRm9TaDRBRXdDd0FFVllzQVl2RzdFR0hUNVpzQTNjTURFQS8vOEFZdjVEQkZvRWpRSW1BOWtBQUFBSEFIc0JNQUFHLy84QU9mL3JCR29HRXdJbUE5Z0FBQUVHQVc1bEh3QUpBTEFBTDdBYzNEQXhBUC8vQURuLzZ3UnFCZElDSmdQWUFBQUJCZ0J5WHlJQUNRQ3dBQyt3RXR3d01RRC8vd0E1LytzRWFnWUZBaVlEMkFBQUFRY0JhZ0NWQUI0QUNRQ3dBQyt3RmR3d01RRC8vd0E1LytzRWFnWjlBaVlEMkFBQUFRY0JiQUR4QUZJQURBQ3dBQyt3Rzl5d0h0QXdNZi8vQURuLzZ3VEZCaDBDSmdQWUFBQUJCd0Z2QU53QUhnQU1BTEFBTDdBVTNMQVcwREF4QUFFQU92NkJCR29FalFBZkFHR3lCU0FoRVJJNUFMQUFSVml3QUM4YnNRQWRQbG13QUVWWXNCWXZHN0VXSFQ1WnNBQkZXTEFOTHh1eERSYytXYkFBUlZpd0VpOGJzUklQUGxteUJCSUFFUkk1c0EwUXNnZ0RDaXRZSWRnYjlGbXdFaEN5R3dFS0sxZ2gyQnYwV1RBeEFRTUdCZ2NHQndZWEZqY1hCaWNpSmpjMk55WW1OeE16QXdZV0Z4WTJOeE1FYW9JWXA0UjVDZ1U0R3owTVJWVlhhUUlDUzdMQ0U0SHNnZ3RiWjJ1T0VvTUVqZnoxamNNcFQxZzVBd0VYa0NzQ2JWUmlUUlBkcWdNQS9QOWxjZ01FYjJrREJ3RC8vd0NNQUFBR0hnWWZBaVlEMWdBQUFRY0Jad0VWQUI0QUV3Q3dBRVZZc0FFdkc3RUJIVDVac0EvY01ERUEvLzhBYlFBQUJJQUdId0ltQS9jQUFBRUdBV2N4SGdBVEFMQUFSVml3Q0M4YnNRZ2RQbG13RGR3d01RRC8vd0J0QUFBRWdBWHJBaVlEOXdBQUFRWUFhMmNlQUF3QXNBRXZzQnJjc0FuUU1ESC8vLy9XQUFBRUp3WWVBaVlFcVFBQUFRY0Fkd0U0QUI0QUV3Q3dBRVZZc0Fndkc3RUlIVDVac0F6Y01ERUEvLy8vMWdBQUJDY0Yvd0ltQktrQUFBRUhBV3NCRlFBbkFBa0FzQWN2c0JMY01ERUFBQUgvMWdBQUJDY0VqUUFKQUVRQXNBQkZXTEFITHh1eEJ4MCtXYkFBUlZpd0FpOGJzUUlQUGxteUFBRUtLMWdoMkJ2MFdiSUVBQUlSRWptd0J4Q3lCUUVLSzFnaDJCdjBXYklKQlFjUkVqa3dNU1VoQnlFM0FTRTNJUWNCTUFKZ0kveHBHd0xmL2E4akE0VWF3c0tZQXpIRWxnRC8vLytiQUFBRUJRVWVBaVlEN0FBQUFBY0JkLzlJL3QzLy8vOXRBQUFFTlFVaEFDWUQ2RHdBQUFjQmQvNC8vdUQvLy85NEFBQUU1UVVjQUNZRDVUd0FBQWNCZC81Sy90di8vLzk3QUFBQ0N3VWhBQ1lENUR3QUFBY0JkLzVOL3VELy8vL1MvK29FYlFVZUFDWUQzZ29BQUFjQmQvNmsvdDMvLy84c0FBQUV2QVVlQUNZRDl6d0FBQWNCZC8zKy90My8vLy9pQUFBRWdnVWVBQ1lEMUFvQUFBY0JkLzYwL3QzLy8vK2JBQUFFQlFTTkFnWUQ3QUFBLy84QUNnQUFCQUFFalFJR0Erc0FBUC8vQUFvQUFBUDVCSTBDQmdQb0FBRC8vLy9XQUFBRUp3U05BZ1lFcVFBQS8vOEFDZ0FBQktrRWpRSUdBK1VBQVAvL0FCZ0FBQUhQQkkwQ0JnUGtBQUQvL3dBS0FBQUVuUVNOQWdZRDRnQUEvLzhBQ2dBQUJjZ0VqUUlHQStBQUFQLy9BRHIvNmdSakJLRUNCZ1BlQUFELy93QUtBQUFFTmdTTkFnWUQzUUFBLy84QVlnQUFCRm9FalFJR0E5a0FBUC8vQUcwQUFBU0FCSTBDQmdQM0FBRC8vLytrQUFBRWdBU05BZ1lEOWdBQS8vOEFHQUFBQXRvRjZ3SW1BK1FBQUFFSEFHdi9Wd0FlQUF3QXNBSXZzQlhjc0FUUU1ESC8vd0J0QUFBRWdBWHJBaVlEOXdBQUFRWUFhMmNlQUF3QXNBRXZzQnJjc0FuUU1ESC8vd0FLQUFBRCtRWHJBaVlENkFBQUFRWUFhMjhlQUF3QXNBWXZzQjNjc0F6UU1ESC8vd0FLQUFBRC9nWWVBaVlEdWdBQUFRY0Fkd0VzQUI0QUNRQ3dCQyt3Q053d01RRC8vd0FPLyswRC93U2ZBZ1lEMmdBQS8vOEFHQUFBQWM4RWpRSUdBK1FBQVAvL0FCZ0FBQUxhQmVzQ0pnUGtBQUFCQndCci8xY0FIZ0FNQUxBQ0w3QVYzTEFFMERBeC8vLy84di9yQTdBRWpRSUdBK01BQVAvL0FBb0FBQVNkQmg0Q0pnUGlBQUFCQndCM0FTQUFIZ0FKQUxBRUw3QVAzREF4QVAvL0FITC82QVNDQmdVQ0pnUUtBQUFCQndGcUFJZ0FIZ0FKQUxBUEw3QVQzREF4QVAvLy81c0FBQVFGQkkwQ0JnUHNBQUQvL3dBS0FBQUVBQVNOQWdZRDZ3QUEvLzhBQ2dBQUE5OEVqUUlHQTdvQUFQLy9BQW9BQUFQNUJJMENCZ1BvQUFELy93QUxBQUFFcmdZRkFpWUVCd0FBQVFjQmFnREdBQjRBQ1FDd0FDK3dEZHd3TVFELy93QUtBQUFGeUFTTkFnWUQ0QUFBLy84QUNnQUFCS2tFalFJR0ErVUFBUC8vQURyLzZnUmpCS0VDQmdQZUFBRC8vd0FLQUFBRXBBU05BZ1lEeGdBQS8vOEFDZ0FBQkRZRWpRSUdBOTBBQVAvL0FEbi83QVJKQktNQ0JnUHFBQUQvL3dCaUFBQUVXZ1NOQWdZRDJRQUEvLy8vcEFBQUJJQUVqUUlHQS9ZQUFBQUJBQTMrT1FQdUJLQUFLQUN3c2lJcEtoRVNPUUN3R0Mrd0FFVllzQXd2RzdFTUhUNVpzQUJGV0xBWEx4dXhGdzgrV2JBTUVMSUdBUW9yV0NIWUcvUlpzaWdYREJFU09iQW9MN0svS0FGeXRLOG92eWdDWGJSdktIOG9Bbkd5L3lnQmNiSVBLQUZ5c2w4b0FYS3l6eWdCY2JJL0tBRnh0QjhvTHlnQ1hiS1BLQUZ5c2tvb0FWMnlDU2dHRVJJNXNpWUJDaXRZSWRnYjlGbXlFU1lvRVJJNXNCY1FzQnJRc0JjUXNpRUJDaXRZSWRnYjlGbXlIaVloRVJJNU1ERUJNalkzTmlZaUJnY0hOallYRmhZSEJnY1dGZ2NHQmdjREl4TW1KamN6RmhZekZqWTNOaWNuTndJRVpvQUtDbVd3YWcvdURQM0N3OTRJQ3VsUldnUUgyTFpON2srR2hnTHFBbHhXYXBBTUZkeUhJQUtxVTAxRVRFVStBWml5QWdPbWpiVmxJNFpaanJVVS9rUUJ5Q09xZVVkTUExbFBvQUVCc0FBQkFBcittZ1M5QkkwQUR3Q29zZ01RRVJFU09RQ3dBRVZZc0F3dkc3RU1IVDVac0FCRldMQUpMeHV4Q1IwK1diQUFSVml3QVM4YnNRRVhQbG13QUVWWXNBWXZHN0VHRHo1WnNBQkZXTEFETHh1eEF3OCtXYklLQmdrUkVqbXdDaSswcndxL0NnSmRzajhLQVhHeXp3b0JjYkkvQ2dGeXN2OEtBWEd5RHdvQmNyUnZDbjhLQW5HMDN3cnZDZ0pkdEI4S0x3b0NYYkpmQ2dGeXNnVUJDaXRZSWRnYjlGbXdBeEN5RGdjS0sxZ2gyQnYwV1RBeEFTTVRJeE1oQXlNVE13TWhFek1ETXdSZjdqNjlVdjRHVSszSzdWWUIrMWJ0cTcvK21nRm1BZHYrSlFTTi9oRUI3L3dvQUFBQkFEcitRd1JQQktNQUhnQmVzZ01mSUJFU09RQ3dBRVZZc0Ewdkc3RU5IVDVac0FCRldMQUVMeHV4QkJFK1diQUFSVml3QXk4YnNRTVBQbG15QUFNTkVSSTVzQWJRc2hFTkF4RVNPYkFORUxJVUFRb3JXQ0hZRy9SWnNBTVFzaHdCQ2l0WUlkZ2I5Rmt3TVFFR0JnY0RJeE1tQWpjM0VnQVhGaFlYSnlZbUp5WUdCd1lYRkJZWEZqY0VBaG5vckV2dVRwdVZGd1lnQVVIcHd1SUs2d05nYTRXd0doQUJaR0hqT0FHRnA5UVYvazRCd1M4QktNVTBBUTRCUVFZRTNiMEJaM0FFQmNDMGlUOXdmd1FJMmdELy93QnRBQUFFZ0FTTkFnWUQ5d0FBLy84QU4vNDZCYVVFcHdJbUJDQUFBQUFIQS8wQ3YvK2cvLzhBQ3dBQUJLNEYwZ0ltQkFjQUFBRUhBSElBa0FBaUFBa0FzQUF2c0FyY01ERUEvLzhBY3Yvb0JJSUYwZ0ltQkFvQUFBRUdBSEpTSWdBSkFMQVBMN0FRM0RBeEFQLy9BRU1BQUFVM0JJNENCZ1BTQUFELy8vK2svbFFFcmdXd0FpWUFKUUFBQUFjQmJRRnRBQVAvL3dBaS9sZ0QzQVJRQWlZQVJRQUFBQWNCYlFDbkFBZi8vd0FuL2xzRXVnV3dBaVlBS1FBQUFBY0JiUUV1QUFyLy93QTcvbEVFQWdSUkFpWUFTUUFBQUFjQmJRRDhBQUQvLy8vay9wc0J5d1E2QWlZQTlBQUFBQWNCZGdORUFBb0FBQUFBQUE4QXVnQURBQUVFQ1FBQUFGNEFBQUFEQUFFRUNRQUJBQm9BWGdBREFBRUVDUUFDQUF3QWVBQURBQUVFQ1FBREFDZ0FoQUFEQUFFRUNRQUVBQ2dBaEFBREFBRUVDUUFGQUN3QXJBQURBQUVFQ1FBR0FDWUEyQUFEQUFFRUNRQUhBRUFBL2dBREFBRUVDUUFKQUF3QlBnQURBQUVFQ1FBTEFCUUJTZ0FEQUFFRUNRQU1BQ1lCWGdBREFBRUVDUUFOQUZ3QmhBQURBQUVFQ1FBT0FGUUI0QUFEQUFFRUNRQVFBQXdDTkFBREFBRUVDUUFSQUJvQ1FBQkRBRzhBY0FCNUFISUFhUUJuQUdnQWRBQWdBRElBTUFBeEFERUFJQUJIQUc4QWJ3Qm5BR3dBWlFBZ0FFa0FiZ0JqQUM0QUlBQkJBR3dBYkFBZ0FGSUFhUUJuQUdnQWRBQnpBQ0FBVWdCbEFITUFaUUJ5QUhZQVpRQmtBQzRBVWdCdkFHSUFid0IwQUc4QUlBQk5BR1VBWkFCcEFIVUFiUUJKQUhRQVlRQnNBR2tBWXdCU0FHOEFZZ0J2QUhRQWJ3QWdBRTBBWlFCa0FHa0FkUUJ0QUNBQVNRQjBBR0VBYkFCcEFHTUFWZ0JsQUhJQWN3QnBBRzhBYmdBZ0FESUFMZ0F3QURBQU1RQXhBRFVBTWdBN0FDQUFNZ0F3QURFQU5BQlNBRzhBWWdCdkFIUUFid0F0QUUwQVpRQmtBR2tBZFFCdEFFa0FkQUJoQUd3QWFRQmpBRklBYndCaUFHOEFkQUJ2QUNBQWFRQnpBQ0FBWVFBZ0FIUUFjZ0JoQUdRQVpRQnRBR0VBY2dCckFDQUFid0JtQUNBQVJ3QnZBRzhBWndCc0FHVUFMZ0JIQUc4QWJ3Qm5BR3dBWlFCSEFHOEFid0JuQUd3QVpRQXVBR01BYndCdEFFTUFhQUJ5QUdrQWN3QjBBR2tBWVFCdUFDQUFVZ0J2QUdJQVpRQnlBSFFBY3dCdkFHNEFUQUJwQUdNQVpRQnVBSE1BWlFCa0FDQUFkUUJ1QUdRQVpRQnlBQ0FBZEFCb0FHVUFJQUJCQUhBQVlRQmpBR2dBWlFBZ0FFd0FhUUJqQUdVQWJnQnpBR1VBTEFBZ0FGWUFaUUJ5QUhNQWFRQnZBRzRBSUFBeUFDNEFNQUJvQUhRQWRBQndBRG9BTHdBdkFIY0Fkd0IzQUM0QVlRQndBR0VBWXdCb0FHVUFMZ0J2QUhJQVp3QXZBR3dBYVFCakFHVUFiZ0J6QUdVQWN3QXZBRXdBU1FCREFFVUFUZ0JUQUVVQUxRQXlBQzRBTUFCU0FHOEFZZ0J2QUhRQWJ3Qk5BR1VBWkFCcEFIVUFiUUFnQUVrQWRBQmhBR3dBYVFCakFBTUFBUC8wQUFEL2FnQmtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQ0FBZ0FBdi8vQUE4QUFRQUFBQW9BWEFDc0FBUkVSa3hVQUJwamVYSnNBQ2huY21WckFEWnNZWFJ1QUVRQUJBQUFBQUQvL3dBQ0FBQUFCQUFFQUFBQUFQLy9BQUlBQVFBRkFBUUFBQUFBLy84QUFnQUNBQVlBQkFBQUFBRC8vd0FDQUFNQUJ3QUlZM0J6Y0FBeVkzQnpjQUE0WTNCemNBQStZM0J6Y0FCRWEyVnliZ0JLYTJWeWJnQkthMlZ5YmdCS2EyVnliZ0JLQUFBQUFRQUJBQUFBQVFBREFBQUFBUUFDQUFBQUFRQUFBQUFBQVFBRUFBVUFEQUFNQUF3QURBSGVBQUVBQUFBQkFBZ0FBUUFLQUFVQUpBQklBQUVBM2dBSUFDVUFKZ0FuQUNnQUtRQXFBQ3NBTEFBdEFDNEFMd0F3QURFQU1nQXpBRFFBTlFBMkFEY0FPQUE1QURvQU93QThBRDBBUGdCbUFHZ0Fnd0NFQUlVQWhnQ0hBSWdBaWdDTEFJd0FqUUNPQUk4QWtBQ1JBSklBa3dDVUFKVUFsZ0NYQUpnQW1RQ2NBSjBBbmdDZkFLQUF3d0RGQU1jQXlRRExBTTBBendEUkFOTUExUURYQU5rQTJ3RGRBTjhBNFFEakFPVUE1d0RyQU8wQTd3RHhBUE1BOXdENUFQd0EvZ0VBQVFJQkJnRUlBUW9CRHdFUkFSTUJGUUVYQVJrQkd3RWRBUjhCSVFFakFTVUJKd0VwQVNzQkxRRXZBVEVCTXdFMUFUY0JPUUU3QVR3QlBnRkFBVTRCWWdGNUFYc0JmQUY5QVg0QmZ3R0FBWUlCZ3dHRUFZVUJoZ0dIQVlnQmlRR0tBWXNCakFHTkFZOEJrQUdSQVpJQmt3R1VBWlVCbGdHWEFaZ0JtUUdhQVpzQnhBSEZBY1lCeHdISUFja0J5Z0hMQWN3QnpRSE9BYzhCMFFIU0FkTUIxQUhWQWRZQjF3SFlBZGtCMmdIYkFkd0IzUUhlQWQ4QjRBSGhBZUlCNHdIa0FlVUI1Z0huQWVnQjZRSHFBZXNCN0FIdEFlNEI3d0h3QWZFQjhnSlNBbFFDV0FKYUFsd0NYZ0ppQW1RQ2FnSnNBbkFDY2dKMEFuWUNlZ0o4QW40Q2dBS2FBcUlDcEFLcUFyQURod09PQTVNRGxnQUNBQUFBQWdBS085b0FBUU5zQUFRQUFBR3hCdEk2K2pyNkJ2d0hVamZlSTJJN21EdXFPSFlIV0RpV09KWTQzalRlRHFnNGxqaVdPNm9taEFxU0N4UTFNRGplTkk0M3VEZEtPT1FQWWd0K09GUTJHamlNQzhBTTZnejBONjQzcmppNE5ob08xZzNxT1c0T1REZW9PVzRPWmpmZU45NDMzamZlTjk0MzNqdVlPSFk0ZGpoMk9IWTRsamlXT0pZNGxqdXFPSlk3cWp1cU82bzdxanVxT040NDNqamVPTjQ0NURoVU9GUTRWRGhVT0ZRNFZEaU1PSXc0akRpTU42NDR1RGk0T0xnNHVEaTRPVzQyR2psdU45NDRWRGZlT0ZRMzNqaFVPNWc3bUR1WU81ZzdxanVxT0hZNGpEaDJPSXc0ZGppTU9IWTRqRGgyT0l3NGxqZXVPSlk0bGppV09KWTRsamplTk40T3FBNm9EcWdPcURpV042NDRsamV1T0pZM3JqZXVPNm80dUR1cU9MZzdxamk0RHRZTzFnN1dOVEExTURVd09ONDQzamplT040NDNqamVON2c0NURsdU9PUVBZZzlpRDJJMzNqaFVOVEFPNkRyNk45NDRkamlXT0pZN3FqamtOOTRqWWpaK045NDRkZzlpT0pZN3FqaVdOTjQzM2ppV09KWVBoRHVxSm9RUWZqVXdPT1FSZkRkS0VsbzRsamprTjY0UytEbHVFdjQzcmhXOE9XNFhsamk0R0tnWXdoaklHTTRheUJyT0d3UWJOamk0T0hZNGRodTBObjQ0bGppV09ONGRLaDdjSUpvMDNqWTBPSlkzM2lIUUkySTJmaU5zT0hZM1NpVzZPSlkwM2ppV09KWTRsanVxSm9RN21EVXdOalEzU2ppV09KWW1waWhBTkQ0cEhpbmdLbTQ0VkNyTUs2WTNRQ3d3T0l3M3FDejZMU1E0dURZYUxvbzViallhTjZneEVERk9Nb0EwYURZYU13STRqRGlNTjBBemlET3lOQWc1YmpRK05HZzMzamk0Tkk0NWJqU09PVzQwdERZYU5uNDNRRForTjBvM3FEVGVOTjQwM2pUZU9KWTdtRFV3T09RNWJqamtOMG8zcURldU9KWTNTamVvT0pZNGxqaVdOOTQ0VkRmZU9GUTRkamlNT0l3NGpEZEtONmc3cWppNE9MZzJHalkwT1c0Mk5EbHVOalE1YmpaK04wQTNRRGRLTjZnMzNqaFVPSlkzcmplNE43ZzN1RGZlT0ZRMzNqaFVOOTQ0VkRmZU9GUTMzamhVTjk0NFZEZmVPRlEzM2poVU45NDRWRGZlT0ZRMzNqaFVOOTQ0VkRoMk9JdzRkamlNT0hZNGpEaDJPSXc0ZGppTU9IWTRqRGgyT0l3NGRqaU1PSlk0bGp1cU9MZzdxamk0TzZvNHVEdXFPTGc3cWppNE82bzR1RHVxT0xnNHVEamVPTjQ0NURsdU9PUTViamprT1c0NDVEbHVPNm82K2ptSU92bzYranI2T3ZvNitqc0FPd283SERzdU8wQTdYanRvTzNJN21EdXFPNm9BQVFHeEFBUUFCZ0FMQUF3QUV3QWxBQ1lBSndBb0FDa0FLZ0FzQUMwQUxnQXZBREFBTVFBeUFETUFOQUExQURZQU9BQTVBRG9BT3dBOEFEMEFQZ0EvQUVVQVJnQkpBRW9BVEFCUEFGRUFVZ0JUQUZRQVZnQllBRm9BV3dCY0FGMEFYd0NEQUlRQWhRQ0dBSWNBaUFDS0FJc0FqQUNOQUk0QWp3Q1FBSkVBa2dDVEFKUUFsUUNXQUpjQW1BQ1pBSndBblFDZUFKOEFvQUNqQUtRQXBRQ21BS2NBcUFDckFLd0FyUUN1QUxRQXRRQzJBTGNBdUFDNUFNQUF3UURDQU1NQXhBREZBTVlBeHdESUFNa0F5d0ROQU04QTBRRFRBTlVBMWdEWEFOZ0EyUURhQU5zQTNBRGRBTjRBNXdEb0FPc0E3UUR2QVBFQTh3RDNBUGtBL0FEK0FRQUJBZ0VHQVFjQkNBRUpBUW9CQ3dFTUFROEJFQUVSQVJJQkV3RVVBUmdCR2dFY0FTVUJKd0VwQVNzQkxRRXZBVEVCTXdFMUFUY0JPUUU2QVRzQlBBRStBVUFCVGdGUEFXSUJaUUZtQVhrQmV3RjhBWDBCZmdGL0FZSUJnd0dFQVlVQmhnR0hBWWdCaVFHS0FZc0JqQUdOQVk0Qmp3R1FBWklCa3dHVUFaVUJsZ0dYQVpnQm1nR2JBWjRCb1FHakFhWUJwd0dwQWEwQnJnR3ZBYkVCc2dHekFiUUJ0UUcyQWJnQnVRRzhBY01CeEFIRkFjWUJ5UUhLQWNzQnpBSE5BYzRCendIUkFkSUIwd0hVQWRVQjFnSFhBZGdCMlFIYUFkc0IzUUhlQWQ4QjRBSGhBZU1CNUFIbEFlWUI2QUhwQWVzQjdBSHRBZThCOEFIeEFmSUI4d0gwQWZVQjlnSDNBZmdCK1FINkFmMENBUUlEQWdVQ0JnSUhBZ2dDQ1FJTUFnMENEd0lRQWhFQ0V3SVVBaFlDRndJY0FoMENJUUlsQWlZQ0tRSTJBamNDT0FJNUFqb0NSQUpSQWxJQ1V3SlVBbGdDV1FKY0FsNENZQUppQW1RQ2JBSnVBbkFDY1FKeUFuUUNkUUo5QW9JQ2d3S0VBb3NDandLUkFwSUNrd0tVQXBVQ21BS1pBcHNDblFLZUFwOENxQUtwQXEwQ3J3S3dBckVDc2dLekFyUUN0UUs0QXJrQ3ZRSytBcjhDMWdMWEF1WUM1d0w0QXZvQy9BTUNBd01EQkFNRkF3WURCd01JQXdrRENnTUxBd3dERFFNT0F3OERFQU1SQXhJREV3TVVBeFVERmdNWEF4Z0RHUU1hQXhzREhBTWRBeDRESHdNZ0F5RURJZ01qQXlRREpRTW1BeWNES0FNcEF5b0RMQU11QXk4RE1BTXhBeklETXdNMEF6VUROZ00zQXpnRE9RTTZBenNEUXdOR0EwZ0RWQU5WQTFZRFZ3TllBMWtEV2dOYkExd0RjQU54QTNNRGRBTjFBMzREZndQWkE5c0QzQVBlQStFRDRnUHBBK3dFTVFRekJEUUFDZ0E0LzhRQkpmL0VBU2YveEFGaS84UUJ4Zi9FQWM3L3hBSGwvOFFDWXYvRUFtNy94QUoyLzhRQUZRQTZBQlFBT3dBbUFEMEFGZ0NnQUJZQk53QW1BVGtBRmdFN0FCWUJmd0FXQVpVQUZnR2JBQllDTndBVUFqa0FGQUp3QUJZQ2NnQVdBdmdBSmdMNkFDWUMvQUFtQTFRQUZnTldBQllEV0FBV0Exb0FGZ0FCQUJQL0NBRE9BQkQrN2dBUy91NEFKZjlBQUM3L01BQTRBQlFBUmYvZUFFZi82d0JJLytzQVNmL3JBRXYvNndCVC8rc0FWZi9yQUZiLzVnQlovK29BV3Yvb0FGMy82QUNELzBBQWhQOUFBSVgvUUFDRy8wQUFoLzlBQUlqL1FBQ2ovOTRBcFAvZUFLWC8zZ0NtLzk0QXAvL2VBS2ovM2dDcS8rc0FxLy9yQUt6LzZ3Q3QvK3NBcnYvckFMWC82d0MyLytzQXQvL3JBTGovNndDNS8rc0F2UC9xQUwzLzZnQysvK29Bdi8vcUFNRC82QURDLytnQXcvOUFBTVQvM2dERi8wQUF4di9lQU1mL1FBREkvOTRBeXYvckFNei82d0RPLytzQTBQL3JBTkwvNndEVy8rc0EyUC9yQU5yLzZ3RGMvK3NBM3YvckFPRC82d0RpLytzQTVQL3JBT2IvNndEMy96QUJFUC9yQVJMLzZ3RVUvK3NCRnYvckFTVUFGQUVuQUJRQkxQL3FBUzcvNmdFdy8rb0JNdi9xQVRULzZnRTIvK29CT3Yvb0FVYi82d0ZJLytvQlR2OUFBVS8vM2dGaUFCUUJlZjlBQVlML1FBR0YvMEFCalA5QUFaei82d0dnLytvQm9mL3JBYVAvNkFHdC8rZ0JyLy9yQWJMLzZ3R3ovK3NCdGYvcUFidi82Z0c4LytzQnZmL3FBY1VBRkFITC96QUJ6Z0FVQWRQL1FBSGxBQlFCOC8vZUFmai82d0lCLytzQ0JQL3JBZ2IvNkFJSC8rc0NFLy9yQWhULzZ3SVgvK3NDSWYvb0Fpbi9RQUkyLytzQ09QL29BanIvNkFJOC8rc0NRUC9yQWtULzZ3SmlBQlFDYS8vckFtMy82d0p1QUJRQ2NmL29BbllBRkFLUy8wQUNrLy9lQXBUL1FBS1YvOTRDbWYvckFwdi82d0tkLytzQ3FmL3JBcXYvNndLdC8rc0NzZi9vQXJQLzZBSzEvK2dDdy8vckFzVC82d0xGLytzQ3ovL3JBdGIvUUFMWC85NERBdjlBQXdQLzNnTUUvMEFEQmYvZUF3Yi9RQU1ILzk0RENQOUFBd24vM2dNSy8wQURDLy9lQXd6L1FBTU4vOTRERHY5QUF3Ly8zZ01RLzBBREVmL2VBeEwvUUFNVC85NERGUDlBQXhYLzNnTVcvMEFERi8vZUF4ai9RQU1aLzk0REcvL3JBeDMvNndNZi8rc0RJZi9yQXlQLzZ3TWwvK3NESi8vckF5bi82d012LytzRE1mL3JBelAvNndNMS8rc0ROLy9yQXpuLzZ3TTcvK3NEUGYvckF6Ly82d05CLytzRFEvL3JBMFgvNndOSC8rb0RTZi9xQTB2LzZnTk4vK29EVC8vcUExSC82Z05ULytvRFZmL29BMWYvNkFOWi8rZ0RXLy9vQTNMKzdnTjIvdTREZXY3dUEzdis3Z1BzLzhBQUlBQTQvOThBT3Yva0FEdi83QUE5LzkwQW9QL2RBU1gvM3dFbi85OEJOLy9zQVRuLzNRRTcvOTBCWXYvZkFYLy8zUUdWLzkwQm0vL2RBY1gvM3dITy85OEI1Zi9mQWpmLzVBSTUvK1FDWXYvZkFtNy8zd0p3LzkwQ2N2L2RBbmIvM3dMNC8rd0Mrdi9zQXZ6LzdBTlUvOTBEVnYvZEExai8zUU5hLzkwRDdBQU9BQm9BT1AvT0FEci83UUE5LzlBQW9QL1FBU1gvemdFbi84NEJPZi9RQVR2LzBBRmkvODRCZi8vUUFaWC8wQUdiLzlBQnhmL09BYzcvemdIbC84NENOLy90QWpuLzdRSmkvODRDYnYvT0FuRC8wQUp5LzlBQ2R2L09BMVQvMEFOVy85QURXUC9RQTFyLzBBQVFBQzcvN2dBNS8rNEFuUC91QUozLzdnQ2UvKzRBbi8vdUFQZi83Z0VyLys0QkxmL3VBUy8vN2dFeC8rNEJNLy91QVRYLzdnSEwvKzREUnYvdUEwai83Z0JLQUFZQUVBQUxBQkFBRFFBVUFFRUFFZ0JILytnQVNQL29BRW4vNkFCTC8rZ0FWZi9vQUdFQUV3Q3EvK2dBcS8vb0FLei82QUN0LytnQXJ2L29BTXIvNkFETS8rZ0F6di9vQU5ELzZBRFMvK2dBMXYvb0FOai82QURhLytnQTNQL29BTjcvNkFEZy8rZ0E0di9vQU9ULzZBRG0vK2dCRnYvb0FVYi82QUZtQUJBQm5QL29BYUgvNkFHeS8rZ0JzLy9vQWZqLzZBSUUvK2dDQi8vb0FoUC82QUlVLytnQ0YvL29BanovNkFKQS8rZ0NSUC9vQW12LzZBSnQvK2dDbWYvb0Fwdi82QUtkLytnQ3EvL29Bc1AvNkFMRS8rZ0N4Zi9vQXMvLzZBTWIvK2dESGYvb0F4Ly82QU1oLytnREkvL29BeVgvNkFNbi8rZ0RLZi9vQXozLzZBTS8vK2dEUWYvb0EwWC82QU53QUJBRGNRQVFBM01BRUFOMEFCQURkUUFRQTM0QUVBTi9BQkFBQWdJRi85WURjZitZQUQwQVIvL3NBRWovN0FCSi8rd0FTLy9zQUZYLzdBQ3EvK3dBcS8vc0FLei83QUN0Lyt3QXJ2L3NBTXIvN0FETS8rd0F6di9zQU5ELzdBRFMvK3dBMXYvc0FOai83QURhLyt3QTNQL3NBTjcvN0FEZy8rd0E0di9zQU9ULzdBRG0vK3dCRnYvc0FVYi83QUdjLyt3Qm9mL3NBYkwvN0FHei8rd0IrUC9zQWdULzdBSUgvK3dDRS8vc0FoVC83QUlYLyt3Q1BQL3NBa0QvN0FKRS8rd0NhLy9zQW0zLzdBS1ovK3dDbS8vc0FwMy83QUtyLyt3Q3cvL3NBc1QvN0FMRi8rd0N6Ly9zQXh2LzdBTWQvK3dESC8vc0F5SC83QU1qLyt3REpmL3NBeWYvN0FNcC8rd0RQZi9zQXovLzdBTkIvK3dEUmYvc0FCZ0FVLy9pQUxYLzRnQzIvK0lBdC8vaUFMai80Z0M1LytJQkVQL2lBUkwvNGdFVS8rSUJyLy9pQWJ6LzRnSUIvK0lDTnYvaUFxbi80Z0t0LytJREwvL2lBekgvNGdNei8rSUROZi9pQXpmLzRnTTUvK0lETy8vaUEwUC80Z054QUJnQUJnQVEvNFFBRXYrRUEzTC9oQU4yLzRRRGV2K0VBM3YvaEFBUUFDNy83QUE1Lyt3QW5QL3NBSjMvN0FDZS8rd0FuLy9zQVBmLzdBRXIvK3dCTGYvc0FTLy83QUV4Lyt3Qk0vL3NBVFgvN0FITC8rd0RSdi9zQTBqLzdBQUxBRnYvekFQVy85Y0QxLys0QTlqLzdnUFovNzBEM1AveUE5Ny84Z1BtLy9FRDZ2L3pBK3dBRXdQMy83Y0FCQUJLQUJRQVdBQXlBRnNBRVFOeEFCQUFIZ0FHLy9JQUMvL3lBRnIvOHdCZC8vTUF3UC96QU1MLzh3RTYvL01CWnYveUFhUC84d0d0Ly9NQ0JmLzFBZ2IvOHdJaC8vTUNPUC96QWpyLzh3SngvL01Dc2YvekFyUC84d0sxLy9NRFZmL3pBMWYvOHdOWi8vTURXLy96QTNELzhnTngvL0lEYy8veUEzVC84Z04xLy9JRGZ2L3lBMy8vOGdBSUFGdi81UUdXLzhzQnVQL2tBOXovN0FQZS8rd0Q1di9yQStyLzdRUHNBQTBBUGdBbi8vTUFLLy96QURQLzh3QTEvL01BaXYvekFKWC84d0NXLy9NQWwvL3pBSmovOHdDWi8vTUFtLy96QU1uLzh3REwvL01BemYvekFNLy84d0RmLy9NQTRmL3pBT1AvOHdEbC8vTUJELy96QVJILzh3RVQvL01CRmYvekFVWC84d0ZTLy9NQmZ2L3pBWW4vOHdHUS8vTUJxd0FOQWNmLzh3SGgvL01CNVAvekFpUC84d0kxLy9NQ08vL3pBajMvOHdJLy8vTUNRZi96QWtQLzh3SnEvL01DYlAvekFxai84d0txLy9NQ3JQL3pBczcvOHdNdS8vTURNUC96QXpMLzh3TTAvL01ETnYvekF6ai84d002Ly9NRFBQL3pBejcvOHdOQS8vTURRdi96QTBULzh3TmMvL01FTWYvekJETC84d1EwLy9NRU5mL3pBRDhBSi8vbUFDdi81Z0F6LytZQU5mL21BSXIvNWdDVi8rWUFsdi9tQUpmLzVnQ1kvK1lBbWYvbUFKdi81Z0RKLytZQXkvL21BTTMvNWdEUC8rWUEzLy9tQU9ILzVnRGovK1lBNWYvbUFRLy81Z0VSLytZQkUvL21BUlgvNWdGRi8rWUJVdi9tQVg3LzVnR0ovK1lCa1AvbUFaYi93Z0dyQUJBQngvL21BZUgvNWdIay8rWUNJLy9tQWpYLzVnSTcvK1lDUGYvbUFqLy81Z0pCLytZQ1EvL21BbXIvNWdKcy8rWUNxUC9tQXFyLzVnS3MvK1lDenYvbUF5Ny81Z013LytZRE12L21BelQvNWdNMi8rWURPUC9tQXpyLzVnTTgvK1lEUHYvbUEwRC81Z05DLytZRFJQL21BMXovNWdReC8rWUVNdi9tQkRULzVnUTEvK1lBTndBbC8rUUFQUC9TQUQzLzB3Q0QvK1FBaFAva0FJWC81QUNHLytRQWgvL2tBSWovNUFDZy85TUF3Ly9rQU1YLzVBREgvK1FCT2YvVEFUdi8wd0ZPLytRQmVmL2tBWC8vMHdHQy8rUUJoZi9rQVl6LzVBR1YvOU1CbC8vU0Fadi8wd0dyLytJQjAvL2tBZG4vMGdIby85SUNLZi9rQWxqLzBnSncvOU1DY3YvVEFuVC8wZ0tELzlJQ2t2L2tBcFQvNUFLZS85SUN2di9TQXRiLzVBTUMvK1FEQlAva0F3Yi81QU1JLytRREN2L2tBd3ovNUFNTy8rUURFUC9rQXhMLzVBTVUvK1FERnYva0F4ai81QU5VLzlNRFZ2L1RBMWovMHdOYS85TUFKd0FRLzBZQUV2OUdBQ1gvelFDRC84MEFoUC9OQUlYL3pRQ0cvODBBaC8vTkFJai96UURELzgwQXhmL05BTWYvelFGTy84MEJlZi9OQVlML3pRR0YvODBCalAvTkFiSC84Z0hULzgwQ0tmL05BcEwvelFLVS84MEMxdi9OQXdML3pRTUUvODBEQnYvTkF3ai96UU1LLzgwRERQL05BdzcvelFNUS84MERFdi9OQXhUL3pRTVcvODBER1AvTkEzTC9SZ04yLzBZRGV2OUdBM3YvUmdBQkFhc0FEZ0N2QUVmLzNBQkkvOXdBU2YvY0FFdi8zQUJSLzhFQVV2L0JBRlAvMWdCVS84RUFWZi9jQUZuLzNRQmEvK0VBWGYvaEFLci8zQUNyLzl3QXJQL2NBSzMvM0FDdS85d0F0UC9CQUxYLzFnQzIvOVlBdC8vV0FMai8xZ0M1LzlZQXZQL2RBTDMvM1FDKy85MEF2Ly9kQU1ELzRRREMvK0VBeXYvY0FNei8zQURPLzl3QTBQL2NBTkwvM0FEVy85d0EyUC9jQU5yLzNBRGMvOXdBM3YvY0FPRC8zQURpLzl3QTVQL2NBT2IvM0FFSC84RUJDZi9CQVF2L3dRRU0vOEVCRVAvV0FSTC8xZ0VVLzlZQkZ2L2NBU3ovM1FFdS85MEJNUC9kQVRMLzNRRTAvOTBCTnYvZEFUci80UUZHLzl3QlNQL2RBWnovM0FHZS84RUJvUC9kQWFILzNBR2ovK0VCcGYvbUFhZi93UUdvLytzQnFmL3BBYTMvNFFHdS8vQUJyLy9XQWJELzV3R3kvOXdCcy8vY0FiVC80d0cxLzkwQnR2L09BYmovMUFHNS85c0J1Ly9kQWJ6LzFnRzkvOTBCOXYvQkFmai8zQUg3LzhFQi9QL0JBZjMvd1FILy84RUNBUC9CQWdILzFnSUMvOEVDQS8vQkFnVC8zQUlHLytFQ0IvL2NBZ24vd1FJTC84RUNEUC9CQWcvL3dRSVIvOEVDRS8vY0FoVC8zQUlXLzhFQ0YvL2NBaDMvd1FJZi84RUNJUC9CQWlILzRRSTIvOVlDT1AvaEFqci80UUk4Lzl3Q1FQL2NBa1QvM0FKTi84RUNYZi9CQW1YL3dRSm4vOEVDYS8vY0FtMy8zQUp4LytFQ2l2L0JBb3ovd1FLUS84RUNtZi9jQXB2LzNBS2QvOXdDcGYvQkFxZi93UUtwLzlZQ3EvL2NBcTMvMWdLeC8rRUNzLy9oQXJYLzRRSzUvOEVDdS8vQkFyMy93UUxELzl3Q3hQL2NBc1gvM0FMUC85d0M1Ly9CQXh2LzNBTWQvOXdESC8vY0F5SC8zQU1qLzl3REpmL2NBeWYvM0FNcC85d0RMLy9XQXpILzFnTXovOVlETmYvV0F6Zi8xZ001LzlZRE8vL1dBejMvM0FNLy85d0RRZi9jQTBQLzFnTkYvOXdEUi8vZEEwbi8zUU5MLzkwRFRmL2RBMC8vM1FOUi85MERVLy9kQTFYLzRRTlgvK0VEV2YvaEExdi80UUIyQUFiLzJnQUwvOW9BUi8vd0FFai84QUJKLy9BQVMvL3dBRlgvOEFCWi8rOEFXdi9jQUYzLzNBQ3EvL0FBcS8vd0FLei84QUN0Ly9BQXJ2L3dBTHovN3dDOS8rOEF2di92QUwvLzd3REEvOXdBd3YvY0FNci84QURNLy9BQXp2L3dBTkQvOEFEUy8vQUExdi93QU5qLzhBRGEvL0FBM1Avd0FONy84QURnLy9BQTR2L3dBT1QvOEFEbS8vQUJGdi93QVN6Lzd3RXUvKzhCTVAvdkFUTC83d0UwLys4Qk52L3ZBVHIvM0FGRy8vQUJTUC92QVdiLzJnR2MvL0FCb1AvdkFhSC84QUdqLzl3QnFQL3NBYXNBRHdHdC85d0JzUC9xQWJMLzhBR3ovL0FCdFAvT0FiWC83d0cyLytjQnUvL3ZBYjMvN3dINC8vQUNCUC93QWdiLzNBSUgvL0FDRS8vd0FoVC84QUlYLy9BQ0lmL2NBamovM0FJNi85d0NQUC93QWtELzhBSkUvL0FDYS8vd0FtMy84QUp4Lzl3Q21mL3dBcHYvOEFLZC8vQUNxLy93QXJILzNBS3ovOXdDdGYvY0FzUC84QUxFLy9BQ3hmL3dBcy8vOEFNYi8vQURIZi93QXgvLzhBTWgvL0FESS8vd0F5WC84QU1uLy9BREtmL3dBejMvOEFNLy8vQURRZi93QTBYLzhBTkgvKzhEU2YvdkEwdi83d05OLys4RFQvL3ZBMUgvN3dOVC8rOERWZi9jQTFmLzNBTlovOXdEVy8vY0EzRC8yZ054LzlvRGMvL2FBM1QvMmdOMS85b0Rmdi9hQTMvLzJnQkVBQkFBREFBU0FBd0FSLy9uQUVqLzV3QkovK2NBUy8vbkFGWC81d0NxLytjQXEvL25BS3ovNXdDdC8rY0Fydi9uQU1yLzV3RE0vK2NBenYvbkFORC81d0RTLytjQTF2L25BTmovNXdEYS8rY0EzUC9uQU43LzV3RGcvK2NBNHYvbkFPVC81d0RtLytjQkZ2L25BVWIvNXdHYy8rY0JvZi9uQWFzQUR3R3kvK2NCcy8vbkFmai81d0lFLytjQ0IvL25BaFAvNXdJVS8rY0NGLy9uQWp6LzV3SkEvK2NDUlAvbkFtdi81d0p0LytjQ21mL25BcHYvNXdLZC8rY0NxLy9uQXNQLzV3TEUvK2NDeGYvbkFzLy81d01iLytjREhmL25BeC8vNXdNaC8rY0RJLy9uQXlYLzV3TW4vK2NES2YvbkF6My81d00vLytjRFFmL25BMFgvNXdOeUFBd0RkZ0FNQTNvQURBTjdBQXdBQmdHMC8rb0I5Ly91QWdYLzFRSVAvKzBDWS8vc0F0SC83QUFCQWdYL3dBQUJBYlFBSUFCK0FBWUFEQUFMQUF3QVIvL29BRWovNkFCSi8rZ0FTZ0FNQUV2LzZBQlQvK29BVmYvb0FGb0FDd0JkQUFzQXF2L29BS3YvNkFDcy8rZ0FyZi9vQUs3LzZBQzEvK29BdHYvcUFMZi82Z0M0LytvQXVmL3FBTUFBQ3dEQ0FBc0F5di9vQU16LzZBRE8vK2dBMFAvb0FOTC82QURXLytnQTJQL29BTnIvNkFEYy8rZ0Ezdi9vQU9ELzZBRGkvK2dBNVAvb0FPYi82QUVRLytvQkV2L3FBUlQvNmdFVy8rZ0JPZ0FMQVViLzZBRm1BQXdCblAvb0FhSC82QUdqQUFzQnEvK1FBYTBBQ3dHdi8rb0JzQUFMQWJMLzZBR3ovK2dCdEFBTUFiei82Z0g0LytnQ0FmL3FBZ1QvNkFJR0FBc0NCLy9vQWhQLzZBSVUvK2dDRi8vb0FpRUFDd0kyLytvQ09BQUxBam9BQ3dJOC8rZ0NRUC9vQWtULzZBSnIvK2dDYmYvb0FuRUFDd0taLytnQ20vL29BcDMvNkFLcC8rb0NxLy9vQXEzLzZnS3hBQXNDc3dBTEFyVUFDd0xELytnQ3hQL29Bc1gvNkFMUC8rZ0RHLy9vQXgzLzZBTWYvK2dESWYvb0F5UC82QU1sLytnREovL29BeW4vNkFNdi8rb0RNZi9xQXpQLzZnTTEvK29ETi8vcUF6bi82Z003LytvRFBmL29Bei8vNkFOQi8rZ0RRLy9xQTBYLzZBTlZBQXNEVndBTEExa0FDd05iQUFzRGNBQU1BM0VBREFOekFBd0RkQUFNQTNVQURBTitBQXdEZndBTUE5Y0FEUVBaQUE0RDJ2LzFBOXovN0FQZS8rMEQ1di9zQStyLzdnUHMvNzhEOXdBTkFBRUNCZi9pQUEwQVhQL3RBRjcvN1FFOS8rMEJQLy90QVVILzdRSDUvKzBDQmYvQUFnai83UUpaLyswQ2RmL3RBb1QvN1FLZi8rMEN2Ly90QUF3QVhQL3lBRjcvOGdFOS8vSUJQLy95QVVILzhnSDUvL0lDQ1AveUFsbi84Z0oxLy9JQ2hQL3lBcC8vOGdLLy8vSUFId0JhLy9RQVhQL3lBRjMvOUFCZS8vTUF3UC8wQU1MLzlBRTYvL1FCUGYvekFULy84d0ZCLy9NQm8vLzBBYTMvOUFINS8vSUNCdi8wQWdqLzhnSWgvL1FDT1AvMEFqci85QUpaLy9JQ2NmLzBBblgvOGdLRS8vSUNuLy95QXJILzlBS3ovL1FDdGYvMEFyLy84Z05WLy9RRFYvLzBBMW4vOUFOYi8vUUFYUUFHLzhvQUMvL0tBRGovMGdBNi85UUFQUC8wQUQzLzB3QmEvK1lBWFAvdkFGMy81Z0NnLzlNQXdQL21BTUwvNWdFbC85SUJKLy9TQVRuLzB3RTYvK1lCTy8vVEFXTC8wZ0ZtLzhvQmYvL1RBWlgvMHdHWC8vUUJtLy9UQWFQLzVnR3QvK1lCeGYvU0FjNy8wZ0hSLyswQjJmLzBBZVgvMGdIbS8rMEI2UC8wQWVyLzRRSHYvOVFCK2YvdkFnWC95UUlHLytZQ0NQL3ZBZy8vMFFJaC8rWUNKUC9sQWpmLzFBSTQvK1lDT2YvVUFqci81Z0pDLytNQ1dQLzBBbG4vN3dKaS85SUNZLy9FQW03LzBnSncvOU1DY2YvbUFuTC8wd0owLy9RQ2RmL3ZBbmIvMGdKNC8rRUNldi9oQW9QLzlBS0UvKzhDamYvaEFwNy85QUtmLys4Q3NQL3RBckgvNWdLeS8rMENzLy9tQXJULzdRSzEvK1lDdHYvaEFyNy85QUsvLys4Q3h2L1VBc2YvOVFMSS8rY0MwUDlrQXRIL3lRTlUvOU1EVmYvbUExYi8wd05YLytZRFdQL1RBMW4vNWdOYS85TURXLy9tQTNEL3lnTngvOG9EYy8vS0EzVC95Z04xLzhvRGZ2L0tBMy8veWdCc0FBYi93QUFMLzhBQU9QK2RBRHIveHdBOC8vQUFQZityQUZILzBnQlMvOUlBVlAvU0FLRC9xd0MwLzlJQkIvL1NBUW4vMGdFTC85SUJEUC9TQVNYL25RRW4vNTBCT2YrckFUdi9xd0ZpLzUwQlp2L0FBWC8vcXdHVi82c0JsLy93QVp2L3F3R2UvOUlCcC8vU0FjWC9uUUhNLy9VQnp2K2RBZEgvNmdIWi8vQUIzdi8xQWVYL25RSG0vK29CNlAvd0Flci81UUh2LzhFQjl2L1NBZnYvMGdIOC85SUIvZi9TQWYvLzBnSUEvOUlDQXYvU0FnUC8wZ0lGLzgwQ0NmL1NBZ3YvMGdJTS85SUNELy9TQWhILzBnSVcvOUlDSGYvU0FoLy8wZ0lnLzlJQ04vL0hBam4veHdKTi85SUNXUC93QWwzLzBnSmkvNTBDWS8vTUFtWC8wZ0puLzlJQ2J2K2RBbkQvcXdKeS82c0NkUC93QW5iL25RSjQvK1VDZXYvbEFuNy8zd0tELy9BQ2gvLzFBb3IvMGdLTS85SUNqZi9sQXBELzBnS2UvL0FDcGYvU0FxZi8wZ0t3LytvQ3N2L3FBclQvNmdLMi8rVUN1Zi9TQXJ2LzBnSzkvOUlDdnYvd0FzYi96Z0xJLytvQ3l2LzFBdEQvbmdMUi84NEMxUC8xQXVmLzBnTlUvNnNEVnYrckExai9xd05hLzZzRGNQL0FBM0gvd0FOei84QURkUC9BQTNYL3dBTisvOEFEZi8vQUFHOEFCdit4QUF2L3NRQTQvNTRBT3YvRkFEei84Z0E5LzZnQVVmL1BBRkwvendCVS84OEFYUC92QUtEL3FBQzAvODhCQi8vUEFRbi96d0VMLzg4QkRQL1BBU1gvbmdFbi81NEJPZitvQVR2L3FBRmkvNTRCWnYreEFYLy9xQUdWLzZnQmwvL3lBWnYvcUFHZS84OEJwLy9QQWNYL25nSE8vNTRCMGYvc0Fkbi84Z0hsLzU0QjV2L3NBZWovOGdIcS8rRUI3Ly9DQWZiL3p3SDUvKzhCKy8vUEFmei96d0g5Lzg4Qi8vL1BBZ0QvendJQy84OENBLy9QQWdYL3hnSUkvKzhDQ2YvUEFndi96d0lNLzg4Q0QvL1BBaEgvendJVy84OENIZi9QQWgvL3p3SWcvODhDTi8vRkFqbi94UUpOLzg4Q1dQL3lBbG4vN3dKZC84OENZditlQW1QL3dBSmwvODhDWi8vUEFtNy9uZ0p3LzZnQ2N2K29BblQvOGdKMS8rOENkditlQW5qLzRRSjYvK0VDZnYvZkFvUC84Z0tFLys4Q2l2L1BBb3ovendLTi8rRUNrUC9QQXA3LzhnS2YvKzhDcGYvUEFxZi96d0t3Lyt3Q3N2L3NBclQvN0FLMi8rRUN1Zi9QQXJ2L3p3SzkvODhDdnYveUFyLy83d0xHLzgwQ3lQL29BdEQvbndMUi84WUM1Ly9QQTFUL3FBTlcvNmdEV1Arb0Exci9xQU53LzdFRGNmK3hBM1Avc1FOMC83RURkZit4QTM3L3NRTi8vN0VBVFFBNC83NEFVZi9oQUZMLzRRQlUvK0VBV3YvdkFGMy83d0MwLytFQXdQL3ZBTUwvN3dFSC8rRUJDZi9oQVF2LzRRRU0vK0VCSmYrK0FTZi92Z0U2Lys4Qll2KytBWjcvNFFHai8rOEJwLy9oQWEzLzd3SEYvNzRCenYrK0FlWC92Z0h2LzhrQjl2L2hBZnYvNFFIOC8rRUIvZi9oQWYvLzRRSUEvK0VDQXYvaEFnUC80UUlGLzk4Q0J2L3ZBZ24vNFFJTC8rRUNEUC9oQWcvLzRRSVIvK0VDRnYvaEFoMy80UUlmLytFQ0lQL2hBaUgvN3dJay8rMENPUC92QWpyLzd3SkMvK3NDVGYvaEFsMy80UUppLzc0Q1kvL2ZBbVgvNFFKbi8rRUNidisrQW5ILzd3SjIvNzRDZnYvcEFvci80UUtNLytFQ2tQL2hBcVgvNFFLbi8rRUNzZi92QXJQLzd3SzEvKzhDdWYvaEFydi80UUs5LytFQ3gvLzFBdEgvNEFMbi8rRURWZi92QTFmLzd3TlovKzhEVy8vdkFHUUFPUC9tQURyLzV3QTgvL0lBUGYvbkFGSC8xZ0JTLzlZQVZQL1dBRnovOFFDZy8rY0F0UC9XQVFmLzFnRUovOVlCQy8vV0FRei8xZ0VsLytZQkovL21BVG4vNXdFNy8rY0JZdi9tQVgvLzV3R1YvK2NCbC8veUFadi81d0dlLzlZQnAvL1dBY1gvNWdITy8rWUIwZi91QWRuLzhnSGwvK1lCNXYvdUFlai84Z0hxLytnQjcvL21BZmIvMWdINS8vRUIrLy9XQWZ6LzFnSDkvOVlCLy8vV0FnRC8xZ0lDLzlZQ0EvL1dBZ1gvMEFJSS8vRUNDZi9XQWd2LzFnSU0vOVlDRC8vV0FoSC8xZ0lXLzlZQ0hmL1dBaC8vMWdJZy85WUNOLy9uQWpuLzV3Sk4vOVlDV1AveUFsbi84UUpkLzlZQ1l2L21BbVAvemdKbC85WUNaLy9XQW03LzVnSncvK2NDY3YvbkFuVC84Z0oxLy9FQ2R2L21BbmovNkFKNi8rZ0NnLy95QW9ULzhRS0svOVlDalAvV0FvMy82QUtRLzlZQ252L3lBcC8vOFFLbC85WUNwLy9XQXJELzdnS3kvKzRDdFAvdUFyYi82QUs1LzlZQ3UvL1dBcjMvMWdLKy8vSUN2Ly94QXNiLzV3TEkvKzBDMFAvbUF0SC8wQUxuLzlZRFZQL25BMWIvNXdOWS8rY0RXdi9uQUFJQ0xRQUxBdEQvNWdDVEFDVUFFQUFuLytnQUsvL29BRFAvNkFBMS8rZ0FPUC9nQURyLzRBQTkvOThBZ3dBUUFJUUFFQUNGQUJBQWhnQVFBSWNBRUFDSUFCQUFpdi9vQUpYLzZBQ1cvK2dBbC8vb0FKai82QUNaLytnQW0vL29BS0QvM3dEREFCQUF4UUFRQU1jQUVBREovK2dBeS8vb0FNMy82QURQLytnQTMvL29BT0gvNkFEai8rZ0E1Zi9vQVEvLzZBRVIvK2dCRS8vb0FSWC82QUVsLytBQkovL2dBVG4vM3dFNy85OEJSZi9vQVU0QUVBRlMvK2dCWXYvZ0FYa0FFQUYrLytnQmYvL2ZBWUlBRUFHRkFCQUJpZi9vQVl3QUVBR1EvK2dCbGYvZkFadi8zd0hGLytBQngvL29BY3dBRUFITy8rQUIwd0FRQWRjQUZBSGVBQkFCNGYvb0FlVC82QUhsLytBQjZ2L2hBZS8vNEFIM0FCTUIvZ0FRQWdyLzRBSWNBQkFDSS8vb0Fpa0FFQUkxLytnQ04vL2dBam4vNEFJNy8rZ0NQZi9vQWovLzZBSkIvK2dDUS8vb0FtTC80QUpxLytnQ2JQL29BbTcvNEFKdy85OENjdi9mQW5iLzRBSjQvK0VDZWYvZ0Fuci80UUo3LytBQ2YvL2hBb2NBRUFLSUFCQUNqZi9oQW83LzRBS1NBQkFDbEFBUUFwci82UUtvLytnQ3F2L29BcXovNkFLMi8rRUN0Ly9nQXNiLzN3TEkvOTRDeWdBUUFzNy82QUxRLzk4QzB2L3lBdFFBRUFMVkFCQUMxZ0FRQXdJQUVBTUVBQkFEQmdBUUF3Z0FFQU1LQUJBRERBQVFBdzRBRUFNUUFCQURFZ0FRQXhRQUVBTVdBQkFER0FBUUF5Ny82QU13LytnRE12L29BelQvNkFNMi8rZ0RPUC9vQXpyLzZBTTgvK2dEUHYvb0EwRC82QU5DLytnRFJQL29BMVQvM3dOVy85OERXUC9mQTFyLzN3TmMvK2dFTWYvb0JETC82QVEwLytnRU5mL29BRElBRy8veUFEai84UUE2Ly9RQVBQLzBBRDMvOEFDZy8vQUJKZi94QVNmLzhRRTUvL0FCTy8vd0FXTC84UUYvLy9BQmxmL3dBWmYvOUFHYi8vQUJ4Zi94QWN6LzlRSE8vL0VCMGYvekFkbi85QUhlLy9VQjVmL3hBZWIvOHdIby8vUUI3Ly94QWpmLzlBSTUvL1FDV1AvMEFtTC84UUp1Ly9FQ2NQL3dBbkwvOEFKMC8vUUNkdi94QW9QLzlBS0gvL1VDbnYvMEFyRC84d0t5Ly9NQ3RQL3pBcjcvOUFMRy8vSUN5UC95QXNyLzlRTFEvL0lDMVAvMUExVC84QU5XLy9BRFdQL3dBMXIvOEFBSUFGZ0FEZ0NKL3RjQnEvK1lBYkgveHdIWC94SUI5LzlTQXNML3p3UHMvNEFBWmdBbEFBOEFPUC9tQURyLzVnQThBQTRBUGYvbUFJTUFEd0NFQUE4QWhRQVBBSVlBRHdDSEFBOEFpQUFQQUtELzVnRERBQThBeFFBUEFNY0FEd0VsLytZQkovL21BVG4vNWdFNy8rWUJUZ0FQQVdMLzVnRjVBQThCZi8vbUFZSUFEd0dGQUE4QmpBQVBBWlgvNWdHWEFBNEJtLy9tQWNYLzVnSE1BQTRCenYvbUFkRUFDd0hUQUE4QjF3QVRBZGtBRGdIZUFBNEI1Zi9tQWVZQUN3SG9BQTRCNnYvbEFlLy81Z0h3Ly9RQjl3QVNBZjRBRHdJRi8rY0NDdi9vQWcvLzV3SWNBQThDS1FBUEFqZi81Z0k1LytZQ1dBQU9BbUwvNWdKai8rY0Nidi9tQW5ELzVnSnkvK1lDZEFBT0FuYi81Z0o0LytVQ2VmL29BbnIvNVFKNy8rZ0Nnd0FPQW9jQURnS0lBQThDamYvbEFvNy82QUtTQUE4Q2xBQVBBcDRBRGdLd0FBc0NzZ0FMQXJRQUN3SzIvK1VDdC8vb0FyNEFEZ0xHLytZQ3lQL21Bc29BRGdMUS8rWUMwZi9uQXRRQURnTFZBQThDMWdBUEF3SUFEd01FQUE4REJnQVBBd2dBRHdNS0FBOEREQUFQQXc0QUR3TVFBQThERWdBUEF4UUFEd01XQUE4REdBQVBBMVQvNWdOVy8rWURXUC9tQTFyLzVnQTNBQWIvdndBTC83OEFPUCtmQURyL3lRQTkvNjBBb1ArdEFTWC9ud0VuLzU4Qk9mK3RBVHYvclFGaS81OEJadisvQVgvL3JRR1YvNjBCbS8rdEFjWC9ud0hPLzU4QjBmL3NBZVgvbndIbS8rd0I2di9tQWUvL3hBSUYvODBDRC8vVkFqZi95UUk1LzhrQ1l2K2ZBbVAvekFKdS81OENjUCt0QW5ML3JRSjIvNThDZVAvbUFuci81Z0orLzk4Q2pmL21BckQvN0FLeS8rd0N0UC9zQXJiLzVnTEcvOUVDeVAvc0F0RC9vUUxSLzg4RFZQK3RBMWIvclFOWS82MERXdit0QTNEL3Z3TngvNzhEYy8rL0EzVC92d04xLzc4RGZ2Ky9BMy8vdndBd0FEai80d0E4LytVQVBmL2tBS0QvNUFFbC8rTUJKLy9qQVRuLzVBRTcvK1FCWXYvakFYLy81QUdWLytRQmwvL2xBWnYvNUFIRi8rTUJ6UC9sQWM3LzR3SFIvK2tCMS8vaUFkbi81UUhlLytVQjVmL2pBZWIvNlFIby8rVUIvdi9xQWh6LzZnSlkvK1VDWXYvakFtNy80d0p3LytRQ2N2L2tBblQvNVFKMi8rTUNnLy9sQW9mLzVRS0kvK29DbnYvbEFyRC82UUt5LytrQ3RQL3BBcjcvNVFMSy8rVUMwUC9rQXRULzVRTFYvK29EVlAva0ExYi81QU5ZLytRRFd2L2tBQ01BT1AvaUFEei81QUVsLytJQkovL2lBV0wvNGdHWC8rUUJ4Zi9pQWN6LzVBSE8vK0lCMGYvcEFkZi80UUhaLytRQjN2L2tBZVgvNGdIbS8ra0I2UC9rQWZmLzVBSCsvK3NDSFAvckFsai81QUppLytJQ2J2L2lBblQvNUFKMi8rSUNnLy9rQW9mLzVBS0kvK3NDbnYva0FyRC82UUt5LytrQ3RQL3BBcjcvNUFMSy8rUUMxUC9rQXRYLzZ3QVhBRGovNndBOS8vTUFvUC96QVNYLzZ3RW4vK3NCT2YvekFUdi84d0ZpLytzQmYvL3pBWlgvOHdHYi8vTUJ4Zi9yQWM3LzZ3SGwvK3NDWXYvckFtNy82d0p3Ly9NQ2N2L3pBbmIvNndOVS8vTURWdi96QTFqLzh3TmEvL01BTmdCUi8rOEFVdi92QUZULzd3QmMvL0FBdFAvdkFRZi83d0VKLys4QkMvL3ZBUXovN3dHZS8rOEJwLy92QWZiLzd3SDMvKzRCK2Yvd0Fmdi83d0g4Lys4Qi9mL3ZBZi8vN3dJQS8rOENBdi92QWdQLzd3SUYvKzRDQ1Avd0Fnbi83d0lMLys4Q0RQL3ZBZy8vN3dJUi8rOENGdi92QWgzLzd3SWYvKzhDSVAvdkFpVC85QUpDLy9FQ1RmL3ZBbG4vOEFKZC8rOENZLy92QW1YLzd3Sm4vKzhDZGYvd0FvVC84QUtLLys4Q2pQL3ZBcEQvN3dLZi8vQUNwZi92QXFmLzd3SzUvKzhDdS8vdkFyMy83d0svLy9BQzBmL3ZBdWYvN3dBaUFBYi84Z0FMLy9JQVd2LzFBRjMvOVFEQS8vVUF3di8xQVRyLzlRRm0vL0lCby8vMUFhMy85UUlGLy9RQ0J2LzFBZy8vOUFJaC8vVUNKUC8xQWpqLzlRSTYvL1VDWS8vMUFuSC85UUt4Ly9VQ3MvLzFBclgvOVFMUi8vVURWZi8xQTFmLzlRTlovL1VEVy8vMUEzRC84Z054Ly9JRGMvL3lBM1QvOGdOMS8vSURmdi95QTMvLzhnQXlBRkgvN2dCUy8rNEFWUC91QUxULzdnRUgvKzRCQ2YvdUFRdi83Z0VNLys0Qm52L3VBYWYvN2dIMi8rNEI5d0FVQWZ2LzdnSDgvKzRCL2YvdUFmLy83Z0lBLys0Q0F2L3VBZ1AvN2dJRi8rMENDZi91QWdyLzdRSUwvKzRDRFAvdUFnMy8wQUlQLys0Q0VmL3VBaGIvN2dJZC8rNENILy91QWlELzdnSk4vKzRDWGYvdUFtUC83UUpsLys0Q1ovL3VBbm4vN1FKNy8rMENpdi91QW96LzdnS08vKzBDa1AvdUFxWC83Z0tuLys0Q3QvL3RBcm4vN2dLNy8rNEN2Zi91QXRILzdRTG4vKzRBQ2dBRy8vVUFDLy8xQVdiLzlRTncvL1VEY2YvMUEzUC85UU4wLy9VRGRmLzFBMzcvOVFOLy8vVUFXUUJILy9BQVNQL3dBRW4vOEFCTC8vQUFVLy9IQUZYLzhBQ3EvL0FBcS8vd0FLei84QUN0Ly9BQXJ2L3dBTFgveHdDMi84Y0F0Ly9IQUxqL3h3QzUvOGNBeXYvd0FNei84QURPLy9BQTBQL3dBTkwvOEFEVy8vQUEyUC93QU5yLzhBRGMvL0FBM3Yvd0FPRC84QURpLy9BQTVQL3dBT2IvOEFFUS84Y0JFdi9IQVJUL3h3RVcvL0FCUnYvd0Faei84QUdoLy9BQnIvL0hBYkwvOEFHei8vQUJ2UC9IQWZqLzhBSUIvOGNDQlAvd0FnZi84QUlULy9BQ0ZQL3dBaGYvOEFJMi84Y0NQUC93QWo3LzZ3SkEvL0FDUlAvd0Ftdi84QUp0Ly9BQ21mL3dBcHYvOEFLZC8vQUNxZi9IQXF2LzhBS3QvOGNDdy8vd0FzVC84QUxGLy9BQ3ovL3dBeHYvOEFNZC8vQURILy93QXlILzhBTWovL0FESmYvd0F5Zi84QU1wLy9BREwvL0hBekgveHdNei84Y0ROZi9IQXpmL3h3TTUvOGNETy8vSEF6My84QU0vLy9BRFFmL3dBMFAveHdORi8vQUQzUC9yQTk3LzZ3UG0vK2tENnYvckFLRUFCZ0FOQUFzQURRQkYvL0FBUi8vQUFFai93QUJKLzhBQVNnQU5BRXYvd0FCVC8rSUFWZi9BQUZvQUN3QmRBQXNBby8vd0FLVC84QUNsLy9BQXB2L3dBS2YvOEFDby8vQUFxdi9BQUt2L3dBQ3MvOEFBcmYvQUFLNy93QUMxLytJQXR2L2lBTGYvNGdDNC8rSUF1Zi9pQU1BQUN3RENBQXNBeFAvd0FNYi84QURJLy9BQXl2L0FBTXovd0FETy84QUEwUC9BQU5ML3dBRFcvOEFBMlAvQUFOci93QURjLzhBQTN2L0FBT0Qvd0FEaS84QUE1UC9BQU9iL3dBRVEvK0lCRXYvaUFSVC80Z0VXLzhBQk9nQUxBVWIvd0FGUC8vQUJaZ0FOQVp6L3dBR2gvOEFCb3dBTEFhMEFDd0d2LytJQnNmL1dBYkwvd0FHei84QUJ0di9WQWJ6LzRnSHovL0FCOS8vSUFmai93QUgrLzljQ0FmL2lBZ1Qvd0FJR0FBc0NCLy9BQWhQL3dBSVUvOEFDRi8vQUFoei8xd0loQUFzQ052L2lBamdBQ3dJNkFBc0NQUC9BQWo3LzdBSkEvOEFDUWdBTUFrVC93QUpyLzhBQ2JmL0FBbkVBQ3dLSS85Y0NrLy93QXBYLzhBS1ovOEFDbS8vQUFwMy93QUtwLytJQ3EvL0FBcTMvNGdLeEFBc0Nzd0FMQXJVQUN3TEQvOEFDeFAvQUFzWC93QUxIQUFzQ3lRQUxBcy8vd0FMVi85Y0MxLy93QXdQLzhBTUYvL0FEQi8vd0F3bi84QU1MLy9BRERmL3dBdy8vOEFNUi8vQURFLy93QXhYLzhBTVgvL0FER2Yvd0F4di93QU1kLzhBREgvL0FBeUgvd0FNai84QURKZi9BQXlmL3dBTXAvOEFETC8vaUF6SC80Z016LytJRE5mL2lBemYvNGdNNS8rSURPLy9pQXozL3dBTS8vOEFEUWYvQUEwUC80Z05GLzhBRFZRQUxBMWNBQ3dOWkFBc0RXd0FMQTNBQURRTnhBQTBEY3dBTkEzUUFEUU4xQUEwRGZnQU5BMzhBRFFQWEFBMEQyUUFPQTlyLzlRUGMvK3dEM3YvdEErYi83QVBxLys0RDdQKy9BL2NBRFFBUEFmY0FGQUgrQUJBQ0JmL3dBZ3IvOEFJUC8vQUNFZ0FXQWh3QUVBSmovK1lDZWYvd0Fudi8zQUtJQUJBQ2p2L3dBcmYvOEFMUi8vQUMxUUFRQUV3QVIvL3VBRWovN2dCSi8rNEFTLy91QUZYLzdnQ3EvKzRBcS8vdUFLei83Z0N0Lys0QXJ2L3VBTXIvN2dETS8rNEF6di91QU5ELzdnRFMvKzRBMXYvdUFOai83Z0RhLys0QTNQL3VBTjcvN2dEZy8rNEE0di91QU9ULzdnRG0vKzRCRnYvdUFVYi83Z0djLys0Qm9mL3VBYkwvN2dHei8rNEI5d0FTQWZqLzdnSCtBQTRDQlAvdUFnWC80d0lILys0Q0N2L2pBZzMvdUFJUC8rTUNFLy91QWhULzdnSVgvKzRDSEFBT0Fqei83Z0pBLys0Q1JQL3VBbVAvdWdKci8rNENiZi91QW5uLzR3SjcvOWtDaUFBT0FvNy80d0taLys0Q20vL3VBcDMvN2dLci8rNEN0Ly9qQXNQLzdnTEUvKzRDeGYvdUFzLy83Z0xSLytNQzFRQU9BeHYvN2dNZC8rNERILy91QXlILzdnTWovKzRESmYvdUF5Zi83Z01wLys0RFBmL3VBei8vN2dOQi8rNERSZi91QUNBQVd2L0FBRjMvd0FEQS84QUF3di9BQVRyL3dBR2ovOEFCcmYvQUFnWC9nQUlHLzhBQ0N2L3VBZy8vOEFJaC84QUNKUC9iQWpqL3dBSTYvOEFDUXYvY0FtUC9Sd0p4LzhBQ2VmL3VBbnYvN2dLTy8rNENzZi9BQXJQL3dBSzEvOEFDdC8vdUFzY0FCd0xKLy9RQzBmOS9BMVgvd0FOWC84QURXZi9BQTF2L3dBQWhBRnIvOUFCYy8vQUFYZi8wQU1ELzlBREMvL1FCT3YvMEFhUC85QUd0Ly9RQjkvL3ZBZm4vOEFIKy8vTUNCdi8wQWdqLzhBSVAvKzRDSFAvekFpSC85QUk0Ly9RQ092LzBBbG4vOEFKeC8vUUNkZi93QW9ULzhBS0kvL01Dbi8vd0FySC85QUt6Ly9RQ3RmLzBBci8vOEFMVi8vTURWZi8wQTFmLzlBTlovL1FEVy8vMEFBb0FCdi9XQUF2LzFnRm0vOVlEY1AvV0EzSC8xZ056LzlZRGRQL1dBM1gvMWdOKy85WURmLy9XQUJVQVhQL2dBZm4vNEFJRi8zWUNDUC9nQWdyL3dnSVAvOU1DSlAvWkFrTC8yd0paLytBQ1kvOGVBblgvNEFKNS84SUNlLy90QW9ULzRBS08vOElDbi8vZ0FyZi93Z0svLytBQ3gvL3dBc24vOGdMUi8xWUFEUUlGLzJRQ0N2L1NBZy8vMlFJay85a0NRdi9iQW1QL0hnSjUvOUlDZS8vdEFvNy8wZ0szLzlJQ3gvL3dBc24vOGdMUi8xWUFDZ0h2LzhNQ0JmL1BBZy8vMUFKai84NENldi9uQW43LzN3TEcvOUVDeVAvc0F0RC9vQUxSLzlFQUNRSUYvMm9DRC8vR0FpVC8yUUpDLzlzQ1kvOGVBbnYvN1FMSC8vQUN5Zi95QXRIL1ZnQUpBQTBBRkFCQkFCRUFWdi9pQUdFQUV3UGMvOWtEM3YvWkErYi8yUVBxLzlrRDdQKzBBQW9BQnYvWEFBdi8xd0ZtLzljRGNQL1hBM0gvMXdOei85Y0RkUC9YQTNYLzF3TisvOWNEZi8vWEFCUUFXLy9CQVpiL3hRRzAvN1FCOVAvWEFnWC91UUlQLytrQ0pQK3lBajcvMGdKQy84Z0NZLytnQW52L3hRS2EvK1FDeC8vTUFzbi96QUxSLzhzQzB2L3ZBOXovNXdQZS8rY0Q1di9tQStyLzZBQTZBQVQveEFCVy83OEFXLy9SQUc3L2JBQisvMjRBaWY5REFLbi9yQUM3LzZFQmx2KzRBYVgvZmdHcC8zc0JzUCtiQWJIL2VRRzAvN0lCdHY5K0Fiai9mUUc1LzN3QjEvK3ZBZThBRHdIMC8rUUI5ZitnQWZmL2RBSDYvNEFDQmYreUFnNy9mUUlQLzdJQ0VQK0FBaEwvZVFJVkFDZ0NJdjk5QWlUL2Z3SSsvMllDUXYvYUFsSC9nUUpULzVnQ1gvOTlBbVAvc3dKcC82QUNlLzk4QW43L21nSi8vMndDbXYvbUFzTC9hd0xILzVJQ3lmK3RBczMvZXdMUUFBOEMwZitSQXRMLzhnUFcvL0VEMmYveEE5ci92QVBjLzdrRDN2KzVBK2IvdVFQcS83a0Q3UCt2QS9iLzdRQUdBYlQvNmdIMy8rNENCZi9XQWcvLzdRSmovK3dDMGYvc0FCSUIxLyt1QWU4QUVnSDEvK0FCOS8rdEFmci8xZ0lPLzk4Q0V2L1NBaUwvNEFJKy84NENVZi9kQWxQLzRnSmYvK0FDYWYvZ0Fudi82UUovLzlvQ3d2KzlBczMvM3dMUUFCRUFNQUJXLzM0QVcvK2RBRzcrOFFCKy92UUFpZjZyQUtuL1hnQzcvMHNCbHY5eUFhWC9Ed0dwL3dvQnNQOUJBYkgvQndHMC8yZ0J0djhQQWJqL0RnRzUvd3dCMS85akFlOEFCUUgwLzcwQjlmOUpBZmYrL2dINi94TUNCZjlvQWc3L0RnSVAvMmdDRVA4VEFoTC9Cd0lWQURBQ0l2OE9BaVQvRVFJKy91Y0NRditzQWxIL0ZRSlQvendDWC84T0FtUC9hZ0pwLzBrQ2UvOE1BbjcvUHdKLy92RUNtdi9BQXNMKzd3TEgvekVDeWY5ZkFzMy9DZ0xRQUFVQzBmOHdBdEwvMVFBQ0FmZi9hQUkrLys0QUZ3R1cvOVFCcVAvdEFhc0FFUUcwLytBQnR2L25BYmovNVFHNS8rNEIxd0FTQWZULzZRSUYvOWNDWS8vWEFudi8wd0orLzlZQ2YvL0ZBcHIvNXdMR0FBMEN5QUFNQXRILzFnTFMvL0lEM1AvcEE5Ny81d1BtLytjRDZ2L3BBQUVDUHYveEFBSUNCZi9XQTNIL2lBQUpBQTBBRHdCQkFBd0FWdi9yQUdFQURnUGMvK2NEM3YvbkErYi81d1BxLytrRDdQL0xBQjBBSS8rdkFGai83d0JiLzk4QlIvL3VBWmIvNVFHWS85RUJxd0FSQWJUL3lBSFhBQk1CNy8vRkFnWC95Z0lQLzlBQ1kvK0JBbnIvWlFKNy80VUNmdjltQW4vLzNRS2EvL0lDeHYreEFzai95Z0xRLzZrQzBmL0lBOWIvM1FQWC84MEQyUC94QTluL3h3UGUvL1VENXYvMUEvZi94QUFJQWdYLzhBSVAvL0FDSlAveEFrTC84d0pqLy9FQ3gvL3pBc24vOHdMUi8vRUFCUUJLLys0QVcvL3FBOWIvN1FQWC8vQUQ5Ly93QUFJQ0JmLzFBM0gvd0FBSUFkY0FGUUgzQUJVQ2V2L2tBbnYvNVFKKy8rUUN4di9qQXNqLzRnTFEvK1FBQ1FHMC8rb0I5Lys0QWdYLzRnSWsvL0FDUXYveEFtUC82d0xILy9VQzBmL3NBM0gva0FBQkErei82d0FpQUFyLzRnQU5BQlFBRHYvUEFFRUFFZ0JLLytvQVZ2L1lBRmovNmdCaEFCTUFidit1QUg3L3pRQ0ovNkFBcWYvQkFMdi93QUdXLzlBQm92L3FBYVgveGdHbUFBMEJxUC9wQWFuLzFnR3cvK2dCc2YrNkFiVC82UUcyLzhzQnVQL2FBYm4veHdONS85TUQxdi96QTluLzh3UGMvOHNEM3YvTEErYi95d1BxLzgwRDdQK3JBL2IvN3dBR0FFb0FEUUd3QUFzQnNmL3FBYlFBREFIMy84Z0NQdi94QUZ3QVIvK1lBRWovbUFCSi81Z0FTLytZQUZQL2NBQlYvNWdBVi84WUFGc0FDd0NxLzVnQXEvK1lBS3ovbUFDdC81Z0FyditZQUxYL2NBQzIvM0FBdC85d0FMai9jQUM1LzNBQXl2K1lBTXovbUFETy81Z0EwUCtZQU5ML21BRFcvNWdBMlArWUFOci9tQURjLzVnQTN2K1lBT0QvbUFEaS81Z0E1UCtZQU9iL21BRVEvM0FCRXY5d0FSVC9jQUVXLzVnQkh2OFlBU0QvR0FFaS94Z0JKUDhZQVViL21BRmgveGdCblArWUFhSC9tQUd2LzNBQnN2K1lBYlAvbUFHOC8zQUIrUCtZQWdIL2NBSUUvNWdDQi8rWUFoUC9tQUlVLzVnQ0YvK1lBaGovR0FJMi8zQUNQUCtZQWtEL21BSkUvNWdDYS8rWUFtMy9tQUtaLzVnQ20vK1lBcDMvbUFLcC8zQUNxLytZQXEzL2NBTEQvNWdDeFArWUFzWC9tQUxQLzVnREcvK1lBeDMvbUFNZi81Z0RJZitZQXlQL21BTWwvNWdESi8rWUF5bi9tQU12LzNBRE1mOXdBelAvY0FNMS8zQUROLzl3QXpuL2NBTTcvM0FEUGYrWUF6Ly9tQU5CLzVnRFEvOXdBMFgvbUFBQkFGc0FDd0FDQTljQURRUDNBQTBBQkFQVy8vVUQxLy94QTluLzhnUDMvKzRBQkFQVy8vRUQxLy9yQTluLzZRUDMvK1VBQkFQWC8vRUQyZi91QS9iLzdBUDMvK29BQndQVy85VUQxLyszQTlqLzdBUFovN3NEM1Avd0E5Ny83d1AzLzdRQUFnUGMvK3NEM3YvckFBSUQxdi8xQTlmLzdnQUpBOWIvMkFQWC84Y0QyUC9zQTluL3dBUGMvL0lEM3YveUErYi84Z1BxLy9JRDkvKy9BQVFBRGYvbUFFSC85QUJoLys4Q2YvL3RBQWtBaWYvZkFZLy84d0dULy9BQnEvL3FBZGYvM3dIdi8rQUMwUC9nQSt6LzdRUDIvL1VBQWdlS0FBUUFBQXFrRXFBQUlRQWRBQUQvMi8rSS84Ny94Zi9zLzZYL3BBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS91TUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUCtJQUFBQUFBQUEvOUQvOUFBQS8rdi9pUC92LzdQLzJmOXEvL1gvemdBTUFCSC95UUFTLzk4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLytVQUFQL29BQUQveVFBQUFBQUFBQUFBQUFBQUFBQUEvL01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL2pBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rc0FBQUFBQUFBQUFBQUFBQUQvcXdBQS8rb0FBUC9WQUFBQUFBQUEvK0VBQUFBQUFBQUFBUCtHLytyLzZRQUFBQUFBQUFBQUFBQUFBQUFBQUFELzdRQUEvKzBBQUFBQUFCUUFBQUFBQUFBQUFQL3YvK1lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVnQUFBQUFBQUFBQUFBQUFBUC9qQUFBQUFBQUEvK1FBQUFBQUFBQUFFZi9rQUJILzVRQUFBQUFBRVFBQUFBQUFBQUFBQUFBQUFBQUEvK29BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC81Z0FBLytVQUFQL2hBQUFBQUFBQUFBQUFBUC9wLzlnQUFBQUFBQUFBQVArakFBQUFBQUFBQUFEL1hBQUFBQUFBQUFBQS91QUFFd0FBQUFBQUFBQUFBQUQvd1A4ei8rai9NditqL3VuLzh2K0ZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzA3LzlmL3pBQUQvOHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdBQS8yOEFBUCtuQUFBQUFQNXMvODMvM0FBQS8wZ0FBQUFBQUFBQUFQK0kvMWovcC8rbi96RC90UC9rQUJBQUFBQVFBQThBRVArLy82Ny94UC9MQUFEL2Z2OThBQUQrL2dBQUFBRCs4UDhvLy9EL3N3QUFBQUQvdGYvUy85UUFBUC9TQUFELzh3QUFBQUFBQUFBQUFBRC81UC8xQUFBQUFBQUFBQUFBQUFBQS95a0FBQUFBLzJNQUFBQUFBQUFBQUFBQS85WC8zLy9oQUFELzRRQUFBQUFBRGdBQUFBQUFBQUFBLyswQUFBQUFBQUFBQUFBQUFBQUFBUDl4QUFBQUFQL0VBQUFBQUFBQUFBQUFBQUFBQUFELzVnQUEvK3NBQVAvbkFBQUFBQUFPQUFBQUFQL3IvK0VBQUFBUkFBQUFFZi9SQUFBQUFBQUFBQUQvWkFBQUFBQUFBQUFBQUFEL2F2L0IvNy8vMlArLy84Yi80d0FSLzZBQUVnQVJBQkwvMmYvcy8rSUFBQUFBQUFBQUFBQUEveGtBRFFBQS8yai9vUC93LytrQUFBQUFBQTBBQVAvckFBRC82d0FBLytZQUFBQUFBQUFBQUFBQS8rMy81UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvN3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy9FQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzEvL0VBQUFBQS8vSUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vRUFBUC8xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzhnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvN0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVArb0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzhmL3dBQUFBQVAvd0FBQUFBQUFBQUFBQUFBQUFBQUFBQVAvckFBQUFFQUFBLytMLzdRQUEvOXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQklBQUFBQUFBQUFBQUFBQUFEL1V3QUFBQUFBQUFBQUFBQUFBQUFBQUE4QUFQL3gvL01BQVAveEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzljQUFBQUEvMWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvc0FBRC8yQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC84QUFBLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC9NLzlmLzFYL1ZmOW0vMnYvdlFBSEFBQUFCd0FGQUFmL2Z2OWgvNGIva2dBQS93Ly9EQUFBL2pZQUFBQUEvaDRBQVAvUi8yb0FBUC9BQUFBQUFBQUFBQUFBQUFBQUFBRC9ud0FBLzhnQUFQK3RBQUFBQUFBQUFBRC81d0FBQUFELzZ3QUFBQUFBQUFBQUFBQUFBUC9KQUFBQUFQK2wvNi8vdmYrdS83My8wdi9wQUJJQUFBQUFBQUFBRWdBQUFBQUFBUC9LQUFEL3UvL3BBQUQrZHdBQUFBRC9PUUFBQUFBQUFBQUFBQUFBQUFBQS8rd0FBUC9zQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvOWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA5NUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEL3RRQUFBQUFBQUFBQS8rTUFBQUFBQUFBQUFBQUFBQUFBQVAvckFBRUJpd0FHQUFzQUVBQVNBQ1VBSmdBbkFDZ0FLUUFzQUMwQUxnQXZBREFBTVFBeUFETUFOQUE0QURrQU9nQTdBRHdBUFFBK0FFVUFSZ0JIQUVrQVRBQlJBRklBVXdCVUFGWUFXZ0JjQUYwQVhnQ0RBSVFBaFFDR0FJY0FpQUNLQUlzQWpBQ05BSTRBandDUUFKRUFrZ0NUQUpRQWxRQ1dBSmNBbUFDWkFKd0FuUUNlQUo4QW9BQ2pBS1FBcFFDbUFLY0FxQUNxQUtzQXJBQ3RBSzRBdEFDMUFMWUF0d0M0QUxrQXdBREJBTUlBd3dERUFNVUF4Z0RIQU1nQXlRREtBTXNBekFETkFNNEF6d0RRQU5FQTB3RFZBTllBMXdEWUFOa0EyZ0RiQU53QTNRRGVBT2NBNkFEckFPMEE3d0R4QVBNQTl3RDVBUHdBL2dFQUFRSUJCZ0VIQVFnQkNRRUtBUXNCREFFUEFSQUJFUUVTQVJNQkZBRVlBUm9CSEFFbEFTY0JLUUVyQVMwQkx3RXhBVE1CTlFFM0FUa0JPZ0U3QVR3QlBRRStBVDhCUUFGQkFVNEJUd0ZpQVdZQmVRRjdBWHdCZlFGK0FYOEJnZ0dEQVlRQmhRR0dBWWNCaUFHSkFZb0Jpd0dNQVkwQmpnR1FBWklCbEFHVkFaY0JtZ0diQVo0Qm93R25BYTBCcndHeEFid0J3d0hFQWNZQnlRSEtBY3NCekFITkFjOEIwUUhTQWRNQjFRSFdBZGdCMlFIYkFkMEIzZ0hmQWVBQjRRSGpBZVFCNVFIbUFlZ0I2UUhyQWUwQjd3SHpBZllCK0FINUFnRUNBd0lFQWdZQ0J3SUlBZzBDRHdJUUFoTUNGQUlXQWh3Q0hRSWhBaVVDSmdJcEFqWUNOd0k0QWprQ09nSlJBbElDVXdKVUFsZ0NXUUpjQWw0Q1lBSmlBbVFDYkFKdEFtNENjQUp4QW5JQ2RBSjFBbjBDZ2dLREFvUUNpd0tQQXBFQ2tnS1RBcFFDbFFLWUFwa0Ntd0tkQXA0Q253S29BcWtDclFLdkFyQUNzUUt5QXJNQ3RBSzFBcmdDdVFLOUFyNEN2d0xXQXRjQzVnTG5BdmdDK2dMOEF3SURBd01FQXdVREJnTUhBd2dEQ1FNS0F3c0REQU1OQXc0RER3TVFBeEVERWdNVEF4UURGUU1XQXhjREdBTVpBeG9ER3dNY0F4MERIZ01mQXlBRElRTWlBeU1ESkFNbEF5WURKd01vQXlrREtnTXNBeTRETHdNd0F6RURNZ016QXpRRE5RTTJBemNET0FNNUF6b0RPd05EQTBZRFNBTlVBMVVEVmdOWEExZ0RXUU5hQTFzRFhBTndBM0VEY2dOekEzUURkUU4yQTNvRGV3TitBMzhFTVFRekJEUUFBZ0ZVQUJBQUVBQUJBQklBRWdBQkFDVUFKUUFDQUNZQUpnQURBQ2NBSndBRUFDZ0FLQUFGQUNrQUtRQUdBQ3dBTFFBSEFDNEFMZ0FJQUM4QUx3QUpBREFBTUFBS0FERUFNZ0FIQURNQU13QUZBRFFBTkFBTEFEZ0FPQUFNQURrQU9RQUlBRG9BT2dBTkFEc0FPd0FPQUR3QVBBQVBBRDBBUFFBUUFENEFQZ0FSQUVVQVJRQVNBRVlBUmdBVEFFY0FSd0FVQUVrQVNRQVZBRXdBVEFBV0FGRUFVZ0FXQUZNQVV3QVhBRlFBVkFBVEFGWUFWZ0FZQUZvQVdnQVpBRndBWEFBYUFGMEFYUUFaQUY0QVhnQWJBSU1BaUFBQ0FJb0FpZ0FFQUlzQWpnQUdBSThBa2dBSEFKTUFrd0FGQUpRQWxBQUhBSlVBbVFBRkFKd0Fud0FJQUtBQW9BQVFBS01BcUFBU0FLb0FxZ0FVQUtzQXJnQVZBTFFBdEFBV0FMVUF1UUFYQU1BQXdBQVpBTUVBd1FBVEFNSUF3Z0FaQU1NQXd3QUNBTVFBeEFBU0FNVUF4UUFDQU1ZQXhnQVNBTWNBeHdBQ0FNZ0F5QUFTQU1rQXlRQUVBTW9BeWdBVUFNc0F5d0FFQU13QXpBQVVBTTBBelFBRUFNNEF6Z0FVQU04QXp3QUVBTkFBMEFBVUFORUEwUUFGQU5NQTB3QUZBTlVBMVFBR0FOWUExZ0FWQU5jQTF3QUdBTmdBMkFBVkFOa0EyUUFHQU5vQTJnQVZBTnNBMndBR0FOd0EzQUFWQU4wQTNRQUdBTjRBM2dBVkFPY0E1d0FIQU9nQTZBQVdBT3NBNndBSEFPMEE3UUFIQU84QTd3QUhBUEVBOFFBSEFQTUE4d0FIQVBjQTl3QUlBUGtBK1FBSkFQd0EvQUFLQVA0QS9nQUtBUUFCQUFBS0FRSUJBZ0FLQVFZQkJnQUhBUWNCQndBV0FRZ0JDQUFIQVFrQkNRQVdBUW9CQ2dBSEFRc0JEQUFXQVE4QkR3QUZBUkFCRUFBWEFSRUJFUUFGQVJJQkVnQVhBUk1CRXdBRkFSUUJGQUFYQVJnQkdBQVlBUm9CR2dBWUFSd0JIQUFZQVNVQkpRQU1BU2NCSndBTUFTa0JLUUFNQVNzQkt3QUlBUzBCTFFBSUFTOEJMd0FJQVRFQk1RQUlBVE1CTXdBSUFUVUJOUUFJQVRjQk53QU9BVGtCT1FBUUFUb0JPZ0FaQVRzQk93QVFBVHdCUEFBUkFUMEJQUUFiQVQ0QlBnQVJBVDhCUHdBYkFVQUJRQUFSQVVFQlFRQWJBVTRCVGdBQ0FVOEJUd0FTQVdJQllnQU1BWGtCZVFBQ0FYc0Jld0FHQVh3QmZRQUhBWDRCZmdBRkFYOEJmd0FRQVlJQmdnQUNBWU1CZ3dBREFZUUJoQUFjQVlVQmhRQUNBWVlCaGdBR0FZY0Jod0FSQVlnQmlBQUhBWWtCaVFBRkFZb0JpZ0FIQVlzQml3QUpBWXdCakFBQ0FZMEJqZ0FIQVpBQmtBQUZBWklCa2dBTEFaUUJsQUFNQVpVQmxRQVFBWmNCbHdBUEFab0JtZ0FIQVpzQm13QVFBWjRCbmdBV0FhTUJvd0FaQWFjQnB3QVdBYTBCclFBWkFhOEJyd0FYQWJFQnNRQVRBYndCdkFBWEFjTUJ4QUFHQWNZQnhnQWNBY2tCeWdBSEFjc0J5d0FJQWN3QnpRQWRBYzhCendBSkFkRUIwUUFlQWRJQjBnQUhBZE1CMHdBQ0FkVUIxUUFEQWRZQjFnQWNBZGdCMkFBR0Fka0IyUUFQQWRzQjJ3QUhBZDBCM1FBSkFkNEI0QUFIQWVFQjRRQUZBZU1CNHdBTEFlUUI1QUFFQWVVQjVRQU1BZVlCNWdBZUFlZ0I2QUFQQWVrQjZRQUhBZXNCNndBSEFlMEI3UUFkQWU4Qjd3QWRBZk1COHdBU0FmWUI5Z0FmQWZnQitBQVZBZmtCK1FBYUFnRUNBUUFYQWdNQ0F3QVRBZ1FDQkFBVUFnWUNCZ0FaQWdjQ0J3QVRBZ2dDQ0FBYUFnMENEUUFnQWc4Q0R3QWdBaEFDRUFBVEFoTUNGQUFWQWhZQ0ZnQWZBaHdDSFFBZ0FpRUNJUUFaQWlVQ0pRQWRBaVlDSmdBZ0Fpa0NLUUFDQWpZQ05nQVhBamNDTndBTkFqZ0NPQUFaQWprQ09RQU5Bam9DT2dBWkFsRUNVUUFUQWxJQ1VnQWNBbE1DVXdBZkFsUUNWQUFjQWxnQ1dBQVBBbGtDV1FBYUFsd0NYQUFKQWw0Q1hnQUpBbUFDWUFBSkFtSUNZZ0FKQW1RQ1pBQUhBbXdDYkFBRUFtMENiUUFVQW00Q2JnQU1BbkFDY0FBUUFuRUNjUUFaQW5JQ2NnQVFBblFDZEFBUEFuVUNkUUFhQW4wQ2ZRQVdBb0lDZ2dBSEFvTUNnd0FQQW9RQ2hBQWFBb3NDaXdBSEFvOENqd0FIQXBFQ2tRQUhBcElDa2dBQ0FwTUNrd0FTQXBRQ2xBQUNBcFVDbFFBU0FwZ0NtQUFHQXBrQ21RQVZBcHNDbXdBVkFwMENuUUFWQXA0Q25nQVBBcDhDbndBYUFxZ0NxQUFGQXFrQ3FRQVhBcTBDclFBWEFxOENyd0FUQXJBQ3NBQWVBckVDc1FBWkFySUNzZ0FlQXJNQ3N3QVpBclFDdEFBZUFyVUN0UUFaQXJnQ3VBQWNBcmtDdVFBZkFyMEN2UUFmQXI0Q3ZnQVBBcjhDdndBYUF0WUMxZ0FDQXRjQzF3QVNBdVlDNWdBSEF1Y0M1d0FXQXZnQytBQU9Bdm9DK2dBT0F2d0MvQUFPQXdJREFnQUNBd01EQXdBU0F3UURCQUFDQXdVREJRQVNBd1lEQmdBQ0F3Y0RCd0FTQXdnRENBQUNBd2tEQ1FBU0F3b0RDZ0FDQXdzREN3QVNBd3dEREFBQ0F3MEREUUFTQXc0RERnQUNBdzhERHdBU0F4QURFQUFDQXhFREVRQVNBeElERWdBQ0F4TURFd0FTQXhRREZBQUNBeFVERlFBU0F4WURGZ0FDQXhjREZ3QVNBeGdER0FBQ0F4a0RHUUFTQXhvREdnQUdBeHNER3dBVkF4d0RIQUFHQXgwREhRQVZBeDRESGdBR0F4OERId0FWQXlBRElBQUdBeUVESVFBVkF5SURJZ0FHQXlNREl3QVZBeVFESkFBR0F5VURKUUFWQXlZREpnQUdBeWNESndBVkF5Z0RLQUFHQXlrREtRQVZBeW9ES2dBSEF5d0RMQUFIQXk0RExnQUZBeThETHdBWEF6QURNQUFGQXpFRE1RQVhBeklETWdBRkF6TURNd0FYQXpRRE5BQUZBelVETlFBWEF6WUROZ0FGQXpjRE53QVhBemdET0FBRkF6a0RPUUFYQXpvRE9nQUZBenNET3dBWEEwTURRd0FYQTBZRFJnQUlBMGdEU0FBSUExUURWQUFRQTFVRFZRQVpBMVlEVmdBUUExY0RWd0FaQTFnRFdBQVFBMWtEV1FBWkExb0RXZ0FRQTFzRFd3QVpBMXdEWEFBRkEzSURjZ0FCQTNZRGRnQUJBM29EZXdBQkJERUVNUUFFQkRNRU5BQUZBQUVBQmdRd0FBRUFBQUFBQUFBQUFBQUJBQUFBQUFBQUFBQUFGZ0FaQUJZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQWdBQUFBQUFBQUFDQUFBQUFBQUdnQUFBQUFBQUFBQUFBZ0FBQUFJQUFBQUd3QUpBQW9BQ3dBTUFCY0FEUUFZQUFBQUFBQUFBQUFBQUFBQUFBTUFBQUFFQUFRQUJBQUFBQVFBQUFBQUFBQUFBQUFBQUFVQUJRQUdBQVVBQkFBQUFBY0FBQUFPQUE4QUFBQWNBQThBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBSUFBZ0FDQUFJQUFnQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBZ0FDQUFJQUFnQUFBQUlBQW9BQ2dBS0FBb0FEUUFBQUFBQUF3QURBQU1BQXdBREFBTUFBQUFFQUFRQUJBQUVBQVFBQUFBQUFBQUFBQUFBQUFVQUJnQUdBQVlBQmdBR0FBQUFBQUFPQUE0QURnQU9BQThBQUFBUEFBSUFBd0FDQUFNQUFnQURBQWdBQkFBSUFBUUFDQUFFQUFnQUJBQUFBQVFBQUFBQUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFDQUFFQUFnQUJBQUlBQVFBQ0FBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBR2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQlFBQUFBVUFCUUFBQUFBQUNBQUdBQWdBQmdBSUFBWUFDQUFFQUFBQUFBQUFBQUFBQUFBQUFCc0FCd0FiQUFjQUd3QUhBQnNBQndBSkFBQUFDUUFBQUFBQUFBQUtBQTRBQ2dBT0FBb0FEZ0FLQUE0QUNnQU9BQW9BRGdBTUFBQUFEUUFQQUEwQUdBQVFBQmdBRUFBWUFCQUFBQUFBQUFBQUNBQUVBQUFBRGdBQUFBQUFBQUFBQUFBQUFnQURBQUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUd3QUhBQWtBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQ0FBTkFBQUFBQUFDQUFBQUFBQUNBQUFBR0FBQUFBZ0FBQUFBQUFJQUFBQUFBQUFBQ0FBQUFBQUFBQUFBQUEwQUFBQVhBQUFBQUFBQUFBMEFCQUFBQUFVQUFBQU9BQVFBQUFBUEFBQUFBQUFBQUFVQUFBQUFBQUFBQUFBQUFBOEFBQUFHQUFBQUFBQUVBQVFBQUFBT0FBQUFBQUFBQUFBQUFBQU9BQVlBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQWtBQUFBSUFBQUFBQUFBQUJvQUVRQUFBQWtBQUFBQUFCVUFBQUFDQUFBQUFBQUFBQUFBQUFBWEFBQUFBQUFBQUFBQUVRQUFBQUFBQ0FBQUFBQUFDQUFKQUJVQUFBQVhBQUFBRWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBQUFCUUFBQUFRQUhBQUFBQVVBQlFBRkFCTUFCUUFGQUFZQUJRQUZBQVFBQUFBUEFBUUFIQUFGQUJRQUJRQUZBQUFBQUFBRkFBQUFCUUFBQUFRQUJBQUFBQVVBQkFBSEFBQUFBQUFBQUJNQUJRQUFBQVVBQlFBUEFBQUFDQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFHQUFzQUR3QUxBQThBQ0FBRUFBZ0FBQUFJQUFRQUNBQUFBQWdBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCY0FIQUFBQUFBQUFBQUZBQUFBQUFBQUFBQUFDUUFBQUFBQUJRQUFBQVVBQUFBQUFBZ0FCQUFJQUFRQUNRQUFBQTBBRHdBTkFBQUFGd0FjQUFrQUFBQVNBQlFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRndBY0FBQUFBQUFSQUJNQUFBQUZBQUFBQlFBU0FCUUFBQUFGQUFBQUFnQURBQUlBQXdBQUFBQUFBQUFFQUFBQUJBQUFBQVFBRndBY0FBQUFBQUFBQUFBQUFBQUZBQUFBQlFBSUFBWUFDQUFFQUFnQUJnQUFBQUFBRlFBUEFCVUFEd0FWQUE4QUVnQVVBQUFBQlFBQUFBVUFBQUFGQUJjQUhBQUFBQUFBQUFBRUFBUUFCQUFBQUFBQUFBQUFBQkVBQUFBQUFBQUFDQUFFQUFBQUFBQUFBQUFBRVFBVEFBSUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQUFBd0FBQUFNQUFBQUFBQUFBQUFBQUFBQ0FBTUFBZ0FEQUFJQUF3QUNBQU1BQWdBREFBSUFBd0FDQUFNQUFnQURBQUlBQXdBQ0FBTUFBZ0FEQUFJQUF3QUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUFBQUFBQUFBQ0FBR0FBZ0FCZ0FJQUFZQUNBQUdBQWdBQmdBSUFBWUFDQUFHQUFnQUJBQUlBQVFBQ0FBRUFBZ0FCZ0FJQUFRQUNnQU9BQW9BRGdBQUFBNEFBQUFPQUFBQURnQUFBQTRBQUFBT0FBMEFEd0FOQUE4QURRQVBBQTBBRHdBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmtBR1FBWkFBQUFBUUFCQUJZQUFRQUJBQUVBRmdBQUFBQUFBQUFXQUJZQUFBQUFBQUVBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQWdBQUFBSUFBZ0FBQUFCQUFBQUNnSUdDQkFBQkVSR1RGUUFHbU41Y213QVNHZHlaV3NBZG14aGRHNEFwQUFFQUFBQUFQLy9BQklBQUFBS0FCUUFIZ0FvQURRQVFRQkxBRlVBWHdCcEFITUFmUUNIQUpFQW13Q2xBSzhBQkFBQUFBRC8vd0FTQUFFQUN3QVZBQjhBS1FBMUFFSUFUQUJXQUdBQWFnQjBBSDRBaUFDU0FKd0FwZ0N3QUFRQUFBQUEvLzhBRWdBQ0FBd0FGZ0FnQUNvQU5nQkRBRTBBVndCaEFHc0FkUUIvQUlrQWt3Q2RBS2NBc1FBb0FBWkJXa1VnQUZSRFVsUWdBSDVOVDB3Z0FLaE9RVllnQU5SU1QwMGdBUUJVVlZJZ0FTd0FBUC8vQUJNQUF3QU5BQmNBSVFBckFESUFOd0JFQUU0QVdBQmlBR3dBZGdDQUFJb0FsQUNlQUtnQXNnQUEvLzhBRWdBRUFBNEFHQUFpQUN3QU9BQkZBRThBV1FCakFHMEFkd0NCQUlzQWxRQ2ZBS2tBc3dBQS8vOEFFZ0FGQUE4QUdRQWpBQzBBT1FCR0FGQUFXZ0JrQUc0QWVBQ0NBSXdBbGdDZ0FLb0F0QUFBLy84QUV3QUdBQkFBR2dBa0FDNEFPZ0ErQUVjQVVRQmJBR1VBYndCNUFJTUFqUUNYQUtFQXF3QzFBQUQvL3dBVEFBY0FFUUFiQUNVQUx3QTdBRDhBU0FCU0FGd0FaZ0J3QUhvQWhBQ09BSmdBb2dDc0FMWUFBUC8vQUJNQUNBQVNBQndBSmdBd0FEd0FRQUJKQUZNQVhRQm5BSEVBZXdDRkFJOEFtUUNqQUswQXR3QUEvLzhBRXdBSkFCTUFIUUFuQURFQU13QTlBRW9BVkFCZUFHZ0FjZ0I4QUlZQWtBQ2FBS1FBcmdDNEFMbGpNbk5qQkZoak1uTmpCRjVqTW5OakJHUmpNbk5qQkdwak1uTmpCR3BqTW5OakJHcGpNbk5qQkdwak1uTmpCR3BqTW5OakJHcGpNbk5qQkdwalkyMXdCSEJqWTIxd0JIQmpZMjF3QkhCalkyMXdCSEJqWTIxd0JIQmpZMjF3QkhCalkyMXdCSEJqWTIxd0JIQmpZMjF3QkhCalkyMXdCSEJrYkdsbkJIaGtiR2xuQkg1a2JHbG5CSVJrYkdsbkJJcGtiR2xuQklwa2JHbG5CSXBrYkdsbkJJcGtiR2xuQklwa2JHbG5CSXBrYkdsbkJJcGtibTl0QkpCa2JtOXRCSlprYm05dEJKeGtibTl0QktKa2JtOXRCS0prYm05dEJLSmtibTl0QktKa2JtOXRCS0prYm05dEJLSmtibTl0QktKbWNtRmpCS2htY21GakJLaG1jbUZqQktobWNtRmpCS2htY21GakJLaG1jbUZqQktobWNtRmpCS2htY21GakJLaG1jbUZqQktobWNtRmpCS2hzYVdkaEJMSnNhV2RoQkxwc2JuVnRCTUJzYm5WdEJNWnNiblZ0Qk14c2JuVnRCTkpzYm5WdEJOSnNiblZ0Qk5Kc2JuVnRCTkpzYm5WdEJOSnNiblZ0Qk5Kc2JuVnRCTkpzYjJOc0JOaHNiMk5zQk41c2IyTnNCT1J1ZFcxeUJPcHVkVzF5QlBCdWRXMXlCUFp1ZFcxeUJQeHVkVzF5QlB4dWRXMXlCUHh1ZFcxeUJQeHVkVzF5QlB4dWRXMXlCUHh1ZFcxeUJQeHZiblZ0QlFKdmJuVnRCUWh2Ym5WdEJRNXZiblZ0QlJSdmJuVnRCUlJ2Ym5WdEJSUnZiblZ0QlJSdmJuVnRCUlJ2Ym5WdEJSUnZiblZ0QlJSd2JuVnRCUnB3Ym5WdEJTQndiblZ0QlNad2JuVnRCU3h3Ym5WdEJTeHdiblZ0QlN4d2JuVnRCU3h3Ym5WdEJTeHdiblZ0QlN4d2JuVnRCU3h6YldOd0JUSnpiV053QlRoemJXTndCVDV6YldOd0JVUnpiV053QlVSemJXTndCVVJ6YldOd0JVUnpiV053QlVSemJXTndCVVJ6YldOd0JVUnpjekF4QlVwemN6QXhCVkJ6Y3pBeEJWWnpjekF4QlZ4emN6QXhCVnh6Y3pBeEJWeHpjekF4QlZ4emN6QXhCVnh6Y3pBeEJWeHpjekF4QlZ4emN6QXlCV0p6Y3pBeUJXaHpjekF5Qlc1emN6QXlCWFJ6Y3pBeUJYUnpjekF5QlhSemN6QXlCWFJ6Y3pBeUJYUnpjekF5QlhSemN6QXlCWFJ6Y3pBekJYcHpjekF6QllCemN6QXpCWVp6Y3pBekJZeHpjekF6Qll4emN6QXpCWXh6Y3pBekJZeHpjekF6Qll4emN6QXpCWXh6Y3pBekJZeHpjekEwQlpKemN6QTBCWmh6Y3pBMEJaNXpjekEwQmFSemN6QTBCYVJ6Y3pBMEJhUnpjekEwQmFSemN6QTBCYVJ6Y3pBMEJhUnpjekEwQmFSemN6QTFCYXB6Y3pBMUJiQnpjekExQmJaemN6QTFCYnh6Y3pBMUJieHpjekExQmJ4emN6QTFCYnh6Y3pBMUJieHpjekExQmJ4emN6QTFCYnh6Y3pBMkJjSnpjekEyQmNoemN6QTJCYzV6Y3pBMkJkUnpjekEyQmRSemN6QTJCZFJ6Y3pBMkJkUnpjekEyQmRSemN6QTJCZFJ6Y3pBMkJkUnpjekEzQmRwemN6QTNCZUJ6Y3pBM0JlWnpjekEzQmV4emN6QTNCZXh6Y3pBM0JleHpjekEzQmV4emN6QTNCZXh6Y3pBM0JleHpjekEzQmV4MGJuVnRCZkowYm5WdEJmaDBiblZ0QmY1MGJuVnRCZ1IwYm5WdEJnUjBiblZ0QmdSMGJuVnRCZ1IwYm5WdEJnUjBiblZ0QmdSMGJuVnRCZ1FBQUFBQkFBRUFBQUFCQUFNQUFBQUJBQUlBQUFBQkFBQUFBQUFDQUFnQUNRQUFBQUVBRGdBQUFBRUFFQUFBQUFFQUR3QUFBQUVBRFFBQUFBRUFRd0FBQUFFQVJRQUFBQUVBUkFBQUFBRUFRZ0FBQUFNQVB3QkFBRUVBQUFBQ0FCRUFFZ0FBQUFFQUVnQUFBQUVBUEFBQUFBRUFQZ0FBQUFFQVBRQUFBQUVBT3dBQUFBRUFDZ0FBQUFFQURBQUFBQUVBQ3dBQUFBRUFSd0FBQUFFQVNRQUFBQUVBU0FBQUFBRUFSZ0FBQUFFQU1BQUFBQUVBTWdBQUFBRUFNUUFBQUFFQUx3QUFBQUVBT0FBQUFBRUFPZ0FBQUFFQU9RQUFBQUVBTndBQUFBRUFCUUFBQUFFQUJ3QUFBQUVBQmdBQUFBRUFCQUFBQUFFQUZBQUFBQUVBRmdBQUFBRUFGUUFBQUFFQUV3QUFBQUVBR0FBQUFBRUFHZ0FBQUFFQUdRQUFBQUVBRndBQUFBRUFIQUFBQUFFQUhnQUFBQUVBSFFBQUFBRUFHd0FBQUFFQUlBQUFBQUVBSWdBQUFBRUFJUUFBQUFFQUh3QUFBQUVBSkFBQUFBRUFKZ0FBQUFFQUpRQUFBQUVBSXdBQUFBRUFLQUFBQUFFQUtnQUFBQUVBS1FBQUFBRUFKd0FBQUFFQUxBQUFBQUVBTGdBQUFBRUFMUUFBQUFFQUt3QUFBQUVBTkFBQUFBRUFOZ0FBQUFFQU5RQUFBQUVBTXdCTEFKZ0FtQUNZQUpnRUpnUW1CQ1lFSmdjVUI4QU9VQTVRRG1ZT2lBNklEb2dPaUE2K0R1UVBFZzhTRHhJUEVnOG1EeVlQSmc4bUR6b1BPZzg2RHpvUFRnOU9EMDRQVGc5Z0QyQVBZQTlnRDNvUGVnOTZEM29QdkErOEQ3d1B2QS9hRDlvUDJnL2FEL2dQK0EvNEQvZ1FLaEFxRUNvUUtoQmNFRndRWEJCY0VJNFFvaER1RU13UXpCRE1FTXdRN2hEdUVPNFE3aEVhQUFFQUFBQUJBQWdBQWdIRUFOOER2UVBzQStzRDZnUHBBK2dENXdQbUErVUQ1QVBqQStJRDRRUGdBOThEM2dQZEE5d0Qyd1BhQTlrRDJBUFhBOVlEOWdQM0JLa0R2QU83QkZBRVVRUlNCRk1FVkFSVkJGY0VXQVJaQkZvRVd3UmNCRjBFWGdSZkJFNEVZQVJoQkdJRVl3UmtCR1VFWmdSdEJHNEVid1J3QkV3RWNRUnlCSE1FZEFSMUJIWUVkd1I0QkUwRWVRUjZCSHNFZkFSOUJINEVmd1NBQklFRWdnU0RCSVFFaFFTR0JJY0VpQVNKQklvRWl3U01CSTBFamdTUEJKQUVrUVNTQkpNRVJBU1VCSlVFbGdTWEJKZ0VtUVNhQkowRW5BUlBCSjRFbndTZ0JLRUVvZ1NqQktRRXBRU21CS2NFcUFQK0JGWUVtd1NxQktzRXJBU3RCSzRFcndTd0JMRUVzZ082QTdrRXN3UzBCTFVEdUFTMkJMY0R0d1M0QTdZRXVRUEdCTG9EMFFTN0JMd0QwZ1M5QTlNRDFBUytCTDhFd0FQNUJNRUQrQVRDQk1NRXhBVEZBLzhFQUFRQkJNWUV4d1FDQk1nRUF3VEpCTW9FQkFUTEJBVUVCZ1FIQk13RUNBUUpCTTBFemdUUEJOQUUwUVRTQk5NRUNnVGNCTlFFQ3dRTUJBMEVEZ1FQQkJBRUVRUVNCQk1FRkFRNEJCVUVGZ1RWQkJjRUdBUVpCTllFR2dUWEJOZ0VHd1FjQkIwRUhnUWZCQ0FFMlFRaEJDSUUyZ1FqQk5zRUpBUWxCQ2NFSmdBQkFOOEFDQUFsQUNZQUp3QW9BQ2tBS2dBckFDd0FMUUF1QUM4QU1BQXhBRElBTXdBMEFEVUFOZ0EzQURnQU9RQTZBRHNBUEFBOUFENEFaZ0JvQUlNQWhBQ0ZBSVlBaHdDSUFJb0Fpd0NNQUkwQWpnQ1BBSkFBa1FDU0FKTUFsQUNWQUpZQWx3Q1lBSmtBbkFDZEFKNEFud0NnQUtJQXd3REZBTWNBeVFETEFNMEF6d0RSQU5NQTFRRFhBTmtBMndEZEFOOEE0UURqQU9VQTV3RHJBTzBBN3dEeEFQTUE5d0Q1QVB3QS9nRUFBUUlCQmdFSUFRb0JEd0VSQVJNQkZRRVhBUmtCR3dFZEFSOEJJUUVqQVNVQkp3RXBBU3NCTFFFdkFURUJNd0UxQVRjQk9RRTdBVHdCUGdGQUFVNEJZZ0Y1QVhzQmZBRjlBWDRCZndHQUFZSUJnd0dFQVlVQmhnR0hBWWdCaVFHS0FZc0JqQUdOQVk4QmtBR1JBWklCa3dHVUFaVUJsZ0dYQVpnQm1RR2FBWnNCeEFIRkFjWUJ4d0hJQWNrQnlnSExBY3dCelFIT0FjOEIwUUhTQWRNQjFBSFZBZFlCMXdIWUFka0IyZ0hiQWR3QjNRSGVBZDhCNEFIaEFlSUI0d0hrQWVVQjVnSG5BZWdCNlFIcUFlc0I3QUh0QWU0Qjd3SHdBZkVCOGdKU0FsUUNXQUphQWx3Q1hnSmlBbVFDYWdKc0FuQUNjZ0owQW5ZQ2VnSjhBbjRDZ0FLYUFxSUNwQUtxQXJBRGh3T09BNU1EbGdBQkFBQUFBUUFJQUFJQmRBQzNBK3dENndQcUEra0Q2QVBuQStZRDVRUGtBK01ENGdQaEErQUQzd1BlQTkwRDNBUGJBOW9EMlFQWUE5Y0QxZ1AyQS9jRXFRUlFCRkVFVWdSVEJGUUVWUVJYQkZnRVdRUmFCRnNFWEFSZEJGNEVYd1JPQkdBRVlRUmlCR01FWkFSbEJHWUViUVJ1Qkc4RWNBU21CSEVFY2dSekJIUUVkUVIyQkhjRWVBUk5CSGtFZWdSN0JId0VmUVIrQkg4RWdBU0JCSUlFZ3dTRUJJVUVoZ1NIQklnRWlRU0tCSXNFakFTTkJJNEVqd1NRQkpFRWtnU1RCRVFFbEFTVkJKWUVsd1NZQkprRW1nU2RCSndFVHdTZUJKOEVvQVNoQktJRW93U2tCS1VFcHdTb0EvNEVWZ1NiQk1nRUF3VEpCTW9FQkFUTEJBVUVCZ1FIQk13RUNBUUpCTTBFemdUUEJOQUUwUVRTQk5NRUNnVGNCTlFFQ3dRTUJBMEVEZ1FQQkJBRUVRUVNCQk1FRkFUQUEva0V3UVA0Qk1JRXd3VEVCTVVEL3dRQUJBRUV4Z1RIQkFJRU9BUVZCQllFMVFRWEJCZ0VHUVRXQkJvRTF3VFlCQnNFSEFRZEJCNEVId1FnQk5rRUlRUWlCTm9FSXdUYkFBRUF0d0JGQUVZQVJ3QklBRWtBU2dCTEFFd0FUUUJPQUU4QVVBQlJBRklBVXdCVUFGVUFWZ0JYQUZnQVdRQmFBRnNBWEFCZEFGNEFvd0NrQUtVQXBnQ25BS2dBcWdDckFLd0FyUUN1QUs4QXNBQ3hBTElBc3dDMEFMVUF0Z0MzQUxnQXVRQzhBTDBBdmdDL0FNQUF3Z0RFQU1ZQXlBREtBTXdBemdEUUFOSUExQURXQU5nQTJnRGNBTjRBNEFEaUFPUUE1Z0RvQU93QTdnRHdBUElBOUFENEFQb0EvUUQvQVFFQkF3RUhBUWtCQ3dFUUFSSUJGQUVXQVJnQkdnRWNBUjRCSUFFaUFTUUJKZ0VvQVNvQkxBRXVBVEFCTWdFMEFUWUJPQUU2QVQwQlB3RkJBVThCWXdIekFmUUI5UUgyQWZjQitBSDVBZm9CK3dIOEFmMEIvZ0gvQWdBQ0FRSUNBZ01DQkFJRkFnWUNCd0lJQWdrQ0NnSUxBZ3dDRFFJT0FnOENFQUlSQWhJQ0ZBSVZBaFlDRndJWUFoa0NHZ0liQWh3Q0hRSWVBaDhDSVFJaUFsTUNWUUpaQWxzQ1hRSmZBbU1DWlFKckFtMENjUUp6QW5VQ2R3SjdBbjBDZndLQkFwc0Nvd0tsQXFzQ3NRQUdBQUFBQmdBU0FDb0FRZ0JhQUhJQWlnQURBQUFBQVFBU0FBRUFrQUFCQUFBQVNnQUJBQUVBVFFBREFBQUFBUUFTQUFFQWVBQUJBQUFBU2dBQkFBRUFUZ0FEQUFBQUFRQVNBQUVBWUFBQkFBQUFTZ0FCQUFFQThnQURBQUFBQVFBU0FBRUFTQUFCQUFBQVNnQUJBQUVDR1FBREFBQUFBUUFTQUFFQU1BQUJBQUFBU2dBQkFBRUNHd0FEQUFBQUFRQVNBQUVBR0FBQkFBQUFTZ0FCQUFFRExRQUNBQUVCY1FGMUFBQUFCQUFBQUFFQUNBQUJCaDRBTmdCeUFLUUFyZ0M0QU1vQS9BRU9BUmdCU2dGa0FYNEJrQUc2QWV3QjlnSVlBaklDUkFKMkFvZ0NvZ0xNQXQ0REVBTWFBeVFETmdOb0EzSURmQU9HQTZBRHVnUE1BL1lFS0FReUJGUUViZ1NBQkxJRXhBVGVCUWdGR2dVa0JTNEZPQVZDQld3RmxnWEFCZW9HRkFBR0FBNEFGQUFhQUNBQUpnQXNBSU1BQWdGeEFJUUFBZ0Z5QUlZQUFnRnpBd1FBQWdGMEFWUUFBZ0YxQXdJQUFnRjJBQUVBQkFMWUFBSUJkZ0FCQUFRQXlRQUNBWElBQWdBR0FBd0MyZ0FDQVhZQzNBQUNBNnNBQmdBT0FCUUFHZ0FnQUNZQUxBQ0xBQUlCY1FDTUFBSUJjZ01lQUFJQmN3TWNBQUlCZEFGV0FBSUJkUU1hQUFJQmRnQUNBQVlBREFGS0FBSUJjZ0RsQUFJRHF3QUJBQVFDM2dBQ0FYWUFCZ0FPQUJRQUdnQWdBQ1lBTEFDUEFBSUJjUUNRQUFJQmNnRHJBQUlCY3dNcUFBSUJkQUZZQUFJQmRRTXNBQUlCZGdBREFBZ0FEZ0FVQXVBQUFnRnlBdUlBQWdGMkFQa0FBZ09yQUFNQUNBQU9BQlFBL0FBQ0FYSUM1QUFDQVhZQS9nQUNBNnNBQWdBR0FBd0M1Z0FDQVhJQzZBQUNBWFlBQlFBTUFCSUFHQUFlQUNRQlRBQUNBWEVCQmdBQ0FYSUFsQUFDQVhNQzZnQUNBWFlCQ0FBQ0E2c0FCZ0FPQUJRQUdnQWdBQ1lBTEFDVkFBSUJjUUNXQUFJQmNnQ1lBQUlCY3dNd0FBSUJkQUZhQUFJQmRRTXVBQUlCZGdBQkFBUUM3QUFDQVhJQUJBQUtBQkFBRmdBY0FSY0FBZ0Z5QVZ3QUFnRjFBdTRBQWdGMkFSa0FBZ09yQUFNQUNBQU9BQlFCSFFBQ0FYSUM4QUFDQVhZQllBQUNBNnNBQWdBR0FBd0M4Z0FDQVhZQllnQUNBNnNBQmdBT0FCUUFHZ0FnQUNZQUxBQ2NBQUlCY1FDZEFBSUJjZ0VyQUFJQmN3TklBQUlCZEFGZUFBSUJkUU5HQUFJQmRnQUNBQVlBREFMMEFBSUJjd0wyQUFJQmRnQURBQWdBRGdBVUF2Z0FBZ0Z4QXZvQUFnRnlBdjRBQWdGMkFBVUFEQUFTQUJnQUhnQWtBMVFBQWdGeEFLQUFBZ0Z5QTFvQUFnRnpBMWdBQWdGMEExWUFBZ0YyQUFJQUJnQU1BVHdBQWdGeUF3QUFBZ0YyQUFZQURnQVVBQm9BSUFBbUFDd0Fvd0FDQVhFQXBBQUNBWElBcGdBQ0FYTURCUUFDQVhRQlZRQUNBWFVEQXdBQ0FYWUFBUUFFQXRrQUFnRjJBQUVBQkFES0FBSUJjZ0FDQUFZQURBTGJBQUlCZGdMZEFBSURxd0FHQUE0QUZBQWFBQ0FBSmdBc0FLc0FBZ0Z4QUt3QUFnRnlBeDhBQWdGekF4MEFBZ0YwQVZjQUFnRjFBeHNBQWdGMkFBRUFCQUZMQUFJQmNnQUJBQVFDM3dBQ0FYWUFBUUFFQXkwQUFnRjJBQU1BQ0FBT0FCUUM0UUFDQVhJQzR3QUNBWFlBK2dBQ0E2c0FBd0FJQUE0QUZBRDlBQUlCY2dMbEFBSUJkZ0QvQUFJRHF3QUNBQVlBREFMbkFBSUJjZ0xwQUFJQmRnQUZBQXdBRWdBWUFCNEFKQUZOQUFJQmNRRUhBQUlCY2dDMEFBSUJjd0xyQUFJQmRnRUpBQUlEcXdBR0FBNEFGQUFhQUNBQUpnQXNBTFVBQWdGeEFMWUFBZ0Z5QUxnQUFnRnpBekVBQWdGMEFWc0FBZ0YxQXk4QUFnRjJBQUVBQkFMdEFBSUJjZ0FFQUFvQUVBQVdBQndCR0FBQ0FYSUJYUUFDQVhVQzd3QUNBWFlCR2dBQ0E2c0FBd0FJQUE0QUZBRWVBQUlCY2dMeEFBSUJkZ0ZoQUFJRHF3QUNBQVlBREFMekFBSUJkZ0ZqQUFJRHF3QUdBQTRBRkFBYUFDQUFKZ0FzQUx3QUFnRnhBTDBBQWdGeUFTd0FBZ0Z6QTBrQUFnRjBBVjhBQWdGMUEwY0FBZ0YyQUFJQUJnQU1BdlVBQWdGekF2Y0FBZ0YyQUFNQUNBQU9BQlFDK1FBQ0FYRUMrd0FDQVhJQy93QUNBWFlBQlFBTUFCSUFHQUFlQUNRRFZRQUNBWEVBd0FBQ0FYSURXd0FDQVhNRFdRQUNBWFFEVndBQ0FYWUFBZ0FHQUF3QlBRQUNBWElEQVFBQ0FYWUFBUUFFQVZBQUFnRnlBQUVBQkFGU0FBSUJjZ0FCQUFRQlVRQUNBWElBQVFBRUFWTUFBZ0Z5QUFVQURBQVNBQmdBSGdBa0FLOEFBZ0Z4QUxBQUFnRnlBT3dBQWdGekF5c0FBZ0YwQVZrQUFnRjFBQVVBREFBU0FCZ0FIZ0FrQXo0QUFnRnhBendBQWdGeUEwSUFBZ0Z6QTBBQUFnRjBBMFFBQWdGMkFBVUFEQUFTQUJnQUhnQWtBejhBQWdGeEF6MEFBZ0Z5QTBNQUFnRnpBMEVBQWdGMEEwVUFBZ0YyQUFVQURBQVNBQmdBSGdBa0Ewd0FBZ0Z4QTBvQUFnRnlBMUFBQWdGekEwNEFBZ0YwQTFJQUFnRjJBQVVBREFBU0FCZ0FIZ0FrQTAwQUFnRnhBMHNBQWdGeUExRUFBZ0Z6QTA4QUFnRjBBMU1BQWdGMkFBRUFCQUhCQUFJQmNnQUNBQkVBSlFBcEFBQUFLd0F0QUFVQUx3QTBBQWdBTmdBN0FBNEFQUUErQUJRQVJRQkpBQllBU3dCTkFCc0FUd0JVQUI0QVZnQmJBQ1FBWFFCZUFDb0FpUUNKQUN3QW13Q2JBQzBBcVFDcEFDNEF1d0M3QUM4QTlBRDBBREFCUlFGSUFERUJ3QUhBQURVQUFRQUFBQUVBQ0FBQkFBWUFQd0FCQUFJQklRRWlBQUVBQUFBQkFBZ0FBZ0FPQUFRRTNRVGVCTjhFNEFBQkFBUUF4d0RJQU5zQTNBQUVBQUFBQVFBSUFBRUFKZ0FDQUFvQUhBQUNBQVlBREFPc0FBSUFTZ094QUFJQVdBQUJBQVFEc2dBQ0FGZ0FBUUFDQUVvQVZ3QUVBQUFBQVFBSUFBRUFSQUFDQUFvQUZBQUJBQVFEclFBQ0FFMEFBUUFFQTY4QUFnQk5BQVFBQUFBQkFBZ0FBUUFlQUFJQUNnQVVBQUVBQkFPdUFBSUFVQUFCQUFRRHNBQUNBRkFBQVFBQ0FFb0RyQUFCQUFBQUFRQUlBQUVBQmdONUFBRUFBUUJMQUFFQUFBQUJBQWdBQVFBR0FpSUFBUUFCQWFFQUFRQUFBQUVBQ0FBQkFBWURqQUFCQUFFQU5nQUJBQUFBQVFBSUFBSUFIQUFDQThFRHdBQUJBQUFBQVFBSUFBSUFDZ0FDQTc4RHZnQUJBQUlBTHdCUEFBRUFBQUFCQUFnQUFnQWVBQXdFTVFRekJESUVOQVExQkNnRUtRUXFBL3NFTEFRdEJDNEFBUUFNQUNjQUtBQXJBRE1BTlFCR0FFY0FTQUJMQUZNQVZBQlZBQUVBQUFBQkFBZ0FBZ0FNQUFNRUx3UXdCREFBQVFBREFFa0FTd1A3QUFFQUFBQUJBQWdBQWdCbUFBZ0VSZ1EyQkRjRU9RUTZCRUlFUXdSRkFBRUFBQUFCQUFnQUFnQVdBQWdBR3dBVkFCUUFIUUFaQUJnQUZ3QVdBQUVBQ0FQNkJDc0Vad1JvQkdrRWFnUnJCR3dBQVFBQUFBRUFDQUFDQUJZQUNBUm5CQ3NFYkFSckJHb0VhUVA2QkdnQUFRQUlBQlFBRlFBV0FCY0FHQUFaQUJzQUhRQUJBQUFBQVFBSUFBSUFGZ0FJQUJVQUZnQVhBQmdBR1FBYkFCMEFGQUFCQUFnRU5nUTNCRGtFT2dSQ0JFTUVSUVJHQUFFQUFBQUJBQWdBQVFBR0EzQUFBUUFCQUJNQUJnQUFBQUVBQ0FBREFBRUFFZ0FCQUdZQUFBQUJBQUFBU2dBQ0FBSURnd09EQUFBRHh3UFFBQUVBQVFBQUFBRUFDQUFDQUR3QUNnUFFBODhEemdQTkE4d0R5d1BLQThrRHlBUEhBQUVBQUFBQkFBZ0FBZ0FhQUFvRU93QjhBSFVBZGdROEJEMEVQZ1EvQkVBRVFRQUNBQUVBRkFBZEFBQUFBUUFBQUFFQUNBQUNBQ1lBRUFQUUE4OER6Z1BOQTh3RHl3UEtBOGtEeUFQSEJFa0VSd1JLQkVzRVNBVGhBQUVBRUFBVUFCVUFGZ0FYQUJnQUdRQWFBQnNBSEFBZEFFMEFUZ0R5QWhrQ0d3TXQiLAogICJSb2JvdG8tUmVndWxhci50dGYiOiAiQUFFQUFBQVNBUUFBQkFBZ1IwUkZSdFJYMUZrQUFnL3NBQUFDUkVkUVQxTktjdUN6QUFJU01BQUFVaVJIVTFWQ3c0YVpFUUFDWkZRQUFCZm9UMU12TXFDbnNhWUFBQUdvQUFBQVlHTnRZWEJBbWtsMkFBQWFmQUFBRXNoamRuUWdKRUVHNVFBQUw5d0FBQUJNWm5CbmJXZjBYS3NBQUMxRUFBQUJ2R2RoYzNBQUNBQVRBQUlQNEFBQUFBeG5iSGxtSE4yYkJRQUFPZkFBQWRNMmFHUnRlRGM0RVJjQUFCV1FBQUFFN0dobFlXVDRScXNPQUFBQkxBQUFBRFpvYUdWaENyb0tnZ0FBQVdRQUFBQWthRzEwZU9pRWlJZ0FBQUlJQUFBVGlHeHZZMkhneUdlcEFBQXdLQUFBQ2NadFlYaHdCeElDK1FBQUFZZ0FBQUFnYm1GdFpUVlRZMWtBQWcwb0FBQUNtSEJ2YzNUL2JRQmtBQUlQd0FBQUFDQndjbVZ3ZEtDUDdBQUFMd0FBQUFEYkFBRUFBQUFDQUFDRUtsbm9Ydzg4OVFBYkNBQUFBQUFBeFBBUkxnQUFBQURRMjA2YStodjkxUWt3Q0hNQUFBQUpBQUlBQUFBQUFBQUFBUUFBQjJ6K0RBQUFDVW42Ry81S0NUQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUJPSUFBUUFBQk9JQWp3QVdBRlFBQlFBQkFBQUFBQUFPQUFBQ0FBSVVBQVlBQVFBREJJVUJrQUFGQUFBRm1nVXpBQUFCSHdXYUJUTUFBQVBSQUdZQ0FBQUFBZ0FBQUFBQUFBQUFBT0FBQ3Y5UUFDRi9BQUFBSVFBQUFBQkhUMDlIQUVBQUFQLzlCZ0QrQUFCbUI1b0NBQ0FBQVo4QUFBQUFCRG9Gc0FBZ0FDQUFBZ09NQUdRQUFBQUFBQUFBQUFIN0FBQUIrd0FBQWc4QW9BS1BBSWdFN1FCM0JINEFiZ1hjQUdrRStRQmxBV1VBWndLOEFJVUN5QUFtQTNJQUhBU0pBRTRCa2dBZEFqVUFKUUliQUpBRFRBQVNCSDRBY3dSK0FLb0VmZ0JkQkg0QVhnUitBRFVFZmdDYUJINEFoQVIrQUUwRWZnQndCSDRBWkFId0FJWUJzUUFwQkJFQVNBUmtBSmdFTGdDR0E4Y0FTd2N2QUdvRk9BQWNCUHNBcVFVMUFIY0ZQd0NwQkl3QXFRUnNBS2tGY3dCNkJiUUFxUUl0QUxjRWFnQTFCUVFBcVFST0FLa0cvQUNwQmJRQXFRV0FBSFlGREFDcEJZQUFiUVR0QUtnRXZ3QlFCTVlBTVFVd0FJd0ZGd0FjQnhrQVBRVUVBRGtFemdBUEJNb0FWZ0lmQUpJRFNBQW9BaDhBQ1FOWUFFQURuQUFFQW5rQU9RUmFBRzBFZlFDTUJEQUFYQVNEQUY4RVBRQmRBc2NBUEFSOUFHQUVhQUNNQWZFQWpRSHAvNzhFRGdDTkFmRUFuQWNEQUlzRWFnQ01CSkFBV3dSOUFJd0VqQUJmQXJVQWpBUWdBRjhDblFBSkJHa0FpQVBnQUNFR0F3QXJBL2NBS1FQSkFCWUQ5d0JZQXJVQVFBSHpBSzhDdFFBVEJYRUFnd0h6QUlzRVlBQnBCS1lBV3dXMEFHa0UyQUFmQWVzQWt3VG9BRm9EV0FCbUJra0FXd09UQUpNRHdRQm1CRzRBZndaS0FGb0RxZ0I0QXYwQWdnUkdBR0VDN3dCQ0F1OEFQZ0tDQUhzRWlBQ2FBK2tBUXdJV0FKTUIrd0IwQXU4QWVnT2pBSG9Ed0FCbUJkd0FWUVkxQUZBR09RQnZBOGtBUkFkNi8vSUVSQUJaQllBQWRnUzZBS1lFd2dDTEJzRUFUZ1N3QUg0RWtRQkhCSWdBV3dTY0FKVUZtZ0FkQWZvQW13UnpBSm9FVHdBaUFpa0FJZ1dMQUtJRWlBQ1JCNkVBYUFkRUFHRUIvQUNnQlljQVhRSzUvK1FGZmdCbEJKSUFXd1dRQUl3RTh3Q0lBZ1AvdEFRM0FHSUR4QUNwQTQwQWpBT3JBSGdEYWdDQkFmRUFqUUt0QUhrQ0tnQXlBOFlBZXdMOEFGNENXZ0IrQUFEOHB3QUEvVzhBQVB5TEFBRDlYZ0FBL0NjQjcvMDRBZzBBdHdRTEFIRUNGd0NUQkhNQXNRV2tBQjhGY1FCbkJUNEFNZ1NSQUhnRnRRQ3lCSkVBUlFXN0FFMEZpUUJhQlZJQWNRU0ZBR1FFdlFDZ0JBSUFMZ1NJQUdBRVVBQmpCQ1VBYlFTSUFKRUVqZ0I2QXBjQXd3UnVBQ1VEN0FCbEJNUUFLUVNJQUpFRVRRQmxCSWdBWUFRc0FGRUVYUUNQQmFNQVZ3V2FBRjhHbHdCNkJLRUFlUVJDLzlvR1NBQktCZjhBS2dWa0FIc0lrUUF4Q0tRQXNRYUNBRDRGdEFDd0JRc0FvZ1lFQURJSFF3QWJCTDhBVUFXMEFMRUZxUUF2QlFjQVRRWXNBRk1GMlFDdkJYb0FsZ2VIQUxBSHdBQ3dCaElBRUFickFMSUZCUUNqQldRQWt3Y25BTGNGR0FCWkJHd0FZUVNTQUowRFd3Q2FCTlFBTGdZZ0FCVUVFQUJZQko0QW5BUlNBSndFb0FBc0JlOEFuUVNkQUp3RW5nQ2NBOWdBS0FYTkFHUUV2UUNjQkZrQVp3WjRBSndHbmdDUkJQY0FIZ1kyQUowRVdBQ2RCRTBBWkFhSEFKMEVaQUF2QkdqLzZBUk5BR2NHeVFBbkJ1UUFuQVNKLy8wRW5nQ2NCd2dBbkFZckFJRUVWdi9jQnlzQXR3WDRBSmtFMGdBb0JFWUFEd2NMQU1rR0N3QzhCdEVBa3dYaEFKWUpCQUMyQjlFQW13UWpBRkFEMndCTUJYRUFad1NMQUZzRkNnQVdCQU1BTGdWeEFHY0VpQUJiQndFQW5BWWtBSDRIQ0FDY0Jpc0FnUVV5QUhVRVJ3QmtCUDBBZEFBQS9HY0FBUHh4QUFEOVpnQUEvYVFBQVBvYkFBRDZMQVJXLzl3Rkd3Q29CSWtBakFSakFLSURrQUNSQk5zQXNRUUZBSkVGQ1FDakJINEFtZ2FNQUVRRmd3QStCODhBcUFXMEFKRUlNUUN3QnZRQWtRWHVBSEVFMHdCdEJ5d0FOQVZjQUI4RmJ3Q1dCR29BZ3dWd0FJb0dMd0EvQkwzLzNnVUpBS01FV2dDYUJiSUFzUVNJQUpFRmh3QmRCS2dBYUFTb0FHa0V0d0E2QTBrQU93VDJBRmNHbEFCWkJ1UUFaQVpXQURZRkt3QXhCRWtBVWdRSEFIa0h3UUJFQm5VQVB3ZjdBS2tHb1FDUUJQWUFkZ1FkQUdVRnJRQWpCU0FBUmdWa0FKWURJQUJ2QkJRQUFBZ3BBQUFFRkFBQUNDa0FBQUs1QUFBQ0NnQUFBVndBQUFSL0FBQUNNQUFBQWFJQUFBRFJBQUFBQUFBQUFqUUFKUUkwQUNVRlFBQ2lCajhBa0FPbUFBMEJtUUJnQVprQU1BR1hBQ1FCbVFCUEF0UUFhQUxiQUR3Q3dRQWtCR2tBUmdTUEFGY0NzZ0NLQThRQWxBVmFBSlFBOWdBbUI2b0FSQUptQUd3Q1pnQlpBNk1BT3dMdkFEWURZQUI2QktZQVd3WlZBQjhHa0FDbkNIWUFxQWRqQURrR0t3Q01CSDRBWHdYYUFCOEVJZ0FxQkhRQUlBVklBRjBGVHdBZkJlY0FlZ1BPQUdnSU9nQ2lCUUVBWndVWEFKZ0dKZ0JVQnRjQVpBYlBBR01HYWdCWkJJOEFhZ1dPQUtrRXJ3QkZCSklBcUFURkFEOElPZ0JpQWd6L3NBU0NBR1VFWkFDWUJCRUFQZ1F2QUlVRUNBQXJBa3dBdFFLUEFHNENBd0JjQlBNQVBBUnVBQjhFaXdBOEJ0UUFQQWJVQUR3RTdnQThCcHNBWHdBQUFBQUlNd0JiQ0RVQVhBUWdBRHNFbmdCYUFmei90Z0dSQUdjRHBBQ0RBNTRBZ1FPZkFJRUQ5QUJwQkE0QWFRUHovMTREN3dCdUE2UUFnUUg5QUo4RWhRQVRCRkFBaWdSOEFHQUVnQUNLQStZQWlnUExBSW9FckFCakJPTUFpZ0hvQUpjRHp3QXJCRlFBaWdPMEFJb0dBZ0NLQk9NQWlnUzdBR0FFWEFDS0JMc0FXUVJLQUlvRUlBQkRCQ1lBS0FSOEFIUUVad0FVQmhVQU1RUlVBQ1lFS3dBTkJDTUFSd0x2QUZBQzd3QjZBdThBUWdMdkFENEM3d0EyQXU4QVd3THZBRllDN3dBNkF1OEFUd0x2QUVrRGxnQ1BBclVBbmdRNkFCNEV3d0JrQlV3QXNRVWtBTElFRXdDU0JUMEFzZ1FQQUpJRUlBQkRCRE1BTUFROEFCWURyd0NLQkdjQUZBUzdBR0FFWndBVUE0a0FQZ1RPQUlvRDd3QS9CV2NBWUFVWEFHQUU4Z0IxQlhJQUpnUjhBR0FIUVFBbkIwOEFpZ1YwQUNnRXpRQ0tCRmtBaWdVa0FDNEdDd0FmQkQ4QVJ3VHNBSW9FVGdDTEJNRUFKd1FmQUNJRktBQ0tCR29BUFFaUkFJb0dyQUNLQlIwQUNBWHhBSW9FVGdDS0JIc0FTd1oyQUlvRWh3QlFCQkVBQ3daSEFCOEVlUUNMQlFrQWl3VTNBQ01Gd2dCZ0JGOEFEUVNvQUNZR1lRQW1CR29BUFFScUFJb0Z3d0FDQk1vQVhnUS9BRWNFdXdCZ0JETUFNQVBqQUVJSUlnQ0tCS3NBS0FSOUFJd0VNZ0JjQkpNQVd3U01BRnNEZVFCWEJJMEFqQVNjQUZzRVBRQmRCSDBBWUFXQkFINEZyZ0IrQlpNQXNnWGdBSDRGNHdCK0E5VUFvQVNDQUlNRHJ3Q0tCRmdBRHdUUEFENEM3d0JRQXU4QU5nTHZBRnNDN3dCV0F1OEFPZ0x2QUU4Qzd3QkpCR3NBWlFRdUFFb0dwQUJnQkxrQWdnVUFBSGdDQnYrMEFnVC90QUg3QUpzQisvLzZBZnNBbXdIN0FJWUVVQUNLQWZzQUFBSTFBQ1VGWFFBbEJWMEFKUVNHQUFBRXhnQXhBcDMvOUFVNEFCd0ZPQUFjQlRnQUhBVTRBQndGT0FBY0JUZ0FIQVU0QUJ3Rk5RQjNCSXdBcVFTTUFLa0VqQUNwQkl3QXFRSXQvK0FDTFFDd0FpMy82UUl0LzlZRnRBQ3BCWUFBZGdXQUFIWUZnQUIyQllBQWRnV0FBSFlGTUFDTUJUQUFqQVV3QUl3Rk1BQ01CTTRBRHdSYUFHMEVXZ0J0QkZvQWJRUmFBRzBFV2dCdEJGb0FiUVJhQUcwRU1BQmNCRDBBWFFROUFGMEVQUUJkQkQwQVhRSDYvOFlCK2dDV0Fmci96d0g2Lzd3RWFnQ01CSkFBV3dTUUFGc0VrQUJiQkpBQVd3U1FBRnNFYVFDSUJHa0FpQVJwQUlnRWFRQ0lBOGtBRmdQSkFCWUZPQUFjQkZvQWJRVTRBQndFV2dCdEJUZ0FIQVJhQUcwRk5RQjNCREFBWEFVMUFIY0VNQUJjQlRVQWR3UXdBRndGTlFCM0JEQUFYQVUvQUtrRkdRQmZCSXdBcVFROUFGMEVqQUNwQkQwQVhRU01BS2tFUFFCZEJJd0FxUVE5QUYwRWpBQ3BCRDBBWFFWekFIb0VmUUJnQlhNQWVnUjlBR0FGY3dCNkJIMEFZQVZ6QUhvRWZRQmdCYlFBcVFSb0FJd0NMZiszQWZyL25RSXQvN1lCK3YrY0FpMy83QUg2LzlJQ0xRQVlBZkgvK3dJdEFLb0dsd0MzQTlvQWpRUnFBRFVDQS8rMEJRUUFxUVFPQUkwRVRnQ2hBZkVBa3dST0FLa0I4UUJYQkU0QXFRS0hBSndFVGdDcEFzMEFuQVcwQUtrRWFnQ01CYlFBcVFScUFJd0Z0QUNwQkdvQWpBUnEvN3dGZ0FCMkJKQUFXd1dBQUhZRWtBQmJCWUFBZGdTUUFGc0U3UUNvQXJVQWpBVHRBS2dDdFFCVEJPMEFxQUsxQUdNRXZ3QlFCQ0FBWHdTL0FGQUVJQUJmQkw4QVVBUWdBRjhFdndCUUJDQUFYd1MvQUZBRUlBQmZCTVlBTVFLZEFBa0V4Z0F4QXAwQUNRVEdBREVDeFFBSkJUQUFqQVJwQUlnRk1BQ01CR2tBaUFVd0FJd0VhUUNJQlRBQWpBUnBBSWdGTUFDTUJHa0FpQVV3QUl3RWFRQ0lCeGtBUFFZREFDc0V6Z0FQQThrQUZnVE9BQThFeWdCV0EvY0FXQVRLQUZZRDl3QllCTW9BVmdQM0FGZ0hldi95QnNFQVRnV0FBSFlFaUFCYkJJRC92Z1NBLzc0RUpnQW9CSVVBRXdTRkFCTUVoUUFUQklVQUV3U0ZBQk1FaFFBVEJJVUFFd1I4QUdBRDVnQ0tBK1lBaWdQbUFJb0Q1Z0NLQWVqL3ZnSG9BSTRCNlAvSEFlai90QVRqQUlvRXV3QmdCTHNBWUFTN0FHQUV1d0JnQkxzQVlBUjhBSFFFZkFCMEJId0FkQVI4QUhRRUt3QU5CSVVBRXdTRkFCTUVoUUFUQkh3QVlBUjhBR0FFZkFCZ0JId0FZQVNBQUlvRDVnQ0tBK1lBaWdQbUFJb0Q1Z0NLQStZQWlnU3NBR01FckFCakJLd0FZd1NzQUdNRTR3Q0tBZWovbFFIby81UUI2UC9LQWVnQUJnSG9BSWtEendBckJGUUFpZ08wQUlJRHRBQ0tBN1FBaWdPMEFJb0U0d0NLQk9NQWlnVGpBSW9FdXdCZ0JMc0FZQVM3QUdBRVNnQ0tCRW9BaWdSS0FJb0VJQUJEQkNBQVF3UWdBRU1FSUFCREJDWUFLQVFtQUNnRUpnQW9CSHdBZEFSOEFIUUVmQUIwQkh3QWRBUjhBSFFFZkFCMEJoVUFNUVFyQUEwRUt3QU5CQ01BUndRakFFY0VJd0JIQlRnQUhBVHcvL0FHR1AvK0FwRUFCQVdVLy9vRk12OTRCV2IvL1FLWC81c0ZPQUFjQlBzQXFRU01BS2tFeWdCV0JiUUFxUUl0QUxjRkJBQ3BCdndBcVFXMEFLa0ZnQUIyQlF3QXFRVEdBREVFemdBUEJRUUFPUUl0LzlZRXpnQVBCSVVBWkFSUUFHTUVpQUNSQXBjQXd3UmRBSThFY3dDYUJKQUFXd1NJQUpvRDRBQWhBL2NBS1FLWC8rWUVYUUNQQkpBQVd3UmRBSThHbHdCNkJJd0FxUVJ6QUxFRXZ3QlFBaTBBdHdJdC85WUVhZ0ExQlNRQXNnVUVBS2tGQndCTkJUZ0FIQVQ3QUtrRWN3Q3hCSXdBcVFXMEFMRUcvQUNwQmJRQXFRV0FBSFlGdFFDeUJRd0FxUVUxQUhjRXhnQXhCUVFBT1FSYUFHMEVQUUJkQko0QW5BU1FBRnNFZlFDTUJEQUFYQVBKQUJZRDl3QXBCRDBBWFFOYkFKb0VJQUJmQWZFQWpRSDYvN3dCNmYrL0JGSUFuQVBKQUJZSEdRQTlCZ01BS3djWkFEMEdBd0FyQnhrQVBRWURBQ3NFemdBUEE4a0FGZ0ZsQUdjQ2p3Q0lCQjRBb0FJRC83UUJtUUF3QnZ3QXFRY0RBSXNGT0FBY0JGb0FiUVNNQUtrRnRBQ3hCRDBBWFFTZUFKd0ZpUUJhQlpvQVh3VUtBQllFQS8vN0NGa0FXd2xKQUhZRXZ3QlFCQkFBV0FVMUFIY0VNQUJjQk00QUR3UUNBQzRDTFFDM0IwTUFHd1lnQUJVQ0xRQzNCVGdBSEFSYUFHMEZPQUFjQkZvQWJRZDYvL0lHd1FCT0JJd0FxUVE5QUYwRmh3QmRCRGNBWWdRM0FHSUhRd0FiQmlBQUZRUy9BRkFFRUFCWUJiUUFzUVNlQUp3RnRBQ3hCSjRBbkFXQUFIWUVrQUJiQlhFQVp3U0xBRnNGY1FCbkJJc0FXd1ZrQUpNRVRRQmtCUWNBVFFQSkFCWUZCd0JOQThrQUZnVUhBRTBEeVFBV0JYb0FsZ1JaQUdjRzZ3Q3lCallBblFVRUFEa0Q5d0FwQklNQVh3V3BBQzhFb0FBc0JUZ0FIQVJhQUcwRk9BQWNCRm9BYlFVNEFCd0VXZ0J0QlRnQUhBUmEvOG9GT0FBY0JGb0FiUVU0QUJ3RVdnQnRCVGdBSEFSYUFHMEZPQUFjQkZvQWJRVTRBQndFV2dCdEJUZ0FIQVJhQUcwRk9BQWNCRm9BYlFVNEFCd0VXZ0J0Qkl3QXFRUTlBRjBFakFDcEJEMEFYUVNNQUtrRVBRQmRCSXdBcVFROUFGMEVqUC93QkQzL3VnU01BS2tFUFFCZEJJd0FxUVE5QUYwRWpBQ3BCRDBBWFFJdEFMY0IrZ0NiQWkwQW93SHhBSVVGZ0FCMkJKQUFXd1dBQUhZRWtBQmJCWUFBZGdTUUFGc0ZnQUJIQkpEL3hBV0FBSFlFa0FCYkJZQUFkZ1NRQUZzRmdBQjJCSkFBV3dWK0FHVUVrZ0JiQlg0QVpRU1NBRnNGZmdCbEJKSUFXd1YrQUdVRWtnQmJCWDRBWlFTU0FGc0ZNQUNNQkdrQWlBVXdBSXdFYVFDSUJaQUFqQVR6QUlnRmtBQ01CUE1BaUFXUUFJd0U4d0NJQlpBQWpBVHpBSWdGa0FDTUJQTUFpQVRPQUE4RHlRQVdCTTRBRHdQSkFCWUV6Z0FQQThrQUZnU2hBRjhFb1FCZkJTUUFzZ1JTQUp3RnRBQ3BCSjBBbkFUR0FERUQyQUFvQlFRQU9RUDNBQ2tGZWdDV0JGa0Fad1Y2QUpZRVdRQm5CSE1Bc1FOYkFKb0hRd0FiQmlBQUZRWXZBRDhFdmYvZUJHZ0FqQVVGLzlRRkJmL1VCSE1BQXdOYi8vd0ZPQUFMQkNmLzB3VzBBTEVFbmdDY0JiUUFxUVNkQUp3Ry9BQ3BCZThBblFXcEFDOEVvQUFzQk00QUR3UUNBQzRGQkFBNUEvY0FLUVJRQUdNRWJBQVNCajhBa0FSK0FGMEVmZ0JlQkg0QU5RUitBSm9Fa2dCa0JLWUFod1Z6QUhvRWZRQmdCYlFBcVFScUFJd0ZPQUFjQkZvQU9RU01BRjhFUFFBcEFpMy9DZ0g2L3ZBRmdBQjJCSkFBTXdUdEFGVUN0ZitMQlRBQWpBUnBBQ3NFcHY4NkJQc0FxUVI5QUl3RlB3Q3BCSU1BWHdVL0FLa0Vnd0JmQmJRQXFRUm9BSXdGQkFDcEJBNEFqUVVFQUtrRURnQ05CRTRBcVFIeEFJWUcvQUNwQndNQWl3VzBBS2tFYWdDTUJRd0FxUVI5QUl3RTdRQ29BclVBZ2dTL0FGQUVJQUJmQk1ZQU1RS2RBQWtGRndBY0ErQUFJUVVYQUJ3RDRBQWhCeGtBUFFZREFDc0V5Z0JXQS9jQVdBWEcvbmdFaFFBVEJDTC9ud1VmLzd3Q0pQL0FCTVgvM3dSbi8xY0UvUC80QklVQUV3UlFBSW9ENWdDS0JDTUFSd1RqQUlvQjZBQ1hCRlFBaWdZQ0FJb0V1d0JnQkZ3QWlnUW1BQ2dFS3dBTkJGUUFKZ0hvLzdRRUt3QU5BK1lBaWdPdkFJb0VJQUJEQWVnQWx3SG8vN1FEendBckJGUUFpZ1FmQUNJRWhRQVRCRkFBaWdPdkFJb0Q1Z0NLQk93QWlnWUNBSW9FNHdDS0JMc0FZQVRPQUlvRVhBQ0tCSHdBWUFRbUFDZ0VWQUFtQkQ4QVJ3VGpBSW9FZkFCZ0JDc0FEUVhEQUFJRTdBQ0tCQjhBSWdWbkFHQUZPQUFjQkZvQWJRU01BS2tFUFFCZEFBQUFBUUFBQk9RSkNnUUFBQUlDQWdNR0JRY0dBZ01EQkFVQ0FnSUVCUVVGQlFVRkJRVUZCUUlDQlFVRkJBZ0dCZ1lHQlFVR0JnSUZCZ1VJQmdZR0JnWUZCUVlHQ0FZRkJRSUVBZ1FFQXdVRkJRVUZBd1VGQWdJRkFnZ0ZCUVVGQXdVREJRUUhCQVFFQXdJREJnSUZCUVlGQWdZRUJ3UUVCUWNFQXdVREF3TUZCQUlDQXdRRUJ3Y0hCQWdGQmdVRkNBVUZCUVVHQWdVRkFnWUZDUWdDQmdNR0JRWUdBZ1VFQkFRRUFnTUNCQU1EQUFBQUFBQUNBZ1VDQlFZR0JnVUdCUVlHQmdVRkJRVUZCUVVGQXdVRUJRVUZCUVVGQmdZSEJRVUhCd1lLQ2djR0JnY0lCUVlHQmdjSEJnZ0pCd2dHQmdnR0JRVUVCUWNGQlFVRkJ3VUZCQWNGQlFjSEJnY0ZCUWNGQlFVSUNBVUZDQWNGQ0FjRkJRZ0hDQWNLQ1FVRUJnVUdCUVlGQ0FjSUJ3WUZCZ0FBQUFBQUFBVUdCUVVFQlFVR0JRY0dDUVlKQ0FjRkNBWUdCUVlIQlFZRkJnVUdCUVVGQkFZSENBY0dCUVVKQndrSEJnVUdCZ1lFQlFrRkNRTUNBZ1VDQWdFQUFnSUdCd1FDQWdJQ0F3TURCUVVEQkFZQkNRTURCQU1FQlFjSENnZ0hCUWNGQlFZR0J3UUpCZ1lIQ0FnSEJRWUZCUVVKQWdVRkJRVUZBd01DQmdVRkNBZ0dCd0FKQ1FVRkFnSUVCQVFFQlFRRUJBSUZCUVVGQkFRRkJnSUVCUVFIQmdVRkJRVUZCUVVGQndVRkJRTURBd01EQXdNREF3TUVBd1VGQmdZRkJnVUZCUVVFQlFVRkJBVUVCZ1lHQmdVSUNBWUZCUVlIQlFZRkJRVUdCUWNJQmdjRkJRY0ZCUWNGQmdZR0JRVUhCUVVHQlFVRkJRUUpCUVVGQlFVRUJRVUZCUVlHQmdjSEJBVUVCUVVEQXdNREF3TURCUVVIQlFZQ0FnSUNBZ0lGQWdJR0JnVUZBd1lHQmdZR0JnWUdCUVVGQlFJQ0FnSUdCZ1lHQmdZR0JnWUdCUVVGQlFVRkJRVUZCUVVGQlFJQ0FnSUZCUVVGQlFVRkJRVUZCQVFHQlFZRkJnVUdCUVlGQmdVR0JRWUdCUVVGQlFVRkJRVUZCUVlGQmdVR0JRWUZCZ1VDQWdJQ0FnSUNBZ0lIQkFVQ0JnVUZBZ1VDQlFNRkF3WUZCZ1VHQlFVR0JRWUZCZ1VHQXdZREJnTUZCUVVGQlFVRkJRVUZCUU1GQXdVREJnVUdCUVlGQmdVR0JRWUZDQWNGQkFVRkJBVUVCUVFJQ0FZRkJRVUZCUVVGQlFVRkJRVUVCQVFFQWdJQ0FnWUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUVCQVFFQkFVRkJRVUdBZ0lDQWdJRUJRUUVCQVFHQmdZRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJ3VUZCUVVGQmdZSEF3WUdCZ01HQmdVRkJnSUdDQVlHQmdVRkJnSUZCUVVGQXdVRkJRVUVCQU1GQlFVSEJRVUZBZ0lGQmdZR0JnWUZCUVlJQmdZR0JnWUZCZ1VGQlFVRkJRUUVCUVFGQWdJQ0JRUUlCd2dIQ0FjRkJBSURCUUlDQ0FnR0JRVUdCUVVHQmdZRkNRb0ZCUVlGQlFVQ0NBY0NCZ1VHQlFnSUJRVUdCUVVJQndVRkJnVUdCUVlGQmdVR0JRWUZCZ1FHQkFZRUJnVUlCd1lFQlFZRkJnVUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnVUdCUVlGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUUlDQWdJR0JRWUZCZ1VHQlFZRkJnVUdCUVlGQmdVR0JRWUZCZ1VHQlFZRkJnWUdCZ1lHQmdZR0JnVUVCUVFGQkFVRkJnVUdCUVVFQmdRR0JRWUZCUVFJQndjRkJRWUdCUVFHQlFZRkJnVUlCd1lGQlFVR0JBVUZCd1VGQlFVRkJRWUZCZ1VHQlFVRkFnSUdCUVlEQmdVRkJnVUdCUVlGQmdVR0JRWUZCUUlJQ0FZRkJnVUdBd1VGQlFNR0JBWUVDQWNGQkFjRkJRWUNCUVVHQlFVRUJRWUNCUWNGQlFVRkJRSUZCQVFGQWdJRUJRVUZCUVFFQmdjR0JRVUZCUVVGQlFZRkJRWUdCUVlHQlFVRkFBQUFBd0FBQUFNQUFBQWNBQU1BQVFBQUFCd0FBd0FLQUFBR2lBQUVCbXdBQUFEcUFJQUFCZ0JxQUFBQUFnQU5BSDRBb0FDc0FLMEF2d0RHQU04QTVnRHZBUDRCRHdFUkFTVUJKd0V3QVZNQlh3Rm5BWDRCZndHUEFaSUJvUUd3QWZBQi93SWJBamNDV1FLOEFzY0N5UUxkQXZNREFRTURBd2tERHdNakE0b0RqQU9TQTZFRHNBTzVBOGtEemdQU0E5WUVKUVF2QkVVRVR3UmlCRzhFZVFTR0JNNEUxd1RoQlBVRkFRVVFCUk1lQVI0L0hvVWU4Ujd6SHZrZlRTQUxJQkVnRlNBZUlDSWdKeUF3SURNZ09pQThJRVFnZENCL0lLUWdxaUNzSUxFZ3VpQzlJUVVoRXlFV0lTSWhKaUV1SVY0aUFpSUdJZzhpRWlJYUloNGlLeUpJSW1BaVpTWEs3Z0wydy9zRS92Ly8vZi8vQUFBQUFBQUNBQTBBSUFDZ0FLRUFyUUN1QU1BQXh3RFFBT2NBOEFEL0FSQUJFZ0VtQVNnQk1RRlVBV0FCYUFGL0FZOEJrZ0dnQWE4QjhBSDZBaGdDTndKWkFyd0N4Z0xKQXRnQzh3TUFBd01EQ1FNUEF5TURoQU9NQTQ0RGt3T2pBN0VEdWdQS0E5RUQxZ1FBQkNZRU1BUkdCRkFFWXdSd0JIb0VpQVRQQk5nRTRnVDJCUUlGRVI0QUhqNGVnQjZnSHZJZTlCOU5JQUFnRUNBVElCY2dJQ0FsSURBZ01pQTVJRHdnUkNCMElIOGdveUNtSUtzZ3NTQzVJTHdoQlNFVElSWWhJaUVtSVM0aFd5SUNJZ1lpRHlJUklob2lIaUlySWtnaVlDSmtKY3J1QWZiRCt3SCsvLy84Ly84QUFRQUEvL2IvNUFHbC84SUJtZi9CQUFBQmpBQUFBWWNBQUFHREFBQUJnUUFBQVg4QUFBRjNBQUFCZWY4Vi93Yi9CUDczL3VvQnV3QUFBQUQrWlA1REFQRDkxLzNXL2NqOXMvMm4vYWI5b2YyYy9Za0FBUC9MLzhvQUFBQUEvUWtBQVArci9QMzgrZ0FBL0xrQUFQeXhBQUQ4cGdBQS9LQUFBUDcxQUFEKzhnQUEvRWtBQU9XdjVXL2xJT1ZQNUxUbFRlVmQ0VnZoVndBQTRWVGhVK0ZSNFVuamR1RkI0MjdoT09FSjRQOEFBT0RhQUFEZzFlRE80TTNnaHVCNTRIZmdiTitUNEdIZ05kK1MzcXZmaHQrRjMzN2ZlOTl2MzFQZlBOODUyOVVUbndyZkJxTUNxd0d2QUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU5vQUFBRGtBQUFCRGdBQUFTZ0FBQUVvQUFBQktBQUFBV29BQUFBQUFBQUFBQUFBQUFBQUFBRnFBWFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJZZ0FBQUFBQmFnR0dBQUFCbmdBQUFBQUFBQUcyQUFBQi9nQUFBaVlBQUFKSUFBQUNXQUFBQXVJQUFBTHlBQUFEQmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFMNEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUM2QUFBQXVnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ1RBSk5BazRDVHdKUUFsRUFnUUpJQWx3Q1hRSmVBbDhDWUFKaEFJSUFnd0ppQW1NQ1pBSmxBbVlBaEFDRkFtY0NhQUpwQW1vQ2F3SnNBSVlBaHdKM0FuZ0NlUUo2QW5zQ2ZBQ0lBSWtDZlFKK0FuOENnQUtCQUlvQ1J3UkhBSXNDU1FDTUFyQUNzUUt5QXJNQ3RBSzFBSTBDdGdLM0FyZ0N1UUs2QXJzQ3ZBSzlBSTRBandLK0FyOEN3QUxCQXNJQ3d3TEVBSkFBa1FMRkFzWUN4d0xJQXNrQ3lnQ1NBSk1DMlFMYUF0MEMzZ0xmQXVBQ1NnSkxBbElDYlFMNEF2a0MrZ0w3QXRjQzJBTGJBdHdBclFDdUExTUFyd05VQTFVRFZnQ3dBTEVEWFFOZUExOEFzZ05nQTJFQXN3TmlBMk1BdEFOa0FMVURaUUMyQTJZRFp3QzNBMmdBdUFDNUEya0RhZ05yQTJ3RGJRTnVBMjhEY0FEREEzSURjd0RFQTNFQXhRREdBTWNBeUFESkFNb0F5d04wQU13QXpRT3hBM29BMFFON0FOSURmQU45QTM0RGZ3RFRBTlFBMVFPQkE3SURnZ0RXQTRNQTF3T0VBNFVBMkFPR0FOa0EyZ0RiQTRjRGdBRGNBNGdEaVFPS0E0c0RqQU9OQTQ0QTNRRGVBNDhEa0FEcEFPb0E2d0RzQTVFQTdRRHVBTzhEa2dEd0FQRUE4Z0R6QTVNQTlBT1VBNVVBOVFPV0FQWURsd096QTVnQkFRT1pBUUlEbWdPYkE1d0RuUUVEQVFRQkJRT2VBN1FEbndFR0FRY0JDQVJkQTdVRHRnRVdBUmNCR0FFWkE3Y0R1QU82QTdrQkp3RW9CR0lFWXdSY0FTa0JLZ0VyQVN3QkxRUmVCRjhCTGdFdkJGY0VXQU83QTd3RVNRUktBVEFCTVFSZ0JHRUJNZ0V6QkVzRVRBRTBBVFVCTmdFM0FUZ0JPUU85QTc0RVRRUk9BNzhEd0FScUJHc0VUd1JRQVRvQk93UlJCRklCUEFFOUFUNEVXd0UvQVVBRVdRUmFBOEVEd2dQREFVRUJRZ1JvQkdrQlF3RkVCR1FFWlFSVEJGUUVaZ1JuQVVVRHpnUE5BODhEMEFQUkE5SUQwd0ZHQVVjRVZRUldBK2dENlFGSUFVa0Q2Z1ByQkd3RWJRRktBK3dFYmdQdEErNEJhUUZxQkhBRWJ3Ri9CRWdCaFFBTUFBQUFBQXhBQUFBQUFBQUFBUVFBQUFBQUFBQUFBQUFBQUFFQUFBQUNBQUFBQWdBQUFBSUFBQUFOQUFBQURRQUFBQU1BQUFBZ0FBQUFmZ0FBQUFRQUFBQ2dBQUFBb0FBQUFrVUFBQUNoQUFBQXJBQUFBR01BQUFDdEFBQUFyUUFBQWtZQUFBQ3VBQUFBdndBQUFHOEFBQURBQUFBQXhRQUFBa3dBQUFER0FBQUF4Z0FBQUlFQUFBREhBQUFBendBQUFsTUFBQURRQUFBQTBBQUFBa2dBQUFEUkFBQUExZ0FBQWx3QUFBRFhBQUFBMkFBQUFJSUFBQURaQUFBQTNRQUFBbUlBQUFEZUFBQUEzd0FBQUlRQUFBRGdBQUFBNVFBQUFtY0FBQURtQUFBQTVnQUFBSVlBQUFEbkFBQUE3d0FBQW00QUFBRHdBQUFBOEFBQUFJY0FBQUR4QUFBQTlnQUFBbmNBQUFEM0FBQUErQUFBQUlnQUFBRDVBQUFBL1FBQUFuMEFBQUQrQUFBQS9nQUFBSW9BQUFEL0FBQUJEd0FBQW9JQUFBRVFBQUFCRUFBQUFrY0FBQUVSQUFBQkVRQUFCRWNBQUFFU0FBQUJKUUFBQXBNQUFBRW1BQUFCSmdBQUFJc0FBQUVuQUFBQkp3QUFBa2tBQUFFb0FBQUJNQUFBQXFjQUFBRXhBQUFCTVFBQUFJd0FBQUV5QUFBQk53QUFBckFBQUFFNEFBQUJPQUFBQUkwQUFBRTVBQUFCUUFBQUFyWUFBQUZCQUFBQlFnQUFBSTRBQUFGREFBQUJTUUFBQXI0QUFBRktBQUFCU3dBQUFKQUFBQUZNQUFBQlVRQUFBc1VBQUFGU0FBQUJVd0FBQUpJQUFBRlVBQUFCWHdBQUFzc0FBQUZnQUFBQllRQUFBdGtBQUFGaUFBQUJaUUFBQXQwQUFBRm1BQUFCWndBQUFrb0FBQUZvQUFBQmZnQUFBdUVBQUFGL0FBQUJmd0FBQUpRQUFBR1BBQUFCandBQUFKVUFBQUdTQUFBQmtnQUFBSllBQUFHZ0FBQUJvUUFBQUpjQUFBR3ZBQUFCc0FBQUFKa0FBQUh3QUFBQjhBQUFBNnNBQUFINkFBQUIrZ0FBQWxJQUFBSDdBQUFCK3dBQUFtMEFBQUg4QUFBQi93QUFBdmdBQUFJWUFBQUNHUUFBQXRjQUFBSWFBQUFDR3dBQUF0c0FBQUkzQUFBQ053QUFBSnNBQUFKWkFBQUNXUUFBQUp3QUFBSzhBQUFDdkFBQUE2d0FBQUxHQUFBQ3h3QUFBSjBBQUFMSkFBQUN5UUFBQUo4QUFBTFlBQUFDM1FBQUFLQUFBQUx6QUFBQzh3QUFBS1lBQUFNQUFBQURBUUFBQUtjQUFBTURBQUFEQXdBQUFLa0FBQU1KQUFBRENRQUFBS29BQUFNUEFBQUREd0FBQUtzQUFBTWpBQUFESXdBQUFLd0FBQU9FQUFBRGhRQUFBSzBBQUFPR0FBQURoZ0FBQTFNQUFBT0hBQUFEaHdBQUFLOEFBQU9JQUFBRGlnQUFBMVFBQUFPTUFBQURqQUFBQTFjQUFBT09BQUFEa2dBQUExZ0FBQU9UQUFBRGxBQUFBTEFBQUFPVkFBQURsd0FBQTEwQUFBT1lBQUFEbUFBQUFMSUFBQU9aQUFBRG1nQUFBMkFBQUFPYkFBQURtd0FBQUxNQUFBT2NBQUFEblFBQUEySUFBQU9lQUFBRG5nQUFBTFFBQUFPZkFBQURud0FBQTJRQUFBT2dBQUFEb0FBQUFMVUFBQU9oQUFBRG9RQUFBMlVBQUFPakFBQURvd0FBQUxZQUFBT2tBQUFEcFFBQUEyWUFBQU9tQUFBRHBnQUFBTGNBQUFPbkFBQURwd0FBQTJnQUFBT29BQUFEcVFBQUFMZ0FBQU9xQUFBRHNBQUFBMmtBQUFPeEFBQUR1UUFBQUxvQUFBTzZBQUFEdWdBQUEzQUFBQU83QUFBRHV3QUFBTU1BQUFPOEFBQUR2UUFBQTNJQUFBTytBQUFEdmdBQUFNUUFBQU8vQUFBRHZ3QUFBM0VBQUFQQUFBQUR4Z0FBQU1VQUFBUEhBQUFEeHdBQUEzUUFBQVBJQUFBRHlRQUFBTXdBQUFQS0FBQUR6Z0FBQTNVQUFBUFJBQUFEMGdBQUFNNEFBQVBXQUFBRDFnQUFBTkFBQUFRQUFBQUVBQUFBQTdFQUFBUUJBQUFFQVFBQUEzb0FBQVFDQUFBRUFnQUFBTkVBQUFRREFBQUVBd0FBQTNzQUFBUUVBQUFFQkFBQUFOSUFBQVFGQUFBRUNBQUFBM3dBQUFRSkFBQUVDd0FBQU5NQUFBUU1BQUFFREFBQUE0RUFBQVFOQUFBRURRQUFBN0lBQUFRT0FBQUVEZ0FBQTRJQUFBUVBBQUFFRHdBQUFOWUFBQVFRQUFBRUVBQUFBNE1BQUFRUkFBQUVFUUFBQU5jQUFBUVNBQUFFRXdBQUE0UUFBQVFVQUFBRUZBQUFBTmdBQUFRVkFBQUVGUUFBQTRZQUFBUVdBQUFFR0FBQUFOa0FBQVFaQUFBRUdRQUFBNGNBQUFRYUFBQUVHZ0FBQTRBQUFBUWJBQUFFR3dBQUFOd0FBQVFjQUFBRUlnQUFBNGdBQUFRakFBQUVKQUFBQU4wQUFBUWxBQUFFSlFBQUE0OEFBQVFtQUFBRUx3QUFBTjhBQUFRd0FBQUVNQUFBQTVBQUFBUXhBQUFFTkFBQUFPa0FBQVExQUFBRU5RQUFBNUVBQUFRMkFBQUVPQUFBQU8wQUFBUTVBQUFFT1FBQUE1SUFBQVE2QUFBRVBRQUFBUEFBQUFRK0FBQUVQZ0FBQTVNQUFBUS9BQUFFUHdBQUFQUUFBQVJBQUFBRVFRQUFBNVFBQUFSQ0FBQUVRZ0FBQVBVQUFBUkRBQUFFUXdBQUE1WUFBQVJFQUFBRVJBQUFBUFlBQUFSRkFBQUVSUUFBQTVjQUFBUkdBQUFFVHdBQUFQY0FBQVJRQUFBRVVBQUFBN01BQUFSUkFBQUVVUUFBQTVnQUFBUlNBQUFFVWdBQUFRRUFBQVJUQUFBRVV3QUFBNWtBQUFSVUFBQUVWQUFBQVFJQUFBUlZBQUFFV0FBQUE1b0FBQVJaQUFBRVd3QUFBUU1BQUFSY0FBQUVYQUFBQTU0QUFBUmRBQUFFWFFBQUE3UUFBQVJlQUFBRVhnQUFBNThBQUFSZkFBQUVZUUFBQVFZQUFBUmlBQUFFWWdBQUJGMEFBQVJqQUFBRWJ3QUFBUWtBQUFSd0FBQUVjUUFBQTdVQUFBUnlBQUFFZFFBQUFSWUFBQVIyQUFBRWR3QUFBN2NBQUFSNEFBQUVlQUFBQTdvQUFBUjVBQUFFZVFBQUE3a0FBQVI2QUFBRWhnQUFBUm9BQUFTSUFBQUVpUUFBQVNjQUFBU0tBQUFFaXdBQUJHSUFBQVNNQUFBRWpBQUFCRndBQUFTTkFBQUVrUUFBQVNrQUFBU1NBQUFFa3dBQUJGNEFBQVNVQUFBRWxRQUFBUzRBQUFTV0FBQUVsd0FBQkZjQUFBU1lBQUFFbVFBQUE3c0FBQVNhQUFBRW13QUFCRWtBQUFTY0FBQUVuUUFBQVRBQUFBU2VBQUFFbndBQUJHQUFBQVNnQUFBRW9RQUFBVElBQUFTaUFBQUVvd0FBQkVzQUFBU2tBQUFFcVFBQUFUUUFBQVNxQUFBRXF3QUFBNzBBQUFTc0FBQUVyUUFBQkUwQUFBU3VBQUFFcndBQUE3OEFBQVN3QUFBRXNRQUFCR29BQUFTeUFBQUVzd0FBQkU4QUFBUzBBQUFFdFFBQUFUb0FBQVMyQUFBRXR3QUFCRkVBQUFTNEFBQUV1Z0FBQVR3QUFBUzdBQUFFdXdBQUJGc0FBQVM4QUFBRXZRQUFBVDhBQUFTK0FBQUV2d0FBQkZrQUFBVEFBQUFFd2dBQUE4RUFBQVREQUFBRXhBQUFBVUVBQUFURkFBQUV4Z0FBQkdnQUFBVEhBQUFFeUFBQUFVTUFBQVRKQUFBRXlnQUFCR1FBQUFUTEFBQUV6QUFBQkZNQUFBVE5BQUFFemdBQUJHWUFBQVRQQUFBRTF3QUFBOFFBQUFUWUFBQUUyQUFBQVVVQUFBVFpBQUFFMlFBQUE4NEFBQVRhQUFBRTJnQUFBODBBQUFUYkFBQUUzd0FBQTg4QUFBVGdBQUFFNFFBQUFVWUFBQVRpQUFBRTlRQUFBOVFBQUFUMkFBQUU5d0FBQkZVQUFBVDRBQUFFK1FBQUErZ0FBQVQ2QUFBRSt3QUFBVWdBQUFUOEFBQUUvUUFBQStvQUFBVCtBQUFFL3dBQUJHd0FBQVVBQUFBRkFBQUFBVW9BQUFVQkFBQUZBUUFBQSt3QUFBVUNBQUFGRUFBQUFVc0FBQVVSQUFBRkVRQUFCRzRBQUFVU0FBQUZFd0FBQSswQUFCNEFBQUFlQVFBQUE2OEFBQjQrQUFBZVB3QUFBNjBBQUI2QUFBQWVoUUFBQTZBQUFCNmdBQUFlOFFBQUErOEFBQjd5QUFBZTh3QUFBNllBQUI3MEFBQWUrUUFBQkVFQUFCOU5BQUFmVFFBQUJLb0FBQ0FBQUFBZ0N3QUFBVnNBQUNBUUFBQWdFUUFBQVdjQUFDQVRBQUFnRkFBQUFXa0FBQ0FWQUFBZ0ZRQUFCSEFBQUNBWEFBQWdIZ0FBQVdzQUFDQWdBQUFnSWdBQUFYTUFBQ0FsQUFBZ0p3QUFBWFlBQUNBd0FBQWdNQUFBQVhrQUFDQXlBQUFnTXdBQUE2Z0FBQ0E1QUFBZ09nQUFBWG9BQUNBOEFBQWdQQUFBQTZvQUFDQkVBQUFnUkFBQUFYd0FBQ0IwQUFBZ2RBQUFBWDBBQUNCL0FBQWdmd0FBQVg0QUFDQ2pBQUFnb3dBQUJHOEFBQ0NrQUFBZ3BBQUFBWDhBQUNDbUFBQWdxZ0FBQVlBQUFDQ3JBQUFncXdBQUJFZ0FBQ0NzQUFBZ3JBQUFBWVVBQUNDeEFBQWdzUUFBQVlZQUFDQzVBQUFndWdBQUFZY0FBQ0M4QUFBZ3ZRQUFBWWtBQUNFRkFBQWhCUUFBQVlzQUFDRVRBQUFoRXdBQUFZd0FBQ0VXQUFBaEZnQUFBWTBBQUNFaUFBQWhJZ0FBQVk0QUFDRW1BQUFoSmdBQUFMa0FBQ0V1QUFBaExnQUFBWThBQUNGYkFBQWhYZ0FBQVpBQUFDSUNBQUFpQWdBQUFaUUFBQ0lHQUFBaUJnQUFBTEVBQUNJUEFBQWlEd0FBQVpVQUFDSVJBQUFpRWdBQUFaWUFBQ0lhQUFBaUdnQUFBWmdBQUNJZUFBQWlIZ0FBQVprQUFDSXJBQUFpS3dBQUFab0FBQ0pJQUFBaVNBQUFBWnNBQUNKZ0FBQWlZQUFBQVp3QUFDSmtBQUFpWlFBQUFaMEFBQ1hLQUFBbHlnQUFBWjhBQU80QkFBRHVBZ0FBQWFBQUFQYkRBQUQyd3dBQUFhSUFBUHNCQUFEN0JBQUFBYVFBQVA3L0FBRCsvd0FBQWFvQUFQLzhBQUQvL1FBQUFhdXdBQ3hMc0FsUVdMRUJBWTVadUFIL2hiQ0VIYkVKQTE5ZUxiQUJMQ0FnUldsRXNBRmdMYkFDTExBQktpRXRzQU1zSUVhd0F5VkdVbGdqV1NDS0lJcEpaSW9nUmlCb1lXU3dCQ1ZHSUdoaFpGSllJMldLV1M4Z3NBQlRXR2tnc0FCVVdDR3dRRmtiYVNDd0FGUllJYkJBWlZsWk9pMndCQ3dnUnJBRUpVWlNXQ09LV1NCR0lHcGhaTEFFSlVZZ2FtRmtVbGdqaWxrdi9TMndCU3hMSUxBREpsQllVVml3Z0VRYnNFQkVXUnNoSVNCRnNNQlFXTERBUkJzaFdWa3RzQVlzSUNCRmFVU3dBV0FnSUVWOWFSaEVzQUZnTGJBSExMQUdLaTJ3Q0N4TElMQURKbE5Zc0VBYnNBQlppb29nc0FNbVUxZ2pJYkNBaW9vYmlpTlpJTEFESmxOWUl5R3d3SXFLRzRvaldTQ3dBeVpUV0NNaHVBRUFpb29iaWlOWklMQURKbE5ZSXlHNEFVQ0tpaHVLSTFrZ3NBTW1VMWl3QXlWRnVBR0FVRmdqSWJnQmdDTWhHN0FESlVVaklTTWhXUnNoV1VRdHNBa3NTMU5ZUlVRYklTRlpMYkFLTExBa1JTMndDeXl3SlVVdHNBd3NzU2NCaUNDS1UxaTVRQUFFQUdPNENBQ0lWRmk1QUNRRDZIQlpHN0FqVTFpd0lJaTRFQUJVV0xrQUpBUG9jRmxaV1Myd0RTeXdRSWk0SUFCYVdMRWxBRVFidVFBbEEraEVXUzJ3REN1d0FDc0FzZ0VPQWlzQnNnOEJBaXNCdHc4Nk1DVWJFQUFJS3dDM0FVZzdMaUVVQUFncnR3SllTRGdvRkFBSUs3Y0RVa00wSlJZQUNDdTNCRjVOUENzWkFBZ3J0d1UyTENJWkR3QUlLN2NHY1YxR01oc0FDQ3UzQjVGM1hEb2pBQWdydHdoK1oxQTVHZ0FJSzdjSlZFVTJKaGNBQ0N1M0NuWmdTellkQUFncnR3dURaRTQ2SXdBSUs3Y00yYktLWXp3QUNDdTNEUlFSRFFrR0FBZ3J0dzQ4TWljY0VRQUlLd0N5RUFvSEs3QUFJRVY5YVJoRXNqQVNBWE95c0JRQmM3SlFGQUYwc29BVUFYU3ljQlFCZGJJUEhBRnpzbThjQVhVQUFDb0FuUUNBQUlvQWVBRFVBR1FBVGdCYUFJY0FZQUJXQURRQ1BBQzhBTVFBQUFBVS9tQUFGQUtiQUNBRElRQUxCRG9BRkFTTkFCQUZzQUFVQmhnQUZRR21BQkVHd0FBT0FBQUFBQUFBQUdFQVlRQmhBR0VBWVFDVEFMZ0JPQUdxQWpvQ3pRTGtBdzRET0FOckE1QURyd1BGQStZRC9RUktCSGdFeHdVOEJYOEYzd1krQm1zRzN3ZEdCMXNIY0FlUEI3WUgxUWd6Q05ZSkZRbDBDY2dLRFFwTkNvTUs2d3N0QzBnTGV3dlFDL1FNUWd4K0ROTU5IZzJERGQ4T1NnNTBEcllPNWc4N0Q1QVB3QS80RUJ3UU14QllFSDhRbWhDNkVUSVJrQkhqRWtFU3FCTDZFM1FUdVJQeEZEMFVsQlN2RlJvVlpSV3pGaGNXZUJhMUZ4OFhjUmU0RitnWU5oaDlHTUlZK2hrN0dWSVpraG5aR2d3YWFCcmFHejBibkJ1N0hHQWNqeDAxSGFNZHJ4M01Ib1FlbWg3V0h4a2ZhUi9rSUFRZ1RTQjVJSmdnMHlFRklVOGhXeUYxSVk4aHFTSUtJbTBpcXlNbUkzb2o2aVNvSlJjbGFDWFpKamdtbGlheEp3RW5TeWVJSjlrb05DaTNLVkVwZ2lubktrNHF1Q3NZSzJzcnhDdnlMRlVzZ3l5bkxMVXM0Q3ovTFRndGJDMndMZU11SVM0K0xsc3VaQzZYTHNndTVDOEFMME12VHk5MUw2SXdIVEJLTUl3d3VqRDJNV2N4d1RJcE1wNHpFek5HTTdjMEl6Ui9OTW8xU2pWM05kQTJQamFQTnVrM1JEZWJOOTQ0SHppSU9PUTVTem5DT2hVNml6cm1PMTg3MVR4SFBKczgxejB1UFlZOTlENXBQcTQrK0Q5QVA3RS81MEFzUUdsQXNrRUtRVzFCdVVJMlFzZERJa09TUkFsRUwwU0ZSUGhGY1VXcVJnRkdTRWFRUnV4SEdrZEdSOUZJQjBoSFNJUkl5RWtmU1lGSnkwbzlTc05MSGt1VlRCVk1pa3ozVFY1Tm1rMzhUbHhPeEU5R1QrRlFMVkI4VU9kUlZsSExVanBTeFZOUFU5OVVlbFQ4VlhSVnVGWCtWbXBXMFZlS1dFUll3MWxDV1pOWjRGb1ZXakZhYUZwK1dwUmJaVnZZWEVCY20xME9YVDVkYUYyOVhoSmVhVjdMWHg5ZmZsL0lZREZnajJEdFlZeGlJMkp6WXJaakJtTlVZNVprQm1SM1pNOWxNMldzWmlObWkyYnJaMFJuVTJkblo3Um9GMmllYVE1cGUybmVhajVxckdzVmE1NXNJR3g4Yk01dElHMXhiZVp1Rlc0VmJoVnVGVzRWYmhWdUZXNFZiaFZ1Rlc0VmJoVnVGVzRkYmlWdUwyNDVibEJ1ZEc2WWJycHUxVzdoYnUxdkpXOWpiOFJ2NTIvemNBTndGM0RvY1FSeElYRTBjVWh4ajNJWGNyUnpRM05QZEE5MGNuVHVkWXQxN1habWRyOTNLWGZaZUQ5NDAza3hlWk41cEhtMWVjWjUxM3BJZW01NnBuckJldlY3aDN2SWZGTjhrM3l4Zk05OUNIMFZmVDk5WW4xdWZkWitLSDYwZnlKL2xJQlhnRmVDQm9KeWdwK0M2SU1UZ3ltRG1ZUDVoRWVFdElVTGhWT0ZtNFhxaGdTR1E0YXBodjJIUkllSGg3NklIWWhlaUhtSXI0anlpUmFKWjRtZ2lmT0tQWXFiaXZPTFdJdUNpNytMNzR4SGpKQ013SXo0alVHTmJJMjdqaXFPYkk3SWp5R1BUby9La0NlUVBaQ2lrVXVScnBJUmttR1NwcExua3ltVG5KUUFsRzZVbUpUT2xUU1ZacFd5bGVTV0k1YUpsdUNYUVplZm1BK1lnNWo0bVVxWmlabmdtamVhcTVza20yQ2JzSnY0bkQ2Y2VaeTZuUG1kUTUyYm5hZWQ5SjVqbnVDZk41OTVuLzZnWDZEQW9SMmhzS0hCb2h5aWFLSzJvdmlqYUtQTHBDK2tuNlV4cGJXbVM2YTlweDJuYjZmUHFFbW9VYWkycVJlcGVhbndxa3VxdTZzSHEyYXJ6cXY0ckV1c2Q2ekhyUXV0SDYwenJVV3RXYTFycllLdGxxM3NyaEt1azY3MXIwT3ZTNjlUcjF1dlpxOXVyM3F2M2EvZHIrV3dTN0N4c1JDeFVyRzJzYzJ4NUxIN3NoS3lLN0pFc2xDeVhMSnpzb3F5b2JLNnN0R3k2TEwvc3hpekw3TkdzMTJ6ZExPTHM2U3p1N1BTcyttMEFyUVp0REMwUjdSZHRITzBqTFNsdExHMHZiVFV0T3UxQWJVYXRUQzFSclZkdFhhMWpMV2p0YnExMExYbXRmKzJGcll0dGtPMlhMWnp0b3Uyb3JhNHRzKzI1cmRKdDkrMzlyZ051Q1M0T3JoUnVHaTRmN2lWdUt5NDNiajB1UXE1SWJrNHVVKzVacm5PdWxLNmFicC91cGE2ckxyRHV0cTY4YnNJdXhTN0s3dEN1MVM3YTd1Q3U1bTdzTHZIdTk2NzZidjB2QXU4Rjd3anZEcThVYnhkdkdtOGdMeVh2S084cjd6RXZQbTlCYjBSdlNpOVA3MUx2VmU5YnIyRXZaUzlxNzNCdmRpOTc3NEl2aUcrT0w1UHZsdStaNzUrdnBTK3E3N0N2dG0rNzc3N3Z3ZS9FNzhmdnphL1RMOVl2MlMvY0w5OHY1Ty9uNysydjh5LzQ3LzV3QkRBSjhCQXdGbkFjc0NMd09qQlRzRmx3WHpCazhHcHdjTEIyY0h3d2dmQ0hzSTF3a3ZDWXNKNXdwRENwOExLd3ZMREJjTWN3elBEU2NOZnczakRrY09kdzZuRHdNUFh3KzNFQmNRYnhESEVTTVJoeEhqRWo4U214TDNFMU1UdHhRVEZHOFV4eFVyRlljVjN4WTdGOGNZSXhoN0dOY1pNeG1MR2VNYU94cVhIRHNja3h6ckhVY2RveDNUSGk4ZWl4N25IME1mYngvSElDTWdVeUNySU5zaEx5RmZJYnNoNnlKSElxTWkveU5qSTc4ajd5UkhKS01rK3lVckpZTWxzeVlMSmpzbWt5YnJKMGNucXlnUEtYOHAyeW96S3BNcTd5dExLNk1yenl2L0xDOHNYeXlQTEw4czd5MWZMWDh0bnkyL0xkOHQveTRmTGo4dVh5NS9McDh1dnk3Zkx2OHZIeStETCtjd1F6Q2ZNUHN4VXpHL01kOHgveklmTWo4eVh6Sy9NeDh6ZXpQWE5ETTBselR6TnA4MnZ6Y2pOME0zWXplL09CczRPemhiT0hzNG16ajNPUmM1TnpsWE9YYzVsem0zT2RjNTl6b1hPamM2a3pxek90TThIencvUEY4OHd6MGZQVDg5WHozRFBlTStQejZYUHZNL1R6K3JRQWRBYTBEUFFTdEJoMEduUWNkQjkwSlRRbk5DejBNclExdERpMFBuUkVORW4wVDdSUnRGTzBXZlJnTkdNMFpqUnBOR3cwYnpSeU5IUTBkalI0TkgzMGc3U0Z0SXQwa1RTVzlKMDBuelNoTktiMHJMU3k5TFQwdXpUQmRNZTB6ZlRUOU5tMDN6VGxkT3UwOGZUNE5QbzAvRFVDZFFpMUR2VVU5UnExSURVbWRTeDFNclU0OVQ4MVJUVk1kVk8xVnJWWnRWdTFYclZodFdTMVo3VnRkWE0xZVhWL2RZVzFpN1dSOVpmMW5qV2tOYXIxc1hXM3RiMzF4RFhLZGRDMTF2WGROZU4xNmpYdzlmUDE5dlg4dGdKMkNEWU50aFAyR2ZZZ05pWTJMSFl5ZGppMlByWkZka3YyVWJaWGRscDJYWFpnZG1OMmFUWnU5blUyZXphQmRvZDJqYmFUdHBuMm4vYW10cTAyc3ZhNHRyNTJ4RGJKOXMrMjFYYmE5dDMyNFBiajl1YjI3TGJ5ZHZnMi9mY0R0d2wzRHpjVTl4cTNJRGNqTnlZM0tUY3NOekgzTjdjOWQwTDNZSGRsdDJpM2E3ZHV0M0czZExkM3QzcTNmYmVBdDRPM2hyZUp0NHkzajdlU3Q1VzNtTGVidDUyM3RUZk10OTAzN1BnRitCMTRKRGdxK0MzNE1QZ3orRGI0T2ZnOCtFOTRZM2g1ZUk3NGtQaVQrSlo0bUhpYWVKeDRubmlnZUtKNHFEaXQrTE80dVhpL3VNWDR6RGpTZU5pNDN2amxPT3Q0OGJqMytQNDVCSGtIZVFwNURYa1FlUk41Rm5rWmVSeDVIM2tsT1NtNUxMa3Z1VEs1TmJrNHVUdTVQcmxCdVVkNVRUbFFPVk01VmpsWk9WdzVYemxrK1dwNWJYbHdlWE41ZG5sNWVYeDVmM21DZVlWNWlIbUxlWTU1a1htVWVaWjVtSG1hZVp4NW5ubWdlYUo1cEhtbWVhaDVxbm1zZWE1NXRMbTZ1Y0M1eG5uSWVjcDUwTG5TdWRoNTNmbmYrZUg1NC9ubCtldTU3Ym52dWZHNTg3bjF1ZmU1K2JuN3VoNDZNVHBJdWtxNlRicFRlbGo2V3ZwZCttRDZZL3Btd0FBQUFVQVpBQUFBeWdGc0FBREFBWUFDUUFNQUE4QWNiSU1FQkVSRWptd0RCQ3dBTkN3REJDd0J0Q3dEQkN3Q2RDd0RCQ3dEZEFBc0FCRldMQUNMeHV4QWh3K1diQUFSVml3QUM4YnNRQVFQbG15QkFJQUVSSTVzZ1VDQUJFU09iSUhBZ0FSRWpteUNBSUFFUkk1c1FvTTlMSU1BZ0FSRWpteURRSUFFUkk1c0FJUXNRNE05REF4SVNFUklRTVJBUUVSQVFNaEFUVUJJUU1vL1R3Q3hEYis3djY2QVF6a0FnUCsvZ0VDL2YwRnNQcWtCUWY5ZlFKMyt4RUNlUDFlQWw2SUFsNEFBZ0NnLy9VQmV3V3dBQU1BREFBdkFMQUFSVml3QWk4YnNRSWNQbG13QUVWWXNBc3ZHN0VMRUQ1WnNnWUZDaXRZSWRnYjlGbXlBUVlDRVJJNU1ERUJJd016QXpRMk1oWVVCaUltQVZ1bkRjTEpOMnc0T0d3M0Fac0VGZnF0TFQwOVdqczdBQUlBaUFRU0FpTUdBQUFFQUFrQUdRQ3dBeSt5QWdvREVSSTVzQUl2c0FmUXNBTVFzQWpRTURFQkF5TVRNd1VESXhNekFSVWVid0dNQVE0ZWJ3R01CWGorbWdIdWlQNmFBZTRBQWdCM0FBQUUwd1d3QUJzQUh3Q1BBTEFBUlZpd0RDOGJzUXdjUGxtd0FFVllzQkF2RzdFUUhENVpzQUJGV0xBQ0x4dXhBaEErV2JBQVJWaXdHaThic1JvUVBsbXlIUXdDRVJJNWZMQWRMeGl5QUFNS0sxZ2gyQnYwV2JBRTBMQWRFTEFHMExBZEVMQUwwTEFMTDdJSUF3b3JXQ0hZRy9SWnNBc1FzQTdRc0FzUXNCTFFzQWdRc0JUUXNCMFFzQmJRc0FBUXNCalFzQWdRc0I3UU1ERUJJUU1qRXlNMUlSTWhOU0VUTXdNaEV6TURNeFVqQXpNVkl3TWpBeUVUSVFMOS92aFFqMUR2QVFsRi92NEJIVktQVWdFSVVwQlN6T2RGNGZ0UWtKNEJDRVgrK0FHYS9tWUJtb2tCWW9zQm9QNWdBYUQrWUl2K25vbitaZ0lqQVdJQUFBRUFidjh3QkJFR25BQXJBR1lBc0FCRldMQUpMeHV4Q1J3K1diQUFSVml3SWk4YnNTSVFQbG15QWlJSkVSSTVzQWtRc0F6UXNBa1FzQkRRc0FrUXNoTUJDaXRZSWRnYjlGbXdBaEN5R1FFS0sxZ2gyQnYwV2JBaUVMQWYwTEFpRUxBbTBMQWlFTElwQVFvcldDSFlHL1JaTURFQk5DWW5KaVkxTkRZM05UTVZGaFlWSXpRbUl5SUdGUlFXQkJZV0ZSUUdCeFVqTlNZbU5UTVVGak15TmdOWWdablZ3NytubGFpN3VJWnlkMzZGQVRHclVjdTNsTHJUdVpLR2c1WUJkMXgrTTBIUm9hVFNGTnZjRit6TmphWjdibVo1WTNlZWFxbk9FNysvRWVmR2k1WitBQVVBYWYvckJZTUZ4UUFOQUJvQUpnQTBBRGdBZUFDd0FFVllzQU12RzdFREhENVpzQUJGV0xBakx4dXhJeEErV2JBREVMQUswTEFLTDdJUkJBb3JXQ0hZRy9SWnNBTVFzaGdFQ2l0WUlkZ2I5Rm13SXhDd0hkQ3dIUyt3SXhDeUtnUUtLMWdoMkJ2MFdiQWRFTEl4QkFvcldDSFlHL1Jac2pVakF4RVNPYkExTDdJM0F5TVJFam13Tnk4d01STTBOak15RmhVVkZBWWpJaVkxRnhRV016STJOVFUwSmlJR0ZRRTBOaUFXRlJVVUJpQW1OUmNVRmpNeU5qVTFOQ1lqSWdZVkJTY0JGMm1uZzRXbHA0R0Nxb3BZU2tkWFZwUldBanVuQVFhb3AvNzhxb3BZU2toV1YwbEhXZjRIYVFMSGFRU1lnNnFyaUVlRXA2ZUxCMDVsWWxWSlRtWm1VdnpSZzZtb2kwZURxYWVMQms5bFkxVktUMlJqVlBOQ0JISkNBQU1BWmYvc0JQTUZ4QUFlQUNjQU13Q0ZBTEFBUlZpd0NTOGJzUWtjUGxtd0FFVllzQnd2RzdFY0VENVpzQUJGV0xBWUx4dXhHQkErV2JJaUhBa1JFam15S2drY0VSSTVzZ01pS2hFU09iSVFLaUlSRWpteUVRa2NFUkk1c2hNY0NSRVNPYklaSEFrUkVqbXlGaEVaRVJJNXNCd1FzaDhCQ2l0WUlkZ2I5Rm15SVI4UkVSSTVzQWtRc2pFQkNpdFlJZGdiOUZrd01STTBOamNtSmpVME5qTXlGaFVVQmdjSEFUWTFNeFFIRnlNbkJnWWpJaVFGTWpjQkJ3WVZGQllERkJjM05qWTFOQ1lqSWdabGRhVmhRc1NvbHNSWmIyc0JSRVNuZTlEZVlVckhaOVgrL2dIWGszcituU0dubVNKMmRrUXlaRXhTWUFHSGFiQjFkcEJIcHJ5dmhWaVZVay8rZllLZi82ajVjMEpGNGt0d0Fha1llNEoyamdQbFlKQlRNRmMrUTFsdkFBRUFad1FoQVAwR0FBQUVBQkFBc0FNdnNnSUZBeEVTT2JBQ0x6QXhFd01qRXpQOUZZRUJsUVdSL3BBQjN3QUJBSVgrS2dLVkJtc0FFUUFKQUxBT0w3QUVMekF4RXpRU0VqY1hCZ0lEQnhBVEZoY0hKaWNDaFhud2dTYVN1d2tCalZWMUpvVjU3QUpQNGdHZ0FWUkdlbkQrTlA3alZmNSsvdVNxWUhGS3JnRlVBQUFCQUNiK0tnSTNCbXNBRVFBSkFMQU9MN0FFTHpBeEFSUUNBZ2NuTmhJVE5UUUNBaWMzRmhJU0FqZDE4WVFubXJzQ1dKMWlKNFR2ZHdKRjMvNW4vcVpKY1hZQjhRRXZJTklCYVFFZVVIRkovcXIrWkFBQkFCd0NZUU5WQmJBQURnQWdBTEFBUlZpd0JDOGJzUVFjUGxtd0FOQVpzQUF2R0xBSjBCbXdDUzhZTURFQkpUY0ZBek1ESlJjRkV3Y0RBeWNCU3Y3U0xnRXVDWmtLQVNrdS9zM0dmTHEwZlFQWFdwZHdBVmorbzI2WVcvN3hYZ0VnL3VkYkFBQUJBRTRBa2dRMEJMWUFDd0FhQUxBSkw3QUEwTEFKRUxJR0FRb3JXQ0hZRy9SWnNBUFFNREVCSVJVaEVTTVJJVFVoRVRNQ25nR1cvbXE2L21vQmxyb0REYS8rTkFITXJ3R3BBQUVBSGY3ZUFUUUEyd0FJQUJjQXNBa3ZzZ1FGQ2l0WUlkZ2I5Rm13QU5Dd0FDOHdNUk1uTmpjMU14VVVCb1pwWGdTMVkvN2VTSU9McDVGbHlnQUFBUUFsQWg4Q0RRSzJBQU1BRVFDd0FpK3lBUUVLSzFnaDJCdjBXVEF4QVNFMUlRSU4vaGdCNkFJZmx3QUJBSkQvOVFGMkFORUFDUUFiQUxBQVJWaXdCeThic1FjUVBsbXlBZ1VLSzFnaDJCdjBXVEF4TnpRMk1oWVZGQVlpSnBBNWNqczdjamxoTUVCQU1DNCtQZ0FCQUJML2d3TVFCYkFBQXdBVEFMQUFMN0FBUlZpd0FpOGJzUUljUGxrd01SY2pBVE94bndKZ25uMEdMUUFBQWdCei8rd0VDZ1hFQUEwQUd3QTVBTEFBUlZpd0NpOGJzUW9jUGxtd0FFVllzQU12RzdFREVENVpzQW9Rc2hFQkNpdFlJZGdiOUZtd0F4Q3lHQUVLSzFnaDJCdjBXVEF4QVJBQ0l5SUNBelVRRWpNeUVoTW5OQ1lqSWdZSEVSUVdNekkyTndRSzN1enA0QVRlN2V2ZUE3bUVqNDZDQW9tTGlZVURBbTMrdS83RUFUVUJNL2NCUVFFNC90UCt4ZzNyMTliZS90anM0ZFRrQUFFQXFnQUFBdGtGdHdBR0FEa0FzQUJGV0xBRkx4dXhCUncrV2JBQVJWaXdBQzhic1FBUVBsbXlCQUFGRVJJNXNBUXZzZ01CQ2l0WUlkZ2I5Rm15QWdNRkVSSTVNREVoSXhFRk5TVXpBdG02L29zQ0VoMEUwWW1veHdBQUFRQmRBQUFFTXdYRUFCY0FUUUN3QUVWWXNCQXZHN0VRSEQ1WnNBQkZXTEFBTHh1eEFCQStXYklYQVFvcldDSFlHL1Jac0FMUXNnTVFGeEVTT2JBUUVMSUpBUW9yV0NIWUcvUlpzQkFRc0F6UXNoVVhFQkVTT1RBeElTRTFBVFkyTlRRbUl5SUdGU00wSkRNeUZoVVVBUUVoQkRQOFJnSDRjRldLYzRxWnVRRUQyY3ZzL3U3K2VnTGJoUUl3ZjU5VmNwS2RqTW40MWJIWC90ZitXUUFCQUY3LzdBUDVCY1FBSmdCNEFMQUFSVml3RFM4YnNRMGNQbG13QUVWWXNCa3ZHN0VaRUQ1WnNnQU5HUkVTT2JBQUw3TFBBQUZkc3A4QUFYR3lMd0FCWGJKZkFBRnlzQTBRc2dZQkNpdFlJZGdiOUZtd0RSQ3dDZEN3QUJDeUpnRUtLMWdoMkJ2MFdiSVRKZ0FSRWptd0dSQ3dITkN3R1JDeUh3RUtLMWdoMkJ2MFdUQXhBVE0yTmpVUUl5SUdGU00wTmpNeUZoVVVCZ2NXRmhVVUJDQWtOVE1VRmpNeU5qVTBKaWNqQVlhTGc1Yi9lSSs1L2NQTzZudHFlSVAvQVA1bS92KzZsbjZHanB5VGl3TXlBb1p5QVFDSmNhM2wyc0pmc2l3bXNIL0U1dDYyYzRxTWczK0lBZ0FDQURVQUFBUlFCYkFBQ2dBT0FFa0FzQUJGV0xBSkx4dXhDUncrV2JBQVJWaXdCQzhic1FRUVBsbXlBUWtFRVJJNXNBRXZzZ0lCQ2l0WUlkZ2I5Rm13QnRDd0FSQ3dDOUN5Q0FZTEVSSTVzZzBKQkJFU09UQXhBVE1WSXhFakVTRTFBVE1CSVJFSEE0Ykt5cnI5YVFLTXhmMkJBY1VXQWVtWC9xNEJVbTBEOGZ3NUFzb29BQUVBbXYvc0JDMEZzQUFkQUdFQXNBQkZXTEFCTHh1eEFSdytXYkFBUlZpd0RTOGJzUTBRUGxtd0FSQ3lCQUVLSzFnaDJCdjBXYklIRFFFUkVqbXdCeSt5R2dFS0sxZ2gyQnYwV2JJRkJ4b1JFam13RFJDd0VkQ3dEUkN5RkFFS0sxZ2gyQnYwV2JBSEVMQWQwREF4RXhNaEZTRUROak15RWhVVUFpTWlKaWN6RmhZek1qWTFOQ1lqSWdjSHprb0M2djJ6TEd1SXgrcnoyc0gwRWE4UmtIYUJrNStFZVVVeEF0b0MxcXYrY3ovKytlRGgvdjNXdlgxL3NKdVNzVFVvQUFJQWhQL3NCQndGc1FBVUFDRUFUZ0N3QUVWWXNBQXZHN0VBSEQ1WnNBQkZXTEFOTHh1eERSQStXYkFBRUxJQkFRb3JXQ0hZRy9SWnNnY05BQkVTT2JBSEw3SVZBUW9yV0NIWUcvUlpzQTBRc2h3QkNpdFlJZGdiOUZrd01RRVZJd1lFQnpZek1oSVZGQUlqSWdBMU5SQUFKUU1pQmdjVkZCWXpNalkxTkNZRFR5TFkvd0FVYzhlKzQvWE8wZjc4QVZjQlU5SmZvQitpZVgyUGtRV3huUVQ0NFlUKzlOVGgvdklCUWYxSEFaSUJxUVg5Y0hKV1JMVGN1SldXdVFBQkFFMEFBQVFsQmJBQUJnQXlBTEFBUlZpd0JTOGJzUVVjUGxtd0FFVllzQUV2RzdFQkVENVpzQVVRc2dNQkNpdFlJZGdiOUZteUFBTUZFUkk1TURFQkFTTUJJVFVoQkNYOXBjSUNXZnpzQTlnRlNQcTRCUmlZQUFBREFIRC83QVFPQmNRQUZ3QWhBQ3NBWVFDd0FFVllzQlV2RzdFVkhENVpzQUJGV0xBSkx4dXhDUkErV2JJbkNSVVJFam13SnkreXp5Y0JYYklhQVFvcldDSFlHL1Jac2dNYUp4RVNPYklQSnhvUkVqbXdDUkN5SHdFS0sxZ2gyQnYwV2JBVkVMSWlBUW9yV0NIWUcvUlpNREVCRkFZSEZoWVZGQVlqSWlZMU5EWTNKaVkxTkRZek1oWUROQ1lpQmhRV016STJBU0lHRlJRV01qWTBKZ1BzYzJKeWhmL1EwdjJCY21GdzdNSEE3WmViK3BlVGc0S1UvdXB0aDRYZWhZb0VORzJxTURHOGQ3M2c0YngydmpFd3FteTQyTmo4b1hxYW1QaU9qd1FhaDNSdmlZbmVqQUFBQWdCay8vOEQrQVhFQUJjQUpBQllBTEFBUlZpd0N5OGJzUXNjUGxtd0FFVllzQk12RzdFVEVENVpzZ01UQ3hFU09iQURMN0lBQXdzUkVqbXdFeEN5RkFFS0sxZ2gyQnYwV2JBREVMSVlBUW9yV0NIWUcvUlpzQXNRc2g4QkNpdFlJZGdiOUZrd01RRUdCaU1pSmlZMU5EWTJNeklTRVJVUUFBVWpOVE0yTmlVeU5qYzFOQ1lqSWdZVkZCWURQanFoWUg2N1ptL01pTmo1L3JEK3JTUW41ZmIrN2wyZEpKNTVlcFNQQW9CRlZIemhpSkxxZlA2OS91azIvbGYrZVFXY0JPZjZjbFJLdHVTN21aWEJBUC8vQUliLzlRRnRCRVFBSmdBUzlnQUJCd0FTLy9jRGN3QVFBTEFBUlZpd0RTOGJzUTBZUGxrd01mLy9BQ24rM2dGVkJFUUFKd0FTLzk4RGN3RUdBQkFNQUFBUUFMQUFSVml3QXk4YnNRTVlQbGt3TVFBQkFFZ0F3d042QkVvQUJnQVdBTEFBUlZpd0JTOGJzUVVZUGxtd0F0Q3dBaTh3TVFFRkZRRTFBUlVCQ0FKeS9NNERNZ0tFL2NRQmU1SUJlc1FBQUFJQW1BR1BBOW9EendBREFBY0FKUUN3Qnkrd0E5Q3dBeSt5QUFFS0sxZ2gyQnYwV2JBSEVMSUVBUW9yV0NIWUcvUlpNREVCSVRVaEVTRTFJUVBhL0w0RFF2eStBMElETHFIOXdLQUFBQUVBaGdERUE5d0VTd0FHQUJZQXNBQkZXTEFDTHh1eEFoZytXYkFGMExBRkx6QXhBUUUxQVJVQk5RTWIvV3NEVnZ5cUFvb0JBNzcraHBMK2hjQUFBZ0JMLy9VRGRnWEVBQmdBSVFCUkFMQUFSVml3RUM4YnNSQWNQbG13QUVWWXNDQXZHN0VnRUQ1WnNoc0ZDaXRZSWRnYjlGbXlBQnNRRVJJNXNnUVFBQkVTT2JBUUVMSUpBUW9yV0NIWUcvUlpzQkFRc0F6UXNoVUFFQkVTT1RBeEFUWTJOemMyTlRRbUl5SUdGU00yTmpNeUZoVVVCd2NHRlFNME5qSVdGQVlpSmdGbEFqSk5nMVJ1YVdaOHVRTGp0cjNUb20xSndUZHNPRGhzTndHYWQ0cFVoMTl0YVhkc1c2TEh5N0d2cW14Um1QN0RMVDA5V2pzN0FBQUNBR3IrT3diV0JaY0FOUUJDQUdnQXNESXZzQUJGV0xBSUx4dXhDQkErV2JBRDBMSVBNZ2dSRWptd0R5K3lCUWdQRVJJNXNBZ1FzamtDQ2l0WUlkZ2I5Rm13RmRDd01oQ3lHd0lLSzFnaDJCdjBXYkFJRUxBcTBMQXFMN0lqQWdvcldDSFlHL1Jac0E4UXNrQUNDaXRZSWRnYjlGa3dNUUVHQWlNaUp3WUdJeUltTnpZU05qTXlGaGNEQmpNeU5qY1NBQ0VpQkFJSEJoSUVNekkyTnhjR0JpTWlKQUlURWhJa016SUVFZ0VHRmpNeU5qYzNFeVlqSWdZR3lnell0YnMxTm90S2pwSVREM20vYVZHQVVEUVRrM0dNQmhQK3VmNnl5ZjdJdEFzTWtBRW4wVnExUENVK3pXbjYvcGl6REF6ZUFYenYrUUZrcnZ2eURsRllQRzhrQVM0NFFIV1pBZmJ5L3Vpb1ZWUG96YVVCQTVRclAvM1c1K0MwQVlVQm1NZitpUGI0L3BQQkxDTnpKekxoQWFjQkd3RVRBYmZ2NFA1YS9wQ09tR1pmQ1FIM0hlNEFBQUlBSEFBQUJSMEZzQUFIQUFvQVJnQ3dBRVZZc0FRdkc3RUVIRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3Qmk4YnNRWVFQbG15Q1FRQ0VSSTVzQWt2c2dBQkNpdFlJZGdiOUZteUNnUUNFUkk1TURFQklRTWpBVE1CSXdFaEF3UE4vWjZKeGdJc3FBSXR4ZjFOQWUvNEFYeitoQVd3K2xBQ0dnS3BBQU1BcVFBQUJJZ0ZzQUFPQUJZQUh3QlZBTEFBUlZpd0FTOGJzUUVjUGxtd0FFVllzQUF2RzdFQUVENVpzaGNBQVJFU09iQVhMN0lQQVFvcldDSFlHL1Jac2dnUEZ4RVNPYkFBRUxJUUFRb3JXQ0hZRy9SWnNBRVFzaDhCQ2l0WUlkZ2I5Rmt3TVRNUklUSVdGUlFHQnhZV0ZSUUdJd0VSSVRJMk5SQWhKU0V5TmpVMEppTWhxUUhjN2U5MFpIYUovdWoreHdFOWhwdis0djdBQVNKK2w0eVAvdVFGc01UQVpwMHJJYm1BeE9BQ3FmMzBpM29CQjVwK2JIaHRBQUFCQUhmLzdBVFlCY1FBSEFCRkFMQUFSVml3Q3k4YnNRc2NQbG13QUVWWXNBTXZHN0VERUQ1WnNBc1FzQS9Rc0FzUXNoSUJDaXRZSWRnYjlGbXdBeEN5R1FFS0sxZ2gyQnYwV2JBREVMQWMwREF4QVFZRUl5QUFFVFUwRWlRek1nQVhJeVltSXlJQ0ZSVVVFak15TmpjRTJCdis0ZTcrL3Y3SmtRRUtyK2dCR0JmQkdhZVd1TkhHc3FDckhBSE81L3NCY2dFMmpNc0JOS1grL2VXdW5QN3crNDN0L3VpUnRBQUNBS2tBQUFUR0JiQUFDd0FWQURrQXNBQkZXTEFCTHh1eEFSdytXYkFBUlZpd0FDOGJzUUFRUGxtd0FSQ3lEQUVLSzFnaDJCdjBXYkFBRUxJTkFRb3JXQ0hZRy9SWk1ERXpFU0V5QkJJWEZSUUNCQWNERVRNeUVqVTFOQUlucVFHYnZnRWtud0dmL3RuRTA4cmU5K25XQmJDby9zckpYYzcreXFZQ0JSTDdpd0VVLzFYNEFSTUNBQUFCQUtrQUFBUkdCYkFBQ3dCT0FMQUFSVml3Qmk4YnNRWWNQbG13QUVWWXNBUXZHN0VFRUQ1WnNnc0VCaEVTT2JBTEw3SUFBUW9yV0NIWUcvUlpzQVFRc2dJQkNpdFlJZGdiOUZtd0JoQ3lDQUVLSzFnaDJCdjBXVEF4QVNFUklSVWhFU0VWSVJFaEErRDlpUUxkL0dNRGsvMHRBbmNDb2YzOG5RV3dudjRzQUFFQXFRQUFCQzhGc0FBSkFFQUFzQUJGV0xBRUx4dXhCQncrV2JBQVJWaXdBaThic1FJUVBsbXlDUUlFRVJJNXNBa3ZzZ0FCQ2l0WUlkZ2I5Rm13QkJDeUJnRUtLMWdoMkJ2MFdUQXhBU0VSSXhFaEZTRVJJUVBNL1ozQUE0YjlPZ0pqQW9QOWZRV3dudjRPQUFFQWV2L3NCTndGeEFBZkFHSUFzQUJGV0xBTEx4dXhDeHcrV2JBQVJWaXdBeThic1FNUVBsbXdDeEN3RDlDd0N4Q3lFUUVLSzFnaDJCdjBXYkFERUxJWUFRb3JXQ0hZRy9SWnNoNERDeEVTT2JBZUw3UVBIaDhlQWwyMFB4NVBIZ0pkc2gwQkNpdFlJZGdiOUZrd01TVUdCQ01pSkFJbk5SQUFJVElFRnlNQ0lTSUNBeFVVRWpNeU5qY1JJVFVoQk54Sy92ZXdzdjdzbHdJQk13RVc1QUVXSDhBMi90N0J4d0hndjJ5aU5mNnZBaEMvYW1tbkFUVExmd0ZKQVdycDFnRWgvdkgrLzNmMS90OHdPUUZIbkFBQkFLa0FBQVVJQmJBQUN3QlZBTEFBUlZpd0JpOGJzUVljUGxtd0FFVllzQW92RzdFS0hENVpzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdCQzhic1FRUVBsbXdBQkN3Q2RDd0NTK3lud2tCY3JJdkNRRmRzZ0lCQ2l0WUlkZ2I5Rmt3TVNFakVTRVJJeEV6RVNFUk13VUl3ZjBpd01BQzNzRUNvZjFmQmJEOWpnSnlBQUFCQUxjQUFBRjNCYkFBQXdBZEFMQUFSVml3QWk4YnNRSWNQbG13QUVWWXNBQXZHN0VBRUQ1Wk1ERWhJeEV6QVhmQXdBV3dBQUFCQURYLzdBUE1CYkFBRHdBdUFMQUFSVml3QUM4YnNRQWNQbG13QUVWWXNBVXZHN0VGRUQ1WnNBblFzQVVRc2d3QkNpdFlJZGdiOUZrd01RRXpFUlFHSXlJbU5UTVVGak15TmpjREM4SDcwZG55d0ltQ2Q1TUJCYkQ3K2RIczNzaDlqSmFIQUFBQkFLa0FBQVVGQmJBQUN3QjBBTEFBUlZpd0JTOGJzUVVjUGxtd0FFVllzQWN2RzdFSEhENVpzQUJGV0xBQ0x4dXhBaEErV2JBQVJWaXdDeThic1FzUVBsbXlBQUlGRVJJNVFCRktBRm9BYWdCNkFJb0FtZ0NxQUxvQUNGMnlPUUFCWGJJR0JRSVJFamxBRXpZR1JnWldCbVlHZGdhR0JwWUdwZ2EyQmdsZE1ERUJCeEVqRVRNUkFUTUJBU01DRzdMQXdBS0g2UDNEQW1ybUFxVzUvaFFGc1Awd0F0RDlmZnpUQUFFQXFRQUFCQndGc0FBRkFDZ0FzQUJGV0xBRUx4dXhCQncrV2JBQVJWaXdBaThic1FJUVBsbXlBQUVLSzFnaDJCdjBXVEF4SlNFVklSRXpBV29Dc3Z5TndaMmRCYkFBQUFFQXFRQUFCbElGc0FBT0FGa0FzQUJGV0xBQUx4dXhBQncrV2JBQVJWaXdBaThic1FJY1BsbXdBRVZZc0FRdkc3RUVFRDVac0FCRldMQUlMeHV4Q0JBK1diQUFSVml3REM4YnNRd1FQbG15QVFBRUVSSTVzZ2NBQkJFU09iSUtBQVFSRWprd01Ra0NNeEVqRVJNQkl3RVRFU01SQWFFQjNBSGMrY0FTL2lLVC9pTVR3QVd3KzF3RXBQcFFBamNDWlB0bEJKajluLzNKQmJBQUFBRUFxUUFBQlFnRnNBQUpBRXl5QVFvTEVSSTVBTEFBUlZpd0JTOGJzUVVjUGxtd0FFVllzQWd2RzdFSUhENVpzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdBeThic1FNUVBsbXlBZ1VBRVJJNXNnY0ZBQkVTT1RBeElTTUJFU01STXdFUk13VUl3ZjBqd2NFQzM3OEVZdnVlQmJEN21RUm5BQUlBZHYvc0JRa0Z4QUFSQUI4QU9RQ3dBRVZZc0Ewdkc3RU5IRDVac0FCRldMQUVMeHV4QkJBK1diQU5FTElWQVFvcldDSFlHL1Jac0FRUXNod0JDaXRZSWRnYjlGa3dNUUVVQWdRaklpUUNKelUwRWlRek1nUVNGU2NRQWlNaUFnY1ZGQkl6TWhJM0JRbVEvdml3clA3Mmt3S1NBUXVzcndFTGtML1F1N2JSQTlPNXVzd0RBcW5XL3NHb3FRRTV6bW5TQVVLcnFmNi8xUUlCQXdFVi91djJhL3YrNFFFUC9RQUFBZ0NwQUFBRXdBV3dBQW9BRXdCTnNnb1VGUkVTT2JBS0VMQU0wQUN3QUVWWXNBTXZHN0VESEQ1WnNBQkZXTEFCTHh1eEFSQStXYklMQXdFUkVqbXdDeSt5QUFFS0sxZ2gyQnYwV2JBREVMSVNBUW9yV0NIWUcvUlpNREVCRVNNUklUSUVGUlFFSXlVaE1qWTFOQ1luSVFGcHdBSVo3d0VQL3ZmMy9xa0JXWnFrcEkvK25BSTYvY1lGc1BUSjFPV2RrWW1DbkFNQUFnQnQvd29GQmdYRUFCVUFJZ0JOc2dnakpCRVNPYkFJRUxBWjBBQ3dBRVZZc0JFdkc3RVJIRDVac0FCRldMQUlMeHV4Q0JBK1diSURDQkVSRWptd0VSQ3lHUUVLSzFnaDJCdjBXYkFJRUxJZ0FRb3JXQ0hZRy9SWk1ERUJGQUlIQlFjbEJpTWlKQUluTlRRU0pETXlCQklWSnhBQ0l5SUNCeFVVRWlBU053VUJobmtCQklQK3pVaFFyUDcya3dLU0FRdXNzQUVMa01ETnZyWFJBOUVCZE13REFxblQvczlXekhuMEVxa0JPYzVwMGdGQ3E2cit3ZFVCQVFFQkYvN3I5bXY2L3VBQkQvMEFBQUlBcUFBQUJNa0ZzQUFPQUJjQVliSUZHQmtSRWptd0JSQ3dGdEFBc0FCRldMQUVMeHV4QkJ3K1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBMHZHN0VORUQ1WnNoQUVBaEVTT2JBUUw3SUFBUW9yV0NIWUcvUlpzZ3NBQkJFU09iQUVFTElXQVFvcldDSFlHL1JaTURFQklSRWpFU0V5QkJVVUJnY0JGU01CSVRJMk5UUW1KeUVDdi82cXdRSGk5Z0VKazRNQlZzNzliZ0VuajZtaG1QN2FBazM5c3dXdzROYUl5akw5bGd3QzZwUjhoNUFCQUFBQkFGRC83QVJ5QmNRQUpnQmhzZ0FuS0JFU09RQ3dBRVZZc0FZdkc3RUdIRDVac0FCRldMQWFMeHV4R2hBK1diQUdFTEFMMExBR0VMSU9BUW9yV0NIWUcvUlpzaVlhQmhFU09iQW1FTElVQVFvcldDSFlHL1Jac0JvUXNCL1FzQm9Rc2lJQkNpdFlJZGdiOUZrd01RRW1KalUwSkRNeUZoWVZJelFtSXlJR0ZSUVdCQllXRlJRRUl5SWtKalV6RkJZek1qWTBKZ0pXOStFQkU5eVc2NEhCcUptT241Y0JhODFqL3V6bmx2NzhqY0hEbzVpaWxnS0pSOCtZck9GMHpIbUVsMzF2V1h0bWU2UnZzZFZ6eUgrRW1YeldkUUFBQVFBeEFBQUVsd1d3QUFjQUxnQ3dBRVZZc0FZdkc3RUdIRDVac0FCRldMQUNMeHV4QWhBK1diQUdFTElBQVFvcldDSFlHL1Jac0FUUU1ERUJJUkVqRVNFMUlRU1gvaXkvL2kwRVpnVVMrdTRGRXA0QUFRQ00vK3dFcWdXd0FCSUFQTElGRXhRUkVqa0FzQUJGV0xBQUx4dXhBQncrV2JBQVJWaXdDUzhic1FrY1BsbXdBRVZZc0FVdkc3RUZFRDVac2c0QkNpdFlJZGdiOUZrd01RRVJCZ0FIQnlJQUp4RXpFUlFXTXpJMk5SRUVxZ0grLzl3ejcvN2tBcjZ1b2FPdEJiRDhJczcrK2hBQ0FRTGlBK0Q4SnA2dnJwNEQyd0FBQVFBY0FBQUUvUVd3QUFZQU9MSUFCd2dSRWprQXNBQkZXTEFCTHh1eEFSdytXYkFBUlZpd0JTOGJzUVVjUGxtd0FFVllzQU12RzdFREVENVpzZ0FCQXhFU09UQXhKUUV6QVNNQk13S0xBYURTL2VTcS9lWFIvd1N4K2xBRnNBQUFBUUE5QUFBRzdRV3dBQklBV1FDd0FFVllzQU12RzdFREhENVpzQUJGV0xBSUx4dXhDQncrV2JBQVJWaXdFUzhic1JFY1BsbXdBRVZZc0Fvdkc3RUtFRDVac0FCRldMQVBMeHV4RHhBK1diSUJBd29SRWpteUJnTUtFUkk1c2cwRENoRVNPVEF4QVJjM0FUTUJGemNUTXdFakFTY0hBU01CTXdIakhDa0JJS0lCR1NnZjRzSCtuNi8rMUJjWC9zbXYvcURBQWN2QXJRUDQvQWl3eEFQaytsQUVKVzl2KzlzRnNBQUJBRGtBQUFUT0JiQUFDd0JyQUxBQVJWaXdBUzhic1FFY1BsbXdBRVZZc0Fvdkc3RUtIRDVac0FCRldMQUVMeHV4QkJBK1diQUFSVml3Qnk4YnNRY1FQbG15QUFFRUVSSTVRQW1HQUpZQXBnQzJBQVJkc2dZQkJCRVNPVUFKaVFhWkJxa0d1UVlFWGJJREFBWVJFam15Q1FZQUVSSTVNREVCQVRNQkFTTUJBU01CQVRNQ2hBRmQ0djQwQWRmay9wcittT01CMlA0ejRRT0NBaTc5THYwaUFqajl5QUxlQXRJQUFBRUFEd0FBQkxzRnNBQUlBREVBc0FCRldMQUJMeHV4QVJ3K1diQUFSVml3Qnk4YnNRY2NQbG13QUVWWXNBUXZHN0VFRUQ1WnNnQUJCQkVTT1RBeEFRRXpBUkVqRVFFekFtVUJmTnIrQ3NEK0N0d0MxUUxiL0cvOTRRSWZBNUVBQUFFQVZnQUFCSG9Gc0FBSkFFUUFzQUJGV0xBSEx4dXhCeHcrV2JBQVJWaXdBaThic1FJUVBsbXlBQUVLSzFnaDJCdjBXYklFQUFJUkVqbXdCeEN5QlFFS0sxZ2gyQnYwV2JJSkJRY1JFamt3TVNVaEZTRTFBU0UxSVJVQk9RTkIrOXdESHZ6dkEvZWRuWkFFZ3A2TkFBQUJBSkwreUFJTEJvQUFCd0FpQUxBRUw3QUhMN0lBQVFvcldDSFlHL1Jac0FRUXNnTUJDaXRZSWRnYjlGa3dNUUVqRVRNVklSRWhBZ3Uvdi82SEFYa0Y2UGw0bUFlNEFBQUJBQ2ovZ3dNNEJiQUFBd0FUQUxBQ0w3QUFSVml3QUM4YnNRQWNQbGt3TVJNekFTTW9zQUpnc0FXdytkTUFBUUFKL3NnQmd3YUFBQWNBSlFDd0FpK3dBUyt3QWhDeUJRRUtLMWdoMkJ2MFdiQUJFTElHQVFvcldDSFlHL1JaTURFVElSRWhOVE1SSXdrQmV2Nkd3Y0VHZ1BoSW1BYUlBQUFCQUVBQzJRTVVCYkFBQmdBbnNnQUhDQkVTT1FDd0FFVllzQU12RzdFREhENVpzQURRc2dFSEF4RVNPYkFCTDdBRjBEQXhBUU1qQVRNQkl3R3F2cXdCSzM4Qktxc0V1LzRlQXRmOUtRQUJBQVQvYVFPWUFBQUFBd0FiQUxBQVJWaXdBeThic1FNUVBsbXlBQUVLSzFnaDJCdjBXVEF4QlNFMUlRT1kvR3dEbEplWEFBQUJBRGtFMkFIYUJmNEFBd0FqQUxBQkw3SVBBUUZkc0FEUUdiQUFMeGl3QVJDd0F0Q3dBaSswRHdJZkFnSmRNREVCSXdFekFkcWYvdjdmQk5nQkpnQUFBZ0J0Lyt3RDZnUk9BQjRBS0FCNXNoY3BLaEVTT2JBWEVMQWcwQUN3QUVWWXNCY3ZHN0VYR0Q1WnNBQkZXTEFFTHh1eEJCQStXYkFBUlZpd0FDOGJzUUFRUGxteUFoY0VFUkk1c2dzWEJCRVNPYkFMTDdBWEVMSVBBUW9yV0NIWUcvUlpzaElMRnhFU09iQUVFTElmQVFvcldDSFlHL1Jac0FzUXNpTUJDaXRZSWRnYjlGa3dNU0VtSndZaklpWTFOQ1F6TXpVMEppTWlCaFVqTkRZMk16SVdGeEVVRnhVbE1qWTNOU01nRlJRV0F5Z1FDb0d6b00wQkFlbTBkSEZqaHJwenhYYTcxQVFtL2d0WG5DT1IvcXgwSUZLR3RZdXB1MVZoYzJSSFVaZFl1NlQrRHBWWUVJMWFTTjdIVjJJQUFnQ00vK3dFSUFZQUFBNEFHUUJrc2hJYUd4RVNPYkFTRUxBRDBBQ3dDQyt3QUVWWXNBd3ZHN0VNR0Q1WnNBQkZXTEFETHh1eEF4QStXYkFBUlZpd0JpOGJzUVlRUGxteUJRZ0RFUkk1c2dvTUF4RVNPYkFNRUxJU0FRb3JXQ0hZRy9SWnNBTVFzaGNCQ2l0WUlkZ2I5Rmt3TVFFVUFpTWlKd2NqRVRNUk5pQVNFU2MwSmlNaUJ4RVdNekkyQkNEa3dNMXdDYXE1Y0FHSzRibVNpYmRRVmJTRmxBSVIrUDdUa1gwR0FQM0RpLzdXL3YwRnZjNnEvaXlxemdBQkFGei83QVBzQkU0QUhRQkpzaEFlSHhFU09RQ3dBRVZZc0JBdkc3RVFHRDVac0FCRldMQUlMeHV4Q0JBK1diSUFBUW9yV0NIWUcvUlpzQWdRc0FQUXNCQVFzQlRRc0JBUXNoY0JDaXRZSWRnYjlGa3dNU1V5TmpjekRnSWpJZ0FSTlRRMk5qTXlGaGNqSmlZaklnWVZGUlFXQWo1amxBaXZCWGJGYnQzKyszVFpsTGJ4Q0s4SWoybU5tNXFEZUZwZHFHUUJKd0VBSDU3MmlOcXVhWWZMd0NPN3lnQUFBZ0JmLyt3RDhBWUFBQThBR2dCa3NoZ2JIQkVTT2JBWUVMQUQwQUN3Qmkrd0FFVllzQU12RzdFREdENVpzQUJGV0xBTUx4dXhEQkErV2JBQVJWaXdDQzhic1FnUVBsbXlCUU1NRVJJNXNnb0REQkVTT2JBTUVMSVRBUW9yV0NIWUcvUlpzQU1Rc2hnQkNpdFlJZGdiOUZrd01STTBFak15RnhFekVTTW5CaU1pQWpVWEZCWXpNamNSSmlNaUJsL3N2NzV2dWFvSmI4YTg3Ym1ZaHJCUlU2eUltQUltK1FFdmdnSTArZ0IwaUFFMCtBZTQwSjRCOFpuU0FBQUNBRjMvN0FQekJFNEFGUUFkQUdteUNCNGZFUkk1c0FnUXNCYlFBTEFBUlZpd0NDOGJzUWdZUGxtd0FFVllzQUF2RzdFQUVENVpzaG9JQUJFU09iQWFMN1MvR3M4YUFsMnlEQUVLSzFnaDJCdjBXYkFBRUxJUUFRb3JXQ0hZRy9SWnNoTUlBQkVTT2JBSUVMSVdBUW9yV0NIWUcvUlpNREVGSWdBMU5UUTJOak15RWhFVklSWVdNekkyTnhjR0FTSUdCeUUxSmlZQ1Rkeis3SHZkZ2RQcS9TTUVzNHBpaUROeGlQN1pjSmdTQWg0SWlCUUJJZklpb2YyUC91cisvVTJneFZCQ1dORUR5cU9URG8yYkFBRUFQQUFBQXNvR0ZRQVZBR095RHhZWEVSSTVBTEFBUlZpd0NDOGJzUWdlUGxtd0FFVllzQU12RzdFREdENVpzQUJGV0xBUkx4dXhFUmcrV2JBQVJWaXdBQzhic1FBUVBsbXdBeEN5QVFFS0sxZ2gyQnYwV2JBSUVMSU5BUW9yV0NIWUcvUlpzQUVRc0JQUXNCVFFNREV6RVNNMU16VTBOak15RndjbUl5SUdGUlV6RlNNUjU2dXJ1cXBBUHdvdk5WcGk1K2NEcTQ5dnJyNFJsZ2xwWW5LUC9GVUFBZ0JnL2xZRDhnUk9BQmtBSkFDRHNpSWxKaEVTT2JBaUVMQUwwQUN3QUVWWXNBTXZHN0VER0Q1WnNBQkZXTEFHTHh1eEJoZytXYkFBUlZpd0N5OGJzUXNTUGxtd0FFVllzQmN2RzdFWEVENVpzZ1VERnhFU09iSVBGd3NSRWptd0N4Q3lFUUVLSzFnaDJCdjBXYklWQXhjUkVqbXdGeEN5SFFFS0sxZ2gyQnYwV2JBREVMSWlBUW9yV0NIWUcvUlpNREVUTkJJek1oYzNNeEVVQmlNaUppYzNGak15TmpVMUJpTWlBamNVRmpNeU54RW1JeUlHWU9yQnhtOEpxZm5TZGVBN1lIZXNoNWR2d0w3cnVwYUhyMUpWcW9lWUFpYjlBU3VNZVB2ZzB2SmtWMitUbUlwZGdBRXk4N2ZSbndIdW05SUFBQUVBakFBQUE5OEdBQUFSQUVteUNoSVRFUkk1QUxBUUw3QUFSVml3QWk4YnNRSVlQbG13QUVWWXNBVXZHN0VGRUQ1WnNBQkZXTEFPTHh1eERoQStXYklBQWdVUkVqbXdBaEN5Q2dFS0sxZ2gyQnYwV1RBeEFUWXpJQk1SSXhFbUppTWlCZ2NSSXhFekFVVjd4UUZYQTdrQmFXOWFpQ2E1dVFPM2wvNTkvVFVDekhWd1lFNzgvUVlBQUFJQWpRQUFBV2dGeEFBREFBd0FQcklHRFE0UkVqbXdCaEN3QWRBQXNBQkZXTEFDTHh1eEFoZytXYkFBUlZpd0FDOGJzUUFRUGxtd0FoQ3dDdEN3Q2kreUJnVUtLMWdoMkJ2MFdUQXhJU01STXdNME5qSVdGQVlpSmdGVnVibklOMnc0T0d3M0JEb0JIeTArUGxvOFBBQUMvNy8rU3dGWkJjUUFEQUFXQUVteUVCY1lFUkk1c0JBUXNBRFFBTEFBUlZpd0RDOGJzUXdZUGxtd0FFVllzQU12RzdFREVqNVpzZ2dCQ2l0WUlkZ2I5Rm13REJDd0ZkQ3dGUyt5RUFVS0sxZ2gyQnYwV1RBeEFSRVFJU0luTlJZek1qWTFFUU0wTmpNeUZoUUdJaVlCUy83bFBUUWdORDVCRXpjMU5qZzRiRFlFT3Z0Si9zZ1NsQWhEVXdTN0FSOHNQejVhUER3QUFBRUFqUUFBQkF3R0FBQU1BSFVBc0FCRldMQUVMeHV4QkI0K1diQUFSVml3Q0M4YnNRZ1lQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFMTHh1eEN4QStXYklBQ0FJUkVqbEFGVG9BU2dCYUFHb0FlZ0NLQUpvQXFnQzZBTW9BQ2wyeUJnZ0NFUkk1UUJVMkJrWUdWZ1ptQm5ZR2hnYVdCcVlHdGdiR0JncGRNREVCQnhFakVUTVJOd0V6QVFFakFicDB1YmxqQVZIaC9sc0IxdGtCOVhuK2hBWUEvRjkzQVdUK1BQMktBQUVBbkFBQUFWVUdBQUFEQUIwQXNBQkZXTEFDTHh1eEFoNCtXYkFBUlZpd0FDOGJzUUFRUGxrd01TRWpFVE1CVmJtNUJnQUFBQUVBaXdBQUJuZ0VUZ0FkQUhleUJCNGZFUkk1QUxBQVJWaXdBeThic1FNWVBsbXdBRVZZc0Fndkc3RUlHRDVac0FCRldMQUFMeHV4QUJnK1diQUFSVml3Q3k4YnNRc1FQbG13QUVWWXNCUXZHN0VVRUQ1WnNBQkZXTEFiTHh1eEd4QStXYklCQ0FzUkVqbXlCUWdMRVJJNXNBZ1FzaEFCQ2l0WUlkZ2I5Rm13R05Bd01RRVhOak15RnpZMk15QVRFU01STkNZaklnWUhFU01STkNNaUJ4RWpFUUU2QlhmSzQxSTJyWFlCWkFhNWFuMW5pQXU2NTdaRHVRUTZlSXl1VG1EK2gvMHJBc3AwYzN0by9USUN4ZXliL09vRU9nQUJBSXdBQUFQZkJFNEFFUUJUc2dzU0V4RVNPUUN3QUVWWXNBTXZHN0VER0Q1WnNBQkZXTEFBTHh1eEFCZytXYkFBUlZpd0JpOGJzUVlRUGxtd0FFVllzQTh2RzdFUEVENVpzZ0VEQmhFU09iQURFTElMQVFvcldDSFlHL1JaTURFQkZ6WXpJQk1SSXhFbUppTWlCZ2NSSXhFQk93Wjh5QUZYQTdrQmFXOWFpQ2E1QkRxSW5QNTkvVFVDekhWd1lFNzgvUVE2QUFBQ0FGdi83QVEwQkU0QUR3QWJBRU95REJ3ZEVSSTVzQXdRc0JQUUFMQUFSVml3QkM4YnNRUVlQbG13QUVWWXNBd3ZHN0VNRUQ1WnNoTUJDaXRZSWRnYjlGbXdCQkN5R1FFS0sxZ2gyQnYwV1RBeEV6UTJOak15QUJVVkZBWUdJeUlBTlJjVUZqTXlOalUwSmlNaUJsdDkzNC9kQVJGNTRaTGMvdSs2cDR5TnBxbU1pYWdDSjUvK2l2N08vZzJlKzR3Qk12d0p0TnJkeDdMZDJnQUNBSXorWUFRZUJFNEFEd0FhQUc2eUV4c2NFUkk1c0JNUXNBelFBTEFBUlZpd0RDOGJzUXdZUGxtd0FFVllzQWt2RzdFSkdENVpzQUJGV0xBR0x4dXhCaEkrV2JBQVJWaXdBeThic1FNUVBsbXlCUXdERVJJNXNnb01BeEVTT2JBTUVMSVRBUW9yV0NIWUcvUlpzQU1Rc2hnQkNpdFlJZGdiOUZrd01RRVVBaU1pSnhFakVUTVhOak15RWhFbk5DWWpJZ2NSRmpNeU5nUWU0c0hGY2JtcENYSEp3K081bklpb1ZGT3JoWjBDRWZmKzBuMzk5d1hhZUl6KzJ2NzZCTGZVbGYzN2xOTUFBQUlBWC81Z0ErOEVUZ0FQQUJvQWE3SVlHeHdSRWptd0dCQ3dBOUFBc0FCRldMQURMeHV4QXhnK1diQUFSVml3Qmk4YnNRWVlQbG13QUVWWXNBZ3ZHN0VJRWo1WnNBQkZXTEFNTHh1eERCQStXYklGQXd3UkVqbXlDZ01NRVJJNXNoTUJDaXRZSWRnYjlGbXdBeEN5R0FFS0sxZ2gyQnYwV1RBeEV6UVNNeklYTnpNUkl4RUdJeUlDTlJjVUZqTXlOeEVtSXlJR1grckZ3RzhJcXJsd3VzVHB1WjJGcFZkWW9vYWVBaWIvQVNtQmJmb21BZ1I0QVRIOENMclVrZ0lTajlVQUFRQ01BQUFDbHdST0FBMEFScklFRGc4UkVqa0FzQUJGV0xBTEx4dXhDeGcrV2JBQVJWaXdDQzhic1FnWVBsbXdBRVZZc0FVdkc3RUZFRDVac0FzUXNnSUJDaXRZSWRnYjlGbXlDUXNGRVJJNU1ERUJKaU1pQnhFakVUTVhOak15RndLWEtqRzJRYm0wQTF1bk5od0RsQWViL1FBRU9uMlJEZ0FCQUYvLzdBTzdCRTRBSmdCaHNna25LQkVTT1FDd0FFVllzQWt2RzdFSkdENVpzQUJGV0xBY0x4dXhIQkErV2JJREhBa1JFam13Q1JDd0RkQ3dDUkN5RUFFS0sxZ2gyQnYwV2JBREVMSVZBUW9yV0NIWUcvUlpzQndRc0NIUXNCd1FzaVFCQ2l0WUlkZ2I5Rmt3TVFFMEppUW1KalUwTmpNeUZoVWpOQ1lqSWdZVkZCWUVGaFlWRkFZaklpWW1OVE1XRmpNeU5nTUNjZjducFUvaHI3amx1b0ZpWlhKcUFSV3NVK2k1Z3NoeHVRV0xjbWwvQVI5TFV6eFVkRkNGdUw2VVRHNVlSME5FUGxaNVY1R3ZYS1ZnWFcxVkFBRUFDZi9zQWxZRlFBQVZBRit5RGhZWEVSSTVBTEFBUlZpd0FTOGJzUUVZUGxtd0FFVllzQk12RzdFVEdENVpzQUJGV0xBTkx4dXhEUkErV2JBQkVMQUEwTEFBTDdBQkVMSURBUW9yV0NIWUcvUlpzQTBRc2dnQkNpdFlJZGdiOUZtd0F4Q3dFZEN3RXRBd01RRVJNeFVqRVJRV016STNGUVlqSWlZMUVTTTFNeEVCaDhyS05rRWdPRWxGZkg3RnhRVkEvdnFQL1dGQlFReVdGSmFLQXArUEFRWUFBUUNJLyt3RDNBUTZBQkFBVTdJS0VSSVJFamtBc0FCRldMQUdMeHV4QmhnK1diQUFSVml3RFM4YnNRMFlQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFRTHh1eEVCQStXYklBRFFJUkVqbXdBaEN5Q2dFS0sxZ2gyQnYwV1RBeEpRWWpJaVluRVRNUkZETXlOeEV6RVNNREtHelJyYlVCdWNqVVJybXdhMy9KeFFMQS9VWDJuZ01UKzhZQUFBRUFJUUFBQTdvRU9nQUdBRGl5QUFjSUVSSTVBTEFBUlZpd0FTOGJzUUVZUGxtd0FFVllzQVV2RzdFRkdENVpzQUJGV0xBREx4dXhBeEErV2JJQUJRTVJFamt3TVNVQk13RWpBVE1COFFFTXZmNThqZjU0dmZzRFAvdkdCRG9BQUFFQUt3QUFCZE1FT2dBTUFHQ3lCUTBPRVJJNUFMQUFSVml3QVM4YnNRRVlQbG13QUVWWXNBZ3ZHN0VJR0Q1WnNBQkZXTEFMTHh1eEN4ZytXYkFBUlZpd0F5OGJzUU1RUGxtd0FFVllzQVl2RzdFR0VENVpzZ0FMQXhFU09iSUZDd01SRWpteUNnc0RFUkk1TURFbEV6TUJJd0VCSXdFekV4TXpCRXJRdWY3Rmx2NzUvd0NXL3NhNDFmeVYvd003KzhZRE5Qek1CRHI4MWdNcUFBRUFLUUFBQThvRU9nQUxBRk1Bc0FCRldMQUJMeHV4QVJnK1diQUFSVml3Q2k4YnNRb1lQbG13QUVWWXNBUXZHN0VFRUQ1WnNBQkZXTEFITHh1eEJ4QStXYklBQ2dRUkVqbXlCZ29FRVJJNXNnTUFCaEVTT2JJSkJnQVJFamt3TVFFVE13RUJJd01ESXdFQk13SDM4TmorbmdGdDF2cjYxd0Z0L3A3V0FxOEJpLzNwL2QwQmxmNXJBaU1DRndBQkFCYitTd093QkRvQUR3QkpzZ0FRRVJFU09RQ3dBRVZZc0FFdkc3RUJHRDVac0FCRldMQU9MeHV4RGhnK1diQUFSVml3QlM4YnNRVVNQbG15QUE0RkVSSTVzZ2tCQ2l0WUlkZ2I5Rm13QUJDd0RkQXdNUUVUTXdFQ0l5Y25OUmN5TmpjM0FUTUI3dnpHL2sxbDNDTkZNbDVwSWluK2Zzb0JEd01yK3gvKzhnTU5sZ1JNWlc0RUxnQUJBRmdBQUFPekJEb0FDUUJFQUxBQVJWaXdCeThic1FjWVBsbXdBRVZZc0FJdkc3RUNFRDVac2dBQkNpdFlJZGdiOUZteUJBQUNFUkk1c0FjUXNnVUJDaXRZSWRnYjlGbXlDUVVIRVJJNU1ERWxJUlVoTlFFaE5TRVZBVG9DZWZ5bEFsWDl0QU0wbDVlSUF4bVpnd0FBQVFCQS9wSUNuZ1k5QUJnQU1iSVRHUm9SRWprQXNBMHZzQUF2c2djTkFCRVNPYkFITDdJZkJ3RmRzZ1lEQ2l0WUlkZ2I5Rm15RXdZSEVSSTVNREVCSmlZMU5UUWpOVEkxTlRZMk54Y0dFUlVVQnhZVkZSSVhBbml4czlUVUFxK3pKdEducHdQTy9wSXk1YnpIODVIeTBMZmhNM05EL3ViSzQxbGE1YzcrN1VJQUFBRUFyLzd5QVVRRnNBQURBQk1Bc0FBdnNBQkZXTEFDTHh1eEFodytXVEF4QVNNUk13RkVsWlgrOGdhK0FBQUJBQlAra2dKeUJqMEFHQUF4c2dVWkdoRVNPUUN3Q3krd0dDK3lFUXNZRVJJNXNCRXZzaDhSQVYyeUVnTUtLMWdoMkJ2MFdiSUZFaEVSRWprd01SYzJFelUwTnlZMU5SQW5OeFlXRnhVVU14VWlGUlVVQmdjVHl3ZTF0ZEVtc2JJQjFOUzFyL3RCQVFyYzUxUlM2Y3NCR2tOek11RzUwdStSODhxODRqSUFBQUVBZ3dHU0JPOERJZ0FYQUVLeUVSZ1pFUkk1QUxBQVJWaXdEeThic1E4V1BsbXdBTkN3RHhDd0ZOQ3dGQyt5QXdFS0sxZ2gyQnYwV2JBUEVMSUlBUW9yV0NIWUcvUlpzQU1Rc0F2UU1ERUJGQVlqSWk0Q0l5SUdGUWMwTmpNeUZoWVhGekkyTlFUdnU0bElnS2xLS2s1VW9iaUxUSXl3UUIxTVh3TUpudGsxbENSclhnS2d6a0NoQ2dKMFh3QUNBSXYrbUFGbUJFMEFBd0FNQURLeUJnME9FUkk1c0FZUXNBRFFBTEFDTDdBQVJWaXdDeThic1FzWVBsbXlCZ1VLSzFnaDJCdjBXYklCQWdZUkVqa3dNUk16RXlNVEZBWWlKalEyTWhhcXFBM0N5VGRzT0Roc053S3MrK3dGVEMwK1BsbzhQQUFCQUduL0N3UDVCU1lBSVFCU3NnQWlJeEVTT1FDd0FFVllzQlF2RzdFVUdENVpzQUJGV0xBS0x4dXhDaEErV2JBSDBMSUFBUW9yV0NIWUcvUlpzQW9Rc0FQUXNCUVFzQkhRc0JRUXNCalFzQlFRc2hzQkNpdFlJZGdiOUZrd01TVXlOamN6QmdZSEZTTTFKZ0kxTlRRU056VXpGUllXRnlNbUppTWlCaFVWRkJZQ1NtU1VDSzhHeHBDNXM4aktzYm1Xd0FhdkNJOXBqWnViZzNsWmZza2E2ZW9pQVJ6Y0k5UUJIU0hpM3hmVWxtbUh5OEFqdThvQUFRQmJBQUFFYUFYRUFDRUFmTEljSWlNUkVqa0FzQUJGV0xBVUx4dXhGQncrV2JBQVJWaXdCUzhic1FVUVBsbXlIeFFGRVJJNXNCOHZzbDhmQVhLeWp4OEJjYksvSHdGZHNnQUJDaXRZSWRnYjlGbXdCUkN5QXdFS0sxZ2gyQnYwV2JBSDBMQUkwTEFBRUxBTjBMQWZFTEFQMExBVUVMQVkwTEFVRUxJYkFRb3JXQ0hZRy9SWk1ERUJGeFFISVFjaE5UTTJOamMxSnlNMU13TTBOak15RmhVak5DWWpJZ1lWRXlFVkFjRUlQZ0xkQWZ2NFRTZ3lBZ2lsb0FuMXlMN2V2Mzl2YVlJSkFUOENidHlhVzUyZENZTmdDTjJkQVFUSDd0U3hhM3lhZmY3OG5RQUFBZ0JwLytVRld3VHhBQnNBS2dBL3NnSXJMQkVTT2JBQ0VMQW4wQUN3QUVWWXNBSXZHN0VDRUQ1WnNCRFFzQkF2c0FJUXNoOEJDaXRZSWRnYjlGbXdFQkN5SndFS0sxZ2gyQnYwV1RBeEpRWWpJaWNISnpjbU5UUTNKemNYTmpNeUZ6Y1hCeFlWRkFjWEJ3RVVGaFl5TmpZMU5DWW1JeUlHQmdSUG45SFBuNGFDaTJod2s0S1Ruc1BFbjVXRWwyNW1qNFQ4WUhQRTRzUnhjY1Z3Y2NSemNJU0NpSWVObk1yT281ZUlsbmg1bUltYW84dkVuNUNJQW50NzFIcDcwM3Q2MDNsNDFBQUFBUUFmQUFBRXJRV3dBQllBYXdDd0FFVllzQll2RzdFV0hENVpzQUJGV0xBQkx4dXhBUncrV2JBQVJWaXdEQzhic1F3UVBsbXlEeE1ESzdJQURCWVJFam0wRHhNZkV3SmRzQk1Rc0FQUXNCTVFzaElDQ2l0WUlkZ2I5Rm13QnRDd0R4Q3dCOUN3RHhDeURnSUtLMWdoMkJ2MFdiQUswREF4QVFFekFTRVZJUlVoRlNFUkl4RWhOU0UxSVRVaEFUTUNaZ0ZzMi81ZUFUaitnQUdBL29EQi9vWUJldjZHQVRuK1h0d0REZ0tpL1RCOXBYeit2Z0ZDZktWOUF0QUFBQUlBay83eUFVMEZzQUFEQUFjQUdBQ3dBQyt3QUVWWXNBWXZHN0VHSEQ1WnNnVUJBeXN3TVJNUk14RVJJeEV6azdxNnV2N3lBeGY4NlFQSUF2WUFBZ0JhL2hFRWVRWEVBRFFBUkFDQXNpTkZSaEVTT2JBakVMQTEwQUN3Q0Mrd0FFVllzQ012RzdFakhENVpzaFlJSXhFU09iQVdFTEkvQVFvcldDSFlHL1Jac2dJV1B4RVNPYkFJRUxBTzBMQUlFTElSQVFvcldDSFlHL1Jac2pBakNCRVNPYkF3RUxJM0FRb3JXQ0hZRy9SWnNoMDNNQkVTT2JBakVMQW4wTEFqRUxJcUFRb3JXQ0hZRy9SWk1ERUJGQWNXRmhVVUJDTWlKaWNtTlRjVUZqTXlOalUwSmljdUFqVTBOeVltTlRRa016SUVGU00wSmlNaUJoVVVGaFlFSGdJbEppY0dCaFVVRmhZRUZ6WTJOVFFtQkhtNlJVaisvT1J3eVVhTHVyU2NpS2FPMGJiQVhiWkNSd0VMM3VnQkJMbW9pNDZoT0ljQkg2bHhPdjNoV2t0UVN6YUZBUndzVGxTTEFhKzlWVEdJWktqSE9EbHh6UUtDbDNWZ1dXaytNRytiYjdwWU1ZaGtwc2ppelgyYmMySkZVRUZRU0dHQnF4Z2JFMlZGUmxCQ1VoRVVaVVZZYlFBQUFnQm1CUEFDN3dYRkFBZ0FFUUFkQUxBSEw3SUNCUW9yV0NIWUcvUlpzQXZRc0FjUXNCRFFzQkF2TURFVE5EWXlGaFFHSWlZbE5EWXlGaFFHSWlabU4ydzRPR3czQWE0M2JEZzRiRGNGV3kwOVBWbzhQQ3N0UGo1YVBEd0FBQU1BVy8vckJlWUZ4QUFiQUNvQU9RQ1ZzaWM2T3hFU09iQW5FTEFEMExBbkVMQTIwQUN3QUVWWXNDNHZHN0V1SEQ1WnNBQkZXTEEyTHh1eE5oQStXYklETmk0UkVqbXdBeSswRHdNZkF3SmRzZ291TmhFU09iQUtMN1FBQ2hBS0FsMnlEZ29ERVJJNXNoRUNDaXRZSWRnYjlGbXdBeEN5R0FJS0sxZ2gyQnYwV2JJYkF3b1JFam13TmhDeUlBUUtLMWdoMkJ2MFdiQXVFTEluQkFvcldDSFlHL1JaTURFQkZBWWpJaVkxTlRRMk16SVdGU00wSmlNaUJoVVZGQll6TWpZMUpSUVNCQ0FrRWpVMEFpUWpJZ1FDQnpRU0pDQUVFaFVVQWdRaklpUUNCRit0bnAyOXY1dWdySkpmVzE1c2JGNWNYZjBCb0FFVEFVQUJFcUNlL3UyaG9QN3NuM083QVVzQmdBRkt1N1QrdGNiRi9yVzJBbFdab2RPMmJyRFRwSlZqVllwN2NYaUtWR1dFclA3YnBxWUJKYXlxQVNLbnBmN2Nxc29CV3NmSC9xYkt4ZjZvMGM4QldBQUFBZ0NUQXJNRER3WEVBQnNBSlFCc3NnNG1KeEVTT2JBT0VMQWQwQUN3QUVWWXNCVXZHN0VWSEQ1WnNnUW1GUkVTT2JBRUw3QUEwTElDQkJVUkVqbXlDd1FWRVJJNXNBc3ZzQlVRc2c0RENpdFlJZGdiOUZteUVRc1ZFUkk1c0FRUXNod0RDaXRZSWRnYjlGbXdDeEN5SUFRS0sxZ2gyQnYwV1RBeEFTWW5CaU1pSmpVME5qTXpOVFFqSWdZVkp6UTJNeklXRlJFVUZ5VXlOamMxSXdZR0ZSUUNhZ3dHVElCM2dxZXNiSHhGVDZHc2lZV2FHdjZrSzFnY2NGTlpBc0VpSmxaOFoyOTROSWMyTXd4bmdvK0cvc1JoVVhzb0c0NEJQek5lLy84QVpnQ1hBMlFEc3dBbUFYcjYvZ0FIQVhvQlJQLytBQUVBZndGM0E3NERJQUFGQUJvQXNBUXZzQUhRc0FFdnNBUVFzZ0lCQ2l0WUlkZ2I5Rmt3TVFFakVTRTFJUU8rdXYxN0F6OEJkd0VJb1FBRUFGci82d1hsQmNRQURnQWVBRFFBUFFDcHNqWStQeEVTT2JBMkVMQUwwTEEyRUxBVDBMQTJFTEFqMEFDd0FFVllzQU12RzdFREhENVpzQUJGV0xBTEx4dXhDeEErV2JJVEJBb3JXQ0hZRy9SWnNBTVFzaHNFQ2l0WUlkZ2I5Rm15SUFzREVSSTVzQ0F2c2lJREN4RVNPYkFpTDdRQUloQWlBbDJ5TlNBaUVSSTVzRFV2c3I4MUFWMjBBRFVRTlFKZHNoOENDaXRZSWRnYjlGbXlLQjgxRVJJNXNDQVFzQy9Rc0M4dnNDSVFzajBDQ2l0WUlkZ2I5Rmt3TVJNMEVpUWdCQklWRkFJRUl5SWtBamNVRWdRek1pUVNOVFFDSkNNaUJBSUZFU01SSVRJV0ZSUUhGaGNWRkJjVkl5WTBKeVluSnpNMk5qVTBKaU1qV3JzQlN3R0FBVXE3dFA2MXhzWCt0Ylp6b0FFVG9LRUJGSjJkL3V5aG9QN3Nud0hBalFFVW1hbUFlZ0VSa1E0REVIT3duRWhZVG1TS0F0bktBVnJIeC82bXlzWCtxTkhQQVZqSHJQN2JwcWtCSXF5ckFTR25wZjdjOWY2dUExR0RmWHRCTXBvOVZpWVFKTGtSWUFTQUFrSTJTVDBBQUFFQWVBVWhBMElGc0FBREFCRUFzQUV2c2dJRENpdFlJZGdiOUZrd01RRWhOU0VEUXYwMkFzb0ZJWThBQWdDQ0E4QUNmQVhFQUFzQUZnQXZBTEFBUlZpd0F5OGJzUU1jUGxtd0ROQ3dEQyt5Q1FJS0sxZ2gyQnYwV2JBREVMSVNBZ29yV0NIWUcvUlpNREVUTkRZek1oWVZGQVlqSWlZWE1qWTFOQ1lqSWdZVUZvS1ZhbWlUazJocGx2ODJTa28yTjB0TEJNQm9uSnRwYXBhV0ZrYzVPa3RQYkVvQUFnQmhBQUFEOVFUekFBc0FEd0JHQUxBSkw3QUFSVml3RFM4YnNRMFFQbG13Q1JDd0FOQ3dDUkN5QmdFS0sxZ2gyQnYwV2JBRDBMQU5FTElPQVFvcldDSFlHL1Jac2dVT0JoRVNPYlFMQlJzRkFsMHdNUUVoRlNFUkl4RWhOU0VSTXdFaE5TRUNpUUZzL3BTbi9uOEJnYWNCUWZ5OUEwTURWcGYrWWdHZWx3R2QrdzJZQUFBQkFFSUNtd0tyQmJzQUZnQlVzZ2dYR0JFU09RQ3dBRVZZc0E0dkc3RU9IRDVac0FCRldMQUFMeHV4QUJRK1diSVdBZ29yV0NIWUcvUlpzQUxRc2dNT0ZoRVNPYkFPRUxJSUFnb3JXQ0hZRy9SWnNBNFFzQXZRc2hRV0RoRVNPVEF4QVNFMUFUWTFOQ1lqSWdZVkl6UTJJQllWRkE4Q0lRS3IvYWtCTEcxQVBFdEhuYWNCQ0pwclZMQUJqd0tiYkFFYVprVXhQVXc1Y3BSL2JtaHJUNUVBQVFBK0FvOENtZ1c2QUNZQWliSWdKeWdSRWprQXNBQkZXTEFPTHh1eERodytXYkFBUlZpd0dTOGJzUmtVUGxteUFCa09FUkk1c0FBdnRtOEFmd0NQQUFOZHNqOEFBWEcyRHdBZkFDOEFBMTJ5WHdBQmNyQU9FTElIQWdvcldDSFlHL1Jac2dvT0dSRVNPYkFBRUxJbUJBb3JXQ0hZRy9SWnNoUW1BQkVTT2JJZEdRNFJFam13R1JDeUlBSUtLMWdoMkJ2MFdUQXhBVE15TmpVMEppTWlCaFVqTkRZek1oWVZGQVlIRmhVVUJpTWlKalV6RkJZek1qWTFOQ2NqQVFsVVNrZy9SamxMbmFOOGlaeEdRcFdxaUlTbW5rOURSa21jV0FSbFBUQXRPak1wWW50NWFEZGJHU21QYW4xK2F5MDhQRE54QWdBQUFRQjdCTmdDSEFYK0FBTUFJd0N3QWkreUR3SUJYYkFBMExBQUw3UVBBQjhBQWwyd0FoQ3dBOUFac0FNdkdEQXhBVE1CSXdFODRQNzBsUVgrL3RvQUFBRUFtdjVnQSs0RU9nQVNBRkN5RFJNVUVSSTVBTEFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQWN2RzdFSEdENVpzQUJGV0xBUUx4dXhFQkkrV2JBQVJWaXdEUzhic1EwUVBsbXlCQUVLSzFnaDJCdjBXYklMQncwUkVqa3dNUUVSRmhZek1qY1JNeEVqSndZaklpY1JJeEVCVXdGbmRNYyt1cWNKWGFxVFVia0VPdjJIbzV5WUF5RDd4bk9IU2Y0ckJkb0FBUUJEQUFBRFFBV3dBQW9BSzdJQ0N3d1JFamtBc0FCRldMQUlMeHV4Q0J3K1diQUFSVml3QUM4YnNRQVFQbG15QVFBSUVSSTVNREVoRVNNaUpEVTBKRE1oRVFLR1ZPYis5d0VLNWdFTkFnaisxdFgvK2xBQUFBRUFrd0pyQVhrRFNRQUpBQmF5QXdvTEVSSTVBTEFDTDdFSUNpdFkyQnZjV1RBeEV6UTJNaFlWRkFZaUpwTTVjanM3Y2prQzJUQkFRREF2UHo4QUFRQjAvazBCcWdBQUFBNEFRYklGRHhBUkVqa0FzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdCaThic1FZU1BsbTBFd1lqQmdKZHNnRUdBQkVTT2JFSENpdFkyQnZjV2JBQkVMQU4wREF4SVFjV0ZSUUdJeWN5TmpVMEppYzNBUjBNbWFDUEIwOVhRR0lnTkJ1U1lYRnJOQzhzS2dtR0FBRUFlZ0tpQWU4RnR3QUdBRUN5QVFjSUVSSTVBTEFBUlZpd0JTOGJzUVVjUGxtd0FFVllzQUF2RzdFQUZENVpzZ1FBQlJFU09iQUVMN0lEQWdvcldDSFlHL1Jac2dJREJSRVNPVEF4QVNNUkJ6VWxNd0h2bmRnQll4SUNvZ0paT1lCMUFBQUNBSG9Dc2dNbkJjUUFEQUFhQUVDeUF4c2NFUkk1c0FNUXNCRFFBTEFBUlZpd0F5OGJzUU1jUGxteUNoc0RFUkk1c0FvdnNoQURDaXRZSWRnYjlGbXdBeEN5RndNS0sxZ2gyQnYwV1RBeEV6UTJNeklXRlJVVUJpQW1OUmNVRmpNeU5qVTFOQ1lqSWdZSGVyeWFtN3k3L3N5K28yRlVVMTloVTFGZ0FnUmpuc1BCcGtxZndzS2xCbVJ5YzJWT1kzSnVZUUQvL3dCbUFKZ0RlQU8xQUNZQmV3MEFBQWNCZXdGcUFBRC8vd0JWQUFBRmtRV3RBQ2NCMWYvYkFwZ0FKd0Y4QVJnQUNBRUhBZGdDMWdBQUFCQUFzQUJGV0xBRkx4dXhCUncrV1RBeC8vOEFVQUFBQmNrRnJRQW5BWHdBN0FBSUFDY0IxZi9XQXBnQkJ3SFdBeDRBQUFBUUFMQUFSVml3Q1M4YnNRa2NQbGt3TWYvL0FHOEFBQVh0QmJzQUp3RjhBWmNBQ0FBbkFkZ0RNZ0FBQVFjQjF3QXhBcHNBRUFDd0FFVllzQ0V2RzdFaEhENVpNREVBQWdCRS9uOERlQVJOQUJnQUlnQlhzZ2tqSkJFU09iQUpFTEFjMEFDd0VDK3dBRVZZc0NFdkc3RWhHRDVac2dBUUlSRVNPYklERUFBUkVqbXdFQkN5Q1FFS0sxZ2gyQnYwV2JBUUVMQU0wTElWQUJBUkVqbXdJUkN5R3dVS0sxZ2gyQnYwV1RBeEFRNERCd2NVRmpNeU5qVXpCZ1lqSWlZMU5EYzNOalVURkFZaUpqVTBOaklXQWt3QktXQzRDd0owYldSOXVRTGh0OFRXb0cxQ3dUZHNPRGhzTndLb2FuOTJ3V01sYlhOeFc2SE15Yk90cjNGT2tnRTlMVDQrTFN3OFBBQUMvL0lBQUFkWEJiQUFEd0FTQUhjQXNBQkZXTEFHTHh1eEJodytXYkFBUlZpd0FDOGJzUUFRUGxtd0FFVllzQVF2RzdFRUVENVpzaEVHQUJFU09iQVJMN0lDQVFvcldDSFlHL1Jac0FZUXNnZ0JDaXRZSWRnYjlGbXlDd0FHRVJJNXNBc3ZzZ3dCQ2l0WUlkZ2I5Rm13QUJDeURnRUtLMWdoMkJ2MFdiSVNCZ0FSRWprd01TRWhBeUVESXdFaEZTRVRJUlVoRXlFQklRTUhWL3lORC8zTXplSURjQU8zL1UwVUFrNzl1QllDd2ZxdkFjZ2ZBV0grbndXd21QNHBsLzN0QVhnQzNRQUJBRmtBemdQZEJHTUFDd0E0QUxBREw3SUpEQU1SRWptd0NTK3lDZ2tERVJJNXNnUURDUkVTT2JJQkNnUVJFam13QXhDd0JkQ3lCd1FLRVJJNXNBa1FzQXZRTURFVEFRRTNBUUVYQVFFSEFRRlpBVXIrdUhjQlNRRkpkLzY0QVVwMy9yWCt0UUZKQVZBQlQzditzUUZQZS82eC9yQjdBVkgrcndBQUF3QjIvNk1GSFFYc0FCY0FJQUFwQUdheUJDb3JFUkk1c0FRUXNCM1FzQVFRc0NiUUFMQUFSVml3RUM4YnNSQWNQbG13QUVWWXNBUXZHN0VFRUQ1WnNob1FCQkVTT2JJakVBUVJFam13SXhDd0c5Q3dFQkN5SFFFS0sxZ2gyQnYwV2JBYUVMQWswTEFFRUxJbUFRb3JXQ0hZRy9SWk1ERUJGQUlFSXlJbkJ5TTNKaEUxTkJJa016SVhOek1IRmhNRkZCY0JKaU1pQWdjRk5DY0JGak15RWpjRkNaRCsrTENyZzJHT2tMNlNBUXVzMXBSbmpaK0pBdndzWWdJMFpxYTIwUU1ERlRqOTIxdDV1c3dEQXFuVy9zR29VcHZud0FGb1U5SUJRcXQ5cGYrNy90cGo5STBEaUcvKzYvWU50b1A4ajBBQkQvMEFBZ0NtQUFBRVhRV3dBQTBBRmdCWHNna1hHQkVTT2JBSkVMQVEwQUN3QUVWWXNBQXZHN0VBSEQ1WnNBQkZXTEFMTHh1eEN4QStXYklCQUFzUkVqbXdBUyt5RUFBTEVSSTVzQkF2c2drQkNpdFlJZGdiOUZtd0FSQ3lEZ0VLSzFnaDJCdjBXVEF4QVJFaE1oWVdGUlFFSXlFUkl4RVRFU0V5TmpVMEppY0JZQUVYazl4My92amovdTY2dWdFVmpxQ2dpQVd3L3R0cHduN0M1LzdIQmJEK1EvM2VsM2g3bHdFQUFRQ0wvK3dFYWdZU0FDb0FhYkloS3l3UkVqa0FzQUJGV0xBRkx4dXhCUjQrV2JBQVJWaXdFeThic1JNUVBsbXdBRVZZc0FBdkc3RUFFRDVac2dvVEJSRVNPYklPQlJNUkVqbXdFeEN5R2dFS0sxZ2gyQnYwV2JJZ0V3VVJFam15SXdVVEVSSTVzQVVRc2lnQkNpdFlJZGdiOUZrd01TRWpFVFEyTXpJV0ZSUUdGUlFlQWhVVUJpTWlKaWMzRmhZek1qWTFOQzRDTlRRMk5UUW1JeUlSQVVTNXo3cTB4WUJMdkZiTHRsRzFKaXN4aHpWcmNVcTlWNHRvV05vRVY5RHJzNTk5eTBVelg1Q0lUSit5TEJ5YklDeGVValJnazRwUldjOVVYbXYrMndBREFFNy83QVo4QkU0QUtnQTFBRDBBeHJJQ1BqOFJFam13QWhDd0x0Q3dBaEN3T2RBQXNBQkZXTEFYTHh1eEZ4ZytXYkFBUlZpd0hTOGJzUjBZUGxtd0FFVllzQUF2RzdFQUVENVpzQUJGV0xBRkx4dXhCUkErV2JJQ0hRQVJFam15REFVWEVSSTVzQXd2dEw4TXp3d0NYYkFYRUxJUUFRb3JXQ0hZRy9SWnNoTU1GeEVTT2JJYUhRQVJFam15T2gwQUVSSTVzRG92dEw4Nnp6b0NYYkloQVFvcldDSFlHL1Jac0FBUXNpVUJDaXRZSWRnYjlGbXlLQjBBRVJJNXNDdlFzQXdRc2k4QkNpdFlJZGdiOUZtd0VCQ3dOdEF3TVFVZ0p3WUdJeUltTlRRMk16TTFOQ1lqSWdZVkp6UTJNeklXRnpZMk16SVNGUlVoRmhZek1qYzNGd1lsTWpZM05TTUdCaFVVRmdFaUJnY2hOVFFtQk83Kys0aEI0bzJudk9QZDMyNW9hWXk0OHJ0enNESS9ybW5TNlAwb0I2NlZsSGt2UUo3OENVaWVNdVIxakdvRFVIT1ZFUUlhaGhTMFZsNnRsNTJ1Vld0N2JsRVRqN1ZUVTA5WC92L3BjN0MvVEIrSWVaWktOdTBDYmxOTlhRTTBxNHNmaEpNQUFBSUFmdi9zQkMwR0xBQWRBQ3NBVkxJSExDMFJFam13QnhDd0tOQUFzQUJGV0xBWkx4dXhHUjQrV2JBQVJWaXdCeThic1FjUVBsbXlEeGtIRVJJNXNBOHZzaEVaQnhFU09iSWlBUW9yV0NIWUcvUlpzQWNRc2lnQkNpdFlJZGdiOUZrd01RRVNFUlVVQmdZaklpWW1OVFEyTmpNeUZ5WW5CeWMzSmljM0ZoYzNGd01uSmlZaklnWVZGQll6TWpZMUF6VDVkZGlHaDl4NWNNK0JvM2t3amRwSndJUzNPZSt2dlVsb0FpR0xYSkdpcDRCOW1RVVYvdmorWjEyZS9aQ0I0SWFUNllKeXc0MlVZNE5iTVo4Mmk0RmsvUE00UFVtL3A0ekU0cmdBQUFNQVJ3Q3NCQzBFdWdBREFBMEFGd0JPc2djWUdSRVNPYkFIRUxBQTBMQUhFTEFSMEFDd0FpK3lBUUVLSzFnaDJCdjBXYkFDRUxFTUNpdFkyQnZjV2JFR0NpdFkyQnZjV2JBQkVMRVFDaXRZMkJ2Y1diRVdDaXRZMkJ2Y1dUQXhBU0UxSVFFME5qSVdGUlFHSWlZUk5EWXlGaFVVQmlJbUJDMzhHZ1BtL2FBNWNqczdjams1Y2pzN2Nqa0NXTGdCT2pCQVFEQXZQajc4L2pCQVFEQXVQejhBQUFNQVcvOTZCRFFFdUFBVkFCMEFKZ0Jqc2dRbktCRVNPYkFFRUxBYjBMQUVFTEFqMEFDd0FFVllzQVF2RzdFRUdENVpzQUJGV0xBUEx4dXhEeEErV2JJakFRb3JXQ0hZRy9SWnNpRWpCQkVTT2JBaEVMQVkwTEFFRUxJYkFRb3JXQ0hZRy9SWnNoa2JEeEVTT2JBWkVMQWcwREF4RXpRMk5qTXlGemN6QnhZUkZBWUdJeUluQnlNM0poTVVGd0VtSXlJR0JUUW5BUll6TWpZMVczdmhqMjVlU1h4bXczemdrR2hXU254a3pibGhBVmMrU0lxb0FtWlgvcXczUW91bkFpZWYvWXNxbE0yYS9zQ2Uvb2tqbGN1VkFUZkNid0sySU5xMXRtLzlVQm5idVFBQ0FKWCtZQVFuQmdBQUR3QWFBR1N5R0JzY0VSSTVzQmdRc0F6UUFMQUlMN0FBUlZpd0RDOGJzUXdZUGxtd0FFVllzQVl2RzdFR0VqNVpzQUJGV0xBREx4dXhBeEErV2JJRkRBTVJFam15Q2d3REVSSTVzQXdRc2hNQkNpdFlJZGdiOUZtd0F4Q3lHQUVLSzFnaDJCdjBXVEF4QVJRQ0l5SW5FU01STXhFMk16SVNFU2MwSmlNaUJ4RVdNekkyQkNmaXdjVnh1Ymx4d3NQanVaeUlxRlJUcTRXZEFoSDMvdEo5L2ZjSG9QM0toUDdhL3ZvRXQ5U1YvZnVVMHdBQUFnQWRBQUFGaUFXd0FCTUFGd0JyQUxBQVJWaXdEeThic1E4Y1BsbXdBRVZZc0Fndkc3RUlFRDVac2hRSUR4RVNPYkFVTDdJUUZBOFJFam13RUMrd0FOQ3dFQkN5RndFS0sxZ2gyQnYwV2JBRDBMQUlFTEFGMExBVUVMSUhBUW9yV0NIWUcvUlpzQmNRc0FyUXNCQVFzQTNRc0E4UXNCTFFNREVCTXhVakVTTVJJUkVqRVNNMU14RXpFU0VSTXdFaE5TRUZBb2FHd2YwandZYUd3UUxkd2Z4aUF0MzlJd1NPanZ3QUFxSDlYd1FBamdFaS90NEJJdjJPd2dBQkFKc0FBQUZWQkRvQUF3QWRBTEFBUlZpd0FpOGJzUUlZUGxtd0FFVllzQUF2RzdFQUVENVpNREVoSXhFekFWVzZ1Z1E2QUFBQkFKb0FBQVEvQkRvQURBQm9BTEFBUlZpd0JDOGJzUVFZUGxtd0FFVllzQWd2RzdFSUdENVpzQUJGV0xBQ0x4dXhBaEErV2JBQVJWaXdDeThic1FzUVBsbXdBaEN3QnRDd0JpK3lud1lCWGJTL0JzOEdBbDJ5THdZQlhiTC9CZ0Zkc2dFQkNpdFlJZGdiOUZteUNnRUdFUkk1TURFQkl4RWpFVE1STXdFekFRRWpBYjlydXJwYkFZM2YvandCNk9rQnpmNHpCRHIrTmdISy9mUDkwd0FBQVFBaUFBQUVHd1d3QUEwQVd3Q3dBRVZZc0F3dkc3RU1IRDVac0FCRldMQUdMeHV4QmhBK1diSUJEQVlSRWptd0FTK3dBTkN3QVJDeUFnRUtLMWdoMkJ2MFdiQUQwTEFHRUxJRUFRb3JXQ0hZRy9SWnNBTVFzQWpRc0FuUXNBQVFzQXZRc0FyUU1ERUJKUlVGRVNFVklSRUhOVGNSTXdGcEFRZisrUUt5L0kyR2hzRURTMVI5VlAzUG5RS1JLbjBxQXFJQUFBRUFJZ0FBQWdvR0FBQUxBRW9Bc0FCRldMQUtMeHV4Q2g0K1diQUFSVml3QkM4YnNRUVFQbG15QVFRS0VSSTVzQUV2c0FEUXNBRVFzZ0lCQ2l0WUlkZ2I5Rm13QTlDd0J0Q3dCOUN3QUJDd0NkQ3dDTkF3TVFFM0ZRY1JJeEVITlRjUk13RnNucDY2a0pDNkEyVTllejM5RmdLak4zczNBdUlBQVFDaS9rc0U4UVd3QUJNQVdySUdGQlVSRWprQXNBQkZXTEFBTHh1eEFCdytXYkFBUlZpd0VDOGJzUkFjUGxtd0FFVllzQVF2RzdFRUVqNVpzQUJGV0xBT0x4dXhEaEErV2JBRUVMSUpBUW9yV0NIWUcvUlpzZzBPRUJFU09iSVNEZ0FSRWprd01RRVJGQVlqSWljM0ZqTXlOVFVCRVNNUk13RVJCUEdybkQwMkRpVTlpUDB6d01BQ3pRV3crZjJvdWhLYUR0QkhCR3I3bGdXdys1Z0VhQUFBQVFDUi9rc0Q4QVJPQUJvQVliSU5HeHdSRWprQXNBQkZXTEFETHh1eEF4ZytXYkFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQW92RzdFS0VqNVpzQUJGV0xBWUx4dXhHQkErV2JJQkdBTVJFam13Q2hDeUR3RUtLMWdoMkJ2MFdiQURFTElWQVFvcldDSFlHL1JaTURFQkZ6WXpNaFlYRVJRR0l5SW5OeFl6TWpVUk5DWWpJZ2NSSXhFQk53MTB5N080QXFlYlBUWU9JMEtKYjMydlVib0VPcHF1ME12ODlLUzRFcDBOd2dMM2k0Q0YvTlFFT2dBQ0FHai82d2NKQmNRQUZ3QWpBSkd5QVNRbEVSSTVzQUVRc0JyUUFMQUFSVml3REM4YnNRd2NQbG13QUVWWXNBNHZHN0VPSEQ1WnNBQkZXTEFBTHh1eEFCQStXYkFBUlZpd0F5OGJzUU1RUGxtd0RoQ3lFQUVLSzFnaDJCdjBXYklUQUE0UkVqbXdFeSt5RkFFS0sxZ2gyQnYwV2JBQUVMSVdBUW9yV0NIWUcvUlpzQU1Rc2hnQkNpdFlJZGdiOUZtd0RCQ3lIUUVLSzFnaDJCdjBXVEF4SVNFR0l5SW1BaWNSTkJJMk16SVhJUlVoRVNFVklSRWhCVEkzRVNZaklnWUhFUlFXQnduOHNMSnlvdjZNQVl2K29ueXFBMGI5TFFKMy9Za0MzZnVNY1dadGJLM0NBc01WbGdFUHF3RTFyQUVSbHhTZS9peWQvZndiRGdTT0QrWFAvc2ZUNndBQUF3QmgvK3dIQUFST0FDQUFMQUEwQUpheUJqVTJFUkk1c0FZUXNDYlFzQVlRc0REUUFMQUFSVml3QkM4YnNRUVlQbG13QUVWWXNBb3ZHN0VLR0Q1WnNBQkZXTEFYTHh1eEZ4QStXYkFBUlZpd0hTOGJzUjBRUGxteUJ3b1hFUkk1c2pFS0Z4RVNPYkF4TDdJT0FRb3JXQ0hZRy9SWnNCY1FzaElCQ2l0WUlkZ2I5Rm15RkFvWEVSSTVzaG9LRnhFU09iQWswTEFFRUxJcUFRb3JXQ0hZRy9SWnNDM1FNREVUTkRZMk16SVdGelkyTXpJV0ZSVWhGaFl6TWpjWEJpTWlKaWNHQmlNaUFEVVhGQll6TWpZMU5DWWpJZ1lsSWdZSElUVTBKbUY1MjQ2SnlUMUJ4SERQNnYweUI2U0d2SGhLaWZXSHpUOCt4NGJjL3ZpNW9JdUpvS0dLaDZJRUxXT1dGZ0lPaVFJbm9QNkpkV1JtYy83cmRLckZiSDZFY0dSamNRRXcvZ20zMk5mT3R0blcxcU9LR24yV0FBQUJBS0FBQUFLQ0JoVUFEQUF5c2dNTkRoRVNPUUN3QUVWWXNBUXZHN0VFSGo1WnNBQkZXTEFBTHh1eEFCQStXYkFFRUxJSkFRb3JXQ0hZRy9SWk1ERXpFVFkyTXpJWEJ5WWpJaFVSb0FHd29qdFVGeWd6dHdTdXFiNFZqZ3ZkKzJBQUFBSUFYZi9zQlJJRnhBQVhBQjhBVzdJQUlDRVJFam13R05BQXNBQkZXTEFRTHh1eEVCdytXYkFBUlZpd0FDOGJzUUFRUGxteUJSQUFFUkk1c0FVdnNCQVFzZ2tCQ2l0WUlkZ2I5Rm13QUJDeUdBRUtLMWdoMkJ2MFdiQUZFTEliQVFvcldDSFlHL1JaTURFRklBQVJOU0UxRUFJaklnY0hKemMyTXlBQUVSVVVBZ1FuTWhJM0lSVVVGZ0s1L3VQK3dRUDA5TjJsaXowdkZwN29BUzRCWkp6KzZxZXAzZy84ejlNVUFWa0JSWFVIQVFJQkhEb2FqdzFZL29mK3NWVEYvcisybmdFRjJ5TGE1QUFCLytUK1N3SzhCaFVBSGdCeHNoUWZJQkVTT1FDd0FFVllzQlV2RzdFVkhqNVpzQUJGV0xBUUx4dXhFQmcrV2JBQVJWaXdIUzhic1IwWVBsbXdBRVZZc0FVdkc3RUZFajVac0IwUXNnQUJDaXRZSWRnYjlGbXdCUkN5Q2dFS0sxZ2gyQnYwV2JBQUVMQU8wTEFQMExBVkVMSWFBUW9yV0NIWUcvUlpNREVCSXhFVUJpTWlKemNXTXpJMk5SRWpOVE0xTmpZek1oY0hKaU1pQnhVekFtRExxSm85TWc0ZVEwRkhxNnNDcjZFN1ZCWW1QS3NFeXdPcisvNm50eEtURFdoY0JBU1BlS2U4RlpNS3czb0FBQUlBWmYvc0JaMEdOd0FYQUNVQVU3SUVKaWNSRWptd0JCQ3dJdEFBc0FCRldMQU5MeHV4RFJ3K1diQUFSVml3QkM4YnNRUVFQbG15RHcwRUVSSTVzQThRc0JYUXNBMFFzaHNCQ2l0WUlkZ2I5Rm13QkJDeUlnRUtLMWdoMkJ2MFdUQXhBUlFDQkNNaUpBSW5OVFFTSkRNeUZ6WTJOVE1RQlJZWEJ4QUNJeUlDQnhVVUVqTXlFaEVFK0pEKytMQ3IvdmFWQVpJQkM2endtMkJkcC83NVlRRyt6NzIyMFFQVHViL0xBcW5XL3NHb3FBRSt6MlRTQVVHc213ZURoUDZ6UGF6MkJBRUNBUmIrNi9acisvN2hBUm9CQVFBQUFnQmIvK3dFdWdTd0FCWUFJd0JUc2hNa0pSRVNPYkFURUxBYTBBQ3dBRVZZc0FRdkc3RUVHRDVac0FCRldMQVRMeHV4RXhBK1diSUdCQk1SRWptd0JoQ3dETkN3RXhDeUdnRUtLMWdoMkJ2MFdiQUVFTEloQVFvcldDSFlHL1JaTURFVE5EWTJNeklYTmpZMU14QUhGaFVWRkFZR0l5SUFOUmNVRmpNeU5qVTFOQ1lqSWdaYmUrR1B6NGhIUUpiUFNYemdrTjcrOGJtbmpZdW5xWXVLcUFJbm4vMkxpZ2hrZ1A3ZE00cXBGcDcraVFFeit3bTAydHU1RUxYYTJnQUFBUUNNLyt3R0hRWUNBQm9BVExJTUd4d1JFamtBc0FCRldMQVNMeHV4RWh3K1diQUFSVml3R2k4YnNSb2NQbG13QUVWWXNBMHZHN0VORUQ1WnNnRU5HaEVTT2JBQkVMQUkwTEFORUxJV0FRb3JXQ0hZRy9SWk1ERUJGVFkyTlRNVUJnY1JCZ0lIQnlJQUp4RXpFUlFXTXpJMk5SRUVxbk5objdIQ0FmVFRTZS8rNUFLK3JxR2pyUVd3MVF1Sms5TFJEUDEreC83OEZnUUJBdUlENFB3bW5xK3VuZ1BiQUFFQWlQL3NCUThFa0FBWkFHQ3lCeG9iRVJJNUFMQUFSVml3RXk4YnNSTVlQbG13QUVWWXNBMHZHN0VOR0Q1WnNBQkZXTEFJTHh1eENCQStXYkFBUlZpd0JTOGJzUVVRUGxteUZRZ1RFUkk1c0JVUXNBUFFzZ1lJRXhFU09iQUlFTElRQVFvcldDSFlHL1JaTURFQkZBWUhFU01uQmlNaUppY1JNeEVVTXpJM0VUTVZQZ0kxQlErVG9MQUViTkd0dFFHNXlOUkd1VVJFSFFTUXRKTUUvTHRyZjhuRkFzRDlSZmFlQXhPREFpTkliQUFCLzdUK1N3RmxCRG9BRFFBb0FMQUFSVml3QUM4YnNRQVlQbG13QUVWWXNBUXZHN0VFRWo1WnNna0JDaXRZSWRnYjlGa3dNUUVSRkFZaklpYzNGak15TmpVUkFXV3FtRHMwRGg1RFFVZ0VPdnR0cXJJU2t3MW9YQVNUQUFJQVl2L3NBK2tFVHdBVUFCd0FaYklJSFI0UkVqbXdDQkN3RmRBQXNBQkZXTEFBTHh1eEFCZytXYkFBUlZpd0NDOGJzUWdRUGxteURRQUlFUkk1c0EwdnNBQVFzaEFCQ2l0WUlkZ2I5Rm15RWdBSUVSSTVzQWdRc2hVQkNpdFlJZGdiOUZtd0RSQ3lHQUVLSzFnaDJCdjBXVEF4QVRJQUZSVVVCZ1luSWlZMU5TRW1KaU1pQnljMkFUSTJOeUVWRkJZQi85d0JEbnpZZXREcEFzMEhvWWk2ZTBtTUFRNWlseFg5ODRrRVQvN1UrU1NWK0kwQi91bDBxTWhzZlliOE5hU0pHbjJXQUFFQXFRVGtBd1lHQUFBSUFEUUFzQVF2c0FmUXNBY3Z0QThISHdjQ1hiSUZCQWNSRWprWnNBVXZHTEFCMEJtd0FTOFlzQVFRc0FMUXNnTUVCeEVTT1RBeEFSVWpKd2NqTlJNekF3YVpscFdaOW5BRTdncXFxZ3dCRUFBQUFRQ01CT01DOWdYL0FBZ0FJQUN3QkMrd0FkQ3dBUyswRHdFZkFRSmRzZ0FFQVJFU09iQUkwTEFJTHpBeEFUY3pGUU1qQXpVekFjQ1dvUDV4KzUwRlZhb0svdTRCRWdyLy93QjRCU0VEUWdXd0FRWUFjQUFBQUFvQXNBRXZzUUlEOURBeEFBRUFnUVRMQXRnRjF3QU1BQ2F5Q1EwT0VSSTVBTEFETDdJUEF3RmRzZ2tFQ2l0WUlkZ2I5Rm13QnRDd0JpK3dETkF3TVFFVUJpQW1OVE1VRmpNeU5qVUMyS1grOUthWFRFbEdUd1hYZVpPVWVFWlBUa2NBQVFDTkJPNEJhQVhDQUFnQUdMSUNDUW9SRWprQXNBY3ZzZ0lGQ2l0WUlkZ2I5Rmt3TVJNME5qSVdGQVlpSm8wM2JEZzRiRGNGVnkwK1BsbzhQQUFDQUhrRXRBSW5CbEFBQ1FBVUFDcXlBeFVXRVJJNXNBTVFzQTNRQUxBREw3QUgwTEFITDdJL0J3RmRzQU1Rc0EzUXNBY1FzQkxRTURFQkZBWWpJaVkwTmpJV0JSUVdNekkyTkNZaklnWUNKM3hiWEh0N3VIdit0VU14TUVSRE1USkNCWUJYZFhhc2VucFdMMFJDWWtWR0FBQUJBREwrVHdHU0FEZ0FFQUF1c2dVUkVoRVNPUUN3RUMrd0FFVllzQW92RzdFS0VqNVpzZ1VEQ2l0WUlkZ2I5Rm0yRHhBZkVDOFFBMTB3TVNFSEJoVVVNekkzRndZaklpWTFORFkzQVg0NmNVNHdOQTFHV2xsbmhuc3RXMVpJR25rc2FGWlptamdBQUFFQWV3VFpBejRGNkFBWEFENEFzQU12c0FqUXNBZ3Z0QThJSHdnQ1hiQURFTEFMMExBTEw3QUlFTElQQXdvcldDSFlHL1Jac0FNUXNoUURDaXRZSWRnYjlGbXdEeEN3RjlBd01RRVVCaU1pTGdJaklnWVZKelEyTXpJZUFqTXlOalVEUG50Y0tUeGhLeHdwT254NVhTTTRZRE1mS3prRjNHeUdGRDROUHpFSGE0d1VPaEpFTFFBQ0FGNEUwQU1zQmY4QUF3QUhBRHNBc0FJdnNBRFFzQUF2dEE4QUh3QUNYYkFDRUxBRDBCbXdBeThZc0FBUXNBWFFzQVV2c0FJUXNBYlFzQVl2c0FNUXNBZlFHYkFITHhnd01RRXpBU01ETXdNakFsM1Avdk9wYmNYYWxnWC8vdEVCTC83UkFBQUNBSDcrYXdIVi83VUFDd0FXQURRQXNBTXZRQXNBQXhBRElBTXdBMEFEQlYyd0NkQ3dDUzlBQ1RBSlFBbFFDV0FKQkYyeUFBa0JYYkFPMExBREVMQVUwREF4RnpRMk16SVdGUlFHSXlJbU54UVdNalkxTkNZaklnWitaRXBIWW1CSlRHSlhORVl3TUNNbE12SkdZV0JIUmwxZVJTTXdNQ01rTWpRQUFmeW5CTmorU0FYK0FBTUFIZ0N3QVMrd0FOQVpzQUF2R0xBQkVMQUMwTEFDTDdRUEFoOENBbDB3TVFFakFUUCtTSi8rL3VBRTJBRW1BQUg5YndUWS94QUYvZ0FEQUI0QXNBSXZzQUhRc0FFdnRBOEJId0VDWGJBQ0VMQUQwQm13QXk4WU1ERUJNd0VqL2pEZy92U1ZCZjcrMnYvLy9Jc0UyZjlPQmVnQUJ3Q2svQkFBQUFBQi9WNEUyZjZVQm5RQURnQXVBTEFBTDdJUEFBRmRzQWZRc0FjdlFBa1BCeDhITHdjL0J3UmRzQWJRc2dFQUJoRVNPYklOQUFjUkVqa3dNUUVuTmpZMEppTTNNaFlWRkFZSEIvMTBBVXRHVzBzSGxacE9UUUVFMlprRkhrNG5hbWRWUFZBTFJ3QUMvQ2NFNVA4SEJlNEFBd0FIQURjQXNBRXZzQURRR2JBQUx4aXdBUkN3QmRDd0JTK3dCdEN3QmkrMkR3WWZCaThHQTEyd0E5Q3dBeSt3QUJDd0JOQVpzQVF2R0RBeEFTTUJNd0VqQXpQK0Fxbit6dUVCLzViMnpnVGtBUXIrOWdFS0FBSDlPUDZpL2hQL2RnQUlBQkVBc0FJdnNnY0ZDaXRZSWRnYjlGa3dNUVUwTmpJV0ZBWWlKdjA0TjJ3NE9HdzM5UzArUGxvOFBBQUFBUUMzQk80Qm13WS9BQU1BSFFDd0FpK3dBTkN3QUMreUR3QUJYYklEQWdBUkVqa1pzQU12R0RBeEV6TURJKzJ1ZEhBR1AvNnZBQUFEQUhFRThBT0RCb2dBQXdBTUFCVUFOd0N3Q3krd0F0Q3dBaSt3QWRDd0FTK3dBaEN3QTlBWnNBTXZHTEFMRUxJR0JRb3JXQ0hZRy9SWnNBL1FzQXNRc0JUUXNCUXZNREVCTXdNakJUUTJNaFlVQmlJbUpUUTJNaFlVQmlJbUFlRzhaWWYrd0Rkc09EaHNOd0kzTjJ3NE9HdzNCb2orK0NVdFBUMWFQRHdyTFQ0K1dqdzgvLzhBa3dKckFYa0RTUUVHQUhnQUFBQUdBTEFDTHpBeEFBRUFzUUFBQkRBRnNBQUZBQ3NBc0FCRldMQUVMeHV4QkJ3K1diQUFSVml3QWk4YnNRSVFQbG13QkJDeUFBRUtLMWdoMkJ2MFdUQXhBU0VSSXhFaEJERDlRc0VEZndVUyt1NEZzQUFDQUI4QUFBVnpCYkFBQXdBR0FDOEFzQUJGV0xBQUx4dXhBQncrV2JBQVJWaXdBaThic1FJUVBsbXlCQUVLSzFnaDJCdjBXYklHQWdBUkVqa3dNUUV6QVNFbElRRUNocW9DUS9xc0FRWURUUDVuQmJENlVKMEVLQUFEQUdmLzdBVDZCY1FBQXdBVkFDTUFkN0lJSkNVUkVqbXdDQkN3QWRDd0NCQ3dJTkFBc0FCRldMQVJMeHV4RVJ3K1diQUFSVml3Q0M4YnNRZ1FQbG15QWdnUkVSSTVzQUl2c3M4Q0FWMnkvd0lCWGJJdkFnRmR0TDhDendJQ2NiSUJBUW9yV0NIWUcvUlpzQkVRc2hrQkNpdFlJZGdiOUZtd0NCQ3lJQUVLSzFnaDJCdjBXVEF4QVNFMUlRVVVBZ1FqSWlRQ0p6VTBFaVF6TWdRU0Z3Y1FBaU1pQWdjVkZCSXpNaEkzQThEOSt3SUZBVHFQL3ZpeHJQNzJrd0tTQVF1c3J3RUlrUUsvMEx1MjBRUFJ1N3JNQXdLVG1JTFYvc0txcVFFNXptblNBVUtycVA3Rnp3c0JBd0VWL3V2MmEvcis0QUVQL1FBQkFESUFBQVVEQmJBQUJnQXhBTEFBUlZpd0F5OGJzUU1jUGxtd0FFVllzQUV2RzdFQkVENVpzQUJGV0xBRkx4dXhCUkErV2JJQUF3RVJFamt3TVFFQkl3RXpBU01DbXY1bXpnSVNyQUlUendTSiszY0ZzUHBRQUFBREFIZ0FBQVFoQmJBQUF3QUhBQXNBVHdDd0FFVllzQWd2RzdFSUhENVpzQUJGV0xBQ0x4dXhBaEErV2JJQUFRb3JXQ0hZRy9SWnNBSVFzQVhRc0FVdnNpOEZBVjJ5QmdFS0sxZ2gyQnYwV2JBSUVMSUtBUW9yV0NIWUcvUlpNREUzSVJVaEV5RVZJUU1oRlNGNEE2bjhWMWNDOHYwT1V3T1UvR3lkblFNL25RTU9uZ0FCQUxJQUFBVUJCYkFBQndBNEFMQUFSVml3Qmk4YnNRWWNQbG13QUVWWXNBQXZHN0VBRUQ1WnNBQkZXTEFFTHh1eEJCQStXYkFHRUxJQ0FRb3JXQ0hZRy9SWk1ERWhJeEVoRVNNUklRVUJ3ZjB5d0FSUEJSTDY3Z1d3QUFFQVJRQUFCRVFGc0FBTUFEd0FzQUJGV0xBSUx4dXhDQncrV2JBQVJWaXdBeThic1FNUVBsbXlBUUVLSzFnaDJCdjBXYkFGMExBSUVMSUtBUW9yV0NIWUcvUlpzQWZRTURFQkFTRVZJVFVCQVRVaEZTRUJBdkwrUXdNUC9BRUI0ZjRmQTg3OUpBRzdBczc5ejUyUEFrb0NSNUNlL2RRQUFBTUFUUUFBQlhRRnNBQVVBQnNBSXdCc3Nnb2tKUkVTT2JBS0VMQVYwTEFLRUxBYzBBQ3dBRVZZc0JNdkc3RVRIRDVac0FCRldMQUpMeHV4Q1JBK1diSVNFd2tSRWptd0VpK3dBTkN5Q0FrVEVSSTVzQWd2c0F2UXNBZ1FzaDBCQ2l0WUlkZ2I5Rm13RmRDd0VoQ3lGZ0VLSzFnaDJCdjBXYkFjMERBeEFUSUVGaFVVQmdRakZTTTFJaVFtRURZMk16VXpBeEVqSWdZUUZnRVJNekkyTlRRbUEwS2dBUU9Qa3Y4QW9NS2kvdjZQa2YrandzSUZyTVBDQVhRRXJNUERCUGVNL0p1ZC9ZdXZyNDM2QVRqOWpMbjduZ01LMHY2WTBBTUsvUGJSdGJQUkFBQUJBRm9BQUFVaEJiQUFHQUJjc2dBWkdoRVNPUUN3QUVWWXNBUXZHN0VFSEQ1WnNBQkZXTEFSTHh1eEVSdytXYkFBUlZpd0Z5OGJzUmNjUGxtd0FFVllzQXN2RzdFTEVENVpzaFlFQ3hFU09iQVdMN0FBMExBV0VMSU5BUW9yV0NIWUcvUlpzQXJRTURFQk5qWTFFVE1SRkFZR0J4RWpFU1lBSnhFekVSWVdGeEV6QXhhY3JzRi83Wi9CNS83dkE4QUJwWlhCQWdzWDE2b0NEZjN3bi9XVEQvNldBV29YQVNydEFoajk3NlBYR1FPa0FBQUJBSEVBQUFUTEJjUUFKQUJjc2hrbEpoRVNPUUN3QUVWWXNCa3ZHN0VaSEQ1WnNBQkZXTEFPTHh1eERoQStXYkFBUlZpd0l5OGJzU01RUGxtd0RoQ3lFQUVLSzFnaDJCdjBXYkFOMExBQTBMQVpFTElHQVFvcldDSFlHL1Jac0JBUXNDSFFzQ0xRTURFbE5oSTNOVFFtSUFZVkZSUVNGeFVoTlRNbUFqVTFOQkkyTXpJV0VoY1ZGQUlITXhVaEF1R0ttZ1BDL3E3QW5aSCtGTjFxZUkzK29hRDlqZ040YXR6K0hLSWJBUnpxaHVmMit1Vng4UDdZSEtLZFpnRXpvbSs2QVNTZm5QN2t0SUtnL3MxbW5RQUFBZ0JrLytzRWR3Uk9BQllBSVFCOHNoOGlJeEVTT2JBZkVMQVQwQUN3QUVWWXNCTXZHN0VUR0Q1WnNBQkZXTEFXTHh1eEZoZytXYkFBUlZpd0NDOGJzUWdRUGxtd0FFVllzQXd2RzdFTUVENVpzQWdRc2dNQkNpdFlJZGdiOUZteUNoTUlFUkk1c2hVVENCRVNPYkFNRUxJYUFRb3JXQ0hZRy9SWnNCTVFzaDhCQ2l0WUlkZ2I5Rmt3TVFFUkZqTXlOeGNHSXlJbkJpTWlBalUxRUJJek1oYzNBUlFXTXpJM0VTWWpJZ1lEN2dKT0V3OFhNRXFUSm12UndPVGl4TXRyRWYzTWtvZXRVbFdvaHBVRU92empqQVdKSXFXbEFSdjBEd0VJQVQyaGpmMjZyOE82QWI2ODR3QUFBZ0NnL29BRVRRWEVBQlFBS2dCcHNnQXJMQkVTT2JBWTBBQ3dEeSt3QUVWWXNBQXZHN0VBSEQ1WnNBQkZXTEFNTHh1eERCQStXYklvQUF3UkVqbXdLQyt5SlFFS0sxZ2gyQnYwV2JJR0pTZ1JFam15RGd3QUVSSTVzQUFRc2hnQkNpdFlJZGdiOUZtd0RCQ3lId0VLSzFnaDJCdjBXVEF4QVRJV0ZSUUdCeFlXRlJRR0l5SW5FU01STkRZMkFUUW1JeUlHQnhFV0ZqTXlOalUwSmljak5UTXlOZ0pkd2V0aVdIdUQrYzIxZUxwNnp3Rm5pR3RzbGdFc2tGNkdtb3h0bGxWNGZnWEUyNjVibUM0dHc0TE43MS8rTlFXeGJMeHIvbnRtaDQ1ci9NTTBQNkNCZHFVRG1IY0FBUUF1L21BRDN3UTZBQWdBT0xJQUNRb1JFamtBc0FCRldMQUJMeHV4QVJnK1diQUFSVml3Qnk4YnNRY1lQbG13QUVWWXNBUXZHN0VFRWo1WnNnQUhCQkVTT1RBeEFRRXpBUkVqRVFFekFnb0JHTDMraGJyK2hMMEJGQU1tKy8vK0p3SGdBL29BQWdCZy8rd0VKd1ljQUI0QUtnQmVzaFFyTEJFU09iQVVFTEFpMEFDd0FFVllzQU12RzdFREhqNVpzQUJGV0xBVUx4dXhGQkErV2JBREVMSUlBUW9yV0NIWUcvUlpzaHNVQXhFU09iQWJMN0lvQ3dvcldDSFlHL1Jac0F6UXNCUVFzaUlCQ2l0WUlkZ2I5Rmt3TVJNME5qTXlGd2NtSXlJR0ZSUUVFaGNWRkFZR0l5SUFOVFUwRWpjbkppWVRGQll6TWpZMU5DWW5JZ2JkeTYrTGhnS1hmRlpsQWJ2UEJYYmJrZDcrK2J5UUFXTnJQcUdKaUtDcGZZaWtCUFdJbnplZ08wZytiSm4rODhRbm1mT0ZBU2Z5RGFVQkNDTUZKNHo5WTdETHlzYUkyeG5OQUFFQVkvL3NBK3dFVFFBbEFHK3lBeVluRVJJNUFMQUFSVml3RlM4YnNSVVlQbG13QUVWWXNBb3ZHN0VLRUQ1WnNnTUJDaXRZSWRnYjlGbXdDaEN3QnRDd0NoQ3dJdEN3SWkreUx5SUJYYksvSWdGZHNpTUJDaXRZSWRnYjlGbXlEeU1pRVJJNXNoa1ZJaEVTT2JBVkVMSWNBUW9yV0NIWUcvUlpNREVCRkJZek1qWTFNeFFHSXlJbU5UUTNKaVkxTkRZek1oWVZJelFtSXlJR0ZSUXpNeFVqQmdFZWszWnhtN24veHN6NHpWaGk1OHE2K2JtUGEzQ0g5TVRnNmdFd1RXSnVVWnU1c1pPNlFpUjZTWlNtczQ1R1pWdEtvSlFHQUFFQWJmNkJBOE1Gc0FBZkFFdXlDQ0FoRVJJNUFMQVBMN0FBUlZpd0FDOGJzUUFjUGxteUhRRUtLMWdoMkJ2MFdiQUIwTElWSUFBUkVqbXlBaFVBRVJJNXNCVVFzZ2NCQ2l0WUlkZ2I5Rm15SEFBVkVSSTVNREVCRlFFR0JoVVVGaGNYRmhZVkJnWUhKelkyTlRRa0p5WW1OVFFTTndFaE5RUEQvcUtLWmtOUzkxRkhBbXhEWWk4ei9zdzJaMXVTZndFZC9ZTUZzSGorVmFIbGhWcGhHVWdZV0U1RnJEWlVOVlV0UkU0WUxabUJnZ0ZBbGdGRG1BQUJBSkgrWVFQd0JFNEFFZ0JUc2d3VEZCRVNPUUN3QUVWWXNBTXZHN0VER0Q1WnNBQkZXTEFBTHh1eEFCZytXYkFBUlZpd0J5OGJzUWNTUGxtd0FFVllzQkF2RzdFUUVENVpzZ0VRQXhFU09iQURFTElNQVFvcldDSFlHL1JaTURFQkZ6WXpNaFlYRVNNUk5DWWpJZ1lIRVNNUkFUZ0xlTWkrcmdHNWJJQmNnaUs2QkRxSW5NWE0rNlFFVVloOFYwNzg3d1E2QUFBREFIci83QVFTQmNRQURRQVdBQjRBa3JJREh5QVJFam13QXhDd0U5Q3dBeEN3RzlBQXNBQkZXTEFLTHh1eENodytXYkFBUlZpd0F5OGJzUU1RUGxteURnTUtFUkk1c0E0dnNsOE9BVjJ5L3c0QlhiU1BEcDhPQW5HMHZ3N1BEZ0p4c2k4T0FYR3l6dzRCWGJJdkRnRmR0TzhPL3c0Q2NiQUtFTElUQVFvcldDSFlHL1Jac0E0UXNoZ0JDaXRZSWRnYjlGbXdBeEN5R3dFS0sxZ2gyQnYwV1RBeEFSQUNJeUlDQXpVUUVqTXlFaE1GSVRVMEppTWlCaFVGSVJVVUZpQTJOd1FTN04vYjdnVHMzOTdyQlAwaEFpV0xpSWFNQWlYOTI1SUJCSTBDQW9EK3YvNnRBVXdCTk0wQlBRRk8vcnorelN3MzQvSHg0ODhuNWZydzR3QUFBUURELy9RQ1N3UTZBQXdBS0FDd0FFVllzQUF2RzdFQUdENVpzQUJGV0xBSkx4dXhDUkErV2JJRUFRb3JXQ0hZRy9SWk1ERUJFUlFXTXpJM0Z3WWpJaEVSQVh3M1FEQW5BVVpKK1FRNi9OYy9RQXlYRXdFbUF5QUFBUUFsLys4RU93WHVBQm9BVUxJUUd4d1JFamtBc0FBdnNBQkZXTEFMTHh1eEN4QStXYkFBUlZpd0VTOGJzUkVRUGxtd0N4Q3lCd0VLSzFnaDJCdjBXYklRQUFzUkVqbXdFQkN3RTlDd0FCQ3lGd0VLSzFnaDJCdjBXVEF4QVRJV0Z3RVdGak0zRndZaklpWW1Kd01CSXdFbkppWWpCeWMyQVFWaWVDRUJxeFF0SXlZR0pDcE5UajRkNXY3aXpnR0tZQmMxTFM4QktnWHVVRi83cXpNbkE1Z01KVlpRQWxIODlRUUY2emd1QW80TUFBRUFaZjUzQTZrRnhBQXRBRmF5QXk0dkVSSTVBTEFYTDdBQVJWaXdLeThic1NzY1BsbXlBZ0VLSzFnaDJCdjBXYklJTGlzUkVqbXdDQyt5Q1FFS0sxZ2gyQnYwV2JJZUxpc1JFam13SGhDeUR3RUtLMWdoMkJ2MFdiSWxDUWdSRWprd01RRW1JeUlHRlJRaE14VWpCZ1lWRkJZRUZoY1dGUlFHQnljM05qVTBMZ1ExTkRZM0ppWTFOQ1F6TWhjRGNvUmhqYUFCVFlXV3RzZVFBUTk4SUU5b1NHczVNVXptcVhkQnBKWjJnd0VDNUpGd0JRZ2taMVhibUFLY28zQ2RRU1VVTVdsQXB6MVVRRHcrSnk0elFtbVpiNUhMTGlxWVlKKzVKd0FCQUNuLzlBU2tCRG9BRkFCY3Nnc1ZGaEVTT1FDd0FFVllzQk12RzdFVEdENVpzQUJGV0xBS0x4dXhDaEErV2JBQVJWaXdEeThic1E4UVBsbXdFeEN5QUFFS0sxZ2gyQnYwV2JBS0VMSUZBUW9yV0NIWUcvUlpzQUFRc0EzUXNBN1FzQkhRc0JMUU1ERUJJeEVVRmpNeU54Y0dJeUlSRVNFUkl4RWpOU0VFY1p3MlFUQW5BVVpKK2Y1dnVha0VTQU9oL1hKQVFReVhFd0VtQW9mOFh3T2htUUFDQUpIK1lBUWZCRTRBRHdBYkFGZXlFaHdkRVJJNXNCSVFzQURRQUxBQVJWaXdBQzhic1FBWVBsbXdBRVZZc0Fvdkc3RUtFajVac0FCRldMQUhMeHV4QnhBK1diSUpBQWNSRWpteUVnRUtLMWdoMkJ2MFdiQUFFTElZQVFvcldDSFlHL1JaTURFQk1oSVhGeFFDSXlJbkVTTVJORFkyQXhZek1qWTFOQ1lqSWdZVkFsRFA5QXNCNEwvRGNycHh6WVJUcTRlV2tZVjFrQVJPL3ViK1F2RCs2SHo5K0FQa251eUEvTWlUdzhQTjROaXBBQUFCQUdYK2lnUGhCRTRBSWdCSnNnQWpKQkVTT1FDd0ZDK3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQWJMeHV4R3hBK1diQUFFTEFFMExBQUVMSUhBUW9yV0NIWUcvUlpzQnNRc2cwQkNpdFlJZGdiOUZrd01RRXlGaFVqTkNZaklnWVZGUkFGRnhZV0ZRWUdCeWMzTmpVMEppY21BalUxTkRZMkFqMjk1NitHYjRTYkFVQ0dZbEFDWTBwaUx6RkdWdXo0ZDljRVR0VzBib1Bic3lEKy9HTW1IV0JRUDZjK1ZUWThSaXNyRXpRQkFkTXFtUHVKQUFJQVlQL3NCSHNFT2dBUkFCMEFUTElJSGg4UkVqbXdDQkN3RmRBQXNBQkZXTEFRTHh1eEVCZytXYkFBUlZpd0NDOGJzUWdRUGxtd0VCQ3lBQUVLSzFnaDJCdjBXYkFJRUxJVkFRb3JXQ0hZRy9SWnNBQVFzQnZRTURFQklSWVJGUlFHQmlNaUFEVTFORFkyTnlFQkZCWXpNalkxTkNZaklnWUVlLzdreUhyZGpOcis5bmJaakFKQS9KK2dpb3Vmb1l1Sm53T2hsUDd2RVl6cmlBRXYvdzJZOG9nQi9kZTMxOW5Mck03TUFBRUFVZi9zQTlrRU9nQVFBRW15Q2hFU0VSSTVBTEFBUlZpd0R5OGJzUThZUGxtd0FFVllzQWt2RzdFSkVENVpzQThRc2dBQkNpdFlJZGdiOUZtd0NSQ3lCQUVLSzFnaDJCdjBXYkFBRUxBTjBMQU8wREF4QVNFUkZETXlOeGNHSXlJbUp4RWhOU0VEMmY2TmFTc3hLa3hxZlhVQi9xVURpQU9rL1dtRkdvSTBrNUlDazVZQUFRQ1AvK3dEOWdRNkFCSUFQTElPRXhRUkVqa0FzQUJGV0xBQUx4dXhBQmcrV2JBQVJWaXdDQzhic1FnWVBsbXdBRVZZc0E0dkc3RU9FRDVac2dNQkNpdFlJZGdiOUZrd01RRVJFRE15TmpVbUF6TVdFUkFBSXlJbUp4RUJTY21CcWdWMnczSCsvOXJDeUFJRU92MTUvcy82dHVjQklmSCs2Zjc1L3NIZzF3S1hBQUlBVi80aUJVd0VPZ0FaQUNJQVhMSVBJeVFSRWptd0R4Q3dHdEFBc0JndnNBQkZXTEFHTHh1eEJoZytXYkFBUlZpd0VDOGJzUkFZUGxtd0FFVllzQmN2RzdFWEVENVpzQURRc0JjUXNob0JDaXRZSWRnYjlGbXdETkN3RUJDeUlBRUtLMWdoMkJ2MFdUQXhCU1FBTlRRU054Y0dCeFFXRnhFME5qTXlGaFlWRkFBRkVTTVROalkxSmlZakloVUNiUDhBL3V1QmYyV2hDcldtaW5HQzRZTCszdjc3dWJtcXhBV2xna0lSRndFeis2Z0JCMWVGalBXdDVSb0N6R2w5amZpVjgvN1hGZjR6QW1ZVzNxU3AyRklBQUFFQVgvNG9CVU1FT2dBWkFGaXlBQm9iRVJJNUFMQU5MN0FBUlZpd0FDOGJzUUFZUGxtd0FFVllzQVl2RzdFR0dENVpzQUJGV0xBVEx4dXhFeGcrV2JBQVJWaXdEQzhic1F3UVBsbXlBUUVLSzFnaDJCdjBXYkFNRUxBUDBMQUJFTEFZMERBeEFSRTJOalVtQXpNV0VSQUFCUkVqRVNZQUVSRXpFUllXRnhFREhLdkRCWHJDZHY3ai92YTUvLzc3dWdLbW9nUTYvRTRZNWJMb0FSdnMvdW4rL2Y3UUZmNDVBY2thQVRZQkV3SG0vZzdDNUJrRHNRQUJBSHIvN0FZWkJEb0FJd0Jhc2hza0pSRVNPUUN3QUVWWXNBQXZHN0VBR0Q1WnNBQkZXTEFUTHh1eEV4ZytXYkFBUlZpd0dTOGJzUmtRUGxtd0FFVllzQjR2RzdFZUVENVpzZ1VCQ2l0WUlkZ2I5Rm15Q1FBZUVSSTVzQTdRc2hzVEdSRVNPVEF4QVFJSEZCWXpNalkxRVRNUkZoWXpNalkxSmdNekZoRVFBaU1pSndZR0l5SUNFUkEzQWNTS0IzSnFiSEc3QVhGcmFuSUhpc09Iejd6d1ZTbWtkN3pQaHdRNi91WHZ5K090cGdFdC9zNmtxdUxNN3dFYjlQN3EvdTMreis1MWVRRXhBUk1CSCtzQUFBSUFlZi9zQkhrRnhnQWZBQ2dBYnJJVUtTb1JFam13RkJDd0p0QUFzQUJGV0xBWkx4dXhHUncrV2JBQVJWaXdCaThic1FZUVBsbXlIUmtHRVJJNXNCMHZzZ0lCQ2l0WUlkZ2I5Rm15Q3hrR0VSSTVzQVlRc2c4QkNpdFlJZGdiOUZtd0FoQ3dFOUN3SFJDd0k5Q3dHUkN5SmdFS0sxZ2gyQnYwV1RBeEFRWUhGUVlHSXlJbU5SRTNFUlFXTXpJMk5UVW1BRFUwTmpNeUZoVVJOamNCRkJZWEVTWWpJaFVFZVR4VEF1WEl5L2U2akh4MGd0bis4N2lXbjdJL1NQMlVvb29GazVRQ2N4Y0pwdFB1OTljQlJ3TCtzSStia3BpbUh3RWEyYUM3eGJMK29RVVRBVktGdlI0QmFNYkVBQUFCLzlvQUFBUnVCYndBR2dCSnNnQWJIQkVTT1FDd0FFVllzQVF2RzdFRUhENVpzQUJGV0xBWEx4dXhGeHcrV2JBQVJWaXdEUzhic1EwUVBsbXlBQVFORVJJNXNBUVFzZ2tCQ2l0WUlkZ2I5Rm13RXRBd01RRVROall6TWhjSEppTWlCd0VSSXhFQkppTWlCeWMyTXpJV0Z3SWs0U3RyVjBnMEpBMG5SaVQrMTcvKzJDZERKdzBrTkVkWWF5b0RCZ0g3WTFnYmx3aFAvWGY5eGdJOEFvZFBDSlljVkYwQUFnQksvK3dHR3dRNkFCSUFKZ0J3c2dnbktCRVNPYkFJRUxBZTBBQ3dBRVZZc0JFdkc3RVJHRDVac0FCRldMQUdMeHV4QmhBK1diQUFSVml3Q2k4YnNRb1FQbG13RVJDeUFBRUtLMWdoMkJ2MFdiSUlFUVlSRWptd0Q5Q3dFTkN3RmRDd0Z0Q3dDaEN5R3dFS0sxZ2gyQnYwV2JJZkNoRVJFam13Sk5Bd01RRWpGaFVRQWlNaUp3WWpJZ0lSTkRjak5TRUJKaWNoQmdjVUZqTXlOamNSTXhFV0ZqTXlOZ1liaUVDOHEvRlRVL0NxdlVCMEJkSCsvZ1JLL0x0TEJHQllhWEVDdXdKeGFsWmdBNkdzeGY3di9zM3Y3d0V3QVJTL3Nwbjk5cXJIeUtuTDQ2ZWlBUWYrK2FLbjRnQUJBQ3IvOVFXeEJiQUFHQUJoc2hFWkdoRVNPUUN3QUVWWXNCY3ZHN0VYSEQ1WnNBQkZXTEFKTHh1eENSQStXYkFYRUxJQUFRb3JXQ0hZRy9SWnNnUVhDUkVTT2JBRUw3QUpFTElLQVFvcldDSFlHL1Jac0FRUXNoQUJDaXRZSWRnYjlGbXdBQkN3RmRDd0Z0QXdNUUVoRVRZek1nUVFCQ01uTWpZMUppWWpJZ2NSSXhFaE5TRUVsUDMybllUMEFSTCsvTzBDbTVnQ282S1dpc0grWVFScUJSTCtPVER4L2s3amxwR1VqcFl1L1ZvRkVwNEFBQUVBZS8vc0JOd0Z4QUFmQUlheUF5QWhFUkk1QUxBQVJWaXdDeThic1FzY1BsbXdBRVZZc0FNdkc3RURFRDVac0FzUXNBL1FzQXNRc2hJQkNpdFlJZGdiOUZteUZnTUxFUkk1c0JZdnRMOFd6eFlDY2JMUEZnRmRzcDhXQVhHeS94WUJYYkl2RmdGZHNsOFdBWEt5anhZQmNySVhBUW9yV0NIWUcvUlpzQU1Rc2h3QkNpdFlJZGdiOUZtd0F4Q3dIOUF3TVFFR0JDTWdBQkUxTkJJa016SUFGeU1tSmlNaUFnY2hGU0VWRkJJek1qWTNCTndiL3VIdS92Nyt5WThCQzdEb0FSZ1h3Qm1ubDduT0FnSTYvY2JHc3FDckhBSE81L3NCY2dFMmk4a0JOYWYrL2VXc252N3g2cDBDN2Y3b2tiUUFBZ0F4QUFBSU93V3dBQmdBSVFCMHNna2lJeEVTT2JBSkVMQVowQUN3QUVWWXNBQXZHN0VBSEQ1WnNBQkZXTEFJTHh1eENCQStXYkFBUlZpd0VDOGJzUkFRUGxteUFRQUlFUkk1c0FFdnNBQVFzZ29CQ2l0WUlkZ2I5Rm13RUJDeUVnRUtLMWdoMkJ2MFdiQUJFTElaQVFvcldDSFlHL1Jac0JJUXNCclFzQnZRTURFQkVTRVdCQlVVQkFjaEVTRURBZ0lHQnlNMU56NENOeE1CRVNFeU5qVTBKaWNFN2dGcDNnRUcvdjdlL2RQK0FCb1BXYXlRUHloZFpEUUxIZ04zQVYrTW9wMktCYkQ5eXdQd3k4YnpCQVVTL2IvKzN2N2NpUUtkQWdkcjZ2TUN3djB0L2NDZWhJQ2NBZ0FDQUxFQUFBaE5CYkFBRWdBYkFJS3lBUndkRVJJNXNBRVFzQlBRQUxBQVJWaXdFaThic1JJY1BsbXdBRVZZc0FJdkc3RUNIRDVac0FCRldMQVBMeHV4RHhBK1diQUFSVml3REM4YnNRd1FQbG15QUFJUEVSSTVzQUF2c2dRTUFoRVNPYkFFTDdBQUVMSU9BUW9yV0NIWUcvUlpzQVFRc2hNQkNpdFlJZGdiOUZtd0RCQ3lGQUVLSzFnaDJCdjBXVEF4QVNFUk14RWhGZ1FWRkFRSElSRWhFU01STXdFUklUSTJOVFFtSndGeUFzN0FBV3JpQVFIKy85LzkwLzB5d2NFRGpnRmZqcUNZaWdNNUFuZjluZ1BpdmIvcEJBS2MvV1FGc1AwQi9mV09lblNNQXdBQkFENEFBQVhVQmJBQUZRQmRzZzRXRnhFU09RQ3dBRVZZc0JRdkc3RVVIRDVac0FCRldMQUlMeHV4Q0JBK1diQUFSVml3RUM4YnNSQVFQbG13RkJDeUFBRUtLMWdoMkJ2MFdiSUVGQWdSRWptd0JDK3lEUUVLSzFnaDJCdjBXYkFBRUxBUzBMQVQwREF4QVNFUk5qTXlGaGNSSXhFbUppTWlCeEVqRVNFMUlRU20vZkNnci9yeUE4RUJpYVNwcHNEK2FBUm9CUkwrVUNqYTNmNHRBYzZZaGlyOVBnVVNuZ0FCQUxEK21RVC9CYkFBQ3dCSUFMQUpMN0FBUlZpd0FDOGJzUUFjUGxtd0FFVllzQVF2RzdFRUhENVpzQUJGV0xBR0x4dXhCaEErV2JBQVJWaXdDaThic1FvUVBsbXlBZ0VLSzFnaDJCdjBXYkFEMERBeEV6TVJJUkV6RVNFUkl4RWhzTUVDenNEK1FNSCtNZ1d3K3UwRkUvcFEvcGtCWndBQ0FLSUFBQVN4QmJBQURBQVZBRnV5RHhZWEVSSTVzQThRc0FQUUFMQUFSVml3Q3k4YnNRc2NQbG13QUVWWXNBa3ZHN0VKRUQ1WnNBc1FzZ0FCQ2l0WUlkZ2I5Rm15QWdzSkVSSTVzQUl2c2cwQkNpdFlJZGdiOUZtd0NSQ3lEZ0VLSzFnaDJCdjBXVEF4QVNFUklSWUVGUlFFQnlFUklRRVJJVEkyTlRRbUp3UWgvVUlCYXVRQkFQNyszLzNTQTMvOVFnRmZqNStaalFVUy9rd0Q1TVRGNmdRRnNQMFEvZDJZZ0h1T0FnQUNBREwrbWdYSkJiQUFEZ0FWQUZ1eUVoWVhFUkk1c0JJUXNBdlFBTEFFTDdBQVJWaXdDeThic1FzY1BsbXdBRVZZc0FJdkc3RUNFRDVac0FRUXNBSFFzQUlRc2dZQkNpdFlJZGdiOUZtd0RkQ3dEdEN3RDlDd0VOQ3dDeEN5RVFFS0sxZ2gyQnYwV1RBeEFTTVJJUkVqQXpNMkVqY1RJUkV6SVNFUklRTUdBZ1hIdi92cndBRjNYbThPSUFObnZ2dTdBc2IrRXhVTmEvNmJBV1grbWdJRGFnRmwxUUp2K3UwRWRmNVUrLzZlQUFFQUd3QUFCelVGc0FBVkFJWUFzQUJGV0xBSkx4dXhDUncrV2JBQVJWaXdEUzhic1EwY1BsbXdBRVZZc0JFdkc3RVJIRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3Qmk4YnNRWVFQbG13QUVWWXNCUXZHN0VVRUQ1WnNBSVFzQkRRc0JBdnNpOFFBVjJ5enhBQlhiSUFBUW9yV0NIWUcvUlpzQVRRc2dnUUFCRVNPYkFRRUxBTDBMSVRBQkFSRWprd01RRWpFU01SSXdFakFRRXpBVE1STXhFekFUTUJBU01FcUp6QXBmNWs4QUhxL2p6akFZT2x3SjRCZytMK1BBSHE3d0tZL1dnQ21QMW9Bd0FDc1AySUFuajlpQUo0L1ZIOC93QUJBRkQvN0FScUJjUUFLQUJ5c2dNcEtoRVNPUUN3QUVWWXNBc3ZHN0VMSEQ1WnNBQkZXTEFXTHh1eEZoQStXYkFMRUxJREFRb3JXQ0hZRy9SWnNBc1FzQWJRc2lVV0N4RVNPYkFsTDdMUEpRRmRzcDhsQVhHeUpBRUtLMWdoMkJ2MFdiSVJKQ1VSRWptd0ZoQ3dHOUN3RmhDeUhnRUtLMWdoMkJ2MFdUQXhBVFFtSXlJR0ZTTTBOall6TWdRVkZBWUhCQlVVQkNNaUppWTFNeFFXTXpJMk5SQWxJelV6TmpZRGxLbVpnSzNBZitTSzlBRU9mRzhCQWY3YzlKSHRoTUMyakoyNy9zTzBzNUtXQkNsMGlZMW9kTGhuMjhObHBqQlcvOFRtWjc2RGM1bVNlQUVBQlo0RGZnQUJBTEVBQUFUL0JiQUFDUUJkQUxBQVJWaXdBQzhic1FBY1BsbXdBRVZZc0Fjdkc3RUhIRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3QlM4YnNRVVFQbG15QkFBQ0VSSTVRQW1LQkpvRXFnUzZCQVJkc2drQUFoRVNPVUFKaFFtVkNhVUp0UWtFWFRBeEFUTVJJeEVCSXhFekVRUS93TUQ5TThIQkJiRDZVQVJpKzU0RnNQdWVBQUFCQUM4QUFBVDJCYkFBRVFCTnNnUVNFeEVTT1FDd0FFVllzQUF2RzdFQUhENVpzQUJGV0xBQkx4dXhBUkErV2JBQVJWaXdDUzhic1FrUVBsbXdBQkN5QXdFS0sxZ2gyQnYwV2JBSkVMSUxBUW9yV0NIWUcvUlpNREVCRVNNUklRTUNBZ1lISXpVM1BnSTNFd1Qyd1AzMkdnOVpySkEvS0Yxa05Bc2VCYkQ2VUFVUy9iLyszdjdjaVFLZEFnZHI2dk1Dd2dBQUFRQk4vK3NFeXdXd0FCRUFTcklFRWhNUkVqa0FzQUJGV0xBQkx4dXhBUncrV2JBQVJWaXdFQzhic1JBY1BsbXdBRVZZc0Fjdkc3RUhFRDVac2dBQkJ4RVNPYklMQVFvcldDSFlHL1Jac2c4SEVCRVNPVEF4QVFFekFRNENJeUluTnhjeVB3SUJNd0tkQVUvZi9mMDBXbmxiVHhZR1cya3pHU2IrRU5jQ1l3Tk4rME4wWVRNSm1BUmxORmtFTmdBQUF3QlQvOFFGNHdYc0FCZ0FJUUFxQUZ1eURDc3NFUkk1c0F3UXNDRFFzQXdRc0NMUUFMQUxMN0FYTDdJVkZ3c1JFam13RlMrd0FOQ3lDUXNYRVJJNXNBa3ZzQTNRc0JVUXNoa0JDaXRZSWRnYjlGbXdDUkN5SkFFS0sxZ2gyQnYwV2JBZjBMQVpFTEFpMERBeEFUTVdCQklWRkFJRUJ5TVZJelVqSWlRQ0VCSWtNek0xTXdNaUJoVVVGak16RVRNUk16STJOVFFtSXdONEg2VUJFSmVZL3ZTa0k3b2NwLzd2bDVjQkVhY2N1dGE4MjlxL0dyb2N2OWZYd3dVZUFaais5YVdtL3ZLWEFzVEVtQUVNQVU0QkRKak8vcHZuemM3bEEyZjhtZXZLeU9vQUFBRUFyLzZoQlpjRnNBQUxBRHNBc0FrdnNBQkZXTEFBTHh1eEFCdytXYkFBUlZpd0JDOGJzUVFjUGxtd0FFVllzQW92RzdFS0VENVpzZ0lCQ2l0WUlkZ2I5Rm13QnRBd01STXpFU0VSTXhFekF5TVJJYS9CQXM3QW1SS3QrOWNGc1BydEJSUDY4ZjRBQVY4QUFBRUFsZ0FBQk1nRnNBQVNBRWF5QlJNVUVSSTVBTEFBUlZpd0FDOGJzUUFjUGxtd0FFVllzQW92RzdFS0hENVpzQUJGV0xBQkx4dXhBUkErV2JJUEFBRVJFam13RHkreUJnRUtLMWdoMkJ2MFdUQXhBUkVqRVFZR0l5SW1KeEV6RVJZV016STNFUVRJd1dtc2J2bnlBOEVCaWFPK3hRV3crbEFDV3g0WDJOOEIwLzR5bUlZMkFyWUFBQUVBc0FBQUJ0Y0ZzQUFMQUVnQXNBQkZXTEFBTHh1eEFCdytXYkFBUlZpd0F5OGJzUU1jUGxtd0FFVllzQWN2RzdFSEhENVpzQUJGV0xBSkx4dXhDUkErV2JJQkFRb3JXQ0hZRy9SWnNBWFFzQWJRTURFQkVTRVJNeEVoRVRNUklSRUJjUUgxdndIeXdQblpCYkQ2N1FVVCt1MEZFL3BRQmJBQUFRQ3cvcUVIYWdXd0FBOEFWQUN3Q3krd0FFVllzQUF2RzdFQUhENVpzQUJGV0xBREx4dXhBeHcrV2JBQVJWaXdCeThic1FjY1BsbXdBRVZZc0Ewdkc3RU5FRDVac2dFQkNpdFlJZGdiOUZtd0JkQ3dCdEN3Q2RDd0N0Q3dBdEF3TVFFUklSRXpFU0VSTXhFekF5TVJJUkVCY1FIMXZ3SHl3Sk1TcGZuOUJiRDY3UVVUK3UwRkUvcm4vZ29CWHdXd0FBQUNBQkFBQUFXNEJiQUFEQUFWQUY2eUFSWVhFUkk1c0FFUXNBM1FBTEFBUlZpd0FDOGJzUUFjUGxtd0FFVllzQWt2RzdFSkVENVpzZ0lBQ1JFU09iQUNMN0FBRUxJTEFRb3JXQ0hZRy9SWnNBSVFzZzBCQ2l0WUlkZ2I5Rm13Q1JDeURnRUtLMWdoMkJ2MFdUQXhFeUVSSVRJRUZSUUVCeUVSSVFFUklUSTJOVFFtSnhBQ1d3RmE3d0VFL3Y3aS9kYitaZ0piQVYrT241bU1CYkQ5cnVYR3hlc0RCUmo5cVAzZG1JQjdqZ0lBQUFNQXNnQUFCakFGc0FBS0FCTUFGd0J0c2hJWUdSRVNPYkFTRUxBRzBMQVNFTEFWMEFDd0FFVllzQWt2RzdFSkhENVpzQUJGV0xBV0x4dXhGaHcrV2JBQVJWaXdCeThic1FjUVBsbXdBRVZZc0JRdkc3RVVFRDVac2dBSkJ4RVNPYkFBTDdJTEFRb3JXQ0hZRy9SWnNBY1FzZ3dCQ2l0WUlkZ2I5Rmt3TVFFaEZnUVZGQVFISVJFekVSRWhNalkxTkNZbkFTTVJNd0Z5QVdya0FRRCsvdC85MDhBQlg0K2ZtWTBEVjhEQUExNEQ1TVRGNmdRRnNQMFEvZDJZZ0h1T0F2MUFCYkFBQUFJQW93QUFCTEVGc0FBS0FCTUFUYklORkJVUkVqbXdEUkN3QWRBQXNBQkZXTEFKTHh1eENSdytXYkFBUlZpd0J5OGJzUWNRUGxteUFBa0hFUkk1c0FBdnNnc0JDaXRZSWRnYjlGbXdCeEN5REFFS0sxZ2gyQnYwV1RBeEFTRVdCQlVVQkFjaEVUTVJFU0V5TmpVMEppY0JZd0ZxNUFFQS92N2YvZFBBQVYrUG41bU5BMTRENU1URjZnUUZzUDBRL2QyWWdIdU9BZ0FBQVFDVC8rd0U5QVhFQUI4QWo3SU1JQ0VSRWprQXNBQkZXTEFUTHh1eEV4dytXYkFBUlZpd0hDOGJzUndRUGxtd0FOQ3dIQkN5QXdFS0sxZ2gyQnYwV2JJSUhCTVJFam13Q0MrMDd3ai9DQUp4c3M4SUFWMnlMd2dCY2JTL0NNOElBbkd5bndnQmNiTC9DQUZkc2k4SUFWMnlYd2dCY3JLUENBRnlzZ1lCQ2l0WUlkZ2I5Rm13RXhDeURBRUtLMWdoMkJ2MFdiQVRFTEFQMERBeEFSWVdNeklTTnlFMUlUUUNJeUlHQnlNMkFETXlCQklWRlJRQ0JDTWlKQ2NCVkJ5cm9LM0pBdjNEQWozUHVwYW5HY0VYQVJqb3NBRUxqNDcrL2FqdS91RWJBYzYwa1FFTzhKN3RBUlNjcnVVQkE2Zit5OG1SeWY3TXBmdm5BQUlBdC8vc0J0b0Z4QUFYQUNVQW9iSWhKaWNSRWptd0lSQ3dFdEFBc0FCRldMQVRMeHV4RXh3K1diQUFSVml3RFM4YnNRMGNQbG13QUVWWXNBUXZHN0VFRUQ1WnNBQkZXTEFLTHh1eENoQStXYklQQ2cwUkVqbXdEeSt5WHc4QlhiTC9Ed0ZkdEU4UFh3OENjYlNQRDU4UEFuR3lMdzhCY2JMUER3RmRzaThQQVYyeXp3OEJjYklJQVFvcldDSFlHL1Jac0JNUXNoc0JDaXRZSWRnYjlGbXdCQkN5SWdFS0sxZ2gyQnYwV1RBeEFSUUNCQ01pSkFJbkl4RWpFVE1STXpZU0pETXlCQklWSnhBQ0l5SUNCeFVVRWpNeUVqY0cycEQrK0xDbS92bVZDTkhBd05BRGtBRUtySzhCQzVDLzBMdTIwUVBUdWJyTUF3S3AxdjdCcUtBQktzZjlnd1d3L1dUT0FUZXJxZjYvMVFJQkF3RVYvdXYyYS92KzRRRVAvUUFBQWdCWkFBQUVaQVd3QUF3QUZRQmhzaEFXRnhFU09iQVFFTEFLMEFDd0FFVllzQW92RzdFS0hENVpzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdBeThic1FNUVBsbXlFUW9BRVJJNXNCRXZzZ0VCQ2l0WUlkZ2I5Rm15QlFFS0VSSTVzQW9Rc2hJQkNpdFlJZGdiOUZrd01TRVJJUUVqQVNRUk5DUXpJUkVCRkJZWElSRWhJZ1lEby82dy90UE5BVkwrNWdFUjh3SFAvTzJsa3dFYS91K2NwUUkzL2NrQ2JHOEJIdERuK2xBRCtZU2dBUUkrbEFBQ0FHSC83QVFvQmhFQUd3QW9BR0t5SENrcUVSSTVzQndRc0FqUUFMQUFSVml3RWk4YnNSSWVQbG13QUVWWXNBZ3ZHN0VJRUQ1WnNnQVNDQkVTT2JBQUw3SVhBQklSRWpteUR4SVhFUkk1c2hvQUNCRVNPYkljQVFvcldDSFlHL1Jac0FnUXNpTUJDaXRZSWRnYjlGa3dNUUV5RWhVVkZBWUdJeUlBTlRVUUVqYzJOalV6RkFZSEJ3WUdCellYSWdZVkZSUVdNekkyTlRRbUFtZk05WGJka05yKzl2MzNqR0tZY1h5S3BhVVprNitJb0tHSmlxQ2hBL3orNzk4Um1mR0ZBU1AxV2dGVkFaSXNHVWcvZll3ZEh5ZTVtcXFZdDZJUXJzdk14Sm01QUFNQW5RQUFCQ2tFT2dBT0FCWUFIQUNPc2hnZEhoRVNPYkFZRUxBQzBMQVlFTEFXMEFDd0FFVllzQUV2RzdFQkdENVpzQUJGV0xBQUx4dXhBQkErV2JJWEFRQVJFam13RnkrMHZ4ZlBGd0pkdEo4WHJ4Y0NjYkwvRndGZHNnOFhBWEcwTHhjL0Z3SmR0RzhYZnhjQ2NySVBBUW9yV0NIWUcvUlpzZ2dQRnhFU09iQUFFTElRQVFvcldDSFlHL1Jac0FFUXNoc0JDaXRZSWRnYjlGa3dNVE1SSVRJV0ZSUUdCeFlXRlJRR0l3RVJJVEkyTlRRakpUTWdFQ2NqblFHbTJPZGFXR0ozMjhqKzBBRXlkSFB1L3RYdkFRVDIvUVE2bDVKTGVTQVhobDJWbmdIYi9ycFdUcUtVQVRBRkFBQUJBSm9BQUFOSEJEb0FCUUFyQUxBQVJWaXdCQzhic1FRWVBsbXdBRVZZc0FJdkc3RUNFRDVac0FRUXNnQUJDaXRZSWRnYjlGa3dNUUVoRVNNUklRTkgvZzI2QXEwRG9meGZCRG9BQWdBdS9zSUVrd1E2QUE0QUZBQmJzaElWRmhFU09iQVNFTEFFMEFDd0RDK3dBRVZZc0FRdkc3RUVHRDVac0FCRldMQUtMeHV4Q2hBK1diSUFBUW9yV0NIWUcvUlpzQWJRc0FmUXNBd1FzQW5Rc0FjUXNBL1FzQkRRc0FRUXNoRUJDaXRZSWRnYjlGa3dNVGMzTmhNVElSRXpFU01SSVJFakV5RWhFU0VEQW9OQWJBOFJBcm1MdWYwTnVRRUJMd0h4L3JNTEVaZFBqQUVZQWJEOFhmNHJBVDcrd2dIVkF2aisvdjY5QUFFQUZRQUFCZ1FFT2dBVkFKQUFzQUJGV0xBSkx4dXhDUmcrV2JBQVJWaXdEUzhic1EwWVBsbXdBRVZZc0JFdkc3RVJHRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3Qmk4YnNRWVFQbG13QUVWWXNCUXZHN0VVRUQ1WnNBSVFzQkRRc0JBdnNyOFFBVjJ5L3hBQlhiSXZFQUZkc3M4UUFYR3lBQUVLSzFnaDJCdjBXYkFFMExJSUVBQVJFam13RUJDd0M5Q3lFd0FRRVJJNU1ERUJJeEVqRVNNQkl3RUJNd0V6RVRNUk13RXpBUUVqQSt1Q3VZTCswZW9CZy82aTRBRVhmN2wrQVJuZy9xRUJnK29CMXY0cUFkYitLZ0l3QWdyK1FBSEEva0FCd1AzMS9kRUFBUUJZLyswRHJBUk5BQ1lBaHJJREp5Z1JFamtBc0FCRldMQUtMeHV4Q2hnK1diQUFSVml3RlM4YnNSVVFQbG13Q2hDeUF3RUtLMWdoMkJ2MFdiSWxDaFVSRWptd0pTKzBMeVUvSlFKZHRMOGx6eVVDWGJTZkphOGxBbkcwYnlWL0pRSnlzZ1lsQ2hFU09iSWlBUW9yV0NIWUcvUlpzaEFpSlJFU09iSVpGUW9SRWptd0ZSQ3lIQUVLSzFnaDJCdjBXVEF4QVRRbUl5SUdGU00wTmpNeUZoVVVCZ2NXRlJRR0l5SW1OVE1VRmpNeU5qVTBKaU1qTlRNMkF0OTBaV0tEdU95eHZ0UllVYjNtd0x2enVJMXBhb0p0YzduSnZRTVNURmxtUlkyMG81ZEplaVJBdkpXdXQ1eFBjV0pPVzArY0JRQUJBSndBQUFRQkJEb0FDUUJGQUxBQVJWaXdBQzhic1FBWVBsbXdBRVZZc0Fjdkc3RUhHRDVac0FCRldMQUNMeHV4QWhBK1diQUFSVml3QlM4YnNRVVFQbG15QkFjQ0VSSTVzZ2tIQWhFU09UQXhBVE1SSXhFQkl4RXpFUU5JdWJuK0RibTVCRHI3eGdNVi9Pc0VPdnpxQUFBQkFKd0FBQVEvQkRvQURBQjNBTEFBUlZpd0JDOGJzUVFZUGxtd0FFVllzQWd2RzdFSUdENVpzQUJGV0xBQ0x4dXhBaEErV2JBQVJWaXdDeThic1FzUVBsbXdBaEN3QnRDd0JpK3lud1lCWGJML0JnRmRzczhHQVhHeW53WUJjYlMvQnM4R0FsMnlMd1lCWGJKdkJnRnlzZ0VCQ2l0WUlkZ2I5Rm15Q2dFR0VSSTVNREVCSXhFakVUTVJNd0V6QVFFakFkMkh1cnA1QVd6Zy9sUUIwT3NCemY0ekJEcitOZ0hLL2ZqOXpnQUJBQ3dBQUFRREJEb0FEd0JOc2dRUUVSRVNPUUN3QUVWWXNBQXZHN0VBR0Q1WnNBQkZXTEFCTHh1eEFSQStXYkFBUlZpd0NDOGJzUWdRUGxtd0FCQ3lBd0VLSzFnaDJCdjBXYkFJRUxJS0FRb3JXQ0hZRy9SWk1ERUJFU01SSVFNQ0JnY2pOVGMyTmpjVEJBTzYvcEFXRXBla1NqVmFUZ3NVQkRyN3hnT2gvbXYrNmZBRm93UUt2UDRCendBQUFRQ2RBQUFGVWdRNkFBd0FXUUN3QUVWWXNBRXZHN0VCR0Q1WnNBQkZXTEFMTHh1eEN4ZytXYkFBUlZpd0F5OGJzUU1RUGxtd0FFVllzQVl2RzdFR0VENVpzQUJGV0xBSkx4dXhDUkErV2JJQUN3TVJFam15QlFzREVSSTVzZ2dMQXhFU09UQXhKUUV6RVNNUkFTTUJFU01STXdMN0FYRG51ZjZpZ1A2YnVmRDFBMFg3eGdNVC9PMERKUHpjQkRvQUFRQ2NBQUFFQUFRNkFBc0FpZ0N3QUVWWXNBWXZHN0VHR0Q1WnNBQkZXTEFLTHh1eENoZytXYkFBUlZpd0FDOGJzUUFRUGxtd0FFVllzQVF2RzdFRUVENVpzQUFRc0FuUXNBa3ZzbThKQVYyMHZ3blBDUUpkc2o4SkFYRzB6d25mQ1FKeHNnOEpBWEswbndtdkNRSnhzdjhKQVYyeUR3a0JjYktmQ1FGZHNpOEpBVjIwYndsL0NRSnlzZ0lCQ2l0WUlkZ2I5Rmt3TVNFakVTRVJJeEV6RVNFUk13UUF1ZjRQdXJvQjhia0J6djR5QkRyK0t3SFZBQUVBbkFBQUJBRUVPZ0FIQURnQXNBQkZXTEFHTHh1eEJoZytXYkFBUlZpd0FDOGJzUUFRUGxtd0FFVllzQVF2RzdFRUVENVpzQVlRc2dJQkNpdFlJZGdiOUZrd01TRWpFU0VSSXhFaEJBRzUvZzY2QTJVRG9meGZCRG9BQVFBb0FBQURzQVE2QUFjQU1RQ3dBRVZZc0FZdkc3RUdHRDVac0FCRldMQUNMeHV4QWhBK1diQUdFTElBQVFvcldDSFlHL1Jac0FUUXNBWFFNREVCSVJFakVTRTFJUU93L3BXNS9wd0RpQU9rL0Z3RHBKWUFBQU1BWlA1Z0JXa0dBQUFhQUNVQU1BQi9zZ2N4TWhFU09iQUhFTEFnMExBSEVMQXIwQUN3Qmkrd0FFVllzQU12RzdFREdENVpzQUJGV0xBS0x4dXhDaGcrV2JBQVJWaXdFeThic1JNU1BsbXdBRVZZc0JBdkc3RVFFRDVac0FCRldMQVhMeHV4RnhBK1diQUtFTEllQVFvcldDSFlHL1Jac0JBUXNpTUJDaXRZSWRnYjlGbXdLZEN3SGhDd0x0QXdNUk1RRWpNeUZ4RXpFVFl6TWhJUkZBSWpJaWNSSXhFR0l5SUNOU1UwSmlNaUJ4RVdNekkySlJRV016STNFU1lqSWdaazByZFZRTGxHWHJqUzBiZGhSYmxDVmJiUkJFeU1lejh2TFVOOGlmeHRnbm82THlvOWVvUUNDUUVQQVRZZEFjLytLeVAreXY3YzcvN21JUDVWQWFnZEFScjFEOHpoRlB6eEVjQ3l0cndTQXhFUjJnQUFBUUNjL3I4RWdnUTZBQXNBT3dDd0NDK3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQUVMeHV4QkJnK1diQUFSVml3Q2k4YnNRb1FQbG15QWdFS0sxZ2gyQnYwV2JBRzBEQXhFek1SSVJFekVUTURJeEVobkxvQjhybUJFcWI4MGdRNi9GMERvL3hkL2lnQlFRQUFBUUJuQUFBRHZRUTdBQkFBUnJJRUVSSVJFamtBc0FCRldMQUlMeHV4Q0JnK1diQUFSVml3RHk4YnNROFlQbG13QUVWWXNBQXZHN0VBRUQ1WnNnd1BBQkVTT2JBTUw3SUVBUW9yV0NIWUcvUlpNREVoSXhFR0l5SW1KeEV6RVJZek1qY1JNd085dW5xQXk5VUN1UVhrZ0hxNkFZZ2cwTUFCUS82MzhpQUNHZ0FCQUp3QUFBWGdCRG9BQ3dCSUFMQUFSVml3QUM4YnNRQVlQbG13QUVWWXNBTXZHN0VER0Q1WnNBQkZXTEFITHh1eEJ4ZytXYkFBUlZpd0NTOGJzUWtRUGxteUFRRUtLMWdoMkJ2MFdiQUYwTEFHMERBeEFSRWhFVE1SSVJFekVTRVJBVllCakxrQmk3cjZ2QVE2L0YwRG8veGRBNlA3eGdRNkFBRUFrZjYvQm0wRU9nQVBBRXNBc0F3dnNBQkZXTEFBTHh1eEFCZytXYkFBUlZpd0F5OGJzUU1ZUGxtd0FFVllzQWN2RzdFSEdENVpzQUJGV0xBTkx4dXhEUkErV2JJQkFRb3JXQ0hZRy9SWnNBWFFzQW5RTURFQkVTRVJNeEVoRVRNUk13TWpFU0VSQVVzQmpMa0JpN3FZRXFiNjNBUTYvRjBEby94ZEE2UDhYZjRvQVVFRU9nQUNBQjRBQUFTL0JEb0FEQUFWQUY2eUFSWVhFUkk1c0FFUXNBM1FBTEFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQWt2RzdFSkVENVpzZ0lBQ1JFU09iQUNMN0FBRUxJTEFRb3JXQ0hZRy9SWnNBSVFzZzBCQ2l0WUlkZ2I5Rm13Q1JDeURnRUtLMWdoMkJ2MFdUQXhFeUVSSVJZV0ZSUUdJeUVSSVFFUklUSTJOVFFtSng0QitnRVp1TmJjdXY0Mi9yOEIrZ0VUYUhKdlpBUTYvb3NDdktHaXhBT2kvb3orYVd0ZFduTUNBQUFEQUowQUFBVi9CRG9BQ2dBT0FCY0FiYklHR0JrUkVqbXdCaEN3RE5Dd0JoQ3dFOUFBc0FCRldMQUpMeHV4Q1JnK1diQUFSVml3RFM4YnNRMFlQbG13QUVWWXNBY3ZHN0VIRUQ1WnNBQkZXTEFMTHh1eEN4QStXYklBRFFjUkVqbXdBQyt5RHdFS0sxZ2gyQnYwV2JBSEVMSVFBUW9yV0NIWUcvUlpNREVCSVJZV0ZSUUdJeUVSTXdFakVUTUJFU0V5TmpVMEppY0JWZ0VadU5iY3V2NDJ1UVFwdXJyNzF3RVRhSEp2WkFMRkFyeWhvc1FFT3Z2R0JEcjk5UDVwYTExYWN3SUFBZ0NkQUFBRC9RUTZBQW9BRXdCTnNnY1VGUkVTT2JBSEVMQU4wQUN3QUVWWXNBa3ZHN0VKR0Q1WnNBQkZXTEFITHh1eEJ4QStXYklBQ1FjUkVqbXdBQyt5Q3dFS0sxZ2gyQnYwV2JBSEVMSU1BUW9yV0NIWUcvUlpNREVCSVJZV0ZSUUdJeUVSTXhFUklUSTJOVFFtSndGV0FSbTQxdHk2L2phNUFSTm9jbTlrQXNVQ3ZLR2l4QVE2L2ZUK2FXdGRXbk1DQUFFQVpQL3NBK0FFVGdBZkFJS3lBQ0FoRVJJNUFMQUFSVml3Q0M4YnNRZ1lQbG13QUVWWXNCQXZHN0VRRUQ1WnNBZ1FzZ0FCQ2l0WUlkZ2I5Rm15SFFnUUVSSTVzQjB2dEM4ZFB4MENYYlMvSGM4ZEFsMjBueDJ2SFFKeHRHOGRmeDBDY3JJRENCMFJFam15RkJBSUVSSTVzQkFRc2hjQkNpdFlJZGdiOUZtd0hSQ3lHZ0VLSzFnaDJCdjBXVEF4QVNJR0ZTTTBOall6TWdBVkZSUUdCaU1pSmpVekZCWXpNalkzSVRVaEppWUNDR09Sc0hiRWF0TUJCWGZYaXJUd3NJNW1kNW9NL21vQmxBNldBN1orVmwycVpmN1A5aCtZKzRuZ3AyYUx1S0dZa3JFQUFBSUFuZi9zQmpBRVRnQVVBQjhBbmJJTklDRVJFam13RFJDd0ZkQUFzQUJGV0xBVUx4dXhGQmcrV2JBQVJWaXdCQzhic1FRWVBsbXdBRVZZc0JFdkc3RVJFRDVac0FCRldMQU1MeHV4REJBK1diSUFFUlFSRWptd0FDKzB2d0RQQUFKZHRKOEFyd0FDY2JML0FBRmRzZzhBQVhHMEx3QS9BQUpkdGw4QWJ3Qi9BQU55c2hBQkNpdFlJZGdiOUZtd0RCQ3lHQUVLSzFnaDJCdjBXYkFFRUxJZEFRb3JXQ0hZRy9SWk1ERUJJVFlBTXpJQUZ4Y1VCZ1lqSWdBbklSRWpFVE1CRkJZZ05qVTBKaU1pQmdGV0FRUVZBUW5LMUFFT0N3Rjg0SkRSL3ZZUS92MjV1UUc2cHdFYXBhaU1pcWdDYjlnQkIvN2k1VHFlL29rQkVkcitLUVE2L2RlMDJ0N0dzZDdhQUFBQ0FDOEFBQVBIQkRvQURRQVdBR0d5RkJjWUVSSTVzQlFRc0EzUUFMQUFSVml3QUM4YnNRQVlQbG13QUVWWXNBRXZHN0VCRUQ1WnNBQkZXTEFGTHh1eEJSQStXYklTQUFFUkVqbXdFaSt5QXdFS0sxZ2gyQnYwV2JJSEF3QVJFam13QUJDeUV3RUtLMWdoMkJ2MFdUQXhBUkVqRVNFREl3RW1KalUwTmpjREZCWVhJUkVoSWdZRHg3cis2Zi9JQVJCb2I5NjYzbXhaQVNiKzltZDZCRHI3eGdHbC9sc0J3U2FmYXBTMUFmNjBUMkVCQVdkbEFBSC82UDVMQTk4R0FBQWlBSVN5RFNNa0VSSTVBTEFmTDdBQVJWaXdCQzhic1FRWVBsbXdBRVZZc0Jrdkc3RVpFRDVac0FCRldMQUtMeHV4Q2hJK1diSy9Id0Zkc2k4ZkFWMnlEeDhCWGJJZUdSOFJFam13SGkrd0lkQ3lBUUVLSzFnaDJCdjBXYklDR1FRUkVqbXdDaEN5RHdFS0sxZ2gyQnYwV2JBRUVMSVZBUW9yV0NIWUcvUlpzQUVRc0J2UU1ERUJJUkUyTXlBVEVSUUdJeUluTnhZeU5qVVJOQ1lqSWdZSEVTTVJJelV6TlRNVklRSmovdUo3eFFGWEE2cVlQVFlQSTRKSWFYQmFpQ2E1cEtTNUFSNEV1ZjcrbC81OS9OeXFzaEtURFdoY0F5QjRjbUJPL1AwRXVaaXZyd0FCQUdmLzdBUDNCRTRBSHdDY3NnQWdJUkVTT1FDd0FFVllzQkF2RzdFUUdENVpzQUJGV0xBSUx4dXhDQkErV2JJQUFRb3JXQ0hZRy9SWnNnTUlFQkVTT2JJYkVBZ1JFam13R3krMER4c2ZHd0p5dEw4Ynp4c0NYYlNmRzY4YkFuRzB6eHZmR3dKeHN2OGJBVjJ5RHhzQmNiUXZHejhiQWwyMGJ4dC9Hd0p5c3I4YkFYS3lGQkFiRVJJNXNCQVFzaGNCQ2l0WUlkZ2I5Rm13R3hDeUhBRUtLMWdoMkJ2MFdUQXhKVEkyTnpNT0FpTWlBQkUxTkRZMk16SVdGeU1tSmlNaUJnY2hGU0VXRmdKSVk1UUlzQVY0eEc3ZS92MTEySlMyOFFpd0NJOW9ncG9LQVpUK2JBcVpnM2hhWHFoakFTZ0JBQjZmOTRiYXJtbUhzWjJZb0swQUFnQW5BQUFHaGdRNkFCWUFId0I1c2drZ0lSRVNPYkFKRUxBWDBBQ3dBRVZZc0FBdkc3RUFHRDVac0FCRldMQUlMeHV4Q0JBK1diQUFSVml3RHk4YnNROFFQbG15QVFBSUVSSTVzQUV2c0FBUXNnb0JDaXRZSWRnYjlGbXdEeEN5RVFFS0sxZ2gyQnYwV2JBQkVMSVhBUW9yV0NIWUcvUlpzQWdRc2hnQkNpdFlJZGdiOUZrd01RRVJJUllXRlJRR0J5RVJJUU1DQmdjak5UYzJOamNUQVJFaE1qWTFOQ1luQTk4QkhyYlQwN2YrS2Y2dkZ4U2NwVUUyVlUwTkZ3SzhBUk5sZFhKakJEcitaQU8xbEpPOEF3T2gvbHIrNitRQ293UUtwOU1DRC8zTS9vOXBWbEZnQVFBQUFnQ2NBQUFHcHdRNkFCSUFHd0I3c2dFY0hSRVNPYkFCRUxBVDBBQ3dBRVZZc0FJdkc3RUNHRDVac0FCRldMQVJMeHV4RVJnK1diQUFSVml3Q3k4YnNRc1FQbG13QUVWWXNBOHZHN0VQRUQ1WnNnRVJDeEVTT2JBQkw3QUUwTEFCRUxJTkFRb3JXQ0hZRy9SWnNBUVFzaE1CQ2l0WUlkZ2I5Rm13Q3hDeUZBRUtLMWdoMkJ2MFdUQXhBU0VSTXhFaEZoWVZGQVlqSVJFaEVTTVJNd0VSSVRJMk5UUW1Kd0ZXQWZHNUFTSzAwZG05L2piK0Q3cTZBcW9CRTJWMWNtTUNvUUdaL21NRXNaYVh1d0lLL2ZZRU92M00vbzlwVmxGZ0FRQUIvLzBBQUFQZkJnQUFHUUI1c2d3YUd4RVNPUUN3Rmkrd0FFVllzQVF2RzdFRUdENVpzQUJGV0xBSEx4dXhCeEErV2JBQVJWaXdFQzhic1JBUVBsbXl2eFlCWGJJdkZnRmRzZzhXQVYyeUdSQVdFUkk1c0JrdnNnQUJDaXRZSWRnYjlGbXlBZ1FIRVJJNXNBUVFzZ3dCQ2l0WUlkZ2I5Rm13QUJDd0V0Q3dHUkN3Rk5Bd01RRWhFVFl6SUJNUkl4RW1KaU1pQmdjUkl4RWpOVE0xTXhVaEFubit6SHZGQVZjRHVRRnBiMXFJSnJtUGo3a0JOQVMrL3ZtWC9uMzlOUUxNZFhCZ1R2ejlCTDZYcTZzQUFBRUFuUDZjQkFFRU9nQUxBRVVBc0FndnNBQkZXTEFBTHh1eEFCZytXYkFBUlZpd0F5OGJzUU1ZUGxtd0FFVllzQVV2RzdFRkVENVpzQUJGV0xBSkx4dXhDUkErV2JJQkFRb3JXQ0hZRy9SWk1ERUJFU0VSTXhFaEVTTVJJUkVCVmdIeXVmNnR1ZjZuQkRyOFhRT2orOGIrbkFGa0JEb0FBQUVBblAvc0JuVUZzQUFnQUdDeUJ5RWlFUkk1QUxBQVJWaXdBQzhic1FBY1BsbXdBRVZZc0E0dkc3RU9IRDVac0FCRldMQVhMeHV4Rnh3K1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNBb3ZHN0VLRUQ1WnNnY0FCQkVTT2JJVEFRb3JXQ0hZRy9SWnNCelFNREVCRVJRR0l5SW1Kd1lHSXlJbUp4RXpFUlFXTXpJMk5SRXpFUlFXTXpJMk5SRUdkZUhEYmFzeE5MSnh2ZGNCd1hKaWNvTEhmR2xxZWdXdys5N0czRmRaV1ZmYnd3UW0rOTE3aW9sOEJDUDczWDJJaVgwRUlnQUJBSUgvNndXdEJEb0FIZ0Jnc2dZZklCRVNPUUN3QUVWWXNBQXZHN0VBR0Q1WnNBQkZXTEFNTHh1eERCZytXYkFBUlZpd0ZTOGJzUlVZUGxtd0FFVllzQVF2RzdFRUVENVpzQUJGV0xBSUx4dXhDQkErV2JJR0ZRUVJFam15RVFFS0sxZ2gyQnYwV2JBYTBEQXhBUkVVQmlNaUp3WWpJaVluRVRNUkZoWXpNalkxRVRNUkZCWXpNalkzRVFXdHlxN0dXVi9PcDhBQnVRRmJVMkp2dW1WY1dXVUJCRHI5SjdER2xKVERzQUxjL1NObWRYaG5BdG45SjJkNGRXWUMzUUFDLzl3QUFBUDhCaFlBRVFBYUFIR3lGQnNjRVJJNXNCUVFzQVBRQUxBQVJWaXdEaThic1E0ZVBsbXdBRVZZc0Fndkc3RUlFRDVac2hFT0NCRVNPYkFSTDdJQUFRb3JXQ0hZRy9SWnNnSU9DQkVTT2JBQ0w3QUFFTEFLMExBUkVMQU0wTEFDRUxJU0FRb3JXQ0hZRy9SWnNBZ1FzaE1CQ2l0WUlkZ2I5Rmt3TVFFaEVTRVdGaEFHQnlFUkl6VXpFVE1SSVFFUklUSTJOVFFtSndLVy9yOEJHTHZVMUxmK0tyKy91Z0ZCL3I4QkVtbHhiMlFFT3Y2d0Fzcit0dEVEQkRxWEFVWCt1LzJCL2tWM1pHRjlBZ0FBQVFDMy8rMEdvQVhGQUNZQWg3SWVKeWdSRWprQXNBQkZXTEFGTHh1eEJSdytXYkFBUlZpd0ppOGJzU1ljUGxtd0FFVllzQjB2RzdFZEVENVpzQUJGV0xBakx4dXhJeEErV2JJUUJSMFJFam13RUMrd0FOQ3dCUkN3Q2RDd0JSQ3lEQUVLSzFnaDJCdjBXYkFRRUxJUkFRb3JXQ0hZRy9SWnNCMFFzaFlCQ2l0WUlkZ2I5Rm13SFJDd0dkQ3dFUkN3SWRBd01RRXpOaElrTXpJQUZ5TW1KaU1pQWdjaEZTRVZGQkl6TWpZM013WUVJeUFBRVRVakVTTVJNd0Y0eHdXVEFRYXM1Z0VaR01BWnA1ZTB6d1lDSHYzaXhyS2pxUnpBRy83aDd2Nysvc25Id2NFRFFNRUJKcDcvQU9pc252Nzc0cGNhN2Y3b2s3TG4rd0Z5QVRZVS9WY0ZzQUFCQUpuLzdBV2hCRTRBSkFERXNnTWxKaEVTT1FDd0FFVllzQVF2RzdFRUdENVpzQUJGV0xBa0x4dXhKQmcrV2JBQVJWaXdJUzhic1NFUVBsbXdBRVZZc0J3dkc3RWNFRDVac2c4Y0JCRVNPYkFQTDdTL0Q4OFBBbDIwUHc5UER3Snh0TThQM3c4Q2NiUVBEeDhQQW5LMG53K3ZEd0p4c3Y4UEFWMnlEdzhCY2JRdkR6OFBBbDIwYnc5L0R3SnlzQURRc2dnUEJCRVNPYkFFRUxJTEFRb3JXQ0hZRy9SWnNBOFFzaEFCQ2l0WUlkZ2I5Rm13SEJDeUZBRUtLMWdoMkJ2MFdiSVhIQVFSRWptd0VCQ3dIOUF3TVFFek5oSXpNaFlYSXlZbUl5SUdCeUVWSVJZV016STJOek1PQWlNaUFpY2pFU01STXdGVHZ4RC8wYmJ4Q0xBSWoyaUVtQW9CdGY1TENwbURZNVFJc0FWNHhHN1IvaERBdXJvQ1o5OEJDTnF1YVlleG5wZWdyWGhhWHFoakFRYmUvakFFT2dBQUFnQW9BQUFFNUFXd0FBc0FEZ0JXQUxBQVJWaXdDQzhic1FnY1BsbXdBRVZZc0FJdkc3RUNFRDVac0FCRldMQUdMeHV4QmhBK1diQUFSVml3Q2k4YnNRb1FQbG15RFFnQ0VSSTVzQTB2c2dBQkNpdFlJZGdiOUZtd0JOQ3lEZ2dDRVJJNU1ERUJJeEVqRVNNREl3RXpBU01CSVFNRGlhcThucGpGQWcyckFnVEYvWjhCazhjQnR2NUtBYmIrU2dXdytsQUNXZ0pKQUFBQ0FBOEFBQVFsQkRvQUN3QVFBRllBc0FCRldMQUlMeHV4Q0JnK1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBWXZHN0VHRUQ1WnNBQkZXTEFLTHh1eENoQStXYklOQWdnUkVqbXdEUyt5QVFFS0sxZ2gyQnYwV2JBRTBMSVBDQUlSRWprd01RRWpFU01SSXdNakFUTUJJd0VoQXljSEF1MTF1WHgzdlFHNm53Rzl2djRaQVMrQUdCZ0JLZjdYQVNuKzF3UTYrOFlCd1FFN1dWa0FBQUlBeVFBQUJ2VUZzQUFUQUJZQWZBQ3dBRVZZc0FJdkc3RUNIRDVac0FCRldMQVNMeHV4RWh3K1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNBZ3ZHN0VJRUQ1WnNBQkZXTEFNTHh1eERCQStXYkFBUlZpd0VDOGJzUkFRUGxteUZRSUVFUkk1c0JVdnNBRFFzQlVRc2dZQkNpdFlJZGdiOUZtd0N0Q3dCaEN3RHRDeUZnSUVFUkk1TURFQklRRXpBU01ESXhFakVTTURJeE1oRVNNUk13RWhBd0dLQVljQk5hc0NCTVdXcXJ5ZW1NV2UvclBCd1FKRkFaUEhBbGtEVi9wUUFiYitTZ0cyL2tvQnVQNUlCYkQ4cWdKSkFBQUNBTHdBQUFYa0JEb0FFd0FZQUg4QXNBQkZXTEFDTHh1eEFoZytXYkFBUlZpd0VpOGJzUklZUGxtd0FFVllzQVF2RzdFRUVENVpzQUJGV0xBSUx4dXhDQkErV2JBQVJWaXdEQzhic1F3UVBsbXdBRVZZc0JBdkc3RVFFRDVac2dBUUVoRVNPYkFBTDdBQjBMSU9BUW9yV0NIWUcvUlpzQXZRc0FmUXNBRVFzQlRRc0JYUXNoY1NCQkVTT1RBeEFTRUJNd0VqQXlNUkl4RWpBeU1USXhFakVUTUJJUU1uQndGMkFROEJBNThCdmI1NmRibDhkNzE1MGJxNkFja0JMNEFZR0FIQkFubjd4Z0VwL3RjQktmN1hBU2orMkFRNi9ZY0JPMWxaQUFBQ0FKTUFBQVkvQmJBQUhRQWhBSGF5SGlJakVSSTVzQjRRc0E3UUFMQUFSVml3SEM4YnNSd2NQbG13QUVWWXNBVXZHN0VGRUQ1WnNBQkZXTEFOTHh1eERSQStXYkFBUlZpd0ZTOGJzUlVRUGxteUFRMGNFUkk1c0FFdnNnb0JDaXRZSWRnYjlGbXdFTkN3QVJDd0d0Q3dBUkN3SHRDd0hCQ3lJQUVLSzFnaDJCdjBXVEF4QVRNeUZoY1JJeEVtSmljakJ4RWpFU2NqSWdZSEVTTVJOall6TXdFaEFUTUJJUVJCRy9Uc0E4RUJmSnFGRmNFTmlKNkNCTUFEN1BNcS9uZ0VzdjJmRUFFYS9ic0RLdFRZL29JQmVKQ0NBaVA5bHdKMkZudU4vbndCZnRqVUFvYjllZ0hvQUFBQ0FKWUFBQVZMQkRvQUd3QWZBSE95SENBaEVSSTVzQndRc0JUUUFMQUFSVml3Qmk4YnNRWVlQbG13QUVWWXNCc3ZHN0ViRUQ1WnNBQkZXTEFVTHh1eEZCQStXYkFBUlZpd0RDOGJzUXdRUGxteUhCUUdFUkk1c0J3dnNBVFFzQndRc0FmUXNoQUJDaXRZSWRnYjlGbXdGOUN3QmhDeUhnRUtLMWdoMkJ2MFdUQXhNelUyTmpjQklRRVdGaGNWSXpVbUppTWpCeEVqRVNjaklnWUhGUUV6RXlHV0JNclMvdUVEdi83Z3pzVUN1Z0p6akRVTHVRWStqSFVDQWFJSXQvNkx0czNTQmdIZi9pRUwwOUN0c1pLQkUvNVBBYnNKZnBXeEFsd0JSZ0FDQUxZQUFBaHlCYkFBSWdBbUFKT3lKaWNvRVJJNXNDWVFzQjdRQUxBQVJWaXdDQzhic1FnY1BsbXdBRVZZc0Fzdkc3RUxIRDVac0FCRldMQUZMeHV4QlJBK1diQUFSVml3SWk4YnNTSVFQbG13QUVWWXNCc3ZHN0ViRUQ1WnNBQkZXTEFUTHh1eEV4QStXYklKQlFnUkVqbXdDUyt5QkFFS0sxZ2gyQnYwV2JBSkVMQWowTEFOMExBRUVMQWUwTEFZMExBTEVMSW1BUW9yV0NIWUcvUlpNREVoRVRZM0lSRWpFVE1SSVFFaEFUTXlGaGNSSXhFbUppY2pCeEVqRVNjaklnWUhFUUV6QVNFQ3hRRlAvbUxCd1FOWi9ua0VzLzU0Ry9Uc0E4RUJmSnFGRnNBT2g1NkNCQUlWRUFFYS9ic0JlTE5wL1d3RnNQMThBb1Q5ZXRUWS9vSUJlSkNDQWlYOW1RSjFGM3VOL253REtnSG9BQUlBbXdBQUJ6c0VPZ0FoQUNVQWxySWVKaWNSRWptd0hoQ3dKZEFBc0FCRldMQUhMeHV4QnhnK1diQUFSVml3Q3k4YnNRc1lQbG13QUVWWXNBQXZHN0VBRUQ1WnNBQkZXTEFGTHh1eEJSQStXYkFBUlZpd0VTOGJzUkVRUGxtd0FFVllzQmt2RzdFWkVENVpzZ29MQUJFU09iQUtMN0lkQVFvcldDSFlHL1Jac0FQUXNBb1FzQTNRc0IwUXNCYlFzQW9Rc0NMUXNBc1FzaVFCQ2l0WUlkZ2I5Rmt3TVNFMU5qY2hFU01STXhFaEFTRUJGaFlYRlNNMUppWWpJd2NSSXhFbkl3WUdCeFVCTXhNaEFvWUNSdjZIdXJvQzBmN2hBNy8rNE03RkFyb0NjNHcxQzdrR1M0VnZBZ0dpQ0xmK2k2K3RhUDQ4QkRyK0lnSGUvaUVMMDlDdHNaS0JFLzVQQWJzSkFvQ1Ryd0pjQVVZQUFBSUFVUDVHQTZvSGhnQXBBRElBaDdJcU16UVJFam13S2hDd0F0QUFzQmt2c0M0dnNBQkZXTEFGTHh1eEJSdytXYkFBUlZpd0VpOGJzUklRUGxtd0JSQ3lBd0VLSzFnaDJCdjBXYklvQlJJUkVqbXdLQyt5SlFFS0sxZ2gyQnYwV2JJTUpTZ1JFam13RWhDeUh3RUtLMWdoMkJ2MFdiSVBMZ0Zkc0M0UXNDdlFzQ3N2dEE4ckh5c0NYYklxTGlzUkVqbXdNdEF3TVFFMEppTWhOU0V5QkJVVUJnY1dGaFVVQkNNakJoVVVGeGNISmlZMU5EWTNNelkyTlJBbEl6VXpJQU0zTXhVREl3TTFNd0xhbllmK3pnRXIzZ0VHZ1hPQ2lmNzM0RFNOZ2g5S2VvMmxvalNHbi82K21ZWUJQN3lYb1A1eStwMEVLbTZBbU5peVo2UXRLYTJDeE9VRGJXbENEMzAxcUdONmd3RUJsSGtCQ0FXWUE2V3FDdjd1QVJJS0FBSUFUUDVHQTNZR01BQXBBRElBbnJJdU16UVJFam13TGhDd0g5QUFzQmd2c0M0dnNBQkZXTEFGTHh1eEJSZytXYkFBUlZpd0VTOGJzUkVRUGxtd0JSQ3lBd0VLSzFnaDJCdjBXYklvQlJFUkVqbXdLQyswTHlnL0tBSmR0TDhvenlnQ1hiU2ZLSzhvQW5HMGJ5aC9LQUp5c2lVQkNpdFlJZGdiOUZteURDVW9FUkk1c0JFUXNoNEJDaXRZSWRnYjlGbXdMaEN3SzlDd0t5KzBEeXNmS3dKZHNpb3VLeEVTT2JBeTBEQXhBVFFtSnlFMUlUSVdGUlFHQnhZVkZBWWpJd1lWRkJjWEJ5WW1OVFEyTnpNMk56WTFOQ1VqTlRNZ0F6Y3pGUU1qQXpVekFxZC9jUDdKQVNmSzdtWmIxL1BJTW8yQ0gwdDhpcVdpTm5KRFAvN29tWWdCRTlxWG9QNXkrcDBEQ1VOVEFwbXFpMGwzSkVLdmxLOERiV2xDRDMwM3FHRjZnd0VDTUM1SW9nT1lBeDJxQ3Y3dUFSSUtBQUFEQUdmLzdBVDZCY1FBRVFBWUFCOEFpYklFSUNFUkVqbXdCQkN3RXRDd0JCQ3dHZEFBc0FCRldMQU5MeHV4RFJ3K1diQUFSVml3QkM4YnNRUVFQbG13RFJDeUVnRUtLMWdoMkJ2MFdiSVdEUVFSRWptd0ZpK3lMeFlCWGJMUEZnRmRzaThXQVhHeS94WUJYYkpmRmdGZHRFOFdYeFlDY2JLZkZnRnhzQVFRc2hrQkNpdFlJZGdiOUZtd0ZoQ3lIQUVLSzFnaDJCdjBXVEF4QVJRQ0JDTWlKQUluTlRRU0pETXlCQklYQVNJQ0J5RW1BZ015RWpjaEZoSUUrby8rK0xHcy92YVRBcElCQzZ5dkFRaVJBdjIydHRBRUF4UUV6cmEyeWdqODdBalRBcW5WL3NLcXFRRTV6bW5TQVVLcnFQN0Z6d0lOL3UzeStBRU4rM0FCQVBUcy92Z0FBQU1BVy8vc0JEUUVUZ0FQQUJVQUhBQ0hzZ1FkSGhFU09iQUVFTEFUMExBRUVMQVcwQUN3QUVWWXNBUXZHN0VFR0Q1WnNBQkZXTEFNTHh1eERCQStXYklhREFRUkVqbXdHaSswdnhyUEdnSmR0SjhhcnhvQ2NiTC9HZ0Zkc2c4YUFYRzBMeG8vR2dKZHRNOGEzeG9DY2JJUUFRb3JXQ0hZRy9SWnNBd1FzaFFCQ2l0WUlkZ2I5Rm13QkJDeUZnRUtLMWdoMkJ2MFdUQXhFelEyTmpNeUFCY1hGQVlHSXlJQU5RVWhGaFlnTmdFaUJnY2hKaVpiZStHUDFBRU9Dd0Y4NEpEZS92RURIUDJmRGFRQkFxSCszSDJpRHdKZUVxTUNKNS85aS83aTVUcWUvb2tCTS90RW03aTZBbm0xazVleEFBRUFGZ0FBQk4wRnd3QVBBRWF5QWhBUkVSSTVBTEFBUlZpd0JpOGJzUVljUGxtd0FFVllzQTh2RzdFUEhENVpzQUJGV0xBTUx4dXhEQkErV2JJQkJnd1JFam13QmhDeUNBRUtLMWdoMkJ2MFdUQXhBUmMzQVRZMk14Y0hJZ1lIQVNNQk13SkRJU01CQ0RPR1p5NEJRRUFmL255cS9nZlFBWGFDZ1FNL2wzZ0JxenhVKzNrRnNBQUJBQzRBQUFRTEJFMEFFUUJHc2dJU0V4RVNPUUN3QUVWWXNBVXZHN0VGR0Q1WnNBQkZXTEFSTHh1eEVSZytXYkFBUlZpd0RpOGJzUTRRUGxteUFRVU9FUkk1c0FVUXNnb0JDaXRZSWRnYjlGa3dNUUVYTnhNMk16SVhCeVlqSWdZSEFTTUJNd0hiRnhtZFRheEhJeFVOSFI4OEVQN1hqZjZEdlFFOFpHUUNIL0lZbEFnd0xmeTBCRG9BQUFJQVovOXpCUG9HTkFBVEFDY0FVcklGS0NrUkVqbXdCUkN3R2RBQXNBQkZXTEFOTHh1eERSdytXYkFBUlZpd0F5OGJzUU1RUGxtd0J0Q3dEUkN3RU5DeUZ3RUtLMWdoMkJ2MFdiQWEwTEFERUxJa0FRb3JXQ0hZRy9SWnNDSFFNREVCRUFBSEZTTTFKZ0FETlJBQU56VXpGUllBRVNjMEFpY1ZJelVHQWhVVkZCSVhOVE1WTmhJMUJQcisvdU81NWY3eEFRRU81N25pQVFPL21ZMjVrNk9ra3JtUGx3S3AvdDMra1NPQmZ4OEJjUUVqWUFFa0FYWWZkbmdsL3BEKzJRZmdBUWtqWVdRZi91N2ZYZDcrN0I5bVpDSUJDK0lBQUFJQVcvK0pCRFFFdFFBVEFDVUFXTElESmljUkVqbXdBeEN3SE5BQXNBQkZXTEFETHh1eEF4ZytXYkFBUlZpd0VDOGJzUkFRUGxtd0F4Q3dCdEN3RUJDd0RkQ3dFQkN5SXdFS0sxZ2gyQnYwV2JBVTBMQURFTElkQVFvcldDSFlHL1Jac0JyUU1ERVROQkkzTlRNVkZoSVZGUlFDQnhVak5TWUNOUUUyTmpVMEppY1ZJelVHQmhVVUZoYzFNMXZVdWJtNjJkMjJ1YlRaQWtaamRuUmx1V0p5Y1dPNUFpZlNBU29pY0c4Zy90amRFTmorMkIxcmJCOEJKOXorZVIvTnE1SFFJR0poSWRDbGtzc2laZ0FBQXdDYy8rc0did2RSQUN3QVFBQkpBS2F5Q2twTEVSSTVzQW9Rc0RMUXNBb1FzRW5RQUxBQVJWaXdGQzhic1JRY1BsbXdBRVZZc0Ewdkc3RU5FRDVac0JRUXNBRFFzQTBRc0FmUXNnb05GQkVTT2JBVUVMSVZBUW9yV0NIWUcvUlpzQTBRc2h3QkNpdFlJZGdiOUZteUlCUU5FUkk1c0NYUXNCVVFzQ3pRc0JRUXNEalFzRGd2c0MvUXNpMENDaXRZSWRnYjlGbXdMeEN3Tk5Dd05DK3lQQUlLSzFnaDJCdjBXYkE0RUxCRTBMQkowTEJKTHpBeEFUSVdGUkVVQmlNaUppY0dCaU1pSmljUk5EWXpGU0lHRlJFVUZqTXlOalVSTXhFVUZqTXlOalVSTkNZakV4VWpJaTRDSXlJVkZTTTFORFl6TWg0Q0FUWTNOVE1WRkFZSEJOdTcyZG03Y0xJME5MQnd1ZGdFMkwxamNYSmljb0xCZ25OamNHOWthQ3RRZ3JnMEdIR0FmMjRvU0w5cS9rQkNBNTFiT3dXdjhOYjl4dFR3VlZoWVZlak5Ba3JVOFo2ZGlmM0VqSnVKZkFHcy9sUjZpNXlNQWpxSW53SENmeUpRREhBUEpHNXNFVkliL3BCUVBHbG1NblVnQUFNQWZ2L3JCYW9GOFFBckFEOEFTQUNzc2dsSlNoRVNPYkFKRUxBODBMQUpFTEJJMEFDd0FFVllzQk12RzdFVEdENVpzQUJGV0xBTUx4dXhEQkErV2JBVEVMQUEwTEFNRUxBSDBMSUpEQk1SRWptd0V4Q3lGQUVLSzFnaDJCdjBXYkFNRUxJYkFRb3JXQ0hZRy9SWnNoOFREQkVTT2JBazBMQVVFTEFyMExBVEVMQTMwTEEzTDdBdDBMQXRMN0lzQWdvcldDSFlHL1Jac0MwUXNEUFFzRE12c2pzQ0NpdFlJZGdiOUZtd054Q3dROUN3UXkrd1NOQ3dTQzh3TVFFeUZoVVJGQVlqSWljR0JpTWlKaWNSTkRZekZTSUdGUkVVRmpNeU5qVTFNeFVXRmpNeU5qVVJOQ1lqRXhVaklpNENJeUlWRlNNMU5EWXpNaDRDQVRZM05UTVZGQVlIQkVLb3dNQ28wRjh2bkdLandRVEFxRkpkWEZOaWI3a0JjR0ZSWFYxUnFpeFBmc0F3R0hLQWYyOHBTcmR0L2tGQkE1NWJPd1JFMjhMKzM4SGFsVXRLMExzQk1zSGJtSWg4L3Q1N2lYaG42KzVuZFloOUFTRjhpQUhIZnlCU0MyOFBKRzVzRWxBYy9vWk9QMmhtTW5VZ0FBSUFuUC9zQm5VSEF3QWdBQ2dBZ3JJSEtTb1JFam13QnhDd0o5QUFzQUJGV0xBUEx4dXhEeHcrV2JBQVJWaXdGeThic1JjY1BsbXdBRVZZc0NBdkc3RWdIRDVac0FCRldMQUtMeHV4Q2hBK1diQUUwTElIQ2c4UkVqbXdDaEN5RXdFS0sxZ2gyQnYwV2JBYzBMQVBFTEFuMExBbkw3QW8wTEFvTDdJaUJnb3JXQ0hZRy9SWnNDZ1FzQ1hRc0NVdk1ERUJFUlFHSXlJbUp3WUdJeUltSnhFekVSUVdNekkyTlJFekVSUVdNekkyTlJFbE5TRVhJUlVqTlFaMTRjTnRxekUwc25HOTF3SEJjbUp5Z3NkOGFXcDYvRUlETEFIK3RhZ0ZzUHZleHR4WFdWbFgyOE1FSnZ2ZGU0cUpmQVFqKzkxOWlJbDlCQ0xvYTJ0OWZRQUFBZ0NCLytzRnJRV3dBQjRBSmdDRnNnWW5LQkVTT2JBR0VMQWowQUN3QUVWWXNBMHZHN0VOR0Q1WnNBQkZXTEFWTHh1eEZSZytXYkFBUlZpd0hpOGJzUjRZUGxtd0FFVllzQWd2RzdFSUVENVpzQVRRc0FRdnNnWUlEUkVTT2JBSUVMSVJBUW9yV0NIWUcvUlpzQnJRc0EwUXNDWFFzQ1V2c0NiUXNDWXZzaUFHQ2l0WUlkZ2I5Rm13SmhDd0k5Q3dJeTh3TVFFUkZBWWpJaWNHSXlJbUp4RXpFUllXTXpJMk5SRXpFUlFXTXpJMk54RUJOU0VYSVJVak5RV3R5cTdHV1YvT3A4QUJ1UUZiVTJKdnVtVmNXV1VCL0pNRExBUCtzNmtFT3YwbnNNYVVsTU93QXR6OUkyWjFlR2NDMmYwblozaDFaZ0xkQVF0cmE0Q0FBQUFCQUhYK2hBUzhCY1VBR1FCSnNoZ2FHeEVTT1FDd0FDK3dBRVZZc0Fvdkc3RUtIRDVac0FCRldMQUNMeHV4QWhBK1diQUtFTEFPMExBS0VMSVJBUW9yV0NIWUcvUlpzQUlRc2hrQkNpdFlJZGdiOUZrd01RRWpFU1lBTlRVMEVpUXpNZ0FYSXlZbUl5SUNGUlVVRWhjekF4Uy8yUDc0amdFQW9QY0JJQUxCQXJXaG9NM0ZuWHoraEFGc0hBRlcvL1N4QVNDZi92amducXorL05UMHl2NzdCQUFCQUdUK2dnUGdCRTRBR1FCSnNoZ2FHeEVTT1FDd0FDK3dBRVZZc0Fvdkc3RUtHRDVac0FCRldMQUNMeHV4QWhBK1diQUtFTEFPMExBS0VMSVJBUW9yV0NIWUcvUlpzQUlRc2hnQkNpdFlJZGdiOUZrd01RRWpFU1lDTlRVME5qWXpNaFlWSXpRbUl5SUdGUlVVRmhjekFxSzVzZFIzMTR1ejhLK1BaWVNjbG9KdC9vSUJjQjRCSnRram1mbUs0YWhsak5xMUg2amJBd0FBQVFCMEFBQUVrQVUrQUJNQUV3Q3dEaSt3QUVWWXNBUXZHN0VFRUQ1Wk1ERUJCUWNsQXlNVEpUY0ZFeVUzQlJNekF3VUhKUUpZQVNGRS90MjJxT0grMzBRQkpjMysza1lCSTd5bDV3RWxTUDdnQWI2c2U2cit2d0dPcTN1ckFXMnJmYXNCUy81b3EzcXFBQUg4WndTbS95Y0YvQUFIQUJFQXNBQXZzZ01HQ2l0WUlkZ2I5Rmt3TVFFVkp6Y2hKeGNWL1EybUFRSWJBYVVGSTMwQjZXd0IyQUFBQWZ4eEJSZi9aQVlWQUJNQUxnQ3dEaSt3Q05Dd0NDK3lBQUlLSzFnaDJCdjBXYkFPRUxBRjBMQUZMN0FPRUxJUEFnb3JXQ0hZRy9SWk1ERUJNaFlWRlNNMU5DTWlCd2NHQnlNMU1qNEMvblp2ZjRCeUtpMXZpWFk4YkdyQlJ3WVZiRzRrRG5BU0x6b0NmaHRURVFBQi9XWUZGdjVVQmxjQUJRQU1BTEFCTDdBRjBMQUZMekF4QVRVekZSY0gvV2F6TzAwRjNIdU1kRUVBQUFIOXBBVVcvcE1HVndBRkFBd0FzQU12c0FEUXNBQXZNREVCSnpjbk14WDk4VTA3QWJVRkZrRjBqSHNBQ1BvYi9zUUJ0Z1d2QUF3QUdnQW5BRFVBUWdCUEFGd0FhZ0I2QUxCRkw3QlRMN0JnTDdBNEw3QUFSVml3QWk4YnNRSWNQbG15Q1FzS0sxZ2gyQnYwV2JCRkVMQVEwTEJGRUxKTUN3b3JXQ0hZRy9SWnNCZlFzRk1Rc0I3UXNGTVFzbG9MQ2l0WUlkZ2I5Rm13SmRDd1lCQ3dLOUN3WUJDeVp3c0tLMWdoMkJ2MFdiQXkwTEE0RUxJL0N3b3JXQ0hZRy9SWk1ERUJORFl5RmhVak5DWWpJZ1lWQVRRMk16SVdGU00wSmlNaUJoVVRORFl6TWhZVkl6UW1JZ1lWQVRRMk16SVdGU00wSmlNaUJoVUJORFl5RmhVak5DWWpJZ1lWQVRRMk1oWVZJelFtSXlJR0ZRRTBOak15RmhVak5DWWlCaFVUTkRZek1oWVZJelFtSXlJR0ZmMEljNzUwY0RNd0xqTUIzblJkWDNWeE5TNHNNMGgxWFY5MGNEVmNNLzdMZEYxZmRIQTFMaTB6L1U5enZuUndNekF1TS8xTmRMNTBjRE13TGpQKzNuVmRYM1J3TlZ3ek5YVmRYM1Z4TlM0dE13VHpWR2hvVkM0M05URCs2MVJvWjFVeE5EVXcvZ2xWWjJoVU1UUTNMdjM1Vkdob1ZERTBOeTcrNUZSb2FGUXVOemN1QlJwVWFHaFVMamMxTVA0SlZXZG9WREUwTnk3OStWVm5aMVV4TkRVd0FBajZMUDVqQVdzRnhnQUVBQWtBRGdBVEFCZ0FIUUFpQUNjQU9RQ3dJUyt3RWkrd0N5K3dHeSt3Smkrd0FFVllzQWN2RzdFSEhENVpzQUJGV0xBV0x4dXhGaG8rV2JBQVJWaXdBaThic1FJU1Bsa3dNUVVYQXlNVEF5Y1RNd01CTndVVkpRVUhKVFVGQVRjbEZ3VUJCd1VuSlFNbkF6Y1RBUmNUQndQK0x3dDZZRVk2REhwZ1JnSWREUUZOL3FiN2RRMytzd0ZhQTV3Q0FVQkUvdHY4OHdMK3dFVUJKaXNSbEVIR0EyQVJsRUxFUEE3K3JRRmhCS0lPQVZMK29QNFJESHhpUnpzTWZHSkhBYTRRbVVUSS9JNFJtVVhJQXVRQ0FVWkYvdFg4NHdMK3UwY0JLd0FBQXYvY0FBQUQvQVp4QUJFQUdnQjBzaFFiSEJFU09iQVVFTEFEMEFDd0FFVllzQXd2RzdFTUhENVpzQUJGV0xBUUx4dXhFQncrV2JBQVJWaXdDQzhic1FnUVBsbXdFQkN5QUFFS0sxZ2gyQnYwV2JJQ0RBZ1JFam13QWkrd0FCQ3dDdEN3QzlDd0FoQ3lFZ0VLSzFnaDJCdjBXYkFJRUxJVEFRb3JXQ0hZRy9SWk1ERUJJUkVoRmhZUUJnY2hFU00xTXpVekZTRUJFU0V5TmpVMEppY0NsdjYvQVJpNzFOUzMvaXEvdjdvQlFmNi9BUkpwY1c5a0JSajkwZ0xLL3JiUkF3VVltTUhCL0tMK1JYZGtZWDBDQUFJQXFBQUFCTmNGc0FBT0FCc0FWTElFSEIwUkVqbXdCQkN3RjlBQXNBQkZXTEFETHh1eEF4dytXYkFBUlZpd0FTOGJzUUVRUGxteUZnTUJFUkk1c0JZdnNnQUJDaXRZSWRnYjlGbXlDUUFERVJJNXNBTVFzaFFCQ2l0WUlkZ2I5Rmt3TVFFUkl4RWhNZ1FWRkFjWEJ5Y0dJd0UyTlRRbUp5RVJJVEkzSnpjQmFjRUNHZXdCRTJkK2JZdDJxQUVaSmFXUi9xQUJXR0pGYm00Q092M0dCYkR5eTdwd2ltZVpOd0ViUVZ1Q25RTDl4UjE1WmdBQUFnQ00vbUFFSXdST0FCTUFJZ0Ixc2h3akpCRVNPYkFjRUxBUTBBQ3dBRVZZc0JBdkc3RVFHRDVac0FCRldMQU5MeHV4RFJnK1diQUFSVml3Q2k4YnNRb1NQbG13QUVWWXNBY3ZHN0VIRUQ1WnNnSUhFQkVTT2JJSkVBY1JFam15RGhBSEVSSTVzQkFRc2hjQkNpdFlJZGdiOUZtd0J4Q3lIQUVLSzFnaDJCdjBXVEF4QVJRSEZ3Y25CaU1pSnhFakVUTVhOak15RWhFbk5DWWpJZ2NSRmpNeU55YzNGellFSG1wdmJtNVpjOFZ4dWFrSmNjbkQ0N21jaUtoVVU2dFNQR1p1V2pJQ0VlNlhmV1o3T0gzOTl3WGFlSXorMnY3NkJMZlVsZjM3bENkeloyZGlBQUFCQUtJQUFBUWpCd0FBQ1FBMXNnTUtDeEVTT1FDd0NDK3dBRVZZc0FZdkc3RUdIRDVac0FCRldMQUVMeHV4QkJBK1diQUdFTElDQVFvcldDSFlHL1JaTURFQkl4VWhFU01SSVJFekJDTUQvVUxBQXNpNUJSZ0crdTRGc0FGUUFBQUJBSkVBQUFOQ0JYWUFCd0F1QUxBR0w3QUFSVml3QkM4YnNRUVlQbG13QUVWWXNBSXZHN0VDRUQ1WnNBUVFzZ0FCQ2l0WUlkZ2I5Rmt3TVFFaEVTTVJJUkV6QTBMK0Nib0IrTGtEb2Z4ZkJEb0JQQUFCQUxIKzN3UjhCYkFBRlFCYnNnb1dGeEVTT1FDd0NTK3dBRVZZc0JRdkc3RVVIRDVac0FCRldMQVNMeHV4RWhBK1diQVVFTElBQVFvcldDSFlHL1Jac2dNVUNSRVNPYkFETDdBSkVMSUtBUW9yV0NIWUcvUlpzQU1Rc2hBQkNpdFlJZGdiOUZrd01RRWhFVE1nQUJFUUFpTW5NalkxSmlZakl4RWpFU0VFTVAxQ3NnRWNBVHoxNUFLUmtBSE16clhCQTM4RkV2NHYvcy8rOFA3NC91ZVR3OHZMMVAxaEJiQUFBQUVBa2Y3bEE3NEVPZ0FXQUZ1eUN4Y1lFUkk1QUxBS0w3QUFSVml3RlM4YnNSVVlQbG13QUVWWXNCTXZHN0VURUQ1WnNCVVFzZ0FCQ2l0WUlkZ2I5Rm15QXhVS0VSSTVzQU12c0FvUXNnc0JDaXRZSWRnYjlGbXdBeEN5RVFFS0sxZ2gyQnYwV1RBeEFTRVJNeklBRlJRR0JnY25OalkxTkNZakl4RWpFU0VEUHY0TmJPOEJHR0txZFRDQWVMS1ljTG9DclFPaC91VCsvTmRpeUlZVmtpR1plWkdvL2gwRU9nQUFBUUNqQUFBRS93V3dBQlFBWWdDd0FFVllzQUF2RzdFQUhENVpzQUJGV0xBTUx4dXhEQncrV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0Fvdkc3RUtFRDVac0EvUXNBOHZzaThQQVYyeXp3OEJYYklJQVFvcldDSFlHL1Jac2dFSUR4RVNPYkFGMExBUEVMQVMwREF4Q1FJakFTTVZJelVqRVNNUk14RXpFVE1STXdFRTB2NXdBYjN4L3FKUWxHakJ3V2lVVFFGREJiRDlUdjBDQW83MDlQMXlCYkQ5ZndFQS93QUNnUUFBQVFDYUFBQUVmd1E2QUJRQWV3Q3dBRVZZc0Ewdkc3RU5HRDVac0FCRldMQVVMeHV4RkJnK1diQUFSVml3Q2k4YnNRb1FQbG13QUVWWXNBTXZHN0VERUQ1WnNBb1FzQTdRc0E0dnNwOE9BVjJ5L3c0QlhiS2ZEZ0Z4dEw4T3p3NENYYkl2RGdGZHNtOE9BWEt5Q1FFS0sxZ2gyQnYwV2JJQkNRNFJFam13QmRDd0RoQ3dFdEF3TVFrQ0l3RWpGU00xSXhFakVUTVJNelV6RlRNQkJGcityZ0YzNi83ck1wUmx1cnBsbENvQkF3UTYvZjc5eUFITndzTCtNd1E2L2piVjFRSEtBQUVBUkFBQUJvc0ZzQUFPQUdzQXNBQkZXTEFHTHh1eEJodytXYkFBUlZpd0NpOGJzUW9jUGxtd0FFVllzQUl2RzdFQ0VENVpzQUJGV0xBTkx4dXhEUkErV2JJSUJnSVJFam13Q0MreUx3Z0JYYkxQQ0FGZHNnRUJDaXRZSWRnYjlGbXdCaEN5QkFFS0sxZ2gyQnYwV2JJTUFRZ1JFamt3TVFFakVTTVJJVFVoRVRNQk13RUJJd09Rc01IK0pRS2NsZ0g4Ny8zVUFsYnNBbzc5Y2dVWW1QMStBb0w5UC8wUkFBRUFQZ0FBQlgwRU9nQU9BSUFBc0FCRldMQUdMeHV4QmhnK1diQUFSVml3Q2k4YnNRb1lQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFOTHh1eERSQStXYkFDRUxBSjBMQUpMN0tmQ1FGZHN2OEpBVjJ5bndrQmNiUy9DYzhKQWwyeUx3a0JYYkp2Q1FGeXNnQUJDaXRZSWRnYjlGbXdCaEN5QkFFS0sxZ2gyQnYwV2JJTUFBa1JFamt3TVFFakVTTVJJVFVoRVRNQk13RUJJd01iaUxyK1pRSlZlZ0ZyNGY1VEFkSHJBYzMrTXdPaG1mNDJBY3I5K1AzT0FBQUJBS2dBQUFlRUJiQUFEUUJlQUxBQVJWaXdBaThic1FJY1BsbXdBRVZZc0F3dkc3RU1IRDVac0FCRldMQUdMeHV4QmhBK1diQUFSVml3Q2k4YnNRb1FQbG13QWRDd0FTK3lMd0VCWGJBQ0VMSUVBUW9yV0NIWUcvUlpzQUVRc2dnQkNpdFlJZGdiOUZrd01RRWhFU0VWSVJFakVTRVJJeEV6QVdrQzNnTTkvWVBBL1NMQndRTStBbktZK3VnQ29mMWZCYkFBQVFDUkFBQUZhUVE2QUEwQW13Q3dBRVZZc0FJdkc3RUNHRDVac0FCRldMQU1MeHV4REJnK1diQUFSVml3Qmk4YnNRWVFQbG13QUVWWXNBb3ZHN0VLRUQ1WnNBWVFzQUhRc0FFdnNtOEJBVjIwdndIUEFRSmRzajhCQVhHMHp3SGZBUUp4c2c4QkFYSzBud0d2QVFKeHN2OEJBVjJ5RHdFQmNiS2ZBUUZkc2k4QkFWMjBid0YvQVFKeXNBSVFzZ1FCQ2l0WUlkZ2I5Rm13QVJDeUNBRUtLMWdoMkJ2MFdUQXhBU0VSSVJVaEVTTVJJUkVqRVRNQlN3SHhBaTMrakxuK0Q3cTZBbVVCMVpuOFh3SE8vaklFT2dBQUFRQ3cvdDhIelFXd0FCY0FhTElSR0JrUkVqa0FzQWN2c0FCRldMQVdMeHV4Rmh3K1diQUFSVml3RkM4YnNSUVFQbG13QUVWWXNCRXZHN0VSRUQ1WnNnRVdCeEVTT2JBQkw3QUhFTElJQVFvcldDSFlHL1Jac0FFUXNnNEJDaXRZSWRnYjlGbXdGaEN5RWdFS0sxZ2gyQnYwV1RBeEFUTWdBQkVRQWlNbk1qWTFKaVlqSXhFakVTRVJJeEVoQlA5MkFSd0JQUFhrQXBHUUFjek9lY0g5TXNBRVR3TkIvcy8rOFA3NC91ZVR3OHZMMVAxaEJSTDY3Z1d3QUFBQkFKSCs1UWF3QkRvQUdBQm9zaElaR2hFU09RQ3dDQyt3QUVWWXNCY3ZHN0VYR0Q1WnNBQkZXTEFWTHh1eEZSQStXYkFBUlZpd0VpOGJzUklRUGxteUFSY0lFUkk1c0FFdnNBZ1FzZ2tCQ2l0WUlkZ2I5Rm13QVJDeUR3RUtLMWdoMkJ2MFdiQVhFTElUQVFvcldDSFlHL1JaTURFQk16SUFGUWNHQmdjbk5qWTFOQ1lqSXhFakVTRVJJeEVoQS9hZytBRWlBeFRSbVRCOGU3eWdwTG4rRHJvRFpRS0YvdnpYSnFQaEc1SWdsbjJTcC80ZEE2SDhYd1E2QUFJQWNmL2tCYUlGeFFBb0FEWUFtN0lZTnpnUkVqbXdHQkN3S2RBQXNBQkZXTEFOTHh1eERSdytXYkFBUlZpd0h5OGJzUjhjUGxtd0FFVllzQVF2RzdFRUVENVpzQURRc0FBdnNnSUVIeEVTT2JBQ0w3QU5FTElPQVFvcldDSFlHL1Jac0FRUXNoVUJDaXRZSWRnYjlGbXdBaEN5TEFFS0sxZ2gyQnYwV2JJWEFpd1JFam15Sml3Q0VSSTVzQUFRc2lnQkNpdFlJZGdiOUZtd0h4Q3lNd0VLSzFnaDJCdjBXVEF4QlNJbkJpTWlKQUkxTlRRU05qTVhJZ1lWRlJRU016STNKZ0kxTlRRMk5qTXlFaFVWRkFJSEZqTUJGQllYTmpZMU5UUW1JeUlHRlFXaTE3T09yTEwrNUo5MTBvUUJkcFRzdjBZNGVZUm92WGEyNW05bWFIbjlmWGgxWW1oNVkyRjZIRWxDc2dGQ3hLeXhBU0tqcGY3WnB1eisxdzFoQVJXcTQ1cjlqZjdNL2V1ZS92WmZHZ0kwbU8xS1NPZU4rYkhPMHJJQUFBSUFiZi9yQkp3RVR3QWtBQzhBb3JJRU1ERVJFam13QkJDd0pkQUFzQUJGV0xBTUx4dXhEQmcrV2JBQVJWaXdIQzhic1J3WVBsbXdBRVZZc0FRdkc3RUVFRDVac0FCRldMQUFMeHV4QUJBK1diSUNCQndSRWptd0FpK3dEQkN5RFFFS0sxZ2gyQnYwV2JBRUVMSVVBUW9yV0NIWUcvUlpzQUlRc2ljQkNpdFlJZGdiOUZteUZoUW5FUkk1c0FBUXNpUUJDaXRZSWRnYjlGbXlJaWNrRVJJNXNCd1FzaXdCQ2l0WUlkZ2I5Rmt3TVFVaUp3WWpJaVlDTlRVMEVqTVZJZ1lWRlJRV016STNKaEUxTkRZek1oWVZGUlFIRmpNQkZCYzJOelUwSmlJR0J3U2Nzb3gyajR6aGY4V2JTVjJwaVM0c3dhMlBqTEtBVDJIK0Q1OW1BMGw0UmdFTU9VS1ZBUktuT3MwQkRwNnRrampCOEF1aUFSRmV3T3Y1em1Mam5SVUJxZFowYzdwMWdwNk5lZ0FBQVFBMC9xRUdrd1d3QUJNQVd3Q3dFUyt3QUVWWXNBY3ZHN0VISEQ1WnNBQkZXTEFNTHh1eERCdytXYkFBUlZpd0V5OGJzUk1RUGxtd0J4Q3lDQUVLSzFnaDJCdjBXYkFBMExBSEVMQUYwTEFEMExBQzBMQVRFTElLQVFvcldDSFlHL1Jac0E3UU1ERUJJVFVoTlRNVklSVWhFU0VSTXhFekF5TVJJUUdyL29rQmQ4RUJnZjUvQXM3Qm1CS3MrOVlGR0pjQkFaZjdoUVVUK3ZIK0FBRmZBQUVBSC82L0JSWUVPZ0FQQUVzQXNBMHZzQUJGV0xBREx4dXhBeGcrV2JBQVJWaXdEeThic1E4UVBsbXdBeEN5QkFFS0sxZ2gyQnYwV2JBQTBMQVBFTElHQVFvcldDSFlHL1Jac0FNUXNBalFzQVlRc0FyUU1ERUJJVFVoRlNNUklSRXpFVE1ESXhFaEFUSCs3Z0xFK1FIeXVvQVNwZnpTQTZPWGwvejBBNlA4WGY0b0FVRUFBUUNXQUFBRXlBV3dBQmNBVDdJRUdCa1JFamtBc0FCRldMQUFMeHV4QUJ3K1diQUFSVml3Q2k4YnNRb2NQbG13QUVWWXNBd3ZHN0VNRUQ1WnNnY0FEQkVTT2JBSEw3QUUwTEFIRUxJUUFRb3JXQ0hZRy9SWnNCUFFNREVCRVJZV014RXpFVFkzRVRNUkl4RUdCeFVqTlNJbUp4RUJWd0dKb0pWNWVNSEJjbitWK084RUJiRCtNcHFFQVRiKzBnMGhBcmI2VUFKYklnM3U2Tm5hQWRjQUFBRUFnd0FBQTlrRU93QVdBRSt5QmhjWUVSSTVBTEFBUlZpd0N5OGJzUXNZUGxtd0FFVllzQlV2RzdFVkdENVpzQUJGV0xBQUx4dXhBQkErV2JJUEZRQVJFam13RHkreUJ3RUtLMWdoMkJ2MFdiQUUwTEFQRUxBUzBEQXhJU01SQmdjVkl6VW1KaWNSTXhFV0Z4RXpFVFkzRVRNRDJicEdVNWF3dXdLNUJhK1dWRVc2QVlnVENZZUZEY3kxQVVQK3RkTWFBUmorNmdvUkFob0FBQUVBaWdBQUJMd0ZzQUFSQUVheUJSSVRFUkk1QUxBQVJWaXdBUzhic1FFY1BsbXdBRVZZc0FBdkc3RUFFRDVac0FCRldMQUpMeHV4Q1JBK1diSUZBUUFSRWptd0JTK3lEZ0VLSzFnaDJCdjBXVEF4TXhFekVUWXpNaFlYRVNNUkppWWpJZ2NSaXNHNXl2bnlBOEVCaWFPN3lBV3cvYVUxMk4vK0xRSE9tSVkzL1VzQUFBSUFQLy9xQmIwRnd3QWRBQ1VBWkxJWEppY1JFam13RnhDd0pOQUFzQUJGV0xBUEx4dXhEeHcrV2JBQVJWaXdBQzhic1FBUVBsbXlIdzhBRVJJNXNCOHZzaE1CQ2l0WUlkZ2I5Rm13Qk5Dd0h4Q3dDOUN3QUJDeUdBRUtLMWdoMkJ2MFdiQVBFTElqQVFvcldDSFlHL1JaTURFRklBQVJOU1ltTlRNVUZoYzBFall6SUFBUkZTRVZGQll6TWpjWEJnWUJJVFUwSmlNaUFnUHAvdUwrczVtbW1GQlhqdjJXQVFJQkhQeUMzc3l6cGk5QTB2M2dBcjZ6cTU3Q0ZnRlJBU2xiRThXaVduMFV0QUVmb3Y2ai9yNXNYZHozVTQ4dE5RTmFJZG5sL3YwQUF2L2UvK3dFWXdST0FCa0FJUUJ5c2hRaUl4RVNPYkFVRUxBYjBBQ3dBRVZZc0Ewdkc3RU5HRDVac0FCRldMQUFMeHV4QUJBK1diSWVEUUFSRWptd0hpKzB2eDdQSGdKZHNoRUJDaXRZSWRnYjlGbXdBOUN3SGhDd0NkQ3dBQkN5RlFFS0sxZ2gyQnYwV2JJWERRQVJFam13RFJDeUdnRUtLMWdoMkJ2MFdUQXhCU0lBTlNZbU5UTVVGejRDTXpJU0VSVWhGaFl6TWpjWEJnRWlCZ2NoTlNZbUFyM2MvdXg0ZDVObEZJVEljTlBxL1NNRXM0cXViM0dJL3Rsd21CSUNIZ2lJRkFFaCtoMnVocE13Z3NsdS91cisvVTJneFpKWTBRUEtvNU1PalpzQUFBRUFvLzdXQk13RnNBQVdBRjJ5RlJjWUVSSTVBTEFPTDdBQVJWaXdBaThic1FJY1BsbXdBRVZZc0FZdkc3RUdIRDVac0FCRldMQUFMeHV4QUJBK1diSUVBQUlSRWptd0JDK3dDTkN3RGhDeUR3RUtLMWdoMkJ2MFdiQUVFTElXQVFvcldDSFlHL1JaTURFaEl4RXpFVE1CTXdFV0FCVVFBaU1uTWpZMUppWW5JUUZrd2NHRkFnSGkvZmo0QVEzNTVnS1FrQUxIeC83c0JiRDlqd0p4L1lnVy90TDYvdmorNUpqQnljclNBUUFBQVFDYS92NEVHUVE2QUJZQWViSU5GeGdSRWprQXNBY3ZzQUJGV0xBUkx4dXhFUmcrV2JBQVJWaXdGUzhic1JVWVBsbXdBRVZZc0E4dkc3RVBFRDVac0JQUXNCTXZzcDhUQVYyeS94TUJYYktmRXdGeHRMOFR6eE1DWGJJdkV3RmRzczhUQVhHd0FOQ3dCeEN5Q0FFS0sxZ2gyQnYwV2JBVEVMSU9BUW9yV0NIWUcvUlpNREVCRmhZVkZBWUdCeWMyTlRRbUp5TVJJeEV6RVRNQk13Si93ODVrckhBdytLMmxzcnE2V3dHSzRBSmtIK0swWGNWOEU1STU1b3FTQXY0ekJEcitOZ0hLQUFBQkFMSCtTd1QrQmJBQUZRQ25zZ29XRnhFU09RQ3dBRVZZc0FBdkc3RUFIRDVac0FCRldMQURMeHV4QXh3K1diQUFSVml3Q0M4YnNRZ1NQbG13QUVWWXNCTXZHN0VURUQ1WnNBTFFzQUl2c2w4Q0FWMnl6d0lCWGJJZkFnRnh0RzhDZndJQ2NiUy9BczhDQW5HMER3SWZBZ0p5c3U4Q0FYR3lud0lCY2JKUEFnRnhzdjhDQVYyeXJ3SUJYYkl2QWdGZHNqOENBWEt3Q0JDeURRRUtLMWdoMkJ2MFdiQUNFTElSQVFvcldDSFlHL1JaTURFQkVTRVJNeEVVQmlNaUp6Y1dNekkyTlJFaEVTTVJBWElDek1Dcm5EdzJEaVU5UVVqOU5NRUZzUDF1QXBMNS9haTZFcG9PWjF3QzFmMS9CYkFBQUFFQWtmNUxBL1VFT2dBV0FKK3lDaGNZRVJJNUFMQUFSVml3QUM4YnNRQVlQbG13QUVWWXNBTXZHN0VER0Q1WnNBQkZXTEFJTHh1eENCSStXYkFBUlZpd0ZDOGJzUlFRUGxtd0F0Q3dBaSt5YndJQlhiUy9BczhDQWwyeVB3SUJjYlRQQXQ4Q0FuR3lEd0lCY3JTZkFxOENBbkd5L3dJQlhiSVBBZ0Z4c3A4Q0FWMnlMd0lCWGJSdkFuOENBbkt3Q0JDeURnRUtLMWdoMkJ2MFdiQUNFTElTQVFvcldDSFlHL1JaTURFQkVTRVJNeEVVQmlNaUp6Y1dGeGN5TmpVUklSRWpFUUZMQWZHNXE1ZzhOQThSUEJSQ1NQNFB1Z1E2L2lzQjFmdHRxcklTa3djRkFXaGNBaWYrTWdRNkFBQUNBRjMvN0FVU0JjUUFGd0FmQUY2eUNDQWhFUkk1c0FnUXNCalFBTEFBUlZpd0FDOGJzUUFjUGxtd0FFVllzQWd2RzdFSUVENVpzZzBBQ0JFU09iQU5MN0FBRUxJUkFRb3JXQ0hZRy9SWnNBZ1FzaGdCQ2l0WUlkZ2I5Rm13RFJDeUd3RUtLMWdoMkJ2MFdUQXhBU0FBRVJVVUFnUWpJQUFSTlNFMUVBSWpJZ2NISnpjMkFUSVNOeUVWRkJZQ2dBRXVBV1NjL3Vxbi91UCt3UVAwOU4ybGl6MHZGcDRCSWFuZUQvelAwd1hFL29mK3NWVEYvcisyQVZrQlJYVUhBUUlCSERvYWp3MVkrc1lCQmRzaTJ1UUFBUUJvLytzRUxBV3dBQnNBWjdJTEhCMFJFamtBc0FCRldMQUNMeHV4QWh3K1diQUFSVml3Q3k4YnNRc1FQbG13QWhDeUFBRUtLMWdoMkJ2MFdiQUUwTElGQWdzUkVqbXdCUyt3Q3hDd0VOQ3dDeEN5RXdFS0sxZ2gyQnYwV2JBRkVMSVpBUW9yV0NIWUcvUlpzQVVRc0J2UU1ERUJJVFVoRndFV0ZoVVVCQ01pSmlZMU14UVdNekkyTlRRbUl5TTFBeDM5ZGdOckFmNXIyZW4rOCtDRzIzYkFuSHVKbzZhZWpRVVNubjMrSGc3bnhzUG9hYjZDY3BxU2VKMk9sd0FBQVFCcC9uVUVLQVE2QUJvQVdySUxHeHdSRWprQXNBc3ZzQUJGV0xBQ0x4dXhBaGcrV2JJQUFRb3JXQ0hZRy9SWnNBVFFzZ1VDQ3hFU09iQUZMN0FMRUxBUTBMQUxFTElUQVFvcldDSFlHL1Jac0FVUXNoZ0RDaXRZSWRnYjlGbXdCUkN3R3RBd01RRWhOU0VYQVJZV0ZSUUVJeUltSmpVekZCWXpNalkxRUNVak5RTU0vWWdEWlFIK2N0VG8vdlRlaE5kNnVwNTlqYVQreWFBRG9abDIvaEVRNGNYRDUyYS9nM0dmbFhrQklnaVgvLzhBT3Y1TEJIUUZzQUFtQUxCRUFBQW1BZDZyUUFBSEFhOEE4QUFBLy84QU8vNUxBNVlFT2dBbUFPdFBBQUFtQWQ2c2pnRUhBYThBNFFBQUFBZ0FzZ0FHQVYwd01RQUNBRmNBQUFSbEJiQUFDZ0FUQUZDeUJCUVZFUkk1c0FRUXNBM1FBTEFBUlZpd0FTOGJzUUVjUGxtd0FFVllzQU12RzdFREVENVpzZ0FCQXhFU09iQUFMN0FERUxJTEFRb3JXQ0hZRy9SWnNBQVFzZ3dCQ2l0WUlkZ2I5Rmt3TVFFUk14RWhJaVExTkRZM0FSRWhJZ1lWRkJZWEE2UEMvZC9rL3ZmLzRBRnQvcUdNb1orS0EzTUNQZnBROHN2SDZ3VDlLZ0k0bG9DQ253RUFBZ0JaQUFBR1p3V3dBQmNBSHdCYXNnY2dJUkVTT2JBSEVMQVkwQUN3QUVWWXNBZ3ZHN0VJSEQ1WnNBQkZXTEFBTHh1eEFCQStXYklIQ0FBUkVqbXdCeSt3QUJDeUdBRUtLMWdoMkJ2MFdiQUswTElRQUFnUkVqbXdCeEN5R1FFS0sxZ2gyQnYwV1RBeElTSWtOVFFrTnlFUk14RTNOalkzTmljekZ4WUhCZ1lqSlJFaElnWVVGaGNDUitYKzl3RUI0d0Zxd1ZodmNnTUVRTG9XTHdNRTVjUCs3LzZnanA2WWhmVEp4dTBEQWozNjZ3RUNrbnVpcDBTWGJzUG9uUUk0bC82ZkJBQUFBZ0JrLytjR2JnWVlBQjhBS3dDRHNob3NMUkVTT2JBYUVMQXEwQUN3QUVWWXNBWXZHN0VHSGo1WnNBQkZXTEFETHh1eEF4ZytXYkFBUlZpd0dDOGJzUmdRUGxtd0FFVllzQnd2RzdFY0VENVpzZ1VER0JFU09iQVlFTElMQVFvcldDSFlHL1Jac2hFREdCRVNPYklhQXhnUkVqbXdBeEN5SWdFS0sxZ2gyQnYwV2JBY0VMSW9BUW9yV0NIWUcvUlpNREVURUJJek1oY1JNeEVHRmpNMk5qYzJKemNXRmdjT0FpTUdKd1lqSWdJMUFTWWpJZ1lWRkJZek1qY25aT0xFdDJxNUFsOU9pWmNFQkVHekhDa0NBbm5aaWZKT2JOdkE1QUxIVXFHSGxKR0lwMU1GQWdrQkNBRTlnd0pOKzBGZmVBTFF2YnJZQVdiSFpxbjVoQVM2dGdFYjlBRXhodC9lcmIrVFBnQUFBUUEyLytNRjFRV3dBQ2NBWTdJUUtDa1JFamtBc0FCRldMQUpMeHV4Q1J3K1diQUFSVml3SVM4YnNTRVFQbG15QVNnSkVSSTVzQUV2c2dBQkNpdFlJZGdiOUZtd0NSQ3lCd0VLSzFnaDJCdjBXYklQQUFFUkVqbXdJUkN5RlFFS0sxZ2gyQnYwV2JJYUlRa1JFamt3TVJNMU16WTJOVFFoSVRVaEZoWVZGQWNXRXhVVUZqTTJOamMySnpNWEZnY0dBaU1FQXpVMEppZittNStUL3N2K29BRnI3L3p0MndWVFFYU0dCQVJCdWhjd0F3VDJ4LzY5RDRkMUFubWVBbnVEKzU0QjBjbm9Za1grL0ZCUFd3TE91YnZZV0x1QS9mN1hDQUZOUUhpUUFRQUJBREgvNHdUb0JEb0FKd0Jnc2c4b0tSRVNPUUN3QUVWWXNCOHZHN0VmR0Q1WnNBQkZXTEFPTHh1eERoQStXYklDQVFvcldDSFlHL1Jac2djT0h4RVNPYklYS0I4UkVqbXdGeSt5RkFFS0sxZ2gyQnYwV2JBZkVMSWRBUW9yV0NIWUcvUlpzaVVVRnhFU09UQXhKUVl6TmpZM05pY3pGaFlIQmdZakJpWW5OVFFqSXljek5qWTFOQ1lqSVNjaEZoWVZGQWNXRndMbkFsOXdkZ01FUXJRdEdBRUU1N2lIaVFmWXpRTEFlbTU5ZGY3N0JnRVl4Tnk4dGdUVldBS2JpWm1taG9BNXpmQURjSU5IblpZQlYwcFZYWllEcDVpZFNqU3lBQUVBVXY3WEEvVUZyd0FoQUYyeUlDSWpFUkk1QUxBWEw3QUFSVml3Q1M4YnNRa2NQbG13QUVWWXNCb3ZHN0VhRUQ1WnNnRWlDUkVTT2JBQkw3SUFBUW9yV0NIWUcvUlpzQWtRc2djQkNpdFlJZGdiOUZteUR3QUJFUkk1c0JvUXNSSUtLMWpZRzl4Wk1ERVROVE0yTmpVUUlTRTFJUllXRlJRSEZoTVZNeFVVQmdjbk5qY2pKaWMxTkNZanI2bWttLzdLL3ZFQkllajA1ZDRFcVdGTmFsRU9hendEa25jQ2VaY0JmWVVCQlpjRDBzbmlaRWIrK0ttVVljaEFTSE51Tkt1UGZvMEFBQUVBZWY3SEE5a0VPZ0FnQUYyeUlDRWlFUkk1QUxBWEw3QUFSVml3Q0M4YnNRZ1lQbG13QUVWWXNCb3ZHN0VhRUQ1WnNnRWhDQkVTT2JBQkw3SUFBUW9yV0NIWUcvUlpzQWdRc2dZQkNpdFlJZGdiOUZteUR3QUJFUkk1c0JvUXNSSUtLMWpZRzl4Wk1ERVRKek0yTlRRaklUVWhGaGNXRlJRSEZoY1ZNeFVVQmdjbk5qY2pKaWMxTkNQQ0FkdnA5ZjdwQVNmZGJGYSt2UUdhWWsxcFZBMW5Nd0xhQWJpWEFxR3lsZ05uVTRTaFNUWEtUSlJoeWo1SWRIMGhoVjYwQUFFQVJQL3JCM0FGc0FBakFHS3lBQ1FsRVJJNUFMQUFSVml3RGk4YnNRNGNQbG13QUVWWXNDQXZHN0VnRUQ1WnNBQkZXTEFITHh1eEJ4QStXYkFPRUxJQUFRb3JXQ0hZRy9SWnNBY1FzZ2dCQ2l0WUlkZ2I5Rm13SUJDeUV3RUtLMWdoMkJ2MFdiSVpEaUFSRWprd01RRWhBd0lDQmdjak5UYytBamNUSVJFVUZqTXlOamMySnpjV0ZnY0dBZ2NISWlZMUJDZitHaG9QV2F5UVB5aGRaRFFMSGdOZldVK0Nsd1FDUDdvY0tRSUQ2Y011czdjRkV2Mi8vdDcrM0lrQ25RSUhhK3J6QXNMN3JHQjB6YnpBMGdGbXgyYnMvdG9TQXJxMEFBQUJBRC8vNndZNkJEb0FJUUJpc2lBaUl4RVNPUUN3QUVWWXNBd3ZHN0VNR0Q1WnNBQkZXTEFlTHh1eEhoQStXYkFBUlZpd0JpOGJzUVlRUGxtd0RCQ3lBQUVLSzFnaDJCdjBXYkFHRUxJSEFRb3JXQ0hZRy9SWnNCNFFzaEVCQ2l0WUlkZ2I5Rm15Rmg0TUVSSTVNREVCSVFNQ0JnY2pOVGMyTmpjVElSRVVGak15TmpjMkp6TVhGZ2NPQWlNaUppY0RNZjY3RnhTY3BVRTJWVTBORndLdldrOXNld1FFUWJNV01BTUNiTDU0cnJNQkE2SCtXdjdyNUFLakJBcW4wd0lQL1NGZ2ViZXJzc3RRc1h5YTVubTRzUUFCQUtuLzV3ZHhCYkFBSFFDdXNoUWVIeEVTT1FDd0FFVllzQUF2RzdFQUhENVpzQUJGV0xBWkx4dXhHUncrV2JBQVJWaXdFUzhic1JFUVBsbXdBRVZZc0Jjdkc3RVhFRDVac0JFUXNnUUJDaXRZSWRnYjlGbXlDZ0FSRVJJNXNCY1FzQnpRc0J3dnN1OGNBWEd5WHh3QlhiTFBIQUZkc2g4Y0FYRzBieHgvSEFKeHRMOGN6eHdDY2JLZkhBRnhzazhjQVhHeS94d0JYYkt2SEFGZHNpOGNBVjIwRHh3ZkhBSnlzajhjQVhLeUZRRUtLMWdoMkJ2MFdUQXhBUkVVRmpNMk5qYzJKemNXRmdjT0FpTUdKaWNSSVJFakVUTVJJUkVFNlYxS2hwUUVCRUs3R3lzQ0FudllpcXUxQ1AxQ3djRUN2Z1d3KzZ4bGJ3TE51cmZiQVdMS1o2ajdnd1M0dXdFbi9YOEZzUDF1QXBJQUFRQ1EvK2NHVFFRNkFCd0FvN0liSFI0UkVqa0FzQUJGV0xBRUx4dXhCQmcrV2JBQVJWaXdDQzhic1FnWVBsbXdBRVZZc0Jrdkc3RVpFRDVac0FCRldMQUNMeHV4QWhBK1diQUgwTEFITDdKdkJ3RmR0TDhIendjQ1hiSS9Cd0Z4dE04SDN3Y0NjYklQQndGeXRKOEhyd2NDY2JML0J3RmRzZzhIQVhHeW53Y0JYYkl2QndGZHRHOEhmd2NDY3JJQUFRb3JXQ0hZRy9SWnNCa1FzZzBCQ2l0WUlkZ2I5Rm15RWhrSUVSSTVNREVCSVJFakVUTVJJUkV6RVJRV016WTJOelluTXhjV0J3WUNJd1ltSndORC9nYTV1UUg2dVZ4TmJId0VCRUd5RnpBREJPYTdwN01JQWMzK013UTYvaW9CMXYwaFpIVUN0YXVzMFZPeGVlcis4UVMzdXdBQkFIYi82d1NnQmNVQUlnQkhzaFVqSkJFU09RQ3dBRVZZc0Frdkc3RUpIRDVac0FCRldMQUFMeHV4QUJBK1diQUpFTElPQVFvcldDSFlHL1Jac0FBUXNoWUJDaXRZSWRnYjlGbXlHd0FKRVJJNU1ERUZJaVFDSnhFMEVpUXpNaGNISmlNaUFoVVZGQllXTXpZMk56WW5NeGNXQnc0Q0FybWsvdmlWQXBRQkNxWGNoenVHb3F6WFlyQnhqWllEQXpXNkpoTUJBbnZlRlpzQkdLMEJFSzhCSHAxWWlrVCsvdEwrZzlWMUFwbUdtcyt6VzF1SXlXMEFBUUJsLytzRHh3Uk9BQjRBUkxJVEh5QVJFamtBc0FCRldMQVRMeHV4RXhnK1diQUFSVml3Q3k4YnNRc1FQbG15QUFFS0sxZ2gyQnYwV2JJRkN4TVJFam13RXhDeUdBRUtLMWdoMkJ2MFdUQXhKVFkyTnpRbk14WUhCZ1lqSWdBMU5UUTJOak15RndjbUl5SUdGUlVVRmdKUllGb0NGTEljQVFURXJkeis4SGJXaTdsZ0xHT0tnNXVtZ2dKUVdYcHlsbGFacVFFeTl4NlgrWXhDa0RyY3N4K3Iyd0FCQUNQLzV3VkhCYkFBR0FCTnNnVVpHaEVTT1FDd0FFVllzQUl2RzdFQ0hENVpzQUJGV0xBVkx4dXhGUkErV2JBQ0VMSUFBUW9yV0NIWUcvUlpzQVRRc0FYUXNCVVFzZ2tCQ2l0WUlkZ2I5Rm15RGdJVkVSSTVNREVCSVRVaEZTRVJGQll6TmpZU0p6Y1dGZ2NPQWlNR0ppY0IvdjRsQklEK0hGeE1ocFFJUXJvYkt3TUNlZG1KcXJjSUJSS2VudnhJWUhJQzBBRnUyd0ZpeW1lcCtZUUV0N3dBQUFFQVJ2L25CTGNFT2dBWUFFMnlGaGthRVJJNUFMQUFSVml3QWk4YnNRSVlQbG13QUVWWXNCVXZHN0VWRUQ1WnNBSVFzZ0FCQ2l0WUlkZ2I5Rm13Qk5Dd0JkQ3dGUkN5Q1FFS0sxZ2gyQnYwV2JJT0ZRSVJFamt3TVFFaE5TRVZJUkVVRmpNMk5qYzJKek1XRmdjR0JpTUdKaWNCclA2YUE0ditsVjVOY1hjREJFQ3lLaHNCQk9pNXFyTUlBNlNXbHYyMVkzUUNuWW1Ycm4yTVBORHZCTG01QUFFQWx2L3NCUDhGeFFBcEFHK3lKQ29yRVJJNUFMQUFSVml3Rmk4YnNSWWNQbG13QUVWWXNBc3ZHN0VMRUQ1WnNnTUJDaXRZSWRnYjlGbXdDeEN3QnRDeUpRc1dFUkk1c0NVdnNzOGxBVjJ5bnlVQmNiSW1BUW9yV0NIWUcvUlpzaEFtSlJFU09iQVdFTEFiMExBV0VMSWVBUW9yV0NIWUcvUlpNREVCRkJZek1qWTFNeFFHQmlNZ0pEVTBKU1ltTlRRa0lUSVdGaFVqTkNZaklnWVZGQllYTXhVakJnWUJXTSt3bTh6QmpmNmQvdnYreEFFVWVJWUJKUUVHay9XTXdjR1NwOEt0bzhURXNiVUJrbmlTbUhTRHZtZmx4ZjlXTUtabHhOdGx1blZuajRoMmRYMENuZ0orQUFJQWJ3UndBc2tGMWdBRkFBMEFJd0N3Q3krd0I5Q3dCeSt3QWRDd0FTK3dDeEN3Qk5Dd0JDK3dCZEFac0FVdkdEQXhBUk16RlFNakFUTVZGaGNISmpVQmtYVEUzMW4rM3FnRFVFbXlCSlFCUWhYK3d3RlNXM3RWTzErN0FQLy9BQ1VDSHdJTkFyWUFCZ0FSQUFELy93QWxBaDhDRFFLMkFBWUFFUUFBLy84QW9nS0xCSTBESWdCR0FaZlpBRXpOUUFELy93Q1FBb3NGeVFNaUFFWUJsNFFBWm1aQUFQLy9BQTMrYkFPaEFBQUFKd0JEQUFuL0F3RUdBRU1KQUFBVUFFQUpBd0lUQWlNQ013SUVYYkt3QWdGZE1ERUFBUUJnQkRFQmVBWVRBQWdBSWJJSUNRb1JFamtBc0FCRldMQUFMeHV4QUI0K1diSUZDUUFSRWptd0JTOHdNUUVYQmdjVkl6VTBOZ0VPYWwwRHVHRUdFMGgvazRoMFpzZ0FBUUF3QkJZQlJ3WUFBQWdBSWJJSUNRb1JFamtBc0FCRldMQUVMeHV4QkI0K1diSUFDUVFSRWptd0FDOHdNUk1uTmpjMU14VUdCcGxwWFFPM0FXRUVGa2lDa0pDQ1pNY0FBUUFrL3VVQk93QzFBQWdBSHJJSUNRb1JFamtBc0FrdnNnUUZDaXRZSWRnYjlGbXdBTkN3QUM4d01STW5OamMxTXhVVUJvMXBXd081WS83bFNYK1NkbVJseWdBQkFFOEVGZ0ZuQmdBQUNBQU1BTEFJTDdBRTBMQUVMekF4QVJVV0Z3Y21KaWMxQVFZRVhXcE5Yd0lHQUpPUWYwaEF3bUdIQVAvL0FHZ0VNUUs3QmhNQUpnRnNDQUFBQndGc0FVTUFBUC8vQUR3RUZnS0dCZ0FBSmdGdERBQUFCd0Z0QVQ4QUFBQUNBQ1QrMHdKa0FQWUFDQUFSQURDeUNoSVRFUkk1c0FvUXNBWFFBTEFTTDdJRUJRb3JXQ0hZRy9SWnNBRFFzQUF2c0FuUXNBa3ZzQVFRc0EzUU1ERVRKelkzTlRNVkZBWVhKelkzTlRNVkZBYU5hVnNEdVdQZGFWc0R1bUgrMDBpSm1ibWtiTk5BU0ltWnVhUnIwUUFBQVFCR0FBQUVKQVd3QUFzQVN3Q3dBRVZZc0Fndkc3RUlIRDVac0FCRldMQUdMeHV4QmhnK1diQUFSVml3Q2k4YnNRb1lQbG13QUVWWXNBSXZHN0VDRUQ1WnNBb1FzZ0FCQ2l0WUlkZ2I5Rm13Qk5Dd0JkQXdNUUVoRVNNUklUVWhFVE1SSVFRay9teTYvbkFCa0xvQmxBT2gvRjhEb1prQmR2NktBQUVBVi81Z0JEUUZzQUFUQUh3QXNBQkZXTEFNTHh1eERCdytXYkFBUlZpd0NpOGJzUW9ZUGxtd0FFVllzQTR2RzdFT0dENVpzQUJGV0xBQ0x4dXhBaEkrV2JBQVJWaXdBQzhic1FBUVBsbXdBRVZZc0FRdkc3RUVFRDVac2dZQkNpdFlJZGdiOUZtd0RoQ3lDQUVLSzFnaDJCdjBXYkFKMExBUTBMQVIwTEFHRUxBUzBMQVQwREF4SVNFUkl4RWhOU0VSSVRVaEVUTVJJUlVoRVNFRU5QNXF1djV6QVkzK2N3R051Z0dXL21vQmx2NWdBYUNYQXdxWkFYYitpcG44OWdBQUFRQ0tBaGNDSWdQTEFBMEFGcklLRGc4UkVqa0FzQU12c1FvS0sxallHOXhaTURFVE5EWXpNaFlWRlJRR0l5SW1OWXB2WEZ0eWJsNWRid01FVjNCdFhTVlhibTlZLy84QWxQLzFBeThBMFFBbUFCSUVBQUFIQUJJQnVRQUEvLzhBbFAvMUJNNEEwUUFtQUJJRUFBQW5BQklCdVFBQUFBY0FFZ05ZQUFBQUFRQW1BaDRBendLM0FBTUFEd0N3QWkreEFRb3JXTmdiM0Zrd01STWpOVFBQcWFrQ0hwa0FBQVlBUlAvckIxY0Z4UUFWQUNNQUp3QTFBRU1BVVFDNHNnSlNVeEVTT2JBQ0VMQWIwTEFDRUxBbTBMQUNFTEFvMExBQ0VMQTIwTEFDRUxCSjBBQ3dBRVZZc0Jrdkc3RVpIRDVac0FCRldMQVNMeHV4RWhBK1diQUQwTEFETDdBSDBMQUhMN0FTRUxBTzBMQU9MN0FaRUxBZzBMQWdMN0lrRWhrUkVqbXdKQyt5SmhrU0VSSTVzQ1l2c0JJUXNpc0VDaXRZSWRnYjlGbXdBeEN5TWdRS0sxZ2gyQnYwV2JBckVMQTUwTEF5RUxCQTBMQWdFTEpIQkFvcldDSFlHL1Jac0JrUXNrNEVDaXRZSWRnYjlGa3dNUUUwTmpNeUZ6WXpNaFlWRlJRR0l5SW5CaU1pSmpVQk5EWXpNaFlWRlJRR0l5SW1OUUVuQVJjREZCWXpNalkxTlRRbUl5SUdGUVVVRmpNeU5qVTFOQ1lqSWdZVkFSUVdNekkyTlRVMEppTWlCaFVETjZlRG1FMVBsNE9vcDRLWlQweVhncXI5RGFlRGhLZWxoSUtxQVdsb0FzZG9zMWhLU0ZaWFNVZFpBY3RZU1VoV1YwbElWL3RDV0VwSFYxWktTRmdCWllPcGVYbW9pMGVEcVhoNHA0c0RlNE9xcW9oSWdhcW5pL3djUWdSeVF2dzNUMlZqVlVwUFpHTlVTazlsWmxKS1QyUmtVd0xxVG1WaVZVbE9abVZUQUFBQkFHd0FtUUlnQTdVQUJnQVFBTEFGTDdJQ0J3VVJFam13QWk4d01RRUJJd0UxQVRNQkhnRUNqZjdaQVNlTkFpYitjd0dFRXdHRkFBRUFXUUNZQWc0RHRRQUdBQkFBc0FBdnNnTUhBQkVTT2JBREx6QXhFd0VWQVNNQkFlY0JKLzdaamdFQy92NER0ZjU3RS81N0FZNEJqd0FCQURzQWJnTnFCU0lBQXdBSkFMQUFMN0FDTHpBeE55Y0JGNk5vQXNkb2JrSUVja0lBLy84QU5nS1FBcnNGcFFNSEFkZ0FBQUtRQUJNQXNBQkZXTEFKTHh1eENSdytXYkFOMERBeEFBQUJBSG9DaXdMNEJib0FEd0JUc2dvUUVSRVNPUUN3QUVWWXNBQXZHN0VBSEQ1WnNBQkZXTEFETHh1eEF4dytXYkFBUlZpd0RTOGJzUTBVUGxtd0FFVllzQVl2RzdFR0ZENVpzZ0VOQXhFU09iQURFTElLQXdvcldDSFlHL1JaTURFVEZ6WXpJQkVSSXhFbUl5SUhFU01SK2g1S2tnRUVxZ09OYml5cUJhdDdpdjdHL2dzQjVybHQvYzRESUFBQUFRQmJBQUFFYUFYRUFDa0FsckloS2lzUkVqa0FzQUJGV0xBWkx4dXhHUncrV2JBQVJWaXdCaThic1FZUVBsbXlLUmtHRVJJNXNDa3ZzZ0FDQ2l0WUlkZ2I5Rm13QmhDeUJBRUtLMWdoMkJ2MFdiQUkwTEFKMExBQUVMQU8wTEFwRUxBUTBMQXBFTEFWMExBVkw3WVBGUjhWTHhVRFhiSVNBZ29yV0NIWUcvUlpzQmtRc0IzUXNCa1FzaUFCQ2l0WUlkZ2I5Rm13RlJDd0pOQ3dFaEN3SnRBd01RRWhGeFFISVFjaE5UTTJOamMxSnlNMU15Y2pOVE1uTkRZek1oWVZJelFtSXlJR0ZSY2hGU0VYSVFNVi9yRURQZ0xkQWZ2NFRTZ3lBZ09xcGdTaW5RYjF5TDdldjM5dmFZSUdBVnorcVFRQlV3SFdSSnBiblowSmcyQUlSWDJJZmJmSDd0U3hhM3lhZmJkOWlBQUZBQjhBQUFZMkJiQUFHd0FmQUNNQUpnQXBBTEVBc0FCRldMQVhMeHV4Rnh3K1diQUFSVml3R2k4YnNSb2NQbG13QUVWWXNBd3ZHN0VNRUQ1WnNBQkZXTEFKTHh1eENSQStXYklRREJjUkVqbXdFQyt3Rk5Dd0ZDKzBEeFFmRkFKZHNDVFFzQ1F2c0JqUXNCZ3ZzQURRc0FBdnNCUVFzaE1CQ2l0WUlkZ2I5Rm13SDlDd0k5Q3dBOUN3RUJDd0hOQ3dIQyt3SU5Dd0lDK3dCTkN3QkMrd0VCQ3lEd0VLSzFnaDJCdjBXYkFMMExBcDBMQUgwTEltRnd3UkVqbXlKd2thRVJJNU1ERUJNeFVqRlRNVkl4RWpBU0VSSXhFak5UTTFJelV6RVRNQklSRXpBU0VuSXdVek5TRWxNeWNCTlNNRlY5L2YzOS9DL3NIK1lzRFoyZG5ad0FGUkFZKy8vR0VCTzJIYUFoVE0vdFQrVEhkM0F1Qm9BNnlZbEpqK0dBSG8vaGdCNkppVW1BSUUvZndDQlB6UWxKU1VtTGI4NTU4QUFBSUFwLy9zQmdNRnNBQWZBQ2dBb3JJaktTb1JFam13SXhDd0VkQUFzQUJGV0xBV0x4dXhGaHcrV2JBQVJWaXdHaThic1JvWVBsbXdBRVZZc0I0dkc3RWVHRDVac0FCRldMQUtMeHV4Q2hBK1diQUFSVml3RkM4YnNSUVFQbG13SGhDeUFBRUtLMWdoMkJ2MFdiQUtFTElGQVFvcldDSFlHL1Jac0FBUXNBN1FzQS9Rc2lFVUZoRVNPYkFoTDdJU0FRb3JXQ0hZRy9SWnNCNFFzQjNRc0IwdnNCWVFzaWNCQ2l0WUlkZ2I5Rmt3TVFFakVSUVdNekkzRndZaklpWTFFU01HQmdjakVTTVJJVElXRnpNUk14RXpBVE15TmpVMEppY2pCZjdLTmtFak5BRkpSbngranhUbng4bTVBWG5LN1JTUHVzcjdZc0NMaTRlRXl3T3IvV0ZCUVF5V0ZKYUtBcCszdlFMOXl3V3d3TFlCQnY3Ni9wS05sNWlPQXYvL0FLai83QWdRQmJBQUpnQTJBQUFBQndCWEJGVUFBQUFIQURrQUFBY3BCYkFBSHdBakFDY0FLd0F3QURVQU9nQzNBTEFBUlZpd0hpOGJzUjRjUGxtd0FFVllzQnN2RzdFYkhENVpzQUJGV0xBQ0x4dXhBaHcrV2JBQVJWaXdEUzhic1EwUVBsbXdBRVZZc0JBdkc3RVFFRDVac2hRUUd4RVNPYkFVTDdBWTBMQVlMN0FjMExBMjBMQUEwTEFFMExBWUVMSVhBUW9yV0NIWUcvUlpzQ2ZRc0NQUXNDdlFzQWZRc0JRUXNDVFFzQ0RRc0NqUXNBalFzQlFRc2hNQkNpdFlJZGdiOUZtd010Q3dEOUN3TGRDd0M5Q3lOQkFlRVJJNXNEUVFzQy9Rc2prZUVCRVNPVEF4QVNFVE13TXpGU01ITXhVaEF5TURJUU1qQXlFMU15Y2pOVE1ETXhNaEV6TURJU2NqQlRNM0lRVXpOeUVUSXhjWE55VWpGeGMzQVRNbkp3Y0Vod0ZUYk1Gemxib3Y2Zjd5ZEsrSS9vU05yM1grOXVVdnRwRnp3RzRCVm9paDR3RWtON1QrZXFVMy92Z0RQNlVzL3ZtNVdRd3BIL3pwVndZZEtBRkVYUmNYRndQVUFkeitKSmpDbVA0ZUFlTCtIZ0hpbU1LWUFkeitKQUhjL01yQ3dzTEN3djZtS3JMR0ZoZkFyUUljVVc5dkFBQUNBSXdBQUFXZUJEb0FEUUFiQUdRQXNBQkZXTEFXTHh1eEZoZytXYkFBUlZpd0FDOGJzUUFZUGxtd0FFVllzQXN2RzdFTEVENVpzQUJGV0xBT0x4dXhEaEErV2JJUkFRb3JXQ0hZRy9SWnNnVVJBQkVTT2JBRkw3QUFFTElLQVFvcldDSFlHL1Jac2c4S0N4RVNPYkFQTHpBeEFUSVdGeEVqRVRRbUp5RVJJeEVCRVRNUklUSTJOeEV6RVFZR0J3SzZyNmdFdVdWdi9yMjVBWW01QVQ1eFp3RzVBcVd0QkRyQnYvNmpBVXgvZUFIOFh3UTYrOFlDM2YyN2RYNENyLzFPd3NRQ0FBQUJBRi8vN0FRY0JjUUFJd0NIc2hVa0pSRVNPUUN3QUVWWXNCWXZHN0VXSEQ1WnNBQkZXTEFKTHh1eENSQStXYklqQ1JZUkVqbXdJeSt5QUFJS0sxZ2gyQnYwV2JBSkVMSUVBUW9yV0NIWUcvUlpzQUFRc0F6UXNDTVFzQS9Rc0NNUXNCL1FzQjh2dGc4Zkh4OHZId05kc2lBQ0NpdFlJZGdiOUZtd0VOQ3dIeEN3RTlDd0ZoQ3lHd0VLSzFnaDJCdjBXVEF4QVNFV0ZqTXlOeGNHSXlJQUF5TTFNelVqTlRNU0FETXlGd2NtSXlJR0J5RVZJUlVoQTFIK2dBUzBwWFJtRkhoNCtQN2pCckt5c3JJS0FSM3phb2NVYlc2a3NRWUJmLzZBQVlBQ0hjUFNJcUFlQVNVQkRIeUpmUUVHQVI4Zm9pUEx2SDJKQUFRQUh3QUFCYndGc0FBWkFCNEFJd0FvQUxnQXNBQkZXTEFMTHh1eEN4dytXYkFBUlZpd0FTOGJzUUVRUGxtd0N4Q3lLQUVLSzFnaDJCdjBXYklrS0FFUkVqbXdKQyt5Y0NRQmNiWUFKQkFrSUNRRFhiSWNBUW9yV0NIWUcvUlpzQjNRc0IwdnNuQWRBWEcyQUIwUUhTQWRBMTJ5SUFFS0sxZ2gyQnYwV2JBaDBMQWhMN0p3SVFGeHNpQWhBVjJ5QUFFS0sxZ2gyQnYwV2JBZ0VMQUQwTEFkRUxBRzBMQUdMN0FjRUxBSDBMQWtFTEFLMExBa0VMQVAwTEFjRUxBUzBMQWRFTEFVMExBVUx6QXhBUkVqRVNNMU16VWpOVE0xSVRJV0Z6TVZJeGNITXhVakJpRUJKeUVWSVFjaEZTRXlBU0VtSXlFQnBjREd4c2JHQWhteDZ6YnN3d01Dd3VWci9vd0JSQVQ5YlFLVlAvMnFBVm1zL2ZzQ1NsU2UvcWdDT3YzR0F6Q1hYcGYwaEhDWE1peVg5Z0czTkY2WFdRSGxWZ0FBQVFBcUFBQUQrQVd3QUJvQVpnQ3dBRVZZc0Jrdkc3RVpIRDVac0FCRldMQU1MeHV4REJBK1diQVpFTElZQVFvcldDSFlHL1Jac0FIUXNCZ1FzQlRRc0JRdnNBUFFzQlFRc2hNQkNpdFlJZGdiOUZtd0J0Q3dFeEN3RHRDd0RpK3lDUUVLSzFnaDJCdjBXYklOQ1E0UkVqa3dNUUVqRmhjekJ5TUdCaU1CRlNNQkp6TTJOamNoTnlFbUp5RTNJUVBLN0VBUnlTNllFdmJiQWUzai9lNEIrWDJjRmYyOUxnSVRNUGIrNXk4RG5RVVNVWFdlc3JUOXhBd0NhWDBCYTF5ZXZnaWVBQUVBSVAvdUJCb0ZzQUFlQUkwQXNBQkZXTEFSTHh1eEVSdytXYkFBUlZpd0JTOGJzUVVRUGxteUV4RUZFUkk1c0JNdnNCZlFzQmN2c2dBWEFWMnlHQUVLSzFnaDJCdjBXYkFaMExBSTBMQUowTEFYRUxBVzBMQUwwTEFLMExBVEVMSVVBUW9yV0NIWUcvUlpzQlhRc0F6UXNBM1FzQk1Rc0JMUXNBL1FzQTdRc0FVUXNob0JDaXRZSWRnYjlGbXlIZ1VSRVJJNXNCNHZNREVCRlFZQ0JDTWlKeEVITlRjMUJ6VTNFVE1STnhVSEZUY1ZCeEUyRWhFMUJCb0NrUDczcjFCczlQVDA5TUQ3Ky92N3Zza0RBMlRTL3NlbUVnSmFiN0p2bVcreWJ3Rlovdjl6c25PWmM3SnovZDRDQVJBQkNWZ0FBUUJkQUFBRTZ3UTZBQmNBWExJQUdCa1JFamtBc0FCRldMQVdMeHV4RmhnK1diQUFSVml3QkM4YnNRUVFQbG13QUVWWXNBb3ZHN0VLRUQ1WnNBQkZXTEFRTHh1eEVCQStXYklBQ2hZUkVqbXdBQyt5Q1FFS0sxZ2gyQnYwV2JBTTBMQUFFTEFWMERBeEFSWUFFUlVqTlNZQ0p4RWpFUVlDQnhVak5SSUFOelV6QXYvbkFRVzVBcDZUdVkrZkFya0RBUWZmdVFOeElmNk4vdHEzeU44QkJTRDlOQUxLSWY3MTJNYkZBUjBCYlNMSkFBSUFId0FBQlFNRnNBQVdBQjhBYlFDd0FFVllzQXd2RzdFTUhENVpzQUJGV0xBREx4dXhBeEErV2JJR0F3d1JFam13QmkreUJRRUtLMWdoMkJ2MFdiQUIwTEFHRUxBSzBMQUtMN1FQQ2g4S0FsMnlDUUVLSzFnaDJCdjBXYkFVMExBR0VMQVYwTEFLRUxBWDBMQU1FTElmQVFvcldDSFlHL1JaTURFQklSRWpFU00xTXpVak5UTVJJVElFRlJRRUJ5RVZJUUVoTWpZMU5DWW5JUUw4L3JHL3o4L1B6d0laNmdFUy92bnkvcU1CVC82eEFWcWJvcWlQL3FBQkUvN3RBUk9laVowQzJlN0wxZWNCaVFFbWtveC9uUUVBQkFCNi8rc0Znd1hGQUJzQUp3QTFBRGtBdDdJY09qc1JFam13SEJDd0FOQ3dIQkN3S05Dd0hCQ3dPTkFBc0FCRldMQUtMeHV4Q2h3K1diQUFSVml3SlM4YnNTVVFQbG13Q2hDd0E5Q3dBeSt5RGdvREVSSTV0aW9PT2c1S0RnTmRzQW9Rc2hFRUNpdFlJZGdiOUZtd0F4Q3lHQVFLSzFnaDJCdjBXYkliQXdvUkVqbTBOaHRHR3dKZHNpVWJBVjJ3SlJDd0g5Q3dIeSt3SlJDeUt3UUtLMWdoMkJ2MFdiQWZFTEl5QkFvcldDSFlHL1Jac2pZbENoRVNPYkEyTDdJNENpVVJFam13T0M4d01RRVVCaU1pSmpVMU5EWXpNaFlWSXpRbUl5SUdGUlVVRmpNeU5qVUJORFlnRmhVVkZBWWdKalVYRkJZek1qWTFOVFFtSXlJR0ZRVW5BUmNDcUpoN2VxR2VlM21jaWtsQ1FVMVBRVDFNQVJDbkFRYW9wLzc4cW9wWVNraFdWMGxIV2Y0R2FRTEhhUVFlYnBDb2lVZUNxNUZ2T2sxbVVrbE9aVXc2L1VlRHFhaUxSNE9wcDRzR1QyVmpWVXBQWkdOVTgwSUVja0lBQUFJQWFQL3JBMm9HRXdBWEFDRUFaTElUSWlNUkVqbXdFeEN3R05BQXNBQkZXTEFNTHh1eERCNCtXYkFBUlZpd0FDOGJzUUFRUGxteUJnd0FFUkk1c0FZdnNnVUJDaXRZSWRnYjlGbXdFOUN3QUJDeUZ3RUtLMWdoMkJ2MFdiQUdFTEFZMExBTUVMSWZBUW9yV0NIWUcvUlpNREVGSWlZMUJpTTFNamNSTmpZek1oWVZGUlFDQnhVVUZqTUROalkxTlRRbUl5SUhBc3pDMG1KdWNWOEJuWVY0bDg2cmEzRGJXV2N3Sm1jREZlcnJITEFqQWlTeXhxMlRKY0grajJ0aW1vMENZMVgxZXlkU1RORUFBQVFBb2dBQUI4WUZ3QUFEQUJBQUhnQW9BS095SHlrcUVSSTVzQjhRc0FIUXNCOFFzQVRRc0I4UXNCSFFBTEFBUlZpd0p5OGJzU2NjUGxtd0FFVllzQ1V2RzdFbEhENVpzQUJGV0xBSEx4dXhCeHcrV2JBQVJWaXdJaThic1NJUVBsbXdBRVZZc0NBdkc3RWdFRDVac0FjUXNBM1FzQUxRc0FJdnNoQUNBVjJ5QVFNS0sxZ2gyQnYwV2JBTkVMSVVBd29yV0NIWUcvUlpzQWNRc2hzRENpdFlJZGdiOUZteUlTVWdFUkk1c2lZZ0pSRVNPVEF4QVNFMUlRRTBOaUFXRlJVVUJpTWlKalVYRkJZek1qWTNOVFFtSXlJR0ZRRWpBUkVqRVRNQkVUTUhwUDJaQW1mOWRib0JPTHU1bko2Nm8xOVdWRjBCWDFWVVgvNjh6UDJ2dWNzQ1ZMY0JuSTRDUFp1K3U2TmRuYnE3b1FWaWEycGdaV0ZyYTJQN213UnUrNUlGc1B1UEJIRUFBZ0JuQTVjRU9BV3dBQXdBRkFCdEFMQUFSVml3Qmk4YnNRWWNQbG13QUVWWXNBa3ZHN0VKSEQ1WnNBQkZXTEFUTHh1eEV4dytXYklCRlFZUkVqbXdBUyt5QUFrQkVSSTVzZ01CQmhFU09iQUUwTElJQVFrUkVqbXdBUkN3QzlDd0JoQ3hEUW9yV05nYjNGbXdBUkN3RDlDd0RSQ3dFZEN3RXRBd01RRURJd01SSXhFekV4TXpFU01CSXhFakVTTTFJUVBlakRTTVduQ1FrSEJhL2d1VFc1UUJnZ1VoL25ZQmlmNTNBaG4rY1FHUC9lY0J5UDQ0QWNoUkFBQUNBSmovN0FTVEJFNEFGUUFjQUdLeUFoMGVFUkk1c0FJUXNCYlFBTEFBUlZpd0NpOGJzUW9ZUGxtd0FFVllzQUl2RzdFQ0VENVpzaG9LQWhFU09iQWFMN0lQQ2dvcldDSFlHL1Jac0FJUXNoTUtDaXRZSWRnYjlGbXlGUW9DRVJJNXNBb1FzaFlLQ2l0WUlkZ2I5Rmt3TVNVR0l5SW1BalUwRWpZek1oWVdGeFVoRVJZek1qY0JJZ2NSSVJFbUJCYTN1NUgwaDVENGhJWGpoQVA5QUhlYXhLeitrSmQ2QWh4elhuS2RBUUdUandFRG40dnprRDcrdUc1NkF5cDYvdXNCSG5ILy93QlUvL1VGc3dXYkFDY0IxZi9hQW9ZQUp3RjhBT1lBQUFBSEFkd0RGQUFBLy84QVpQLzFCbE1GdEFBbkFkY0FKZ0tVQUNjQmZBR2xBQUFBQndIY0E3UUFBUC8vQUdQLzlRWkpCYVFBSndIWkFBZ0Nqd0FuQVh3Qmd3QUFBQWNCM0FPcUFBRC8vd0JaLy9VRi9RV2tBQ2NCMndBZkFvOEFKd0Y4QVNBQUFBQUhBZHdEWGdBQUFBSUFhdi9yQkRJRjdBQWJBQ29BVzdJVkt5d1JFam13RlJDd0k5QUFzQTB2c0FCRldMQVZMeHV4RlJBK1diSUFEUlVSRWptd0FDK3lBd0FWRVJJNXNBMFFzZ2NCQ2l0WUlkZ2I5Rm13QUJDeUhBRUtLMWdoMkJ2MFdiQVZFTElqQVFvcldDSFlHL1JaTURFQk1oWVhMZ0lqSWdjbk56WXpJQUFSRlJRQ0JpTWlBRFUxTkFBWElnWVZGUlFXTXpJMk5UVW5KaVlDUEYybU9nNXBwbUNCbXhBeGRKY0JCd0VmZU42UTJ2NzRBUURrakorZmlvNmZCQnlnQS81TlJJelplVHVYRlREK1R2NXVNcnorMXFVQkkvWU8zQUVRbUx1Z0VLclArZHM5RDFwcUFBQUJBS24vS3dUbEJiQUFCd0FuQUxBRUw3QUFSVml3Qmk4YnNRWWNQbG13QkJDd0FkQ3dCaEN5QWdFS0sxZ2gyQnYwV1RBeEJTTVJJUkVqRVNFRTVibjlOcmtFUE5VRjdmb1RCb1VBQVFCRi92TUVxd1d3QUF3QU5RQ3dBeSt3QUVWWXNBZ3ZHN0VJSEQ1WnNBTVFzZ0lCQ2l0WUlkZ2I5Rm13QmRDd0NCQ3lDZ0VLSzFnaDJCdjBXYkFIMERBeEFRRWhGU0UxQVFFMUlSVWhBUU5yL2JzRGhmdWFBbUg5bndRWi9NY0NSZ0pCL1VxWWp3TE1BdEtRbVAxQ0FBRUFxQUtMQStzRElnQURBQnNBc0FCRldMQUNMeHV4QWhZK1diSUJBUW9yV0NIWUcvUlpNREVCSVRVaEErdjh2UU5EQW91WEFBRUFQd0FBQkpnRnNBQUlBRHl5QXdrS0VSSTVBTEFITDdBQVJWaXdBUzhic1FFY1BsbXdBRVZZc0FNdkc3RURFRDVac2dBQkF4RVNPYkFIRUxJR0FRb3JXQ0hZRy9SWk1ERUJBVE1CSXdNak5TRUNNQUdydmYzaWpmVzVBVHNCSEFTVStsQUNkSm9BQXdCaS8rc0h5d1JPQUJ3QUxBQThBRyt5QnowK0VSSTVzQWNRc0NUUXNBY1FzRFRRQUxBQVJWaXdCQzhic1FRUVBsbXdBRVZZc0Fvdkc3RUtFRDVac0JQUXNCTXZzQm5Rc0JrdnNnY1pCQkVTT2JJV0dRUVJFam13Q2hDeUlBRUtLMWdoMkJ2MFdiQVRFTElwQVFvcldDSFlHL1Jac0REUXNDQVFzRG5RTURFQkZBSUdJeUltSndZR0l5SW1BalUxTkJJMk16SVdGelkyTXpJQUZRVVVGak15TmpjM05TNENJeUlHRlNVMEppTWlCZ2NIRlI0Q016STJOUWZMZnQrSmtlNVFVZXlRaWQ2QWZ0K0lrZTFSVU8rU3pnRVcrVkNtaUhLNU5Bc1ljcEpRaHFZRjk2YUZjN3cxQ1JaMWtGQ0lwUUlQay84QWtiaXhzN2FQQVFDWEdKTUJBSkszczdHNS9zSHpEYkhjdktNbkttUEFZZHk1Q0s3ZnZhZ2ZLbUhGWU42NEFBSC9zUDVMQW80R0ZRQVZBRDJ5QWhZWEVSSTVBTEFBUlZpd0RpOGJzUTRlUGxtd0FFVllzQU12RzdFREVqNVpzZ2dCQ2l0WUlkZ2I5Rm13RGhDeUV3RUtLMWdoMkJ2MFdUQXhCUlFHSXlJbk54WXpNalVSTkRZek1oY0hKaU1pRlFGbHBKNDVPaEl1SVp1eG9UeFVHQ1UydG11aXFCU1JEYkVGR2FxK0ZZNEwyd0FDQUdVQkdBUUxBL1FBRlFBckFJMnlIQ3d0RVJJNXNCd1FzQVhRQUxBREw3SVBBd0Zkc0EzUXNBMHZzZ0FOQVYyeUNBRUtLMWdoMkJ2MFdiQURFTEFLMExBS0w3QURFTElTQVFvcldDSFlHL1Jac0EwUXNCWFFzQlV2c0EwUXNCblFzQmt2c0NQUXNDTXZzZ0FqQVYyeUhnRUtLMWdoMkJ2MFdiQVpFTEFnMExBZ0w3QVpFTElvQVFvcldDSFlHL1Jac0NNUXNDdlFzQ3N2TURFVE5qWXpOaGNYRmpNeU54VUdJeUluSnlZSElnWUhCelkyTXpZWEZ4WXpNamNYQmlNaUp5Y21CeUlHQjJZd2cwSlNTcGhDVG9abVo0Vk9RcUZFVDBLRE1BRXdna0pTU3BWRVVJVm1BV2VGVGtLWVNsSkNnekFEaFRNNkFpTk9INEMrYlI5VEh3SkVQT1V6T3dJalRTR0F2VzBmVGlNQ1JEd0FBQUVBbUFDYkE5b0UxUUFUQURjQXNCTXZzZ0FCQ2l0WUlkZ2I5Rm13Qk5Dd0V4Q3dCOUN3RXhDd0Q5Q3dEeSt5RUFFS0sxZ2gyQnYwV2JBSTBMQVBFTEFMMERBeEFTRUhKemNqTlNFM0lUVWhFeGNITXhVaEJ5RUQydjN0amw5c3JnRUxsZjVnQWY2WlgzZkQvdCtVQWJVQmovUTd1YUQvb1FFR084dWgvd0QvL3dBK0FBSURnUVErQUdZQUlBQmhRQUE1bWdFSEFaZi9sdjEzQUIwQXNBQkZXTEFGTHh1eEJSZytXYkFBUlZpd0NDOGJzUWdRUGxrd01RRC8vd0NGQUFFRDNBUlJBR1lBSWdCelFBQTVtZ0VIQVpmLzNmMTJBQjBBc0FCRldMQUNMeHV4QWhnK1diQUFSVml3Q0M4YnNRZ1FQbGt3TVFBQUFnQXJBQUFEM0FXd0FBVUFDUUE0c2dnS0N4RVNPYkFJRUxBQjBBQ3dBRVZZc0FBdkc3RUFIRDVac0FCRldMQURMeHV4QXhBK1diSUdBQU1SRWpteUNBQURFUkk1TURFQk13RUJJd2tFQWJ5TUFaVCtjSTMrYkFIVy91a0JIQUVZQmJEOUovMHBBdGNDRC8zeC9mSUNEZ0QvL3dDMUFLY0Jtd1QxQUNjQUVnQWxBTElBQndBU0FDVUVKQUFDQUc0Q2VRSXpCRG9BQXdBSEFDd0FzQUJGV0xBQ0x4dXhBaGcrV2JBQVJWaXdCaThic1FZWVBsbXdBaEN3QU5Dd0FDK3dCTkN3QmRBd01STWpFVE1CSXhFeis0Mk5BVGlOalFKNUFjSCtQd0hCQUFBQkFGei9Yd0ZYQU84QUNBQWdzZ2dKQ2hFU09RQ3dDUyt3Qk5Dd0JDKzBRQVJRQkFKZHNBRFFzQUF2TURFWEp6WTNOVE1WRkFiRmFVZ0NzVStoU0cxL1hFeGJzd0QvL3dBOEFBQUU5Z1lWQUNZQVNnQUFBQWNBU2dJc0FBQUFBZ0FmQUFBRHpRWVZBQlVBR1FDRHNnZ2FHeEVTT2JBSUVMQVgwQUN3QUVWWXNBZ3ZHN0VJSGo1WnNBQkZXTEFETHh1eEF4ZytXYkFBUlZpd0VTOGJzUkVZUGxtd0FFVllzQmd2RzdFWUdENVpzQUJGV0xBQUx4dXhBQkErV2JBQVJWaXdGaThic1JZUVBsbXdBeEN5QVFFS0sxZ2gyQnYwV2JBSUVMSU5BUW9yV0NIWUcvUlpzQUVRc0JQUXNCVFFNREV6RVNNMU16VTBOak15RndjbUl5SUdGUlV6RlNNUklTTVJNOHFycTgrOWNLc2ZmWEYzYWQzZEFrbTZ1Z09yajF5MXlqMmNNbXRyWG8vOFZRUTZBQUVBUEFBQUEra0dGUUFXQUZ3QXNBQkZXTEFTTHh1eEVoNCtXYkFBUlZpd0JpOGJzUVlZUGxtd0FFVllzQWt2RzdFSkVENVpzQUJGV0xBV0x4dXhGaEErV2JBU0VMSUNBUW9yV0NIWUcvUlpzQVlRc2djQkNpdFlJZGdiOUZtd0M5Q3dCaEN3RHRBd01RRW1JeUlWRlRNVkl4RWpFU00xTXpVMk5qTXlCUkVqQXpCOFRNam41N21ycXdIQXNXVUJLN2tGWXhUU2E0LzhWUU9yajNhdHVEMzZLQUFBQWdBOEFBQUdNZ1lWQUNjQUt3Q2RBTEFBUlZpd0ZpOGJzUlllUGxtd0FFVllzQWd2RzdFSUhqNVpzQUJGV0xBZ0x4dXhJQmcrV2JBQVJWaXdFaThic1JJWVBsbXdBRVZZc0FRdkc3RUVHRDVac0FCRldMQXFMeHV4S2hnK1diQUFSVml3S1M4YnNTa1FQbG13QUVWWXNDTXZHN0VqRUQ1WnNBQkZXTEFuTHh1eEp4QStXYkFnRUxJaEFRb3JXQ0hZRy9SWnNDWFFzQUhRc0FnUXNnMEJDaXRZSWRnYjlGbXdHOUF3TVRNUkl6VXpOVFEyTXpJWEJ5WWpJZ1lWRlNFMU5EWXpNaGNISmlNaUJoVVZNeFVqRVNNUklSRWhJeEV6NTZ1cnVxcEFQd292TlZwaUFaRFB2WENySDMxeWQybmUzcm4rY0FTU3Via0RxNDl2cnI0UmxnbHBZbkpjdGNvOW5ESnFiRjZQL0ZVRHEveFZCRG9BQUFFQVBBQUFCaklHRlFBb0FHb0FzQUJGV0xBSUx4dXhDQjQrV2JBQVJWaXdJUzhic1NFWVBsbXdBRVZZc0Nndkc3RW9FRDVac0NFUXNpSUJDaXRZSWRnYjlGbXdKdEN3QWRDd0lSQ3dFdEN3Qk5Dd0NCQ3lEUUVLSzFnaDJCdjBXYkFJRUxBVzBMQW9FTEFsMExBYTBMQU5FTEFkMERBeE14RWpOVE0xTkRZek1oY0hKaU1pQmhVVklUVTJOak15QlJFakVTWWpJaFVWTXhVakVTTVJJUkhucTZ1NnFrQS9DaTgxV21JQmtBSEFzV1VCSzdsOFRNam41N24rY0FPcmoyK3V2aEdXQ1dsaWNuYXR1RDM2S0FWakZOSnJqL3hWQTZ2OFZRQUJBRHovN0FTYkJoVUFKZ0J6QUxBQVJWaXdJUzhic1NFZVBsbXdBRVZZc0Iwdkc3RWRHRDVac0FCRldMQVlMeHV4R0JBK1diQUFSVml3Q2k4YnNRb1FQbG13SFJDd0VOQ3dKZEN5QVFFS0sxZ2gyQnYwV2JBS0VMSUZBUW9yV0NIWUcvUlpzQUVRc0E3UXNDRVFzaFVCQ2l0WUlkZ2I5Rm13RGhDd0d0QXdNUUVqRVJRV016STNGd1lqSWlZMUVTTTFNeEVtSnljaUZSRWpFU00xTXpVME5qTXlGaGNSTXdTV3lqWkJJelFCU1VaOGZzWEZQV1lZdDdtcnE3T2dYZHRheWdPci9XRkJRUXlXRkphS0FwK1BBUjhjQndIZCsyQURxNDl3cmI0NUxQNktBQUFCQUYvLzdBWlVCaEVBVEFDNXNoWk5UaEVTT1FDd0FFVllzRWN2RzdGSEhqNVpzQUJGV0xBUEx4dXhEeGcrV2JBQVJWaXdTeThic1VzWVBsbXdBRVZZc0VBdkc3RkFHRDVac0FCRldMQUpMeHV4Q1JBK1diQUFSVml3TEM4YnNTd1FQbG13U3hDeUFRRUtLMWdoMkJ2MFdiQUpFTElFQVFvcldDSFlHL1Jac0FFUXNBM1FzRWNRc2hRQkNpdFlJZGdiOUZtd1FCQ3lJQUVLSzFnaDJCdjBXYkk2TEVBUkVqbXdPaEN5SlFFS0sxZ2gyQnYwV2JBc0VMSTBBUW9yV0NIWUcvUlpNREVCSXhFVU16STNGd1lqSWlZMUVTTTFNelUwSmlNaUJoVVVIZ0lWSXpRbUl5SUdGUlFXQkJZV0ZSUUdJeUltSmpVekZoWXpNalkxTkNZa0ppWTFORFl6TWhjbU5UUTJNeklXRlJVekJrL0tkeU0wQVUxQ2RvUzh2R1ppV0Z3ZkpSNjZnV0psY21vQkZheFQ2TG1DeUhHNUJZdHlhWDl4L3VlbFQrR3ZZRllzeXB1NXljb0RxLzErbnd5V0ZLYVhBb0tQVlhKMVdFWTdhWEI4VEV4dVdFZERSRDVXZVZlUnIxeWxZRjF0VlVkTFV6eFVkRkNGdUI1dVVueWx4OE5OQUFBV0FGditjZ2Z1QmE0QURRQWFBQ2dBTndBOUFFTUFTUUJQQUZZQVdnQmVBR0lBWmdCcUFHNEFkZ0I2QUg0QWdnQ0dBSW9BamdHK3NoQ1BrQkVTT2JBUUVMQUEwTEFRRUxBYjBMQVFFTEF3MExBUUVMQTgwTEFRRUxBKzBMQVFFTEJHMExBUUVMQkswTEFRRUxCUTBMQVFFTEJYMExBUUVMQmIwTEFRRUxCaDBMQVFFTEJqMExBUUVMQm4wTEFRRUxCdDBMQVFFTEJ3MExBUUVMQjMwTEFRRUxCNzBMQVFFTEIvMExBUUVMQ0UwTEFRRUxDSTBMQVFFTENNMEFDd1BTK3dBRVZZc0VZdkc3RkdIRDVac241SkF5dXllbnNESzdLQ2R3TXJzbjg2QXl1eUNqMUdFUkk1c0FvdnNBUFFzQU12c0E3UXNBNHZzQW9Rc0EvUXNBOHZzbEFPRHhFU09iQlFMN0p2QndvcldDSFlHL1Jac2hWUWJ4RVNPYkFLRUxJZUJ3b3JXQ0hZRy9SWnNBTVFzaVVIQ2l0WUlkZ2I5Rm13RHhDd0tkQ3dLUyt3RGhDd0x0Q3dMaSt5TkFjS0sxZ2gyQnYwV2JBOUVMSThDZ29yV0NIWUcvUlpzRDBRc0d2UXNHZlFzR1BRc0Q3UXNEd1FzR3pRc0dqUXNHVFFzRC9Rc0RvUXNFSFFzRVlRc0dEUXNGelFzRmpRc0V2UXNrb0tDaXRZSWRnYjlGbXdXdEN3WHRDd1l0Q3dSOUN3U1JDd1R0Q3dEaEN5VVFjS0sxZ2gyQnYwV2JBUEVMSjJCd29yV0NIWUcvUlpzSGNRc0lUUXNIb1FzSVhRc0hzUXNJalFzSDRRc0luUXNIOFFzSXpRc0lJUXNJM1FNREVCRkFZaklpWW5OVFEyTXpJV0Z4TVJNeklXRlJRSEZoWVZGQ01CTkNZaklnWVZGUlFXTXpJMk5RRXpFUlFHSXlJbU5UTVVNekkyTlFFUk14VXpGU0UxTXpVekVRRVJJUlVqRlNVMUlSRWpOUUVWTXpJMU5DY1ROU0VWSVRVaEZTRTFJUlVCTlNFVklUVWhGU0UxSVJVVE16STFOQ1lqSXdFak5UTTFJelV6RVNNMU15VWpOVE0xSXpVekVTTTFNd001Z1dSbWdBSithR1dBQWtPOFluSlVNalRRL285S1FVQktTa0pBU1FPNlhHbFNXRzFkYUNrMitjUnh4QVVveDIvNGJRRTF4QVhzQVRadi9GeCtaMkxMQVJiOVd3RVYvVndCRkFJS0FSYjlXd0VWL1Z3QkZMeGRkam84WGZ6eGNYRnhjWEZ4QnlKdmIyOXZiMjhCMUdKNWVGNTFYM3g0WHY2ekFpVkpUVlFnRFVZdG13RklSVTVPUlhCRlRrNUZBVS8raGs1ZFVWTmJOaXo4eVFFN3luRnh5djdGQmg4QkhYU3BxWFQrNDZuOHRxbFRVZ1FEU25SMGRIUjBkUGs0Y1hGeGNYRnhBOFJRS1I3KzAveCsrdndWK1g3OGZ2cjhGZmtBQlFCYy9kVUgxd2h6QUFNQUhBQWdBQ1FBS0FCU3N4RVBFQVFyc3dRUEhBUXJzd29QRndRcnNBUVFzQjNRc0J3UXNCN1FBTEFoTDdBbEw3SWNIZ01yc0NVUXNBRFFzQUF2c0NFUXNBTFFzQUl2c2cwQUFoRVNPYkFOTDdJZkhnSVJFam13SHk4d01Ra0RCVFEyTnpZMk5UUW1JeUlHQnpNMk5qTXlGaFVVQndZR0ZSY2pGVE1ETXhVakF6TVZJd1FZQTcvOFFmeEVCQThlSkVwY3A1V1FvQUxMQWpvck9UaGRXeS9LeXNwTEJBUUNCQVFHVXZ3eC9ERUR6L0U2T2hnbmgwcUFsNHQvTXpSQU5GODhRVnhNVzZyOVRBUUtuZ1FBQVFBN0FBQUQwZ1d3QUFZQU1nQ3dBRVZZc0FVdkc3RUZIRDVac0FCRldMQUJMeHV4QVJBK1diQUZFTElEQVFvcldDSFlHL1Jac2dBREJSRVNPVEF4QVFFakFTRTFJUVBTL2I2NkFrRDlKUU9YQlVqNnVBVVltQUFBQWdCYS8rd0VSQVJPQUJBQUhBQTJBTEFBUlZpd0JDOGJzUVFZUGxtd0FFVllzQXd2RzdFTUVENVpzaFFCQ2l0WUlkZ2I5Rm13QkJDeUdnRUtLMWdoMkJ2MFdUQXhFelEyTmpNeUFCVVZGQVlHSXlJbUppYzNGQll6TWpZMU5DWWpJZ1phZ09PUTNRRWFmdVdTaitPQkFybXZqWTZ1c1kyTHJ3SW5uUCtNL3N6N0RwMzhqSWo1bWdxdzN1REVyK0RlQUFBQi83YitTd0ZuQUpnQURBQW5BTEFOTDdBQVJWaXdCQzhic1FRU1BsbXlDUUVLSzFnaDJCdjBXYkFORUxBTTBMQU1MekF4SlJVR0JpTWlKemNXTXpJMU5RRm5BYXFYT3pRT0hrT0ptUFdvc0JLZERjTHBBQUVBWi82WkFTRUFtUUFEQUJJQXNBUXZzQUxRc0FJdnNBSFFzQUV2TURFQkl4RXpBU0c2dXY2WkFnQUFBZ0NEQk5rQzBnYlFBQTBBSVFCN0FMQURMN0FIMExBSEwwQU5Ed2NmQnk4SFB3ZFBCMThIQmwyd0F4Q3lDZ1FLSzFnaDJCdjBXYkFIRUxBTjBMQU5MN0FIRUxBUjBMQVJMN0FVMExBVUwwQUxEeFFmRkM4VVB4UlBGQVZkc0JFUXNCZlFzQmN2c0JRUXNoc0VDaXRZSWRnYjlGbXdFUkN5SGdRS0sxZ2gyQnYwV2JBYkVMQWgwREF4QVJRR0l5SW1OVE1VRmpNeU5qVVRGQVlqSWlZaklnWVZKelEyTXpJV016STJOUUxTb1lhSG9aWktTRWRLaldCR09uY3NJakJUWUVVd2dTd2pNQVd1WDNaMlh6WkFRRFlCQ2twcFN6TW1GVXRyU3pNbUFBQUNBSUVFNEFMS0J3TUFEUUFjQUdVQXNBTXZzQWZRc0FjdlFBMFBCeDhITHdjL0IwOEhYd2NHWGJBREVMSUtCQW9yV0NIWUcvUlpzQWNRc0EzUXNBMHZzQWNRc0E3UXNBNHZzQlhRc0JVdlFBOFBGUjhWTHhVL0ZVOFZYeFZ2RlFkZHNCVFFzZzhVRGhFU09iSWJEaFVSRWprd01RRVVCaU1pSmpVekZCWXpNalkxSnljMk5qVTBJemN5RmhVVUJnY0hBc3FoZzRTaGtrcEpSVXpKQVVwQ29BZVFsRkZFQVFXd1huSnpYVFUrUFRZUmZBUVlIVHRTVGtJeU93YytBQUFDQUlFRTN3TGdCb29BRFFBUkFGOEFzQU12c0FmUXNBY3ZRQTBQQng4SEx3Yy9CMDhIWHdjR1hiQURFTElLQkFvcldDSFlHL1Jac0FjUXNBM1FzQTB2c0FjUXNCRFFzQkF2c0EvUXNBOHZRQThQRHg4UEx3OC9EMDhQWHc5dkR3ZGRzQkFRc0JIUUdiQVJMeGd3TVFFVUJpTWlKalV6RkJZek1qWTFKek1ISXdMZ3FJZUlxSmhQU1VkUFlKbWtaZ1d3WDNKeVh6YzlQelhheGdBQ0FHa0U1QU5HQnRRQUJnQWFBSVVBc0FNdnNBSFFzQUV2c0FiUXNBWXZRQWtQQmg4R0x3WS9CZ1Jkc2dRREJoRVNPUm13QkM4WXNBRFFzZ0lHQVJFU09iQUdFTEFLMExBS0w3US9DazhLQWwyd0RkQ3dEUzlBRFE4Tkh3MHZEVDhOVHcxZkRRWmRzQW9Rc0JEUXNCQXZzQTBRc2hRRUNpdFlJZGdiOUZtd0NoQ3lGd1FLSzFnaDJCdjBXYkFVRUxBYTBEQXhBU01uQnlNbE16Y1VCaU1pSmlNaUJoVW5ORFl6TWhZek1qWTFBMGFxeGNXcEFTMkR3MkJCTm00b0hUWk5ZRUFxZkNZZk5BVGtucDcwNVQ1ZVJ5NGRFejlpUmkwY0FBSUFhUVRrQSt3R3p3QUdBQlVBWVFDd0F5K3dCZEN3QlMrMkR3VWZCUzhGQTEyeUJBTUZFUkk1R2JBRUx4aXdBTkN3QXhDd0FkQ3dBUyt5QWdVREVSSTVzQWZRc0FjdnNBN1FzQTR2UUEwUERoOE9MdzQvRGs4T1h3NEdYYkFOMExJSUJ3MFJFam15RkE0SEVSSTVNREVCSXljSEl3RXpGeWMyTmpVMEl6Y3lGaFVVQmdjSEEwYXF4Y1dwQVJDOHZnRkJPNDBGZ0laS1BBRUU1THE2QVFaOGd3UWFJVU5jV0VrN1FnYzhBQUwvWGdUUEEwWUdnZ0FHQUFvQVhRQ3dBeSt5RHdNQlhiQUUwQm13QkM4WXNBRFFHYkFBTHhpd0F4Q3dBZEN3QVMrd0J0Q3dCaSsyRHdZZkJpOEdBMTJ5QWdNR0VSSTVzQU1Rc0FqUXNBZ3ZzQWZRR2JBSEx4aXdDQkN3Q3RDd0NpKzJEd29mQ2k4S0ExMHdNUUVqSndjakFUTUZJd016QTBiRnFxckVBU0tZL28rTXlNY0V6NTZlQVFaVkFRSUFBQUlBYmdUaEJGZ0dsUUFHQUFvQVhRQ3dBeSt5RHdNQlhiQUYwTEFGTDdBQTBMQUFMN1lQQUI4QUx3QURYYkFERUxBQzBCbXdBaThZc2dRREFCRVNPYkFHMEJtd0JpOFlzQU1Rc0FuUXNBa3ZzQWZRc0FjdnRnOEhId2N2QndOZHNBa1FzQXJRR2JBS0x4Z3dNUUV6QVNNbkJ5TUJNd01qQVpLWUFTTEZxYXJHQXlMSXlZMEY2UDc1bjU4QnRQNzlBQUlBZ1FUZkF1QUdpZ0FOQUJFQVh3Q3dBeSt3QjlDd0J5OUFEUThISHdjdkJ6OEhUd2RmQndaZHNBTVFzZ29FQ2l0WUlkZ2I5Rm13QnhDd0RkQ3dEUyt3QnhDd0VkQ3dFUyt3RDlDd0R5OUFEdzhQSHc4dkR6OFBUdzlmRDI4UEIxMndFUkN3RU5BWnNCQXZHREF4QVJRR0l5SW1OVE1VRmpNeU5qVWxNeGNqQXVDb2g0aW9tRTlKUjAvK3BwcHdaUVd3WDNKeVh6YzlQelhheGdBQUFRQ2ZCSTRCbGdZN0FBZ0FEQUN3QUMrd0JOQ3dCQzh3TVFFWEJnY1ZJelUwTmdFcmF6c0R1VlFHTzFOamI0aUNUYTBBQUFJQUV3QUFCSEFFalFBSEFBb0FSZ0N3QUVWWXNBUXZHN0VFR2o1WnNBQkZXTEFDTHh1eEFoQStXYkFBUlZpd0JpOGJzUVlRUGxteUNRUUNFUkk1c0FrdnNnQUJDaXRZSWRnYjlGbXlDZ1FDRVJJNU1ERUJJUU1qQVRNQkl3RWhBd05HL2ZodXZRSGZwZ0hZdlAzR0FaSEhBUmYrNlFTTiszTUJyZ0g5QUFNQWlnQUFBKzhFalFBT0FCWUFIZ0JvQUxBQVJWaXdBUzhic1FFYVBsbXdBRVZZc0FBdkc3RUFFRDVac2hjQUFSRVNPYkFYTDdLL0Z3RmR0QjhYTHhjQ1hiVGZGKzhYQWwyeUR3RUtLMWdoMkJ2MFdiSUlEeGNSRWptd0FCQ3lFQUVLSzFnaDJCdjBXYkFCRUxJZUFRb3JXQ0hZRy9SWk1ERXpFU0V5RmhVVUJnY1dGaFVVQmdjQkVTRXlOalUwSXlVek1qWTFOQ2NqaWdHVzBkNWZXR04wMnNuKzl3RUdjM3JyL3ZqcWJIemw3UVNObzV0UmZpRVlsV1dlcmdFQ0V2NkZZbFhFalZWVHFBVUFBQUVBWVAvd0JEQUVuUUFjQUV5eUF4MGVFUkk1QUxBQVJWaXdDeThic1FzYVBsbXdBRVZZc0FNdkc3RURFRDVac0FzUXNBL1FzQXNRc2hJQkNpdFlJZGdiOUZtd0F4Q3lHUUVLSzFnaDJCdjBXYkFERUxBYzBEQXhBUVlHSXlJQUVUVTBOall6TWhZWEl5WW1JeUlHQnhVVUZqTXlOamNFTUJUODBlRCs4WHZubU16M0U3a1NqWDZacHdHZmw0ZU5GQUY1dTg0Qkp3RURYcVQ1aU5PN2duVEx2V3E5ejIrREFBSUFpZ0FBQkI4RWpRQUtBQlFBUnJJQ0ZSWVJFam13QWhDd0ZOQUFzQUJGV0xBQkx4dXhBUm8rV2JBQVJWaXdBQzhic1FBUVBsbXdBUkN5Q3dFS0sxZ2gyQnYwV2JBQUVMSU1BUW9yV0NIWUcvUlpNREV6RVNFeUZoWVhGUlFBSVFNUk16STJOVFUwSmlPS0FXbWkrNHdEL3NuKytaNmt1c2E5dHdTTmhmYWZUZnorMWdQMC9LUFF3RURBelFBQkFJb0FBQU91QkkwQUN3QlVBTEFBUlZpd0JpOGJzUVlhUGxtd0FFVllzQVF2RzdFRUVENVpzQXZRc0FzdnN0OExBVjJ5SHdzQlhiSUFBUW9yV0NIWUcvUlpzQVFRc2dJQkNpdFlJZGdiOUZtd0JoQ3lDQUVLSzFnaDJCdjBXVEF4QVNFUklSVWhFU0VWSVJFaEExZjk3QUpyL053REh2MmJBaFFDRHY2Smx3U05tZjZ5QUFFQWlnQUFBNXNFalFBSkFFRUFzQUJGV0xBRUx4dXhCQm8rV2JBQVJWaXdBaThic1FJUVBsbXdDZEN3Q1MreUh3a0JYYklBQVFvcldDSFlHL1Jac0FRUXNnWUJDaXRZSWRnYjlGa3dNUUVoRVNNUklSVWhFU0VEUy8zNHVRTVIvYWdDQ0FIei9nMEVqWm4rbUFBQUFRQmovL0FFTlFTZEFCMEFYN0lLSGg4UkVqa0FzQUJGV0xBS0x4dXhDaG8rV2JBQVJWaXdBeThic1FNUVBsbXlIUW9ERVJJNXNCMHZzZzBkQ2hFU09iQUtFTElRQVFvcldDSFlHL1Jac0FNUXNoY0JDaXRZSWRnYjlGbXdIUkN5R2dNS0sxZ2gyQnYwV1RBeEpRWUdJeUlBSnpVUUFETXlGaGNqSmlNaUJoVVZGQll6TWpjMUlUVWhCRFZDNlpmdS91QUNBUXZ5eVBJYnVDYjFuNmE1b0xaUi91Y0IwWlpUVXdFcS9Gb0JCZ0VudkxYWnpzZFV2dGRLN3BBQUFBRUFpZ0FBQkZnRWpRQUxBRk1Bc0FCRldMQUdMeHV4QmhvK1diQUFSVml3Q2k4YnNRb2FQbG13QUVWWXNBQXZHN0VBRUQ1WnNBQkZXTEFFTHh1eEJCQStXYklKQUFvUkVqbDhzQWt2R0xLakNRRmRzZ0lCQ2l0WUlkZ2I5Rmt3TVNFakVTRVJJeEV6RVNFUk13Ull1ZjJrdWJrQ1hMa0I4djRPQkkzOS9RSURBQUFCQUpjQUFBRlJCSTBBQXdBZEFMQUFSVml3QWk4YnNRSWFQbG13QUVWWXNBQXZHN0VBRUQ1Wk1ERWhJeEV6QVZHNnVnU05BQUFCQUN2LzhBTk5CSTBBRHdBMXNnVVFFUkVTT1FDd0FFVllzQUF2RzdFQUdqNVpzQUJGV0xBRkx4dXhCUkErV2JBSjBMQUZFTElNQVFvcldDSFlHL1JaTURFQk14RVVCaU1pSmpVekZCWXpNalkxQXBLNzFMSEMyN3B4Y2x4dUJJMzh4WjNGdDZSZVptMWZBQUFCQUlvQUFBUlhCSTBBREFCTUFMQUFSVml3QkM4YnNRUWFQbG13QUVWWXNBZ3ZHN0VJR2o1WnNBQkZXTEFDTHh1eEFoQStXYkFBUlZpd0N5OGJzUXNRUGxteUFBSUlFUkk1c2dZQ0JCRVNPYklLQWdnUkVqa3dNUUVIRVNNUk14RTNBVE1CQVNNQjFwTzV1WUlCamVQK0lRSUI0UUlIanY2SEJJMzkxWkFCbS8zNS9Yb0FBQUVBaWdBQUE0c0VqUUFGQUNnQXNBQkZXTEFFTHh1eEJCbytXYkFBUlZpd0FpOGJzUUlRUGxteUFBRUtLMWdoMkJ2MFdUQXhKU0VWSVJFekFVTUNTUHovdVplWEJJMEFBQUVBaWdBQUJYY0VqUUFPQUdDeUFROFFFUkk1QUxBQVJWaXdBQzhic1FBYVBsbXdBRVZZc0FJdkc3RUNHajVac0FCRldMQUVMeHV4QkJBK1diQUFSVml3Q0M4YnNRZ1FQbG13QUVWWXNBd3ZHN0VNRUQ1WnNnRUFCQkVTT2JJSEFBUVJFam15Q2dBRUVSSTVNREVKQWpNUkl4RVRBU01CRXhFakVRRjZBWWNCaGZHNEUvNXlpUDV6RTdnRWpmeHhBNC83Y3dHUkFoWDhXZ09pL2UvK2J3U05BQUVBaWdBQUJGZ0VqUUFKQUVVQXNBQkZXTEFGTHh1eEJSbytXYkFBUlZpd0NDOGJzUWdhUGxtd0FFVllzQUF2RzdFQUVENVpzQUJGV0xBREx4dXhBeEErV2JJQ0JRQVJFam15QndVQUVSSTVNREVoSXdFUkl4RXpBUkV6QkZpNC9hTzV1UUpkdUFOcy9KUUVqZnlUQTIwQUFBSUFZUC93QkZvRW5RQU5BQnNBUnJJREhCMFJFam13QXhDd0VkQUFzQUJGV0xBS0x4dXhDaG8rV2JBQVJWaXdBeThic1FNUVBsbXdDaEN5RVFFS0sxZ2gyQnYwV2JBREVMSVlBUW9yV0NIWUcvUlpNREVCRUFBaklnQVJOUkFBTXpJQUZ3YzBKaU1pQmhVVkZCWXpNalkxQkZyKzdPamwvdWNCRitYcEFSTUN0NnlibHErd2w1eXBBaVQrKy83UkFUSUJCejRCQWdFMC90RC9CY2JTMXNWQ3c5ZlR4d0FDQUlvQUFBUWJCSTBBQ2dBVEFFMnlDaFFWRVJJNXNBb1FzQXpRQUxBQVJWaXdBeThic1FNYVBsbXdBRVZZc0FFdkc3RUJFRDVac2dzREFSRVNPYkFMTDdJQUFRb3JXQ0hZRy9SWnNBTVFzaElCQ2l0WUlkZ2I5Rmt3TVFFUkl4RWhNaFlWRkFZakpTRXlOalUwSmljaEFVTzVBZFBNOHVyVy91Z0JHbnlJaUhmKzRRRzIva29FamNlb3FyNllhbVJnZHdFQUFnQlovellFVndTZEFCTUFJUUJOc2dnaUl4RVNPYkFJRUxBZTBBQ3dBRVZZc0JBdkc3RVFHajVac0FCRldMQUlMeHV4Q0JBK1diSURDQkFSRWptd0VCQ3lGd0VLSzFnaDJCdjBXYkFJRUxJZUFRb3JXQ0hZRy9SWk1ERUJGQVlIRndjbEJpTWlBQkUxTkJJMk16SUFFU2MwSmlNaUJnY1ZGQll6TWpZMUJGVndadGg4L3ZrMlJ1VCs1WC9vbHVvQkZiZXNuSlNzQks2WW5Lb0NKS2J6UnFCdnh3MEJNUUVJUHFrQkE0cit6Zjc1QnNiU3o3bFZ3dGpUeHdBQ0FJb0FBQVFsQkkwQURRQVdBR0d5RlJjWUVSSTVzQlVRc0FYUUFMQUFSVml3QkM4YnNRUWFQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFNTHh1eERCQStXYklQQkFJUkVqbXdEeSt5QUFFS0sxZ2gyQnYwV2JJS0FBUVJFam13QkJDeUZRRUtLMWdoMkJ2MFdUQXhBU0VSSXhFaE1oWVZGQWNCRlNNQk16STJOVFFtSXlNQ1d2N3B1UUdxMWVmckFTREcvZVQyZFltR2Z2QUJ3ZjQvQkkyNnF1UlovaDRLQWxodFhXUnVBQUVBUS8vd0E5MEVuUUFsQUZvQXNBQkZXTEFKTHh1eENSbytXYkFBUlZpd0hDOGJzUndRUGxteUFod0pFUkk1c0FrUXNBM1FzQWtRc2hBQkNpdFlJZGdiOUZtd0FoQ3lGZ0VLSzFnaDJCdjBXYkFjRUxBZzBMQWNFTElqQVFvcldDSFlHL1JaTURFQk5DWWtKeVkxTkRZek1oWVZJelFtSXlJR0ZSUVdCQllXRlJRR0l5SWtOVE1VRmpNeU5nTWplZjdhVnNQenY4VDV1WTE1Y1laN0FUaXdWdlBIei83dnVwcU1mb0lCS2xCWVNpdGlzNCt5eUp4aWExbFFRVmhRWlloYms2bkxvbVp5V3dBQkFDZ0FBQVA5QkkwQUJ3QXVBTEFBUlZpd0JpOGJzUVlhUGxtd0FFVllzQUl2RzdFQ0VENVpzQVlRc2dBQkNpdFlJZGdiOUZtd0JOQXdNUUVoRVNNUklUVWhBLzMrY2JuK2N3UFZBL1Q4REFQMG1RQUJBSFQvOEFRS0JJMEFFUUE4c2dRU0V4RVNPUUN3QUVWWXNBQXZHN0VBR2o1WnNBQkZXTEFJTHh1eENCbytXYkFBUlZpd0JDOGJzUVFRUGxteURRRUtLMWdoMkJ2MFdUQXhBUkVVQmlNaUppY1JNeEVVRmpNeU5qVVJCQXI2MGRMMkE3ZVBoWU9QQkkzODlMYmIwN1lERlB6MGVZRi9ld01NQUFFQUZBQUFCRk1FalFBSUFERUFzQUJGV0xBREx4dXhBeG8rV2JBQVJWaXdCeThic1FjYVBsbXdBRVZZc0FVdkc3RUZFRDVac2dFREJSRVNPVEF4QVJjM0FUTUJJd0V6QWhvWkdnRkF4djQzcmY0M3h3RWtYbHdEYS90ekJJMEFBQUVBTVFBQUJmRUVqUUFTQUdDeURoTVVFUkk1QUxBQVJWaXdBeThic1FNYVBsbXdBRVZZc0Fndkc3RUlHajVac0FCRldMQVJMeHV4RVJvK1diQUFSVml3Q2k4YnNRb1FQbG13QUVWWXNBOHZHN0VQRUQ1WnNnRURDaEVTT2JJR0F3b1JFam15RFFNS0VSSTVNREVCRnpjVE14TVhOeE16QVNNQkp3Y0JJd0V6QWE4TEQvaWw5QTBNeHJqKzFxNysvQUVCL3ZTdC90ZTNBU1pRUUFOMy9JWTdVQU5sKzNNRGxRVUYvR3NFalFBQUFRQW1BQUFFTVFTTkFBc0FVd0N3QUVWWXNBRXZHN0VCR2o1WnNBQkZXTEFLTHh1eENobytXYkFBUlZpd0JDOGJzUVFRUGxtd0FFVllzQWN2RzdFSEVENVpzZ0FCQkJFU09iSUdBUVFSRWpteUF3QUdFUkk1c2drR0FCRVNPVEF4QVFFekFRRWpBUUVqQVFFekFpZ0JIOXorZFFHWjNQN1YvdGpjQVpiK2M5c0MyZ0d6L2I3OXRRRzcva1VDU3dKQ0FBQUJBQTBBQUFRY0JJMEFDQUF4QUxBQVJWaXdBUzhic1FFYVBsbXdBRVZZc0Fjdkc3RUhHajVac0FCRldMQUVMeHV4QkJBK1diSUFBUVFSRWprd01RRUJNd0VSSXhFQk13SVVBVGpRL2xLNS9salFBa29DUS8wSy9ta0JvZ0xyQUFBQkFFY0FBQVBnQkkwQUNRQkVBTEFBUlZpd0J5OGJzUWNhUGxtd0FFVllzQUl2RzdFQ0VENVpzZ0FCQ2l0WUlkZ2I5Rm15QkFBQ0VSSTVzQWNRc2dVQkNpdFlJZGdiOUZteUNRVUhFUkk1TURFbElSVWhOUUVoTlNFVkFTOENzZnhuQXBqOWNRTjRsNWQ4QTNpWmVRQUFBZ0JRLy9VQ25RTWdBQTBBRndCR3NnTVlHUkVTT2JBREVMQVEwQUN3QUVWWXNBb3ZHN0VLRmo1WnNBQkZXTEFETHh1eEF4QStXYkFLRUxJUUFnb3JXQ0hZRy9SWnNBTVFzaFVDQ2l0WUlkZ2I5Rmt3TVFFVUJpTWlKaWMxTkRZek1oWVhKelFqSWdjVkZETXlOd0tkbUkyTG5BR2JpNDJZQXAyS2hRU0xoQVFCUmFLdXJLQ09vNjZzblFmQXRMUEN0UUFCQUhvQUFBSHZBeFVBQmdBMUFMQUFSVml3QlM4YnNRVVdQbG13QUVWWXNBRXZHN0VCRUQ1WnNnUUZBUkVTT2JBRUw3SURBZ29yV0NIWUcvUlpzQUxRTURFaEl4RUhOU1V6QWUrZDJBRmpFZ0paT1lCMUFBRUFRZ0FBQXFzRElBQVdBRlN5Q0JjWUVSSTVBTEFBUlZpd0RpOGJzUTRXUGxtd0FFVllzQUF2RzdFQUVENVpzaFVDQ2l0WUlkZ2I5Rm13QXRDeUZCVU9FUkk1c2dNT0ZCRVNPYkFPRUxJSUFnb3JXQ0hZRy9SWnNBNFFzQXZRTURFaElUVUJOalUwSmlNaUJoVWpORFlnRmhVVUR3SWhBcXY5cVFFc2JVQThTMGVkcHdFSW1tdFVzQUdQYkFFYVprVXhQVXc1Y3BSL2JtaHJUNUVBQVFBKy8vVUNtZ01nQUNZQWNRQ3dBRVZZc0E0dkc3RU9GajVac0FCRldMQVpMeHV4R1JBK1diSUFHUTRSRWpsOHNBQXZHTGFBQUpBQW9BQURYYkFPRUxJSEFnb3JXQ0hZRy9SWnNnb0FCeEVTT2JBQUVMSW1BZ29yV0NIWUcvUlpzaFFtQUJFU09iQVpFTElnQWdvcldDSFlHL1Jac2gwbUlCRVNPVEF4QVRNeU5qVTBKaU1pQmhVak5EWXpNaFlWRkFZSEZoVVVCaU1pSmpVekZCWXpNalkxTkNjakFRbFVTa2cvUmpsTG5hTjhpWnhHUXBXcWlJU21uazlEUmttY1dBSExQVEF0T2pNcFludDVhRGRiR1NtUGFuMStheTA4UEROeEFnQUFBZ0EyQUFBQ3V3TVZBQW9BRGdCSkFMQUFSVml3Q1M4YnNRa1dQbG13QUVWWXNBUXZHN0VFRUQ1WnNnRUpCQkVTT2JBQkw3SUNBZ29yV0NIWUcvUlpzQWJRc0FFUXNBdlFzZ2dMQmhFU09iSU5DUVFSRWprd01RRXpGU01WSXpVaEp3RXpBVE1SQndKUWEydWQvb2tHQVhtaC9vVGZFUUVyZ3FtcFpnSUcvaFlCSVJ3QUFRQmIvL1VDcHdNVkFCc0FZUUN3QUVWWXNBRXZHN0VCRmo1WnNBQkZXTEFOTHh1eERSQStXYkFCRUxJRUNRb3JXQ0hZRy9SWnNnY05BUkVTT2JBSEw3SVpBZ29yV0NIWUcvUlpzZ1VIR1JFU09iQU5FTEFSMExBTkVMSVRBZ29yV0NIWUcvUlpzQWNRc0J2UU1ERVRFeUVWSVFjMk16SVdGUlFHSXlJbUp6TVdNekkyTlRRbUl5SUhjRElCM3Y2akZrRktnSStnaG5tbkJwc0tnVUZJVGtwSk93R0RBWktFcWgySmVYeVJmbVZqUzBRK1RTc0FBQUlBVnYvMUFxc0RIZ0FUQUI4QVRnQ3dBRVZZc0FBdkc3RUFGajVac0FCRldMQU1MeHV4REJBK1diQUFFTElCQWdvcldDSFlHL1Jac2dZTUFCRVNPYkFHTDdJVUFnb3JXQ0hZRy9SWnNBd1FzaHNDQ2l0WUlkZ2I5Rmt3TVFFVkl3UUhOak15RmhVVUJpTWlKalUxTkRZM0F5SUdCeFVVRmpNeU5qUW1BaWdSL3ZRWFNISjJoNStFaTZmZXpYNHpUUkZUUHoxT1J3TWVnd0xiVFpGM2RKcW1selBRNUFYK2Jpd2dJbFJWVDN4TUFBQUJBRG9BQUFLbEF4VUFCZ0F5QUxBQVJWaXdCUzhic1FVV1BsbXdBRVZZc0FJdkc3RUNFRDVac0FVUXNnUUNDaXRZSWRnYjlGbXlBQVVFRVJJNU1ERUJBU01CSVRVaEFxWCtvNllCWGY0N0Ftc0N1LzFGQXBPQ0FBQURBRS8vOVFLZkF5QUFFd0FlQUNnQWVnQ3dBRVZZc0JFdkc3RVJGajVac0FCRldMQUdMeHV4QmhBK1diSWtCaEVSRWptd0pDKzIzeVR2SlA4a0ExMjJEeVFmSkM4a0ExMnkveVFCY2JRUEpCOGtBbkt5RndJS0sxZ2gyQnYwV2JJQ0pCY1JFam15REJja0VSSTVzQVlRc2gwQ0NpdFlJZGdiOUZtd0VSQ3lId0lLSzFnaDJCdjBXVEF4QVJRSEZoVVVCaUFtTlRRMk55WTFORFl6TWhZRE5DWWpJZ1lWRkJZeU5nTWlCaFVVRmpJMk5DWUNpM2VMb1A3d29FcEFkNWQ5ZnBlSlRqNC9TMHgrVEl3M1B6OXdQMEFDUTNZM080TnFlWGxxUW1FYk4zWm5kbmIrT2pRNk9qUTFPam9COERVd0xqZzRYRGNBQUFJQVNmLzVBcFVESUFBU0FCNEFXZ0N3QUVWWXNBZ3ZHN0VJRmo1WnNBQkZXTEFQTHh1eER4QStXYklDRHdnUkVqbXdBaSsyRHdJZkFpOENBMTJ3RHhDeUVBSUtLMWdoMkJ2MFdiQUNFTElUQWdvcldDSFlHL1Jac0FnUXNoa0NDaXRZSWRnYjlGa3dNUUVHSXlJbU5UUTJNeklXRnhVUUJRYzFNalluTWpjMU5DWWpJZ1lWRkJZQjlrVmxkbzJqZ1ltY0EvNXpONWFFZTE0cVR6dzdURW9CUUVHS2ZubWdwWlE5L21RVUFYOWlua2M4VTFCVVEwRk9BQUVBandLTEF3c0RJZ0FEQUJFQXNBSXZzZ0VCQ2l0WUlkZ2I5Rmt3TVFFaE5TRURDLzJFQW53Q2k1Y0FBd0NlQkVBQ2JnWnlBQU1BRHdBYkFISUFzQUJGV0xBTkx4dXhEUmcrV2JBSDBMQUhMMEFKUHdkUEIxOEhid2NFWGJBQzBMQUNMN1kvQWs4Q1h3SURYYkFBMExBQUwwQVJEd0FmQUM4QVB3QlBBRjhBYndCL0FBaGRzQUlRc0FQUUdiQURMeGl3RFJDeUV3Y0tLMWdoMkJ2MFdiQUhFTElaQndvcldDSFlHL1JaTURFQk13Y2pCelEyTXpJV0ZSUUdJeUltTnhRV016STJOVFFtSXlJR0FiRzkzSEtDWkVoRVkyRkdTR1JWTXlRak1EQWpKVElHY3JqWFJtRmVTVWRjWGtVak1qRWtKakkwQUFNQUh2NUtCQkVFVGdBcEFEY0FSQUNQQUxBQVJWaXdKaThic1NZWVBsbXdBRVZZc0JZdkc3RVdFajVac0NZUXNDblFzQ2t2c2dBRENpdFlJZGdiOUZteUNCWW1FUkk1c0FndnNnNElGaEVTT2JBT0w3U1FEcUFPQWwyeU53RUtLMWdoMkJ2MFdiSWNOdzRSRWpteUlBZ21FUkk1c0JZUXNqQUJDaXRZSWRnYjlGbXdDQkN5T3dFS0sxZ2gyQnYwV2JBbUVMSkNBUW9yV0NIWUcvUlpNREVCSXhZWEZSUUdCaU1pSndZVkZCY3pGaFlWRkFZR0l5SW1OVFEyTnlZMU5EY21OVFUwTmpNeUZ5RUJCZ1lWRkJZek1qWTFOQ1luSXdNVUZqTXlOalUxTkNZaUJoVUVFWmM2QVcvRGVFOUpOSHEzeU02TjlKZlIvMTVVT0hPdThidFFSd0Z2L1R3NFBKU0RrczFvYk85MGpHbG5pb3JTaWdPblZHa1pZcVplRlNwQVVBSUJsWTlVb1dDYmVsT0tLaTlLZkZKcXhRdWR5aFQ3K0JwZE4wcFpja3hLUVFJQ3BWTjdlbGdTVjNoNFdnQUFBZ0JrLytzRVdBUk9BQkFBSEFCaEFMQUFSVml3Q1M4YnNRa1lQbG13QUVWWXNBd3ZHN0VNR0Q1WnNBQkZXTEFDTHh1eEFoQStXYkFBUlZpd0VDOGJzUkFRUGxteUFBSUpFUkk1c2dzSkFoRVNPYkFDRUxJVUFRb3JXQ0hZRy9SWnNBa1FzaG9CQ2l0WUlkZ2I5Rmt3TVNVQ0lTSUNOVFVRRWpNZ0V6Y3pBeE1qQVJRV016SVROU1ltSXlJR0E0SnMvdkxBNU9MRUFRbHNJckJxY2JEOWRaS0gwMGdja211R2xmSCsrZ0ViOUE4QkNBRTkvdi90L2VMOTVBSDByOE1CaHlTK3krTUFBZ0N4QUFBRTR3V3ZBQllBSGdCaHNoZ2ZJQkVTT2JBWUVMQUUwQUN3QUVWWXNBTXZHN0VESEQ1WnNBQkZXTEFCTHh1eEFSQStXYkFBUlZpd0R5OGJzUThRUGxteUZ3TUJFUkk1c0JjdnNnQUJDaXRZSWRnYjlGbXlDUmNBRVJJNXNBTVFzaDBCQ2l0WUlkZ2I5Rmt3TVFFUkl4RWhNaFlWRkFjV0V4VVdGeFVqSmljMU5DWWpKU0V5TmpVUUlTRUJjc0VDRHZENzdkNEZBa0hHT3dPTWYvNmVBVG1pbmY3UC9ya0NkUDJNQmEvU3pPVmpSZjc2bkkwOUdEYXNpM2lQblh5RUFRQUFBUUN5QUFBRkhRV3dBQXdBYUFDd0FFVllzQVF2RzdFRUhENVpzQUJGV0xBSUx4dXhDQncrV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0Fzdkc3RUxFRDVac2dZQ0JCRVNPWHl3Qmk4WXRHTUdjd1lDWGJRekJrTUdBbDJ5a3dZQlhiSUJBUW9yV0NIWUcvUlpzZ29CQmhFU09UQXhBU01SSXhFekVUTUJNd0VCSXdJanNjREFsZ0g5Ny8zVUFsWHJBbzc5Y2dXdy9YNENndjArL1JJQUFBRUFrZ0FBQkJRR0FBQU1BRk1Bc0FCRldMQUVMeHV4QkI0K1diQUFSVml3Q0M4YnNRZ1lQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFMTHh1eEN4QStXYklIQ0FJUkVqbXdCeSt5QUFFS0sxZ2gyQnYwV2JJS0FBY1JFamt3TVFFakVTTVJNeEV6QVRNQkFTTUJ6SUM2dW40Qk85ditoZ0d1MndIMS9nc0dBUHlPQWF6K0UvMnpBQUVBc2dBQUJQb0ZzQUFMQUV3QXNBQkZXTEFETHh1eEF4dytXYkFBUlZpd0J5OGJzUWNjUGxtd0FFVllzQUV2RzdFQkVENVpzQUJGV0xBS0x4dXhDaEErV2JJQUF3RVJFam15QlFNQkVSSTVzZ2tBQlJFU09UQXhBUkVqRVRNUk13RXpBUUVqQVhMQXdBd0NZL0g5YXdLOTdRSzEvVXNGc1AxNUFvZjlPLzBWQUFBQkFKSUFBQVB4QmhnQURBQk1BTEFBUlZpd0JDOGJzUVFlUGxtd0FFVllzQWd2RzdFSUdENVpzQUJGV0xBQ0x4dXhBaEErV2JBQVJWaXdDeThic1FzUVBsbXlBQWdDRVJJNXNnWUlBaEVTT2JJS0JnQVJFamt3TVFFakVTTVJNeEV6QVRNQkFTTUJVQVM2dWdFQml2RCtLd0gvNUFIei9nMEdHUHgxQWEzK0RmMjVBQUFCQUVQL0V3UGRCWE1BS3dCbUFMQUFSVml3Q1M4YnNRa2FQbG13QUVWWXNDSXZHN0VpRUQ1WnNnSWlDUkVTT2JBSkVMQU0wTEFKRUxBUTBMQUpFTElUQVFvcldDSFlHL1Jac0FJUXNoa0JDaXRZSWRnYjlGbXdJaEN3SDlDd0loQ3dKdEN3SWhDeUtRRUtLMWdoMkJ2MFdUQXhBVFFtSkNjbU5UUTJOelV6RlJZV0ZTTTBKaU1pQmhVVUZnUVdGaFVVQmdjVkl6VW1KalV6RkJZek1qWURJM24rMmxiRHk2YVZvOGE1alhseGhuc0JPTEJXdzZtVnV0KzZtb3grZ2dFcVVGaEtLMkt6Z3F3UTJkc1Z3b2hpYTFsUVFWaFFaWWhiZ3FZUTRlRVR3cFJtY2xzQUFBRUFNQUFBQSs4RW5RQWdBR0FBc0FCRldMQVVMeHV4RkJvK1diQUFSVml3Qnk4YnNRY1FQbG15RHdjVUVSSTVzQTh2c2c0RUNpdFlJZGdiOUZtd0FkQ3dCeEN5QkFFS0sxZ2gyQnYwV2JBSTBMQVVFTEFZMExBVUVMSWJBUW9yV0NIWUcvUlpzQThRc0IvUU1ERUJJUmNXQnlFSElUVXpOamMzSnlNMU15Y21Oak15RmhVak5DWWpJZ1lYRnlFREhmNXdBUVU0QXBRQi9JUUtUd2tCQWFTZ0JBYkx0YmZLdVdoZ1hXZ0VCQUdVQWZRaXkyK1ltQmZkUmlKNWU4bnN6TGR3ZDQrS2V3QUFBUUFXQUFBRUpRU05BQmNBaWdDd0FFVllzQmN2RzdFWEdqNVpzQUJGV0xBQkx4dXhBUm8rV2JBQVJWaXdEUzhic1EwUVBsbXlBQTBYRVJJNXNoQU5GeEVTT2JBUUw3SVBFQUZkc0JUUXNCUXZ0QThVSHhRQ2NVQVBEeFFmRkM4VVB4UlBGRjhVYnhRSFhiQUQwTEFVRUxJVEJBb3JXQ0hZRy9SWnNBYlFzQkFRc0FqUXNCQVFzZzhFQ2l0WUlkZ2I5Rm13QzlBd01RRUJNd0V6RlNFSEZTRVZJUlVqTlNFMUlUVWhOU0VCTXdJZEFUalEvcHY3L3NFRkFVVCt2TG4rdkFGRS9yd0JBUDZjMEFKTEFrTDlqSGtKUW5qZDNYaExlUUowQUFFQWlnQUFBNFVFalFBRkFES3lBUVlIRVJJNUFMQUFSVml3QkM4YnNRUWFQbG13QUVWWXNBSXZHN0VDRUQ1WnNBUVFzZ0FCQ2l0WUlkZ2I5Rmt3TVFFaEVTTVJJUU9GL2I2NUF2c0Q5UHdNQkkwQUFBSUFGQUFBQkZNRWpRQURBQWdBUExJRkNRb1JFam13QlJDd0F0QUFzQUJGV0xBQ0x4dXhBaG8rV2JBQVJWaXdBQzhic1FBUVBsbXlCUUlBRVJJNXNnY0JDaXRZSWRnYjlGa3dNU0VoQVRNREp3Y0JJUVJUKzhFQnlhMDlHaG4rK0FKREJJMyszVnhlL1RBQUFBTUFZUC93QkZvRW5RQURBQkVBSHdCZUFMQUFSVml3RGk4YnNRNGFQbG13QUVWWXNBY3ZHN0VIRUQ1WnNnSUhEaEVTT1h5d0FpOFl0R0FDY0FJQ2NiUmdBbkFDQWwyeUFRRUtLMWdoMkJ2MFdiQU9FTElWQVFvcldDSFlHL1Jac0FjUXNod0JDaXRZSWRnYjlGa3dNUUVoTlNFRkVBQWpJZ0FSTlJBQU16SUFGd2MwSmlNaUJoVVZGQll6TWpZMUExWCtId0hoQVFYKzdPamwvdWNCRitYcEFSTUN0NnlibHErd2w1eXBBZm1aYnY3Ny90RUJNZ0VIUGdFQ0FUVCswUDhGeHRMV3hVTEQxOVBIQUFFQUZBQUFCRk1FalFBSUFEaXlCd2tLRVJJNUFMQUFSVml3QWk4YnNRSWFQbG13QUVWWXNBQXZHN0VBRUQ1WnNBQkZXTEFFTHh1eEJCQStXYklIQWdBUkVqa3dNVE1qQVRNQkl3RW5COXZIQWNtdEFjbkcvc0FhR1FTTiszTURhbHhlQUFBREFENEFBQU5MQkkwQUF3QUhBQXNBWTdJRURBMFJFam13QkJDd0FkQ3dCQkN3Q2RBQXNBQkZXTEFLTHh1eENobytXYkFBUlZpd0FDOGJzUUFRUGxteUFnRUtLMWdoMkJ2MFdiSUhDZ0FSRWptd0J5K3l2d2NCWGJJRUFRb3JXQ0hZRy9SWnNBb1FzZ2dCQ2l0WUlkZ2I5Rmt3TVNFaE5TRURJVFVoRXlFMUlRTkwvUE1ERFVQOWR3S0pRL3p6QXcyWUFYdVlBVW1aQUFFQWlnQUFCRVFFalFBSEFEK3lBUWdKRVJJNUFMQUFSVml3Qmk4YnNRWWFQbG13QUVWWXNBQXZHN0VBRUQ1WnNBQkZXTEFFTHh1eEJCQStXYkFHRUxJQ0FRb3JXQ0hZRy9SWk1ERWhJeEVoRVNNUklRUkV1djI1dVFPNkEvVDhEQVNOQUFBQkFEOEFBQVBJQkkwQURBQkRzZ1lORGhFU09RQ3dBRVZZc0Fndkc3RUlHajVac0FCRldMQURMeHV4QXhBK1diSUJBUW9yV0NIWUcvUlpzQVhRc0FnUXNnb0JDaXRZSWRnYjlGbXdCOUF3TVFFQklSVWhOUUVCTlNFVklRRUNiLzYyQXFQOGR3RlIvcThEVi8yUEFVb0NPdjVmbVpBQnR3RzJrSm4rWHdBREFHQUFBQVVHQkkwQUVRQVhBQjRBWEFDd0FFVllzQkF2RzdFUUdqNVpzQUJGV0xBSUx4dXhDQkErV2JJUEVBZ1JFam13RHkrd0FOQ3lDUWdRRVJJNXNBa3ZzQWJRc0FrUXNoUUJDaXRZSWRnYjlGbXdEeEN5RlFFS0sxZ2gyQnYwV2JBYjBMQVVFTEFjMERBeEFSWUVGUlFFQnhVak5TWWtOVFFrTnpVekFSQUZFUVlHQlRRbUp4RTJOZ01RNWdFUS91M2p1ZW4rOGdFUTU3bitDQUUvbXFVRE5xYVltS1lFRmczNnk4MzhEVzV1RGZ2TXpmc05kdjIxL3RnUkFuTUpsNWlabFFuOWpncVdBQUFCQUdBQUFBUzJCSTBBRlFCY3NnQVdGeEVTT1FDd0FFVllzQU12RzdFREdqNVpzQUJGV0xBUEx4dXhEeG8rV2JBQVJWaXdGQzhic1JRYVBsbXdBRVZZc0Frdkc3RUpFRDVac2hNRENSRVNPYkFUTDdBQTBMQVRFTElMQVFvcldDSFlHL1Jac0FqUU1ERUJKQkVSTXhFR0FnY1JJeEVtQWljUk14RVFCUkV6QXVnQkZia0Q4dG02MmZBRnVnRVV1Z0c3TXdGckFUVCt2ZlArNGhqKzN3RWZGQUVkOGdGTC9zditqaTBDMUFBQkFIVUFBQVIrQkowQUlRQmNzZ2NpSXhFU09RQ3dBRVZZc0Jndkc3RVlHajVac0FCRldMQVBMeHV4RHhBK1diQUFSVml3SUM4YnNTQVFQbG13RHhDeUVRRUtLMWdoMkJ2MFdiQU8wTEFBMExBWUVMSUhBUW9yV0NIWUcvUlpzQkVRc0I3UXNCL1FNREVsTmpZMU5UUW1JeUlHRlJVVUZoY1ZJVFV6SmhFMU5BQXpNZ0FWRlJBSE14VWhBcnVJZjY2ZG5LeU5mLzQrcjdNQkcrZm9BUnl5dGY0OW5SL2Z6U2F6d01HM0ljemZJSjJYblFFNkh1NEJJLzdjOVJ6K3k1eVhBQUVBSnYvc0JTd0VqUUFaQUd1eUZob2JFUkk1QUxBQVJWaXdBaThic1FJYVBsbXdBRVZZc0E0dkc3RU9FRDVac0FCRldMQVlMeHV4R0JBK1diQUNFTElBQVFvcldDSFlHL1Jac0FUUXNBWFFzZ2dDRGhFU09iQUlMN0FPRUxJUEFRb3JXQ0hZRy9SWnNBZ1FzaFVCQ2l0WUlkZ2I5Rmt3TVFFaE5TRVZJUkUyTXpJV0ZSUUdJelV5TmpVMEppTWlCeEVqQVlyK25BT0ovcFNYbk5UaTVlQ05mMzJBblphNUEvU1ptZjdYTWRERXZyNlhiWGlEZVRMOXpnQUFBUUJnLy9BRU1BU2RBQjRBZmJJREh5QVJFamtBc0FCRldMQUxMeHV4Q3hvK1diQUFSVml3QXk4YnNRTVFQbG15RHdzREVSSTVzQXNRc2hJQkNpdFlJZGdiOUZteUZnc0RFUkk1ZkxBV0x4aXlvQllCWGJSZ0ZuQVdBbDJ5TUJZQmNiUmdGbkFXQW5HeUZ3RUtLMWdoMkJ2MFdiQURFTEliQVFvcldDSFlHL1Jac2g0REN4RVNPVEF4QVFZR0l5SUFFVFUwTmpZek1oWVhJeVltSXlJR0J5RVZJUllXTXpJMk53UXdGUHpSNFA3eGUrZVl6UGNUdVJLTmZwbWlCZ0cvL2tFRW9aR0hqUlFCZWJ2T0FTY0JBMTZrK1lqVHU0SjB3NitZc3NKdmd3QUNBQ2NBQUFiN0JJMEFGd0FnQUhheUJDRWlFUkk1c0FRUXNCalFBTEFBUlZpd0VpOGJzUklhUGxtd0FFVllzQU12RzdFREVENVpzQUJGV0xBTEx4dXhDeEErV2JBU0VMSUZBUW9yV0NIWUcvUlpzQXNRc2c0QkNpdFlJZGdiOUZteUZCSURFUkk1c0JRdnNoZ0JDaXRZSWRnYjlGbXdBeEN5R1FFS0sxZ2gyQnYwV1RBeEFSUUdCeUVSSVFNT0FnY2pOemMyTmhNVElSRWhGaFlsRVNFeU5qVTBKaU1HKytiRC9pditYZzhMVFpkN093UXVZRkVLRkFNT0FTVEI0UDA3QVJWeWhJTnpBVzZseHdJRDlQNWw3ZloxQWFVQkJMNEJDUUljL2tvRXdTMytXWFZqWDNBQUFnQ0tBQUFIQ1FTTkFCSUFHd0NKc2dFY0hSRVNPYkFCRUxBVDBBQ3dBRVZZc0FJdkc3RUNHajVac0FCRldMQVJMeHV4RVJvK1diQUFSVml3Q3k4YnNRc1FQbG13QUVWWXNBOHZHN0VQRUQ1WnNnRUNDeEVTT1h5d0FTOFlzcUFCQVYyeUJBSUxFUkk1c0FRdnNBRVFzZzBCQ2l0WUlkZ2I5Rm13QkJDeUV3RUtLMWdoMkJ2MFdiQUxFTElVQVFvcldDSFlHL1JaTURFQklSRXpFU0VXRmhVVUJnY2hFU0VSSXhFekFSRWhNalkxTkNZbkFVTUNTTGtCSk1IZzVzUCtLLzI0dWJrREFRRVZjNFI5YmdLS0FnUCtTZ1RCcEtYSEFnSHkvZzRFamYyeS9sbDNZVnR4QXdBQUFRQW9BQUFGTGdTTkFCVUFXcklIRmhjUkVqa0FzQUJGV0xBQ0x4dXhBaG8rV2JBQVJWaXdEQzhic1F3UVBsbXdBRVZZc0JRdkc3RVVFRDVac0FJUXNnQUJDaXRZSWRnYjlGbXdCTkN3QmRDeUNBSU1FUkk1c0FndnNoRUJDaXRZSWRnYjlGa3dNUUVoTlNFVklSRTJNeklXRnhFakVUUW1JeUlIRVNNQmkvNmRBNG4rbEpPZzFONEV1bjEvblphNkEvU1ptZjdYTWNyQi9vOEJaSWQ1TXYzT0FBQUJBSXIrbXdSREJJMEFDd0JQc2dNTURSRVNPUUN3QWkrd0FFVllzQVl2RzdFR0dqNVpzQUJGV0xBS0x4dXhDaG8rV2JBQVJWaXdBQzhic1FBUVBsbXdBRVZZc0FRdkc3RUVFRDVac2dnQkNpdFlJZGdiOUZtd0NkQXdNU0VoRVNNUklSRXpFU0VSTXdSRC9vRzUvbis1QWtlNS9wc0JaUVNOL0FzRDlRQUNBSW9BQUFRSUJJMEFEQUFWQUY2eUF4WVhFUkk1c0FNUXNBM1FBTEFBUlZpd0N5OGJzUXNhUGxtd0FFVllzQWt2RzdFSkVENVpzQXNRc2dBQkNpdFlJZGdiOUZteUF3c0pFUkk1c0FNdnNBa1FzZzBCQ2l0WUlkZ2I5Rm13QXhDeUV3RUtLMWdoMkJ2MFdUQXhBU0VSSVRJV0ZSUUdCeUVSSVFFeU5qVTBKaWNoRVFPVi9hNEJFYzdtNU1YK0t3TUwvc056aEgxdS90OEQ5LzdneEtXa3lBSUVqZndMZDJGYmNRUCtXUUFDQUM3K3JBVG5CSTBBRHdBVkFGdXlFeFlYRVJJNXNCTVFzQVhRQUxBSkw3QUFSVml3QlM4YnNRVWFQbG13QUVWWXNBc3ZHN0VMRUQ1WnNnQUJDaXRZSWRnYjlGbXdCOUN3Q05Dd0NSQ3dEZEN3Q0JDd0VOQ3dFZEN3QlJDeUVnRUtLMWdoMkJ2MFdUQXhOemMyTmpjVElSRXpFU01SSVJFakV5RWhFU0VEQW9VcFIwY0hEZ01IajduOHVyb0JBUzRDUXY1a0RCR1lNVmI5MkFHWi9BditGQUZVL3EwQjZ3TmMvc2orbVFBQkFCOEFBQVhyQkkwQUZRQ1JzZ0VXRnhFU09RQ3dBRVZZc0Frdkc3RUpHajVac0FCRldMQU5MeHV4RFJvK1diQUFSVml3RVM4YnNSRWFQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFHTHh1eEJoQStXYkFBUlZpd0ZDOGJzUlFRUGxteUVBa0NFUkk1ZkxBUUx4aXlvQkFCWGJSZ0VIQVFBbDJ5QUFFS0sxZ2gyQnYwV2JBRTBMSVRFQUFSRWptd0V4Q3dDTkN3RUJDd0M5QXdNUUVqRVNNUkl3RWpBUUV6QVRNUk14RXpBVE1CQVNNRHhXTzZaUDdGNmdHRy9wN2dBU3hadWxrQkxPRCtuQUdJNmdIMi9nb0I5djRLQWxFQ1BQNERBZjMrQXdIOS9jMzlwZ0FBQVFCSC8vQUQxQVNkQUNnQWZiSWtLU29SRWprQXNBQkZXTEFLTHh1eENobytXYkFBUlZpd0ZpOGJzUllRUGxtd0NoQ3lBd0VLSzFnaDJCdjBXYklHQ2hZUkVqbXlKd29XRVJJNXNDY3Z0QjhuTHljQ1hiSy9Kd0ZkdE44bjd5Y0NYYklrQVFvcldDSFlHL1Jac2hBa0p4RVNPYkljRmdvUkVqbXdGaEN5SHdFS0sxZ2gyQnYwV1RBeEFUUW1JeUlHRlNNME5qTXlGaFVVQmdjV0ZoVVVCaU1pSmljbU5UTVdGak15TmpVMEpTTTFNellEQ0lwOWJvRzY3YnpUN201bmRuSCsxVnVwUFhtNUJZTjVpSkwrLzUyYzd3TlFWRjFZVDQ2MXFKWldqU2tra2x1ZXRDd3VXWjFXWUdCWXdRV1lCUUFCQUlvQUFBUmhCSTBBQ1FCTXNnQUtDeEVTT1FDd0FFVllzQUF2RzdFQUdqNVpzQUJGV0xBSEx4dXhCeG8rV2JBQVJWaXdBaThic1FJUVBsbXdBRVZZc0FVdkc3RUZFRDVac2dRQUFoRVNPYklKQUFJUkVqa3dNUUV6RVNNUkFTTVJNeEVEcUxtNS9adTV1UVNOKzNNRGRQeU1CSTM4akFBQkFJc0FBQVFzQkkwQURBQm9zZ29ORGhFU09RQ3dBRVZZc0FRdkc3RUVHajVac0FCRldMQUlMeHV4Q0JvK1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBc3ZHN0VMRUQ1WnNnWUNCQkVTT1h5d0JpOFlzcUFHQVYyMFlBWndCZ0pkc2dFQkNpdFlJZGdiOUZteUNnRUdFUkk1TURFQkl4RWpFVE1STXdFekFRRWpBYTVxdWJsa0FZWGYvalVCNis4Qjl2NEtCSTMrQXdIOS9jWDlyZ0FBQVFBbkFBQUVOZ1NOQUE4QVRiSUVFQkVSRWprQXNBQkZXTEFBTHh1eEFCbytXYkFBUlZpd0FTOGJzUUVRUGxtd0FFVllzQWd2RzdFSUVENVpzQUFRc2dNQkNpdFlJZGdiOUZtd0NCQ3lDZ0VLSzFnaDJCdjBXVEF4QVJFakVTRURBZ0lISXpjM05qWTNFd1EydWY1ZUR3MmtzRVFFS1Y1UURSa0VqZnR6QS9UK2d2NnEvdVVGcFFNSG51SUNYZ0FBQVFBaS8rd0VDd1NOQUJFQVE3SUJFaE1SRWprQXNBQkZXTEFDTHh1eEFobytXYkFBUlZpd0VDOGJzUkFhUGxtd0FFVllzQWd2RzdFSUVENVpzZ0VJQWhFU09iSU1BUW9yV0NIWUcvUlpNREVCRndFekFRY0dCd2NpSnpjWE1qWTNBVE1COVMwQkZOWCtYaVZRcWlaUUZBWmNNVWtnL21iV0FqQjRBdFg4UlVtUkN3RUlrd1V4T3dPZkFBQUJBSXIrckFUeEJJMEFDd0JGc2drTURSRVNPUUN3QWkrd0FFVllzQVl2RzdFR0dqNVpzQUJGV0xBS0x4dXhDaG8rV2JBQVJWaXdCQzhic1FRUVBsbXlBQUVLSzFnaDJCdjBXYkFJMExBSjBEQXhKVE1ESXhFaEVUTVJJUkV6QkVTdEVxWDhVTGtDUjdxWS9oUUJWQVNOL0FzRDlRQUFBUUE5QUFBRDN3U05BQkVBUnJJRUVoTVJFamtBc0FCRldMQUlMeHV4Q0JvK1diQUFSVml3RUM4YnNSQWFQbG13QUVWWXNBQXZHN0VBRUQ1WnNnMElBQkVTT2JBTkw3SUVBUW9yV0NIWUcvUlpNREVoSXhFR0l5SW1KeEV6RVJRV016STNFVE1EMzdtUW85VGVCTGwrZjUyV3VRSENNTXJCQVhEK25ZZDVNZ0l4QUFFQWlnQUFCY1lFalFBTEFFK3lCUXdORVJJNUFMQUFSVml3QWk4YnNRSWFQbG13QUVWWXNBWXZHN0VHR2o1WnNBQkZXTEFLTHh1eENobytXYkFBUlZpd0FDOGJzUUFRUGxteUJBRUtLMWdoMkJ2MFdiQUkwTEFKMERBeElTRVJNeEVoRVRNUklSRXpCY2I2eExrQmlMb0JpTGtFamZ3TEEvWDhDd1AxQUFFQWl2NnNCblVFalFBUEFGaXlDeEFSRVJJNUFMQUNMN0FBUlZpd0JpOGJzUVlhUGxtd0FFVllzQW92RzdFS0dqNVpzQUJGV0xBT0x4dXhEaG8rV2JBQVJWaXdCQzhic1FRUVBsbXlBQUVLSzFnaDJCdjBXYkFJMExBSjBMQU0wTEFOMERBeEpUTURJeEVoRVRNUklSRXpFU0VSTXdYSHJoS20rczI1QVlpNkFZaTZtUDRVQVZRRWpmd0xBL1g4Q3dQMUFBQUNBQWdBQUFUV0JJMEFEUUFXQUY2eUNCY1lFUkk1c0FnUXNCWFFBTEFBUlZpd0J5OGJzUWNhUGxtd0FFVllzQU12RzdFREVENVpzQWNRc2dVQkNpdFlJZGdiOUZteUNnY0RFUkk1c0FvdnNBTVFzZzRCQ2l0WUlkZ2I5Rm13Q2hDeUZBRUtLMWdoMkJ2MFdUQXhBUlFHQnlFUklUVWhFU0V5RmhZQk1qWTFOQ1lqSVJFRTF1VEUvaXIrc0FJS0FSYUV3bWorVVhLRWczUCs2d0Z1cE1nQ0EvU1ova3BZby82OGRXTmZjUDVaLy84QWlnQUFCV2NFalFBbUFnZ0FBQUFIQWNJRUZnQUFBQUlBaWdBQUJBZ0VqUUFLQUJNQVVMSUlGQlVSRWptd0NCQ3dDOUFBc0FCRldMQUZMeHV4QlJvK1diQUFSVml3QXk4YnNRTVFQbG15Q0FVREVSSTVzQWd2c0FNUXNnc0JDaXRZSWRnYjlGbXdDQkN5RVFFS0sxZ2gyQnYwV1RBeEFSUUdCeUVSTXhFaE1oWUJNalkxTkNZbklSRUVDT1RGL2l1NUFSSE81djVRYzRSOWJ2N2ZBVzZreUFJRWpmNUt4UDZGZDJGYmNRUCtXUUFCQUV2LzhBUWJCSjBBSGdCNnNnTWZJQkVTT1FDd0FFVllzQk12RzdFVEdqNVpzQUJGV0xBYkx4dXhHeEErV2JJQUd4TVJFam15QXdFS0sxZ2gyQnYwV2JJSkV4c1JFamw4c0FrdkdMS2dDUUZkdEdBSmNBa0NYYkl3Q1FGeHRHQUpjQWtDY2JJR0FRb3JXQ0hZRy9SWnNCTVFzZ3dCQ2l0WUlkZ2I5Rm15RHhNYkVSSTVNREVCRmhZek1qWTNJVFVoSmlZaklnWUhJelkyTXpJQUZ4VVVCZ1lqSWlZbkFRUVVqWWVOb2dmK1FRRytCYU9ZZm8wU3VSUDN6T1FCRVFWNDRwWFAvaFFCZVlOdnU3bVlyOE4wZ3J2VC90LzBkYVA1aDg2N0FBQUNBSXIvOEFZVkJKMEFFd0FoQUlxeUJDSWpFUkk1c0FRUXNCalFBTEFBUlZpd0VDOGJzUkFhUGxtd0FFVllzQXN2RzdFTEdqNVpzQUJGV0xBREx4dXhBeEErV2JBQVJWaXdDQzhic1FnUVBsbXlEUWdMRVJJNWZMQU5MeGkwWUExd0RRSnhzcUFOQVYyMFlBMXdEUUpkc2dZQkNpdFlJZGdiOUZtd0VCQ3lGd0VLSzFnaDJCdjBXYkFERUxJZUFRb3JXQ0hZRy9SWk1ERUJFQUFqSWdBbkl4RWpFVE1STXpZQU16SUFGd2MwSmlNaUJoVVZGQll6TWpZMUJoWCs3T2pkL3VzTTJMbTUyQTRCRk5ycEFSTUN0NnlibHErd2w1eXBBaVQrKy83UkFSenkvZ0lFamY0SjhRRVcvdEQvQmNiUzFzVkN3OWZUeHdBQUFnQlFBQUFEL0FTTkFBMEFGQUJoc2hNVkZoRVNPYkFURUxBSDBBQ3dBRVZZc0Fjdkc3RUhHajVac0FCRldMQUFMeHV4QUJBK1diQUFSVml3Q1M4YnNRa1FQbG15RVFjQUVSSTVzQkV2c2dzQkNpdFlJZGdiOUZteUFRc0hFUkk1c0FjUXNoSUJDaXRZSWRnYjlGa3dNVE1CSmlZMU5EWTNJUkVqRVNFREV4UVhJUkVoSWxBQklucHgzTWdCMGJuKzBQOHU1Z0ViL3Uvd0FnMG1uV2loc2dMN2N3SGYvaUVETUxRRUFYd0FBUUFMQUFBRDV3U05BQTBBVUxJQkRnOFJFamtBc0FCRldMQUlMeHV4Q0JvK1diQUFSVml3QWk4YnNRSVFQbG15RFFnQ0VSSTVzQTB2c2dBQkNpdFlJZGdiOUZtd0JOQ3dEUkN3QnRDd0NCQ3lDZ0VLSzFnaDJCdjBXVEF4QVNNUkl4RWpOVE1SSVJVaEVUTUNoK0s1NGVFQysvMis0Z0g5L2dNQi9aY0IrWm4rb0FBQUFRQWYvcXdHSWdTTkFCa0FxcklJR2hzUkVqa0FzQUJGV0xBUUx4dXhFQm8rV2JBQVJWaXdGQzhic1JRYVBsbXdBRVZZc0Jndkc3RVlHajVac0FCRldMQU5MeHV4RFJBK1diQUFSVml3Q2k4YnNRb1FQbG13QUVWWXNBVXZHN0VGRUQ1WnNoY0tHQkVTT1h5d0Z5OFlzcUFYQVYyMFlCZHdGd0pkdEdBWGNCY0NjYklIQVFvcldDSFlHL1Jac2dBSEZ4RVNPYkFGRUxJQkFRb3JXQ0hZRy9SWnNBY1FzQXZRc2c4WEJ4RVNPYkFYRUxBUzBEQXhBUUV6RVNNUkl3RWpFU01SSXdFakFRRXpBVE1STXhFekFUTUVZd0VtbWFkNi9zUmp1bVQreGVvQmh2NmU0QUVzV2JwWkFTemdBbHIrUFA0V0FWUUI5djRLQWZiK0NnSlJBanorQXdIOS9nTUIvUUFCQUl2K3JBUk9CSTBBRUFDQXNnQVJFaEVTT1FDd0F5K3dBRVZZc0Fzdkc3RUxHajVac0FCRldMQVBMeHV4RHhvK1diQUFSVml3Q1M4YnNRa1FQbG13QUVWWXNBVXZHN0VGRUQ1WnNnMEpDeEVTT1h5d0RTOFl0R0FOY0EwQ2NiS2dEUUZkdEdBTmNBMENYYklJQVFvcldDSFlHL1Jac2dBSURSRVNPYkFGRUxJQkFRb3JXQ0hZRy9SWk1ERUJBVE1SSXhFakFTTVJJeEV6RVRNQk13SkJBVytlcUduK2NXcTV1V1FCaGQ4Q1V2NUUvaFlCVkFIMi9nb0VqZjREQWYwQUFBRUFpd0FBQk9jRWpRQVVBSGl5Q3hVV0VSSTVBTEFBUlZpd0JpOGJzUVlhUGxtd0FFVllzQk12RzdFVEdqNVpzQUJGV0xBSkx4dXhDUkErV2JBQVJWaXdFUzhic1JFUVBsbXlBQkVURVJJNWZMQUFMeGl5b0FBQlhiUmdBSEFBQWwyMFlBQndBQUp4c0FUUXNBQVFzaEFCQ2l0WUlkZ2I5Rm15Q0JBQUVSSTVzQXpRTURFQk16VXpGVE1CTXdFQkl3RWpGU00xSXhFakVUTUJSRkNVUEFHRTRQNDBBZXZ2L25GQmxGQzV1UUtRNU9RQi9mM0YvYTRCOXM3Ty9nb0VqUUFBQVFBakFBQUZGUVNOQUE0QWZiSUFEeEFSRWprQXNBQkZXTEFHTHh1eEJobytXYkFBUlZpd0NpOGJzUW9hUGxtd0FFVllzQUl2RzdFQ0VENVpzQUJGV0xBTkx4dXhEUkErV2JJSUFnWVJFamw4c0FndkdMS2dDQUZkdEdBSWNBZ0NYYlJnQ0hBSUFuR3lBUUVLSzFnaDJCdjBXYkFHRUxJRUFRb3JXQ0hZRy9SWnNnd0JDQkVTT1RBeEFTTVJJeEVoTlNFUk13RXpBUUVqQXBkcHV2NnZBZ3RqQVlYZy9qUUI2KzhCOXY0S0EvV1kvZ01CL2YzRi9hNEFBZ0JnLytzRld3U2ZBQ01BTGdDVXNoUXZNQkVTT2JBVUVMQWswQUN3QUVWWXNBc3ZHN0VMR2o1WnNBQkZXTEFiTHh1eEd4bytXYkFBUlZpd0FDOGJzUUFRUGxtd0FFVllzQVF2RzdFRUVENVpzZ0lFR3hFU09iQUNMN0FMRUxJTUFRb3JXQ0hZRy9SWnNBUVFzaE1CQ2l0WUlkZ2I5Rm13QWhDeUpnRUtLMWdoMkJ2MFdiSVZFeVlSRWpteUlRSW1FUkk1c0JzUXNpd0JDaXRZSWRnYjlGa3dNUVVpSndZaklBQVJOUkFTTXhjaUJoVVZGQll6TWpjbUF6VTBFak15RWhVVkVBY1dNd0VRRnpZUk5UUW1JeUlEQlZ2WnBvbWovdXIreHZUU0FYNlEwTWMyTXVNQno3VzR6YlplZHYyUzRiWmlhc1lGRkRzOEFVVUJLaG9CQXdFb25zUElJZWpsQ0xJQlJTZnJBUVQrLy9FNC90cXlFZ0g5L3N4NWdRRWVPS3lqL3NQLy93QU5BQUFFSEFTTkFDWUIwZ0FBQVFjQjNnQkUvdDRBQ0FDeUFBb0JYVEF4QUFFQUp2NnNCSEVFalFBUUFHdXlDeEVTRVJJNUFMQUhMN0FBUlZpd0FTOGJzUUVhUGxtd0FFVllzQTh2RzdFUEdqNVpzQUJGV0xBSkx4dXhDUkErV2JBQVJWaXdEQzhic1F3UVBsbXlBQUVNRVJJNXNnc01BUkVTT2JJREN3QVJFam13Q1JDeUJBRUtLMWdoMkJ2MFdiSU9BQXNSRWprd01RRUJNd0VCTlRNUkl4RWpBUUVqQVFFekFpZ0JIOXorZFFFeHFLaDAvdFgrMk53Qmx2NXoyd0xhQWJQOXZ2NUtBZjRXQVZRQnUvNUZBa3NDUWdBQUFRQW0vcXdGOGdTTkFBOEFYTElKRUJFUkVqa0FzQUl2c0FCRldMQUlMeHV4Q0JvK1diQUFSVml3RGk4YnNRNGFQbG13QUVWWXNBUXZHN0VFRUQ1WnNnQUJDaXRZSWRnYjlGbXdDQkN5QmdFS0sxZ2gyQnYwV2JBSzBMQUwwTEFBRUxBTTBMQU4wREF4SlRNREl4RWhFU0UxSVJVaEVTRVJNd1ZFcmhLbC9GRCttd09KL3BVQ1JycVkvaFFCVkFQMG1abjhwQVAxQUFBQkFEMEFBQVBmQkkwQUZ3QlBzZ1FZR1JFU09RQ3dBRVZZc0Fzdkc3RUxHajVac0FCRldMQVdMeHV4RmhvK1diQUFSVml3QUM4YnNRQVFQbG15RUFzQUVSSTVzQkF2c2djQkNpdFlJZGdiOUZtd0JOQ3dFQkN3RTlBd01TRWpFUVlIRlNNMUppWW5FVE1SRkJZWE5UTVZOamNSTXdQZnVXTnBsYnpKQTdsbmFKVm5aYmtCd2lFTHhzTUt5Ym9CYmY2ZGUzZ0w4TzBMSWdJeEFBQUJBSW9BQUFRc0JJMEFFUUJHc2dRU0V4RVNPUUN3QUVWWXNBQXZHN0VBR2o1WnNBQkZXTEFJTHh1eENCQStXYkFBUlZpd0VDOGJzUkFRUGxteUJBQUlFUkk1c0FRdnNnMEJDaXRZSWRnYjlGa3dNUk16RVRZek1oWVhFU01STkNZaklnY1JJNHE1bXBuVTNnUzVmbitZbTdrRWpmNCtNY3JCL284QlpJZDVNLzNQQUFBQ0FBTC84QVZyQkowQUhBQWtBR215RlNVbUVSSTVzQlVRc0I3UUFMQUFSVml3RGk4YnNRNGFQbG13QUVWWXNBQXZHN0VBRUQ1WnNpRU9BQkVTT2JBaEw3Sy9JUUZkc2hJQkNpdFlJZGdiOUZtd0E5Q3dJUkN3Q3RDd0FCQ3lGZ0VLSzFnaDJCdjBXYkFPRUxJZEFRb3JXQ0hZRy9SWk1ERUZJZ0ExSmlZMU14UVdGejRDTXpJQUVSVWhGQll6TWpZM0Z3WUdBeUlHQnlFMU5DWURrZi8renFhNG1WOW1CWWZwanZnQkVQeXV3YmRNaDFBNVBMaVdqN1VHQXBtdUVBRWk4d3ZHcUY1M0RKUHNnZjdyL3YyQ3NjQWZLSklvTHdRUndxUWJvYW9BQUFJQVh2L3dCR2tFblFBV0FCNEFYcklJSHlBUkVqbXdDQkN3RjlBQXNBQkZXTEFBTHh1eEFCbytXYkFBUlZpd0NDOGJzUWdRUGxteURRQUlFUkk1c0EwdnNBQVFzaEVCQ2l0WUlkZ2I5Rm13Q0JDeUZ3RUtLMWdoMkJ2MFdiQU5FTElhQVFvcldDSFlHL1JaTURFQk1nQVhGUlFHQmlNaUFCRTFJVFUwSmlNaUJ5YzJOaE15TmpjaEZSUVdBa2YzQVNrQ2hPeVQrUDd3QTFMQnQ1T1FPVUhBaVpHekJ2MW5yUVNkL3VEdmlKbjBpUUVWQVFHQ0FiSEJTSklwTC92dHhxRWJvS3dBQUFFQVIvL3RBOVFFalFBY0FHMnlHaDBlRVJJNUFMQUFSVml3QWk4YnNRSWFQbG13QUVWWXNBc3ZHN0VMRUQ1WnNBSVFzZ0FCQ2l0WUlkZ2I5Rm15QkFBQ0VSSTVzZ1VMQWhFU09iQUZMN0lSQ3dJUkVqbXdDeEN5RkFFS0sxZ2gyQnYwV2JBRkVMSWFBUW9yV0NIWUcvUlpzaHdGR2hFU09UQXhBU0UxSVJjQkZoWVZGQVlqSWlZbkpqVXpGaFl6TWpZMU5DWWpJelVDcy8yOEF6Z0MvcW14MGZ6WFdhczhlcmtGaVhPSWtvcUdnQVAwbVhiK214REZpNmUrTFM1YW5sbGthR3BmYXFVQUF3QmcvL0FFV2dTZEFBMEFGQUFiQUhPeUF4d2RFUkk1c0FNUXNBN1FzQU1Rc0JYUUFMQUFSVml3Q2k4YnNRb2FQbG13QUVWWXNBTXZHN0VERUQ1WnNnNEJDaXRZSWRnYjlGbXlHUW9ERVJJNWZMQVpMeGl5b0JrQlhiUmdHWEFaQWwyMFlCbHdHUUp4c2hFQkNpdFlJZGdiOUZtd0NoQ3lGUUVLSzFnaDJCdjBXVEF4QVJBQUl5SUFFVFVRQURNeUFCY0JNalkzSVJZV0V5SUdCeUVtSmdSYS91em81ZjduQVJmbDZRRVRBdjRFazZnSi9YWUtyWTJScXdnQ2lnbXFBaVQrKy83UkFUSUJCejRCQWdFMC90RC8vaHk4dExEQUEzZkRyTE84QUFBQkFEQUFBQVB2QkowQUp3Q3VzaDBvS1JFU09RQ3dBRVZZc0Iwdkc3RWRHajVac0FCRldMQU1MeHV4REJBK1diSUdIUXdSRWptd0JpK3lEd1lCY2JJUEJnRmRzazhHQVhHd0FkQ3dBUzlBQ1I4Qkx3RS9BVThCQkYyeUFBRUJYYklDQkFvcldDSFlHL1Jac0FZUXNnY0VDaXRZSWRnYjlGbXdEQkN5Q2dFS0sxZ2gyQnYwV2JBTzBMQVAwTEFIRUxBUjBMQUdFTEFUMExBQ0VMQVcwTEFCRUxBWTBMSWhBUjBSRWptd0hSQ3lKQUVLSzFnaDJCdjBXVEF4QVNFVklSY1ZJUlVoQmdjaEJ5RTFNelkzSXpVek5TY2pOVE1uSmpZek1oWVZJelFtSXlJR0Z3R0hBWmIrYmdNQmovNXNDaVFDbEFIOGhBby9GSitsQTZLZUFnYkx0YmZLdVdoZ1hXZ0VBcWg1WFJCNWFrZVltQktmZVJCZGVVREo3TXkzY0hlUGlnQUFBUUJDLy9BRG5nU2RBQ0VBbnJJVUlpTVJFamtBc0FCRldMQVZMeHV4RlJvK1diQUFSVml3Q0M4YnNRZ1FQbG15SVJVSUVSSTVzQ0V2c2c4aEFWMjBFQ0VnSVFKZHNnQUVDaXRZSWRnYjlGbXdDQkN5QXdFS0sxZ2gyQnYwV2JBQUVMQUwwTEFoRUxBTjBMQWhFTEFTMExBU0wwQUpIeEl2RWo4U1R4SUVYYklBRWdGZHNnOEVDaXRZSWRnYjlGbXdGUkN5R2dFS0sxZ2gyQnYwV2JBU0VMQWMwTEFQRUxBZTBEQXhBU0VTSVRJM0Z3WWpJaVluSXpVek5TTTFNelkyTXpJWEJ5WWpJQU1oRlNFVklRTXYvbWdnQVFKaWFCdDJiOVAxRkp1WGw1c1c5YzlnaHhWWmVmOEFJQUdZL21RQm5BR1cvdkVjbFI3YXpIbHRlY3pjSDVVYy92QjViUUFBQkFDS0FBQUhyUVNkQUFNQUVBQWVBQ2dBcUxJZktTb1JFam13SHhDd0FkQ3dIeEN3Qk5Dd0h4Q3dFZEFBc0FCRldMQW5MeHV4SnhvK1diQUFSVml3SlM4YnNTVWFQbG13QUVWWXNBY3ZHN0VIR2o1WnNBQkZXTEFpTHh1eEloQStXYkFBUlZpd0lDOGJzU0FRUGxtd0J4Q3dEZEN3RFMrd0F0Q3dBaSswQUFJUUFnSmRzZ0VEQ2l0WUlkZ2I5Rm13RFJDeUZBTUtLMWdoMkJ2MFdiQUhFTEliQXdvcldDSFlHL1Jac2lFbklCRVNPYkltSUNjUkVqa3dNU1VoTlNFQk5EWWdGaFVWRkFZaklpWTFGeFFXTXpJMk5UVTBKaU1pQmhVQkl3RVJJeEV6QVJFekIyNzkwd0l0L1pLOEFUUzl2cGVadjZOZVYxUmVZVk5TWWY2MXVQMmp1YmtDWGJpOWpnSURsYnE0bTFDWXRyZWNCVmxxYVZ4U1dtaG5YdnkxQTJ6OGxBU04vSk1EYlFBQUFnQW9BQUFFWmdTTkFCWUFId0NEc2dBZ0lSRVNPYkFZMEFDd0FFVllzQXd2RzdFTUdqNVpzQUJGV0xBQ0x4dXhBaEErV2JJV0RBSVJFam13RmkreUFBRUtLMWdoMkJ2MFdiQUUwTEFXRUxBRzBMQVdFTEFMMExBTEwwQUpEd3NmQ3k4TFB3c0VYYlMvQzg4TEFsMnlDQUVLSzFnaDJCdjBXYkFUMExBTEVMQVgwTEFNRUxJZUFRb3JXQ0hZRy9SWk1ERWxJUlVqTlNNMU16VWpOVE1SSVRJV0ZSUUdCeUVWSVNVaE1qWTFOQ1lqSVFLay92NjZ3TURBd0FIUHhlcmp2djdkQVFMKy9nRVZjb09FY1A3cXRMUzBtRm1ZQWxETXFLWExCRm54ZUdKa2VnQUFBZ0NNLyt3RU5BWUFBQkFBR3dCa3NoUWNIUkVTT2JBVUVMQU4wQUN3Q1Mrd0FFVllzQTB2RzdFTkdENVpzQUJGV0xBRUx4dXhCQkErV2JBQVJWaXdCeThic1FjUVBsbXlCZzBFRVJJNXNnc05CQkVTT2JBTkVMSVVBUW9yV0NIWUcvUlpzQVFRc2hrQkNpdFlJZGdiOUZrd01RRVVCZ1lqSWljSEl4RXpFVFl6TWhJUkp6UW1JeUlIRVJZek1qWUVORy9KZ05Gd0Q2QzVjTVhKOGJtampMZFFWYlNLb3dJU24veUxsWUVHQVAzRGkvN1QvdjhIdE5hcS9peXIyQUFBQVFCYy8rd0Q3d1JPQUIwQVNiSUFIaDhSRWprQXNBQkZXTEFRTHh1eEVCZytXYkFBUlZpd0NDOGJzUWdRUGxteUFBRUtLMWdoMkJ2MFdiQUlFTEFEMExBUUVMQVUwTEFRRUxJWEFRb3JXQ0hZRy9SWk1ERWxNalkzTXc0Q0l5SUFOVFUwTmpZek1oWVhJeVltSXlJR0ZSVVVGZ0pBWTVRSXNBVjR4RzdmL3Z0MjI1TzI4UWl3Q0k5b2o1dWRnM2hhWHFoakFTcjhJSjM1aHRxdWFZZk92eUc4eVFBQ0FGdi83QVFBQmdBQUVRQWNBR1N5R2gwZUVSSTVzQm9Rc0FUUUFMQUhMN0FBUlZpd0JDOGJzUVFZUGxtd0FFVllzQTB2RzdFTkVENVpzQUJGV0xBSkx4dXhDUkErV2JJR0JBMFJFam15Q3dRTkVSSTVzQTBRc2hVQkNpdFlJZGdiOUZtd0JCQ3lHZ0VLSzFnaDJCdjBXVEF4RXpRMk5qTXlGeEV6RVNNbkJpTWlKaVluTnhRV016STNFU1lqSWdaYmNjNkF2bSs1b1E1dnluekxkUUc1cUlxdlVsT3NqYWNDSnAvOGpZSUNOUG9BZUl5TSs1Z0dzZGlmQWZHWjFnQUNBRnYrVmdRQUJFNEFHd0FtQUh5eUh5Y29FUkk1c0I4UXNBdlFBTEFBUlZpd0F5OGJzUU1ZUGxtd0FFVllzQVl2RzdFR0dENVpzQUJGV0xBTEx4dXhDeEkrV2JBQVJWaXdHQzhic1JnUVBsbXlCUU1ZRVJJNXNBc1FzaElCQ2l0WUlkZ2I5Rm15RmdNWUVSSTVzQmdRc2g4QkNpdFlJZGdiOUZtd0F4Q3lKQUVLSzFnaDJCdjBXVEF4RXpRU016SVhOek1SQmdJaklpWW5OeFlXTXpJMk5UVUdJeUlDTlJjVUZqTXlOeEVtSXlJR1cvakd6RzhQblFMMDRGYklTRGMvbjArVmltL0J3dnE1cG91dlUxT3RqcVVDSnZZQk1wU0EvQTd2L3YwM01vb3FNckNvS0lFQk9QUUhzTm1oQWV1ZDF3RC8vd0JYQUFBQ2hnVzNBQVlBRmEwQUFBSUFqUDVnQkRJRVRnQVFBQnNBYnJJWkhCMFJFam13R1JDd0RkQUFzQUJGV0xBTkx4dXhEUmcrV2JBQVJWaXdDaThic1FvWVBsbXdBRVZZc0Fjdkc3RUhFajVac0FCRldMQUVMeHV4QkJBK1diSUdEUVFSRWpteUN3MEVFUkk1c0EwUXNoUUJDaXRZSWRnYjlGbXdCQkN5R1FFS0sxZ2gyQnYwV1RBeEFSUUdCaU1pSnhFakVUTVhOak15RWhjSE5DWWpJZ2NSRmpNeU5nUXlic2lCeFhHNW53OTB5c0h1Q3JpcGo2aFVVNnVNcWdJUm52eUxmZjMzQmRwOWtmN3A2aWV3MjVYOSs1VGZBQUFDQUZ2K1lBUC9CRTRBRHdBYUFHdXlHQnNjRVJJNXNCZ1FzQVBRQUxBQVJWaXdBeThic1FNWVBsbXdBRVZZc0FZdkc3RUdHRDVac0FCRldMQUlMeHV4Q0JJK1diQUFSVml3REM4YnNRd1FQbG15QlFNTUVSSTVzZ29EREJFU09iSVRBUW9yV0NIWUcvUlpzQU1Rc2hnQkNpdFlJZGdiOUZrd01STTBFak15RnpjekVTTVJCaU1pQWpVWEZCWXpNamNSSmlNaUJsdjN6TVJ2RHFDNWNMckgrcm1xaktaV1dLS09xZ0lsOVFFMGhuTDZKZ0lFZUFFMTlnZXUzNU1DRVkvZkFBSUFYZi9zQS9NRVRnQVVBQndBWXJJSUhSNFJFam13Q0JDd0ZkQUFzQUJGV0xBSUx4dXhDQmcrV2JBQVJWaXdBQzhic1FBUVBsbXlHUWdBRVJJNXNCa3Z0TDhaenhrQ1hiSU1BUW9yV0NIWUcvUlpzQUFRc2hBQkNpdFlJZGdiOUZtd0NCQ3lGUUVLSzFnaDJCdjBXVEF4QlNJQUp5YzBOall6TWhJVkZTRVdGak15TnhjR0FTSUdCeUUxTkNZQ2NlWCszUXNCZk4yQTFlajlKQWpDbWFCNE9ZUCs3bk9ZRVFJZ2lSUUJGK05PbS9XSy92N3dkSjNJV245eUE4cWdsaG1EbWdBQ0FHRCtWZ1B5QkU0QUdnQWxBSHl5SXlZbkVSSTVzQ01Rc0F2UUFMQUFSVml3QXk4YnNRTVlQbG13QUVWWXNBWXZHN0VHR0Q1WnNBQkZXTEFMTHh1eEN4SStXYkFBUlZpd0Z5OGJzUmNRUGxteUJRTVhFUkk1c0FzUXNoRUJDaXRZSWRnYjlGbXlGUU1YRVJJNXNCY1FzaDRCQ2l0WUlkZ2I5Rm13QXhDeUl3RUtLMWdoMkJ2MFdUQXhFelFTTXpJWE56TVJGQVlqSWlZbk54WXpNalkxTlFZaklnSTFGeFFXTXpJM0VTWWpJZ1pnNk1QS2NCQ2Q5ZUZTcjBFM2VvK1ZpVy9BdnV1NmxZaXZVbFdxaVpZQ0pmb0JMNU4vL0FYcS95MHBpa21ubmpxQUFUTDZDTFhUb0FIdW05QUFBUUIrLytzRkhRWEZBQjRBVExJTUh5QVJFamtBc0FCRldMQU1MeHV4REJ3K1diQUFSVml3QXk4YnNRTVFQbG13REJDd0VOQ3dEQkN5RXdFS0sxZ2gyQnYwV2JBREVMSWJBUW9yV0NIWUcvUlpzQU1Rc0I3UU1ERUJCZ0FqSWlRQ0p6VTBFaVF6TWdBWEl5WW1JeUlDRVJVVUVoWXpNalkzQlJ3WS90dnVzZjdob2dHZEFSdXk3UUV2R2NFWXY1M0E2bTdJZmFHd0dnSE8zLzc4dEFGSHkwVFRBVXF6L3Zyam82ait5LzcrTjZIL0FKQ2RxUUFCQUg3LzZ3VWVCY1FBSWdCdHNnd2pKQkVTT1FDd0FFVllzQXd2RzdFTUhENVpzQUJGV0xBREx4dXhBeEErV2JJUUF3d1JFam13RUMrd0RCQ3lFd0VLSzFnaDJCdjBXYkFERUxJYkFRb3JXQ0hZRy9SWnNpSU1BeEVTT2JBaUw3US9JazhpQWwyMER5SWZJZ0pkc2g4QkNpdFlJZGdiOUZrd01TVUdCQ01pSkFJbk5UUVNKRE15QkJjakppWWpJZ0lIQnhRU0ZqTXlOamNSSVRVaEJSNUQvdU93dS83V3FBT2JBUnkxOFFFaElzQWV1cHkxN0FvQmVOT0ZjclVxL3JBQ0Q3NWhjclFCUjlJdDJ3Rk90dVhhbFl6KzNQSkdyUDcyakRvd0FVYWJBQUlBc2dBQUJSRUZzQUFMQUJVQVJySURGaGNSRWptd0F4Q3dGZEFBc0FCRldMQUJMeHV4QVJ3K1diQUFSVml3QUM4YnNRQVFQbG13QVJDeURBRUtLMWdoMkJ2MFdiQUFFTElOQVFvcldDSFlHL1JaTURFekVTRXlCQklYRlJRQ0JBY0RFVE15QUJFMU5BQWpzZ0d4d1FFNHNRU3Qvc0xMNmQvcUFSUCs5K2dGc0t6K3hNZyswUDdCc1FJRkV2dUxBU29CQXlUOEFTZ0FBZ0IrLytzRlh3WEZBQkVBSWdCR3NnUWpKQkVTT2JBRUVMQWYwQUN3QUVWWXNBMHZHN0VOSEQ1WnNBQkZXTEFFTHh1eEJCQStXYkFORUxJV0FRb3JXQ0hZRy9SWnNBUVFzaDhCQ2l0WUlkZ2I5Rmt3TVFFVUFnUWpJaVFDSnpVMEVpUXpNZ1FTRndjMEFpWWpJZ1lHQnhVVUVoWXpNaEkxQlYraS91S3ZxLzdocGdLa0FTR3JyUUVnb3dHL2JzZDllTVp5QVhISmVjSHZBc0xPL3JDNXVRRkt5RGZOQVUrOHVmNjB6QVdpQVFDUGovNmNOYUQrL3BJQk8vOEFBQUlBZnY4RUJWOEZ4UUFWQUNZQVRiSUlKeWdSRWptd0NCQ3dJOUFBc0FCRldMQVJMeHV4RVJ3K1diQUFSVml3Q0M4YnNRZ1FQbG15QXdnUkVSSTVzQkVRc2hvQkNpdFlJZGdiOUZtd0NCQ3lJd0VLSzFnaDJCdjBXVEF4QVJRQ0J4Y0hKUVlqSWlRQ0p6VTBFaVF6TWdRU0ZTYzBBaVlqSWdZR0J4VVVFaFl6TWhJMUJWK3BsUHFEL3N3NVBLdis0S1FEb2dFaXJLNEJJYUsvYnNkOWVNZHhBWEhKZWNIdkFzTFUvcXhhdzNuekRMb0JSc1k2ekFGUXZyditzTTRCb3dFQmo1RC9uRE9nL3Y2U0FUdi9BQUFCQUtBQUFBTEpCSTBBQmdBeUFMQUFSVml3QlM4YnNRVWFQbG13QUVWWXNBQXZHN0VBRUQ1WnNnUUFCUkVTT2JBRUw3SURBUW9yV0NIWUcvUlpNREVoSXhFRk5TVXpBc201L3BBQ0NoOERwb3VveWdBQkFJTUFBQVFnQktBQUdBQlVzZ2taR2hFU09RQ3dBRVZZc0JFdkc3RVJHajVac0FCRldMQUFMeHV4QUJBK1diSVhBUW9yV0NIWUcvUlpzQUxRc2hZWEVSRVNPYklERVJZUkVqbXdFUkN5Q1FFS0sxZ2gyQnYwV2JBUkVMQU0wREF4SVNFMUFUWTNOelFtSXlJR0ZTTTBOall6TWhZVkZBY0JJUVFnL0ljQi9YMEtBMzFtZXBXNWVOSit1K0hGL29ZQ2VJTUJ5WE5VTlZSc2puVnd2Mnk0bUxHMC9xd0FBUUNLQUFBRGhRWEVBQWNBTXJJRENBa1JFamtBc0FCRldMQUdMeHV4QmhvK1diQUFSVml3QkM4YnNRUVFQbG13QmhDeUFnRUtLMWdoMkJ2MFdUQXhBVE1SSVJFakVTRUN6TG45dnJrQ1FnWEUvakQ4REFTTkFBRUFELzZqQTk0RWpRQVlBRTRBc0FzdnNBQkZXTEFDTHh1eEFobytXYklCQVFvcldDSFlHL1Jac0FUUXNnVUxBaEVTT2JBRkw3QUxFTElRQVFvcldDSFlHL1Jac0FVUXNoY0JDaXRZSWRnYjlGbXlHQmNGRVJJNU1ERUJJVFVoRlFFV0ZoVVVBQ01pSnpjV016STJOVFFtSXlNMUF1VDlkQU55L29DeTR2N00vOHJTTktXeHROZTV3RHdEOUpsMi9td1k5clA1L3RwbmkxaktwYXVsWndBQ0FENyt0Z1NnQkkwQUNnQU9BRXNBc0FCRldMQUpMeHV4Q1JvK1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBWXZHN0VHRUQ1WnNnQUJDaXRZSWRnYjlGbXdCaEN3QmRDd0JTK3dBQkN3RE5DeURRa0NFUkk1TURFbE14VWpFU01SSVRVQk13RWhFUWNEMjhYRnV2MGRBdGJIL1R3Q0NoeVdsLzYzQVVsdEJDSDhDUUw4TlFELy93QlFBbzBDblFXNEF3Y0IxQUFBQXBnQUV3Q3dBRVZZc0Fvdkc3RUtIRDVac0JEUU1ERUEvLzhBTmdLWUFyc0ZyUU1IQWRnQUFBS1lBQk1Bc0FCRldMQUpMeHV4Q1J3K1diQU4wREF4QVAvL0FGc0NqUUtuQmEwREJ3SFpBQUFDbUFBUUFMQUFSVml3QVM4YnNRRWNQbGt3TWYvL0FGWUNqUUtyQmJZREJ3SGFBQUFDbUFBVEFMQUFSVml3QUM4YnNRQWNQbG13Rk5Bd01RRC8vd0E2QXBnQ3BRV3RBd2NCMndBQUFwZ0FFQUN3QUVWWXNBVXZHN0VGSEQ1Wk1ESC8vd0JQQW8wQ253VzRBd2NCM0FBQUFwZ0FHUUN3QUVWWXNCRXZHN0VSSEQ1WnNCZlFzQkVRc0IvUU1ERUEvLzhBU1FLUkFwVUZ1QU1IQWQwQUFBS1lBQk1Bc0FCRldMQUlMeHV4Q0J3K1diQVowREF4QUFBQkFHWCtvQVFGQkl3QUd3Qk9BTEFOTDdBQVJWaXdBUzhic1FFYVBsbXlCQUVLSzFnaDJCdjBXYklIRFFFUkVqbXdCeSt5R0FFS0sxZ2gyQnYwV2JJRkJ4Z1JFam13RFJDeUVnRUtLMWdoMkJ2MFdiQUhFTEFiMERBeEV4TWhGU0VETmpjMkVoVVVBQ01pSnpjV016STJOVFFtSXlJR0I0Wm1BeFQ5ZmpadmxjangvdUR4NEs4Nmd0T1p2NldIYW5VaUFYUURHS3YrZEVBQ0F2NzE0ZS8rNG5LTFpjK2tqN1k2VXdBQUFRQksvcllEOGdTTkFBWUFKUUN3QVMrd0FFVllzQVV2RzdFRkdqNVpzZ01CQ2l0WUlkZ2I5Rm15QUFNRkVSSTVNREVCQVNNQklUVWhBL0w5b0xvQ1YvMGJBNmdFSS9xVEJUK1lBQUlBWVAvd0JtMEVuUUFUQUIwQW1ySVZIaDhSRWptd0ZSQ3dDdEFBc0FCRldMQUpMeHV4Q1JvK1diQUFSVml3Q3k4YnNRc2FQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFBTHh1eEFCQStXYkFMRUxJTUFRb3JXQ0hZRy9SWnNBQVFzQS9Rc0E4dnNoOFBBVjJ5M3c4QlhiSVFBUW9yV0NIWUcvUlpzQUFRc2hNQkNpdFlJZGdiOUZtd0FoQ3lGQUVLSzFnaDJCdjBXYkFKRUxJWEFRb3JXQ0hZRy9SWk1ERWhJUVVpQUJFMUVBQXpCU0VWSVJFaEZTRVJJUVUzRVNjaUJoVVZGQllHYmYxai9vN2wvdWNCRitVQld3S3YvWnNDRlAzc0Ftejc4ZXJzbHErd0VBRXlBUWMrQVFJQk5CQ1ovcktZL29rTkJ3Tm5DZGJGUXNQWEFBSUFndjZwQkQ4RW9RQVlBQ1VBU3dDd0ZDK3dBRVZZc0F3dkc3RU1HajVac0JRUXNnQUJDaXRZSWRnYjlGbXlCUlFNRVJJNXNBVXZzZ01GREJFU09iSWFBUW9yV0NIWUcvUlpzQXdRc2lBQkNpdFlJZGdiOUZrd01RVXlOamNHSXlJQ05UUTJOak15QUJNVkZBSUVJeUluTnhZVE1qWTNOVFFtSXlJR0ZSUVdBZCt4M0JWM3Q5TC9kZEtFNndFRkFwTCs4NitmZGlaNjRHbWZJcUdTZjVpanYvVFphUUVVNHB6c2Z2N2MvdmI2M1A2NnJqeU9NZ0g4WEZLVXhjWERxNVhKQUFBQ0FIai82d1NKQktFQUN3QVpBRGtBc0FCRldMQUlMeHV4Q0JvK1diQUFSVml3QXk4YnNRTVFQbG13Q0JDeUR3RUtLMWdoMkJ2MFdiQURFTElXQVFvcldDSFlHL1JaTURFQkVBQWdBQU0xRUFBZ0FCTW5OQ1lqSWdZSEZSUVdNekkyTndTSi91aitJdjdtQVFFWkFkNEJHUUc2c3AyYnNnSzJtNXF4QWdJOC91cit4UUU4QVJRVUFSUUJQdjdFL3VzTnl1TGd4VFRKNWQzS0FQLy8vN1QrU3dGbEJEb0FCZ0NiQUFELy8vKzAva3NCWlFRNkFBWUFtd0FBLy84QW13QUFBVlVFT2dBR0FJd0FBUC8vLy9yK1dRRmFCRG9BSmdDTUFBQUFCZ0NqeUFyLy93Q2JBQUFCVlFRNkFBWUFqQUFBLy84QWh2NnNBV0VFT2dBbUFJd0FBQUFIQUt3RFRnQUtBQUVBaXYvc0Eva0VuUUFoQUZ3QXNBQkZXTEFWTHh1eEZSbytXYkFBUlZpd0VDOGJzUkFRUGxtd0FFVllzQjh2RzdFZkVENVpzZ0lCQ2l0WUlkZ2I5Rm15R1I4VkVSSTVzQmt2c1FnS0sxallHOXhac0JrUXNBclFzQlVRc2cwQkNpdFlJZGdiOUZrd01TVVdNekkyTlRRbUl5TTFFeVlqSWdNUkl4RTJOak15RmhjQkZoWVZGQVlqSWljQncxSllZWEtJaDFUdFRtUFRCTGdCeGNscncyWCs3cW0yMTdWM2FMVXplMk5pVllrQkp6Nys5ZjBHQXZYUzFsVmkvcllQbzRhc3pERUEvLzhBSlFJZkFnMEN0Z0lHQUJFQUFBQUNBQ1VBQUFUa0JiQUFEd0FkQUdZQXNBQkZXTEFGTHh1eEJSdytXYkFBUlZpd0FDOGJzUUFRUGxteUJBQUZFUkk1c0FRdnNzOEVBVjJ5THdRQlhiS2ZCQUZ4c2dFQkNpdFlJZGdiOUZtd0VkQ3dBQkN5RWdFS0sxZ2gyQnYwV2JBRkVMSWJBUW9yV0NIWUcvUlpzQVFRc0J6UU1ERXpFU00xTXhFaE1nUVNGeFVVQWdRSEV5RVJNeklTTnpVMEFpY2pFU0hIb3FJQm03NEJKSjhCbi83WnhFZis1c25lOXdIcDF1QUJHZ0thbHdKL3FQN0t5VjNPL3NxbUFnS2EvZ01CRXZsZCtBRVRBdjRmQUFBQ0FDVUFBQVRrQmJBQUR3QWRBR1lBc0FCRldMQUZMeHV4QlJ3K1diQUFSVml3QUM4YnNRQVFQbG15QkFBRkVSSTVzQVF2c3M4RUFWMnlMd1FCWGJLZkJBRnhzZ0VCQ2l0WUlkZ2I5Rm13RWRDd0FCQ3lFZ0VLSzFnaDJCdjBXYkFGRUxJYkFRb3JXQ0hZRy9SWnNBUVFzQnpRTURFekVTTTFNeEVoTWdRU0Z4VVVBZ1FIRXlFUk16SVNOelUwQWljakVTSEhvcUlCbTc0QkpKOEJuLzdaeEVmKzVzbmU5d0hwMXVBQkdnS2Fsd0ovcVA3S3lWM08vc3FtQWdLYS9nTUJFdmxkK0FFVEF2NGZBQUFCQUFBQUFBUDlCZ0FBR1FCcUFMQVhMN0FBUlZpd0JDOGJzUVFZUGxtd0FFVllzQkF2RzdFUUVENVpzQUJGV0xBSUx4dXhDQkErV2JJdkZ3RmRzZzhYQVYyeUZSQVhFUkk1c0JVdnNoSUJDaXRZSWRnYjlGbXdBZEN5QWhBRUVSSTVzQVFRc2d3QkNpdFlJZGdiOUZtd0ZSQ3dHTkF3TVFFaEVUWXpJQk1SSXhFbUppTWlCZ2NSSXhFak5UTTFNeFVoQW56KzUzdkZBVmNEdVFGcGIxcUlKcm1xcXJrQkdRVFMvdVdYL24zOU5RTE1kWEJnVHZ6OUJOS1hsNWNBQVFBeEFBQUVsd1d3QUE4QVRBQ3dBRVZZc0Fvdkc3RUtIRDVac0FCRldMQUNMeHV4QWhBK1diSVBDZ0lSRWptd0R5K3lBQUVLSzFnaDJCdjBXYkFFMExBUEVMQUcwTEFLRUxJSUFRb3JXQ0hZRy9SWnNBelFNREVCSXhFakVTTTFNeEVoTlNFVklSRXpBNnJudjliVy9pMEVadjRzNXdNMy9Na0RONWNCUko2ZS9yd0FBZi8wLyt3Q2NBVkFBQjBBY3dDd0FFVllzQUV2RzdFQkdENVpzQUJGV0xBUkx4dXhFUkErV2JBQkVMQUEwTEFBTDdBQkVMSUVBUW9yV0NIWUcvUlpzQUVRc0FYUXNBVXZzZ0FGQVYyeUNBRUtLMWdoMkJ2MFdiQVJFTElNQVFvcldDSFlHL1Jac0FnUXNCWFFzQVVRc0JqUXNBUVFzQm5Rc0FFUXNCelFNREVCRVRNVkl4VXpGU01SRkJZek1qY1ZCaU1pSmpVUkl6VXpOU00xTXhFQmg4cks2ZWsyUVNBNFNVVjhmdHJheGNVRlFQNzZqN3FYL3JKQlFReVdGSmFLQVU2WHVvOEJCdi8vQUJ3QUFBVWRCelFDSmdBbEFBQUJCd0JFQVRBQk5nQVVBTEFBUlZpd0JDOGJzUVFjUGxteERBajBNREgvL3dBY0FBQUZIUWMwQWlZQUpRQUFBUWNBZFFHL0FUWUFGQUN3QUVWWXNBVXZHN0VGSEQ1WnNRMEk5REF4Ly84QUhBQUFCUjBITmdJbUFDVUFBQUVIQUowQXlRRTJBQlFBc0FCRldMQUVMeHV4QkJ3K1diRVBCdlF3TWYvL0FCd0FBQVVkQnlJQ0pnQWxBQUFCQndDa0FNVUJPZ0FVQUxBQVJWaXdCUzhic1FVY1BsbXhEZ1QwTURILy93QWNBQUFGSFFiN0FpWUFKUUFBQVFjQWFnRDVBVFlBRndDd0FFVllzQVF2RzdFRUhENVpzUkVFOUxBYjBEQXhBUC8vQUJ3QUFBVWRCNUVDSmdBbEFBQUJCd0NpQVZBQlFRQVhBTEFBUlZpd0JDOGJzUVFjUGxteERnYjBzQmpRTURFQS8vOEFIQUFBQlIwSGxBSW1BQ1VBQUFBSEFkOEJXZ0VpLy84QWQvNUVCTmdGeEFJbUFDY0FBQUFIQUhrQjB2LzMvLzhBcVFBQUJFWUhRQUltQUNrQUFBRUhBRVFBK3dGQ0FCUUFzQUJGV0xBR0x4dXhCaHcrV2JFTkNQUXdNZi8vQUtrQUFBUkdCMEFDSmdBcEFBQUJCd0IxQVlvQlFnQVVBTEFBUlZpd0JpOGJzUVljUGxteERnajBNREgvL3dDcEFBQUVSZ2RDQWlZQUtRQUFBUWNBblFDVUFVSUFGQUN3QUVWWXNBWXZHN0VHSEQ1WnNSQUc5REF4Ly84QXFRQUFCRVlIQndJbUFDa0FBQUVIQUdvQXhBRkNBQmNBc0FCRldMQUdMeHV4Qmh3K1diRVNCUFN3RzlBd01RRC8vLy9nQUFBQmdRZEFBaVlBTFFBQUFRY0FSUCtuQVVJQUZBQ3dBRVZZc0FJdkc3RUNIRDVac1FVSTlEQXgvLzhBc0FBQUFsRUhRQUltQUMwQUFBRUhBSFVBTlFGQ0FCUUFzQUJGV0xBREx4dXhBeHcrV2JFR0NQUXdNZi8vLytrQUFBSkdCMElDSmdBdEFBQUJCd0NkLzBBQlFnQVVBTEFBUlZpd0FpOGJzUUljUGxteENBYjBNREgvLy8vV0FBQUNYd2NIQWlZQUxRQUFBUWNBYXY5d0FVSUFGd0N3QUVWWXNBSXZHN0VDSEQ1WnNRb0U5TEFVMERBeEFQLy9BS2tBQUFVSUJ5SUNKZ0F5QUFBQkJ3Q2tBUHNCT2dBVUFMQUFSVml3Qmk4YnNRWWNQbG14RFFUME1ESC8vd0IyLyt3RkNRYzJBaVlBTXdBQUFRY0FSQUZTQVRnQUZBQ3dBRVZZc0Ewdkc3RU5IRDVac1NFSTlEQXgvLzhBZHYvc0JRa0hOZ0ltQURNQUFBRUhBSFVCNFFFNEFCUUFzQUJGV0xBTkx4dXhEUncrV2JFaUNQUXdNZi8vQUhiLzdBVUpCemdDSmdBekFBQUJCd0NkQU9zQk9BQVVBTEFBUlZpd0RTOGJzUTBjUGxteElnYjBNREgvL3dCMi8rd0ZDUWNrQWlZQU13QUFBUWNBcEFEbkFUd0FGQUN3QUVWWXNBMHZHN0VOSEQ1WnNTTUU5REF4Ly84QWR2L3NCUWtHL1FJbUFETUFBQUVIQUdvQkd3RTRBQmNBc0FCRldMQU5MeHV4RFJ3K1diRW5CUFN3TU5Bd01RRC8vd0NNLyt3RXFnYzBBaVlBT1FBQUFRY0FSQUVyQVRZQUZBQ3dBRVZZc0Fvdkc3RUtIRDVac1JRSTlEQXgvLzhBalAvc0JLb0hOQUltQURrQUFBRUhBSFVCdWdFMkFCUUFzQUJGV0xBU0x4dXhFaHcrV2JFVkNQUXdNZi8vQUl6LzdBU3FCellDSmdBNUFBQUJCd0NkQU1RQk5nQVVBTEFBUlZpd0NpOGJzUW9jUGxteEZ3YjBNREgvL3dDTS8rd0VxZ2I3QWlZQU9RQUFBUWNBYWdEMEFUWUFGd0N3QUVWWXNBb3ZHN0VLSEQ1WnNSa0U5TEFqMERBeEFQLy9BQThBQUFTN0J6UUNKZ0E5QUFBQkJ3QjFBWWdCTmdBVUFMQUFSVml3QVM4YnNRRWNQbG14Q3dqME1ESC8vd0J0Lyt3RDZnWCtBaVlBUlFBQUFRY0FSQURWQUFBQUZBQ3dBRVZZc0Jjdkc3RVhHRDVac1NvSjlEQXgvLzhBYmYvc0Erb0YvZ0ltQUVVQUFBRUhBSFVCWkFBQUFCUUFzQUJGV0xBWEx4dXhGeGcrV2JFckNmUXdNZi8vQUczLzdBUHFCZ0FDSmdCRkFBQUJCZ0NkYmdBQUZBQ3dBRVZZc0Jjdkc3RVhHRDVac1NzQjlEQXgvLzhBYmYvc0Erb0Y3QUltQUVVQUFBRUdBS1JxQkFBVUFMQUFSVml3Rnk4YnNSY1lQbG14TEFIME1ESC8vd0J0Lyt3RDZnWEZBaVlBUlFBQUFRY0FhZ0NlQUFBQUZ3Q3dBRVZZc0Jjdkc3RVhHRDVac1RBQjlMQTUwREF4QVAvL0FHMy83QVBxQmxzQ0pnQkZBQUFCQndDaUFQVUFDd0FYQUxBQVJWaXdGeThic1JjWVBsbXhMQVQwc0RiUU1ERUEvLzhBYmYvc0Erb0dYd0ltQUVVQUFBQUhBZDhBLy8vdC8vOEFYUDVFQSt3RVRnSW1BRWNBQUFBSEFIa0JQLy8zLy84QVhmL3NBL01GL2dJbUFFa0FBQUVIQUVRQXhRQUFBQlFBc0FCRldMQUlMeHV4Q0JnK1diRWZDZlF3TWYvL0FGMy83QVB6QmY0Q0pnQkpBQUFCQndCMUFWUUFBQUFVQUxBQVJWaXdDQzhic1FnWVBsbXhJQW4wTURILy93QmQvK3dEOHdZQUFpWUFTUUFBQVFZQW5WNEFBQlFBc0FCRldMQUlMeHV4Q0JnK1diRWdBZlF3TWYvL0FGMy83QVB6QmNVQ0pnQkpBQUFCQndCcUFJNEFBQUFYQUxBQVJWaXdDQzhic1FnWVBsbXhKUUgwc0M3UU1ERUEvLy8veGdBQUFXY0YvUUltQUl3QUFBRUdBRVNOL3dBVUFMQUFSVml3QWk4YnNRSVlQbG14QlFuME1ESC8vd0NXQUFBQ053WDlBaVlBakFBQUFRWUFkUnYvQUJRQXNBQkZXTEFETHh1eEF4ZytXYkVHQ2ZRd01mLy8vODhBQUFJc0JmOENKZ0NNQUFBQkJ3Q2QveWIvL3dBVUFMQUFSVml3QWk4YnNRSVlQbG14Q0FIME1ESC8vLys4QUFBQ1JRWEVBaVlBakFBQUFRY0FhdjlXLy84QUZ3Q3dBRVZZc0FJdkc3RUNHRDVac1FzQjlMQVUwREF4QVAvL0FJd0FBQVBmQmV3Q0pnQlNBQUFCQmdDa1lRUUFGQUN3QUVWWXNBTXZHN0VER0Q1WnNSVUI5REF4Ly84QVcvL3NCRFFGL2dJbUFGTUFBQUVIQUVRQXp3QUFBQlFBc0FCRldMQUVMeHV4QkJnK1diRWRDZlF3TWYvL0FGdi83QVEwQmY0Q0pnQlRBQUFCQndCMUFWNEFBQUFVQUxBQVJWaXdCQzhic1FRWVBsbXhIZ24wTURILy93QmIvK3dFTkFZQUFpWUFVd0FBQVFZQW5XZ0FBQlFBc0FCRldMQUVMeHV4QkJnK1diRWVBZlF3TWYvL0FGdi83QVEwQmV3Q0pnQlRBQUFCQmdDa1pBUUFGQUN3QUVWWXNBUXZHN0VFR0Q1WnNSOEI5REF4Ly84QVcvL3NCRFFGeFFJbUFGTUFBQUVIQUdvQW1BQUFBQmNBc0FCRldMQUVMeHV4QkJnK1diRWpBZlN3TE5Bd01RRC8vd0NJLyt3RDNBWCtBaVlBV1FBQUFRY0FSQURIQUFBQUZBQ3dBRVZZc0Fjdkc3RUhHRDVac1JJSjlEQXgvLzhBaVAvc0E5d0YvZ0ltQUZrQUFBRUhBSFVCVmdBQUFCUUFzQUJGV0xBTkx4dXhEUmcrV2JFVENmUXdNZi8vQUlqLzdBUGNCZ0FDSmdCWkFBQUJCZ0NkWUFBQUZBQ3dBRVZZc0Fjdkc3RUhHRDVac1JVQjlEQXgvLzhBaVAvc0E5d0Z4UUltQUZrQUFBRUhBR29Ba0FBQUFCY0FzQUJGV0xBSEx4dXhCeGcrV2JFWUFmU3dJZEF3TVFELy93QVcva3NEc0FYK0FpWUFYUUFBQVFjQWRRRWJBQUFBRkFDd0FFVllzQUV2RzdFQkdENVpzUklKOURBeC8vOEFGdjVMQTdBRnhRSW1BRjBBQUFFR0FHcFZBQUFYQUxBQVJWaXdEeThic1E4WVBsbXhGd0gwc0NEUU1ERUEvLzhBSEFBQUJSMEc3Z0ltQUNVQUFBRUhBSEFBeHdFK0FCTUFzQUJGV0xBRUx4dXhCQncrV2JBTTNEQXhBUC8vQUczLzdBUHFCYmdDSmdCRkFBQUJCZ0J3YkFnQUV3Q3dBRVZZc0Jjdkc3RVhHRDVac0NyY01ERUEvLzhBSEFBQUJSMEhEZ0ltQUNVQUFBRUhBS0FBOUFFM0FCTUFzQUJGV0xBRUx4dXhCQncrV2JBTjNEQXhBUC8vQUczLzdBUHFCZGdDSmdCRkFBQUJCd0NnQUprQUFRQVRBTEFBUlZpd0Z5OGJzUmNZUGxtd0s5d3dNUUFBQWdBYy9rOEZIUVd3QUJZQUdRQm5BTEFBUlZpd0ZpOGJzUlljUGxtd0FFVllzQlF2RzdFVUVENVpzQUJGV0xBQkx4dXhBUkErV2JBQVJWaXdEQzhic1F3U1BsbXlCd01LSzFnaDJCdjBXYkFCRUxBUjBMQVJMN0lYRkJZUkVqbXdGeSt5RXdFS0sxZ2gyQnYwV2JJWkZoUVJFamt3TVFFQkl3Y0dGUlF6TWpjWEJpTWlKalUwTndNaEF5TUJBeUVEQXZBQ0xTWTZjVTR3TkExR1dsbG5xWWY5bm9uR0FpeWpBZS80QmJENlVDMWJWa2dhZVN4b1ZwQnNBWFAraEFXdy9Hb0NxUUFBQWdCdC9rOEQ2Z1JPQUMwQU53Q1FBTEFBUlZpd0Z5OGJzUmNZUGxtd0FFVllzQVF2RzdFRUVENVpzQUJGV0xBZUx4dXhIaEErV2JBQVJWaXdLUzhic1NrU1BsbXdIaEN3QU5Dd0FDK3lBZ1FYRVJJNXNnc1hCQkVTT2JBTEw3QVhFTElQQVFvcldDSFlHL1Jac2hJTEZ4RVNPYkFwRUxJa0F3b3JXQ0hZRy9SWnNBUVFzaTRCQ2l0WUlkZ2I5Rm13Q3hDeU13RUtLMWdoMkJ2MFdUQXhKU1luQmlNaUpqVTBKRE16TlRRbUl5SUdGU00wTmpZek1oWVhFUlFYRlNNSEJoVVVNekkzRndZaklpWTFOQ2N5TmpjMUl5QVZGQllESkE4SGdiT2d6UUVCNmJSMGNXT0d1blBGZHJ2VUJDWWhPbkZPTURRTlJscFpaNGhYbkNPUi9xeDBCeVpGaHJXTHFidFZZWE5rUjFHWFdMdWsvZzZWV0JBdFcxWklHbmtzYUZhUThGcEkzc2RYWWdELy93QjMvK3dFMkFkVkFpWUFKd0FBQVFjQWRRSEdBVmNBRkFDd0FFVllzQXN2RzdFTEhENVpzUjhJOURBeC8vOEFYUC9zQSt3Ri9nSW1BRWNBQUFFSEFIVUJNd0FBQUJRQXNBQkZXTEFRTHh1eEVCZytXYkVnQ2ZRd01mLy9BSGYvN0FUWUIxY0NKZ0FuQUFBQkJ3Q2RBTkFCVndBVUFMQUFSVml3Q3k4YnNRc2NQbG14SHdiME1ESC8vd0JjLyt3RDdBWUFBaVlBUndBQUFRWUFuVDBBQUJRQXNBQkZXTEFRTHh1eEVCZytXYkVnQWZRd01mLy9BSGYvN0FUWUJ4a0NKZ0FuQUFBQkJ3Q2hBYTRCVndBVUFMQUFSVml3Q3k4YnNRc2NQbG14SXdUME1ESC8vd0JjLyt3RDdBWENBaVlBUndBQUFRY0FvUUViQUFBQUZBQ3dBRVZZc0JBdkc3RVFHRDVac1NRQjlEQXgvLzhBZC8vc0JOZ0hWd0ltQUNjQUFBRUhBSjRBNWdGWUFCUUFzQUJGV0xBTEx4dXhDeHcrV2JFaEJ2UXdNZi8vQUZ6LzdBUHNCZ0FDSmdCSEFBQUJCZ0NlVXdFQUZBQ3dBRVZZc0JBdkc3RVFHRDVac1NJQjlEQXgvLzhBcVFBQUJNWUhRZ0ltQUNnQUFBRUhBSjRBbndGREFCUUFzQUJGV0xBQkx4dXhBUncrV2JFYkJ2UXdNZi8vQUYvLzdBVXJCZ0lBSmdCSUFBQUJCd0dpQTlRRkV3QklBTEx3SHdGeXNoOGZBVjJ5bng4QlhiSWZId0Z4dE04ZjN4OENjYkxmSHdGeXNsOGZBWEt5VHg4QmNiTFBId0ZkdEU4Zlh4OENYYkpnSHdGZHN1QWZBWEd5NEI4QlhUQXgvLzhBcVFBQUJFWUcrZ0ltQUNrQUFBRUhBSEFBa2dGS0FCTUFzQUJGV0xBR0x4dXhCaHcrV2JBTjNEQXhBUC8vQUYzLzdBUHpCYmdDSmdCSkFBQUJCZ0J3WEFnQUV3Q3dBRVZZc0Fndkc3RUlHRDVac0IvY01ERUEvLzhBcVFBQUJFWUhHZ0ltQUNrQUFBRUhBS0FBdndGREFCTUFzQUJGV0xBR0x4dXhCaHcrV2JBUDNEQXhBUC8vQUYzLzdBUHpCZGdDSmdCSkFBQUJCd0NnQUlrQUFRQVRBTEFBUlZpd0NDOGJzUWdZUGxtd0lkd3dNUUQvL3dDcEFBQUVSZ2NFQWlZQUtRQUFBUWNBb1FGeUFVSUFGQUN3QUVWWXNBWXZHN0VHSEQ1WnNSTUU5REF4Ly84QVhmL3NBL01Gd2dJbUFFa0FBQUVIQUtFQlBBQUFBQlFBc0FCRldMQUlMeHV4Q0JnK1diRWxBZlF3TVFBQkFLbitUd1JHQmJBQUd3QjJBTEFBUlZpd0ZpOGJzUlljUGxtd0FFVllzQlV2RzdFVkVENVpzQUJGV0xBUEx4dXhEeEkrV2JBQVJWaXdCQzhic1FRUVBsbXlHaFVXRVJJNXNCb3ZzZ0VCQ2l0WUlkZ2I5Rm13RlJDeUFnRUtLMWdoMkJ2MFdiQVBFTElLQXdvcldDSFlHL1Jac0JZUXNoa0JDaXRZSWRnYjlGa3dNUUVoRVNFVkl3Y0dGUlF6TWpjWEJpTWlKalUwTnlFUklSVWhFU0VENFAySkF0MUpPbkZPTURRTlJscFpaNXY5WFFPVC9TMENkd0toL2Z5ZExWdFdTQnA1TEdoV2lta0ZzSjcrTEFBQUFnQmQvbWdEOHdST0FDVUFMUUI2QUxBQVJWaXdHaThic1JvWVBsbXdBRVZZc0Ewdkc3RU5FajVac0FCRldMQVNMeHV4RWhBK1diQUUwTEFORUxJSUF3b3JXQ0hZRy9SWnNpb1NHaEVTT2JBcUw3Uy9LczhxQWwyeUhnRUtLMWdoMkJ2MFdiQVNFTElpQVFvcldDSFlHL1Jac2lVU0doRVNPYkFhRUxJbUFRb3JXQ0hZRy9SWk1ERWxCZ2N6QndZVkZETXlOeGNHSXlJbU5UUTNKZ0ExTlRRMk5qTXlFaEVWSVJZV016STJOd0VpQmdjaE5TWW1BK1ZIY3dFNmNVNHdOQTFHV2xsbll0cis5WHZkZ2RQcS9TTUVzNHBpaURQK3duQ1lFZ0llQ0lpOWJqWXRXMVpJR25rc2FGWnNXZ1FCSWU4aG9mMlAvdXIrL1UyZ3hWQkNBcUdqa3c2Tm13RC8vd0NwQUFBRVJnZENBaVlBS1FBQUFRY0FuZ0NxQVVNQUZBQ3dBRVZZc0FZdkc3RUdIRDVac1JFRzlEQXgvLzhBWGYvc0EvTUdBQUltQUVrQUFBRUdBSjUwQVFBVUFMQUFSVml3Q0M4YnNRZ1lQbG14SWdIME1ESC8vd0I2Lyt3RTNBZFhBaVlBS3dBQUFRY0FuUURJQVZjQUZBQ3dBRVZZc0Fzdkc3RUxIRDVac1NJRzlEQXgvLzhBWVA1V0EvSUdBQUltQUVzQUFBRUdBSjFWQUFBVUFMQUFSVml3QXk4YnNRTVlQbG14SndIME1ESC8vd0I2Lyt3RTNBY3ZBaVlBS3dBQUFRY0FvQUR6QVZnQUV3Q3dBRVZZc0Fzdkc3RUxIRDVac0NMY01ERUEvLzhBWVA1V0EvSUYyQUltQUVzQUFBRUhBS0FBZ0FBQkFCTUFzQUJGV0xBREx4dXhBeGcrV2JBbjNEQXhBUC8vQUhyLzdBVGNCeGtDSmdBckFBQUJCd0NoQWFZQlZ3QVVBTEFBUlZpd0N5OGJzUXNjUGxteEp3VDBNREgvL3dCZy9sWUQ4Z1hDQWlZQVN3QUFBUWNBb1FFekFBQUFGQUN3QUVWWXNBTXZHN0VER0Q1WnNTd0I5REF4Ly84QWV2My9CTndGeEFJbUFDc0FBQUFIQWFJQm8vNmcvLzhBWVA1V0EvSUdrd0ltQUVzQUFBRUhBYmtCS3dCWUFCTUFzQUJGV0xBREx4dXhBeGcrV2JBcTNEQXhBUC8vQUtrQUFBVUlCMElDSmdBc0FBQUJCd0NkQVBFQlFnQVVBTEFBUlZpd0J5OGJzUWNjUGxteEVBYjBNREgvL3dDTUFBQUQzd2RCQWlZQVRBQUFBUWNBblFBZEFVRUFDUUN3RVMrd0ZOd3dNUUQvLy8rM0FBQUNlZ2N1QWlZQUxRQUFBUWNBcFA4OEFVWUFGQUN3QUVWWXNBTXZHN0VESEQ1WnNRY0U5REF4Ly8vL25RQUFBbUFGNmdJbUFJd0FBQUVIQUtUL0lnQUNBQlFBc0FCRldMQURMeHV4QXhnK1diRUhBZlF3TWYvLy83WUFBQUtBQnZvQ0pnQXRBQUFCQndCdy96NEJTZ0FUQUxBQVJWaXdBaThic1FJY1BsbXdCZHd3TVFELy8vK2NBQUFDWmdXMkFpWUFqQUFBQVFjQWNQOGtBQVlBRXdDd0FFVllzQUl2RzdFQ0dENVpzQVhjTURFQS8vLy83QUFBQWtNSEdnSW1BQzBBQUFFSEFLRC9hd0ZEQUJNQXNBQkZXTEFDTHh1eEFodytXYkFIM0RBeEFQLy8vOUlBQUFJcEJkY0NKZ0NNQUFBQkJ3Q2cvMUVBQUFBVEFMQUFSVml3QWk4YnNRSVlQbG13Qjl3d01RRC8vd0FZL2xnQmVBV3dBaVlBTFFBQUFBWUFvK1lKLy8vLysvNVBBV2dGeEFJbUFFMEFBQUFHQUtQSkFQLy9BS29BQUFHRkJ3UUNKZ0F0QUFBQkJ3Q2hBQjBCUWdBVUFMQUFSVml3QWk4YnNRSWNQbG14Q3dUME1ESC8vd0MzLyt3RitRV3dBQ1lBTFFBQUFBY0FMZ0l0QUFELy93Q04va3NEU2dYRUFDWUFUUUFBQUFjQVRnSHhBQUQvL3dBMS8rd0VnZ2MxQWlZQUxnQUFBUWNBblFGOEFUVUFGQUN3QUVWWXNBQXZHN0VBSEQ1WnNSUUc5REF4Ly8vL3RQNUxBamtGMkFJbUFKc0FBQUVIQUozL00vL1lBQlFBc0FCRldMQU5MeHV4RFJnK1diRVNCUFF3TWYvL0FLbjkvd1VGQmJBQ0pnQXZBQUFBQndHaUFaVCtvUC8vQUkzOS93UU1CZ0FDSmdCUEFBQUFCd0dpQVJIK29QLy9BS0VBQUFRY0J5OENKZ0F3QUFBQkJ3QjFBQ1lCTVFBVUFMQUFSVml3QlM4YnNRVWNQbG14Q0FqME1ESC8vd0NUQUFBQ05BZVVBaVlBVUFBQUFRY0FkUUFZQVpZQUZBQ3dBRVZZc0FNdkc3RURIajVac1FZSjlEQXgvLzhBcWYzL0JCd0ZzQUltQURBQUFBQUhBYUlCYlA2Zy8vOEFWLzMvQVZVR0FBSW1BRkFBQUFBSEFhTC8rLzZnLy84QXFRQUFCQndGc1FJbUFEQUFBQUVIQWFJQjFRVENBQkFBc0FCRldMQUtMeHV4Q2h3K1dUQXgvLzhBbkFBQUFxMEdBZ0FtQUZBQUFBRUhBYUlCVmdVVEFGQUFzaDhJQVYyeW53Z0JYYlFmQ0M4SUFuR3lyd2dCY2JRdkNEOElBbkt5M3dnQmNyWmZDRzhJZndnRGNyVFBDTjhJQW5HeVR3Z0JjYkxQQ0FGZHRFOElYd2dDWGJKZ0NBRmRzdkFJQVhJd01mLy9BS2tBQUFRY0JiQUNKZ0F3QUFBQUJ3Q2hBYno5eGYvL0FKd0FBQUtnQmdBQUpnQlFBQUFBQndDaEFUajl0di8vQUtrQUFBVUlCelFDSmdBeUFBQUJCd0IxQWZVQk5nQVVBTEFBUlZpd0NDOGJzUWdjUGxteERBajBNREgvL3dDTUFBQUQzd1grQWlZQVVnQUFBUWNBZFFGYkFBQUFGQUN3QUVWWXNBTXZHN0VER0Q1WnNSUUo5REF4Ly84QXFmMy9CUWdGc0FJbUFESUFBQUFIQWFJQjBQNmcvLzhBalAzL0E5OEVUZ0ltQUZJQUFBQUhBYUlCTS82Zy8vOEFxUUFBQlFnSE5nSW1BRElBQUFFSEFKNEJGUUUzQUJRQXNBQkZXTEFHTHh1eEJodytXYkVQQnZRd01mLy9BSXdBQUFQZkJnQUNKZ0JTQUFBQkJnQ2Vld0VBRkFDd0FFVllzQU12RzdFREdENVpzUllCOURBeC8vLy92QUFBQTk4R0JBSW1BRklBQUFFSEFhTC9ZQVVWQUFZQXNCY3ZNREgvL3dCMi8rd0ZDUWJ3QWlZQU13QUFBUWNBY0FEcEFVQUFFd0N3QUVWWXNBMHZHN0VOSEQ1WnNDSGNNREVBLy84QVcvL3NCRFFGdUFJbUFGTUFBQUVHQUhCbUNBQVRBTEFBUlZpd0JDOGJzUVFZUGxtd0hkd3dNUUQvL3dCMi8rd0ZDUWNRQWlZQU13QUFBUWNBb0FFV0FUa0FFd0N3QUVWWXNBMHZHN0VOSEQ1WnNDTGNNREVBLy84QVcvL3NCRFFGMkFJbUFGTUFBQUVIQUtBQWt3QUJBQk1Bc0FCRldMQUVMeHV4QkJnK1diQWYzREF4QVAvL0FIYi83QVVKQnpjQ0pnQXpBQUFCQndDbEFXc0JPQUFYQUxBQVJWaXdEUzhic1EwY1BsbXhKZ2owc0NMUU1ERUEvLzhBVy8vc0JEUUYvd0ltQUZNQUFBRUhBS1VBNkFBQUFCY0FzQUJGV0xBRUx4dXhCQmcrV2JFaUNmU3dIdEF3TVFELy93Q29BQUFFeVFjMEFpWUFOZ0FBQVFjQWRRR0FBVFlBRkFDd0FFVllzQVF2RzdFRUhENVpzUm9JOURBeC8vOEFqQUFBQXRJRi9nSW1BRllBQUFFSEFIVUF0Z0FBQUJRQXNBQkZXTEFMTHh1eEN4ZytXYkVRQ2ZRd01mLy9BS2o5L3dUSkJiQUNKZ0EyQUFBQUJ3R2lBV1Arb1AvL0FGUDkvd0tYQkU0Q0pnQldBQUFBQndHaS8vZitvUC8vQUtnQUFBVEpCellDSmdBMkFBQUJCd0NlQUtBQk53QVVBTEFBUlZpd0JDOGJzUVFjUGxteEhRYjBNREgvL3dCakFBQUN6UVlBQWlZQVZnQUFBUVlBbnRjQkFCUUFzQUJGV0xBTEx4dXhDeGcrV2JFU0FmUXdNZi8vQUZELzdBUnlCellDSmdBM0FBQUJCd0IxQVkwQk9BQVVBTEFBUlZpd0JpOGJzUVljUGxteEtRajBNREgvL3dCZi8rd0R1d1grQWlZQVZ3QUFBUWNBZFFGUkFBQUFGQUN3QUVWWXNBa3ZHN0VKR0Q1WnNTa0o5REF4Ly84QVVQL3NCSElIT0FJbUFEY0FBQUVIQUowQWx3RTRBQlFBc0FCRldMQUdMeHV4Qmh3K1diRXBCdlF3TWYvL0FGLy83QU83QmdBQ0pnQlhBQUFCQmdDZFd3QUFGQUN3QUVWWXNBa3ZHN0VKR0Q1WnNTa0I5REF4Ly84QVVQNU5CSElGeEFJbUFEY0FBQUFIQUhrQm53QUEvLzhBWC81RkE3c0VUZ0ltQUZjQUFBQUhBSGtCWGYvNC8vOEFVUDMvQkhJRnhBSW1BRGNBQUFBSEFhSUJkZjZnLy84QVgvMy9BN3NFVGdJbUFGY0FBQUFIQWFJQk0vNmcvLzhBVVAvc0JISUhPQUltQURjQUFBRUhBSjRBclFFNUFCUUFzQUJGV0xBR0x4dXhCaHcrV2JFckJ2UXdNZi8vQUYvLzdBTzdCZ0FDSmdCWEFBQUJCZ0NlY1FFQUZBQ3dBRVZZc0Frdkc3RUpHRDVac1NzQjlEQXgvLzhBTWYzL0JKY0ZzQUltQURnQUFBQUhBYUlCWnY2Zy8vOEFDZjMvQWxZRlFBSW1BRmdBQUFBSEFhSUF4ZjZnLy84QU1mNU5CSmNGc0FJbUFEZ0FBQUFIQUhrQmtBQUEvLzhBQ2Y1TkFwa0ZRQUltQUZnQUFBQUhBSGtBN3dBQS8vOEFNUUFBQkpjSE5nSW1BRGdBQUFFSEFKNEFvZ0UzQUJRQXNBQkZXTEFHTHh1eEJodytXYkVOQnZRd01mLy9BQW4vN0FMc0Jua0FKZ0JZQUFBQUJ3R2lBWlVGaXYvL0FJei83QVNxQnlJQ0pnQTVBQUFCQndDa0FNQUJPZ0FVQUxBQVJWaXdFaThic1JJY1BsbXhGZ1QwTURILy93Q0kvK3dEM0FYc0FpWUFXUUFBQVFZQXBGd0VBQlFBc0FCRldMQU5MeHV4RFJnK1diRVVBZlF3TWYvL0FJei83QVNxQnU0Q0pnQTVBQUFCQndCd0FNSUJQZ0FUQUxBQVJWaXdFaThic1JJY1BsbXdFOXd3TVFELy93Q0kvK3dEM0FXNEFpWUFXUUFBQVFZQWNGNElBQk1Bc0FCRldMQUhMeHV4QnhnK1diQVMzREF4QVAvL0FJei83QVNxQnc0Q0pnQTVBQUFCQndDZ0FPOEJOd0FUQUxBQVJWaXdDaThic1FvY1BsbXdGdHd3TVFELy93Q0kvK3dEM0FYWUFpWUFXUUFBQVFjQW9BQ0xBQUVBRXdDd0FFVllzQWN2RzdFSEdENVpzQlRjTURFQS8vOEFqUC9zQktvSGtRSW1BRGtBQUFFSEFLSUJTd0ZCQUJjQXNBQkZXTEFLTHh1eENodytXYkVXQnZTd0lOQXdNUUQvL3dDSS8rd0QzQVpiQWlZQVdRQUFBUWNBb2dEbkFBc0FGd0N3QUVWWXNBY3ZHN0VIR0Q1WnNSUUU5TEFlMERBeEFQLy9BSXovN0FTcUJ6VUNKZ0E1QUFBQkJ3Q2xBVVFCTmdBWEFMQUFSVml3RWk4YnNSSWNQbG14RlFqMHNCblFNREVBLy84QWlQL3NCQXdGL3dJbUFGa0FBQUVIQUtVQTRBQUFBQmNBc0FCRldMQU5MeHV4RFJnK1diRVRDZlN3RjlBd01RQUFBUUNNL25zRXFnV3dBQ0FBVXdDd0FFVllzQmd2RzdFWUhENVpzQUJGV0xBTkx4dXhEUkkrV2JBQVJWaXdFeThic1JNUVBsbXdHQkN3SU5DeUJCTWdFUkk1c0EwUXNnZ0RDaXRZSWRnYjlGbXdFeEN5SEFFS0sxZ2gyQnYwV1RBeEFSRUdCZ2NHRlJRek1qY1hCaU1pSmpVME53Y2lBQ2NSTXhFVUZqTXlOalVSQktvQmlvT2JUakEwRFVaYVdXZFBGdS8rNUFLK3JxR2pyUVd3L0NHVTRqdHlZRWdhZVN4b1ZtRlRBUUVDNGdQZy9DYWVyNjZlQTlzQUFRQ0kvazhENWdRNkFCOEFiUUN3QUVWWXNCY3ZHN0VYR0Q1WnNBQkZXTEFkTHh1eEhSZytXYkFBUlZpd0h5OGJzUjhRUGxtd0FFVllzQkl2RzdFU0VENVpzQUJGV0xBS0x4dXhDaEkrV2JJRkF3b3JXQ0hZRy9SWnNCOFFzQS9Rc0E4dnNoQVNIUkVTT2JBU0VMSWFBUW9yV0NIWUcvUlpNREVoQndZVkZETXlOeGNHSXlJbU5UUTNKd1lqSWlZbkVUTVJGRE15TnhFekVRUFNPbkZPTURRTlJscFpaNllFYk5HdHRRRzV5TlJHdVMxYlZrZ2FlU3hvVm85cVpYL0p4UUxBL1VYMm5nTVQrOGIvL3dBOUFBQUc3UWMyQWlZQU93QUFBUWNBblFIRkFUWUFGQUN3QUVWWXNBTXZHN0VESEQ1WnNSY0c5REF4Ly84QUt3QUFCZE1HQUFJbUFGc0FBQUVIQUowQkpBQUFBQlFBc0FCRldMQU1MeHV4REJnK1diRVBBZlF3TWYvL0FBOEFBQVM3QnpZQ0pnQTlBQUFCQndDZEFKSUJOZ0FVQUxBQVJWaXdBUzhic1FFY1BsbXhDd2IwTURILy93QVcva3NEc0FZQUFpWUFYUUFBQVFZQW5TVUFBQlFBc0FCRldMQVBMeHV4RHhnK1diRVVBZlF3TWYvL0FBOEFBQVM3QnZzQ0pnQTlBQUFCQndCcUFNSUJOZ0FYQUxBQVJWaXdDQzhic1FnY1BsbXhFQVQwc0JuUU1ERUEvLzhBVmdBQUJIb0hOQUltQUQ0QUFBRUhBSFVCaHdFMkFCUUFzQUJGV0xBSEx4dXhCeHcrV2JFTUNQUXdNZi8vQUZnQUFBT3pCZjRDSmdCZUFBQUJCd0IxQVNFQUFBQVVBTEFBUlZpd0J5OGJzUWNZUGxteERBbjBNREgvL3dCV0FBQUVlZ2I0QWlZQVBnQUFBUWNBb1FGdkFUWUFGQUN3QUVWWXNBY3ZHN0VISEQ1WnNSRUU5REF4Ly84QVdBQUFBN01Gd2dJbUFGNEFBQUVIQUtFQkNRQUFBQlFBc0FCRldMQUhMeHV4QnhnK1diRVJBZlF3TWYvL0FGWUFBQVI2QnpZQ0pnQStBQUFCQndDZUFLY0JOd0FVQUxBQVJWaXdCeThic1FjY1BsbXhEd2IwTURILy93QllBQUFEc3dZQUFpWUFYZ0FBQVFZQW5rRUJBQlFBc0FCRldMQUhMeHV4QnhnK1diRVBBZlF3TWYvLy8vSUFBQWRYQjBBQ0pnQ0JBQUFCQndCMUFza0JRZ0FVQUxBQVJWaXdCaThic1FZY1BsbXhGUWowTURILy93Qk8vK3dHZkFYL0FpWUFoZ0FBQVFjQWRRSjZBQUVBRkFDd0FFVllzQjB2RzdFZEdENVpzVUFKOURBeC8vOEFkditqQlIwSGZnSW1BSU1BQUFFSEFIVUI2UUdBQUJRQXNBQkZXTEFRTHh1eEVCdytXYkVzQ1BRd01mLy9BRnYvZWdRMEJmNENKZ0NKQUFBQkJ3QjFBVGNBQUFBVUFMQUFSVml3QkM4YnNRUVlQbG14S1FuME1ESC8vLysrQUFBRUh3U05BaVlCdlFBQUFRY0Izdjh2LzNnQUxBQ3lIeGdCY2JUZkdPOFlBbkcwSHhndkdBSmRzaDhZQVhLeVR4Z0JjYlR2R1A4WUFsMnlYeGdCWFRBeC8vLy92Z0FBQkI4RWpRSW1BYjBBQUFFSEFkNy9MLzk0QURZQXRPOFgveGNDWGJKUEZ3RnhzaDhYQVhLeTN4Y0Jjckp2RndGeXROOFg3eGNDY2JJZkZ3RnhzbDhYQVYyMEh4Y3ZGd0pkTURILy93QW9BQUFEL1FTTkFpWUJ6UUFBQVFZQjNrWGdBQTBBc2dNS0FWMnlzQW9CWFRBeEFQLy9BQk1BQUFSd0Jod0NKZ0c2QUFBQkJ3QkVBTlVBSGdBVUFMQUFSVml3QkM4YnNRUWFQbG14REFiME1ESC8vd0FUQUFBRWNBWWNBaVlCdWdBQUFRY0FkUUZrQUI0QUZBQ3dBRVZZc0FVdkc3RUZHajVac1EwRzlEQXgvLzhBRXdBQUJIQUdIZ0ltQWJvQUFBRUdBSjF1SGdBVUFMQUFSVml3QkM4YnNRUWFQbG14RHdUME1ESC8vd0FUQUFBRWNBWUtBaVlCdWdBQUFRWUFwR29pQUJRQXNBQkZXTEFGTHh1eEJSbytXYkVPQXZRd01mLy9BQk1BQUFSd0JlTUNKZ0c2QUFBQkJ3QnFBSjRBSGdBWEFMQUFSVml3QkM4YnNRUWFQbG14RWdMMHNCdlFNREVBLy84QUV3QUFCSEFHZVFJbUFib0FBQUVIQUtJQTlRQXBBQmNBc0FCRldMQUVMeHV4QkJvK1diRU9CdlN3R05Bd01RRC8vd0FUQUFBRWNBWjhBaVlCdWdBQUFBY0Izd0QvQUFyLy93Qmcva29FTUFTZEFpWUJ2QUFBQUFjQWVRRjAvLzMvL3dDS0FBQURyZ1ljQWlZQnZnQUFBUWNBUkFDb0FCNEFGQUN3QUVWWXNBWXZHN0VHR2o1WnNRMEc5REF4Ly84QWlnQUFBNjRHSEFJbUFiNEFBQUVIQUhVQk53QWVBQlFBc0FCRldMQUhMeHV4QnhvK1diRU9CdlF3TWYvL0FJb0FBQU91Qmg0Q0pnRytBQUFCQmdDZFFSNEFGQUN3QUVWWXNBWXZHN0VHR2o1WnNSQUU5REF4Ly84QWlnQUFBNjRGNHdJbUFiNEFBQUVHQUdweEhnQVhBTEFBUlZpd0JpOGJzUVlhUGxteEV3TDBzQnpRTURFQS8vLy92Z0FBQVY4R0hBSW1BY0lBQUFFR0FFU0ZIZ0FVQUxBQVJWaXdBaThic1FJYVBsbXhCUWIwTURILy93Q09BQUFDTHdZY0FpWUJ3Z0FBQVFZQWRSTWVBQlFBc0FCRldMQURMeHV4QXhvK1diRUdCdlF3TWYvLy84Y0FBQUlrQmg0Q0pnSENBQUFCQndDZC94NEFIZ0FVQUxBQVJWaXdBaThic1FJYVBsbXhDQVQwTURILy8vKzBBQUFDUFFYakFpWUJ3Z0FBQVFjQWF2OU9BQjRBRndDd0FFVllzQUl2RzdFQ0dqNVpzUXNDOUxBVTBEQXhBUC8vQUlvQUFBUllCZ29DSmdISEFBQUJCd0NrQUpVQUlnQVVBTEFBUlZpd0JpOGJzUVlhUGxteERRTDBNREgvL3dCZy8vQUVXZ1ljQWlZQnlBQUFBUWNBUkFEdUFCNEFGQUN3QUVWWXNBb3ZHN0VLR2o1WnNSMEc5REF4Ly84QVlQL3dCRm9HSEFJbUFjZ0FBQUVIQUhVQmZRQWVBQlFBc0FCRldMQUtMeHV4Q2hvK1diRWVCdlF3TWYvL0FHRC84QVJhQmg0Q0pnSElBQUFCQndDZEFJY0FIZ0FVQUxBQVJWaXdDaThic1FvYVBsbXhJQVQwTURILy93QmcvL0FFV2dZS0FpWUJ5QUFBQVFjQXBBQ0RBQ0lBRkFDd0FFVllzQW92RzdFS0dqNVpzUjhDOURBeC8vOEFZUC93QkZvRjR3SW1BY2dBQUFFSEFHb0F0d0FlQUJjQXNBQkZXTEFLTHh1eENobytXYkVqQXZTd0xOQXdNUUQvL3dCMC8vQUVDZ1ljQWlZQnpnQUFBUWNBUkFEUEFCNEFGQUN3QUVWWXNBa3ZHN0VKR2o1WnNSTUc5REF4Ly84QWRQL3dCQW9HSEFJbUFjNEFBQUVIQUhVQlhnQWVBQlFBc0FCRldMQVJMeHV4RVJvK1diRVVCdlF3TWYvL0FIVC84QVFLQmg0Q0pnSE9BQUFCQmdDZGFCNEFGQUN3QUVWWXNBa3ZHN0VKR2o1WnNSWUU5REF4Ly84QWRQL3dCQW9GNHdJbUFjNEFBQUVIQUdvQW1BQWVBQmNBc0FCRldMQUpMeHV4Q1JvK1diRVpBdlN3SXRBd01RRC8vd0FOQUFBRUhBWWNBaVlCMGdBQUFRY0FkUUV6QUI0QUZBQ3dBRVZZc0FFdkc3RUJHajVac1FzRzlEQXgvLzhBRXdBQUJIQUYxZ0ltQWJvQUFBRUdBSEJzSmdBVEFMQUFSVml3QkM4YnNRUWFQbG13RE53d01RRC8vd0FUQUFBRWNBWDJBaVlCdWdBQUFRY0FvQUNaQUI4QUZBQ3dBRVZZc0FRdkc3RUVHajVac1E0STlEQXhBQUlBRS81UEJIQUVqUUFXQUJrQVp3Q3dBRVZZc0FBdkc3RUFHajVac0FCRldMQVVMeHV4RkJBK1diQUFSVml3QVM4YnNRRVFQbG13QUVWWXNBd3ZHN0VNRWo1WnNnY0RDaXRZSWRnYjlGbXdBUkN3RWRDd0VTK3lGeFFBRVJJNXNCY3ZzaE1CQ2l0WUlkZ2I5Rm15R1FBVUVSSTVNREVCQVNNSEJoVVVNekkzRndZaklpWTFORGNESVFNakFRTWhBd0tZQWRnbU9uRk9NRFFOUmxwWlo3Qm8vZmh1dlFIZmVBR1J4d1NOKzNNdFcxWklHbmtzYUZhVWJBRUsvdWtFamYwaEFmMEEvLzhBWVAvd0JEQUdIQUltQWJ3QUFBRUhBSFVCYVFBZUFCUUFzQUJGV0xBTEx4dXhDeG8rV2JFZkJ2UXdNZi8vQUdELzhBUXdCaDRDSmdHOEFBQUJCZ0NkY3g0QUZBQ3dBRVZZc0Fzdkc3RUxHajVac1NFRTlEQXgvLzhBWVAvd0JEQUY0QUltQWJ3QUFBRUhBS0VCVVFBZUFCUUFzQUJGV0xBTEx4dXhDeG8rV2JFakF2UXdNZi8vQUdELzhBUXdCaDRDSmdHOEFBQUJCd0NlQUlrQUh3QVVBTEFBUlZpd0N5OGJzUXNhUGxteElRYjBNREgvL3dDS0FBQUVId1llQWlZQnZRQUFBUVlBbmpJZkFCUUFzQUJGV0xBQkx4dXhBUm8rV2JFYUJ2UXdNZi8vQUlvQUFBT3VCZFlDSmdHK0FBQUJCZ0J3UHlZQUV3Q3dBRVZZc0FZdkc3RUdHajVac0EzY01ERUEvLzhBaWdBQUE2NEY5Z0ltQWI0QUFBRUdBS0JzSHdBVUFMQUFSVml3Qmk4YnNRWWFQbG14RHdqME1ESC8vd0NLQUFBRHJnWGdBaVlCdmdBQUFRY0FvUUVmQUI0QUZBQ3dBRVZZc0FZdkc3RUdHajVac1JNQzlEQXhBQUVBaXY1UEE2NEVqUUFiQUhnQXNBQkZXTEFXTHh1eEZobytXYkFBUlZpd0ZDOGJzUlFRUGxtd0FFVllzQTh2RzdFUEVqNVpzQlFRc0J2UXNCc3ZzaDhiQVYyeTN4c0JYYklBQVFvcldDSFlHL1Jac0JRUXNnSUJDaXRZSWRnYjlGbXdGQkN3QmRDd0R4Q3lDZ01LSzFnaDJCdjBXYkFXRUxJWkFRb3JXQ0hZRy9SWk1ERUJJUkVoRlNNSEJoVVVNekkzRndZaklpWTFORGNoRVNFVklSRWhBMWY5N0FKclBUcHhUakEwRFVaYVdXZWIvY29ESHYyYkFoUUNEdjZKbHkxYlZrZ2FlU3hvVm9wcEJJMlovcklBLy84QWlnQUFBNjRHSGdJbUFiNEFBQUVHQUo1WEh3QVVBTEFBUlZpd0JpOGJzUVlhUGxteEVRYjBNREgvL3dCai8vQUVOUVllQWlZQndBQUFBUVlBblhFZUFCUUFzQUJGV0xBS0x4dXhDaG8rV2JFZ0JQUXdNZi8vQUdQLzhBUTFCZllDSmdIQUFBQUJCd0NnQUp3QUh3QVVBTEFBUlZpd0NpOGJzUW9hUGxteElBajBNREgvL3dCai8vQUVOUVhnQWlZQndBQUFBUWNBb1FGUEFCNEFGQUN3QUVWWXNBb3ZHN0VLR2o1WnNTVUM5REF4Ly84QVkvMzhCRFVFblFJbUFjQUFBQUFIQWFJQlQvNmQvLzhBaWdBQUJGZ0dIZ0ltQWNFQUFBRUhBSjBBa0FBZUFCUUFzQUJGV0xBSEx4dXhCeG8rV2JFUUJQUXdNZi8vLzVVQUFBSllCZ29DSmdIQ0FBQUJCd0NrL3hvQUlnQVVBTEFBUlZpd0F5OGJzUU1hUGxteEJ3TDBNREgvLy8rVUFBQUNYZ1hXQWlZQndnQUFBUWNBY1A4Y0FDWUFFd0N3QUVWWXNBSXZHN0VDR2o1WnNBWGNNREVBLy8vL3lnQUFBaUVGOWdJbUFjSUFBQUVIQUtEL1NRQWZBQlFBc0FCRldMQUNMeHV4QWhvK1diRUhDUFF3TWYvL0FBYitUd0ZtQkkwQ0pnSENBQUFBQmdDajFBRC8vd0NKQUFBQlpBWGdBaVlCd2dBQUFRWUFvZndlQUJRQXNBQkZXTEFDTHh1eEFobytXYkVMQXZRd01mLy9BQ3YvOEFRTkJoNENKZ0hEQUFBQkJ3Q2RBUWNBSGdBVUFMQUFSVml3QUM4YnNRQWFQbG14RkFUME1ESC8vd0NLL2Z3RVZ3U05BaVlCeEFBQUFBY0JvZ0VVL3AzLy93Q0NBQUFEaXdZY0FpWUJ4UUFBQVFZQWRRY2VBQlFBc0FCRldMQUZMeHV4QlJvK1diRUlCdlF3TWYvL0FJcjkvQU9MQkkwQ0pnSEZBQUFBQndHaUFSRCtuZi8vQUlvQUFBT0xCSTRDSmdIRkFBQUJCd0dpQVg0RG53QVFBTEFBUlZpd0NpOGJzUW9hUGxrd01mLy9BSW9BQUFPTEJJMENKZ0hGQUFBQUJ3Q2hBV2I5Ti8vL0FJb0FBQVJZQmh3Q0pnSEhBQUFCQndCMUFZOEFIZ0FVQUxBQVJWaXdDQzhic1FnYVBsbXhEQWIwTURILy93Q0svZndFV0FTTkFpWUJ4d0FBQUFjQm9nRnMvcDMvL3dDS0FBQUVXQVllQWlZQnh3QUFBUWNBbmdDdkFCOEFGQUN3QUVWWXNBWXZHN0VHR2o1WnNROEc5REF4Ly84QVlQL3dCRm9GMWdJbUFjZ0FBQUVIQUhBQWhRQW1BQk1Bc0FCRldMQUtMeHV4Q2hvK1diQWQzREF4QVAvL0FHRC84QVJhQmZZQ0pnSElBQUFCQndDZ0FMSUFId0FVQUxBQVJWaXdDaThic1FvYVBsbXhId2owTURILy93QmcvL0FFV2dZZEFpWUJ5QUFBQVFjQXBRRUhBQjRBRndDd0FFVllzQW92RzdFS0dqNVpzUjRHOUxBaTBEQXhBUC8vQUlvQUFBUWxCaHdDSmdITEFBQUJCd0IxQVNjQUhnQVVBTEFBUlZpd0JTOGJzUVVhUGxteEdRYjBNREgvL3dDSy9md0VKUVNOQWlZQnl3QUFBQWNCb2dFTi9wMy8vd0NLQUFBRUpRWWVBaVlCeXdBQUFRWUFua2NmQUJRQXNBQkZXTEFFTHh1eEJCbytXYkVjQnZRd01mLy9BRVAvOEFQZEJod0NKZ0hNQUFBQkJ3QjFBVDRBSGdBVUFMQUFSVml3Q1M4YnNRa2FQbG14S0FiME1ESC8vd0JELy9BRDNRWWVBaVlCekFBQUFRWUFuVWdlQUJRQXNBQkZXTEFKTHh1eENSbytXYkVxQlBRd01mLy9BRVArVFFQZEJKMENKZ0hNQUFBQUJ3QjVBVk1BQVAvL0FFUC84QVBkQmg0Q0pnSE1BQUFCQmdDZVhoOEFGQUN3QUVWWXNBa3ZHN0VKR2o1WnNTb0c5REF4Ly84QUtQMzhBLzBFalFJbUFjMEFBQUFIQWFJQkZQNmQvLzhBS0FBQUEvMEdIZ0ltQWMwQUFBRUdBSjVSSHdBVUFMQUFSVml3Qmk4YnNRWWFQbG14RFFiME1ESC8vd0FvL2s4RC9RU05BaVlCelFBQUFBY0FlUUUrQUFMLy93QjAvL0FFQ2dZS0FpWUJ6Z0FBQVFZQXBHUWlBQlFBc0FCRldMQVJMeHV4RVJvK1diRVZBdlF3TWYvL0FIVC84QVFLQmRZQ0pnSE9BQUFCQmdCd1ppWUFFd0N3QUVWWXNBa3ZHN0VKR2o1WnNCUGNNREVBLy84QWRQL3dCQW9GOWdJbUFjNEFBQUVIQUtBQWt3QWZBQlFBc0FCRldMQUpMeHV4Q1JvK1diRVZDUFF3TWYvL0FIVC84QVFLQm5rQ0pnSE9BQUFCQndDaUFPOEFLUUFYQUxBQVJWaXdDUzhic1FrYVBsbXhGUWIwc0IvUU1ERUEvLzhBZFAvd0JCUUdIUUltQWM0QUFBRUhBS1VBNkFBZUFCY0FzQUJGV0xBUkx4dXhFUm8rV2JFVUJ2U3dHTkF3TVFBQUFRQjAvblFFQ2dTTkFDQUFVd0N3QUVWWXNCZ3ZHN0VZR2o1WnNBQkZXTEFPTHh1eERoSStXYkFBUlZpd0V5OGJzUk1RUGxtd0dCQ3dJTkN5QlJNZ0VSSTVzQTRRc2drRENpdFlJZGdiOUZtd0V4Q3lIQUVLSzFnaDJCdjBXVEF4QVJFVUJnY0hCaFVVTXpJM0Z3WWpJaVkxTkRjaUppY1JNeEVVRmpNeU5qVVJCQXA0YnpKc1RqQTBEVVphV1dkYXpma0V0NCtGZzQ4RWpmenplcm93S0Z0U1NCcDVMR2hXYUZiT3VBTVgvUFI1Z1g5N0F3d0EvLzhBTVFBQUJmRUdIZ0ltQWRBQUFBRUhBSjBCT3dBZUFCUUFzQUJGV0xBREx4dXhBeG8rV2JFWEJQUXdNZi8vQUEwQUFBUWNCaDRDSmdIU0FBQUJCZ0NkUFI0QUZBQ3dBRVZZc0Fndkc3RUlHajVac1EwRTlEQXgvLzhBRFFBQUJCd0Y0d0ltQWRJQUFBRUdBR3B0SGdBWEFMQUFSVml3Q0M4YnNRZ2FQbG14RUFMMHNCblFNREVBLy84QVJ3QUFBK0FHSEFJbUFkTUFBQUVIQUhVQk13QWVBQlFBc0FCRldMQUlMeHV4Q0JvK1diRU1CdlF3TWYvL0FFY0FBQVBnQmVBQ0pnSFRBQUFCQndDaEFSc0FIZ0FVQUxBQVJWaXdCeThic1FjYVBsbXhFUUwwTURILy93QkhBQUFENEFZZUFpWUIwd0FBQVFZQW5sTWZBQlFBc0FCRldMQUhMeHV4QnhvK1diRVBCdlF3TWYvL0FCd0FBQVVkQmo4Q0pnQWxBQUFBQmdDdEJBRC8vLy93QUFBRXFnWS9BQ1lBS1dRQUFBY0FyZjg1QUFELy8vLytBQUFGYkFaQkFDWUFMR1FBQUFjQXJmOUhBQUwvL3dBRUFBQUIyd1pBQUNZQUxXUUFBQWNBcmY5TkFBSC8vLy82Lyt3RkhRWS9BQ1lBTXhRQUFBY0FyZjlEQUFELy8vOTRBQUFGSHdZL0FDWUFQV1FBQUFjQXJmN0JBQUQvLy8vOUFBQUUzd1kvQUNZQXVSUUFBQWNBcmY5R0FBRC8vLytiLy9RQ3JRWjBBaVlBd2dBQUFRY0FydjhxLyt3QUhRQ3dBRVZZc0F3dkc3RU1HRDVac1JnQjlMQVAwTEFZRUxBaDBEQXhBUC8vQUJ3QUFBVWRCYkFDQmdBbEFBRC8vd0NwQUFBRWlBV3dBZ1lBSmdBQS8vOEFxUUFBQkVZRnNBSUdBQ2tBQVAvL0FGWUFBQVI2QmJBQ0JnQStBQUQvL3dDcEFBQUZDQVd3QWdZQUxBQUEvLzhBdHdBQUFYY0ZzQUlHQUMwQUFQLy9BS2tBQUFVRkJiQUNCZ0F2QUFELy93Q3BBQUFHVWdXd0FnWUFNUUFBLy84QXFRQUFCUWdGc0FJR0FESUFBUC8vQUhiLzdBVUpCY1FDQmdBekFBRC8vd0NwQUFBRXdBV3dBZ1lBTkFBQS8vOEFNUUFBQkpjRnNBSUdBRGdBQVAvL0FBOEFBQVM3QmJBQ0JnQTlBQUQvL3dBNUFBQUV6Z1d3QWdZQVBBQUEvLy8vMWdBQUFsOEhCd0ltQUMwQUFBRUhBR3IvY0FGQ0FCY0FzQUJGV0xBQ0x4dXhBaHcrV2JFTEJQU3dGTkF3TVFELy93QVBBQUFFdXdiN0FpWUFQUUFBQVFjQWFnRENBVFlBRndDd0FFVllzQWd2RzdFSUhENVpzUkFFOUxBWjBEQXhBUC8vQUdULzZ3UjNCam9DSmdDNkFBQUJCd0N0QVhYLyt3QVVBTEFBUlZpd0V5OGJzUk1ZUGxteEpBSDBNREgvL3dCai8rd0Q3QVk1QWlZQXZnQUFBUWNBclFFci8vb0FGQUN3QUVWWXNCVXZHN0VWR0Q1WnNTZ0I5REF4Ly84QWtmNWhBL0FHT2dJbUFNQUFBQUVIQUswQlJ2LzdBQlFBc0FCRldMQURMeHV4QXhnK1diRVZBZlF3TWYvL0FNUC85QUpMQmlVQ0pnRENBQUFCQmdDdEt1WUFGQUN3QUVWWXNBd3ZHN0VNR0Q1WnNROEI5REF4Ly84QWovL3NBL1lHZEFJbUFNb0FBQUVHQUs0aDdBQWRBTEFBUlZpd0FDOGJzUUFZUGxteEhRSDBzQlhRc0IwUXNDZlFNREVBLy84QW1nQUFCRDhFT2dJR0FJMEFBUC8vQUZ2LzdBUTBCRTRDQmdCVEFBRC8vd0NhL21BRDdnUTZBZ1lBZGdBQS8vOEFJUUFBQTdvRU9nSUdBRm9BQVAvL0FDa0FBQVBLQkRvQ0JnQmNBQUQvLy8vbS8vUUNid1d4QWlZQXdnQUFBUVlBYW9Ec0FCY0FzQUJGV0xBTUx4dXhEQmcrV2JFVUFmU3dIZEF3TVFELy93Q1AvK3dEOWdXeEFpWUF5Z0FBQVFZQWFuZnNBQmNBc0FCRldMQUFMeHV4QUJnK1diRWFBZlN3STlBd01RRC8vd0JiLyt3RU5BWTZBaVlBVXdBQUFRY0FyUUZELy9zQUZBQ3dBRVZZc0FRdkc3RUVHRDVac1I0QjlEQXgvLzhBai8vc0EvWUdKUUltQU1vQUFBRUhBSzBCSXYvbUFCUUFzQUJGV0xBQUx4dXhBQmcrV2JFVkFmUXdNZi8vQUhyLzdBWVpCaUlDSmdETkFBQUJCd0N0QWxQLzR3QVVBTEFBUlZpd0FDOGJzUUFZUGxteEpnSDBNREgvL3dDcEFBQUVSZ2NIQWlZQUtRQUFBUWNBYWdERUFVSUFGd0N3QUVWWXNBWXZHN0VHSEQ1WnNSTUU5TEFjMERBeEFQLy9BTEVBQUFRd0IwQUNKZ0N3QUFBQkJ3QjFBWkFCUWdBVUFMQUFSVml3QkM4YnNRUWNQbG14Q0FqME1ERUFBUUJRLyt3RWNnWEVBQ1lBWWJJQUp5Z1JFamtBc0FCRldMQUdMeHV4Qmh3K1diQUFSVml3R2k4YnNSb1FQbG13QmhDd0M5Q3dCaEN5RGdFS0sxZ2gyQnYwV2JJbUdnWVJFam13SmhDeUZBRUtLMWdoMkJ2MFdiQWFFTEFmMExBYUVMSWlBUW9yV0NIWUcvUlpNREVCSmlZMU5DUXpNaFlXRlNNMEppTWlCaFVVRmdRV0ZoVVVCQ01pSkNZMU14UVdNekkyTkNZQ1Z2ZmhBUlBjbHV1QndhaVpqcCtYQVd2TlkvN3M1NWIrL0kzQnc2T1lvcFlDaVVmUG1LemhkTXg1aEpkOWIxbDdabnVrYjdIVmM4aC9oSmw4MW5VQS8vOEF0d0FBQVhjRnNBSUdBQzBBQVAvLy85WUFBQUpmQndjQ0pnQXRBQUFCQndCcS8zQUJRZ0FYQUxBQVJWaXdBaThic1FJY1BsbXhDd1Qwc0JUUU1ERUEvLzhBTmYvc0E4d0ZzQUlHQUM0QUFQLy9BTElBQUFVZEJiQUNCZ0hqQUFELy93Q3BBQUFGQlFjdUFpWUFMd0FBQVFjQWRRRjdBVEFBRkFDd0FFVllzQVV2RzdFRkhENVpzUTRJOURBeC8vOEFUZi9yQk1zSEdnSW1BTjBBQUFFSEFLQUEyZ0ZEQUJNQXNBQkZXTEFSTHh1eEVSdytXYkFWM0RBeEFQLy9BQndBQUFVZEJiQUNCZ0FsQUFELy93Q3BBQUFFaUFXd0FnWUFKZ0FBLy84QXNRQUFCREFGc0FJR0FMQUFBUC8vQUtrQUFBUkdCYkFDQmdBcEFBRC8vd0N4QUFBRS93Y2FBaVlBMndBQUFRY0FvQUV4QVVNQUV3Q3dBRVZZc0Fndkc3RUlIRDVac0EzY01ERUEvLzhBcVFBQUJsSUZzQUlHQURFQUFQLy9BS2tBQUFVSUJiQUNCZ0FzQUFELy93QjIvK3dGQ1FYRUFnWUFNd0FBLy84QXNnQUFCUUVGc0FJR0FMVUFBUC8vQUtrQUFBVEFCYkFDQmdBMEFBRC8vd0IzLyt3RTJBWEVBZ1lBSndBQS8vOEFNUUFBQkpjRnNBSUdBRGdBQVAvL0FEa0FBQVRPQmJBQ0JnQThBQUQvL3dCdC8rd0Q2Z1JPQWdZQVJRQUEvLzhBWGYvc0EvTUVUZ0lHQUVrQUFQLy9BSndBQUFRQkJjUUNKZ0R2QUFBQkJ3Q2dBS0wvN1FBVEFMQUFSVml3Q0M4YnNRZ1lQbG13RGR3d01RRC8vd0JiLyt3RU5BUk9BZ1lBVXdBQS8vOEFqUDVnQkI0RVRnSUdBRlFBQUFBQkFGei83QVBzQkU0QUhRQkpzaEFlSHhFU09RQ3dBRVZZc0JBdkc3RVFHRDVac0FCRldMQUlMeHV4Q0JBK1diSUFBUW9yV0NIWUcvUlpzQWdRc0FQUXNCQVFzQlRRc0JBUXNoY0JDaXRZSWRnYjlGa3dNU1V5TmpjekRnSWpJZ0FSTlRRMk5qTXlGaGNqSmlZaklnWVZGUlFXQWo1amxBaXZCWGJGYnQzKyszVFpsTGJ4Q0s4SWoybU5tNXFEZUZwZHFHUUJKd0VBSDU3MmlOcXVhWWZMd0NPN3lnRC8vd0FXL2tzRHNBUTZBZ1lBWFFBQS8vOEFLUUFBQThvRU9nSUdBRndBQVAvL0FGMy83QVB6QmNVQ0pnQkpBQUFCQndCcUFJNEFBQUFYQUxBQVJWaXdDQzhic1FnWVBsbXhKUUgwc0M3UU1ERUEvLzhBbWdBQUEwY0Y2Z0ltQU9zQUFBRUhBSFVBemYvc0FCUUFzQUJGV0xBRUx4dXhCQmcrV2JFSUNmUXdNZi8vQUYvLzdBTzdCRTRDQmdCWEFBRC8vd0NOQUFBQmFBWEVBZ1lBVFFBQS8vLy92QUFBQWtVRnhBSW1BSXdBQUFFSEFHci9Wdi8vQUJjQXNBQkZXTEFDTHh1eEFoZytXYkVMQWZTd0ZOQXdNUUQvLy8rLy9rc0JXUVhFQWdZQVRnQUEvLzhBbkFBQUJEOEY2UUltQVBBQUFBRUhBSFVCTy8vckFCUUFzQUJGV0xBRUx4dXhCQmcrV2JFUENmUXdNZi8vQUJiK1N3T3dCZGdDSmdCZEFBQUJCZ0NnVUFFQUV3Q3dBRVZZc0E4dkc3RVBHRDVac0JQY01ERUEvLzhBUFFBQUJ1MEhOQUltQURzQUFBRUhBRVFDTEFFMkFCUUFzQUJGV0xBREx4dXhBeHcrV2JFVUNQUXdNZi8vQUNzQUFBWFRCZjRDSmdCYkFBQUJCd0JFQVlzQUFBQVVBTEFBUlZpd0N5OGJzUXNZUGxteERnbjBNREgvL3dBOUFBQUc3UWMwQWlZQU93QUFBUWNBZFFLN0FUWUFGQUN3QUVWWXNBUXZHN0VFSEQ1WnNSVUk5REF4Ly84QUt3QUFCZE1GL2dJbUFGc0FBQUVIQUhVQ0dnQUFBQlFBc0FCRldMQU1MeHV4REJnK1diRVBDZlF3TWYvL0FEMEFBQWJ0QnZzQ0pnQTdBQUFCQndCcUFmVUJOZ0FYQUxBQVJWaXdBeThic1FNY1BsbXhHZ1Qwc0NQUU1ERUEvLzhBS3dBQUJkTUZ4UUltQUZzQUFBRUhBR29CVkFBQUFCY0FzQUJGV0xBTEx4dXhDeGcrV2JFVUFmU3dIZEF3TVFELy93QVBBQUFFdXdjMEFpWUFQUUFBQVFjQVJBRDVBVFlBRkFDd0FFVllzQWd2RzdFSUhENVpzUW9JOURBeC8vOEFGdjVMQTdBRi9nSW1BRjBBQUFFSEFFUUFqQUFBQUJRQXNBQkZXTEFQTHh1eER4ZytXYkVSQ2ZRd01mLy9BR2NFSVFEOUJnQUNCZ0FMQUFELy93Q0lCQklDSXdZQUFnWUFCZ0FBLy84QW9QLzFBNG9Gc0FBbUFBVUFBQUFIQUFVQ0R3QUEvLy8vdFA1TEFqOEYyQUltQUpzQUFBRUhBSjcvU2YvWkFCUUFzQUJGV0xBTkx4dXhEUmcrV2JFVEFmUXdNZi8vQURBRUZnRkhCZ0FDQmdGdEFBRC8vd0NwQUFBR1VnYzBBaVlBTVFBQUFRY0FkUUtaQVRZQUZBQ3dBRVZZc0FJdkc3RUNIRDVac1JFSTlEQXgvLzhBaXdBQUJuZ0YvZ0ltQUZFQUFBRUhBSFVDclFBQUFCUUFzQUJGV0xBREx4dXhBeGcrV2JFZ0NmUXdNZi8vQUJ6K2F3VWRCYkFDSmdBbEFBQUFCd0NtQVg4QUFQLy9BRzMrYXdQcUJFNENKZ0JGQUFBQUJ3Q21BTWNBQVAvL0FLa0FBQVJHQjBBQ0pnQXBBQUFCQndCRUFQc0JRZ0FVQUxBQVJWaXdCaThic1FZY1BsbXhEUWowTURILy93Q3hBQUFFL3dkQUFpWUEyd0FBQVFjQVJBRnRBVUlBRkFDd0FFVllzQWd2RzdFSUhENVpzUXNJOURBeC8vOEFYZi9zQS9NRi9nSW1BRWtBQUFFSEFFUUF4UUFBQUJRQXNBQkZXTEFJTHh1eENCZytXYkVmQ2ZRd01mLy9BSndBQUFRQkJlb0NKZ0R2QUFBQkJ3QkVBTjcvN0FBVUFMQUFSVml3Q0M4YnNRZ1lQbG14Q3duME1ESC8vd0JhQUFBRklRV3dBZ1lBdUFBQS8vOEFYLzRvQlVNRU9nSUdBTXdBQVAvL0FCWUFBQVRkQnVnQ0pnRVlBQUFCQndDckJEa0ErZ0FYQUxBQVJWaXdEeThic1E4Y1BsbXhFUWowc0JYUU1ERUEvLy8vK3dBQUJBc0Z3UUltQVJrQUFBRUhBS3NEMVAvVEFCY0FzQUJGV0xBUkx4dXhFUmcrV2JFVENmU3dGOUF3TVFELy93QmIva3NJUUFST0FDWUFVd0FBQUFjQVhRU1FBQUQvL3dCMi9rc0pNQVhFQUNZQU13QUFBQWNBWFFXQUFBRC8vd0JRL2xFRWFnWEVBaVlBMmdBQUFBY0JzQUdjLzdqLy93QlkvbElEckFSTkFpWUE3Z0FBQUFjQnNBRkQvN24vL3dCMy9sRUUyQVhFQWlZQUp3QUFBQWNCc0FIbC83ai8vd0JjL2xFRDdBUk9BaVlBUndBQUFBY0JzQUZTLzdqLy93QVBBQUFFdXdXd0FnWUFQUUFBLy84QUx2NWdBOThFT2dJR0FMd0FBUC8vQUxjQUFBRjNCYkFDQmdBdEFBRC8vd0FiQUFBSE5RY2FBaVlBMlFBQUFRY0FvQUg0QVVNQUV3Q3dBRVZZc0Ewdkc3RU5IRDVac0JuY01ERUEvLzhBRlFBQUJnUUZ4QUltQU8wQUFBRUhBS0FCWC8vdEFCTUFzQUJGV0xBTkx4dXhEUmcrV2JBWjNEQXhBUC8vQUxjQUFBRjNCYkFDQmdBdEFBRC8vd0FjQUFBRkhRY09BaVlBSlFBQUFRY0FvQUQwQVRjQUV3Q3dBRVZZc0FRdkc3RUVIRDVac0E3Y01ERUEvLzhBYmYvc0Erb0YyQUltQUVVQUFBRUhBS0FBbVFBQkFCTUFzQUJGV0xBWEx4dXhGeGcrV2JBczNEQXhBUC8vQUJ3QUFBVWRCdnNDSmdBbEFBQUJCd0JxQVBrQk5nQVVBTEFBUlZpd0JDOGJzUVFjUGxteEVnVDBNREgvL3dCdC8rd0Q2Z1hGQWlZQVJRQUFBUWNBYWdDZUFBQUFGd0N3QUVWWXNCY3ZHN0VYR0Q1WnNUQUI5TEE1MERBeEFQLy8vL0lBQUFkWEJiQUNCZ0NCQUFELy93Qk8vK3dHZkFST0FnWUFoZ0FBLy84QXFRQUFCRVlIR2dJbUFDa0FBQUVIQUtBQXZ3RkRBQk1Bc0FCRldMQUdMeHV4Qmh3K1diQVAzREF4QVAvL0FGMy83QVB6QmRnQ0pnQkpBQUFCQndDZ0FJa0FBUUFUQUxBQVJWaXdDQzhic1FnWVBsbXdJZHd3TVFELy93QmQvK3dGRWdiWkFpWUJSUUFBQVFjQWFnRFRBUlFBRndDd0FFVllzQUF2RzdFQUhENVpzU2NFOUxBdzBEQXhBUC8vQUdMLzdBUHBCRThDQmdDY0FBRC8vd0JpLyt3RDZRWEdBaVlBbkFBQUFRY0FhZ0NIQUFFQUZ3Q3dBRVZZc0FBdkc3RUFHRDVac1NRQjlMQXQwREF4QVAvL0FCc0FBQWMxQndjQ0pnRFpBQUFCQndCcUFmMEJRZ0FYQUxBQVJWaXdEUzhic1EwY1BsbXhIUVQwc0NiUU1ERUEvLzhBRlFBQUJnUUZzUUltQU8wQUFBRUhBR29CWlAvc0FCY0FzQUJGV0xBTkx4dXhEUmcrV2JFZEFmU3dKdEF3TVFELy93QlEvK3dFYWdjY0FpWUEyZ0FBQVFjQWFnQzNBVmNBRndDd0FFVllzQXN2RzdFTEhENVpzVEFFOUxBNTBEQXhBUC8vQUZqLzdRT3NCY1VDSmdEdUFBQUJCZ0JxWGdBQUZ3Q3dBRVZZc0Fvdkc3RUtHRDVac1M0QjlMQTMwREF4QVAvL0FMRUFBQVQvQnZvQ0pnRGJBQUFCQndCd0FRUUJTZ0FUQUxBQVJWaXdDQzhic1FnY1BsbXdDOXd3TVFELy93Q2NBQUFFQVFXa0FpWUE3d0FBQVFZQWNIWDBBQk1Bc0FCRldMQUhMeHV4QnhnK1diQUwzREF4QVAvL0FMRUFBQVQvQndjQ0pnRGJBQUFCQndCcUFUWUJRZ0FYQUxBQVJWaXdDQzhic1FnY1BsbXhFUVQwc0JyUU1ERUEvLzhBbkFBQUJBRUZzUUltQU84QUFBRUhBR29BcC8vc0FCY0FzQUJGV0xBSUx4dXhDQmcrV2JFUkFmU3dHdEF3TVFELy93QjIvK3dGQ1FiOUFpWUFNd0FBQVFjQWFnRWJBVGdBRndDd0FFVllzQTB2RzdFTkhENVpzU2NFOUxBdzBEQXhBUC8vQUZ2LzdBUTBCY1VDSmdCVEFBQUJCd0JxQUpnQUFBQVhBTEFBUlZpd0JDOGJzUVFZUGxteEl3SDBzQ3pRTURFQS8vOEFaLy9zQlBvRnhBSUdBUllBQVAvL0FGdi83QVEwQkU0Q0JnRVhBQUQvL3dCbi8rd0UrZ2NDQWlZQkZnQUFBUWNBYWdFT0FUMEFGd0N3QUVWWXNBMHZHN0VOSEQ1WnNTY0U5TEF3MERBeEFQLy9BRnYvN0FRMEJjY0NKZ0VYQUFBQkJ3QnFBSWdBQWdBWEFMQUFSVml3QkM4YnNRUVlQbG14SkFIMHNDM1FNREVBLy84QWsvL3NCUFFISFFJbUFPWUFBQUVIQUdvQkRRRllBQmNBc0FCRldMQVRMeHV4RXh3K1diRW5CUFN3TU5Bd01RRC8vd0JrLyt3RDRBWEZBaVlBL2dBQUFRWUFhbndBQUJjQXNBQkZXTEFJTHh1eENCZytXYkVuQWZTd01OQXdNUUQvL3dCTi8rc0V5d2I2QWlZQTNRQUFBUWNBY0FDdEFVb0FFd0N3QUVWWXNCRXZHN0VSSEQ1WnNCUGNNREVBLy84QUZ2NUxBN0FGdUFJbUFGMEFBQUVHQUhBakNBQVRBTEFBUlZpd0RpOGJzUTRZUGxtd0Vkd3dNUUQvL3dCTi8rc0V5d2NIQWlZQTNRQUFBUWNBYWdEZkFVSUFGd0N3QUVWWXNCRXZHN0VSSEQ1WnNSa0U5TEFpMERBeEFQLy9BQmIrU3dPd0JjVUNKZ0JkQUFBQkJnQnFWUUFBRndDd0FFVllzQTh2RzdFUEdENVpzUmNCOUxBZzBEQXhBUC8vQUUzLzZ3VExCMEVDSmdEZEFBQUJCd0NsQVM4QlFnQVhBTEFBUlZpd0FTOGJzUUVjUGxteEZBajBzQmpRTURFQS8vOEFGdjVMQTlFRi93SW1BRjBBQUFFSEFLVUFwUUFBQUJjQXNBQkZXTEFQTHh1eER4ZytXYkVXQ2ZTd0V0QXdNUUQvL3dDV0FBQUV5QWNIQWlZQTRBQUFBUWNBYWdFSkFVSUFGd0N3QUVWWXNBc3ZHN0VMSEQ1WnNSb0U5TEFqMERBeEFQLy9BR2NBQUFPOUJiRUNKZ0Q0QUFBQkJnQnFaT3dBRndDd0FFVllzQWt2RzdFSkdENVpzUmdCOUxBaDBEQXhBUC8vQUxJQUFBWXdCd2NBSmdEbER3QUFKd0F0QkxrQUFBRUhBR29CMHdGQ0FCY0FzQUJGV0xBS0x4dXhDaHcrV2JFZkJQU3dLTkF3TVFELy93Q2RBQUFGZndXeEFDWUEvUUFBQUNjQWpBUXFBQUFCQndCcUFXMy83QUFYQUxBQVJWaXdDaThic1FvWVBsbXhId0gwc0NqUU1ERUEvLzhBT2Y1TEJRNEZzQUltQUR3QUFBQUhBYThEcHdBQS8vOEFLZjVMQkJ3RU9nSW1BRndBQUFBSEFhOEN0UUFBLy84QVgvL3NBL0FHQUFJR0FFZ0FBUC8vQUMvK1N3V3NCYkFDSmdEY0FBQUFCd0d2QkVVQUFQLy9BQ3orU3dTN0JEb0NKZ0R4QUFBQUJ3R3ZBMVFBQVAvL0FCeitvZ1VkQmJBQ0pnQWxBQUFBQndDc0JRSUFBUC8vQUczK29nUHFCRTRDSmdCRkFBQUFCd0NzQkVvQUFQLy9BQndBQUFVZEI3b0NKZ0FsQUFBQkJ3Q3FCTzRCUmdBVUFMQUFSVml3QkM4YnNRUWNQbG14Q3dqME1ESC8vd0J0Lyt3RDZnYUVBaVlBUlFBQUFRY0FxZ1NUQUJBQUZBQ3dBRVZZc0Jjdkc3RVhHRDVac1NrQjlEQXgvLzhBSEFBQUJSMEh3d0ltQUNVQUFBRUhBYmNBd3dFdUFCY0FzQUJGV0xBRkx4dXhCUncrV2JFT0RQU3dGTkF3TVFELy93QnQvK3dFd0FhT0FpWUFSUUFBQVFZQnQyajVBQmNBc0FCRldMQVhMeHV4RnhnK1diRXNDUFN3TXRBd01RRC8vd0FjQUFBRkhRZS9BaVlBSlFBQUFRY0J0Z0RIQVQwQUZ3Q3dBRVZZc0FRdkc3RUVIRDVac1E0TTlMQVQwREF4QVAvLy84ci83QVBxQm9rQ0pnQkZBQUFCQmdHMmJBY0FGd0N3QUVWWXNCY3ZHN0VYR0Q1WnNTd0k5TEF4MERBeEFQLy9BQndBQUFVZEIrb0NKZ0FsQUFBQkJ3RzFBTWdCR3dBWEFMQUFSVml3QlM4YnNRVWNQbG14REF6MHNDRFFNREVBLy84QWJmL3NCRmtHdFFJbUFFVUFBQUVHQWJWdDVnQVhBTEFBUlZpd0Z5OGJzUmNZUGxteEtnajBzRERRTURFQS8vOEFIQUFBQlIwSDJnSW1BQ1VBQUFFSEFiUUF4d0VHQUJjQXNBQkZXTEFGTHh1eEJSdytXYkVNRFBTd0ZkQXdNUUQvL3dCdC8rd0Q2Z2FsQWlZQVJRQUFBUVlCdEd6UkFCY0FzQUJGV0xBWEx4dXhGeGcrV2JFcUNQU3dNOUF3TVFELy93QWMvcUlGSFFjMkFpWUFKUUFBQUNjQW5RREpBVFlCQndDc0JRSUFBQUFVQUxBQVJWaXdCQzhic1FRY1BsbXhEd2IwTURILy93QnQvcUlENmdZQUFpWUFSUUFBQUNZQW5XNEFBUWNBckFSS0FBQUFGQUN3QUVWWXNCY3ZHN0VYR0Q1WnNTMEI5REF4Ly84QUhBQUFCUjBIdHdJbUFDVUFBQUVIQWJNQTZnRXRBQmNBc0FCRldMQUVMeHV4QkJ3K1diRU9CL1N3RzlBd01RRC8vd0J0Lyt3RDZnYUNBaVlBUlFBQUFRY0Jzd0NQLy9nQUZ3Q3dBRVZZc0Jjdkc3RVhHRDVac1N3RTlMQTUwREF4QVAvL0FCd0FBQVVkQjdjQ0pnQWxBQUFCQndHNEFPb0JMUUFYQUxBQVJWaXdCQzhic1FRY1BsbXhEZ2Ywc0J6UU1ERUEvLzhBYmYvc0Erb0dnZ0ltQUVVQUFBRUhBYmdBai8vNEFCY0FzQUJGV0xBWEx4dXhGeGcrV2JFc0JQU3dPdEF3TVFELy93QWNBQUFGSFFoQUFpWUFKUUFBQVFjQnNnRHVBVDBBRndDd0FFVllzQVF2RzdFRUhENVpzUTRIOUxBbjBEQXhBUC8vQUczLzdBUHFCd29DSmdCRkFBQUJCd0d5QUpNQUJ3QVhBTEFBUlZpd0Z5OGJzUmNZUGxteExBVDBzRVhRTURFQS8vOEFIQUFBQlIwSUZRSW1BQ1VBQUFFSEFiRUE3Z0ZGQUJjQXNBQkZXTEFFTHh1eEJCdytXYkVPQi9Td0hOQXdNUUQvL3dCdC8rd0Q2Z2JmQWlZQVJRQUFBUWNCc1FDVEFBOEFGd0N3QUVWWXNCY3ZHN0VYR0Q1WnNTd0U5TEE2MERBeEFQLy9BQnorb2dVZEJ3NENKZ0FsQUFBQUp3Q2dBUFFCTndFSEFLd0ZBZ0FBQUJNQXNBQkZXTEFFTHh1eEJCdytXYkFPM0RBeEFQLy9BRzMrb2dQcUJkZ0NKZ0JGQUFBQUp3Q2dBSmtBQVFFSEFLd0VTZ0FBQUJNQXNBQkZXTEFYTHh1eEZ4ZytXYkFzM0RBeEFQLy9BS24rb2dSR0JiQUNKZ0FwQUFBQUJ3Q3NCTUFBQVAvL0FGMytvZ1B6QkU0Q0pnQkpBQUFBQndDc0JJd0FBUC8vQUtrQUFBUkdCOFlDSmdBcEFBQUJCd0NxQkxrQlVnQVVBTEFBUlZpd0JpOGJzUVljUGxteERBajBNREgvL3dCZC8rd0Q4d2FFQWlZQVNRQUFBUWNBcWdTREFCQUFGQUN3QUVWWXNBZ3ZHN0VJR0Q1WnNSNEI5REF4Ly84QXFRQUFCRVlITGdJbUFDa0FBQUVIQUtRQWtBRkdBQlFBc0FCRldMQUdMeHV4Qmh3K1diRVBCUFF3TWYvL0FGMy83QVB6QmV3Q0pnQkpBQUFCQmdDa1dnUUFGQUN3QUVWWXNBZ3ZHN0VJR0Q1WnNTRUI5REF4Ly84QXFRQUFCT1lIendJbUFDa0FBQUVIQWJjQWpnRTZBQmNBc0FCRldMQUhMeHV4Qnh3K1diRVBEUFN3RmRBd01RRC8vd0JkLyt3RXNBYU9BaVlBU1FBQUFRWUJ0MWo1QUJjQXNBQkZXTEFJTHh1eENCZytXYkVoQ1BTd0o5QXdNUUQvLy8vd0FBQUVSZ2ZMQWlZQUtRQUFBUWNCdGdDU0FVa0FGd0N3QUVWWXNBWXZHN0VHSEQ1WnNROE05TEFVMERBeEFQLy8vN3IvN0FQekJva0NKZ0JKQUFBQkJnRzJYQWNBRndDd0FFVllzQWd2RzdFSUdENVpzU0VJOUxBbTBEQXhBUC8vQUtrQUFBUi9CL1lDSmdBcEFBQUJCd0cxQUpNQkp3QVhBTEFBUlZpd0JpOGJzUVljUGxteER3ejBzQlBRTURFQS8vOEFYZi9zQkVrR3RRSW1BRWtBQUFFR0FiVmQ1Z0FYQUxBQVJWaXdDQzhic1FnWVBsbXhId2owc0NYUU1ERUEvLzhBcVFBQUJFWUg1Z0ltQUNrQUFBRUhBYlFBa2dFU0FCY0FzQUJGV0xBR0x4dXhCaHcrV2JFUERQU3dGdEF3TVFELy93QmQvK3dEOHdhbEFpWUFTUUFBQVFZQnRGelJBQmNBc0FCRldMQUlMeHV4Q0JnK1diRWhDUFN3S05Bd01RRC8vd0NwL3FJRVJnZENBaVlBS1FBQUFDY0FuUUNVQVVJQkJ3Q3NCTUFBQUFBVUFMQUFSVml3Qmk4YnNRWWNQbG14RUFiME1ESC8vd0JkL3FJRDh3WUFBaVlBU1FBQUFDWUFuVjRBQVFjQXJBU01BQUFBRkFDd0FFVllzQWd2RzdFSUdENVpzU0FCOURBeC8vOEF0d0FBQWZnSHhnSW1BQzBBQUFFSEFLb0RaQUZTQUJRQXNBQkZXTEFDTHh1eEFodytXYkVFQ1BRd01mLy9BSnNBQUFIZUJvSUNKZ0NNQUFBQkJ3Q3FBMG9BRGdBVUFMQUFSVml3QWk4YnNRSVlQbG14QkFIME1ESC8vd0NqL3FJQmZnV3dBaVlBTFFBQUFBY0FyQU5yQUFELy93Q0YvcUlCYUFYRUFpWUFUUUFBQUFjQXJBTk5BQUQvL3dCMi9xSUZDUVhFQWlZQU13QUFBQWNBckFVWUFBRC8vd0JiL3FJRU5BUk9BaVlBVXdBQUFBY0FyQVNkQUFELy93QjIvK3dGQ1FlOEFpWUFNd0FBQVFjQXFnVVFBVWdBRkFDd0FFVllzQTB2RzdFTkhENVpzUzRJOURBeC8vOEFXLy9zQkRRR2hBSW1BRk1BQUFFSEFLb0VqUUFRQUJRQXNBQkZXTEFFTHh1eEJCZytXYkVxQWZRd01mLy9BSGIvN0FVOUI4VUNKZ0F6QUFBQkJ3RzNBT1VCTUFBWEFMQUFSVml3RFM4YnNRMGNQbG14SXd6MHNDblFNREVBLy84QVcvL3NCTG9HamdJbUFGTUFBQUVHQWJkaStRQVhBTEFBUlZpd0JDOGJzUVFZUGxteEh3ajBzQ1hRTURFQS8vOEFSLy9zQlFrSHdRSW1BRE1BQUFFSEFiWUE2UUUvQUJjQXNBQkZXTEFOTHh1eERSdytXYkVoRFBTd0tOQXdNUUQvLy8vRS8rd0VOQWFKQWlZQVV3QUFBUVlCdG1ZSEFCY0FzQUJGV0xBRUx4dXhCQmcrV2JFZENQU3dKTkF3TVFELy93QjIvK3dGQ1Fmc0FpWUFNd0FBQVFjQnRRRHFBUjBBRndDd0FFVllzQTB2RzdFTkhENVpzU0VNOUxBbjBEQXhBUC8vQUZ2LzdBUlRCclVDSmdCVEFBQUJCZ0cxWitZQUZ3Q3dBRVZZc0FRdkc3RUVHRDVac1IwSTlMQWowREF4QVAvL0FIYi83QVVKQjl3Q0pnQXpBQUFCQndHMEFPa0JDQUFYQUxBQVJWaXdEUzhic1EwY1BsbXhJUXowc0NyUU1ERUEvLzhBVy8vc0JEUUdwUUltQUZNQUFBRUdBYlJtMFFBWEFMQUFSVml3QkM4YnNRUVlQbG14SFFqMHNDYlFNREVBLy84QWR2NmlCUWtIT0FJbUFETUFBQUFuQUowQTZ3RTRBUWNBckFVWUFBQUFGQUN3QUVWWXNBMHZHN0VOSEQ1WnNTSUc5REF4Ly84QVcvNmlCRFFHQUFJbUFGTUFBQUFtQUoxb0FBRUhBS3dFblFBQUFCUUFzQUJGV0xBRUx4dXhCQmcrV2JFZUFmUXdNZi8vQUdYLzdBV2RCeThDSmdDWEFBQUJCd0IxQWQwQk1RQVVBTEFBUlZpd0RTOGJzUTBjUGxteEtBajBNREgvL3dCYi8rd0V1Z1grQWlZQW1BQUFBUWNBZFFGbEFBQUFGQUN3QUVWWXNBUXZHN0VFR0Q1WnNTWUo5REF4Ly84QVpmL3NCWjBITHdJbUFKY0FBQUVIQUVRQlRnRXhBQlFBc0FCRldMQU5MeHV4RFJ3K1diRW5DUFF3TWYvL0FGdi83QVM2QmY0Q0pnQ1lBQUFCQndCRUFOWUFBQUFVQUxBQVJWaXdCQzhic1FRWVBsbXhKUW4wTURILy93QmwvK3dGblFlMUFpWUFsd0FBQVFjQXFnVU1BVUVBRkFDd0FFVllzQTB2RzdFTkhENVpzVFFJOURBeC8vOEFXLy9zQkxvR2hBSW1BSmdBQUFFSEFLb0VsQUFRQUJRQXNBQkZXTEFFTHh1eEJCZytXYkV5QWZRd01mLy9BR1gvN0FXZEJ4MENKZ0NYQUFBQkJ3Q2tBT01CTlFBVUFMQUFSVml3RFM4YnNRMGNQbG14S1FUME1ESC8vd0JiLyt3RXVnWHNBaVlBbUFBQUFRWUFwR3NFQUJRQXNBQkZXTEFFTHh1eEJCZytXYkVuQWZRd01mLy9BR1grb2dXZEJqY0NKZ0NYQUFBQUJ3Q3NCUWtBQVAvL0FGditvZ1M2QkxBQ0pnQ1lBQUFBQndDc0JKc0FBUC8vQUl6K29nU3FCYkFDSmdBNUFBQUFCd0NzQk80QUFQLy9BSWorb2dQY0JEb0NKZ0JaQUFBQUJ3Q3NCRkVBQVAvL0FJei83QVNxQjdvQ0pnQTVBQUFCQndDcUJPa0JSZ0FVQUxBQVJWaXdDaThic1FvY1BsbXhFd2owTURILy93Q0kvK3dEM0FhRUFpWUFXUUFBQVFjQXFnU0ZBQkFBRkFDd0FFVllzQWN2RzdFSEdENVpzUkVCOURBeC8vOEFqUC9zQmgwSFFBSW1BSmtBQUFFSEFIVUIxQUZDQUJRQXNBQkZXTEFhTHh1eEdodytXYkVkQ1BRd01mLy9BSWovN0FVUEJlb0NKZ0NhQUFBQkJ3QjFBV1AvN0FBVUFMQUFSVml3RXk4YnNSTVlQbG14SEFuME1ESC8vd0NNLyt3R0hRZEFBaVlBbVFBQUFRY0FSQUZGQVVJQUZBQ3dBRVZZc0JJdkc3RVNIRDVac1J3STlEQXgvLzhBaVAvc0JROEY2Z0ltQUpvQUFBRUhBRVFBMVAvc0FCUUFzQUJGV0xBTkx4dXhEUmcrV2JFYkNmUXdNZi8vQUl6LzdBWWRCOFlDSmdDWkFBQUJCd0NxQlFNQlVnQVVBTEFBUlZpd0dpOGJzUm9jUGxteEtRajBNREgvL3dDSS8rd0ZEd1p3QWlZQW1nQUFBUWNBcWdTUy8vd0FGQUN3QUVWWXNCTXZHN0VUR0Q1WnNTZ0I5REF4Ly84QWpQL3NCaDBITGdJbUFKa0FBQUVIQUtRQTJnRkdBQlFBc0FCRldMQVNMeHV4RWh3K1diRWVCUFF3TWYvL0FJai83QVVQQmRnQ0pnQ2FBQUFCQmdDa2FmQUFGQUN3QUVWWXNCTXZHN0VUR0Q1WnNSMEI5REF4Ly84QWpQNmlCaDBHQWdJbUFKa0FBQUFIQUt3RkNRQUEvLzhBaVA2aUJROEVrQUltQUpvQUFBQUhBS3dFVndBQS8vOEFELzZpQkxzRnNBSW1BRDBBQUFBSEFLd0V1d0FBLy84QUZ2NEZBN0FFT2dJbUFGMEFBQUFIQUt3RkhQOWovLzhBRHdBQUJMc0h1Z0ltQUQwQUFBRUhBS29FdHdGR0FCUUFzQUJGV0xBSUx4dXhDQncrV2JFSkNQUXdNZi8vQUJiK1N3T3dCb1FDSmdCZEFBQUJCd0NxQkVvQUVBQVVBTEFBUlZpd0R5OGJzUThZUGxteEVBSDBNREgvL3dBUEFBQUV1d2NpQWlZQVBRQUFBUWNBcEFDT0FUb0FGQUN3QUVWWXNBRXZHN0VCSEQ1WnNRd0U5REF4Ly84QUZ2NUxBN0FGN0FJbUFGMEFBQUVHQUtRaEJBQVVBTEFBUlZpd0FTOGJzUUVZUGxteEV3SDBNREVBQWdCZi8rd0VyQVlBQUJjQUlnQi9BTEFVTDdBQVJWaXdEUzhic1EwWVBsbXdBRVZZc0FNdkc3RURFRDVac0FCRldMQUdMeHV4QmhBK1diSVBGQUZkc2k4VUFWMnlFd01VRVJJNXNCTXZzaEFCQ2l0WUlkZ2I5Rm13QWRDeUJBWU5FUkk1c2c4TkJoRVNPYkFURUxBVzBMQUdFTEliQVFvcldDSFlHL1Jac0EwUXNpQUJDaXRZSWRnYjlGa3dNUUVqRVNNbkJpTWlBalUxTkJJek1oY1JJVFVoTlRNVk13RVVGak15TnhFbUl5SUdCS3k4cWdsdnhyenQ3TCsrYi83NUFRZTV2UHhzbUlhd1VWT3NpSmdFMHZzdWRJZ0JOUGdPK1FFdmdnRUdsNWVYL0tpNDBKNEI4Wm5TQVAvL0FGLyt6UVNzQmdBQUpnQklBQUFBSndIZUFhRUNSd0VIQUVNQW4vOWtBQWdBc2k4ZUFWMHdNZi8vQUxMK21BVkVCYkFDSmdIakFBQUFCd0d3QkNQLy8vLy9BSnorbVFTQkJEb0NKZ0R3QUFBQUJ3R3dBMkFBQVAvL0FLbittUVdwQmJBQ0pnQXNBQUFBQndHd0JJZ0FBUC8vQUp6K21RU2lCRG9DSmdEekFBQUFCd0d3QTRFQUFQLy9BREgrbVFTWEJiQUNKZ0E0QUFBQUJ3R3dBajhBQVAvL0FDaittUU93QkRvQ0pnRDFBQUFBQndHd0FjWUFBUC8vQURuK21RVDRCYkFDSmdBOEFBQUFCd0d3QTljQUFQLy9BQ24rbVFRR0JEb0NKZ0JjQUFBQUJ3R3dBdVVBQVAvL0FKYittUVZtQmJBQ0pnRGdBQUFBQndHd0JFVUFBUC8vQUdmK21RUmVCRHNDSmdENEFBQUFCd0d3QXowQUFQLy9BSmIrbVFUSUJiQUNKZ0RnQUFBQUJ3R3dBdjRBQVAvL0FHZittUU85QkRzQ0pnRDRBQUFBQndHd0FmVUFBUC8vQUxIK21RUXdCYkFDSmdDd0FBQUFCd0d3QU84QUFQLy9BSnIrbVFOSEJEb0NKZ0RyQUFBQUJ3R3dBTlVBQVAvL0FCdittUWVDQmJBQ0pnRFpBQUFBQndHd0JtRUFBUC8vQUJYK21RWTlCRG9DSmdEdEFBQUFCd0d3QlJ3QUFQLy9BRC8rVlFXOUJjTUNKZ0UvQUFBQUJ3R3dBd2IvdlAvLy85NytXUVJqQkU0Q0pnRkFBQUFBQndHd0FnSC93UC8vQUl3QUFBUGZCZ0FDQmdCTUFBQUFBdi9VQUFBRXNRV3dBQklBR3dCaEFMQUFSVml3RHk4YnNROGNQbG13QUVWWXNBb3ZHN0VLRUQ1WnNnSUtEeEVTT2JBQ0w3SU9Ed0lSRWptd0RpK3lDd0VLSzFnaDJCdjBXYkFCMExBT0VMQVIwTEFDRUxJVEFRb3JXQ0hZRy9SWnNBb1FzaFFCQ2l0WUlkZ2I5Rmt3TVFFakZTRVdCQlVVQkFjaEVTTTFNelV6RlRNREVTRXlOalUwSmljQ1VPMEJhdVFCQVA3KzMvM1R6OC9BN2UwQlg0K2ZtWTBFVVBJRDVNVEY2Z1FFVUpmSnlmM1ovZDJZZ0h1T0FnQUMvOVFBQUFTeEJiQUFFZ0FiQUdFQXNBQkZXTEFRTHh1eEVCdytXYkFBUlZpd0NpOGJzUW9RUGxteUFnb1FFUkk1c0FJdnNoRUNFQkVTT2JBUkw3SUJBUW9yV0NIWUcvUlpzQXZRc0JFUXNBN1FzQUlRc2hNQkNpdFlJZGdiOUZtd0NoQ3lGQUVLSzFnaDJCdjBXVEF4QVNNVklSWUVGUlFFQnlFUkl6VXpOVE1WTXdNUklUSTJOVFFtSndKUTdRRnE1QUVBL3Y3Zi9kUFB6OER0N1FGZmo1K1pqUVJROGdQa3hNWHFCQVJRbDhuSi9kbjkzWmlBZTQ0Q0FBRUFBd0FBQkRBRnNBQU5BRTRBc0FCRldMQUlMeHV4Q0J3K1diQUFSVml3QWk4YnNRSVFQbG15RFFnQ0VSSTVzQTB2c25vTkFWMnlBQUVLSzFnaDJCdjBXYkFFMExBTkVMQUcwTEFJRUxJS0FRb3JXQ0hZRy9SWk1ERUJJUkVqRVNNMU14RWhGU0VSSVFKLy92UEJycTREZi8xQ0FRMENyUDFVQXF5WEFtMmUvakVBQUFILy9BQUFBMGNFT2dBTkFFa0FzQUJGV0xBSUx4dXhDQmcrV2JBQVJWaXdBaThic1FJUVBsbXlEUWdDRVJJNXNBMHZzZ0FCQ2l0WUlkZ2I5Rm13Qk5Dd0RSQ3dCdEN3Q0JDeUNnRUtLMWdoMkJ2MFdUQXhBU0VSSXhFak5UTVJJUlVoRVNFQ2VQN2N1cDZlQXEzK0RRRWtBZC8rSVFIZmx3SEVtZjdWQUFFQUN3QUFCVEVGc0FBVUFINEFzQUJGV0xBSUx4dXhDQncrV2JBQVJWaXdFQzhic1JBY1BsbXdBRVZZc0FJdkc3RUNFRDVac0FCRldMQVRMeHV4RXhBK1diSU9DQUlSRWptd0RpK3lMdzRCWGJMUERnRmRzZ0VCQ2l0WUlkZ2I5Rm15QndnQ0VSSTVzQWN2c2dRQkNpdFlJZGdiOUZtd0J4Q3dDdEN3QkJDd0ROQ3lFZ0VPRVJJNU1ERUJJeEVqRVNNMU16VXpGU0VWSVJFekFUTUJBU01DTjdIQXU3dkFBUUgrLzVZQi9lLzkxQUpWNndLTy9YSUVONWZpNHBmKzl3S0MvVDc5RWdBQUFmL1RBQUFFS0FZQUFCUUFkQUN3QUVWWXNBZ3ZHN0VJSGo1WnNBQkZXTEFRTHh1eEVCZytXYkFBUlZpd0FpOGJzUUlRUGxtd0FFVllzQk12RzdFVEVENVpzZzRRQWhFU09iQU9MN0lCQVFvcldDSFlHL1Jac2djSUVCRVNPYkFITDdJRUFRb3JXQ0hZRy9SWnNBY1FzQXJRc0FRUXNBelFzaElCRGhFU09UQXhBU01SSXhFak5UTTFNeFV6RlNNUk13RXpBUUVqQWVDQXV0UFR1dS92ZmdFNzIvNkdBYTdiQWZYK0N3VEJsNmlvbC8zTkFheitFLzJ6QVAvL0FMSCttd1d5QnhvQ0pnRGJBQUFBSndDZ0FURUJRd0VIQUJBRWZ2KzlBQk1Bc0FCRldMQUlMeHV4Q0J3K1diQU4zREF4QVAvL0FKeittd1MxQmNRQ0pnRHZBQUFBSndDZ0FLTC83UUVIQUJBRGdmKzlBQk1Bc0FCRldMQUlMeHV4Q0JnK1diQU4zREF4QVAvL0FLbittd1c3QmJBQ0pnQXNBQUFBQndBUUJJZi92Zi8vQUp6K213UzBCRG9DSmdEekFBQUFCd0FRQTREL3ZmLy9BS24rbXdiNEJiQUNKZ0F4QUFBQUJ3QVFCY1QvdmYvL0FKMyttd1lHQkRvQ0pnRHlBQUFBQndBUUJOTC92Zi8vQUMvK213V29CYkFDSmdEY0FBQUFCd0FRQkhUL3ZmLy9BQ3orbXdTM0JEb0NKZ0R4QUFBQUJ3QVFBNFAvdlFBQkFBOEFBQVM3QmJBQURnQldzZ29QRUJFU09RQ3dBRVZZc0Fndkc3RUlIRDVac0FCRldMQUxMeHV4Q3h3K1diQUFSVml3QWk4YnNRSVFQbG15QmdnQ0VSSTVzQVl2c2dVQkNpdFlJZGdiOUZtd0FOQ3lDZ2dDRVJJNXNBWVFzQTdRTURFQkl4RWpFU00xTXdFekFRRXpBVE1EcHVIQTI1VCtVZHdCZWdGODJ2NVJtZ0lKL2ZjQ0NaY0RFUDBsQXR2ODhBQUFBUUF1L21BRDN3UTZBQTRBWTdJS0R4QVJFamtBc0FCRldMQUlMeHV4Q0JnK1diQUFSVml3Q3k4YnNRc1lQbG13QUVWWXNBSXZHN0VDRWo1WnNBQkZXTEFBTHh1eEFCQStXYkFBUlZpd0JDOGJzUVFRUGxteUJnRUtLMWdoMkJ2MFdiSUtDd0FSRWptd0RkQ3dEdEF3TVFVakVTTVJJelV6QVRNQkFUTUJNd05LNXJyY3YvNmh2UUVmQVJpOS9xUElDLzVyQVpXWEE2NzgyZ01tL0ZJQUFBRUFPUUFBQk00RnNBQVJBR01Bc0FCRldMQUxMeHV4Q3h3K1diQUFSVml3RGk4YnNRNGNQbG13QUVWWXNBSXZHN0VDRUQ1WnNBQkZXTEFGTHh1eEJSQStXYklSQ3dJUkVqbXdFUyt5QUFFS0sxZ2gyQnYwV2JJRUN3SVJFam13QjlDd0VSQ3dDZEN5RFFzQ0VSSTVNREVCSXdFakFRRWpBU00xTXdFekFRRXpBVE1EeEtRQnJ1VCttdjZZNHdHdm9KSCthK0VCWHdGZDR2NXJsZ0tlL1dJQ09QM0lBcDZYQW52OTBnSXUvWVVBQVFBcEFBQUR5Z1E2QUJFQVl3Q3dBRVZZc0Fzdkc3RUxHRDVac0FCRldMQU9MeHV4RGhnK1diQUFSVml3QWk4YnNRSVFQbG13QUVWWXNBVXZHN0VGRUQ1WnNoRU9BaEVTT2JBUkw3SUFBUW9yV0NIWUcvUlpzZ1FPQWhFU09iQUgwTEFSRUxBSjBMSU5EZ0lSRWprd01RRWpBU01EQXlNQkl6VXpBVE1URXpNQk13TThzd0ZCMXZyNjF3RkJxcDcrMXRidDhOaisxcWNCNGY0ZkFaWCthd0hobHdIQy9uVUJpLzQrLy84QVkvL3NBK3dFVFFJR0FMNEFBUC8vQUJJQUFBUXZCYkFDSmdBcUFBQUFCd0hlLzRQK2YvLy9BSkFDaXdYSkF5SUFSZ0dYaEFCbVprQUEvLzhBWFFBQUJETUZ4QUlHQUJZQUFQLy9BRjcvN0FQNUJjUUNCZ0FYQUFELy93QTFBQUFFVUFXd0FnWUFHQUFBLy84QW12L3NCQzBGc0FJR0FCa0FBUC8vQUdULy93UDRCY1FBQmdBZEFBRC8vd0NILyt3RUhnWEVBQVlBRkJRQS8vOEFldi9zQk53SFZRSW1BQ3NBQUFFSEFIVUJ2Z0ZYQUJRQXNBQkZXTEFMTHh1eEN4dytXYkVpQ1BRd01mLy9BR0QrVmdQeUJmNENKZ0JMQUFBQkJ3QjFBVXNBQUFBVUFMQUFSVml3QXk4YnNRTVlQbG14SnduME1ESC8vd0NwQUFBRkNBYzBBaVlBTWdBQUFRY0FSQUZtQVRZQUZBQ3dBRVZZc0FZdkc3RUdIRDVac1FzSTlEQXgvLzhBakFBQUE5OEYvZ0ltQUZJQUFBRUhBRVFBekFBQUFCUUFzQUJGV0xBREx4dXhBeGcrV2JFVENmUXdNZi8vQUJ3QUFBVWRCeUFDSmdBbEFBQUJCd0NyQkcwQk1nQVhBTEFBUlZpd0JDOGJzUVFjUGxteERBajBzQkRRTURFQS8vOEFPZi9zQStvRjZ3SW1BRVVBQUFFSEFLc0VFdi85QUJjQXNBQkZXTEFYTHh1eEZ4ZytXYkVxQ2ZTd0x0QXdNUUQvL3dCZkFBQUVSZ2NzQWlZQUtRQUFBUWNBcXdRNEFUNEFGd0N3QUVWWXNBWXZHN0VHSEQ1WnNRMEk5TEFSMERBeEFQLy9BQ24vN0FQekJlc0NKZ0JKQUFBQkJ3Q3JCQUwvL1FBWEFMQUFSVml3Q0M4YnNRZ1lQbG14SHduMHNDUFFNREVBLy8vL0NnQUFBZW9ITEFJbUFDMEFBQUVIQUtzQzR3RStBQmNBc0FCRldMQUNMeHV4QWh3K1diRUZDUFN3Q2RBd01RRC8vLzd3QUFBQjBBWHBBaVlBakFBQUFRY0Fxd0xKLy9zQUZ3Q3dBRVZZc0FJdkc3RUNHRDVac1FVSjlMQUowREF4QVAvL0FIYi83QVVKQnlJQ0pnQXpBQUFCQndDckJJOEJOQUFYQUxBQVJWaXdEUzhic1EwY1BsbXhJUWowc0NYUU1ERUEvLzhBTS8vc0JEUUY2d0ltQUZNQUFBRUhBS3NFRFAvOUFCY0FzQUJGV0xBRUx4dXhCQmcrV2JFZENmU3dJZEF3TVFELy93QlZBQUFFeVFjZ0FpWUFOZ0FBQVFjQXF3UXVBVElBRndDd0FFVllzQVF2RzdFRUhENVpzUmtJOUxBZDBEQXhBUC8vLzRzQUFBS1hCZXNDSmdCV0FBQUJCd0NyQTJULy9RQVhBTEFBUlZpd0N5OGJzUXNZUGxteER3bjBzQlBRTURFQS8vOEFqUC9zQktvSElBSW1BRGtBQUFFSEFLc0VhQUV5QUJjQXNBQkZXTEFKTHh1eENSdytXYkVVQ1BTd0dOQXdNUUQvL3dBci8rd0QzQVhyQWlZQVdRQUFBUWNBcXdRRS8vMEFGd0N3QUVWWXNBY3ZHN0VIR0Q1WnNSSUo5TEFXMERBeEFQLy8vem9BQUFUU0JqOEFKZ0RQWkFBQUJ3Q3Qvb01BQVAvL0FLbitvZ1NJQmJBQ0pnQW1BQUFBQndDc0JMb0FBUC8vQUl6K29nUWdCZ0FDSmdCR0FBQUFCd0NzQktzQUFQLy9BS24rb2dUR0JiQUNKZ0FvQUFBQUJ3Q3NCTGtBQVAvL0FGLytvZ1B3QmdBQ0pnQklBQUFBQndDc0JMMEFBUC8vQUtuOS93VEdCYkFDSmdBb0FBQUFCd0dpQVdYK29QLy9BRi85L3dQd0JnQUNKZ0JJQUFBQUJ3R2lBV24rb1AvL0FLbitvZ1VJQmJBQ0pnQXNBQUFBQndDc0JSOEFBUC8vQUl6K29nUGZCZ0FDSmdCTUFBQUFCd0NzQktFQUFQLy9BS2tBQUFVRkJ5NENKZ0F2QUFBQkJ3QjFBWHNCTUFBVUFMQUFSVml3QlM4YnNRVWNQbG14RGdqME1ESC8vd0NOQUFBRURBYy9BaVlBVHdBQUFRY0FkUUZFQVVFQUNRQ3dCUyt3RDl3d01RRC8vd0NwL3FJRkJRV3dBaVlBTHdBQUFBY0FyQVRvQUFELy93Q04vcUlFREFZQUFpWUFUd0FBQUFjQXJBUmxBQUQvL3dDcC9xSUVIQVd3QWlZQU1BQUFBQWNBckFUQUFBRC8vd0NHL3FJQllRWUFBaVlBVUFBQUFBY0FyQU5PQUFELy93Q3AvcUlHVWdXd0FpWUFNUUFBQUFjQXJBWFNBQUQvL3dDTC9xSUdlQVJPQWlZQVVRQUFBQWNBckFYV0FBRC8vd0NwL3FJRkNBV3dBaVlBTWdBQUFBY0FyQVVrQUFELy93Q00vcUlEM3dST0FpWUFVZ0FBQUFjQXJBU0hBQUQvL3dDcEFBQUV3QWRBQWlZQU5BQUFBUWNBZFFGOEFVSUFGQUN3QUVWWXNBTXZHN0VESEQ1WnNSWUk5REF4Ly84QWpQNWdCQjRGOVFJbUFGUUFBQUVIQUhVQmsvLzNBQlFBc0FCRldMQU1MeHV4REJnK1diRWRDZlF3TWYvL0FLaitvZ1RKQmJBQ0pnQTJBQUFBQndDc0JMY0FBUC8vQUlMK29nS1hCRTRDSmdCV0FBQUFCd0NzQTBvQUFQLy9BRkQrb2dSeUJjUUNKZ0EzQUFBQUJ3Q3NCTWtBQVAvL0FGLytvZ083QkU0Q0pnQlhBQUFBQndDc0JJY0FBUC8vQURIK29nU1hCYkFDSmdBNEFBQUFCd0NzQkxvQUFQLy9BQW4rb2dKV0JVQUNKZ0JZQUFBQUJ3Q3NCQmtBQVAvL0FCd0FBQVQ5Qnk0Q0pnQTZBQUFCQndDa0FMUUJSZ0FVQUxBQVJWaXdCaThic1FZY1BsbXhDZ1QwTURILy93QWhBQUFEdWdYakFpWUFXZ0FBQVFZQXBCMzdBQlFBc0FCRldMQUJMeHV4QVJnK1diRUtBZlF3TWYvL0FCeitvZ1Q5QmJBQ0pnQTZBQUFBQndDc0JPUUFBUC8vQUNIK29nTzZCRG9DSmdCYUFBQUFCd0NzQkUwQUFQLy9BRDMrb2didEJiQUNKZ0E3QUFBQUJ3Q3NCZThBQVAvL0FDditvZ1hUQkRvQ0pnQmJBQUFBQndDc0JWTUFBUC8vQUZiK29nUjZCYkFDSmdBK0FBQUFCd0NzQkxvQUFQLy9BRmorb2dPekJEb0NKZ0JlQUFBQUJ3Q3NCR0lBQVAvLy9uai83QVZQQmRZQUpnQXpSZ0FBQndGYS9na0FBUC8vQUJNQUFBUndCUndDSmdHNkFBQUFCd0N0Lzl6KzNmLy8vNThBQUFQcUJSOEFKZ0crUEFBQUJ3Q3QvdWorNFAvLy83d0FBQVNVQlJ3QUpnSEJQQUFBQndDdC93WCszZi8vLzhBQUFBR05CUjRBSmdIQ1BBQUFCd0N0L3duKzMvLy8vOS8vOEFSa0JSd0FKZ0hJQ2dBQUJ3Q3QveWorM2YvLy8xY0FBQVJZQlJ3QUpnSFNQQUFBQndDdC9xRCszZi8vLy9nQUFBU0lCUnNBSmdIekNnQUFCd0N0LzBIKzNQLy9BQk1BQUFSd0JJMENCZ0c2QUFELy93Q0tBQUFEN3dTTkFnWUJ1d0FBLy84QWlnQUFBNjRFalFJR0FiNEFBUC8vQUVjQUFBUGdCSTBDQmdIVEFBRC8vd0NLQUFBRVdBU05BZ1lCd1FBQS8vOEFsd0FBQVZFRWpRSUdBY0lBQVAvL0FJb0FBQVJYQkkwQ0JnSEVBQUQvL3dDS0FBQUZkd1NOQWdZQnhnQUEvLzhBWVAvd0JGb0VuUUlHQWNnQUFQLy9BSW9BQUFRYkJJMENCZ0hKQUFELy93QW9BQUFEL1FTTkFnWUJ6UUFBLy84QURRQUFCQndFalFJR0FkSUFBUC8vQUNZQUFBUXhCSTBDQmdIUkFBRC8vLyswQUFBQ1BRWGpBaVlCd2dBQUFRY0FhdjlPQUI0QUZ3Q3dBRVZZc0FJdkc3RUNHajVac1FzQzlMQVUwREF4QVAvL0FBMEFBQVFjQmVNQ0pnSFNBQUFCQmdCcWJSNEFGd0N3QUVWWXNBZ3ZHN0VJR2o1WnNSQUM5TEFaMERBeEFQLy9BSW9BQUFPdUJlTUNKZ0crQUFBQkJnQnFjUjRBRndDd0FFVllzQVl2RzdFR0dqNVpzUk1DOUxBYzBEQXhBUC8vQUlvQUFBT0ZCaHdDSmdIcUFBQUJCd0IxQVRRQUhnQVVBTEFBUlZpd0JDOGJzUVFhUGxteENBYjBNREgvL3dCRC8vQUQzUVNkQWdZQnpBQUEvLzhBbHdBQUFWRUVqUUlHQWNJQUFQLy8vN1FBQUFJOUJlTUNKZ0hDQUFBQkJ3QnEvMDRBSGdBWEFMQUFSVml3QWk4YnNRSWFQbG14Q3dMMHNCVFFNREVBLy84QUsvL3dBMDBFalFJR0FjTUFBUC8vQUlvQUFBUlhCaHdDSmdIRUFBQUJCd0IxQVNVQUhnQVVBTEFBUlZpd0JTOGJzUVVhUGxteER3YjBNREgvL3dBaS8rd0VDd1gyQWlZQ0FRQUFBUVlBb0djZkFCUUFzQUJGV0xBQ0x4dXhBaG8rV2JFVUNQUXdNZi8vQUJNQUFBUndCSTBDQmdHNkFBRC8vd0NLQUFBRDd3U05BZ1lCdXdBQS8vOEFpZ0FBQTRVRWpRSUdBZW9BQVAvL0FJb0FBQU91QkkwQ0JnRytBQUQvL3dDS0FBQUVZUVgyQWlZQi9nQUFBUWNBb0FESkFCOEFGQUN3QUVWWXNBZ3ZHN0VJR2o1WnNRMEk5REF4Ly84QWlnQUFCWGNFalFJR0FjWUFBUC8vQUlvQUFBUllCSTBDQmdIQkFBRC8vd0JnLy9BRVdnU2RBZ1lCeUFBQS8vOEFpZ0FBQkVRRWpRSUdBZThBQVAvL0FJb0FBQVFiQkkwQ0JnSEpBQUQvL3dCZy8vQUVNQVNkQWdZQnZBQUEvLzhBS0FBQUEvMEVqUUlHQWMwQUFQLy9BQ1lBQUFReEJJMENCZ0hSQUFBQUFRQkgvbEFEMUFTZEFDa0FtZ0N3QUVWWXNBb3ZHN0VLR2o1WnNBQkZXTEFaTHh1eEdSQStXYkFBUlZpd0dDOGJzUmdTUGxtd0NoQ3lBd0VLSzFnaDJCdjBXYklHQ2hrUkVqbXlKeGtLRVJJNWZMQW5MeGl5OENjQlhiSUFKd0Z4c3FBbkFWMjBZQ2R3SndKZHNqQW5BWEcwWUNkd0p3SnhzaVlCQ2l0WUlkZ2I5Rm15RUNZbkVSSTVzQmtRc0JiUXNoMFpDaEVTT2JBWkVMSWdBUW9yV0NIWUcvUlpNREVCTkNZaklnWVZJelEyTXpJV0ZSUUdCeFlXRlJRR0J4RWpFU1ltTlRNV0ZqTXlOalUwSlNNMU16WURDSXA5Ym9HNjdielQ3bTVuZG5ITHI3cWp0cmtGZzNtSWt2Ny9uWnp2QTFCVVhWaFBqcldvbGxhTktTU1NXNHl2RXY1YkFhY1VyWWhXWUdCWXdRV1lCUUFBQVFDSy9wa0UrZ1NOQUE4QVhRQ3dBUyt3QUVWWXNBa3ZHN0VKR2o1WnNBQkZXTEFETHh1eEF4QStXYkFBUlZpd0JpOGJzUVlRUGxteUN3TUpFUkk1ZkxBTEx4aXlvQXNCWGJJRUFRb3JXQ0hZRy9SWnNBa1FzQXpRc0FNUXNnNEJDaXRZSWRnYjlGa3dNUUVqRVNNUklSRWpFVE1SSVJFekVUTUUrcnFoL2FTNXVRSmN1YUwrbVFGbkFmTCtEZ1NOL2YwQ0Evd01BQUFCQUdEK1ZnUXdCSjBBSHdCWUFMQUFSVml3RGk4YnNRNGFQbG13QUVWWXNBTXZHN0VERUQ1WnNBQkZXTEFGTHh1eEJSSStXYkFERUxBRzBMQU9FTEFTMExBT0VMSVZBUW9yV0NIWUcvUlpzQU1Rc2h3QkNpdFlJZGdiOUZtd0F4Q3dIOUF3TVFFR0JnY1JJeEVtQWpVMU5EWTJNeklXRnlNbUppTWlCZ2NWRkJZek1qWTNCREFVeTZtNnQ5ZDc1NWpNOXhPNUVvMSttYWNCbjVlSGpSUUJlYWpIRlA1Z0FhSWVBUjdqWWFUNWlOTzdnblRMdldxOXoyK0QvLzhBRFFBQUJCd0VqUUlHQWRJQUFQLy9BQUwrVVFWckJKMENKZ0lYQUFBQUJ3R3dBcnovdVAvL0FJb0FBQVJoQmRZQ0pnSCtBQUFCQndCd0FKd0FKZ0FUQUxBQVJWaXdDQzhic1FnYVBsbXdDOXd3TVFELy93QWkvK3dFQ3dYV0FpWUNBUUFBQVFZQWNEb21BQk1Bc0FCRldMQVJMeHV4RVJvK1diQVQzREF4QVAvL0FHQUFBQVVHQkkwQ0JnSHhBQUQvL3dBYy9rOEZIUVd3QWlZQUpRQUFBQWNBb3dGOEFBRC8vd0J0L2s4RDZnUk9BaVlBUlFBQUFBY0Fvd0RFQUFELy93Q3AvbGtFUmdXd0FpWUFLUUFBQUFjQW93RTZBQXIvL3dCZC9rOEQ4d1JPQWlZQVNRQUFBQWNBb3dFR0FBQUFBQUFBQUEwQW9nQURBQUVFQ1FBQUFGNEFBQUFEQUFFRUNRQUJBQXdBWGdBREFBRUVDUUFDQUE0QWFnQURBQUVFQ1FBREFBd0FYZ0FEQUFFRUNRQUVBQXdBWGdBREFBRUVDUUFGQUN3QWVBQURBQUVFQ1FBR0FCd0FwQUFEQUFFRUNRQUhBRUFBd0FBREFBRUVDUUFKQUF3QkFBQURBQUVFQ1FBTEFCUUJEQUFEQUFFRUNRQU1BQ1lCSUFBREFBRUVDUUFOQUZ3QlJnQURBQUVFQ1FBT0FGUUJvZ0JEQUc4QWNBQjVBSElBYVFCbkFHZ0FkQUFnQURJQU1BQXhBREVBSUFCSEFHOEFid0JuQUd3QVpRQWdBRWtBYmdCakFDNEFJQUJCQUd3QWJBQWdBRklBYVFCbkFHZ0FkQUJ6QUNBQVVnQmxBSE1BWlFCeUFIWUFaUUJrQUM0QVVnQnZBR0lBYndCMEFHOEFVZ0JsQUdjQWRRQnNBR0VBY2dCV0FHVUFjZ0J6QUdrQWJ3QnVBQ0FBTWdBdUFEQUFNQUF4QURFQU1BQXhBRHNBSUFBeUFEQUFNUUEwQUZJQWJ3QmlBRzhBZEFCdkFDMEFVZ0JsQUdjQWRRQnNBR0VBY2dCU0FHOEFZZ0J2QUhRQWJ3QWdBR2tBY3dBZ0FHRUFJQUIwQUhJQVlRQmtBR1VBYlFCaEFISUFhd0FnQUc4QVpnQWdBRWNBYndCdkFHY0FiQUJsQUM0QVJ3QnZBRzhBWndCc0FHVUFSd0J2QUc4QVp3QnNBR1VBTGdCakFHOEFiUUJEQUdnQWNnQnBBSE1BZEFCcEFHRUFiZ0FnQUZJQWJ3QmlBR1VBY2dCMEFITUFid0J1QUV3QWFRQmpBR1VBYmdCekFHVUFaQUFnQUhVQWJnQmtBR1VBY2dBZ0FIUUFhQUJsQUNBQVFRQndBR0VBWXdCb0FHVUFJQUJNQUdrQVl3QmxBRzRBY3dCbEFDd0FJQUJXQUdVQWNnQnpBR2tBYndCdUFDQUFNZ0F1QURBQWFBQjBBSFFBY0FBNkFDOEFMd0IzQUhjQWR3QXVBR0VBY0FCaEFHTUFhQUJsQUM0QWJ3QnlBR2NBTHdCc0FHa0FZd0JsQUc0QWN3QmxBSE1BTHdCTUFFa0FRd0JGQUU0QVV3QkZBQzBBTWdBdUFEQUFBd0FBQUFBQUFQOXFBR1FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBSUFDQUFDLy84QUR3QUJBQUFBREFBQUFBQUFBQUFDQUY0QUpRQStBQUVBUlFCZUFBRUFlUUI1QUFNQWdRQ0JBQUVBZ3dDREFBRUFoZ0NHQUFFQWlRQ0pBQUVBaXdDVkFBRUFsd0NjQUFFQW93Q2pBQU1BcHdDc0FBTUFzQUN3QUFFQXVRQzZBQUVBdmdDK0FBRUF3QURBQUFFQXdnRENBQUVBeGdER0FBRUF5Z0RLQUFFQXpBRE5BQUVBendEUUFBRUEwZ0RTQUFFQTJRRGRBQUVBNEFEZ0FBRUE1QURrQUFFQTVnRG9BQUVBNmdENkFBRUEvQUQ4QUFFQS9nRUFBQUVCQWdFQ0FBRUJCd0VJQUFFQkZRRVpBQUVCR3dFYkFBRUJId0VoQUFFQkl3RWtBQU1CT0FFNUFBRUJQZ0ZBQUFFQlJRRkZBQUVCVFFGTkFBRUJUd0ZQQUFFQlV3RlRBQUVCVlFGWEFBRUJXUUZaQUFFQm9nR2lBQU1Cb3dHcEFBSUJ1Z0hUQUFFQjRnSGlBQUVCNUFIa0FBRUI2Z0hxQUFFQjh3SHpBQUVCOVFIMUFBRUIvQUgrQUFFQ0FBSUJBQUVDQXdJREFBRUNCd0lIQUFFQ0NRSUxBQUVDRVFJUkFBRUNGZ0lZQUFFQ0dnSWFBQUVDUGdKREFBRUNSd0t2QUFFQ3NnTllBQUVEV3dOcUFBRURjUU54QUFFRGN3TjNBQUVEZWdOL0FBRURnUU9FQUFFRGhnT0tBQUVEakFPbkFBRURxd09yQUFFRHJRTzBBQUVEdGdPNEFBRUR2UU8vQUFFRHdRUE5BQUVEendQWkFBRUQzQVBzQUFFRDd3UklBQUVFU3dSTEFBRUVUUVJOQUFFRVR3UlFBQUVFV3dSYkFBRUVZZ1JrQUFFRVpnUm1BQUVFYWdScUFBRUViQVJ0QUFFRWJ3UnZBQUVFZHdTR0FBRUVod1NIQUFJRWlBU3dBQUVFc2dUS0FBRUV6QVRRQUFFRTBnVFZBQUVFMXdUWkFBRUUyd1RjQUFFRTNnVGhBQUVBQVFBQUFBb0FYQUNhQUFSRVJreFVBQnBqZVhKc0FDaG5jbVZyQURac1lYUnVBRVFBQkFBQUFBRC8vd0FDQUFBQUJBQUVBQUFBQVAvL0FBSUFBUUFGQUFRQUFBQUEvLzhBQWdBQ0FBWUFCQUFBQUFELy93QUNBQU1BQndBSVkzQnpjQUF5WTNCemNBQXlZM0J6Y0FBeVkzQnpjQUF5YTJWeWJnQTRhMlZ5YmdBNGEyVnliZ0E0YTJWeWJnQTRBQUFBQVFBQUFBQUFBUUFCQUFJQUJnSFlBQUVBQUFBQkFBZ0FBUUFLQUFVQUpBQklBQUVBM2dBSUFDVUFKZ0FuQUNnQUtRQXFBQ3NBTEFBdEFDNEFMd0F3QURFQU1nQXpBRFFBTlFBMkFEY0FPQUE1QURvQU93QThBRDBBUGdCbEFHY0FrZ0N3QUxFQXNnQ3pBTFFBdFFDMkFMY0F1QUM1QU5FQTBnRFRBTlFBMVFEV0FOY0EyQURaQU5vQTJ3RGNBTjBBM2dEZkFPQUE0UURpQU9NQTVBRGxBT1lBNXdEb0FTd0JNQUV5QVRnQk9nRThBVDRCUHdGRkFVWUJmd0dGQVlvQmpRSkhBa2dDU2dKTUFrMENUZ0pQQWxBQ1VRSlNBbE1DVkFKVkFsWUNWd0pZQWxrQ1dnSmJBbHdDWFFKZUFsOENZQUpoQW1JQ1l3SmtBbVVDWmdLREFvVUNod0tKQW9zQ2pRS1BBcEVDa3dLVkFwY0NtUUtiQXAwQ253S2hBcU1DcFFLbkFxa0Nxd0t0QXE4Q3NnSzBBcllDdUFLNkFyd0N2Z0xBQXNJQ3hRTEhBc2tDeXdMTkFzOEMwUUxUQXRVQzJRTGJBdDBDM3dMaEF1TUM1UUxuQXVrQzZ3THRBdThDOFFMeUF2UUM5Z05UQTFRRFZRTldBMWNEV0FOWkExc0RYQU5kQTE0RFh3TmdBMkVEWWdOa0EyVURaZ05uQTJnRGFRTnFBM29EZXdOOEEzMERmZ04vQTRBRGdRT0NBNE1EaEFPRkE0WURod09JQTRrRGlnT0xBNHdEalFPT0E0OER1d085QTc4RDFBUGFBK0FFU1FSTEJFOEVWd1JaQkY0RWFnQUNBQUFBQkFBT0Q4NFY4alZpQUFFRFZBQUVBQUFCcFFyU0N0SUdnZ3R3Q29BSy9nK2FEQUFHaUE3dUR1NE1SZzZnQ2lJTzdnN3VENW9LaWdhU0RHWU1SZ3JZQ3F3TlVnOFFDbDRMNGdzUURCWUdtQTIyRGJZTnRnd2dDeEFLVUF4TURiQU1UQXNRQnFZTjVndHdENW9MY0Fhc0JySUd2QWJDQnNnTVRBYk9CdGdOdGdiK0J4UUhLZ2N3QjBZSFRBZFNCNFFIaWdlUURjQU53QWUrRHU0SDRBZ0NEVklJTUE3dUR1NExKZzd1RHU0SVJnM0FEY0FJZUFpQ0NJd0lwZzFJQ0xnTnNBalNDT2dMRUFreUNVd0phQWxvQ3hBSllnbG9DV2dKYUF0d0RDQUsyQXhNQ3hBTjVnMUlEcUFPb0ExSUN0SUswZ3JTQ3RJSzBnbUtDYkFKdWduRUNlSUo5QW9HQ2hnSy9nK2FENW9QbWcrYURHWUxjQXR3QzNBTGNBdHdDM0FMY0FyK0RBQU1BQXdBREFBTzdnN3VEdTRPN2c3dUQ1b1BtZythRDVvUG1neEdERVlNUmd4R0R4QUw0Z3ZpQytJTDRndmlDK0lMNGd3V0RCWU1GZ3dXRGJZTUlBd2dEQ0FNSUF3Z0RFd01UQXR3QytJTGNBdmlDM0FMNGdyK0N2NEsvZ3IrRDVvTUFBd1dEQUFNRmd3QURCWU1BQXdXREFBTUZnN3VEYllPN2c3dUR1NE83Zzd1REVZT29Bb2lDaUlLSWdvaUR1NE50Zzd1RGJZTzdnMjJEYllQbWd3Z0Q1b01JQSthRENBS1VBcFFDbEFNWmd4bURHWU1SZ3hHREVZTVJneEdERVlLckE4UURFd1BFQXBlQ2w0S1hndHdEQUFPN2c3dUQ1b1BFQXR3Q29BTUFBcGVEdTRPN2c2Z0R1NE83ZythQ29vTVpnOFFEVklPN2c4UURiWU1JQXhNRENBTUFBM21EdTRPN2d4R0RxQU9vQXNtQzNBS2dBM21EQUFPN2c3dUQ1b0tpZ3IrREdZTlVndmlEQllNSUFzUURFd05zQXdXRFVnTVRBcXNDcXdLckE4UURFd0swZ3JTQ3RJTzdnMjJDM0FMNGd3QURCWUsyQXhNQ3Y0UEVBeE1EdTROVWcyd0R1NExjQXZpQzNBTDRnd0FEQllNRmd3V0RWSU5zQSthRENBTUlBc1FDeVlNVEFzbURFd0xKZ3hNRFZJTnNBdHdDK0lMY0F2aUMzQUw0Z3R3QytJTGNBdmlDM0FMNGd0d0MrSUxjQXZpQzNBTDRndHdDK0lMY0F2aUMzQUw0Z3dBREJZTUFBd1dEQUFNRmd3QURCWU1BQXdXREFBTUZnd0FEQllNQUF3V0R1NE83ZythRENBUG1nd2dENW9NSUErYURDQVBtZ3dnRDVvTUlBK2FEQ0FNSUF4R0RFWVBFQXhNRHhBTVRBOFFERXdPb0E3dURHWU5VZzJ3RGVZTlNBMVNEYkFOdGczQURlWU9vQTd1RHU0UEVBK2FBQUlBaHdBR0FBWUFBQUFMQUFzQUFRQVRBQk1BQWdBbEFDb0FBd0FzQURVQUNRQTRBRDRBRXdCRkFFWUFHZ0JKQUVvQUhBQk1BRXdBSGdCUkFGUUFId0JXQUZZQUl3QmFBRm9BSkFCY0FGMEFKUUNLQUlvQUp3Q2NBSndBS0FDd0FMUUFLUUMyQUxnQUxnQzZBTG9BTVFDOEFMMEFNZ0MvQU1BQU5BRENBTVFBTmdER0FNc0FPUURSQU5FQVB3RFRBTjBBUUFEZkFOOEFTd0RoQU9NQVRBRGxBT2NBVHdEcEFPMEFVZ0R3QVBBQVZ3RDFBUGNBV0FENkFQc0FXd0Q5QVA4QVhRRURBUVFBWUFFSkFRa0FZZ0VNQVF3QVl3RVhBUmtBWkFFckFTMEFad0V3QVRBQWFnRXlBVElBYXdGSkFVa0FiQUZzQVcwQWJRRnZBWEVBYndHNkFib0FjZ0c5QWIwQWN3SEVBY1VBZEFISUFjZ0FkZ0hLQWNzQWR3SE5BYzBBZVFJb0FpZ0FlZ0lxQWlzQWV3SkhBa2dBZlFKS0Frb0Fmd0pNQW0wQWdBSnZBbklBb2dKM0Fud0FwZ0tCQW9rQXJBS0xBb3NBdFFLTkFvMEF0Z0tQQW84QXR3S1JBcEVBdUFLVEFwd0F1UUtsQXFjQXd3S3BBcWtBeGdLckFxc0F4d0t0QXEwQXlBS3ZBcThBeVFLeUFySUF5Z0swQXJRQXl3SzJBcllBekFLNEFyZ0F6UUs2QXJvQXpnSzhBcndBendLK0Fzb0EwQUxNQXN3QTNRTE9BczRBM2dMUUF0QUEzd0xiQXRzQTRBTGRBdDBBNFFMZkF0OEE0Z0xoQXVFQTR3TGpBdU1BNUFMbEF1VUE1UUxuQXVjQTVnTHBBdWtBNXdMckF1c0E2QUx0QXUwQTZRTHZBdklBNmdMMEF2UUE3Z0wyQXZZQTd3TlRBMWdBOEFOYkEyb0E5Z050QTIwQkJnTnhBM0VCQndOekEzTUJDQU4zQTNjQkNRTjZBM3NCQ2dOOUE0WUJEQU9JQTRvQkZnT01BNUVCR1FPVEE1UUJId09XQTVrQklRT2ZBNkFCSlFPaUE2SUJKd09rQTZRQktBT21BNmtCS1FPc0E3RUJMUU96QTdNQk13TzNBN2dCTkFPOUE3MEJOZ08vQThnQk53UExBOHdCUVFQT0E5RUJRd1BZQTlrQlJ3UGRBOTBCU1FQZkErVUJTZ1BxQStzQlVRUHZCQmNCVXdRWkJCa0JmQVFiQkNnQmZRUXdCREFCaXdRekJETUJqQVExQkRVQmpRUkJCRVlCamdSSkJFa0JsQVJMQkVzQmxRUk5CRTBCbGdSUEJGQUJsd1JWQkZnQm1RUmJCRnNCblFSZEJGNEJuZ1JnQkdBQm9BUmtCR1FCb1FSbUJHWUJvZ1JxQkdvQm93U3FCS29CcEFBQkFCUC9JQUFDQUZiLzVnRzYvOEFBQVFHNkFBNEFBd0FOQUJRQVFRQVNBR0VBRXdBQkFQWC85UUFCQU1NQURRQUNBTGYvd2dEREFCQUFBUURELytJQUFRREcvL0lBQVFEREFBNEFBZ0RKLyswQTlmL0FBQWtBdnYvbUFNSC82d0RDLytrQXhQL3dBTVgvNXdESi8rTUF5Ly9PQU16LzFBRE4vOXNBQlFEQi8rd0F3d0FQQU1YLzZnREovOFFBeS8vbkFBVUFTdi9wQU1ILzdnRERBQkFBeGYvc0FNbi9JQUFCQU1NQUR3QUZBTW4vNmdEcy8rNEE5ZityQVRQLzdBRlkvK3dBQVFEMS85VUFBUURKQUFzQURBQktBQXdBeFFBTEFNa0FEQUc2Lzc4QnZQL3VBY0QvN0FISS8rMEJ5di9zQWN6LzlRSE5BQTRCendBTkFkSUFEUUFCQVBYLzJBQUJBUFgvcWdBTEFPWC8xQUQxLzhrQkNQL2xBUi8vNHdFei84UUJQUC9oQVUzLzFBRk8vL1VCVC8vbkFWZi8wZ0ZZLzhrQUNBRGwvOGtBOWYvZkFRai83UUVmLytzQk0vL2ZBVC8vNlFGTy8vVUJXUC9nQUFnQTVmL21BUFgvMEFFei84NEJQUC9vQVUzLzV3RlAvKzBCVi8vbUFWai8wQUFMQU5nQUZBRGwvK0FBN0FBVEFUei80UUU5LytBQlFQL2hBVVgvNlFGTi85OEJULy9lQVZmLzN3RlovL0lBQlFBYi8vSUE1Zi94QVUzLzhnRlAvL0lCVi8veUFBd0EyQUFUQU9YLzVnRG0vL1FBN0FBU0FQWC81d0V6LytjQlBQL2xBVDMvNkFGTi8rWUJULy9tQVZmLzVnRlkvK2NBQWdEWS8rSUJWLy9rQUFJQTJQL2hBT3ovNUFBR0FPei83Z0QxLys0QkNQLzBBUi8vOFFFei8rOEJXUC92QUFRQTlmLzBBUWovOVFFei8vVUJXUC8xQUFZQTdBQVVBUFgvN1FENy8rSUJNLy90QVQzLzdRRlkvKzBBQlFFYi8rc0J2UC9yQWNELzZRSEkvK3NCeXYvckFCSUFTZ0FOQU1iL3F3REgvOEFBeS8vVkFPei9xZ0ViLytJQkh3QU1BVTRBQ3dGUUFBc0J1disvQWJ6LzdnSEEvK3dCeVAvdEFjci83QUhNLy9VQnpRQU9BYzhBRFFIU0FBMEFCZ0RzQUJRQTlmL3dBUUFBREFFei8vQUJQZi9tQVZqLzhBQUZBT3dBT2dEMS8rTUJNLy9pQVQzLzR3RlkvK01BQVFEcy8rOEFDQUQxLzdvQkNQL1BBUi8vMndFei8xQUJQZitkQVU3LzhBRlEvL0lCV1A5TUFBa0J2UC95QWNELzhnSEkvL0lCeXYveUFjMy93QUhPLyt3QnovL0hBZEQvMkFIUy83OEFBZ0hQLys0QjBQLzFBQUlCeVAvckFjci82d0FIQWNqLzd3SEsvL0FCemYrN0FjNy83QUhQLzdjQjBQL1ZBZEwvdEFBRUFjMy83Z0hQLy9FQjBmL3NBZEwvNmdBRUFjMy82UUhQLytzQjBQL3hBZEwvNVFBRUFjMy84Z0hQLy9FQjBQLzFBZEwvN2dBQ0FjOEFEUUhTQUEwQUN3QmIvNlFCdWdBVEFiei84d0hBLy9FQnlQL3lBY3IvOFFITi96c0J6di9hQWMvL1ZBSFEvNUVCMHY4L0FBTUFTZ0FQQUZnQU1nQmJBQkVBQ0FCYi8rVUF0Ly9MQU16LzVBRzZBQTBCdlAvdEFjRC82d0hJLyt3Qnl2L3NBQUlCRUFBTEFWZi81Z0FJQUZnQURnQ0IvNThBdy8vZUFNYi81UURZLzZnQTdQL0tBVXIvNHdHNi84WUFDUUFOQUE4QVFRQU1BRmIvNndCaEFBNEJ1di9MQWJ6LzZRSEEvK2NCeVAvbkFjci81d0FCQUZzQUN3QUpBQTBBRkFCQkFCRUFWdi9pQUdFQUV3RzYvN1FCdlAvWkFjRC8yUUhJLzlrQnl2L1pBQVFBRGYvbUFFSC85QUJoLys4QlFQL3RBQVVBeWYvcUFPei83Z0QxLzdBQk0vL3NBVmovN0FBU0FOai9yZ0RsQUJJQTZ2L2dBT3ovclFEdS85WUEvUC9mQVFELzBnRUcvK0FCRy8vT0FTdi8zUUV0LytJQk1mL2dBVGYvNEFFOS8ra0JRUC9hQVVyL3ZRRlUvOThCVndBUkFCd0FJLy9EQUZqLzd3QmIvOThBbWYvdUFMZi81UUM0LzlFQXd3QVJBTW4veUFEWUFCTUE1Zi9GQVBYL3lnRXovNThCUFA5UkFUMy9ld0UvLzhvQlFQL2RBVVgvOGdGTi8zVUJULy9LQVZmL1R3RlkvNHdCd1AvMUFjai85UUhOLzhjQnp2L3hBYy8velFIUS85MEIwdi9FQUFjQTlmL3dBUWovOFFFZi8vTUJNLy94QVU3Lzh3RlEvK2tCV1AvVEFBVUFTdi91QUZ2LzZnSFAvL0FCMFAvdEFkTC84QUFDQVBYLzlRRnQvN0FBQ1FESi8rb0E3UCs0QVBYLzZnRUkvL0FCSC8veEFUUC82d0ZPLy9VQldQL3NBVzMvc0FBQkFici82d0FHQUVvQURRREZBQXNBeHYvcUFNa0FEQURzLzhnQkcvL3hBRGdBQlAvWUFGYi90UUJiLzhjQWJmNjRBSHovS0FDQi8wMEFoditPQUluL29RQzMvNjRBdnY5K0FNTC9ad0RGLzRjQXh2OWxBTW4vbmdETC8yb0F6UDl6QU0zL1hnRFkvNlVBNVFBUEFPbi81QURxLzZBQTdQOTBBTzcvZ0FEMS83SUEvUDk5QVA3L2dBRUEvM2tCQnY5OUFRai9md0ViLzVnQkgvL2FBU3YvZ1FFdC81Z0JNZjk5QVRQL3N3RTMvNkFCUGY5OEFULy9tZ0ZBLzJ3QlJmL21BVXIvYXdGTy81SUJVUCt0QVZUL2V3RlhBQThCV1ArUkFWbi84Z0c2LzY4QnZQKzVBY0QvdVFISS83a0J5dis1QWN6L3ZBSE4vL0VCMFAveEFkSC83UUFDQU96L3lRRWIvKzRBRndDMy85UUF3Zi90QU1NQUVRREovK0FBeS8vbkFNei81UUROLys0QTJBQVNBT24vNlFEMS85Y0JNLy9YQVQzLzB3RS8vOVlCUVAvRkFVWC81d0ZOQUEwQlR3QU1BVmovMWdGWi8vSUJ2UC9wQWNELzV3SEkvK2NCeXYvcEFBRUJHLy94QUFJQTlmL0FBVzMvc0FBSkFPWC93d0QxLzg4Qk0vL09BVHovNXdFLy85OEJUZi9SQVUvLzdBRlgvNkFCV1AvUkFDNEFWdjl0QUZ2L2pBQnQvYjhBZlA1OUFJSCt2QUNHL3lzQWlmOUxBTGYvWVFDKy93OEF3djdvQU1YL0h3REcvdVVBeWY5R0FNdis3UURNL3YwQXpmN1pBTmovVWdEbEFBVUE2Zis5QU9yL1NRRHMvdjRBN3Y4VEFQWC9hQUQ4L3c0QS92OFRBUUQvQndFRy93NEJDUDhSQVJ2L1BBRWYvNndCSy84VkFTMy9QQUV4L3c0Qk0vOXFBVGYvU1FFOS93d0JQLzgvQVVEKzhRRkYvOEFCU3Y3dkFVNy9NUUZRLzE4QlZQOEtBVmNBQlFGWS96QUJXZi9WQUJNQVcvL0JBTGYveFFESi83UUE2Zi9YQVBYL3VRRUkvN0lCRy8vU0FSLy95QUV6LzZBQlBmL0ZBVVgvNUFGTy84d0JVUC9NQVZqL3l3RlovKzhCdlAvb0FjRC81Z0hJLytjQnl2L25BQWdBMkFBVkFPd0FGUUU4LytRQlBmL2xBVC8vNUFGTi8rTUJULy9pQVZmLzVBQWlBQXIvNGdBTkFCUUFEdi9QQUVFQUVnQksvK29BVnYvWUFGai82Z0JoQUJNQWJmK3VBSHovelFDQi82QUFodi9CQUluL3dBQzMvOUFBdS8vcUFMNy94Z0MvQUEwQXdmL3BBTUwvMWdERi8rZ0F4dis2QU1uLzZRREwvOHNBelAvYUFNMy94d0YxLzlNQnV2K3JBYnovelFIQS84c0J5UC9MQWNyL3l3SE4vL01CMFAvekFkSC83d0FKQUlILzN3QzAvL01BdHYvd0FNUC82Z0RZLzk4QTVmL2dBVmYvNEFHNi8rMEIwZi8xQUFFQUdBQUVBQUFBQndBcUFGUUFxZ1BjQkZvRXhBVUdBQUVBQndBRUFBd0FLZ0ExQURZQVB3QktBQW9BT1AvWUFOSC8yQURWLzlnQk12L1lBVHIvMkFMYi85Z0MzZi9ZQXQvLzJBT08vOWdFVGYvWUFCVUFPZ0FVQURzQUVnQTlBQllCR0FBVUFtWUFGZ0x0QUJJQzd3QVdBdkVBRmdOWUFCWURad0FXQTJvQUZnT2dBQklEb2dBU0E2UUFFZ09tQUJZRHR3QVVBNzhBRmdSQkFCWUVRd0FXQkVVQUZnUnFBQllBekFBUS94WUFFdjhXQUNYL1ZnQXUvdmdBT0FBVUFFWC8zZ0JILytzQVNQL3JBRW4vNndCTC8rc0FVLy9yQUZYLzZ3QlovK29BV3Yvb0FGMy82QUNULytzQW1QL3JBSnIvNmdDeC8xWUFzLzlXQUxyLzZ3QzgvK2dBeC8vckFNai82d0RLLytvQTBRQVVBTlVBRkFEMi8rc0JBdi9yQVF6L1ZnRVgvK3NCR2Yvb0FSMy82d0VoLytzQk1nQVVBVG4vNndFNkFCUUJTLy9yQVV6LzZ3RlcvK3NCYnY4V0FYTC9GZ0YyL3hZQmQvOFdBa3ovVmdKTi8xWUNUdjlXQWsvL1ZnSlEvMVlDVWY5V0FsTC9WZ0puLzk0Q2FQL2VBbW4vM2dKcS85NENhLy9lQW16LzNnSnQvOTRDYnYvckFtLy82d0p3LytzQ2NmL3JBbkwvNndKNC8rc0NlZi9yQW5yLzZ3SjcvK3NDZlAvckFuMy82Z0orLytvQ2YvL3FBb0QvNmdLQi8rZ0Nndi9vQW9QL1ZnS0UvOTRDaGY5V0FvYi8zZ0tILzFZQ2lQL2VBb3IvNndLTS8rc0Nqdi9yQXBELzZ3S1MvK3NDbFAvckFwYi82d0tZLytzQ212L3JBcHovNndLZS8rc0NvUC9yQXFMLzZ3S2svK3NDc3Y3NEFzYi82d0xJLytzQ3l2L3JBdHNBRkFMZEFCUUMzd0FVQXVMLzZnTGsvK29DNXYvcUF1ai82Z0xxLytvQzdQL3FBdkQvNkFOVC8xWURXLzlXQTJ2LzZ3TnYvK29EY2YvckEzUC82QU4yLytvRGQvL3JBM2ovNmdOLy92Z0RnLzlXQTQ0QUZBT1EvOTREa2YvckE1UC82d09WLytzRGx2L29BNWovNndPZi8rZ0RwLy9vQTYvL1ZnT3cvOTREcy8vckE3ai82QU81LytzRHZ2L3JBOEQvNkFQRi8xWUR4di9lQThmL1ZnUEkvOTREelAvckE4Ny82d1BQLytzRDJmL3JBOXYvNndQZC8rc0Q0Zi9vQStQLzZBUGwvK2dEN1AvckErLy9WZ1B3Lzk0RDhmOVdBL0wvM2dQei8xWUQ5UC9lQS9YL1ZnUDIvOTREOS85V0Evai8zZ1A1LzFZRCt2L2VBL3YvVmdQOC85NEQvZjlXQS83LzNnUC8vMVlFQVAvZUJBSC9WZ1FDLzk0RUEvOVdCQVQvM2dRRi8xWUVCdi9lQkFqLzZ3UUsvK3NFRFAvckJBNy82d1FRLytzRUV2L3JCQlQvNndRVy8rc0VIUC9yQkI3LzZ3UWcvK3NFSXYvckJDVC82d1FtLytzRUtQL3JCQ3IvNndRcy8rc0VMdi9yQkRELzZ3UXkvK3NFTlAvcUJEYi82Z1E0LytvRU92L3FCRHovNmdRKy8rb0VRUC9xQkVMLzZBUkUvK2dFUnYvb0JFMEFGQUFmQURqLzFRQTYvK1FBTy8vc0FEMy8zUURSLzlVQTFmL1ZBUmovNUFFeS85VUJPdi9WQW1iLzNRTGIvOVVDM2YvVkF0Ly8xUUx0Lyt3QzcvL2RBdkgvM1FOWS85MERaLy9kQTJyLzNRT08vOVVEb1Avc0E2TC83QU9rLyt3RHB2L2RBN2YvNUFPLy85MEVRZi9kQkVQLzNRUkYvOTBFVGYvVkJHci8zUUFhQURqL3NBQTYvKzBBUGYvUUFOSC9zQURWLzdBQkdQL3RBVEwvc0FFNi83QUNadi9RQXR2L3NBTGQvN0FDMy8rd0F1Ly8wQUx4LzlBRFdQL1FBMmYvMEFOcS85QURqdit3QTZiLzBBTzMvKzBEdi8vUUJFSC8wQVJELzlBRVJmL1FCRTMvc0FScS85QUFFQUF1Lys0QU9mL3VBbUwvN2dKai8rNENaUC91QW1YLzdnS3kvKzRDNGYvdUF1UC83Z0xsLys0QzUvL3VBdW4vN2dMci8rNERmLy91QkRQLzdnUTEvKzRBUndBR0FCQUFDd0FRQUVmLzZBQkkvK2dBU2Yvb0FFdi82QUJWLytnQWsvL29BSmovNkFDNi8rZ0F4Ly9vQU1qLzZBRDIvK2dCQXYvb0FSMy82QUVoLytnQk9mL29BVXYvNkFGTS8rZ0JWdi9vQVd3QUVBRnRBQkFCYndBUUFYQUFFQUZ4QUJBQ2J2L29BbS8vNkFKdy8rZ0NjZi9vQW5MLzZBS0svK2dDalAvb0FvNy82QUtRLytnQ2t2L29BcFQvNkFLVy8rZ0NtUC9vQXByLzZBS2MvK2dDbnYvb0FxRC82QUtpLytnQ3BQL29BMnYvNkFPUi8rZ0RsZi9vQTVqLzZBT29BQkFEcVFBUUE2d0FFQU96LytnRHVmL29BNzcvNkFQTS8rZ0R6di9vQTgvLzZBUGIvK2dEN1Avb0JBai82QVFLLytnRURQL29CQTcvNkFRUS8rZ0VFdi9vQkJULzZBUVcvK2dFS3Yvb0JDei82QVF1LytnRU12L29BQUVBVmdBRUFBQUFKZ0NtQVp3QitnSVVBbFlDekFQQ0JMZ0ZrZ1lzQ01ZS2pBdGVERlFPR2c1TURuNE8vQkRpRVZnU0toUk1GUUlXYUJjaUY2Z1lCaGpJR1Q0ZXdCbFFHcUljNEIwQ0hoZ2VsaDdBSHVvQUFRQW1BRThBV0FCYkFGOEFuQUMwQUxZQXR3QzRBTDhBd2dEREFNUUF5UURMQU13QXpRRFJBTlVBMXdEWUFOb0E0Z0RtQU9jQTZBRHBBT29BN0FEdUFQQUE5UUQzQVBvQS93RUNBU0VCYlFBOUFFZi83QUJJLyt3QVNmL3NBRXYvN0FCVi8rd0FrLy9zQUpqLzdBQzYvK3dBeC8vc0FNai83QUQyLyt3QkF2L3NBUjMvN0FFaC8rd0JPZi9zQVV2LzdBRk0vK3dCVnYvc0FtNy83QUp2Lyt3Q2NQL3NBbkgvN0FKeS8rd0Npdi9zQW96LzdBS08vK3dDa1Avc0FwTC83QUtVLyt3Q2x2L3NBcGovN0FLYS8rd0NuUC9zQXA3LzdBS2cvK3dDb3Yvc0FxVC83QU5yLyt3RGtmL3NBNVgvN0FPWS8rd0RzLy9zQTduLzdBTysvK3dEelAvc0E4Ny83QVBQLyt3RDIvL3NBK3ovN0FRSS8rd0VDdi9zQkF6LzdBUU8vK3dFRVAvc0JCTC83QVFVLyt3RUZ2L3NCQ3IvN0FRcy8rd0VMdi9zQkRMLzdBQVhBRlAvN0FFWC8rd0NlUC9zQW5uLzdBSjYvK3dDZS8vc0Fuei83QUxHLyt3Q3lQL3NBc3IvN0FOeC8rd0RkLy9zQTVQLzdBUFovK3dEM2Yvc0JCei83QVFlLyt3RUlQL3NCQ0wvN0FRay8rd0VKdi9zQkNqLzdBUXcvK3dBQmdBUS80UUFFditFQVc3L2hBRnkvNFFCZHYrRUFYZi9oQUFRQUM3LzdBQTUvK3dDWXYvc0FtUC83QUprLyt3Q1pmL3NBckwvN0FMaC8rd0M0Ly9zQXVYLzdBTG4vK3dDNmYvc0F1di83QU4vLyt3RU0vL3NCRFgvN0FBZEFBYi84Z0FMLy9JQVd2L3pBRjMvOHdDOC8vTUJHZi96QVd6LzhnRnQvL0lCYi8veUFYRC84Z0Z4Ly9JQ2dmL3pBb0wvOHdMdy8vTURjLy96QTViLzh3T2YvL01EcC8vekE2ai84Z09wLy9JRHJQL3lBN2ovOHdQQS8vTUQ0Zi96QStQLzh3UGwvL01FUXYvekJFVC84d1JHLy9NQVBRQW4vL01BSy8vekFEUC84d0ExLy9NQWcvL3pBSkwvOHdDWC8vTUFzdi96QU5MLzh3RUgvL01CRnYvekFSci84d0VjLy9NQkh2L3pBU0QvOHdFNC8vTUJWZi96QWlqLzh3SXAvL01DSy8vekFpei84d0pULy9NQ1hmL3pBbDcvOHdKZi8vTUNZUC96QW1ILzh3S0ovL01DaS8vekFvMy84d0tQLy9NQ25mL3pBcC8vOHdLaC8vTUNvLy96QXNYLzh3TEgvL01DeWYvekF2ci84d05YLy9NRFpQL3pBNHIvOHdPTi8vTUR1di96QTczLzh3UFkvL01EMnYvekE5ei84d1FiLy9NRUhmL3pCQi8vOHdRaC8vTUVJLy96QkNYLzh3UW4vL01FS2YvekJDdi84d1F0Ly9NRUwvL3pCREgvOHdTcS8vTUFQUUFuLytZQUsvL21BRFAvNWdBMS8rWUFnLy9tQUpMLzVnQ1gvK1lBc3YvbUFOTC81Z0VILytZQkZ2L21BUnIvNWdFYy8rWUJIdi9tQVNELzVnRTQvK1lCVmYvbUFpai81Z0lwLytZQ0svL21BaXovNWdKVC8rWUNYZi9tQWw3LzVnSmYvK1lDWVAvbUFtSC81Z0tKLytZQ2kvL21BbzMvNWdLUC8rWUNuZi9tQXAvLzVnS2gvK1lDby8vbUFzWC81Z0xILytZQ3lmL21BdnIvNWdOWC8rWURaUC9tQTRyLzVnT04vK1lEdXYvbUE3My81Z1BZLytZRDJ2L21BOXovNWdRYi8rWUVIZi9tQkIvLzVnUWgvK1lFSS8vbUJDWC81Z1FuLytZRUtmL21CQ3YvNWdRdC8rWUVMLy9tQkRILzVnU3EvK1lBTmdBbC8rUUFQUC9TQUQzLzB3Q3gvK1FBcy8va0FObi8wZ0VNLytRQ1RQL2tBazMvNUFKTy8rUUNULy9rQWxELzVBSlIvK1FDVXYva0FtYi8wd0tELytRQ2hmL2tBb2YvNUFMdi85TUM4Zi9UQTFQLzVBTlkvOU1EVy8va0EyZi8wd05vLzlJRGF2L1RBNFAvNUFPUC85SURwdi9UQTYvLzVBTy8vOU1Ed3YvU0E4WC81QVBILytRRDBQL1NBK3IvMGdQdi8rUUQ4Zi9rQS9QLzVBUDEvK1FEOS8va0Evbi81QVA3LytRRC9mL2tBLy8vNUFRQi8rUUVBLy9rQkFYLzVBUkIvOU1FUS8vVEJFWC8wd1JQLzlJRVYvL1NCR3IvMHdBbUFCRC9IZ0FTL3g0QUpmL05BTEgvelFDei84MEJEUC9OQVc3L0hnRnkveDRCZHY4ZUFYZi9IZ0pNLzgwQ1RmL05BazcvelFKUC84MENVUC9OQWxIL3pRSlMvODBDZy8vTkFvWC96UUtILzgwRFUvL05BMXYvelFPRC84MERyLy9OQThYL3pRUEgvODBENy8vTkEvSC96UVB6LzgwRDlmL05BL2YvelFQNS84MEQrLy9OQS8zL3pRUC8vODBFQWYvTkJBUC96UVFGLzgwQXBnQkgvOXdBU1AvY0FFbi8zQUJMLzl3QVVmL3pBRkwvOHdCVC85WUFWUC96QUZYLzNBQlovOTBBV3YvaEFGMy80UUNULzl3QW1QL2NBSnIvM1FDNi85d0F2UC9oQU1ELzh3REgvOXdBeVAvY0FNci8zUURyLy9NQTcvL3pBUEQvOHdEeS8vTUE4Ly96QVBULzh3RDIvOXdBOS8vekFQbi84d0Q2Ly9NQS9mL3pBUC8vOHdFQy85d0JCUC96QVJmLzFnRVovK0VCSGYvY0FTSC8zQUUxLy9NQk9mL2NBVVQvOHdGSi8vTUJTLy9jQVV6LzNBRlcvOXdDYnYvY0FtLy8zQUp3Lzl3Q2NmL2NBbkwvM0FKMy8vTUNlUC9XQW5uLzFnSjYvOVlDZS8vV0Fuei8xZ0o5LzkwQ2Z2L2RBbi8vM1FLQS85MENnZi9oQW9MLzRRS0svOXdDalAvY0FvNy8zQUtRLzl3Q2t2L2NBcFQvM0FLVy85d0NtUC9jQXByLzNBS2MvOXdDbnYvY0FxRC8zQUtpLzl3Q3BQL2NBci8vOHdMQi8vTUN3Ly96QXNULzh3TEcvOVlDeVAvV0Fzci8xZ0xpLzkwQzVQL2RBdWIvM1FMby85MEM2di9kQXV6LzNRTHcvK0VEYS8vY0EyMy84d052LzkwRGNmL1dBM1AvNFFOMi85MERkLy9XQTNqLzNRT1IvOXdEa3YvekE1UC8xZ09VLy9NRGxmL2NBNWIvNFFPWS85d0RtZi96QTU3Lzh3T2YvK0VEcC8vaEE2Ny84d096Lzl3RHRQL3pBN2ovNFFPNS85d0R2di9jQThELzRRUE0vOXdEenYvY0E4Ly8zQVBWLy9NRDEvL3pBOW4vMWdQYi85d0QzZi9XQStILzRRUGovK0VENWYvaEErbi84d1BzLzl3RUNQL2NCQXIvM0FRTS85d0VEdi9jQkJELzNBUVMvOXdFRlAvY0JCYi8zQVFjLzlZRUh2L1dCQ0QvMWdRaS85WUVKUC9XQkNiLzFnUW8vOVlFS3YvY0JDei8zQVF1Lzl3RU1QL1dCREwvM0FRMC85MEVOdi9kQkRqLzNRUTYvOTBFUFAvZEJENy8zUVJBLzkwRVF2L2hCRVQvNFFSRy8rRUVTdi96QkV6Lzh3UlcvL01FWS8vekJHWC84d1JuLy9NQWNRQUcvOW9BQy8vYUFFZi84QUJJLy9BQVNmL3dBRXYvOEFCVi8vQUFXZi92QUZyLzNBQmQvOXdBay8vd0FKai84QUNhLys4QXV2L3dBTHovM0FESC8vQUF5UC93QU1yLzd3RDIvL0FCQXYvd0FSbi8zQUVkLy9BQklmL3dBVG4vOEFGTC8vQUJUUC93QVZiLzhBRnMvOW9CYmYvYUFXLy8yZ0Z3LzlvQmNmL2FBbTcvOEFKdi8vQUNjUC93QW5ILzhBSnkvL0FDZmYvdkFuNy83d0ovLys4Q2dQL3ZBb0gvM0FLQy85d0Npdi93QW96LzhBS08vL0FDa1Avd0FwTC84QUtVLy9BQ2x2L3dBcGovOEFLYS8vQUNuUC93QXA3LzhBS2cvL0FDb3Yvd0FxVC84QUxpLys4QzVQL3ZBdWIvN3dMby8rOEM2di92QXV6Lzd3THcvOXdEYS8vd0EyLy83d056Lzl3RGR2L3ZBM2ovN3dPUi8vQURsZi93QTViLzNBT1kvL0FEbi8vY0E2Zi8zQU9vLzlvRHFmL2FBNnovMmdPei8vQUR1UC9jQTduLzhBTysvL0FEd1AvY0E4ei84QVBPLy9BRHovL3dBOXYvOEFQaC85d0Q0Ly9jQStYLzNBUHMvL0FFQ1Avd0JBci84QVFNLy9BRUR2L3dCQkQvOEFRUy8vQUVGUC93QkJiLzhBUXEvL0FFTFAvd0JDNy84QVF5Ly9BRU5QL3ZCRGIvN3dRNC8rOEVPdi92QkR6Lzd3USsvKzhFUVAvdkJFTC8zQVJFLzl3RVJ2L2NBRFFBQnYrZ0FBdi9vQUJaLy9FQVd2L0ZBRjMveFFDYS8vRUF2UC9GQU1yLzhRRVovOFVCYlArZ0FXMy9vQUZ2LzZBQmNQK2dBWEgvb0FKOS8vRUNmdi94QW4vLzhRS0EvL0VDZ2YvRkFvTC94UUxpLy9FQzVQL3hBdWIvOFFMby8vRUM2di94QXV6LzhRTHcvOFVEYi8veEEzUC94UU4yLy9FRGVQL3hBNWIveFFPZi84VURwLy9GQTZqL29BT3AvNkFEclArZ0E3ai94UVBBLzhVRDRmL0ZBK1AveFFQbC84VUVOUC94QkRiLzhRUTQvL0VFT3YveEJEei84UVErLy9FRVFQL3hCRUwveFFSRS84VUVSdi9GQUQwQVIvL25BRWovNXdCSi8rY0FTLy9uQUZYLzV3Q1QvK2NBbVAvbkFMci81d0RILytjQXlQL25BUGIvNXdFQy8rY0JIZi9uQVNILzV3RTUvK2NCUy8vbkFVei81d0ZXLytjQ2J2L25BbS8vNXdKdy8rY0NjZi9uQW5MLzV3S0svK2NDalAvbkFvNy81d0tRLytjQ2t2L25BcFQvNXdLVy8rY0NtUC9uQXByLzV3S2MvK2NDbnYvbkFxRC81d0tpLytjQ3BQL25BMnYvNXdPUi8rY0RsZi9uQTVqLzV3T3ovK2NEdWYvbkE3Ny81d1BNLytjRHp2L25BOC8vNXdQYi8rY0Q3UC9uQkFqLzV3UUsvK2NFRFAvbkJBNy81d1FRLytjRUV2L25CQlQvNXdRVy8rY0VLdi9uQkN6LzV3UXUvK2NFTXYvbkFIRUFCZ0FNQUFzQURBQkgvK2dBU1Avb0FFbi82QUJMLytnQVUvL3FBRlgvNkFCYUFBc0FYUUFMQUpQLzZBQ1kvK2dBdXYvb0FMd0FDd0RILytnQXlQL29BUGIvNkFFQy8rZ0JGLy9xQVJrQUN3RWQvK2dCSWYvb0FUbi82QUZMLytnQlRQL29BVmIvNkFGc0FBd0JiUUFNQVc4QURBRndBQXdCY1FBTUFtNy82QUp2LytnQ2NQL29BbkgvNkFKeS8rZ0NlUC9xQW5uLzZnSjYvK29DZS8vcUFuei82Z0tCQUFzQ2dnQUxBb3IvNkFLTS8rZ0Nqdi9vQXBELzZBS1MvK2dDbFAvb0FwYi82QUtZLytnQ212L29BcHovNkFLZS8rZ0NvUC9vQXFMLzZBS2svK2dDeHYvcUFzai82Z0xLLytvQzhBQUxBMnYvNkFOeC8rb0Rjd0FMQTNmLzZnT1IvK2dEay8vcUE1WC82QU9XQUFzRG1QL29BNThBQ3dPbkFBc0RxQUFNQTZrQURBT3NBQXdEcy8vb0E3Z0FDd081LytnRHZ2L29BOEFBQ3dQTS8rZ0R6di9vQTgvLzZBUFovK29EMi8vb0E5My82Z1BoQUFzRDR3QUxBK1VBQ3dQcy8rZ0VDUC9vQkFyLzZBUU0vK2dFRHYvb0JCRC82QVFTLytnRUZQL29CQmIvNkFRYy8rb0VIdi9xQkNELzZnUWkvK29FSlAvcUJDYi82Z1FvLytvRUt2L29CQ3ovNkFRdS8rZ0VNUC9xQkRMLzZBUkNBQXNFUkFBTEJFWUFDd0FNQUZ6LzdRQmUvKzBBN2YvdEF2UC83UUwxLyswQzkvL3RBNWYvN1FQRC8rMEQwZi90QSt2LzdRUlEvKzBFV1AvdEFBd0FYUC95QUY3LzhnRHQvL0lDOC8veUF2WC84Z0wzLy9JRGwvL3lBOFAvOGdQUi8vSUQ2Ly95QkZELzhnUlkvL0lBSHdCYS8vUUFYUC95QUYzLzlBQmUvL01BdlAvMEFPMy84Z0VaLy9RQ2dmLzBBb0wvOUFMdy8vUUM4Ly96QXZYLzh3TDMvL01EYy8vMEE1Yi85QU9YLy9JRG4vLzBBNmYvOUFPNC8vUUR3UC8wQThQLzhnUFIvL0lENGYvMEErUC85QVBsLy9RRDYvL3lCRUwvOUFSRS8vUUVSdi8wQkZELzhnUlkvL0lBZVFBRy84b0FDLy9LQURqLzBnQTYvOVFBUFAvMEFEMy8wd0JSLzlFQVV2L1JBRlQvMFFCYS8rWUFYUC92QUYzLzVnQzgvK1lBd1AvUkFOSC8wZ0RWLzlJQTJmLzBBTjMvN1FEZy8rRUE2Ly9SQU8zLzd3RHYvOUVBOFAvUkFQTC8wUUR6LzlFQTlQL1JBUGYvMFFENS85RUErdi9SQVAzLzBRRC8vOUVCQlAvUkFSai8xQUVaLytZQk12L1NBVFgvMFFFNi85SUJSUC9SQVVuLzBRRnMvOG9CYmYvS0FXLy95Z0Z3LzhvQmNmL0tBbWIvMHdKMy85RUNnZi9tQW9MLzVnSy8vOUVDd2YvUkFzUC8wUUxFLzlFQzIvL1NBdDMvMGdMZi85SUM3Ly9UQXZELzVnTHgvOU1EV1AvVEEyZi8wd05vLy9RRGF2L1RBMjMvMFFOei8rWURndi90QTQ3LzBnT1AvL1FEa3YvUkE1VC8wUU9XLytZRGwvL3ZBNW4vMFFPZS85RURuLy9tQTZiLzB3T24vK1lEcVAvS0E2bi95Z09zLzhvRHJ2L1JBN1QvMFFPMy85UUR1UC9tQTcvLzB3UEEvK1lEd3YvMEE4UC83d1BRLy9RRDBmL3ZBOVgvMFFQWC85RUQ0UC90QStILzVnUGkvKzBENC8vbUErVC83UVBsLytZRDV2L2hBK24vMFFQcS8vUUQ2Ly92QkVILzB3UkMvK1lFUS8vVEJFVC81Z1JGLzlNRVJ2L21CRXIvMFFSTS85RUVUZi9TQkUvLzlBUlEvKzhFVWYvaEJGUC80UVJXLzlFRVYvLzBCRmovN3dSai85RUVaZi9SQkdmLzBRUnEvOU1BSFFBNC83NEFXdi92QUYzLzd3QzgvKzhBMGYrK0FOWC92Z0VaLys4Qk12KytBVHIvdmdLQi8rOENndi92QXR2L3ZnTGQvNzRDMy8rK0F2RC83d056Lys4RGp2KytBNWIvN3dPZi8rOERwLy92QTdqLzd3UEEvKzhENGYvdkErUC83d1BsLys4RVF2L3ZCRVQvN3dSRy8rOEVUZisrQURRQU9QL21BRHIvNXdBOC8vSUFQZi9uQUZ6LzhRRFIvK1lBMWYvbUFObi84Z0RkLys0QTRQL29BTzMvOFFFWS8rY0JNdi9tQVRyLzVnSm0vK2NDMi8vbUF0My81Z0xmLytZQzcvL25BdkgvNXdOWS8rY0RaLy9uQTJqLzhnTnEvK2NEZ3YvdUE0Ny81Z09QLy9JRGwvL3hBNmIvNXdPMy8rY0R2Ly9uQThMLzhnUEQvL0VEMFAveUE5SC84UVBnLys0RDR2L3VBK1QvN2dQbS8rZ0Q2di95QSt2LzhRUkIvK2NFUS8vbkJFWC81d1JOLytZRVQvL3lCRkQvOFFSUi8rZ0VVLy9vQkZmLzhnUlkvL0VFYXYvbkFJZ0FKUUFRQUNmLzZBQXIvK2dBTS8vb0FEWC82QUE0LytBQU92L2dBRDMvM3dDRC8rZ0Frdi9vQUpmLzZBQ3hBQkFBc3Yvb0FMTUFFQURSLytBQTB2L29BTk1BRUFEVi8rQUEzQUFRQU9ELzRRRHhBQkFBK1AvZ0FRTUFFQUVILytnQkRBQVFBUmIvNkFFWS8rQUJHdi9vQVJ6LzZBRWUvK2dCSVAvb0FUTC80QUU0LytnQk92L2dBVkVBRUFGVi8rZ0NLUC9vQWluLzZBSXIvK2dDTFAvb0Frd0FFQUpOQUJBQ1RnQVFBazhBRUFKUUFCQUNVUUFRQWxJQUVBSlQvK2dDWGYvb0FsNy82QUpmLytnQ1lQL29BbUgvNkFKbS85OENnd0FRQW9VQUVBS0hBQkFDaWYvb0Fvdi82QUtOLytnQ2ovL29BcDMvNkFLZi8rZ0NvZi9vQXFQLzZBTEYvK2dDeC8vb0Fzbi82QUxiLytBQzNmL2dBdC8vNEFMdi85OEM4Zi9mQXZyLzZBTlRBQkFEVi8vb0Exai8zd05iQUJBRFpQL29BMmYvM3dOcS85OERnd0FRQTRyLzZBT04vK2dEanYvZ0E2Yi8zd092QUJBRHQvL2dBN3IvNkFPOS8rZ0R2Ly9mQThVQUVBUEhBQkFEMlAvb0E5ci82QVBjLytnRDV2L2hBK2YvNEFQdEFCQUQ3Z0FRQSs4QUVBUHhBQkFEOHdBUUEvVUFFQVAzQUJBRCtRQVFBL3NBRUFQOUFCQUQvd0FRQkFFQUVBUURBQkFFQlFBUUJCdi82QVFkLytnRUgvL29CQ0gvNkFRai8rZ0VKZi9vQkNmLzZBUXAvK2dFSy8vb0JDMy82QVF2LytnRU1mL29CRUgvM3dSRC85OEVSZi9mQkUzLzRBUlIvK0VFVXYvZ0JGUC80UVJVLytBRWFBQVFCR2tBRUFScS85OEVxdi9vQUMwQU9QL3hBRHIvOUFBOC8vUUFQZi93QU5ILzhRRFQvL1VBMWYveEFObi85QURjLy9VQTNmL3pBUmovOUFFeS8vRUJPdi94QVZILzlRSm0vL0FDMi8veEF0My84UUxmLy9FQzcvL3dBdkgvOEFOWS8vQURaLy93QTJqLzlBTnEvL0FEZ3YvekE0Ny84UU9QLy9RRHB2L3dBN2YvOUFPLy8vQUR3di8wQTlELzlBUGcvL01ENHYvekErVC84d1BxLy9RRDdmLzFCRUgvOEFSRC8vQUVSZi93QkUzLzhRUlAvL1FFVi8vMEJHai85UVJxLy9BQVdRQWxBQThBT1AvbUFEci81Z0E4QUE0QVBmL21BTEVBRHdDekFBOEEwZi9tQU5NQURnRFYvK1lBMlFBT0FOd0FEZ0RkQUFzQTRQL2xBUEVBRHdENC8rZ0JBd0FQQVF3QUR3RVkvK1lCTXYvbUFUci81Z0ZSQUE0Q1RBQVBBazBBRHdKT0FBOENUd0FQQWxBQUR3SlJBQThDVWdBUEFtYi81Z0tEQUE4Q2hRQVBBb2NBRHdMYi8rWUMzZi9tQXQvLzVnTHYvK1lDOGYvbUExTUFEd05ZLytZRFd3QVBBMmYvNWdOb0FBNERhdi9tQTRJQUN3T0RBQThEanYvbUE0OEFEZ09tLytZRHJ3QVBBN2YvNWdPLy8rWUR3Z0FPQThVQUR3UEhBQThEMEFBT0ErQUFDd1BpQUFzRDVBQUxBK2IvNVFQbi8rZ0Q2Z0FPQSswQURnUHVBQThEN3dBUEEvRUFEd1B6QUE4RDlRQVBBL2NBRHdQNUFBOEQrd0FQQS8wQUR3UC9BQThFQVFBUEJBTUFEd1FGQUE4RVFmL21CRVAvNWdSRi8rWUVUZi9tQkU4QURnUlIvK1VFVXYvb0JGUC81UVJVLytnRVZ3QU9CR2dBRGdScEFBOEVhdi9tQUM0QU9QL2pBRHovNVFBOS8rUUEwZi9qQU5QLzVRRFYvK01BMmYvbEFOei81UURkLytrQThmL3FBUVAvNmdFeS8rTUJPdi9qQVZILzVRSm0vK1FDMi8vakF0My80d0xmLytNQzcvL2tBdkgvNUFOWS8rUURaLy9rQTJqLzVRTnEvK1FEZ3YvcEE0Ny80d09QLytVRHB2L2tBNy8vNUFQQy8rVUQwUC9sQStELzZRUGkvK2tENVAvcEErci81UVB0LytVRDd2L3FCRUgvNUFSRC8rUUVSZi9rQkUzLzR3UlAvK1VFVi8vbEJHai81UVJwLytvRWF2L2tBQ0VBT1AvaUFEei81QURSLytJQTAvL2tBTlgvNGdEWi8rUUEzUC9rQU4zLzZRRHgvK3NCQS8vckFUTC80Z0U2LytJQlVmL2tBdHYvNGdMZC8rSUMzLy9pQTJqLzVBT0MvK2tEanYvaUE0Ly81QVBDLytRRDBQL2tBK0QvNlFQaS8ra0Q1UC9wQStyLzVBUHQvK1FEN3YvckJFMy80Z1JQLytRRVYvL2tCR2ovNUFScC8rc0FGd0E0LytzQVBmL3pBTkgvNndEVi8rc0JNdi9yQVRyLzZ3Sm0vL01DMi8vckF0My82d0xmLytzQzcvL3pBdkgvOHdOWS8vTURaLy96QTJyLzh3T08vK3NEcHYvekE3Ly84d1JCLy9NRVEvL3pCRVgvOHdSTi8rc0Vhdi96QURBQVVmL3ZBRkwvN3dCVS8rOEFYUC93QU1ELzd3RHIvKzhBN2Yvd0FPLy83d0R3Lys4QTh2L3ZBUFAvN3dEMC8rOEE5Ly92QVBuLzd3RDYvKzhBL2YvdkFQLy83d0VFLys4Qk5mL3ZBVVQvN3dGSi8rOENkLy92QXIvLzd3TEIvKzhDdy8vdkFzVC83d050Lys4RGt2L3ZBNVQvN3dPWC8vQURtZi92QTU3Lzd3T3UvKzhEdFAvdkE4UC84QVBSLy9BRDFmL3ZBOWYvN3dQcC8rOEQ2Ly93QkVyLzd3Uk0vKzhFVVAvd0JGYi83d1JZLy9BRVkvL3ZCR1gvN3dSbi8rOEFIUUFHLy9JQUMvL3lBRnIvOVFCZC8vVUF2UC8xQVJuLzlRRnMvL0lCYmYveUFXLy84Z0Z3Ly9JQmNmL3lBb0gvOVFLQy8vVUM4UC8xQTNQLzlRT1cvL1VEbi8vMUE2Zi85UU9vLy9JRHFmL3lBNnovOGdPNC8vVUR3UC8xQStILzlRUGovL1VENWYvMUJFTC85UVJFLy9VRVJ2LzFBQVFBK1AvdEErZi83UVJTLyswRVZQL3RBRlFBUi8vd0FFai84QUJKLy9BQVMvL3dBRlAvNndCVi8vQUFrLy93QUpqLzhBQzYvL0FBeC8vd0FNai84QUQyLy9BQkF2L3dBUmYvNndFZC8vQUJJZi93QVRuLzhBRkwvL0FCVFAvd0FWYi84QUp1Ly9BQ2IvL3dBbkQvOEFKeC8vQUNjdi93QW5qLzZ3SjUvK3NDZXYvckFudi82d0o4LytzQ2l2L3dBb3ovOEFLTy8vQUNrUC93QXBMLzhBS1UvL0FDbHYvd0Fwai84QUthLy9BQ25QL3dBcDcvOEFLZy8vQUNvdi93QXFULzhBTEcvK3NDeVAvckFzci82d05yLy9BRGNmL3JBM2YvNndPUi8vQURrLy9yQTVYLzhBT1kvL0FEcy8vd0E3bi84QU8rLy9BRHpQL3dBODcvOEFQUC8vQUQyZi9yQTl2LzhBUGQvK3NEN1Avd0JBai84QVFLLy9BRURQL3dCQTcvOEFRUS8vQUVFdi93QkJULzhBUVcvL0FFSFAvckJCNy82d1FnLytzRUl2L3JCQ1QvNndRbS8rc0VLUC9yQkNyLzhBUXMvL0FFTHYvd0JERC82d1F5Ly9BQWp3QUdBQTBBQ3dBTkFFWC84QUJILzdBQVNQK3dBRW4vc0FCTC83QUFVLy9XQUZYL3NBQmFBQXNBWFFBTEFKUC9zQUNZLzdBQXV2K3dBTHdBQ3dESS83QUE4Zit2QVBiL3NBRUMvN0FCQS8rdkFSZi8xZ0VaQUFzQkhmK3dBU0gvc0FFNS83QUJTLyt3QVV6L3NBRlcvN0FCYkFBTkFXMEFEUUZ2QUEwQmNBQU5BWEVBRFFKbi8vQUNhUC93QW1uLzhBSnEvL0FDYS8vd0Ftei84QUp0Ly9BQ2J2K3dBbS8vc0FKdy83QUNjZit3QW5ML3NBSjQvOVlDZWYvV0Fuci8xZ0o3LzlZQ2ZQL1dBb0VBQ3dLQ0FBc0NoUC93QW9iLzhBS0kvL0FDaXYrd0Fvei9zQUtPLzdBQ2tQK3dBcEwvc0FLVS83QUNsdit3QXBqL3NBS2EvN0FDblArd0FwNy9zQUtnLzdBQ292K3dBcVQvc0FMRy85WUN5UC9XQXNyLzFnTHdBQXNEYS8rd0EzSC8xZ056QUFzRGQvL1dBNUQvOEFPUi83QURrLy9XQTVYL3NBT1dBQXNEbVArd0E1OEFDd09uQUFzRHFBQU5BNmtBRFFPc0FBMERzUC93QTdQL3NBTzRBQXNEdWYrd0E3Ny9zQVBBQUFzRHh2L3dBOGovOEFQTS83QUR6dit3QTgvL3NBUFovOVlEMi8rd0E5My8xZ1BoQUFzRDR3QUxBK1VBQ3dQcy83QUQ3dit2QS9ELzhBUHkvL0FEOVAvd0EvYi84QVA0Ly9BRCt2L3dBL3ovOEFQKy8vQUVBUC93QkFMLzhBUUUvL0FFQnYvd0JBai9zQVFLLzdBRURQK3dCQTcvc0FRUS83QUVFdit3QkJUL3NBUVcvN0FFSFAvV0JCNy8xZ1FnLzlZRUl2L1dCQ1QvMWdRbS85WUVLUC9XQkNyL3NBUXMvN0FFTHYrd0JERC8xZ1F5LzdBRVFnQUxCRVFBQ3dSR0FBc0VhZit2QUFnQThRQVFBUGovOEFFREFCQUQ1Ly93QSs0QUVBUlMvL0FFVlAvd0JHa0FFQUJGQUVjQURBQklBQXdBU1FBTUFFc0FEQUJWQUF3QWt3QU1BSmdBREFDNkFBd0F4d0FNQU1nQURBRHhBQmdBOWdBTUFQai85d0VDQUF3QkF3QVlBUjBBREFFaEFBd0JPUUFNQVVzQURBRk1BQXdCVmdBTUFtNEFEQUp2QUF3Q2NBQU1BbkVBREFKeUFBd0NpZ0FNQW93QURBS09BQXdDa0FBTUFwSUFEQUtVQUF3Q2xnQU1BcGdBREFLYUFBd0NuQUFNQXA0QURBS2dBQXdDb2dBTUFxUUFEQU5yQUF3RGtRQU1BNVVBREFPWUFBd0Rzd0FNQTdrQURBTytBQXdEekFBTUE4NEFEQVBQQUF3RDJ3QU1BK2YvOXdQc0FBd0Q3Z0FZQkFnQURBUUtBQXdFREFBTUJBNEFEQVFRQUF3RUVnQU1CQlFBREFRV0FBd0VLZ0FNQkN3QURBUXVBQXdFTWdBTUJGTC85d1JVLy9jRWFRQVlBQjhBV3YvMEFGei84QUJkLy9RQXZQLzBBTzMvOEFEeC8vTUJBLy96QVJuLzlBS0IvL1FDZ3YvMEF2RC85QU56Ly9RRGx2LzBBNWYvOEFPZi8vUURwLy8wQTdqLzlBUEEvL1FEdy8vd0E5SC84QVBoLy9RRDQvLzBBK1gvOUFQci8vQUQ3di96QkVMLzlBUkUvL1FFUnYvMEJGRC84QVJZLy9BRWFmL3pBQW9BQnYvV0FBdi8xZ0ZzLzlZQmJmL1dBVy8vMWdGdy85WUJjZi9XQTZqLzFnT3AvOVlEclAvV0FBb0FCdi8xQUF2LzlRRnMvL1VCYmYvMUFXLy85UUZ3Ly9VQmNmLzFBNmovOVFPcC8vVURyUC8xQUNFQVRBQWdBRThBSUFCUUFDQUFVLytBQUZmL2tBRVgvNEFDZVArQUFubi9nQUo2LzRBQ2UvK0FBbnovZ0FMRy80QUN5UCtBQXNyL2dBTFMvNUFDMVArUUF0Yi9rQUxZLzVBQzJ2K1FBM0gvZ0FOMy80QURrLytBQTVyL2tBUFovNEFEM2YrQUJCei9nQVFlLzRBRUlQK0FCQ0wvZ0FRay80QUVKditBQkNqL2dBUXcvNEFBQWdlS0FBUUFBQXBlRWI0QUlRQWRBQUFBRWYvTy80OEFFdi8xLysvL2lQLzAvN3YvZi8vMUFBei9xZitpLzhrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rVUFBQUFBLytqL3lRQUEvL01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFELzVRQVJBQUFBQUFBQUFBQUFBUC9qQUFBQUFBQUEvK1QvNUFBQUFCSUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzRRQUFBQUFBQUFBQUFBQUFBQUFBQUFELzVRQUFBQUQvNnYvVkFBQUFBUC9yLytyL212L3BBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvK01BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rWUFBQUFBQUFBQUFBQUEvKzBBQUFBVS8rOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC83UUFBQUFBQUFBQUFBQUFBQUFBQUFBRC95Lys0LzN6L2Z2L2tBQUFBQVArZEFBOEFFUCtoLzhRQUVBQVFBQUFBQVAreEFBRC9KZ0FBLzUzL3MvOFkvNVAvOFArUC80ei9FQUFBLzVML2N2OE0vdy8vdlFBQUFBRC9SQUFGQUFmL1MvK0dBQWNBQndBQUFBRC9QZ0FBL25vQUFQOUUvMnIrWXY4ei85SC9MUDhuQUFBQUFBQUFBQUFBQVAvWUFBQUFBQUFBLyt3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvN0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvWS82TUFBUC9oQUFBQUFQL2xBQUFBQVAvcEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rWUFBUC9BLytrQUFBQUFBQUFBQUFBQUFBRC9ld0FBQUFEL3YvL0svckFBQVA5eC91My8xQUFBLzFIL0VRQUFBQUFBRXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9KQUE4QUFQL1pBQUFBQUFBQS8vTUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8zYi80ZjY4LytiLzh3QUFBQUFBQUFBQS8vVUFBUDg0QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC9xQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOVFBQUFBRC84d0FBQUFELzBnQUFBQUQvNUFBQUFBQUFBQUFBQUFEL3RRQUEveDhBQVAvVUFBRC8yd0FBQUFELzBnQUFBQUFBQUFBUi8rSC8wUUFSLytjQUFBQUEvK3NBQUFBQS8rc0FBQUFPQUFBQUFBQUFBQUFBQUFBQUFBRC81Z0FBLzlJQUFBQUFBQUFBQUFBQUFBQUFBUC9zQUFBQUFQL2ovNkFBQVArL0FCRUFFZi9aLytJQUVnQVNBQUFBQVAraUFBMy9MUUFBLzcvLzZmL00vOWovOFArMy84Yi9vQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC80UUFBQUE3LzdRQUFBQUFBQUFBQUFBRC8xUUFBLzRVQUFQL2hBQUQveEFBQUFBRC8zd0FBQUFBQUFBQUEvK1VBQUFBQS8rWUFBQUFBLytzQUFBQUEvKzBBQUFBQUFBQUFBQUFBQUEwQUFBQUFBQUQvNndBQUFBQUFBQUFBQUFBQUFBQUFBQUQveWdBQS8rbi91Ly9wQUFBQUFQKzlBQUFBRWdBQUFBQUFBQUFTQUFBQUFQK2xBQUQrYlFBQS83MEFBUCtKLzVvQUFQK1IvOUlBQUFBQUFBRC84UUFBQUFBQUFBQUEvNzBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvMUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLzFBQUQvOGdBQUFBRC80d0FBQUFBQUFBQUEvL0VBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOFFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOHdBQUFBQUFBQUFBLy9JQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK1lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC94QUFELzhBQUFBQUQvZUFBQUFBQUFBQUFBLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELzZ3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvOWNBQUFBQUFBLy84UUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLzVVQUFQL3pBQUFBQUFBQUFBRC84UUFBQUFBQUFBQUFBQklBQUFBQUFBQUFBQUFRLyt3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQK0ZBQUQvN1FBQUFBQUFBQUFBLzlnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQL3NBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8rd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVArVi84TUFBQUFBQUFBQUFBQUFBQUFBQUFBQS80Z0FBQUFBQUFEL3hRQUFBQUQvN0FBQS84Ny9zQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC9WZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvL1VBQUFBQUFBQUFBQUFBLzhBQUFBQUEvdlVBQUFBQS84ai9yZi9uLytzQUFQL3dBQUFBQUFBQS84a0FBQUFBQUFBQUFBQUFBQUFBQUFBQS85My8yUUFBQUFBQUFQOTVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUC8xQUFBQUFBQUFBQUFBQUFBQUFBSUFlQUFHQUFZQUFBQUxBQXNBQVFBUUFCQUFBZ0FTQUJJQUF3QWxBQ2tBQkFBc0FEUUFDUUE0QUQ0QUVnQkZBRWNBR1FCSkFFa0FIQUJNQUV3QUhRQlJBRlFBSGdCV0FGWUFJZ0JhQUZvQUl3QmNBRjRBSkFDS0FJb0FKd0N3QUxNQUtBQzhBTHdBTEFEQUFNQUFMUURHQU1ZQUxnRFRBTlFBTHdEV0FOWUFNUURaQU5rQU1nRGJBTjBBTXdEZkFOOEFOZ0RoQU9FQU53RGpBT01BT0FEbEFPVUFPUURyQU9zQU9nRHRBTzBBT3dEMkFQWUFQQUQ3QVBzQVBRRDlBUDRBUGdFREFRUUFRQUVKQVFrQVFnRU1BUXdBUXdFWEFSa0FSQUVyQVMwQVJ3RXdBVEFBU2dFeUFUSUFTd0ZKQVVrQVRBRnNBWElBVFFGMkFYY0FWQUlvQWlnQVZnSXFBaXNBVndKSEFrZ0FXUUpLQWtvQVd3Sk1BbklBWEFKM0Fud0Fnd0tCQXBFQWlRS1RBcHdBbWdLbEFxY0FwQUtwQXFrQXB3S3JBcXNBcUFLdEFxMEFxUUt2QXE4QXFnS3lBcklBcXdLMEFyUUFyQUsyQXJZQXJRSzRBcmdBcmdLNkFyb0Fyd0s4QXJ3QXNBSytBc29Bc1FMTUFzd0F2Z0xPQXM0QXZ3TFFBdEFBd0FMYkF0c0F3UUxkQXQwQXdnTGZBdDhBd3dMaEF1RUF4QUxqQXVNQXhRTGxBdVVBeGdMbkF1Y0F4d0xwQXVrQXlBTHJBdXNBeVFMdEF1MEF5Z0x2QXZjQXl3TlRBMWdBMUFOYkEyb0EyZ050QTIwQTZnTnhBM0VBNndOekEzTUE3QU4zQTNjQTdRTjZBM3NBN2dOOUE0WUE4QU9JQTRvQStnT01BNUVBL1FPVEE1a0JBd09mQTZBQkNnT2lBNklCREFPa0E2UUJEUU9tQTZrQkRnT3NBN0VCRWdPekE3TUJHQU8zQTdnQkdRTzlBOGdCR3dQTEE4d0JKd1BPQTlFQktRUFlBOWtCTFFQZEE5MEJMd1BmQStVQk1BUHFBK3NCTndQdkJCY0JPUVFaQkJrQllnUWJCQ2dCWXdRd0JEQUJjUVF6QkRNQmNnUTFCRFVCY3dSQkJFWUJkQVJKQkVrQmVnUkxCRXNCZXdSTkJFMEJmQVJQQkZBQmZRUlZCRmdCZndSYkJGc0Jnd1JkQkY0QmhBUmdCR0FCaGdSa0JHUUJod1JtQkdZQmlBUnFCR29CaVFTcUJLb0JpZ0FDQVRvQUJnQUdBQjBBQ3dBTEFCMEFFQUFRQUI0QUVnQVNBQjRBSmdBbUFBRUFKd0FuQUFRQUtBQW9BQU1BS1FBcEFBVUFMQUF0QUFJQUxnQXVBQXdBTHdBdkFBa0FNQUF3QUFvQU1RQXlBQUlBTXdBekFBTUFOQUEwQUFzQU9BQTRBQVlBT1FBNUFBd0FPZ0E2QUEwQU93QTdBQkFBUEFBOEFBNEFQUUE5QUE4QVBnQStBQkVBUlFCRkFCTUFSZ0JHQUJVQVJ3QkhBQlFBU1FCSkFCWUFUQUJNQUJjQVVRQlNBQmNBVXdCVEFCZ0FWQUJVQUJVQVZnQldBQm9BV2dCYUFCa0FYQUJjQUJzQVhRQmRBQmtBWGdCZUFCd0FpZ0NLQUJVQXNBQ3dBQWNBc2dDeUFBTUF2QUM4QUJrQXdBREFBQmNBeGdER0FCVUEwd0RVQUI4QTFnRFdBQUlBMlFEWkFBNEEyd0RjQUFJQTNRRGRBQklBM3dEZkFBSUE0UURoQUFJQTR3RGpBQjhBNVFEbEFCOEE2d0RyQUFnQTdRRHRBQnNBOWdEMkFCVUErd0Q3QUNBQS9RRDlBQ0FBL2dEK0FCVUJBd0VFQUNBQkNRRUpBQ0FCRndFWEFCZ0JHQUVZQUEwQkdRRVpBQmtCS3dFckFCVUJMQUVzQUFjQkxRRXRBQWdCTUFFd0FBa0JNZ0V5QUFrQlNRRkpBQWdCYkFGdEFCMEJiZ0Z1QUI0QmJ3RnhBQjBCY2dGeUFCNEJkZ0YzQUI0Q0tBSW9BQVFDS2dJckFBTUNSd0pJQUFNQ1NnSktBQVlDVXdKVEFBUUNWQUpYQUFVQ1dBSmNBQUlDWFFKaEFBTUNZZ0psQUF3Q1pnSm1BQThDWndKdEFCTUNiZ0p1QUJRQ2J3SnlBQllDZHdKM0FCY0NlQUo4QUJnQ2dRS0NBQmtDaEFLRUFCTUNoZ0tHQUJNQ2lBS0lBQk1DaVFLSkFBUUNpZ0tLQUJRQ2l3S0xBQVFDakFLTUFCUUNqUUtOQUFRQ2pnS09BQlFDandLUEFBUUNrQUtRQUJRQ2tRS1JBQU1Da3dLVEFBVUNsQUtVQUJZQ2xRS1ZBQVVDbGdLV0FCWUNsd0tYQUFVQ21BS1lBQllDbVFLWkFBVUNtZ0thQUJZQ213S2JBQVVDbkFLY0FCWUNwUUtsQUFJQ3BnS21BQmNDcHdLbkFBSUNxUUtwQUFJQ3F3S3JBQUlDclFLdEFBSUNyd0t2QUFJQ3NnS3lBQXdDdEFLMEFBa0N0Z0syQUFvQ3VBSzRBQW9DdWdLNkFBb0N2QUs4QUFvQ3ZnSytBQUlDdndLL0FCY0N3QUxBQUFJQ3dRTEJBQmNDd2dMQ0FBSUN3d0xFQUJjQ3hRTEZBQU1DeGdMR0FCZ0N4d0xIQUFNQ3lBTElBQmdDeVFMSkFBTUN5Z0xLQUJnQ3pBTE1BQm9DemdMT0FCb0MwQUxRQUJvQzJ3TGJBQVlDM1FMZEFBWUMzd0xmQUFZQzRRTGhBQXdDNHdMakFBd0M1UUxsQUF3QzV3TG5BQXdDNlFMcEFBd0M2d0xyQUF3QzdRTHRBQkFDN3dMdkFBOEM4QUx3QUJrQzhRTHhBQThDOGdMeUFCRUM4d0x6QUJ3QzlBTDBBQkVDOVFMMUFCd0M5Z0wyQUJFQzl3TDNBQndEVkFOVUFBVURWUU5XQUFJRFZ3TlhBQU1EV0FOWUFBOERYQU5jQUFFRFhRTmRBQVVEWGdOZUFCRURYd05nQUFJRFlRTmhBQWtEWWdOakFBSURaQU5rQUFNRFpRTmxBQXNEWmdObUFBWURad05uQUE4RGFBTm9BQTREYVFOcEFBSURhZ05xQUE4RGJRTnRBQmNEY1FOeEFCZ0Rjd056QUJrRGR3TjNBQmdEZWdONkFBVURld043QUFjRGZRTitBQUlEZndOL0FBd0RnQU9CQUFrRGdnT0NBQklEaEFPRUFBRURoUU9GQUFjRGhnT0dBQVVEaUFPSkFBSURpZ09LQUFNRGpBT01BQXNEalFPTkFBUURqZ09PQUFZRGp3T1BBQTREa0FPUUFCTURrUU9SQUJZRGt3T1RBQmdEbEFPVUFCVURsUU9WQUJRRGxnT1dBQmtEbHdPWEFCc0RtQU9ZQUJZRG1RT1pBQWdEbndPZkFCa0RvQU9nQUJBRG9nT2lBQkFEcEFPa0FCQURwZ09tQUE4RHB3T25BQmtEcUFPcEFCMERyQU9zQUIwRHJRT3RBQUlEcmdPdUFCY0RzQU93QUJNRHNRT3hBQVVEc3dPekFCWUR0d08zQUEwRHVBTzRBQmtEdlFPOUFBUUR2Z08rQUJRRHZ3Ty9BQThEd0FQQUFCa0R3UVBCQUFJRHdnUENBQTREd3dQREFCc0R4QVBFQUFJRHhnUEdBQk1EeUFQSUFCTUR5d1BMQUFVRHpBUE1BQllEemdQUEFCWUQwQVBRQUE0RDBRUFJBQnNEMkFQWUFBTUQyUVBaQUJnRDNRUGRBQmdEM3dQZkFCVUQ0QVBnQUJJRDRRUGhBQmtENGdQaUFCSUQ0d1BqQUJrRDVBUGtBQklENVFQbEFCa0Q2Z1BxQUE0RDZ3UHJBQnNEOEFQd0FCTUQ4Z1B5QUJNRDlBUDBBQk1EOWdQMkFCTUQrQVA0QUJNRCtnUDZBQk1EL0FQOEFCTUQvZ1ArQUJNRUFBUUFBQk1FQWdRQ0FCTUVCQVFFQUJNRUJnUUdBQk1FQndRSEFBVUVDQVFJQUJZRUNRUUpBQVVFQ2dRS0FCWUVDd1FMQUFVRURBUU1BQllFRFFRTkFBVUVEZ1FPQUJZRUR3UVBBQVVFRUFRUUFCWUVFUVFSQUFVRUVnUVNBQllFRXdRVEFBVUVGQVFVQUJZRUZRUVZBQVVFRmdRV0FCWUVGd1FYQUFJRUdRUVpBQUlFR3dRYkFBTUVIQVFjQUJnRUhRUWRBQU1FSGdRZUFCZ0VId1FmQUFNRUlBUWdBQmdFSVFRaEFBTUVJZ1FpQUJnRUl3UWpBQU1FSkFRa0FCZ0VKUVFsQUFNRUpnUW1BQmdFSndRbkFBTUVLQVFvQUJnRU1BUXdBQmdFTXdRekFBd0VOUVExQUF3RVFRUkJBQThFUWdSQ0FCa0VRd1JEQUE4RVJBUkVBQmtFUlFSRkFBOEVSZ1JHQUJrRVNRUkpBQWtFU3dSTEFBSUVUUVJOQUFZRVR3UlBBQTRFVUFSUUFCc0VWUVJWQUFjRVZnUldBQWdFVndSWEFBNEVXQVJZQUJzRVd3UmJBQmNFWFFSZEFCOEVYZ1JlQUFjRVlBUmdBQWtFWkFSa0FBSUVaZ1JtQUFJRWFnUnFBQThFcWdTcUFBTUFBZ0Z0QUFZQUJnQUhBQXNBQ3dBSEFCQUFFQUFUQUJFQUVRQVhBQklBRWdBVEFDVUFKUUFSQUNjQUp3QUZBQ3NBS3dBRkFDNEFMZ0FjQURNQU13QUZBRFVBTlFBRkFEY0FOd0FaQURnQU9BQUtBRGtBT1FBR0FEb0FPZ0FOQURzQU93QUpBRHdBUEFBU0FEMEFQUUFPQUQ0QVBnQVVBRVVBUlFBYUFFY0FTUUFWQUVzQVN3QVZBRkVBVWdBWUFGTUFVd0FJQUZRQVZBQVlBRlVBVlFBVkFGY0FWd0FiQUZrQVdRQUxBRm9BV2dBQ0FGd0FYQUFXQUYwQVhRQUNBRjRBWGdBTUFJTUFnd0FGQUpJQWtnQUZBSk1Ba3dBVkFKY0Fsd0FGQUpnQW1BQVZBSm9BbWdBTEFMRUFzUUFSQUxJQXNnQUZBTE1Bc3dBUkFMb0F1Z0FWQUx3QXZBQUNBTUFBd0FBWUFNY0F5QUFWQU1vQXlnQUxBTkVBMFFBS0FOSUEwZ0FGQU5NQTB3QUJBTlVBMVFBS0FOa0EyUUFTQU53QTNBQUJBTjBBM1FBUUFPQUE0QUFQQU9zQTZ3QVlBTzBBN1FBV0FPOEE4QUFZQVBFQThRQUVBUElBOUFBWUFQWUE5Z0FWQVBjQTl3QVlBUGdBK0FBREFQa0ErZ0FZQVAwQS9RQVlBUDhBL3dBWUFRSUJBZ0FWQVFNQkF3QUVBUVFCQkFBWUFRY0JCd0FGQVF3QkRBQVJBUllCRmdBRkFSY0JGd0FJQVJnQkdBQU5BUmtCR1FBQ0FSb0JHZ0FGQVJ3QkhBQUZBUjBCSFFBVkFSNEJIZ0FGQVNBQklBQUZBU0VCSVFBVkFUSUJNZ0FLQVRVQk5RQVlBVGdCT0FBRkFUa0JPUUFWQVRvQk9nQUtBVVFCUkFBWUFVa0JTUUFZQVVzQlRBQVZBVkVCVVFBQkFWVUJWUUFGQVZZQlZnQVZBV2tCYWdBWEFXd0JiUUFIQVc0QmJnQVRBVzhCY1FBSEFYSUJjZ0FUQVhZQmR3QVRBaWdDS1FBRkFpc0NMQUFGQWtZQ1JnQVhBa3dDVWdBUkFsTUNVd0FGQWwwQ1lRQUZBbUlDWlFBR0FtWUNaZ0FPQW1jQ2JRQWFBbTRDY2dBVkFuY0Nkd0FZQW5nQ2ZBQUlBbjBDZ0FBTEFvRUNnZ0FDQW9NQ2d3QVJBb1FDaEFBYUFvVUNoUUFSQW9ZQ2hnQWFBb2NDaHdBUkFvZ0NpQUFhQW9rQ2lRQUZBb29DaWdBVkFvc0Npd0FGQW93Q2pBQVZBbzBDalFBRkFvNENqZ0FWQW84Q2p3QUZBcEFDa0FBVkFwSUNrZ0FWQXBRQ2xBQVZBcFlDbGdBVkFwZ0NtQUFWQXBvQ21nQVZBcHdDbkFBVkFwMENuUUFGQXA0Q25nQVZBcDhDbndBRkFxQUNvQUFWQXFFQ29RQUZBcUlDb2dBVkFxTUNvd0FGQXFRQ3BBQVZBcklDc2dBY0FyOEN2d0FZQXNFQ3dRQVlBc01DeEFBWUFzVUN4UUFGQXNZQ3hnQUlBc2NDeHdBRkFzZ0N5QUFJQXNrQ3lRQUZBc29DeWdBSUF0RUMwUUFaQXRJQzBnQWJBdE1DMHdBWkF0UUMxQUFiQXRVQzFRQVpBdFlDMWdBYkF0Y0Mxd0FaQXRnQzJBQWJBdGtDMlFBWkF0b0MyZ0FiQXRzQzJ3QUtBdDBDM1FBS0F0OEMzd0FLQXVFQzRRQUdBdUlDNGdBTEF1TUM0d0FHQXVRQzVBQUxBdVVDNVFBR0F1WUM1Z0FMQXVjQzV3QUdBdWdDNkFBTEF1a0M2UUFHQXVvQzZnQUxBdXNDNndBR0F1d0M3QUFMQXUwQzdRQUpBdThDN3dBT0F2QUM4QUFDQXZFQzhRQU9BdklDOGdBVUF2TUM4d0FNQXZRQzlBQVVBdlVDOVFBTUF2WUM5Z0FVQXZjQzl3QU1Bdm9DK2dBRkExTURVd0FSQTFjRFZ3QUZBMWdEV0FBT0Exc0RXd0FSQTE0RFhnQVVBMlFEWkFBRkEyY0Rad0FPQTJnRGFBQVNBMm9EYWdBT0Eyc0Rhd0FWQTIwRGJRQVlBMjhEYndBTEEzRURjUUFJQTNNRGN3QUNBM1lEZGdBTEEzY0Rkd0FJQTNnRGVBQUxBMzhEZndBY0E0SURnZ0FRQTRNRGd3QVJBNG9EaWdBRkE0MERqUUFGQTQ0RGpnQUtBNDhEandBU0E1QURrQUFhQTVFRGtRQVZBNUlEa2dBWUE1TURrd0FJQTVRRGxBQVlBNVVEbFFBVkE1WURsZ0FDQTVjRGx3QVdBNWdEbUFBVkE1a0RtUUFZQTVvRG1nQWJBNTREbmdBWUE1OERud0FDQTZBRG9BQUpBNklEb2dBSkE2UURwQUFKQTZZRHBnQU9BNmNEcHdBQ0E2Z0RxUUFIQTZ3RHJBQUhBNjREcmdBWUE2OERyd0FSQTdBRHNBQWFBN01Ec3dBVkE3UUR0QUFZQTdjRHR3QU5BN2dEdUFBQ0E3a0R1UUFWQTdvRHVnQUZBNzBEdlFBRkE3NER2Z0FWQTc4RHZ3QU9BOEFEd0FBQ0E4SUR3Z0FTQThNRHd3QVdBOFVEeFFBUkE4WUR4Z0FhQThjRHh3QVJBOGdEeUFBYUE4d0R6QUFWQTg0RHp3QVZBOUFEMEFBU0E5RUQwUUFXQTlVRDFRQVlBOWNEMXdBWUE5Z0QyQUFGQTlrRDJRQUlBOW9EMmdBRkE5c0Qyd0FWQTl3RDNBQUZBOTBEM1FBSUErQUQ0QUFRQStFRDRRQUNBK0lENGdBUUErTUQ0d0FDQStRRDVBQVFBK1VENVFBQ0ErWUQ1Z0FQQStjRDV3QURBK2tENlFBWUErb0Q2Z0FTQStzRDZ3QVdBK3dEN0FBVkErMEQ3UUFCQSs0RDdnQUVBKzhEN3dBUkEvQUQ4QUFhQS9FRDhRQVJBL0lEOGdBYUEvTUQ4d0FSQS9RRDlBQWFBL1VEOVFBUkEvWUQ5Z0FhQS9jRDl3QVJBL2dEK0FBYUEva0QrUUFSQS9vRCtnQWFBL3NEK3dBUkEvd0QvQUFhQS8wRC9RQVJBLzREL2dBYUEvOEQvd0FSQkFBRUFBQWFCQUVFQVFBUkJBSUVBZ0FhQkFNRUF3QVJCQVFFQkFBYUJBVUVCUUFSQkFZRUJnQWFCQWdFQ0FBVkJBb0VDZ0FWQkF3RURBQVZCQTRFRGdBVkJCQUVFQUFWQkJJRUVnQVZCQlFFRkFBVkJCWUVGZ0FWQkJzRUd3QUZCQndFSEFBSUJCMEVIUUFGQkI0RUhnQUlCQjhFSHdBRkJDQUVJQUFJQkNFRUlRQUZCQ0lFSWdBSUJDTUVJd0FGQkNRRUpBQUlCQ1VFSlFBRkJDWUVKZ0FJQkNjRUp3QUZCQ2dFS0FBSUJDa0VLUUFGQkNvRUtnQVZCQ3NFS3dBRkJDd0VMQUFWQkMwRUxRQUZCQzRFTGdBVkJDOEVMd0FGQkRBRU1BQUlCREVFTVFBRkJESUVNZ0FWQkRNRU13QUdCRFFFTkFBTEJEVUVOUUFHQkRZRU5nQUxCRGdFT0FBTEJEb0VPZ0FMQkR3RVBBQUxCRDRFUGdBTEJFQUVRQUFMQkVFRVFRQU9CRUlFUWdBQ0JFTUVRd0FPQkVRRVJBQUNCRVVFUlFBT0JFWUVSZ0FDQkVvRVNnQVlCRXdFVEFBWUJFMEVUUUFLQkU4RVR3QVNCRkFFVUFBV0JGRUVVUUFQQkZJRVVnQURCRk1FVXdBUEJGUUVWQUFEQkZZRVZnQVlCRmNFVndBU0JGZ0VXQUFXQkdNRVl3QVlCR1VFWlFBWUJHY0Vad0FZQkdnRWFBQUJCR2tFYVFBRUJHb0VhZ0FPQkhBRWNBQVhCS29FcWdBRkFBRUFBQUFLQWdZRzhBQUVSRVpNVkFBYVkzbHliQUJJWjNKbGF3QjJiR0YwYmdDa0FBUUFBQUFBLy84QUVnQUFBQW9BRkFBZUFDZ0FOQUJCQUVzQVZRQmZBR2tBY3dCOUFJY0FrUUNiQUtVQXJ3QUVBQUFBQVAvL0FCSUFBUUFMQUJVQUh3QXBBRFVBUWdCTUFGWUFZQUJxQUhRQWZnQ0lBSklBbkFDbUFMQUFCQUFBQUFELy93QVNBQUlBREFBV0FDQUFLZ0EyQUVNQVRRQlhBR0VBYXdCMUFIOEFpUUNUQUowQXB3Q3hBQ2dBQmtGYVJTQUFWRU5TVkNBQWZrMVBUQ0FBcUU1QlZpQUExRkpQVFNBQkFGUlZVaUFCTEFBQS8vOEFFd0FEQUEwQUZ3QWhBQ3NBTWdBM0FFUUFUZ0JZQUdJQWJBQjJBSUFBaWdDVUFKNEFxQUN5QUFELy93QVNBQVFBRGdBWUFDSUFMQUE0QUVVQVR3QlpBR01BYlFCM0FJRUFpd0NWQUo4QXFRQ3pBQUQvL3dBU0FBVUFEd0FaQUNNQUxRQTVBRVlBVUFCYUFHUUFiZ0I0QUlJQWpBQ1dBS0FBcWdDMEFBRC8vd0FUQUFZQUVBQWFBQ1FBTGdBNkFENEFSd0JSQUZzQVpRQnZBSGtBZ3dDTkFKY0FvUUNyQUxVQUFQLy9BQk1BQndBUkFCc0FKUUF2QURzQVB3QklBRklBWEFCbUFIQUFlZ0NFQUk0QW1BQ2lBS3dBdGdBQS8vOEFFd0FJQUJJQUhBQW1BREFBUEFCQUFFa0FVd0JkQUdjQWNRQjdBSVVBandDWkFLTUFyUUMzQUFELy93QVRBQWtBRXdBZEFDY0FNUUF6QUQwQVNnQlVBRjRBYUFCeUFId0FoZ0NRQUpvQXBBQ3VBTGdBdVdNeWMyTUVXR015YzJNRVdHTXljMk1FV0dNeWMyTUVXR015YzJNRVdHTXljMk1FV0dNeWMyTUVXR015YzJNRVdHTXljMk1FV0dNeWMyTUVXR05qYlhBRVhtTmpiWEFFWG1OamJYQUVYbU5qYlhBRVhtTmpiWEFFWG1OamJYQUVYbU5qYlhBRVhtTmpiWEFFWG1OamJYQUVYbU5qYlhBRVhtUnNhV2NFWm1Sc2FXY0VabVJzYVdjRVptUnNhV2NFWm1Sc2FXY0VabVJzYVdjRVptUnNhV2NFWm1Sc2FXY0VabVJzYVdjRVptUnNhV2NFWm1SdWIyMEViR1J1YjIwRWJHUnViMjBFYkdSdWIyMEViR1J1YjIwRWJHUnViMjBFYkdSdWIyMEViR1J1YjIwRWJHUnViMjBFYkdSdWIyMEViR1p5WVdNRWNtWnlZV01FY21aeVlXTUVjbVp5WVdNRWNtWnlZV01FY21aeVlXTUVjbVp5WVdNRWNtWnlZV01FY21aeVlXTUVjbVp5WVdNRWNteHBaMkVFZkd4cFoyRUVoR3h1ZFcwRWlteHVkVzBFaW14dWRXMEVpbXh1ZFcwRWlteHVkVzBFaW14dWRXMEVpbXh1ZFcwRWlteHVkVzBFaW14dWRXMEVpbXh1ZFcwRWlteHZZMndFa0d4dlkyd0VsbXh2WTJ3RW5HNTFiWElFb201MWJYSUVvbTUxYlhJRW9tNTFiWElFb201MWJYSUVvbTUxYlhJRW9tNTFiWElFb201MWJYSUVvbTUxYlhJRW9tNTFiWElFb205dWRXMEVxRzl1ZFcwRXFHOXVkVzBFcUc5dWRXMEVxRzl1ZFcwRXFHOXVkVzBFcUc5dWRXMEVxRzl1ZFcwRXFHOXVkVzBFcUc5dWRXMEVxSEJ1ZFcwRXJuQnVkVzBFcm5CdWRXMEVybkJ1ZFcwRXJuQnVkVzBFcm5CdWRXMEVybkJ1ZFcwRXJuQnVkVzBFcm5CdWRXMEVybkJ1ZFcwRXJuTnRZM0FFdEhOdFkzQUV0SE50WTNBRXRITnRZM0FFdEhOdFkzQUV0SE50WTNBRXRITnRZM0FFdEhOdFkzQUV0SE50WTNBRXRITnRZM0FFdEhOek1ERUV1bk56TURFRXVuTnpNREVFdW5Oek1ERUV1bk56TURFRXVuTnpNREVFdW5Oek1ERUV1bk56TURFRXVuTnpNREVFdW5Oek1ERUV1bk56TURJRXdITnpNRElFd0hOek1ESUV3SE56TURJRXdITnpNRElFd0hOek1ESUV3SE56TURJRXdITnpNRElFd0hOek1ESUV3SE56TURJRXdITnpNRE1FeG5Oek1ETUV4bk56TURNRXhuTnpNRE1FeG5Oek1ETUV4bk56TURNRXhuTnpNRE1FeG5Oek1ETUV4bk56TURNRXhuTnpNRE1FeG5Oek1EUUV6SE56TURRRXpITnpNRFFFekhOek1EUUV6SE56TURRRXpITnpNRFFFekhOek1EUUV6SE56TURRRXpITnpNRFFFekhOek1EUUV6SE56TURVRTBuTnpNRFVFMG5Oek1EVUUwbk56TURVRTBuTnpNRFVFMG5Oek1EVUUwbk56TURVRTBuTnpNRFVFMG5Oek1EVUUwbk56TURVRTBuTnpNRFlFMkhOek1EWUUySE56TURZRTJITnpNRFlFMkhOek1EWUUySE56TURZRTJITnpNRFlFMkhOek1EWUUySE56TURZRTJITnpNRFlFMkhOek1EY0Uzbk56TURjRTNuTnpNRGNFM25Oek1EY0Uzbk56TURjRTNuTnpNRGNFM25Oek1EY0Uzbk56TURjRTNuTnpNRGNFM25Oek1EY0UzblJ1ZFcwRTVIUnVkVzBFNUhSdWRXMEU1SFJ1ZFcwRTVIUnVkVzBFNUhSdWRXMEU1SFJ1ZFcwRTVIUnVkVzBFNUhSdWRXMEU1SFJ1ZFcwRTVBQUFBQUVBQUFBQUFBSUFBZ0FEQUFBQUFRQUhBQUFBQVFBWUFBQUFBd0FWQUJZQUZ3QUFBQUlBQ0FBSkFBQUFBUUFKQUFBQUFRQVVBQUFBQVFBRUFBQUFBUUFHQUFBQUFRQUZBQUFBQVFBWkFBQUFBUUFSQUFBQUFRQVRBQUFBQVFBQkFBQUFBUUFLQUFBQUFRQUxBQUFBQVFBTUFBQUFBUUFOQUFBQUFRQU9BQUFBQVFBUEFBQUFBUUFRQUFBQUFRQVNBQnNBT0FQR0JyUUhZQTN3RGZBT0JnNG9EbDRPaEE2eURzWU8yZzd1RHdBUEdnOWNEM29QbUEvS0Qvd1FMaEJDRUhvUWJCQjZFS1lBQVFBQUFBRUFDQUFDQWNRQTN3SG5BYm9CdXdHOEFiMEJ2Z0cvQWNBQndRSENBY01CeEFIRkFjWUJ4d0hJQWNrQnlnSExBY3dCelFIT0FjOEIwQUhSQWRJQjB3SG9BZWtDUkFJN0Flb0I2d0hzQWUwQjdnSHZBZkFCOFFIeUFmTUI5QUgxQWZZQjl3SDRBZmtCK2dIN0Fmd0IvUUgrQWdBQ0FRVGRBZ0lDQXdJRUFnVUNCZ0lIQWdnQ0NRSUtBZ3NDTHdJUEFoQUNFUUlVQWhVQ0ZnSVhBaGdDR1FJYkFod0NIZ0lkQXZ3Qy9RTCtBdjhEQUFNQkF3SURBd01FQXdVREJnTUhBd2dEQ1FNS0F3c0REQU1OQXc0RER3TVFBeEVERWdNVEF4UURGUU1XQXhjREdBTVpBeG9ER3dNY0F4MERIZ01mQXlBRElRTWlBeU1ESkFNbEF5WURKd01vQXlrREtnTXJBeXdETFFNdUF5OERNQU14QXpJRE13TTBBelVETmdNM0F6Z0RPUU02QXpzRFBBTTlBejREUHdOQUEwRURRZ05EQTBRRFJnTkZBMGNEU0FOSkEwb0RTd05NQTAwRFRnTlBBMUFEVVFOU0JLc0VyQVN0Qks0RXJ3U3dCTEVFc2dTekJMUUV0UVMyQkxjRXVBUzVCTG9FdXdTOEJMMEV2Z1MvQk1BRXdRVENCTU1FeEFURkJNWUIvd1RIQk1nRXlRVEtCTXNFekFUTkJNNEV6d1RRQk5FRTBnVFRCTlFFMVFUV0JOZ0UyUVRiQWhvRTNBSU9CTmNDRXdJTkJOb0NEQUlTQUFFQTN3QUlBQ1VBSmdBbkFDZ0FLUUFxQUNzQUxBQXRBQzRBTHdBd0FERUFNZ0F6QURRQU5RQTJBRGNBT0FBNUFEb0FPd0E4QUQwQVBnQmxBR2NBaFFDU0FMQUFzUUN5QUxNQXRBQzFBTFlBdHdDNEFMa0EwUURTQU5NQTFBRFZBTllBMXdEWUFOa0EyZ0RiQU53QTNRRGVBTjhBNEFEaEFPSUE0d0RrQU9VQTVnRG5BT2dCTEFFd0FUSUJPQUU2QVR3QlBnRS9BVVVCUmdGL0FZVUJpZ0dOQWtjQ1NBSktBa3dDVFFKT0FrOENVQUpSQWxJQ1V3SlVBbFVDVmdKWEFsZ0NXUUphQWxzQ1hBSmRBbDRDWHdKZ0FtRUNZZ0pqQW1RQ1pRSm1Bb01DaFFLSEFva0Npd0tOQW84Q2tRS1RBcFVDbHdLWkFwc0NuUUtmQXFFQ293S2xBcWNDcVFLckFxMENyd0t5QXJRQ3RnSzRBcm9DdkFLK0FzQUN3Z0xGQXNjQ3lRTExBczBDendMUkF0TUMxUUxaQXRzQzNRTGZBdUVDNHdMbEF1Y0M2UUxyQXUwQzd3THhBdklDOUFMMkExTURWQU5WQTFZRFZ3TllBMWtEV3dOY0ExMERYZ05mQTJBRFlRTmlBMlFEWlFObUEyY0RhQU5wQTJvRGVnTjdBM3dEZlFOK0EzOERnQU9CQTRJRGd3T0VBNFVEaGdPSEE0Z0RpUU9LQTRzRGpBT05BNDREandPN0E3MER2d1BVQTlvRDRBUkpCRXNFVHdSWEJGa0VYZ1JxQUFFQUFBQUJBQWdBQWdGMEFMY0J1Z0c3QWJ3QnZRRytBYjhCd0FIQkFjSUJ3d0hFQWNVQnhnSEhBY2dCeVFIS0Fjc0J6QUhOQWM0Qnp3SFFBZEVCMGdIVEF2MERNQUk3QWZvRXlnVExBZnNCL0FIOUFmNEIvd0lBQk00RXp3VFJCTlFFM1FJQ0FnTUNCQUlGQWdZQ0J3SUlBZ2tDQ2dJTEFmUUI5UUgyQWZjQitBSDVBaThDRHdJUUFoRUNGQUlWQWhjQ0dRTCtBdjhEQUFNQkF3SURBd01FQXdVREJnTUhBd2dEQ1FNS0F3c0REQU1OQXc0RER3TVFBeEVERWdNVEF4UURGUU1XQXhjREdBTVpBMDhER2dNYkF4d0RIUU1lQXg4RElBTWhBeUlESXdNa0F5VURKZ01uQXlnREtRTXFBeXNETEFNdEF5NERMd014QXpJRE13TTBBelVETmdNM0F6Z0RPUU02QXpzRFBBTTlBejREUHdOQUEwRURRZ05EQTBRRFJnTkZBMGNEU0FOSkEwb0RTd05NQTAwRFRnTlFBMUVEVWdUSkJNd0V6UVRRQk5JRTB3SUJCTlVFd1FUQ0JNTUV4QVRGQk1ZRXh3VElCTllFMkFUWkFoZ0Uyd0lhQk53Qy9BSU9CTmNDRXdJTkJOb0NGZ0lNQWhJQUFRQzNBRVVBUmdCSEFFZ0FTUUJLQUVzQVRBQk5BRTRBVHdCUUFGRUFVZ0JUQUZRQVZRQldBRmNBV0FCWkFGb0FXd0JjQUYwQVhnQ0hBSXdBa3dEcEFPb0E2d0RzQU8wQTdnRHZBUEFBOFFEeUFQTUE5QUQxQVBZQTl3RDRBUGtBK2dEN0FQd0EvUUQrQVA4QkFBRUJBUUlCQXdFRUFRVUJCZ0V0QVRFQk13RTVBVHNCUFFGQUFVY0NTd0puQW1nQ2FRSnFBbXNDYkFKdEFtNENid0p3QW5FQ2NnSnpBblFDZFFKMkFuY0NlQUo1QW5vQ2V3SjhBbjBDZmdKL0FvQUNnUUtDQW9RQ2hnS0lBb29DakFLT0FwQUNrZ0tVQXBZQ21BS2FBcHdDbmdLZ0FxSUNwQUttQXFnQ3FnS3NBcTRDc3dLMUFyY0N1UUs3QXIwQ3Z3TEJBc01DeGdMSUFzb0N6QUxPQXRBQzBnTFVBdFlDMmdMY0F0NEM0QUxpQXVRQzVnTG9BdW9DN0FMdUF2QUM4d0wxQXZjRGtBT1JBNUlEa3dPVUE1VURsZ09YQTVnRG1RT2FBNXNEbkFPZEE1NERud084QTc0RHdBUE9BOVVEMndQaEJFY0VTZ1JNQkZBRVdBUmFCRnNFWHdSckFBWUFBQUFHQUJJQUtnQkNBRm9BY2dDS0FBTUFBQUFCQUJJQUFRQ1FBQUVBQUFBYUFBRUFBUUJOQUFNQUFBQUJBQklBQVFCNEFBRUFBQUFhQUFFQUFRQk9BQU1BQUFBQkFCSUFBUUJnQUFFQUFBQWFBQUVBQVFLdUFBTUFBQUFCQUJJQUFRQklBQUVBQUFBYUFBRUFBUU9iQUFNQUFBQUJBQklBQVFBd0FBRUFBQUFhQUFFQUFRT2RBQU1BQUFBQkFCSUFBUUFZQUFFQUFBQWFBQUVBQVFRYUFBSUFBUUNuQUtzQUFBQUVBQUFBQVFBSUFBRUdIZ0EyQUhJQXBBQ3VBTGdBeWdEOEFRNEJHQUZLQVdRQmZnR1FBYm9CN0FIMkFoZ0NNZ0pFQW5ZQ2lBS2lBc3dDM2dNUUF4b0RKQU0yQTJnRGNnTjhBNFlEb0FPNkE4d0Q5Z1FvQkRJRVZBUnVCSUFFc2dURUJONEZDQVVhQlNRRkxnVTRCVUlGYkFXV0JjQUY2Z1lVQUFZQURnQVVBQm9BSUFBbUFDd0NUQUFDQUtjQ1RRQUNBS2dDVHdBQ0FLa0Q4UUFDQUtvRWV3QUNBS3NEN3dBQ0FLd0FBUUFFQklnQUFnQ3NBQUVBQkFLSkFBSUFxQUFDQUFZQURBU0tBQUlBckFTTUFBSUJvZ0FHQUE0QUZBQWFBQ0FBSmdBc0FsUUFBZ0NuQWxVQUFnQ29CQXNBQWdDcEJBa0FBZ0NxQkgwQUFnQ3JCQWNBQWdDc0FBSUFCZ0FNQkhjQUFnQ29BcU1BQWdHaUFBRUFCQVNPQUFJQXJBQUdBQTRBRkFBYUFDQUFKZ0FzQWxnQUFnQ25BbGtBQWdDb0FxY0FBZ0NwQkJjQUFnQ3FCSDhBQWdDckJCa0FBZ0NzQUFNQUNBQU9BQlFFa0FBQ0FLZ0VrZ0FDQUt3Q3RBQUNBYUlBQXdBSUFBNEFGQUsyQUFJQXFBU1VBQUlBckFLNEFBSUJvZ0FDQUFZQURBT3RBQUlBcUFTV0FBSUFyQUFGQUF3QUVnQVlBQjRBSkFSNUFBSUFwd0srQUFJQXFBSmNBQUlBcVFTWUFBSUFyQUxBQUFJQm9nQUdBQTRBRkFBYUFDQUFKZ0FzQWwwQUFnQ25BbDRBQWdDb0FtQUFBZ0NwQkIwQUFnQ3FCSUVBQWdDckJCc0FBZ0NzQUFFQUJBU2FBQUlBcUFBRUFBb0FFQUFXQUJ3Q3l3QUNBS2dFZ3dBQ0FLc0VuQUFDQUt3Q3pRQUNBYUlBQXdBSUFBNEFGQUxSQUFJQXFBU2VBQUlBckFMWEFBSUJvZ0FDQUFZQURBU2dBQUlBckFMYkFBSUJvZ0FHQUE0QUZBQWFBQ0FBSmdBc0FtSUFBZ0NuQW1NQUFnQ29BdUVBQWdDcEJEVUFBZ0NxQklVQUFnQ3JCRE1BQWdDc0FBSUFCZ0FNQktJQUFnQ3BCS1FBQWdDc0FBTUFDQUFPQUJRRG9BQUNBS2NEb2dBQ0FLZ0VwZ0FDQUt3QUJRQU1BQklBR0FBZUFDUURwZ0FDQUtjQ1pnQUNBS2dFUlFBQ0FLa0VRd0FDQUtvRVFRQUNBS3dBQWdBR0FBd0M4Z0FDQUtnRXFBQUNBS3dBQmdBT0FCUUFHZ0FnQUNZQUxBSm5BQUlBcHdKb0FBSUFxQUpxQUFJQXFRUHlBQUlBcWdSOEFBSUFxd1B3QUFJQXJBQUJBQVFFaVFBQ0FLd0FBUUFFQW9vQUFnQ29BQUlBQmdBTUJJc0FBZ0NzQkkwQUFnR2lBQVlBRGdBVUFCb0FJQUFtQUN3Q2J3QUNBS2NDY0FBQ0FLZ0VEQUFDQUtrRUNnQUNBS29FZmdBQ0FLc0VDQUFDQUt3QUFRQUVCSGdBQWdDb0FBRUFCQVNQQUFJQXJBQUJBQVFFR2dBQ0FLd0FBd0FJQUE0QUZBU1JBQUlBcUFTVEFBSUFyQUsxQUFJQm9nQURBQWdBRGdBVUFyY0FBZ0NvQkpVQUFnQ3NBcmtBQWdHaUFBSUFCZ0FNQTY0QUFnQ29CSmNBQWdDc0FBVUFEQUFTQUJnQUhnQWtCSG9BQWdDbkFyOEFBZ0NvQW5jQUFnQ3BCSmtBQWdDc0FzRUFBZ0dpQUFZQURnQVVBQm9BSUFBbUFDd0NlQUFDQUtjQ2VRQUNBS2dDZXdBQ0FLa0VIZ0FDQUtvRWdnQUNBS3NFSEFBQ0FLd0FBUUFFQkpzQUFnQ29BQVFBQ2dBUUFCWUFIQUxNQUFJQXFBU0VBQUlBcXdTZEFBSUFyQUxPQUFJQm9nQURBQWdBRGdBVUF0SUFBZ0NvQko4QUFnQ3NBdGdBQWdHaUFBSUFCZ0FNQktFQUFnQ3NBdHdBQWdHaUFBWUFEZ0FVQUJvQUlBQW1BQ3dDZlFBQ0FLY0NmZ0FDQUtnQzRnQUNBS2tFTmdBQ0FLb0VoZ0FDQUtzRU5BQUNBS3dBQWdBR0FBd0Vvd0FDQUtrRXBRQUNBS3dBQXdBSUFBNEFGQU9oQUFJQXB3T2pBQUlBcUFTbkFBSUFyQUFGQUF3QUVnQVlBQjRBSkFPbkFBSUFwd0tCQUFJQXFBUkdBQUlBcVFSRUFBSUFxZ1JDQUFJQXJBQUNBQVlBREFMekFBSUFxQVNwQUFJQXJBQUJBQVFDK0FBQ0FLZ0FBUUFFQXZvQUFnQ29BQUVBQkFMNUFBSUFxQUFCQUFRQyt3QUNBS2dBQlFBTUFCSUFHQUFlQUNRQ2N3QUNBS2NDZEFBQ0FLZ0NxQUFDQUtrRUdBQUNBS29FZ0FBQ0FLc0FCUUFNQUJJQUdBQWVBQ1FFS3dBQ0FLY0VLUUFDQUtnRUx3QUNBS2tFTFFBQ0FLb0VNUUFDQUt3QUJRQU1BQklBR0FBZUFDUUVMQUFDQUtjRUtnQUNBS2dFTUFBQ0FLa0VMZ0FDQUtvRU1nQUNBS3dBQlFBTUFCSUFHQUFlQUNRRU9RQUNBS2NFTndBQ0FLZ0VQUUFDQUtrRU93QUNBS29FUHdBQ0FLd0FCUUFNQUJJQUdBQWVBQ1FFT2dBQ0FLY0VPQUFDQUtnRVBnQUNBS2tFUEFBQ0FLb0VRQUFDQUt3QUFRQUVCSWNBQWdDb0FBSUFFUUFsQUNrQUFBQXJBQzBBQlFBdkFEUUFDQUEyQURzQURnQTlBRDRBRkFCRkFFa0FGZ0JMQUUwQUd3QlBBRlFBSGdCV0FGc0FKQUJkQUY0QUtnQ0JBSUVBTEFDREFJTUFMUUNHQUlZQUxnQ0pBSWtBTHdDTUFJd0FNQUNYQUpvQU1RRFBBTThBTlFBQkFBQUFBUUFJQUFFQUJnQUNBQUVBQWdMVkF0WUFBUUFBQUFFQUNBQUNBQTRBQkFUZUJOOEU0QVRoQUFFQUJBS0hBb2dDbVFLYUFBUUFBQUFCQUFnQUFRQW1BQUlBQ2dBY0FBSUFCZ0FNQWFNQUFnQktBYWdBQWdCWUFBRUFCQUdwQUFJQVdBQUJBQUlBU2dCWEFBUUFBQUFCQUFnQUFRQkVBQUlBQ2dBVUFBRUFCQUdrQUFJQVRRQUJBQVFCcGdBQ0FFMEFCQUFBQUFFQUNBQUJBQjRBQWdBS0FCUUFBUUFFQWFVQUFnQlFBQUVBQkFHbkFBSUFVQUFCQUFJQVNnR2pBQUVBQUFBQkFBZ0FBUUFHQVpVQUFRQUJBRXNBQVFBQUFBRUFDQUFCQUFZQkp3QUJBQUVBdWdBQkFBQUFBUUFJQUFFQUJnR3NBQUVBQVFBMkFBRUFBQUFCQUFnQUFnQWNBQUlCNHdIa0FBRUFBQUFCQUFnQUFnQUtBQUlCNVFIbUFBRUFBZ0F2QUU4QUFRQUFBQUVBQ0FBQ0FCNEFEQUlvQWlvQ0tRSXJBaXdDSHdJZ0FpRUNJZ0d1QWlRQ0pRQUJBQXdBSndBb0FDc0FNd0ExQUVZQVJ3QklBRXNBVXdCVUFGVUFBUUFBQUFFQUNBQUNBQXdBQXdJbUFpY0NKd0FCQUFNQVNRQkxBaUlBQVFBQUFBRUFDQUFDQUdZQUNBSTlBaTBDTGdJd0FqRUNPUUk2QWp3QUFRQUFBQUVBQ0FBQ0FCWUFDQUFiQUJVQUZnQVhBQmdBR1FBZEFCUUFBUUFJQWEwQ0l3UnhCSElFY3dSMEJIVUVkZ0FCQUFBQUFRQUlBQUlBRmdBSUJIWUNJd1J4QkhJRWN3UjBBYTBFZFFBQkFBZ0FGQUFWQUJZQUZ3QVlBQmtBR3dBZEFBRUFBQUFCQUFnQUFnQVdBQWdBRlFBV0FCY0FHQUFaQUJzQUhRQVVBQUVBQ0FJdEFpNENNQUl4QWprQ09nSThBajBBQVFBQUFBRUFDQUFCQUFZQmFRQUJBQUVBRXdBR0FBQUFBUUFJQUFNQUFRQVNBQUVBVWdBQUFBRUFBQUFhQUFJQUFnRjhBWHdBQUFIVUFkMEFBUUFCQUFBQUFRQUlBQUVBS0FIQUFBRUFBQUFCQUFnQUFnQWFBQW9DTWdCNkFITUFkQUl6QWpRQ05RSTJBamNDT0FBQ0FBRUFGQUFkQUFBQUFRQUFBQUVBQ0FBQ0FDWUFFQUhVQWRVQjFnSFhBZGdCMlFIYUFkc0IzQUhkQWtBQ1BnSkJBa0lDUHdKREFBRUFFQUFVQUJVQUZnQVhBQmdBR1FBYUFCc0FIQUFkQUUwQVRnS3VBNXNEblFRYSIKfTs="></script>
|
||
<link href="data:text/css,%40keyframes%20dtb%2Dspinner%7B100%25%7Btransform%3Arotate%28360deg%29%7D%7D%40%2Do%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Do%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7D%40%2Dms%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Dms%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7D%40%2Dwebkit%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Dwebkit%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7D%40%2Dmoz%2Dkeyframes%20dtb%2Dspinner%7B100%25%7B%2Dmoz%2Dtransform%3Arotate%28360deg%29%3Btransform%3Arotate%28360deg%29%7D%7Ddiv%2Edt%2Dbutton%2Dinfo%7Bposition%3Afixed%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A400px%3Bmargin%2Dtop%3A%2D100px%3Bmargin%2Dleft%3A%2D200px%3Bbackground%2Dcolor%3Awhite%3Bborder%3A2px%20solid%20%23111%3Bbox%2Dshadow%3A3px%203px%208px%20rgba%280%2C0%2C0%2C0%2E3%29%3Bborder%2Dradius%3A3px%3Btext%2Dalign%3Acenter%3Bz%2Dindex%3A21%7Ddiv%2Edt%2Dbutton%2Dinfo%20h2%7Bpadding%3A0%2E5em%3Bmargin%3A0%3Bfont%2Dweight%3Anormal%3Bborder%2Dbottom%3A1px%20solid%20%23ddd%3Bbackground%2Dcolor%3A%23f3f3f3%7Ddiv%2Edt%2Dbutton%2Dinfo%3Ediv%7Bpadding%3A1em%7Ddiv%2Edt%2Dbutton%2Dcollection%2Dtitle%7Btext%2Dalign%3Acenter%3Bpadding%3A0%2E3em%200%200%2E5em%3Bfont%2Dsize%3A0%2E9em%7Ddiv%2Edt%2Dbutton%2Dcollection%2Dtitle%3Aempty%7Bdisplay%3Anone%7Dbutton%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Ca%2Edt%2Dbutton%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bbox%2Dsizing%3Aborder%2Dbox%3Bmargin%2Dright%3A0%2E333em%3Bmargin%2Dbottom%3A0%2E333em%3Bpadding%3A0%2E5em%201em%3Bborder%3A1px%20solid%20%23999%3Bborder%2Dradius%3A2px%3Bcursor%3Apointer%3Bfont%2Dsize%3A0%2E88em%3Bline%2Dheight%3A1%2E6em%3Bcolor%3Ablack%3Bwhite%2Dspace%3Anowrap%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e9e9e9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23e9e9e9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27white%27%2C%20EndColorStr%3D%27%23e9e9e9%27%29%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%3Btext%2Ddecoration%3Anone%3Boutline%3Anone%3Btext%2Doverflow%3Aellipsis%7Dbutton%2Edt%2Dbutton%2Edisabled%2Cdiv%2Edt%2Dbutton%2Edisabled%2Ca%2Edt%2Dbutton%2Edisabled%7Bcolor%3A%23999%3Bborder%3A1px%20solid%20%23d0d0d0%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23f9f9f9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23fff%200%25%2C%20%23f9f9f9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23ffffff%27%2C%20EndColorStr%3D%27%23f9f9f9%27%29%7Dbutton%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cbutton%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%7Bbackground%2Dcolor%3A%23e2e2e2%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f3f3f3%200%25%2C%20%23e2e2e2%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f3f3f3%27%2C%20EndColorStr%3D%27%23e2e2e2%27%29%3Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23999999%7Dbutton%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cbutton%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%3Ahover%3Anot%28%2Edisabled%29%7Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23999999%3Bbackground%2Dcolor%3A%23cccccc%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23eaeaea%200%25%2C%20%23ccc%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23eaeaea%27%2C%20EndColorStr%3D%27%23cccccc%27%29%7Dbutton%2Edt%2Dbutton%3Ahover%2Cdiv%2Edt%2Dbutton%3Ahover%2Ca%2Edt%2Dbutton%3Ahover%7Btext%2Ddecoration%3Anone%7Dbutton%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Ahover%3Anot%28%2Edisabled%29%7Bborder%3A1px%20solid%20%23666%3Bbackground%2Dcolor%3A%23e0e0e0%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f9f9f9%200%25%2C%20%23e0e0e0%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f9f9f9%27%2C%20EndColorStr%3D%27%23e0e0e0%27%29%7Dbutton%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%2Ca%2Edt%2Dbutton%3Afocus%3Anot%28%2Edisabled%29%7Bborder%3A1px%20solid%20%23426c9e%3Btext%2Dshadow%3A0%201px%200%20%23c4def1%3Boutline%3Anone%3Bbackground%2Dcolor%3A%2379ace9%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23bddef4%200%25%2C%20%2379ace9%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23bddef4%27%2C%20EndColorStr%3D%27%2379ace9%27%29%7D%2Edt%2Dbutton%20embed%7Boutline%3Anone%7Ddiv%2Edt%2Dbuttons%7Bposition%3Arelative%3Bfloat%3Aleft%7Ddiv%2Edt%2Dbuttons%2Ebuttons%2Dright%7Bfloat%3Aright%7Ddiv%2Edt%2Dbutton%2Dcollection%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bwidth%3A150px%3Bmargin%2Dtop%3A3px%3Bpadding%3A8px%208px%204px%208px%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C0%2E4%29%3Bbackground%2Dcolor%3Awhite%3Boverflow%3Ahidden%3Bz%2Dindex%3A2002%3Bborder%2Dradius%3A5px%3Bbox%2Dshadow%3A3px%203px%205px%20rgba%280%2C0%2C0%2C0%2E3%29%3Bbox%2Dsizing%3Aborder%2Dbox%7Ddiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%7Bposition%3Arelative%3Bleft%3A0%3Bright%3A0%3Bwidth%3A100%25%3Bdisplay%3Ablock%3Bfloat%3Anone%3Bmargin%2Dbottom%3A4px%3Bmargin%2Dright%3A0%7Ddiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20button%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20div%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%3Aactive%3Anot%28%2Edisabled%29%2Cdiv%2Edt%2Dbutton%2Dcollection%20a%2Edt%2Dbutton%2Eactive%3Anot%28%2Edisabled%29%7Bbackground%2Dcolor%3A%23dadada%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Dmoz%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Dms%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28top%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20bottom%2C%20%23f0f0f0%200%25%2C%20%23dadada%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28GradientType%3D0%2CStartColorStr%3D%27%23f0f0f0%27%2C%20EndColorStr%3D%27%23dadada%27%29%3Bbox%2Dshadow%3Ainset%201px%201px%203px%20%23666%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%7Bposition%3Afixed%3Btop%3A50%25%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D75px%3Bborder%2Dradius%3A0%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Etwo%2Dcolumn%7Bmargin%2Dleft%3A%2D200px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Ethree%2Dcolumn%7Bmargin%2Dleft%3A%2D225px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efixed%2Efour%2Dcolumn%7Bmargin%2Dleft%3A%2D300px%7Ddiv%2Edt%2Dbutton%2Dcollection%3E%3Alast%2Dchild%7Bdisplay%3Ablock%20%21important%3B%2Dwebkit%2Dcolumn%2Dgap%3A8px%3B%2Dmoz%2Dcolumn%2Dgap%3A8px%3B%2Dms%2Dcolumn%2Dgap%3A8px%3B%2Do%2Dcolumn%2Dgap%3A8px%3Bcolumn%2Dgap%3A8px%7Ddiv%2Edt%2Dbutton%2Dcollection%3E%3Alast%2Dchild%3E%2A%7B%2Dwebkit%2Dcolumn%2Dbreak%2Dinside%3Aavoid%3Bbreak%2Dinside%3Aavoid%7Ddiv%2Edt%2Dbutton%2Dcollection%2Etwo%2Dcolumn%7Bwidth%3A400px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Etwo%2Dcolumn%3E%3Alast%2Dchild%7Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A2%3B%2Dmoz%2Dcolumn%2Dcount%3A2%3B%2Dms%2Dcolumn%2Dcount%3A2%3B%2Do%2Dcolumn%2Dcount%3A2%3Bcolumn%2Dcount%3A2%7Ddiv%2Edt%2Dbutton%2Dcollection%2Ethree%2Dcolumn%7Bwidth%3A450px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Ethree%2Dcolumn%3E%3Alast%2Dchild%7Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A3%3B%2Dmoz%2Dcolumn%2Dcount%3A3%3B%2Dms%2Dcolumn%2Dcount%3A3%3B%2Do%2Dcolumn%2Dcount%3A3%3Bcolumn%2Dcount%3A3%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efour%2Dcolumn%7Bwidth%3A600px%7Ddiv%2Edt%2Dbutton%2Dcollection%2Efour%2Dcolumn%3E%3Alast%2Dchild%7Bpadding%2Dbottom%3A1px%3B%2Dwebkit%2Dcolumn%2Dcount%3A4%3B%2Dmoz%2Dcolumn%2Dcount%3A4%3B%2Dms%2Dcolumn%2Dcount%3A4%3B%2Do%2Dcolumn%2Dcount%3A4%3Bcolumn%2Dcount%3A4%7Ddiv%2Edt%2Dbutton%2Dcollection%20%2Edt%2Dbutton%7Bborder%2Dradius%3A0%7Ddiv%2Edt%2Dbutton%2Dbackground%7Bposition%3Afixed%3Btop%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bbackground%3Argba%280%2C0%2C0%2C0%2E7%29%3Bbackground%3A%2Dms%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Dmoz%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Do%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3A%2Dwebkit%2Dgradient%28radial%2C%20center%20center%2C%200%2C%20center%20center%2C%20497%2C%20color%2Dstop%280%2C%20rgba%280%2C0%2C0%2C0%2E3%29%29%2C%20color%2Dstop%281%2C%20rgba%280%2C0%2C0%2C0%2E7%29%29%29%3Bbackground%3A%2Dwebkit%2Dradial%2Dgradient%28center%2C%20ellipse%20farthest%2Dcorner%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bbackground%3Aradial%2Dgradient%28ellipse%20farthest%2Dcorner%20at%20center%2C%20rgba%280%2C0%2C0%2C0%2E3%29%200%25%2C%20rgba%280%2C0%2C0%2C0%2E7%29%20100%25%29%3Bz%2Dindex%3A2001%7D%40media%20screen%20and%20%28max%2Dwidth%3A%20640px%29%7Bdiv%2Edt%2Dbuttons%7Bfloat%3Anone%20%21important%3Btext%2Dalign%3Acenter%7D%7Dbutton%2Edt%2Dbutton%2Eprocessing%2Cdiv%2Edt%2Dbutton%2Eprocessing%2Ca%2Edt%2Dbutton%2Eprocessing%7Bcolor%3Argba%280%2C0%2C0%2C0%2E2%29%7Dbutton%2Edt%2Dbutton%2Eprocessing%3Aafter%2Cdiv%2Edt%2Dbutton%2Eprocessing%3Aafter%2Ca%2Edt%2Dbutton%2Eprocessing%3Aafter%7Bposition%3Aabsolute%3Btop%3A50%25%3Bleft%3A50%25%3Bwidth%3A16px%3Bheight%3A16px%3Bmargin%3A%2D8px%200%200%20%2D8px%3Bbox%2Dsizing%3Aborder%2Dbox%3Bdisplay%3Ablock%3Bcontent%3A%27%20%27%3Bborder%3A2px%20solid%20%23282828%3Bborder%2Dradius%3A50%25%3Bborder%2Dleft%2Dcolor%3Atransparent%3Bborder%2Dright%2Dcolor%3Atransparent%3Banimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Do%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Dms%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Dwebkit%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%3B%2Dmoz%2Danimation%3Adtb%2Dspinner%201500ms%20infinite%20linear%7D%0A" rel="stylesheet" />
|
||
<script src="data:application/javascript;base64,LyohCiBCdXR0b25zIGZvciBEYXRhVGFibGVzIDEuNi4xCiDCqTIwMTYtMjAxOSBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoqLwooZnVuY3Rpb24oZCl7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiXSxmdW5jdGlvbih1KXtyZXR1cm4gZCh1LHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKHUsdCl7dXx8KHU9d2luZG93KTt0JiZ0LmZuLmRhdGFUYWJsZXx8KHQ9cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKSh1LHQpLiQpO3JldHVybiBkKHQsdSx1LmRvY3VtZW50KX06ZChqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGQsdSx0LHApe2Z1bmN0aW9uIHkoYSl7YT1uZXcgbS5BcGkoYSk7dmFyIGI9YS5pbml0KCkuYnV0dG9uc3x8bS5kZWZhdWx0cy5idXR0b25zO3JldHVybihuZXcgbihhLGIpKS5jb250YWluZXIoKX12YXIgbT1kLmZuLmRhdGFUYWJsZSxCPTAsQz0wLHE9bS5leHQuYnV0dG9ucyxuPWZ1bmN0aW9uKGEsYil7aWYoISh0aGlzIGluc3RhbmNlb2YKbikpcmV0dXJuIGZ1bmN0aW9uKGIpe3JldHVybihuZXcgbihiLGEpKS5jb250YWluZXIoKX07InVuZGVmaW5lZCI9PT10eXBlb2YgYiYmKGI9e30pOyEwPT09YiYmKGI9e30pO2QuaXNBcnJheShiKSYmKGI9e2J1dHRvbnM6Yn0pO3RoaXMuYz1kLmV4dGVuZCghMCx7fSxuLmRlZmF1bHRzLGIpO2IuYnV0dG9ucyYmKHRoaXMuYy5idXR0b25zPWIuYnV0dG9ucyk7dGhpcy5zPXtkdDpuZXcgbS5BcGkoYSksYnV0dG9uczpbXSxsaXN0ZW5LZXlzOiIiLG5hbWVzcGFjZToiZHRiIitCKyt9O3RoaXMuZG9tPXtjb250YWluZXI6ZCgiPCIrdGhpcy5jLmRvbS5jb250YWluZXIudGFnKyIvPiIpLmFkZENsYXNzKHRoaXMuYy5kb20uY29udGFpbmVyLmNsYXNzTmFtZSl9O3RoaXMuX2NvbnN0cnVjdG9yKCl9O2QuZXh0ZW5kKG4ucHJvdG90eXBlLHthY3Rpb246ZnVuY3Rpb24oYSxiKXthPXRoaXMuX25vZGVUb0J1dHRvbihhKTtpZihiPT09cClyZXR1cm4gYS5jb25mLmFjdGlvbjthLmNvbmYuYWN0aW9uPQpiO3JldHVybiB0aGlzfSxhY3RpdmU6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLl9ub2RlVG9CdXR0b24oYSk7YT10aGlzLmMuZG9tLmJ1dHRvbi5hY3RpdmU7Yz1kKGMubm9kZSk7aWYoYj09PXApcmV0dXJuIGMuaGFzQ2xhc3MoYSk7Yy50b2dnbGVDbGFzcyhhLGI9PT1wPyEwOmIpO3JldHVybiB0aGlzfSxhZGQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLnMuYnV0dG9ucztpZigic3RyaW5nIj09PXR5cGVvZiBiKXtiPWIuc3BsaXQoIi0iKTt2YXIgZT10aGlzLnM7Yz0wO2Zvcih2YXIgZD1iLmxlbmd0aC0xO2M8ZDtjKyspZT1lLmJ1dHRvbnNbMSpiW2NdXTtjPWUuYnV0dG9ucztiPTEqYltiLmxlbmd0aC0xXX10aGlzLl9leHBhbmRCdXR0b24oYyxhLGUhPT1wLGIpO3RoaXMuX2RyYXcoKTtyZXR1cm4gdGhpc30sY29udGFpbmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcn0sZGlzYWJsZTpmdW5jdGlvbihhKXthPXRoaXMuX25vZGVUb0J1dHRvbihhKTtkKGEubm9kZSkuYWRkQ2xhc3ModGhpcy5jLmRvbS5idXR0b24uZGlzYWJsZWQpOwpyZXR1cm4gdGhpc30sZGVzdHJveTpmdW5jdGlvbigpe2QoImJvZHkiKS5vZmYoImtleXVwLiIrdGhpcy5zLm5hbWVzcGFjZSk7dmFyIGE9dGhpcy5zLmJ1dHRvbnMuc2xpY2UoKSxiO3ZhciBjPTA7Zm9yKGI9YS5sZW5ndGg7YzxiO2MrKyl0aGlzLnJlbW92ZShhW2NdLm5vZGUpO3RoaXMuZG9tLmNvbnRhaW5lci5yZW1vdmUoKTthPXRoaXMucy5kdC5zZXR0aW5ncygpWzBdO2M9MDtmb3IoYj1hLmxlbmd0aDtjPGI7YysrKWlmKGEuaW5zdD09PXRoaXMpe2Euc3BsaWNlKGMsMSk7YnJlYWt9cmV0dXJuIHRoaXN9LGVuYWJsZTpmdW5jdGlvbihhLGIpe2lmKCExPT09YilyZXR1cm4gdGhpcy5kaXNhYmxlKGEpO2E9dGhpcy5fbm9kZVRvQnV0dG9uKGEpO2QoYS5ub2RlKS5yZW1vdmVDbGFzcyh0aGlzLmMuZG9tLmJ1dHRvbi5kaXNhYmxlZCk7cmV0dXJuIHRoaXN9LG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jLm5hbWV9LG5vZGU6ZnVuY3Rpb24oYSl7aWYoIWEpcmV0dXJuIHRoaXMuZG9tLmNvbnRhaW5lcjsKYT10aGlzLl9ub2RlVG9CdXR0b24oYSk7cmV0dXJuIGQoYS5ub2RlKX0scHJvY2Vzc2luZzpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMucy5kdCxlPXRoaXMuX25vZGVUb0J1dHRvbihhKTtpZihiPT09cClyZXR1cm4gZChlLm5vZGUpLmhhc0NsYXNzKCJwcm9jZXNzaW5nIik7ZChlLm5vZGUpLnRvZ2dsZUNsYXNzKCJwcm9jZXNzaW5nIixiKTtkKGMudGFibGUoKS5ub2RlKCkpLnRyaWdnZXJIYW5kbGVyKCJidXR0b25zLXByb2Nlc3NpbmcuZHQiLFtiLGMuYnV0dG9uKGEpLGMsZChhKSxlLmNvbmZdKTtyZXR1cm4gdGhpc30scmVtb3ZlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMuX25vZGVUb0J1dHRvbihhKSxjPXRoaXMuX25vZGVUb0hvc3QoYSksZT10aGlzLnMuZHQ7aWYoYi5idXR0b25zLmxlbmd0aClmb3IodmFyIGc9Yi5idXR0b25zLmxlbmd0aC0xOzA8PWc7Zy0tKXRoaXMucmVtb3ZlKGIuYnV0dG9uc1tnXS5ub2RlKTtiLmNvbmYuZGVzdHJveSYmYi5jb25mLmRlc3Ryb3kuY2FsbChlLmJ1dHRvbihhKSwKZSxkKGEpLGIuY29uZik7dGhpcy5fcmVtb3ZlS2V5KGIuY29uZik7ZChiLm5vZGUpLnJlbW92ZSgpO2E9ZC5pbkFycmF5KGIsYyk7Yy5zcGxpY2UoYSwxKTtyZXR1cm4gdGhpc30sdGV4dDpmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuX25vZGVUb0J1dHRvbihhKTthPXRoaXMuYy5kb20uY29sbGVjdGlvbi5idXR0b25MaW5lcjthPWMuaW5Db2xsZWN0aW9uJiZhJiZhLnRhZz9hLnRhZzp0aGlzLmMuZG9tLmJ1dHRvbkxpbmVyLnRhZzt2YXIgZT10aGlzLnMuZHQsZz1kKGMubm9kZSksZj1mdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGE/YShlLGcsYy5jb25mKTphfTtpZihiPT09cClyZXR1cm4gZihjLmNvbmYudGV4dCk7Yy5jb25mLnRleHQ9YjthP2cuY2hpbGRyZW4oYSkuaHRtbChmKGIpKTpnLmh0bWwoZihiKSk7cmV0dXJuIHRoaXN9LF9jb25zdHJ1Y3RvcjpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLnMuZHQsYz1iLnNldHRpbmdzKClbMF0sZT10aGlzLmMuYnV0dG9uczsKYy5fYnV0dG9uc3x8KGMuX2J1dHRvbnM9W10pO2MuX2J1dHRvbnMucHVzaCh7aW5zdDp0aGlzLG5hbWU6dGhpcy5jLm5hbWV9KTtmb3IodmFyIGc9MCxmPWUubGVuZ3RoO2c8ZjtnKyspdGhpcy5hZGQoZVtnXSk7Yi5vbigiZGVzdHJveSIsZnVuY3Rpb24oYixlKXtlPT09YyYmYS5kZXN0cm95KCl9KTtkKCJib2R5Iikub24oImtleXVwLiIrdGhpcy5zLm5hbWVzcGFjZSxmdW5jdGlvbihiKXtpZighdC5hY3RpdmVFbGVtZW50fHx0LmFjdGl2ZUVsZW1lbnQ9PT10LmJvZHkpe3ZhciBjPVN0cmluZy5mcm9tQ2hhckNvZGUoYi5rZXlDb2RlKS50b0xvd2VyQ2FzZSgpOy0xIT09YS5zLmxpc3RlbktleXMudG9Mb3dlckNhc2UoKS5pbmRleE9mKGMpJiZhLl9rZXlwcmVzcyhjLGIpfX0pfSxfYWRkS2V5OmZ1bmN0aW9uKGEpe2Eua2V5JiYodGhpcy5zLmxpc3RlbktleXMrPWQuaXNQbGFpbk9iamVjdChhLmtleSk/YS5rZXkua2V5OmEua2V5KX0sX2RyYXc6ZnVuY3Rpb24oYSxiKXthfHwoYT10aGlzLmRvbS5jb250YWluZXIsCmI9dGhpcy5zLmJ1dHRvbnMpO2EuY2hpbGRyZW4oKS5kZXRhY2goKTtmb3IodmFyIGM9MCxlPWIubGVuZ3RoO2M8ZTtjKyspYS5hcHBlbmQoYltjXS5pbnNlcnRlciksYS5hcHBlbmQoIiAiKSxiW2NdLmJ1dHRvbnMmJmJbY10uYnV0dG9ucy5sZW5ndGgmJnRoaXMuX2RyYXcoYltjXS5jb2xsZWN0aW9uLGJbY10uYnV0dG9ucyl9LF9leHBhbmRCdXR0b246ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGc9dGhpcy5zLmR0LGY9MDtiPWQuaXNBcnJheShiKT9iOltiXTtmb3IodmFyIGg9MCxrPWIubGVuZ3RoO2g8aztoKyspe3ZhciByPXRoaXMuX3Jlc29sdmVFeHRlbmRzKGJbaF0pO2lmKHIpaWYoZC5pc0FycmF5KHIpKXRoaXMuX2V4cGFuZEJ1dHRvbihhLHIsYyxlKTtlbHNle3ZhciBsPXRoaXMuX2J1aWxkQnV0dG9uKHIsYyk7bCYmKGUhPT1wPyhhLnNwbGljZShlLDAsbCksZSsrKTphLnB1c2gobCksbC5jb25mLmJ1dHRvbnMmJihsLmNvbGxlY3Rpb249ZCgiPCIrdGhpcy5jLmRvbS5jb2xsZWN0aW9uLnRhZysKIi8+IiksbC5jb25mLl9jb2xsZWN0aW9uPWwuY29sbGVjdGlvbix0aGlzLl9leHBhbmRCdXR0b24obC5idXR0b25zLGwuY29uZi5idXR0b25zLCEwLGUpKSxyLmluaXQmJnIuaW5pdC5jYWxsKGcuYnV0dG9uKGwubm9kZSksZyxkKGwubm9kZSksciksZisrKX19fSxfYnVpbGRCdXR0b246ZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmMuZG9tLmJ1dHRvbixlPXRoaXMuYy5kb20uYnV0dG9uTGluZXIsZz10aGlzLmMuZG9tLmNvbGxlY3Rpb24sZj10aGlzLnMuZHQsaD1mdW5jdGlvbihiKXtyZXR1cm4iZnVuY3Rpb24iPT09dHlwZW9mIGI/YihmLGwsYSk6Yn07YiYmZy5idXR0b24mJihjPWcuYnV0dG9uKTtiJiZnLmJ1dHRvbkxpbmVyJiYoZT1nLmJ1dHRvbkxpbmVyKTtpZihhLmF2YWlsYWJsZSYmIWEuYXZhaWxhYmxlKGYsYSkpcmV0dXJuITE7dmFyIGs9ZnVuY3Rpb24oYSxiLGMsZSl7ZS5hY3Rpb24uY2FsbChiLmJ1dHRvbihjKSxhLGIsYyxlKTtkKGIudGFibGUoKS5ub2RlKCkpLnRyaWdnZXJIYW5kbGVyKCJidXR0b25zLWFjdGlvbi5kdCIsCltiLmJ1dHRvbihjKSxiLGMsZV0pfTtnPWEudGFnfHxjLnRhZzt2YXIgcj1hLmNsaWNrQmx1cnM9PT1wPyEwOmEuY2xpY2tCbHVycyxsPWQoIjwiK2crIi8+IikuYWRkQ2xhc3MoYy5jbGFzc05hbWUpLmF0dHIoInRhYmluZGV4Iix0aGlzLnMuZHQuc2V0dGluZ3MoKVswXS5pVGFiSW5kZXgpLmF0dHIoImFyaWEtY29udHJvbHMiLHRoaXMucy5kdC50YWJsZSgpLm5vZGUoKS5pZCkub24oImNsaWNrLmR0YiIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpOyFsLmhhc0NsYXNzKGMuZGlzYWJsZWQpJiZhLmFjdGlvbiYmayhiLGYsbCxhKTtyJiZsLmJsdXIoKX0pLm9uKCJrZXl1cC5kdGIiLGZ1bmN0aW9uKGIpezEzPT09Yi5rZXlDb2RlJiYhbC5oYXNDbGFzcyhjLmRpc2FibGVkKSYmYS5hY3Rpb24mJmsoYixmLGwsYSl9KTsiYSI9PT1nLnRvTG93ZXJDYXNlKCkmJmwuYXR0cigiaHJlZiIsIiMiKTsiYnV0dG9uIj09PWcudG9Mb3dlckNhc2UoKSYmbC5hdHRyKCJ0eXBlIiwiYnV0dG9uIik7CmUudGFnPyhnPWQoIjwiK2UudGFnKyIvPiIpLmh0bWwoaChhLnRleHQpKS5hZGRDbGFzcyhlLmNsYXNzTmFtZSksImEiPT09ZS50YWcudG9Mb3dlckNhc2UoKSYmZy5hdHRyKCJocmVmIiwiIyIpLGwuYXBwZW5kKGcpKTpsLmh0bWwoaChhLnRleHQpKTshMT09PWEuZW5hYmxlZCYmbC5hZGRDbGFzcyhjLmRpc2FibGVkKTthLmNsYXNzTmFtZSYmbC5hZGRDbGFzcyhhLmNsYXNzTmFtZSk7YS50aXRsZUF0dHImJmwuYXR0cigidGl0bGUiLGgoYS50aXRsZUF0dHIpKTthLmF0dHImJmwuYXR0cihhLmF0dHIpO2EubmFtZXNwYWNlfHwoYS5uYW1lc3BhY2U9Ii5kdC1idXR0b24tIitDKyspO2U9KGU9dGhpcy5jLmRvbS5idXR0b25Db250YWluZXIpJiZlLnRhZz9kKCI8IitlLnRhZysiLz4iKS5hZGRDbGFzcyhlLmNsYXNzTmFtZSkuYXBwZW5kKGwpOmw7dGhpcy5fYWRkS2V5KGEpO3RoaXMuYy5idXR0b25DcmVhdGVkJiYoZT10aGlzLmMuYnV0dG9uQ3JlYXRlZChhLGUpKTtyZXR1cm57Y29uZjphLApub2RlOmwuZ2V0KDApLGluc2VydGVyOmUsYnV0dG9uczpbXSxpbkNvbGxlY3Rpb246Yixjb2xsZWN0aW9uOm51bGx9fSxfbm9kZVRvQnV0dG9uOmZ1bmN0aW9uKGEsYil7Ynx8KGI9dGhpcy5zLmJ1dHRvbnMpO2Zvcih2YXIgYz0wLGU9Yi5sZW5ndGg7YzxlO2MrKyl7aWYoYltjXS5ub2RlPT09YSlyZXR1cm4gYltjXTtpZihiW2NdLmJ1dHRvbnMubGVuZ3RoKXt2YXIgZD10aGlzLl9ub2RlVG9CdXR0b24oYSxiW2NdLmJ1dHRvbnMpO2lmKGQpcmV0dXJuIGR9fX0sX25vZGVUb0hvc3Q6ZnVuY3Rpb24oYSxiKXtifHwoYj10aGlzLnMuYnV0dG9ucyk7Zm9yKHZhciBjPTAsZT1iLmxlbmd0aDtjPGU7YysrKXtpZihiW2NdLm5vZGU9PT1hKXJldHVybiBiO2lmKGJbY10uYnV0dG9ucy5sZW5ndGgpe3ZhciBkPXRoaXMuX25vZGVUb0hvc3QoYSxiW2NdLmJ1dHRvbnMpO2lmKGQpcmV0dXJuIGR9fX0sX2tleXByZXNzOmZ1bmN0aW9uKGEsYil7aWYoIWIuX2J1dHRvbnNIYW5kbGVkKXt2YXIgYz0KZnVuY3Rpb24oZSl7Zm9yKHZhciBnPTAsZj1lLmxlbmd0aDtnPGY7ZysrKXt2YXIgaD1lW2ddLmNvbmYsaz1lW2ddLm5vZGU7aC5rZXkmJihoLmtleT09PWE/KGIuX2J1dHRvbnNIYW5kbGVkPSEwLGQoaykuY2xpY2soKSk6IWQuaXNQbGFpbk9iamVjdChoLmtleSl8fGgua2V5LmtleSE9PWF8fGgua2V5LnNoaWZ0S2V5JiYhYi5zaGlmdEtleXx8aC5rZXkuYWx0S2V5JiYhYi5hbHRLZXl8fGgua2V5LmN0cmxLZXkmJiFiLmN0cmxLZXl8fGgua2V5Lm1ldGFLZXkmJiFiLm1ldGFLZXl8fChiLl9idXR0b25zSGFuZGxlZD0hMCxkKGspLmNsaWNrKCkpKTtlW2ddLmJ1dHRvbnMubGVuZ3RoJiZjKGVbZ10uYnV0dG9ucyl9fTtjKHRoaXMucy5idXR0b25zKX19LF9yZW1vdmVLZXk6ZnVuY3Rpb24oYSl7aWYoYS5rZXkpe3ZhciBiPWQuaXNQbGFpbk9iamVjdChhLmtleSk/YS5rZXkua2V5OmEua2V5O2E9dGhpcy5zLmxpc3RlbktleXMuc3BsaXQoIiIpO2I9ZC5pbkFycmF5KGIsYSk7YS5zcGxpY2UoYiwKMSk7dGhpcy5zLmxpc3RlbktleXM9YS5qb2luKCIiKX19LF9yZXNvbHZlRXh0ZW5kczpmdW5jdGlvbihhKXt2YXIgYj10aGlzLnMuZHQsYyxlPWZ1bmN0aW9uKGMpe2Zvcih2YXIgZT0wOyFkLmlzUGxhaW5PYmplY3QoYykmJiFkLmlzQXJyYXkoYyk7KXtpZihjPT09cClyZXR1cm47aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBjKXtpZihjPWMoYixhKSwhYylyZXR1cm4hMX1lbHNlIGlmKCJzdHJpbmciPT09dHlwZW9mIGMpe2lmKCFxW2NdKXRocm93IlVua25vd24gYnV0dG9uIHR5cGU6ICIrYztjPXFbY119ZSsrO2lmKDMwPGUpdGhyb3ciQnV0dG9uczogVG9vIG1hbnkgaXRlcmF0aW9ucyI7fXJldHVybiBkLmlzQXJyYXkoYyk/YzpkLmV4dGVuZCh7fSxjKX07Zm9yKGE9ZShhKTthJiZhLmV4dGVuZDspe2lmKCFxW2EuZXh0ZW5kXSl0aHJvdyJDYW5ub3QgZXh0ZW5kIHVua25vd24gYnV0dG9uIHR5cGU6ICIrYS5leHRlbmQ7dmFyIGc9ZShxW2EuZXh0ZW5kXSk7aWYoZC5pc0FycmF5KGcpKXJldHVybiBnOwppZighZylyZXR1cm4hMTt2YXIgZj1nLmNsYXNzTmFtZTthPWQuZXh0ZW5kKHt9LGcsYSk7ZiYmYS5jbGFzc05hbWUhPT1mJiYoYS5jbGFzc05hbWU9ZisiICIrYS5jbGFzc05hbWUpO3ZhciBoPWEucG9zdGZpeEJ1dHRvbnM7aWYoaCl7YS5idXR0b25zfHwoYS5idXR0b25zPVtdKTtmPTA7Zm9yKGM9aC5sZW5ndGg7ZjxjO2YrKylhLmJ1dHRvbnMucHVzaChoW2ZdKTthLnBvc3RmaXhCdXR0b25zPW51bGx9aWYoaD1hLnByZWZpeEJ1dHRvbnMpe2EuYnV0dG9uc3x8KGEuYnV0dG9ucz1bXSk7Zj0wO2ZvcihjPWgubGVuZ3RoO2Y8YztmKyspYS5idXR0b25zLnNwbGljZShmLDAsaFtmXSk7YS5wcmVmaXhCdXR0b25zPW51bGx9YS5leHRlbmQ9Zy5leHRlbmR9cmV0dXJuIGF9LF9wb3BvdmVyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT10aGlzLmMsZz1kLmV4dGVuZCh7YWxpZ246ImJ1dHRvbi1sZWZ0IixhdXRvQ2xvc2U6ITEsYmFja2dyb3VuZDohMCxiYWNrZ3JvdW5kQ2xhc3NOYW1lOiJkdC1idXR0b24tYmFja2dyb3VuZCIsCmNvbnRlbnRDbGFzc05hbWU6ZS5kb20uY29sbGVjdGlvbi5jbGFzc05hbWUsY29sbGVjdGlvbkxheW91dDoiIixjb2xsZWN0aW9uVGl0bGU6IiIsZHJvcHVwOiExLGZhZGU6NDAwLHJpZ2h0QWxpZ25DbGFzc05hbWU6ImR0LWJ1dHRvbi1yaWdodCIsdGFnOmUuZG9tLmNvbGxlY3Rpb24udGFnfSxjKSxmPWIubm9kZSgpLGg9ZnVuY3Rpb24oKXtkKCIuZHQtYnV0dG9uLWNvbGxlY3Rpb24iKS5zdG9wKCkuZmFkZU91dChnLmZhZGUsZnVuY3Rpb24oKXtkKHRoaXMpLmRldGFjaCgpfSk7ZChiLmJ1dHRvbnMoJ1thcmlhLWhhc3BvcHVwPSJ0cnVlIl1bYXJpYS1leHBhbmRlZD0idHJ1ZSJdJykubm9kZXMoKSkuYXR0cigiYXJpYS1leHBhbmRlZCIsImZhbHNlIik7ZCgiZGl2LmR0LWJ1dHRvbi1iYWNrZ3JvdW5kIikub2ZmKCJjbGljay5kdGItY29sbGVjdGlvbiIpO24uYmFja2dyb3VuZCghMSxnLmJhY2tncm91bmRDbGFzc05hbWUsZy5mYWRlLGYpO2QoImJvZHkiKS5vZmYoIi5kdGItY29sbGVjdGlvbiIpOwpiLm9mZigiYnV0dG9ucy1hY3Rpb24uYi1pbnRlcm5hbCIpfTshMT09PWEmJmgoKTtjPWQoYi5idXR0b25zKCdbYXJpYS1oYXNwb3B1cD0idHJ1ZSJdW2FyaWEtZXhwYW5kZWQ9InRydWUiXScpLm5vZGVzKCkpO2MubGVuZ3RoJiYoZj1jLmVxKDApLGgoKSk7Yz1kKCI8ZGl2Lz4iKS5hZGRDbGFzcygiZHQtYnV0dG9uLWNvbGxlY3Rpb24iKS5hZGRDbGFzcyhnLmNvbGxlY3Rpb25MYXlvdXQpLmNzcygiZGlzcGxheSIsIm5vbmUiKTthPWQoYSkuYWRkQ2xhc3MoZy5jb250ZW50Q2xhc3NOYW1lKS5hdHRyKCJyb2xlIiwibWVudSIpLmFwcGVuZFRvKGMpO2YuYXR0cigiYXJpYS1leHBhbmRlZCIsInRydWUiKTtmLnBhcmVudHMoImJvZHkiKVswXSE9PXQuYm9keSYmKGY9dC5ib2R5Lmxhc3RDaGlsZCk7Zy5jb2xsZWN0aW9uVGl0bGUmJmMucHJlcGVuZCgnPGRpdiBjbGFzcz0iZHQtYnV0dG9uLWNvbGxlY3Rpb24tdGl0bGUiPicrZy5jb2xsZWN0aW9uVGl0bGUrIjwvZGl2PiIpO2MuaW5zZXJ0QWZ0ZXIoZikuZmFkZUluKGcuZmFkZSk7CnZhciBrPWQoYi50YWJsZSgpLmNvbnRhaW5lcigpKTtlPWMuY3NzKCJwb3NpdGlvbiIpOyJkdC1jb250YWluZXIiPT09Zy5hbGlnbiYmKGY9Zi5wYXJlbnQoKSxjLmNzcygid2lkdGgiLGsud2lkdGgoKSkpO2lmKCJhYnNvbHV0ZSI9PT1lKXtlPWYucG9zaXRpb24oKTtjLmNzcyh7dG9wOmUudG9wK2Yub3V0ZXJIZWlnaHQoKSxsZWZ0OmUubGVmdH0pO3ZhciByPWMub3V0ZXJIZWlnaHQoKSxsPWMub3V0ZXJXaWR0aCgpLHc9ay5vZmZzZXQoKS50b3Aray5oZWlnaHQoKTt3PWUudG9wK2Yub3V0ZXJIZWlnaHQoKStyLXc7dmFyIEQ9ZS50b3AtcixtPWsub2Zmc2V0KCkudG9wO3I9ZS50b3Atci01Oyh3Pm0tRHx8Zy5kcm9wdXApJiYtcjxtJiZjLmNzcygidG9wIixyKTsoYy5oYXNDbGFzcyhnLnJpZ2h0QWxpZ25DbGFzc05hbWUpfHwiYnV0dG9uLXJpZ2h0Ij09PWcuYWxpZ24pJiZjLmNzcygibGVmdCIsZS5sZWZ0K2Yub3V0ZXJXaWR0aCgpLWwpO3I9ZS5sZWZ0K2w7az1rLm9mZnNldCgpLmxlZnQrCmsud2lkdGgoKTtyPmsmJmMuY3NzKCJsZWZ0IixlLmxlZnQtKHItaykpO2s9Zi5vZmZzZXQoKS5sZWZ0K2w7az5kKHUpLndpZHRoKCkmJmMuY3NzKCJsZWZ0IixlLmxlZnQtKGstZCh1KS53aWR0aCgpKSl9ZWxzZSBlPWMuaGVpZ2h0KCkvMixlPmQodSkuaGVpZ2h0KCkvMiYmKGU9ZCh1KS5oZWlnaHQoKS8yKSxjLmNzcygibWFyZ2luVG9wIiwtMSplKTtnLmJhY2tncm91bmQmJm4uYmFja2dyb3VuZCghMCxnLmJhY2tncm91bmRDbGFzc05hbWUsZy5mYWRlLGYpO2QoImRpdi5kdC1idXR0b24tYmFja2dyb3VuZCIpLm9uKCJjbGljay5kdGItY29sbGVjdGlvbiIsZnVuY3Rpb24oKXt9KTtkKCJib2R5Iikub24oImNsaWNrLmR0Yi1jb2xsZWN0aW9uIixmdW5jdGlvbihiKXt2YXIgYz1kLmZuLmFkZEJhY2s/ImFkZEJhY2siOiJhbmRTZWxmIjtkKGIudGFyZ2V0KS5wYXJlbnRzKClbY10oKS5maWx0ZXIoYSkubGVuZ3RofHxoKCl9KS5vbigia2V5dXAuZHRiLWNvbGxlY3Rpb24iLGZ1bmN0aW9uKGEpezI3PT09CmEua2V5Q29kZSYmaCgpfSk7Zy5hdXRvQ2xvc2UmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLm9uKCJidXR0b25zLWFjdGlvbi5iLWludGVybmFsIixmdW5jdGlvbihhLGIsYyxlKXtlWzBdIT09ZlswXSYmaCgpfSl9LDApfX0pO24uYmFja2dyb3VuZD1mdW5jdGlvbihhLGIsYyxlKXtjPT09cCYmKGM9NDAwKTtlfHwoZT10LmJvZHkpO2E/ZCgiPGRpdi8+IikuYWRkQ2xhc3MoYikuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLmluc2VydEFmdGVyKGUpLnN0b3AoKS5mYWRlSW4oYyk6ZCgiZGl2LiIrYikuc3RvcCgpLmZhZGVPdXQoYyxmdW5jdGlvbigpe2QodGhpcykucmVtb3ZlQ2xhc3MoYikucmVtb3ZlKCl9KX07bi5pbnN0YW5jZVNlbGVjdG9yPWZ1bmN0aW9uKGEsYil7aWYoYT09PXB8fG51bGw9PT1hKXJldHVybiBkLm1hcChiLGZ1bmN0aW9uKGEpe3JldHVybiBhLmluc3R9KTt2YXIgYz1bXSxlPWQubWFwKGIsZnVuY3Rpb24oYSl7cmV0dXJuIGEubmFtZX0pLGc9ZnVuY3Rpb24oYSl7aWYoZC5pc0FycmF5KGEpKWZvcih2YXIgZj0KMCxrPWEubGVuZ3RoO2Y8aztmKyspZyhhW2ZdKTtlbHNlInN0cmluZyI9PT10eXBlb2YgYT8tMSE9PWEuaW5kZXhPZigiLCIpP2coYS5zcGxpdCgiLCIpKTooYT1kLmluQXJyYXkoZC50cmltKGEpLGUpLC0xIT09YSYmYy5wdXNoKGJbYV0uaW5zdCkpOiJudW1iZXIiPT09dHlwZW9mIGEmJmMucHVzaChiW2FdLmluc3QpfTtnKGEpO3JldHVybiBjfTtuLmJ1dHRvblNlbGVjdG9yPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdLGU9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZCxnLGY9MCxrPWIubGVuZ3RoO2Y8aztmKyspaWYoZD1iW2ZdKWc9YyE9PXA/YytmOmYrIiIsYS5wdXNoKHtub2RlOmQubm9kZSxuYW1lOmQuY29uZi5uYW1lLGlkeDpnfSksZC5idXR0b25zJiZlKGEsZC5idXR0b25zLGcrIi0iKX0sZz1mdW5jdGlvbihhLGIpe3ZhciBmLGg9W107ZShoLGIucy5idXR0b25zKTt2YXIgaz1kLm1hcChoLGZ1bmN0aW9uKGEpe3JldHVybiBhLm5vZGV9KTtpZihkLmlzQXJyYXkoYSl8fAphIGluc3RhbmNlb2YgZClmb3Ioaz0wLGY9YS5sZW5ndGg7azxmO2srKylnKGFba10sYik7ZWxzZSBpZihudWxsPT09YXx8YT09PXB8fCIqIj09PWEpZm9yKGs9MCxmPWgubGVuZ3RoO2s8ZjtrKyspYy5wdXNoKHtpbnN0OmIsbm9kZTpoW2tdLm5vZGV9KTtlbHNlIGlmKCJudW1iZXIiPT09dHlwZW9mIGEpYy5wdXNoKHtpbnN0OmIsbm9kZTpiLnMuYnV0dG9uc1thXS5ub2RlfSk7ZWxzZSBpZigic3RyaW5nIj09PXR5cGVvZiBhKWlmKC0xIT09YS5pbmRleE9mKCIsIikpZm9yKGg9YS5zcGxpdCgiLCIpLGs9MCxmPWgubGVuZ3RoO2s8ZjtrKyspZyhkLnRyaW0oaFtrXSksYik7ZWxzZSBpZihhLm1hdGNoKC9eXGQrKFwtXGQrKSokLykpaz1kLm1hcChoLGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkeH0pLGMucHVzaCh7aW5zdDpiLG5vZGU6aFtkLmluQXJyYXkoYSxrKV0ubm9kZX0pO2Vsc2UgaWYoLTEhPT1hLmluZGV4T2YoIjpuYW1lIikpZm9yKGE9YS5yZXBsYWNlKCI6bmFtZSIsIiIpLGs9CjAsZj1oLmxlbmd0aDtrPGY7aysrKWhba10ubmFtZT09PWEmJmMucHVzaCh7aW5zdDpiLG5vZGU6aFtrXS5ub2RlfSk7ZWxzZSBkKGspLmZpbHRlcihhKS5lYWNoKGZ1bmN0aW9uKCl7Yy5wdXNoKHtpbnN0OmIsbm9kZTp0aGlzfSl9KTtlbHNlIm9iamVjdCI9PT10eXBlb2YgYSYmYS5ub2RlTmFtZSYmKGg9ZC5pbkFycmF5KGEsayksLTEhPT1oJiZjLnB1c2goe2luc3Q6Yixub2RlOmtbaF19KSl9LGY9MCxoPWEubGVuZ3RoO2Y8aDtmKyspZyhiLGFbZl0pO3JldHVybiBjfTtuLmRlZmF1bHRzPXtidXR0b25zOlsiY29weSIsImV4Y2VsIiwiY3N2IiwicGRmIiwicHJpbnQiXSxuYW1lOiJtYWluIix0YWJJbmRleDowLGRvbTp7Y29udGFpbmVyOnt0YWc6ImRpdiIsY2xhc3NOYW1lOiJkdC1idXR0b25zIn0sY29sbGVjdGlvbjp7dGFnOiJkaXYiLGNsYXNzTmFtZToiIn0sYnV0dG9uOnt0YWc6IkFjdGl2ZVhPYmplY3QiaW4gdT8iYSI6ImJ1dHRvbiIsY2xhc3NOYW1lOiJkdC1idXR0b24iLAphY3RpdmU6ImFjdGl2ZSIsZGlzYWJsZWQ6ImRpc2FibGVkIn0sYnV0dG9uTGluZXI6e3RhZzoic3BhbiIsY2xhc3NOYW1lOiIifX19O24udmVyc2lvbj0iMS42LjEiO2QuZXh0ZW5kKHEse2NvbGxlY3Rpb246e3RleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5jb2xsZWN0aW9uIiwiQ29sbGVjdGlvbiIpfSxjbGFzc05hbWU6ImJ1dHRvbnMtY29sbGVjdGlvbiIsaW5pdDpmdW5jdGlvbihhLGIsYyl7Yi5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMSl9LGFjdGlvbjpmdW5jdGlvbihhLGIsYyxlKXthLnN0b3BQcm9wYWdhdGlvbigpO2UuX2NvbGxlY3Rpb24ucGFyZW50cygiYm9keSIpLmxlbmd0aD90aGlzLnBvcG92ZXIoITEsZSk6dGhpcy5wb3BvdmVyKGUuX2NvbGxlY3Rpb24sZSl9LGF0dHI6eyJhcmlhLWhhc3BvcHVwIjohMH19LGNvcHk6ZnVuY3Rpb24oYSxiKXtpZihxLmNvcHlIdG1sNSlyZXR1cm4iY29weUh0bWw1IjtpZihxLmNvcHlGbGFzaCYmcS5jb3B5Rmxhc2guYXZhaWxhYmxlKGEsCmIpKXJldHVybiJjb3B5Rmxhc2gifSxjc3Y6ZnVuY3Rpb24oYSxiKXtpZihxLmNzdkh0bWw1JiZxLmNzdkh0bWw1LmF2YWlsYWJsZShhLGIpKXJldHVybiJjc3ZIdG1sNSI7aWYocS5jc3ZGbGFzaCYmcS5jc3ZGbGFzaC5hdmFpbGFibGUoYSxiKSlyZXR1cm4iY3N2Rmxhc2gifSxleGNlbDpmdW5jdGlvbihhLGIpe2lmKHEuZXhjZWxIdG1sNSYmcS5leGNlbEh0bWw1LmF2YWlsYWJsZShhLGIpKXJldHVybiJleGNlbEh0bWw1IjtpZihxLmV4Y2VsRmxhc2gmJnEuZXhjZWxGbGFzaC5hdmFpbGFibGUoYSxiKSlyZXR1cm4iZXhjZWxGbGFzaCJ9LHBkZjpmdW5jdGlvbihhLGIpe2lmKHEucGRmSHRtbDUmJnEucGRmSHRtbDUuYXZhaWxhYmxlKGEsYikpcmV0dXJuInBkZkh0bWw1IjtpZihxLnBkZkZsYXNoJiZxLnBkZkZsYXNoLmF2YWlsYWJsZShhLGIpKXJldHVybiJwZGZGbGFzaCJ9LHBhZ2VMZW5ndGg6ZnVuY3Rpb24oYSl7YT1hLnNldHRpbmdzKClbMF0uYUxlbmd0aE1lbnU7dmFyIGI9ZC5pc0FycmF5KGFbMF0pPwphWzBdOmEsYz1kLmlzQXJyYXkoYVswXSk/YVsxXTphO3JldHVybntleHRlbmQ6ImNvbGxlY3Rpb24iLHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5wYWdlTGVuZ3RoIix7Ii0xIjoiU2hvdyBhbGwgcm93cyIsXzoiU2hvdyAlZCByb3dzIn0sYS5wYWdlLmxlbigpKX0sY2xhc3NOYW1lOiJidXR0b25zLXBhZ2UtbGVuZ3RoIixhdXRvQ2xvc2U6ITAsYnV0dG9uczpkLm1hcChiLGZ1bmN0aW9uKGEsYil7cmV0dXJue3RleHQ6Y1tiXSxjbGFzc05hbWU6ImJ1dHRvbi1wYWdlLWxlbmd0aCIsYWN0aW9uOmZ1bmN0aW9uKGIsYyl7Yy5wYWdlLmxlbihhKS5kcmF3KCl9LGluaXQ6ZnVuY3Rpb24oYixjLGQpe3ZhciBlPXRoaXM7Yz1mdW5jdGlvbigpe2UuYWN0aXZlKGIucGFnZS5sZW4oKT09PWEpfTtiLm9uKCJsZW5ndGguZHQiK2QubmFtZXNwYWNlLGMpO2MoKX0sZGVzdHJveTpmdW5jdGlvbihhLGIsYyl7YS5vZmYoImxlbmd0aC5kdCIrYy5uYW1lc3BhY2UpfX19KSwKaW5pdDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9dGhpczthLm9uKCJsZW5ndGguZHQiK2MubmFtZXNwYWNlLGZ1bmN0aW9uKCl7ZC50ZXh0KGMudGV4dCl9KX0sZGVzdHJveTpmdW5jdGlvbihhLGIsYyl7YS5vZmYoImxlbmd0aC5kdCIrYy5uYW1lc3BhY2UpfX19fSk7bS5BcGkucmVnaXN0ZXIoImJ1dHRvbnMoKSIsZnVuY3Rpb24oYSxiKXtiPT09cCYmKGI9YSxhPXApO3RoaXMuc2VsZWN0b3IuYnV0dG9uR3JvdXA9YTt2YXIgYz10aGlzLml0ZXJhdG9yKCEwLCJ0YWJsZSIsZnVuY3Rpb24oYyl7aWYoYy5fYnV0dG9ucylyZXR1cm4gbi5idXR0b25TZWxlY3RvcihuLmluc3RhbmNlU2VsZWN0b3IoYSxjLl9idXR0b25zKSxiKX0sITApO2MuX2dyb3VwU2VsZWN0b3I9YTtyZXR1cm4gY30pO20uQXBpLnJlZ2lzdGVyKCJidXR0b24oKSIsZnVuY3Rpb24oYSxiKXthPXRoaXMuYnV0dG9ucyhhLGIpOzE8YS5sZW5ndGgmJmEuc3BsaWNlKDEsYS5sZW5ndGgpO3JldHVybiBhfSk7bS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5hY3RpdmUoKSIsCiJidXR0b24oKS5hY3RpdmUoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wP3RoaXMubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmluc3QuYWN0aXZlKGEubm9kZSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oYil7Yi5pbnN0LmFjdGl2ZShiLm5vZGUsYSl9KX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkuYWN0aW9uKCkiLCJidXR0b24oKS5hY3Rpb24oKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT1wP3RoaXMubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmluc3QuYWN0aW9uKGEubm9kZSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oYil7Yi5pbnN0LmFjdGlvbihiLm5vZGUsYSl9KX0pO20uQXBpLnJlZ2lzdGVyKFsiYnV0dG9ucygpLmVuYWJsZSgpIiwiYnV0dG9uKCkuZW5hYmxlKCkiXSxmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2IuaW5zdC5lbmFibGUoYi5ub2RlLGEpfSl9KTttLkFwaS5yZWdpc3RlcihbImJ1dHRvbnMoKS5kaXNhYmxlKCkiLAoiYnV0dG9uKCkuZGlzYWJsZSgpIl0sZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGEpe2EuaW5zdC5kaXNhYmxlKGEubm9kZSl9KX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkubm9kZXMoKSIsImJ1dHRvbigpLm5vZGUoKSIsZnVuY3Rpb24oKXt2YXIgYT1kKCk7ZCh0aGlzLmVhY2goZnVuY3Rpb24oYil7YT1hLmFkZChiLmluc3Qubm9kZShiLm5vZGUpKX0pKTtyZXR1cm4gYX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkucHJvY2Vzc2luZygpIiwiYnV0dG9uKCkucHJvY2Vzc2luZygpIixmdW5jdGlvbihhKXtyZXR1cm4gYT09PXA/dGhpcy5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaW5zdC5wcm9jZXNzaW5nKGEubm9kZSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oYil7Yi5pbnN0LnByb2Nlc3NpbmcoYi5ub2RlLGEpfSl9KTttLkFwaS5yZWdpc3RlclBsdXJhbCgiYnV0dG9ucygpLnRleHQoKSIsImJ1dHRvbigpLnRleHQoKSIsZnVuY3Rpb24oYSl7cmV0dXJuIGE9PT0KcD90aGlzLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5pbnN0LnRleHQoYS5ub2RlKX0pOnRoaXMuZWFjaChmdW5jdGlvbihiKXtiLmluc3QudGV4dChiLm5vZGUsYSl9KX0pO20uQXBpLnJlZ2lzdGVyUGx1cmFsKCJidXR0b25zKCkudHJpZ2dlcigpIiwiYnV0dG9uKCkudHJpZ2dlcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYSl7YS5pbnN0Lm5vZGUoYS5ub2RlKS50cmlnZ2VyKCJjbGljayIpfSl9KTttLkFwaS5yZWdpc3RlcigiYnV0dG9uKCkucG9wb3ZlcigpIixmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5pbnN0Ll9wb3BvdmVyKGEsdGhpcy5idXR0b24odGhpc1swXS5ub2RlKSxiKX0pfSk7bS5BcGkucmVnaXN0ZXIoImJ1dHRvbnMoKS5jb250YWluZXJzKCkiLGZ1bmN0aW9uKCl7dmFyIGE9ZCgpLGI9dGhpcy5fZ3JvdXBTZWxlY3Rvcjt0aGlzLml0ZXJhdG9yKCEwLCJ0YWJsZSIsZnVuY3Rpb24oYyl7aWYoYy5fYnV0dG9ucyl7Yz0Kbi5pbnN0YW5jZVNlbGVjdG9yKGIsYy5fYnV0dG9ucyk7Zm9yKHZhciBkPTAsZz1jLmxlbmd0aDtkPGc7ZCsrKWE9YS5hZGQoY1tkXS5jb250YWluZXIoKSl9fSk7cmV0dXJuIGF9KTttLkFwaS5yZWdpc3RlcigiYnV0dG9ucygpLmNvbnRhaW5lcigpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRhaW5lcnMoKS5lcSgwKX0pO20uQXBpLnJlZ2lzdGVyKCJidXR0b24oKS5hZGQoKSIsZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNvbnRleHQ7Yy5sZW5ndGgmJihjPW4uaW5zdGFuY2VTZWxlY3Rvcih0aGlzLl9ncm91cFNlbGVjdG9yLGNbMF0uX2J1dHRvbnMpLGMubGVuZ3RoJiZjWzBdLmFkZChiLGEpKTtyZXR1cm4gdGhpcy5idXR0b24odGhpcy5fZ3JvdXBTZWxlY3RvcixhKX0pO20uQXBpLnJlZ2lzdGVyKCJidXR0b25zKCkuZGVzdHJveSgpIixmdW5jdGlvbigpe3RoaXMucGx1Y2soImluc3QiKS51bmlxdWUoKS5lYWNoKGZ1bmN0aW9uKGEpe2EuZGVzdHJveSgpfSk7cmV0dXJuIHRoaXN9KTsKbS5BcGkucmVnaXN0ZXJQbHVyYWwoImJ1dHRvbnMoKS5yZW1vdmUoKSIsImJ1dHRvbnMoKS5yZW1vdmUoKSIsZnVuY3Rpb24oKXt0aGlzLmVhY2goZnVuY3Rpb24oYSl7YS5pbnN0LnJlbW92ZShhLm5vZGUpfSk7cmV0dXJuIHRoaXN9KTt2YXIgdjttLkFwaS5yZWdpc3RlcigiYnV0dG9ucy5pbmZvKCkiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZT10aGlzO2lmKCExPT09YSlyZXR1cm4gdGhpcy5vZmYoImRlc3Ryb3kuYnRuLWluZm8iKSxkKCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKS5mYWRlT3V0KGZ1bmN0aW9uKCl7ZCh0aGlzKS5yZW1vdmUoKX0pLGNsZWFyVGltZW91dCh2KSx2PW51bGwsdGhpczt2JiZjbGVhclRpbWVvdXQodik7ZCgiI2RhdGF0YWJsZXNfYnV0dG9uc19pbmZvIikubGVuZ3RoJiZkKCIjZGF0YXRhYmxlc19idXR0b25zX2luZm8iKS5yZW1vdmUoKTthPWE/IjxoMj4iK2ErIjwvaDI+IjoiIjtkKCc8ZGl2IGlkPSJkYXRhdGFibGVzX2J1dHRvbnNfaW5mbyIgY2xhc3M9ImR0LWJ1dHRvbi1pbmZvIi8+JykuaHRtbChhKS5hcHBlbmQoZCgiPGRpdi8+IilbInN0cmluZyI9PT0KdHlwZW9mIGI/Imh0bWwiOiJhcHBlbmQiXShiKSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpLmFwcGVuZFRvKCJib2R5IikuZmFkZUluKCk7YyE9PXAmJjAhPT1jJiYodj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5idXR0b25zLmluZm8oITEpfSxjKSk7dGhpcy5vbigiZGVzdHJveS5idG4taW5mbyIsZnVuY3Rpb24oKXtlLmJ1dHRvbnMuaW5mbyghMSl9KTtyZXR1cm4gdGhpc30pO20uQXBpLnJlZ2lzdGVyKCJidXR0b25zLmV4cG9ydERhdGEoKSIsZnVuY3Rpb24oYSl7aWYodGhpcy5jb250ZXh0Lmxlbmd0aClyZXR1cm4gRShuZXcgbS5BcGkodGhpcy5jb250ZXh0WzBdKSxhKX0pO20uQXBpLnJlZ2lzdGVyKCJidXR0b25zLmV4cG9ydEluZm8oKSIsZnVuY3Rpb24oYSl7YXx8KGE9e30pO3ZhciBiPWE7dmFyIGM9IioiPT09Yi5maWxlbmFtZSYmIioiIT09Yi50aXRsZSYmYi50aXRsZSE9PXAmJm51bGwhPT1iLnRpdGxlJiYiIiE9PWIudGl0bGU/Yi50aXRsZTpiLmZpbGVuYW1lOyJmdW5jdGlvbiI9PT0KdHlwZW9mIGMmJihjPWMoKSk7Yz09PXB8fG51bGw9PT1jP2M9bnVsbDooLTEhPT1jLmluZGV4T2YoIioiKSYmKGM9ZC50cmltKGMucmVwbGFjZSgiKiIsZCgiaGVhZCA+IHRpdGxlIikudGV4dCgpKSkpLGM9Yy5yZXBsYWNlKC9bXmEtekEtWjAtOV9cdTAwQTEtXHVGRkZGXC4sXC1fICFcKFwpXS9nLCIiKSwoYj14KGIuZXh0ZW5zaW9uKSl8fChiPSIiKSxjKz1iKTtiPXgoYS50aXRsZSk7Yj1udWxsPT09Yj9udWxsOi0xIT09Yi5pbmRleE9mKCIqIik/Yi5yZXBsYWNlKCIqIixkKCJoZWFkID4gdGl0bGUiKS50ZXh0KCl8fCJFeHBvcnRlZCBkYXRhIik6YjtyZXR1cm57ZmlsZW5hbWU6Yyx0aXRsZTpiLG1lc3NhZ2VUb3A6eih0aGlzLGEubWVzc2FnZXx8YS5tZXNzYWdlVG9wLCJ0b3AiKSxtZXNzYWdlQm90dG9tOnoodGhpcyxhLm1lc3NhZ2VCb3R0b20sImJvdHRvbSIpfX0pO3ZhciB4PWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YXx8YT09PXA/bnVsbDoiZnVuY3Rpb24iPT09dHlwZW9mIGE/CmEoKTphfSx6PWZ1bmN0aW9uKGEsYixjKXtiPXgoYik7aWYobnVsbD09PWIpcmV0dXJuIG51bGw7YT1kKCJjYXB0aW9uIixhLnRhYmxlKCkuY29udGFpbmVyKCkpLmVxKDApO3JldHVybiIqIj09PWI/YS5jc3MoImNhcHRpb24tc2lkZSIpIT09Yz9udWxsOmEubGVuZ3RoP2EudGV4dCgpOiIiOmJ9LEE9ZCgiPHRleHRhcmVhLz4iKVswXSxFPWZ1bmN0aW9uKGEsYil7dmFyIGM9ZC5leHRlbmQoITAse30se3Jvd3M6bnVsbCxjb2x1bW5zOiIiLG1vZGlmaWVyOntzZWFyY2g6ImFwcGxpZWQiLG9yZGVyOiJhcHBsaWVkIn0sb3J0aG9nb25hbDoiZGlzcGxheSIsc3RyaXBIdG1sOiEwLHN0cmlwTmV3bGluZXM6ITAsZGVjb2RlRW50aXRpZXM6ITAsdHJpbTohMCxmb3JtYXQ6e2hlYWRlcjpmdW5jdGlvbihhKXtyZXR1cm4gZShhKX0sZm9vdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBlKGEpfSxib2R5OmZ1bmN0aW9uKGEpe3JldHVybiBlKGEpfX0sY3VzdG9taXplRGF0YTpudWxsfSxiKSxlPWZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciIT09CnR5cGVvZiBhKXJldHVybiBhO2E9YS5yZXBsYWNlKC88c2NyaXB0XGJbXjxdKig/Oig/ITxcL3NjcmlwdD4pPFtePF0qKSo8XC9zY3JpcHQ+L2dpLCIiKTthPWEucmVwbGFjZSgvPCFcLVwtLio/XC1cLT4vZywiIik7Yy5zdHJpcEh0bWwmJihhPWEucmVwbGFjZSgvPFtePl0qPi9nLCIiKSk7Yy50cmltJiYoYT1hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSk7Yy5zdHJpcE5ld2xpbmVzJiYoYT1hLnJlcGxhY2UoL1xuL2csIiAiKSk7Yy5kZWNvZGVFbnRpdGllcyYmKEEuaW5uZXJIVE1MPWEsYT1BLnZhbHVlKTtyZXR1cm4gYX07Yj1hLmNvbHVtbnMoYy5jb2x1bW5zKS5pbmRleGVzKCkubWFwKGZ1bmN0aW9uKGIpe3ZhciBkPWEuY29sdW1uKGIpLmhlYWRlcigpO3JldHVybiBjLmZvcm1hdC5oZWFkZXIoZC5pbm5lckhUTUwsYixkKX0pLnRvQXJyYXkoKTt2YXIgZz1hLnRhYmxlKCkuZm9vdGVyKCk/YS5jb2x1bW5zKGMuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihiKXt2YXIgZD0KYS5jb2x1bW4oYikuZm9vdGVyKCk7cmV0dXJuIGMuZm9ybWF0LmZvb3RlcihkP2QuaW5uZXJIVE1MOiIiLGIsZCl9KS50b0FycmF5KCk6bnVsbCxmPWQuZXh0ZW5kKHt9LGMubW9kaWZpZXIpO2Euc2VsZWN0JiYiZnVuY3Rpb24iPT09dHlwZW9mIGEuc2VsZWN0LmluZm8mJmYuc2VsZWN0ZWQ9PT1wJiZhLnJvd3MoYy5yb3dzLGQuZXh0ZW5kKHtzZWxlY3RlZDohMH0sZikpLmFueSgpJiZkLmV4dGVuZChmLHtzZWxlY3RlZDohMH0pO2Y9YS5yb3dzKGMucm93cyxmKS5pbmRleGVzKCkudG9BcnJheSgpO3ZhciBoPWEuY2VsbHMoZixjLmNvbHVtbnMpO2Y9aC5yZW5kZXIoYy5vcnRob2dvbmFsKS50b0FycmF5KCk7aD1oLm5vZGVzKCkudG9BcnJheSgpO2Zvcih2YXIgaz1iLmxlbmd0aCxtPVtdLGw9MCxuPTAscT0wPGs/Zi5sZW5ndGgvazowO248cTtuKyspe2Zvcih2YXIgdT1ba10sdD0wO3Q8azt0KyspdVt0XT1jLmZvcm1hdC5ib2R5KGZbbF0sbix0LGhbbF0pLGwrKzttW25dPXV9Yj17aGVhZGVyOmIsCmZvb3RlcjpnLGJvZHk6bX07Yy5jdXN0b21pemVEYXRhJiZjLmN1c3RvbWl6ZURhdGEoYik7cmV0dXJuIGJ9O2QuZm4uZGF0YVRhYmxlLkJ1dHRvbnM9bjtkLmZuLkRhdGFUYWJsZS5CdXR0b25zPW47ZCh0KS5vbigiaW5pdC5kdCBwbHVnaW4taW5pdC5kdCIsZnVuY3Rpb24oYSxiKXsiZHQiPT09YS5uYW1lc3BhY2UmJihhPWIub0luaXQuYnV0dG9uc3x8bS5kZWZhdWx0cy5idXR0b25zKSYmIWIuX2J1dHRvbnMmJihuZXcgbihiLGEpKS5jb250YWluZXIoKX0pO20uZXh0LmZlYXR1cmUucHVzaCh7Zm5Jbml0OnksY0ZlYXR1cmU6IkIifSk7bS5leHQuZmVhdHVyZXMmJm0uZXh0LmZlYXR1cmVzLnJlZ2lzdGVyKCJidXR0b25zIix5KTtyZXR1cm4gbn0pOwo="></script>
|
||
<script src="data:application/javascript;base64,LyohCiBGbGFzaCBleHBvcnQgYnV0dG9ucyBmb3IgQnV0dG9ucyBhbmQgRGF0YVRhYmxlcy4KIDIwMTUtMjAxNyBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoKIFplcm9DbGlwYmFvcmQgLSBNSVQgbGljZW5zZQogQ29weXJpZ2h0IChjKSAyMDEyIEpvc2VwaCBIdWNrYWJ5CiovCihmdW5jdGlvbihnKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiLCJkYXRhdGFibGVzLm5ldCIsImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiXSxmdW5jdGlvbihuKXtyZXR1cm4gZyhuLHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKG4sbSl7bnx8KG49d2luZG93KTttJiZtLmZuLmRhdGFUYWJsZXx8KG09cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKShuLG0pLiQpO20uZm4uZGF0YVRhYmxlLkJ1dHRvbnN8fHJlcXVpcmUoImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiKShuLG0pO3JldHVybiBnKG0sbixuLmRvY3VtZW50KX06ZyhqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGcsbixtLHUpe2Z1bmN0aW9uIEEoYSl7Zm9yKHZhciBiPSIiOzA8PWE7KWI9U3RyaW5nLmZyb21DaGFyQ29kZShhJTI2KzY1KStiLGE9TWF0aC5mbG9vcihhLzI2KS0xOwpyZXR1cm4gYn1mdW5jdGlvbiByKGEsYixjKXt2YXIgZD1hLmNyZWF0ZUVsZW1lbnQoYik7YyYmKGMuYXR0ciYmZyhkKS5hdHRyKGMuYXR0ciksYy5jaGlsZHJlbiYmZy5lYWNoKGMuY2hpbGRyZW4sZnVuY3Rpb24oYSxiKXtkLmFwcGVuZENoaWxkKGIpfSksbnVsbCE9PWMudGV4dCYmYy50ZXh0IT09dSYmZC5hcHBlbmRDaGlsZChhLmNyZWF0ZVRleHROb2RlKGMudGV4dCkpKTtyZXR1cm4gZH1mdW5jdGlvbiBHKGEsYil7dmFyIGM9YS5oZWFkZXJbYl0ubGVuZ3RoO2EuZm9vdGVyJiZhLmZvb3RlcltiXS5sZW5ndGg+YyYmKGM9YS5mb290ZXJbYl0ubGVuZ3RoKTtmb3IodmFyIGQ9MCxmPWEuYm9keS5sZW5ndGg7ZDxmO2QrKyl7dmFyIGU9YS5ib2R5W2RdW2JdO2U9bnVsbCE9PWUmJmUhPT11P2UudG9TdHJpbmcoKToiIjstMSE9PWUuaW5kZXhPZigiXG4iKT8oZT1lLnNwbGl0KCJcbiIpLGUuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBiLmxlbmd0aC1hLmxlbmd0aH0pLGU9ZVswXS5sZW5ndGgpOgplPWUubGVuZ3RoO2U+YyYmKGM9ZSk7aWYoNDA8YylyZXR1cm4gNTJ9Yyo9MS4zO3JldHVybiA2PGM/Yzo2fWZ1bmN0aW9uIEIoYSl7dj09PXUmJih2PS0xPT09ei5zZXJpYWxpemVUb1N0cmluZyhnLnBhcnNlWE1MKHRbInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCJdKSkuaW5kZXhPZigieG1sbnM6ciIpKTtnLmVhY2goYSxmdW5jdGlvbihiLGMpe2lmKGcuaXNQbGFpbk9iamVjdChjKSlCKGMpO2Vsc2V7aWYodil7dmFyIGQ9Yy5jaGlsZE5vZGVzWzBdLGYsZT1bXTtmb3IoZj1kLmF0dHJpYnV0ZXMubGVuZ3RoLTE7MDw9ZjtmLS0pe3ZhciBoPWQuYXR0cmlidXRlc1tmXS5ub2RlTmFtZTt2YXIgaz1kLmF0dHJpYnV0ZXNbZl0ubm9kZVZhbHVlOy0xIT09aC5pbmRleE9mKCI6IikmJihlLnB1c2goe25hbWU6aCx2YWx1ZTprfSksZC5yZW1vdmVBdHRyaWJ1dGUoaCkpfWY9MDtmb3IoaD1lLmxlbmd0aDtmPGg7ZisrKWs9Yy5jcmVhdGVBdHRyaWJ1dGUoZVtmXS5uYW1lLnJlcGxhY2UoIjoiLAoiX2R0X2JfbmFtZXNwYWNlX3Rva2VuXyIpKSxrLnZhbHVlPWVbZl0udmFsdWUsZC5zZXRBdHRyaWJ1dGVOb2RlKGspfWM9ei5zZXJpYWxpemVUb1N0cmluZyhjKTt2JiYoLTE9PT1jLmluZGV4T2YoIjw/eG1sIikmJihjPSc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+JytjKSxjPWMucmVwbGFjZSgvX2R0X2JfbmFtZXNwYWNlX3Rva2VuXy9nLCI6IikpO2M9Yy5yZXBsYWNlKC88KFtePD5dKj8pIHhtbG5zPSIiKFtePD5dKj8pPi9nLCI8JDEgJDI+Iik7YVtiXT1jfX0pfXZhciBsPWcuZm4uZGF0YVRhYmxlLGg9e3ZlcnNpb246IjEuMC40LVRhYmxlVG9vbHMyIixjbGllbnRzOnt9LG1vdmllUGF0aDoiIixuZXh0SWQ6MSwkOmZ1bmN0aW9uKGEpeyJzdHJpbmciPT10eXBlb2YgYSYmKGE9bS5nZXRFbGVtZW50QnlJZChhKSk7YS5hZGRDbGFzc3x8KGEuaGlkZT1mdW5jdGlvbigpe3RoaXMuc3R5bGUuZGlzcGxheT0ibm9uZSJ9LGEuc2hvdz0KZnVuY3Rpb24oKXt0aGlzLnN0eWxlLmRpc3BsYXk9IiJ9LGEuYWRkQ2xhc3M9ZnVuY3Rpb24oYSl7dGhpcy5yZW1vdmVDbGFzcyhhKTt0aGlzLmNsYXNzTmFtZSs9IiAiK2F9LGEucmVtb3ZlQ2xhc3M9ZnVuY3Rpb24oYSl7dGhpcy5jbGFzc05hbWU9dGhpcy5jbGFzc05hbWUucmVwbGFjZShuZXcgUmVnRXhwKCJcXHMqIithKyJcXHMqIiksIiAiKS5yZXBsYWNlKC9eXHMrLywiIikucmVwbGFjZSgvXHMrJC8sIiIpfSxhLmhhc0NsYXNzPWZ1bmN0aW9uKGEpe3JldHVybiEhdGhpcy5jbGFzc05hbWUubWF0Y2gobmV3IFJlZ0V4cCgiXFxzKiIrYSsiXFxzKiIpKX0pO3JldHVybiBhfSxzZXRNb3ZpZVBhdGg6ZnVuY3Rpb24oYSl7dGhpcy5tb3ZpZVBhdGg9YX0sZGlzcGF0Y2g6ZnVuY3Rpb24oYSxiLGMpeyhhPXRoaXMuY2xpZW50c1thXSkmJmEucmVjZWl2ZUV2ZW50KGIsYyl9LGxvZzpmdW5jdGlvbihhKXtjb25zb2xlLmxvZygiRmxhc2g6ICIrYSl9LHJlZ2lzdGVyOmZ1bmN0aW9uKGEsCmIpe3RoaXMuY2xpZW50c1thXT1ifSxnZXRET01PYmplY3RQb3NpdGlvbjpmdW5jdGlvbihhKXt2YXIgYj17bGVmdDowLHRvcDowLHdpZHRoOmEud2lkdGg/YS53aWR0aDphLm9mZnNldFdpZHRoLGhlaWdodDphLmhlaWdodD9hLmhlaWdodDphLm9mZnNldEhlaWdodH07IiIhPT1hLnN0eWxlLndpZHRoJiYoYi53aWR0aD1hLnN0eWxlLndpZHRoLnJlcGxhY2UoInB4IiwiIikpOyIiIT09YS5zdHlsZS5oZWlnaHQmJihiLmhlaWdodD1hLnN0eWxlLmhlaWdodC5yZXBsYWNlKCJweCIsIiIpKTtmb3IoO2E7KWIubGVmdCs9YS5vZmZzZXRMZWZ0LGIudG9wKz1hLm9mZnNldFRvcCxhPWEub2Zmc2V0UGFyZW50O3JldHVybiBifSxDbGllbnQ6ZnVuY3Rpb24oYSl7dGhpcy5oYW5kbGVycz17fTt0aGlzLmlkPWgubmV4dElkKys7dGhpcy5tb3ZpZUlkPSJaZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHNNb3ZpZV8iK3RoaXMuaWQ7aC5yZWdpc3Rlcih0aGlzLmlkLHRoaXMpO2EmJnRoaXMuZ2x1ZShhKX19OwpoLkNsaWVudC5wcm90b3R5cGU9e2lkOjAscmVhZHk6ITEsbW92aWU6bnVsbCxjbGlwVGV4dDoiIixmaWxlTmFtZToiIixhY3Rpb246ImNvcHkiLGhhbmRDdXJzb3JFbmFibGVkOiEwLGNzc0VmZmVjdHM6ITAsaGFuZGxlcnM6bnVsbCxzaXplZDohMSxzaGVldE5hbWU6IiIsZ2x1ZTpmdW5jdGlvbihhLGIpe3RoaXMuZG9tRWxlbWVudD1oLiQoYSk7YT05OTt0aGlzLmRvbUVsZW1lbnQuc3R5bGUuekluZGV4JiYoYT1wYXJzZUludCh0aGlzLmRvbUVsZW1lbnQuc3R5bGUuekluZGV4LDEwKSsxKTt2YXIgYz1oLmdldERPTU9iamVjdFBvc2l0aW9uKHRoaXMuZG9tRWxlbWVudCk7dGhpcy5kaXY9bS5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgZD10aGlzLmRpdi5zdHlsZTtkLnBvc2l0aW9uPSJhYnNvbHV0ZSI7ZC5sZWZ0PSIwcHgiO2QudG9wPSIwcHgiO2Qud2lkdGg9Yy53aWR0aCsicHgiO2QuaGVpZ2h0PWMuaGVpZ2h0KyJweCI7ZC56SW5kZXg9YTsidW5kZWZpbmVkIiE9dHlwZW9mIGImJgoiIiE9PWImJih0aGlzLmRpdi50aXRsZT1iKTswIT09Yy53aWR0aCYmMCE9PWMuaGVpZ2h0JiYodGhpcy5zaXplZD0hMCk7dGhpcy5kb21FbGVtZW50JiYodGhpcy5kb21FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZGl2KSx0aGlzLmRpdi5pbm5lckhUTUw9dGhpcy5nZXRIVE1MKGMud2lkdGgsYy5oZWlnaHQpLnJlcGxhY2UoLyYvZywiJmFtcDsiKSl9LHBvc2l0aW9uRWxlbWVudDpmdW5jdGlvbigpe3ZhciBhPWguZ2V0RE9NT2JqZWN0UG9zaXRpb24odGhpcy5kb21FbGVtZW50KSxiPXRoaXMuZGl2LnN0eWxlO2IucG9zaXRpb249ImFic29sdXRlIjtiLndpZHRoPWEud2lkdGgrInB4IjtiLmhlaWdodD1hLmhlaWdodCsicHgiOzAhPT1hLndpZHRoJiYwIT09YS5oZWlnaHQmJih0aGlzLnNpemVkPSEwLGI9dGhpcy5kaXYuY2hpbGROb2Rlc1swXSxiLndpZHRoPWEud2lkdGgsYi5oZWlnaHQ9YS5oZWlnaHQpfSxnZXRIVE1MOmZ1bmN0aW9uKGEsYil7dmFyIGM9IiIsZD0iaWQ9Iit0aGlzLmlkKwoiJndpZHRoPSIrYSsiJmhlaWdodD0iK2I7aWYobmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvTVNJRS8pKXt2YXIgZj1sb2NhdGlvbi5ocmVmLm1hdGNoKC9eaHR0cHMvaSk/Imh0dHBzOi8vIjoiaHR0cDovLyI7Yys9JzxvYmplY3QgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIiBjb2RlYmFzZT0iJytmKydkb3dubG9hZC5tYWNyb21lZGlhLmNvbS9wdWIvc2hvY2t3YXZlL2NhYnMvZmxhc2gvc3dmbGFzaC5jYWIjdmVyc2lvbj0xMCwwLDAsMCIgd2lkdGg9IicrYSsnIiBoZWlnaHQ9IicrYisnIiBpZD0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSI+PHBhcmFtIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIiB2YWx1ZT0iYWx3YXlzIiAvPjxwYXJhbSBuYW1lPSJhbGxvd0Z1bGxTY3JlZW4iIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSInK2gubW92aWVQYXRoKyciIC8+PHBhcmFtIG5hbWU9Imxvb3AiIHZhbHVlPSJmYWxzZSIgLz48cGFyYW0gbmFtZT0ibWVudSIgdmFsdWU9ImZhbHNlIiAvPjxwYXJhbSBuYW1lPSJxdWFsaXR5IiB2YWx1ZT0iYmVzdCIgLz48cGFyYW0gbmFtZT0iYmdjb2xvciIgdmFsdWU9IiNmZmZmZmYiIC8+PHBhcmFtIG5hbWU9ImZsYXNodmFycyIgdmFsdWU9IicrCmQrJyIvPjxwYXJhbSBuYW1lPSJ3bW9kZSIgdmFsdWU9InRyYW5zcGFyZW50Ii8+PC9vYmplY3Q+J31lbHNlIGMrPSc8ZW1iZWQgaWQ9IicrdGhpcy5tb3ZpZUlkKyciIHNyYz0iJytoLm1vdmllUGF0aCsnIiBsb29wPSJmYWxzZSIgbWVudT0iZmFsc2UiIHF1YWxpdHk9ImJlc3QiIGJnY29sb3I9IiNmZmZmZmYiIHdpZHRoPSInK2ErJyIgaGVpZ2h0PSInK2IrJyIgbmFtZT0iJyt0aGlzLm1vdmllSWQrJyIgYWxpZ249Im1pZGRsZSIgYWxsb3dTY3JpcHRBY2Nlc3M9ImFsd2F5cyIgYWxsb3dGdWxsU2NyZWVuPSJmYWxzZSIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIHBsdWdpbnNwYWdlPSJodHRwOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiBmbGFzaHZhcnM9IicrZCsnIiB3bW9kZT0idHJhbnNwYXJlbnQiIC8+JztyZXR1cm4gY30saGlkZTpmdW5jdGlvbigpe3RoaXMuZGl2JiYodGhpcy5kaXYuc3R5bGUubGVmdD0iLTIwMDBweCIpfSwKc2hvdzpmdW5jdGlvbigpe3RoaXMucmVwb3NpdGlvbigpfSxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLmRvbUVsZW1lbnQmJnRoaXMuZGl2JiYoZyh0aGlzLmRpdikucmVtb3ZlKCksdGhpcy5kaXY9dGhpcy5kb21FbGVtZW50PW51bGwsZy5lYWNoKGguY2xpZW50cyxmdW5jdGlvbihiLGMpe2M9PT1hJiZkZWxldGUgaC5jbGllbnRzW2JdfSkpfSxyZXBvc2l0aW9uOmZ1bmN0aW9uKGEpe2EmJigodGhpcy5kb21FbGVtZW50PWguJChhKSl8fHRoaXMuaGlkZSgpKTtpZih0aGlzLmRvbUVsZW1lbnQmJnRoaXMuZGl2KXthPWguZ2V0RE9NT2JqZWN0UG9zaXRpb24odGhpcy5kb21FbGVtZW50KTt2YXIgYj10aGlzLmRpdi5zdHlsZTtiLmxlZnQ9IiIrYS5sZWZ0KyJweCI7Yi50b3A9IiIrYS50b3ArInB4In19LGNsZWFyVGV4dDpmdW5jdGlvbigpe3RoaXMuY2xpcFRleHQ9IiI7dGhpcy5yZWFkeSYmdGhpcy5tb3ZpZS5jbGVhclRleHQoKX0sYXBwZW5kVGV4dDpmdW5jdGlvbihhKXt0aGlzLmNsaXBUZXh0Kz0KYTt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLmFwcGVuZFRleHQoYSl9LHNldFRleHQ6ZnVuY3Rpb24oYSl7dGhpcy5jbGlwVGV4dD1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0VGV4dChhKX0sc2V0RmlsZU5hbWU6ZnVuY3Rpb24oYSl7dGhpcy5maWxlTmFtZT1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0RmlsZU5hbWUoYSl9LHNldFNoZWV0RGF0YTpmdW5jdGlvbihhKXt0aGlzLnJlYWR5JiZ0aGlzLm1vdmllLnNldFNoZWV0RGF0YShKU09OLnN0cmluZ2lmeShhKSl9LHNldEFjdGlvbjpmdW5jdGlvbihhKXt0aGlzLmFjdGlvbj1hO3RoaXMucmVhZHkmJnRoaXMubW92aWUuc2V0QWN0aW9uKGEpfSxhZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKGEsYil7YT1hLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9eb24vLCIiKTt0aGlzLmhhbmRsZXJzW2FdfHwodGhpcy5oYW5kbGVyc1thXT1bXSk7dGhpcy5oYW5kbGVyc1thXS5wdXNoKGIpfSxzZXRIYW5kQ3Vyc29yOmZ1bmN0aW9uKGEpe3RoaXMuaGFuZEN1cnNvckVuYWJsZWQ9CmE7dGhpcy5yZWFkeSYmdGhpcy5tb3ZpZS5zZXRIYW5kQ3Vyc29yKGEpfSxzZXRDU1NFZmZlY3RzOmZ1bmN0aW9uKGEpe3RoaXMuY3NzRWZmZWN0cz0hIWF9LHJlY2VpdmVFdmVudDpmdW5jdGlvbihhLGIpe2E9YS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXm9uLywiIik7c3dpdGNoKGEpe2Nhc2UgImxvYWQiOnRoaXMubW92aWU9bS5nZXRFbGVtZW50QnlJZCh0aGlzLm1vdmllSWQpO2lmKCF0aGlzLm1vdmllKXt2YXIgYz10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLnJlY2VpdmVFdmVudCgibG9hZCIsbnVsbCl9LDEpO3JldHVybn1pZighdGhpcy5yZWFkeSYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvRmlyZWZveC8pJiZuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzLykpe2M9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Yy5yZWNlaXZlRXZlbnQoImxvYWQiLG51bGwpfSwxMDApO3RoaXMucmVhZHk9ITA7cmV0dXJufXRoaXMucmVhZHk9CiEwO3RoaXMubW92aWUuY2xlYXJUZXh0KCk7dGhpcy5tb3ZpZS5hcHBlbmRUZXh0KHRoaXMuY2xpcFRleHQpO3RoaXMubW92aWUuc2V0RmlsZU5hbWUodGhpcy5maWxlTmFtZSk7dGhpcy5tb3ZpZS5zZXRBY3Rpb24odGhpcy5hY3Rpb24pO3RoaXMubW92aWUuc2V0SGFuZEN1cnNvcih0aGlzLmhhbmRDdXJzb3JFbmFibGVkKTticmVhaztjYXNlICJtb3VzZW92ZXIiOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiZ0aGlzLnJlY292ZXJBY3RpdmUmJnRoaXMuZG9tRWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIik7YnJlYWs7Y2FzZSAibW91c2VvdXQiOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiYodGhpcy5yZWNvdmVyQWN0aXZlPSExLHRoaXMuZG9tRWxlbWVudC5oYXNDbGFzcygiYWN0aXZlIikmJih0aGlzLmRvbUVsZW1lbnQucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpLHRoaXMucmVjb3ZlckFjdGl2ZT0hMCkpO2JyZWFrO2Nhc2UgIm1vdXNlZG93biI6dGhpcy5kb21FbGVtZW50JiYKdGhpcy5jc3NFZmZlY3RzJiZ0aGlzLmRvbUVsZW1lbnQuYWRkQ2xhc3MoImFjdGl2ZSIpO2JyZWFrO2Nhc2UgIm1vdXNldXAiOnRoaXMuZG9tRWxlbWVudCYmdGhpcy5jc3NFZmZlY3RzJiYodGhpcy5kb21FbGVtZW50LnJlbW92ZUNsYXNzKCJhY3RpdmUiKSx0aGlzLnJlY292ZXJBY3RpdmU9ITEpfWlmKHRoaXMuaGFuZGxlcnNbYV0pZm9yKHZhciBkPTAsZj10aGlzLmhhbmRsZXJzW2FdLmxlbmd0aDtkPGY7ZCsrKXt2YXIgZT10aGlzLmhhbmRsZXJzW2FdW2RdO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKWUodGhpcyxiKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgZSYmMj09ZS5sZW5ndGgpZVswXVtlWzFdXSh0aGlzLGIpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBlKW5bZV0odGhpcyxiKX19fTtoLmhhc0ZsYXNoPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgQWN0aXZlWE9iamVjdCgiU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2giKSwhMH1jYXRjaChhKXtpZihuYXZpZ2F0b3IubWltZVR5cGVzJiYKbmF2aWdhdG9yLm1pbWVUeXBlc1siYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giXSE9PXUmJm5hdmlnYXRvci5taW1lVHlwZXNbImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIl0uZW5hYmxlZFBsdWdpbilyZXR1cm4hMH1yZXR1cm4hMX07bi5aZXJvQ2xpcGJvYXJkX1RhYmxlVG9vbHM9aDt2YXIgQz1mdW5jdGlvbihhLGIpe2IuYXR0cigiaWQiKTtiLnBhcmVudHMoImh0bWwiKS5sZW5ndGg/YS5nbHVlKGJbMF0sIiIpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXtDKGEsYil9LDUwMCl9LEg9ZnVuY3Rpb24oYSl7dmFyIGI9IlNoZWV0MSI7YS5zaGVldE5hbWUmJihiPWEuc2hlZXROYW1lLnJlcGxhY2UoL1tcW1xdXCpcL1xcXD86XS9nLCIiKSk7cmV0dXJuIGJ9LHg9ZnVuY3Rpb24oYSxiKXtiPWIubWF0Y2goL1tcc1xTXXsxLDgxOTJ9L2cpfHxbXTthLmNsZWFyVGV4dCgpO2Zvcih2YXIgYz0wLGQ9Yi5sZW5ndGg7YzxkO2MrKylhLmFwcGVuZFRleHQoYltjXSl9LEQ9ZnVuY3Rpb24oYSl7cmV0dXJuIGEubmV3bGluZT8KYS5uZXdsaW5lOm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dpbmRvd3MvKT8iXHJcbiI6IlxuIn0sRT1mdW5jdGlvbihhLGIpe3ZhciBjPUQoYik7YT1hLmJ1dHRvbnMuZXhwb3J0RGF0YShiLmV4cG9ydE9wdGlvbnMpO3ZhciBkPWIuZmllbGRCb3VuZGFyeSxmPWIuZmllbGRTZXBhcmF0b3IsZT1uZXcgUmVnRXhwKGQsImciKSxnPWIuZXNjYXBlQ2hhciE9PXU/Yi5lc2NhcGVDaGFyOiJcXCIsaD1mdW5jdGlvbihhKXtmb3IodmFyIGI9IiIsYz0wLGg9YS5sZW5ndGg7YzxoO2MrKykwPGMmJihiKz1mKSxiKz1kP2QrKCIiK2FbY10pLnJlcGxhY2UoZSxnK2QpK2Q6YVtjXTtyZXR1cm4gYn0sbj1iLmhlYWRlcj9oKGEuaGVhZGVyKStjOiIiO2I9Yi5mb290ZXImJmEuZm9vdGVyP2MraChhLmZvb3Rlcik6IiI7Zm9yKHZhciBtPVtdLHA9MCxyPWEuYm9keS5sZW5ndGg7cDxyO3ArKyltLnB1c2goaChhLmJvZHlbcF0pKTtyZXR1cm57c3RyOm4rbS5qb2luKGMpK2Iscm93czptLmxlbmd0aH19LAp5PXthdmFpbGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gaC5oYXNGbGFzaCgpfSxpbml0OmZ1bmN0aW9uKGEsYixjKXtoLm1vdmllUGF0aD1sLkJ1dHRvbnMuc3dmUGF0aDt2YXIgZD1uZXcgaC5DbGllbnQ7ZC5zZXRIYW5kQ3Vyc29yKCEwKTtkLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlRG93biIsZnVuY3Rpb24oZCl7Yy5fZnJvbUZsYXNoPSEwO2EuYnV0dG9uKGJbMF0pLnRyaWdnZXIoKTtjLl9mcm9tRmxhc2g9ITF9KTtDKGQsYik7Yy5fZmxhc2g9ZH0sZGVzdHJveTpmdW5jdGlvbihhLGIsYyl7Yy5fZmxhc2guZGVzdHJveSgpfSxmaWVsZFNlcGFyYXRvcjoiLCIsZmllbGRCb3VuZGFyeTonIicsZXhwb3J0T3B0aW9uczp7fSx0aXRsZToiKiIsbWVzc2FnZVRvcDoiKiIsbWVzc2FnZUJvdHRvbToiKiIsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLmNzdiIsaGVhZGVyOiEwLGZvb3RlcjohMX0sej0iIjt6PSJ1bmRlZmluZWQiPT09dHlwZW9mIG4uWE1MU2VyaWFsaXplcj9uZXcgZnVuY3Rpb24oKXt0aGlzLnNlcmlhbGl6ZVRvU3RyaW5nPQpmdW5jdGlvbihhKXtyZXR1cm4gYS54bWx9fTpuZXcgWE1MU2VyaWFsaXplcjt2YXIgdix0PXsiX3JlbHMvLnJlbHMiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9vZmZpY2VEb2N1bWVudCIgVGFyZ2V0PSJ4bC93b3JrYm9vay54bWwiLz48L1JlbGF0aW9uc2hpcHM+JywieGwvX3JlbHMvd29ya2Jvb2sueG1sLnJlbHMiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFJlbGF0aW9uc2hpcHMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcyI+PFJlbGF0aW9uc2hpcCBJZD0icklkMSIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy93b3Jrc2hlZXQiIFRhcmdldD0id29ya3NoZWV0cy9zaGVldDEueG1sIi8+PFJlbGF0aW9uc2hpcCBJZD0icklkMiIgVHlwZT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zdHlsZXMiIFRhcmdldD0ic3R5bGVzLnhtbCIvPjwvUmVsYXRpb25zaGlwcz4nLAoiW0NvbnRlbnRfVHlwZXNdLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48VHlwZXMgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvY29udGVudC10eXBlcyI+PERlZmF1bHQgRXh0ZW5zaW9uPSJ4bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi94bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJyZWxzIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWwiIC8+PERlZmF1bHQgRXh0ZW5zaW9uPSJqcGVnIiBDb250ZW50VHlwZT0iaW1hZ2UvanBlZyIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3JrYm9vay54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC53b3Jrc2hlZXQreG1sIiAvPjxPdmVycmlkZSBQYXJ0TmFtZT0iL3hsL3N0eWxlcy54bWwiIENvbnRlbnRUeXBlPSJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIiAvPjwvVHlwZXM+JywKInhsL3dvcmtib29rLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48d29ya2Jvb2sgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyI+PGZpbGVWZXJzaW9uIGFwcE5hbWU9InhsIiBsYXN0RWRpdGVkPSI1IiBsb3dlc3RFZGl0ZWQ9IjUiIHJ1cEJ1aWxkPSIyNDgxNiIvPjx3b3JrYm9va1ByIHNob3dJbmtBbm5vdGF0aW9uPSIwIiBhdXRvQ29tcHJlc3NQaWN0dXJlcz0iMCIvPjxib29rVmlld3M+PHdvcmtib29rVmlldyB4V2luZG93PSIwIiB5V2luZG93PSIwIiB3aW5kb3dXaWR0aD0iMjU2MDAiIHdpbmRvd0hlaWdodD0iMTkwMjAiIHRhYlJhdGlvPSI1MDAiLz48L2Jvb2tWaWV3cz48c2hlZXRzPjxzaGVldCBuYW1lPSIiIHNoZWV0SWQ9IjEiIHI6aWQ9InJJZDEiLz48L3NoZWV0cz48L3dvcmtib29rPicsCiJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHdvcmtzaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PHNoZWV0RGF0YS8+PG1lcmdlQ2VsbHMgY291bnQ9IjAiLz48L3dvcmtzaGVldD4nLCJ4bC9zdHlsZXMueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3R5bGVTaGVldCB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiB4bWxuczptYz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiIG1jOklnbm9yYWJsZT0ieDE0YWMiIHhtbG5zOngxNGFjPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyI+PG51bUZtdHMgY291bnQ9IjYiPjxudW1GbXQgbnVtRm10SWQ9IjE2NCIgZm9ybWF0Q29kZT0iIywjIzAuMDBfLSBbJCQtNDVDXSIvPjxudW1GbXQgbnVtRm10SWQ9IjE2NSIgZm9ybWF0Q29kZT0iJnF1b3Q7wqMmcXVvdDsjLCMjMC4wMCIvPjxudW1GbXQgbnVtRm10SWQ9IjE2NiIgZm9ybWF0Q29kZT0iWyTigqwtMl0gIywjIzAuMDAiLz48bnVtRm10IG51bUZtdElkPSIxNjciIGZvcm1hdENvZGU9IjAuMCUiLz48bnVtRm10IG51bUZtdElkPSIxNjgiIGZvcm1hdENvZGU9IiMsIyMwOygjLCMjMCkiLz48bnVtRm10IG51bUZtdElkPSIxNjkiIGZvcm1hdENvZGU9IiMsIyMwLjAwOygjLCMjMC4wMCkiLz48L251bUZtdHM+PGZvbnRzIGNvdW50PSI1IiB4MTRhYzprbm93bkZvbnRzPSIxIj48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48Y29sb3IgcmdiPSJGRkZGRkZGRiIgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjxiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48aSAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PHUgLz48L2ZvbnQ+PC9mb250cz48ZmlsbHMgY291bnQ9IjYiPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ibm9uZSIgLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJub25lIiAvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9IkZGRDlEOUQ5IiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iRkZEOTk3OTUiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJmZmM2ZWZjZSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9ImZmYzZjZmVmIiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjwvZmlsbHM+PGJvcmRlcnMgY291bnQ9IjIiPjxib3JkZXI+PGxlZnQgLz48cmlnaHQgLz48dG9wIC8+PGJvdHRvbSAvPjxkaWFnb25hbCAvPjwvYm9yZGVyPjxib3JkZXIgZGlhZ29uYWxVcD0iZmFsc2UiIGRpYWdvbmFsRG93bj0iZmFsc2UiPjxsZWZ0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L2xlZnQ+PHJpZ2h0IHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L3JpZ2h0Pjx0b3Agc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvdG9wPjxib3R0b20gc3R5bGU9InRoaW4iPjxjb2xvciBhdXRvPSIxIiAvPjwvYm90dG9tPjxkaWFnb25hbCAvPjwvYm9yZGVyPjwvYm9yZGVycz48Y2VsbFN0eWxlWGZzIGNvdW50PSIxIj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgLz48L2NlbGxTdHlsZVhmcz48Y2VsbFhmcyBjb3VudD0iNjEiPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0ibGVmdCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0iY2VudGVyIi8+PC94Zj48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseUFsaWdubWVudD0iMSI+PGFsaWdubWVudCBob3Jpem9udGFsPSJyaWdodCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0iZmlsbCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgdGV4dFJvdGF0aW9uPSI5MCIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgd3JhcFRleHQ9IjEiLz48L3hmPjx4ZiBudW1GbXRJZD0iOSIgICBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjUiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY2IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NyIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjgiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY5IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjMiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iNCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PC9jZWxsWGZzPjxjZWxsU3R5bGVzIGNvdW50PSIxIj48Y2VsbFN0eWxlIG5hbWU9Ik5vcm1hbCIgeGZJZD0iMCIgYnVpbHRpbklkPSIwIiAvPjwvY2VsbFN0eWxlcz48ZHhmcyBjb3VudD0iMCIgLz48dGFibGVTdHlsZXMgY291bnQ9IjAiIGRlZmF1bHRUYWJsZVN0eWxlPSJUYWJsZVN0eWxlTWVkaXVtOSIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVNZWRpdW00IiAvPjwvc3R5bGVTaGVldD4nfSwKRj1be21hdGNoOi9eXC0/XGQrXC5cZCUkLyxzdHlsZTo2MCxmbXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEvMTAwfX0se21hdGNoOi9eXC0/XGQrXC4/XGQqJSQvLHN0eWxlOjU2LGZtdDpmdW5jdGlvbihhKXtyZXR1cm4gYS8xMDB9fSx7bWF0Y2g6L15cLT9cJFtcZCxdKy4/XGQqJC8sc3R5bGU6NTd9LHttYXRjaDovXlwtP8KjW1xkLF0rLj9cZCokLyxzdHlsZTo1OH0se21hdGNoOi9eXC0/4oKsW1xkLF0rLj9cZCokLyxzdHlsZTo1OX0se21hdGNoOi9eXChbXGQsXStcKSQvLHN0eWxlOjYxLGZtdDpmdW5jdGlvbihhKXtyZXR1cm4tMSphLnJlcGxhY2UoL1tcKFwpXS9nLCIiKX19LHttYXRjaDovXlwoW1xkLF0rXC5cZHsyfVwpJC8sc3R5bGU6NjIsZm10OmZ1bmN0aW9uKGEpe3JldHVybi0xKmEucmVwbGFjZSgvW1woXCldL2csIiIpfX0se21hdGNoOi9eW1xkLF0rJC8sc3R5bGU6NjN9LHttYXRjaDovXltcZCxdK1wuXGR7Mn0kLyxzdHlsZTo2NH1dO2wuQnV0dG9ucy5zd2ZQYXRoPSIvL2Nkbi5kYXRhdGFibGVzLm5ldC9idXR0b25zLyIrCmwuQnV0dG9ucy52ZXJzaW9uKyIvc3dmL2ZsYXNoRXhwb3J0LnN3ZiI7bC5BcGkucmVnaXN0ZXIoImJ1dHRvbnMucmVzaXplKCkiLGZ1bmN0aW9uKCl7Zy5lYWNoKGguY2xpZW50cyxmdW5jdGlvbihhLGIpe2IuZG9tRWxlbWVudCE9PXUmJmIuZG9tRWxlbWVudC5wYXJlbnROb2RlJiZiLnBvc2l0aW9uRWxlbWVudCgpfSl9KTtsLmV4dC5idXR0b25zLmNvcHlGbGFzaD1nLmV4dGVuZCh7fSx5LHtjbGFzc05hbWU6ImJ1dHRvbnMtY29weSBidXR0b25zLWZsYXNoIix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY29weSIsIkNvcHkiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQpe2lmKGQuX2Zyb21GbGFzaCl7dGhpcy5wcm9jZXNzaW5nKCEwKTthPWQuX2ZsYXNoO3ZhciBmPUUoYixkKTtjPWIuYnV0dG9ucy5leHBvcnRJbmZvKGQpO3ZhciBlPUQoZCk7Zj1mLnN0cjtjLnRpdGxlJiYoZj1jLnRpdGxlK2UrZStmKTtjLm1lc3NhZ2VUb3AmJihmPWMubWVzc2FnZVRvcCsKZStlK2YpO2MubWVzc2FnZUJvdHRvbSYmKGY9ZitlK2UrYy5tZXNzYWdlQm90dG9tKTtkLmN1c3RvbWl6ZSYmKGY9ZC5jdXN0b21pemUoZixkLGIpKTthLnNldEFjdGlvbigiY29weSIpO3goYSxmKTt0aGlzLnByb2Nlc3NpbmcoITEpO2IuYnV0dG9ucy5pbmZvKGIuaTE4bigiYnV0dG9ucy5jb3B5VGl0bGUiLCJDb3B5IHRvIGNsaXBib2FyZCIpLGIuaTE4bigiYnV0dG9ucy5jb3B5U3VjY2VzcyIse186IkNvcGllZCAlZCByb3dzIHRvIGNsaXBib2FyZCIsMToiQ29waWVkIDEgcm93IHRvIGNsaXBib2FyZCJ9LGRhdGEucm93cyksM0UzKX19LGZpZWxkU2VwYXJhdG9yOiJcdCIsZmllbGRCb3VuZGFyeToiIn0pO2wuZXh0LmJ1dHRvbnMuY3N2Rmxhc2g9Zy5leHRlbmQoe30seSx7Y2xhc3NOYW1lOiJidXR0b25zLWNzdiBidXR0b25zLWZsYXNoIix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY3N2IiwiQ1NWIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsYyxkKXthPQpkLl9mbGFzaDt2YXIgZj1FKGIsZCk7Yz1iLmJ1dHRvbnMuZXhwb3J0SW5mbyhkKTtiPWQuY3VzdG9taXplP2QuY3VzdG9taXplKGYuc3RyLGQsYik6Zi5zdHI7YS5zZXRBY3Rpb24oImNzdiIpO2Euc2V0RmlsZU5hbWUoYy5maWxlbmFtZSk7eChhLGIpfSxlc2NhcGVDaGFyOiciJ30pO2wuZXh0LmJ1dHRvbnMuZXhjZWxGbGFzaD1nLmV4dGVuZCh7fSx5LHtjbGFzc05hbWU6ImJ1dHRvbnMtZXhjZWwgYnV0dG9ucy1mbGFzaCIsdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gYS5pMThuKCJidXR0b25zLmV4Y2VsIiwiRXhjZWwiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQpe3RoaXMucHJvY2Vzc2luZyghMCk7YT1kLl9mbGFzaDt2YXIgZj0wLGU9Zy5wYXJzZVhNTCh0WyJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiXSksaD1lLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzaGVldERhdGEiKVswXTtjPXtfcmVsczp7Ii5yZWxzIjpnLnBhcnNlWE1MKHRbIl9yZWxzLy5yZWxzIl0pfSx4bDp7X3JlbHM6eyJ3b3JrYm9vay54bWwucmVscyI6Zy5wYXJzZVhNTCh0WyJ4bC9fcmVscy93b3JrYm9vay54bWwucmVscyJdKX0sCiJ3b3JrYm9vay54bWwiOmcucGFyc2VYTUwodFsieGwvd29ya2Jvb2sueG1sIl0pLCJzdHlsZXMueG1sIjpnLnBhcnNlWE1MKHRbInhsL3N0eWxlcy54bWwiXSksd29ya3NoZWV0czp7InNoZWV0MS54bWwiOmV9fSwiW0NvbnRlbnRfVHlwZXNdLnhtbCI6Zy5wYXJzZVhNTCh0WyJbQ29udGVudF9UeXBlc10ueG1sIl0pfTt2YXIgaz1iLmJ1dHRvbnMuZXhwb3J0RGF0YShkLmV4cG9ydE9wdGlvbnMpLG0sbixwPWZ1bmN0aW9uKGEpe209ZisxO249cihlLCJyb3ciLHthdHRyOntyOm19fSk7Zm9yKHZhciBiPTAsYz1hLmxlbmd0aDtiPGM7YisrKXt2YXIgbD1BKGIpKyIiK20saz1udWxsO2lmKG51bGw9PT1hW2JdfHxhW2JdPT09dXx8IiI9PT1hW2JdKWlmKCEwPT09ZC5jcmVhdGVFbXB0eUNlbGxzKWFbYl09IiI7ZWxzZSBjb250aW51ZTthW2JdPWcudHJpbShhW2JdKTtmb3IodmFyIHA9MCx0PUYubGVuZ3RoO3A8dDtwKyspe3ZhciBxPUZbcF07aWYoYVtiXS5tYXRjaCYmIWFbYl0ubWF0Y2goL14wXGQrLykmJgphW2JdLm1hdGNoKHEubWF0Y2gpKXtrPWFbYl0ucmVwbGFjZSgvW15cZFwuXC1dL2csIiIpO3EuZm10JiYoaz1xLmZtdChrKSk7az1yKGUsImMiLHthdHRyOntyOmwsczpxLnN0eWxlfSxjaGlsZHJlbjpbcihlLCJ2Iix7dGV4dDprfSldfSk7YnJlYWt9fWt8fCgibnVtYmVyIj09PXR5cGVvZiBhW2JdfHxhW2JdLm1hdGNoJiZhW2JdLm1hdGNoKC9eLT9cZCsoXC5cZCspPyQvKSYmIWFbYl0ubWF0Y2goL14wXGQrLyk/az1yKGUsImMiLHthdHRyOnt0OiJuIixyOmx9LGNoaWxkcmVuOltyKGUsInYiLHt0ZXh0OmFbYl19KV19KToocT1hW2JdLnJlcGxhY2U/YVtiXS5yZXBsYWNlKC9bXHgwMC1ceDA5XHgwQlx4MENceDBFLVx4MUZceDdGLVx4OUZdL2csIiIpOmFbYl0saz1yKGUsImMiLHthdHRyOnt0OiJpbmxpbmVTdHIiLHI6bH0sY2hpbGRyZW46e3JvdzpyKGUsImlzIix7Y2hpbGRyZW46e3JvdzpyKGUsInQiLHt0ZXh0OnF9KX19KX19KSkpO24uYXBwZW5kQ2hpbGQoayl9aC5hcHBlbmRDaGlsZChuKTsKZisrfTtnKCJzaGVldHMgc2hlZXQiLGMueGxbIndvcmtib29rLnhtbCJdKS5hdHRyKCJuYW1lIixIKGQpKTtkLmN1c3RvbWl6ZURhdGEmJmQuY3VzdG9taXplRGF0YShrKTt2YXIgbD1mdW5jdGlvbihhLGIpe3ZhciBjPWcoIm1lcmdlQ2VsbHMiLGUpO2NbMF0uYXBwZW5kQ2hpbGQocihlLCJtZXJnZUNlbGwiLHthdHRyOntyZWY6IkEiK2ErIjoiK0EoYikrYX19KSk7Yy5hdHRyKCJjb3VudCIsYy5hdHRyKCJjb3VudCIpKzEpO2coInJvdzplcSgiKyhhLTEpKyIpIGMiLGUpLmF0dHIoInMiLCI1MSIpfSxxPWIuYnV0dG9ucy5leHBvcnRJbmZvKGQpO3EudGl0bGUmJihwKFtxLnRpdGxlXSxmKSxsKGYsay5oZWFkZXIubGVuZ3RoLTEpKTtxLm1lc3NhZ2VUb3AmJihwKFtxLm1lc3NhZ2VUb3BdLGYpLGwoZixrLmhlYWRlci5sZW5ndGgtMSkpO2QuaGVhZGVyJiYocChrLmhlYWRlcixmKSxnKCJyb3c6bGFzdCBjIixlKS5hdHRyKCJzIiwiMiIpKTtmb3IodmFyIHc9MCx2PWsuYm9keS5sZW5ndGg7dzwKdjt3KyspcChrLmJvZHlbd10sZik7ZC5mb290ZXImJmsuZm9vdGVyJiYocChrLmZvb3RlcixmKSxnKCJyb3c6bGFzdCBjIixlKS5hdHRyKCJzIiwiMiIpKTtxLm1lc3NhZ2VCb3R0b20mJihwKFtxLm1lc3NhZ2VCb3R0b21dLGYpLGwoZixrLmhlYWRlci5sZW5ndGgtMSkpO3A9cihlLCJjb2xzIik7Zygid29ya3NoZWV0IixlKS5wcmVwZW5kKHApO2w9MDtmb3Iodz1rLmhlYWRlci5sZW5ndGg7bDx3O2wrKylwLmFwcGVuZENoaWxkKHIoZSwiY29sIix7YXR0cjp7bWluOmwrMSxtYXg6bCsxLHdpZHRoOkcoayxsKSxjdXN0b21XaWR0aDoxfX0pKTtkLmN1c3RvbWl6ZSYmZC5jdXN0b21pemUoYyxkLGIpO0IoYyk7YS5zZXRBY3Rpb24oImV4Y2VsIik7YS5zZXRGaWxlTmFtZShxLmZpbGVuYW1lKTthLnNldFNoZWV0RGF0YShjKTt4KGEsIiIpO3RoaXMucHJvY2Vzc2luZyghMSl9LGV4dGVuc2lvbjoiLnhsc3giLGNyZWF0ZUVtcHR5Q2VsbHM6ITF9KTtsLmV4dC5idXR0b25zLnBkZkZsYXNoPQpnLmV4dGVuZCh7fSx5LHtjbGFzc05hbWU6ImJ1dHRvbnMtcGRmIGJ1dHRvbnMtZmxhc2giLHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5wZGYiLCJQREYiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixjLGQpe3RoaXMucHJvY2Vzc2luZyghMCk7YT1kLl9mbGFzaDtjPWIuYnV0dG9ucy5leHBvcnREYXRhKGQuZXhwb3J0T3B0aW9ucyk7dmFyIGY9Yi5idXR0b25zLmV4cG9ydEluZm8oZCksZT1iLnRhYmxlKCkubm9kZSgpLm9mZnNldFdpZHRoLGc9Yi5jb2x1bW5zKGQuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYi5jb2x1bW4oYSkuaGVhZGVyKCkub2Zmc2V0V2lkdGgvZX0pO2Euc2V0QWN0aW9uKCJwZGYiKTthLnNldEZpbGVOYW1lKGYuZmlsZW5hbWUpO3goYSxKU09OLnN0cmluZ2lmeSh7dGl0bGU6Zi50aXRsZXx8IiIsbWVzc2FnZVRvcDpmLm1lc3NhZ2VUb3B8fCIiLG1lc3NhZ2VCb3R0b206Zi5tZXNzYWdlQm90dG9tfHwiIiwKY29sV2lkdGg6Zy50b0FycmF5KCksb3JpZW50YXRpb246ZC5vcmllbnRhdGlvbixzaXplOmQucGFnZVNpemUsaGVhZGVyOmQuaGVhZGVyP2MuaGVhZGVyOm51bGwsZm9vdGVyOmQuZm9vdGVyP2MuZm9vdGVyOm51bGwsYm9keTpjLmJvZHl9KSk7dGhpcy5wcm9jZXNzaW5nKCExKX0sZXh0ZW5zaW9uOiIucGRmIixvcmllbnRhdGlvbjoicG9ydHJhaXQiLHBhZ2VTaXplOiJBNCIsbmV3bGluZToiXG4ifSk7cmV0dXJuIGwuQnV0dG9uc30pOwo="></script>
|
||
<script src="data:application/javascript;base64,LyohCiBIVE1MNSBleHBvcnQgYnV0dG9ucyBmb3IgQnV0dG9ucyBhbmQgRGF0YVRhYmxlcy4KIDIwMTYgU3ByeU1lZGlhIEx0ZCAtIGRhdGF0YWJsZXMubmV0L2xpY2Vuc2UKCiBGaWxlU2F2ZXIuanMgKDEuMy4zKSAtIE1JVCBsaWNlbnNlCiBDb3B5cmlnaHQgwqkgMjAxNiBFbGkgR3JleSAtIGh0dHA6Ly9lbGlncmV5LmNvbQoqLwooZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiLCJkYXRhdGFibGVzLm5ldC1idXR0b25zIl0sZnVuY3Rpb24oZyl7cmV0dXJuIGYoZyx3aW5kb3csZG9jdW1lbnQpfSk6Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihnLHAseix0KXtnfHwoZz13aW5kb3cpO3AmJnAuZm4uZGF0YVRhYmxlfHwocD1yZXF1aXJlKCJkYXRhdGFibGVzLm5ldCIpKGcscCkuJCk7cC5mbi5kYXRhVGFibGUuQnV0dG9uc3x8cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQtYnV0dG9ucyIpKGcscCk7cmV0dXJuIGYocCxnLGcuZG9jdW1lbnQseix0KX06ZihqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGYsZyxwLHosdCx3KXtmdW5jdGlvbiBBKGEpe2Zvcih2YXIgYj0iIjswPD1hOyliPVN0cmluZy5mcm9tQ2hhckNvZGUoYSUyNis2NSkrYixhPU1hdGguZmxvb3IoYS8KMjYpLTE7cmV0dXJuIGJ9ZnVuY3Rpb24gRShhLGIpe3k9PT13JiYoeT0tMT09PUMuc2VyaWFsaXplVG9TdHJpbmcoZi5wYXJzZVhNTChGWyJ4bC93b3Jrc2hlZXRzL3NoZWV0MS54bWwiXSkpLmluZGV4T2YoInhtbG5zOnIiKSk7Zi5lYWNoKGIsZnVuY3Rpb24oYixjKXtpZihmLmlzUGxhaW5PYmplY3QoYykpYj1hLmZvbGRlcihiKSxFKGIsYyk7ZWxzZXtpZih5KXt2YXIgZD1jLmNoaWxkTm9kZXNbMF0sZSxoPVtdO2ZvcihlPWQuYXR0cmlidXRlcy5sZW5ndGgtMTswPD1lO2UtLSl7dmFyIG09ZC5hdHRyaWJ1dGVzW2VdLm5vZGVOYW1lO3ZhciBrPWQuYXR0cmlidXRlc1tlXS5ub2RlVmFsdWU7LTEhPT1tLmluZGV4T2YoIjoiKSYmKGgucHVzaCh7bmFtZTptLHZhbHVlOmt9KSxkLnJlbW92ZUF0dHJpYnV0ZShtKSl9ZT0wO2ZvcihtPWgubGVuZ3RoO2U8bTtlKyspaz1jLmNyZWF0ZUF0dHJpYnV0ZShoW2VdLm5hbWUucmVwbGFjZSgiOiIsIl9kdF9iX25hbWVzcGFjZV90b2tlbl8iKSksCmsudmFsdWU9aFtlXS52YWx1ZSxkLnNldEF0dHJpYnV0ZU5vZGUoayl9Yz1DLnNlcmlhbGl6ZVRvU3RyaW5nKGMpO3kmJigtMT09PWMuaW5kZXhPZigiPD94bWwiKSYmKGM9Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz4nK2MpLGM9Yy5yZXBsYWNlKC9fZHRfYl9uYW1lc3BhY2VfdG9rZW5fL2csIjoiKSxjPWMucmVwbGFjZSgveG1sbnM6TlNbXGRdKz0iIiBOU1tcZF0rOi9nLCIiKSk7Yz1jLnJlcGxhY2UoLzwoW148Pl0qPykgeG1sbnM9IiIoW148Pl0qPyk+L2csIjwkMSAkMj4iKTthLmZpbGUoYixjKX19KX1mdW5jdGlvbiByKGEsYixkKXt2YXIgYz1hLmNyZWF0ZUVsZW1lbnQoYik7ZCYmKGQuYXR0ciYmZihjKS5hdHRyKGQuYXR0ciksZC5jaGlsZHJlbiYmZi5lYWNoKGQuY2hpbGRyZW4sZnVuY3Rpb24oYSxiKXtjLmFwcGVuZENoaWxkKGIpfSksbnVsbCE9PWQudGV4dCYmZC50ZXh0IT09dyYmYy5hcHBlbmRDaGlsZChhLmNyZWF0ZVRleHROb2RlKGQudGV4dCkpKTsKcmV0dXJuIGN9ZnVuY3Rpb24gTChhLGIpe3ZhciBkPWEuaGVhZGVyW2JdLmxlbmd0aDthLmZvb3RlciYmYS5mb290ZXJbYl0ubGVuZ3RoPmQmJihkPWEuZm9vdGVyW2JdLmxlbmd0aCk7Zm9yKHZhciBjPTAsZj1hLmJvZHkubGVuZ3RoO2M8ZjtjKyspe3ZhciBlPWEuYm9keVtjXVtiXTtlPW51bGwhPT1lJiZlIT09dz9lLnRvU3RyaW5nKCk6IiI7LTEhPT1lLmluZGV4T2YoIlxuIik/KGU9ZS5zcGxpdCgiXG4iKSxlLnNvcnQoZnVuY3Rpb24oYSxjKXtyZXR1cm4gYy5sZW5ndGgtYS5sZW5ndGh9KSxlPWVbMF0ubGVuZ3RoKTplPWUubGVuZ3RoO2U+ZCYmKGQ9ZSk7aWYoNDA8ZClyZXR1cm4gNTR9ZCo9MS4zNTtyZXR1cm4gNjxkP2Q6Nn12YXIgdj1mLmZuLmRhdGFUYWJsZTt2LkJ1dHRvbnMucGRmTWFrZT1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4gdHx8Zy5wZGZNYWtlO3Q9bV9ha2V9O3YuQnV0dG9ucy5qc3ppcD1mdW5jdGlvbihhKXtpZighYSlyZXR1cm4genx8Zy5KU1ppcDt6PWF9Owp2YXIgQj1mdW5jdGlvbihhKXtpZighKCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fCJ1bmRlZmluZWQiIT09dHlwZW9mIG5hdmlnYXRvciYmL01TSUUgWzEtOV1cLi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkpe3ZhciBiPWEuZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiYSIpLGQ9ImRvd25sb2FkImluIGIsYz0vY29uc3RydWN0b3IvaS50ZXN0KGEuSFRNTEVsZW1lbnQpfHxhLnNhZmFyaSxmPS9DcmlPU1wvW1xkXSsvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksZT1mdW5jdGlvbihjKXsoYS5zZXRJbW1lZGlhdGV8fGEuc2V0VGltZW91dCkoZnVuY3Rpb24oKXt0aHJvdyBjO30sMCl9LGg9ZnVuY3Rpb24oYyl7c2V0VGltZW91dChmdW5jdGlvbigpeyJzdHJpbmciPT09dHlwZW9mIGM/KGEuVVJMfHxhLndlYmtpdFVSTHx8YSkucmV2b2tlT2JqZWN0VVJMKGMpOmMucmVtb3ZlKCl9LDRFNCl9LG09ZnVuY3Rpb24oYSl7cmV0dXJuL15ccyooPzp0ZXh0XC9cUyp8YXBwbGljYXRpb25cL3htbHxcUypcL1xTKlwreG1sKVxzKjsuKmNoYXJzZXRccyo9XHMqdXRmLTgvaS50ZXN0KGEudHlwZSk/Cm5ldyBCbG9iKFtTdHJpbmcuZnJvbUNoYXJDb2RlKDY1Mjc5KSxhXSx7dHlwZTphLnR5cGV9KTphfSxrPWZ1bmN0aW9uKGsscSxuKXtufHwoaz1tKGspKTt2YXIgbD10aGlzLGc9ImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSI9PT1rLnR5cGUsRD1mdW5jdGlvbigpe3ZhciBhPVsid3JpdGVzdGFydCIsInByb2dyZXNzIiwid3JpdGUiLCJ3cml0ZWVuZCJdO2E9W10uY29uY2F0KGEpO2Zvcih2YXIgYz1hLmxlbmd0aDtjLS07KXt2YXIgYj1sWyJvbiIrYVtjXV07aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBiKXRyeXtiLmNhbGwobCxsKX1jYXRjaChNKXtlKE0pfX19O2wucmVhZHlTdGF0ZT1sLklOSVQ7aWYoZCl7dmFyIHU9KGEuVVJMfHxhLndlYmtpdFVSTHx8YSkuY3JlYXRlT2JqZWN0VVJMKGspO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtiLmhyZWY9dTtiLmRvd25sb2FkPXE7dmFyIGE9bmV3IE1vdXNlRXZlbnQoImNsaWNrIik7Yi5kaXNwYXRjaEV2ZW50KGEpO0QoKTtoKHUpO2wucmVhZHlTdGF0ZT0KbC5ET05FfSl9ZWxzZShmdW5jdGlvbigpe2lmKChmfHxnJiZjKSYmYS5GaWxlUmVhZGVyKXt2YXIgYj1uZXcgRmlsZVJlYWRlcjtiLm9ubG9hZGVuZD1mdW5jdGlvbigpe3ZhciBjPWY/Yi5yZXN1bHQ6Yi5yZXN1bHQucmVwbGFjZSgvXmRhdGE6W147XSo7LywiZGF0YTphdHRhY2htZW50L2ZpbGU7Iik7YS5vcGVuKGMsIl9ibGFuayIpfHwoYS5sb2NhdGlvbi5ocmVmPWMpO2wucmVhZHlTdGF0ZT1sLkRPTkU7RCgpfTtiLnJlYWRBc0RhdGFVUkwoayk7bC5yZWFkeVN0YXRlPWwuSU5JVH1lbHNlIHV8fCh1PShhLlVSTHx8YS53ZWJraXRVUkx8fGEpLmNyZWF0ZU9iamVjdFVSTChrKSksZz9hLmxvY2F0aW9uLmhyZWY9dTphLm9wZW4odSwiX2JsYW5rIil8fChhLmxvY2F0aW9uLmhyZWY9dSksbC5yZWFkeVN0YXRlPWwuRE9ORSxEKCksaCh1KX0pKCl9LG49ay5wcm90b3R5cGU7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgbmF2aWdhdG9yJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYilyZXR1cm4gZnVuY3Rpb24oYSwKYyxiKXtjPWN8fGEubmFtZXx8ImRvd25sb2FkIjtifHwoYT1tKGEpKTtyZXR1cm4gbmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoYSxjKX07bi5hYm9ydD1mdW5jdGlvbigpe307bi5yZWFkeVN0YXRlPW4uSU5JVD0wO24uV1JJVElORz0xO24uRE9ORT0yO24uZXJyb3I9bi5vbndyaXRlc3RhcnQ9bi5vbnByb2dyZXNzPW4ub253cml0ZT1uLm9uYWJvcnQ9bi5vbmVycm9yPW4ub253cml0ZWVuZD1udWxsO3JldHVybiBmdW5jdGlvbihhLGMsYil7cmV0dXJuIG5ldyBrKGEsY3x8YS5uYW1lfHwiZG93bmxvYWQiLGIpfX19KCJ1bmRlZmluZWQiIT09dHlwZW9mIHNlbGYmJnNlbGZ8fCJ1bmRlZmluZWQiIT09dHlwZW9mIGcmJmd8fHRoaXMuY29udGVudCk7di5maWxlU2F2ZT1CO3ZhciBHPWZ1bmN0aW9uKGEpe3ZhciBiPSJTaGVldDEiO2Euc2hlZXROYW1lJiYoYj1hLnNoZWV0TmFtZS5yZXBsYWNlKC9bXFtcXVwqXC9cXFw/Ol0vZywiIikpO3JldHVybiBifSxIPWZ1bmN0aW9uKGEpe3JldHVybiBhLm5ld2xpbmU/CmEubmV3bGluZTpuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XaW5kb3dzLyk/IlxyXG4iOiJcbiJ9LEk9ZnVuY3Rpb24oYSxiKXt2YXIgZD1IKGIpO2E9YS5idXR0b25zLmV4cG9ydERhdGEoYi5leHBvcnRPcHRpb25zKTt2YXIgYz1iLmZpZWxkQm91bmRhcnksZj1iLmZpZWxkU2VwYXJhdG9yLGU9bmV3IFJlZ0V4cChjLCJnIiksaD1iLmVzY2FwZUNoYXIhPT13P2IuZXNjYXBlQ2hhcjoiXFwiLG09ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPSIiLGQ9MCxtPWEubGVuZ3RoO2Q8bTtkKyspMDxkJiYoYis9ZiksYis9Yz9jKygiIithW2RdKS5yZXBsYWNlKGUsaCtjKStjOmFbZF07cmV0dXJuIGJ9LGs9Yi5oZWFkZXI/bShhLmhlYWRlcikrZDoiIjtiPWIuZm9vdGVyJiZhLmZvb3Rlcj9kK20oYS5mb290ZXIpOiIiO2Zvcih2YXIgbj1bXSxnPTAscT1hLmJvZHkubGVuZ3RoO2c8cTtnKyspbi5wdXNoKG0oYS5ib2R5W2ddKSk7cmV0dXJue3N0cjprK24uam9pbihkKStiLHJvd3M6bi5sZW5ndGh9fSwKSj1mdW5jdGlvbigpe2lmKC0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJTYWZhcmkiKXx8LTEhPT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkNocm9tZSIpfHwtMSE9PW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiT3BlcmEiKSlyZXR1cm4hMTt2YXIgYT1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFwvKFxkK1wuXGQrKS8pO3JldHVybiBhJiYxPGEubGVuZ3RoJiY2MDMuMT4xKmFbMV0/ITA6ITF9O3RyeXt2YXIgQz1uZXcgWE1MU2VyaWFsaXplcix5fWNhdGNoKGEpe312YXIgRj17Il9yZWxzLy5yZWxzIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxSZWxhdGlvbnNoaXBzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiPjxSZWxhdGlvbnNoaXAgSWQ9InJJZDEiIFR5cGU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiIFRhcmdldD0ieGwvd29ya2Jvb2sueG1sIi8+PC9SZWxhdGlvbnNoaXBzPicsCiJ4bC9fcmVscy93b3JrYm9vay54bWwucmVscyI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJ5ZXMiPz48UmVsYXRpb25zaGlwcyB4bWxucz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9yZWxhdGlvbnNoaXBzIj48UmVsYXRpb25zaGlwIElkPSJySWQxIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldCIgVGFyZ2V0PSJ3b3Jrc2hlZXRzL3NoZWV0MS54bWwiLz48UmVsYXRpb25zaGlwIElkPSJySWQyIiBUeXBlPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3N0eWxlcyIgVGFyZ2V0PSJzdHlsZXMueG1sIi8+PC9SZWxhdGlvbnNoaXBzPicsIltDb250ZW50X1R5cGVzXS54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PFR5cGVzIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXMiPjxEZWZhdWx0IEV4dGVuc2lvbj0ieG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24veG1sIiAvPjxEZWZhdWx0IEV4dGVuc2lvbj0icmVscyIgQ29udGVudFR5cGU9ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIiAvPjxEZWZhdWx0IEV4dGVuc2lvbj0ianBlZyIgQ29udGVudFR5cGU9ImltYWdlL2pwZWciIC8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya2Jvb2sueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4bWwiIC8+PE92ZXJyaWRlIFBhcnROYW1lPSIveGwvd29ya3NoZWV0cy9zaGVldDEueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbCIgLz48T3ZlcnJpZGUgUGFydE5hbWU9Ii94bC9zdHlsZXMueG1sIiBDb250ZW50VHlwZT0iYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc3R5bGVzK3htbCIgLz48L1R5cGVzPicsCiJ4bC93b3JrYm9vay54bWwiOic8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ieWVzIj8+PHdvcmtib29rIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW4iIHhtbG5zOnI9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMiPjxmaWxlVmVyc2lvbiBhcHBOYW1lPSJ4bCIgbGFzdEVkaXRlZD0iNSIgbG93ZXN0RWRpdGVkPSI1IiBydXBCdWlsZD0iMjQ4MTYiLz48d29ya2Jvb2tQciBzaG93SW5rQW5ub3RhdGlvbj0iMCIgYXV0b0NvbXByZXNzUGljdHVyZXM9IjAiLz48Ym9va1ZpZXdzPjx3b3JrYm9va1ZpZXcgeFdpbmRvdz0iMCIgeVdpbmRvdz0iMCIgd2luZG93V2lkdGg9IjI1NjAwIiB3aW5kb3dIZWlnaHQ9IjE5MDIwIiB0YWJSYXRpbz0iNTAwIi8+PC9ib29rVmlld3M+PHNoZWV0cz48c2hlZXQgbmFtZT0iU2hlZXQxIiBzaGVldElkPSIxIiByOmlkPSJySWQxIi8+PC9zaGVldHM+PGRlZmluZWROYW1lcy8+PC93b3JrYm9vaz4nLAoieGwvd29ya3NoZWV0cy9zaGVldDEueG1sIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/Pjx3b3Jrc2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6cj0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcyIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxzaGVldERhdGEvPjxtZXJnZUNlbGxzIGNvdW50PSIwIi8+PC93b3Jrc2hlZXQ+JywieGwvc3R5bGVzLnhtbCI6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PHN0eWxlU2hlZXQgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIgeG1sbnM6bWM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2IiBtYzpJZ25vcmFibGU9IngxNGFjIiB4bWxuczp4MTRhYz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWMiPjxudW1GbXRzIGNvdW50PSI2Ij48bnVtRm10IG51bUZtdElkPSIxNjQiIGZvcm1hdENvZGU9IiMsIyMwLjAwXy0gWyQkLTQ1Q10iLz48bnVtRm10IG51bUZtdElkPSIxNjUiIGZvcm1hdENvZGU9IiZxdW90O8KjJnF1b3Q7IywjIzAuMDAiLz48bnVtRm10IG51bUZtdElkPSIxNjYiIGZvcm1hdENvZGU9Ilsk4oKsLTJdICMsIyMwLjAwIi8+PG51bUZtdCBudW1GbXRJZD0iMTY3IiBmb3JtYXRDb2RlPSIwLjAlIi8+PG51bUZtdCBudW1GbXRJZD0iMTY4IiBmb3JtYXRDb2RlPSIjLCMjMDsoIywjIzApIi8+PG51bUZtdCBudW1GbXRJZD0iMTY5IiBmb3JtYXRDb2RlPSIjLCMjMC4wMDsoIywjIzAuMDApIi8+PC9udW1GbXRzPjxmb250cyBjb3VudD0iNSIgeDE0YWM6a25vd25Gb250cz0iMSI+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PGNvbG9yIHJnYj0iRkZGRkZGRkYiIC8+PC9mb250Pjxmb250PjxzeiB2YWw9IjExIiAvPjxuYW1lIHZhbD0iQ2FsaWJyaSIgLz48YiAvPjwvZm9udD48Zm9udD48c3ogdmFsPSIxMSIgLz48bmFtZSB2YWw9IkNhbGlicmkiIC8+PGkgLz48L2ZvbnQ+PGZvbnQ+PHN6IHZhbD0iMTEiIC8+PG5hbWUgdmFsPSJDYWxpYnJpIiAvPjx1IC8+PC9mb250PjwvZm9udHM+PGZpbGxzIGNvdW50PSI2Ij48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9Im5vbmUiIC8+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ibm9uZSIgLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJGRkQ5RDlEOSIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9InNvbGlkIj48ZmdDb2xvciByZ2I9IkZGRDk5Nzk1IiAvPjxiZ0NvbG9yIGluZGV4ZWQ9IjY0IiAvPjwvcGF0dGVybkZpbGw+PC9maWxsPjxmaWxsPjxwYXR0ZXJuRmlsbCBwYXR0ZXJuVHlwZT0ic29saWQiPjxmZ0NvbG9yIHJnYj0iZmZjNmVmY2UiIC8+PGJnQ29sb3IgaW5kZXhlZD0iNjQiIC8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPSJzb2xpZCI+PGZnQ29sb3IgcmdiPSJmZmM2Y2ZlZiIgLz48YmdDb2xvciBpbmRleGVkPSI2NCIgLz48L3BhdHRlcm5GaWxsPjwvZmlsbD48L2ZpbGxzPjxib3JkZXJzIGNvdW50PSIyIj48Ym9yZGVyPjxsZWZ0IC8+PHJpZ2h0IC8+PHRvcCAvPjxib3R0b20gLz48ZGlhZ29uYWwgLz48L2JvcmRlcj48Ym9yZGVyIGRpYWdvbmFsVXA9ImZhbHNlIiBkaWFnb25hbERvd249ImZhbHNlIj48bGVmdCBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC9sZWZ0PjxyaWdodCBzdHlsZT0idGhpbiI+PGNvbG9yIGF1dG89IjEiIC8+PC9yaWdodD48dG9wIHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L3RvcD48Ym90dG9tIHN0eWxlPSJ0aGluIj48Y29sb3IgYXV0bz0iMSIgLz48L2JvdHRvbT48ZGlhZ29uYWwgLz48L2JvcmRlcj48L2JvcmRlcnM+PGNlbGxTdHlsZVhmcyBjb3VudD0iMSI+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIC8+PC9jZWxsU3R5bGVYZnM+PGNlbGxYZnMgY291bnQ9IjY3Ij48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIzIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI0IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSIwIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjIiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSIyIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iMiIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMSIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjIiIGZpbGxJZD0iMyIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIzIiBmaWxsSWQ9IjMiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iNCIgZmlsbElkPSIzIiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIxIiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMiIgZmlsbElkPSI0IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjMiIGZpbGxJZD0iNCIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSI0IiBmaWxsSWQ9IjQiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMCIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjEiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIyIiBmaWxsSWQ9IjUiIGJvcmRlcklkPSIxIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiLz48eGYgbnVtRm10SWQ9IjAiIGZvbnRJZD0iMyIgZmlsbElkPSI1IiBib3JkZXJJZD0iMSIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIi8+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjQiIGZpbGxJZD0iNSIgYm9yZGVySWQ9IjEiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIvPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9ImxlZnQiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9ImNlbnRlciIvPjwveGY+PHhmIG51bUZtdElkPSIwIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlBbGlnbm1lbnQ9IjEiPjxhbGlnbm1lbnQgaG9yaXpvbnRhbD0icmlnaHQiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IGhvcml6b250YWw9ImZpbGwiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IHRleHRSb3RhdGlvbj0iOTAiLz48L3hmPjx4ZiBudW1GbXRJZD0iMCIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5QWxpZ25tZW50PSIxIj48YWxpZ25tZW50IHdyYXBUZXh0PSIxIi8+PC94Zj48eGYgbnVtRm10SWQ9IjkiICAgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjQiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY1IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2NiIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIxNjciIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMTY4IiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjE2OSIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIzIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48eGYgbnVtRm10SWQ9IjQiIGZvbnRJZD0iMCIgZmlsbElkPSIwIiBib3JkZXJJZD0iMCIgYXBwbHlGb250PSIxIiBhcHBseUZpbGw9IjEiIGFwcGx5Qm9yZGVyPSIxIiB4ZklkPSIwIiBhcHBseU51bWJlckZvcm1hdD0iMSIvPjx4ZiBudW1GbXRJZD0iMSIgZm9udElkPSIwIiBmaWxsSWQ9IjAiIGJvcmRlcklkPSIwIiBhcHBseUZvbnQ9IjEiIGFwcGx5RmlsbD0iMSIgYXBwbHlCb3JkZXI9IjEiIHhmSWQ9IjAiIGFwcGx5TnVtYmVyRm9ybWF0PSIxIi8+PHhmIG51bUZtdElkPSIyIiBmb250SWQ9IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiIGFwcGx5Rm9udD0iMSIgYXBwbHlGaWxsPSIxIiBhcHBseUJvcmRlcj0iMSIgeGZJZD0iMCIgYXBwbHlOdW1iZXJGb3JtYXQ9IjEiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9IjEiPjxjZWxsU3R5bGUgbmFtZT0iTm9ybWFsIiB4ZklkPSIwIiBidWlsdGluSWQ9IjAiIC8+PC9jZWxsU3R5bGVzPjxkeGZzIGNvdW50PSIwIiAvPjx0YWJsZVN0eWxlcyBjb3VudD0iMCIgZGVmYXVsdFRhYmxlU3R5bGU9IlRhYmxlU3R5bGVNZWRpdW05IiBkZWZhdWx0UGl2b3RTdHlsZT0iUGl2b3RTdHlsZU1lZGl1bTQiIC8+PC9zdHlsZVNoZWV0Pid9LApLPVt7bWF0Y2g6L15cLT9cZCtcLlxkJSQvLHN0eWxlOjYwLGZtdDpmdW5jdGlvbihhKXtyZXR1cm4gYS8xMDB9fSx7bWF0Y2g6L15cLT9cZCtcLj9cZColJC8sc3R5bGU6NTYsZm10OmZ1bmN0aW9uKGEpe3JldHVybiBhLzEwMH19LHttYXRjaDovXlwtP1wkW1xkLF0rLj9cZCokLyxzdHlsZTo1N30se21hdGNoOi9eXC0/wqNbXGQsXSsuP1xkKiQvLHN0eWxlOjU4fSx7bWF0Y2g6L15cLT/igqxbXGQsXSsuP1xkKiQvLHN0eWxlOjU5fSx7bWF0Y2g6L15cLT9cZCskLyxzdHlsZTo2NX0se21hdGNoOi9eXC0/XGQrXC5cZHsyfSQvLHN0eWxlOjY2fSx7bWF0Y2g6L15cKFtcZCxdK1wpJC8sc3R5bGU6NjEsZm10OmZ1bmN0aW9uKGEpe3JldHVybi0xKmEucmVwbGFjZSgvW1woXCldL2csIiIpfX0se21hdGNoOi9eXChbXGQsXStcLlxkezJ9XCkkLyxzdHlsZTo2MixmbXQ6ZnVuY3Rpb24oYSl7cmV0dXJuLTEqYS5yZXBsYWNlKC9bXChcKV0vZywiIil9fSx7bWF0Y2g6L15cLT9bXGQsXSskLyxzdHlsZTo2M30sCnttYXRjaDovXlwtP1tcZCxdK1wuXGR7Mn0kLyxzdHlsZTo2NH1dO3YuZXh0LmJ1dHRvbnMuY29weUh0bWw1PXtjbGFzc05hbWU6ImJ1dHRvbnMtY29weSBidXR0b25zLWh0bWw1Iix0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMuY29weSIsIkNvcHkiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixkLGMpe3RoaXMucHJvY2Vzc2luZyghMCk7dmFyIGc9dGhpczthPUkoYixjKTt2YXIgZT1iLmJ1dHRvbnMuZXhwb3J0SW5mbyhjKSxoPUgoYyksbT1hLnN0cjtkPWYoIjxkaXYvPiIpLmNzcyh7aGVpZ2h0OjEsd2lkdGg6MSxvdmVyZmxvdzoiaGlkZGVuIixwb3NpdGlvbjoiZml4ZWQiLHRvcDowLGxlZnQ6MH0pO2UudGl0bGUmJihtPWUudGl0bGUraCtoK20pO2UubWVzc2FnZVRvcCYmKG09ZS5tZXNzYWdlVG9wK2graCttKTtlLm1lc3NhZ2VCb3R0b20mJihtPW0raCtoK2UubWVzc2FnZUJvdHRvbSk7Yy5jdXN0b21pemUmJihtPWMuY3VzdG9taXplKG0sYyxiKSk7Yz1mKCI8dGV4dGFyZWEgcmVhZG9ubHkvPiIpLnZhbChtKS5hcHBlbmRUbyhkKTsKaWYocC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoImNvcHkiKSl7ZC5hcHBlbmRUbyhiLnRhYmxlKCkuY29udGFpbmVyKCkpO2NbMF0uZm9jdXMoKTtjWzBdLnNlbGVjdCgpO3RyeXt2YXIgaz1wLmV4ZWNDb21tYW5kKCJjb3B5Iik7ZC5yZW1vdmUoKTtpZihrKXtiLmJ1dHRvbnMuaW5mbyhiLmkxOG4oImJ1dHRvbnMuY29weVRpdGxlIiwiQ29weSB0byBjbGlwYm9hcmQiKSxiLmkxOG4oImJ1dHRvbnMuY29weVN1Y2Nlc3MiLHsxOiJDb3BpZWQgb25lIHJvdyB0byBjbGlwYm9hcmQiLF86IkNvcGllZCAlZCByb3dzIHRvIGNsaXBib2FyZCJ9LGEucm93cyksMkUzKTt0aGlzLnByb2Nlc3NpbmcoITEpO3JldHVybn19Y2F0Y2gocSl7fX1rPWYoIjxzcGFuPiIrYi5pMThuKCJidXR0b25zLmNvcHlLZXlzIiwiUHJlc3MgPGk+Y3RybDwvaT4gb3IgPGk+4oyYPC9pPiArIDxpPkM8L2k+IHRvIGNvcHkgdGhlIHRhYmxlIGRhdGE8YnI+dG8geW91ciBzeXN0ZW0gY2xpcGJvYXJkLjxicj48YnI+VG8gY2FuY2VsLCBjbGljayB0aGlzIG1lc3NhZ2Ugb3IgcHJlc3MgZXNjYXBlLiIpKwoiPC9zcGFuPiIpLmFwcGVuZChkKTtiLmJ1dHRvbnMuaW5mbyhiLmkxOG4oImJ1dHRvbnMuY29weVRpdGxlIiwiQ29weSB0byBjbGlwYm9hcmQiKSxrLDApO2NbMF0uZm9jdXMoKTtjWzBdLnNlbGVjdCgpO3ZhciBuPWYoaykuY2xvc2VzdCgiLmR0LWJ1dHRvbi1pbmZvIikscj1mdW5jdGlvbigpe24ub2ZmKCJjbGljay5idXR0b25zLWNvcHkiKTtmKHApLm9mZigiLmJ1dHRvbnMtY29weSIpO2IuYnV0dG9ucy5pbmZvKCExKX07bi5vbigiY2xpY2suYnV0dG9ucy1jb3B5IixyKTtmKHApLm9uKCJrZXlkb3duLmJ1dHRvbnMtY29weSIsZnVuY3Rpb24oYSl7Mjc9PT1hLmtleUNvZGUmJihyKCksZy5wcm9jZXNzaW5nKCExKSl9KS5vbigiY29weS5idXR0b25zLWNvcHkgY3V0LmJ1dHRvbnMtY29weSIsZnVuY3Rpb24oKXtyKCk7Zy5wcm9jZXNzaW5nKCExKX0pfSxleHBvcnRPcHRpb25zOnt9LGZpZWxkU2VwYXJhdG9yOiJcdCIsZmllbGRCb3VuZGFyeToiIixoZWFkZXI6ITAsZm9vdGVyOiExLAp0aXRsZToiKiIsbWVzc2FnZVRvcDoiKiIsbWVzc2FnZUJvdHRvbToiKiJ9O3YuZXh0LmJ1dHRvbnMuY3N2SHRtbDU9e2JvbTohMSxjbGFzc05hbWU6ImJ1dHRvbnMtY3N2IGJ1dHRvbnMtaHRtbDUiLGF2YWlsYWJsZTpmdW5jdGlvbigpe3JldHVybiBnLkZpbGVSZWFkZXIhPT13JiZnLkJsb2J9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5jc3YiLCJDU1YiKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixkLGMpe3RoaXMucHJvY2Vzc2luZyghMCk7YT1JKGIsYykuc3RyO2Q9Yi5idXR0b25zLmV4cG9ydEluZm8oYyk7dmFyIGY9Yy5jaGFyc2V0O2MuY3VzdG9taXplJiYoYT1jLmN1c3RvbWl6ZShhLGMsYikpOyExIT09Zj8oZnx8KGY9cC5jaGFyYWN0ZXJTZXR8fHAuY2hhcnNldCksZiYmKGY9IjtjaGFyc2V0PSIrZikpOmY9IiI7Yy5ib20mJihhPSLvu78iK2EpO0IobmV3IEJsb2IoW2FdLHt0eXBlOiJ0ZXh0L2NzdiIrZn0pLGQuZmlsZW5hbWUsITApO3RoaXMucHJvY2Vzc2luZyghMSl9LApmaWxlbmFtZToiKiIsZXh0ZW5zaW9uOiIuY3N2IixleHBvcnRPcHRpb25zOnt9LGZpZWxkU2VwYXJhdG9yOiIsIixmaWVsZEJvdW5kYXJ5OiciJyxlc2NhcGVDaGFyOiciJyxjaGFyc2V0Om51bGwsaGVhZGVyOiEwLGZvb3RlcjohMX07di5leHQuYnV0dG9ucy5leGNlbEh0bWw1PXtjbGFzc05hbWU6ImJ1dHRvbnMtZXhjZWwgYnV0dG9ucy1odG1sNSIsYXZhaWxhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGcuRmlsZVJlYWRlciE9PXcmJih6fHxnLkpTWmlwKSE9PXcmJiFKKCkmJkN9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5leGNlbCIsIkV4Y2VsIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt0aGlzLnByb2Nlc3NpbmcoITApO3ZhciBwPXRoaXMsZT0wO2E9ZnVuY3Rpb24oYSl7cmV0dXJuIGYucGFyc2VYTUwoRlthXSl9O3ZhciBoPWEoInhsL3dvcmtzaGVldHMvc2hlZXQxLnhtbCIpLG09aC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2hlZXREYXRhIilbMF07CmE9e19yZWxzOnsiLnJlbHMiOmEoIl9yZWxzLy5yZWxzIil9LHhsOntfcmVsczp7Indvcmtib29rLnhtbC5yZWxzIjphKCJ4bC9fcmVscy93b3JrYm9vay54bWwucmVscyIpfSwid29ya2Jvb2sueG1sIjphKCJ4bC93b3JrYm9vay54bWwiKSwic3R5bGVzLnhtbCI6YSgieGwvc3R5bGVzLnhtbCIpLHdvcmtzaGVldHM6eyJzaGVldDEueG1sIjpofX0sIltDb250ZW50X1R5cGVzXS54bWwiOmEoIltDb250ZW50X1R5cGVzXS54bWwiKX07dmFyIGs9Yi5idXR0b25zLmV4cG9ydERhdGEoYy5leHBvcnRPcHRpb25zKSxuLHYscT1mdW5jdGlvbihhKXtuPWUrMTt2PXIoaCwicm93Iix7YXR0cjp7cjpufX0pO2Zvcih2YXIgYj0wLGQ9YS5sZW5ndGg7YjxkO2IrKyl7dmFyIGs9QShiKSsiIituLGc9bnVsbDtpZihudWxsPT09YVtiXXx8YVtiXT09PXd8fCIiPT09YVtiXSlpZighMD09PWMuY3JlYXRlRW1wdHlDZWxscylhW2JdPSIiO2Vsc2UgY29udGludWU7dmFyIGw9YVtiXTthW2JdPWYudHJpbShhW2JdKTsKZm9yKHZhciBxPTAscD1LLmxlbmd0aDtxPHA7cSsrKXt2YXIgdT1LW3FdO2lmKGFbYl0ubWF0Y2gmJiFhW2JdLm1hdGNoKC9eMFxkKy8pJiZhW2JdLm1hdGNoKHUubWF0Y2gpKXtnPWFbYl0ucmVwbGFjZSgvW15cZFwuXC1dL2csIiIpO3UuZm10JiYoZz11LmZtdChnKSk7Zz1yKGgsImMiLHthdHRyOntyOmssczp1LnN0eWxlfSxjaGlsZHJlbjpbcihoLCJ2Iix7dGV4dDpnfSldfSk7YnJlYWt9fWd8fCgibnVtYmVyIj09PXR5cGVvZiBhW2JdfHxhW2JdLm1hdGNoJiZhW2JdLm1hdGNoKC9eLT9cZCsoXC5cZCspPyQvKSYmIWFbYl0ubWF0Y2goL14wXGQrLyk/Zz1yKGgsImMiLHthdHRyOnt0OiJuIixyOmt9LGNoaWxkcmVuOltyKGgsInYiLHt0ZXh0OmFbYl19KV19KToobD1sLnJlcGxhY2U/bC5yZXBsYWNlKC9bXHgwMC1ceDA5XHgwQlx4MENceDBFLVx4MUZceDdGLVx4OUZdL2csIiIpOmwsZz1yKGgsImMiLHthdHRyOnt0OiJpbmxpbmVTdHIiLHI6a30sY2hpbGRyZW46e3JvdzpyKGgsCiJpcyIse2NoaWxkcmVuOntyb3c6cihoLCJ0Iix7dGV4dDpsLGF0dHI6eyJ4bWw6c3BhY2UiOiJwcmVzZXJ2ZSJ9fSl9fSl9fSkpKTt2LmFwcGVuZENoaWxkKGcpfW0uYXBwZW5kQ2hpbGQodik7ZSsrfTtjLmN1c3RvbWl6ZURhdGEmJmMuY3VzdG9taXplRGF0YShrKTt2YXIgeD1mdW5jdGlvbihhLGIpe3ZhciBjPWYoIm1lcmdlQ2VsbHMiLGgpO2NbMF0uYXBwZW5kQ2hpbGQocihoLCJtZXJnZUNlbGwiLHthdHRyOntyZWY6IkEiK2ErIjoiK0EoYikrYX19KSk7Yy5hdHRyKCJjb3VudCIscGFyc2VGbG9hdChjLmF0dHIoImNvdW50IikpKzEpO2YoInJvdzplcSgiKyhhLTEpKyIpIGMiLGgpLmF0dHIoInMiLCI1MSIpfSxsPWIuYnV0dG9ucy5leHBvcnRJbmZvKGMpO2wudGl0bGUmJihxKFtsLnRpdGxlXSxlKSx4KGUsay5oZWFkZXIubGVuZ3RoLTEpKTtsLm1lc3NhZ2VUb3AmJihxKFtsLm1lc3NhZ2VUb3BdLGUpLHgoZSxrLmhlYWRlci5sZW5ndGgtMSkpO2MuaGVhZGVyJiYocShrLmhlYWRlciwKZSksZigicm93Omxhc3QgYyIsaCkuYXR0cigicyIsIjIiKSk7ZD1lO3ZhciB0PTA7Zm9yKHZhciB5PWsuYm9keS5sZW5ndGg7dDx5O3QrKylxKGsuYm9keVt0XSxlKTt0PWU7Yy5mb290ZXImJmsuZm9vdGVyJiYocShrLmZvb3RlcixlKSxmKCJyb3c6bGFzdCBjIixoKS5hdHRyKCJzIiwiMiIpKTtsLm1lc3NhZ2VCb3R0b20mJihxKFtsLm1lc3NhZ2VCb3R0b21dLGUpLHgoZSxrLmhlYWRlci5sZW5ndGgtMSkpO3E9cihoLCJjb2xzIik7Zigid29ya3NoZWV0IixoKS5wcmVwZW5kKHEpO3g9MDtmb3IoeT1rLmhlYWRlci5sZW5ndGg7eDx5O3grKylxLmFwcGVuZENoaWxkKHIoaCwiY29sIix7YXR0cjp7bWluOngrMSxtYXg6eCsxLHdpZHRoOkwoayx4KSxjdXN0b21XaWR0aDoxfX0pKTtxPWEueGxbIndvcmtib29rLnhtbCJdO2YoInNoZWV0cyBzaGVldCIscSkuYXR0cigibmFtZSIsRyhjKSk7Yy5hdXRvRmlsdGVyJiYoZigibWVyZ2VDZWxscyIsaCkuYmVmb3JlKHIoaCwiYXV0b0ZpbHRlciIsCnthdHRyOntyZWY6IkEiK2QrIjoiK0Eoay5oZWFkZXIubGVuZ3RoLTEpK3R9fSkpLGYoImRlZmluZWROYW1lcyIscSkuYXBwZW5kKHIocSwiZGVmaW5lZE5hbWUiLHthdHRyOntuYW1lOiJfeGxubS5fRmlsdGVyRGF0YWJhc2UiLGxvY2FsU2hlZXRJZDoiMCIsaGlkZGVuOjF9LHRleHQ6RyhjKSsiISRBJCIrZCsiOiIrQShrLmhlYWRlci5sZW5ndGgtMSkrdH0pKSk7Yy5jdXN0b21pemUmJmMuY3VzdG9taXplKGEsYyxiKTswPT09ZigibWVyZ2VDZWxscyIsaCkuY2hpbGRyZW4oKS5sZW5ndGgmJmYoIm1lcmdlQ2VsbHMiLGgpLnJlbW92ZSgpO2I9bmV3ICh6fHxnLkpTWmlwKTtkPXt0eXBlOiJibG9iIixtaW1lVHlwZToiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQifTtFKGIsYSk7Yi5nZW5lcmF0ZUFzeW5jP2IuZ2VuZXJhdGVBc3luYyhkKS50aGVuKGZ1bmN0aW9uKGEpe0IoYSxsLmZpbGVuYW1lKTtwLnByb2Nlc3NpbmcoITEpfSk6CihCKGIuZ2VuZXJhdGUoZCksbC5maWxlbmFtZSksdGhpcy5wcm9jZXNzaW5nKCExKSl9LGZpbGVuYW1lOiIqIixleHRlbnNpb246Ii54bHN4IixleHBvcnRPcHRpb25zOnt9LGhlYWRlcjohMCxmb290ZXI6ITEsdGl0bGU6IioiLG1lc3NhZ2VUb3A6IioiLG1lc3NhZ2VCb3R0b206IioiLGNyZWF0ZUVtcHR5Q2VsbHM6ITEsYXV0b0ZpbHRlcjohMSxzaGVldE5hbWU6IiJ9O3YuZXh0LmJ1dHRvbnMucGRmSHRtbDU9e2NsYXNzTmFtZToiYnV0dG9ucy1wZGYgYnV0dG9ucy1odG1sNSIsYXZhaWxhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGcuRmlsZVJlYWRlciE9PXcmJih0fHxnLnBkZk1ha2UpfSx0ZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBhLmkxOG4oImJ1dHRvbnMucGRmIiwiUERGIil9LGFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXt0aGlzLnByb2Nlc3NpbmcoITApO2Q9Yi5idXR0b25zLmV4cG9ydERhdGEoYy5leHBvcnRPcHRpb25zKTthPWIuYnV0dG9ucy5leHBvcnRJbmZvKGMpO3ZhciBwPQpbXTtjLmhlYWRlciYmcC5wdXNoKGYubWFwKGQuaGVhZGVyLGZ1bmN0aW9uKGEpe3JldHVybnt0ZXh0OiJzdHJpbmciPT09dHlwZW9mIGE/YTphKyIiLHN0eWxlOiJ0YWJsZUhlYWRlciJ9fSkpO2Zvcih2YXIgZT0wLGg9ZC5ib2R5Lmxlbmd0aDtlPGg7ZSsrKXAucHVzaChmLm1hcChkLmJvZHlbZV0sZnVuY3Rpb24oYSl7aWYobnVsbD09PWF8fGE9PT13KWE9IiI7cmV0dXJue3RleHQ6InN0cmluZyI9PT10eXBlb2YgYT9hOmErIiIsc3R5bGU6ZSUyPyJ0YWJsZUJvZHlFdmVuIjoidGFibGVCb2R5T2RkIn19KSk7Yy5mb290ZXImJmQuZm9vdGVyJiZwLnB1c2goZi5tYXAoZC5mb290ZXIsZnVuY3Rpb24oYSl7cmV0dXJue3RleHQ6InN0cmluZyI9PT10eXBlb2YgYT9hOmErIiIsc3R5bGU6InRhYmxlRm9vdGVyIn19KSk7ZD17cGFnZVNpemU6Yy5wYWdlU2l6ZSxwYWdlT3JpZW50YXRpb246Yy5vcmllbnRhdGlvbixjb250ZW50Olt7dGFibGU6e2hlYWRlclJvd3M6MSxib2R5OnB9LGxheW91dDoibm9Cb3JkZXJzIn1dLApzdHlsZXM6e3RhYmxlSGVhZGVyOntib2xkOiEwLGZvbnRTaXplOjExLGNvbG9yOiJ3aGl0ZSIsZmlsbENvbG9yOiIjMmQ0MTU0IixhbGlnbm1lbnQ6ImNlbnRlciJ9LHRhYmxlQm9keUV2ZW46e30sdGFibGVCb2R5T2RkOntmaWxsQ29sb3I6IiNmM2YzZjMifSx0YWJsZUZvb3Rlcjp7Ym9sZDohMCxmb250U2l6ZToxMSxjb2xvcjoid2hpdGUiLGZpbGxDb2xvcjoiIzJkNDE1NCJ9LHRpdGxlOnthbGlnbm1lbnQ6ImNlbnRlciIsZm9udFNpemU6MTV9LG1lc3NhZ2U6e319LGRlZmF1bHRTdHlsZTp7Zm9udFNpemU6MTB9fTthLm1lc3NhZ2VUb3AmJmQuY29udGVudC51bnNoaWZ0KHt0ZXh0OmEubWVzc2FnZVRvcCxzdHlsZToibWVzc2FnZSIsbWFyZ2luOlswLDAsMCwxMl19KTthLm1lc3NhZ2VCb3R0b20mJmQuY29udGVudC5wdXNoKHt0ZXh0OmEubWVzc2FnZUJvdHRvbSxzdHlsZToibWVzc2FnZSIsbWFyZ2luOlswLDAsMCwxMl19KTthLnRpdGxlJiZkLmNvbnRlbnQudW5zaGlmdCh7dGV4dDphLnRpdGxlLApzdHlsZToidGl0bGUiLG1hcmdpbjpbMCwwLDAsMTJdfSk7Yy5jdXN0b21pemUmJmMuY3VzdG9taXplKGQsYyxiKTtiPSh0fHxnLnBkZk1ha2UpLmNyZWF0ZVBkZihkKTsib3BlbiIhPT1jLmRvd25sb2FkfHxKKCk/Yi5kb3dubG9hZChhLmZpbGVuYW1lKTpiLm9wZW4oKTt0aGlzLnByb2Nlc3NpbmcoITEpfSx0aXRsZToiKiIsZmlsZW5hbWU6IioiLGV4dGVuc2lvbjoiLnBkZiIsZXhwb3J0T3B0aW9uczp7fSxvcmllbnRhdGlvbjoicG9ydHJhaXQiLHBhZ2VTaXplOiJBNCIsaGVhZGVyOiEwLGZvb3RlcjohMSxtZXNzYWdlVG9wOiIqIixtZXNzYWdlQm90dG9tOiIqIixjdXN0b21pemU6bnVsbCxkb3dubG9hZDoiZG93bmxvYWQifTtyZXR1cm4gdi5CdXR0b25zfSk7Cg=="></script>
|
||
<script src="data:application/javascript;base64,LyohCiBDb2x1bW4gdmlzaWJpbGl0eSBidXR0b25zIGZvciBCdXR0b25zIGFuZCBEYXRhVGFibGVzLgogMjAxNiBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoqLwooZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiLCJkYXRhdGFibGVzLm5ldC1idXR0b25zIl0sZnVuY3Rpb24oYyl7cmV0dXJuIGYoYyx3aW5kb3csZG9jdW1lbnQpfSk6Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mdW5jdGlvbihjLGUpe2N8fChjPXdpbmRvdyk7ZSYmZS5mbi5kYXRhVGFibGV8fChlPXJlcXVpcmUoImRhdGF0YWJsZXMubmV0IikoYyxlKS4kKTtlLmZuLmRhdGFUYWJsZS5CdXR0b25zfHxyZXF1aXJlKCJkYXRhdGFibGVzLm5ldC1idXR0b25zIikoYyxlKTtyZXR1cm4gZihlLGMsYy5kb2N1bWVudCl9OmYoalF1ZXJ5LHdpbmRvdyxkb2N1bWVudCl9KShmdW5jdGlvbihmLGMsZSxoKXtjPWYuZm4uZGF0YVRhYmxlO2YuZXh0ZW5kKGMuZXh0LmJ1dHRvbnMse2NvbHZpczpmdW5jdGlvbihhLGIpe3JldHVybntleHRlbmQ6ImNvbGxlY3Rpb24iLAp0ZXh0OmZ1bmN0aW9uKGIpe3JldHVybiBiLmkxOG4oImJ1dHRvbnMuY29sdmlzIiwiQ29sdW1uIHZpc2liaWxpdHkiKX0sY2xhc3NOYW1lOiJidXR0b25zLWNvbHZpcyIsYnV0dG9uczpbe2V4dGVuZDoiY29sdW1uc1RvZ2dsZSIsY29sdW1uczpiLmNvbHVtbnMsY29sdW1uVGV4dDpiLmNvbHVtblRleHR9XX19LGNvbHVtbnNUb2dnbGU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jb2x1bW5zKGIuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5Ub2dnbGUiLGNvbHVtbnM6YSxjb2x1bW5UZXh0OmIuY29sdW1uVGV4dH19KS50b0FycmF5KCl9LGNvbHVtblRvZ2dsZTpmdW5jdGlvbihhLGIpe3JldHVybntleHRlbmQ6ImNvbHVtblZpc2liaWxpdHkiLGNvbHVtbnM6Yi5jb2x1bW5zLGNvbHVtblRleHQ6Yi5jb2x1bW5UZXh0fX0sY29sdW1uc1Zpc2liaWxpdHk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYS5jb2x1bW5zKGIuY29sdW1ucykuaW5kZXhlcygpLm1hcChmdW5jdGlvbihhKXtyZXR1cm57ZXh0ZW5kOiJjb2x1bW5WaXNpYmlsaXR5IiwKY29sdW1uczphLHZpc2liaWxpdHk6Yi52aXNpYmlsaXR5LGNvbHVtblRleHQ6Yi5jb2x1bW5UZXh0fX0pLnRvQXJyYXkoKX0sY29sdW1uVmlzaWJpbGl0eTp7Y29sdW1uczpoLHRleHQ6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBkLl9jb2x1bW5UZXh0KGEsZCl9LGNsYXNzTmFtZToiYnV0dG9ucy1jb2x1bW5WaXNpYmlsaXR5IixhY3Rpb246ZnVuY3Rpb24oYSxiLGQsZyl7YT1iLmNvbHVtbnMoZy5jb2x1bW5zKTtiPWEudmlzaWJsZSgpO2EudmlzaWJsZShnLnZpc2liaWxpdHkhPT1oP2cudmlzaWJpbGl0eTohKGIubGVuZ3RoJiZiWzBdKSl9LGluaXQ6ZnVuY3Rpb24oYSxiLGQpe3ZhciBnPXRoaXM7Yi5hdHRyKCJkYXRhLWN2LWlkeCIsZC5jb2x1bW5zKTthLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdCIrZC5uYW1lc3BhY2UsZnVuY3Rpb24oYixjKXtjLmJEZXN0cm95aW5nfHxjLm5UYWJsZSE9YS5zZXR0aW5ncygpWzBdLm5UYWJsZXx8Zy5hY3RpdmUoYS5jb2x1bW4oZC5jb2x1bW5zKS52aXNpYmxlKCkpfSkub24oImNvbHVtbi1yZW9yZGVyLmR0IisKZC5uYW1lc3BhY2UsZnVuY3Rpb24oYyxlLGYpezE9PT1hLmNvbHVtbnMoZC5jb2x1bW5zKS5jb3VudCgpJiYoYi50ZXh0KGQuX2NvbHVtblRleHQoYSxkKSksZy5hY3RpdmUoYS5jb2x1bW4oZC5jb2x1bW5zKS52aXNpYmxlKCkpKX0pO3RoaXMuYWN0aXZlKGEuY29sdW1uKGQuY29sdW1ucykudmlzaWJsZSgpKX0sZGVzdHJveTpmdW5jdGlvbihhLGIsZCl7YS5vZmYoImNvbHVtbi12aXNpYmlsaXR5LmR0IitkLm5hbWVzcGFjZSkub2ZmKCJjb2x1bW4tcmVvcmRlci5kdCIrZC5uYW1lc3BhY2UpfSxfY29sdW1uVGV4dDpmdW5jdGlvbihhLGIpe3ZhciBkPWEuY29sdW1uKGIuY29sdW1ucykuaW5kZXgoKSxjPWEuc2V0dGluZ3MoKVswXS5hb0NvbHVtbnNbZF0uc1RpdGxlLnJlcGxhY2UoL1xuL2csIiAiKS5yZXBsYWNlKC88YnJccypcLz8+L2dpLCIgIikucmVwbGFjZSgvPHNlbGVjdCguKj8pPFwvc2VsZWN0Pi9nLCIiKS5yZXBsYWNlKC88IVwtXC0uKj9cLVwtPi9nLCIiKS5yZXBsYWNlKC88Lio/Pi9nLAoiIikucmVwbGFjZSgvXlxzK3xccyskL2csIiIpO3JldHVybiBiLmNvbHVtblRleHQ/Yi5jb2x1bW5UZXh0KGEsZCxjKTpjfX0sY29sdmlzUmVzdG9yZTp7Y2xhc3NOYW1lOiJidXR0b25zLWNvbHZpc1Jlc3RvcmUiLHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuaTE4bigiYnV0dG9ucy5jb2x2aXNSZXN0b3JlIiwiUmVzdG9yZSB2aXNpYmlsaXR5Iil9LGluaXQ6ZnVuY3Rpb24oYSxiLGQpe2QuX3Zpc09yaWdpbmFsPWEuY29sdW1ucygpLmluZGV4ZXMoKS5tYXAoZnVuY3Rpb24oYil7cmV0dXJuIGEuY29sdW1uKGIpLnZpc2libGUoKX0pLnRvQXJyYXkoKX0sYWN0aW9uOmZ1bmN0aW9uKGEsYixkLGMpe2IuY29sdW1ucygpLmV2ZXJ5KGZ1bmN0aW9uKGEpe2E9Yi5jb2xSZW9yZGVyJiZiLmNvbFJlb3JkZXIudHJhbnNwb3NlP2IuY29sUmVvcmRlci50cmFuc3Bvc2UoYSwidG9PcmlnaW5hbCIpOmE7dGhpcy52aXNpYmxlKGMuX3Zpc09yaWdpbmFsW2FdKX0pfX0sY29sdmlzR3JvdXA6e2NsYXNzTmFtZToiYnV0dG9ucy1jb2x2aXNHcm91cCIsCmFjdGlvbjpmdW5jdGlvbihhLGIsZCxjKXtiLmNvbHVtbnMoYy5zaG93KS52aXNpYmxlKCEwLCExKTtiLmNvbHVtbnMoYy5oaWRlKS52aXNpYmxlKCExLCExKTtiLmNvbHVtbnMuYWRqdXN0KCl9LHNob3c6W10saGlkZTpbXX19KTtyZXR1cm4gYy5CdXR0b25zfSk7Cg=="></script>
|
||
<script src="data:application/javascript;base64,LyohCiBQcmludCBidXR0b24gZm9yIEJ1dHRvbnMgYW5kIERhdGFUYWJsZXMuCiAyMDE2IFNwcnlNZWRpYSBMdGQgLSBkYXRhdGFibGVzLm5ldC9saWNlbnNlCiovCihmdW5jdGlvbihjKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiLCJkYXRhdGFibGVzLm5ldCIsImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiXSxmdW5jdGlvbihlKXtyZXR1cm4gYyhlLHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGUsYSl7ZXx8KGU9d2luZG93KTthJiZhLmZuLmRhdGFUYWJsZXx8KGE9cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKShlLGEpLiQpO2EuZm4uZGF0YVRhYmxlLkJ1dHRvbnN8fHJlcXVpcmUoImRhdGF0YWJsZXMubmV0LWJ1dHRvbnMiKShlLGEpO3JldHVybiBjKGEsZSxlLmRvY3VtZW50KX06YyhqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGMsZSxhLHEpe3ZhciBrPWMuZm4uZGF0YVRhYmxlLGQ9YS5jcmVhdGVFbGVtZW50KCJhIikscD1mdW5jdGlvbihiKXtkLmhyZWY9YjtiPWQuaG9zdDstMT09PWIuaW5kZXhPZigiLyIpJiYKMCE9PWQucGF0aG5hbWUuaW5kZXhPZigiLyIpJiYoYis9Ii8iKTtyZXR1cm4gZC5wcm90b2NvbCsiLy8iK2IrZC5wYXRobmFtZStkLnNlYXJjaH07ay5leHQuYnV0dG9ucy5wcmludD17Y2xhc3NOYW1lOiJidXR0b25zLXByaW50Iix0ZXh0OmZ1bmN0aW9uKGIpe3JldHVybiBiLmkxOG4oImJ1dHRvbnMucHJpbnQiLCJQcmludCIpfSxhY3Rpb246ZnVuY3Rpb24oYixhLGQsZyl7Yj1hLmJ1dHRvbnMuZXhwb3J0RGF0YShjLmV4dGVuZCh7ZGVjb2RlRW50aXRpZXM6ITF9LGcuZXhwb3J0T3B0aW9ucykpO2Q9YS5idXR0b25zLmV4cG9ydEluZm8oZyk7dmFyIGs9YS5jb2x1bW5zKGcuZXhwb3J0T3B0aW9ucy5jb2x1bW5zKS5mbGF0dGVuKCkubWFwKGZ1bmN0aW9uKGIpe3JldHVybiBhLnNldHRpbmdzKClbMF0uYW9Db2x1bW5zW2EuY29sdW1uKGIpLmluZGV4KCldLnNDbGFzc30pLnRvQXJyYXkoKSxtPWZ1bmN0aW9uKGIsYSl7Zm9yKHZhciBkPSI8dHI+IixjPTAsZT1iLmxlbmd0aDtjPGU7YysrKWQrPQoiPCIrYSsiICIrKGtbY10/J2NsYXNzPSInK2tbY10rJyInOiIiKSsiPiIrKG51bGw9PT1iW2NdfHxiW2NdPT09cT8iIjpiW2NdKSsiPC8iK2ErIj4iO3JldHVybiBkKyI8L3RyPiJ9LGg9Jzx0YWJsZSBjbGFzcz0iJythLnRhYmxlKCkubm9kZSgpLmNsYXNzTmFtZSsnIj4nO2cuaGVhZGVyJiYoaCs9Ijx0aGVhZD4iK20oYi5oZWFkZXIsInRoIikrIjwvdGhlYWQ+Iik7aCs9Ijx0Ym9keT4iO2Zvcih2YXIgbj0wLHI9Yi5ib2R5Lmxlbmd0aDtuPHI7bisrKWgrPW0oYi5ib2R5W25dLCJ0ZCIpO2grPSI8L3Rib2R5PiI7Zy5mb290ZXImJmIuZm9vdGVyJiYoaCs9Ijx0Zm9vdD4iK20oYi5mb290ZXIsInRoIikrIjwvdGZvb3Q+Iik7aCs9IjwvdGFibGU+Ijt2YXIgZj1lLm9wZW4oIiIsIiIpO2YuZG9jdW1lbnQuY2xvc2UoKTt2YXIgbD0iPHRpdGxlPiIrZC50aXRsZSsiPC90aXRsZT4iO2MoInN0eWxlLCBsaW5rIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWwsYT1jKHRoaXMpLmNsb25lKClbMF07CiJsaW5rIj09PWEubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmKGEuaHJlZj1wKGEuaHJlZikpO2w9YithLm91dGVySFRNTH0pO3RyeXtmLmRvY3VtZW50LmhlYWQuaW5uZXJIVE1MPWx9Y2F0Y2godCl7YyhmLmRvY3VtZW50LmhlYWQpLmh0bWwobCl9Zi5kb2N1bWVudC5ib2R5LmlubmVySFRNTD0iPGgxPiIrZC50aXRsZSsiPC9oMT48ZGl2PiIrKGQubWVzc2FnZVRvcHx8IiIpKyI8L2Rpdj4iK2grIjxkaXY+IisoZC5tZXNzYWdlQm90dG9tfHwiIikrIjwvZGl2PiI7YyhmLmRvY3VtZW50LmJvZHkpLmFkZENsYXNzKCJkdC1wcmludC12aWV3Iik7YygiaW1nIixmLmRvY3VtZW50LmJvZHkpLmVhY2goZnVuY3Rpb24oYixhKXthLnNldEF0dHJpYnV0ZSgic3JjIixwKGEuZ2V0QXR0cmlidXRlKCJzcmMiKSkpfSk7Zy5jdXN0b21pemUmJmcuY3VzdG9taXplKGYsZyxhKTtiPWZ1bmN0aW9uKCl7Zy5hdXRvUHJpbnQmJihmLnByaW50KCksZi5jbG9zZSgpKX07bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvVHJpZGVudFwvXGQuXGQvKT8KYigpOmYuc2V0VGltZW91dChiLDFFMyl9LHRpdGxlOiIqIixtZXNzYWdlVG9wOiIqIixtZXNzYWdlQm90dG9tOiIqIixleHBvcnRPcHRpb25zOnt9LGhlYWRlcjohMCxmb290ZXI6ITEsYXV0b1ByaW50OiEwLGN1c3RvbWl6ZTpudWxsfTtyZXR1cm4gay5CdXR0b25zfSk7Cg=="></script>
|
||
<link href="data:text/css,table%2EDTFC%5FCloned%20thead%2Ctable%2EDTFC%5FCloned%20tfoot%7Bbackground%2Dcolor%3Awhite%7Ddiv%2EDTFC%5FBlocker%7Bbackground%2Dcolor%3Awhite%7Ddiv%2EDTFC%5FLeftWrapper%20table%2EdataTable%2Cdiv%2EDTFC%5FRightWrapper%20table%2EdataTable%7Bmargin%2Dbottom%3A0%3Bz%2Dindex%3A2%7Ddiv%2EDTFC%5FLeftWrapper%20table%2EdataTable%2Eno%2Dfooter%2Cdiv%2EDTFC%5FRightWrapper%20table%2EdataTable%2Eno%2Dfooter%7Bborder%2Dbottom%3Anone%7D%0A" rel="stylesheet" />
|
||
<script src="data:application/javascript;base64,LyohCiAgIENvcHlyaWdodCAyMDEwLTIwMTggU3ByeU1lZGlhIEx0ZC4KCiBUaGlzIHNvdXJjZSBmaWxlIGlzIGZyZWUgc29mdHdhcmUsIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIGxpY2Vuc2U6CiAgIE1JVCBsaWNlbnNlIC0gaHR0cDovL2RhdGF0YWJsZXMubmV0L2xpY2Vuc2UvbWl0CgogVGhpcyBzb3VyY2UgZmlsZSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZCiBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBsaWNlbnNlIGZpbGVzIGZvciBkZXRhaWxzLgoKIEZvciBkZXRhaWxzIHBsZWFzZSByZWZlciB0bzogaHR0cDovL3d3dy5kYXRhdGFibGVzLm5ldAogRml4ZWRDb2x1bW5zIDMuMy4wCiDCqTIwMTAtMjAxOCBTcHJ5TWVkaWEgTHRkIC0gZGF0YXRhYmxlcy5uZXQvbGljZW5zZQoqLwp2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuZmluZEludGVybmFsPWZ1bmN0aW9uKGMsZyxlKXtjIGluc3RhbmNlb2YgU3RyaW5nJiYoYz1TdHJpbmcoYykpO2Zvcih2YXIgcT1jLmxlbmd0aCxsPTA7bDxxO2wrKyl7dmFyIHU9Y1tsXTtpZihnLmNhbGwoZSx1LGwsYykpcmV0dXJue2k6bCx2OnV9fXJldHVybntpOi0xLHY6dm9pZCAwfX07JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7CiRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGMsZyxlKXtjIT1BcnJheS5wcm90b3R5cGUmJmMhPU9iamVjdC5wcm90b3R5cGUmJihjW2ddPWUudmFsdWUpfTskanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihjKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93PT09Yz9jOiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsJiZudWxsIT1nbG9iYWw/Z2xvYmFsOmN9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOwokanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGMsZyxlLHEpe2lmKGcpe2U9JGpzY29tcC5nbG9iYWw7Yz1jLnNwbGl0KCIuIik7Zm9yKHE9MDtxPGMubGVuZ3RoLTE7cSsrKXt2YXIgbD1jW3FdO2wgaW4gZXx8KGVbbF09e30pO2U9ZVtsXX1jPWNbYy5sZW5ndGgtMV07cT1lW2NdO2c9ZyhxKTtnIT1xJiZudWxsIT1nJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGUsYyx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX19OyRqc2NvbXAucG9seWZpbGwoIkFycmF5LnByb3RvdHlwZS5maW5kIixmdW5jdGlvbihjKXtyZXR1cm4gYz9jOmZ1bmN0aW9uKGMsZSl7cmV0dXJuICRqc2NvbXAuZmluZEludGVybmFsKHRoaXMsYyxlKS52fX0sImVzNiIsImVzMyIpOwooZnVuY3Rpb24oYyl7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5IiwiZGF0YXRhYmxlcy5uZXQiXSxmdW5jdGlvbihnKXtyZXR1cm4gYyhnLHdpbmRvdyxkb2N1bWVudCl9KToib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWZ1bmN0aW9uKGcsZSl7Z3x8KGc9d2luZG93KTtlJiZlLmZuLmRhdGFUYWJsZXx8KGU9cmVxdWlyZSgiZGF0YXRhYmxlcy5uZXQiKShnLGUpLiQpO3JldHVybiBjKGUsZyxnLmRvY3VtZW50KX06YyhqUXVlcnksd2luZG93LGRvY3VtZW50KX0pKGZ1bmN0aW9uKGMsZyxlLHEpe3ZhciBsPWMuZm4uZGF0YVRhYmxlLHUscD1mdW5jdGlvbihhLGIpe3ZhciBkPXRoaXM7aWYodGhpcyBpbnN0YW5jZW9mIHApe2lmKGI9PT1xfHwhMD09PWIpYj17fTt2YXIgaD1jLmZuLmRhdGFUYWJsZS5jYW1lbFRvSHVuZ2FyaWFuO2gmJihoKHAuZGVmYXVsdHMscC5kZWZhdWx0cywhMCksaChwLmRlZmF1bHRzLApiKSk7YT0obmV3IGMuZm4uZGF0YVRhYmxlLkFwaShhKSkuc2V0dGluZ3MoKVswXTt0aGlzLnM9e2R0OmEsaVRhYmxlQ29sdW1uczphLmFvQ29sdW1ucy5sZW5ndGgsYWlPdXRlcldpZHRoczpbXSxhaUlubmVyV2lkdGhzOltdLHJ0bDoicnRsIj09PWMoYS5uVGFibGUpLmNzcygiZGlyZWN0aW9uIil9O3RoaXMuZG9tPXtzY3JvbGxlcjpudWxsLGhlYWRlcjpudWxsLGJvZHk6bnVsbCxmb290ZXI6bnVsbCxncmlkOnt3cmFwcGVyOm51bGwsZHQ6bnVsbCxsZWZ0Ont3cmFwcGVyOm51bGwsaGVhZDpudWxsLGJvZHk6bnVsbCxmb290Om51bGx9LHJpZ2h0Ont3cmFwcGVyOm51bGwsaGVhZDpudWxsLGJvZHk6bnVsbCxmb290Om51bGx9fSxjbG9uZTp7bGVmdDp7aGVhZGVyOm51bGwsYm9keTpudWxsLGZvb3RlcjpudWxsfSxyaWdodDp7aGVhZGVyOm51bGwsYm9keTpudWxsLGZvb3RlcjpudWxsfX19O2lmKGEuX29GaXhlZENvbHVtbnMpdGhyb3ciRml4ZWRDb2x1bW5zIGFscmVhZHkgaW5pdGlhbGlzZWQgb24gdGhpcyB0YWJsZSI7CmEuX29GaXhlZENvbHVtbnM9dGhpczthLl9iSW5pdENvbXBsZXRlP3RoaXMuX2ZuQ29uc3RydWN0KGIpOmEub0FwaS5fZm5DYWxsYmFja1JlZyhhLCJhb0luaXRDb21wbGV0ZSIsZnVuY3Rpb24oKXtkLl9mbkNvbnN0cnVjdChiKX0sIkZpeGVkQ29sdW1ucyIpfWVsc2UgYWxlcnQoIkZpeGVkQ29sdW1ucyB3YXJuaW5nOiBGaXhlZENvbHVtbnMgbXVzdCBiZSBpbml0aWFsaXNlZCB3aXRoIHRoZSAnbmV3JyBrZXl3b3JkLiIpfTtjLmV4dGVuZChwLnByb3RvdHlwZSx7Zm5VcGRhdGU6ZnVuY3Rpb24oKXt0aGlzLl9mbkRyYXcoITApfSxmblJlZHJhd0xheW91dDpmdW5jdGlvbigpe3RoaXMuX2ZuQ29sQ2FsYygpO3RoaXMuX2ZuR3JpZExheW91dCgpO3RoaXMuZm5VcGRhdGUoKX0sZm5SZWNhbGN1bGF0ZUhlaWdodDpmdW5jdGlvbihhKXtkZWxldGUgYS5fRFRUQ19pSGVpZ2h0O2Euc3R5bGUuaGVpZ2h0PSJhdXRvIn0sZm5TZXRSb3dIZWlnaHQ6ZnVuY3Rpb24oYSxiKXthLnN0eWxlLmhlaWdodD0KYisicHgifSxmbkdldFBvc2l0aW9uOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMucy5kdC5vSW5zdGFuY2U7aWYoYyhhKS5wYXJlbnRzKCIuRFRGQ19DbG9uZWQiKS5sZW5ndGgpe2lmKCJ0ciI9PT1hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpcmV0dXJuIGE9YyhhKS5pbmRleCgpLGIuZm5HZXRQb3NpdGlvbihjKCJ0ciIsdGhpcy5zLmR0Lm5UQm9keSlbYV0pO3ZhciBkPWMoYSkuaW5kZXgoKTthPWMoYS5wYXJlbnROb2RlKS5pbmRleCgpO3JldHVybltiLmZuR2V0UG9zaXRpb24oYygidHIiLHRoaXMucy5kdC5uVEJvZHkpW2FdKSxkLGIub0FwaS5fZm5WaXNpYmxlVG9Db2x1bW5JbmRleCh0aGlzLnMuZHQsZCldfXJldHVybiBiLmZuR2V0UG9zaXRpb24oYSl9LGZuVG9GaXhlZE5vZGU6ZnVuY3Rpb24oYSxiKXt2YXIgZDtiPHRoaXMucy5pTGVmdENvbHVtbnM/ZD1jKHRoaXMuZG9tLmNsb25lLmxlZnQuYm9keSkuZmluZCgiW2RhdGEtZHQtcm93PSIrYSsiXVtkYXRhLWR0LWNvbHVtbj0iKwpiKyJdIik6Yj49dGhpcy5zLmlSaWdodENvbHVtbnMmJihkPWModGhpcy5kb20uY2xvbmUucmlnaHQuYm9keSkuZmluZCgiW2RhdGEtZHQtcm93PSIrYSsiXVtkYXRhLWR0LWNvbHVtbj0iK2IrIl0iKSk7cmV0dXJuIGQmJmQubGVuZ3RoP2RbMF06KG5ldyBjLmZuLmRhdGFUYWJsZS5BcGkodGhpcy5zLmR0KSkuY2VsbChhLGIpLm5vZGUoKX0sX2ZuQ29uc3RydWN0OmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMucy5kdC5vSW5zdGFuY2UuZm5WZXJzaW9uQ2hlY2t8fCEwIT09dGhpcy5zLmR0Lm9JbnN0YW5jZS5mblZlcnNpb25DaGVjaygiMS44LjAiKSlhbGVydCgiRml4ZWRDb2x1bW5zICIrcC5WRVJTSU9OKyIgcmVxdWlyZWQgRGF0YVRhYmxlcyAxLjguMCBvciBsYXRlci4gUGxlYXNlIHVwZ3JhZGUgeW91ciBEYXRhVGFibGVzIGluc3RhbGxhdGlvbiIpO2Vsc2UgaWYoIiI9PT10aGlzLnMuZHQub1Njcm9sbC5zWCl0aGlzLnMuZHQub0luc3RhbmNlLm9BcGkuX2ZuTG9nKHRoaXMucy5kdCwKMSwiRml4ZWRDb2x1bW5zIGlzIG5vdCBuZWVkZWQgKG5vIHgtc2Nyb2xsaW5nIGluIERhdGFUYWJsZXMgZW5hYmxlZCksIHNvIG5vIGFjdGlvbiB3aWxsIGJlIHRha2VuLiBVc2UgJ0ZpeGVkSGVhZGVyJyBmb3IgY29sdW1uIGZpeGluZyB3aGVuIHNjcm9sbGluZyBpcyBub3QgZW5hYmxlZCIpO2Vsc2V7dGhpcy5zPWMuZXh0ZW5kKCEwLHRoaXMucyxwLmRlZmF1bHRzLGEpO2E9dGhpcy5zLmR0Lm9DbGFzc2VzO3RoaXMuZG9tLmdyaWQuZHQ9Yyh0aGlzLnMuZHQublRhYmxlKS5wYXJlbnRzKCJkaXYuIithLnNTY3JvbGxXcmFwcGVyKVswXTt0aGlzLmRvbS5zY3JvbGxlcj1jKCJkaXYuIithLnNTY3JvbGxCb2R5LHRoaXMuZG9tLmdyaWQuZHQpWzBdO3RoaXMuX2ZuQ29sQ2FsYygpO3RoaXMuX2ZuR3JpZFNldHVwKCk7dmFyIGQsaD0hMTtjKHRoaXMucy5kdC5uVGFibGVXcmFwcGVyKS5vbigibW91c2Vkb3duLkRURkMiLGZ1bmN0aW9uKGEpezA9PT1hLmJ1dHRvbiYmKGg9ITAsYyhlKS5vbmUoIm1vdXNldXAiLApmdW5jdGlvbigpe2g9ITF9KSl9KTtjKHRoaXMuZG9tLnNjcm9sbGVyKS5vbigibW91c2VvdmVyLkRURkMgdG91Y2hzdGFydC5EVEZDIixmdW5jdGlvbigpe2h8fChkPSJtYWluIil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFkJiZhLm9yaWdpbmFsRXZlbnQmJihkPSJtYWluIik7Im1haW4iPT09ZCYmKDA8Yi5zLmlMZWZ0Q29sdW1ucyYmKGIuZG9tLmdyaWQubGVmdC5saW5lci5zY3JvbGxUb3A9Yi5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wKSwwPGIucy5pUmlnaHRDb2x1bW5zJiYoYi5kb20uZ3JpZC5yaWdodC5saW5lci5zY3JvbGxUb3A9Yi5kb20uc2Nyb2xsZXIuc2Nyb2xsVG9wKSl9KTt2YXIgZj0ib253aGVlbCJpbiBlLmNyZWF0ZUVsZW1lbnQoImRpdiIpPyJ3aGVlbC5EVEZDIjoibW91c2V3aGVlbC5EVEZDIjtpZigwPGIucy5pTGVmdENvbHVtbnMpYyhiLmRvbS5ncmlkLmxlZnQubGluZXIpLm9uKCJtb3VzZW92ZXIuRFRGQyB0b3VjaHN0YXJ0LkRURkMiLGZ1bmN0aW9uKCl7aHx8CihkPSJsZWZ0Iil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFkJiZhLm9yaWdpbmFsRXZlbnQmJihkPSJsZWZ0Iik7ImxlZnQiPT09ZCYmKGIuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wLDA8Yi5zLmlSaWdodENvbHVtbnMmJihiLmRvbS5ncmlkLnJpZ2h0LmxpbmVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wKSl9KS5vbihmLGZ1bmN0aW9uKGEpe2IuZG9tLnNjcm9sbGVyLnNjcm9sbExlZnQtPSJ3aGVlbCI9PT1hLnR5cGU/LWEub3JpZ2luYWxFdmVudC5kZWx0YVg6YS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGFYfSk7aWYoMDxiLnMuaVJpZ2h0Q29sdW1ucyljKGIuZG9tLmdyaWQucmlnaHQubGluZXIpLm9uKCJtb3VzZW92ZXIuRFRGQyB0b3VjaHN0YXJ0LkRURkMiLGZ1bmN0aW9uKCl7aHx8KGQ9InJpZ2h0Iil9KS5vbigic2Nyb2xsLkRURkMiLGZ1bmN0aW9uKGEpeyFkJiZhLm9yaWdpbmFsRXZlbnQmJgooZD0icmlnaHQiKTsicmlnaHQiPT09ZCYmKGIuZG9tLnNjcm9sbGVyLnNjcm9sbFRvcD1iLmRvbS5ncmlkLnJpZ2h0LmxpbmVyLnNjcm9sbFRvcCwwPGIucy5pTGVmdENvbHVtbnMmJihiLmRvbS5ncmlkLmxlZnQubGluZXIuc2Nyb2xsVG9wPWIuZG9tLmdyaWQucmlnaHQubGluZXIuc2Nyb2xsVG9wKSl9KS5vbihmLGZ1bmN0aW9uKGEpe2IuZG9tLnNjcm9sbGVyLnNjcm9sbExlZnQtPSJ3aGVlbCI9PT1hLnR5cGU/LWEub3JpZ2luYWxFdmVudC5kZWx0YVg6YS5vcmlnaW5hbEV2ZW50LndoZWVsRGVsdGFYfSk7YyhnKS5vbigicmVzaXplLkRURkMiLGZ1bmN0aW9uKCl7Yi5fZm5HcmlkTGF5b3V0LmNhbGwoYil9KTt2YXIgbT0hMCxrPWModGhpcy5zLmR0Lm5UYWJsZSk7ay5vbigiZHJhdy5kdC5EVEZDIixmdW5jdGlvbigpe2IuX2ZuQ29sQ2FsYygpO2IuX2ZuRHJhdy5jYWxsKGIsbSk7bT0hMX0pLm9uKCJjb2x1bW4tc2l6aW5nLmR0LkRURkMiLGZ1bmN0aW9uKCl7Yi5fZm5Db2xDYWxjKCk7CmIuX2ZuR3JpZExheW91dChiKX0pLm9uKCJjb2x1bW4tdmlzaWJpbGl0eS5kdC5EVEZDIixmdW5jdGlvbihhLGMsZCxmLGgpe2lmKGg9PT1xfHxoKWIuX2ZuQ29sQ2FsYygpLGIuX2ZuR3JpZExheW91dChiKSxiLl9mbkRyYXcoITApfSkub24oInNlbGVjdC5kdC5EVEZDIGRlc2VsZWN0LmR0LkRURkMiLGZ1bmN0aW9uKGEsYyxkLGYpeyJkdCI9PT1hLm5hbWVzcGFjZSYmYi5fZm5EcmF3KCExKX0pLm9uKCJkZXN0cm95LmR0LkRURkMiLGZ1bmN0aW9uKCl7ay5vZmYoIi5EVEZDIik7YyhiLmRvbS5zY3JvbGxlcikub2ZmKCIuRFRGQyIpO2MoZykub2ZmKCIuRFRGQyIpO2MoYi5zLmR0Lm5UYWJsZVdyYXBwZXIpLm9mZigiLkRURkMiKTtjKGIuZG9tLmdyaWQubGVmdC5saW5lcikub2ZmKCIuRFRGQyAiK2YpO2MoYi5kb20uZ3JpZC5sZWZ0LndyYXBwZXIpLnJlbW92ZSgpO2MoYi5kb20uZ3JpZC5yaWdodC5saW5lcikub2ZmKCIuRFRGQyAiK2YpO2MoYi5kb20uZ3JpZC5yaWdodC53cmFwcGVyKS5yZW1vdmUoKX0pOwp0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLnMuZHQub0luc3RhbmNlLmZuRHJhdyghMSl9fSxfZm5Db2xDYWxjOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxiPTAsZD0wO3RoaXMucy5haUlubmVyV2lkdGhzPVtdO3RoaXMucy5haU91dGVyV2lkdGhzPVtdO2MuZWFjaCh0aGlzLnMuZHQuYW9Db2x1bW5zLGZ1bmN0aW9uKGgsZil7Zj1jKGYublRoKTtpZihmLmZpbHRlcigiOnZpc2libGUiKS5sZW5ndGgpe3ZhciBtPWYub3V0ZXJXaWR0aCgpO2lmKDA9PT1hLnMuYWlPdXRlcldpZHRocy5sZW5ndGgpe3ZhciBrPWMoYS5zLmR0Lm5UYWJsZSkuY3NzKCJib3JkZXItbGVmdC13aWR0aCIpO20rPSJzdHJpbmciPT09dHlwZW9mIGsmJi0xPT09ay5pbmRleE9mKCJweCIpPzE6cGFyc2VJbnQoaywxMCl9YS5zLmFpT3V0ZXJXaWR0aHMubGVuZ3RoPT09YS5zLmR0LmFvQ29sdW1ucy5sZW5ndGgtMSYmKGs9YyhhLnMuZHQublRhYmxlKS5jc3MoImJvcmRlci1yaWdodC13aWR0aCIpLG0rPSJzdHJpbmciPT09CnR5cGVvZiBrJiYtMT09PWsuaW5kZXhPZigicHgiKT8xOnBhcnNlSW50KGssMTApKTthLnMuYWlPdXRlcldpZHRocy5wdXNoKG0pO2Eucy5haUlubmVyV2lkdGhzLnB1c2goZi53aWR0aCgpKTtoPGEucy5pTGVmdENvbHVtbnMmJihiKz1tKTthLnMuaVRhYmxlQ29sdW1ucy1hLnMuaVJpZ2h0Q29sdW1uczw9aCYmKGQrPW0pfWVsc2UgYS5zLmFpSW5uZXJXaWR0aHMucHVzaCgwKSxhLnMuYWlPdXRlcldpZHRocy5wdXNoKDApfSk7dGhpcy5zLmlMZWZ0V2lkdGg9Yjt0aGlzLnMuaVJpZ2h0V2lkdGg9ZH0sX2ZuR3JpZFNldHVwOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5fZm5EVE92ZXJmbG93KCk7dGhpcy5kb20uYm9keT10aGlzLnMuZHQublRhYmxlO3RoaXMuZG9tLmhlYWRlcj10aGlzLnMuZHQublRIZWFkLnBhcmVudE5vZGU7dGhpcy5kb20uaGVhZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3ZhciBiPWMoJzxkaXYgY2xhc3M9IkRURkNfU2Nyb2xsV3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyBjbGVhcjpib3RoOyI+PGRpdiBjbGFzcz0iRFRGQ19MZWZ0V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9IkRURkNfTGVmdEhlYWRXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IG92ZXJmbG93OmhpZGRlbjsiPjwvZGl2PjxkaXYgY2xhc3M9IkRURkNfTGVmdEJvZHlXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47Ij48ZGl2IGNsYXNzPSJEVEZDX0xlZnRCb2R5TGluZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsgb3ZlcmZsb3cteTpzY3JvbGw7Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX0xlZnRGb290V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgbGVmdDowOyBvdmVyZmxvdzpoaWRkZW47Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0V3JhcHBlciIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0SGVhZFdyYXBwZXIiIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IGxlZnQ6MDsiPjxkaXYgY2xhc3M9IkRURkNfUmlnaHRIZWFkQmxvY2tlciBEVEZDX0Jsb2NrZXIiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGJvdHRvbTowOyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEJvZHlXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47Ij48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0Qm9keUxpbmVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7IG92ZXJmbG93LXk6c2Nyb2xsOyI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iRFRGQ19SaWdodEZvb3RXcmFwcGVyIiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyBsZWZ0OjA7Ij48ZGl2IGNsYXNzPSJEVEZDX1JpZ2h0Rm9vdEJsb2NrZXIgRFRGQ19CbG9ja2VyIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBib3R0b206MDsiPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PicpWzBdLApkPWIuY2hpbGROb2Rlc1swXSxoPWIuY2hpbGROb2Rlc1sxXTt0aGlzLmRvbS5ncmlkLmR0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGIsdGhpcy5kb20uZ3JpZC5kdCk7Yi5hcHBlbmRDaGlsZCh0aGlzLmRvbS5ncmlkLmR0KTt0aGlzLmRvbS5ncmlkLndyYXBwZXI9YjswPHRoaXMucy5pTGVmdENvbHVtbnMmJih0aGlzLmRvbS5ncmlkLmxlZnQud3JhcHBlcj1kLHRoaXMuZG9tLmdyaWQubGVmdC5oZWFkPWQuY2hpbGROb2Rlc1swXSx0aGlzLmRvbS5ncmlkLmxlZnQuYm9keT1kLmNoaWxkTm9kZXNbMV0sdGhpcy5kb20uZ3JpZC5sZWZ0LmxpbmVyPWMoImRpdi5EVEZDX0xlZnRCb2R5TGluZXIiLGIpWzBdLGIuYXBwZW5kQ2hpbGQoZCkpO2lmKDA8dGhpcy5zLmlSaWdodENvbHVtbnMpe3RoaXMuZG9tLmdyaWQucmlnaHQud3JhcHBlcj1oO3RoaXMuZG9tLmdyaWQucmlnaHQuaGVhZD1oLmNoaWxkTm9kZXNbMF07dGhpcy5kb20uZ3JpZC5yaWdodC5ib2R5PWguY2hpbGROb2Rlc1sxXTsKdGhpcy5kb20uZ3JpZC5yaWdodC5saW5lcj1jKCJkaXYuRFRGQ19SaWdodEJvZHlMaW5lciIsYilbMF07aC5zdHlsZS5yaWdodD1hLmJhcisicHgiO3ZhciBmPWMoImRpdi5EVEZDX1JpZ2h0SGVhZEJsb2NrZXIiLGIpWzBdO2Yuc3R5bGUud2lkdGg9YS5iYXIrInB4IjtmLnN0eWxlLnJpZ2h0PS1hLmJhcisicHgiO3RoaXMuZG9tLmdyaWQucmlnaHQuaGVhZEJsb2NrPWY7Zj1jKCJkaXYuRFRGQ19SaWdodEZvb3RCbG9ja2VyIixiKVswXTtmLnN0eWxlLndpZHRoPWEuYmFyKyJweCI7Zi5zdHlsZS5yaWdodD0tYS5iYXIrInB4Ijt0aGlzLmRvbS5ncmlkLnJpZ2h0LmZvb3RCbG9jaz1mO2IuYXBwZW5kQ2hpbGQoaCl9dGhpcy5zLmR0Lm5URm9vdCYmKHRoaXMuZG9tLmZvb3Rlcj10aGlzLnMuZHQublRGb290LnBhcmVudE5vZGUsMDx0aGlzLnMuaUxlZnRDb2x1bW5zJiYodGhpcy5kb20uZ3JpZC5sZWZ0LmZvb3Q9ZC5jaGlsZE5vZGVzWzJdKSwwPHRoaXMucy5pUmlnaHRDb2x1bW5zJiYodGhpcy5kb20uZ3JpZC5yaWdodC5mb290PQpoLmNoaWxkTm9kZXNbMl0pKTt0aGlzLnMucnRsJiZjKCJkaXYuRFRGQ19SaWdodEhlYWRCbG9ja2VyIixiKS5jc3Moe2xlZnQ6LWEuYmFyKyJweCIscmlnaHQ6IiJ9KX0sX2ZuR3JpZExheW91dDpmdW5jdGlvbigpe3ZhciBhPXRoaXMsYj10aGlzLmRvbS5ncmlkO2MoYi53cmFwcGVyKS53aWR0aCgpO3ZhciBkPXRoaXMucy5kdC5uVGFibGUucGFyZW50Tm9kZS5vZmZzZXRIZWlnaHQsaD10aGlzLnMuZHQublRhYmxlLnBhcmVudE5vZGUucGFyZW50Tm9kZS5vZmZzZXRIZWlnaHQsZj10aGlzLl9mbkRUT3ZlcmZsb3coKSxtPXRoaXMucy5pTGVmdFdpZHRoLGs9dGhpcy5zLmlSaWdodFdpZHRoLHg9InJ0bCI9PT1jKHRoaXMuZG9tLmJvZHkpLmNzcygiZGlyZWN0aW9uIiksdz1mdW5jdGlvbihiLGQpe2YuYmFyP2EuX2ZpcmVmb3hTY3JvbGxFcnJvcigpPzM0PGMoYikuaGVpZ2h0KCkmJihiLnN0eWxlLndpZHRoPWQrZi5iYXIrInB4Iik6Yi5zdHlsZS53aWR0aD1kK2YuYmFyKyJweCI6KGIuc3R5bGUud2lkdGg9CmQrMjArInB4IixiLnN0eWxlLnBhZGRpbmdSaWdodD0iMjBweCIsYi5zdHlsZS5ib3hTaXppbmc9ImJvcmRlci1ib3giKX07Zi54JiYoZC09Zi5iYXIpO2Iud3JhcHBlci5zdHlsZS5oZWlnaHQ9aCsicHgiOzA8dGhpcy5zLmlMZWZ0Q29sdW1ucyYmKGg9Yi5sZWZ0LndyYXBwZXIsaC5zdHlsZS53aWR0aD1tKyJweCIsaC5zdHlsZS5oZWlnaHQ9IjFweCIseD8oaC5zdHlsZS5sZWZ0PSIiLGguc3R5bGUucmlnaHQ9MCk6KGguc3R5bGUubGVmdD0wLGguc3R5bGUucmlnaHQ9IiIpLGIubGVmdC5ib2R5LnN0eWxlLmhlaWdodD1kKyJweCIsYi5sZWZ0LmZvb3QmJihiLmxlZnQuZm9vdC5zdHlsZS50b3A9KGYueD9mLmJhcjowKSsicHgiKSx3KGIubGVmdC5saW5lcixtKSxiLmxlZnQubGluZXIuc3R5bGUuaGVpZ2h0PWQrInB4IixiLmxlZnQubGluZXIuc3R5bGUubWF4SGVpZ2h0PWQrInB4Iik7MDx0aGlzLnMuaVJpZ2h0Q29sdW1ucyYmKGg9Yi5yaWdodC53cmFwcGVyLGguc3R5bGUud2lkdGg9CmsrInB4IixoLnN0eWxlLmhlaWdodD0iMXB4Iix0aGlzLnMucnRsPyhoLnN0eWxlLmxlZnQ9Zi55P2YuYmFyKyJweCI6MCxoLnN0eWxlLnJpZ2h0PSIiKTooaC5zdHlsZS5sZWZ0PSIiLGguc3R5bGUucmlnaHQ9Zi55P2YuYmFyKyJweCI6MCksYi5yaWdodC5ib2R5LnN0eWxlLmhlaWdodD1kKyJweCIsYi5yaWdodC5mb290JiYoYi5yaWdodC5mb290LnN0eWxlLnRvcD0oZi54P2YuYmFyOjApKyJweCIpLHcoYi5yaWdodC5saW5lcixrKSxiLnJpZ2h0LmxpbmVyLnN0eWxlLmhlaWdodD1kKyJweCIsYi5yaWdodC5saW5lci5zdHlsZS5tYXhIZWlnaHQ9ZCsicHgiLGIucmlnaHQuaGVhZEJsb2NrLnN0eWxlLmRpc3BsYXk9Zi55PyJibG9jayI6Im5vbmUiLGIucmlnaHQuZm9vdEJsb2NrLnN0eWxlLmRpc3BsYXk9Zi55PyJibG9jayI6Im5vbmUiKX0sX2ZuRFRPdmVyZmxvdzpmdW5jdGlvbigpe3ZhciBhPXRoaXMucy5kdC5uVGFibGUsYj1hLnBhcmVudE5vZGUsYz17eDohMSx5OiExLGJhcjp0aGlzLnMuZHQub1Njcm9sbC5pQmFyV2lkdGh9OwphLm9mZnNldFdpZHRoPmIuY2xpZW50V2lkdGgmJihjLng9ITApO2Eub2Zmc2V0SGVpZ2h0PmIuY2xpZW50SGVpZ2h0JiYoYy55PSEwKTtyZXR1cm4gY30sX2ZuRHJhdzpmdW5jdGlvbihhKXt0aGlzLl9mbkdyaWRMYXlvdXQoKTt0aGlzLl9mbkNsb25lTGVmdChhKTt0aGlzLl9mbkNsb25lUmlnaHQoYSk7bnVsbCE9PXRoaXMucy5mbkRyYXdDYWxsYmFjayYmdGhpcy5zLmZuRHJhd0NhbGxiYWNrLmNhbGwodGhpcyx0aGlzLmRvbS5jbG9uZS5sZWZ0LHRoaXMuZG9tLmNsb25lLnJpZ2h0KTtjKHRoaXMpLnRyaWdnZXIoImRyYXcuZHRmYyIse2xlZnRDbG9uZTp0aGlzLmRvbS5jbG9uZS5sZWZ0LHJpZ2h0Q2xvbmU6dGhpcy5kb20uY2xvbmUucmlnaHR9KX0sX2ZuQ2xvbmVSaWdodDpmdW5jdGlvbihhKXtpZighKDA+PXRoaXMucy5pUmlnaHRDb2x1bW5zKSl7dmFyIGIsYz1bXTtmb3IoYj10aGlzLnMuaVRhYmxlQ29sdW1ucy10aGlzLnMuaVJpZ2h0Q29sdW1ucztiPHRoaXMucy5pVGFibGVDb2x1bW5zO2IrKyl0aGlzLnMuZHQuYW9Db2x1bW5zW2JdLmJWaXNpYmxlJiYKYy5wdXNoKGIpO3RoaXMuX2ZuQ2xvbmUodGhpcy5kb20uY2xvbmUucmlnaHQsdGhpcy5kb20uZ3JpZC5yaWdodCxjLGEpfX0sX2ZuQ2xvbmVMZWZ0OmZ1bmN0aW9uKGEpe2lmKCEoMD49dGhpcy5zLmlMZWZ0Q29sdW1ucykpe3ZhciBiLGM9W107Zm9yKGI9MDtiPHRoaXMucy5pTGVmdENvbHVtbnM7YisrKXRoaXMucy5kdC5hb0NvbHVtbnNbYl0uYlZpc2libGUmJmMucHVzaChiKTt0aGlzLl9mbkNsb25lKHRoaXMuZG9tLmNsb25lLmxlZnQsdGhpcy5kb20uZ3JpZC5sZWZ0LGMsYSl9fSxfZm5Db3B5TGF5b3V0OmZ1bmN0aW9uKGEsYixkKXtmb3IodmFyIGg9W10sZj1bXSxtPVtdLGs9MCx4PWEubGVuZ3RoO2s8eDtrKyspe3ZhciB3PVtdO3cublRyPWMoYVtrXS5uVHIpLmNsb25lKGQsITEpWzBdO2Zvcih2YXIgZT0wLG49dGhpcy5zLmlUYWJsZUNvbHVtbnM7ZTxuO2UrKylpZigtMSE9PWMuaW5BcnJheShlLGIpKXt2YXIgZz1jLmluQXJyYXkoYVtrXVtlXS5jZWxsLG0pOy0xPT09Zz8oZz0KYyhhW2tdW2VdLmNlbGwpLmNsb25lKGQsITEpWzBdLGYucHVzaChnKSxtLnB1c2goYVtrXVtlXS5jZWxsKSx3LnB1c2goe2NlbGw6Zyx1bmlxdWU6YVtrXVtlXS51bmlxdWV9KSk6dy5wdXNoKHtjZWxsOmZbZ10sdW5pcXVlOmFba11bZV0udW5pcXVlfSl9aC5wdXNoKHcpfXJldHVybiBofSxfZm5DbG9uZTpmdW5jdGlvbihhLGIsZCxoKXt2YXIgZj10aGlzLG0sayxlPXRoaXMucy5kdDtpZihoKXtjKGEuaGVhZGVyKS5yZW1vdmUoKTthLmhlYWRlcj1jKHRoaXMuZG9tLmhlYWRlcikuY2xvbmUoITAsITEpWzBdO2EuaGVhZGVyLmNsYXNzTmFtZSs9IiBEVEZDX0Nsb25lZCI7YS5oZWFkZXIuc3R5bGUud2lkdGg9IjEwMCUiO2IuaGVhZC5hcHBlbmRDaGlsZChhLmhlYWRlcik7dmFyIGc9dGhpcy5fZm5Db3B5TGF5b3V0KGUuYW9IZWFkZXIsZCwhMCk7dmFyIGw9YygiPnRoZWFkIixhLmhlYWRlcik7bC5lbXB0eSgpO3ZhciBuPTA7Zm9yKG09Zy5sZW5ndGg7bjxtO24rKylsWzBdLmFwcGVuZENoaWxkKGdbbl0ublRyKTsKZS5vQXBpLl9mbkRyYXdIZWFkKGUsZywhMCl9ZWxzZXtnPXRoaXMuX2ZuQ29weUxheW91dChlLmFvSGVhZGVyLGQsITEpO3ZhciBwPVtdO2Uub0FwaS5fZm5EZXRlY3RIZWFkZXIocCxjKCI+dGhlYWQiLGEuaGVhZGVyKVswXSk7bj0wO2ZvcihtPWcubGVuZ3RoO248bTtuKyspe3ZhciB0PTA7Zm9yKGw9Z1tuXS5sZW5ndGg7dDxsO3QrKylwW25dW3RdLmNlbGwuY2xhc3NOYW1lPWdbbl1bdF0uY2VsbC5jbGFzc05hbWUsYygic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIscFtuXVt0XS5jZWxsKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5jbGFzc05hbWU9Yygic3Bhbi5EYXRhVGFibGVzX3NvcnRfaWNvbiIsZ1tuXVt0XS5jZWxsKVswXS5jbGFzc05hbWV9KX19dGhpcy5fZm5FcXVhbGlzZUhlaWdodHMoInRoZWFkIix0aGlzLmRvbS5oZWFkZXIsYS5oZWFkZXIpOyJhdXRvIj09dGhpcy5zLnNIZWlnaHRNYXRjaCYmYygiPnRib2R5PnRyIixmLmRvbS5ib2R5KS5jc3MoImhlaWdodCIsImF1dG8iKTsKbnVsbCE9PWEuYm9keSYmKGMoYS5ib2R5KS5yZW1vdmUoKSxhLmJvZHk9bnVsbCk7YS5ib2R5PWModGhpcy5kb20uYm9keSkuY2xvbmUoITApWzBdO2EuYm9keS5jbGFzc05hbWUrPSIgRFRGQ19DbG9uZWQiO2EuYm9keS5zdHlsZS5wYWRkaW5nQm90dG9tPWUub1Njcm9sbC5pQmFyV2lkdGgrInB4IjthLmJvZHkuc3R5bGUubWFyZ2luQm90dG9tPTIqZS5vU2Nyb2xsLmlCYXJXaWR0aCsicHgiO251bGwhPT1hLmJvZHkuZ2V0QXR0cmlidXRlKCJpZCIpJiZhLmJvZHkucmVtb3ZlQXR0cmlidXRlKCJpZCIpO2MoIj50aGVhZD50ciIsYS5ib2R5KS5lbXB0eSgpO2MoIj50Zm9vdCIsYS5ib2R5KS5yZW1vdmUoKTt2YXIgdT1jKCJ0Ym9keSIsYS5ib2R5KVswXTtjKHUpLmVtcHR5KCk7aWYoMDxlLmFpRGlzcGxheS5sZW5ndGgpe209YygiPnRoZWFkPnRyIixhLmJvZHkpWzBdO2ZvcihrPTA7azxkLmxlbmd0aDtrKyspe3ZhciB2PWRba107dmFyIHI9YyhlLmFvQ29sdW1uc1t2XS5uVGgpLmNsb25lKCEwKVswXTsKci5pbm5lckhUTUw9IiI7bD1yLnN0eWxlO2wucGFkZGluZ1RvcD0iMCI7bC5wYWRkaW5nQm90dG9tPSIwIjtsLmJvcmRlclRvcFdpZHRoPSIwIjtsLmJvcmRlckJvdHRvbVdpZHRoPSIwIjtsLmhlaWdodD0wO2wud2lkdGg9Zi5zLmFpSW5uZXJXaWR0aHNbdl0rInB4IjttLmFwcGVuZENoaWxkKHIpfWMoIj50Ym9keT50ciIsZi5kb20uYm9keSkuZWFjaChmdW5jdGlvbihhKXthPSExPT09Zi5zLmR0Lm9GZWF0dXJlcy5iU2VydmVyU2lkZT9mLnMuZHQuYWlEaXNwbGF5W2Yucy5kdC5faURpc3BsYXlTdGFydCthXTphO3ZhciBiPWYucy5kdC5hb0RhdGFbYV0uYW5DZWxsc3x8Yyh0aGlzKS5jaGlsZHJlbigidGQsIHRoIiksZT10aGlzLmNsb25lTm9kZSghMSk7ZS5yZW1vdmVBdHRyaWJ1dGUoImlkIik7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtcm93IixhKTtmb3Ioaz0wO2s8ZC5sZW5ndGg7aysrKXY9ZFtrXSwwPGIubGVuZ3RoJiYocj1jKGJbdl0pLmNsb25lKCEwLCEwKVswXSxyLnJlbW92ZUF0dHJpYnV0ZSgiaWQiKSwKci5zZXRBdHRyaWJ1dGUoImRhdGEtZHQtcm93IixhKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS1kdC1jb2x1bW4iLHYpLGUuYXBwZW5kQ2hpbGQocikpO3UuYXBwZW5kQ2hpbGQoZSl9KX1lbHNlIGMoIj50Ym9keT50ciIsZi5kb20uYm9keSkuZWFjaChmdW5jdGlvbihhKXtyPXRoaXMuY2xvbmVOb2RlKCEwKTtyLmNsYXNzTmFtZSs9IiBEVEZDX05vRGF0YSI7YygidGQiLHIpLmh0bWwoIiIpO3UuYXBwZW5kQ2hpbGQocil9KTthLmJvZHkuc3R5bGUud2lkdGg9IjEwMCUiO2EuYm9keS5zdHlsZS5tYXJnaW49IjAiO2EuYm9keS5zdHlsZS5wYWRkaW5nPSIwIjtlLm9TY3JvbGxlciE9PXEmJihtPWUub1Njcm9sbGVyLmRvbS5mb3JjZSxiLmZvcmNlcj9iLmZvcmNlci5zdHlsZS5oZWlnaHQ9bS5zdHlsZS5oZWlnaHQ6KGIuZm9yY2VyPW0uY2xvbmVOb2RlKCEwKSxiLmxpbmVyLmFwcGVuZENoaWxkKGIuZm9yY2VyKSkpO2IubGluZXIuYXBwZW5kQ2hpbGQoYS5ib2R5KTt0aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cygidGJvZHkiLApmLmRvbS5ib2R5LGEuYm9keSk7aWYobnVsbCE9PWUublRGb290KXtpZihoKXtudWxsIT09YS5mb290ZXImJmEuZm9vdGVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYS5mb290ZXIpO2EuZm9vdGVyPWModGhpcy5kb20uZm9vdGVyKS5jbG9uZSghMCwhMClbMF07YS5mb290ZXIuY2xhc3NOYW1lKz0iIERURkNfQ2xvbmVkIjthLmZvb3Rlci5zdHlsZS53aWR0aD0iMTAwJSI7Yi5mb290LmFwcGVuZENoaWxkKGEuZm9vdGVyKTtnPXRoaXMuX2ZuQ29weUxheW91dChlLmFvRm9vdGVyLGQsITApO2I9YygiPnRmb290IixhLmZvb3Rlcik7Yi5lbXB0eSgpO249MDtmb3IobT1nLmxlbmd0aDtuPG07bisrKWJbMF0uYXBwZW5kQ2hpbGQoZ1tuXS5uVHIpO2Uub0FwaS5fZm5EcmF3SGVhZChlLGcsITApfWVsc2UgZm9yKGc9dGhpcy5fZm5Db3B5TGF5b3V0KGUuYW9Gb290ZXIsZCwhMSksYj1bXSxlLm9BcGkuX2ZuRGV0ZWN0SGVhZGVyKGIsYygiPnRmb290IixhLmZvb3RlcilbMF0pLG49MCxtPWcubGVuZ3RoO248Cm07bisrKWZvcih0PTAsbD1nW25dLmxlbmd0aDt0PGw7dCsrKWJbbl1bdF0uY2VsbC5jbGFzc05hbWU9Z1tuXVt0XS5jZWxsLmNsYXNzTmFtZTt0aGlzLl9mbkVxdWFsaXNlSGVpZ2h0cygidGZvb3QiLHRoaXMuZG9tLmZvb3RlcixhLmZvb3Rlcil9Yj1lLm9BcGkuX2ZuR2V0VW5pcXVlVGhzKGUsYygiPnRoZWFkIixhLmhlYWRlcilbMF0pO2MoYikuZWFjaChmdW5jdGlvbihhKXt2PWRbYV07dGhpcy5zdHlsZS53aWR0aD1mLnMuYWlJbm5lcldpZHRoc1t2XSsicHgifSk7bnVsbCE9PWYucy5kdC5uVEZvb3QmJihiPWUub0FwaS5fZm5HZXRVbmlxdWVUaHMoZSxjKCI+dGZvb3QiLGEuZm9vdGVyKVswXSksYyhiKS5lYWNoKGZ1bmN0aW9uKGEpe3Y9ZFthXTt0aGlzLnN0eWxlLndpZHRoPWYucy5haUlubmVyV2lkdGhzW3ZdKyJweCJ9KSl9LF9mbkdldFRyTm9kZXM6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiPVtdLGM9MCxlPWEuY2hpbGROb2Rlcy5sZW5ndGg7YzxlO2MrKykiVFIiPT1hLmNoaWxkTm9kZXNbY10ubm9kZU5hbWUudG9VcHBlckNhc2UoKSYmCmIucHVzaChhLmNoaWxkTm9kZXNbY10pO3JldHVybiBifSxfZm5FcXVhbGlzZUhlaWdodHM6ZnVuY3Rpb24oYSxiLGQpe2lmKCJub25lIiE9dGhpcy5zLnNIZWlnaHRNYXRjaHx8InRoZWFkIj09PWF8fCJ0Zm9vdCI9PT1hKXt2YXIgZT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKGEpWzBdO2Q9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZShhKVswXTthPWMoIj4iK2ErIj50cjplcSgwKSIsYikuY2hpbGRyZW4oIjpmaXJzdCIpO2Eub3V0ZXJIZWlnaHQoKTthLmhlaWdodCgpO2U9dGhpcy5fZm5HZXRUck5vZGVzKGUpO2I9dGhpcy5fZm5HZXRUck5vZGVzKGQpO3ZhciBmPVtdO2Q9MDtmb3IoYT1iLmxlbmd0aDtkPGE7ZCsrKXt2YXIgZz1lW2RdLm9mZnNldEhlaWdodDt2YXIgaz1iW2RdLm9mZnNldEhlaWdodDtnPWs+Zz9rOmc7InNlbWlhdXRvIj09dGhpcy5zLnNIZWlnaHRNYXRjaCYmKGVbZF0uX0RUVENfaUhlaWdodD1nKTtmLnB1c2goZyl9ZD0wO2ZvcihhPWIubGVuZ3RoO2Q8YTtkKyspYltkXS5zdHlsZS5oZWlnaHQ9CmZbZF0rInB4IixlW2RdLnN0eWxlLmhlaWdodD1mW2RdKyJweCJ9fSxfZmlyZWZveFNjcm9sbEVycm9yOmZ1bmN0aW9uKCl7aWYodT09PXEpe3ZhciBhPWMoIjxkaXYvPiIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsaGVpZ2h0OjEwLHdpZHRoOjUwLG92ZXJmbG93OiJzY3JvbGwifSkuYXBwZW5kVG8oImJvZHkiKTt1PWFbMF0uY2xpZW50V2lkdGg9PT1hWzBdLm9mZnNldFdpZHRoJiYwIT09dGhpcy5fZm5EVE92ZXJmbG93KCkuYmFyO2EucmVtb3ZlKCl9cmV0dXJuIHV9fSk7cC5kZWZhdWx0cz17aUxlZnRDb2x1bW5zOjEsaVJpZ2h0Q29sdW1uczowLGZuRHJhd0NhbGxiYWNrOm51bGwsc0hlaWdodE1hdGNoOiJzZW1pYXV0byJ9O3AudmVyc2lvbj0iMy4zLjAiO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS51cGRhdGUoKSIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pdGVyYXRvcigidGFibGUiLApmdW5jdGlvbihhKXthLl9vRml4ZWRDb2x1bW5zJiZhLl9vRml4ZWRDb2x1bW5zLmZuVXBkYXRlKCl9KX0pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS5yZWxheW91dCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJ0YWJsZSIsZnVuY3Rpb24oYSl7YS5fb0ZpeGVkQ29sdW1ucyYmYS5fb0ZpeGVkQ29sdW1ucy5mblJlZHJhd0xheW91dCgpfSl9KTtsLkFwaS5yZWdpc3Rlcigicm93cygpLnJlY2FsY0hlaWdodCgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJyb3ciLGZ1bmN0aW9uKGEsYil7YS5fb0ZpeGVkQ29sdW1ucyYmYS5fb0ZpeGVkQ29sdW1ucy5mblJlY2FsY3VsYXRlSGVpZ2h0KHRoaXMucm93KGIpLm5vZGUoKSl9KX0pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS5yb3dJbmRleCgpIixmdW5jdGlvbihhKXthPWMoYSk7cmV0dXJuIGEucGFyZW50cygiLkRURkNfQ2xvbmVkIikubGVuZ3RoP3RoaXMucm93cyh7cGFnZToiY3VycmVudCJ9KS5pbmRleGVzKClbYS5pbmRleCgpXToKdGhpcy5yb3coYSkuaW5kZXgoKX0pO2wuQXBpLnJlZ2lzdGVyKCJmaXhlZENvbHVtbnMoKS5jZWxsSW5kZXgoKSIsZnVuY3Rpb24oYSl7YT1jKGEpO2lmKGEucGFyZW50cygiLkRURkNfQ2xvbmVkIikubGVuZ3RoKXt2YXIgYj1hLnBhcmVudCgpLmluZGV4KCk7Yj10aGlzLnJvd3Moe3BhZ2U6ImN1cnJlbnQifSkuaW5kZXhlcygpW2JdO2E9YS5wYXJlbnRzKCIuRFRGQ19MZWZ0V3JhcHBlciIpLmxlbmd0aD9hLmluZGV4KCk6dGhpcy5jb2x1bW5zKCkuZmxhdHRlbigpLmxlbmd0aC10aGlzLmNvbnRleHRbMF0uX29GaXhlZENvbHVtbnMucy5pUmlnaHRDb2x1bW5zK2EuaW5kZXgoKTtyZXR1cm57cm93OmIsY29sdW1uOnRoaXMuY29sdW1uLmluZGV4KCJ0b0RhdGEiLGEpLGNvbHVtblZpc2libGU6YX19cmV0dXJuIHRoaXMuY2VsbChhKS5pbmRleCgpfSk7bC5BcGkucmVnaXN0ZXJQbHVyYWwoImNlbGxzKCkuZml4ZWROb2RlcygpIiwiY2VsbCgpLmZpeGVkTm9kZSgpIixmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZXJhdG9yKCJjZWxsIiwKZnVuY3Rpb24oYSxiLGMpe3JldHVybiBhLl9vRml4ZWRDb2x1bW5zP2EuX29GaXhlZENvbHVtbnMuZm5Ub0ZpeGVkTm9kZShiLGMpOnRoaXMubm9kZSgpfSwxKX0pO2MoZSkub24oImluaXQuZHQuZml4ZWRDb2x1bW5zIixmdW5jdGlvbihhLGIpe2lmKCJkdCI9PT1hLm5hbWVzcGFjZSl7YT1iLm9Jbml0LmZpeGVkQ29sdW1uczt2YXIgZD1sLmRlZmF1bHRzLmZpeGVkQ29sdW1ucztpZihhfHxkKWQ9Yy5leHRlbmQoe30sYSxkKSwhMSE9PWEmJm5ldyBwKGIsZCl9fSk7Yy5mbi5kYXRhVGFibGUuRml4ZWRDb2x1bW5zPXA7cmV0dXJuIGMuZm4uRGF0YVRhYmxlLkZpeGVkQ29sdW1ucz1wfSk7Cg=="></script>
|
||
<link href="data:text/css,%0A%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20%2D30px%3B%0Amargin%2Dright%3A%20%2D30px%3B%0Awhite%2Dspace%3A%20normal%3B%0A%7D%0A%0Abody%20%3E%20%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0A%7D%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%2Dright%3A%2012px%3B%0Avertical%2Dalign%3A%20top%3B%0A%7D%0A%40media%20only%20screen%20and%20%28max%2Dwidth%3A480px%29%20%7B%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20block%3B%0Apadding%2Dright%3A%20inherit%3B%0A%7D%0A%7D%0A" rel="stylesheet" />
|
||
<script src="data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1pfX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGEuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5jbGVhcigpLHRoaXMuc2V0R3JvdXAobnVsbCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LmNsZWFyKHRoaXMuX2lkKSx0aGlzLl9vbkNoYW5nZShlKSl9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LnVwZGF0ZSh0aGlzLl9pZCxlKSx0aGlzLl9vbkNoYW5nZSh0KSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vbihlLHQpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9lbWl0dGVyLm9mZihlLHQpfX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9maWx0ZXJTZXQmJnRoaXMuX2ZpbHRlclZhci5zZXQodGhpcy5fZmlsdGVyU2V0LnZhbHVlLHRoaXMuX21lcmdlRXh0cmFJbmZvKGUpKX19LHtrZXk6ImZpbHRlcmVkS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbHRlclNldD90aGlzLl9maWx0ZXJTZXQudmFsdWU6bnVsbH19XSksbn0oKX0seyIuL2V2ZW50cyI6MSwiLi9maWx0ZXJzZXQiOjMsIi4vZ3JvdXAiOjQsIi4vdXRpbCI6MTF9XSwzOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxhPWUoIi4vdXRpbCIpO2Z1bmN0aW9uIGwoZSx0KXtyZXR1cm4gZT09PXQ/MDplPHQ/LTE6dDxlPzE6dm9pZCAwfXZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMucmVzZXQoKX1yZXR1cm4gcihlLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVzPXt9LHRoaXMuX2tleXM9e30sdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9hY3RpdmVIYW5kbGVzPTB9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7bnVsbCE9PXQmJih0PXQuc2xpY2UoMCkpLnNvcnQobCk7dmFyIG49KDAsYS5kaWZmU29ydGVkTGlzdHMpKHRoaXMuX2hhbmRsZXNbZV0sdCkscj1uLmFkZGVkLGk9bi5yZW1vdmVkO3RoaXMuX2hhbmRsZXNbZV09dDtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKyl0aGlzLl9rZXlzW3Jbb11dPSh0aGlzLl9rZXlzW3Jbb11dfHwwKSsxO2Zvcih2YXIgdT0wO3U8aS5sZW5ndGg7dSsrKXRoaXMuX2tleXNbaVt1XV0tLTt0aGlzLl91cGRhdGVWYWx1ZSh0KX19LHtrZXk6Il91cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fYWxsS2V5cyx0PU9iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXMpLmxlbmd0aDtpZigwPT09dCl0aGlzLl92YWx1ZT1udWxsO2Vsc2V7dGhpcy5fdmFsdWU9W107Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3RoaXMuX2tleXNbZVtuXV09PT10JiZ0aGlzLl92YWx1ZS5wdXNoKGVbbl0pfX19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dGhpcy5faGFuZGxlc1tlXSl7dmFyIHQ9dGhpcy5faGFuZGxlc1tlXTt0fHwodD1bXSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5fa2V5c1t0W25dXS0tO2RlbGV0ZSB0aGlzLl9oYW5kbGVzW2VdLHRoaXMuX3VwZGF0ZVZhbHVlKCl9fX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6Il9hbGxLZXlzIixnZXQ6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Qua2V5cyh0aGlzLl9rZXlzKTtyZXR1cm4gZS5zb3J0KGwpLGV9fV0pLGV9KCk7bi5kZWZhdWx0PWl9LHsiLi91dGlsIjoxMX1dLDQ6W2Z1bmN0aW9uKGwsZSxzKXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtzLmRlZmF1bHQ9ZnVuY3Rpb24gZSh0KXt7aWYodCYmInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB1Lmhhc093blByb3BlcnR5KHQpfHwodVt0XT1uZXcgYSh0KSksdVt0XTtpZigib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnIodCkpJiZ0Ll92YXJzJiZ0LnZhcilyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpJiYxPT10Lmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB0WzBdKXJldHVybiBlKHRbMF0pO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBncm91cE5hbWUgYXJndW1lbnQiKX19O3ZhciB0LGk9bCgiLi92YXIiKSxvPSh0PWkpJiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fTtlLl9fY3Jvc3N0YWxrX2dyb3Vwcz1lLl9fY3Jvc3N0YWxrX2dyb3Vwc3x8e307dmFyIHU9ZS5fX2Nyb3NzdGFsa19ncm91cHM7dmFyIGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLHQpLHRoaXMubmFtZT1lLHRoaXMuX3ZhcnM9e319cmV0dXJuIG4odCxbe2tleToidmFyIix2YWx1ZTpmdW5jdGlvbihlKXtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB2YXIgbmFtZSIpO3JldHVybiB0aGlzLl92YXJzLmhhc093blByb3BlcnR5KGUpfHwodGhpcy5fdmFyc1tlXT1uZXcgby5kZWZhdWx0KHRoaXMsZSkpLHRoaXMuX3ZhcnNbZV19fSx7a2V5OiJoYXMiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhciBuYW1lIik7cmV0dXJuIHRoaXMuX3ZhcnMuaGFzT3duUHJvcGVydHkoZSl9fV0pLHR9KCl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi92YXIiOjEyfV0sNTpbZnVuY3Rpb24oZixlLGMpeyhmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0LG49ZigiLi9ncm91cCIpLHI9KHQ9bikmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9LGk9ZigiLi9zZWxlY3Rpb24iKSxvPWYoIi4vZmlsdGVyIiksdT1mKCIuL2lucHV0Iik7ZigiLi9pbnB1dF9zZWxlY3RpemUiKSxmKCIuL2lucHV0X2NoZWNrYm94Z3JvdXAiKSxmKCIuL2lucHV0X3NsaWRlciIpO3ZhciBhPSgwLHIuZGVmYXVsdCkoImRlZmF1bHQiKTtmdW5jdGlvbiBsKGUpe3JldHVybiBhLnZhcihlKX1lLlNoaW55JiZlLlNoaW55LmFkZEN1c3RvbU1lc3NhZ2VIYW5kbGVyKCJ1cGRhdGUtY2xpZW50LXZhbHVlIixmdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGUuZ3JvdXA/KDAsci5kZWZhdWx0KShlLmdyb3VwKS52YXIoZS5uYW1lKS5zZXQoZS52YWx1ZSk6bChlLm5hbWUpLnNldChlLnZhbHVlKX0pO3ZhciBzPXtncm91cDpyLmRlZmF1bHQsdmFyOmwsaGFzOmZ1bmN0aW9uKGUpe3JldHVybiBhLmhhcyhlKX0sU2VsZWN0aW9uSGFuZGxlOmkuU2VsZWN0aW9uSGFuZGxlLEZpbHRlckhhbmRsZTpvLkZpbHRlckhhbmRsZSxiaW5kOnUuYmluZH07Yy5kZWZhdWx0PXMsZS5jcm9zc3RhbGs9c30pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2ZpbHRlciI6MiwiLi9ncm91cCI6NCwiLi9pbnB1dCI6NiwiLi9pbnB1dF9jaGVja2JveGdyb3VwIjo3LCIuL2lucHV0X3NlbGVjdGl6ZSI6OCwiLi9pbnB1dF9zbGlkZXIiOjksIi4vc2VsZWN0aW9uIjoxMH1dLDY6W2Z1bmN0aW9uKGUsdCxhKXsoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe3JbZS5jbGFzc05hbWVdPWUsdC5kb2N1bWVudCYmImNvbXBsZXRlIiE9PXQuZG9jdW1lbnQucmVhZHlTdGF0ZT9vKGZ1bmN0aW9uKCl7bigpfSk6dC5kb2N1bWVudCYmc2V0VGltZW91dChuLDEwMCl9LGEuYmluZD1uO3ZhciBvPXQualF1ZXJ5LHI9e307ZnVuY3Rpb24gbigpe09iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG49cltlXTtvKCIuIituLmNsYXNzTmFtZSkubm90KCIuY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikuZWFjaChmdW5jdGlvbihlLHQpe2kobix0KX0pfSl9ZnVuY3Rpb24gaShlLHQpe3ZhciBuPW8odCkuZmluZCgic2NyaXB0W3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXVtkYXRhLWZvcj0nIit0LmlkLnJlcGxhY2UoLyhbISIjJCUmJygpKissLi86Ozw9Pj9AW1xcXF1eYHt8fX5dKS9nLCJcXCQxIikrIiddIikscj1KU09OLnBhcnNlKG5bMF0uaW5uZXJUZXh0KSxpPWUuZmFjdG9yeSh0LHIpO28odCkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIixpKSxvKHQpLmFkZENsYXNzKCJjcm9zc3RhbGstaW5wdXQtYm91bmQiKX1pZih0LlNoaW55KXt2YXIgZT1uZXcgdC5TaGlueS5JbnB1dEJpbmRpbmcsdT10LmpRdWVyeTt1LmV4dGVuZChlLHtmaW5kOmZ1bmN0aW9uKGUpe3JldHVybiB1KGUpLmZpbmQoIi5jcm9zc3RhbGstaW5wdXQiKX0saW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3UoZSkuaGFzQ2xhc3MoImNyb3NzdGFsay1pbnB1dC1ib3VuZCIpfHwobj1vKHQ9ZSksT2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihlKXtuLmhhc0NsYXNzKGUpJiYhbi5oYXNDbGFzcygiY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikmJmkocltlXSx0KX0pKX0sZ2V0SWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWR9LGdldFZhbHVlOmZ1bmN0aW9uKGUpe30sc2V0VmFsdWU6ZnVuY3Rpb24oZSx0KXt9LHJlY2VpdmVNZXNzYWdlOmZ1bmN0aW9uKGUsdCl7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSx0KXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnJlc3VtZSgpfSx1bnN1YnNjcmliZTpmdW5jdGlvbihlKXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnN1c3BlbmQoKX19KSx0LlNoaW55LmlucHV0QmluZGluZ3MucmVnaXN0ZXIoZSwiY3Jvc3N0YWxrLmlucHV0QmluZGluZyIpfX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDc6W2Z1bmN0aW9uKHIsZSx0KXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShyKCIuL2lucHV0IikpLG49cigiLi9maWx0ZXIiKTt2YXIgYT1lLmpRdWVyeTt0LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1jaGVja2JveGdyb3VwIixmYWN0b3J5OmZ1bmN0aW9uKGUscil7dmFyIGk9bmV3IG4uRmlsdGVySGFuZGxlKHIuZ3JvdXApLG89dm9pZCAwLHU9YShlKTtyZXR1cm4gdS5vbigiY2hhbmdlIiwiaW5wdXRbdHlwZT0nY2hlY2tib3gnXSIsZnVuY3Rpb24oKXt2YXIgZT11LmZpbmQoImlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCIpO2lmKDA9PT1lLmxlbmd0aClvPW51bGwsaS5jbGVhcigpO2Vsc2V7dmFyIHQ9e307ZS5lYWNoKGZ1bmN0aW9uKCl7ci5tYXBbdGhpcy52YWx1ZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgbj1PYmplY3Qua2V5cyh0KTtuLnNvcnQoKSxvPW4saS5zZXQobil9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXtpLmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe28mJmkuc2V0KG8pfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjZ9XSw4OltmdW5jdGlvbihyLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1uKHIoIi4vaW5wdXQiKSksbD1uKHIoIi4vdXRpbCIpKSxzPXIoIi4vZmlsdGVyIik7ZnVuY3Rpb24gbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9dmFyIGY9ZS5qUXVlcnk7dC5yZWdpc3Rlcih7Y2xhc3NOYW1lOiJjcm9zc3RhbGstaW5wdXQtc2VsZWN0IixmYWN0b3J5OmZ1bmN0aW9uKGUsbil7dmFyIHQ9bC5kYXRhZnJhbWVUb0QzKG4uaXRlbXMpLHI9e29wdGlvbnM6W3t2YWx1ZToiIixsYWJlbDoiKEFsbCkifV0uY29uY2F0KHQpLHZhbHVlRmllbGQ6InZhbHVlIixsYWJlbEZpZWxkOiJsYWJlbCIsc2VhcmNoRmllbGQ6ImxhYmVsIn0saT1mKGUpLmZpbmQoInNlbGVjdCIpWzBdLG89ZihpKS5zZWxlY3RpemUocilbMF0uc2VsZWN0aXplLHU9bmV3IHMuRmlsdGVySGFuZGxlKG4uZ3JvdXApLGE9dm9pZCAwO3JldHVybiBvLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoMD09PW8uaXRlbXMubGVuZ3RoKWE9bnVsbCx1LmNsZWFyKCk7ZWxzZXt2YXIgdD17fTtvLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oZSl7bi5tYXBbZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgZT1PYmplY3Qua2V5cyh0KTtlLnNvcnQoKSxhPWUsdS5zZXQoZSl9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXt1LmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe2EmJnUuc2V0KGEpfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjYsIi4vdXRpbCI6MTF9XSw5OltmdW5jdGlvbihuLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxyPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgdSxhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0odT1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2godS52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7cj0hMCk7fWNhdGNoKGUpe2k9ITAsbz1lfWZpbmFsbHl7dHJ5eyFyJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSx0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShuKCIuL2lucHV0IikpLGE9bigiLi9maWx0ZXIiKTt2YXIgdj1lLmpRdWVyeSxwPWUuc3RyZnRpbWU7ZnVuY3Rpb24geShlLHQpe2Zvcih2YXIgbj1lLnRvU3RyaW5nKCk7bi5sZW5ndGg8dDspbj0iMCIrbjtyZXR1cm4gbn10LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zbGlkZXIiLGZhY3Rvcnk6ZnVuY3Rpb24oZSxsKXt2YXIgcz1uZXcgYS5GaWx0ZXJIYW5kbGUobC5ncm91cCksdD17fSxmPXYoZSkuZmluZCgiaW5wdXQiKSxuPWYuZGF0YSgiZGF0YS10eXBlIikscj1mLmRhdGEoInRpbWUtZm9ybWF0IiksaT1mLmRhdGEoInJvdW5kIiksbz12b2lkIDA7aWYoImRhdGUiPT09bilvPXAudXRjKCksdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX07ZWxzZSBpZigiZGF0ZXRpbWUiPT09bil7dmFyIHU9Zi5kYXRhKCJ0aW1lem9uZSIpO289dT9wLnRpbWV6b25lKHUpOnAsdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX19ZWxzZSJudW1iZXIiPT09biYmdm9pZCAwIT09aSYmKHQucHJldHRpZnk9ZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5wb3coMTAsaSk7cmV0dXJuIE1hdGgucm91bmQoZSp0KS90fSk7ZnVuY3Rpb24gYygpe3ZhciBlPWYuZGF0YSgiaW9uUmFuZ2VTbGlkZXIiKS5yZXN1bHQsdD12b2lkIDAsbj1mLmRhdGEoImRhdGEtdHlwZSIpO3JldHVybiB0PSJkYXRlIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuKHQ9bmV3IERhdGUoK2UpKWluc3RhbmNlb2YgRGF0ZT90LmdldFVUQ0Z1bGxZZWFyKCkrIi0iK3kodC5nZXRVVENNb250aCgpKzEsMikrIi0iK3kodC5nZXRVVENEYXRlKCksMik6bnVsbDt2YXIgdH06ImRhdGV0aW1lIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuK2UvMWUzfTpmdW5jdGlvbihlKXtyZXR1cm4rZX0sImRvdWJsZSI9PT1mLmRhdGEoImlvblJhbmdlU2xpZGVyIikub3B0aW9ucy50eXBlP1t0KGUuZnJvbSksdChlLnRvKV06dChlLmZyb20pfWYuaW9uUmFuZ2VTbGlkZXIodCk7dmFyIGg9bnVsbDtyZXR1cm4gZi5vbigiY2hhbmdlLmNyb3NzdGFsa1NsaWRlcklucHV0IixmdW5jdGlvbihlKXtpZighZi5kYXRhKCJ1cGRhdGluZyIpJiYhZi5kYXRhKCJhbmltYXRpbmciKSl7Zm9yKHZhciB0PWMoKSxuPWQodCwyKSxyPW5bMF0saT1uWzFdLG89W10sdT0wO3U8bC52YWx1ZXMubGVuZ3RoO3UrKyl7dmFyIGE9bC52YWx1ZXNbdV07cjw9YSYmYTw9aSYmby5wdXNoKGwua2V5c1t1XSl9by5zb3J0KCkscy5zZXQobyksaD1vfX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7cy5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtoJiZzLnNldChoKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sMTA6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uU2VsZWN0aW9uSGFuZGxlPXZvaWQgMDt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxpPWEoZSgiLi9ldmVudHMiKSksbz1hKGUoIi4vZ3JvdXAiKSksdT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fW4uU2VsZWN0aW9uSGFuZGxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IHUuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX3Zhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPXUuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5zZXRHcm91cChlKX1yZXR1cm4gcihuLFt7a2V5OiJzZXRHcm91cCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0aGlzLl9ncm91cCE9PWUmJih0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl92YXImJih0aGlzLl92YXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLl92YXI9bnVsbCx0aGlzLl92YXJPbkNoYW5nZVN1Yj1udWxsKSx0aGlzLl9ncm91cD1lKSl7dGhpcy5fdmFyPSgwLG8uZGVmYXVsdCkoZSkudmFyKCJzZWxlY3Rpb24iKTt2YXIgbj10aGlzLl92YXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7dC5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUsdCl9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1ufX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHUuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt0aGlzLl92YXImJnRoaXMuX3Zhci5zZXQoZSx0aGlzLl9tZXJnZUV4dHJhSW5mbyh0KSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fdmFyJiZ0aGlzLnNldCh2b2lkIDAsdGhpcy5fbWVyZ2VFeHRyYUluZm8oZSkpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2VtaXR0ZXIub24oZSx0KX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vZmYoZSx0KX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5zZXRHcm91cChudWxsKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFyP3RoaXMuX3Zhci5nZXQoKTpudWxsfX1dKSxufSgpfSx7Ii4vZXZlbnRzIjoxLCIuL2dyb3VwIjo0LCIuL3V0aWwiOjExfV0sMTE6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGw9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9O2Z1bmN0aW9uIHUoZSl7Zm9yKHZhciB0PTE7dDxlLmxlbmd0aDt0KyspaWYoZVt0XTw9ZVt0LTFdKXRocm93IG5ldyBFcnJvcigiTGlzdCBpcyBub3Qgc29ydGVkIG9yIGNvbnRhaW5zIGR1cGxpY2F0ZSIpfW4uZXh0ZW5kPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoMTx0P3QtMTowKSxyPTE7cjx0O3IrKyluW3ItMV09YXJndW1lbnRzW3JdO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO2lmKG51bGwhPW8pZm9yKHZhciB1IGluIG8pby5oYXNPd25Qcm9wZXJ0eSh1KSYmKGVbdV09b1t1XSl9cmV0dXJuIGV9LG4uY2hlY2tTb3J0ZWQ9dSxuLmRpZmZTb3J0ZWRMaXN0cz1mdW5jdGlvbihlLHQpe3ZhciBuPTAscj0wO2V8fChlPVtdKTt0fHwodD1bXSk7dmFyIGk9W10sbz1bXTt1KGUpLHUodCk7Zm9yKDtuPGUubGVuZ3RoJiZyPHQubGVuZ3RoOyllW25dPT09dFtyXT8obisrLHIrKyk6ZVtuXTx0W3JdP2kucHVzaChlW24rK10pOm8ucHVzaCh0W3IrK10pO248ZS5sZW5ndGgmJihpPWkuY29uY2F0KGUuc2xpY2UobikpKTtyPHQubGVuZ3RoJiYobz1vLmNvbmNhdCh0LnNsaWNlKHIpKSk7cmV0dXJue3JlbW92ZWQ6aSxhZGRlZDpvfX0sbi5kYXRhZnJhbWVUb0QzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49dm9pZCAwO2Zvcih2YXIgciBpbiBlKXtpZihlLmhhc093blByb3BlcnR5KHIpJiZ0LnB1c2gociksIm9iamVjdCIhPT1sKGVbcl0pfHx2b2lkIDA9PT1lW3JdLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTtpZih2b2lkIDAhPT1uJiZuIT09ZVtyXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpO249ZVtyXS5sZW5ndGh9Zm9yKHZhciBpPVtdLG89dm9pZCAwLHU9MDt1PG47dSsrKXtvPXt9O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKW9bdFthXV09ZVt0W2FdXVt1XTtpLnB1c2gobyl9cmV0dXJuIGl9O24uU3Vic2NyaXB0aW9uVHJhY2tlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5fZW1pdHRlcj1lLHRoaXMuX3N1YnM9e319cmV0dXJuIHIodCxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fZW1pdHRlci5vbihlLHQpO3JldHVybiB0aGlzLl9zdWJzW25dPWUsbn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9lbWl0dGVyLm9mZihlLHQpO3JldHVybiBuJiZkZWxldGUgdGhpcy5fc3Vic1tuXSxufX0se2tleToicmVtb3ZlQWxsTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLl9zdWJzO3RoaXMuX3N1YnM9e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXt0Ll9lbWl0dGVyLm9mZihuW2VdLGUpfSl9fV0pLHR9KCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxlLGwpeyhmdW5jdGlvbihvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlLHU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCksbj1hKCIuL2V2ZW50cyIpLGk9KGU9bikmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9O3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsciksdGhpcy5fZ3JvdXA9ZSx0aGlzLl9uYW1lPXQsdGhpcy5fdmFsdWU9bix0aGlzLl9ldmVudHM9bmV3IGkuZGVmYXVsdH1yZXR1cm4gdChyLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKHRoaXMuX3ZhbHVlIT09ZSl7dmFyIG49dGhpcy5fdmFsdWU7dGhpcy5fdmFsdWU9ZTt2YXIgcj17fTtpZih0JiYib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnUodCkpKWZvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihyW2ldPXRbaV0pO3Iub2xkVmFsdWU9bixyLnZhbHVlPWUsdGhpcy5fZXZlbnRzLnRyaWdnZXIoImNoYW5nZSIscix0aGlzKSxvLlNoaW55JiZvLlNoaW55Lm9uSW5wdXRDaGFuZ2UmJm8uU2hpbnkub25JbnB1dENoYW5nZSgiLmNsaWVudFZhbHVlLSIrKG51bGwhPT10aGlzLl9ncm91cC5uYW1lP3RoaXMuX2dyb3VwLm5hbWUrIi0iOiIiKSt0aGlzLl9uYW1lLHZvaWQgMD09PWU/bnVsbDplKX19fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZXZlbnRzLm9uKGUsdCl9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2V2ZW50cy5vZmYoZSx0KX19XSkscn0oKTtsLmRlZmF1bHQ9cn0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2V2ZW50cyI6MX1dfSx7fSxbNV0pOwovLyMgc291cmNlTWFwcGluZ1VSTD1jcm9zc3RhbGsubWluLmpzLm1hcA=="></script>
|
||
<style type="text/css">
|
||
|
||
/*
|
||
Dashboard CSS from Keen IO Dashboards
|
||
(https://github.com/keen/dashboards)
|
||
*/
|
||
|
||
body {
|
||
background: #f2f2f2;
|
||
padding: 60px 0 0 8px; /* padding-top overridden by theme */
|
||
}
|
||
|
||
body hr {
|
||
border-color: #d7d7d7;
|
||
margin: 10px 0;
|
||
}
|
||
|
||
.navbar-inverse .navbar-nav > li > a,
|
||
.navbar .navbar-brand {
|
||
text-decoration: none;
|
||
}
|
||
|
||
.navbar-logo {
|
||
margin-top: 1px;
|
||
}
|
||
|
||
.navbar-logo img {
|
||
margin-right: 12px;
|
||
}
|
||
|
||
.navbar-author {
|
||
margin-left: 10px;
|
||
font-size: 15px;
|
||
}
|
||
|
||
.navbar .dropdown-menu .fa {
|
||
min-width: 20px;
|
||
}
|
||
|
||
.navbar .dropdown-menu {
|
||
min-width: 150px;
|
||
max-height: 500px;
|
||
overflow: auto;
|
||
}
|
||
|
||
.chart-wrapper,
|
||
.nav-tabs-custom,
|
||
.sbframe-commentary
|
||
{
|
||
background: #fff;
|
||
border: 1px solid #e2e2e2;
|
||
border-radius: 3px;
|
||
margin-bottom: 8px;
|
||
margin-right: 8px;
|
||
}
|
||
|
||
.chart-title {
|
||
border-bottom: 1px solid #d7d7d7;
|
||
color: #666;
|
||
font-size: 14px;
|
||
font-weight: 300;
|
||
padding: 7px 10px 4px;
|
||
}
|
||
|
||
.chart-wrapper .chart-title:empty {
|
||
display: none;
|
||
}
|
||
|
||
.chart-wrapper .chart-stage {
|
||
overflow: hidden;
|
||
padding: 5px 10px;
|
||
position: relative;
|
||
}
|
||
|
||
.chart-wrapper .chart-notes {
|
||
background: #fbfbfb;
|
||
border-top: 1px solid #e2e2e2;
|
||
color: #808080;
|
||
font-size: 12px;
|
||
padding: 8px 10px 5px;
|
||
}
|
||
|
||
/*
|
||
CSS for handling flexbox layout
|
||
*/
|
||
|
||
#dashboard-container {
|
||
visibility: hidden;
|
||
}
|
||
|
||
.tab-content>.dashboard-page-wrapper.active {
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
}
|
||
|
||
.dashboard-page-wrapper {
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-box-direction: normal;
|
||
-webkit-flex-direction: column;
|
||
-ms-flex-direction: column;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.dashboard-row-orientation {
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-box-direction: normal;
|
||
-webkit-flex-direction: column;
|
||
-ms-flex-direction: column;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.dashboard-row {
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-box-orient: horizontal;
|
||
-webkit-box-direction: normal;
|
||
-webkit-flex-direction: row;
|
||
-ms-flex-direction: row;
|
||
flex-direction: row;
|
||
}
|
||
|
||
.dashboard-row-flex {
|
||
-webkit-box-flex: 1;
|
||
-webkit-flex: 1;
|
||
-ms-flex: 1;
|
||
flex: 1;
|
||
}
|
||
|
||
.dashboard-column-orientation {
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-box-orient: horizontal;
|
||
-webkit-box-direction: normal;
|
||
-webkit-flex-direction: row;
|
||
-ms-flex-direction: row;
|
||
flex-direction: row;
|
||
}
|
||
|
||
.dashboard-column {
|
||
-webkit-box-flex: 1;
|
||
-webkit-flex: 1;
|
||
-ms-flex: 1;
|
||
flex: 1;
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-box-direction: normal;
|
||
-webkit-flex-direction: column;
|
||
-ms-flex-direction: column;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.chart-wrapper-flex {
|
||
-webkit-box-flex: 1;
|
||
-webkit-flex: 1;
|
||
-ms-flex: 1;
|
||
flex: 1;
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
-webkit-box-orient: vertical;
|
||
-webkit-box-direction: normal;
|
||
-webkit-flex-direction: column;
|
||
-ms-flex-direction: column;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.chart-stage-flex {
|
||
-webkit-box-flex: 1;
|
||
-webkit-flex: 1;
|
||
-ms-flex: 1;
|
||
flex: 1;
|
||
position: relative;
|
||
}
|
||
|
||
.chart-shim {
|
||
position: absolute;
|
||
left: 8px; top: 8px; right: 8px; bottom: 8px;
|
||
}
|
||
|
||
.no-padding .chart-shim {
|
||
left: 0; top: 0; right: 0; bottom: 0;
|
||
}
|
||
|
||
.flowing-content-shim {
|
||
overflow: auto;
|
||
left: 0; top: 0; right: 0; bottom: 0;
|
||
padding-left: 8px;
|
||
padding-right: 8px;
|
||
}
|
||
|
||
.flowing-content-container {
|
||
padding-top: 8px;
|
||
padding-bottom: 8px;
|
||
}
|
||
|
||
.chart-stage .table-bordered {
|
||
border: none;
|
||
}
|
||
|
||
.chart-stage .table-bordered > tbody > tr > th,
|
||
.chart-stage .table-bordered > tfoot > tr > th,
|
||
.chart-stage .table-bordered > tbody > tr > td,
|
||
.chart-stage .table-bordered > tfoot > tr > td {
|
||
border: none;
|
||
}
|
||
|
||
.chart-stage .table-bordered > tbody > tr > td {
|
||
border-top: 1px solid #dddddd;
|
||
}
|
||
|
||
.chart-stage .table-bordered > thead > tr > th {
|
||
border: none;
|
||
border-bottom: 2px solid #dddddd;
|
||
}
|
||
|
||
.bootstrap-table table>thead {
|
||
background-color: #fff;
|
||
}
|
||
|
||
.bootstrap-table table.data,
|
||
.bootstrap-table table.shiny-table {
|
||
width: inherit !important;
|
||
}
|
||
|
||
.bootstrap-table table.data>tbody>tr>th,
|
||
.bootstrap-table table.shiny-table>tbody>tr>th {
|
||
border-top: none;
|
||
border-bottom: 2px solid #dddddd;
|
||
padding: 5px;
|
||
}
|
||
|
||
.bootstrap-table .data td[align=right] {
|
||
font-family: inherit;
|
||
}
|
||
|
||
.chart-wrapper form {
|
||
padding-left: 5px;
|
||
padding-right: 5px;
|
||
}
|
||
|
||
.shiny-input-container label {
|
||
font-weight: normal;
|
||
}
|
||
|
||
.chart-stage .html-widget {
|
||
width: 100% !important;
|
||
height: 100% !important;
|
||
}
|
||
|
||
.chart-stage .html-widget-static-bound {
|
||
width: 100% !important;
|
||
height: 100% !important;
|
||
}
|
||
|
||
.chart-stage .shiny-bound-output {
|
||
width: 100% !important;
|
||
height: 100% !important;
|
||
}
|
||
|
||
/* Omit display of empty paragraphs */
|
||
|
||
.chart-shim>p:empty {
|
||
display: none;
|
||
}
|
||
|
||
.chart-stage>p:empty {
|
||
display: none;
|
||
}
|
||
|
||
/* Omit display of special knitr options div*/
|
||
|
||
.chart-stage .knitr-options {
|
||
display: none;
|
||
}
|
||
|
||
/* Automatically resizing images */
|
||
|
||
.image-container {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
margin: 0;
|
||
}
|
||
|
||
.image-container img {
|
||
opacity: 0;
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* Value box */
|
||
|
||
.value-box {
|
||
border-radius: 2px;
|
||
position: relative;
|
||
display: block;
|
||
margin-right: 8px;
|
||
margin-bottom: 8px;
|
||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||
}
|
||
|
||
.value-box > .inner {
|
||
padding: 10px;
|
||
padding-left: 20px;
|
||
padding-right: 20px;
|
||
}
|
||
|
||
.value-box .value {
|
||
font-size: 38px;
|
||
font-weight: bold;
|
||
margin: 0 0 3px 0;
|
||
white-space: nowrap;
|
||
padding: 0;
|
||
}
|
||
|
||
.value-box .caption {
|
||
font-size: 15px;
|
||
}
|
||
.value-box .caption > small {
|
||
display: block;
|
||
font-size: 13px;
|
||
margin-top: 5px;
|
||
}
|
||
|
||
.value-box .icon i {
|
||
position: absolute;
|
||
top: 15px;
|
||
right: 15px;
|
||
font-size: 80px;
|
||
color: rgba(0, 0, 0, 0.15);
|
||
}
|
||
|
||
.linked-value:hover {
|
||
cursor: pointer;
|
||
}
|
||
|
||
.value-box.linked-value:hover {
|
||
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
|
||
}
|
||
|
||
/* STORYBOARD */
|
||
|
||
.storyboard-nav button {
|
||
background: transparent;
|
||
border: 0;
|
||
opacity: .3;
|
||
outline: none;
|
||
padding: 0;
|
||
}
|
||
|
||
.storyboard-nav button:hover,
|
||
.storyboard-nav button:hover {
|
||
opacity: .5;
|
||
}
|
||
|
||
.storyboard-nav button:disabled,
|
||
.storyboard-nav button:disabled {
|
||
opacity: .1;
|
||
}
|
||
|
||
.storyboard-nav .sbnext,
|
||
.storyboard-nav .sbprev {
|
||
float: left;
|
||
width: 2%;
|
||
height: 120px;
|
||
font-size: 50px;
|
||
}
|
||
|
||
.storyboard-nav .sbprev {
|
||
text-align: left;
|
||
width: 2%;
|
||
}
|
||
|
||
.storyboard-nav .sbnext {
|
||
float: right;
|
||
text-align: right;
|
||
margin-right: 8px;
|
||
}
|
||
|
||
.storyboard-nav .sbframelist {
|
||
margin: 0 auto;
|
||
width: 94%;
|
||
height: 120px;
|
||
overflow: hidden;
|
||
text-shadow: none;
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.storyboard-nav .sbframelist ul {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
height: 100%;
|
||
}
|
||
|
||
.storyboard-nav .sbframelist ul li {
|
||
float: left;
|
||
width: 270px;
|
||
height: 100%;
|
||
padding: 10px 10px 10px 10px;
|
||
margin-right: 8px;
|
||
background: #fff;
|
||
border: 1px solid #e2e2e2;
|
||
border-radius: 3px;
|
||
color: #3a3c47;
|
||
text-align: left;
|
||
font-size: 14px;
|
||
cursor: pointer;
|
||
}
|
||
|
||
.storyboard-nav .sbframelist ul li:last-child {
|
||
margin-right: 0px;
|
||
}
|
||
|
||
.storyboard-nav .sbframelist ul li.active {
|
||
color: #fff;
|
||
background: #B8B8B8;
|
||
}
|
||
|
||
.sbframe-commentary {
|
||
width: 300px;
|
||
background: #fbfbfb;
|
||
font-size: 14px;
|
||
}
|
||
|
||
.sbframe-commentary ul {
|
||
padding-left: 22px;
|
||
}
|
||
|
||
.sbframe.active {
|
||
display: flex;
|
||
}
|
||
|
||
.sbframe:not(.active) {
|
||
display: none;
|
||
}
|
||
|
||
/* NAV TABS */
|
||
|
||
.nav-tabs-custom > .nav-tabs {
|
||
margin: 0;
|
||
border-bottom: 1px solid #d7d7d7;
|
||
color: #666;
|
||
font-size: 14px;
|
||
font-weight: 300;
|
||
border-top-right-radius: 3px;
|
||
border-top-left-radius: 3px;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li {
|
||
border-top: 3px solid transparent;
|
||
margin-bottom: -1px;
|
||
margin-right: 5px;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li > a,
|
||
.nav-tabs-custom > .nav-tabs > li > a:active {
|
||
color: #666;
|
||
font-weight: 300;
|
||
font-size: 14px;
|
||
border-radius: 0;
|
||
padding: 3px 10px 5px;
|
||
text-transform: none;
|
||
}
|
||
|
||
.nav-tabs-custom > .nav-tabs > li:not(.active) > a {
|
||
border-bottom-color: transparent;
|
||
}
|
||
|
||
.nav-tabs-custom > .nav-tabs > li > a.text-muted {
|
||
color: #999;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li > a,
|
||
.nav-tabs-custom > .nav-tabs > li > a:hover {
|
||
background: transparent;
|
||
margin: 0;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li > a:hover {
|
||
color: #999;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover,
|
||
.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus,
|
||
.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active {
|
||
border-color: transparent;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li.active {
|
||
border-top-color: #3c8dbc;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li.active > a,
|
||
.nav-tabs-custom > .nav-tabs > li.active:hover > a {
|
||
background-color: #fff;
|
||
color: #666;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li.active > a {
|
||
border-top-color: transparent;
|
||
border-left-color: #d7d7d7;
|
||
border-right-color: #d7d7d7;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li:first-of-type {
|
||
margin-left: 0;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a {
|
||
border-left-color: transparent;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs.pull-right {
|
||
float: none !important;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs.pull-right > li {
|
||
float: right;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type {
|
||
margin-right: 0;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type > a {
|
||
border-left-width: 1px;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a {
|
||
border-left-color: #d7d7d7;
|
||
border-right-color: transparent;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li.header {
|
||
line-height: 35px;
|
||
padding: 0 10px;
|
||
font-size: 20px;
|
||
color: #666;
|
||
}
|
||
.nav-tabs-custom > .nav-tabs > li.header > .fa,
|
||
.nav-tabs-custom > .nav-tabs > li.header > .glyphicon,
|
||
.nav-tabs-custom > .nav-tabs > li.header > .ion {
|
||
margin-right: 5px;
|
||
}
|
||
.nav-tabs-custom > .tab-content {
|
||
background: #fff;
|
||
padding: 0;
|
||
border-bottom-right-radius: 3px;
|
||
border-bottom-left-radius: 3px;
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
}
|
||
|
||
.nav-tabs-custom > .tab-content > .chart-wrapper {
|
||
background: #fff;
|
||
border: none;
|
||
margin: 0;
|
||
}
|
||
|
||
|
||
.nav-tabs-custom > .tab-content > .active {
|
||
display: -webkit-box;
|
||
display: -webkit-flex;
|
||
display: -ms-flexbox;
|
||
display: flex;
|
||
}
|
||
|
||
.nav-tabs-custom .dropdown.open > a:active,
|
||
.nav-tabs-custom .dropdown.open > a:focus {
|
||
background: transparent;
|
||
color: #999;
|
||
}
|
||
|
||
|
||
@media (max-width: 767px) {
|
||
.value-box {
|
||
text-align: center;
|
||
margin-right: 8px;
|
||
}
|
||
.value-box .icon {
|
||
display: none;
|
||
}
|
||
}
|
||
|
||
/* Fixed position sidebar */
|
||
|
||
.section.sidebar {
|
||
position: fixed;
|
||
top: 51px; /* overridden by theme */
|
||
left: 0;
|
||
bottom: 0;
|
||
border-right: 1px solid #e2e2e2;
|
||
background-color: white; /* overridden by theme */
|
||
padding-left: 10px;
|
||
padding-right: 10px;
|
||
visibility: hidden;
|
||
overflow: auto;
|
||
}
|
||
|
||
.section.sidebar form p:first-child {
|
||
margin-top: 10px;
|
||
}
|
||
|
||
/* Embedded source code */
|
||
|
||
#flexdashboard-source-code {
|
||
display: none;
|
||
}
|
||
|
||
.featherlight-content #flexdashboard-source-code {
|
||
display: inline-block;
|
||
}
|
||
|
||
.featherlight-content {
|
||
width: 80%;
|
||
max-width: 800px;
|
||
padding: 0 !important;
|
||
border-bottom: none !important;
|
||
}
|
||
|
||
.featherlight:last-of-type {
|
||
background: rgba(0, 0, 0, 0.7);
|
||
}
|
||
|
||
.featherlight-inner {
|
||
width: 100%;
|
||
}
|
||
|
||
.featherlight-content pre {
|
||
margin: 0;
|
||
border: 0;
|
||
background: #fff;
|
||
font-size: 12px;
|
||
}
|
||
|
||
.unselectable {
|
||
-ms-user-select: none;
|
||
-webkit-user-select: none;
|
||
-khtml-user-select: none;
|
||
-moz-user-select: -moz-none;
|
||
-o-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
#flexdashboard-source-code code {
|
||
-ms-user-select: text;
|
||
-webkit-user-select: text;
|
||
-khtml-user-select: text;
|
||
-moz-user-select: text;
|
||
-o-user-select: text;
|
||
user-select: text;
|
||
}
|
||
|
||
/* DataTables Tweaks */
|
||
|
||
.dataTables_filter input[type="search"] {
|
||
-webkit-appearance: searchfield;
|
||
outline: none;
|
||
}
|
||
|
||
.dataTables_wrapper.no-footer
|
||
.dataTables_info {
|
||
padding-top: 0;
|
||
}
|
||
|
||
|
||
table.dataTable thead th {
|
||
border-bottom: 1px solid #d7d7d7;
|
||
}
|
||
|
||
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
||
border-bottom: 1px solid #d7d7d7;
|
||
}
|
||
|
||
/* Mobile phone only CSS */
|
||
|
||
.desktop-layout div.section.mobile {
|
||
display: none;
|
||
}
|
||
|
||
.mobile-layout div.section.no-mobile {
|
||
display: none;
|
||
}
|
||
|
||
.mobile-figure {
|
||
display: none;
|
||
}
|
||
|
||
|
||
|
||
body {
|
||
padding-top: 60px;
|
||
}
|
||
|
||
.section.sidebar {
|
||
top: 51px;
|
||
background-color: rgba(39, 128, 227, 0.1);
|
||
}
|
||
|
||
.value-box {
|
||
color: #f9f9f9;
|
||
}
|
||
|
||
.bg-primary {
|
||
background-color: rgba(39, 128, 227, 0.7);
|
||
}
|
||
|
||
.storyboard-nav .sbframelist ul li.active {
|
||
background-color: rgba(39, 128, 227, 0.7);
|
||
}
|
||
|
||
.nav-tabs-custom > .nav-tabs > li.active {
|
||
border-top-color: rgba(39, 128, 227, 0.7);
|
||
}
|
||
|
||
.bg-info {
|
||
background-color: rgba(153, 84, 187, 0.7);
|
||
}
|
||
|
||
.bg-warning {
|
||
background-color: rgba(255, 117, 24, 0.7);
|
||
}
|
||
|
||
.bg-danger {
|
||
background-color: rgba(255, 0, 57, 0.7);
|
||
}
|
||
|
||
.bg-success {
|
||
background-color: rgba(63, 182, 24, 0.7);
|
||
}
|
||
|
||
.chart-title {
|
||
font-weight: 500;
|
||
}
|
||
|
||
.nav-tabs-custom > .nav-tabs > li > a,
|
||
.nav-tabs-custom > .nav-tabs > li > a:active {
|
||
font-weight: 500;
|
||
}
|
||
|
||
@media only screen and (min-width: 768px) {
|
||
html, body {
|
||
height: 100%;
|
||
}
|
||
|
||
#dashboard-container {
|
||
height: 100%;
|
||
}
|
||
}
|
||
</style>
|
||
|
||
|
||
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
|
||
<div class="container-fluid">
|
||
<div class="navbar-header">
|
||
|
||
<button id="navbar-button" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
|
||
<span class="icon-bar"></span>
|
||
<span class="icon-bar"></span>
|
||
<span class="icon-bar"></span>
|
||
</button>
|
||
|
||
<span class="navbar-logo pull-left">
|
||
|
||
</span>
|
||
<span class="navbar-brand">
|
||
Org Insights | Employee Experience Report
|
||
<span class="navbar-author">
|
||
</span>
|
||
</span>
|
||
|
||
</div>
|
||
<div id="navbar" class="navbar-collapse collapse">
|
||
<ul class="nav navbar-nav navbar-left">
|
||
</ul>
|
||
<ul class="nav navbar-nav navbar-right">
|
||
</ul>
|
||
</div><!--/.nav-collapse-->
|
||
</div><!--/.container-->
|
||
</div><!--/.navbar-->
|
||
|
||
<img class="mobile-figure" data-mobile-figure-id="fig1" src="data:image/png;base64,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Jbwbrl+/Hu8yEFEAIb5yNDG5Z80K/FCBiOYuZjiIEpp7dEKCdxYUwyL5iMI9TIVDOonmLfbhIEpcTpt7Wgz5QSwJyFpX6/WaYO+xSbNlL4go6pjhIEo87nSBKKRJuOLC/S5T92uC/SX+XhCRdpjhIEo87lknBbEdExwmXXFFog01IqJEwk6jRAnI1ijOmiH/7o6E5QxpbBIRzSMMOIiIiEhzfKRCREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBc8SZM2fiXYRExGpRwpqRxWqRxWpRElLNLNCuHBR3PElksVqUsGZksVqUsGZksVqUMMNBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmmPAQURERJpjwEFERESaY8BBREREmuPbYueDkfYjh1uHgLzNFZtyI/2qzMq6TzWctAOZReU7CtITpOA0v410n+rGpgJPq4lCWxrpbu/u/vzzoaGhIfGjzMy8zFtyCwtyo9ruo0uLqvDlugQEFf1rRCJqOHIkM/OWDYndLOKCAcc8MNL9+RAA5OXypk1z30j3qfdP2oeQt3lT9NbZfur9VvuQ3+dDQ/ahIbu9NTOv6L5NiXcn1aIqKLihoaGhoZP21vkRX4WA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" />
|
||
<img class="mobile-figure" data-mobile-figure-id="fig2" src="data:image/png;base64,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" />
|
||
<img class="mobile-figure" data-mobile-figure-id="fig3" src="data:image/png;base64,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" />
|
||
<img class="mobile-figure" data-mobile-figure-id="fig4" src="data:image/png;base64,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" />
|
||
<script type="text/javascript">
|
||
|
||
|
||
var FlexDashboard = (function () {
|
||
|
||
// initialize options
|
||
var _options = {};
|
||
|
||
var FlexDashboard = function() {
|
||
|
||
// default options
|
||
_options = $.extend(_options, {
|
||
theme: "cosmo",
|
||
fillPage: false,
|
||
orientation: 'columns',
|
||
storyboard: false,
|
||
defaultFigWidth: 576,
|
||
defaultFigHeight: 461,
|
||
defaultFigWidthMobile: 360,
|
||
defaultFigHeightMobile: 461,
|
||
isMobile: false,
|
||
isPortrait: false,
|
||
resize_reload: true
|
||
});
|
||
};
|
||
|
||
function init(options) {
|
||
|
||
// extend default options
|
||
$.extend(true, _options, options);
|
||
|
||
// add ids to sections that don't have them (pandoc won't assign ids
|
||
// to e.g. sections with titles consisting of only chinese characters)
|
||
var nextId = 1;
|
||
$('.level1:not([id]),.level2:not([id]),.level3:not([id])').each(function() {
|
||
$(this).attr('id', 'dashboard-' + nextId++);
|
||
});
|
||
|
||
// find navbar items
|
||
var navbarItems = $('#flexdashboard-navbar');
|
||
if (navbarItems.length)
|
||
navbarItems = JSON.parse(navbarItems.html());
|
||
addNavbarItems(navbarItems);
|
||
|
||
// find the main dashboard container
|
||
var dashboardContainer = $('#dashboard-container');
|
||
|
||
// resolve mobile classes
|
||
resolveMobileClasses(dashboardContainer);
|
||
|
||
// one time global initialization for components
|
||
componentsInit(dashboardContainer);
|
||
|
||
// look for a global sidebar
|
||
var globalSidebar = dashboardContainer.find(".section.level1.sidebar");
|
||
if (globalSidebar.length > 0) {
|
||
|
||
// global layout for fullscreen displays
|
||
if (!isMobilePhone()) {
|
||
|
||
// hoist it up to the top level
|
||
globalSidebar.insertBefore(dashboardContainer);
|
||
|
||
// lay it out (set width/positions)
|
||
layoutSidebar(globalSidebar, dashboardContainer);
|
||
|
||
// tuck sidebar into first page for mobile phones
|
||
} else {
|
||
|
||
// convert it into a level3 section
|
||
globalSidebar.removeClass('sidebar');
|
||
globalSidebar.removeClass('level1');
|
||
globalSidebar.addClass('level3');
|
||
var h1 = globalSidebar.children('h1');
|
||
var h3 = $('<h3></h3>');
|
||
h3.append(h1.contents());
|
||
h3.insertBefore(h1);
|
||
h1.detach();
|
||
|
||
// move it into the first page
|
||
var page = dashboardContainer.find('.section.level1').first();
|
||
if (page.length > 0)
|
||
page.prepend(globalSidebar);
|
||
}
|
||
}
|
||
|
||
// look for pages to layout
|
||
var pages = $('div.section.level1');
|
||
if (pages.length > 0) {
|
||
|
||
// find the navbar and collapse on clicked
|
||
var navbar = $('#navbar');
|
||
navbar.on("click", "a[data-toggle!=dropdown]", null, function () {
|
||
navbar.collapse('hide');
|
||
});
|
||
|
||
// envelop the dashboard container in a tab content div
|
||
dashboardContainer.wrapInner('<div class="tab-content"></div>');
|
||
|
||
pages.each(function(index) {
|
||
|
||
// lay it out
|
||
layoutDashboardPage($(this));
|
||
|
||
// add it to the navbar
|
||
addToNavbar($(this), index === 0);
|
||
|
||
});
|
||
|
||
} else {
|
||
|
||
// remove the navbar and navbar button if we don't
|
||
// have any navbuttons
|
||
if (navbarItems.length === 0) {
|
||
$('#navbar').remove();
|
||
$('#navbar-button').remove();
|
||
}
|
||
|
||
// add the storyboard class if requested
|
||
if (_options.storyboard)
|
||
dashboardContainer.addClass('storyboard');
|
||
|
||
// layout the entire page
|
||
layoutDashboardPage(dashboardContainer);
|
||
}
|
||
|
||
// if we are in shiny we need to trigger a window resize event to
|
||
// force correct layout of shiny-bound-output elements
|
||
if (isShinyDoc())
|
||
$(window).trigger('resize');
|
||
|
||
// make main components visible
|
||
$('.section.sidebar').css('visibility', 'visible');
|
||
dashboardContainer.css('visibility', 'visible');
|
||
|
||
// handle location hash
|
||
handleLocationHash();
|
||
|
||
// intialize prism highlighting
|
||
initPrismHighlighting();
|
||
|
||
// record mobile and orientation state then register a handler
|
||
// to refresh if resize_reload is set to true and it changes
|
||
_options.isMobile = isMobilePhone();
|
||
_options.isPortrait = isPortrait();
|
||
if (_options.resize_reload) {
|
||
$(window).on('resize', function() {
|
||
if (_options.isMobile !== isMobilePhone() ||
|
||
_options.isPortrait !== isPortrait()) {
|
||
window.location.reload();
|
||
}
|
||
});
|
||
} else {
|
||
// if in desktop mode and resizing to mobile, make sure the heights are 100%
|
||
// This enforces what `fillpage.css` does for "wider" pages.
|
||
// Since we are not reloading once the page becomes small, we need to force the height to 100%
|
||
// This is a new situation introduced when `_options.resize_reload` is `false`
|
||
if (! _options.isMobile) {
|
||
// only add if `fillpage.css` was added in the first place
|
||
if (_options.fillPage) {
|
||
// fillpage.css
|
||
$("html,body,#dashboard").css("height", "100%");
|
||
}
|
||
}
|
||
}
|
||
// trigger layoutcomplete event
|
||
dashboardContainer.trigger('flexdashboard:layoutcomplete');
|
||
}
|
||
|
||
function resolveMobileClasses(dashboardContainer) {
|
||
// add top level layout class
|
||
dashboardContainer.addClass(isMobilePhone() ? 'mobile-layout' :
|
||
'desktop-layout');
|
||
|
||
// look for .mobile sections and add .no-mobile to their peers
|
||
var mobileSections = $('.section.mobile');
|
||
mobileSections.each(function() {
|
||
var id = $(this).attr('id');
|
||
var nomobileId = id.replace(/-\d+$/, '');
|
||
$('#' + nomobileId).addClass('no-mobile');
|
||
});
|
||
}
|
||
|
||
function addNavbarItems(navbarItems) {
|
||
|
||
var navbarLeft = $('ul.navbar-left');
|
||
var navbarRight = $('ul.navbar-right');
|
||
|
||
for (var i = 0; i<navbarItems.length; i++) {
|
||
|
||
// get the item
|
||
var item = navbarItems[i];
|
||
|
||
// determine the container
|
||
var container = null;
|
||
if (item.align === "left")
|
||
container = navbarLeft;
|
||
else
|
||
container = navbarRight;
|
||
|
||
// navbar menu if we have multiple items
|
||
if (item.items) {
|
||
var menu = navbarMenu(null, item.icon, item.title, container);
|
||
for (var j = 0; j<item.items.length; j++) {
|
||
var subItem = item.items[j];
|
||
var li = $('<li></li>');
|
||
li.append(navbarLink(subItem.icon, subItem.title, subItem.href, subItem.target));
|
||
menu.append(li);
|
||
}
|
||
} else {
|
||
var li = $('<li></li>');
|
||
li.append(navbarLink(item.icon, item.title, item.href, item.target));
|
||
container.append(li);
|
||
}
|
||
}
|
||
}
|
||
|
||
// create or get a reference to an existing dropdown menu
|
||
function navbarMenu(id, icon, title, container) {
|
||
var existingMenu = [];
|
||
if (id)
|
||
existingMenu = container.children('#' + id);
|
||
if (existingMenu.length > 0) {
|
||
return existingMenu.children('ul');
|
||
} else {
|
||
var li = $('<li></li>');
|
||
if (id)
|
||
li.attr('id', id);
|
||
li.addClass('dropdown');
|
||
// auto add "Share" title on mobile if necessary
|
||
if (!title && icon && (icon === "fa-share-alt") && isMobilePhone())
|
||
title = "Share";
|
||
if (title) {
|
||
title = title + ' <span class="caret"></span>';
|
||
}
|
||
var a = navbarLink(icon, title, "#");
|
||
a.addClass('dropdown-toggle');
|
||
a.attr('data-toggle', 'dropdown');
|
||
a.attr('role', 'button');
|
||
a.attr('aria-expanded', 'false');
|
||
li.append(a);
|
||
var ul = $('<ul class="dropdown-menu"></ul>');
|
||
ul.attr('role', 'menu');
|
||
li.append(ul);
|
||
container.append(li);
|
||
return ul;
|
||
}
|
||
}
|
||
|
||
function addToNavbar(page, active) {
|
||
|
||
// capture the id and data-icon attribute (if any)
|
||
var id = page.attr('id');
|
||
var icon = page.attr('data-icon');
|
||
var navmenu = page.attr('data-navmenu');
|
||
|
||
// get hidden state (transfer this to navbar)
|
||
var hidden = page.hasClass('hidden');
|
||
page.removeClass('hidden');
|
||
|
||
// sanitize the id for use with bootstrap tabs
|
||
id = id.replace(/[.\/?&!#<>]/g, '').replace(/\s/g, '_');
|
||
page.attr('id', id);
|
||
|
||
// get the wrapper
|
||
var wrapper = page.closest('.dashboard-page-wrapper');
|
||
|
||
// move the id to the wrapper
|
||
page.removeAttr('id');
|
||
wrapper.attr('id', id);
|
||
|
||
// add the tab-pane class to the wrapper
|
||
wrapper.addClass('tab-pane');
|
||
if (active)
|
||
wrapper.addClass('active');
|
||
|
||
// get a reference to the h1, discover its inner contens, then detach it
|
||
var h1 = wrapper.find('h1').first();
|
||
var title = h1.contents();
|
||
h1.detach();
|
||
|
||
// create a navbar item
|
||
var li = $('<li></li>');
|
||
var a = navbarLink(icon, title, '#' + id);
|
||
a.attr('data-toggle', 'tab');
|
||
li.append(a);
|
||
|
||
// add it to the navbar (or navbar menu if specified)
|
||
var container = $('ul.navbar-left');
|
||
if (navmenu) {
|
||
var menuId = navmenu.replace(/\s+/g, '');
|
||
var menu = navbarMenu(menuId, null, navmenu, container);
|
||
menu.append(li);
|
||
} else {
|
||
container.append(li);
|
||
}
|
||
|
||
// hide it if requested
|
||
if (hidden)
|
||
li.addClass('hidden');
|
||
}
|
||
|
||
function navbarLink(icon, title, href, target) {
|
||
|
||
var a = $('<a></a>');
|
||
if (icon) {
|
||
|
||
// get the name of the icon set and icon
|
||
var dashPos = icon.indexOf("-");
|
||
var iconSet = null;
|
||
var iconSplit = icon.split(" ");
|
||
if (iconSplit.length > 1) {
|
||
iconSet = iconSplit[0];
|
||
icon = iconSplit.slice(1).join(" ");
|
||
} else {
|
||
iconSet = icon.substring(0, dashPos);
|
||
}
|
||
var iconName = icon.substring(dashPos + 1);
|
||
|
||
// create the icon
|
||
var iconElement = $('<span class="' + iconSet + ' ' + icon + '"></span>');
|
||
if (title)
|
||
iconElement.css('margin-right', '7px');
|
||
a.append(iconElement);
|
||
// if href is null see if we can auto-generate based on icon (e.g. social)
|
||
if (!href)
|
||
maybeGenerateLinkFromIcon(iconName, a);
|
||
}
|
||
if (title)
|
||
a.append(title);
|
||
|
||
// add the href.
|
||
if (href) {
|
||
if (href === "source_embed") {
|
||
a.attr('href', '#');
|
||
a.attr('data-featherlight', "#flexdashboard-source-code");
|
||
a.featherlight({
|
||
beforeOpen: function(event){
|
||
$('body').addClass('unselectable');
|
||
},
|
||
afterClose: function(event){
|
||
$('body').removeClass('unselectable');
|
||
}
|
||
});
|
||
} else {
|
||
a.attr('href', href);
|
||
}
|
||
}
|
||
|
||
// add the arget
|
||
if (target)
|
||
a.attr('target', target);
|
||
|
||
return a;
|
||
}
|
||
|
||
// auto generate a link from an icon name (e.g. twitter) when possible
|
||
function maybeGenerateLinkFromIcon(iconName, a) {
|
||
|
||
var serviceLinks = {
|
||
"twitter": "https://twitter.com/share?text=" + encodeURIComponent(document.title) + "&url="+encodeURIComponent(location.href),
|
||
"facebook": "https://www.facebook.com/sharer/sharer.php?s=100&p[url]="+encodeURIComponent(location.href),
|
||
"google-plus": "https://plus.google.com/share?url="+encodeURIComponent(location.href),
|
||
"linkedin": "https://www.linkedin.com/shareArticle?mini=true&url="+encodeURIComponent(location.href) + "&title=" + encodeURIComponent(document.title),
|
||
"pinterest": "https://pinterest.com/pin/create/link/?url="+encodeURIComponent(location.href) + "&description=" + encodeURIComponent(document.title)
|
||
};
|
||
|
||
var makeSocialLink = function(a, href) {
|
||
a.attr('href', '#');
|
||
a.on('click', function(e) {
|
||
e.preventDefault();
|
||
window.open(href);
|
||
});
|
||
};
|
||
|
||
$.each(serviceLinks, function(key, value) {
|
||
if (iconName.indexOf(key) !== -1)
|
||
makeSocialLink(a, value);
|
||
});
|
||
}
|
||
|
||
// layout a dashboard page
|
||
function layoutDashboardPage(page) {
|
||
|
||
// use a page wrapper so that free form content above the
|
||
// dashboard appears at the top rather than the side (as it
|
||
// would without the wrapper in a column orientation)
|
||
var wrapper = $('<div class="dashboard-page-wrapper"></div>');
|
||
page.wrap(wrapper);
|
||
|
||
// if there are no level2 or level3 headers synthesize a level3
|
||
// header to contain the (e.g. frame it, scroll container, etc.)
|
||
var headers = page.find('h2,h3');
|
||
if (headers.length === 0)
|
||
page.wrapInner('<div class="section level3"></div>');
|
||
|
||
// hoist up any content before level 2 or level 3 headers
|
||
var children = page.children();
|
||
children.each(function(index) {
|
||
if ($(this).hasClass('level2') || $(this).hasClass('level3'))
|
||
return false;
|
||
$(this).insertBefore(page);
|
||
});
|
||
|
||
// determine orientation and fillPage behavior for distinct media
|
||
var orientation, fillPage, storyboard;
|
||
|
||
// media: mobile phone
|
||
if (isMobilePhone()) {
|
||
|
||
// if there is a sidebar we need to ensure it's content
|
||
// is properly framed as an h3
|
||
var sidebar = page.find('.section.sidebar');
|
||
sidebar.removeClass('sidebar');
|
||
sidebar.wrapInner('<div class="section level3"></div>');
|
||
var h2 = sidebar.find('h2');
|
||
var h3 = $('<h3></h3>');
|
||
h3.append(h2.contents());
|
||
h3.insertBefore(h2);
|
||
h2.detach();
|
||
|
||
// wipeout h2 elements then enclose them in a single h2
|
||
var level2 = page.find('div.section.level2');
|
||
level2.each(function() {
|
||
level2.children('h2').remove();
|
||
level2.children().unwrap();
|
||
});
|
||
page.wrapInner('<div class="section level2"></div>');
|
||
|
||
// substitute mobile images
|
||
if (isPortrait()) {
|
||
var mobileFigures = $('img.mobile-figure');
|
||
mobileFigures.each(function() {
|
||
// get the src (might be base64 encoded)
|
||
var src = $(this).attr('src');
|
||
|
||
// find it's peer
|
||
var id = $(this).attr('data-mobile-figure-id');
|
||
var img = $('img[data-figure-id=' + id + "]");
|
||
img.attr('src', src)
|
||
.attr('width', _options.defaultFigWidthMobile)
|
||
.attr('height', _options.defaultFigHeightMobile);
|
||
});
|
||
}
|
||
|
||
// hoist storyboard commentary into it's own section
|
||
if (page.hasClass('storyboard')) {
|
||
var commentaryHR = page.find('div.section.level3 hr');
|
||
commentaryHR.each(function() {
|
||
var commentary = $(this).nextAll().detach();
|
||
var commentarySection = $('<div class="section level3"></div>');
|
||
commentarySection.append(commentary);
|
||
commentarySection.insertAfter($(this).closest('div.section.level3'));
|
||
$(this).remove();
|
||
});
|
||
}
|
||
|
||
// force a non full screen layout by columns
|
||
orientation = _options.orientation = 'columns';
|
||
fillPage = _options.fillPage = false;
|
||
storyboard = _options.storyboard = false;
|
||
|
||
// media: desktop
|
||
} else {
|
||
|
||
// determine orientation
|
||
orientation = page.attr('data-orientation');
|
||
if (orientation !== 'rows' && orientation != 'columns')
|
||
orientation = _options.orientation;
|
||
|
||
// determine storyboard mode
|
||
storyboard = page.hasClass('storyboard');
|
||
|
||
// fillPage based on options (force for storyboard)
|
||
fillPage = _options.fillPage || storyboard;
|
||
|
||
// handle sidebar
|
||
var sidebar = page.find('.section.level2.sidebar');
|
||
if (sidebar.length > 0)
|
||
layoutSidebar(sidebar, page);
|
||
}
|
||
|
||
// give it and it's parent divs height: 100% if we are in fillPage mode
|
||
if (fillPage) {
|
||
page.addClass('vertical-layout-fill');
|
||
page.css('height', '100%');
|
||
page.parents('div').css('height', '100%');
|
||
} else {
|
||
page.addClass('vertical-layout-scroll');
|
||
}
|
||
|
||
// perform the layout
|
||
if (storyboard)
|
||
layoutPageAsStoryboard(page);
|
||
else if (orientation === 'rows')
|
||
layoutPageByRows(page, fillPage);
|
||
else if (orientation === 'columns')
|
||
layoutPageByColumns(page, fillPage);
|
||
}
|
||
|
||
function layoutSidebar(sidebar, content) {
|
||
|
||
// get it out of the header hierarchy
|
||
sidebar = sidebar.first();
|
||
if (sidebar.hasClass('level1')) {
|
||
sidebar.removeClass('level1');
|
||
sidebar.children('h1').remove();
|
||
} else if (sidebar.hasClass('level2')) {
|
||
sidebar.removeClass('level2');
|
||
sidebar.children('h2').remove();
|
||
}
|
||
|
||
// determine width
|
||
var sidebarWidth = isTablet() ? 220 : 250;
|
||
var dataWidth = parseInt(sidebar.attr('data-width'));
|
||
if (dataWidth)
|
||
sidebarWidth = dataWidth;
|
||
|
||
// set the width and shift the page right to accomodate the sidebar
|
||
sidebar.css('width', sidebarWidth + 'px');
|
||
content.css('padding-left', sidebarWidth + 'px');
|
||
|
||
// wrap it's contents in a form
|
||
sidebar.wrapInner($('<form></form>'));
|
||
}
|
||
|
||
function layoutPageAsStoryboard(page) {
|
||
|
||
// create storyboard navigation
|
||
var nav = $('<div class="storyboard-nav"></div>');
|
||
|
||
// add navigation buttons
|
||
var prev = $('<button class="sbprev"><i class="fa fa-angle-left"></i></button>');
|
||
nav.append(prev);
|
||
var next= $('<button class="sbnext"><i class="fa fa-angle-right"></i></button>');
|
||
nav.append(next);
|
||
|
||
// add navigation frame
|
||
var frameList = $('<div class="sbframelist"></div>');
|
||
nav.append(frameList);
|
||
var ul = $('<ul></ul>');
|
||
frameList.append(ul);
|
||
|
||
// find all the level3 sections (those are the storyboard frames)
|
||
var frames = page.find('div.section.level3');
|
||
frames.each(function() {
|
||
|
||
// mark it
|
||
$(this).addClass('sbframe');
|
||
|
||
// divide it into chart content and (optional) commentary
|
||
$(this).addClass('dashboard-column-orientation');
|
||
|
||
// stuff the chart into it's own div w/ flex
|
||
$(this).wrapInner('<div class="sbframe-component"></div>');
|
||
setFlex($(this), 1);
|
||
var frame = $(this).children('.sbframe-component');
|
||
|
||
// extract the title from the h3
|
||
var li = $('<li></li>');
|
||
var h3 = frame.children('h3');
|
||
li.append(h3.contents());
|
||
h3.detach();
|
||
ul.append(li);
|
||
|
||
// extract commentary
|
||
var hr = frame.children('hr');
|
||
if (hr.length) {
|
||
var commentary = hr.nextAll().detach();
|
||
hr.remove();
|
||
var commentaryFrame = $('<div class="sbframe-commentary"></div>');
|
||
commentaryFrame.addClass('flowing-content-shim');
|
||
commentaryFrame.addClass('flowing-content-container');
|
||
commentaryFrame.append(commentary);
|
||
$(this).append(commentaryFrame);
|
||
|
||
// look for a data-commentary-width attribute
|
||
var commentaryWidth = $(this).attr('data-commentary-width');
|
||
if (commentaryWidth)
|
||
commentaryFrame.css('width', commentaryWidth + 'px');
|
||
}
|
||
|
||
// layout the chart (force flex)
|
||
var result = layoutChart(frame, true);
|
||
|
||
// ice the notes if there are none
|
||
if (!result.notes)
|
||
frame.find('.chart-notes').remove();
|
||
|
||
// set flex on chart
|
||
setFlex(frame, 1);
|
||
});
|
||
|
||
// create a div to hold all the frames
|
||
var frameContent = $('<div class="sbframe-content"></div>');
|
||
frameContent.addClass('dashboard-row-orientation');
|
||
frameContent.append(frames.detach());
|
||
|
||
// row orientation to stack nav and frame content
|
||
page.addClass('dashboard-row-orientation');
|
||
page.append(nav);
|
||
page.append(frameContent);
|
||
setFlex(frameContent, 1);
|
||
|
||
// initialize sly
|
||
var sly = new Sly(frameList, {
|
||
horizontal: true,
|
||
itemNav: 'basic',
|
||
smart: true,
|
||
activateOn: 'click',
|
||
startAt: 0,
|
||
scrollBy: 1,
|
||
activatePageOn: 'click',
|
||
speed: 200,
|
||
moveBy: 600,
|
||
dragHandle: true,
|
||
dynamicHandle: true,
|
||
clickBar: true,
|
||
keyboardNavBy: 'items',
|
||
next: next,
|
||
prev: prev
|
||
}).init();
|
||
|
||
// make first frame active
|
||
frames.removeClass('active');
|
||
frames.first().addClass('active');
|
||
|
||
// subscribe to frame changed events
|
||
sly.on('active', function (eventName, itemIndex) {
|
||
frames.removeClass('active');
|
||
frames.eq(itemIndex).addClass('active')
|
||
.trigger('shown');
|
||
});
|
||
}
|
||
|
||
function layoutPageByRows(page, fillPage) {
|
||
|
||
// row orientation
|
||
page.addClass('dashboard-row-orientation');
|
||
|
||
// find all the level2 sections (those are the rows)
|
||
var rows = page.find('div.section.level2');
|
||
|
||
// if there are no level2 sections then treat the
|
||
// entire page as if it's a level 2 section
|
||
if (rows.length === 0) {
|
||
page.wrapInner('<div class="section level2"></div>');
|
||
rows = page.find('div.section.level2');
|
||
}
|
||
|
||
rows.each(function () {
|
||
|
||
// flags
|
||
var haveNotes = false;
|
||
var haveFlexHeight = true;
|
||
|
||
// remove the h2
|
||
$(this).children('h2').remove();
|
||
|
||
// check for a tabset
|
||
var isTabset = $(this).hasClass('tabset');
|
||
if (isTabset)
|
||
layoutTabset($(this));
|
||
|
||
// give it row layout semantics if it's not a tabset
|
||
if (!isTabset)
|
||
$(this).addClass('dashboard-row');
|
||
|
||
// find all of the level 3 subheads
|
||
var columns = $(this).find('div.section.level3');
|
||
|
||
// determine figureSizes sizes
|
||
var figureSizes = chartFigureSizes(columns);
|
||
|
||
// fixup the columns
|
||
columns.each(function(index) {
|
||
|
||
// layout the chart (force flex if we are in a tabset)
|
||
var result = layoutChart($(this), isTabset);
|
||
|
||
// update flexHeight state
|
||
if (!result.flex)
|
||
haveFlexHeight = false;
|
||
|
||
// update state
|
||
if (result.notes)
|
||
haveNotes = true;
|
||
|
||
// set the column flex based on the figure width
|
||
// (value boxes will just get the default figure width)
|
||
var chartWidth = figureSizes[index].width;
|
||
setFlex($(this), chartWidth + ' ' + chartWidth + ' 0px');
|
||
|
||
});
|
||
|
||
// remove empty chart note divs
|
||
if (isTabset)
|
||
$(this).find('.chart-notes').filter(function() {
|
||
return $(this).html() === " ";
|
||
}).remove();
|
||
if (!haveNotes)
|
||
$(this).find('.chart-notes').remove();
|
||
|
||
// make it a flexbox row
|
||
if (haveFlexHeight)
|
||
$(this).addClass('dashboard-row-flex');
|
||
|
||
// now we can set the height on all the wrappers (based on maximum
|
||
// figure height + room for title and notes, or data-height on the
|
||
// container if specified). However, don't do this if there is
|
||
// no flex on any of the constituent columns
|
||
var flexHeight = null;
|
||
var dataHeight = parseInt($(this).attr('data-height'));
|
||
if (dataHeight)
|
||
flexHeight = adjustedHeight(dataHeight, columns.first());
|
||
else if (haveFlexHeight)
|
||
flexHeight = maxChartHeight(figureSizes, columns);
|
||
if (flexHeight) {
|
||
if (fillPage)
|
||
setFlex($(this), flexHeight + ' ' + flexHeight + ' 0px');
|
||
else {
|
||
$(this).css('height', flexHeight + 'px');
|
||
setFlex($(this), '0 0 ' + flexHeight + 'px');
|
||
}
|
||
}
|
||
|
||
});
|
||
}
|
||
|
||
function layoutPageByColumns(page, fillPage) {
|
||
|
||
// column orientation
|
||
page.addClass('dashboard-column-orientation');
|
||
|
||
// find all the level2 sections (those are the columns)
|
||
var columns = page.find('div.section.level2');
|
||
|
||
// if there are no level2 sections then treat the
|
||
// entire page as if it's a level 2 section
|
||
if (columns.length === 0) {
|
||
page.wrapInner('<div class="section level2"></div>');
|
||
columns = page.find('div.section.level2');
|
||
}
|
||
|
||
// layout each column
|
||
columns.each(function (index) {
|
||
|
||
// remove the h2
|
||
$(this).children('h2').remove();
|
||
|
||
// make it a flexbox column
|
||
$(this).addClass('dashboard-column');
|
||
|
||
// check for a tabset
|
||
var isTabset = $(this).hasClass('tabset');
|
||
if (isTabset)
|
||
layoutTabset($(this));
|
||
|
||
// find all the h3 elements
|
||
var rows = $(this).find('div.section.level3');
|
||
|
||
// get the figure sizes for the rows
|
||
var figureSizes = chartFigureSizes(rows);
|
||
|
||
// column flex is the max row width (or data-width if specified)
|
||
var flexWidth;
|
||
var dataWidth = parseInt($(this).attr('data-width'));
|
||
if (dataWidth)
|
||
flexWidth = dataWidth;
|
||
else
|
||
flexWidth = maxChartWidth(figureSizes);
|
||
setFlex($(this), flexWidth + ' ' + flexWidth + ' 0px');
|
||
|
||
// layout each chart
|
||
rows.each(function(index) {
|
||
|
||
// perform the layout
|
||
var result = layoutChart($(this), false);
|
||
|
||
// ice the notes if there are none
|
||
if (!result.notes)
|
||
$(this).find('.chart-notes').remove();
|
||
|
||
// set flex height based on figHeight, then adjust
|
||
if (result.flex) {
|
||
var chartHeight = figureSizes[index].height;
|
||
chartHeight = adjustedHeight(chartHeight, $(this));
|
||
if (fillPage)
|
||
setFlex($(this), chartHeight + ' ' + chartHeight + ' 0px');
|
||
else {
|
||
$(this).css('height', chartHeight + 'px');
|
||
setFlex($(this), chartHeight + ' ' + chartHeight + ' ' + chartHeight + 'px');
|
||
}
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
function chartFigureSizes(charts) {
|
||
|
||
// sizes
|
||
var figureSizes = new Array(charts.length);
|
||
|
||
// check each chart
|
||
charts.each(function(index) {
|
||
|
||
// start with default
|
||
figureSizes[index] = {
|
||
width: _options.defaultFigWidth,
|
||
height: _options.defaultFigHeight
|
||
};
|
||
|
||
// look for data-height or data-width then knit options
|
||
var dataWidth = parseInt($(this).attr('data-width'));
|
||
var dataHeight = parseInt($(this).attr('data-height'));
|
||
var knitrOptions = $(this).find('.knitr-options:first');
|
||
var knitrWidth, knitrHeight;
|
||
if (knitrOptions) {
|
||
knitrWidth = parseInt(knitrOptions.attr('data-fig-width'));
|
||
knitrHeight = parseInt(knitrOptions.attr('data-fig-height'));
|
||
}
|
||
|
||
// width
|
||
if (dataWidth)
|
||
figureSizes[index].width = dataWidth;
|
||
else if (knitrWidth)
|
||
figureSizes[index].width = knitrWidth;
|
||
|
||
// height
|
||
if (dataHeight)
|
||
figureSizes[index].height = dataHeight;
|
||
else if (knitrHeight)
|
||
figureSizes[index].height = knitrHeight;
|
||
});
|
||
|
||
// return sizes
|
||
return figureSizes;
|
||
}
|
||
|
||
function maxChartHeight(figureSizes, charts) {
|
||
|
||
// first compute the maximum height
|
||
var maxHeight = _options.defaultFigHeight;
|
||
for (var i = 0; i<figureSizes.length; i++)
|
||
if (figureSizes[i].height > maxHeight)
|
||
maxHeight = figureSizes[i].height;
|
||
|
||
// now add offests for chart title and chart notes
|
||
if (charts.length)
|
||
maxHeight = adjustedHeight(maxHeight, charts.first());
|
||
|
||
return maxHeight;
|
||
}
|
||
|
||
function adjustedHeight(height, chart) {
|
||
if (chart.length > 0) {
|
||
var chartTitle = chart.find('.chart-title');
|
||
if (chartTitle.length)
|
||
height += chartTitle.first().outerHeight();
|
||
var chartNotes = chart.find('.chart-notes');
|
||
if (chartNotes.length)
|
||
height += chartNotes.first().outerHeight();
|
||
}
|
||
return height;
|
||
}
|
||
|
||
function maxChartWidth(figureSizes) {
|
||
var maxWidth = _options.defaultFigWidth;
|
||
for (var i = 0; i<figureSizes.length; i++)
|
||
if (figureSizes[i].width > maxWidth)
|
||
maxWidth = figureSizes[i].width;
|
||
return maxWidth;
|
||
}
|
||
|
||
// layout a chart
|
||
function layoutChart(chart, forceFlex) {
|
||
|
||
// state to return
|
||
var result = {
|
||
notes: false,
|
||
flex: false
|
||
};
|
||
|
||
// extract the title
|
||
var title = extractTitle(chart);
|
||
|
||
// find components that apply to this container
|
||
var components = componentsFind(chart);
|
||
|
||
// if it's a custom component then call it and return
|
||
var customComponents = componentsCustom(components);
|
||
if (customComponents.length) {
|
||
componentsLayout(customComponents, title, chart);
|
||
result.notes = false;
|
||
result.flex = forceFlex || componentsFlex(customComponents);
|
||
return result;
|
||
}
|
||
|
||
// put all the content in a chart wrapper div
|
||
chart.addClass('chart-wrapper');
|
||
chart.wrapInner('<div class="chart-stage"></div>');
|
||
var chartContent = chart.children('.chart-stage');
|
||
|
||
// flex the content if appropriate
|
||
result.flex = forceFlex || componentsFlex(components);
|
||
if (result.flex) {
|
||
// add flex classes
|
||
chart.addClass('chart-wrapper-flex');
|
||
chartContent.addClass('chart-stage-flex');
|
||
|
||
// additional shim to break out of flexbox sizing
|
||
chartContent.wrapInner('<div class="chart-shim"></div>');
|
||
chartContent = chartContent.children('.chart-shim');
|
||
}
|
||
|
||
// set custom data-padding attribute
|
||
var pad = chart.attr('data-padding');
|
||
if (pad) {
|
||
if (pad === "0")
|
||
chart.addClass('no-padding');
|
||
else {
|
||
pad = pad + 'px';
|
||
chartContent.css('left', pad)
|
||
.css('top', pad)
|
||
.css('right', pad)
|
||
.css('bottom', pad)
|
||
}
|
||
}
|
||
|
||
// call compoents
|
||
componentsLayout(components, title, chartContent);
|
||
|
||
// also activate components on shiny output
|
||
findShinyOutput(chartContent).on('shiny:value',
|
||
function(event) {
|
||
var element = $(event.target);
|
||
setTimeout(function() {
|
||
|
||
// see if we opted out of flex based on our output (for shiny
|
||
// we can't tell what type of output we have until after the
|
||
// value is bound)
|
||
var components = componentsFind(element);
|
||
var flex = forceFlex || componentsFlex(components);
|
||
if (!flex) {
|
||
chart.css('height', "");
|
||
setFlex(chart, "");
|
||
chart.removeClass('chart-wrapper-flex');
|
||
chartContent.removeClass('chart-stage-flex');
|
||
chartContent.children().unwrap();
|
||
}
|
||
|
||
// perform layout
|
||
componentsLayout(components, title, element.parent());
|
||
}, 10);
|
||
});
|
||
|
||
// add the title
|
||
var chartTitle = $('<div class="chart-title"></div>');
|
||
chartTitle.append(title);
|
||
chart.prepend(chartTitle);
|
||
|
||
// add the notes section
|
||
var chartNotes = $('<div class="chart-notes"></div>');
|
||
chartNotes.html(' ');
|
||
chart.append(chartNotes);
|
||
|
||
// attempt to extract notes if we have a component
|
||
if (components.length)
|
||
result.notes = extractChartNotes(chartContent, chartNotes);
|
||
|
||
// return result
|
||
return result;
|
||
}
|
||
|
||
// build a tabset from a section div with the .tabset class
|
||
function layoutTabset(tabset) {
|
||
|
||
// check for fade option
|
||
var fade = tabset.hasClass("tabset-fade");
|
||
var navClass = "nav-tabs";
|
||
|
||
// determine the heading level of the tabset and tabs
|
||
var match = tabset.attr('class').match(/level(\d) /);
|
||
if (match === null)
|
||
return;
|
||
var tabsetLevel = Number(match[1]);
|
||
var tabLevel = tabsetLevel + 1;
|
||
|
||
// find all subheadings immediately below
|
||
var tabs = tabset.find("div.section.level" + tabLevel);
|
||
if (!tabs.length)
|
||
return;
|
||
|
||
// create tablist and tab-content elements
|
||
var tabList = $('<ul class="nav ' + navClass + '" role="tablist"></ul>');
|
||
$(tabs[0]).before(tabList);
|
||
var tabContent = $('<div class="tab-content"></div>');
|
||
$(tabs[0]).before(tabContent);
|
||
|
||
// build the tabset
|
||
tabs.each(function(i) {
|
||
|
||
// get the tab div
|
||
var tab = $(tabs[i]);
|
||
|
||
// get the id then sanitize it for use with bootstrap tabs
|
||
var id = tab.attr('id');
|
||
|
||
// sanitize the id for use with bootstrap tabs
|
||
id = id.replace(/[.\/?&!#<>]/g, '').replace(/\s/g, '_');
|
||
tab.attr('id', id);
|
||
|
||
// get the heading element within it and grab it's text
|
||
var heading = tab.find('h' + tabLevel + ':first');
|
||
var headingDom = heading.contents();
|
||
|
||
// build and append the tab list item
|
||
var a = $('<a role="tab" data-toggle="tab"></a>');
|
||
a.append(headingDom);
|
||
a.attr('href', '#' + id);
|
||
a.attr('aria-controls', id);
|
||
var li = $('<li role="presentation"></li>');
|
||
li.append(a);
|
||
if (i === 0)
|
||
li.attr('class', 'active');
|
||
tabList.append(li);
|
||
|
||
// set it's attributes
|
||
tab.attr('role', 'tabpanel');
|
||
tab.addClass('tab-pane');
|
||
tab.addClass('tabbed-pane');
|
||
tab.addClass('no-title');
|
||
if (fade)
|
||
tab.addClass('fade');
|
||
if (i === 0) {
|
||
tab.addClass('active');
|
||
if (fade)
|
||
tab.addClass('in');
|
||
}
|
||
|
||
// move it into the tab content div
|
||
tab.detach().appendTo(tabContent);
|
||
});
|
||
|
||
// add nav-tabs-custom
|
||
tabset.addClass('nav-tabs-custom');
|
||
|
||
// internal layout is dashboard-column with tab-content flexing
|
||
tabset.addClass('dashboard-column');
|
||
setFlex(tabContent, 1);
|
||
}
|
||
|
||
// one time global initialization for components
|
||
function componentsInit(dashboardContainer) {
|
||
for (var i=0; i<window.FlexDashboardComponents.length; i++) {
|
||
var component = window.FlexDashboardComponents[i];
|
||
if (component.init)
|
||
component.init(dashboardContainer);
|
||
}
|
||
}
|
||
|
||
// find components that apply within a container
|
||
function componentsFind(container) {
|
||
|
||
// look for components
|
||
var components = [];
|
||
for (var i=0; i<window.FlexDashboardComponents.length; i++) {
|
||
var component = window.FlexDashboardComponents[i];
|
||
if (component.find(container).length)
|
||
components.push(component);
|
||
}
|
||
|
||
// if there were none then use a special flowing content component
|
||
// that just adds a scrollbar in fillPage mode
|
||
if (components.length == 0) {
|
||
components.push({
|
||
find: function(container) {
|
||
return container;
|
||
},
|
||
|
||
flex: function(fillPage) {
|
||
return fillPage;
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
if (fillPage) {
|
||
container.addClass('flowing-content-shim');
|
||
container.addClass('flowing-content-container');
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
return components;
|
||
}
|
||
|
||
// if there is a custom component then pick it out
|
||
function componentsCustom(components) {
|
||
var customComponent = [];
|
||
for (var i=0; i<components.length; i++)
|
||
if (components[i].type === "custom") {
|
||
customComponent.push(components[i]);
|
||
break;
|
||
}
|
||
return customComponent;
|
||
}
|
||
|
||
// query all components for flex
|
||
function componentsFlex(components) {
|
||
|
||
// no components at all means no flex
|
||
if (components.length === 0)
|
||
return false;
|
||
|
||
// otherwise query components (assume true unless we see false)
|
||
var isMobile = isMobilePhone();
|
||
for (var i=0; i<components.length; i++)
|
||
if (components[i].flex && !components[i].flex(_options.fillPage))
|
||
return false;
|
||
return true;
|
||
}
|
||
|
||
// layout all components
|
||
function componentsLayout(components, title, container) {
|
||
var isMobile = isMobilePhone();
|
||
for (var i=0; i<components.length; i++) {
|
||
var element = components[i].find(container);
|
||
if (components[i].layout) {
|
||
// call layout (don't call other components if it returns false)
|
||
var result = components[i].layout(title, container, element, _options.fillPage);
|
||
if (result === false)
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
// get a reference to the h3, discover it's inner html, and remove it
|
||
function extractTitle(container) {
|
||
var h3 = container.children('h3').first();
|
||
var title = '';
|
||
if (!container.hasClass('no-title'))
|
||
title = h3.contents();
|
||
h3.detach();
|
||
return title;
|
||
}
|
||
|
||
// extract chart notes
|
||
function extractChartNotes(chartContent, chartNotes) {
|
||
// look for a terminating blockquote or image caption
|
||
var blockquote = chartContent.children('blockquote:last-child');
|
||
var caption = chartContent.children('div.image-container')
|
||
.children('p.caption');
|
||
if (blockquote.length) {
|
||
chartNotes.empty().append(blockquote.children('p:first-child').contents());
|
||
blockquote.remove();
|
||
return true;
|
||
} else if (caption.length) {
|
||
chartNotes.empty().append(caption.contents());
|
||
caption.remove();
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function findShinyOutput(chartContent) {
|
||
return chartContent.find('.shiny-text-output, .shiny-html-output');
|
||
}
|
||
|
||
// safely detect rendering on a mobile phone
|
||
function isMobilePhone() {
|
||
try
|
||
{
|
||
return ! window.matchMedia("only screen and (min-width: 768px)").matches;
|
||
}
|
||
catch(e) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function isFillPage() {
|
||
return _options.fillPage;
|
||
}
|
||
|
||
// detect portrait mode
|
||
function isPortrait() {
|
||
return ($(window).width() < $(window).height());
|
||
}
|
||
|
||
// safely detect rendering on a tablet
|
||
function isTablet() {
|
||
try
|
||
{
|
||
return window.matchMedia("only screen and (min-width: 769px) and (max-width: 992px)").matches;
|
||
}
|
||
catch(e) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
// test whether this is a shiny doc
|
||
function isShinyDoc() {
|
||
return (typeof(window.Shiny) !== "undefined" && !!window.Shiny.outputBindings);
|
||
}
|
||
|
||
// set flex using vendor specific prefixes
|
||
function setFlex(el, flex) {
|
||
el.css('-webkit-box-flex', flex)
|
||
.css('-webkit-flex', flex)
|
||
.css('-ms-flex', flex)
|
||
.css('flex', flex);
|
||
}
|
||
|
||
// support bookmarking of pages
|
||
function handleLocationHash() {
|
||
|
||
// restore tab/page from bookmark
|
||
var hash = window.decodeURIComponent(window.location.hash);
|
||
if (hash.length > 0)
|
||
$('ul.nav a[href="' + hash + '"]').tab('show');
|
||
FlexDashboardUtils.manageActiveNavbarMenu();
|
||
|
||
// navigate to a tab when the history changes
|
||
window.addEventListener("popstate", function(e) {
|
||
var hash = window.decodeURIComponent(window.location.hash);
|
||
var activeTab = $('ul.nav a[href="' + hash + '"]');
|
||
if (activeTab.length) {
|
||
activeTab.tab('show');
|
||
} else {
|
||
$('ul.nav a:first').tab('show');
|
||
}
|
||
FlexDashboardUtils.manageActiveNavbarMenu();
|
||
});
|
||
|
||
// add a hash to the URL when the user clicks on a tab/page
|
||
$('.navbar-nav a[data-toggle="tab"]').on('click', function(e) {
|
||
var baseUrl = FlexDashboardUtils.urlWithoutHash(window.location.href);
|
||
var hash = FlexDashboardUtils.urlHash($(this).attr('href'));
|
||
var href = baseUrl + hash;
|
||
FlexDashboardUtils.setLocation(href);
|
||
});
|
||
|
||
// handle clicks of other links that should activate pages
|
||
var navPages = $('ul.navbar-nav li a[data-toggle=tab]');
|
||
navPages.each(function() {
|
||
var href = $(this).attr('href');
|
||
var links = $('a[href="' + href + '"][data-toggle!=tab]');
|
||
links.each(function() {
|
||
$(this).on('click', function(e) {
|
||
window.FlexDashboardUtils.showPage(href);
|
||
});
|
||
});
|
||
});
|
||
}
|
||
|
||
// tweak Prism highlighting
|
||
function initPrismHighlighting() {
|
||
|
||
if (window.Prism) {
|
||
Prism.languages.insertBefore('r', 'comment', {
|
||
'heading': [
|
||
{
|
||
// title 1
|
||
// =======
|
||
|
||
// title 2
|
||
// -------
|
||
pattern: /\w+.*(?:\r?\n|\r)(?:====+|----+)/,
|
||
alias: 'operator'
|
||
},
|
||
{
|
||
// ### title 3
|
||
pattern: /(^\s*)###[^#].+/m,
|
||
lookbehind: true,
|
||
alias: 'operator'
|
||
}
|
||
]
|
||
});
|
||
|
||
// prism highlight
|
||
Prism.highlightAll();
|
||
}
|
||
}
|
||
|
||
|
||
// get theme color
|
||
var themeColors = {
|
||
bootstrap: {
|
||
primary: "rgba(51, 122, 183, 0.4)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
cerulean: {
|
||
primary: "rgb(47, 164, 231)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
journal: {
|
||
primary: "rgba(235, 104, 100, 0.70)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
flatly: {
|
||
primary: "rgba(44, 62, 80, 0.70)",
|
||
info: "rgba(52, 152, 219, 0.70)",
|
||
success: "rgba(24, 188, 156, 0.70)",
|
||
warning: "rgba(243, 156, 18, 0.70)",
|
||
danger: "rgba(231, 76, 60, 0.70)"
|
||
},
|
||
readable: {
|
||
primary: "rgba(69, 130, 236, 0.4)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
spacelab: {
|
||
primary: "rgba(68, 110, 155, 0.25)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
united: {
|
||
primary: "rgba(221, 72, 20, 0.30)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
cosmo: {
|
||
primary: "rgba(39, 128, 227, 0.7)",
|
||
info: "rgba(153, 84, 187, 0.7)",
|
||
success: "rgba(63, 182, 24, 0.7)",
|
||
warning: "rgba(255, 117, 24, 0.7)",
|
||
danger: "rgba(255, 0, 57, 0.7)"
|
||
},
|
||
lumen: {
|
||
primary: "rgba(21, 140, 186, 0.70)",
|
||
info: "rgba(117, 202, 235, 0.90)",
|
||
success: "rgba(40, 182, 44, 0.70)",
|
||
warning: "rgba(255, 133, 27, 0.70)",
|
||
danger: "rgba(255, 65, 54, 0.70)"
|
||
},
|
||
paper: {
|
||
primary: "rgba(33, 150, 243, 0.35)",
|
||
info: "rgb(225, 190, 231)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(255, 224, 178)",
|
||
danger: "rgb(249, 189, 187)"
|
||
},
|
||
sandstone: {
|
||
primary: "rgba(50, 93, 136, 0.3)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
simplex: {
|
||
primary: "rgba(217, 35, 15, 0.25)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
},
|
||
yeti: {
|
||
primary: "rgba(0, 140, 186, 0.298039)",
|
||
info: "rgb(217, 237, 247)",
|
||
success: "rgb(223, 240, 216)",
|
||
warning: "rgb(252, 248, 227)",
|
||
danger: "rgb(242, 222, 222)"
|
||
}
|
||
}
|
||
function themeColor(color) {
|
||
return themeColors[_options.theme][color];
|
||
}
|
||
|
||
FlexDashboard.prototype = {
|
||
constructor: FlexDashboard,
|
||
init: init,
|
||
isMobilePhone: isMobilePhone,
|
||
isFillPage: isFillPage,
|
||
themeColor: themeColor
|
||
};
|
||
|
||
return FlexDashboard;
|
||
|
||
})();
|
||
|
||
// utils
|
||
window.FlexDashboardUtils = {
|
||
resizableImage: function(img) {
|
||
var src = img.attr('src');
|
||
var url = 'url("' + src + '")';
|
||
img.parent().css('background', url)
|
||
.css('background-size', 'contain')
|
||
.css('background-repeat', 'no-repeat')
|
||
.css('background-position', 'center')
|
||
.addClass('image-container');
|
||
},
|
||
setLocation: function(href) {
|
||
if (history && history.pushState) {
|
||
history.pushState(null, null, href);
|
||
} else {
|
||
window.location.replace(href);
|
||
}
|
||
setTimeout(function() {
|
||
window.scrollTo(0, 0);
|
||
}, 10);
|
||
this.manageActiveNavbarMenu();
|
||
},
|
||
showPage: function(href) {
|
||
$('ul.navbar-nav li a[href="' + href + '"]').tab('show');
|
||
var baseUrl = this.urlWithoutHash(window.location.href);
|
||
var loc = baseUrl + href;
|
||
this.setLocation(loc);
|
||
},
|
||
showLinkedValue: function(href) {
|
||
// check for a page link
|
||
if ($('ul.navbar-nav li a[data-toggle=tab][href="' + href + '"]').length > 0)
|
||
this.showPage(href);
|
||
else
|
||
window.open(href);
|
||
},
|
||
urlWithoutHash: function(url) {
|
||
var hashLoc = url.indexOf('#');
|
||
if (hashLoc != -1)
|
||
return url.substring(0, hashLoc);
|
||
else
|
||
return url;
|
||
},
|
||
urlHash: function(url) {
|
||
var hashLoc = url.indexOf('#');
|
||
if (hashLoc != -1)
|
||
return url.substring(hashLoc);
|
||
else
|
||
return "";
|
||
},
|
||
manageActiveNavbarMenu: function () {
|
||
// remove active from anyone currently active
|
||
$('.navbar ul.nav').find('li').removeClass('active');
|
||
// find the active tab
|
||
var activeTab = $('.dashboard-page-wrapper.tab-pane.active');
|
||
if (activeTab.length > 0) {
|
||
var tabId = activeTab.attr('id');
|
||
if (tabId)
|
||
$(".navbar ul.nav a[href='#" + tabId + "']").parents('li').addClass('active');
|
||
}
|
||
}
|
||
};
|
||
|
||
window.FlexDashboard = new FlexDashboard();
|
||
|
||
// empty content
|
||
window.FlexDashboardComponents.push({
|
||
find: function(container) {
|
||
if (container.find('p').length == 0)
|
||
return container;
|
||
else
|
||
return $();
|
||
}
|
||
})
|
||
|
||
// plot image
|
||
window.FlexDashboardComponents.push({
|
||
|
||
find: function(container) {
|
||
return container.children('p')
|
||
.children('img:only-child');
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
FlexDashboardUtils.resizableImage(element);
|
||
}
|
||
});
|
||
|
||
// plot image (figure style)
|
||
window.FlexDashboardComponents.push({
|
||
|
||
find: function(container) {
|
||
return container.children('div.figure').children('img');
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
FlexDashboardUtils.resizableImage(element);
|
||
}
|
||
});
|
||
|
||
// htmlwidget
|
||
window.FlexDashboardComponents.push({
|
||
|
||
init: function(dashboardContainer) {
|
||
// trigger "shown" after initial layout to force static htmlwidgets
|
||
// in runtime: shiny to be resized after the dom has been transformed
|
||
dashboardContainer.on('flexdashboard:layoutcomplete', function(event) {
|
||
setTimeout(function() {
|
||
dashboardContainer.trigger('shown');
|
||
}, 200);
|
||
});
|
||
},
|
||
|
||
find: function(container) {
|
||
return container.children('div[id^="htmlwidget-"],div.html-widget');
|
||
}
|
||
});
|
||
|
||
// gauge
|
||
window.FlexDashboardComponents.push({
|
||
|
||
find: function(container) {
|
||
return container.children('div.html-widget.gauge');
|
||
},
|
||
|
||
flex: function(fillPage) {
|
||
return false;
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
|
||
|
||
}
|
||
|
||
});
|
||
|
||
// shiny output
|
||
window.FlexDashboardComponents.push({
|
||
find: function(container) {
|
||
return container.children('div[class^="shiny-"]');
|
||
}
|
||
});
|
||
|
||
// datatables
|
||
window.FlexDashboardComponents.push({
|
||
find: function(container) {
|
||
return container.find('.datatables');
|
||
},
|
||
flex: function(fillPage) {
|
||
return fillPage;
|
||
}
|
||
});
|
||
|
||
// bootstrap table
|
||
window.FlexDashboardComponents.push({
|
||
|
||
find: function(container) {
|
||
var bsTable = container.find('table.table');
|
||
if (bsTable.length !== 0)
|
||
return bsTable;
|
||
else
|
||
return container.find('tr.header').parent('thead').parent('table');
|
||
},
|
||
|
||
flex: function(fillPage) {
|
||
return fillPage;
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
|
||
// alias variables
|
||
var bsTable = element;
|
||
|
||
// fixup xtable generated tables with a proper thead
|
||
var headerRow = bsTable.find('tbody > tr:first-child > th').parent();
|
||
if (headerRow.length > 0) {
|
||
var thead = $('<thead></thead>');
|
||
bsTable.prepend(thead);
|
||
headerRow.detach().appendTo(thead);
|
||
}
|
||
|
||
// improve appearance
|
||
container.addClass('bootstrap-table');
|
||
|
||
// for fill page provide scrolling w/ sticky headers
|
||
if (fillPage) {
|
||
// force scrollbar on overflow
|
||
container.addClass('flowing-content-shim');
|
||
|
||
// stable table headers when scrolling
|
||
bsTable.stickyTableHeaders({
|
||
scrollableArea: container
|
||
});
|
||
}
|
||
}
|
||
});
|
||
|
||
// embedded shiny app
|
||
window.FlexDashboardComponents.push({
|
||
|
||
find: function(container) {
|
||
return container.find('iframe.shiny-frame');
|
||
},
|
||
|
||
flex: function(fillPage) {
|
||
return fillPage;
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
if (fillPage) {
|
||
element.attr('height', '100%');
|
||
} else {
|
||
// provide default height if necessary
|
||
var height = element.get(0).style.height;
|
||
if (!height)
|
||
height = element.attr('height');
|
||
if (!height)
|
||
element.attr('height', 500);
|
||
}
|
||
}
|
||
});
|
||
|
||
// shiny fillRow or fillCol
|
||
window.FlexDashboardComponents.push({
|
||
|
||
find: function(container) {
|
||
return container.find('.flexfill-container');
|
||
},
|
||
|
||
flex: function(fillPage) {
|
||
return fillPage;
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
if (fillPage)
|
||
element.css('height', '100%');
|
||
else {
|
||
// provide default height if necessary
|
||
var height = element.get(0).style.height;
|
||
if (height === "100%" || height === "auto" || height === "initial" ||
|
||
height === "inherit" || !height) {
|
||
element.css('height', 500);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
|
||
// valueBox
|
||
window.FlexDashboardComponents.push({
|
||
|
||
type: "custom",
|
||
|
||
find: function(container) {
|
||
if (container.find('span.value-output, .shiny-valuebox-output').length)
|
||
return container;
|
||
else
|
||
return $();
|
||
},
|
||
|
||
flex: function(fillPage) {
|
||
return false;
|
||
},
|
||
|
||
layout: function(title, container, element, fillPage) {
|
||
|
||
// alias variables
|
||
var chartTitle = title;
|
||
var valueBox = element;
|
||
|
||
// add value-box class to container
|
||
container.addClass('value-box');
|
||
|
||
// value paragraph
|
||
var value = $('<p class="value"></p>');
|
||
|
||
// if we have shiny-text-output then just move it in
|
||
var valueOutputSpan = [];
|
||
var shinyOutput = valueBox.find('.shiny-valuebox-output').detach();
|
||
if (shinyOutput.length) {
|
||
valueBox.children().remove();
|
||
shinyOutput.html("—");
|
||
value.append(shinyOutput);
|
||
} else {
|
||
// extract the value (remove leading vector index)
|
||
var chartValue = valueBox.text().trim();
|
||
chartValue = chartValue.replace("[1] ", "");
|
||
valueOutputSpan = valueBox.find('span.value-output').detach();
|
||
valueBox.children().remove();
|
||
value.text(chartValue);
|
||
}
|
||
|
||
// caption
|
||
var caption = $('<p class="caption"></p>');
|
||
caption.append(chartTitle);
|
||
|
||
// build inner div for value box and add it
|
||
var inner = $('<div class="inner"></div>');
|
||
inner.append(value);
|
||
inner.append(caption);
|
||
valueBox.append(inner);
|
||
|
||
// add icon if specified
|
||
var icon = $('<div class="icon"><i></i></div>');
|
||
valueBox.append(icon);
|
||
function setIcon(chartIcon) {
|
||
var iconLib = "";
|
||
var iconSplit = chartIcon.split(" ");
|
||
if (iconSplit.length > 1) {
|
||
iconLib = iconSplit[0];
|
||
chartIcon = iconSplit.slice(1).join(" ");
|
||
} else {
|
||
var components = chartIcon.split("-");
|
||
if (components.length > 1)
|
||
iconLib = components[0];
|
||
}
|
||
icon.children('i').attr('class', iconLib + ' ' + chartIcon);
|
||
}
|
||
var chartIcon = valueBox.attr('data-icon');
|
||
if (chartIcon)
|
||
setIcon(chartIcon);
|
||
|
||
// set color based on data-background if necessary
|
||
var dataBackground = valueBox.attr('data-background');
|
||
if (dataBackground)
|
||
valueBox.css('background-color', bgColor);
|
||
else {
|
||
// default to bg-primary if no other background is specified
|
||
if (!valueBox.hasClass('bg-primary') &&
|
||
!valueBox.hasClass('bg-info') &&
|
||
!valueBox.hasClass('bg-warning') &&
|
||
!valueBox.hasClass('bg-success') &&
|
||
!valueBox.hasClass('bg-danger')) {
|
||
valueBox.addClass('bg-primary');
|
||
}
|
||
}
|
||
|
||
// handle data attributes in valueOutputSpan
|
||
function handleValueOutput(valueOutput) {
|
||
|
||
// caption
|
||
var dataCaption = valueOutput.attr('data-caption');
|
||
if (dataCaption)
|
||
caption.html(dataCaption);
|
||
|
||
// icon
|
||
var dataIcon = valueOutput.attr('data-icon');
|
||
if (dataIcon)
|
||
setIcon(dataIcon);
|
||
|
||
// color
|
||
var dataColor = valueOutput.attr('data-color');
|
||
if (dataColor) {
|
||
if (dataColor.indexOf('bg-') === 0) {
|
||
valueBox.css('background-color', '');
|
||
if (!valueBox.hasClass(dataColor)) {
|
||
valueBox.removeClass('bg-primary bg-info bg-warning bg-danger bg-success');
|
||
valueBox.addClass(dataColor);
|
||
}
|
||
} else {
|
||
valueBox.removeClass('bg-primary bg-info bg-warning bg-danger bg-success');
|
||
valueBox.css('background-color', dataColor);
|
||
}
|
||
}
|
||
|
||
// url
|
||
var dataHref = valueOutput.attr('data-href');
|
||
if (dataHref) {
|
||
valueBox.addClass('linked-value');
|
||
valueBox.off('click.value-box');
|
||
valueBox.on('click.value-box', function(e) {
|
||
window.FlexDashboardUtils.showLinkedValue(dataHref);
|
||
});
|
||
}
|
||
}
|
||
|
||
// check for a valueOutputSpan
|
||
if (valueOutputSpan.length > 0) {
|
||
handleValueOutput(valueOutputSpan);
|
||
}
|
||
|
||
// if we have a shinyOutput then bind a listener to handle
|
||
// new valueOutputSpan values
|
||
shinyOutput.on('shiny:value',
|
||
function(event) {
|
||
var element = $(event.target);
|
||
setTimeout(function() {
|
||
var valueOutputSpan = element.find('span.value-output');
|
||
if (valueOutputSpan.length > 0)
|
||
handleValueOutput(valueOutputSpan);
|
||
}, 10);
|
||
}
|
||
);
|
||
}
|
||
});
|
||
</script>
|
||
|
||
<div id="dashboard-container">
|
||
|
||
<style>
|
||
.navbar {
|
||
background-color: rgb(47,85,151);
|
||
}
|
||
|
||
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
|
||
font-family: Arial;
|
||
font-weight: 300;
|
||
line-height: 1.1;
|
||
color: inherit;
|
||
}
|
||
|
||
body {
|
||
font-family: Arial;
|
||
font-size: 12px;
|
||
line-height: 1.42857143;
|
||
color: #333333;
|
||
background-color: #FFFFFF;
|
||
}
|
||
</style>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<script type="text/javascript">
|
||
var scale = 'scale(1)';
|
||
document.body.style.webkitTransform = scale; // Chrome, Opera, Safari
|
||
document.body.style.msTransform = scale; // IE 9
|
||
document.body.style.transform = scale; // General
|
||
</script>
|
||
<div id="introduction" class="section level1">
|
||
<h1>Introduction</h1>
|
||
<div id="jumbotron" class="section level3 no-title">
|
||
<h3 class="no-title">jumbotron</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div class="jumbotron" style="background-color:#FFFFFF;">
|
||
<!--<img src="Microsoft-Viva-Insights-logo.png" style="float:right;width:180px;height:180px;">-->
|
||
<h1 class="display-4">
|
||
Employee Experience Report
|
||
</h1>
|
||
<p class="lead" style="color:gray;">
|
||
<B> Microsoft Viva | Organisational Insights </B>
|
||
</p>
|
||
<hr class="my-4">
|
||
<p>
|
||
<font size="+1"> <em> Based on decades of quantitative and qualitative research, and our own experience working with global customers and here within Microsoft, we have identified six key elements to a great employee experience. These elements are Strongly related to company outcomes, are predictive of lower turnover and are the foundations to a strong corporate culture. </em> </font>
|
||
</p>
|
||
<br>
|
||
<p>
|
||
<font size="+0">This is a framework for evaluating Employee Experience. The main components of the baseline are as follows:</font>
|
||
</p>
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
<!-- first column -->
|
||
<div class="list-group">
|
||
<a href="#overview" class="list-group-item"><font size="+1">1. Overview</font></a> <a href="#baseline" class="list-group-item"><font size="+1">2. Baseline</font></a> <a href="#kpis" class="list-group-item"><font size="+1">3. KPIs</font></a>
|
||
</div>
|
||
<!-- list-group -->
|
||
</div>
|
||
<!-- end col-md-6 -->
|
||
<div class="col-md-6">
|
||
<!-- second column -->
|
||
<div class="list-group">
|
||
<a href="#opportunities" class="list-group-item"><font size="+1">4. Opportunities</font></a> <a href="#distribution" class="list-group-item"><font size="+1">5. Distribution</font></a> <a href="#notes" class="list-group-item"><font size="+1">6. Notes</font></a>
|
||
</div>
|
||
<!-- list-group -->
|
||
</div>
|
||
<!-- end col-md-6 -->
|
||
</div>
|
||
<!-- row -->
|
||
<p class="lead">
|
||
<a class="btn btn-primary btn-lg" href="#overview" role="button">Start exploring</a>
|
||
</p>
|
||
</div>
|
||
<p><br></p>
|
||
</div>
|
||
</div>
|
||
<div id="overview" class="section level1" data-orientation="rows">
|
||
<h1 data-orientation="rows">Overview</h1>
|
||
<div id="row" class="section level2">
|
||
<h2>Row</h2>
|
||
<div id="total" class="section level3">
|
||
<h3>Total</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-d9bdf5fb37db0b49df45" style="width:1536px;height:864px;" class="gauge html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-d9bdf5fb37db0b49df45">{"x":{"value":75,"min":0,"max":100,"customSectors":[{"lo":80,"hi":100,"color":"success"},{"lo":40,"hi":79,"color":"warning"},{"lo":0,"hi":39,"color":"danger"}],"symbol":"%","label":"EXP Baseline","humanFriendly":true,"humanFriendlyDecimal":1,"href":null},"evals":[],"jsHooks":[]}</script>
|
||
</div>
|
||
</div>
|
||
<div id="row-1" class="section level2">
|
||
<h2>Row</h2>
|
||
<div id="wellbeing" class="section level3">
|
||
<h3>Wellbeing</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-8e7751c474f7d117b361" style="width:1536px;height:864px;" class="gauge html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-8e7751c474f7d117b361">{"x":{"value":52,"min":0,"max":100,"customSectors":[{"lo":80,"hi":100,"color":"success"},{"lo":40,"hi":79,"color":"warning"},{"lo":0,"hi":39,"color":"danger"}],"symbol":"%","label":"Wellbeing","humanFriendly":true,"humanFriendlyDecimal":1,"href":null},"evals":[],"jsHooks":[]}</script>
|
||
</div>
|
||
<div id="empowerment" class="section level3">
|
||
<h3>Empowerment</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-7549649db3c32a4db8c0" style="width:1536px;height:864px;" class="gauge html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-7549649db3c32a4db8c0">{"x":{"value":88,"min":0,"max":100,"customSectors":[{"lo":80,"hi":100,"color":"success"},{"lo":40,"hi":79,"color":"warning"},{"lo":0,"hi":39,"color":"danger"}],"symbol":"%","label":"Empowerment","humanFriendly":true,"humanFriendlyDecimal":1,"href":null},"evals":[],"jsHooks":[]}</script>
|
||
</div>
|
||
<div id="connection" class="section level3">
|
||
<h3>Connection</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-7ec43480286cbd8a87f4" style="width:1536px;height:864px;" class="gauge html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-7ec43480286cbd8a87f4">{"x":{"value":91,"min":0,"max":100,"customSectors":[{"lo":80,"hi":100,"color":"success"},{"lo":40,"hi":79,"color":"warning"},{"lo":0,"hi":39,"color":"danger"}],"symbol":"%","label":"Connection","humanFriendly":true,"humanFriendlyDecimal":1,"href":null},"evals":[],"jsHooks":[]}</script>
|
||
</div>
|
||
</div>
|
||
<div id="row-2" class="section level2">
|
||
<h2>Row</h2>
|
||
<div id="growth" class="section level3">
|
||
<h3>Growth</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-a317fe42a7d39eff723e" style="width:1536px;height:864px;" class="gauge html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-a317fe42a7d39eff723e">{"x":{"value":61,"min":0,"max":100,"customSectors":[{"lo":80,"hi":100,"color":"success"},{"lo":40,"hi":79,"color":"warning"},{"lo":0,"hi":39,"color":"danger"}],"symbol":"%","label":"Growth","humanFriendly":true,"humanFriendlyDecimal":1,"href":null},"evals":[],"jsHooks":[]}</script>
|
||
</div>
|
||
<div id="focus" class="section level3">
|
||
<h3>Focus</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-45314b05fe4daec3b532" style="width:1536px;height:864px;" class="gauge html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-45314b05fe4daec3b532">{"x":{"value":100,"min":0,"max":100,"customSectors":[{"lo":80,"hi":100,"color":"success"},{"lo":40,"hi":79,"color":"warning"},{"lo":0,"hi":39,"color":"danger"}],"symbol":"%","label":"Focus","humanFriendly":true,"humanFriendlyDecimal":1,"href":null},"evals":[],"jsHooks":[]}</script>
|
||
</div>
|
||
<div id="purpose" class="section level3">
|
||
<h3>Purpose</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-f8c1a6ae2e62a5dc46eb" style="width:1536px;height:864px;" class="gauge html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-f8c1a6ae2e62a5dc46eb">{"x":{"value":59,"min":0,"max":100,"customSectors":[{"lo":80,"hi":100,"color":"success"},{"lo":40,"hi":79,"color":"warning"},{"lo":0,"hi":39,"color":"danger"}],"symbol":"%","label":"Purpose","humanFriendly":true,"humanFriendlyDecimal":1,"href":null},"evals":[],"jsHooks":[]}</script>
|
||
</div>
|
||
</div>
|
||
<div id="column" class="section level2 sidebar" data-width="300">
|
||
<h2 class="sidebar" data-width="300">Column</h2>
|
||
<div id="definitions" class="section level3">
|
||
<h3>Definitions</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<p><strong>Why is Employee Experience important?</strong> </p>
|
||
|
||
<p>A positive employee experience is strongly related to company outcomes, predictive of lower turnover and foundational to a strong company culture. Research has shown that companies in the top 25% on employee experience report 3x the return on assets and there was lower turnover within teams that were scoring in the top 25% on employee experience within the company. A positive employee experience can be broken down into 6 core pillars: </p>
|
||
|
||
<ol>
|
||
<li><strong>Wellbeing</strong>: You feel uniquely valued, your personal time is respected and are treated with dignity.</li>
|
||
<li><strong>Empowerment</strong>: You are empowered to make decisions about how to best direct your talent and effort with the support of your manager.</li>
|
||
<li><strong>Connection</strong>: You belong as a trusted, integral member of a diverse community. You have high-quality relationships with your colleagues.</li>
|
||
<li><strong>Growth</strong>: You get what you need to maximize your strengths, learn new skills and broaden your exposure.</li>
|
||
<li><strong>Focus</strong>: You know what success looks like, what to prioritize and the time to work towards those goals.</li>
|
||
<li>And finally <strong>purpose</strong>: Your work serves a bigger role and you are able to have meaningful impact. You can control your diaries and foster close relationships. </li>
|
||
</ol>
|
||
|
||
<p>Use Workplace Analytics metrics to quantify behaviours for each of the 6 employee experience pillars. Find areas of opportunities and growth across the organisation to implement targeted interventions.</p>
|
||
|
||
<p><strong>Read More</strong> </p>
|
||
|
||
<p>Read more about how employee experience impacts businesses.</p>
|
||
|
||
<p><a href="https://www.gallup.com/workplace/236927/employee-engagement-drives-growth.aspx">How Employee Engagement Drives Growth (gallup.com)</a></p>
|
||
|
||
<p><a href="https://www.ibm.com/downloads/cas/XEY1K26O#:%7E:text=The%20Financial%20Impact%20of%20a%20Positive%20Employee%20Experience,to%20recharge%20and%20work%20more%20flexibly%2C%20they%20can">The financial impact of a positive employee experience</a></p>
|
||
|
||
<p><a href="https://hbr.org/2017/03/why-the-millions-we-spend-on-employee-engagement-buy-us-so-little">Why the millions we spend on employee engagement buy us so little</a></p>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="baseline" class="section level1">
|
||
<h1>Baseline</h1>
|
||
<div id="row-3" class="section level2" data-height="5%">
|
||
<h2 data-height="5%">Row</h2>
|
||
<div id="title-placeholder" class="section level3 no-title">
|
||
<h3 class="no-title">Title-Placeholder</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h2>Which teams could use further support to improve overall employee experience?</h2>
|
||
|
||
</div>
|
||
</div>
|
||
<div id="row-4" class="section level2" data-height="95%">
|
||
<h2 data-height="95%">Row</h2>
|
||
<div id="baseline-1" class="section level3">
|
||
<h3>Baseline</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<p><img src="data:image/png;base64,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/DryPrwjHqT+h1PEXwz2Af58GjetLk9HxKzFS+88MsJrwoSrF9y5eFZERNVTmxq793ZN3rozc9rXhAklC24p6/jXvb6hMXqZtfjO7sleE67u2hqRKjsy8WtCyYKOn9f3LXocuaFjGGyhABCnoPSHr0dExIVXjXrxmfF1z4yvWzP27quGRMT6u/atbTjWQ2v+/f31EXHVWQu74j6Tv3zW/Ij1jx2siYiGgyuf7braUf9zk/ofgD9F7szVU68rGxFvpjfOq17++erl895+4c0oKDtv4e35A9026sbxMyI2/2zPgYio31NZ3hUP6qj/+ab6H4ATMzT/LyOipfLRpqwLdY/W7z7eg5seb9gWEWUFF3R9S5F/Y8HUiG0/e7cpIurerS7vutpR/9Nr0BgAA/XSioa5/9CV/omIrc3L/yG94MkPB3qforkjr4vYuL6pLs6IXc1rKyJKR9408aPO+p/56n8APqFy/nrimIh9a3e3xUdR3/jukxFzJ44tPKOz/meh+h+A/umY7RVRUjru6eeKfvdc0e/WFdxemhMRT/xo9/ojM3qGzH+o4KelObF1/7cX1P3VlXV/tWDPA1ujpHTc00tyuzcVzx15Q8QTj71fGxHp9/+5oise1FH/c5P6HxLv1AkAdU7TSpWVlvRK03RGctLlFR2vDzHh6jsfeeSRR/oa8zWhoHejepesSV3dW2dd23PW14SCVERE+ngBoE4KgDgV1aTbIiKuGlX+90MndywVnLnw78f88qqIaH/6laN/4PVa82Wr2yOG3H3D0IzVofetGTU/mi+7ZnfRokNTbxn14t8P7Vn/8+Han+wrumZ30TW7y35ysOZjelYAp6r65h07WrLWGna8t7/+BLblX7HhvBmRXvv56uXzDoxb0hEPyqz/aX3jgd8v/3z18s9XP/rAngN/9ucCcIoqurlwfESU73j6/qauENDhuvu3P1ceERFbWt872iMrazesaIkYMfvmzFRP/pwN50+N+g2z31gzb//o286fd0d+z/qfw2/dv33N7DfWzH7j6fvfzY4dAXA06fbNEbF1//KKthml4558ftJrzxe/9nxqZWlORGxeteexXf37undre23n/xr2w5+Puy72z/3izs99o+X8xeOevG14z/qfDx9b0fi5L9Z+7ou1C1Y01/k6GeBjsuXg4YFtGzXxV1PGxM7ts17Zcv0fh31n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" width="1536" data-figure-id="fig1" /></p>
|
||
</div>
|
||
</div>
|
||
<div id="column-1" class="section level2 sidebar" data-width="300">
|
||
<h2 class="sidebar" data-width="300">Column</h2>
|
||
<div id="definitions-1" class="section level3">
|
||
<h3>Definitions</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h4>Wellbeing</h4>
|
||
|
||
<ul>
|
||
<li><strong>Actively Manage Workloads</strong>: % of employees with weekly collaboration under 20 hours and work week span under 45 hours</li>
|
||
<li><strong>Promote Switching Off</strong>: % of employees with 2+ quiet days a week (maximum 2 of emails and IMs sent)</li>
|
||
</ul>
|
||
|
||
<h4>Empowerment</h4>
|
||
|
||
<ul>
|
||
<li><strong>Support and Coach</strong>: % of employees with > 15 minute a week of 1:1 meetings with manager (on average)</li>
|
||
<li><strong>Empower Employees</strong>: % of employees with < 50% manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Connection</h4>
|
||
|
||
<ul>
|
||
<li><strong>Enable broad connections</strong>: % of employees with an internal network size of over 20</li>
|
||
<li><strong>Encourage small-group meetings</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week</li>
|
||
<li><strong>Encourage small-group meetings without manager</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week without manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Growth</h4>
|
||
|
||
<ul>
|
||
<li><strong>Promote skip-level exposure</strong>: % of employees with >30 mins of skip-level meeting hours with maximum 8 attendees</li>
|
||
<li><strong>Facilitate external connections</strong>: % of employees with at least 15 minutes of external collaboration per week</li>
|
||
</ul>
|
||
|
||
<h4>Focus</h4>
|
||
|
||
<ul>
|
||
<li><strong>Make time available to focus</strong>: % of employees with at least 4 focus 2-hour blocks per week</li>
|
||
<li><strong>Enable 'Deep Work' Days</strong>: % of employees with at least 1 day of <2 hour of meetings excluding weekends</li>
|
||
</ul>
|
||
|
||
<h4>Purpose</h4>
|
||
|
||
<ul>
|
||
<li><strong>Help employees own their time</strong>: % of employees with 25%+ of collaboration time in self-organized meetings</li>
|
||
<li><strong>Foster meaningful interactions</strong>: % of employees with at least 30 minutes of 1:1 meetings with peers a week ona verage (excluding line manager 1:1 time and 1:1 coaching time)</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="kpis" class="section level1">
|
||
<h1>KPIs</h1>
|
||
<div id="row-5" class="section level2" data-height="5%">
|
||
<h2 data-height="5%">Row</h2>
|
||
<div id="title-placeholder-1" class="section level3 no-title">
|
||
<h3 class="no-title">Title-Placeholder</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h2>Which underlying behaviours are impacting the employee experience pillar scores?</h2>
|
||
|
||
</div>
|
||
</div>
|
||
<div id="row-6" class="section level2" data-height="95%">
|
||
<h2 data-height="95%">Row</h2>
|
||
<div id="kpis-1" class="section level3">
|
||
<h3>KPIs</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAADAAAAAbACAIAAADMy1IMAAAACXBIWXMAAB2HAAAdhwGP5fFlAAAgAElEQVR4nOzdP0wr+bk//s8mpyS7KQcNpwvam1Q2XyFXK7S6lckFucpqpVTWDcjdjW5qWGiz2tY5FK6iRNrKYo9wlf0SbTWCezwdXGXTMV9GOt2PvXfL8yvMf8ZgwGDMeb2qcwCPn/lnBs/bz/PBu3fvAgAAAAAAAAAAMJ5+MuoCAAAAAAAAAACAuxMAAgAAAAAAAACAMSYABAAAAAAAAAAAY0wACAAAAAAAAAAAxpgAEAAAAAAAAAAAjDEBIAAAAAAAAAAAGGMCQAAAAAAAAAAAMMYEgAAAAAAAAAAAYIwJAAEAAAAAAAAAwBgTAAIAAAAAAAAAgDEmAAQAAAAAAAAAAGNMAAgAAAAAAAAAAMaYABAAAAAAAAAAAIwxASAAAAAAAAAAABhjAkAAAAAAAAAAADDGXoy6AG4lbS03k+EustJ4VS8Nd5Hjpnir2jBjwkkxjpx0AAAAAAAAAMOkAxAAAAAAAAAAAIwxASAAAAAAAAAAABhjAkAAAAAAAAAAADDGBIAAAAAAAAAAAGCMCQABAAAAAAAAAMAYezHqAhiGSuNVvTTqIuApcVI8aaX6q1f1URcBAAAAAAAA8GzoAAQAAAAAAAAAAGNMAAgAAAAAAAAAAMaYEWDcTZ52tjZ3DrIsO/5CHMdTs7Mz5Wop6vfzb3YOktOf7z1gcb5cigofcN9qKsNa9qAFdN/s7ByEsxJCiOM4XLdNRirP0+7Wm52Dg0sV37PgB1rs+23Ih/dj7KM87WxttpNsGPUWLf6xDrMrmz7EceUeT1JYeK/0qdnJOy7WSQcAAAAAAACE8MG7d+9GXQODS1vLzeTqlyuNV/XS8J4l76yvtrNLXzx9jjxtbTSTy98+E1dqS/Xq2U3nm34+xJXGUr3/Xerrqwl5p7XR7rv4y8UUKt6qA23UPE+3rl+74zriymL/lSxcxUFL6FN+XFtbKV7xi9mMfgVXaovzt8oOPNBib/bQJ0Wf5V//FP126ZUHPfzhfb6q4e2joq1yUnbaWi8+J84dlHc96R54Fc4qHOB17laH8o2vgyfLvfal4spCR3TSAQAAAAAAAE+OEWDcRp621ldvuIudJe3V9VY68M+HLGmurnfyu5TTWV9evfb2d5a0V5fvtvCbnz1tra/euHbHdWRJc3V5vZUWVhKVZ+Oirydv0psXnb4pSqfEs+WiG/69HXJTYiCEkCXt5mq/eh9rsU9Dqd6oFH8nabb67KB0qzj9EyqNwVNJwz28H2sf5Z0+6Z8QwtTkvVIoj3aYDfg6N/DrVt5ZXx7wlaL3UrHeunnBz/qkAwAAAAAAAG5NAIjBpa2Bb2InzfVO2rk5/HP6gPbGbVM6/XusXF34HQNG1xgk2XS1kH5Rp6i6WJgxGSABdIv8T36LHRJCGDSa9UCLfUJK9bVaYUKrTwQobfVtGTRw/Ge4h/ej7aO01b/quDZ/j5ZMj3eYDf46F7L2ar8M2Ik8bS0PuCfPLTe5Yac+/5MOAAAAAAAAuCUBIAZ0sLneJ9VQLGs3b3XX+5YRoDfXBA0Kl37jjfpb6DviaLBKiu7Dl2bulgAaPP9zXTTjGjdtuQda7BMTVZcGjgANI/4z3MP70fbRm36rHkLfplSDebRVONy63etcSDave91KW6u3W9yZa2p/P046AAAAAAAA4FZejLoAxkWWndxxjiu1xflyKYpCCCFPOxs3J33iWmOpWrrhAdlON69WB8sIJMnpXfWL5eTp1kZxOCdptmZeDT5/qb+01Sf9E8eVxaX540p6pWwm2dUfzdqrrcnLpZRmKiG5GhVI3qT1Uv+ii/M/lcUrm7FfKiWuNE5LztPO1mbBSKFrttwDLfYJiqpLtZ3C2EWy2ZkvnW7wvluktjb4ug718H68fZQUHMBnT3eP/M/jrULWb8v3f5275nWrb91XXykK9+rFQ+vGpT67kw4AAAAAAAC4BQGgZyFpLt+ly0RcW1sZMHDT9zFRqbqyFq6bVnTpEdc84DYJoH7lRKX6ytpMcduN4tvpt3RNwOPixoyiUn2lNF88yangPnxpvhYnV3/02gRQn/zPzOWf71N0pXGhhqhUrZfKkwUF94kNPNBih2PoJ0XfCFDW3uiUew/qf3Qs3eXAG8Lh/VT20T3yP6NYhaLXuVeTreWiSvq9buWdzcL2XIWvFMV7NWtvpdWLpT+VHQoAAAAAAAA8MUaAcRuVRlE4IirPFo9HCn2SD1F1sXDgVXZ4iyFgfcsJUam+VjiwKWtv3XMCzqD39M9qqa4U13J1clCfzXjNFLD88KDgq1fyP8VF92lJE1VXGgU7p6CKB1rsE9Z3ENjx/Lohx3+GcHiPah/Ftcbaq1Nra2uNO22BEEazCn22fGm+z+4vfN1Kt4pSkf2OhahUL6r88uvE+3fSAQAAAAAAAAMSAOIWrraW6emfACoYRtV7xGTfyNDA4tp83z4W/SJG97z3fbt7+qe1FMZGrsY1bpsAyrs7BdVczf8U/1ifPRP65ByuVPFAi33arosAtYbd/ef+h/do9lGl8WrleOBfTxRFpbu2/xnBKvTf8v1e6A4KEkADT+c7VZqphBDHcVypVGq1RqOxtra29upCFOm9POkAAAAAAACAgQgAMbh++Z87PCKanLp3NdfcSg/Hd9OvKrpVP7Die/o3DzcaNNnTJ9fR5379/fI/1+3LwnovVfFAi33y+keAkmHGf4ZyeI9kH10XXLq9EazCdefz4K9bg07nO69Uf/VqZWVlpV6vV6ulUimKoouVvK8nHQAAAAAAADAAASAGFk/eNshw60fcIp5z47KLIxLZTvfOCaC75n9u0dunuOjC+/WDhgHyw6KmRddvvcKcw8UqHmixY6DPYKVCd43/DOfwHsU+GuR0uIURrMLUrV/nCgw4ne/WS31fTzoAAAAAAADgRgJADOyaG+NDaOhzWzffph/GmLHziu/pDxZ46JMAuhp4GjgBVJj/Kei+Ulz1nZyv9oEWOyZK9YEiQHeO/wzn8B7FPhp6/ufRV+H6PM2gLyqFUZ37er9POgAAAAAAAOB6L0ZdAMNQabyqD3HsztAMpZdGsQGaC0WTUyFcuQ2fHeYh3Kms4nv6A67jwMWUZirh6jCp5E1aL53fxcX5n4L0RXHVWXt1uT1I3f2qfaDFDtHDnhSleqOSNAuHfp24R/xnOIf3KPbRkE/5p3+YFesTFrznxhnXrQEAAAAAAAA8Bh2A4GkpzdcKmoxc6gE0cP6Hh3JDF6BKY+XO8Z/xdd+IyxPwgKlFAAAAAAAAgIcjAARPTPG4sAsJoBHlfx5obtC4jiMqjmr1VGaeYkuuuxvXfXTOM1iFIbI1AAAAAAAA4LkRAIKnpk8CaLNzesu+aBaQ/j+PrTCGdSxpttJ+3wMAAAAAAACAIRMAgseQHx4M/sNRdbFgulS20z1OAKVvkivflf95ZHlno903/xPe0wiQ+VkAAAAAAAAAo/Fi1AXAnWSHeQjXhw2KMzfxnSMK0WQcwpXIx8FhHkp3XWTfYkozlZBcTvlkO928Wo0K8z+VxWrxooqrrjRe1e81o+qBFjs20tbqtfGfEEJImq2ZO26PoRzez2AfjesqRJNTBXUPsFdvWOp4bg0AAAAAAADgMegAxJhK3tzUX6VoTtZ9epREk1MFXz3ry3NtLcXTovoXU5rp2wOoMP8z0y8CUFz1weEARV/ngRY7JtJW8+o+KJA01zt32yLDOLyfwT4a21WIJgum+N238LHdGgAAAAAAAMAjEABiXN1033vYDYD6hHIGSgD1yf/0j+2EUJqvXY0QZDvd/Hb5nz5RhOzeoYEHWuw4GDT+E0IIWXvjbhGgYRzez2Afjesq9EkL3rRTO+vLy+vr661Wq9VJ0zTN8wsPGNetAQAAAAAAADwCI8AYV1l7K632n32TbhWNaIpny/cYwVM4mOt0Mld/d8j/hBCVZ+N2dulx2c7Wm6uLunZBhcsJyZu0Xur3qLyzvtoOcRympqYmJ2cmJ6MoClF0YRUfaLFPX7/4T1yJs6RgN2ftjU555drjo8gwDu9nsI/GdhWKXyuuLfzkdSLLsiwLZ48+m/E1tlsDAAAAAAAAeHgCQIyvZLMzXypOVuSdzaKUxv3yP30TQNdHPPLORmFYozZ/Xf6nXwLo6tPfECTqlxrov/GOwyVZFnpBhNOC186v5AMt9onrG/+pLdWreVgu+u4dI0BDOLyfwT4a21XokwDqX/ggOcGx3RoAAAAAAADAgzMCjDGWtVdbacH8mz6Rm3vnf/oM5goha6+uF096yjvrq8Xxn6Ubb8BH5dmiJ7vshvxPv+X023j9Ii6VxerVdMkDLPYpuyb+U41CKNUbRUPi7joIbAiH9zPYR2O7CsWvFf0KHzAnOLZbAwAAAAAAAHhoOgA9C0lzufA+72DOJsyMoaS5elCpLc5XS7072nna2WgWxiOGc9s7qi7VdooiPVl7dX2nsrg0Xzoer5Pn6dbGZnKlXUcIg8V/QghRdbHSLr6Ff25RNzQSuqbogo23tdnuE3G5+jQPtNghGf5JcUP8J4ReBCgZZheg+x7eT3sfDWRsV6Hf6Xu58JPKC9v/XIndjevWAAAAAAAAAB6YABBjL0vazaR9449VGsOJOUXVlcZh8ainLGmuDhA6qTQGiv+E0G+O0DkDNjXqn1saaOP1Cyw90GKfpAHiPyEMPwJ078P7GeyjsV2F/gfDPXbq2G4NAAAAAAAA4EEZAcaYqlQqg8zHOhbX1obY5ahUX+sz6+lmlcZavTT4DfjSzLVPNPhQs6i6csea40qjf27lgRb75PSL/xT03RnKILBhHt7PYB+N7SqU6q/u+lLRf6eO7dYAAAAAAAAAHpAAEONqpr6yVhsoJBHX1oZ91zsq1V+t1W6T0Tgu5NVt0j8hhFCav2YlB8//hBBCqf5qwC127hlqays3RKceaLFPSf/4T2Hfnb777BYRoOEe3s9gH43tKtyl8Bt36thuDQAAAAAAAOChCAAxxqLqylrj2hROXKmtvXqgnhdRtb7yaq1RiQe4Dx9Xao07FhKVZ/s9we3yPyGEEFV7JQ/ys3Fl4JIfaLFPxC3jP6E3peneEaAhH97PYB+N7SrcqvBBKx/brQEAAAAAAAA8iBejLgDuJSrVV17N52l3a3MnybKTL8dxZXZxvlyKHvqWd1Sqr5TqIU/T7ps3OwcH2VkNIY7jMDU7O1Ou3rLrz6WnKM/G7XOLPVv+rfM/veWV6iuv6nmedrfe7BwchPMlhziOp6ZmZ+6w6R5osSN3+/hPCL0I0M5qu2CvZe2NTnnQLMaQD+9nsI/GdhUuFX657jA1NTt565eKsd0aAAAAAAAAwNB98O7du1HXANfJO+tFQYpK49X7Ms6mzxZ4gMlmPDqHNwAAAAAAAAD3ZwQYPHF5d6egkUyoLEr/AAAAAAAAAABBAAieunSraJBUqMxoEAMAAAAAAAAAhCAABE9b2momRV+X/wEAAAAAAAAAjr0YdQHAiTzPoyg6/U+6tdFMirr/yP8AAAAAAAAAAGcEgOCJyDsbq4XTvq6Ia/PyPwAAAAAAAADAMSPA4ImIJqcG+8HKYjW6+acAAAAAAAAAgPeEABCMl0qjrv0PAAAAAAAAAHBGAAieimgyvulH4tqa+A8AAAAAAAAAcMGLURcADCauNJbqJcO/AAAAAAAAAICLBIDgqYjKs5WdcBCyLDv7YhzHU7OzM+Wq6A8AAAAAAAAAUOiDd+/ejboGAAAAAAAAAADgjn4y6gIAAAAAAAAAAIC7EwACAAAAAAAAAIAxJgAEAAAAAAAAAABjTAAIAAAAAAAAAADGmAAQAAAAAAAAAACMMQEgAAAAAAAAAAAYYwJAAAAAAAAAAAAwxgSAAAAAAAAAAABgjAkAAQAAAAAAAADAGBMAAgAAAAAAAACAMSYABAAAAAAAAAAAY0wACAAAAAAAAAAAxpgAEAAAAAAAAAAAjDEBIAAAAAAAAAAAGGMCQAAAAAAAAAAAMMZejLoABpV31lfbWQih0nhVL13zg2lrvZlkvX/HtbWVanTh4f3FcRymZhfny6UoKlrscjO5sMhhG3gNH0eedrpvdnYOsux0s8VxPDU7O1Oulh5kAzwBI90HedrJo4vb9okdEwAAAAAAAADwJAkAPTPF6Z/BZFkWsqyZtONKban+MCGfsZCnrY3TrXhelmVZliXtdogrjaX6s40BPb7jTR7X1qpiPgAAAAAAAABwS0aAPSf3Sf+clyXt1VY6vLrGSZ621lcL0z8XZElzdXm9kz9KTc9funXzJgcAAAAAAAAA+tAB6NnIO2fpn0pjrW97mv6zlPI83TrtfJM0WzPv39CltLXaTE7/F8eVxaX5KDqdiJbnaXdrs32ymbP26np4qIFooxFVV15VR13EOU+tHgAAAAAAAAB4inQAeh7yzvpqe4D0z7WiqFRfWavFx/9N3rxnTYDyzvpp+ieuNNZerazUS2fpnxBCFJWq9ZVXa43KyUbK2hvaAAEAAAAAAAAAIyUA9AwMJf1zIqouVo7/+Z4lgNKt9rnxaddtxQtBKREgAAAAAAAAAGC0jAAbd0NN/4QQQogm4xCy25aRp1sbmwdZdvLAOK7MLs6XS9Gd68nT1sZm0ltgb2nViyt3uupxrXgOV9pabibXfP/iwjaPu//EtaUBhnpF1aXaTu/ps/ZWWj03Le34aePa2ko1pJ2NzfbpSiwundtB51fw7LvXFt2bQbZzbjuHOI6nrm6bc1unN/MtTztbmzvnn63oQZcfFS4eYP1drXbAUk9Wtydrry63w7mnv1pPwXNcWquig+5uWwMAAAAAAAAAxoMA0FgbfvrnvlWcyrIkaybtgcI3Ny/zeGkXFxaVZ+N2loWQ7XTz6tUnSd/0kiXxbPnGAvLuzsl2XByw3Ki6WGn3wivJm7ReuhJPCSFtrZ5Pt2QHhyGUitYvhJBlSXM1iWu1qX4lFidxsizLrm6bmx55vEELYzX3d/dSb/EcaWujmRSuVVxpLPU/Fx59awAAAAAAAADAQzMCbHxdTP+8Glr6Jz886YsyOcgS09a1DWKy9mrr1pPE3vRZZtZeXT83bysqz/bmcGU73atTuO6Y/5kZPAJSmjmZlnZwWDAFbGfjXPonhHPZov7bLGu3k6Kv39yHp+8osqTZ/5FJc33o88vuUerg0tbq5fTPueUnzb4H3WNvDQAAAAAAAAB4BDoAjanzKYu40hhe45KzUVhhaoAA0LnJWZXG0vzZ8KU87Ww0exUmm5350m06viRJcrzA41TTuW4vF+ZtXdcD6Db5n9uGnk6cTkvLDvMQLj2yN/sqrjWWLs2WSlunwaDidbwq3Tq3sy9s5jzdOt00xY2Qrj7u/FNd+6AQQoiqK6+qRd84dwhWGmcdfW5Zaqn+6lX9VsPawqUtWDsd3pWnna3Ndu8ZkmZrpn8/nztvDQAAAAAAAAB4inQAGkeX52Mlzds32bm60DxPW+vnYkW1+QFSRafJmcpi/SzrEUKIStWVtdpxg56i/jjXi2trK2c9jaJS/XRhIdk8a9MSVRcrxU+RHx70FjRI/ufMIKGnM9HkybyuwhZAvTzLpc5M5yJT/dfxkpMwU6g0Vi5t5qhUXzp5VN/tXGm8Ov+4C091h50TwvkmRnFt7VzQ5r6lDuDSFqye24TVPsfJBQ+wNQAAAAAAAABgpHQAGj9Jc/X4X3Ec99rM3NDv5NLDlwuHTF0U15YGaoRy2gMn2ezMRJfCLn2bx9zl2aPqYqXdTMKlNi2lmUpIkhCSN2m9dLYBTmZ6DZb/OUkLDVnhk5+LTBWs41Jtp2BEVa9NTj/R5FRvH/QroyjKddo8KRwc5uGW4+PS1nrzLOdzYTXuV+ogzo1ru7oF+x4np4a/NQAAAAAAAABg1HQAGltxbW1lZaVROf5v0lzv0/DkbosecA7SWQ+crN1cXV5eXl9vtTqd9F6l9EntlGaOV/ZCm5aTryZvznVBul3+59xaDFVRO6GzDjkzRXmtqDxb3AToqjzP07TTaq0vN69NdN2yB9LNz9tZP5mYdbH5zzUPGbDUwZ7/NEFVuAVDKM1f03lq2FsDAAAAAAAAAJ4AHYDG02lEp1RvVJJeqiJrb3TKgwZ3ipYZx2FqdnG+fGFw003OFRBCCCHLkiwLSbsdQogrtdsuLoTQfw7XabuhixVc7QF0y/zPOXdtAFNUcnzdOLF+37yuR06ep92tzZ2D47ZPI3E2+utK85/zHq7U025N127eHu18AAAAAAAAAHg/CACNoYsNem4bAao0BpwVNqhSfa0xubXZTq5EPbKk3Uzat2koNKCLwY4rCaDb539Oo0XZYR7CwLWetvMZIIzSc+dhY3lnvWA22CPLO6ejv65p/vNIpfaLiQ1n0BgAAAAAAAAAjBEjwMZPZfFSmqZUXzueeRSy9morLXjMw4pK1frKq1drjVqtUjDAKmuvDm88WQjhSvbj0hSwO/T/OZu8dWGS2A1O8z/XhFEuP9Hdho2d67vTE8dxXKlUarVGY+3V6Ry4hzVY859HK/WgYMBXz51TVgAAAAAAAAAwnnQAehai6lJt5zh3kTRbM0Pu8TNoFaVqtVSt1kPI8zTvHr7ZOe0KlO108+rAXYD6TW7KD/u0dbnQAyi6y/yvqDwbt7MshJBsduZLg5SadzZP8j+VmVtv736thorCK2fPFFcaS/Urm+YxIl+DNf95hFJP2/v0b9Z0epwMnMsCAAAAAAAAgLGmA9AzEVWXTroAhaQ55IY7/eWd9eXl5eXl5Yt9h6KoVKpW6yuvTju+ZH3btRTo88OnDXeu5m1K8721PzjM79D/J4QQouriSakDdVHKOxsnjW7i2vzg+Z9o8tpWQyfVF34trhVEas43InowgzX/eZxSb9iCdxnMBgAAAAAAAADjTQDo2YiqK6fzlbL2xuNEgE4nWiWbw3zCpHk1gpO2mtfkOo5neGU73e7hXfI/4SxEFEJImuuttP/65GlrffUs/rM0cGujcGHYWMEmS7fafZocXVNL84HzPwM2/7l5OcMp9foteL4H0a0PAQAAAAAAAAAYTwJAz0mpfi4CNEgbmyE85cxZ35z1VpqfC2Tkedo6TY7cdkhW0lxvdU6WlqedsyWFymJR4OY0AbRzEMLdwh8XIlRJc3V5vdVJ80ur1GmtL682T0ab3Tb+Ey61GjqXM8rTzvpyYUDmNGWVtTfO55LytNNaXz3/kIPb9Fka0Fnzn7i2dk3zn6GUmu10b16DS1uwc34Tnk9myf8AAAAAAAAA8L54MeoCGKpSvVFJjnMWSbM18+ru/Vpu/4xZ0lwt7vBSadyqjkqlkiRJ0l5N2oMvKirPxu0sy7Is3D38Uaq/aoT1k3xPlrSbBSWcGiARU/wkA2yyCw+YqYTkFj8/ROeb9mTt1eWbtsYdS40m4xCyc89RaVx36F7YgsX76NpJZQAAAAAAAADwvOgA9Nyc6wJUOEnrIZ5x7XR2VoG4cvuxUTPFi4wrjWsWdTYa6l7NX0r1lbVGrXLNGp2U8urOEZP+myyu1SpXv1qqN/oWFFdqjZOFZQ/QAeiW7lbquX3Xc1Mvo1J97brnue44AQAAAAAAAIBnRweg56dUX6sdHA9CSprrk3fqUnMrUXXlVTlPu1ubO0l2MhwrxHFldnG+XIru8uxRdWVtsrVx0ount6xq6dpFRZNTvTYy9x3+FJWq9VJ1vrdGB9n5VYqnZmdnyjcUMshTVFdeldPWxubpBovjyuJSvRQ6671+NlOT55+jVF9Zm+lc2MDnt8lkpd1MQgjJm7ReGnH05U6lRtWVtdDaaJ/OVjvMQ7h+b5fqK2vzFw+6gQ4TAAAAAAAAAHh2Pnj37t2oa4ChSFvLzSTceTLX05B31nvhreuHYAEAAAAAAAAAnNABiGci72wmIYT79/95YCcxpeKET7rVPu55NPmUVwIAAAAAAAAAeEJ+MuoCYAjytLNxnJypLI5J95+kud5J87P/53naWu9lg8ZoLQAAAAAAAACAkdMBiHF22k7nRFybf+Jzs0rztTjphZWydnO1XfQzT38tAAAAAAAAAICnQwcgxlk0GZ//b1xbevqNc6LqUqMS9/9+XFtbefprAQAAAAAAAAA8GR+8e/du1DXAnaWt9WaShRBCXGks1UtjE5zJ87S7tbmTZNnJV+K4Mrs4Xy5FY7MOAAAAAAAAAMCTIAAEAAAAAAAAAABjzAgwAAAAAAAAAAAYYwJAAAAAAAAAAAAwxgSAAAAAAAAAAABgjAkAAQAAAAAAAADAGBMAAgAAAAAAAACAMSYABAAAAAAAAAAAY0wACAAAAAAAAAAAxpgAEAAAAAAAAAAAjDEBIAAAAAAAAAAAGGMCQAAAAAAAAAAAMMYEgAAAAAAAAAAAYIwJAAEAAAAAAAAAwBgTAAIAAAAAAAAAgDEmAAQAAAAAAAAAAGNMAAgAAAAAAAAAAMaYABAAAAAAAAAAAIwxASAAAAAAAAAAABhjAkAAAAAAAAAAADDGBIAAAAAAAAAAAGCMCQABAAAAAAAAAMAYEwACAAAAAAAAAIAxJgAEAAAAAAAAAABjTAAIAAAAAAAAAADGmAAQAAAAAAAAAACMMQEgAAAAAAAAAAAYYwJAAAAAAAAAAAAwxgSAAAAAAAAAAABgjAkAAQAAAAAAAADAGBMAAgAAAAAAAACAMSYABAAAAAAAAAAAY0wACAAAAAAAAAAAxpgAEAAAAAAAAAAAjDEBIAAAAAAAAAAAGGMCQAAAAAAAAAAAMMYEgAAAAAAAAAAAYIwJAAEAAAAAAAAAwBgTAAIAAAAAAAAAgDEmAAQAAAAAAAAAAGNMAAgAAAAAAAAAAMaYABAAAAAAAAAAAIwxASAAAAAAAAAAABhjAkAAAAAAAAAAADDGBIAAAAAAAAAAAGCMCQABAAAAAAAAAMAYEwACAAAAAAAAAIAxJgAEAAAAAAAAAABjTAAIAAAAAAAAAADGmAAQAAAAAAAAAM/21IUAACAASURBVACMMQEgAAAAAAAAAAAYYwJAAAAAAAAAAAAwxgSAAAAAAAAAAABgjAkAAQAAAAAAAADAGBMAAgAAAAAAAACAMSYABAAAAAAAAAAAY0wACAAAAAAAAAAAxpgAEAAAAAAAAAAAjDEBIAAAAAAAAAAAGGMCQAAAAAAAAAAAMMYEgAAAAAAAAAAAYIwJAAEAAAAAAAAAwBgTAAIAAAAAAAAAgDEmAAQAAAAAAAAAAGNMAAgAAAAAAAAAAMaYABAAAAAAAAAAMI7yPM9HXQM8CS9GXQAAAAAAAAAAwK3kaWujmWQhhLi2tlKNRl0PjJgAEAAAAAAAAAAwTtLWajMJcVyZmpqcOUn/5HkeokgUiPeTABAAAAAAAAAAMD7yzmZysfFP3llfbWchhBDiSmOlXhpdcTAaPxl1AQAAAAAAAAAAg0q32lmoLJ6mf9LW8mo7CyGO4ziELGm20pHWB6MgAAQAAAAAAAAAjIv88CCEykyvyU+etpabSQih0lhbWVlZWavFISRvJIB47xgBBgAAAAAAAACMi2hyKoRkszUTZg43m+0shFBpvDqe+hVNToUQJqNrlwDPkA5AAAAAAAAAAMDYKM3X4pAlzWaznYUQn6V/QgjpmySEKQEg3j86AAEAAAAAAAAA4yOqrqxNdrbeHE7OzJdL0VnaJ201kxDX5kvXPBiepw/evXs36hoAAAAAevI8D1HkU3oAAADA4NLO+pvDqYODJMtCXFtbqXprgfePDkAAAADAU5CnrY1mkoXgjTpgPJ17GavUFuerJS9kAAAwTNdccqdv2lkSvKnA+00HIAAAAGD00tZyMwlxXJmampypV3uNurUDAsZH72XsvLjSWKpLAQEAwHDceMmd57k3EXivCQABAAAAo5Z31lfb4fxn9PLO+mo7CyGEEFcaK/XS6IoDuFnaWm4mp7cf8rSztdk+/mSyFBAAANyfS2640U+/+OKLUdcAAAAAvNfSr7/8Nqv89vefHL9fl7aW//i3oxDiOP7w6CjLdt++XCh7Lw94uvLuN9v7v/rtSvUXIYQQJqLp8tzsyxc/Hu7v7e1uv+6+ffHR5HQ0MeIqAQBgbLnkhpv9ZNQFAAAAAO+5/PAghMrM8divk5belcbaysrKylotDiF5k462RIAbxZMXg4pRqVpfWWvUKnHIknZzo5OPqDAAAHgeXHLD9V6MugAAAADgPRdNToWQbLZmwszhZrOdhRAqjVfHU7+iyakQwqT+P8BTlXdaG4chhOwwD+Hyi1VUqtZL1fm01Q1VL2QAAHAXLrlhMDoAAQA8e3me++QDAE9aab4WhyxpNpvtLIT4LP0TQkjfJCFMCQABT1WeHx5kSZKFkDRbafGFd1SqV0uF3wEAAG7gkhsG9NMvvvhi1DUAAPBA8rT11eqfNre3t7svZuemDUAG4KmamJ6bffnix59+NLu49Plnn/zi9Btpa7WdxbWlz/waA56oiag8N/vyxY+H+9lRtrvdffvio8npyGsWAAAMiUtuGNAH7969G3UNAAA8iLS13ExCHFempiZnTj7/kOd5iCJdFAB4CtLWcvOg0liqly7/Zko7628Opw4OkiwLcW1tRRdvYAzkaWujmWQhhDiuLBa8tgEAAPfhkhuuJQAEAPBM5Z311XY4f8s076yvtrMQQghxpbFS1xEVgNE6977dpRRQL8QaQpD+AcbN2Uvbldc2AADg/lxyQz8CQAAAz1PaWm4mlcark5jPyZ3UOI5DlmUhnPseADy+PO1sbLaz7OwrcaW2OF89fd8uz3M964AnLk9bG5tJdhKyP30VO/u6GCMAANyDS264BQEgAIBnKe+sr7anjjM+edpabSYhhEpjrV6KjlsBSQABMDrHcyprjaVyFEII+dZpL6ALKSCApyttrZ9MHzjO2Idw/vZDnna2Dst19yIAAOBuXHLD7QgAAQA8T2lruZnElcbizOFms52FCy1/0tZy88AHIwAYlatzKkO4OBFMCgh46k6ut08nDuR5epJlFLUHAIB7c8kNt/WTURcAAMCDKM3X4pAlzWaznYUQX/iDKH2ThDA16bYqAKORd3eyEM+WL/0mikr1lUYlhBCypN1cXW918lFUBzCAvLOZhLh2eisihBBFpfrKWqMSh5A0W+koqwMAgLHnkhtuTwAIAOCZiqora41apVKpNdbWVs59HCJtNZMQ1+Z9QAKAp6c0UwkhrtUqcciS9uq6DBDwNOWHRUHGEKJSfakWh5C8cTsCAADuwSU33J4AEADDl7aWl9dbqZs1MHJRqVqv16ulKAohpJ31Vqu1vr7cTEJcWzL9C4CRiSanQsjaW0Vv1UWTcQihXF9Za1T6/hDAU5AdFv7ZG5Vn4xAOir8JAAAMzCU33I4AEABDl4cQhyxprkoBwePL09b6+vLy8vLy8vp6q3PuHEzftLMkSbIsxLW1FfEfAEapNF+LQ0iaVy8X8+5O1htTGR3/kE/0AU9RNBmHkGz2b1Nm4C4AANyHS264vZ9+8cUXo64BgOckTzsbm3/LjkIIIRxlu9uvu29ffDQ5HU2MuDB4H6St9T+2946O4jj+8OgoO8r2d7e7L2bnpidCCFF5YWF2dvbzzz/v/R8ARmhieu7l2+7u3t7J5eLPwg8//PD911/98W9ZqCz+rhyFECb+55+vd8Psgt9cwIilreXVb96+/Lh89pftxM/+t7u9n+1vv305W774B2/69ZffZievZAAAwM1ccsNQCAABMExp6z+bfzv6sNb4w+cLn3766ae//PEfu3t7+7vbUkDw8NLWansvrq19+ftfz83NLSy8fPt6N6v89vefRCHtdML09ESYmHAWAvBUROW52Zdv/7GbZdn+7vb29vb29m52FOLa2n980vt9lW79aTf71aefe0MPGK20+83ufhamPj2fRzwOMmZnQcZoYiLP06+/aiZHcW3pM9lFAAAYkEtuGI4P3r17N+oaAHgu8s76ajtcni2Up62NZpKFEOJKbXG+WnIDBx7C5RMwbS03k7i2tlINnfXVdmbuFwBPVZ52um8OD0OYnJkvl6KT31Znv8r8/gJGL8/zKIpC3llf3Zk6+9P27A/eM3GlsVIvjaRKAAAYWy654f50AAJgaPLv/rq5/+G/fv7ri6Hriag89/Lt690s9MYRvX3xcVksG4bu++/+shtOT8C8s/Hn/Q9rf/j38kSYmP7o7evdvaOfz5qgAsAI5Wnrq9U//eX168sjYiei6elyuVwuT0cTEyHknfWv/vr3v//l270Q936VAYxer5dm/v13/3WhzW0UlecWZmdf/vzHnx6F8Ktf/evi0uefffKLUVcLAABjxyU33J8AEABD88P3f9/eD//yaUHEIPrg7evdUKv96mh/b29/u/tCDgGGLe++3t376JcL5SiEvPPVn3aOetO/Qjg+BU++CQCjkLb+s5kc9f59lO3vbr/uvn35cfnKiNi889WfdrKjo6O4UvvDf2j+AzwtE1F5bnb25aVh19FENF0uz83NnSQZAQCAu3HJDfchAATA0Ez8zz9f7+7t//iyKGOQd7f/X/z5f/z7py/fbvf9IeAe8u72/t7hi9m56e+//vLbrNI4m5iSd7/Z3v9wdkHyDoARSVur7SyuNP6w8rvPFxZmX7748XB/b68oBTQxPbewsLCwsDCnaSQwYnln/au//vOjj8vRREhb6xv5R3PTUQgTE1F5bmH25dvjWxJ98owAAMANXHLDkAkAATA80eSL7vb+3u7VS7H8u79u7k99+nk5mjj+oZ9KAMFwHQ/62t/udnf3juLa0ment03Tr7/8NouvzOcDgMeSd7/Z3v/Vb1eqvRbdE9F0ee5CCujCSDCAp+GH7/++udN7lXr738le+JfzgfqzWxJZlrklAQAAd+CSG4ZMAAiAIZqYnnv5trt7dh/nZ+GHH374/uuv/vi3LFQWf1eOwnGjoKAVCQxdVJ590d3ez45CCB9+9MuPJ8MPP/zw/Xdfb/w5OYprf/j3snMOgBH54fu/bx99fPH670IKaH/3H2bEAk/NxPTpq1R2FOJfffp/Lt9uOL4lcZJnNO0aAABuwyU3DNkH7969G3UNADwzedraaCbZha/FtbWTaURpa7mZVBqv6qVRFAfPXZ52tjbbF8/AuNJYccYBMCJ5p7VxGEKSTPW9AMzTVjfUq35XAU9S2lpuJsf/jiu1xflqqWDqddrZOizXqxrdAgDAbbnkhmERAALgfs7SPpeuyvK0031zeBjC5Mx8uRSdfDltLTeTc3Eg4CGcnoBhcqbwryUAeCTns+GVxlrdb6UnL20tb4Y+77fC+yjvtDYOZ5bmQ/ckaH/hj988z6PI2QIAAHfmkhuGRgAIgPs4H8vuiSuNpaL7OnlnfWMnhCzLgvgPDE2etjY2kywLIcRxZdatOgCehLS13Dw4d1V4rj9d30/y8VSknfVm+/jaYrHwyh7eZ+c+AhNXFpfmw9ZGM8m0uAUAgCFxyQ33IQAEwN31uvmc3Nu5cGPnUgoo76yvto9v+Szp0AjDkbbWm0kWQhzHIct6rRUE7AAYvV6C5MrvpEvv4UmWPGHn+jb1y/fD++zS2GuX4AAAcB952tna3DkIYWp2sTcf3CU33JEAEAB3lnfWV9tTF2PXPt4Nj+XyPL20tdxMeh+ESDudqOoPIgBG6bhBd95ZX92ZOt+4W7JkbJxvNGhf8X7L83B14sDJTYopgUYAALi7k4+5hhDCxT4/Lrnh9n76xRdfjLoGAMbUD9//ffvo44W56Ymzr01E0+W52Zcvfjzc39vb3/3Hi9kL3waGJO9s/Hn/w9of/r3cO8PS1mo7i2tLn03/0Fn/Y3vHyQfAaE1MTIQQ8u+/+6/dvb393e3u2xcfTU5HExNReW5h9uXbfxxm2d7udtcvrCcjbS1vdHt7qfeFiag8d3plv7v9+mQfjrZMeFx5p/XVl3/a3H599QyYiKbLc3Nzc2VnBQAA3FXaWm3vxZXGH1Z+9/nCQvks5pN20olPPvnEJTfcjgAQAHeSd1pfdX8I2d5Pfnn+kqxnIpru3dj5+ce/ufJNYBi+/+4vu+FfP/91757p+TjQxPRHb1/v7h393A1VAEZuIirPzc6+/PEfV1NAc7MvX/w49W+/Kftt9TSk3W92d/b2d7e73bcffVw+SwFdyPdvSwHxXklb//nn5CiEOA5HWba/u/26+/blx24/AADAcJy8r/0fn1y6k5S2Vv/c3n778ur9J+BaAkAA3EX+/Xf/99tk7yiEbPfty9nCN0AnovK0SzN4IHn39e7eR70AXt756k87R5Xf/v74z6Tog7dn3wSAx5J31r/66z972ZG0tb6RfzQ3HYVw1vSnlwI6uX8+EU2XZVWfjmj6ZC9l2eWUw2m+/yTJdSEjBM/VcY/NtS9//+u5hYWXb7u72dHRlfMDAAC4q4sfcz0nmnzR3d7fO9Q2GG5JAAiAQaWt5dVvjt/onIhOPgicHWU+CAwjkJ/+AfT9119+m1UaK9Xo9FvfbO9/OLvgbyMAHtUP3/99c6c3Kurtfyd74V/O/yo6SwFlV/MlPBGXBrRd2kvnklxZtrvd72MA8ExcGrmbd7/Z3P9VrTF1dPIq1n37vx9N/iyacBoAAMAdnf+Y60XHfe59yhVuSQAIgAGl3W9297Mw9enJjRwfBIYROv4DaH+7293dO4prS5+d3mJNv/7y2ywu+twEADykienTUVHZUYh/9en/uXxpeJwg6f3M7nbXJ/meotMBbb299Ppi1v8kBfTj1HzV+Daes/y7v27uf3g2cve7v27ufzj7+We/+fXCy7evd7NwdJTtH/78U69iAABwd/k1fX7y7vb+h7MCQHArAkAADCianluYnf24HE2EvLP+n3/9Z+9GwKUPAvswNzy8tLW+9cFctTr7oru9nx2FED786JcfT4Yffvjh++++3vhzchSfflQZAB7TRDRd/ujt690shOM5OVf7RE5E071eklP/9hu/rZ6q0710uN/L+l9OARnfxnP3w/d/394P/3Ic8LkQB4omX3S3j/618dtP5z75hTMBAADu7OxjrlfuLKVff/ltVln8nfwP3IoAEAC3MDExEULIv//uv3Yv3Ai4NCzAh7nhIaVbf/o22e2+mP119dfHo/iybHd7e3t7e3t3PzuKK42V3/xi1FUC8L7Ku91/fLT4h6XZnxdmR/I8n5iYCBPRtATJE5Tn4dw4Ix0/eZ9N/M8/X+/u7f/4cqEcHd97+O3vP4lOv/ffP1v47BO3IgAA4H6icu9jrqcfIvpZ+OGHH77/+qtmcrHvPTCQD969ezfqGgAYQ3mebm00kyyEEFdqi/PVUu+tzzztbB2W61VvhMIDyjvrq+0sVBqv6qUQQsjTTvfN4WEIYXLm9GwEgNHL09bJJWNcWVyaD1sbzSQ7/Q3G05F3Whvtq1f3p98+3ZOVxlrdxQbPWp7nURT1rrl3ZtdWqlHeWV9th9rayvEfumlruXlw9l8AAOB+zv4kPRVXGiveO4BbEwAC4B7ObgSEuNJYcisAHk3aWm4mIXbfAYCn79wlYwjhNr+9Tm7D89B6FxYhxHHIenuq6Oo+T1tbh/Oy/jxrvZPhUkwxbS03k9PXrstxIAAA4HbyPBT8sZ/naXfrzfHHXMslbwfAXQgAAXBfUkAwEpfbAAHAiOVpa2MzyY77/cxe7CKTp52tzZ2DMLU46OVi4W14HsLFcEPaWj/Ja7m6531zeoV9qdHVcUYurlSmwkGSuAYHAIC7uaH7LHBfP/3iiy9GXQMAYyLvtL768k9/ef36dbf79qOPy1Fv9upEVJ5bmH354sfD/b293e3ui9k5U1nh4U1Mz718+3o32XXSAfAEpK31P7b3jo7iOP7w6Cg7yvYvXhdORNPlubm5uZNLyJvknY0/7x+FyuLCoI/gjvLOxp/3P6z94d/LEyGEkHe/2dz/Va0xdbSbZdnu9utu9+3/fjT5s2jCfuD5m/iff77eDbWlz8oXj/eo/PJtdzfLsizLjkJcW/uPT5wQAABwW2nrP/+cHIUQx+Eoy/Z3t19337782J/9MEQCQAAM6MKV2VF26cpsIpouz82+fPHj1L/9puxiDR5Anuc//DBx4d5bVJ590d3e2dl++3Kh7LMSAIxO2lpt78W1tS9//+u5ubmFhZdvX+9mld/+/pMopJ1OmL59UrXfbXiGLf/ur5v7H/7r57/u7aTef2c//+w3v+7txnB0lO0f/vxTcWOevbzT+uof4cNs7ye/vHptHZXnFmZnX/7ylwu/+92vnQ0AAHB7aWu1nR2/dbCw8PJtdzc7unKvCbifF6MuAIDxkLaaSTidC5Cnna3NdpI0V5PzbRqjUlUbdHgYaWu1mfT+Gcfx1NTs5MxkOYqi6krjcL2ZNNcnj09PAHh0eWczCXFt6eQ30fGV43wp5J31ZjuLQ/l2v6XyTmvjMMQhO8xD8OvtMeXdnSzEtV74oTRfi5Od2cbiZKQrO89fnh8eZEkWQsj6XFtHUSlyKgAAwJ1ceusgPzzIQqXWCDvNJEuaq0lvlnjZNTfcjw5AABRLW8sb35wO+sq732zv/+q3v/+kd+l12u/ncH9vb393u/v2xUeT0wLa8GDy/IOfT/30o6MQjo6yo6Ms29/f3d3e3n79+vVu+DAcHR3tawMEwKh8/91fdsNZC5lzE6Umpj96+3p37+jntxpXmX//3f/9Ntk7CiEz6fLBTfzPP1/v7u3/+HKhHIX06y+/PW7ddPK9//7ZwmefuMLgPTARnfyRmx0d7fsjFwAAhkn3WXgcOgABUCg9PAhZL3ZdaSzVoxBCPHnxjf+oVK2XyjO9XkDt5kHQfwQeTFQqVUulUD35f57ned49fHN4eHBwkGUhhBC0AQJghE6a9eSdjXYWKo2TX0ilmUpIktt18olK9ZW13lVmlrVX1w/POk4yfL0+P5NRCCE/PLhw1Z++SUKojbA2eGSX/shNdipefgAAYPh0n4WHogMQAIWi6bmF2Zdv/3GYZXu726//cfThUfaTX15tLzIRTZfnFmZfvv35x7/RewQezcTERBRNT5fL5bm5uYWFhYWF2Rfd7Z2df2iTAMAI5N3t/b3DF7Nz099//eW3WaVxFkjNu99s7384u3Db3086Tj6eiem54/3z/Xd/2c0+/JfjT1z2ejmdfj4T3henf+T+Y3dvb393+3X37cvj1rgAAMDd6D4Lj0MACIC+JqLy3Mltl+wohGz37cvZwvc9J6LytCszGL48bX218ae//OX169evX19/53Nieu7l29ff/k0ECIBHdzzoa3+7293dO4prS5+d/ipKv/7y2yy+a4bEbfiHluf5xMTZ9ow+ON6Rb9/+s/vNn/+WhbM3ZOHZKr7knohOXn6yLNvdNo4QAADuLM/ziV9Mv+huH328MDc9cfmjQunWn3b/v38x/QuGQQAInqxz70B1u2//16ddGZVzH77OjjIfvobHk7bW/9jeOzoKcRx/eHR0dJTt726/vubeQ++m3UcFvboA4GH9/+zdP1Db2No/8IcLpcCUYmR38bBQodxX44rXL5PK5JpxFV5mUjEbGHfJJDUsbsPQmrhQxSQzVB7QoCqsMlQe643UWXeAjnN9fuNuRUK5v0KyLf8BbLCNCd9PtRtYh0Wy/Jxznj+irIxZhsNcIpoIzUxP0eXl5dnJfm6v4EqpD7/LHQePbdZBIo7h+4Dr6s727oFhaFogr0qUIxXLZIwxxlySUltv5/Grhl/bzSG3nwU0dhX+16vOn2MAAAAAAFBnq+sf94xKZOXVMrrPAvTdyN9///3QPwMAtLLVTLbAiCRJIsYYERFJqa16I32AAeC2fnRQvCAKK0uriTkibqu5bIERkSTFltZWMY0VoI9sdT1bkGLp2luNc/vIfwvG0p9W5675T677IgAAQL9xWz86yBdY8M+kWHqj88+l29ZB3NaPyvIqlkX3xvXMZt77Tdd+0fWog3Obc3EO0T78+u4QcgMAAAAAQBf85WcsvRU4UvI2skmKxcJ0USgwRN8APYMEIIBh5O1A1fe5bXU9W/A+/GxdFxPY74YBqJ6+EDVtfNazgIKHBADQW1zPbOapNfOz+g5ssyLycvZoqYtjVgAAgLvjtpo7KDA/OVxZWkz4ySO2bn0vl4lo6nn1zzqDddDA+L9af/s1kLklxVJL3V21Ks45iSIuETwqdwi5AQAAAACgO7a6nr1oibqDR1BogADQQ2MP/QMAQAuuHxRISq1VP+xsNVsgKbU4R1zPZPNMIhkfhNBvtpotsHb5PbbOxdWNT4veeU8hu9katwFAD/AyIynVOspLnFtdS11s5gvf7dW5uaYvJVbnEgP7CQEA4ElratXDCixbKHpxoTiXSNzlxBzroAGLPa9G+uJcYnVOfq4fHeQLhXy2UOwuCyjQJhRLA3hc7hByAwAAAABA57iu5sokEStzoobAe25149Mius8C9N4/HvoHAIAWvMxIUqo7UMFtcDGxFCNiRYs/7E8Iv7zqbdfS3cdWs/nspmqTOLe6sbGVTsXqRzQA0Gus3PZxL8qKRHTR/osAAAAD4CWLp7Y+fdrY2Nj49CkdI6LYUkIksnX9jp9QWAc9LHEusbrxaSsdk4gV8tlcp9fRVjezBSZJsVgstVSb1cY5LhY8Egi5AQAAAAD6hfPyBSsUGFEhm2ldZYriHLJ/AHoNCUAAw6m6A8X1XJ75W+lERHPPY9duTwH0TOPpS8DcYkoiKhx4gZo4l1hF+g9Af4hTgTdbO+EpvPsAAOBh3NKqJ99x6kgrrIP6j9u6qn6/kKjw3W79hYpzqxufttKpTtP8/Ztha2NjdXU1MUdEXM+sr29ubm6ur2dUu9c/PUBPIeQGAAAAAOgncW51YyudiklExPKbGVVvsw4FgJ5CAhDA8AnsQNlHeUaxdH3mPC9fEEnYgYIBaH/A4pdf4/AFoNdsdb1h/ePVHLP8ptqyJvI+G55jGAEAADyQPrXqwTpoEGx1M5svFAqMERWym5nWQIOIxLlEh2n+3pWqJWqRra5v5r3RcBIRK2SRAgRDDSE3AAAAAEC/iXOJahYQK+SzyAIC6LPRP/7446F/BgBoJERDFc0sOYZlmSVXSq0tRwX/S/b+9jGTXqy8rP0JQF9wy3BK5TEl3uZW45bhTCjJNv2BAODObOvQLJYc07CsSmhaFgUSovFIxTJZyTQ0qzIWmhoXBYFze38nW2j8bAAAeCS4ntn5cu495OBR45ZmlkIzSVkk4vrObtGNvX437wWH4kil/sXuYB3Uf7a6mWcUS2+tJWcmr8oOY8w0NKsSueP7kluHhjO79EYWiYjb6vtsgYhi6a23yy/jyphlOKXRCBYOMMQQcgMAAAAADIIgRuV4UolUTs1SybnXQhQAboYEIIBhJMrKmGU4zCWiidDM9BRdXl6enezn9gqulPrwu4yPROiv+ulLSwxm728fs5i/yQ8AvSJGq+ufwEHcMzmuRCqnJmPMMQ1D0zTDMJkrxdIbr5499E8MANAtfvLloHjPbAN4ILaayVmB3K16svjZ/vYxi6U3ah1guHVoOBNKsl0e+a2wDuoz+2jXZLH0RuKZUN18HbsqO6WS/76cEoXufsXCj3PNLJQrkdCIlfu4VyKiWPrT6pxQ+yLd8V4A6Cuuqzvbu581TdO0cvjFCyXkOgi5AQAAAAB6htvqTm7382dN0yyr8jM0FRUFIkGsZgExxkzDal+EDgD3MvL3338/9M8AAEREtrqevYil11bnqq30bf3oIF9gwW+SYumNVXSghoHgemYzz4iIpFhqadGr6j3KZQtMSm1tdDgTAAC6xW01d1BgjIik6ocC57Z19L14cREOK88X5TkRb0AAeKwCEa4UjHxhqNnqerZARIGr5v+RJBFrjA1tdT1b6CpaxDpogLie2SwvfWr6VTa8L1Nrq11F+vVFAzVfJ1tdzxZi6ea/DuChVZ9pkiQRY/7tK8VSS8/pO0JuAAAAiyEapgAAIABJREFUAIB7s9VMtsAaQ+6mnQJu60dlubv1JwB0BAlAAEOC22ou2+YshNu69b1cJqKp54sJHJFA73E9kyuGl9ZW50Sy1czB1NJGYq72NTWH0xeAwWs8iFvC4x8Afi14yD0yDRke5K1XFufIqieLp9cWRSLi1tFBvttkcayDBoXraq5MVCiE26bk+O/L9l+85ZVt/eh7eaopY6L7XDCAgWi5NesfSrhhAQAAAADurznkDhSH2LouJhBzA/QXEoAAhgG39dxBnjXsquMsBAakdqQjxWJUKFDLnqfXe8Q/fUEdJMDA4IAcAH5VXFdzxUI99sVDbvh5AWMslaKinxwuxVJLz6fK3+/XqgfroMGpZ1oRxdJb92+/1dK6yf9jPfO9HL64KDCGbAoYDra6fnARW/LvVVtdz1603prcVjezBdy0AAAAAAD3xPXMZp6a0n+k1NZGgvTMZh4TJgD6bvSPP/546J8B4Kmz1ffZr+5EKv1hJbmwsLAwc3VqlkqOaViVMX8sJkD/CNG4Ehm7KjulEnNJml34p9x40wmCGJVlWZblqCjgdgQYGEGMVkciex8KViU0LeNDAQAeOVtd//iVTbzwQt+ZyauyWyoV8ZAbckI0Hqlo+a9O+PXWmjJ5VXZKJcc0yyFlaW1FmZwcDYXC4bCytPZueb7zbTysg/qK2/rJ0ckJHxkZF0WBBFH2o37msh78jjm3Ts1SyTQ0qxKpv3fto+3jAmOui0QKGBa2dWgWGaveq3SqmRMLK3LTzSmIsjJmGcXiVSTZ/DUAAAAAAOjY2clnk16svIwKRERcz+05E6kPv8sCCdFQRTNL7qQSj2LBD9A/SAACeGj+p9/WRuKZ4BEbD3yx+w19J4hROVTRTEbkehujuOsABovb+n5ue/ezpmmaZlmV0PSUn3AX+FBgzDQqEQXH4wDwiDWHvmJUjntPuePWTAIYKt7h+Nfj08nk769eVvPHHdMwyqGF/11NzMtyd+Ej1kH9w211Z3Pv2HEYY45p1hIaepZczG09d/CVuUTUtIAQ5WRSUZSVlRVs6MKQEKP+Xc8YMw2tTJJb+tEuy0cY/2kZzl9hnEYAAAAAANwdtzSzFJpJyiIR13d2i27s9Tu/VkgcqdS/CAB9ggQggAfGT74cOBO1ZNgqQZTjkYpmMnKZt/s9LWMPCnrKVtc3D2uHbNyyTkNLH+oV3Y1nLpxzAd1/APrFVt9nvzKXJEmamHBd5jLTaHjyV49Er8KLCRlvRQB4vDoIfU3DGsPh63Dy2gAdfzUqkeT8XLTWT6beWaObTBKsg/rGVt9nCy5JsdTrpQUlHFb+e77hyjQlF3d/7W5r3YSuoTB0/Lt+7KrslJhLxMxKmxSgy7NvhhNu7Q4EAAAAAACd45bhlMpjSjx6tr99zGLpenNYbh0azoSSxLYPQD8hAQjggV2efTMc+m2hzcedOFLRTEqlZl2nVHJwFAK9ZVuHpsMo7N97QlSOy6LQtip4iu/nPu59brdFCgD3Z6ubeRZLbW28exmPx+PJZK2rQuOTXxBlHIECwCN3U+g7NWYZ7mzqhfJfCUQcQ6vaBsj7gApEjl4WUDfhItZBfWKrm3lGUmpr45UsiqIYrXVR4tw+2T86sSw+MjX+7Nm8d+3KjJW6yrtD6yZ4rAQxGhyEp1ljkengrWrvbx8zCYcRAAAAAAD34Q/6cgzLMkuulFpbrgXYXsjdUgkEAL2FBCCAByb8ONfMktN+zDy3jP9IK29/X4hUjGu/CeBOxGg8qSjTsigQ1zPvv5wHNuqbqoINk7nUEKcBQO/YR7smpdZ+r3f28Q8nKoZZck5x6AlERFzP7Hw5v9ucFoBhclPoK/w4145p4d2ruYf4yaBTQjSujFkH+YPaUMpa5FhW/reLcBHroL7gem7PcWPp7VfPGv/cVnc+7h07jDHGHNMwrEokLj8T5XhciYxdhf/1qtMWg2jdBI9bIAuoVDQNzbIqP0MjP6yj3Jd8yZVSH35Hu00AAAAAgA4FtyxtNZPjoXhU9GuHHOYS0URoZnqKLi8vz072c3sFhNwAA4AEIICHJk6NWYZTMlsbr/OTLwde+2nB/6ZR7HxDT3lTvfjZyf+1Kdetd0l3aWL29dqrZ4jKAPqBW5o50TpqQPAWSsUiDj3BCwmKd5vTAjBkqqGv1tpvxD7aNVlYwTNvKHDOL6+d/+qNAsvnjUDDH0GU411mrGId1Af85MuB48aW3jT8urie2dwruURSLPV6bUWZPDUdVhuBJIjRblJ10LoJfgHBxreMOaZpOjT74vXayjKeNAAAAAAAnbs8+3ZQLJmGZlUq/y6U6LdkdeJEcGi4YRiGYTrMlWLpjaZqFQDoPSQAATw4IRqPVCyz5H1GjoWmxuny8vJsf+fjV0bVvVvhx7lmEnpRQz8IohxXlMhVu6b9ghiV4/F4HKfNAH3BdXXnlCZY4UfbZhjjPy3D+SuM0zMQovHaaDhkAcEj5/WPMRzmVENfURA4t/d3sgUXDQeHBNd3NncPNE3TLMs6P/85MjJezRz3NY4Cu+Nfg3VQ752dfDZZY/4Pt9XNvRIRxdJbbxPezF/vXXi3vCq0boLHinMSWvpW+UMMXXJZSFmYR3gFAAAAANCFWqJPqcRckmYX/lnbsqxm3Y9NjoZC4XBYWVp7tzyPFSLAACABCODh1LefRDnu7Tp57dgNozpzaevtvPcd9tGuyWZbO0QA3JetZnJ8+qX8rFYCWXJwugwwGPzs5M/jQsklqlXhN7g8+2Z4HRAe5MeD4RKcWFE7LI/iQQ2PRz30FaINoa+maYZhMleKpdFwcDjY+9vHzPtH13UZc0zTMIxqPtDPnyM/xkkU5XikYh1/PWj3AXYLrIP6hluayaieO8xtdTNbIKJYemt1rv47FH6cN35jF9C6CR4drqs727sHhtYmfKo1vg3/dwKTCAAAAAAAuiWIUTlU0UxG5LKWLUtBjEZlWZZlGbuYAAODBCCAh9Bm+0kQ5XiyngyrLK2tvHlZ3X6y1c08Q0U09AO3Dg+KRX+AQ6AEEpNmAAZAEKsJHcxlpmaNRaaDKyF7f/uYSWh6AAGX1smf/2GuS0Qua27aBjCsbg99w8rS2sryPLJ/hgPn1qnJXKLqxKjkwszM5OioS8QYY45jenlbmkkTkuuWzC7aAGEd1GfiSEUzS85pZSw0Nc73dz7mS0ReQlVDHg63Dg3HvWNiFVo3weNiq+/3Ci6RJJHLWNtqly4H4QEAAAAAQAC3rNPQ0oc1ZfKq7LTOmeCcXztjHAD6YOTvv/9+6J8B4Kmx1fVsgYgkiZhXWivF0mvBgswqrmdyRSLGGEmprY0EiiehH/w7Mpb+tDpX/TNu60cH+QIj3HoAA8FtNZctMCKSpJiy9Hyq/P0gX8DDHxp4j2splV6TRSJuHR0UC4wRSVJsqW0cATAUOg99YZjUg0GSYqmlxUTtinHOObe+fy9eXDDvkjZEkTfBOmgQbDXjhRSetr9irmc28+x+v9p67FIXeEVbXc8WOr41APrGVtezhdqtGXh/4LMIAAAAAKAPGva5l9YW6SiXLTCsDgEGCAlAAIPW+faTty1LRFIstbaKXW/oo+qhcuMZALf1o7KMew+gPzjnothYjd9wkibF0muLcyLegODjemYzT82HtYE1NY6xYCjh5PVRC2QBXZ+qw6nDzyqsgwaG2/rR9zLR1PNFuV0o4cX+3ey/Bj9tGvPBbN36Xm75uxovNsCDaQqfuJ7ZzIdTaSr6zx9JiilL7d8nAAAAAABwV00VI1gdAgwUEoAABgvbTzCk/HMWBGIAA8B1NZe/9tAz2HIBp+NQ0z7/h4jqLTWwmobhg9D3V9BJFlAnL4ObYThwW89luwz7658zVWjdBI9DuweP/68InwAAAAAA7uvaWhH/q/rRQfGCwmhdDjBYo3/88cdD/wwATwg/+XLgTLxYeemNl/f+VVlZfvUyGaloJiPXZU55ciGO8fPQZ1xXT85GxsdFf/aqEI0rY5ZRLBqVSFJGMAbQP1zf2f3KiCRJcl3XZaahWZXItOzPRBbEqBxXImNXZadUMg2tYWAyPGGXZ98Mh35rFyKIU2OW4c6mXij/lcADHIYKQt9fgiBG5XhSiVROTcbYXT+ZcDM8KFvNHFk/OT/58mXvuOgSxdLbr551/B9v5pkUS3/YeLOSTDbEKPX4hYi8GKfIXNeVYqkPb5FRAQ+vMXxqeA554dOL9OuF+PwzPHcAAAAAALpmq++zBdf7Z5c5LatEQYzK8Xg8LmNrG2Cwxh76BwB4yrhVZCSlvLO6ucWUVCgq6aUpEamw0G9cz+ULjAr5PHn11spzOTGX2NiizGY+u06YxwrQN/ZRnlEsveWVPfhtFQrZzUKwTEKcS6zOyc+9r+WzhTLelCBOhYkK+SM70XoviFNhYjS1kcBdAkMNoe+jJs6tbnxa9Gr7CvlsodimuK9zuBkGiusHBcYoOGS0i7CCly+IYkvVes2GGKU5fklsfEr0/McHuLuG8MmPwqupaeJUmIjEOTx3AAAAAADuwFazhXp32IZdbnS1B3hY6AAEMFDCj3PNLDlXkaQskr2/fcxir9/Ni7Wv/Xs8uTyPz0XoO2H8p2U4LklSbGKixEqOYxqapmmn7uzEBHNLpjWmoP4aoC+4pZnhpTfVR3+w349jGsGuCrWWC1fhxQTekCBOjVmGUzK11ie0fbRrsrCC/m0wdBD6/moEUY7XOsA45cku4kXcDA9IiMaTSiQyoyiKknzz5mV31ZeXZ98MdzrZcK2b4pdTLB1gKNjqes5q7FDm9fmZTsajArcODWdCqd3L9tGu+Vfb3ooAAAAAAHAbbh0azuzrjYTXXBZd7QGGCDoAAQyWV986JZJfSilN1ba57e8FotQD/mzwlIh+tx92EUt/2pjj3Las78VigRW8r7OixRNo2w8wGOJcYnUu4bVVKOSzF7S1UX/7iXOraP4DRBR4cuc314ux1NKiPCeKnNtHuWyBpNQi7hMYQgh9f0V+Bxibd9evBzfDw7pbmxOuq7kyEbEyJ2r+72vxi0VYNsAwsMsXxFg+WyhKsaVqyXG9LxUvMyKp+s1cPyjU+pABAAAAAMAdBBb2RNTS1b5xlxsABgYJQAADhu0nGBZi48SvRGIukVgl8nKBSEZgBtBz3NaPvpcvJGLf7cWWczh/uIpuiXj7wXXExMbWVG0AT776x1IsvYbbBoYTQt9f1R3SSXAzPD6cly9YgRERy6rPt9r2cBfnVjH1C4bDXGLjk+wPKmwzeGDueYwKhfxmphwL00WhEBwHBgAAAAAAnUOtCMBwG/n7778f+mcAeKpsdT1bIJJi9e2nT2jzAAPG9cxmHjcfwAD4D/0qDEOGDnDvFIuIpFhqaTFRu2O4rVvfy2Uimnq+KM+JuJPgEUDoCzW4GYaVra5nLxojFG7rRwf5dh9FAMOK22ruoMC8uzZ4P9tqxouriEhKoRoZAAAAAKADXFePphYblonVDUuiWLp9rQgAPCAkAAH037Wnd9h+gkGz1fVsQZJiytJzuVa3XcsBQqQG0D/eWWcsvbUocqt6kIYsILhRU9IY4Y6BRyJw8toY/t4j9OWck4hUt0cH66BHxtYz2Txrd0EClzIwXAlgWNjq+gE1PmWuy13j3Ob8bjPxAAAAAACeoOoGZeO2JGpFAIYYEoAA+u220ztsP0Hf+A0ipp772T4N53FERCRJMUV5Lstk5bLIAQLoI1tdzxaC/Q0a1kjptUW0cIFmXspmNWZoumPwsIahVcvrkCSJGGvJ8Og69A3kHSBN5JHBOuhR4pyLokhcz2wWw80JFbUqT3wUwVDxcteoNUENpxIAAAAAAPcViKpbe5SjVgRgCCEBCKC/cHoHDyPYhJGoeawC5za3vn8vXjRkAxHhaA2gX7ie2SwvNc83aTyTWFvFuw/quJ7ZzIebnt44xYJh1xj6EhHn9pEfktxpyJOXQiJJsXB46vlqYs5/UbQD6ofg0Bwpptz3GYN10AD1+NrRTc2b6n8XFg4wVG5IUMOpBAAAAADAPXWUBYQFP8BwGP3jjz8e+mcA+IVx69BwZl9vJJ4REZEgRuW4Ehm7KjulkmloVmUsNBUVhQf+KeGXY6vvswWXpFjq9dKCEg4r/z3fcJsJgihGZTkeTyaTSUWJzEyOjrrEXDf2+t08ojOAHuO6umNdEiv8iCTlhndY8FNhYmFFxtsP6i7PvhnudDIeDTy+G+IIxzwdUxq+DPDQuJ7bcyZSH97WowlBEOW4EqmcmqxkVpqfgh2+4NbG7/OyHBWJiOuZ99sHhmFomlWJxPHc7BlbzXzMl1xXkqQJ12Uuc0zDus9DBuuggen5tSMiEkQ5riiRq1OzVHJMI3C9BFGOx5XI2FX4X69kXEAYHoIox5NKpHJaZsx7ykSmZe8hU/uSWWLMNCoRRcbT5wmz1fWchc8gAAAAgO4IYrQaVTPGGpaJTaH4vdejAHBfSAAC6Cuc3sEDsNXNPCMptbXxShZFUYzWNrY4t0/2j04si49MjYuC96fBbCAcowH0Hj87+fO4UHKJmNnuvMFbPeHtBwHVpLHSP2Za74zaenty+hVuGxguZyefTXqx8rI5tBVEeXrMMpzSaHcZQPb+9jELZCfb6vrHry6Rn+fAus8ogmvY6ma+JKW2tt+9jMfjyWSkopn+r97WdYreYbWCddCA9OjacT2z8+U8NC2LAtlqJsdD8eizQNZEyWlIqBDEqIxrB0OolqDWmmtYvZ+vwosJ5K49ZbZ1aBZLjmlYViU0jVwwAAAAgG7UV4leFlB9mYhaEYAhggQggL7B6R08CK7n9hw3lt5+9azxz2115+PescOYF5oZqJsH6A+vpnS6di7mdb8Yuyo7zGUNNfQA7d2WNEZEJIheOxSAYcItzSyF2kS+RML4T8tw/gp3k/DhtZBZeiOLRMRt9X22QESx9Nbb5Zdx5S4ZRdBetXXT7/4ena1u5pmUWluOXuqZj/li14k6WAcNTM+u3eXZt4Oily9R+XehRL/Vcrca9ncb26oADKemXMOmDlbIXXvqxGiwHxSeaQAAAABdC6wSXZc1ZgGhVgRgGCABCKBfcHoHD4KffDlw3Jh/WFb7Uz2zuVdyiaRY6vXaijJ5ajqomwfoB1vdzDM33DTPK9AjtYR6U7gNksbg0eKW4ZTKbTMOLs++GU7zw/Fmwo9zzSyUK5HQiJX7uFciolj60+qcUPsiKUl0kOmBxtZNwZQSIRqqaGbJnewqAwjroMHp2bUTorV8CeaSNLvwz4br5u/vVtuqoKM7DD9E33CDGwbGAQAAAEBHAqtEFIsADBskAAH0C07v4EGcnXw2WWP+D7fVTf/QbOttQhYFQYyibh6gL7wWXFJqbbndsVhgkgaWRXALHFvBY8M5F8Spn5bhMMdoTfrwpnk1JSjfRpwas4xiyTRNxyWSYunt1bnaCx7tmmy2q4QiuE6wdRPXd3aLbn3wmjhSubav03WwDhqcXl47QYzKoYpmMiK/hrPpwtXaqqCjOwwbbqs7ud3PnzVN0xpu3abo+7qURHiSbhgYBwAAT0EgfrCsyk98CADcRaD5JiMl2TISHgAeBhKAAPoJp3cwcNzSTEb1ARvcVjerAzNW5+q7/8KP88ZvBIB7807epPogDu9PuX0p1J/8TfWmqKGHmyBpDB4JW13/uGdUIiuvliMVy2S1c7RxURA4t/d3soVrkyNv4DclGQ0pS2sry/P16ab1OUd4P/RCvXXT2f72MYulNxJi7UuHhjPRfaslrIMGpLfXjlvWaWjpw5oy2WZ2kp/n9wwd3WHI2GrmY77kuiRJ0oTrui5zTEMLxNjVcOoqvJhA7ho0umFgHAD0jW3boogsfnhY1fjBCx+Yyxzs0AHcmRdRKVjyAwyPkb///vuhfwaAXxHn1LiS4baayxYYEZEUS68FMzEAeslW17MFkmKppUWZjvy7Tkpt1Q8DiMgbCpZnsfSneik9ANyP9+5relt577XW9yARcVs/KsurLX8O0Aa31dxBgbF2T3SAB+Y96Oq5xoGwt0aKpTfuH3PYeuZ7OXxxUWAMb4We8j7BSJKINX5k2ep6ttDd7xrroMHq5bVrVL9wkhRbWlv0VhZYPsCQ8e70wLOFc7u6CsbtCt1oeujh0wqgX7ie2Swv4QEND6o5UrbV9WzBCxxsXRcTWGgCAMDjhg5AAL3GdXVne/fAaOw8jZYPMCiiHKlYXqm1YTJvYMaHt/NN6xZ+8uXAcaXuy7kB4Bq26p1/N56z2fvbx4zq4ziCBBE19E+dra5v7mqaplmW9e38/NziIyM/OBFdCkLTrVEbUoDBKzB8hB/nmkmptWU5GPYqkcmrUZdodvZFU/uem3Fb3dnc/dw0xYWIiOyj7eMCY66L7J9eE2VlzDIc5hLRRGhmeoouLy/PTvZze4WWxnbXwzroIfTm2rXT1ITOMJlL6LsFQ4bruT1nIhVc7wreFMLKqclKZgUjr6HZtQNfMDAOYDD4yZcD5y80JIeHVI0fqpFyvb/spZ75mC+eYsECQGSr6zkLrREBHit0AALoLb8C0yvBJKI2da5o+QD9x2396HuZaOr5ojzXpq1u20YlAHB37Rv9+B25Ws6pbTXz/TmqSp88/66RJCLGWJtvkCSJwuEwTT1/PkWiKBL6pMMQ4rqaKxMVCuGehBXVWLquKZbmnOOd0Bu2up69CP52ua0fHeQbezd10boJ66DB6fW1o2CfOZKkmLK0mAhcOW7rRwfFCwqjJQYMG1tdz160TwlFy1tow1Yz2QLzouxq/N2mX7KtHpUX8WkF0Cdcz2zmCen88IAa44fGW/LeXTQBfhG2nsnm0RoR4NFCByCAXvLTxbe2372MJ5ORimUy12WmoVmVSG0AJlo+QP8JYlSWZVmOis09JIi4re9kv6KAF6CHuL6zW2yps+d6bs9pU31vq5v5EhudQUHyUydEQxXNLLkTLz5sv1tJKoqyMDMzGR4NhYiY6xK5rusyxphjmqZpGIaBMnYYPvzs5M/jQsklYub9O7t4sXQs/WHjzUoyqUTGrspOqdQQS7e0x4I74tw6NRt+u4IYleNJJTI2ORoKhcNhZWnt3XKbBnZtYR00QD2+dkS2mvmYL7muJEkTrstc5jR2ahLEqByPx+NohgFDh1uaWQq1jaqF8Z+WgR4TEGSrm/mS/1EVjyeTkYpmMq9Xq63rFK0/9GR8WgH0iK2ubx4GokHyn8/Ff2BHBB5OMH7wNvTqjbvFkcq1wQXAUyJGg60RGxb2APAIIAEIoHeaukdy6/DAmU2lw67JvA9Jq/IzNDXeJiMDoN9sNXNk/eT85MuXveOiSxRLb7/qdBYHANzMm/NFE7/NTAfaol4z/auaFoQMPKgObikWjUokKT8TBEEUo1FZluOhimYyKbX1YWVmZiY8OhoioonZ129RggZDx5u0MnZVdpjrOkbL1K6ucOvQcGZfbySe+a8drb64n+uA7tO9wm09d/CVuURE5Ofp+L9dwXsOeYnkHb8e1kED0+tr1/mJOMAw4pbhlMpt808vz74ZTnhhBed34MHAF4AHYFuHptN8dCz8ONfMQnksEvphWUcnJ5ZlWdbh4eG3b9++ffv2cxpvRei7evxwtr99zGLper8fbh0azoSSxH0I0DLOG1lAAI8IEoAAeoaffDlwJl6svPTCQ+9flZXlVy+9TVRyXeaUJxcQPsLAcT23Vywxx3GY6xJJsfSH1TnchwA9wyunDnNdx6yffdvqZp5RcBPB+862vYLg6RKi8UhFMwsNrVO8LLHY63fzzwRRFKOy7HdeeNifFaCKc/vsjHNOor+HH0zUCT4Ju3V59s1wpxv3WpteHKdzvWCr77Nf3YlU+sNKcmFhYWHm6tS816XDOmhgen7tcCIOjwq39f2jE8uyLD7ipb2N/7QMhzlGJaI0HUbY+9vHLLb0BvET+M5OPptU/6gKPPyqbTkn8bwD6DWvgURzPv+zkYpmlhzTNB2H+VzPbHMJFUAf+M99x7Ass9RYoWfvbx8zqfZpAQAkiHIcpVkAj87YQ/8AAL8qbhUZSSlvs2luMSUVikp6aUrsalimd7KCdQ/cl5jY+CTbNiciEucwsRWgx8TE6kZi0VZz2QIr5LOFYiwWvigQSanFucbvtI/yjCi2hD4uUDe3mo4VsoX8pjr1aXWOiOu5PKNYenXu9v8WYOC4ntnMs+q/SbH0hn+rinOJ1Tn/UVjIZwt5KZbuZkw819VcmYhYmRM1/1e1F7cIz8974/pBgaTUVj1DVVzd+FS/dMVYamkxcY94sSfrIGinH9eOl+tXq/Y3rCVEIkosxfLZQtHiCbzv4OFxXc3lC7XPn9jzVSIiEhMb6XImWyhkNwtSLLW0KM+JIuf2US5baBOLw1NXjTKq8Xb16Tb3PEaFQrsQBADuTZxLrM7Jz/Wjg3wtXpmKEV3EUkvP5fq2N3bAYYDmVrdSF5t5xoiIypxzIiJuHR3k67EwANS1e5Tfa9sAAPoMHYAA7sFWMzkr1NDAtORcRZKy6Feb1aoWhB/n2r/Hk8sdFzFwW93Z3D0wDMNCzSX0hCB6cDMB9EetK6rpla8RtZQMeV2BMP0LmnmTwJySaY0p0z+Odo8Z7hIYTtXsHymWeqGEXIcxZjaGqg2PQrOLOJafnfx5XCi5RMxs7eNQe/EotpfuralbT5UgynG/Ww/z+slMyzdcuz6ug+Bavbl2zS9qaWYpNJOUxWqfwvrFE0cq9S8CPCCuZzbzJZekWOr10koyOTMTnat9TohyvPq545iGoWmaYZjMlWLpDQy9hiAMfAF4QE1dPR1G5NJvyWVZFKoe+keEp4BzXr3XhGh1lDVjpmEYhmGYDuIHgDpbzeSsn8FmP4IYre74eG1orUoII8EAhhQSgADuzFY38yU3MMZYnBqz/LEFzZsH9tGu+ddvHXe9t9X32YIrSbHZWeV/Xvn7rZzzSyyHAACGmX/85l/ZAAAgAElEQVT0PXZVdpjrOg3Dkb2xTpj+Be34k8BKjmGYjHCXwJCy97ePGcXSn94motGoHE8qY5ZR/M+kMv3jZD/35fDb+c/Q1LgoiNVHYfhfrzq9lQWxeiTAXHaPcUZwq8uzb4ZDbRcm4khFMymVmnWdUsm5IX+rj+sguEEvrl0rnIjD0PNS0/yPH1EUBKG5rEUQp0KRmaQSvhp1iWZnXyytrSzP4/QOGmDgC8DD8bMuAkfHzCVyndP6hglAf3Fd3dnePTAMTavt1FXvyLHJ0VAoHA4rS2vvULYA4OH20Z/HbadN1+u+SoyZbSbxAsAwQAIQwF1x69BwXCIiqu5+//O/l/39grOTzyabqG7OerPFO95L8EeRb238Pi97dc5cz7zfPjAMQ9OsSiSOCkwAgCEWKG1jrHo8OmXldosuxTDQHq7htwFyCXcJDCmviVkwOaDa98WrlXRdlzlmrXulIEa7aELivRyqyQahoVtPM24Z/5FW3v6+EKkY135TH9dBcKMeXLs2L4oTcRh21ezTjWvHcXA9s7l3bF4p71YT8XhclqMiSqegga1mjkbiiYQyZhkOc4loIjQzPUWXl5dnJ/u5vQLKNAD6x1bXP+4ZlVpo0tQyNFg2BdAnXN/Z/cqIJElyXddtuPEEMRqVZVmWZRSgANTVi7RuzAK6Ci8mEEEBDCMkAAHclRCNeyd1sVQq7PrdIqsfhF63dMewKpVz63DvK+viNK+paz7Z6vrHry6RJEkTrsuYWel0NxcAAB5KcxaQl9hxw8kFgN8GCJ/0MJSqTcwaptNV80CkWPrDWnJhZvKq7DDmGPe6hZuqyXAk0HPilD90sOU3y0++HDjhhZVqSx+nNNr2UvZtHQS3uP+1a/uqMk7EYZh5nahuHI4qjIcqBiIouBa3j/aOC6Y1prxMvMTAF4DB8lYRFFtKNsQuge7JpVI3g4MB7sA7bUlvbSy/jCcDN56GxrMAN2ku0mrenhFEudu6L4BOcVvdye1+/qxpmmVVfuJh3TUkAAHcg3dSl//qhF9vrSmTwXRY+ZVyZZmMMcaYS1Jq6+18xz3YDw1ndumNLBIRt9X32QIRxdJbb5dfelvtXezmAgDAA2pscC3deHIBQLVT2JKJDVAYLt74leZUAH7y5cBxpdTWxqtngiAIYlT2s9i6CFYDS3qtvgFbywIqM4YjgV4TovFIxTLre97jdHl5eba/8/Ero5i/DBF+nGsmXTv8qS/rILhVL65d+5fFiTgMrbOTzyabXVi56WNFEOWuP37gCfFvkJJjVCLJ+TkMfAEYJC8uSa0tt8kortVNdTE4GOAOuKWZ4aU389UmVNEbO5sAQAP0bYPBs9XMx3zJdf2uGC5zsDPYNSQAAdyPd1L39fh0Mvn7q5eB0FErh19/WEvOzMwk37zppmu68ONcMwvlSiQ0YuU+7pWIKJb+tDon1L7Y1W4uPA3IhwUYYv5CKfLP+Wd4Y8Jt/DZAJQfrGhgi3vgVaXbhn4FdnvZJQcQtw3Ep3NntW13S+50uvSFiWvXmF0Q5jiOBXuKc/Kk4ohyvbuA51YSPxmwd+2j3liP33q+D4Hq9vXZt1g7PnuFEHIaT12surNyW2COOVDSTdfrxA09Oc5Y9Br4ADATX1Z1TmmClf8xc+xi/w+BggC5xSzOpMZZo6mxyiv0XgBt5E8EqhsnIZUjFgP6y1c18SUptbb97GY/Hk8lIRTP9oTm2rlMU915HkAAEcF/eSd3x11olUbB68nRUic/fvJvA9czOl/NQPWtWnBqzjGLJNE1/pML26lz1mzvYzYWnB/mwAA+Mcy4It7zhBBFby9Ahv4jddSfxJIfhwLl1ajLXbaj18pKCWoY7XZ59Mxy3s2jVW9LH0h823nhrekWJXJ2ajDmGVhvjgiOBnuC6urO9e2A0d1mqJ3woS2srb15WE61sdTPPbm1cd991EHSi99fuhrUDTsRh+Ag/zjtr7cMtzWQTvy0geIL2aln2OOQFGBh+dvLncaHkEjH0uIUHwm19/+j0gljpR0RpaVpSnUU3GU+g4gSeLq5ndk7880muZ95/OW/f4sebNh16kVZ+m07ggBL6heu5PWeiXm1Y3+O41DMf80UE8x1CAhBAD1TLX721THDiC2Nm4ACjHX7y5aDY2DvPb8E+GlKW1laW5+td1zvbiYcnBvmwAA/LVtc/7hk3PukBuiTKyljl6r9eofcCDIdAw+dqFlDlPF9gFEtvJBrvUnt/+7jDaLW6pH9bv9EFodbcpGTiudo7tvp+r+ASSRK5zOuyVFt4VBM+oqIg+KUJ3759Pi5RS3Ontu6zDoIO9P7aYe0Aj43X2oeVb9nn9ToFoVoKbuJ9ZhWLWLsBDIgX249dlR3mug4GLcHg2er77FfGmOsSMdNoP7lIEBEBw1PG9Z3dIqPwQjwqED87+b/qxOk2bxfhx7mWv1TevZpr/1oAPXB28tmkFyt+O+lgOpAQDVU0s4SK2c4gAQigJ4RoXBmzDvIHlWouee2kpKz8701HIEI0nqx2zK9/sApitLaXS7aeOTo5Pzzc7XgnHp4O5MMCPCyu5/Ycl2JLSUw/hhsE2/3ZaibHQ/HojacOQlTGsQQMl2pxpNfghTGi1kefrW7m23QFaq9xSd/wF02PWYZTur3dA3TEjw63tt+9jCeTkYrV0s6pytv5c11XiqU+vE109tu/+zoIbtX7a4e1AzxC4tSYZTjs5umoXeSfwhNSH5/o89sAFdCLBGBgBLHWJbJUckxkAcEA+cvT9NZacmay2qi0fVoDwJPFT74cOG51G0egqfjCTOCwsvGRbR/tmqQkEURBP3FLM0shb3Yo13d2i259m1EcqdS/CDdDAhBAFzjnl9dOefH2EfL5YCmRIMrxDj4OG9ZCLR+s9tH2cYEx1yUptdVcZg1PHfJhAR6W8ONcMym1tozcTLjJ5dm3g6L3EV/5d6FEv2G1DI9TIGhlrldDWY9avYzIjo9fg0v65r9m/KdlOH+FEcP0QFPCB7cOD5zZVDrs+j16LKvyMzQ1LgpeH9JkMplMJuMtY9f6tQ6CG/To2jXA2gEeIz9ng7mOoVljkemWc2OuZz5+dTvNP4WnwlbXP+5pmqZpllU5P+cjIz+IROHZXdsAcVvdye1+/uy94E9kMAB0IdAlslRykIIBg2Ef7Zoslt5IPKs1Km2owZ4Sr1veADwh3hh3NhpRZFGw1fcfD6+U31eXg4mbViU0PUWXZ/s72YIrtSnjAugpbhlOqTymxKNn+9vHLNh8nFuHhjOBJLSOIAEIoGNc39ncPfA2D6zz858jI+NEDfvgjS3wu3z5S+vkz/8w1yUilwUrIkQ5mVQUZWVlBU81aIF8WIAHxHV155QmWOkfeJ/BzfzpnmWnVGIuSbML/8RuJzxewSwgVotax63cbrGr49f6kr7l3XB59s1wwhjk0gP85MuBM1FP+Dj5cuBMKCvLr156o5/IdZlTnly4eZ3R53UQtNWba9f8olg7wOMkytUeWE49+40uLy8vz/Z3cntFRm2mUsLTxjmfHA25RK7LXMaYY5qmYWiaphnuhDThuqVu2gDZauZjvuS6kiRNuC7zdu3wkQdwnUDCnFavcw3MFWYM7yHoP24Zof95Uw9tm2qwDasyNn1z8jzAr88rBGHMNCzLOi650ou15ajQkLjJmGkYhmEyF/NJYAD84iTHsCyz1Fhl6LV9RRJaZ5AABNApe3/7mHn/6LouY45pGt7mgWVZ5z9/jvwYJ1GU45GKdfz1oMtSIltd//iVTbxIf1hJLizMTF6V3VKp6KfXyqJwbb0tPHnIhwV4MPzs5M/jQsklYmgiD7cSxKgcqmgmI/Lnt6D1OTxmgd0gLwvIcNybj19tdX3zMFDr67X5YY5RmxxV/9b97WMWW3qDNIT7uzz7Zjj0m58k0pBSIk6NWYb7Iv16IT7/7MZnUV/XQXCdHlw7W83krFBDgT3WDvBo1Y+NXddljml4TOa6JMXSH1bncOdCkCBGo7Icj/v90RRFmZmZCY+Ohoj+8kaZ0mynqca2upkv+QMZ4/Gkl4bp5U/auk5RPDYBgqoJc+RlzHnPbK26Z1KbKxz+1yscIkPfcF3dsS6JFX40r02CWUATKDkBIBLlaqKPS0QToZn6ArI+Ct6lidkXr9d+R79NGACvwsyp3ZFTdHl5eXayn9sruEhC6xgSgAA6xLl1ajKXiEiKpV6vrSQXZmYmR0ddIsYYc5xqLZFJE1KXpUR+7/WtjcQzQRC8ppTe3tZxrSklOgVAW8iHBXg4glifhOM6GGUPt+DcPj0th5Y+rCmTtT66wbuGc46EX3hkAmW8LtGN079s69B0GIXr7UqEaDxSsUxWG4A7LgoC57bXVrrTSWJwM+HHuWaWnKtIUhb9zKpawxfhx7n27/Hk8m1beP1cB8H17n3tbHUzX/JTTqvLSawd4HETRDmeTCpKZHJyNBQKh8PhsLK0tvLm5TxCcLiFIAiiKEblek6QkpSfdfSfNg1kJFvdzDMptbYcvdQzH/PFU3zqAQR4CXOx9IeNN17GnKJErk5NxhxDq6WJC2IUfVegn4IFe631JtVyFpQtAPgEsVqySE0LSPLfL/F4XMamN/RXYGO81kqf+Q2oDMN0mCvF0huvOovgAQlAAJ2qZ7t6R3anV5PTciIx728dKIoS2Acn6qKUqLm7e/Bv9Lu7oy8qEBFxPbPz5dwr4rXVTI6H4lER+bAAD6qhgXBzPgdAja2uf9wzQ0vbq3NCsI9ufZo238993PuMzhnwCFWj5Jl44oZeJGI0nlSUaVkUiOuZ91/Ox0JT0bn5eLCJkKZphmFiSd8znHPhWXTMMtzpZDwqNDd4sY92zb9+u32CVB/XQXCdHlw7bh0ajktEgU3cKVF4hrUDPHqC19rFExWRPQ1BgcFD3qy4a5dmHd84ZyefTaoPZAykA/lJle4k9usAfNV3yNt6krLglU5VTk1WMrHehf4JdpwNFuwxbNUB3IrbR3+a4defNpK1IXnoSgCDw3V1Z3v3wDA0rXbjVbfPx/zSD2Vp7d2t9WsQgAQggG40H/TWPwUFQRDFenthRUnOd3xq0djdvYHX3X029UL5rwQWSE/e5dm3g6IXfVX+XSjRb/4ZAPJhAR5Ycz4HlkjQhOu5Pcel2FKyfl/UO6d407S9WdroeQKPlSB2sKHqlfLws5P/M2s5k9H5xMukokQmr0ZdotnZF0trK8udx9FwLVtd/7hnVCIrr5b9kPHs5LPJJmojpfTcXpsahOv0Zx0EbfXm2gnRuDJmGY4bS6XCrr9QsCpjoWhieQFrBwD4FVUHD3lzh5jLnF5U03FLM0uhmaQsEnF9Z7fo1huyiSOV+hcBoClhrk4Q5ekxy3BKo8gAgj5p6TjbtvQKW3UAbQmiHE/KYtPCv9qtGelz0Fdc39n9yogkSXJdt7EJVb30A7dht5AABNC1wIcgYy0d8fzv6eZZ1NDdvc3Xjmnh3au5e//c8OjVEn1KJeaSNLvwz8ZOjMiHBRiQ9nWlgUk4DI3boIHw41wzKbW23NxYoXGa9uu1Vzf0TwH4VQiiHPdGAdSzgOQ5byYHejn0Sru8Q++U0jGsSuXcOtz7yqh+gtmZnq+DoI0eXjshGo9UtPxXJ/x6q2H85OT0f79aXsHaAQB+Kd7godTW9jtv7lCkopn+8ERb1yl657UZtwynVB5T4tGz/e1jFktvJMTalxobtAE8dcGEuSbC+E/LcP4KY6MEes1WMzkrFH+1vNLScVYUmkqvULAH0CjYOqsG/e5hkLyB5+mtjeWX8WQS6Wc9gwQggLsJ5JBXd7/v/jASp8YswymZWutxsX20a7KwguoI8AhitDqQ1W2975APCzAAN9eV1vI5wv96hSEaQEReG9NTmmClf1xTG1ybpo1HN/yC2g8wpeBGLDqn9UPbvENRjlQskzHGGHNJSm29nb/Dr7yn6yBo1dtr500L/np8Opn8/dXLxh5OM/FX8/NYO8AwsdX1nIUnCtxJcDQXkZcOxKTU2nL0Us98zBdPuy/P4JwLQm3Ql2NYlllyGzp22vvbx0zquJsewBNQT5hreVdcnn0znDAmxUKP2epmvuSGlRVZbNtxtiELqMxYCQV7AHWcW6dm+4FfDU203PDts8MB7oZbmhleeuNXJCH9rGeQAARwHw3tHu7xMKr2Z2eOv4M+LgoC5/b+TrbgYh4INOCWdRpa+tBQxBu47/wtKgDoj47qSgUxKuO5DT5+dvLncaHkEjET20zw9Fw3wJSIWjqnIQuoV67POxTleFJRIjMzyTdv7nda2at1EDTqw7Xz2gAdfzUqkeT83O09nAAejm0dmkUM6YC7aRw8FEwH8hN43MmuAvHqNMakLPq5lA5ziWgiNDM9RZeXl2cn+7m9givVc44AnhpbzeT4dMMby2vzwxyjElGaHuNegf/SG+T/QC95vTMbT0/adJytZgHFUbAHUMdtPXfwlblE1LbYnKi68FcQmUP/cEszqbEHRtMMxzsk8gMSgAB6oD6+wymVnHJXWwqcV7vkC9F4YAfd0DTNMEzmSrE05oFAAyEqx2VRaDvIeIrv5z7ufa5gojZAf/ShrhR+eYJYO2x1XQdn5PCItB932KUbBphWvyMYSqMcsxduyTsUBFHs0UPoPusgaKdP167aBsh7yZYeTlg7wLAQoxjSAXcWHDzE9Z3doluflejNUWw/leiaV2uaxliLZxhjpmEYhmGYDnOlWHrj1bO+/T8BDDf7aPe45DRF70I0HqlYJquN7kCNK/SR97hvl4l5XcdZFOwBVNnq++xXdyKV/rCSXFhYWJhpTpqrfyvKzaFPuK3vH51eECv9aEkcru84TcYTSNu8AyQAAfSG35gsMhOf7yxdh+vqzvbugaHV82oFUfZmHE6OhkLhcFhZWltZ7vDl4IlqGmRsmMwlrKcB+qbXdaXwVKB9KTw+N4877MrNA0zr34NyzF4ZcN5h1+sguF7frp3XcfYgf1Crx69PQlD+F2sHGCJNQzqQBQQdqw8eOtvfPmax9EZCrH3p0HAmlGTnYUybaYzV7MnAlt275XmkT8ITVu2N1ZwDJMrX1bgiYQ56y97fPmZUT/dsgY6zANfxN7W3NhLPBE9j0hw2LqH/bPV99itjzHWJmGm0f0QLYhT7FXeDBCCAHuq8ItNW3+8VXCJJIpcxJxiACmI0KsuyLMtREam10Il68bVLE7Ov0TMKoG96W1cKT0xz5zbsPcEQ62jcYRc6G2CKcsweGnTeYe+6CsE9rh3n/PLa6kxvFFg+bwQa/giiHEfmMgyh2pAOrzdc28xRgEZ+QYZjWJZZauwzYu9vHzOpVsZxq+unMTZt2fX2/wDg8fESjNvkAPkjYyKTV6Mu0ezsC6/G9SF/Vvj12OpmnhERjd4cJaDjLEArfvLlwJloCY4EUY5HKprJyPUHfU9jkwb6xHuIx9Jba8mZSUwp7wMkAAE8AH9mzNb2u5fxZDJSsUzmuni6wW0Ckzi0lj1QQYzK8Xg8jhsIoJ96WlcKT1JTBRr2nmAY9X7c4eUP/v+Kf/75f//+x/TSxoqCAaYDgrzDx+su147rO5u7B5qmaZZlnZ//HBkZb+rW3jgKrN//DwD3hAaK0KVqNxKXiCZCM9NTdHl5eXayn9srtJ0Pc51bpjECQJAQjSuRimG2zAIjEgQxKsvxeBw1rtAH/qhGolqewi1ZQOg4CxBwefbNcOi3hTZhjjhS0UxKpWZdp9Tm2Q7QG/bRrsli6Y3Es9qU8kD5R2R6CqHDfSEBCGDgms5UuHV44Mym0mG32ozSqvz0RiQ/9E8Kw6Q6iYO8URyu63WOQgQGMEg9rCuFJ+G6xM1aBRr2nmAo9Xjcoa1mPuaLzHVd1w0vvJGfYYBp39hqJmf9bNr77jLvkOuZnS/noWlZFMhWMzkeikeRmtV/97923gwEIiJyXZcxxzQNw6jmA/38OfJjnERRjkcq1vHXA6TcwdDinAJ7Ic3JcJZVCSGREa4jRKtjFBkzDcMwDMN0uh48NOBJmgCPniDKyUjFMktFnBPDoHg9uSmW/rSRrA+c6yQLCDcoAJE/7LTkXLVdFXLL+I+08vb3BS+/s/03AdwTt4zQ/7yp31sN5R+mgQZU94YEIIBBa2qv5/2rsrL86mXSb6/nMqc82S77Fp4ubxJHLP1h4403ikNRIlenJmOOoWH7HmCAelVXCk/AbYmb2HuCodXTcYeBGGYlWf+vBHHkZ0RZCI9igGnvcPvoz+Nr+mR0nnd4efbtoOjVXFX+XSjRb2htNwA9uHacW6cmc4mIpFjq9dpKcmFmZnJ01CVijDHHMU0vHcikCcl1S2hrAcOH6+rO9u6B0a7dbUPmaCWiIAcIrlGrIJ4cDYXC4bCytPZueb7rHRM0oALojpdijBwgGBAv8d1ryt2QMY+mpwAdEqfGLMMpma1vGH7y5cAJL6zIouB/0yhOn6C3uK7uWJfECj+a761gDD6xsIIb7z6QAAQwaI3t9RrSgcSpMctwX6RfL8TncQgCddXS+7f1bSvBK0qrnJqsZCIFCKDvbDWT49PxqNCjulL45SFxEx6z3o07bBPDeGx1cy9vji5svF3GANNeqbcsuDaTpIO8w9rHXKnEXJJmF/6J69N/Pbh2tTwh/zVOryan5URiPh6PJ5PJpKIogXwgIqJZ7KbBcLHV93sFl0iSyG17gFc94LsKLyaQcw83E8RoVJZlWZa7StppasaGSZoArWw1s3n4rfLz58h4U/N6UY4rY5ZRRA4Q9JutbuZZYw/ZWhZQmbnehAU8sAFuJkS9xE2v+GcsNDVOl5eXZ/s7H78yii15jVmEH+eaSR1vAAF0JDhvt11phxeDY+/8vpAABHCzwPAObzTXvSt+Gtrr2fvbx6xeUy38ONf+PZ68Q3US/NIaJ3HUCaI8jTRsgEHg1uFBsWj4eRs9qiuFXxgSN+FRsdX1nBXIN+jhuMPrYphquVkZxwM91pPDSkGMyqGKZjIil1W3A9H3oN96ce2aW1bUX0MQBFGMynItHyg5j7RlGCa2uplnUmpr+93LeDIZqVgmc902B3iCKKOBIvTJNc3YupykCfBL43pur+i6LnMcszpotPIzNDJOoiB4eeTIAYL+G6mclpW1lhbcgijHgxV7mlWJTE81JqoBQF1tm5Ixp1rjylySUltv5733jX20azJUjkAP2Or65qG/sgvO22XotNk3SAACuEF1eIc3u4O5zOnFWt/r8zOdjEeF5hpq+2jX/Os3TP+CJsFJHE2E8Z+W4fwVxsIaoK+EaDxS0cyCGejdcse6UngSkLgJj4ltHZrFkmMallUJecesPRt3eH0M42cZdTFMDDrXdFh5h0wSblmnoaUPa8pk26Y0nHMBW+l9cf9rF8wCuvY1cPVguFQzp/2PF24dHjizqXTYrb4RrMrP0NQ4jvCgr58/NzVj63ySJsAv7fLsm+G4JKXSrxfCo6OuN2fUHzNqWZWfP8fl35OTyAGCvhJEOX7tzdUcCRvoBQRwA0GU48l6jauytLby5mU11PEz9AMlYQB3ZFuHpsMoXDv7bi6Aqm9IQq8gAQjgWt7wDq8ELR5PJiMVzfS79di6TtE7f+4J0bif8nN28tlkE7VxYHpurzYODCCAX18jf3n2zfCmsj7EDwbwhIhy0ssBwjYW3A6Jm/CYiNHqojuQKyD2aNzhDTEMcctwJhQkAPWL33bMMBm5XbcsEKJyXBaFtnsyU3w/93HvM1qZ9c+9rl31JaLNmUSoqoOh1TAZvfqvysryq5feNgy5LnPKkyiVAlt9/3Gv08cZ1zPvv5x3eex7YzO2jiZpAvzSai1+zHJ45e2rl/FkMqkokcnJUddljDHHMQ3NcCYkyXWZY7Sb6wEwAMFImJQkzloAqrit7mzufta0hvVhrcY1KgoCEdczO1++fft8XKKuCsAAriVG40lFmZZFwY/RvduvXgBVwvjGnkMCEMA1mkrQAvmul3rmY7542osDYHHEn69QqZxbh3tfGdXHgQHUeKfFbZfO3hQ5fyorAPSX1xIDpWzQASRuwiNTW3SXGSv5i+75Ofne4w7r08RaVvGIYXrlphNOQZwas4zQi7Ty23Tizr/qpj0Zvy046gDvr+/XrqGfUHM/C4ChcXn2zXCoVhkVTAfyGii/SL9eiM8/w6371HFuVR9ntx4PcH1nt+hO3O3YtwfN2AB+WS1jvgRBjEbl6ozRyOTkqPufEnOJSELiBTwo72E+jdgXoMpW32cLrvfP7nUBFdd3dovMdV0plvrwNoENG7gfW83krNC0LApeG09+dvJ/ZkO7zaYNSRy79AoSgACu0Ti8I5gO5B9kuJO9yACSIxXLZIwx1jheEyBIiMYjFcv0T+TGvO7nnNv7O9mCi/MXgP7hunpyNjJeGzhQ3+tC4wO4CRI34VESRDlem31RjTnkOfle4w6r08RqLUjG6fLy8gwxTM/4uyfXnU8KP861/KXy7tVcpy9oq5mc9bMlTaQ2/aTs0sTs67VXOIq/t55fu/bql84plZxyL1axAL0l/DjXzJJzFUnKoh8p1SqjhB/n2r/Hk93mn8IvKZCX47o3J+bY+9vH9yyx60EzNoBfVEsOUP0r9WQgRVH+icQ5eHgYHwpQ5XU4iKU/bLxZSSYbtn6CAZUQjSeTyWQyGUfjQ7g3W93Ml9ywUi+DFUQ5riiRq9PWLKA45u32FBKAAK4RHN7hVQ7Vdw68xj3tJ3tc93K2upPb/fxZ05r664lyPKkokZmZ5Js3KIuAJoH59t7eU7XczdA0zTDMO0ziAIDOcX1n92vRCcyzHxmPPpPjyphlfD3WkAME10PiJjxaghiVa1lAPekYIkTjSWWscur4QYxhIIbpJe+AsjFtK3DB7KNdk5Rkx4eW3D768/jaSy+IUTkej8dxnNMTPb52t/xdUTmuRCIz6KICw8jr8zOdjEcFbh0azkT9zrePds2/fsP0L1qH5JAAACAASURBVKgJJDXW2/NMiQ0nvLa6mWcUS290UrXe/0Z6AL+g63OAat8hIPECAGCIcOvQcGZfbyS8bZiGrR+MjIa+4Hpuz2mzDR4c/RUcuot5uz2FBCCA69SHd5ztbx+z4M5B85bUbWw18zFfcl2SJGnCdV2/v15thSQIoojPVmjAdXVne/fASzvwk7AFP11s8mrUJZqdfbG0trI8j5MzgL7xuri4JEmxiYkSKzmOaWiapp26sxMTzC2ZqAOFGyBxEx4RL+6oZ6pH5+fng4txy6qE7jX7QojWghh/mhhimF5qSduyKqHpKap2Wqp1Ne3opXqcAAY36+G16+Qvw6oThpQQjfv7K2cnn002URsHpuf2auPAAGoCz07GmGk0fFxdd9TQ3oCasQE8ZoHqxAC/5qVUbNP2FgAAhs3l2Tc/4b7+Z02r0VPsc0MPeX01JG+uThsYuttnI3///fdD/wwAQ8pW17MFIkkixqTUVj3/x1bXs4WGP7n9daRYem11zvt+zu2jXLbAiCiW/rSKXQRowfXMZp4RSZLEGCMiouAtBACD470dpVh6Y3WOc9uyvheLBf99SdT5ZwH8+ritHx3kC/5DW4otrS3OiSIR57Z19L14cREOK88X5TkRdwwMGT/mJUmSqBp31AMPbqu1uHULocjwq18w350/qQKvhDh0IHp37QAes+pGTCwWpotCgWHXBG4UjMClWGppUS7nvPY/Xdw3gReRYqmlxUT9I89W17MXeBrDk1ZfK8SUpZb1rK1msgWGhQIAwDDjuporExUK4WsDJG6rFq0mEHVDr3jxQ0cxeT0WxyZIDyEBCKANW818f76xOlfNwvA2vRdFIuLW0UG+wDp/DnE9s5mn1m+v7u9iMwta2ep6tlBbPN+wFwUAg+B/GDQ8r71cIJJXEZOCJ5hCQfXczdQa7hEYci2Z7e0W3txWj8qLHd3N3FZzB16epHdKgMClXwK/6uYgkdv60UHxgsL3vgDIAuqLgVw7gEfLP00mImwBQ4eaMyjvstMW3HmRYktriyLxo1y2mw1AgF+RF5rUq6CoJRUIOUAAAMMtGCjhYQ0DUdsn7/hAk9v6URlHLT2EBCCAFtxWN7MFf6OpoZzf5zWC6PDVbqgW8o6UkQEELWx1PUuNNwaygAAeVLscIIA6L3EztbV6UwpFt7iu5gKHEFigQ4/Y6vrBRe2WuiZUbYiHu3lt79A22EwIx2Z9UTsfb2zc1Jdftn839O8veGIGee0Ahlv9LKJljcu5zbk4h+AHulC7oe7zREUzNoBr+a1tC4F3iJ8KJHrZctgxAQAYDra6nr1orODB6RIMUL21BhHhlnsgo3/88cdD/wwAQ0YQ5UhFM0uOUYn8f/buJ7aNa2/4+3Gs5ViitekIlBZCSCg20NZjgy/fFvDDx46NQsmlIRSGXQNeGTcy1FWCBGhX0mOtWsTwsnK04MpIUCEoBJsVUdhRxjXQvno59kzbBflAFLTJPJoXBBThjmwt08XMkMO/4lCkSIrfz+peiyIn4sxvzpzzO79f8vqVqJJIxqZGQufHxiYnJ2N35r+7fz1ApLL0tJYbu5RUan9HuvBJV/P/mKSzJqpYeloTsYqTRpKjXktMGrIC3WakHi891/Xip7FzF2RZEkJI0URsRFd/20zT3R51GBvPNTE37+tp7LbRLqpaLt9eyDZS37/YsoUIh4Vt2vRCRscY+istW26vLbbT2uiNB9UjVUlWYiO6ms0eTdUbxTZ469TSei489+Tpd18nEolkcqqY1sz4w++uy8LIZESUoUvHOH/q+MIPi984f+tYbOpoWzPNvJouBvjKyqzM8ve/7NQPMpI8MaKrY18uxL6YmW3jveHX+e8OGFRG6vuVLdv537aZrxzqSJIsM+hBMJLsTN9dSsxGWj55LMs6lKTyy703OdqzxejlLx/O/z3IDCBwpkmSHFWURDKZTMZiU6Gj87aZM828pqqqJkbDtm2bGqMZAOg9Q3+l5U0xecM3G1m1uqTqenGMSUZ0hZV59jxri/jCT4vJqeK2ZppmXlP14sjYRJRT7vSQAATU4yx55HOa7qzZSXI0qiiKoijBA5Slq/ncXt21v8PCWzU/WbvkgiFmGZm1je0/hJn7WCfLwJuLCiVmFW6VQJdYxsbve6Zt2mZe09R0Op3W9eKnTxeUv8VC29pvmyo5QKhm6Z1LoXAYqaV1002kSDqLEPlcTlPTPC7hpOSoO+djmqampvdE2M59rHeKBk1VtzKrL/Kjcz94mXDuWTx/P3qYWf5xPUv2csd4f+pvy2uSkiQrCed7zWltLLxYhXfvNTfI1MkCkj7upNcPY9/dY0/3CXX8u7OMzNrq0+c/p93xytjMhCxxnWEQODeJ+MIPi988qBrqkPCME5DkVgfKlpF6tvT8paqqevUQRZKjSiKRSLQxBQgMh6pcoND5f8vmbCGEiN/5hlludFd14iaAGnI0kYzFZhRZcrf6lGYS3dWl4raWM9lqiO4w1p5umiK+sDgr+844JwuIU+4UkQAE1CdFE04ZoKBrFUbq8aruW5tz1k7MfJ0FY2Pt6abJkxF8jNT3K7+ZpmnbQpiaWv92KMnsoAe6SZKVhDeRdSl0/rwtcmYun9dUVcvbQghhUoQLPlYm9WxbjJpbJ0uhMFKPV1+Vdt9Y+is1f/nhd+4KsVtPyFkaY9METq68uz2fM20hzLppBwFT1QvvftbElw++ds51fzqQFB0rprWcHSJ0dkbln7pMkpWZEV3N584HzgByclAaphoaG881EUvy/Z1Yh78759nBFuFweHTUdsrFqXpxZEbhq0K/c4c6i7MRIUTVUIeEZ5wCpwJVOBy/fDn2z/fcyMuqMhCcJMnRqJcLFLveev0tIKgmiZsAqjkjGnerT+VMYiknY880cxoXFDrKSC2tmyI8N3+/dFb5zjibxLPTQwIQ0JC3bV8NshHT0F9p2YoaelI0MVXUNbM0i3VBliTLMtaerWzZFXEQw865OcYXnswnL4WO9vImt0OgpyRJlqNKdTaQadvxUl4GYBXe/b65lTtpCkVVVybJeqvaM5WL7VVZQKSh4aR8p5Rpm1paH5ma8S+2GmtPN81w60kf/r63Tr3fcrCUzxUbNsVFYF1qMVyTaqgXx2YmxGHBeWypk7WCwDr63RmppXUzPvdk8buvE043Me/bYw4X/e+wwFAHPeTmKT9Z/Pt1RYnKwmmF+fSlqqrptF6cSjBgAdpA/hy6icRNoA2SrCScptP1soASsamRo8m/3aPVBDroXHF7Lzb/9+qzqnTG+Zc9KWDcTSQAAWWWJSrDjVsGaEtrfQa11FXBX0Mv4lV1dzojp9NpVdVMOxxfWLwX6c5/CwaQsfFcM+MLi7MRyevJWlEHndsh0HWWkXq2+vxnt5FGxc5jfzYQ88EoK5fNOFEKhTd+cHbfpLftUdv8rM4Scalnd2jmHiciOsC/2prV1LSuFz+Nnfuob6z+sp6zw+WGXi0o970trD3dNJ1yv96PXqn5USrIdEoXWwyXgoz7OKOqqmbaItipgMY6+N0ZG881MeefV3Ov56LaRh1b4BRZmdQz/VCYOYY6aFGn2x069bjLmzqM1OMff7OFCIfDo7Zt1k/rBwD0DombQNskX9+vXGUTJkmOUjwWnSXJSqLhXIR/J6LpFDCm+EHXkAAEuIzU4x9feJMJOzvWuXMfhZClSBtlgKpq6KX14tTM9SvXE8lYbCp0dN4W4vLlL+/MP7h/newf+Fm6OvbPvpZwVXXQqecPdJeRWv5xPWfb7sSvbTudaVlAw7H8C+aVKRRP13Otr5v79kKUujJVtw8tvTLK7BY6pzLnI69pWl5c/vLh/IP7QaZR3UZfeVXXtVxlmUsnE44KMp3SyRbD9TNfy03ibDF6+cuH83+n8F1ndPS709PaaG2+kOTVsT1i+Rp9qrJ6IkMdHKvj7Q6dDnRuwLWM1PcrW0KI+MKTb+9/nYi12UwTANA9JG4CJ1XOAqLrBHrLNwdpiliSmcJuIQEIQ8pIPV565b/HWZYVOj9mC2Hbpm06Sx+qmk6n06o9Gh617VzrZYAMw5DliG8Vz+v+FVWuKIqSSCQUJUoxF/h5myC3PlY/r/izgOpM8QPoECO1tJ4Lxxd+WPzma6ePRmzqaFszzbyaZiIBrfDtqHFTKMzR+MIP84FSKKq7MqmVlaiADqmpeykqpoNsYZtjsRvXA555Tt5B3rSFEKNjl2YmxOHhYeHd2uqLrYDFhNCIZWTWVn/5/d+EbdtCmCdsMdw881WSo0oikUgohKCO6Oh3Z2VSz7bFaJ1nByFO1gkO6DLLsuTIdYY6aF0X2h1KH3fS2tZecWrsnL7644ucECK+8NOjK1Lph4KqhQDQR0jcBIKwjNSzpec/11S3F76tPvlcTqNzNHrIORlneA7snnN//fVXr48BOH1GZnll3QzPPSl3JqhkWZZlWXsfPuz98ccfpmkK4c4HHP/eVmZ5ae+O76WWkdl4ub5lCiHC8bk7X81eYTSKKpaRWl3ZMoUQQsQXnjziHAFOmZVZXloXtXcF7+Js8Q6AIeK7uwsRDsfvzH91RZZrfhaOL8y3GNQtI7PxMvuHEJOxO49mr/jvDeFw/E6rbwM0Z2VSq8eNSy0js7GnPGowTD7uA/zXhiscX1gkiJ6ckVr2xosivvDTV6I8fvQE+VMbqccrW/4gZVnGhvuO3PY6rMPfXeWzQ+13ZWWWl9Yn+RLRd4zU45Ut30nLUAfHM1KPV/6o+5i2tLIlmkzrNWVllpfWvShcGX+N1OOVLW6DANBXvCeXO1f3Xq6sVz2vNLhTAEPKGXH71ZuaPNG0D4ABQAIQhpdlWbIsCyuzvJSdPD4vxxKiteW7YxaRmdpCA2SKAT3UZLrAmR1mDhgVvMfpcDgshJsoLMLxufnys3OwqF61NuxPIy6t8gZIJgIaKJ+6onTenuS88g1wK09zy8joH/b2hBATVxnTdEZNvo4QwknaWVrZCofjk7GrXymlRMRjkfl6ijr83bm/7rvLzC3M+y8z5/NYBUG/cVMuqje8MNRBU0bq8Yqoe0s64WOaZWQ2PuxNVMVfAijg02zTC3C6SNwEWlP57NneBkUAZwEtwDC8JEkSQliFd++1XC5/bOHpVguRSRc+6Wr230LV1fMqGoNoaqNW9xhevt6XzhmpF8doxAqcEktPa7mxS/UKBtNHAzVa6kTg7+CYy2tqs05yvg50D5L+lxmZgnzv/oPYVHF7zzQpz4sTMlJL62Z47snT775OJJNTRV0zbfsEzd+N1PcrW7bzv93mUd4bSXI0qiiKotA+qkOszOqL/OjcD99erwwkUmHjuWaKyw8XH10P1GK48O5nTXz5oKbbuiQrM1TR76iOf3fur/ueHbKamtb14qexcx/1jdWn6zlB0z30Iaez0tz8faX+VAlDHVTrartDSY46wxRJCGFkljfe7bx69XyTAAp4jNT3K7+ZTqvYUds2bVNTVb04MqMQpXH6pGgiNjVydH4sdmf+wf3rkdIP3GfclpsgA2eb0y/v4eKsc5FUTE16XaiZpAGGAglAGHaSrCRisamj7ZaygGoYqcdLryqXTJwMoM/qLyO7U1tHk1/NMp+AeqoyxdpdkQMQkKWr+dxe3QWHw8JbNT954wHroHAZG881MTfvWxlwn6iLqpbLb/tPo9L67NHkV7ON5qMarQ0LI7X0Yl0tTiWvX1ESidjUyNHk3+4xfkC7vDPNPXUt/dXL/OW5hUlbM50xh178NDZxoeVEBGeq1Utcq5hSYvDSeY3ydYQ8MdL4DtYEma+nptPfnZFaXtU/uQ+tFc8OeU3T8uZofOGH+fuMWtBnvEyOXOOpEoY6qGIV3v2+uZWzhTC1eqn0QR/TLCP1bPX5zz+n0+l05QKYsfF0c8s0bbvtnmLAmdPSpheg+8pDX5nETeBYh4W3qj2TrIjSVRsUtwniwFAgAQhDxcosP/tlx6mqYqSWV62xRFQWQvLNm+byQZYtDP2Vlq9O05A+7qS1rb2RqbGPur7x7p2u67r+6tWrt2/fvn379tPM19evs1cCZXUmoSIRNkECp8tZ7DTzdeqzGWtPN834nW9YSYPH0tPaaO1agyQrsRFdzWaPqhcoJFlpdudvcW1YkqOMH3AC1rtfXuZHS2ea839jD+7f+zo5VUxrprBtM78XutHqmIONZaercb6OFB0rNszlafqOZL6ejs5+d5ax8ftm1dYV92l25Ggvb9rCNveOLpGEhz7jz+Ro+HjLUGfoVW2xk2RvaGHappbWR6Zm/CMLY+3pphmOJVsbuRip5R/Xc7ZTzMS2bbd0oXM2ykoyGYvFHjx4wNQL4Aiw6QXoonpDXyFI3ATqsTKpZ/qhqJ9wX9qgGJq5x4M+MAxIAMJQOSy8fZl1liSK/7qVE1/4JwrKWUBmy5VX5GgiWbvSETlXTGu5vKZp+bzpsh2XH35Xvb0fQ63JJJTMJkjgFEnRxFRR18xSML8gS5JlGWvPVrZsigmjpBudCDq/rg/UcVh4q+bFF26CT0U6kDwxoqv2lwsPbySuR1o9d9lYdsqa5OsIS1fzo7FggYLM19PT0e+uvB5ekwVEEh76mD+Tw84HLr2M4eBssROTNypm6jrS7tDXb/drp5ZJbOpoWzPNvJp2iwtJwXsxAmdY4E0vQFc0GvqSuAnUqCydWP2U75BkJUrwBoYDCUAYKm632L18LmfaInz5xrXq+6Bv92SuxcorVSsdql4cmZkY0/IiPvfwzoNk8obrwYMHSR6OUOH4SSg2QQKnR1YSXhZoXlPVdDqtqppph+MLi/cix/86hkKnOxG479rhdX2gHunjTlrL5Z3JeifDo5SYLn3cSf/rheT9VvPU2Vh2+tx8wLxau0mhzXwdMl9PSxe+O996eGUB2+pH03p3KqBX6kydkAUEPzmaSMZiM4osCSuz/P0vO6Uz5ITtDuv025Wk0sNfru6oHhhi3dj0ArSv0dCXxE2gQmXpRIbawLAjAQjDRpKjylgxrZlC2GaDnZGleanWK69UTWXlTSFs8UXyvjMYlRiRog4moYDesozM2urT527/Pb04NjMRiVxPJGOxqdDReVuIy5e/vDP/4P51sn9Q0tFOBKU37fjaMFCPU+dnJpmISpb+Ss2Plk9VY+O59o8vWu/+xcayXnA2XHvdh0fGJi6Iw8PDwknydch8PSVd+O5EkwK2pUWSo8mvZlmbQ59pnL8GCOHV4bEK795r1Xli7bc7bNRvV5KVmRFdzefOM/kClHVn0wtwQu30bgCGTvVQW9eLY1wpOCWWkXq29PzndJp6xP2BBCAMIUvXt8fu/DAfC9XdeWZZliRJgSqv+H7FG4naQtj5bUaiaIJJKKCXjNT3K7+ZTv+9Uds2bVNTVb04MqMoshxVlEQioShRmfRN1OhQJwK/7qwNA1WkaMJN+Sm8+1kzR0vtwDKrL0rtwFp6IzaW9YYUTSRjI8XtvJuwo6rB83WsTOqZk/vqTAVGIgqZr6egE99d/Td2srhUzRS2WVHAVpIVComiD1hG6tnq85/dqPOp1LKuYhGvldLLGB6GYUSuzCac+si1WUBttDts3G+XWiZAra5segE6ovHQF4CwLOFMY1eUTiRfDqfDSH2/smU7/9s22enRB8799ddfvT4G4JRZRmbjZfYPISZjdx4pIrW6smUKIcLh+J35r8TG6sqWGV/46dGVFt/OSD1e2RJVv2EZ3tuKcHxh/tEV0jhQw0g9XtlqcK5ZmeWldTH3ZHGWUwfoBuf6m3vyyLvGLCOz8XJ9yxQizJWHeozU8ksRu/PVrP+W7rvdC+eO/9UVue2zx8qkVtdL7+a95WLLIxKgdc74VYTj8Unxx9aWWT2UbVX5GgiH43cY8p4WyzL0jQ97QoiJq18pAcKO+8WLcFiYTrDhUeWUtfvdWZnlpexkoy/Lyiwv7cUWJoSYneWegT5ipJZXtkwhwuGwML2oUznUtozMxp7yiME3PFZmeWnvTmlU0nhyrfz8duwoxsosL62b9R/zrMzy0vpke8Mg4KyrGOrH7lyd2Pvwcn3LZNIEXcfQFwikPJ8Yjs/5Zy4tI7X6cstkuhvdZqQer2yVRuu+cTpzTr1DBSAMGyO1/ON61rRt27Ynb3yjRCrTYVXNtEWQvfZWZvVF3hbxO8mKXEZfaeJcjnx01Gfpaj63V/fkoKAu0FXGxnNNzM37CrW4e0mLqpbLbxOzUc0yNn7frK0a2H4nAuHbmuORoqVCHGOTk5Mx6nDg5BoV4JWVqaKumaZpmqYtwnNPvr1+wh5EbCzrtGbFkyVJjiqKogSsVGeknPXPp999nUgmg9ZPQMu68N253XAaXWTSx530+mHsu3ssgaCfGKml9ZwbcxKJZHKqmNbM+MPvrsvCyGRENOrVc2HcjTLr3S8v/QV5Grd8CdDu0CnzY+bV2sal9NsFmqgY6uc1Tcubo/GFH+bvc8Wguxj6AkEYqe9fbNlChMPCNisrr0iykkjEpkaOJv92L3C1cqBllv5KzV9+uDjrTGO3VbMTnUYCEIaLMwMVX/hh8ZsHyXL1X0k+92kqdmPy/J4tRi8/nL8XaTkUSR930pqYm79f5wZaCnPcX1HB6xnHJBTQK5ae1kZrU+wkpxFTNntEAz5UKpdBr5cFFPSpxmnB81Lt4NowUE+zAryyk2926VLym29a7f3VIK2htDSwZ5okvndIZ4onG6nHq6+KY+7vuTMy3113bnAVsas6sKF9XSl87b8L1bnRGBvPNUEvDvQXp71kuTOqm4I4fz96mFn+cT1Lxj3qki580tXsv4UqTo8mW+xaa3coRRNTRV0zSxH0gixJlmXQbxfwa9q0sb1NL0BbGPoCravc5zNV1DXTts3KLCAS7tFlh4W3qj1TGZer5px4/Dt1JABhmHgzUN9er1rWNVJLL9a18zcWv72fSAR4iLEyqWfbYtTMfVa3l7gQgvsrqhmpxz++UItTSUVmEgroBS90b32sl+XjZOb5Np0CntI2420tl6te0q1eSS82TiJrsjUH6CRnGshLfK+YQPWmgSRZbv3Ma57WwMayTjr+u2vtbfRXWrZcMEGymJHpvg59d/XUpGzpxbGZCXFYcJ4dvnzQaiofcCoK737WROm89KcDSdGxYlrL2SECDozU46VXleHRyQCqM8l2wi12spLwCgnlNVVNp9Oqqpl2OL6weI+Km4BbMj9n2+FweNS2TdvM+7Pt2MqPU2MZmbXVX169ff8x/M/fPogx9AWaqsq5t/RXL/OX5xYmba92ol785Cw69fpIcWZZmdQz/VDUXyUvTaaHZu6x2/qUkQCEYVI5A+UjT4w07sXUmFV49/vmVs4WwtTY64yWVPeMYxIKOG3+0F0vR4MGfGiucR+C1joRHL81B+iMDhfgbSmtgcT3zujUdydH/aWZ0tv2qG0yI9NdXS987c9FNU1NVb0e1j/8ncw79BdLT2u5MSfkWJlnz7N2vFSBTD5XLP8QQ8zQX2n56hG19HEnrW3tjUyNfdT1jXfvdF3X9VevXr19+/bt2/ejf/t2tqXTxjIya6tPn/+cTjvFTMZmJiKR6167XVuIy5e/pN8u4Gm5aWOLm16A9hip5R/Xs6Zt27Y9eeMbJcLQF2jKevfLy/xoOef+3S8v86OxB/fvfe0EcmHbZn4vdIOVS3RN5VJLdacThyQrUUYMp44EIAwT/wxUJXcLWsAJqHI5StO285TNRwvq9IyT3B4cTEIBp8Ifuk0trY9Mzfgjt7H2dNMMU0oYzTmnUVHVTGGb1R2PmnUiYGsOTk9nC/DSz/s0dfK7K5Vm2svnTGZkuq7jha99zTh8vffKzThsMXr5y4fzf68ucQv0nlXaZVVYe7ppxhcWS3kblv5KzY8y4IaTqFo9moicK6a1XF7TtHzedNmOch/LYxip71d+M20RDodHnWImmqrqxZEZRZHlqKIkEgn67QIlQZo2trLpBWiPk4jm7TkpL9JIljWWfBALMfQFqh0W3qp58YWb4FORDiRPjOiq/eXCwxuJ6xGiNbqmcqmFVfI+QgIQhorVpM6Ppav50VjgrQs1ldiJb2ioSc84SWp1EsrKLD97N0aVCOAk/Nvns17SxbmP+sbq0/UcW4lQZmWWv/9lp35lHkmeGNHVsS8XYl/MzLY4fGBrDk5J5wvw0s/7tHSleLLvq2JGpns6/915zTiE043DdnvvuZeaJEeVRCKRUPgq0ZfcXVZ5Vde1XGWDayfhnt4dEELUnVSbmRjT8iI+9/DOg2TyhuvBg4rV4KaM1NK6GZ97svjd14lEIlGuXJhXqd4N1BG8aWOzTS9Ae7wz79vq7B4jtfRiXT2KfffoPkNfoJL0cSet5fJHU0lFdsbY5Zqb0sed9L9eSN4nYQ5dZKSWV62Zr68rpaWWUtNGFjB7jQQgDJPyDFRNlw3n7njnm/ZKl/qXknN52nigvk70jLMyz55nTTHJ4jDQFsuypFKKXbmVU84085qm5c3R+MIP8/epYg2XVXj3XqtpclQifdxJrx/Gvrt3pdU3ZGsOTkeHC/DSz/sUdeK7szLLz37ZcWZbjNTyqjWWiMq1TyzMyHRYxwtf+/ZAO904YrGpo23NNPNqmp4b6C/1w46sxEZ0NW/aQojRsUszE+Lw8LDwbm31xZZNwj0qVGUB5U0hbPFF8r4iS54A72ZsPNfE3Pzf/XWXo275zlyehGWgBk0b0Q8qE9F85ImRJnu6geHmTCbOJBNRqbrGprHxXPvHF6wioZss/dXLbNZtClqx1MIqee+RAITh4s1AmV5x4Qvi8PCwsPZsZatyS1pzTSuxF7edNh7sK4LHsoQkdaRnnPXul5f58nO4+8YAjmdlUs+ePn+pqul0xfCz3EQjb9rCNveOLjE0HWKWkXm38e6dde7cBdm9szdpcmRsPNdEoPYVbM1Bdxipx6v6yIxSrszfyXIv9PPupm58d4eFty+zTtAq/utW1KZ4awAAIABJREFUTnyRrGxSyIxMZ3T3uqu3B1py+09ua2ZOIwUI/aRR2JGi3lVhmpqqqqqqannTDscXFu/R83qYVQ25Xb5EVdMWws5vt3mLsvS0NnrjQXWQlJwZwWz2iAAKVKFpI/qAPxGtkrunmzw0oA4pmnAjdOHdz5o5WtpzmFl94StBDnSFFE1MFdPallbapFSac9ozzRyr5D1FAhCGjRRNJGMjxe28aZp5bwoq0AzUcZXY3aXkyb/dY0Pb0LOM1LOl5z+ratpLOYhETtQz7rDwVs3b5vmpmCJLRur7H18VpxI8/ADHsjLPnv9mChEOh23btquXPCu2nNbJ88AwsIzUs6UXm3lngKCVFgZq2hLoxbGZCeFlDwd8lmZrDrrASC2tm/Zk1UJX58q90M+7e7rz3ZVW3HM50xbhyzeuVf8yMzIn1+3rruEeaElWZkZ0NZ87zwI2+keTsONdFSOh82Njk5OTsTvz35HtPMwaDblLqrbWBU1U9Rqvb32sFySlC590Nf+PSW57QAWaNqIvWE3q/Fi6mh+NMfoFmnAqtuVVvVjc0V+9+M0U5T2HQNfIStLJAfLNLEmykkiwSt5rJABhGElRJZGMxaZCR+fdGagH96+3uP+spUrskhylEzKszPLSi5wthAgLYQthl+pCtd8zznkmN01N1XV9M2eHv2y5bhUwzJxKKwtPFu9/nUgmG2T6VOd5sLV+qBip71e2bBGOzz28cyM2ORn7p+v+qOyP2+4Wds20RRvtK9iag06zMqsv8g0rWXaq3Avdo7qhi9+dJEeVsWJaM50RaN3EVmZkTuAUrrvGe6BZwEZfah52JDkaVRRFURQSSIfbMUPuEl+V1lygRNXKsoW1IfSw8FbNVydvAqBpI/pAORGtZuzsTOrd+YbgDQghKvqT6HrxkzfolpWpoq6Zpmmapi3Cc0++vU7wxmnwymxWDtpZJe81EoAwtCRJLs9AtRqGqMSOVjlNs0V84cniN18nk94ONl+/+WA946zM8rN3YzPKlevecoL3VM7qG3AsS09rk3e+8TotVVd0qc4CSsamikeTX80yRh0aRmpp3RThuSeL9xRZluVoaXHKsox3axvvdN06N3EhErnuLkXYYvTylw/n/36SnTRszUEnOOON6ll5yzIOJX9LjQ6Ve6F7VCd15bszUo+XXjlfi6Xr22N3fpiPheoWnrQsS5IkZmTacjrXXZM90Cxgoz9Zq8/VywtPjgk7GGItDrm9KbrSU1uARNWCbiUe3Ai5ZQvT+sjUjD/pzKllQi8joA6aNqL3vES0UibxBXF46FVfbpB5Dwwdrz+J057EtM18+WlTduoeXLqU/OYbNhiii6xM6l3h3IXyuD2acHOAWCLvHyQA4WwxUo+XnqfT6bSu6293dnZ069y5j5YQ4rAzM01UYkeLjLWnm6aILyzOuo/J3jli5itqXLfYM87KPHueNcXkjURUEpLs7a0UNY2MANRj6WlNVNYKrqpmsV2xwCbJCuuhQ8Qp5BBfeFo1sWkZqWc/vtjMm6bbNlQvTiWUiBxVEolEItgOdt/unLS3Jz7C1hycmDveqMwdszLPll68rE43aK/cS51TNxKhe1QndOW7M/RXWt4dMUpRJaHINYUnnTaG1trqjy9+ZmKmPV2+7rzcrAufdDVv5tXiVKxqpM8eaPQn691bNT8ae3D9CmEH9QQbcnvnSaBEVSuz+nz9P1365t6sdwpmNdXZGn/uo76x+nQ9104FT+DMqqohEVZmZ7+maSN6SYomkrGR4nbevSO41ZdJRAM8Tn+SuSdPv3Pak0wV05rpPJsamYyIRiVJkmVWitBVVubZ89+yeU1V3RHEp3MXohElERvR1d820zzz9QkSgHCWuKXYw+HRUdM0bWfyQNM0VVXVdEfSgqjEjpY4G9viC4uz/jNF+riT1kwxWdOx+NgpLevdLy/zdmmZwchsZPOTD39aTPobGZEFBNRjGZm1je0/hJn7WLOAVs7BCyVmmQYeWm6IrVpJLbVxDMfnHs4/iIW2tbxZv5XAsbzdOcLZnmPbZl5T0/pI7P69r9magxOoP96om5zgClbupeGpm4jKdI86mS59d3I0kYzFZhRZElZm+ftfdrzaG1XFm9wmhuyibUd3rzsj9fjHF86eOSmamCrqmllqWXpBliTLMtgDjX51WHjrK1tF2EGV7g+5K0/CilMwr2la3hyNL/wwf5/1CMDRqIaEEqFpI3pKijo1TEJH591EtAf3r5P9AwhR7k/iJTMbqaV1Mzw3fz96mFn+cT27zQYtnAZnLdwW4XB8dDRn5vJ5TU2n0+lt+/LoqGnnNLYK9gUSgHCWuK1i7dEvf3j63YNkLBa7celSaPL82JgQpm0LYdt2ZVpQ00kFI7W8as1UBioqseN4biZazeympb9Saye8WnFYeKvmbfP8VEyRJSO19OKPywvfzsqVjYy8tQEe0IEyI/X9ym+madq2EKZWp5G4EEJIcpQh6TArvPtZq6qkYBmppRc5IUR84cm3s04JjUSszVJ/zu6c+MIPi98423Nisamjbc0082q6OJW8HmFrDtpTf7zhddeoHoUYqeWNc4FyhY85dRWZ7lFt6/h3539scTY4WIV377WqDjylwpN7thi9/HD+XoRvL7DuXnfOu4v4naTzO6VW084W6HQ6zR5o9DFvPiZUni4h7KCs20NuIeqchOVTMG/awjb3jmiiDjiOryHR6yPEEKhXKdkbQkhyORGNsxFwVfYn8acD1RmJA13jdfwyxeWHTxe/icWmQqHztp0zc7YthBA2Z2I/IAEIZ4vTKtbtNBiRJEmWo1FFURJjxbRmhuee/PDg0qVLk+fPjwkhRi8//Ha28YyCsfF8M5ev7GtAJXYcy8o8e56165SVdjcGt3OOOCM409RUXdc3c3b4S9/yQkUWUMUyDzDsvE36T+aTl0JeL3vqZaGKpTvV2by7vWWklla2hBDxhSePrpQjdqmMW6AnGO9x/NtyUQhJKi3p5trd3wzUH294yQnVoxAjtbSeM8/XrWLZ6P05dbul899dnccWSVYSTspWTRaQ28aQG2Ebun3dSR930pqYm79ffiNn8To2FTo6bwtx+fKX7IFGH5MnRnQ1mz2aqm28S9hBd4fcnnonIRungBrUkEDvNSk3y7kHNODvT+I8nJaL0Mrnig2blwAd5+QAvfxtM12cenD9SjSqJBLJZNLJBfqCYuH9gAQgnDVSNDFVTGtbFVXG3FbjD7+7HpFkWY4qijsB1eydnGSivFkxmU4ldhzDSfMRl7+4UbknvlFZoBbJile82hZCjI5Vb1uT5GipvnXOnrzBwxIghLHxXDPjC4uzEcm7RCq65k2wjQhCeI/I+e3iyNjEBWvt2Y/rOSFEeO7Jt5WNXJwybpcDlvqr3J1TJsnKzAn2N2PoueON0S8uzfhWsBp0IWpnEMKp2zVd+O7qPra4KVve8DBPBuzJdfe6szKpZ9ti1Mx9VjNn62yBTiQS7IFGn3N2TOXOj8QmPhYKlqXrG+/e6fqrV6/evv00wzPqcOvukLuk0Un4e/bf/hF7+PCL8+7GKTKZMdyoIYFeO77cLAAjtbyqj1U8w5f7kxTWnm6a/s7Ulv5KzY/GkkRvnBa3DtBvm764LUlylGLhfYIEIJxBsjJVTGu5vPdA7ybD+u6GLXIDWNVkOpXY0YRlWUd7edM28xX7ypyTsHZlIAhJVsaKac0UQtgNqpi4W4RZ2gEclq6O/fM3DTd/qnpxZIYRKYSsTBV1Z3lc1UxbiHB84Ydvq8O19e6Xl3k7HPRR2r87p4qzPvGPNvc3Y9hZxe28adv+2i5e1bOqIW/D2oTN359Tt2u68d3Vf2xxflTKAqIO3ol187qzCu9+39zK2UKYGlufMUisTOrZL6/evn37888/p9W8LYQw86qqaZqm5fOmaZqmbduXT/IkjLOhe0Pulk/C2Svuxqmjya9mCbMYZtSQQG9RbhY4npFaWs9VrQK5SZp5Vde1XOVuE2Pt6aYZrrOLC+gYI/V46bmuFz+Nnbsgu6dkOQeoumcOeo0EIJxJ7i7YnKaPxGY+bjzfNNstvCJFE7GpoqpVFtWnEjsa8eUXOClienFkbOLj//l8s87KQECWsfG7Nvnwp8VkZRWT6iwgtgUDziywfijMrY/V0wb+LKDRdneW4oyRnXPi/NjkZMy5pdcE0gYVHo5X3p1T856HhbdqfpKzEO2Qor6kjrym6sXiTnbLrFNupN1zl1O3W7r13dV/bPF+KFfUwSO/pD1dve4kufQQYdt5mvpiYBhrT9dztm27LTxGRy+P2qYtwvGFh/PJ5A3Hgwdk/0B0bcgd9CSUZIVNIBh61JBAT1FuFjiWUxNRCOHbCz4hSxG3/K/XJGJCHB4eFt6trb7YCrzvCwjEMjZ+3zNt0zbzmqam0+m0rhc/fbqg/C0W2tZ+21TJAeoz5/76669eHwPQHUbq8cqW8z/Dc09OlnlhpJZXtsyTvw+GiWWkVle2TO//tn32WJYlZLnmNy0js/FyfcsUQoTjc3e+mr3CqQmU+K+/+MKTR1wfOAnLyKyurLc0DLCMzMaHPSGEmLjqBGYrs7y0btY7EY3U45Wt+MJPj6508dhx9lWMN2pOUmc8fPy5y6nbC5357qoc99hiGZmNPeURjzQn06HvzrIMy5JluWKozyAfg8WyrOqHVSP1eGWLyRMEFmDIXfl7nIRAcO6seTgsTLPiYuHyQedZhiGu+Ie0zZ4orczy0rrgFAS8WZn43JzIOs+H3gOiKD8yloTjC4tM0qALalcnLcuw9A8fsn9smWblaxk/9BUqAOHscssA2eJkfZfc90pMFXUtl2W/LFrma7hgCyHs/HagjguWkXq2+vznn9OqqnoJtWMzE7JX36eil5G/EQEwjIzU41Xd18/Lv43e5PpAO4zU8ob+ybLe/fLLi82sLUR84WnTVp9WJvXs6YtNp82AaY7FnPIoUjQxVdQ106naNjI2cUGWJMsy1p6tbNWpGgEE5SvtYtp2vqI6oJVZfZE/bhcYp27PnPi7q+e4xxZJph17B5z0u7OMzNrq0+cvVU3TVHW74quS5FKhoVwuT9c29JXqIbeoW3/W6R6TP2LzPloQdMjNSQi0y7Ksw/LlIlNDAqfFSH2/sq5WdvWi3CzQAimamCqm13/LTz58Mh8LlVeBQjP/dO/+g9jUSOj82Njk5GTszvx39ym4iY5qsjopSbIcVZREIplMJmOxqUuh8+dtYdr2yRfi0UlUAMIZ525oaHmTspFaXvlDxGOxq4pypbroirsTmjRGBGQZqdWXbj5sOL4wf2wxEm/TvRAiHA4LIcxSMm04PjdfvWnb3YPMmYmh5YT6+pG+vEc/HI7fOf7yA4QQFXFYiBZit/f6cHzuzlVFli2rcoNbVVE4703ZnYNO8tUNEeH4wvxXe6tL62bzYTCnbn9o57vjsaU/tPfdOZVqw/H4pBBCTFx9NHvFeTPDkn2XoG8Qw1eJPtBsyF3JiUGctzhW0CE3JyEQXPV4PhyO35n/6oosVw5jSj9mqI+Oqh+OKTcLtMp/DVU/fDLLje4IuDqJPkUCEM68INPfVXMPQohwOB67c1WRvVl1JtPRrprVgZqlGu+F7klWNYjz/369jkZ1yl4Dw6GFyV3fjBfPR2iZZRiWEELIV1pM22yeZ2EYliz2Nj5k//hjcjJ29avaFXugA6qn8VtJ/+HU7Q/tfHc+PLb0UJDvrnTZ1QznSw8BlX2/6NqGPhEsn6L1PA0MvaBDbk5CIAC3OawQzhJeeQHPNzViGRn9w96eKPcCBjqlSeAunZzh+Nydr5QrsmxZxgY7XIFalWMasoDQXW2uTqL/0AIMZ55TKU/L5Vvo3nVYeKvmbRGeW3h4Y/L8eVuYpmnmNU1VnRJnnz5dUP6eDOlqll5gCMrXsss0zb3Qjfrnj5V59jxri/jC00dXpJrfTzp97UytqnKqqFv2GhgGzjVTXaLasoxDSfZ103CbaeyZZk4jgKM1kuw49lwx1p5umiK+0CQHLbO89GJTO4p992g2kUgoSlQmaKM7fN2DTFs0b9XFqdtfgnx3PLb0lwDfnbH2dNMMzz35tqYytnNBCmGblX2/6NqGvtDSkNtHnhjRVXsmSfTBsVodcnMSAkFZmeUffzNFOL7ww+I3DxKJRCKZLLcwNTVVL04lFFmSo1FFURRFoW86Osx94KzqCWNZliRJspJwRs+mmXceYlRVM+1wfGGxafN1YPg4TRt/23Se7P0Pn6apqemaZSKgfW2vTqL/kACEYSArU8W0Ztp26JjJbymaiI3oajar7U0++Pbe1wmnh2EodN62TdM083lNTav50XDYts28WpyKKTwaIQhvgDZ17Xqk7qlz3FKcFE3EpoqqZpr1GyUDw6bubIKVebb04mX1gqckK4lEbGrkaPJv9+hnjw6y9FdqfrTpWr10Yayoaqap8XyE0+GmPTYcbwghOHX7VEvfHY8tfamF787KrL7I29WLIEIIYaTcukDzsZCzX4ApNfSTAENul3RhbCp8PcIpjE7hJASC8mYYK5fwqlaOSRRH93jj28pJbiP1/Y8vnIwFZ/QcmwodnbeFuHz5yzvzD+5fJ/sHqOE8/79cf1l6si/vdY39d822DgGBsDp5lnzW6wMATsWVR0/m4vE7LVSPlGcXn8yFhbm+tJxxqhDLV2ZnHy0u/vTTTz89ebIwNxcPC6dganiCBghoS+PS1tbeH0KE575qVqJavvJoIS6Eub5hdOXogAFipFa2hIgvVJZ1NzbWTSHqx3z5yixNNNBh1p4pxORE0/PKDd1i6wOhG6fmuFYanLr96/g2KILHlj7V9Luz9KwpRPxqzVDfyrzcch4CZPnK7KPFJ3NhIcQfe1Y3DxVoWfAhtxBCvnKFxkvoGE5CIKj6V41HvuION8z1pRTjfHRDeXzb/F9l+crso0eLi4uPHs3SbBrDzbKsxg+A8uziQlxsrfiDtnzl0SIN89BBrE6eKSQAYVjIs49a7ftdM5le/kl5Vv3Jkyfz3FzRaa0sxQkhrlyNC9YEgPqzCc40V+1Q1UgtpwwuGnSetfdHS68jdKPPcOqeATy2DBhrzxQiXDPUtzKr66YIz/E9oT8x5EbPcRICQdW/aio5i8lk+qMrnPFtdYpm/X8FIIQQVmZ1aWnp8ePHj5eXl1OpjGFU5wNdefRkLiy2Vqqf/oFOYXXyTCEBCKin8WR66RUyKenokhZunfJEWAiTWyyGWv3VMm+aq3oNzUitbJlbH7ho0HnyxKRg1hQDiFP3bOCx5QyQZxefLCzULoQcP+8GdB9DbvQcJyEQVMu5xc4KHg8E6DinQpsITwir5l8b1aUChpt71QghhGmaW1vrKyu+fKBMxjAsy8ncDFO7DV3F6uRZQQIQIOqX1nPupk4pVAIZTkmgW2ft9mFgiJSei6w6swnVa2it7H4D2uXOmr48ZgeOU26F5Vz0D07dwcNjy4BzhvpZvfZrquxT47QKY6yPfsCQGz3HSQgE5V41ky28VJ4Id/toMJTkq/GwEMJcX1l67FVla1S3DYAQwhLCi8fh+NzCkydPniwszMXj4XDYNM2t9fWVFScdaOUPERaUAUJ3sDp5ppz/l3/5l14fA9BTRur7H1+k02ldL34am7ggS1LpR7KSmCrq2tamWpyKKbLU5F2AjpA+7qQ109wbiSWiTU44690vL/P25RsPFG6yGF5WcTtv2nZeU/XiyNhEVJaEkVpaN0V8oar9sZV59jxrh+d++LtCIEc3yBMjupo386reJHoba083zfDc/P1m4R04VZy6A4bHloEnXfikq3kzfzSVbDaKd4b64S8ffM1lh95jyI2e4yQEgrEs62gvb9pmXk2XrpoGCu9+1sxwLNl0EhIITJKVRDI2NXK0lzdNU1PTerH4r1smERpoxHfR5HJ5Td0+Cs0os7PXE4lEMplMxmKxS5dC58/bQpimKYQQrAyhC1idPFNIAMKwsyzraM82bdu2zbymqlVz6kym43TJylQxreVaWIoT8TvfcIfFEJOiSiIZmypua6Zp5jVVLxZ3slumXbtK7V4xD7+7zhWDLpGiialiWjPtvJrWR6ZmamZYrczyj7/ZnIboN5y6A4XHljNAio4V05ppanpxaqbBt+SsX3PZoU8w5EbPcRICAUlyVEmUUi/8uXM1jI3nmknOMbqk8lQ0bSHCl29c40EFaMh30eRyeU1Nlx4bJUmS5aiilPKBktcjvT5anEWsTp4lJABh2ElyVPFum1Oho/O2aZqVc+rKPyUuHW07k+lNt2oCneDcZE073+AJ3VuKq97rBgwjd3uEMxvszCZUT105u0MpXoFuk5XkVFHXnN3J3qK8ODw8PCysPVt9kTUFgRt9iVN3cPDYcibISmxEV/Omqan1koCszPLSOpcd+g1DbvQcJyEQkCTX5M7VzDG6tbRImkM3+bOAbNtslpAGQIjq1Dl/FpDvNVxB6BZWJ8+Oc3/99VevjwHoO5Zl6BsfsltbpvsPTq9NIUR84adHNKpF1xmp5RX39AvH52JXFUUWwrL0Dy/Xt0whwnNPuMECFSwjs+FcH0KE4wvzj67IQnjraFwyODWWkVpdKQ0fynxnJdCPOHUHFY8tA8nKpFbXS2P9eOzq1Qkh9j68zG6ZpmCoj37GkBs9x0kIBOUf6HPVoId8p2I4Pnfnq1meM4HmuGjQI6xOngkkAAHNWZah6x+y7uwCE+k4Nf5pLb9wfG7+EfdXoJ7q2eCv9laX1k1CN06dM3jY2xNCCDFx9SvlikzYxiDg1B1oPLYMlvpjfeZ1MQgYcqPnOAmBoCwjtfrSyTTmqkEvNUhIA9AIWUDoCVYnBx8JQEDLLMuSWQXBKbMMQ//wgZU4oGXVw1MmtAAAQ4bHlsFhWYalf/iwJyauXlVkRvoYHAy50XOchEBQXDXoE96pSBEJoEWl+M1Vg9PF6uQAIwEIAACcOd72CJ6LAAAAgK5gyI2e4yQEAmIVGX3CMgxxhVImQOssw7BkrhoArSEBCAAAnE3MJgAAAABdxZAbPcdJCATFVQMAAHCGkQAEAAAAAAAAAAAAAAAADLDPen0AAAAAAAAAAAAAAAAAANpHAhAAAAAAAAAAAAAAAAAwwEgAAgAAAAAAAAAAAAAAAAYYCUAAAAAAAAAAAAAAAADAACMBCAAAAAAAAAAAAAAAABhgJAABAAAAAAAAAAAAAAAAA4wEIAAAAAAAAAAAAAAAAGCAkQAEAAAAAAAAAAAAAAAADDASgAAAAAAAAAAAAAAAAIABRgIQAAAAAAAAAAAAAAAAMMBIAAIAAAAAAAAAAAAAAAAGGAlAAAC05P37970+BABAMIRuABgsxG0AGDiEbgAYLMRtABg4gUL3SPeOA53CzRgABg6hGwAGC3EbAAYOoRsABgtxGwAGDqEbAAYOFYAAAAAAAAAAAAAAAACAAUYCEAAAAAAAAAAAAAAAADDASAACAAAAAAAAAAAAAAAABhgJQAAAAAAAAAAAAAAAAMAAIwEIAAAAAAAAAAAAAAAAGGAkAAEAAAAAAAAAAAAAAAADjAQgAAAAAAAAAAAAAAAAYICRAAQAAAAAAAAAAAAAAAAMMBKAAAAAAAAAAAAAAAAAgAFGAhAAAAAAAAAAAAAAAAAwwEgAAgAAAAAAAAAAAAAAAAYYCUAAAAAAAAAAAAAAAADAACMBCAAAAAAAAAAAAAAAABhgJAABAAAAAAAAAAAAAAAAA2yk1wcAIKAD/de17L4QkdvzN6cbvGZ3c/V1QQjR9FWtvFHLx1DnzdyDGI/du6uEgr1/0E8HgK7wws3xOh/q0CMHu5u74qbC7QUYYge7+of3O/v7+94NYHx8fPzza1eV6SGN8zWBkdE4gLPsYFff3d3x3wbE+Hhk/PPp/r4PEKsBDLXyXHhzTN4AwGloGpWHfY4FOA0kAAGDJhQaF2JfiMLu7s3p+rM4u7ule2vjVx3s7uwLIUSkwZsAADBUDnY337wu7IvI7Zu9PhQAveGFgSr7+/v7+68L2fFI7NbN4VowIDACGCoH+uabbO1tQOzvF/b3C317HyBWAwAAYGCU5ljIyQS6hgQgYOBMT0dEoSDE/sGBEPVuj778n8YZQAOc/xNS7s4rvT4IAMOEbbND4mC/pXpPAM6mctW38Ujs2tXp6ZA70D442N398D5b2N8vZNf2xXBNUNUNjIzGAZxBvtqfVbcBcXCw++HN+8J+394HGMQCgIPZGwDoJ/VTfA529Tevs/tiP/tGn+67kTVwNnzW6wMAENj0dEQIIfZ3dg/q/djN/xmP3Y6NCyEKu7v1XvXnn876xsWLXTpKAAAAYEDsbjrrvuOxe/N3byrlZV8hQqFp5ebde7edEXh2bbPu4BoAMMC8u4CI3K65DYhQaPrm3fJ94I1edyoGAAAAwLFC08pdb2T9gQkWoCtIAAIG0MWL40IIsf/nn3V+6OX/fD49Pf35uHArBTV+Ffm1AAAAGGq7m053+sjthpvPQtM3nQkqUXjP0i8AnCkH+nt3H9W9mw3nSEr3ARYqAAAAgJOYvhobF6Jh/QIAJ0QLMGAAhaY/H8/u79dt7+XP7AmFxoXY39/ZPVCqljIa5/+Uals7/3d8PPL5tavKCdOEDnb1D++zhX3vLa/dajCp1tKne5W5y1Vd/f9ycXfT/w6RWIPDP9jVP7zfcV/oHpNw3ofeowBOYndz9XXBi0j+6FcOSMdERd87TB/om29aip/+oFYnftaGzub/7h1F5b8HidKR2/NXxeab1wWvoc6tm0ro5H+cNo6khbuDe1yOwuvVgqB2ODBEvIXfyO3mV/301dh4Ibs/LsSfByJUEXCOC8Lu5wQYsrYzvg02kj9o/q5NAmPjW0fn/w4A0H27H9wacLeOmQhw7wMVDdmbDX3dX+viQH16t6VBbPUAuwPTPABwNrQ0fC2/+Liha+PI7Y2uq6edqwbALDMbAAAgAElEQVTwBGkAQ8JZvBSlgXWg+Nni5HPH5tV9rwwStLuy2Aq0hgQgYBBV3xzLKjN7pqcjolCozQA6ONj3vcr325u/ujdLz/5+Yf91IXuSlJg/P/ya9b/p/n7h9Vqhzjt24NNr3mK/kH1d2Kn5fW80UXlMkVis1f8oADjWgf7r64pIU8i+Lvx5e/7qQZ0ItF830FWsvjaOnwe7pUcd30v3Xxd2Ire9BxsvdbTqxnGwu+P8Xk1KqXM/ifj+LWiU3t1cK5SOfr9yrfxkf5zA94tW7w4AhpIXCSPVifU1QsrdeaXO7x8fhCsFCkotvzhIbKweDHciLnb57wAA3RKgQHJIuXVPCdV9WYOhb7cH6i1sma4Ots7n/0muO4ChF2j42o3xc5039Ubw7EgCgOM1m3zu5Ly699IgQbsri61Ay0gAAgaSk9njNAGrWBN1Jq7EuHurczOAql7mTSON16zGFpxtb7dvuWmoBwf6hzfZwv5+dm0z1N5zx36hIMR46V7p3U73s2/0ad99riOfXigUxHjk9q2r06GQEAe7+pvX2X2nQLdy07+G7dymxyOxW1cV56Wbb14XCtlsG/+BAFBXIZv1Bz/3AcHZl1sRFNdeF2oDlRBCFF6/Fr6oWI6flTHRfQf/u3qv3S+8XhPuA4ibOlp1R/jzT+9BpGrBoTr/J3iULhQKpRcf7O4K/49P8sdp435x/N1h+ub8/M0mW00AnGVuJBy/eLGd324xCPu1OGQN9OJAsdEbDFfcYtZeFypG6AEDY7f/DgDQLcEapNfP/mk09O3+QP34WO0E2/LkhxtsC683pxnzAhhmgYavLY2fgzrQ37gz1OU1Zi9ME6UBnHFukYKqRcpgmk4+d3ReXYhgQbtLi61A6z7r9QEAaMv0dESImg6ZXv5PecX24sXxmpfV3eXs3b0it+/dLRehC4WUm3edNveF9/pBmwcbuX23lCkbmr55915sXAixn31TeseOfbrzUSH3oxT3tyv+AOUmD3dvKqWXekcFAB1TEfyUW6UgMx675Q+KbqDaP6gT5iK350tR0RepfDHRi2njsXvlT6v72no3Du9ZSwixv7PrO4Cq/J/2ovR4zHvCCU1XL6i0+8dp837Rwt0BwLA60axT60G4QqCg1NL4NkBs9B+z7xbjjdA/tBMYT+PvAABd0Ym1B+cNaoa+pzNQP17l5AfBFgBEwOFrN8bPpRl6/yyIEKFpb4KEKA3gLHN78AYZ09bTbPK5o/PqgYJ2NxdbgRaRAAQMKCezp3LBuDb/R4SmP6/JAHK3kVXm/3h3r6u1m97cBdh2H2fGY1er7uEh5VpECN8kVqc+vfaj3Gk0H99n1T8qAKhWeL3a1Gbd+FT1ABMKuTkukWuVe8O8eP7nn9Xv0Hr8rHnTeq91I6LvxuH89ngsFqk6AOd+UqqG0V6UbraNut0/TptH0sLdAcCwa6sAUJAg7PuoIEEp4Pj2+NjY6Jjdx4a2lhpO4e8AAN3VZhk43xvUDH1PZ6B+/IERbAEMj2azN7/6V1sDDV+7MX4uq5kMCil35+fn56kOAeCMOtjVN391y+7UDFSDaTb53OF5dU8LQbuLi61Ay2gBBgwot0n8/s7ugeLenerk/5Re5+sZ776sbv5Pg/vlxYtOPerKstOtqfue3hs6Ba479umNt+yVfrl++zOH21gNADqh0aR8gMn6luNng90SXrtI707h/K7vxuEkhI6Hpi+OZ8V+Ocw6+41Ln99mlG6yjbrdP07Hj6StGxsAuIIF4ZJAQan18W2LsbHeXgAhhDNrpTT4rOZO4+8AAL3gNdeqUdttqyamnc5A/XgEWwCoESxEd2H8LESp/6MovP51P/L5tavT0yetRQcAfWY/u7aabfTD8cjtNjsolt+iyeRzp+fVWw7aXVxsBVpHAhAwqGqaxNfN/ym/zruf1Mv/8R5kmt6PRXVD+tbUvQd7N0vnqLr46TXcz6q/xuzeewGgUu0EfwtO3EWglfjpvbJB3kxVVPNSR71wWmofELp4MJ4tLzi4+41Ljymdj9Lt/nFO834BYMicIHS0GIS7JlBs9LWU6bRe/x0A4AS6NoDs8kAdAOATcPamtRDdtfHz9M3bkcLrghD7+4X914WsEGJ8nFQgAGfd+Pj4ePdDXcfn1VsO2kxfoy+QAAQMLC8D1b1XNcj/8V7nTRe5LztxeWsAQO+5TxTHKD1RuE85blE4d/vwxYveDyq2P7CsAGBI1J0Aak3AINxPOvowMMB/BwBoeheoqe3QsCRQLQbqANC32hm+dmMyffrm/L3pzTfvC/vu8ZRWlccjt2/dJNgDGHDjsXsnLfLTRYHvBQRtDBASgIDBVZHZ0zD/p/S6P/8UIuTuWWgwXdTb+3F/jwYAoA+1VlWhPE3lTx0Vbj3SUKj0g8Lu7s3pi42WFfonSvfPkQA4C7zQ2Ep+yu7m6uv98cjn164q06HAQbi7AsXGjmbj9NffAQCCCXIXCOJUB+oAgCDaGb52KZs9NH3z7vRNIQ529d3dnR1vVXm/8HpNtFONGgDQonbuBa0Hbaav0Vuf9foAALTv4sVx4T5+NMn/Kb3u4KBh+0nnFc5bdZgze1XFq53qTGd18dNrNP2s1lJ+AeB0tBA/vVc2iJ+1UW16OiKE2N/ZPXB/6N02SneKOtuKTzNKN9c/RwLgLHFCoyjs7h73yt1dp9rznxVz/60H4e4IFBtDofFGPzrQf11dXV1d3Tz271Bfr/8OANAe7y7wXq8z+D6xLg/UAQDtay1Ed3H87P+UaUW5effu/Pz8vdsR5wO7dGMCgGHQjXl1nyZBm+lr9AUSgIABFpr+3JsGcm9cdfN/3Nft7+zuNsj/KT3JtLDuEVTd+5x773QPt4ufXsP7rHr3fy+LCgD6Qivx07kPNIifXtPH2mSe/T//dH5Y2sTgRMf9P3d3/6xZVjjNKN1c/xwJgDPFW/t93Xzq/kB/X5lyHzwId0Ww2OjORdV5sXuHCV6pp0/+DgDQpumrsXEhxH72TSdXWk9noA4AaEOwEN2R8XPNtHPD5KHQ9M1bMVaPAcDV3rJdp+fVWw/aTF+jL5AABAwydxpo58OHHf+Nq/Z1bgbQ+wb5P6UJr/rrHifbzVC7W2F383Wh4nC7+Ok1SlN7H6rer7SkAwB9ooX4WXpSqd0Y5kW1qmQe5xcK799X3RCc5e9CNluovU+cZpRurn+OBMCZMn3ztpsC9Gujxd+D3c21rDPivl2q6hw4CHdHoNjY6Ji9A45cC16kuk/+DgDQppByLSKEEPvZtYa3ASHEwe7mm2zrNc1OZ6AOAGhDoBAdYPzccNm3dv262cJz24n5ADCoAsTP1nR4Xj1A0Gb6Gv2ABCBgoLkloguFpvk/pUwhpyFlRX270ivcCS9ReP3rpr7r3e8ODnY3f3UWO8ZjV9trO7yfXft103vHg93NX53brP/9uvjpNbzPKrz2H5Xufg4A9JEA8bPipaIcPWtWcr3icfv7ovKG4O5pE3XrxJ1ilG6um0fSrEYcgLNu+qZTtXk/u7b666a+6wsEBwe7m7/+uuZGYF/6j2gjCHdHoNhYPuY3/lvMm3oxtNXA2Cd/BwBo1/TNe77bwK+buweV9wF989dfV9deO1Mv45HbLY03T2egziAWANoQKEQHGD+7pUVF4fWv3qj8YFf3ZnPqHoIzRV2K4OW5H0bQAIZJgPjZmg7PqwcI2v0zkY4hNtLrAwBwItPTEVFw74CN838qXtfoZdM3790Wb14X9vcL2deFbOUPxyO377b3zBGJxfaz2cLrtYr7dM37denT65q+eS+2v5bd3688qvFIZLxQoAoQgBqF16vHxYbx2L1OxinnPcfHRXWkqvNJvvhZ9VIxHrl962Z1zA+FxoWo0zcyNP35eLZmtaHOp3Q9SjfXxSO5eHFciH2xn11bzXbnOwXQx6Zv3r13cfNNtn54EUKI8Ujs1s3quBA0CHdJoNjYYDAsxHjsVtV/X8uBsU/+DgDQrtD0zbv3pjffvC7s14lknvFI7NpVpeUaPKczUGcQCwBtCBSiWx8/T1+9HSm8Lgixn329Vh6VR27fFq+rV7Gnb96O7Nc9gpp9BwBw5gWJn8frwrx6gKDdPxPpGFokAAEDzp3oEc3zf3wZQE1e5kx46R/e7xT2vWo44+Pj49duXZ2uN8nUmpBy915I//A+6+yVazhh1p1Pb35M3keNj0eu3bo5/edmoSAazKgBwKn7/NbdW39uvnnvD1X1ImKd+NnwtcJ3Q6iqJu0tODS4T5xmlG6ua0cSUm7d/vONu7UbwBAKKTfvKld39Q+7O/vlACPGx8fHP2+84BswCHdLoNgYUu7OT++W7zDeaLj2DtN6YOyTvwMAtC80ffPu/M2D+veBz6enW8/8qXjLrg/UGcQCQDsChejWx8/TN+/dvlgz6xza3axzCHVH8JHPr12dZggNYOgEip/H6sa8eoCg3T8T6RhS5/76669eHwOO8f79+14fAnB27G6uvi402BPn/ixye54tFqjv2rVrLb6S0I0TaBaoAATVYugmbgNAn2DIDQADhyE3AAwWhtw4o5hXx1nWeuj+rKvHAQD95uLFcSGE2N8ptd70HOjvnV6dTUspAQAAAAAAAAAAAADQZ0gAAjBcQtOfOxlA2Teb5Rygg1198012XwgxHrtK/g8AAAAAAAAAAAAAYJCM9PoAAOB0hZRbsZ217L7YL7xeK1T+bDxy+xZ1AQEAAAAAAAAAAAAAg4UEIABDJ6TcnZ/e1T+83yns7zv/ND4+Pv75tavKNNk/AAAAAAAAAAAAAIBBQwIQgKEUmlZuTis3e30YAFDH9M35eeITAAAAAAAAAACtYV4dEEKIz3p9AAAAAAAAAAAAAAAAAADaRwIQAAAAAAAAAAAAAAAAMMBIAAIAAAAAAAAAAAAAAAAGGAlAAAAAAAAAAAAAAAAAwAAjAQgAAAAAAAAAAAAAAAAYYCQAAQAAAAAAAAAAAAAAAAOMBCAAAAAAAAAAAAAAAABggJEANACuXbvW60MAAAAAAAAAAAAAAABAnzr3119/9foYAAAAAAAAAAAAAAAAALSJCkAAAAAAAAAAAAAAAADAACMBCAAAAAAAAAAAAAAAABhgJAABAAAAAAAAAAAAAAAAA4wEIAAAAAAAAAAAAAAAAGCAkQAEAAAAAAAAAAAAAAAADDASgAAAAAAAAAAAAAAAAIABRgIQAAAAAAAAAAAAAAAAMMBIAAIAAAAAAAAAAAAAAAAGGAlAAAAAAAAAAAAAAAAAwAAjAQgAAAAAAAAAAAAAAAAYYCQAAQAAAAAAAAAAAAAAAAOMBCAAAAAAAAAAAAAAAABggJEABAAAAAAAAAAAAAAAAAwwEoAAAAAAAAAAAAAAAACAAUYCEAAAAAAAAAAAAAAAADDARnp9AOgN49bVXh8Czrgrbz40f0H8P8ZP50gwzLb+3VavD6Fj/of/W+n1IeDs+5//K735C/77/3DtdI4EQ+t/+ffve30Ibbq/Fev1IaC+/zWebf6C5f/rvzydI0FQi//1/9P8Bf8t112/+t+Ou+76VoKnVHTf2+OeUgv/439+OkeCoRX5n/6/Xh9CJ/0X//Hf9/oQcMb9v//uPzR/ASchTsGx5+EA+T9+j/T6EHD2/Tc3Cs1fsPe//2encyQYWhNf/6cefjoVgAAAAAAAAAAAAAAAAIABRgIQAAAAAAAAAAAAAAAAMMBIAAIAAAAAAAAAAAAAAAAGGAlAAAAAAAAAAPD/s3f30U3Vif7vP95BCC1pgLaENgmlhVpAyi1a5GlGfgedMzI6DB0YysHOmhkFWV49P6zOEWado4DoGtBRYI3z8/KgM2dN5YhHbnpRD3hGPVcdnuu0v7YgndY+0KRpaUubhpS04vH+kaZN0gcKohj7fi3/6d7fvRPs3jvZyaefLwAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEYwAEAAAAAAAAAAAAAAAABDBCAABAAAAAAAAAAAAAAAAEWzY9X4CwPXifvq9yv19LI978Q7b/O6f2t1Pf1K5v1VS9IybzE/bTLbQ0YfPFD7stR64NT5sOdA3h7tqY11jiUeSZIzPTUxYYTJc3TCHu2pjWWOJJKMxNzG51wD3lhNlFUkz9pj72D8QKRxt//lUQ1Gp1/+TZYll7sr4FGv3at/HD5x5r3SA7WOXHbGl9OyqsqhUUrRlrfmH2TFjQodWPlv0RoVl9a74Mb32giGttu2Dza7TJf6DMHraIwkZ2TGmPsZ1FG+t/jTfWy9JGr/EeuvKcRPC3hzUtn2wueJ0iaTo8Y8kLOy1n7Nb//r2p9aVu8b1tX/gCjncBZvqKgOHbkpuYlq2yXiZTRreX1bblG5btNscMtLhLthUXlkiKTouN3FWr/24thZ8VNFrK1w1h+fNzecKAq99tsWWBffGplrDBnnenF9V0MfGsTmHLakhu6oqKJUUbVs77ifLjWNDR5dvLc6rtKzdGRu2HFfJ4S7cVFcdOO8m5iamZptGhQ9yF84pr+5j4/h5x5LMIbsqry6RFB2bm3hLr/00bC04UmH7/m5zr/0DV87hLt9Y5wrcfibkJlpXmEZeZphispIm5JjHWnuPKXOVSDLG5Cam9drP+S0nSiuSZu0x97F/DGE1lc17jrhfc7ZLkqJmZpgeui12wcA3Zi3Ny3e5Ci0J7+bEJoUsv/DE29WvOSVFzbxj3HOZo5JCt/vgndJVjb22AiJDa93ssuastPT1o/tae7FpS5Xb7uk6kbKSxuWYjdYbrmaYo7VuY1lziSRjVG6ibYVpuEIGeLYcr65ISttjDluOIYCDELhql06+0PBvb/lO+3+62bAox7x2dvd39Jfs/1iz89QAm8dsfn/cLH0hSc72HVtcB09JMkx7aMxjS6Mt/uUBJ1/49ImquJd/NzpsOYa8zsfvac3rY7kh7y3jwpDL6ee7X3S/eeiS/3OnzLuMjyw1LEwIvd66Oh9/vjXvjKRhmatH7fjxjcmhF+T3XzyXU208/FtDMhfq62EIBoDqDz61Id854BDLkk1PLho/2P0VHSzUokUZV/gEZj+4877Bb4Nrr72z/PKD3E8frdw/2nrgjnhbe+PPj1Yu9qYUTgn6Vq69cZdTSzNI/2BQfEerih9pDFrgadxW1vhufNqeZNMVD3NXLS1rTE+acdxscDR8srSsuDrttvVB6x0NdXbFbyf9g0jmaHx1uTP4FduZ73wjv/WO11NvDf8e9LLa/nN5ZdF0y+oj8WMcja8ur9xdk/L44zHBj3U0XxnPk/5BCPfRs3sfbQpa4D29veL0e3F375owIWRg2wdzK04H/Vyf73g733f30eBhbR8srzidbl15dJyp9px9ecXe6skPrgs6CGvPfZyvaS+Q/sE14DlaczA3+L2Et3JbeeW78d/bnZTQ70Yd5Ztqm/pY7i5YVl6Zblt0zGx0NLy/rPxgderydSFvOT6xK2Ub6Z9rxNG8J9tZG7Sg9oAz70Dron2T5gS/9jk6Gy6/L8+b2VUF0y1rD8eOdTTvya7aUZW8aV3QL8rR/MEBZT5P+ufauHC05s+h5131tvLqd+Pn7Q6K9Uhy+DyX35m7cFl5dbrt+8fMoxwNHy4r/3N1alboeVdm18RtpH9wDVw8WnUy9PbTta3M9W789D3JIRcHR0PR0pq2oAVt9ppS+/nJ+6cm9lyd3OVLy1zpSbOOm0c6GoqWlp2sTrs99C71rF0J20n/IMQH71SuKmoPWtBeWNS+qsj9zw+k/KLf27POP77tKuxj+YUndlW/Zkl4d11sUkvz8l3VdzZPLP9B0MWypfn3RVrxU9I/iEieLWXN/a5srZsdsrbdXlNtb594PNkY8q3bYIa11i0ta05PSjtuHu5o+HRpWVl1aNrDUX/OrtjtBC+GIg5C4Co523f8zHUweMkp38Ff19Tck/DCo1FXuK/2HT9zHbw57uX3R1ucrY/+zHV/TcKh4J043f/2lhb9hvQPenF9fmZQ48JzQgWHPDmHPgsNCXU+vro1b4rx8FuGZJdv8erW+bWj6x4eHvRYF7cfUs5G0j/XzRAMAF1TgTDPouv9RHDFLvqKJVlCAz2hamsb9ktLJ8bbJEXFP2BxPOxs2DvBtDLwYnr4rKN4tPXp2K/lCSPSORqq/J+rpielbTSbrJJ87i1VZfbGslVRPT09gxvme62uUYq/32yQZDUnZtWU2esackzmwGev7rwaT3pS8tyv+R8JXEO+j59yOiVNtyx7Mj7FKjnaPn6q8r1S73tPNaZ09fQYbt2VcWvvTbuSQ9F3vN5V/9Oyr6FIyvhl/BhJ1vi5S5xv5Dd8vDKmO0hUudfpnG75IacMgtWee9+f/km33v2Ev86n4+zW6rfzm95+wBDc03N2a8Xp4GG1bcWbKw6XhAxz73Odlqb9cpxJkm3crUscb+e7ilfGzAiEiM/uddSnWxdyEOLLczSc9KcQ0m3f22BOsErqcG2t/Mje+NFqQ389PZ59lYUlfS6vq5RS7jMbJVnNU7NqP7LXld9r6i6kcb1a25Rum8Whe210HNvsrJU03ZLzRGyqVXJ4jm2uOljqPbi5+abgnh6Hr1bS4tBAT6jzr58rkDJ/GTtWkjV2wWJn3oFzx+41dgeJyl911k63/GTOV/ovGjIcDX8NnHfzNpjNVkkdDVsrj9gbj6w2hPT01PqaJWWFBnpCXdhXVy1NvM88SpLVnJZVe8ReV3GvaXLgd9fwam1zuu0Wzjt8eY6GssDt5/SN/jof3/ktVaX2xtJVUUE9Pb66jTVtwcMc7rqNZRUlnoqNDWMCwy6+VueSEu43j5RkNU/Iqim119XlmLoTQufzatrSk9I4dBGs0rmqqF2KWvFT6+aU4ZLUcuGPb1c/42x/ZpczeZ1lQV8b1RQ4nunrbztrCs69Jq2YF5skaUzsQxmuVUXn/njbqO4g0QcnXIWWhOdSvqJ/DPDVuejZUlxt73d1VywjPWniRrPReoMcrU0by1wljdWrooIrUgYzrPO1umYp9n7zcN0g6/hxWTXV9rqmHFNcoKDFk1fTnp5k42I+5HAQAlftkn2L66Ckm2M2rx83y/KFdOnk/oYnfu87/VaLPTs6y/KFNCzrd5Oyem/qdD/6s6bTMqz5U1f9j3N/y0FpUc5oi76QxfQP9zQ90bMTSTq5r+n0zXGPzf46/4GIEM7PCiTdFZrU6eX9F1vzJE0x5j1mWJhwg1ydu59v3XDGl/OrG7vrfKr+3wt5Us4KQ7JuUMLIR+7y5By6sHvpmNWBlqD393sKphh3ZH71/yj04/+43k/g6zd+0ZM7gzw4W5JlyabgZYOv/0HEOtzYJGlG9ED1KGe9Xik6JfCJ14ToaMlbeTGwurn2YWcgHgRcjjuvxiMpPWnGHn+sR5LBtH5qWpZUUuM6emXDOqo9kjEqcPCNmGiUPO3dfy1+tKrMHogHARHK4TlTKil22a7AnF/WmFt3pWRIKm2tdAywZVdyyLLW1p3vaanxStGxgVNmTFK05G3uOWVq38gPxIOAgLN7HfWS0q0rd3VP5jViwrq0u5dIJY6iwAXZ39wjxd3dPcwWM2PX5GmSSlpqAoeZu9orRY8JHJOmidGSt6X7SD569u38QDwI+HJcr9Y2SUq3LdrtT/9IGpGwbur3sqSS2rKjfW3jaDi5zdvn3i5Ue6Xo7klwR02MlrzunutnzUf2QDwIX57jQmmppNicnYE5v6zGOTuTMyWVtv4t6LWv/INmSbbkgT6yaa7yStHxgctObHK05G3s3skxZ96BQDwIX1rDq7XNktJt399tDiTyR5jXTZ2XJZXUlgeddw0fNkqKnTjQ+3RvtVeKNgbOu+iJ0ZLXE3TeHbEH4kHAl3M+ryvWM2tP92RehrHrp07PkkpqHN2HrsN9rkRS/PTuYVZT4p60BEkl57vfz1ys9kjG6MChO3KiUfJ4g+5SS+2BeBDQpfOPR1okrfhpSlf6R9KYUb/ImbhCklrerexro5bmf3qvva8Vqm5ul6ImBe7rJsZGSe2ftgRWVzpXFQXiQUDk6DxaX7dqoOCFvw1Fip+4JzCPknV03J60WEkl59scVzbM/5Hj8NCPHDt7LuaV1fZAMgNDBgch8KUcb9l5SlLM5t/50z+Shs1aann5IYPk27mv709jJEmX7FuaTkvTHjJ353vqanySYULgTj8xySD5znafZccbn3grEA8CQr1/zCcp0/adgQa5Lm4/JMmQ99vAnF8Jw1f/dnSOpCgkGGwAACAASURBVDMX33V1jaqqvSQNS7V0/ZhsGyZdKu8O6Be05RwKxINwnQzBABAgqaPGKyn6B7EjrnoPe6ubNNr6c+p/MCg+X4WkPkI5pgXxkho/cF/JsMs8VsPLjUpPSuDPIBDRan1OSUtMoX+cOTx2ukKyO7207Kt9r1Sabvlh9iAjcL6P/9Cs6RbqKxCqo/VTSX2EcibcHifp9Iddk2C4j7TUS1oyOnRSsJiMR6Il76dHOgbzWMV/aFK6NYODENdAx4UKSX2EchJuj5dU+WHv9xJdk3+l5NrirvCxyl9pVLqNLodrpqvXJyY1ZOnw+OkKye6oo7lSUvT0eVd/L3PsD82abplP/c+10eGpkNRHKMd8e7yk6p7zzj8yOnH+1f/uKl5pVLotlfMO10DX7WfvUM7YBfGSXN23n7XtbZKyxoZGBkdEpysk4jPgY9W93Kj0JCuHLkJ0fuqUNObO8EqeUXdmSFLZ+c7em/gn/1pxR8LMK3ysPx5pkSVhFfU/iCidr50ue6SmuURRWWlp2+P7HvOX8+2SssaGTrQ0Oi7XKHncf/Fd0bABXWx6uVHpSXFczIcSDkLgy7lkz2uTtOg3XRU+3SxLLYfen3So/ynAnPsbdp6Sbo57bOmNV/BYN8cto/4Hffj802pJw35020DJkKoTFwsk3WVYGHKhHv7g6mHSpTdP/PdgHmj3az5NMT5I/c91xRRgl1Ff9MquA8ed/tiaxTJ78QP3ZXTVA/mn/5Kk4y+tOS7Lkk1dzUH1RQf/48BJh9MZCLuFbodvAl9lqzR6TNLFxqc/cexvlaQZo+MemGqb3/+Em2e9QVHc5nPPtWppBvU/uCI9nT09bFFGyVPh88lkuLJhPTqqPT0/HHXVlCh+O/U/iHA2g0Vy5rsrH48J+oS2s7lUwV0+vbSd3OGVLlPn01ITdD0/2vheqTKep/4Hferp7OlhNYyX6j/1uRVj6qr20bTbY8JGmSaMlLz11R1SH9/y+rfqcrThcImmvUD9D66hns6eHjZDnNRU4fPIFJwNcm0tKSyRslIz5/ve33aZ/V4IOXTrC0uUso36n2vHarBJtQfaytcZgzJAnY2lCu7y6VoyfXSso/nNzc6CUkmyTY9d8IQltfclK6C5Kuh3d6zpYKkyn6f+59rq6ezpYTPESs0VvgsyjZIkn6dESh9rrG0o3FRbXSJJsenxaRuSzP3/7ryh511JiSZuo/4H11BPZ08PW1SM1FbhuyjTyO4f7efPrzcFXTc6vCX9bC6pqxAo4KirokQJ26n/QZhRm9dN33wlG3zwzt+ecUoZEzdP6lj+3mUGVzcHFQVVNj7j1IqfUv+DCJQen3B/QtzckTp6vs/1/k8FYxeE31AOTzJInvbqDmnk4If1ufMuR12uEsVup3ll6OEgBK5e59lTkmLmXXEop/2N3/uky9T51NUEJeeOt+w8pUW/of4Hffq8/Iw0ZeQkp+/x5z15ZyQpc4rhkceMCxN6rqhVtZck5cwJz5wlW4ZJlwpqP5f6KBDyb9WlwLvhjHI2Uv9zndEANID6g0+t2fDS8e4cj5zO4y9tWPPUwfqBN9rwUv7xnvRPYLuBN8PXq72zXFKr4+GirvSPpOLWpoePFj7d3DMqfM4vKTAjGPU/uM7C5/ySArEh6n/wbWE1TpkuqfmNBxq7JvxytH38QGWRpCXmW/v5kqxlX0ORpCUpfx96CoTP+SUFUkTU/+BL8hcF9ZsT0qc+/9/Oh8/5pe6tqP/BdXW05iO7lG5btK7vBFr4nF9SIF1E/c9XwDpq+nRJzXlrmsu7Xvs8x9ZUFUhaPG5O93XG0dkgqdSZ91hX+kdSbWlzXnbxm8d6dhY+55cUSBFR/3P9OHweSSW1R3K70j+SmksajywrKAyaJix8zi8pkC6i/gfXidU0Ll1SY+mqhvNdVyd33aoyl6SsxMTA1Sl8zi8pEA+i/gdX6sK7RZKifjgpdLLLSueqIsmS8O4P+o5Bhs/5JQVmBKP+B5Fq+Ipp6XtS4uYOkJ+82FGh4PmSetiioiRV+Dr1xaCH9ZpuSd1b0bwyRHEQAl+K87MaSTcPT5Scxxsf/cdP71r46V0LP73rHxvtxy8NtN3+loOS7klYOzskzRM+55cUmBGM+h8MyPX5GUlnPDkbu9I/kgrO+HJWNz5e0H2MdbUEdc/t1cNyY6ak6s+r9IV6z/ml7q2o//mmIADUr/qDu/KdkixLHty0c+fOnTt3bnpwiUWSM3/XwXpJ4xc9uXPTEouk2Q/u3LnTX/9T9B/5zuBtdu7cuenB2ZLkPFlIAugb46KvWJI0w5Jy4I6ZhXfMLJw77Z8s0ZL2F/1tb+APhGw281Jpf3VjraT2xl1OyWJeGRWo/5lI/Q8Gz2CYLMlTkxc+74Y7r8ZzxcNkWJEYLzW+3OCT5Gios0tZiWZroP6n1wxiQAQy3LpryrIl0Sp1vrG86Nl5Rc8ur3yvVJYlKasfD69aCfDX/0TfsTJ8wJhsc4ZU9IfGFkmOxqP5gRSRv/5nwLogDFUjRk+S5D28ty1sxdm9jqt4S2fKTpgmnf7DObek2nMf50tLEmbYAvU/vSYaA67WiFGTJXkLXw1/L+F6tbYpfLC7ILdRip65od8WH2N2YopU+UqDR5Kj4RO7lJWYag3U//SaaAxfzog5O9NyFker1JmXXbxhfvGG7KqDpbItTl67Luj/tH+mMMm2OHnt4RmbDs/YtC9t0eJoSQWPfXos8Dng2OXjMqWCPzSfl+Ro/uBAIEXkr//5JfU/19AI42RJ3pJe513Dq7XNwT/X+vw/xmalfv9YZtaxzKw30tOzoiVV535SEfjdjcpOnChVv9JwQZKjocwuZSVOtgbqf3pNNAZcra7bz4pet5/n82pC3wAZEvfMmJ5lVElN6dITH84+8eHSsooSxWSlzVrf8xZm5IrEBMn1csNFSY6Gs/ZAPMhf/9NrojGgPzUF516TlDHuFyH3aRee+PcWKeqf7+63xScpc9wK6bUjzTWSWpp/XxTYib/+Zx71P8DlDV+RGCs1v9zQqS/kqD9nl7IS46w3dDWv3E/zCr5yHIT4VjrxguP+X7edPhX4+VTbzl/XPLq/vwyQv/7HsCY7OmyFZemYRdLBvFanbpDT/W9vSfeMybJ80VX/M2BdEIY052cFkqTMu0Yffiu+7q1xdbtjN901TFLexpbdris7bJJ/PCpHynvNV6Uv5Lq4/ZB016jVCTd01f+soP7n+mMKsP7UF550KmheL0njMxY9uUlPbch3niysX7Sozxm9Mu7bufO+0EXjM364xHI839nXcFwfte0XJcmS8q9TAp9VRY1YOeWmJBU+7PS+09yxMso/W4fpX+am6JPKxe85pOilN6U8bTOF1v907D1T85zTK2mGxfr0FCJB6JcpJ8lor/HYyz5RWvJ6/zRePveWqjK7JKmkvUMyDHqYZEren6aNZcWzayRjfG5a8gpTaP2Pr2FLVY3dI8mYlZS8nkgQIpDDU1HhDVvmrHC3OGL6aFuRdNRdJGn66JQ+1sb8/espeqpy9zynFJ2xNuWH2TGh9T++j5+tfS/fK8myxPLDx4kEQRNWWsfnO+rzK+yavHBdjEmSOs5urX47X5JU4nNLl0/t9AyLWfD6ZG2u2DvXIUVPe2TywuyY0PqfjuKt1YfzvZLGL7EuXEckCFcp4V5bnL22yV7+vlJnrfPP9tXh2lr5Udd7Cd8FyZ8lcW0tr5TiclMGmDdKMmW+kapN5Qfn1ErRKbmps7JNofU/HeVbKwvtXklxWbZZ64gEfTmOC2cqw1/7aivbmh3GsYFf0/mzPklanLyqOxVkHTFn3aRYFecd8JYe6Ziz3H8vY/zRvmRtrtox3ylFZ65N/slyY2j9T8exrY6DB7ySbIstP1lHJOjqme+1xdprm+3lHyr1lnX+2b46GrZWHgmcd15plHThbLskZaXe3t25ZR0xed1UowqO2L11hzsmZ3fdh858I1Wbyv88p1aKnpibeku2KbT+p6Nia2WJ3SspNst2yzoiQbhKY3OSYuw1bfayIqWlrTeNlCTf+S1VpYHbz4vdU3E43M0VnrDN2yrOX3SYRva8iJhS96dpY9nJ2TWSMSE3LW2FKbT+x1e3parC7pEUk5WUtp5IEPpS6bzzvXYp6p9vC7m2ffBO9WvSzDusvxjoVm3U5gcm6u3qO7e6pKgVd0x8LnNUaP1P5x/fcTxT1C5pZkbCcz8gEoQhoKS9Qxp+BcNGJ+5P08aystk1kjE2N822whTavHKxaUuVy+6RFJWVZFtPGgOXw0GIoczReVrSqaadpzTtnoTHHo226Avp0skXGp54y3f69w32OdYsS6/sxXHvQUk3j7qtdxGLotb+KUFbXPcvbJIMix5KeGxptPRZUP3PJfsLDTvf8kmadk/cY48SCYIkVTkvSdJdow88HLgeJ3xn9cNjJ+lczqFLb57479U/7mNur3BnPquSIVmShj+7e7Seb51/j0calrN69I4f3xha//P57hfdGw5dkpR5l3HHw0SCvm4EgPpT73JKllkzw2I+42fOsuQ7na56qc8AUPfm9fX19fVy/fWvLofjuJP0zzeLzXZTYV9RnfnxcXI2FZ9rq7UFojxRpn+5dea/BA/y1/9kxNvUsffj08+1xr0496b5cj99tHKxVwduJQOEfljNybnni7d5PPayYnvP4vjcJN+2Gk96V+hssMMkWU3Je25LDn4If/3PdrNBvoZVxTUl8Wn7p5rkrlpaVlyhGXvIACGiOBpfXe50SpYlKT98PGaMJPkqn619I7/5jeW+O15P7TULmO/jPzRL/df5WGP+flfG3wcv8df/PB8/Rr6PHzjzXmnsstdTU9T2n8srd1do9S4yQEOebdzCR1r2bvfW51fsze9ZPO0R6/ntjvp0w6ACOsHDbDELdt2yIHitv/7nhXEmdRQ/cOpwSdzdr6dNUNsHyyv2fqqVu8gA4apYzbNyzx/c5m2ylx8Mei+Rkmtr21bblG7wf5nm2feJf/KvWdkj+tlR9w5NmbszQ7p7/fU/28xGdZSvLiksif/eG1MT5C5YVn6wQot2kwG6Wo7mPdnOWsm2OPkn64xjJamjfKsj70BzXrZv0b5J/lnAxi6ftGl5H1unLojVgeba9y6cXz6iK8pjNf5o54wfBQ/y1/88HztWHcfWlB0sjc3ZNylVnjezq3ZUau1OMkBXy2q+Jff8n7d5m+3lfw467ybm2jzbapvTDf4/2xyVPTUru4+tzbfHy97Y/G7rhexAlMdqmrk7c2bwIH/9zzbzKHVUrC4pKYmf98ZUs9yFy8r/XKHv7yYDhKtiNaflnj+5zdNmLzsZdOgm5CZ5t9W0pUcF0j8NRUtr2qSYrLCcUGPpUt/k/VO7ZwGT1ZS657bU4Ifw1/9sN4+Ur25VcUVJ/PT9U8fKXb607GSFZu0hA4RQlc7l/94iRa34aUpw0KemoNI/+ddzmZf7BnnMqM050zeH7LPxGadW/DQ2SZ1/zPvbM84xex5IWaALT+yqvrNR7+aQAcK3XfBniYMcZh2duGd2YvBaf/PKdvNw+ZpWFbtK4ifun2qUu25pWVmF0vYQv8CAOAgBadpDSS8sHaauLM6wWY9aNuvTJ97y7dznzXo0KnTsJXtem9R/nY8lau3vJq3t+TlQ//Ob0RZ9Zv/Hmp2nYjb/yTpL3h0/c91fpZd/RwYISv7x2Lof97F84RyDDvkKPuqs+rEhuY/1oabc2DMmYfizvx33bPBaf/3PRkOy/nv3r5o3nDHk7R6zUJ89vrp1frUO/5YM0NeKKcCujsPV79wP9QdfeWrNmg0bNrz00ksv5R8/Tvonkow0zJDU6jvb74ig+p/2tndaJUvM/CgpyvTzm6LV6vjX5n63BAwrps7YnhSf3vWjMT0+bf9tyd+9ymG9BNX/ONznS6SssSarZDUl5BpVUuM6eg3/KcBXrnKv0ylZ1k65tyv9I8mQ8njqsiWSvO/1mpVJDs+ZUkmxkwc7EXhQ/Y9/2yWmFKtkjZm1NlqlzpOcMpBM2WkrX7BOC1yQx6fH3f36LQvmXavdB9X/1Lo/LZGWjJ5gk2wxGY9Eq8RRxEGIq2XMnrpomy0lcOjGpcd/743MzPlBIxwNJ7d5B578q39B9T+O1toSKWt0glWymtJyo1VSW8ahe7XKX3XWSra1aau60j+SRqSum5SzWJL34Kvh3RvhrAabpFJf/3ckQfU/jgulpdLimFSrZDXOXxutUufhY9foXzIkjcqe+v1ttomB8y42PX7eG5kz5w+4TTebIVZdRUH9CKr/cbTWlUhZo81WyWpKzY1WSW055x2u1sgVU2dtT0oIHLox6fHT99+WGnr76Z8RLCZ3RkZX+keSYez6qdOz1OcMYkGC6n8c7nMlUtbYsVbJarLmGlVS4+DQRZCagsrUf28pVNQ/P5CyOSVoRUvzP/k7gfqf/Kt/QfU/LZ7/cEoZpgVjpDGjVt0RJadrT+W1+wcA31pBzSsOt7tEyhprtN4g6+i4XKNKapq4mOMrx0GIiGUdPk2SDN+bc2PYmlnZcdMkVX3mDEtFOL0fnZIUM2/2IB/jUk/9j3/be6JnWb6QJWrZQwadanrj+Jf+V+BbzHJjpvzVPl9SUP2Pq/PNM9JdhoUJNyhh+IOrh+mM56WCa/BkMXg0AF0da0I//T9Fr2zIPy7JMnu2NSHhloQEjR+focKnNjAFWAQZbZjQ36qe+h/VNrcUSzOiu0pVbFEjJW95e4diB5Vox9BkmGtOnmsOre1p90iabDBc+bAQPfU/8v3lvEcyTuw6FA1JBsnjq/FpLh1AiBS+lgpJ0VPmhx+0KSstlnyns6KjRQpp6Kn1OSUtMaVocHrqf9RyuNUpWZK6/pZ0zASD5G08yykDSTLNHbdg7rjQ2h5fvaRJ/mqfEaMnSSXeFocU1gHoCB7Wl576H7mPtNRL4wPXbdOEkZL3/NkOzeVNBa6Sca45c645tLbH1yRpssEoeQ6fb5Ikb+GygsKwLUtqD86pleK/dywpoc9d99T/dO0nbmLX1dI4IUrytnHoXqWO5kpJ0dPnhf/fS73XYjvgrK3sPC9dvqFnuiG2v1U99T86f6S1VrIld732jZ1gkLwNZzs0h9/d1Rs11zxzrjm0tsfXLGmyYVD1PIGioD701P/owuHzzVJs4LwbNSFK8no47/AljJxrTp1rDq3taW+TNNngL/vxVUgyjvtu+HvjrhnEKnwXZeq7yKen/kcX/3K+TYoJvNsZmWSQPF7uUhHwwTuVq4rapah/fiAlbJKvmk/dhZLU/syu0mfCNnO67tzqksbsWWdZoL701P907WdmbNdrX9LYEVJ72flOpVx+XhrgG2zkiMlSiaezVgprSq5tb5c02TBcNwx6WF96mldu6PzL+XYpKnAxH55kkDwXa3yaS6HbUMZBCFzWcGsfk3lJkk511kkhK/2zht0TPWuQtT099T9fOI9dOC1NC3zKbbEOl3w1js80mzAABtRV7fOdSROlM5fKnVLYZ4LOzwokTfxOvy0+PfU/N1SduFggZdq65hRLtgyTLp1x/rcyBzHLGK4RGoD6Mz7BIjlPFoY1/dQXnnRKln7zP389LlmWbNr55H333bdoUUZGRsb48f5t8M3RsffjwpnvFT7d+29jL/qKJUUP72car6D6n4DU0ALLYq/vWj5TDAHuDxoVFNa52mFB9T8BhqSQD1I91R1f6okC32yVHzUrKMRzOUH1PwHxE0JOGWdN5zV8evg2Ofthk4LDOhOjJZ0/G36NdZ+9GDysl6D6n4CxE0IG13PdxjXl+rBRQWGdqxVU/xMQE3roNlXzfvgr1XFsTfGG+cVv9m7rcfhqJaUM7yckFFT/E2AO/d3VVvHad401fNionrBOR8XqAvucgsLef6BcO3BOKKj+J8AY+rtr5rzDNXX+g0YFhXWuVlD9T0B06F1qG+92IEmdH7xTuqqoXZYxe9aFp3++5J576n8C0saG3DMWNvPah4g3YqJR0sWa8DcDnTU+BeUkBjmsl6DmlYCRoRfzdi7mQx4HIdAvS/T3bpbU6ej9LbE/6HPz8MTQxScPtykoxHM5QfU/AUnWkLah03zKDX2++1fnEu8593hBr1RZaLIn2TZM0hnnf4eNqnJeUlCmp4/9d9f/BEyxhERQCmo//zL/AFwpAkD9GT9zlkVy5m946mBRVwiovuigv8nHMmtmaAAodEIw58nCwCaqL3qF9p9vnBFJ0ZK0vzGsp7pjb3WTpKXx/fytvr/+Z2J8cDyovD3kzWV3IRAQxvfaJydmn/jktdA7HEdDnV2ScWzgjykHOSycv/7nfnPwal/o3dRlM0bAN4lhzGRJ3jOHwz8U8E8NpskjQj8W7rcxqG/++p9fxgfvpPFsyGMNOkuEby33vrKX5v7Vvi/0U6Tacx/nS4qeFKjoMM0bM16q394QOn9oW9F2b/CwcP76n1+OC37PEZYi6j88BAzEs++T1+cUvB926DoaPrFLirbNHyHJmD11+bHM8P/esMVJSrctOpa5fOD6n/tCJg5rCz10v3TGaMgaEZsiyVt6JPzDa//UYIFkj3+YCj4ImxGs49gfmiVlLuhnVjd//c8vY4PjQQ2hv7vuQiBcqQv7PrHPKfiw13lXZpcUnTjffz0fYZwsSdUfht+HVrzSKGni7f3ch/rrf+4zB8eDPKG/u1jOO1yVi6998uHsE0W9bj/P2hVU+WMwTJbkOfeX8Hfm/qnBAkVBvfjrf+43B6/1ht6lfumMEb4NPnjnb6uKJEvCuzl9t/gkZaaUr5se/t8DCTMlWRLeXTe9fOD6n3khE4eVnQ/5Dqy7EAiIXMO/OzZKat/m8oR0RbQ2bfNIRlPgs8RBDgvnb1653xxczRIW4Og/t4GhgoMQ6N8wa7Ik38594RM+dwV9/ke0JeSMuOSoUp9ThvXNX/+TMzp4JzWOz4KHDDpLhG+x70yaKEl5xz4LXf757td8knICx1vybSMzpYLd3vdDDsvOl3Zfkob96LZ+UiX++p8VhuB+oLAUUf/hIXwlCAD1a/yiB5ZYJDnzX9qwZs2aNWvWbHgp3ynJsuSBRaH5n+P5G9aseepgvZRxy+yQTdZseOl4IP3jdIW1CeG6mT/BOkOSs/LnZ9y1/kXt7qc/Pv1cq8IKfoKE1//YYsfMCKr8qW2/qF6FQEA3fx+PZ1tV1dGuY8Z3tOGTpTUeyZibbLZe2bBQ4fU/hu+ONQZV/viTQGGFQMA3XMr3YiU5d5x59dm2lq5lvspny9/IlxR9x8qY0OGdzaWSDGP6PkfChNf/jJk/2hJU+dNy1qdehUAYgkwTRkqq3179wdGuy6n76Dn7cke9NP6RiTO648A206R0SU1vP3D2rP9dRW1b8QMVpyWlj0nqu1QwvP6nK0UUuG7724PCCoGAQTJOiJLUtK2yIHDoeo42vL+stkmKy01JHdR1sj/h9T/G+WPjgip/PGfb1asQCIOXuiBWUu2Osj1bPee7lnWUb/0074Ck6EX3diV7Uu+12CQdqOoZ5vC8uabsYKnCCn6ChNf/jJ032hZU+XP+rE+9CoEweKMmRElq3lZZGDjvLhxt+HBZbbMUm5syOXDeme+1xUqyl3+41X3Bv8jhLlxdUlKisIKfIOH1P6Pmj40Nqvy5cLZdvQqBgEHy//V827aq8sDt58WjDUVLa9qkmNzkxMChO3ZBvKS2bcVFW9wXu5b5zm/5pNQuyTg5p8/sWnj9z8jvjo0Jqvzxf28XzV3qkFdTUBlI/4TEdK6F8PqfpEmmmUGVPzXnO9SrEAiISFaTKV1SY/WqKo/jC0lytDatKmuWlD42xnqFw0KEN690BTgCF3N/cctILubgIAT6Nys7bpqkt1yPvuA+6fTHIy6dfMH5xFvqK+jTefaUBpoyLER4/Y9lzqhpQZU/TkenehUCYWhauNSYKelQ6+IXO6v84R5X5+O/at5wRiHNPQnDfzRFki/nV573XV3Ddv+qNU/SlJF39v3HguH1P10pokDlj789KKwQCF81pv0bwPhFT+6cWfTKrgPHnf4Qj8Uye/ED92WMDx7ywBLXrvzjzq58z/iM+zY9qJ4tZLHMnrX4hzNduzbkOx2uemWM7+OB8LWLin/6ppbFf/MWOysXh/Qzxb04Nb7vr+r89T8ZQWujYn4wWsXOhr0TTCvl/te/efsPDwHS3OS0LF+Z3dP4SHFj8PL0pOQVhiseFsxf/7M9qP7HahqbLo+9riHHZJbbtc0TNjsYEAHm2lav9e3e4XXmV+7OD1ljWWu7NexDAUdHo6TphkG1xfvrf54Pqv+xGqdMlzO/4eOVMbeq7eQOb9jsYBii5k64e8nFt/O9px89dTp4ebp1YXbw96wjZjwxuWV5xemSpreXNwUtj7t717i+yxz89T8vBK21mSalO+rzXcUrY2b424NCZwcDrsDcpO9ltX9k91bmllQGL0+3zcr+chEBf/3PtqD6H+toW3ptk72u/F5Tqtxl27xhs4PhysyxrF3r27HDW3ugaseBkDW2tdY5PZ+bx/5kbWtfw2Jznojte/4vf/3P80FrraOmT1ftgXPH7jXOkefwDm//4SEMwtykeVntR+ze6tyS6uDl6bZbgs87q/mW3PN/3uZttpf/2R48Ln7eBnPf83/563+2Ba21jk5Mr22211Xca5osd/k2b//hIeBy5iZPz/KV2j2uR4pdwcvTk9JC71Jn5fpObvO02ctOhhy6ITmhEP76n+1B9T9W07h0tdnr6nJMiXI7tnnCZgfDkHRhz3vtkuR03bnV1cf6jInlP+hndsTL8tf//DQoVzTG+EOLq7Do3B9vG/UL/0OHzg4GRKyRcRvTOpeWNZc0Vi8N/jQxfuKe4NKUQQ4L4m9e2R601moypavdXteUY4qTu2mbJ2xiJgxVHIRA/yymF37T+eiv206/1fTEW8GfHBoW/caaZQmdksn5uO5EGQAAIABJREFUWY36mBesb/76n98E1f9Yor93c9Ppt1rs2dFZ8r7xe1/Y7GAYuhJG7lh9cf7uSwWHWucfCl5hyHssuLnnO6sfG12+ujXvjC9ntS9k2G9DCn56+Ot/NgatTRj+oykqOHRh99Ixq/XZS7svhc0Ohq8BAaCM+3buvK//1eMz7nsyY4D1Gr/ovicXBQ/oc4uMJ3cu6tki6AdcLzbbTYWx7qc/adjf6m/ei55hMT89xdR3+qdX/Y8kacTKW6fpTM1zRwufk2ZYrAem9BMeAiRJpvVTZyyoqnq50VMiSUo3xt+fnDw3PNYzyGEB4fU/kiSDec8MbamqWXqiRjJmJc1Yb+bvIBBxxmSnrp7fdvKphqLSropUy/TYuU/aUnp/x1DrG/Rkm+H1P5Ikw627pujZ2veWF70nWZZYVj8eP6gsEb7tJqxLW3n72ff/0FTfdUGOnvbLiQvm9opQ2GIWvD55zF7X4fyuY3X8EuvCdf2kf3rV/0iSRszYdbO2Vh9e/tfD0vgl1pX9bg5cXsK6qYturzn5SmNT4NBNuS8ls/ehe2XC638kSSNSd6dra2XhsoJCKS7LtmiduZ8JqDAoY5dPWjvPc3jzuYLAa59teuyCJyxh1U1jl0/aNM/zZs+waNvicT9ZZ+w7/dOr/keSNGLOzjRtdRzMLj4o2RZb1q7rJzyEwTGvm/r922v++kpjc+C8m3hfysxe592o7KlZ892Fm+qqS7p+d7FZibesM/Xz/XZ4/Y8kacTk3enaWlmyrKBEis2yfX9dP+EhYBDGrp86a0FV2cuNbYHbz4T7k1N73X6OXDF11nfdjo11rpKu+Qdj0uMnbEwe209JbVj9jyTJkLhnhrZUVSw9USHFZCXNWm/ue+4wDB2V7te+ql2H1/9Ikob/IucmveN4ZlfpM9LMjIR3f3DNa4eA68Q6OnF/2vC8Ope96yodlZVkW98rUTHIYV3Cm1ckSSPj9szQlirX0hMuKSorKa3fzTHEcBACA5gd/8Kfou37Wj56y+f/I8NpN8f8w/pxs8LSP5Icnad7bd2P8PofSdKwrN8l6YWGnT+r2ClNuyfu5UdHh04xhqEr+cdj627rfPz5C3lnLkmShmXeNWrHwzeGx3oShj+7e3Tq/gsbDvmHKfMu446H+0n/9Kr/kSR9Z/VvY/Wie8Pqxg1S5l3Gw/1ujq/KDV98wZk/FBXdecv1fgr4lst4968DD5h9guAxvnLHbzt+vZ/CNbPu6Mzr/RTw7bd1buHAA/6vY7d+Pc8EQ9b/mvPx9X4KVyn7+Kzr/RTQt32zTw484Kkj/+fX80xwpZ6c978HHvATzrtvqv/ncufdN9YC7lLx1fvgcnepFevTv55ngiFr8paS6/0UrqUZJ+gwxFer+LZjAw/gIMTX4LLHYQR5578mX++ngG+/H/xdxcADXG+bv55ngiEr4e6G6/jozLgGAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEu+GLL7643s8BAAAAAAAAAAAAAAAAwFWiAQgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAg27Ho/AVwfRQtvud5PAd9yGe//deABs0/M/nqeCYay47cdv95P4Zr59dGZ1/sp4NvvN3MLBx7wj0d5/4Cv1u/mXub9wzdW9vFZ1/spoG/7Zp8ceMBvDs/4ep4JrtSv5xcPPGDx8du+nmeCK3Vg9onr/RSu0ne5S8VX7y+Xu0stf4wXJny1Up+/zCtsZJlxYs71fgr4liu+7djAAzgI8TW47HEYQd7+/1Kv91PAt9/d/6N84AGut81fzzPBkJVwd8N1fHQagAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAIRgAIAAAAAAAAAAAAAAAAiGAEgAAAAAAAAAAAAAAAAIAINux6PwHgm+Fi48+POYpjrAdujbeFLHc/fbpyf5uk6Bmp5qetJlvodofPFD7s7bUV0B+Hu2pjXWOJR5JkjM9NTFhhMlzdMIe7amNZY4kkozE3MbnXAPeWE2UVSTP2mPvYPxApHG2HnmooKvX6f7IsscxfGZ9i7V7tK3jgzLulA2wfu/yILaVnV5VFpZKiLWvN92THjAkdWvls0esVljW74sf02guGNIf7v55qONV1EEbfvNZ8S7bJ1Me4jv/9bE15vrdekjR+iXXWyvgka+gQh/u/nqo8VSopevxa8/d77afm2cI3K6w/2xXf1/6BK+RwF2yqqyzpOnRTchPTsk3Gy2zS8P6y2qZ026Ld5pCRDnfBpvLKEknRcbmJs3rtx7W14KOKXlvhqjk89qfPnSxt9/+UtDjh71bG3WQNH9V8rOnDP7pOdr0IRs36n+NuX26M7WNX1SdLJUUl/c9xy3oN+NuzJX+sTHjs/44L3xBXx+Eu3uSqCbyHT8pNmJxtiupjnK9xa3WZ3dPi/yndmHTfxBlzQ9+zO9zFm/5WUyLJOCY34ZZe+2ncevJYRdIdu8f1tX/gCjncn26sqw8cuuNzEy393KVefpjD/enGsvrAXepNvQa0bDlxuiLpVu5SEaqmumnPUfc+l/+1L2pmuumhWXG3j76qYa2eJw5W73NJipr5d+OenWlMCl3/4Z9LVjUl/Pkf4sKWA5GgtW52WXNWWvr6XqeHJF1s2lLltnu6zpCspHE5ZqP1hqsZ5mit21jWXCLJGJWbaFthGq6QAZ4tx6srktL2mMOWYwjgIASu2mcFzze89pbvjP+nmw13/cz88Owbw0c5vS/+puXQKZ8kyXDXQ2OWLotO6GOM69ApSYYpD415rNeAgucrNlbF7X5xdPiGGOo6H7+nNa+P5Ya8t4wLQy6nn+9+0f3moUsFkqTMu4yPLDUsTAi93ro6H3++Ne+MpGGZq0ft+PGNyaEX5PdfPJdTbTz8W0MyF+rrIaIDQPUHn9qQ7xxwiGXJpicXjf+ans9gFL2y5qXj37hnhY69px3FfSx3P32scn+M9cDfxdsuNv78WOXiCymFU4K+lbvYuMulpTNI/2BQfEerih9pDFrgadxW1vhufNqeZNMVD3NXLS1rTE+acdxscDR8srSsuDrttvVB6x0NdXbFb+dzVUQyR+OfljuDX+ed+c7X81vvfD01s9f3oJfTdmh5ZdF0y5oj8WMcjX9aXrmzJmX94zHBj3U4XxnPk/5BCPfR2j891hS0wHtqR+Wp9+J+tMsW+oWB+7/mVZ4K+rk+3/Fmvu9HR4KHuf9reeX/z97dx0dV33n/f/urQkic3JAMIWTiJOHWklBQMCBqL9v6WGzRksIPqGJrEXS95FrL6oW26wretAUqjXbpz0IotVeBBX6wiYgru96tCoZAJJQJmpCYZMxMJiEJuRmSTIKu1x+TSc5MJiEBFMe8ng/+MOd8zpmJ+Z4z58x85v09mWa5531zlKNuz8Lyv9pTV6wynrfrjuZq8ga6f3AJuPPsr600Xku0lmeVlr9hvjnb2ve7Px2lT1XVB1neXLCgtDw96fbD8SZH7VsLSl+rHL/wMb9Ljo9ylJpF988l4qjftNhlNyyw73O9tK/5BzvHzja89jXs/njD79sMVW1Hf1959K3Ye/84ZkLPQnfO4sqjaQmPHIyLddRvWly5oTL516sMfyhH/dv7NOM5un8ujba8yjf9jju3Pcttf8M8MzvZbKxzNJ9YcMr4J5bNbV9pa8mccFPPkdV8YsEpe7r1u4dHhTtOH1xw6s3KCXf4HXenS3JkzaL7B5eAJ6/iA//bz5qskpo3zN/ckhIz6LLmj+eX1KRbr8+PD3PUnphf8kHlxNn+d6lVORrNXSr8vfv6x8tsfi9qhba2Zbbmf1o69qfRgy1z//PWyl0JCa//Y5y1qX7R1srb6pNP3WZ47Wuq/4NNi35E9w9CknttSUOfK5uqM/zWtuXYK3PakvNTTH6fug2krKl6fklDunVifvwwR+3H80tKKv27PRw1p3MU+zyNF0MRgxC4QM7WjUtcB4xLTnoOPG6vnJvw3CMR3ctc+aeXP95iKPIc+IPrwH9Frtk4anrPwtaNS1wHJsdlvx2d4Gx6dIlruT1hv2Encjbt3K85a+n+QS+uz4oHVBfYJ1RwwL3kwDn/JqHOVcubtk0yHdofluLy3Lm8aXZVdPWKYYbHan/+gJasofvnsmEKMEBVDvtvW4Iur90rzU82J0kaYb4/QXLV7mjvKThkd5yItPyUt8wxEI7aCu8bpunWiXtvuCH/hhvyp0zMNMlWV7Ks1jPIMs/O6jrJfF98mCRL/JhMKae61tHzaM3b7O50a8KsL+u3Ay49T8HTTqektMSFu6c+/v7Ux3enfi9NUusbT9d1fWNeYdM3T338/V7/dicmSlLE93Z3xf807qo9Lk39mTlGksU8e56UW1tgOGTKdzidaYkZHDIwctS97u3+SbPcsXvaivenrXj/m3fMi1BR/Sv31zUbCu3ry08ay3an3pwmya+seVftSWnyz8xRkizmGfOk3Nq/GQahfYejJs1yHYMQF89Re9TbhZCedPOe6QsPT194OP3mzAjZ6t5bXuvuYyP3rvJCW9Dl1eVS6tJ4kyRL/LWZUk51qWHourZX1acnTWToXhqdh5512SWlJdy7M/3XB9N/vTP5B2mS2l59tr7nXXJH/Z7ft0nhM56b+OuDXWUz0qSihpfW9/yFG3afPirNuDcuVpIl7tY7pX2nDxn+dqd2uOxpCbfM/NJ+u681x+ljXceddeaeGXccnnHH4fSZmSbZ6g4vP234vNpT8dQpu6R0c0/ZSpOkxhxXhe+v07bLZZesS0eFS7KMmpgpGdZKqttub0y3juO4w8Vz1J7y3X5+c+8Ns/NvmJ0/5ZuZJtnqPvS/Sx1ImWdndY002neXmpQp5VRXG4Zu4za7O92ayNCFUWX1MlubFL7oRxNP/WP6qX9MP7U0+Z8SJLX9amv1u4Mssxee3iUtmhVnlRQd91C6ZDv9l6aeR3v3qKswIWFZ8pf26wGXSrt7bX5lTp+ru9oy0q3Je29Iz89I3zsxIV1SXeWy2k59Pqiyzp3VDVLsffHDdIUso0dlSjnV9Q7DTrbZ29KtcZzMhxwGIXDBzr38G9cBSZMj12wbt//tcfvftq55KExS8f7Gl7u//Ops2uDt/pkc11M2N0wnW9asaHL5qlx7Gg9Ic+6JTpCUGL14rmTciVSws754ctz8jC/tt0PocJ4rkDQnunr/KP9/kcb4n7c2Nm2TNMm0LdtcvX9UdXb0U5MkeZY86qnwnagrXj67TVqyOCxFVyhhxM/nSAfOZrt6TtRv7XUXTDI9OF24XEK6AWj07U9uMngwQ1LivKeMywjawXm11z1R2hp0zSdnW6WIVN/XKq+5OkJqLe9++7ahaoXL1x4EnE/zNrtbUrp1ypb4qK4vcIdFPX7txEzJZnflDa6so9ItmcJ9g294sklyt1X5HiyvoiTH1x4EhCiH+6MiSbELN/vm/LJETt+cOlVSUdPHjn627OocSnw4qTsoqNHeKkXE+Q6ZGGuE1Frfc8hU7c71tQcBPvYdjhpJaZZ7NndP5jXcumrCHfOkIscx3wnZm9wjxd3RXWaJ+tbm1MmSihorfWO1yd4qRYz0DcJoa4TUesYwCF/J9bUHARfHtb2qXlJ60u3Z8Qm+oZvw2LU3Z0q2qpK8YNs4ao9mBb8ePlvZKkV0T4J7dXKE1NrcM3Tt7+X42oNw8RwtRUWSYu/9o2/OL4tp9h+TZ0gqai72nU9O7XDZJes/JGXO9H25ymLKfCLBKmmf+5RvZw2VbVL4KN9LYWxyuNR2uvsF9HD1S/t87UG4aHXb7Y2S0q3fzR5l9l3Dmx+bNDNTstnLuo+7vJoimyTzzOzknrJFk7670iS5i7Z3dY22Vrolk8l33EUkmyS3u+e4qzyc42sPAi5Oo+/28/ot8TG+MRnz+LXfzJRsdmfe4MraK92SaYRv6I5INknudsNd6oc5vvYgoEvnX/IaJC360dhnkn0vatGmn/44eZEkNbxeOagy2evbpPBxvpAIa1y41FbW3QBUWb3M5msPAkJHZ15N9bIT/TReeNNQJHPyFt88SpbouC0TYyXZzrQ4BlfmfctxmP9bjp09J/PyyhxfZwaGDAYhcFHyG7NPSopcs3HU9ETvoqumL7BkPxQmebJ3dr0bU7CzvljS5LjsjdE9ZY9Y1syVTtbvze/amdPukcKSfHf6idYwyVPVfZTln16z39ceBPh767BH0vSkb/RX5Gp//oCksG3P+eb8Shi2/LnoJZKK29/wdaJVVH0qXTm+a6AqJelK6dPS7ka0gpYlB3ztQbhMQroBCLh4XZN/zR9vmTLYDSvrRfwPBsrjKZMUpCkn6ttmSXXvNA+m7DyPVfunOhH/g1BX5XFKmheV6rd0WFya/Hp3emncVfVGkZSWOHfRAD9c8BT8uUHE/yBQR1OZpCBNOdab4ySdfK/rhNx8qLFG0rxI/w8Soq57OEJqLT3UMZDH+tuf60X8Dy6NjrNlkoI05STcYpZU/m7va4muyb9SVybFDfKxSrfWififS8jRaZd0p2mC39Lho9Jk7N2ZsCr91wfTH1g4zK/KMnzUIB6p89BLDSL+55LxeI+73k055lvMkuxdx52nYmudJGuW/6RgUviiSXccnuE3yVffj1WxtU7E/+DS8LSXSQrSlBPzbbOkGt9d6sDKzvNY1X+qE/E/CNRR5pIUe1tywHLTbemSdKqxczBl/ev8S16DiP9BqOnc+WHJz+0NNoVnTpz4vDl4zcEzbZIyR/pPtBQdt9IkuZsPegZV1q/2+j/VieSVIYZBCFyccy//tUXSnLWjAsJQEhZY9r89zjd71zlnhaQgvTvTb4qUdOBg8G9tBXks4n8Q3GcfV0q68o4b+usMqTjSXiBpTth3/E7Uwx5cfqX06StH/nsgD5S90yPify63Ky/3E/jy1Bx/7d/35eZ7G9ASEzPuvH/p1NG9K446nE5fk5p/Vc1rT6/OdWY8uOn72rr5xXynpMSMB59cOlWqeW3r5lzfkl77xVfXoeIPf9siJaQ+Edv509LzFH9y1vAS23D6ty2aP4X4HwxKT2ZPj6Rwk+Qu83gUFTa4sh4dlYYJPfJcdpvMz/PFSoS4pLBEyZnbXL4q0tAD1FlfJGOWTy8t+S+0SueJ82m0G87neXVvFGnqBuJ/EFRPZk+PpLDRUk1ZZ7MU1RXto8k3B35qG3XNCKm1xu6Rhvfeb5PfIDz9XpEmbyD+B5dQT2ZPj6SwOKm+zONWlLE3yLXOVmiTMsdPn+15K+s8+z1baRy6NYU2pWYR/3PpWIZZJfs+96lVxh6gjtNFMmb5BOfoOC0pbVhfX09oqDTMQ3W4/tUizXiO+J9Lqyezp0dSeIzUWNbRJoWrw22TZB5sm36r36V+TZFN1izif3AJ9WT29Ah2lzqwsh7t/nepFTaN5i4VgUzP/GP6M5esLJC93vDaV1n/K5cW/Yj4H4SgdHPCfQlxs0Yo70zQ9d53BWO/HXhDOcwaJrnbKjukEQMvC7rzLnkul02xz5O8MvQwCIEL11l1UlLkzAE15fRE+/SwDJskFVecc0m9c32cdkPnXH5j9knNWUv8D4L6rLRYmjRirNOzaoN7W7EkTZ8U9vNHTF1JP5K6on20ZOZVARunJF4pfVpQ9ZkUJEDIu1WXgtbVxVqyhvify2yoJADVvPb06hd93T+SnM78F1c/vfV47wqnYa5Eb9VrNX67OrZ19Yu+HTnzX9x6vOa1p1fnGpZsDtgAX1kNVStcUqRl36Tgn7gFzvkl+WYEI/4Hl1ngnF+Sr22I+B98XVhM16ZJath9f125N/PA0VJwf/lxSfPip/fxIWjjrtrjkualzvE/BALn/JJ8XUTE/+AieYOC+uwTUlmn90vxgXN+qXsr4n9wWeXZ38uR0pNu7yN6JHDOL8nXXUT8zxfAEpmWJqnhpb+vP9X12uc+9PeVRyXdOWp23w1ADYerNy122eU3pVfgnF+Sr4uI+J/LxNHRIik9PEJqy6s8uPzoKzOPvjLz6CvLKyvy/L7uHDjnl+TrLiL+B19pgXN+Sb62IeJ/MFju122Swr+fMmxQZYFzfkm+GcGI/0GoGrb4m+lbUuNmBemK8GnvKJNxvqQeSeHhkso8nfp8wGW9pltS91YkrwxRDELgojjPVUqaPCxRcuWffnRF2dxby+beWjZ3xemX889dwP4C5/ySfG1DxP+gX67PiiUVu5es6er+kVRQ7FmyvG5Vwee+oq6UoO65vXokXjVdUuVnFfpcvef8UvdWxP98VQyNBqDjW1fnOpWY8eBTT23yeurBjERv+46v5N9znVLivAd9FZs2PfVghiQ5jxYaG3ry8/MzvEXe9fkvrs5V12ZPzcvovQG+qpqfPVEvRfzvb/aZ4pNkiZ8v7a2sq5LUXrfZJSXE3zXCF/+TTPwPBi4sbJwkt31bYDp68za7e9BlCls8xizV/anWI8lRW50jZY6Jt/jif3plswMhKGz65kkL50WoyLl74fG1Nx5fu7D8jSIlzkt9YFVkH5t4438ivndXYEHMovip0vE/1zVKctQdyvV1EXnjf/qNC8JQNTx6nKTW93YEnpDtOxwXcKUXtSh+snTyz3XNkhx1R3OlefHfsvjif3pNNAZcqOFXj5PUWrg9cOi6tlfVBxY3F6yskyKmre4zxce0aEyqVL611i3JUftRjpQ5ZrzFF//Ta6IxXJxhs/848d47w1Xkemmx7Zc32X65uPLVIlnvTH5kVfD/06fW2355k23Dow12hf/guYmZhp6e2IWjZkhHX6pvkOSof3ufr4vIG/9zL/E/l1DY1eMkuYt6HXd12+2Nvapr1xW/ubKu0eb72VZXtNJ2cFdPD1D4ogSrZN96uk2S43RJjpSZkGLxxf/0mmgMuFBhI8ZJclf0uv1s9L9LHViZwhaPGS3V+O5Sq3KkzDFjLL74H+5SMWD2wtO7JKWP+mn04Mqs00Ytknbl1dslNdX/weZb643/mUX8D3B+wxaPiZUa/lTbqc/lqDmdI2WOibNc0ZW8ch/JK/jCMQjxtXRkg2P54y3FJ30/n2zJftz+6J7uHqCrElMkebJ3Bk71VbCzvtjwY8KCmDnSgb82uSQ5m3bul+bG/DDRF//TawYxoIvzXIEkafqc6EP7zdX7R1Vnxz4150pJ29Y0ZrugqVfHAAAgAElEQVQ+73/rACk/vHqJtG2np0Kfy9X+/AFpztXLE67oiv9ZTPzP5TckGoCOH8uXEufdv3TqaN/cXKOnLn3ywQwp/1hXB9DUpZs2bdr05O2G2btGT/3+vN5Nbsp4sGuKr9FTr8uQpMR593dtNvr26zIkOV00AH31HSou3ytNGW+9q5/mdUU9MTN1vhx3vl047XDj+PGp+yZF+cf/dOwoPjXt7cJpbxf+tLiuqp89YciLWmI1Scop+Whts+/dfU/z2o9KciRJtraOwZRJUSl7J5plP5Fx5Mj8M2ErJ055PMo//sdTu/ajIxlHjmQc+Wht7UCmUAa+chzuU2WB9zzOsuZGR9BqKa/5uKS06LFBMhIi5+xOnSrnphuPr13YZH7Y20VkjP/xFKwvXXvj8bU3Hv/r+rren9VhCLLeZRktKbd8z/pm3+ddHfb1p17JlSQVeZr63NSgpyzq1t2pk+X4642FGxc2xj6ces+qKP/4n46/rT+18cbCjTcW7llfF/gJGzBgCXcnxUnKKX1rXbPvc9kO17qP3uu6lvCc9VW61pWWS3ErU8f3N7dU1PQ941NV9drMgt0LzkSuHH/7Y1H+8T8dpes+2j2zYPfMgrfW1br72RMGwtFy0j+AVJK93N0Q/LWvs6483JoWbpWktlcfrcrZ3WlYa8rcmTxDrg032X65uHnUP3i7iIzxP52H1n/8y5tsv7zJtml9fcMX8wsNEea7rTGSck4dXNfs+/t56tYVH/Zdw7dKqmprlGSzF+W4YzInfPfwjDsOz7jjcPrMTJOkxqzKip6/ctSUPROssr858+grC85Erpzw3cei/ON/PBXrir0BQgfXnQ4cMcCAxfhuP08Ybj8b1370oW/otg+mTIoau3fiaNk/yDhyaP6ZiJUTr388yj/+x1O99qNDGUcOZRw5wV0q+lJZfdvbbVL4P83ot804eJnpmaXJi+S67Xe2CVubJ9ya/PptJv/4n86/vP7xhN/ZJvzOtuj1evsX+osAXxE97yUOsCx6zN6JsbKXZByxzT8zYuXEiY9H+SevtNev/dCWkW/LyP94bY03sgXoD4MQQ5mjs1jSyfrs/Z5JcxOy3x63/+1x+9+2rpkbJqn4D7Uv+zJUpi+OmyRpv+vRDa2urmXnCjY41uyXJJ3s9BVGrNiWMEf1y28tm7vkbPJDCdmPRPjH/5x7eYPDmzP06IYmlwBJqnB+KklzovetGNbVnZPwjeUrRm6bI+nTV47894D2Unyuouu/hq3Pjl4i9+y5dWOWt09aHn1oxVX+8T+fZW88M2bu6TFzT9+5sb2CE/WX7srL/QS+BDUuhyRn7uoHcnuvdLhqZGj6UU1NTU1NjVzHjrkcjnyns9cGiQmGFqGERMlpMSxBaKhynPJO/vWsZfh5SkdEPXH9tCeMS7zxP1PMSerY8cGHv22J2zhzwmw1P3u4/M5W7bueWCD0wRKfsvLMiSy3O6fkRE7PYvNKqyfL7k4PHz6oMkmWqJQtN6QYH8Ib//N8fJg8tctO2G3miXuvjVJzxfySE2WasoUvXCKkOOr+utDplBLnpc5dFRkjSZ7y9VW7cxt2L/R8b/f4XrOAeQr+3CD1HedjiZyzeeoc4xJv/M8Gc4w8BfcXv1EUu3D3+FS1HFhYvqlMD2wmFmjIs5hve7jxry+01uSW/9VwETn5YUvDC46atLB+v5DsYyyzRN26edqtxrXe+J8N5ih1/O3+D98rirtj9wSrmt9eWP7XMt2zmVggXBBL/IyVZ17Laq3PKX3NcC2RujKpJauqPj3sakmSe9dH3sm/Ziw63/WwJWp69nS/7F5v/E9WvEkdpctthTbzzXuuTVBzwYLS18p0ezaxQBfKUe+dyct6Z/KCVaZYSeo8tb7qpX0NLy1u/8HOsb1mARs2+49jZ0uSGg7X73nUdfT3JbomvScHyGLK/GN6pnELb/zPc3Gx6jz09yWvFsXeu3PsBLlzFlduKNcjfyQW6EJZRl238sybWe7GnFNvGo4760prS5a9MT08wlAbszL9pkXdF+Zh5scmzdTRwznuou3NKd2T8VmipmTPmGJ8CG/8T9aocHkqltuKbOaZeyaZ1Xxiwak3y/TdbGKBcEEs8RNWnvkgy+3OKfnAMHRHr7S2Ztnd6eEjBlUmyRI1dssNY40P4Y3/eT4+TJ7qZScqbOZv7r02Rs0fzy/5oEzXc5eKAJXVi/6tQQpf9KOx/cX/9FMWbXrmx+nP+BXX/8qlRT+Ks6rzL/9a8itX7JalY2+R+5+3Vt5Wr9d/TCwQvu6M7yUOsMwSPWZLxhjjWm/yyvPxw+SpX3bCZTMn773WpObq+SUlZZq4hUQW9ItBCEiTHrI+t+Aq309XTX/EskZla/Z7sne2/vCRCElKjH7kobPL/+Ap3u9avr9nwzkPxVX+ob548rCevIrEiBUbx60w7t0b/7M2OkHnXl5hzz4ZuWabZbpaNy5xLa9Q9kZigaCUH46s/mGQ5d+ZGaYDnoL3Oit+GJYSZL2/SVf11CQMW//cqPXGtd74nzVhKfrv7EcbVheHbcuO+Y7OrVreNLtSh54jFuhLNRQSgGpcvdt4uvWk9dS8tvXpBx5YvXr1iy+++GJufn6w7h9JtPuEvva6J0pb+5/8q2+G+J/2lv9okRIiZ4+QRkT9dHyEWhx/4Zuz6FvY4munPG81p3f9aEo3T9x7Q8pNF1jWiyH+x9F8xiZljoyySJaohJUm2eyuvEv4qwBfuPIdTqeU+PCke7q6fySFpa4av3CepNY3drQEbuBwf1QkKXbCQCcCN8T/eLedF5VqkSyRGQ9HqMiZzyEDKWrRhHs2WCandf04Oi3ujt3Tbp19qXZviP9xtJQWSfMirRbJEnXdwxEqchxjEOJCmRZde3tWUqrvWiIu3XzznunTjUPXUXs0q7X/yb/6Zoj/cTRV2aTM6ASLZImauDJCtqoShu6FOrXDZZes/zDxga7uH0nDJqwae++dktpe3dFfvlLszLgHnotV95xfwRnifxwtRUXSnaYJFsliuuUfwlXkevfwJfxthpzwRZO+m2W1+o67mHTzzD0zphiPu6TwGEkyJc4ObHjoChAq6+g7y8cQ/+NocdqkzBizRbJEjVtpks1exnGHCxW2+Nrrn7eONtx+fnPvDWOD3aUOpKwXQ/yPo7neJmWOjLFIlqjElSbZ7E6GLgzshR9P+LeGQoX/09KxzyRfbJmPIf6nqeXfXVK66ZZoKdq07NZwuVxbKi/V0we+xgzJK47mZpuUOdJkuUKW6LiVJtns9ZzM8YVjECJkWYZNkqSwm2ddFbCmK/Kn4lx3SE/CAkv22rg5k7t+nDQ5cs22cSvO/163If7H2freSWluxPREKTFi/kNhOlm/N/9S/TL4Okq8arqM0T4XzBD/4+p8pViaE/adhCuUMOzB5Veq2P1iwSV4shi4oZAA5M3pyXhw09KpfRcd37o6N19SYkaGJSHhuoQEjR49VYVPr87tp3sIIamqofGEJLX+9nDhbwPWtTjufNshxW28NSn4p3s98T9d+5lydde7t0kjRkitpe0d0oA62jE0hc2KT5kV7x/b0+aWNC4sbPBlfnrif+Q5eMYtmZK7hmKYNUxye+wezeLblQgVnjNlkiKu7fUJWepdiYm5TmdZR6Pkl9BT5XFKmheVOsBH6In/UeOhJqeUaB3mXRNzTZjUWvcJhwwkKWqW+dZZZv/YHk+NpHHDoiRpePQ4qaj1TJUUkMxRZSwLpif+R82HGmuk0dauIRd1zQipteGTDs3iogIXyDQrfvqseP/YHk+9pHFhJsl96Ey9JLUWLigoDNjSVvXazCrJfPNha/CviPXE/3TtJy65a+iargmXWlsYuheos65cUnjajcMCVky4K8G6z2Uv72iQqb+EHsswq9TfbCY98T9qeL/ZLll9l4ux14yQ2k5/0qmZgY+OgQufNWrKrFH+sT1tjZLGDTfE84Rd3deke7a2Vil4kE9P/I/aDp1plGJ8f7vwa8IkdwvXLbgIYbPix86K94/tCX6XOpAyPz3xP8HvUlu5S4XPu69/vMzWJoX/09L+sn8GWNajJ/5H9ormQmlaXNcgtMaMkNpONXYqmdc+hLQRw8dJNndnkHvStjZJ48KG6YoBlwXTk7xyRefBM21SuO9kPswaJrnb7R7NGhF8WwwJDELgvIYlJvax5mSnU+p++yUhI3pFRrR/uk9nsaSUq/pM8emJ/5Er72yxNMn3LndC0jDJU1l1ThmB7UeAn65on2+MTZaKPy01Dkov57kCScnf6DPFpyf+54qKI+0F0vSkb3jXpCReKX1a7PxvTf/GF/cbIMBQSAAanWCRlH/seD81x4/lS4nzntr05NKlS2+/ferUqVNHj64pPEr3D4wM8T8+40f4fbxx4iyz2GNwmt+pk+Ft0AstM8T/+IRZ/d5IdVcOaLZlIESVv9cgQxPP+Rjif3zM1/gdMk575yV8evg6sb9XL0OzTrQ1QlLDJ4Hn2OZP2o1lvRjif3xir/E7ydfYuajApeR6t06GZp0LZYj/8Yn0H7r1lQzdL1Tnob+3/fImW86g03oM8T8+o67xe920c7l4qdW9W6fuZh1LZGK6JM9ZR6+6qrZGSf4zhRkY4n98Iv2vWxr52+GSahzYXer5ygzxPz4R3KUiiM53X7cts7UpIXbLP/bT1jPAMr9NeuJ/fCbE+L32FdYzCBHyhiebJLX3un/stHtk6JMYYFkvhuQVnxH+J/M2TuZDHoMQ6FNixM2TJXUGmXLG0VksyTi3VzAFB1tk6OnpxRD/45Oc5NfuU8y73NBn2Y+eHjP39KqCzwPX+Hf2pCRdKanY+d8BVRXOT2Xo6Qmy/+74H59JiX4tKAVVn13ML4DBGgoNQJp6XYak/Bef3nrcN9+Xao6/9vQDDzzwwFZDW5DzaGF3Qc3xraT/fE0lWSYU3jot8N9MyxRJkZZ9t04r7D/+J9lv4rDSdr+Ly+5AICCAZ+dHRzKOfLTT/w7HUVudI8k08qawQZUF8sb/3BdvXO3xv5s677u3wFdJ2Mhxklo/OhT4poB3ajCNG+4X/9N3YlBw3vifn5mNO6n7xO+xBtxLhK+t5l2nNt5YuGeX/7tIjrqjuZIixs/uOqlGzY4ZLdW8cNo/daP52AutxrJA3vifn5mN+UABXUR9Nw8B/XHv+mj3zIK3Aodu7Uc5kiKSZg+XZFp07cLD0wP/7UmKk5SedPvh6Qv7j/9Z6jdxWIv/0L3oHqMha5g5VVJb0fuB7815pwZT6vDYnjIdfTdwRjD/sl688T/3xhnXnv7E77GsXC5eqLZdxa/MPHpwV8A1/OmSHBnm/Aq7epwkd9H25oDNu/qEvhfZX/zP0lHGtS3+1y0x/O1wQTw7PzqUceREr9vPqhxJpjjDXepAygJ543/871JbuUtFL+++XrLMJiUkvP7jMbdcdJkfb/zPrDirYdmpRr/Xvu5AICB0DbtpZLjUluVyy/ipXlN9llsyRfnO0gMsC+RNXrkv3hjNEtDA0XffBoYKBiHQt6sSUyR5sne2Bqzo6uz5HxHet19cexxzby17dM85vyJn0879CjqDWBdv/M890cb3cCqr/HbSd/MQho5vjE2WpG2H/QeYt3FHWjKza4Cl3DBiulSQ3fqW34m688XsT6Ur77ihj64Sb/zP4jBjPlBAF1HfzUP4QgyJBiBNXfpgRqLkzH9x9QNdVr+Y65QyHuyaFszbI+TM7S5Y/WK+r/vH6arpc88YQgLjf5JiY6YYIn+q2tvVKxAI6ObN43FnVVTkdY0ZT17tR/Ptbsm0MiXeMrgyf4HxP2E3jTQZvkzp7QQK44NkhJTUm2MlOV8o/uv6lsauZZ7y9aW7cyVFfO+uSP/yzvoiSWEj+5pTw09g/E/M7OhEQ+RP4yce9QoEwhAUdc0ISTUv2N/O6zqdNufV7VnoqJFGP2z9Vvdgs0SOT5NU/8r9VXZvqIOj+W/3l5+UlBaTHHxMBsb/dHUR+d7A8qYHBQQCAQNkuiZcUn1WeYFv6Lrzat9aUFUvxa1MHT+g82RfAuN/TLNHxhkif9yftKlXIBAGbsItsZLsvy/ZtN7d0LWs89T6j1/aJyn8B3d1tV1NuCvBKmlfZf9l/gLjf2JvjLIaIn8aPmlXr0AgDFz4NWGSGrMqT/iu4dvyTh9cYG+UYlYmp/iOO/Pd1hhJOacOrjtd15UD5KlbV3zYr08oQGD8T/jskTGGyJ+2TzzqFQgEDFD37efHhtvPE77bzzG97lL7L/MXGP8T9C41grvUIc9e+LGvrcevTefCyvwFxv9YU6KmGSJ/7I3t6hUIBIQkS1RUuqS6ymUVbsfnkuRoql9W0iApfWSkZZBlfgKTV7oaOHwnc29wywhO5mAQAn2bvjhukqT9rkc3NBV0fe58rmCDY41/Z09C0jBJxX+o3Zjf1aLhym96dEl9sTTpofgfBo8JCoz/SZh19SRD5I+rqlO9AoEwNH1nvmm6pANNd27srPA297g6Vz3asLpYfsk9CcPumCTJs+RR91uurrLsR5u2SZo04nvBvywYGP/T1UXki/zxpgcFBALhi3bl5X4CX5KpS5986rqtm/fl+2LWEhMz7rx/6dTRPQVPPSj/9TPu/P401+bVuU6Hq0Y9lRiivPE/UwzxPyMi/y5SJ1y1O6xRd6n5L6WtAbODAX5mpUzM9JTkuOt+fqLOuDzdmrI4bNBlRt74n+cNX6y0RI1MlzununZJVLyaXVnugNnBgBAwK+mBhz2bXmh15pZvyvVbk/hw0vSANwUcHXWS0sL8Y4H64I3/2WCI/7GYrk2TM7e24K7I6WrJf6E1YHYwDFGzku6Y1/5KbuvJRz48aVyeZrltkbG/Yfi3nkw9s7D8ZFH9KwvrDcvj7tjsF/DTwxv/s8Gw1hI5Pk01ubV/uyvqW970IP/ZwYBBmGW9ObPtvZzW8pW2cuPy9KQZiy6uNccb/5NliP+xRCelV9XnVJfeHTVezSVZrQGzg2FwZo555B/aN/y+zb6vcsM+vzXWf0ia3fO+edwDz3X+8tGGXmXhM54bOzvo++be+J/nDPE/lsi0NJd93+lDd5lmy/3u79sCZgfD4MxKnpnpOZzjtq+0+QXCpVuvW2S4hreMuimr7eDKusYc++EcY6HJmjUpJejfzhv/k2WI/7FEJqarMcdVcXdUiprLstwBs4MBgzAr5ZuZng9z3DU/P+H31bd06wT/u9QBlRl543/871Lj0uXOqa5eEjVGzc4sd8DsYBiS3FvebpMkl+u237mCrE9PPnWbacBl/rzxPz8yNAxFR34/wVVoO/2XGaafevfpPzsYELJGxK2Z2Dm/pMFWVznf+G6iOXmLMTRlgGUG3uSV5w1rLVFR6WrLqa5fEhWn5vosd8DETBiqGIRA3xKjn1vb+ejjLcX769fsN75zGDZnraWnsydj1Jq5nWv2ew48bj9g3Hxy3CML+o3/WWuI/0mMuHlyffH+xpcXR/xQrXv/4AmYHQxDV8KIF5a3z87+tOBA02y/ERa27RFjcs83lj8SXbq8aVuxZ8lyj1/Zc34BPz288T9rDGsTht0xSQUHzmbPj1mucy9mfxowOxi+BFd8/nmv+d4wBBz/znWX+yl8xbTX/fSw40SkZd/1fjN8+XTs+ODD36r32o4dxfbfulolTUmwPDsp6LZD1NS3jvVfkHFkKF53ePIqKv5U57ZJktJN5vtSUmYFecN0gGXe2tplJ+yyTtkSHxawfG2FPcctyZRpTXk8fmh+DyL/hvzL/RQumV/kTbvcT+EyaHS05D9de7yoKyI1MS129pNJqb0/HsurWvtIg9ISH9hsPl8PkKfg/uI31LvSU7C+6o3cVkmJ8xLnrjrvfr6efjOrsP+C/5U35K4fmvOqXv9zfU2RJCktYvLPrLfOCtZC4Wj+247a93K7xuroeZbbVvXR/aOOv93/4Xuy3BPYHtTxt/V27x763fxr7l9mnef64StrUf6My/0U/Ljz7Ee31tV3XUtEpC5NnR506Bo5at9aUFWfnnR7dnywDJmO0uW2QvVe21G6rrwwp1VSXGbSjMeCbns57co42n/Bbw5N+XKeyQA1ONzvPnv6aFGb90drWuytT4yZ0Pu1z+HO6SkLt94ZdetdcUHKJKnz0N+XvKqER/4YFxuwfH3Vq/vaJFnvTFiwKu6r9l2GX8w+0X/Bnfk3fDnPZIDa8iqPba1r9F3DW5cmTwl6De9ortjucua4vRmHMenmiauTzX1kqFQstxXJ+t3sUeEBy9dVFuW4JcVkWq97bFTwucMun30ZRy73U7hANw3Vu9RThtvP0feljO3jLnUgZd7a6mUnKmS9vtddavXaigrfXeqEoXqXevB8d6mlj3y1Xpi+QJXVE/6tob8Cb2fPAMv8dP7lX0t+pd6JQZ1/eb3qV7Y2SdPSE9bfNvA8oa+V8RvO8wobWqYcGTItzHnltp/XKXNi+uPRQdY6muq3VbtyumaJDc+0Jj0erKNigGWS1F6/7IRL1omBnRnt9WsrvHvod/OvjxM3HO6/gEHYhUH4RTrvOAwhr/7X+Mv9FC4HZ+vLOxvf2+8pliRNmhy5+BejpvfK9XHln97w15Zi7zcRJ4fNuSd+RUZf+T3nXl5hz1Zc9sbohIDlG2qz93skTZob98gj0cFDW77ufvA/SvsvcL0a/+U8k68WV+eqDWe3FX8qSbpy+pyrX1hxVZC2Hldn9t6zqw94yzR9jumFFX10/+iz7EcbVst0KLA96LPsjc3ePfS7+ddZwg9qL+Oj0wA0RNEAhC8aDUD4KqABCBgUGoBw2dEAhEsu5BqA0C3kGoDQjQYgoB80AOGyowEIGBQagPBVQAMQMCg0AOGyu7wNQMy4BgAAAAAAAAAAAAAAAIQwGoAAAAAAAAAAAAAAAACAEEYDEAAAAAAAAAAAAAAAABDCaAACAAAAAAAAAAAAAAAAQhgNQAAAAAAAAAAAAAAAAEAIowEIAAAAAAAAAAAAAAAACGE0AAEAAAAAAAAAAAAAAAAhjAYgAAAAAAAAAAAAAAAAIITRAAQAAAAAAAAAAAAAAACEMBqAAAAAAAAAAAAAAAAAgBBGAxAAAAAAAAAAAAAAAAAQwmgAAgAAAAAAAAAAAAAAAEIYDUAAAAAAAAAAAAAAAABACKMBCAAAAAAAAAAAAAAAAAhhNAABAAAAAAAAAAAAAAAAIYwGIAAAAAAAAAAAAAAAACCE0QAEAAAAAAAAAAAAAAAAhDAagAAAAAAAAAAAAAAAAIAQRgMQAAAAAAAAAAAAAAAAEMJoAAIAAAAAAAAAAAAAAABCGA1AAAAAAAAAAAAAAAAAQAijAQgAAAAAAAAAAAAAAAAIYTQAAQAAAAAAAAAAAAAAACGMBiAAAAAAAAAAAAAAAAAghNEABAAAAAAAAAAAAAAAAIQwGoAAAAAAAAAAAAAAAACAEEYDEAAAAAAAAAAAAAAAABDCaAACAAAAAAAAAAAAAAAAQhgNQAAAAAAAAAAAAAAAAEAIowEIAAAAAAAAAAAAAAAACGE0AAEAAAAAAAAAAAAAAAAhjAYgAAAAAAAAAAAAAAAAIITRAAQAAAAAAAAAAAAAAACEMBqAAAAAAAAAAAAAAAAAgBBGAxAAAAAAAAAAAAAAAAAQwmgAAgAAAAAAAAAAAAAAAEIYDUAAAAAAAAAAAAAAAABACKMBCAAAAAAAAAAAAAAAAAhhV3z++eeX+zkAAAAAAAAAAAAAAAAAuEAkAAEAAAAAAAAAAAAAAAAhjAYgAAAAAAAAAAAAAAAAIITRAAQAAAAAAAAAAAAAAACEMBqAAAAAAAAAAAAAAAAAgBBGAxAAAAAAAAAAAAAAAAAQwmgAAgAAAAAAAAAAAAAAAEIYDUAAAAAAAAAAAAAAAABACKMBCAAAAAAAAAAAAAAAAAhhNAABAAAAAAAAAAAAAAAAIYwGIAAAAAAAAAAAAAAAACCEXXm5nwAuj7/ddt3lfgr4mvvW68f6L7jxSMaX80wwlL1/Q/7lfgqXzP/Om3a5nwK+/n47q7D/gpV5XD/gi5U16zzXD19Zi/JnXO6ngOB2ZRztv2D1+1O/nGeCwXrqxuP9F/y/HHdfVf//+Y67r6xvc5eKL94757tL/fiXaV/OM8GQNfbXRZf7KVxKU47MvNxPAV9zJ2443H8BgxBfgvOOwxDyzlupl/sp4Ovv298p77/A+e+jv5xngiEr8fs1l/HRSQACAAAAAAAAAAAAAAAAQhgNQAAAAAAAAAAAAAAAAEAIowEIAAAAAAAAAAAAAAAACGE0AAEAAAAAAAAAAAAAAAAhjAYgAAAAAAAAAAAAAAAAIITRAAQAAAAAAAAAAAAAAACEMBqAAAAAAAAAAAAAAAAAgBBGAxAAAAAAAAAAAAAAAAAQwmgAAgAAAAAAAAAAAAAAAEIYDUAAAAAAAAAAAAAAAABACKMBCAAAAAAAAAAAAAAAAAhhNAABAAAAAAAAAAAAAAAAIYwGIAAAAAAAAAAAAAAAACCE0QAEAAAAAAAAAAAAAAAAhDAagAAAAAAAAAAAAAAAAIAQRgMQAAAAAAAAAAAAAAAAEMJoAAIAAAAAAAAAAAAAAABCGA1AAAAAAAAAAAAAAAAAQAijAQgAAAAAAAAAAAAAAAAIYTQAAQAAAAAAAAAAAAAAACGMBiAAAAAAAAAAAAAAAAAghNEABAAAAAAAAAAAAAAAAIQwGoAAAAAAAAAAAAAAAACAEEYDEAAAAAAAAAAAAAAAABDCaAACAAAAAAAAAAAAAAAAQhgNQAAAAAAAAAAAAAAAAEAIowEIAAAAAAAAAAAAAAAACGE0AAEAAAAAAAAAAAAAAAAhjAYgAAAAAAAAAAAAAAAAIITRAAQAAAAAAAAAAAAAAACEMBqAAAAAAAAAAAAAAAAAgBBGAxAAAAAAAAAAAAAAAAAQwmgAAgAAAAAAAAAAAAAAALcxoy0AACAASURBVEIYDUAAAAAAAAAAAAAAAABACKMBCAAAAAAAAAAAAAAAAAhhNAABAAAAAAAAAAAAAAAAIYwGIAAAAAAAAAAAAAAAACCE0QAEAAAAAAAAAAAAAAAAhDAagAAAAAAAAAAAAAAAAIAQRgMQAAAAAAAAAAAAAAAAEMKuvNxPALhcmp99o3xPkOVxG7+XdFP3T23Nz35YvqdJUsSUCfG/uiYqyb/64EeFK1otr0w3BywHgnM0l6+prrW5JUmm+JVjxiyOCruwMkdz+ZqSWpskk2nlmHG9ChrXHikus07bEh9k/0CocLT859O1J4pavT8lzkuceZc5xXJBZY6W/3y6/ESRpIjEh+PnLIqM8V9fsf743rLE+zabA5ZjqHM0v/l0rc03uhLmWTLuMicHGYTGsoj0h+OvXxQVHaSm3FYkKSLh4fi/61VQub4wt8xy72Zz4IbABXA0FzxVXW7rGpOpK8dMXBRlOs8mtW8tqKpPT7o9O96v0tFc8FRpuU1SRNzKMTN67ce1ruC9sl5b4YI53PufqT3mO+1Y7ky85W7zOMvn/kXu/bPLjwXZOPauQ0nj5Ct2uPc/U36sSFKE5eH4eQsjR8pvP2Xr/rajPHHFJnPAclwgR/MHT1VX+I67lJVjJi6KujqwqPmDmaUVQTY233TYOtpvV6UVNkkRsSvHzOi1n5p1BQfLkuZkx/faPzB4jubSNdUu3+1nwsoxlsVRI85TpshM6zVL4kcGXnI3l64pcdkkmSJXjpnYaz9n1h4pKrPO2BIfZP8YwuwfN2QfatnpbJMkhV83LfKhjNhvB96YnX3iN/adQbaO+dMvxny7+6fGs0+8Yt/plBR+3ffMv51xtdW/+p0DJ+87PfrNn8QGLAdCQVN1RklD5sT0x4PeMrbXr61oznF3HUiZ1lFL4k2WKy6kzNFUvaakwSbJFL5yTNLiqGHyK3Cvza8ss07cEh+wHEMAgxC4YOfyf1f/f171nPT+NDls7pK4R2+4yr+m/bnv1uwPsq1p3ZtxGd0/OdufW1ez/6SksMn/M/qX80ck+lfn/67iscrY7b+PDFiOIa/jsR80bQ+yPPyvr5pu7WeTOdGO/zU8cI2r47HnmrYXS7ry+vuvfuGHw5P917/9L7X3VJoObghPDtwSX4aQaACqee3p1bnOfksS5z315O2j+y35MnmfccaDm5ZO7bXu+NYHXsz/ij3fIamt89T5i5qffb98T7Tlle+Zk9rqfvJ++R2tqcevjTLspG6zUwum0f2DAfHkVRT+vM6wwF2bVVL7hnnSlpSYQZc1l88vqU23TsuPD3PUFs0vKaycOOtxw+B01DpzFP883T8IZY66f13oNL7+O3Ode3ObvrN7/HWWwZa1/OfC8hNpife9b45x1P3rwvI/2VMfXRVp3MnhXE3ZQPcP/Dnqdi10uAwLXLmO3NzGb++eMM0wCJvyql56pN5Q1Wp7odz2Zty8zUnJPQub31xYbkuz3Pu+OdpRt2th+Uv21J+vMp636/Jzlb6B7h9cAu48+2srjdcSreVZpeVvmG/Otib0uVFH6VNV9UGWNxcsKC1PT7r9cLzJUfvWgtLXKscvfMzvkuOjHKVm0f1ziTjqty5yOowL9jl37Gv6u13jM4w9QI6O0+ffl3v/ovJjaYkrDplHOuq2LirfWJH65GOGP5Sj/t19um4D3T+Xxtk8+wH/464iq7TiDfNN2Va/O3+Hp+X8O2v+YEFpRXrSnMPxVztq315QeqBy/IJex11KFt0/uATa8yqO+t9+urJKXG+Y07akjDTWOWqPz7cbR29Ljr0o58y4vdeO6bkoai6dX+JKt87Ijx/hqD0+v+Ro5cRb/O9SP8lRwvN0/8DPOwcq7itsMyxoO1bYdl9hyxN/n3Kv8fassWMA7+OdfeKP9p2Jo9/8Ray1sWHhH+3fbbCWzTGcLBsb/lCoxQvp/kFIcq8taehzZVN1ht/athx7ZU5bcn6Kya89YiBlTdXzSxrSrRPz44c5aj+eX1JS6d/t4ag5naPY52m8GIoYhMAFcrY/9xP/zp6Tnv2/cFT8YPQf/tFwaew8F+y7IgHan/tJzf7JsdvfjEx0tjz0k5q77aP/y28nLf/nVc39Dd0/6MX1WfEgt3j7X4I2DEnqeGxZ0/ZJpoOvhie72n64rOmmT/ybhFxtzx/Q3U/R/XPZhEQDEPAFaPeckJTo39Djr+qT2j3SghRzkqRw8/2JjhXO2u3WqLvDuwoO2h0noi2/iv1SnjBCnaO2zPu+arp10pr4GIskT+PaiuKcuuJl4T05PQMr8+ysrpXi74sPk2SJT8y0F+dUu5ZEJfjee23cZnenW8fN+pJ/SeAS8hx72umUlJY4/0lzikVytBx7uvytota3nq5L6cnpGVBZ467aE9KUn5ljJFnMM+c59+bWHrsrsrtDqGKH05mWOIdDBn46Cp92uCSlWeY9aU62SI7mwqfL3ylqfefpupTunB5H3X94u3+6y9RRud6em1ufe39Yd5xP065am5T+M3O0JIs5Y54jN7e28K6o7kaiyh0OV5rl7xiEuHiO2qPeLoT0pJtXxydYJHW41pW/l1P33vKwvnJ63LvKC21Bl1eXS6lL402SLPHXZla9l1NdenfUeN/QdW2vqk9PmsHQvTQ68p9xOiSlJd71z+Zxls/lcOc/U/4fRa3/8UzdeGNOj8PjkHSnf0NPl66aM7trj0nX/cw8Up/LEnfLnc4d+2rz747sbiQq2+50pCXOm/ll/GJff4bj7qbV8aMtkjpq1pUfzKk7uDzML6enytMgKdO/ocff2V3VFVLK0vir1XXcHcypLrs7apzvuKvZXtXAcYdLwlFb4rv9TFvjjfPxnFlbUZRTV7Qs3JDT46leY28xljmaq9eUlNncZWtqY3xl7TurXVLCffEjJFnir8m0F+VUVy+J6u4QOrPN3pJuncjQhdHH1fcVtknhixcmPjt2mCQ1nn3pFfuzzrZn/1idYoz2OdNxTNI0/4Yef/ajdTulxbNjrZJiYh+aVnNfYd1LGVd3NxK9k19zLHH0b8d+kb8R8IVod689UZnT5+qutox0a/KaeJPlCjma6teUuGx1lcvCjREpAynr3FndIMXeFz9MV8gyelSmvTKnun5JVJwvoMW9zd6Wbk3iZD7kMAiBC3Zuz7qa/ZImm9Y9FpeRKOlc/t76x/4/z8lXm/YsGrGgu1XH2XlS0g/8G3r8Ofc27ZfmLolMlJQY+ZMfNDzmv5P8XQ0nJ8f+8oYv9DdCaHJ+9oGkoHE+QXz29r/U33Mg+LrKl89ul+7+cXiypITwn89x33Pg7JYFw5f5vnf49h73B5NML0y/JM8bF+L/udxPYCBG3/7kJoMHMyQlznvKuIw4HQzSwdP1kqZE9BePYm9tlSJSfC+11ogIqbWi3be6oWqF09ceBJxP4za7W1K6ddoWb1uPpLCYx6+dlCnZ7NV5gytrr3RLphG+wTci2SS526t8D5ZXUZzjaw8CQpTDXVIkKXb+Zt9kXpbI6zanTpFU1FThGFxZk71ViojzHTLR1giptb7nkKnam+trDwK6OVpOFUmKm7fZN+eXJWra5tR0SUWN3aOrckdXk9C93WUanrxqwrx5UpHjA9952zsIR/oPwjOGQZib62sPAi6Oa3tVvaT0pNuz432dwcMTHrv25kzJVlWSF2wbR+3RrNageztb2SpFdE+Ce3VyhNTa3DN07e/l+NqDcPEc7pNFkmLv2uSb88tiytiUep2koqZSQy5Q2TsNkiwpw/rZ2ZmKVinC7PvcfWRKhNRa172Tw44d+3ztQbhoNdurGiSlJ83J9nb/SBo++rFrb+p13NW8WycpNrm/6/TzHncHc3ztQcDFObOtq61nxpbuybzCRj5+bVqmZLM7uoeuo/m0TZI5rbvMEjVmy8QESbYzjb4Ti/cuNcL/LrXVcJdalONrDwK6dL50qFHS4oUpXd0/kmKuvvcn1sWS1Pj6xz2l75Q2Sroutr/XvsqGNil8nC+9Kjk2XGorO+Nb/XH1fYW+9iAgdHTm1VQv66/xwpuGIpmTt/jmUbJEx22ZGCvJdqbFMbiyjkq3ZBrmO5kPTzZJ7s6ek3l5ZY6vMwNDBoMQuChHmjeelGRa93tv94+kqzLmJ2z/n2GSZ+Ou7k8clX/QLWmytb/kDofdI4Ul+9p9LNYwyVPZnY1/pP6xV33tQYC/t/PaJF1/zfmjYSoL2h57pM/uH0kVn3wqXTneN85SrrlS+rS0exwWuO854GsPwmUSEg1AwCXXYW+VFPF3cQPpcwy+h+0V9Yq2/JT4HwyIx1MmKUhTTsy3zZJq32keTNl5Hsv1pzqlW8fwNQiEtCqPU9K8qBS/pcPi0uTXuzPAsv54jv25QWmJfI0egao8LknzIpP9loaNTJOhd6ejsUxSkN6d5JvjJNneG8h5u6Pwz/VKs1zPIMQl0HG2TFKQppyEW8ySyt/tPSa7Jv9KXZkUN8jHKt1ap/Qkshwuma5cn6hxfk05w8xp8uvdUUdDuaSIyTdecLN3R/6fG5SWeCPxP5dG13HXuyln9C1mSRU9x523MiJp9oXfh5Zx3OGS6br97N2UM/LbZkmu7tvPqrYWSZkj/SYF0/CIdPm1+PT7WNV/qlO61cLQhZ/OMqekmNsCI3muvm2aJJ0609ldWXFaUvj3x/XXANT/Y710qFGJo5cT/4OQ0rnzw5Kf2xtsCs+cOPF5c/Cag2faJGWO9J9oKTpupUlyNx/0DKqsX+31f6pTujWOk/lQwiAELs65Pdvckub+Ji7Df0Xi/IT/ejPFEPZzrqpSUtitM6+6qMeaHPtj4n8QxGcfV0q68o4bvtF/XeXLDTetdm8v1vVzog8+Fd5/cdAH2vKvbZpkepD4n8vqazgFWM3x1/59X26+t9EsMTHjzvuXTh3du+Kow+n0NaP5V9W89vTqXGfGg5u+r62bX8x3SkrMePDJpVOlmte2bs71Lem1X4QQT0WTFB1jba979kPHniZJmhIdd/83k27q+2xmbzV8Mbrh9G+btGAa8T8YlJ7Mnh5J4SbJXebxKCpscGU92ivdPT/kuSptin+e+B+EuKSwRMmZ21yxKtLQ3NNZXyRjls9Ay/w12Q3n87y6t4o0ZQPxP+glKSxBcuW2VK6KSu5Z6jlTJGOWj9T7R8PmZZ1NUu9cH/9BePqdIqVvIP4Hl1BPdkiPpLA4qb7M41aUsTfItc5WaJMyx0+f7Xkr6zz7PVtpHLo1hTalZhH/c+lYwiySY19z2WORhh6gzroiGbN8upakRcc66vY/4zxWJEmWtNhb/jlpnKXPOJ8zFYa/3eG6/yjSdRuI/7m0gh93sVJDmeesoq6WJE+zTUofeXVV7QdPVVXYJCk23XztautoS69tfQKOu+M2pWQR/4NLqCezp0dSeKTUUuZpV9SI7h9zzpx5PMrQA9TRautjc0m97lLLbEp4nvgfBLj62V9MfnZAlZ1lTikxMuVMwxOv1Ox0StJ1iTEP3THm233fyFU2tPX88HH9s04tXkj8D0JQujnhvoS4WSOUdybo+o5Kt6TYbwfOLjrMGia52yo7pBEDLwu68y55LpdNsc+TvDL0MAiBC/dp5UlJppvP35TzaeVJaXJEkrPluXUN+09K0uTJpp881p0bFITDbuicO9K88aTm/ob4HwT1aWmxNGnEWGfbY8+5txdL0vWTwn/+qOnWhF61k8LX/Dh82fRvqKCz17ogKj75v+zde3yU5YH+/8tvWxIScoAk5jATczCchLjhGEBa18W2KC0mCwUq1lpEXFpbTLtr7NbKQfyVeEK2tqyISLtigUKTpUXxQF0tGhIOiSQcQmKSITMkIecMk0xQX/z+mEwyMzmQABqHfN4v/5nnuefJ8PK5J88zc+W6P+18cLhl1SktXk39zwC71hqAqt5Ys3KjM/0jyWLJ2bhyzZb8riM60j8do96ocjvU0S0rNzoPZMnZuCW/6o01K7NctmzyeAK8SMuF05IazQ/ltad/JB1rrH3ow7y1dZ2jPNf8kpwrglH/gwHmueaX5IwNUf+Da4UxYPR4SXW7l9W0r7Vkbj66rPSYpJTwicb+DfNc80tyxoOo/0HPjIGjxkuqzVpWU95+djXlLSstkJQSPqHnb2q75bnml+SMDVH/gwGVbfpHppQYfUe654ewDp5rD0nOlAP1P58DY8C48ZLqXnuwpsR8nSSZrTkPlh6VNDc8uSPcY247J6nQ8tov2tM/ksyFda8tzP/bwc7PwT3X/JKcKSLqfwaO2d4sqaDiQFp7+kdSXUHNgfmHj7gsE9bLvKP+BwPDGHR9oqSawqXV9c6LorNLiyolpUZFOS+KPNf8kpzxIOp/0F/n386TW99PQ9tpSZaq+3e2p38kHbU03P/fxx9zWSbMc80vybkiGPU/8FZDFt2UuDk+dHov+cnWthK5rpfUKdrPT1KJ/YIu9nlYl+WW1PEsmlcGKU5C4IpYPimTNG6IUbLk1v7kZ2X/PKvsn2eV/fPPanflftLNyON16b9sT/9IOn7cmn5v2TO5naM81/ySnCuCUf+DXlV+dkrSKesPVranfyQdOdXyg6XV6YfdBsbeFWJ+NmDp5N6KgjzX/JKcK4JR//NlcW01AOVvWZllkSF5+bI7kyIiJKkqf8umjTk5G7dMfHFJkiTlv55lkQwpy5fd0dH4k79l5cYcWQ7lVd1xR0enT05OTvLy1UuSItr352xcKUPK8tV3JEWo6o0tK7NyPJ7QVc7GB3M+z38uLl+r/Zgk6WZD/JNjg6IltbRtM5metth25Z2OmzFqsZ8kRd8QPv906a6ymh+GhEW31GyySIbwxX7U/+Ay+PomSAXW8lebIh91+4Kt4VWTtd/D5LsoKnx9UfXL1VHTw33N1ZZMKTUq0kj9D64lvhM3jRn+VMXuLMvuBZ3XkoaU+NmPBPZ32PCF4TdvKD32Ss2U6WHDzTUHs5zxIOp/0BufCZtuGv6UKSvLnLWg8yv0yJT4bz/S8RbtMzxBKrS991rThEfc3rfLXzNXujwMXhieuKG04JWaSdPDgs01OVnOFBH1P7jKfIYlSAW2vG1NI90zPZXbKmo9BzcdTquR/Ces7LHFJ2BhVPz64tIt1aOnhweYq09mSqlRI43U/3xOfJJfHBOSUfHaHstrCzt/qRnnxqekB6qjrcexUphz+whdlLktZ1vFm3tsR39RHLZjpCMqNGJB+MQNpUdfqZkxLWyEueb9Pc4UEfU/V1/7vMvf1pTgPu+qtlXUuT6usDsehqSOnJIeNEySua1kW2l+pq0s7WTQrrEJRkkatjAqbn1x2Zbq0dPDhznnXYKR+h9cde23nyWvNkW5337Wv2pqdh8Ztflm33VlhZmmwnmmjq2BqaNHuzxx6KKoyPVFlS9XG6eHDzVXn8l0xoOo/0E/mQ7VbJc0Iey+jvu0+rajkqSJE2Kenj0sRlLDha05lrV5Ldt3liX8W5xjZMyUsEXvmLZ/UPfAjSExDXW/y3MehPofoM+GLIoKWV9U93J16PTwIebqc5lSalSo8TqaV/CF4STENSn7ucoX9rq09Ry3vvBL67s/Nv5unnPBL8sFR+xn3JyI//z5UIMkyye7dtS+sNf+t19Wxv4xcr5Bkgzzgr/z+6q/vdr8/amBBkvzH/dKc4LnG6j/waVYPjsiSZo0O3jDT31iJVV+tnlX46p9n25bWTdyc8jSrj1APYu9a9jiTY3b/tSyfLJfbGXL8/uk2cOWRlL/8yVyTTUA5R/NkQwpy5a0p38kRSQteXx5spRztL0EKGnJiy+++OLjd7is3hWRdGdKN2+Jycvbl/iKSJqYLEmGFGdoKOKOicmSLJVUAHmpClurJBni/zjWWdPu57N47KgXDJJsb9a2OQcGPTYjfr7M330nL+nDhlGj4v86Nsi9/qdt28nTSe/kJb2Td+/Jmj4tfI/Bavg9MQGSMosK1zU5L/TsDetOnsqUJBW0tPZnmBQUv3t0uEx5ybnZ8+r90kZPeDTIvf7HXrnuZHZybnZybuG66r4soQx86ZitxSU2j22WkqZG82UMC/zWzvibZXl5Rv4zCxpDVsTf/0ige/2P/ehTxc/MyH9mRv6fnqppuOr/Fngpc/PHXc6uypJm17Mr9m5jpKSs0h1PNTlbBdvKnzqdlSVJKrQ7NwbN2hmfKPPWGXnPL2gIXRF/3yNB7vU/bXlPnX5+Rt7zM/J2PFXTKOAyRS6ODpWUWfz3jCZneritMuPkP9qvJeznnSMrM4pLpdC0+JG9NVoFTd41Ml4Vb0w7vHN+fWDayDvSg9zrf9qKM07unHZ457TDf8+otvZyJPSF2Xqq1PNtx1zaVO/ytlN/xi5Jc+OXpAe0h3iMPsnpCXfPlWQ7/mHHdV/Ad3bET5TlhVvy1yxsvH5F/EPpge71P205GSVrbvlozS0fbcmoredj9CsQsTg6RFJm8bsZTc4p1laVcfKA+7w7f6ZFklJH3uZI/0gy+iSkj52ZKslW8UHnfeikXSPjVLFv2uFd8+sD00bOTg9yr/9pK8k4uWva4V3TDr+bUd0xqYH+GnFPTKCkzKL8dU3OO017/bqThZ63n5K5qa7E8z2+uaS+1e2SO2jk7tGRMh1Kzn1/Xr1/2ugpjwa51//Yz647+X5y7vvJufnrqlsFdOfjs7PeaZH8HkvujDua6tskaULMTkf6R9LwIffNjnt5gqSW10s61iYYtvbfYhapatZvjif8d/Oo22P2zx7mXv9zYeu+soTfHE/4zfEF++pMAgaBgpa2Sw9yHRYctXt0iExFybkF8+qHpjmynq7NK621604UJOcUJOd8vK7qAplyXBInIQYzR6zneN0Le+3j5kRs2x/3f/vj/m+/MWOOr6Tjv6/d5fzbH0vFJ5I0J+J3jvSPJMPX5v88MmOOJPu7Bzvqgob++x8jvqO6xbPK/vleW9yPI7b9fKh7/c8nu56rdPQM/eS5ZreKFgxi5ZYLkjQ7+H8d6R9JkV9Z+tOQ/5kt6dO/5n7Wz+P5ZGwOXizrzDnVxqWtY5YFH/ipj3v9z2ebf1tnnFNtnFN9129byq/ivwR9cy01AFVVmiVZslY+mNV1p7mySi6hH1VVVVVVVany6NFKsznH0vU90BDpEhGKNEgWY2QvbT/dSV7eXjvkJn/LgxspBhpg0TeMyr+hm+0zrw+VpfbYueaKG5ztPn5Bj02e8JjroM76n7Zth0883Rj6woxRM9W09sPS79r018nUAqEHxvCEtPq89VZrZlFeZufm8LSYlvUma6Lf0H4Nk2QMit88Nd71R2R31P/YK5ceKy8IG7N77HA1lc4ryivRhM3UAsGrmGv+tMBicXb5DJcke9lTFbuz6nYvsP/LzpHty3v1cZgkY+C3NiV9y/VHdNb/2I8uO/X3wpB5O0fGqfmtBaUvl+j+TdQCDXrmmh0LzJXOyp9gSWorf8qUlVWbtaD11p2j2lcBM4Z9e0XD1g22yqzSrS7XoIkrjLUbzJXjfTurfYxBszZNmOX6Izrrf9rylp14rzA0ZeeoWDXtX1C6tUT3baIWCJfFGD4lrf6N9bbazOI3XK4l4tOim9dX1Cb6Or5Ms+446Vj8a8pCn0sdMGjyS5Pduns763/aih8oyCsI+/qusZFqOjy/+I0S3fEStUCXy1y7ZaHF7Frto7aSjIrX9tS9ttD+7c5qn4THF3Tz7IRbQ7SnzrzfWr/A1xkMCvjOi//0nc4hrvU/9pwHT71ZGHL3jpEJav7bwtIXSvXQi9QCXS5j+JS0+n3rbXWZxftc5l1cWnTz+oo657wbtnDs/IXdPDviG2HKrKl7p/H8Qme7jzFo0kuTJ7kO6qz/aSt5oCC/IGzmrrERajoyv3hfiWa/RC0QLosxfHRa/aH11ubMokMup25kWoxtvam54/bTXJ0/z9TsrPwZKkn2+nVlhZk1hfPsCbvHRnVecgeN3Dx1pOuP6Kz/sZ9deqykIGz87rEj1FQ8r+hQiaZsphYI7j4+u2Bng+S3aEHcfS73YzFT4kqmdDP81pHDlddw9KTVNMXZ7jN82Np7x611O2ZH/c+FrX8sXmsZ/vK/xd2q84/9t2nWOe2/l1ogXOsS/S51ud9lmDE4anNylOvezuYVe+3SY5UFYbG7xwao6ey8oqISjd5MIwt6xUkISONcy370teSfR2aoLH2v/YUdrfN/PlSSYV7k/83r5onJMwO013r8vVbLvK85g0FD//2/4v7ddVBn/c8nu35mfuF4QMYfI5PV+sy9VYvLte2/qAWCYu8KMd/VzfbbpvtpX8uR99vK7+pnbU+kT8az4RmuWzrrfz7b/IvaVaf8/mdzyG1qS1/aOLNcB56lFugLdS01AFVV9hJl7GzrqXpjy5oHH1y5cuXGjRs3ZuXkdJf+kdTvuA+uBUN9b5bUaO/5b4Bc6n9amt9slAyBM/0kv6AfjvJXo/kPdT0+E/BdNHbC8zHhie0PAxLDxuyeGj/zMod14VL/Y26qK5BSRww3SsagqLQAFZjOZl/FfwrwuSt7zWKRDCvGfL891iPJN+6RkfNSJNn+/lpzv4Z1x6X+x2wtKpRSguKMkjFwygp/FVoOMWUGPccaXpErblrYnv6R5BP7yKiUFEm2915r6hgZvHDUfc8aE8e3P4wcH5qyc8KsWy75E1zqf8zNpwullMBYo2QMmrTCX4XmI5yEuFwBC8fesT463nktEZoY9vVdkye7npPm6kPrbb0v/tUzl/ofc2NFgZQaHGmUjEGj0/xVUFHEqXu5SrZZzJJxxZjOah/5JDirfd7c1ssvNUmS0dcoqdBe3+MIl/ofs/V4oTQ3KMF4UcaAGSv8VWj58OBV+7cMQsMWjp29PjrOOe9CEsNm7po86dK/CyRJ0b4hcivo6sKl/sc57yKYd7gahi4aO+X5mEjnqRuYGDZ+99SR7refjhXBAtNuTmpP/0jyHfHo2PGpkqwljVn1LwAAIABJREFUrzapRy71P+amcwVS6ogRRskYZEwLUIHJzKkLF6ZDZQk7G47K77F/i1t7Y9+eM8JnoiRLW3mPI1zqfxqsr1ukCYG3DpeGD3vgdj9Zql76+Kq8duDa5tK8Ym5qKpBSRwQYr5MxODQtQAWmWt7M8bnjJITXMgwZJ0m+t037msee5IUh4ySVf3KJkh7HEY5fMPc4wqX+x9L67nFpjn+yQTIM/f6PfXW87k+5V/ZPwLXN8JVJkk59VnalB3Kp/6ls++spafaQ2yKlSJ/ly76qU9aNh6/Ci0XfXUsNQI6enu5rdzrkb1mZlSPJkJxsjIycGBmpiIgk5a1ZmUURGpyCfXv865/O+h9V1DYck272by9VifYfKtlO29oU0qdEOwYn3+nh8dPD3Wt7WqySEnx9+z/MTXZH/Y/sB+qtUkBs+6noG+MrWVtMdk2nAwjewt5QIsl/9C2eJ23c3QZDlsVS0tYgDe/rsO501v+o4YNGi2SIGeLYM/wGX8lWd4YpM8i1Oc6uUbd4/lqPvdsYmWWuLLnQKHU09ARPD5s1Pcy93cdeKSlhSI8tPp31P2r8oKFSioxpP+WCbxgq2WrPtGk6FxW4TAHTwydPD3ev7bHXSkrwDZCsH9TXSpItb/7hPI9nFlS8Ma1CCvv6wZjul//urP9pP05obPupG3CDn2Rr5tS9TG11pZL8x83wlXsNT8Jig3GPxVzaVq/ASzf0jPcd0dOuzvqfi/UfNpolY1z7774RN/hKtnNn7JrG/7vLN2x6+KTp4e61PfY6SQm+farnSex5WGf9j85/UF8nhTjn3TDmHa7Y0OnhI6eHu9f2tDRLSvB1lP3YSyQFXD/T89p4xD0xgZmm5hJ7q4K6L/LprP9R64H6ZinQeZc6NMZXstq4S4XTe/vK7s9rkfwe+ze37p8+MTgXMuiqs/5HppLmo9LEkPbffTEjfKSW0/UXdOOQy3/dwMAb6pMgFVgvVEgeC/tWtLRISvAdouv6PKw7nc0r1104UN8i+TnfzIfE+ErWVpNd0yl0G8w4CYFL+lp0TyU8xy+YpUs39Iwb0uPi7Z31P7IctB2XxsW0f/VviP6aZC+r+ERTPeNHgJsxX4m7wiN01v+oPLf1iDTphvbzMNYwRPr0lOUzTf7Klb5O9Nm11AAUEWmUlHM0v5cx+UdzJEPK6hcfX7JkyR13JCUlJUVEVOUdIv0zqLRtO5yX9E7e2q5tPa32Y5L8h/SwjJdL/Y/TKH+3j1mP2exX85ViEGh4r0YuYZ3LHeZS/+PkF+P2Qaq1vE+rLQODg0v9j1PIDW5TxmK68EW/KFxbyv9RK5dMTxcu9T9OoTe4vclXmriowNVU+X6NXMI6l8ul/scp0P3UrS3n1P1cteU8+NGaWz7628EuH46b7WZJ8T49hIRc6n+crnf/3Wcu43ffVVb1fo06wzptJQ8c3jXtcDcFbxW954Rc6n+cPOZdHfMOV1X9ezVyCetcLpf6Hyd/90ujZu5SIUkX3tt3/P68FhmGv/zLbtM/F7b+8XjCb44/1rWtp77tqKTrfXr4Qz6X+h+nUSPc4j5H6/jdB6/nExsgqbXL/eMFk10uOYk+DuvCpXnFaaj7m3kLb+aDHich0CPD0NvGSfqkouu30JYLx9WR7Plk18/K/nlW2TNd23ocw2K/1kNIyKX+xyku2i3uc9z06WW/fFwrPtv8i2rjnOr0rjU8ls+OSIr9SuwVHr+j/sdpjMEt7nPkDOfhF+paCgApaWKypJyNa7bkO9f7UlX+G2sefPDBB7e4xIIsh/I6BlTlb6H9Z9DxifGXpF3nPHqq27aV1Uqaf31Q989z1P/EhbnGg07b3C4uOwqBAA/27Sezk3MLt7vf4ZirLZmSAkKcf0zZx2GesivLCxR+f7jr7hb3u6lLZoyALxPf4QmSbEUfeH4o4FjzSwk+w/sxrAtH/c+Pwlz31p1xO0hHIRAGKx/H2XX6A89PkRxLg3VU+zTuOP38jLwdO9yHmWtystRtgVA7R/3Pj8Jc+4Fqz7gdpOfwENAb646TO6cd/rvnOVl9MlOSf/QtPpICFo5dcHCy53+7okMlJUbfcXDygt7rf5a4LRzW7H7qXnHGaNDyCYmXZDv+oecvNcfSYM5kj2OYjr7nsSJYW84rdZIm3hrY/eEd9T8/CnONB51z/93XUQiE/jq/4+SuaYff7XXeST7DEiSp7H3P+9CSLTWS4r7Rw32oo/5nSbhrPMhj3oUw73BZWreffD85N7/L7eeZTLlU/vj6Jkiynjvg+e7kWBrMWRTUhaP+5/5w170297vUK84Y4Vrw3r7i+/MkQ8T+e6Nu7X7IkLjrJWl7scdKiRe2ftAgadHIHvKTjvqfW0Jc40Gn690SPx2FQID3GjJzhJ/Usr7S6pYCb6xdb5UCgpyfJfZxmCdH88r94a7VLB4Bjp5zGxgsOAmBnn0tOlaS/YUdrR47cg5YJY27daihc5j+dsBj2Ce7XrVK+s7MHjquHPU/9wS6xoPKKj5xHdJRCIRB7Cs3xkrStmyPD7o/2/ynFkmLr7BR2FH/832/WJdtpyyfuQ7pKATCF+OaCgApacnyZINkydm48sF2KzdmWaTk5e3LgjkyQpasjgErN+Y40z+Wyqoej4xry8wY482SLKX3nmyqcGxqaVp7+MTTjfIo+HHhWf8THTr8ZpfKnwpbq7oUAgEdfGN8JVnXl5Vmt58z9uzqwnkmqxSQFhdp7N8wd571P74zRwS4VP7YHX9FwRfJ8CpxXw+RZNlw6k9PNTe0b7OXPVW8O0uS/7/cHdivYe4863+G3xJscKn8aThjV5dCIAxCsV8PlVS54cSOp5oa27e1lT91OitLkv+td7d/TRt8w1BJlRtM+513UI3ZNTsWmCulyBUxE7p/3/as/wm+ZXikS+VP45lWdSkEAvoo4AY/SbXrSw87z0lrdvXf51fUSqFp8SN77IzuC8/6n4BbRoS6VP5Yz7SoSzEJ+i7h1hBJ5g2ntmRY69s/3W4rySh5bY8k/28vbv+llrDYYJS0p7RzmNn6twdPvVkoj4IfF571PyNmBBtdKn/qz9jVpRAIfTfsBj9JdetLjzjn3fns6nfnV9RJIWnxCc55F7E4OkRSZvG7GU3tX2Kbm448UJBfII+CHxee9T/DbhkR4lL5c555hyvg+Ov55vVlxc7bz9bs6vx5pmYpMC0uynnqjrg1TFLz+mP565qc30jY69edLMyUFJBwT7fZNc/6n6EzRwS6VP44vrfz5y510DMdKnOmf0J6aPGRpFuTIyZKyjMt2Hfe5NjUcP6xPxavtcij4MeFZ/1PTELgRJfKH1N9m7oUAgFeyRgUlCippnxpmdV8UZLMjbVLi+okJY4INPZzmBvP5pX2AIfzzdxR3DKUN3NwEgI9S14YMk7S3qqfPNfs/D76k5znKtP3SvK9bdrXugxrbR9laX3mZ+YXjsuj4MeFZ/2PYZr/OJfKH0vFJ+pSCITB6bb5AZMk7Wu867dt5Y5NlW3pv6hddUoezT3951n/Ezt16CSXyp9yywV1KQTC5+1ay1slLXl89cQtm/bkWNrfIA2G5LnLliRFdA5YvVzu+6fMvXNC5aaVWRZzZZU6R+Ja5hf25KiG7562HbOUftet/yn0hZvCul//y1H/M8Flr1/gt4N1zFK9LSZosZr+cNrWc3gIkKbHjUm1n8q0Vj98rNp1e2JMwiLffg9zlV1ZXqDw513qf4xBIYmyZp6tvCcoUk1n11s9VgcDvMD06PtX2F/eYLNklb6c5bbHsCJ6orGfw1w56n+edan/MQaMHi9LVvXRuwMnqvnQBpvH6mAYpKZH37eidesGW2VW6Vb3s8st2TM9OiWlNSvLVvCLEwWug8Ybv72w1/qfZ13qf4yBo8arMqs67+6gCWo6ssHmsToY0A/TY76e2vKPTFtpWkGp6/bE6Ck9nZN95Kj/We9S/2MMjk6sqM08W7w4aKSaitbbeg4xoA+mGR9aYX9hg828p/SFPW57jCuik43OP5M1hqasaOxuWMjdvw7rfv0vR/3Psy57jQHjxsu8pzpncWCymj/cYOs5PIQ+mB4zM7XlQKatLK2gzHW7x7wzhk9Jq9+33laXWbwv03Vc2MyV4d33Vzjqf9a77DUGRydW1GWeLVkclMC8wxWaHjc+1V6Yaa18+Fil6/bEmNHud6lT0uyH1lubM4sOuZ26bjkhN476n+dd6n+MQdcnqjnz7Nl7gqLUZF5v9VgdDIPS+ZfeaZEkS9Ws33T3Z5kTYkpmD5Ok4SFP3948652Wo3mmWXmuI4a//N0ekkOO+p8FLnuHB9xpqDqaV7M1edh9jh/dY3gI8C5DQ1eNvjCvqK6gpnxejcv2sNjNrqUpfRzmwtG88rzLXmNQUKJaMs/W3hMUqqba9VaPhZkwWHESAj0zBP7uNxd+8kvr8b116XvrXHb4fuc3kfMNncP+88e2xb+3H99btXiv6/MDMtIDu1//y1H/8xuXvYaht43T8b2NuxYOna/WP/3e3nN4CINMpN+GZa0zN316ZF/jzH2uO/z+59/dmnv6zVH/s9rlIJE+3x1jPbLv/Ob5PkvVtnHTp1ecMUK/XXfxYnefD+Ja99E3Jw70S/gSaGlae6J6V6NNkuR/syH8ybFB3ad/1Lbt8ImnZfzrZI94UNu2k6anLTZJNxuMT47tITw0KP3T20d7HzAjN/mLeSVfKvbsspKXa6yOr4gTA8Lvj4uf3k2sp4/DHGMrlx4rV8yEzeG+HtvXlZVnWiUFpMYkPBo+OP8O4sOpOQP9Eq6a/8ieMNAvYQA0mJsPrak+Vuh4o5ZhfMi0x6PjunzH0MdhkiT70WWn/i7D/ZvChntsf6ri71k2SYYUw+xHwrpfO+xa9/T0vN4HpGUPuuuHRnPTkTXVBc6zK3J8aPLj0bFdzq7G7Io3X6mtLJQkjfdP/FHMrB6rU9vylp14T8b7Nrmt/yW15T1lei/LJikyxfjtRzz2Dhbrp1/i+uFLa2HOlIF+CW6s2aZDW2pq268l/OOXxE++ZJ2vufrv8ytqE6PveMlthS+ntuIHCvLUdW9bcUZpXqZNUmhq9JT0bp87kHYkH+p9wMoPk76YV9JH9Wbrh09UH3W+7RjHh3zj19EJxi637Wbr3zqH+RvnhqekB3af/lFbzoOn3pThoRc94kFtORkVb+6xSTLONaSk9xAeGjirZ+T3PuB7X7J5dz7bdGhLTZ1z3sUtiZ/U7bwzNx1ZfbasoP3/XUhq1JT0oB5Wr2kreaAgX9GzX/KIB7WVZJTmZ9okhaRGT0nvITw0cP58qXn3pXXroLxLbc0uK3q5ptl5+xl5f9zI7m4/W81N5lVnKwusjoeBiWE3rIob0cMl99mlx0oUM2Vz+FCP7evKSjKtkgJTY0Y/Gt7DSgbXuPcudZf68X+O/2JeycD7+GzCzobeBnQEgBwazj/215rtlhZJkt/ECWFPzx7WQ2/Qha1/LF6rrsVCF7bus6zNa5E0cULE07N7qx26ht34/xUO9Eu4mm7OHTQR5uzSgodrlDo68dHubhbNjbWvnq3MbH+X9kuNiX60u0RFH4dJUmvt0mOVihntmcxorV1X5jhCr0+/dhyberD3AZyE7TgJP0+XPA+9yHt/jx/olzAQLK27djS+u9d+XJI0blzAvemhyV1zPZbWZzIa/3bcUc/pO25O8H/+fGj36R99sutn5hcUsu2/POJBn+x6rvaFvXZJ4+aE/OfPewgPXetu/ZfS3gdYXh+UfSCVbenPnN92ytHN89VJs4dt+KlPbC/jD1uNK1s0O9j8054+VPxs8y9qVyngwLMeKaLPNv+2cdW+TyVNmh2w4adXljHyToY7B3LhKQJAgxQBIHzeCADhy4AAENAvBIAw4AgA4arzugAQOnhdAAgdCAABvSAAhAFHAAjoFwJA+DIgAAT0CwEgDLiBDQD9vwH82QAAAAAAAAAAAAAAAACuEAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC8GAEgAAAAAAAAAAAAAAAAwIsRAAIAAAAAAAAAAAAAAAC82HUXL14c6NcAAAAAAAAAAAAAAAAA4DLRAAQAAAAAAAAAAAAAAAB4MQJAAAAAAAAAAAAAAAAAgBcjAAQAAAAAAAAAAAAAAAB4MQJAAAAAAAAAAAAAAAAAgBcjAAQAAAAAAAAAAAAAAAB4MQJAAAAAAAAAAAAAAAAAgBcjAAQAAAAAAAAAAAAAAAB4MQJAAAAAAAAAAAAAAAAAgBcjAAQAAAAAAAAAAAAAAAB4MQJAAAAAAAAAAAAAAAAAgBf76kC/AAyM/NsnDvRLwDUu6Z2jvQ+Ylpv8xbwSDGYHp+YM9Eu4ah7NnjDQLwHXvnXT83of8KODk7+YV4JB65Vphwf6JVym7+VMGeiXgO79OflQ7wN+/WHSF/NK0F9PzMjvfUAq8+7LKvNS8+5L6xvcpeLz9/6l7lJL0hO/mFeCQSsho2CgX8LVdHPutIF+CbjGHZt6sPcBnIT4AlzyPPQi7/w9YaBfAq59t/9LSe8DLK9HfDGvBIOW4c6qAfzpNAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFCAABAAAAAAAAAAAAAAAAXowAEAAAAAAAAAAAAAAAAODFvjrQLwAYKE1r95fu7mZ76Auzom/peNTStPZk6e5GSf43jwpfGx0U7T76g1N5D9mMeyaFeWwHunXR3FS26mxNgVWSFBCWFhW5KGjoZQ27aG4qW1VUUyApICAtKq7LgMZ1uUUlMTdvDu96fMBrmJvfXFOdX2hzPDKkGGbcHRZv7NhtP7zs1P7CXp4f8r0Po+M7D1WaXyjJ37AifM7CwOHuQ0ufyv9ziWHZprDhXY6CQa2i+cMnzp4ucJyE/qMejkpcGBjQZZQ1+1zBK/Udw8JSRiTdfb3B4+KgovnDJ4pPF0jyD3s46htdjmPJOPL2x9HzNl3f9fhAv5mbjqw+W+Y8J+PSokYvDBrmOajpyLTism6eHDbzYEyE26GKywok+YekRU3pcpyqjMMHSqJnvxTe5fi4LGbr609UH3X+7jPONcxcHJZgvNhlXFtJRsWBPTaz49F4/4k/ir5zmk+XQ5UeLZTkb1wRPndB4Ai5Hack46PtpYYfvxjmsR2XydyUv/psuXPexaZFJXQ37/KnFZd38+Sw6Qdjwt0OVVzunHcTuhynOuNwdkn07cw7XBXmpuJVZ6uct58RaVHG7u5S3YcpMDXmhnvChxu7jimqKpAUEJgWNarLcRrW5RaWxEzmLhXuTKV1m7ObtltaJEl+E5KCfjIl5Nbeb8wa6ha8VJlniHxncUiM2/bzv369fLtFkt+EWdc/PWlYjPvz3nurcGlNl2cB3qHxbHJRXeroxEeDu9vbWruurCnT2j6RUmOuvyc8wHjd5QwzN55dVVRXICnALy0qelHQELkNsK7LKS+JGb053GM7BgFOQuCyfZr7XPW2vfYTjkfjfOfcE/7w1K7f0fdhmKXl+YzKvccl+d704+Hp8/yj3O/oc5/7+FfloX/4r+Ao7vThpi19TuO2brb7/c/egNt6ecrsYPNPfTz3VLalP9O47ZSkr05aNmzDXT6x7vvf/W31D8oDDjzrF+v5THwRvuQBoKo31qzMsvQ6xJCy+vE7InodMjCqqvLzXt9zKMfifP0GQ/KUuXdOSIr4Mr7aQajlQvGlBzWtzS7dHWzcMyssuqXmh9mlc23xeWOCXA5Ss8mieUmkf9Anrdllxx6ucdlgrVlfVPNO2OjNccH9HHZRTWXzimoSY27OCfc1V5+cV3SsfHTyo50n50Vz9dlMhT3P56rwZuaaVxdYXK8CLFmWP2c1zto5crKxxyf1oPnNBaX54w3LPgwbbq55dUHpJlN8+iOBrj/rwywlPUv6B26s2abdP6912WA7/Xzx6f2h39wUY3DZask49XaWzXVYTZbt7az6qTvH3NR5idD84YLi04nR87KvD6g4t3dB8e7ykfelu5yEFefyszTqOdI/uArOZ5v2pbleS9jK1heXvRM286UYtzsRs7350gdrOjK/uCwxevbB8GHm6nfnF+8rHzk/3eV62Fx9MlNx60khXCXm2q0LLWbXDXss2/c0fmvHyKmuGSCz9fWFpUddn1hoO/qLU+fmxt+X3vEuYn19YenR8YYffxA2wlyzdWHp78viH0t3eY8x1x7Yo4nPkv65Os5nm95xn3fl64vL3wmb/pJLrEeS2W699MGa8ucXlydG334wfJi5+h/zi98pH5niPu9OZyqWeYeroTW77LD77WfV+qKqd8LGb45zuzA2V380z+T6W6M501SYWR+/e6yh88q8qXheUVVizOSc8KHm6o/mFR0uH/31R91O3TOZiuAuFe7ee6t0aX6Ly4aWvPyWpflNv3og/r4eb88ubH29Mq+b7ed//VL5dkPkO4+ExDTULXip/Pa62OJvubxZNtT9Ll+L5pP+gVeyriuq63Fn49lkt70tmabyzJbYnLgAt3hEX4Y1np1XVJcYMzonfIi5+uN5RUXl7mkPc9W5TIU8T/BiMOIkBC6TpeX5eyv3um45bt/7S1PZnMgNP/fr57CW5++t3Dsu9A/7g6MsjSvurfyhKfJtt4M0bdurOb8h/YMuKj871c9nvPvbbgNDktrSlzZuGxNwYK9fbGXLXUsbZ55xDwlVtjy/T4tXk/4ZMF/yAJC3qnpjy6asHI/kksWSY9mYk2VIXv74kqSBeV1w0Wo/JsngHuhxV1FRvVuaFxsWLckvbJnB/JCl+rUbgu52/jL94Iz5WLBxbcgX8oLh5S6aq8scn6smxoxeFR5s1EXZm9aVFWXWFC316+jp6eMw+/azNVLY/eFDJRnDo1JNRZlnq+4JinB+9tr0qsmaGBM3/Yv/hwJXi/3wGotF0njD9x4PizdK5ubDa0r3F9r2r6m5sb2nx3fypqTJXZ/anhzyn7Wzvf6nYUd1vpT0o7DhkoxhM1Isf86qPnx3YEeQqPQ1i2W8YQ5TBq4qzr3vSP8kRn/z1446nzZLRtnbWbVvLxva2dOTbXo7yyb5j3oubsZ0H0mqaD7xRHFugS13gSkouz0qZN1x9rQ06kfXB0iKvj4ppeLtrLMn7g7sSAhZXquoSYz+Bichrpy5+pAjhZAYPXNleIRRUltVRumBzJoDD/i69fRU2OskpboHetyd33G2TIpbEj5MkjF8bGrFgcyzJYuDEpzvn1XbKuoSo6dw6l4dbblPWMySxhsW/ToswXhRZmvuE6VvFdreeqImobOnpy33idKjksaHLPp1dILxotRWsrNi+wabeU917uJAR1Sofmf1UWnij8JG6KKMoTPnWra77JVUss1iHm+YO22g/rHXFnN1nnPeTV8ZHm6U1FadUZqdWZP9gO+rToi0AAAgAElEQVTt3c27lF7nXbkU65x3o1IrsjPPfrw46EbnvKveVlGXGD2BeYcrZ64+7bz9HL/KUedjb1hXVphZU7jUz6Wnx25ZZWp2HWZusqwqKi2wlq6qHuEc1rr9bJUU4bxLvSHVVJh51nJPUEdCqOFVU3NizChOXbgqtSzNb5H8Fs03PhE/RJIazm99vfxJS8uTL1niHjHc2t2TTEfMT3b396KmI+e2S4umh8RIGh7yk6TKpfnntk4Z1hEkeu9QZZ4h8un4z+kfA3x+Wq3rjpVn9ri7PZaRGBO7KjzAeJ3MjbWriioLasqX+rlWpPRl2IXtZ+ukkPvDh+g6GSOuTzWVZ56tvSco1FnQYn3V1JIYE82b+aDDSQhctk//klG5V9K4wCfTr59quCh9mru7+le/t5/Y2/CXhf7/arjY92FndzfslebcExylizIELZ5T+yu3gyh3R+2JcaHpUwfqH4svMctnRyR1W+fTjc/e/W3tD/Z1v6/8f89vkxZ/3y9WUqTfw7OtP9h3fvN8n6WR7QPe3WU9MiZgQzff3OAL8v8G+gX0LuKOx190sTxZkiFlteu2L1/9T9Uba1Zm5VgkQ/Ly1Z2vdfXq5SnJBsmSs3HNG1UD/SLxQU2tpJv9fXsZc8Zmk/zjnZ943eDvL9lKW5276yoesjjjQcClNL1qskpKjLl5c3iwUZKuk2/wo2NHp0oFpsrs/g1rK7dKAX7Ok88nNkCytlS0P7yYXVaU6YwHAV7KbD1VKCnke5uca34ZAydvik+SVNj4sbmXZ7YnhwwrojvyPQ0mm+Qf4pwyw2P8JVudc8oou+LPWc54EOBkea2iRlJi9LxNHYt5+RjSx3wzRSqoKGh/Q2478UqtpFHPjWlP/0iKDrxp08hRklRrcr5vN5fbJP9g5zkZGOsv2Ro7zuRs09tZzngQcGWqtlXUSUqMnv1SuDMZ7BORPnZmqlRQUZTtMvL9Gkkhsb1dD58vt0n+HYvgDov1l2xNne+fpgOZzngQrpzZeqJQUsiiF51rfhkDpr4YP1FSYWNJxzvGwZq32odFO5cG80lYkPDjFf6S7a1t7Q0d9WU2yT/U+bYzIs5fstV2HsS8fY8zHoQrVu2cd7e/5Ej/SPIJTx87PVUqqChxmXfVfZh3tnKb5B/gnHf+sf6Szeoy77IznfEg4Mo0vNoe65m8uWMxL9/hj44dnyoVmMwdp665qbZAUtj4jmHGIMPm0RGSCurrnW8sdve7VF/3u1RllxVmOuNBQLsLW7MbJC2aH9+e/pE0fNh9i2MXSVLDO6XdPamh7j/2t3S3Q+V1LZLfjc77utgQP6nl4wbn7lLL0nxnPAjwHheyq84u7S144WhDkcJiNzvXUTIGh24eHSKpoL7Z3L9hjo8ch7h/5Hih8828tDzTmczAoMFJCFyR3IaNxyUFPvlfjliPpK9OnWf4w499JfvGHbZ+DTOb7JLvDc5mcmOMr2Q/0xGMzq351V5nPAhw9252i6RJN1y6Gqb8cEv6L3pM/0gqO/Op9NWRzvMw7oavSp8Wd5yHh60/2OeMB2GAfMkDQN4o//Usi6Tk5S8+vsR1ua+IiKQ7ljy+OsUgWQ7lkQAaYG0mmyT/b4f0JefY/RFeK69VsPGH1P+gDy7Kbi+R1E0oJ+jWMEk17zX1fdglf1b1yzVKjInkzyDg1SrsFkkpQe5/nDkkZLzcsjtdNOyo2F8ojTfMWdjbV2su7IdfqdN4w1SmDNy0NX0sqZtQjuEboZJOv+/4ir2tsUBSaIzn+RMYkyJJDWfa+vKzTrxSq8ToRE5CXAVt50skdRPKifhGmKSy95vcR/pH33L518MlW2qUGD2aU/dqMdvNkuYGJbh9VDckdLxcsjttua/USZr4bLT7MI1YkPDYB//ktshXj9pyX6nTeMM06n+ujvZ51zWUE/6NMEnlXeZd1BXMu4+31CgxOoF5h6vA3lIiqZtQzvBbwyRVddx+VrQ0S0od4R6X9/FLlFvEp9efZXm5RokxRk5duLnwsUXS8Ns9K3mG3Z4kSUUNF7o+xbH416JZkRP6+bO2ZjfIELmU+h94lQvbTxQ9bKorkF/q6NHPh3U/5kB9i6TUEe4LLQWHpgVI1qYD9n4N61Vr7cs1SowJ5c18MOEkBK7Mp395tVnSnN9cP9X9Fj5qnuHt/Tc6V+/q47A+/KxxoQuo/0E3Pvu4XNJXvzv1K72PK//fupkrrdtOadLs4AOr+3Lief6gzX9q0ZiA5dT/DKhragmwqvw3Xt/jXHnLYEieu2xJUkTXEYfMFoszhuY+quqNNSuzLMnLX7xTWzZtzLFIci7Y1bmolyF5eZfjuvyEN/bkSIaU1T2s8hVxx9yUQ0cV2e1OfHHspY1S8PCY1pq1J827GyXp5uDQZWOjb+n53eyMzdb5oO7c042al0T9D/ql868hO0X7BUjWEnurgnz7NqzrX0y2lVs7H2RXmgoU9jx/WAkvF+1rkCxZTaWPBLp8QnuhrlCuXT5dNOdusEmXqPNpMLm8n2fX7C9U0rPU/6BbnZ09nYxDw6Saj+1WBQYocEb2pBn9P25zuetJWJVboFHPUf+Dq6izs6dTtG+IVFdiP6+gYZJkbyqQEkcMq6g+srqirECSQhLDxq6Mieh62juddz918wsUt54akqvH6GuUzHuaStIDXcI9F2oL5dLl43gYMqqf2Z36Mpf/dwdr3irUxGep/7m6Ojt7OnWZd1bnvMtfXVHunHejVsaE9zzvbO7zrqBAscw7XE3d334GSs0dt5+Oh5n1DY8GuVwzt7UU9PB0Se2FQE7ZlaUFiuAuFZ6GPfHI+Cf684T33jr9pEVKin0ivm3B/ksMLq9zKQoqrXnSokXzqf+BF0oMi7w/MnT6UGXXd7vf8algyK2eq4sOifGVrC3lbdLQvg/r9uDtsisrCxTyPM0rgw8nIXD5Lpw5LilwxiVCOX0c5slscknO5TZsPK45v6H+B936tPiUNGbojZaW9Ges205J0qQxfg//e8BtXSMLY/xWfd9v6eSv6HDXOH43ys582vngcMuqU1q8mvqfAXbtNABVvbFm5UZn+keSxZKzceWaLfldR1hcVol2jPJYkevolpUbnQey5Gzckt+xqFf7lk09LuFVlXfIIhmmTOh5XbKkOx5fckePASJ8MVouFEtqND+U357+kXSssfah7Ly1dZ2jPNf8kpwrglH/gwHmseaXJMcHr9T/4NphDBgzXlLdn5fVlDo6D8zNh5eV5ktKCZ/cw5dkDTuq8yWlxH/bfQp4rvklOVNE1P/gc9JsypLkHzejvePBc80vyZkuov4HA8Rsb5ZUUHEgrT39I6muoObA/MNHXJYr8lzzS3Kmi6j/+RwYA24aL6lu+4M1JebrJMlszX2w9KikueFTHat9mdvOSRrvO0KqP2je+uBHa2/5aO0tH6190Jx70K1yzHPNL8mZIqL+Z+CY7VZJBRXZae3pH0l1BTXZ8w/nu8w7zzW/JGe6iPofDBBjUGiipJrCpdUN7VfmTZalRVWSUqMMzitzzzW/JGc8iPof9Nf5d/Il+d3ZsS6YQ6llab5kiHznW93HID3X/JKcK4JR/wNvNWTRTYmb40On95KfbG0rket6SZ2i/fwkldgv6GKfh3VZbkkdz6J5ZZDiJASuiOWTMknjhhils7k1K3728TdnffzNWR9/82c1f8n9tN/Duq75JTlXBKP+B72q/OyUpFPWH6xsT/9IOnKq5QdLq9MPuw2MvSvE/GzA0sm9FQV5rvklOVcEo/7ny+JaCQDlb1mZZZEhefnq1S86rF6ebHDEd5xDXs+ySIaU5c4RL764enmy1GVFrpycnGTHIMf+nI0rs9T+tNUpyV2f4KKq8lL5H3wptNqPSZJuNsTvmTUhb9aEvOk3/YfBX9Lu/NOvOf9AKDo6fJ60u7ymQlJLzSaLZAi/289Z/xNL/Q/66jr5+iZIsppe9VzDq+lVk7WfwyT5LooKk2perm6VLpqrz2ZKqVERRmf9T5cKd8AL+U7eNOZ7Kf4qtPx5QX7GjPyMBaX7C2VIiV/2SGAPT3HU//jPuttzwPCF4UlS/is1DZLMNR9mOVNEjvqfXuuCMFj5BN0oyZb7WrPHDstrFTWXerJ1x9nTklKibnJeKwQsjBolnX7lnFVSxbn8LOdeR/1Pl4XGgMvlMyxBki1/m+e1RNW2ijrXxxV2x8OQ1JGzD06ef3Dy/F2JSan+ksrSTpY4UyPDFkbFSWVbqs9LMlefzJRSoxKMzvqfLgse4cr4TH1xzKK5/iq0bF+Yv/aWj9YuLH2rUMa58T9O9/zVVpJR/Ptf1JkLnY8L6976xamtOzszQCMWhE+Ujr5SU6/rZK49sMeZInLU//yI+p+rqH3eFXSZd9U9z7vbD05OOTg5ZVdiYqq/pPK0kx+7zLtYqdw5705nSqlRNxqd9T/MO1w1vn4JkqylXW4/G141uV8A+Ro23zw+NUAFpsJ5uf9Izv3HvKLSAgWmjp78aOcf8Q9dFBUhVb1c3SrJXH0m0xkPctT/cJeKPjMdObddUtL197ndp53/9a4Gye9Xd/bY4hMz6fpF0vbsOpOkhrrf5TsP4qj/mU79D3BpQxZFhUh1L1df0EWZq85lSqlRocbr2ptX7qd5BZ87TkJckw4+Z/7hL5tPHHc+Pt688ZemFbs/7e+wqHnD50h7X208q+tkadq2V5oz/F8NF9vrf+6h/gc9sHx2RJI0aXbwgb3h5r3h5s2hq2Z/VdK2lXWbK/t3sNi7hi2Wtv2ppVxSZcvz+6TZw5ZGOut/vk/9z8C7RpYAyz+aIxlSXJfmikha8vhyPbgx52j+kqQkSUlLXnxxifvTIpLuTDHkZFk8jpa8vP04EUkTk5WTI0PKsvbOnog7JiZn5eRYKqukvod8HEuLefyMF3tYJAxfgIqWVkkyxP9hjPOzKj+fu8eMilHeQxbbm3Vtd/s5/l4/6LHp8TpZOne/WfKfNyp+bXSQe/1P22unTE9bbJJuNhjXjiEShB4F3RMTkGmyZhad0Oi4R4OGShdlb1pXVpQpSSpocZSc9nHYdQqK2z1aq4qOJZukgLC00XGLglzrfy7KXr2uzJRplRSQGhP3KB+2wguZrcUlNo9tlpKmBnPg8G4bgLKb8iWND76xm72B394ZrzWlm2ZYJP+kFfFzFga61//YDz9VsT/LJsmQYpjzCJEgyHB3dFhWRU1W8V6N/EZ6YIAktVkyyt7OkiQVtDZL3ad2sk27n7dJ/lPdsmiBM3aO1BPFu6dXSP6jHh75jYWB7vU/bScyynKzbJLCUqK/kU4kCJcpYnF0SGZFXWbxuxo5Jd2x6lBbVUbpgfZrCft5aZh0/kyLJKWOvC3deT1s9ElIHztMhw9k2io+aEtY2H49PGnXSK0u3jetQvKPSxs5ZWGQe/1PW0lGaX6mTVJIavSUdKIJV8ZsPV3q+bvPXNpUbw4c4fjtZrabJRVaHMGguemBI3RRaivJqNi+x2beUJE7Y2R7V5AC7twRrydKf3+LRfKfuCJ+7oJAye5S/9OWm1Hx1h6bJONcw9x0IkGXL9w57/6hkROc8646ozTbOe9s7vPu6y7z7sb0scN0ODvTdvaDthud8y5p10itLn5nWoXkH5s2csLCIPf6n7aPM0oLnPNuAvMOl2v4PTGBmabmzKKPNHrUo47Fpu0N68oKnbef9o6lOMxNtSVWj6c3l9TbzUFDO6+9g0buHq1VRYeTTVJARNroUYuC3Ot/7JZ1ZaWZVkmBqTGjuEtFt0ott+9vkfx+NcXtve29t8q3SxNmGe/r7VZt2BMPxOr18tufqpT8Fs2KfXrSMPf6nwtb3zI/md8iaUJS5NPfIhKEQaCgpU0a0o9hwVG7R2tVUVGySQoISRsdvSjIvXmltXZdWWWmVZJfakz0o6QxcCmchBjMLBdOSDpeu/G4bpoTmf5z/yhdlD7Nfa76V3vtJ35f/Zdpxn81XOzrMEnye/iPkcqo/OGsWsl3zo8j0+f5S5+41P98+pfnqjfutUu6aU5o+s+JBEGSyi0XJGl28P/+tL2uXpFfWfrTkBtV/YN9n/4197Old/VW+dOFT8bmYD3TOHOOVfrq4mXBG+7yca//+WzzbxtX7ftU0qTZARt+SiToi3ZtBICqKs2SLFkrH8zqutNcWSXXFbeqqqqqqqpUefRopdmcY/FM/0iGyM7REZEGyWKMpNHn2hIdPSqvu6jOLWGhstQeO9dcEe2M8vgFPTZpwmOugxz1P0lh0Wp77ciJpxtDX5g+6hY1rc0unWvTnklkgNC964zhcWn1x9ZbrZlFxzI7t4elxdjXm6yJ7aGzPg6TdJ0xKH7zVNf66ouO+p/nw31lr156zFQQNnr32CA1lc0rOlaimzfz6Sq8irnm1QUWi2T4/9m7+/Co6jv//y9/dUlIyB1JTMJMyI0JCCYsCBICVL9aW++6SDYsYLWuRYTL7XYxtivu1bWo6FWw1UC7u1xgpK6VFihsUlqVutQuFoVgIGkm3ITE3JiZ3Jj7hEkmKV7+/phM5szkhgSiOOT5uPhnznmfMyfkc07mzLzn9VmaeO+TwWGS5Kh4seY3ec2/We742t7kAbOAOQp+0SwNHedjDr5zx+w7jUuc8T8vRYbJUbDm7B9Lwv9hb3KiOv6wvGJHudbsoAdo3Iu97pbHW/ZvsTfmle03vMSc9nhs65aaxtSJg0dRHa1+84kmKXDayzfM9HpNEBu8cMfchR7F9cctmvbydUHqOb2m5Lgl4ut7bzCp44PlZfs/UuYOeoBwScxRN2e1HMy2N+eWHTS8lkjIiu3IrmlO9Xd+mDZpxYxlKwbZOvqWSOU2Nh9qO7/C1VJgDpn7yry5xiJn/E921CT1lD9qKbJELt43I1rtJ5aVHSzXXa/Qi3CprE2vrbBZNbCzp3n3Csc39vR39kiSed0NDy/3U98beX5J65NW6i+7D9jf2dUxf73r4mEOumf7397jfgJX/M9LkZPlOL727Dsl4Sv3JCep460VFf9VoX/aTg/QpTJHzclqOZRtb84tO2Q47+KzYjuza5pT/QMlSZNWzFg62HkXNdh5N/uVeR7fGXLG/2RHTVLPR49aLJbI9H0zotRetKzsULnu4LzDpTFHTctqKcju7MgtLTAM3eisuK7s6o7UAH/nY2vDXzKrO6TgDK8+ocaSTEfi/hn9s4DJHJKcMz/Z+BTO+J8tURPlsK0urrBEpuyfEab2sszSgnLN4y4VXipsy/e1SgErlyUaG32qT1Q4J//6ydyLfYIcNmnjAykbPfbZ+IJNK5eFx6n3tV3nXrCF5TyaeKvOP/1K1R2NOvQAPUC42hneSxxpmTl0Sk7aFONaZ/LKlqgJcjStLq6zRMbvnxGk9trM0tJyTc+h/QLDYhAC0sx/ituaea3rFv7a+U+YXtBHP3zTsW2P/e+fCBhdmSng8Z9d/7h73674nx+HTtFf/+dfqredCn7hdfN82bc8VPePVfrvn9EDBMXfF269b5Dlt6UH6GDXifd6qu4bZY9OjN/ml6I2G5c443+eDYjXpznfb3rmbMAvc8JvU8/61W2Lq3TkJXqAvlBXxxRg9XUD23j62epc03XVv73zubVrN2zYsG3btm15+fmDdf9Iupx2H2fDkPcMYdF3/2i7e96xpaZL3j0+bxP9Z0lqc3w8ZIUh/qer4w9tkil4UYAUEPKP0wLVZv3v5iG3BCaunDFrS1xkat/DoNTI6fvnJyy+xDIvxvgfWdtbLFLG5FCzrjGHxGQFyVJdd3RMfxjgc1bxK5tNMq274cG+7h9J/olPJv/DUkn2Pw6YlUnWzrMlksKTRzoRuCH+x7nt0pBEs2QOnr8uUCW245wykIJW3JD5cuw01wU5MjXi63vnLlw4ZH3nnrOvPdHUqMD5e29YePGhaIj/qWmvtEhLw0yxUmxw6uOBstRYGIS4VJNWzLgrOzbBNXTDUyMX75s3d9HINo71D1dfUNAQDPE/1rYai5QRGm2WzCHTswJlqSll6F6q8l02q7OzZ33QZGNnzxJJ9nd2dUiS2d8sSYEzF/p7bZ70gMksqaKnZcj3vnvc8T/WztMl0pKQJPNnMgctWBeoEtuxY5/TTzYuTFox447s2HjDeZe+b97sUZ533ulPbob4H2tbrUXKCI0yS+aQpKxAWWrKOe9wqSaunDFvS1y0a+gGp0am7J+f7Hn76ZwRLDhr1t/2df9I8g97akZKhgadQczAEP9jbW+ySBmTw8ySOcScFSRLtZWhC4PqExXJ+1oLFfDDRxM3Gr/t1Nr8r85MoKEn/xqaIf6ntfMtmzQ75NYwKWzS6q8FyFaXUzF2PwBw1TIkr1jb2y1SxuQg8zUyh0ZkBclS3cTFHJ87BiF8lmnCTEnyv3XB33itmb8iYqakqr/W6pqRlg3ugjv+x2Y/fEq6N3C+6TOZApb/k79ONe09PqY/Ea4ypq/MlXT208rL3ZEh/qeu53dnpbsm3BYjxfg9tuZane3cVjAGB4uRuzoSgJxtNxeZVato54a8fEmmtDRzTMxNMTGKjp6twgGTc13ekcy52ZRns31YWH/33aQG+axQ/6lDrXLH/6imubVYmhXY9857bMBEyV7W1aPwEXW0Y3yamB6VmB7lGdvT1SkpyX/i6Ms8uOJ/JkrdR1o6paD4vqHoH+cvdTqqHUr3/qAI+LJytJRLCrxhkfegTfyWyZRns5X3tEoeCT01DpukpSGJGhl3/I9a32+zSaa4vu+Shk31l+yNH3PKQJKC0q9bmH6dZ2xPd6Ok6/294nlsm8/+b55dCpy/d0D2z6Dc8T/q/KClUYp0XbeDpk6U7K0f9yidFxW4RJPSo+amR3nG9jiaJSX5jygmJHXoMnf8j86/39Ishcf3XS0nTQ2Q7B0M3UvU01IhV2ePx5fzkh4wmQ/YrBU9LQqe3LfMf/Kgs2FKKnG0SJMHXeWO//ms5YM2q2RO6PvbN3mqv2T/5GOHFvC7u3ST0qNmp0d5xvaM7rwLHGqVO/5n8POuk/MOl2FielRyepRnbE9Xh/pvPx1d5ZKCIhZ7vzbum0Gs3NGtkMFvVN3xP+o+0tIhBbte7UyM85c6u7hLhcvhdypWF3VJAT98NNFrkq/qivZCSep64ZWSF7w2s9Xd8WKdFJbzpOnWQffrjv/p28+c8L6/fXFhflJXaWvvSOalAb7EJvolSZbO3hrJ6/VhTVeXpCT/CbpmxGWDcSevXNN7pKVLCnBdzCfE+Uud3dUOpRPoNp4xCIGLmmAeKhniVK9VmjK6Mk/u+J/Pao+dPy3NdL3LPSV2guSorPmr5l8dzQD43NzwlYTL3IM7/kdVx7tPSHOn9o26eNME6cJZ26eaN6pZxnBZro4EoOgYs6T8k0XD1BSdzJdMS5/d/qNVq1bdfffs2bNnR0fXF344ht0/khR995I0yZa34+36ISrq68b2GTF6Pb86UTjnj4XPD0zr6XYUSwqcMMTHdob4H5dkzwDLYrtjLI8U40D74UYZmnUurcwj/sfFP87jjdTOqp7LPFTgy6ziz80yNPFcjCH+xyVyqscpY6vuHcPDw9XE9l6TDM06kqQe2+YT/5tnV2rE14+OrPvHGP/jEjbV4yLfyHUbY6r+vUa5mwZ6yh8t2Leg4MTAL0rWDN+vYIj/cQn2HLrNVbwe/jyZg2amSHK0WAessjqsklL8B+/+Mcb/uFzn+bfPWsnfvjHW4HneffRoQd6CgqLRn3fu+B+XIM47fJ5aDzfK0KxzqQzxPy4BnnepHbzagST1Hn6nZHVRl0xhOU96d/9c5p7d8T8u08M87hkLm/nbB5/nFx8kqbva+8VAb7VDhj6JEZYNYEhecZnoeTHv4mI+7jEIgSGZAm+9UVKvdeBn0bbe05JunGAeedkgDPE/LgmxHjFCp3mXG/o05/sN5nsb1g+M4bF9ekJS/FfiL3P//fE/LjeYPNp9Tnx84bKeAaN0dTQAafZNaZLytz23s6i/76a+6O3n1q5du3anoS3I9mFhf0F90c6xTf9xHcuqx9IkW96Gtc/tfLuo3t0HVF9ftPO559Zuyx/758To+MUFStL+Rq+c6p5fVTVJyowMGXw7Z/xPfKTxc72yLo8Xl/2BQICX7t1n8tOOn97tcYfzmbWhNldS0GTXlylHWObNGf/zSJTxmw4Oz7upi/YYAV8m/pOTJNnPvu/9poBzajAl+Xm+LTxkYtDgnPE/34k07qTxY4/nGnEvEa5anXvOvpZ+4s09nu8i1XxSlCcpMGGh+6Jq21zyv3lSamzmjriRzvTqjP/5znXGGKHWjz2eK5LrNi7J+T1n9i0o+JPX0LU2nMmVFBi7yDmu/CYlSVLle96vh8t3NkpKuGWI18PO+J9VUcY2hQ7PodsfTIJR8pucKMl++gPvv33OqcGU6DdZn/WX9c0IZiw73CzJ/LX+6cM8OeN/vhNpXPuJ59++/kAgjNb5PWfyFhT8ecB5dy5XUuAUz/OuasB599HORknxQ593FoviPc+7Ts47jIXu3Wf+nHb8L563n7I2fJwrQ+SPf0CSpM6mI95XJ+fUYEPm1DrjfzzvUrs871Ivu8cIV4PD75xbXSSZYg49MHiKT9zcxLInU7z/PRozR5Ip5tCTKWXDx/+ke0wcVtrq8RlYfyAQ4LsmLJ4cIHVl13V6vAhsa8rulIJCXO8ljrDMmzN55ZEoYzSLVwPH0H0bGC8YhMDQrjXHS3Js2+M94fPxIx2SZt4aOEWfjbhsAGf8z4OhxrWVNX81lszkXW7oK9fHS9Kuo17tkp/m/LpL0gOXmSjsjP+5PyDesOys7VNjSX8gEL4YV0kDkGaveizNJNnyt21Y22fDtjyblPZY37Rgzh4hW15/wQZ3J46tbqi4nks8mGf7jiZv24b+41m7YcO2fJtNMqUtfezZ4SYrw+du0VTzLEm2in88217jXNTV/vyJ0z9pk1fAj4F3/GIlb4QAACAASURBVE9seNgsQ+RPTVe3BgQCAf2ceTyd2ZUVR/vGTPfRhjOZ1Z1SUFZCtHl0ZUYD43/8F08OMkT+ODuBvAKBgC+5xK+GS7JtPfvGix2tfcscFS+W/SZPUuDXvhXsWd7bXKLh5kPx4B3/E7Yo1GSI/Gn92KEBgUAYh4KmTpTUuKXyA9etUefRT95cXtMoRT6e0B/z07nnrKv757qgofblzTv+J2jh5EhD5E/nx90aEAgEjNCkqQGSmrMrTriG7vmjDX9aVtMshWclJrmuk9EPxIZLyi370+b2885F1vYTj1qKLPIK+DHwjv+ZtGhyuCF65PzHXRoQCISRS7o1XJJ169nXNne29L273VO+uXz3AUmB33ig729f0gMms6QDFa9tbiq3epfNXDjo3y/v+J/JC0PNhsiflo8dGhAIhJHrP++KDOfdn13n3fWu8y7Kdd792XDeFT1qsVjkFfBj4B3/M+h5F8R5h0vi/PZ8R3ZlmeH28y+Z1R1ScFaCyTV0w26NlNSRXfyXTe3dfcscrZvOlORKCkp8cNDeNe/4n4mLJwcbIn+cn9sFcJc67lWfqHB1/3i06YwF7/ifuMSQOYbIn+rWHg0IBAJ8kjkkJFVSY9Xqyk7rZ5JkbWtaXdosKXVysHmUZR68k1f6GjhcF3NncMtELuZgEAJDm78iYqakN+vWvdx+3Oa8hb9w/GXbD9+U5H/rgr8ZVZkn7/ifKQsmzTRE/tTW9GpAIBDGp9uWBc2VdLDtvp/3VDkX1fWs/37TM2flldwzet7xP/HzJ841RP5U2Xo1IBAIn7erp99q9qofPXvTzh0H8m19bT0mU9qSNatmR7sLnn1MnutvXnLPnLodG/Js1rp6uSsvX/TsVT/afk/R228d+NBqcz+hyXzzknvuHssnwiUKiHx+WuuSc/ZiW8USj0SmiP+YETn4xB3O+J/ZhrUBwXeGqtjW8KupId9S+3+fsw/dPATomvSE6RmO0tzOxseLG40rUuMSVvqPtsyDM/5ni+GLleaQyanqzK2tfzAkSu112Z1es4MBPiA9ds06x46tdltexY48jzWmdbHzvN4UsPY0SkrxH1FavDP+5yVD/I856IYU2fIaCr4VPE8dx7favWYHwziVHvf1pd3/m2c/90TJOePy1NhbVvR/ztph2WKXJEvN/vSaQXayNPnh9cHeC53xPy8bGoZiQxJSaxrzak9/K3imc5+es4MBo5Aetzij60iuvTLLUmlcnhp78wpDi4A56uasloPZ9ubcsoO5xrrIxRuiBp+HyBn/k21Yaw6NTa1pzq0tfyAkSe2l2fahm4cwAgvM/7TO8V9b7dYDFf91wGONeV3sfLPr+3zmiIdfcrz2/WbrAdvuA8abmcCbXkp2lxk5439eMsT/mINmpsh6oOH4A8Hz1XFsq91rdjCMTnpcekbX0Vx7VZalyrg8NXaO53k3J6vlULa9ObfskOd5lz70eWexKN7zvJuSWtOcW/vRAyHXq7082z508xBwMekJKRmOktzO+seLPb4Ylxo3zXj7mZ4wL8tRkN3ZkVta4DF0PfqEPDjjfzzvUiNS1ZFba3swxKR2a3an1+xgGJfO5/yxS5JsdXe8WDfI+tnxZd8YYnbEi3LG/ywz9BWFBd1jqiss+uS1myc97Hxqz9nBAJ81MeKZ6b2Zpc2WxqpM47uJkfE5xtCUEZYZOJNXthjWmkNCUtWVW9v0YEiE2puyO70mZsJ4xSAEhmYK2frj3nX/1nH6zaYfvtlkWOF/74/Nf2/6bHRlRs74nx8b4n9Mgbfe2HT6zdb/WRH497Lv/S+H1+xgGL9iArau6V6848KJg22LDxpXBPzyBx7JPaPmjP951rCTGL+/u6HzxMHzOcv8Vqtn244Ll91jhFG75rPPBrtq4GpXdMdNV/oQvgS62p8/07C/zRmpFzjLFPX8DSGDd/+o51cnTv9E5gNzvdqDen51tvonNrukWSbz8zcM0Tw0Ls0+dHL4ggXH076YI/lS6T5aWflqY6dFkpQaFPlIQmL6IG09IyyTM/5ndXG14mbleCSrfyZHw6bK6txOSUEZcQlPRQ2eyn61OzY//0ofwph56uicK30IV0CrteP4cw1FJX3Zp6aU8IU/ik0c+BnD0ZrN329WimnNjsiL9QA5Ctac/aMGVjoKXqz5Y55dkmmp6d4nL7qfq9Om9MLhC75zbNy9VO88Wv3eL5oa+y7IgdO+k7DQmIl6tPq1J5qG2FTSoA1APafXlBzXwMSgntObK4/n2SVFLo29Zf3I84SuKr9YMHAyat/wD/k3X+lD8HD+aPWHOxubXUM3YVXi3EHjfK3tJ56trbT0vR4Oz5hy8/qQIT5n6yl/1FKk2Lte8WpT6CnfXFGUa5cUnhF78/ohmhiunN+kfTh8wdMffLnCWVusncc2Npx0/e0zp4Qvfjo2aWBbj7Xz+K6G0wfs1uHLJKnn+Nqz78j0T9sjPWcH6zm+ueadA3ZJ5iWmJesjB5877MrZuLBo+IKML995V2g47+JXJc4e4rwrera2ynDezRn6vPvoUYtFsXcMOO8+2lxhcZ13c758513uxc67L61bxutd6rlXGztct5/RjyQkD3qXam23PlNbb+l0PgxOjZz6TELY4F/Wd9hWF1cobl6O132ow7apsiK3U1JwRty08XqX+t7F7lLL16d+MUdy5VXYkve1DlcwTANQa/PyV+oKh4wO6n1t17kXNHBt72vvWF8o6pI0Z3bMT74x5rFDviFps+VKH8JYmnV83LQwH62wPN6ojOmpT4UOstba1vRGbV1u31U6ICMu9qnBOipGWCZJ3U2ri+sUN927M6O7aVOlcw/Dbn71KJ5/bPgCBmEfBuHn6aLj0IccejfpSh/ClWDr+p89rYffdJyWJM28MfiB9dfNH9jWM8IySbrwP/9SvU0R//2zUM/ZwS78z8sN2950SJp5b8T6J0IHnzvsanfH7eXDF9jeGpdhHXU96396ftdZZzbPtXPvmrT1e37xw9QXdJo3dOmuUOv3hkod/jTn+03PKOjIS15dRJ/m/LztmYMXJM29K2jr9y6vx8g3me4Z0+mnRokGoHGKBiB83mgAwpcBDUDAqNAAhCuOBiCMOZ9rAEI/n2sAQj8agIBh0ACEK44GIGBUaADClwENQMCo0ACEK+7KNgD9f1fwuQEAAAAAAAAAAAAAAABcJhqAAAAAAAAAAAAAAAAAAB9GAxAAAAAAAAAAAAAAAADgw2gAAgAAAAAAAAAAAAAAAHwYDUAAAAAAAAAAAAAAAACAD6MBCAAAAAAAAAAAAAAAAPBhNAABAAAAAAAAAAAAAAAAPowGIAAAAAAAAAAAAAAAAMCH0QAEAAAAAAAAAAAAAAAA+DAagAAAAAAAAAAAAAAAAAAfRgMQAAAAAAAAAAAAAAAA4MNoAAIAAAAAAAAAAAAAAAB8GA1AAAAAAAAAAAAAAAAAgA+jAQgAAAAAAAAAAAAAAADwYTQAAQAAAAAAAAAAAAAAAD6MBiAAAAAAAAAAAAAAAADAh9EABAAAAAAAAAAAAAAAAPgwGoAAAAAAAAAAAAAAAAAAH0YDEAAAAAAAAAAAAAAAAODDaAACAAAAAAAAAAAAAAAAfBgNQAAAAAAAAAAAAAAAAIAPowEIAAAAAAAAAAAAAAAA8GE0AAEAAAAAAAAAAAAAAAA+jAYgAAAAAAAAAAAAAAAAwIfRAAQAAAAAAAAAAAAAAAD4MBqAAAAAAAAAAAAAAAAAAB9GAxAAAAAAAAAAAAAAAADgw2gAAgAAAAAAAAAAAAAAAHwYDUAAAAAAAAAAAAAAAACAD6MBCAAAAAAAAAAAAAAAAPBhNAABAAAAAAAAAAAAAAAAPowGIAAAAAAAAAAAAAAAAMCH0QAEAAAAAAAAAAAAAAAA+DAagAAAAAAAAAAAAAAAAAAfRgMQAAAAAAAAAAAAAAAA4MNoAAIAAAAAAAAAAAAAAAB8GA1AAAAAAAAAAAAAAAAAgA+jAQgAAAAAAAAAAAAAAADwYTQAAQAAAAAAAAAAAAAAAD7sms8+++xKHwMAAAAAAAAAAAAAAACAS0QCEAAAAAAAAAAAAAAAAODDaAACAAAAAAAAAAAAAAAAfBgNQAAAAAAAAAAAAAAAAIAPowEIAAAAAAAAAAAAAAAA8GE0AAEAAAAAAAAAAAAAAAA+jAYgAAAAAAAAAAAAAAAAwIfRAAQAAAAAAAAAAAAAAAD4MBqAAAAAAAAAAAAAAAAAAB9GAxAAAAAAAAAAAAAAAADgw2gAAgAAAAAAAAAAAAAAAHzYtVf6AHBl/OXrN13pQ8BV7m//9+TwBTcfX/DFHAnGsw/nH7vShzBm1h3luo3P3db0i1y6sxiH+JxlX2wQfmndn3/zlT4EDO7XaR8OX/D8B3/7xRwJRuvfF/5l+IJlnHdfVvsudt59aX31eNqVPgRc/f48P3/4gvJ/Tf1ijgTjVtJPLFf6EMbSLN5gxOes+GLvLjII8QW46Dj0IX/4U9KVPgRc/e68rXz4Attb0V/MkWDcMt1TfwWfnQQgAAAAAAAAAAAAAAAAwIfRAAQAAAAAAAAAAAAAAAD4MBqAAAAAAAAAAAAAAAAAAB9GAxAAAAAAAAAAAAAAAADgw2gAAgAAAAAAAAAAAAAAAHwYDUAAAAAAAAAAAAAAAACAD6MBCAAAAAAAAAAAAAAAAPBhNAABAAAAAAAAAAAAAAAAPowGIAAAAAAAAAAAAAAAAMCH0QAEAAAAAAAAAAAAAAAA+DAagAAAAAAAAAAAAAAAAAAfRgMQAAAAAAAAAAAAAAAA4MNoAAIAAAAAAAAAAAAAAAB8GA1AAAAAAAAAAAAAAAAAgA+jAQgAAAAAAAAAAAAAAADwYTQAAQAAAAAAAAAAAAAAAD6MBiAAAAAAAAAAAAAAAADAh9EABAAAAAAAAAAAAAAAAPgwGoAAAAAAAAAAAAAAAAAAH0YDEAAAAAAAAAAAAAAAAODDaAACAAAAAAAAAAAAAAAAfBgNQAAAAAAAAAAAAAAAAIAPowEIAAAAAAAAAAAAAAAA8GE0AAEAAAAAAAAAAAAAAAA+jAYgAAAAAAAAAAAAAAAAwIfRAAQAAAAAAAAAAAAAAAD4MBqAAAAAAAAAAAAAAAAAAB9GAxAAAAAAAAAAAAAAAADgw2gAAgAAAAAAAAAAAAAAAHwYDUAAAAAAAAAAAAAAAACAD6MBCAAAAAAAAAAAAAAAAPBhNAABAAAAAAAAAAAAAAAAPowGIAAAAAAAAAAAAAAAAMCH0QAEAAAAAAAAAAAAAAAA+DAagAAAAAAAAAAAAAAAAAAfRgMQAAAAAAAAAAAAAAAA4MNoAAIAAAAAAAAAAAAAAAB8GA1AAAAAAAAAAAAAAAAAgA+jAQgAAAAAAAAAAAAAAADwYTQAAQAAAAAAAAAAAAAAAD7s2it9AMCV0v78oYp9gyyP+I87Yhf3P+pqf/50xb42SYGzpkW9MDUk1rP6yJnCf7abfzcv0ms5MDhrW/UztY2WTklSUGTWlOiVIX665lLKrG3Vz5Q2WiQFBWZNSRxQ0L4pv6w8LjUnapD9A77C2v7ucw0lJXbno5il5pu/FRlvHr4sMGVd1E0rQkIHqakoKZEUGLMu6usDCqpeLDxQbn5oR6T3hhjnrO1/fK7BYhiEaUMMQkNZYOq6qLmDDcI/PldhcQ3COwcbhHnl5ocZhBgT1vaCZ2vLLX1jMilryvQVIUEX2aTh0LKaptTYe1+J8qi0thc8W1ZukRQYkTUlbcB+ajcXvFc+YCtcMmvnbzd+UuC67MQuMd32QHjywMuOxybNO1bYalJMWdvDJ3vvqrKgRFJg7Lrrli0Pmuy5Xdnm4tcrBmyFS2ZtP/lsbaXrvEvImjJtRcgk76L2kwvKKgfZOHLRsbhoj12VVVokBYZnTZk3YD/1mwveL4+985WoAfsHRs/aXv5Mbb3r9jM6a4ppZcjEi5QpOCMu9sGoMPPAmtJ6i6Sg4KwpyQP207rp+KnyuLk5UYPsH+NYdWVzzrH23bYuSVLAnFkh3705/NawQcvqdtucjwJW3n7d6psmxXkVtZ5/+mDVbpukgDm3X/eTAQWH3ylZ3Rxz6P5w7w0BH9BWm1banDE99alBbxm7mzZVtud29p1IGXHXPRgVZB74luAIyqxttc+UNlskBQVkTYldGTLB863Fzk35VeVx03OiJvCW47jDIAQu2YUPX2749e8dp52PbvS/+8GodWn9n9FfyP1e9fZTw2wevPHd627WZ5Jk69q6qe7tU5L8Z3437PuZgSbncpcPX/7o6cqIV38e6rUc417P+nvbdg2yPOCXbwbdNswmd4Vav+fnvaauZ/1P23adlXTt3DWTtt7nF++5/k8/b/h2VdCRlwLivbfEF8FXGoDq335uQ55t2BLT0md/dHf0sCVfqKKda7flD7067bHtq2Z/cUeDAbp6z128qP35Dyr2hZp/d0dkbFfjQx9U/J09sWhGiGEnjTtsWjaH7h+MSM/RCsvjjYYFnY3ZpY2HIpNzEkIM9yojK2urzixtTI1LzY/yszacySy1VE2fZ7z1stbX5ipyC90/8GXWxt8st9YZFtTlWQ/ktd6yd9pswycNbUdrXv9+k6HKXrK1ouSPEUt2xMa7F7a/u7yiJMX80AeRodbG3yyveL068V+eNFzPrY0f5inlJRov4MnauGfAIMzLa71177Q5noPwNc9BaNlaYfljxFLPQfjH5RWWFPPDH0SGWhv3LK94rTrxcc9BmJ+nVAYhxkLn0eo3s4yvJezl2WXlhyJveSVuypAb9Zx7tqZpkOXtBcvKylNj7z0WFWRtOLSs7M2q5JXrjUO34XSukrLp/hkjzlYew4KaA7bXD7Tds+f69CF7gHqObvTYxKXztysqC1JMWe+HT7Y271hRmV2ZsHG94Rdlbf7TAc17ie6fsXH+aPUfPM+7yuyyykORi16J83ibwurouPjO2k8uK6tMjb3zWNQka8P/LSv7Q1Vypud5dzZXCdl0/2AMdB+tPOF5+1mfXVp/KPLGnASP7gtrQ3FmtXH0duRWn8ptSdw/Y4r76tRenllanxo3Nz9qorWhOLP0RNX0xU95DN2aXEVvofsHHg6/U7G6uMuwoKuwuGt1cfsPH0l82DAKq09W3PGuR9nud6t2l4bl3G+61b3w/NOvVu02xRz6QXhca/PyV6vuaIov+4bhYtna/J/FWplJ9w98Uuem0uYhV7bVpnms7cqtrsrtis9PCPJ4Y3AkZW21maXNqXHT86MmWBs+yiwtrfLs9rDWf5Kr8C00XoxHDELgEtm6tn677m3jklOOt/+tuvqbMS8/ETDKfXVt/Xbd2zdGvPpuqMnW9sS36x6pjjlo3Imt/de/190/pvsHA9R9enaUW/zp54M2DEnqWb+6bdcNQUfeDIiv67pvddvijz2bhOq6thzUA8/S/XPFMAUYxqtuR7EkU2LRHXM8/7njf2o+btgnLUuIjJUUELnGJNkadhnebThSbS0ONf9j+Bd/9PBB1voK5/uqqXHJ++fPy0+blz8rOSNIlsay1Q09/a/GRlbWs7u2UYp8JMpP18gcPSVDyq1tsLpf0rW/UW1PjYtO/2J/RmAs9RQ9Z62TlGJesnfOv3ww51/2Jt6SIsn+3nONbf1V1sb/dTZe9Jd9MHPJ0kCVNB1Y4y5r29NQIqV8JzJUkjny5qVSXkOR1f1kVb+y1qWYb+KUgYeeQtcgXLp3zuMfzHl8b+KtKZLshz0H4R9cg7Cv7IOZS5cGqqQpz3MQWqRU1yBMWyrlNRQOGIRzGYS4fNaGfGcXQmrsLfvmrTw2b+Wx1FsyAmVpfO/Rhs4hNurcU3HSMujy2nIpaVVUkCRz1MwMKbf2nGHo1u6qaUqNnc7QHRuuVp4U00N7Zm18f9bGPQn3pEiyv7WxuWWIbVr2Wt8qGXT5JwXSvO+ET5ZkDr9tiXTgk6OG313ZLltNiumrC8b8pxiXrA0FrvNu0b55mcfmZR5LXZQRKEvj+482nDdW1jiaJWUkZx6b5/nP3Sd0fk9tpZSwKmqSJHPUDRlSbm2Z4XdXv6umOTV2GucdLp+1ocx1+3nj/vmL8+cvzp91Y0aQLI2nVjd0u+sctc9UdxjL9k9PTJXUWfGMu6x7d229FP1I1ERJ5qjYDCm3ttYwdFvfqO5IjTMxdGFUaVtd3CUFrMycVvaDlLIfpJQ9Ev9Dk6SuF161He4va23+13e9y1aaJFvr6nfcV9nqk5/sllYuCI+TFBb+3VlS8Sevtbqf7fCHdYWmmNUJX9zPB4yR7s5N+VW5Q67ua8tIjYvfPz81Py11//SYVEmNVasbeg0fAI+krHd3bbMU/kjUBF0jc/R1GVJubZPhLcfON6q7UuMiuJiPOwxC4JJdyN1U97akG4M3/jLp4LvXH3w3buN3/SWd/n1rrs3Zx3Ztxs+vP/jugH+/jJgpSf5rf9kX/2Pb3/q2dPeDoSZ9JlPI/d+U3DuRpA/3NJ2+MWJZ2hX4OfFlZ/v0hKS7Qq1vRnn+GzT+59M//bzh2wcH31PVb8/vkh64PyBeUkzA43dJB8/nGL5E+6d9nSduCHps3tj/EBghX0kAir77R9vvdj8s2rl2W/6XLfJnUAT9fFkd+aRJ0qxA/2Fqqu12KTDB9d20uMBAyV7ZLTm7aZtr/pn4H4xY+xvVdkmpxjm5JoY8NTNZ+WW51fVHo+LSR1HmqOqUgvxdg88/PkjqdNRIzi9fHq0oI/4Hvs7aUVYiKWLJjsh45xJzyOwdiS0LK0pKWquskc4QoKpf9fVnGKbu8ot/ctoSFR7Is548Gnl7uiS1VdulwMmuUyY0LlCyt7hPmZoDxP9gIGvHuRJJEUsNg3DOjsSWhRWWktZKa+Qcz0H4sOcgXKrCvDzriaORXxvZIMwj/gdjpHZXTZMkj5m8/Kasn3GLCt7LrSk9GjVv4Puk1ob8bPuge+usskuBwa6hGxQfKNk73EO3+j3if8aQ9bylRFL4Q9vDk51LzEHp2xM+WVRZUNJWag0fJATI2rxv6+C/u+ZKuxR4nWuT8IRAyf6J1fW7O2Z7nfifsVO/q6ZZUqpxTi6/6PUzFqng/dyac0ej+puM699rlBQeP9x96PkquxQY5DrvJsUHSvZOw3n3PvE/GCOtb/S19Rjm5PIPe2rGjTp+KrfadjQqyTl0re1NFkmRN+ZE9QWymEOm5EzvSiutt7S0WqMmmiXXXWqA511ql3voVp4i/gfeel871ippZWbixv6mnLBJD98f/9FPq3ar9VCl6dYEydm4I8253bwxYUJ/2ca7YkpfrSssbj/8jUnOEKCqpi4p4HrXS+r4iACp66M2yTlwK22rif+BD+o9Wt/0anXzYM36faz1n+RKiozPierLUDGHRuRM700rbba0dFijIsyjKOup6pSCJrgu5n7xQVJnr+EtxyqSV8YfBiFwWfJbt5+SFLzx5645vHTtzZmmV2V75D8d2/fYM4YMAbqQu6nptDTzu1EZpr4euNpqh+Q/1XWnPyXOX3J8bJVMzudqfJr4HwzhT0e7JM2devHOkKqCrm2/7tw1dF5Q5ccXpGuTTX0PE6ZeK10os0kxkqSCzm8T/3OlkQCE8amn2i4p8M6IAdMWjngPuyqbRPwPRqrbUS71Z/YYhNwaKanxcPtoyi7yXA2vNor4H/i6GkedpKXB8R5L/SenqK9tQpJ62sql/mgfg/ivRkgq+fNITpmeol80ifgfDDSyQdhaLvVH+xg4B6FlZIOw8BdNIv4HY6PnfLnUn9ljMOWWSEnl7w0ck32TfyVlxUaM8rnO7WwU8T9jyOqokbQkONlj6YTrUtTXu+OtLzFo3jrTKL+T0HP0F80i/mfM9HSWS/2ZPQbRt0RKqnSfd87KQNOiS78PLdvZKOJ/MDYc3eVSf2aPQditkZLq+28/a7o6JGVM9pgUTH4Bqepr8RnBc9W+2ijif+Ct9yObpLA7vCN5Jt0xS5JKW3udj2/9RkrZD1L23jTBoyrMb/ponuu1Y60i/ge+pnf36dLHq5stCsiYPn1L5OA1R1q6JGVM9pxoKTQiK0jqbD/iGFXZsLqbXm0UySvjDIMQuDwXct/okHT3j/u7f/qYMk0H373+4NBTgNn2N2w/Jd0Y8f3MvxnFcxH/g8F9+lGVpGv/bv5Xhq+r+m3z4g2du85q7l2hR54d7RR1kj7N+XWXiP+50nwlAWh06ovefutAXr5NkmQypS1Zs2p29MCKD602m61vgWdV/dvPbcizpT22/R7t3LEt3ybJlPbYj1bNlurf3rkjz7VkwH7hKxyVbVJoWFx34/OnrfvaJGlWaMSambGLh76aVdsNX65t/uQnbcT/YLTcmT1usQGBkr3c0aPP/EZa5v39BkeVYUKPo3U1FuJ/4Pti/WOkuryOqidD4t1LHS0lMsaoSAMfGjYv722TBkaqtFUbrudHP3mvhPgfDOYLHISHS4j/wdhyZ/a4xfpHSE3ljk6FGHuDajdbTlqkjOR5ixyHsi+y384q49CtP2kh/mdMmf1jpZoDHWXrgww9QL2flMiY5dOvbHPpWyXSkoT7Fvbu2HqRfTdXGn53x5reKiH+Z8y5M3vcYv3DpeZyx3mFTJIkR6dFSp0cVNNw8tmaSoskhadG3rAhLnpgvJPLec/zrthC/A/Gljuzxy02IFjqKHd0K2Ri/8PcltanQgw9QD1dliE2lzTgLrXCQvwPBpq08QcpGy9569aeUkkm//gh1lc1dbkfVDa+YCP+B74pNTLmkZiI9Ik6OviUsD1VnZLCbw3xWj4hzl/q7KrqkSaOvGzQnfc5WldnIXllXGIQApeu9+NTkoIXjropp2vffzrUP9vXEGqrDZ1z+a3bTxH/g6FcKDsr3TDxelvX+p/2pfvMvSHg8R8E3RYzoPaGgGfuD1g97ysq6B3Jris/vuB+UND1zFnif668qzAB+vWd0gAAIABJREFUqP7t5zZsc3X/SLLZ8rdteG5n0cCK/u6f/qq36z12dXLnhm2uHdnyt+0sqn/7uQ15hiU7vDaAr+jqPSepzfrPhX3dP5KK25r++YPC55vdVe45v9ycM4IR/4MrzD3nl5uzbYj4H1wtzMHJKZKaDqxprHJmHljbi9ZUlEhaGjV76A/JBuWebsnN2bFB/A+GZg6eliKpKc8wCAvXVFgkLY2aM3aDkPgfXElHq9/LlVJj713v/Sask3vOLzdndxHxP58D86TUFEnNr69tLuu77HQeXVtZIGnJdd7zfx2zvX5ASjFlrR+8Bcs955ebs4uI+J8rx+rokGSpeT+rr/tHUrOl8f1lBSePuqvcc365ObuLiP/BFWIOiUiV1HhqdUOr60VR7erSekkZU6a4rk7uOb/cnO1BxP9gtM4fKpYUcE/ChKEqqitty1+tK5RWLnD39Ljn/HJzzghG/A981YSVM1NzEiPSh+mf7O4pl3G+JLfYgABJ5Y5efTbiMsN0S27OrUheGacYhMBlsf21WtKNE6ZItvzGJ7730V23f3TX7R/d9b3G3PwLw223v/VtSd+MWZfm0c3jnvPLzTkjGPE/GFbdp2clne389gb33F4nznZ9e3XD+gKPwvj7wq0vBa2eN1xQkHvOLzfnjGDE/3xZXHUNQEU7N+TZZEp77Nlntzs9+1iaydm+4yp5K88mmZY+5qrYvv3Zx9IkyfZhobGhJz8/P81Z5Fyfv21Dnvo2e3Zp2sANBpG/be1Axm4kXBHdjmJJ0ixT4u/umFN0x5yihTP/1RQoaV/huV2uLwjFTo1aJu2rbKyR1NW4wyaZoh4IcMX/JBD/g5Gb6J8kqbPmDe95N9rfMKZAjLBMfiunREqNrzb06DNZ62tzpYwpUeZr+uJ/BswgBvggv9k7Zi5ZGqgS64HlhT9bWPiz5RXvlShmaeJDT/Z/Su0XmiTJ/t6vvE+Zql9Z6wwPQ1dEpUglv2hsk2Rt/DDP1UXkjP8ZMHkTIEnym7Nj5tKlgSqx5i0v3LKwcMvyisMlilma+LBhEIYlSbIfHsEgTJUsrkGYn+fqInLG/zAIMWb8JiVJsp/c5T0ma3fVNHkXtxdkNUqBN20YMsUnaMWUJKl8Z0OnJGvD6VwpY8o0syv+Z8BEY7g8funbpz+0JFAlttdXFD+9qPjpFZVvlSh2ScKALp/O336/WQq85+khU3wmL79unlTwi+YWSdbmPx1wdRE543++Q/zPGPILSpJkLx5w3tXvqmk2Pq5xOB+GZyTfeWxe5rF5mftSZ2UESqrMOlPmeg930oopCVLlzobzkqwNZ3OljCnJZlf8z4CJxoBL5T8xSVJnxYDbz9Y3qjs8K6fkzLoxI0iW6lOZx4+kHT+SWVphUXDG9LlPuftHJ66cEi3Vv9rQLcnaUJPrag9yxv8MmGgMGEr1yU92S5p13cNhg6w9/E5J8k9L7tjfWqiAH2ZO22jo6Ym76bqV0u5jzdWSWpv/s9i1E2f8zwLif4CLm7BySrjU/GpDrz6Ttf6TXCljSoT5mr7klUdIXsHnjkGIq9Lxl62P/FvH6VOux6c6tv9b9RP7h+oBcsb/+K9dEei1wpQZdrf09httNl0jW/uvfy99MyzD9Flf/M+wcUEY12yfnpAkzb0r9MibUdY3o6w5Ec/cda2kXRuac+qG39hb/H2THpB2/bqrSlJd15aD0l2TVse44n/uJ/7nyrvaGoCKTuZLpqVrVs2Ods3NFT171Y8eS5PyT/a13cxetX379u0/utswe1f07HuWmgbuLe2xvim+omfflCZJpqVr+jaLvvumNEm2OiKAfFGNvVuSTImvzwjpa+IJ8HtgxrT/MEmy/6Gpx1UY8u8LE5fJ+neHCmd/0DptWuLvZoR4xv/07DpzbvahwtmHCh860ziiie8xXoU8GBcoKbf0zKa2nr4XYd3tm06X5UqSLF2O0ZRJoXH7p0eq2pJ2vCCzJSBreupTIZ7xP90Nm04XpOUXpOWf2VTfw8s++CJrR0W53WtZXXlHm+ErDvHfMsdIyqv4zYvtru959lS9eO5AniSpxOFaGHL73sQUWV9fWPiz5a3h65xdRMb4n56iF8/9bGHhzxYW/ubFRo+vjGI8s3Z8NOJBuMdzEOYNGIRf25uYKutrCwu3LG+NWOfsIjLG//QUvnhuy8LCLQsL9zAIcRmmPBAbISm37NDmdldUek/t5jPv9b2WcPTnp9duLiuXIrISpw2XaBUyb19ykmreXFCwe1lLaFbyvetDPON/es5tPrN7QcHuBQWHNjd0DrMnjIT1/OkK78tOTUVHs8fX+1S2ubJAil1n9o4F8hB0356EebJlLyp+ekVb1DpnF5Ex/qfn6OaPnl5U/PSi4h2bmwdP88fIRD8QGy4pt+z/Nref71vWU7/5zPuu88658PzHXZKUkfz/1of0NfGY/ZLXz1iUIclue999H3rTvuQE1fxhQcH+ZS3BWcl3rg/xjP/pKdt8Zv+Cgv0LCv5vc4PrGYFRC3swLlhSbmnxpnZX9rGjddOZU963n5K1vbnc+xrfUd7i8Lg6hSTtnx6t6hNpx49ktgRkOduDjPE/jtpNZ46kHT+Sdrx4U0O3gMFU2u54t0sK+OHNg7Y79lY2B8wxBcyRpK4X9lufPmmcmGDSxkfiV6rujp+WJL/aPv32+EPfmOQZ/9P72jsVyT8tSf5pyfJ3mqu/iJ8HuNIsXT0XLzKWhU7ZPz1c1aVpxy2ZLROzpk9/KsQzeaW7adNpS1q+JS3/o031vbzliItiEGI8s/aelnSqafvvHTO/GfPqu0kH373+4LtxG7/pL+n0fzbk2gZraMu3vy3pxknzB/ngOmDdL2PuVtMjt5ff9e3zcd+NefWJQM/4nwu5L9ucOUNPvNxuo2EOkqQqW68k3RX62+/5xTsXxXxl9ffCf3mXpAu/O/7pKPfntzkn9AF1Lr63wby6+4Y1oUe+5+cZ//Npzs+bzfc2mO9tuO/nXVVj+JNgZK690gcwturrrJJseRvW5g1caa2rl6HpR/X19fX19ao7ebLOas232QZsYIoxtAjFmCSb2bBkZNIe275q9ii3wecuduq0oqmDLF98XYRsTcWfdNRMdaX7BIT8+7w5/24scsb/zImMVc+ugtM/aYv4j4XTFqv9+Q8q/s6u380jFghDMEcnZrVYsjvtuaWWXPfiyKy4ruxqe2qA/6jKJJlD43LSPL6+5oz/2RLlJ0fD6uIaS2Ty/hkhaq/OLLWUKzWHWCD4FGvjb5Zb66SYpYlffzIkVJJ6ql6sPpDXdGB59y17p/XNAmaO/Pq61te32uvyKl43/O1PWWdu3mqtS/F3p6qYQ27fMed241M4439eigxVT9Ga0++VRCzZOy1e7e8ur3i9XA/tIJFl3LM27nENwjsNgzAvrylvefete6fNcQ3CO9e1vrbVXpdX8ZphEKauMzcNGIRf2zHna8ancMb/vBQZqp7CNacPl0Qs3TstXu1/XF7xWrkeZhDi0pij0rJa3sy2N+WWvWl4LZGUFduWXdOU6u9Mkuncc8Y5+VfaCr+L7TBk3ivzPLJ7nfE/2VFB6jn3qOWkJfKWfTOmqL1gWdmb5br3FWKBLpW1eccKW40UuyRh2fqgyZLUU7bZ+vqB5tdXOO7Zc72z3adl70fOyb+WLb/o7y7ovu2z7jMuccb/vBQ+WT1H15a+VRL+0J7rk9X52xWV2RXK2k4s0KUyR83LavlDtr05t+wPhvMuISu2I7umOdXf+SH2pBUzMlcMsnX0LZHKbWw+1HZ+hSvdxxxy0yvzbjIWOeN/sqMmqafsUUuxJXLRvhnRaj+5rOwP5brzFWKBcEnMUclZLSeyOztyS08Yhm50VlxXdnVH/+2ntaE4s7pDCs6YnvxUyERJcrRuqjyV23gq05G4f0b/LGAyhyTlzE8yPoUz/mdL1EQ5alcXV1gib9w/I0zt5ZmlJ8o1N4dYIHiqtC3f3yoFrMxMHDT+R5rw8P2JD0uSqiub/3V/3e53zyksxZ0DFDZp4/0pGz322fiCTSszw+PU+9qvz71gC8t5JPFWnX/61ao7mnXofmKBcLVLDbjYS8YBZebQKTlpU4xrnckrW6ImyNG0urjOEhm/f0aQ2mszS0vLNT2HRBYMi0EISDO/G/dy5rXq61e79uYnTBv10dO/d2zfY894IsCz9kLuGx3S0HE+poB1P79+nfuxK/7nx6Em/TX3e9XbTwVv/KX5Ztm3frvukUq9+nNigaD4+8Kt9w2y/Lb0AB3sOvFeT9V9o4ztifHb/FLUZuMSZ/zPswHx+jTn+03PnA34ZU74bepZv7ptcZWOvEQs0BfqKksAqq8b2MbTz53WU//2zufWrt2wYcO2bdu25eXnD9b9I2n07T7wdRP9Z0lqcwz9HSBD/E9Xxx/aJFPw4gApIOQfpwWqzfrfzUNuCfitnJm6JS4yte9hYGpk8v75cYsvsWwAQ/yPtb3FImVMDjFfI3NodFaQLNX1R8fwRwE+d87pk2LWzfyHvsYLSX7xT05bslRec36Frpj20EvmlJS+hzEpEUv2zrl90UWfwRD/Y+0oK5GWBsebJXPITesCVWI9ySkz7vUPwhWeg3DpUnnN+RW6YtrDL5lTDYNw6d45XxvBIHTH/1g7zhkG4dx1gSqxnmAQ4lIFrZhxb3Zskuu1RERq5C375s0zjklrQ362ffjJv4ZmiP+xtn1skTJCp5glc8j0rEBZakoZupeqbJetRopdN31NX/ePJL/k9dc/tESS/a1dnZJkbd631T785F9DM8T/WM9bSqQlwclmyRz01XWBKrH9+dgY/jTjzqQVM+7Mjk1wnXfhqZGL9s276eJ/CyRJsf7hcgcFDcYQ/2Nts1mkjNBos2QOmZYVKEvNOc47XKqJK2fM3RIX7Rq6wamRN+6fn+R5++mcESw4a9asvu4fSf5hT824MUODziBmYIj/sbY3WaSMyWFmyRxiygqSpdrG0IVB9cmKZOfEXo8kGif2GkpcQvjezDD1z/k1OEP8T2vnWzZpVsitYVLYpNW3B8hWl1M5dj8AcNUyJK9Y29stUsbkIPM1ModGZAXJUt3ExRyfOwYhfJZ5wkxJ8v/qgr/xWnPzioiZkir/6h3SY7P/+ZSk4IVpI3wOQ/yPc9tvBt5s+kymgGXf9deppn35l/1T4Cpm+spcSWc/vewXxYb4n7qe352V7ppwW4wU4/fYmmt1tnNbwRgcLEbuKksAcub0XCR1p2jnhrx8Saa0NHNMzE0xMYqOnq3C5zbkDdM9hPEk1H/Ib/+4439U09RaLM0K7PtGXGzgRMl+zt6j8BF1tGN88kuPjkuP9ozt6bJLSvI3xvOMsMyDO/7nmp4jLXYpML5vKPrF+UudXdUOpfPtSviKnrZySYHJi7yvqPHfMsfkWevKe9uk/nCU0PTI29MjPdN9HHWSkiYMGaDijv9R2/utdVJMXN/1PHTqRMne/HGP0rmej2c9reWSAqeNeBB+LT3SM93n4oPQFf8z+CBsYhDiMgSlR81Lj/KM7XE0SUryD5I6329pkiT7yWUFJ722tNS8uaBGirzlWNwUDcYd/9O3n4j4vqEbNDVAsrcxdC9RT1OFpMDUhd7/e8kPmGIP2GoqelskfdBWI0n2t1YUv+VVV2LLXmSTwh9635Q86DO443/U8kFbjRSbMMG5ZvJUf8ne8HGPFvC7u3ST0qNuSo/yjO1xNEtK8h9RPE/q0GXu+B+df7+lWQp3nXeTpgZI9g7OO1yGielRSelRnrE9XR2SkvydYT/d5ZKCIhb7e20Y9mBccG51R7mjWyGD32q643/UfaSlQwp23aVOdN+leu8W49PhdypWF3dJAT98ZKjsn8GE+s+RCocpcMf/qLqyvVCaE9H3ty8uzE/qKm3tleuvIeCbJvolSZbO3hrJa3LYmq4uSUn+E3TNiMsG405euab3SEuXFOC6mE+I85c6u3nLcbxjEAIXNcE8yGRekqRTvbWSx0rnrGHfDLx5hLE97vifz2zHzp+WZsb1vbYxmSdIjmrrX5V2lTUDYKzd8JURtN8Pyx3/o6rj3SekuVP7Rl28aYJ04aztU837yuUeJ0bsKksAio4xS8o/WTRMTdHJfMm09NntP1q1atXdd8+ePXt2dHR94Yd0/4wfPbsKCmcfKnx+YFpPt6NYUuCEIabxMsT/uEwL9HibtdjuGMsjxTjQfrhRhmadSy0zxP+4BMR5vJFqrxrRbMvA1aHqz00ytFMMYIj/cQmf6nF+1VVzPcdlueggdMf/uEQwCPF5qn2vUYZmnUtliP9xCfUcuk1VDN0vJ0P8j0uU5++uprL3iz6oq139e41yN+v0lD1asH9BwSApgzXD9wkZ4n9cgj1/d82cdxhTrYcbZWjWuVSG+B8Xr7vUDu5SIUm9h98pWV3cJVNYzg8G7f7pfe3XJck/LXl61F9MNsT/uEwP82j3KWzibx98nl98kKTuAfePvdUOGfokRlg2gCF5xWWi58W8i4v5uMcgBIZkCvzqjZJ6rQM/gnY2+tw4wevLVx++3yFDE8/FGOJ/XOLMHmlDp6t5tYNPc77fYL63Yf3AGB7bpyckxX8l/jL33x//43KDyaPd58THFy7rGTBKV1kDkGbflCYpf9tzO4tc832pvujt59auXbt2p6EtyPZhYX9BfdFO0n/GF7+4QEna94lXTnXPrsomScuuCxl8O2f8T0KksT3onN3jxWV/IBDgpWf36YK0/DO7uz2WWutrcyUFTXZ9mXKEZd6c8T+PRBnzgbo876Yu2mMEfJn4hSZJspe9730D75yVqT9VpW3PuZ8tLPzNHs8ya+OHeRo0QKiPM/7nO5HGaJbmjz12MnTfBsYJv7AkSfZzIxiEWxYW7hkwCPPzNGiAUB9n/I/nIGxiEGIsdO45s3tBwSHvMdlwOldS4NRFfpKCVsxYeWye9799sRGSUmPvPTZv5fDxP6s8Jg5r8xy6l91jNG75RSRKsls+8L7sOKcGU+KEydLk5ddvfH+W9789plhJKaas92dtHD7+5zseE4c1eP7uYolAuFTn95zZv6Dg/wacd2dzJQWa+v4W+AUlSVLle973oWU7GyUl3DLEfagz/mdVlLE9qMPzdxfOeYdL0r37zJG048W7PT+HszbU5MoQ+eM/MUlSZ9MR74/rnFODuYKCBnDG/zwSZVzrdZd62T1GuBocfufc6mLJFHPoftOtg5dMSAiXpN1l3jMlHv6wrlBSuN/gSd7O+J8F4ca1pa0en4H1BwIBvmvC4skBUld2XadHVkRbU3anFBTiei9xhGXenMkrj0QZo1m8GjiG7tvAeMEgBIZ2rTlBkmP7HrvXir5Gn/8XaPI4Iy5YKzXolGGDc8b/PBhq3Em19a/GkhH3EuEq9pXr4yVp11Gvd5w+zfl11//P3r1HR1UebP+/+D0KISEJSQghzoQhNEhUhgKNhIjWlvq02FokKy7Aim8rgrwu69KoFbpai3hYBa1GlnXxchB9nqKIr6xJKa3oa209YAimATNIExKTDJlhCDlnmGQS9eH3x2TInsmBBJE45PtZ/pO979nZkXsOe+aa65Z021dsFPbX/9waOcmwrdT1pXHImUIgXBgXWwBIM5bdnWmSXIUb16zssmZjvkvKvLtrWTB/RsiVf2bAmo2FgfSPy32izyPjInKtxTxdkqvyf/27pca/qa3liaIjTzcrpODHILT+J2Vc3HRD5U+Nt109CoGAM0ZZIiR586ocBV3hno6CE//OcXilqNzUJPOIQQ0LFlr/M+ra+ChD5U+H/1sUfJCMsDLpunGS3BuO/N+nWpq7tnVUP3V0d76kqO/+rOsTsrETR0tyb3C8G3jx2lxQ938XOd1S8n2WGeaeB1bP+p+xc+OSDW0rzcfa1aMQCMPQmUm4M3gS5udLirq+xyT8u2ES7gxMwpl9TMKQ+p9eJ+E4JiHOSfTESEn1eZVFgTnpKah955aaemlc7uTLe5+TAxRa/xM9N36cofLHc6xNPQqBMHBTrk+QVLOhbPN6T2PXto7y9Z/9925JUT++Lbqf255NaP1P/DVjUwyVP43HfOpRCISBGzMxUlJDXmVx4H53qqD2n7fUNEgJuZOnBO53E25LSZBkK//n+pauD7GdLcUr7CV2hRT8GITW/4yZG59gqPw5daxNPQqBgAHyf3u+Na+qoqBrRrUX1JbkOFqlmNzUywJTN+76REmteSUl61oCX1XxNa3796c2SdGTl/aaXQut/xl9bXyMofKnnatUSJIcxZWB9E9C7yEeSdL1VyfPlFRSvejtU46ubZ3vvV25vERS5G+u7rVALbT+x5IaO9NQ+eNo6lCPQiAgLJljY62S6qqXV3mcpyXJ2Vy/vKxBkjU+xjzIYUFCm1e6AhyBB3N/cctoHszBJAT6dvXicVdK2uN+4NmWj13+z3e++PhZ1yN71FvQp/PYp+pvybAgofU/pjljrjRU/ricnepRCITh6fu3RH9H0t7mm5/vqPZvcneserD+0VKFNPcMXmj9z6TZo79jqPypdnWqRyEQvm4XYd5qxrLfrZ21bfPuQldXrMdkylxw17IZE7oHrL1bwfuvXvDjme7Na/JdTvcJdY/ERSsy8cnLm3561FviqvxpUPnTuD9emdj7+l/++p+Zhr2RMT8aqxJX7SuW2NvU8l9HvX2HhwApa/KUbF+5zVN3f0mdcbvVMnlJxKCHGfnrf54z1P+YY+Ot8tqO1y6NTVLLiTxPyOpgQBjISvlf97X/9wavO7/yv/OD9gQle7JSFixs353vPfzgkcPGQdPM/7m43/qfZwzNK+aYKdPkzq899LPYGWop3uANWR0Mw1RWyi/ua395g9edX/lyj0k40zAJFy5sz8/32h88YjcOmmb+Ud+T8L3DsgZPwsunyZ1fe/BnsTPV8q8N3pDVwYBByLJ8N7vtfZu3ItdeYdxuTcnsa04OkL/+J89Q/2MeO9FaU287fvS22MvVUpbnDVkdDIMzx5R7ny9vg7dmd1Xe7qA9KfeZs75KeMtf//OMof7HPMY6TTW7TxbcFp0lzwcbvCGrg2Fwsixzs9v22bxVufagBWqsKRnG+505KSO38a08b4Ot/C2bcVzi3DVJva//5a//yTPsNY81WWsabMfLb4udopajed6+w0PA2WSlXpXt+9TmOXF/SdD34ayWKUFXqanfyfX9K8/Taiv7V9DUDcoJBfHX/zxnqP8xx46zqtV2/PjS2MvU4srzhKwOhmHp1NZ32yTJ5b7hD+5e9k+fVP7DMZIUl/B6jm/KrqaDJdU3lBhHRC7J6XXVsED9T44hVxQX/WOT+2DJyZevHvML/68OXh0MCFujxz06tTOnrMFeV51jfDcxcdJWY2nKAIcZ+JtXnjPsNcfGWtVmO16/NHacWurzPCELM2G4YhICfTPFPvv7zgd+3XpkT/0je+oNOyJu/L0523Q6aLDrc4d6WResd/76n98b6n9MUdddVX9kT5NtcVS2vG+84AtZHQzDV3Lkhrvar938xb/2Nl+717gj8k8PBTX3DJq//met4SDJo36a7vnX3lNbbxm1XB0bN3/xlTNGGLQRp0+fPvsoXHQ++c9ZQ30K3wBtLU8cqX2j2d+8FzXdlPTkFbG9p3/U8UrRkadl/ktGSDyo45V/O552eSVNN5mfvKKP8NCw9O3/V9z/gKsPDMdPGDoKKitfrPP6PyK2RifemWrJ6qUufYDDJEnttctLamSxbg1a/0tqr11XVWPzSIrKtkxeHbJ3uPh49v6hPoXz5r6C4fi43exsKX6s9vDhrorU5Gnjrv5dyqQenzE0F9T8v5fq3f4E0LSoaXdY5vXZWtlx6K4j78v8vzYHLb0kdRx6yvF+vldS8kLzfz4csne42JB1lofu3OE3D5udLf96rNZumISZfUzCtwyT0HqH5Qd9T8KDdx15T+Zf9JiEB59yvBeYhD8arpMw72yT8Bvr1sKrh/oUgngKHIXb6uq7XktEpS2bnHHWOl9n7Tu31NRbU36yJam3qpmOoyvsxeq5t+Po+spim1fSuOyUzFW93nYo7cj8uP8BT3z07QtzJgPU6PR88PjJosDDTsq0hO8/YprSf/rH2bB5satmmil3U9AKXwEdBSvL/qaeezsK1jv/ttsrKWWB6ZZVvd52KP32mk/6H3DLN+x+d6rAUbStriFwv0tdNnlWr/c7Z0vx2uNV9q7r0ITsyzJWxfae/lFH+Qp7iVJ+tCUkHtRRvr6yxOaVlJCdkrGqj/DQ0HnjbPe7b6zrDgzHd8fbC6rKX6xrDVx+TrgzNS2rly+ftDtbXI8eP2H3+H+MsSamPJoa1/ujk+/48pJKWb6zNWl0yPZ1VZU2j6SYbMuU1Ul9XeVe3D6YXdj/gIpfWS/MmQy9KteUXU39DTgTAPJrOvXI3pOvudokSZEzp8fec3XC9b2mf9T58o6jT6pnsVDny287nyxpkzRzevLTP+yvdugilva0/eyDwsf04fMGY0Gl/f46ZU+1ru7tYtHZXL/9uNvW9SgdmW1JWd1bomKAwySpvX55iVuWqaHJjPb6dVX+I/R784tHydneXWQSdmESfp3OOg/DyFv/SBvqUxgKrjbbzqYP9viOSJKuvCrm1tXjrzb1+IC+sG7+r1t11bgXnx8bvDRYT1/Y7nVsUs+RX9ierd20xyfpypvGPfjAWY9zcfrR9yv6H+D627AsA3F3rPrDqVdK/d08l3xn/pgN946a1M/4Io95TZvmj3Xe29ebil9ufbD+UUV/+ExIiujLrc83P7r3C0nfmR+94d6vljEKT6YfD+WqUwSAhikCQPi6EQDCNwEBIGBQCABhyBEAwnkXdgEgnBF2ASCcQQAI6AcBIAw5AkDAoBAAwjcBASBgUAgAYcgNbQDo/xvC3w0AAAAAAAAAAAAAAADgKyIABAAAAAAAAAAAAAAAAIQxAkAAAAAAAADrmlWtAAAgAElEQVQAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAIQxAkAAAAAAAAAAAAAAAABAGCMABAAAAAAAAAAAAAAAAISxEadPnx7qcwAAAAAAAAAAAAAAAABwjmgAAgAAAAAAAAAAAAAAAMIYASAAAAAAAAAAAAAAAAAgjBEAAgAAAAAAAAAAAAAAAMIYASAAAAAAAAAAAAAAAAAgjBEAAgAAAAAAAAAAAAAAAMIYASAAAAAAAAAAAAAAAAAgjBEAAgAAAAAAAAAAAAAAAMIYASAAAAAAAAAAAAAAAAAgjBEAAgAAAAAAAAAAAAAAAMIYASAAAAAAAAAAAAAAAAAgjF0y1CeAoXHo+7OG+hRwkZvxj+L+B8w5kHlhzgTD2f7ZhUN9CufNrwpmDvUp4OL3dNbB/gf87/3fuTBngmHr/8z511Cfwjm6pfDqoT4F9O6NzI/7H/C7j2ZcmDPBYD12zaH+BywonH1hzgSDtTvzwFCfwjn6Hlep+Pr982xXqRW/tl6YM8GwlfZ7+1Cfwvk0/cCcoT4FXORKZu/vfwCTEBfAWedhGPnbP6YM9Sng4vfj75f3P8D916QLcyYYtpJ/UjuEv50GIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMEQACAAAAAAAAAAAAAAAAwhgBIAAAAAAAAAAAAAAAACCMXTLUJwB8M/jqfr7fWRJj3v2dxJTTxu0tTxyp3NUqKWr6lKQnzLFBe6V9ZQd/6e1xK6APp50tVY8er7N7JEnRibmXJS+JHX1Ow047W6oeLauzS4qOzr0stceA5nUHyios07cm9Tw+EDacrW8/Vlty2Ov/ybTQNOdnianmcxrmbH37scqSw5KiTPclzV8cExe8v+qpQ7sqTHduTgzZjuGupvWDx91H7P7ZFXXl/cnfXhwT098NWj/IqjiyMG3lqh6jalo/eLziiF1SVNL9yfN6HOfY+uI3PzPfunl8v8cHBsbZUrz2eFVg6qbmXnb54tgxoYNaiueUV/Vy48S5+y0Tgg5VXmWXFJWQe1lGj+OcWF+0ryLlR1uSehwf58Tp+evjtcWBJzXzAtN1tyWmmXtebHRUrK/5YLfX6f9pWtSsO1J+MmdUj0NVFh+WFGW+L+nmRTHxCjpOxfpPdlSa7tmUGLId58jZUrLW7Qi8hrfkJqctjo3sZZyvbn11mc3T5P/JGm1ZNml6VkSPQx112CVFx+Umz+pxnLr1H++vsPxgy/jejg8MkrPl6KPH3YGpm5x7WUpvV6nBwxSTbbEsTYoPfcndcvTRMrddUnRM7mXpPY7TuO6AvcIym6tUBHNUNmzd1/Kaq02SFDlzRuw9mQnX939h1tSwaJP7oCn5ndsTLEHbTz2yp/o1l6TImTeMfzpjjCX4du/tPby8rsetgPDQfDyzrCF7qnX12N72ttevq2qxebruSNmW8UuTos0jzmWYs/n4o2UNdknRkbmXpSyJHamgAZ51hdUVlqlbk0K2YxhgEgLn7POiZ2t37PGV+n+6KmL+0qR7My8NHeXyPr+uae+nPv9P6TeNu3Xx2AxTzzHuvZ9Kiki/J+6hnKjk4P1Fz1asqRq39fmxIdsx7HU+fFPz9l62R2zfEz0v6OH0yy1/bPnL3i+KJEkZ86Pvz4mYlxz8eOvufPiZ5u2lki7JWDFmw82XpgY/IL/7x5NLq6P3/SEilQfqoRAWAaATbz62Jt/V7xDTwrW/u3FCv0MuqEPbVm4s7Gf/N+18h7sRHa8ecZb0sr3lif2Vu2LMu7+fmNJe9/P9lQtOTT44NbZ7gK9us1s500n/YEDaC6pK7q8zbPDU5ZXVvZM4dWvq2EEOO62WqpyyOqtlemFShLP23zllJdVTM1d3T87TztrjNiU+x/uqCGfOuh2LXMbnf1e+a1d+87zXp8wyD3ZY69uLKkumme78KDHOWbdjUeWLjskPPRxjPMj+fE1/hvQPgrQWHNvxQL1hg/fIcxVH/j7uxs0TJ/Zxk2PrK470cbAPFlUcsZpvLRgfU3Myf1HFjurgkFDNyeJ8Xfks6R+cB6cKHG/lGl9LeKvyyqveSZy7xRJ0BeL0tZ79YC3Ft5RXWVN+tD9pjLP2n7eUv1U9JWeV4fWws7bUptQ80j/nibP+pcUup3HDbteO3c0/3Dkl05gBcnr+uriy2HjDw97iB0tPLph8x6rowCbPXxdXFk8z3bMvMd5Z99LiyheqJj/SvVdy1n+wW7OeIf1zfrQVVP896H7nceR5HO8kztkyKdE4ztlScstRh3GL3ePItbdmX35t9z2rpeSWow6r5Qf7x0c6T354y9G/V1/+06D73ckymyx5pH9wHrQXVB0Ivvx055W530m0bk2NN45z1h7McRifNVptDrutMW3XFabul9wtR3PK3FbL7MKk0c7agzllB6qnXr866CnDYVMyV6kI9t7eyuWH2gwb2g4ealt+qOU3Kyf/os/Ls86X97gP9rL91CObql8zJb+zOsHS1LBoU/UN9ZPK5xtepDQ1vHBISxaR/kFY8qwra+hzZ/PxzKC9bTZHta1tUmFqdNCnbgMZ1nw8p6zBaplamDTSWftZTllZdXDaw3nipE0JzxG8GI6YhMA5cnmfv92917jlU9/eXzuqb0p+5oEow7DmB2+vLzWMKt1Tv2bPqbv+ZL65OwPkff52996rxm19d2yyq/nB293LHcl/DT7Ijj2a/3vSP+jB/WXp2QepZ06oaK9n6d7Pg0NCnQ+vaN6eHr1vT0Sq27dgRfPcmrHHfznS8Lvan9urpY+S/hkyLAEGqMbpeLq3Tz9qnLW7pJxJiSmnpYjEu5Ild+2rvu4B+xzOkhjzzxMu2JkijJ121lb531e1Wqbump1ZOHt24fSp2dGy15Utr20f5DDfa8frpMQ7k0ZLI8xJl2VLtuMnDB8WtWx3eKyW5KwL9wcC55uv+DGXS9I0U87rMx76aMZDr0+eN02S993H6poGOaxpZ22JNP2OxDhJ5sQ5C6X82mLDXabqVZdrmulq7jIwqjn5rj/9YzXf+PqslQWzVhZcdePCKNnr37zrZG8vHDqOrS9+M7/3g7XudB+RrrxjfIyklPGzFkr5bntN94BjrzprreZvMwnx1Tlri/wpBGvK3DcycvZn5Oy3zs2Okr1u34raU8aRNb4GSdlTcvZnBP/XnRM6tfN4lZS6LGmMJHNSerZkO15uePw88UpNgzXlcqbu+dFR+LjLKWma6dadMx7Z9+1Hdk7+4TRJ3rcfr2vsftOko/DxymJJ0xK6hu1Lv/W+KEnO3bWFzq5hja/XFkuz7kiM12mZx123QDLslVTxiss5zZQ154L+hRct58nirvudZc4bV/90/9U/3W+dkx0te93+FScNH2v7qtYedUiyJnYPy42W1GRzVwXuWW073Q7Jsmx8pCTz+KnZkmGvpLpXHE1WSxr3O3x1ztrSwOWnddfs6wtnX1843ZodLXud3XD5KflcjzpajcN2TU2zSvJUPNo9rP21424p+c6k0ZLMSZZsyXbcGGls3O5otVpSmLowqnQtP9QmRS5ZdHn56mnlq6eVr5z0G5Oktic3ud7r40aOIueTvX1T1FF08jVpydwEi6S4hHtmSIdOvmy4enyv0H3QlLx88vn/O4CvWbtnXWG1rc/dXbEMq2XSrtnWwkzrrqnJVkl11ctrOw1R74EM63zteIOUcGfSSI2QecL4bMl2vN5pOMh2R5vVMo4H82GHSQics8//vM69V9JVMWv/lPbXd9P++q5l7T0Rkkr3NP3ZZRxWXyrpqnFdw/6UfNdVknyb1zW7A4Pcu5r2SvOXjk2WZBp7601S0EFUtLO+9Kpxt2ReqD8OYcT1eZGk+WOP7xkf/F+Msf7n3T82b5eUHr19S+LxPeOPbxm7Nl2Sb+lDvqrAA3XVn09tl5YuiUjVCCWPvn++tPfUFnf3A/W7uzxF6dF3Z1zQvw9GYdEANOHG3226sfvHQ9tWbiwMhwqdcDhHSL6635Z7e91z7JRXipoc+FrlxDFRkreyTfK3szfW/JL6HwxYy3aHR5K1e02uEYoYu/qKqTpQZnO4C5ImZw1iWEe1R4qOTOk6+KhJ0ZKnrUYyS9Lpgqoy6n8Q7pyessOSEnI2J6b6t5hjZm2eXH9NZcnh5ipnYpx5EMOaHV4palzgLjPWEiV56wN3GRXU7KL+Bz0ce9VZK8lqXJNr1MRVU29U8Zv5zk8Kxl9neLOpteDkJy85j9j7PFpztVeKGhv4ivzYSVGSt9kp+adlwbE3qf/BeXLilZoGSVbjmlyjJqy6Yq6K9tlqjhYkzQpM3RPv10lKmBTR+4EkSaeqvVJUdODxc8ykKMnr6X78dOyj/uc8cnqOHJaUcOumxDT/uyrm6MxNk+vnVhYfbi53Jmb6/7fvr3u7a1hK1zCNSluUdo8qXtjgffuV1sxV0ZIaq7xS1LjAw058apTkrXcG/u32O3dQ/3P+1L3iaJJkNa7JFZG4Kn2OPt5vc1QUjJ/uv98VnDhsl2SsBYpIXJz+A5X+Pc9z+JWW1FWxkrzVHin6zP0ualK05DHc76r3U/+D86Rxe1esx7AmV0T86iusOmC3OWoKkrrync6Wk3ZJidatSV21QOZY09ap3swyt72x0ZnkLwFqr/ZI0VGBqTt6UrTk8XZP3So79T8I1fnyviZJSxZNfvxMKCduzC9un/TZuurX1PROpen6nmGdpoZfvdPWY6skVde3SZHfClzXTRoXKbV91iT5t1S6llP/gzDUWXCi/kVHQ98Xm/42FClx0takrg4V89hxW6d2ZpY12BtbnUldLwgHNsz/luPI4LccO7sfzCuraV4ZfpiEwFdS2LT5U0kxa58fH4hDXJqRY94q5/IXfJt3em/29/e4vO93DRvbNcwUdfPzycfmufd+euqAa6y/BMjl8EkREwNX+iZLhOQ75pT8FUGFJ9dQ/4M+vLvfJykj5T/6G+Ruf26vpIjtf4joSgUlj1zxh7HlNzVvL21/xx2xIlmSqmq+kC6ZEiimSk25RPqi3CX5Z15R61Lqf4YaDUAY3gKLf+VMMU8f7A2r60X9DwbmtHy+CinQ2WMUe32ipLr3WgY+7Ky/q/bFOlH/g3BX43NJWhibGrR15Lhp6sruDGpYf3zFLzWI+h+E6mj5TDrT2WMw8bvjJB15v7sDqHVn2Y4HnEfsSlqYduuz487hd9lfqhf1Pzg/OjwV0pnOHoMJ302UVPV+S/DIKNPcUef8u8q31Yn6n/PI6XNKWhCbFhTKCTypdbVodBS+1CBp1jMpwcMUvyjtkX3fDlrkq08dhS81iPqf88Z3qkI609ljkPjdREmOrvudr2pbnSRLXvCiYFLk4vSf7r86aJGvvn9X1bY6Uf+D88PXXiGd6ewxiL8+UZL7zOVnTVurpOz4oEXBNCrKqq6IzwB+l+vFOlH/g1Cdn7kkxd0QmvIZc8MMSSpr7Ox5E//iX0tuSJ45yN/18r4mUf+DcNP52pGy+x0NdkVmT536XGLvYz5sbJOUHR+80NLYcbnRkqflQ9+ghvWrvf7FOtG8MswwCYGv5vM/b2+VNP/340PKUJJzzH99N6179S5nZ6mkm6KCh42ceJW6Ij4D/F3U/6B3X35WLemSn87uLxlSdaC9SNL8iHlBD9Qj715xifTFXw78z0B+0ZbXfKL+Z6iFRQPQ4Jw49ObfducX+hvPTKbMBXctmzGh54iPnS5XoBUteNSJNx9bk+/KvHvTj7Vt88ZClyRT5t2/WzZDOvHmts35gS09jovws6/0yNOtUvLk3yZ0/rz8LIOPnTIUBTWcfLqV+h8MVndnT7eUyGjJU+FrV2zEwIb1/MZkR7Wn+4cCt8NO/Q/CX0qESXLlt1Q9HGMI93TWH5axy2egw4I1OwyP5wV17x6m/gd96e7s6WaOSJJqP/O1KqY7G2Qdd80dSdasUSpoHshxm6uNk7D2Izv1Pzi/ujt7uqVEJEgNFb5Tih0jST6PXbLGR9fUFq+tqbJLUoI1MX2NZULPaR9wKmjqniixU/9zXpkjzJJzd0vFqhhDuCfwpGY2/pgwdZDZncYqw7/d/rq3D1P/c95F93a/i4yTmio62qRIdXjskhIHG9P3Br3UP3HYTv0Pzq/uzp5uKZExUuuZy0//j7bGxtWxhgxQh9fex80ldRUCBRS4K+zU/6CnMY+vnvb4YG7w3t6jT7qkGZMe/1bHonfOMri63lAUVFn3pIv6H4Qna2LyncnjskaroLHX/f53BROuD00Sj7RESJ626g5p9MCH9XrwLgVut53mlWGJSQicu85jn0qKyTprKMc8Ml0q3eMtesCYAfLfvLvyJ4TLYUjOFTZt/pT6H/Tly/JSKX30t1y+h5/xbC+VpIz0iPsfjJ6X3P2IWlXzhaSlcy4NuXGq6RLpi6KaL6VeCoT8t+pS5F1TSv3P0LvYGoBOvPnYmo2B9I8kl6tw45rHth3qOcJlWBPRP+rNE0GHKt62ZmPgQK7CjdsOnXjzsTX5hi2bQ26AsNNY80u3FGPend77Vy271/zqFjU5kvofDL3uNb+6RUemUP+Di4g5euo0SQ277qqr8n/FwdlafFdliaSFSbPMgxvWveZXN388iPofnAcxi6eu3DzRmtVfjUr3ml/d/Oki6n8wRJy+Vkn2mn25XekfSQ32un23FBUXdI/qXvOrmz9dRP3P18AcfeU0SQ07VtZVOEdIktNTuLKyWNKCpEzzaUlydpyUNC0iXmrc73xp5SePz/3k8bmfPL7SWbi/w3iw7jW/uvlTRNT/DBFnR6ska2SU1FZQ/eGKj/8y5+O/zPn4LyuqqwqCvu7cveZXN3+6iPofDBFz7HirpDr78trGrpfcLa7lZW5J2ZeZAi+5u9f86uaPB1H/g8E69c4hSZE//tbIoM2VruWHJFPyO/N7jx93r/nVzb8iGPU/CFcjl1xp3Tp5XFY/+cn2jgoZ10vqlhIZKanC16nTAx5mWG6pm/9WNK8MU0xC4CtxfV4t6aqRJsldePLBeyt+Mq/iJ/MqfnLvyT8Xfh400hT13askta65t7nI/0G0y/vne917Jd0Ud3NgraXuNb+6+eNB1P+gX+4vSyWVepY+2pX+kVRU6lu6ou7hojPfDetqCTqztlc306UZkqq/rNJpGdf86ua/FfU/3xQXVwDo0LY1+S6ZMu9eu3aT39q7M03++E5gyN/yXZJp4d2BEZs2rb07U5JcHx80BnoKCwsz/YP8+ws3rslX183WLszseYOeXPlrVvbOmEjCEBnR8kRJvRT1qyv7bPFJMSflSLuq62pGSL66zW4pOelnEYH6n0nU/2CgRigiIk2Sx7E9dA2vlu0OzyCHSYpYclmiVPdibbt02ll73CZlXzbBHKj/6VHhDoShiFmb03MWRumwa9eiQ3+45tAfFlW+e1imhZPvfDhmsMPiFidNl0peqmuS5Kzbnx+IB/nrf+6g/gc9jYr9liTvR6+2huw49qqzdvCHi1mcfKV05KWTrZJqThbnSwuTrSmB+p8eC40B52pUdJokb8kroa8lTrxS02D8ucbn/zEhe8qP9mfk7M/IecM6PTtKUlXuv8sD7yWNWXxZqlS1rfaUJGdtqU3KvmyKOVD/02OhMXw1ozI3pd+6IEqHXTsWH3p87iePL658+7DMCybfsyr0QaJ8ffkLDzY4Dwd+Ptzw9oOlL73enQGKX5Q0Syp+qa5RI+Ss/2B3IEXkr/+5g/qf8yhiTJokz+Ee97u6VxxNPUbXri/9e25dUyB4J3vd4Vz7hzu7M0CRi5MtkmPbyTZJzpNlNik7OdUcqP/psdAYcK4iRqdJ8lT0uPxs3O4IfgEUYdo63ZodLbvDnnPgvcwD7+WUVdgVkz119uru71ONXnJZsuR+sbZdkrPWYQvEg/z1P1ylYsAcRSdfkzRj/C+CrtNOPfJ6kxT5m5v6bPGxZIxfIr22r8EhqanhhUOBg/jrf+ZS/wOc3cgllyVIDS/Wduq0nCdO2qTsy8aZR3Q1r9xJ8wq+dkxCXJQOPOtc/uvW0k8DP3/auvnXjgd3GTNAl978vGXtTRH6tH7N7RU/mVfxk9vdmz9V+k3JW88sEyYl58TNl/Zub3ZLcjXv2BOIB/nrf5ZS/4M+uD4vkiRlzB+7b0/i8T3jj29JWDv/EknbH23a4h7cG0SpN49ZKm1/zVel03K3P7dXmj9mRfKIrvqfJdT/DL2LagmwQ8WFkmmhcWmuCTOW/e5urdxYWHxo2YwZkmYs27RpWfDNJsz48UJTYb4r5GiZd3cdZ8KMWZkqLJRp4V03dm25cVZmfmGhy31CYhWwMLWvtHKXNH2K5WcRfQ86HfvbOZN1pHLBP5xSVM6UyU+YYyVj/U/Hq6WOp91eSdOTzU+kEwlCn2KXWqJtDo+t7Iimpq6OHS2dlq9lXVWZTZJkb/OXnA5w2AjFpu6aqkfLSjIdUnRi7tTUJbHG+p/T8tWuq3LYPJKisy2pq3mzFWHI6Smv8IZsc1W0NDtj4syDHRbzw9cn67HKF69xSVHT75s8f3FMcP2Pr/ipmnfzvZJMC03zHyYSBE38mTkp31mbX5GvtHmr/Kt9dRxbX/1mviTJ7muWBpPaibnu9TQ9XrEjyylFXXl/2rzFMcH1Px329dUf5XslJS00z1tFJAjnaMJtKQm2mgZb+T81JWOVf7WvjhPrK/d1vZbwnZLGSKeOtUlS9pTvrQp8dmseNWXVFdEq2mfzuvZ1TFnsL7WKnfXGFK0tf2tOjRSVmjslY3FscP1PR/n6yhKbV1JCdkrGKiJBX43TU1YZ+qTmrGxpdMbE+5/UnD6npMMufzDo5lUx8TotdVSsr9mx2+vcUFN4zZSuriBF/2TnZD1e+cJclxQ1677JNy+KkXyG+p+OwvU1b+/2SjIvMN28ikjQuUu8zRJnczTZjn6oy2etio2UJF/d+ur9gdfwXimypq1Jkt1x2K647JBhnqa86qq56aldL11ip79xudYe/fschxRtyb181uLY4PofX9X66sM2j6S4bMusVUSCcI7il1pibI5WW9lBTU1f7V9s2te4rsoemLrtZ5bicLbUV3hCbt5a0djujB3d/ZI79vJdU/Vo2YFMhxSdnDs1fUlscP2Pz7WuqsLmkRSTbUnnKhW9qnTd8E6bFPmbzKDXFO/trX5NmnmD+Rf9XaqNeXzlJO2pvmGdW4pccsOkpzPGBNf/dL681/nkoTZJM2ckPz2fSBCGAXtbhzRyEMPGXrZrqh4tK8t0SNEJuVNTlsQGN6+016+rcts8kiKzLSmrSWPgbJiEGM6cnaWSPq33R3keeiAqWZI+L3q2ds0eX+kLtX+eYz7T7iOXt6DKF3KA0iqvyxWV3N3IEnXvn5K1zr18Xr0UMf+e5IdyooLrfz7/87O1m/f4JKXfNO6hB4gEQZKqXF9I0vyxu38ZeDxO/o8Vv4z/lhKlNfwAACAASURBVE4u3fvFXw78z4qbe1nbK1Tp51WKSJWkkU9tGatnmufe5JEuWbpi7IabLw2u//lyyx9b1uz9QlLG/OgNvyQSdKFdTAGgE26n/LU7+T13Ot0nNMMQ1jlx4sSJEyfkLi52O52FrtD0j2RK7h49IdkkuczJgwz7mBau/d2NBIS+iWpcR/2Lfz1hHnWWd7kjYn87a+Zvz/x4Wmo8+XSrcqYnpqjj1X8debp13B/nXD5XLU/sr1zg1e7vkAFC70aYk1JzG0vyPB5bWYmte3tirsWX5/BYI0cNZpikEebYyVtnG+urT/vrf55LipCvdnmJw544ddcVsWqpyikrqdD0rby7irDirNuxyOWSTAsnz384Jk6SfFVP1ezKb9i1yDfv9Sldy3sNcJgkc8wPN8/4ofFX+Ot/nkmMk6/4rtJ3DyfkvD4lVa1vL6p8sUJ3biYDNOyljJ93f9OO57y1+RU7DC8ur7zf3PCcs9YaMXbQB4y5bvOs64xb/PU/z46PUYf9rk8/so+78fWpE9X6waKKHZ/p1s1kgHBOzEkZuY1v5XkbbOVvGV5LpOamtObVNFgj/B+mjVl8Rc7iXm494buJstU1vNN8anEgymOOnbUlY5ZxkL/+Jy9pjDrKV9hL7Ilz37higlqKbyl/q0I/2kIG6Fw5619a7HKqZ7KnYcdi3w93nkn2SJL5vvQ7Fo1S18XMqLRVabfqkx27vW+/0pq5KjowKPonm779k+5fEKj/eSYxXr7ClaVvH064deeUNLX+dXHlC5W6ZxMZoHNlHj8rt/HveZ4m29G/G+53llxLa56jyRoZZRgbl2u9dvGZr6FEJK5Kn6OP99s8h19pSe0O5MVO33L1dOOv8Nf/5I2PlK9qhf2wPXHOG+mJaim55ejfK/SDLWSAcE7MSem5jQfyPK22sgOGqZuca/HmOVqtkYH0T+3BHEerFJMdkhOqs+f40nZdYep+yR17+dbZlxt/hb/+57mk0fK5lpdU2BOtu66IV8vRnLIDFZrNVSpCVLoWvd4kRS5ZNNkY9HEUVfoX/3o642yfIMeNefz2aY8HHbPuSZeWLEqwqPPlPx190hW3deXk63XqkU3VN9TpndvJAOFiZ3gvcaDDzGMv25p5mXGvv3nluaSR8tUvL3HbEyftuiJaLcdzysoqNHUr8Qv0i0kISOn3WJ7JuTTw06UZD5jXqmLNHt/mnd6b/QU/ruYHb68vVc+cUOua2zvv+pMhJ2SKuvf5tHuNR/fX//x+bLI+//O9js2fxqz9kzlD3udvdy+v0tbnyQBBqTfHH7+5l+3z5kRor6/og86qm/3Jnn6lX9o9JnnkU38Y/5Rxr7/+59GIVP3Ploca1pRGbN8SN0+fP7yieW619v2BDNAFdTEtAXbC3TPGc4bLHViu68Sb2x5buXLNmjUbN27cmF9Y2Fv6R9Kg4z4IG76635Z7+1/8q08jDPU/7a1vtUrJMXMjpIjYn0+JUqvzvxrOfgwMW6OXXDH9OUuitevHaGvi1F2zU689x2EhjPU/crY02qXs+LFmjTDHJudGy+5wF5zXPwb4mlW96nJJpvvSb+2K9UiKSH14Ss5CSd53A6syDXBYbwz1P05P2WFpYWyqWTLHXH1flA67PuYuAylm8dRbnzVfGXhATrKOu/H1Wdddc74Ob6j/qWn5zC4tHDsxRUqJ+fb9UbI7P2ES4lyNWXzFj/JSUgNTN8GaOPeNjFlzB3bjlIgEdRUF9cFQ/+Nsdtml7LETzJI59vLcKNlrjjJ1z1XFKy6nP9mzKjremOxZIMn79iutkmSOMEtS1JXXhBaZpt1mMkuq7Gjs8y2Vju76H6fnyGFpQWya+bTM0Vn3Remwq2D/1/SXDQuRi9N/kGexBO53cdbEOW9cPd14v0uJjJOkaNPc0H+7xNsscZIqOtr6PLyh/sfZ6rJL2XGJZskcm5YbLbujgvsdztXoJVfMfs6SHJi6MdZE667ZlwdffvpXBIvJnT6zK/0jKSJ+9RXWbPW6gpiBof7H2XLSLmXHx5slc2xKbrTsjhqmLgwcRZVTXm86qMjfrJz8uPHbTk0Nv/J3AvW9+FffDPU/TZ6/uaQZsdfHSXFjlt8QKZd7a+X5+wOAi5ahecXZ0mKXsuOjzSNkHjsuN1p2Rz0P5vjaMQkRtswj0yUp4rtzLg3Zk7F4XLqkqs/dkqSinfWl/pxQV/pHXTmhmyT5Nu8MrQo2MNT/uLzvfyrdFJVhkkxRt9wToU/r3yg8738VLiKmSzPkr/b5igz1P+7Ov5RK8yPmJY9Q8si7V1yiUs/GovNwshi4i6kByN/Tk3n3pmUz+h50aNua/EJJpsxMc3LyrORkTZgwQwcfW9NjCTBcrGoamkokyfv0/oNPh+xrdS74h1Ma98fvp8ztNRvUEKj/Od11nOljut69TRk9WvKWt3dIA0q0Y3ganZU0OSspuLanzSMpLWL04IcFCdT/jJbaP2z0SNGTuqZihCVC8vgcPmX1s+Id8I3ia6qQFDW1xydkqT8zmfJdroqOJiluoMN6013/o6Z9zS7JZOn6LmncxAjJ23CMuwwkKSZr/HVZ44Nre3y1kr4V8VXrebrrf9T6UVOtlBR43I6ZOFryNhzrUBYvKnCOxmQlzcpKCq7t8TVISosYUD2Pte9h3fU/OrWvsUFKmNT1aDlmYqTkbWXqnqOOhkoFkj1BlyJpt5nMu13Oyo5GxcR3bYtIMPc8giTpsK9Riu91V3f9z+nGj5qdkjm167kvfmKE5D15zKc5/Nudu8is8dOzxgfX9rQ1SUobZajniRjT17+df6WwXnd11/+obV9jkxQXeMqInBgheVp53YKvYHRW0uVZScG1PW2tOnP56WuvkBQ9/trQOda1gliFr12xvV+odtf/qP3DxlYpJjB1R1siJI+Xq1QEvLe3cvmhNinyNysnhyzy5fis5aAktT256fCTITdzuW9Y55bitq42Xd/rcbvrf7qOM3Nc13OfJX6U1FbW2KnJZ1+XBvgGGz0qTbJ7OmukkNcYNW1tktIiRmrEgIf1prt5ZUTnh41tUmTgwXykJULytDt8yqLQbThjEgJnNdJk6mPPp50uKVmfu6rUZ05oT31p1eduqfcin+76H7n3nyqV0gPvciebR0q+aufnygw9LBCkq9rnP741SSr9otzVY7a5Pi+SNOk/+mzx6a7/GVF1oL1IykjpWlMs1XSJ9EWp63+UMYBVxnCeXEwNQBOSzZIKiw/1M+ZQcaFkWrh20++WLVt2440zZsyYMWHCiYMfk/7BABjrfwKmjA56i7zkVOgKnUD/Wt6rkyGsc27Dgup/AiIsQW+keqo7vuKpAhcRQ/1PQMLEoLuMy9F5oU8KYeLY+/UyhHXOlaH+JyBhYtAxa3ncxnl14v06dYd1OspXFO2aU1Tc84uSNf3nhAz1PwExwVO3oZrXw18nc/SV0yT5Gpw9djl9TknTInpP/xjrfwLGBz/3Oat47jvP6t6v05mwjjnGZJXkO9Xz366mrUlS8EphBob6n4CY4H+7Jp4ycF41vlcnQ1jnXBnqfwKigq9SW5m6kKTO9/YeXn6oTaa4ratD0z9f8cjd9T8BU+OD4j4H63nuQ9gbNSlaUrsj9EV4p8MnQ05igMN6MDSvBIwOfjBv48F82GMSAn0yRX33KkmdvSxF4+wslXTVyL6iQQNjqP8JmGQOivuU8i439OWWh05edtPJh4t6VF8EJ3tSUy6RVOr6n5BRVa4vZMj09HL8M/U/AemmoAhKUc2XX+UPwGBdTAEgzZiVKalw42PbDgXW+9KJQ28+tnLlypXbDLEg18cHzww4cWgb7T/DTIrp8oPfmxn63xzzdEkx5t3fn3nwe/3W/0wKWjisvD3oxeWZQiAgRPtr/y7MPHDktaArnNPO2uM2SdHxgS9TDnBYKH/9z51Jxm86+IKvps6aMQK+SSLi0iR5y/aFvingX/NLaaPiBjGsB3/9zx2Jxr0Nx4IOcqYQCMNW686yTVnF+TuD30WqOVmcLynqW9d8tQdVf/3PHeONNUINx4J+11fOGGGYOrXz37vmFP0zZOo6a0ttkqJMc/3zalR0miRVvR+ybktH+bY6Sanfje396P76n2VJxnhQa/DUPVMIhEEalTBZkvfIR6FPav6lwTR5VLxOnxnWtSKYcdh7DZLMPzizfFgwf/3PHYnGvSeDn/vOFAJhsNp2lv5lzscf7gz+t3OeLLPJsOZXxJg0SZ7Dr4Sul9SVE7ohpr/6n2XjjXtbg//t4njKwDlpf+3f72UeOPhayNStddhkqPyJGJ0myXPyw9BHJ//SYH321Prrf4KvUr3BV6lfOWOEi8F7e48uPySZkt+5vfcWH0vG5PLV00L/W5k8U5Ip+Z3V08r7r/+ZG7RwWFlj0GdgZwqBgPA18tr4SKktz+0JehHYXJ/nkaJjA+8lDnBYKH/zyp1JxmqWkABH37kNDBdMQqBvl5pS1esaXkX7WiWlf8+/4FfXsPf3fx46bGd9qaTUS/ur/1k61ri32hl0kHTe5Ya/2kfaHjrBvtzymk/S0kD1VOrs0RlS0Rbvu0EP1J0bt3whXfLT2X2kSvz1P0sijP1AISmivsND+FpcVAEgzVh2d6ZJchVuXLOyy5qN+S4p8+6uZcH8GSFX/pkBazYWBtI/LveJPo98Tlz5Z06jh8fePM+/DF+3HvU/KQlx0w2VPzXt7epRCASc4e/j8eRVVRZ0zZn2gtp/5zg8UnRu6gTz4IYZ9az/ibg2PtpQ+eNPAoUUAgHfcKnXJUhybSjd8VRrU9c2X9VT5bvyJUXN+1nMoIYFC63/iZs71mSo/Gk65lOPQiAMQzETR0uqfa76g4Kuh9PWgpP5i5y1UtL9k6wpX+XYofU/MdfEJRkqf1qPtatHIRAwQGMmRkpqyKssDkzdUwW1/7ylpkFKyJ08JfBaYsJtKQmSbOX/XN9yyr/J2VK8wl5iV0jBj0Fo/c+YufEJhsqfU8fa1KMQCAOXdn2CJOeG0pfWexq73jTpqFhfsWO3pKgf3tb1pJZ2m8ksaXflS+vrK5yhw668ptfnr9D6n/hrxpoNlT+Nx3zqUQiEgYucGCGpKa+6JPAavq3g5Ie3OJqkuNxJqYH7XeJtljhJtqMfrj9Z19UD5KtbX7o/KCcUIrT+J3JufJyh8qftmE89CoGAAfJ/e741r+qo4fLzYI6jVYrJTTUFpm789YmSWvNKDq5rae/a5mtc92+7TVJ02tJeM6Oh9T+jr42PMVT++D+3i+IqddhzFFUG0j9BMZ3zIbT+x/Kt2JmGyh9HY4d6FAIBYckcG2uVVFe9vMrjPC1Jzub65WUNkqzxMeZBDgsS2rzSFeAIPJj7i1tG82AOJiHQt4zF49Il7XE/+GxzUdfn0Z8XPetcs0fGNb8y5sZIKn3B8eCzXrdCh921uNe62ND6n+Q5Y9INlT9uZ6d6FAJheJqXE50haW/zgj92VvnDPe7Ohx9qWFOqoOae5JE/TZfkW/qQ511317AtDzVvl5Q++obeY2ih9T9dKaJA5Y+/PSikEAhft0uG+gTOsxnLfrd21rbNuwsDdWomU+aCu5bNmNA9YO3dCt5/9YIfz3RvXpPvcrpPqHskEMRf/zPdUP8zOuZHMSpx175qif2ZWv6r3NsVD+q1PQjD3ois1KnZvjKbp+7+kjrjDqsldUnEYIcF8df/PGf4YqU5Nt4qj+34iaWxSWpx53lCVgcDwkBWyp33+V7c4HXlV76YH7THdF/KLPMghxn563+eMdT/mKOnTpMrv7b4ZzGz1PrxBm/I6mAYprIm3riw/c1875EHPj1i3G41z1t8Pup/njXU/6TEfsvqrM13238WY1XrJ895Q1YHAwYhyzI3u22fzVuVa68ybremZBinrjkpI7fxrTxvg638LZtxXOLcNUm9r//lr//JM+w1jzVZaxpsx8tvi52ilqN53r7DQxiAOeZ77vO9sMHr3F35wu6gPeb7UjLNgcsM87g7nvG99GCDc7drx25jmW3UrGemdA8z8tf/PGOo/zFHXzlNzt21hbfFZKq1YIM3ZHUwDE7WpDnZvv02jyPX7jBut1pmLTa8hjePvzav7cPcuiabY7/NODDakpee2vvrlhOH7bLkGep/zDEmq5ps7qrbYlPVUpHnCVkdDBiErFRrts9u87jvL3Ebt1st6cbLz6zU2bm+A3meVlvZgaCnjKCcUBB//U/wVep4q1ptx11LY01qqcnzhKwOhmHp1NZ32iTJ5b5hnbuX/TMmlc/vY1XSs/LX/ywy5Irion9sch88dPLlzDG/8P/q4NXBgLA1etyjUztzyhrsddU5xncTEydtNZamDHCYgb955TnDXnNsrFVttuP1S2PHqaU+zxOyMBOGKyYh0DfT2Gd+3/ngr1tL99Sv2VNv2BEx//fmm88sAJY5fus9nctf8JXucS/fE3SA9HuSbu51nTB//c/vDfU/pqjvXlVfuqfpz4ujbpb3jRd8IauDYfhKHr1hRfvcLV8U7W2eu9e4I2L7g8bmnv9Y8eDY8hXN20t9S1f4gob9Iajgp5u//udRw97kkT9NV9HeU1ty4lbo841bvghZHQwXwIjTp0krDEeHvj9rqE/hG8ZX9/P9zpIY8+7vBK3w1WVEx6v/OvK0euwd0fFqqeNpt1fS9GTzE+m93Xa4mvGP4v4HzDkwHF93tBdUVb1Y57FLkqzRiXemTs7qJdYzwGHy1/8sL3HIMn1rULP6aflq11U5bB5J0dmW1NVJvbeyX+z2zy4c6lM4b35VMHOoT2EINDlbP36stuRwV0WqaVrCnN+l9Px4bIDDJEm+4rtK35Xpzs2JcSHbn6p5N98rybTQNP/hxN7XDrvYPZ11sP8B/3v/dy7MmXxztBYce/el+tquB+SoK++YdF1Wv+mfgmObHqjXwrSVq3otoJLUYb/r049kvnXz+JiQ7eurP8r3SkpaaJ63anxft7+4/Z85/xrqUzhHtxRePdSnEORUgaNoW11DYOqmLps8q9ep62wpXnu8yu5//IxKyL4sY1VsH5+zdZSvsJco5UdbQuJBHeXrK0tsXkkJ2SkZq/oIDw2dNzI/7n/A7z6acWHOZIAanZ6Cx2uLA09q5mkJ1z2SktYz1uP0FL5Se2S319n/MEnqKFxZ+rZM92xKDF4drKNwfc3bu72SzAtMN69K7H3tsKHz2DWH+h+woHD2hTmTAWorqC7eVtcUeA1vWTZpeq+v4Z0tVa+4XTaPv7wwzpo4dc2kxD5et1StsB+W5QdbxkeGbF9ffdjmkRSXbZm1anzva4cNnd2ZB4b6FM7R94brVWrpi3WtgambfGfq5b1epTpbah497rZ7/D/GWBMtj6bG9zF1XctLKmSZvTXkOtTnWldVYfNIism2pA/Xq9R/nu0qteLX1gtzJkOv0jXl9ab+BvQTAGpqWLTJfbDP6qDOl/909En13Nv58l7nk4faJM2ckfz0/PNeOxQe0n5vH+pTOJ+mHxg2EeaCSvv9dcqeal09tpe9zub67cfdtq5H6chsS8rq3hIVAxwmSe31y0vcskwNTWa016+r8h+h35tfPEpm7+9/AJOwC5Pw63TWeRhG/vaPKUN9CkPB5f3zzqb39/hKJUnpV8Xcunp8Ro9Yj9vlfWNd095Pu4IXfQ2TJH3+53sdmzVu6/Njk0O2P1u7eY9PUvpN4x56YGzvpS0Xux9/v7z/Ae6/Jl2YM/lmcXc+/Myp7aVfSJIuyZg/ZsMvL+0l1uPu3LLr1Jq9/mHKmB+94Zd9pH/05ZaHGtYoel9oPOjLLX9s8R+h35tfzJJ/UjuEv50A0DBFAAhfNwJA+CYgAAQMCgEgDDkCQDjvwi4AhDPCLgCEMwgAAf0gAIQhRwAIGBQCQPgmIAAEDAoBIAy5oQ0AseIaAAAAAAAAAAAAAAAAEMYIAAEAAAAAAAAAAAAAAABhjAAQAAAAAAAAAAAAAAAAEMYIAAEAAAAAAAAAAAAAAABhjAAQAAAAAAAAAAAAAAAAEMYIAAEAAAAAAAAAAOD/Z+/+o7uu73uBv3rrhQiEACEGSGKIQPFXuMCwAdktt66ds7McKB7wqN1atTLXbUrvae1WJ2rtKvWs2O06hrXWe4se9dSFQ61eV2vnNgQ0g1wCKPIjifkGEkOAEBIDs8f7RxLy/eYXARH8wuNx/Cefz/v7+X4wn/c3+Xy/zzzfAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANCYABAAAAAAAAAAAaUwACAAAAAAAAAAA0pgAEAAAAAAAAAAApDEBIAAAAAAAAAAASGMCQAAAAAAAAAAAkMYEgAAAAAAAAAAAII0JAAEAAAAAAAAAQBoTAAIAAAAAAAAAgDQmAAQAAAAAAAAAAGlMAAgAAAAAAAAAANKYABAAAAAAAAAAAKQxASAAAAAAAAAAAEhjAkAAAAAAAAAAAJDGBIAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANCYABAAAAAAAAAAAaUwACAAAAAAAAAAA0pgAEAAAAAAAAAAApLFPfPDBB2f6HAAAAAAAAAAAgJOkAQgAAAAAAAAAANKYABAAAAAAAAAAAKQxASAAAAAAAAAAAEhjAkAAAAAAAAAAAJDGBIAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACksfPO9AlwZpRfNf1MnwJnuamvbOx/QMnrJafnTDiXbfj0hjN9CqfMX66bdqZPgbPf92dt6n/An67/ndNzJpyz/mHmf5zpUzhJ12244kyfAr37eckb/Q+4/7X/dnrOhBN1z5X/r/8B8827j6vS4827j61Z7lL56K073l3qru9cfnrOhHPWhO9tOdOncCpNeX3mmT4FznKbP72+/wEuQk6D416HaeRXv5l4pk+Bs9/nP7uz/wF1vxhzes6Ec9aYL9adwWfXAAQAAAAAAAAAAGlMAAgAAAAAAAAAANKYABAAAAAAAAAAAKQxASAAAAAAAAAAAEhjAkAAAAAAAAAAAJDGBIAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANCYABAAAAAAAAAAAaUwACAAAAAAAAAAA0pgAEAAAAAAAAAAApDEBIAAAAAAAAAAASGMCQAAAAAAAAAAAkMYEgAAAAAAAAAAAII0JAAEAAAAAAAAAQBoTAAIAAAAAAAAAgDQmAAQAAAAAAAAAAGlMAAgAAAAAAAAAANKYABAAAAAAAAAAAKQxASAAAAAAAAAAAEhjAkAAAAAAAAAAAJDGBIAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANHbemT4B+Hh4r+GP1yc2D89f8zs5BSnbmx7Ytvu5QxExdMqk3AfyswpSH7f2rU1/1tLjUdCXRFPlvXsaKpojIiIzZ8m4sddnZZzcsERT5b3bGyoiIjNzybiiHgOaHnx9+87CKY/l9nJ8SBeJQ//3/vryLS3tX+XNy5t9Q85F+cd2t5Xd9tbLW/p5fPbC1wou6jrU7vItETE0747caxcNH5k6dPcPyp/dmbf40ZyRPY7COa3m0Kvf3butov0iHHrpnWOnLhqe1d8DDr06a+e2eRNvv2t4b4faua0iIoaOuXPsVT2O886yjb/clX/Doxf0e3wYmETTxvv2VHZeukVLxn1qUdaw7oOaNs7cUdnLg3Nmry8ck3KoHZUVETE0e8m4GT2OU7esbO3Ogqt/nNvj+JyURPMvvvtuWefPvoK5eXNuzJ6U321Q8y9mV5b18uDsm9bmTUo5VGXZlogYWnDHBV9amDkqdfSOZZtX7c67Y2V2t+2cpERT+X17qjrn3fgl4yb2Nu/KZ+6o6uXBObPWF+amHGpHVee8m9bjOPXLytbtLPiceccpkWiqvHdPfeftZ26/d6nHGZZoqrx3e33nXeqEHgMOPPj69p2FU92lkqp6V+OP1x56OtEaERFDpk8b/vWS7Dndfzgdvvtvqp/u5dEjf/JX4+Yc+2r/4bufr346ERFDpn8+56ErhhWmjn71xa23NIz59R9ld9sO6eDgnpLtjfMnF397RG9739v3YGVTaXPHRJpfeMFNuZn5nziZYYmDe+7d3lgREZlDlowruD5rUKQMaH5wQ9XOwsmP5XbbzjnARQgn7f03flj/5PNt29q/uizjCzfl3lly7DP690v/vHrF1n4ePvx7r1xwRXwQEVHb+vCDe1/YGhEZl3595LcWDB3Xvr3TGz/c9Z3K0U/8/Yhu2yHF3tYvLm4uuzjztR8MKeq+68g3lx9e9db7ERFx3k23DvvTuYN7G3Nw1VsRcd6MW4f9XY8BrzxSf2N1bwfntPj4B4DqXrx/6erafofkzbvvnmvG9DvktCp/fPGKDT035+Xl5c+97QtTx3yMTpUOR57altjcy/amB9bvfm54/prP5hS81/DH63fPPXzRpouTPpV7r+HRvbFgivQPA9K2ChdCHAAAIABJREFUrnLznQ1JG5oblm9veDln8mNFWSc8rKlywfaG4sIpG3IzEvVvLti+uWryp7+dtD9Rv6c0ch72virpLNHws4W1yb8C1K6ufXb1wc89O2lG989Bj+vQ/124u/zyvMWv5YxMNPxs4e6V1Rd9+1tJ+YxEw9rVMfVvpX9I0bTunae+sS9pQ8u2h3du+/XoP3z0wgv7eMg7y3Zu633PoVcX7txWnH/Duguyat4tXbjzqarUkFDNu/+xOi79ofQPp8DhddUvLUn+XaKlcvmOypdzZv+4MOVOJNF26PgHa9p43Y7K4oKr1+cOS9T/y3U7XqqatOCulF853iqNouVSCKdIovGxRbU1SRtq1tSuWnPwmmcmzEz+2Zc4Wn/8YzX/YlFl2eV5d6zNHpVofGxR5Y8qi+67KzP5uV5dEzP+Vvrn1Di8rvrl1HlXtXxH1cs5s36cFOuJiERb8/EP1lR+3Y6q4oLPrc8dlqj/t+t2vFw1aV7qvHu7NMabd5wKbesqy1NvP+uXb69/OWfyY0UjT3hYU+WC7fXFhVM35GYk6rcu2F5eNXlmj7vUXHeppHr1xcpbNrUmbWjduKn1lk2H7v6Toq8k/4jaf+Tt4x/s8N3/WP10/phf/1V24f7Ghf9Y/Xv7Cndek/Riub/xkU1x/SLpH9JS84PbG/vceXBPScre1tLqqtLW8RuKMlPiEQMZdnDPgu2NxYWTN+QOStTvWrB9e1Vq2iNR925pZD8seHEuchHCSaptffjLe19I3rK17YW/rK66duzD3xhygsdqffjLe1+4bPQTr4wYV3vwzi/v/Ur12H9OPkht05PPxxe+L/1D/3776PLm3v6uLCo3Nl95b/Iv5++veuzgqn8f8uQPMq/q2njkm4sPrro487U1Q4r2tn5x8cEra0bs/frgrv17W5e/FDfdK/1zxnz8A0Bnj9ra2toVSzd83OJKRNQkqh/q7dOPmkT9cxELxucURMT5ObeNTfzZ3vqnCrNuOL9jwNrqxObh+Q9kn8ZzJX0l6ivb3zAtLpx8b25WfkS0NT1Yub20YfutQ7p6egY2rO3pPQ0RObfkZkREfu64+dXbS/fU35SV2/nJUNOq6ubiwqJZp/kfCadQW9n9tbURcXnewntyLsqPSBwqu3/3y1taXr6/YUJHT0/GjEenzuj50I7k0NDPPdtR/3PgmfryiKlfzRkZEfk5s+fVPru6vuyG4ceCRLufqq29PO9aU4ZkNe++0p7+Kc7/w7++4MKCiDjyzrKqX67e98vbMnrr6TnyzrKtv1zd+8Gantm7LeLSr16QFREFF/zOvMQvV+/dfMPwKZ0h4neeStQV51/lIuTDS9SXtacQigtmL80dkx8RR+qW7V5b2rD2axkpPT01bY0RMT810JPq8DN7KiOKbs4dFhH5uRfPr1lbumfHjVnHCmnqnqxpLC6Y4dI9NY6s/25tTURcnnfTX2dPyo9INK//buWLW1pe/G7jp5J7ehJtNRExNzXQk2r/s++WRcz4avaoiMjPnjO3dtWad9ffmHksSLTjydqay/O+NPMj/RedMxL1mzrn3aylubn5EXGkftnudaUN676W8bne5t28fuddVcT4znn3qfk160r37Loxa0Ln967+yZrG4oJp5h0fXqJ+V9Lt58j8iGg70Hn7OTXpLnUgw9qe3lMfkZt6l1p3U9aYzkv3wKrq5uLCCS5dku3ac8um1ogh1y/Ke2DCoIiI/YefeL76gUTrA/+4pyi52ufAkY0RMS010JOq+o2GpyOun51dGBGjsr8+re6WTQ1PlAw7FiR6dUPdxvwxD034KP9F8JF4r/nBzVWlfe7uiGUUF46/Nzcz/xOROLjv3u17Kxqqbh2SXJEykGFHn97TGJF9S+6g+ETkj7lgfnVV6Z59N2WN7ixoaV5V3VpcWODF/JzjIoST9n7pg3tfiIjLhn/v2xdckfdBxPtvPFf/nUfatj1/oHTR0Pl5H0ScN//vJ8zv+dDapju/vG9bZNz+s476nz3PHXgh4gs3jRgXH0Re1o3X7vtO10EiIt54Zt+2y0Z/q+R0/gNJP5VrDi59q7cde1v/oj39c3Hmk0uGXDU2In77yiMHb3yp9cZvffJYnU/lmsOrIm66fkhRRIwdsuTq5htfOvzolwbfNrbjMK/8U3PZxZl/N/10/Fvo1cc/ADTmmntWXtP1Zfnji1ekRYamxznW1ZVvemHN6g21q5feHx//8z+HvNdw946WXve8c7glYuhFndnZC4cNjWjZ3RrRHgBqrPkz9T8MWNOq6uaIKE5ekysj69uXTI7Xt5dW712X2x7WGeCwI1XNEZlDOi++weMzI5pbayLa31pdV7ld/Q/pLtH85paIyF74aE7HGl75w2c8etG+K3eXbzm4K5HTdwlQR3Io746CY2MOVLdEDB3dOWVGFg6NaNnXNWVqnlX/Qw/vPJWoi4ji5DW5Bl941+Q/jI2/XJ0oX3fBnKQ3m5rWvVv+08S2ij6P1lTVEjF0ZOc1mTV+aETLgURE+2W57p1fqv/hFKl7sqYxIoqT1+QaPOauS2ZH2drSmrfX5U7vvHTr/rUhIrLH9/f7wuGqloihmZ2vn8PGD41oae56/axeq/7nFEoc3rIlIrJvWpndsYxXfubMlUUNsyvLthx8O5Hdld15tTEiCooG9XOwxsqWiKE5nQ/JLhoa0dKQ6Pzera9dpf7n1KnvnHdJWZ/BuXddMivK1pXW7FyXO7Vz3tUPYN61pM67oT3m3Tr1P5wiBzpvP5PW5MoY2eP2c4DD3qtqjsg8v/PSPX98ZkTze6l3qep/SHX0ibUHIuL6RUUPHAvljBr2lT8q3Pk31U/HgV/tGjenc/urbx+IiOmj+/vZV7WvNWLIxM77uvGjh0S07jwQ0f7TbteeW9T/kIaOrqvb95Pqxr5vNtvbUCJyxj+W29Ghkj9i9GOTj5Zsb6zYfyiROzr/BIa1v+U4KPUtx6NdL+a7qzSvnHtchPChbDiwYmtEDP/e33eu4RXnXbEg74mo/cojbSueaZnfZwnQ+6UP7tsWcenXc4/le2qr2yIyCjvv9PMKMyLaqhMRee3P1fAd9T8c197Wv3js/V73vPJPzWURkbIu2Cev+nr2k1F/40vN/7BxyEPTIyIqa96POG9SZ9ynqOC8iPd37I1o37Kx+Ub1P2fafznTJ3DuGDNm6jU333N7SUTUrn6h/EyfDh06Fv9aMCl/yok+sGpfDM//Y/U/DEhb286IY509SbLm5EREw6tNJzLsOM9V/5OGKC4c688gSGs1bbURMS/ropStg0ZfHh3ZnT4ceKbm5S0Rl+ddu2iAHy60lf20MS7PKzFlSHHk4K6IY509SS78zOiI2PavXeWBTc9sf+obiW0VMWbexBt+OPoknmvzT/dFcf5UFyGnwJHmnRHHOnuSjPlMTkRU/mtT6sihebMHx0k6suPxhigu+JRL91Tp6PUZPill66Ccy6Mju9PhSOPuiBh6+ZUn/71b/9PGuDxvtvqfU+PI4Z0Rxzp7kuR+JiciqpLm3eGdETF03IeYd7seb4jigonmHadA25GdEcc6e5KMnJMTEfWdd6kDG3ac56pzl0ovju5MRMTIz3ev5Bn2+WkREW/vP3psZGVDRAz5woT+AkD9P9cTaw9E/pivqf8hrRx9etv2O6sbK2LI/MmTH87pfcy/72+NiPmjUhdaGjF6SWZEc9O/t53QsH69t+8nDVFcONqL+bnERQgfzvulqw5FxBe+fyz902Hcgrx/fmXCP/e9BNie5+pXbI24bPS3FvzXE3iuy0YvVP9DfzoW/7rp1sweSyv8dmd1xLFqnyRXzRoSEavWHRnQ8Z9ujYsz/1T9zxn18W8AOjF15S++sGb1htqIiMjLK5l7281Tx/Qc8Uaitra2Y0PqqLoX71+6urbk9pVfiMcfXbGhNiLySm6/5+apEXUvPv7o6s4tPY47QFNvvr1kw4oNGzaW3zx16kn+Izl11r617aFDEWMvujv76B/vOM7gdw4nFQU1vvvQIfU/nKiuzp4uBUMyI5p3trVFVsaJDetypKq564t1e6sr1P+Q/goy8iJqVzft/tbwpAzQ0X1bIrnLp4dDG37UEsdW++rDgeqk1/N1DS9vUf9DX7o6e7rkZ4yJqNvV1hTDu7JBxaNnfzV3yqzBse7gQI7bVJV8EdavrVD/w6nV1R3SpSAjO6JxZ9vhyBoWEdHWXBFRPCqzpn7jfTWVFRER2cU5Fy8tHNNnxVp7IVCndXWbK9T/nFL5GQURNWsO7bgrMykDdLRhSyR3+XRsuXxEdqLxF9+tLdsSEVFwefacv86b1Pf3rrEy6Xu3ft+LW9T/nHInMO+G1dSX31dT1TnvPrW0MLfv711L6ryrqFD/w6nV1dnTpbe71IEN6/Je6l1qVYX6H3oa9sBfXfbAgEYe3ZmIyB9edKDx7ufrnk5EREzPH/n1a8fN6fuHWdW+1q4vdu17IKH+h/RUnDP2lrGjZ50f6/b3ur/9XcHsOd1vKAcVZkQ0t1YdaW+zH+CwXg/eYd3evRWaV85JLkI4eUert0bE8NknHMppffaRtji22lcfaquTknMbDqzYqv6H43jlkX1L34q4esRDV/z2i4/1OqSr2qfL2E/OiCir/m1lRM9en8qapD6hja1L31L/c+adVQ1AdS/ev3RFZ/onImprN6xYev/j5T1HHEv/HBv1Yl3KoTY+vnRF54FqN6x4vLzuxfuXrk7a8mi3Bwzc1OklEZHYe7KP59RprPmzvRHD89dc3Psnbl1rfnVpXxFM/Q9nWNeaX13aY0Pqfzhb5GdecnlEND57W8Pu9s6DxKGy23aXR8S83L7W/zrwTH15RMy76A9Sp0DXml9d2lNE6n84BbIWTb790QunzOqvzqFrza8u7eki9T+cIYm2QxFRUbN2SUf6JyIaKxrWXle2cV3XqK41v7q0pxzU/3wE8oddfnlENK5a3Lij42df8/rFlWURMfeCY+t/ReJofURsqV31PzvSPxFRs6Vx1aLNv1jfdbCuNb+6tKeI1P+cOYm25oioqFm3pCP9ExGNFQ3rrisrT5p3Q/ued+p/+DjrWvOrS3tsSP0PJ+rwrzZFSt/P/iNvR0Si7pZnOtI/EbExceCWf9x6966uh3Wt+dWlfUUw9T+kq0HXX1r82EWjZ/WSiuj03pGdkbxeUpeCIUMiYmfb0fhgwMOSllvq0v4ozSvnKBchfCi1/1kVEZcNyovYs6Hhzj/f9ftX7fr9q3b9/p83lG7ofQ2mdnueO/BCRFw79s6SlDRP15pfXdpXBFP/wwBsbL7xpYiLM1/7+knXEkckr/nVpT02pP7n4+IsCgCVP750dW3kldx+330r2913e0lee3ync8gLq2sj8ubd3jli5cr7bi+JiKh9Y1NyIGfDhg0l7YPa929YsXR1dDzsvnklPR9wIsaMzYuoFQA645oe2LwvYug3L+2zxacgP3dBxHNVDTUR8V7Do3sjxubecH5n/c949T8MXEbGxIhorl7VvR29aVV18wkPi4zrx+VENPykvi0iEvV7SiPmj8vN76z/6dHNDmkoY8ajFy+cNzS21D67sPzBK8sfXLj75S2RN++ixd8a3sdD2ut/hn7uhu4DRi7KnRpR/tOGAxGRaFi7ujNF1F7/029dEOeqwSMmRETL2qcOddvxzlOJk/gtLmvR2Esjtv303aaIqHn3P1ZHzBs7paCz/qfHQmNwsgZnToyIls1Pdv9dou7Jmsbkr2va2r/Mnj/p6vUzFqyfseDnxVPmD42IyiVv7uh8L2nYonFFEZWP1x+OiET9W6UR88dNyu+s/+mx4BEfzuCZKyffNHdobKldtWjz0tmbly6qfHFLFMwtuuOuzK5R7SuFRRTMLbpj7ZT71k6575nJ18wdGhFl/3PX+s7v3aiFF8yIKPtp4/6ISDS+uqYzRdRe//NV9T+n0OBhEyOipaLHvKvve959bv2MeetnzPt5cfH8oRFRteTNXUnzbnxEVee8e7s0Yv64Cfmd9T/mHadMxuCJEdFc1eP280DqXerAhkXG9eNyI+pT71LH5HfW/7hLZcCq32h4OiKm5Xzl2M+qA0c2RkTE9GmFv/6ry3b+1WU7/2TS3dOGRMTTz1Q+0VlIUXhFzvURT69trI6I/Y2PbOo8SHv9z2z1P3B8g64flx3R+JP6o/FBJOreLY2YP250/ic6mldu0bzCR85FyFlpww8TX/nLQ9u2dn699dCKv6y+87m+MkDt9T8Zty8a2m3HuAUjvxDxwqqDe+ITUdv05PMR146cn/dBR/1Pv3VBnPOOfPPe1ojz7lvSVz3PJycWRsT7S/+p+1Jfr/xTc1nSl0Vzh90Userp1sqI2Nu6/KWIq4fdNraz/qfHCmKcfmdPAKh844aIvHm33Tx1TOfaXGOm3nzP7SURGzZ2JICm3rxy5cqV91yTtHrXmKlfmJfX82glt3cs8TWmvbAn8ubd1vGwMddMLwkJnrS39q3dz0VMmVR4Qz/h9ci6e+ZFCyIx9zebpq0/MGnSRWsuzkqt/zny1FtvT/vNpmm/2fTHbzXU9HMkznlZNxVmRkTp9jcfbOqsZWxrevDN7aUREVHReuREhkVkFT03OSeqN5e8/vqC/RlLJk/5dlZq/U9b/YNvvl7y+uslr7/5YP1AllCGj51E89s7W7ptq93ZlNqhkmRdU3lEXD5iQi/9QMP/4NmLpkbtyivLH1x4MOeO9hRRcv1PW9kPdjx4ZfmDV5b/7AcNB3oegHPPhTfkj4mI1TtLlx3q/LzryDvLtv9ydUREVLR1/xDsOIbPeXbipZF4atbGFQsPjLpz4g13DU+t/zmyedn2FbM2rpi1sXTZuyd4cOgy5saC7Igo3fEvy5oOd2w7UrfszbUdv0u0tW88/E5rRMT8Sf/jrqyOMEH+4El3XTJ7fkS01K49dqufNf3nk4qi5qWZZc9dt3/4kklX35WVWv9zZMeyN5+bWfbczLJ/WVbf+YycrMTht3Z3/9lXs/tQY9LPvv3vtEVEzC269a7Mjg9G8wfPvGvCTXMjomXLa8e+d5lffKZoRtT+aPbmpYsO5t7RniJKrv85sn7ZrqWzNy+dvfmxZY29t/kzMLmd8+7fkuZd/bI313XOu/Zv6rF599+T5t2Euy6ZNT8iWvYkzbupP580Pmpenlm2+rr9mUsmfe6urNT6nyO7lr25embZ6pll/2be8SGM7Lz93Jp0+3kg6fbzvRMZ1n6XmhvV5SWvr1+wf8iSyVO/nZVa/9NW9+Cb60teX1/y+lZ3qfRl157f+1VrxJC7S7rijtX7j0RETCt89pphHSGeUYO+ck3RT6ZFROsLu452Dhz2wJ8UXh91v/c3Wyf+46FPfb7w19cMS63/OfrEi5UT/2brxL/ZuvDFxurT+g+DM6TrvcQBDhsx7rnJ2VG9veT1igX7z18yefK3s1KbV97b9+C2ipINFSUbdj1Yd9QnzRyXi5BzWeLotojYum/F822XXjv2iVcm/vMrE/75lcLvXZsREdseqS+t7S3QtqHlhYi4bFhJLx9fD7nzZ2O/EPu+ctXO3//y4fFfH/vEN4am1v+8X/rD2vaeoTt/2LRHYI5OrzxycFXEjFtH3NZzha9OV30pc0ZEvHTwi48cqezY9ttXHmm88aWIiHjrt50bBz+0csRN0Xzl3Pqxi9+7+NYRr319cGr9z28ffaRx7Nz6sXPrv/hIa2UvT8VH67wzfQKnSt3eRETUrl66eHXPnYm9dZEU+om6urq6urrYu3Hj3kRiQ/J6YB3yxiZFhMbmRdTmJ20h7dUk3m5f/OuB/OO1nJ2fdffvTLs7eUt7/c+UnII48tR/bHvo0Oj/NfNTs6PpgfW757bEmt9RC0Qf8nOLluzfvLy5uXT75tKuzTlLCtuWVzcXDxl8QsMiIj+r6LFPpwRp2+t/Hs7NiLb6WzdXV+RMfu6SrGiqXLB9886Y8pg/uCStJBp+trC2NiJv3kXXfmv4yIiItt0/qHl2deOzC9s+9+ykHquAtZX9tDGi7zqf/OF/8OjUP0je0l7/87c5I6Ot7La3Xt6SvfDZSRfFof+7cPfKnbH4UbVA57yCC66688BTD7fUrd75VNLvl5femb//4URdccYJd/YUDJ/z6PQ5yVva639+eEFWHNl829a1FaP/8NnJF8ahVxfufGpX3PCoWiBOSn7ujCX7X1re0li646Wk3yWKlhQcWl7TWJzR/mHasEWXLFjUy6PHfCYnShsaXz54eFFny0h+1vQfz0jp7m2v/1meOyyO7PhaxeaKnNk/v2RMNG28bsdLO+PqH6snOVmJxscW1dZEFMwt+lJHuOfIjmWJVWsaVy1qu+aZCe2rgI1aOOG+hb08etKc7FjTWPPrw/sXDu4MBmV+ceWULyYPaq//+dvsUXFk/eLtL27JvumZCZOi+ReLKn+0O+5YqRboZOXnTluy/+XlLY2lO15OmnfjlxQ0L69pLM5o/7PNYYsumdfbvMvtbd5N/fGMqcmD2ut/lucOiyO7vlZRUZEz6+eX5EZT+XU7Xt4ZnzPvODn5uROW7C9f3txcur086dLNXVLYury6uXjI+Sc0LHq/S62qiNyHczOire7WzVUVOZOfu2RkNFUu2F6+M6a6S6WbXXsWPnMgYsj1i4q+kvQzqfCKop1X9DJ8zqdGxqYDG99srr6is91n1LAH/uiyB1KOue+BRFy/KLswjj7xf3Y8kBj5kz8pmhOH7/7H6t9riF//kVogznbJ7yUOcFj+iHGPlYxL3tvevPJw7qBo23fr5r0VOeOfuyQzmvYs2L59Z0x+TCML/XIRQsSlXy98eMF50ZFXO++Kb+R9L3Z95/m2Fc+0zP/GkNSx75euOhTRd51P3pA7/37CnV1fd9b/fH/EuPjP0j+vXrF1+Pd+ln9FtDz85b1fqYwn/l4tEFG5prF98a+/m/vJ/saNHfJ3t7535WPvl7108MqXujbfdGvmW481l138ya57vbGDH/pB7kPJj22v/7l3SFH89tFv7Vv61pAnV2ZfFUe+ufjgldXx2g/UAp1WZ00DUN3enjGeY7raeupefPz+xYuXLl26YsWKFas3bOgt/RMRH2ncp25vbWrEiNPsvYa7d7T0v/hX35Lqf9479NKhiLHDZ58fcX7WH08aGocS/7vx+IfgnJVx/SVTHi7MKe74MrM4Z/Jzny763ZMc1kNS/U+iaX9FxPxRWfkR+Vljl2RGRfXedafwnwIfud1P1dZG5N1x8Zc70j8RkXHRtyYtnBcRLS/3WJUpEs1vbomI7E8NdCHwpPqf9sfOy7ooPyJ/eMkdQ2NL7QZThoisRZNv+GH+pZ0vyGOKR//hs9PnXHmqDp9U/1PTtKsiYt6ICwsiCoZPvXNoVCTKXYScrGGLLrl6eUFR56WbXZwz++czps8e2IMLMrKjqyioN0n1P4mDtRUR80eMyY/Iz/rUkqFRUfO2S/dk7Xiytiai4I7JXdU+MXhSZ7XPi0829/fgiMjPKIiILW1935Ek1f8kDm/ZEjF3+KT8iPzM2XcMjS21a9efon/JOWnYoks+t7xgfNK8m/XzGVNPcN51b3/qklT/kzi4pyJi/ojc/Ij8rIlLhkZFzU7zjpOVcf0lUx8uzB3AXepAhvWQVP+TaGqsiJg/aqS7VPpQ/UblxGcObIwhd/9J0QMTBvaYkYOnR0TiSFWfI5Lqf/Y3v5CImDZ8zqiIUcO+9vkhkaj78a5Tcu5wdktqXkk0NVVEzB+Vmf+JyB8xeklmVFTv82LOR85FSNrKH3RpRETGnJn/tdueKxaNvjQiKv+ze0lPbcurWyNi+OySAT5HUv1P+2OvHXpF3geRN2Th1zNi675nN3zofwXpbm/rXzz2fr+Lf3Upmpv92r2ZN13c8eWMi4c8uTL3od6y+KmS6n/2HvnFWxFXD7pqbMTYwX9663nxVvM/bPyw/whOyFnTANTe01Ny+8qbp/Y9qPzxpas3REReSUn+2LHTx46NMWOmxqb7l67uJz10qpVv3BAfccSIftU0HtgcEdHy0PpND3Xbdygx9zeJiNH/67MFvb9V21X/03GcKcM6/lyt4PzzI1p2vHckYkCJds5NGbNyi2blpv5BZGtzREzMyDjxYSm66n+i7d/3N0dkju+4FDMKMyKa26rbYpa/riRdtO3fGRFDL5nd/aK96Ia8vNW1tTuPHIhIaeipaauNiHlZFw3wGbrqf+LA2oO1EXmFg9r3jLwwI6Kl4R1ThoiIrFkXzJl1QWptT1tdREw48Qagbrrqf6LptQN1EWM6X7ezLjw/omX/O0dill8qOEnDZuVOn5WbWtvT1hgREzMGVBNS3PewrvqfOLx2f2NE9viOV8thFw6JaDnk0j1JRxp3R8TQy6/s/n9v0o15BWtqa3Yf3R9x/IaeyzOy+9rVVf8T+187WBNRUNTxs2/UhRkRLfXvHImZvncnb9is3KmzclNre05s3g3ta1dX/U/v867ZvOND+EjvUjvrf3q/S211l0qnV1+svGVTa8SQu/8kpftnQPIHj+9rV1f9T1TvOrQxYvrojp99haMGR7S+vf9oTBh08ucNZ975gydGVDQfrYno1pRc09oaERMzBsUnBjysN13NK584+u/7WyOGdL6YDyrMiGh+r7otZp3f+2M5J7gI4bgG5feymFdERGw9WhuR0nfVvmrYtUOvGGBtT1f9zwd71h/eFnFp57vc4/IHRbRVJf4zSs6aMAAno/KN98oiIt5furh+abd9bzVfObc5YsiTazKv6txWNH3IQ9OHpLb7/LYsIgo/2Wd+qKv+p+PpZhR0XHVF+YMi3n8r8duY3m/5EKfUWdMANGZsfkRs2Fjez5jyjRsi8ubdt/Kem2+++Zprpk6dOnXMmLpNb5zG9E+UP75iQ0TevC/0k1PiYyup/qfTpPNT3mbdfNgq9pyYplcbIult0JMdllRDHaklAAAgAElEQVT/0ymjMOWN1OaqAa22DGlq9781RlKI53iS6n865VyYMmVqq4+ewtPjbPLOv+6LpLDOyUqq/+k06sKUY9Z53eaUqvvXhugKDRzZ8bWy52aWbez5h5I1/ecVkup/Og1PvXQbq/w+/JE6sn7x5qWzN/+iZ1tPoq0mIi4a1MfHpkn1P51yU793NZV+9p1i9anzbtfXylbPLOul4O14866r/qdTpnnHR+nAwO5Sjzcsqf6n0xB3qfTi6Ksvbr1lU2vkj/zJX/Wa/jn6xP/ZOvFvtt7ds63nwJGNEZEzuI9lvJLqfzp9alTKPePGfX72kfYGj8+MiPequ/8ycLS6LZJyEgMc1kNS80qn81NfzFu9mJ/zXITQp7yhcy6LiKOJnh9Etwd9LhvULRr0xtpDkRTiOZ6k+p9O4/NT2oa2eZebD+2Vda2RlOnpIan+p9PF+Slxn7Ka9z+606OnsyYAFFOnl0TEhhX3P17eud5X1JW/eP/ixYsXP54UC6p9Y9OxAXXlj5++9p+6uvIXH79/xYaIKJl7jf6fM6cg/1ObPjut+38z86dExPD8NZ+dtqn/+p/xKQuH7Xgv5ZfLY4VA0E3b02++XvL6m0+n3uEk6veURkTmqN/NOKFh3bXX/9ySm7y7LfVu6rjv3sLHScaoiRHR8uba7m8KtC8NFhMHp9T/9N0Y1Lv2+p+v5iQfpOGdlOcacJaIs1bTM9tXzNpY+kzqu0g17/7H6ogYOqFHRceJaa//+eoFyTVC+99Jea4PnTHiHHX4mTefm1n2L90u3UT9W6URMTRvdvt1NThzYkRE5b82pT76yI7HGyKi6DN9VFy11//cnJscUziUeukeKybhBA3OvigiWra81v3N6/alwTqTPe3DouzVbiuCHVn/08aImDEns/fDt9f/fDU7+XPV+tTv3bFCIE7U4WfeXD2z7N96zLu3SyNi6LjOeTdsYkREVY95t+vxhogY3/e8q6iI8anzrtm841Roe/rN9SWvb+3j9jM76S51IMO6W7e3qiJyU+9SW92l0sOrL+64ZVNE/phf/9G4Ob0PGVSUExHx9NvdVig9+sTaAxFx/af6yE+21//Mzk6OB729P+UzsGOFQJC+Bv3uqCERrcv3Nqd0RRzct7w5IjOr81V6gMO6a29euSU3uZqlW4Cj79wG5woXIfTtvPyiiGhb8Uz3BZ87gj7/Y+i4lBnxfqIyel0yrHft9T83jUg+SFXiP5OHDDhLxFmraG723jW53f9bmTkjIi7OfG1N7t7O+p/KNY1j59Z/cc1vUx6/t3X5SxFx3hev6KPCp73+5/qU9cXeSqQcpO/wEB+JsycAFFNvvr0kL6J2w4qlizssXbG6NqLk9o5lwdozQrWrjw1YumJDZ/qndm9dn0c+KbWrj51Gx5MtXbF6Q21E3rz7+lumjI+t7vU/BdkjpyRV/tS89170KASCY9r7eJqXV1au67hm2tbVv7mgujkic0lRbv6JDUvVvf4n43dHZSb9MWV7EqhbIRB8zF3037MjovZHb/3sB4cOdGxr2/2DHc+ujoihn7theOrwo/u2RETGqN7nSDfd639Gzh6Rl1T5c+CdtuhRCMQ5KOvC8yOi7uGqV9d1vJw2rXu3dGGiLmLMneOnFPT74OPoXv+TdeXIMUmVP03vvBc9CoFggIZdOCQiGpfv3th56R5eV/8v19U0RmQvuWhS5+vkmBsLsiOidMe/LGvq+DAt0bTxaxWbK6JbwU+S7vU/w2aPyk6qHjn8Tmv0KARi4CbNyY6Imh9tf2xZ8/6ObUd2LNu1ak1EDL3mxo5kz6Qb8woiYk1l17BE8y8Wb39xS3Qr+EnSvf5n1JUjCpIqf/a/0xY9CoEYuGPzrjxp3v1b57yb0Dnvcjvn3b8lzbvyr1VUVES3gp8k3et/ep13mb53nJRebz+3dt5+jun3LrXnsFTd6396vUsd4i71nFf9RmVn+ie7jxafiIg5JWOmR8Sm6oUvHq5u37T/8N3/Z8cDiehW8JOke/1P4YTh05Mqf6r3H4kehUCQlvKzsoojoqHq1srmxAcREYmD+27d3hgRxaOG55/gsBTdm1c6AhydL+btxS3nezHHRQh9u2LR6Esj4vm9d/6w6Y3a9hzb+2/8sPY7z0dvQZ+j1VujvyXDUnSv/xk3c9ilSZU/exJHo0chEPSjKH9QRJQ9dvCbGzviO5UbW7+4uLksYsatI24b2+uDutf/FF1x/oykyp/KxNHoUQjER+2syltNvfme+6Y//uiaDbUdsZ68vJK5t908dUzXgPtuj9T9V8z9wrS9jy5dXZvYWxdTP9JenvZnu+ajfRI+Mu31P1OS6n/OH3718Ni8t/6pwqwboul/72jptjoYpJhVNHl+2/bS5oY7Nzckby8uLLo+44SHJWuv/3k46Q8r87NGFUdz6Z76m7Jyo2nv8uZuveuQBmYVLL6jbeWPWmpX7165OmVP3h0FM7q9KZA40hARl2ek1gL1ob3+52+T6n/yMy+5PGpX15fdMHxGHNrwo5Zuq4Nxjpp14R/Oe++Xq1u2fWPrtuTtxflXLToV9T8/TKr/KciaUJyoW7138w3Dp8Sh8odbuq0OBidgVuHs+a1rS1sql1RUJm8vLpiRfOnm585Ysv+l5S2NpTteKk0elzN7aW7vf0ffXv+zPGlv/oi84prG0j07bsyaFE1vL2/pOzzEAMzMu+OOth/9qKVmTeWP1qTsKbgjf2bX++bZX7rjYG/Dsm/66+ze1/9qr//526S9+cMuvzxq1ry7/sbMmdG89kctfYeHGIBZhbPmt64rbalaUlGVvL24YFrqvJu2ZP/Ly1saS3e8nDrvZvU97yoqYnzqvBtXXNNYumfXjVkTomnn8pa+w0NwPJ23n/V3bq5P3l5cOKG3u9TjDEu2bm9VReSm3qVmF0dz6Z66m7LGuEulw+Ef/6o1IiJR93t/09tfZk4r3HnNsIiIUdkPff7Q7/2qdeOm6t/blDxi5E+u7SM51F7/syhp76jML+TXbdzU8ETJsK+0P3Wf4SFIL+ePvnfy0QXbGysaqhYkv5uYM/6x5NKUAQ5L0t688nDS3vysrOJoLd2z76as0dG0b3lzt4WZOFe5CKFveVkPf//onX95aNvz+77z/L6kHRlf+H7+/LwPUgbX/mdV9LIuWO/a63++n1T/kzd0zmX7tj1/oHTR0PnR8uwjbd1WB4PjmJ755NVHb3zp/VX37luVvP3izL+b22/9z71J9T9jB3/x4uaylw4/+qXBt8WRf3js/W6rg3EapF0AaOrNK1fe3PfuMVNvvmfqie6fes/Ka44NuCbpiz62HOccjrufNNS9/iciIgbf8DuXxlvVD63f9FDElLH5ay7O+VB1AJztsr59yZQ5lZU/aWiuiIiI4sycW4qKZnV/w3SAwzp1r/+JiIiM3MemxIOV1Qter47InF845du5/g6CtDNy0aTFsw9tuL++fEtHRWre5dmz7ym4qOefBNW0DXg9z+71PxERkTHj0YvjBzUvLyx/OSJvXt7ib+UMKEvE2e7Cuybf8Jl3XvnpvrqOF+Shl351/JxZH7JloXv9T0REDJ7y6GWxrGrtwo1rI8bMy7/hrgv6WAkGjm/MXZdc/ZnqsscbGjsv3aKbL5re49IdtuiSBbObNt63p7Ki/WV2aPb8cTPuyupjFY3u9T8RETF40o+LY9nuzdeVbY7Inl9w9V19hBgYmFELJ9xxZfPa775b1vmzr+Dy7Dl/nTcpv/uw+65s/kXXsKEFcy/40l2Zvad/etT/RETE4JkrJ8eyxIuLNr8YUTA37467+ggPMTC5d13yuc9Ub0qad+Nvvmhqb/Nu3uym8vv2VCXNu2l9z7tu9T8RETF4wo+LY9nuiuvKKiKy5xd8zrzjQxj57UumzqnclXT7mdvb7ecAh3XqXv8TEREZYx6bEg9WVi14vSoic37hVHep7Dr09IDHFl5RtHPC4bufb3g60RoREUOmT8t56JphffQGda//iYiIQV/5o0nxYu0D/7j1gYjp08b8+pr+aocgneSPGPfc5EGr9uwt7Vgldsj8woJv90hUDHBYh+7NKxERcf7ox6bEg5V7F7y+N2LI/MLJfT6cc4yLEPpRkvPwz4aWPnPg1efb2v/I8NLLht/47Quu6Jb+iYjE0W09Ht2H7vU/ERFx3vy/L4wf1q/48s4VEZdeO/qJb4xIXWIMjuOqr2e/Nqv5L55uLXsrIiIuPu+m60c8NL2v/p7u9T8REfHJ234wOh45uHRx/dKIGVdnvvb1lNXBOA0+8cEHZv65qPwqWTs+WlNf2dj/gJLXBY/5yG349IYzfQqnzF+um3amT4Gz3/dnbep/wJ+u/53Tcyacs/5h5n+c6VM4SddtuOJMnwK9+3nJG/0PuP+1/3Z6zoQTdc+V/6//AfPNu4+r0uPNu4+tWe5S+eitO95d6q7vXH56zoRz1oTvbTnTp3AqTXldhyEfrc2fXt//ABchp8Fxr8M08qvfTDzTp8DZ7/Of3dn/gLpfWK6Hj9aYL/ZWcXq6/Jcz+NwAAAAAAAAAAMCHJAAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANCYABAAAAAAAAAAAaUwACAAAAAAAAAAA0pgAEAAAAAAAAAAApDEBIAAAAAAAAAAASGMCQAAAAAAAAAAAkMYEgAAAAAAAAAAAII0JAAEAAAAAAAAAQBoTAAIAAAAAAAAAgDQmAAQAAAAAAAAAAGlMAAgAAAAAAAAAANKYABAAAAAAAAAAAKQxASAAAAAAAAAAAEhjAkAAAAAAAAAAAJDGBIAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANCYABAAAAAAAAAAAaUwACAAAAAAAAAAA0pgAEAAAAAAAAAAApDEBIAAAAAAAAAAASGMCQAAAAAAAAAAAkMYEgAAAAAAAAAAAII194oMPPjjT5wAAAAAAAAAAAJwkDUAAAAAAAAAAAJDGBIAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjZ13pk+AM+P/fX76mT4FznL/7Vcb+x8w5/WS03MmnMte/fSGM30Kp8w3100706fA2e+hWZv6H/AX6/z+wEfr72Yd5/eHj60bNlxxpk+B3j1V8kb/A+55berpORNO1P1Xlvc/YIF593H13PHm3cfWZ92l8tH7zfHuUnd+s/j0nAnnrIkPVZzpUziVprw+80yfAme5zZ9e3/8AFyGnwXGvwzTy0m8mnulT4Ox39Wd39j+g7pe5p+dMOGeN+cP6M/jsGoAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANCYABAAAAAAAAAAAaUwACAAAAAAAAAAA0pgAEAAAAAAAAAAApDEBIAAAAAAAAAAASGMCQAAAAAAAAAAAkMYEgAAAAAAAAAAAII0JAAEAAAAAAAAAQBoTAAIAAAAAAAAAgDQmAAQAAAAAAAAAAGlMAAgAAAAAAAAAANKYABAAAAAAAAAAAKQxASAAAAAAAAAAAEhjAkAAAAAAAAAAAJDGBIAAAAAAAAAAACCNCQABAAAAAAAAAEAaEwACAAAAAAAAAIA0JgAEAAAAAAAAAABpTAAIAAAAAAAAAADSmAAQAAAAAAAAAACkMQEgAAAAAAAAAABIYwJAAAAAAAAAAACQxgSAAAAAAAAAAAAgjQkAAQAAAAAAAABAGhMAAgAAAAAAAACANCYABAAAAAAAAAAAaUwACADg/7N39+FR1Xf+/19ctRASkgGSkISZGJJNDGDCAoIBrLV1LYutN6ThCyhstwLi5Wp/NPUG92oVAb0KKqKtrhc3Yr9dELWyky/SwqJLS62ECA1pEpGYNMmYM7kh9wkTJhGX3x+TSc5MJuFGNA48Hxf/zDnvOXNy8Tkn85l55f0BAAAAAAAAAAAAghgBIAAAAAAAAAAAAAAAACCIEQACAAAAAAAAAAAAAAAAghgBIAAAAAAAAAAAAAAAACCIXTXYJwAMltan3it/O8D2qJduif9Wz6OO1qeOl7/dIils0jUxT19tifet/svHxx502d6ZFu23HQjMaC19srqmqF2SFB6XPda20DL8HGWKyEy4enHMaFvfmpKaIknhEdljU/scp2ndh8VlCdO3xgQ4PhAsjLb9a+oKi12eR9a51hl3RyfaLqrMaNu/prywWFKYdUXMnAURo3z3VzxTsKvMunRztN92XOmM1j+uqSv2jq7Yubbpd0ePCzAIzWVhaStipi6wWALUlBcXSwqLXREzu09B5TPH3imz/WhztP8TgYtgtB5ZXV1W1D0mk7PHjl9gCT/HU+renVfVkB5/25YYn0qj9cjq0rIiSWFR2WNn9DlO9fqjB8v6PAsXzWj//dq6fO9tx3aH9cZF0cm2s33qOsvWV72/22V4HqWFTb0n/gczhvU5VHl+saQw24qYO+dHjJbPccrW/21nufWBTdF+23GRjNZjq6srvNddYvbYlAWWEf5FrcdmlFYEeHL0rMMJsT6HKq0okhQWmT32uj7HqV1/9FBZ/OwtMX2OD1ywIUbrCd9ZasJCS8g5yhSRmTCuzyx1iNF6wjRLndjnOE3rPiwsS5ixNabv8XElc1Q0bj3c+oazQ5IUOmWS5YHpkTf1mZg5Khq3Hq55w+l5FLrw5jHLpo5I8CtqPvX4vso3nJJCp9w85tk+BQf3Fy9rjHvvrkj/JwJBoKU6o6QxMzX9sZGB9p5uWFfRam/vvpAyE8Ysjgm3DbmYMqOl+smSxiJJ4aHZY+MXWobKp6B9XV5lWULq1hi/7bgCMAiBi3bmyPN1O/e4j3seXRty6+KYFRk939Gfsf/EsemjAZ4esfbAmOmembuz48V1NXs/khQy8YFRD2WFWX1n9Eee//vjFVGv/nqklZk+fHQ9clvL9gDbQ3bsCb/Z53b6+eaXWt/Zd+aoJGnanPDsrJCb43zvtzVdj2xo2X5C0lXT7h3xqzu/meh7Qz7w0slFleGHngtJ5EY9GL7+AaDavWtW5TgHLLHOXf3ErbEDlgyO2oK9f9h9JM/ZffpWa8b0O75/6+Sv46legTq6Pjl3UetTh8rfHml755bo+I76Hx0qv92VVDDB9K1cR/1mp+ZNIf2D83I6t+LIT+tNG9prNpbUvBedtjVxtLnOqCvIcrSZNrTZHcX2puRdE8b2frraWppVUpOeMD0vZrhRV5BVcqQy9duPWcwH+dSuuBdI/yCYGfU75zvNbwGcOc5dOS03v5Uy1XahZW3755cXplmXHooeZdTvnF/+qiPp4UcjzAc5nKNJG0j/wJdR/7v5Rq1pQ22O8U5O841vXTPZNAhbc6t++1CDqcpV/GJ58f9E3b45fpyp6o/zy4vTbD86FG0x6n83v/y3jqSfPGq+b9cfyVHaBtI/uATacx17ss1vOVxlG0vL3ou+aUvC2H6f1FmyuqohwPbWI/NKy9LjbzscE27UvTuvdE9lyl0rfd5yfGRX8kbSP5eI0fDaAqdh3rDbuXN3y+w3UzLMGSCj/fcLyvPNTyx25T904uQdSfes7PmvaP/9gvL8NOsDH0SPNupfW1D+ckXS4ytN/1FGw/u7NXUD6Z9L41SuY7/vdVexsbTivehZWxJ8PgEw3G06p9Zj80or0uNnH44ZYdQdnFe6vzLlh77XXYldiRtJ/+AScOdWHA40S53kO0sdYtT9tc8stdDelLJrgtX7pmiIWk9kldSkJ8zIixlu1P01q+RwZep3TLPUIUZdpV1xL5D+gY+D+8uXFXaYNnQcK+xYVtj686VJPzZNzxz55bcc8Cl740DlGyWjtt5lval346nHX618wxr33sORCc2N81+tvKVhXOls082yufHlQi3MIv2DoNS+rqSx350t1Rk+ezvsjkp7x7i8xHCfb93Op6ylOqukMT0hNS9mqFH396ySkkrftIdRe9KuyBcIXlyJGITARXJ2vPgvNXvNWz5y7/13h+O2uOd/FnqBx+p48V9q9l4b9eqBkVZny8/+pWapI26f+SDO1p17dOsvSf+gj5rPT5xXnX9O6Oi+9kX7PvMNCXU9cm/L9vHhh/aEJNa4b7+3ZVbVyJoHh5pe6/TGfVr8JOmfQcMSYF+Wgm1r7lv1Sk6e6StJpzMv55VVa7YVDOJpocdpd6Eka1LBLVN8//W2/6n6tO5taV5idLyk0OjlVslZt8P0acNfHEbhSNu/Rn71Z48gZNSVeD5XTU9I23X9t/Ou/3bepLTMcBXVFy+rO91b565+0tFmLtuVmpwuqb3syd6y029U10hxS2OGS7LFXJ0p2aurTV8WNW13tKUn2GZ+RT8c8CVw569xOiWlWbPemvzwockPv5V0c5ok14E19c0XWNb8Zl2hNOme6FGSbNEz5ko5dfmmS6bidaczzTqdSwY+OgvWGLWS0my3vzXlJ4em/OStpBvTJLneX1Pf2lNl1O/3pH96yg5NvH1umIob3lneW9b6Zl2xlHZPtEWSLXr6XCmnrsA0CCtfN2rTbFMZhPjijLrDnhRCevxNb0+76/C0uw6n35QZpqL6g/fWtffzpPY3y/OLAm6vLpOSl8SES7LFXJsp2atLTEO3ekdVQ3r8eIbupdGZt9ZpSEqz3vXm5Mc/+MfH30yanSbJtX9tfVPvhyadeWvL8yWlRXaXfTD+rhVhkozddXlGd1nTW3X50tR7okfrrGxRN94hmfZKKtvhNNKsM2d8pT/hZcuo+6v3upv19rQfHp72w8PpszLDVFR/6N66U+bKKnejpMyUHx6e5vuvNyd06s3qCilxScwISbaY1EzJXl1muu5qd1Q1psencN3hCxti1B33zlIn7br+O3nXfzdv0qTMcBXVFy6rc/eUyW14Z6ndZbtSU9IltZc+2VvWM0sNkc7aYsZlSvZqc6SxcbujLT0hgaELswrnssIOKXRh1jWlD6eVPpxWunTcz62SOp5+1Xmwp6y58ZED/mULrZKzedn+3rusI//kG9LCGZEJkkZFPjBJKjz5G9Ps8eCRmmPWuGWJX93PB1wip9vX5VXa+93dHctITxi36/r0vIz0Xalx6ZLqK5fVdZm+AD6fsq43qhulyKUxQzVEttgxmZK9usEwHWS7oyM9IYqb+RWHQQhctDP2dTV7JV0bsfY/k/cd+Id9BxLWPhAi6fieZrvTM0m/KvPX/7DvQJ9//xk1UZJC7vvP7vY/zl3Ne6VbF4+06qyslrtuk3oPIklH3mw4fm3UvIxB+Dnxdef87KikOSNr9ozx/Rdhbv9z4KWW7ZLGh+/YEl2zZ0zNlpGrx0tyL3rYXeG9UVf8v1PbpcULQxI1RHHDs+dI+05trum9UR/Y1X50fPi/TftKfz6Yff0DQLG3PrHJ5P4MSda5q83bvn7tf2r3rnklzylZM+5f3XOqq1ffn2GVnHmvrNlbe+5j4Mv1l5MNkiaFDfSHZw6XSwpL9HZQSQgLk1wVPRGMxqoHnd54EHAuTdu7PzCdvrWnTXrI6McmpGVKRQ4j11tntJ4skhSd1lNms4zdmhonqaip2fvh6enKdik8zDv4ho8Ll9pdVd6D5FYU273xICBIGe0lxZIiszZ7F/OyRUzdnDRJUnFLhXFhZS0OlxQW5b1kRiaESa6G3kumaleONx4E9DDaSoslRd2+2bvml80yeXNSmqTi5p7RVfl6d0joRz1lGjbu0WtunysVG/ne23uzwyWFjfIOwlEJYZKr2TQI38nxxoOAL6Z6R1WDpPT427bEeHsHDhu7csJNmVJR1YncQM8x6g5vdAU8WnulSwqL8A7d8HFhkqutd+g6Dtq98SB8cUb78WJJkXdt8q75ZQvP2JQ0VVJxS2nP777D9fu7y+K9S4MNS56f/MCKMMm1f0d3h46mCpcUFuXtzDE6MUxyNfQexNi52xsPwhdWu6OqUVJ6/OwtMbHe6y525YRZmVJRVanpuqv9c72kyHEDzUNPVbqksHDvdTdiXJjkajddd4fs3ngQ8MU0emepM7zTz7MKGf3YhEmZUpHDYZql1hVJip7UU2az2Lyz1EbvjaWjsl0KH+EduqHjwqX2U96hOyS3otDeHQ8CvLp+c7hZ0sKspLWJ3r8YHjXix3eNWyhJze95V0w8eKTmmDTlZpu5bO2cuCmSClt7ckKVDR1S6D94m0SMiwqVOv7e4t1d4VxW6I0HAcGjK7e2elnhAMELTzcUKXrcVu86SraRUVtTIyUVNbUZF1bWWdkuhQ/13syHjQuX2rt634eUV9q9yQxcMRiEwBeS17zpI0kRa389ZrrVMwG/anqW9dUHQiT3pjcDfxojSTpjX9dwXJr4QExm9xNV7XBLIVd7Z/pjE0Ik96c9V1le/eN7vPEgwNeBw25J0+K/MVBRzemN+ySF7HjOu+ZX3NDlz41cLOnE6Xdruqsqqs5IV6VYux8mxl8lnSntaYhytG3RPm88CIPk6x8ACkK1ezfnOKWM+1c/sWRybE84KTZ28pInVs+1Ss6cP9AFaJB1OlySwv45auCoMQ8AACAASURBVNhFH2FHRYNo/4Pz5XaXSQoQyhl9U7SkmoPeJhFVHW2SMkf7LAqmYWHp8on4DPha1a/Wi/Y/CHZVbqekuRbfP84cGpUmn+zOeZYNxJ3/WqNo/4O+qty1kuZGjPPZGjIqTabsTmdLmaQA2Z1xN0ZJKn6/VefWWfBag2j/g0ujs71MUoBQzthvR0sq+3PfMdm9+FdydnzUBb5WybZ60f7nEjLchqQ7LMk+H9V5f6l1f6LXmfdao6SpG+J9yzR6fvLjH/yjzyJf/erMe61RtP+5ZDpPlUkKEMqJ/Xa0pIre685TGWa94eLnoWXb6kX7H1wKQ+Q+7Z2l+oVyIs9vljoiXeaIz8CvZbxaL9r/wF/X352SRt3i35JnxC2TJKmkucvz+KbZaaUPp701dahP1ahhqRfyWr853Cza/yDYdL1xvOSnjsYihWampr4QHbjmL00dkjJH+y60NDIqO1xqb/2L+4LKBnS64dV60XnlCsMgBL6YM/btbZJu/WV3C58e1izrvgP/sK//JcCcu+o2fSRdG/VQ1jcv4LVo/4PAPi+rlHTV7dcPlAyp+PD0UUlzQm72uVEP/bd7r5LOvPPh/57PC21+wy3a/wy2qwb7BC6x2oK9f9idk+dJmVmtGXcsXzI5tm/FEcPZszSXb1Xt3jWrcpwZ92/6vrZtfiXPKcmacf8TSyZLtXu3bc7xbulz3F4Ff8hxSta53w9UEXvrHRlHditOtdLXrW/RFcVd0SKNHJVwuv6p48bbLZI0aWTU8onx3+p/wU2HyxTFbTz5bIvmTaH9Dy5Ib8+eXvGhEVJbmfu0LMN7Htqbmh6zmD5d7XQV9fN0Sd0Ngbxya8qKFPcC7X8Q5OJDrJIzp7Xi0QjTJ7RdDcUy9/I53zJfLQ7T/Ty3/kCxJm2g/Q/6iA+JlWpz2ioftYzr3epuLpa5l4/U96Hp6WVdrVLfvj7NPoPw5PvFSttA+x9cQr09e3rFh0RJDWXudlnMCZHq9UX5RVJmyvQb3O9uPMdx2yvNQ7c2v0jJG2n/c+nYQmySsbu1bGWEKdzj/aVmMz+MTL3A7E5Then/7nD9/mJN3UD7n0urt2dPr/iQSKmxzH1KlhGS5G4vktJHj6iqO7a6qqJIkiLTo1NXJXj7BgVwyve6KyxS4kba/+AS6u3Z08s7S3XLEqJ+Z6mnivp5uqTuhkBeuTWlRYp7gfY/8DNi7cNpay/62c2dJZKsIeP62V/Z0NH7oKL+aacWZtH+B0EoPTpuaVzUzOHKbQq4v7OyXVLkTf4TyqEJIVJ7R2WnNPz8ywIevFtuTU2RIl+g88qVh0EIXLyuTz+SFDHrgkM5HW+/7JbO0c6n2mFKzuU1b/pIt/6S9j8I6PPSE9L44clO9yMb2refkKRp40OyHwrv7vQjqbu1jxbP8M+cJVqvks4crfpcCtBAyPOsbkddq05o8ZO0/xlkl1UHoNq9a1a94k3/SHI6815ZtWZbQd+KnvRPT5Xfolz521a94j2QM++VbQW1e9esyjFt2dzvKl61NYYk6/Qp/eR7Ji954oklt/YbH8JXoqPrE0ktxoPHutM/kgpbGh48dOypxt4q/zW/JO+KYLT/wZfGZhmTLqm+eFldk+fvvI3W6mUlNZIyx3oX8uiz5pfkjQfR/geXC1t4apqkxl3L67vXWjLa8peXF0qaGzPVdmFl/mt+Sd54EO1/0D9bREqapIZ3ltdXem/IBcvLiyXNjZnc/ze1Afmv+SV5Y0O0/8GgynUctEvp8betDJxA81/zS/Kmi2j/8yWwhU9Mk9S48776MmOIJBntefeV50u6IybDs9qX0XlSUlrIaKnpsPHafX9be8Pf1t7wt7X3GXmHO80H81/zS/KmiGj/M3gMd5ukoqpD2d3pH0mNRfWH5h09ZlomzH/NL8mbLqL9DwaJzRKTLqm+0DtLHWK0Gt5ZqtX7pshvzS9JnngQ7X9w4U69Vygp9PuJQ/urcFQ4579ac0w+S3r5r/kleVcEo/0PgtXQhRPTtyZFzRzgr/xOd5bJvF5Sr/jQUEll7i6dPe+yPsstqedZdF65QjEIgS/E+ZlD0rVDx0rOvPqf/eTvc27++5yb/z7nJ/X2vDMDPW9X815Jt8WtyPBJ8/iv+SV5VwSj/Q8GVPP5CUkn2hc92Z3+kXT0hHvRvfWPHO0ZY91dgnrW9upl/eY0SZWfV+is+q75pZ5n0f7n6+IyCgAVbFuV45Q14/7Vqzd5rL4/w+qJ73hLunvz3O+t2LRp9f0ZkuQ8cswc6MnLy8vwFHn2572yKkfdT1s9N6PvE0xqa5wD5X/wtXDaXShJmmRNeueWKQW3TCmYNfERa5ikt499ssP7B0LxV8fMk96uqK+S1FG/2SlZYxaFetv/JNL+B+cvJCRZUnvZdv91N5q2O9p8K8dunZSWGa4iR3HWh3/O+PDPWSVlRYrITJ3+WO83c8MXjo2Tal6tOy3JqPvU7o0Hedr/9FloDAhCIVM3j8+aG6Zi5675Bc/NKnhufvmBYlnnJi19NOJCy0YtiJkkFb5W3yzJqD+c440Hedr/3EP7HwQ0bPLmibfPDVOx8c78Y7+edezX88vfL1bs3KQfPdpzQx42MlmS6/3X/W/vla8b5veKlgUxaVLxa/Wtkoz6IzneFJGn/U+fFcSAizUsPFmSK3+H/5is3lHV4F/ceiS7XgqbuqrfLj7hC8YmS2Xb6tolGXUf2aXMsak2b/ufPguN4YsZlrFp/F13hKnYuXNBwdob/rZ2Qfn+YtnuSHpgZYRfaen60pcfajSKvY+LG/c/dOK1t3ozQKPnx0yV8l+rb9IQGQ3v7/amiDztf+6h/c8lNGxEsiRXYZ/rrnZHVaP5cZXb8zAyM2X24Wk/PDzth2+nT8oMk1SR/XGZ9zPcEQvGJkoV2+pOSTLqSuxS5thkm7f9T5+FxoCLc1Yhw5MltZf2maU2+s5SzyrEtnXSpMxwFTkKsz78U8aHf8wqKS1SRGbqjECzVLc0xKirtHvjQZ72P30WGgP648g/+YakSWN+HGiednB/ccpzxbfsaj6m0J9nXbPWlOlJmDpmofTG4UaHpObGlwu9B/G0/5lB+x/g3IYuHBspNb5a16WzMmpP2qXMsVG2Id2dV5bSeQVfOgYhLksfPm8s/fe24x95H3/UtunfHT/b1V8GyNP+J+S+BWF+O6xZo26V9m5vcWqInK0790i3jcq0nu1u/zNguyBc0ZyfHZUkTZsz8tCe6Jo9Y2q2RK6ec5Wk7U82b665sGGTeOeIxdL2N9wVOqua0xv3SXNGLI8b0t3+ZyHtfwbf5bMEWEF+nmSda16aK3bykifu132v5OUXLJk8WdLkJZs2LfF9Wuzk78+15uU4/Y6WcX/3cWInT81QXp6sc5d3d+2JvXVqRk5enrOGRbyCV5XrtCRZk347wftZVeiwRROuSdCxB52u/27oXHT1MEmS5RezknS8/Pb3DCls3jVJT19t8W3/07njY8ezTpekSVbb0xOIBKFfoxcnRNgdbfaSAqWmPmYZLknupnUVxXZJUlHH6Z4mp0ZrY1m739PbyppOG5bhvQ0nLCm7UvVkyZEMhxQel52autDi2/7HXb2uoszeLikiMyH1MSJBCEJGe2mZy2+bs6y1xYgYZbvQsojZbyVpTfmrs5xS2KQVSXMWRPi2/3HnP1N1IMclyTrXOudRIkGQJBltFX1GV21ZW7NhsXhH17i7bbE5Rm1O+e+UNPtRi0WSOiufcbyTI0kqdjd3LwFm+e5bSVpT/ttZhhSWtiJp9gKLb/ufzoJnHO/nuCTFzrXNfpRIEC7S2EXxUfaqBnvpu0qZsdKz2ldn9fryg91vOdztkie1U72+tEyKyk5KHaijlWX62ylaXbpnRpUUlpydMmOBxbf9T2fJ+vJ8u0tSVGb8jJVEgr4Yo72k3P+2Y5S3NhkRoz3/TYbbkFTs9ASD7lwZMVpnpc6y9VU7d7uMF6vyZqV09wpS+A/eTNLa8pdvcEphU1ck3Tk/QnKb2v905q2v2r/bJcl2h/XOlUSCLl7sovhIe1WjvfSgUq5b6Vntq7N2ffkh73V3Shohnfq0Q5IyU27q6bllG5a8csIIHT1kdzk/6Exe0D0PnfJ2ilaX7p9RJYUlZqdct8Di2/6ns2x9eaHdJSkyM/66lUSCcJEivbPUfKVOfMwSIg2Ru3FdRaF3ltohdad2jNb6QLPUDsMS4v0lclaW8btS9WTJYe8sdeJCi7n9zxC5jXUVpd5Z6sTHiAQhkArnLQc6pNCfTw94b+uqaAydYpWcHcfU8fQu4+8329ZO7WkUNGLt0nHaV3nLczVS6MKbxz07dYRv+5+u3+w3ni7skDRlUtyzs4kE4QpQ1NEp9dtNK0DZyLG7UvVkSUmGQwqPzE6NX2jx7bxyumFdRY29XVJoZkL8Y6QxcC4MQlzJjK7jkj5q2PSRJt4W99DPwqw6K5058nzd43vcx1+us8+wZVr7zMTzXHslXTvi+r6NWBS64j/jtK5m6c0NUsitD8Q9lBUmfWZq/3PG/nzdpj1uSRNvi3roZ0SCIEkVzjOSNGfkOw9678dx31j+4OhknVy078w7H/7v8jsDrO3l78RnFQpJlKShz24ZqQ0ts25rl65afO/IX935Td/2P59vfql11b4zkqbNCf/Vg0SCvmqXTQDIs/CWM2fVfTl9dxo1tTKvuVVbW1tbW6ua/Pwaw8hz+qd/JGtcb3VsnFVy2uIuKOxDPOjrLf7qawquDrD9W2Oi5GwoPNlWdbU3yhNq+cW0Kb8wF3na/0yJjlfnjqPHn22JemnWNd9S61OHym936Z1pZIDQD1tManbTkY3tbfaSI/bezXHZCa6Njrb0UG/6p64gy9EmRWT65YTqi7PcybsmjO1d+ciSsvX6FPNLeNr/vBAzXO7qZYVlRdFpuyaMVmtpVsmRMk3fSgYIQcWo3znf6ZSsc5PmPBoxSpLcFc9U7cpp3DXfffNbKd3Le51nmSRbxOzNk2ebX8LT/mdD9Ci585efOFAcmfVWSqLa9s8vf7VMSzeTAbriGfW/m2/USrFz/ZI9De/MP33jW9d0rwJmi569ovm3L7pqc8p/a3obmrbC1vCiUZsW0juQbJbvbp7yXfNLeNr/bIi2qLNg+fH3i6Nuf+uacWr94/zy35bpR5vJAOGi2GJmZDft2ehqsJfuMb3lSM6Ob9lY1ZAe4gnotL/5sWfxrxndgYMBDmiZvmXadPMWT/ufjTHh6iy5tyi/KPqmtyeMVeuReaV7ynTbFjJAF8toeG2B01DfZE/jzgXu2W/2JHskybZi/D3zh6n7g7xhySuT79Lfdu527d/RlrHS+z9gC//Bpn/8Qe8LeNv/bIgeLXfefSf2F0fe9WZKstp+v6D85XI9sIkM0MWyxVyX3bR/o6vRXrrfdN0lZse3baxqTA/xfIk9YsGEHy4I8OzYb0fLXt/4XsupBd4oj80yZcu0KeYiT/ufjTEj1Fl2b1FhUfSstyfEqvXYvNL9ZZq9hQwQLsZZW8zE7KbDG9vb7CWHA81SQyVJQ4y6v3pnqb45ofrCLHfKrgk9q4CdtVlSt16fan4NT/ufF2KGy20sKywtip60a0KkWk9klRwu04ytZIDgq8I5f1ezFLowKylg+x9p6I/vSvqxJMlR0fjIrpo3DnyiUWm9fYBGjVh7V9pan2PWP+3UwqzIBHX9ZucnTztHbV2adJNOPf5q5S2Neu8uMkC43KWHnuvtfp8y28ixWzPGmvd6Oq+8EDNU7oZlhTVF0eN2TQhXa3VWSUmZUrcSv8CAGISANPGBhOezrvJO4a+a/jPrWv398T3uTW+6Mn8W6lt7xr69Teq/nY81dMWv/2FF72Nv+59fjrTqM/tPHJs+ilj7n7bpcr34LzVLK/Tqr8kAQYl3jq65M8D2m2eEaJ/76PtdFXeGnHux3PHf7K2JG/rsc2OeNe/1tP95MiRR/7v54cZVJ0J2bBl1sz575N6WWZU69BwZoK/UZbMEWG1N3xhPD2eNdwmG2r3b1tx336pVq1555ZVXcvLyAqV/JF1g3MdHbJxVnsxRv+daUNv/Tgyq4SGTJLW4Hf1WmNr/dLT9d4tkjfhWqBRq+ddrwtRi/N/Gfp8JDF84YfoLCXHp3Q8j0qPTdl2f8i2fGs+KYBHZkyZ3p38khYx+bEJapgKuIGZiav9jtJ4skjJHj7ZJNostO1xFDiP3y/iZgC9LxetOp2RdMf6u7liPpJDER1Oy5kpyHXi97YLKAjG1/zHaS4qluZZEm2SLmL4iTMXOI1wyVzzPGl6xKyb+n+70j6Rh4x695va58lvzy7Lgmh9tsKWldT+MTYu6/a0p373hnK9gav9jtJUWS3Mjxtkkm2XqijAVG/kMQlys8AUTbtsYn+x9yxGVHn3T29Omm8ekUXd4o2vgxb/6Z2r/Y7R8WiRljhxrk2yW8dlhKqo6wdC9WGU7nIYn2bMyfLQ52XOHJNf+HW2SZPP02gibOMv/S/PkRVabpPLOpn4/Uunsbf9jtB8vlu6wJNvOyhY+c0WYip25h7+kn+yKMGLBhNkb4xO9111kevSst6dNOffvAklSfEikuhsF9cPU/sdocRZJmSNjbZLNkpIdpqKqUq47XKyQhRNm+M5SJ+26frzvLLXRO0ud+pjFc+s5q5DRj02YlKmAK4j1MLf/kdFa552lnrVZErLDVeRwMHRh4sgvT/Es7LU0ae25v39QQmLkW1mj1LPmV2Cm9j/N7X9wSpMsN42SRo1YdnOonDVbKy7dDwBctkydV4zW1iIpc3S4bYhsI6Oyw1XkaOBmji8dgxBByzZ0oiSF3Djjm357pi+Imiip4jOn3xTe6Xr/I0kRszLO8zXO9Lb/8Tz3trDp1rOyhs57IEQfNbyd94V/ClzGrN+cJk9rny/I1P6npuudE9KckJvjhihu6L/de5VOtP/H0Utwsjh/l00HIE+fnoz7Ny2Z3H9RwbZVOXmSrBkZtri4qXFxio2drGNrVvVZAuyLnMmU6dYcp/PIsdpbbw0UI6rdu/mVHKd17uonAu7G18DIkH7/+qe3/Y+qGpoLpUlh3Z+8x4cNl1yfuDoVeV6JdlyZhs+MSZkZ49u2p6NNUnKIp9mPu0xS+Jhv+X+j072CWJn7tCyBG/n0tv/R6b80tUkR47qH4vCEEKnd5XBrJn9diWDhbi6TFJZ6g/+gTbzbas1xOss6m6VR51sWSG/7HzV/0OKUrAnd3S9HXR0iuRo/5ZK5wnW2lEkKS7nB/9d695pfZV2t3Wt7SZJlZvR3Z0b7dvdx10pKHtpvF5/e9j9q/aC5VopN6B5ylquHS66GTzs1kzcVuEjhM2Omz4zxbdvjbpCUHBIutX/Q1CBJrvx5R/P9nllUtWdGlRR90+GEsQqkt/1P93GixnUP3fCrQyVXC0P3InU2lsub7PH547zkRVbbbqdR3tmkiNHd20Ii+1u4rdjdJI0OuKu3/c/ZpkMthmRL7P7dN/rqEMl18lO3ZvB/d/FGzIyZMjPGt22Pu1FScsh5tedJ77+st/2PTn3Q1ChFeq+7EVeHSq42rjt8ASEzY1Jnxvi27emepXqa/ZwukxQe02eWGumdpbplCfy+2dv+J4RZKs7l4P7yZYUdUujPl/bX+yeQkSFTpGMDFPS2/5GjovWYNCWq+3dfwqhhUkdJc5cSz70uDfA1NnxYslTU3lUl+b0/rOrokJQcMlRDzrsskN7OK0O6/tLUIYV6b+ZDE0Kk9tMOt2bSdvxKxiAEzmmoLcBiXpKkj7qqJZ+dnlXDbgubfp5te3rb/5x1Hj51XJro/ZTbahsquR3GZ8q4bMIA+HJ0t/b5RvI46cSZUqcU51vg/OyopHHf6LeLT2/7nyEVH54+Kk2L715TLNF6lXTmhPN/Ne08VhnDJXLZdACKjbNJyssvGKCmID9Pss5dvemJJUuW3Hrr5MmTJ8fG1h47cgnTP5InASQ5czbvDdDnp3bv5hynZJ0+hfTP4OnccfTY5PeOPdW3W89pd6GksKH9LONlav/jdU2Yz8eshS73pTxTXAGaDtbL9DHoxTK1//EKS/D5ILWtsvOLvQRwOTG1//GKvNrnknE6ur7qk8LlpfL9BpkyPX2Y2v94RV3t87ug1sGbClxK1X+ulymsc7FM7X+8RvoO3YZKhu6XyRY+MU2Su9Hos8twG5LSQgKnf8ztf7zG+P7uMyr43XeJ1f65Xr1hnc6ye4/+14yjx/r+gXLVwDkhU/sfrwjf666R6w6XVOOlmKX6tP/xYpaKQLoO7i9eVtgh66itDwdM/3T9ZmdxynPFj1/wHyab2v94pY7yifsca+B3H4LesHHhkk73mT92Odwy5STOs6wPU+cVr+G+N/MObuZXPAYh0C9r2I3XSuoy+n4R7Qn6XDvU74+vjnzQJlOI51xM7X+8Emw+3YaO8yk39Pnmh0/G3XbykaN9UmW+yZ7E+KsknXD+r19VhfOMTJmeAMfvaf/jNd7qE0E5WvX5F/kBcKEumwCQJk/NkJT3ypptBT25m9qCvWvuu++++7aZYkHOI8d6CmoLtl3a7j8esbcun2uVnDmr1mzbazqb3pfLuIPuP4NpWEKYJL190q9PdeeOigZJ88b087f6nvY/idHmeNAnLp83lz0NgQA/p9/4+M8ZHxa84TvDMeo+tcvU8ickJFlS+8m/+E+EPEuDeRsF9eFp/7M0xrzX5Tub+sIZI+CrFDIqWZKr5AP/a8Gz5peSh426gLI+PO1/7ok272381Ocg1vOdZeFyNWxksiRX6Qf+nyJ5lgbrae3T+uYnv5517Hdv+pYZ9UdyFLCBUDdP+597os3vORo+9TlI/+EhYCDtb368c8bRd/3HZN1HdklhV98wTFL4ggl3HZ7m/+/t+ChJ6fG3HZ5218Dtf5b4LBzW4jt0v3DG6Io1LDJJkuv4If9fap6lwZQ0bLTO9pR1rwhmLjvYKMn2Tz3Lh/nytP+5J9q896Tv7z4bLRAu1qk3P/6vGUcP9rnuSuySwqzdvwuGjUiWpIo/+89Dy7bVS0r8dj/zUE/7nyUx5nhQm+91F8l1h4vifuPjP2V8mO87Sx1i1FXa1dPy56xChidLaq/rM0tt9M5SB2r/szTGvJdZKvo6uP+TZYWSNe69u6w3BS4ZmhgpSW+U+q+UePBIzTFJkcMCd/L2tP+ZEWneW9Ls8x1YT0MgIHgN/dboUKljY027z5vAloaN7VK4xdu/7TzL/Hk6ryyNMbdm8Qtw9J/bwJWCQQj07ypboiT3pjddfju6gz7fCbP6XBFnjAoFXDIsME/7n8UjzQdxGJ+ZS847S4TL2DeSx0nS9sOf+W7/fPMbbkmLveMt8frh06SjW1wHfIZl139sOSNddfv1/aRKPO1/FoaY+wP5pYj6Dw/hS3H5BIA0ecn9GVbJmffKqvu6rXolxyll3N+9LJgnI+TM6SlY9UqeN/3jrAnQrueixd66vPtkckxn0/1yGfevHmidMnwFvpVgmyTJWf6jj1urPJs6Wp86evzZFvk1+DHxb/8THzVqkqnlT5XrtPo0BAJ6eP4uoW1jRWlu95g5nVtXkOVokyKyE8d6G5+OvilaUtvGwoJ1rae7t7mb1n1cbJcUnrw44LcC/u1/hn9rdITpjyk9M6IwvkhGUEm8MVKS88UTO59pa+7e5q54pnRXjqSwm++OuKAyX/7tf0bdMNJqavnT/KlbfRoC4Qo07sYoSbUvHv/dM63er2o7K5/55J0cSWE33t19Q7ZcPVxS7YuOP+Z233Vbc+t/N9+olWJXJEwOvEaPf/sfyw2jYk0tf1o/Pa0+DYGA8xR+daikho3lR7xjsj237t15VQ1SVHZSan/rRp0X//Y/4TeMjjK1/Gn/tEN9GgLh/CXfFCnJePHEa+vbm7o/NOksW1+2c7eksNmLun+pJS+y2iTtLn9tfUOZ4V82cVbA31/+7X9GzxppM7X8afrUrT4NgXD+RlwdKqlxY/kx73V3Krfu4LyqRikyOynZe93FLoqPlGQvPbi+tftLbKP12L1FhUXya/Bj4t/+Z8QNoyNNLX9OfdqhPg2BgPPUM0st8c5S3bl1f/XOUq3eoRvpnaXmr2v11A2Ru2ndx4V2SeEpgWapfdv/MEtFQI78cm/6JzJwiEeSdNP0uCmSCivn7z/l6N7WdXB/+bJCSaE/nx6wgZp/+5+ERMsUU8sfR3On+jQEAoKSzWJJl1Rfuayi3TgrSUZLw7KSRknpoyNsF1jmw7/zSneAw3sz9zRuGc7NHAxCoH/TF0RNlLSn5mfPtx5xeqbwZ44873x8jwIFfbo+/UgDLRnmw7/9j3XGiImmlj9Oo0t9GgLhynRzVvg0Sftabn+pq8IT7qnpeuThxlUn5NO5J27o7eMluRc93H6gprts88Mt2yWNH/69uIDH9m//050i8rb88XQP8msIhC/bZbXs3+QlT6yeum3z7jxnd6zHas24Y/mSybG9Bavvl+/+6Xd8f0rN5lU5TqOmVpMvXVue2MlLnlj9/YI/bN5tOH1f7tZL+Cq4WKHRT1/TfPsnrkJn+e0+LaCiXpoYHXj9L0/7nymmvaER/zxShc66HQmWRWr9v5+4+g8PAdLMxLRMd7G9veanhTXm7ekJqQtDzGXTs91HNra32UuO2H0OYM4J+fC0/3nB1P7HZhmTrjZ7dfViy1i1Ghvb/VYHA4LAzPilK9yvvuhy5pS/muOzx7oifqrtAsvMPO1/Npja/9jCU9PkzKnLvztiqtqOvOjyWx0MV6iZ8T9acfq3L7pqc8p/6zu6fJI9M+Nvn3v6nRxX8UPHi81FabbZCwZs/7PB1P7HFpGSptqcuoK7LZPVmv+iy291MOACzEy4KbPjoN1Vll1UZt6eHj+jvzF5njztfzaa2v/YRl6dXtVgry5ZZElV64mNLr/VwXBhZtgeWOF++UWXsbv85d0+zJmuYwAAIABJREFUe2wr4jNs3r++skXds8H92kONxm7nzt3myUzY1A0pvWVmnvY/G0ztf2zhE9Nk7K7LWxSRobbcF11+q4PhwsxMmJXZccjuqsgu8lmgJj3+OvN1Z4u5Lrtp/0ZXo710v89b/ehZq2ICr//laf+z0bTXNtKaXtVory5bZElWa+lGV//hIeAczs5MnJTpLgw0S51omqWenZk4I9t9eGN7m73kcJ9ZqrWfWWppkeJeMLX/sVli0tVmr3YuttjU6tjY7rc6GK5Ip7Ye6JAkZ80tz9UE2D9pXOnsEZI0KvKtLHfKruZjhZW3FJorQhdmBVw1zNv+J8uUKxoV/n1rzbHCk7+ZPuLHnpf2XR0MCFrDo55M7coqaSyqr8yqN22PHrfV3DTlPMtMPJ1XXjDttVks6eqwVzcstkSptWFju9/CTLhSMQiB/lktz/+y62f/3nZ8T8PjexpMO0Ju/aUt0+o7hXd+5lCAdcEC87T/+aWp/Y817MZrG47vabYvCMuU6+2X3X6rg+HKFTf8V/eenrXlzNF9LbP2mXeE7HjI3LnnG8sfGll6b8v2E+5F97p9yp7zafDTy9P+50nT3riht4/X0X2nNmeNWq7P/mPLGb/VwfAVGHL2bKDPB3G5+9v3pg72KXwNdLQ+dbzu7RZP572wSdaYpydYAqd/1Lnj6PFnZXtnml88qHPHx45nnS5Jk6y2pyf0Ex66Iv3ju/kDF9z04ZX4vuN0bkXJq/VtRZKk9PC4pYkpMwP8gcJpo9V4srqmqN3zMCI9+uonE0cH/jMId/WywjIlTN8aM9xv+7qKMnu7pIjMhNTHYgKvHXa5O3h93mCfwiXzSO6UwT6FQdBstB1ZU1dY3N0i1ZoWOeOJ+MQ+18J5lkmS3PnLTxyQdenm6FF+25+pOpDjkmSda53zaHTgtcMud8/OPDZwwf+Xe8W9f2g1WvPX1BV7R1dsWtT0J+LH9RldrblV+19rqPUkgNLC0u5J+O7M/pIWnQXLj78v2482R1v8tj/jeD/HJSl2rm32o9H9rARzmfvVzHO8f/jaujtv+mCfgo/2XMfhbfUN3W85wpKXJE3vd0x6GXXvzqtqSI+/bYvPCl9enSX3FuWr797OkvXl+XaXpKjM+BkrAz53ML2ecWTggicOfb3aszYZ7blr6/K9tx1bWuSNj8cn9431GO15O+qO73YZA5dJUmfefSf2y/rApmjf1cE689ZX7d/tkmS7w3rnyujAa4cNnjWzCgYuyPqaXXench1/3Vbf6L3uEpckTQl43Rmtx1ZXVxR1z0MjM8det9ISOP2jzrJ7iwoVP3uLXzyos2x9eaHdJSkyM/66lf2EhwbPrnNdd19b370iZ6nu3IrjvrPU1ECzVLfR6vCdpY7rZ5Y6RG5jWWGpEmZs9Vn/a4jcxrqKUu8sdeJjMVfmX+v/8Vyz1LJH0r+aMxl8Fc6UXc0DFfQEgDyaTz2+7+Qbzg5JUuiUSZYHpkfeFHjm1vWbnZ88rb6Nhbp+s994urBD0pRJcc/OHqjt0GUs+dmiwT6FS2nSh1dMhDm3vOin9cpMTX9sZIC9RkvD9uoae/ddOjQzIf6xQImK8yyTpNMNywprlJDqn8w43bCuwnOEAZ9++Si8/vDABQzCbgzCL9M5x2EQ+e8/Jg/2KQwGZ4f9zeb397iPS5ImXhtx12Njplv7zMHz6uf8e5uujXr11yOt55ihn7H/xLFJfSvP2J+v27THLWnibVEP/eycx7k8/fN3ywYuqP19zFdzJl8vNV2PbDi1/cQZSdJV0+aM+NWD3wwQ66np2rzr1Kp9njJNmxP+qwf7Sf/o880PN65S+CH/eNDnm19q9RxhwKdfzmJ/UDeIr04A6ApFAAhfNgJA+DogAARcEAJAGHQEgHDJBV0ACD2CLgCEHgSAgAEQAMKgIwAEXBACQPg6IAAEXBACQBh0gxsAYsU1AAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACC2JCzZ88O9jkAAAAAAAAAAAAAAAAAuEh0AAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIgRAAIAAAAAAAAAAAAAAACCGAEgAAAAAAAAAAAAAAAAIIhdNdgngMFRcMvUwT4FXOYmv5c/cMHUD2d8NWeCK1n+9YcH+xQumYdzpwz2KeDy99zMYwMXLDk87as5E1yxts04OtincJEW5E0f7FNAYG9mHBm4YNWhyV/NmeBCrZ5VMHDBD7nuvq7+61zX3dfWdz7MGOxTwOXvT9fnDVxQ/kTaV3MmuGIlrSke7FO4lCbxASO+ZIXn+nSRQYivwDnHYRD5/Z9SBvsUcPn7wXdKBy6o/X3MV3MmuGLF/qBuEF+dDkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAECMABAAAAAAAAAAAAAAAAAQxAkAAAAAAAAAAAAAAAABAELtqsE8AGCytT/1P+a4A26Ne+qf4G3oedbQ+9XH5rhZJYZOuiXkq3hLvW/3BiWMPumy7r4v22w6YtFRllDRkpk55bGSgvafr11U029tdkqSwzISYxTEW25CLKTNaqp4saSiSFB6WPTZhoWWYfApa1+WVlyVM3Brjtx34+jLa3l1TV1jsGfiKm2udeXd0ou2iyoy2d9eUFxZLCotbEfP9BRF+F2TFMwX/VWZdujk64IWKK1dV26G11SVF3Xff1J+OTV8QEd6nqj33ZNFrTT1l0XNHT757jM3vzUFV26G1pSVFksKifzr2pj7HMdb/9d2/x8/bPKbv8YELZrQeXV1d7h2TSdljUxdYzjG0jLoD86oa0uNv3RLjU2m0Hl1dWl4kKSwqe+z0PsepWX/0/bI+z8JFM9r3rK3L9/5Ss91h/fai6GTbWd+i9j03lOcHeHLk3R/EJ8tbbLTvWVueXywpzLYiZu78iNHyOU7Z+r+9Xm59cFO033ZcJKP12OrqSu91Ny57bMoCywj/otZjM0orAzw5etbhhBifQ5VWFkkKi8weO7XPcerWHz1UFv+9LTF9jg9cOKP1kyera4raJUnhcdlj4xdahp+jTBGZCQmLY0b7v+Vu/eTJkpoiSeER2WPH9zlO07oPi8oSrt8aE+D4uII5yhq3vN+20+iQJIVOnRrxwMzI74zuW9j1p987X87v6P4NaAu960brU8lDfUqaTv3i/zl2GpJCp86Ofi5jRILvIf70+4+Wnow9cE+k33YgGLRUZ5Q0Zqam9/MBY8O6ilZ7e/eFlJkwZnFMeKAPGM9dZrRUP1nSWCQpPDR7bPxCy1DfDxLb1+VVliWkbo0ZygeMVxwGIXDRPju6oe6NPe4TnkfXhsz5l5gHM77pX+V0vfTL5n0fuSVJIXMeGJU1LywuQE3Nvo8khYx/YNRDfQqObih7siJqy0sj/Z+IK13XI7e1bA+wPWTHnvCbfW6nn29+qfWdfWeOSpKmzQnPzgq5Oc73flvT9ciGlu0nJF017d4Rv7rzm4m+N+QDL51cVBl+6LmQRG7UgyEoAkC1e9esynEOWGKdu/qJW2O/ovM5DwXb7nslr+9mq9Vqu2P5kslfozO9cnV0lZ67qPWp3PJdI227/yk6vqP+X3PL73AlHRtvMR2kfrNTWZNJ/2AgretKGvrd2VKV4bPXZXeU2zuS8hItPr8Uz6espSqrpCE9YWJezDCj7pOskuOVvpEjo7bOrqgXSP8geBj1r8931pg21OQ4/yun5btvpUy1XWhZ27vzywvTrEsPRY806l+fX/6qI+mhRyPMB8nN0aQNpH/goz3X8fbPfO6+JS+UlvxP1Pc2J/iMwfUn3s1xmcvqc1zv5jRd/9b4a3vfIrQdml9akh4/L3dMeNXJPfNL365MuWelaRBWnSzIUerzpH9wCbTnOvZm15s2uMo3lpa/F33jloT+P/3pLF1dFegdS+vReaXl6fG3Ho4JN+oOzCvdW5kyf6Xp/bBR97FdSRtJ/1wiRsO2BU7DvGG38/XdLf/8ZkqGOQNkdJ4897Ha9ywoz0+zPvhB9GijftuC8pcqkp5YafqPMhr+vFtTN5D+uTRO5Tre9b3uKjeWVr4XPWuLKdYjyXC3n/tgrcfmlVamx3/vcMwIo+7P80rfrUzJ9L3uSuwat5H0Dy6B07kVH/7UPHTbazaW1LwXnb410Sd9YdQdy3K0mTa02R1F9qbkXROsve+KWj/JKqlJT7g+L2a4UXcsq+TDytSbHvMZug674l4g/QMff/p9xdL8DtOGjvz8jqX5bY8/kPhj8yhsOvWLlx07zc80OnbuLC2ZmvC7H/TcDk/94mXHTlvsgccjE5oa/8/LjpsbEv7+A9PNsqnx5XzddRfpHwSl9nUljf3ubKnO8NnbYXdU2jvG5SWG+37AeB5lLdVZJY3pCal5MUONur9nlZRU+qY9jNqTdkW+QPDiSsQgBC6S0/XS4pp95i0fufc95qi8Le65h8J6ttXknbz3MfM7bve+l2v2/SniyZfGTOvd6Hppcc2+a6O2/HFknLPl4cU19zri9pgOImfLG3s0Zx3pH/RR8/mJ86rzzwkd3de+aN9nviGhrkfubdk+PvzQnpDEGvft97bMqhpZ86Apl19zeuM+LX6S9M+gYQmwr5TT6cx7ZdWabQWDfSKQTrsLJVmTjv3TFN9/ve1/qqrqdklZ46LjJYVGL7dKzrrXTR9KfPCpUTjS9q+RX/3ZI1icbl2XV27vd3d3Nig9IWnX9VPyMqbsSrWlS6ovX1bXafom5nzKOt+obpCilsYM0xDZYmMyJXt1vWE6yHaHKz1hzMwv5ecEvgTu/DXOGklp1h++NfmhQ5Mfeivpu2mSXH9cU99ygWUtb9YVSpPuiR4pyRY9c66UU5dv+n614nVnTZp1OhcIzKpOHvSkf9Ljv/fWdffkXndPbtr35oapqOHd5Sd7v77Ndbyb45LCUp9Puyf3untyr7vnrZTr0yW5Ppzv6Bll7W9Wl0ip94wJlxQ/ZvJcKaf6o/+fvXuPb7JO8L7/9TUKpaUHeqCUJvZgsdUSFxAtB08zs+7g6DB0YQFPuyOI3q7cj7I6g/vco4C4z8IoA7Or63LU+x5hwBumlcHDjKuOx1KsLUOoFlt6IEnTkrS0DWnTquvzR5I2SdNSDloDn/eLP6a5fteVdPxdOVz59vuz9N2bdYfFYTKamIQ4e9bmj70pBJPx+t1T5++fOn+/6frCGJkd7y9pHih54NpVW2EOe3tjrZS9KDVWkiH1ikKpqLE64PnTvt3iNBlzmbrnRnfpaptV0sT0O3ZNeuLDv3piV/aPJkpy/3G1ozXwoonVY5U0O/uJD/8q+J+ht/6n9eXmcmnKPSmJ+lqG5BtmS3ubS619B6nZbrNOTJ8x7dv8Bc9f1uZy/3k3Y/fUwv1TC/ebZhTGyOz4aEnzycCRFk+LpMIJhfunBv/rywmd3NVYL2UuSh0tyZCaWygVNdYEnHfN2y0tJuMEzjucPWtzlTf9Y8ow7bn2xtJrbyy9ylQYK7PDfG9zV984j21lQ0fgsD25OSZJrpqVfcO6djbapbTFqaMkGVIzCqWixsBIY+tLDR2mDCNTF4FqGheXd0rRt98+4ejj+Ucfzz/6YMbjBkmdq59r/HPfuJ4XX2n4nSTDmK0P5h99PP/o4xO2/k20pPJyx4utvkENpY7fSbdfn5QhKTHpwSlSwFZJfy5pKjeMW5LzLf1ywLnT5VpTWj/wBUZfLMOUkbnnWlNpgWlPbppJkqP+3uaegAuMQxnWs7OxRUpanDpCF8kwbmyhVNToDLjA6HqpodOUkcyT+QWHSQicsS9e+Vf7G5Ly41a+lLPvnZx972SsfDBKUtW+E6/0ll/Y2tZ50z/5yX3DbotSZcfKpW29f/tq333iDWnW3QlpktITFt4mBR5EKtvprMpPnlvwrf12iBy2L8okzUqw7xsb/C8usP7n7WfbXpKUF7t9c4p931j75oRVeZI8dz7qqfM/Ude9cvIl6a6FUVm6SGmjls2S3ji5yd73RP32HldZXuw/ThWGS0QEgMbd8sTGAA8USEqfsyrwtu9U/Y9fyGPcuHHjqgfmpEu20r2vNw33g7vgfehwSroqJmqQMcfcbikm2/+3aZfGxEju2t6LWy2WpTZ/PAjop7ukyXLvoUHSP95KHikle4t/MS9DQsqW3GRJ5tYO6+kN89S7pNgo/3SMyoyVXJ7er5ZLamuL/PEgICJYXVWHJSX97Sb/Yl6GuCmbsq+SdLit1np6w040uKWYJP8JMiYjRnK39J0glt8X++NBgJ91h8UhyWSct6l3Ma+RhuV5N8+RzBZzifeW7soXnJJyf503Y/pI357GuPxNE3IlyXnMN0zt9W4pJt7/J/LxmTGSu713Jpc0vFnsjwcBZ8e+3eKUZDLesjk1zTflRqYtv+L6QslsOVISbh9r88fr3eE26KR36vqfP0d7p27f82fD+0X+eBDOntVVeVhS0h0b/Wt+GWILNmZPkXS4LTB3VfNuiyRD1oiwh/FqrXNLMSn+p53ErBjJ7eg9yH7rjr3+eBDOWvN2S4skk/Hmzamp/vMudfkVMwols6U64Lxrfs8hKSlzsM+h7nq3FBPrP+9iMmMktyvgvPuoyB8PAs5O60u+WM+1W3oX84pKfOwKU6FkbrD0Tl1r+3GzpBRT7zBDfPqW3DRJ5tZW/xNLV71Lio3xT91RmbGSy903devMRf54EODT8+L7JyTdfntW30peiaN/dk/G7ZJ04r9q/ANrnKutksZsvWe8f2mwETcVZL39N9FS5+oSX9KyztkpRef4e4OykqOlzpreAFBN4+JyfzwIiBw9JU2N9x4aJHjhbUORUjK3+NdRMiQkb8lNUugFxqEM6653SbEj/E/mIzNjJVdPwAXG+iJ/MgMXDCYhcFZKT2yulBS38tmxU9O9N10ydZ5h84NRkmfzTt/VmLKdzipJ+cmbn03oG/aIYeVtUqVzj3/JGVuDR4oy+j/pp2dESR5L71lWenzlPn88CAj29n6PpKnG7w02yN61/g1JUduf8a/5lTbivmcS7pJU1fWmP4lWZ/lSuniCb6Iqy3ix9GV1bxCtrOPON/zxIAyTiAgAnT/GTbrlvjnpku3jChJAw6u7wS0p5kdJI085dKAj7Kh3ivofDKB756efPtzgNCumMPfKDSnhx3zQ6pZUmBi82lfC2GWxkuvEB57TGjaoLsdWh6j/QWSxeOyS5sRnBd06ImmigrI7Qxw2GE/5Cy2i/gehutuPSgoTyjHckCzpyHsdvmFmScmXhs6fuEvnSFLrse6h3FflC05R/4Nzo/tkjaQwoZy0G1Ik1b7X3n8X7+Jf2cuMyad5X9XbHKL+5xzy9frE5wSFckakTFRQdkfdLbWSYvJnDBYiGVR36Qstov7nnOl21UgKE8pJvSFFUn3feecdGTN+5pl/Dq3Z5hD1Pzg3PF01ksKEchJvTJFkf9c/dS2dHZIKE4MWBdPIGJOCIj6D3pdtq0PU/yBUT41V0pi/Dq3kGf3XUyTpSEuPd5g/JzT+puBxGQVZRx/PD1rka+D7evH9E6L+B5GmZ+enRx5uaDErujA3d4ALjD0ftHZKKkwMXmgpIXlZrORq9185HOKwQXU5tzpE88oFhkkInJ0vXvlth6RZa8aGlKGkzTPseyfHv3rXF7Y6SWGyO1Ovi5P0xgfh/2orzH1R/4Pwvqqpl3TxT64dLBlSd6CrTNKsqB8EPVGP+MclF0tf/uHAfw/ljjbt9Ij6n+F28XA/gHOv6eDrr+0tLvUGzdLTC2bft2jSuP4jPrbabP4wWvCoptefXFFsK3hg44+1bdPzpTZJ6QUPPLFoktT0+rZNxf5b+h33NBjSvoONRRcUT22blDAmo8vx1GfWPW2SdFVC8n1XGGdGD7jPMXfAS2zL8afbNHcS9T8YmCnFsDgtZfoolbSG3e6pd0lKvjE+5PaRGVGSy13fLY0a+rCwB/cpsVvNSt5A/Q8iijEqTbIXt9f9Ii4g3NPTcliBXT5DHRbsREPA83mJ453Dumod9T8Iq6+zp49hVIrkOOpxKS5WcTNKrp5x+sdtrw+chE0HzMr9NfU/OIf6Onv6GKOSJWeNx6X4wMlmX2uuMEuFE6bO9Ly9/hTHPRk8dSvMyl5P/c+5Y4gySNa97TXL4wIyQD2Owwrs8vHdMjEhyerYt9pWfliSDBOTbnjc6OsNCqe1LuC/3X7HHw9ryjrqf86tvs6ePsaoJKmlxnNS8aMlyeMyS6bEWEtzxSpLvVmSkkwpuSsyUvu/3Pi5g887s1mZ66n/wTnU19nTxxgdJ3XUeLoUP6r3x6LW1sfiAzJA3W7zALtL8hUC+ZXYa8xK20D9D0KMfurx/KdOPWygnNAp1Dk7+36oca626vbbqf9BBDKlpC1OSx74AmN3vUtSUr8rhyMyoiRXp//K4RCHhT24T4ndblbSBppXLjxMQuDM9VgqJcVNG1Iop6/ap49hRJ5UVfeFXerf62NrCEjOlZ7YXKlZa6j/QVhfVVdJeaNybJ6fr3O9VCVJU/Oilj0S62v6keSr9tFd0y4J2Tkr/WLpyzLLV1KYAiHvXj5l7hVVumsl9T/D7HxrAGp6/ckVz/vTP5JsttLnVzy57WD/EbaANRG9o0KW5SrftuJ5/4Fspc9vO9j0+pMrigNu2XT663g1Hdy2qdgmFUyZdLq74pzq7KmW1GZdetCX/pF0qM25tKTiqZa+UaFrfkn+FcGo/8EpjFx45eQt2SnTB7m82dVTo8BFu/oYo2Mk1Xi69fWQh/Vb80u9e1H/g8hkiM2bKKnl9/c56rydB9aO8vtqD0makzrFcHrDQtf8kvzxIOp/8A3pOFYsKSZrhq/jIXTNL8mfLqL+B8OqpOH9IslkvGV56EVYr9A1vyR/uoj6n2+AITZ/oqSWHfc7aqwXSZLVVXp/bbmk2akFveEea/dxSYdtOx7xpX8kWQ+37FhwcN/+vssroWt+Sf4UEfU/w8fqcUkyWz5a5kv/SGoxOz6aV1YRsExY6Jpfkj9dRP0PhokhfqxJksN8b7NvwS9ru+3eI3ZJhePT/W+5Q9f8kvzxIOp/cLpO/le5pOhbJ4yQpNbuI5IMI7OkhprGv3uh8rLVlZetrrzshcYXa3oCdwtd80vyrwhG/Q8i1YiFV5q2ZCcPeoGxu0aB6yX1MUZHS6rx9OjrIQ/rt9ySeveieeUCxSQEzorti3pJ+SPSJXvp8UdHUuqhAAAgAElEQVSX1tz2/Zrbvl9z29Ljr5R+cQbHC13zS/LHhqj/waDsX1VJqnLdudKX/pFUVuW5c4nj52W9fxvmawnqXdurT/olUyXVf1Wnr9V/zS/17kX9z3fF+RUAOrhtRbFN6QUPrFq10WvVAwXp3viOf8hrxTYpfc4D/hEbN656oEDqtyxXaWlpgXeQd3vp8yuK5dtt1ZyC/jv0ZytecX+wFc+X2pQ+Z9Ui8j/DrMtzSJJ0VXr23h9Orvjh5IrpV/48PUbSnoOf7/D/gZDRmDpX2lPvsEjqdGyySempd0T7638yqf/Bd8jIheOTJefW5m59LWtTc5FUOD7FcJGv/mcx9T+IOFFTNuX97ZwYHbb9fv7BdTMOrptf+85hpc3JXvyLuNMdlrAg9Srp0AuONklWR0mxPx7krf+5h/of9Dcy/jJJ7gM7OkI2WHdYHKfa2bWr8YikOePz/e8VYheMz5WOvHDcJcly/GCxf6u3/qffQmPAmRo5OkeSu2J76FJf9u0WZ+jg9rJlDilm8ooBW3xiF4zPlmq3NbskWZs/K5IKx08w+Ot/+i00hrMzsmBj3h2zY3TYtmPBwSdn/uXJBbV/PCzD7OylywNe+7wrhUmG2dlLP5z0xId/9cSuvB/NjpFU/kh1qdX3li9xfuoUqfwFR6suktX53l5/ishb/3MP9T/n0MjYHEluc7/zrnm7pSXwZ4vH+2NS4YSb908t3D+1cLfJVBgjqX7ZZzX+a7ijF4zPlOq3NZ+UZG0+UiQVjs8x+Ot/+i00BpypqFE5klw1L4VO3daXGoLfAEWlb7nKVBgrc4N57oF3Cw68O/dIjVlxhbnXPtaXHx21cHyaZN/a3CXJ2txQ5I8Heet/+i00BgykodTxO0lTUn4WvOzcO6/W/eB3J8p7v/Gynlj9u+q/K+3LAGUUpNwu/e79lgZJrS3PlfsP4q3/uZ76H+DURiwcnyS1bG3u0deyNh0vkgrHJxsu8jWvLKZ5Bd84JiHOSwfWWZc81lFV6f+5smPzYw2P7u7NAF2SniXJs3ln6FJfZTudVQE/ps0bM0t647dtdkm2tp37pNvG/DTdX//TbwUxwMf2RZkkaeqshI/2pdj3jbVvTlo162JJL608scl+eheIsn46+i7ppZ2eOn0te9f6N6RZo+9Lu8hX/7OQ+p/hd14FgA6Wl0rpc+5bNGmcf4GtcZMWPfFAgVRa7ksATVq0cePGjU/cErB617hJP57TP8ymggd8S3yNmzSlQJLS59zn223cLVMKJNnsp10BJEmynyI4hG+cpbNLktKz/3eef3mE6JF35F3+bLok9x9buv0D4385PXuurLPfqphccmLC5dl78+KD63+6d1R9PvmtislvVfxDlWNIC98DQ2TuHMq6xwHDEox7cpPV8GnBgYq5raOW5V75WHxw/U+XY82nFQWlFQWln69p6uYrH3z3WV01NaGfeew17SesZzAs7uaXs6+SbeuMg+vmt6U85I0HBdb/eMp/Vb1uxsF1Mw7u+JWjTYAMdxhTJBVX71vb4e+b7raurXqzWJJk7gr9rqxXScPuDW4p5to7AsNqcTNenpAry+7pn7wwvzXx4QnzlscF1/90V66temH6Jy9M/2Tf2uOugQ4OnErancZkSUXVb69t75269rWfvV8kSTJ7TvpH2tdW10rJy7InDLz2kBQ/dfeEbFlen1b28rzWuGUTblkeH1z/01299rOXp5W9PK3s7bXNTN2zZXVV1Ya+qFlr21sDXtRaj3kkaXb2ouWxvhCPYWTB8pw7ZktyV37U+xYy9rZd2VNke3bmwScXtI19yJsiCqz/6S5dW/PkzL88OfMv29Y6W7k6cxZS7zQmSSqqfm9tu/8U625e+9lH/vPO+x/15LFOSSqccMPyeF+IxzAyZ/kVMwoluRs/7PscOnn3hExZ3pxWVjSvNXbZhJuXxwfX/3TXrP2saFpZ0bSy99Y2957UwOlKvCsjTlLRkYo17f7uY0/rms/Mvqnb2VeIbG131oQ+x3fUtHYFveWOv3xPbpoaDhQceHdua8wybzwosP7HY1vz2bsFB94tOFCxprlLQDg1jT/4U6cU/fh0f9yxtbtckrVpdXnnlCkZbz+ef/Tx/KOPT9g6JVpS+Z9sL/ZV/ox+6sGM29X0g9WVlz3Xkfs3GW/fOjq4/qfnxVfrvAVCf/dqS8Mw/HrAt87c2X3qQYHDEsbvyU1Sw5GCA+a5raOW5eY+Fh/cvNLlXPOpuaDUXFB6dE1TDxcYcUpMQlzIrD1Vkiqdm/d58m5L2/xOzr53cva9k7HytihJVc81v+LvUJm6MDlP0j77o+vcdt9tX5Sts67cJ0mq7PEPjFn6UtosOZd8v+a2u05mPpi2+ZGY4PqfL15ZZ/X2DD26rs0uQJLqbF9K0qyEPywd4UvnpH3vvqWJ22dJ+vIPB/57SEep+qLO979GPL054S65ZtzmSFvSlbck4aOllwTX/3y16dnWtNuOp912/CfPdtXxRP2tu3i4H8A51GS3ylu7U9x/o9XepIDQj5qampqammQvL7dbraU2W78d0tMCIkJp6ZLNEHDLkKTPWfXELUH7NDUdfG3T86XFK6wK3YRvk9F4eUW49p6ZKcmyOQ8d77AY/e0+0fG/vHryLwMHeet/JqUY1b3jk0+fbkt+dvrlM9X+VEntbLf2Xk0tEM4RU3TU6Q4zJBi3FATNQG/9z4bUkfI47j1kNadk77kiXu2WuUc+rdGVW6gFwneY1bFjvs0upc3J/vEv4hIkyVP3K8vvi1t+P9/z/Zcn+Jb3GuIwSYa4mzdNujnwLrz1P+tSEuQpv6/qncNJf/vyhCx1vDm/dmuNFm+iFuiCZxx748Otuze4HcXVuwPeXOY+bGzdYHGYRoVfMKmkYd8/OaWY3F/n5Ye8JzDGzdh09YygwU0HzMr99dhYdVfed/iAOfnml/MM6vhofvXuo5q3iVognBFD6jXLWl9f73YWVb9e1Hdz9jJjx3qL0xTl/TLNtesz7+Jf1ywYeaoDxk/dPDWou9db/7M+NVbd1UvMFeaU63dfkab2snnVr9fols3UAp0pq3PbAptVMszOnrM8LlFfS901ay079rbsWOD50a4J3lXAEufnPDE/zN45NyZpb4v1LVfr/Ch/MCj2to1/dVvfEH/9z7qURHlK76/64+GkO3ZNyFHHvgW1z9Zq6UZqgc6UIXXKstY317tbiqrfDDjvMpcZXestLaaoGEnS6AVXFC4Is3fqDSkqcrT8V9vJBf52H0P85M1TJwcO8tb/rE8dre6aJWazOWXG7itS1V4xr/rNGt28mVognBFDat6y1gPrXR1FRw4ETN20ZRnu9Q0dpmhfZ4+1uWJuQ4cUV5ib91j8KEnytK6pMxc5zHM9OXuuSO97yx1/+ZZrLw+8C2/9z4bUUfLY7j1UY04x7bkiUe2fzz1yoEbXbqEWCMFqGv/udyek6Ntvzwqp/5E05W8m/N+CEf6fRtx0a9ZWVS4u71xdcvJnt/qfBRNHP3VP/lNBx3Sutur225My1PPiC9WrrWO2Pph1k07+8rmGHxzX2/dQC4TznSn6VG/3+w0zJIzfUjA+cKu3eWVD6gh5nPcesptTMvdcEav2xrlHjtQodwuNLBgUkxCQ8h7MeGbeJf6fLpn6iGGlalbu82ze6f7pIzGSlJ7wyIMnlzznqdpnX7Kvb8dZDybXP+esyh/R12ORHrP02ZylgUf31v+sSUjTF68sbdhcGbfyJcNUuZ+9y76kTpufpRYIyvppov2nYW7/wbQoveEpe7+n7qdRWac8St4lfWPSRjz9zNinA7d6639WRmXpvzc92rKiKmr75jE/0Bc/X9I2o14fPUMt0LfqfGoAarL3j/H06mvraXp925P3379ixYrnn3/++eLS0nDpH0mnHfcZinH+RqJTLh+G4TEq6ipJbZ5jA44IqP/p7Phjm5QeNzNaio7/h8tj1Gb93y0D7gl86wLqf6ztJ8xSYWK84SIZEsYui5W54XjJcD9AYGB1O2x2Ke2hvDt8sR5JUVm/mPC3cyS53/GvyjTEYeEE1P9YXVWHpTnxWQbJEHfNQzE6bPuYEwRS7IK8eb825pp8P6aYkm9++eoZMwYc79pV9cI/OR2KufblvBmnXpM+oP7H0l5nluaMMRglY5zp4RiZLWYmIc5U7IIrbllvzPZP3WRTyvW7p06dGTDC2vzxevfgi38NLKD+x9pmMUuFCWkGyRCfuyxGZssRpu6Zqtlus0qGh/L6qn00Msdf7fPH7YO8qEmSDFEGSYc9rQOOCKj/sboqD0uz43MMX8sQO+OhGB22fbT/nP0uF6DRC664eb0x03/eJZlSZuyeOnnmoPv0MkYlqa8oKJyA+h9rW6NZKkxINUiG+AnLYmS2VHPe4UyNWnjFtRsy0vxTN86UYtpz7eXXBY3xrggWt+yqyb70j6SoxMeuMBUq7ApiAQLqf6ztx81SYWKiQTLEG5fFytxgYeoiQENp3WW/O1Gu6McfzHoqJ2BD4sgpkhR964QRIbvcNH3cFEnHuwfu8gmo/2l1vWqVpsTdlCgljl7yN9GyNm2uOfe/CHDeCWhesba3m6XCxFjDRTIkJC+LlbnByZM5vnFMQkQsw4g8SYq6fvolIVt8lT91X/SW9KTNM2xekzwr3/djXn7cypdylp76AmNA/Y/N/X6ldFvM1HQpPWbug1GqdO4pPVe/DM5H6ZdMVWC1zxkLqP+x9/yhSpoV9YO0i5Q24h+XXKwq13+UnYMHi6E7nxqAvD09BQ9sXDRp4EEHt60oLpWUXlBgSEubkpamceMmqeLJFcWDpIe+icdpb5KoAPqOSoi6dKBNffU/srScOCRdFeOrXzFGj5Lc1Z3dShpSoh0XvFEjciSzy2ORQtbdsHS6JeVEjdRFQx4WTl/9z0XdH7S6pZhM3+QcmREluboaPJrO31viu8lzokZSTN7M0CasrDvS04pt9pruNilhqMPC6av/UduHbXYpLcN3NTnh0ijJ7Tjm0fQh9XDh/BY7feyM6WODa3u6HJIuiwqJTVjXVr1Z7JZirn25X/dPWH31P3J91OqQUvzP0rGXjpLcrce6NZ03FThDsdNTp05PDa7t8Tgl5UTFSq4PW52S5K6YV1YRsqfZ8vo0i5Ry/f6M8H8i1lf/4ztOcqbv2TL20mjJ3cHUPUPdLbWSYvJnRCm4hifnznTDXpu1trtVcadu6JkY1a8xwa+v/ufr1o/arJIhy/fal3hplOQ+fsyjafy3O3Ojp6dOnp4aXNvjaZGUEzWkeh5/UVAYffU/Ovlha4uU5D/vRl8aLbldnHc4C6Omp14+PTW4tqezQ1JOlLfsp6tGUuzY60LfGyfelRFX1NBR4+lSfPgPln31P+r6oLVDivO/2xmVESW53A285YbPn1+tW1zeKUU//mCY7h9J0sjMgV7hrN11Uvgin776HzVUd5RLU5J9r30ZSSOlziMtPcoJzRUBEWXUyBzJ7OoJd+WwU1JO1AhdNORh4fQ1r1zU80FrpxTtfzIfwQVGSExCYAhGpKcPsKWyxyb1Xn5JK0hYWpAQ3O7TUyUp65IBW3z66n9kLzlZJeX5r3KnGUdInnrLFyoIjR8BQXzVPt/LyZSqvqwOnJReti/KJGV+b8AWn776n4vqDnSVSVON3/NuyUq/WPqyyvbfmvq9b+43QIjzqQFoXJpBUmn5wUHGHCwvldLnrNr4xKJFi265ZdKkSZPGjWuq+PhbS//oFE1F+DZ07/ikYvJbFU/1b+vp8hySFDNigK/tAup//CYEF1gecnvO5SPFeS0qM1ZSV0PonOlu8CggrDPEYf0E1P/4jcoIurTqrh/S+svA+Sig/scv5dKgE8Te0PNtPyhECOt7TgWEdSRJ3da1n7xZ7JYp+eaSoaV/Aut//BIvDXpKd/AsjXPK/p5DAWGdMxVQ/+MXFzx1nfW8H/5GdZfe/5cnZ/5l3/5+11ysHquk7JEDhIQC6n/8xga/9lnreO07x5rfc6gvrNNds6SsaFpZRf8/ULYMnhMKqP/xiw0+71o473BOtb7rUEBY50wF1P/4xQR/Ju3g3Q4kqefPr1YuLu+UYczWx8OlfxJjbzVI6q7v33HX2l0uyTBygAULAup//HKTguI+5U5e+xDxRg5w5bCnwaOAnMQQh/UT0LziF3KBsZMn8wsekxAYUHrM9fmSesIsRWPtqZIUuLZXOGUfdCgg09NPQP2PX6YxKO5TxVVu6KtNjx5Pu+34z8v6XS8KTvZkGS+WVGX775BRdbYvFZDpCXP83vofv7z0oAhKmeWrs/kFcLrOpwCQJk0pkFT6/JPbDvaur9V08PUn77///vu3BcSCbB9X9A5oOrjt22z/aTq47cnnSyUVTBmkpgjfsJEZMZK0xxHSU929o94paW5KfPj9vPU/mSmB3+tVdwa9uewtBAJOaeR1iTGSe729PehLmrbj611S7Bj/n1cOcVgob/3P4tTAfqCQz1cDh4eAYRc1JkeSu+rD0IsC3jW/lDMy4TSG9eOt/7knJXCr41jQQdIG/FiFC4VrV9UL0z/Ztyv4KpLl+MFiSTFZM/qeQq1rD79ZLJmM8zZlhPwZ24C89T/3jA2sEWo9FnRfKTxL44y4dn328rSyt0OmrrX5syJJMcaZIyXFLrhi/v6pof92G5MlmYy37J86f/D6n0VBC4d1BE/ds84YXbBGJmVLcld+FPqi5l0azJ/s8Q5T+bshK4J1l77QImnKjXHhD++t/7knJTAedDz4ta+3EAin6+Suz4qmlb3X77w7UiQpZvxM7/P5yNgcSap/L/RzaM02h6TMGwb4HOqt/1mUGhgPcgWfd0mcdzgjXTs/e7fgQMXO4Kcda3NDkQIqf6JG5UhyHf8g9NnJuzSYvyioH2/9z+LUwK3u4M+kZ50xwvngz69WLy6XDOPevmf8TeGHjMgcK6lzdcnJ0H2PnJA05crYwep/rk8K3HqkJeg7sN5CICByjbguMVrqXG93BV85dK53SbHx/iuHQxwWytu8sjh1xMAXGAfObeBCwSQEBnZJepYkz+adoQs++5I9N8V4L7/Yd1tv+37No7u/CBpka9u5T2FXEPPx1v/cnRB4DafeEnSQgcNDuHB8LydTkl7aHzzBvMEd6a5pvgmWde2oqVLZZvfbQU/UPf+x+Uvp4p9cO0CqxFv/szAqsB8oJEU0cHgI34jzKgCkSYseKEiXbKXPr7jfZ8XzxTap4AHfsmDejJCtuHfAiudL/ekfm71pwCOfEVtx78O4P/jueh8PhsfMSw1XSbLV/kNVu8V7U2f7U598+nSbQgp+AoTW/xiTxlwVUPlj6exSv0IgYDCG+DEmSY7ae+varV9LkrXNce8RpyRTYpzhNIcFCa3/8aWI/H8M4W0PCvlTCeA7Jev6JEn231Tt+FVHm+82T92vqn9fLCnm+3fEndawYKH1PwkzE9ICKn/ajnnUrxAIF6DYS0dJcmyo+6jE9+TpKjm+b77FIaU8nNVb8+PaVeVP/4yNHehYoULrf2JnJKYEVP64jnWpXyEQMESxl0ZLcq6vLeubus1vz7M4peRl2ROGGlILK7T+J3ZmYnJA5Y/rWKf6FQJh6HJuTJJk/U3VtrWuVt9Fk+6atTU79kqK+dGdvhe1nDvTDZL21vYNs7r23V/1x8MKKfgJEFr/kzgjwRBQ+dN6zKN+hUAYutGXRktqWV9b4T/vTpY0vzfP0iIlLcvO8Z93qXcakyQVVb+3tt33Jba1vWKJ2WxWSMFPgND6n9EzE5MCKn9OHutUv0IgYIi8Hwk71td9XuKbUV0lzRVzGzqkuGVZ6f6pm3hjiqSO9Ycq1rR3+W7ztK75zFwkKTbnrrDZtdD6n1HXJcYFVP54v7eL4TPpBa+htM6f/kkKH+KRJN00fdwUSeUNf/dqy599PUA9f361bnG5pOhbJ4T9Wiu0/idjQtyUgMqfhpZu9SsEAiKSIT7eJMlRf2+dy3/l0HnvkRaFXmAc0rAgoc0rvgCH/8m8hwuM8GISAgObujA5T9I++6Pr2sp830d/UbbOujI42ZNmHCGp6rnmZ0t9EQ17adujdzmrpLwHU38aviYotP4nbfrovIDKH7ulR/0KgXBh+sHc2KmS3mj7ybM9dd5wj73n54+2rKhSUHNP2oif5Eny3Pmo6227b9imR9tekpQ36ubwfywYWv/jSxH5K3+87UEhhUD4pl083A/gHJu06IlVU7Zt2lvqr1NLTy+Yfd+iSeP6Bqx6QMHbr5n948n2TSuKbVZ7k/pGfiO8d3fLN3wvOKXolKcuPzH7c/chW+3soP6n5GevSAm/cIe3/mdSwNbouB8l6JCtecel8Xeo/X9/7h44PASENSplZa5n7hGn2VE71xFwe0r2lsDmniEOC+Ct/9kQsNUQP8Ykd1Gj4674FLUfX+8KWR0M+M6Zblz8kGfrb9z24tqtxUFb0h4yTjGc5rBA3vqfdQH1P4bYvImyFzeX3xE3RR0f/8YdsjoYLlDTM26e0/VmsfvIPx0+Eni7yXjjgt7vWTvMG9ySZLbsnm4Jc5A5E+5Z3i+I5q3/+XVAYMgYn2WyOIobK++Iy/ceM3h1MOA0TM+4vrDz/SJ37TJzbeDtJuM1C84uIuCt/1kfUP9jSDCaLM6ixuo74yeo/ch6d8jqYDg90wxLH/I8+xu3dW/ts3uDthgeMhYY/H99ZUie81BbuGFJdzyeEn79L2/9z7qArYbY/Imy7m0uvTOuQB0f/cY9cHgIQzA9Y0Zh50dF7vpl5vrA203GKYHnnSF1yrLWN9e7W4qq3ywKHJcyY0Vq+PW/vPU/6wO2GhLGmywtRY01d8bnqL16vXvg8BBwKtOzTIUec5HL/vAhe+Dtpoy8hVGBw65d5jmw3tVRdORA0NQNygkF8db/bAio/zHEjzWpo6jRdld8utot610hq4PhgnRy8586Jcna9IPV4f4sc0rG0VtHS1Ji0v+9vfvvfneivLxpcXngyOjbbw+3apj89T+3B+SKEmNvNTSVlztenD76Z967Dl4dDIhYo5JX5vbMPdJidtQHXznM3BJYmjLEYQG8zSsbArYa4uNN6ixqdN4Vn6x253pXyMJMuFAxCYGBpSc8s6bn0cc6qvY5V+5zBmyImrXG0JfsKRi78raelfs8bzzW8Ebg7vnJj8wbtP5nTUD9T3rM9fnOqn0nXlkY81O59zznCVkdDBeutFH/tqRrxuYvy95omxE0w6K2PxLY3PO9+x5JqF7S9lKV584lnqBhzwQV/PTx1v+sDNiaNuIneSp74+SmuWPu0xf/sfnLkNXB8C246Ouvw10fxPnu4F9PGe6H8B3Q2f7UZ8172rzNezFXpac+lRcfPv2j7h2ffPq0DHuvDokHde+oanja5pZ0VbrhqbwBwkMXpEn/VT74gCkHLphvGEpqKx52qDB38mPhFiOytjlearQWubw/xRRmZDwWLtYzxGGS1OW495BVGVeGxoO6HGvqvEcYdPfzSvm1+4f7IZwzj5ZMHu6HMAzarB0fP9l86LCvIjVtYtL0J4xZ/b5jGOIwSZKn/L6qd5S+eFNKQsjtv7K8U+yWlDYn/ce/SAm/dtj57pnpFYMPWLT/gnur7ippePcFp8MsSTLF5N6TNWN6wFe5JQ0v/JNzgF0lhQ0AdVfed/iA+jcGdVeurTtQ7JaUMsd44/Kh9wmdV7ZNKxvuh3CGFpReM9wPIYirpOHjbQ6nf+pmL8qeOv1U6R9r89vzLE6T8ZbNqeGmX3f1EnOF+m/trl5bW1HklpRcaLxmedh9h9Ougo8HH7Dio+9WOWur1fXR6uZy/4uaYWLSDY8bcwz9PrZbXfv6hsUYZqfOWR4XPv2j7tL7q/6o9KUbQ+JB3aVrLX/c65ZkmJ0+Z/kA4aHhs2rGwcEH/O137Lw7WdJQvs3R4j/vMhdlTw573lnbK1Y11pt9/+2SCsdPWR4fPv2j7polZrOMN28OiQd116ytNRe5JSUVGqcsHyA8NHx+f6rz7jvrpgMX4tXxrpK6qq2ODt/UjU1bnHX59DB/Rt9lbbesbLSbfZ9J40wpGSuzEgd4y22791CNMq7dkjoq5PY1dTVFLklxhRl5j6WGXzvsfPfna0sHH1D7xMRv55EMv5rGy353YrABvQEgr9aTL5Y4Xi3v9F5vmmIY8+BPx98UNv2jnhdfqF6t/sVCPS++altd3ilpypRxz9w6WO3QeSz7ycPD/RDOpasupAuM5ocdKsw1DXCB0flSo91/5TC6MMP4WLhExRCHSVKX895DdmXkhiYzupxr6rxHGHT388ehU11dZBL6MAm/SaechxHk1T9PGO6HMBxs7ld2nnh/n6dKkpSXH7fwn8dO7dfrYy89vu63HVWVkqT8qFl3py4tGKi/54tXljZsVvLmZxPSQm5f17x5n0dS3m3JjzySEL605Xx3603Vgw9oejX123kk3y32np+vO/lS1ZeSpIunzhr9b0svCRPrsfds2nNyxRveYZo6K/bflg6Q/tFXmx5tWaHYj0LjQV9terbde4RBdz+fjbu1eRjvnQDQBYoAEL5pBIDwXUAACDgtBIAw7AgA4ZyLuAAQekVcAAi9CAABgyAAhGFHAAg4LQSA8F1AAAg4LQSAMOyGNwDEimsAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAALlcTMcAACAASURBVAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAEQwAkAAAAAAAAAAAAAAAABABCMABAAAAAAAAAAAAAAAAESwi77++uvhfgwAAAAAAAAAAAAAAAAAzhANQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARDACQAAAAAAAAAAAAAAAAEAEIwAEAAAAAAAAAAAAAAAARLCLh/sBYHj8ZdaU4X4IOM/91Rvlgw+YcmDat/NIcCErv3b/cD+Ec2b1R3813A8B57/HZ/xl8AEP7uf9A75Zz007xfuH76y/3z91uB8Cwvs/08oGH/DMh1d9O48Ep+vRmYcGH7Cg9Jpv55HgdO0q+Hi4H8IZ+pvSa4f7IeD896eCA4MPOPr/Tvx2HgkuWJf9f4eH+yGcS1dxgRHfsEOnurrIJMS34JTzMIK8+U7OcD8EnP9u/n7N4ANsr437dh4JLljpP24axnunAQgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYASAAAAAAAAAAAAAAAAAgAhGAAgAAAAAAAAAAAAAAACIYBcP9wMAhlH3B5UNm6zuQ96fEmLmXZbxy+SRQUM6258y1+5ukxRzVV7qv2TEG4MP8UFlxdKThj8UpITcDgRosxQccRbmTn4sIdzWLseauhNFLrckKaYwI/Wu1HjDRWcyzNpmWXnEaZYUG7NsfMbC+JEKGtC+prS2JuPKLakhtwPfXVbX3tXHyw57J76Ms9NvujNpgmHwXVo2L7BZJqY/vDEpMfRQdWWHJcUYHxo7d35sYvB+1WsP/ba2316Apf3d1c2VZt+zb/7DqZMWxMeHGdd9aG1DTbG7SZI0bo7h6jtSMkLeHFja311dW2mWFDPu4dQf9jtOw9qKV48a7tyUEu74wGmydOxf3Vjtn7oTHh6fvyAutt8oV8nxyhcs1WYNNszSsX91dbVZUkzKw+Nn9hvQuPaTt44a52wa2//4OBNW156nju8/3On9KXN22g/vSM7r99rn3O9898V2/7DozNnxYYZZXXueqt9/WFJ05v8zdsH82OTg7VW/Mm+tTVv+n8kht+MMWdvLVjXW+s+77GXjcxfEn+K8sDa/Pc/iNBlv2ZwaNNLaXraqutYsKSZ52fhr+h3Hvrbs/Zp+ewFnxtr+2Sq71eySJMUalqVlLIiP7tvsObbEfMQ8yP4pk/dnJvcd6nOrWVJswrK0/KDjSJJz7ccVNRkzN4+N7ncUXMgajrZs/rBjp833ojZlctyDBUk3jgkZdfKX/9qwM8zeY7b+8/gbe386cfKXf2jYaZMUPeWvU56+ZnRG8Oh336hcfHzcW3+fFHI7EAnaGguOtBTmmga4wOhcU9de5PKdSIUZY+9KjQ13gfHUw6xtjSuPtJglxUYvG29cGD8i+EKia01pfU1G7pbUEVxgvOAwCYEz9uXHv27evs/zqfen/Kgf35X6cEHvd/RfFv3PhucrB9k97l/eHnuNvpYkW+eGNfbXKiVFXfngmF/MjRnvvd3v418f/V91yS/+e0LI7bjgdS+/tW17mNujf/tq7PcH2WVWgvV/jgzdYu9e/kzb9ipJF1993+jf/HRkZvD2d/69+e762A/WRWeG7olvQ6QEgJpef3JFsW3QIelzVj1xy7hv6fGcFt+DL3hg46JJw/1Y0Kuz/an3a3cH3tLm3v3Jp58bsv9Pfu/3bu1PvV+7O8Hwhx+lGDsdf/9+7U9OZh/MD/hWrtOxyap5V5P+wWDa1xxxDrixzVIQtNVd1FBb1JldmhUf9OllKMPaLHOPOE0ZV5amjrQ2fz73yKf1wZEja1NzkZI3kP5B5PBGeQJusOy1/XZv2y27Lps+YAaou2R10C5+rr0L6sompj/8YVKitWXzgroNdVlPLg/4ysza8ue9mrqO9A+CtJdYtv9T0LNv5YbayreSb91kDP7CoP3d6bWBH9Kbiq2vFntuLQkc1v7u/NpKk+HOkpR4i+P382u312f/4/KANxUWxyfFyv816R+cA66ShuLgqVu9obr6reQfbsoYHzhsV1XxBvephnXsn19dbTLOKRkbazn+xvzq4voJdy+P69tuOX6oWBN+TfrnHLE6n1torw+4oX6vfeve9tk7L7s+4LWv6ldHt+7tDBjVWb+3s98w156F9fsnpi3/IDnZ6nxuYf3a+synfxH42ud8a6+mPUP659xwlTS8vswRcIO7dn117X+lXL85I23AnbqrV1nCfVJoL5tXXWsy3rI/Ndba/Pa86tfrJ8wPfMmwNn9WpOz1pH9wDnSW1H8YNHVd1vUu63+lTN6cefpPDu2fzfvcasqYuX9stPX4x/M+/7D+8puDpu7xuiIZ1pP+QZB336hbXBH0olZe0bm4ouOX/yPrZ4EZoBPdn5/6YCd/+Z8NO9PHvfXPSRknWub/Z8MPWzJqZo0OOEjLcxVaOJ/0DyKSa82RlgE3tjUWBG3tLGqoL+rMLM2KDb7AOIRhbY1zj7SYMnJLU0dYm4/OPXKkPjjtYW06XqSkDQQvLkRMQuAM2To33G1/LfCWSs9r/9xQf1vahn863bfGnRvutr+Wn/zi2wnjbW0P323/WUPanwIPYmvfvk8//lfSP+jH/lXVae7xzr+HDQxJ6l5+b9v2vNgPXo3OtHf+9N62644Fh4TsnRve0J2rSP8MG5YA++Y1VXxsk6TSva83DfdjgV/3dnPtbkkJyc9eP/ngjyYf/NGVz+bFSDpkbd7uv+xgaWjeLc27LMUoKTrlPoMUsFXSB3XWQwmGf+CSOQbU1b6mtLZowM2+bJApI3vPtZNLCybvyTWYJDlq723uDnh/NpRh3TsbnVLy4tSRukiGcamFUlGjwxpwkJca3KaMsdO/kd8T+Ab4ozwT0+/eddWTH1715K6sWyZKcr++uqV1gH1aX7a+fjjs7cfLpKn3JCVKMiTdNFvae7zE2jegervNMjH9umnn/LdAJLM43vJGKEyGW1+e/I8lk/+x5Mpb58TI7Hz1Pkd7wMCGtbWVgcNezr7OJCloWPuu5kop/56UeEnGlKvnSMXNhwLSag07rE0mwySepXH2LMc/9E1d4w9fvvrukqvvLpn4wzkxMjvfuu+4K3DYBrcUM+HXE+8uufrukqvvfnnCBJNkdr61tqN3lGtXY7U04Z6xsZKMY6+aIxU3fhYwdRt3WBwmYz5T99zoef8pe72kiWmLd5qe/sD09M7M2RMlde59ytkXE9nfuHVvpxQ97Zncpz8IHrawsfdqjvPl4/ulaT9LTpZkSP7hbGnv8fcDXvuqdtjrJ6bdyGvfOWFt/tgboTAZr989df7+qfP3m64vjJHZ8f6SZtcAO7l21VaEa1Vx7WqslbIXpcZKMqReUSgVNVYH/Lezb7c4TcZczjucPevxSt/UzZi8+5qb919z837T5MJYmR0VS477L35EXbrZuyn43+6MBEmKzd3tiwp17rJbJcOisdGSDGOzCqUi+7GAqevc3tBmyshg6iLQ0cbFFZ1S9ML5E2r+Ob/mn/Nr/kfGL9MldT71n43vBo5s7S6XNDnDN6zvX1/9T8PHjp3SwplJGZLGJD04WapwvHii7xjvljaVp49bctm39MsB506Xa01p/cAXGH2xDFNG5p5rTaUFpj25aSZJjvp7m3sCLjAOZVjPzsYWKWlx6ghdJMO4sYVSUaMz4AKj66WGTlNGMk/mFxwmIXDGvixaY39NUn7cv/w2509vX/antzP+5cEoSZ/uO1Fk8+bYLi7898v+9Ha/f79NvlKSoh74ra/+p3HPidekH9+VMF5fKz3+ztukvoNI0se7nJ/mJ88vGIbfE991tq8+kTQrwfpqavC/sPU/X73z7813vxH+SPWvnNwu3Xl7dKaktOiHZ0lvnNxi7xvwzm7XJ3mxD0w9978EhihSAkDjbnliY4AHCiSlz1kVeNt3tP7Hm/9JT0+XbB9XkAD6jnAef7pNUvKzBcbrfNHYkddlXP6HvBjJ/XSd79u6hpNuKSbLn53NGB0juet6A0BOy1KrPx4E9NNd0mS599Ag6R9vJY+Ukr3Fv5iXISFlS26yJHNrh/X0hnnqXVJslH86RmXGSi5P7/dzJbW1Rf54EBARrCcPH5aUdPdG/5pfhtjpG7OmSjrcdsQadpeWPb9xh9ugljq3FJPiL0VIyoqR3I7eg+y3/XavPx4E+DXssDZJMhnu3NS7mNfIjOWX3zpHMlsPlvjHWRyfFEtKvrV3mDH+qk3Z+ZLMJxr8z8Nt9W4pZox/EiZkxkjuE72TsMTyarE/HgScncYdFockk3HOprHj/VN3/PK8H86RzJbKkqBhKQ9nTZvu/wMdY9y0x40pkopPNPqP5qp3SzHx/qkbmxkjudv7pm7DW8X+eBDOnrXj0GFJSYv/07+YlyH2+v/MnCbpcPtnvv/be95/sUXStGcumztthG/H3mFqqdzvu81Z3ylFj/X/t0vOjJY6j/e99jVu3euPB+Gs2bdbnJJMxls2p6b5/j8fmbb8iusLJbPlSEm4fazNH68P/77lpPe887+xH+097/re2De8X+SPBwFnx7m9oU2SKWPm5rHJvqkblbw8b3KhZG5oCDt1fTzHVjW0SQnLMi/1P8901ruk2Bj/1I3OjJVc7r6pW19R5I8HAT49L354QtLC+VlPXeZ/URsz+md/n7FQkk68ebRv6LvVJyRNSRrR7yB96ls6pegc/+e6zKRoqbOm989HjjYurvDHg4DI0VPS1HjvoUGCF942FCklc4t/HSVDQvKW3CSFXmAcyrDuepcUO8L/ZD4yM1Zy9QRcYKwv8iczcMFgEgJnpfTE85WS4v7l38dek+6Nsl18zdz0Fx+MkjzP7wr/qVCS9GXRGuen0pUPphb6dpStwSNFZfjfgadnREmeht6zrNTxv/b540FAsHdKOiVdfemp14aqL+tc/ohzoPSPpLpjX0oXT0j3/Zh16cXSl9W96ziVue5+wx8PwjCJlABQ5Dr4WrFN6dfcN7uABNB3Rvf2o05J8642Xhe8wZhx+cEfTQ5a5Gvwg1D/gwF07/z004cbnGbFFOZeuSEl/JgPWt2SChODV/tKGLssVnKd+MBzWsMG1eXY6hD1P4gsVo9F0uy4CUG3jkiZqKDsTh9fY9DUh9JPM5fZXfJCi6j/Qaju9qOSwoRyMm5IllT5ni8u3P7RiSZJc+KCv0iIn/RwjOSu+ah7KPd16AWnqP/BueGbuv1DOeNvSJZU/Z6v3Wf88qvvLrl61oLgNbyNUQkauu7PXnCK+p9zyNpTL2l2bF7QrSPHTlRAdqf7+GFJSfmhL1ux+bMlqelYzxDuqef9F1tE/c85032yRlKYUE7aDSmSat9r77+Ld/Gv7GXG0/xA2V29zSHqf3BueDprJIUJ5STfkCLJGmbq+nTuqj9ilkwZ+Quihnhfx7Y5RP0PQvXU2CSNuTm0kmf0zZMl6fPW3he1nrrjkqJ/nDNYAGjw+3rxwxOi/geRpmfnp0cebmgxK7owN3eAC4w9H7R2SipMDF5oKSF5WazkavdfORzisEF1Obc6RPPKBYZJCJydL4te6pD043/1Vfj0Gj83/U9vX/angZcAa9zT/HyllJ/8i7mXnMZ9Uf+D8L46Wi/p4p9c+73Bx9W/0nLdCtf2Kl09K+GDVWfw5xtfbfldp6j/GW6nznlFoqaDr7+2t7jUmzVLTy+Yfd+iSeP6j/jYarP582jBo5pef3JFsa3ggY0/1rZNz5faJKUXPPDEoklS0+vbNhX7b+l33H4OlpdK6ddMHjcprUClpcWvHbxl0aRz+svi9Hnq2iQl33Sal1obTgZEcZ3Hn27TvKup/8HATCmGxWkp00epJPxqRZ56l6TkG0MDZyMzoiSXu75bGjX0YWEP7lNit5qVvIH6H0QUQ5RRsuztqF4eG5AB6vn/2bv/8KrqO1/0H1ovYDAEJGggiUEQRREOoEyg2PF0nDsjtqXw6ANOnfa26Gh5Op1iZ06Z3nFErHM71Fbo9PRSrTI9tfZUn3bITa1x7kznTlutpiBwCCiIAjHZJEhQMCYSquX+sbPD3jsJhB8CC16vhz921vqulRX47mSz8t7v7+6Nkd3l02Xr0i01GyNmXTzrQwe+960jnHvP9qzv58+31GyMq7+p/oceHersOaRsYElE86sH9kUUdVb7xPg/zP8uXXTRuRFtzTv2RwzodorOozo99/ozdTH+AfU/nECHOnsOKTt3eMTuV/e3xuBei0Ma9u+NiAnn9jagNWfqNq+pi7EPqP85ccr6j4rYUd26+cvZGaB04qery6fwxmcm3Hj0527ZkbWS8fMt1Rtj2jfU/5xYhzp7DikfWBzR8sr+1ijKfqY0La1bVxcxZ+zVM/b/x7IjnPft3OfduroYvUz9DyfQoc6eQ8oLhkTsfaWjPaKnO7776pe1Rk/JoWztOf8nbd5SF2XL1P+Q57z7vjL+vj6NPPBKKqJ08MVv7LnrZ80/TkVETCkd+vmPj7x2aK/H7NiT9bPv1Zb7UnHzXPU/JNCE4SNuHVHc+w3Gjh2tETGs253D/hUDI1rbM3cO+zisx5N3eq6pqS6GLde8cvYxCeHYHajfFBGDZxx1KKf9ie/sjzhCnU+qPis5V/vmik1xw9fU/9Cjd7dujhh37phU+6JvtD62OSLiqnEFC/+m8CMjuo0dV3DPnxXcdvUHY01f3mOWLgTKWNN+z+a4ZYn6n1PsDGwAaq65d/GKTPonIlKp2hWL7125vvuIrvRP16ia3IKetSsXr8icKFW7YuX65pp7F1dlbXmo5giNPl35n4hJUyojonbt+sMfwfuv/cDLETFkYEVEQ0vDp2vXTfrXdZP+dd2k2obHWnLepp+/5ldEZkUw9T8cwYCbr5j88Ojh03v4T0vGOwdeiexFuw4pLxgUEa/s74iDfR7Wbc2v6DpK/Q/JVHbelVdGxJ5H79izNd150Nj63B3b10TErAum5/1i+/nUo9URV5YuXNTzr8Py1/yKyKSI1P9wnNJtK73mhOLVA+n3zuev+RVdR6n/4XTR+lz903Mbdue2B+Wv+RWRSRep/3kflA2eeGVE7Hnkcy2bMz/7fv25Hc9HxKwLPtz9+0yO1k3VEVEw8UOd1Qj5a35FZFJE6n9Otefqf70qYkL5zEU9Jz/z1/yKyKSL1P9wWmh/vKkxIuZcennuVMxf8ysiky5S/8PRevvf1kVO38+bHS9HRKr51ic60z8RsTb15q3f3XRX1jJh+Wt+RWRWBFP/Q1L1v/mKCQ+PLj7sDcaOVyJ7vaRDygsKIuKV/QfiYJ+HdVtuKbqO0rxyljIJ4bikfrcjIsb3L43YWbt74Rde/ZM/evVP/ujVP/nC7lW17x7muJ0/ffOpiPjYiIWVOWme/DW/IjIrgqn/4bCa3tscEZtbP7W4M/0TES9sbv/UbbsWrckZOOoTwxq/WXjb1YcrCspf8ysisyKY+p/TxRkXAFq/cnFVKkorFyxZ8mDakgWVpen4TmbIU1WpiNLZCzIjHnxwyYLKiG5LdNXW1lamB6X3165YXBWdhy2ZXdn9gO5Xcyj/IwF0+vnVppc//kLLhr2Zj/e23P/Ci5+uP5QBKq+48KaIn7y6uyEi2nc/1BhRduEtBZn6nzHqfziNDLh5ZHFEyyO7OuJgNDbvWhUxZ+Twsn6d9T+3qv8hcQZMf/CyT80aFBtTj87bcPeMDXfP216zMcpnXdwt5dNa/dd7IgbN/PteW3zOn3vB1RFr/nnPGxHRuOc/qzMponT9z2fV/9DdgKIxEdH2zI/yF7+o/1HjMSzpWjTvwvERm/55976IaNj9QlXE7Asnlmfqf7otNAbHqnPqrvnRW3k7dv6oYXcvx+xc+sKj01+o+lLL7hh09QNXTsu6nVo4b+TYiK3//HprRDS8vqEqYvbIy8sz9T/dFhrj+PT/8Hcvu3VWQWxseuTmuv92Td1/u3lH9cYYNWvUoi8f4W+65YnX83JCxXMvmBbx/PdbWiKiseUX1Zm96fqfz6j/OYEGnHdJRLSteyz/R0bTYw0t+YP3rblzd8SgyYt7bfEpnDdydMS2lbtaI6Jx10urIuaMHFuWqf/pttAYHKuBBZdEROuWblO35bH6vT0dEBGZ+p/Cy27Jf/FSMG9EWUTjytfbI6Lx9e2rIuaMuKgsU/9z2LogyFa/evePI2Ly8M90tfu80bE2IiKmTK74xVfGv/KV8a98buxdkwsi4sdPbP/+m52jKqYOvznix8/uqY+IN/d8Z13mJOn6nxnqf+DI+t88cljEnkd2HYiD0dj8+qqIOSOLy/p1Nq/cqnmF951JyBmp9oHGz3zlrRc3ZT7e9NaKr9Qv/GlvGaB0/c/ABfMG5e0YeePQGyKe+uHendEvUvseezLiY0PnlB7srP85bF0QZ7XUey9ERMRV1w955ucXNv78wsaHi++5/pyIeGzxnoebju5koz5x3i0Rj/3P9h0R0dS+/OmI68+7bUSm/ufP1P+cemfaEmDpxM3s7KW5SibNv3tB3LGidu36+ZMmRcSk+Q8+OD/3sJJJN8wura1K5Z2tckHneUomTamM2toonX37zM4tM6dUVtXWppqaI3pbBay5pjor/5NOANXW1lbX3DBp5hFWDuP91L5/Q0Tsbbx/b0wsG/0P49NN7R3PbKr/y8a2DZvrHxt+6S2d96WK7vrw6Kjb9vF/bYwYdNO40f9QUZRb/9Px2Kb6+xvbImJiWdk/jBcJ4sSpa+952Zhehw0p/+llcc+WFyvrIwqL77ys4uai3Pqfd3b/4/bGVa0RMWhORcXfigRx2mt8+6VtbXnbGra9taex8PysFoStS7eviSj/Yll+LVCOwlmPXxxf3b58Ripi0NVfvPjGuYW59T8dzy1trKlui4jyWaU3LhIJIio+WVZS1dhcte1fYvR1i4qKIiI66pfW/7wqIiLq9u+NOHJq59CwomufGB1f3fbY9MaIQeMXjr5uXlFu/U/HhqX1z1S1RUTJ7LLrFokEcYxGfrJ8eFXD7qqtT8fYGYvSq3117Fy6/RedU/ed1ojc9EDHvlcHDZ8QUde2O9rWfGn7voUXT5vX9Rpk8LQnxsZXt1ZNb4gYNHbh2BnzBufW/3S8tHT7mqq2iBg+u3zGIpGg49P41qZt7XnbdmxrbWksLD7Mj7nndy79p/aIglmfzP7rL7zxx6Pivh1Lr2mKKJj2V6PmzS3Mrf858OuvN1RXt0fEqFkj5n1ZJOjYjbilvHhVQ8uqrf8RY6cuSq/21dG0dNuvV0VERN3+tzPPu6alW7dFFN85euzhXrcUXf2TsbFka820hohBo+8cO3VeUW79T8fWpdvWrWqLiOI55VMXiQRxjIpvqRiyqn7vqpdXx6XjFxUVRETsb1m6Y13n1G3vYQmw595sjIgJ5/f0Tano8p9cGktefnZafURh2Z2Xjp9XlFv/s/+1pTu2rGqNiCFzKsYvEgmiJ6/uvO7f2yMK7qo8r2tb/RsdERGTK564PrNxaP/PXH/xxbHp1nXtT71y4DNT011B5933uYr4Wf11X2uOKLj5jyvun3pebv3Pge8/nbpvXXtETJlccv/1gZP9hAAAIABJREFUIkGcBeraOyL6H8WwISN/elncs2VLZX1E4bA7Lyu/uSi3eeWdln/c3rSqNSIK5lSU/600BkdiEnI2azzwYkRsalmxKa742Igvf2nQyDgY8e7qB3b93ZP7X/zOrlXTyuaUdovs1LY9FRHjz6ss7X7GgoWPjoh/bPrMH7VEDLzh8yO+fOOgiN9l1f+8u+qBXSue3B8RV3ys+MtfEgkiImJH6kBExPVD/p8vZO74jfjgbV8YNiZ2ferpd3/22/du+8ThKn+6GbD04SHxjb3XfLQ14pxbbh/yrU8MyK3/ee/hb++95+l3I+Kq6wu/9QWRoJPtDAsANTc1RkSqavEdVd13NjY1x6Ss4E1zc3Nzc3M0rV3b1NhYm8pP/0SUjjg0umREaUSqbMRRBHea161O9XQ1qdXrmmdKAJ0GJo674gcVXb/bGHDN+Ev/e6z7y8a2+7fvu2V85pduBUV3VU6+K/uwdP3PVcPLo+Ox2hfv31v83z986TWx775fb/v42/GzShkgTpAJBQOPdljZkPKHK3NmYLr+Z/mFA2L/7ts2NNYNH/3Ty4tiX8ONW158Ja54WAaI01jjnu/NSzVElM+6+MZFhedHRHRsXdr4aPWeR+ftn/n4mHTc540nXk0v/nXj3CPl5coKZz04cVb2lnT9zzeHnR8dz92xpWbjsE89PmZstFbP2758Wyx8UAborFc+/LqFbz62vK25attjWa/lxi8s27O8sXnCwCF9OUn2sPKiax+afG323nT9zwPDi6Jjw+0vPlNX/NEnLq2Ifb+cu+2xV+OWh2SAOCblF8xY+EbV8rbdVVursqbu2IXle5c37J5wbregwIDLHxp3eUREtD73+rNfati6fGNcdNWhHqDywdMeuipntah0/c8DFxRGx0u3b1xTV3zdE+NGxlvPz91a9WrMfkgG6Fg1tnzn5qYdEaNmjZr35cLiiIgDm7/e8Ej1nkdufmfWj8f0vArY8zu/8zd7IgqmfaPbgLLCG7874cacwS3VG2PaN4qL48CvP7eleuOwW388Zly0/vTmHUu3xaLvygAdq7ILp975Rs2ytpZVW2tWHdo8+s7yt5Y1tEwYmP59devjL6UX/5o674ivW4qu/t7VOZ3Z6fqfZRcWRsfWv6hbVzf8wz+5fETsW3PT1ppXYub3ZIA4JmUXjL/zjWeXte5d9fKzWVO37M6Kt5fV751Q0C2gs/+1lbsjeq/zKSu6/HtTL8/ekq7/WXZBQex/7S/qttQNn/yTccWx76WbXn72lZjxPRkgcr26c+4Tb0YU3Dz34kP1PxEVUy9+ZWoPw68dOzTWvbn2pdb6qZkoz9Dz7vv0+PtyztlyXypunjusIg58/wdb70sNfeRzF18bb9/13frrXo9ffFoGiDPdhIIjv70wb1jZkJEPV47M3ptuXll+Yf/Y33Lbhqa64aN+enlh7Nt545Ytr8RlD4tfcFgmIURc8fmK5TeeE51ZnHOmfqn0H+LVv3ty/4rH2+Z8Ke8V8burfvhWRO91PqUFC789ZuGhjzP1P18bMjJ+t+oL9Ss2Df6HR8umRtvyTzV9Znt8/9syQMSoTwxr/EQP2z8yvSCebn/hVx07PnGUGZ0RA5Z+88Kl2VvS9T9LCkbFew//dcs9mwsefXjYR6Jj0W17r9kRz3xTBuikOsOWAGtu6h7j6ZJqyqzX0Fyz8t477li8ePGKFStWVNXW9pT+iYijivt0v5Z0/qenCznCwmG8zwoGToyIGPSnw/NfeV5zcdnEiHg7d4XZHFn1P+1v/eveiLLB1xREFBT9H+MGxd7G/9Gt4R1Onaz6n8Z9b9ZFzDm/qKxflA254M7CqKt//blTfYHQu62PpRoiyr942V90pn8iYsDYRWM+NSsi2moea42IaNzz02+1HX7xr95l1f80vr1xY8SswWPLIsoKr/nioNiYeub5E/jVkFRF8y695YGy8RM6PyyZUPzRJyZf+6ETdfqs+p+Gt16pi5g9uKI8orxo0sJBUde43ndpjlXhvHGzHygfm5m6wycUX/fEVdP6MHULp19w/QPF0bXmV8+y6n8a9tXXRcweOrI8onzw+IWDoq5hk6l7rDb/qGlHxKi/uuzznemfiOg/7stjbp0VEe3VP+rh36TliVf/29/s2REFs3485sZp3ffnyar/aXxrw8aIWYXjyiLKCq/9q4LY2PRLP/uOQ+G8y2cuKx+ded4VTxj+4Z9cffWMrBGNu1Yvazv84l+9y6r/adzbUBcxZ8iIsoiyosvuHBR1DVs87zhWBfPGzVhWUZaZukMmDJ/8k6mXz+hldONbu+oiYvjw6b0MyJdV/5M+ds7Q4rKIsqKKOwujrr7e1CVL/ertlzzx5toouOtzF983pm/HnD9gSkSkOnb0OiKr/ufN1qdSEZMHXzs0Yuh5f/HHBZFq/t6rJ+Ta4cyW1bzSuG9fXcSc8wvL+kXZkOI7C6OuvsU3c953JiGJVdb/ioiIgddO+9/y9kydV3xFRGz/3c68+Fqq7ZebImLwjMo+fo53D9X/pI/92KCppQejtGDu5wfGppYnao/7q+AMVvrBqyJi83vbj/dEWfU/TR0/2xxxff+PjIgYMWDB7efE5tYVa07AxdJ3Z1gDULqnp3LBg/Mn9T5o/crFVbURUVpZWTZixJQRI6KkZFKsu3dxtyXAjkc6/1M6e8ndOWU/zTX3Lq7SAXRaOLeitzea7d1fH9Fzkc+h+p9o2P3mhoiJ53XWr5QPOjei7eW2jijuU6Kds965/S+JqGvd3xCR917thva2iLhk4IDo1+dhPTlU/9Ov45k32iIGjeqcnAMqBka0vlO/P6afe6K/LjghOlq2RcSgKz+U/x117C2l5dWphm0H3oiI3+xtiIhoq5m3oSZv3MbU8hmpiGGferZ0bI+f4VD9T7zxm70NEeUXd7YRn3/RwIi2Xa91xDTfz4mi6cOvnT48t7Znf3NEjOlfFBExoGhMRF3bm43dXjo0Zg/ryaH6n9j3mzebI0pGdb6oKLro3Ii2Pa91xHSTkGNUOP2CadMvyK3teWd3RIwZeITkQdm5wyN2H2bAofqfaP3NG7sjhmdeYBRedG5E215T9xgd2L0tIgomfii/HX/cJ0eMqm7asa2jJQqzG3o2f/3VR6rbIwp6LQfKc6j+J1p+s29HxKjMv13xRedGtDe/diCmHbmbn94UTr/w6ukX5tb27G+JiEsGFka0PvtGS0RE27qb1qzLO7KuoWZaQ8TwDz9fMaLHUx+q/+k8T3HmR0bhRQURbW953nEcCqZfcPn0C3Jre9r3RsQlA/LvmjS0742IOUP72hZ2qP4n2p99Y2/EkMy3nYKLBka0vv3a/pjep+pbzni/fHr7revaIwru+lxO90+flA4Y1duuQ/U/Uf/KW2sjpgzr/ElXcf6AiPaX3zgQY/zsI9HOHXBJRF3rgZ7uHLZHxCUD+0e/Pg/ryaHmlX4HnnmjPaIg8828vxuMRJiE0Af9y3pYzCsiIjYdSEXk9F2lVw372KCpfaztOVT/c3Dn82+/GHFFRedrm5Fl/SP272j8XVSeYWEATrRxH7z4OM9wqP4ndvz2nRcirrqoc9aNKu0f8e7m1Htx9VGtMsZxOcMagEpGlEVE7dr1hxmzfm1tROnsJQ/ePX/+/JkzJ02aNKmkpPe6nmO0/qmqVETp1Ml5MZ+SyVNLI1JVTx3uEnl/FQz+0yER8U59e7dd7fs3RMSQgb3U/2bV/2RcOijnNuuGt/efwCvlzDZwVGFEvFOfP2c66vdHVlinj8O6yar/yTi3IufWatuOjmO+eEi4rPqfjAsvynk2NWw/cLIvioSo/1VLZIV1howaFBF7Xsv/jrrvtXeyh3WTVf+TMSx3Ejbv8KKCE2nnr1riUFin46XbX3h0+gvPH/UbJbPqfzKG5E7d3V5gnAwHNn+97pHq9rhy2K3P9C39k13/k1FyUc6vPHf4tzvRmn61O7LCOscqq/4nY3Du867FjwxOqJZf7Y6ssM4Rt/ciq/4n47yLcp4Oe33bISLiwC+f3nTruvYoHfrIV3pM/xz4/g82XfK1TXd1b+t5o2NtRFwwoJf7eFn1PxmXnp/zs2/tHv/vI/EG9HLn8ED9/sjKSfRxWDdZzSsZeTcY230zP+uZhNCr0kHXjo+IA43dfwWdDvqM758XDVr97FuRFeI5kqz6n4xRZTltQy/We7XDew//9a6yj+5a1L2GJ/XeCxEx6oOjjvP8XfU/GeNKc+I+L7z27nF9Bo7SGRYAiklTKiOidsW9K9d3rbLVvL7m3jvuuOOOlVmZm9TqdV0DmtevPMHtP50pox7yP5kE0BFCSry/BlScFxFt92/fl7fjmV0tETGxZPDh6n/GDM/e+3JbzovLrkIgOKIB15w/KKJtWdO+nCj33teXtUYUDr1m4FENy5eu/7n1wux+oLz/X/UeHoJTbkDx6Iho2/ib/P/Ap5cGi9H9z484f+6Ye5+dmP/n8dLyiLiydOGzE+89fP3PZ3MWDtuVG+DoKgTirLXv8Zf/7+nr/uXx3EnYsPuFqogYdEmmnqroQ0NLIpqXv16fe/T65W3Zw/Kl638+Ozy7HygvRdR7eAgOp/XxzY9Of+Hp/Kn7+oaqiBhU0TknBxSNiYjY+qu38g7f+aOGwxUFpet/PntB9t69uVN3uBcYx6j/8NER0b7hN/n35tJLg8XoAV1vQ9j89S2PVEdcOWLRd0eO6+Pp0/U/nynO7u1ofi3nc43yb3esWh9/6Ylpa/4j73nXuOulVRExqHzGgIgonHf53Oevzv/zk/LiiJhQPvP5q+cevv5nfs7CYW/lPu+OO2PEWar98c3/Nm316sdzfw/X+Pr2VRFReOGMvHm1v/2VHrf3Il3/M/+C7Bqht1/L+Vx9zhJxJvvl01tvXRdRWvKLT4+8tuch/S++ICLix1vfzt1+4PvPvhkRN489r+fj0vU/M4Zlx4NefiPnZ19XIRAkV/9rzi+IaF/W1Jp757BlWWtEYVHmzmEfh+VLN6/cemH/3m8w9p7b4GxhEkLvzim7OCL2r3i8LW9HZ9Dnvw4amfOMeLdxe/S4ZFjP0vU/fz4k+yQ7Gn+XPaTPWSLOYB8cMyoi4rHn8n7b8t7D/7M9Im45zkbhdP3PnxWMytq2OfVe9pCuQiBOjjMtABST5i+oLI1I1a5YfEenxSuqUhGVCzqXBUtnhFJVXQMWr6jNpH9STc29nvlopPM/lbN6WuZLAug0cM3FZRMjonHbpzftfqazB6jjmU0v/2VjRAz60+E9fqfLr/8pHz50YlblT0PbO9GtEAgOp6xo6ISI2L3ttu37Gg9GRDTu3X3blpaImHD+4LKjHJYjv/6nM0WUeTNEuj0o760ScFoZe+2wiGj41pbvLW19o3Nbx9alrz5aHRGDZt5yhBVsDiu//uf8Dw0pz6r8eeO1/dGtEIizUNFF50ZE8/L6X2b+a7Tvud3/MrexOaJkYcXErjhw+eBLJkREy89vb6hviIiIhn0bbt+2KSImDK3oOVOcX//TmSLK9Dek24OGmYQck8KLzo2I3cu3P5+Zuq3Pvf703IbdEcMXXnx5Zk6O/GT58Iio2vr00rdaO7d17Fy6+RdVETHo6k8O7unc+fU/hR86f3hW5U/ra+9Et0Ig+m7cHw6LiB3/tOU7X29t6dx2YPPXX32kOiIKZn2y82dfyxOvZtI/xX1dhadb/U/xh4pGZVX+tKRLyy5yW/AYFV5UEBEty7atOfS82/UfNzW0RBTfOXpsnyqaepNf/1M44/zirMqf1tfao1shEPRRwUUDI2Lvsh0vPdc5o9qfe331TfV7I4bcOeqi/Knb0VYXEQML+jSl8+t/CmacPySr8qf9tf3RrRCIs1D96u2Z9M+wXlp8IiKurSyZEhHr6uc+/XZn7P7Nt+/6wdb7UpFX8JMlv/6n4pLBU7Iqf+rf6IhuhUCQSGVFRRMiYveO27a3Zu4ctty2ZU/k32Ds07Ac+c0rnQGOzDfzA24wkmYSQu+mziu+IiKebFr4wL7VqXSO7d3VD6T+7snoKehzoH5THG7JsBz59T8jp513RVblz87GA9GtEIiz00duKrwqIp7e+4lvd+xIb2rqWPTXLfdsjrzmnqOXX/8z6g/OvSqr8mdH6kB0KwTi/XYG5q0mzb97yZSVD1XXpjpjPaWllbNunz+p5NCAJQsid//UWTdMbnpocVWqsak5JvWQ2jk6nfmfKZN63FsyeWppVSpVW11zw6SeEkKcBAXDf3DV/k+/0LKhsfEvGxuzdgy66apLb8lf5T4iMvU/V2XV/xQM/tMhsaFx12MXF90S+/7H5ra81cHgSM4dfs9l+2/c0lK3e9uNu7O2Dx/9cHZzTx+HZUnX/yzP2ltWNHRCtK3aufvPi4bHvteXteatDgannWmlC7+4f/m32hqqty+vztlT/sWy6cfzi7R0/c83s+p/ys678spoqH79uVsKp0frM99qy1sdjLPU9PKPzn7n51Vtm7704qbs7RPKrpuX/XvWARP/fvSbc7dtqmv5+dyWrO3FH30op+DnkHT9zwNZe8sHXzIhmqt2bfhk0cR0e1Du6mBwFKZXXDf7nV9UtW390sat2dsnlM/InrrlF1z/wDuPfqlld9XWqqrscYPGPjDu8h6za+n6nwey6n/KiyomNOyu2vnSJwdfHm9tWt6WtzoYR2fayEV/9c7Sf2rfUb1jae7PvlF/VZ5Z56v1l//UHhGxsWnpNU09nGTWqPu/3C0mm67/+UZWYKhs8MQrm3ZUv/7rTxZ+OH3O3NXBODrTKz48p/3Xq9q23Vm3LXv7hPKp844vmpOu/1mWVf9TNqR8QkPLqp1bbykaG/u2LGvLWx0MjsL0UZPn7F+3qrXxzrrsOyMxoWL8vG6/SGvseDsiJhT0eMskX7r+Z1lW/U/Z4AsnxN5VTa/dUnRR7Ktf1pq3Ohhnpbe/9+/tERGp5uu+1tN7MidXvHL9eRERQ4fd/8dvXffv7WvX1V+3LnvE0Ec+3ktyKF3/Mzdr79DCG0qb167b/f3K8z6T/tS9hocgWc4tvueyAzdu2VO3e0funcNRD2eXpvRxWJZ088ryrL1lRUUTon3VzpY/LyqOfS3LWvMWZuJsZRJC70qLln/twMKvvPXiky1/92T2ncOBN3ytbE7pwZzBqd/tiB7WBetZuv7na1n1P6WDrh3f8uKTb66aN2hOtD3xnf15q4Nx9hpR8K3b37nmoXdfeHrvNU9n7yh49G9ymnuOWrr+Z0nWSUYM+Pi41heefvvhmwbcFh0rHnr3uDNGHLWEBoAmzX/wwfm97y6ZNP/uSUe7f9LdD87sGjAz64NethzmGo50ed3OxSlQXP6DDw9+bPuuf21s2xAREROHFN8+ofyanm9l5df/RETEgFsqr4hN9ff/et39ERPLyn42fnjP7/OH3pQNKf/pZQN/uLNxVed77wfNqaj4226xnj4O65Rf/xMREecOf3hi/OP2xht/2xgxaE7FFb0eDqeL8+eOWfih1me++vqajZ0VqeVXDvuvf196nG+jz6v/iYiIAdMfvCyWNtbM21ATUT6rdOGinNXBOGtVLLr0lj9s+MU/tzTXRUTEhEHjP1txbfdO1PKia58YPfRHu56p6pyrJbPLrlvUS/qnW/1PREQMmPjQFbG0/pm5656JKJlddkuvh8ORjVw0bvYf1j/7zy27M1N37GcvntZ96k6v+NQTQ5//6s6tdempO2j47PMnfvKCkb00V+XV/0RExIDLH7oylm5fM/eFNRHDZ5fPXnTB8VS0UTx3zKIPtf7yvtef39jZUzrqymHX3TVyXNfPvudbnz/qs+bX/0RERP8Pf/ey+HpD9c111RGjZo1Y9OW+9wnRgxGLLp/5h/WrV+5uyTzvRs8fffVx1mh3q/+JiIgBY783IZZuW3fTmnURxXPKZy660POOY1a8aNyMP9yxaeXuvZ1Tt7Bs/qjLp/f0NvqG9r19PWt+/U9ERAy86HsTYumOLTet3hIxZE7FjEUX9ClLxBns1bd+3OexFVMvfuWSt+/62e4fp9I/IgumTB5+//Xn9dIblF//ExER/T/z6bHxdOq+7266L2LK5JJfXH+42iFIkrIhI396Wf8f7mzK3DksmFNR/rfdEhV9HNYpv3klIiLOLX54Yvzj9qYbf9sUUTCn4rJeD+csYxLCYVQOX/7ooFWPv/nLJ/e/GBERV4wffMvfXjA1L/0TEY0HXuzrSfPrfyIi4pw5366IB3at+NQrKyKu+Fjx9780JHeJMc5eoz4xrPEPOhZ94+3HNqe7ec656vrzvvWFAaOO66z59T8REfHB275ZHN/ee89tu+6JuOr6wme+cHwZI45ev4MHPfPPRv/r+imn+hI4w/2Xp9cefsCU33qLMe+7tX9w9L8jO1199Tf/5VRfAme+v//Q/zr8gM8/7/UD76/vTDvC64fT1qef906W09QPpq05/IBvPDvx5FwJR+tvZmw4/IB5tVNPzpVwtB6vXH2qL+EY/UntH5zqS+DM9/9W/vbwA179P688OVfCWWvM/7XxVF/CiTTRDUbeZxuOdHfRJOQkOOI8TJB/+/8uOdWXwJnvf//IK4cfkHrKCj28v0pv6Kni9GT5wCn83AAAAAAAAAAAwHESAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgAQTAAIAAAAAAAAAgATrd/DgwVN9DQAAAAAAAAAAwDHSAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAAAAAAAAkmAAQAAAAA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" width="1536" data-figure-id="fig2" /></p>
|
||
</div>
|
||
</div>
|
||
<div id="column-2" class="section level2 sidebar" data-width="300">
|
||
<h2 class="sidebar" data-width="300">Column</h2>
|
||
<div id="definitions-2" class="section level3">
|
||
<h3>Definitions</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h4>Wellbeing</h4>
|
||
|
||
<ul>
|
||
<li><strong>Actively Manage Workloads</strong>: % of employees with weekly collaboration under 20 hours and work week span under 45 hours</li>
|
||
<li><strong>Promote Switching Off</strong>: % of employees with 2+ quiet days a week (maximum 2 of emails and IMs sent)</li>
|
||
</ul>
|
||
|
||
<h4>Empowerment</h4>
|
||
|
||
<ul>
|
||
<li><strong>Support and Coach</strong>: % of employees with > 15 minute a week of 1:1 meetings with manager (on average)</li>
|
||
<li><strong>Empower Employees</strong>: % of employees with < 50% manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Connection</h4>
|
||
|
||
<ul>
|
||
<li><strong>Enable broad connections</strong>: % of employees with an internal network size of over 20</li>
|
||
<li><strong>Encourage small-group meetings</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week</li>
|
||
<li><strong>Encourage small-group meetings without manager</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week without manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Growth</h4>
|
||
|
||
<ul>
|
||
<li><strong>Promote skip-level exposure</strong>: % of employees with >30 mins of skip-level meeting hours with maximum 8 attendees</li>
|
||
<li><strong>Facilitate external connections</strong>: % of employees with at least 15 minutes of external collaboration per week</li>
|
||
</ul>
|
||
|
||
<h4>Focus</h4>
|
||
|
||
<ul>
|
||
<li><strong>Make time available to focus</strong>: % of employees with at least 4 focus 2-hour blocks per week</li>
|
||
<li><strong>Enable 'Deep Work' Days</strong>: % of employees with at least 1 day of <2 hour of meetings excluding weekends</li>
|
||
</ul>
|
||
|
||
<h4>Purpose</h4>
|
||
|
||
<ul>
|
||
<li><strong>Help employees own their time</strong>: % of employees with 25%+ of collaboration time in self-organized meetings</li>
|
||
<li><strong>Foster meaningful interactions</strong>: % of employees with at least 30 minutes of 1:1 meetings with peers a week ona verage (excluding line manager 1:1 time and 1:1 coaching time)</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="opportunities" class="section level1">
|
||
<h1>Opportunities</h1>
|
||
<div id="row-7" class="section level2" data-height="5%">
|
||
<h2 data-height="5%">Row</h2>
|
||
<div id="title-placeholder-2" class="section level3 no-title">
|
||
<h3 class="no-title">Title-Placeholder</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h2>What are the behavioural opportunities for growth within each team?</h2>
|
||
|
||
</div>
|
||
</div>
|
||
<div id="row-8" class="section level2" data-height="95%">
|
||
<h2 data-height="95%">Row</h2>
|
||
<div id="opportunities-1" class="section level3">
|
||
<h3>Opportunities</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<p><img src="data:image/png;base64,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" width="1536" data-figure-id="fig3" /></p>
|
||
</div>
|
||
</div>
|
||
<div id="column-3" class="section level2 sidebar" data-width="300">
|
||
<h2 class="sidebar" data-width="300">Column</h2>
|
||
<div id="definitions-3" class="section level3">
|
||
<h3>Definitions</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h4>Wellbeing</h4>
|
||
|
||
<ul>
|
||
<li><strong>Actively Manage Workloads</strong>: % of employees with weekly collaboration under 20 hours and work week span under 45 hours</li>
|
||
<li><strong>Promote Switching Off</strong>: % of employees with 2+ quiet days a week (maximum 2 of emails and IMs sent)</li>
|
||
</ul>
|
||
|
||
<h4>Empowerment</h4>
|
||
|
||
<ul>
|
||
<li><strong>Support and Coach</strong>: % of employees with > 15 minute a week of 1:1 meetings with manager (on average)</li>
|
||
<li><strong>Empower Employees</strong>: % of employees with < 50% manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Connection</h4>
|
||
|
||
<ul>
|
||
<li><strong>Enable broad connections</strong>: % of employees with an internal network size of over 20</li>
|
||
<li><strong>Encourage small-group meetings</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week</li>
|
||
<li><strong>Encourage small-group meetings without manager</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week without manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Growth</h4>
|
||
|
||
<ul>
|
||
<li><strong>Promote skip-level exposure</strong>: % of employees with >30 mins of skip-level meeting hours with maximum 8 attendees</li>
|
||
<li><strong>Facilitate external connections</strong>: % of employees with at least 15 minutes of external collaboration per week</li>
|
||
</ul>
|
||
|
||
<h4>Focus</h4>
|
||
|
||
<ul>
|
||
<li><strong>Make time available to focus</strong>: % of employees with at least 4 focus 2-hour blocks per week</li>
|
||
<li><strong>Enable 'Deep Work' Days</strong>: % of employees with at least 1 day of <2 hour of meetings excluding weekends</li>
|
||
</ul>
|
||
|
||
<h4>Purpose</h4>
|
||
|
||
<ul>
|
||
<li><strong>Help employees own their time</strong>: % of employees with 25%+ of collaboration time in self-organized meetings</li>
|
||
<li><strong>Foster meaningful interactions</strong>: % of employees with at least 30 minutes of 1:1 meetings with peers a week ona verage (excluding line manager 1:1 time and 1:1 coaching time)</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="distribution" class="section level1">
|
||
<h1>Distribution</h1>
|
||
<div id="row-9" class="section level2" data-height="5%">
|
||
<h2 data-height="5%">Row</h2>
|
||
<div id="title-placeholder-3" class="section level3 no-title">
|
||
<h3 class="no-title">Title-Placeholder</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h2>Are employees within individual teams sharing a broadly uniform experience?</h2>
|
||
|
||
</div>
|
||
</div>
|
||
<div id="row-10" class="section level2" data-height="95%">
|
||
<h2 data-height="95%">Row</h2>
|
||
<div id="distribution-1" class="section level3">
|
||
<h3>Distribution</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<p><img src="data:image/png;base64,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VQAAAAAAgFv0wrNnz+66BgCAm9Nt7TWTcOWVue6HrHPYaKdhXUvNAQAAAAAA8KDoAAQAPGRZ5yQJIVy//88NG8SU8hM+3dN2v+fRxn0+CQAAAAAAAO7Gi3ddAADATcm6neN+ciZ+XJDuP0nzsNMdWb4ty7qtw142qEBnAQAAAAAAwG3SAQgAeHCG7XQGourOPV83q7xTjZJeWCltNxvtvG3u/1kAAAAAAABwJ3QAAgAenNJGNPplVN29/41zSpXdehzNfj+qHuzf/7MAAAAAAADgLrzw7Nmzu64BAGC9uq3DZpKGEEIU13dr5cIEZ7Kse356cpak6eCVKIq3H+9slkuFOQcAAAAAAABumwAQAAAAAAAAAAAUmCXAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAAAACgwASAAAAAAAAA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" width="1536" data-figure-id="fig4" /></p>
|
||
</div>
|
||
</div>
|
||
<div id="column-4" class="section level2 sidebar" data-width="300">
|
||
<h2 class="sidebar" data-width="300">Column</h2>
|
||
<div id="definitions-4" class="section level3">
|
||
<h3>Definitions</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<h4>Wellbeing</h4>
|
||
|
||
<ul>
|
||
<li><strong>Actively Manage Workloads</strong>: % of employees with weekly collaboration under 20 hours and work week span under 45 hours</li>
|
||
<li><strong>Promote Switching Off</strong>: % of employees with 2+ quiet days a week (maximum 2 of emails and IMs sent)</li>
|
||
</ul>
|
||
|
||
<h4>Empowerment</h4>
|
||
|
||
<ul>
|
||
<li><strong>Support and Coach</strong>: % of employees with > 15 minute a week of 1:1 meetings with manager (on average)</li>
|
||
<li><strong>Empower Employees</strong>: % of employees with < 50% manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Connection</h4>
|
||
|
||
<ul>
|
||
<li><strong>Enable broad connections</strong>: % of employees with an internal network size of over 20</li>
|
||
<li><strong>Encourage small-group meetings</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week</li>
|
||
<li><strong>Encourage small-group meetings without manager</strong>: % of employees with at least >2 hour of meetings with 3-8 attendees per week without manager co-attendance</li>
|
||
</ul>
|
||
|
||
<h4>Growth</h4>
|
||
|
||
<ul>
|
||
<li><strong>Promote skip-level exposure</strong>: % of employees with >30 mins of skip-level meeting hours with maximum 8 attendees</li>
|
||
<li><strong>Facilitate external connections</strong>: % of employees with at least 15 minutes of external collaboration per week</li>
|
||
</ul>
|
||
|
||
<h4>Focus</h4>
|
||
|
||
<ul>
|
||
<li><strong>Make time available to focus</strong>: % of employees with at least 4 focus 2-hour blocks per week</li>
|
||
<li><strong>Enable 'Deep Work' Days</strong>: % of employees with at least 1 day of <2 hour of meetings excluding weekends</li>
|
||
</ul>
|
||
|
||
<h4>Purpose</h4>
|
||
|
||
<ul>
|
||
<li><strong>Help employees own their time</strong>: % of employees with 25%+ of collaboration time in self-organized meetings</li>
|
||
<li><strong>Foster meaningful interactions</strong>: % of employees with at least 30 minutes of 1:1 meetings with peers a week ona verage (excluding line manager 1:1 time and 1:1 coaching time)</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div id="notes" class="section level1">
|
||
<h1>Notes</h1>
|
||
<div id="column-data-height650" class="section level2 tabset">
|
||
<h2 class="tabset">Column {data-height=650}</h2>
|
||
<div id="query-spec" class="section level3">
|
||
<h3>Query Spec</h3>
|
||
<div id="specifications" class="section level4">
|
||
<h4>Specifications</h4>
|
||
<p>Run a single daily person query:</p>
|
||
<ul>
|
||
<li>Group by <code>Day</code></li>
|
||
<li>At least 3 months</li>
|
||
<li>Ensure that <code>IsActive</code> flag is not applied</li>
|
||
</ul>
|
||
</div>
|
||
<div id="all-metrics" class="section level4">
|
||
<h4>All metrics</h4>
|
||
<p><strong>Note</strong>: <em>Custom metrics shown in <strong>bolded italics</strong></em></p>
|
||
<ol style="list-style-type: decimal">
|
||
<li><strong><em>Meeting hours 1 on 1</em></strong> [SEE SPEC BELOW]</li>
|
||
<li><strong><em>Meeting hours 1 on 1 with same level</em></strong> [SEE SPEC BELOW]</li>
|
||
<li>Time in self organized meetings</li>
|
||
<li>Open 2 hour blocks</li>
|
||
<li>Collaboration hours external</li>
|
||
<li>Meetings with skip level</li>
|
||
<li>Meeting hours with skip level</li>
|
||
<li><strong><em>Meeting hours 3 to 8</em></strong> [SEE SPEC BELOW]</li>
|
||
<li>Internal network size</li>
|
||
<li>Meeting hours with manager</li>
|
||
<li>Meeting hours</li>
|
||
<li>Meetings</li>
|
||
<li>Meetings with manager</li>
|
||
<li>Meeting hours with manager 1 on 1</li>
|
||
<li>Instant messages sent</li>
|
||
<li>Emails sent</li>
|
||
<li>Workweek span</li>
|
||
<li>Collaboration hours</li>
|
||
<li><strong><em>Meeting hours with skip level max 8</em></strong> [SEE SPEC BELOW]</li>
|
||
<li><strong><em>Meeting hours with manager with 3 to 8</em></strong> [SEE SPEC BELOW]</li>
|
||
</ol>
|
||
</div>
|
||
<div id="custom-metrics" class="section level4">
|
||
<h4>Custom metrics</h4>
|
||
<ol style="list-style-type: decimal">
|
||
<li>Meeting Hours 1 on 1: where <code>Total attendees == 2</code></li>
|
||
<li>Meeting Hours 1 on 1 with same level: <code>All attendee's and/or recipient's</code> where <code>LevelDesignation == @RelativeToPerson</code> AND <code>Total attendees == 2</code></li>
|
||
<li>Meeting hours 3 to 8: <code>Total attendees >= 3</code> AND <code>Total attendees <= 8</code></li>
|
||
<li>Meeting hours with skip level max 8: <code>Total attendees <= 8</code>, using <code>Meeting hours with skip level</code>.</li>
|
||
<li>Meeting hours with manager 3 to 8: <code>Total attendees >= 3</code> AND <code>Total attendees <= 8</code>, using <code>Meeting hours with manager</code>. This is used to calculate <strong>small group meetings without manager</strong> by deducting this from <code>Meeting hours for 3 to 8 attendees</code>.</li>
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
<div id="table---1" class="section level3">
|
||
<h3>Table - 1</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-e9439c867140999008c6" style="width:100%;height:auto;" class="datatables html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-e9439c867140999008c6">{"x":{"filter":"none","vertical":false,"extensions":["Buttons","FixedColumns"],"fillContainer":true,"data":[["1","2","3","4","5","6","7","8","9","10"],["Total","Team A","Team B","Team C","Team D","Team E","Team F","Team G","Team H","Team I"],[0.519230769230769,0.528178243774574,0.52247191011236,0.516546762589928,0.516688918558077,0.514462809917355,0.521408839779006,0.518205461638492,0.518491124260355,0.516260162601626],[0.884615384615385,0.868283093053735,0.899578651685393,0.882014388489209,0.881842456608812,0.892561983471074,0.886740331491713,0.893368010403121,0.878698224852071,0.878726287262873],[0.913461538461538,0.896898208824814,0.916666666666667,0.915107913669065,0.916777926123721,0.921028466483012,0.9097605893186,0.920242739488513,0.914201183431953,0.911020776874435],[0.610576923076923,0.609436435124509,0.621488764044944,0.602877697841727,0.620160213618158,0.610881542699725,0.604972375690608,0.608582574772432,0.614644970414201,0.60230352303523],[1,1,1,1,1,1,1,1,1,1],[0.586538461538462,0.586500655307995,0.593398876404494,0.583453237410072,0.576101468624833,0.59297520661157,0.591160220994475,0.5851755526658,0.576183431952663,0.59349593495935],[0.752403846153846,0.748216106014271,0.758934144818976,0.75,0.7519284972556,0.755318334863789,0.752340392879067,0.754262389828059,0.750369822485207,0.750301114122252]],"container":"<table class=\"display fill-container\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Organization<\/th>\n <th>Wellbeing<\/th>\n <th>Empowerment<\/th>\n <th>Connection<\/th>\n <th>Growth<\/th>\n <th>Focus<\/th>\n <th>Purpose<\/th>\n <th>EXPI<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"dom":"Blfrtip","fixedColumns":{"leftColumns":2},"scrollX":true,"buttons":["copy","csv","excel","pdf","print"],"lengthMenu":[[10,25,50,-1],["10","25","50","All"]],"columnDefs":[{"targets":2,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":3,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":4,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":5,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":6,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":7,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":8,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"className":"dt-right","targets":[2,3,4,5,6,7,8]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":["options.columnDefs.0.render","options.columnDefs.1.render","options.columnDefs.2.render","options.columnDefs.3.render","options.columnDefs.4.render","options.columnDefs.5.render","options.columnDefs.6.render"],"jsHooks":[]}</script>
|
||
</div>
|
||
<div id="table---2" class="section level3">
|
||
<h3>Table - 2</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-59a5fb89eb2c6096e72c" style="width:100%;height:auto;" class="datatables html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-59a5fb89eb2c6096e72c">{"x":{"filter":"none","vertical":false,"extensions":["Buttons","FixedColumns"],"fillContainer":true,"data":[["1","2","3","4","5","6","7","8","9","10"],["Total","Team A","Team B","Team C","Team D","Team E","Team F","Team G","Team H","Team I"],[0.0480769230769231,0.0602883355176933,0.0491573033707865,0.0517985611510791,0.0427236315086782,0.0399449035812672,0.0497237569060773,0.046814044213264,0.0502958579881657,0.0420054200542005],[0.990384615384615,0.996068152031455,0.995786516853933,0.981294964028777,0.990654205607477,0.988980716253444,0.993093922651934,0.989596879063719,0.986686390532544,0.990514905149051],[0.903846153846154,0.90170380078637,0.922752808988764,0.894964028776978,0.90520694259012,0.909090909090909,0.889502762430939,0.923276983094928,0.88905325443787,0.897018970189702],[0.87378640776699,0.843708609271523,0.88135593220339,0.879184861717613,0.868918918918919,0.879668049792531,0.892608089260809,0.872536136662286,0.87874251497006,0.86986301369863],[0.942307692307692,0.929226736566186,0.943820224719101,0.938129496402878,0.949265687583445,0.949035812672176,0.939226519337017,0.94668400520156,0.942307692307692,0.943089430894309],[0.951923076923077,0.942332896461337,0.952247191011236,0.951079136690647,0.954606141522029,0.958677685950413,0.948895027624309,0.954486345903771,0.946745562130177,0.9579945799458],[0.846153846153846,0.81913499344692,0.853932584269663,0.856115107913669,0.846461949265688,0.855371900826446,0.841160220994475,0.859557867360208,0.853550295857988,0.831978319783198],[0.240384615384615,0.247706422018349,0.264044943820225,0.227338129496403,0.252336448598131,0.242424242424242,0.226519337016575,0.235370611183355,0.248520710059172,0.219512195121951],[0.980769230769231,0.971166448230668,0.978932584269663,0.97841726618705,0.987983978638184,0.979338842975207,0.983425414364641,0.981794538361508,0.980769230769231,0.985094850948509],[1,1,1,1,1,1,1,1,1,1],[1,1,1,1,1,1,1,1,1,1],[0.504854368932039,0.509933774834437,0.501412429378531,0.499272197962154,0.490540540540541,0.503457814661134,0.513249651324965,0.511169513797635,0.511976047904192,0.502739726027397],[0.673076923076923,0.668414154652687,0.688202247191011,0.673381294964029,0.667556742323097,0.684573002754821,0.674033149171271,0.664499349804942,0.646449704142012,0.68970189701897],[0.752403846153846,0.748216106014271,0.758934144818976,0.75,0.7519284972556,0.755318334863789,0.752340392879067,0.754262389828059,0.750369822485207,0.750301114122252]],"container":"<table class=\"display fill-container\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Organization<\/th>\n <th>ActiveManageWorkloads<\/th>\n <th>PromoteSwitchingOff<\/th>\n <th>SupportAndCoach<\/th>\n <th>EmpowerEmployees<\/th>\n <th>EnableBroadConnections<\/th>\n <th>EncourageSmallGroupMeetings<\/th>\n <th>EncourageMeetingsWithoutManager<\/th>\n <th>SkipLevelExposure<\/th>\n <th>ExternalCollaboration<\/th>\n <th>FocusTime<\/th>\n <th>DeepWork<\/th>\n <th>OwnTime<\/th>\n <th>MeaningfulInteractions<\/th>\n <th>EXPI<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"dom":"Blfrtip","fixedColumns":{"leftColumns":2},"scrollX":true,"buttons":["copy","csv","excel","pdf","print"],"lengthMenu":[[10,25,50,-1],["10","25","50","All"]],"columnDefs":[{"targets":2,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":3,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":4,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":5,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":6,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":7,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":8,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":9,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":10,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":11,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":12,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":13,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":14,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"targets":15,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 2, 3, \",\", \".\");\n }"},{"className":"dt-right","targets":[2,3,4,5,6,7,8,9,10,11,12,13,14,15]},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":["options.columnDefs.0.render","options.columnDefs.1.render","options.columnDefs.2.render","options.columnDefs.3.render","options.columnDefs.4.render","options.columnDefs.5.render","options.columnDefs.6.render","options.columnDefs.7.render","options.columnDefs.8.render","options.columnDefs.9.render","options.columnDefs.10.render","options.columnDefs.11.render","options.columnDefs.12.render","options.columnDefs.13.render"],"jsHooks":[]}</script>
|
||
</div>
|
||
<div id="table---3" class="section level3">
|
||
<h3>Table - 3</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<div id="htmlwidget-78361fb69cccb0d57833" style="width:100%;height:auto;" class="datatables html-widget"></div>
|
||
<script type="application/json" data-for="htmlwidget-78361fb69cccb0d57833">{"x":{"filter":"none","vertical":false,"extensions":["Buttons","FixedColumns"],"fillContainer":true,"data":[["1","2","3","4","5","6","7","8","9"],["Team D","Team A","Team G","Team B","Team E","Team C","Team I","Team H","Team F"],[104,104,104,104,104,104,104,104,104]],"container":"<table class=\"display fill-container\">\n <thead>\n <tr>\n <th> <\/th>\n <th>Organization<\/th>\n <th>n<\/th>\n <\/tr>\n <\/thead>\n<\/table>","options":{"dom":"Blfrtip","fixedColumns":{"leftColumns":2},"scrollX":true,"buttons":["copy","csv","excel","pdf","print"],"lengthMenu":[[10,25,50,-1],["10","25","50","All"]],"columnDefs":[{"targets":2,"render":"function(data, type, row, meta) {\n return type !== 'display' ? data : DTWidget.formatRound(data, 0, 3, \",\", \".\");\n }"},{"className":"dt-right","targets":2},{"orderable":false,"targets":0}],"order":[],"autoWidth":false,"orderClasses":false}},"evals":["options.columnDefs.0.render"],"jsHooks":[]}</script>
|
||
</div>
|
||
<div id="notes-1" class="section level3">
|
||
<h3>Notes</h3>
|
||
<div class="knitr-options" data-fig-width="1536" data-fig-height="864">
|
||
|
||
</div>
|
||
<p>This report was generated on Dec 13 2021 .</p>
|
||
|
||
<p>There are 104 employees in this dataset.</p>
|
||
|
||
<p>Date ranges from 2021-01-03 to 2021-03-06.</p>
|
||
|
||
<p>There are 3 (estimated) HR attributes in the data:
|
||
<code>PersonId</code>, <code>IsActive</code>, <code>Organization</code></p>
|
||
|
||
<p>There are 103 active employees out of all in the dataset.</p>
|
||
|
||
<p>Total Runtime was: 0.28 minutes.</p>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<script>
|
||
|
||
$(document).ready(function () {
|
||
|
||
// add bootstrap table styles to pandoc tables
|
||
$('tr.header').parent('thead').parent('table').addClass('table table-condensed');
|
||
|
||
// initialize mathjax
|
||
var script = document.createElement("script");
|
||
script.type = "text/javascript";
|
||
script.src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
|
||
document.getElementsByTagName("head")[0].appendChild(script);
|
||
|
||
});
|
||
</script>
|
||
|
||
<script type="text/javascript">
|
||
$(document).ready(function () {
|
||
FlexDashboard.init({
|
||
theme: "cosmo",
|
||
fillPage: true,
|
||
orientation: "rows",
|
||
storyboard: false,
|
||
defaultFigWidth: 576,
|
||
defaultFigHeight: 460,
|
||
defaultFigWidthMobile: 360,
|
||
defaultFigHeightMobile: 460,
|
||
resize_reload: true
|
||
});
|
||
});
|
||
</script>
|
||
|
||
</body>
|
||
</html>
|