Return-path: Received: from mailgw01.mediatek.com ([210.61.82.183]:51343 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1751577Ab2BTGSW (ORCPT ); Mon, 20 Feb 2012 01:18:22 -0500 From: =?utf-8?B?Q2hlbi1ZYW5nIExpICjpu47mjK/pmb0p?= To: Ivo Van Doorn , John Li CC: "users@rt2x00.serialmonkey.com" , "linux-wireless@vger.kernel.org" , John Linville Date: Mon, 20 Feb 2012 14:13:10 +0800 Subject: RE: [PATCH] rt2x00:Add RT5372 chipset support Message-ID: (sfid-20120220_071827_439122_CBF8D707) References: <1329471186-1945-1-git-send-email-john.li.mediatek@gmail.com> In-Reply-To: Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-wireless-owner@vger.kernel.org List-ID: RGVhciBBbGwsDQoNCkkgc2luY2VyZWx5IGFwcHJlY2lhdGUgYWxsIG9mIHlvdSB0byByZXZpZXcg bXkgcGF0Y2hlcy4NClRoaXMgZXhwZXJpZW5jZSBoYXMgYmVuZWZpdGVkIG1lIGEgZ3JlYXQgZGVh bC4NCg0KVGhhbmsgeW91IHNvIG11Y2ghDQoNCkpvaG4gTGkNCg0KLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCkZyb206IEl2byBWYW4gRG9vcm4gW21haWx0bzppdmRvb3JuQGdtYWlsLmNvbV0N ClNlbnQ6IFNhdHVyZGF5LCBGZWJydWFyeSAxOCwgMjAxMiA4OjI1IFBNDQpUbzogSm9obiBMaQ0K Q2M6IHVzZXJzQHJ0MngwMC5zZXJpYWxtb25rZXkuY29tOyBsaW51eC13aXJlbGVzc0B2Z2VyLmtl cm5lbC5vcmc7IEpvaG4gTGludmlsbGU7IENoZW4tWWFuZyBMaSAo6buO5oyv6Zm9KQ0KU3ViamVj dDogUmU6IFtQQVRDSF0gcnQyeDAwOkFkZCBSVDUzNzIgY2hpcHNldCBzdXBwb3J0DQoNCjIwMTIv Mi8xNyBKb2huIExpIDxqb2huLmxpLm1lZGlhdGVrQGdtYWlsLmNvbT46DQo+IEZyb206IEpvaG4g TGkgPGNoZW4teWFuZy5saUBtZWRpYXRlay5jb20+DQo+DQo+IFNpZ25lZC1vZmYtYnk6IEpvaG4g TGkgPGNoZW4teWFuZy5saUBtZWRpYXRlay5jb20+DQoNCkFja2VkLWJ5OiBJdm8gdmFuIERvb3Ju IDxJdkRvb3JuQGdtYWlsLmNvbT4NCg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3J0 MngwMC9ydDI4MDAuaCAgICB8ICAgIDEgKw0KPiAgZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAw L3J0MjgwMGxpYi5jIHwgIDE1Mw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ ICBkcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwcGNpLmMgfCAgICAzICstDQo+ICBk cml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwdXNiLmMgfCAgIDE0ICsrKw0KPiAgZHJp dmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oICAgIHwgICAgMSArDQo+ICA1IGZpbGVz IGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkNCj4NCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDAuaA0KPiBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDAuaA0KPiBpbmRleCAyNTcxYTJmLi41NmI3OGM4IDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwLmgNCj4gKysr IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjgwMC5oDQo+IEBAIC02OCw2ICs2OCw3 IEBADQo+ICAjZGVmaW5lIFJGMzMyMiAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMGMNCj4g ICNkZWZpbmUgUkYzMDUzICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwZA0KPiAgI2RlZmlu ZSBSRjUzNzAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1MzcwDQo+ICsjZGVmaW5lIFJGNTM3 MiAgICAgICAgICAgICAgICAgICAgICAgICAweDUzNzINCj4gICNkZWZpbmUgUkY1MzkwICAgICAg ICAgICAgICAgICAgICAgICAgIDB4NTM5MA0KPg0KPiAgLyoNCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDBsaWIuYw0KPiBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3J0MngwMC9ydDI4MDBsaWIuYw0KPiBpbmRleCAyMmExYThmLi45MGQ3YTM2IDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwbGliLmMNCj4gKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjgwMGxpYi5jDQo+IEBAIC00MDIsNyArNDAy LDggQEAgaW50IHJ0MjgwMF9sb2FkX2Zpcm13YXJlKHN0cnVjdCBydDJ4MDBfZGV2DQo+ICpydDJ4 MDBkZXYsDQo+DQo+ICAgICAgICBpZiAocnQyeDAwX2lzX3BjaShydDJ4MDBkZXYpKSB7DQo+ICAg ICAgICAgICAgICAgIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDM1NzIpIHx8DQo+IC0gICAg ICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSkgew0KPiArICAgICAg ICAgICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MCkgfHwNCj4gKyAgICAgICAg ICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTIpKSB7DQo+ICAgICAgICAgICAg ICAgICAgICAgICAgcnQyODAwX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBBVVhfQ1RSTCwNCj4g JnJlZyk7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgcnQyeDAwX3NldF9maWVsZDMyKCZyZWcs DQo+IEFVWF9DVFJMX0ZPUkNFX1BDSUVfQ0xLLCAxKTsNCj4gICAgICAgICAgICAgICAgICAgICAg ICBydDJ4MDBfc2V0X2ZpZWxkMzIoJnJlZywgQVVYX0NUUkxfV0FLRV9QQ0lFX0VOLA0KPiAxKTsg QEAgLTE5MDYsNyArMTkwNyw4IEBAIHN0YXRpYyB2b2lkDQo+IHJ0MjgwMF9jb25maWdfY2hhbm5l bF9yZjUzeHgoc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldiwNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByNTVfbm9uYnRfcmV2W2lkeF0pOw0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0Mngw MGRldiwgNTksDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcjU5X25vbmJ0X3JldltpZHhdKTsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgfSBl bHNlIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApKSB7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgIH0gZWxzZSBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSB8fA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0Mngw MGRldiwNCj4gKyBSVDUzOTIpKSB7DQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dGF0aWMgY29uc3QgY2hhciByNTlfbm9uX2J0W10gPSB7MHg4ZiwNCj4gMHg4ZiwNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg4ZiwgMHg4ZiwgMHg4ZiwgMHg4Ziwg MHg4ZiwNCj4gMHg4ZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MHg4YSwgMHg4OCwgMHg4OCwgMHg4NywgMHg4NywNCj4gMHg4Nn07IEBAIC0xOTU2LDYgKzE5NTgs NyBAQCBzdGF0aWMgdm9pZCBydDI4MDBfY29uZmlnX2NoYW5uZWwoc3RydWN0DQo+IHJ0MngwMF9k ZXYgKnJ0MngwMGRldiwNCj4gICAgICAgICAgICAgICAgcnQyODAwX2NvbmZpZ19jaGFubmVsX3Jm MzA1MihydDJ4MDBkZXYsIGNvbmYsIHJmLA0KPiBpbmZvKTsNCj4gICAgICAgICAgICAgICAgYnJl YWs7DQo+ICAgICAgICBjYXNlIFJGNTM3MDoNCj4gKyAgICAgICBjYXNlIFJGNTM3MjoNCj4gICAg ICAgIGNhc2UgUkY1MzkwOg0KPiAgICAgICAgICAgICAgICBydDI4MDBfY29uZmlnX2NoYW5uZWxf cmY1M3h4KHJ0MngwMGRldiwgY29uZiwgcmYsDQo+IGluZm8pOw0KPiAgICAgICAgICAgICAgICBi cmVhazsNCj4gQEAgLTE5NzIsNyArMTk3NSw4IEBAIHN0YXRpYyB2b2lkIHJ0MjgwMF9jb25maWdf Y2hhbm5lbChzdHJ1Y3QNCj4gcnQyeDAwX2RldiAqcnQyeDAwZGV2LA0KPiAgICAgICAgcnQyODAw X2JicF93cml0ZShydDJ4MDBkZXYsIDg2LCAwKTsNCj4NCj4gICAgICAgIGlmIChyZi0+Y2hhbm5l bCA8PSAxNCkgew0KPiAtICAgICAgICAgICAgICAgaWYgKCFydDJ4MDBfcnQocnQyeDAwZGV2LCBS VDUzOTApKSB7DQo+ICsgICAgICAgICAgICAgICBpZiAoIXJ0MngwMF9ydChydDJ4MDBkZXYsIFJU NTM5MCkgJiYNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIXJ0MngwMF9ydChydDJ4MDBkZXYs IFJUNTM5MikpIHsNCj4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdF9iaXQoQ0FQQUJJ TElUWV9FWFRFUk5BTF9MTkFfQkcsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZydDJ4MDBkZXYtPmNhcF9mbGFncykpIHsNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCA4MiwgMHg2Mik7DQo+IEBAIC0yNTAy LDcgKzI1MDYsOCBAQCBzdGF0aWMgdTggcnQyODAwX2dldF9kZWZhdWx0X3ZnYyhzdHJ1Y3QNCj4g cnQyeDAwX2RldiAqcnQyeDAwZGV2KQ0KPiAgICAgICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0 MngwMGRldiwgUlQzMDcxKSB8fA0KPiAgICAgICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0Mngw MGRldiwgUlQzMDkwKSB8fA0KPiAgICAgICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRl diwgUlQzMzkwKSB8fA0KPiAtICAgICAgICAgICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYs IFJUNTM5MCkpDQo+ICsgICAgICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1 MzkwKSB8fA0KPiArICAgICAgICAgICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5 MikpDQo+ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDB4MWMgKyAoMiAqIHJ0MngwMGRl di0+bG5hX2dhaW4pOw0KPiAgICAgICAgICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIDB4MmUgKyBydDJ4MDBkZXYtPmxuYV9nYWluOyBAQCAtMjYzNyw3DQo+ICsy NjQyLDggQEAgc3RhdGljIGludCBydDI4MDBfaW5pdF9yZWdpc3RlcnMoc3RydWN0IHJ0MngwMF9k ZXYNCj4gKnJ0MngwMGRldikNCj4gICAgICAgIH0gZWxzZSBpZiAocnQyeDAwX3J0KHJ0MngwMGRl diwgUlQzNTcyKSkgew0KPiAgICAgICAgICAgICAgICBydDI4MDBfcmVnaXN0ZXJfd3JpdGUocnQy eDAwZGV2LCBUWF9TV19DRkcwLA0KPiAweDAwMDAwNDAwKTsNCj4gICAgICAgICAgICAgICAgcnQy ODAwX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhfU1dfQ0ZHMSwNCj4gMHgwMDA4MDYwNik7 DQo+IC0gICAgICAgfSBlbHNlIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApKSB7DQo+ ICsgICAgICAgfSBlbHNlIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApIHx8DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MikpIHsN Cj4gICAgICAgICAgICAgICAgcnQyODAwX3JlZ2lzdGVyX3dyaXRlKHJ0MngwMGRldiwgVFhfU1df Q0ZHMCwNCj4gMHgwMDAwMDQwNCk7DQo+ICAgICAgICAgICAgICAgIHJ0MjgwMF9yZWdpc3Rlcl93 cml0ZShydDJ4MDBkZXYsIFRYX1NXX0NGRzEsDQo+IDB4MDAwODA2MDYpOw0KPiAgICAgICAgICAg ICAgICBydDI4MDBfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBUWF9TV19DRkcyLA0KPiAweDAw MDAwMDAwKTsgQEAgLTMwMTMsNyArMzAxOSw4IEBAIHN0YXRpYyBpbnQgcnQyODAwX2luaXRfYmJw KHN0cnVjdA0KPiBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpDQo+ICAgICAgICAgICAgICAgICAgICAg cnQyODAwX3dhaXRfYmJwX3JlYWR5KHJ0MngwMGRldikpKQ0KPiAgICAgICAgICAgICAgICByZXR1 cm4gLUVBQ0NFUzsNCj4NCj4gLSAgICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1Mzkw KSkgew0KPiArICAgICAgIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApIHx8DQo+ICsg ICAgICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTIpKSB7DQo+ICAgICAgICAg ICAgICAgIHJ0MjgwMF9iYnBfcmVhZChydDJ4MDBkZXYsIDQsICZ2YWx1ZSk7DQo+ICAgICAgICAg ICAgICAgIHJ0MngwMF9zZXRfZmllbGQ4KCZ2YWx1ZSwgQkJQNF9NQUNfSUZfQ1RSTCwgMSk7DQo+ ICAgICAgICAgICAgICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCA0LCB2YWx1ZSk7IEBA IC0zMDIxLDE5DQo+ICszMDI4LDIyIEBAIHN0YXRpYyBpbnQgcnQyODAwX2luaXRfYmJwKHN0cnVj dCBydDJ4MDBfZGV2ICpydDJ4MDBkZXYpDQo+DQo+ICAgICAgICBpZiAocnQyODAwX2lzXzMwNXhf c29jKHJ0MngwMGRldikgfHwNCj4gICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDM1 NzIpIHx8DQo+IC0gICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MCkpDQo+ICsg ICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MCkgfHwNCj4gKyAgICAgICAgICAg cnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkyKSkNCj4gICAgICAgICAgICAgICAgcnQyODAwX2Ji cF93cml0ZShydDJ4MDBkZXYsIDMxLCAweDA4KTsNCj4NCj4gICAgICAgIHJ0MjgwMF9iYnBfd3Jp dGUocnQyeDAwZGV2LCA2NSwgMHgyYyk7DQo+ICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0Mngw MGRldiwgNjYsIDB4MzgpOw0KPg0KPiAtICAgICAgIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBS VDUzOTApKQ0KPiArICAgICAgIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApIHx8DQo+ ICsgICAgICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTIpKQ0KPiAgICAgICAg ICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwgNjgsIDB4MGIpOw0KPg0KPiAgICAg ICAgaWYgKHJ0MngwMF9ydF9yZXYocnQyeDAwZGV2LCBSVDI4NjAsIFJFVl9SVDI4NjBDKSkgew0K PiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwgNjksIDB4MTYpOw0K PiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwgNzMsIDB4MTIpOw0K PiAtICAgICAgIH0gZWxzZSBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSkgew0KPiAr ICAgICAgIH0gZWxzZSBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSB8fA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTIpKSB7DQo+ ICAgICAgICAgICAgICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCA2OSwgMHgxMik7DQo+ ICAgICAgICAgICAgICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCA3MywgMHgxMyk7DQo+ ICAgICAgICAgICAgICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCA3NSwgMHg0Nik7IEBA IC0zMDUxLDcNCj4gKzMwNjEsOCBAQCBzdGF0aWMgaW50IHJ0MjgwMF9pbml0X2JicChzdHJ1Y3Qg cnQyeDAwX2RldiAqcnQyeDAwZGV2KQ0KPiAgICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYs IFJUMzA5MCkgfHwNCj4gICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDMzOTApIHx8 DQo+ICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQzNTcyKSB8fA0KPiAtICAgICAg ICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApKSB7DQo+ICsgICAgICAgICAgIHJ0Mngw MF9ydChydDJ4MDBkZXYsIFJUNTM5MCkgfHwNCj4gKyAgICAgICAgICAgcnQyeDAwX3J0KHJ0Mngw MGRldiwgUlQ1MzkyKSkgew0KPiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0Mngw MGRldiwgNzksIDB4MTMpOw0KPiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0Mngw MGRldiwgODAsIDB4MDUpOw0KPiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0Mngw MGRldiwgODEsIDB4MzMpOyBAQCAtMzA2Myw2NA0KPiArMzA3NCw4OCBAQCBzdGF0aWMgaW50IHJ0 MjgwMF9pbml0X2JicChzdHJ1Y3QgcnQyeDAwX2RldiAqcnQyeDAwZGV2KQ0KPiAgICAgICAgfQ0K Pg0KPiAgICAgICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDgyLCAweDYyKTsNCj4gLSAg ICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSkNCj4gKyAgICAgICBpZiAocnQy eDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSB8fA0KPiArICAgICAgICAgICAgICAgcnQyeDAwX3J0 KHJ0MngwMGRldiwgUlQ1MzkyKSkNCj4gICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShy dDJ4MDBkZXYsIDgzLCAweDdhKTsNCj4gICAgICAgIGVsc2UNCj4gICAgICAgICAgICAgICAgcnQy ODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDgzLCAweDZhKTsNCj4NCj4gICAgICAgIGlmIChydDJ4 MDBfcnRfcmV2KHJ0MngwMGRldiwgUlQyODYwLCBSRVZfUlQyODYwRCkpDQo+ICAgICAgICAgICAg ICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCA4NCwgMHgxOSk7DQo+IC0gICAgICAgZWxz ZSBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSkNCj4gKyAgICAgICBlbHNlIGlmIChy dDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApIHx8DQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTIpKQ0KPiAgICAgICAgICAgICAgICBydDI4MDBf YmJwX3dyaXRlKHJ0MngwMGRldiwgODQsIDB4OWEpOw0KPiAgICAgICAgZWxzZQ0KPiAgICAgICAg ICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwgODQsIDB4OTkpOw0KPg0KPiAtICAg ICAgIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApKQ0KPiArICAgICAgIGlmIChydDJ4 MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApIHx8DQo+ICsgICAgICAgICAgICAgICBydDJ4MDBfcnQo cnQyeDAwZGV2LCBSVDUzOTIpKQ0KPiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0 MngwMGRldiwgODYsIDB4MzgpOw0KPiAgICAgICAgZWxzZQ0KPiAgICAgICAgICAgICAgICBydDI4 MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwgODYsIDB4MDApOw0KPg0KPiArICAgICAgIGlmIChydDJ4 MDBfcnQocnQyeDAwZGV2LCBSVDUzOTIpKQ0KPiArICAgICAgICAgICAgICAgcnQyODAwX2JicF93 cml0ZShydDJ4MDBkZXYsIDg4LCAweDkwKTsNCj4gKw0KPiAgICAgICAgcnQyODAwX2JicF93cml0 ZShydDJ4MDBkZXYsIDkxLCAweDA0KTsNCj4NCj4gLSAgICAgICBpZiAocnQyeDAwX3J0KHJ0Mngw MGRldiwgUlQ1MzkwKSkNCj4gKyAgICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1Mzkw KSB8fA0KPiArICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkyKSkNCj4g ICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDkyLCAweDAyKTsNCj4g ICAgICAgIGVsc2UNCj4gICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYs IDkyLCAweDAwKTsNCj4NCj4gKyAgICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1Mzky KSkgew0KPiArICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDk1LCAw eDlhKTsNCj4gKyAgICAgICAgICAgICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCA5OCwg MHgxMik7DQo+ICsgICAgICAgfQ0KPiArDQo+ICAgICAgICBpZiAocnQyeDAwX3J0X3Jldl9ndGUo cnQyeDAwZGV2LCBSVDMwNzAsIFJFVl9SVDMwNzBGKSB8fA0KPiAgICAgICAgICAgIHJ0MngwMF9y dF9yZXZfZ3RlKHJ0MngwMGRldiwgUlQzMDcxLCBSRVZfUlQzMDcxRSkgfHwNCj4gICAgICAgICAg ICBydDJ4MDBfcnRfcmV2X2d0ZShydDJ4MDBkZXYsIFJUMzA5MCwgUkVWX1JUMzA5MEUpIHx8DQo+ ICAgICAgICAgICAgcnQyeDAwX3J0X3Jldl9ndGUocnQyeDAwZGV2LCBSVDMzOTAsIFJFVl9SVDMz OTBFKSB8fA0KPiAgICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUMzU3MikgfHwNCj4g ICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApIHx8DQo+ICsgICAgICAgICAg IHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MikgfHwNCj4gICAgICAgICAgICBydDI4MDBfaXNf MzA1eF9zb2MocnQyeDAwZGV2KSkNCj4gICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShy dDJ4MDBkZXYsIDEwMywgMHhjMCk7DQo+ICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgICAgIHJ0 MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCAxMDMsIDB4MDApOw0KPg0KPiAtICAgICAgIGlmIChy dDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApKQ0KPiArICAgICAgIGlmIChydDJ4MDBfcnQocnQy eDAwZGV2LCBSVDUzOTApIHx8DQo+ICsgICAgICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2 LCBSVDUzOTIpKQ0KPiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwg MTA0LCAweDkyKTsNCj4NCj4gICAgICAgIGlmIChydDI4MDBfaXNfMzA1eF9zb2MocnQyeDAwZGV2 KSkNCj4gICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDEwNSwgMHgw MSk7DQo+IC0gICAgICAgZWxzZSBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSkNCj4g KyAgICAgICBlbHNlIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApIHx8DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTIpKQ0KPiAgICAg ICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwgMTA1LCAweDNjKTsNCj4gICAg ICAgIGVsc2UNCj4gICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDEw NSwgMHgwNSk7DQo+DQo+ICAgICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSkN Cj4gICAgICAgICAgICAgICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDEwNiwgMHgwMyk7 DQo+ICsgICAgICAgZWxzZSBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkyKSkNCj4gKyAg ICAgICAgICAgICAgIHJ0MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCAxMDYsIDB4MTIpOw0KPiAg ICAgICAgZWxzZQ0KPiAgICAgICAgICAgICAgICBydDI4MDBfYmJwX3dyaXRlKHJ0MngwMGRldiwg MTA2LCAweDM1KTsNCj4NCj4gLSAgICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1Mzkw KSkNCj4gKyAgICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSB8fA0KPiArICAg ICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkyKSkNCj4gICAgICAgICAgICAg ICAgcnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDEyOCwgMHgxMik7DQo+DQo+ICsgICAgICAg aWYgKHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MikpIHsNCj4gKyAgICAgICAgICAgICAgIHJ0 MjgwMF9iYnBfd3JpdGUocnQyeDAwZGV2LCAxMzQsIDB4ZDApOw0KPiArICAgICAgICAgICAgICAg cnQyODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDEzNSwgMHhmNik7DQo+ICsgICAgICAgfQ0KPiAr DQo+ICAgICAgICBpZiAocnQyeDAwX3J0KHJ0MngwMGRldiwgUlQzMDcxKSB8fA0KPiAgICAgICAg ICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUMzA5MCkgfHwNCj4gICAgICAgICAgICBydDJ4MDBf cnQocnQyeDAwZGV2LCBSVDMzOTApIHx8DQo+ICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRl diwgUlQzNTcyKSB8fA0KPiAtICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTAp KSB7DQo+ICsgICAgICAgICAgIHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MCkgfHwNCj4gKyAg ICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkyKSkgew0KPiAgICAgICAgICAgICAg ICBydDI4MDBfYmJwX3JlYWQocnQyeDAwZGV2LCAxMzgsICZ2YWx1ZSk7DQo+DQo+ICAgICAgICAg ICAgICAgIHJ0MngwMF9lZXByb21fcmVhZChydDJ4MDBkZXYsIEVFUFJPTV9OSUNfQ09ORjAsDQo+ ICZlZXByb20pOyBAQCAtMzEzMiw3ICszMTY3LDggQEAgc3RhdGljIGludCBydDI4MDBfaW5pdF9i YnAoc3RydWN0DQo+IHJ0MngwMF9kZXYgKnJ0MngwMGRldikNCj4gICAgICAgICAgICAgICAgcnQy ODAwX2JicF93cml0ZShydDJ4MDBkZXYsIDEzOCwgdmFsdWUpOw0KPiAgICAgICAgfQ0KPg0KPiAt ICAgICAgIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApKSB7DQo+ICsgICAgICAgaWYg KHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MCkgfHwNCj4gKyAgICAgICAgICAgICAgIHJ0Mngw MF9ydChydDJ4MDBkZXYsIFJUNTM5MikpIHsNCj4gICAgICAgICAgICAgICAgaW50IGFudCwgZGl2 X21vZGU7DQo+DQo+ICAgICAgICAgICAgICAgIHJ0MngwMF9lZXByb21fcmVhZChydDJ4MDBkZXYs IEVFUFJPTV9OSUNfQ09ORjEsDQo+ICZlZXByb20pOyBAQCAtMzI1OCwxMyArMzI5NCwxNSBAQCBz dGF0aWMgaW50IHJ0MjgwMF9pbml0X3JmY3NyKHN0cnVjdA0KPiBydDJ4MDBfZGV2ICpydDJ4MDBk ZXYpDQo+ICAgICAgICAgICAgIXJ0MngwMF9ydChydDJ4MDBkZXYsIFJUMzM5MCkgJiYNCj4gICAg ICAgICAgICAhcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQzNTcyKSAmJg0KPiAgICAgICAgICAgICFy dDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApICYmDQo+ICsgICAgICAgICAgICFydDJ4MDBfcnQo cnQyeDAwZGV2LCBSVDUzOTIpICYmDQo+ICAgICAgICAgICAgIXJ0MjgwMF9pc18zMDV4X3NvYyhy dDJ4MDBkZXYpKQ0KPiAgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4NCj4gICAgICAgIC8qDQo+ ICAgICAgICAgKiBJbml0IFJGIGNhbGlicmF0aW9uLg0KPiAgICAgICAgICovDQo+IC0gICAgICAg aWYgKHJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MCkpIHsNCj4gKyAgICAgICBpZiAocnQyeDAw X3J0KHJ0MngwMGRldiwgUlQ1MzkwKSB8fA0KPiArICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0 MngwMGRldiwgUlQ1MzkyKSkgew0KPiAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3JfcmVhZChy dDJ4MDBkZXYsIDIsICZyZmNzcik7DQo+ICAgICAgICAgICAgICAgIHJ0MngwMF9zZXRfZmllbGQ4 KCZyZmNzciwgUkZDU1IyX1JFU0NBTF9FTiwgMSk7DQo+ICAgICAgICAgICAgICAgIHJ0MjgwMF9y ZmNzcl93cml0ZShydDJ4MDBkZXYsIDIsIHJmY3NyKTsgQEAgLTM0ODIsNg0KPiArMzUyMCw2NiBA QCBzdGF0aWMgaW50IHJ0MjgwMF9pbml0X3JmY3NyKHN0cnVjdCBydDJ4MDBfZGV2ICpydDJ4MDBk ZXYpDQo+ICAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRl diwgNjEsIDB4ZGQpOw0KPiAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAw ZGV2LCA2MiwgMHgwMCk7DQo+ICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4 MDBkZXYsIDYzLCAweDAwKTsNCj4gKyAgICAgICB9ICAgICAgIGVsc2UgaWYgKHJ0MngwMF9ydChy dDJ4MDBkZXYsIFJUNTM5MikpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3Jm Y3NyX3dyaXRlKHJ0MngwMGRldiwgMSwgMHgxNyk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAg IHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDIsIDB4ODApOw0KPiArICAgICAgICAgICAg ICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCAzLCAweDg4KTsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgNSwgMHgx MCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBk ZXYsIDYsIDB4ZTApOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3Jp dGUocnQyeDAwZGV2LCA3LCAweDAwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAw X3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgMTAsIDB4NTMpOw0KPiArICAgICAgICAgICAgICAgICAg ICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCAxMSwgMHg0YSk7DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDEyLCAweDQ2KTsN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwg MTMsIDB4OWYpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUo cnQyeDAwZGV2LCAxNCwgMHgwMCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9y ZmNzcl93cml0ZShydDJ4MDBkZXYsIDE1LCAweDAwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgMTYsIDB4MDApOw0KPiArICAgICAgICAg ICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCAxOCwgMHgwMyk7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDE5 LCAweDRkKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0 MngwMGRldiwgMjAsIDB4MDApOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZj c3Jfd3JpdGUocnQyeDAwZGV2LCAyMSwgMHg4ZCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAg IHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDIyLCAweDIwKTsNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgMjMsIDB4MGIpOw0KPiAr ICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCAyNCwg MHg0NCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4 MDBkZXYsIDI1LCAweDgwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3Ny X3dyaXRlKHJ0MngwMGRldiwgMjYsIDB4ODIpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBy dDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCAyNywgMHgwOSk7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDI4LCAweDAwKTsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgMjksIDB4 MTApOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAw ZGV2LCAzMCwgMHgxMCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93 cml0ZShydDJ4MDBkZXYsIDMxLCAweDgwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQy ODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgMzIsIDB4MjApOw0KPiArICAgICAgICAgICAgICAg ICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCAzMywgMHhDMCk7DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDM0LCAweDA3 KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRl diwgMzUsIDB4MTIpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3Jp dGUocnQyeDAwZGV2LCAzNiwgMHgwMCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0Mjgw MF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDM3LCAweDA4KTsNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgMzgsIDB4ODkpOw0KPiArICAgICAg ICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCAzOSwgMHgxYik7 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYs IDQwLCAweDBmKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRl KHJ0MngwMGRldiwgNDEsIDB4YmIpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBf cmZjc3Jfd3JpdGUocnQyeDAwZGV2LCA0MiwgMHhkNSk7DQo+ICsgICAgICAgICAgICAgICAgICAg ICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDQzLCAweDliKTsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgNDQsIDB4MGUpOw0K PiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCA0 NSwgMHhhMik7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShy dDJ4MDBkZXYsIDQ2LCAweDczKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3Jm Y3NyX3dyaXRlKHJ0MngwMGRldiwgNDcsIDB4MGMpOw0KPiArICAgICAgICAgICAgICAgICAgICAg ICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCA0OCwgMHgxMCk7DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDQ5LCAweDk0KTsNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgNTAs IDB4OTQpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQy eDAwZGV2LCA1MSwgMHgzYSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNz cl93cml0ZShydDJ4MDBkZXYsIDUyLCAweDQ4KTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg cnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgNTMsIDB4NDQpOw0KPiArICAgICAgICAgICAg ICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCA1NCwgMHgzOCk7DQo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDU1LCAw eDQzKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0Mngw MGRldiwgNTYsIDB4YTEpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jf d3JpdGUocnQyeDAwZGV2LCA1NywgMHgwMCk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0 MjgwMF9yZmNzcl93cml0ZShydDJ4MDBkZXYsIDU4LCAweDM5KTsNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgcnQyODAwX3JmY3NyX3dyaXRlKHJ0MngwMGRldiwgNTksIDB4MDcpOw0KPiArICAg ICAgICAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCA2MCwgMHg0 NSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShydDJ4MDBk ZXYsIDYxLCAweDkxKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dy aXRlKHJ0MngwMGRldiwgNjIsIDB4MzkpOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBydDI4 MDBfcmZjc3Jfd3JpdGUocnQyeDAwZGV2LCA2MywgMHgwNyk7DQo+ICAgICAgICB9DQo+DQo+ICAg ICAgICBpZiAocnQyeDAwX3J0X3Jldl9sdChydDJ4MDBkZXYsIFJUMzA3MCwgUkVWX1JUMzA3MEYp KSB7IEBADQo+IC0zNTQ5LDcgKzM2NDcsOCBAQCBzdGF0aWMgaW50IHJ0MjgwMF9pbml0X3JmY3Ny KHN0cnVjdCBydDJ4MDBfZGV2DQo+ICpydDJ4MDBkZXYpDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgcnQyODAwX2luaXRfcnhfZmlsdGVyKHJ0MngwMGRldiwgdHJ1ZSwgMHgyNywNCj4gMHgxNSk7 DQo+ICAgICAgICB9DQo+DQo+IC0gICAgICAgaWYgKCFydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUz OTApKSB7DQo+ICsgICAgICAgaWYgKCFydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApICYmDQo+ ICsgICAgICAgICAgICAgICAhcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkyKSkgew0KPiAgICAg ICAgICAgICAgICAvKg0KPiAgICAgICAgICAgICAgICAgKiBTZXQgYmFjayB0byBpbml0aWFsIHN0 YXRlDQo+ICAgICAgICAgICAgICAgICAqLw0KPiBAQCAtMzU3Nyw3ICszNjc2LDggQEAgc3RhdGlj IGludCBydDI4MDBfaW5pdF9yZmNzcihzdHJ1Y3QgcnQyeDAwX2Rldg0KPiAqcnQyeDAwZGV2KQ0K PiAgICAgICAgcnQyeDAwX3NldF9maWVsZDMyKCZyZWcsIE9QVF8xNF9DU1JfQklUMCwgMSk7DQo+ ICAgICAgICBydDI4MDBfcmVnaXN0ZXJfd3JpdGUocnQyeDAwZGV2LCBPUFRfMTRfQ1NSLCByZWcp Ow0KPg0KPiAtICAgICAgIGlmICghcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSkgew0KPiAr ICAgICAgIGlmICghcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSAmJg0KPiArICAgICAgICAg ICAgICAgIXJ0MngwMF9ydChydDJ4MDBkZXYsIFJUNTM5MikpIHsNCj4gICAgICAgICAgICAgICAg cnQyODAwX3JmY3NyX3JlYWQocnQyeDAwZGV2LCAxNywgJnJmY3NyKTsNCj4gICAgICAgICAgICAg ICAgcnQyeDAwX3NldF9maWVsZDgoJnJmY3NyLCBSRkNTUjE3X1RYX0xPMV9FTiwgMCk7DQo+ICAg ICAgICAgICAgICAgIGlmIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDMwNzApIHx8IEBAIC0zNjQ1 LDcgKzM3NDUsOA0KPiBAQCBzdGF0aWMgaW50IHJ0MjgwMF9pbml0X3JmY3NyKHN0cnVjdCBydDJ4 MDBfZGV2ICpydDJ4MDBkZXYpDQo+ICAgICAgICAgICAgICAgIHJ0MjgwMF9yZmNzcl93cml0ZShy dDJ4MDBkZXYsIDI3LCByZmNzcik7DQo+ICAgICAgICB9DQo+DQo+IC0gICAgICAgaWYgKHJ0Mngw MF9ydChydDJ4MDBkZXYsIFJUNTM5MCkpIHsNCj4gKyAgICAgICBpZiAocnQyeDAwX3J0KHJ0Mngw MGRldiwgUlQ1MzkwKSB8fA0KPiArICAgICAgICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwg UlQ1MzkyKSkgew0KPiAgICAgICAgICAgICAgICBydDI4MDBfcmZjc3JfcmVhZChydDJ4MDBkZXYs IDM4LCAmcmZjc3IpOw0KPiAgICAgICAgICAgICAgICBydDJ4MDBfc2V0X2ZpZWxkOCgmcmZjc3Is IFJGQ1NSMzhfUlhfTE8xX0VOLCAwKTsNCj4gICAgICAgICAgICAgICAgcnQyODAwX3JmY3NyX3dy aXRlKHJ0MngwMGRldiwgMzgsIHJmY3NyKTsgQEAgLTM5MjksNw0KPiArNDAzMCw4IEBAIGludCBy dDI4MDBfaW5pdF9lZXByb20oc3RydWN0IHJ0MngwMF9kZXYgKnJ0MngwMGRldikNCj4gICAgICAg ICAqIFJUNTN4eDogZGVmaW5lZCBpbiAiRUVQUk9NX0NISVBfSUQiIGZpZWxkDQo+ICAgICAgICAg Ki8NCj4gICAgICAgIHJ0MjgwMF9yZWdpc3Rlcl9yZWFkKHJ0MngwMGRldiwgTUFDX0NTUjAsICZy ZWcpOw0KPiAtICAgICAgIGlmIChydDJ4MDBfZ2V0X2ZpZWxkMzIocmVnLCBNQUNfQ1NSMF9DSElQ U0VUKSA9PSBSVDUzOTApDQo+ICsgICAgICAgaWYgKHJ0MngwMF9nZXRfZmllbGQzMihyZWcsIE1B Q19DU1IwX0NISVBTRVQpID09IFJUNTM5MCB8fA0KPiArICAgICAgICAgICAgICAgcnQyeDAwX2dl dF9maWVsZDMyKHJlZywgTUFDX0NTUjBfQ0hJUFNFVCkgPT0gUlQ1MzkyKQ0KPiAgICAgICAgICAg ICAgICBydDJ4MDBfZWVwcm9tX3JlYWQocnQyeDAwZGV2LCBFRVBST01fQ0hJUF9JRCwgJnZhbHVl KTsNCj4gICAgICAgIGVsc2UNCj4gICAgICAgICAgICAgICAgdmFsdWUgPSBydDJ4MDBfZ2V0X2Zp ZWxkMTYoZWVwcm9tLA0KPiBFRVBST01fTklDX0NPTkYwX1JGX1RZUEUpOyBAQCAtMzk0Nyw2ICs0 MDQ5LDcgQEAgaW50DQo+IHJ0MjgwMF9pbml0X2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2RldiAqcnQy eDAwZGV2KQ0KPiAgICAgICAgY2FzZSBSVDMzOTA6DQo+ICAgICAgICBjYXNlIFJUMzU3MjoNCj4g ICAgICAgIGNhc2UgUlQ1MzkwOg0KPiArICAgICAgIGNhc2UgUlQ1MzkyOg0KPiAgICAgICAgICAg ICAgICBicmVhazsNCj4gICAgICAgIGRlZmF1bHQ6DQo+ICAgICAgICAgICAgICAgIEVSUk9SKHJ0 MngwMGRldiwgIkludmFsaWQgUlQgY2hpcHNldCBkZXRlY3RlZC5cbiIpOyBAQA0KPiAtMzk2NSw2 ICs0MDY4LDcgQEAgaW50IHJ0MjgwMF9pbml0X2VlcHJvbShzdHJ1Y3QgcnQyeDAwX2Rldg0KPiAq cnQyeDAwZGV2KQ0KPiAgICAgICAgY2FzZSBSRjMwNTI6DQo+ICAgICAgICBjYXNlIFJGMzMyMDoN Cj4gICAgICAgIGNhc2UgUkY1MzcwOg0KPiArICAgICAgIGNhc2UgUkY1MzcyOg0KPiAgICAgICAg Y2FzZSBSRjUzOTA6DQo+ICAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICAgZGVmYXVsdDoN Cj4gQEAgLTQyNzEsNiArNDM3NSw3IEBAIGludCBydDI4MDBfcHJvYmVfaHdfbW9kZShzdHJ1Y3Qg cnQyeDAwX2Rldg0KPiAqcnQyeDAwZGV2KQ0KPiAgICAgICAgICAgICAgICAgICBydDJ4MDBfcmYo cnQyeDAwZGV2LCBSRjMwMjIpIHx8DQo+ICAgICAgICAgICAgICAgICAgIHJ0MngwMF9yZihydDJ4 MDBkZXYsIFJGMzMyMCkgfHwNCj4gICAgICAgICAgICAgICAgICAgcnQyeDAwX3JmKHJ0MngwMGRl diwgUkY1MzcwKSB8fA0KPiArICAgICAgICAgICAgICAgICAgcnQyeDAwX3JmKHJ0MngwMGRldiwg UkY1MzcyKSB8fA0KPiAgICAgICAgICAgICAgICAgICBydDJ4MDBfcmYocnQyeDAwZGV2LCBSRjUz OTApKSB7DQo+ICAgICAgICAgICAgICAgIHNwZWMtPm51bV9jaGFubmVscyA9IDE0Ow0KPiAgICAg ICAgICAgICAgICBzcGVjLT5jaGFubmVscyA9IHJmX3ZhbHNfM3g7IGRpZmYgLS1naXQNCj4gYS9k cml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyODAwcGNpLmMNCj4gYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9ydDJ4MDAvcnQyODAwcGNpLmMNCj4gaW5kZXggODM3YjQ2MC4uYmYwZjgzYyAxMDA2 NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjgwMHBjaS5jDQo+ICsr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDI4MDBwY2kuYw0KPiBAQCAtNDgwLDcg KzQ4MCw4IEBAIHN0YXRpYyBpbnQgcnQyODAwcGNpX2luaXRfcmVnaXN0ZXJzKHN0cnVjdA0KPiBy dDJ4MDBfZGV2ICpydDJ4MDBkZXYpDQo+DQo+ICAgICAgICBpZiAocnQyeDAwX2lzX3BjaWUocnQy eDAwZGV2KSAmJg0KPiAgICAgICAgICAgIChydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDM1NzIpIHx8 DQo+IC0gICAgICAgICAgICBydDJ4MDBfcnQocnQyeDAwZGV2LCBSVDUzOTApKSkgew0KPiArICAg ICAgICAgICAgcnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkwKSB8fA0KPiArICAgICAgICAgICAg cnQyeDAwX3J0KHJ0MngwMGRldiwgUlQ1MzkyKSkpIHsNCj4gICAgICAgICAgICAgICAgcnQyeDAw cGNpX3JlZ2lzdGVyX3JlYWQocnQyeDAwZGV2LCBBVVhfQ1RSTCwgJnJlZyk7DQo+ICAgICAgICAg ICAgICAgIHJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBBVVhfQ1RSTF9GT1JDRV9QQ0lFX0NMSywg MSk7DQo+ICAgICAgICAgICAgICAgIHJ0MngwMF9zZXRfZmllbGQzMigmcmVnLCBBVVhfQ1RSTF9X QUtFX1BDSUVfRU4sIDEpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQy eDAwL3J0MjgwMHVzYi5jDQo+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MjgwMHVz Yi5jDQo+IGluZGV4IDdmMjEwMDUuLjY1NjUxMTMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3J0MngwMC9ydDI4MDB1c2IuYw0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9ydDJ4MDAvcnQyODAwdXNiLmMNCj4gQEAgLTExMDEsMTIgKzExMDEsMjYgQEAgc3RhdGljIHN0 cnVjdCB1c2JfZGV2aWNlX2lkDQo+IHJ0MjgwMHVzYl9kZXZpY2VfdGFibGVbXSA9IHsNCj4gICAg ICAgIHsgVVNCX0RFVklDRSgweDVhNTcsIDB4MDI4NCkgfSwNCj4gICNlbmRpZg0KPiAgI2lmZGVm IENPTkZJR19SVDI4MDBVU0JfUlQ1M1hYDQo+ICsgICAgICAgLyogQWxwaGEgKi8NCj4gKyAgICAg ICB7IFVTQl9ERVZJQ0UoMHgyMDAxLCAweDNjMTUpIH0sDQo+ICsgICAgICAgeyBVU0JfREVWSUNF KDB4MjAwMSwgMHgzYzE5KSB9LA0KPiArICAgICAgIC8qIEFyY2FkeWFuICovDQo+ICsgICAgICAg eyBVU0JfREVWSUNFKDB4MDQzZSwgMHg3YTEyKSB9LA0KPiAgICAgICAgLyogQXp1cmV3YXZlICov DQo+ICAgICAgICB7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzMjkpIH0sDQo+ICAgICAgICB7IFVT Ql9ERVZJQ0UoMHgxM2QzLCAweDMzNjUpIH0sDQo+ICsgICAgICAgLyogTEcgaW5ub3RlayAqLw0K PiArICAgICAgIHsgVVNCX0RFVklDRSgweDA0M2UsIDB4N2EyMikgfSwNCj4gKyAgICAgICAvKiBQ YW5hc29uaWMgKi8NCj4gKyAgICAgICB7IFVTQl9ERVZJQ0UoMHgwNGRhLCAweDE4MDEpIH0sDQo+ ICsgICAgICAgeyBVU0JfREVWSUNFKDB4MDRkYSwgMHgxODAwKSB9LA0KPiArICAgICAgIC8qIFBo aWxpcHMgKi8NCj4gKyAgICAgICB7IFVTQl9ERVZJQ0UoMHgwNDcxLCAweDIxMDQpIH0sDQo+ICAg ICAgICAvKiBSYWxpbmsgKi8NCj4gICAgICAgIHsgVVNCX0RFVklDRSgweDE0OGYsIDB4NTM3MCkg fSwNCj4gICAgICAgIHsgVVNCX0RFVklDRSgweDE0OGYsIDB4NTM3MikgfSwNCj4gKyAgICAgICAv KiBVbmtub3duICovDQo+ICsgICAgICAgeyBVU0JfREVWSUNFKDB4MDRkYSwgMHgyM2Y2KSB9LA0K PiAgI2VuZGlmDQo+ICAjaWZkZWYgQ09ORklHX1JUMjgwMFVTQl9VTktOT1dODQo+ICAgICAgICAv Kg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oDQo+ IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnQyeDAwL3J0MngwMC5oDQo+IGluZGV4IGIwM2IyMmMu LmJmNzQzY2QgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3J0MngwMC9ydDJ4 MDAuaA0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9ydDJ4MDAvcnQyeDAwLmgNCj4gQEAg LTE5Miw2ICsxOTIsNyBAQCBzdHJ1Y3QgcnQyeDAwX2NoaXAgew0KPiAgI2RlZmluZSBSVDM1OTMg ICAgICAgICAweDM1OTMNCj4gICNkZWZpbmUgUlQzODgzICAgICAgICAgMHgzODgzICAvKiBXU09D ICovDQo+ICAjZGVmaW5lIFJUNTM5MCAgICAgICAgIDB4NTM5MCAgLyogMi40R0h6ICovDQo+ICsj ZGVmaW5lIFJUNTM5MiAgICAgICAgIDB4NTM5MiAgLyogMi40R0h6ICovDQo+DQo+ICAgICAgICB1 MTYgcmY7DQo+ICAgICAgICB1MTYgcmV2Ow0KPiAtLQ0KPiAxLjcuNi41DQo+DQo+IC0tDQo+IFRv IHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZQ0K PiBsaW51eC13aXJlbGVzcyIgaW4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9tb0B2 Z2VyLmtlcm5lbC5vcmcNCj4gTW9yZSBtYWpvcmRvbW8gaW5mbyBhdCAgaHR0cDovL3ZnZXIua2Vy bmVsLm9yZy9tYWpvcmRvbW8taW5mby5odG1sDQoKKioqKioqKioqKioqKiBFbWFpbCBDb25maWRl bnRpYWxpdHkgTm90aWNlICoqKioqKioqKioqKioqKioqKioqDQpUaGUgaW5mb3JtYXRpb24gY29u dGFpbmVkIGluIHRoaXMgZS1tYWlsIG1lc3NhZ2UgKGluY2x1ZGluZyBhbnkgDQphdHRhY2htZW50 cykgbWF5IGJlIGNvbmZpZGVudGlhbCwgcHJvcHJpZXRhcnksIHByaXZpbGVnZWQsIG9yIG90aGVy d2lzZQ0KZXhlbXB0IGZyb20gZGlzY2xvc3VyZSB1bmRlciBhcHBsaWNhYmxlIGxhd3MuIEl0IGlz IGludGVuZGVkIHRvIGJlIA0KY29udmV5ZWQgb25seSB0byB0aGUgZGVzaWduYXRlZCByZWNpcGll bnQocykuIEFueSB1c2UsIGRpc3NlbWluYXRpb24sIA0KZGlzdHJpYnV0aW9uLCBwcmludGluZywg cmV0YWluaW5nIG9yIGNvcHlpbmcgb2YgdGhpcyBlLW1haWwgKGluY2x1ZGluZyBpdHMgDQphdHRh Y2htZW50cykgYnkgdW5pbnRlbmRlZCByZWNpcGllbnQocykgaXMgc3RyaWN0bHkgcHJvaGliaXRl ZCBhbmQgbWF5IA0KYmUgdW5sYXdmdWwuIElmIHlvdSBhcmUgbm90IGFuIGludGVuZGVkIHJlY2lw aWVudCBvZiB0aGlzIGUtbWFpbCwgb3IgYmVsaWV2ZSANCnRoYXQgeW91IGhhdmUgcmVjZWl2ZWQg dGhpcyBlLW1haWwgaW4gZXJyb3IsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciANCmltbWVkaWF0 ZWx5IChieSByZXBseWluZyB0byB0aGlzIGUtbWFpbCksIGRlbGV0ZSBhbnkgYW5kIGFsbCBjb3Bp ZXMgb2YgDQp0aGlzIGUtbWFpbCAoaW5jbHVkaW5nIGFueSBhdHRhY2htZW50cykgZnJvbSB5b3Vy IHN5c3RlbSwgYW5kIGRvIG5vdA0KZGlzY2xvc2UgdGhlIGNvbnRlbnQgb2YgdGhpcyBlLW1haWwg dG8gYW55IG90aGVyIHBlcnNvbi4gVGhhbmsgeW91IQ==