From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v8 07/19] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 6 Nov 2018 14:48:50 -0800 Message-ID: <20181106224850.GI26420@intel.com> References: <20181102213138.301-1-manasi.d.navare@intel.com> <20181102213138.301-8-manasi.d.navare@intel.com> <20181103020902.GA11271@intel.com> <20181106144256.GX9144@intel.com> <83F5C7385F545743AD4FB2A62F75B07347F911E4@ORSMSX108.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <83F5C7385F545743AD4FB2A62F75B07347F911E4@ORSMSX108.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Srivatsa, Anusha" Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "Singh, Gaurav K" List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBOb3YgMDYsIDIwMTggYXQgMDI6NDE6MDFQTSAtMDgwMCwgU3JpdmF0c2EsIEFudXNo YSB3cm90ZToKPiAKPiAKPiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiA+RnJvbTogVmls bGUgU3lyasOkbMOkIFttYWlsdG86dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb21dCj4gPlNl bnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDYsIDIwMTggNjo0MyBBTQo+ID5UbzogTmF2YXJlLCBNYW5h c2kgRCA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+Q2M6IGludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IEphbmkgTmlr dWxhCj4gPjxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+OyBTcml2YXRzYSwgQW51c2hhIDxh bnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPjsKPiA+U2luZ2gsIEdhdXJhdiBLIDxnYXVyYXYuay5z aW5naEBpbnRlbC5jb20+Cj4gPlN1YmplY3Q6IFJlOiBbUEFUQ0ggdjggMDcvMTldIGRybS9pOTE1 L2RwOiBDb21wdXRlIERTQyBwaXBlIGNvbmZpZyBpbiBhdG9taWMKPiA+Y2hlY2sKPiA+Cj4gPk9u IEZyaSwgTm92IDAyLCAyMDE4IGF0IDA3OjA5OjAzUE0gLTA3MDAsIE1hbmFzaSBOYXZhcmUgd3Jv dGU6Cj4gPj4gT24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMDI6MzE6MjZQTSAtMDcwMCwgTWFuYXNp IE5hdmFyZSB3cm90ZToKPiA+PiA+IERTQyBwYXJhbXMgbGlrZSB0aGUgZW5hYmxlLCBjb21wcmVz c2VkIGJwcCwgc2xpY2UgY291bnQgYW5kCj4gPj4gPiBkc2Nfc3BsaXQgYXJlIGFkZGVkIHRvIHRo ZSBpbnRlbF9jcnRjX3N0YXRlLiBUaGVzZSBwYXJhbWV0ZXJzIGFyZQo+ID4+ID4gc2V0IGJhc2Vk IG9uIHRoZSByZXF1ZXN0ZWQgbW9kZSBhbmQgYXZhaWxhYmxlIGxpbmsgcGFyYW1ldGVycyBkdXJp bmcKPiA+PiA+IHRoZSBwaXBlIGNvbmZpZ3VyYXRpb24gaW4gYXRvbWljIGNoZWNrIHBoYXNlLgo+ ID4+ID4gVGhlc2UgdmFsdWVzIGFyZSB0aGVuIGxhdGVyIHVzZWQgdG8gcG9wdWxhdGUgdGhlIHJl bWFpbmluZyBEU0MgYW5kCj4gPj4gPiBSQyBwYXJhbWV0ZXJzIGJlZm9yZSBlbmJhbGluZyBEU0Mg aW4gYXRvbWljIGNvbW1pdC4KPiA+PiA+Cj4gPj4gPiB2MTE6Cj4gPj4gPiAqIENvbnN0IGNydGNf c3RhdGUsIHJlamVjdCBEU0Mgb24gRFAgd2l0aG91dCBGRUMgKFZpbGxlKQo+ID4+ID4gKiBEb250 IHNldCBkc2Nfc3BsaXQgdG8gZmFsc2UgKFZpbGxlKQo+ID4+ID4gdjEwOgo+ID4+ID4gKiBBZGQg YSBoZWxwZXIgZm9yIGRwX2RzYyBzdXBwb3J0IChWaWxsZSkKPiA+PiA+ICogU2V0IHBpcGVfY29u ZmlnIHRvIG1heCBicHAsIGxpbmsgcGFyYW1zIGZvciBEU0MgZm9yIG5vdyAoVmlsbGUpCj4gPj4g PiAqIENvbXB1dGUgYnBwIC0gdXNlIGRwIGRzYyBzdXBwb3J0IGhlbHBlciAoVmlsbGUpCj4gPj4g PiB2OToKPiA+PiA+ICogUmViYXNlIG9uIHRvcCBvZiBkcm0tdGlwIHRoYXQgbm93IHVzZXMgZmFz dF9uYXJyb3cgY29uZmlnIGZvciBlZHAKPiA+PiA+IChNYW5hc2kpCj4gPj4gPiB2ODoKPiA+PiA+ ICogQ2hlY2sgZm9yIERTQyBicGMgbm90IDAgKG1hbmFzaSkKPiA+PiA+Cj4gPj4gPiB2NzoKPiA+ PiA+ICogRml4IGluZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChNYW5hc2kpCj4gPj4gPgo+ID4+ ID4gdjYgKEZyb20gR2F1cmF2KToKPiA+PiA+ICogUmVtb3ZlIGZ1bmN0aW9uIGNhbGwgb2YgaW50 ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKCkgYW5kIGludm9rZQo+ID4+ID4gaW50ZWxfZHBfY29t cHV0ZV9kc2NfcGFyYW1zKCkgaW4gdGhlIHBhdGNoIHdoZXJlIGl0IGlzIGRlZmluZWQgdG8KPiA+ PiA+IGZpeCBjb21waWxhdGlvbiB3YXJuaW5nIChHYXVyYXYpCj4gPj4gPgo+ID4+ID4gdjU6Cj4g Pj4gPiBBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxfY3J0Y19zdGF0ZSAoTWFuYXNpKQo+ID4+ID4K PiA+PiA+IHY0Ogo+ID4+ID4gKiBSZWJhc2Ugb24gcmVmYWN0b3Jpbmcgb2YgaW50ZWxfZHBfY29t cHV0ZV9jb25maWcgb24gdGlwIChNYW5hc2kpCj4gPj4gPiAqIEFkZCBhIGNvbW1lbnQgd2h5IHdl IG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2KQo+ID4+ID4KPiA+ PiA+IHYzOgo+ID4+ID4gKiBDaGVjayBQUFIgPiBtYXhfY2RjbG9jayB0byB1c2UgMiBWRFNDIGlu c3RhbmNlcyAoVmlsbGUpCj4gPj4gPgo+ID4+ID4gdjI6Cj4gPj4gPiAqIEFkZCBpZi1lbHNlIGZv ciBlRFAvRFAgKEdhdXJhdikKPiA+PiA+Cj4gPj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGxpbnV4LmludGVsLmNvbT4KPiA+PiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiA+PiA+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5z cml2YXRzYUBpbnRlbC5jb20+Cj4gPj4gPiBDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNp bmdoQGludGVsLmNvbT4KPiA+PiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFz aS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4gPj4gPiBSZXZpZXdlZC1ieTogQW51c2hhIFNyaXZhdHNh IDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+ID4+ID4gQWNrZWQtYnk6IEphbmkgTmlrdWxh IDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gPj4gPiAtLS0KPiA+PiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMjAgKysrLQo+ID4+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCB8ICAgMyArLQo+ID4+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE2NyArKysrKysrKysrKysrKysrKysrKysrKyst LS0KPiA+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyAgfCAgIDIgKy0K PiA+PiA+ICA0IGZpbGVzIGNoYW5nZWQsIDE2NiBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMo LSkKPiA+PiA+Cj4gPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4+ID4gaW5kZXggYjIxOWQ1ODU4MTYwLi40NzdlNTNjMzczNTMgMTAwNjQ0Cj4gPj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+PiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4+ID4gQEAgLTY0NDIsNyArNjQ0Miw3 IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdAo+ID4+ID4g aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiA+PiA+Cj4gPj4gPiAgCXBpcGVfY29uZmlnLT5mZGlf bGFuZXMgPSBsYW5lOwo+ID4+ID4KPiA+PiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBl X2NvbmZpZy0+cGlwZV9icHAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiA+PiA+ICsJaW50ZWxfbGlu a19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIDAsIGxhbmUsCj4gPj4gPiArZmRp X2RvdGNsb2NrLAo+ID4+ID4gIAkJCSAgICAgICBsaW5rX2J3LCAmcGlwZV9jb25maWctPmZkaV9t X24sIGZhbHNlKTsKPiA+PiA+Cj4gPj4gPiAgCXJldCA9IGlyb25sYWtlX2NoZWNrX2ZkaV9sYW5l cyhkZXYsIGludGVsX2NydGMtPnBpcGUsCj4gPj4gPiBwaXBlX2NvbmZpZyk7IEBAIC02Njc5LDE3 ICs2Njc5LDI1IEBAIHN0YXRpYyB2b2lkCj4gPj4gPiBjb21wdXRlX21fbih1bnNpZ25lZCBpbnQg bSwgdW5zaWduZWQgaW50IG4sICB9Cj4gPj4gPgo+ID4+ID4gIHZvaWQKPiA+PiA+IC1pbnRlbF9s aW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgaW50IG5sYW5lcywKPiA+PiA+ICtp bnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgdWludDE2X3QgY29tcHJl c3NlZF9icHAsCj4gPj4gPiArCQkgICAgICAgaW50IG5sYW5lcywKPiA+PiA+ICAJCSAgICAgICBp bnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ID4+ID4gIAkJICAgICAgIHN0cnVjdCBp bnRlbF9saW5rX21fbiAqbV9uLAo+ID4+ID4gIAkJICAgICAgIGJvb2wgY29uc3RhbnRfbikKPiA+ PiA+ICB7Cj4gPj4gPiAgCW1fbi0+dHUgPSA2NDsKPiA+PiA+Cj4gPj4gPiAtCWNvbXB1dGVfbV9u KGJpdHNfcGVyX3BpeGVsICogcGl4ZWxfY2xvY2ssCj4gPj4gPiAtCQkgICAgbGlua19jbG9jayAq IG5sYW5lcyAqIDgsCj4gPj4gPiAtCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4g Pj4gPiAtCQkgICAgY29uc3RhbnRfbik7Cj4gPj4gPiArCS8qIEZvciBEU0MsIERhdGEgTS9OIGNh bGN1bGF0aW9uIHVzZXMgY29tcHJlc3NlZCBCUFAgKi8KPiA+PiA+ICsJaWYgKGNvbXByZXNzZWRf YnBwKQo+ID4+ID4gKwkJY29tcHV0ZV9tX24oY29tcHJlc3NlZF9icHAgKiBwaXhlbF9jbG9jaywK PiA+PiA+ICsJCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCj4gPj4gPiArCQkJICAgICZt X24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAo+ID4+ID4gKwkJCSAgICBjb25zdGFudF9uKTsKPiA+ PiA+ICsJZWxzZQo+ID4+ID4gKwkJY29tcHV0ZV9tX24oYml0c19wZXJfcGl4ZWwgKiBwaXhlbF9j bG9jaywKPiA+PiA+ICsJCQkgICAgbGlua19jbG9jayAqIG5sYW5lcyAqIDgsCj4gPj4gPiArCQkJ ICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAo+ID4+ID4gKwkJCSAgICBjb25zdGFudF9u KTsKPiA+PiA+Cj4gPj4gPiAgCWNvbXB1dGVfbV9uKHBpeGVsX2Nsb2NrLCBsaW5rX2Nsb2NrLAo+ ID4+ID4gIAkJICAgICZtX24tPmxpbmtfbSwgJm1fbi0+bGlua19uLAo+ID4+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiA+PiA+IGluZGV4IDVkNTBkZWNiY2JiNS4u YjBiMjNlMWU5MzkyIDEwMDY0NAo+ID4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5oCj4gPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmgKPiA+PiA+IEBAIC00MDcsNyArNDA3LDggQEAgc3RydWN0IGludGVsX2xpbmtfbV9uIHsK PiA+PiA+ICAJICAgICAoX19pKSsrKSBcCj4gPj4gPiAgCQlmb3JfZWFjaF9pZihwbGFuZSkKPiA+ PiA+Cj4gPj4gPiAtdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBicHAsIGludCBubGFu ZXMsCj4gPj4gPiArdm9pZCBpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBicHAsIHVpbnQxNl90 IGNvbXByZXNzZWRfYnBwLAo+ID4+ID4gKwkJCSAgICBpbnQgbmxhbmVzLAo+ID4+ID4gIAkJCSAg ICBpbnQgcGl4ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ID4+ID4gIAkJCSAgICBzdHJ1Y3Qg aW50ZWxfbGlua19tX24gKm1fbiwKPiA+PiA+ICAJCQkgICAgYm9vbCBjb25zdGFudF9uKTsKPiA+ PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPj4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgaW5kZXggYjM5YjRiZGE4ZTQwLi41ODMy NmZjOWQ5MzUKPiA+PiA+IDEwMDY0NAo+ID4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+ID4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ID4+ID4gQEAgLTQ3LDYgKzQ3LDggQEAKPiA+PiA+Cj4gPj4gPiAgLyogRFAgRFNDIHNtYWxsIGpv aW5lciBoYXMgMiBGSUZPcyBlYWNoIG9mIDY0MCB4IDYgYnl0ZXMgKi8KPiA+PiA+ICAjZGVmaW5l IERQX0RTQ19NQVhfU01BTExfSk9JTkVSX1JBTV9CVUZGRVIJNjE0NDAKPiA+PiA+ICsjZGVmaW5l IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQwkJOAo+ID4+ID4gKyNkZWZpbmUgRFBfRFNDX01BWF9T VVBQT1JURURfQlBDCQkxMAo+ID4+ID4KPiA+PiA+ICAvKiBEUCBEU0MgdGhyb3VnaHB1dCB2YWx1 ZXMgdXNlZCBmb3Igc2xpY2UgY291bnQgY2FsY3VsYXRpb25zIEtQaXhlbHMvcyAqLwo+ID4+ID4g ICNkZWZpbmUgRFBfRFNDX1BFQUtfUElYRUxfUkFURQkJCTI3MjAwMDAKPiA+PiA+IEBAIC0xODQw LDYgKzE4NDIsMjkgQEAgc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyB7Cj4gPj4gPiAgCWludCBt aW5fYnBwLCBtYXhfYnBwOwo+ID4+ID4gIH07Cj4gPj4gPgo+ID4+ID4gK3N0YXRpYyBib29sIGlu dGVsX2RwX3NvdXJjZV9zdXBwb3J0c19kc2Moc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ PiA+ICsJCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZQo+ID4qcGlwZV9jb25maWcp IHsKPiA+PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkx NShpbnRlbF9kcCk7Cj4gPj4gPiArCj4gPj4gPiArCS8qIEZJWE1FOiBGRUMgbmVlZGVkIGZvciBl eHRlcm5hbCBEUCB1bnRpbCB0aGVuIHJlamVjdCBEU0Mgb24gRFAgKi8KPiAKPiBJZiB3ZSB3YW50 IHRvIGNoZWNrIGZvciBGRUMgc3VwcG9ydCBpbiBpbnRlbF9kcF9zdXBwb3J0c19kc2MoKSwgdGhp cyBGSVhNRSBzaG91bGQgYmUgbW92ZWQgZnJvbSBoZXJlLgo+IAo+IEFudXNoYQoKWW91IGNhbiBt YWtlIGFsbCB0aGVzZSBjaGFuZ2VzIGluIHlvdXIgcGF0Y2hlcyB0aGF0IGFkZCBGRUMgY2hlY2su CgpNYW5hc2kKIAo+ID4+ID4gKwlpZiAoIWludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gPj4g PiArCQlyZXR1cm4gZmFsc2U7Cj4gPj4gPiArCj4gPj4gPiArCXJldHVybiBJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDEwICYmCj4gPj4gPiArCQlwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIgIT0g VFJBTlNDT0RFUl9BOyB9Cj4gPj4gPiArCj4gPj4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfc3Vw cG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPj4gPiArCQkJCSAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKSB7Cj4gPj4gPiArCWlmICghaW50 ZWxfZHBfc291cmNlX3N1cHBvcnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcpIHx8Cj4gPj4g PiArCSAgICAhZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkpCj4g Pj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPj4gPiArCj4gPj4gPiArCXJldHVybiB0cnVlOwo+ID4+ ID4gK30KPiA+PiA+ICsKPiA+PiA+ICBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPj4gPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykgIHsgQEAgLQo+ID4xODYzLDYgKzE4ODgsMTUgQEAKPiA+PiA+IHN0 YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwK PiA+PiA+ICAJCX0KPiA+PiA+ICAJfQo+ID4+ID4KPiA+PiA+ICsJLyogSWYgRFNDIGlzIHN1cHBv cnRlZCwgdXNlIHRoZSBtYXggdmFsdWUgcmVwb3J0ZWQgYnkgcGFuZWwgKi8KPiA+PiA+ICsJaWYg KGludGVsX2RwX3N1cHBvcnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcpKSB7Cj4gPj4gPiAr CQlicGMgPSBtaW5fdCh1OCwKPiA+PiA+ICsJCQkgICAgZHJtX2RwX2RzY19zaW5rX21heF9jb2xv cl9kZXB0aChpbnRlbF9kcC0KPiA+PmRzY19kcGNkKSwKPiA+PiA+ICsJCQkgICAgRFBfRFNDX01B WF9TVVBQT1JURURfQlBDKTsKPiA+PiA+ICsJCWlmIChicGMpCj4gPj4gPiArCQkJYnBwID0gbWlu KGJwcCwgMypicGMpOwo+ID4+Cj4gPj4gVmlsbGUsIHRoZSBwcm9ibGVtIHdpdGggY2hvc2luZyB0 aGUgbWluIGJldHdlZW4gZXhpc3RpbmcgYnBwIGFuZCAzICoKPiA+PiBicGMgKGNvbXB1dGVkIGZy b20gRFNDIGRwY2QpIGlzIHRoYXQgRURJRCBiYXNlZCBicGMgbWlnaHQgYmUgbG93ZXIgYW5kCj4g Pj4gaW4gY2FzZSBEU0MgaXMgc3VwcG9ydGVkLCB0aGUgYnBjIHZhbHVlIHNob3VsZCBiZSBiYXNl ZCBvbiB0aGUgZHNjCj4gPj4gY29sb3IgZGVwdGggYW5kIHRoYXQgc2hvdWxkIG92ZXJyaWRlIHRo ZSB2YWx1ZSBvYnRhaW5lZCBmcm9tIEVESUQuCj4gPj4gVGhpcyB3YXMgY29uZmlybWVkIGZyb20g dGhlIFZEU0MgcHJvZ3JhbW1pbmcgZG9jdW1lbnRzIG9idGFpbmVkIGZyb20KPiA+PiBIVyBhcmNo aXRlY3R1cmUgZm9sa3MKPiA+Pgo+ID4+IFNvIGkgdGhpbmsgaXQgc2hvdWxkIHN0aWxsIGJlIGlm IERTQyBzdXBwb3J0ZWQgdXNlIHRoZSBicGMgZGlyZWN0bHkKPiA+PiBmcm9tIG1pbl90KHU4LAo+ ID4+IGRybV9kcF9kc2Nfc2lua19tYXhfY29sb3JfZGVwdGgoaW50ZWxfZHAtCj4gPj5kc2NfZHBj ZCksRFBfRFNDX01BWF9TVVBQT1JUCj4gPj4gRURfQlBDKTsKPiA+Cj4gPk1heWJlCj4gPgo+ID5i cGNfbWluID0gc29tZXRoaW5nOwo+ID5icGNfbWF4ID0gc29tZXRoaW5nX2Vsc2U7Cj4gPmJwcCA9 IGNsYW1wKGJwcCwgYnBjX21pbiozLCBicGNfbWF4KjMpOwo+ID4KPiA+RWl0aGVyIHRoYXQgb3Ig d2UganVzdCByZXR1cm4gYW4gZXJyb3Igb2YgdGhlIHJlcXVlc3RlZCBicHAgaXMgYmVsb3cgdGhl IGRzYwo+ID5taW5pbXVtLgo+ID4KPiA+Pgo+ID4+IE1hbmFzaQo+ID4+Cj4gPj4gPiArCX0KPiA+ PiA+ICsKPiA+PiA+ICAJcmV0dXJuIGJwcDsKPiA+PiA+ICB9Cj4gPj4gPgo+ID4+ID4gQEAgLTE5 NzQsNiArMjAwOCw4MCBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX2Zhc3Qoc3RydWN0 Cj4gPmludGVsX2RwICppbnRlbF9kcCwKPiA+PiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4+ID4gIH0K PiA+PiA+Cj4gPj4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPj4gPiArCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcsCj4gPj4gPiArCQkJCQljb25zdCBzdHJ1Y3QgbGlua19jb25maWdf bGltaXRzICpsaW1pdHMpIHsKPiA+PiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPj4gPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ ID4+ID4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2Nv bmZpZy0KPiA+PmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+PiA+ICsJdTE2IGRzY19tYXhfb3V0cHV0 X2JwcCA9IDA7Cj4gPj4gPiArCXU4IGRzY19kcF9zbGljZV9jb3VudCA9IDA7Cj4gPj4gPiArCj4g Pj4gPiArCWlmICghaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBlX2NvbmZpZykp Cj4gPj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPj4gPiArCj4gPj4gPiArCS8qIERTQyBub3Qgc3Vw cG9ydGVkIGZvciBEU0Mgc2luayBCUEMgPCA4ICovCj4gPj4gPiArCWlmIChsaW1pdHMtPm1heF9i cHAgPCAzICogRFBfRFNDX01JTl9TVVBQT1JURURfQlBDKSB7Cj4gPj4gPiArCQlEUk1fREVCVUdf S01TKCJObyBEU0Mgc3VwcG9ydCBmb3IgbGVzcyB0aGFuIDhicGNcbiIpOwo+ID4+ID4gKwkJcmV0 dXJuIGZhbHNlOwo+ID4+ID4gKwl9Cj4gPj4gPiArCj4gPj4gPiArCS8qCj4gPj4gPiArCSAqIEZv ciBub3cgZW5hYmxlIERTQyBmb3IgbWF4IGJwcCwgbWF4IGxpbmsgcmF0ZSwgbWF4IGxhbmUgY291 bnQuCj4gPj4gPiArCSAqIE9wdGltaXplIHRoaXMgbGF0ZXIgZm9yIHRoZSBtaW5pbXVtIHBvc3Np YmxlIGxpbmsgcmF0ZS9sYW5lIGNvdW50Cj4gPj4gPiArCSAqIHdpdGggRFNDIGVuYWJsZWQgZm9y IHRoZSByZXF1ZXN0ZWQgbW9kZS4KPiA+PiA+ICsJICovCj4gPj4gPiArCXBpcGVfY29uZmlnLT5w aXBlX2JwcCA9IGxpbWl0cy0+bWF4X2JwcDsKPiA+PiA+ICsJcGlwZV9jb25maWctPnBvcnRfY2xv Y2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0cy0+bWF4X2Nsb2NrXTsKPiA+PiA+ICsJ cGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsaW1pdHMtPm1heF9sYW5lX2NvdW50Owo+ID4+ID4g Kwo+ID4+ID4gKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewo+ID4+ID4gKwkJcGlw ZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHAgPQo+ID4+ID4gKwkJCWRybV9lZHBf ZHNjX3Npbmtfb3V0cHV0X2JwcChpbnRlbF9kcC0+ZHNjX2RwY2QpID4+Cj4gPjQ7Cj4gPj4gPiAr CQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCA9Cj4gPj4gPiArCQkJZHJtX2Rw X2RzY19zaW5rX21heF9zbGljZV9jb3VudChpbnRlbF9kcC0+ZHNjX2RwY2QsCj4gPj4gPiArCQkJ CQkJCXRydWUpOwo+ID4+ID4gKwl9IGVsc2Ugewo+ID4+ID4gKwkJZHNjX21heF9vdXRwdXRfYnBw ID0KPiA+PiA+ICsJCQlpbnRlbF9kcF9kc2NfZ2V0X291dHB1dF9icHAocGlwZV9jb25maWctPnBv cnRfY2xvY2ssCj4gPj4gPiArCQkJCQkJICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4+ ID4gKwkJCQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4+ID4gKwkJCQkJCSAg ICBhZGp1c3RlZF9tb2RlLQo+ID4+Y3J0Y19oZGlzcGxheSk7Cj4gPj4gPiArCQlkc2NfZHBfc2xp Y2VfY291bnQgPQo+ID4+ID4gKwkJCWludGVsX2RwX2RzY19nZXRfc2xpY2VfY291bnQoaW50ZWxf ZHAsCj4gPj4gPiArCQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4+ID4g KwkJCQkJCSAgICAgYWRqdXN0ZWRfbW9kZS0KPiA+PmNydGNfaGRpc3BsYXkpOwo+ID4+ID4gKwkJ aWYgKCEoZHNjX21heF9vdXRwdXRfYnBwICYmIGRzY19kcF9zbGljZV9jb3VudCkpIHsKPiA+PiA+ ICsJCQlEUk1fREVCVUdfS01TKCJDb21wcmVzc2VkIEJQUC9TbGljZSBDb3VudCBub3QKPiA+c3Vw cG9ydGVkXG4iKTsKPiA+PiA+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gPj4gPiArCQl9Cj4gPj4gPiAr CQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCA9Cj4gPmRzY19tYXhfb3V0 cHV0X2JwcCA+PiA0Owo+ID4+ID4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291 bnQgPSBkc2NfZHBfc2xpY2VfY291bnQ7Cj4gPj4gPiArCX0KPiA+PiA+ICsJLyoKPiA+PiA+ICsJ ICogVkRTQyBlbmdpbmUgb3BlcmF0ZXMgYXQgMSBQaXhlbCBwZXIgY2xvY2ssIHNvIGlmIHBlYWsg cGl4ZWwgcmF0ZQo+ID4+ID4gKwkgKiBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gQ2RjbG9j ayBhbmQgaWYgc2xpY2UgY291bnQgaXMgZXZlbgo+ID4+ID4gKwkgKiB0aGVuIHdlIG5lZWQgdG8g dXNlIDIgVkRTQyBpbnN0YW5jZXMuCj4gPj4gPiArCSAqLwo+ID4+ID4gKwlpZiAoYWRqdXN0ZWRf bW9kZS0+Y3J0Y19jbG9jayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ID4+ID4gKwkJ aWYgKHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNlX2NvdW50ID4gMSkgewo+ID4+ID4gKwkJ CXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmRzY19zcGxpdCA9IHRydWU7Cj4gPj4gPiArCQl9IGVs c2Ugewo+ID4+ID4gKwkJCURSTV9ERUJVR19LTVMoIkNhbm5vdCBzcGxpdCBzdHJlYW0gdG8gdXNl IDIgVkRTQwo+ID5pbnN0YW5jZXNcbiIpOwo+ID4+ID4gKwkJCXJldHVybiBmYWxzZTsKPiA+PiA+ ICsJCX0KPiA+PiA+ICsJfQo+ID4+ID4gKwlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVz c2lvbl9lbmFibGUgPSB0cnVlOwo+ID4+ID4gKwlEUk1fREVCVUdfS01TKCJEUCBEU0MgY29tcHV0 ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCj4gPj4gPiArCQkgICAgICAiQ29tcHJlc3NlZCBCcHAg PSAlZCBTbGljZSBDb3VudCA9ICVkXG4iLAo+ID4+ID4gKwkJICAgICAgcGlwZV9jb25maWctPnBp cGVfYnBwLAo+ID4+ID4gKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Nl ZF9icHAsCj4gPj4gPiArCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3Vu dCk7Cj4gPj4gPiArCj4gPj4gPiArCXJldHVybiB0cnVlOwo+ID4+ID4gK30KPiA+PiA+ICsKPiA+ PiA+ICBzdGF0aWMgYm9vbAo+ID4+ID4gIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPj4gPiAgCQkJICAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpIEBAIC0xOTgyLDYKPiA+KzIwOTAsNyBAQAo+ID4+ID4g aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKPiA+PiA+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgm ZW5jb2Rlci0+YmFzZSk7Cj4gPj4gPiAgCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgbGltaXRz Owo+ID4+ID4gIAlpbnQgY29tbW9uX2xlbjsKPiA+PiA+ICsJYm9vbCByZXQgPSBmYWxzZTsKPiA+ PiA+Cj4gPj4gPiAgCWNvbW1vbl9sZW4gPSBpbnRlbF9kcF9jb21tb25fbGVuX3JhdGVfbGltaXQo aW50ZWxfZHAsCj4gPj4gPiAgCQkJCQkJICAgIGludGVsX2RwLT5tYXhfbGlua19yYXRlKTsKPiA+ QEAgLTE5OTUsOCArMjEwNCwxMiBAQAo+ID4+ID4gaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+PiA+ICAJbGltaXRzLm1pbl9sYW5l X2NvdW50ID0gMTsKPiA+PiA+ICAJbGltaXRzLm1heF9sYW5lX2NvdW50ID0gaW50ZWxfZHBfbWF4 X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4+ID4KPiA+PiA+IC0JbGltaXRzLm1pbl9icHAgPSA2 ICogMzsKPiA+PiA+ICAJbGltaXRzLm1heF9icHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcChpbnRl bF9kcCwgcGlwZV9jb25maWcpOwo+ID4+ID4gKwlpZiAoaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGlu dGVsX2RwLCBwaXBlX2NvbmZpZykgJiYKPiA+PiA+ICsJICAgIGxpbWl0cy5tYXhfYnBwID49IERQ X0RTQ19NSU5fU1VQUE9SVEVEX0JQQyozKQo+ID4+ID4gKwkJbGltaXRzLm1pbl9icHAgPSBEUF9E U0NfTUlOX1NVUFBPUlRFRF9CUEMgKiAzOwo+ID4+ID4gKwllbHNlCj4gPj4gPiArCQlsaW1pdHMu bWluX2JwcCA9IDYgKiAzOwo+ID4+ID4KPiA+PiA+ICAJaWYgKGludGVsX2RwX2lzX2VkcChpbnRl bF9kcCkgJiYgaW50ZWxfZHAtPmVkcF9kcGNkWzBdIDwgRFBfRURQXzE0KSB7Cj4gPj4gPiAgCQkv Kgo+ID4+ID4gQEAgLTIwMjAsNyArMjEzMyw3IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIKPiA+KmVuY29kZXIsCj4gPj4gPiAgCQkgICAgICBpbnRl bF9kcC0+Y29tbW9uX3JhdGVzW2xpbWl0cy5tYXhfY2xvY2tdLAo+ID4+ID4gIAkJICAgICAgbGlt aXRzLm1heF9icHAsIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2spOwo+ID4+ID4KPiA+PiA+IC0J aWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKPiA+PiA+ICsJaWYgKGludGVsX2RwX2lz X2VkcChpbnRlbF9kcCkpCj4gPj4gPiAgCQkvKgo+ID4+ID4gIAkJICogT3B0aW1pemUgZm9yIGZh c3QgYW5kIG5hcnJvdy4gZURQIDEuMyBzZWN0aW9uIDMuMyBhbmQgZURQIDEuNAo+ID4+ID4gIAkJ ICogc2VjdGlvbiBBLjE6ICJJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBtaW5pbXVtIG51bWJl ciBvZgo+ID5AQAo+ID4+ID4gLTIwMzAsMjYgKzIxNDMsNDIgQEAgaW50ZWxfZHBfY29tcHV0ZV9s aW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4qZW5jb2RlciwKPiA+PiA+ICAJCSAq IE5vdGUgdGhhdCB3ZSB1c2UgdGhlIG1heCBjbG9jayBhbmQgbGFuZSBjb3VudCBmb3IgZURQIDEu Mwo+ID5hbmQKPiA+PiA+ICAJCSAqIGVhcmxpZXIsIGFuZCBmYXN0IHZzLiB3aWRlIGlzIGlycmVs ZXZhbnQuCj4gPj4gPiAgCQkgKi8KPiA+PiA+IC0JCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5r X2NvbmZpZ19mYXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+PiA+IC0JCQkJCQkgICAgICAg JmxpbWl0cykpCj4gPj4gPiAtCQkJcmV0dXJuIGZhbHNlOwo+ID4+ID4gLQl9IGVsc2Ugewo+ID4+ ID4gKwkJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KGludGVsX2RwLCBw aXBlX2NvbmZpZywKPiA+PiA+ICsJCQkJCQkJJmxpbWl0cyk7Cj4gPj4gPiArCWVsc2UKPiA+PiA+ ICAJCS8qIE9wdGltaXplIGZvciBzbG93IGFuZCB3aWRlLiAqLwo+ID4+ID4gLQkJaWYgKCFpbnRl bF9kcF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ID4+ ID4gLQkJCQkJCSAgICAgICAmbGltaXRzKSkKPiA+PiA+ICsJCXJldCA9IGludGVsX2RwX2NvbXB1 dGVfbGlua19jb25maWdfd2lkZShpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gPj4gPiArCQkJCQkJ CSZsaW1pdHMpOwo+ID4+ID4gKwo+ID4+ID4gKwkvKiBlbmFibGUgY29tcHJlc3Npb24gaWYgdGhl IG1vZGUgZG9lc24ndCBmaXQgYXZhaWxhYmxlIEJXICovCj4gPj4gPiArCWlmICghcmV0KSB7Cj4g Pj4gPiArCQlpZiAoIWludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhpbnRlbF9kcCwgcGlwZV9j b25maWcsCj4gPj4gPiArCQkJCQkJICZsaW1pdHMpKQo+ID4+ID4gIAkJCXJldHVybiBmYWxzZTsK PiA+PiA+ICAJfQo+ID4+ID4KPiA+PiA+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAl ZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gPj4gPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9j b3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPj4gPiAtCQkgICAgICBwaXBlX2NvbmZp Zy0+cGlwZV9icHApOwo+ID4+ID4gKwlpZiAocGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJl c3Npb25fZW5hYmxlKSB7Cj4gPj4gPiArCQlEUk1fREVCVUdfS01TKCJEUCBsYW5lIGNvdW50ICVk IGNsb2NrICVkIElucHV0IGJwcCAlZAo+ID5Db21wcmVzc2VkIGJwcCAlZFxuIiwKPiA+PiA+ICsJ CQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ss Cj4gPj4gPiArCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4+ID4gKwkJCSAgICAg IHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKTsKPiA+PiA+Cj4gPj4gPiAt CURSTV9ERUJVR19LTVMoIkRQIGxpbmsgcmF0ZSByZXF1aXJlZCAlaSBhdmFpbGFibGUgJWlcbiIs Cj4gPj4gPiAtCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNy dGNfY2xvY2ssCj4gPj4gPiAtCQkJCQkgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCksCj4gPj4g PiAtCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr LAo+ID4+ID4gLQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4+ID4gKwkJ RFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwK PiA+PiA+ICsJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNy dGNfY2xvY2ssCj4gPj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0KPiA+PmRzY19wYXJhbXMu Y29tcHJlc3NlZF9icHApLAo+ID4+ID4gKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUo cGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+ bGFuZV9jb3VudCkpOwo+ID4+ID4gKwl9IGVsc2Ugewo+ID4+ID4gKwkJRFJNX0RFQlVHX0tNUygi RFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gPj4gPiArCQkJICAgICAgcGlw ZV9jb25maWctPmxhbmVfY291bnQsIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4+ID4gKwkJ CSAgICAgIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7Cj4gPj4gPgo+ID4+ID4gKwkJRFJNX0RFQlVH X0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwKPiA+PiA+ICsJ CQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ss Cj4gPj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ID4+ID4gKwkJCSAg ICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPj4g PiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4+ID4gKwl9Cj4gPj4g PiAgCXJldHVybiB0cnVlOwo+ID4+ID4gIH0KPiA+PiA+Cj4gPj4gPiBAQCAtMjEzMyw3ICsyMjYy LDkgQEAgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIKPiA+KmVu Y29kZXIsCj4gPj4gPiAgCQkJaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PQo+ID5J TlRFTF9CUk9BRENBU1RfUkdCX0xJTUlURUQ7Cj4gPj4gPiAgCX0KPiA+PiA+Cj4gPj4gPiAtCWlu dGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCBwaXBlX2NvbmZpZy0K PiA+PmxhbmVfY291bnQsCj4gPj4gPiArCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25m aWctPnBpcGVfYnBwLAo+ID4+ID4gKwkJCSAgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2VkX2JwcCwKPiA+PiA+ICsJCQkgICAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQs Cj4gPj4gPiAgCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4gPj4gPiAgCQkJ ICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4+ID4gIAkJCSAgICAgICAmcGlwZV9j b25maWctPmRwX21fbiwKPiA+PiA+IEBAIC0yMTQyLDcgKzIyNzMsNyBAQCBpbnRlbF9kcF9jb21w dXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rlcgo+ID4qZW5jb2RlciwKPiA+PiA+ICAJaWYg KGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVMTCAmJgo+ID4+ID4g IAkJZGV2X3ByaXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBPUlQpIHsKPiA+PiA+ ICAJCQlwaXBlX2NvbmZpZy0+aGFzX2RycnMgPSB0cnVlOwo+ID4+ID4gLQkJCWludGVsX2xpbmtf Y29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4+ID4gKwkJCWludGVsX2xpbmtf Y29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLAo+ID4+ID4gIAkJCQkJICAgICAg IHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LAo+ID4+ID4gIAkJCQkJICAgICAgIGludGVsX2Nvbm5l Y3Rvci0KPiA+PnBhbmVsLmRvd25jbG9ja19tb2RlLT5jbG9jaywKPiA+PiA+ICAJCQkJCSAgICAg ICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywgZGlmZiAtLWdpdAo+ID4+ID4gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9tc3QuYwo+ID4+ID4gaW5kZXggOGI3MWQ2NGViZDlkLi5lMDJjYWVkZDQ0M2MgMTAw NjQ0Cj4gPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+PiA+IEBAIC05 MCw3ICs5MCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QKPiA+aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+PiA+ICAJCX0KPiA+PiA+ICAJfQo+ID4+ ID4KPiA+PiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihicHAsIGxhbmVfY291bnQsCj4gPj4g PiArCWludGVsX2xpbmtfY29tcHV0ZV9tX24oYnBwLCAwLCBsYW5lX2NvdW50LAo+ID4+ID4gIAkJ CSAgICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4+ID4gIAkJCSAgICAgICBwaXBl X2NvbmZpZy0+cG9ydF9jbG9jaywKPiA+PiA+ICAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9t X24sCj4gPj4gPiAtLQo+ID4+ID4gMi4xOC4wCj4gPj4gPgo+ID4KPiA+LS0KPiA+VmlsbGUgU3ly asOkbMOkCj4gPkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=