From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v5 2/5] drm/i915: Watchdog timeout: IRQ handler for gen8+ Date: Mon, 25 Mar 2019 10:00:55 +0000 Message-ID: <2543cdeb-beef-237b-34b5-73296ca41c46@linux.intel.com> References: <20190322234118.65980-1-carlos.santa@intel.com> <20190322234118.65980-3-carlos.santa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0B376E53E for ; Mon, 25 Mar 2019 10:00:57 +0000 (UTC) In-Reply-To: <20190322234118.65980-3-carlos.santa@intel.com> 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: Carlos Santa , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDIyLzAzLzIwMTkgMjM6NDEsIENhcmxvcyBTYW50YSB3cm90ZToKPiBGcm9tOiBNaWNoZWwg VGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IAo+ICoqKiBHZW5lcmFsICoqKgo+ IAo+IFdhdGNoZG9nIHRpbWVvdXQgKG9yICJtZWRpYSBlbmdpbmUgcmVzZXQiKSBpcyBhIGZlYXR1 cmUgdGhhdCBhbGxvd3MKPiB1c2VybGFuZCBhcHBsaWNhdGlvbnMgdG8gZW5hYmxlIGhhbmcgZGV0 ZWN0aW9uIG9uIGluZGl2aWR1YWwgYmF0Y2ggYnVmZmVycy4KPiBUaGUgZGV0ZWN0aW9uIG1lY2hh bmlzbSBpdHNlbGYgaXMgbW9zdGx5IGJvdW5kIHRvIHRoZSBoYXJkd2FyZSBhbmQgdGhlIG9ubHkK PiB0aGluZyB0aGF0IHRoZSBkcml2ZXIgbmVlZHMgdG8gZG8gdG8gc3VwcG9ydCB0aGlzIGZvcm0g b2YgaGFuZyBkZXRlY3Rpb24KPiBpcyB0byBpbXBsZW1lbnQgdGhlIGludGVycnVwdCBoYW5kbGlu ZyBzdXBwb3J0IGFzIHdlbGwgYXMgd2F0Y2hkb2cgY29tbWFuZAo+IGVtaXNzaW9uIGJlZm9yZSBh bmQgYWZ0ZXIgdGhlIGVtaXR0ZWQgYmF0Y2ggYnVmZmVyIHN0YXJ0IGluc3RydWN0aW9uIGluIHRo ZQo+IHJpbmcgYnVmZmVyLgo+IAo+IFRoZSBwcmluY2lwbGUgb2YgdGhlIGhhbmcgZGV0ZWN0aW9u IG1lY2hhbmlzbSBpcyBhcyBmb2xsb3dzOgo+IAo+IDEuIE9uY2UgdGhlIGRlY2lzaW9uIGhhcyBi ZWVuIG1hZGUgdG8gZW5hYmxlIHdhdGNoZG9nIHRpbWVvdXQgZm9yIGEKPiBwYXJ0aWN1bGFyIGJh dGNoIGJ1ZmZlciBhbmQgdGhlIGRyaXZlciBpcyBpbiB0aGUgcHJvY2VzcyBvZiBlbWl0dGluZyB0 aGUKPiBiYXRjaCBidWZmZXIgc3RhcnQgaW5zdHJ1Y3Rpb24gaW50byB0aGUgcmluZyBidWZmZXIg aXQgYWxzbyBlbWl0cyBhCj4gd2F0Y2hkb2cgdGltZXIgc3RhcnQgaW5zdHJ1Y3Rpb24gYmVmb3Jl IGFuZCBhIHdhdGNoZG9nIHRpbWVyIGNhbmNlbGxhdGlvbgo+IGluc3RydWN0aW9uIGFmdGVyIHRo ZSBiYXRjaCBidWZmZXIgc3RhcnQgaW5zdHJ1Y3Rpb24gaW4gdGhlIHJpbmcgYnVmZmVyLgo+IAo+ IDIuIE9uY2UgdGhlIEdQVSBleGVjdXRpb24gcmVhY2hlcyB0aGUgd2F0Y2hkb2cgdGltZXIgc3Rh cnQgaW5zdHJ1Y3Rpb24KPiB0aGUgaGFyZHdhcmUgd2F0Y2hkb2cgY291bnRlciBpcyBzdGFydGVk IGJ5IHRoZSBoYXJkd2FyZS4gVGhlIGNvdW50ZXIKPiBrZWVwcyBjb3VudGluZyB1bnRpbCBlaXRo ZXIgcmVhY2hpbmcgYSBwcmV2aW91c2x5IGNvbmZpZ3VyZWQgdGhyZXNob2xkCj4gdmFsdWUgb3Ig dGhlIHRpbWVyIGNhbmNlbGxhdGlvbiBpbnN0cnVjdGlvbiBpcyBleGVjdXRlZC4KPiAKPiAyYS4g SWYgdGhlIGNvdW50ZXIgcmVhY2hlcyB0aGUgdGhyZXNob2xkIHZhbHVlIHRoZSBoYXJkd2FyZSBm aXJlcyBhCj4gd2F0Y2hkb2cgaW50ZXJydXB0IHRoYXQgaXMgcGlja2VkIHVwIGJ5IHRoZSB3YXRj aGRvZyBpbnRlcnJ1cHQgaGFuZGxlci4KPiBUaGlzIG1lYW5zIHRoYXQgYSBoYW5nIGhhcyBiZWVu IGRldGVjdGVkIGFuZCB0aGUgZHJpdmVyIG5lZWRzIHRvIGRlYWwgd2l0aAo+IGl0IHRoZSBzYW1l IHdheSBpdCB3b3VsZCBkZWFsIHdpdGggYSBlbmdpbmUgaGFuZyBkZXRlY3RlZCBieSB0aGUgcGVy aW9kaWMKPiBoYW5nIGNoZWNrZXIuIFRoZSBvbmx5IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdv IGlzIHRoYXQgd2UgYWxyZWFkeSBibGFtZWQKPiB0aGUgYWN0aXZlIHJlcXVlc3QgKHRvIGVuc3Vy ZSBhbiBlbmdpbmUgcmVzZXQpLgo+IAo+IDJiLiBJZiB0aGUgYmF0Y2ggYnVmZmVyIGNvbXBsZXRl cyBhbmQgdGhlIGV4ZWN1dGlvbiByZWFjaGVzIHRoZSB3YXRjaGRvZwo+IGNhbmNlbGxhdGlvbiBp bnN0cnVjdGlvbiBiZWZvcmUgdGhlIHdhdGNoZG9nIGNvdW50ZXIgcmVhY2hlcyBpdHMKPiB0aHJl c2hvbGQgdmFsdWUgdGhlIHdhdGNoZG9nIGlzIGNhbmNlbGxlZCBhbmQgbm90aGluZyBtb3JlIGNv bWVzIG9mIGl0Lgo+IE5vIGhhbmcgaXMgZGV0ZWN0ZWQuCj4gCj4gTm90ZSBhYm91dCBmdXR1cmUg aW50ZXJhY3Rpb24gd2l0aCBwcmVlbXB0aW9uOiBQcmVlbXB0aW9uIGNvdWxkIGhhcHBlbgo+IGlu IGEgY29tbWFuZCBzZXF1ZW5jZSBwcmlvciB0byB3YXRjaGRvZyBjb3VudGVyIGdldHRpbmcgZGlz YWJsZWQsCj4gcmVzdWx0aW5nIGluIHdhdGNoZG9nIGJlaW5nIHRyaWdnZXJlZCBmb2xsb3dpbmcg cHJlZW1wdGlvbiAoZS5nLiB3aGVuCj4gd2F0Y2hkb2cgaGFkIGJlZW4gZW5hYmxlZCBpbiB0aGUg bG93IHByaW9yaXR5IGJhdGNoKS4gVGhlIGRyaXZlciB3aWxsCj4gbmVlZCB0byBleHBsaWNpdGx5 IGRpc2FibGUgdGhlIHdhdGNoZG9nIGNvdW50ZXIgYXMgcGFydCBvZiB0aGUKPiBwcmVlbXB0aW9u IHNlcXVlbmNlLgo+IAo+ICoqKiBUaGlzIHBhdGNoIGludHJvZHVjZXM6ICoqKgo+IAo+IDEuIElS USBoYW5kbGVyIGNvZGUgZm9yIHdhdGNoZG9nIHRpbWVvdXQgYWxsb3dpbmcgZGlyZWN0IGhhbmcg cmVjb3ZlcnkKPiBiYXNlZCBvbiBoYXJkd2FyZS1kcml2ZW4gaGFuZyBkZXRlY3Rpb24sIHdoaWNo IHRoZW4gaW50ZWdyYXRlcyBkaXJlY3RseQo+IHdpdGggdGhlIGhhbmcgcmVjb3ZlcnkgcGF0aC4g VGhpcyBpcyBpbmRlcGVuZGVudCBvZiBoYXZpbmcgcGVyLWVuZ2luZSByZXNldAo+IG9yIGp1c3Qg ZnVsbCBncHUgcmVzZXQuCj4gCj4gMi4gV2F0Y2hkb2cgc3BlY2lmaWMgcmVnaXN0ZXIgaW5mb3Jt YXRpb24uCj4gCj4gQ3VycmVudGx5IHRoZSByZW5kZXIgZW5naW5lIGFuZCBhbGwgYXZhaWxhYmxl IG1lZGlhIGVuZ2luZXMgc3VwcG9ydAo+IHdhdGNoZG9nIHRpbWVvdXQgKFZFQ1MgaXMgb25seSBz dXBwb3J0ZWQgaW4gR0VOOSkuIFRoZSBzcGVjaWZpY2F0aW9ucyBlbHVkZQo+IHRvIHRoZSBCQ1Mg ZW5naW5lIGJlaW5nIHN1cHBvcnRlZCBidXQgdGhhdCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRl ZCBieQo+IHRoaXMgY29tbWl0Lgo+IAo+IE5vdGUgdGhhdCB0aGUgdmFsdWUgdG8gc3RvcCB0aGUg Y291bnRlciBpcyBkaWZmZXJlbnQgYmV0d2VlbiByZW5kZXIgYW5kCj4gbm9uLXJlbmRlciBlbmdp bmVzIGluIEdFTjg7IEdFTjkgb253YXJkcyBpdCdzIHRoZSBzYW1lLgo+IAo+IHYyOiBNb3ZlIGly cSBoYW5kbGVyIHRvIHRhc2tsZXQsIGFybSB3YXRjaGRvZyBmb3IgYSAybmQgdGltZSB0byBjaGVj awo+IGFnYWluc3QgZmFsc2UtcG9zaXRpdmVzLgo+IAo+IHYzOiBEb24ndCB1c2UgaGlnaCBwcmlv cml0eSB0YXNrbGV0LCB1c2UgZW5naW5lX2xhc3Rfc3VibWl0IHdoaWxlCj4gY2hlY2tpbmcgZm9y IGZhbHNlLXBvc2l0aXZlcy4gRnJvbSBHRU45IG9ud2FyZHMsIHRoZSBzdG9wIGNvdW50ZXIgYml0 IGlzCj4gdGhlIHNhbWUgZm9yIGFsbCBlbmdpbmVzLgo+IAo+IHY0OiBSZW1vdmUgdW5uZWNlc3Nh cnkgYnJhY2tldHMsIHVzZSBjdXJyZW50X3NlcW5vIHRvIG1hcmsgdGhlIHJlcXVlc3QKPiBhcyBn dWlsdHkgaW4gdGhlIGhhbmdjaGVjay9jYXB0dXJlIGNvZGUuCj4gCj4gdjU6IFJlYmFzZWQgYWZ0 ZXIgUkVTRVRfRU5HSU5FcyBmbGFnLgo+IAo+IHY2OiBEb24ndCBjYXB0dXJlIGVycm9yIHN0YXRl IGluIGNhc2Ugb2Ygd2F0Y2hkb2cgdGltZW91dC4gVGhlIGNhcHR1cmUKPiBwcm9jZXNzIGlzIHRp bWUgY29uc3VtaW5nIGFuZCB0aGlzIHdpbGwgYWxpZ24gdG8gd2hhdCBoYXBwZW5zIHdoZW4gd2UK PiB1c2UgR3VDIHRvIGhhbmRsZSB0aGUgd2F0Y2hkb2cgdGltZW91dC4gKENocmlzKQo+IAo+IHY3 OiBSZWJhc2UuCj4gCj4gdjg6IFJlYmFzZSwgdXNlIEhaIHRvIHJlc2NoZWR1bGUuCj4gCj4gdjk6 IFJlYmFzZSwgZ2V0IGZvcmNld2FrZSBkb21haW5zIGluIGZ1bmN0aW9uIChubyBsb25nZXIgaW4g ZXhlY2xpc3RzCj4gc3RydWN0KS4KPiAKPiB2MTA6IFJlYmFzZS4KPiAKPiB2MTE6IFJlYmFzZSwK PiAgICAgICByZW1vdmUgZXh0cmEgYnJhY2VzIChUdnJ0a28pLAo+ICAgICAgIGltcGxlbWVudCB3 YXRjaGRvZ190b19jbG9ja19jb3VudHMgaGVscGVyIChUdnJ0a28pLAo+ICAgICAgIE1vdmUgdGFz a2xldF9raWxsKHdhdGNoZG9nX3Rhc2tsZXQpIGluc2lkZSBpbnRlbF9lbmdpbmVzIChUdnJ0a28p LAo+ICAgICAgIFVzZSBhIGdsb2JhbCBoZWFydGJlYXQgc2Vxbm8gaW5zdGVhZCBvZiBlbmdpbmUg c2Vxbm8gKENocmlzKQo+ICAgICAgIE1ha2UgYWxsIGVuZ2luZXMgY2hlY2tzIGFsbCBjbGFzcyBi YXNlZCBjaGVja3MgKFR2cnRrbykKPiAKPiB2MTI6IFJlYmFzZSwKPiAgICAgICBSZXNldCBpbW1l ZGlhdGVseSB1cG9uIGVudGVyaW5nIHRoZSBJUlEgKENocmlzKQo+ICAgICAgIE1ha2UgcmVzZXRf ZW5naW5lX3RvX3N0ciBhIGhlbHBlciAoVHZydGtvKQo+ICAgICAgIFJlbmFtZSB3YXRjaGRvZ19p cnFfaGFuZGxlciBhcyB3YXRjaGRvZ190YXNrbGV0IChUdnJ0a28pCj4gICAgICAgTGV0IHRoZSBj b21waWxlciBpdHNlbGYgZG8gdGhlIGlubGluZSAoVHZydGtvKQo+IAo+IHYxMzogUmViYXNlCj4g djE0OiBSZWJhc2UsIHNraXAgY2hlY2tpbmcgZm9yIHRoZSBndWlsdHkgc2Vxbm8gaW4gdGhlIHRh c2tsZXQgKFR2cnRrbykKCklJUkMgSSBvbmx5IGFza2VkIGFib3V0IGl0IHNvIEkgZ3Vlc3MgeW91 IHRyaWVkIGl0IGFuZCBpdCB3b3JrcyB3ZWxsPwoKQ2FuIHlvdSBhbHNvIHBvc3QgdGhlIElHVHMg c28gd2UgY2FuIHNlZSB0aGUgdGVzdCBjb3ZlcmFnZT8KClJlZ2FyZHMsCgpUdnJ0a28KCj4gCj4g Q2M6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdlbnppYW5vQGludGVsLmNvbT4KPiBD YzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KPiBTaWdu ZWQtb2ZmLWJ5OiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IFNp Z25lZC1vZmYtYnk6IENhcmxvcyBTYW50YSA8Y2FybG9zLnNhbnRhQGludGVsLmNvbT4KPiAtLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmggICAgIHwgIDQgKysKPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgIHwgMTQgKysrKy0tCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAgICAgICB8ICA2ICsrKwo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXNldC5jICAgICAgICAgfCAyMCArKysrKysrKysK PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuaCAgICAgICAgIHwgIDYgKysrCj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVfY3MuYyAgICB8ICAxICsKPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oIHwgIDUgKysrCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oYW5nY2hlY2suYyAgICB8IDExICstLS0tCj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICB8IDUyICsrKysrKysrKysrKysr KysrKysrKysrCj4gICA5IGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCAxMiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgKPiBpbmRleCA5 OWQ2YjdiMjcwYzIuLjZjZjZhODY3OWIyNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n cHVfZXJyb3IuaAo+IEBAIC0yMDMsNiArMjAzLDkgQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsK PiAgIAkgKiBhbnkgZ2xvYmFsIHJlc291cmNlcyB0aGF0IG1heSBiZSBjbG9iYmVyIGJ5IHRoZSBy ZXNldCAoc3VjaCBhcwo+ICAgCSAqIEZFTkNFIHJlZ2lzdGVycykuCj4gICAJICoKPiArCSAqICNJ OTE1X1JFU0VUX1dBVENIRE9HIC0gV2hlbiBodyBkZXRlY3RzIGEgaGFuZyBiZWZvcmUgdXMsIHdl IGNhbiB1c2UKPiArCSAqIEk5MTVfUkVTRVRfV0FUQ0hET0cgdG8gcmVwb3J0IHRoZSBoYW5nIGRl dGVjdGlvbiBjYXVzZSBhY2N1cmF0ZWx5Lgo+ICsJICoKPiAgIAkgKiAjSTkxNV9SRVNFVF9FTkdJ TkVbbnVtX2VuZ2luZXNdIC0gU2luY2UgdGhlIGRyaXZlciBkb2Vzbid0IG5lZWQgdG8KPiAgIAkg KiBhY3F1aXJlIHRoZSBzdHJ1Y3RfbXV0ZXggdG8gcmVzZXQgYW4gZW5naW5lLCB3ZSBuZWVkIGFu IGV4cGxpY2l0Cj4gICAJICogZmxhZyB0byBwcmV2ZW50IHR3byBjb25jdXJyZW50IHJlc2V0IGF0 dGVtcHRzIGluIHRoZSBzYW1lIGVuZ2luZS4KPiBAQCAtMjE4LDYgKzIyMSw3IEBAIHN0cnVjdCBp OTE1X2dwdV9lcnJvciB7Cj4gICAjZGVmaW5lIEk5MTVfUkVTRVRfQkFDS09GRgkwCj4gICAjZGVm aW5lIEk5MTVfUkVTRVRfTU9ERVNFVAkxCj4gICAjZGVmaW5lIEk5MTVfUkVTRVRfRU5HSU5FCTIK PiArI2RlZmluZSBJOTE1X1JFU0VUX1dBVENIRE9HCTMKPiAgICNkZWZpbmUgSTkxNV9XRURHRUQJ CShCSVRTX1BFUl9MT05HIC0gMSkKPiAgIAo+ICAgCS8qKiBOdW1iZXIgb2YgdGltZXMgdGhlIGRl dmljZSBoYXMgYmVlbiByZXNldCAoZ2xvYmFsKSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ IGluZGV4IDgyZDQ4NzE4OWEzNC4uZTY0OTk0YmUyNWMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCj4gQEAgLTE0NjYsNiArMTQ2Niw5IEBAIGdlbjhfY3NfaXJxX2hhbmRsZXIoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaWlyKQo+ICAgCj4gICAJaWYgKHRhc2tsZXQp Cj4gICAJCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQpOwo+ ICsKPiArCWlmIChpaXIgJiBHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVCkKPiArCQl0YXNrbGV0 X3NjaGVkdWxlKCZlbmdpbmUtPmV4ZWNsaXN0cy53YXRjaGRvZ190YXNrbGV0KTsKPiAgIH0KPiAg IAo+ICAgc3RhdGljIHZvaWQgZ2VuOF9ndF9pcnFfYWNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1LAo+IEBAIC0zODkyLDIwICszODk1LDI1IEBAIHN0YXRpYyB2b2lkIGdlbjhfZ3RfaXJx X3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAl1MzIg Z3RfaW50ZXJydXB0c1tdID0gewo+ICAgCQkoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdF TjhfUkNTX0lSUV9TSElGVCB8Cj4gICAJCSBHVF9DT05URVhUX1NXSVRDSF9JTlRFUlJVUFQgPDwg R0VOOF9SQ1NfSVJRX1NISUZUIHwKPiArCQkgR1RfR0VOOF9XQVRDSERPR19JTlRFUlJVUFQgPDwg R0VOOF9SQ1NfSVJRX1NISUZUIHwKPiAgIAkJIEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8PCBH RU44X0JDU19JUlFfU0hJRlQgfAo+ICAgCQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8 IEdFTjhfQkNTX0lSUV9TSElGVCksCj4gLQo+ICAgCQkoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBU IDw8IEdFTjhfVkNTMF9JUlFfU0hJRlQgfAo+ICAgCQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJS VVBUIDw8IEdFTjhfVkNTMF9JUlFfU0hJRlQgfAo+ICsJCSBHVF9HRU44X1dBVENIRE9HX0lOVEVS UlVQVCA8PCBHRU44X1ZDUzBfSVJRX1NISUZUIHwKPiAgIAkJIEdUX1JFTkRFUl9VU0VSX0lOVEVS UlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZUIHwKPiAtCQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5U RVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQpLAo+IC0KPiArCQkgR1RfQ09OVEVYVF9TV0lU Q0hfSU5URVJSVVBUIDw8IEdFTjhfVkNTMV9JUlFfU0hJRlQgfAo+ICsJCSBHVF9HRU44X1dBVENI RE9HX0lOVEVSUlVQVCA8PCBHRU44X1ZDUzFfSVJRX1NISUZUKSwKPiAgIAkJMCwKPiAgIAo+ICAg CQkoR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQgfAo+ICAg CQkgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUIDw8IEdFTjhfVkVDU19JUlFfU0hJRlQpCj4g ICAJfTsKPiAgIAo+ICsJLyogVkVDUyB3YXRjaGRvZyBpcyBvbmx5IGF2YWlsYWJsZSBpbiBza2wr ICovCj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ICsJCWd0X2ludGVycnVwdHNb M10gfD0gR1RfR0VOOF9XQVRDSERPR19JTlRFUlJVUFQ7Cj4gKwo+ICAgCWRldl9wcml2LT5wbV9p ZXIgPSAweDA7Cj4gICAJZGV2X3ByaXYtPnBtX2ltciA9IH5kZXZfcHJpdi0+cG1faWVyOwo+ICAg CUdFTjhfSVJRX0lOSVRfTkRYKEdULCAwLCB+Z3RfaW50ZXJydXB0c1swXSwgZ3RfaW50ZXJydXB0 c1swXSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggOWI2OWNlYzIxZjdiLi5hYzhk OTg0ZTE2YWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtMjM2Myw2ICsyMzYz LDExIEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgICNkZWZpbmUgUklOR19TVEFSVChi YXNlKQlfTU1JTygoYmFzZSkgKyAweDM4KQo+ICAgI2RlZmluZSBSSU5HX0NUTChiYXNlKQkJX01N SU8oKGJhc2UpICsgMHgzYykKPiAgICNkZWZpbmUgICBSSU5HX0NUTF9TSVpFKHNpemUpCSgoc2l6 ZSkgLSBQQUdFX1NJWkUpIC8qIGluIGJ5dGVzIC0+IHBhZ2VzICovCj4gKyNkZWZpbmUgUklOR19D TlRSKGJhc2UpCQlfTU1JTygoYmFzZSkgKyAweDE3OCkKPiArI2RlZmluZSBHRU44X1dBVENIRE9H X0VOQUJMRQkJMAo+ICsjZGVmaW5lIEdFTjhfV0FUQ0hET0dfRElTQUJMRQkJMQo+ICsjZGVmaW5l IEdFTjhfWENTX1dBVENIRE9HX0RJU0FCTEUJMHhGRkZGRkZGRiAvKiBHRU44ICYgbm9uLXJlbmRl ciBvbmx5ICovCj4gKyNkZWZpbmUgUklOR19USFJFU0goYmFzZSkJX01NSU8oKGJhc2UpICsgMHgx N0MpCj4gICAjZGVmaW5lIFJJTkdfU1lOQ18wKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4NDApCj4g ICAjZGVmaW5lIFJJTkdfU1lOQ18xKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4NDQpCj4gICAjZGVm aW5lIFJJTkdfU1lOQ18yKGJhc2UpCV9NTUlPKChiYXNlKSArIDB4NDgpCj4gQEAgLTI5MjUsNiAr MjkzMCw3IEBAIGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPiAgICNkZWZpbmUgR1RfQlNEX1VT RVJfSU5URVJSVVBUCQkJKDEgPDwgMTIpCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlf RVJST1JfSU5URVJSVVBUX1MxCSgxIDw8IDExKSAvKiBoc3crOyByc3ZkIG9uIHNuYiwgaXZiLCB2 bHYgKi8KPiAgICNkZWZpbmUgR1RfQ09OVEVYVF9TV0lUQ0hfSU5URVJSVVBUCQkoMSA8PCAgOCkK PiArI2RlZmluZSBHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQVAkJKDEgPDwgIDYpIC8qIGdlbjgr ICovCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUCSgxIDw8 ICA1KSAvKiAhc25iICovCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9JTlRF UlJVUFQJKDEgPDwgIDQpCj4gICAjZGVmaW5lIEdUX1JFTkRFUl9DU19NQVNURVJfRVJST1JfSU5U RVJSVVBUCSgxIDw8ICAzKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMKPiBpbmRleCA4NjFm ZTA4M2UzODMuLjczOWZhNWFkMWE4ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3Jlc2V0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmMK PiBAQCAtMTIwOCw2ICsxMjA4LDI2IEBAIHZvaWQgaTkxNV9jbGVhcl9lcnJvcl9yZWdpc3RlcnMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCX0KPiAgIH0KPiAgIAo+ICt2 b2lkIGVuZ2luZV9yZXNldF9lcnJvcl90b19zdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCj4gKwkgICAgICAgICAgIGNoYXIgKm1zZywKPiArCSAgICAgICAgICAgc2l6ZV90IHN6LAo+ ICsJICAgICAgICAgICB1bnNpZ25lZCBpbnQgaHVuZywKPiArCSAgICAgICAgICAgdW5zaWduZWQg aW50IHN0dWNrLAo+ICsJICAgICAgICAgICB1bnNpZ25lZCBpbnQgd2F0Y2hkb2cpCj4gK3sKPiAr CWludCBsZW47Cj4gKwl1bnNpZ25lZCBpbnQgdG1wOwo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwo+ICsKPiArCWxlbiA9IHNjbnByaW50Zihtc2csIHN6LAo+ICsJCQkiJXMgb24g Iiwgd2F0Y2hkb2cgPyAid2F0Y2hkb2cgdGltZW91dCIgOgo+ICsJCQkJc3R1Y2sgPT0gaHVuZyA/ ICJub19wcm9ncmVzcyIgOiAiaGFuZyIpOwo+ICsJZm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdp bmUsIGk5MTUsIGh1bmcsIHRtcCkKPiArCQlsZW4gKz0gc2NucHJpbnRmKG1zZyArIGxlbiwgc3og LSBsZW4sCj4gKwkJCQkiJXMsICIsIGVuZ2luZS0+bmFtZSk7Cj4gKwltc2dbbGVuLTJdID0gJ1ww JzsKPiArfQo+ICsKPiAgIC8qKgo+ICAgICogaTkxNV9oYW5kbGVfZXJyb3IgLSBoYW5kbGUgYSBn cHUgZXJyb3IKPiAgICAqIEBpOTE1OiBpOTE1IGRldmljZSBwcml2YXRlCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVzZXQuaAo+IGluZGV4IDE2ZjIzODlmNjU2Zi4uODU4MmQxMjQyMjQ4IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuaAo+IEBAIC0yMCw2ICsyMCwxMiBAQCB2b2lkIGk5MTVf aGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAgCQkgICAgICAg dTMyIGVuZ2luZV9tYXNrLAo+ICAgCQkgICAgICAgdW5zaWduZWQgbG9uZyBmbGFncywKPiAgIAkJ ICAgICAgIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKPiArdm9pZCBlbmdpbmVfcmVzZXRfZXJyb3Jf dG9fc3RyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICsgICAgICAgICAgICAgICBj aGFyICpzdHIsCj4gKyAgICAgICAgICAgICAgIHNpemVfdCBzeiwKPiArICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGh1bmcsCj4gKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzdHVjaywK PiArICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHdhdGNoZG9nKTsKPiAgICNkZWZpbmUgSTkx NV9FUlJPUl9DQVBUVVJFIEJJVCgwKQo+ICAgCj4gICB2b2lkIGk5MTVfY2xlYXJfZXJyb3JfcmVn aXN0ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9lbmdpbmVfY3MuYwo+IGluZGV4IDY1MmMxYjNiYTE5MC4uODhjZjBmYzA3NjIzIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKPiBAQCAtMTE0OSw2ICsx MTQ5LDcgQEAgdm9pZCBpbnRlbF9lbmdpbmVzX3Bhcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUpCj4gICAJCS8qIEZsdXNoIHRoZSByZXNpZHVhbCBpcnEgdGFza2xldHMgZmlyc3QuICov Cj4gICAJCWludGVsX2VuZ2luZV9kaXNhcm1fYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgIAkJdGFz a2xldF9raWxsKCZlbmdpbmUtPmV4ZWNsaXN0cy50YXNrbGV0KTsKPiArCQl0YXNrbGV0X2tpbGwo JmVuZ2luZS0+ZXhlY2xpc3RzLndhdGNoZG9nX3Rhc2tsZXQpOwo+ICAgCj4gICAJCS8qCj4gICAJ CSAqIFdlIGFyZSBjb21taXR0ZWQgbm93IHRvIHBhcmtpbmcgdGhlIGVuZ2luZXMsIG1ha2Ugc3Vy ZSB0aGVyZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdpbmVf dHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV90eXBlcy5oCj4gaW5k ZXggYjBhYTFmMGQ0ZTQ3Li5jNGY2NmI3NzRlN2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZW5naW5lX3R5cGVzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9lbmdpbmVfdHlwZXMuaAo+IEBAIC0xMjQsNiArMTI0LDExIEBAIHN0cnVjdCBpbnRl bF9lbmdpbmVfZXhlY2xpc3RzIHsKPiAgIAkgKi8KPiAgIAlzdHJ1Y3QgdGFza2xldF9zdHJ1Y3Qg dGFza2xldDsKPiAgIAo+ICsJLyoKPiArCSAqIEB3YXRjaGRvZ190YXNrbGV0OiBzdG9wIGNvdW50 ZXIgYW5kIHJlc2NoZWR1bGUgaGFuZ2NoZWNrX3dvcmsgYXNhcAo+ICsJICovCj4gKwlzdHJ1Y3Qg dGFza2xldF9zdHJ1Y3Qgd2F0Y2hkb2dfdGFza2xldDsKPiArCj4gICAJLyoqCj4gICAJICogQGRl ZmF1bHRfcHJpb2xpc3Q6IHByaW9yaXR5IGxpc3QgZm9yIEk5MTVfUFJJT1JJVFlfTk9STUFMCj4g ICAJICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hhbmdjaGVj ay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGFuZ2NoZWNrLmMKPiBpbmRleCA1N2Vk NDlkYzE5YzQuLjRiZjI2ODYzNjc4YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oYW5nY2hlY2suYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hh bmdjaGVjay5jCj4gQEAgLTIyMCwyMiArMjIwLDE1IEBAIHN0YXRpYyB2b2lkIGhhbmdjaGVja19k ZWNsYXJlX2hhbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gICAJCQkJICAgdW5z aWduZWQgaW50IGh1bmcsCj4gICAJCQkJICAgdW5zaWduZWQgaW50IHN0dWNrKQo+ICAgewo+IC0J c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICAgCWNoYXIgbXNnWzgwXTsKPiAtCXVu c2lnbmVkIGludCB0bXA7Cj4gLQlpbnQgbGVuOwo+ICsJc2l6ZV90IGxlbiA9IHNpemVvZihtc2cp Owo+ICAgCj4gICAJLyogSWYgc29tZSByaW5ncyBodW5nIGJ1dCBvdGhlcnMgd2VyZSBzdGlsbCBi dXN5LCBvbmx5Cj4gICAJICogYmxhbWUgdGhlIGhhbmdpbmcgcmluZ3MgaW4gdGhlIHN5bm9wc2lz Lgo+ICAgCSAqLwo+ICAgCWlmIChzdHVjayAhPSBodW5nKQo+ICAgCQlodW5nICY9IH5zdHVjazsK PiAtCWxlbiA9IHNjbnByaW50Zihtc2csIHNpemVvZihtc2cpLAo+IC0JCQkiJXMgb24gIiwgc3R1 Y2sgPT0gaHVuZyA/ICJubyBwcm9ncmVzcyIgOiAiaGFuZyIpOwo+IC0JZm9yX2VhY2hfZW5naW5l X21hc2tlZChlbmdpbmUsIGk5MTUsIGh1bmcsIHRtcCkKPiAtCQlsZW4gKz0gc2NucHJpbnRmKG1z ZyArIGxlbiwgc2l6ZW9mKG1zZykgLSBsZW4sCj4gLQkJCQkgIiVzLCAiLCBlbmdpbmUtPm5hbWUp Owo+IC0JbXNnW2xlbi0yXSA9ICdcMCc7Cj4gKwllbmdpbmVfcmVzZXRfZXJyb3JfdG9fc3RyKGk5 MTUsIG1zZywgbGVuLCBodW5nLCBzdHVjaywgMCk7Cj4gICAKPiAgIAlyZXR1cm4gaTkxNV9oYW5k bGVfZXJyb3IoaTkxNSwgaHVuZywgSTkxNV9FUlJPUl9DQVBUVVJFLCAiJXMiLCBtc2cpOwo+ICAg fQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggZTU0ZTAwNjRiMmQ2Li44NTc4NWE5 NGY2YWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0yMTk1LDYgKzIxOTUs NDAgQEAgc3RhdGljIGludCBnZW44X2VtaXRfZmx1c2hfcmVuZGVyKHN0cnVjdCBpOTE1X3JlcXVl c3QgKnJlcXVlc3QsCj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiArc3RhdGljIHZvaWQgZ2Vu OF93YXRjaGRvZ190YXNrbGV0KHVuc2lnbmVkIGxvbmcgZGF0YSkKPiArewo+ICsJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOwo+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+ICsJ ZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zOwo+ICsJY2hhciBtc2dbODBdOwo+ICsJ c2l6ZV90IGxlbiA9IHNpemVvZihtc2cpOwo+ICsJdW5zaWduZWQgbG9uZyAqbG9jayA9ICZlbmdp bmUtPmk5MTUtPmdwdV9lcnJvci5mbGFnczsKPiArCXVuc2lnbmVkIGludCBiaXQgPSBJOTE1X1JF U0VUX0VOR0lORSArIGVuZ2luZS0+aWQ7Cj4gKwo+ICsJc3dpdGNoIChlbmdpbmUtPmNsYXNzKSB7 Cj4gKwlkZWZhdWx0Ogo+ICsJCU1JU1NJTkdfQ0FTRShlbmdpbmUtPmlkKTsKPiArCQkvKiBmYWxs IHRocm91Z2ggKi8KPiArCWNhc2UgUkVOREVSX0NMQVNTOgo+ICsJCWZ3X2RvbWFpbnMgPSBGT1JD RVdBS0VfUkVOREVSOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBWSURFT19ERUNPREVfQ0xBU1M6Cj4g KwljYXNlIFZJREVPX0VOSEFOQ0VNRU5UX0NMQVNTOgo+ICsJCWZ3X2RvbWFpbnMgPSBGT1JDRVdB S0VfTUVESUE7Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gKwo+ICsJaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9nZXQoZGV2X3ByaXYsIGZ3X2RvbWFpbnMpOwo+ICsKPiArCWlmICghdGVzdF9hbmRfc2V0X2Jp dChiaXQsIGxvY2spKSB7Cj4gKwkJdW5zaWduZWQgaW50IGh1bmcgPSBlbmdpbmUtPm1hc2s7Cj4g KwkJZW5naW5lX3Jlc2V0X2Vycm9yX3RvX3N0cihkZXZfcHJpdiwgbXNnLCBsZW4sIGh1bmcsIDAs IDEpOwo+ICsJCWk5MTVfcmVzZXRfZW5naW5lKGVuZ2luZSwgbXNnKTsKPiArCQljbGVhcl9iaXQo Yml0LCBsb2NrKTsKPiArCQl3YWtlX3VwX2JpdChsb2NrLCBiaXQpOwo+ICsJfQo+ICt9Cj4gKwo+ ICAgLyoKPiAgICAqIFJlc2VydmUgc3BhY2UgZm9yIDIgTk9PUHMgYXQgdGhlIGVuZCBvZiBlYWNo IHJlcXVlc3QgdG8gYmUKPiAgICAqIHVzZWQgYXMgYSB3b3JrYXJvdW5kIGZvciBub3QgYmVpbmcg YWxsb3dlZCB0byBkbyBsaXRlCj4gQEAgLTIzNzcsNiArMjQxMSwyMSBAQCBsb2dpY2FsX3Jpbmdf ZGVmYXVsdF9pcnFzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAo+ICAgCWVu Z2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IHNoaWZ0 Owo+ICAgCWVuZ2luZS0+aXJxX2tlZXBfbWFzayA9IEdUX0NPTlRFWFRfU1dJVENIX0lOVEVSUlVQ VCA8PCBzaGlmdDsKPiArCj4gKwlzd2l0Y2ggKGVuZ2luZS0+Y2xhc3MpIHsKPiArCWRlZmF1bHQ6 Cj4gKwkJLyogQkNTIGVuZ2luZSBkb2VzIG5vdCBzdXBwb3J0IGh3IHdhdGNoZG9nICovCj4gKwkJ YnJlYWs7Cj4gKwljYXNlIFJFTkRFUl9DTEFTUzoKPiArCWNhc2UgVklERU9fREVDT0RFX0NMQVNT Ogo+ICsJCWVuZ2luZS0+aXJxX2tlZXBfbWFzayB8PSBHVF9HRU44X1dBVENIRE9HX0lOVEVSUlVQ VCA8PCBzaGlmdDsKPiArCQlicmVhazsKPiArCWNhc2UgVklERU9fRU5IQU5DRU1FTlRfQ0xBU1M6 Cj4gKwkJaWYgKElOVEVMX0dFTihlbmdpbmUtPmk5MTUpID49IDkpCj4gKwkJCWVuZ2luZS0+aXJx X2tlZXBfbWFzayB8PQo+ICsJCQkJR1RfR0VOOF9XQVRDSERPR19JTlRFUlJVUFQgPDwgc2hpZnQ7 Cj4gKwkJYnJlYWs7Cj4gKwl9Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQKPiBAQCAtMjM5NCw2 ICsyNDQzLDkgQEAgbG9naWNhbF9yaW5nX3NldHVwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKPiAgIAl0YXNrbGV0X2luaXQoJmVuZ2luZS0+ZXhlY2xpc3RzLnRhc2tsZXQsCj4gICAJ CSAgICAgZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldCwgKHVuc2lnbmVkIGxvbmcpZW5naW5l KTsKPiAgIAo+ICsJdGFza2xldF9pbml0KCZlbmdpbmUtPmV4ZWNsaXN0cy53YXRjaGRvZ190YXNr bGV0LAo+ICsJCSAgICAgZ2VuOF93YXRjaGRvZ190YXNrbGV0LCAodW5zaWduZWQgbG9uZyllbmdp bmUpOwo+ICsKPiAgIAlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3MoZW5naW5lKTsKPiAgIAls b2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVuZ2luZSk7Cj4gICAKPiAKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4