From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: [PATCH v3 10/12] fuzz/x86_emulate: Add --rerun option to try to track down instability Date: Tue, 10 Oct 2017 17:20:09 +0100 Message-ID: <20171010162011.9629-10-george.dunlap@citrix.com> References: <20171010162011.9629-1-george.dunlap@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e22ZL-00037P-Nn for xen-devel@lists.xenproject.org; Tue, 10 Oct 2017 22:00:07 +0000 In-Reply-To: <20171010162011.9629-1-george.dunlap@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Ian Jackson , Wei Liu , George Dunlap , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org Q3VycmVudCBzdGFiaWxpdHkgbnVtYmVycyBhcmUgbm90IDEwMCUuICBJbiBvcmRlciB0byBoZWxw IHRyYWNrIHRoaXMKZG93biwgYWRkIGEgLS1yZXJ1biBvcHRpb24gd2hpY2ggd2lsbCBydW4gdGhl IHNhbWUgaW5wdXQgdHdpY2UsCnJlc2V0dGluZyB0aGUgc3RhdGUgYmV0d2VlbiBlYWNoIHJ1biwg YW5kIGNvbXBhcmluZyB0aGUgc3RhdGUKYWZ0ZXJ3YXJkcy4gIElmIHRoZSBzdGF0ZSBkaWZmZXJz LCBjYWxsIGFib3J0KCkuCgpUaGlzIGFsbG93cyBBRkwgdG8gaGVscCB0aGUgcHJvY2VzcyBvZiB0 cmFja2luZyBkb3duIHdoYXQgc3RhdGUgaXMgbm90CmJlaW5nIHJlc2V0IHByb3Blcmx5IGJldHdl ZW4gcnVucyBieSBwcm92aW5nIHRlc3RjYXNlcyB0aGF0CmRlbW9uc3RyYXRlIHRoZSBiZWhhdmlv ci4KClRvIGRvIHRoaXM6CgotIE1vdmUgY3R4dCBpbnRvIHN0cnVjdCBmdXp6LXN0YXRlIHRvIHNp bXBsaWZ5IGhhbmRsaW5nCgotIFJhdGhlciB0aGFuIGNvcHlpbmcgdGhlIGRhdGEgaW50byBpbnB1 dCwgdHJlYXQgdGhlIGRhdGEgaGFuZGVkIGFzCiAgaW1tdXRhYmxlIGFuZCBwb2ludCBlYWNoICJj b3B5IiB0byBpdAoKLSBGYWN0b3Igb3V0IHZhcmlvdXMgc3RlcHMgKHNldHRpbmcgdXAgZnV6eiBz dGF0ZSwgcnVubmluZyBhbgogIGluZGl2aWR1YWwgdGVzdCkgc28gdGhhdCB0aGV5IGNhbiBiZSBl ZmZpY2llbnRseSBydW4gZWl0aGVyIG9uY2Ugb3IKICB0d2ljZSAoYXMgbmVjZXNzYXJ5KQoKLSBD b21wYXJlIHRoZSBzdGF0ZXMgYWZ0ZXJ3YXJkcywgcHJpbnRpbmcgd2hhdCdzIGRpZmZlcmVudCBh bmQgY2FsbGluZwogIGFib3J0KCkgaWYgYW55dGhpbmcgaXMgZm91bmQuCgpTaWduZWQtb2ZmLWJ5 OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Ci0tLQp2MzoKLSBNYWtl IG5ldyBsb2NhbCBmdW5jdGlvbnMgc3RhdGljCi0gQXZvaWQgbG9zaW5nIGNvbnN0LW5lc3Mgb2Yg cG9pbnRlciBpbiBzZXR1cF9mdXp6X3N0YXRlKCkKLSBSZW1vdmUgdXNlbGVzcyAqX3NpemUgaW5p dGlhbGl6YXRpb24KLSBSZW1vdmUgZXh0cmEgYmxhbmsgbGluZQotIFVzZSBBUlJBWV9TSVpFKCkg d2hlbiBhcHByb3ByaWF0ZQotIE1vdmUgb3B0X3JlcnVuIGRlY2xhcmF0aW9uIGludG8gZnV6ei1l bXVsLmgKLSBDaGFuZ2UgbG9vcCB2YXJpYWJsZSB0byB1bnNpZ25lZCBpbnQKLSBQcmludCBzZWdt ZW50IGNvbnRlbnRzIHdoZW4gc2VnbWVudHMgZGlmZmVyCnYyOgotIEZpeCBzb21lIGNvZGluZyBz dHlsZSBpc3N1ZXMKLSBQb3J0IG92ZXIgcHJldmlvdXMgY2hhbmdlcwoKQ0M6IElhbiBKYWNrc29u IDxpYW4uamFja3NvbkBjaXRyaXguY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNv bT4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNDOiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQogdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rp b25fZW11bGF0b3IvYWZsLWhhcm5lc3MuYyB8ICAgOCArLQogdG9vbHMvZnV6ei94ODZfaW5zdHJ1 Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMgICB8IDE5NCArKysrKysrKysrKysrKysrKystLS0t CiB0b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuaCAgIHwgICAx ICsKIDMgZmlsZXMgY2hhbmdlZCwgMTcxIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3Rvb2xzL2Z1enoveDg2X2luc3RydWN0aW9uX2VtdWxhdG9yL2FmbC1oYXJu ZXNzLmMgYi90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9hZmwtaGFybmVzcy5j CmluZGV4IDA1MjIzOWNlYTQuLjRhNTVhYzNjM2YgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Z1enoveDg2 X2luc3RydWN0aW9uX2VtdWxhdG9yL2FmbC1oYXJuZXNzLmMKKysrIGIvdG9vbHMvZnV6ei94ODZf aW5zdHJ1Y3Rpb25fZW11bGF0b3IvYWZsLWhhcm5lc3MuYwpAQCAtMjMsMTAgKzIzLDEyIEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAgZW51bSB7CiAgICAgICAgICAg ICBPUFRfTUlOX1NJWkUsCiAgICAgICAgICAgICBPUFRfQ09NUEFDVCwKKyAgICAgICAgICAgIE9Q VF9SRVJVTiwKICAgICAgICAgfTsKICAgICAgICAgc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24g bG9wdHNbXSA9IHsKICAgICAgICAgICAgIHsgIm1pbi1pbnB1dC1zaXplIiwgbm9fYXJndW1lbnQs IE5VTEwsIE9QVF9NSU5fU0laRSB9LAogICAgICAgICAgICAgeyAiY29tcGFjdCIsIHJlcXVpcmVk X2FyZ3VtZW50LCBOVUxMLCBPUFRfQ09NUEFDVCB9LAorICAgICAgICAgICAgeyAicmVydW4iLCBu b19hcmd1bWVudCwgTlVMTCwgT1BUX1JFUlVOIH0sCiAgICAgICAgICAgICB7IDAsIDAsIDAsIDAg fQogICAgICAgICB9OwogICAgICAgICBpbnQgYyA9IGdldG9wdF9sb25nX29ubHkoYXJnYywgYXJn diwgIiIsIGxvcHRzLCBOVUxMKTsKQEAgLTQ1LDggKzQ3LDEyIEBAIGludCBtYWluKGludCBhcmdj LCBjaGFyICoqYXJndikKICAgICAgICAgICAgIG9wdF9jb21wYWN0ID0gYXRvaShvcHRhcmcpOwog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBPUFRfUkVSVU46 CisgICAgICAgICAgICBvcHRfcmVydW4gPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisKICAg ICAgICAgY2FzZSAnPyc6Ci0gICAgICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLS1jb21wYWN0 PTB8MV0gJEZJTEUgWyRGSUxFLi4uXSB8IFstLW1pbi1pbnB1dC1zaXplXVxuIiwgYXJndlswXSk7 CisgICAgICAgICAgICBwcmludGYoIlVzYWdlOiAlcyBbLS1jb21wYWN0PTB8MV0gWy0tcmVydW5d ICRGSUxFIFskRklMRS4uLl0gfCBbLS1taW4taW5wdXQtc2l6ZV1cbiIsIGFyZ3ZbMF0pOwogICAg ICAgICAgICAgZXhpdCgtMSk7CiAgICAgICAgICAgICBicmVhazsKIApkaWZmIC0tZ2l0IGEvdG9v bHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMgYi90b29scy9mdXp6 L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuYwppbmRleCBiNmViY2ViYzE5Li43 Njg1ZTk3NmI4IDEwMDY0NAotLS0gYS90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRv ci9mdXp6LWVtdWwuYworKysgYi90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9m dXp6LWVtdWwuYwpAQCAtNDMsNyArNDMsNyBAQCBzdHJ1Y3QgZnV6el9zdGF0ZQogCiAgICAgLyog RnV6emVyJ3MgaW5wdXQgZGF0YS4gKi8KICNkZWZpbmUgREFUQV9TSVpFX0ZVTEwgb2Zmc2V0b2Yo c3RydWN0IGZ1enpfc3RhdGUsIGNvcnB1cykKLSAgICBzdHJ1Y3QgZnV6el9jb3JwdXMgKmNvcnB1 czsKKyAgICBjb25zdCBzdHJ1Y3QgZnV6el9jb3JwdXMgKmNvcnB1czsKIAogICAgIC8qIFJlYWwg YW1vdW50IG9mIGRhdGEgYmFja2luZyBjb3JwdXMtPmRhdGFbXS4gKi8KICAgICBzaXplX3QgZGF0 YV9udW07CkBAIC01Myw2ICs1Myw3IEBAIHN0cnVjdCBmdXp6X3N0YXRlCiAKICAgICAvKiBFbXVs YXRpb24gb3BzLCBzb21lIG9mIHdoaWNoIGFyZSBkaXNhYmxlZCBiYXNlZCBvbiBjb3JwdXMtPm9w dGlvbnMuICovCiAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBvcHM7CisgICAgc3RydWN0IHg4 Nl9lbXVsYXRlX2N0eHQgY3R4dDsKIH07CiAKIGJvb2wgb3B0X2NvbXBhY3QgPSB0cnVlOwpAQCAt NDk1LDYgKzQ5NiwxMiBAQCBzdGF0aWMgaW50IGZ1enpfcmVhZF9tc3IoCiAgICAgY29uc3Qgc3Ry dWN0IGZ1enpfc3RhdGUgKnMgPSBjdHh0LT5kYXRhOwogICAgIHVuc2lnbmVkIGludCBpZHg7CiAK KyAgICAvKiAKKyAgICAgKiBOQiBhdCB0aGUgbW9tZW50IGR1bXBfc3RhdGUoKSByZWxpZXMgb24g dGhlIGZhY3QgdGhhdCB0aGlzCisgICAgICogY2Fubm90IGZhaWwuICBJZiB3ZSBhZGQgaW4gZnV6 emVkIGZhaWx1cmVzIHdlJ2xsIGhhdmUgdG8gaGFuZGxlCisgICAgICogdGhhdCBkaWZmZXJlbnRs eS4KKyAgICAgKi8KKyAgICAKICAgICBzd2l0Y2ggKCByZWcgKQogICAgIHsKICAgICBjYXNlIE1T Ul9UU0NfQVVYOgpAQCAtNjE1LDYgKzYyMiw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfc3RhdGUoc3Ry dWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiAKICAgICBwcmludGYoIiByaXA6ICUiUFJJeDY0 IlxuIiwgcmVncy0+cmlwKTsKIAorICAgIC8qIHJlYWRfbXNyKCkgbmV2ZXIgZmFpbHMgYXQgdGhl IG1vbWVudCAqLwogICAgIGZ1enpfcmVhZF9tc3IoTVNSX0VGRVIsICZ2YWwsIGN0eHQpOwogICAg IHByaW50ZigiRUZFUjogJSJQUkl4NjQiXG4iLCB2YWwpOwogfQpAQCAtNjU5LDcgKzY2NywxMCBA QCBzdGF0aWMgdm9pZCBzZXR1cF9zdGF0ZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkK ICAgICB7CiAgICAgICAgIC8qIEZ1enogYWxsIG9mIHRoZSBzdGF0ZSBpbiBvbmUgZ28gKi8KICAg ICAgICAgaWYgKCAhaW5wdXRfcmVhZChzLCBzLCBEQVRBX1NJWkVfRlVMTCkgKQorICAgICAgICB7 CisgICAgICAgICAgICBwcmludGYoIklucHV0IHNpemUgdG9vIHNtYWxsXG4iKTsKICAgICAgICAg ICAgIGV4aXQoLTEpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc4 OSw5ICs4MDAsOCBAQCBlbnVtIHsKICAgICAgICAgcHJpbnRmKCJEaXNhYmxpbmcgaG9vayAiI2gi XG4iKTsgICAgICAgICAgICAgICBcCiAgICAgfQogCi1zdGF0aWMgdm9pZCBkaXNhYmxlX2hvb2tz KHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQorc3RhdGljIHZvaWQgZGlzYWJsZV9ob29r cyhzdHJ1Y3QgZnV6el9zdGF0ZSAqcykKIHsKLSAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0 eHQtPmRhdGE7CiAgICAgdW5zaWduZWQgbG9uZyBiaXRtYXAgPSBzLT5vcHRpb25zOwogCiAgICAg LyogU2VlIGFsc28gc2FuaXRpemVfaW5wdXQsIHNvbWUgaG9va3MgY2FuJ3QgYmUgZGlzYWJsZWQu ICovCkBAIC04MzksNyArODQ5LDcgQEAgc3RhdGljIHZvaWQgZGlzYWJsZV9ob29rcyhzdHJ1Y3Qg eDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKICAqICAtIC4uLmJhc2VzIHRvIGJlbG93IDFNYiwgMTYt Ynl0ZSBhbGlnbmVkCiAgKiAgLSAuLi5zZWxlY3RvcnMgdG8gKGJhc2UgPj4gNCkKICAqLwotc3Rh dGljIHZvaWQgc2FuaXRpemVfaW5wdXQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCitz dGF0aWMgdm9pZCBzYW5pdGl6ZV9zdGF0ZShzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkK IHsKICAgICBzdHJ1Y3QgZnV6el9zdGF0ZSAqcyA9IGN0eHQtPmRhdGE7CiAgICAgc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MgPSBjdHh0LT5yZWdzOwpAQCAtODg2LDIxICs4OTYsMTQ0IEBAIGlu dCBMTFZNRnV6emVySW5pdGlhbGl6ZShpbnQgKmFyZ2MsIGNoYXIgKioqYXJndikKICAgICByZXR1 cm4gMDsKIH0KIAotaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCAqZGF0 YV9wLCBzaXplX3Qgc2l6ZSkKK3N0YXRpYyB2b2lkIHNldHVwX2Z1enpfc3RhdGUoc3RydWN0IGZ1 enpfc3RhdGUgKnN0YXRlLCBjb25zdCB2b2lkICpkYXRhX3AsIHNpemVfdCBzaXplKQogewotICAg IHN0cnVjdCBmdXp6X3N0YXRlIHN0YXRlID0gewotICAgICAgICAub3BzID0gYWxsX2Z1enplcl9v cHMsCi0gICAgfTsKLSAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCBjdHh0ID0gewotICAgICAg ICAuZGF0YSA9ICZzdGF0ZSwKLSAgICAgICAgLnJlZ3MgPSAmc3RhdGUucmVncywKLSAgICAgICAg LmFkZHJfc2l6ZSA9IDggKiBzaXplb2Yodm9pZCAqKSwKLSAgICAgICAgLnNwX3NpemUgPSA4ICog c2l6ZW9mKHZvaWQgKiksCi0gICAgfTsKKyAgICBtZW1zZXQoc3RhdGUsIDAsIHNpemVvZigqc3Rh dGUpKTsKKyAgICBzdGF0ZS0+Y29ycHVzID0gZGF0YV9wOworICAgIHN0YXRlLT5kYXRhX251bSA9 IHNpemU7Cit9CisKK3N0YXRpYyBpbnQgcnVudGVzdChzdHJ1Y3QgZnV6el9zdGF0ZSAqc3RhdGUp IHsKICAgICBpbnQgcmM7CiAKLSAgICAvKiBSZXNldCBhbGwgZ2xvYmFsIHN0YXRlIHZhcmlhYmxl cyAqLwotICAgIG1lbXNldCgmaW5wdXQsIDAsIHNpemVvZihpbnB1dCkpOworICAgIHN0cnVjdCB4 ODZfZW11bGF0ZV9jdHh0ICpjdHh0ID0gJnN0YXRlLT5jdHh0OworICAgIAorICAgIHN0YXRlLT5v cHMgPSBhbGxfZnV6emVyX29wczsKKworICAgIGN0eHQtPmRhdGEgPSBzdGF0ZTsKKyAgICBjdHh0 LT5yZWdzID0gJnN0YXRlLT5yZWdzOworCisgICAgc2V0dXBfc3RhdGUoY3R4dCk7CisKKyAgICBz YW5pdGl6ZV9zdGF0ZShjdHh0KTsKKworICAgIGRpc2FibGVfaG9va3Moc3RhdGUpOworCisgICAg ZG8geworICAgICAgICAvKiBGSVhNRTogVW50aWwgd2UgYWN0dWFsbHkgaW1wbGVtZW50IFNJR0ZQ RSBoYW5kbGluZyBwcm9wZXJseSAqLworICAgICAgICBzZXR1cF9mcHVfZXhjZXB0aW9uX2hhbmRs ZXIoKTsKKworICAgICAgICBzZXRfc2l6ZXMoY3R4dCk7CisgICAgICAgIGR1bXBfc3RhdGUoY3R4 dCk7CisKKyAgICAgICAgcmMgPSB4ODZfZW11bGF0ZShjdHh0LCAmc3RhdGUtPm9wcyk7CisgICAg ICAgIHByaW50ZigiRW11bGF0aW9uIHJlc3VsdDogJWRcbiIsIHJjKTsKKyAgICB9IHdoaWxlICgg cmMgPT0gWDg2RU1VTF9PS0FZICk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQg Y29tcGFyZV9zdGF0ZXMoc3RydWN0IGZ1enpfc3RhdGUgc3RhdGVbMl0pCit7CisgICAgLy8gRmly c3QgemVybyBhbnkgImludGVybmFsIiBwb2ludGVycworICAgIHN0YXRlWzBdLmNvcnB1cyA9IHN0 YXRlWzFdLmNvcnB1cyA9IE5VTEw7CisgICAgc3RhdGVbMF0uY3R4dC5kYXRhID0gc3RhdGVbMV0u Y3R4dC5kYXRhID0gTlVMTDsKKyAgICBzdGF0ZVswXS5jdHh0LnJlZ3MgPSBzdGF0ZVsxXS5jdHh0 LnJlZ3MgPSBOVUxMOworCisgICAgaWYgKCBtZW1jbXAoJnN0YXRlWzBdLCAmc3RhdGVbMV0sIHNp emVvZihzdHJ1Y3QgZnV6el9zdGF0ZSkpICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBp OworCisgICAgICAgIHByaW50ZigiU3RhdGUgbWlzbWF0Y2hcbiIpOworCisgICAgICAgIGZvciAo IGk9MDsgaTxBUlJBWV9TSVpFKHN0YXRlWzBdLmNyKTsgaSsrICkKKyAgICAgICAgICAgIGlmICgg c3RhdGVbMF0uY3JbaV0gIT0gc3RhdGVbMV0uY3JbaV0gKQorICAgICAgICAgICAgICAgIHByaW50 ZigiY3JbJXVdOiAlbHggIT0gJWx4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBpLCBzdGF0 ZVswXS5jcltpXSwgc3RhdGVbMV0uY3JbaV0pOworICAgICAgICAKKyAgICAgICAgZm9yICggaT0w OyBpPEFSUkFZX1NJWkUoc3RhdGVbMF0ubXNyKTsgaSsrICkKKyAgICAgICAgICAgIGlmICggc3Rh dGVbMF0ubXNyW2ldICE9IHN0YXRlWzFdLm1zcltpXSApCisgICAgICAgICAgICAgICAgcHJpbnRm KCJtc3JbJXVdOiAlbHggIT0gJWx4XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBpLCBzdGF0 ZVswXS5tc3JbaV0sIHN0YXRlWzFdLm1zcltpXSk7CisgICAgICAgIAorICAgICAgICBmb3IgKCBp PTA7IGk8QVJSQVlfU0laRShzdGF0ZVswXS5zZWdtZW50cyk7IGkrKyApCisgICAgICAgICAgICBp ZiAoIG1lbWNtcCgmc3RhdGVbMF0uc2VnbWVudHNbaV0sICZzdGF0ZVsxXS5zZWdtZW50c1tpXSwK KyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdGF0ZVswXS5zZWdtZW50c1swXSkpICkK KyAgICAgICAgICAgICAgICBwcmludGYoInNlZ21lbnRzWyV1XTogWyV4OiV4OiV4OiVseF0gIT0g WyV4OiV4OiV4OiVseF0hXG4iLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQp c3RhdGVbMF0uc2VnbWVudHNbaV0uc2VsLAorICAgICAgICAgICAgICAgICAgICAgICAodW5zaWdu ZWQpc3RhdGVbMF0uc2VnbWVudHNbaV0uYXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgc3Rh dGVbMF0uc2VnbWVudHNbaV0ubGltaXQsCisgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlWzBd LnNlZ21lbnRzW2ldLmJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZClzdGF0 ZVsxXS5zZWdtZW50c1tpXS5zZWwsCisgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZClz dGF0ZVsxXS5zZWdtZW50c1tpXS5hdHRyLAorICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZVsx XS5zZWdtZW50c1tpXS5saW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RhdGVbMV0uc2Vn bWVudHNbaV0uYmFzZSk7CisKKyAgICAgICAgaWYgKCBzdGF0ZVswXS5kYXRhX251bSAhPSBzdGF0 ZVsxXS5kYXRhX251bSApCisgICAgICAgICAgICBwcmludGYoImRhdGFfbnVtOiAlbHggIT0gICVs eFxuIiwgc3RhdGVbMF0uZGF0YV9udW0sCisgICAgICAgICAgICAgICAgICAgc3RhdGVbMV0uZGF0 YV9udW0pOworICAgICAgICBpZiAoIHN0YXRlWzBdLmRhdGFfaW5kZXggIT0gc3RhdGVbMV0uZGF0 YV9pbmRleCApCisgICAgICAgICAgICBwcmludGYoImRhdGFfaW5kZXg6ICVseCAhPSAgJWx4XG4i LCBzdGF0ZVswXS5kYXRhX2luZGV4LAorICAgICAgICAgICAgICAgICAgIHN0YXRlWzFdLmRhdGFf aW5kZXgpOworCisgICAgICAgIGlmICggbWVtY21wKCZzdGF0ZVswXS5yZWdzLCAmc3RhdGVbMV0u cmVncywgc2l6ZW9mKHN0YXRlWzBdLnJlZ3MpKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHBy aW50ZigicmVnaXN0ZXJzIGRpZmZlciFcbiIpOworICAgICAgICAgICAgLyogUHJpbnQgSWYgTm90 IEVxdWFsICovCisjZGVmaW5lIFBJTkUoZWxlbSlcCisgICAgICAgICAgICBpZiAoIHN0YXRlWzBd LmVsZW0gIT0gc3RhdGVbMV0uZWxlbSApIFwKKyAgICAgICAgICAgICAgICBwcmludGYoI2VsZW0g IiBkaWZmZXI6ICVseCAhPSAlbHhcbiIsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgKHVuc2ln bmVkIGxvbmcpc3RhdGVbMF0uZWxlbSwgXAorICAgICAgICAgICAgICAgICAgICAgICAodW5zaWdu ZWQgbG9uZylzdGF0ZVsxXS5lbGVtKQorICAgICAgICAgICAgUElORShyZWdzLnIxNSk7CisgICAg ICAgICAgICBQSU5FKHJlZ3MucjE0KTsKKyAgICAgICAgICAgIFBJTkUocmVncy5yMTMpOworICAg ICAgICAgICAgUElORShyZWdzLnIxMik7CisgICAgICAgICAgICBQSU5FKHJlZ3MucmJwKTsKKyAg ICAgICAgICAgIFBJTkUocmVncy5yYngpOworICAgICAgICAgICAgUElORShyZWdzLnIxMCk7Cisg ICAgICAgICAgICBQSU5FKHJlZ3MucjExKTsKKyAgICAgICAgICAgIFBJTkUocmVncy5yOSk7Cisg ICAgICAgICAgICBQSU5FKHJlZ3MucjgpOworICAgICAgICAgICAgUElORShyZWdzLnJheCk7Cisg ICAgICAgICAgICBQSU5FKHJlZ3MucmN4KTsKKyAgICAgICAgICAgIFBJTkUocmVncy5yZHgpOwor ICAgICAgICAgICAgUElORShyZWdzLnJzaSk7CisgICAgICAgICAgICBQSU5FKHJlZ3MucmRpKTsK KworICAgICAgICAgICAgZm9yICggaSA9IG9mZnNldG9mKHN0cnVjdCBjcHVfdXNlcl9yZWdzLCBl cnJvcl9jb2RlKSAvIHNpemVvZih1bnNpZ25lZCk7CisgICAgICAgICAgICAgICAgICBpIDwgc2l6 ZW9mKHN0YXRlWzFdLnJlZ3MpL3NpemVvZih1bnNpZ25lZCk7IGkrKyApCisgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgcHJpbnRmKCJbJTA0bHVdICUwOHggJTA4eFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgIGkgKiBzaXplb2YodW5zaWduZWQpLCAoKHVuc2lnbmVkICopJnN0YXRl WzBdLnJlZ3MpW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkICopJnN0YXRl WzFdLnJlZ3MpW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICgg bWVtY21wKCZzdGF0ZVswXS5vcHMsICZzdGF0ZVsxXS5vcHMsIHNpemVvZihzdGF0ZVswXS5vcHMp KSApCisgICAgICAgICAgICBwcmludGYoIm9wcyBkaWZmZXIhXG4iKTsKKworICAgICAgICBpZiAo IG1lbWNtcCgmc3RhdGVbMF0uY3R4dCwgJnN0YXRlWzFdLmN0eHQsIHNpemVvZihzdGF0ZVswXS5j dHh0KSkgKQorICAgICAgICB7CisgICAgICAgICAgICBwcmludGYoImN0eHQgZGlmZmVycyFcbiIp OworICAgICAgICAgICAgZm9yICggaSA9IDA7ICBpIDwgc2l6ZW9mKHN0YXRlWzBdLmN0eHQpL3Np emVvZih1bnNpZ25lZCk7IGkrKyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJp bnRmKCJbJTA0bHVdICUwOHggJTA4eFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGkgKiBz aXplb2YodW5zaWduZWQpLCAoKHVuc2lnbmVkICopJnN0YXRlWzBdLmN0eHQpW2ldLAorICAgICAg ICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkICopJnN0YXRlWzFdLmN0eHQpW2ldKTsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICB9CisKKyAgICAgICAgYWJvcnQoKTsKKyAg ICB9Cit9CisKK2Jvb2wgb3B0X3JlcnVuID0gZmFsc2U7CisKK2ludCBMTFZNRnV6emVyVGVzdE9u ZUlucHV0KGNvbnN0IHVpbnQ4X3QgKmRhdGFfcCwgc2l6ZV90IHNpemUpCit7CisgICAgc3RydWN0 IGZ1enpfc3RhdGUgc3RhdGVbMl07CiAKICAgICBpZiAoIHNpemUgPCBmdXp6X21pbmltYWxfaW5w dXRfc2l6ZSgpICkKICAgICB7CkBAIC05MDgsNyArMTA0MSw3IEBAIGludCBMTFZNRnV6emVyVGVz dE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QgKmRhdGFfcCwgc2l6ZV90IHNpemUpCiAgICAgICAgIHJl dHVybiAxOwogICAgIH0KIAotICAgIGlmICggc2l6ZSA+IHNpemVvZihpbnB1dCkgKQorICAgIGlm ICggc2l6ZSA+IHNpemVvZihzdHJ1Y3QgZnV6el9jb3JwdXMpICkKICAgICB7CiAgICAgICAgIHBy aW50ZigiSW5wdXQgdG9vIGxhcmdlXG4iKTsKICAgICAgICAgcmV0dXJuIDE7CkBAIC05MTYsMjUg KzEwNDksMjQgQEAgaW50IExMVk1GdXp6ZXJUZXN0T25lSW5wdXQoY29uc3QgdWludDhfdCAqZGF0 YV9wLCBzaXplX3Qgc2l6ZSkKIAogICAgIG1lbWNweSgmaW5wdXQsIGRhdGFfcCwgc2l6ZSk7CiAK LSAgICBzdGF0ZS5jb3JwdXMgPSAmaW5wdXQ7Ci0gICAgc3RhdGUuZGF0YV9udW0gPSBzaXplOwot Ci0gICAgc2V0dXBfc3RhdGUoJmN0eHQpOworICAgIHNldHVwX2Z1enpfc3RhdGUoJnN0YXRlWzBd LCBkYXRhX3AsIHNpemUpOworICAgIAorICAgIGlmICggb3B0X3JlcnVuICkKKyAgICAgICAgcHJp bnRmKCJ8fHwgSU5JVElBTCBSVU4gfHx8XG4iKTsKKyAgICAKKyAgICBydW50ZXN0KCZzdGF0ZVsw XSk7CiAKLSAgICBzYW5pdGl6ZV9pbnB1dCgmY3R4dCk7CisgICAgaWYgKCAhb3B0X3JlcnVuICkK KyAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBkaXNhYmxlX2hvb2tzKCZjdHh0KTsKKyAgICAvKiBS ZXNldCBhbGwgZ2xvYmFsIHN0YXRlIHZhcmlhYmxlcyBhZ2FpbiAqLworICAgIHNldHVwX2Z1enpf c3RhdGUoJnN0YXRlWzFdLCBkYXRhX3AsIHNpemUpOwogCi0gICAgZG8gewotICAgICAgICAvKiBG SVhNRTogVW50aWwgd2UgYWN0dWFsbHkgaW1wbGVtZW50IFNJR0ZQRSBoYW5kbGluZyBwcm9wZXJs eSAqLwotICAgICAgICBzZXR1cF9mcHVfZXhjZXB0aW9uX2hhbmRsZXIoKTsKKyAgICBwcmludGYo Inx8fCBTRUNPTkQgUlVOIHx8fFxuIik7CiAKLSAgICAgICAgc2V0X3NpemVzKCZjdHh0KTsKLSAg ICAgICAgZHVtcF9zdGF0ZSgmY3R4dCk7CisgICAgcnVudGVzdCgmc3RhdGVbMV0pOwogCi0gICAg ICAgIHJjID0geDg2X2VtdWxhdGUoJmN0eHQsICZzdGF0ZS5vcHMpOwotICAgICAgICBwcmludGYo IkVtdWxhdGlvbiByZXN1bHQ6ICVkXG4iLCByYyk7Ci0gICAgfSB3aGlsZSAoIHJjID09IFg4NkVN VUxfT0tBWSApOworICAgIGNvbXBhcmVfc3RhdGVzKHN0YXRlKTsKIAogICAgIHJldHVybiAwOwog fQpkaWZmIC0tZ2l0IGEvdG9vbHMvZnV6ei94ODZfaW5zdHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1l bXVsLmggYi90b29scy9mdXp6L3g4Nl9pbnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuaApp bmRleCA4NWQyMWNiZjBmLi40ODYzYmYyMTY2IDEwMDY0NAotLS0gYS90b29scy9mdXp6L3g4Nl9p bnN0cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuaAorKysgYi90b29scy9mdXp6L3g4Nl9pbnN0 cnVjdGlvbl9lbXVsYXRvci9mdXp6LWVtdWwuaApAQCAtNiw2ICs2LDcgQEAgZXh0ZXJuIGludCBM TFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QgKmRhdGFfcCwgc2l6ZV90IHNpemUp OwogZXh0ZXJuIHVuc2lnbmVkIGludCBmdXp6X21pbmltYWxfaW5wdXRfc2l6ZSh2b2lkKTsKIAog ZXh0ZXJuIGJvb2wgb3B0X2NvbXBhY3Q7CitleHRlcm4gYm9vbCBvcHRfcmVydW47CiAKICNkZWZp bmUgSU5QVVRfU0laRSAgNDA5NgogCi0tIAoyLjE0LjIKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK