From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 2/2] drm/i915: Introduce IS_GEN9_BC for Skylake and Kabylake. Date: Tue, 24 Jan 2017 10:37:49 +0200 Message-ID: <1485247069.2601.6.camel@gmail.com> References: <1485196357-30599-1-git-send-email-rodrigo.vivi@intel.com> <1485196357-30599-2-git-send-email-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pg0-x241.google.com (mail-pg0-x241.google.com [IPv6:2607:f8b0:400e:c05::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id C61456E0F4 for ; Tue, 24 Jan 2017 08:37:55 +0000 (UTC) Received: by mail-pg0-x241.google.com with SMTP id 194so16120595pgd.0 for ; Tue, 24 Jan 2017 00:37:55 -0800 (PST) In-Reply-To: <1485196357-30599-2-git-send-email-rodrigo.vivi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi , intel-gfx@lists.freedesktop.org Cc: Jani Nikula List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE3LTAxLTIzIGF0IDEwOjMyIC0wODAwLCBSb2RyaWdvIFZpdmkgd3JvdGU6Cj4g QWxvbmcgd2l0aCBHTEsgaXQgd2FzIGludHJvZHVjZWQgdGhlIC5pc19scCBhbmQgSVNfR0VOOV9M UC4KPiBTbywgZm9sbG93aW5nIHRoZSBzYW1lIHNpbXBsaWZpY2F0aW9uIHN0YW5kYXJkIHdlIGNh bgo+IHB1dCBTa3lsYWtlIGFuZCBLYWJ5bGFrZSB1bmRlciB0aGUgc2FtZSBidWNrZXQgZm9yIG1v c3QKPiBvZiB0aGUgdGhpbmdzLgo+IAo+IFNvIGxldCdzIGFkZCB0aGUgSVNfR0VOOV9CQyBmb3Ig IkJpZyBDb3JlIiAobm9uIEF0b20gYmFzZWQKPiBwbGF0Zm9ybXMpLgo+IAo+IFRoZSBpOTE1X2Ry di5jIHdhcyBsZXQgb3V0IG9mIHRoaXMgcGF0Y2ggb24gcHVycG9zZQo+IGJlY2F1c2UgdGhhdCBp cyByZWFsbHkgYSBkZWNpc2lvbiBwZXIgcGxhdGZvcm0sIGp1c3QgbGlrZQo+IG90aGVyIGNhc2Vz IHdoZXJlIElTX0tBQllMQUtFIGlzIGRpZmZlcmVudCBmcm9tIElTX1NLWUxBS0UuCj4gCj4gdjI6 IGZpeCBjb25mbGljdCB3aXRoIElTX0xQIGFuZCAzIG5ldyBjYXNlcyBmb3IgdGhpcwo+IMKgwqDC oMKgYmlnIGNvcmUgYnVja2V0Ogo+IMKgwqDCoMKgLSBpbnRlbF9kZGkuYzogaW50ZWxfZGRpX2dl dF9saW5rX2RwbGwKPiDCoMKgwqDCoC0gaW50ZWxfZmJjLmM6IGZpbmRfY29tcHJlc3Npb25fdGhy ZXNob2xkCj4gwqDCoMKgwqAtIGk5MTVfZ2VtX2d0dC5jOiBndHRfd3JpdGVfd29ya2Fyb3VuZHMK PiAKPiBDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgo+IENj OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWly YUBpbnRlbC5jb20+Cj4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4g U2lnbmVkLW9mZi1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+IFJl dmlld2VkLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xpdmVpcmEgPGNvbnNlbHZhbjJAZ21haWwu Y29tPgo+IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmPCoMKgwqDC oMKgfCAxNyArKysrKysrLS0tLS0tLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMyArKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5jwqDCoMKgwqDCoHzCoMKgMiArLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXVkaW8uY8KgwqDCoMKgwqDCoHzCoMKgMiArLQo+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3IuY8KgwqDCoMKgwqDCoHzCoMKgNCArKy0tCj4gwqBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuY8KgwqDCoMKgwqDCoMKgwqB8IDIwICsrKysrKysrKystLS0t LS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmPCoMKgwqDCoHwg MTIgKysrKysrLS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jwqDCoMKg wqDCoMKgwqDCoMKgfMKgwqA0ICsrLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw bGxfbWdyLmPCoMKgwqB8wqDCoDIgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi Yy5jwqDCoMKgwqDCoMKgwqDCoHzCoMKgMyArLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2kyYy5jwqDCoMKgwqDCoMKgwqDCoHzCoMKgNCArKy0tCj4gwqBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9tb2NzLmPCoMKgwqDCoMKgwqDCoHzCoMKgMiArLQo+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uY8KgwqDCoMKgwqDCoMKgwqDCoHwgMTMgKysrKysrLS0tLS0tLQo+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgMTAgKysrKystLS0t LQo+IMKgMTQgZmlsZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgNTEgZGVsZXRpb25zKC0p Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IGZhNjlkNzIuLjYz YjZhM2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0xMjI0LDIx ICsxMjI0LDE4IEBAIHN0YXRpYyBpbnQgaTkxNV9mcmVxdWVuY3lfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sCj4gdm9pZCAqdW51c2VkKQo+IMKgCj4gwqAJCW1heF9mcmVxID0gKElTX0dFTjlfTFAo ZGV2X3ByaXYpID8gcnBfc3RhdGVfY2FwID4+IDAgOgo+IMKgCQkJwqDCoMKgwqBycF9zdGF0ZV9j YXAgPj4gMTYpICYgMHhmZjsKPiAtCQltYXhfZnJlcSAqPSAoSVNfU0tZTEFLRShkZXZfcHJpdikg fHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpID8KPiAtCQkJwqDCoMKgwqDCoEdFTjlfRlJFUV9TQ0FM RVIgOiAxKTsKPiArCQltYXhfZnJlcSAqPSAoSVNfR0VOOV9CQyhkZXZfcHJpdikgPyBHRU45X0ZS RVFfU0NBTEVSIDogMSk7Cj4gwqAJCXNlcV9wcmludGYobSwgIkxvd2VzdCAoUlBOKSBmcmVxdWVu Y3k6ICVkTUh6XG4iLAo+IMKgCQkJwqDCoMKgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9m cmVxKSk7Cj4gwqAKPiDCoAkJbWF4X2ZyZXEgPSAocnBfc3RhdGVfY2FwICYgMHhmZjAwKSA+PiA4 Owo+IC0JCW1heF9mcmVxICo9IChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShk ZXZfcHJpdikgPwo+IC0JCQnCoMKgwqDCoMKgR0VOOV9GUkVRX1NDQUxFUiA6IDEpOwo+ICsJCW1h eF9mcmVxICo9IChJU19HRU45X0JDKGRldl9wcml2KSA/IEdFTjlfRlJFUV9TQ0FMRVIgOiAxKTsK PiDCoAkJc2VxX3ByaW50ZihtLCAiTm9taW5hbCAoUlAxKSBmcmVxdWVuY3k6ICVkTUh6XG4iLAo+ IMKgCQkJwqDCoMKgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9mcmVxKSk7Cj4gwqAKPiDC oAkJbWF4X2ZyZXEgPSAoSVNfR0VOOV9MUChkZXZfcHJpdikgPyBycF9zdGF0ZV9jYXAgPj4gMTYg Ogo+IMKgCQkJwqDCoMKgwqBycF9zdGF0ZV9jYXAgPj4gMCkgJiAweGZmOwo+IC0JCW1heF9mcmVx ICo9IChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikgPwo+IC0J CQnCoMKgwqDCoMKgR0VOOV9GUkVRX1NDQUxFUiA6IDEpOwo+ICsJCW1heF9mcmVxICo9IChJU19H RU45X0JDKGRldl9wcml2KSA/IEdFTjlfRlJFUV9TQ0FMRVIgOiAxKTsKPiDCoAkJc2VxX3ByaW50 ZihtLCAiTWF4IG5vbi1vdmVyY2xvY2tlZCAoUlAwKSBmcmVxdWVuY3k6ICVkTUh6XG4iLAo+IMKg CQkJwqDCoMKgaW50ZWxfZ3B1X2ZyZXEoZGV2X3ByaXYsIG1heF9mcmVxKSk7Cj4gwqAJCXNlcV9w cmludGYobSwgIk1heCBvdmVyY2xvY2tlZCBmcmVxdWVuY3k6ICVkTUh6XG4iLAo+IEBAIC0xODE0 LDcgKzE4MTEsNyBAQCBzdGF0aWMgaW50IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZAo+ICp1bnVzZWQpCj4gwqAJaWYgKHJldCkKPiDCoAkJZ290byBvdXQ7Cj4g wqAKPiAtCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikp IHsKPiArCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewo+IMKgCQkvKiBDb252ZXJ0IEdUIGZy ZXF1ZW5jeSB0byA1MCBIWiB1bml0cyAqLwo+IMKgCQltaW5fZ3B1X2ZyZXEgPQo+IMKgCQkJZGV2 X3ByaXYtPnJwcy5taW5fZnJlcV9zb2Z0bGltaXQgLyBHRU45X0ZSRVFfU0NBTEVSOwo+IEBAIC0x ODM0LDggKzE4MzEsOCBAQCBzdGF0aWMgaW50IGk5MTVfcmluZ19mcmVxX3RhYmxlKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZAo+ICp1bnVzZWQpCj4gwqAJCQkJwqDCoMKgwqDCoMKgwqAmaWFfZnJl cSk7Cj4gwqAJCXNlcV9wcmludGYobSwgIiVkXHRcdCVkXHRcdFx0XHQlZFxuIiwKPiDCoAkJCcKg wqDCoGludGVsX2dwdV9mcmVxKGRldl9wcml2LCAoZ3B1X2ZyZXEgKgo+IC0JCQkJKElTX1NLWUxB S0UoZGV2X3ByaXYpIHx8Cj4gSVNfS0FCWUxBS0UoZGV2X3ByaXYpID8KPiAtCQkJCcKgR0VOOV9G UkVRX1NDQUxFUiA6IDEpKSksCj4gKwkJCQkJCcKgwqDCoMKgwqAoSVNfR0VOOV9CQyhkZXZfcHJp dikgPwo+ICsJCQkJCQnCoMKgwqDCoMKgwqBHRU45X0ZSRVFfU0NBTEVSIDoKPiAxKSkpLAo+IMKg CQkJwqDCoMKgKChpYV9mcmVxID4+IDApICYgMHhmZikgKiAxMDAsCj4gwqAJCQnCoMKgwqAoKGlh X2ZyZXEgPj4gOCkgJiAweGZmKSAqIDEwMCk7Cj4gwqAJfQo+IEBAIC00NDQ0LDcgKzQ0NDEsNyBA QCBzdGF0aWMgdm9pZCBnZW45X3NzZXVfZGV2aWNlX3N0YXR1cyhzdHJ1Y3QKPiBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiDCoAo+IMKgCQlzc2V1LT5zbGljZV9tYXNrIHw9IEJJVChzKTsK PiDCoAo+IC0JCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJp dikpCj4gKwkJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+IMKgCQkJc3NldS0+c3Vic2xpY2Vf bWFzayA9Cj4gwqAJCQkJSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuc3Vic2xpY2VfbWFzazsK PiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDI0NDYyODAuLmEzM2MxMTUgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjc1Niw4ICsyNzU2LDkgQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKl9fc2dfbmV4dChzdHJ1Y3QKPiBzY2F0dGVybGlz dCAqc2cpCj4gwqAjZGVmaW5lIElTX0dFTjgoZGV2X3ByaXYpCSghISgoZGV2X3ByaXYpLT5pbmZv Lmdlbl9tYXNrICYgQklUKDcpKSkKPiDCoCNkZWZpbmUgSVNfR0VOOShkZXZfcHJpdikJKCEhKChk ZXZfcHJpdiktPmluZm8uZ2VuX21hc2sgJiBCSVQoOCkpKQo+IMKgCj4gLSNkZWZpbmUgSVNfR0VO OV9MUChkZXZfcHJpdikJKElTX0dFTjkoZGV2X3ByaXYpICYmCj4gSU5URUxfSU5GTyhkZXZfcHJp diktPmlzX2xwKQo+IMKgI2RlZmluZSBJU19MUChkZXZfcHJpdikJKElOVEVMX0lORk8oZGV2X3By aXYpLT5pc19scCkKPiArI2RlZmluZSBJU19HRU45X0xQKGRldl9wcml2KQkoSVNfR0VOOShkZXZf cHJpdikgJiYgSVNfTFAoZGV2X3ByaXYpKQo+ICsjZGVmaW5lIElTX0dFTjlfQkMoZGV2X3ByaXYp CShJU19HRU45KGRldl9wcml2KSAmJiAhSVNfTFAoZGV2X3ByaXYpKQo+IMKgCj4gwqAjZGVmaW5l IEVOR0lORV9NQVNLKGlkKQlCSVQoaWQpCj4gwqAjZGVmaW5lIFJFTkRFUl9SSU5HCUVOR0lORV9N QVNLKFJDUykKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0 LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggY2MwYmI3 Yi4uNDA2ODVjNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gQEAgLTIx ODksNyArMjE4OSw3IEBAIHN0YXRpYyB2b2lkIGd0dF93cml0ZV93b3JrYXJvdW5kcyhzdHJ1Y3QK PiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAkJSTkxNV9XUklURShHRU44X0wzX0xS QV8xX0dQR1BVLAo+IEdFTjhfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9CRFcpOwo+IMKg CWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+IMKgCQlJOTE1X1dSSVRFKEdFTjhf TDNfTFJBXzFfR1BHUFUsCj4gR0VOOF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0NIVik7 Cj4gLQllbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJp dikpCj4gKwllbHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSkKPiDCoAkJSTkxNV9XUklURShH RU44X0wzX0xSQV8xX0dQR1BVLAo+IEdFTjlfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9T S0wpOwo+IMKgCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+IMKgCQlJOTE1X1dSSVRF KEdFTjhfTDNfTFJBXzFfR1BHUFUsCj4gR0VOOV9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVF X0JYVCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMK PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiBpbmRleCAxNmMyMDI3Li5j ZDlkMjA3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gQEAgLTcwMiw3ICs3 MDIsNyBAQCBzdGF0aWMgdm9pZAo+IGk5MTVfYXVkaW9fY29tcG9uZW50X2NvZGVjX3dha2Vfb3Zl cnJpZGUoc3RydWN0IGRldmljZSAqa2RldiwKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoa2Rldik7Cj4gwqAJdTMyIHRtcDsKPiDCoAo+IC0JaWYg KCFJU19TS1lMQUtFKGRldl9wcml2KSAmJiAhSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYg KCFJU19HRU45X0JDKGRldl9wcml2KSkKPiDCoAkJcmV0dXJuOwo+IMKgCj4gwqAJaTkxNV9hdWRp b19jb21wb25lbnRfZ2V0X3Bvd2VyKGtkZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xv ci5jCj4gaW5kZXggZDgxMjMyYi4uMzQ5NTJkMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y29sb3IuYwo+IEBAIC01MzYsOCArNTM2LDggQEAgdm9pZCBpbnRlbF9jb2xvcl9pbml0KHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKPiDCoAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7 Cj4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfY3NjX21hdHJpeCA9IGk5eHhfbG9hZF9jc2Nf bWF0cml4Owo+IMKgCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBoYXN3ZWxsX2xvYWRf bHV0czsKPiAtCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJU19TS1lMQUtF KGRldl9wcml2KSB8fAo+IC0JCcKgwqDCoElTX0JST1hUT04oZGV2X3ByaXYpIHx8IElTX0tBQllM QUtFKGRldl9wcml2KSkgewo+ICsJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8 IElTX0dFTjlfQkMoZGV2X3ByaXYpIHx8Cj4gKwkJwqDCoMKgSVNfQlJPWFRPTihkZXZfcHJpdikp IHsKPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9jc2NfbWF0cml4ID0gaTl4eF9sb2FkX2Nz Y19tYXRyaXg7Cj4gwqAJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyA9IGJyb2Fkd2VsbF9s b2FkX2x1dHM7Cj4gwqAJfSBlbHNlIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5k ZXggNjZiMzY3ZC4uOWE5YTY3MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAg LTQ0NSw3ICs0NDUsNyBAQCBzdGF0aWMgaW50IGludGVsX2RkaV9oZG1pX2xldmVsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2LCBlbnVtIHBvcnQgcG9yCj4gwqAJaWYgKElTX0dF TjlfTFAoZGV2X3ByaXYpKQo+IMKgCQlyZXR1cm4gaGRtaV9sZXZlbDsKPiDCoAo+IC0JaWYgKElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ICsJaWYgKElT X0dFTjlfQkMoZGV2X3ByaXYpKSB7Cj4gwqAJCXNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2X3By aXYsICZuX2hkbWlfZW50cmllcyk7Cj4gwqAJCWhkbWlfZGVmYXVsdF9lbnRyeSA9IDg7Cj4gwqAJ fSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7Cj4gQEAgLTUxOCw3ICs1MTgsNyBA QCB2b2lkIGludGVsX3ByZXBhcmVfZHBfZGRpX2J1ZmZlcnMoc3RydWN0IGludGVsX2VuY29kZXIK PiAqZW5jb2RlcikKPiDCoAkJbl9kcF9lbnRyaWVzID0gQVJSQVlfU0laRShiZHdfZGRpX3RyYW5z bGF0aW9uc19kcCk7Cj4gwqAJfQo+IMKgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwg SVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsK PiDCoAkJLyogSWYgd2UncmUgYm9vc3RpbmcgdGhlIGN1cnJlbnQsIHNldCBiaXQgMzEgb2YgdHJh bnMxICovCj4gwqAJCWlmIChkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF0uZHBfYm9v c3RfbGV2ZWwpCj4gwqAJCQlpYm9vc3RfYml0ID0gRERJX0JVRl9CQUxBTkNFX0xFR19FTkFCTEU7 Cj4gQEAgLTU3Miw3ICs1NzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVwYXJlX2hkbWlfZGRp X2J1ZmZlcnMoc3RydWN0Cj4gaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiDCoAo+IMKgCWhkbWlf bGV2ZWwgPSBpbnRlbF9kZGlfaGRtaV9sZXZlbChkZXZfcHJpdiwgcG9ydCk7Cj4gwqAKPiAtCWlm IChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiArCWlm IChJU19HRU45X0JDKGRldl9wcml2KSkgewo+IMKgCQlkZGlfdHJhbnNsYXRpb25zX2hkbWkgPSBz a2xfZ2V0X2J1Zl90cmFuc19oZG1pKGRldl9wcml2LAo+ICZuX2hkbWlfZW50cmllcyk7Cj4gwqAK PiDCoAkJLyogSWYgd2UncmUgYm9vc3RpbmcgdGhlIGN1cnJlbnQsIHNldCBiaXQgMzEgb2YgdHJh bnMxICovCj4gQEAgLTEwODksNyArMTA4OSw3IEBAIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiDCoAo+IMKgCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpIDw9IDgpCj4gwqAJCWhzd19kZGlfY2xvY2tfZ2V0KGVuY29kZXIsIHBpcGVfY29uZmln KTsKPiAtCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9w cml2KSkKPiArCWVsc2UgaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+IMKgCQlza2xfZGRpX2Ns b2NrX2dldChlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gwqAJZWxzZSBpZiAoSVNfR0VOOV9MUChk ZXZfcHJpdikpCj4gwqAJCWJ4dF9kZGlfY2xvY2tfZ2V0KGVuY29kZXIsIHBpcGVfY29uZmlnKTsK PiBAQCAtMTE1MCw3ICsxMTUwLDcgQEAgYm9vbCBpbnRlbF9kZGlfcGxsX3NlbGVjdChzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlciA9Cj4gwqAJCWludGVsX2RkaV9nZXRfY3J0Y19uZXdfZW5jb2RlcihjcnRjX3N0YXRl KTsKPiDCoAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9w cml2KSkKPiArCWlmIChJU19HRU45X0JDKGRldl9wcml2KSkKPiDCoAkJcmV0dXJuIHNrbF9kZGlf cGxsX3NlbGVjdChpbnRlbF9jcnRjLCBjcnRjX3N0YXRlLAo+IMKgCQkJCQnCoMKgaW50ZWxfZW5j b2Rlcik7Cj4gwqAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gQEAgLTE2NDEsNyAr MTY0MSw3IEBAIHVpbnQzMl90IGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCj4gwqAKPiDCoAlsZXZlbCA9IHRyYW5zbGF0ZV9zaWduYWxfbGV2ZWwoc2lnbmFsX2xl dmVscyk7Cj4gwqAKPiAtCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShk ZXZfcHJpdikpCj4gKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCj4gwqAJCXNrbF9kZGlfc2V0 X2lib29zdChlbmNvZGVyLCBsZXZlbCk7Cj4gwqAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJp dikpCj4gwqAJCWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldl9wcml2LCBsZXZlbCwgcG9ydCwg ZW5jb2Rlci0KPiA+dHlwZSk7Cj4gQEAgLTE2NTgsNyArMTY1OCw3IEBAIHZvaWQgaW50ZWxfZGRp X2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gwqAJaWYgKFdBUk5f T04oIXBsbCkpCj4gwqAJCXJldHVybjsKPiDCoAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYp IHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ICsJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYp KSB7Cj4gwqAJCXVpbnQzMl90IHZhbDsKPiDCoAo+IMKgCQkvKiBEREkgLT4gUExMIG1hcHBpbmfC oMKgKi8KPiBAQCAtMTcxNCw3ICsxNzE0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9l bmFibGVfaGRtaShzdHJ1Y3QKPiBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+IMKgCWludGVsX2Rw X2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoaW50ZWxfaGRtaSwgdHJ1ZSk7Cj4gwqAJaW50ZWxf ZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiDCoAlpbnRlbF9wcmVwYXJlX2hkbWlfZGRp X2J1ZmZlcnMoZW5jb2Rlcik7Cj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FC WUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+IMKgCQlza2xf ZGRpX3NldF9pYm9vc3QoZW5jb2RlciwgbGV2ZWwpOwo+IMKgCWVsc2UgaWYgKElTX0dFTjlfTFAo ZGV2X3ByaXYpKQo+IMKgCQlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXZfcHJpdiwgbGV2ZWws IHBvcnQsCj4gQEAgLTE3ODQsNyArMTc4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0 X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIKPiAqaW50ZWxfZW5jb2RlciwKPiDCoAkJaW50 ZWxfZWRwX3BhbmVsX29mZihpbnRlbF9kcCk7Cj4gwqAJfQo+IMKgCj4gLQlpZiAoSVNfU0tZTEFL RShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjlfQkMo ZGV2X3ByaXYpKQo+IMKgCQlJOTE1X1dSSVRFKERQTExfQ1RSTDIsIChJOTE1X1JFQUQoRFBMTF9D VFJMMikgfAo+IMKgCQkJCQlEUExMX0NUUkwyX0RESV9DTEtfT0ZGKHBvcnQpKSk7Cj4gwqAJZWxz ZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDkpCj4gQEAgLTIxNTcsNyArMjE1Nyw3IEBAIHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCj4gwqAJCQlwbGwtPnN0YXRlID0gdG1wX3BsbF9zdGF0 ZTsKPiDCoAkJCXJldHVybiBOVUxMOwo+IMKgCQl9Cj4gLQl9IGVsc2UgaWYgKElTX1NLWUxBS0Uo ZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ICsJfSBlbHNlIGlmIChJU19H RU45X0JDKGRldl9wcml2KSkgewo+IMKgCQlwbGwgPSBza2xfZmluZF9saW5rX3BsbChkZXZfcHJp diwgY2xvY2spOwo+IMKgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJP QURXRUxMKGRldl9wcml2KSkgewo+IMKgCQlwbGwgPSBoc3dfZGRpX2RwX2dldF9kcGxsKGVuY29k ZXIsIGNsb2NrKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAw YmY4ZTFiLi5lMTZhMzBlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ IEBAIC01ODAwLDcgKzU4MDAsNyBAQCBzdGF0aWMgaW50IGludGVsX2NvbXB1dGVfbWF4X2RvdGNs ayhzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAo+IMKgc3RhdGljIHZv aWQgaW50ZWxfdXBkYXRlX21heF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gwqB7Cj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2 X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKPiDCoAkJdTMyIGxpbWl0 ID0gSTkxNV9SRUFEKFNLTF9ERlNNKSAmIFNLTF9ERlNNX0NEQ0xLX0xJTUlUX01BU0s7Cj4gwqAJ CWludCBtYXhfY2RjbGssIHZjbzsKPiDCoAo+IEBAIC0xMDY3Myw3ICsxMDY3Myw3IEBAIHN0YXRp YyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdAo+IGludGVsX2NydGMgKmNy dGMsCj4gwqAKPiDCoAlwb3J0ID0gKHRtcCAmIFRSQU5TX0RESV9QT1JUX01BU0spID4+IFRSQU5T X0RESV9QT1JUX1NISUZUOwo+IMKgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNf S0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+IMKgCQlz a3lsYWtlX2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7Cj4gwqAJZWxz ZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gwqAJCWJ4dF9nZXRfZGRpX3BsbChkZXZfcHJp diwgcG9ydCwgcGlwZV9jb25maWcpOwo+IEBAIC0xNTY3NSw3ICsxNTY3NSw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gwqAJCcKgKi8KPiDCoAkJZm91bmQgPSBJOTE1X1JFQUQoRERJX0JVRl9DVEwoUE9SVF9B KSkgJgo+IERESV9JTklUX0RJU1BMQVlfREVURUNURUQ7Cj4gwqAJCS8qIFdhSWdub3JlRERJQVN0 cmFwOiBza2wgKi8KPiAtCQlpZiAoZm91bmQgfHwgSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNf S0FCWUxBS0UoZGV2X3ByaXYpKQo+ICsJCWlmIChmb3VuZCB8fCBJU19HRU45X0JDKGRldl9wcml2 KSkKPiDCoAkJCWludGVsX2RkaV9pbml0KGRldl9wcml2LCBQT1JUX0EpOwo+IMKgCj4gwqAJCS8q IERESSBCLCBDIGFuZCBEIGRldGVjdGlvbiBpcyBpbmRpY2F0ZWQgYnkgdGhlIFNGVVNFX1NUUkFQ Cj4gQEAgLTE1NjkxLDcgKzE1NjkxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0 cyhzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAkJLyoKPiDCoAkJwqAq IE9uIFNLTCB3ZSBkb24ndCBoYXZlIGEgd2F5IHRvIGRldGVjdCBEREktRSBzbyB3ZSByZWx5IG9u Cj4gVkJULgo+IMKgCQnCoCovCj4gLQkJaWYgKChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19L QUJZTEFLRShkZXZfcHJpdikpICYmCj4gKwkJaWYgKChJU19HRU45X0JDKGRldl9wcml2KSkgJiYK Ck5vIG5lZWQgZm9yIHRoZSBleHRyYSBwYXJlbnRoZXNpcyBhcm91bmQgSVNfR0VOX0JDKCkuCgo+ IMKgCQnCoMKgwqDCoChkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bUE9SVF9FXS5zdXBwb3J0 c19kcCB8fAo+IMKgCQnCoMKgwqDCoMKgZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRf RV0uc3VwcG9ydHNfZHZpIHx8Cj4gwqAJCcKgwqDCoMKgwqBkZXZfcHJpdi0+dmJ0LmRkaV9wb3J0 X2luZm9bUE9SVF9FXS5zdXBwb3J0c19oZG1pKSkKPiBAQCAtMTYxOTAsNyArMTYxOTAsNyBAQCB2 b2lkIGludGVsX2luaXRfZGlzcGxheV9ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpk ZXZfcHJpdikKPiDCoAl9Cj4gwqAKPiDCoAkvKiBSZXR1cm5zIHRoZSBjb3JlIGRpc3BsYXkgY2xv Y2sgc3BlZWQgKi8KPiAtCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShk ZXZfcHJpdikpCj4gKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCj4gwqAJCWRldl9wcml2LT5k aXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkID0KPiDCoAkJCXNreWxha2VfZ2V0X2Rpc3Bs YXlfY2xvY2tfc3BlZWQ7Cj4gwqAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gQEAg LTE2MjcxLDcgKzE2MjcxLDcgQEAgdm9pZCBpbnRlbF9pbml0X2Rpc3BsYXlfaG9va3Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUKPiAqZGV2X3ByaXYpCj4gwqAJCQlieHRfbW9kZXNldF9jb21taXRf Y2RjbGs7Cj4gwqAJCWRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsayA9Cj4gwqAJ CQlieHRfbW9kZXNldF9jYWxjX2NkY2xrOwo+IC0JfSBlbHNlIGlmIChJU19TS1lMQUtFKGRldl9w cml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiArCX0gZWxzZSBpZiAoSVNfR0VOOV9C QyhkZXZfcHJpdikpIHsKPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jb21taXRfY2Rj bGsgPQo+IMKgCQkJc2tsX21vZGVzZXRfY29tbWl0X2NkY2xrOwo+IMKgCQlkZXZfcHJpdi0+ZGlz cGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsgPQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4 IGU4MGQ2MjAuLjFjYWY2ZmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtMjI2 LDcgKzIyNiw3IEBAIHN0YXRpYyB1OCBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChzdHJ1Y3QgaW50 ZWxfZHAKPiAqaW50ZWxfZHApCj4gwqAJaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKSB7Cj4gwqAJ CSpzb3VyY2VfcmF0ZXMgPSBieHRfcmF0ZXM7Cj4gwqAJCXNpemUgPSBBUlJBWV9TSVpFKGJ4dF9y YXRlcyk7Cj4gLQl9IGVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtF KGRldl9wcml2KSkgewo+ICsJfSBlbHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewo+IMKg CQkqc291cmNlX3JhdGVzID0gc2tsX3JhdGVzOwo+IMKgCQlzaXplID0gQVJSQVlfU0laRShza2xf cmF0ZXMpOwo+IMKgCX0gZWxzZSB7Cj4gQEAgLTE3NTIsNyArMTc1Miw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwCj4gKmludGVsX2RwLAo+IMKgCcKg KiBjbG9jayBmb3IgZURQLiBUaGlzIHdpbGwgYWZmZWN0IGNkY2xrIGFzIHdlbGwuCj4gwqAJwqAq Lwo+IMKgCWlmIChpc19lZHAoaW50ZWxfZHApICYmCj4gLQnCoMKgwqDCoChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpKSB7Cj4gKwnCoMKgwqDCoChJU19HRU45 X0JDKGRldl9wcml2KSkpIHsKCkkgdGhpbmsgdGhpcyBzaG91bGQgZml0IGFsbCBpbiBvbmUgbGlu ZSBub3c6CgoJaWYgKGlzX2VkcChpbnRlbF9kcCkgJiYgSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsK Cj4gwqAJCWludCB2Y287Cj4gwqAKPiDCoAkJc3dpdGNoIChwaXBlX2NvbmZpZy0+cG9ydF9jbG9j ayAvIDIpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IGluZGV4IGM5 MmEyNTUuLjM2OGVmZjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBsbF9tZ3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMK PiBAQCAtMjAxNSw3ICsyMDE1LDcgQEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gwqAJY29uc3Qgc3RydWN0IGRwbGxfaW5mbyAqZHBsbF9pbmZv Owo+IMKgCWludCBpOwo+IMKgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FC WUxBS0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+IMKgCQlkcGxs X21nciA9ICZza2xfcGxsX21ncjsKPiDCoAllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkK PiDCoAkJZHBsbF9tZ3IgPSAmYnh0X3BsbF9tZ3I7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMu Ywo+IGluZGV4IDg5ZmU1YzguLjUxNTg1MDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZmJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMu Ywo+IEBAIC01MzcsOCArNTM3LDcgQEAgc3RhdGljIGludCBmaW5kX2NvbXByZXNzaW9uX3RocmVz aG9sZChzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAnCoCogcmVzZXJ2 ZWQgcmFuZ2Ugc2l6ZSwgc28gaXQgYWx3YXlzIGFzc3VtZXMgdGhlIG1heGltdW0gKDhtYikgaXMK PiB1c2VkLgo+IMKgCcKgKiBJZiB3ZSBlbmFibGUgRkJDIHVzaW5nIGEgQ0ZCIG9uIHRoYXQgbWVt b3J5IHJhbmdlIHdlJ2xsIGdldCBGSUZPCj4gwqAJwqAqIHVuZGVycnVucywgZXZlbiBpZiB0aGF0 IHJhbmdlIGlzIG5vdCByZXNlcnZlZCBieSB0aGUgQklPUy4gKi8KPiAtCWlmIChJU19CUk9BRFdF TEwoZGV2X3ByaXYpIHx8Cj4gLQnCoMKgwqDCoElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tB QllMQUtFKGRldl9wcml2KSkKPiArCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX0dF TjlfQkMoZGV2X3ByaXYpKQo+IMKgCQllbmQgPSBnZ3R0LT5zdG9sZW5fc2l6ZSAtIDggKiAxMDI0 ICogMTAyNDsKPiDCoAllbHNlCj4gwqAJCWVuZCA9IFU2NF9NQVg7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9pMmMuYwo+IGluZGV4IGJjZTFiYTguLmI2NDAxZTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9pMmMuYwo+IEBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ21idXNf cGluICpnZXRfZ21idXNfcGluKHN0cnVjdAo+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ IMKgewo+IMKgCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiDCoAkJcmV0dXJuICZnbWJ1c19w aW5zX2J4dFtwaW5dOwo+IC0JZWxzZSBpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FC WUxBS0UoZGV2X3ByaXYpKQo+ICsJZWxzZSBpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCj4gwqAJ CXJldHVybiAmZ21idXNfcGluc19za2xbcGluXTsKPiDCoAllbHNlIGlmIChJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQo+IMKgCQlyZXR1cm4gJmdtYnVzX3BpbnNfYmR3W3Bpbl07Cj4gQEAgLTg5LDcg Kzg5LDcgQEAgYm9vbCBpbnRlbF9nbWJ1c19pc192YWxpZF9waW4oc3RydWN0IGRybV9pOTE1X3By aXZhdGUKPiAqZGV2X3ByaXYsCj4gwqAKPiDCoAlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4g wqAJCXNpemUgPSBBUlJBWV9TSVpFKGdtYnVzX3BpbnNfYnh0KTsKPiAtCWVsc2UgaWYgKElTX1NL WUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKPiArCWVsc2UgaWYgKElT X0dFTjlfQkMoZGV2X3ByaXYpKQo+IMKgCQlzaXplID0gQVJSQVlfU0laRShnbWJ1c19waW5zX3Nr bCk7Cj4gwqAJZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiDCoAkJc2l6ZSA9IEFS UkFZX1NJWkUoZ21idXNfcGluc19iZHcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9tb2NzLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYwo+ IGluZGV4IGM3ODdmYzQuLjhmOThmYzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbW9jcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5j Cj4gQEAgLTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgYm9vbCBnZXRfbW9jc19zZXR0aW5ncyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdiwKPiDCoHsKPiDCoAlib29sIHJlc3VsdCA9 IGZhbHNlOwo+IMKgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKPiDCoAkJdGFibGUt PnNpemXCoMKgPSBBUlJBWV9TSVpFKHNreWxha2VfbW9jc190YWJsZSk7Cj4gwqAJCXRhYmxlLT50 YWJsZSA9IHNreWxha2VfbW9jc190YWJsZTsKPiDCoAkJcmVzdWx0ID0gdHJ1ZTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPiBpbmRleCAyNDk2MjNkLi5kNGRiMTRiIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4gQEAgLTI4OTUsOCArMjg5NSw3IEBAIHN0YXRpYyBib29sIHNrbF9uZWVk c19tZW1vcnlfYndfd2Eoc3RydWN0Cj4gaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiDCoHsK PiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5i YXNlLmRldik7Cj4gwqAKPiAtCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19CUk9YVE9O KGRldl9wcml2KSB8fAo+IC0JwqDCoMKgwqBJU19LQUJZTEFLRShkZXZfcHJpdikpCj4gKwlpZiAo SVNfR0VOOV9CQyhkZXZfcHJpdikgfHwgSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gwqAJCXJldHVy biB0cnVlOwo+IMKgCj4gwqAJcmV0dXJuIGZhbHNlOwo+IEBAIC01Mjk0LDcgKzUyOTMsNyBAQCBz dGF0aWMgdm9pZCBnZW42X2luaXRfcnBzX2ZyZXF1ZW5jaWVzKHN0cnVjdAo+IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+IMKgCj4gwqAJZGV2X3ByaXYtPnJwcy5lZmZpY2llbnRfZnJlcSA9 IGRldl9wcml2LT5ycHMucnAxX2ZyZXE7Cj4gwqAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8 IElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwKPiAtCcKgwqDCoMKgSVNfU0tZTEFLRShkZXZfcHJp dikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwnCoMKgwqDCoElTX0dFTjlfQkMoZGV2 X3ByaXYpKSB7Cj4gwqAJCXUzMiBkZGNjX3N0YXR1cyA9IDA7Cj4gwqAKPiDCoAkJaWYgKHNhbmR5 YnJpZGdlX3Bjb2RlX3JlYWQoZGV2X3ByaXYsCj4gQEAgLTUzMDcsNyArNTMwNiw3IEBAIHN0YXRp YyB2b2lkIGdlbjZfaW5pdF9ycHNfZnJlcXVlbmNpZXMoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gwqAJCQkJCWRldl9wcml2LT5ycHMubWF4X2ZyZXEpOwo+IMKgCX0KPiDC oAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkg ewo+ICsJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKSB7Cj4gwqAJCS8qIFN0b3JlIHRoZSBmcmVx dWVuY3kgdmFsdWVzIGluIDE2LjY2IE1IWiB1bml0cywgd2hpY2ggaXMKPiDCoAkJwqAqIHRoZSBu YXR1cmFsIGhhcmR3YXJlIHVuaXQgZm9yIFNLTAo+IMKgCQnCoCovCj4gQEAgLTU2MzcsNyArNTYz Niw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfdXBkYXRlX3JpbmdfZnJlcShzdHJ1Y3QKPiBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAkvKiBjb252ZXJ0IEREUiBmcmVxdWVuY3kgZnJvbSB1 bml0cyBvZiAyNjYuNk1IeiB0byBiYW5kd2lkdGggKi8KPiDCoAltaW5fcmluZ19mcmVxID0gbXVs dF9mcmFjKG1pbl9yaW5nX2ZyZXEsIDgsIDMpOwo+IMKgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZf cHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOV9CQyhkZXZf cHJpdikpIHsKPiDCoAkJLyogQ29udmVydCBHVCBmcmVxdWVuY3kgdG8gNTAgSFogdW5pdHMgKi8K PiDCoAkJbWluX2dwdV9mcmVxID0gZGV2X3ByaXYtPnJwcy5taW5fZnJlcSAvIEdFTjlfRlJFUV9T Q0FMRVI7Cj4gwqAJCW1heF9ncHVfZnJlcSA9IGRldl9wcml2LT5ycHMubWF4X2ZyZXEgLyBHRU45 X0ZSRVFfU0NBTEVSOwo+IEBAIC01NjU1LDcgKzU2NTQsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3Vw ZGF0ZV9yaW5nX2ZyZXEoc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJ CWludCBkaWZmID0gbWF4X2dwdV9mcmVxIC0gZ3B1X2ZyZXE7Cj4gwqAJCXVuc2lnbmVkIGludCBp YV9mcmVxID0gMCwgcmluZ19mcmVxID0gMDsKPiDCoAo+IC0JCWlmIChJU19TS1lMQUtFKGRldl9w cml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKPiArCQlpZiAoSVNfR0VOOV9CQyhkZXZf cHJpdikpIHsKPiDCoAkJCS8qCj4gwqAJCQnCoCogcmluZ19mcmVxID0gMiAqIEdULiByaW5nX2Zy ZXEgaXMgaW4gMTAwTUh6IHVuaXRzCj4gwqAJCQnCoCogTm8gZmxvb3IgcmVxdWlyZWQgZm9yIHJp bmcgZnJlcXVlbmN5IG9uIFNLTC4KPiBAQCAtNjc3NSw3ICs2Nzc0LDcgQEAgdm9pZCBpbnRlbF9l bmFibGVfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9wcml2KQo+ IMKgCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7Cj4gwqAJCWdlbjlfZW5h YmxlX3JjNihkZXZfcHJpdik7Cj4gwqAJCWdlbjlfZW5hYmxlX3JwcyhkZXZfcHJpdik7Cj4gLQkJ aWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkKPiArCQlp ZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpCj4gwqAJCQlnZW42X3VwZGF0ZV9yaW5nX2ZyZXEoZGV2 X3ByaXYpOwo+IMKgCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+IMKgCQln ZW44X2VuYWJsZV9ycHMoZGV2X3ByaXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uYwo+IGluZGV4IGMwYjdlOTUuLmQ5ZDQ2ZjZkIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IEBAIC03MzIsNyArNzMyLDcgQEAgdm9pZCBza2xf ZGlzYWJsZV9kYzYoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgCcKgKiBv dGhlciByZXF1ZXN0IGJpdHMgdG8gYmUgc2V0LCBzbyBXQVJOIGZvciB0aG9zZS4KPiDCoAnCoCov Cj4gwqAJaWYgKHBvd2VyX3dlbGxfaWQgPT0gU0tMX0RJU1BfUFdfMSB8fAo+IC0JwqDCoMKgwqAo KElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgJiYKPiArCcKg wqDCoMKgKChJU19HRU45X0JDKGRldl9wcml2KSkgJiYKCkV4dHJhIHBhcmVudGhlc2lzIGhlcmUg dG9vLgoKPiDCoAnCoMKgwqDCoMKgcG93ZXJfd2VsbF9pZCA9PSBTS0xfRElTUF9QV19NSVNDX0lP KSkKPiDCoAkJRFJNX0RFQlVHX0RSSVZFUigiQ2xlYXJpbmcgYXV4aWxpYXJ5IHJlcXVlc3RzIGZv ciAlcyBmb3JjZWQKPiBvbiAiCj4gwqAJCQkJwqAiYnkgRE1DXG4iLCBwb3dlcl93ZWxsLT5uYW1l KTsKPiBAQCAtMjMyMyw3ICsyMzIzLDcgQEAgc3RhdGljIHVpbnQzMl90IGdldF9hbGxvd2VkX2Rj X21hc2soY29uc3Qgc3RydWN0Cj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJaW50 IHJlcXVlc3RlZF9kYzsKPiDCoAlpbnQgbWF4X2RjOwo+IMKgCj4gLQlpZiAoSVNfU0tZTEFLRShk ZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4gKwlpZiAoSVNfR0VOOV9CQyhk ZXZfcHJpdikpIHsKPiDCoAkJbWF4X2RjID0gMjsKPiDCoAkJbWFzayA9IDA7Cj4gwqAJfSBlbHNl IGlmIChJU19HRU45X0xQKGRldl9wcml2KSkgewo+IEBAIC0yMzk4LDcgKzIzOTgsNyBAQCBpbnQg aW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9w cml2KQo+IMKgCQlzZXRfcG93ZXJfd2VsbHMocG93ZXJfZG9tYWlucywgaHN3X3Bvd2VyX3dlbGxz KTsKPiDCoAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKPiDCoAkJc2V0X3Bv d2VyX3dlbGxzKHBvd2VyX2RvbWFpbnMsIGJkd19wb3dlcl93ZWxscyk7Cj4gLQl9IGVsc2UgaWYg KElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+ICsJfSBl bHNlIGlmIChJU19HRU45X0JDKGRldl9wcml2KSkgewo+IMKgCQlzZXRfcG93ZXJfd2VsbHMocG93 ZXJfZG9tYWlucywgc2tsX3Bvd2VyX3dlbGxzKTsKPiDCoAl9IGVsc2UgaWYgKElTX0JST1hUT04o ZGV2X3ByaXYpKSB7Cj4gwqAJCXNldF9wb3dlcl93ZWxscyhwb3dlcl9kb21haW5zLCBieHRfcG93 ZXJfd2VsbHMpOwo+IEBAIC0yNzMwLDcgKzI3MzAsNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFp bnNfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdiwgYm9vbCByZXN1 bWUpCj4gwqAKPiDCoAlwb3dlcl9kb21haW5zLT5pbml0aWFsaXppbmcgPSB0cnVlOwo+IMKgCj4g LQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7Cj4g KwlpZiAoSVNfR0VOOV9CQyhkZXZfcHJpdikpIHsKPiDCoAkJc2tsX2Rpc3BsYXlfY29yZV9pbml0 KGRldl9wcml2LCByZXN1bWUpOwo+IMKgCX0gZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikp IHsKPiDCoAkJYnh0X2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCByZXN1bWUpOwo+IEBAIC0y NzY5LDcgKzI3NjksNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfc3VzcGVuZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZQo+ICpkZXZfcHJpdikKPiDCoAlpZiAoIWk5MTUuZGlzYWJsZV9wb3dl cl93ZWxsKQo+IMKgCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9N QUlOX0lOSVQpOwo+IMKgCj4gLQlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxB S0UoZGV2X3ByaXYpKQo+ICsJaWYgKElTX0dFTjlfQkMoZGV2X3ByaXYpKQo+IMKgCQlza2xfZGlz cGxheV9jb3JlX3VuaW5pdChkZXZfcHJpdik7Cj4gwqAJZWxzZSBpZiAoSVNfR0VOOV9MUChkZXZf cHJpdikpCj4gwqAJCWJ4dF9kaXNwbGF5X2NvcmVfdW5pbml0KGRldl9wcml2KTsKCgpXaXRoIHRo b3NlIG5pdHMgZml4ZWQ6CgpSZXZpZXdlZC1ieTogQW5kZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJh IDxjb25zZWx2YW4yQGdtYWlsLmNvbT4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=