Results of code analysis tools
Rafael dos Santos <[email protected]> Mon, 27 Jul 2015 09:32:24 -0400 (EDT)
| Newsgroups | gmane.linux.tools.diag.devel |
|---|---|
| Message-ID | <[email protected]> |
------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Hi, I ran some analysis tools (clang and cppcheck) for the latest tag of each project under the linux-diag codebase. You can find the results attached. I hope they can be useful. As time allows it, I might submit some patches in the future. Att -- Rafael Fonseca ------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; name=servicelog-results.txt Content-Disposition: attachment; filename=servicelog-results.txt Content-Transfer-Encoding: base64 RXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9sb2dfcmVwYWly X2FjdGlvbi5jOjkxOjIyOiB3YXJuaW5nOiB2YXJpYWJsZSAnZHVtbXknIHNldCBidXQgbm90IHVz ZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgIGNoYXIgKmRhdGUgPSBOVUxMLCAqZHVt bXk7CiMgICAgICAgICAgICAgICAgICAgICAgXgojICAgODl8ICAgCUZJTEUgKmZwOwojICAgOTB8 ICAgCWludCBvcHRpb25faW5kZXgsIHJjLCBxdWlldD0wOwojICAgOTF8LT4gCWNoYXIgKmRhdGUg PSBOVUxMLCAqZHVtbXk7CiMgICA5MnwgICAJY2hhciBjbWRbQlVGX1NJWkVdLCBidWZbQlVGX1NJ WkVdOwojICAgOTN8ICAgCXVpbnQ2NF90IGlkOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNl cnZpY2Vsb2ctMS4xLjEzL3NyYy9sb2dfcmVwYWlyX2FjdGlvbi5jOjk4OjY6IHdhcm5pbmc6IHZh cmlhYmxlICdhcGlfdmVyc2lvbicgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12 YXJpYWJsZV0KIyAgaW50IGFwaV92ZXJzaW9uID0gMDsgIC8vIFNob3J0IGZvciB2ZXJzaW9uIDAu Mi45CiMgICAgICBeCiMgICA5NnwgICAJc3RydWN0IHNsX2V2ZW50ICpldmVudHMgPSBOVUxMOwoj ICAgOTd8ICAgCXRpbWVfdCBlcG9jaDsKIyAgIDk4fC0+IAlpbnQgYXBpX3ZlcnNpb24gPSAwOyAg Ly8gU2hvcnQgZm9yIHZlcnNpb24gMC4yLjkKIyAgIDk5fCAgIAlpbnQgcGxhdGZvcm0gPSAwOwoj ICAxMDB8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3Jj L2xvZ19yZXBhaXJfYWN0aW9uLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2 aWNlbG9nLTEuMS4xMy9zcmMvbG9nX3JlcGFpcl9hY3Rpb24uYzoyMzI6NTogd2FybmluZzogZm9y bWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBp bnQnLCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAg IGFyZ3ZbMF0sIGlkKTsKIyAgICAgXgojICAyMzB8ICAgCQlpZiAoIXF1aWV0KSB7CiMgIDIzMXwg ICAJCQlmcHJpbnRmKHN0ZG91dCwgIiVzOiBzZXJ2aWNlbG9nIHJlY29yZCBJRCA9ICVsbHUuXG4i LAojICAyMzJ8LT4gCQkJCWFyZ3ZbMF0sIGlkKTsKIyAgMjMzfCAgIAkJCWZwcmludGYoc3Rkb3V0 LCAiXG5UaGUgZm9sbG93aW5nIGV2ZW50cyB3ZXJlICIKIyAgMjM0fCAgIAkJCQkicmVwYWlyZWQ6 XG5cbiIpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9z ZXJ2aWNlbG9nLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2aWNlbG9nLTEu MS4xMy9zcmMvc2VydmljZWxvZy5jOjI1MDo2OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVj dHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVu dCAzIGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICAgICIlZFxuIiwgZS0+aWQs IGUtPnR5cGUpOwojICAgICAgXgojICAyNDh8ICAgCQkJZGVmYXVsdDoKIyAgMjQ5fCAgIAkJCQlm cHJpbnRmKHN0ZGVyciwgIkV2ZW50ICVsbHUgaGFzIHVua25vd24gdHlwZSAiCiMgIDI1MHwtPiAJ CQkJCSIlZFxuIiwgZS0+aWQsIGUtPnR5cGUpOwojICAyNTF8ICAgCQkJfQojICAyNTJ8ICAgCgpF cnJvcjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3JjL3NlcnZpY2Vsb2df bm90aWZ5LmM6MTU3OjY6IHdhcm5pbmc6IHZhcmlhYmxlICdmbGFnX3R5cGUnIHNldCBidXQgbm90 IHVzZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgIGludCBmbGFnX3R5cGU9MCwgZmxh Z19jbWQ9MCwgZmxhZ19tYXRjaD0wLCBmbGFnX2lkPTAsIGZsYWdfbWV0aG9kPTA7CiMgICAgICBe CiMgIDE1NXwgICB7CiMgIDE1NnwgICAJaW50IG9wdGlvbl9pbmRleCwgcmMsIGFjdGlvbj1BQ1RJ T05fVU5TUEVDSUZJRUQ7CiMgIDE1N3wtPiAJaW50IGZsYWdfdHlwZT0wLCBmbGFnX2NtZD0wLCBm bGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRob2Q9MDsKIyAgMTU4fCAgIAlpbnQgYWRk X2ZsYWdzPTAsIG1ldGhvZD0wLCBzZXJ2aWNhYmxlID0gMDsKIyAgMTU5fCAgIAoKRXJyb3I6IENP TVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9zZXJ2aWNlbG9nX25vdGlmeS5j OjE1NzoxOTogd2FybmluZzogdmFyaWFibGUgJ2ZsYWdfY21kJyBzZXQgYnV0IG5vdCB1c2VkIFst V3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICBpbnQgZmxhZ190eXBlPTAsIGZsYWdfY21kPTAs IGZsYWdfbWF0Y2g9MCwgZmxhZ19pZD0wLCBmbGFnX21ldGhvZD0wOwojICAgICAgICAgICAgICAg ICAgIF4KIyAgMTU1fCAgIHsKIyAgMTU2fCAgIAlpbnQgb3B0aW9uX2luZGV4LCByYywgYWN0aW9u PUFDVElPTl9VTlNQRUNJRklFRDsKIyAgMTU3fC0+IAlpbnQgZmxhZ190eXBlPTAsIGZsYWdfY21k PTAsIGZsYWdfbWF0Y2g9MCwgZmxhZ19pZD0wLCBmbGFnX21ldGhvZD0wOwojICAxNTh8ICAgCWlu dCBhZGRfZmxhZ3M9MCwgbWV0aG9kPTAsIHNlcnZpY2FibGUgPSAwOwojICAxNTl8ICAgCgpFcnJv cjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3JjL3NlcnZpY2Vsb2dfbm90 aWZ5LmM6MTU3OjMxOiB3YXJuaW5nOiB2YXJpYWJsZSAnZmxhZ19tYXRjaCcgc2V0IGJ1dCBub3Qg dXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KIyAgaW50IGZsYWdfdHlwZT0wLCBmbGFn X2NtZD0wLCBmbGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRob2Q9MDsKIyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDE1NXwgICB7CiMgIDE1NnwgICAJaW50IG9wdGlv bl9pbmRleCwgcmMsIGFjdGlvbj1BQ1RJT05fVU5TUEVDSUZJRUQ7CiMgIDE1N3wtPiAJaW50IGZs YWdfdHlwZT0wLCBmbGFnX2NtZD0wLCBmbGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRo b2Q9MDsKIyAgMTU4fCAgIAlpbnQgYWRkX2ZsYWdzPTAsIG1ldGhvZD0wLCBzZXJ2aWNhYmxlID0g MDsKIyAgMTU5fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEz L3NyYy9zZXJ2aWNlbG9nX25vdGlmeS5jOjE1Nzo1Njogd2FybmluZzogdmFyaWFibGUgJ2ZsYWdf bWV0aG9kJyBzZXQgYnV0IG5vdCB1c2VkIFstV3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICBp bnQgZmxhZ190eXBlPTAsIGZsYWdfY21kPTAsIGZsYWdfbWF0Y2g9MCwgZmxhZ19pZD0wLCBmbGFn X21ldGhvZD0wOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiMgIDE1NXwgICB7CiMgIDE1NnwgICAJaW50IG9wdGlvbl9pbmRleCwgcmMs IGFjdGlvbj1BQ1RJT05fVU5TUEVDSUZJRUQ7CiMgIDE1N3wtPiAJaW50IGZsYWdfdHlwZT0wLCBm bGFnX2NtZD0wLCBmbGFnX21hdGNoPTAsIGZsYWdfaWQ9MCwgZmxhZ19tZXRob2Q9MDsKIyAgMTU4 fCAgIAlpbnQgYWRkX2ZsYWdzPTAsIG1ldGhvZD0wLCBzZXJ2aWNhYmxlID0gMDsKIyAgMTU5fCAg IAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9zZXJ2aWNl bG9nX25vdGlmeS5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnbWFpbicKc2VydmljZWxvZy0x LjEuMTMvc3JjL3NlcnZpY2Vsb2dfbm90aWZ5LmM6NDc3OjY6IHdhcm5pbmc6IGZvcm1hdCAnJWxs dScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0 IGFyZ3VtZW50IDIgaGFzIHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICAgcHJpbnRm KCJFdmVudCBOb3RpZmljYXRpb24gUmVnaXN0cmF0aW9uIHN1Y2Nlc3NmdWwgKGlkOiAlbGx1KVxu IiwgaWQpOwojICAgICAgXgojICA0NzV8ICAgCQkJCXNlcnZpY2Vsb2dfbm90aWZ5X2ZyZWUobm90 aWZ5KTsKIyAgNDc2fCAgIAkJCQlpZiAocmMgPT0gMCkgewojICA0Nzd8LT4gCQkJCQlwcmludGYo IkV2ZW50IE5vdGlmaWNhdGlvbiBSZWdpc3RyYXRpb24gc3VjY2Vzc2Z1bCAoaWQ6ICVsbHUpXG4i LCBpZCk7CiMgIDQ3OHwgICAJCQkJfQojICA0Nzl8ICAgCQkJCWVsc2UgewoKRXJyb3I6IENMQU5H X1dBUk5JTkc6CnNlcnZpY2Vsb2ctMS4xLjEzL3NyYy9zZXJ2aWNlbG9nX25vdGlmeS5jOjQ4MDo2 OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbm90aWZ5 JwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJy LCAiJXNcbiIsIHNlcnZpY2Vsb2dfZXJyb3Ioc2VydmxvZykpOwojICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn4KIyAgNDc4fCAgIAkJCQl9CiMgIDQ3OXwgICAJ CQkJZWxzZSB7CiMgIDQ4MHwtPiAJCQkJCWZwcmludGYoc3RkZXJyLCAiJXNcbiIsIHNlcnZpY2Vs b2dfZXJyb3Ioc2VydmxvZykpOwojICA0ODF8ICAgCQkJCQlyYyA9IDI7CiMgIDQ4MnwgICAJCQkJ CWdvdG8gZXJyX291dDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4x My9zcmMvc2VydmljZWxvZ19ub3RpZnkuYzo1MTI6Njogd2FybmluZzogZm9ybWF0ICclbGx1JyBl eHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJn dW1lbnQgMiBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgICBwcmludGYoIlJl cGFpciBOb3RpZmljYXRpb24gUmVnaXN0cmF0aW9uIHN1Y2Nlc3NmdWwgKGlkOiAlbGx1KVxuIiwg aWQpOwojICAgICAgXgojICA1MTB8ICAgCQkJCXNlcnZpY2Vsb2dfbm90aWZ5X2ZyZWUobm90aWZ5 KTsKIyAgNTExfCAgIAkJCQlpZiAocmMgPT0gMCkgewojICA1MTJ8LT4gCQkJCQlwcmludGYoIlJl cGFpciBOb3RpZmljYXRpb24gUmVnaXN0cmF0aW9uIHN1Y2Nlc3NmdWwgKGlkOiAlbGx1KVxuIiwg aWQpOwojICA1MTN8ICAgCQkJCX0KIyAgNTE0fCAgIAkJCQllbHNlIHsKCkVycm9yOiBDT01QSUxF Ul9XQVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4xMy9zcmMvc2VydmljZWxvZ19ub3RpZnkuYzo1NTI6 Nzogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcg bG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgMyBoYXMgdHlwZSAndWludDY0X3QnIFst V2Zvcm1hdD1dCiMgICAgICAgImlkICglbGx1KS5cbiIsIGlkKTsKIyAgICAgICBeCiMgIDU1MHwg ICAJCQkJCWZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGZpbmQgYSByZWdpc3RlcmVkICIKIyAg NTUxfCAgIAkJCQkJCSJub3RpZmljYXRpb24gdG9vbCB3aXRoIHRoZSBzcGVjaWZpZWQgIgojICA1 NTJ8LT4gCQkJCQkJImlkICglbGx1KS5cbiIsIGlkKTsKIyAgNTUzfCAgIAkJCQkJcmMgPSAxOwoj ICA1NTR8ICAgCQkJCQlnb3RvIGVycl9vdXQ7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKc2Vy dmljZWxvZy0xLjEuMTMvc3JjL3NlcnZpY2Vsb2dfbm90aWZ5LmM6NjE0OjY6IHdhcm5pbmc6IGZv cm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQg aW50JywgYnV0IGFyZ3VtZW50IDMgaGFzIHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAg ICAgImlkICglbGx1KS5cbiIsIGlkKTsKIyAgICAgIF4KIyAgNjEyfCAgIAkJCQlmcHJpbnRmKHN0 ZGVyciwgIkNvdWxkIG5vdCBmaW5kIGEgcmVnaXN0ZXJlZCAiCiMgIDYxM3wgICAJCQkJCSJub3Rp ZmljYXRpb24gdG9vbCB3aXRoIHRoZSBzcGVjaWZpZWQgIgojICA2MTR8LT4gCQkJCQkiaWQgKCVs bHUpLlxuIiwgaWQpOwojICA2MTV8ICAgCQkJCXJjID0gMTsKIyAgNjE2fCAgIAkJCQlnb3RvIGVy cl9vdXQ7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKc2VydmljZWxvZy0xLjEuMTMvc3JjL3Ns b2dfY29tbW9uX2V2ZW50LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2aWNl bG9nLTEuMS4xMy9zcmMvc2xvZ19jb21tb25fZXZlbnQuYzoyMjc6Mzogd2FybmluZzogZm9ybWF0 ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQn LCBidXQgYXJndW1lbnQgMiBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICBwcmlu dGYoIkxvZ2dlZCBldmVudCBudW1iZXIgJWxsdVxuIiwgZXZlbnRfaWQpOwojICAgXgojICAyMjV8 ICAgCiMgIDIyNnwgICAJaWYgKHZlcmJvc2UpIHsKIyAgMjI3fC0+IAkJcHJpbnRmKCJMb2dnZWQg ZXZlbnQgbnVtYmVyICVsbHVcbiIsIGV2ZW50X2lkKTsKIyAgMjI4fCAgIAl9CiMgIDIyOXwgICAK CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4xMy9zcmMvdjI5X3NlcnZp Y2Vsb2dfbWFuYWdlLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdtYWluJwpzZXJ2aWNlbG9n LTEuMS4xMy9zcmMvdjI5X3NlcnZpY2Vsb2dfbWFuYWdlLmM6OTA6ODogd2FybmluZzogdmFyaWFi bGUgJ3RtcCcgc2V0IGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtYnV0LXNldC12YXJpYWJsZV0KIyAg Y2hhciAqdG1wOwojICAgICAgICBeCiMgICA4OHwgICAJaW50IHBsYXRmb3JtID0gMDsKIyAgIDg5 fCAgIAljaGFyIGJ1ZlsxMjRdOwojICAgOTB8LT4gCWNoYXIgKnRtcDsKIyAgIDkxfCAgIAljaGFy ICpuZXh0X2NoYXI7CiMgICA5MnwgICAJdWludDMyX3QgbnVtPTAsIG51bV9yZXBhaXJlZD0wLCBu dW1fdW5yZXBhaXJlZD0wLCBudW1faW5mbz0wLCBudW1fcmE9MDsKCkVycm9yOiBDT01QSUxFUl9X QVJOSU5HOgpzZXJ2aWNlbG9nLTEuMS4xMy9zcmMvdjI5X3NlcnZpY2Vsb2dfbWFuYWdlLmM6Mzgx Ojk6IHdhcm5pbmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnZmdldHMnLCBkZWNsYXJlZCB3 aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgICBm Z2V0cyhidWYsIDgwLCBzdGRpbik7CiMgICAgICAgICBeCiMgIDM3OXwgICAJCQkgICAgICAgYWdl LCBhZ2UpOwojICAzODB8ICAgCQkJcHJpbnRmKCJFbnRlciAneWVzJyB0byBjb250aW51ZSA+ICIp OwojICAzODF8LT4gCQkJZmdldHMoYnVmLCA4MCwgc3RkaW4pOwojICAzODJ8ICAgCQkJaWYgKHN0 cmNhc2VjbXAoYnVmLCAieWVzXG4iKSkgewojICAzODN8ICAgCQkJCXByaW50ZigiT3BlcmF0aW9u IGNhbmNlbGxlZC5cbiIpOwo= ------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; name=ppp64-diag-results.txt Content-Disposition: attachment; filename=ppp64-diag-results.txt Content-Transfer-Encoding: base64 RXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvZGlhZ3MvZW5jbF9jb21tb24u Yzo1Nzg6Mjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkg J2VudHJ5JwojICAgICAgICBzZXJ2aWNlbG9nX2Nsb3NlKHNsb2cpOwojICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+CiMgIDU3NnwgICAJcmMgPSBzZXJ2aWNlbG9nX2V2ZW50X2xvZyhzbG9n LCBlbnRyeSwgJmtleSk7CiMgIDU3N3wgICAJc2VydmljZWxvZ19ldmVudF9mcmVlKGVudHJ5KTsK IyAgNTc4fC0+IAlzZXJ2aWNlbG9nX2Nsb3NlKHNsb2cpOwojICA1Nzl8ICAgCiMgIDU4MHwgICAJ aWYgKHJjICE9IDApIHsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45 L2RpYWdzL2hvbWVydW4uYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2hyX3JlcG9ydF9mYXVs dHNfdG9fc3ZjbG9nJwpwcGM2NC1kaWFnLTIuNi45L2RpYWdzL2hvbWVydW4uYzoyOTY6Njogd2Fy bmluZzogJ3JjJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1X bWF5YmUtdW5pbml0aWFsaXplZF0KIyAgIGlmIChyYyA9PSAwKQojICAgICAgXgojICAyOTR8ICAg CQljYWxsb3V0cyA9IE5VTEw7CiMgIDI5NXwgICAJCWhyX2NyZWF0ZV9lc21fY2FsbG91dCgmY2Fs bG91dHMsIGxvY2F0aW9uLCBpLCBmZCk7CiMgIDI5NnwtPiAJCWlmIChyYyA9PSAwKQojICAyOTd8 ICAgCQkJc2VydmV2ZW50KHNybiwgc2V2LCBkZXNjcmlwdGlvbiwgdnBkLCBjYWxsb3V0cyk7CiMg IDI5OHwgICAJfQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvZWxh L2NhdGFsb2dzLmNwcDogc2NvcGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9uICd2b2lkIE1hdGNo VmFyaWFudDo6Y29tcHV0ZV9yZWdleF90ZXh0KCknCnBwYzY0LWRpYWctMi42LjkvZWxhL2NhdGFs b2dzLmNwcDo5MjA6MzY6IHdhcm5pbmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnY2hhciog ZmdldHMoY2hhciosIGludCwgRklMRSopJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91 bnVzZWRfcmVzdWx0IFstV3VudXNlZC1yZXN1bHRdCiMgIGZnZXRzKHJlZ2V4X2NzdHIsUkVHRVhf TUFYTEVOLCBpbik7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDkx OHwgICAJfQojICA5MTl8ICAgCiMgIDkyMHwtPiAJZmdldHMocmVnZXhfY3N0cixSRUdFWF9NQVhM RU4sIGluKTsKIyAgOTIxfCAgIAojICA5MjJ8ICAgCXNwY2xvc2UoaW4sIGNwaWQpOwoKRXJyb3I6 IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvZWxhL2RhdGUuYzogc2NvcGVfaGlu dDogSW4gZnVuY3Rpb24gJ3BhcnNlX2RhdGUnCnBwYzY0LWRpYWctMi42LjkvZWxhL2RhdGUuYzo3 MDoyODogd2FybmluZzogJ25vdycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlzIGZ1 bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgIGlmICgheXJfaW5fZm10ICYmIGRpZmZ0 aW1lKGRhdGUsIG5vdykgPiAwKSB7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICAg Njh8ICAgCQlyZXR1cm4gKHRpbWVfdCkgMDsKIyAgIDY5fCAgIAojICAgNzB8LT4gCWlmICgheXJf aW5fZm10ICYmIGRpZmZ0aW1lKGRhdGUsIG5vdykgPiAwKSB7CiMgICA3MXwgICAJCS8qIERhdGUg aXMgaW4gZnV0dXJlLiAgQXNzdW1lIGl0J3MgZnJvbSBsYXN0IHllYXIuICovCiMgICA3MnwgICAJ CXRtLnRtX2lzZHN0ID0gLTE7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0y LjYuOS9lbGEvbGV4LmV2LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICd5eV9idWZmZXJfc3Rh dGUqIGV2X3NjYW5fYnl0ZXMoY29uc3QgY2hhciosIHl5X3NpemVfdCknCnBwYzY0LWRpYWctMi42 LjkvZWxhL2xleC5ldi5jOjE3MzM6MTk6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWdu ZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICBm b3IgKCBpID0gMDsgaSA8IF95eWJ5dGVzX2xlbjsgKytpICkKIyAgICAgICAgICAgICAgICAgICBe CiMgMTczMXwgICAJCVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIGV2 X3NjYW5fYnl0ZXMoKSIgKTsKIyAxNzMyfCAgIAojIDE3MzN8LT4gCWZvciAoIGkgPSAwOyBpIDwg X3l5Ynl0ZXNfbGVuOyArK2kgKQojIDE3MzR8ICAgCQlidWZbaV0gPSB5eWJ5dGVzW2ldOwojIDE3 MzV8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9lbGEvbGV4 LnJyLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICd5eV9idWZmZXJfc3RhdGUqIHJyX3NjYW5f Ynl0ZXMoY29uc3QgY2hhciosIHl5X3NpemVfdCknCnBwYzY0LWRpYWctMi42LjkvZWxhL2xleC5y ci5jOjE2NzA6MTk6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2ln bmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICBmb3IgKCBpID0gMDsg aSA8IF95eWJ5dGVzX2xlbjsgKytpICkKIyAgICAgICAgICAgICAgICAgICBeCiMgMTY2OHwgICAJ CVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHJyX3NjYW5fYnl0ZXMo KSIgKTsKIyAxNjY5fCAgIAojIDE2NzB8LT4gCWZvciAoIGkgPSAwOyBpIDwgX3l5Ynl0ZXNfbGVu OyArK2kgKQojIDE2NzF8ICAgCQlidWZbaV0gPSB5eWJ5dGVzW2ldOwojIDE2NzJ8ICAgCgpFcnJv cjogQ0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9scGQvbHBfZGlhZy5jOjc2ODo5OiB3 YXJuaW5nOiBCcmFuY2ggY29uZGl0aW9uIGV2YWx1YXRlcyB0byBhIGdhcmJhZ2UgdmFsdWUKIyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlk ZW50ID8gSU5ESUNBVE9SX09GRiA6IElORElDQVRPUl9PTik7CiMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgojICA3NjZ8ICAgCQkJ fSBlbHNlIHsKIyAgNzY3fCAgIAkJCQlyYyA9IHNldF9pbmRpY2F0b3Jfc3RhdGUoSURFTlRfSU5E SUNBVE9SLCBsb2MsCiMgIDc2OHwtPiAJCQkJCQkJIGlkZW50ID8gSU5ESUNBVE9SX09GRiA6IElO RElDQVRPUl9PTik7CiMgIDc2OXwgICAKIyAgNzcwfCAgIAkJCQlpZiAocmMpIHsKCkVycm9yOiBD T01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L2xwZC9scF9kaWFnLmM6IHNjb3BlX2hp bnQ6IEluIGZ1bmN0aW9uICdzdGFydHVwX3dpbmRvdycKcHBjNjQtZGlhZy0yLjYuOS9scGQvbHBf ZGlhZy5jOjc3NzoxMTogd2FybmluZzogJ2xvYycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBp biB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgICAgICAgIGxvYy0+ Y29kZSwgaWRlbnQ/ICJPRkYiIDogIk9OIik7CiMgICAgICAgICAgIF4KcHBjNjQtZGlhZy0yLjYu OS9scGQvbHBfZGlhZy5jOjcyMToxOTogbm90ZTogJ2xvYycgd2FzIGRlY2xhcmVkIGhlcmUKIyAg c3RydWN0IGxvY19jb2RlICpsb2M7CiMgICAgICAgICAgICAgICAgICAgXgojICA3NzV8ICAgCQkJ CWN1cl9zdGF0ZVtpXSA9IGlkZW50ID8gJyAnIDogJ0knOwojICA3NzZ8ICAgCQkJCWluZGljYXRv cl9sb2dfd3JpdGUoIiVzIDogSWRlbnRpZnkgOiAlcyIsCiMgIDc3N3wtPiAJCQkJCQkgICAgbG9j LT5jb2RlLCBpZGVudD8gIk9GRiIgOiAiT04iKTsKIyAgNzc4fCAgIAkJCX0KIyAgNzc5fCAgIAkJ fSBlbHNlIGlmICghc3RyY21wKGRlc2MsICJsb2MiKSkgewoKRXJyb3I6IENMQU5HX1dBUk5JTkc6 CnBwYzY0LWRpYWctMi42LjkvbHBkL2xwX2RpYWcuYzo3ODA6MTk6IHdhcm5pbmc6IEJyYW5jaCBj b25kaXRpb24gZXZhbHVhdGVzIHRvIGEgZ2FyYmFnZSB2YWx1ZQojICAgICAgICAgICAgICAgICAg ICAgICAgY3VyX3N0YXRlW2ldID0gaWRlbnQ/ICdJJyA6ICcgJzsKIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5+fn5+CiMgIDc3OHwgICAJCQl9CiMgIDc3OXwgICAJCX0g ZWxzZSBpZiAoIXN0cmNtcChkZXNjLCAibG9jIikpIHsKIyAgNzgwfC0+IAkJCWN1cl9zdGF0ZVtp XSA9IGlkZW50PyAnSScgOiAnICc7CiMgIDc4MXwgICAJCX0KIyAgNzgyfCAgIAl9CgpFcnJvcjog Q09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9vcGFsX2VycmQvb3BhbC1lbG9nLXBh cnNlL29wYWwtZWxvZy1wYXJzZS5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAncmVhZF9lbG9n JwpwcGM2NC1kaWFnLTIuNi45L29wYWxfZXJyZC9vcGFsLWVsb2ctcGFyc2Uvb3BhbC1lbG9nLXBh cnNlLmM6MTQ5Ojc6IHdhcm5pbmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnY2hkaXInLCBk ZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3Vs dF0KIyAgY2hkaXIob3B0X3BsYXRmb3JtX2Rpcik7CiMgICAgICAgXgojICAxNDd8ICAgCWludCBw bGF0Zm9ybV9sb2dfZmQgPSAtMTsKIyAgMTQ4fCAgIAojICAxNDl8LT4gCWNoZGlyKG9wdF9wbGF0 Zm9ybV9kaXIpOwojICAxNTB8ICAgCWlmIChzdGF0KHBhdGgsICZzYnVmKSA9PSAtMSl7CiMgIDE1 MXwgICAJCWZwcmludGYoc3RkZXJyLCAiRXJyb3IgYWNjZXNzaW5nICVzXG4iLHBhdGgpOwoKRXJy b3I6IENQUENIRUNLX1dBUk5JTkcgKENXRS00MDEpOgpwcGM2NC1kaWFnLTIuNi45L29wYWxfZXJy ZC9vcGFsLWVsb2ctcGFyc2Uvb3BhbC1lbG9nLXBhcnNlLmM6MjQyOiBlcnJvclttZW1sZWFrXTog TWVtb3J5IGxlYWs6IGJ1ZmZlcgojICAyNDB8ICAgCXN6ID0gcmVhZF9lbG9nKGVsb2dfcGF0aCwg JmJ1ZmZlcik7CiMgIDI0MXwgICAJaWYoc3ogPCAwKSB7CiMgIDI0MnwtPiAJCXJldHVybiAtMTsK IyAgMjQzfCAgIAkvKiBNYWtlIHN1cmUgd2UgcmVhZCBtaW5pbXVtIGRhdGEgbmVlZGVkIGluIHRo aXMgZnVuY3Rpb24gKi8KIyAgMjQ0fCAgIAl9IGVsc2UgaWYgKHN6IDwgKEVMT0dfSURfT0ZGU0VU ICsgc2l6ZW9mKGxvZ2lkKSkpewoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42 Ljkvb3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9vcGFsLWVsb2ctcGFyc2UuYzozMTU6Mjogd2Fy bmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2J1ZmZlcicKIyAg ICAgICAgZnJlZShmaWxlbGlzdCk7CiMgICAgICAgIF5+fn4KIyAgMzEzfCAgIAkJZnJlZShmaWxl bGlzdFtpXSk7CiMgIDMxNHwgICAJfQojICAzMTV8LT4gCWZyZWUoZmlsZWxpc3QpOwojICAzMTZ8 ICAgCiMgIDMxN3wgICAJcmV0dXJuIHJldDsKCkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0Ut NDAxKToKcHBjNjQtZGlhZy0yLjYuOS9vcGFsX2VycmQvb3BhbC1lbG9nLXBhcnNlL29wYWwtZWxv Zy1wYXJzZS5jOjMzNDogZXJyb3JbbWVtbGVha106IE1lbW9yeSBsZWFrOiBidWZmZXIKIyAgMzMy fCAgIAojICAzMzN8ICAgCWlmIChzeiA8PSAwKXsKIyAgMzM0fC0+IAkJcmV0dXJuIC0xOwojICAz MzV8ICAgCX0KIyAgMzM2fCAgIAlpZiAoc3ogPCBFTE9HX01JTl9SRUFEX09GRlNFVCkgewoKRXJy b3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxv Zy1wYXJzZS9vcGFsLWVsb2ctcGFyc2UuYzo0ODY6Nzogd2FybmluZzogJ2VpZF9vcHQnIG1heSBi ZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxp emVkXQojICAgcmV0ID0gZGVsZXRlX2Vsb2coZWlkX29wdCk7CiMgICAgICAgXgojICA0ODR8ICAg CQlicmVhazsKIyAgNDg1fCAgIAljYXNlICdlJzoKIyAgNDg2fC0+IAkJcmV0ID0gZGVsZXRlX2Vs b2coZWlkX29wdCk7CiMgIDQ4N3wgICAJCWJyZWFrOwojICA0ODh8ICAgCWNhc2UgJ2QnOgoKRXJy b3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxv Zy1wYXJzZS9vcGFsLWVsb2ctcGFyc2UuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ21haW4n CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9vcGFsLWVsb2ctcGFy c2UuYzo0OTk6ODogd2FybmluZzogJ2Vsb2dfcGF0aCcgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXpl ZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgcmV0ID0gZWxv Z19zdW1tYXJ5KGVsb2dfcGF0aCwxKTsKIyAgICAgICAgXgojICA0OTd8ICAgCWNhc2UgJ3MnOgoj ICA0OTh8ICAgCQlpZihvcHRfZGlzcGxheV9maWxlKXsKIyAgNDk5fC0+IAkJCXJldCA9IGVsb2df c3VtbWFyeShlbG9nX3BhdGgsMSk7CiMgIDUwMHwgICAJCX0gZWxzZSB7CiMgIDUwMXwgICAJCQly ZXQgPSBlbG9nbGlzdCgxKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIu Ni45L29wYWxfZXJyZC9vcGFsLWVsb2ctcGFyc2UvcGFyc2Utb3BhbC1ldmVudC5jOiBzY29wZV9o aW50OiBJbiBmdW5jdGlvbiAncGFyc2Vfb3BhbF9ldmVudF9sb2cnCnBwYzY0LWRpYWctMi42Ljkv b3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9wYXJzZS1vcGFsLWV2ZW50LmM6Mjg6Njogd2Fybmlu ZzogJ3JjJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMgZnVuY3Rpb24gWy1XbWF5 YmUtdW5pbml0aWFsaXplZF0KIyAgaW50IHJjOwojICAgICAgXgojICAgMjZ8ICAgCX07CiMgICAy N3wgICAKIyAgIDI4fC0+IAlpbnQgcmM7CiMgICAyOXwgICAJc3RydWN0IG9wYWxfdjZfaGRyIGhk cjsKIyAgIDMwfCAgIAlzdHJ1Y3Qgb3BhbF9wcml2X2hkcl9zY24gKnBoOwoKRXJyb3I6IENMQU5H X1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWwtZWxvZy1wYXJzZS9wYXJz ZS1vcGFsLWV2ZW50LmM6MTk3OjIxOiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiB1bmRlZmluZWQg cG9pbnRlciB2YWx1ZQojICAgICAgICAgICAgICAgIGlmIChucnNlY3Rpb25zID09IHBoLT5zY25f Y291bnQpCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgoj ICAxOTV8ICAgCQlidWYgKz0gaGRyLmxlbmd0aDsKIyAgMTk2fCAgIAojICAxOTd8LT4gCQlpZiAo bnJzZWN0aW9ucyA9PSBwaC0+c2NuX2NvdW50KQojICAxOTh8ICAgCQkJYnJlYWs7CiMgIDE5OXwg ICAJfQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkvb3BhbF9lcnJk L29wYWxfZXJyZC5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAncm90YXRlX2xvZ3MnCnBwYzY0 LWRpYWctMi42Ljkvb3BhbF9lcnJkL29wYWxfZXJyZC5jOjE5OTo3OiB3YXJuaW5nOiBpZ25vcmlu ZyByZXR1cm4gdmFsdWUgb2YgJ2NoZGlyJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91 bnVzZWRfcmVzdWx0IFstV3VudXNlZC1yZXN1bHRdCiMgIGNoZGlyKGVsb2dfZGlyKTsKIyAgICAg ICBeCiMgIDE5N3wgICAKIyAgMTk4fCAgIAkvKiBSZXRyaWV2ZSBmaWxlIGxpc3QgKi8KIyAgMTk5 fC0+IAljaGRpcihlbG9nX2Rpcik7CiMgIDIwMHwgICAJbmZpbGVzID0gc2NhbmRpcihlbG9nX2Rp ciwgJmZpbGVsaXN0LCBmaWxlX2ZpbHRlciwgYWxwaGFzb3J0KTsKIyAgMjAxfCAgIAlpZiAobmZp bGVzIDwgMCkKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L29wYWxf ZXJyZC9vcGFsX2VycmQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ21haW4nCnBwYzY0LWRp YWctMi42Ljkvb3BhbF9lcnJkL29wYWxfZXJyZC5jOjg2MTo5OiB3YXJuaW5nOiBpZ25vcmluZyBy ZXR1cm4gdmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNl ZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgICAgcmVhZChmZHNbSU5PVElGWV9GRF0uZmQs IGlub3RpZnlidWYsIHNpemVvZihpbm90aWZ5YnVmKSk7CiMgICAgICAgICBeCiMgIDg1OXwgICAJ CQlyYyA9IHBvbGwoZmRzLCBzaXplb2YoZmRzKS9zaXplb2Yoc3RydWN0IHBvbGxmZCksIFBPTExf VElNRU9VVCk7CiMgIDg2MHwgICAJCQlpZiAocmMgPiAwICYmIGZkc1tJTk9USUZZX0ZEXS5yZXZl bnRzKQojICA4NjF8LT4gCQkJCXJlYWQoZmRzW0lOT1RJRllfRkRdLmZkLCBpbm90aWZ5YnVmLCBz aXplb2YoaW5vdGlmeWJ1ZikpOwojICA4NjJ8ICAgCQkJaWYgKHJjID4gMCAmJiBmZHNbVURFVl9G RF0ucmV2ZW50cykgewojICA4NjN8ICAgCQkJCXVkZXZfZGV2ID0gdWRldl9tb25pdG9yX3JlY2Vp dmVfZGV2aWNlKHVkZXZfbW9uKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFn LTIuNi45L3J0YXNfZXJyZC9jb252ZXJ0X2R0X25vZGVfcHJvcHMuYzogc2NvcGVfaGludDogSW4g ZnVuY3Rpb24gJ21lbV9kcmNpbmRleF90b19kcmNuYW1lJwpwcGM2NC1kaWFnLTIuNi45L3J0YXNf ZXJyZC9jb252ZXJ0X2R0X25vZGVfcHJvcHMuYzo3MTo2OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1 cm4gdmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9y ZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgcmVhZChmZCwgJmluZGV4LCA0KTsKIyAgICAgIF4K IyAgIDY5fCAgIAojICAgNzB8ICAgCS8qIHNraXAgdGhlIGZpcnN0IG9uZTsgaXQgaW5kaWNhdGVz IGhvdyBtYW55IGFyZSBpbiB0aGUgZmlsZSAqLwojICAgNzF8LT4gCXJlYWQoZmQsICZpbmRleCwg NCk7CiMgICA3MnwgICAKIyAgIDczfCAgIAl3aGlsZSAoKHJlYWQoZmQsICZpbmRleCwgNCkpICE9 IDApIHsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJy ZC9jb252ZXJ0X2R0X25vZGVfcHJvcHMuYzo5MTo3OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4g dmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1 bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgIHJlYWQoZmQsICZpbmRleCwgNCk7CiMgICAgICAgXgoj ICAgODl8ICAgCiMgICA5MHwgICAJCS8qIHNraXAgdGhlIGZpcnN0IG9uZTsgaXQgaW5kaWNhdGVz IGhvdyBtYW55IGFyZSBpbiB0aGUgZmlsZSAqLwojICAgOTF8LT4gCQlyZWFkKGZkLCAmaW5kZXgs IDQpOwojICAgOTJ8ICAgCiMgICA5M3wgICAJCXdoaWxlIChvZmZzZXQgPiAwKSB7CgpFcnJvcjog Q0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvY29udmVydF9kdF9ub2Rl X3Byb3BzLmM6MzE5OjY6IHdhcm5pbmc6IEZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5p bml0aWFsaXplZCB2YWx1ZQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZwcmludGYoc3RkZXJyLCAiY291bGQgbm90IGZpbmQgdGhlICIKIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CiMgIDMxN3wgICAJCQkJaWYgKCFtZW1fZHJjaW5kZXhfdG9fZHJjbmFtZShkcmNfdG1wX2lk eCwKIyAgMzE4fCAgIAkJCQkJCWRyY25hbWUsIDIwKSkgewojICAzMTl8LT4gCQkJCQlmcHJpbnRm KHN0ZGVyciwgImNvdWxkIG5vdCBmaW5kIHRoZSAiCiMgIDMyMHwgICAJCQkJCQkiZHJjLW5hbWUg Y29ycmVzcG9uZGluZyB0byAiCiMgIDMyMXwgICAJCQkJCQkiZHJjLWluZGV4IDB4JTA4eFxuIiwg ZHJjaW5kZXgpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRh c19lcnJkL2NvbnZlcnRfZHRfbm9kZV9wcm9wcy5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAn Y3B1X2RyY2luZGV4X3RvX2RyY25hbWUnCnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2NvbnZl cnRfZHRfbm9kZV9wcm9wcy5jOjQwMDo2OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFsdWUg b2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1X dW51c2VkLXJlc3VsdF0KIyAgcmVhZChmZCwgJmluZGV4LCA0KTsKIyAgICAgIF4KIyAgMzk4fCAg IAojICAzOTl8ICAgCS8qIHNraXAgdGhlIGZpcnN0IG9uZTsgaXQgaW5kaWNhdGVzIGhvdyBtYW55 IGFyZSBpbiB0aGUgZmlsZSAqLwojICA0MDB8LT4gCXJlYWQoZmQsICZpbmRleCwgNCk7CiMgIDQw MXwgICAKIyAgNDAyfCAgIAl3aGlsZSAoKHJlYWQoZmQsICZpbmRleCwgNCkpICE9IDApIHsKCkVy cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJyZC9jb252ZXJ0 X2R0X25vZGVfcHJvcHMuYzo0MjA6Nzogd2FybmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9m ICdyZWFkJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0IFstV3Vu dXNlZC1yZXN1bHRdCiMgICByZWFkKGZkLCAmaW5kZXgsIDQpOwojICAgICAgIF4KIyAgNDE4fCAg IAojICA0MTl8ICAgCQkvKiBza2lwIHRoZSBmaXJzdCBvbmU7IGl0IGluZGljYXRlcyBob3cgbWFu eSBhcmUgaW4gdGhlIGZpbGUgKi8KIyAgNDIwfC0+IAkJcmVhZChmZCwgJmluZGV4LCA0KTsKIyAg NDIxfCAgIAojICA0MjJ8ICAgCQl3aGlsZSAob2Zmc2V0ID4gMCkgewoKRXJyb3I6IENPTVBJTEVS X1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2NvbnZlcnRfZHRfbm9kZV9wcm9w cy5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnY3B1X2RyY25hbWVfdG9fZHJjaW5kZXgnCnBw YzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2NvbnZlcnRfZHRfbm9kZV9wcm9wcy5jOjUxNDo2OiB3 YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFsdWUgb2YgJ3JlYWQnLCBkZWNsYXJlZCB3aXRoIGF0 dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgcmVhZChmZCwg JmluZGV4LCA0KTsKIyAgICAgIF4KIyAgNTEyfCAgIAojICA1MTN8ICAgCS8qIHNraXAgdGhlIGZp cnN0IG9uZTsgaXQgaW5kaWNhdGVzIGhvdyBtYW55IGFyZSBpbiB0aGUgZmlsZSAqLwojICA1MTR8 LT4gCXJlYWQoZmQsICZpbmRleCwgNCk7CiMgIDUxNXwgICAKIyAgNTE2fCAgIAlkbyB7CgpFcnJv cjogQ0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZGlhZ19zdXBwb3J0 LmM6MzUzOjY6IHdhcm5pbmc6IEJyYW5jaCBjb25kaXRpb24gZXZhbHVhdGVzIHRvIGEgZ2FyYmFn ZSB2YWx1ZQojICAgICAgICBpZiAoZnAyKQojICAgICAgICAgICAgXn5+CiMgIDM1MXwgICAKIyAg MzUyfCAgIG91dDoKIyAgMzUzfC0+IAlpZiAoZnAyKQojICAzNTR8ICAgCQlmY2xvc2UoZnAyKTsK IyAgMzU1fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRh c19lcnJkL2RpYWdfc3VwcG9ydC5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnZ2V0X2R0X3N0 YXR1cycKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZGlhZ19zdXBwb3J0LmM6MzU0Ojk6IHdh cm5pbmc6ICdmcDInIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBb LVdtYXliZS11bmluaXRpYWxpemVkXQojICAgZmNsb3NlKGZwMik7CiMgICAgICAgICBeCiMgIDM1 MnwgICBvdXQ6CiMgIDM1M3wgICAJaWYgKGZwMikKIyAgMzU0fC0+IAkJZmNsb3NlKGZwMik7CiMg IDM1NXwgICAKIyAgMzU2fCAgIAlpZiAoZnAxKQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CnBw YzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2R1bXAuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24g J2NoZWNrX3BsYXRmb3JtX2R1bXAnCnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2R1bXAuYzoz MDQ6Nzogd2FybmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdmZ2V0cycsIGRlY2xhcmVk IHdpdGggYXR0cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVzdWx0XQojICBm Z2V0cyhmaWxlbmFtZSwgRFVNUF9NQVhfRk5BTUVfTEVOICsgMjAsIGYpOwojICAgICAgIF4KIyAg MzAyfCAgIAkJcmV0dXJuOwojICAzMDN8ICAgCX0KIyAgMzA0fC0+IAlmZ2V0cyhmaWxlbmFtZSwg RFVNUF9NQVhfRk5BTUVfTEVOICsgMjAsIGYpOwojICAzMDV8ICAgCXJjID0gc3BjbG9zZShmLCBj cGlkKTsKIyAgMzA2fCAgIAoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42Ljkv cnRhc19lcnJkL2VsYS5jOjYwMDoxOTogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICd1bnJlY292 ZXJhYmxlX2J5cGFzc2VkJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50 ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdleHRoZHInKQojICAgICAgICBkZWNvbmZpZ19lcnJv ciA9IGV4dGhkci0+dW5yZWNvdmVyYWJsZV9ieXBhc3NlZDsKIyAgICAgICAgICAgICAgICAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIyAgNTk4fCAgIAltZW1jcHkoZXZl bnQtPnNsX2VudHJ5LT5yYXdfZGF0YSwgZXZlbnQtPmV2ZW50X2J1ZiwgZXZlbnQtPmxlbmd0aCk7 CiMgIDU5OXwgICAKIyAgNjAwfC0+IAlkZWNvbmZpZ19lcnJvciA9IGV4dGhkci0+dW5yZWNvdmVy YWJsZV9ieXBhc3NlZDsKIyAgNjAxfCAgIAlwcmVkaWN0aXZlX2Vycm9yID0gZXh0aGRyLT5wcmVk aWN0aXZlOwojICA2MDJ8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYu OS9ydGFzX2VycmQvZWxhLmM6OTAwOjE5OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlX2Rlc2Mt PnJjb2RlID0gc2lnZGV2LmxlZDsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeIH5+fn5+fn5+fn4KIyAgODk4fCAgIAojICA4OTl8ICAgCQkJaWYgKHNpZCA9 PSAwKSB7CiMgIDkwMHwtPiAJCQkJZV9kZXNjLT5yY29kZSA9IHNpZ2Rldi5sZWQ7CiMgIDkwMXwg ICAJCQl9CiMgIDkwMnwgICAJCQllbHNlIGlmIChzZWQgPT0gMCkgewoKRXJyb3I6IENMQU5HX1dB Uk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2VsYS5jOjE2MDA6MTg6IHdhcm5pbmc6 IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz09JyBpcyBhIGdhcmJhZ2UgdmFsdWUKIyAgICAgICAgaWYg KHNpZy0+c3RhdHVzID09IERFVklDRV9PSyAmJiBzZW4tPnN0YXR1cyA9PSBERVZJQ0VfT0spIHsK IyAgICAgICAgICAgIH5+fn5+fn5+fn5+IF4KIyAxNTk4fCAgIAlpbnQgc3dhcF9sb2NzID0gMDsK IyAxNTk5fCAgIAojIDE2MDB8LT4gCWlmIChzaWctPnN0YXR1cyA9PSBERVZJQ0VfT0sgJiYgc2Vu LT5zdGF0dXMgPT0gREVWSUNFX09LKSB7CiMgMTYwMXwgICAJCS8qIDIgZGV2aWNlcyByZXR1cm5l ZCBmcm9tIGVycm9yIGxvZyAqLwojIDE2MDJ8ICAgCQkvKiBpZiBvbmUgaXMgbm9uIGludGVncmF0 ZWQsIHVzZSBpdCBmb3IgdGhlIHNybiAqLwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRp YWctMi42LjkvcnRhc19lcnJkL2VsYS5jOjE5NDY6MTc6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJh bmQgb2YgJz09JyBpcyBhIGdhcmJhZ2UgdmFsdWUKIyAgICAgICAgICAgICAgICAgICAgICAgIGlm IChleHRfZXBvdyA9PSBQQ0lFUE9XMTExKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+ fn5+fn5+IF4KIyAxOTQ0fCAgIAkJCS8qIGxvc3Mgb2YgcG93ZXIgc291cmNlICovCiMgMTk0NXwg ICAJCQkvKiBmaXJzdCBjaGVja2luZyBzeXN0ZW0gc3BlY2lmaWMgZGF0YSAqLwojIDE5NDZ8LT4g CQkJaWYgKGV4dF9lcG93ID09IFBDSUVQT1cxMTEpCiMgMTk0N3wgICAJCQkJLyogQUMgcG93ZXIg dG8gZW50aXJlIHN5c3RlbSAqLwojIDE5NDh8ICAgCQkJCXJlcG9ydF9zcm4oZXZlbnQsIDAsIGVw b3c4MTMpOwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJk L2VsYS5jOjE5NjA6MTc6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJz09JyBpcyBhIGdh cmJhZ2UgdmFsdWUKIyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleHRfZXBvdyA9PSBQQ0lF UE9XMDAxKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgIH5+fn5+fn5+IF4KIyAxOTU4fCAg IAkJfSBlbHNlIGlmIChlcnJvcl90eXBlICYgRVBPV0IxN2IyKSB7CiMgMTk1OXwgICAJCQkvKiBp bnRlcm5hbCBwb3dlciBzdXBwbHkgZmFpbHVyZSAqLwojIDE5NjB8LT4gCQkJaWYgKGV4dF9lcG93 ID09IFBDSUVQT1cwMDEpCiMgMTk2MXwgICAJCQkJLyogMy80IHBzIGluIEkvTyByYWNrICovCiMg MTk2MnwgICAJCQkJcmVwb3J0X3NybihldmVudCwgMCwgZXBvdzgxNik7CgpFcnJvcjogQ09NUElM RVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZWxhLmM6IHNjb3BlX2hpbnQ6 IEluIGZ1bmN0aW9uICdwcm9jZXNzX2Vwb3cnCnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2Vs YS5jOjE5NjM6MTI6IHdhcm5pbmc6ICdleHRfZXBvdycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXpl ZCBpbiB0aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgZWxzZSBpZiAo ZXh0X2Vwb3cgPT0gUENJRVBPVzAxMCkKIyAgICAgICAgICAgIF4KcHBjNjQtZGlhZy0yLjYuOS9y dGFzX2VycmQvZWxhLmM6MTkxNDoxODogbm90ZTogJ2V4dF9lcG93JyB3YXMgZGVjbGFyZWQgaGVy ZQojICBpbnQgKnJlZywgcmxlbiwgZXh0X2Vwb3c7CiMgICAgICAgICAgICAgICAgICBeCiMgMTk2 MXwgICAJCQkJLyogMy80IHBzIGluIEkvTyByYWNrICovCiMgMTk2MnwgICAJCQkJcmVwb3J0X3Ny bihldmVudCwgMCwgZXBvdzgxNik7CiMgMTk2M3wtPiAJCQllbHNlIGlmIChleHRfZXBvdyA9PSBQ Q0lFUE9XMDEwKQojIDE5NjR8ICAgCQkJCS8qIDEvNCBwcyBpbiBJL08gcmFjayAqLwojIDE5NjV8 ICAgCQkJCXJlcG9ydF9zcm4oZXZlbnQsIDAsIGVwb3c4MTcpOwoKRXJyb3I6IENPTVBJTEVSX1dB Uk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRhc19lcnJkL2VsYS5jOiBzY29wZV9oaW50OiBJbiBm dW5jdGlvbiAncHJvY2Vzc19yZWZjb2RlcycKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvZWxh LmM6MzA2MjozODogd2FybmluZzogJ2xjYycgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0 aGlzIGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICAgZGJnKCJudW1iZXIgb2Yg bG9jIGNvZGVzID0gMHgleCIsICpsY2MpOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiMgMzA2MHwgICAJCWlmICghIG9uZTJvbmUpIHsKIyAzMDYxfCAgIAkJCXJjdGFi bG9jW3JjdGFiWzBdXSA9ICpsY2M7CiMgMzA2MnwtPiAJCQlkYmcoIm51bWJlciBvZiBsb2MgY29k ZXMgPSAweCV4IiwgKmxjYyk7CiMgMzA2M3wgICAJCQlsY2MrKzsJCSAgICAgLyogbmV4dCBsb2Mg Y29kZSBjb3VudCAqLwojIDMwNjR8ICAgCQl9CgpFcnJvcjogQ0xBTkdfV0FSTklORzoKcHBjNjQt ZGlhZy0yLjYuOS9ydGFzX2VycmQvZmlsZXMuYzoyNzA6MjM6IHdhcm5pbmc6IE51bGwgcG9pbnRl ciBwYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gYSAnbm9ubnVsbCcgcGFyYW1ldGVyCiMgICAgICAg ICAgICAgICAgcHJvY19lcnJvcl9sb2dfZmQgPSBvcGVuKHByb2NfZXJyb3JfbG9nMiwgT19SRE9O TFkpOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgojICAyNjh8ICAgCXByb2NfZXJyb3JfbG9nX2ZkID0gb3Blbihwcm9j X2Vycm9yX2xvZzEsIE9fUkRPTkxZKTsKIyAgMjY5fCAgIAlpZiAocHJvY19lcnJvcl9sb2dfZmQg PD0gMCkKIyAgMjcwfC0+IAkJcHJvY19lcnJvcl9sb2dfZmQgPSBvcGVuKHByb2NfZXJyb3JfbG9n MiwgT19SRE9OTFkpOwojICAyNzF8ICAgCiMgIDI3MnwgICAJaWYgKHByb2NfZXJyb3JfbG9nX2Zk IDw9IDApIHsKCkVycm9yOiBDTEFOR19XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJy ZC9maWxlcy5jOjYzNzoxMjogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50 ZWQgdG8gYnkgJ3J0YXNfZXJyZF9sb2dfYycKIyAgICAgICAgICAgICAgICBkaXJfbmFtZSA9IGRp cm5hbWUocnRhc19lcnJkX2xvZ19jKTsKIyAgICAgICAgICAgICAgICB+fn5+fn5+fn5efn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgojICA2MzV8ICAgCiMgIDYzNnwgICAJCX0KIyAgNjM3fC0+IAkJ ZGlyX25hbWUgPSBkaXJuYW1lKHJ0YXNfZXJyZF9sb2dfYyk7CiMgIDYzOHwgICAJCWRpcl9mZCA9 IG9wZW4oZGlyX25hbWUsIE9fUkRPTkxZfE9fRElSRUNUT1JZKTsKIyAgNjM5fCAgIAkJcmMgPSBm c3luYyhkaXJfZmQpOwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CnBwYzY0LWRpYWctMi42LjkvcnRh c19lcnJkL2d1YXJkLmM6MzA2OjExOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIGFzIGFu IGFyZ3VtZW50IHRvIGEgJ25vbm51bGwnIHBhcmFtZXRlcgojICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIHN0cnRvbChwb3MsIE5VTEwsIDApOwojICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CiMgIDMwNHwgICAJCQlidWZmZXJbc3RybGVuKGJ1 ZmZlciktMV0gPSAnXDAnOwojICAzMDV8ICAgCQkJZmNsb3NlKGZwKTsKIyAgMzA2fC0+IAkJCXJl dHVybiBzdHJ0b2wocG9zLCBOVUxMLCAwKTsKIyAgMzA3fCAgIAkJfQojICAzMDh8ICAgCX0KCkVy cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJyZC9ob3RwbHVn LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdoYW5kbGVfaG90cGx1Z19ldmVudCcKcHBjNjQt ZGlhZy0yLjYuOS9ydGFzX2VycmQvaG90cGx1Zy5jOjI1OjIxOiB3YXJuaW5nOiB2YXJpYWJsZSAn cmMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgICAgICAg ICBpbnQgc3RhdHVzLCByYzsKIyAgICAgICAgICAgICAgICAgICAgIF4KIyAgIDIzfCAgICAgICAg ICAgc3RydWN0IHJ0YXNfaG90cGx1Z19zY24gKmhvdHBsdWc7CiMgICAyNHwgICAgICAgICAgIHBp ZF90IGNoaWxkOwojICAgMjV8LT4gICAgICAgICBpbnQgc3RhdHVzLCByYzsKIyAgIDI2fCAgICAg ICAgICAgY2hhciBkcmNfaW5kZXhbMTFdOwojICAgMjd8ICAgCWNoYXIgY291bnRbNF07CgpFcnJv cjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvcHJybi5jOiBz Y29wZV9oaW50OiBJbiBmdW5jdGlvbiAnYWRkX2RyY29uZl9waGFuZGxlcycKcHBjNjQtZGlhZy0y LjYuOS9ydGFzX2VycmQvcHJybi5jOjIzNjo3OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFs dWUgb2YgJ2ZyZWFkJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0 IFstV3VudXNlZC1yZXN1bHRdCiMgIGZyZWFkKG1lbWJ1Ziwgc2J1Zi5zdF9zaXplLCAxLCBmZCk7 CiMgICAgICAgXgojICAyMzR8ICAgCX0KIyAgMjM1fCAgIAojICAyMzZ8LT4gCWZyZWFkKG1lbWJ1 Ziwgc2J1Zi5zdF9zaXplLCAxLCBmZCk7CiMgIDIzN3wgICAJaWYgKGZlcnJvcihmZCkpIHsKIyAg MjM4fCAgIAkJZmNsb3NlKGZkKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpwcGM2NC1kaWFn LTIuNi45L3J0YXNfZXJyZC9ydGFzX2VycmQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2Rh ZW1vbml6ZScKcHBjNjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvcnRhc19lcnJkLmM6NzQ6Nzogd2Fy bmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdjaGRpcicsIGRlY2xhcmVkIHdpdGggYXR0 cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVzdWx0XQojICBjaGRpcigiLyIp OwojICAgICAgIF4KIyAgIDcyfCAgIAojICAgNzN8ICAgCS8qIGNoYW5nZSB0byBhIHNhZmUgZGly ICovCiMgICA3NHwtPiAJY2hkaXIoIi8iKTsKIyAgIDc1fCAgIAojICAgNzZ8ICAgCS8qIGNsZWFy IGZpbGUgbW9kZSBtYXNrICovCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBjNjQtZGlhZy0y LjYuOS9ydGFzX2VycmQvcnRhc19lcnJkLmM6ODY6NTogd2FybmluZzogaWdub3JpbmcgcmV0dXJu IHZhbHVlIG9mICdkdXAnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1 bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgZHVwKGkpOwojICAgICBeCiMgICA4NHwgICAKIyAgIDg1 fCAgIAlpID0gb3BlbigiL2Rldi9udWxsIiwgT19SRFdSKTsKIyAgIDg2fC0+IAlkdXAoaSk7CiMg ICA4N3wgICAJZHVwKGkpOwojICAgODh8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKcHBj NjQtZGlhZy0yLjYuOS9ydGFzX2VycmQvcnRhc19lcnJkLmM6ODc6NTogd2FybmluZzogaWdub3Jp bmcgcmV0dXJuIHZhbHVlIG9mICdkdXAnLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3Vu dXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgZHVwKGkpOwojICAgICBeCiMgICA4NXwg ICAJaSA9IG9wZW4oIi9kZXYvbnVsbCIsIE9fUkRXUik7CiMgICA4NnwgICAJZHVwKGkpOwojICAg ODd8LT4gCWR1cChpKTsKIyAgIDg4fCAgIAojICAgODl8ICAgCXJldHVybjsKCkVycm9yOiBDTEFO R19XQVJOSU5HOgpwcGM2NC1kaWFnLTIuNi45L3J0YXNfZXJyZC9zZXJ2aWNlbG9nLmM6MTc5OjY6 IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnY2NpbicgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNl IG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnY2FsbG91dCcpCiMgICAg ICAgIGlmIChjYWxsb3V0LT5jY2luKQojICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgojICAxNzd8 ICAgCiMgIDE3OHwgICBtZW1fZmFpbDoKIyAgMTc5fC0+IAlpZiAoY2FsbG91dC0+Y2NpbikKIyAg MTgwfCAgIAkJZnJlZShjYWxsb3V0LT5jY2luKTsKIyAgMTgxfCAgIAlpZiAoY2FsbG91dC0+c2Vy aWFsKQo= ------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; name=lsvpd-results.txt Content-Disposition: attachment; filename=lsvpd-results.txt Content-Transfer-Encoding: base64 RXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9tYW51ZmFj dHVyZXIuY3BwOiBzY29wZV9oaW50OiBJbiBjb25zdHJ1Y3RvciAnbHN2cGQ6Ok1hbnVmYWN0dXJl cjo6TWFudWZhY3R1cmVyKHN0ZDo6aWZzdHJlYW0mKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFs L21hbnVmYWN0dXJlci5jcHA6NDY6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdkZXZJRCcg Wy1XdW51c2VkLXZhcmlhYmxlXQojICAgaW50IGRldklEOwojICAgICAgIF4KIyAgIDQ0fCAgIAlN YW51ZmFjdHVyZXI6Ok1hbnVmYWN0dXJlciggaWZzdHJlYW0mIHBjaUlEICkKIyAgIDQ1fCAgIAl7 CiMgICA0NnwtPiAJCWludCBkZXZJRDsKIyAgIDQ3fCAgIAkJc3RyaW5nIGluOwojICAgNDh8ICAg CQlib29sIGRvbmUgPSBmYWxzZTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcu NS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2Nv cGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9uICd2b2lkIGxzdnBkOjpEZXZpY2VUcmVlQ29sbGVj dG9yOjpwYXJzZVJ0YXNWcGQoc3RkOjp2ZWN0b3I8bHN2cGQ6OkNvbXBvbmVudCo+JiwgY2hhcios IGludCknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVj b2xsZWN0b3IuY3BwOjE3MToxNzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBh bmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICB3aGls ZSggc2l6ZSA8IHJ0YXNEYXRhU2l6ZSAmJiByZXQgPiAwICkKIyAgICAgICAgICAgICAgICAgXgoj ICAxNjl8ICAgCQlpZiggcnRhc0RhdGEgPT0gTlVMTCB8fCBydGFzRGF0YVNpemUgPD0gMCApCiMg IDE3MHwgICAJCQlyZXR1cm47CiMgIDE3MXwtPiAJCXdoaWxlKCBzaXplIDwgcnRhc0RhdGFTaXpl ICYmIHJldCA+IDAgKQojICAxNzJ8ICAgCQl7CiMgIDE3M3wgICAJCQlDb21wb25lbnQqIGMgPSBu ZXcgQ29tcG9uZW50KCApOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3Ny Yy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9o aW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ2Jvb2wgbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0b3I6 OmZpbGxRdWlja1ZQRChsc3ZwZDo6Q29tcG9uZW50KiknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5h bC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjIwODo3OiB3YXJuaW5nOiB1 bnVzZWQgdmFyaWFibGUgJ2RvbmUnIFstV3VudXNlZC12YXJpYWJsZV0KIyAgIGludCBkb25lID0g MCwgaTsKIyAgICAgICBeCiMgIDIwNnwgICAJewojICAyMDd8ICAgCQlzdHJpbmcgdmFsLCBwYXRo LCBwYXRoX3RtcDsKIyAgMjA4fC0+IAkJaW50IGRvbmUgPSAwLCBpOwojICAyMDl8ICAgCiMgIDIx MHwgICAJCS8qIEdyYWIgYW4gZWFzeSBBSVggTmFtZSwgaGlnaGVyIHF1YWxpdHkgdGhhbiB0aGUg YmFzZSBBSVggKi8KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50 ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDog SW4gbWVtYmVyIGZ1bmN0aW9uICd1bnNpZ25lZCBpbnQgbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0 b3I6OnBhcnNlVlBESGVhZGVyKGNoYXIqLCBjaGFyKiosIGNoYXIqKiknCmxzdnBkLTEuNy41L3Ny Yy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjM5ODoyOiB3 YXJuaW5nOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uIFstV3JldHVy bi10eXBlXQojICB9CiMgIF4KIyAgMzk2fCAgIAkJZWxzZSBpZiAoaXNQbGF0Zm9ybU9QQUwoKSkK IyAgMzk3fCAgIAkJCXJldHVybiBwYXJzZU9wYWxWUERIZWFkZXIoYnVmLCBmcnVOYW1lLCByZWNv cmRTdGFydCk7CiMgIDM5OHwtPiAJfQojICAzOTl8ICAgCiMgIDQwMHwgICAJLyoqCgpFcnJvcjog Q0xBTkdfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2 aWNldHJlZWNvbGxlY3Rvci5jcHA6NDI2Ojc6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdh cmJhZ2Ugb3IgdW5kZWZpbmVkCiMgICAgICAgICAgICAgICAgYnVmID0gcHRyOwojICAgICAgICAg ICAgICAgICAgICBeIH5+fgojICA0MjR8ICAgCiMgIDQyNXwgICAJCWVuZCA9IGJ1ZiArIHNpemU7 CiMgIDQyNnwtPiAJCWJ1ZiA9IHB0cjsKIyAgNDI3fCAgIAojICA0Mjh8ICAgCQkvKgoKRXJyb3I6 IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl L2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24g J3Vuc2lnbmVkIGludCBsc3ZwZDo6RGV2aWNlVHJlZUNvbGxlY3Rvcjo6cGFyc2VWUERCdWZmZXIo bHN2cGQ6OkNvbXBvbmVudCosIGNoYXIqKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p bnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6NDU2OjU2OiB3YXJuaW5nOiBkZXByZWNh dGVkIGNvbnZlcnNpb24gZnJvbSBzdHJpbmcgY29uc3RhbnQgdG8gJ2NoYXIqJyBbLVd3cml0ZS1z dHJpbmdzXQojICAgIHNldFZQREZpZWxkKCBmaWxsTWUsIGtleSwgZmllbGQsIF9fRklMRV9fLCBf X0xJTkVfXyApOwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCiMgIDQ1NHwgICAKIyAgNDU1fCAgIAkJCWZpZWxkID0gc2FuaXRpemVWUERG aWVsZCh2YWwsIGxlbmd0aCk7CiMgIDQ1NnwtPiAJCQlzZXRWUERGaWVsZCggZmlsbE1lLCBrZXks IGZpZWxkLCBfX0ZJTEVfXywgX19MSU5FX18gKTsKIyAgNDU3fCAgIAkJfQojICA0NTh8ICAgCQly ZXR1cm4gc2l6ZTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50 ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDog SW4gbWVtYmVyIGZ1bmN0aW9uICdsc3ZwZDo6Q29tcG9uZW50KiBsc3ZwZDo6RGV2aWNlVHJlZUNv bGxlY3Rvcjo6ZmluZENvbXBvbmVudChzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4sIHN0 ZDo6c3RyaW5nKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNl dHJlZWNvbGxlY3Rvci5jcHA6NTU5OjMzOiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2ln bmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAg IGZvciAoaW50IGkgPSAwOyBpIDwgZGV2cy5zaXplKCk7IGkrKykKIyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIyAgNTU3fCAgIAkJY29uc3QgdmVjdG9yPENvbXBvbmVudCo+IGRl dnMsIHN0cmluZyBkZXZQYXRoICkKIyAgNTU4fCAgIAl7CiMgIDU1OXwtPiAJCWZvciAoaW50IGkg PSAwOyBpIDwgZGV2cy5zaXplKCk7IGkrKykKIyAgNTYwfCAgIAkJCWlmIChkZXZzW2ldLT5kZXZp Y2VUcmVlTm9kZS5nZXRWYWx1ZSgpID09IGRldlBhdGgpCiMgIDU2MXwgICAJCQkJcmV0dXJuIGRl dnNbaV07CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFs L3N5c19pbnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1l bWJlciBmdW5jdGlvbiAnbHN2cGQ6OkNvbXBvbmVudCogbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0 b3I6OmZpbmRTQ1NJUGFyZW50KGxzdnBkOjpDb21wb25lbnQqLCBzdGQ6OnZlY3Rvcjxsc3ZwZDo6 Q29tcG9uZW50Kj4pJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZp Y2V0cmVlY29sbGVjdG9yLmNwcDo3MTg6NjM6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBz aWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQoj ICAgICBpZiAoKGxvYyA9IHN5c0Rldi5yZmluZCgiLyIsIHN5c0Rldi5sZW5ndGgoKSkpICE9IHN0 cmluZzo6bnBvcyApCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiMgIDcxNnwgICAJCQlzeXNEZXYgPSBmaWxsTWUtPnN5c0Zz TGlua1RhcmdldC5kYXRhVmFsdWU7CiMgIDcxN3wgICAJCQl3aGlsZSAoc3lzRGV2Lmxlbmd0aCgp ID4gMSkgewojICA3MTh8LT4gCQkJCWlmICgobG9jID0gc3lzRGV2LnJmaW5kKCIvIiwgc3lzRGV2 Lmxlbmd0aCgpKSkgIT0gc3RyaW5nOjpucG9zICkKIyAgNzE5fCAgIAkJCQkJc3lzRGV2ID0gc3lz RGV2LnN1YnN0cigwLCBsb2MpOwojICA3MjB8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoK bHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rv ci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAndm9pZCBsc3ZwZDo6RGV2aWNl VHJlZUNvbGxlY3Rvcjo6Z2V0T3BhbEZpcm13YXJlVlBEKHN0ZDo6dmVjdG9yPGxzdnBkOjpDb21w b25lbnQqPiYpJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0 cmVlY29sbGVjdG9yLmNwcDo4MjY6Njg6IHdhcm5pbmc6IGRlcHJlY2F0ZWQgY29udmVyc2lvbiBm cm9tIHN0cmluZyBjb25zdGFudCB0byAnY2hhcionIFstV3dyaXRlLXN0cmluZ3NdCiMgICAgc2V0 VlBERmllbGQoIGMsIHN0cmluZygiTUwiKSwgdmFsLnN1YnN0cigzKSwgX19GSUxFX18sIF9fTElO RV9fICk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIyAgODI0fCAgIAkJdmFsID0gZ2V0QXR0clZhbHVlKCBvcy5z dHIoICksIE9QQUxfU1lTX0ZXX01MX0ZJTEUgKTsKIyAgODI1fCAgIAkJaWYgKHZhbC5sZW5ndGgo KSA+IDApCiMgIDgyNnwtPiAJCQlzZXRWUERGaWVsZCggYywgc3RyaW5nKCJNTCIpLCB2YWwuc3Vi c3RyKDMpLCBfX0ZJTEVfXywgX19MSU5FX18gKTsKIyAgODI3fCAgIAojICA4Mjh8ICAgCQl2YWwg PSBnZXRBdHRyVmFsdWUoIG9zLnN0ciggKSwgT1BBTF9TWVNfRldfTUlfRklMRSApOwoKRXJyb3I6 IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl L2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjgzMDo2ODogd2FybmluZzogZGVwcmVjYXRlZCBjb252 ZXJzaW9uIGZyb20gc3RyaW5nIGNvbnN0YW50IHRvICdjaGFyKicgWy1Xd3JpdGUtc3RyaW5nc10K IyAgICBzZXRWUERGaWVsZCggYywgc3RyaW5nKCJNSSIpLCB2YWwuc3Vic3RyKDMpLCBfX0ZJTEVf XywgX19MSU5FX18gKTsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA4Mjh8ICAgCQl2YWwgPSBnZXRBdHRyVmFs dWUoIG9zLnN0ciggKSwgT1BBTF9TWVNfRldfTUlfRklMRSApOwojICA4Mjl8ICAgCQlpZiAodmFs Lmxlbmd0aCgpID4gMCkKIyAgODMwfC0+IAkJCXNldFZQREZpZWxkKCBjLCBzdHJpbmcoIk1JIiks IHZhbC5zdWJzdHIoMyksIF9fRklMRV9fLCBfX0xJTkVfXyApOwojICA4MzF8ICAgCiMgIDgzMnwg ICAJCXZhbCA9IGdldEF0dHJWYWx1ZSggb3Muc3RyKCApLCBPUEFMX1NZU19GV19DTF9GSUxFICk7 CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p bnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6ODM2OjU4OiB3YXJuaW5nOiBkZXByZWNh dGVkIGNvbnZlcnNpb24gZnJvbSBzdHJpbmcgY29uc3RhbnQgdG8gJ2NoYXIqJyBbLVd3cml0ZS1z dHJpbmdzXQojICAgIHNldFZQREZpZWxkKCBjLCBzdHJpbmcoIkNMIiksIHZhbCwgX19GSUxFX18s IF9fTElORV9fICk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgojICA4MzR8ICAgCQkJc3RyaW5nIGZpcm13YXJlID0gUGxhdGZvcm1D b2xsZWN0b3I6OmdldEZpcm13YXJlTmFtZSgpOwojICA4MzV8ICAgCQkJdmFsID0gZmlybXdhcmUg KyAiICIgKyB2YWw7CiMgIDgzNnwtPiAJCQlzZXRWUERGaWVsZCggYywgc3RyaW5nKCJDTCIpLCB2 YWwsIF9fRklMRV9fLCBfX0xJTkVfXyApOwojICA4Mzd8ICAgCQl9CiMgIDgzOHwgICAKCkVycm9y OiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFj ZS9kZXZpY2V0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9u ICdzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4gbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0 b3I6OmdldENvbXBvbmVudHNWZWN0b3Ioc3RkOjp2ZWN0b3I8bHN2cGQ6OkNvbXBvbmVudCo+Jikn CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0 b3IuY3BwOjk1ODo4OiB3YXJuaW5nOiB2YXJpYWJsZSAnZGV2JyBzZXQgYnV0IG5vdCB1c2VkIFst V3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICAgYm9vbCBkZXY7CiMgICAgICAgIF4KIyAgOTU2 fCAgIAkJQ29tcG9uZW50ICp0bXA7CiMgIDk1N3wgICAJCUZTV2FsayBmc3cgPSBGU1dhbGsoKTsK IyAgOTU4fC0+IAkJYm9vbCBkZXY7CiMgIDk1OXwgICAKIyAgOTYwfCAgIAkJZnVsbExpc3QucHVz aF9iYWNrKHJvb3REaXIpOyAvL1N0YXJ0IGF0IHRvcCBvZiBkZXZpY2UgdHJlZQoKRXJyb3I6IENP TVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2Rl dmljZXRyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ3Zv aWQgbHN2cGQ6OkRldmljZVRyZWVDb2xsZWN0b3I6OmdldFJ0YXNTeXN0ZW1Mb2NhdGlvbkNvZGUo bHN2cGQ6OlN5c3RlbSopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9k ZXZpY2V0cmVlY29sbGVjdG9yLmNwcDoxMDcxOjQ3OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdl ZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFy ZV0KIyAgIHdoaWxlKCAoIHBvcyA9IHZhbC5maW5kKCAiLSIgKSApICE9IHN0cmluZzo6bnBvcyAp CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAxMDY5 fCAgIAkJCXJldHVybjsKIyAxMDcwfCAgIAkJb3MgPDwgIlUiOwojIDEwNzF8LT4gCQl3aGlsZSgg KCBwb3MgPSB2YWwuZmluZCggIi0iICkgKSAhPSBzdHJpbmc6Om5wb3MgKQojIDEwNzJ8ICAgCQl7 CiMgMTA3M3wgICAJCQl2YWxbIHBvcyBdID0gJy4nOwoKRXJyb3I6IENMQU5HX1dBUk5JTkc6Cmxz dnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3Iu Y3BwOjEyMDM6ODogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmlu ZWQKIyAgICAgICAgICAgICAgICBkYXRhID0gcmVjb3JkU3RhcnQ7CiMgICAgICAgICAgICAgICAg ICAgICBeIH5+fn5+fn5+fn5+CiMgMTIwMXwgICAJCX0KIyAxMjAyfCAgIAkJZW5kID0gZGF0YSAr IHNpemU7CiMgMTIwM3wtPiAJCWRhdGEgPSByZWNvcmRTdGFydDsKIyAxMjA0fCAgIAojIDEyMDV8 ICAgCQl3aGlsZSggZGF0YSA8IGVuZCAmJiBkYXRhWyAwIF0gIT0gMHg3OCApCgpFcnJvcjogQ09N UElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2 aWNldHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAndm9p ZCBsc3ZwZDo6RGV2aWNlVHJlZUNvbGxlY3Rvcjo6cGFyc2VTeXNWUEQoY2hhciosIGxzdnBkOjpT eXN0ZW0qKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNldHJl ZWNvbGxlY3Rvci5jcHA6MTIxNTo1Mzogd2FybmluZzogZGVwcmVjYXRlZCBjb252ZXJzaW9uIGZy b20gc3RyaW5nIGNvbnN0YW50IHRvICdjaGFyKicgWy1Xd3JpdGUtc3RyaW5nc10KIyAgICBzZXRW UERGaWVsZCggc3lzLCBrZXksIGZpZWxkLCBfX0ZJTEVfXywgX19MSU5FX18gKTsKIyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojIDEyMTN8ICAg CiMgMTIxNHwgICAJCQlmaWVsZCA9IHNhbml0aXplVlBERmllbGQodmFsLCByZWNvcmRTaXplKTsK IyAxMjE1fC0+IAkJCXNldFZQREZpZWxkKCBzeXMsIGtleSwgZmllbGQsIF9fRklMRV9fLCBfX0xJ TkVfXyApOwojIDEyMTZ8ICAgCQkJZGF0YSArPSByZWNvcmRTaXplOwojIDEyMTd8ICAgCQl9CgpF cnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRl cmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5j dGlvbiAndm9pZCBsc3ZwZDo6RGV2aWNlVHJlZUNvbGxlY3Rvcjo6cGFyc2VNYWpvck1pbm9yKGxz dnBkOjpDb21wb25lbnQqLCBzdGQ6OnN0cmluZyYsIHN0ZDo6c3RyaW5nJiknCmxzdnBkLTEuNy41 L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL2RldmljZXRyZWVjb2xsZWN0b3IuY3BwOjEyMjk6 MjU6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVn ZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgIGlmIChpbmRleCA9PSBzdHJpbmc6 Om5wb3MpCiMgICAgICAgICAgICAgICAgICAgICAgICAgXgojIDEyMjd8ICAgCQl7CiMgMTIyOHwg ICAJCQlpbmRleCA9IGFkZHIuZmluZCggJzonICk7CiMgMTIyOXwtPiAJCQlpZiAoaW5kZXggPT0g c3RyaW5nOjpucG9zKQojIDEyMzB8ICAgCQkJCXJldHVybjsKIyAxMjMxfCAgIAkJCW1ham9yID0g YWRkci5zdWJzdHIoIDAsIGluZGV4ICk7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQt MS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZGV2aWNldHJlZWNvbGxlY3Rvci5jcHA6 MTIzODoyNTogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQg aW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYgKGluZGV4ID09IHN0 cmluZzo6bnBvcykKIyAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgMTIzNnwgICAJCXsKIyAx MjM3fCAgIAkJCWluZGV4ID0gYWRkci5maW5kKCAnLicgKTsKIyAxMjM4fC0+IAkJCWlmIChpbmRl eCA9PSBzdHJpbmc6Om5wb3MpCiMgMTIzOXwgICAJCQkJcmV0dXJuOwojIDEyNDB8ICAgCQkJbWFq b3IgPSBhZGRyLnN1YnN0ciggMCwgaW5kZXggKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgps c3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9kZXZpY2V0cmVlY29sbGVjdG9y LmNwcDoxMjQ0OjQ0OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNp Z25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgICAoIGluZGV4ID0g YWRkci5maW5kKCAnOicgKSApICE9IHN0cmluZzo6bnBvcyApCiMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAxMjQyfCAgIAkJfQojIDEyNDN8ICAgCQllbHNl IGlmKCBjb21wLT5kZXZCdXMuZGF0YVZhbHVlID09ICJ1c2IiICYmCiMgMTI0NHwtPiAJCQkoIGlu ZGV4ID0gYWRkci5maW5kKCAnOicgKSApICE9IHN0cmluZzo6bnBvcyApCiMgMTI0NXwgICAJCXsK IyAxMjQ2fCAgIAkJCW1ham9yID0gYWRkci5zdWJzdHIoIDAsIGluZGV4ICk7CgpFcnJvcjogQ0xB TkdfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZnN3YWxr LmNwcDoxNTk6OTogd2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUgcmV0dXJuZWQg dG8gY2FsbGVyCiMgICAgICAgIHJldHVybiByZXQ7CiMgICAgICAgIF5+fn5+fn5+fn4KIyAgMTU3 fCAgICAgICAgICAgICAgICAgICByZXQgPSB0cnVlOwojICAxNTh8ICAgCiMgIDE1OXwtPiAgICAg ICAgIHJldHVybiByZXQ7CiMgIDE2MHwgICAKIyAgMTYxfCAgIAl9CgpFcnJvcjogQ0xBTkdfV0FS TklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZnN3YWxrLmNwcDox NzM6OTogd2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUgcmV0dXJuZWQgdG8gY2Fs bGVyCiMgICAgICAgIHJldHVybiByZXQ7CiMgICAgICAgIF5+fn5+fn5+fn4KIyAgMTcxfCAgICAg ICAgICAgICAgICAgICByZXQgPSB0cnVlOwojICAxNzJ8ICAgCiMgIDE3M3wtPiAgICAgICAgIHJl dHVybiByZXQ7CiMgIDE3NHwgICAJfQojICAxNzV8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoK bHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZnN3YWxrLmNwcDoxODY6OTog d2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUgcmV0dXJuZWQgdG8gY2FsbGVyCiMg ICAgICAgIHJldHVybiByZXQ7CiMgICAgICAgIF5+fn5+fn5+fn4KIyAgMTg0fCAgICAgICAgICAg ICAgICAgICByZXQgPSB0cnVlOwojICAxODV8ICAgCiMgIDE4NnwtPiAgICAgICAgIHJldHVybiBy ZXQ7CiMgIDE4N3wgICAJfQojICAxODh8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2 cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZ2F0aGVyZXIuY3BwOiBzY29wZV9o aW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ2xzdnBkOjpDb21wb25lbnQqIGxzdnBkOjpHYXRoZXJl cjo6ZmluZENvbXBvbmVudChzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4sIHN0ZDo6c3Ry aW5nKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2UvZ2F0aGVyZXIuY3Bw OjU5MDozMzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQg aW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBmb3IgKGludCBpID0gMDsg aSA8IGRldnMuc2l6ZSgpOyBpKyspCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiMgIDU4OHwgICAJCXN0cmluZyBpZE5vZGUgKQojICA1ODl8ICAgCXsKIyAgNTkwfC0+IAkJZm9y IChpbnQgaSA9IDA7IGkgPCBkZXZzLnNpemUoKTsgaSsrKQojICA1OTF8ICAgCQkJaWYoZGV2c1tp XS0+aWROb2RlLmdldFZhbHVlKCkgPT0gaWROb2RlKQojICA1OTJ8ICAgCQkJCXJldHVybiBkZXZz W2ldOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9z eXNfaW50ZXJmYWNlL2ljb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rp b24gJ3N0ZDo6c3RyaW5nIGxzdnBkOjpJQ29sbGVjdG9yOjpnZXRGcnVEZXNjcmlwdGlvbihzdGQ6 OnN0cmluZyYpJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9pY29sbGVj dG9yLmNwcDozMTM6OTogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdkZXNjJyBbLVd1bnVzZWQt dmFyaWFibGVdCiMgICBjaGFyICpkZXNjID0gTlVMTDsKIyAgICAgICAgIF4KIyAgMzExfCAgIAl7 CiMgIDMxMnwgICAJCWNvbnN0IGNoYXIgKmZydV90eXBlID0ga2V5LmNfc3RyKCk7CiMgIDMxM3wt PiAJCWNoYXIgKmRlc2MgPSBOVUxMOwojICAzMTR8ICAgCiMgIDMxNXwgICAJCXN3aXRjaCAoZnJ1 X3R5cGVbMF0pIHsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50 ZXJuYWwvc3lzX2ludGVyZmFjZS9wbGF0Zm9ybWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IElu IHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gJ3N0YXRpYyBzdGQ6OnN0cmluZyBsc3ZwZDo6UGxhdGZv cm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5h bC9zeXNfaW50ZXJmYWNlL3BsYXRmb3JtY29sbGVjdG9yLmNwcDo5Njo5OiB3YXJuaW5nOiBlbnVt ZXJhdGlvbiB2YWx1ZSAnUEZfTlVMTCcgbm90IGhhbmRsZWQgaW4gc3dpdGNoIFstV3N3aXRjaF0K IyAgIHN3aXRjaChwbGF0Zm9ybV90eXBlKSB7CiMgICAgICAgICBeCiMgICA5NHwgICAJewojICAg OTV8ICAgCQlnZXRfcGxhdGZvcm0oKTsKIyAgIDk2fC0+IAkJc3dpdGNoKHBsYXRmb3JtX3R5cGUp IHsKIyAgIDk3fCAgIAkJY2FzZSBQRl9QT1dFUktWTV9IT1NUOgojICAgOTh8ICAgCQkJcmV0dXJu ICJQb3dlcktWTSBIb3N0IjsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9ydGFzY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDog QXQgZ2xvYmFsIHNjb3BlCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3J0 YXNjb2xsZWN0b3IuY3BwOjM5OjE0OiB3YXJuaW5nOiAnYm9vbCBsc3ZwZDo6Y2hlY2tSdGFzQ2Fs bCgpJyBkZWZpbmVkIGJ1dCBub3QgdXNlZCBbLVd1bnVzZWQtZnVuY3Rpb25dCiMgIHN0YXRpYyBi b29sIGNoZWNrUnRhc0NhbGwodm9pZCkKIyAgICAgICAgICAgICAgXgojICAgMzd8ICAgI2lmZGVm IEhBVkVfTElCUlRBUwojICAgMzh8ICAgCiMgICAzOXwtPiAJc3RhdGljIGJvb2wgY2hlY2tSdGFz Q2FsbCh2b2lkKQojICAgNDB8ICAgCXsKIyAgIDQxfCAgIAkJaW50IGZkID0gMDsKCkVycm9yOiBD T01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9y dGFzY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDogSW4gc3RhdGljIG1lbWJlciBmdW5jdGlvbiAn c3RhdGljIGludCBsc3ZwZDo6UnRhc0NvbGxlY3Rvcjo6cnRhc0dldFZQRChjb25zdCBzdHJpbmcm LCBjaGFyKiopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9ydGFzY29s bGVjdG9yLmNwcDoxNDE6ODogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdlcnJfYnVmJyBbLVd1 bnVzZWQtdmFyaWFibGVdCiMgICBjaGFyIGVycl9idWZbUlRBU19FUlJfQlVGX1NJWkVdOwojICAg ICAgICBeCiMgIDEzOXwgICAJCWludCBzaXplID0gMDsKIyAgMTQwfCAgIAkJc3RydWN0IHJ0YXNf YnVmX2VsZW1lbnQgKmN1cnJlbnQsICpsaXN0OwojICAxNDF8LT4gCQljaGFyIGVycl9idWZbUlRB U19FUlJfQlVGX1NJWkVdOwojICAxNDJ8ICAgCQl1bnNpZ25lZCBpbnQgc2VxID0gMSwgbmV4dFNl cTsKIyAgMTQzfCAgIAkJaW50IG51bSA9IDAsIHJjOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6 CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3J0YXNjb2xsZWN0b3IuY3Bw OjE0Mzo3OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ251bScgWy1XdW51c2VkLXZhcmlhYmxl XQojICAgaW50IG51bSA9IDAsIHJjOwojICAgICAgIF4KIyAgMTQxfCAgIAkJY2hhciBlcnJfYnVm W1JUQVNfRVJSX0JVRl9TSVpFXTsKIyAgMTQyfCAgIAkJdW5zaWduZWQgaW50IHNlcSA9IDEsIG5l eHRTZXE7CiMgIDE0M3wtPiAJCWludCBudW0gPSAwLCByYzsKIyAgMTQ0fCAgIAkJaW50IHZwZF9j aGFuZ2VkID0gMDsKIyAgMTQ1fCAgIAkJY2hhciAqbG9jQ29kZSwgKmJ1ZjsKCkVycm9yOiBDTEFO R19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9ydGFzY29s bGVjdG9yLmNwcDoyMTI6NTogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50 ZWQgdG8gYnkgJ2xvY0NvZGUnCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0 ZUxpc3QobGlzdCk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4K IyAgMjEwfCAgIAkJCQlyZXR1cm4gLVJUQVNfSEFSRFdBUkRfRVJST1I7CiMgIDIxMXwgICAJCQlk ZWZhdWx0OgojICAyMTJ8LT4gCQkJCWRlbGV0ZUxpc3QobGlzdCk7CiMgIDIxM3wgICAJCQkJbGli cnRhc19lcnJvcihyYyk7CiMgIDIxNHwgICAJCQkJcmV0dXJuIC1SVEFTX0VSUk9SOwoKRXJyb3I6 IENMQU5HX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5 c2ZzX1NDU0lfRmlsbC5jcHA6MzM1OjE2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2VuZCcg ZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiMgICAgICAgICAgICAgICAg aW50IGJlZyA9IDAsIGVuZCA9IHMxLmxlbmd0aCgpOwojICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBefn4gICB+fn5+fn5+fn5+fgojICAzMzN8ICAgCWJvb2wgbWF0Y2hlcyhzdHJpbmcgczEs IHN0cmluZyBzMikKIyAgMzM0fCAgIAl7CiMgIDMzNXwtPiAJCWludCBiZWcgPSAwLCBlbmQgPSBz MS5sZW5ndGgoKTsKIyAgMzM2fCAgIAkJaW50IHo7CiMgIDMzN3wgICAKCkVycm9yOiBDT01QSUxF Ul9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19T Q1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnYm9vbCBsc3ZwZDo6bWF0Y2hl cyhzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmcpJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lz X2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjM3MTo0OTogd2FybmluZzogY29tcGFyaXNv biBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWdu LWNvbXBhcmVdCiMgICAgaWYgKCBzdHJpbmc6Om5wb3MgPT0gKGVuZCA9IHMxLmZpbmQoIioiLCBi ZWcpKSkgewojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIyAgMzY5fCAgIAkJCWVuZCA9IHMxLmxlbmd0aCgpOwojICAzNzB8ICAgCiMgIDM3MXwtPiAJ CQlpZiAoIHN0cmluZzo6bnBvcyA9PSAoZW5kID0gczEuZmluZCgiKiIsIGJlZykpKSB7CiMgIDM3 MnwgICAJCQkJLy9ObyBtb3JlIHN0YXJzIC0gYmFzZSBjYXNlCiMgIDM3M3wgICAJCQkJaWYgKHN0 cmluZzo6bnBvcyAhPSAoeiA9IHMyLmZpbmQoczEuc3Vic3RyKGJlZywgZW5kKSwgMCkpKSB7CgpF cnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRl cmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDozNzM6NjE6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0 d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21w YXJlXQojICAgICBpZiAoc3RyaW5nOjpucG9zICE9ICh6ID0gczIuZmluZChzMS5zdWJzdHIoYmVn LCBlbmQpLCAwKSkpIHsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiMgIDM3MXwgICAJCQlpZiAoIHN0cmluZzo6bnBvcyA9PSAo ZW5kID0gczEuZmluZCgiKiIsIGJlZykpKSB7CiMgIDM3MnwgICAJCQkJLy9ObyBtb3JlIHN0YXJz IC0gYmFzZSBjYXNlCiMgIDM3M3wtPiAJCQkJaWYgKHN0cmluZzo6bnBvcyAhPSAoeiA9IHMyLmZp bmQoczEuc3Vic3RyKGJlZywgZW5kKSwgMCkpKSB7CiMgIDM3NHwgICAJCQkJCXJldHVybiB0cnVl OwojICAzNzV8ICAgCQkJCX0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50 OiBJbiBmdW5jdGlvbiAnc3RkOjpzdHJpbmcgbHN2cGQ6OmxzdnBkX2hleGlmeShjb25zdCB1bnNp Z25lZCBjaGFyKiwgc2l6ZV90KScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZh Y2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0MjU6MjY6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2Vl biBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJl XQojICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW4gOyBpKyspIHsKIyAgICAgICAgICAgICAg ICAgICAgICAgICAgXgojICA0MjN8ICAgCiMgIDQyNHwgICAJICAgICAgICBjaGFyICogcmV0ID0g bmV3IGNoYXJbIGxlbioyKzEgXTsKIyAgNDI1fC0+IAkgICAgICAgIGZvciAoaSA9IDA7IGkgPCBs ZW4gOyBpKyspIHsKIyAgNDI2fCAgIAkgICAgICAgICAgICAgICAgc25wcmludGYoJnJldFtpKjJd LCAzLCAiJS4yWCIsIHN0cltpXSk7CiMgIDQyN3wgICAJICAgICAgICB9CgpFcnJvcjogQ1BQQ0hF Q0tfV0FSTklORyAoQ1dFLTc2Mik6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJm YWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NDMwOiBlcnJvclttaXNtYXRjaEFsbG9jRGVhbGxvY106 IE1pc21hdGNoaW5nIGFsbG9jYXRpb24gYW5kIGRlYWxsb2NhdGlvbjogcmV0CiMgIDQyOHwgICAK IyAgNDI5fCAgIAkgICAgICAgIHRtcCA9IHJldDsKIyAgNDMwfC0+IAkgICAgICAgIGRlbGV0ZSBy ZXQ7CiMgIDQzMXwgICAJICAgICAgICByZXR1cm4gdG1wOwojICA0MzJ8ICAgCX0KCkVycm9yOiBD TEFOR19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNm c19TQ1NJX0ZpbGwuY3BwOjQzMDoxMDogd2FybmluZzogTWVtb3J5IGFsbG9jYXRlZCBieSAnbmV3 W10nIHNob3VsZCBiZSBkZWFsbG9jYXRlZCBieSAnZGVsZXRlW10nLCBub3QgJ2RlbGV0ZScKIyAg ICAgICAgICAgICAgICBkZWxldGUgcmV0OwojICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4KIyAg NDI4fCAgIAojICA0Mjl8ICAgCSAgICAgICAgdG1wID0gcmV0OwojICA0MzB8LT4gCSAgICAgICAg ZGVsZXRlIHJldDsKIyAgNDMxfCAgIAkgICAgICAgIHJldHVybiB0bXA7CiMgIDQzMnwgICAJfQoK RXJyb3I6IENQUENIRUNLX1dBUk5JTkcgKENXRS00MDEpOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjQ0NDogZXJyb3JbbWVtbGVha106 IE1lbW9yeSBsZWFrOiByZXQKIyAgNDQyfCAgIAojICA0NDN8ICAgICAgICAgICBpZiAoc3RyX3Qu bGVuZ3RoKCkgPT0gMCkKIyAgNDQ0fC0+ICAgICAgICAgCXJldHVybiBzdHJfdDsKIyAgNDQ1fCAg IAojICA0NDZ8ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc3RyX3QubGVuZ3RoKCk7IGkrKykg ewoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNf aW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdz dGQ6OnN0cmluZyBsc3ZwZDo6aGV4aWZ5KHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43LjUvc3JjL2lu dGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0NDY6Mzg6IHdhcm5pbmc6 IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lv bnMgWy1Xc2lnbi1jb21wYXJlXQojICAgICAgICAgZm9yIChpID0gMDsgaSA8IHN0cl90Lmxlbmd0 aCgpOyBpKyspIHsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA0 NDR8ICAgICAgICAgICAJcmV0dXJuIHN0cl90OwojICA0NDV8ICAgCiMgIDQ0NnwtPiAgICAgICAg IGZvciAoaSA9IDA7IGkgPCBzdHJfdC5sZW5ndGgoKTsgaSsrKSB7CiMgIDQ0N3wgICAgICAgICAg ICAgICAgICAgc25wcmludGYoJnJldFtpKjJdLCAzLCAiJS4yWCIsIHN0cltpXSk7CiMgIDQ0OHwg ICAgICAgICAgIH0KCkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0UtNzYyKToKbHN2cGQtMS43 LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0NTI6IGVy cm9yW21pc21hdGNoQWxsb2NEZWFsbG9jXTogTWlzbWF0Y2hpbmcgYWxsb2NhdGlvbiBhbmQgZGVh bGxvY2F0aW9uOiByZXQKIyAgNDUwfCAgICAgICAgICAgc3RyX3QgPSByZXQ7CiMgIDQ1MXwgICAK IyAgNDUyfC0+ICAgICAgICAgZGVsZXRlIHJldDsKIyAgNDUzfCAgIAojICA0NTR8ICAgICAgICAg ICByZXR1cm4gc3RyX3Q7CgpFcnJvcjogQ0xBTkdfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2lu dGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0NTI6OTogd2FybmluZzog TWVtb3J5IGFsbG9jYXRlZCBieSAnbmV3W10nIHNob3VsZCBiZSBkZWFsbG9jYXRlZCBieSAnZGVs ZXRlW10nLCBub3QgJ2RlbGV0ZScKIyAgICAgICAgZGVsZXRlIHJldDsKIyAgICAgICAgXn5+fn5+ fn5+fgojICA0NTB8ICAgICAgICAgICBzdHJfdCA9IHJldDsKIyAgNDUxfCAgIAojICA0NTJ8LT4g ICAgICAgICBkZWxldGUgcmV0OwojICA0NTN8ICAgCiMgIDQ1NHwgICAgICAgICAgIHJldHVybiBz dHJfdDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwv c3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlv biAnc3RkOjpzdHJpbmcgbHN2cGQ6OmdldEZpZWxkTmFtZShzdGQ6OnN0cmluZyknCmxzdnBkLTEu Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NDY4OjMw OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2Vy IGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIHdoaWxlICgoaSA8IHBhdHRlcm4ubGVu Z3RoKCkpICYmIChwYXR0ZXJuW2ldICE9ICc6JykpCiMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiMgIDQ2NnwgICAKIyAgNDY3fCAgIAkJaSA9IDA7CiMgIDQ2OHwtPiAJCXdoaWxlICgo aSA8IHBhdHRlcm4ubGVuZ3RoKCkpICYmIChwYXR0ZXJuW2ldICE9ICc6JykpCiMgIDQ2OXwgICAJ CQlpKys7CiMgIDQ3MHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjQ3MToyNzogd2Fy bmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHBy ZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBpZiAoaSA+PSBwYXR0ZXJuLmxlbmd0aCgpKQoj ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA0Njl8ICAgCQkJaSsrOwojICA0NzB8ICAg CiMgIDQ3MXwtPiAJCWlmIChpID49IHBhdHRlcm4ubGVuZ3RoKCkpCiMgIDQ3MnwgICAJCQlyZXR1 cm4gIiI7CiMgIDQ3M3wgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9z cmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50 OiBJbiBmdW5jdGlvbiAnaW50IGxzdnBkOjpnZXRGaWVsZFZhbHVlKHN0ZDo6c3RyaW5nKScKbHN2 cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo0 OTU6MzA6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGlu dGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgd2hpbGUgKChpIDwgcGF0dGVy bi5sZW5ndGgoKSkgJiYgKHBhdHRlcm5baV0gIT0gJzonKSkKIyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIyAgNDkzfCAgIAojICA0OTR8ICAgCQlpID0gMDsKIyAgNDk1fC0+IAkJd2hp bGUgKChpIDwgcGF0dGVybi5sZW5ndGgoKSkgJiYgKHBhdHRlcm5baV0gIT0gJzonKSkKIyAgNDk2 fCAgIAkJCWkrKzsKIyAgNDk3fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEu Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NDk4OjI3 OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2Vy IGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIGlmIChpID49IHBhdHRlcm4ubGVuZ3Ro KCkpCiMgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDQ5NnwgICAJCQlpKys7CiMgIDQ5 N3wgICAKIyAgNDk4fC0+IAkJaWYgKGkgPj0gcGF0dGVybi5sZW5ndGgoKSkKIyAgNDk5fCAgIAkJ CXJldHVybiAtMTsKIyAgNTAwfCAgIAoKRXJyb3I6IENMQU5HX1dBUk5JTkc6CmxzdnBkLTEuNy41 L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NTA2OjExOiB3 YXJuaW5nOiBGdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUK IyAgICAgICAgICAgICAgICB2YWx1ZSA9IHN0cnRvbChzdHIuY19zdHIoKSwgZW5kcHRyLCAwKTsK IyAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoj ICA1MDR8ICAgCiMgIDUwNXwgICAJCXN0ciA9IHBhdHRlcm4uc3Vic3RyKGVvbiwgcGF0dGVybi5s ZW5ndGgoKSAtIGVvbik7CiMgIDUwNnwtPiAJCXZhbHVlID0gc3RydG9sKHN0ci5jX3N0cigpLCBl bmRwdHIsIDApOwojICA1MDd8ICAgLy8JCWNvdXQgPDwgIkdldFZhbHVlKCkgUGF0dGVybiA9ICIg PDwgcGF0dGVybiA8PCAiLCBzdHIgPSAiIDw8IHN0ciA8PCAiLCBlb24gPSAiIDw8IGVvbiA8PCAi VmFsdWUgPSAiIDw8IHZhbHVlIDw8IGVuZGw7CiMgIDUwOHwgICAKCkVycm9yOiBDT01QSUxFUl9X QVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJ X0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnaW50IGxzdnBkOjpnZXRGaWVsZFZh bHVlKHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uv c3lzZnNfU0NTSV9GaWxsLmNwcDo1MDY6NDA6IHdhcm5pbmc6ICdlbmRwdHInIG1heSBiZSB1c2Vk IHVuaW5pdGlhbGl6ZWQgaW4gdGhpcyBmdW5jdGlvbiBbLVdtYXliZS11bmluaXRpYWxpemVkXQoj ICAgdmFsdWUgPSBzdHJ0b2woc3RyLmNfc3RyKCksIGVuZHB0ciwgMCk7CiMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA1MDR8ICAgCiMgIDUwNXwgICAJCXN0ciA9 IHBhdHRlcm4uc3Vic3RyKGVvbiwgcGF0dGVybi5sZW5ndGgoKSAtIGVvbik7CiMgIDUwNnwtPiAJ CXZhbHVlID0gc3RydG9sKHN0ci5jX3N0cigpLCBlbmRwdHIsIDApOwojICA1MDd8ICAgLy8JCWNv dXQgPDwgIkdldFZhbHVlKCkgUGF0dGVybiA9ICIgPDwgcGF0dGVybiA8PCAiLCBzdHIgPSAiIDw8 IHN0ciA8PCAiLCBlb24gPSAiIDw8IGVvbiA8PCAiVmFsdWUgPSAiIDw8IHZhbHVlIDw8IGVuZGw7 CiMgIDUwOHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50 ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBm dW5jdGlvbiAnc3RkOjpzdHJpbmcgbHN2cGQ6OnJldHJpZXZlRmllbGQoY2hhciosIGludCknCmxz dnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6 NTQ4OjQ3OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBp bnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIHdoaWxlICgoc3RyW2JlZ10g PT0gMikgJiYgKGJlZyA8IHN0cmxlbihkYXRhKSkgJiYgKGJlZyA8IGVuZCkpCiMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNTQ2fCAgIAkJCXJldHVy biAiIjsKIyAgNTQ3fCAgIAojICA1NDh8LT4gCQl3aGlsZSAoKHN0cltiZWddID09IDIpICYmIChi ZWcgPCBzdHJsZW4oZGF0YSkpICYmIChiZWcgPCBlbmQpKQojICA1NDl8ICAgCQkJYmVnKys7CiMg IDU1MHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5j dGlvbiAnaW50IGxzdnBkOjpudW1QYWdlVGVtcGxhdGVzKHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43 LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo1Njk6Mjc6 IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIg ZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgd2hpbGUgKGkgPCB0ZW1wbC5sZW5ndGgo KSkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNTY3fCAgIAkJCXJldHVybiAwOwoj ICA1Njh8ICAgCiMgIDU2OXwtPiAJCXdoaWxlIChpIDwgdGVtcGwubGVuZ3RoKCkpCiMgIDU3MHwg ICAJCQlpZiAodGVtcGxbaSsrXSA9PSAnPycpIHsKIyAgNTcxfCAgIAkJCQljb3VudCsrOwoKRXJy b3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJm YWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdzdGQ6OnN0 cmluZyBsc3ZwZDo6cmV0cmlldmVQYWdlVGVtcGxhdGUoc3RkOjpzdHJpbmcsIGludCknCmxzdnBk LTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6NTkz OjI3OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRl Z2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIHdoaWxlIChpIDwgdGVtcGwubGVu Z3RoKCkgJiYgZW5kID09IHRlbXBsLmxlbmd0aCgpKSB7CiMgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiMgIDU5MXwgICAJCQlyZXR1cm4gIiI7CiMgIDU5MnwgICAKIyAgNTkzfC0+IAkJd2hp bGUgKGkgPCB0ZW1wbC5sZW5ndGgoKSAmJiBlbmQgPT0gdGVtcGwubGVuZ3RoKCkpIHsKIyAgNTk0 fCAgIAkJCWlmICh0ZW1wbFtpXSA9PSAnPycgJiYgYmVnICE9IC0xKSB7CiMgIDU5NXwgICAJCQkJ ZW5kID0gaTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjU5Mzo1Mjogd2FybmluZzogY29t cGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBb LVdzaWduLWNvbXBhcmVdCiMgICB3aGlsZSAoaSA8IHRlbXBsLmxlbmd0aCgpICYmIGVuZCA9PSB0 ZW1wbC5sZW5ndGgoKSkgewojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KIyAgNTkxfCAgIAkJCXJldHVybiAiIjsKIyAgNTkyfCAgIAojICA1OTN8 LT4gCQl3aGlsZSAoaSA8IHRlbXBsLmxlbmd0aCgpICYmIGVuZCA9PSB0ZW1wbC5sZW5ndGgoKSkg ewojICA1OTR8ICAgCQkJaWYgKHRlbXBsW2ldID09ICc/JyAmJiBiZWcgIT0gLTEpIHsKIyAgNTk1 fCAgIAkJCQllbmQgPSBpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3Ny Yy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6 IEluIGZ1bmN0aW9uICdpbnQgbHN2cGQ6OnJldHJpZXZlUGFnZUNvZGUoc3RkOjpzdHJpbmcsIHN0 ZDo6c3RyaW5nJiwgc3RkOjpzdHJpbmcmKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p bnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo2Mjk6Mzg6IHdhcm5pbmc6IGNvbXBhcmlzb24g YmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1j b21wYXJlXQojICAgICAmJiBpIDwgcGFnZV9zcGVjX3RlbXBsYXRlLmxlbmd0aCgpKQojICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDYyN3wgICAJCXdoaWxlIChwYWdl X3NwZWNfdGVtcGxhdGVbaS0xXSAhPSAnMCcKIyAgNjI4fCAgIAkJCQkmJiBwYWdlX3NwZWNfdGVt cGxhdGVbaV0gIT0gJ3gnCiMgIDYyOXwtPiAJCQkJJiYgaSA8IHBhZ2Vfc3BlY190ZW1wbGF0ZS5s ZW5ndGgoKSkKIyAgNjMwfCAgIAkJCWkrKzsKIyAgNjMxfCAgIAkJYmVnID0gaSArIDE7CgpFcnJv cjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZh Y2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDo2MzI6NzI6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2Vl biBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJl XQojICAgd2hpbGUgKHBhZ2Vfc3BlY190ZW1wbGF0ZVtpXSAhPSAnPScgJiYgaSA8IHBhZ2Vfc3Bl Y190ZW1wbGF0ZS5sZW5ndGgoKSkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNjMwfCAgIAkJCWkrKzsK IyAgNjMxfCAgIAkJYmVnID0gaSArIDE7CiMgIDYzMnwtPiAJCXdoaWxlIChwYWdlX3NwZWNfdGVt cGxhdGVbaV0gIT0gJz0nICYmIGkgPCBwYWdlX3NwZWNfdGVtcGxhdGUubGVuZ3RoKCkpCiMgIDYz M3wgICAJCQlpKys7CiMgIDYzNHwgICAJCWVuZCA9IGk7CgpFcnJvcjogQ09NUElMRVJfV0FSTklO RzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxs LmNwcDo2MzU6NDE6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2ln bmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgaWYgKChiZWcgPj0g cGFnZV9zcGVjX3RlbXBsYXRlLmxlbmd0aCgpKQojICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCiMgIDYzM3wgICAJCQlpKys7CiMgIDYzNHwgICAJCWVuZCA9IGk7CiMg IDYzNXwtPiAJCWlmICgoYmVnID49IHBhZ2Vfc3BlY190ZW1wbGF0ZS5sZW5ndGgoKSkKIyAgNjM2 fCAgIAkJCXx8IChlbmQgPj0gcGFnZV9zcGVjX3RlbXBsYXRlLmxlbmd0aCgpKSkKIyAgNjM3fCAg IAkJCXJldHVybiAtMTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMv aW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjYzNjo0MTogd2Fybmlu ZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNz aW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgfHwgKGVuZCA+PSBwYWdlX3NwZWNfdGVtcGxhdGUu bGVuZ3RoKCkpKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMg IDYzNHwgICAJCWVuZCA9IGk7CiMgIDYzNXwgICAJCWlmICgoYmVnID49IHBhZ2Vfc3BlY190ZW1w bGF0ZS5sZW5ndGgoKSkKIyAgNjM2fC0+IAkJCXx8IChlbmQgPj0gcGFnZV9zcGVjX3RlbXBsYXRl Lmxlbmd0aCgpKSkKIyAgNjM3fCAgIAkJCXJldHVybiAtMTsKIyAgNjM4fCAgIAkJcGFnZV9jb2Rl ID0gcGFnZV9zcGVjX3RlbXBsYXRlLnN1YnN0cihiZWcsIGVuZCAtIGJlZyk7CgpFcnJvcjogQ09N UElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lz ZnNfU0NTSV9GaWxsLmNwcDo2NDI6NzI6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWdu ZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAg d2hpbGUgKHBhZ2Vfc3BlY190ZW1wbGF0ZVtpXSAhPSAnOycgJiYgaSA8IHBhZ2Vfc3BlY190ZW1w bGF0ZS5sZW5ndGgoKSkKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNjQwfCAgIAkJLyogR2V0IGZvcm1h dCBzdHJpbmcgKi8KIyAgNjQxfCAgIAkJYmVnID0gZW5kICsgMTsKIyAgNjQyfC0+IAkJd2hpbGUg KHBhZ2Vfc3BlY190ZW1wbGF0ZVtpXSAhPSAnOycgJiYgaSA8IHBhZ2Vfc3BlY190ZW1wbGF0ZS5s ZW5ndGgoKSkKIyAgNjQzfCAgIAkJCWkrKzsKIyAgNjQ0fCAgIAkJZW5kID0gaTsKCkVycm9yOiBD TEFOR19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNm c19TQ1NJX0ZpbGwuY3BwOjY2NjozOiB3YXJuaW5nOiBQb3RlbnRpYWwgbWVtb3J5IGxlYWsKIyAg ICAgICAgICAgICAgICB0bXAgPSBzdHJpbmcoc3RybmR1cChidWYgKyBiZWcsIGVuZCAtIGJlZykp OwojICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KIyAgNjY0fCAgIAkJCWVuZC0tOwojICA2NjV8ICAgCiMgIDY2NnwtPiAJCXRtcCA9IHN0 cmluZyhzdHJuZHVwKGJ1ZiArIGJlZywgZW5kIC0gYmVnKSk7CiMgIDY2N3wgICAKIyAgNjY4fCAg IAkJcmV0dXJuIHRtcDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMv aW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJ biBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6cHJvY2Vz c190ZW1wbGF0ZShsc3ZwZDo6Q29tcG9uZW50Kiwgc3RkOjpzdHJpbmcqLCBjaGFyKiwgaW50LCBz dGQ6OnN0cmluZyosIGludCknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl L3N5c2ZzX1NDU0lfRmlsbC5jcHA6Njk2OjQwOiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4g c2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0K IyAgIGZvciAoaW50IGkgPSAwOyBpIDwgKCpmb3JtYXQpLmxlbmd0aCgpOyBpKyspCiMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICA2OTR8ICAgCQkJZGF0YUN1ckxv YyA9IDA7CiMgIDY5NXwgICAKIyAgNjk2fC0+IAkJZm9yIChpbnQgaSA9IDA7IGkgPCAoKmZvcm1h dCkubGVuZ3RoKCk7IGkrKykKIyAgNjk3fCAgIAkJCWlmICgoKmZvcm1hdClbaV0gPT0gJywnKSB7 CiMgIDY5OHwgICAJCQkJZW9mW2ZpZWxkVG90YWxdID0gaTsKCkVycm9yOiBDT01QSUxFUl9XQVJO SU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0Zp bGwuY3BwOjc1Mzo2NTogd2FybmluZzogZGVwcmVjYXRlZCBjb252ZXJzaW9uIGZyb20gc3RyaW5n IGNvbnN0YW50IHRvICdjaGFyKicgWy1Xd3JpdGUtc3RyaW5nc10KIyAgICAgc2V0VlBERmllbGQo IGZpbGxNZSwgZmllbGROYW1lLCBkYXRhVmFsICwgX19GSUxFX18sIF9fTElORV9fKTsKIyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgojICA3NTF8ICAgCQkJCX0KIyAgNzUyfCAgIAojICA3NTN8LT4gCQkJCXNldFZQREZpZWxk KCBmaWxsTWUsIGZpZWxkTmFtZSwgZGF0YVZhbCAsIF9fRklMRV9fLCBfX0xJTkVfXyk7CiMgIDc1 NHwgICAJCQl9CiMgIDc1NXwgICAJCX0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0x LjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29w ZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ2ludCBsc3ZwZDo6U3lzRlNUcmVlQ29sbGVjdG9y OjppbnRlcnByZXRQYWdlKGxzdnBkOjpDb21wb25lbnQqLCBjaGFyKiwgaW50LCBpbnQsIHN0ZDo6 c3RyaW5nKiwgaW50LCBzdGQ6OnN0cmluZyopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lz X2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjc3Nzo4OiB3YXJuaW5nOiB2YXJpYWJsZSAn cmV0JyBzZXQgYnV0IG5vdCB1c2VkIFstV3VudXNlZC1idXQtc2V0LXZhcmlhYmxlXQojICAgYm9v bCByZXQ7CiMgICAgICAgIF4KIyAgNzc1fCAgIAkJCQkJCQlzdHJpbmcgKnN1YnR5cGVEUykKIyAg Nzc2fCAgIAl7CiMgIDc3N3wtPiAJCWJvb2wgcmV0OwojICA3Nzh8ICAgCQlzdHJpbmcgZHM7CiMg IDc3OXwgICAJCXJldCA9IGZhbHNlOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEu Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNjb3Bl X2hpbnQ6IEF0IGdsb2JhbCBzY29wZQpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVy ZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjg3NToxMzogd2FybmluZzogJ2ludCBsc3ZwZDo6YnVm ZmVySXNFbXB0eShjaGFyKiwgaW50KScgZGVmaW5lZCBidXQgbm90IHVzZWQgWy1XdW51c2VkLWZ1 bmN0aW9uXQojICBzdGF0aWMgaW50IGJ1ZmZlcklzRW1wdHkoY2hhciAqZGV2aWNlX3NnX3JlYWRf YnVmZmVyLCBpbnQgYnVmU2l6ZSkKIyAgICAgICAgICAgICBeCiMgIDg3M3wgICAJfQojICA4NzR8 ICAgCiMgIDg3NXwtPiAJc3RhdGljIGludCBidWZmZXJJc0VtcHR5KGNoYXIgKmRldmljZV9zZ19y ZWFkX2J1ZmZlciwgaW50IGJ1ZlNpemUpCiMgIDg3NnwgICAJewojICA4Nzd8ICAgCQlpbnQgaSA9 IDA7CgpFcnJvcjogQ1BQQ0hFQ0tfV0FSTklORyAoQ1dFLTQ1Nik6CmxzdnBkLTEuNy41L3NyYy9p bnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6OTE1OiBlcnJvclt1bmlu aXR2YXJdOiBVbmluaXRpYWxpemVkIHZhcmlhYmxlOiBsZW4KIyAgOTEzfCAgIAkJCXdoZW4gZXZw ZCBpcyBlbmFibGVkLiAgVGh1cywgaGFja2VkIHRvIHJldHVybiAyNTYgZm9yIGFsbCBpbnF1aXJp ZXMKIyAgOTE0fCAgIAkJKi8KIyAgOTE1fC0+IAkJcmV0dXJuIGxlbjsKIyAgOTE2fCAgIAl9CiMg IDkxN3wgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJu YWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5j dGlvbiAnaW50IGxzdnBkOjpkZXZpY2Vfc2NzaV9zZ19zYW5pdHlfY2hlY2soYm9vbCwgaW50LCBj aGFyKiwgaW50KScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNf U0NTSV9GaWxsLmNwcDo5Njc6NjE6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQg YW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgICAg ICAgIHdoaWxlIChyZXQgJiYgKGkgPCAoc2l6ZV90KSBkZXZpY2Vfc2dfcmVhZF9idWZmZXJbM10p KSB7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgojICA5NjV8ICAgCSAgICAgICAgbGFzdCA9IGRldmljZV9zZ19yZWFkX2J1ZmZl cltpXTsKIyAgOTY2fCAgIAkgICAgICAgIGkrKzsKIyAgOTY3fC0+IAkgICAgICAgIHdoaWxlIChy ZXQgJiYgKGkgPCAoc2l6ZV90KSBkZXZpY2Vfc2dfcmVhZF9idWZmZXJbM10pKSB7CiMgIDk2OHwg ICAJICAgICAgICAgICAgICAgIHJldCA9IChkZXZpY2Vfc2dfcmVhZF9idWZmZXJbaV0gPiBsYXN0 KTsKIyAgOTY5fCAgIAkgICAgICAgICAgICAgICAgbGFzdCA9IGRldmljZV9zZ19yZWFkX2J1ZmZl cltpXTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwv c3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBmdW5jdGlv biAnaW50IGxzdnBkOjpkb1NHUXVlcnkoaW50LCBjaGFyKiwgaW50LCBpbnQsIGludCwgaW50KScK bHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNw cDo5ODk6Nzogd2FybmluZzogJ2xlbicgbWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCBpbiB0aGlz IGZ1bmN0aW9uIFstV21heWJlLXVuaW5pdGlhbGl6ZWRdCiMgICBpbnQgbGVuLCByZXRfbGwsIHJl dF9zYW47CiMgICAgICAgXgojICA5ODd8ICAgCQkJCQlpbnQgZXZwZCwgaW50IHBhZ2VfY29kZSwg aW50IGNtZCA9IDApCiMgIDk4OHwgICAJewojICA5ODl8LT4gCQlpbnQgbGVuLCByZXRfbGwsIHJl dF9zYW47CiMgIDk5MHwgICAKIyAgOTkxfCAgIC8vCQljb3V0ZCA8PCAiZG9TR1F1ZXJ5OiAgIiA8 PCBfX0xJTkVfXyA8PCAiIDogUXVlcnlpbmcgd2l0aCBldnBkOiAiIDw8IGV2cGQgPDwgIiwgcGFn ZV9jb2RlID0gIiA8PCBwYWdlX2NvZGUgPDwgIiwgY21kID0gIiA8PCBjbWQKCkVycm9yOiBDTEFO R19XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19T Q1NJX0ZpbGwuY3BwOjEwNDA6OTogd2FybmluZzogVW5kZWZpbmVkIG9yIGdhcmJhZ2UgdmFsdWUg cmV0dXJuZWQgdG8gY2FsbGVyCiMgICAgICAgIHJldHVybiBsZW47CiMgICAgICAgIF5+fn5+fn5+ fn4KIyAxMDM4fCAgIAkJCX0KIyAxMDM5fCAgIAojIDEwNDB8LT4gICAgICAgICByZXR1cm4gbGVu OwojIDEwNDF8ICAgCX0KIyAxMDQyfCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBk LTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6IHNj b3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAnaW50IGxzdnBkOjpTeXNGU1RyZWVDb2xsZWN0 b3I6OmNvbGxlY3RWcGQobHN2cGQ6OkNvbXBvbmVudCosIGludCwgYm9vbCknCmxzdnBkLTEuNy41 L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTEyMzo3OiB3 YXJuaW5nOiB2YXJpYWJsZSAnbG9jJyBzZXQgYnV0IG5vdCB1c2VkIFstV3VudXNlZC1idXQtc2V0 LXZhcmlhYmxlXQojICAgaW50IGxvYzsKIyAgICAgICBeCiMgMTEyMXwgICAJCWludCByYzsKIyAx MTIyfCAgIAkJc3RyaW5nIHN0cjsKIyAxMTIzfC0+IAkJaW50IGxvYzsKIyAxMTI0fCAgIAkJY2hh ciB2ZW5kb3JbMzJdLCBtb2RlbFszMl0sIGZpcm13YXJlWzMyXTsKIyAxMTI1fCAgIAoKRXJyb3I6 IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl L3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTMyNzo4OiB3YXJuaW5nOiB1bnVzZWQgdmFyaWFibGUgJ2Rv bmVBSVgnIFstV3VudXNlZC12YXJpYWJsZV0KIyAgIGJvb2wgZG9uZUFJWCA9IGZhbHNlOwojICAg ICAgICBeCiMgMTMyNXwgICAJCWludCBiZWcsIGVuZDsKIyAxMzI2fCAgIAkJc3RyaW5nIGRldkNs YXNzLCBsaW5rLCBnZW5lcmljUGF0aDsKIyAxMzI3fC0+IAkJYm9vbCBkb25lQUlYID0gZmFsc2U7 CiMgMTMyOHwgICAJCXZlY3RvcjxEYXRhSXRlbSo+Ojpjb25zdF9pdGVyYXRvciBqLCBzdG9wOwoj IDEzMjl8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVy bmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NTSV9GaWxsLmNwcDogc2NvcGVfaGludDogSW4gbWVt YmVyIGZ1bmN0aW9uICdpbnQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6Z2V0X21tX3Njc2ko bHN2cGQ6OkNvbXBvbmVudCopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFj ZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjEzNTg6Mjc6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2Vl biBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJl XQojICAgd2hpbGUgKGVuZCA8IHN0ci5sZW5ndGgoKSAmJiBzdHJbZW5kXSAhPSAnOicpCiMgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiMgMTM1NnwgICAKIyAxMzU3fCAgIAkJYmVnID0gZW5k ID0gMDsKIyAxMzU4fC0+IAkJd2hpbGUgKGVuZCA8IHN0ci5sZW5ndGgoKSAmJiBzdHJbZW5kXSAh PSAnOicpCiMgMTM1OXwgICAJCQllbmQrKzsKIyAxMzYwfCAgIAoKRXJyb3I6IENPTVBJTEVSX1dB Uk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lf RmlsbC5jcHA6MTM2NjoyNzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQg dW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICB3aGlsZSAo ZW5kIDwgc3RyLmxlbmd0aCgpICYmIHN0cltlbmRdICE9ICc6JykgewojICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgojIDEzNjR8ICAgCQliZWcgPSBlbmQgKyAxOwojIDEzNjV8ICAgCQllbmQg PSBiZWc7CiMgMTM2NnwtPiAJCXdoaWxlIChlbmQgPCBzdHIubGVuZ3RoKCkgJiYgc3RyW2VuZF0g IT0gJzonKSB7CiMgMTM2N3wgICAJCQllbmQrKzsKIyAxMzY4fCAgIAkJfQoKRXJyb3I6IENPTVBJ TEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2Zz X1NDU0lfRmlsbC5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdzdGQ6OnN0cmluZyBsc3Zw ZDo6cGFyc2VJUFJGaWVsZChzdGQ6OnN0cmluZyYsIHN0ZDo6c3RyaW5nJiknCmxzdnBkLTEuNy41 L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTM5ODoyNDog d2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBl eHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBpZiAoc3RhcnQgPT0gc3RyaW5nOjpucG9z KQojICAgICAgICAgICAgICAgICAgICAgICAgXgojIDEzOTZ8ICAgCQlzdGFydCA9IG91dHB1dC5m aW5kKGZpZWxkKTsKIyAxMzk3fCAgIAojIDEzOTh8LT4gCQlpZiAoc3RhcnQgPT0gc3RyaW5nOjpu cG9zKQojIDEzOTl8ICAgCQkJcmV0dXJuICIiOwojIDE0MDB8ICAgCgpFcnJvcjogQ09NUElMRVJf V0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnNfU0NT SV9GaWxsLmNwcDoxNDAyOjI0OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFu ZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgIGlmIChz dGFydCA9PSBzdHJpbmc6Om5wb3MpCiMgICAgICAgICAgICAgICAgICAgICAgICBeCiMgMTQwMHwg ICAKIyAxNDAxfCAgIAkJc3RhcnQgPSBvdXRwdXQuZmluZCgnOicsIHN0YXJ0KTsKIyAxNDAyfC0+ IAkJaWYgKHN0YXJ0ID09IHN0cmluZzo6bnBvcykKIyAxNDAzfCAgIAkJCXJldHVybiAiIjsKIyAx NDA0fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5h bC9zeXNfaW50ZXJmYWNlL3N5c2ZzX1NDU0lfRmlsbC5jcHA6MTQwODoyMjogd2FybmluZzogY29t cGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBb LVdzaWduLWNvbXBhcmVdCiMgICBpZiAoZW5kID09IHN0cmluZzo6bnBvcykKIyAgICAgICAgICAg ICAgICAgICAgICBeCiMgMTQwNnwgICAJCXN0YXJ0Kys7CiMgMTQwN3wgICAJCWVuZCA9IG91dHB1 dC5maW5kKCdcbicsIHN0YXJ0KTsKIyAxNDA4fC0+IAkJaWYgKGVuZCA9PSBzdHJpbmc6Om5wb3Mp CiMgMTQwOXwgICAJCQllbmQgPSBvdXRwdXQubGVuZ3RoKCk7CiMgMTQxMHwgICAJCXJldHVybiBz dHJpbmcob3V0cHV0LnN1YnN0cihzdGFydCwgZW5kIC0gc3RhcnQpKTsKCkVycm9yOiBDT01QSUxF Ul9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19T Q1NJX0ZpbGwuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6 OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6ZmlsbElQUkRhdGEobHN2cGQ6OkNvbXBvbmVudCopJwpsc3Zw ZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc19TQ1NJX0ZpbGwuY3BwOjE0 NjI6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJyBbLVd1bnVzZWQtdmFyaWFibGVdCiMg ICBpbnQgaTsKIyAgICAgICBeCiMgMTQ2MHwgICAJCWNoYXIgKmRldlNnOwojIDE0NjF8ICAgCQlz dHJpbmcgY21kOwojIDE0NjJ8LT4gCQlpbnQgaTsKIyAxNDYzfCAgIAojIDE0NjR8ICAgCQlpZiAo cGF0aCA9PSAiIikKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50 ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJ biBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6c2NzaUdl dEhUQkwobHN2cGQ6OkNvbXBvbmVudCopJwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2lu dGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjEyMjo1NTogd2FybmluZzogY29tcGFyaXNv biBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWdu LWNvbXBhcmVdCiMgICBpZiAoIChsb2MgPSB0bXAucmZpbmQoIi8iLHRtcC5sZW5ndGgoKSkpICE9 IHN0cmluZzo6bnBvcyApIHsKIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiMgIDEyMHwgICAJCWludCBsb2MsIHBsb2M7CiMgIDEyMXwgICAK IyAgMTIyfC0+IAkJaWYgKCAobG9jID0gdG1wLnJmaW5kKCIvIix0bXAubGVuZ3RoKCkpKSAhPSBz dHJpbmc6Om5wb3MgKSB7CiMgIDEyM3wgICAJCQl0bXAgPSB0bXAuc3Vic3RyKGxvYyArIDEsIHRt cC5sZW5ndGgoKSk7CiMgIDEyNHwgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0x LjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjEy NTo0NTogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50 ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYgKCAobG9jID0gdG1wLmZp bmQoIjoiLCAwKSkgIT0gc3RyaW5nOjpucG9zKQojICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgojICAxMjN8ICAgCQkJdG1wID0gdG1wLnN1YnN0cihsb2MgKyAx LCB0bXAubGVuZ3RoKCkpOwojICAxMjR8ICAgCiMgIDEyNXwtPiAJCQlpZiAoIChsb2MgPSB0bXAu ZmluZCgiOiIsIDApKSAhPSBzdHJpbmc6Om5wb3MpCiMgIDEyNnwgICAJCQkJZmlsbE1lLT5hZGRE ZXZpY2VTcGVjaWZpYygiWEgiLCAiU0NTSSBIb3N0IiwgdG1wLnN1YnN0cigwLCBsb2MpLCA2MCk7 CiMgIDEyN3wgICAKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50 ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjEyOTo0ODogd2Fybmlu ZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50ZWdlciBleHByZXNz aW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYgKCAobG9jID0gdG1wLmZpbmQoIjoiLCBwbG9j KSkgIT0gc3RyaW5nOjpucG9zKQojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgojICAxMjd8ICAgCiMgIDEyOHwgICAJCQlwbG9jID0gbG9jICsgMTsKIyAg MTI5fC0+IAkJCWlmICggKGxvYyA9IHRtcC5maW5kKCI6IiwgcGxvYykpICE9IHN0cmluZzo6bnBv cykKIyAgMTMwfCAgIAkJCQlmaWxsTWUtPmFkZERldmljZVNwZWNpZmljKCJYQiIsICJTQ1NJIEJ1 cyIsCiMgIDEzMXwgICAJCQkJCQkJCQkJCQkJdG1wLnN1YnN0cihwbG9jLCBsb2MgLSBwbG9jKSwg NjApOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9z eXNfaW50ZXJmYWNlL3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6MTMzOjQ4OiB3YXJuaW5nOiBjb21w YXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFst V3NpZ24tY29tcGFyZV0KIyAgICBpZiAoIChsb2MgPSB0bXAuZmluZCgiOiIsIHBsb2MpKSAhPSBz dHJpbmc6Om5wb3MpCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiMgIDEzMXwgICAJCQkJCQkJCQkJCQkJdG1wLnN1YnN0cihwbG9jLCBsb2MgLSBwbG9j KSwgNjApOwojICAxMzJ8ICAgCQkJcGxvYyA9IGxvYyArIDE7CiMgIDEzM3wtPiAJCQlpZiAoIChs b2MgPSB0bXAuZmluZCgiOiIsIHBsb2MpKSAhPSBzdHJpbmc6Om5wb3MpCiMgIDEzNHwgICAJCQkJ ZmlsbE1lLT5hZGREZXZpY2VTcGVjaWZpYygiWFQiLCAiU0NTSSBUYXJnZXQiLAojICAxMzV8ICAg CQkJCQkJCQkJCQl0bXAuc3Vic3RyKHBsb2MsIGxvYyAtIHBsb2MpLCA2MCk7CgpFcnJvcjogQ09N UElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lz ZnN0cmVlY29sbGVjdG9yLmNwcDogc2NvcGVfaGludDogSW4gbWVtYmVyIGZ1bmN0aW9uICd2b2lk IGxzdnBkOjpTeXNGU1RyZWVDb2xsZWN0b3I6OmlkZUdldEhUQkwobHN2cGQ6OkNvbXBvbmVudCop Jwpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0 b3IuY3BwOjE0Nzo1NTogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5z aWduZWQgaW50ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICBpZiAoIChsb2Mg PSB0bXAucmZpbmQoIi8iLHRtcC5sZW5ndGgoKSkpICE9IHN0cmluZzo6bnBvcyApCiMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICAxNDV8 ICAgCQlpbnQgbG9jOwojICAxNDZ8ICAgCiMgIDE0N3wtPiAJCWlmICggKGxvYyA9IHRtcC5yZmlu ZCgiLyIsdG1wLmxlbmd0aCgpKSkgIT0gc3RyaW5nOjpucG9zICkKIyAgMTQ4fCAgIAkJCWZpbGxN ZS0+YWRkRGV2aWNlU3BlY2lmaWMoIlhJIiwgIklERSBEZXZpY2UgSWRlbnRpZmllciIsCiMgIDE0 OXwgICAJCQkJCXRtcC5zdWJzdHIobG9jICsgMSwgdG1wLmxlbmd0aCgpKSwgNjApOwoKRXJyb3I6 IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNl L3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAn bHN2cGQ6OkNvbXBvbmVudCogbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6ZmluZENvbXBvbmVu dChzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4sIHN0ZDo6c3RyaW5nKScKbHN2cGQtMS43 LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDozMTE6 MzM6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVn ZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICAgZm9yIChpbnQgaSA9IDA7IGkgPCBk ZXZzLnNpemUoKTsgaSsrKSB7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMg IDMwOXwgICAJCXN0cmluZyBzeXNQYXRoICkKIyAgMzEwfCAgIAl7CiMgIDMxMXwtPiAJCWZvciAo aW50IGkgPSAwOyBpIDwgZGV2cy5zaXplKCk7IGkrKykgewojICAzMTJ8ICAgCQkJaWYgKGRldnNb aV0tPnN5c0ZzTm9kZS5nZXRWYWx1ZSgpID09IHN5c1BhdGgpIHsKIyAgMzEzfCAgIAkJCQlyZXR1 cm4gZGV2c1tpXTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50 ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJ biBtZW1iZXIgZnVuY3Rpb24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6cmVtb3Zl RHVwbGljYXRlRGV2aWNlcyhzdGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4mKScKbHN2cGQt MS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDoz NTA6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICdpJyBbLVd1bnVzZWQtdmFyaWFibGVdCiMg ICBpbnQgaSwgajsKIyAgICAgICBeCiMgIDM0OHwgICAJCXZlY3RvciA8c3RyaW5nPiBjaGlsZHJl bjsKIyAgMzQ5fCAgIAkJdmVjdG9yIDxDb21wb25lbnQqPjo6aXRlcmF0b3IgcGFyZW50LHRtcDsK IyAgMzUwfC0+IAkJaW50IGksIGo7CiMgIDM1MXwgICAJCXN0cmluZyBkZXZOb2RlLCBkZXZOYW1l OwojICAzNTJ8ICAgCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL2lu dGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDozNTA6MTA6IHdhcm5p bmc6IHVudXNlZCB2YXJpYWJsZSAnaicgWy1XdW51c2VkLXZhcmlhYmxlXQojICAgaW50IGksIGo7 CiMgICAgICAgICAgXgojICAzNDh8ICAgCQl2ZWN0b3IgPHN0cmluZz4gY2hpbGRyZW47CiMgIDM0 OXwgICAJCXZlY3RvciA8Q29tcG9uZW50Kj46Oml0ZXJhdG9yIHBhcmVudCx0bXA7CiMgIDM1MHwt PiAJCWludCBpLCBqOwojICAzNTF8ICAgCQlzdHJpbmcgZGV2Tm9kZSwgZGV2TmFtZTsKIyAgMzUy fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC9z eXNfaW50ZXJmYWNlL3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6IHNjb3BlX2hpbnQ6IEluIG1lbWJl ciBmdW5jdGlvbiAndm9pZCBsc3ZwZDo6U3lzRlNUcmVlQ29sbGVjdG9yOjpmaW5kRGV2aWNlcyhz dGQ6OnZlY3Rvcjxsc3ZwZDo6Q29tcG9uZW50Kj4mLCBjb25zdCBzdHJpbmcmLCBjb25zdCBzdHJp bmcmKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19pbnRlcmZhY2Uvc3lzZnN0cmVlY29s bGVjdG9yLmNwcDo4NTU6Nzogd2FybmluZzogdW51c2VkIHZhcmlhYmxlICd0bXBfY291bnQnIFst V3VudXNlZC12YXJpYWJsZV0KIyAgIGludCB0bXBfY291bnQgPSAwOwojICAgICAgIF4KIyAgODUz fCAgIAkJQ29tcG9uZW50ICp0bXBEZXY7CiMgIDg1NHwgICAJCXN0cmluZyB0bXAsIGRldk5hbWUs IHBhcmVudERldjsKIyAgODU1fC0+IAkJaW50IHRtcF9jb3VudCA9IDA7CiMgIDg1NnwgICAJCWNo YXIgKnBhcmVudDsKIyAgODU3fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEu Ny41L3NyYy9pbnRlcm5hbC9zeXNfaW50ZXJmYWNlL3N5c2ZzdHJlZWNvbGxlY3Rvci5jcHA6IHNj b3BlX2hpbnQ6IEluIG1lbWJlciBmdW5jdGlvbiAnc3RkOjpzdHJpbmcgbHN2cGQ6OlN5c0ZTVHJl ZUNvbGxlY3Rvcjo6Z2V0RGV2VHJlZVBhdGgoc3RkOjpzdHJpbmcpJwpsc3ZwZC0xLjcuNS9zcmMv aW50ZXJuYWwvc3lzX2ludGVyZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOjk0NzoyNDogd2Fy bmluZzogaWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdjaGFyKiBmZ2V0cyhjaGFyKiwgaW50LCBG SUxFKiknLCBkZWNsYXJlZCB3aXRoIGF0dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51 c2VkLXJlc3VsdF0KIyAgICBmZ2V0cyhidWYyLCA1MTIsIGZpKTsKIyAgICAgICAgICAgICAgICAg ICAgICAgIF4KIyAgOTQ1fCAgIAkJZmkgPSBmb3BlbihidWYgLCAiciIpOwojICA5NDZ8ICAgCQlp ZiAoZmkgIT0gTlVMTCkgewojICA5NDd8LT4gCQkJZmdldHMoYnVmMiwgNTEyLCBmaSk7CiMgIDk0 OHwgICAJCQlpID0gMDsKIyAgOTQ5fCAgIAkJCXdoaWxlIChidWYyW2ldICE9ICdcMCcpIHsKCkVy cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvc3lzX2ludGVy ZmFjZS9zeXNmc3RyZWVjb2xsZWN0b3IuY3BwOiBzY29wZV9oaW50OiBJbiBtZW1iZXIgZnVuY3Rp b24gJ3ZvaWQgbHN2cGQ6OlN5c0ZTVHJlZUNvbGxlY3Rvcjo6ZmlsbE5ldENsYXNzKGxzdnBkOjpD b21wb25lbnQqLCBjb25zdCBzdHJpbmcmKScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3N5c19p bnRlcmZhY2Uvc3lzZnN0cmVlY29sbGVjdG9yLmNwcDoxNDU4OjQ3OiB3YXJuaW5nOiBjb21wYXJp c29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2VyIGV4cHJlc3Npb25zIFstV3Np Z24tY29tcGFyZV0KIyAgIHdoaWxlKCAoIHBvcyA9IHZhbC5maW5kKCAnOicgKSApICE9IHN0cmlu Zzo6bnBvcyApCiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KIyAxNDU2fCAgIAkJdmFsID0gdmFsLnN1YnN0ciggMCwgMTcgKTsKIyAxNDU3fCAgIAkJaW50 IHBvczsKIyAxNDU4fC0+IAkJd2hpbGUoICggcG9zID0gdmFsLmZpbmQoICc6JyApICkgIT0gc3Ry aW5nOjpucG9zICkKIyAxNDU5fCAgIAkJewojIDE0NjB8ICAgCQkJdmFsLmVyYXNlKCBwb3MsIDEg KTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvdXBk YXRlci5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdpbnQgbWFpbihpbnQsIGNoYXIqKikn CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC91cGRhdGVyLmNwcDo4OTo5OiB3YXJuaW5nOiBlbnVt ZXJhdGlvbiB2YWx1ZSAnUEZfTlVMTCcgbm90IGhhbmRsZWQgaW4gc3dpdGNoIFstV3N3aXRjaF0K IyAgc3dpdGNoIChQbGF0Zm9ybUNvbGxlY3Rvcjo6cGxhdGZvcm1fdHlwZSkgewojICAgICAgICAg XgojICAgODd8ICAgCXN0cmluZyBwbGF0Zm9ybSA9IFBsYXRmb3JtQ29sbGVjdG9yOjpnZXRfcGxh dGZvcm1fbmFtZSgpOwojICAgODh8ICAgCiMgICA4OXwtPiAJc3dpdGNoIChQbGF0Zm9ybUNvbGxl Y3Rvcjo6cGxhdGZvcm1fdHlwZSkgewojICAgOTB8ICAgCWNhc2UgUEZfUE9XRVJLVk1fUFNFUklF U19HVUVTVDoKIyAgIDkxfCAgIAljYXNlIFBGX0VSUk9SOgoKRXJyb3I6IENPTVBJTEVSX1dBUk5J Tkc6CmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC91cGRhdGVyLmNwcDo4OTo5OiB3YXJuaW5nOiBl bnVtZXJhdGlvbiB2YWx1ZSAnUEZfUE9XRVJLVk1fSE9TVCcgbm90IGhhbmRsZWQgaW4gc3dpdGNo IFstV3N3aXRjaF0KIyAgIDg3fCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0Zm9ybUNvbGxlY3Rv cjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgIDg4fCAgIAojICAgODl8LT4gCXN3aXRjaCAoUGxh dGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgIDkwfCAgIAljYXNlIFBGX1BPV0VS S1ZNX1BTRVJJRVNfR1VFU1Q6CiMgICA5MXwgICAJY2FzZSBQRl9FUlJPUjoKCkVycm9yOiBDT01Q SUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvdXBkYXRlci5jcHA6ODk6OTog d2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BPV0VSVk1fTFBBUicgbm90IGhhbmRsZWQg aW4gc3dpdGNoIFstV3N3aXRjaF0KIyAgIDg3fCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0Zm9y bUNvbGxlY3Rvcjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgIDg4fCAgIAojICAgODl8LT4gCXN3 aXRjaCAoUGxhdGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgIDkwfCAgIAljYXNl IFBGX1BPV0VSS1ZNX1BTRVJJRVNfR1VFU1Q6CiMgICA5MXwgICAJY2FzZSBQRl9FUlJPUjoKCkVy cm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvaW50ZXJuYWwvdXBkYXRlci5j cHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICd2b2lkIGFyY2hpdmVEQihjb25zdCBzdHJpbmcm KScKbHN2cGQtMS43LjUvc3JjL2ludGVybmFsL3VwZGF0ZXIuY3BwOjIwNTo0ODogd2FybmluZzog aWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdpbnQgbGluayhjb25zdCBjaGFyKiwgY29uc3QgY2hh ciopJywgZGVjbGFyZWQgd2l0aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0IFstV3VudXNl ZC1yZXN1bHRdCiMgICBsaW5rKCBmdWxsUGF0aC5jX3N0ciggKSwgb3Muc3RyKCApLmNfc3RyKCAp ICk7CiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMg IDIwM3wgICAJCX0KIyAgMjA0fCAgIAojICAyMDV8LT4gCQlsaW5rKCBmdWxsUGF0aC5jX3N0cigg KSwgb3Muc3RyKCApLmNfc3RyKCApICk7CiMgIDIwNnwgICAJCXVubGluayggZnVsbFBhdGguY19z dHIoICkgKTsKIyAgMjA3fCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41 L3NyYy9pbnRlcm5hbC91cGRhdGVyLmNwcDogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2ludCBl bnN1cmVFbnYoY29uc3Qgc3RyaW5nJiknCmxzdnBkLTEuNy41L3NyYy9pbnRlcm5hbC91cGRhdGVy LmNwcDozNTk6NDQ6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0d2VlbiBzaWduZWQgYW5kIHVuc2ln bmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21wYXJlXQojICBpZiggKCBpZHggPSBl bnYucmZpbmQoICcvJyApICkgPT0gc3RyaW5nOjpucG9zICkKIyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgojICAzNTd8ICAgCiMgIDM1OHwgICAJaW50IGlkeDsK IyAgMzU5fC0+IAlpZiggKCBpZHggPSBlbnYucmZpbmQoICcvJyApICkgPT0gc3RyaW5nOjpucG9z ICkKIyAgMzYwfCAgIAl7CiMgIDM2MXwgICAJCXJldHVybiByZXQ7CgpFcnJvcjogQ09NUElMRVJf V0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6IHNjb3BlX2hpbnQ6IElu IGZ1bmN0aW9uICd2b2lkIHByaW50U3BlY2lmaWMobHN2cGQ6OkNvbXBvbmVudCopJwpsc3ZwZC0x LjcuNS9zcmMvb3V0cHV0L2xzY2ZnLmNwcDoxOTM6MjI6IHdhcm5pbmc6IGNvbXBhcmlzb24gYmV0 d2VlbiBzaWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1Xc2lnbi1jb21w YXJlXQojICAgaWYoIGxvYyAhPSBzdHJpbmc6Om5wb3MgKQojICAgICAgICAgICAgICAgICAgICAg IF4KIyAgMTkxfCAgIAkJbm9kZSA9IG5vZGUuc3Vic3RyKCBsb2MgKzEgKTsKIyAgMTkyfCAgIAkJ bG9jID0gbm9kZS5maW5kKCAnQCcgKTsKIyAgMTkzfC0+IAkJaWYoIGxvYyAhPSBzdHJpbmc6Om5w b3MgKQojICAxOTR8ICAgCQl7CiMgIDE5NXwgICAJCQljb3V0IDw8ICIgIE5hbWU6ICAiOwoKRXJy b3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNjZmcuY3BwOjE5 NjoyMzogd2FybmluZzogY29tcGFyaXNvbiBiZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgaW50 ZWdlciBleHByZXNzaW9ucyBbLVdzaWduLWNvbXBhcmVdCiMgICAgaWYoIGxvYyA9PSBzdHJpbmc6 Om5wb3MgKQojICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDE5NHwgICAJCXsKIyAgMTk1fCAg IAkJCWNvdXQgPDwgIiAgTmFtZTogICI7CiMgIDE5NnwtPiAJCQlpZiggbG9jID09IHN0cmluZzo6 bnBvcyApCiMgIDE5N3wgICAJCQkJY291dCA8PCBub2RlOwojICAxOTh8ICAgCQkJZWxzZQoKRXJy b3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNjZmcuY3BwOiBz Y29wZV9oaW50OiBJbiBmdW5jdGlvbiAnaW50IGdldENQVU1vZGVsTmFtZShsc3ZwZDo6U3lzdGVt Kiwgc3RkOjpzdHJpbmcmKScKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6NjEyOjIz OiB3YXJuaW5nOiBjb21wYXJpc29uIGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCBpbnRlZ2Vy IGV4cHJlc3Npb25zIFstV3NpZ24tY29tcGFyZV0KIyAgICBpZiAoYmVnICE9IHN0cmluZzo6bnBv cykgCiMgICAgICAgICAgICAgICAgICAgICAgIF4KIyAgNjEwfCAgIAkJaWYgKG1vZGVsX3RtcC5s ZW5ndGgoKSA+IDApIHsKIyAgNjExfCAgIAkJCWludCBiZWcgPSBtb2RlbF90bXAuZmluZCgiOiAi KTsKIyAgNjEyfC0+IAkJCWlmIChiZWcgIT0gc3RyaW5nOjpucG9zKSAKIyAgNjEzfCAgIAkJCQlu YW1lID0gbW9kZWxfdG1wLnN1YnN0cihiZWcgKyAxLCBtb2RlbF90bXAubGVuZ3RoKCkgLSBiZWcg KyAxKTsKIyAgNjE0fCAgIAkJCQlyZXR1cm4gMDsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgps c3ZwZC0xLjcuNS9zcmMvb3V0cHV0L2xzY2ZnLmNwcDogc2NvcGVfaGludDogSW4gZnVuY3Rpb24g J2ludCBtYWluKGludCwgY2hhcioqKScKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6 NzQwOjk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZhbHVlICdQRl9OVUxMJyBub3QgaGFuZGxlZCBp biBzd2l0Y2ggWy1Xc3dpdGNoXQojICBzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9y bV90eXBlKSB7CiMgICAgICAgICBeCiMgIDczOHwgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZv cm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCk7CiMgIDczOXwgICAKIyAgNzQwfC0+IAlz d2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgIDc0MXwgICAJY2Fz ZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNUOgojICA3NDJ8ICAgCWNhc2UgUEZfRVJST1I6CgpF cnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc2NmZy5jcHA6 NzQwOjk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZhbHVlICdQRl9QT1dFUktWTV9IT1NUJyBub3Qg aGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dpdGNoXQojICA3Mzh8ICAgCXN0cmluZyBwbGF0Zm9ybSA9 IFBsYXRmb3JtQ29sbGVjdG9yOjpnZXRfcGxhdGZvcm1fbmFtZSgpOwojICA3Mzl8ICAgCiMgIDc0 MHwtPiAJc3dpdGNoIChQbGF0Zm9ybUNvbGxlY3Rvcjo6cGxhdGZvcm1fdHlwZSkgewojICA3NDF8 ICAgCWNhc2UgUEZfUE9XRVJLVk1fUFNFUklFU19HVUVTVDoKIyAgNzQyfCAgIAljYXNlIFBGX0VS Uk9SOgoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNj ZmcuY3BwOjc0MDo5OiB3YXJuaW5nOiBlbnVtZXJhdGlvbiB2YWx1ZSAnUEZfUE9XRVJWTV9MUEFS JyBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dpdGNoXQojICA3Mzh8ICAgCXN0cmluZyBwbGF0 Zm9ybSA9IFBsYXRmb3JtQ29sbGVjdG9yOjpnZXRfcGxhdGZvcm1fbmFtZSgpOwojICA3Mzl8ICAg CiMgIDc0MHwtPiAJc3dpdGNoIChQbGF0Zm9ybUNvbGxlY3Rvcjo6cGxhdGZvcm1fdHlwZSkgewoj ICA3NDF8ICAgCWNhc2UgUEZfUE9XRVJLVk1fUFNFUklFU19HVUVTVDoKIyAgNzQyfCAgIAljYXNl IFBGX0VSUk9SOgoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRw dXQvbHNtY29kZS5jcHA6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdpbnQgbWFpbihpbnQsIGNo YXIqKiknCmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHNtY29kZS5jcHA6MzEzOjk6IHdhcm5pbmc6 IGVudW1lcmF0aW9uIHZhbHVlICdQRl9OVUxMJyBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dp dGNoXQojICBzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgICAg ICAgICBeCiMgIDMxMXwgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6Omdl dF9wbGF0Zm9ybV9uYW1lKCk7CiMgIDMxMnwgICAKIyAgMzEzfC0+IAlzd2l0Y2ggKFBsYXRmb3Jt Q29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgIDMxNHwgICAJY2FzZSBQRl9QT1dFUktWTV9Q U0VSSUVTX0dVRVNUOgojICAzMTV8ICAgCWNhc2UgUEZfRVJST1I6CgpFcnJvcjogQ09NUElMRVJf V0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc21jb2RlLmNwcDozMTM6OTogd2Fybmlu ZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BPV0VSS1ZNX0hPU1QnIG5vdCBoYW5kbGVkIGluIHN3 aXRjaCBbLVdzd2l0Y2hdCiMgIDMxMXwgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xs ZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCk7CiMgIDMxMnwgICAKIyAgMzEzfC0+IAlzd2l0Y2gg KFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgIDMxNHwgICAJY2FzZSBQRl9Q T1dFUktWTV9QU0VSSUVTX0dVRVNUOgojICAzMTV8ICAgCWNhc2UgUEZfRVJST1I6CgpFcnJvcjog Q09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43LjUvc3JjL291dHB1dC9sc21jb2RlLmNwcDozMTM6 OTogd2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BPV0VSVk1fTFBBUicgbm90IGhhbmRs ZWQgaW4gc3dpdGNoIFstV3N3aXRjaF0KIyAgMzExfCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0 Zm9ybUNvbGxlY3Rvcjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgMzEyfCAgIAojICAzMTN8LT4g CXN3aXRjaCAoUGxhdGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgMzE0fCAgIAlj YXNlIFBGX1BPV0VSS1ZNX1BTRVJJRVNfR1VFU1Q6CiMgIDMxNXwgICAJY2FzZSBQRl9FUlJPUjoK CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMvb3V0cHV0L2xzdmlvLmNw cDogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2ludCBtYWluKGludCwgY2hhcioqKScKbHN2cGQt MS43LjUvc3JjL291dHB1dC9sc3Zpby5jcHA6MjIwOjk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZh bHVlICdQRl9OVUxMJyBub3QgaGFuZGxlZCBpbiBzd2l0Y2ggWy1Xc3dpdGNoXQojICBzd2l0Y2gg KFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9ybV90eXBlKSB7CiMgICAgICAgICBeCiMgIDIxOHwg ICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1l KCk7CiMgIDIxOXwgICAKIyAgMjIwfC0+IAlzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0 Zm9ybV90eXBlKSB7CiMgIDIyMXwgICAJY2FzZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNUOgoj ICAyMjJ8ICAgCWNhc2UgUEZfUE9XRVJLVk1fSE9TVDoKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5H Ogpsc3ZwZC0xLjcuNS9zcmMvb3V0cHV0L2xzdmlvLmNwcDoyMjA6OTogd2FybmluZzogZW51bWVy YXRpb24gdmFsdWUgJ1BGX1BPV0VSVk1fTFBBUicgbm90IGhhbmRsZWQgaW4gc3dpdGNoIFstV3N3 aXRjaF0KIyAgMjE4fCAgIAlzdHJpbmcgcGxhdGZvcm0gPSBQbGF0Zm9ybUNvbGxlY3Rvcjo6Z2V0 X3BsYXRmb3JtX25hbWUoKTsKIyAgMjE5fCAgIAojICAyMjB8LT4gCXN3aXRjaCAoUGxhdGZvcm1D b2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgMjIxfCAgIAljYXNlIFBGX1BPV0VSS1ZNX1BT RVJJRVNfR1VFU1Q6CiMgIDIyMnwgICAJY2FzZSBQRl9QT1dFUktWTV9IT1NUOgoKRXJyb3I6IENP TVBJTEVSX1dBUk5JTkc6CmxzdnBkLTEuNy41L3NyYy9vdXRwdXQvbHN2cGQuY3BwOiBzY29wZV9o aW50OiBJbiBmdW5jdGlvbiAnaW50IG1haW4oaW50LCBjaGFyKiopJwpsc3ZwZC0xLjcuNS9zcmMv b3V0cHV0L2xzdnBkLmNwcDo0MDU6OTogd2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX05V TEwnIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdzd2l0Y2hdCiMgIHN3aXRjaCAoUGxhdGZvcm1D b2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUpIHsKIyAgICAgICAgIF4KIyAgNDAzfCAgIAlzdHJpbmcg cGxhdGZvcm0gPSBQbGF0Zm9ybUNvbGxlY3Rvcjo6Z2V0X3BsYXRmb3JtX25hbWUoKTsKIyAgNDA0 fCAgIAojICA0MDV8LT4gCXN3aXRjaCAoUGxhdGZvcm1Db2xsZWN0b3I6OnBsYXRmb3JtX3R5cGUp IHsKIyAgNDA2fCAgIAljYXNlIFBGX1BPV0VSS1ZNX1BTRVJJRVNfR1VFU1Q6CiMgIDQwN3wgICAJ Y2FzZSBQRl9FUlJPUjoKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsc3ZwZC0xLjcuNS9zcmMv b3V0cHV0L2xzdnBkLmNwcDo0MDU6OTogd2FybmluZzogZW51bWVyYXRpb24gdmFsdWUgJ1BGX1BP V0VSS1ZNX0hPU1QnIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdzd2l0Y2hdCiMgIDQwM3wgICAJ c3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9uYW1lKCk7 CiMgIDQwNHwgICAKIyAgNDA1fC0+IAlzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpwbGF0Zm9y bV90eXBlKSB7CiMgIDQwNnwgICAJY2FzZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNUOgojICA0 MDd8ICAgCWNhc2UgUEZfRVJST1I6CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbHN2cGQtMS43 LjUvc3JjL291dHB1dC9sc3ZwZC5jcHA6NDA1Ojk6IHdhcm5pbmc6IGVudW1lcmF0aW9uIHZhbHVl ICdQRl9QT1dFUlZNX0xQQVInIG5vdCBoYW5kbGVkIGluIHN3aXRjaCBbLVdzd2l0Y2hdCiMgIDQw M3wgICAJc3RyaW5nIHBsYXRmb3JtID0gUGxhdGZvcm1Db2xsZWN0b3I6OmdldF9wbGF0Zm9ybV9u YW1lKCk7CiMgIDQwNHwgICAKIyAgNDA1fC0+IAlzd2l0Y2ggKFBsYXRmb3JtQ29sbGVjdG9yOjpw bGF0Zm9ybV90eXBlKSB7CiMgIDQwNnwgICAJY2FzZSBQRl9QT1dFUktWTV9QU0VSSUVTX0dVRVNU OgojICA0MDd8ICAgCWNhc2UgUEZfRVJST1I6Cg== ------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; name=libservicelog-results.txt Content-Disposition: attachment; filename=libservicelog-results.txt Content-Transfer-Encoding: base64 RXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9hZGRsX2Rh dGEuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2luc2VydF9hZGRsX2RhdGFfb3MnCmxpYnNl cnZpY2Vsb2ctMS4xLjE1L3NyYy9hZGRsX2RhdGEuYzo3MDo0OiB3YXJuaW5nOiBmb3JtYXQgJyVs bHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1 dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICBldmVudC0+ aWQsIHZlcnNpb24sIG9zLT5zdWJzeXN0ZW0sIG9zLT5kcml2ZXIsIG9zLT5kZXZpY2UpOwojICAg IF4KIyAgIDY4fCAgIAlzbnByaW50ZihidWYsIDEwMjQsICJJTlNFUlQgT1IgUkVQTEFDRSBJTlRP IG9zIChldmVudF9pZCwgdmVyc2lvbiwgc3Vic3lzdGVtLCAiCiMgICA2OXwgICAJCSAiZHJpdmVy LCBkZXZpY2UpIFZBTFVFUyAoJWxsdSwgJyVzJywgJyVzJywgJyVzJywgJyVzJyk7IiwKIyAgIDcw fC0+IAkJIGV2ZW50LT5pZCwgdmVyc2lvbiwgb3MtPnN1YnN5c3RlbSwgb3MtPmRyaXZlciwgb3Mt PmRldmljZSk7CiMgICA3MXwgICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVM TCwgTlVMTCwgTlVMTCk7CiMgICA3MnwgICAJaWYgKHJjICE9IFNRTElURV9PSykKCkVycm9yOiBD T01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvYWRkbF9kYXRhLmM6IHNj b3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdpbnNlcnRfYWRkbF9kYXRhX3J0YXMnCmxpYnNlcnZpY2Vs b2ctMS4xLjE1L3NyYy9hZGRsX2RhdGEuYzoxMDU6NDogd2FybmluZzogZm9ybWF0ICclbGx1JyBl eHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJn dW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgcnRhcy0+YWRkbF93 b3Jkc1s3XSk7CiMgICAgXgojICAxMDN8ICAgCQkgcnRhcy0+YWRkbF93b3Jkc1sxXSwgcnRhcy0+ YWRkbF93b3Jkc1syXSwgcnRhcy0+YWRkbF93b3Jkc1szXSwKIyAgMTA0fCAgIAkJIHJ0YXMtPmFk ZGxfd29yZHNbNF0sIHJ0YXMtPmFkZGxfd29yZHNbNV0sIHJ0YXMtPmFkZGxfd29yZHNbNl0sCiMg IDEwNXwtPiAJCSBydGFzLT5hZGRsX3dvcmRzWzddKTsKIyAgMTA2fCAgIAlyYyA9IHNxbGl0ZTNf ZXhlYyhzbG9nLT5kYiwgYnVmLCBOVUxMLCBOVUxMLCBOVUxMKTsKIyAgMTA3fCAgIAlpZiAocmMg IT0gU1FMSVRFX09LKQoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4x LjE1L3NyYy9hZGRsX2RhdGEuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2luc2VydF9hZGRs X2RhdGFfZW5jbG9zdXJlJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvYWRkbF9kYXRhLmM6MTMx OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25n IGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDQgaGFzIHR5cGUgJ3VpbnQ2NF90JyBb LVdmb3JtYXQ9XQojICAgIGVuY2wtPmVuY2xvc3VyZV9tb2RlbCwgZW5jbC0+ZW5jbG9zdXJlX3Nl cmlhbCk7CiMgICAgXgojICAxMjl8ICAgCXNucHJpbnRmKGJ1ZiwgMTAyNCwgIklOU0VSVCBPUiBS RVBMQUNFIElOVE8gZW5jbG9zdXJlIChldmVudF9pZCwgZW5jbG9zdXJlX21vZGVsLCAiCiMgIDEz MHwgICAJCSAiZW5jbG9zdXJlX3NlcmlhbCkgVkFMVUVTICglbGx1LCAnJXMnLCAnJXMnKTsiLCBl dmVudC0+aWQsCiMgIDEzMXwtPiAJCSBlbmNsLT5lbmNsb3N1cmVfbW9kZWwsIGVuY2wtPmVuY2xv c3VyZV9zZXJpYWwpOwojICAxMzJ8ICAgCXJjID0gc3FsaXRlM19leGVjKHNsb2ctPmRiLCBidWYs IE5VTEwsIE5VTEwsIE5VTEwpOwojICAxMzN8ICAgCWlmIChyYyAhPSBTUUxJVEVfT0spCgpFcnJv cjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2FkZGxfZGF0YS5j OiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnaW5zZXJ0X2FkZGxfZGF0YV9ibWMnCmxpYnNlcnZp Y2Vsb2ctMS4xLjE1L3NyYy9hZGRsX2RhdGEuYzoxNjE6NDogd2FybmluZzogZm9ybWF0ICclbGx1 JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQg YXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgYm1jLT5kaXJl Y3Rpb24pOwojICAgIF4KIyAgMTU5fCAgIAkJIGJtYy0+Z2VuZXJhdG9yLCBibWMtPnZlcnNpb24s IGJtYy0+c2Vuc29yX3R5cGUsCiMgIDE2MHwgICAJCSBibWMtPnNlbnNvcl9udW1iZXIsIGJtYy0+ ZXZlbnRfY2xhc3MsIGJtYy0+ZXZlbnRfdHlwZSwKIyAgMTYxfC0+IAkJIGJtYy0+ZGlyZWN0aW9u KTsKIyAgMTYyfCAgIAlyYyA9IHNxbGl0ZTNfZXhlYyhzbG9nLT5kYiwgYnVmLCBOVUxMLCBOVUxM LCBOVUxMKTsKIyAgMTYzfCAgIAlpZiAocmMgIT0gU1FMSVRFX09LKQoKRXJyb3I6IENPTVBJTEVS X1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOiBzY29wZV9oaW50OiBJ biBmdW5jdGlvbiAncHV0X2Jsb2InCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjEw Njo0OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9u ZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA2IGhhcyB0eXBlICd1aW50NjRfdCcg Wy1XZm9ybWF0PV0KIyAgICB0YWJsZSwgY29sdW1uLCByb3cpOwojICAgIF4KIyAgMTA0fCAgIAoj ICAxMDV8ICAgCXNucHJpbnRmKHF1ZXJ5LCA4MCwgIlVQREFURSAlcyBTRVQgJXMgPSA/IFdIRVJF IGlkID0gJWxsdSIsCiMgIDEwNnwtPiAJCSB0YWJsZSwgY29sdW1uLCByb3cpOwojICAxMDd8ICAg CiMgIDEwOHwgICAJZG8gewoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ct MS4xLjE1L3NyYy9ldmVudC5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnc2VydmljZWxvZ19l dmVudF9sb2cnCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjM0MDo2OiB3YXJuaW5n OiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2ln bmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0K IyAgICAgIGZydSwgc2VyaWFsLCBjY2luKTsKIyAgICAgIF4KIyAgMzM4fCAgIAkJCQkgIiclcycs ICclcycsICclcycsICclcycpOyIsIGV2ZW50X2lkLAojICAzMzl8ICAgCQkJCSBjYWxsb3V0LT5w cmlvcml0eSwgY2FsbG91dC0+dHlwZSwgcHJvYywgbG9jLAojICAzNDB8LT4gCQkJCSBmcnUsIHNl cmlhbCwgY2Npbik7CiMgIDM0MXwgICAJCQlyYyA9IHNxbGl0ZTNfZXhlYyhzbG9nLT5kYiwgYnVm LCBOVUxMLCBOVUxMLCAmZXJyKTsKIyAgMzQyfCAgIAkJCWlmIChyYyAhPSBTUUxJVEVfT0spIHsK CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQu Yzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2dfZXZlbnRfZ2V0JwpsaWJzZXJ2 aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQuYzo0Mjk6Mjogd2FybmluZzogZm9ybWF0ICclbGx1JyBl eHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJn dW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKHF1ZXJ5 LCAzMCwgImlkPSVsbHUiLCBldmVudF9pZCk7CiMgIF4KIyAgNDI3fCAgIAljaGFyIHF1ZXJ5WzMw XTsKIyAgNDI4fCAgIAojICA0Mjl8LT4gCXNucHJpbnRmKHF1ZXJ5LCAzMCwgImlkPSVsbHUiLCBl dmVudF9pZCk7CiMgIDQzMHwgICAJcmV0dXJuIHNlcnZpY2Vsb2dfZXZlbnRfcXVlcnkoc2xvZywg cXVlcnksIGV2ZW50KTsKIyAgNDMxfCAgIH0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJz ZXJ2aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3Nl cnZpY2Vsb2dfZXZlbnRfcXVlcnknCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjU4 Nzo1OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9u ZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcg Wy1XZm9ybWF0PV0KIyAgICAgImV2ZW50X2lkID0gJWxsdSIsIGUtPmlkKTsKIyAgICAgXgojICA1 ODV8ICAgCQkvKiBSZXRyaWV2ZSBhbnkgY2FsbG91dHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXZl bnQgKi8KIyAgNTg2fCAgIAkJc25wcmludGYoYnVmLCA1MTIsICJTRUxFQ1QgKiBGUk9NIGNhbGxv dXRzIFdIRVJFICIKIyAgNTg3fC0+IAkJCSAiZXZlbnRfaWQgPSAlbGx1IiwgZS0+aWQpOwojICA1 ODh8ICAgCQlyYyA9IHNxbGl0ZTNfZXhlYyhzbG9nLT5kYiwgYnVmLCBidWlsZF9jYWxsb3V0LCAm KGUtPmNhbGxvdXRzKSwKIyAgNTg5fCAgIAkJCQkgIE5VTEwpOwoKRXJyb3I6IENPTVBJTEVSX1dB Uk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjU5Nzo2OiB3YXJuaW5nOiBm b3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVk IGludCcsIGJ1dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAg ICAgICJldmVudF9pZCA9ICVsbHUiLCB0YWJsZSwgZS0+aWQpOwojICAgICAgXgojICA1OTV8ICAg CiMgIDU5NnwgICAJCQlzbnByaW50ZihidWYsIDUxMiwgIlNFTEVDVCAqIEZST00gJXMgV0hFUkUg IgojICA1OTd8LT4gCQkJCSAiZXZlbnRfaWQgPSAlbGx1IiwgdGFibGUsIGUtPmlkKTsKIyAgNTk4 fCAgIAojICA1OTl8ICAgCQkJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgcmV0cmll dmVfZmNuLCBlLCAmZXJyKTsKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9n LTEuMS4xNS9zcmMvZXZlbnQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2df ZXZlbnRfY2xvc2UnCmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOjYyNDo0OiB3YXJu aW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVu c2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0 PV0KIyAgICBldmVudF9pZCk7CiMgICAgXgojICA2MjJ8ICAgCiMgIDYyM3wgICAJc25wcmludGYo YnVmLCA4MCwgIlVQREFURSBldmVudHMgU0VUIGNsb3NlZD0xIFdIRVJFIGlkPSVsbHUiLAojICA2 MjR8LT4gCQkgZXZlbnRfaWQpOwojICA2MjV8ICAgCiMgIDYyNnwgICAJcmMgPSBzcWxpdGUzX2V4 ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpFcnJvcjogQ09NUElMRVJfV0FS TklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50LmM6IHNjb3BlX2hpbnQ6IEluIGZ1 bmN0aW9uICdzZXJ2aWNlbG9nX2V2ZW50X3JlcGFpcicKbGlic2VydmljZWxvZy0xLjEuMTUvc3Jj L2V2ZW50LmM6NjQ4OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBv ZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDQgaGFzIHR5cGUg J3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICJXSEVSRSBpZD0lbGx1IiwgcmVwYWlyX2lkLCBl dmVudF9pZCk7CiMgICAgXgojICA2NDZ8ICAgCiMgIDY0N3wgICAJc25wcmludGYoYnVmLCA4MCwg IlVQREFURSBldmVudHMgU0VUIGNsb3NlZD0xLCByZXBhaXI9JWxsdSAiCiMgIDY0OHwtPiAJCSAi V0hFUkUgaWQ9JWxsdSIsIHJlcGFpcl9pZCwgZXZlbnRfaWQpOwojICA2NDl8ICAgCiMgIDY1MHwg ICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpF cnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50LmM6 NjQ4OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICds b25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDUgaGFzIHR5cGUgJ3VpbnQ2NF90 JyBbLVdmb3JtYXQ9XQojICA2NDZ8ICAgCiMgIDY0N3wgICAJc25wcmludGYoYnVmLCA4MCwgIlVQ REFURSBldmVudHMgU0VUIGNsb3NlZD0xLCByZXBhaXI9JWxsdSAiCiMgIDY0OHwtPiAJCSAiV0hF UkUgaWQ9JWxsdSIsIHJlcGFpcl9pZCwgZXZlbnRfaWQpOwojICA2NDl8ICAgCiMgIDY1MHwgICAJ cmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpFcnJv cjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50LmM6IHNj b3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdkZWxldGVfcm93JwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9z cmMvZXZlbnQuYzo2Njg6Mjogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50 IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgNiBoYXMgdHlw ZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKGJ1ZiwgODAsICJERUxFVEUgRlJP TSAlcyBXSEVSRSAlcz0lbGx1IiwgdGFibGUsIGlkX2NvbHVtbiwgaWQpOwojICBeCiMgIDY2Nnwg ICAJY2hhciBidWZbODBdLCAqZXJyOwojICA2Njd8ICAgCiMgIDY2OHwtPiAJc25wcmludGYoYnVm LCA4MCwgIkRFTEVURSBGUk9NICVzIFdIRVJFICVzPSVsbHUiLCB0YWJsZSwgaWRfY29sdW1uLCBp ZCk7CiMgIDY2OXwgICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVM TCwgJmVycik7CiMgIDY3MHwgICAJaWYgKHJjICE9IFNRTElURV9PSykgewoKRXJyb3I6IENPTVBJ TEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ldmVudC5jOiBzY29wZV9oaW50 OiBJbiBmdW5jdGlvbiAnc2VydmljZWxvZ19ldmVudF9wcmludCcKbGlic2VydmljZWxvZy0xLjEu MTUvc3JjL2V2ZW50LmM6NzU3Ojc6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1 bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDMgaGFz IHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICAgIGV2ZW50LT5pZCk7CiMgICAgICAg XgojICA3NTV8ICAgCQkJLyoganVzdCBwcmludCBwYXJhbS92YWx1ZSBwYWlycyAqLwojICA3NTZ8 ICAgCQkJY291bnQgKz0gZnByaW50ZihzdHIsICJTZXJ2aWNlbG9nSUQ6ICVsbHVcbiIsCiMgIDc1 N3wtPiAJCQkJCSBldmVudC0+aWQpOwojICA3NTh8ICAgCQkJbG9jYWx0aW1lX3IoJihldmVudC0+ dGltZV9sb2dnZWQpLCAmdGltZSk7CiMgIDc1OXwgICAJCQljb3VudCArPSBmcHJpbnRmKHN0ciwg IkxvZ1RpbWU6ICUwMmQvJTAyZC8lMDRkICIKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJz ZXJ2aWNlbG9nLTEuMS4xNS9zcmMvZXZlbnQuYzo4MDY6Nzogd2FybmluZzogZm9ybWF0ICclbGx1 JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQg YXJndW1lbnQgMyBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgICAgZXZlbnQt PnJlcGFpcik7CiMgICAgICAgXgojICA4MDR8ICAgCQkJY291bnQgKz0gZnByaW50ZihzdHIsICJD bG9zZWQ6ICVkXG4iLCBldmVudC0+Y2xvc2VkKTsKIyAgODA1fCAgIAkJCWNvdW50ICs9IGZwcmlu dGYoc3RyLCAiUmVwYWlySUQ6ICVsbHVcbiIsCiMgIDgwNnwtPiAJCQkJCSBldmVudC0+cmVwYWly KTsKIyAgODA3fCAgIAkJCXdoaWxlIChjYWxsb3V0ICE9IE5VTEwpIHsKIyAgODA4fCAgIAkJCQlj b3VudCArPSBmcHJpbnRmKHN0ciwgIkNhbGxvdXQ6ICVjICVkICVzICVzICVzICIKCkVycm9yOiBD UFBDSEVDS19XQVJOSU5HIChDV0UtNDE1KToKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL2V2ZW50 LmM6OTQ4OiBlcnJvcltkb3VibGVGcmVlXTogTWVtb3J5IHBvaW50ZWQgdG8gYnkgJ3QxJyBpcyBm cmVlZCB0d2ljZS4KIyAgOTQ2fCAgIAkJaWYgKGFkZGxfZGF0YV9mY25zW3QxLT50eXBlXS5mcmVl ICE9IE5VTEwpCiMgIDk0N3wgICAJCQlhZGRsX2RhdGFfZmNuc1t0MS0+dHlwZV0uZnJlZSh0MSk7 CiMgIDk0OHwtPiAJCWZyZWUodDEpOwojICA5NDl8ICAgCQl0MSA9IHQyOwojICA5NTB8ICAgCX0K CkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvbm90aWZ5 LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdzZXJ2aWNlbG9nX25vdGlmeV9nZXQnCmxpYnNl cnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzoxNjY6Mjogd2FybmluZzogZm9ybWF0ICclbGx1 JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQg YXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKHF1 ZXJ5LCAzMCwgImlkPSVsbHUiLCBub3RpZnlfaWQpOwojICBeCiMgIDE2NHwgICAJY2hhciBxdWVy eVszMF07CiMgIDE2NXwgICAKIyAgMTY2fC0+IAlzbnByaW50ZihxdWVyeSwgMzAsICJpZD0lbGx1 Iiwgbm90aWZ5X2lkKTsKIyAgMTY3fCAgIAlyZXR1cm4gc2VydmljZWxvZ19ub3RpZnlfcXVlcnko c2xvZywgcXVlcnksIG5vdGlmeSk7CiMgIDE2OHwgICB9CgpFcnJvcjogQ09NUElMRVJfV0FSTklO RzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOiBzY29wZV9oaW50OiBJbiBmdW5j dGlvbiAnc2VydmljZWxvZ19ub3RpZnlfdXBkYXRlJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMv bm90aWZ5LmM6MzE2OjQ6IHdhcm5pbmc6IGZvcm1hdCAnJWxsdScgZXhwZWN0cyBhcmd1bWVudCBv ZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50JywgYnV0IGFyZ3VtZW50IDggaGFzIHR5cGUg J3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgIG5vdGlmeS0+bWF0Y2gsIG5vdGlmeV9pZCk7CiMg ICAgXgojICAzMTR8ICAgCQkgImNvbW1hbmQ9JyVzJywgbWV0aG9kPSVkLCBtYXRjaD0nJXMnKSBX SEVSRSBpZD0lbGx1IiwKIyAgMzE1fCAgIAkJIG5vdGlmeS0+bm90aWZ5LCBjb21tYW5kLCBub3Rp ZnktPm1ldGhvZCwKIyAgMzE2fC0+IAkJIG5vdGlmeS0+bWF0Y2gsIG5vdGlmeV9pZCk7CiMgIDMx N3wgICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7 CiMgIDMxOHwgICAJaWYgKHJjICE9IFNRTElURV9PSykgewoKRXJyb3I6IENPTVBJTEVSX1dBUk5J Tkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzogc2NvcGVfaGludDogSW4gZnVu Y3Rpb24gJ3NlcnZpY2Vsb2dfbm90aWZ5X2RlbGV0ZScKbGlic2VydmljZWxvZy0xLjEuMTUvc3Jj L25vdGlmeS5jOjM0MTo0OiB3YXJuaW5nOiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQg b2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1dCBhcmd1bWVudCA0IGhhcyB0eXBl ICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICBub3RpZnlfaWQpOwojICAgIF4KIyAgMzM5fCAg IAojICAzNDB8ICAgCXNucHJpbnRmKGJ1ZiwgODAsICJERUxFVEUgRlJPTSBub3RpZmljYXRpb25z IFdIRVJFIGlkPSVsbHUiLAojICAzNDF8LT4gCQkgbm90aWZ5X2lkKTsKIyAgMzQyfCAgIAojICAz NDN8ICAgCXJjID0gc3FsaXRlM19leGVjKHNsb2ctPmRiLCBidWYsIE5VTEwsIE5VTEwsICZlcnIp OwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3Rp ZnkuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2dfbm90aWZ5X3ByaW50Jwps aWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvbm90aWZ5LmM6Mzc3Ojc6IHdhcm5pbmc6IGZvcm1hdCAn JWxsdScgZXhwZWN0cyBhcmd1bWVudCBvZiB0eXBlICdsb25nIGxvbmcgdW5zaWduZWQgaW50Jywg YnV0IGFyZ3VtZW50IDMgaGFzIHR5cGUgJ3VpbnQ2NF90JyBbLVdmb3JtYXQ9XQojICAgICAgIG5v dGlmeS0+aWQpOwojICAgICAgIF4KIyAgMzc1fCAgIAojICAzNzZ8ICAgCQkJY291bnQgKz0gZnBy aW50ZihzdHIsICJTZXJ2aWNlbG9nSUQ6ICVsbHVcbiIsCiMgIDM3N3wtPiAJCQkJCSBub3RpZnkt PmlkKTsKIyAgMzc4fCAgIAkJCWxvY2FsdGltZV9yKCYobm90aWZ5LT50aW1lX2xvZ2dlZCksICZ0 aW1lKTsKIyAgMzc5fCAgIAkJCWNvdW50ICs9IGZwcmludGYoc3RyLCAiTG9nVGltZTogJTAyZC8l MDJkLyUwNGQgIgoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1 L3NyYy9ub3RpZnkuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3J1bl9ub3RpZmljYXRpb25f dG9vbCcKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOjQ3NTo4OiB3YXJuaW5nOiBm b3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVk IGludCcsIGJ1dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAg ICAgICAgbm90aWZ5LT5jb21tYW5kLCBpZCk7CiMgICAgICAgIF4KIyAgNDczfCAgIAkJaWYgKG5v dGlmeS0+bWV0aG9kID09IFNMX01FVEhPRF9OVU1fVklBX0NNRF9MSU5FKQojICA0NzR8ICAgCQkJ c25wcmludGYoY21kLCBERVNDX01BWExFTiArIDEwLCAiJXMgJWxsdSIsCiMgIDQ3NXwtPiAJCQkJ CQkgbm90aWZ5LT5jb21tYW5kLCBpZCk7CiMgIDQ3NnwgICAJCWVsc2UgewojICA0Nzd8ICAgCQkJ LyogbmVlZCBwaXBlcyB0byBwYXNzIGluIHN0ZGluICovCgpFcnJvcjogQ0xBTkdfV0FSTklORzoK bGlic2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOjQ5MDo0OiB3YXJuaW5nOiBGdW5jdGlv biBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKIyAgICAgICAgICAgICAg ICAgICAgICAgIGNsb3NlKHBpcGVfZmRbMV0pOwojICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn4KIyAgNDg4fCAgIAkJfQojICA0ODl8ICAgCQllbHNlIGlmIChwaWQgPT0g MCkgewkvKiBjaGlsZDsgc2V0IHVwIHBpcGVzLCBleGVjIGNvbW1hbmQgKi8KIyAgNDkwfC0+IAkJ CWNsb3NlKHBpcGVfZmRbMV0pOwojICA0OTF8ICAgCQkJZHVwMihwaXBlX2ZkWzBdLCBmaWxlbm8o c3RkaW4pKTsKIyAgNDkyfCAgIAoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vs b2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo1Mzk6NDogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBl Y3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1l bnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgc25wcmludGYoYnVmLCAx MjgsICIlbGx1IiwgaWQpOwojICAgIF4KIyAgNTM3fCAgIAkJaWYgKG5vdGlmeS0+bWV0aG9kID09 IFNMX01FVEhPRF9OVU1fVklBX1NURElOKSB7CiMgIDUzOHwgICAJCQljbG9zZShwaXBlX2ZkWzBd KTsKIyAgNTM5fC0+IAkJCXNucHJpbnRmKGJ1ZiwgMTI4LCAiJWxsdSIsIGlkKTsKIyAgNTQwfCAg IAkJCXdyaXRlKHBpcGVfZmRbMV0sIGJ1Ziwgc3RybGVuKGJ1ZikpOwojICA1NDF8ICAgCQkJY2xv c2UocGlwZV9mZFsxXSk7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0x LjEuMTUvc3JjL25vdGlmeS5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAncnVuX25vdGlmaWNh dGlvbl90b29sJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvbm90aWZ5LmM6NTQwOjk6IHdhcm5p bmc6IGlnbm9yaW5nIHJldHVybiB2YWx1ZSBvZiAnd3JpdGUnLCBkZWNsYXJlZCB3aXRoIGF0dHJp YnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQgWy1XdW51c2VkLXJlc3VsdF0KIyAgICB3cml0ZShwaXBl X2ZkWzFdLCBidWYsIHN0cmxlbihidWYpKTsKIyAgICAgICAgIF4KIyAgNTM4fCAgIAkJCWNsb3Nl KHBpcGVfZmRbMF0pOwojICA1Mzl8ICAgCQkJc25wcmludGYoYnVmLCAxMjgsICIlbGx1IiwgaWQp OwojICA1NDB8LT4gCQkJd3JpdGUocGlwZV9mZFsxXSwgYnVmLCBzdHJsZW4oYnVmKSk7CiMgIDU0 MXwgICAJCQljbG9zZShwaXBlX2ZkWzFdKTsKIyAgNTQyfCAgIAkJfQoKRXJyb3I6IENMQU5HX1dB Uk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo2Mjc6NDogd2FybmluZzog UG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ25vdGlmeS5jb21tYW5kJwoj ICAgICAgICAgICAgICAgICAgICAgICAgc3RyY3B5KG5vdGlmeS5jb21tYW5kLCBhcmd2W2ldKTsK IyAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K IyAgNjI1fCAgIAkJZWxzZSBpZiAoIXN0cmNtcChjb2x1bW5baV0sICJjb21tYW5kIikpIHsKIyAg NjI2fCAgIAkJCW5vdGlmeS5jb21tYW5kID0gbWFsbG9jKHN0cmxlbihhcmd2W2ldKSArIDEpOwoj ICA2Mjd8LT4gCQkJc3RyY3B5KG5vdGlmeS5jb21tYW5kLCBhcmd2W2ldKTsKIyAgNjI4fCAgIAkJ fQojICA2Mjl8ICAgCQllbHNlIGlmICghc3RyY21wKGNvbHVtbltpXSwgIm1ldGhvZCIpKQoKRXJy b3I6IENMQU5HX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo2MzM6 NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ25vdGlm eS5tYXRjaCcKIyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweShub3RpZnkubWF0Y2gsIGFy Z3ZbaV0pOwojICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KIyAgNjMxfCAgIAkJZWxzZSBpZiAoIXN0cmNtcChjb2x1bW5baV0sICJtYXRjaCIpKSB7 CiMgIDYzMnwgICAJCQlub3RpZnkubWF0Y2ggPSBtYWxsb2Moc3RybGVuKGFyZ3ZbaV0pICsgMSk7 CiMgIDYzM3wtPiAJCQlzdHJjcHkobm90aWZ5Lm1hdGNoLCBhcmd2W2ldKTsKIyAgNjM0fCAgIAkJ fQojICA2MzV8ICAgCX0KCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNlbG9nLTEu MS4xNS9zcmMvbm90aWZ5LmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdjaGVja19ub3RpZnkn CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy9ub3RpZnkuYzo2Mzg6Mzogd2FybmluZzogZm9ybWF0 ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQn LCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICBzbnBy aW50ZihxdWVyeSwgMTAyNCwgImlkPSVsbHUiLCBkYXRhLT5pZCk7CiMgICBeCiMgIDYzNnwgICAK IyAgNjM3fCAgIAlpZiAoIW5vdGlmeS5tYXRjaCB8fCBzdHJsZW4obm90aWZ5Lm1hdGNoKSA9PSAw KQojICA2Mzh8LT4gCQlzbnByaW50ZihxdWVyeSwgMTAyNCwgImlkPSVsbHUiLCBkYXRhLT5pZCk7 CiMgIDYzOXwgICAJZWxzZQojICA2NDB8ICAgCQlzbnByaW50ZihxdWVyeSwgMTAyNCwgIiglcykg QU5EIGlkPSVsbHUiLCBub3RpZnkubWF0Y2gsCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGli c2VydmljZWxvZy0xLjEuMTUvc3JjL25vdGlmeS5jOjY0MTo5OiB3YXJuaW5nOiBmb3JtYXQgJyVs bHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2lnbmVkIGludCcsIGJ1 dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICAgICAgIGRh dGEtPmlkKTsKIyAgICAgICAgIF4KIyAgNjM5fCAgIAllbHNlCiMgIDY0MHwgICAJCXNucHJpbnRm KHF1ZXJ5LCAxMDI0LCAiKCVzKSBBTkQgaWQ9JWxsdSIsIG5vdGlmeS5tYXRjaCwKIyAgNjQxfC0+ IAkJCQkJCQkJZGF0YS0+aWQpOwojICA2NDJ8ICAgCiMgIDY0M3wgICAJaWYgKGRhdGEtPm5vdGlm eSA9PSBTTF9OT1RJRllfRVZFTlRTKSB7CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2Vy dmljZWxvZy0xLjEuMTUvc3JjL3JlcGFpcl9hY3Rpb24uYzogc2NvcGVfaGludDogSW4gZnVuY3Rp b24gJ3NlcnZpY2Vsb2dfcmVwYWlyX2dldCcKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3JlcGFp cl9hY3Rpb24uYzoyODc6Mjogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50 IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgNCBoYXMgdHlw ZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgIHNucHJpbnRmKHF1ZXJ5LCAzMCwgImlkPSVsbHUi LCByZXBhaXJfaWQpOwojICBeCiMgIDI4NXwgICAJY2hhciBxdWVyeVszMF07CiMgIDI4NnwgICAK IyAgMjg3fC0+IAlzbnByaW50ZihxdWVyeSwgMzAsICJpZD0lbGx1IiwgcmVwYWlyX2lkKTsKIyAg Mjg4fCAgIAlyZXR1cm4gc2VydmljZWxvZ19yZXBhaXJfcXVlcnkoc2xvZywgcXVlcnksIHJlcGFp cik7CiMgIDI4OXwgICB9CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0x LjEuMTUvc3JjL3JlcGFpcl9hY3Rpb24uYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZp Y2Vsb2dfcmVwYWlyX2RlbGV0ZScKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3JlcGFpcl9hY3Rp b24uYzo0MTI6NDogd2FybmluZzogZm9ybWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5 cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBpbnQnLCBidXQgYXJndW1lbnQgNCBoYXMgdHlwZSAndWlu dDY0X3QnIFstV2Zvcm1hdD1dCiMgICAgcmVwYWlyX2lkKTsKIyAgICBeCiMgIDQxMHwgICAKIyAg NDExfCAgIAlzbnByaW50ZihidWYsIDgwLCAiREVMRVRFIEZST00gcmVwYWlyX2FjdGlvbnMgV0hF UkUgaWQ9JWxsdSIsCiMgIDQxMnwtPiAJCSByZXBhaXJfaWQpOwojICA0MTN8ICAgCiMgIDQxNHwg ICAJcmMgPSBzcWxpdGUzX2V4ZWMoc2xvZy0+ZGIsIGJ1ZiwgTlVMTCwgTlVMTCwgJmVycik7CgpF cnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3JlcGFpcl9h Y3Rpb24uYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ3NlcnZpY2Vsb2dfcmVwYWlyX3ByaW50 JwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvcmVwYWlyX2FjdGlvbi5jOjQ0OTo3OiB3YXJuaW5n OiBmb3JtYXQgJyVsbHUnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIHVuc2ln bmVkIGludCcsIGJ1dCBhcmd1bWVudCAzIGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0K IyAgICAgICByZXBhaXItPmlkKTsKIyAgICAgICBeCiMgIDQ0N3wgICAKIyAgNDQ4fCAgIAkJCWNv dW50ICs9IGZwcmludGYoc3RyLCAiU2VydmljZWxvZ0lEOiAlbGx1XG4iLAojICA0NDl8LT4gCQkJ CQkgcmVwYWlyLT5pZCk7CiMgIDQ1MHwgICAJCQlsb2NhbHRpbWVfcigmKHJlcGFpci0+dGltZV9s b2dnZWQpLCAmdGltZSk7CiMgIDQ1MXwgICAJCQljb3VudCArPSBmcHJpbnRmKHN0ciwgIkxvZ1Rp bWU6ICUwMmQvJTAyZC8lMDRkICIKCkVycm9yOiBDT01QSUxFUl9XQVJOSU5HOgpsaWJzZXJ2aWNl bG9nLTEuMS4xNS9zcmMvc2VydmljZWxvZy5jOiBzY29wZV9oaW50OiBJbiBmdW5jdGlvbiAnZ2V0 X3N5c3RlbV9pbmZvJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvc2VydmljZWxvZy5jOjM0ODo4 OiB3YXJuaW5nOiBpZ25vcmluZyByZXR1cm4gdmFsdWUgb2YgJ2ZyZWFkJywgZGVjbGFyZWQgd2l0 aCBhdHRyaWJ1dGUgd2Fybl91bnVzZWRfcmVzdWx0IFstV3VudXNlZC1yZXN1bHRdCiMgICBmcmVh ZChqdW5rX2NoYXJzLCBuX2p1bmtfY2hhcnMsIDEsIGZkKTsKIyAgICAgICAgXgojICAzNDZ8ICAg CiMgIDM0N3wgICAJaWYgKG5fanVua19jaGFycyA+IDApCiMgIDM0OHwtPiAJCWZyZWFkKGp1bmtf Y2hhcnMsIG5fanVua19jaGFycywgMSwgZmQpOwojICAzNDl8ICAgCiMgIDM1MHwgICAJbl9yZWFk ID0gZnJlYWQoYnVmLCBzeiwgMSwgZmQpOwoKRXJyb3I6IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNl cnZpY2Vsb2ctMS4xLjE1L3NyYy9zZXJ2aWNlbG9nLmM6IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9u ICdzZXJ2aWNlbG9nX3RydW5jYXRlJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvc2VydmljZWxv Zy5jOjYyODo2OiB3YXJuaW5nOiB2YXJpYWJsZSAncmMnIHNldCBidXQgbm90IHVzZWQgWy1XdW51 c2VkLWJ1dC1zZXQtdmFyaWFibGVdCiMgIGludCByYzsKIyAgICAgIF4KIyAgNjI2fCAgIHNlcnZp Y2Vsb2dfdHJ1bmNhdGUoc2VydmljZWxvZyAqc2xvZywgaW50IG5vdGlmaWNhdGlvbnNfdG9vKQoj ICA2Mjd8ICAgewojICA2Mjh8LT4gCWludCByYzsKIyAgNjI5fCAgIAojICA2MzB8ICAgCWlmIChz bG9nID09IE5VTEwpCgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2VydmljZWxvZy0xLjEu MTUvc3JjL3YyOV9jb21wYXQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2NvbnZlcnRfa2V5 X3RvX3YyOScKbGlic2VydmljZWxvZy0xLjEuMTUvc3JjL3YyOV9jb21wYXQuYzo2Njo0OiB3YXJu aW5nOiBmb3JtYXQgJyVsbGQnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAnbG9uZyBsb25nIGlu dCcsIGJ1dCBhcmd1bWVudCA1IGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9ybWF0PV0KIyAgICAi djErICVzIElEICVsbGQgdHJ1bmNhdGVkIHRvIDMyIGJpdHMiLCBrZXlfdHlwZSwga2V5NjQpOwoj ICAgIF4KIyAgIDY0fCAgIAlpZiAoKmtleTMyICE9IGtleTY0KSB7CiMgICA2NXwgICAJCXNucHJp bnRmKGxvZy0+ZXJyb3IsIFNMX01BWF9FUlIsCiMgICA2NnwtPiAJCQkidjErICVzIElEICVsbGQg dHJ1bmNhdGVkIHRvIDMyIGJpdHMiLCBrZXlfdHlwZSwga2V5NjQpOwojICAgNjd8ICAgCQlyZXR1 cm4gRURPTTsKIyAgIDY4fCAgIAl9CgpFcnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlic2Vydmlj ZWxvZy0xLjEuMTUvc3JjL3YyOV9jb21wYXQuYzogc2NvcGVfaGludDogSW4gZnVuY3Rpb24gJ2Zp bmRfcmVwYWlyZWRfZXZlbnRzJwpsaWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvdjI5X2NvbXBhdC5j OjQ5MToyOiB3YXJuaW5nOiBmb3JtYXQgJyVsbGQnIGV4cGVjdHMgYXJndW1lbnQgb2YgdHlwZSAn bG9uZyBsb25nIGludCcsIGJ1dCBhcmd1bWVudCAzIGhhcyB0eXBlICd1aW50NjRfdCcgWy1XZm9y bWF0PV0KIyAgc3ByaW50ZihxdWVyeSwgInJlcGFpcj0lbGxkIiwgcmVwYWlyX2lkKTsKIyAgXgoj ICA0ODl8ICAgCWNoYXIgcXVlcnlbNDBdOwojICA0OTB8ICAgCiMgIDQ5MXwtPiAJc3ByaW50Zihx dWVyeSwgInJlcGFpcj0lbGxkIiwgcmVwYWlyX2lkKTsKIyAgNDkyfCAgIAlyZXR1cm4gc2Vydmlj ZWxvZ19ldmVudF9xdWVyeShsb2csIHF1ZXJ5LCBldmVudHMpOwojICA0OTN8ICAgfQoKRXJyb3I6 IENPTVBJTEVSX1dBUk5JTkc6CmxpYnNlcnZpY2Vsb2ctMS4xLjE1L3NyYy92MjlfY29tcGF0LmM6 IHNjb3BlX2hpbnQ6IEluIGZ1bmN0aW9uICdfY29udmVydF92MV9zbF9ub3RpZnlfdG9fdjI5Jwps aWJzZXJ2aWNlbG9nLTEuMS4xNS9zcmMvdjI5X2NvbXBhdC5jOjEwNjE6NTogd2FybmluZzogZm9y bWF0ICclbGx1JyBleHBlY3RzIGFyZ3VtZW50IG9mIHR5cGUgJ2xvbmcgbG9uZyB1bnNpZ25lZCBp bnQnLCBidXQgYXJndW1lbnQgNSBoYXMgdHlwZSAndWludDY0X3QnIFstV2Zvcm1hdD1dCiMgICAg ICJ0byB2MC4yLjkgc2xfbm90aWZ5IiwgdjEtPm1hdGNoLCB2MS0+aWQpOwojICAgICBeCiMgMTA1 OXwgICAJCQlzbnByaW50Zihsb2ctPmVycm9yLCBTTF9NQVhfRVJSLCAiY2FuJ3QgdHJhbnNsYXRl ICIKIyAxMDYwfCAgIAkJCQkibWF0Y2ggc3RyaW5nICclcycgZm9yIHYxKyBzbF9ub3RpZnkgJWxs dSAiCiMgMTA2MXwtPiAJCQkJInRvIHYwLjIuOSBzbF9ub3RpZnkiLCB2MS0+bWF0Y2gsIHYxLT5p ZCk7CiMgMTA2MnwgICAJCQlyZXR1cm4gRU5PVFNVUDsKIyAxMDYzfCAgIAkJfQo= ------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; name=lbvpd-results.txt Content-Disposition: attachment; filename=lbvpd-results.txt Content-Transfer-Encoding: base64 RXJyb3I6IENMQU5HX1dBUk5JTkc6CmxpYnZwZC0yLjIuNC9zcmMvZGF0YWl0ZW1fYy5jOjYxOjEw OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiMgICAgICAgICAgICAg ICAgbmV4dCA9IHRoaXMtPm5leHQ7CiMgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4K IyAgIDU5fCAgIAl3aGlsZSggdGhpcyApCiMgICA2MHwgICAJewojICAgNjF8LT4gCQluZXh0ID0g dGhpcy0+bmV4dDsKIyAgIDYyfCAgIAkJZnJlZV9kYXRhaXRlbSggdGhpcyApOwojICAgNjN8ICAg CQl0aGlzID0gbmV4dDsKCkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0UtNDU2KToKbGlidnBk LTIuMi40L3NyYy9oZWxwZXJfZnVuY3Rpb25zLmNwcDoxMzk6IGVycm9yW3VuaW5pdHZhcl06IFVu aW5pdGlhbGl6ZWQgdmFyaWFibGU6IGVuZAojICAxMzd8ICAgCQkJcmV0dXJuIHBhdGg7CiMgIDEz OHwgICAJCQojICAxMzl8LT4gCQlpZiAocGF0aFtlbmRdID09ICcvJykKIyAgMTQwfCAgIAkJCWVu ZC0tOwojICAxNDF8ICAgCQkKCkVycm9yOiBDTEFOR19XQVJOSU5HOgpsaWJ2cGQtMi4yLjQvc3Jj L2hlbHBlcl9mdW5jdGlvbnMuY3BwOjEzOTo3OiB3YXJuaW5nOiBGdW5jdGlvbiBjYWxsIGFyZ3Vt ZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKIyAgICAgICAgICAgICAgICBpZiAocGF0aFtl bmRdID09ICcvJykKIyAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CiMgIDEzN3wgICAJCQly ZXR1cm4gcGF0aDsKIyAgMTM4fCAgIAkJCiMgIDEzOXwtPiAJCWlmIChwYXRoW2VuZF0gPT0gJy8n KQojICAxNDB8ICAgCQkJZW5kLS07CiMgIDE0MXwgICAJCQoKRXJyb3I6IENPTVBJTEVSX1dBUk5J Tkc6CmxpYnZwZC0yLjIuNC9zcmMvaGVscGVyX2Z1bmN0aW9ucy5jcHA6IHNjb3BlX2hpbnQ6IElu IHN0YXRpYyBtZW1iZXIgZnVuY3Rpb24gJ3N0YXRpYyBzdGQ6OnN0cmluZyBsc3ZwZDo6SGVscGVy RnVuY3Rpb25zOjpnZXRTeW1MaW5rVGFyZ2V0KGNvbnN0IHN0cmluZyYpJwpsaWJ2cGQtMi4yLjQv c3JjL2hlbHBlcl9mdW5jdGlvbnMuY3BwOjE2NTo0Mzogd2FybmluZzogaWdub3JpbmcgcmV0dXJu IHZhbHVlIG9mICdzc2l6ZV90IHJlYWRsaW5rKGNvbnN0IGNoYXIqLCBjaGFyKiwgc2l6ZV90KScs IGRlY2xhcmVkIHdpdGggYXR0cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVz dWx0XQojICAgIHJlYWRsaW5rKGJ1ZiwgbGlua1RhcmdldCwgQlVGX1NJWkUgLSAxKTsKIyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiMgIDE2M3wgICAJCWJ1ZiA9 IHN0cmR1cChzeW1MaW5rUGF0aC5jX3N0cigpKTsKIyAgMTY0fCAgIAkJaWYgKGJ1ZiAhPSAgTlVM TCkKIyAgMTY1fC0+IAkJCXJlYWRsaW5rKGJ1ZiwgbGlua1RhcmdldCwgQlVGX1NJWkUgLSAxKTsK IyAgMTY2fCAgIAojICAxNjd8ICAgCQlyZXR1cm4gc3RyaW5nKGdldEFic29sdXRlUGF0aChsaW5r VGFyZ2V0LCBidWYpKTsKCkVycm9yOiBDTEFOR19XQVJOSU5HOgpsaWJ2cGQtMi4yLjQvc3JjL2hl bHBlcl9mdW5jdGlvbnMuY3BwOjE2NzoxMDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVt b3J5IHBvaW50ZWQgdG8gYnkgJ2J1ZicKIyAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nKGdl dEFic29sdXRlUGF0aChsaW5rVGFyZ2V0LCBidWYpKTsKIyAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CiMgIDE2NXwgICAJCQlyZWFk bGluayhidWYsIGxpbmtUYXJnZXQsIEJVRl9TSVpFIC0gMSk7CiMgIDE2NnwgICAKIyAgMTY3fC0+ IAkJcmV0dXJuIHN0cmluZyhnZXRBYnNvbHV0ZVBhdGgobGlua1RhcmdldCwgYnVmKSk7CiMgIDE2 OHwgICAJfQojICAxNjl8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoKbGlidnBkLTIuMi40L3Ny Yy9oZWxwZXJfZnVuY3Rpb25zLmNwcDoyMzU6MTE6IHdhcm5pbmc6IE51bGwgcG9pbnRlciBwYXNz ZWQgYXMgYW4gYXJndW1lbnQgdG8gYSAnbm9ubnVsbCcgcGFyYW1ldGVyCiMgICAgICAgICAgICAg ICAgaW50IGkgPSBzdHJsZW4oY3VyRGlyKTsKIyAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+CiMgIDIzM3wgICAJewojICAyMzR8ICAgCQlpbnQgbGVuID0gc3RybGVuKHJlbFBh dGgpOwojICAyMzV8LT4gCQlpbnQgaSA9IHN0cmxlbihjdXJEaXIpOwojICAyMzZ8ICAgCQlzdHJp bmcgdG1wOwojICAyMzd8ICAgCgpFcnJvcjogQ0xBTkdfV0FSTklORzoKbGlidnBkLTIuMi40L3Ny Yy9oZWxwZXJfZnVuY3Rpb25zLmNwcDoyNjI6MjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn ZW5kJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKIyAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgYmVnID0gMCwgZW5kID0gczEubGVuZ3RoKCk7CiMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fiAgIH5+fn5+fn5+fn5+CiMgIDI2MHwgICAJ Ym9vbCBIZWxwZXJGdW5jdGlvbnM6Om1hdGNoZXMoY29uc3Qgc3RyaW5nJiBzMSwgY29uc3Qgc3Ry aW5nJiBzMikKIyAgMjYxfCAgIAl7CiMgIDI2MnwtPiAJCXVuc2lnbmVkIGludCBiZWcgPSAwLCBl bmQgPSBzMS5sZW5ndGgoKTsKIyAgMjYzfCAgIAkJdW5zaWduZWQgaW50IHo7CiMgIDI2NHwgICAv LwkJY291dGQgPDwgIiBzMSA9ICIgPDwgczEgPDwgIiwgczIgPSAiIDw8IHMyIDw8IGVuZGw7CgpF cnJvcjogQ09NUElMRVJfV0FSTklORzoKbGlidnBkLTIuMi40L3NyYy9saWJ2cGQtMi92cGRkYmVu di5ocHA6MzA6IGluY2x1ZGVkX2Zyb206IEluY2x1ZGVkIGZyb20gaGVyZS4KbGlidnBkLTIuMi40 L3NyYy92cGRyZXRyaWV2ZXIuY3BwOjI0OiBpbmNsdWRlZF9mcm9tOiBJbmNsdWRlZCBmcm9tIGhl cmUuCmxpYnZwZC0yLjIuNC9zcmMvbGlidnBkLTIvY29tcG9uZW50LmhwcDoxMDE6Mzc6IHdhcm5p bmc6ICIvKiIgd2l0aGluIGNvbW1lbnQgWy1XY29tbWVudF0KIyAgICAgKiAgIFNob3VsZCBwb2lu dCB0byAvc3lzL2RldmljZXMvKgojIF4KIyAgIDk5fCAgIAkJCSAqIEBicmllZgojICAxMDB8ICAg CQkJICogICBJZiB0aGUgc3lzRnNOb2RlIGlzIGEgc3ltIGxpbmssIHRoaXMgaXMgdGhlIHJlc29s dmVkIHBhdGgKIyAgMTAxfC0+IAkJCSAqIAkJU2hvdWxkIHBvaW50IHRvIC9zeXMvZGV2aWNlcy8q CiMgIDEwMnwgICAJCQkgKi8KIyAgMTAzfCAgIAkJCURhdGFJdGVtIHN5c0ZzTGlua1RhcmdldDsK CkVycm9yOiBDUFBDSEVDS19XQVJOSU5HIChDV0UtNDYwKToKbGlidnBkLTIuMi40L3NyYy92cGRk YmVudi5jcHA6MTI4OiBlcnJvcltleGNlcHRUaHJvd0luRGVzdHJ1Y3Rvcl06IEV4Y2VwdGlvbiB0 aHJvd24gaW4gZGVzdHJ1Y3Rvci4KIyAgMTI2fCAgIAkJCWwubG9nKCBtZXNzYWdlLnN0ciggKSwg TE9HX0VSUiApOwojICAxMjd8ICAgCQkJVnBkRXhjZXB0aW9uIHZlKCBtZXNzYWdlLnN0ciggKSAp OwojICAxMjh8LT4gCQkJdGhyb3cgdmU7CiMgIDEyOXwgICAJCX0KIyAgMTMwfCAgIAl9CgpFcnJv cjogQ09NUElMRVJfV0FSTklORzoKbGlidnBkLTIuMi40L3NyYy92cGRyZXRyaWV2ZXIuY3BwOiBz Y29wZV9oaW50OiBJbiBjb25zdHJ1Y3RvciAnbHN2cGQ6OlZwZFJldHJpZXZlcjo6VnBkUmV0cmll dmVyKCknCmxpYnZwZC0yLjIuNC9zcmMvdnBkcmV0cmlldmVyLmNwcDo5MTo0Mjogd2FybmluZzog aWdub3JpbmcgcmV0dXJuIHZhbHVlIG9mICdpbnQgc3lzdGVtKGNvbnN0IGNoYXIqKScsIGRlY2xh cmVkIHdpdGggYXR0cmlidXRlIHdhcm5fdW51c2VkX3Jlc3VsdCBbLVd1bnVzZWQtcmVzdWx0XQoj ICAgICBzeXN0ZW0oICJ2cGR1cGRhdGUgPi9kZXYvbnVsbCAyPiYxIiApOwojICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgojICAgODl8ICAgCQkJCSAqLwojICAgOTB8 ICAgCQkJCWxvZ2dlci5sb2coICJsaWJ2cGQ6IFJ1bm5pbmcgdnBkdXBkYXRlIHRvIHVwZGF0ZSB0 aGUgZGVmYXVsdCBkYi4iLCBMT0dfSU5GTyApOwojICAgOTF8LT4gCQkJCXN5c3RlbSggInZwZHVw ZGF0ZSA+L2Rldi9udWxsIDI+JjEiICk7CiMgICA5MnwgICAJCQl9CiMgICA5M3wgICAJCX0K ------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------------ ------=_Part_219942_2100275017.1438003944946 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Linux-diag-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linux-diag-devel ------=_Part_219942_2100275017.1438003944946--