memoscan
← all memos

Memo 0xf94ed486…bb050b on Ethereum

W9uIGxlKGEsZSx0LG4saSl7aWYoIWEudGVhclNsaWNlc0VuYWJsZWQpcmV0dXJuW2VdO2NvbnN0IGw9TWF0aC5mbG9vcihlLmgvaSkscj1NYXRoLm1heCgxLE1hdGguZmxvb3IobC8yKSksbz1NYXRoLm1pbihNYXRoLm1heCgxLE1hdGgucm91bmQoYS50ZWFyU2xpY2VNYXg/PzYpKSxyKSxkPU1hdGgubWluKG8sTWF0aC5tYXgoMSxNYXRoLnJvdW5kKGEudGVhclNsaWNlTWluPz8yKSkpLGY9TWF0aC5taW4obyxNYXRoLm1heChkLE1hdGgucm91bmQoQihkLG8sYS50ZWFyU2xpY2VCaWFzPz8wLHQoKSkpKSkscz1NYXRoLmZsb29yKHIvZik7bGV0IGM9ci1zKmYsTT1lLnk7Y29uc3QgcD1NYXRoLm1pbigxLE1hdGgubWF4KDAsTnVtYmVyKGEudGVhclNsaWNlVmFyaWF0aW9uPz8uNjUpKSksQT1NYXRoLm1heChpLE1hdGguYWJzKGUuZHgpKSpwLHU9dCgpPC41Py0xOjEseD1lLnkvaStNYXRoLmFicyhlLmR4KStuKjE3LHk9W107Zm9yKGxldCBtPTA7bTxmO20rKyl7Y29uc3QgYj1zKyhjPjA/MTowKTtjPU1hdGgubWF4KDAsYy0xKTtjb25zdCBnPWIqMippLHc9Zjw9MT8wOm0vKGYtMSkqMi0xLEc9b2UobSsxLHgpKjItMSxFPUkoZS5keCtBKih3KnUqLjcyK0cqLjI4KSxpKTt5LnB1c2goe3k6TSxoOmcsZHg6RX0pLE0rPWd9cmV0dXJuIHl9ZnVuY3Rpb24gc2UoYSxlLHQsbixpLGwpe2NvbnN0IHI9dC5ub2lzZXx8e30sbz1NYXRoLm1heCgxLE1hdGgucm91bmQoK3IucGl4ZWxTaXplfHwxKSksZD1NYXRoLm1heCgxLE1hdGguY2VpbChpL28pKSxmPU1hdGgubWF4KDEsTWF0aC5jZWlsKGwvbykpLHM9ZCpmLGM9TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsK3IuYW1vdW50fHwwKSksTT1NYXRoLm1pbihzLE1hdGgucm91bmQocypjLzEwMCkpLHA9TWF0aC5tYXgoMCwrci5zcGVlZHx8MCksQT1wPjA/TWF0aC5mbG9vcihNYXRoLm1heCgwLG4pKnAvMWUzKTowLHU9W2ksbCxBLG8sYyxyLmNvbG9yLHIuc2VlZF0uam9pbigiOiIpO2lmKGUubms9PT11JiZhLndpZHRoPT09aSYmYS5oZWlnaHQ9PT1sKXJldHVybjtlLm5rPXUsYS53aWR0aD1pLGEuaGVpZ2h0PWw7Y29uc3QgeD1hLmdldENvbnRleHQoIjJkIik7eC5jbGVhclJlY3QoMCwwLGksbCkseC5maWxsU3R5bGU9ci5jb2xvcnx8IiNmZmYiO2NvbnN0IHk9RihDKGgucnVudGltZS5zZWVkKygrci5zZWVkfHwwKStBLHQuaWQpKSxtPW5ldyBNYXA7Zm9yKGxldCBiPTA7YjxNO2IrKyl7Y29uc3QgZz1iK01hdGguZmxvb3IoeSgpKihzLWIpKSx3PW0uZ2V0KGcpPz9nO20uc2V0KGcsbS5nZXQoYik/P2IpLHguZmlsbFJlY3QodyVkKm8sTWF0aC5mbG9vcih3L2QpKm8sbyxvKX19ZnVuY3Rpb24gTChhLGUsdCxuLGksbCl7aWYoIWoodCxuLGkpKXJldHVybiBhO2NvbnN0IHI9TWF0aC5tYXgoMSxsKSxvPU1hdGgubWF4KE1hdGguYWJzKE51bWJlcih0LnNoaWZ0TWluKXx8MCksTWF0aC5hYnMoTnVtYmVyKHQuc2hpZnRNYXgpfHwwKSksZD10LnRlYXJTbGljZXNFbmFibGVkP01hdGgubWF4KDAsTWF0aC5taW4oMSxOdW1iZXIodC50ZWFyU2xpY2VWYXJpYXRpb24pfHwwKSk6MCxmPU1hdGguY2VpbChvKigxK2QpL3IpKnI7ZS53aWR0aD1hLndpZHRoK2YqMixlLmhlaWdodD1hLmhlaWdodCxlLl9oeD0oTnVtYmVyKGEuX2h4KXx8MCkrZjtsZXQgcz1lLmdldENvbnRleHQoIjJkIik7cy5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITEscy5jbGVhclJlY3QoMCwwLGUud2lkdGgsZS5oZWlnaHQpLHMuZHJhd0ltYWdlKGEsZiwwKTtsZXQgYz1GKEMoaC5ydW50aW1lLnNlZWQrTWF0aC5mbG9vcihuLzYwKSxpKSksTT1NYXRoLnJvdW5kKEIodC5iYW5kTWluLHQuYmFuZE1heCx0LmJhbmRCaWFzLGMoKSkpO2ZvcihsZXQgcD0wO3A8TTtwKyspe2xldCBBPU1hdGgubWF4KDIsSShCKHQuaGVpZ2h0TWluLHQuaGVpZ2h0TWF4LHQuaGVpZ2h0QmlhcyxjKCkpLDIpKSx1PXQudGVhclNsaWNlc0VuYWJsZWQ/TWF0aC5taW4oTWF0aC5tYXgoMixNYXRoLmZsb29yKGEuaGVpZ2h0L3IvMikqMiksQSk6QSx4PXUqcix5PUkoYygpKk1hdGgubWF4KDAsYS5oZWlnaHQteCksciksbT1CKHQuc2hpZnRNaW4sdC5zaGlmdE1heCx0LnNoaWZ0QmlhcyxjKCkpLGI9SSgoYygpPC41Py0xOjEpKm0scik7Zm9yKGNvbnN0IGcgb2YgbGUodCx7eSxoOngsZHg6Yn0sYyxwLHIpKXMuY2xlYXJSZWN0KDAsZy55LGUud2lkdGgsZy5oKSxzLmRyYXdJbWFnZShhLDAsZy55LGEud2lkdGgsZy5oLGYrZy5keCxnLnksYS53aWR0aCxnLmgpfXJldHVybiBlfWZ1bmN0aW9uIFAoYSxlLHQsbixpLGwpe2lmKCFqKHsuLi50LHF1aWV0TWluTXM6dC5jb29sZG93bk1pbk1zLHF1aWV0TWF4TXM6dC5jb29sZG93bk1heE1zLHF1aWV0Qmlhczp0LmNvb2xkb3duQmlhcyxhY3RpdmVNaW5NczoxMjB9LG4saSkpcmV0dXJuIGE7ZS53aWR0aD1hLndpZHRoLGUuaGVpZ2h0PWEuaGVpZ2h0LGUuX2h4PU51bWJlcihhLl9oeCl8fDA7bGV0IHI9ZS5nZXRDb250ZXh0KCIyZCIse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pO3IuY2xlYXJSZWN0KDAsMCxlLndpZHRoLGUuaGVpZ2h0KSxyLmRyYXdJbWFnZShhLDAsMCk7bGV0IG89RihDKGgucnVudGltZS5zZWVkK01hdGguZmxvb3Iobi84MCksaSkpLGQ9TWF0aC5tYXgobCxJKEIodC5zcGxpdE1pbix0LnNwbGl0TWF4LHQuc3BsaXRCaWFzLG8oKSksbCkpLGY9dC5kaXJlY3Rpb249PT0icmVkLWxlZnQifHx0LmRpcmVjdGlvbiE9PSJyZWQtcmlnaHQiJiZvKCk8LjUscz1yLmdldEltYWdlRGF0YSgwLDAsZS53aWR0aCxlLmhlaWdodCksYz1bImRhcmstb24tbGlnaHQiLCJsaWdodC1vbi1kYXJrIl0uaW5jbHVkZXModC5wb2xhcml0eSk/dC5wb2xhcml0eToiYXV0byI7aWYoYz09PSJhdXRvIilpZihoLmNhbnZhcy5iYWNrZ3JvdW5kIT09InRyYW5zcGFyZW50Iil7Y29uc3QgbT1TdHJpbmcoaC5jYW52YXMuYmFja2dyb3VuZENvbG9yfHwiI2ZmZiIpLnJlcGxhY2UoIiMiLCIiKSxiPXBhcnNlSW50KG0uc2xpY2UoMCwyKSwxNil8fDAsZz1wYXJzZUludChtLnNsaWNlKDIsNCksMTYpfHwwLHc9cGFyc2VJbnQobS5zbGljZSg0LDYpLDE2KXx8MDtjPWIqLjIxMjYrZyouNzE1Mit3Ki4wNzIyPDEyOD8ibGlnaHQtb24tZGFyayI6ImRhcmstb24tbGlnaHQifWVsc2V7bGV0IG09MCxiPTA7Zm9yKGxldCBnPTA7ZzxzLmRhdGEubGVuZ3RoO2crPTQpe2NvbnN0IHc9cy5kYXRhW2crM10vMjU1O20rPShzLmRhdGFbZ10rcy5kYXRhW2crMV0rcy5kYXRhW2crMl0pLzMqdyxiKz13fWM9YiYmbS9iPDEyOD8ibGlnaHQtb24tZGFyayI6ImRhcmstb24tbGlnaHQifWNvbnN0IE09Yz09PSJsaWdodC1vbi1kYXJrIixwPXQuY2hhbm5lbEJsZW5kPT09Im5vcm1hbCJ8fHQuY2hhbm5lbEJsZW5kPT09InNvdXJjZS1vdmVyIj8ic291cmNlLW92ZXIiOlsibXVsdGlwbHkiLCJzY3JlZW4iLCJsaWdodGVyIl0uaW5jbHVkZXModC5jaGFubmVsQmxlbmQpP3QuY2hhbm5lbEJsZW5kOk0/InNjcmVlbiI6Im11bHRpcGx5IixBPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO0Eud2lkdGg9ZS53aWR0aCxBLmhlaWdodD1lLmhlaWdodDtsZXQgdT1BLmdldENvbnRleHQoIjJkIikseD11LmNyZWF0ZUltYWdlRGF0YShBLndpZHRoLEEuaGVpZ2h0KTtmb3IobGV0IG09MDttPHMuZGF0YS5sZW5ndGg7bSs9NCl7bGV0IGI9KHMuZGF0YVttXStzLmRhdGFbbSsxXStzLmRhdGFbbSsyXSkvMzt4LmRhdGFbbV09MjU1LHguZGF0YVttKzFdPTI1NSx4LmRhdGFbbSsyXT0yNTUseC5kYXRhW20rM109TWF0aC5yb3VuZCgoTT9iOjI1NS1iKSoocy5kYXRhW20rM10vMjU1KSl9dS5wdXRJbWFnZURhdGEoeCwwLDApO2Z1bmN0aW9uIHkobSxiLGc9cCl7dS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsdS5maWxsU3R5bGU9InJnYigiK20uam9pbigiLCIpKyIpIix1LmZpbGxSZWN0KDAsMCxBLndpZHRoLEEuaGVpZ2h0KSx1Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLW92ZXIiLHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPWcsci5kcmF3SW1hZ2UoQSxiLDApLHIuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJzb3VyY2Utb3ZlciJ9cmV0dXJuIHIuY2xlYXJSZWN0KDAsMCxlLndpZHRoLGUuaGVpZ2h0KSxyLmZpbGxTdHlsZT1NPyIjMDAwIjoiI2ZmZiIsdC5zY29wZT09PSJjb21wb3NpdGUiP3IuZmlsbFJlY3QoMCwwLGUud2lkdGgsZS5oZWlnaHQpOihyLmRyYXdJbWFnZShhLDAsMCksci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1pbiIsci5maWxsUmVjdCgwLDAsZS53aWR0aCxlLmhlaWdodCksci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIiksci5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITEseShbMjU1LDEyMywxMjNdLGY/LWQ6ZCkseShbMCwyMDEsMjQyXSxmP2Q6LWQpLHkoTT9bMjU1LDI1NSwyNTVdOlswLDAsMF0sMCwic291cmNlLW92ZXIiKSxlfWZ1bmN0aW9uIEFlKGEsZSx0KXtyZXR1cm4gYX1mdW5jdGlvbiBaKGEsZSx0KXtyZXR1cm4gYX1mdW5jdGlvbiBjZShhLGUpe2NvbnN0IHQ9YS5tb3Rpb258fHt9LG49TWF0aC5tYXgoMSxOdW1iZXIodC5ibGlua0R1cmF0aW9uTXMpfHwxMDApLGk9IXQuYmxpbmtFbmFibGVkfHxlJW4vbjxNYXRoLm1heCgwLE1hdGgubWluKDEsTnVtYmVyKHQuYmxpbmtEdXR5KXx8MCkpO2lmKCF0LmVuYWJsZWQpcmV0dXJue3g6MCx5OjAsdmlzaWJsZTppfTtjb25zdCBsPU1hdGgubWF4KDEsTnVtYmVyKHQuZHVyYXRpb25Ncyl8fDEwMCkscj0oZSVsK2wpJWwvbCxvPVsuLi50LmtleWZyYW1lc3x8W11dLnNvcnQoKGMsTSk9PmMudGltZS1NLnRpbWUpO2lmKG8ubGVuZ3RoPDIpcmV0dXJue3g6MCx5OjAsdmlzaWJsZTppfTtsZXQgZD1vWzBdLGY9b1tvLmxlbmd0aC0xXTtmb3IobGV0IGM9MTtjPG8ubGVuZ3RoO2MrKylpZihyPD1vW2NdLnRpbWUpe2Q9b1tjLTFdLGY9b1tjXTticmVha31sZXQgcz1NYXRoLm1heCgwLE1hdGgubWluKDEsKHItZC50aW1lKS9NYXRoLm1heCgxZS02LGYudGltZS1kLnRpbWUpKSk7cmV0dXJuIHQuZWFzaW5nPT09InNtb290aCI/cz1zKnMqKDMtMipzKTp0LmVhc2luZz09PSJkaXNjcmV0ZSImJihzPTApLHt4OihkLnh8fDApKygoZi54fHwwKS0oZC54fHwwKSkqcyx5OihkLnl8fDApKygoZi55fHwwKS0oZC55fHwwKSkqcyx2aXNpYmxlOml9fWZ1bmN0aW9uIGRlKGEsZSx0LG4saT0hMCl7Y29uc3QgbD1jZShhLHQpO2lmKCFsLnZpc2libGUpcmV0dXJuO2NvbnN0IHI9bmUoYSksbz1yLnMsZD1NYXRoLm1heCgxLE51bWJlcihhLnNoYXBlPy53aWR0aD8/YS5zb3VyY2Uud2lkdGgpKSxmPU1hdGgubWF4KDEsTnVtYmVyKGEuc2hhcGU/LmhlaWdodD8/YS5zb3VyY2UuaGVpZ2h0KSk7aWYoYS50eXBlPT09InByb2NlZHVyYWwtbm9pc2UiKXNlKG8scixhLHQsZCxmKTtlbHNle28ud2lkdGg9ZCxvLmhlaWdodD1mO2NvbnN0IHU9by5nZXRDb250ZXh0KCIyZCIpO2lmKHUuaW1hZ2VTbW9vdGhpbmdFbmFibGVkPSExLHUuY2xlYXJSZWN0KDAsMCxkLGYpLGEudHlwZT09PSJsaW5lInx8YS50eXBlPT09InJlY3RhbmdsZSIpdS5maWxsU3R5bGU9YS5zaGFwZS5maWxsLHUuZmlsbFJlY3QoMCwwLGQsZik7ZWxzZXtjb25zdCB4PWEuYW5pbWF0aW9uLmZyYW1lc1tuPz9XKGEsdCldLHk9cS5nZXQoeC5hc3NldEtleXx8eC5kYXRhVXJsKTtpZigheSlyZXR1cm47Y29uc3QgbT15LmZyYW1lcz95LmZyYW1lc1tpZShhLHksdCldOnk7dS5kcmF3SW1hZ2UobSwwLDAsZCxmKX19bGV0IHM9QWUobyxyLmssYS5lZmZlY3RzLmtub2Nrb3V0KTtzPVoocyxyLm8sYS5lZmZlY3RzLmNvbG91ck92ZXJsYXkpLGkmJmEuZWZmZWN0cy5jb2RlZFRlYXIuZW5hYmxlZCYmKHM9TChzLHIudCxhLmVmZmVjdHMuY29kZWRUZWFyLHQsYS5pZCsiLXRlYXIiLGguY2FudmFzLnBpeGVsR3JpZCkpLGkmJmEuZWZmZWN0cy5jaHJvbWF0aWMuZW5hYmxlZCYmKHM9UChzLHIuaCxhLmVmZmVjdHMuY2hyb21hdGljLHQsYS5pZCsiLWNocm9tYXRpYyIsaC5jYW52YXMucGl4ZWxHcmlkKSk7Y29uc3QgYz1hLnRyYW5zZm9ybSxNPUooYSxjLngrbC54KSxwPUooYSxjLnkrbC55KSxBPU51bWJlcihzLl9oeCl8fDA7ZS5zYXZlKCksZS5nbG9iYWxBbHBoYT1hLm9wYWNpdHksZS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249YS5ibGVuZE1vZGUsZS5pbWFnZVNtb290aGluZ0VuYWJsZWQ9IWEucGl4ZWxMb2NrLGUudHJhbnNsYXRlKE0scCksZS5yb3RhdGUoKGMucm90YXRpb258fDApKk1hdGguUEkvMTgwKSxlLnNjYWxlKE1hdGgubWF4KC4wMSxjLnNjYWxlfHwxKSxNYXRoLm1heCguMDEsYy5zY2FsZXx8MSkpLGUuZHJhd0ltYWdlKHMsLWQqYy5hbmNob3JYLUEsLWYqYy5hbmNob3JZKSxlLnJlc3RvcmUoKX1mdW5jdGlvbiBoZShhKXtjb25zdCBlPWguY2FudmFzLndpZHRoLHQ9aC5jYW52YXMuaGVpZ2h0LG49aC5jYW52YXMucGl4ZWxHcmlkO3YuY2xlYXJSZWN0KDAsMCxlLHQpLGguY2FudmFzLmJhY2tncm91bmQhPT0idHJhbnNwYXJlbnQiJiYodi5maWxsU3R5bGU9aC5jYW52YXMuYmFja2dyb3VuZENvbG9yLHYuZmlsbFJlY3QoMCwwLGUsdCkpO2NvbnN0IGk9aC5sYXllcnMuc29tZShyPT5yLnNvbG8pO2Zvcihjb25zdCByIG9mIGgubGF5ZXJzKXIudmlzaWJsZSYmKCFpfHxyLnNvbG8pJiZkZShyLHYsYSk7bGV0IGw9aztoLnJ1bnRpbWUuZmluYWxUZWFyLmVuYWJsZWQmJihsPUwobCwkLGgucnVudGltZS5maW5hbFRlYXIsYSwiZmluYWwtdGVhciIsbikpLGgucnVudGltZS5maW5hbENocm9tYXRpYy5lbmFibGVkJiYobD1QKGwsZWUsaC5ydW50aW1lLmZpbmFsQ2hyb21hdGljLGEsImZpbmFsLWNocm9tYXRpYyIsbikpLGwhPT1rJiYodi5jbGVhclJlY3QoMCwwLGUsdCksdi5kcmF3SW1hZ2UobCwtKE51bWJlcihsLl9oeCl8fDApLDApKSxyZShhKSxoLnJ1bnRpbWUub3ZlcmxheS5lbmFibGVkJiYodi5nbG9iYWxBbHBoYT1oLnJ1bnRpbWUub3ZlcmxheS5vcGFjaXR5LHYuZmlsbFN0eWxlPWgucnVudGltZS5vdmVybGF5LmNvbG9yLHYuZmlsbFJlY3QoMCwwLGUsdCksdi5nbG9iYWxBbHBoYT0xKSxULnNldFRyYW5zZm9ybShTLDAsMCxTLDAsMCksVC5jbGVhclJlY3QoMCwwLGUsdCksVC5kcmF3SW1hZ2UoaywwLDApfWZ1bmN0aW9uIEgoYSl7bGV0IGU9YS5yZWR1Y2UoKGksbCk9PmkrbC5sZW5ndGgsMCksdD1uZXcgVWludDhBcnJheShlKSxuPTA7Zm9yKGNvbnN0IGkgb2YgYSl0LnNldChpLG4pLG4rPWkubGVuZ3RoO3JldHVybiB0fWxldCBOO2Z1bmN0aW9uIGZlKGEpe2lmKCFOKXtOPW5ldyBVaW50MzJBcnJheSgyNTYpO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKyl7bGV0IG49dDtmb3IobGV0IGk9MDtpPDg7aSsrKW49biYxPzM5ODgyOTIzODRebj4+PjE6bj4+PjE7Tlt0XT1uPj4+MH19bGV0IGU9NDI5NDk2NzI5NTtmb3IoY29uc3QgdCBvZiBhKWU9TlsoZV50KSYyNTVdXmU+Pj44O3JldHVybihlXjQyOTQ5NjcyOTUpPj4+MH1mdW5jdGlvbiBRKGEsZSl7bGV0IHQ9bmV3IFVpbnQ4QXJyYXkoMTIrZS5sZW5ndGgpLG49bmV3IERhdGFWaWV3KHQuYnVmZmVyKTtuLnNldFVpbnQzMigwLGUubGVuZ3RoKTtmb3IobGV0IGk9MDtpPDQ7aSsrKXRbNCtpXT1hLmNoYXJDb2RlQXQoaSk7cmV0dXJuIHQuc2V0KGUsOCksbi5zZXRVaW50MzIoOCtlLmxlbmd0aCxmZSh0LnN1YmFycmF5KDQsOCtlLmxlbmd0aCkpKSx0fWZ1bmN0aW9uIG1lKGEpe2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkoYSksdD1uZXcgRGF0YVZpZXcoYSksbj1bXTtsZXQgaT04O2Zvcig7aSsxMjw9ZS5sZW5ndGg7KXtjb25zdCBsPXQuZ2V0VWludDMyKGkpLHI9U3RyaW5nLmZyb21DaGFyQ29kZSguLi5lLnN1YmFycmF5KGkrNCxpKzgpKTtpZihuLnB1c2goe25hbWU6cixkYXRhOmUuc2xpY2UoaSs4LGkrOCtsKX0pLGkrPTEyK2wscj09PSJJRU5EIilicmVha31yZXR1cm4gbn1mdW5jdGlvbiB1ZShhKXtjb25zdCBlPW5ldyBCbG9iKFthXSx7dHlwZToiaW1hZ2UvcG5nIn0pO3JldHVybiB0eXBlb2YgY3JlYXRlSW1hZ2VCaXRtYXA9PSJmdW5jdGlvbiI/Y3JlYXRlSW1hZ2VCaXRtYXAoZSk6bmV3IFByb21pc2UoKHQsbik9Pntjb25zdCBpPW5ldyBJbWFnZSxsPVVSTC5jcmVhdGVPYmplY3RVUkwoZSk7aS5vbmxvYWQ9KCk9PntVUkwucmV2b2tlT2JqZWN0VVJMKGwpLHQoaSl9LGkub25lcnJvcj0oKT0+e1VSTC5yZXZva2VPYmplY3RVUkwobCksbihuZXcgRXJyb3IoIlBORyBmcmFtZSBkZWNvZGUgZmFpbGVkIikpfSxpLnNyYz1sfSl9YXN5bmMgZnVuY3Rpb24gWChhKXtjb25zdCBlPW1lKGEpLHQ9ZS5maW5kKEE9PkEubmFtZT09PSJJSERSIik/LmRhdGE7aWYoIXQpcmV0dXJuIG51bGw7Y29uc3Qgbj1lLmZpbmRJbmRleChBPT5BLm5hbWU9PT0iSURBVCJ8fEEubmFtZT09PSJmZEFUIiksaT1lLnNsaWNlKDAsbikuZmlsdGVyKEE9PiFbIklIRFIiLCJhY1RMIiwiZmNUTCJdLmluY2x1ZGVzKEEubmFtZSkpLm1hcChBPT5RKEEubmFtZSxBLmRhdGEpKSxsPVtdO2xldCByPW51bGw7Zm9yKGNvbnN0IEEgb2YgZSlpZihBLm5hbWU9PT0iZmNUTCIpe3ImJmwucHVzaChyKTtjb25zdCB1PW5ldyBEYXRhVmlldyhBLmRhdGEuYnVmZmVyLEEuZGF0YS5ieXRlT2Zmc2V0LEEuZGF0YS5ieXRlTGVuZ3RoKSx4PXUuZ2V0VWludDE2KDIyKXx8MTAwO3I9e3c6dS5nZXRVaW50MzIoNCksaDp1LmdldFVpbnQzMig4KSx4OnUuZ2V0VWludDMyKDEyKSx5OnUuZ2V0VWludDMyKDE2KSxkZWxheTpNYXRoLm1heCgxMCx1LmdldFVpbnQxNigyMCkveCoxZTMpLGRpc3Bvc2U6QS5kYXRhWzI0XSxibGVuZDpBLmRhdGFbMjVdLGRhdGE6W119fWVsc2UgaWYoQS5uYW1lPT09IklEQVQiKXtpZighcil7Y29uc3QgdT1uZXcgRGF0YVZpZXcodC5idWZmZXIsdC5ieXRlT2Zmc2V0LHQuYnl0ZUxlbmd0aCk7cj17dzp1LmdldFVpbnQzMigwKSxoOnUuZ2V0VWludDMyKDQpLHg6MCx5OjAsZGVsYXk6MTAwLGRpc3Bvc2U6MCxibGVuZDowLGRhdGE6W119fXIuZGF0YS5wdXNoKEEuZGF0YSl9ZWxzZSBBLm5hbWU9PT0iZmRBVCImJnI/LmRhdGEucHVzaChBLmRhdGEuc2xpY2UoNCkpO2lmKHImJmwucHVzaChyKSxsLmxlbmd0aDwyKXJldHVybiBudWxsO2NvbnN0IG89bmV3IERhdGFWaWV3KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0LmJ5dGVMZW5ndGgpLGQ9by5nZXRVaW50MzIoMCksZj1vLmdldFVpbnQzMig0KSxzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGM9cy5nZXRDb250ZXh0KCIyZCIpLE09W10scD1bXTtzLndpZHRoPWQscy5oZWlnaHQ9Zjtmb3IoY29uc3QgQSBvZiBsKXtsZXQgdTtBLmRpc3Bvc2U9PT0yJiYodT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx1LndpZHRoPWQsdS5oZWlnaHQ9Zix1LmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKHMsMCwwKSk7Y29uc3QgeD10LnNsaWNlKCkseT1uZXcgRGF0YVZpZXcoeC5idWZmZXIpO3kuc2V0VWludDMyKDAsQS53KSx5LnNldFVpbnQzMig0LEEuaCk7Y29uc3QgbT1IKFtuZXcgVWludDhBcnJheShbMTM3LDgwLDc4LDcxLDEzLDEwLDI2LDEwXSksUSgiSUhEUiIseCksLi4uaSxRKCJJREFUIixIKEEuZGF0YSkpLFEoIklFTkQiLG5ldyBVaW50OEFycmF5KV0pLGI9YXdhaXQgdWUobSk7QS5ibGVuZD09PTAmJmMuY2xlYXJSZWN0KEEueCxBLnksQS53LEEuaCksYy5kcmF3SW1hZ2UoYixBLngsQS55KSxiLmNsb3NlPy4oKTtjb25zdCBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2cud2lkdGg9ZCxnLmhlaWdodD1mLGcuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UocywwLDApLE0ucHVzaChnKSxwLnB1c2goQS5kZWxheSksQS5kaXNwb3NlPT09MT9jLmNsZWFyUmVjdChBLngsQS55LEEudyxBLmgpOkEuZGlzcG9zZT09PTImJihjLmNsZWFyUmVjdCgwLDAsZCxmKSxjLmRyYXdJbWFnZSh1LDAsMCkpfXJldHVybntmcmFtZXM6TSxkdXJhdGlvbnM6cH19Y29uc3QgVT1BcnJheS5pc0FycmF5KGguYXNzZXRzKT9oLmFzc2V0cy5zbGljZSgpOltdO2Z1bmN0aW9uIGdlKGEpe2Zvcihjb25zdCBlIG9mIGEuYW5pbWF0aW9uPy5mcmFtZXN8fFtdKXtpZighZS5kYXRhVXJsKWNvbnRpbnVlO2NvbnN0IHQ9ZS5hc3NldEtleXx8ZS5kYXRhVXJsO1Uuc29tZShuPT5uLmtleT09PXQpfHxVLnB1c2goe2tleTp0LHVybDplLmRhdGFVcmwsbmF0aXZlOiEhYS5hbmltYXRpb24/Lm5hdGl2ZVNvdXJjZSxtaW1lOmUubWltZVR5cGV8fGEuc291cmNlLm1pbWVUeXBlfSl9fWZvcihjb25zdCBhIG9mIGgubGF5ZXJzKWdlKGEpO2lmKGgucnVudGltZS5zaWduYXR1cmU/LmVuYWJsZWQpZm9yKGNvbnN0IGEgb2YgaC5ydW50aW1lLnNpZ25hdHVyZS5mcmFtZXN8fFtdKWEuZGF0YVVybCYmIVUuc29tZShlPT5lLmtleT09PShhLmFzc2V0S2V5fHxhLmRhdGFVcmwpKSYmVS5wdXNoKHtrZXk6YS5hc3NldEtleXx8YS5kYXRhVXJsLHVybDphLmRhdGFVcmwsbmF0aXZlOiExLG1pbWU6ImltYWdlL3BuZyJ9KTtsZXQgXz0wO2Z1bmN0aW9uIE1lKCl7XysrLCEoXzxVLmxlbmd0aCkmJihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgicnVudGltZS1yZWFkeSIpLHJlcXVlc3RBbmltYXRpb25GcmFtZShWKSl9ZnVuY3Rpb24gVihhKXtoZShhKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoVil9ZnVuY3Rpb24gWShhKXtyZXR1cm4gbmV3IFByb21pc2UoZT0+e2NvbnN0IHQ9bmV3IEltYWdlO3Qub25sb2FkPSgpPT5lKHQpLHQub25lcnJvcj0oKT0+ZSh0KSx0LnNyYz1hLnVybH0pfWFzeW5jIGZ1bmN0aW9uIGJlKGEpe2lmKCFhLm5hdGl2ZSlyZXR1cm4gWShhKTtjb25zdCBlPWF3YWl0KGF3YWl0IGZldGNoKGEudXJsKSkuYXJyYXlCdWZmZXIoKTtpZih0eXBlb2YgSW1hZ2VEZWNvZGVyPiJ1Iil7aWYoKGEubWltZXx8ImltYWdlL3BuZyIpPT09ImltYWdlL3BuZyIpe2NvbnN0IHI9YXdhaXQgWChlKTtpZihyKXJldHVybiByfXJldHVybiBZKGEpfWNvbnN0IHQ9bmV3IEltYWdlRGVjb2Rlcih7ZGF0YTplLHR5cGU6YS5taW1lfHwiaW1hZ2UvcG5nIn0pO2F3YWl0IHQudHJhY2tzLnJlYWR5O2NvbnN0IG49dC50cmFja3Muc2VsZWN0ZWRUcmFjay5mcmFtZUNvdW50LGk9W10sbD1bXTtmb3IobGV0IHI9MDtyPG47cisrKXtjb25zdCBvPShhd2FpdCB0LmRlY29kZSh7ZnJhbWVJbmRleDpyLGNvbXBsZXRlRnJhbWVzT25seTohMH0pKS5pbWFnZSxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Qud2lkdGg9by5kaXNwbGF5V2lkdGgsZC5oZWlnaHQ9by5kaXNwbGF5SGVpZ2h0LGQuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UobywwLDApLGwucHVzaChNYXRoLm1heCgxMCwoby5kdXJhdGlvbnx8MWU1KS8xZTMpKSxvLmNsb3NlKCksaS5wdXNoKGQpfXJldHVybiB0LmNsb3NlKCkse2ZyYW1lczppLGR1cmF0aW9uczpsfX1VLmxlbmd0aHx8cmVxdWVzdEFuaW1hdGlvbkZyYW1lKFYpO2Zvcihjb25zdCBhIG9mIFUpYmUoYSkuY2F0Y2goYXN5bmMoKT0+e2lmKGEubmF0aXZlJiYoYS5taW1lfHwiaW1hZ2UvcG5nIik9PT0iaW1hZ2UvcG5nIil0cnl7Y29uc3QgZT1hd2FpdCBYKGF3YWl0KGF3YWl0IGZldGNoKGEudXJsKSkuYXJyYXlCdWZmZXIoKSk7aWYoZSlyZXR1cm4gZX1jYXRjaHt9cmV0dXJuIFkoYSl9KS50aGVuKGU9PntxLnNldChhLmtleSxlKSxNZSgpfSl9KSgpOwo8L3NjcmlwdD48L2JvZHk+PC9odG1sPg==