From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v2 11/17] x86emul: support XOP insns Date: Thu, 14 Sep 2017 09:18:07 -0600 Message-ID: <59BAB9CF020000780017B3A5@prv-mh.provo.novell.com> References: <59BAB38A020000780017B34E@prv-mh.provo.novell.com> <59BAB38A020000780017B34E@prv-mh.provo.novell.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 1dsVuC-0003co-6c for xen-devel@lists.xenproject.org; Thu, 14 Sep 2017 15:18:16 +0000 In-Reply-To: <59BAB38A020000780017B34E@prv-mh.provo.novell.com> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoKLS0tIGEvLmdp dGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0yMzAsNiArMjMwLDcgQEAKIHRvb2xzL3Rlc3Rz L3g4Nl9lbXVsYXRvci9zc2UqLltjaF0KIHRvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci90ZXN0X3g4 Nl9lbXVsYXRvcgogdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlCit0b29scy90 ZXN0cy94ODZfZW11bGF0b3IveG9wKi5bY2hdCiB0b29scy90ZXN0cy94ZW4tYWNjZXNzL3hlbi1h Y2Nlc3MKIHRvb2xzL3Rlc3RzL3hlbnN0b3JlL3hzLXRlc3QKIHRvb2xzL3Rlc3RzL3JlZ3Jlc3Np b24vaW5zdGFsbGVkLyoKLS0tIGEvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL01ha2VmaWxlCisr KyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci9NYWtlZmlsZQpAQCAtMTEsNyArMTEsNyBAQCBh bGw6ICQoVEFSR0VUKQogcnVuOiAkKFRBUkdFVCkKIAkuLyQoVEFSR0VUKQogCi1TSU1EIDo9IHNz ZSBzc2UyIHNzZTQgYXZ4IGF2eDIKK1NJTUQgOj0gc3NlIHNzZTIgc3NlNCBhdnggYXZ4MiB4b3AK IEZNQSA6PSBmbWE0IGZtYQogU0cgOj0gYXZ4Mi1zZwogVEVTVENBU0VTIDo9IGJsb3dmaXNoICQo U0lNRCkgJChGTUEpICQoU0cpCkBAIC00NCw2ICs0NCw5IEBAIGF2eDItc2ctdmVjcyA6PSAkKGF2 eDItdmVjcykKIGF2eDItc2ctaWR4cyA6PSA0IDgKIGF2eDItc2ctaW50cyA6PSA0IDgKIGF2eDIt c2ctZmx0cyA6PSA0IDgKK3hvcC12ZWNzIDo9ICQoYXZ4LXZlY3MpCit4b3AtaW50cyA6PSAxIDIg NCA4Cit4b3AtZmx0cyA6PSAkKGF2eC1mbHRzKQogCiAjIEZvciBBVlggYW5kIGxhdGVyLCBoYXZl IHRoZSBjb21waWxlciBhdm9pZCBYTU0wIHRvIHdpZGVuIGNvdmVyYWdlIG9mCiAjIHRoZSBWRVgu dnZ2diBjaGVja3MgaW4gdGhlIGVtdWxhdG9yLgpAQCAtOTgsNiArMTAxLDggQEAgJChhZGRzdWZm aXggLmMsJChTRykpOgogCiAkKGFkZHN1ZmZpeCAubywkKFNJTUQpICQoRk1BKSAkKFNHKSk6IHNp bWQuaAogCit4b3Aubzogc2ltZC1mbWEuYworCiAkKFRBUkdFVCk6IHg4Nl9lbXVsYXRlLm8gdGVz dF94ODZfZW11bGF0b3IubwogCSQoSE9TVENDKSAtbyAkQCAkXgogCi0tLSBhL3Rvb2xzL3Rlc3Rz L3g4Nl9lbXVsYXRvci9zaW1kLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3NpbWQu YwpAQCAtNDcxLDYgKzQ3MSw4NiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgX3RvX2Jvb2woYnl0ZV92 ZWNfdCBiCiAjICBlbmRpZgogIyBlbmRpZgogI2VuZGlmCisjaWZkZWYgX19YT1BfXworIyB1bmRl ZiBzZWxlY3QKKyMgaWYgVkVDX1NJWkUgPT0gMTYKKyMgIGlmIElOVF9TSVpFID09IDIgfHwgSU5U X1NJWkUgPT0gNAorIyAgIGluY2x1ZGUgInNpbWQtZm1hLmMiCisjICBlbmRpZgorIyAgZGVmaW5l IHNlbGVjdChkLCB4LCB5LCBtKSBcCisgICAgKCooZCkgPSAodmVjX3QpX19idWlsdGluX2lhMzJf dnBjbW92KCh2ZGlfdCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCkobSkpKQorIyAgaWYgSU5UX1NJ WkUgPT0gMSB8fCBVSU5UX1NJWkUgPT0gMQorIyAgIGRlZmluZSBzd2FwMih4KSAoKHZlY190KV9f YnVpbHRpbl9pYTMyX3ZwcGVybSgodnFpX3QpKHgpLCAodnFpX3QpKHgpLCAodnFpX3QpaW52IC0g MSkpCisjICBlbGlmIElOVF9TSVpFID09IDIgfHwgVUlOVF9TSVpFID09IDIKKyMgICBkZWZpbmUg c3dhcDIoeCkgXAorICAgICgodmVjX3QpX19idWlsdGluX2lhMzJfdnBwZXJtKCh2cWlfdCkoeCks ICh2cWlfdCkoeCksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodnFpX3Qp KF9fYnVpbHRpbl9pYTMyX3Zwcm90d2koMiAqICh2aGlfdClpbnYgLSAxLCA4KSB8IFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgyICogaW52IC0gMikpKSkKKyMg IGVsaWYgRkxPQVRfU0laRSA9PSA0CisjICAgZGVmaW5lIGZyYWMoeCkgX19idWlsdGluX2lhMzJf dmZyY3pwcyh4KQorIyAgIHVuZGVmIHN3YXAyCisjICAgZGVmaW5lIHN3YXAyKHgpICh7IFwKKyAg ICAvKiBCdWdneSBpbiBnY2MgNy4xLjAgYW5kIGVhcmxpZXIuICovIFwKKyAgICAvKiBfX2J1aWx0 aW5faWEzMl92cGVybWlsMnBzKCh2ZWNfdCl7fSwgeCwgX19idWlsdGluX2lhMzJfY3Z0cHMyZHEo aW52KSArIDMsIDApICovIFwKKyAgICB2ZWNfdCB0XzsgXAorICAgIGFzbSAoICJ2cGVybWlsMnBz ICQwLCAlMywgJTIsICUxLCAlMCIgOiBcCisgICAgICAgICAgIj14IiAodF8pIDogXAorICAgICAg ICAgICJ4IiAoKHZlY190KXt9KSwgIm0iICh4KSwgIngiIChfX2J1aWx0aW5faWEzMl9jdnRwczJk cShpbnYpICsgMykgKTsgXAorICAgIHRfOyBcCit9KQorIyAgZWxpZiBGTE9BVF9TSVpFID09IDgK KyMgICBkZWZpbmUgZnJhYyh4KSBfX2J1aWx0aW5faWEzMl92ZnJjenBkKHgpCisjICAgdW5kZWYg c3dhcDIKKyMgICBkZWZpbmUgc3dhcDIoeCkgKHsgXAorICAgIC8qIEJ1Z2d5IGluIGdjYyA3LjEu MCBhbmQgZWFybGllci4gKi8gXAorICAgIC8qIF9fYnVpbHRpbl9pYTMyX3ZwZXJtaWwycGQoKHZl Y190KXt9LCB4LCAqLyBcCisgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19idWls dGluX2lhMzJfcG1vdnN4ZHExMjgoICovIFwKKyAgICAvKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgX19idWlsdGluX2lhMzJfY3Z0cGQyZHEoaW52KSArIDEpIDw8IDEsIDApICovIFwK KyAgICB2ZGlfdCBzXyA9IF9fYnVpbHRpbl9pYTMyX3Btb3ZzeGRxMTI4KCBcCisgICAgICAgICAg ICAgICAgICAgX19idWlsdGluX2lhMzJfY3Z0cGQyZHEoaW52KSArIDEpIDw8IDE7IFwKKyAgICB2 ZWNfdCB0XzsgXAorICAgIGFzbSAoICJ2cGVybWlsMnBkICQwLCAlMywgJTIsICUxLCAlMCIgOiBc CisgICAgICAgICAgIj14IiAodF8pIDogIngiICgodmVjX3Qpe30pLCAieCIgKHgpLCAibSIgKHNf KSApOyBcCisgICAgdF87IFwKK30pCisjICBlbmRpZgorIyAgaWYgSU5UX1NJWkUgPT0gMQorIyAg IGRlZmluZSBoYWRkKHgsIHkpICgodmVjX3QpX19idWlsdGluX2lhMzJfcGFja3Nzd2IxMjgoX19i dWlsdGluX2lhMzJfdnBoYWRkYncoKHZxaV90KSh4KSksIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZwaGFk ZGJ3KCh2cWlfdCkoeSkpKSkKKyMgICBkZWZpbmUgaHN1Yih4LCB5KSAoKHZlY190KV9fYnVpbHRp bl9pYTMyX3BhY2tzc3diMTI4KF9fYnVpbHRpbl9pYTMyX3ZwaHN1YmJ3KCh2cWlfdCkoeCkpLCBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfX2J1aWx0aW5faWEzMl92cGhzdWJidygodnFpX3QpKHkpKSkpCisjICBlbGlmIFVJTlRfU0la RSA9PSAxCisjICAgZGVmaW5lIGhhZGQoeCwgeSkgKCh2ZWNfdClfX2J1aWx0aW5faWEzMl9wYWNr dXN3YjEyOChfX2J1aWx0aW5faWEzMl92cGhhZGR1YncoKHZxaV90KSh4KSksIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYnVpbHRp bl9pYTMyX3ZwaGFkZHVidygodnFpX3QpKHkpKSkpCisjICBlbGlmIElOVF9TSVpFID09IDIKKyMg ICB1bmRlZiBoYWRkCisjICAgZGVmaW5lIGhhZGQoeCwgeSkgX19idWlsdGluX2lhMzJfcGFja3Nz ZHcxMjgoX19idWlsdGluX2lhMzJfdnBoYWRkd2QoeCksIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92cGhhZGR3ZCh5KSkK KyMgICB1bmRlZiBoc3ViCisjICAgZGVmaW5lIGhzdWIoeCwgeSkgX19idWlsdGluX2lhMzJfcGFj a3NzZHcxMjgoX19idWlsdGluX2lhMzJfdnBoc3Vid2QoeCksIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92cGhzdWJ3ZCh5 KSkKKyMgIGVsaWYgVUlOVF9TSVpFID09IDIKKyMgICB1bmRlZiBoYWRkCisjICAgZGVmaW5lIGhh ZGQoeCwgeSkgKCh2ZWNfdClfX2J1aWx0aW5faWEzMl9wYWNrdXNkdzEyOChfX2J1aWx0aW5faWEz Ml92cGhhZGR1d2QoKHZoaV90KSh4KSksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZwaGFkZHV3ZCgodmhp X3QpKHkpKSkpCisjICAgdW5kZWYgaHN1YgorIyAgZW5kaWYKKyMgZWxpZiBWRUNfU0laRSA9PSAz MgorIyAgZGVmaW5lIHNlbGVjdChkLCB4LCB5LCBtKSBcCisgICAgKCooZCkgPSAodmVjX3QpX19i dWlsdGluX2lhMzJfdnBjbW92MjU2KCh2ZGlfdCkoeCksICh2ZGlfdCkoeSksICh2ZGlfdCkobSkp KQorIyAgaWYgRkxPQVRfU0laRSA9PSA0CisjICAgZGVmaW5lIGZyYWMoeCkgX19idWlsdGluX2lh MzJfdmZyY3pwczI1Nih4KQorIyAgZWxpZiBGTE9BVF9TSVpFID09IDgKKyMgICBkZWZpbmUgZnJh Yyh4KSBfX2J1aWx0aW5faWEzMl92ZnJjenBkMjU2KHgpCisjICBlbmRpZgorIyBlbGlmIFZFQ19T SVpFID09IEZMT0FUX1NJWkUKKyMgIGlmIFZFQ19TSVpFID09IDQKKyMgICBkZWZpbmUgZnJhYyh4 KSBzY2FsYXJfMW9wKHgsICJ2ZnJjenNzICVbaW5dLCAlW291dF0iKQorIyAgZWxpZiBWRUNfU0la RSA9PSA4CisjICAgZGVmaW5lIGZyYWMoeCkgc2NhbGFyXzFvcCh4LCAidmZyY3pzZCAlW2luXSwg JVtvdXRdIikKKyMgIGVuZGlmCisjIGVuZGlmCisjZW5kaWYKIAogaW50IHNpbWRfdGVzdCh2b2lk KQogewpAQCAtNTc2LDYgKzY1NiwyOSBAQCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAgICAgaWYgKCAh dG9fYm9vbCh5ID09IHopICkgcmV0dXJuIF9fTElORV9fOwogIyBlbmRpZgogCisjIGlmZGVmIGZy YWMKKyAgICB0b3VjaChzcmMpOworICAgIHggPSBmcmFjKHNyYyk7CisgICAgdG91Y2goc3JjKTsK KyAgICBpZiAoICF0b19ib29sKHggPT0gMCkgKSByZXR1cm4gX19MSU5FX187CisKKyAgICB4ID0g MSAvIChzcmMgKyAxKTsKKyAgICB0b3VjaCh4KTsKKyAgICB5ID0gZnJhYyh4KTsKKyAgICB0b3Vj aCh4KTsKKyAgICBpZiAoICF0b19ib29sKHggPT0geSkgKSByZXR1cm4gX19MSU5FX187CisjIGVu ZGlmCisKKyMgaWYgZGVmaW5lZCh0cnVuYykgJiYgZGVmaW5lZChmcmFjKQorICAgIHggPSBzcmMg LyA0OworICAgIHRvdWNoKHgpOworICAgIHkgPSB0cnVuYyh4KTsKKyAgICB0b3VjaCh4KTsKKyAg ICB6ID0gZnJhYyh4KTsKKyAgICB0b3VjaCh4KTsKKyAgICBpZiAoICF0b19ib29sKHggPT0geSAr IHopICkgcmV0dXJuIF9fTElORV9fOworIyBlbmRpZgorCiAjZWxzZQogCiAjIGlmIEVMRU1fU0la RSA+IDEKQEAgLTY3Nyw3ICs3ODAsNyBAQCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAgICAgeSA9IHog PDwgc2g7CiAgICAgaWYgKCAhdG9fYm9vbCh4ID09IHkgKyB5KSApIHJldHVybiBfX0xJTkVfXzsK IAotIyAgaWYgZGVmaW5lZChfX0FWWDJfXykgJiYgRUxFTV9TSVpFID49IDQKKyMgIGlmIChkZWZp bmVkKF9fQVZYMl9fKSAmJiBFTEVNX1NJWkUgPj0gNCkgfHwgZGVmaW5lZChfX1hPUF9fKQogICAg IHRvdWNoKHNoKTsKICAgICB4ID0geSA+PiBzaDsKICAgICBpZiAoICF0b19ib29sKHggPT0geikg KSByZXR1cm4gX19MSU5FX187CkBAIC04NzEsNiArOTc0LDggQEAgaW50IHNpbWRfdGVzdCh2b2lk KQogI2VuZGlmCiAKICNpZmRlZiBoYWRkCisjIGlmICghZGVmaW5lZChJTlRfU0laRSkgfHwgSU5U X1NJWkUgPiAxIHx8IEVMRU1fQ09VTlQgPCAxNikgJiYgXAorICAgICAoIWRlZmluZWQoVUlOVF9T SVpFKSB8fCBVSU5UX1NJWkUgPiAxIHx8IEVMRU1fQ09VTlQgPD0gMTYpCiAgICAgeCA9IHNyYzsK ICAgICBmb3IgKCBpID0gRUxFTV9DT1VOVDsgaSA+Pj0gMTsgKQogICAgIHsKQEAgLTg3OCw2ICs5 ODMsNyBAQCBpbnQgc2ltZF90ZXN0KHZvaWQpCiAgICAgICAgIHggPSBoYWRkKCh2ZWNfdCl7fSwg eCk7CiAgICAgfQogICAgIGlmICggeFtFTEVNX0NPVU5UIC0gMV0gIT0gKEVMRU1fQ09VTlQgKiAo RUxFTV9DT1VOVCArIDEpKSAvIDIgKSByZXR1cm4gX19MSU5FX187CisjIGVuZGlmCiAKICMgaWZk ZWYgaHN1YgogICAgIHRvdWNoKHNyYyk7CkBAIC04ODksNiArOTk1LDkgQEAgaW50IHNpbWRfdGVz dCh2b2lkKQogIyBlbmRpZgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKF9fWE9QX18pICYmIFZFQ19T SVpFID09IDE2ICYmIChJTlRfU0laRSA9PSAyIHx8IElOVF9TSVpFID09IDQpCisgICAgcmV0dXJu IC1mbWFfdGVzdCgpOworI2VuZGlmCiAKICAgICByZXR1cm4gMDsKIH0KLS0tIGEvdG9vbHMvdGVz dHMveDg2X2VtdWxhdG9yL3NpbWQtZm1hLmMKKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9y L3NpbWQtZm1hLmMKQEAgLTEsNiArMSw4IEBACiAjaW5jbHVkZSAic2ltZC5oIgogCisjaWZuZGVm IF9fWE9QX18KIEVOVFJZKGZtYV90ZXN0KTsKKyNlbmRpZgogCiAjaWYgVkVDX1NJWkUgPCAxNgog IyBkZWZpbmUgdG9fYm9vbChjbXApICghfihjbXApWzBdKQotLS0gYS90b29scy90ZXN0cy94ODZf ZW11bGF0b3IvdGVzdF94ODZfZW11bGF0b3IuYworKysgYi90b29scy90ZXN0cy94ODZfZW11bGF0 b3IvdGVzdF94ODZfZW11bGF0b3IuYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgImZtYS5o IgogI2luY2x1ZGUgImF2eDIuaCIKICNpbmNsdWRlICJhdngyLXNnLmgiCisjaW5jbHVkZSAieG9w LmgiCiAKICNkZWZpbmUgdmVyYm9zZSBmYWxzZSAvKiBTd2l0Y2ggdG8gdHJ1ZSBmb3IgZmFyIG1v cmUgbG9nZ2luZy4gKi8KIApAQCAtNjMsNiArNjQsMTEgQEAgc3RhdGljIGJvb2wgc2ltZF9jaGVj a19hdngyKHZvaWQpCiB9CiAjZGVmaW5lIHNpbWRfY2hlY2tfYXZ4Ml9zZyBzaW1kX2NoZWNrX2F2 eDIKIAorc3RhdGljIGJvb2wgc2ltZF9jaGVja194b3Aodm9pZCkKK3sKKyAgICByZXR1cm4gY3B1 X2hhc194b3A7Cit9CisKIHN0YXRpYyB2b2lkIHNpbWRfc2V0X3JlZ3Moc3RydWN0IGNwdV91c2Vy X3JlZ3MgKnJlZ3MpCiB7CiAgICAgaWYgKCBjcHVfaGFzX21teCApCkBAIC0xOTEsNiArMTk3LDIy IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIFNJTUQoQVZYMiBTL0cgaTY0WzR4MzJdLCAg YXZ4Ml9zZywgICAgMzJ4NGk4KSwKICAgICBTSU1EKEFWWDIgUy9HIGkzMls0eDY0XSwgIGF2eDJf c2csICAgIDMyeDhpNCksCiAgICAgU0lNRChBVlgyIFMvRyBpNjRbNHg2NF0sICBhdngyX3NnLCAg ICAzMng4aTgpLAorICAgIFNJTUQoWE9QIDEyOGJpdCBzaW5nbGUsICAgICAgIHhvcCwgICAgICAx NmY0KSwKKyAgICBTSU1EKFhPUCAyNTZiaXQgc2luZ2xlLCAgICAgICB4b3AsICAgICAgMzJmNCks CisgICAgU0lNRChYT1AgMTI4Yml0IGRvdWJsZSwgICAgICAgeG9wLCAgICAgIDE2ZjgpLAorICAg IFNJTUQoWE9QIDI1NmJpdCBkb3VibGUsICAgICAgIHhvcCwgICAgICAzMmY4KSwKKyAgICBTSU1E KFhPUCBzOHgxNiwgICAgICAgICAgICAgICB4b3AsICAgICAgMTZpMSksCisgICAgU0lNRChYT1Ag dTh4MTYsICAgICAgICAgICAgICAgeG9wLCAgICAgIDE2dTEpLAorICAgIFNJTUQoWE9QIHMxNng4 LCAgICAgICAgICAgICAgIHhvcCwgICAgICAxNmkyKSwKKyAgICBTSU1EKFhPUCB1MTZ4OCwgICAg ICAgICAgICAgICB4b3AsICAgICAgMTZ1MiksCisgICAgU0lNRChYT1AgczMyeDQsICAgICAgICAg ICAgICAgeG9wLCAgICAgIDE2aTQpLAorICAgIFNJTUQoWE9QIHUzMng0LCAgICAgICAgICAgICAg IHhvcCwgICAgICAxNnU0KSwKKyAgICBTSU1EKFhPUCBzNjR4MiwgICAgICAgICAgICAgICB4b3As ICAgICAgMTZpOCksCisgICAgU0lNRChYT1AgdTY0eDIsICAgICAgICAgICAgICAgeG9wLCAgICAg IDE2dTgpLAorICAgIFNJTUQoWE9QIGk4eDMyLCAgICAgICAgICAgICAgIHhvcCwgICAgICAzMmkx KSwKKyAgICBTSU1EKFhPUCBpMTZ4MTYsICAgICAgICAgICAgICB4b3AsICAgICAgMzJpMiksCisg ICAgU0lNRChYT1AgaTMyeDgsICAgICAgICAgICAgICAgeG9wLCAgICAgIDMyaTQpLAorICAgIFNJ TUQoWE9QIGk2NHg0LCAgICAgICAgICAgICAgIHhvcCwgICAgICAzMmk4KSwKICN1bmRlZiBTSU1E XwogI3VuZGVmIFNJTUQKIH07Ci0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODZfZW11 bGF0ZS5oCisrKyBiL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODZfZW11bGF0ZS5oCkBAIC0x NzIsNiArMTcyLDE2IEBAIHN0YXRpYyBpbmxpbmUgdWludDY0X3QgeGdldGJ2KHVpbnQzMl90IHgK ICAgICAocmVzLmMgJiAoMVUgPDwgNikpICE9IDA7IFwKIH0pCiAKKyNkZWZpbmUgY3B1X2hhc194 b3AgKHsgXAorICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJlczsgXAorICAgIGVtdWxfdGVzdF9jcHVp ZCgxLCAwLCAmcmVzLCBOVUxMKTsgXAorICAgIGlmICggIShyZXMuYyAmICgxVSA8PCAyNykpIHx8 ICgoeGdldGJ2KDApICYgNikgIT0gNikgKSBcCisgICAgICAgIHJlcy5jID0gMDsgXAorICAgIGVs c2UgXAorICAgICAgICBlbXVsX3Rlc3RfY3B1aWQoMHg4MDAwMDAwMSwgMCwgJnJlcywgTlVMTCk7 IFwKKyAgICAocmVzLmMgJiAoMVUgPDwgMTEpKSAhPSAwOyBcCit9KQorCiAjZGVmaW5lIGNwdV9o YXNfZm1hNCAoeyBcCiAgICAgc3RydWN0IGNwdWlkX2xlYWYgcmVzOyBcCiAgICAgZW11bF90ZXN0 X2NwdWlkKDEsIDAsICZyZXMsIE5VTEwpOyBcCi0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0 ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0 ZS5jCkBAIC00MzUsNiArNDM1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgWzB4NDJd ID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiAgICAgWzB4NDRdID0geyAuc2lt ZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiAgICAgWzB4NDZdID0geyAuc2ltZF9zaXplID0g c2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4NDggLi4uIDB4NDldID0geyAuc2ltZF9zaXplID0g c2ltZF9wYWNrZWRfZnAsIC5mb3VyX29wID0gMSB9LAogICAgIFsweDRhIC4uLiAweDRiXSA9IHsg LnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZm91cl9vcCA9IDEgfSwKICAgICBbMHg0Y10g PSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5mb3VyX29wID0gMSB9LAogICAgIFsw eDVjIC4uLiAweDVmXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ZwLCAuZm91cl9vcCA9 IDEgfSwKQEAgLTQ2Myw2ICs0NjQsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAgICAgdWlu dDhfdCB0d29fb3A6MTsKICAgICB1aW50OF90IGZvdXJfb3A6MTsKIH0gZXh0OGYwOF90YWJsZVsy NTZdID0geworICAgIFsweGEyXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmZv dXJfb3AgPSAxIH0sCisgICAgWzB4ODUgLi4uIDB4ODddID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfaW50LCAuZm91cl9vcCA9IDEgfSwKKyAgICBbMHg4ZSAuLi4gMHg4Zl0gPSB7IC5zaW1k X3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC5mb3VyX29wID0gMSB9LAorICAgIFsweDk1IC4uLiAw eDk3XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLmZvdXJfb3AgPSAxIH0sCisg ICAgWzB4OWUgLi4uIDB4OWZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAuZm91 cl9vcCA9IDEgfSwKKyAgICBbMHhhM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQs IC5mb3VyX29wID0gMSB9LAorICAgIFsweGE2XSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2Vk X2ludCwgLmZvdXJfb3AgPSAxIH0sCisgICAgWzB4YjZdID0geyAuc2ltZF9zaXplID0gc2ltZF9w YWNrZWRfaW50LCAuZm91cl9vcCA9IDEgfSwKKyAgICBbMHhjMCAuLi4gMHhjM10gPSB7IC5zaW1k X3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCisgICAgWzB4Y2MgLi4uIDB4 Y2ZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCisgICAgWzB4ZWMgLi4uIDB4 ZWZdID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50IH0sCiB9OwogCiBzdGF0aWMgY29u c3Qgc3RydWN0IHsKQEAgLTQ3MCw2ICs0ODIsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7CiAg ICAgdWludDhfdCB0d29fb3A6MTsKIH0gZXh0OGYwOV90YWJsZVsyNTZdID0gewogICAgIFsweDAx IC4uLiAweDAyXSA9IHsgLnR3b19vcCA9IDEgfSwKKyAgICBbMHg4MCAuLi4gMHg4MV0gPSB7IC5z aW1kX3NpemUgPSBzaW1kX3BhY2tlZF9mcCwgLnR3b19vcCA9IDEgfSwKKyAgICBbMHg4MiAuLi4g MHg4M10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3NjYWxhcl9mcCwgLnR3b19vcCA9IDEgfSwKKyAg ICBbMHg5MCAuLi4gMHg5Yl0gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQgfSwKKyAg ICBbMHhjMSAuLi4gMHhjM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29f b3AgPSAxIH0sCisgICAgWzB4YzYgLi4uIDB4YzddID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNr ZWRfaW50LCAudHdvX29wID0gMSB9LAorICAgIFsweGNiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRf cGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwKKyAgICBbMHhkMSAuLi4gMHhkM10gPSB7IC5zaW1k X3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50d29fb3AgPSAxIH0sCisgICAgWzB4ZDYgLi4uIDB4 ZDddID0geyAuc2ltZF9zaXplID0gc2ltZF9wYWNrZWRfaW50LCAudHdvX29wID0gMSB9LAorICAg IFsweGRiXSA9IHsgLnNpbWRfc2l6ZSA9IHNpbWRfcGFja2VkX2ludCwgLnR3b19vcCA9IDEgfSwK KyAgICBbMHhlMSAuLi4gMHhlM10gPSB7IC5zaW1kX3NpemUgPSBzaW1kX3BhY2tlZF9pbnQsIC50 d29fb3AgPSAxIH0sCiB9OwogCiAjZGVmaW5lIFJFWF9QUkVGSVggMHg0MApAQCAtNTI4LDcgKzU1 MCw3IEBAIHVuaW9uIHZleCB7CiAjZGVmaW5lIGNvcHlfVkVYKHB0ciwgdmV4KSAoeyBcCiAgICAg aWYgKCAhbW9kZV82NGJpdCgpICkgXAogICAgICAgICAodmV4KS5yZWcgfD0gODsgXAotICAgIChw dHIpWzAgLSBQRlhfQllURVNdID0gMHhjNDsgXAorICAgIChwdHIpWzAgLSBQRlhfQllURVNdID0g ZXh0IDwgZXh0XzhmMDggPyAweGM0IDogMHg4ZjsgXAogICAgIChwdHIpWzEgLSBQRlhfQllURVNd ID0gKHZleCkucmF3WzBdOyBcCiAgICAgKHB0cilbMiAtIFBGWF9CWVRFU10gPSAodmV4KS5yYXdb MV07IFwKICAgICBjb250YWluZXJfb2YoKHB0cikgKyAxIC0gUEZYX0JZVEVTLCB0eXBlb2YodmV4 KSwgcmF3WzBdKTsgXApAQCAtMTY1Myw2ICsxNjc1LDcgQEAgc3RhdGljIGJvb2wgdmNwdV9oYXMo CiAjZGVmaW5lIHZjcHVfaGFzX2x6Y250KCkgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgRUNY LCAgNSwgY3R4dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19zc2U0YSgpICAgICAgIHZjcHVfaGFz KDB4ODAwMDAwMDEsIEVDWCwgIDYsIGN0eHQsIG9wcykKICNkZWZpbmUgdmNwdV9oYXNfbWlzYWxp Z25zc2UoKSB2Y3B1X2hhcygweDgwMDAwMDAxLCBFQ1gsICA3LCBjdHh0LCBvcHMpCisjZGVmaW5l IHZjcHVfaGFzX3hvcCgpICAgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgRUNYLCAxMiwgY3R4 dCwgb3BzKQogI2RlZmluZSB2Y3B1X2hhc19mbWE0KCkgICAgICAgIHZjcHVfaGFzKDB4ODAwMDAw MDEsIEVDWCwgMTYsIGN0eHQsIG9wcykKICNkZWZpbmUgdmNwdV9oYXNfdGJtKCkgICAgICAgICB2 Y3B1X2hhcygweDgwMDAwMDAxLCBFQ1gsIDIxLCBjdHh0LCBvcHMpCiAjZGVmaW5lIHZjcHVfaGFz X2JtaTEoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAgMywgY3R4dCwgb3BzKQpA QCAtMjk5Myw5ICszMDE2LDE5IEBAIHg4Nl9kZWNvZGUoCiAgICAgY2FzZSBzaW1kX3BhY2tlZF9p bnQ6CiAgICAgICAgIHN3aXRjaCAoIHZleC5wZnggKQogICAgICAgICB7Ci0gICAgICAgIGNhc2Ug dmV4X25vbmU6IG9wX2J5dGVzID0gODsgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIHZl eF82NjogICBvcF9ieXRlcyA9IDE2IDw8IHZleC5sOyBicmVhazsKLSAgICAgICAgZGVmYXVsdDog ICAgICAgb3BfYnl0ZXMgPSAwOyAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgdmV4X25v bmU6CisgICAgICAgICAgICBpZiAoICF2ZXgub3BjeCApCisgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgb3BfYnl0ZXMgPSA4OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgfQorICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAgICAgIGNhc2UgdmV4XzY2 OgorICAgICAgICAgICAgb3BfYnl0ZXMgPSAxNiA8PCB2ZXgubDsKKyAgICAgICAgICAgIGJyZWFr OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgb3BfYnl0ZXMgPSAwOworICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAKQEAgLTgwMTgsNiArODA1MSwx MyBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC53LCBF WENfVUQpOwogICAgICAgICBnb3RvIHNpbWRfMGZfaW1tOF9hdng7CiAKKyAgICBjYXNlIFg4NkVN VUxfT1BDX1ZFWF82NigweDBmM2EsIDB4NDgpOiAvKiB2cGVybWlsMnBzICRpbW0se3gseX1tbS9t ZW0se3gseX1tbSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiB2cGVybWlsMnBzICRpbW0se3gseX1tbSx7eCx5fW1tL21lbSx7 eCx5fW1tLHt4LHl9bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1ZFWF82NigweDBmM2EsIDB4 NDkpOiAvKiB2cGVybWlsMnBkICRpbW0se3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tLHt4LHl9 bW0gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB2cGVy bWlsMnBkICRpbW0se3gseX1tbSx7eCx5fW1tL21lbSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICAg ICAgaG9zdF9hbmRfdmNwdV9tdXN0X2hhdmUoeG9wKTsKKyAgICAgICAgZ290byBzaW1kXzBmX2lt bThfeW1tOworCiAgICAgY2FzZSBYODZFTVVMX09QQ19WRVhfNjYoMHgwZjNhLCAweDRjKTogLyog dnBibGVuZHZiIHt4LHl9bW0se3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tICovCiAgICAgICAg IGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgudywgRVhDX1VEKTsKICAgICAgICAgZ290byBzaW1k XzBmX2ludF9pbW04OwpAQCAtODE1NSw2ICs4MTk1LDQxIEBAIHg4Nl9lbXVsYXRlKAogICAgICAg ICAgICAgYXNtICggInJvcmwgJWIxLCVrMCIgOiAiPWciIChkc3QudmFsKSA6ICJjIiAoaW1tMSks ICIwIiAoc3JjLnZhbCkgKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFg4NkVNVUxfT1BD X1hPUCgwOCwgMHg4NSk6IC8qIHZwbWFjc3N3dyB4bW0seG1tL20xMjgseG1tLHhtbSAqLworICAg IGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweDg2KTogLyogdnBtYWNzc3dkIHhtbSx4bW0vbTEy OCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4ODcpOiAvKiB2cG1h Y3NzZHFsIHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1Ao MDgsIDB4OGUpOiAvKiB2cG1hY3NzZGQgeG1tLHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICBjYXNl IFg4NkVNVUxfT1BDX1hPUCgwOCwgMHg4Zik6IC8qIHZwbWFjc3NkcWggeG1tLHhtbS9tMTI4LHht bSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwgMHg5NSk6IC8qIHZwbWFjc3d3 IHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4 OTYpOiAvKiB2cG1hY3N3ZCB4bW0seG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1V TF9PUENfWE9QKDA4LCAweDk3KTogLyogdnBtYWNzZHFsIHhtbSx4bW0vbTEyOCx4bW0seG1tICov CisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4OWUpOiAvKiB2cG1hY3NkZCB4bW0seG1t L20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweDlmKTogLyog dnBtYWNzZHFoIHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19Y T1AoMDgsIDB4YTYpOiAvKiB2cG1hZGNzc3dkIHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAg Y2FzZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4YjYpOiAvKiB2cG1hZGNzd2QgeG1tLHhtbS9tMTI4 LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwgMHhjMCk6IC8qIHZwcm90 YiAkaW1tLHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGMx KTogLyogdnByb3R3ICRpbW0seG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19Y T1AoMDgsIDB4YzIpOiAvKiB2cHJvdGQgJGltbSx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4 NkVNVUxfT1BDX1hPUCgwOCwgMHhjMyk6IC8qIHZwcm90cSAkaW1tLHhtbS9tMTI4LHhtbSAqLwor ICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGNjKTogLyogdnBjb21iICRpbW0seG1tL20x MjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGNkKTogLyogdnBj b213ICRpbW0seG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4 LCAweGNlKTogLyogdnBjb21kICRpbW0seG1tL20xMjgseG1tLHhtbSAqLworICAgIGNhc2UgWDg2 RU1VTF9PUENfWE9QKDA4LCAweGNmKTogLyogdnBjb21xICRpbW0seG1tL20xMjgseG1tLHhtbSAq LworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGVjKTogLyogdnBjb211YiAkaW1tLHht bS9tMTI4LHhtbSx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwgMHhlZCk6IC8q IHZwY29tdXcgJGltbSx4bW0vbTEyOCx4bW0seG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19Y T1AoMDgsIDB4ZWUpOiAvKiB2cGNvbXVkICRpbW0seG1tL20xMjgseG1tLHhtbSAqLworICAgIGNh c2UgWDg2RU1VTF9PUENfWE9QKDA4LCAweGVmKTogLyogdnBjb211cSAkaW1tLHhtbS9tMTI4LHht bSx4bW0gKi8KKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC53LCBFWENfVUQpOwor ICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOCwg MHhhMyk6IC8qIHZwcGVybSB4bW0vbTEyOCx4bW0seG1tLHhtbSAqLworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogdnBwZXJtIHhtbSx4bW0vbTEyOCx4bW0seG1tICovCisg ICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgubCwgRVhDX1VEKTsKKyAgICAgICAgLyog ZmFsbCB0aHJvdWdoICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDgsIDB4YTIpOiAvKiB2 cGNtb3Yge3gseX1tbS9tZW0se3gseX1tbSx7eCx5fW1tLHt4LHl9bW0gKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwY21vdiB7eCx5fW1tLHt4LHl9bW0vbWVtLHt4 LHl9bW0se3gseX1tbSAqLworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZSh4b3ApOwor ICAgICAgICBnb3RvIHNpbWRfMGZfaW1tOF95bW07CisKICAgICBjYXNlIFg4NkVNVUxfT1BDX1hP UCgwOSwgMHgwMSk6IC8qIFhPUCBHcnAxICovCiAgICAgICAgIHN3aXRjaCAoIG1vZHJtX3JlZyAm IDcgKQogICAgICAgICB7CkBAIC04MjA0LDYgKzgyNzksNjEgQEAgeDg2X2VtdWxhdGUoCiAgICAg ICAgIH0KICAgICAgICAgZ290byBjYW5ub3RfZW11bGF0ZTsKIAorICAgIGNhc2UgWDg2RU1VTF9P UENfWE9QKDA5LCAweDgyKTogLyogdmZyY3pzcyB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4 NkVNVUxfT1BDX1hPUCgwOSwgMHg4Myk6IC8qIHZmcmN6c2QgeG1tL20xMjgseG1tICovCisgICAg ICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZih2ZXgubCwgRVhDX1VEKTsKKyAgICAgICAgLyogZmFs bCB0aHJvdWdoICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4ODApOiAvKiB2ZnJj enBzIHt4LHl9bW0vbWVtLHt4LHl9bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwg MHg4MSk6IC8qIHZmcmN6cGQge3gseX1tbS9tZW0se3gseX1tbSAqLworICAgICAgICBob3N0X2Fu ZF92Y3B1X211c3RfaGF2ZSh4b3ApOworICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYodmV4 LncsIEVYQ19VRCk7CisgICAgICAgIGdvdG8gc2ltZF8wZl95bW07CisKKyAgICBjYXNlIFg4NkVN VUxfT1BDX1hPUCgwOSwgMHhjMSk6IC8qIHZwaGFkZGJ3IHhtbS9tMTI4LHhtbSAqLworICAgIGNh c2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweGMyKTogLyogdnBoYWRkYmQgeG1tL20xMjgseG1tICov CisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4YzMpOiAvKiB2cGhhZGRicSB4bW0vbTEy OCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhjNik6IC8qIHZwaGFkZHdk IHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENfWE9QKDA5LCAweGM3KTogLyog dnBoYWRkd3EgeG1tL20xMjgseG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4 Y2IpOiAvKiB2cGhhZGRkcSB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hP UCgwOSwgMHhkMSk6IC8qIHZwaGFkZHVidyB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVN VUxfT1BDX1hPUCgwOSwgMHhkMik6IC8qIHZwaGFkZHViZCB4bW0vbTEyOCx4bW0gKi8KKyAgICBj YXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkMyk6IC8qIHZwaGFkZHVicSB4bW0vbTEyOCx4bW0g Ki8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkNik6IC8qIHZwaGFkZHV3ZCB4bW0v bTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkNyk6IC8qIHZwaGFk ZHV3cSB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHhkYik6 IC8qIHZwaGFkZHVkcSB4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgw OSwgMHhlMik6IC8qIHZwaHN1YndkIHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9P UENfWE9QKDA5LCAweGUzKTogLyogdnBoc3ViZHEgeG1tL20xMjgseG1tICovCisgICAgY2FzZSBY ODZFTVVMX09QQ19YT1AoMDksIDB4ZTEpOiAvKiB2cGhzdWJidyB4bW0vbTEyOCx4bW0gKi8KKyAg ICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lmKHZleC53LCBFWENfVUQpOworICAgICAgICAvKiBm YWxsIHRocm91Z2ggKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHg5MCk6IC8qIHZw cm90YiB4bW0vbTEyOCx4bW0seG1tICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiB2cHJvdGIgeG1tLHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9PUENf WE9QKDA5LCAweDkxKTogLyogdnByb3R3IHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwcm90dyB4bW0seG1tL20xMjgseG1tICovCisg ICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4OTIpOiAvKiB2cHJvdGQgeG1tL20xMjgseG1t LHhtbSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdnByb3RkIHht bSx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHg5Myk6IC8q IHZwcm90cSB4bW0vbTEyOCx4bW0seG1tICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiB2cHJvdHEgeG1tLHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1VTF9P UENfWE9QKDA5LCAweDk0KTogLyogdnBzaGxiIHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwc2hsYiB4bW0seG1tL20xMjgseG1tICov CisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4OTUpOiAvKiB2cHNobHcgeG1tL20xMjgs eG1tLHhtbSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdnBzaGx3 IHhtbSx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHg5Nik6 IC8qIHZwc2hsZCB4bW0vbTEyOCx4bW0seG1tICovCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiB2cHNobGQgeG1tLHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2RU1V TF9PUENfWE9QKDA5LCAweDk3KTogLyogdnBzaGxxIHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwc2hscSB4bW0seG1tL20xMjgseG1t ICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4OTgpOiAvKiB2cHNoYWIgeG1tL20x MjgseG1tLHhtbSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdnBz aGFiIHhtbSx4bW0vbTEyOCx4bW0gKi8KKyAgICBjYXNlIFg4NkVNVUxfT1BDX1hPUCgwOSwgMHg5 OSk6IC8qIHZwc2hhdyB4bW0vbTEyOCx4bW0seG1tICovCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvKiB2cHNoYXcgeG1tLHhtbS9tMTI4LHhtbSAqLworICAgIGNhc2UgWDg2 RU1VTF9PUENfWE9QKDA5LCAweDlhKTogLyogdnBzaGFkIHhtbS9tMTI4LHhtbSx4bW0gKi8KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHZwc2hhZCB4bW0seG1tL20xMjgs eG1tICovCisgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMDksIDB4OWIpOiAvKiB2cHNoYXEgeG1t L20xMjgseG1tLHhtbSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog dnBzaGFxIHhtbSx4bW0vbTEyOCx4bW0gKi8KKyAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lm KHZleC5sLCBFWENfVUQpOworICAgICAgICBob3N0X2FuZF92Y3B1X211c3RfaGF2ZSh4b3ApOwor ICAgICAgICBnb3RvIHNpbWRfMGZfeW1tOworCiAgICAgY2FzZSBYODZFTVVMX09QQ19YT1AoMGEs IDB4MTApOiAvKiBiZXh0ciBpbW0sci9tLHIgKi8KICAgICB7CiAgICAgICAgIHVpbnQ4X3QgKmJ1 ZiA9IGdldF9zdHViKHN0dWIpOwotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUu aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWZlYXR1cmUuaApAQCAtNzYsNiArNzYsNyBA QAogI2RlZmluZSBjcHVfaGFzX2NtcF9sZWdhY3kgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRV UkVfQ01QX0xFR0FDWSkKICNkZWZpbmUgY3B1X2hhc19zdm0gICAgICAgICAgICAgYm9vdF9jcHVf aGFzKFg4Nl9GRUFUVVJFX1NWTSkKICNkZWZpbmUgY3B1X2hhc19zc2U0YSAgICAgICAgICAgYm9v dF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1NTRTRBKQorI2RlZmluZSBjcHVfaGFzX3hvcCAgICAgICAg ICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfWE9QKQogI2RlZmluZSBjcHVfaGFzX2x3cCAg ICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfTFdQKQogI2RlZmluZSBjcHVfaGFz X2ZtYTQgICAgICAgICAgICBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfRk1BNCkKICNkZWZpbmUg Y3B1X2hhc190Ym0gICAgICAgICAgICAgYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX1RCTSkKCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==