From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH v2 14/17] x86emul: abstract out XCRn accesses Date: Thu, 14 Sep 2017 09:25:09 -0600 Message-ID: <59BABB75020000780017B455@prv-mh.provo.novell.com> References: <59BAB38A020000780017B34E@prv-mh.provo.novell.com> <59BAB38A020000780017B34E@prv-mh.provo.novell.com> <59BABA4D020000780017B3F6@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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dsW15-0005Rh-Ai for xen-devel@lists.xenproject.org; Thu, 14 Sep 2017 15:25:23 +0000 In-Reply-To: <59BABA4D020000780017B3F6@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: Paul Durrant Cc: George Dunlap , Andrew Cooper , xen-devel List-Id: xen-devel@lists.xenproject.org Pj4+IE9uIDE0LjA5LjE3IGF0IDE3OjIwLCA8SkJldWxpY2hAc3VzZS5jb20+IHdyb3RlOgo+IFVz ZSBob29rcywganVzdCBsaWtlIGRvbmUgZm9yIG90aGVyIHNwZWNpYWwgcHVycG9zZSByZWdpc3Rl cnMuCj4gCj4gVGhpcyBpbmNsdWRlcyBtb3ZpbmcgWENSMCBjaGVja3MgZnJvbSBodm1lbXVsX2dl dF9mcHUoKSB0byB0aGUgZW11bGF0b3IKPiBpdHNlbGYgYXMgd2VsbCBhcyBhZGRpbmcgc3VwcG9y dCBmb3IgWEdFVEJWIGVtdWxhdGlvbi4KPiAKPiBGb3Igbm93IGZ1enplciByZWFkcyB3aWxsIG9i dGFpbiB0aGUgcmVhbCB2YWx1ZXMgKG1pbnVzIHRoZSBmdXp6aW5nIG9mCj4gdGhlIGhvb2sgcG9p bnRlciBpdHNlbGYpLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KCkknbSBzb3JyeSwgUGF1bCwgSSBmb3Jnb3QgdG8gQ2MgeW91IG9uIHRoaXMgb25l LgoKSmFuCgo+IC0tLQo+IHYyOiBSZS1iYXNlLgo+IAo+IC0tLSBhL3Rvb2xzL2Z1enoveDg2X2lu c3RydWN0aW9uX2VtdWxhdG9yL2Z1enotZW11bC5jCj4gKysrIGIvdG9vbHMvZnV6ei94ODZfaW5z dHJ1Y3Rpb25fZW11bGF0b3IvZnV6ei1lbXVsLmMKPiBAQCAtNDM1LDYgKzQzNSw4IEBAIHN0YXRp YyBpbnQgZnV6el93cml0ZV9jcigKPiAgICAgIHJldHVybiBYODZFTVVMX09LQVk7Cj4gIH0KPiAg Cj4gKyNkZWZpbmUgZnV6el9yZWFkX3hjciBlbXVsX3Rlc3RfcmVhZF94Y3IKPiArCj4gIGVudW0g ewo+ICAgICAgTVNSSV9JQTMyX1NZU0VOVEVSX0NTLAo+ICAgICAgTVNSSV9JQTMyX1NZU0VOVEVS X0VTUCwKPiBAQCAtNTUzLDYgKzU1NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeDg2X2VtdWxh dGVfb3BzIGFsbF8KPiAgICAgIFNFVCh3cml0ZV9pbyksCj4gICAgICBTRVQocmVhZF9jciksCj4g ICAgICBTRVQod3JpdGVfY3IpLAo+ICsgICAgU0VUKHJlYWRfeGNyKSwKPiAgICAgIFNFVChyZWFk X21zciksCj4gICAgICBTRVQod3JpdGVfbXNyKSwKPiAgICAgIFNFVCh3YmludmQpLAo+IEBAIC02 NjEsNiArNjY0LDcgQEAgZW51bSB7Cj4gICAgICBIT09LX3dyaXRlX2NyLAo+ICAgICAgSE9PS19y ZWFkX2RyLAo+ICAgICAgSE9PS193cml0ZV9kciwKPiArICAgIEhPT0tfcmVhZF94Y3IsCj4gICAg ICBIT09LX3JlYWRfbXNyLAo+ICAgICAgSE9PS193cml0ZV9tc3IsCj4gICAgICBIT09LX3diaW52 ZCwKPiBAQCAtNzA1LDYgKzcwOSw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVfaG9va3Moc3RydWN0 IHg4Nl9lbXUKPiAgICAgIE1BWUJFX0RJU0FCTEVfSE9PSyh3cml0ZV9pbyk7Cj4gICAgICBNQVlC RV9ESVNBQkxFX0hPT0socmVhZF9jcik7Cj4gICAgICBNQVlCRV9ESVNBQkxFX0hPT0sod3JpdGVf Y3IpOwo+ICsgICAgTUFZQkVfRElTQUJMRV9IT09LKHJlYWRfeGNyKTsKPiAgICAgIE1BWUJFX0RJ U0FCTEVfSE9PSyhyZWFkX21zcik7Cj4gICAgICBNQVlCRV9ESVNBQkxFX0hPT0sod3JpdGVfbXNy KTsKPiAgICAgIE1BWUJFX0RJU0FCTEVfSE9PSyh3YmludmQpOwo+IC0tLSBhL3Rvb2xzL3Rlc3Rz L3g4Nl9lbXVsYXRvci90ZXN0X3g4Nl9lbXVsYXRvci5jCj4gKysrIGIvdG9vbHMvdGVzdHMveDg2 X2VtdWxhdG9yL3Rlc3RfeDg2X2VtdWxhdG9yLmMKPiBAQCAtMzY4LDYgKzM2OCw3IEBAIHN0YXRp YyBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3BzIGVtdWxvcHMgPQo+ICAgICAgLnJlYWRfc2VnbWVudCA9 IHJlYWRfc2VnbWVudCwKPiAgICAgIC5jcHVpZCAgICAgID0gZW11bF90ZXN0X2NwdWlkLAo+ICAg ICAgLnJlYWRfY3IgICAgPSBlbXVsX3Rlc3RfcmVhZF9jciwKPiArICAgIC5yZWFkX3hjciAgID0g ZW11bF90ZXN0X3JlYWRfeGNyLAo+ICAgICAgLnJlYWRfbXNyICAgPSByZWFkX21zciwKPiAgICAg IC5nZXRfZnB1ICAgID0gZW11bF90ZXN0X2dldF9mcHUsCj4gICAgICAucHV0X2ZwdSAgICA9IGVt dWxfdGVzdF9wdXRfZnB1LAo+IC0tLSBhL3Rvb2xzL3Rlc3RzL3g4Nl9lbXVsYXRvci94ODZfZW11 bGF0ZS5jCj4gKysrIGIvdG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlLmMKPiBA QCAtMTIwLDYgKzEyMCwxOSBAQCBpbnQgZW11bF90ZXN0X3JlYWRfY3IoCj4gICAgICByZXR1cm4g WDg2RU1VTF9VTkhBTkRMRUFCTEU7Cj4gIH0KPiAgCj4gK2ludCBlbXVsX3Rlc3RfcmVhZF94Y3Io Cj4gKyAgICB1bnNpZ25lZCBpbnQgcmVnLAo+ICsgICAgdWludDY0X3QgKnZhbCwKPiArICAgIHN0 cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KQo+ICt7Cj4gKyAgICB1aW50MzJfdCBsbywgaGk7 Cj4gKwo+ICsgICAgYXNtICggInhnZXRidiIgOiAiPWEiIChsbyksICI9ZCIgKGhpKSA6ICJjIiAo cmVnKSApOwo+ICsgICAgKnZhbCA9IGxvIHwgKCh1aW50NjRfdCloaSA8PCAzMik7Cj4gKwo+ICsg ICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKPiArfQo+ICsKPiAgaW50IGVtdWxfdGVzdF9nZXRfZnB1 KAo+ICAgICAgdm9pZCAoKmV4Y2VwdGlvbl9jYWxsYmFjaykodm9pZCAqLCBzdHJ1Y3QgY3B1X3Vz ZXJfcmVncyAqKSwKPiAgICAgIHZvaWQgKmV4Y2VwdGlvbl9jYWxsYmFja19hcmcsCj4gLS0tIGEv dG9vbHMvdGVzdHMveDg2X2VtdWxhdG9yL3g4Nl9lbXVsYXRlLmgKPiArKysgYi90b29scy90ZXN0 cy94ODZfZW11bGF0b3IveDg2X2VtdWxhdGUuaAo+IEBAIC0yMTUsNiArMjE1LDExIEBAIGludCBl bXVsX3Rlc3RfcmVhZF9jcigKPiAgICAgIHVuc2lnbmVkIGxvbmcgKnZhbCwKPiAgICAgIHN0cnVj dCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KTsKPiAgCj4gK2ludCBlbXVsX3Rlc3RfcmVhZF94Y3Io Cj4gKyAgICB1bnNpZ25lZCBpbnQgcmVnLAo+ICsgICAgdWludDY0X3QgKnZhbCwKPiArICAgIHN0 cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpjdHh0KTsKPiArCj4gIGludCBlbXVsX3Rlc3RfZ2V0X2Zw dSgKPiAgICAgIHZvaWQgKCpleGNlcHRpb25fY2FsbGJhY2spKHZvaWQgKiwgc3RydWN0IGNwdV91 c2VyX3JlZ3MgKiksCj4gICAgICB2b2lkICpleGNlcHRpb25fY2FsbGJhY2tfYXJnLAo+IC0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVs YXRlLmMKPiBAQCAtMTY1NSw2ICsxNjU1LDQ5IEBAIHN0YXRpYyBpbnQgaHZtZW11bF93cml0ZV9j cigKPiAgICAgIHJldHVybiByYzsKPiAgfQo+ICAKPiArc3RhdGljIGludCBodm1lbXVsX3JlYWRf eGNyKAo+ICsgICAgdW5zaWduZWQgaW50IHJlZywKPiArICAgIHVpbnQ2NF90ICp2YWwsCj4gKyAg ICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKPiArewo+ICsgICAgdWludDMyX3QgbG8s IGhpOwo+ICsKPiArICAgIHN3aXRjaCAoIHJlZyApCj4gKyAgICB7Cj4gKyAgICBjYXNlIDA6Cj4g KyAgICAgICAgKnZhbCA9IGN1cnJlbnQtPmFyY2gueGNyMDsKPiArICAgICAgICByZXR1cm4gWDg2 RU1VTF9PS0FZOwo+ICsKPiArICAgIGNhc2UgMToKPiArICAgICAgICBpZiAoICFjcHVfaGFzX3hn ZXRidjEgKQo+ICsgICAgICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7Cj4gKyAg ICAgICAgYnJlYWs7Cj4gKwo+ICsgICAgZGVmYXVsdDoKPiArICAgICAgICByZXR1cm4gWDg2RU1V TF9VTkhBTkRMRUFCTEU7Cj4gKyAgICB9Cj4gKwo+ICsgICAgYXNtICggIi5ieXRlIDB4MGYsMHgw MSwweGQwIiAvKiB4Z2V0YnYgKi8KPiArICAgICAgICAgIDogIj1hIiAobG8pLCAiPWQiIChoaSkg OiAiYyIgKHJlZykgKTsKPiArICAgICp2YWwgPSBsbyB8ICgodWludDY0X3QpaGkgPDwgMzIpOwo+ ICsgICAgSFZNVFJBQ0VfTE9OR18yRChYQ1JfUkVBRCwgcmVnLCBUUkNfUEFSX0xPTkcoKnZhbCkp Owo+ICsKPiArICAgIHJldHVybiBYODZFTVVMX09LQVk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQg aHZtZW11bF93cml0ZV94Y3IoCj4gKyAgICB1bnNpZ25lZCBpbnQgcmVnLAo+ICsgICAgdWludDY0 X3QgdmFsLAo+ICsgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCj4gK3sKPiArICAg IEhWTVRSQUNFX0xPTkdfMkQoWENSX1dSSVRFLCByZWcsIFRSQ19QQVJfTE9ORyh2YWwpKTsKPiAr ICAgIGlmICggbGlrZWx5KGhhbmRsZV94c2V0YnYocmVnLCB2YWwpID09IDApICkKPiArICAgICAg ICByZXR1cm4gWDg2RU1VTF9PS0FZOwo+ICsKPiArICAgIHg4Nl9lbXVsX2h3X2V4Y2VwdGlvbihU UkFQX2dwX2ZhdWx0LCAwLCBjdHh0KTsKPiArICAgIHJldHVybiBYODZFTVVMX0VYQ0VQVElPTjsK PiArfQo+ICsKPiAgc3RhdGljIGludCBodm1lbXVsX3JlYWRfbXNyKAo+ICAgICAgdW5zaWduZWQg aW50IHJlZywKPiAgICAgIHVpbnQ2NF90ICp2YWwsCj4gQEAgLTE3MDMsMjIgKzE3NDYsNiBAQCBz dGF0aWMgaW50IGh2bWVtdWxfZ2V0X2ZwdSgKPiAgewo+ICAgICAgc3RydWN0IHZjcHUgKmN1cnIg PSBjdXJyZW50Owo+ICAKPiAtICAgIHN3aXRjaCAoIHR5cGUgKQo+IC0gICAgewo+IC0gICAgY2Fz ZSBYODZFTVVMX0ZQVV9mcHU6Cj4gLSAgICBjYXNlIFg4NkVNVUxfRlBVX3dhaXQ6Cj4gLSAgICBj YXNlIFg4NkVNVUxfRlBVX21teDoKPiAtICAgIGNhc2UgWDg2RU1VTF9GUFVfeG1tOgo+IC0gICAg ICAgIGJyZWFrOwo+IC0gICAgY2FzZSBYODZFTVVMX0ZQVV95bW06Cj4gLSAgICAgICAgaWYgKCAh KGN1cnItPmFyY2gueGNyMCAmIFhTVEFURV9TU0UpIHx8Cj4gLSAgICAgICAgICAgICAhKGN1cnIt PmFyY2gueGNyMCAmIFhTVEFURV9ZTU0pICkKPiAtICAgICAgICAgICAgcmV0dXJuIFg4NkVNVUxf VU5IQU5ETEVBQkxFOwo+IC0gICAgICAgIGJyZWFrOwo+IC0gICAgZGVmYXVsdDoKPiAtICAgICAg ICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7Cj4gLSAgICB9Cj4gLQo+ICAgICAgaWYgKCAh Y3Vyci0+ZnB1X2RpcnRpZWQgKQo+ICAgICAgICAgIGh2bV9mdW5jcy5mcHVfZGlydHlfaW50ZXJj ZXB0KCk7Cj4gICAgICBlbHNlIGlmICggdHlwZSA9PSBYODZFTVVMX0ZQVV9mcHUgKQo+IEBAIC0x OTAyLDYgKzE5MjksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHg4Nl9lbXVsYXRlX29wcyBodm1f Cj4gICAgICAud3JpdGVfaW8gICAgICA9IGh2bWVtdWxfd3JpdGVfaW8sCj4gICAgICAucmVhZF9j ciAgICAgICA9IGh2bWVtdWxfcmVhZF9jciwKPiAgICAgIC53cml0ZV9jciAgICAgID0gaHZtZW11 bF93cml0ZV9jciwKPiArICAgIC5yZWFkX3hjciAgICAgID0gaHZtZW11bF9yZWFkX3hjciwKPiAr ICAgIC53cml0ZV94Y3IgICAgID0gaHZtZW11bF93cml0ZV94Y3IsCj4gICAgICAucmVhZF9tc3Ig ICAgICA9IGh2bWVtdWxfcmVhZF9tc3IsCj4gICAgICAud3JpdGVfbXNyICAgICA9IGh2bWVtdWxf d3JpdGVfbXNyLAo+ICAgICAgLndiaW52ZCAgICAgICAgPSBodm1lbXVsX3diaW52ZCwKPiBAQCAt MTkyNyw2ICsxOTU2LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB4ODZfZW11bGF0ZV9vcHMgaHZt Xwo+ICAgICAgLndyaXRlX2lvICAgICAgPSBodm1lbXVsX3dyaXRlX2lvX2Rpc2NhcmQsCj4gICAg ICAucmVhZF9jciAgICAgICA9IGh2bWVtdWxfcmVhZF9jciwKPiAgICAgIC53cml0ZV9jciAgICAg ID0gaHZtZW11bF93cml0ZV9jciwKPiArICAgIC5yZWFkX3hjciAgICAgID0gaHZtZW11bF9yZWFk X3hjciwKPiArICAgIC53cml0ZV94Y3IgICAgID0gaHZtZW11bF93cml0ZV94Y3IsCj4gICAgICAu cmVhZF9tc3IgICAgICA9IGh2bWVtdWxfcmVhZF9tc3IsCj4gICAgICAud3JpdGVfbXNyICAgICA9 IGh2bWVtdWxfd3JpdGVfbXNyX2Rpc2NhcmQsCj4gICAgICAud2JpbnZkICAgICAgICA9IGh2bWVt dWxfd2JpbnZkX2Rpc2NhcmQsCj4gLS0tIGEveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5j Cj4gKysrIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCj4gQEAgLTM2LDYgKzM2LDcg QEAKPiAgI2luY2x1ZGUgPGFzbS9zaGFyZWQuaD4KPiAgI2luY2x1ZGUgPGFzbS90cmFwcy5oPgo+ ICAjaW5jbHVkZSA8YXNtL3g4Nl9lbXVsYXRlLmg+Cj4gKyNpbmNsdWRlIDxhc20veHN0YXRlLmg+ Cj4gIAo+ICAjaW5jbHVkZSA8eHNtL3hzbS5oPgo+ICAKPiBAQCAtODE3LDYgKzgxOCwxNiBAQCBz dGF0aWMgaW50IHdyaXRlX2RyKHVuc2lnbmVkIGludCByZWcsIHVuCj4gICAgICAgICAgICAgPyBY ODZFTVVMX09LQVkgOiBYODZFTVVMX1VOSEFORExFQUJMRTsKPiAgfQo+ICAKPiArc3RhdGljIGlu dCB3cml0ZV94Y3IodW5zaWduZWQgaW50IHJlZywgdWludDY0X3QgdmFsLAo+ICsgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKPiArewo+ICsgICAgaWYg KCBsaWtlbHkoaGFuZGxlX3hzZXRidihyZWcsIHZhbCkgPT0gMCkgKQo+ICsgICAgICAgIHJldHVy biBYODZFTVVMX09LQVk7Cj4gKwo+ICsgICAgeDg2X2VtdWxfaHdfZXhjZXB0aW9uKFRSQVBfZ3Bf ZmF1bHQsIDAsIGN0eHQpOwo+ICsgICAgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGd1ZXN0X21pc2NfZW5hYmxlKHVpbnQ2NF90IHZh bCkKPiAgewo+ICAgICAgdmFsICY9IH4oTVNSX0lBMzJfTUlTQ19FTkFCTEVfUEVSRl9BVkFJTCB8 Cj4gQEAgLTEzMjksNiArMTM0MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgeDg2X2VtdWxhdGVf b3BzIHByaXYKPiAgICAgIC53cml0ZV9jciAgICAgICAgICAgID0gd3JpdGVfY3IsCj4gICAgICAu cmVhZF9kciAgICAgICAgICAgICA9IHJlYWRfZHIsCj4gICAgICAud3JpdGVfZHIgICAgICAgICAg ICA9IHdyaXRlX2RyLAo+ICsgICAgLndyaXRlX3hjciAgICAgICAgICAgPSB3cml0ZV94Y3IsCj4g ICAgICAucmVhZF9tc3IgICAgICAgICAgICA9IHJlYWRfbXNyLAo+ICAgICAgLndyaXRlX21zciAg ICAgICAgICAgPSB3cml0ZV9tc3IsCj4gICAgICAuY3B1aWQgICAgICAgICAgICAgICA9IHB2X2Vt dWxfY3B1aWQsCj4gLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMK PiArKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYwo+IEBAIC0xMTE3 LDEwICsxMTE3LDI3IEBAIHN0YXRpYyBpbnQgX2dldF9mcHUoCj4gICAgICBzdHJ1Y3QgeDg2X2Vt dWxhdGVfY3R4dCAqY3R4dCwKPiAgICAgIGNvbnN0IHN0cnVjdCB4ODZfZW11bGF0ZV9vcHMgKm9w cykKPiAgewo+ICsgICAgdWludDY0X3QgeGNyMDsKPiAgICAgIGludCByYzsKPiAgCj4gICAgICBm YWlsX2lmKCFvcHMtPmdldF9mcHUpOwo+ICAgICAgQVNTRVJUKHR5cGUgIT0gWDg2RU1VTF9GUFVf bm9uZSk7Cj4gKwo+ICsgICAgaWYgKCB0eXBlIDwgWDg2RU1VTF9GUFVfeW1tIHx8ICFvcHMtPnJl YWRfeGNyIHx8Cj4gKyAgICAgICAgIG9wcy0+cmVhZF94Y3IoMCwgJnhjcjAsIGN0eHQpICE9IFg4 NkVNVUxfT0tBWSApCj4gKyAgICAgICAgeGNyMCA9IDA7Cj4gKwo+ICsgICAgc3dpdGNoICggdHlw ZSApCj4gKyAgICB7Cj4gKyAgICBjYXNlIFg4NkVNVUxfRlBVX3ltbToKPiArICAgICAgICBpZiAo ICEoeGNyMCAmIFhTVEFURV9TU0UpIHx8ICEoeGNyMCAmIFhTVEFURV9ZTU0pICkKPiArICAgICAg ICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwo+ICsgICAgICAgIGJyZWFrOwo+ICsK PiArICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyAgICB9Cj4gKwo+ICAgICAgcmMg PSBvcHMtPmdldF9mcHUoZnB1X2hhbmRsZV9leGNlcHRpb24sIGZpYywgdHlwZSwgY3R4dCk7Cj4g IAo+ICAgICAgaWYgKCByYyA9PSBYODZFTVVMX09LQVkgKQo+IEBAIC0xNjQ4LDcgKzE2NjUsOCBA QCBpbl9wcm90bW9kZSgKPiAgI2RlZmluZSBFQlggMwo+ICAKPiAgc3RhdGljIGJvb2wgdmNwdV9o YXMoCj4gLSAgICB1bnNpZ25lZCBpbnQgZWF4LAo+ICsgICAgdW5zaWduZWQgaW50IGxlYWYsCj4g KyAgICB1bnNpZ25lZCBpbnQgc3VibGVhZiwKPiAgICAgIHVuc2lnbmVkIGludCByZWcsCj4gICAg ICB1bnNpZ25lZCBpbnQgYml0LAo+ICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQs Cj4gQEAgLTE2NTgsNyArMTY3Niw3IEBAIHN0YXRpYyBib29sIHZjcHVfaGFzKAo+ICAgICAgaW50 IHJjID0gWDg2RU1VTF9PS0FZOwo+ICAKPiAgICAgIGZhaWxfaWYoIW9wcy0+Y3B1aWQpOwo+IC0g ICAgcmMgPSBvcHMtPmNwdWlkKGVheCwgMCwgJnJlcywgY3R4dCk7Cj4gKyAgICByYyA9IG9wcy0+ Y3B1aWQobGVhZiwgc3VibGVhZiwgJnJlcywgY3R4dCk7Cj4gICAgICBpZiAoIHJjID09IFg4NkVN VUxfT0tBWSApCj4gICAgICB7Cj4gICAgICAgICAgc3dpdGNoICggcmVnICkKPiBAQCAtMTY3Nyw1 MyArMTY5NSw1NiBAQCBzdGF0aWMgYm9vbCB2Y3B1X2hhcygKPiAgICAgIHJldHVybiByYyA9PSBY ODZFTVVMX09LQVk7Cj4gIH0KPiAgCj4gLSNkZWZpbmUgdmNwdV9oYXNfZnB1KCkgICAgICAgICB2 Y3B1X2hhcyggICAgICAgICAxLCBFRFgsICAwLCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9o YXNfc2VwKCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFRFgsIDExLCBjdHh0LCBvcHMp Cj4gLSNkZWZpbmUgdmNwdV9oYXNfY3g4KCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBF RFgsICA4LCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfY21vdigpICAgICAgICB2Y3B1 X2hhcyggICAgICAgICAxLCBFRFgsIDE1LCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNf Y2xmbHVzaCgpICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFRFgsIDE5LCBjdHh0LCBvcHMpCj4g LSNkZWZpbmUgdmNwdV9oYXNfbW14KCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFRFgs IDIzLCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfc3NlKCkgICAgICAgICB2Y3B1X2hh cyggICAgICAgICAxLCBFRFgsIDI1LCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfc3Nl MigpICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFRFgsIDI2LCBjdHh0LCBvcHMpCj4gLSNk ZWZpbmUgdmNwdV9oYXNfc3NlMygpICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsICAw LCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfcGNsbXVscWRxKCkgICB2Y3B1X2hhcygg ICAgICAgICAxLCBFQ1gsICAxLCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfc3NzZTMo KSAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsICA5LCBjdHh0LCBvcHMpCj4gLSNkZWZp bmUgdmNwdV9oYXNfZm1hKCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsIDEyLCBj dHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfY3gxNigpICAgICAgICB2Y3B1X2hhcyggICAg ICAgICAxLCBFQ1gsIDEzLCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfc3NlNF8xKCkg ICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsIDE5LCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUg dmNwdV9oYXNfc3NlNF8yKCkgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsIDIwLCBjdHh0 LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfbW92YmUoKSAgICAgICB2Y3B1X2hhcyggICAgICAg ICAxLCBFQ1gsIDIyLCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfcG9wY250KCkgICAg ICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsIDIzLCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNw dV9oYXNfYWVzbmkoKSAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsIDI1LCBjdHh0LCBv cHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfYXZ4KCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAx LCBFQ1gsIDI4LCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9oYXNfZjE2YygpICAgICAgICB2 Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsIDI5LCBjdHh0LCBvcHMpCj4gLSNkZWZpbmUgdmNwdV9o YXNfcmRyYW5kKCkgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBFQ1gsIDMwLCBjdHh0LCBvcHMp Cj4gLSNkZWZpbmUgdmNwdV9oYXNfbW14ZXh0KCkgICAgICh2Y3B1X2hhcygweDgwMDAwMDAxLCBF RFgsIDIyLCBjdHh0LCBvcHMpIHx8IFwKPiArI2RlZmluZSBYIDAgLyogSnVzdCBmb3IgZG9jdW1l bnRhdGlvbiBwdXJwb3Nlcy4gKi8KPiArCj4gKyNkZWZpbmUgdmNwdV9oYXNfZnB1KCkgICAgICAg ICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFRFgsICAwLCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUg dmNwdV9oYXNfc2VwKCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFRFgsIDExLCBj dHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfY3g4KCkgICAgICAgICB2Y3B1X2hhcyggICAg ICAgICAxLCBYLCBFRFgsICA4LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfY21vdigp ICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFRFgsIDE1LCBjdHh0LCBvcHMpCj4gKyNk ZWZpbmUgdmNwdV9oYXNfY2xmbHVzaCgpICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFRFgs IDE5LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfbW14KCkgICAgICAgICB2Y3B1X2hh cyggICAgICAgICAxLCBYLCBFRFgsIDIzLCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNf c3NlKCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFRFgsIDI1LCBjdHh0LCBvcHMp Cj4gKyNkZWZpbmUgdmNwdV9oYXNfc3NlMigpICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBY LCBFRFgsIDI2LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfc3NlMygpICAgICAgICB2 Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsICAwLCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNw dV9oYXNfcGNsbXVscWRxKCkgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsICAxLCBjdHh0 LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfc3NzZTMoKSAgICAgICB2Y3B1X2hhcyggICAgICAg ICAxLCBYLCBFQ1gsICA5LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfZm1hKCkgICAg ICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsIDEyLCBjdHh0LCBvcHMpCj4gKyNkZWZp bmUgdmNwdV9oYXNfY3gxNigpICAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsIDEz LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfc3NlNF8xKCkgICAgICB2Y3B1X2hhcygg ICAgICAgICAxLCBYLCBFQ1gsIDE5LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfc3Nl NF8yKCkgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsIDIwLCBjdHh0LCBvcHMpCj4g KyNkZWZpbmUgdmNwdV9oYXNfbW92YmUoKSAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBF Q1gsIDIyLCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfcG9wY250KCkgICAgICB2Y3B1 X2hhcyggICAgICAgICAxLCBYLCBFQ1gsIDIzLCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9o YXNfYWVzbmkoKSAgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsIDI1LCBjdHh0LCBv cHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfYXZ4KCkgICAgICAgICB2Y3B1X2hhcyggICAgICAgICAx LCBYLCBFQ1gsIDI4LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfZjE2YygpICAgICAg ICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsIDI5LCBjdHh0LCBvcHMpCj4gKyNkZWZpbmUg dmNwdV9oYXNfcmRyYW5kKCkgICAgICB2Y3B1X2hhcyggICAgICAgICAxLCBYLCBFQ1gsIDMwLCBj dHh0LCBvcHMpCj4gKyNkZWZpbmUgdmNwdV9oYXNfbW14ZXh0KCkgICAgICh2Y3B1X2hhcygweDgw MDAwMDAxLCBYLCBFRFgsIDIyLCBjdHh0LCBvcHMpIHx8IFwKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZjcHVfaGFzX3NzZSgpKQo+IC0jZGVmaW5lIHZjcHVfaGFzXzNkbm93X2V4 dCgpICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgRURYLCAzMCwgY3R4dCwgb3BzKQo+IC0jZGVmaW5l IHZjcHVfaGFzXzNkbm93KCkgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgRURYLCAzMSwgY3R4 dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX2xhaGZfbG0oKSAgICAgdmNwdV9oYXMoMHg4MDAw MDAwMSwgRUNYLCAgMCwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX2NyOF9sZWdhY3ko KSAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgRUNYLCAgNCwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZj cHVfaGFzX2x6Y250KCkgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgRUNYLCAgNSwgY3R4dCwg b3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX3NzZTRhKCkgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAw MSwgRUNYLCAgNiwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX21pc2FsaWduc3NlKCkg dmNwdV9oYXMoMHg4MDAwMDAwMSwgRUNYLCAgNywgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVf aGFzX3hvcCgpICAgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgRUNYLCAxMiwgY3R4dCwgb3Bz KQo+IC0jZGVmaW5lIHZjcHVfaGFzX2ZtYTQoKSAgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwg RUNYLCAxNiwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX3RibSgpICAgICAgICAgdmNw dV9oYXMoMHg4MDAwMDAwMSwgRUNYLCAyMSwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFz X2JtaTEoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAgMywgY3R4dCwgb3BzKQo+ IC0jZGVmaW5lIHZjcHVfaGFzX2hsZSgpICAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJY LCAgNCwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX2F2eDIoKSAgICAgICAgdmNwdV9o YXMoICAgICAgICAgNywgRUJYLCAgNSwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX2Jt aTIoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAgOCwgY3R4dCwgb3BzKQo+IC0j ZGVmaW5lIHZjcHVfaGFzX3J0bSgpICAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAx MSwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX21weCgpICAgICAgICAgdmNwdV9oYXMo ICAgICAgICAgNywgRUJYLCAxNCwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX3Jkc2Vl ZCgpICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAxOCwgY3R4dCwgb3BzKQo+IC0jZGVm aW5lIHZjcHVfaGFzX2FkeCgpICAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAxOSwg Y3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX3NtYXAoKSAgICAgICAgdmNwdV9oYXMoICAg ICAgICAgNywgRUJYLCAyMCwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX2NsZmx1c2hv cHQoKSAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAyMywgY3R4dCwgb3BzKQo+IC0jZGVmaW5l IHZjcHVfaGFzX2Nsd2IoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgRUJYLCAyNCwgY3R4 dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX3NoYSgpICAgICAgICAgdmNwdV9oYXMoICAgICAg ICAgNywgRUJYLCAyOSwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZjcHVfaGFzX3JkcGlkKCkgICAg ICAgdmNwdV9oYXMoICAgICAgICAgNywgRUNYLCAyMiwgY3R4dCwgb3BzKQo+IC0jZGVmaW5lIHZj cHVfaGFzX2NsemVybygpICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwOCwgRUJYLCAgMCwgY3R4dCwg b3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzXzNkbm93X2V4dCgpICAgdmNwdV9oYXMoMHg4MDAwMDAw MSwgWCwgRURYLCAzMCwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzXzNkbm93KCkgICAg ICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgWCwgRURYLCAzMSwgY3R4dCwgb3BzKQo+ICsjZGVmaW5l IHZjcHVfaGFzX2xhaGZfbG0oKSAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgWCwgRUNYLCAgMCwg Y3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX2NyOF9sZWdhY3koKSAgdmNwdV9oYXMoMHg4 MDAwMDAwMSwgWCwgRUNYLCAgNCwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX2x6Y250 KCkgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgWCwgRUNYLCAgNSwgY3R4dCwgb3BzKQo+ICsj ZGVmaW5lIHZjcHVfaGFzX3NzZTRhKCkgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgWCwgRUNY LCAgNiwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX21pc2FsaWduc3NlKCkgdmNwdV9o YXMoMHg4MDAwMDAwMSwgWCwgRUNYLCAgNywgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFz X3hvcCgpICAgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwgWCwgRUNYLCAxMiwgY3R4dCwgb3Bz KQo+ICsjZGVmaW5lIHZjcHVfaGFzX2ZtYTQoKSAgICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwMSwg WCwgRUNYLCAxNiwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX3RibSgpICAgICAgICAg dmNwdV9oYXMoMHg4MDAwMDAwMSwgWCwgRUNYLCAyMSwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZj cHVfaGFzX2JtaTEoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAgMywgY3R4 dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX2hsZSgpICAgICAgICAgdmNwdV9oYXMoICAgICAg ICAgNywgMCwgRUJYLCAgNCwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX2F2eDIoKSAg ICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAgNSwgY3R4dCwgb3BzKQo+ICsjZGVm aW5lIHZjcHVfaGFzX2JtaTIoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAg OCwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX3J0bSgpICAgICAgICAgdmNwdV9oYXMo ICAgICAgICAgNywgMCwgRUJYLCAxMSwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX21w eCgpICAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAxNCwgY3R4dCwgb3BzKQo+ ICsjZGVmaW5lIHZjcHVfaGFzX3Jkc2VlZCgpICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwg RUJYLCAxOCwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX2FkeCgpICAgICAgICAgdmNw dV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAxOSwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVf aGFzX3NtYXAoKSAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAyMCwgY3R4dCwg b3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX2NsZmx1c2hvcHQoKSAgdmNwdV9oYXMoICAgICAgICAg NywgMCwgRUJYLCAyMywgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX2Nsd2IoKSAgICAg ICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAyNCwgY3R4dCwgb3BzKQo+ICsjZGVmaW5l IHZjcHVfaGFzX3NoYSgpICAgICAgICAgdmNwdV9oYXMoICAgICAgICAgNywgMCwgRUJYLCAyOSwg Y3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX3JkcGlkKCkgICAgICAgdmNwdV9oYXMoICAg ICAgICAgNywgMCwgRUNYLCAyMiwgY3R4dCwgb3BzKQo+ICsjZGVmaW5lIHZjcHVfaGFzX3hnZXRi djEoKSAgICAgdmNwdV9oYXMoICAgICAgIDB4ZCwgMSwgRUFYLCAgMiwgY3R4dCwgb3BzKQo+ICsj ZGVmaW5lIHZjcHVfaGFzX2NsemVybygpICAgICAgdmNwdV9oYXMoMHg4MDAwMDAwOCwgWCwgRUJY LCAgMCwgY3R4dCwgb3BzKQo+ICAKPiAgI2RlZmluZSB2Y3B1X211c3RfaGF2ZShmZWF0KSBcCj4g ICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIXZjcHVfaGFzXyMjZmVhdCgpLCBFWENfVUQpCj4g QEAgLTUxNTgsMTggKzUxNzksMzMgQEAgeDg2X2VtdWxhdGUoCj4gICAgICAgICAgICAgICAgICBf cmVncy5lZmxhZ3MgfD0gWDg2X0VGTEFHU19BQzsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gIAo+ IC0jaWZkZWYgX19YRU5fXwo+IC0gICAgICAgIGNhc2UgMHhkMTogLyogeHNldGJ2ICovCj4gKyAg ICAgICAgY2FzZSAweGQwOiAvKiB4Z2V0YnYgKi8KPiAgICAgICAgICAgICAgZ2VuZXJhdGVfZXhj ZXB0aW9uX2lmKHZleC5wZngsIEVYQ19VRCk7Cj4gLSAgICAgICAgICAgIGlmICggIW9wcy0+cmVh ZF9jciB8fCBvcHMtPnJlYWRfY3IoNCwgJmNyNCwgY3R4dCkgIT0gWDg2RU1VTF9PS0FZIAo+ICkK PiArICAgICAgICAgICAgaWYgKCAhb3BzLT5yZWFkX2NyIHx8ICFvcHMtPnJlYWRfeGNyIHx8Cj4g KyAgICAgICAgICAgICAgICAgb3BzLT5yZWFkX2NyKDQsICZjcjQsIGN0eHQpICE9IFg4NkVNVUxf T0tBWSApCj4gICAgICAgICAgICAgICAgICBjcjQgPSAwOwo+ICAgICAgICAgICAgICBnZW5lcmF0 ZV9leGNlcHRpb25faWYoIShjcjQgJiBYODZfQ1I0X09TWFNBVkUpLCBFWENfVUQpOwo+IC0gICAg ICAgICAgICBnZW5lcmF0ZV9leGNlcHRpb25faWYoIW1vZGVfcmluZzAoKSB8fAo+IC0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlX3hzZXRidihfcmVncy5lY3gsCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9yZWdzLmVheCB8 IChfcmVncy5yZHggPDwgMzIpKSwKPiArICAgICAgICAgICAgZ2VuZXJhdGVfZXhjZXB0aW9uX2lm KF9yZWdzLmVjeCA+ICh2Y3B1X2hhc194Z2V0YnYxKCkgPyAxIDogMCksCj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFWENfR1AsIDApOwo+ICsgICAgICAgICAgICByYyA9IG9w cy0+cmVhZF94Y3IoX3JlZ3MuZWN4LCAmbXNyX3ZhbCwgY3R4dCk7Cj4gKyAgICAgICAgICAgIGlm ICggcmMgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKPiAr ICAgICAgICAgICAgX3JlZ3MucihheCkgPSAodWludDMyX3QpbXNyX3ZhbDsKPiArICAgICAgICAg ICAgX3JlZ3MucihkeCkgPSBtc3JfdmFsID4+IDMyOwo+ICsgICAgICAgICAgICBicmVhazsKPiAr Cj4gKyAgICAgICAgY2FzZSAweGQxOiAvKiB4c2V0YnYgKi8KPiArICAgICAgICAgICAgZ2VuZXJh dGVfZXhjZXB0aW9uX2lmKHZleC5wZngsIEVYQ19VRCk7Cj4gKyAgICAgICAgICAgIGlmICggIW9w cy0+cmVhZF9jciB8fCAhb3BzLT53cml0ZV94Y3IgfHwKPiArICAgICAgICAgICAgICAgICBvcHMt PnJlYWRfY3IoNCwgJmNyNCwgY3R4dCkgIT0gWDg2RU1VTF9PS0FZICkKPiArICAgICAgICAgICAg ICAgIGNyNCA9IDA7Cj4gKyAgICAgICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZighKGNyNCAm IFg4Nl9DUjRfT1NYU0FWRSksIEVYQ19VRCk7Cj4gKyAgICAgICAgICAgIGdlbmVyYXRlX2V4Y2Vw dGlvbl9pZighbW9kZV9yaW5nMCgpIHx8IF9yZWdzLmVjeCwgRVhDX0dQLCAwKTsKPiArICAgICAg ICAgICAgcmMgPSBvcHMtPndyaXRlX3hjcihfcmVncy5lY3gsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgX3JlZ3MuZWF4IHwgKCh1aW50NjRfdClfcmVncy5lZHggPDwgMzIpLCBj dHh0KTsKPiArICAgICAgICAgICAgaWYgKCByYyAhPSBYODZFTVVMX09LQVkgKQo+ICsgICAgICAg ICAgICAgICAgZ290byBkb25lOwo+ICAgICAgICAgICAgICBicmVhazsKPiAtI2VuZGlmCj4gIAo+ ICAgICAgICAgIGNhc2UgMHhkNDogLyogdm1mdW5jICovCj4gICAgICAgICAgICAgIGdlbmVyYXRl X2V4Y2VwdGlvbl9pZih2ZXgucGZ4LCBFWENfVUQpOwo+IC0tLSBhL3hlbi9hcmNoL3g4Ni94ODZf ZW11bGF0ZS94ODZfZW11bGF0ZS5oCj4gKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4 Nl9lbXVsYXRlLmgKPiBAQCAtMzczLDYgKzM3MywyNCBAQCBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3Bz Cj4gICAgICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpOwo+ICAKPiAgICAgIC8q Cj4gKyAgICAgKiByZWFkX3hjcjogUmVhZCBmcm9tIGV4dGVuZGVkIGNvbnRyb2wgcmVnaXN0ZXIu Cj4gKyAgICAgKiAgQHJlZzogICBbSU4gXSBSZWdpc3RlciB0byByZWFkLgo+ICsgICAgICovCj4g KyAgICBpbnQgKCpyZWFkX3hjcikoCj4gKyAgICAgICAgdW5zaWduZWQgaW50IHJlZywKPiArICAg ICAgICB1aW50NjRfdCAqdmFsLAo+ICsgICAgICAgIHN0cnVjdCB4ODZfZW11bGF0ZV9jdHh0ICpj dHh0KTsKPiArCj4gKyAgICAvKgo+ICsgICAgICogd3JpdGVfeGNyOiBXcml0ZSB0byBleHRlbmRl ZCBjb250cm9sIHJlZ2lzdGVyLgo+ICsgICAgICogIEByZWc6ICAgW0lOIF0gUmVnaXN0ZXIgdG8g d3JpdGUuCj4gKyAgICAgKi8KPiArICAgIGludCAoKndyaXRlX3hjcikoCj4gKyAgICAgICAgdW5z aWduZWQgaW50IHJlZywKPiArICAgICAgICB1aW50NjRfdCB2YWwsCj4gKyAgICAgICAgc3RydWN0 IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpOwo+ICsKPiArICAgIC8qCj4gICAgICAgKiByZWFkX21z cjogUmVhZCBmcm9tIG1vZGVsLXNwZWNpZmljIHJlZ2lzdGVyLgo+ICAgICAgICogIEByZWc6ICAg W0lOIF0gUmVnaXN0ZXIgdG8gcmVhZC4KPiAgICAgICAqLwo+IC0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL3RyYWNlLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS90cmFjZS5o Cj4gQEAgLTMzLDYgKzMzLDggQEAKPiAgI2RlZmluZSBET19UUkNfSFZNX0NSX1dSSVRFNjQgIERF RkFVTFRfSFZNX1JFR0FDQ0VTUwo+ICAjZGVmaW5lIERPX1RSQ19IVk1fRFJfUkVBRCAgICAgREVG QVVMVF9IVk1fUkVHQUNDRVNTCj4gICNkZWZpbmUgRE9fVFJDX0hWTV9EUl9XUklURSAgICBERUZB VUxUX0hWTV9SRUdBQ0NFU1MKPiArI2RlZmluZSBET19UUkNfSFZNX1hDUl9SRUFENjQgIERFRkFV TFRfSFZNX1JFR0FDQ0VTUwo+ICsjZGVmaW5lIERPX1RSQ19IVk1fWENSX1dSSVRFNjQgREVGQVVM VF9IVk1fUkVHQUNDRVNTCj4gICNkZWZpbmUgRE9fVFJDX0hWTV9NU1JfUkVBRCAgICBERUZBVUxU X0hWTV9SRUdBQ0NFU1MKPiAgI2RlZmluZSBET19UUkNfSFZNX01TUl9XUklURSAgIERFRkFVTFRf SFZNX1JFR0FDQ0VTUwo+ICAjZGVmaW5lIERPX1RSQ19IVk1fUkRUU0MgICAgICAgREVGQVVMVF9I Vk1fUkVHQUNDRVNTCj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni94ODYtZGVmbnMuaAo+ICsr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYveDg2LWRlZm5zLmgKPiBAQCAtNjYsNCArNjYsMjggQEAK PiAgI2RlZmluZSBYODZfQ1I0X1NNQVAgICAgICAgMHgwMDIwMDAwMCAvKiBlbmFibGUgU01BUCAq Lwo+ICAjZGVmaW5lIFg4Nl9DUjRfUEtFICAgICAgICAweDAwNDAwMDAwIC8qIGVuYWJsZSBQS0Ug Ki8KPiAgCj4gKy8qCj4gKyAqIFhTVEFURSBjb21wb25lbnQgZmxhZ3MgaW4gWENSMAo+ICsgKi8K PiArI2RlZmluZSBfWFNUQVRFX0ZQICAgICAgICAgICAgICAgIDAKPiArI2RlZmluZSBYU1RBVEVf RlAgICAgICAgICAgICAgICAgICgxVUxMIDw8IF9YU1RBVEVfRlApCj4gKyNkZWZpbmUgX1hTVEFU RV9TU0UgICAgICAgICAgICAgICAxCj4gKyNkZWZpbmUgWFNUQVRFX1NTRSAgICAgICAgICAgICAg ICAoMVVMTCA8PCBfWFNUQVRFX1NTRSkKPiArI2RlZmluZSBfWFNUQVRFX1lNTSAgICAgICAgICAg ICAgIDIKPiArI2RlZmluZSBYU1RBVEVfWU1NICAgICAgICAgICAgICAgICgxVUxMIDw8IF9YU1RB VEVfWU1NKQo+ICsjZGVmaW5lIF9YU1RBVEVfQk5EUkVHUyAgICAgICAgICAgMwo+ICsjZGVmaW5l IFhTVEFURV9CTkRSRUdTICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFURV9CTkRSRUdTKQo+ICsj ZGVmaW5lIF9YU1RBVEVfQk5EQ1NSICAgICAgICAgICAgNAo+ICsjZGVmaW5lIFhTVEFURV9CTkRD U1IgICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFURV9CTkRDU1IpCj4gKyNkZWZpbmUgX1hTVEFU RV9PUE1BU0sgICAgICAgICAgICA1Cj4gKyNkZWZpbmUgWFNUQVRFX09QTUFTSyAgICAgICAgICAg ICAoMVVMTCA8PCBfWFNUQVRFX09QTUFTSykKPiArI2RlZmluZSBfWFNUQVRFX1pNTSAgICAgICAg ICAgICAgIDYKPiArI2RlZmluZSBYU1RBVEVfWk1NICAgICAgICAgICAgICAgICgxVUxMIDw8IF9Y U1RBVEVfWk1NKQo+ICsjZGVmaW5lIF9YU1RBVEVfSElfWk1NICAgICAgICAgICAgNwo+ICsjZGVm aW5lIFhTVEFURV9ISV9aTU0gICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFURV9ISV9aTU0pCj4g KyNkZWZpbmUgX1hTVEFURV9QS1JVICAgICAgICAgICAgICA5Cj4gKyNkZWZpbmUgWFNUQVRFX1BL UlUgICAgICAgICAgICAgICAoMVVMTCA8PCBfWFNUQVRFX1BLUlUpCj4gKyNkZWZpbmUgX1hTVEFU RV9MV1AgICAgICAgICAgICAgICA2Mgo+ICsjZGVmaW5lIFhTVEFURV9MV1AgICAgICAgICAgICAg ICAgKDFVTEwgPDwgX1hTVEFURV9MV1ApCj4gKwo+ICAjZW5kaWYJLyogX19YRU5fWDg2X0RFRk5T X0hfXyAqLwo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYveHN0YXRlLmgKPiArKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L3hzdGF0ZS5oCj4gQEAgLTEwLDYgKzEwLDcgQEAKPiAgCj4gICNpbmNs dWRlIDx4ZW4vc2NoZWQuaD4KPiAgI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlLmg+Cj4gKyNpbmNs dWRlIDxhc20veDg2LWRlZm5zLmg+Cj4gIAo+ICAjZGVmaW5lIEZDV19ERUZBVUxUICAgICAgICAg ICAgICAgMHgwMzdmCj4gICNkZWZpbmUgRkNXX1JFU0VUICAgICAgICAgICAgICAgICAweDAwNDAK PiBAQCAtMjgsMjcgKzI5LDYgQEAgZXh0ZXJuIHVpbnQzMl90IG14Y3NyX21hc2s7Cj4gICNkZWZp bmUgWFNBVkVfSERSX09GRlNFVCAgICAgICAgICBGWFNBVkVfU0laRQo+ICAjZGVmaW5lIFhTVEFU RV9BUkVBX01JTl9TSVpFICAgICAgKEZYU0FWRV9TSVpFICsgWFNBVkVfSERSX1NJWkUpCj4gIAo+ IC0jZGVmaW5lIF9YU1RBVEVfRlAgICAgICAgICAgICAgICAgMAo+IC0jZGVmaW5lIFhTVEFURV9G UCAgICAgICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFURV9GUCkKPiAtI2RlZmluZSBfWFNUQVRF X1NTRSAgICAgICAgICAgICAgIDEKPiAtI2RlZmluZSBYU1RBVEVfU1NFICAgICAgICAgICAgICAg ICgxVUxMIDw8IF9YU1RBVEVfU1NFKQo+IC0jZGVmaW5lIF9YU1RBVEVfWU1NICAgICAgICAgICAg ICAgMgo+IC0jZGVmaW5lIFhTVEFURV9ZTU0gICAgICAgICAgICAgICAgKDFVTEwgPDwgX1hTVEFU RV9ZTU0pCj4gLSNkZWZpbmUgX1hTVEFURV9CTkRSRUdTICAgICAgICAgICAzCj4gLSNkZWZpbmUg WFNUQVRFX0JORFJFR1MgICAgICAgICAgICAoMVVMTCA8PCBfWFNUQVRFX0JORFJFR1MpCj4gLSNk ZWZpbmUgX1hTVEFURV9CTkRDU1IgICAgICAgICAgICA0Cj4gLSNkZWZpbmUgWFNUQVRFX0JORENT UiAgICAgICAgICAgICAoMVVMTCA8PCBfWFNUQVRFX0JORENTUikKPiAtI2RlZmluZSBfWFNUQVRF X09QTUFTSyAgICAgICAgICAgIDUKPiAtI2RlZmluZSBYU1RBVEVfT1BNQVNLICAgICAgICAgICAg ICgxVUxMIDw8IF9YU1RBVEVfT1BNQVNLKQo+IC0jZGVmaW5lIF9YU1RBVEVfWk1NICAgICAgICAg ICAgICAgNgo+IC0jZGVmaW5lIFhTVEFURV9aTU0gICAgICAgICAgICAgICAgKDFVTEwgPDwgX1hT VEFURV9aTU0pCj4gLSNkZWZpbmUgX1hTVEFURV9ISV9aTU0gICAgICAgICAgICA3Cj4gLSNkZWZp bmUgWFNUQVRFX0hJX1pNTSAgICAgICAgICAgICAoMVVMTCA8PCBfWFNUQVRFX0hJX1pNTSkKPiAt I2RlZmluZSBfWFNUQVRFX1BLUlUgICAgICAgICAgICAgIDkKPiAtI2RlZmluZSBYU1RBVEVfUEtS VSAgICAgICAgICAgICAgICgxVUxMIDw8IF9YU1RBVEVfUEtSVSkKPiAtI2RlZmluZSBfWFNUQVRF X0xXUCAgICAgICAgICAgICAgIDYyCj4gLSNkZWZpbmUgWFNUQVRFX0xXUCAgICAgICAgICAgICAg ICAoMVVMTCA8PCBfWFNUQVRFX0xXUCkKPiAtCj4gICNkZWZpbmUgWFNUQVRFX0ZQX1NTRSAgKFhT VEFURV9GUCB8IFhTVEFURV9TU0UpCj4gICNkZWZpbmUgWENOVFhUX01BU0sgICAgKFhTVEFURV9G UCB8IFhTVEFURV9TU0UgfCBYU1RBVEVfWU1NIHwgWFNUQVRFX09QTUFTSyB8IFwKPiAgICAgICAg ICAgICAgICAgICAgICAgICAgWFNUQVRFX1pNTSB8IFhTVEFURV9ISV9aTU0gfCBYU1RBVEVfTk9O TEFaWSkKPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvdHJhY2UuaAo+ICsrKyBiL3hlbi9pbmNs dWRlL3B1YmxpYy90cmFjZS5oCj4gQEAgLTIzNSw2ICsyMzUsOCBAQAo+ICAjZGVmaW5lIFRSQ19I Vk1fVFJBUCAgICAgICAgICAgICAoVFJDX0hWTV9IQU5ETEVSICsgMHgyMykKPiAgI2RlZmluZSBU UkNfSFZNX1RSQVBfREVCVUcgICAgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjQpCj4gICNkZWZp bmUgVFJDX0hWTV9WTEFQSUMgICAgICAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDI1KQo+ICsj ZGVmaW5lIFRSQ19IVk1fWENSX1JFQUQ2NCAgICAgIChUUkNfSFZNX0hBTkRMRVIgKyBUUkNfNjRf RkxBRyArIDB4MjYpCj4gKyNkZWZpbmUgVFJDX0hWTV9YQ1JfV1JJVEU2NCAgICAgKFRSQ19IVk1f SEFORExFUiArIFRSQ182NF9GTEFHICsgMHgyNykKPiAgCj4gICNkZWZpbmUgVFJDX0hWTV9JT1BP UlRfV1JJVEUgICAgKFRSQ19IVk1fSEFORExFUiArIDB4MjE2KQo+ICAjZGVmaW5lIFRSQ19IVk1f SU9NRU1fV1JJVEUgICAgIChUUkNfSFZNX0hBTkRMRVIgKyAweDIxNykKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK