PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiCnhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIKeG1sbnM6cD0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6cG93ZXJwb2ludCIKeG1sbnM6b2E9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOmFjdGl2YXRpb24iCnhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KCjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KPG1ldGEgbmFtZT1Qcm9nSWQgY29udGVudD1Qb3dlclBvaW50LlNsaWRlPgo8bWV0YSBuYW1lPUdlbmVyYXRvciBjb250ZW50PSJNaWNyb3NvZnQgUG93ZXJQb2ludCAxMCI+CjxsaW5rIHJlbD1GaWxlLUxpc3QgaHJlZj0iRWNsaXBzZUNvbjIwMDdfTG9uZ1RhbGtfZmlsZXMvZmlsZWxpc3QueG1sIj4KPGxpbmsgcmVsPVByZXZpZXcgaHJlZj0iRWNsaXBzZUNvbjIwMDdfTG9uZ1RhbGtfZmlsZXMvcHJldmlldy53bWYiPgo8bGluayByZWw9RWRpdC1UaW1lLURhdGEgaHJlZj0iRWNsaXBzZUNvbjIwMDdfTG9uZ1RhbGtfZmlsZXMvZWRpdGRhdGEubXNvIj4KPGxpbmsgcmVsPU9MRS1PYmplY3QtRGF0YSBocmVmPSJFY2xpcHNlQ29uMjAwN19Mb25nVGFsa19maWxlcy9vbGVkYXRhLm1zbyI+Cjx0aXRsZT5XaGF0IGRvIFlPVSB3YW50IFVNTCB0byBiZT88L3RpdGxlPgo8IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KIDxvOkRvY3VtZW50UHJvcGVydGllcz4KICA8bzpTdWJqZWN0PkxvbmcgVGFsazwvbzpTdWJqZWN0PgogIDxvOkF1dGhvcj5LZW5uIEh1c3NleTwvbzpBdXRob3I+CiAgPG86TGFzdEF1dGhvcj5LZW5uIEh1c3NleTwvbzpMYXN0QXV0aG9yPgogIDxvOlJldmlzaW9uPjQxMjwvbzpSZXZpc2lvbj4KICA8bzpUb3RhbFRpbWU+NzQ1NTwvbzpUb3RhbFRpbWU+CiAgPG86Q3JlYXRlZD4yMDAyLTA4LTIzVDE1OjI2OjA4WjwvbzpDcmVhdGVkPgogIDxvOkxhc3RTYXZlZD4yMDA3LTAzLTA4VDE5OjA4OjUzWjwvbzpMYXN0U2F2ZWQ+CiAgPG86V29yZHM+MzExMjwvbzpXb3Jkcz4KICA8bzpQcmVzZW50YXRpb25Gb3JtYXQ+T24tc2NyZWVuIFNob3c8L286UHJlc2VudGF0aW9uRm9ybWF0PgogIDxvOkNvbXBhbnk+SUJNIFJhdGlvbmFsIFNvZnR3YXJlPC9vOkNvbXBhbnk+CiAgPG86Qnl0ZXM+MTAyMjk3OTwvbzpCeXRlcz4KICA8bzpQYXJhZ3JhcGhzPjkwMDwvbzpQYXJhZ3JhcGhzPgogIDxvOlNsaWRlcz4xMDE8L286U2xpZGVzPgogIDxvOlZlcnNpb24+MTAuNjgyNTwvbzpWZXJzaW9uPgogPC9vOkRvY3VtZW50UHJvcGVydGllcz4KIDxvOk9mZmljZURvY3VtZW50U2V0dGluZ3M+CiAgPG86U2hvd1Jldmlld2luZ1Rvb2xiYXIvPgogIDxvOlBpeGVsc1BlckluY2g+ODA8L286UGl4ZWxzUGVySW5jaD4KIDwvbzpPZmZpY2VEb2N1bWVudFNldHRpbmdzPgo8L3htbD48IVtlbmRpZl0tLT4KPGxpbmsgcmVsPVByZXNlbnRhdGlvbi1YTUwgaHJlZj0iRWNsaXBzZUNvbjIwMDdfTG9uZ1RhbGtfZmlsZXMvcHJlcy54bWwiPgo8bWV0YSBuYW1lPURlc2NyaXB0aW9uIGNvbnRlbnQ9IjMvOC8yMDA3OiBXaGF0IGRvIFlPVSB3YW50IFVNTJkgdG8gYmU/Ij4KPG1ldGEgaHR0cC1lcXVpdj1leHBpcmVzIGNvbnRlbnQ9MD4KPCFbaWYgIXBwdF0+PHNjcmlwdD4KPCEtLQoJdmFyIHZlciA9IDAsIGFwcFZlciA9IG5hdmlnYXRvci5hcHBWZXJzaW9uLCBtc2llID0gYXBwVmVyLmluZGV4T2YoICJNU0lFICIgKQoJdmFyIG1zaWVXaW4zMSA9IChhcHBWZXIuaW5kZXhPZiggIldpbmRvd3MgMy4xIiApID49IDApLCBpc01hYyA9IChhcHBWZXIuaW5kZXhPZigiTWFjaW50b3NoIikgPj0gMCkKCWlmKCBtc2llID49IDAgKQoJCXZlciA9IHBhcnNlRmxvYXQoIGFwcFZlci5zdWJzdHJpbmcoIG1zaWUrNSwgYXBwVmVyLmluZGV4T2YgKCAiOyIsIG1zaWUgKSApICkKCWVsc2UKCQl2ZXIgPSBwYXJzZUludCggYXBwVmVyICkKCWJyb3dzZXJTdXBwb3J0ZWQ9MAoJaWYoICFpc01hYyAmJiB2ZXIgPj0gNCAmJiBtc2llID49IDAgKSB7CgkJYnJvd3NlclN1cHBvcnRlZD0xCgkJd2luZG93LmxvY2F0aW9uLnJlcGxhY2UoICdFY2xpcHNlQ29uMjAwN19Mb25nVGFsa19maWxlcy9mcmFtZS5odG1sJytkb2N1bWVudC5sb2NhdGlvbi5oYXNoICkKCX0KLy8tLT4KPC9zY3JpcHQ+CjwhW2VuZGlmXT4KPC9oZWFkPgoKPGJvZHk+CjxzY3JpcHQ+PCEtLQoKaWYoIGJyb3dzZXJTdXBwb3J0ZWQgKQoJZG9jdW1lbnQud3JpdGVsbignPGRpdiBzdHlsZT0idmlzaWJpbGl0eTpoaWRkZW4iPicpOwoKLy8tLT48L3NjcmlwdD48Zm9udCBmYWNlPUFyaWFsIHNpemU9Mj48Yj4KCjxwPlRoaXMgcHJlc2VudGF0aW9uIGNvbnRhaW5zIGNvbnRlbnQgdGhhdCB5b3VyIGJyb3dzZXIgbWF5IG5vdCBiZSBhYmxlIHRvIHNob3cKcHJvcGVybHkuIFRoaXMgcHJlc2VudGF0aW9uIHdhcyBvcHRpbWl6ZWQgZm9yIG1vcmUgcmVjZW50IHZlcnNpb25zIG9mIE1pY3Jvc29mdApJbnRlcm5ldCBFeHBsb3Jlci48L3A+Cgo8cD5JZiB5b3Ugd291bGQgbGlrZSB0byBwcm9jZWVkIGFueXdheSwgY2xpY2sgPGEKaHJlZj0iRWNsaXBzZUNvbjIwMDdfTG9uZ1RhbGtfZmlsZXMvZnJhbWUuaHRtbCI+aGVyZTwvYT4uPC9wPgoKPC9iPjwvZm9udD48c2NyaXB0PjwhLS0KCmlmKCBicm93c2VyU3VwcG9ydGVkICkKCWRvY3VtZW50LndyaXRlbG4oJzwvZGl2PicpOwoKLy8tLT48L3NjcmlwdD4KPC9ib2R5PgoKPC9odG1sPgo=