From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 24/45] drm/i915: Split GEM object type definition to its own header Date: Mon, 29 Apr 2019 10:52:53 -0700 Message-ID: <20190429175253.GB7189@intel.com> References: <20190425092004.9995-1-chris@chris-wilson.co.uk> <20190425092004.9995-24-chris@chris-wilson.co.uk> <87r29prmm6.fsf@intel.com> <155653058999.9787.9915675813735545385@jlahtine-desk.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4DB9289301 for ; Mon, 29 Apr 2019 17:52:31 +0000 (UTC) Content-Disposition: inline In-Reply-To: <155653058999.9787.9915675813735545385@jlahtine-desk.ger.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joonas Lahtinen Cc: intel-gfx@lists.freedesktop.org, Matthew Auld List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBBcHIgMjksIDIwMTkgYXQgMTI6MzY6MzBQTSArMDMwMCwgSm9vbmFzIExhaHRpbmVu IHdyb3RlOgo+IFF1b3RpbmcgSmFuaSBOaWt1bGEgKDIwMTktMDQtMjYgMTU6MTI6NDkpCj4gPiBP biBUaHUsIDI1IEFwciAyMDE5LCBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51 az4gd3JvdGU6Cj4gPiA+IEZvciBjb252ZW5pZW5jZSBpbiBhdm9pZGluZyBpbmxpbmUgc3BhZ2hl dHRpLCBrZWVwIHRoZSB0eXBlIGRlZmluaXRpb24KPiA+ID4gYXMgYSBzZXBhcmF0ZSBoZWFkZXIu Cj4gPiA+Cj4gPiA+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2ls c29uLmNvLnVrPgo+ID4gPiBSZXZpZXdlZC1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRA aW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxl ICAgICAgICAgICAgICAgICB8ICAgMSArCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0v TWFrZWZpbGUgICAgICAgICAgICAgfCAgIDEgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL01ha2VmaWxlLmhlYWRlci10ZXN0IHwgIDE2ICsKPiA+ID4gIC4uLi9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX29iamVjdF90eXBlcy5oICB8IDI4NSArKysrKysrKysrKysrKysrKwo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggIHwgICAxICsK PiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICAg MyArLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5oICAg IHwgICAzICstCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCAgICAg ICAgICAgfCAgIDEgKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fb2JqZWN0 LmggICAgICAgIHwgMjk1ICstLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAgOSBmaWxlcyBjaGFuZ2Vk LCAzMTIgaW5zZXJ0aW9ucygrKSwgMjk0IGRlbGV0aW9ucygtKQo+ID4gPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9NYWtlZmlsZQo+ID4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9NYWtlZmlsZS5oZWFkZXItdGVzdAo+ ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dl bV9vYmplY3RfdHlwZXMuaAo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ID4gPiBpbmRl eCA1ODY0MzM3MzQ5NWMuLmRlZjc4MWM5ZWE2OSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUKPiA+ID4gQEAgLTg1LDYgKzg1LDcgQEAgZ3QtJChDT05GSUdfRFJNX0k5MTVfU0VMRlRF U1QpICs9IFwKPiA+ID4gIGk5MTUteSArPSAkKGd0LXkpCj4gPiA+ICAKPiA+ID4gICMgR0VNIChH cmFwaGljcyBFeGVjdXRpb24gTWFuYWdlbWVudCkgY29kZQo+ID4gPiArb2JqLXkgKz0gZ2VtLwo+ ID4gCj4gPiBJIHRoaW5rIHRoaXMgd2FycmFudHMgc2ltaWxhciB0cmVhdG1lbnQgYXMgZ3QvLiBQ b3N0ZWQgc3RhbmRhbG9uZQo+ID4gaW5zdGVhZCBvZiBoaWRkZW4gaW4gYSBzZXJpZXMsIGV4cGxp Y2l0IGFja3MuCj4gPiAKPiA+IFByb3ZpZGVkIHRoZSBzcGxpdCBtYWtlcyBzZW5zZSB0byBKb29u YXMsCj4gPiAKPiA+IEFja2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29t Pgo+IAo+IFllYWgsIG1ha2VzIHNlbnNlIHRvIG1lLgo+IAo+IEFja2VkLWJ5OiBKb29uYXMgTGFo dGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gCj4gUmVnYXJkcywgSm9v bmFzCgpJIGxpa2VkIHRoZSBpZGVhIG9mIHNwbGl0dGluZyBnZW0gZnJvbSBndCwgc286CgpBY2tl ZC1ieTogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgoKPiAKPiA+IAo+ID4g Cj4gPiA+ICBpOTE1LXkgKz0gXAo+ID4gPiAgICAgICAgIGk5MTVfYWN0aXZlLm8gXAo+ID4gPiAg ICAgICAgIGk5MTVfY21kX3BhcnNlci5vIFwKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9NYWtlZmls ZQo+ID4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLjA3 ZTdiOGI4NDBlYQo+ID4gPiAtLS0gL2Rldi9udWxsCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9NYWtlZmlsZQo+ID4gPiBAQCAtMCwwICsxIEBACj4gPiA+ICtpbmNsdWRlICQo c3JjKS9NYWtlZmlsZS5oZWFkZXItdGVzdCAjIEV4dHJhIGhlYWRlciB0ZXN0cwo+ID4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL01ha2VmaWxlLmhlYWRlci10ZXN0IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL01ha2VmaWxlLmhlYWRlci10ZXN0Cj4gPiA+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uNjFlMDZjYmI0YjMyCj4g PiA+IC0tLSAvZGV2L251bGwKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL01h a2VmaWxlLmhlYWRlci10ZXN0Cj4gPiA+IEBAIC0wLDAgKzEsMTYgQEAKPiA+ID4gKyMgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IE1JVAo+ID4gPiArIyBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBD b3Jwb3JhdGlvbgo+ID4gPiArCj4gPiA+ICsjIFRlc3QgdGhlIGhlYWRlcnMgYXJlIGNvbXBpbGFi bGUgYXMgc3RhbmRhbG9uZSB1bml0cwo+ID4gPiAraGVhZGVyX3Rlc3QgOj0gJChub3RkaXIgJCh3 aWxkY2FyZCAkKHNyYykvKi5oKSkKPiA+ID4gKwo+ID4gPiArcXVpZXRfY21kX2hlYWRlcl90ZXN0 ID0gSERSVEVTVCAkQAo+ID4gPiArICAgICAgY21kX2hlYWRlcl90ZXN0ID0gZWNobyAiXCNpbmNs dWRlIFwiJCg8RilcIiIgPiAkQAo+ID4gPiArCj4gPiA+ICtoZWFkZXJfdGVzdF8lLmM6ICUuaAo+ ID4gPiArICAgICAkKGNhbGwgY21kLGhlYWRlcl90ZXN0KQo+ID4gPiArCj4gPiA+ICtleHRyYS0k KENPTkZJR19EUk1fSTkxNV9XRVJST1IpICs9IFwKPiA+ID4gKyAgICAgJChmb3JlYWNoIGgsJCho ZWFkZXJfdGVzdCksJChwYXRzdWJzdCAlLmgsaGVhZGVyX3Rlc3RfJS5vLCQoaCkpKQo+ID4gPiAr Cj4gPiA+ICtjbGVhbi1maWxlcyArPSAkKGZvcmVhY2ggaCwkKGhlYWRlcl90ZXN0KSwkKHBhdHN1 YnN0ICUuaCxoZWFkZXJfdGVzdF8lLmMsJChoKSkpCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKPiA+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiA+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5lNGI1MDk0NGY1NTMKPiA+ID4gLS0tIC9k ZXYvbnVsbAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2Jq ZWN0X3R5cGVzLmgKPiA+ID4gQEAgLTAsMCArMSwyODUgQEAKPiA+ID4gKy8qCj4gPiA+ICsgKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gPiA+ICsgKgo+ID4gPiArICogQ29weXJpZ2h0 IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ICsjaWZu ZGVmIF9fSTkxNV9HRU1fT0JKRUNUX1RZUEVTX0hfXwo+ID4gPiArI2RlZmluZSBfX0k5MTVfR0VN X09CSkVDVF9UWVBFU19IX18KPiA+ID4gKwo+ID4gPiArI2luY2x1ZGUgPGxpbnV4L3Jlc2VydmF0 aW9uLmg+Cj4gPiA+ICsKPiA+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ID4gPiArCj4g PiA+ICsjaW5jbHVkZSAiLi4vaTkxNV9hY3RpdmUuaCIKPiA+ID4gKyNpbmNsdWRlICIuLi9pOTE1 X3NlbGZ0ZXN0LmgiCj4gPiA+ICsKPiA+ID4gK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0Owo+ ID4gPiArCj4gPiA+ICsvKgo+ID4gPiArICogc3RydWN0IGk5MTVfbHV0X2hhbmRsZSB0cmFja3Mg dGhlIGZhc3QgbG9va3VwcyBmcm9tIGhhbmRsZSB0byB2bWEgdXNlZAo+ID4gPiArICogZm9yIGV4 ZWNidWYuIEFsdGhvdWdoIHdlIHVzZSBhIHJhZGl4dHJlZSBmb3IgdGhhdCBtYXBwaW5nLCBpbiBv cmRlciB0bwo+ID4gPiArICogcmVtb3ZlIHRoZW0gYXMgdGhlIG9iamVjdCBvciBjb250ZXh0IGlz IGNsb3NlZCwgd2UgbmVlZCBhIHNlY29uZGFyeSBsaXN0Cj4gPiA+ICsgKiBhbmQgYSB0cmFuc2xh dGlvbiBlbnRyeSAoaTkxNV9sdXRfaGFuZGxlKS4KPiA+ID4gKyAqLwo+ID4gPiArc3RydWN0IGk5 MTVfbHV0X2hhbmRsZSB7Cj4gPiA+ICsgICAgIHN0cnVjdCBsaXN0X2hlYWQgb2JqX2xpbms7Cj4g PiA+ICsgICAgIHN0cnVjdCBsaXN0X2hlYWQgY3R4X2xpbms7Cj4gPiA+ICsgICAgIHN0cnVjdCBp OTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gPiA+ICsgICAgIHUzMiBoYW5kbGU7Cj4gPiA+ICt9Owo+ ID4gPiArCj4gPiA+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgewo+ID4gPiArICAg ICB1bnNpZ25lZCBpbnQgZmxhZ3M7Cj4gPiA+ICsjZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9IQVNf U1RSVUNUX1BBR0UgICAgICBCSVQoMCkKPiA+ID4gKyNkZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0lT X1NIUklOS0FCTEUgICAgICAgIEJJVCgxKQo+ID4gPiArI2RlZmluZSBJOTE1X0dFTV9PQkpFQ1Rf SVNfUFJPWFkgICAgIEJJVCgyKQo+ID4gPiArI2RlZmluZSBJOTE1X0dFTV9PQkpFQ1RfQVNZTkNf Q0FOQ0VMIEJJVCgzKQo+ID4gPiArCj4gPiA+ICsgICAgIC8qIEludGVyZmFjZSBiZXR3ZWVuIHRo ZSBHRU0gb2JqZWN0IGFuZCBpdHMgYmFja2luZyBzdG9yYWdlLgo+ID4gPiArICAgICAgKiBnZXRf cGFnZXMoKSBpcyBjYWxsZWQgb25jZSBwcmlvciB0byB0aGUgdXNlIG9mIHRoZSBhc3NvY2lhdGVk IHNldAo+ID4gPiArICAgICAgKiBvZiBwYWdlcyBiZWZvcmUgdG8gYmluZGluZyB0aGVtIGludG8g dGhlIEdUVCwgYW5kIHB1dF9wYWdlcygpIGlzCj4gPiA+ICsgICAgICAqIGNhbGxlZCBhZnRlciB3 ZSBubyBsb25nZXIgbmVlZCB0aGVtLiBBcyB3ZSBleHBlY3QgdGhlcmUgdG8gYmUKPiA+ID4gKyAg ICAgICogYXNzb2NpYXRlZCBjb3N0IHdpdGggbWlncmF0aW5nIHBhZ2VzIGJldHdlZW4gdGhlIGJh Y2tpbmcgc3RvcmFnZQo+ID4gPiArICAgICAgKiBhbmQgbWFraW5nIHRoZW0gYXZhaWxhYmxlIGZv ciB0aGUgR1BVIChlLmcuIGNsZmx1c2gpLCB3ZSBtYXkgaG9sZAo+ID4gPiArICAgICAgKiBvbnRv IHRoZSBwYWdlcyBhZnRlciB0aGV5IGFyZSBubyBsb25nZXIgcmVmZXJlbmNlZCBieSB0aGUgR1BV Cj4gPiA+ICsgICAgICAqIGluIGNhc2UgdGhleSBtYXkgYmUgdXNlZCBhZ2FpbiBzaG9ydGx5IChm b3IgZXhhbXBsZSBtaWdyYXRpbmcgdGhlCj4gPiA+ICsgICAgICAqIHBhZ2VzIHRvIGEgZGlmZmVy ZW50IG1lbW9yeSBkb21haW4gd2l0aGluIHRoZSBHVFQpLiBwdXRfcGFnZXMoKQo+ID4gPiArICAg ICAgKiB3aWxsIHRoZXJlZm9yZSBtb3N0IGxpa2VseSBiZSBjYWxsZWQgd2hlbiB0aGUgb2JqZWN0 IGl0c2VsZiBpcwo+ID4gPiArICAgICAgKiBiZWluZyByZWxlYXNlZCBvciB1bmRlciBtZW1vcnkg cHJlc3N1cmUgKHdoZXJlIHdlIGF0dGVtcHQgdG8KPiA+ID4gKyAgICAgICogcmVhcCBwYWdlcyBm b3IgdGhlIHNocmlua2VyKS4KPiA+ID4gKyAgICAgICovCj4gPiA+ICsgICAgIGludCAoKmdldF9w YWdlcykoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4gPiA+ICsgICAgIHZvaWQg KCpwdXRfcGFnZXMpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzZ190YWJsZSAqcGFnZXMpOwo+ID4gPiArCj4gPiA+ ICsgICAgIGludCAoKnB3cml0ZSkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3B3cml0ZSAq YXJnKTsKPiA+ID4gKwo+ID4gPiArICAgICBpbnQgKCpkbWFidWZfZXhwb3J0KShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPiA+ID4gKyAgICAgdm9pZCAoKnJlbGVhc2UpKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopOwo+ID4gPiArfTsKPiA+ID4gKwo+ID4gPiArc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgYmFzZTsKPiA+ID4gKwo+ID4gPiArICAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdF9vcHMgKm9wczsKPiA+ID4gKwo+ID4gPiArICAgICBzdHJ1Y3Qgewo+ID4gPiArICAgICAg ICAgICAgIC8qKgo+ID4gPiArICAgICAgICAgICAgICAqIEB2bWEubG9jazogcHJvdGVjdCB0aGUg bGlzdC90cmVlIG9mIHZtYXMKPiA+ID4gKyAgICAgICAgICAgICAgKi8KPiA+ID4gKyAgICAgICAg ICAgICBzcGlubG9ja190IGxvY2s7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAgICAvKioKPiA+ ID4gKyAgICAgICAgICAgICAgKiBAdm1hLmxpc3Q6IExpc3Qgb2YgVk1BcyBiYWNrZWQgYnkgdGhp cyBvYmplY3QKPiA+ID4gKyAgICAgICAgICAgICAgKgo+ID4gPiArICAgICAgICAgICAgICAqIFRo ZSBWTUEgb24gdGhpcyBsaXN0IGFyZSBvcmRlcmVkIGJ5IHR5cGUsIGFsbCBHR1RUIHZtYSBhcmUK PiA+ID4gKyAgICAgICAgICAgICAgKiBwbGFjZWQgYXQgdGhlIGhlYWQgYW5kIGFsbCBwcEdUVCB2 bWEgYXJlIHBsYWNlZCBhdCB0aGUgdGFpbC4KPiA+ID4gKyAgICAgICAgICAgICAgKiBUaGUgZGlm ZmVyZW50IHR5cGVzIG9mIEdHVFQgdm1hIGFyZSB1bm9yZGVyZWQgYmV0d2Vlbgo+ID4gPiArICAg ICAgICAgICAgICAqIHRoZW1zZWx2ZXMsIHVzZSB0aGUgQHZtYS50cmVlICh3aGljaCBoYXMgYSBk ZWZpbmVkIG9yZGVyCj4gPiA+ICsgICAgICAgICAgICAgICogYmV0d2VlbiBhbGwgVk1BKSB0byBx dWlja2x5IGZpbmQgYW4gZXhhY3QgbWF0Y2guCj4gPiA+ICsgICAgICAgICAgICAgICovCj4gPiA+ ICsgICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaXN0Owo+ID4gPiArCj4gPiA+ICsgICAg ICAgICAgICAgLyoqCj4gPiA+ICsgICAgICAgICAgICAgICogQHZtYS50cmVlOiBPcmRlcmVkIHRy ZWUgb2YgVk1BcyBiYWNrZWQgYnkgdGhpcyBvYmplY3QKPiA+ID4gKyAgICAgICAgICAgICAgKgo+ ID4gPiArICAgICAgICAgICAgICAqIEFsbCBWTUEgY3JlYXRlZCBmb3IgdGhpcyBvYmplY3QgYXJl IHBsYWNlZCBpbiB0aGUgQHZtYS50cmVlCj4gPiA+ICsgICAgICAgICAgICAgICogZm9yIGZhc3Qg cmV0cmlldmFsIHZpYSBhIGJpbmFyeSBzZWFyY2ggaW4KPiA+ID4gKyAgICAgICAgICAgICAgKiBp OTE1X3ZtYV9pbnN0YW5jZSgpLiBUaGV5IGFyZSBhbHNvIGFkZGVkIHRvIEB2bWEubGlzdCBmb3IK PiA+ID4gKyAgICAgICAgICAgICAgKiBlYXN5IGl0ZXJhdGlvbi4KPiA+ID4gKyAgICAgICAgICAg ICAgKi8KPiA+ID4gKyAgICAgICAgICAgICBzdHJ1Y3QgcmJfcm9vdCB0cmVlOwo+ID4gPiArICAg ICB9IHZtYTsKPiA+ID4gKwo+ID4gPiArICAgICAvKioKPiA+ID4gKyAgICAgICogQGx1dF9saXN0 OiBMaXN0IG9mIHZtYSBsb29rdXAgZW50cmllcyBpbiB1c2UgZm9yIHRoaXMgb2JqZWN0Lgo+ID4g PiArICAgICAgKgo+ID4gPiArICAgICAgKiBJZiB0aGlzIG9iamVjdCBpcyBjbG9zZWQsIHdlIG5l ZWQgdG8gcmVtb3ZlIGFsbCBvZiBpdHMgVk1BIGZyb20KPiA+ID4gKyAgICAgICogdGhlIGZhc3Qg bG9va3VwIGluZGV4IGluIGFzc29jaWF0ZWQgY29udGV4dHM7IEBsdXRfbGlzdCBwcm92aWRlcwo+ ID4gPiArICAgICAgKiB0aGlzIHRyYW5zbGF0aW9uIGZyb20gb2JqZWN0IHRvIGNvbnRleHQtPmhh bmRsZXNfdm1hLgo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAgc3RydWN0IGxpc3RfaGVhZCBs dXRfbGlzdDsKPiA+ID4gKwo+ID4gPiArICAgICAvKiogU3RvbGVuIG1lbW9yeSBmb3IgdGhpcyBv YmplY3QsIGluc3RlYWQgb2YgYmVpbmcgYmFja2VkIGJ5IHNobWVtLiAqLwo+ID4gPiArICAgICBz dHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbjsKPiA+ID4gKyAgICAgdW5pb24gewo+ID4gPiArICAg ICAgICAgICAgIHN0cnVjdCByY3VfaGVhZCByY3U7Cj4gPiA+ICsgICAgICAgICAgICAgc3RydWN0 IGxsaXN0X25vZGUgZnJlZWQ7Cj4gPiA+ICsgICAgIH07Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyoq Cj4gPiA+ICsgICAgICAqIFdoZXRoZXIgdGhlIG9iamVjdCBpcyBjdXJyZW50bHkgaW4gdGhlIEdH VFQgbW1hcC4KPiA+ID4gKyAgICAgICovCj4gPiA+ICsgICAgIHVuc2lnbmVkIGludCB1c2VyZmF1 bHRfY291bnQ7Cj4gPiA+ICsgICAgIHN0cnVjdCBsaXN0X2hlYWQgdXNlcmZhdWx0X2xpbms7Cj4g PiA+ICsKPiA+ID4gKyAgICAgc3RydWN0IGxpc3RfaGVhZCBiYXRjaF9wb29sX2xpbms7Cj4gPiA+ ICsgICAgIEk5MTVfU0VMRlRFU1RfREVDTEFSRShzdHJ1Y3QgbGlzdF9oZWFkIHN0X2xpbmspOwo+ ID4gPiArCj4gPiA+ICsgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiA+ICsKPiA+ID4gKyAg ICAgLyoqCj4gPiA+ICsgICAgICAqIEhhdmUgd2UgdGFrZW4gYSByZWZlcmVuY2UgZm9yIHRoZSBv YmplY3QgZm9yIGluY29tcGxldGUgR1BVCj4gPiA+ICsgICAgICAqIGFjdGl2aXR5Pwo+ID4gPiAr ICAgICAgKi8KPiA+ID4gKyNkZWZpbmUgSTkxNV9CT19BQ1RJVkVfUkVGIDAKPiA+ID4gKwo+ID4g PiArICAgICAvKgo+ID4gPiArICAgICAgKiBJcyB0aGUgb2JqZWN0IHRvIGJlIG1hcHBlZCBhcyBy ZWFkLW9ubHkgdG8gdGhlIEdQVQo+ID4gPiArICAgICAgKiBPbmx5IGhvbm91cmVkIGlmIGhhcmR3 YXJlIGhhcyByZWxldmFudCBwdGUgYml0Cj4gPiA+ICsgICAgICAqLwo+ID4gPiArICAgICB1bnNp Z25lZCBpbnQgY2FjaGVfbGV2ZWw6MzsKPiA+ID4gKyAgICAgdW5zaWduZWQgaW50IGNhY2hlX2Nv aGVyZW50OjI7Cj4gPiA+ICsjZGVmaW5lIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1JFQUQg QklUKDApCj4gPiA+ICsjZGVmaW5lIEk5MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1dSSVRFIEJJ VCgxKQo+ID4gPiArICAgICB1bnNpZ25lZCBpbnQgY2FjaGVfZGlydHk6MTsKPiA+ID4gKwo+ID4g PiArICAgICAvKioKPiA+ID4gKyAgICAgICogQHJlYWRfZG9tYWluczogUmVhZCBtZW1vcnkgZG9t YWlucy4KPiA+ID4gKyAgICAgICoKPiA+ID4gKyAgICAgICogVGhlc2UgbW9uaXRvciB3aGljaCBj YWNoZXMgY29udGFpbiByZWFkL3dyaXRlIGRhdGEgcmVsYXRlZCB0byB0aGUKPiA+ID4gKyAgICAg ICogb2JqZWN0LiBXaGVuIHRyYW5zaXRpb25pbmcgZnJvbSBvbmUgc2V0IG9mIGRvbWFpbnMgdG8g YW5vdGhlciwKPiA+ID4gKyAgICAgICogdGhlIGRyaXZlciBpcyBjYWxsZWQgdG8gZW5zdXJlIHRo YXQgY2FjaGVzIGFyZSBzdWl0YWJseSBmbHVzaGVkIGFuZAo+ID4gPiArICAgICAgKiBpbnZhbGlk YXRlZC4KPiA+ID4gKyAgICAgICovCj4gPiA+ICsgICAgIHUxNiByZWFkX2RvbWFpbnM7Cj4gPiA+ ICsKPiA+ID4gKyAgICAgLyoqCj4gPiA+ICsgICAgICAqIEB3cml0ZV9kb21haW46IENvcnJlc3Bv bmRpbmcgdW5pcXVlIHdyaXRlIG1lbW9yeSBkb21haW4uCj4gPiA+ICsgICAgICAqLwo+ID4gPiAr ICAgICB1MTYgd3JpdGVfZG9tYWluOwo+ID4gPiArCj4gPiA+ICsgICAgIGF0b21pY190IGZyb250 YnVmZmVyX2JpdHM7Cj4gPiA+ICsgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9nZ3R0X29y aWdpbjsgLyogd3JpdGUgb25jZSAqLwo+ID4gPiArICAgICBzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVx dWVzdCBmcm9udGJ1ZmZlcl93cml0ZTsKPiA+ID4gKwo+ID4gPiArICAgICAvKiogQ3VycmVudCB0 aWxpbmcgc3RyaWRlIGZvciB0aGUgb2JqZWN0LCBpZiBpdCdzIHRpbGVkLiAqLwo+ID4gPiArICAg ICB1bnNpZ25lZCBpbnQgdGlsaW5nX2FuZF9zdHJpZGU7Cj4gPiA+ICsjZGVmaW5lIEZFTkNFX01J TklNVU1fU1RSSURFIDEyOCAvKiBTZWUgaTkxNV90aWxpbmdfb2soKSAqLwo+ID4gPiArI2RlZmlu ZSBUSUxJTkdfTUFTSyAoRkVOQ0VfTUlOSU1VTV9TVFJJREUgLSAxKQo+ID4gPiArI2RlZmluZSBT VFJJREVfTUFTSyAoflRJTElOR19NQVNLKQo+ID4gPiArCj4gPiA+ICsgICAgIC8qKiBDb3VudCBv ZiBWTUEgYWN0dWFsbHkgYm91bmQgYnkgdGhpcyBvYmplY3QgKi8KPiA+ID4gKyAgICAgdW5zaWdu ZWQgaW50IGJpbmRfY291bnQ7Cj4gPiA+ICsgICAgIHVuc2lnbmVkIGludCBhY3RpdmVfY291bnQ7 Cj4gPiA+ICsgICAgIC8qKiBDb3VudCBvZiBob3cgbWFueSBnbG9iYWwgVk1BIGFyZSBjdXJyZW50 bHkgcGlubmVkIGZvciB1c2UgYnkgSFcgKi8KPiA+ID4gKyAgICAgdW5zaWduZWQgaW50IHBpbl9n bG9iYWw7Cj4gPiA+ICsKPiA+ID4gKyAgICAgc3RydWN0IHsKPiA+ID4gKyAgICAgICAgICAgICBz dHJ1Y3QgbXV0ZXggbG9jazsgLyogcHJvdGVjdHMgdGhlIHBhZ2VzIGFuZCB0aGVpciB1c2UgKi8K PiA+ID4gKyAgICAgICAgICAgICBhdG9taWNfdCBwYWdlc19waW5fY291bnQ7Cj4gPiA+ICsKPiA+ ID4gKyAgICAgICAgICAgICBzdHJ1Y3Qgc2dfdGFibGUgKnBhZ2VzOwo+ID4gPiArICAgICAgICAg ICAgIHZvaWQgKm1hcHBpbmc7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAgICAvKiBUT0RPOiB3 aGFjayBzb21lIG9mIHRoaXMgaW50byB0aGUgZXJyb3Igc3RhdGUgKi8KPiA+ID4gKyAgICAgICAg ICAgICBzdHJ1Y3QgaTkxNV9wYWdlX3NpemVzIHsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg IC8qKgo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICogVGhlIHNnIG1hc2sgb2YgdGhlIHBh Z2VzIHNnX3RhYmxlLiBpLmUgdGhlIG1hc2sgb2YKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAqIG9mIHRoZSBsZW5ndGhzIGZvciBlYWNoIHNnIGVudHJ5Lgo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICovCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGh5 czsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgLyoqCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgKiBUaGUgZ3R0IHBhZ2Ugc2l6ZXMgd2UgYXJlIGFsbG93ZWQgdG8gdXNl IGdpdmVuIHRoZQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICogc2cgbWFzayBhbmQgdGhl IHN1cHBvcnRlZCBwYWdlIHNpemVzLiBUaGlzIHdpbGwKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAqIGV4cHJlc3MgdGhlIHNtYWxsZXN0IHVuaXQgd2UgY2FuIHVzZSBmb3IgdGhlIHdob2xl Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgKiBvYmplY3QsIGFzIHdlbGwgYXMgdGhlIGxh cmdlciBzaXplcyB3ZSBtYXkgYmUgYWJsZQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICog dG8gdXNlIG9wcG9ydHVuaXN0aWNhbGx5Lgo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICov Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc2c7Cj4gPiA+ICsKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgIC8qKgo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICogVGhlIGFjdHVhbCBndHQgcGFnZSBzaXplIHVzYWdlLiBTaW5jZSB3ZSBjYW4gaGF2ZQo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICogbXVsdGlwbGUgdm1hIGFzc29jaWF0ZWQgd2l0aCB0 aGlzIG9iamVjdCB3ZSBuZWVkIHRvCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgKiBwcmV2 ZW50IGFueSB0cmFtcGxpbmcgb2Ygc3RhdGUsIGhlbmNlIGEgY29weSBvZiB0aGlzCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgKiBzdHJ1Y3QgYWxzbyBsaXZlcyBpbiBlYWNoIHZtYSwgdGhl cmVmb3JlIHRoZSBndHQKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAqIHZhbHVlIGhlcmUg c2hvdWxkIG9ubHkgYmUgcmVhZC93cml0ZSB0aHJvdWdoIHRoZSB2bWEuCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgKi8KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBndHQ7Cj4gPiA+ICsgICAgICAgICAgICAgfSBwYWdlX3NpemVzOwo+ID4gPiArCj4gPiA+ICsg ICAgICAgICAgICAgSTkxNV9TRUxGVEVTVF9ERUNMQVJFKHVuc2lnbmVkIGludCBwYWdlX21hc2sp Owo+ID4gPiArCj4gPiA+ICsgICAgICAgICAgICAgc3RydWN0IGk5MTVfZ2VtX29iamVjdF9wYWdl X2l0ZXIgewo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNjYXR0ZXJsaXN0ICpz Z19wb3M7Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc2dfaWR4OyAv KiBpbiBwYWdlcywgYnV0IDMyYml0IGVlayEgKi8KPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHJhZGl4X3RyZWVfcm9vdCByYWRpeDsKPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBtdXRleCBsb2NrOyAvKiBwcm90ZWN0cyB0aGlzIGNhY2hlICovCj4g PiA+ICsgICAgICAgICAgICAgfSBnZXRfcGFnZTsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAg IC8qKgo+ID4gPiArICAgICAgICAgICAgICAqIEVsZW1lbnQgd2l0aGluIGk5MTUtPm1tLnVuYm91 bmRfbGlzdCBvciBpOTE1LT5tbS5ib3VuZF9saXN0LAo+ID4gPiArICAgICAgICAgICAgICAqIGxv Y2tlZCBieSBpOTE1LT5tbS5vYmpfbG9jay4KPiA+ID4gKyAgICAgICAgICAgICAgKi8KPiA+ID4g KyAgICAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7Cj4gPiA+ICsKPiA+ID4gKyAgICAg ICAgICAgICAvKioKPiA+ID4gKyAgICAgICAgICAgICAgKiBBZHZpY2U6IGFyZSB0aGUgYmFja2lu ZyBwYWdlcyBwdXJnZWFibGU/Cj4gPiA+ICsgICAgICAgICAgICAgICovCj4gPiA+ICsgICAgICAg ICAgICAgdW5zaWduZWQgaW50IG1hZHY6MjsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIC8q Kgo+ID4gPiArICAgICAgICAgICAgICAqIFRoaXMgaXMgc2V0IGlmIHRoZSBvYmplY3QgaGFzIGJl ZW4gd3JpdHRlbiB0byBzaW5jZSB0aGUKPiA+ID4gKyAgICAgICAgICAgICAgKiBwYWdlcyB3ZXJl IGxhc3QgYWNxdWlyZWQuCj4gPiA+ICsgICAgICAgICAgICAgICovCj4gPiA+ICsgICAgICAgICAg ICAgYm9vbCBkaXJ0eToxOwo+ID4gPiArCj4gPiA+ICsgICAgICAgICAgICAgLyoqCj4gPiA+ICsg ICAgICAgICAgICAgICogVGhpcyBpcyBzZXQgaWYgdGhlIG9iamVjdCBoYXMgYmVlbiBwaW5uZWQg ZHVlIHRvIHVua25vd24KPiA+ID4gKyAgICAgICAgICAgICAgKiBzd2l6emxpbmcuCj4gPiA+ICsg ICAgICAgICAgICAgICovCj4gPiA+ICsgICAgICAgICAgICAgYm9vbCBxdWlya2VkOjE7Cj4gPiA+ ICsgICAgIH0gbW07Cj4gPiA+ICsKPiA+ID4gKyAgICAgLyoqIEJyZWFkY3J1bWIgb2YgbGFzdCBy ZW5kZXJpbmcgdG8gdGhlIGJ1ZmZlci4KPiA+ID4gKyAgICAgICogVGhlcmUgY2FuIG9ubHkgYmUg b25lIHdyaXRlciwgYnV0IHdlIGFsbG93IGZvciBtdWx0aXBsZSByZWFkZXJzLgo+ID4gPiArICAg ICAgKiBJZiB0aGVyZSBpcyBhIHdyaXRlciB0aGF0IG5lY2Vzc2FyaWx5IGltcGxpZXMgdGhhdCBh bGwgb3RoZXIKPiA+ID4gKyAgICAgICogcmVhZCByZXF1ZXN0cyBhcmUgY29tcGxldGUgLSBidXQg d2UgbWF5IG9ubHkgYmUgbGF6aWx5IGNsZWFyaW5nCj4gPiA+ICsgICAgICAqIHRoZSByZWFkIHJl cXVlc3RzLiBBIHJlYWQgcmVxdWVzdCBpcyBuYXR1cmFsbHkgdGhlIG1vc3QgcmVjZW50Cj4gPiA+ ICsgICAgICAqIHJlcXVlc3Qgb24gYSByaW5nLCBzbyB3ZSBtYXkgaGF2ZSB0d28gZGlmZmVyZW50 IHdyaXRlIGFuZCByZWFkCj4gPiA+ICsgICAgICAqIHJlcXVlc3RzIG9uIG9uZSByaW5nIHdoZXJl IHRoZSB3cml0ZSByZXF1ZXN0IGlzIG9sZGVyIHRoYW4gdGhlCj4gPiA+ICsgICAgICAqIHJlYWQg cmVxdWVzdC4gVGhpcyBhbGxvd3MgZm9yIHRoZSBDUFUgdG8gcmVhZCBmcm9tIGFuIGFjdGl2ZQo+ ID4gPiArICAgICAgKiBidWZmZXIgYnkgb25seSB3YWl0aW5nIGZvciB0aGUgd3JpdGUgdG8gY29t cGxldGUuCj4gPiA+ICsgICAgICAqLwo+ID4gPiArICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0ICpyZXN2Owo+ID4gPiArCj4gPiA+ICsgICAgIC8qKiBSZWZlcmVuY2VzIGZyb20gZnJhbWVi dWZmZXJzLCBsb2NrcyBvdXQgdGlsaW5nIGNoYW5nZXMuICovCj4gPiA+ICsgICAgIHVuc2lnbmVk IGludCBmcmFtZWJ1ZmZlcl9yZWZlcmVuY2VzOwo+ID4gPiArCj4gPiA+ICsgICAgIC8qKiBSZWNv cmQgb2YgYWRkcmVzcyBiaXQgMTcgb2YgZWFjaCBwYWdlIGF0IGxhc3QgdW5iaW5kLiAqLwo+ID4g PiArICAgICB1bnNpZ25lZCBsb25nICpiaXRfMTc7Cj4gPiA+ICsKPiA+ID4gKyAgICAgdW5pb24g ewo+ID4gPiArICAgICAgICAgICAgIHN0cnVjdCBpOTE1X2dlbV91c2VycHRyIHsKPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBwdHI7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBpOTE1X21tX3N0cnVjdCAqbW07Cj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgaTkxNV9tbXVfb2JqZWN0ICptbXVfb2JqZWN0Owo+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrOwo+ID4gPiArICAgICAg ICAgICAgIH0gdXNlcnB0cjsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgc2NyYXRjaDsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIHZvaWQgKmd2dF9pbmZvOwo+ ID4gPiArICAgICB9Owo+ID4gPiArCj4gPiA+ICsgICAgIC8qKiBmb3IgcGh5cyBhbGxvY2F0ZWQg b2JqZWN0cyAqLwo+ID4gPiArICAgICBzdHJ1Y3QgZHJtX2RtYV9oYW5kbGUgKnBoeXNfaGFuZGxl Owo+ID4gPiArCj4gPiA+ICsgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgX19idWlsdGlu X3Jlc3Y7Cj4gPiA+ICt9Owo+ID4gPiArCj4gPiA+ICtzdGF0aWMgaW5saW5lIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICoKPiA+ID4gK3RvX2ludGVsX2JvKHN0cnVjdCBkcm1fZ2VtX29iamVj dCAqZ2VtKQo+ID4gPiArewo+ID4gPiArICAgICAvKiBBc3NlcnQgdGhhdCB0b19pbnRlbF9ibyhO VUxMKSA9PSBOVUxMICovCj4gPiA+ICsgICAgIEJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCwgYmFzZSkpOwo+ID4gPiArCj4gPiA+ICsgICAgIHJldHVybiBj b250YWluZXJfb2YoZ2VtLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwgYmFzZSk7Cj4gPiA+ ICt9Cj4gPiA+ICsKPiA+ID4gKyNlbmRpZgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+ID4gPiBpbmRleCBjYThkOTVhNTcwOGQuLmFlNzNjNjU5 NmQwOCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5n aW5lX3R5cGVzLmgKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5n aW5lX3R5cGVzLmgKPiA+ID4gQEAgLTI5LDYgKzI5LDcgQEAKPiA+ID4gICNkZWZpbmUgSTkxNV9D TURfSEFTSF9PUkRFUiA5Cj4gPiA+ICAKPiA+ID4gIHN0cnVjdCBkbWFfZmVuY2U7Cj4gPiA+ICtz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKPiA+ID4gIHN0cnVjdCBkcm1faTkxNV9yZWdfdGFi bGU7Cj4gPiA+ICBzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dDsKPiA+ID4gIHN0cnVjdCBpOTE1X3Jl cXVlc3Q7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBpbmRleCA1Y2E0ZGY5YTc0 MjguLjBjZjg3NDk1ZTExYiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g PiA+IEBAIC04MCw3ICs4MCw2IEBACj4gPiA+ICAjaW5jbHVkZSAiaTkxNV9nZW0uaCIKPiA+ID4g ICNpbmNsdWRlICJpOTE1X2dlbV9jb250ZXh0LmgiCj4gPiA+ICAjaW5jbHVkZSAiaTkxNV9nZW1f ZmVuY2VfcmVnLmgiCj4gPiA+IC0jaW5jbHVkZSAiaTkxNV9nZW1fb2JqZWN0LmgiCj4gPiA+ICAj aW5jbHVkZSAiaTkxNV9nZW1fZ3R0LmgiCj4gPiA+ICAjaW5jbHVkZSAiaTkxNV9ncHVfZXJyb3Iu aCIKPiA+ID4gICNpbmNsdWRlICJpOTE1X3JlcXVlc3QuaCIKPiA+ID4gQEAgLTEzNSw2ICsxMzQs OCBAQCBib29sIGk5MTVfZXJyb3JfaW5qZWN0ZWQodm9pZCk7Cj4gPiA+ICAgICAgIF9faTkxNV9w cmludGsoaTkxNSwgaTkxNV9lcnJvcl9pbmplY3RlZCgpID8gS0VSTl9ERUJVRyA6IEtFUk5fRVJS LCBcCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgZm10LCAjI19fVkFfQVJHU19fKQo+ID4gPiAg Cj4gPiA+ICtzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdDsKPiA+ID4gKwo+ID4gPiAgZW51bSBo cGRfcGluIHsKPiA+ID4gICAgICAgSFBEX05PTkUgPSAwLAo+ID4gPiAgICAgICBIUERfVFYgPSBI UERfTk9ORSwgICAgIC8qIFRWIGlzIGtub3duIHRvIGJlIHVucmVsaWFibGUgKi8KPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuaAo+ID4gPiBpbmRleCA1Njk0 N2RhYWFmNjUuLmZlZWVlZWFhNTRkOCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fYmF0Y2hfcG9vbC5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2JhdGNoX3Bvb2wuaAo+ID4gPiBAQCAtOSw2ICs5LDcgQEAKPiA+ID4gIAo+ ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+Cj4gPiA+ICAKPiA+ID4gK3N0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0Owo+ID4gPiAgc3RydWN0IGludGVsX2VuZ2luZV9jczsKPiA+ID4gIAo+ ID4gPiAgc3RydWN0IGk5MTVfZ2VtX2JhdGNoX3Bvb2wgewo+ID4gPiBAQCAtMTksNyArMjAsNyBA QCBzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCB7Cj4gPiA+ICB2b2lkIGk5MTVfZ2VtX2JhdGNo X3Bvb2xfaW5pdChzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hfcG9vbCAqcG9vbCwKPiA+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSk7Cj4g PiA+ICB2b2lkIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfZmluaShzdHJ1Y3QgaTkxNV9nZW1fYmF0Y2hf cG9vbCAqcG9vbCk7Cj4gPiA+IC1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCoKPiA+ID4gK3N0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKPiA+ID4gIGk5MTVfZ2VtX2JhdGNoX3Bvb2xfZ2V0 KHN0cnVjdCBpOTE1X2dlbV9iYXRjaF9wb29sICpwb29sLCBzaXplX3Qgc2l6ZSk7Cj4gPiA+ICAK PiA+ID4gICNlbmRpZiAvKiBJOTE1X0dFTV9CQVRDSF9QT09MX0ggKi8KPiA+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZ3R0LmgKPiA+ID4gaW5kZXggMmZhZmEwNGM0NWVjLi41OTMwNzlmMzBm YmUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5o Cj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gPiA+IEBA IC02MSw2ICs2MSw3IEBACj4gPiA+ICAKPiA+ID4gIHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZh dGU7Cj4gPiA+ICBzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnOwo+ID4gPiArc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3Q7Cj4gPiA+ICBzdHJ1Y3QgaTkxNV92bWE7Cj4gPiA+ICAKPiA+ID4gIHR5 cGVkZWYgdTMyIGdlbjZfcHRlX3Q7Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX29i amVjdC5oCj4gPiA+IGluZGV4IGNhOTNhNDBjMGM4Ny4uMzY2NmIwYzVmNmNhIDEwMDY0NAo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuaAo+ID4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9vYmplY3QuaAo+ID4gPiBAQCAtMSwzMDgg KzEsMTkgQEAKPiA+ID4gIC8qCj4gPiA+IC0gKiBDb3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jw b3JhdGlvbgo+ID4gPiAtICoKPiA+ID4gLSAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gPiA+IC0gKiBjb3B5 IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl ICJTb2Z0d2FyZSIpLAo+ID4gPiAtICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ID4gPiAtICogdGhlIHJp Z2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1 YmxpY2Vuc2UsCj4gPiA+IC0gKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiA+ID4gLSAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4g PiA+IC0gKgo+ID4gPiAtICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVy bWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ID4gPiAtICogcGFyYWdyYXBoKSBz aGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m IHRoZQo+ID4gPiAtICogU29mdHdhcmUuCj4gPiA+IC0gKgo+ID4gPiAtICogVEhFIFNPRlRXQVJF IElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJF U1MgT1IKPiA+ID4gLSAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhF IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4gPiAtICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxM Cj4gPiA+IC0gKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9S IEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ID4gPiAtICogTElBQklMSVRZLCBXSEVUSEVS IElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiA+ ID4gLSAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPiA+ID4gLSAqIElOIFRIRSBTT0ZUV0FSRS4KPiA+ ID4gKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiA+ID4gICAqCj4gPiA+ICsgKiBD b3B5cmlnaHQgwqkgMjAxNiBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiAgICovCj4gPiA+ICAKPiA+ ID4gICNpZm5kZWYgX19JOTE1X0dFTV9PQkpFQ1RfSF9fCj4gPiA+ICAjZGVmaW5lIF9fSTkxNV9H RU1fT0JKRUNUX0hfXwo+ID4gPiAgCj4gPiA+IC0jaW5jbHVkZSA8bGludXgvcmVzZXJ2YXRpb24u aD4KPiA+ID4gLQo+ID4gPiAtI2luY2x1ZGUgPGRybS9kcm1fdm1hX21hbmFnZXIuaD4KPiA+ID4g ICNpbmNsdWRlIDxkcm0vZHJtX2dlbS5oPgo+ID4gPiAgI2luY2x1ZGUgPGRybS9kcm1fZmlsZS5o Pgo+ID4gPiAgI2luY2x1ZGUgPGRybS9kcm1fZGV2aWNlLmg+Cj4gPiA+ICAKPiA+ID4gICNpbmNs dWRlIDxkcm0vaTkxNV9kcm0uaD4KPiA+ID4gIAo+ID4gPiAtI2luY2x1ZGUgImk5MTVfcmVxdWVz dC5oIgo+ID4gPiAtI2luY2x1ZGUgImk5MTVfc2VsZnRlc3QuaCIKPiA+ID4gLQo+ID4gPiAtc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3Q7Cj4gPiA+IC0KPiA+ID4gLS8qCj4gPiA+IC0gKiBzdHJ1 Y3QgaTkxNV9sdXRfaGFuZGxlIHRyYWNrcyB0aGUgZmFzdCBsb29rdXBzIGZyb20gaGFuZGxlIHRv IHZtYSB1c2VkCj4gPiA+IC0gKiBmb3IgZXhlY2J1Zi4gQWx0aG91Z2ggd2UgdXNlIGEgcmFkaXh0 cmVlIGZvciB0aGF0IG1hcHBpbmcsIGluIG9yZGVyIHRvCj4gPiA+IC0gKiByZW1vdmUgdGhlbSBh cyB0aGUgb2JqZWN0IG9yIGNvbnRleHQgaXMgY2xvc2VkLCB3ZSBuZWVkIGEgc2Vjb25kYXJ5IGxp c3QKPiA+ID4gLSAqIGFuZCBhIHRyYW5zbGF0aW9uIGVudHJ5IChpOTE1X2x1dF9oYW5kbGUpLgo+ ID4gPiAtICovCj4gPiA+IC1zdHJ1Y3QgaTkxNV9sdXRfaGFuZGxlIHsKPiA+ID4gLSAgICAgc3Ry dWN0IGxpc3RfaGVhZCBvYmpfbGluazsKPiA+ID4gLSAgICAgc3RydWN0IGxpc3RfaGVhZCBjdHhf bGluazsKPiA+ID4gLSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKPiA+ID4gLSAg ICAgdTMyIGhhbmRsZTsKPiA+ID4gLX07Cj4gPiA+IC0KPiA+ID4gLXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0X29wcyB7Cj4gPiA+IC0gICAgIHVuc2lnbmVkIGludCBmbGFnczsKPiA+ID4gLSNk ZWZpbmUgSTkxNV9HRU1fT0JKRUNUX0hBU19TVFJVQ1RfUEFHRSAgICAgIEJJVCgwKQo+ID4gPiAt I2RlZmluZSBJOTE1X0dFTV9PQkpFQ1RfSVNfU0hSSU5LQUJMRSAgICAgICAgQklUKDEpCj4gPiA+ IC0jZGVmaW5lIEk5MTVfR0VNX09CSkVDVF9JU19QUk9YWSAgICAgQklUKDIpCj4gPiA+IC0jZGVm aW5lIEk5MTVfR0VNX09CSkVDVF9BU1lOQ19DQU5DRUwgQklUKDMpCj4gPiA+IC0KPiA+ID4gLSAg ICAgLyogSW50ZXJmYWNlIGJldHdlZW4gdGhlIEdFTSBvYmplY3QgYW5kIGl0cyBiYWNraW5nIHN0 b3JhZ2UuCj4gPiA+IC0gICAgICAqIGdldF9wYWdlcygpIGlzIGNhbGxlZCBvbmNlIHByaW9yIHRv IHRoZSB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgc2V0Cj4gPiA+IC0gICAgICAqIG9mIHBhZ2VzIGJl Zm9yZSB0byBiaW5kaW5nIHRoZW0gaW50byB0aGUgR1RULCBhbmQgcHV0X3BhZ2VzKCkgaXMKPiA+ ID4gLSAgICAgICogY2FsbGVkIGFmdGVyIHdlIG5vIGxvbmdlciBuZWVkIHRoZW0uIEFzIHdlIGV4 cGVjdCB0aGVyZSB0byBiZQo+ID4gPiAtICAgICAgKiBhc3NvY2lhdGVkIGNvc3Qgd2l0aCBtaWdy YXRpbmcgcGFnZXMgYmV0d2VlbiB0aGUgYmFja2luZyBzdG9yYWdlCj4gPiA+IC0gICAgICAqIGFu ZCBtYWtpbmcgdGhlbSBhdmFpbGFibGUgZm9yIHRoZSBHUFUgKGUuZy4gY2xmbHVzaCksIHdlIG1h eSBob2xkCj4gPiA+IC0gICAgICAqIG9udG8gdGhlIHBhZ2VzIGFmdGVyIHRoZXkgYXJlIG5vIGxv bmdlciByZWZlcmVuY2VkIGJ5IHRoZSBHUFUKPiA+ID4gLSAgICAgICogaW4gY2FzZSB0aGV5IG1h eSBiZSB1c2VkIGFnYWluIHNob3J0bHkgKGZvciBleGFtcGxlIG1pZ3JhdGluZyB0aGUKPiA+ID4g LSAgICAgICogcGFnZXMgdG8gYSBkaWZmZXJlbnQgbWVtb3J5IGRvbWFpbiB3aXRoaW4gdGhlIEdU VCkuIHB1dF9wYWdlcygpCj4gPiA+IC0gICAgICAqIHdpbGwgdGhlcmVmb3JlIG1vc3QgbGlrZWx5 IGJlIGNhbGxlZCB3aGVuIHRoZSBvYmplY3QgaXRzZWxmIGlzCj4gPiA+IC0gICAgICAqIGJlaW5n IHJlbGVhc2VkIG9yIHVuZGVyIG1lbW9yeSBwcmVzc3VyZSAod2hlcmUgd2UgYXR0ZW1wdCB0bwo+ ID4gPiAtICAgICAgKiByZWFwIHBhZ2VzIGZvciB0aGUgc2hyaW5rZXIpLgo+ID4gPiAtICAgICAg Ki8KPiA+ID4gLSAgICAgaW50ICgqZ2V0X3BhZ2VzKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqKTsKPiA+ID4gLSAgICAgdm9pZCAoKnB1dF9wYWdlcykoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKiwgc3RydWN0IHNnX3RhYmxlICopOwo+ID4gPiAtCj4gPiA+IC0gICAgIGludCAoKnB3 cml0ZSkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKiwKPiA+ID4gLSAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3B3cml0ZSAqKTsKPiA+ID4gLQo+ID4gPiAt ICAgICBpbnQgKCpkbWFidWZfZXhwb3J0KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqKTsK PiA+ID4gLSAgICAgdm9pZCAoKnJlbGVhc2UpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICop Owo+ID4gPiAtfTsKPiA+ID4gLQo+ID4gPiAtc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+ ID4gPiAtICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgYmFzZTsKPiA+ID4gLQo+ID4gPiAtICAg ICBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgKm9wczsKPiA+ID4gLQo+ID4g PiAtICAgICBzdHJ1Y3Qgewo+ID4gPiAtICAgICAgICAgICAgIC8qKgo+ID4gPiAtICAgICAgICAg ICAgICAqIEB2bWEubG9jazogcHJvdGVjdCB0aGUgbGlzdC90cmVlIG9mIHZtYXMKPiA+ID4gLSAg ICAgICAgICAgICAgKi8KPiA+ID4gLSAgICAgICAgICAgICBzcGlubG9ja190IGxvY2s7Cj4gPiA+ IC0KPiA+ID4gLSAgICAgICAgICAgICAvKioKPiA+ID4gLSAgICAgICAgICAgICAgKiBAdm1hLmxp c3Q6IExpc3Qgb2YgVk1BcyBiYWNrZWQgYnkgdGhpcyBvYmplY3QKPiA+ID4gLSAgICAgICAgICAg ICAgKgo+ID4gPiAtICAgICAgICAgICAgICAqIFRoZSBWTUEgb24gdGhpcyBsaXN0IGFyZSBvcmRl cmVkIGJ5IHR5cGUsIGFsbCBHR1RUIHZtYSBhcmUKPiA+ID4gLSAgICAgICAgICAgICAgKiBwbGFj ZWQgYXQgdGhlIGhlYWQgYW5kIGFsbCBwcEdUVCB2bWEgYXJlIHBsYWNlZCBhdCB0aGUgdGFpbC4K PiA+ID4gLSAgICAgICAgICAgICAgKiBUaGUgZGlmZmVyZW50IHR5cGVzIG9mIEdHVFQgdm1hIGFy ZSB1bm9yZGVyZWQgYmV0d2Vlbgo+ID4gPiAtICAgICAgICAgICAgICAqIHRoZW1zZWx2ZXMsIHVz ZSB0aGUgQHZtYS50cmVlICh3aGljaCBoYXMgYSBkZWZpbmVkIG9yZGVyCj4gPiA+IC0gICAgICAg ICAgICAgICogYmV0d2VlbiBhbGwgVk1BKSB0byBxdWlja2x5IGZpbmQgYW4gZXhhY3QgbWF0Y2gu Cj4gPiA+IC0gICAgICAgICAgICAgICovCj4gPiA+IC0gICAgICAgICAgICAgc3RydWN0IGxpc3Rf aGVhZCBsaXN0Owo+ID4gPiAtCj4gPiA+IC0gICAgICAgICAgICAgLyoqCj4gPiA+IC0gICAgICAg ICAgICAgICogQHZtYS50cmVlOiBPcmRlcmVkIHRyZWUgb2YgVk1BcyBiYWNrZWQgYnkgdGhpcyBv YmplY3QKPiA+ID4gLSAgICAgICAgICAgICAgKgo+ID4gPiAtICAgICAgICAgICAgICAqIEFsbCBW TUEgY3JlYXRlZCBmb3IgdGhpcyBvYmplY3QgYXJlIHBsYWNlZCBpbiB0aGUgQHZtYS50cmVlCj4g PiA+IC0gICAgICAgICAgICAgICogZm9yIGZhc3QgcmV0cmlldmFsIHZpYSBhIGJpbmFyeSBzZWFy Y2ggaW4KPiA+ID4gLSAgICAgICAgICAgICAgKiBpOTE1X3ZtYV9pbnN0YW5jZSgpLiBUaGV5IGFy ZSBhbHNvIGFkZGVkIHRvIEB2bWEubGlzdCBmb3IKPiA+ID4gLSAgICAgICAgICAgICAgKiBlYXN5 IGl0ZXJhdGlvbi4KPiA+ID4gLSAgICAgICAgICAgICAgKi8KPiA+ID4gLSAgICAgICAgICAgICBz dHJ1Y3QgcmJfcm9vdCB0cmVlOwo+ID4gPiAtICAgICB9IHZtYTsKPiA+ID4gLQo+ID4gPiAtICAg ICAvKioKPiA+ID4gLSAgICAgICogQGx1dF9saXN0OiBMaXN0IG9mIHZtYSBsb29rdXAgZW50cmll cyBpbiB1c2UgZm9yIHRoaXMgb2JqZWN0Lgo+ID4gPiAtICAgICAgKgo+ID4gPiAtICAgICAgKiBJ ZiB0aGlzIG9iamVjdCBpcyBjbG9zZWQsIHdlIG5lZWQgdG8gcmVtb3ZlIGFsbCBvZiBpdHMgVk1B IGZyb20KPiA+ID4gLSAgICAgICogdGhlIGZhc3QgbG9va3VwIGluZGV4IGluIGFzc29jaWF0ZWQg Y29udGV4dHM7IEBsdXRfbGlzdCBwcm92aWRlcwo+ID4gPiAtICAgICAgKiB0aGlzIHRyYW5zbGF0 aW9uIGZyb20gb2JqZWN0IHRvIGNvbnRleHQtPmhhbmRsZXNfdm1hLgo+ID4gPiAtICAgICAgKi8K PiA+ID4gLSAgICAgc3RydWN0IGxpc3RfaGVhZCBsdXRfbGlzdDsKPiA+ID4gLQo+ID4gPiAtICAg ICAvKiogU3RvbGVuIG1lbW9yeSBmb3IgdGhpcyBvYmplY3QsIGluc3RlYWQgb2YgYmVpbmcgYmFj a2VkIGJ5IHNobWVtLiAqLwo+ID4gPiAtICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbjsK PiA+ID4gLSAgICAgdW5pb24gewo+ID4gPiAtICAgICAgICAgICAgIHN0cnVjdCByY3VfaGVhZCBy Y3U7Cj4gPiA+IC0gICAgICAgICAgICAgc3RydWN0IGxsaXN0X25vZGUgZnJlZWQ7Cj4gPiA+IC0g ICAgIH07Cj4gPiA+IC0KPiA+ID4gLSAgICAgLyoqCj4gPiA+IC0gICAgICAqIFdoZXRoZXIgdGhl IG9iamVjdCBpcyBjdXJyZW50bHkgaW4gdGhlIEdHVFQgbW1hcC4KPiA+ID4gLSAgICAgICovCj4g PiA+IC0gICAgIHVuc2lnbmVkIGludCB1c2VyZmF1bHRfY291bnQ7Cj4gPiA+IC0gICAgIHN0cnVj dCBsaXN0X2hlYWQgdXNlcmZhdWx0X2xpbms7Cj4gPiA+IC0KPiA+ID4gLSAgICAgc3RydWN0IGxp c3RfaGVhZCBiYXRjaF9wb29sX2xpbms7Cj4gPiA+IC0gICAgIEk5MTVfU0VMRlRFU1RfREVDTEFS RShzdHJ1Y3QgbGlzdF9oZWFkIHN0X2xpbmspOwo+ID4gPiAtCj4gPiA+IC0gICAgIHVuc2lnbmVk IGxvbmcgZmxhZ3M7Cj4gPiA+IC0KPiA+ID4gLSAgICAgLyoqCj4gPiA+IC0gICAgICAqIEhhdmUg d2UgdGFrZW4gYSByZWZlcmVuY2UgZm9yIHRoZSBvYmplY3QgZm9yIGluY29tcGxldGUgR1BVCj4g PiA+IC0gICAgICAqIGFjdGl2aXR5Pwo+ID4gPiAtICAgICAgKi8KPiA+ID4gLSNkZWZpbmUgSTkx NV9CT19BQ1RJVkVfUkVGIDAKPiA+ID4gLQo+ID4gPiAtICAgICAvKgo+ID4gPiAtICAgICAgKiBJ cyB0aGUgb2JqZWN0IHRvIGJlIG1hcHBlZCBhcyByZWFkLW9ubHkgdG8gdGhlIEdQVQo+ID4gPiAt ICAgICAgKiBPbmx5IGhvbm91cmVkIGlmIGhhcmR3YXJlIGhhcyByZWxldmFudCBwdGUgYml0Cj4g PiA+IC0gICAgICAqLwo+ID4gPiAtICAgICB1bnNpZ25lZCBpbnQgY2FjaGVfbGV2ZWw6MzsKPiA+ ID4gLSAgICAgdW5zaWduZWQgaW50IGNhY2hlX2NvaGVyZW50OjI7Cj4gPiA+IC0jZGVmaW5lIEk5 MTVfQk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1JFQUQgQklUKDApCj4gPiA+IC0jZGVmaW5lIEk5MTVf Qk9fQ0FDSEVfQ09IRVJFTlRfRk9SX1dSSVRFIEJJVCgxKQo+ID4gPiAtICAgICB1bnNpZ25lZCBp bnQgY2FjaGVfZGlydHk6MTsKPiA+ID4gLQo+ID4gPiAtICAgICAvKioKPiA+ID4gLSAgICAgICog QHJlYWRfZG9tYWluczogUmVhZCBtZW1vcnkgZG9tYWlucy4KPiA+ID4gLSAgICAgICoKPiA+ID4g LSAgICAgICogVGhlc2UgbW9uaXRvciB3aGljaCBjYWNoZXMgY29udGFpbiByZWFkL3dyaXRlIGRh dGEgcmVsYXRlZCB0byB0aGUKPiA+ID4gLSAgICAgICogb2JqZWN0LiBXaGVuIHRyYW5zaXRpb25p bmcgZnJvbSBvbmUgc2V0IG9mIGRvbWFpbnMgdG8gYW5vdGhlciwKPiA+ID4gLSAgICAgICogdGhl IGRyaXZlciBpcyBjYWxsZWQgdG8gZW5zdXJlIHRoYXQgY2FjaGVzIGFyZSBzdWl0YWJseSBmbHVz aGVkIGFuZAo+ID4gPiAtICAgICAgKiBpbnZhbGlkYXRlZC4KPiA+ID4gLSAgICAgICovCj4gPiA+ IC0gICAgIHUxNiByZWFkX2RvbWFpbnM7Cj4gPiA+IC0KPiA+ID4gLSAgICAgLyoqCj4gPiA+IC0g ICAgICAqIEB3cml0ZV9kb21haW46IENvcnJlc3BvbmRpbmcgdW5pcXVlIHdyaXRlIG1lbW9yeSBk b21haW4uCj4gPiA+IC0gICAgICAqLwo+ID4gPiAtICAgICB1MTYgd3JpdGVfZG9tYWluOwo+ID4g PiAtCj4gPiA+IC0gICAgIGF0b21pY190IGZyb250YnVmZmVyX2JpdHM7Cj4gPiA+IC0gICAgIHVu c2lnbmVkIGludCBmcm9udGJ1ZmZlcl9nZ3R0X29yaWdpbjsgLyogd3JpdGUgb25jZSAqLwo+ID4g PiAtICAgICBzdHJ1Y3QgaTkxNV9hY3RpdmVfcmVxdWVzdCBmcm9udGJ1ZmZlcl93cml0ZTsKPiA+ ID4gLQo+ID4gPiAtICAgICAvKiogQ3VycmVudCB0aWxpbmcgc3RyaWRlIGZvciB0aGUgb2JqZWN0 LCBpZiBpdCdzIHRpbGVkLiAqLwo+ID4gPiAtICAgICB1bnNpZ25lZCBpbnQgdGlsaW5nX2FuZF9z dHJpZGU7Cj4gPiA+IC0jZGVmaW5lIEZFTkNFX01JTklNVU1fU1RSSURFIDEyOCAvKiBTZWUgaTkx NV90aWxpbmdfb2soKSAqLwo+ID4gPiAtI2RlZmluZSBUSUxJTkdfTUFTSyAoRkVOQ0VfTUlOSU1V TV9TVFJJREUtMSkKPiA+ID4gLSNkZWZpbmUgU1RSSURFX01BU0sgKH5USUxJTkdfTUFTSykKPiA+ ID4gLQo+ID4gPiAtICAgICAvKiogQ291bnQgb2YgVk1BIGFjdHVhbGx5IGJvdW5kIGJ5IHRoaXMg b2JqZWN0ICovCj4gPiA+IC0gICAgIHVuc2lnbmVkIGludCBiaW5kX2NvdW50Owo+ID4gPiAtICAg ICB1bnNpZ25lZCBpbnQgYWN0aXZlX2NvdW50Owo+ID4gPiAtICAgICAvKiogQ291bnQgb2YgaG93 IG1hbnkgZ2xvYmFsIFZNQSBhcmUgY3VycmVudGx5IHBpbm5lZCBmb3IgdXNlIGJ5IEhXICovCj4g PiA+IC0gICAgIHVuc2lnbmVkIGludCBwaW5fZ2xvYmFsOwo+ID4gPiAtCj4gPiA+IC0gICAgIHN0 cnVjdCB7Cj4gPiA+IC0gICAgICAgICAgICAgc3RydWN0IG11dGV4IGxvY2s7IC8qIHByb3RlY3Rz IHRoZSBwYWdlcyBhbmQgdGhlaXIgdXNlICovCj4gPiA+IC0gICAgICAgICAgICAgYXRvbWljX3Qg cGFnZXNfcGluX2NvdW50Owo+ID4gPiAtCj4gPiA+IC0gICAgICAgICAgICAgc3RydWN0IHNnX3Rh YmxlICpwYWdlczsKPiA+ID4gLSAgICAgICAgICAgICB2b2lkICptYXBwaW5nOwo+ID4gPiAtCj4g PiA+IC0gICAgICAgICAgICAgLyogVE9ETzogd2hhY2sgc29tZSBvZiB0aGlzIGludG8gdGhlIGVy cm9yIHN0YXRlICovCj4gPiA+IC0gICAgICAgICAgICAgc3RydWN0IGk5MTVfcGFnZV9zaXplcyB7 Cj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAvKioKPiA+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAqIFRoZSBzZyBtYXNrIG9mIHRoZSBwYWdlcyBzZ190YWJsZS4gaS5lIHRoZSBtYXNrIG9m Cj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgKiBvZiB0aGUgbGVuZ3RocyBmb3IgZWFjaCBz ZyBlbnRyeS4KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAqLwo+ID4gPiAtICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IHBoeXM7Cj4gPiA+IC0KPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgIC8qKgo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICogVGhlIGd0dCBwYWdl IHNpemVzIHdlIGFyZSBhbGxvd2VkIHRvIHVzZSBnaXZlbiB0aGUKPiA+ID4gLSAgICAgICAgICAg ICAgICAgICAgICAqIHNnIG1hc2sgYW5kIHRoZSBzdXBwb3J0ZWQgcGFnZSBzaXplcy4gVGhpcyB3 aWxsCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgKiBleHByZXNzIHRoZSBzbWFsbGVzdCB1 bml0IHdlIGNhbiB1c2UgZm9yIHRoZSB3aG9sZQo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAg ICogb2JqZWN0LCBhcyB3ZWxsIGFzIHRoZSBsYXJnZXIgc2l6ZXMgd2UgbWF5IGJlIGFibGUKPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAqIHRvIHVzZSBvcHBvcnR1bmlzdGljYWxseS4KPiA+ ID4gLSAgICAgICAgICAgICAgICAgICAgICAqLwo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IHNnOwo+ID4gPiAtCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAvKioK PiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAqIFRoZSBhY3R1YWwgZ3R0IHBhZ2Ugc2l6ZSB1 c2FnZS4gU2luY2Ugd2UgY2FuIGhhdmUKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAqIG11 bHRpcGxlIHZtYSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3Qgd2UgbmVlZCB0bwo+ID4gPiAt ICAgICAgICAgICAgICAgICAgICAgICogcHJldmVudCBhbnkgdHJhbXBsaW5nIG9mIHN0YXRlLCBo ZW5jZSBhIGNvcHkgb2YgdGhpcwo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICogc3RydWN0 IGFsc28gbGl2ZXMgaW4gZWFjaCB2bWEsIHRoZXJlZm9yZSB0aGUgZ3R0Cj4gPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgKiB2YWx1ZSBoZXJlIHNob3VsZCBvbmx5IGJlIHJlYWQvd3JpdGUgdGhy b3VnaCB0aGUgdm1hLgo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICovCj4gPiA+IC0gICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZ3R0Owo+ID4gPiAtICAgICAgICAgICAgIH0g cGFnZV9zaXplczsKPiA+ID4gLQo+ID4gPiAtICAgICAgICAgICAgIEk5MTVfU0VMRlRFU1RfREVD TEFSRSh1bnNpZ25lZCBpbnQgcGFnZV9tYXNrKTsKPiA+ID4gLQo+ID4gPiAtICAgICAgICAgICAg IHN0cnVjdCBpOTE1X2dlbV9vYmplY3RfcGFnZV9pdGVyIHsKPiA+ID4gLSAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBzY2F0dGVybGlzdCAqc2dfcG9zOwo+ID4gPiAtICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IHNnX2lkeDsgLyogaW4gcGFnZXMsIGJ1dCAzMmJpdCBlZWshICov Cj4gPiA+IC0KPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByYWRpeF90cmVlX3Jv b3QgcmFkaXg7Cj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbXV0ZXggbG9jazsg LyogcHJvdGVjdHMgdGhpcyBjYWNoZSAqLwo+ID4gPiAtICAgICAgICAgICAgIH0gZ2V0X3BhZ2U7 Cj4gPiA+IC0KPiA+ID4gLSAgICAgICAgICAgICAvKioKPiA+ID4gLSAgICAgICAgICAgICAgKiBF bGVtZW50IHdpdGhpbiBpOTE1LT5tbS51bmJvdW5kX2xpc3Qgb3IgaTkxNS0+bW0uYm91bmRfbGlz dCwKPiA+ID4gLSAgICAgICAgICAgICAgKiBsb2NrZWQgYnkgaTkxNS0+bW0ub2JqX2xvY2suCj4g PiA+IC0gICAgICAgICAgICAgICovCj4gPiA+IC0gICAgICAgICAgICAgc3RydWN0IGxpc3RfaGVh ZCBsaW5rOwo+ID4gPiAtCj4gPiA+IC0gICAgICAgICAgICAgLyoqCj4gPiA+IC0gICAgICAgICAg ICAgICogQWR2aWNlOiBhcmUgdGhlIGJhY2tpbmcgcGFnZXMgcHVyZ2VhYmxlPwo+ID4gPiAtICAg ICAgICAgICAgICAqLwo+ID4gPiAtICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtYWR2OjI7Cj4g PiA+IC0KPiA+ID4gLSAgICAgICAgICAgICAvKioKPiA+ID4gLSAgICAgICAgICAgICAgKiBUaGlz IGlzIHNldCBpZiB0aGUgb2JqZWN0IGhhcyBiZWVuIHdyaXR0ZW4gdG8gc2luY2UgdGhlCj4gPiA+ IC0gICAgICAgICAgICAgICogcGFnZXMgd2VyZSBsYXN0IGFjcXVpcmVkLgo+ID4gPiAtICAgICAg ICAgICAgICAqLwo+ID4gPiAtICAgICAgICAgICAgIGJvb2wgZGlydHk6MTsKPiA+ID4gLQo+ID4g PiAtICAgICAgICAgICAgIC8qKgo+ID4gPiAtICAgICAgICAgICAgICAqIFRoaXMgaXMgc2V0IGlm IHRoZSBvYmplY3QgaGFzIGJlZW4gcGlubmVkIGR1ZSB0byB1bmtub3duCj4gPiA+IC0gICAgICAg ICAgICAgICogc3dpenpsaW5nLgo+ID4gPiAtICAgICAgICAgICAgICAqLwo+ID4gPiAtICAgICAg ICAgICAgIGJvb2wgcXVpcmtlZDoxOwo+ID4gPiAtICAgICB9IG1tOwo+ID4gPiAtCj4gPiA+IC0g ICAgIC8qKiBCcmVhZGNydW1iIG9mIGxhc3QgcmVuZGVyaW5nIHRvIHRoZSBidWZmZXIuCj4gPiA+ IC0gICAgICAqIFRoZXJlIGNhbiBvbmx5IGJlIG9uZSB3cml0ZXIsIGJ1dCB3ZSBhbGxvdyBmb3Ig bXVsdGlwbGUgcmVhZGVycy4KPiA+ID4gLSAgICAgICogSWYgdGhlcmUgaXMgYSB3cml0ZXIgdGhh dCBuZWNlc3NhcmlseSBpbXBsaWVzIHRoYXQgYWxsIG90aGVyCj4gPiA+IC0gICAgICAqIHJlYWQg cmVxdWVzdHMgYXJlIGNvbXBsZXRlIC0gYnV0IHdlIG1heSBvbmx5IGJlIGxhemlseSBjbGVhcmlu Zwo+ID4gPiAtICAgICAgKiB0aGUgcmVhZCByZXF1ZXN0cy4gQSByZWFkIHJlcXVlc3QgaXMgbmF0 dXJhbGx5IHRoZSBtb3N0IHJlY2VudAo+ID4gPiAtICAgICAgKiByZXF1ZXN0IG9uIGEgcmluZywg c28gd2UgbWF5IGhhdmUgdHdvIGRpZmZlcmVudCB3cml0ZSBhbmQgcmVhZAo+ID4gPiAtICAgICAg KiByZXF1ZXN0cyBvbiBvbmUgcmluZyB3aGVyZSB0aGUgd3JpdGUgcmVxdWVzdCBpcyBvbGRlciB0 aGFuIHRoZQo+ID4gPiAtICAgICAgKiByZWFkIHJlcXVlc3QuIFRoaXMgYWxsb3dzIGZvciB0aGUg Q1BVIHRvIHJlYWQgZnJvbSBhbiBhY3RpdmUKPiA+ID4gLSAgICAgICogYnVmZmVyIGJ5IG9ubHkg d2FpdGluZyBmb3IgdGhlIHdyaXRlIHRvIGNvbXBsZXRlLgo+ID4gPiAtICAgICAgKi8KPiA+ID4g LSAgICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqcmVzdjsKPiA+ID4gLQo+ID4gPiAtICAg ICAvKiogUmVmZXJlbmNlcyBmcm9tIGZyYW1lYnVmZmVycywgbG9ja3Mgb3V0IHRpbGluZyBjaGFu Z2VzLiAqLwo+ID4gPiAtICAgICB1bnNpZ25lZCBpbnQgZnJhbWVidWZmZXJfcmVmZXJlbmNlczsK PiA+ID4gLQo+ID4gPiAtICAgICAvKiogUmVjb3JkIG9mIGFkZHJlc3MgYml0IDE3IG9mIGVhY2gg cGFnZSBhdCBsYXN0IHVuYmluZC4gKi8KPiA+ID4gLSAgICAgdW5zaWduZWQgbG9uZyAqYml0XzE3 Owo+ID4gPiAtCj4gPiA+IC0gICAgIHVuaW9uIHsKPiA+ID4gLSAgICAgICAgICAgICBzdHJ1Y3Qg aTkxNV9nZW1fdXNlcnB0ciB7Cj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3Qg cHRyOwo+ID4gPiAtCj4gPiA+IC0gICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaTkxNV9tbV9z dHJ1Y3QgKm1tOwo+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGk5MTVfbW11X29i amVjdCAqbW11X29iamVjdDsKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yazsKPiA+ID4gLSAgICAgICAgICAgICB9IHVzZXJwdHI7Cj4gPiA+IC0KPiA+ ID4gLSAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNjcmF0Y2g7Cj4gPiA+IC0KPiA+ID4gLSAg ICAgICAgICAgICB2b2lkICpndnRfaW5mbzsKPiA+ID4gLSAgICAgfTsKPiA+ID4gLQo+ID4gPiAt ICAgICAvKiogZm9yIHBoeXMgYWxsb2NhdGVkIG9iamVjdHMgKi8KPiA+ID4gLSAgICAgc3RydWN0 IGRybV9kbWFfaGFuZGxlICpwaHlzX2hhbmRsZTsKPiA+ID4gLQo+ID4gPiAtICAgICBzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0IF9fYnVpbHRpbl9yZXN2Owo+ID4gPiAtfTsKPiA+ID4gLQo+ID4g PiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCj4gPiA+IC10b19p bnRlbF9ibyhzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSkKPiA+ID4gLXsKPiA+ID4gLSAgICAg LyogQXNzZXJ0IHRoYXQgdG9faW50ZWxfYm8oTlVMTCkgPT0gTlVMTCAqLwo+ID4gPiAtICAgICBC VUlMRF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QsIGJhc2UpKTsK PiA+ID4gLQo+ID4gPiAtICAgICByZXR1cm4gY29udGFpbmVyX29mKGdlbSwgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QsIGJhc2UpOwo+ID4gPiAtfQo+ID4gPiArI2luY2x1ZGUgImdlbS9pOTE1 X2dlbV9vYmplY3RfdHlwZXMuaCIKPiA+ID4gIAo+ID4gPiAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmk5MTVfZ2VtX29iamVjdF9hbGxvYyh2b2lkKTsKPiA+ID4gIHZvaWQgaTkxNV9nZW1f b2JqZWN0X2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7Cj4gPiAKPiA+IC0t IAo+ID4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=