From mboxrd@z Thu Jan 1 00:00:00 1970 From: Samuel Thibault Subject: Re: [PATCH 10/22] mini-os: make p2m related code depend on CONFIG_PARAVIRT Date: Wed, 24 Aug 2016 00:20:35 +0200 Message-ID: <20160823222035.GF4401@var.home> References: <1471965368-6159-1-git-send-email-jgross@suse.com> <1471965368-6159-11-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1471965368-6159-11-git-send-email-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Juergen Gross Cc: minios-devel@lists.xenproject.org, xen-devel@lists.xenproject.org, wei.liu2@citrix.com List-Id: xen-devel@lists.xenproject.org SnVlcmdlbiBHcm9zcywgb24gVHVlIDIzIEF1ZyAyMDE2IDE3OjE1OjU2ICswMjAwLCB3cm90ZToK PiBBbGwgaGFuZGxpbmcgcmVsYXRlZCB0byBwMm0gaXMgbmVlZGVkIGZvciBwYXJhdmlydHVhbGl6 ZWQgZW52aXJvbm1lbnQKPiBvbmx5LiBTbyBwdXQgYWxsIGZ1bmN0aW9ucyBvcGVyYXRpbmcgb24g cDJtIGxpc3QgaW4gI2lmZGVmCj4gQ09ORklHX1BBUkFWSVJUIHNlY3Rpb25zLiBBZGQgYSBwYXJh dmlydC5oIGhlYWRlciBkZWZpbmluZyBkdW1teQo+IGZ1bmN0aW9ucyBmb3Igbm9uLXBhcmF2aXJ0 dWFsaXplZCBlbnZpcm9ubWVudHMuIEluc3RlYWQgb2YgdXNpbmcKPiByZWZlcmVuY2VzIHRvIHN0 YXJ0X2luZm8gdXNlIGRlZGljYXRlZCB2YXJpYWJsZXMgaW5pdGlhbGl6ZWQgZnJvbQo+IHN0YXJ0 X2luZm8gb24gYm9vdC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NA c3VzZS5jb20+CgpSZXZpZXdlZC1ieTogU2FtdWVsIFRoaWJhdWx0IDxzYW11ZWwudGhpYmF1bHRA ZW5zLWx5b24ub3JnPgoKPiAtLS0KPiAgYXJjaC9hcm0vYmFsbG9vbi5jICAgICAgICAgICAgICAg IHwgIDUgLS0tCj4gIGFyY2gvYXJtL21tLmMgICAgICAgICAgICAgICAgICAgICB8ICA0IC0tLQo+ ICBhcmNoL3g4Ni9iYWxsb29uLmMgICAgICAgICAgICAgICAgfCAxMyArKysrKysrKwo+ICBhcmNo L3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgfCA2NyArKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0KPiAgYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAgICAgIHwg IDYgKystLQo+ICBhcmNoL3g4Ni90cmFwcy5jICAgICAgICAgICAgICAgICAgfCAgNiArKy0tCj4g IGJhbGxvb24uYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKPiAgaW5jbHVkZS9hcm0v YXJjaF9tbS5oICAgICAgICAgICAgIHwgIDMgLS0KPiAgaW5jbHVkZS9iYWxsb29uLmggICAgICAg ICAgICAgICAgIHwgIDMgLS0KPiAgaW5jbHVkZS9tbS5oICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KPiAgaW5jbHVkZS9wYXJhdmlydC5oICAgICAgICAgICAgICAgIHwgNDggKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICBpbmNsdWRlL3g4Ni9hcmNoX21tLmggICAgICAgICAgICAg fCA0MCArKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4t eDg2XzMyLmggfCAgMiArKwo+ICBpbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0LmggfCAg MiArKwo+ICBtbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMSArCj4gIDE1IGZp bGVzIGNoYW5nZWQsIDEzMyBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vYmFsbG9vbi5jIGIvYXJjaC9hcm0vYmFsbG9vbi5jCj4gaW5kZXgg N2YzNTMyOC4uOTU4ZWNiYSAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9iYWxsb29uLmMKPiArKysg Yi9hcmNoL2FybS9iYWxsb29uLmMKPiBAQCAtMjcsMTEgKzI3LDYgQEAKPiAgCj4gIHVuc2lnbmVk IGxvbmcgdmlydF9rZXJuZWxfYXJlYV9lbmQ7ICAgLyogVE9ETzogZmluZCBhIHZpcnR1YWwgYXJl YSAqLwo+ICAKPiAtaW50IGFyY2hfZXhwYW5kX3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm4pCj4g LXsKPiAtICAgIHJldHVybiAwOwo+IC19Cj4gLQo+ICB2b2lkIGFyY2hfcGZuX2FkZCh1bnNpZ25l ZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBtZm4pCj4gIHsKPiAgfQo+IGRpZmYgLS1naXQgYS9h cmNoL2FybS9tbS5jIGIvYXJjaC9hcm0vbW0uYwo+IGluZGV4IGZjOGQ0YmMuLjRmNThmYzcgMTAw NjQ0Cj4gLS0tIGEvYXJjaC9hcm0vbW0uYwo+ICsrKyBiL2FyY2gvYXJtL21tLmMKPiBAQCAtNzIs MTAgKzcyLDYgQEAgdm9pZCBhcmNoX2luaXRfbW0odW5zaWduZWQgbG9uZyAqc3RhcnRfcGZuX3As IHVuc2lnbmVkIGxvbmcgKm1heF9wZm5fcCkKPiAgICAgICptYXhfcGZuX3AgPSB0b19waHlzKG5l d19kZXZpY2VfdHJlZSkgPj4gUEFHRV9TSElGVDsKPiAgfQo+ICAKPiAtdm9pZCBhcmNoX2luaXRf cDJtKHVuc2lnbmVkIGxvbmcgbWF4X3BmbikKPiAtewo+IC19Cj4gLQo+ICB2b2lkIGFyY2hfaW5p dF9kZW1hbmRfbWFwcGluZ19hcmVhKHZvaWQpCj4gIHsKPiAgfQo+IGRpZmYgLS1naXQgYS9hcmNo L3g4Ni9iYWxsb29uLmMgYi9hcmNoL3g4Ni9iYWxsb29uLmMKPiBpbmRleCA0MjM4OWU0Li4xNmFh YWU0IDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L2JhbGxvb24uYwo+ICsrKyBiL2FyY2gveDg2L2Jh bGxvb24uYwo+IEBAIC0yNiwxMSArMjYsMTMgQEAKPiAgI2luY2x1ZGUgPG1pbmktb3MvZXJybm8u aD4KPiAgI2luY2x1ZGUgPG1pbmktb3MvbGliLmg+Cj4gICNpbmNsdWRlIDxtaW5pLW9zL21tLmg+ Cj4gKyNpbmNsdWRlIDxtaW5pLW9zL3BhcmF2aXJ0Lmg+Cj4gIAo+ICAjaWZkZWYgQ09ORklHX0JB TExPT04KPiAgCj4gIHVuc2lnbmVkIGxvbmcgdmlydF9rZXJuZWxfYXJlYV9lbmQgPSBWSVJUX0tF Uk5FTF9BUkVBOwo+ICAKPiArI2lmZGVmIENPTkZJR19QQVJBVklSVAo+ICBzdGF0aWMgdm9pZCBw Mm1faW52YWxpZGF0ZSh1bnNpZ25lZCBsb25nICpsaXN0LCB1bnNpZ25lZCBsb25nIHN0YXJ0X2lk eCkKPiAgewo+ICAgICAgdW5zaWduZWQgbG9uZyBpZHg7Cj4gQEAgLTE0Myw1ICsxNDUsMTYgQEAg dm9pZCBhcmNoX3Bmbl9hZGQodW5zaWduZWQgbG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKQo+ ICAgICAgICAgIGRvX2V4aXQoKTsKPiAgICAgIH0KPiAgfQo+ICsjZWxzZQo+ICt2b2lkIGFyY2hf cGZuX2FkZCh1bnNpZ25lZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBtZm4pCj4gK3sKPiArICAg IHBnZW50cnlfdCAqcGd0Owo+ICsKPiArICAgIHBndCA9IG5lZWRfcGd0KCh1bnNpZ25lZCBsb25n KXBmbl90b192aXJ0KHBmbikpOwo+ICsgICAgQVNTRVJUKHBndCk7Cj4gKyAgICBpZiAoICEoKnBn dCAmIF9QQUdFX1BTRSkgKQo+ICsgICAgICAgICpwZ3QgPSAocGdlbnRyeV90KShtZm4gPDwgUEFH RV9TSElGVCkgfCBfUEFHRV9QUkVTRU5UIHwgX1BBR0VfUlc7Cj4gK30KPiArI2VuZGlmCj4gIAo+ ICAjZW5kaWYKPiBkaWZmIC0tZ2l0IGEvYXJjaC94ODYvbW0uYyBiL2FyY2gveDg2L21tLmMKPiBp bmRleCBmZTE4ZjUzLi4wNTQzMDE3IDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L21tLmMKPiArKysg Yi9hcmNoL3g4Ni9tbS5jCj4gQEAgLTM5LDYgKzM5LDcgQEAKPiAgI2luY2x1ZGUgPG1pbmktb3Mv aHlwZXJ2aXNvci5oPgo+ICAjaW5jbHVkZSA8bWluaS1vcy9iYWxsb29uLmg+Cj4gICNpbmNsdWRl IDxtaW5pLW9zL21tLmg+Cj4gKyNpbmNsdWRlIDxtaW5pLW9zL3BhcmF2aXJ0Lmg+Cj4gICNpbmNs dWRlIDxtaW5pLW9zL3R5cGVzLmg+Cj4gICNpbmNsdWRlIDxtaW5pLW9zL2xpYi5oPgo+ICAjaW5j bHVkZSA8bWluaS1vcy94bWFsbG9jLmg+Cj4gQEAgLTUzLDEwICs1NCwyNCBAQAo+ICAKPiAgdW5z aWduZWQgbG9uZyAqcGh5c190b19tYWNoaW5lX21hcHBpbmc7Cj4gIHVuc2lnbmVkIGxvbmcgbWZu X3plcm87Cj4gK3BnZW50cnlfdCAqcHRfYmFzZTsKPiArc3RhdGljIHVuc2lnbmVkIGxvbmcgZmly c3RfZnJlZV9wZm47Cj4gK3N0YXRpYyB1bnNpZ25lZCBsb25nIGxhc3RfZnJlZV9wZm47Cj4gKwo+ ICBleHRlcm4gY2hhciBzdGFja1tdOwo+ICBleHRlcm4gdm9pZCBwYWdlX3dhbGsodW5zaWduZWQg bG9uZyB2YSk7Cj4gIAo+IC0jaWZuZGVmIENPTkZJR19QQVJBVklSVAo+ICsjaWZkZWYgQ09ORklH X1BBUkFWSVJUCj4gK3ZvaWQgYXJjaF9tbV9wcmVpbml0KHZvaWQgKnApCj4gK3sKPiArICAgIHN0 YXJ0X2luZm9fdCAqc2kgPSBwOwo+ICsKPiArICAgIHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nID0g KHVuc2lnbmVkIGxvbmcgKilzaS0+bWZuX2xpc3Q7Cj4gKyAgICBwdF9iYXNlID0gKHBnZW50cnlf dCAqKXNpLT5wdF9iYXNlOwo+ICsgICAgZmlyc3RfZnJlZV9wZm4gPSBQRk5fVVAodG9fcGh5cyhw dF9iYXNlKSkgKyBzaS0+bnJfcHRfZnJhbWVzOwo+ICsgICAgbGFzdF9mcmVlX3BmbiA9IHNpLT5u cl9wYWdlczsKPiArfQo+ICsjZWxzZQo+ICAjaW5jbHVkZSA8bWluaS1vcy9kZXNjLmg+Cj4gIHVz ZXJfZGVzYyBnZHRbTlJfR0RUX0VOVFJJRVNdID0KPiAgewo+IEBAIC04NSw2ICsxMDAsMjIgQEAg ZGVzY19wdHIgaWR0X3B0ciA9Cj4gICAgICAubGltaXQgPSBzaXplb2YoaWR0KSAtIDEsCj4gICAg ICAuYmFzZSA9ICh1bnNpZ25lZCBsb25nKSZpZHQsCj4gIH07Cj4gKwo+ICt2b2lkIGFyY2hfbW1f cHJlaW5pdCh2b2lkICpwKQo+ICt7Cj4gKyAgICBsb25nIHJldDsKPiArICAgIGRvbWlkX3QgZG9t aWQgPSBET01JRF9TRUxGOwo+ICsKPiArICAgIHB0X2Jhc2UgPSBwYWdlX3RhYmxlX2Jhc2U7Cj4g KyAgICBmaXJzdF9mcmVlX3BmbiA9IFBGTl9VUCh0b19waHlzKCZfZW5kKSk7Cj4gKyAgICByZXQg PSBIWVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fY3VycmVudF9yZXNlcnZhdGlvbiwgJmRvbWlk KTsKPiArICAgIGlmICggcmV0IDwgMCApCj4gKyAgICB7Cj4gKyAgICAgICAgeHByaW50aygiY291 bGQgbm90IGdldCBtZW1vcnkgc2l6ZVxuIik7Cj4gKyAgICAgICAgZG9fZXhpdCgpOwo+ICsgICAg fQo+ICsgICAgbGFzdF9mcmVlX3BmbiA9IHJldDsKPiArfQo+ICAjZW5kaWYKPiAgCj4gIC8qCj4g QEAgLTk1LDcgKzEyNiw3IEBAIGRlc2NfcHRyIGlkdF9wdHIgPQo+ICBzdGF0aWMgdm9pZCBuZXdf cHRfZnJhbWUodW5zaWduZWQgbG9uZyAqcHRfcGZuLCB1bnNpZ25lZCBsb25nIHByZXZfbF9tZm4s IAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBvZmZzZXQsIHVuc2ln bmVkIGxvbmcgbGV2ZWwpCj4gIHsgICAKPiAtICAgIHBnZW50cnlfdCAqdGFiID0gKHBnZW50cnlf dCAqKXN0YXJ0X2luZm8ucHRfYmFzZTsKPiArICAgIHBnZW50cnlfdCAqdGFiID0gcHRfYmFzZTsK PiAgICAgIHVuc2lnbmVkIGxvbmcgcHRfcGFnZSA9ICh1bnNpZ25lZCBsb25nKXBmbl90b192aXJ0 KCpwdF9wZm4pOyAKPiAgICAgIHBnZW50cnlfdCBwcm90X2UsIHByb3RfdDsKPiAgICAgIG1tdV91 cGRhdGVfdCBtbXVfdXBkYXRlc1sxXTsKPiBAQCAtMTcyLDggKzIwMyw4IEBAIHN0YXRpYyB2b2lk IGJ1aWxkX3BhZ2V0YWJsZSh1bnNpZ25lZCBsb25nICpzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcg Km1heF9wZm4pCj4gICAgICB1bnNpZ25lZCBsb25nIHN0YXJ0X2FkZHJlc3MsIGVuZF9hZGRyZXNz Owo+ICAgICAgdW5zaWduZWQgbG9uZyBwZm5fdG9fbWFwLCBwdF9wZm4gPSAqc3RhcnRfcGZuOwo+ ICAgICAgc3RhdGljIG1tdV91cGRhdGVfdCBtbXVfdXBkYXRlc1tMMV9QQUdFVEFCTEVfRU5UUklF UyArIDFdOwo+IC0gICAgcGdlbnRyeV90ICp0YWIgPSAocGdlbnRyeV90ICopc3RhcnRfaW5mby5w dF9iYXNlLCBwYWdlOwo+IC0gICAgdW5zaWduZWQgbG9uZyBwdF9tZm4gPSBwZm5fdG9fbWZuKHZp cnRfdG9fcGZuKHN0YXJ0X2luZm8ucHRfYmFzZSkpOwo+ICsgICAgcGdlbnRyeV90ICp0YWIgPSBw dF9iYXNlLCBwYWdlOwo+ICsgICAgdW5zaWduZWQgbG9uZyBwdF9tZm4gPSBwZm5fdG9fbWZuKHZp cnRfdG9fcGZuKHB0X2Jhc2UpKTsKPiAgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Owo+ICAgICAg aW50IGNvdW50ID0gMDsKPiAgICAgIGludCByYzsKPiBAQCAtMTgyLDYgKzIxMyw3IEBAIHN0YXRp YyB2b2lkIGJ1aWxkX3BhZ2V0YWJsZSh1bnNpZ25lZCBsb25nICpzdGFydF9wZm4sIHVuc2lnbmVk IGxvbmcgKm1heF9wZm4pCj4gICAgICAgICBtYXBwZWQsIHN0YXJ0IHRoZSBsb29wIGF0IHRoZSB2 ZXJ5IGJlZ2lubmluZy4gKi8KPiAgICAgIHBmbl90b19tYXAgPSAqc3RhcnRfcGZuOwo+ICAKPiAr I2lmZGVmIENPTkZJR19QQVJBVklSVAo+ICAgICAgaWYgKCAqbWF4X3BmbiA+PSB2aXJ0X3RvX3Bm bihIWVBFUlZJU09SX1ZJUlRfU1RBUlQpICkKPiAgICAgIHsKPiAgICAgICAgICBwcmludGsoIldB Uk5JTkc6IE1pbmktT1MgdHJ5aW5nIHRvIHVzZSBYZW4gdmlydHVhbCBzcGFjZS4gIgo+IEBAIC0x OTMsNiArMjI1LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfcGFnZXRhYmxlKHVuc2lnbmVkIGxvbmcg KnN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyAqbWF4X3BmbikKPiAgICAgICAgICAgICAgICAgKCh1 bnNpZ25lZCBsb25nKXBmbl90b192aXJ0KCptYXhfcGZuKSAtIAo+ICAgICAgICAgICAgICAgICAg KHVuc2lnbmVkIGxvbmcpJl90ZXh0KT4+MjApOwo+ICAgICAgfQo+ICsjZW5kaWYKPiAgCj4gICAg ICBzdGFydF9hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpcGZuX3RvX3ZpcnQocGZuX3RvX21hcCk7 Cj4gICAgICBlbmRfYWRkcmVzcyA9ICh1bnNpZ25lZCBsb25nKXBmbl90b192aXJ0KCptYXhfcGZu KTsKPiBAQCAtMjAyLDggKzIzNSw4IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3BhZ2V0YWJsZSh1bnNp Z25lZCBsb25nICpzdGFydF9wZm4sIHVuc2lnbmVkIGxvbmcgKm1heF9wZm4pCj4gIAo+ICAgICAg d2hpbGUgKCBzdGFydF9hZGRyZXNzIDwgZW5kX2FkZHJlc3MgKQo+ICAgICAgewo+IC0gICAgICAg IHRhYiA9IChwZ2VudHJ5X3QgKilzdGFydF9pbmZvLnB0X2Jhc2U7Cj4gLSAgICAgICAgcHRfbWZu ID0gcGZuX3RvX21mbih2aXJ0X3RvX3BmbihzdGFydF9pbmZvLnB0X2Jhc2UpKTsKPiArICAgICAg ICB0YWIgPSBwdF9iYXNlOwo+ICsgICAgICAgIHB0X21mbiA9IHBmbl90b19tZm4odmlydF90b19w Zm4ocHRfYmFzZSkpOwo+ICAKPiAgI2lmIGRlZmluZWQoX194ODZfNjRfXykKPiAgICAgICAgICBv ZmZzZXQgPSBsNF90YWJsZV9vZmZzZXQoc3RhcnRfYWRkcmVzcyk7Cj4gQEAgLTI3MCw4ICszMDMs OCBAQCBzdGF0aWMgdm9pZCBzZXRfcmVhZG9ubHkodm9pZCAqdGV4dCwgdm9pZCAqZXRleHQpCj4g ICAgICAgICAgKCh1bnNpZ25lZCBsb25nKSB0ZXh0ICsgUEFHRV9TSVpFIC0gMSkgJiBQQUdFX01B U0s7Cj4gICAgICB1bnNpZ25lZCBsb25nIGVuZF9hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpIGV0 ZXh0Owo+ICAgICAgc3RhdGljIG1tdV91cGRhdGVfdCBtbXVfdXBkYXRlc1tMMV9QQUdFVEFCTEVf RU5UUklFUyArIDFdOwo+IC0gICAgcGdlbnRyeV90ICp0YWIgPSAocGdlbnRyeV90ICopc3RhcnRf aW5mby5wdF9iYXNlLCBwYWdlOwo+IC0gICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwZm5fdG9fbWZu KHZpcnRfdG9fcGZuKHN0YXJ0X2luZm8ucHRfYmFzZSkpOwo+ICsgICAgcGdlbnRyeV90ICp0YWIg PSBwdF9iYXNlLCBwYWdlOwo+ICsgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwZm5fdG9fbWZuKHZp cnRfdG9fcGZuKHB0X2Jhc2UpKTsKPiAgICAgIHVuc2lnbmVkIGxvbmcgb2Zmc2V0Owo+ICAgICAg aW50IGNvdW50ID0gMDsKPiAgICAgIGludCByYzsKPiBAQCAtMjgwLDggKzMxMyw4IEBAIHN0YXRp YyB2b2lkIHNldF9yZWFkb25seSh2b2lkICp0ZXh0LCB2b2lkICpldGV4dCkKPiAgCj4gICAgICB3 aGlsZSAoIHN0YXJ0X2FkZHJlc3MgKyBQQUdFX1NJWkUgPD0gZW5kX2FkZHJlc3MgKQo+ICAgICAg ewo+IC0gICAgICAgIHRhYiA9IChwZ2VudHJ5X3QgKilzdGFydF9pbmZvLnB0X2Jhc2U7Cj4gLSAg ICAgICAgbWZuID0gcGZuX3RvX21mbih2aXJ0X3RvX3BmbihzdGFydF9pbmZvLnB0X2Jhc2UpKTsK PiArICAgICAgICB0YWIgPSBwdF9iYXNlOwo+ICsgICAgICAgIG1mbiA9IHBmbl90b19tZm4odmly dF90b19wZm4ocHRfYmFzZSkpOwo+ICAKPiAgI2lmIGRlZmluZWQoX194ODZfNjRfXykKPiAgICAg ICAgICBvZmZzZXQgPSBsNF90YWJsZV9vZmZzZXQoc3RhcnRfYWRkcmVzcyk7Cj4gQEAgLTM0Myw4 ICszNzYsOCBAQCBzdGF0aWMgcGdlbnRyeV90ICpnZXRfcGd0KHVuc2lnbmVkIGxvbmcgdmEpCj4g ICAgICBwZ2VudHJ5X3QgKnRhYjsKPiAgICAgIHVuc2lnbmVkIG9mZnNldDsKPiAgCj4gLSAgICB0 YWIgPSAocGdlbnRyeV90ICopc3RhcnRfaW5mby5wdF9iYXNlOwo+IC0gICAgbWZuID0gdmlydF90 b19tZm4oc3RhcnRfaW5mby5wdF9iYXNlKTsKPiArICAgIHRhYiA9IHB0X2Jhc2U7Cj4gKyAgICBt Zm4gPSB2aXJ0X3RvX21mbihwdF9iYXNlKTsKPiAgCj4gICNpZiBkZWZpbmVkKF9feDg2XzY0X18p Cj4gICAgICBvZmZzZXQgPSBsNF90YWJsZV9vZmZzZXQodmEpOwo+IEBAIC0zNzksOCArNDEyLDgg QEAgcGdlbnRyeV90ICpuZWVkX3BndCh1bnNpZ25lZCBsb25nIHZhKQo+ICAgICAgdW5zaWduZWQg bG9uZyBwdF9wZm47Cj4gICAgICB1bnNpZ25lZCBvZmZzZXQ7Cj4gIAo+IC0gICAgdGFiID0gKHBn ZW50cnlfdCAqKXN0YXJ0X2luZm8ucHRfYmFzZTsKPiAtICAgIHB0X21mbiA9IHZpcnRfdG9fbWZu KHN0YXJ0X2luZm8ucHRfYmFzZSk7Cj4gKyAgICB0YWIgPSBwdF9iYXNlOwo+ICsgICAgcHRfbWZu ID0gdmlydF90b19tZm4ocHRfYmFzZSk7Cj4gIAo+ICAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKQo+ ICAgICAgb2Zmc2V0ID0gbDRfdGFibGVfb2Zmc2V0KHZhKTsKPiBAQCAtNjM5LDYgKzY3Miw3IEBA IHN0YXRpYyB2b2lkIGNsZWFyX2Jvb3RzdHJhcCh2b2lkKQo+ICAgICAgICAgIHByaW50aygiVW5h YmxlIHRvIHVubWFwIE5VTEwgcGFnZS4gcmM9JWRcbiIsIHJjKTsKPiAgfQo+ICAKPiArI2lmZGVm IENPTkZJR19QQVJBVklSVAo+ICB2b2lkIHAybV9jaGtfcGZuKHVuc2lnbmVkIGxvbmcgcGZuKQo+ ICB7Cj4gICAgICBpZiAoIChwZm4gPj4gTDNfUDJNX1NISUZUKSA+IDAgKQo+IEBAIC02NzAsNiAr NzA0LDcgQEAgdm9pZCBhcmNoX2luaXRfcDJtKHVuc2lnbmVkIGxvbmcgbWF4X3BmbikKPiAgCj4g ICAgICBhcmNoX3JlbWFwX3AybShtYXhfcGZuKTsKPiAgfQo+ICsjZW5kaWYKPiAgCj4gIHZvaWQg YXJjaF9pbml0X21tKHVuc2lnbmVkIGxvbmcqIHN0YXJ0X3Bmbl9wLCB1bnNpZ25lZCBsb25nKiBt YXhfcGZuX3ApCj4gIHsKPiBAQCAtNjgzLDggKzcxOCw4IEBAIHZvaWQgYXJjaF9pbml0X21tKHVu c2lnbmVkIGxvbmcqIHN0YXJ0X3Bmbl9wLCB1bnNpZ25lZCBsb25nKiBtYXhfcGZuX3ApCj4gICAg ICBwcmludGsoIiAgICAgICBfZW5kOiAlcChWQSlcbiIsICZfZW5kKTsKPiAgCj4gICAgICAvKiBG aXJzdCBwYWdlIGZvbGxvd3MgcGFnZSB0YWJsZSBwYWdlcy4gKi8KPiAtICAgIHN0YXJ0X3BmbiA9 IFBGTl9VUCh0b19waHlzKHN0YXJ0X2luZm8ucHRfYmFzZSkpICsgc3RhcnRfaW5mby5ucl9wdF9m cmFtZXM7Cj4gLSAgICBtYXhfcGZuID0gc3RhcnRfaW5mby5ucl9wYWdlczsKPiArICAgIHN0YXJ0 X3BmbiA9IGZpcnN0X2ZyZWVfcGZuOwo+ICsgICAgbWF4X3BmbiA9IGxhc3RfZnJlZV9wZm47Cj4g IAo+ICAgICAgaWYgKCBtYXhfcGZuID49IE1BWF9NRU1fU0laRSAvIFBBR0VfU0laRSApCj4gICAg ICAgICAgbWF4X3BmbiA9IE1BWF9NRU1fU0laRSAvIFBBR0VfU0laRSAtIDE7Cj4gZGlmZiAtLWdp dCBhL2FyY2gveDg2L3NldHVwLmMgYi9hcmNoL3g4Ni9zZXR1cC5jCj4gaW5kZXggZWZlY2VmYi4u OGI2YmI2ZSAxMDA2NDQKPiAtLS0gYS9hcmNoL3g4Ni9zZXR1cC5jCj4gKysrIGIvYXJjaC94ODYv c2V0dXAuYwo+IEBAIC0xMzEsNiArMTMxLDkgQEAgYXJjaF9pbml0KHZvaWQgKnBhcikKPiAgCS8q IEluaXRpYWxpemUgU1NFICovCj4gIAlzc2VfaW5pdCgpOwo+ICAKPiArCS8qIFNldHVwIG1lbW9y eSBtYW5hZ2VtZW50IGluZm8gZnJvbSBzdGFydF9pbmZvLiAqLwo+ICsJYXJjaF9tbV9wcmVpbml0 KHBhcik7Cj4gKwo+ICAJLyogQ29weSB0aGUgc3RhcnRfaW5mbyBzdHJ1Y3QgdG8gYSBnbG9iYWxs eS1hY2Nlc3NpYmxlIGFyZWEuICovCj4gIAkvKiBXQVJOOiBkb24ndCBkbyBwcmludGsgYmVmb3Jl IGhlcmUsIGl0IHVzZXMgaW5mb3JtYXRpb24gZnJvbQo+ICAJICAgc2hhcmVkX2luZm8uIFVzZSB4 cHJpbnRrIGluc3RlYWQuICovCj4gQEAgLTE1Miw5ICsxNTUsNiBAQCBhcmNoX2luaXQodm9pZCAq cGFyKQo+ICAJCQlzaS0+Y21kX2xpbmUgPyAoY29uc3QgY2hhciAqKXNpLT5jbWRfbGluZSA6ICJO VUxMIik7Cj4gIAlwcmludGsoIiAgICAgICBzdGFjazogJXAtJXBcbiIsIHN0YWNrLCBzdGFjayAr IHNpemVvZihzdGFjaykpOwo+ICAKPiAtCS8qIHNldCB1cCBtaW5pbWFsIG1lbW9yeSBpbmZvcyAq Lwo+IC0JcGh5c190b19tYWNoaW5lX21hcHBpbmcgPSAodW5zaWduZWQgbG9uZyAqKXN0YXJ0X2lu Zm8ubWZuX2xpc3Q7Cj4gLQo+ICAJLyogR3JhYiB0aGUgc2hhcmVkX2luZm8gcG9pbnRlciBhbmQg cHV0IGl0IGluIGEgc2FmZSBwbGFjZS4gKi8KPiAgCUhZUEVSVklTT1Jfc2hhcmVkX2luZm8gPSBt YXBfc2hhcmVkX2luZm8oc3RhcnRfaW5mby5zaGFyZWRfaW5mbyk7Cj4gIAo+IGRpZmYgLS1naXQg YS9hcmNoL3g4Ni90cmFwcy5jIGIvYXJjaC94ODYvdHJhcHMuYwo+IGluZGV4IDBiM2Q4NWIuLjJk MzIyMmQgMTAwNjQ0Cj4gLS0tIGEvYXJjaC94ODYvdHJhcHMuYwo+ICsrKyBiL2FyY2gveDg2L3Ry YXBzLmMKPiBAQCAtOTcsOSArOTcsOSBAQCBET19FUlJPUigxOCwgIm1hY2hpbmUgY2hlY2siLCBt YWNoaW5lX2NoZWNrKQo+ICAKPiAgdm9pZCBwYWdlX3dhbGsodW5zaWduZWQgbG9uZyB2aXJ0X2Fk ZHJlc3MpCj4gIHsKPiAtICAgICAgICBwZ2VudHJ5X3QgKnRhYiA9IChwZ2VudHJ5X3QgKilzdGFy dF9pbmZvLnB0X2Jhc2UsIHBhZ2U7Cj4gKyAgICAgICAgcGdlbnRyeV90ICp0YWIgPSBwdF9iYXNl LCBwYWdlOwo+ICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYWRkciA9IHZpcnRfYWRkcmVzczsKPiAt ICAgICAgICBwcmludGsoIlBhZ2V0YWJsZSB3YWxrIGZyb20gdmlydCAlbHgsIGJhc2UgJWx4Olxu IiwgdmlydF9hZGRyZXNzLCBzdGFydF9pbmZvLnB0X2Jhc2UpOwo+ICsgICAgICAgIHByaW50aygi UGFnZXRhYmxlIHdhbGsgZnJvbSB2aXJ0ICVseCwgYmFzZSAlcDpcbiIsIHZpcnRfYWRkcmVzcywg cHRfYmFzZSk7Cj4gICAgICAKPiAgI2lmIGRlZmluZWQoX194ODZfNjRfXykKPiAgICAgICAgICBw YWdlID0gdGFiW2w0X3RhYmxlX29mZnNldChhZGRyKV07Cj4gQEAgLTExOSw3ICsxMTksNyBAQCB2 b2lkIHBhZ2Vfd2Fsayh1bnNpZ25lZCBsb25nIHZpcnRfYWRkcmVzcykKPiAgfQo+ICAKPiAgc3Rh dGljIGludCBoYW5kbGVfY293KHVuc2lnbmVkIGxvbmcgYWRkcikgewo+IC0gICAgICAgIHBnZW50 cnlfdCAqdGFiID0gKHBnZW50cnlfdCAqKXN0YXJ0X2luZm8ucHRfYmFzZSwgcGFnZTsKPiArICAg ICAgICBwZ2VudHJ5X3QgKnRhYiA9IHB0X2Jhc2UsIHBhZ2U7Cj4gIAl1bnNpZ25lZCBsb25nIG5l d19wYWdlOwo+ICAJaW50IHJjOwo+ICAKPiBkaWZmIC0tZ2l0IGEvYmFsbG9vbi5jIGIvYmFsbG9v bi5jCj4gaW5kZXggNjA4NDkyYS4uOGQyZjE1MSAxMDA2NDQKPiAtLS0gYS9iYWxsb29uLmMKPiAr KysgYi9iYWxsb29uLmMKPiBAQCAtMjUsNiArMjUsNyBAQAo+ICAjaW5jbHVkZSA8bWluaS1vcy9i YWxsb29uLmg+Cj4gICNpbmNsdWRlIDxtaW5pLW9zL2Vycm5vLmg+Cj4gICNpbmNsdWRlIDxtaW5p LW9zL2xpYi5oPgo+ICsjaW5jbHVkZSA8bWluaS1vcy9wYXJhdmlydC5oPgo+ICAjaW5jbHVkZSA8 eGVuL3hlbi5oPgo+ICAjaW5jbHVkZSA8eGVuL21lbW9yeS5oPgo+ICAKPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9hcm0vYXJjaF9tbS5oIGIvaW5jbHVkZS9hcm0vYXJjaF9tbS5oCj4gaW5kZXggZjQ2 ODVkOC4uNzlkOWUwNSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2FybS9hcmNoX21tLmgKPiArKysg Yi9pbmNsdWRlL2FybS9hcmNoX21tLmgKPiBAQCAtMjksOSArMjksNiBAQCBleHRlcm4gdWludDMy X3QgcGh5c2ljYWxfYWRkcmVzc19vZmZzZXQ7CS8qIEFkZCB0aGlzIHRvIGEgdmlydHVhbCBhZGRy ZXNzIHRvIGdldAo+ICAjZGVmaW5lIG1mbl90b192aXJ0KF9tZm4pICAgICAgICAgICh0b192aXJ0 KFBGTl9QSFlTKF9tZm4pKSkKPiAgI2RlZmluZSBwZm5fdG9fdmlydChfcGZuKSAgICAgICAgICAo dG9fdmlydChQRk5fUEhZUyhfcGZuKSkpCj4gIAo+IC0jZGVmaW5lIG1mbl90b19wZm4oeCkgKHgp Cj4gLSNkZWZpbmUgcGZuX3RvX21mbih4KSAoeCkKPiAtCj4gICNkZWZpbmUgdmlydHVhbF90b19t Zm4oX3ZpcnQpCSAgIHZpcnRfdG9fbWZuKF92aXJ0KQo+ICAKPiAgLy8gRklYTUUKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS9iYWxsb29uLmggYi9pbmNsdWRlL2JhbGxvb24uaAo+IGluZGV4IGQ4NzEw YWQuLjhjZDQxYWYgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9iYWxsb29uLmgKPiArKysgYi9pbmNs dWRlL2JhbGxvb24uaAo+IEBAIC0zOSwxNiArMzksMTMgQEAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcg bnJfbWVtX3BhZ2VzOwo+ICB2b2lkIGdldF9tYXhfcGFnZXModm9pZCk7Cj4gIGludCBiYWxsb29u X3VwKHVuc2lnbmVkIGxvbmcgbl9wYWdlcyk7Cj4gIAo+IC12b2lkIGFyY2hfcmVtYXBfcDJtKHVu c2lnbmVkIGxvbmcgbWF4X3Bmbik7Cj4gIHZvaWQgbW1fYWxsb2NfYml0bWFwX3JlbWFwKHZvaWQp Owo+IC1pbnQgYXJjaF9leHBhbmRfcDJtKHVuc2lnbmVkIGxvbmcgbWF4X3Bmbik7Cj4gIHZvaWQg YXJjaF9wZm5fYWRkKHVuc2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbik7Cj4gIGlu dCBjaGtfZnJlZV9wYWdlcyh1bnNpZ25lZCBsb25nIG5lZWRlZCk7Cj4gIAo+ICAjZWxzZSAvKiBD T05GSUdfQkFMTE9PTiAqLwo+ICAKPiAgc3RhdGljIGlubGluZSB2b2lkIGdldF9tYXhfcGFnZXMo dm9pZCkgeyB9Cj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBhcmNoX3JlbWFwX3AybSh1bnNpZ25lZCBs b25nIG1heF9wZm4pIHsgfQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgbW1fYWxsb2NfYml0bWFwX3Jl bWFwKHZvaWQpIHsgfQo+ICBzdGF0aWMgaW5saW5lIGludCBjaGtfZnJlZV9wYWdlcyh1bnNpZ25l ZCBsb25nIG5lZWRlZCkKPiAgewo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL21tLmggYi9pbmNsdWRl L21tLmgKPiBpbmRleCBmYzMxMjhiLi45NTM1NzBjIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbW0u aAo+ICsrKyBiL2luY2x1ZGUvbW0uaAo+IEBAIC0zNiw2ICszNiw3IEBACj4gICNlbmRpZgo+ICAj aW5jbHVkZSA8eGVuL3hlbi5oPgo+ICAKPiArI2luY2x1ZGUgPG1pbmktb3MvcGFyYXZpcnQuaD4K PiAgI2luY2x1ZGUgPG1pbmktb3MvYXJjaF9saW1pdHMuaD4KPiAgI2luY2x1ZGUgPG1pbmktb3Mv YXJjaF9tbS5oPgo+ICAKPiBAQCAtNjcsNyArNjgsNiBAQCBzdGF0aWMgX19pbmxpbmVfXyBpbnQg Z2V0X29yZGVyKHVuc2lnbmVkIGxvbmcgc2l6ZSkKPiAgCj4gIHZvaWQgYXJjaF9pbml0X2RlbWFu ZF9tYXBwaW5nX2FyZWEodm9pZCk7Cj4gIHZvaWQgYXJjaF9pbml0X21tKHVuc2lnbmVkIGxvbmcq IHN0YXJ0X3Bmbl9wLCB1bnNpZ25lZCBsb25nKiBtYXhfcGZuX3ApOwo+IC12b2lkIGFyY2hfaW5p dF9wMm0odW5zaWduZWQgbG9uZyBtYXhfcGZuX3ApOwo+ICAKPiAgdW5zaWduZWQgbG9uZyBhbGxv Y2F0ZV9vbmRlbWFuZCh1bnNpZ25lZCBsb25nIG4sIHVuc2lnbmVkIGxvbmcgYWxpZ25tZW50KTsK PiAgLyogbWFwIGZbaSpzdHJpZGVdK2kqaW5jcmVtZW50IGZvciBpIGluIDAuLm4tMSwgYWxpZ25l ZCBvbiBhbGlnbm1lbnQgcGFnZXMgKi8KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9wYXJhdmlydC5o IGIvaW5jbHVkZS9wYXJhdmlydC5oCj4gaW5kZXggNzg1MmUxNi4uMTUwNzZiZSAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL3BhcmF2aXJ0LmgKPiArKysgYi9pbmNsdWRlL3BhcmF2aXJ0LmgKPiBAQCAt MjYsNyArMjYsNTUgQEAKPiAgCj4gICNpZiBkZWZpbmVkKENPTkZJR19QQVJBVklSVCkKPiAgCj4g KyNkZWZpbmUgbWZuX3RvX3BmbihfbWZuKSAobWFjaGluZV90b19waHlzX21hcHBpbmdbKF9tZm4p XSkKPiArI2RlZmluZSBwZm5fdG9fbWZuKF9wZm4pIChwaHlzX3RvX21hY2hpbmVfbWFwcGluZ1so X3BmbildKQo+ICsKPiArLyogZm9yIFAyTSAqLwo+ICsjaWZkZWYgX194ODZfNjRfXwo+ICsjZGVm aW5lIFAyTV9TSElGVCAgICAgICA5Cj4gICNlbHNlCj4gKyNkZWZpbmUgUDJNX1NISUZUICAgICAg IDEwCj4gKyNlbmRpZgo+ICsjZGVmaW5lIFAyTV9FTlRSSUVTICAgICAoMVVMIDw8IFAyTV9TSElG VCkKPiArI2RlZmluZSBQMk1fTUFTSyAgICAgICAgKFAyTV9FTlRSSUVTIC0gMSkKPiArI2RlZmlu ZSBMMV9QMk1fU0hJRlQgICAgUDJNX1NISUZUCj4gKyNkZWZpbmUgTDJfUDJNX1NISUZUICAgICgy ICogUDJNX1NISUZUKQo+ICsjZGVmaW5lIEwzX1AyTV9TSElGVCAgICAoMyAqIFAyTV9TSElGVCkK PiArI2RlZmluZSBMMV9QMk1fSURYKHBmbikgKChwZm4pICYgUDJNX01BU0spCj4gKyNkZWZpbmUg TDJfUDJNX0lEWChwZm4pICgoKHBmbikgPj4gTDFfUDJNX1NISUZUKSAmIFAyTV9NQVNLKQo+ICsj ZGVmaW5lIEwzX1AyTV9JRFgocGZuKSAoKChwZm4pID4+IEwyX1AyTV9TSElGVCkgJiBQMk1fTUFT SykKPiArI2RlZmluZSBJTlZBTElEX1AyTV9FTlRSWSAofjBVTCkKPiArCj4gK3ZvaWQgcDJtX2No a19wZm4odW5zaWduZWQgbG9uZyBwZm4pOwo+ICsKPiArc3RhdGljIGlubGluZSB1bnNpZ25lZCBs b25nIHAybV9wYWdlcyh1bnNpZ25lZCBsb25nIHBhZ2VzKQo+ICt7Cj4gKyAgICByZXR1cm4gKHBh Z2VzICsgUDJNX0VOVFJJRVMgLSAxKSA+PiBMMV9QMk1fU0hJRlQ7Cj4gK30KPiArCj4gK3ZvaWQg YXJjaF9pbml0X3AybSh1bnNpZ25lZCBsb25nIG1heF9wZm5fcCk7Cj4gKwo+ICsjZWxzZQo+ICsK PiArI2RlZmluZSBtZm5fdG9fcGZuKF9tZm4pICgodW5zaWduZWQgbG9uZykoX21mbikpCj4gKyNk ZWZpbmUgcGZuX3RvX21mbihfcGZuKSAoKHVuc2lnbmVkIGxvbmcpKF9wZm4pKQo+ICsKPiArc3Rh dGljIGlubGluZSB2b2lkIGFyY2hfaW5pdF9wMm0odW5zaWduZWQgbG9uZyBtYXhfcGZuX3ApIHsg fQo+ICsKPiArI2VuZGlmCj4gKwo+ICsjaWYgZGVmaW5lZChDT05GSUdfUEFSQVZJUlQpICYmIGRl ZmluZWQoQ09ORklHX0JBTExPT04pCj4gKwo+ICt2b2lkIGFyY2hfcmVtYXBfcDJtKHVuc2lnbmVk IGxvbmcgbWF4X3Bmbik7Cj4gK2ludCBhcmNoX2V4cGFuZF9wMm0odW5zaWduZWQgbG9uZyBtYXhf cGZuKTsKPiArCj4gKyNlbHNlCj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgYXJjaF9yZW1hcF9w Mm0odW5zaWduZWQgbG9uZyBtYXhfcGZuKSB7IH0KPiArc3RhdGljIGlubGluZSBpbnQgYXJjaF9l eHBhbmRfcDJtKHVuc2lnbmVkIGxvbmcgbWF4X3BmbikKPiArewo+ICsgICAgcmV0dXJuIDA7Cj4g K30KPiAgCj4gICNlbmRpZgo+ICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS94ODYvYXJjaF9tbS5o IGIvaW5jbHVkZS94ODYvYXJjaF9tbS5oCj4gaW5kZXggMmIxOGIzNC4uMjhhYjQwNiAxMDA2NDQK PiAtLS0gYS9pbmNsdWRlL3g4Ni9hcmNoX21tLmgKPiArKysgYi9pbmNsdWRlL3g4Ni9hcmNoX21t LmgKPiBAQCAtMTg0LDMxICsxODQsNiBAQCB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgcGdlbnRyeV90 Owo+ICAjZGVmaW5lIElPX1BST1QgKEwxX1BST1QpCj4gICNkZWZpbmUgSU9fUFJPVF9OT0NBQ0hF IChMMV9QUk9UIHwgX1BBR0VfUENEKQo+ICAKPiAtLyogZm9yIFAyTSAqLwo+IC0jaWZkZWYgX194 ODZfNjRfXwo+IC0jZGVmaW5lIFAyTV9TSElGVCAgICAgICA5Cj4gLSNlbHNlCj4gLSNkZWZpbmUg UDJNX1NISUZUICAgICAgIDEwCj4gLSNlbmRpZgo+IC0jZGVmaW5lIFAyTV9FTlRSSUVTICAgICAo MVVMIDw8IFAyTV9TSElGVCkKPiAtI2RlZmluZSBQMk1fTUFTSyAgICAgICAgKFAyTV9FTlRSSUVT IC0gMSkKPiAtI2RlZmluZSBMMV9QMk1fU0hJRlQgICAgUDJNX1NISUZUCj4gLSNkZWZpbmUgTDJf UDJNX1NISUZUICAgICgyICogUDJNX1NISUZUKQo+IC0jZGVmaW5lIEwzX1AyTV9TSElGVCAgICAo MyAqIFAyTV9TSElGVCkKPiAtI2RlZmluZSBMMV9QMk1fSURYKHBmbikgKChwZm4pICYgUDJNX01B U0spCj4gLSNkZWZpbmUgTDJfUDJNX0lEWChwZm4pICgoKHBmbikgPj4gTDFfUDJNX1NISUZUKSAm IFAyTV9NQVNLKQo+IC0jZGVmaW5lIEwzX1AyTV9JRFgocGZuKSAoKChwZm4pID4+IEwyX1AyTV9T SElGVCkgJiBQMk1fTUFTSykKPiAtI2RlZmluZSBJTlZBTElEX1AyTV9FTlRSWSAofjBVTCkKPiAt Cj4gLSNpZm5kZWYgX19BU1NFTUJMWV9fCj4gLXZvaWQgcDJtX2Noa19wZm4odW5zaWduZWQgbG9u ZyBwZm4pOwo+IC0KPiAtc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIHAybV9wYWdlcyh1bnNp Z25lZCBsb25nIHBhZ2VzKQo+IC17Cj4gLSAgICByZXR1cm4gKHBhZ2VzICsgUDJNX0VOVFJJRVMg LSAxKSA+PiBMMV9QMk1fU0hJRlQ7Cj4gLX0KPiAtI2VuZGlmCj4gLQo+ICAjaW5jbHVkZSAiYXJj aF9saW1pdHMuaCIKPiAgI2RlZmluZSBQQUdFX1NJWkUgICAgICAgX19QQUdFX1NJWkUKPiAgI2Rl ZmluZSBQQUdFX1NISUZUICAgICAgX19QQUdFX1NISUZUCj4gQEAgLTIzMiwxMCArMjA3LDE0IEBA IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBwYWRkcl90Owo+ICB0eXBlZGVmIHVuc2lnbmVkIGxvbmcg bWFkZHJfdDsKPiAgI2VuZGlmCj4gIAo+ICtleHRlcm4gcGdlbnRyeV90ICpwdF9iYXNlOwo+ICsj aWZkZWYgQ09ORklHX1BBUkFWSVJUCj4gIGV4dGVybiB1bnNpZ25lZCBsb25nICpwaHlzX3RvX21h Y2hpbmVfbWFwcGluZzsKPiArI2Vsc2UKPiArZXh0ZXJuIHBnZW50cnlfdCBwYWdlX3RhYmxlX2Jh c2VbXTsKPiArI2VuZGlmCj4gIGV4dGVybiBjaGFyIF90ZXh0LCBfZXRleHQsIF9lcm9kYXRhLCBf ZWRhdGEsIF9lbmQ7Cj4gIGV4dGVybiB1bnNpZ25lZCBsb25nIG1mbl96ZXJvOwo+IC0jZGVmaW5l IHBmbl90b19tZm4oX3BmbikgKHBoeXNfdG9fbWFjaGluZV9tYXBwaW5nWyhfcGZuKV0pCj4gIHN0 YXRpYyBfX2lubGluZV9fIG1hZGRyX3QgcGh5c190b19tYWNoaW5lKHBhZGRyX3QgcGh5cykKPiAg ewo+ICAJbWFkZHJfdCBtYWNoaW5lID0gcGZuX3RvX21mbihwaHlzID4+IFBBR0VfU0hJRlQpOwo+ IEBAIC0yNDMsNyArMjIyLDYgQEAgc3RhdGljIF9faW5saW5lX18gbWFkZHJfdCBwaHlzX3RvX21h Y2hpbmUocGFkZHJfdCBwaHlzKQo+ICAJcmV0dXJuIG1hY2hpbmU7Cj4gIH0KPiAgCj4gLSNkZWZp bmUgbWZuX3RvX3BmbihfbWZuKSAobWFjaGluZV90b19waHlzX21hcHBpbmdbKF9tZm4pXSkKPiAg c3RhdGljIF9faW5saW5lX18gcGFkZHJfdCBtYWNoaW5lX3RvX3BoeXMobWFkZHJfdCBtYWNoaW5l KQo+ICB7Cj4gIAlwYWRkcl90IHBoeXMgPSBtZm5fdG9fcGZuKG1hY2hpbmUgPj4gUEFHRV9TSElG VCk7Cj4gQEAgLTI2NywxMyArMjQ1LDEwIEBAIHN0YXRpYyBfX2lubGluZV9fIHBhZGRyX3QgbWFj aGluZV90b19waHlzKG1hZGRyX3QgbWFjaGluZSkKPiAgI2RlZmluZSBwdGVfdG9fbWZuKF9wdGUp ICAgICAgICAgICAoKChfcHRlKSAmIChQQUREUl9NQVNLJlBBR0VfTUFTSykpID4+IEwxX1BBR0VU QUJMRV9TSElGVCkKPiAgI2RlZmluZSBwdGVfdG9fdmlydChfcHRlKSAgICAgICAgICB0b192aXJ0 KG1mbl90b19wZm4ocHRlX3RvX21mbihfcHRlKSkgPDwgUEFHRV9TSElGVCkKPiAgCj4gLQo+IC0j ZGVmaW5lIFBUX0JBU0UJCQkgICAoKHBnZW50cnlfdCAqKXN0YXJ0X2luZm8ucHRfYmFzZSkKPiAt Cj4gICNpZmRlZiBfX3g4Nl82NF9fCj4gLSNkZWZpbmUgdmlydHVhbF90b19sMyhfdmlydCkJICAg KChwZ2VudHJ5X3QgKilwdGVfdG9fdmlydChQVF9CQVNFW2w0X3RhYmxlX29mZnNldChfdmlydCld KSkKPiArI2RlZmluZSB2aXJ0dWFsX3RvX2wzKF92aXJ0KQkgICAoKHBnZW50cnlfdCAqKXB0ZV90 b192aXJ0KHB0X2Jhc2VbbDRfdGFibGVfb2Zmc2V0KF92aXJ0KV0pKQo+ICAjZWxzZQo+IC0jZGVm aW5lIHZpcnR1YWxfdG9fbDMoX3ZpcnQpCSAgIFBUX0JBU0UKPiArI2RlZmluZSB2aXJ0dWFsX3Rv X2wzKF92aXJ0KQkgICBwdF9iYXNlCj4gICNlbmRpZgo+ICAKPiAgI2RlZmluZSB2aXJ0dWFsX3Rv X2wyKF92aXJ0KQkgICAoeyBcCj4gQEAgLTI5Nyw2ICsyNzIsNyBAQCBzdGF0aWMgX19pbmxpbmVf XyBwYWRkcl90IG1hY2hpbmVfdG9fcGh5cyhtYWRkcl90IG1hY2hpbmUpCj4gICNkZWZpbmUgZG9f bWFwX3plcm8oc3RhcnQsIG4pIGRvX21hcF9mcmFtZXMoc3RhcnQsICZtZm5femVybywgbiwgMCwg MCwgRE9NSURfU0VMRiwgTlVMTCwgTDFfUFJPVF9STykKPiAgCj4gIHBnZW50cnlfdCAqbmVlZF9w Z3QodW5zaWduZWQgbG9uZyBhZGRyKTsKPiArdm9pZCBhcmNoX21tX3ByZWluaXQodm9pZCAqcCk7 Cj4gIAo+ICAjZW5kaWYKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2FyY2gteDg2L3hl bi14ODZfMzIuaCBiL2luY2x1ZGUveGVuL2FyY2gteDg2L3hlbi14ODZfMzIuaAo+IGluZGV4IDE1 MDQxOTEuLjYzMzk3MjcgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4 Nl8zMi5oCj4gKysrIGIvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl8zMi5oCj4gQEAgLTU1 LDYgKzU1LDcgQEAKPiAgI2RlZmluZSBGTEFUX1VTRVJfRFMgICAgRkxBVF9SSU5HM19EUwo+ICAj ZGVmaW5lIEZMQVRfVVNFUl9TUyAgICBGTEFUX1JJTkczX1NTCj4gIAo+ICsjaWZkZWYgQ09ORklH X1BBUkFWSVJUCj4gICNkZWZpbmUgX19IWVBFUlZJU09SX1ZJUlRfU1RBUlRfUEFFICAgIDB4RjU4 MDAwMDAKPiAgI2RlZmluZSBfX01BQ0gyUEhZU19WSVJUX1NUQVJUX1BBRSAgICAgMHhGNTgwMDAw MAo+ICAjZGVmaW5lIF9fTUFDSDJQSFlTX1ZJUlRfRU5EX1BBRSAgICAgICAweEY2ODAwMDAwCj4g QEAgLTkwLDYgKzkxLDcgQEAKPiAgI2lmbmRlZiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZwo+ICAj ZGVmaW5lIG1hY2hpbmVfdG9fcGh5c19tYXBwaW5nICgodW5zaWduZWQgbG9uZyAqKU1BQ0gyUEhZ U19WSVJUX1NUQVJUKQo+ICAjZW5kaWYKPiArI2VuZGlmCj4gIAo+ICAvKiAzMi0vNjQtYml0IGlu dmFyaWFiaWxpdHkgZm9yIGNvbnRyb2wgaW50ZXJmYWNlcyAoZG9tY3RsL3N5c2N0bCkuICovCj4g ICNpZiBkZWZpbmVkKF9fWEVOX18pIHx8IGRlZmluZWQoX19YRU5fVE9PTFNfXykKPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS94ZW4vYXJjaC14ODYveGVuLXg4Nl82NC5oIGIvaW5jbHVkZS94ZW4vYXJj aC14ODYveGVuLXg4Nl82NC5oCj4gaW5kZXggMWM0ZTE1OS4uMmMwMDExMSAxMDA2NDQKPiAtLS0g YS9pbmNsdWRlL3hlbi9hcmNoLXg4Ni94ZW4teDg2XzY0LmgKPiArKysgYi9pbmNsdWRlL3hlbi9h cmNoLXg4Ni94ZW4teDg2XzY0LmgKPiBAQCAtNzAsNiArNzAsNyBAQAo+ICAjZGVmaW5lIEZMQVRf VVNFUl9TUzMyIEZMQVRfUklORzNfU1MzMgo+ICAjZGVmaW5lIEZMQVRfVVNFUl9TUyAgIEZMQVRf VVNFUl9TUzY0Cj4gIAo+ICsjaWZkZWYgQ09ORklHX1BBUkFWSVJUCj4gICNkZWZpbmUgX19IWVBF UlZJU09SX1ZJUlRfU1RBUlQgMHhGRkZGODAwMDAwMDAwMDAwCj4gICNkZWZpbmUgX19IWVBFUlZJ U09SX1ZJUlRfRU5EICAgMHhGRkZGODgwMDAwMDAwMDAwCj4gICNkZWZpbmUgX19NQUNIMlBIWVNf VklSVF9TVEFSVCAgMHhGRkZGODAwMDAwMDAwMDAwCj4gQEAgLTg2LDYgKzg3LDcgQEAKPiAgI2lm bmRlZiBtYWNoaW5lX3RvX3BoeXNfbWFwcGluZwo+ICAjZGVmaW5lIG1hY2hpbmVfdG9fcGh5c19t YXBwaW5nICgodW5zaWduZWQgbG9uZyAqKUhZUEVSVklTT1JfVklSVF9TVEFSVCkKPiAgI2VuZGlm Cj4gKyNlbmRpZgo+ICAKPiAgLyoKPiAgICogaW50IEhZUEVSVklTT1Jfc2V0X3NlZ21lbnRfYmFz ZSh1bnNpZ25lZCBpbnQgd2hpY2gsIHVuc2lnbmVkIGxvbmcgYmFzZSkKPiBkaWZmIC0tZ2l0IGEv bW0uYyBiL21tLmMKPiBpbmRleCBjYTBiOWJlLi5jNzZiZTdmIDEwMDY0NAo+IC0tLSBhL21tLmMK PiArKysgYi9tbS5jCj4gQEAgLTM5LDYgKzM5LDcgQEAKPiAgI2luY2x1ZGUgPHhlbi9tZW1vcnku aD4KPiAgI2luY2x1ZGUgPG1pbmktb3MvbW0uaD4KPiAgI2luY2x1ZGUgPG1pbmktb3MvYmFsbG9v bi5oPgo+ICsjaW5jbHVkZSA8bWluaS1vcy9wYXJhdmlydC5oPgo+ICAjaW5jbHVkZSA8bWluaS1v cy90eXBlcy5oPgo+ICAjaW5jbHVkZSA8bWluaS1vcy9saWIuaD4KPiAgI2luY2x1ZGUgPG1pbmkt b3MveG1hbGxvYy5oPgo+IC0tIAo+IDIuNi42Cj4gCgotLSAKU2FtdWVsCjx5PiB0MSBmYWljaAo8 eT4gbGVzIHByb2dyYW1tZXMgaWxzIHNlZ2ZhdWx0ZW50IGphbWFpcyBxdWFuZCBvbiB2ZXV0CiAt Ky0gI2Vucy1taW0gZW4gcGxlaW4gZMOpYm9nYWdlIC0rLQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==