From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Grodzovsky, Andrey" Subject: Re: [PATCH v5 6/6] drm/amdgpu: Avoid HW reset if guilty job already signaled. Date: Fri, 26 Apr 2019 14:08:57 +0000 Message-ID: <0c02ed97-1f10-1d06-6a06-d1ec0af2dbf7@amd.com> References: <1555599624-12285-1-git-send-email-andrey.grodzovsky@amd.com> <1555599624-12285-6-git-send-email-andrey.grodzovsky@amd.com> <2f8cf80c-3c53-0ee2-968c-08338b9f154e@amd.com> <1b41c4f1-b406-8710-2a7a-e5c54a116fe9@amd.com> <-hyv5g0n8ru25qelb0v-8u6jdi1vp2c7z1m3f5-uygwc1o5ji6s-9zli9v-srreuk-3pvse1en6kx0-6se95l-6jsafd-a6sboi-j814xf-ijgwfc-qewgmm-vnafjgrn2fq0-jgir949hx4yo-i772hz-tn7ial.1556032736536@email.android.com> <571a119a-170a-d1ba-6870-31807e0f7016@amd.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2101652710==" Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Koenig, Christian" , "Zhou, David(ChunMing)" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org" , "etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kazlauskas, Nicholas" , "Liu, Monk" List-Id: dri-devel@lists.freedesktop.org --===============2101652710== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_0c02ed971f101d066a06d1ec0af2dbf7amdcom_" --_000_0c02ed971f101d066a06d1ec0af2dbf7amdcom_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGluZyAobW9zdGx5IERhdmlkIGFuZCBNb25rKS4NCg0KQW5kcmV5DQoNCk9uIDQvMjQvMTkgMzow OSBBTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToNCkFtIDI0LjA0LjE5IHVtIDA1OjAyIHNjaHJp ZWIgWmhvdSwgRGF2aWQoQ2h1bk1pbmcpOg0KPj4gLSAgICAgICAgICAgIGRybV9zY2hlZF9zdG9w KCZyaW5nLT5zY2hlZCwgJmpvYi0+YmFzZSk7DQo+PiAtDQo+PiAgICAgICAgICAgICAgIC8qIGFm dGVyIGFsbCBodyBqb2JzIGFyZSByZXNldCwgaHcgZmVuY2UgaXMgbWVhbmluZ2xlc3MsIHNvIGZv cmNlX2NvbXBsZXRpb24gKi8NCj4+ICAgICAgICAgICAgICAgYW1kZ3B1X2ZlbmNlX2RyaXZlcl9m b3JjZV9jb21wbGV0aW9uKHJpbmcpOw0KPj4gICAgICAgfQ0KDQpIVyBmZW5jZSBhcmUgYWxyZWFk eSBmb3JjZWQgY29tcGxldGlvbiwgdGhlbiB3ZSBjYW4ganVzdCBkaXNhYmxlIGlycSBmZW5jZSBw cm9jZXNzIGFuZCBpZ25vcmUgaHcgZmVuY2Ugc2lnbmFsIHdoZW4gd2UgYXJlIHRyeWluZyB0byBk byBHUFUgcmVzZXQsIEkgdGhpbmsuIE90aGVyd2lzZSB3aGljaCB3aWxsIG1ha2UgdGhlIGxvZ2lj IG11Y2ggbW9yZSBjb21wbGV4Lg0KSWYgdGhpcyBzaXR1YXRpb24gaGFwcGVucyBiZWNhdXNlIG9m IGxvbmcgdGltZSBleGVjdXRpb24sIHdlIGNhbiBpbmNyZWFzZSB0aW1lb3V0IG9mIHJlc2V0IGRl dGVjdGlvbi4NCg0KWW91IGFyZSBub3QgdGhpbmtpbmcgd2lkZWx5IGVub3VnaCwgZm9yY2luZyB0 aGUgaHcgZmVuY2UgdG8gY29tcGxldGUgY2FuIHRyaWdnZXIgb3RoZXIgdG8gc3RhcnQgb3RoZXIg YWN0aXZpdHkgaW4gdGhlIHN5c3RlbS4NCg0KV2UgZmlyc3QgbmVlZCB0byBzdG9wIGV2ZXJ5dGhp bmcgYW5kIG1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGRvIGFueSBwcm9jZXNzaW5nIGFueSBtb3Jl IGFuZCB0aGVuIHN0YXJ0IHdpdGggb3VyIHJlc2V0IHByb2NlZHVyZSBpbmNsdWRpbmcgZm9yY2lu ZyBhbGwgaHcgZmVuY2VzIHRvIGNvbXBsZXRlLg0KDQpDaHJpc3RpYW4uDQoNCg0KLURhdmlkDQoN CkZyb206IGFtZC1nZnggPGFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmc+PG1h aWx0bzphbWQtZ2Z4LWJvdW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPiBPbiBCZWhhbGYgT2Yg R3JvZHpvdnNreSwgQW5kcmV5DQpTZW50OiBXZWRuZXNkYXksIEFwcmlsIDI0LCAyMDE5IDEyOjAw IEFNDQpUbzogWmhvdSwgRGF2aWQoQ2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBhbWQuY29tPjxtYWls dG86RGF2aWQxLlpob3VAYW1kLmNvbT47IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc8 bWFpbHRvOmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+OyBhbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZzxtYWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+OyBlcmlj QGFuaG9sdC5uZXQ8bWFpbHRvOmVyaWNAYW5ob2x0Lm5ldD47IGV0bmF2aXZAbGlzdHMuZnJlZWRl c2t0b3Aub3JnPG1haWx0bzpldG5hdml2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZz47IGNrb2VuaWcu bGVpY2h0enVtZXJrZW5AZ21haWwuY29tPG1haWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdt YWlsLmNvbT4NCkNjOiBLYXpsYXVza2FzLCBOaWNob2xhcyA8TmljaG9sYXMuS2F6bGF1c2thc0Bh bWQuY29tPjxtYWlsdG86TmljaG9sYXMuS2F6bGF1c2thc0BhbWQuY29tPjsgTGl1LCBNb25rIDxN b25rLkxpdUBhbWQuY29tPjxtYWlsdG86TW9uay5MaXVAYW1kLmNvbT4NClN1YmplY3Q6IFJlOiBb UEFUQ0ggdjUgNi82XSBkcm0vYW1kZ3B1OiBBdm9pZCBIVyByZXNldCBpZiBndWlsdHkgam9iIGFs cmVhZHkgc2lnbmFsZWQuDQoNCg0KTm8sIGkgbWVhbiB0aGUgYWN0dWFsIEhXIGZlbmNlIHdoaWNo IHNpZ25hbHMgd2hlbiB0aGUgam9iIGZpbmlzaGVkIGV4ZWN1dGlvbiBvbiB0aGUgSFcuDQoNCkFu ZHJleQ0KT24gNC8yMy8xOSAxMToxOSBBTSwgWmhvdSwgRGF2aWQoQ2h1bk1pbmcpIHdyb3RlOg0K ZG8geW91IG1lYW4gZmVuY2UgdGltZXI/IHdoeSBub3Qgc3RvcCBpdCBhcyB3ZWxsIHdoZW4gc3Rv cHBpbmcgc2NoZWQgZm9yIHRoZSByZWFzb24gb2YgaHcgcmVzZXQ/DQoNCi0tLS0tLS0tIE9yaWdp bmFsIE1lc3NhZ2UgLS0tLS0tLS0NClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjUgNi82XSBkcm0vYW1k Z3B1OiBBdm9pZCBIVyByZXNldCBpZiBndWlsdHkgam9iIGFscmVhZHkgc2lnbmFsZWQuDQpGcm9t OiAiR3JvZHpvdnNreSwgQW5kcmV5Ig0KVG86ICJaaG91LCBEYXZpZChDaHVuTWluZykiICxkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnLGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn LGVyaWNAYW5ob2x0Lm5ldCxldG5hdml2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZyxja29lbmlnLmxl aWNodHp1bWVya2VuQGdtYWlsLmNvbTxtYWlsdG86ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZyxhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZyxlcmljQGFuaG9sdC5uZXQsZXRuYXZp dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcsY2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb20+ DQpDQzogIkthemxhdXNrYXMsIE5pY2hvbGFzIiAsIkxpdSwgTW9uayINCg0KT24gNC8yMi8xOSA5 OjA5IEFNLCBaaG91LCBEYXZpZChDaHVuTWluZykgd3JvdGU6DQo+ICtNb25rLg0KPg0KPiBHUFUg cmVzZXQgaXMgdXNlZCB3aWRlbHkgaW4gU1JJT1YsIHNvIG5lZWQgdmlydHVsaXphdGlubyBndXkg dGFrZSBhIGxvb2suDQo+DQo+IEJ1dCBvdXQgb2YgY3VyaW91cywgd2h5IGd1aWx0eSBqb2IgY2Fu IHNpZ25hbCBtb3JlIGlmIHRoZSBqb2IgaXMgYWxyZWFkeQ0KPiBzZXQgdG8gZ3VpbHR5PyBzZXQg aXQgd3JvbmdseT8NCj4NCj4NCj4gLURhdmlkDQoNCg0KSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBq b2IgZG9lcyBjb21wbGV0ZXMgYXQgYSBsYXRlciB0aW1lIHRoZW4gaXQncw0KdGltZW91dCBoYW5k bGVyIHN0YXJ0ZWQgcHJvY2Vzc2luZyBzbyBpbiB0aGlzIHBhdGNoIHdlIHRyeSB0byBwcm90ZWN0 DQphZ2FpbnN0IHRoaXMgYnkgcmVjaGVja2luZyB0aGUgSFcgZmVuY2UgYWZ0ZXIgc3RvcHBpbmcg YWxsIFNXDQpzY2hlZHVsZXJzLiBXZSBkbyBpdCBCRUZPUkUgbWFya2luZyBndWlsdHkgb24gdGhl IGpvYidzIHNjaGVkX2VudGl0eSBzbw0KYXQgdGhlIHBvaW50IHdlIGNoZWNrIHRoZSBndWlsdHkg ZmxhZyBpcyBub3Qgc2V0IHlldC4NCg0KQW5kcmV5DQoNCg0KPg0KPiDlnKggMjAxOS80LzE4IDIz OjAwLCBBbmRyZXkgR3JvZHpvdnNreSDlhpnpgZM6DQo+PiBBbHNvIHJlamVjdCBURFJzIGlmIGFu b3RoZXIgb25lIGFscmVhZHkgcnVubmluZy4NCj4+DQo+PiB2MjoNCj4+IFN0b3AgYWxsIHNjaGVk dWxlcnMgYWNyb3NzIGRldmljZSBhbmQgZW50aXJlIFhHTUkgaGl2ZSBiZWZvcmUNCj4+IGZvcmNl IHNpZ25hbGluZyBIVyBmZW5jZXMuDQo+PiBBdm9pZCBwYXNzaW5nIGpvYl9zaWduYWxlZCB0byBo ZWxwZXIgZm5jdGlvbnMgdG8ga2VlcCBhbGwgdGhlIGRlY2lzaW9uDQo+PiBtYWtpbmcgYWJvdXQg c2tpcHBpbmcgSFcgcmVzZXQgaW4gb25lIHBsYWNlLg0KPj4NCj4+IHYzOg0KPj4gRml4IFNXIHNj aGVkLiBoYW5nIGFmdGVyIG5vbiBIVyByZXNldC4gc2NoZWQuaHdfcnFfY291bnQgaGFzIHRvIGJl IGJhbGFuY2VkDQo+PiBhZ2FpbnN0IGl0J3MgZGVjcmVtZW50IGluIGRybV9zY2hlZF9zdG9wIGlu IG5vbiBIVyByZXNldCBjYXNlLg0KPj4gdjQ6IHJlYmFzZQ0KPj4gdjU6IFJldmVydCB2MyBhcyB3 ZSBkbyBpdCBub3cgaW4gc2NlZHVsZXIgY29kZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRy ZXkgR3JvZHpvdnNreSA8YW5kcmV5Lmdyb2R6b3Zza3lAYW1kLmNvbT48bWFpbHRvOmFuZHJleS5n cm9kem92c2t5QGFtZC5jb20+DQo+PiAtLS0NCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kZXZpY2UuYyB8IDE0MyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0K Pj4gICAgMSBmaWxlIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQ0K Pj4NCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2 aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4+IGlu ZGV4IGEwZTE2NWMuLjg1Zjg3OTIgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZGV2aWNlLmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9kZXZpY2UuYw0KPj4gQEAgLTMzMzQsOCArMzMzNCw2IEBAIHN0YXRpYyBpbnQg YW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwN Cj4+ICAgICAgICAgICAgICAgaWYgKCFyaW5nIHx8ICFyaW5nLT5zY2hlZC50aHJlYWQpDQo+PiAg ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+Pg0KPj4gLSAgICAgICAgICAgIGRybV9z Y2hlZF9zdG9wKCZyaW5nLT5zY2hlZCwgJmpvYi0+YmFzZSk7DQo+PiAtDQo+PiAgICAgICAgICAg ICAgIC8qIGFmdGVyIGFsbCBodyBqb2JzIGFyZSByZXNldCwgaHcgZmVuY2UgaXMgbWVhbmluZ2xl c3MsIHNvIGZvcmNlX2NvbXBsZXRpb24gKi8NCj4+ICAgICAgICAgICAgICAgYW1kZ3B1X2ZlbmNl X2RyaXZlcl9mb3JjZV9jb21wbGV0aW9uKHJpbmcpOw0KPj4gICAgICAgfQ0KPj4gQEAgLTMzNDMs NiArMzM0MSw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4+ICAgICAgIGlmKGpvYikNCj4+ICAgICAgICAgICAg ICAgZHJtX3NjaGVkX2luY3JlYXNlX2thcm1hKCZqb2ItPmJhc2UpOw0KPj4NCj4+ICsgICAgLyog RG9uJ3Qgc3VzcGVuZCBvbiBiYXJlIG1ldGFsIGlmIHdlIGFyZSBub3QgZ29pbmcgdG8gSFcgcmVz ZXQgdGhlIEFTSUMgKi8NCj4+ICAgICAgIGlmICghYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSB7DQo+ Pg0KPj4gICAgICAgICAgICAgICBpZiAoIW5lZWRfZnVsbF9yZXNldCkNCj4+IEBAIC0zNDgwLDM3 ICszNDc5LDIxIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RvX2FzaWNfcmVzZXQoc3RydWN0IGFtZGdw dV9oaXZlX2luZm8gKmhpdmUsDQo+PiAgICAgICByZXR1cm4gcjsNCj4+ICAgIH0NCj4+DQo+PiAt c3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpDQo+PiArc3RhdGljIGJvb2wgYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGJvb2wgdHJ5bG9jaykNCj4+ICAgIHsNCj4+IC0gICAg aW50IGk7DQo+PiAtDQo+PiAtICAgIGZvciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyAr K2kpIHsNCj4+IC0gICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSBhZGV2LT5y aW5nc1tpXTsNCj4+IC0NCj4+IC0gICAgICAgICAgICBpZiAoIXJpbmcgfHwgIXJpbmctPnNjaGVk LnRocmVhZCkNCj4+IC0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4gLQ0KPj4gLSAg ICAgICAgICAgIGlmICghYWRldi0+YXNpY19yZXNldF9yZXMpDQo+PiAtICAgICAgICAgICAgICAg ICAgICBkcm1fc2NoZWRfcmVzdWJtaXRfam9icygmcmluZy0+c2NoZWQpOw0KPj4gKyAgICBpZiAo dHJ5bG9jaykgew0KPj4gKyAgICAgICAgICAgIGlmICghbXV0ZXhfdHJ5bG9jaygmYWRldi0+bG9j a19yZXNldCkpDQo+PiArICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+PiArICAg IH0gZWxzZQ0KPj4gKyAgICAgICAgICAgIG11dGV4X2xvY2soJmFkZXYtPmxvY2tfcmVzZXQpOw0K Pj4NCj4+IC0gICAgICAgICAgICBkcm1fc2NoZWRfc3RhcnQoJnJpbmctPnNjaGVkLCAhYWRldi0+ YXNpY19yZXNldF9yZXMpOw0KPj4gLSAgICB9DQo+PiAtDQo+PiAtICAgIGlmICghYW1kZ3B1X2Rl dmljZV9oYXNfZGNfc3VwcG9ydChhZGV2KSkgew0KPj4gLSAgICAgICAgICAgIGRybV9oZWxwZXJf cmVzdW1lX2ZvcmNlX21vZGUoYWRldi0+ZGRldik7DQo+PiAtICAgIH0NCj4+IC0NCj4+IC0gICAg YWRldi0+YXNpY19yZXNldF9yZXMgPSAwOw0KPj4gLX0NCj4+IC0NCj4+IC1zdGF0aWMgdm9pZCBh bWRncHVfZGV2aWNlX2xvY2tfYWRldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4+IC17 DQo+PiAtICAgIG11dGV4X2xvY2soJmFkZXYtPmxvY2tfcmVzZXQpOw0KPj4gICAgICAgYXRvbWlj X2luYygmYWRldi0+Z3B1X3Jlc2V0X2NvdW50ZXIpOw0KPj4gICAgICAgYWRldi0+aW5fZ3B1X3Jl c2V0ID0gMTsNCj4+ICAgICAgIC8qIEJsb2NrIGtmZDogU1JJT1Ygd291bGQgZG8gaXQgc2VwYXJh dGVseSAqLw0KPj4gICAgICAgaWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpDQo+PiAgICAgICAg ICAgICAgICAgICAgYW1kZ3B1X2FtZGtmZF9wcmVfcmVzZXQoYWRldik7DQo+PiArDQo+PiArICAg IHJldHVybiB0cnVlOw0KPj4gICAgfQ0KPj4NCj4+ICAgIHN0YXRpYyB2b2lkIGFtZGdwdV9kZXZp Y2VfdW5sb2NrX2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+PiBAQCAtMzUzOCw0 MCArMzUyMSw0MiBAQCBzdGF0aWMgdm9pZCBhbWRncHVfZGV2aWNlX3VubG9ja19hZGV2KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPj4gICAgaW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292 ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGFtZGdwdV9qb2IgKmpvYikNCj4+ICAgIHsNCj4+IC0gICAgaW50IHI7DQo+ PiArICAgIHN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3QsICpkZXZpY2VfbGlzdF9oYW5kbGUg PSAgTlVMTDsNCj4+ICsgICAgYm9vbCBuZWVkX2Z1bGxfcmVzZXQsIGpvYl9zaWduYWxlZDsNCj4+ ICAgICAgIHN0cnVjdCBhbWRncHVfaGl2ZV9pbmZvICpoaXZlID0gTlVMTDsNCj4+IC0gICAgYm9v bCBuZWVkX2Z1bGxfcmVzZXQgPSBmYWxzZTsNCj4+ICAgICAgIHN0cnVjdCBhbWRncHVfZGV2aWNl ICp0bXBfYWRldiA9IE5VTEw7DQo+PiAtICAgIHN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3Qs ICpkZXZpY2VfbGlzdF9oYW5kbGUgPSAgTlVMTDsNCj4+ICsgICAgaW50IGksIHIgPSAwOw0KPj4N Cj4+ICsgICAgbmVlZF9mdWxsX3Jlc2V0ID0gam9iX3NpZ25hbGVkID0gZmFsc2U7DQo+PiAgICAg ICBJTklUX0xJU1RfSEVBRCgmZGV2aWNlX2xpc3QpOw0KPj4NCj4+ICAgICAgIGRldl9pbmZvKGFk ZXYtPmRldiwgIkdQVSByZXNldCBiZWdpbiFcbiIpOw0KPj4NCj4+ICsgICAgaGl2ZSA9IGFtZGdw dV9nZXRfeGdtaV9oaXZlKGFkZXYsIGZhbHNlKTsNCj4+ICsNCj4+ICAgICAgIC8qDQo+PiAtICAg ICAqIEluIGNhc2Ugb2YgWEdNSSBoaXZlIGRpc2FsbG93IGNvbmN1cnJlbnQgcmVzZXRzIHRvIGJl IHRyaWdnZXJlZA0KPj4gLSAgICAgKiBieSBkaWZmZXJlbnQgbm9kZXMuIE5vIHBvaW50IGFsc28g c2luY2UgdGhlIG9uZSBub2RlIGFscmVhZHkgZXhlY3V0aW5nDQo+PiAtICAgICAqIHJlc2V0IHdp bGwgYWxzbyByZXNldCBhbGwgdGhlIG90aGVyIG5vZGVzIGluIHRoZSBoaXZlLg0KPj4gKyAgICAg KiBIZXJlIHdlIHRyeWxvY2sgdG8gYXZvaWQgY2hhaW4gb2YgcmVzZXRzIGV4ZWN1dGluZyBmcm9t DQo+PiArICAgICAqIGVpdGhlciB0cmlnZ2VyIGJ5IGpvYnMgb24gZGlmZmVyZW50IGFkZXZzIGlu IFhHTUkgaGl2ZSBvciBqb2JzIG9uDQo+PiArICAgICAqIGRpZmZlcmVudCBzY2hlZHVsZXJzIGZv ciBzYW1lIGRldmljZSB3aGlsZSB0aGlzIFRPIGhhbmRsZXIgaXMgcnVubmluZy4NCj4+ICsgICAg ICogV2UgYWx3YXlzIHJlc2V0IGFsbCBzY2hlZHVsZXJzIGZvciBkZXZpY2UgYW5kIGFsbCBkZXZp Y2VzIGZvciBYR01JDQo+PiArICAgICAqIGhpdmUgc28gdGhhdCBzaG91bGQgdGFrZSBjYXJlIG9m IHRoZW0gdG9vLg0KPj4gICAgICAgICovDQo+PiAtICAgIGhpdmUgPSBhbWRncHVfZ2V0X3hnbWlf aGl2ZShhZGV2LCAwKTsNCj4+IC0gICAgaWYgKGhpdmUgJiYgYWRldi0+Z21jLnhnbWkubnVtX3Bo eXNpY2FsX25vZGVzID4gMSAmJg0KPj4gLSAgICAgICAgIW11dGV4X3RyeWxvY2soJmhpdmUtPnJl c2V0X2xvY2spKQ0KPj4gKw0KPj4gKyAgICBpZiAoaGl2ZSAmJiAhbXV0ZXhfdHJ5bG9jaygmaGl2 ZS0+cmVzZXRfbG9jaykpIHsNCj4+ICsgICAgICAgICAgICBEUk1fSU5GTygiQmFpbGluZyBvbiBU RFIgZm9yIHNfam9iOiVsbHgsIGhpdmU6ICVsbHggYXMgYW5vdGhlciBhbHJlYWR5IGluIHByb2dy ZXNzIiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICBqb2ItPmJhc2UuaWQsIGhpdmUtPmhpdmVf aWQpOw0KPj4gICAgICAgICAgICAgICByZXR1cm4gMDsNCj4+ICsgICAgfQ0KPj4NCj4+ICAgICAg IC8qIFN0YXJ0IHdpdGggYWRldiBwcmUgYXNpYyByZXNldCBmaXJzdCBmb3Igc29mdCByZXNldCBj aGVjay4qLw0KPj4gLSAgICBhbWRncHVfZGV2aWNlX2xvY2tfYWRldihhZGV2KTsNCj4+IC0gICAg ciA9IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQoYWRldiwNCj4+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgam9iLA0KPj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmbmVlZF9mdWxsX3Jlc2V0KTsNCj4+IC0gICAgaWYgKHIpIHsNCj4+IC0g ICAgICAgICAgICAvKlRPRE8gU2hvdWxkIHdlIHN0b3AgPyovDQo+PiAtICAgICAgICAgICAgRFJN X0VSUk9SKCJHUFUgcHJlIGFzaWMgcmVzZXQgZmFpbGVkIHdpdGggZXJyLCAlZCBmb3IgZHJtIGRl diwgJXMgIiwNCj4+IC0gICAgICAgICAgICAgICAgICAgICAgciwgYWRldi0+ZGRldi0+dW5pcXVl KTsNCj4+IC0gICAgICAgICAgICBhZGV2LT5hc2ljX3Jlc2V0X3JlcyA9IHI7DQo+PiArICAgIGlm ICghYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYoYWRldiwgIWhpdmUpKSB7DQo+PiArICAgICAgICAg ICAgRFJNX0lORk8oIkJhaWxpbmcgb24gVERSIGZvciBzX2pvYjolbGx4LCBhcyBhbm90aGVyIGFs cmVhZHkgaW4gcHJvZ3Jlc3MiLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBqb2ItPmJhc2UuaWQpOw0KPj4gKyAgICAgICAgICAgIHJldHVybiAwOw0KPj4gICAgICAg fQ0KPj4NCj4+ICAgICAgIC8qIEJ1aWxkIGxpc3Qgb2YgZGV2aWNlcyB0byByZXNldCAqLw0KPj4g LSAgICBpZiAgKG5lZWRfZnVsbF9yZXNldCAmJiBhZGV2LT5nbWMueGdtaS5udW1fcGh5c2ljYWxf bm9kZXMgPiAxKSB7DQo+PiArICAgIGlmICAoYWRldi0+Z21jLnhnbWkubnVtX3BoeXNpY2FsX25v ZGVzID4gMSkgew0KPj4gICAgICAgICAgICAgICBpZiAoIWhpdmUpIHsNCj4+ICAgICAgICAgICAg ICAgICAgICAgICBhbWRncHVfZGV2aWNlX3VubG9ja19hZGV2KGFkZXYpOw0KPj4gICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtRU5PREVWOw0KPj4gQEAgLTM1ODgsMTMgKzM1NzMsNTYgQEAg aW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs DQo+PiAgICAgICAgICAgICAgIGRldmljZV9saXN0X2hhbmRsZSA9ICZkZXZpY2VfbGlzdDsNCj4+ ICAgICAgIH0NCj4+DQo+PiArICAgIC8qIGJsb2NrIGFsbCBzY2hlZHVsZXJzIGFuZCByZXNldCBn aXZlbiBqb2IncyByaW5nICovDQo+PiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnkodG1wX2FkZXYs IGRldmljZV9saXN0X2hhbmRsZSwgZ21jLnhnbWkuaGVhZCkgew0KPj4gKyAgICAgICAgICAgIGZv ciAoaSA9IDA7IGkgPCBBTURHUFVfTUFYX1JJTkdTOyArK2kpIHsNCj4+ICsgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IHRtcF9hZGV2LT5yaW5nc1tpXTsNCj4+ ICsNCj4+ICsgICAgICAgICAgICAgICAgICAgIGlmICghcmluZyB8fCAhcmluZy0+c2NoZWQudGhy ZWFkKQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4+ICsNCj4+ ICsgICAgICAgICAgICAgICAgICAgIGRybV9zY2hlZF9zdG9wKCZyaW5nLT5zY2hlZCwgJmpvYi0+ YmFzZSk7DQo+PiArICAgICAgICAgICAgfQ0KPj4gKyAgICB9DQo+PiArDQo+PiArDQo+PiArICAg IC8qDQo+PiArICAgICAqIE11c3QgY2hlY2sgZ3VpbHR5IHNpZ25hbCBoZXJlIHNpbmNlIGFmdGVy IHRoaXMgcG9pbnQgYWxsIG9sZA0KPj4gKyAgICAgKiBIVyBmZW5jZXMgYXJlIGZvcmNlIHNpZ25h bGVkLg0KPj4gKyAgICAgKg0KPj4gKyAgICAgKiBqb2ItPmJhc2UgaG9sZHMgYSByZWZlcmVuY2Ug dG8gcGFyZW50IGZlbmNlDQo+PiArICAgICAqLw0KPj4gKyAgICBpZiAoam9iICYmIGpvYi0+YmFz ZS5zX2ZlbmNlLT5wYXJlbnQgJiYNCj4+ICsgICAgICAgIGRtYV9mZW5jZV9pc19zaWduYWxlZChq b2ItPmJhc2Uuc19mZW5jZS0+cGFyZW50KSkNCj4+ICsgICAgICAgICAgICBqb2Jfc2lnbmFsZWQg PSB0cnVlOw0KPj4gKw0KPj4gKyAgICBpZiAoIWFtZGdwdV9kZXZpY2VfaXBfbmVlZF9mdWxsX3Jl c2V0KGFkZXYpKQ0KPj4gKyAgICAgICAgICAgIGRldmljZV9saXN0X2hhbmRsZSA9ICZkZXZpY2Vf bGlzdDsNCj4+ICsNCj4+ICsgICAgaWYgKGpvYl9zaWduYWxlZCkgew0KPj4gKyAgICAgICAgICAg IGRldl9pbmZvKGFkZXYtPmRldiwgIkd1aWx0eSBqb2IgYWxyZWFkeSBzaWduYWxlZCwgc2tpcHBp bmcgSFcgcmVzZXQiKTsNCj4+ICsgICAgICAgICAgICBnb3RvIHNraXBfaHdfcmVzZXQ7DQo+PiAr ICAgIH0NCj4+ICsNCj4+ICsNCj4+ICsgICAgLyogR3VpbHR5IGpvYiB3aWxsIGJlIGZyZWVkIGFm dGVyIHRoaXMqLw0KPj4gKyAgICByID0gYW1kZ3B1X2RldmljZV9wcmVfYXNpY19yZXNldChhZGV2 LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2IsDQo+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZuZWVkX2Z1bGxfcmVzZXQpOw0KPj4g KyAgICBpZiAocikgew0KPj4gKyAgICAgICAgICAgIC8qVE9ETyBTaG91bGQgd2Ugc3RvcCA/Ki8N Cj4+ICsgICAgICAgICAgICBEUk1fRVJST1IoIkdQVSBwcmUgYXNpYyByZXNldCBmYWlsZWQgd2l0 aCBlcnIsICVkIGZvciBkcm0gZGV2LCAlcyAiLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgICBy LCBhZGV2LT5kZGV2LT51bmlxdWUpOw0KPj4gKyAgICAgICAgICAgIGFkZXYtPmFzaWNfcmVzZXRf cmVzID0gcjsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gICAgcmV0cnk6ICAgIC8qIFJlc3Qgb2YgYWRl dnMgcHJlIGFzaWMgcmVzZXQgZnJvbSBYR01JIGhpdmUuICovDQo+PiAgICAgICBsaXN0X2Zvcl9l YWNoX2VudHJ5KHRtcF9hZGV2LCBkZXZpY2VfbGlzdF9oYW5kbGUsIGdtYy54Z21pLmhlYWQpIHsN Cj4+DQo+PiAgICAgICAgICAgICAgIGlmICh0bXBfYWRldiA9PSBhZGV2KQ0KPj4gICAgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlOw0KPj4NCj4+IC0gICAgICAgICAgICBhbWRncHVfZGV2aWNl X2xvY2tfYWRldih0bXBfYWRldik7DQo+PiArICAgICAgICAgICAgYW1kZ3B1X2RldmljZV9sb2Nr X2FkZXYodG1wX2FkZXYsIGZhbHNlKTsNCj4+ICAgICAgICAgICAgICAgciA9IGFtZGdwdV9kZXZp Y2VfcHJlX2FzaWNfcmVzZXQodG1wX2FkZXYsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZuZWVkX2Z1bGxfcmVzZXQpOw0KPj4gQEAgLTM2MTgsOSAr MzY0NiwyOCBAQCBpbnQgYW1kZ3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwNCj4+ICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHJldHJ5Ow0KPj4gICAg ICAgfQ0KPj4NCj4+ICtza2lwX2h3X3Jlc2V0Og0KPj4gKw0KPj4gICAgICAgLyogUG9zdCBBU0lD IHJlc2V0IGZvciBhbGwgZGV2cyAuKi8NCj4+ICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkodG1w X2FkZXYsIGRldmljZV9saXN0X2hhbmRsZSwgZ21jLnhnbWkuaGVhZCkgew0KPj4gLSAgICAgICAg ICAgIGFtZGdwdV9kZXZpY2VfcG9zdF9hc2ljX3Jlc2V0KHRtcF9hZGV2KTsNCj4+ICsgICAgICAg ICAgICBmb3IgKGkgPSAwOyBpIDwgQU1ER1BVX01BWF9SSU5HUzsgKytpKSB7DQo+PiArICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSB0bXBfYWRldi0+cmluZ3Nb aV07DQo+PiArDQo+PiArICAgICAgICAgICAgICAgICAgICBpZiAoIXJpbmcgfHwgIXJpbmctPnNj aGVkLnRocmVhZCkNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ PiArDQo+PiArICAgICAgICAgICAgICAgICAgICAvKiBObyBwb2ludCB0byByZXN1Ym1pdCBqb2Jz IGlmIHdlIGRpZG4ndCBIVyByZXNldCovDQo+PiArICAgICAgICAgICAgICAgICAgICBpZiAoIXRt cF9hZGV2LT5hc2ljX3Jlc2V0X3JlcyAmJiAham9iX3NpZ25hbGVkKQ0KPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkcm1fc2NoZWRfcmVzdWJtaXRfam9icygmcmluZy0+c2NoZWQpOw0K Pj4gKw0KPj4gKyAgICAgICAgICAgICAgICAgICAgZHJtX3NjaGVkX3N0YXJ0KCZyaW5nLT5zY2hl ZCwgIXRtcF9hZGV2LT5hc2ljX3Jlc2V0X3Jlcyk7DQo+PiArICAgICAgICAgICAgfQ0KPj4gKw0K Pj4gKyAgICAgICAgICAgIGlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydCh0bXBfYWRl dikgJiYgIWpvYl9zaWduYWxlZCkgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgZHJtX2hlbHBl cl9yZXN1bWVfZm9yY2VfbW9kZSh0bXBfYWRldi0+ZGRldik7DQo+PiArICAgICAgICAgICAgfQ0K Pj4gKw0KPj4gKyAgICAgICAgICAgIHRtcF9hZGV2LT5hc2ljX3Jlc2V0X3JlcyA9IDA7DQo+Pg0K Pj4gICAgICAgICAgICAgICBpZiAocikgew0KPj4gICAgICAgICAgICAgICAgICAgICAgIC8qIGJh ZCBuZXdzLCBob3cgdG8gdGVsbCBpdCB0byB1c2Vyc3BhY2UgPyAqLw0KPj4gQEAgLTM2MzMsNyAr MzY4MCw3IEBAIGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LA0KPj4gICAgICAgICAgICAgICBhbWRncHVfZGV2aWNlX3VubG9ja19hZGV2KHRt cF9hZGV2KTsNCj4+ICAgICAgIH0NCj4+DQo+PiAtICAgIGlmIChoaXZlICYmIGFkZXYtPmdtYy54 Z21pLm51bV9waHlzaWNhbF9ub2RlcyA+IDEpDQo+PiArICAgIGlmIChoaXZlKQ0KPj4gICAgICAg ICAgICAgICBtdXRleF91bmxvY2soJmhpdmUtPnJlc2V0X2xvY2spOw0KPj4NCj4+ICAgICAgIGlm IChyKQ0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCmFt ZC1nZnggbWFpbGluZyBsaXN0DQphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzxtYWlsdG86 YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc+DQpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngNCg0K --_000_0c02ed971f101d066a06d1ec0af2dbf7amdcom_ Content-Type: text/html; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0i dGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjwvaGVhZD4NCjxib2R5IHRleHQ9IiMwMDAwMDAi IGJnY29sb3I9IiNGRkZGRkYiPg0KPHA+UGluZyAobW9zdGx5IERhdmlkIGFuZCBNb25rKS48YnI+ DQo8L3A+DQo8cD5BbmRyZXk8YnI+DQo8L3A+DQo8ZGl2IGNsYXNzPSJtb3otY2l0ZS1wcmVmaXgi Pk9uIDQvMjQvMTkgMzowOSBBTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZTo8YnI+DQo8L2Rpdj4N CjxibG9ja3F1b3RlIHR5cGU9ImNpdGUiIGNpdGU9Im1pZDplMjBkMDEzZS1kZjIxLTEzMDAtMjdk MS03ZjliODI5Y2MwNjdAZ21haWwuY29tIj4NCjxkaXYgY2xhc3M9Im1vei1jaXRlLXByZWZpeCI+ QW0gMjQuMDQuMTkgdW0gMDU6MDIgc2NocmllYiBaaG91LCBEYXZpZChDaHVuTWluZyk6PGJyPg0K PC9kaXY+DQo8YmxvY2txdW90ZSB0eXBlPSJjaXRlIiBjaXRlPSJtaWQ6TU4yUFIxMk1CMjkxMEMz NzI2NEI4RjMwQkFEMjZGQTRDQjQzQzBATU4yUFIxMk1CMjkxMC5uYW1wcmQxMi5wcm9kLm91dGxv b2suY29tIj4NCjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQg MTUgKGZpbHRlcmVkDQogICAgICAgICAgbWVkaXVtKSI+DQo8c3R5bGU+PCEtLQ0KLyogRm9udCBE ZWZpbml0aW9ucyAqLw0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTrlrovkvZM7DQoJcGFub3Nl LTE6MiAxIDYgMCAzIDEgMSAxIDEgMTt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1i cmlhIE1hdGgiOw0KCXBhbm9zZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0K CXtmb250LWZhbWlseTpDYWxpYnJpOw0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30N CkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6IlxA5a6L5L2TIjsNCglwYW5vc2UtMToyIDEgNiAw IDMgMSAxIDEgMSAxO30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk65b6u6L2v6ZuF6buROw0K CXBhbm9zZS0xOjIgMTEgNSAzIDIgMiA0IDIgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1p bHk6IlxA5b6u6L2v6ZuF6buRIjsNCglwYW5vc2UtMToyIDExIDUgMyAyIDIgNCAyIDIgNDt9DQov KiBTdHlsZSBEZWZpbml0aW9ucyAqLw0KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1z b05vcm1hbA0KCXttYXJnaW46MGluOw0KCW1hcmdpbi1ib3R0b206LjAwMDFwdDsNCglmb250LXNp emU6MTEuMHB0Ow0KCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmOw0KCWNvbG9yOmJs YWNrO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5 Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQs IHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNv bG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnAubXNvbm9ybWFsMCwg bGkubXNvbm9ybWFsMCwgZGl2Lm1zb25vcm1hbDANCgl7bXNvLXN0eWxlLW5hbWU6bXNvbm9ybWFs Ow0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1h cmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToxMS4w cHQ7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7DQoJY29sb3I6YmxhY2s7fQ0K cC5lbWFpbHF1b3RlLCBsaS5lbWFpbHF1b3RlLCBkaXYuZW1haWxxdW90ZQ0KCXttc28tc3R5bGUt bmFtZTplbWFpbHF1b3RlOw0KCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdo dDowaW47DQoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MS4wcHQ7 DQoJYm9yZGVyOm5vbmU7DQoJcGFkZGluZzowaW47DQoJZm9udC1zaXplOjExLjBwdDsNCglmb250 LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjpibGFjazt9DQpzcGFuLkVtYWls U3R5bGUyMA0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToi Q2FsaWJyaSIsc2Fucy1zZXJpZjsNCgljb2xvcjp3aW5kb3d0ZXh0O30NCi5Nc29DaHBEZWZhdWx0 DQoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5Ow0KCWZvbnQtc2l6ZToxMC4wcHQ7fQ0KQHBh Z2UgV29yZFNlY3Rpb24xDQoJe3NpemU6OC41aW4gMTEuMGluOw0KCW1hcmdpbjoxLjBpbiAxLjI1 aW4gMS4waW4gMS4yNWluO30NCmRpdi5Xb3JkU2VjdGlvbjENCgl7cGFnZTpXb3JkU2VjdGlvbjE7 fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlZGVmYXVsdHMg djpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3htbD48IVtlbmRpZl0tLT48IS0tW2lm IGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6ZXh0PSJlZGl0Ij4NCjxvOmlkbWFw IHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBlbGF5b3V0PjwveG1sPjwhW2VuZGlm XS0tPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24xIj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPiZn dDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgZHJtX3NjaGVkX3N0b3AoJmFtcDtyaW5nLSZndDtzY2hlZCwgJmFt cDtqb2ItJmd0O2Jhc2UpOzxicj4NCiZndDsmZ3Q7IC08YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyAvKiBhZnRlciBhbGwgaHcgam9icyBhcmUgcmVzZXQsIGh3IGZlbmNl IGlzIG1lYW5pbmdsZXNzLCBzbyBmb3JjZV9jb21wbGV0aW9uICovPGJyPg0KJmd0OyZndDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYW1kZ3B1X2ZlbmNlX2RyaXZlcl9mb3JjZV9jb21wbGV0 aW9uKHJpbmcpOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7IH08bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9v OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+SFcgZmVuY2UgYXJlIGFscmVhZHkgZm9yY2Vk IGNvbXBsZXRpb24sIHRoZW4gd2UgY2FuIGp1c3QgZGlzYWJsZSBpcnEgZmVuY2UgcHJvY2VzcyBh bmQgaWdub3JlIGh3IGZlbmNlIHNpZ25hbCB3aGVuIHdlIGFyZSB0cnlpbmcgdG8gZG8gR1BVIHJl c2V0LCBJIHRoaW5rLiBPdGhlcndpc2Ugd2hpY2ggd2lsbCBtYWtlIHRoZSBsb2dpYyBtdWNoIG1v cmUgY29tcGxleC48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0 eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij5JZiB0aGlzIHNpdHVhdGlvbiBoYXBwZW5zIGJlY2F1c2Ug b2YgbG9uZyB0aW1lIGV4ZWN1dGlvbiwgd2UgY2FuIGluY3JlYXNlIHRpbWVvdXQgb2YgcmVzZXQg ZGV0ZWN0aW9uLjwvc3Bhbj48L3A+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxicj4NCllvdSBh cmUgbm90IHRoaW5raW5nIHdpZGVseSBlbm91Z2gsIGZvcmNpbmcgdGhlIGh3IGZlbmNlIHRvIGNv bXBsZXRlIGNhbiB0cmlnZ2VyIG90aGVyIHRvIHN0YXJ0IG90aGVyIGFjdGl2aXR5IGluIHRoZSBz eXN0ZW0uPGJyPg0KPGJyPg0KV2UgZmlyc3QgbmVlZCB0byBzdG9wIGV2ZXJ5dGhpbmcgYW5kIG1h a2Ugc3VyZSB0aGF0IHdlIGRvbid0IGRvIGFueSBwcm9jZXNzaW5nIGFueSBtb3JlIGFuZCB0aGVu IHN0YXJ0IHdpdGggb3VyIHJlc2V0IHByb2NlZHVyZSBpbmNsdWRpbmcgZm9yY2luZyBhbGwgaHcg ZmVuY2VzIHRvIGNvbXBsZXRlLjxicj4NCjxicj4NCkNocmlzdGlhbi48YnI+DQo8YnI+DQo8Ymxv Y2txdW90ZSB0eXBlPSJjaXRlIiBjaXRlPSJtaWQ6TU4yUFIxMk1CMjkxMEMzNzI2NEI4RjMwQkFE MjZGQTRDQjQzQzBATU4yUFIxMk1CMjkxMC5uYW1wcmQxMi5wcm9kLm91dGxvb2suY29tIj4NCjxk aXYgY2xhc3M9IldvcmRTZWN0aW9uMSI+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHls ZT0iY29sb3I6d2luZG93dGV4dCI+PG86cD48L286cD48L3NwYW4+PC9wPg0KPHAgY2xhc3M9Ik1z b05vcm1hbCI+PHNwYW4gc3R5bGU9ImNvbG9yOndpbmRvd3RleHQiPjxvOnA+Jm5ic3A7PC9vOnA+ PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJjb2xvcjp3aW5k b3d0ZXh0Ij4tRGF2aWQ8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+PG86cD4mbmJzcDs8L286cD48L3NwYW4+ PC9wPg0KPGRpdiBzdHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgYmx1ZQ0KICAg ICAgICAgICAgMS41cHQ7cGFkZGluZzowaW4gMGluIDBpbiA0LjBwdCI+DQo8ZGl2Pg0KPGRpdiBz dHlsZT0iYm9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzb2xpZCAjRTFFMUUxDQogICAgICAgICAgICAg ICAgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGluIDBpbiI+DQo8cCBjbGFzcz0iTXNvTm9ybWFs Ij48Yj48c3BhbiBzdHlsZT0iY29sb3I6d2luZG93dGV4dCI+RnJvbTo8L3NwYW4+PC9iPjxzcGFu IHN0eWxlPSJjb2xvcjp3aW5kb3d0ZXh0Ij4gYW1kLWdmeA0KPGEgY2xhc3M9Im1vei10eHQtbGlu ay1yZmMyMzk2RSIgaHJlZj0ibWFpbHRvOmFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3Rv cC5vcmciIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSI+DQombHQ7YW1kLWdmeC1ib3VuY2VzQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZyZndDs8L2E+IDxiPk9uIEJlaGFsZiBPZiA8L2I+R3JvZHpvdnNreSwg QW5kcmV5PGJyPg0KPGI+U2VudDo8L2I+IFdlZG5lc2RheSwgQXByaWwgMjQsIDIwMTkgMTI6MDAg QU08YnI+DQo8Yj5Ubzo8L2I+IFpob3UsIERhdmlkKENodW5NaW5nKSA8YSBjbGFzcz0ibW96LXR4 dC1saW5rLXJmYzIzOTZFIiBocmVmPSJtYWlsdG86RGF2aWQxLlpob3VAYW1kLmNvbSIgbW96LWRv LW5vdC1zZW5kPSJ0cnVlIj4NCiZsdDtEYXZpZDEuWmhvdUBhbWQuY29tJmd0OzwvYT47IDxhIGNs YXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnIiBtb3otZG8tbm90LXNlbmQ9InRydWUiPg0KZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZzwvYT47IDxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2aWF0 ZWQiIGhyZWY9Im1haWx0bzphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZyIgbW96LWRvLW5v dC1zZW5kPSJ0cnVlIj4NCmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPC9hPjsgPGEgY2xh c3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmVyaWNAYW5ob2x0Lm5l dCIgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIj4NCmVyaWNAYW5ob2x0Lm5ldDwvYT47IDxhIGNsYXNz PSJtb3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpldG5hdml2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZyIgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIj4NCmV0bmF2aXZAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnPC9hPjsgPGEgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJl Zj0ibWFpbHRvOmNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tIiBtb3otZG8tbm90LXNl bmQ9InRydWUiPg0KY2tvZW5pZy5sZWljaHR6dW1lcmtlbkBnbWFpbC5jb208L2E+PGJyPg0KPGI+ Q2M6PC9iPiBLYXpsYXVza2FzLCBOaWNob2xhcyA8YSBjbGFzcz0ibW96LXR4dC1saW5rLXJmYzIz OTZFIiBocmVmPSJtYWlsdG86TmljaG9sYXMuS2F6bGF1c2thc0BhbWQuY29tIiBtb3otZG8tbm90 LXNlbmQ9InRydWUiPg0KJmx0O05pY2hvbGFzLkthemxhdXNrYXNAYW1kLmNvbSZndDs8L2E+OyBM aXUsIE1vbmsgPGEgY2xhc3M9Im1vei10eHQtbGluay1yZmMyMzk2RSIgaHJlZj0ibWFpbHRvOk1v bmsuTGl1QGFtZC5jb20iIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSI+DQombHQ7TW9uay5MaXVAYW1k LmNvbSZndDs8L2E+PGJyPg0KPGI+U3ViamVjdDo8L2I+IFJlOiBbUEFUQ0ggdjUgNi82XSBkcm0v YW1kZ3B1OiBBdm9pZCBIVyByZXNldCBpZiBndWlsdHkgam9iIGFscmVhZHkgc2lnbmFsZWQuPG86 cD48L286cD48L3NwYW4+PC9wPg0KPC9kaXY+DQo8L2Rpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHA+Tm8sIGkgbWVhbiB0aGUgYWN0dWFsIEhXIGZlbmNl IHdoaWNoIHNpZ25hbHMgd2hlbiB0aGUgam9iIGZpbmlzaGVkIGV4ZWN1dGlvbiBvbiB0aGUgSFcu PG86cD48L286cD48L3A+DQo8cD5BbmRyZXk8bzpwPjwvbzpwPjwvcD4NCjxkaXY+DQo8cCBjbGFz cz0iTXNvTm9ybWFsIj5PbiA0LzIzLzE5IDExOjE5IEFNLCBaaG91LCBEYXZpZChDaHVuTWluZykg d3JvdGU6PG86cD48L286cD48L3A+DQo8L2Rpdj4NCjxibG9ja3F1b3RlIHN0eWxlPSJtYXJnaW4t dG9wOjUuMHB0O21hcmdpbi1ib3R0b206NS4wcHQiPg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3Jt YWwiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjEyLjBwdCI+ZG8geW91IG1lYW4gZmVuY2UgdGltZXI/ IHdoeSBub3Qgc3RvcCBpdCBhcyB3ZWxsIHdoZW4gc3RvcHBpbmcgc2NoZWQgZm9yIHRoZSByZWFz b24gb2YgaHcgcmVzZXQ/PGJyPg0KPGJyPg0KLS0tLS0tLS0gT3JpZ2luYWwgTWVzc2FnZSAtLS0t LS0tLTxicj4NClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjUgNi82XSBkcm0vYW1kZ3B1OiBBdm9pZCBI VyByZXNldCBpZiBndWlsdHkgam9iIGFscmVhZHkgc2lnbmFsZWQuPGJyPg0KRnJvbTogJnF1b3Q7 R3JvZHpvdnNreSwgQW5kcmV5JnF1b3Q7IDxicj4NClRvOiAmcXVvdDtaaG91LCBEYXZpZChDaHVu TWluZykmcXVvdDsgLDxhIGhyZWY9Im1haWx0bzpkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnLGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnLGVyaWNAYW5ob2x0Lm5ldCxldG5hdml2 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZyxja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbSIg bW96LWRvLW5vdC1zZW5kPSJ0cnVlIj5kcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnLGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnLGVyaWNAYW5ob2x0Lm5ldCxldG5hdml2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZyxja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbTwvYT48YnI+ DQpDQzogJnF1b3Q7S2F6bGF1c2thcywgTmljaG9sYXMmcXVvdDsgLCZxdW90O0xpdSwgTW9uayZx dW90OyA8bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPGRpdj4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi Pjxicj4NCk9uIDQvMjIvMTkgOTowOSBBTSwgWmhvdSwgRGF2aWQoQ2h1bk1pbmcpIHdyb3RlOjxi cj4NCiZndDsgJiM0MztNb25rLjxicj4NCiZndDs8YnI+DQomZ3Q7IEdQVSByZXNldCBpcyB1c2Vk IHdpZGVseSBpbiBTUklPViwgc28gbmVlZCB2aXJ0dWxpemF0aW5vIGd1eSB0YWtlIGEgbG9vay48 YnI+DQomZ3Q7PGJyPg0KJmd0OyBCdXQgb3V0IG9mIGN1cmlvdXMsIHdoeSBndWlsdHkgam9iIGNh biBzaWduYWwgbW9yZSBpZiB0aGUgam9iIGlzIGFscmVhZHk8YnI+DQomZ3Q7IHNldCB0byBndWls dHk/IHNldCBpdCB3cm9uZ2x5Pzxicj4NCiZndDs8YnI+DQomZ3Q7PGJyPg0KJmd0OyAtRGF2aWQ8 YnI+DQo8YnI+DQo8YnI+DQpJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGpvYiBkb2VzIGNvbXBsZXRl cyBhdCBhIGxhdGVyIHRpbWUgdGhlbiBpdCdzIDxicj4NCnRpbWVvdXQgaGFuZGxlciBzdGFydGVk IHByb2Nlc3Npbmcgc28gaW4gdGhpcyBwYXRjaCB3ZSB0cnkgdG8gcHJvdGVjdCA8YnI+DQphZ2Fp bnN0IHRoaXMgYnkgcmVjaGVja2luZyB0aGUgSFcgZmVuY2UgYWZ0ZXIgc3RvcHBpbmcgYWxsIFNX IDxicj4NCnNjaGVkdWxlcnMuIFdlIGRvIGl0IEJFRk9SRSBtYXJraW5nIGd1aWx0eSBvbiB0aGUg am9iJ3Mgc2NoZWRfZW50aXR5IHNvIDxicj4NCmF0IHRoZSBwb2ludCB3ZSBjaGVjayB0aGUgZ3Vp bHR5IGZsYWcgaXMgbm90IHNldCB5ZXQuPGJyPg0KPGJyPg0KQW5kcmV5PGJyPg0KPGJyPg0KPGJy Pg0KJmd0Ozxicj4NCiZndDsgPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OiZxdW90O+W+rui9r+mb hem7kSZxdW90OyxzYW5zLXNlcmlmIiBsYW5nPSJaSC1DTiI+5ZyoPC9zcGFuPiAyMDE5LzQvMTgg MjM6MDAsIEFuZHJleSBHcm9kem92c2t5DQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7 5b6u6L2v6ZuF6buRJnF1b3Q7LHNhbnMtc2VyaWYiIGxhbmc9IlpILUNOIj7lhpnpgZM8L3NwYW4+ Ojxicj4NCiZndDsmZ3Q7IEFsc28gcmVqZWN0IFREUnMgaWYgYW5vdGhlciBvbmUgYWxyZWFkeSBy dW5uaW5nLjxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsgdjI6PGJyPg0KJmd0OyZndDsgU3Rv cCBhbGwgc2NoZWR1bGVycyBhY3Jvc3MgZGV2aWNlIGFuZCBlbnRpcmUgWEdNSSBoaXZlIGJlZm9y ZTxicj4NCiZndDsmZ3Q7IGZvcmNlIHNpZ25hbGluZyBIVyBmZW5jZXMuPGJyPg0KJmd0OyZndDsg QXZvaWQgcGFzc2luZyBqb2Jfc2lnbmFsZWQgdG8gaGVscGVyIGZuY3Rpb25zIHRvIGtlZXAgYWxs IHRoZSBkZWNpc2lvbjxicj4NCiZndDsmZ3Q7IG1ha2luZyBhYm91dCBza2lwcGluZyBIVyByZXNl dCBpbiBvbmUgcGxhY2UuPGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyB2Mzo8YnI+DQomZ3Q7 Jmd0OyBGaXggU1cgc2NoZWQuIGhhbmcgYWZ0ZXIgbm9uIEhXIHJlc2V0LiBzY2hlZC5od19ycV9j b3VudCBoYXMgdG8gYmUgYmFsYW5jZWQ8YnI+DQomZ3Q7Jmd0OyBhZ2FpbnN0IGl0J3MgZGVjcmVt ZW50IGluIGRybV9zY2hlZF9zdG9wIGluIG5vbiBIVyByZXNldCBjYXNlLjxicj4NCiZndDsmZ3Q7 IHY0OiByZWJhc2U8YnI+DQomZ3Q7Jmd0OyB2NTogUmV2ZXJ0IHYzIGFzIHdlIGRvIGl0IG5vdyBp biBzY2VkdWxlciBjb2RlLjxicj4NCiZndDsmZ3Q7PGJyPg0KJmd0OyZndDsgU2lnbmVkLW9mZi1i eTogQW5kcmV5IEdyb2R6b3Zza3kgPGEgaHJlZj0ibWFpbHRvOmFuZHJleS5ncm9kem92c2t5QGFt ZC5jb20iIG1vei1kby1ub3Qtc2VuZD0idHJ1ZSI+DQombHQ7YW5kcmV5Lmdyb2R6b3Zza3lAYW1k LmNvbSZndDs8L2E+PGJyPg0KJmd0OyZndDsgLS0tPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsm bmJzcDsgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIHwgMTQzICYj NDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQz OyYjNDM7JiM0MzsmIzQzOyYjNDM7JiM0MzsmIzQzOyYjNDM7LS0tLS0tLS0tLTxicj4NCiZndDsm Z3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDEgZmlsZSBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCYjNDM7 KSwgNDggZGVsZXRpb25zKC0pPGJyPg0KJmd0OyZndDs8YnI+DQomZ3Q7Jmd0OyBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jPGJyPg0KJmd0OyZndDsgaW5kZXggYTBl MTY1Yy4uODVmODc5MiAxMDA2NDQ8YnI+DQomZ3Q7Jmd0OyAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmM8YnI+DQomZ3Q7Jmd0OyAmIzQzOyYjNDM7JiM0Mzsg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmM8YnI+DQomZ3Q7Jmd0 OyBAQCAtMzMzNCw4ICYjNDM7MzMzNCw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2RldmljZV9wcmVf YXNpY19yZXNldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiw8YnI+DQomZ3Q7Jmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIXJpbmcgfHwgIXJpbmctJmd0O3NjaGVkLnRocmVh ZCk8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb250aW51ZTs8YnI+DQomZ3Q7Jmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRybV9zY2hlZF9z dG9wKCZhbXA7cmluZy0mZ3Q7c2NoZWQsICZhbXA7am9iLSZndDtiYXNlKTs8YnI+DQomZ3Q7Jmd0 OyAtPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLyogYWZ0ZXIgYWxs IGh3IGpvYnMgYXJlIHJlc2V0LCBodyBmZW5jZSBpcyBtZWFuaW5nbGVzcywgc28gZm9yY2VfY29t cGxldGlvbiAqLzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFtZGdw dV9mZW5jZV9kcml2ZXJfZm9yY2VfY29tcGxldGlvbihyaW5nKTs8YnI+DQomZ3Q7Jmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyPg0KJmd0OyZndDsgQEAgLTMzNDMs NiAmIzQzOzMzNDEsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9kZXZpY2VfcHJlX2FzaWNfcmVzZXQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYoam9iKTxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IGRybV9zY2hlZF9pbmNyZWFzZV9rYXJtYSgmYW1wO2pvYi0mZ3Q7YmFzZSk7 PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsgPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJz cDsmbmJzcDsmbmJzcDsgLyogRG9uJ3Qgc3VzcGVuZCBvbiBiYXJlIG1ldGFsIGlmIHdlIGFyZSBu b3QgZ29pbmcgdG8gSFcgcmVzZXQgdGhlIEFTSUMgKi88YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgezxi cj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGlmICghbmVlZF9mdWxsX3Jlc2V0KTxicj4NCiZndDsmZ3Q7IEBAIC0z NDgwLDM3ICYjNDM7MzQ3OSwyMSBAQCBzdGF0aWMgaW50IGFtZGdwdV9kb19hc2ljX3Jlc2V0KHN0 cnVjdCBhbWRncHVfaGl2ZV9pbmZvICpoaXZlLDxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiByOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IH08YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7Jmd0OyAt c3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV9wb3N0X2FzaWNfcmVzZXQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpPGJyPg0KJmd0OyZndDsgJiM0MztzdGF0aWMgYm9vbCBhbWRncHVfZGV2aWNl X2xvY2tfYWRldihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgYm9vbCB0cnlsb2NrKTxicj4N CiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHs8YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7 Jm5ic3A7IGludCBpOzxicj4NCiZndDsmZ3Q7IC08YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7 Jm5ic3A7IGZvciAoaSA9IDA7IGkgJmx0OyBBTURHUFVfTUFYX1JJTkdTOyAmIzQzOyYjNDM7aSkg ezxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRl di0mZ3Q7cmluZ3NbaV07PGJyPg0KJmd0OyZndDsgLTxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg aWYgKCFyaW5nIHx8ICFyaW5nLSZndDtzY2hlZC50aHJlYWQpPGJyPg0KJmd0OyZndDsgLSZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBjb250 aW51ZTs8YnI+DQomZ3Q7Jmd0OyAtPGJyPg0KJmd0OyZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIWFkZXYt Jmd0O2FzaWNfcmVzZXRfcmVzKTxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZHJtX3NjaGVkX3Jlc3VibWl0X2pv YnMoJmFtcDtyaW5nLSZndDtzY2hlZCk7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsm bmJzcDsgaWYgKHRyeWxvY2spIHs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIW11 dGV4X3RyeWxvY2soJmFtcDthZGV2LSZndDtsb2NrX3Jlc2V0KSk8YnI+DQomZ3Q7Jmd0OyAmIzQz OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyByZXR1cm4gZmFsc2U7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsgfSBl bHNlPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgbXV0ZXhfbG9jaygmYW1wO2FkZXYtJmd0 O2xvY2tfcmVzZXQpOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsm Z3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgZHJtX3NjaGVkX3N0YXJ0KCZhbXA7cmluZy0mZ3Q7c2NoZWQsICFhZGV2 LSZndDthc2ljX3Jlc2V0X3Jlcyk7PGJyPg0KJmd0OyZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyB9 PGJyPg0KJmd0OyZndDsgLTxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCFh bWRncHVfZGV2aWNlX2hhc19kY19zdXBwb3J0KGFkZXYpKSB7PGJyPg0KJmd0OyZndDsgLSZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyBkcm1faGVscGVyX3Jlc3VtZV9mb3JjZV9tb2RlKGFkZXYtJmd0O2RkZXYpOzxicj4NCiZn dDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsgfTxicj4NCiZndDsmZ3Q7IC08YnI+DQomZ3Q7Jmd0 OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7IGFkZXYtJmd0O2FzaWNfcmVzZXRfcmVzID0gMDs8YnI+DQom Z3Q7Jmd0OyAtfTxicj4NCiZndDsmZ3Q7IC08YnI+DQomZ3Q7Jmd0OyAtc3RhdGljIHZvaWQgYW1k Z3B1X2RldmljZV9sb2NrX2FkZXYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpPGJyPg0KJmd0 OyZndDsgLXs8YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7IG11dGV4X2xvY2soJmFt cDthZGV2LSZndDtsb2NrX3Jlc2V0KTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBhdG9taWNfaW5jKCZhbXA7YWRldi0mZ3Q7Z3B1X3Jlc2V0X2NvdW50 ZXIpOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFk ZXYtJmd0O2luX2dwdV9yZXNldCA9IDE7PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgLyogQmxvY2sga2ZkOiBTUklPViB3b3VsZCBkbyBpdCBzZXBhcmF0 ZWx5ICovPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg aWYgKCFhbWRncHVfc3Jpb3ZfdmYoYWRldikpPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYW1kZ3B1X2FtZGtmZF9w cmVfcmVzZXQoYWRldik7PGJyPg0KJmd0OyZndDsgJiM0Mzs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZu YnNwOyZuYnNwOyZuYnNwOyByZXR1cm4gdHJ1ZTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZu YnNwOyB9PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsgPGJyPg0KJmd0OyZndDsmbmJz cDsmbmJzcDsmbmJzcDsgc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV91bmxvY2tfYWRldihzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldik8YnI+DQomZ3Q7Jmd0OyBAQCAtMzUzOCw0MCAmIzQzOzM1 MjEsNDIgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X2RldmljZV91bmxvY2tfYWRldihzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldik8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyBpbnQgYW1k Z3B1X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiw8YnI+DQom Z3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKTxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5i c3A7IHs8YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7IGludCByOzxicj4NCiZndDsm Z3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0cnVjdCBsaXN0X2hlYWQgZGV2aWNlX2xpc3Qs ICpkZXZpY2VfbGlzdF9oYW5kbGUgPSZuYnNwOyBOVUxMOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGJvb2wgbmVlZF9mdWxsX3Jlc2V0LCBqb2Jfc2lnbmFsZWQ7PGJyPg0K Jmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IGFtZGdw dV9oaXZlX2luZm8gKmhpdmUgPSBOVUxMOzxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJz cDsgYm9vbCBuZWVkX2Z1bGxfcmVzZXQgPSBmYWxzZTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqdG1wX2FkZXYg PSBOVUxMOzxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsgc3RydWN0IGxpc3RfaGVh ZCBkZXZpY2VfbGlzdCwgKmRldmljZV9saXN0X2hhbmRsZSA9Jm5ic3A7IE5VTEw7PGJyPg0KJmd0 OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsgaW50IGksIHIgPSAwOzxicj4NCiZndDsmZ3Q7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IG5lZWRfZnVsbF9yZXNldCA9IGpvYl9zaWduYWxlZCA9IGZhbHNlOzxicj4NCiZndDsmZ3Q7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IElOSVRfTElTVF9IRUFEKCZhbXA7ZGV2 aWNlX2xpc3QpOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsmZ3Q7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRldl9pbmZvKGFkZXYtJmd0O2Rl diwgJnF1b3Q7R1BVIHJlc2V0IGJlZ2luIVxuJnF1b3Q7KTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZu YnNwOyZuYnNwOyA8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyBoaXZlID0g YW1kZ3B1X2dldF94Z21pX2hpdmUoYWRldiwgZmFsc2UpOzxicj4NCiZndDsmZ3Q7ICYjNDM7PGJy Pg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLyo8YnI+DQom Z3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICogSW4gY2FzZSBvZiBYR01JIGhpdmUg ZGlzYWxsb3cgY29uY3VycmVudCByZXNldHMgdG8gYmUgdHJpZ2dlcmVkPGJyPg0KJmd0OyZndDsg LSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqIGJ5IGRpZmZlcmVudCBub2Rlcy4gTm8gcG9pbnQg YWxzbyBzaW5jZSB0aGUgb25lIG5vZGUgYWxyZWFkeSBleGVjdXRpbmc8YnI+DQomZ3Q7Jmd0OyAt Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICogcmVzZXQgd2lsbCBhbHNvIHJlc2V0IGFsbCB0aGUg b3RoZXIgbm9kZXMgaW4gdGhlIGhpdmUuPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgKiBIZXJlIHdlIHRyeWxvY2sgdG8gYXZvaWQgY2hhaW4gb2YgcmVzZXRzIGV4 ZWN1dGluZyBmcm9tPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg KiBlaXRoZXIgdHJpZ2dlciBieSBqb2JzIG9uIGRpZmZlcmVudCBhZGV2cyBpbiBYR01JIGhpdmUg b3Igam9icyBvbjxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICog ZGlmZmVyZW50IHNjaGVkdWxlcnMgZm9yIHNhbWUgZGV2aWNlIHdoaWxlIHRoaXMgVE8gaGFuZGxl ciBpcyBydW5uaW5nLjxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICogV2UgYWx3YXlzIHJlc2V0IGFsbCBzY2hlZHVsZXJzIGZvciBkZXZpY2UgYW5kIGFsbCBkZXZp Y2VzIGZvciBYR01JPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg KiBoaXZlIHNvIHRoYXQgc2hvdWxkIHRha2UgY2FyZSBvZiB0aGVtIHRvby48YnI+DQomZ3Q7Jmd0 OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqLzxicj4NCiZndDsm Z3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsgaGl2ZSA9IGFtZGdwdV9nZXRfeGdtaV9oaXZlKGFkZXYs IDApOzxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKGhpdmUgJmFtcDsmYW1w OyBhZGV2LSZndDtnbWMueGdtaS5udW1fcGh5c2ljYWxfbm9kZXMgJmd0OyAxICZhbXA7JmFtcDs8 YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 ICFtdXRleF90cnlsb2NrKCZhbXA7aGl2ZS0mZ3Q7cmVzZXRfbG9jaykpPGJyPg0KJmd0OyZndDsg JiM0Mzs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoaGl2ZSAmYW1w OyZhbXA7ICFtdXRleF90cnlsb2NrKCZhbXA7aGl2ZS0mZ3Q7cmVzZXRfbG9jaykpIHs8YnI+DQom Z3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBEUk1fSU5GTygmcXVvdDtCYWlsaW5nIG9uIFREUiBmb3Ig c19qb2I6JWxseCwgaGl2ZTogJWxseCBhcyBhbm90aGVyIGFscmVhZHkgaW4gcHJvZ3Jlc3MmcXVv dDssPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgam9iLSZndDtiYXNlLmlkLCBoaXZlLSZndDto aXZlX2lkKTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByZXR1cm4g MDs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyPg0KJmd0OyZndDsm bmJzcDsmbmJzcDsmbmJzcDsgPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgLyogU3RhcnQgd2l0aCBhZGV2IHByZSBhc2ljIHJlc2V0IGZpcnN0IGZvciBz b2Z0IHJlc2V0IGNoZWNrLiovPGJyPg0KJmd0OyZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyBhbWRn cHVfZGV2aWNlX2xvY2tfYWRldihhZGV2KTs8YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5i c3A7IHIgPSBhbWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0KGFkZXYsPGJyPg0KJmd0OyZndDsg LSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBqb2IsPGJyPg0K Jmd0OyZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAm YW1wO25lZWRfZnVsbF9yZXNldCk7PGJyPg0KJmd0OyZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyBp ZiAocikgezxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLypUT0RPIFNob3VsZCB3ZSBzdG9wID8q Lzxicj4NCiZndDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgRFJNX0VSUk9SKCZxdW90O0dQVSBwcmUgYXNpYyBy ZXNldCBmYWlsZWQgd2l0aCBlcnIsICVkIGZvciBkcm0gZGV2LCAlcyAmcXVvdDssPGJyPg0KJmd0 OyZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyByLCBhZGV2LSZndDtkZGV2LSZndDt1bmlxdWUpOzxicj4NCiZn dDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsgYWRldi0mZ3Q7YXNpY19yZXNldF9yZXMgPSByOzxicj4NCiZndDsm Z3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICghYW1kZ3B1X2RldmljZV9sb2NrX2FkZXYo YWRldiwgIWhpdmUpKSB7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgRFJNX0lORk8oJnF1 b3Q7QmFpbGluZyBvbiBURFIgZm9yIHNfam9iOiVsbHgsIGFzIGFub3RoZXIgYWxyZWFkeSBpbiBw cm9ncmVzcyZxdW90Oyw8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBqb2ItJmd0O2Jhc2UuaWQpOzxicj4NCiZndDsmZ3Q7ICYj NDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IHJldHVybiAwOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7IH08YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+DQom Z3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBCdWlsZCBsaXN0 IG9mIGRldmljZXMgdG8gcmVzZXQgKi88YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7 IGlmJm5ic3A7IChuZWVkX2Z1bGxfcmVzZXQgJmFtcDsmYW1wOyBhZGV2LSZndDtnbWMueGdtaS5u dW1fcGh5c2ljYWxfbm9kZXMgJmd0OyAxKSB7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJz cDsmbmJzcDsgaWYmbmJzcDsgKGFkZXYtJmd0O2dtYy54Z21pLm51bV9waHlzaWNhbF9ub2RlcyAm Z3Q7IDEpIHs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAoIWhp dmUpIHs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBhbWRncHVfZGV2aWNlX3VubG9j a19hZGV2KGFkZXYpOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHJldHVybiAtRU5P REVWOzxicj4NCiZndDsmZ3Q7IEBAIC0zNTg4LDEzICYjNDM7MzU3Myw1NiBAQCBpbnQgYW1kZ3B1 X2RldmljZV9ncHVfcmVjb3ZlcihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiw8YnI+DQomZ3Q7 Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkZXZpY2VfbGlzdF9oYW5kbGUgPSAmYW1w O2RldmljZV9saXN0Ozxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IH08YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7Jmd0OyAm IzQzOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBibG9jayBhbGwgc2NoZWR1bGVycyBhbmQgcmVzZXQg Z2l2ZW4gam9iJ3MgcmluZyAqLzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IGxpc3RfZm9yX2VhY2hfZW50cnkodG1wX2FkZXYsIGRldmljZV9saXN0X2hhbmRsZSwgZ21jLnhn bWkuaGVhZCkgezxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGZvciAoaSA9IDA7IGkgJmx0 OyBBTURHUFVfTUFYX1JJTkdTOyAmIzQzOyYjNDM7aSkgezxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZyA9IHRtcF9hZGV2LSZndDtyaW5nc1tpXTs8YnI+DQomZ3Q7 Jmd0OyAmIzQzOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmICghcmluZyB8fCAhcmluZy0mZ3Q7c2No ZWQudGhyZWFkKTxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGNvbnRpbnVlOzxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0K Jmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgZHJtX3NjaGVkX3N0b3AoJmFtcDtyaW5nLSZndDtzY2hlZCwgJmFtcDtq b2ItJmd0O2Jhc2UpOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+DQomZ3Q7Jmd0 OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyPg0KJmd0OyZndDsgJiM0Mzs8YnI+DQomZ3Q7 Jmd0OyAmIzQzOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qPGJyPg0K Jmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKiBNdXN0IGNoZWNrIGd1aWx0 eSBzaWduYWwgaGVyZSBzaW5jZSBhZnRlciB0aGlzIHBvaW50IGFsbCBvbGQ8YnI+DQomZ3Q7Jmd0 OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAqIEhXIGZlbmNlcyBhcmUgZm9yY2Ugc2ln bmFsZWQuPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgKjxicj4N CiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICogam9iLSZndDtiYXNlIGhv bGRzIGEgcmVmZXJlbmNlIHRvIHBhcmVudCBmZW5jZTxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7ICovPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJz cDsgaWYgKGpvYiAmYW1wOyZhbXA7IGpvYi0mZ3Q7YmFzZS5zX2ZlbmNlLSZndDtwYXJlbnQgJmFt cDsmYW1wOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7IGRtYV9mZW5jZV9pc19zaWduYWxlZChqb2ItJmd0O2Jhc2Uuc19mZW5jZS0m Z3Q7cGFyZW50KSk8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBqb2Jfc2lnbmFsZWQgPSB0 cnVlOzxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsm bmJzcDsgaWYgKCFhbWRncHVfZGV2aWNlX2lwX25lZWRfZnVsbF9yZXNldChhZGV2KSk8YnI+DQom Z3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBkZXZpY2VfbGlzdF9oYW5kbGUgPSAmYW1wO2RldmljZV9s aXN0Ozxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsm bmJzcDsgaWYgKGpvYl9zaWduYWxlZCkgezxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRl dl9pbmZvKGFkZXYtJmd0O2RldiwgJnF1b3Q7R3VpbHR5IGpvYiBhbHJlYWR5IHNpZ25hbGVkLCBz a2lwcGluZyBIVyByZXNldCZxdW90Oyk7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZ290 byBza2lwX2h3X3Jlc2V0Ozxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IH08 YnI+DQomZ3Q7Jmd0OyAmIzQzOzxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsgJiM0 MzsmbmJzcDsmbmJzcDsmbmJzcDsgLyogR3VpbHR5IGpvYiB3aWxsIGJlIGZyZWVkIGFmdGVyIHRo aXMqLzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7IHIgPSBhbWRncHVfZGV2 aWNlX3ByZV9hc2ljX3Jlc2V0KGFkZXYsPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgam9iLDxicj4NCiZndDsmZ3Q7ICYjNDM7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZhbXA7bmVlZF9m dWxsX3Jlc2V0KTs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocikg ezxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qVE9ETyBTaG91bGQgd2Ugc3RvcCA/Ki88 YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBEUk1fRVJST1IoJnF1b3Q7R1BVIHByZSBhc2lj IHJlc2V0IGZhaWxlZCB3aXRoIGVyciwgJWQgZm9yIGRybSBkZXYsICVzICZxdW90Oyw8YnI+DQom Z3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyByLCBhZGV2LSZndDtkZGV2LSZndDt1bmlxdWUpOzxi cj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFkZXYtJmd0O2FzaWNfcmVzZXRfcmVzID0gcjs8 YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyPg0KJmd0OyZndDsgJiM0 Mzs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyByZXRyeTombmJzcDsmbmJzcDsmbmJz cDsgLyogUmVzdCBvZiBhZGV2cyBwcmUgYXNpYyByZXNldCBmcm9tIFhHTUkgaGl2ZS4gKi88YnI+ DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBsaXN0X2Zvcl9l YWNoX2VudHJ5KHRtcF9hZGV2LCBkZXZpY2VfbGlzdF9oYW5kbGUsIGdtYy54Z21pLmhlYWQpIHs8 YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyA8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyBpZiAodG1wX2FkZXYgPT0gYWRldik8YnI+DQomZ3Q7Jmd0OyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyBjb250aW51ZTs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyA8 YnI+DQomZ3Q7Jmd0OyAtJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGFtZGdwdV9kZXZpY2VfbG9ja19hZGV2KHRtcF9hZGV2 KTs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBhbWRncHVfZGV2aWNlX2xvY2tfYWRldih0 bXBfYWRldiwgZmFsc2UpOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IHIgPSBhbWRncHVfZGV2aWNlX3ByZV9hc2ljX3Jlc2V0KHRtcF9hZGV2LDxicj4NCiZndDsmZ3Q7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IE5V TEwsPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgJmFtcDtuZWVkX2Z1bGxfcmVzZXQpOzxicj4NCiZndDsmZ3Q7IEBAIC0z NjE4LDkgJiM0MzszNjQ2LDI4IEBAIGludCBhbWRncHVfZGV2aWNlX2dwdV9yZWNvdmVyKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2LDxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGdv dG8gcmV0cnk7PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsgfTxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsmZ3Q7ICYjNDM7 c2tpcF9od19yZXNldDo8YnI+DQomZ3Q7Jmd0OyAmIzQzOzxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIFBvc3QgQVNJQyByZXNldCBmb3IgYWxsIGRl dnMgLiovPGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg bGlzdF9mb3JfZWFjaF9lbnRyeSh0bXBfYWRldiwgZGV2aWNlX2xpc3RfaGFuZGxlLCBnbWMueGdt aS5oZWFkKSB7PGJyPg0KJmd0OyZndDsgLSZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBhbWRncHVfZGV2aWNlX3Bvc3RfYXNp Y19yZXNldCh0bXBfYWRldik7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZm9yIChpID0g MDsgaSAmbHQ7IEFNREdQVV9NQVhfUklOR1M7ICYjNDM7JiM0MztpKSB7PGJyPg0KJmd0OyZndDsg JiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gdG1wX2FkZXYtJmd0O3JpbmdzW2ldOzxi cj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCFyaW5nIHx8ICFyaW5n LSZndDtzY2hlZC50aHJlYWQpPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgY29udGludWU7PGJyPg0KJmd0OyZndDsgJiM0 Mzs8YnI+DQomZ3Q7Jmd0OyAmIzQzOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAvKiBObyBwb2ludCB0byByZXN1Ym1pdCBqb2JzIGlmIHdl IGRpZG4ndCBIVyByZXNldCovPGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgaWYgKCF0bXBfYWRldi0mZ3Q7 YXNpY19yZXNldF9yZXMgJmFtcDsmYW1wOyAham9iX3NpZ25hbGVkKTxicj4NCiZndDsmZ3Q7ICYj NDM7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IGRybV9z Y2hlZF9yZXN1Ym1pdF9qb2JzKCZhbXA7cmluZy0mZ3Q7c2NoZWQpOzxicj4NCiZndDsmZ3Q7ICYj NDM7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZHJtX3NjaGVkX3N0YXJ0KCZhbXA7cmluZy0mZ3Q7c2No ZWQsICF0bXBfYWRldi0mZ3Q7YXNpY19yZXNldF9yZXMpOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IH08YnI+DQomZ3Q7Jmd0OyAmIzQzOzxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IGlmICghYW1kZ3B1X2RldmljZV9oYXNfZGNfc3VwcG9ydCh0bXBfYWRldikgJmFtcDsmYW1wOyAh am9iX3NpZ25hbGVkKSB7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgZHJtX2hlbHBlcl9yZXN1bWVfZm9y Y2VfbW9kZSh0bXBfYWRldi0mZ3Q7ZGRldik7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsg fTxicj4NCiZndDsmZ3Q7ICYjNDM7PGJyPg0KJmd0OyZndDsgJiM0MzsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgdG1wX2Fk ZXYtJmd0O2FzaWNfcmVzZXRfcmVzID0gMDs8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNw OyA8YnI+DQomZ3Q7Jmd0OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBpZiAocikgezxicj4N CiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IC8qIGJhZCBuZXdzLCBob3cgdG8gdGVsbCBpdCB0 byB1c2Vyc3BhY2UgPyAqLzxicj4NCiZndDsmZ3Q7IEBAIC0zNjMzLDcgJiM0MzszNjgwLDcgQEAg aW50IGFtZGdwdV9kZXZpY2VfZ3B1X3JlY292ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgYW1kZ3B1X2RldmljZV91 bmxvY2tfYWRldih0bXBfYWRldik7PGJyPg0KJmd0OyZndDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgfTxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZn dDsmZ3Q7IC0mbmJzcDsmbmJzcDsmbmJzcDsgaWYgKGhpdmUgJmFtcDsmYW1wOyBhZGV2LSZndDtn bWMueGdtaS5udW1fcGh5c2ljYWxfbm9kZXMgJmd0OyAxKTxicj4NCiZndDsmZ3Q7ICYjNDM7Jm5i c3A7Jm5ic3A7Jm5ic3A7IGlmIChoaXZlKTxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5i c3A7Jm5ic3A7IG11dGV4X3VubG9jaygmYW1wO2hpdmUtJmd0O3Jlc2V0X2xvY2spOzxicj4NCiZn dDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDxicj4NCiZndDsmZ3Q7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IGlmIChyKTxicj4NCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fPGJyPg0KYW1kLWdmeCBtYWlsaW5nIGxpc3Q8YnI+DQo8YSBo cmVmPSJtYWlsdG86YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmciIG1vei1kby1ub3Qtc2Vu ZD0idHJ1ZSI+YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc8L2E+PGJyPg0KPGEgaHJlZj0i aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4IiBt b3otZG8tbm90LXNlbmQ9InRydWUiPmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vYW1kLWdmeDwvYT48bzpwPjwvbzpwPjwvcD4NCjwvZGl2Pg0KPC9ibG9ja3F1 b3RlPg0KPC9kaXY+DQo8L2Rpdj4NCjwvYmxvY2txdW90ZT4NCjxicj4NCjwvYmxvY2txdW90ZT4N CjwvYm9keT4NCjwvaHRtbD4NCg== --_000_0c02ed971f101d066a06d1ec0af2dbf7amdcom_-- --===============2101652710== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBt YWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4 --===============2101652710==--