From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ronald Rojas Subject: [PATCH v2 5/5] golang/xenlight: Add tests host related functionality functions Date: Thu, 2 Mar 2017 11:07:17 -0500 Message-ID: <1488470837-23181-5-git-send-email-ronladred@gmail.com> References: <1488470837-23181-1-git-send-email-ronladred@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488470837-23181-1-git-send-email-ronladred@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" Cc: Ronald Rojas , wei.liu2@citrix.com, ian.jackson@eu.citrix.com, George Dunlap , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org Q3JlYXRlIHRlc3RzIGZvciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoKLSBHZXRWZXJzaW9uSW5m bwotIEdldFBoeXNpbmZvCi0gR2V0RG9taW5mbwotIEdldE1heENwdXMKLSBHZXRPbmxpbmVDcHVz Ci0gR2V0TWF4Tm9kZXMKLSBHZXRGcmVlTWVtb3J5CgpTaWduZWQtb2ZmLWJ5OiBSb25hbGQgUm9q YXMgPHJvbmxhZHJlZEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdl b3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KCi0tLQoKLSBSZW1vdmVkIGluZGl2aWR1YWwgTWFrZWZp bGVzIGZvciBlYWNoIHRlc3QgZm9yIGEgc2luZ2xlCk1ha2VmaWxlIHRvIHRlc3QgYWxsIGZpbGVz IGF0IG9uY2UKCi0gQ2hhbmdlZCBhbGwgdGVzdHMgdG8geGVuaW5mbyBkaXJlY3RvcnkKCi0gQXBw bGllZCBsaWJ4bF88dHlwZT5fe2luaXQvZGlzcG9zZX0gZm9yIElETCB0eXBlcyBpbiB0ZXN0cwoK LSBBcHBsaWVkIGZvcm1hdGluZyBmaXhlcwoKQ0M6IHhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCkND OiBnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20KQ0M6IGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20K Q0M6IHdlaS5saXUyQGNpdHJpeC5jb20KLS0tCi0tLQogdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rl c3QveGVuaW5mby9NYWtlZmlsZSAgICAgICB8IDM0ICsrKysrKysrKysrKysrKysrKysrKysrCiB0 b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL2RvbWluZm8uYyAgICAgIHwgMzEgKysr KysrKysrKysrKysrKysrKysrCiB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL2Rv bWluZm8uZ28gICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9nb2xhbmcveGVu bGlnaHQvdGVzdC94ZW5pbmZvL2ZyZWVtZW1vcnkuYyAgIHwgMjQgKysrKysrKysrKysrKysrKwog dG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9mcmVlbWVtb3J5LmdvICB8IDI4ICsr KysrKysrKysrKysrKysrKysKIHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vbWF4 Y3B1LmMgICAgICAgfCAxNiArKysrKysrKysrKwogdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3Qv eGVuaW5mby9tYXhjcHUuZ28gICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKwogdG9vbHMvZ29s YW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9tYXhub2Rlcy5jICAgICB8IDE2ICsrKysrKysrKysr CiB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL21heG5vZGVzLmdvICAgIHwgMjcg KysrKysrKysrKysrKysrKysrCiB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL29u bGluZWNwdS5jICAgIHwgMTYgKysrKysrKysrKysKIHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0 L3hlbmluZm8vb25saW5lY3B1LmdvICAgfCAyNyArKysrKysrKysrKysrKysrKysKIHRvb2xzL2dv bGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vcGh5c2luZm8uYyAgICAgfCAzMSArKysrKysrKysr KysrKysrKysrKysKIHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vcGh5c2luZm8u Z28gICAgfCAzMiArKysrKysrKysrKysrKysrKysrKysKIHRvb2xzL2dvbGFuZy94ZW5saWdodC90 ZXN0L3hlbmluZm8vcHJpbnQuaCAgICAgICAgfCAgMyArKwogdG9vbHMvZ29sYW5nL3hlbmxpZ2h0 L3Rlc3QveGVuaW5mby92ZXJzaW9uaW5mby5jICB8IDIwICsrKysrKysrKysrKysKIHRvb2xzL2dv bGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vdmVyc2lvbmluZm8uZ28gfCAyOCArKysrKysrKysr KysrKysrKysrCiAxNiBmaWxlcyBjaGFuZ2VkLCAzOTEgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vTWFrZWZpbGUKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL2RvbWlu Zm8uYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmlu Zm8vZG9taW5mby5nbwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90 ZXN0L3hlbmluZm8vZnJlZW1lbW9yeS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZ29sYW5n L3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9mcmVlbWVtb3J5LmdvCiBjcmVhdGUgbW9kZSAxMDA2NDQg dG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9tYXhjcHUuYwogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vbWF4Y3B1LmdvCiBjcmVh dGUgbW9kZSAxMDA2NDQgdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9tYXhub2Rl cy5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5m by9tYXhub2Rlcy5nbwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90 ZXN0L3hlbmluZm8vb25saW5lY3B1LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9nb2xhbmcv eGVubGlnaHQvdGVzdC94ZW5pbmZvL29ubGluZWNwdS5nbwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRv b2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vcGh5c2luZm8uYwogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vcGh5c2luZm8uZ28KIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL3ByaW50 LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZv L3ZlcnNpb25pbmZvLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy9nb2xhbmcveGVubGlnaHQv dGVzdC94ZW5pbmZvL3ZlcnNpb25pbmZvLmdvCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZ29sYW5nL3hl bmxpZ2h0L3Rlc3QveGVuaW5mby9NYWtlZmlsZSBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0 L3hlbmluZm8vTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU5 ZTRkNgotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmlu Zm8vTWFrZWZpbGUKQEAgLTAsMCArMSwzNCBAQAorWEVOX1JPT1QgPSAkKENVUkRJUikvLi4vLi4v Li4vLi4vLi4KK2luY2x1ZGUgJChYRU5fUk9PVCkvdG9vbHMvUnVsZXMubWsKKworR08gPz0gZ28K KworVEVTVFMgPSBkb21pbmZvIGZyZWVtZW1vcnkgbWF4Y3B1IG9ubGluZWNwdSBwaHlzaW5mbyB2 ZXJzaW9uaW5mbworQ0JJTkFSSUVTID0gJChURVNUUzolPSUtYykKK0dPQklOQVJJRVMgPSAkKFRF U1RTOiU9JS1nbykKKworYWxsOiBidWlsZAorCit0ZXN0OiBjbGVhbiBidWlsZAorCWZvciB0ZXN0 IGluICQoVEVTVFMpIDsgZG8gXAorCQkuLyQkdGVzdC1jID4+IGMub3V0cHV0IDsgXAorCSAgICAg ICAgLi8kJHRlc3QtZ28gPj4gZ28ub3V0cHV0IDsgXAorCQlpZiBjbXAgLXMgImMub3V0cHV0IiAi Z28ub3V0cHV0IjsgdGhlblwKKwkJCWVjaG8gIiQkdGVzdCBQQVNTRUQiO1wKKwkJZWxzZSBcCisJ CQllY2hvICIkJHRlc3QgRkFJTEVEIjtcCisJCWZpIDsgXAorCWRvbmUKKworYnVpbGQ6ICQoQ0JJ TkFSSUVTKSAkKEdPQklOQVJJRVMpCisKKyUtYzogJS5jCisJZ2NjICQoQ0ZMQUdTX2xpYnhlbmxp Z2h0KSAtbyAkQCAkPCAkKExETElCU19saWJ4ZW5saWdodCkKKworJS1nbzogJS5nbworCUdPUEFU SD0kKFhFTl9ST09UKS90b29scy9nb2xhbmcgJChHTykgYnVpbGQgLW8gJEAgJDwKKworY2xlYW46 CisJcm0gLWYgKi1jCisJcm0gLWYgKi1nbworCXJtIC1mICoub3V0cHV0CmRpZmYgLS1naXQgYS90 b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL2RvbWluZm8uYyBiL3Rvb2xzL2dvbGFu Zy94ZW5saWdodC90ZXN0L3hlbmluZm8vZG9taW5mby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjg1ZjY1OGQKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9nb2xhbmcveGVu bGlnaHQvdGVzdC94ZW5pbmZvL2RvbWluZm8uYwpAQCAtMCwwICsxLDMxIEBACisjaW5jbHVkZSA8 c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5oPgorI2luY2x1 ZGUgInByaW50LmgiCisKK2ludCBtYWluKCl7CisKKyAgICBsaWJ4bF9jdHggKmNvbnRleHQ7Cisg ICAgbGlieGxfY3R4X2FsbG9jKCZjb250ZXh0LExJQlhMX1ZFUlNJT04sIDAsIE5VTEwpOworICAg IGxpYnhsX2RvbWluZm8gaW5mbzsKKyAgICBsaWJ4bF9kb21pbmZvX2luaXQoJmluZm8pOworICAg IGludCBlcnIgPSBsaWJ4bF9kb21haW5faW5mbyhjb250ZXh0LCAmaW5mbywgMCk7CisgICAgaWYg KGVyciAhPSAwKQorICAgICAgICByZXR1cm4gZXJyOworICAgIAorCXByaW50ZigiJWRcbiVkXG4i LCBpbmZvLmRvbWlkLCBpbmZvLnNzaWRyZWYpOworCXByaW50ZigiJXNcbiVzXG4lc1xuJXNcbiVz XG4lc1xuIiwgYm9vbF90b19zdHJpbmcoaW5mby5ydW5uaW5nKSwgCisJCQlib29sX3RvX3N0cmlu ZyhpbmZvLmJsb2NrZWQpLCBib29sX3RvX3N0cmluZyhpbmZvLnBhdXNlZCksCisJCQlib29sX3Rv X3N0cmluZyhpbmZvLnNodXRkb3duKSwgYm9vbF90b19zdHJpbmcoaW5mby5keWluZyksIAorCQkJ Ym9vbF90b19zdHJpbmcoaW5mby5uZXZlcl9zdG9wKSk7CisJbG9uZyBjcHVfdGltZSA9IGluZm8u Y3B1X3RpbWUgLyAoKGxvbmcpIDE8PDM1KTsKKwlwcmludGYoIiVkXG4lbHVcbiVsdVxuJWx1XG4l bHVcbiVsdVxuJWx1XG4lZFxuJWRcbiVkXG4iLCBpbmZvLnNodXRkb3duX3JlYXNvbiwgCisJCQlp bmZvLm91dHN0YW5kaW5nX21lbWtiLCBpbmZvLmN1cnJlbnRfbWVta2IsIGluZm8uc2hhcmVkX21l bWtiLCAKKwkJCWluZm8ucGFnZWRfbWVta2IsIGluZm8ubWF4X21lbWtiLCBjcHVfdGltZSwgaW5m by52Y3B1X21heF9pZCwgCisJCQlpbmZvLnZjcHVfb25saW5lLCBpbmZvLmNwdXBvb2wpOworCXBy aW50ZigiJWRcbiIsIGluZm8uZG9tYWluX3R5cGUpOworCisJbGlieGxfZG9taW5mb19kaXNwb3Nl KCZpbmZvKTsKKwlsaWJ4bF9jdHhfZnJlZShjb250ZXh0KTsKKworfQpkaWZmIC0tZ2l0IGEvdG9v bHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9kb21pbmZvLmdvIGIvdG9vbHMvZ29sYW5n L3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9kb21pbmZvLmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmJiOTI1N2IKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9nb2xhbmcveGVu bGlnaHQvdGVzdC94ZW5pbmZvL2RvbWluZm8uZ28KQEAgLTAsMCArMSwzMSBAQAorcGFja2FnZSBt YWluCisKK2ltcG9ydCAoCisJImZtdCIKKwkib3MiCisJInhlbnByb2plY3Qub3JnL3hlbmxpZ2h0 IgorKQorCitmdW5jIG1haW4oKSB7CisJY3R4IDo9IHhlbmxpZ2h0LkN0eAorCWVyciA6PSBjdHgu T3BlbigpCisJaWYgZXJyICE9IG5pbCB7CisJCW9zLkV4aXQoLTEpCisJfQorCWRlZmVyIGN0eC5D bG9zZSgpCisJaW5mbywgZXJyIDo9IGN0eC5Eb21haW5JbmZvKDApCisJaWYgZXJyICE9IG5pbCB7 CisJCW9zLkV4aXQoLTEpCisJfQorCisJZm10LlByaW50ZigiJWRcbiVkXG4iLCBpbmZvLkRvbWlk LCBpbmZvLlNzaWRyZWYpCisJLy9mbXQuUHJpbnRmKCIlc1xuIiwgaW5mby5Tc2lkTGFiZWwpCisJ Zm10LlByaW50ZigiJXRcbiV0XG4ldFxuJXRcbiV0XG4ldFxuIiwgaW5mby5SdW5uaW5nLAorCQlp bmZvLkJsb2NrZWQsIGluZm8uUGF1c2VkLCBpbmZvLlNodXRkb3duLCBpbmZvLkR5aW5nLCBpbmZv Lk5ldmVyU3RvcCkKKwljcHVUaW1lIDo9IGluZm8uQ3B1VGltZSAvICgxIDw8IDM1KQorCWZtdC5Q cmludGYoIiVkXG4lZFxuJWRcbiVkXG4lZFxuJWRcbiVkXG4lZFxuJWRcbiVkXG4iLCBpbmZvLlNo dXRkb3duUmVhc29uLCBpbmZvLk91dHN0YW5kaW5nTWVta2IsCisJCWluZm8uQ3VycmVudE1lbWti LCBpbmZvLlNoYXJlZE1lbWtiLCBpbmZvLlBhZ2VkTWVta2IsIGluZm8uTWF4TWVta2IsIGNwdVRp bWUsCisJCWluZm8uVmNwdU1heElkLCBpbmZvLlZjcHVPbmxpbmUsIGluZm8uQ3B1cG9vbCkKKwlm bXQuUHJpbnRmKCIlZFxuIiwgaW5mby5Eb21haW5UeXBlKQorCit9CmRpZmYgLS1naXQgYS90b29s cy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL2ZyZWVtZW1vcnkuYyBiL3Rvb2xzL2dvbGFu Zy94ZW5saWdodC90ZXN0L3hlbmluZm8vZnJlZW1lbW9yeS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjA0ZWU5MGQKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9nb2xhbmcv eGVubGlnaHQvdGVzdC94ZW5pbmZvL2ZyZWVtZW1vcnkuYwpAQCAtMCwwICsxLDI0IEBACisjaW5j bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5oPgor I2luY2x1ZGUgInByaW50LmgiCisKK2ludCBtYWluKCl7CisKKyAgICBsaWJ4bF9jdHggKmNvbnRl eHQ7CisgICAgbGlieGxfY3R4X2FsbG9jKCZjb250ZXh0LExJQlhMX1ZFUlNJT04sIDAsIE5VTEwp OworCisgICAgdWludDY0X3QgZnJlZV9tZW1vcnk7CisgICAgaW50IGVyciA9IGxpYnhsX2dldF9m cmVlX21lbW9yeShjb250ZXh0LCAmZnJlZV9tZW1vcnkpOworICAgIGlmIChlcnIgPCAwKQorICAg IHsKKyAgICAgICAgcHJpbnRmKCIlZFxuIiwgZXJyKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsK KyAgICAgICAgcHJpbnRmKCIlbHVcbiIsIGZyZWVfbWVtb3J5KTsKKyAgICB9CisgICAgbGlieGxf Y3R4X2ZyZWUoY29udGV4dCk7CisKK30KKwpkaWZmIC0tZ2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxp Z2h0L3Rlc3QveGVuaW5mby9mcmVlbWVtb3J5LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rl c3QveGVuaW5mby9mcmVlbWVtb3J5LmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjY5YTc3MjMKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVz dC94ZW5pbmZvL2ZyZWVtZW1vcnkuZ28KQEAgLTAsMCArMSwyOCBAQAorcGFja2FnZSBtYWluCisK K2ltcG9ydCAoCisJImZtdCIKKwkib3MiCisJInhlbnByb2plY3Qub3JnL3hlbmxpZ2h0IgorKQor CitmdW5jIG1haW4oKSB7CisJY3R4IDo9IHhlbmxpZ2h0LkN0eAorCWVyciA6PSBjdHguT3Blbigp CisJaWYgZXJyICE9IG5pbCB7CisJCW9zLkV4aXQoLTEpCisJfQorCisJZGVmZXIgY3R4LkNsb3Nl KCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJb3MuRXhpdCgtMSkKKwl9CisKKwlmcmVlX21lbW9yeSwg ZXJyIDo9IGN0eC5HZXRGcmVlTWVtb3J5KCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJZm10LlByaW50 ZigiJWRcbiIsIGVycikKKwl9IGVsc2UgeworCQlmbXQuUHJpbnRmKCIlZFxuIiwgZnJlZV9tZW1v cnkpCisJfQorCit9CmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5p bmZvL21heGNwdS5jIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9tYXhjcHUu YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YmE0YTg3Ci0tLSAvZGV2L251 bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9tYXhjcHUuYwpAQCAt MCwwICsxLDE2IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNp bmNsdWRlIDxsaWJ4bC5oPgorCitpbnQgbWFpbigpeworCisgICAgbGlieGxfY3R4ICpjb250ZXh0 OworICAgIGxpYnhsX2N0eF9hbGxvYygmY29udGV4dCxMSUJYTF9WRVJTSU9OLCAwLCBOVUxMKTsK KworICAgIGludCBtYXhfY3B1cyA9IGxpYnhsX2dldF9tYXhfY3B1cyhjb250ZXh0KTsKKyAgICBw cmludGYoIiVkXG4iLCBtYXhfY3B1cyk7CisKKyAgICBsaWJ4bF9jdHhfZnJlZShjb250ZXh0KTsK KworfQorCmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL21h eGNwdS5nbyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vbWF4Y3B1LmdvCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4NDdjMGQKLS0tIC9kZXYvbnVsbAor KysgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL21heGNwdS5nbwpAQCAtMCww ICsxLDI3IEBACitwYWNrYWdlIG1haW4KKworaW1wb3J0ICgKKwkiZm10IgorCSJvcyIKKwkieGVu cHJvamVjdC5vcmcveGVubGlnaHQiCispCisKK2Z1bmMgbWFpbigpIHsKKwljdHggOj0geGVubGln aHQuQ3R4CisJZXJyIDo9IGN0eC5PcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJb3MuRXhpdCgt MSkKKwl9CisJZGVmZXIgY3R4LkNsb3NlKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJb3MuRXhpdCgt MSkKKwl9CisKKwltYXhfY3B1cywgZXJyIDo9IGN0eC5HZXRNYXhDcHVzKCkKKwlpZiBlcnIgIT0g bmlsIHsKKwkJZm10LlByaW50ZigiJWRcbiIsIGVycikKKwl9IGVsc2UgeworCQlmbXQuUHJpbnRm KCIlZFxuIiwgbWF4X2NwdXMpCisJfQorCit9CmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVu bGlnaHQvdGVzdC94ZW5pbmZvL21heG5vZGVzLmMgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVz dC94ZW5pbmZvL21heG5vZGVzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MGU3OWM4ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hl bmluZm8vbWF4bm9kZXMuYwpAQCAtMCwwICsxLDE2IEBACisjaW5jbHVkZSA8c3RkaW8uaD4KKyNp bmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxsaWJ4bC5oPgorCitpbnQgbWFpbigpeworCisg ICAgbGlieGxfY3R4ICpjb250ZXh0OworICAgIGxpYnhsX2N0eF9hbGxvYygmY29udGV4dCxMSUJY TF9WRVJTSU9OLCAwLCBOVUxMKTsKKworICAgIGludCBtYXhfbm9kZXMgPSBsaWJ4bF9nZXRfbWF4 X25vZGVzKGNvbnRleHQpOworICAgIHByaW50ZigiJWRcbiIsIG1heF9ub2Rlcyk7CisKKyAgIGxp YnhsX2N0eF9mcmVlKGNvbnRleHQpOworCit9CisKZGlmZiAtLWdpdCBhL3Rvb2xzL2dvbGFuZy94 ZW5saWdodC90ZXN0L3hlbmluZm8vbWF4bm9kZXMuZ28gYi90b29scy9nb2xhbmcveGVubGlnaHQv dGVzdC94ZW5pbmZvL21heG5vZGVzLmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjkwNmU1OTYKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVz dC94ZW5pbmZvL21heG5vZGVzLmdvCkBAIC0wLDAgKzEsMjcgQEAKK3BhY2thZ2UgbWFpbgorCitp bXBvcnQgKAorCSJmbXQiCisJIm9zIgorCSJ4ZW5wcm9qZWN0Lm9yZy94ZW5saWdodCIKKykKKwor ZnVuYyBtYWluKCkgeworCWN0eCA6PSB4ZW5saWdodC5DdHgKKwllcnIgOj0gY3R4Lk9wZW4oKQor CWlmIGVyciAhPSBuaWwgeworCQlvcy5FeGl0KC0xKQorCX0KKwlkZWZlciBjdHguQ2xvc2UoKQor CWlmIGVyciAhPSBuaWwgeworCQlvcy5FeGl0KC0xKQorCX0KKworCW1heF9ub2RlcywgZXJyIDo9 IGN0eC5HZXRNYXhOb2RlcygpCisJaWYgZXJyICE9IG5pbCB7CisJCWZtdC5QcmludGYoIiVkXG4i LCBlcnIpCisJfSBlbHNlIHsKKwkJZm10LlByaW50ZigiJWRcbiIsIG1heF9ub2RlcykKKwl9CisK K30KZGlmZiAtLWdpdCBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vb25saW5l Y3B1LmMgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL29ubGluZWNwdS5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYTM0MTQKLS0tIC9kZXYvbnVsbAor KysgYi90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL29ubGluZWNwdS5jCkBAIC0w LDAgKzEsMTYgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2lu Y2x1ZGUgPGxpYnhsLmg+CisKK2ludCBtYWluKCl7CisKKyAgICBsaWJ4bF9jdHggKmNvbnRleHQ7 CisgICAgbGlieGxfY3R4X2FsbG9jKCZjb250ZXh0LExJQlhMX1ZFUlNJT04sIDAsIE5VTEwpOwor CisgICAgaW50IG9ubGluZV9jcHVzID0gbGlieGxfZ2V0X29ubGluZV9jcHVzKGNvbnRleHQpOwor ICAgIHByaW50ZigiJWRcbiIsIG9ubGluZV9jcHVzKTsKKworICAgIGxpYnhsX2N0eF9mcmVlKGNv bnRleHQpOworCit9CisKZGlmZiAtLWdpdCBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hl bmluZm8vb25saW5lY3B1LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9v bmxpbmVjcHUuZ28KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQzMjNjNAot LS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vb25s aW5lY3B1LmdvCkBAIC0wLDAgKzEsMjcgQEAKK3BhY2thZ2UgbWFpbgorCitpbXBvcnQgKAorCSJm bXQiCisJIm9zIgorCSJ4ZW5wcm9qZWN0Lm9yZy94ZW5saWdodCIKKykKKworZnVuYyBtYWluKCkg eworCWN0eCA6PSB4ZW5saWdodC5DdHgKKwllcnIgOj0gY3R4Lk9wZW4oKQorCWlmIGVyciAhPSBu aWwgeworCQlvcy5FeGl0KC0xKQorCX0KKwlkZWZlciBjdHguQ2xvc2UoKQorCWlmIGVyciAhPSBu aWwgeworCQlvcy5FeGl0KC0xKQorCX0KKworCW9ubGluZV9jcHVzLCBlcnIgOj0gY3R4LkdldE9u bGluZUNwdXMoKQorCWlmIGVyciAhPSBuaWwgeworCQlmbXQuUHJpbnRmKCIlZFxuIiwgZXJyKQor CX0gZWxzZSB7CisJCWZtdC5QcmludGYoIiVkXG4iLCBvbmxpbmVfY3B1cykKKwl9CisKK30KZGlm ZiAtLWdpdCBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vcGh5c2luZm8uYyBi L3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8vcGh5c2luZm8uYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTNhYTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdG9v bHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9waHlzaW5mby5jCkBAIC0wLDAgKzEsMzEg QEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxp YnhsLmg+CisjaW5jbHVkZSAicHJpbnQuaCIKKworaW50IG1haW4oKXsKKworICAgIGxpYnhsX2N0 eCAqY29udGV4dDsKKyAgICBsaWJ4bF9jdHhfYWxsb2MoJmNvbnRleHQsTElCWExfVkVSU0lPTiwg MCwgTlVMTCk7CisgICAgbGlieGxfcGh5c2luZm8gaW5mbzsKKyAgICBsaWJ4bF9waHlzaW5mb19p bml0KCZpbmZvKTsKKyAgICBpbnQgZXJyPSBsaWJ4bF9nZXRfcGh5c2luZm8oY29udGV4dCwmaW5m byk7CisgICAgaWYoZXJyICE9IDApeworICAgICAgICByZXR1cm4gZXJyOworICAgIH0KKworICAg IHByaW50ZigiJWRcbiVkXG4lZFxuJWRcbiVkXG4iLCBpbmZvLnRocmVhZHNfcGVyX2NvcmUsIGlu Zm8uY29yZXNfcGVyX3NvY2tldCwgaW5mby5tYXhfY3B1X2lkLCBpbmZvLm5yX2NwdXMsIGluZm8u Y3B1X2toeik7CisgICAgcHJpbnRmKCIlbHVcbiVsdVxuJWx1XG4lbHVcbiVsdVxuJWx1XG4iLCBp bmZvLnRvdGFsX3BhZ2VzLCBpbmZvLmZyZWVfcGFnZXMsIGluZm8uc2NydWJfcGFnZXMsIGluZm8u b3V0c3RhbmRpbmdfcGFnZXMsIGluZm8uc2hhcmluZ19mcmVlZF9wYWdlcywgaW5mby5zaGFyaW5n X3VzZWRfZnJhbWVzKTsKKyAgICBwcmludGYoIiV1XG4iLGluZm8ubnJfbm9kZXMpOworICAgIHBy aW50ZigiJXNcbiVzXG4iLCBib29sX3RvX3N0cmluZyhpbmZvLmNhcF9odm0pLCBib29sX3RvX3N0 cmluZyhpbmZvLmNhcF9odm1fZGlyZWN0aW8pKTsKKworICAgIGludCBpOworICAgIGZvcihpID0g MDsgaSA8IDg7IGkrKyl7CisgICAgICAgIHByaW50ZigiJXVcbiIsIGluZm8uaHdfY2FwW2ldKTsK KyAgICB9CisKKyAgICBsaWJ4bF9waHlzaW5mb19pbml0KCZpbmZvKTsKKyAgICBsaWJ4bF9jdHhf ZnJlZShjb250ZXh0KTsKKworfQorCmRpZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVubGlnaHQv dGVzdC94ZW5pbmZvL3BoeXNpbmZvLmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVu aW5mby9waHlzaW5mby5nbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjdi ZGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5m by9waHlzaW5mby5nbwpAQCAtMCwwICsxLDMyIEBACitwYWNrYWdlIG1haW4KKworaW1wb3J0ICgK KwkiZm10IgorCSJvcyIKKwkieGVucHJvamVjdC5vcmcveGVubGlnaHQiCispCisKK2Z1bmMgbWFp bigpIHsKKwljdHggOj0geGVubGlnaHQuQ3R4CisJZXJyIDo9IGN0eC5PcGVuKCkKKwlpZiBlcnIg IT0gbmlsIHsKKwkJb3MuRXhpdCgtMSkKKwl9CisJZGVmZXIgY3R4LkNsb3NlKCkKKwlpbmZvLCBl cnIgOj0gY3R4LkdldFBoeXNpbmZvKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJb3MuRXhpdCgtMSkK Kwl9CisKKwlmbXQuUHJpbnRmKCIlZFxuJWRcbiVkXG4lZFxuJWRcbiIsIGluZm8uVGhyZWFkc1Bl ckNvcmUsIGluZm8uQ29yZXNQZXJTb2NrZXQsCisJCWluZm8uTWF4Q3B1SWQsIGluZm8uTnJDcHVz LCBpbmZvLkNwdUtoeikKKwlmbXQuUHJpbnRmKCIlZFxuJWRcbiVkXG4lZFxuJWRcbiVkXG4iLCBp bmZvLlRvdGFsUGFnZXMsIGluZm8uRnJlZVBhZ2VzLAorCQlpbmZvLlNjcnViUGFnZXMsIGluZm8u T3V0c3RhbmRpbmdQYWdlcywgaW5mby5TaGFyaW5nRnJlZWRQYWdlcywKKwkJaW5mby5TaGFyaW5n VXNlZEZyYW1lcykKKwlmbXQuUHJpbnRmKCIlZFxuIiwgaW5mby5Ock5vZGVzKQorCWZtdC5Qcmlu dGYoIiV0XG4ldFxuIiwgaW5mby5DYXBIdm0sIGluZm8uQ2FwSHZtRGlyZWN0aW8pCisKKwlmb3Ig aSA6PSAwOyBpIDwgODsgaSsrIHsKKwkJZm10LlByaW50ZigiJWRcbiIsIGluZm8uSHdDYXBbaV0p CisJfQorfQpkaWZmIC0tZ2l0IGEvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9w cmludC5oIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby9wcmludC5oCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhYWEyOWMKLS0tIC9kZXYvbnVsbAorKysg Yi90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL3ByaW50LmgKQEAgLTAsMCArMSwz IEBACitjaGFyKiBib29sX3RvX3N0cmluZyhhKXsKKyAgICAgICAJcmV0dXJuIChhPyAidHJ1ZSIg OiAiZmFsc2UiKTsKK30KZGlmZiAtLWdpdCBhL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hl bmluZm8vdmVyc2lvbmluZm8uYyBiL3Rvb2xzL2dvbGFuZy94ZW5saWdodC90ZXN0L3hlbmluZm8v dmVyc2lvbmluZm8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZDgwN2Mw Ci0tLSAvZGV2L251bGwKKysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby92 ZXJzaW9uaW5mby5jCkBAIC0wLDAgKzEsMjAgQEAKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1 ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPGxpYnhsLmg+CisKK21haW4oKXsKKworICAgIGxpYnhs X2N0eCAqY29udGV4dDsKKyAgICBsaWJ4bF9jdHhfYWxsb2MoJmNvbnRleHQsTElCWExfVkVSU0lP TiwgMCwgTlVMTCk7CisgICAgbGlieGxfdmVyc2lvbl9pbmZvICppbmZvID0gbGlieGxfZ2V0X3Zl cnNpb25faW5mbyhjb250ZXh0KTsKKworICAgIHByaW50ZigiJWRcbiVkXG4iLCBpbmZvLT54ZW5f dmVyc2lvbl9tYWpvciwgaW5mby0+eGVuX3ZlcnNpb25fbWlub3IpOworICAgIHByaW50ZigiJXNc biVzXG4lc1xuJXNcbiVzXG4lc1xuJXNcbiIsIGluZm8tPnhlbl92ZXJzaW9uX2V4dHJhLCBpbmZv LT5jb21waWxlciwgCisJCSAgICBpbmZvLT5jb21waWxlX2J5LCBpbmZvLT5jb21waWxlX2RvbWFp biwgaW5mby0+Y29tcGlsZV9kYXRlLCAKKwkJICAgIGluZm8tPmNhcGFiaWxpdGllcywgaW5mby0+ Y2hhbmdlc2V0KTsKKyAgICBwcmludGYoIiVsdVxuJWRcbiIsIGluZm8tPnZpcnRfc3RhcnQsIGlu Zm8tPnBhZ2VzaXplKTsKKyAgICBwcmludGYoIiVzXG4lc1xuIiwgaW5mby0+Y29tbWFuZGxpbmUs IGluZm8tPmJ1aWxkX2lkKTsKKworICAgIGxpYnhsX2N0eF9mcmVlKGNvbnRleHQpOworCit9CmRp ZmYgLS1naXQgYS90b29scy9nb2xhbmcveGVubGlnaHQvdGVzdC94ZW5pbmZvL3ZlcnNpb25pbmZv LmdvIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby92ZXJzaW9uaW5mby5nbwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTQ1NDcyCi0tLSAvZGV2L251bGwK KysrIGIvdG9vbHMvZ29sYW5nL3hlbmxpZ2h0L3Rlc3QveGVuaW5mby92ZXJzaW9uaW5mby5nbwpA QCAtMCwwICsxLDI4IEBACitwYWNrYWdlIG1haW4KKworaW1wb3J0ICgKKwkiZm10IgorCSJvcyIK KwkieGVucHJvamVjdC5vcmcveGVubGlnaHQiCispCisKK2Z1bmMgbWFpbigpIHsKKwljdHggOj0g eGVubGlnaHQuQ3R4CisJZXJyIDo9IGN0eC5PcGVuKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJb3Mu RXhpdCgtMSkKKwl9CisJZGVmZXIgY3R4LkNsb3NlKCkKKwlpbmZvLCBlcnIgOj0gY3R4LkdldFZl cnNpb25JbmZvKCkKKwlpZiBlcnIgIT0gbmlsIHsKKwkJb3MuRXhpdCgtMSkKKwl9CisKKwlmbXQu UHJpbnRmKCIlZFxuJWRcbiIsIGluZm8uWGVuVmVyc2lvbk1ham9yLCBpbmZvLlhlblZlcnNpb25N aW5vcikKKwlmbXQuUHJpbnRmKCIlc1xuJXNcbiVzXG4lc1xuJXNcbiVzXG4lc1xuIiwgaW5mby5Y ZW5WZXJzaW9uRXh0cmEsIGluZm8uQ29tcGlsZXIsCisJCWluZm8uQ29tcGlsZUJ5LCBpbmZvLkNv bXBpbGVEb21haW4sIGluZm8uQ29tcGlsZURhdGUsIGluZm8uQ2FwYWJpbGl0aWVzLAorCQlpbmZv LkNoYW5nZXNldCkKKwlmbXQuUHJpbnRmKCIlZFxuJWRcbiIsIGluZm8uVmlydFN0YXJ0LCBpbmZv LlBhZ2VzaXplKQorCWZtdC5QcmludGYoIiVzXG4lc1xuIiwgaW5mby5Db21tYW5kbGluZSwgaW5m by5CdWlsZElkKQorCit9Ci0tIAoyLjcuMwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=