From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniele Ceraolo Spurio Subject: Re: [PATCH 3/3] drm/i915/uc: replace uc init/fini misc Date: Tue, 2 Jul 2019 14:22:23 -0700 Message-ID: <7172f5b0-c30d-cea4-ae56-33e2daf48226@intel.com> References: <20190702200947.26497-1-daniele.ceraolospurio@intel.com> <20190702200947.26497-3-daniele.ceraolospurio@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9C6A06E093 for ; Tue, 2 Jul 2019 21:22:36 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Michal Wajdeczko , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA3LzIvMTkgMTo1MiBQTSwgTWljaGFsIFdhamRlY3prbyB3cm90ZToKPiBPbiBUdWUsIDAy IEp1bCAyMDE5IDIyOjA5OjQ3ICswMjAwLCBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIAo+IDxkYW5p ZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPiB3cm90ZToKPiAKPj4gVGhlICJtaXNjIiB0ZXJt aW5vbG9neSBkb2Vzbid0IGNsZWFybHkgZXhwbGFpbiB3aGF0IHdlIGludGVuZCB0byBjb3Zlcgo+ PiBpbiB0aGlzIHBoYXNlLiBUaGUgb25seSB0aGluZyB3ZSBkbyBpbiB0aGVyZSBhcGFydCBmcm9t IEZXIGZldGNoIGlzCj4+IGluaXRpYWxpemluZyB0aGUgbG9nIHdvcmtxdWV1ZS4gV2UgY2FuIG1v dmUgdGhlIGxhdHRlciB0byB0aGUKPj4gaW5pdF9lYXJseSBwaGFzZSBhbmQgcmVuYW1lIHRoZSBm dW5jdGlvbiB0byBjbGFyaWZ5IHRoYXQgdGhleSBvbmx5Cj4+IGZldGNoL3JlbGVhc2UgdGhlIGJs b2JzLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIDxkYW5pZWxl LmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgo+PiBDYzogTWljaGFsIFdhamRlY3prbyA8bWljaGFs LndhamRlY3prb0BpbnRlbC5jb20+Cj4+IC0tLQo+PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmPCoMKgwqDCoMKgIHzCoCA3ICsrKy0KPj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jwqDCoMKgwqDCoCB8IDEyICsrKy0tLQo+PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Yy5jwqDCoMKgwqAgfCA1NyArKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmjCoMKgwqDCoCB8wqAgNSArLS0KPj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9nLmMgfCAzMiArKysrKysrKysrKysr KystCj4+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5oIHzCoCAzICstCj4+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmPCoMKgwqDCoCB8wqAgOCAtLS0tCj4+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmjCoMKgwqDCoCB8wqAgNiAtLS0KPj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jwqDCoMKgwqDCoCB8IDUwICsrKysrKysr KystLS0tLS0tLS0tLS0tLQo+PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmjCoMKg wqDCoMKgIHzCoCA2ICstLQo+PiDCoDEwIGZpbGVzIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKyks IDExMSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiBpbmRl eCA3OTRjNjgxNGE2ZDAuLjIwY2EwMjA4ZGQ5OCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCj4+IEBAIC05MzQsNyArOTM0LDExIEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9l YXJseShzdHJ1Y3QgCj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiDCoMKgwqDCoCBp bnRlbF9kZXRlY3RfcGNoKGRldl9wcml2KTsKPj4gwqDCoMKgwqBpbnRlbF93b3BjbV9pbml0X2Vh cmx5KCZkZXZfcHJpdi0+d29wY20pOwo+PiAtwqDCoMKgIGludGVsX3VjX2luaXRfZWFybHkoZGV2 X3ByaXYpOwo+PiArCj4+ICvCoMKgwqAgcmV0ID0gaW50ZWxfdWNfaW5pdF9lYXJseShkZXZfcHJp dik7Cj4+ICvCoMKgwqAgaWYgKHJldCkKPj4gK8KgwqDCoMKgwqDCoMKgIGdvdG8gZXJyX2dlbTsK Pj4gKwo+PiDCoMKgwqDCoCBpbnRlbF9wbV9zZXR1cChkZXZfcHJpdik7Cj4+IMKgwqDCoMKgIGlu dGVsX2luaXRfZHBpbyhkZXZfcHJpdik7Cj4+IMKgwqDCoMKgIHJldCA9IGludGVsX3Bvd2VyX2Rv bWFpbnNfaW5pdChkZXZfcHJpdik7Cj4+IEBAIC05NTMsNiArOTU3LDcgQEAgc3RhdGljIGludCBp OTE1X2RyaXZlcl9pbml0X2Vhcmx5KHN0cnVjdCAKPj4gZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+IGVycl91YzoKPj4gwqDCoMKgwqAgaW50ZWxfdWNfY2xlYW51cF9lYXJseShkZXZfcHJp dik7Cj4+ICtlcnJfZ2VtOgo+PiDCoMKgwqDCoCBpOTE1X2dlbV9jbGVhbnVwX2Vhcmx5KGRldl9w cml2KTsKPj4gwqBlcnJfd29ya3F1ZXVlczoKPj4gwqDCoMKgwqAgaTkxNV93b3JrcXVldWVzX2Ns ZWFudXAoZGV2X3ByaXYpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+IGluZGV4IGI3 ZjI5MGI3N2Y4Zi4uNDZhNzU4NDRmMzAzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMK Pj4gQEAgLTE0MjksMTMgKzE0MjksMTEgQEAgaW50IGk5MTVfZ2VtX2luaXQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgCj4+ICpkZXZfcHJpdikKPj4gwqDCoMKgwqAgaWYgKHJldCkKPj4gwqDCoMKg wqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiAtwqDCoMKgIHJldCA9IGludGVsX3VjX2luaXRfbWlz YyhkZXZfcHJpdik7Cj4+IC3CoMKgwqAgaWYgKHJldCkKPj4gLcKgwqDCoMKgwqDCoMKgIHJldHVy biByZXQ7Cj4+ICvCoMKgwqAgaW50ZWxfdWNfZmV0Y2hfZmlybXdhcmVzKGRldl9wcml2KTsKPj4g wqDCoMKgwqByZXQgPSBpbnRlbF93b3BjbV9pbml0KCZkZXZfcHJpdi0+d29wY20pOwo+PiDCoMKg wqDCoCBpZiAocmV0KQo+PiAtwqDCoMKgwqDCoMKgwqAgZ290byBlcnJfdWNfbWlzYzsKPj4gK8Kg wqDCoMKgwqDCoMKgIGdvdG8gZXJyX3VjX2Z3Owo+PiDCoMKgwqDCoC8qIFRoaXMgaXMganVzdCBh IHNlY3VyaXR5IGJsYW5rZXQgdG8gcGxhY2F0ZSBkcmFnb25zLgo+PiDCoMKgwqDCoMKgICogT24g c29tZSBzeXN0ZW1zLCB3ZSB2ZXJ5IHNwb3JhZGljYWxseSBvYnNlcnZlIHRoYXQgdGhlIGZpcnN0 IFRMQnMKPj4gQEAgLTE1NjEsOCArMTU1OSw4IEBAIGludCBpOTE1X2dlbV9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlIAo+PiAqZGV2X3ByaXYpCj4+IMKgwqDCoMKgIGludGVsX3VuY29yZV9m b3JjZXdha2VfcHV0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsKPj4gwqDCoMKg wqAgbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4+IC1lcnJfdWNf bWlzYzoKPj4gLcKgwqDCoCBpbnRlbF91Y19maW5pX21pc2MoZGV2X3ByaXYpOwo+PiArZXJyX3Vj X2Z3Ogo+PiArwqDCoMKgIGludGVsX3VjX2NsZWFudXBfZmlybXdhcmVzKGRldl9wcml2KTsKPj4g wqDCoMKgwqBpZiAocmV0ICE9IC1FSU8pIHsKPj4gwqDCoMKgwqDCoMKgwqDCoCBpOTE1X2dlbV9j bGVhbnVwX3VzZXJwdHIoZGV2X3ByaXYpOwo+PiBAQCAtMTYyOCw3ICsxNjI2LDcgQEAgdm9pZCBp OTE1X2dlbV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIAo+PiAqZGV2X3ByaXYpCj4+IMKg wqDCoMKgaW50ZWxfY2xlYW51cF9ndF9wb3dlcnNhdmUoZGV2X3ByaXYpOwo+PiAtwqDCoMKgIGlu dGVsX3VjX2ZpbmlfbWlzYyhkZXZfcHJpdik7Cj4+ICvCoMKgwqAgaW50ZWxfdWNfY2xlYW51cF9m aXJtd2FyZXMoZGV2X3ByaXYpOwo+PiDCoMKgwqDCoCBpOTE1X2dlbV9jbGVhbnVwX3VzZXJwdHIo ZGV2X3ByaXYpOwo+PiDCoMKgwqDCoCBpbnRlbF90aW1lbGluZXNfZmluaShkZXZfcHJpdik7Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuYyAKPj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuYwo+PiBpbmRleCA1MDFiNzRmNDQzNzQuLjAzZmFk NGZlM2Q5YiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjLmMKPj4gQEAgLTc0LDEzICs3 NCwxNiBAQCB2b2lkIGludGVsX2d1Y19pbml0X3NlbmRfcmVncyhzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMpCj4+IMKgwqDCoMKgIGd1Yy0+c2VuZF9yZWdzLmZ3X2RvbWFpbnMgPSBmd19kb21haW5zOwo+ PiDCoH0KPj4gLXZvaWQgaW50ZWxfZ3VjX2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1YyAqZ3Vj KQo+PiAraW50IGludGVsX2d1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4g wqB7Cj4+IMKgwqDCoMKgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZ3VjX3RvX2k5 MTUoZ3VjKTsKPj4gK8KgwqDCoCBpbnQgcmV0Owo+PiDCoMKgwqDCoGludGVsX2d1Y19md19pbml0 X2Vhcmx5KGd1Yyk7Cj4+IMKgwqDCoMKgIGludGVsX2d1Y19jdF9pbml0X2Vhcmx5KCZndWMtPmN0 KTsKPj4gLcKgwqDCoCBpbnRlbF9ndWNfbG9nX2luaXRfZWFybHkoJmd1Yy0+bG9nKTsKPj4gK8Kg wqDCoCByZXQgPSBpbnRlbF9ndWNfbG9nX2luaXRfZWFybHkoJmd1Yy0+bG9nKTsKPj4gK8KgwqDC oCBpZiAocmV0KQo+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4gwqDCoMKgwqBtdXRl eF9pbml0KCZndWMtPnNlbmRfbXV0ZXgpOwo+PiDCoMKgwqDCoCBzcGluX2xvY2tfaW5pdCgmZ3Vj LT5pcnFfbG9jayk7Cj4+IEBAIC05Nyw1OSArMTAwLDEzIEBAIHZvaWQgaW50ZWxfZ3VjX2luaXRf ZWFybHkoc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+PiDCoMKgwqDCoMKgwqDCoMKgIGd1Yy0+aW50 ZXJydXB0cy5lbmFibGUgPSBnZW45X2VuYWJsZV9ndWNfaW50ZXJydXB0czsKPj4gwqDCoMKgwqDC oMKgwqDCoCBndWMtPmludGVycnVwdHMuZGlzYWJsZSA9IGdlbjlfZGlzYWJsZV9ndWNfaW50ZXJy dXB0czsKPj4gwqDCoMKgwqAgfQo+PiAtfQo+PiAtCj4+IC1zdGF0aWMgaW50IGd1Y19pbml0X3dx KHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4gLXsKPj4gLcKgwqDCoCAvKgo+PiAtwqDCoMKgwqAg KiBHdUMgbG9nIGJ1ZmZlciBmbHVzaCB3b3JrIGl0ZW0gaGFzIHRvIGRvIHJlZ2lzdGVyIGFjY2Vz cyB0bwo+PiAtwqDCoMKgwqAgKiBzZW5kIHRoZSBhY2sgdG8gR3VDIGFuZCB0aGlzIHdvcmsgaXRl bSwgaWYgbm90IHN5bmNlZCBiZWZvcmUKPj4gLcKgwqDCoMKgICogc3VzcGVuZCwgY2FuIHBvdGVu dGlhbGx5IGdldCBleGVjdXRlZCBhZnRlciB0aGUgR0ZYIGRldmljZSBpcwo+PiAtwqDCoMKgwqAg KiBzdXNwZW5kZWQuCj4+IC3CoMKgwqDCoCAqIEJ5IG1hcmtpbmcgdGhlIFdRIGFzIGZyZWV6YWJs ZSwgd2UgZG9uJ3QgaGF2ZSB0byBib3RoZXIgYWJvdXQKPj4gLcKgwqDCoMKgICogZmx1c2hpbmcg b2YgdGhpcyB3b3JrIGl0ZW0gZnJvbSB0aGUgc3VzcGVuZCBob29rcywgdGhlIHBlbmRpbmcKPj4g LcKgwqDCoMKgICogd29yayBpdGVtIGlmIGFueSB3aWxsIGJlIGVpdGhlciBleGVjdXRlZCBiZWZv cmUgdGhlIHN1c3BlbmQKPj4gLcKgwqDCoMKgICogb3Igc2NoZWR1bGVkIGxhdGVyIG9uIHJlc3Vt ZS4gVGhpcyB3YXkgdGhlIGhhbmRsaW5nIG9mIHdvcmsKPj4gLcKgwqDCoMKgICogaXRlbSBjYW4g YmUga2VwdCBzYW1lIGJldHdlZW4gc3lzdGVtIHN1c3BlbmQgJiBycG0gc3VzcGVuZC4KPj4gLcKg wqDCoMKgICovCj4+IC3CoMKgwqAgZ3VjLT5sb2cucmVsYXkuZmx1c2hfd3EgPQo+PiAtwqDCoMKg wqDCoMKgwqAgYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoImk5MTUtZ3VjX2xvZyIsCj4+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBXUV9ISUdIUFJJIHwgV1FfRlJFRVpB QkxFKTsKPj4gLcKgwqDCoCBpZiAoIWd1Yy0+bG9nLnJlbGF5LmZsdXNoX3dxKSB7Cj4+IC3CoMKg wqDCoMKgwqDCoCBEUk1fRVJST1IoIkNvdWxkbid0IGFsbG9jYXRlIHdvcmtxdWV1ZSBmb3IgR3VD IGxvZ1xuIik7Cj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT01FTTsKPj4gLcKgwqDCoCB9 Cj4+IMKgwqDCoMKgcmV0dXJuIDA7Cj4+IMKgfQo+PiAtc3RhdGljIHZvaWQgZ3VjX2Zpbmlfd3Eo c3RydWN0IGludGVsX2d1YyAqZ3VjKQo+PiAtewo+PiAtwqDCoMKgIHN0cnVjdCB3b3JrcXVldWVf c3RydWN0ICp3cTsKPj4gLQo+PiAtwqDCoMKgIHdxID0gZmV0Y2hfYW5kX3plcm8oJmd1Yy0+bG9n LnJlbGF5LmZsdXNoX3dxKTsKPj4gLcKgwqDCoCBpZiAod3EpCj4+IC3CoMKgwqDCoMKgwqDCoCBk ZXN0cm95X3dvcmtxdWV1ZSh3cSk7Cj4+IC19Cj4+IC0KPj4gLWludCBpbnRlbF9ndWNfaW5pdF9t aXNjKHN0cnVjdCBpbnRlbF9ndWMgKmd1YykKPj4gK3ZvaWQgaW50ZWxfZ3VjX2ZpbmlfZWFybHko c3RydWN0IGludGVsX2d1YyAqZ3VjKQo+IAo+IGxvb2tzIGxpa2UgdGhpcyBmdW5jdGlvbiBjYW4g YmUgZGVmaW5lZCBhcyBpbmxpbmUgaW4gLmgKPiAKCkkgdGhvdWdodCB3ZSB3ZXJlIG1vdmluZyBh d2F5IGZyb20gaW5saW5lcyBpbiAuaCBmaWxlcyB3aGVuIGl0IGlzIG5vdCAKcmVxdWlyZWQgZm9y IHBlcmZvcm1hbmNlLgoKPj4gwqB7Cj4+IC3CoMKgwqAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUgPSBndWNfdG9faTkxNShndWMpOwo+PiAtwqDCoMKgIGludCByZXQ7Cj4+IC0KPj4gLcKg wqDCoCByZXQgPSBndWNfaW5pdF93cShndWMpOwo+PiAtwqDCoMKgIGlmIChyZXQpCj4+IC3CoMKg wqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiAtCj4+IC3CoMKgwqAgaW50ZWxfdWNfZndfZmV0Y2go aTkxNSwgJmd1Yy0+ZncpOwo+PiAtCj4+IC3CoMKgwqAgcmV0dXJuIDA7Cj4+IC19Cj4+IC0KPj4g LXZvaWQgaW50ZWxfZ3VjX2ZpbmlfbWlzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4+IC17Cj4+ IC3CoMKgwqAgaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaCgmZ3VjLT5mdyk7Cj4+IC3CoMKgwqAg Z3VjX2Zpbmlfd3EoZ3VjKTsKPj4gK8KgwqDCoCBpbnRlbF9ndWNfbG9nX2ZpbmlfZWFybHkoJmd1 Yy0+bG9nKTsKPj4gwqB9Cj4+IHN0YXRpYyBpbnQgZ3VjX3NoYXJlZF9kYXRhX2NyZWF0ZShzdHJ1 Y3QgaW50ZWxfZ3VjICpndWMpCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWMuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+PiBpbmRl eCBlYzEwMzhjMWY1MGUuLjA0NWEzNjA4YmFkZSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjLmgKPj4gQEAgLTE1MCwxMyArMTUwLDEyIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX2d1 Y19nZ3R0X29mZnNldChzdHJ1Y3QgCj4+IGludGVsX2d1YyAqZ3VjLAo+PiDCoMKgwqDCoCByZXR1 cm4gb2Zmc2V0Owo+PiDCoH0KPj4gLXZvaWQgaW50ZWxfZ3VjX2luaXRfZWFybHkoc3RydWN0IGlu dGVsX2d1YyAqZ3VjKTsKPj4gK2ludCBpbnRlbF9ndWNfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxf Z3VjICpndWMpOwo+PiArdm9pZCBpbnRlbF9ndWNfZmluaV9lYXJseShzdHJ1Y3QgaW50ZWxfZ3Vj ICpndWMpOwo+PiDCoHZvaWQgaW50ZWxfZ3VjX2luaXRfc2VuZF9yZWdzKHN0cnVjdCBpbnRlbF9n dWMgKmd1Yyk7Cj4+IMKgdm9pZCBpbnRlbF9ndWNfaW5pdF9wYXJhbXMoc3RydWN0IGludGVsX2d1 YyAqZ3VjKTsKPj4gLWludCBpbnRlbF9ndWNfaW5pdF9taXNjKHN0cnVjdCBpbnRlbF9ndWMgKmd1 Yyk7Cj4+IMKgaW50IGludGVsX2d1Y19pbml0KHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cj4+IMKg dm9pZCBpbnRlbF9ndWNfZmluaShzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpOwo+PiAtdm9pZCBpbnRl bF9ndWNfZmluaV9taXNjKHN0cnVjdCBpbnRlbF9ndWMgKmd1Yyk7Cj4+IMKgaW50IGludGVsX2d1 Y19zZW5kX25vcChzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsIGNvbnN0IHUzMiAqYWN0aW9uLCB1MzIg Cj4+IGxlbiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHUzMiAqcmVzcG9uc2Vf YnVmLCB1MzIgcmVzcG9uc2VfYnVmX3NpemUpOwo+PiDCoGludCBpbnRlbF9ndWNfc2VuZF9tbWlv KHN0cnVjdCBpbnRlbF9ndWMgKmd1YywgY29uc3QgdTMyICphY3Rpb24sIHUzMiAKPj4gbGVuLAo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5jIAo+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2cuYwo+PiBpbmRleCBlM2I4M2VjYjkw YjUuLjRiMWM3YTlmMjNlNyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvZy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2cu Ywo+PiBAQCAtMzc0LDEwICszNzQsNDAgQEAgc3RhdGljIHZvaWQgZ3VjX2xvZ191bm1hcChzdHJ1 Y3QgaW50ZWxfZ3VjX2xvZyAKPj4gKmxvZykKPj4gwqDCoMKgwqAgbG9nLT5yZWxheS5idWZfYWRk ciA9IE5VTEw7Cj4+IMKgfQo+PiAtdm9pZCBpbnRlbF9ndWNfbG9nX2luaXRfZWFybHkoc3RydWN0 IGludGVsX2d1Y19sb2cgKmxvZykKPj4gK2ludCBpbnRlbF9ndWNfbG9nX2luaXRfZWFybHkoc3Ry dWN0IGludGVsX2d1Y19sb2cgKmxvZykKPj4gwqB7Cj4+IMKgwqDCoMKgIG11dGV4X2luaXQoJmxv Zy0+cmVsYXkubG9jayk7Cj4+IMKgwqDCoMKgIElOSVRfV09SSygmbG9nLT5yZWxheS5mbHVzaF93 b3JrLCBjYXB0dXJlX2xvZ3Nfd29yayk7Cj4+ICsKPj4gK8KgwqDCoCAvKgo+PiArwqDCoMKgwqAg KiBHdUMgbG9nIGJ1ZmZlciBmbHVzaCB3b3JrIGl0ZW0gaGFzIHRvIGRvIHJlZ2lzdGVyIGFjY2Vz cyB0bwo+PiArwqDCoMKgwqAgKiBzZW5kIHRoZSBhY2sgdG8gR3VDIGFuZCB0aGlzIHdvcmsgaXRl bSwgaWYgbm90IHN5bmNlZCBiZWZvcmUKPj4gK8KgwqDCoMKgICogc3VzcGVuZCwgY2FuIHBvdGVu dGlhbGx5IGdldCBleGVjdXRlZCBhZnRlciB0aGUgR0ZYIGRldmljZSBpcwo+PiArwqDCoMKgwqAg KiBzdXNwZW5kZWQuCj4+ICvCoMKgwqDCoCAqIEJ5IG1hcmtpbmcgdGhlIFdRIGFzIGZyZWV6YWJs ZSwgd2UgZG9uJ3QgaGF2ZSB0byBib3RoZXIgYWJvdXQKPj4gK8KgwqDCoMKgICogZmx1c2hpbmcg b2YgdGhpcyB3b3JrIGl0ZW0gZnJvbSB0aGUgc3VzcGVuZCBob29rcywgdGhlIHBlbmRpbmcKPj4g K8KgwqDCoMKgICogd29yayBpdGVtIGlmIGFueSB3aWxsIGJlIGVpdGhlciBleGVjdXRlZCBiZWZv cmUgdGhlIHN1c3BlbmQKPj4gK8KgwqDCoMKgICogb3Igc2NoZWR1bGVkIGxhdGVyIG9uIHJlc3Vt ZS4gVGhpcyB3YXkgdGhlIGhhbmRsaW5nIG9mIHdvcmsKPj4gK8KgwqDCoMKgICogaXRlbSBjYW4g YmUga2VwdCBzYW1lIGJldHdlZW4gc3lzdGVtIHN1c3BlbmQgJiBycG0gc3VzcGVuZC4KPj4gK8Kg wqDCoMKgICovCj4+ICvCoMKgwqAgbG9nLT5yZWxheS5mbHVzaF93cSA9Cj4+ICvCoMKgwqDCoMKg wqDCoCBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgiaTkxNS1ndWNfbG9nIiwKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFdRX0hJR0hQUkkgfCBXUV9GUkVFWkFCTEUp Owo+IAo+IEknbSB3b25kZXJpbmcgaWYgdGhpcyBpcyBvayB0aGF0IG5vdyB3ZSBhbHdheXMgY3Jl YXRlIHdxIHJlZ2FyZGxlc3MgR3VDCj4gaXMgdXNlZCBvciBub3QgLi4uIGluIG5vdyByZW1vdmVk IGluaXRfbWlzYyB3ZSBjaGVja2VkIGZvciBVU0VTX0dVQwo+IAo+IG1heWJlIHdlIGNhbiB1c2Ug b3RoZXIgYWxyZWFkeSBleGlzdGluZyB3cSBmb3IgZmx1c2ggd29yayBpbnN0ZWFkPwo+IAoKSSBk b24ndCB0aGluayB3ZSBoYXZlIGFub3RoZXIgc3VpdGFibGUgd3EuIEkgY291bGQgcmVvcmRlciB1 Y19pbml0X2Vhcmx5IAppbnN0ZWFkIHRvIG9ubHkgYWxsb2NhdGUgdGhlIHdxIGlmIFVTRVNfR1VD IGlzIHRydWUsIGUuZy46CgppbnQgaW50ZWxfdWNfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKewoJc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUtPmd1YzsKCXN0 cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5odWM7CglpbnQgcmV0OwoKCWludGVsX2d1Y19m d19pbml0X2Vhcmx5KGd1Yyk7CglpbnRlbF9odWNfZndfaW5pdF9lYXJseShodWMpOwoKCS8qIG9w dGlvbiBzYW5pdGl6aW5nIHJlcXVpcmVzIGZ3IHNlbGVjdGlvbiAqLwogIAlzYW5pdGl6ZV9vcHRp b25zX2Vhcmx5KGk5MTUpOwoKCWlmICghVVNFU19HVUMoaTkxNSkpCgkJcmV0dXJuIDA7CgoJcmV0 ID0gaW50ZWxfZ3VjX2luaXRfZWFybHkoZ3VjKTsKCWlmIChyZXQpCgkJcmV0dXJuIHJldDsKCglp bnRlbF9odWNfaW5pdF9lYXJseShodWMpOwoKCXJldHVybiAwOwp9CgpXaGF0IGRvIHlvdSB0aGlu az8KCj4+ICvCoMKgwqAgaWYgKCFsb2ctPnJlbGF5LmZsdXNoX3dxKSB7Cj4+ICvCoMKgwqDCoMKg wqDCoCBEUk1fRVJST1IoIkNvdWxkbid0IGFsbG9jYXRlIHdvcmtxdWV1ZSBmb3IgR3VDIGxvZ1xu Iik7Cj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVOT01FTTsKPj4gK8KgwqDCoCB9Cj4+ICsK Pj4gK8KgwqDCoCByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArdm9pZCBpbnRlbF9ndWNfbG9nX2Zp bmlfZWFybHkoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZykKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1 Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd3E7Cj4+ICsKPj4gK8KgwqDCoCB3cSA9IGZldGNoX2FuZF96 ZXJvKCZsb2ctPnJlbGF5LmZsdXNoX3dxKTsKPj4gK8KgwqDCoCBpZiAod3EpCj4gCj4gZG8gd2Ug bmVlZCB0byBjaGVjayB0aGlzPyBpZiB3ZSBmYWlsZWQgdG8gYWxsb2NhdGUgd3EgaW4gaW5pdF9l YXJseQo+IHdlIHNob3VsZCBub3QgYmUgaGVyZQo+IAoKVHJ1ZSwgd2lsbCB1cGRhdGUuCgpEYW5p ZWxlCgo+PiArwqDCoMKgwqDCoMKgwqAgZGVzdHJveV93b3JrcXVldWUod3EpOwo+PiDCoH0KPj4g c3RhdGljIGludCBndWNfbG9nX3JlbGF5X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyAqbG9n KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvZy5oIAo+ PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2cuaAo+PiBpbmRleCA3YmM3NjNm MTBjMDMuLjhiNWUyZmM3ZGYyNCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX2xvZy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19s b2cuaAo+PiBAQCAtODAsNyArODAsOCBAQCBzdHJ1Y3QgaW50ZWxfZ3VjX2xvZyB7Cj4+IMKgwqDC oMKgIH0gc3RhdHNbR1VDX01BWF9MT0dfQlVGRkVSXTsKPj4gwqB9Owo+PiAtdm9pZCBpbnRlbF9n dWNfbG9nX2luaXRfZWFybHkoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZyk7Cj4+ICtpbnQgaW50 ZWxfZ3VjX2xvZ19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwo+PiArdm9p ZCBpbnRlbF9ndWNfbG9nX2ZpbmlfZWFybHkoc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZyk7Cj4+ IMKgaW50IGludGVsX2d1Y19sb2dfY3JlYXRlKHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cpOwo+ PiDCoHZvaWQgaW50ZWxfZ3VjX2xvZ19kZXN0cm95KHN0cnVjdCBpbnRlbF9ndWNfbG9nICpsb2cp Owo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMgCj4+IGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmMKPj4gaW5kZXggZmI2ZjY5M2QzY2FjLi4y YTQxZWU4OWExNmQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1 Yy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5jCj4+IEBAIC00NCwx NCArNDQsNiBAQCB2b2lkIGludGVsX2h1Y19pbml0X2Vhcmx5KHN0cnVjdCBpbnRlbF9odWMgKmh1 YykKPj4gwqDCoMKgwqAgfQo+PiDCoH0KPj4gLWludCBpbnRlbF9odWNfaW5pdF9taXNjKHN0cnVj dCBpbnRlbF9odWMgKmh1YykKPj4gLXsKPj4gLcKgwqDCoCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSA9IGh1Y190b19pOTE1KGh1Yyk7Cj4+IC0KPj4gLcKgwqDCoCBpbnRlbF91Y19md19m ZXRjaChpOTE1LCAmaHVjLT5mdyk7Cj4+IC3CoMKgwqAgcmV0dXJuIDA7Cj4+IC19Cj4+IC0KPj4g wqBzdGF0aWMgaW50IGludGVsX2h1Y19yc2FfZGF0YV9jcmVhdGUoc3RydWN0IGludGVsX2h1YyAq aHVjKQo+PiDCoHsKPj4gwqDCoMKgwqAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBo dWNfdG9faTkxNShodWMpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaHVjLmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmgKPj4gaW5kZXgg MmE2Yzk0ZTc5ZjE3Li45ZmEzZDQ2MjlmMmUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2h1Yy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1 Yy5oCj4+IEBAIC00NSwxNyArNDUsMTEgQEAgc3RydWN0IGludGVsX2h1YyB7Cj4+IMKgfTsKPj4g dm9pZCBpbnRlbF9odWNfaW5pdF9lYXJseShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpOwo+PiAtaW50 IGludGVsX2h1Y19pbml0X21pc2Moc3RydWN0IGludGVsX2h1YyAqaHVjKTsKPj4gwqBpbnQgaW50 ZWxfaHVjX2luaXQoc3RydWN0IGludGVsX2h1YyAqaHVjKTsKPj4gwqB2b2lkIGludGVsX2h1Y19m aW5pKHN0cnVjdCBpbnRlbF9odWMgKmh1Yyk7Cj4+IMKgaW50IGludGVsX2h1Y19hdXRoKHN0cnVj dCBpbnRlbF9odWMgKmh1Yyk7Cj4+IMKgaW50IGludGVsX2h1Y19jaGVja19zdGF0dXMoc3RydWN0 IGludGVsX2h1YyAqaHVjKTsKPj4gLXN0YXRpYyBpbmxpbmUgdm9pZCBpbnRlbF9odWNfZmluaV9t aXNjKHN0cnVjdCBpbnRlbF9odWMgKmh1YykKPj4gLXsKPj4gLcKgwqDCoCBpbnRlbF91Y19md19j bGVhbnVwX2ZldGNoKCZodWMtPmZ3KTsKPj4gLX0KPj4gLQo+PiDCoHN0YXRpYyBpbmxpbmUgaW50 IGludGVsX2h1Y19zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfaHVjICpodWMpCj4+IMKgewo+PiDCoMKg wqDCoCBpbnRlbF91Y19md19zYW5pdGl6ZSgmaHVjLT5mdyk7Cj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3VjLmMKPj4gaW5kZXggZmRmMDBmMWViYjU3Li5jM2U2NTIzNmNmYmEgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VjLmMKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdWMuYwo+PiBAQCAtMTcxLDE1ICsxNzEsMTkgQEAgc3RhdGljIHZvaWQg c2FuaXRpemVfb3B0aW9uc19lYXJseShzdHJ1Y3QgCj4+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Cj4+IMKgwqDCoMKgIEdFTV9CVUdfT04oaTkxNV9tb2RwYXJhbXMuZ3VjX2xvZ19sZXZlbCA8IDAp Owo+PiDCoH0KPj4gLXZvaWQgaW50ZWxfdWNfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSkKPj4gK2ludCBpbnRlbF91Y19pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1KQo+PiDCoHsKPj4gLcKgwqDCoCBzdHJ1Y3QgaW50ZWxfZ3VjICpndWMgPSAm aTkxNS0+Z3VjOwo+PiAtwqDCoMKgIHN0cnVjdCBpbnRlbF9odWMgKmh1YyA9ICZpOTE1LT5odWM7 Cj4+ICvCoMKgwqAgaW50IHJldDsKPj4gKwo+PiArwqDCoMKgIHJldCA9IGludGVsX2d1Y19pbml0 X2Vhcmx5KCZpOTE1LT5ndWMpOwo+PiArwqDCoMKgIGlmIChyZXQpCj4+ICvCoMKgwqDCoMKgwqDC oCByZXR1cm4gcmV0Owo+PiAtwqDCoMKgIGludGVsX2d1Y19pbml0X2Vhcmx5KGd1Yyk7Cj4+IC3C oMKgwqAgaW50ZWxfaHVjX2luaXRfZWFybHkoaHVjKTsKPj4gK8KgwqDCoCBpbnRlbF9odWNfaW5p dF9lYXJseSgmaTkxNS0+aHVjKTsKPj4gwqDCoMKgwqBzYW5pdGl6ZV9vcHRpb25zX2Vhcmx5KGk5 MTUpOwo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIDA7Cj4+IMKgfQo+PiB2b2lkIGludGVsX3VjX2Ns ZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+IEBAIC0xODcsNiAr MTkxLDggQEAgdm9pZCBpbnRlbF91Y19jbGVhbnVwX2Vhcmx5KHN0cnVjdCAKPj4gZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSkKPj4gwqDCoMKgwqAgc3RydWN0IGludGVsX2d1YyAqZ3VjID0gJmk5MTUt Pmd1YzsKPj4gwqDCoMKgwqBndWNfZnJlZV9sb2FkX2Vycl9sb2coZ3VjKTsKPj4gKwo+PiArwqDC oMKgIGludGVsX2d1Y19maW5pX2Vhcmx5KGd1Yyk7Cj4+IMKgfQo+PiAvKioKPj4gQEAgLTM0NSw0 NCArMzUxLDI2IEBAIHN0YXRpYyB2b2lkIGd1Y19kaXNhYmxlX2NvbW11bmljYXRpb24oc3RydWN0 IAo+PiBpbnRlbF9ndWMgKmd1YykKPj4gwqDCoMKgwqAgRFJNX0lORk8oIkd1QyBjb21tdW5pY2F0 aW9uIGRpc2FibGVkXG4iKTsKPj4gwqB9Cj4+IC1pbnQgaW50ZWxfdWNfaW5pdF9taXNjKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiArdm9pZCBpbnRlbF91Y19mZXRjaF9maXJtd2Fy ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+IMKgewo+PiAtwqDCoMKgIHN0cnVj dCBpbnRlbF9ndWMgKmd1YyA9ICZpOTE1LT5ndWM7Cj4+IC3CoMKgwqAgc3RydWN0IGludGVsX2h1 YyAqaHVjID0gJmk5MTUtPmh1YzsKPj4gLcKgwqDCoCBpbnQgcmV0Owo+PiAtCj4+IMKgwqDCoMKg IGlmICghVVNFU19HVUMoaTkxNSkpCj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4gLQo+ PiAtwqDCoMKgIHJldCA9IGludGVsX2d1Y19pbml0X21pc2MoZ3VjKTsKPj4gLcKgwqDCoCBpZiAo cmV0KQo+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPj4gK8KgwqDCoMKgwqDCoMKgIHJl dHVybjsKPj4gLcKgwqDCoCBpZiAoVVNFU19IVUMoaTkxNSkpIHsKPj4gLcKgwqDCoMKgwqDCoMKg IHJldCA9IGludGVsX2h1Y19pbml0X21pc2MoaHVjKTsKPj4gLcKgwqDCoMKgwqDCoMKgIGlmIChy ZXQpCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZXJyX2d1YzsKPj4gLcKgwqDCoCB9 Cj4+ICvCoMKgwqAgaW50ZWxfdWNfZndfZmV0Y2goaTkxNSwgJmk5MTUtPmd1Yy5mdyk7Cj4+IC3C oMKgwqAgcmV0dXJuIDA7Cj4+IC0KPj4gLWVycl9ndWM6Cj4+IC3CoMKgwqAgaW50ZWxfZ3VjX2Zp bmlfbWlzYyhndWMpOwo+PiAtwqDCoMKgIHJldHVybiByZXQ7Cj4+ICvCoMKgwqAgaWYgKFVTRVNf SFVDKGk5MTUpKQo+PiArwqDCoMKgwqDCoMKgwqAgaW50ZWxfdWNfZndfZmV0Y2goaTkxNSwgJmk5 MTUtPmh1Yy5mdyk7Cj4+IMKgfQo+PiAtdm9pZCBpbnRlbF91Y19maW5pX21pc2Moc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4+ICt2b2lkIGludGVsX3VjX2NsZWFudXBfZmlybXdhcmVz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiDCoHsKPj4gLcKgwqDCoCBzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMgPSAmaTkxNS0+Z3VjOwo+PiAtwqDCoMKgIHN0cnVjdCBpbnRlbF9odWMg Kmh1YyA9ICZpOTE1LT5odWM7Cj4+IC0KPj4gwqDCoMKgwqAgaWYgKCFVU0VTX0dVQyhpOTE1KSkK Pj4gwqDCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+IMKgwqDCoMKgaWYgKFVTRVNfSFVDKGk5MTUp KQo+PiAtwqDCoMKgwqDCoMKgwqAgaW50ZWxfaHVjX2ZpbmlfbWlzYyhodWMpOwo+PiArwqDCoMKg wqDCoMKgwqAgaW50ZWxfdWNfZndfY2xlYW51cF9mZXRjaCgmaTkxNS0+aHVjLmZ3KTsKPj4gLcKg wqDCoCBpbnRlbF9ndWNfZmluaV9taXNjKGd1Yyk7Cj4+ICvCoMKgwqAgaW50ZWxfdWNfZndfY2xl YW51cF9mZXRjaCgmaTkxNS0+Z3VjLmZ3KTsKPj4gwqB9Cj4+IGludCBpbnRlbF91Y19pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdWMuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5o Cj4+IGluZGV4IDNlYTA2Yzg3ZGZjZC4uYzMwMjI4OTBlNjA0IDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91Yy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3VjLmgKPj4gQEAgLTI4LDExICsyOCwxMSBAQAo+PiDCoCNpbmNsdWRlICJpbnRlbF9o dWMuaCIKPj4gwqAjaW5jbHVkZSAiaTkxNV9wYXJhbXMuaCIKPj4gLXZvaWQgaW50ZWxfdWNfaW5p dF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAraW50IGludGVs X3VjX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gwqB2 b2lkIGludGVsX3VjX2NsZWFudXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPj4gwqB2b2lkIGludGVsX3VjX2luaXRfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwo+PiAtaW50IGludGVsX3VjX2luaXRfbWlzYyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAtdm9pZCBpbnRlbF91Y19maW5pX21pc2Moc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4gK3ZvaWQgaW50ZWxfdWNfZmV0Y2hfZmlybXdh cmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ICt2b2lkIGludGVsX3Vj X2NsZWFudXBfZmlybXdhcmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ IMKgdm9pZCBpbnRlbF91Y19zYW5pdGl6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwo+PiDCoGludCBpbnRlbF91Y19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4+IMKgdm9pZCBpbnRlbF91Y19maW5pX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA==