From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yu, Xiangliang" Subject: RE: [V2 06/11] drm/amdgpu/virt: implement VI virt operation interfaces Date: Tue, 10 Jan 2017 13:20:51 +0000 Message-ID: References: <1484042450-22987-1-git-send-email-Xiangliang.Yu@amd.com> <1484042450-22987-7-git-send-email-Xiangliang.Yu@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: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBDaHJpc3RpYW4gS8O2bmlnIFtt YWlsdG86ZGVhdGhzaW1wbGVAdm9kYWZvbmUuZGVdDQo+IFNlbnQ6IFR1ZXNkYXksIEphbnVhcnkg MTAsIDIwMTcgOToxNiBQTQ0KPiBUbzogWXUsIFhpYW5nbGlhbmcgPFhpYW5nbGlhbmcuWXVAYW1k LmNvbT47IGFtZC0NCj4gZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiBTdWJqZWN0OiBSZTog W1YyIDA2LzExXSBkcm0vYW1kZ3B1L3ZpcnQ6IGltcGxlbWVudCBWSSB2aXJ0IG9wZXJhdGlvbg0K PiBpbnRlcmZhY2VzDQo+IA0KPiBVbnJlbGF0ZWQgdG8gdGhlIHBhdGNoLCBidXQgd2hhdCBlZGl0 b3IgYW5kIHNldHRpbmdzIGRvIHlvdSB1c2U/DQoNClZpbQ0KDQo+IA0KPiBTZWUgdGhpcyBjb2Rl IGZvciBleGFtcGxlDQo+ID4gKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgTUFJTEJPWF9DT05U Uk9MLA0KPiA+ICsJCQkJIFRSTl9NU0dfVkFMSUQsIHZhbCA/IDEgOiAwKTsNCj4gDQo+IFRoZSBp bmRlbnRhdGlvbiBzZWVtcyB0byBiZSBpbmNvcnJlY3QuDQoNCkluIG15IHBsYXRmb3JtLCB0aGVy ZSBpcyBubyBwcm9ibGVtLiANCg0KPiANCj4gTm90IG11Y2ggb2YgYSBwcm9ibGVtLCBidXQgaWYg d2UgYWRkIHRoaXMgbGlrZSBpdCBpcyBhbnlib2R5IGVsc2UgZWRpdGluZyB0aGUNCj4gZmlsZSBj b3VsZCBtZXNzIHVwIHRoZSBpbmRlbnRhdGlvbiB3aGVuIHRoZSBlZGl0b3IgZG9lcyB0aGF0IGRp ZmZlcmVudGx5Lg0KPiANCj4gUmVnYXJkcywNCj4gQ2hyaXN0aWFuLg0KPiANCj4gQW0gMTAuMDEu MjAxNyB1bSAxMTowMCBzY2hyaWViIFhpYW5nbGlhbmcgWXU6DQo+ID4gVkkgaGFzIGFzaWMgc3Bl Y2lmaWMgdmlydCBzdXBwb3J0LCB3aGljaCBpbmNsdWRpbmcgbWFpbGJveCBhbmQgZ29sZGVuDQo+ ID4gcmVnaXN0ZXJzIGluaXQuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBYaWFuZ2xpYW5nIFl1 IDxYaWFuZ2xpYW5nLll1QGFtZC5jb20+DQo+ID4gLS0tDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9NYWtlZmlsZSAgICAgIHwgICAyICstDQo+ID4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdmlydC5oIHwgICAzICsNCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L214Z3B1X3ZpLmMgICAgfCA1OTINCj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuaCAgICB8 ICA1NSArKysNCj4gPiAgIDQgZmlsZXMgY2hhbmdlZCwgNjUxIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkNCj4gPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9teGdwdV92aS5jDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvbXhncHVfdmkuaA0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9NYWtlZmlsZQ0KPiA+IGluZGV4IDBiOGU0NzAuLjM4OGU3YjAgMTAwNjQ0DQo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUNCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQ0KPiA+IEBAIC00MCw3ICs0MCw3IEBAIGFtZGdwdS0k KENPTkZJR19EUk1fQU1ER1BVX0NJSykrPSBjaWsubw0KPiBjaWtfaWgubyBrdl9zbWMubyBrdl9k cG0ubyBcDQo+ID4gICBhbWRncHUtJChDT05GSUdfRFJNX0FNREdQVV9TSSkrPSBzaS5vIGdtY192 Nl8wLm8gZ2Z4X3Y2XzAubw0KPiBzaV9paC5vDQo+ID4gc2lfZG1hLm8gZGNlX3Y2XzAubyBzaV9k cG0ubyBzaV9zbWMubw0KPiA+DQo+ID4gICBhbWRncHUteSArPSBcDQo+ID4gLQl2aS5vDQo+ID4g Kwl2aS5vIG14Z3B1X3ZpLm8NCj4gPg0KPiA+ICAgIyBhZGQgR01DIGJsb2NrDQo+ID4gICBhbWRn cHUteSArPSBcDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92aXJ0LmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0 LmgNCj4gPiBpbmRleCAzZjhmYzBmLi42MTE2NzZiIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmgNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdmlydC5oDQo+ID4gQEAgLTQ1LDYgKzQ1LDkgQEAgc3RydWN0 IGFtZGdwdV92aXJ0IHsNCj4gPiAgIAl1aW50MzJfdAkJdmFsX29mZnM7DQo+ID4gICAJc3RydWN0 IG11dGV4CQlsb2NrOw0KPiA+DQo+ID4gKwlzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMJCWFja19pcnE7 DQo+ID4gKwlzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMJCXJjdl9pcnE7DQo+ID4gKwlzdHJ1Y3QgZGVs YXllZF93b3JrCQlmbHJfd29yazsNCj4gPiAgIAljb25zdCBzdHJ1Y3QgYW1kZ3B1X3ZpcnRfb3Bz CSpvcHM7DQo+ID4gICB9Ow0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L214Z3B1X3ZpLmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214 Z3B1X3ZpLmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLjdk NDQ2NjMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvbXhncHVfdmkuYw0KPiA+IEBAIC0wLDAgKzEsNTkyIEBADQo+ID4gKy8qDQo+ID4gKyAq IENvcHlyaWdodCAyMDE3IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4NCj4gPiArICoNCj4g PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24NCj4gPiArb2J0YWluaW5nIGENCj4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQ0KPiA+ICsiU29mdHdhcmUi KSwNCj4gPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwg aW5jbHVkaW5nIHdpdGhvdXQNCj4gPiArbGltaXRhdGlvbg0KPiA+ICsgKiB0aGUgcmlnaHRzIHRv IHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwNCj4gPiArc3Vi bGljZW5zZSwNCj4gPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20NCj4gPiArdGhlDQo+ID4gKyAqIFNvZnR3YXJlIGlz IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 DQo+ID4gKyAqDQo+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIHNoYWxsIGJlDQo+ID4gK2luY2x1ZGVkIGluDQo+ID4gKyAqIGFsbCBj b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLg0KPiA+ICsgKg0K PiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5U WSBPRiBBTlkNCj4gS0lORCwNCj4gPiArRVhQUkVTUyBPUg0KPiA+ICsgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GDQo+ID4gK01FUkNIQU5U QUJJTElUWSwNCj4gPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gIElODQo+IE5PIEVWRU5UDQo+ID4gK1NIQUxMDQo+ID4gKyAqIFRIRSBD T1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwN Cj4gPiArREFNQUdFUyBPUg0KPiA+ICsgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SDQo+ID4gK09USEVSV0lTRSwNCj4gPiArICogQVJJ U0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUg0K PiBUSEUgVVNFDQo+ID4gK09SDQo+ID4gKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FS RS4NCj4gPiArICoNCj4gPiArICogQXV0aG9yczogWGlhbmdsaWFuZy5ZdUBhbWQuY29tDQo+ID4g KyAqLw0KPiA+ICsNCj4gPiArI2luY2x1ZGUgImFtZGdwdS5oIg0KPiA+ICsjaW5jbHVkZSAidmku aCINCj4gPiArI2luY2x1ZGUgImJpZi9iaWZfNV8wX2QuaCINCj4gPiArI2luY2x1ZGUgImJpZi9i aWZfNV8wX3NoX21hc2suaCINCj4gPiArI2luY2x1ZGUgInZpZC5oIg0KPiA+ICsjaW5jbHVkZSAi Z2NhL2dmeF84XzBfZC5oIg0KPiA+ICsjaW5jbHVkZSAiZ2NhL2dmeF84XzBfc2hfbWFzay5oIg0K PiA+ICsjaW5jbHVkZSAiZ21jX3Y4XzAuaCINCj4gPiArI2luY2x1ZGUgImdmeF92OF8wLmgiDQo+ ID4gKyNpbmNsdWRlICJzZG1hX3YzXzAuaCINCj4gPiArI2luY2x1ZGUgInRvbmdhX2loLmgiDQo+ ID4gKyNpbmNsdWRlICJnbWMvZ21jXzhfMl9kLmgiDQo+ID4gKyNpbmNsdWRlICJnbWMvZ21jXzhf Ml9zaF9tYXNrLmgiDQo+ID4gKyNpbmNsdWRlICJvc3Mvb3NzXzNfMF9kLmgiDQo+ID4gKyNpbmNs dWRlICJvc3Mvb3NzXzNfMF9zaF9tYXNrLmgiDQo+ID4gKyNpbmNsdWRlICJnY2EvZ2Z4XzhfMF9z aF9tYXNrLmgiDQo+ID4gKyNpbmNsdWRlICJkY2UvZGNlXzEwXzBfZC5oIg0KPiA+ICsjaW5jbHVk ZSAiZGNlL2RjZV8xMF8wX3NoX21hc2suaCINCj4gPiArI2luY2x1ZGUgInNtdS9zbXVfN18xXzNf ZC5oIg0KPiA+ICsjaW5jbHVkZSAibXhncHVfdmkuaCINCj4gPiArDQo+ID4gKy8qIFZJIGdvbGRl biBzZXR0aW5nICovDQo+ID4gK3N0YXRpYyBjb25zdCB1MzIgeGdwdV9maWppX21nY2dfY2djZ19p bml0W10gPSB7DQo+ID4gKwltbVJMQ19DR1RUX01HQ0dfT1ZFUlJJREUsIDB4ZmZmZmZmZmYsIDB4 ZmZmZmZmZmYsDQo+ID4gKwltbUdSQk1fR0ZYX0lOREVYLCAweGZmZmZmZmZmLCAweGUwMDAwMDAw LA0KPiA+ICsJbW1DQl9DR1RUX1NDTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4g PiArCW1tQ0dUVF9CQ0lfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwlt bUNHVFRfQ1BfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbUNHVFRf Q1BDX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX0NQRl9D TEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHg0MDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9EUk1fQ0xLX0NU UkwwLCAweGZmZmZmZmZmLCAweDAwNjAwMTAwLA0KPiA+ICsJbW1DR1RUX0dEU19DTEtfQ1RSTCwg MHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9JQV9DTEtfQ1RSTCwgMHhmZmZm ZmZmZiwgMHgwNjAwMDEwMCwNCj4gPiArCW1tQ0dUVF9QQV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwg MHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9XRF9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwNjAw MDEwMCwNCj4gPiArCW1tQ0dUVF9QQ19DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwN Cj4gPiArCW1tQ0dUVF9STENfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4g KwltbUNHVFRfU0NfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbUNH VFRfU1BJX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX1NR X0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX1NRR19DTEtf Q1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDAs IDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbUNHVFRfU1hfQ0xLX0NUUkwxLCAweGZm ZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX1NYX0NMS19DVFJMMiwgMHhmZmZmZmZm ZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDMsIDB4ZmZmZmZmZmYsIDB4 MDAwMDAxMDAsDQo+ID4gKwltbUNHVFRfU1hfQ0xLX0NUUkw0LCAweGZmZmZmZmZmLCAweDAwMDAw MTAwLA0KPiA+ICsJbW1DR1RUX1RDSV9DTEtfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwN Cj4gPiArCW1tQ0dUVF9UQ1BfQ0xLX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4g KwltbUNHVFRfVkdUX0NMS19DVFJMLCAweGZmZmZmZmZmLCAweDA2MDAwMTAwLA0KPiA+ICsJbW1E Ql9DR1RUX0NMS19DVFJMXzAsIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbVRBX0NH VFRfQ1RSTCwgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tVENBX0NHVFRfU0NMS19D VFJMLCAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1UQ0NfQ0dUVF9TQ0xLX0NUUkws IDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbVREX0NHVFRfQ1RSTCwgMHhmZmZmZmZm ZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tR1JCTV9HRlhfSU5ERVgsIDB4ZmZmZmZmZmYsIDB4ZTAw MDAwMDAsDQo+ID4gKwltbUNHVFNfU01fQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4OTZlMDAyMDAs DQo+ID4gKwltbUNQX1JCX1dQVFJfUE9MTF9DTlRMLCAweGZmZmZmZmZmLCAweDAwOTAwMTAwLA0K PiA+ICsJbW1STENfQ0dDR19DR0xTX0NUUkwsIDB4ZmZmZmZmZmYsIDB4MDAyMDAwM2MsDQo+ID4g KwltbVBDSUVfSU5ERVgsIDB4ZmZmZmZmZmYsIDB4MDE0MDAwMWMsDQo+ID4gKwltbVBDSUVfREFU QSwgMHgwMDBmMDAwMCwgMHgwMDAwMDAwMCwNCj4gPiArCW1tU01DX0lORF9JTkRFWF80LCAweGZm ZmZmZmZmLCAweEMwNjAwMDBDLA0KPiA+ICsJbW1TTUNfSU5EX0RBVEFfNCwgMHhjMDAwMGZmZiwg MHgwMDAwMDEwMCwNCj4gPiArCW1tWERNQV9DTE9DS19HQVRJTkdfQ05UTCwgMHhmZmZmZmZmZiwg MHgwMDAwMDEwMCwNCj4gPiArCW1tWERNQV9NRU1fUE9XRVJfQ05UTCwgMHgwMDAwMDEwMSwgMHgw MDAwMDAwMCwNCj4gPiArCW1tTUNfTUVNX1BPV0VSX0xTLCAweGZmZmZmZmZmLCAweDAwMDAwMTA0 LA0KPiA+ICsJbW1DR1RUX0RSTV9DTEtfQ1RSTDAsIDB4ZmYwMDBmZmYsIDB4MDAwMDAxMDAsDQo+ ID4gKwltbUhEUF9YRFBfQ0dUVF9CTEtfQ1RSTCwgMHhjMDAwMGZmZiwgMHgwMDAwMDEwNCwNCj4g PiArCW1tQ1BfTUVNX1NMUF9DTlRMLCAweDAwMDAwMDAxLCAweDAwMDAwMDAxLA0KPiA+ICsJbW1T RE1BMF9DTEtfQ1RSTCwgMHhmZjAwMGZmMCwgMHgwMDAwMDEwMCwNCj4gPiArCW1tU0RNQTFfQ0xL X0NUUkwsIDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAsIH07DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29u c3QgdTMyIHhncHVfZmlqaV9nb2xkZW5fc2V0dGluZ3NfYTEwW10gPSB7DQo+ID4gKwltbUNCX0hX X0NPTlRST0xfMywgMHgwMDAwMDFmZiwgMHgwMDAwMDA0MCwNCj4gPiArCW1tREJfREVCVUcyLCAw eGYwMGZmZmZmLCAweDAwMDAwNDAwLA0KPiA+ICsJbW1EQ0lfQ0xLX0NOVEwsIDB4MDAwMDAwODAs IDB4MDAwMDAwMDAsDQo+ID4gKwltbUZCQ19ERUJVR19DT01QLCAweDAwMDAwMGYwLCAweDAwMDAw MDcwLA0KPiA+ICsJbW1GQkNfTUlTQywgMHgxZjMxMWZmZiwgMHgxMjMwMDAwMCwNCj4gPiArCW1t SERNSV9DT05UUk9MLCAweDMxMDAwMTExLCAweDAwMDAwMDExLA0KPiA+ICsJbW1QQV9TQ19FTkhB TkNFLCAweGZmZmZmZmZmLCAweDIwMDAwMDAxLA0KPiA+ICsJbW1QQV9TQ19MSU5FX1NUSVBQTEVf U1RBVEUsIDB4MDAwMGZmMGYsIDB4MDAwMDAwMDAsDQo+ID4gKwltbVNETUEwX0NISUNLRU5fQklU UywgMHhmYzkxMDAwNywgMHgwMDgxMDAwNywNCj4gPiArCW1tU0RNQTBfR0ZYX0lCX0NOVEwsIDB4 ODAwZjAxMTEsIDB4MDAwMDAxMDAsDQo+ID4gKwltbVNETUEwX1JMQzBfSUJfQ05UTCwgMHg4MDBm MDExMSwgMHgwMDAwMDEwMCwNCj4gPiArCW1tU0RNQTBfUkxDMV9JQl9DTlRMLCAweDgwMGYwMTEx LCAweDAwMDAwMTAwLA0KPiA+ICsJbW1TRE1BMV9DSElDS0VOX0JJVFMsIDB4ZmM5MTAwMDcsIDB4 MDA4MTAwMDcsDQo+ID4gKwltbVNETUExX0dGWF9JQl9DTlRMLCAweDgwMGYwMTExLCAweDAwMDAw MTAwLA0KPiA+ICsJbW1TRE1BMV9STEMwX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAs DQo+ID4gKwltbVNETUExX1JMQzFfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwNCj4g PiArCW1tU1FfUkFORE9NX1dBVkVfUFJJLCAweDAwMWZmZmZmLCAweDAwMDAwNmZkLA0KPiA+ICsJ bW1UQV9DTlRMX0FVWCwgMHgwMDBmMDAwZiwgMHgwMDBiMDAwMCwNCj4gPiArCW1tVENDX0VYRV9E SVNBQkxFLCAweDAwMDAwMDAyLCAweDAwMDAwMDAyLA0KPiA+ICsJbW1UQ1BfQUREUl9DT05GSUcs IDB4MDAwMDAzZmYsIDB4MDAwMDAwZmYsDQo+ID4gKwltbVZHVF9SRVNFVF9ERUJVRywgMHgwMDAw MDAwNCwgMHgwMDAwMDAwNCwNCj4gPiArCW1tVk1fUFJUX0FQRVJUVVJFMF9MT1dfQUREUiwgMHgw ZmZmZmZmZiwgMHgwZmZmZmZmZiwNCj4gPiArCW1tVk1fUFJUX0FQRVJUVVJFMV9MT1dfQUREUiwg MHgwZmZmZmZmZiwgMHgwZmZmZmZmZiwNCj4gPiArCW1tVk1fUFJUX0FQRVJUVVJFMl9MT1dfQURE UiwgMHgwZmZmZmZmZiwgMHgwZmZmZmZmZiwNCj4gPiArCW1tVk1fUFJUX0FQRVJUVVJFM19MT1df QUREUiwgMHgwZmZmZmZmZiwgMHgwZmZmZmZmZiwgfTsNCj4gPiArDQo+ID4gK3N0YXRpYyBjb25z dCB1MzIgeGdwdV9maWppX2dvbGRlbl9jb21tb25fYWxsW10gPSB7DQo+ID4gKwltbUdSQk1fR0ZY X0lOREVYLCAweGZmZmZmZmZmLCAweGUwMDAwMDAwLA0KPiA+ICsJbW1QQV9TQ19SQVNURVJfQ09O RklHLCAweGZmZmZmZmZmLCAweDNhMDAxNjFhLA0KPiA+ICsJbW1QQV9TQ19SQVNURVJfQ09ORklH XzEsIDB4ZmZmZmZmZmYsIDB4MDAwMDAwMmUsDQo+ID4gKwltbUdCX0FERFJfQ09ORklHLCAweGZm ZmZmZmZmLCAweDIyMDExMDAzLA0KPiA+ICsJbW1TUElfUkVTT1VSQ0VfUkVTRVJWRV9DVV8wLCAw eGZmZmZmZmZmLCAweDAwMDAwODAwLA0KPiA+ICsJbW1TUElfUkVTT1VSQ0VfUkVTRVJWRV9DVV8x LCAweGZmZmZmZmZmLCAweDAwMDAwODAwLA0KPiA+ICsJbW1TUElfUkVTT1VSQ0VfUkVTRVJWRV9F Tl9DVV8wLCAweGZmZmZmZmZmLCAweDAwMDA3RkJGLA0KPiA+ICsJbW1TUElfUkVTT1VSQ0VfUkVT RVJWRV9FTl9DVV8xLCAweGZmZmZmZmZmLCAweDAwMDA3RkFGLA0KPiA+ICsJbW1HUkJNX0dGWF9J TkRFWCwgMHhmZmZmZmZmZiwgMHhlMDAwMDAwMCwNCj4gPiArCW1tU1BJX0NPTkZJR19DTlRMXzEs IDB4MDAwMDAwMGYsIDB4MDAwMDAwMDksIH07DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3QgdTMy IHhncHVfdG9uZ2FfbWdjZ19jZ2NnX2luaXRbXSA9IHsNCj4gPiArCW1tUkxDX0NHVFRfTUdDR19P VkVSUklERSwgICAweGZmZmZmZmZmLCAweGZmZmZmZmZmLA0KPiA+ICsJbW1HUkJNX0dGWF9JTkRF WCwgICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsDQo+ID4gKwltbUNCX0NHVFRfU0NM S19DVFJMLCAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9CQ0lf Q0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX0NQ X0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbUNHVFRf Q1BDX0NMS19DVFJMLCAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dU VF9DUEZfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDQwMDAwMTAwLA0KPiA+ICsJbW1D R1RUX0RSTV9DTEtfQ1RSTDAsICAgICAgIDB4ZmZmZmZmZmYsIDB4MDA2MDAxMDAsDQo+ID4gKwlt bUNHVFRfR0RTX0NMS19DVFJMLCAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiAr CW1tQ0dUVF9JQV9DTEtfQ1RSTCwgICAgICAgICAweGZmZmZmZmZmLCAweDA2MDAwMTAwLA0KPiA+ ICsJbW1DR1RUX1BBX0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ ID4gKwltbUNHVFRfV0RfQ0xLX0NUUkwsICAgICAgICAgMHhmZmZmZmZmZiwgMHgwNjAwMDEwMCwN Cj4gPiArCW1tQ0dUVF9QQ19DTEtfQ1RSTCwgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAw LA0KPiA+ICsJbW1DR1RUX1JMQ19DTEtfQ1RSTCwgICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAx MDAsDQo+ID4gKwltbUNHVFRfU0NfQ0xLX0NUUkwsICAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAw MDEwMCwNCj4gPiArCW1tQ0dUVF9TUElfQ0xLX0NUUkwsICAgICAgICAweGZmZmZmZmZmLCAweDAw MDAwMTAwLA0KPiA+ICsJbW1DR1RUX1NRX0NMS19DVFJMLCAgICAgICAgIDB4ZmZmZmZmZmYsIDB4 MDAwMDAxMDAsDQo+ID4gKwltbUNHVFRfU1FHX0NMS19DVFJMLCAgICAgICAgMHhmZmZmZmZmZiwg MHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDAsICAgICAgICAweGZmZmZmZmZm LCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX1NYX0NMS19DVFJMMSwgICAgICAgIDB4ZmZmZmZm ZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbUNHVFRfU1hfQ0xLX0NUUkwyLCAgICAgICAgMHhmZmZm ZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9TWF9DTEtfQ1RSTDMsICAgICAgICAweGZm ZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX1NYX0NMS19DVFJMNCwgICAgICAgIDB4 ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbUNHVFRfVENJX0NMS19DVFJMLCAgICAgICAg MHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tQ0dUVF9UQ1BfQ0xLX0NUUkwsICAgICAg ICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1DR1RUX1ZHVF9DTEtfQ1RSTCwgICAg ICAgIDB4ZmZmZmZmZmYsIDB4MDYwMDAxMDAsDQo+ID4gKwltbURCX0NHVFRfQ0xLX0NUUkxfMCwg ICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tVEFfQ0dUVF9DVFJMLCAgICAg ICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1UQ0FfQ0dUVF9TQ0xLX0NU UkwsICAgICAgIDB4ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbVRDQ19DR1RUX1NDTEtf Q1RSTCwgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDEwMCwNCj4gPiArCW1tVERfQ0dUVF9DVFJM LCAgICAgICAgICAgICAweGZmZmZmZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1HUkJNX0dGWF9J TkRFWCwgICAgICAgICAgIDB4ZmZmZmZmZmYsIDB4ZTAwMDAwMDAsDQo+ID4gKwltbUNHVFNfQ1Uw X1NQMF9DVFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDAxMDAwMCwNCj4gPiArCW1tQ0dUU19D VTBfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLA0KPiA+ICsJbW1DR1RT X0NVMF9UQV9TUUNfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsDQo+ID4gKwltbUNH VFNfQ1UwX1NQMV9DVFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDA2MDAwNSwNCj4gPiArCW1t Q0dUU19DVTBfVERfVENQX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LA0KPiA+ICsJ bW1DR1RTX0NVMV9TUDBfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4g KwltbUNHVFNfQ1UxX0xEU19TUV9DVFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDAzMDAwMiwNCj4g PiArCW1tQ0dUU19DVTFfVEFfQ1RSTF9SRUcsICAgICAweGZmZmZmZmZmLCAweDAwMDQwMDA3LA0K PiA+ICsJbW1DR1RTX0NVMV9TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUs DQo+ID4gKwltbUNHVFNfQ1UxX1REX1RDUF9DVFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDA5MDAw OCwNCj4gPiArCW1tQ0dUU19DVTJfU1AwX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEw MDAwLA0KPiA+ICsJbW1DR1RTX0NVMl9MRFNfU1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAw MzAwMDIsDQo+ID4gKwltbUNHVFNfQ1UyX1RBX0NUUkxfUkVHLCAgICAgMHhmZmZmZmZmZiwgMHgw MDA0MDAwNywNCj4gPiArCW1tQ0dUU19DVTJfU1AxX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAw eDAwMDYwMDA1LA0KPiA+ICsJbW1DR1RTX0NVMl9URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYs IDB4MDAwOTAwMDgsDQo+ID4gKwltbUNHVFNfQ1UzX1NQMF9DVFJMX1JFRywgICAgMHhmZmZmZmZm ZiwgMHgwMDAxMDAwMCwNCj4gPiArCW1tQ0dUU19DVTNfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZm ZmZmLCAweDAwMDMwMDAyLA0KPiA+ICsJbW1DR1RTX0NVM19UQV9DVFJMX1JFRywgICAgIDB4ZmZm ZmZmZmYsIDB4MDAwNDAwMDcsDQo+ID4gKwltbUNHVFNfQ1UzX1NQMV9DVFJMX1JFRywgICAgMHhm ZmZmZmZmZiwgMHgwMDA2MDAwNSwNCj4gPiArCW1tQ0dUU19DVTNfVERfVENQX0NUUkxfUkVHLCAw eGZmZmZmZmZmLCAweDAwMDkwMDA4LA0KPiA+ICsJbW1DR1RTX0NVNF9TUDBfQ1RSTF9SRUcsICAg IDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ID4gKwltbUNHVFNfQ1U0X0xEU19TUV9DVFJMX1JF RywgMHhmZmZmZmZmZiwgMHgwMDAzMDAwMiwNCj4gPiArCW1tQ0dUU19DVTRfVEFfU1FDX0NUUkxf UkVHLCAweGZmZmZmZmZmLCAweDAwMDQwMDA3LA0KPiA+ICsJbW1DR1RTX0NVNF9TUDFfQ1RSTF9S RUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAwMDUsDQo+ID4gKwltbUNHVFNfQ1U0X1REX1RDUF9D VFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDA5MDAwOCwNCj4gPiArCW1tQ0dUU19DVTVfU1AwX0NU UkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDEwMDAwLA0KPiA+ICsJbW1DR1RTX0NVNV9MRFNf U1FfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwMzAwMDIsDQo+ID4gKwltbUNHVFNfQ1U1X1RB X0NUUkxfUkVHLCAgICAgMHhmZmZmZmZmZiwgMHgwMDA0MDAwNywNCj4gPiArCW1tQ0dUU19DVTVf U1AxX0NUUkxfUkVHLCAgICAweGZmZmZmZmZmLCAweDAwMDYwMDA1LA0KPiA+ICsJbW1DR1RTX0NV NV9URF9UQ1BfQ1RSTF9SRUcsIDB4ZmZmZmZmZmYsIDB4MDAwOTAwMDgsDQo+ID4gKwltbUNHVFNf Q1U2X1NQMF9DVFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDAxMDAwMCwNCj4gPiArCW1tQ0dU U19DVTZfTERTX1NRX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDMwMDAyLA0KPiA+ICsJbW1D R1RTX0NVNl9UQV9DVFJMX1JFRywgICAgIDB4ZmZmZmZmZmYsIDB4MDAwNDAwMDcsDQo+ID4gKwlt bUNHVFNfQ1U2X1NQMV9DVFJMX1JFRywgICAgMHhmZmZmZmZmZiwgMHgwMDA2MDAwNSwNCj4gPiAr CW1tQ0dUU19DVTZfVERfVENQX0NUUkxfUkVHLCAweGZmZmZmZmZmLCAweDAwMDkwMDA4LA0KPiA+ ICsJbW1DR1RTX0NVN19TUDBfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwMTAwMDAsDQo+ ID4gKwltbUNHVFNfQ1U3X0xEU19TUV9DVFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDAzMDAwMiwN Cj4gPiArCW1tQ0dUU19DVTdfVEFfQ1RSTF9SRUcsICAgICAweGZmZmZmZmZmLCAweDAwMDQwMDA3 LA0KPiA+ICsJbW1DR1RTX0NVN19TUDFfQ1RSTF9SRUcsICAgIDB4ZmZmZmZmZmYsIDB4MDAwNjAw MDUsDQo+ID4gKwltbUNHVFNfQ1U3X1REX1RDUF9DVFJMX1JFRywgMHhmZmZmZmZmZiwgMHgwMDA5 MDAwOCwNCj4gPiArCW1tQ0dUU19TTV9DVFJMX1JFRywgICAgICAgICAweGZmZmZmZmZmLCAweDk2 ZTAwMjAwLA0KPiA+ICsJbW1DUF9SQl9XUFRSX1BPTExfQ05UTCwgICAgIDB4ZmZmZmZmZmYsIDB4 MDA5MDAxMDAsDQo+ID4gKwltbVJMQ19DR0NHX0NHTFNfQ1RSTCwgICAgICAgMHhmZmZmZmZmZiwg MHgwMDIwMDAzYywNCj4gPiArCW1tUENJRV9JTkRFWCwgICAgICAgICAgICAgICAweGZmZmZmZmZm LCAweDAxNDAwMDFjLA0KPiA+ICsJbW1QQ0lFX0RBVEEsICAgICAgICAgICAgICAgIDB4MDAwZjAw MDAsIDB4MDAwMDAwMDAsDQo+ID4gKwltbVNNQ19JTkRfSU5ERVhfNCwgICAgICAgICAgMHhmZmZm ZmZmZiwgMHhDMDYwMDAwQywNCj4gPiArCW1tU01DX0lORF9EQVRBXzQsICAgICAgICAgICAweGMw MDAwZmZmLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1YRE1BX0NMT0NLX0dBVElOR19DTlRMLCAgIDB4 ZmZmZmZmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbVhETUFfTUVNX1BPV0VSX0NOVEwsICAgICAg MHgwMDAwMDEwMSwgMHgwMDAwMDAwMCwNCj4gPiArCW1tTUNfTUVNX1BPV0VSX0xTLCAgICAgICAg ICAweGZmZmZmZmZmLCAweDAwMDAwMTA0LA0KPiA+ICsJbW1DR1RUX0RSTV9DTEtfQ1RSTDAsICAg ICAgIDB4ZmYwMDBmZmYsIDB4MDAwMDAxMDAsDQo+ID4gKwltbUhEUF9YRFBfQ0dUVF9CTEtfQ1RS TCwgICAgMHhjMDAwMGZmZiwgMHgwMDAwMDEwNCwNCj4gPiArCW1tQ1BfTUVNX1NMUF9DTlRMLCAg ICAgICAgICAweDAwMDAwMDAxLCAweDAwMDAwMDAxLA0KPiA+ICsJbW1TRE1BMF9DTEtfQ1RSTCwg ICAgICAgICAgIDB4ZmYwMDBmZjAsIDB4MDAwMDAxMDAsDQo+ID4gKwltbVNETUExX0NMS19DVFJM LCAgICAgICAgICAgMHhmZjAwMGZmMCwgMHgwMDAwMDEwMCwNCj4gPiArfTsNCj4gPiArDQo+ID4g K3N0YXRpYyBjb25zdCB1MzIgeGdwdV90b25nYV9nb2xkZW5fc2V0dGluZ3NfYTExW10gPSB7DQo+ ID4gKwltbUNCX0hXX0NPTlRST0wsIDB4ZmZmZGYzY2YsIDB4MDAwMDcyMDgsDQo+ID4gKwltbUNC X0hXX0NPTlRST0xfMywgMHgwMDAwMDA0MCwgMHgwMDAwMDA0MCwNCj4gPiArCW1tREJfREVCVUcy LCAweGYwMGZmZmZmLCAweDAwMDAwNDAwLA0KPiA+ICsJbW1EQ0lfQ0xLX0NOVEwsIDB4MDAwMDAw ODAsIDB4MDAwMDAwMDAsDQo+ID4gKwltbUZCQ19ERUJVR19DT01QLCAweDAwMDAwMGYwLCAweDAw MDAwMDcwLA0KPiA+ICsJbW1GQkNfTUlTQywgMHgxZjMxMWZmZiwgMHgxMjMwMDAwMCwNCj4gPiAr CW1tR0JfR1BVX0lELCAweDAwMDAwMDBmLCAweDAwMDAwMDAwLA0KPiA+ICsJbW1IRE1JX0NPTlRS T0wsIDB4MzEwMDAxMTEsIDB4MDAwMDAwMTEsDQo+ID4gKwltbU1DX0FSQl9XVE1fR1JQV1RfUkQs IDB4MDAwMDAwMDMsIDB4MDAwMDAwMDAsDQo+ID4gKwltbU1DX0hVQl9SRFJFUV9ETUlGX0xJTUlU LCAweDAwMDAwMDdmLCAweDAwMDAwMDI4LA0KPiA+ICsJbW1NQ19IVUJfV0RQX1VNQywgMHgwMDAw N2ZiNiwgMHgwMDAwMDk5MSwNCj4gPiArCW1tUEFfU0NfRU5IQU5DRSwgMHhmZmZmZmZmZiwgMHgy MDAwMDAwMSwNCj4gPiArCW1tUEFfU0NfRklGT19ERVBUSF9DTlRMLCAweDAwMDAwM2ZmLCAweDAw MDAwMGZjLA0KPiA+ICsJbW1QQV9TQ19MSU5FX1NUSVBQTEVfU1RBVEUsIDB4MDAwMGZmMGYsIDB4 MDAwMDAwMDAsDQo+ID4gKwltbVJMQ19DR0NHX0NHTFNfQ1RSTCwgMHgwMDAwMDAwMywgMHgwMDAw MDAzYywNCj4gPiArCW1tU0RNQTBfQ0hJQ0tFTl9CSVRTLCAweGZjOTEwMDA3LCAweDAwODEwMDA3 LA0KPiA+ICsJbW1TRE1BMF9DTEtfQ1RSTCwgMHhmZjAwMGZmZiwgMHgwMDAwMDAwMCwNCj4gPiAr CW1tU0RNQTBfR0ZYX0lCX0NOVEwsIDB4ODAwZjAxMTEsIDB4MDAwMDAxMDAsDQo+ID4gKwltbVNE TUEwX1JMQzBfSUJfQ05UTCwgMHg4MDBmMDExMSwgMHgwMDAwMDEwMCwNCj4gPiArCW1tU0RNQTBf UkxDMV9JQl9DTlRMLCAweDgwMGYwMTExLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1TRE1BMV9DSElD S0VOX0JJVFMsIDB4ZmM5MTAwMDcsIDB4MDA4MTAwMDcsDQo+ID4gKwltbVNETUExX0NMS19DVFJM LCAweGZmMDAwZmZmLCAweDAwMDAwMDAwLA0KPiA+ICsJbW1TRE1BMV9HRlhfSUJfQ05UTCwgMHg4 MDBmMDExMSwgMHgwMDAwMDEwMCwNCj4gPiArCW1tU0RNQTFfUkxDMF9JQl9DTlRMLCAweDgwMGYw MTExLCAweDAwMDAwMTAwLA0KPiA+ICsJbW1TRE1BMV9STEMxX0lCX0NOVEwsIDB4ODAwZjAxMTEs IDB4MDAwMDAxMDAsDQo+ID4gKwltbVNRX1JBTkRPTV9XQVZFX1BSSSwgMHgwMDFmZmZmZiwgMHgw MDAwMDZmZCwNCj4gPiArCW1tVEFfQ05UTF9BVVgsIDB4MDAwZjAwMGYsIDB4MDAwYjAwMDAsDQo+ ID4gKwltbVRDQ19DVFJMLCAweDAwMTAwMDAwLCAweGYzMWZmZjdmLA0KPiA+ICsJbW1UQ0NfRVhF X0RJU0FCTEUsIDB4MDAwMDAwMDIsIDB4MDAwMDAwMDIsDQo+ID4gKwltbVRDUF9BRERSX0NPTkZJ RywgMHgwMDAwMDNmZiwgMHgwMDAwMDJmYiwNCj4gPiArCW1tVENQX0NIQU5fU1RFRVJfSEksIDB4 ZmZmZmZmZmYsIDB4MDAwMDU0M2IsDQo+ID4gKwltbVRDUF9DSEFOX1NURUVSX0xPLCAweGZmZmZm ZmZmLCAweGE5MjEwODc2LA0KPiA+ICsJbW1WR1RfUkVTRVRfREVCVUcsIDB4MDAwMDAwMDQsIDB4 MDAwMDAwMDQsDQo+ID4gKwltbVZNX1BSVF9BUEVSVFVSRTBfTE9XX0FERFIsIDB4MGZmZmZmZmYs IDB4MGZmZmZmZmYsDQo+ID4gKwltbVZNX1BSVF9BUEVSVFVSRTFfTE9XX0FERFIsIDB4MGZmZmZm ZmYsIDB4MGZmZmZmZmYsDQo+ID4gKwltbVZNX1BSVF9BUEVSVFVSRTJfTE9XX0FERFIsIDB4MGZm ZmZmZmYsIDB4MGZmZmZmZmYsDQo+ID4gKwltbVZNX1BSVF9BUEVSVFVSRTNfTE9XX0FERFIsIDB4 MGZmZmZmZmYsIDB4MGZmZmZmZmYsIH07DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3QgdTMyIHhn cHVfdG9uZ2FfZ29sZGVuX2NvbW1vbl9hbGxbXSA9IHsNCj4gPiArCW1tR1JCTV9HRlhfSU5ERVgs ICAgICAgICAgICAgICAgMHhmZmZmZmZmZiwgMHhlMDAwMDAwMCwNCj4gPiArCW1tUEFfU0NfUkFT VEVSX0NPTkZJRywgICAgICAgICAgMHhmZmZmZmZmZiwgMHgxNjAwMDAxMiwNCj4gPiArCW1tUEFf U0NfUkFTVEVSX0NPTkZJR18xLCAgICAgICAgMHhmZmZmZmZmZiwgMHgwMDAwMDAyQSwNCj4gPiAr CW1tR0JfQUREUl9DT05GSUcsICAgICAgICAgICAgICAgMHhmZmZmZmZmZiwgMHgyMjAxMTAwMiwN Cj4gPiArCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfQ1VfMCwgICAgMHhmZmZmZmZmZiwgMHgwMDAw MDgwMCwNCj4gPiArCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfQ1VfMSwgICAgMHhmZmZmZmZmZiwg MHgwMDAwMDgwMCwNCj4gPiArCW1tU1BJX1JFU09VUkNFX1JFU0VSVkVfRU5fQ1VfMCwgMHhmZmZm ZmZmZiwgMHgwMDAwN0ZCRiwgfTsNCj4gPiArDQo+ID4gK3ZvaWQgeGdwdV92aV9pbml0X2dvbGRl bl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpIHsNCj4gPiArCXN3aXRjaCAo YWRldi0+YXNpY190eXBlKSB7DQo+ID4gKwljYXNlIENISVBfRklKSToNCj4gPiArCQlhbWRncHVf cHJvZ3JhbV9yZWdpc3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiA+ICsJCQkJCQkgeGdwdV9maWppX21n Y2dfY2djZ19pbml0LA0KPiA+ICsJCQkJCQkgKGNvbnN0IHUzMilBUlJBWV9TSVpFKA0KPiA+ICsJ CQkJCQkgeGdwdV9maWppX21nY2dfY2djZ19pbml0KSk7DQo+ID4gKwkJYW1kZ3B1X3Byb2dyYW1f cmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gPiArDQo+IHhncHVfZmlqaV9nb2xkZW5fc2V0dGlu Z3NfYTEwLA0KPiA+ICsJCQkJCQkgKGNvbnN0IHUzMilBUlJBWV9TSVpFKA0KPiA+ICsNCj4geGdw dV9maWppX2dvbGRlbl9zZXR0aW5nc19hMTApKTsNCj4gPiArCQlhbWRncHVfcHJvZ3JhbV9yZWdp c3Rlcl9zZXF1ZW5jZShhZGV2LA0KPiA+ICsNCj4geGdwdV9maWppX2dvbGRlbl9jb21tb25fYWxs LA0KPiA+ICsJCQkJCQkgKGNvbnN0IHUzMilBUlJBWV9TSVpFKA0KPiA+ICsNCj4geGdwdV9maWpp X2dvbGRlbl9jb21tb25fYWxsKSk7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwljYXNlIENISVBfVE9O R0E6DQo+ID4gKwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gPiAr CQkJCQkJIHhncHVfdG9uZ2FfbWdjZ19jZ2NnX2luaXQsDQo+ID4gKwkJCQkJCSAoY29uc3QgdTMy KUFSUkFZX1NJWkUoDQo+ID4gKw0KPiB4Z3B1X3RvbmdhX21nY2dfY2djZ19pbml0KSk7DQo+ID4g KwkJYW1kZ3B1X3Byb2dyYW1fcmVnaXN0ZXJfc2VxdWVuY2UoYWRldiwNCj4gPiArDQo+IHhncHVf dG9uZ2FfZ29sZGVuX3NldHRpbmdzX2ExMSwNCj4gPiArCQkJCQkJIChjb25zdCB1MzIpQVJSQVlf U0laRSgNCj4gPiArDQo+IHhncHVfdG9uZ2FfZ29sZGVuX3NldHRpbmdzX2ExMSkpOw0KPiA+ICsJ CWFtZGdwdV9wcm9ncmFtX3JlZ2lzdGVyX3NlcXVlbmNlKGFkZXYsDQo+ID4gKw0KPiB4Z3B1X3Rv bmdhX2dvbGRlbl9jb21tb25fYWxsLA0KPiA+ICsJCQkJCQkgKGNvbnN0IHUzMilBUlJBWV9TSVpF KA0KPiA+ICsNCj4geGdwdV90b25nYV9nb2xkZW5fY29tbW9uX2FsbCkpOw0KPiA+ICsJCWJyZWFr Ow0KPiA+ICsJZGVmYXVsdDoNCj4gPiArCQlCVUdfT04oIkRvZXNuJ3Qgc3VwcG9ydCBjaGlwIHR5 cGUuXG4iKTsNCj4gPiArCQlicmVhazsNCj4gPiArCX0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoN Cj4gPiArICogTWFpbGJveCBjb21tdW5pY2F0aW9uIGJldHdlZW4gR1BVIGh5cGVydmlzb3IgYW5k IFZGcyAgKi8gc3RhdGljDQo+ID4gK3ZvaWQgeGdwdV92aV9tYWlsYm94X3NlbmRfYWNrKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KSB7DQo+ID4gKwl1MzIgcmVnOw0KPiA+ICsNCj4gPiArCXJl ZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJPTCk7DQo+ID4gKwlyZWcgPSBSRUdfU0VUX0ZJRUxE KHJlZywgTUFJTEJPWF9DT05UUk9MLCBSQ1ZfTVNHX0FDSywgMSk7DQo+ID4gKwlXUkVHMzIobW1N QUlMQk9YX0NPTlRST0wsIHJlZyk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHhn cHVfdmlfbWFpbGJveF9zZXRfdmFsaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4g K2Jvb2wgdmFsKSB7DQo+ID4gKwl1MzIgcmVnOw0KPiA+ICsNCj4gPiArCXJlZyA9IFJSRUczMiht bU1BSUxCT1hfQ09OVFJPTCk7DQo+ID4gKwlyZWcgPSBSRUdfU0VUX0ZJRUxEKHJlZywgTUFJTEJP WF9DT05UUk9MLA0KPiA+ICsJCQkJIFRSTl9NU0dfVkFMSUQsIHZhbCA/IDEgOiAwKTsNCj4gPiAr CVdSRUczMihtbU1BSUxCT1hfQ09OVFJPTCwgcmVnKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3Rh dGljIHZvaWQgeGdwdV92aV9tYWlsYm94X3RyYW5zX21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwNCj4gPiArCQkJCSAgICAgIGVudW0gaWRoX2V2ZW50IGV2ZW50KQ0KPiA+ICt7DQo+ID4g Kwl1MzIgcmVnOw0KPiA+ICsNCj4gPiArCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfTVNHQlVGX1RS Tl9EVzApOw0KPiA+ICsJcmVnID0gUkVHX1NFVF9GSUVMRChyZWcsIE1BSUxCT1hfTVNHQlVGX1RS Tl9EVzAsDQo+ID4gKwkJCQkgTVNHQlVGX0RBVEEsIGV2ZW50KTsNCj4gPiArCVdSRUczMihtbU1B SUxCT1hfTVNHQlVGX1RSTl9EVzAsIHJlZyk7DQo+ID4gKw0KPiA+ICsJeGdwdV92aV9tYWlsYm94 X3NldF92YWxpZChhZGV2LCB0cnVlKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCB4Z3B1X3Zp X21haWxib3hfcmN2X21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4gPiArCQkJCSAg IGVudW0gaWRoX2V2ZW50IGV2ZW50KQ0KPiA+ICt7DQo+ID4gKwl1MzIgcmVnOw0KPiA+ICsNCj4g PiArCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfTVNHQlVGX1JDVl9EVzApOw0KPiA+ICsJaWYgKHJl ZyAhPSBldmVudCkNCj4gPiArCQlyZXR1cm4gLUVOT0VOVDsNCj4gPiArDQo+ID4gKwkvKiBzZW5k IGFjayB0byBQRiAqLw0KPiA+ICsJeGdwdV92aV9tYWlsYm94X3NlbmRfYWNrKGFkZXYpOw0KPiA+ ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHhncHVf dmlfcG9sbF9hY2soc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpIHsNCj4gPiArCWludCByID0g MCwgdGltZW91dCA9IFZJX01BSUxCT1hfVElNRURPVVQ7DQo+ID4gKwl1MzIgbWFzayA9IFJFR19G SUVMRF9NQVNLKE1BSUxCT1hfQ09OVFJPTCwgVFJOX01TR19BQ0spOw0KPiA+ICsJdTMyIHJlZzsN Cj4gPiArDQo+ID4gKwlyZWcgPSBSUkVHMzIobW1NQUlMQk9YX0NPTlRST0wpOw0KPiA+ICsJd2hp bGUgKCEocmVnICYgbWFzaykpIHsNCj4gPiArCQlpZiAodGltZW91dCA8PSAwKSB7DQo+ID4gKwkJ CXByX2VycigiRG9lc24ndCBnZXQgYWNrIGZyb20gcGYuXG4iKTsNCj4gPiArCQkJciA9IC1FVElN RTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJfQ0KPiA+ICsJCW1zbGVlcCgxKTsNCj4gPiArCQl0 aW1lb3V0IC09IDE7DQo+ID4gKw0KPiA+ICsJCXJlZyA9IFJSRUczMihtbU1BSUxCT1hfQ09OVFJP TCk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIHI7DQo+ID4gK30NCj4gPiArDQo+ID4g K3N0YXRpYyBpbnQgeGdwdV92aV9wb2xsX21zZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg ZW51bQ0KPiA+ICtpZGhfZXZlbnQgZXZlbnQpIHsNCj4gPiArCWludCByID0gMCwgdGltZW91dCA9 IFZJX01BSUxCT1hfVElNRURPVVQ7DQo+ID4gKw0KPiA+ICsJciA9IHhncHVfdmlfbWFpbGJveF9y Y3ZfbXNnKGFkZXYsIGV2ZW50KTsNCj4gPiArCXdoaWxlIChyKSB7DQo+ID4gKwkJaWYgKHRpbWVv dXQgPD0gMCkgew0KPiA+ICsJCQlwcl9lcnIoIkRvZXNuJ3QgZ2V0IGFjayBmcm9tIHBmLlxuIik7 DQo+ID4gKwkJCXIgPSAtRVRJTUU7DQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCX0NCj4gPiArCQlt c2xlZXAoMSk7DQo+ID4gKwkJdGltZW91dCAtPSAxOw0KPiA+ICsNCj4gPiArCQlyID0geGdwdV92 aV9tYWlsYm94X3Jjdl9tc2coYWRldiwgZXZlbnQpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJl dHVybiByOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHhncHVfdmlfc2VuZF9hY2Nl c3NfcmVxdWVzdHMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4gKwkJCQkJZW51bSBp ZGhfcmVxdWVzdCByZXF1ZXN0KQ0KPiA+ICt7DQo+ID4gKwlpbnQgcjsNCj4gPiArDQo+ID4gKwl4 Z3B1X3ZpX21haWxib3hfdHJhbnNfbXNnKGFkZXYsIHJlcXVlc3QpOw0KPiA+ICsNCj4gPiArCS8q IHN0YXJ0IHRvIHBvbGwgYWNrICovDQo+ID4gKwlyID0geGdwdV92aV9wb2xsX2FjayhhZGV2KTsN Cj4gPiArCWlmIChyKQ0KPiA+ICsJCXJldHVybiByOw0KPiA+ICsNCj4gPiArCXhncHVfdmlfbWFp bGJveF9zZXRfdmFsaWQoYWRldiwgZmFsc2UpOw0KPiA+ICsNCj4gPiArCS8qIHN0YXJ0IHRvIGNo ZWNrIG1zZyBpZiByZXF1ZXN0IGlzIGlkaF9yZXFfZ3B1X2luaXRfYWNjZXNzICovDQo+ID4gKwlp ZiAocmVxdWVzdCA9PSBJREhfUkVRX0dQVV9JTklUX0FDQ0VTUykgew0KPiA+ICsJCXIgPSB4Z3B1 X3ZpX3BvbGxfbXNnKGFkZXYsIElESF9SRUFEWV9UT19BQ0NFU1NfR1BVKTsNCj4gPiArCQlpZiAo cikNCj4gPiArCQkJcmV0dXJuIHI7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgeGdwdV92aV9yZXF1ZXN0X3Jlc2V0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KSB7DQo+ID4gKwlyZXR1cm4geGdwdV92aV9zZW5kX2FjY2Vz c19yZXF1ZXN0cyhhZGV2LA0KPiBJREhfUkVRX0dQVV9SRVNFVF9BQ0NFU1MpOw0KPiA+ICt9DQo+ ID4gKw0KPiA+ICtzdGF0aWMgaW50IHhncHVfdmlfcmVxdWVzdF9mdWxsX2dwdV9hY2Nlc3Moc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4gKwkJCQkJICAgYm9vbCBpbml0KQ0KPiA+ICt7 DQo+ID4gKwllbnVtIGlkaF9ldmVudCBldmVudDsNCj4gPiArDQo+ID4gKwlldmVudCA9IGluaXQg PyBJREhfUkVRX0dQVV9JTklUX0FDQ0VTUyA6DQo+IElESF9SRVFfR1BVX0ZJTklfQUNDRVNTOw0K PiA+ICsJcmV0dXJuIHhncHVfdmlfc2VuZF9hY2Nlc3NfcmVxdWVzdHMoYWRldiwgZXZlbnQpOyB9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IHhncHVfdmlfcmVsZWFzZV9mdWxsX2dwdV9hY2Nlc3Mo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ID4gKwkJCQkJICAgYm9vbCBpbml0KQ0KPiA+ ICt7DQo+ID4gKwllbnVtIGlkaF9ldmVudCBldmVudDsNCj4gPiArCWludCByID0gMDsNCj4gPiAr DQo+ID4gKwlldmVudCA9IGluaXQgPyBJREhfUkVMX0dQVV9JTklUX0FDQ0VTUyA6DQo+IElESF9S RUxfR1BVX0ZJTklfQUNDRVNTOw0KPiA+ICsJciA9IHhncHVfdmlfc2VuZF9hY2Nlc3NfcmVxdWVz dHMoYWRldiwgZXZlbnQpOw0KPiA+ICsNCj4gPiArCXJldHVybiByOw0KPiA+ICt9DQo+ID4gKw0K PiA+ICsvKiBhZGQgc3VwcG9ydCBtYWlsYm94IGludGVycnVwdHMgKi8NCj4gPiArc3RhdGljIGlu dCB4Z3B1X3ZpX21haWxib3hfYWNrX2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4g PiArCQkJCSAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLA0KPiA+ICsJCQkJICAgc3Ry dWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpIHsNCj4gPiArCURSTV9ERUJVRygiZ2V0IGFjayBp bnRyIGFuZCBkbyBub3RoaW5nLlxuIik7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArc3RhdGljIGludCB4Z3B1X3ZpX3NldF9tYWlsYm94X2Fja19pcnEoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsDQo+ID4gKwkJCQkgICAgICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICpz cmMsDQo+ID4gKwkJCQkgICAgICAgdW5zaWduZWQgdHlwZSwNCj4gPiArCQkJCSAgICAgICBlbnVt IGFtZGdwdV9pbnRlcnJ1cHRfc3RhdGUgc3RhdGUpIHsNCj4gPiArCXUzMiB0bXAgPSBSUkVHMzIo bW1NQUlMQk9YX0lOVF9DTlRMKTsNCj4gPiArDQo+ID4gKwl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRt cCwgTUFJTEJPWF9JTlRfQ05UTCwgQUNLX0lOVF9FTiwNCj4gPiArCQkJCSAoc3RhdGUgPT0gQU1E R1BVX0lSUV9TVEFURV9FTkFCTEUpID8gMSA6DQo+IDApOw0KPiA+ICsJV1JFRzMyKG1tTUFJTEJP WF9JTlRfQ05UTCwgdG1wKTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsN Cj4gPiArc3RhdGljIHZvaWQgeGdwdV92aV9tYWlsYm94X2Zscl93b3JrKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykgew0KPiA+ICsJc3RydWN0IGFtZGdwdV92aXJ0ICp2aXJ0ID0gY29udGFpbmVy X29mKHdvcmssDQo+ID4gKwkJCQkJc3RydWN0IGFtZGdwdV92aXJ0LCBmbHJfd29yay53b3JrKTsN Cj4gPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gY29udGFpbmVyX29mKHZpcnQsDQo+ ID4gKwkJCQkJc3RydWN0IGFtZGdwdV9kZXZpY2UsIHZpcnQpOw0KPiA+ICsJaW50IHIgPSAwOw0K PiA+ICsNCj4gPiArCXIgPSB4Z3B1X3ZpX3BvbGxfbXNnKGFkZXYsIElESF9GTFJfTk9USUZJQ0FU SU9OX0NNUEwpOw0KPiA+ICsJaWYgKHIpDQo+ID4gKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0 IGZsciBjbXBsIG1zZyBmcm9tIGh5cGVydmlvci5cbiIpOw0KPiA+ICsNCj4gPiArCS8qIFRPRE86 IG5lZWQgdG8gcmVzdG9yZSBnZnggc3RhdGVzICovIH0NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQg eGdwdV92aV9zZXRfbWFpbGJveF9yY3ZfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0K PiA+ICsJCQkJICAgICAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc3JjLA0KPiA+ICsJCQkJICAg ICAgIHVuc2lnbmVkIHR5cGUsDQo+ID4gKwkJCQkgICAgICAgZW51bSBhbWRncHVfaW50ZXJydXB0 X3N0YXRlIHN0YXRlKSB7DQo+ID4gKwl1MzIgdG1wID0gUlJFRzMyKG1tTUFJTEJPWF9JTlRfQ05U TCk7DQo+ID4gKw0KPiA+ICsJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIE1BSUxCT1hfSU5UX0NO VEwsIFZBTElEX0lOVF9FTiwNCj4gPiArCQkJCSAoc3RhdGUgPT0gQU1ER1BVX0lSUV9TVEFURV9F TkFCTEUpID8gMSA6DQo+IDApOw0KPiA+ICsJV1JFRzMyKG1tTUFJTEJPWF9JTlRfQ05UTCwgdG1w KTsNCj4gPiArDQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlu dCB4Z3B1X3ZpX21haWxib3hfcmN2X2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4g PiArCQkJCSAgIHN0cnVjdCBhbWRncHVfaXJxX3NyYyAqc291cmNlLA0KPiA+ICsJCQkJICAgc3Ry dWN0IGFtZGdwdV9pdl9lbnRyeSAqZW50cnkpIHsNCj4gPiArCWludCByOw0KPiA+ICsNCj4gPiAr CWFkZXYtPnZpcnQuY2FwcyAmPSB+QU1ER1BVX1NSSU9WX0NBUFNfUlVOVElNRTsNCj4gPiArCXIg PSB4Z3B1X3ZpX21haWxib3hfcmN2X21zZyhhZGV2LCBJREhfRkxSX05PVElGSUNBVElPTik7DQo+ ID4gKwkvKiBkbyBub3RoaW5nIGZvciBvdGhlciBtc2cgKi8NCj4gPiArCWlmIChyKQ0KPiA+ICsJ CXJldHVybiAwOw0KPiA+ICsNCj4gPiArCS8qIFRPRE86IG5lZWQgdG8gc2F2ZSBnZnggc3RhdGVz ICovDQo+ID4gKwlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFkZXYtPnZpcnQuZmxyX3dvcmssDQo+ ID4gKwkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoVklfTUFJTEJPWF9SRVNFVF9USU1FKSk7DQo+ ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgeGdwdV92aV9tYWlsYm94X2Fja19pcnFfZnVuY3MN Cj4gPSB7DQo+ID4gKwkuc2V0ID0geGdwdV92aV9zZXRfbWFpbGJveF9hY2tfaXJxLA0KPiA+ICsJ LnByb2Nlc3MgPSB4Z3B1X3ZpX21haWxib3hfYWNrX2lycSwNCj4gPiArfTsNCj4gPiArDQo+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgeGdwdV92aV9tYWlsYm94 X3Jjdl9pcnFfZnVuY3MNCj4gPSB7DQo+ID4gKwkuc2V0ID0geGdwdV92aV9zZXRfbWFpbGJveF9y Y3ZfaXJxLA0KPiA+ICsJLnByb2Nlc3MgPSB4Z3B1X3ZpX21haWxib3hfcmN2X2lycSwNCj4gPiAr fTsNCj4gPiArDQo+ID4gK3ZvaWQgeGdwdV92aV9tYWlsYm94X3NldF9pcnFfZnVuY3Moc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpIHsNCj4gPiArCWFkZXYtPnZpcnQuYWNrX2lycS5udW1fdHlw ZXMgPSAxOw0KPiA+ICsJYWRldi0+dmlydC5hY2tfaXJxLmZ1bmNzID0gJnhncHVfdmlfbWFpbGJv eF9hY2tfaXJxX2Z1bmNzOw0KPiA+ICsJYWRldi0+dmlydC5yY3ZfaXJxLm51bV90eXBlcyA9IDE7 DQo+ID4gKwlhZGV2LT52aXJ0LnJjdl9pcnEuZnVuY3MgPSAmeGdwdV92aV9tYWlsYm94X3Jjdl9p cnFfZnVuY3M7IH0NCj4gPiArDQo+ID4gK2ludCB4Z3B1X3ZpX21haWxib3hfYWRkX2lycV9pZChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikgew0KPiA+ICsJaW50IHI7DQo+ID4gKw0KPiA+ICsJ ciA9IGFtZGdwdV9pcnFfYWRkX2lkKGFkZXYsIDEzNSwgJmFkZXYtPnZpcnQucmN2X2lycSk7DQo+ ID4gKwlpZiAocikNCj4gPiArCQlyZXR1cm4gcjsNCj4gPiArDQo+ID4gKwlyID0gYW1kZ3B1X2ly cV9hZGRfaWQoYWRldiwgMTM4LCAmYWRldi0+dmlydC5hY2tfaXJxKTsNCj4gPiArCWlmIChyKSB7 DQo+ID4gKwkJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPnZpcnQucmN2X2lycSwgMCk7DQo+ ID4gKwkJcmV0dXJuIHI7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ID4gK30N Cj4gPiArDQo+ID4gK2ludCB4Z3B1X3ZpX21haWxib3hfZ2V0X2lycShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldikgew0KPiA+ICsJaW50IHI7DQo+ID4gKw0KPiA+ICsJciA9IGFtZGdwdV9pcnFf Z2V0KGFkZXYsICZhZGV2LT52aXJ0LnJjdl9pcnEsIDApOw0KPiA+ICsJaWYgKHIpDQo+ID4gKwkJ cmV0dXJuIHI7DQo+ID4gKwlyID0gYW1kZ3B1X2lycV9nZXQoYWRldiwgJmFkZXYtPnZpcnQuYWNr X2lycSwgMCk7DQo+ID4gKwlpZiAocikgew0KPiA+ICsJCWFtZGdwdV9pcnFfcHV0KGFkZXYsICZh ZGV2LT52aXJ0LnJjdl9pcnEsIDApOw0KPiA+ICsJCXJldHVybiByOw0KPiA+ICsJfQ0KPiA+ICsN Cj4gPiArCUlOSVRfREVMQVlFRF9XT1JLKCZhZGV2LT52aXJ0LmZscl93b3JrLA0KPiB4Z3B1X3Zp X21haWxib3hfZmxyX3dvcmspOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICt2b2lkIHhncHVfdmlfbWFpbGJveF9wdXRfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KSB7DQo+ID4gKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmFkZXYtPnZpcnQuZmxy X3dvcmspOw0KPiA+ICsJYW1kZ3B1X2lycV9wdXQoYWRldiwgJmFkZXYtPnZpcnQuYWNrX2lycSwg MCk7DQo+ID4gKwlhbWRncHVfaXJxX3B1dChhZGV2LCAmYWRldi0+dmlydC5yY3ZfaXJxLCAwKTsg fQ0KPiA+ICsNCj4gPiArY29uc3Qgc3RydWN0IGFtZGdwdV92aXJ0X29wcyB4Z3B1X3ZpX3ZpcnRf b3BzID0gew0KPiA+ICsJLnJlcV9mdWxsX2dwdQkJPSB4Z3B1X3ZpX3JlcXVlc3RfZnVsbF9ncHVf YWNjZXNzLA0KPiA+ICsJLnJlbF9mdWxsX2dwdQkJPSB4Z3B1X3ZpX3JlbGVhc2VfZnVsbF9ncHVf YWNjZXNzLA0KPiA+ICsJLnJlc2V0X2dwdQkJPSB4Z3B1X3ZpX3JlcXVlc3RfcmVzZXQsDQo+ID4g K307DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3Zp LmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L214Z3B1X3ZpLmgNCj4gPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAwMDAuLmZkNjIxNmUNCj4gPiAtLS0gL2Rl di9udWxsDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbXhncHVfdmkuaA0K PiA+IEBAIC0wLDAgKzEsNTUgQEANCj4gPiArLyoNCj4gPiArICogQ29weXJpZ2h0IDIwMTcgQWR2 YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLg0KPiA+ICsgKg0KPiA+ICsgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbg0KPiA+ICtvYnRh aW5pbmcgYQ0KPiA+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9j dW1lbnRhdGlvbiBmaWxlcyAodGhlDQo+ID4gKyJTb2Z0d2FyZSIpLA0KPiA+ICsgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dA0K PiA+ICtsaW1pdGF0aW9uDQo+ID4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLA0KPiA+ICtzdWJsaWNlbnNlLA0KPiA+ICsgKiBh bmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMg dG8gd2hvbQ0KPiA+ICt0aGUNCj4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoNCj4gPiArICoNCj4gPiArICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hh bGwgYmUNCj4gPiAraW5jbHVkZWQgaW4NCj4gPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuDQo+ID4gKyAqDQo+ID4gKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWQ0KPiBLSU5ELA0K PiA+ICtFWFBSRVNTIE9SDQo+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YNCj4gPiArTUVSQ0hBTlRBQklMSVRZLA0KPiA+ICsgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4N Cj4gTk8gRVZFTlQNCj4gPiArU0hBTEwNCj4gPiArICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykg T1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLA0KPiA+ICtEQU1BR0VTIE9SDQo+ ID4gKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1INCj4gPiArT1RIRVJXSVNFLA0KPiA+ICsgKiBBUklTSU5HIEZST00sIE9VVCBPRiBP UiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SDQo+IFRIRSBVU0UNCj4gPiArT1IN Cj4gPiArICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLg0KPiA+ICsgKi8NCj4gPiAr DQo+ID4gKyNpZm5kZWYgX19NWEdQVV9WSV9IX18NCj4gPiArI2RlZmluZSBfX01YR1BVX1ZJX0hf Xw0KPiA+ICsNCj4gPiArI2RlZmluZSBWSV9NQUlMQk9YX1RJTUVET1VUCTE1MA0KPiA+ICsjZGVm aW5lIFZJX01BSUxCT1hfUkVTRVRfVElNRQkxMg0KPiA+ICsNCj4gPiArLyogVkkgbWFpbGJveCBt ZXNzYWdlcyByZXF1ZXN0ICovDQo+ID4gK2VudW0gaWRoX3JlcXVlc3Qgew0KPiA+ICsJSURIX1JF UV9HUFVfSU5JVF9BQ0NFU1MJPSAxLA0KPiA+ICsJSURIX1JFTF9HUFVfSU5JVF9BQ0NFU1MsDQo+ ID4gKwlJREhfUkVRX0dQVV9GSU5JX0FDQ0VTUywNCj4gPiArCUlESF9SRUxfR1BVX0ZJTklfQUND RVNTLA0KPiA+ICsJSURIX1JFUV9HUFVfUkVTRVRfQUNDRVNTDQo+ID4gK307DQo+ID4gKw0KPiA+ ICsvKiBWSSBtYWlsYm94IG1lc3NhZ2VzIGRhdGEgKi8NCj4gPiArZW51bSBpZGhfZXZlbnQgew0K PiA+ICsJSURIX0NMUl9NU0dfQlVGID0gMCwNCj4gPiArCUlESF9SRUFEWV9UT19BQ0NFU1NfR1BV LA0KPiA+ICsJSURIX0ZMUl9OT1RJRklDQVRJT04sDQo+ID4gKwlJREhfRkxSX05PVElGSUNBVElP Tl9DTVBMLA0KPiA+ICsJSURIX0VWRU5UX01BWA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiArZXh0ZXJu IGNvbnN0IHN0cnVjdCBhbWRncHVfdmlydF9vcHMgeGdwdV92aV92aXJ0X29wczsNCj4gPiArDQo+ ID4gK3ZvaWQgeGdwdV92aV9pbml0X2dvbGRlbl9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZp Y2UgKmFkZXYpOyB2b2lkDQo+ID4gK3hncHVfdmlfbWFpbGJveF9zZXRfaXJxX2Z1bmNzKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KTsgaW50DQo+ID4gK3hncHVfdmlfbWFpbGJveF9hZGRfaXJx X2lkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsgaW50DQo+ID4gK3hncHVfdmlfbWFpbGJv eF9nZXRfaXJxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsgdm9pZA0KPiA+ICt4Z3B1X3Zp X21haWxib3hfcHV0X2lycShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7DQo+ID4gKw0KPiA+ ICsjZW5kaWYNCj4gDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=