From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH-v11] drm/i915/huc: Add HuC fw loading support Date: Wed, 16 Nov 2016 08:45:08 +0000 Message-ID: <7d7af641-e2e5-ce1f-3e1c-2926d6fe0ad9@linux.intel.com> References: <1478823321-6009-4-git-send-email-anusha.srivatsa@intel.com> <1479170361-3528-1-git-send-email-anusha.srivatsa@intel.com> <20161115222134.GB18646@jeffdesk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 73FBF89FEA for ; Wed, 16 Nov 2016 08:45:12 +0000 (UTC) In-Reply-To: <20161115222134.GB18646@jeffdesk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jeff McGee Cc: intel-gfx@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org CltyZW1vdmUgYm91bmNpbmcgZW1haWxzLCBhZGRlZCBSb2RyaWdvIGZvciBmaXJtd2FyZSByZWxl YXNlIHByb2Nlc3MgCmluc2lnaHRzXQoKT24gMTUvMTEvMjAxNiAyMjoyMSwgSmVmZiBNY0dlZSB3 cm90ZToKPiBPbiBUdWUsIE5vdiAxNSwgMjAxNiBhdCAxMDoyNjo0NkFNICswMDAwLCBUdnJ0a28g VXJzdWxpbiB3cm90ZToKPj4KPj4gT24gMTUvMTEvMjAxNiAwMDozOSwgQW51c2hhIFNyaXZhdHNh IHdyb3RlOgo+Pj4gRnJvbTogUGV0ZXIgQW50b2luZSA8cGV0ZXIuYW50b2luZUBpbnRlbC5jb20+ Cj4+Pgo+Pj4gVGhlIEh1QyBsb2FkaW5nIHByb2Nlc3MgaXMgc2ltaWxhciB0byBHdUMuIFRoZSBp bnRlbF91Y19md19mZXRjaCgpCj4+PiBpcyB1c2VkIGZvciBib3RoIGNhc2VzLgo+Pj4KPj4+IEh1 QyBsb2FkaW5nIG5lZWRzIHRvIGJlIGJlZm9yZSBHdUMgbG9hZGluZy4gVGhlIFdPUENNIHNldHRp bmcgbXVzdAo+Pj4gYmUgZG9uZSBlYXJseSBiZWZvcmUgbG9hZGluZyBhbnkgb2YgdGhlbS4KPj4+ Cj4+PiB2MjogcmViYXNlZCBvbi10b3Agb2YgZHJtLWludGVsLW5pZ2h0bHkuCj4+PiAgICByZW1v dmVkIGlmKEhBU19HVUMoKSkgYmVmb3JlIHRoZSBndWMgY2FsbC4gKEQuR29yZG9uKQo+Pj4gICAg dXBkYXRlIGh1Y192ZXJzaW9uIG51bWJlciBvZiBmb3JtYXQuCj4+PiB2MzogcmViYXNlZCB0byBk cm0taW50ZWwtbmlnaHRseSwgY2hhbmdlZCB0aGUgZmlsZSBuYW1lIGZvcm1hdCB0bwo+Pj4gICAg bWF0Y2ggdGhlIG9uZSBpbiB0aGUgaHVjIHBhY2thZ2UuCj4+PiAgICBDaGFuZ2VkIGRldi0+ZGV2 X3ByaXZhdGUgdG8gdG9faTkxNSgpCj4+PiB2NDogbW92ZWQgZnVuY3Rpb24gYmFjayB0byB3aGVy ZSBpdCB3YXMuCj4+PiAgICBjaGFuZ2Ugd2FpdF9mb3JfYXRvbWljIHRvIHdhaXRfZm9yLgo+Pj4g djU6IHJlYmFzZWQgKyBjb21tZW50IGNoYW5nZXMuCj4+PiB2NzogcmViYXNlZC4KPj4+IHY4OiBy ZWJhc2VkLgo+Pj4gdjk6IHJlYmFzZWQuIENoYW5nZWQgdGhlIHllYXIgaW4gdGhlIGNvcHlyaWdo dCBtZXNzYWdlIHRvIHJlZmxlY3QKPj4+IHRoZSByaWdodCB5ZWFyLkNvcnJlY3QgdGhlIGNvbW1l bnRzLHJlbW92ZSB0aGUgdW53YW50ZWQgV0FSTiBtZXNzYWdlLAo+Pj4gcmVwbGFjZSBkcm1fZ2Vt X29iamVjdF91bnJlZmVyZW5jZSgpIHdpdGggaTkxNV9nZW1fb2JqZWN0X3B1dCgpLk1ha2UgdGhl Cj4+PiBwcm90b3R5cGVzIGluIGludGVsX2h1Yy5oIG5vbi1leHRlcm4uCj4+PiB2MTA6IHJlYmFz ZWQuIFVwZGF0ZSB0aGUgZmlsZSBjb25zdHJ1Y3Rpb24gZG9uZSBieSBIdUMuIEl0IGlzIHNpbWls YXIgdG8KPj4+IEd1Qy5BZG9wdGVkIHRoZSBhcHByb2FjaCB1c2VkIGluLQo+Pj4gaHR0cHM6Ly9w YXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzEwNDM1NS8gPFR2cnRrbyBVcnN1bGluPgo+ Pj4gdjExOiBGaXggd2FybmluZ3MuIFJlbW92ZSBvbGQgZGVjbGFyYXRpb24uCj4+Pgo+Pj4gQ2M6 IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4+PiBUZXN0ZWQtYnk6 IFhpYW5nIEhhaWhhbyA8aGFpaGFvLnhpYW5nQGludGVsLmNvbT4KPj4+IFNpZ25lZC1vZmYtYnk6 IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPj4+IFNpZ25lZC1v ZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgo+Pj4gU2lnbmVkLW9mZi1ieTogUGV0 ZXIgQW50b2luZSA8cGV0ZXIuYW50b2luZUBpbnRlbC5jb20+Cj4+PiBSZXZpZXdlZC1ieTogRGF2 ZSBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGludGVsLmNvbT4KPj4+IC0tLQo+Pj4gZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgIHwgICAxICsKPj4+IGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAgMyArCj4+PiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2d1Y19yZWcuaCAgICAgfCAgIDMgKwo+Pj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjLmggICAgICAgIHwgICAxICsKPj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1 Y19sb2FkZXIuYyB8ICAgNiArLQo+Pj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmgg ICAgICAgIHwgIDQyICsrKysrCj4+PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfbG9h ZGVyLmMgfCAyNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4+IDcgZmlsZXMg Y2hhbmdlZCwgMzIzIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4+PiBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmgKPj4+IGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9odWNfbG9hZGVyLmMKPj4+Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQo+Pj4gaW5kZXggM2RlYTQ2YS4uY2ZlYTkyNSAxMDA2NDQKPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9NYWtlZmlsZQo+Pj4gQEAgLTU2LDYgKzU2LDcgQEAgaTkxNS15ICs9IGk5MTVfY21k X3BhcnNlci5vIFwKPj4+Cj4+PiAjIGdlbmVyYWwtcHVycG9zZSBtaWNyb2NvbnRyb2xsZXIgKEd1 Qykgc3VwcG9ydAo+Pj4gaTkxNS15ICs9IGludGVsX2d1Y19sb2FkZXIubyBcCj4+PiArCSAgaW50 ZWxfaHVjX2xvYWRlci5vIFwKPj4+IAkgIGk5MTVfZ3VjX3N1Ym1pc3Npb24ubwo+Pj4KPj4+ICMg YXV0b2dlbmVyYXRlZCBudWxsIHJlbmRlciBzdGF0ZQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4+PiBpbmRleCBjNGExNGRlLi4zYTZjNDEyIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+Pj4gQEAgLTU2LDYgKzU2LDcgQEAKPj4+ICNpbmNsdWRlICJpbnRlbF9iaW9zLmgiCj4+ PiAjaW5jbHVkZSAiaW50ZWxfZHBsbF9tZ3IuaCIKPj4+ICNpbmNsdWRlICJpbnRlbF9ndWMuaCIK Pj4+ICsjaW5jbHVkZSAiaW50ZWxfaHVjLmgiCj4+PiAjaW5jbHVkZSAiaW50ZWxfbHJjLmgiCj4+ PiAjaW5jbHVkZSAiaW50ZWxfcmluZ2J1ZmZlci5oIgo+Pj4KPj4+IEBAIC0xNzkxLDYgKzE3OTIs NyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4+Pgo+Pj4gCXN0cnVjdCBpbnRlbF9ndnQg Kmd2dDsKPj4+Cj4+PiArCXN0cnVjdCBpbnRlbF9odWMgaHVjOwo+Pj4gCXN0cnVjdCBpbnRlbF9n dWMgZ3VjOwo+Pj4KPj4+IAlzdHJ1Y3QgaW50ZWxfY3NyIGNzcjsKPj4+IEBAIC0yNjA3LDYgKzI2 MDksNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxlIHsKPj4+ICNkZWZpbmUgSEFTX0dVQyhk ZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaGFzX2d1YykKPj4+ICNkZWZpbmUgSEFTX0dVQ19V Q09ERShkZXZfcHJpdikJKEhBU19HVUMoZGV2X3ByaXYpKQo+Pj4gI2RlZmluZSBIQVNfR1VDX1ND SEVEKGRldl9wcml2KQkoSEFTX0dVQyhkZXZfcHJpdikpCj4+PiArI2RlZmluZSBIQVNfSFVDX1VD T0RFKGRldikJKEhBU19HVUMoZGV2KSkKPj4KPj4gUGFyYW1ldGVyIG5hbWUgc2hvdWxkIGJlIGRl dl9wcml2Lgo+Pgo+Pj4gI2RlZmluZSBIQVNfUkVTT1VSQ0VfU1RSRUFNRVIoZGV2X3ByaXYpICgo ZGV2X3ByaXYpLT5pbmZvLmhhc19yZXNvdXJjZV9zdHJlYW1lcikKPj4+Cj4+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2d1Y19yZWcuaAo+Pj4gaW5kZXggYTQ3ZTFlNC4uNjRlOTQyYSAxMDA2NDQKPj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3JlZy5oCj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19yZWcuaAo+Pj4gQEAgLTYxLDkgKzYxLDEyIEBACj4+ PiAjZGVmaW5lICAgRE1BX0FERFJFU1NfU1BBQ0VfR1RUCQkgICg4IDw8IDE2KQo+Pj4gI2RlZmlu ZSBETUFfQ09QWV9TSVpFCQkJX01NSU8oMHhjMzEwKQo+Pj4gI2RlZmluZSBETUFfQ1RSTAkJCV9N TUlPKDB4YzMxNCkKPj4+ICsjZGVmaW5lICAgSFVDX1VLRVJORUwJCQkgICgxPDw5KQo+Pj4gI2Rl ZmluZSAgIFVPU19NT1ZFCQkJICAoMTw8NCkKPj4+ICNkZWZpbmUgICBTVEFSVF9ETUEJCQkgICgx PDwwKQo+Pj4gI2RlZmluZSBETUFfR1VDX1dPUENNX09GRlNFVAkJX01NSU8oMHhjMzQwKQo+Pj4g KyNkZWZpbmUgICBIVUNfTE9BRElOR19BR0VOVF9WQ1IJCSAgKDA8PDEpCj4+PiArI2RlZmluZSAg IEhVQ19MT0FESU5HX0FHRU5UX0dVQwkJICAoMTw8MSkKPj4+ICNkZWZpbmUgICBHVUNfV09QQ01f T0ZGU0VUX1ZBTFVFCSAgMHg4MDAwMAkvKiA1MTJLQiAqLwo+Pj4gI2RlZmluZSBHVUNfTUFYX0lE TEVfQ09VTlQJCV9NTUlPKDB4QzNFNCkKPj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZ3VjLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWMuaAo+ Pj4gaW5kZXggNDY5OTBhMC4uMzM4ZTgwMyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2d1Yy5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWMuaAo+Pj4gQEAgLTE4NCw2ICsxODQsNyBAQCBleHRlcm4gY29uc3QgY2hhciAqaW50ZWxfdWNf Zndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF91Y19md19zdGF0dXMgc3RhdHVzKTsKPj4+IGV4dGVy biBpbnQgaW50ZWxfZ3VjX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiBleHRl cm4gaW50IGludGVsX2d1Y19yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiB2b2lk IGludGVsX3VjX2Z3X2ZldGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF91 Y19mdyAqdWNfZncpOwo+Pj4gK3UzMiBndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpOwo+Pj4KPj4+IC8qIGk5MTVfZ3VjX3N1Ym1pc3Npb24uYyAqLwo+Pj4g aW50IGk5MTVfZ3VjX3N1Ym1pc3Npb25faW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpOwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19s b2FkZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwo+Pj4gaW5k ZXggNzBiOTY1ZC4uN2YzZmRiMCAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2d1Y19sb2FkZXIuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX2xvYWRlci5jCj4+PiBAQCAtMzA5LDcgKzMwOSw4IEBAIHN0YXRpYyBpbnQgZ3VjX3Vjb2Rl X3hmZXJfZG1hKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+IAlJOTE1X1dS SVRFKERNQV9BRERSXzFfSElHSCwgRE1BX0FERFJFU1NfU1BBQ0VfV09QQ00pOwo+Pj4KPj4+IAkv KiBGaW5hbGx5IHN0YXJ0IHRoZSBETUEgKi8KPj4+IC0JSTkxNV9XUklURShETUFfQ1RSTCwgX01B U0tFRF9CSVRfRU5BQkxFKFVPU19NT1ZFIHwgU1RBUlRfRE1BKSk7Cj4+PiArCUk5MTVfV1JJVEUo RE1BX0NUUkwsIF9NQVNLRURfQklUX0VOQUJMRShVT1NfTU9WRSB8IFNUQVJUX0RNQSkgfAo+Pj4g KwkJCV9NQVNLRURfQklUX0RJU0FCTEUoSFVDX1VLRVJORUwpKTsKPj4+Cj4+PiAJLyoKPj4+IAkg KiBXYWl0IGZvciB0aGUgRE1BIHRvIGNvbXBsZXRlICYgdGhlIEd1QyB0byBzdGFydCB1cC4KPj4+ IEBAIC0zMzQsNyArMzM1LDcgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcl9kbWEoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Pj4gCXJldHVybiByZXQ7Cj4+PiB9Cj4+Pgo+ Pj4gLXN0YXRpYyB1MzIgZ3VjX3dvcGNtX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+Pj4gK3UzMiBndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4+PiB7Cj4+PiAJdTMyIHdvcGNtX3NpemUgPSBHVUNfV09QQ01fVE9QOwo+Pj4K Pj4+IEBAIC01MTIsNiArNTEzLDcgQEAgaW50IGludGVsX2d1Y19zZXR1cChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+Pj4gCQlpZiAoZXJyKQo+Pj4gCQkJZ290byBmYWlsOwo+Pj4KPj4+ICsJCWlu dGVsX2h1Y19sb2FkKGRldik7Cj4+PiAJCWVyciA9IGd1Y191Y29kZV94ZmVyKGRldl9wcml2KTsK Pj4+IAkJaWYgKCFlcnIpCj4+PiAJCQlicmVhazsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9odWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2h1Yy5o Cj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uM2NlMDI5OQo+Pj4g LS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjLmgK Pj4+IEBAIC0wLDAgKzEsNDIgQEAKPj4+ICsvKgo+Pj4gKyAqIENvcHlyaWdodCDCqSAyMDE2IElu dGVsIENvcnBvcmF0aW9uCj4+PiArICoKPj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+Pj4gKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCj4+PiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+Pj4gKyAqIHRoZSByaWdo dHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJs aWNlbnNlLAo+Pj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+Pj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+PiArICoK Pj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v dGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4+PiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+Pj4gKyAq IFNvZnR3YXJlLgo+Pj4gKyAqCj4+PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPj4+ICsgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKPj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPj4+ICsgKiBUSEUgQVVUSE9SUyBP UiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBP VEhFUgo+Pj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4+PiArICogRlJPTSwgT1VUIE9GIE9SIElOIENP Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ Pj4gKyAqIElOIFRIRSBTT0ZUV0FSRS4KPj4+ICsgKgo+Pj4gKyAqLwo+Pj4gKyNpZm5kZWYgX0lO VEVMX0hVQ19IXwo+Pj4gKyNkZWZpbmUgX0lOVEVMX0hVQ19IXwo+Pj4gKwo+Pj4gKyNpbmNsdWRl ICJpbnRlbF9ndWMuaCIKPj4+ICsKPj4+ICsjZGVmaW5lIEhVQ19TVEFUVVMyCQlfTU1JTygweEQz QjApCj4+PiArI2RlZmluZSAgIEhVQ19GV19WRVJJRklFRAkoMTw8NykKPj4+ICsKPj4+ICtzdHJ1 Y3QgaW50ZWxfaHVjIHsKPj4+ICsJLyogR2VuZXJpYyB1QyBmaXJtd2FyZSBtYW5hZ2VtZW50ICov Cj4+PiArCXN0cnVjdCBpbnRlbF91Y19mdyBodWNfZnc7Cj4+PiArCj4+PiArCS8qIEh1Qy1zcGVj aWZpYyBhZGRpdGlvbnMgKi8KPj4+ICt9Owo+Pj4gKwo+Pj4gK3ZvaWQgaW50ZWxfaHVjX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4+PiArdm9pZCBpbnRlbF9odWNfZmluaShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPj4+ICtpbnQgaW50ZWxfaHVjX2xvYWQoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4+PiArI2VuZGlmCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaHVjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaHVjX2xv YWRlci5jCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uY2U1MDMw Ngo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aHVjX2xvYWRlci5jCj4+PiBAQCAtMCwwICsxLDI2OSBAQAo+Pj4gKy8qCj4+PiArICogQ29weXJp Z2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRpb24KPj4+ICsgKgo+Pj4gKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhCj4+PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4+ PiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRp c3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4+PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4+PiArICogU29mdHdh cmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9uczoKPj4+ICsgKgo+Pj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPj4+ICsgKiBwYXJhZ3JhcGgp IHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg b2YgdGhlCj4+PiArICogU29mdHdhcmUuCj4+PiArICoKPj4+ICsgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP Ugo+Pj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJB TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+Pj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+Pj4gKyAq IFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlN LCBEQU1BR0VTIE9SIE9USEVSCj4+PiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPj4+ICsgKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSIERFQUxJTkdTCj4+PiArICogSU4gVEhFIFNPRlRXQVJFLgo+Pj4gKyAqCj4+PiArICovCj4+ PiArI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+Cj4+PiArI2luY2x1ZGUgImk5MTVfZHJ2Lmgi Cj4+PiArI2luY2x1ZGUgImludGVsX2h1Yy5oIgo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIERPQzog SHVDIEZpcm13YXJlCj4+PiArICoKPj4+ICsgKiBNb3RpdmF0aW9uOgo+Pj4gKyAqIEdFTjkgaW50 cm9kdWNlcyBhIG5ldyBkZWRpY2F0ZWQgZmlybXdhcmUgZm9yIHVzYWdlIGluIG1lZGlhIEhFVkMg KEhpZ2gKPj4+ICsgKiBFZmZpY2llbmN5IFZpZGVvIENvZGluZykgb3BlcmF0aW9ucy4gVXNlcnNw YWNlIGNhbiB1c2UgdGhlIGZpcm13YXJlCj4+PiArICogY2FwYWJpbGl0aWVzIGJ5IGFkZGluZyBI dUMgc3BlY2lmaWMgY29tbWFuZHMgdG8gYmF0Y2ggYnVmZmVycy4KPj4+ICsgKgo+Pj4gKyAqIElt cGxlbWVudGF0aW9uOgo+Pj4gKyAqIFRoZSBzYW1lIGZpcm13YXJlIGxvYWRlciBpcyB1c2VkIGFz IHRoZSBHdUMuIEhvd2V2ZXIsIHRoZSBhY3R1YWwKPj4+ICsgKiBsb2FkaW5nIHRvIEhXIGlzIGRl ZmVycmVkIHVudGlsIEdFTSBpbml0aWFsaXphdGlvbiBpcyBkb25lLgo+Pj4gKyAqCj4+PiArICog Tm90ZSB0aGF0IEh1QyBmaXJtd2FyZSBsb2FkaW5nIG11c3QgYmUgZG9uZSBiZWZvcmUgR3VDIGxv YWRpbmcuCj4+PiArICovCj4+PiArCj4+PiArI2RlZmluZSBTS0xfRldfTUFKT1IgMDEKPj4+ICsj ZGVmaW5lIFNLTF9GV19NSU5PUiAwNwo+Pj4gKyNkZWZpbmUgU0tMX0JMRF9OVU0gMTM5OAo+Pj4g Kwo+Pj4gKyNkZWZpbmUgSFVDX0ZXX1BBVEgocGxhdGZvcm0sIG1ham9yLCBtaW5vciwgYmxkX251 bSkgXAo+Pj4gKwkiaTkxNS8iIF9fc3RyaW5naWZ5KHBsYXRmb3JtKSAiX2h1Y192ZXIiIF9fc3Ry aW5naWZ5KG1ham9yKSAiXyIgXAo+Pj4gKwlfX3N0cmluZ2lmeShtaW5vcikgIl8iIF9fc3RyaW5n aWZ5KGJsZF9udW0pICIuYmluIgo+Pgo+PiBBcG9sb2dpZXMgaWYgSSBtaXNzZWQgaXQsIGJ1dCB3 YXMgaXQgZXZlciBkaXNjdXNzZWQgd2h5IGRvIHdlIG5lZWQKPj4gdGhlIGJ1aWxkIG51bWJlciBp biB0aGUgZmlsZW5hbWU/IE1vcmUgc28sIGZvciB0aGUgZHJpdmVyIHRvIGtub3cKPj4gYWJvdXQg aXQgd2hlbiBpdCBvdGhlcndpc2UgZG9lcyBub3QgdXNlIGl0Pwo+Pgo+IFZQRyBNZWRpYSB0ZWFt IHRoYXQgcHJvdmlkZXMgSHVDIGZpcm13YXJlIGlzIHVzaW5nIHRoaXMgZm9ybWF0LiBJdCBzZWVt cwo+IHRoYXQgYnVpbGQgbnVtYmVyIHJlYWxseSBpcyBhIHJlbGVhc2UgbWlub3IuIFdlIGFyZSBz ZWVpbmcgbmV3IGZpcm13YXJlCj4gZnJvbSB0aGVtIHdpdGggYnVnIGZpeGVzIHdoZXJlIG9ubHkg YnVpbGQgbnVtYmVyIGlzIGluY3JlbWVudGVkLiBXZSBjYW4KPiBwdXNoIGJhY2sgb24gdGhpcyBh cHByb2FjaCBpZiBpdCBpcyBhIGNvbmNlcm4uCgpPbmUgcGFydCBpdCBpcyBhIHBpdHkgdGhhdCB3 ZSBjYW5ub3QgaGF2ZSB0aGUgc2FtZSBmb3JtYXQgYmV0d2VlbiBHdUMgCmFuZCBIdUMsIGFuZCBh bm90aGVyIGlzIGtpbmQgb2Ygd2hhdCdzIHRoZSBwb2ludCBvZiB0aGUgYnVpbGQgbnVtYmVyPwoK RHJpdmVyIGNhcmVzIGFib3V0IG1ham9yLW1pbm9yIHdoZW4gbG9hZGluZyBhbmQgbm90IGFib3V0 IHRoZSBidWlsZCAKbnVtYmVyIGF0IGFsbC4gU28gSSBhbSB3b25kZXJpbmcgd2h5IGRvIHdlIG5l ZWQgdG8gYnVyZGVuIG91ciBzb3VyY2UgCmNvZGUgd2l0aCBpdD8KCldoYXQgd2lsbCBoYXBwZW4g aWYgd2UgaGF2ZSB0d28gZmlybXdhcmUgd2l0aCBzYW1lIG1ham9yLW1pbm9yIGFuZCAKZGlmZmVy ZW50IGJ1aWxkIG51bWJlcnM/IE9uZSBxdWVzdGlvbiBpcyBvbiBkaXNrLCB3ZSB3YW50IHRvIGRy aXZlciB0byAKbG9hZCB0aGUgbGF0ZXN0IG9uZT8gQnV0IGl0IGFsc28gaGFzIHRvIGtub3cgYWJv dXQgaXQuIFNvIHdlIHdhbnQgdG8gCnByZXZlbnQgdGhhdCBleHBsaWNpdGx5IGJ5IGVtYmVkZGlu ZyB0aGUgYnVpbGQgbnVtYmVyIGtub3dsZWRnZSBpbnRvIHRoZSAKZHJpdmVyPyBPciBub3Q/CgpX ZSBkb24ndCBldmVuIHRlY2huaWNhbGx5IG5lZWQgdG8gY2hhbmdlIHRoZSByZWxlYXNlIHByb2Nl c3MgYXQgc291cmNlLiAKV2UgY291bGQgaGF2ZSBzeW1saW5rcyBvbiBkaXNrIGxpa2U6Cgpza2xf aHVjX3ZlcjFfN18xMjM0LmJpbgpza2xfaHVjX3ZlcjFfN181Njc4LmJpbgpza2xfaHVjX3ZlcjFf Ny5iaW4gLT4gc2tsX2h1Y192ZXIxXzdfNTY3OC5iaW4KCkFuZCBkcm9wIHRoZSBidWlsZCBudW1i ZXIgZnJvbSB0aGUgZHJpdmVycyBzdHJpbmc/IEkgZG9uJ3Qga25vdyByZWFsbHksIApqdXN0IGZl ZWxzIHN0cmFuZ2Ugc28gcGVyaGFwcyBSb2RyaWdvIGNvdWxkIGNvbW1lbnQgd2l0aCBpbnNpZ2h0 cyBmcm9tIAp0aGUgZXhpc3RpbmcgZmlybXdhcmUgc2l0dWF0aW9ucy4KClJlZ2FyZHMsCgpUdnJ0 a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==