From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Liu, Shaoyun" Subject: RE: [PATCH 3/5] drm/amdgpu: Avoid to use SOC15_REG_OFFSET in static const array Date: Wed, 29 Nov 2017 20:52:41 +0000 Message-ID: References: <1511982590-8745-1-git-send-email-Shaoyun.Liu@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx 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" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" VGhlcmUgYXJlIG90aGVyIHBsYWNlIG9mIHRoZSBnb2xkZW4gcmVnaXN0ZXIgc2V0dGluZyB3aGVy ZSBJIGFscmVhZHkgcmVwbGFjZSB0aGUgU09DMTVfUkVHX09GRlNFVCB3aXRoIFNPQzE1X1JFR19F TlRSWS4gICBBbGwgdGhlc2UgR0RTIHJlZ2lzdGVyIG9mZnNldCBhcmUgYmFzZWQgb24gR0NfQkFT RTAgKDB4MjAwMCkgc28gaG93IGFib3V0IEkgdXNlIGZvbGxvd2luZyBkZWZpbmVzIA0KDQojZGVm aW5lICBWRzEwX0dDX0JBU0UwX09GRlNFVChyZWcpICAoMHgyMDAwICsgcmVnKSAgIA0KDQpBbmQg dXNlIGl0IHRvIHJlcGxhY2UgdGhlIFNPQzE1X1JFR19PRkZTRVQgdXNlZCBpbiBhbWRncHVfZ2Rz X3JlZ19vZmZzZXRbXQ0KDQpSZWdhcmRzDQpTaGFveXVuLmxpdQ0KDQotLS0tLU9yaWdpbmFsIE1l c3NhZ2UtLS0tLQ0KRnJvbTogQ2hyaXN0aWFuIEvDtm5pZyBbbWFpbHRvOmNrb2VuaWcubGVpY2h0 enVtZXJrZW5AZ21haWwuY29tXSANClNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIgMjksIDIwMTcg MzowOCBQTQ0KVG86IExpdSwgU2hhb3l1bjsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcN ClN1YmplY3Q6IFJlOiBbUEFUQ0ggMy81XSBkcm0vYW1kZ3B1OiBBdm9pZCB0byB1c2UgU09DMTVf UkVHX09GRlNFVCBpbiBzdGF0aWMgY29uc3QgYXJyYXkNCg0KQW0gMjkuMTEuMjAxNyB1bSAyMDow OSBzY2hyaWViIFNoYW95dW4gTGl1Og0KPiBDaGFuZ2UtSWQ6IEk1OTgyOGE5YTEwNjUyOTg4ZTIy YjUwZDg3ZGQxZWM5ZGY4YWU3YTFkDQo+IFNpZ25lZC1vZmYtYnk6IFNoYW95dW4gTGl1IDxTaGFv eXVuLkxpdUBhbWQuY29tPg0KPiAtLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n ZnhfdjlfMC5jICAgICB8IDI1OSArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0NCj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jICAgICB8ICAxNCArLQ0KPiAgIGRy aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jICAgIHwgIDEzICstDQo+ICAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N18wLmMgICAgfCAgMTIgKy0NCj4gICBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zZG1hX3Y0XzAuYyAgICB8ICA4OCArKysrKy0tLS0tDQo+ ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuYyAgICAgICAgfCAgOTMgKysrKysr KystLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5oICAgICAgICB8ICAg NCArDQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTVfY29tbW9uLmggfCAgIDMg Kw0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMgICAgIHwgICAzICst DQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYyAgICAgfCAgIDIgKy0N Cj4gICAxMCBmaWxlcyBjaGFuZ2VkLCAyNzggaW5zZXJ0aW9ucygrKSwgMjEzIGRlbGV0aW9ucygt KQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAu YyANCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jDQo+IGluZGV4IDU0 OTdlZDYuLmYwNTYwZDIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dmeF92OV8wLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAu Yw0KPiBAQCAtNjcsMTUwICs2NywxNTEgQEANCj4gICANCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0 IGFtZGdwdV9nZHNfcmVnX29mZnNldCBhbWRncHVfZ2RzX3JlZ19vZmZzZXRbXSA9DQo+ICAgew0K PiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDBfQkFTRSksDQo+IC0JICBT T0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMF9TSVpFKSwNCj4gLQkgIFNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMCksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VU KEdDLCAwLCBtbUdEU19PQV9WTUlEMCkgfSwNCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tR0RTX1ZNSUQxX0JBU0UpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNf Vk1JRDFfU0laRSksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1J RDEpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfT0FfVk1JRDEpIH0sDQo+ IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMl9CQVNFKSwNCj4gLQkgIFNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQyX1NJWkUpLA0KPiAtCSAgU09DMTVfUkVH X09GRlNFVChHQywgMCwgbW1HRFNfR1dTX1ZNSUQyKSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tR0RTX09BX1ZNSUQyKSB9LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1HRFNfVk1JRDNfQkFTRSksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19W TUlEM19TSVpFKSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlE MyksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEMykgfSwNCj4g LQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQ0X0JBU0UpLA0KPiAtCSAgU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDRfU0laRSksDQo+IC0JICBTT0MxNV9SRUdf T0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1JRDQpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HRFNfT0FfVk1JRDQpIH0sDQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBt bUdEU19WTUlENV9CQVNFKSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZN SUQ1X1NJWkUpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfR1dTX1ZNSUQ1 KSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQ1KSB9LA0KPiAt CXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDZfQkFTRSksDQo+IC0JICBTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlENl9TSVpFKSwNCj4gLQkgIFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlENiksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbUdEU19PQV9WTUlENikgfSwNCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t R0RTX1ZNSUQ3X0JBU0UpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfVk1J RDdfU0laRSksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1JRDcp LA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfT0FfVk1JRDcpIH0sDQo+IC0J eyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEOF9CQVNFKSwNCj4gLQkgIFNPQzE1 X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQ4X1NJWkUpLA0KPiAtCSAgU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1HRFNfR1dTX1ZNSUQ4KSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tR0RTX09BX1ZNSUQ4KSB9LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1H RFNfVk1JRDlfQkFTRSksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlE OV9TSVpFKSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEOSks DQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEOSkgfSwNCj4gLQl7 IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQxMF9CQVNFKSwNCj4gLQkgIFNPQzE1 X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQxMF9TSVpFKSwNCj4gLQkgIFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMTApLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HRFNfT0FfVk1JRDEwKSB9LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1HRFNfVk1JRDExX0JBU0UpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNf Vk1JRDExX1NJWkUpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNfR1dTX1ZN SUQxMSksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlEMTEpIH0s DQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTJfQkFTRSksDQo+IC0J ICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTJfU0laRSksDQo+IC0JICBTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1JRDEyKSwNCj4gLQkgIFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQxMil9LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1HRFNfVk1JRDEzX0JBU0UpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1HRFNfVk1JRDEzX1NJWkUpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNf R1dTX1ZNSUQxMyksDQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19PQV9WTUlE MTMpIH0sDQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTRfQkFTRSks DQo+IC0JICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMTRfU0laRSksDQo+IC0J ICBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdEU19HV1NfVk1JRDE0KSwNCj4gLQkgIFNPQzE1 X1JFR19PRkZTRVQoR0MsIDAsIG1tR0RTX09BX1ZNSUQxNCkgfSwNCj4gLQl7IFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQxNV9CQVNFKSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tR0RTX1ZNSUQxNV9TSVpFKSwNCj4gLQkgIFNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tR0RTX0dXU19WTUlEMTUpLA0KPiAtCSAgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HRFNf T0FfVk1JRDE1KSB9DQo+ICsJLyogRml4IG1lIGlmIEdDIGJhc2UgZm9yIHRoZSByZWdpc3RlciBp cyBub3QgMHgyMDAwIGluIHRoZSBmdXR1cmUgDQo+ICthc2ljICovDQoNClllYWgsIHdlIG5lZWQg YSBiZXR0ZXIgc29sdXRpb24gZm9yIHRoaXMuDQoNCkhvdyBhYm91dCBhIFZHMTBfR09MREVOX1JF RyBtYWNybyBvciBzb21ldGhpbmcgbGlrZSB0aGlzPw0KDQpSZWdhcmRzLA0KQ2hyaXN0aWFuLg0K DQo+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDBfQkFTRSksDQo+ICsJICAoMHgyMDAwICsgbW1H RFNfVk1JRDBfU0laRSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQwKSwNCj4gKwkg ICgweDIwMDAgKyBtbUdEU19PQV9WTUlEMCkgfSwNCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlE MV9CQVNFKSwNCj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEMV9TSVpFKSwNCj4gKwkgICgweDIw MDAgKyBtbUdEU19HV1NfVk1JRDEpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQxKSB9 LA0KPiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQyX0JBU0UpLA0KPiArCSAgKDB4MjAwMCArIG1t R0RTX1ZNSUQyX1NJWkUpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEMiksDQo+ICsJ ICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDIpIH0sDQo+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1J RDNfQkFTRSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1JRDNfU0laRSksDQo+ICsJICAoMHgy MDAwICsgbW1HRFNfR1dTX1ZNSUQzKSwNCj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlEMykg fSwNCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlENF9CQVNFKSwNCj4gKwkgICgweDIwMDAgKyBt bUdEU19WTUlENF9TSVpFKSwNCj4gKwkgICgweDIwMDAgKyBtbUdEU19HV1NfVk1JRDQpLA0KPiAr CSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQ0KSB9LA0KPiArCXsgKDB4MjAwMCArIG1tR0RTX1ZN SUQ1X0JBU0UpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX1ZNSUQ1X1NJWkUpLA0KPiArCSAgKDB4 MjAwMCArIG1tR0RTX0dXU19WTUlENSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDUp IH0sDQo+ICsJeyAoMHgyMDAwICsgbW1HRFNfVk1JRDZfQkFTRSksDQo+ICsJICAoMHgyMDAwICsg bW1HRFNfVk1JRDZfU0laRSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQ2KSwNCj4g KwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlENikgfSwNCj4gKwl7ICgweDIwMDAgKyBtbUdEU19W TUlEN19CQVNFKSwNCj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEN19TSVpFKSwNCj4gKwkgICgw eDIwMDAgKyBtbUdEU19HV1NfVk1JRDcpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQ3 KSB9LA0KPiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQ4X0JBU0UpLA0KPiArCSAgKDB4MjAwMCAr IG1tR0RTX1ZNSUQ4X1NJWkUpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEOCksDQo+ ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDgpIH0sDQo+ICsJeyAoMHgyMDAwICsgbW1HRFNf Vk1JRDlfQkFTRSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1JRDlfU0laRSksDQo+ICsJICAo MHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQ5KSwNCj4gKwkgICgweDIwMDAgKyBtbUdEU19PQV9WTUlE OSkgfSwNCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlEMTBfQkFTRSksDQo+ICsJICAoMHgyMDAw ICsgbW1HRFNfVk1JRDEwX1NJWkUpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEMTAp LA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQxMCkgfSwNCj4gKwl7ICgweDIwMDAgKyBt bUdEU19WTUlEMTFfQkFTRSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfVk1JRDExX1NJWkUpLA0K PiArCSAgKDB4MjAwMCArIG1tR0RTX0dXU19WTUlEMTEpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RT X09BX1ZNSUQxMSkgfSwNCj4gKwl7ICgweDIwMDAgKyBtbUdEU19WTUlEMTJfQkFTRSksDQo+ICsJ ICAoMHgyMDAwICsgbW1HRFNfVk1JRDEyX1NJWkUpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX0dX U19WTUlEMTIpLA0KPiArCSAgKDB4MjAwMCArIG1tR0RTX09BX1ZNSUQxMil9LA0KPiArCXsgKDB4 MjAwMCArIG1tR0RTX1ZNSUQxM19CQVNFKSwNCj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEMTNf U0laRSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQxMyksDQo+ICsJICAoMHgyMDAw ICsgbW1HRFNfT0FfVk1JRDEzKSB9LA0KPiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQxNF9CQVNF KSwNCj4gKwkgICgweDIwMDAgKyBtbUdEU19WTUlEMTRfU0laRSksDQo+ICsJICAoMHgyMDAwICsg bW1HRFNfR1dTX1ZNSUQxNCksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDE0KSB9LA0K PiArCXsgKDB4MjAwMCArIG1tR0RTX1ZNSUQxNV9CQVNFKSwNCj4gKwkgICgweDIwMDAgKyBtbUdE U19WTUlEMTVfU0laRSksDQo+ICsJICAoMHgyMDAwICsgbW1HRFNfR1dTX1ZNSUQxNSksDQo+ICsJ ICAoMHgyMDAwICsgbW1HRFNfT0FfVk1JRDE1KSB9DQo+ICAgfTsNCj4gICANCj4gICBzdGF0aWMg Y29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19nY185XzBbXSA9DQo+ICAgew0KPiAtCVNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgw LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BGX1VUQ0wxX0NOVEwpLCAweDA4MDAw MDAwLCAweDA4MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BHX1VUQ0wx X0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tREJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwNCj4gLQlTT0MxNV9SRUdf T0ZGU0VUKEdDLCAwLCBtbUdCX0dQVV9JRCksIDB4MDAwMDAwMGYsIDB4MDAwMDAwMDAsDQo+IC0J U09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1JQV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgw ODAwMDA4MCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1NDX0JJTk5FUl9FVkVO VF9DTlRMXzMpLCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tUEFfU0NfRU5IQU5DRSksIDB4M2ZmZmZmZmYsIDB4MDAwMDAwMDEsDQo+IC0JU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1QQV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUpLCAweDAwMDBm ZjBmLCAweDAwMDAwMDAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9V VENMMV9DTlRMXzApLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzEpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgw LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzIpLCAw eDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxD X1BSRVdBTEtFUl9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gLQlTT0Mx NV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVJMQ19TUE1fVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4 MDgwMDAwODAsDQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1TSF9NRU1fQ09ORklHKSwg MHgwMDAwMTAwMCwgMHgwMDAwMTAwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVNQ SV9DT05GSUdfQ05UTF8xKSwgMHgwMDAwMDAwZiwgMHgwMTAwMDEwNywNCj4gLQlTT0MxNV9SRUdf T0ZGU0VUKEdDLCAwLCBtbVNRQ19DT05GSUcpLCAweDAzMDAwMDAwLCAweDAyMGEyMDAwLA0KPiAt CVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVEFfQ05UTF9BVVgpLCAweGZmZmZmZWVmLCAweDAx MGIwMDAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJfSEkp LCAweGZmZmZmZmZmLCAweDRhMmMwZTY4LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t VENQX0NIQU5fU1RFRVJfTE8pLCAweGZmZmZmZmZmLCAweGI1ZDNmMTk3LA0KPiAtCVNPQzE1X1JF R19PRkZTRVQoR0MsIDAsIG1tVkdUX0NBQ0hFX0lOVkFMSURBVElPTiksIDB4M2ZmZjNhZjMsIDB4 MTkyMDAwMDAsDQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1WR1RfR1NfTUFYX1dBVkVf SUQpLCAweDAwMDAwZmZmLCAweDAwMDAwM2ZmLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tV0RfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODANCj4gKwlTT0MxNV9SRUdf RU5UUlkoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0K PiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUEZfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAs IDB4MDgwMDAwODAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQR19VVENMMV9DTlRM KSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1t REJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlko R0MsIDAsIG1tR0JfR1BVX0lEKSwgMHgwMDAwMDAwZiwgMHgwMDAwMDAwMCwNCj4gKwlTT0MxNV9S RUdfRU5UUlkoR0MsIDAsIG1tSUFfVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAs DQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1NDX0JJTk5FUl9FVkVOVF9DTlRMXzMp LCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1Q QV9TQ19FTkhBTkNFKSwgMHgzZmZmZmZmZiwgMHgwMDAwMDAwMSwNCj4gKwlTT0MxNV9SRUdfRU5U UlkoR0MsIDAsIG1tUEFfU0NfTElORV9TVElQUExFX1NUQVRFKSwgMHgwMDAwZmYwZiwgMHgwMDAw MDAwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzAp LCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1S TENfR1BNX1VUQ0wxX0NOVExfMSksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsDQo+ICsJU09DMTVf UkVHX0VOVFJZKEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8yKSwgMHgwODAwMDAwMCwgMHgw ODAwMDA4MCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX1BSRVdBTEtFUl9VVENM MV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0Ms IDAsIG1tUkxDX1NQTV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gKwlT T0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU0hfTUVNX0NPTkZJRyksIDB4MDAwMDEwMDAsIDB4MDAw MDEwMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVNQSV9DT05GSUdfQ05UTF8xKSwg MHgwMDAwMDAwZiwgMHgwMTAwMDEwNywNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tU1FD X0NPTkZJRyksIDB4MDMwMDAwMDAsIDB4MDIwYTIwMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdD LCAwLCBtbVRBX0NOVExfQVVYKSwgMHhmZmZmZmVlZiwgMHgwMTBiMDAwMCwNCj4gKwlTT0MxNV9S RUdfRU5UUlkoR0MsIDAsIG1tVENQX0NIQU5fU1RFRVJfSEkpLCAweGZmZmZmZmZmLCAweDRhMmMw ZTY4LA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ1BfQ0hBTl9TVEVFUl9MTyksIDB4 ZmZmZmZmZmYsIDB4YjVkM2YxOTcsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVZHVF9D QUNIRV9JTlZBTElEQVRJT04pLCAweDNmZmYzYWYzLCAweDE5MjAwMDAwLA0KPiArCVNPQzE1X1JF R19FTlRSWShHQywgMCwgbW1WR1RfR1NfTUFYX1dBVkVfSUQpLCAweDAwMDAwZmZmLCAweDAwMDAw M2ZmLA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1XRF9VVENMMV9DTlRMKSwgMHgwODAw MDAwMCwgMHgwODAwMDA4MA0KPiAgIH07DQo+ICAgDQo+ICAgc3RhdGljIGNvbnN0IHUzMiBnb2xk ZW5fc2V0dGluZ3NfZ2NfOV8wX3ZnMTBbXSA9DQo+ICAgew0KPiAtCVNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tQ0JfSFdfQ09OVFJPTCksIDB4MDAwMGYwMDAsIDB4MDAwMTIxMDcsDQo+IC0JU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1DQl9IV19DT05UUk9MXzMpLCAweDMwMDAwMDAwLCAweDEw MDAwMDAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0JfQUREUl9DT05GSUcpLCAw eGZmZmY3N2ZmLCAweDJhMTE0MDQyLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR0Jf QUREUl9DT05GSUdfUkVBRCksIDB4ZmZmZjc3ZmYsIDB4MmExMTQwNDIsDQo+IC0JU09DMTVfUkVH X09GRlNFVChHQywgMCwgbW1QQV9TQ19FTkhBTkNFXzEpLCAweDAwMDA4MDAwLCAweDAwMDQ4MDAw LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUk1JX1VUQ0wxX0NOVEwyKSwgMHgwMDAz MDAwMCwgMHgwMDAyMDAwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVREX0NOVEwp LCAweDAwMDAxODAwLCAweDAwMDAwODAwDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNC X0hXX0NPTlRST0wpLCAweDAwMDBmMDAwLCAweDAwMDEyMTA3LA0KPiArCVNPQzE1X1JFR19FTlRS WShHQywgMCwgbW1DQl9IV19DT05UUk9MXzMpLCAweDMwMDAwMDAwLCAweDEwMDAwMDAwLA0KPiAr CVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1HQl9BRERSX0NPTkZJRyksIDB4ZmZmZjc3ZmYsIDB4 MmExMTQwNDIsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdCX0FERFJfQ09ORklHX1JF QUQpLCAweGZmZmY3N2ZmLCAweDJhMTE0MDQyLA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwg bW1QQV9TQ19FTkhBTkNFXzEpLCAweDAwMDA4MDAwLCAweDAwMDQ4MDAwLA0KPiArCVNPQzE1X1JF R19FTlRSWShHQywgMCwgbW1STUlfVVRDTDFfQ05UTDIpLCAweDAwMDMwMDAwLCAweDAwMDIwMDAw LA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1URF9DTlRMKSwgMHgwMDAwMTgwMCwgMHgw MDAwMDgwMA0KPiAgIH07DQo+ICAgDQo+ICAgc3RhdGljIGNvbnN0IHUzMiBnb2xkZW5fc2V0dGlu Z3NfZ2NfOV8xW10gPQ0KPiAgIHsNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNCX0hX X0NPTlRST0wpLCAweGZmZmRmM2NmLCAweDAwMDE0MTA0LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQo R0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiAtCVNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BGX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4 MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BHX1VUQ0wxX0NOVEwpLCAw eDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tREJf REVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdD LCAwLCBtbUdCX0dQVV9JRCksIDB4MDAwMDAwMGYsIDB4MDAwMDAwMDAsDQo+IC0JU09DMTVfUkVH X09GRlNFVChHQywgMCwgbW1JQV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwN Cj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1NDX0JJTk5FUl9FVkVOVF9DTlRMXzMp LCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1t UEFfU0NfRU5IQU5DRSksIDB4M2ZmZmZmZmYsIDB4MDAwMDAwMDEsDQo+IC0JU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1QQV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUpLCAweDAwMDBmZjBmLCAweDAw MDAwMDAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRM XzApLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAs IG1tUkxDX0dQTV9VVENMMV9DTlRMXzEpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiAtCVNP QzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX0dQTV9VVENMMV9DTlRMXzIpLCAweDA4MDAwMDAw LCAweDA4MDAwMDgwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tUkxDX1BSRVdBTEtF Ul9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gLQlTT0MxNV9SRUdfT0ZG U0VUKEdDLCAwLCBtbVJMQ19TUE1fVVRDTDFfQ05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAs DQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1UQV9DTlRMX0FVWCksIDB4ZmZmZmZlZWYs IDB4MDEwYjAwMDAsDQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1UQ1BfQ0hBTl9TVEVF Ul9ISSksIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMDAsDQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywg MCwgbW1UQ1BfQ0hBTl9TVEVFUl9MTyksIDB4ZmZmZmZmZmYsIDB4MDAwMDMxMjAsDQo+IC0JU09D MTVfUkVHX09GRlNFVChHQywgMCwgbW1WR1RfQ0FDSEVfSU5WQUxJREFUSU9OKSwgMHgzZmZmM2Fm MywgMHgxOTIwMDAwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVZHVF9HU19NQVhf V0FWRV9JRCksIDB4MDAwMDBmZmYsIDB4MDAwMDAwZmYsDQo+IC0JU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1XRF9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MA0KPiArCVNPQzE1 X1JFR19FTlRSWShHQywgMCwgbW1DQl9IV19DT05UUk9MKSwgMHhmZmZkZjNjZiwgMHgwMDAxNDEw NCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BDX1VUQ0wxX0NOVEwpLCAweDA4MDAw MDAwLCAweDA4MDAwMDgwLA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUEZfVVRDTDFf Q05UTCksIDB4MDgwMDAwMDAsIDB4MDgwMDAwODAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAw LCBtbUNQR19VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gKwlTT0MxNV9S RUdfRU5UUlkoR0MsIDAsIG1tREJfREVCVUcyKSwgMHhmMDBmZmZmZiwgMHgwMDAwMDQyMCwNCj4g KwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0JfR1BVX0lEKSwgMHgwMDAwMDAwZiwgMHgwMDAw MDAwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tSUFfVVRDTDFfQ05UTCksIDB4MDgw MDAwMDAsIDB4MDgwMDAwODAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVBBX1NDX0JJ Tk5FUl9FVkVOVF9DTlRMXzMpLCAweDAwMDAwMDAzLCAweDgyNDAwMDI0LA0KPiArCVNPQzE1X1JF R19FTlRSWShHQywgMCwgbW1QQV9TQ19FTkhBTkNFKSwgMHgzZmZmZmZmZiwgMHgwMDAwMDAwMSwN Cj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUEFfU0NfTElORV9TVElQUExFX1NUQVRFKSwg MHgwMDAwZmYwZiwgMHgwMDAwMDAwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxD X0dQTV9VVENMMV9DTlRMXzApLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwLA0KPiArCVNPQzE1X1JF R19FTlRSWShHQywgMCwgbW1STENfR1BNX1VUQ0wxX0NOVExfMSksIDB4MDgwMDAwMDAsIDB4MDgw MDAwODAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVJMQ19HUE1fVVRDTDFfQ05UTF8y KSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1t UkxDX1BSRVdBTEtFUl9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwgMHgwODAwMDA4MCwNCj4gKwlT T0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUkxDX1NQTV9VVENMMV9DTlRMKSwgMHgwODAwMDAwMCwg MHgwODAwMDA4MCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVEFfQ05UTF9BVVgpLCAw eGZmZmZmZWVmLCAweDAxMGIwMDAwLA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1UQ1Bf Q0hBTl9TVEVFUl9ISSksIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMDAsDQo+ICsJU09DMTVfUkVHX0VO VFJZKEdDLCAwLCBtbVRDUF9DSEFOX1NURUVSX0xPKSwgMHhmZmZmZmZmZiwgMHgwMDAwMzEyMCwN Cj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tVkdUX0NBQ0hFX0lOVkFMSURBVElPTiksIDB4 M2ZmZjNhZjMsIDB4MTkyMDAwMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbVZHVF9H U19NQVhfV0FWRV9JRCksIDB4MDAwMDBmZmYsIDB4MDAwMDAwZmYsDQo+ICsJU09DMTVfUkVHX0VO VFJZKEdDLCAwLCBtbVdEX1VUQ0wxX0NOVEwpLCAweDA4MDAwMDAwLCAweDA4MDAwMDgwDQo+ICAg fTsNCj4gICANCj4gICBzdGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19nY185XzFfcnYx W10gPQ0KPiAgIHsNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUNCX0hXX0NPTlRST0xf MyksIDB4MzAwMDAwMDAsIDB4MTAwMDAwMDAsDQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1HQl9BRERSX0NPTkZJRyksIDB4ZmZmZjc3ZmYsIDB4MjQwMDAwNDIsDQo+IC0JU09DMTVfUkVH X09GRlNFVChHQywgMCwgbW1HQl9BRERSX0NPTkZJR19SRUFEKSwgMHhmZmZmNzdmZiwgMHgyNDAw MDA0MiwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbVBBX1NDX0VOSEFOQ0VfMSksIDB4 ZmZmZmZmZmYsIDB4MDQwNDgwMDAsDQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1QQV9T Q19NT0RFX0NOVExfMSksIDB4MDYwMDAwMDAsIDB4MDYwMDAwMDAsDQo+IC0JU09DMTVfUkVHX09G RlNFVChHQywgMCwgbW1STUlfVVRDTDFfQ05UTDIpLCAweDAwMDMwMDAwLCAweDAwMDIwMDAwLA0K PiAtCVNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tVERfQ05UTCksIDB4MDFiZDlmMzMsIDB4MDAw MDA4MDANCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ0JfSFdfQ09OVFJPTF8zKSwgMHgz MDAwMDAwMCwgMHgxMDAwMDAwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tR0JfQURE Ul9DT05GSUcpLCAweGZmZmY3N2ZmLCAweDI0MDAwMDQyLA0KPiArCVNPQzE1X1JFR19FTlRSWShH QywgMCwgbW1HQl9BRERSX0NPTkZJR19SRUFEKSwgMHhmZmZmNzdmZiwgMHgyNDAwMDA0MiwNCj4g KwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUEFfU0NfRU5IQU5DRV8xKSwgMHhmZmZmZmZmZiwg MHgwNDA0ODAwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tUEFfU0NfTU9ERV9DTlRM XzEpLCAweDA2MDAwMDAwLCAweDA2MDAwMDAwLA0KPiArCVNPQzE1X1JFR19FTlRSWShHQywgMCwg bW1STUlfVVRDTDFfQ05UTDIpLCAweDAwMDMwMDAwLCAweDAwMDIwMDAwLA0KPiArCVNPQzE1X1JF R19FTlRSWShHQywgMCwgbW1URF9DTlRMKSwgMHgwMWJkOWYzMywgMHgwMDAwMDgwMA0KPiAgIH07 DQo+ICAgDQo+ICAgc3RhdGljIGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3NfZ2NfOV94X2NvbW1v bltdID0NCj4gICB7DQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX0NBTV9JTkRF WCksIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMDAsDQo+IC0JU09DMTVfUkVHX09GRlNFVChHQywgMCwg bW1HUkJNX0NBTV9EQVRBKSwgMHhmZmZmZmZmZiwgMHgyNTQ0YzM4Mg0KPiArCVNPQzE1X1JFR19F TlRSWShHQywgMCwgbW1HUkJNX0NBTV9JTkRFWCksIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMDAsDQo+ ICsJU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fQ0FNX0RBVEEpLCAweGZmZmZmZmZmLCAw eDI1NDRjMzgyDQo+ICAgfTsNCj4gICANCj4gICAjZGVmaW5lIFZFR0ExMF9HQl9BRERSX0NPTkZJ R19HT0xERU4gMHgyYTExNDA0MiBAQCAtMjMwLDE4ICsyMzEsMTggDQo+IEBAIHN0YXRpYyB2b2lk IGdmeF92OV8wX2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikNCj4gICB7DQo+ICAgCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7DQo+ICAgCWNhc2UgQ0hJ UF9WRUdBMTA6DQo+IC0JCWFtZGdwdV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsDQo+ ICsJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gICAJCQkJCQkgZ29s ZGVuX3NldHRpbmdzX2djXzlfMCwNCj4gICAJCQkJCQkgQVJSQVlfU0laRShnb2xkZW5fc2V0dGlu Z3NfZ2NfOV8wKSk7DQo+IC0JCWFtZGdwdV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYs DQo+ICsJCXNvYzE1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gICAJCQkJCQkg Z29sZGVuX3NldHRpbmdzX2djXzlfMF92ZzEwLA0KPiAgIAkJCQkJCSBBUlJBWV9TSVpFKGdvbGRl bl9zZXR0aW5nc19nY185XzBfdmcxMCkpOw0KPiAgIAkJYnJlYWs7DQo+ICAgCWNhc2UgQ0hJUF9S QVZFTjoNCj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gKwkJ c29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiAgIAkJCQkJCSBnb2xkZW5f c2V0dGluZ3NfZ2NfOV8xLA0KPiAgIAkJCQkJCSBBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19n Y185XzEpKTsNCj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4g KwkJc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiAgIAkJCQkJCSBnb2xk ZW5fc2V0dGluZ3NfZ2NfOV8xX3J2MSwNCj4gICAJCQkJCQkgQVJSQVlfU0laRShnb2xkZW5fc2V0 dGluZ3NfZ2NfOV8xX3J2MSkpOw0KPiAgIAkJYnJlYWs7DQo+IEBAIC0yNDksNyArMjUwLDcgQEAg c3RhdGljIHZvaWQgZ2Z4X3Y5XzBfaW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2KQ0KPiAgIAkJYnJlYWs7DQo+ICAgCX0NCj4gICANCj4gLQlhbWRncHVfcHJv Z3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LCBnb2xkZW5fc2V0dGluZ3NfZ2NfOV94X2NvbW1v biwNCj4gKwlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsIGdvbGRlbl9zZXR0 aW5nc19nY185X3hfY29tbW9uLA0KPiAgIAkJCQkJKGNvbnN0IHUzMilBUlJBWV9TSVpFKGdvbGRl bl9zZXR0aW5nc19nY185X3hfY29tbW9uKSk7DQo+ICAgfQ0KPiAgIA0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyANCj4gYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jDQo+IGluZGV4IDMwZWI2MjUuLmNhNjZlMWMgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMNCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYw0KPiBAQCAtMzUsNiArMzUsNyBA QA0KPiAgICNpbmNsdWRlICJtbWh1Yi9tbWh1Yl8xXzBfb2Zmc2V0LmgiDQo+ICAgI2luY2x1ZGUg ImF0aHViL2F0aHViXzFfMF9vZmZzZXQuaCINCj4gICANCj4gKyNpbmNsdWRlICJzb2MxNS5oIg0K PiAgICNpbmNsdWRlICJzb2MxNV9jb21tb24uaCINCj4gICAjaW5jbHVkZSAidW1jL3VtY182XzBf c2hfbWFzay5oIg0KPiAgIA0KPiBAQCAtNzYsMTQgKzc3LDE0IEBADQo+ICAgDQo+ICAgc3RhdGlj IGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3NfbW1odWJfMV8wXzBbXSA9DQo+ICAgew0KPiAtCVNP QzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsIG1tREFHQjFfV1JDTEkyKSwgMHgwMDAwMDAwNywgMHhm ZTVmZTBmYSwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLCBtbU1NRUExX0RSQU1fV1Jf Q0xJMkdSUF9NQVAwKSwgMHgwMDAwMDAzMCwgMHg1NTU1NTU2NQ0KPiArCVNPQzE1X1JFR19FTlRS WShNTUhVQiwgMCwgbW1EQUdCMV9XUkNMSTIpLCAweDAwMDAwMDA3LCAweGZlNWZlMGZhLA0KPiAr CVNPQzE1X1JFR19FTlRSWShNTUhVQiwgMCwgbW1NTUVBMV9EUkFNX1dSX0NMSTJHUlBfTUFQMCks IDB4MDAwMDAwMzAsIA0KPiArMHg1NTU1NTU2NQ0KPiAgIH07DQo+ICAgDQo+ICAgc3RhdGljIGNv bnN0IHUzMiBnb2xkZW5fc2V0dGluZ3NfYXRodWJfMV8wXzBbXSA9DQo+ICAgew0KPiAtCVNPQzE1 X1JFR19PRkZTRVQoQVRIVUIsIDAsIG1tUlBCX0FSQl9DTlRMKSwgMHgwMDAwZmYwMCwgMHgwMDAw MDgwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKEFUSFVCLCAwLCBtbVJQQl9BUkJfQ05UTDIpLCAw eDAwZmYwMGZmLCAweDAwMDgwMDA4DQo+ICsJU09DMTVfUkVHX0VOVFJZKEFUSFVCLCAwLCBtbVJQ Ql9BUkJfQ05UTCksIDB4MDAwMGZmMDAsIDB4MDAwMDA4MDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZ KEFUSFVCLCAwLCBtbVJQQl9BUkJfQ05UTDIpLCAweDAwZmYwMGZmLCAweDAwMDgwMDA4DQo+ICAg fTsNCj4gICANCj4gICAvKiBFY2MgcmVsYXRlZCByZWdpc3RlciBhZGRyZXNzZXMsIChCQVNFICsg cmVnIG9mZnNldCkgKi8gQEAgLTg5NSwxMiANCj4gKzg5NiwxMyBAQCBzdGF0aWMgaW50IGdtY192 OV8wX3N3X2Zpbmkodm9pZCAqaGFuZGxlKQ0KPiAgIA0KPiAgIHN0YXRpYyB2b2lkIGdtY192OV8w X2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4gICB7 DQo+ICsNCj4gICAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsNCj4gICAJY2FzZSBDSElQX1ZF R0ExMDoNCj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gKwkJ c29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiAgIAkJCQkJCWdvbGRlbl9z ZXR0aW5nc19tbWh1Yl8xXzBfMCwNCj4gICAJCQkJCQlBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5n c19tbWh1Yl8xXzBfMCkpOw0KPiAtCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShh ZGV2LA0KPiArCQlzb2MxNV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsDQo+ICAgCQkJ CQkJZ29sZGVuX3NldHRpbmdzX2F0aHViXzFfMF8wLA0KPiAgIAkJCQkJCUFSUkFZX1NJWkUoZ29s ZGVuX3NldHRpbmdzX2F0aHViXzFfMF8wKSk7DQo+ICAgCQlicmVhazsNCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jIA0KPiBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jDQo+IGluZGV4IDc2ZGI3MTEuLjNiODdiOGEgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jDQo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jDQo+IEBAIC03OCw4ICs3 OCw4IEBAIHUzMiBuYmlvX3Y2XzFfZ2V0X21lbXNpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgDQo+ ICphZGV2KQ0KPiAgIA0KPiAgIHN0YXRpYyBjb25zdCB1MzIgbmJpb19zZG1hX2Rvb3JiZWxsX3Jh bmdlX3JlZ1tdID0NCj4gICB7DQo+IC0JU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJRl9T RE1BMF9ET09SQkVMTF9SQU5HRSksDQo+IC0JU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJ Rl9TRE1BMV9ET09SQkVMTF9SQU5HRSkNCj4gKwkoMHhkMjAgKyBtbUJJRl9TRE1BMF9ET09SQkVM TF9SQU5HRSksDQo+ICsJKDB4ZDIwICsgbW1CSUZfU0RNQTFfRE9PUkJFTExfUkFOR0UpDQo+ICAg fTsNCj4gICANCj4gICB2b2lkIG5iaW9fdjZfMV9zZG1hX2Rvb3JiZWxsX3JhbmdlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCBpbnQgDQo+IGluc3RhbmNlLCBAQCAtOTQsNiArOTQsNyBAQCB2 b2lkIG5iaW9fdjZfMV9zZG1hX2Rvb3JiZWxsX3JhbmdlKHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LCBpbnQgaW5zdGFuY2UsDQo+ICAgCQlkb29yYmVsbF9yYW5nZSA9IFJFR19TRVRfRklFTEQo ZG9vcmJlbGxfcmFuZ2UsIA0KPiBCSUZfU0RNQTBfRE9PUkJFTExfUkFOR0UsIFNJWkUsIDApOw0K PiAgIA0KPiAgIAlXUkVHMzIobmJpb19zZG1hX2Rvb3JiZWxsX3JhbmdlX3JlZ1tpbnN0YW5jZV0s IGRvb3JiZWxsX3JhbmdlKTsNCj4gKw0KPiAgIH0NCj4gICANCj4gICB2b2lkIG5iaW9fdjZfMV9l bmFibGVfZG9vcmJlbGxfYXBlcnR1cmUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIA0KPiBA QCAtMjE2LDggKzIxNyw4IEBAIHZvaWQgbmJpb192Nl8xX2dldF9jbG9ja2dhdGluZ19zdGF0ZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTMyICpmbGFncykNCj4gICB9DQo+ICAgDQo+ICAg Y29uc3Qgc3RydWN0IG5iaW9faGRwX2ZsdXNoX3JlZyBuYmlvX3Y2XzFfaGRwX2ZsdXNoX3JlZyA9 IHsNCj4gLQkuaGRwX2ZsdXNoX3JlcV9vZmZzZXQgPSBTT0MxNV9SRUdfT0ZGU0VUKE5CSU8sIDAs IG1tQklGX0JYX1BGMF9HUFVfSERQX0ZMVVNIX1JFUSksDQo+IC0JLmhkcF9mbHVzaF9kb25lX29m ZnNldCA9IFNPQzE1X1JFR19PRkZTRVQoTkJJTywgMCwgbW1CSUZfQlhfUEYwX0dQVV9IRFBfRkxV U0hfRE9ORSksDQo+ICsJLmhkcF9mbHVzaF9yZXFfb2Zmc2V0ID0gIDB4ZDIwICsgbW1CSUZfQlhf UEYwX0dQVV9IRFBfRkxVU0hfUkVRLA0KPiArCS5oZHBfZmx1c2hfZG9uZV9vZmZzZXQgPSAweGQy MCArIG1tQklGX0JYX1BGMF9HUFVfSERQX0ZMVVNIX0RPTkUsDQo+ICAgCS5yZWZfYW5kX21hc2tf Y3AwID0gQklGX0JYX1BGMF9HUFVfSERQX0ZMVVNIX0RPTkVfX0NQMF9NQVNLLA0KPiAgIAkucmVm X2FuZF9tYXNrX2NwMSA9IEJJRl9CWF9QRjBfR1BVX0hEUF9GTFVTSF9ET05FX19DUDFfTUFTSywN Cj4gICAJLnJlZl9hbmRfbWFza19jcDIgPSBCSUZfQlhfUEYwX0dQVV9IRFBfRkxVU0hfRE9ORV9f Q1AyX01BU0ssDQo+IEBAIC0yMzMsOCArMjM0LDggQEAgdm9pZCBuYmlvX3Y2XzFfZ2V0X2Nsb2Nr Z2F0aW5nX3N0YXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgKmZsYWdzKQ0KPiAg IH07DQo+ICAgDQo+ICAgY29uc3Qgc3RydWN0IG5iaW9fcGNpZV9pbmRleF9kYXRhIG5iaW9fdjZf MV9wY2llX2luZGV4X2RhdGEgPSB7DQo+IC0JLmluZGV4X29mZnNldCA9IFNPQzE1X1JFR19PRkZT RVQoTkJJTywgMCwgbW1QQ0lFX0lOREVYKSwNCj4gLQkuZGF0YV9vZmZzZXQgPSBTT0MxNV9SRUdf T0ZGU0VUKE5CSU8sIDAsIG1tUENJRV9EQVRBKSwNCj4gKwkuaW5kZXhfb2Zmc2V0ID0gMHgwICsg bW1QQ0lFX0lOREVYLA0KPiArCS5kYXRhX29mZnNldCA9IDB4MCArIG1tUENJRV9EQVRBLA0KPiAg IH07DQo+ICAgDQo+ICAgdm9pZCBuYmlvX3Y2XzFfZGV0ZWN0X2h3X3ZpcnQoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYpIGRpZmYgLS1naXQgDQo+IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvbmJpb192N18wLmMgDQo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N18w LmMNCj4gaW5kZXggMWZiNzcxNy4uNzI1MmQ1NzIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfMC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L25iaW9fdjdfMC5jDQo+IEBAIC03NSw4ICs3NSw4IEBAIHUzMiBuYmlvX3Y3XzBfZ2V0 X21lbXNpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgDQo+ICphZGV2KQ0KPiAgIA0KPiAgIHN0YXRp YyBjb25zdCB1MzIgbmJpb19zZG1hX2Rvb3JiZWxsX3JhbmdlX3JlZ1tdID0NCj4gICB7DQo+IC0J U09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJRl9TRE1BMF9ET09SQkVMTF9SQU5HRSksDQo+ IC0JU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUJJRl9TRE1BMV9ET09SQkVMTF9SQU5HRSkN Cj4gKwkoMHhkMjAgKyBtbUJJRl9TRE1BMF9ET09SQkVMTF9SQU5HRSksDQo+ICsJKDB4ZDIwICsg bW1CSUZfU0RNQTFfRE9PUkJFTExfUkFOR0UpDQo+ICAgfTsNCj4gICANCj4gICB2b2lkIG5iaW9f djdfMF9zZG1hX2Rvb3JiZWxsX3JhbmdlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQg DQo+IGluc3RhbmNlLCBAQCAtMTg2LDggKzE4Niw4IEBAIHZvaWQgbmJpb192N18wX2loX2NvbnRy b2woc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpDQo+ICAgfQ0KPiAgIA0KPiAgIGNvbnN0IHN0 cnVjdCBuYmlvX2hkcF9mbHVzaF9yZWcgbmJpb192N18wX2hkcF9mbHVzaF9yZWcgPSB7DQo+IC0J LmhkcF9mbHVzaF9yZXFfb2Zmc2V0ID0gU09DMTVfUkVHX09GRlNFVChOQklPLCAwLCBtbUdQVV9I RFBfRkxVU0hfUkVRKSwNCj4gLQkuaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0ID0gU09DMTVfUkVHX09G RlNFVChOQklPLCAwLCBtbUdQVV9IRFBfRkxVU0hfRE9ORSksDQo+ICsJLmhkcF9mbHVzaF9yZXFf b2Zmc2V0ID0gMHhkMjAgKyBtbUdQVV9IRFBfRkxVU0hfUkVRLA0KPiArCS5oZHBfZmx1c2hfZG9u ZV9vZmZzZXQgPSAweGQyMCArIG1tR1BVX0hEUF9GTFVTSF9ET05FLA0KPiAgIAkucmVmX2FuZF9t YXNrX2NwMCA9IEdQVV9IRFBfRkxVU0hfRE9ORV9fQ1AwX01BU0ssDQo+ICAgCS5yZWZfYW5kX21h c2tfY3AxID0gR1BVX0hEUF9GTFVTSF9ET05FX19DUDFfTUFTSywNCj4gICAJLnJlZl9hbmRfbWFz a19jcDIgPSBHUFVfSERQX0ZMVVNIX0RPTkVfX0NQMl9NQVNLLCBAQCAtMjAzLDYgKzIwMyw2IA0K PiBAQCB2b2lkIG5iaW9fdjdfMF9paF9jb250cm9sKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQ0KPiAgIH07DQo+ICAgDQo+ICAgY29uc3Qgc3RydWN0IG5iaW9fcGNpZV9pbmRleF9kYXRhIG5i aW9fdjdfMF9wY2llX2luZGV4X2RhdGEgPSB7DQo+IC0JLmluZGV4X29mZnNldCA9IFNPQzE1X1JF R19PRkZTRVQoTkJJTywgMCwgbW1QQ0lFX0lOREVYMiksDQo+IC0JLmRhdGFfb2Zmc2V0ID0gU09D MTVfUkVHX09GRlNFVChOQklPLCAwLCBtbVBDSUVfREFUQTIpDQo+ICsJLmluZGV4X29mZnNldCA9 IDB4MCArIG1tUENJRV9JTkRFWDIsDQo+ICsJLmRhdGFfb2Zmc2V0ID0gMHgwICsgbW1QQ0lFX0RB VEEyDQo+ICAgfTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Nk bWFfdjRfMC5jIA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jDQo+ IGluZGV4IGUzMjRjNjYuLmM2NTM2OTUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NkbWFfdjRfMC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L3NkbWFfdjRfMC5jDQo+IEBAIC01NCw1NyArNTQsNTcgQEANCj4gICBzdGF0aWMgdm9pZCBzZG1h X3Y0XzBfc2V0X2lycV9mdW5jcyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQo+ICAgDQo+ ICAgc3RhdGljIGNvbnN0IHUzMiBnb2xkZW5fc2V0dGluZ3Nfc2RtYV80W10gPSB7DQo+IC0JU09D MTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9DSElDS0VOX0JJVFMpLCAweGZlOTMxZjA3 LCAweDAyODMxZDA3LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfQ0xL X0NUUkwpLCAweGZmMDAwZmYwLCAweDNmMDAwMTAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RN QTAsIDAsIG1tU0RNQTBfR0ZYX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAwMTAwLA0KPiAt CVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRM KSwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAw LCBtbVNETUEwX1BBR0VfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAsDQo+IC0JU09D MTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9QQUdFX1JCX1dQVFJfUE9MTF9DTlRMKSwg MHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBt bVNETUEwX1BPV0VSX0NOVEwpLCAweDAwM2ZmMDA2LCAweDAwMDNjMDAwLA0KPiAtCVNPQzE1X1JF R19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMF9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgw MDAwMDEwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1JMQzBfUkJf V1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiAtCVNPQzE1X1JFR19P RkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMV9JQl9DTlRMKSwgMHg4MDBmMDEwMCwgMHgwMDAw MDEwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1JMQzFfUkJfV1BU Ul9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiAtCVNPQzE1X1JFR19PRkZT RVQoU0RNQTAsIDAsIG1tU0RNQTBfVVRDTDFfUEFHRSksIDB4MDAwMDAzZmYsIDB4MDAwMDAzYzAs DQo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9DSElDS0VOX0JJVFMpLCAw eGZlOTMxZjA3LCAweDAyODMxZjA3LA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1t U0RNQTFfQ0xLX0NUUkwpLCAweGZmZmZmZmZmLCAweDNmMDAwMTAwLA0KPiAtCVNPQzE1X1JFR19P RkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfR0ZYX0lCX0NOVEwpLCAweDgwMGYwMTAwLCAweDAwMDAw MTAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfR0ZYX1JCX1dQVFJf UE9MTF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VU KFNETUExLCAwLCBtbVNETUExX1BBR0VfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAs DQo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMSwgMCwgbW1TRE1BMV9QQUdFX1JCX1dQVFJfUE9M TF9DTlRMKSwgMHgwMDAwZmZmMCwgMHgwMDQwMzAwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNE TUExLCAwLCBtbVNETUExX1BPV0VSX0NOVEwpLCAweDAwM2ZmMDAwLCAweDAwMDNjMDAwLA0KPiAt CVNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfUkxDMF9JQl9DTlRMKSwgMHg4MDBm MDEwMCwgMHgwMDAwMDEwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUEx X1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiAtCVNP QzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfUkxDMV9JQl9DTlRMKSwgMHg4MDBmMDEw MCwgMHgwMDAwMDEwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX1JM QzFfUkJfV1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiAtCVNPQzE1 X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfVVRDTDFfUEFHRSksIDB4MDAwMDAzZmYsIDB4 MDAwMDAzYzANCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfQ0hJQ0tFTl9C SVRTKSwgMHhmZTkzMWYwNywgMHgwMjgzMWQwNywNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAs IDAsIG1tU0RNQTBfQ0xLX0NUUkwpLCAweGZmMDAwZmYwLCAweDNmMDAwMTAwLA0KPiArCVNPQzE1 X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9HRlhfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4 MDAwMDAxMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX0dGWF9SQl9X UFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDAsDQo+ICsJU09DMTVfUkVHX0VO VFJZKFNETUEwLCAwLCBtbVNETUEwX1BBR0VfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAx MDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1BBR0VfUkJfV1BUUl9Q T0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiArCVNPQzE1X1JFR19FTlRSWShT RE1BMCwgMCwgbW1TRE1BMF9QT1dFUl9DTlRMKSwgMHgwMDNmZjAwNiwgMHgwMDAzYzAwMCwNCj4g KwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMF9JQl9DTlRMKSwgMHg4MDBm MDEwMCwgMHgwMDAwMDEwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBf UkxDMF9SQl9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDAsDQo+ICsJU09D MTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1JMQzFfSUJfQ05UTCksIDB4ODAwZjAxMDAs IDB4MDAwMDAxMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1JMQzFf UkJfV1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiArCVNPQzE1X1JF R19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9VVENMMV9QQUdFKSwgMHgwMDAwMDNmZiwgMHgwMDAw MDNjMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfQ0hJQ0tFTl9CSVRT KSwgMHhmZTkzMWYwNywgMHgwMjgzMWYwNywNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAs IG1tU0RNQTFfQ0xLX0NUUkwpLCAweGZmZmZmZmZmLCAweDNmMDAwMTAwLA0KPiArCVNPQzE1X1JF R19FTlRSWShTRE1BMSwgMCwgbW1TRE1BMV9HRlhfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAw MDAxMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNETUExX0dGWF9SQl9XUFRS X1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZ KFNETUExLCAwLCBtbVNETUExX1BBR0VfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4MDAwMDAxMDAs DQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNETUExX1BBR0VfUkJfV1BUUl9QT0xM X0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiArCVNPQzE1X1JFR19FTlRSWShTRE1B MSwgMCwgbW1TRE1BMV9QT1dFUl9DTlRMKSwgMHgwMDNmZjAwMCwgMHgwMDAzYzAwMCwNCj4gKwlT T0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfUkxDMF9JQl9DTlRMKSwgMHg4MDBmMDEw MCwgMHgwMDAwMDEwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfUkxD MF9SQl9XUFRSX1BPTExfQ05UTCksIDB4MDAwMGZmZjAsIDB4MDA0MDMwMDAsDQo+ICsJU09DMTVf UkVHX0VOVFJZKFNETUExLCAwLCBtbVNETUExX1JMQzFfSUJfQ05UTCksIDB4ODAwZjAxMDAsIDB4 MDAwMDAxMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUExLCAwLCBtbVNETUExX1JMQzFfUkJf V1BUUl9QT0xMX0NOVEwpLCAweDAwMDBmZmYwLCAweDAwNDAzMDAwLA0KPiArCVNPQzE1X1JFR19F TlRSWShTRE1BMSwgMCwgbW1TRE1BMV9VVENMMV9QQUdFKSwgMHgwMDAwMDNmZiwgDQo+ICsweDAw MDAwM2MwDQo+ICAgfTsNCj4gICANCj4gICBzdGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0aW5n c19zZG1hX3ZnMTBbXSA9IHsNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEw X0dCX0FERFJfQ09ORklHKSwgMHgwMDE4NzczZiwgMHgwMDEwNDAwMiwNCj4gLQlTT0MxNV9SRUdf T0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHX1JFQUQpLCAweDAwMTg3NzNm LCAweDAwMTA0MDAyLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTEsIDAsIG1tU0RNQTFfR0Jf QUREUl9DT05GSUcpLCAweDAwMTg3NzNmLCAweDAwMTA0MDAyLA0KPiAtCVNPQzE1X1JFR19PRkZT RVQoU0RNQTEsIDAsIG1tU0RNQTFfR0JfQUREUl9DT05GSUdfUkVBRCksIDB4MDAxODc3M2YsIDB4 MDAxMDQwMDINCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQUREUl9D T05GSUcpLCAweDAwMTg3NzNmLCAweDAwMTA0MDAyLA0KPiArCVNPQzE1X1JFR19FTlRSWShTRE1B MCwgMCwgbW1TRE1BMF9HQl9BRERSX0NPTkZJR19SRUFEKSwgMHgwMDE4NzczZiwgMHgwMDEwNDAw MiwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTEsIDAsIG1tU0RNQTFfR0JfQUREUl9DT05GSUcp LCAweDAwMTg3NzNmLCAweDAwMTA0MDAyLA0KPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMSwgMCwg bW1TRE1BMV9HQl9BRERSX0NPTkZJR19SRUFEKSwgMHgwMDE4NzczZiwgDQo+ICsweDAwMTA0MDAy DQo+ICAgfTsNCj4gICANCj4gICBzdGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0aW5nc19zZG1h XzRfMVtdID0NCj4gICB7DQo+IC0JU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9D SElDS0VOX0JJVFMpLCAweGZlOTMxZjA3LCAweDAyODMxZDA3LA0KPiAtCVNPQzE1X1JFR19PRkZT RVQoU0RNQTAsIDAsIG1tU0RNQTBfQ0xLX0NUUkwpLCAweGZmZmZmZmZmLCAweDNmMDAwMTAwLA0K PiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfR0ZYX0lCX0NOVEwpLCAweDgw MGYwMTExLCAweDAwMDAwMTAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RN QTBfR0ZYX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHhmZmZmZmZmNywgMHgwMDQwMzAwMCwNCj4gLQlT T0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX1BPV0VSX0NOVEwpLCAweGZjM2ZmZmZm LCAweDQwMDAwMDUxLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUkxD MF9JQl9DTlRMKSwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VU KFNETUEwLCAwLCBtbVNETUEwX1JMQzBfUkJfV1BUUl9QT0xMX0NOVEwpLCAweGZmZmZmZmY3LCAw eDAwNDAzMDAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfUkxDMV9J Ql9DTlRMKSwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNE TUEwLCAwLCBtbVNETUEwX1JMQzFfUkJfV1BUUl9QT0xMX0NOVEwpLCAweGZmZmZmZmY3LCAweDAw NDAzMDAwLA0KPiAtCVNPQzE1X1JFR19PRkZTRVQoU0RNQTAsIDAsIG1tU0RNQTBfVVRDTDFfUEFH RSksIDB4MDAwMDAzZmYsIDB4MDAwMDAzYzANCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAs IG1tU0RNQTBfQ0hJQ0tFTl9CSVRTKSwgMHhmZTkzMWYwNywgMHgwMjgzMWQwNywNCj4gKwlTT0Mx NV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfQ0xLX0NUUkwpLCAweGZmZmZmZmZmLCAweDNm MDAwMTAwLA0KPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1BMF9HRlhfSUJfQ05U TCksIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAw LCBtbVNETUEwX0dGWF9SQl9XUFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4MDA0MDMwMDAs DQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1BPV0VSX0NOVEwpLCAweGZj M2ZmZmZmLCAweDQwMDAwMDUxLA0KPiArCVNPQzE1X1JFR19FTlRSWShTRE1BMCwgMCwgbW1TRE1B MF9STEMwX0lCX0NOVEwpLCAweDgwMGYwMTExLCAweDAwMDAwMTAwLA0KPiArCVNPQzE1X1JFR19F TlRSWShTRE1BMCwgMCwgbW1TRE1BMF9STEMwX1JCX1dQVFJfUE9MTF9DTlRMKSwgMHhmZmZmZmZm NywgMHgwMDQwMzAwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfUkxD MV9JQl9DTlRMKSwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwNCj4gKwlTT0MxNV9SRUdfRU5UUlko U0RNQTAsIDAsIG1tU0RNQTBfUkxDMV9SQl9XUFRSX1BPTExfQ05UTCksIDB4ZmZmZmZmZjcsIDB4 MDA0MDMwMDAsDQo+ICsJU09DMTVfUkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1VUQ0wxX1BB R0UpLCAweDAwMDAwM2ZmLCANCj4gKzB4MDAwMDAzYzANCj4gICB9Ow0KPiAgIA0KPiAgIHN0YXRp YyBjb25zdCB1MzIgZ29sZGVuX3NldHRpbmdzX3NkbWFfcnYxW10gPQ0KPiAgIHsNCj4gLQlTT0Mx NV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHKSwgMHgwMDE4Nzcz ZiwgMHgwMDAwMDAwMiwNCj4gLQlTT0MxNV9SRUdfT0ZGU0VUKFNETUEwLCAwLCBtbVNETUEwX0dC X0FERFJfQ09ORklHX1JFQUQpLCAweDAwMTg3NzNmLCAweDAwMDAwMDAyDQo+ICsJU09DMTVfUkVH X0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX0dCX0FERFJfQ09ORklHKSwgMHgwMDE4NzczZiwgMHgw MDAwMDAwMiwNCj4gKwlTT0MxNV9SRUdfRU5UUlkoU0RNQTAsIDAsIG1tU0RNQTBfR0JfQUREUl9D T05GSUdfUkVBRCksIDB4MDAxODc3M2YsIA0KPiArMHgwMDAwMDAwMg0KPiAgIH07DQo+ICAgDQo+ ICAgI2RlZmluZSBzZG1hX3Y0XzBfZ2V0X3JlZ19vZmZzZXQoaW5zdCwgb2Zmc2V0KSAoIDAgPT0g aW5zdCA/IFwgQEAgDQo+IC0xMTUsMTggKzExNSwxOCBAQCBzdGF0aWMgdm9pZCBzZG1hX3Y0XzBf aW5pdF9nb2xkZW5fcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiAgIHsN Cj4gICAJc3dpdGNoIChhZGV2LT5hc2ljX3R5cGUpIHsNCj4gICAJY2FzZSBDSElQX1ZFR0ExMDoN Cj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gKwkJc29jMTVf cHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiAgIAkJCQkJCSBnb2xkZW5fc2V0dGlu Z3Nfc2RtYV80LA0KPiAgIAkJCQkJCSBBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19zZG1hXzQp KTsNCj4gLQkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gKwkJc29j MTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiAgIAkJCQkJCSBnb2xkZW5fc2V0 dGluZ3Nfc2RtYV92ZzEwLA0KPiAgIAkJCQkJCSBBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19z ZG1hX3ZnMTApKTsNCj4gICAJCWJyZWFrOw0KPiAgIAljYXNlIENISVBfUkFWRU46DQo+IC0JCWFt ZGdwdV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsDQo+ICsJCXNvYzE1X3Byb2dyYW1f cmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gICAJCQkJCQkgZ29sZGVuX3NldHRpbmdzX3NkbWFf NF8xLA0KPiAgIAkJCQkJCSBBUlJBWV9TSVpFKGdvbGRlbl9zZXR0aW5nc19zZG1hXzRfMSkpOw0K PiAtCQlhbWRncHVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiArCQlzb2MxNV9w cm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsDQo+ICAgCQkJCQkJIGdvbGRlbl9zZXR0aW5n c19zZG1hX3J2MSwNCj4gICAJCQkJCQkgQVJSQVlfU0laRShnb2xkZW5fc2V0dGluZ3Nfc2RtYV9y djEpKTsNCj4gICAJCWJyZWFrOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvc29jMTUuYyANCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5jDQo+ IGluZGV4IDdjODhiY2IuLjc3OWM2NzEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NvYzE1LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29j MTUuYw0KPiBAQCAtMzMyLDI1ICszMzIsMzQgQEAgc3RhdGljIGJvb2wgc29jMTVfcmVhZF9iaW9z X2Zyb21fcm9tKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPiAgIAlyZXR1cm4gdHJ1ZTsN Cj4gICB9DQo+ICAgDQo+IC1zdGF0aWMgc3RydWN0IGFtZGdwdV9hbGxvd2VkX3JlZ2lzdGVyX2Vu dHJ5IHNvYzE1X2FsbG93ZWRfcmVhZF9yZWdpc3RlcnNbXSA9IHsNCj4gLQl7IFNPQzE1X1JFR19P RkZTRVQoR0MsIDAsIG1tR1JCTV9TVEFUVVMpfSwNCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0Ms IDAsIG1tR1JCTV9TVEFUVVMyKX0sDQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdS Qk1fU1RBVFVTX1NFMCl9LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HUkJNX1NU QVRVU19TRTEpfSwNCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tR1JCTV9TVEFUVVNf U0UyKX0sDQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NFMyl9 LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChTRE1BMCwgMCwgbW1TRE1BMF9TVEFUVVNfUkVHKX0s DQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKFNETUExLCAwLCBtbVNETUExX1NUQVRVU19SRUcpfSwN Cj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1BfU1RBVCl9LA0KPiAtCXsgU09DMTVf UkVHX09GRlNFVChHQywgMCwgbW1DUF9TVEFMTEVEX1NUQVQxKX0sDQo+IC0JeyBTT0MxNV9SRUdf T0ZGU0VUKEdDLCAwLCBtbUNQX1NUQUxMRURfU1RBVDIpfSwNCj4gLQl7IFNPQzE1X1JFR19PRkZT RVQoR0MsIDAsIG1tQ1BfU1RBTExFRF9TVEFUMyl9LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChH QywgMCwgbW1DUF9DUEZfQlVTWV9TVEFUKX0sDQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAw LCBtbUNQX0NQRl9TVEFMTEVEX1NUQVQxKX0sDQo+IC0JeyBTT0MxNV9SRUdfT0ZGU0VUKEdDLCAw LCBtbUNQX0NQRl9TVEFUVVMpfSwNCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1Bf Q1BDX1NUQUxMRURfU1RBVDEpfSwNCj4gLQl7IFNPQzE1X1JFR19PRkZTRVQoR0MsIDAsIG1tQ1Bf Q1BDX1NUQVRVUyl9LA0KPiAtCXsgU09DMTVfUkVHX09GRlNFVChHQywgMCwgbW1HQl9BRERSX0NP TkZJRyl9LA0KPiArc3RydWN0IHNvYzE1X2FsbG93ZWRfcmVnaXN0ZXJfZW50cnkgew0KPiArCXVp bnQzMl90IGh3aXA7DQo+ICsJdWludDMyX3QgaW5zdDsNCj4gKwl1aW50MzJfdCBzZWc7DQo+ICsJ dWludDMyX3QgcmVnX29mZnNldDsNCj4gKwlib29sIGdyYm1faW5kZXhlZDsNCj4gK307DQo+ICsN Cj4gKw0KPiArc3RhdGljIHN0cnVjdCBzb2MxNV9hbGxvd2VkX3JlZ2lzdGVyX2VudHJ5IHNvYzE1 X2FsbG93ZWRfcmVhZF9yZWdpc3RlcnNbXSA9IHsNCj4gKwl7IFNPQzE1X1JFR19FTlRSWShHQywg MCwgbW1HUkJNX1NUQVRVUyl9LA0KPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1f U1RBVFVTMil9LA0KPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NF MCl9LA0KPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NFMSl9LA0K PiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NFMil9LA0KPiArCXsg U09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUdSQk1fU1RBVFVTX1NFMyl9LA0KPiArCXsgU09DMTVf UkVHX0VOVFJZKFNETUEwLCAwLCBtbVNETUEwX1NUQVRVU19SRUcpfSwNCj4gKwl7IFNPQzE1X1JF R19FTlRSWShTRE1BMSwgMCwgbW1TRE1BMV9TVEFUVVNfUkVHKX0sDQo+ICsJeyBTT0MxNV9SRUdf RU5UUlkoR0MsIDAsIG1tQ1BfU1RBVCl9LA0KPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBt bUNQX1NUQUxMRURfU1RBVDEpfSwNCj4gKwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUF9T VEFMTEVEX1NUQVQyKX0sDQo+ICsJeyBTT0MxNV9SRUdfRU5UUlkoR0MsIDAsIG1tQ1BfU1RBTExF RF9TVEFUMyl9LA0KPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX0NQRl9CVVNZX1NU QVQpfSwNCj4gKwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUF9DUEZfU1RBTExFRF9TVEFU MSl9LA0KPiArCXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX0NQRl9TVEFUVVMpfSwNCj4g Kwl7IFNPQzE1X1JFR19FTlRSWShHQywgMCwgbW1DUF9DUENfU1RBTExFRF9TVEFUMSl9LA0KPiAr CXsgU09DMTVfUkVHX0VOVFJZKEdDLCAwLCBtbUNQX0NQQ19TVEFUVVMpfSwNCj4gKwl7IFNPQzE1 X1JFR19FTlRSWShHQywgMCwgbW1HQl9BRERSX0NPTkZJRyl9LA0KPiAgIH07DQo+ICAgDQo+ICAg c3RhdGljIHVpbnQzMl90IHNvYzE1X3JlYWRfaW5kZXhlZF9yZWdpc3RlcihzdHJ1Y3QgYW1kZ3B1 X2RldmljZSANCj4gKmFkZXYsIHUzMiBzZV9udW0sIEBAIC0zOTAsMTAgKzM5OSwxMyBAQCBzdGF0 aWMgaW50IHNvYzE1X3JlYWRfcmVnaXN0ZXIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHUz MiBzZV9udW0sDQo+ICAgCQkJICAgIHUzMiBzaF9udW0sIHUzMiByZWdfb2Zmc2V0LCB1MzIgKnZh bHVlKQ0KPiAgIHsNCj4gICAJdWludDMyX3QgaTsNCj4gKwlzdHJ1Y3Qgc29jMTVfYWxsb3dlZF9y ZWdpc3Rlcl9lbnRyeSAgKmVuOw0KPiAgIA0KPiAgIAkqdmFsdWUgPSAwOw0KPiAgIAlmb3IgKGkg PSAwOyBpIDwgQVJSQVlfU0laRShzb2MxNV9hbGxvd2VkX3JlYWRfcmVnaXN0ZXJzKTsgaSsrKSB7 DQo+IC0JCWlmIChyZWdfb2Zmc2V0ICE9IHNvYzE1X2FsbG93ZWRfcmVhZF9yZWdpc3RlcnNbaV0u cmVnX29mZnNldCkNCj4gKwkJZW4gPSAmc29jMTVfYWxsb3dlZF9yZWFkX3JlZ2lzdGVyc1tpXTsN Cj4gKwkJaWYgKHJlZ19vZmZzZXQgIT0gKGFkZXYtPnJlZ19vZmZzZXRbZW4tPmh3aXBdW2VuLT5p bnN0XVtlbi0+c2VnXQ0KPiArCQkJCQkrIGVuLT5yZWdfb2Zmc2V0KSkNCj4gICAJCQljb250aW51 ZTsNCj4gICANCj4gICAJCSp2YWx1ZSA9IHNvYzE1X2dldF9yZWdpc3Rlcl92YWx1ZShhZGV2LCBA QCAtNDA0LDYgKzQxNiw0NyBAQCANCj4gc3RhdGljIGludCBzb2MxNV9yZWFkX3JlZ2lzdGVyKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1MzIgc2VfbnVtLA0KPiAgIAlyZXR1cm4gLUVJTlZB TDsNCj4gICB9DQo+ICAgDQo+ICsNCj4gKy8qKg0KPiArICogc29jMTVfcHJvZ3JhbV9yZWdpc3Rl cl9zZXF1ZW5jZSAtIHByb2dyYW0gYW4gYXJyYXkgb2YgcmVnaXN0ZXJzLg0KPiArICoNCj4gKyAq IEBhZGV2OiBhbWRncHVfZGV2aWNlIHBvaW50ZXINCj4gKyAqIEByZWdzOiBwb2ludGVyIHRvIHRo ZSByZWdpc3RlciBhcnJheQ0KPiArICogQGFycmF5X3NpemU6IHNpemUgb2YgdGhlIHJlZ2lzdGVy IGFycmF5DQo+ICsgKg0KPiArICogUHJvZ3JhbXMgYW4gYXJyYXkgb3IgcmVnaXN0ZXJzIHdpdGgg YW5kIGFuZCBvciBtYXNrcy4NCj4gKyAqIFRoaXMgaXMgYSBoZWxwZXIgZm9yIHNldHRpbmcgZ29s ZGVuIHJlZ2lzdGVycy4NCj4gKyAqLw0KPiArDQo+ICt2b2lkIHNvYzE1X3Byb2dyYW1fcmVnaXN0 ZXJfc2VxdWVuY2Uoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ICsJCQkJCSAgICAgY29u c3QgdTMyICpyZWdzLA0KPiArCQkJCQkgICAgIGNvbnN0IHUzMiBhcnJheV9zaXplKQ0KPiArew0K PiArCXUzMiB0bXAsIHJlZywgYW5kX21hc2ssIG9yX21hc2s7DQo+ICsJaW50IGk7DQo+ICsNCj4g KwlpZiAoYXJyYXlfc2l6ZSAlIDYpDQo+ICsJCXJldHVybjsNCj4gKw0KPiArCWZvciAoaSA9IDA7 IGkgPCBhcnJheV9zaXplOyBpICs9Nikgew0KPiArCQlyZWcgPSAgYWRldi0+cmVnX29mZnNldFty ZWdzW2kgKyAwXV1bcmVnc1tpICsgMV1dW3JlZ3NbaSArIDJdXSArDQo+ICsJCQlyZWdzW2kgKyAz XTsNCj4gKwkJYW5kX21hc2sgPSByZWdzW2kgKyA0XTsNCj4gKwkJb3JfbWFzayA9IHJlZ3NbaSAr IDVdOw0KPiArDQo+ICsJCWlmIChhbmRfbWFzayA9PSAweGZmZmZmZmZmKSB7DQo+ICsJCQl0bXAg PSBvcl9tYXNrOw0KPiArCQl9IGVsc2Ugew0KPiArCQkJdG1wID0gUlJFRzMyKHJlZyk7DQo+ICsJ CQl0bXAgJj0gfmFuZF9tYXNrOw0KPiArCQkJdG1wIHw9IG9yX21hc2s7DQo+ICsJCX0NCj4gKwkJ V1JFRzMyKHJlZywgdG1wKTsNCj4gKwl9DQo+ICsNCj4gK30NCj4gKw0KPiArDQo+ICAgc3RhdGlj IGludCBzb2MxNV9hc2ljX3Jlc2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQ0KPiAgIHsN Cj4gICAJdTMyIGk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z b2MxNS5oIA0KPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmgNCj4gaW5kZXgg YzM0NDk2Zi4uNDg4MjMwNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvc29jMTUuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5oDQo+ IEBAIC0zMyw2ICszMywxMCBAQCB2b2lkIHNvYzE1X2dyYm1fc2VsZWN0KHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LA0KPiAgIAkJICAgIHUzMiBtZSwgdTMyIHBpcGUsIHUzMiBxdWV1ZSwgdTMy IHZtaWQpOw0KPiAgIGludCBzb2MxNV9zZXRfaXBfYmxvY2tzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KTsNCj4gICANCj4gK3ZvaWQgc29jMTVfcHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4gKwkJCQkJICAgICBjb25zdCB1MzIgKnJlZ2lz dGVycywNCj4gKwkJCQkJICAgICBjb25zdCB1MzIgYXJyYXlfc2l6ZSk7DQo+ICsNCj4gICBpbnQg dmVnYTEwX3JlZ19iYXNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOw0KPiAgIA0K PiAgICNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29j MTVfY29tbW9uLmggDQo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTVfY29tbW9u LmgNCj4gaW5kZXggNjJhNmUyMS4uN2Y3MzEyNSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvc29jMTVfY29tbW9uLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvc29jMTVfY29tbW9uLmgNCj4gQEAgLTUzLDYgKzUzLDkgQEAgc3RydWN0IG5iaW9f cGNpZV9pbmRleF9kYXRhIHsNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICgzID09IHJlZyMjX0JBU0VfSURYID8gaXAjI19CQVNFX19J TlNUIyNpbnN0IyNfU0VHMyArIHJlZyA6IFwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCj4gKGlwIyNfQkFTRV9fSU5TVCMj aW5zdCMjX1NFRzQgKyByZWcpKSkpKQ0KPiAgIA0KPiArI2RlZmluZSBTT0MxNV9SRUdfRU5UUlko aXAsIGluc3QsIHJlZykJaXAjI19IV0lQLCBpbnN0LCByZWcjI19CQVNFX0lEWCwgcmVnDQo+ICsN Cj4gKw0KPiAgICNkZWZpbmUgV1JFRzMyX0ZJRUxEMTUoaXAsIGlkeCwgcmVnLCBmaWVsZCwgdmFs KQlcDQo+ICAgCVdSRUczMihhZGV2LT5yZWdfb2Zmc2V0W2lwIyNfSFdJUF1baWR4XVttbSMjcmVn IyNfQkFTRV9JRFhdICsgbW0jI3JlZywJXA0KPiAgIAkoUlJFRzMyKGFkZXYtPnJlZ19vZmZzZXRb aXAjI19IV0lQXVtpZHhdW21tIyNyZWcjI19CQVNFX0lEWF0gKyBtbSMjcmVnKQlcDQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjdfMC5jIA0KPiBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMNCj4gaW5kZXggNjYwZmE0MS4uNjgyM2M3 YiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAuYw0K PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjdfMC5jDQo+IEBAIC0xNjgx LDcgKzE2ODEsOCBAQCBzdGF0aWMgaW50IHV2ZF92N18wX3NldF9jbG9ja2dhdGluZ19zdGF0ZSh2 b2lkICpoYW5kbGUsDQo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfcmluZ19mdW5jcyB1 dmRfdjdfMF9yaW5nX3ZtX2Z1bmNzID0gew0KPiAgIAkudHlwZSA9IEFNREdQVV9SSU5HX1RZUEVf VVZELA0KPiAgIAkuYWxpZ25fbWFzayA9IDB4ZiwNCj4gLQkubm9wID0gUEFDS0VUMChTT0MxNV9S RUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTk9fT1ApLCAwKSwNCj4gKwkvKkZpeCBtZSAgaWYgVVZE X0hXSVAgYmFzZSBvciAgbW1VVkRfTk9fT1BfQkFTRV9JRFggY2hhbmdlZCBpbiBmdXR1cmUgYXNp YyAqLw0KPiArCS5ub3AgPSBQQUNLRVQwKCgweDdlMDAgKyBtbVVWRF9OT19PUCksIDApLA0KPiAg IAkuc3VwcG9ydF82NGJpdF9wdHJzID0gZmFsc2UsDQo+ICAgCS52bWh1YiA9IEFNREdQVV9NTUhV QiwNCj4gICAJLmdldF9ycHRyID0gdXZkX3Y3XzBfcmluZ19nZXRfcnB0ciwgZGlmZiAtLWdpdCAN Cj4gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jIA0KPiBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMNCj4gaW5kZXggZTQ2NzNmNy4uZjkzY2EyMSAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYw0KPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jDQo+IEBAIC0xMTAwLDcg KzExMDAsNyBAQCBzdGF0aWMgaW50IHZjbl92MV8wX3Byb2Nlc3NfaW50ZXJydXB0KHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LA0KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X3Jpbmdf ZnVuY3MgdmNuX3YxXzBfZGVjX3Jpbmdfdm1fZnVuY3MgPSB7DQo+ICAgCS50eXBlID0gQU1ER1BV X1JJTkdfVFlQRV9WQ05fREVDLA0KPiAgIAkuYWxpZ25fbWFzayA9IDB4ZiwNCj4gLQkubm9wID0g UEFDS0VUMChTT0MxNV9SRUdfT0ZGU0VUKFVWRCwgMCwgbW1VVkRfTk9fT1ApLCAwKSwNCj4gKwku bm9wID0gUEFDS0VUMCgweDgxZmYsIDApLA0KPiAgIAkuc3VwcG9ydF82NGJpdF9wdHJzID0gZmFs c2UsDQo+ICAgCS52bWh1YiA9IEFNREdQVV9NTUhVQiwNCj4gICAJLmdldF9ycHRyID0gdmNuX3Yx XzBfZGVjX3JpbmdfZ2V0X3JwdHIsDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v YW1kLWdmeAo=