All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Lin <dlin@marvell.com>
To: Steve deRosier <derosier@gmail.com>
Cc: Kalle Valo <kvalo@codeaurora.org>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	Johannes Berg <johannes@sipsolutions.net>,
	Chor Teck Law <ctlaw@marvell.com>, James Lin <jamesl@marvell.com>,
	Pete Hsieh <peteh@marvell.com>
Subject: Re: [PATCH v9] Add new mac80211 driver mwlwifi.
Date: Wed, 8 Feb 2017 03:16:11 +0000	[thread overview]
Message-ID: <38f601c3e7a246f2aa3781909d143ed5@SC-EXCH02.marvell.com> (raw)
In-Reply-To: <CALLGbRLXa5m+eRhZpvWKyXkemB0qAkB=eoQKwns-vP29+izV+Q@mail.gmail.com>

PiBGcm9tOiBzdGV2ZS5kZXJvc2llckBnbWFpbC5jb20gV3JvdGU6DQo+IEhpIERhdmlkLA0KPiAN
Cj4gRmlyc3Qgb2ZmLCBJIHdhbnRlZCB0byBzYXkgdGhhbmsteW91IGZvciB5b3VyIHdvcmsgYW5k
IGVmZm9ydCBpbiANCj4gdHJ5aW5nIHRvIGdldCBtd2x3aWZpIHVwc3RyZWFtLiBNeSBjb21tZW50
cyBhcmUgaW4tbGluZSB3aXRoIG15IA0KPiBnZW5lcmFsIG5vdGVzIGFmdGVyd2FyZHMuDQo+IA0K
PiBPbiBUdWUsIERlYyAyMCwgMjAxNiBhdCA4OjExIFBNLCBEYXZpZCBMaW4gPGRsaW5AbWFydmVs
bC5jb20+IHdyb3RlOg0KPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv
bWFydmVsbC9td2x3aWZpL2RlYnVnZnMuaA0KPiA+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFy
dmVsbC9td2x3aWZpL2RlYnVnZnMuaA0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gKyNp
Zm5kZWYgX01XTF9ERUJVR0ZTX0hfDQo+ID4gKyNkZWZpbmUgX01XTF9ERUJVR0ZTX0hfDQo+ID4g
Kw0KPiA+ICt2b2lkIG13bF9kZWJ1Z2ZzX2luaXQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpOyB2
b2lkIA0KPiA+ICttd2xfZGVidWdmc19yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpOw0K
PiA+ICsNCj4gDQo+IFlvdSBzaG91bGQgZ3VhcmQgdGhlc2Ugc28gdGhleSBkZWZpbmUgdG8gZW1w
dHkgZnVuY3Rpb25zIGlmIA0KPiBDT05GSUdfREVCVUdfRlMgaXNuJ3QgZW5hYmxlZCBzbyB0aGV5
IGNhbiBiZSB1c2VkIGJ5IGEgY2FsbGVyIHdpdGhvdXQgDQo+IGV4cGxpY2l0IGd1YXJkcy4NCj4g
DQoNCkkgd2lsbCBtb2RpZnkgaXQuDQoNCj4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv
d2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL2Rldi5oDQo+ID4gYi9kcml2ZXJzL25ldC93aXJlbGVz
cy9tYXJ2ZWxsL213bHdpZmkvZGV2LmgNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGlu
ZGV4IDAwMDAwMDAuLmM3YjEwYWMNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvZHJpdmVy
cy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL2Rldi5oDQo+ID4gKyNpZmRlZiBDT05GSUdf
REVCVUdfRlMNCj4gPiArI2RlZmluZSBNQUNfUkVHX0FERFJfUENJKG9mZnNldCkgICAgICAoKHBy
aXYtPmlvYmFzZTEgKyAweEEwMDApICsNCj4gKG9mZnNldCkpDQo+ID4gKw0KPiA+ICsjZGVmaW5l
IE1XTF9BQ0NFU1NfTUFDICAgICAgICAgICAgICAgIDENCj4gPiArI2RlZmluZSBNV0xfQUNDRVNT
X1JGICAgICAgICAgICAgICAgICAyDQo+ID4gKyNkZWZpbmUgTVdMX0FDQ0VTU19CQlAgICAgICAg
ICAgICAgICAgMw0KPiA+ICsjZGVmaW5lIE1XTF9BQ0NFU1NfQ0FVICAgICAgICAgICAgICAgIDQN
Cj4gPiArI2RlZmluZSBNV0xfQUNDRVNTX0FERFIwICAgICAgICAgICAgICA1DQo+ID4gKyNkZWZp
bmUgTVdMX0FDQ0VTU19BRERSMSAgICAgICAgICAgICAgNg0KPiA+ICsjZGVmaW5lIE1XTF9BQ0NF
U1NfQUREUiAgICAgICAgICAgICAgIDcNCj4gPiArI2VuZGlmDQo+IA0KPiBPSywgSSBnZXQgdGhh
dCB5b3UncmUgb25seSB1c2luZyB0aGUgYWJvdmUgaW4gdGhlIGRlYnVnZnMgZnVuY3Rpb25zLCAN
Cj4gYnV0IGFzIGZvciBnZW5lcmljIHJlZ2lzdGVyIGFjY2VzcyBmdW5jdGlvbnMsIHRoZXNlIHdv
dWxkIGJlIHZhbGlkIG5vIA0KPiBtYXR0ZXIgaWYgQ09ORklHX0RFQlVHX0ZTIGlzIGRlZmluZWQu
IEhhdmluZyB0aGUgZ3VhcmQgaGVyZSBqdXN0IHNlZW1zIA0KPiB0byBjb21wbGljYXRlIHRoaW5n
cy4NCj4gDQoNCkkgd2lsbCByZW1vdmUgaXQuDQoNCj4gDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXds
X3ByaXYgew0KPiA+ICsgc3RydWN0IGllZWU4MDIxMV9odyAqaHc7DQo+ID4gKyBzdHJ1Y3QgZmly
bXdhcmUgKmZ3X3Vjb2RlOw0KPiA+ICsgYm9vbCBmd19kZXZpY2VfcHdydGJsOw0KPiA+ICsgYm9v
bCBmb3JiaWRkZW5fc2V0dGluZzsNCj4gPiArDQo+ID4gKyBzdHJ1Y3QgdGhlcm1hbF9jb29saW5n
X2RldmljZSAqY2RldjsNCj4gPiArIHUzMiB0aHJvdHRsZV9zdGF0ZTsNCj4gPiArIHUzMiBxdWll
dF9wZXJpb2Q7DQo+ID4gKyBpbnQgdGVtcGVyYXR1cmU7DQo+ID4gKw0KPiA+ICsjaWZkZWYgQ09O
RklHX0RFQlVHX0ZTDQo+ID4gKyBzdHJ1Y3QgZGVudHJ5ICpkZWJ1Z2ZzX3BoeTsNCj4gPiArIHUz
MiByZWdfdHlwZTsNCj4gPiArIHUzMiByZWdfb2Zmc2V0Ow0KPiA+ICsgdTMyIHJlZ192YWx1ZTsN
Cj4gPiArIGludCB0eF9kZXNjX251bTsNCj4gPiArI2VuZGlmDQo+IA0KPiBXZSdyZSBzYXZpbmcg
YSBmZXcgYnl0ZXMgaGVyZSBhdCB0aGUgY29zdCBvZiBzb21lIGNvbXBsZXhpdHkuIEkgY291bGQg
DQo+IGdvIGVpdGhlciB3YXksIGJ1dCBJIGhhdGUgd2hlbiBwcml2IHN0cnVjdHVyZXMgbXV0YXRl
Lg0KPiANCg0KSSB3aWxsIHJlbW92ZSB0aGUgY29tcGlsZSBjb250cm9sLg0KDQo+IA0KPiA+ICsv
KiBEZWZpbmVkIGluIG1hYzgwMjExLmMuICovDQo+ID4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgaWVl
ZTgwMjExX29wcyBtd2xfbWFjODAyMTFfb3BzOw0KPiANCj4gRG9lcyB0aGlzIG5lZWQgdG8gYmUg
aW4gZGV2Lmg/DQo+IA0KPiANCg0KSXQgY2FuIGJlIG1vdmVkIHRvIG1haW4uYy4NCg0KPiANCj4g
PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL2Z3Y21k
LmMNCj4gPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsd2lmaS9md2NtZC5jDQo+
ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwLi45YzNjY2Y5DQo+ID4g
LS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXds
d2lmaS9md2NtZC5jDQo+ID4gQEAgLTAsMCArMSwyODM3IEBADQo+ID4gKy8qDQo+ID4gKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDE2LCBNYXJ2ZWxsIEludGVybmF0aW9uYWwgTHRkLg0KPiA+ICsg
Kg0KPiA+ICsgKiBUaGlzIHNvZnR3YXJlIGZpbGUgKHRoZSAiRmlsZSIpIGlzIGRpc3RyaWJ1dGVk
IGJ5IE1hcnZlbGwgDQo+ID4gK0ludGVybmF0aW9uYWwNCj4gPiArICogTHRkLiB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gDQo+ID4gKzIs
IEp1bmUgMTk5MQ0KPiA+ICsgKiAodGhlICJMaWNlbnNlIikuICBZb3UgbWF5IHVzZSwgcmVkaXN0
cmlidXRlIGFuZC9vciBtb2RpZnkgdGhpcw0KPiA+ICsNCj4gPiArI2RlZmluZSBNQVhfV0FJVF9G
V19DT01QTEVURV9JVEVSQVRJT05TICAgICAgICAgMjAwMA0KPiA+ICsjZGVmaW5lIE1BWF9XQUlU
X0dFVF9IV19TUEVDU19JVEVSQVRPTlMgICAgICAgICAzDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgY21k
X2hlYWRlciB7DQo+ID4gKyBfX2xlMTYgY29tbWFuZDsNCj4gPiArIF9fbGUxNiBsZW47DQo+ID4g
K30gX19wYWNrZWQ7DQo+ID4gKw0KPiA+ICtzdGF0aWMgYm9vbCBtd2xfZndjbWRfY2hrX2FkYXB0
ZXIoc3RydWN0IG13bF9wcml2ICpwcml2KSB7DQo+ID4gKyB1MzIgcmVndmFsOw0KPiA+ICsNCj4g
PiArIHJlZ3ZhbCA9IHJlYWRsKHByaXYtPmlvYmFzZTEgKyBNQUNSRUdfUkVHX0lOVF9DT0RFKTsN
Cj4gDQo+IENvdWxkbid0IHRoZSBhYm92ZSBiZSBvbmUgbGluZT8NCj4NCg0KWWVzLiBJIHdpbGwg
bW9kaWZ5IGl0Lg0KIA0KPiANCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbXdsX2Z3Y21kX2dldF90
eF9wb3dlcnMoc3RydWN0IG13bF9wcml2ICpwcml2LCB1MTYgDQo+ID4gKypwb3dsaXN0LA0KPiB1
MTYgY2gsDQo+ID4gKyAgIHUxNiBiYW5kLCB1MTYgd2lkdGgsIHUxNiBzdWJfY2gpIHsgIHN0cnVj
dCANCj4gPiAraG9zdGNtZF9jbWRfODAyXzExX3R4X3Bvd2VyICpwY21kOyAgaW50IGk7DQo+ID4g
Kw0KPiA+ICsgcGNtZCA9IChzdHJ1Y3QgaG9zdGNtZF9jbWRfODAyXzExX3R4X3Bvd2VyICopJnBy
aXYtPnBjbWRfYnVmWzBdOw0KPiANCj4gT2Z0ZW4gaGFwcGVucywgc28gSSBwcm9iYWJseSB3b24n
dCBjYXRjaCB0aGVtIGFsbCwgYnV0IHRoaXMgY291bGQgDQo+IGxpa2V3aXNlIGJlIGRvbmUgaW4g
b25lIGxpbmUuIFRoZW4gYWdhaW4uLi4gbGluZSBsZW5ndGggaXNzdWVzLCBzbyA1MC81MCBvbiB0
aGF0Lg0KPiANCj4NCg0KSSB3aWxsIG1vZGlmeSBpdC4NCg0KPiA+ICsNCj4gPiArc3RhdGljIHU4
IG13bF9md2NtZF9nZXRfODBtX3ByaV9jaG5sKHU4IGNoYW5uZWwpIHsNCj4gPiArIHU4IGFjdF9w
cmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8wOw0KPiA+ICsNCj4gPiArIHN3aXRjaCAoY2hhbm5l
bCkgew0KPiA+ICsgY2FzZSAzNjoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hB
Tl8wOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNlIDQwOg0KPiA+ICsgYWN0X3ByaW1hcnkgPSBB
Q1RfUFJJTUFSWV9DSEFOXzE7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgNDQ6DQo+ID4gKyBh
Y3RfcHJpbWFyeSA9IEFDVF9QUklNQVJZX0NIQU5fMjsNCj4gPiArIGJyZWFrOw0KPiA+ICsgY2Fz
ZSA0ODoNCj4gPiArIGFjdF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8zOw0KPiA+ICsgYnJl
YWs7DQo+ID4gKyBjYXNlIDUyOg0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFO
XzA7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgNTY6DQo+ID4gKyBhY3RfcHJpbWFyeSA9IEFD
VF9QUklNQVJZX0NIQU5fMTsNCj4gPiArIGJyZWFrOw0KPiA+ICsgY2FzZSA2MDoNCj4gPiArIGFj
dF9wcmltYXJ5ID0gQUNUX1BSSU1BUllfQ0hBTl8yOw0KPiA+ICsgYnJlYWs7DQo+ID4gKyBjYXNl
IDY0Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzM7DQo+ID4gKyBicmVh
azsNCj4gPiArIGNhc2UgMTAwOg0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFO
XzA7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTA0Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBB
Q1RfUFJJTUFSWV9DSEFOXzE7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTA4Og0KPiA+ICsg
YWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzI7DQo+ID4gKyBicmVhazsNCj4gPiArIGNh
c2UgMTEyOg0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzM7DQo+ID4gKyBi
cmVhazsNCj4gPiArIGNhc2UgMTE2Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9D
SEFOXzA7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTIwOg0KPiA+ICsgYWN0X3ByaW1hcnkg
PSBBQ1RfUFJJTUFSWV9DSEFOXzE7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTI0Og0KPiA+
ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzI7DQo+ID4gKyBicmVhazsNCj4gPiAr
IGNhc2UgMTI4Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzM7DQo+ID4g
KyBicmVhazsNCj4gPiArIGNhc2UgMTMyOg0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFS
WV9DSEFOXzA7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTM2Og0KPiA+ICsgYWN0X3ByaW1h
cnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzE7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTQwOg0K
PiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzI7DQo+ID4gKyBicmVhazsNCj4g
PiArIGNhc2UgMTQ0Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzM7DQo+
ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTQ5Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJ
TUFSWV9DSEFOXzA7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTUzOg0KPiA+ICsgYWN0X3By
aW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzE7DQo+ID4gKyBicmVhazsNCj4gPiArIGNhc2UgMTU3
Og0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzI7DQo+ID4gKyBicmVhazsN
Cj4gPiArIGNhc2UgMTYxOg0KPiA+ICsgYWN0X3ByaW1hcnkgPSBBQ1RfUFJJTUFSWV9DSEFOXzM7
DQo+ID4gKyBicmVhazsNCj4gPiArIH0NCj4gPiArDQo+ID4gKyByZXR1cm4gYWN0X3ByaW1hcnk7
DQo+ID4gK30NCj4gPiArDQo+IA0KPiBJZ25vcmFuY2Ugc3BlYWtpbmcgaGVyZSBwZXJoYXBzLCBi
dXQgdGhlIGFib3ZlIGxvb2tzIGxpa2Ugc29tZXRoaW5nIA0KPiB0aGF0IG5lYXJseSBldmVyeSBk
cml2ZXIgd291bGQgbmVlZCB0byBkZWFsIHdpdGguIElzbid0IHRoZXJlIGEgaGVscGVyIA0KPiBm
dW5jdGlvbiBpbg0KPiBtYWM4MDIxMSBvciBzb21lIGJldHRlciB3YXkgdG8gZG8gdGhpcyB0aGFu
IGV4cGxpY2l0bHkgZG9pbmcgYSBzd2l0Y2ggDQo+IGxvZ2ljIGxvb2t1cD8NCj4gDQoNClRoaXMg
aXMgdGhlIGZ1bmN0aW9uIG5lZWRlZCBmb3Igb3VyIGhvc3QgY29tbWFuZC4gVGhlcmUgaXMgbm8g
aGVscGVyIGZ1bmN0aW9uIGluIG1hYzgwMjExLiBJIHdpbGwgbW9kaWZ5IHRoZSBjb2RlLg0KDQo+
ID4gK2ludCBtd2xfZndjbWRfc2V0X25ld19zdG5fYWRkKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3
LA0KPiA+ICsgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLA0KPiA+ICsgICAgICBzdHJ1
Y3QgaWVlZTgwMjExX3N0YSAqc3RhKQ0KPiA+ICt7DQo+ID4gKyBzdHJ1Y3QgbXdsX3ByaXYgKnBy
aXYgPSBody0+cHJpdjsNCj4gPiArIHN0cnVjdCBtd2xfdmlmICptd2xfdmlmOw0KPiA+ICsgc3Ry
dWN0IGhvc3RjbWRfY21kX3NldF9uZXdfc3RuICpwY21kOw0KPiA+ICsgdTMyIHJhdGVzOw0KPiA+
ICsNCj4gPiArIG13bF92aWYgPSBtd2xfZGV2X2dldF92aWYodmlmKTsNCj4gPiArDQo+ID4gKyBw
Y21kID0gKHN0cnVjdCBob3N0Y21kX2NtZF9zZXRfbmV3X3N0biAqKSZwcml2LT5wY21kX2J1Zlsw
XTsNCj4gPiArDQo+ID4gKyBtdXRleF9sb2NrKCZwcml2LT5md2NtZF9tdXRleCk7DQo+ID4gKw0K
PiA+ICsgbWVtc2V0KHBjbWQsIDB4MDAsIHNpemVvZigqcGNtZCkpOw0KPiA+ICsgcGNtZC0+Y21k
X2hkci5jbWQgPSBjcHVfdG9fbGUxNihIT1NUQ01EX0NNRF9TRVRfTkVXX1NUTik7DQo+ID4gKyBw
Y21kLT5jbWRfaGRyLmxlbiA9IGNwdV90b19sZTE2KHNpemVvZigqcGNtZCkpOyBjbWRfaGRyLm1h
Y2lkID0gDQo+ID4gKyBwY21kLT5td2xfdmlmLT5tYWNpZDsNCj4gPiArDQo+ID4gKyBwY21kLT5h
Y3Rpb24gPSBjcHVfdG9fbGUxNihIT1NUQ01EX0FDVF9TVEFfQUNUSU9OX0FERCk7DQo+ID4gKyBp
ZiAodmlmLT50eXBlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04pIHsNCj4gPiArIHBjbWQtPmFp
ZCA9IDA7DQo+ID4gKyBwY21kLT5zdG5faWQgPSAwOw0KPiA+ICsgfSBlbHNlIHsNCj4gPiArIHBj
bWQtPmFpZCA9IGNwdV90b19sZTE2KHN0YS0+YWlkKTsgc3RuX2lkID0gY3B1X3RvX2xlMTYoc3Rh
LT5haWQpOw0KPiA+ICsgfQ0KPiA+ICsgZXRoZXJfYWRkcl9jb3B5KHBjbWQtPm1hY19hZGRyLCBz
dGEtPmFkZHIpOw0KPiA+ICsNCj4gPiArIGlmIChody0+Y29uZi5jaGFuZGVmLmNoYW4tPmJhbmQg
PT0gTkw4MDIxMV9CQU5EXzJHSFopIHJhdGVzID0NCj4gPiArIHN0YS0+c3VwcF9yYXRlc1tOTDgw
MjExX0JBTkRfMkdIWl07DQo+ID4gKyBlbHNlDQo+ID4gKyByYXRlcyA9IHN0YS0+c3VwcF9yYXRl
c1tOTDgwMjExX0JBTkRfNUdIWl0gPDwgNTsNCj4gPiArIHBjbWQtPnBlZXJfaW5mby5sZWdhY3lf
cmF0ZV9iaXRtYXAgPSBjcHVfdG9fbGUzMihyYXRlcyk7DQo+ID4gKw0KPiA+ICsgaWYgKHN0YS0+
aHRfY2FwLmh0X3N1cHBvcnRlZCkgew0KPiA+ICsgcGNtZC0+cGVlcl9pbmZvLmh0X3JhdGVzWzBd
ID0gc3RhLT5odF9jYXAubWNzLnJ4X21hc2tbMF07IA0KPiA+ICsgcGNtZC0+cGVlcl9pbmZvLmh0
X3JhdGVzWzFdID0gc3RhLT5odF9jYXAubWNzLnJ4X21hc2tbMV07IA0KPiA+ICsgcGNtZC0+cGVl
cl9pbmZvLmh0X3JhdGVzWzJdID0gc3RhLT5odF9jYXAubWNzLnJ4X21hc2tbMl07IA0KPiA+ICsg
cGNtZC0+cGVlcl9pbmZvLmh0X3JhdGVzWzNdID0gc3RhLT5odF9jYXAubWNzLnJ4X21hc2tbM107
IA0KPiA+ICsgcGNtZC0+cGVlcl9pbmZvLmh0X2NhcF9pbmZvID0gY3B1X3RvX2xlMTYoc3RhLT5o
dF9jYXAuY2FwKTsgDQo+ID4gKyBwY21kLT5wZWVyX2luZm8ubWFjX2h0X3BhcmFtX2luZm8gPQ0K
PiA+ICsgKHN0YS0+aHRfY2FwLmFtcGR1X2ZhY3RvciAmIDMpIHwNCj4gPiArICgoc3RhLT5odF9j
YXAuYW1wZHVfZGVuc2l0eSAmIDcpIDw8IDIpOyB9DQo+ID4gKw0KPiA+ICsgaWYgKHN0YS0+dmh0
X2NhcC52aHRfc3VwcG9ydGVkKSB7DQo+ID4gKyBwY21kLT5wZWVyX2luZm8udmh0X21heF9yeF9t
Y3MgPQ0KPiA+ICsgY3B1X3RvX2xlMzIoKigodTMyICopDQo+ID4gKyAmc3RhLT52aHRfY2FwLnZo
dF9tY3MucnhfbWNzX21hcCkpOw0KPiA+ICsgcGNtZC0+cGVlcl9pbmZvLnZodF9jYXAgPSBjcHVf
dG9fbGUzMihzdGEtPnZodF9jYXAuY2FwKTsgDQo+ID4gKyBwY21kLT5wZWVyX2luZm8udmh0X3J4
X2NoYW5uZWxfd2lkdGggPSBzdGEtPmJhbmR3aWR0aDsNCj4gPiArIH0NCj4gPiArDQo+ID4gKyBw
Y21kLT5pc19xb3Nfc3RhID0gc3RhLT53bWU7DQo+ID4gKyBwY21kLT5xb3NfaW5mbyA9ICgoc3Rh
LT51YXBzZF9xdWV1ZXMgPDwgNCkgfCAoc3RhLT5tYXhfc3AgPDwgMSkpOw0KPiA+ICsNCj4gPiAr
IGlmIChtd2xfZndjbWRfZXhlY19jbWQocHJpdiwgSE9TVENNRF9DTURfU0VUX05FV19TVE4pKSB7
IA0KPiA+ICsgbXV0ZXhfdW5sb2NrKCZwcml2LT5md2NtZF9tdXRleCk7IHdpcGh5X2Vycihody0+
d2lwaHksICJmYWlsZWQgDQo+ID4gKyBleGVjdXRpb25cbiIpOyByZXR1cm4gLUVJTzsgfQ0KPiA+
ICsNCj4gPiArIGlmICh2aWYtPnR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTikgeyANCj4g
PiArIGV0aGVyX2FkZHJfY29weShwY21kLT5tYWNfYWRkciwgbXdsX3ZpZi0+c3RhX21hYyk7DQo+
ID4gKw0KPiA+ICsgaWYgKG13bF9md2NtZF9leGVjX2NtZChwcml2LCBIT1NUQ01EX0NNRF9TRVRf
TkVXX1NUTikpIHsgDQo+ID4gKyBtdXRleF91bmxvY2soJnByaXYtPmZ3Y21kX211dGV4KTsgd2lw
aHlfZXJyKGh3LT53aXBoeSwgImZhaWxlZCANCj4gPiArIGV4ZWN1dGlvblxuIik7IHJldHVybiAt
RUlPOyB9IH0NCj4gDQo+IE9LLCB0aW1lIHRvIGFzay4gV2h5IGFyZSB3ZSB0ZWxsaW5nIHRoZSBm
aXJtd2FyZSB0aGF0IHdlJ3JlIGNvbm5lY3RlZCANCj4gdG8gb3Vyc2VsdmVzPyBJIHdvdWxkIHBy
ZXN1bWUgdGhlIGZpcm13YXJlIGFscmVhZHkga25vd3Mgb3VyIE1BQyBhZGRyZXNzLg0KPiANCj4g
SSBub3RpY2VkIHRoaXMgb3JpZ2luYWxseSBiZWNhdXNlIHRoZXJlJ3MgYSBuYXN0eSBidWcgd2l0
aCByZWN5Y2xpbmcgDQo+IHRoZSBjb21tYW5kIGJ1ZmZlciAoZm9yIHNkaW8sIGl0J3Mgbm90IHJl
bGV2YW50IGZvciB0aGlzIGRyaXZlcikgYW5kIA0KPiBpbiBkb2luZyBleHBlcmltZW50cyBJIG5v
dGljZWQgdGhhdCB0aHJvdWdocHV0IHNpZ25pZmljYW50bHkgaW5jcmVhc2VzIA0KPiBpbiBTVEEg
bW9kZSBpZiB3ZSBqdXN0IGxlYXZlIG91dCB0aGUgZW50aXJlIGNsYXVzZS4NCj4gDQo+IEluIGJy
aWVmbHkgZXhhbWluaW5nIHRoZSBmaXJtd2FyZSBzb3VyY2UgSSBzZWUgbm8gcmVhc29uIHRvIGRv
IHRoaXMsIA0KPiBidXQgdGhlcmUncyBhIGhpZGRlbiBjaHVuayBhbmQgSSBkb24ndCBrbm93IHdo
YXQgdGhlIGhhcmR3YXJlIGl0c2VsZiANCj4gZG9lcyB3aXRoIHRoZSBNQUMgdGFibGUuDQo+IA0K
PiBTbywgd2h5IGlzIGl0IG5lY2Vzc2FyeT8NCj4gDQoNCkkgd2lsbCBjaGVjay4NCg0KPiANCj4g
PiAraW50IG13bF9md2NtZF9zZXRfbmV3X3N0bl9kZWwoc3RydWN0IGllZWU4MDIxMV9odyAqaHcs
DQo+ID4gKyAgICAgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIHU4ICphZGRyKSB7ICBzdHJ1
Y3QgbXdsX3ByaXYgKnByaXYgDQo+ID4gKz0NCj4gPiAraHctPnByaXY7ICBzdHJ1Y3QgbXdsX3Zp
ZiAqbXdsX3ZpZjsgIHN0cnVjdCBob3N0Y21kX2NtZF9zZXRfbmV3X3N0bg0KPiA+ICsqcGNtZDsN
Cj4gPiArDQo+ID4gKyBtd2xfdmlmID0gbXdsX2Rldl9nZXRfdmlmKHZpZik7DQo+ID4gKw0KPiA+
ICsgcGNtZCA9IChzdHJ1Y3QgaG9zdGNtZF9jbWRfc2V0X25ld19zdG4gKikmcHJpdi0+cGNtZF9i
dWZbMF07DQo+ID4gKw0KPiA+ICsgbXV0ZXhfbG9jaygmcHJpdi0+ZndjbWRfbXV0ZXgpOw0KPiA+
ICsNCj4gPiArIG1lbXNldChwY21kLCAweDAwLCBzaXplb2YoKnBjbWQpKTsNCj4gPiArIHBjbWQt
PmNtZF9oZHIuY21kID0gY3B1X3RvX2xlMTYoSE9TVENNRF9DTURfU0VUX05FV19TVE4pOw0KPiA+
ICsgcGNtZC0+Y21kX2hkci5sZW4gPSBjcHVfdG9fbGUxNihzaXplb2YoKnBjbWQpKTsgY21kX2hk
ci5tYWNpZCA9IA0KPiA+ICsgcGNtZC0+bXdsX3ZpZi0+bWFjaWQ7DQo+ID4gKw0KPiA+ICsgcGNt
ZC0+YWN0aW9uID0gY3B1X3RvX2xlMTYoSE9TVENNRF9BQ1RfU1RBX0FDVElPTl9SRU1PVkUpOw0K
PiA+ICsgZXRoZXJfYWRkcl9jb3B5KHBjbWQtPm1hY19hZGRyLCBhZGRyKTsNCj4gPiArDQo+ID4g
KyBpZiAobXdsX2Z3Y21kX2V4ZWNfY21kKHByaXYsIEhPU1RDTURfQ01EX1NFVF9ORVdfU1ROKSkg
eyANCj4gPiArIG11dGV4X3VubG9jaygmcHJpdi0+ZndjbWRfbXV0ZXgpOyB3aXBoeV9lcnIoaHct
PndpcGh5LCAiZmFpbGVkIA0KPiA+ICsgZXhlY3V0aW9uXG4iKTsgcmV0dXJuIC1FSU87IH0NCj4g
PiArDQo+ID4gKyBpZiAodmlmLT50eXBlID09IE5MODAyMTFfSUZUWVBFX1NUQVRJT04pIHsgDQo+
ID4gKyBldGhlcl9hZGRyX2NvcHkocGNtZC0+bWFjX2FkZHIsIG13bF92aWYtPnN0YV9tYWMpOw0K
PiA+ICsNCj4gPiArIGlmIChtd2xfZndjbWRfZXhlY19jbWQocHJpdiwgSE9TVENNRF9DTURfU0VU
X05FV19TVE4pKSB7IA0KPiA+ICsgbXV0ZXhfdW5sb2NrKCZwcml2LT5md2NtZF9tdXRleCk7IHdp
cGh5X2Vycihody0+d2lwaHksICJmYWlsZWQgDQo+ID4gKyBleGVjdXRpb25cbiIpOyByZXR1cm4g
LUVJTzsgfSB9DQo+ID4gKw0KPiANCj4gRGl0dG8uDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9kcml2
ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213bHdpZmkvZndkbC5jDQo+ID4gYi9kcml2ZXJzL25l
dC93aXJlbGVzcy9tYXJ2ZWxsL213bHdpZmkvZndkbC5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2
NDQNCj4gPiBpbmRleCAwMDAwMDAwLi5mNGQ1ZmExDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsr
KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsd2lmaS9md2RsLmMNCj4gLi4uDQo+
ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBtd2xfZndkbF90cmlnX3BjaWNtZChzdHJ1Y3QgbXdsX3By
aXYgKnByaXYpIHsgDQo+ID4gK3dyaXRlbChwcml2LT5wcGh5c19jbWRfYnVmLCBwcml2LT5pb2Jh
c2UxICsgTUFDUkVHX1JFR19HRU5fUFRSKTsNCj4gPiArDQo+ID4gKyB3cml0ZWwoMHgwMCwgcHJp
di0+aW9iYXNlMSArIE1BQ1JFR19SRUdfSU5UX0NPREUpOw0KPiA+ICsNCj4gPiArIHdyaXRlbChN
QUNSRUdfSDJBUklDX0JJVF9ET09SX0JFTEwsDQo+ID4gKyAgICAgICBwcml2LT5pb2Jhc2UxICsg
TUFDUkVHX1JFR19IMkFfSU5URVJSVVBUX0VWRU5UUyk7IH0NCj4gPiArDQo+ID4gK3N0YXRpYyB2
b2lkIG13bF9md2RsX3RyaWdfcGNpY21kX2Jvb3Rjb2RlKHN0cnVjdCBtd2xfcHJpdiAqcHJpdikg
eyANCj4gPiArd3JpdGVsKHByaXYtPnBwaHlzX2NtZF9idWYsIHByaXYtPmlvYmFzZTEgKyBNQUNS
RUdfUkVHX0dFTl9QVFIpOw0KPiA+ICsNCj4gPiArIHdyaXRlbCgweDAwLCBwcml2LT5pb2Jhc2Ux
ICsgTUFDUkVHX1JFR19JTlRfQ09ERSk7DQo+ID4gKw0KPiA+ICsgd3JpdGVsKE1BQ1JFR19IMkFS
SUNfQklUX0RPT1JfQkVMTCwNCj4gPiArICAgICAgIHByaXYtPmlvYmFzZTEgKyBNQUNSRUdfUkVH
X0gyQV9JTlRFUlJVUFRfRVZFTlRTKTsgfQ0KPiA+ICsNCj4gDQo+IFVubGVzcyBJJ20gbWlzdGFr
ZW4gdGhlIGFib3ZlIHR3byBmdW5jdGlvbnMgYXJlIDEwMCUgaWRlbnRpY2FsLiBJbiBteSANCj4g
dmVyc2lvbiBJIGNvbGxhcHNlZCB0aGVtIHRvIGEgc2luZ2xlIG9uZSBhbmQgaXQgd29ya3MgZmlu
ZS4NCj4gDQoNCkkgd2lsbCBjaGVjayBhbmQgbW9kaWZ5IGl0Lg0KDQo+ID4gK2ludCBtd2xfZndk
bF9kb3dubG9hZF9maXJtd2FyZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykgew0KPiAuLi4NCj4g
PiArDQo+ID4gKyB3aGlsZSAoc2l6ZV9md19kb3dubG9hZGVkIDwgZnctPnNpemUpIHsgbGVuID0g
cmVhZGwocHJpdi0+aW9iYXNlMSANCj4gPiArICsgMHhjNDApOw0KPiA+ICsNCj4gPiArIGlmICgh
bGVuKQ0KPiA+ICsgYnJlYWs7DQo+ID4gKw0KPiA+ICsgLyogdGhpcyBjb3BpZXMgdGhlIG5leHQg
Y2h1bmsgb2YgZncgYmluYXJ5IHRvIGJlIGRlbGl2ZXJlZCAqLyANCj4gPiArIG1lbWNweSgoY2hh
ciAqKSZwcml2LT5wY21kX2J1ZlswXSwNCj4gPiArICAgICAgIChmdy0+ZGF0YSArIHNpemVfZndf
ZG93bmxvYWRlZCksIGxlbik7DQo+ID4gKw0KPiA+ICsgLyogdGhpcyBmdW5jdGlvbiB3cml0ZXMg
cGRhdGEgdG8gYzEwLCB0aGVuIHdyaXRlIDIgdG8gYzE4ICovIA0KPiA+ICsgbXdsX2Z3ZGxfdHJp
Z19wY2ljbWRfYm9vdGNvZGUocHJpdik7DQo+ID4gKw0KPiA+ICsgLyogdGhpcyBpcyBhcmJpdHJh
cnkgcGVyIHlvdXIgcGxhdGZvcm07IHdlIHVzZSAweGZmZmYgKi8gDQo+ID4gKyBjdXJyX2l0ZXJh
dGlvbiA9IEZXX01BWF9OVU1fQ0hFQ0tTOw0KPiA+ICsNCj4gPiArIC8qIE5PVEU6IHRoZSBmb2xs
b3dpbmcgYmFjayB0byBiYWNrIGNoZWNrcyBvbiBDMUMgaXMgdGltZQ0KPiA+ICsgKiBzZW5zaXRp
dmUsIGhlbmNlIG1heSBuZWVkIHRvIGJlIHR3ZWFrZWQgZGVwZW5kZW50IG9uIGhvc3QNCj4gPiAr
ICogcHJvY2Vzc29yLiBUaW1lIGZvciBTQzIgdG8gZ28gZnJvbSB0aGUgd3JpdGUgb2YgZXZlbnQg
MiB0bw0KPiA+ICsgKiBDMUMgPT0gMiBpcyB+MTMwMCBuU2VjLiBIZW5jZSB0aGUgY2hlY2tpbmdz
IG9uIGhvc3QgaGFzIHRvDQo+ID4gKyAqIGNvbnNpZGVyIGhvdyBlZmZpY2llbnQgeW91ciBjb2Rl
IGNhbiBiZSB0byBtZWV0IHRoaXMgdGltaW5nLA0KPiA+ICsgKiBvciB5b3UgY2FuIGFsdGVybmF0
aXZlbHkgdHdlYWsgdGhpcyByb3V0aW5lcyB0byBmaXQgeW91cg0KPiA+ICsgKiBwbGF0Zm9ybQ0K
PiA+ICsgKi8NCj4gPiArIGRvIHsNCj4gPiArIGludF9jb2RlID0gcmVhZGwocHJpdi0+aW9iYXNl
MSArIDB4YzFjKTsgaWYgKGludF9jb2RlICE9IDApIGJyZWFrOyANCj4gPiArIGNvbmRfcmVzY2hl
ZCgpOyBjdXJyX2l0ZXJhdGlvbi0tOyB9IHdoaWxlIChjdXJyX2l0ZXJhdGlvbik7DQo+ID4gKw0K
PiANCj4gVGhlcmUncyBzb21ldGhpbmcgZmlzaHkgd2l0aCB0aGUgYWJvdmUuIEhhdmluZyB0byAi
dHdlYWsiIGRyaXZlciANCj4gdGltaW5nIGJhc2VkIG9uIHBsYXRmb3JtIGlzIGEgaHVnZSByZWQg
ZmxhZy4gVGhlcmUncyBnb3QgdG8gYmUgDQo+IHNvbWV0aGluZyBiZXR0ZXIgdGhhbiB0aGUgYWJv
dmUuDQo+IA0KDQpJdCB3aWxsIHJlbGVhc2UgQ1BVLg0KDQo+IA0KPiA+IGRpZmYgLS1naXQgYS9k
cml2ZXJzL25ldC93aXJlbGVzcy9tYXJ2ZWxsL213bHdpZmkvbWFjODAyMTEuYw0KPiA+IGIvZHJp
dmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL21hYzgwMjExLmMNCj4gLi4uDQo+ID4g
K3N0YXRpYyBpbnQgbXdsX21hYzgwMjExX2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywN
Cj4gPiArICAgICAgIHUzMiBjaGFuZ2VkKQ0KPiA+ICt7DQo+ID4gKyBzdHJ1Y3QgaWVlZTgwMjEx
X2NvbmYgKmNvbmYgPSAmaHctPmNvbmY7ICBpbnQgcmM7DQo+ID4gKw0KPiA+ICsgd2lwaHlfZGVi
dWcoaHctPndpcGh5LCAiY2hhbmdlOiAweCV4XG4iLCBjaGFuZ2VkKTsNCj4gPiArDQo+ID4gKyBp
ZiAoY29uZi0+ZmxhZ3MgJiBJRUVFODAyMTFfQ09ORl9JRExFKSByYyA9IA0KPiA+ICsgbXdsX2Z3
Y21kX3JhZGlvX2Rpc2FibGUoaHcpOyBlbHNlIHJjID0gbXdsX2Z3Y21kX3JhZGlvX2VuYWJsZSho
dyk7DQo+ID4gKw0KPiA+ICsgaWYgKHJjKQ0KPiA+ICsgZ290byBvdXQ7DQo+ID4gKw0KPiA+ICsg
aWYgKGNoYW5nZWQgJiBJRUVFODAyMTFfQ09ORl9DSEFOR0VfQ0hBTk5FTCkgeyBpbnQgcmF0ZSA9
IDA7DQo+ID4gKw0KPiA+ICsgaWYgKGNvbmYtPmNoYW5kZWYuY2hhbi0+YmFuZCA9PSBOTDgwMjEx
X0JBTkRfMkdIWikgew0KPiANCj4gQ2F1c2VzIGNvbXBpbGUgd2FybmluZy4gU2hvdWxkIGJlIElF
RUU4MDIxMV9CQU5EXzJHSFouDQo+IA0KDQpObywgeW91IG5lZWQgdG8gdXNlIHVwZGF0ZWQgbWFj
ODAyMTEuDQoNCj4gDQo+ID4gKyBtd2xfZndjbWRfc2V0X2FwbW9kZShodywgQVBfTU9ERV8yXzRH
SFpfMTFBQ19NSVhFRCk7IA0KPiA+ICsgbXdsX2Z3Y21kX3NldF9saW5rYWRhcHRfY3NfbW9kZSho
dywNCj4gPiArIExJTktfQ1NfU1RBVEVfQ09OU0VSVik7DQo+ID4gKyByYXRlID0gbXdsX3JhdGVz
XzI0WzBdLmh3X3ZhbHVlOw0KPiA+ICsgfSBlbHNlIGlmIChjb25mLT5jaGFuZGVmLmNoYW4tPmJh
bmQgPT0gTkw4MDIxMV9CQU5EXzVHSFopIHsNCj4gDQo+IENhdXNlcyBjb21waWxlIHdhcm5pbmcu
IFNob3VsZCBiZSBJRUVFODAyMTFfQkFORF81R0haLg0KPiANCj4gPiArc3RhdGljIHZvaWQgbXds
X21hYzgwMjExX2Jzc19pbmZvX2NoYW5nZWRfYXAoc3RydWN0IGllZWU4MDIxMV9odw0KPiAqaHcs
DQo+ID4gKyAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwNCj4gPiArICAgICBzdHJ1Y3Qg
aWVlZTgwMjExX2Jzc19jb25mICppbmZvLA0KPiA+ICsgICAgIHUzMiBjaGFuZ2VkKQ0KPiA+ICt7
DQo+ID4gKyBpZiAoY2hhbmdlZCAmIEJTU19DSEFOR0VEX0VSUF9QUkVBTUJMRSkgDQo+ID4gK213
bF9md2NtZF9zZXRfcmFkaW9fcHJlYW1ibGUoaHcsDQo+ID4gKyAgICAgdmlmLT5ic3NfY29uZi51
c2Vfc2hvcnRfcHJlYW1ibGUpOw0KPiA+ICsNCj4gPiArIGlmIChjaGFuZ2VkICYgQlNTX0NIQU5H
RURfQkFTSUNfUkFURVMpIHsgaW50IGlkeDsgaW50IHJhdGU7DQo+ID4gKw0KPiA+ICsgLyogVXNl
IGxvd2VzdCBzdXBwb3J0ZWQgYmFzaWMgcmF0ZSBmb3IgbXVsdGljYXN0cw0KPiA+ICsgKiBhbmQg
bWFuYWdlbWVudCBmcmFtZXMgKHN1Y2ggYXMgcHJvYmUgcmVzcG9uc2VzIC0tDQo+ID4gKyAqIGJl
YWNvbnMgd2lsbCBhbHdheXMgZ28gb3V0IGF0IDEgTWIvcykuDQo+ID4gKyAqLw0KPiA+ICsgaWR4
ID0gZmZzKHZpZi0+YnNzX2NvbmYuYmFzaWNfcmF0ZXMpOyBpZiAoaWR4KSBpZHgtLTsNCj4gPiAr
DQo+ID4gKyBpZiAoaHctPmNvbmYuY2hhbmRlZi5jaGFuLT5iYW5kID09IE5MODAyMTFfQkFORF8y
R0haKQ0KPiANCj4gQ2F1c2VzIGNvbXBpbGUgd2FybmluZy4gU2hvdWxkIGJlIElFRUU4MDIxMV9C
QU5EXzJHSFouDQo+IA0KDQpObywgeW91IG5lZWQgdG8gdXNlIHVwZGF0ZWQgbWFjODAyMTEuDQoN
Cj4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsd2lm
aS9tYWluLmMNCj4gPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21hcnZlbGwvbXdsd2lmaS9tYWlu
LmMNCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiAuLi4NCj4gPiArI2luY2x1ZGUgPGxpbnV4
L21vZHVsZS5oPg0KPiA+ICsjaWZkZWYgQ09ORklHX09GDQo+ID4gKyNpbmNsdWRlIDxsaW51eC9v
Zi5oPg0KPiA+ICsjZW5kaWYNCj4gDQo+IElzbid0IG9mLmggaW50ZXJuYWxseSBndWFyZGVkPw0K
PiANCg0KWWVzLiBJdCBpcyBtZW50aW9uZWQgYnkgSm9oYW5uZXMsIEkgd2lsbCByZW1vdmUgaXQu
DQoNCj4gPiArDQo+ID4gKyNpbmNsdWRlICJzeXNhZHB0LmgiDQo+ID4gKyNpbmNsdWRlICJkZXYu
aCINCj4gPiArI2luY2x1ZGUgImZ3ZGwuaCINCj4gPiArI2luY2x1ZGUgImZ3Y21kLmgiDQo+ID4g
KyNpbmNsdWRlICJ0eC5oIg0KPiA+ICsjaW5jbHVkZSAicnguaCINCj4gPiArI2luY2x1ZGUgImlz
ci5oIg0KPiA+ICsjaW5jbHVkZSAidGhlcm1hbC5oIg0KPiA+ICsjaWZkZWYgQ09ORklHX0RFQlVH
X0ZTDQo+ID4gKyNpbmNsdWRlICJkZWJ1Z2ZzLmgiDQo+ID4gKyNlbmRpZg0KPiANCj4gWW91ciBk
ZWJ1Z2ZzLmggc2hvdWxkIGJlIGludGVybmFsbHkgZ3VhcmRlZC4gTW9yZSBsYXRlci4uLg0KPiAN
Cg0KU2FtZSBhcyBhYm92ZS4NCg0KPiA+ICsNCj4gPiArI2RlZmluZSBNV0xfREVTQyAgICAgICAg
ICJNYXJ2ZWxsIDgwMi4xMWFjIFdpcmVsZXNzIE5ldHdvcmsgRHJpdmVyIg0KPiA+ICsjZGVmaW5l
IE1XTF9ERVZfTkFNRSAgICAgIk1hcnZlbGwgODAyLjExYWMgQWRhcHRlciINCj4gPiArDQo+ID4g
KyNkZWZpbmUgRklMRV9QQVRIX0xFTiAgICA2NA0KPiA+ICsjZGVmaW5lIENNRF9CVUZfU0laRSAg
ICAgMHg0MDAwDQo+ID4gKw0KPiA+ICtzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXdsX3Bj
aV9pZF90YmxbXSA9IHsgIHsgDQo+ID4gK1BDSV9WREVWSUNFKE1BUlZFTEwsIDB4MmE1NSksIC5k
cml2ZXJfZGF0YSA9IE1XTDg4NjQsIH0sICB7IA0KPiA+ICtQQ0lfVkRFVklDRShNQVJWRUxMLCAw
eDJiMzgpLCAuZHJpdmVyX2RhdGEgPSBNV0w4ODk3LCB9LCAgeyB9LCB9Ow0KPiA+ICsNCj4gPiAr
c3RhdGljIHN0cnVjdCBtd2xfY2hpcF9pbmZvIG13bF9jaGlwX3RibFtdID0geyAgW01XTDg4NjRd
ID0geyANCj4gPiArLnBhcnRfbmFtZSA9ICI4OFc4ODY0IiwgIC5md19pbWFnZSA9ICJtd2x3aWZp
Lzg4Vzg4NjQuYmluIiwgDQo+ID4gKy5hbnRlbm5hX3R4ID0gQU5URU5OQV9UWF80X0FVVE8sICAu
YW50ZW5uYV9yeCA9DQo+IEFOVEVOTkFfUlhfNF9BVVRPLA0KPiA+ICt9LCAgW01XTDg4OTddID0g
eyAgLnBhcnRfbmFtZSA9ICI4OFc4ODk3IiwgIC5md19pbWFnZSA9IA0KPiA+ICsibXdsd2lmaS84
OFc4ODk3LmJpbiIsICAuYW50ZW5uYV90eCA9IEFOVEVOTkFfVFhfMiwgIC5hbnRlbm5hX3J4ID0g
DQo+ID4gK0FOVEVOTkFfUlhfMiwgIH0sIH07DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3Qgc3Ry
dWN0IGllZWU4MDIxMV9jaGFubmVsIG13bF9jaGFubmVsc18yNFtdID0geyAgeyANCj4gPiArLmJh
bmQgPSBOTDgwMjExX0JBTkRfMkdIWiwgLmNlbnRlcl9mcmVxID0gMjQxMiwgLmh3X3ZhbHVlID0g
MSwgfSwgIA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzJHSFosIC5jZW50ZXJfZnJlcSA9
IDI0MTcsIC5od192YWx1ZSA9IDIsIH0sICANCj4gPiAreyAuYmFuZCA9IE5MODAyMTFfQkFORF8y
R0haLCAuY2VudGVyX2ZyZXEgPSAyNDIyLCAuaHdfdmFsdWUgPSAzLCB9LCAgDQo+ID4gK3sgLmJh
bmQgPSBOTDgwMjExX0JBTkRfMkdIWiwgLmNlbnRlcl9mcmVxID0gMjQyNywgLmh3X3ZhbHVlID0g
NCwgfSwgIA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzJHSFosIC5jZW50ZXJfZnJlcSA9
IDI0MzIsIC5od192YWx1ZSA9IDUsIH0sICANCj4gPiAreyAuYmFuZCA9IE5MODAyMTFfQkFORF8y
R0haLCAuY2VudGVyX2ZyZXEgPSAyNDM3LCAuaHdfdmFsdWUgPSA2LCB9LCAgDQo+ID4gK3sgLmJh
bmQgPSBOTDgwMjExX0JBTkRfMkdIWiwgLmNlbnRlcl9mcmVxID0gMjQ0MiwgLmh3X3ZhbHVlID0g
NywgfSwgIA0KPiA+ICt7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzJHSFosIC5jZW50ZXJfZnJlcSA9
IDI0NDcsIC5od192YWx1ZSA9IDgsIH0sICANCj4gPiAreyAuYmFuZCA9IE5MODAyMTFfQkFORF8y
R0haLCAuY2VudGVyX2ZyZXEgPSAyNDUyLCAuaHdfdmFsdWUgPSA5LCB9LCAgDQo+ID4gK3sgLmJh
bmQgPSBOTDgwMjExX0JBTkRfMkdIWiwgLmNlbnRlcl9mcmVxID0gMjQ1NywgLmh3X3ZhbHVlID0g
MTAsIA0KPiA+ICt9LCAgeyAuYmFuZCA9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVyX2ZyZXEg
PSAyNDYyLCAuaHdfdmFsdWUgPSANCj4gPiArMTEsIH0sICB7IC5iYW5kID0gTkw4MDIxMV9CQU5E
XzJHSFosIC5jZW50ZXJfZnJlcSA9IDI0NjcsIC5od192YWx1ZSANCj4gPiArPSAxMiwgfSwgIHsg
LmJhbmQgPSBOTDgwMjExX0JBTkRfMkdIWiwgLmNlbnRlcl9mcmVxID0gMjQ3MiwgDQo+ID4gKy5o
d192YWx1ZSA9IDEzLCB9LCAgeyAuYmFuZCA9IE5MODAyMTFfQkFORF8yR0haLCAuY2VudGVyX2Zy
ZXEgPSANCj4gPiArMjQ4NCwgLmh3X3ZhbHVlID0gMTQsIH0sIH07DQo+ID4gKw0KPiANCj4gU28s
IGludGVyZXN0aW5nIHRoaW5nLi4uIHRoZXJlJ3MgNjIgdXNlcyBvZiBOTDgwMjExX0JBTkRfeCBp
biB0aGlzIA0KPiBkcml2ZXIsIGJ1dCBvbmx5IHRoZSBmZXcgc3BvdHMgSSBtZW50aW9uZWQgY2F1
c2Ugd2FybmluZ3MuIEkgbm90aWNlIGluIA0KPiB0aGUgbW9zdCByZWNlbnQgaW50ZXJuYWwgZHJv
cCB5b3UndmUgY2hhbmdlZCB0aGUgYWJvdmUgdG8gDQo+IElFRUU4MDIxMV9CQU5EXzJHSFouIEkg
d29uZGVyIGlmIHRoYXQgaXMgd2hhdCBzaG91bGQgYmUgZG9uZSBldmVyeXdoZXJlPw0KPiANCg0K
UGxlYXNlIHVzZSB1cGRhdGVkIG1hYzgwMjExLg0KDQo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg
aWVlZTgwMjExX3JhdGUgbXdsX3JhdGVzXzI0W10gPSB7ICB7IC5iaXRyYXRlID0gDQo+ID4gKzEw
LCAuaHdfdmFsdWUgPSAyLCB9LCAgeyAuYml0cmF0ZSA9IDIwLCAuaHdfdmFsdWUgPSA0LCB9LCAg
eyANCj4gPiArLmJpdHJhdGUgPSA1NSwgLmh3X3ZhbHVlID0gMTEsIH0sICB7IC5iaXRyYXRlID0g
MTEwLCAuaHdfdmFsdWUgPSANCj4gPiArMjIsIH0sICB7IC5iaXRyYXRlID0gMjIwLCAuaHdfdmFs
dWUgPSA0NCwgfSwgIHsgLmJpdHJhdGUgPSA2MCwgDQo+ID4gKy5od192YWx1ZSA9IDEyLCB9LCAg
eyAuYml0cmF0ZSA9IDkwLCAuaHdfdmFsdWUgPSAxOCwgfSwgIHsgLmJpdHJhdGUgDQo+ID4gKz0g
MTIwLCAuaHdfdmFsdWUgPSAyNCwgfSwgIHsgLmJpdHJhdGUgPSAxODAsIC5od192YWx1ZSA9IDM2
LCB9LCAgeyANCj4gPiArLmJpdHJhdGUgPSAyNDAsIC5od192YWx1ZSA9IDQ4LCB9LCAgeyAuYml0
cmF0ZSA9IDM2MCwgLmh3X3ZhbHVlID0gDQo+ID4gKzcyLCB9LCAgeyAuYml0cmF0ZSA9IDQ4MCwg
Lmh3X3ZhbHVlID0gOTYsIH0sICB7IC5iaXRyYXRlID0gNTQwLCANCj4gPiArLmh3X3ZhbHVlID0g
MTA4LCB9LCB9Ow0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfY2hh
bm5lbCBtd2xfY2hhbm5lbHNfNTBbXSA9IHsgIHsgDQo+ID4gKy5iYW5kID0gTkw4MDIxMV9CQU5E
XzVHSFosIC5jZW50ZXJfZnJlcSA9IDUxODAsIC5od192YWx1ZSA9IDM2LCB9LCAgDQo+ID4gK3sg
LmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTIwMCwgLmh3X3ZhbHVl
ID0gNDAsIA0KPiA+ICt9LCAgeyAuYmFuZCA9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2Zy
ZXEgPSA1MjIwLCAuaHdfdmFsdWUgPSANCj4gPiArNDQsIH0sICB7IC5iYW5kID0gTkw4MDIxMV9C
QU5EXzVHSFosIC5jZW50ZXJfZnJlcSA9IDUyNDAsIC5od192YWx1ZSANCj4gPiArPSA0OCwgfSwg
IHsgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTI2MCwgDQo+ID4g
Ky5od192YWx1ZSA9IDUyLCB9LCAgeyAuYmFuZCA9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVy
X2ZyZXEgPSANCj4gPiArNTI4MCwgLmh3X3ZhbHVlID0gNTYsIH0sICB7IC5iYW5kID0gTkw4MDIx
MV9CQU5EXzVHSFosIC5jZW50ZXJfZnJlcSANCj4gPiArPSA1MzAwLCAuaHdfdmFsdWUgPSA2MCwg
fSwgIHsgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgDQo+ID4gKy5jZW50ZXJfZnJlcSA9IDUz
MjAsIC5od192YWx1ZSA9IDY0LCB9LCAgeyAuYmFuZCA9IA0KPiA+ICtOTDgwMjExX0JBTkRfNUdI
WiwgLmNlbnRlcl9mcmVxID0gNTUwMCwgLmh3X3ZhbHVlID0gMTAwLCB9LCAgeyANCj4gPiArLmJh
bmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTUyMCwgLmh3X3ZhbHVlID0g
MTA0LCB9LCANCj4gPiAreyAuYmFuZCA9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEg
PSA1NTQwLCAuaHdfdmFsdWUgPSAxMDgsIA0KPiA+ICt9LCB7IC5iYW5kID0gTkw4MDIxMV9CQU5E
XzVHSFosIC5jZW50ZXJfZnJlcSA9IDU1NjAsIC5od192YWx1ZSA9IA0KPiA+ICsxMTIsIH0sIHsg
LmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxID0gNTU4MCwgLmh3X3ZhbHVl
IA0KPiA+ICs9IDExNiwgfSwgeyAuYmFuZCA9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2Zy
ZXEgPSA1NjAwLCANCj4gPiArLmh3X3ZhbHVlID0gMTIwLCB9LCB7IC5iYW5kID0gTkw4MDIxMV9C
QU5EXzVHSFosIC5jZW50ZXJfZnJlcSA9IA0KPiA+ICs1NjIwLCAuaHdfdmFsdWUgPSAxMjQsIH0s
IHsgLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdIWiwgLmNlbnRlcl9mcmVxIA0KPiA+ICs9IDU2NDAs
IC5od192YWx1ZSA9IDEyOCwgfSwgeyAuYmFuZCA9IE5MODAyMTFfQkFORF81R0haLCANCj4gPiAr
LmNlbnRlcl9mcmVxID0gNTY2MCwgLmh3X3ZhbHVlID0gMTMyLCB9LCB7IC5iYW5kID0gDQo+ID4g
K05MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1NjgwLCAuaHdfdmFsdWUgPSAxMzYs
IH0sIHsgLmJhbmQgDQo+ID4gKz0gTkw4MDIxMV9CQU5EXzVHSFosIC5jZW50ZXJfZnJlcSA9IDU3
MDAsIC5od192YWx1ZSA9IDE0MCwgfSwgeyANCj4gPiArLmJhbmQgPSBOTDgwMjExX0JBTkRfNUdI
WiwgLmNlbnRlcl9mcmVxID0gNTcyMCwgLmh3X3ZhbHVlID0gMTQ0LCB9LCANCj4gPiAreyAuYmFu
ZCA9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1NzQ1LCAuaHdfdmFsdWUgPSAx
NDksIA0KPiA+ICt9LCB7IC5iYW5kID0gTkw4MDIxMV9CQU5EXzVHSFosIC5jZW50ZXJfZnJlcSA9
IDU3NjUsIC5od192YWx1ZSA9IA0KPiA+ICsxNTMsIH0sIHsgLmJhbmQgPSBOTDgwMjExX0JBTkRf
NUdIWiwgLmNlbnRlcl9mcmVxID0gNTc4NSwgLmh3X3ZhbHVlIA0KPiA+ICs9IDE1NywgfSwgeyAu
YmFuZCA9IE5MODAyMTFfQkFORF81R0haLCAuY2VudGVyX2ZyZXEgPSA1ODA1LCANCj4gPiArLmh3
X3ZhbHVlID0gMTYxLCB9LCB9Ow0KPiANCj4gRGl0dG8uDQo+IA0KPiAuLi4NCj4gPiArDQo+ID4g
K3N0YXRpYyB2b2lkIG13bF9wcm9jZXNzX29mX2R0cyhzdHJ1Y3QgbXdsX3ByaXYgKnByaXYpIHsg
I2lmZGVmIA0KPiA+ICtDT05GSUdfT0YNCj4gDQo+IFNvIGEgbW9yZSBjb21tb24gaWRpb20gaW4g
dGhlIGRyaXZlcnMgaXM6DQo+ICAgI2lmZGVmIENPTkZJR19PRg0KPiAgIGRlZmluZSBwcm9jZXNz
IG9mX2R0cyBmdW5jdGlvbiB7fQ0KPiAgICNlbHNlDQo+ICAgZGVmaW5lIEVNUFRZIG9mX2R0cyBm
dW5jdGlvbiB7fQ0KPiAgICNlbmRpZg0KPiANCj4gSSBndWVzcyBpdCdzIHRoZSBzYW1lIGVmZmVj
dCBlaXRoZXIgd2F5LiBJIGRvbid0IG11Y2ggY2FyZSBhcyBsb25nIGFzDQo+IG13bF9wcm9jZXNz
X29mX2R0cygpIGNhbiBiZSBjYWxsZWQgd2l0aG91dCBndWFyZHMsIHdoaWNoIGl0IGNhbi4gQnV0
IEkgDQo+IHRob3VnaHQgSSBzaG91bGQgbWVudGlvbiBpdCBpbmNhc2UgYW55b25lIGVsc2UgY2Fy
ZXMuIEFuZCB0aGlzIGlzIG5vdCANCj4gY29uc2lzdGVudCB3aXRoIGhvdyB5b3UgaGF2ZSBkb25l
IHRoZSBzYW1lIHRoaW5nIGZvciBDT05GSUdfREVCVUdfRlMNCj4gDQoNCkkgd2lsbCBtb2RpZnkg
aXQuDQoNCj4gPiArIHN0cnVjdCBwcm9wZXJ0eSAqcHJvcDsNCj4gPiArIHUzMiBwcm9wX3ZhbHVl
Ow0KPiA+ICsNCj4gPiArIHByaXYtPmR0X25vZGUgPQ0KPiA+ICsgb2ZfZmluZF9ub2RlX2J5X25h
bWUocGNpX2J1c190b19PRl9ub2RlKHByaXYtPnBkZXYtPmJ1cyksDQo+ID4gKyAgICAgIm13bHdp
ZmkiKTsNCj4gPiArIGlmICghcHJpdi0+ZHRfbm9kZSkNCj4gPiArIHJldHVybjsNCj4gPiArDQo+
ID4gKyAvKiBsb29rIGZvciBhbGwgbWF0Y2hpbmcgcHJvcGVydHkgbmFtZXMgKi8gDQo+ID4gKyBm
b3JfZWFjaF9wcm9wZXJ0eV9vZl9ub2RlKHByaXYtPmR0X25vZGUsIHByb3ApIHsgaWYgDQo+ID4g
KyAoc3RyY21wKHByb3AtPm5hbWUsICJtYXJ2ZWxsLDJnaHoiKSA9PSAwKQ0KPiA+ICsgcHJpdi0+
ZGlzYWJsZV8yZyA9IHRydWU7DQo+ID4gKyBpZiAoc3RyY21wKHByb3AtPm5hbWUsICJtYXJ2ZWxs
LDVnaHoiKSA9PSAwKQ0KPiA+ICsgcHJpdi0+ZGlzYWJsZV81ZyA9IHRydWU7DQo+ID4gKyBpZiAo
c3RyY21wKHByb3AtPm5hbWUsICJtYXJ2ZWxsLGNoYWlubWFzayIpID09IDApIHsgcHJvcF92YWx1
ZSA9DQo+ID4gKyBiZTMyX3RvX2NwdSgqKChfX2JlMzIgKilwcm9wLT52YWx1ZSkpOyBpZiAocHJv
cF92YWx1ZSA9PSAyKQ0KPiA+ICsgcHJpdi0+YW50ZW5uYV90eCA9IEFOVEVOTkFfVFhfMjsNCj4g
PiArDQo+ID4gKyBwcm9wX3ZhbHVlID0gYmUzMl90b19jcHUoKigoX19iZTMyICopIChwcm9wLT52
YWx1ZSArIDQpKSk7IGlmIA0KPiA+ICsgKHByb3BfdmFsdWUgPT0gMikNCj4gPiArIHByaXYtPmFu
dGVubmFfcnggPSBBTlRFTk5BX1JYXzI7DQo+ID4gKyB9DQo+ID4gKyB9DQo+ID4gKw0KPiA+ICsg
cHJpdi0+cHdyX25vZGUgPSBvZl9maW5kX25vZGVfYnlfbmFtZShwcml2LT5kdF9ub2RlLA0KPiA+
ICsgICAgICAibWFydmVsbCxwb3dlcnRhYmxlIik7DQo+ID4gKyNlbmRpZg0KPiA+ICt9DQo+IA0K
PiBBRkFJQ1QsIHRoZXJlJ3Mgbm8gZG9jdW1lbnRhdGlvbiBmb3IgdGhlc2UgRFQgYmluZGluZ3Mu
IFRoZSBtd2x3aWZpIA0KPiBub2RlIGFuZCB0aGUgbWFydmVsbCxwb3dlcnRhYmxlIGJvdGggbmVl
ZCBmdWxsIGRvY3VtZW50YXRpb24gaW4gDQo+IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k
aW5ncy8uLi4gLg0KPiANCj4gRnJhbmtseSBJIGhhdmUgYSBmZWVsaW5nIEknbSBnb2luZyB0byBu
ZWVkIHRoZXNlIERUIG5vZGVzIGFuZCBJJ2QgbGlrZSANCj4gdG8gbm90IGhhdmUgdG8gZ3Vlc3Mt
YW5kLWNoZWNrIGJhc2VkIG9uIHRoZSBjb2RlLg0KPiANCg0KUG93ZXIgdGFibGUgd29uJ3QgYmUg
dXNlZCBmb3IgY2hpcCB3aXRoIGRldmljZSBwb3dlciB0YWJsZSwgaXQgaXMgb25seSB1c2VkIGZv
ciBvbGQgcHJvZHVjdHMgb2YgT3BlbldydC4gRm9yIHVwc3RyZWFtLCB0aGUgcmVsYXRlZCBjb2Rl
IGlzIHJlbW92ZWQuDQo8bWFydmVsbCwyZ2h6PiBpcyB1c2VkIHRvIGRpc2FibGUgMmcgYmFuZC4N
CjxtYXJ2ZWxsLDVnaHo+IGlzIHVzZWQgdG8gZGlzYWJsZSA1ZyBiYW5kLg0KPG1hcnZlbGwsIGNo
YWlubWFzaz4gaXMgdXNlZCB0byBzcGVjaWZ5IGFudGVubmEgbnVtYmVyIChpZiBkZWZhdWx0IG51
bWJlciBpcyBzdWl0YWJsZSBmb3IgeW91LCB0aGVyZSBpcyBubyBuZWVkIHRvIHVzZSB0aGlzIHBh
cmFtZXRlcikuIA0KDQo+IC4uLg0KPiANCj4gPiArc3RhdGljIGludCBtd2xfd2xfaW5pdChzdHJ1
Y3QgbXdsX3ByaXYgKnByaXYpIHsgIHN0cnVjdCANCj4gPiAraWVlZTgwMjExX2h3ICpodzsgIGlu
dCByYzsgIGludCBpOw0KPiA+ICsNCj4gPiArIGh3ID0gcHJpdi0+aHc7DQo+ID4gKw0KPiA+ICsg
aHctPmV4dHJhX3R4X2hlYWRyb29tID0gU1lTQURQVF9NSU5fQllURVNfSEVBRFJPT007IHF1ZXVl
cyA9IA0KPiA+ICsgaHctPlNZU0FEUFRfVFhfV01NX1FVRVVFUzsNCj4gPiArDQo+ID4gKyAvKiBT
ZXQgcnNzaSB2YWx1ZXMgdG8gZEJtICovDQo+ID4gKyBpZWVlODAyMTFfaHdfc2V0KGh3LCBTSUdO
QUxfREJNKTsNCj4gPiArIGllZWU4MDIxMV9od19zZXQoaHcsIEhBU19SQVRFX0NPTlRST0wpOw0K
PiA+ICsNCj4gPiArIC8qIEFzayBtYWM4MDIxMSBub3QgdG8gdHJpZ2dlciBQUyBtb2RlDQo+ID4g
KyAqIGJhc2VkIG9uIFBNIGJpdCBvZiBpbmNvbWluZyBmcmFtZXMuDQo+ID4gKyAqLw0KPiA+ICsg
aWVlZTgwMjExX2h3X3NldChodywgQVBfTElOS19QUyk7DQo+ID4gKw0KPiA+ICsgaWVlZTgwMjEx
X2h3X3NldChodywgU1VQUE9SVFNfUEVSX1NUQV9HVEspOyBpZWVlODAyMTFfaHdfc2V0KGh3LCAN
Cj4gPiArIE1GUF9DQVBBQkxFKTsNCj4gPiArDQo+ID4gKyBody0+d2lwaHktPmZsYWdzIHw9IFdJ
UEhZX0ZMQUdfSUJTU19SU047IGZsYWdzIHw9IA0KPiA+ICsgaHctPndpcGh5LT5XSVBIWV9GTEFH
X0hBU19DSEFOTkVMX1NXSVRDSDsNCj4gPiArDQo+ID4gKyBody0+d2lwaHktPmZsYWdzIHw9IFdJ
UEhZX0ZMQUdfU1VQUE9SVFNfVERMUzsNCj4gPiArDQo+ID4gKyBody0+dmlmX2RhdGFfc2l6ZSA9
IHNpemVvZihzdHJ1Y3QgbXdsX3ZpZik7IHN0YV9kYXRhX3NpemUgPSANCj4gPiArIGh3LT5zaXpl
b2Yoc3RydWN0IG13bF9zdGEpOw0KPiA+ICsNCj4gPiArIHByaXYtPmFwX21hY2lkc19zdXBwb3J0
ZWQgPSAweDAwMDBmZmZmOyBzdGFfbWFjaWRzX3N1cHBvcnRlZCA9IA0KPiA+ICsgcHJpdi0+MHgw
MDAxMDAwMDsNCj4gDQo+IEhvdyBhYm91dCB3ZSBkb2N1bWVudCB3aGF0IHRoZXNlIG1hZ2ljIG51
bWJlcnMgYXJlPyBBIG5pY2UgbmFtZWQgDQo+IGNvbnN0YW50IGF0IGxlYXN0IHdvdWxkIGJlIG5p
Y2UuDQoNClRoZXkgYXJlIHVzZWQgdG8ga2VlcCBzdGF0dXMgb2YgdXNlZCBBUCBhbmQgU1RBLg0K
DQo+IA0KPiA+ICtzdGF0aWMgaW50IG13bF9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29u
c3Qgc3RydWN0IA0KPiA+ICtwY2lfZGV2aWNlX2lkDQo+ID4gKyppZCkgew0KPiAuLi4NCj4gPiAr
IHdpcGh5X2luZm8ocHJpdi0+aHctPndpcGh5LCAiJXMgVFggYW50ZW5uYXMsICVzIFJYIGFudGVu
bmFzXG4iLA0KPiA+ICsgICAocHJpdi0+YW50ZW5uYV90eCA9PSBBTlRFTk5BX1RYXzRfQVVUTykg
PyAiNCIgOiAiMiIsDQo+ID4gKyAgIChwcml2LT5hbnRlbm5hX3J4ID09IEFOVEVOTkFfUlhfNF9B
VVRPKSA/ICI0IiA6ICIyIik7DQo+ID4gKw0KPiA+ICsjaWZkZWYgQ09ORklHX0RFQlVHX0ZTDQo+
ID4gKyBtd2xfZGVidWdmc19pbml0KGh3KTsNCj4gDQo+IFRoZSBndWFyZHMgc2hvdWxkIGJlIGlu
dGVybmFsIHRvIG13bF9kZWJ1Z2ZzX2luaXQoKSBzbyB3ZSBkb24ndCBoYXZlIA0KPiB0byBndWFy
ZCBpdCB3aGVuIHdlIGNhbGwgaXQuIE11Y2ggbGlrZSBtd2xfcHJvY2Vzc19vZl9kdHMoKSBpcyBh
YmxlIHRvIA0KPiBiZSBjYWxsZWQgYW5kIGNvbXBpbGVzIG91dCBpZiBDT05GSUdfT0YgaXNuJ3Qg
ZGVmaW5lZCwgDQo+IG13bF9kZWJ1Z2ZzX2luaXQoKSBzaG91bGQgaGF2ZSB0aGUgZ3VhcmRzIGlu
dGVybmFsIHRvIA0KPiBkZWJ1Z2ZzLmgvZGVidWdmcy5jIGFuZCB3ZSBzaG91bGRuJ3QgbmVlZCB0
byB3b3JyeSBhYm91dCBpdCB3aGVuIHdlIGNhbGwgaXQuDQo+IA0KDQpJIHdpbGwgbW9kaWZ5IGl0
Lg0KDQo+ID4gK3N0YXRpYyB2b2lkIG13bF9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHsg
IHN0cnVjdCBpZWVlODAyMTFfaHcgDQo+ID4gKypodyA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2KTsg
IHN0cnVjdCBtd2xfcHJpdiAqcHJpdjsNCj4gPiArDQo+ID4gKyBpZiAoIWh3KQ0KPiA+ICsgcmV0
dXJuOw0KPiA+ICsNCj4gPiArIHByaXYgPSBody0+cHJpdjsNCj4gPiArDQo+ID4gKyBtd2xfd2xf
ZGVpbml0KHByaXYpOw0KPiA+ICsgcGNpX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOw0KPiA+ICsg
aWVlZTgwMjExX2ZyZWVfaHcoaHcpOw0KPiA+ICsgcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOw0K
PiA+ICsNCj4gPiArI2lmZGVmIENPTkZJR19ERUJVR19GUw0KPiA+ICsgbXdsX2RlYnVnZnNfcmVt
b3ZlKGh3KTsNCj4gPiArI2VuZGlmDQo+IA0KPiBBcyBwcmV2aW91c2x5IGNvbW1lbnRlZCBvbi4N
Cj4gDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWFydmVsbC9td2x3aWZpL3RoZXJt
YWwuYw0KPiAuLi4NCj4gPiArc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMV9pbnB1dCwg
MDQ0NCwNCj4gbXdsX3RoZXJtYWxfc2hvd190ZW1wLA0KPiA+ICsgIE5VTEwsIDApOw0KPiA+ICsN
Cj4gDQo+IFNob3VsZCB1c2UgU19JUlVHTyBpbnN0ZWFkIG9mIG51bWVyaWMgMDQ0NC4NCj4gDQo+
IE9LLCB0aGF0J3MgaXQgZm9yIHNwZWNpZmljcy4gSSBrbm93IGEgbnVtYmVyIG9mIHRoZW0gYXJl
IGp1c3Qgbml0cy4NCj4gDQoNCllvdSBuZWVkIHRvIG1vZGlmeSB0aGlzIHdheSB0byBwYXNzIGNo
ZWNrcGF0Y2gucGwuDQoNCj4gQSBmZXcgZ2VuZXJhbCBjb21tZW50czoNCj4gDQo+ICogSSBzYXcg
aXQgaXQgcXVpdGUgYSBiaXQsIGJ1dCBkaWRuJ3QgY29tbWVudCBvbiBpdCBldmVyeSB0aW1lOiAN
Cj4gdGhlcmUncyBtYW55IHBsYWNlcyB3aGVyZSBhIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGNhbiBi
ZSBjb21iaW5lZCB3aXRoIA0KPiBpdHMgaW5pdGlhbCBhc3NpZ25tZW50Lg0KPiANCj4gKiBJIGhh
cHBlbiB0byBjb25jdXIgd2l0aCBKb2hhbm5lcycgY29tbWVudHMgcmVnYXJkaW5nIHRoZSBJRXMg
YW5kIA0KPiB5b3VyIGJlYWNvbiBwcm9jZXNzaW5nLiBUaGlzIGlzIGEgc2lnbmlmaWNhbnQgaXNz
dWUsIHdpdGggcG90ZW50aWFsIA0KPiBmb3IgYmlnIGJ1Z3MgZG93biB0aGUgcm9hZC4gQXQgdGhl
IHZlcnkgbGVhc3QsIGl0J3MgYSBtYWludGVuYW5jZSBoZWFkYWNoZS4NCj4gDQo+IEZyb20gbXkg
cGVyc3BlY3RpdmUsIEknZCBjb25zaWRlciBpdCBhIGZpcm13YXJlIGJ1ZyBpZiB0aGVyZSdzIG5v
IHdheSBhcm91bmQgaXQuDQo+IElzIHRoZSBmaXJtd2FyZSBnb2luZyB0byBzdHJpcCB0aGUgSUVz
IHRoYXQgaG9zdGFwZCBoYXBwZW5zIHRvIGFkZCB0byANCj4gdGhlIGJlYWNvbnM/IElzIHRoZXJl
IHNvbWUgInBhc3N0aHJvdWdoIiBvciBzb21lIG90aGVyIHdheSB0aGF0IGl0IGNhbiANCj4gYmUg
cmVjb25jaWxlZD8NCj4gDQo+IEkgc3Ryb25nbHkgc3VzcGVjdCB0aGVyZSdzIGJldHRlciB3YXlz
IHRvIGhhbmRsZSBpdCwgZXZlbiB3aXRob3V0IA0KPiBjaGFuZ2luZyB0aGUgZmlybXdhcmUsIGJ1
dCBJIGhhdmVuJ3QgeWV0IHRha2VuIGEgbG9vayB0byBzZWUgaWYgdGhlcmUgaXMuDQo+IA0KPiBJ
biBhbnkgY2FzZSwgd2hpbGUgdGhlcmUncyBzdHVmZiBJIHdvdWxkbid0IG1pbmQgc2VlaW5nIGNo
YW5nZWQsIEkgDQo+IHJhdGhlciBzZWUgaXQgZ28gaW4gc29vbmVyIHJhdGhlciB0aGFuIGxhdGVy
IHNvIEkgYW5kIG90aGVycyBjYW4gDQo+IGNvbnRyaWJ1dGUgb24gdG9wIG9mIGl0LCBpbnN0ZWFk
IG9mIHdhaXRpbmcgdG8gc2VlIGl0ICJwZXJmZWN0IiBmaXJzdC4NCg0KLSBUaGUgb2JqZWN0aXZl
IGlzIHRvIHVzZSB0aGUgc2FtZSBwcm9kdWN0aW9uIGZpcm13YXJlIGJpbmFyeSBmb3IgYm90aCB0
aGUgb3BlbiBzb3VyY2UgYW5kIHByb3ByaWV0YXJ5IGRyaXZlci4gU2FtZSBpbnRlcmZhY2UgaXMg
Y3VycmVudGx5IHVzZWQgYnkgcHJvcHJpZXRhcnkgZHJpdmVyIGZvciBoaXN0b3JpY2FsbHkgcmVh
c29uLCB3aGlsZSB0aGUgb3BlbiBzb3VyY2UgSEFMIGlzIGFkYXB0aW5nIHRvIGl0IGZvciB0aGUg
ZXhpc3Rpbmcgc2hpcHBpbmcgcHJvZHVjdC4NCi0gV2Ugd2lsbCBtYWtlIGNoYW5nZXMgYW5kIGNs
ZWFuIHRoaW5ncyB1cCBpbiBmdXR1cmUuIEkgd2lsbCBzcGVuZCBlZmZvcnQgdG8gY29udGludWUg
aXRzIG1haW50ZW5hbmNlIGFuZCBjbGVhbi11cC4NCg0KPiANCj4gUGxlYXNlIGFkZCBteSByZXZp
ZXdlZC1ieS4gIElmIHdlJ3JlIHdhaXRpbmcgb24gYSB2MTAsIGRvIHlvdSBoYXZlIGFuIEVUQT8N
Cg0KSXQgbG9va3MgbGlrZSB0aGVyZSBpcyBubyBtb3JlIGNvbW1lbnRzIGZvciBwYXRjaCB2OSwg
SSB3aWxsIHNlbmQgb3V0IHBhdGNoIHYxMCBlbmQgb2YgdGhpcyBtb250aC4NCg0KVGhhbmtzLA0K
RGF2aWQNCg0KPiANCj4gVGhhbmtzLA0KPiAtIFN0ZXZlDQo=

  parent reply	other threads:[~2017-02-08  3:16 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-21  4:11 [PATCH v9] Add new mac80211 driver mwlwifi David Lin
2017-01-05 13:58 ` Johannes Berg
2017-01-10  1:32   ` David Lin
2017-01-11  9:25     ` Johannes Berg
2017-01-19  1:22       ` David Lin
2017-02-07 19:12 ` Steve deRosier
2017-02-08  2:50   ` [EXT] " David Lin
2017-02-08  3:16   ` David Lin [this message]
2017-02-08  6:07   ` Rafał Miłecki
2017-02-08  6:15     ` David Lin
2017-02-08  6:26       ` Steve deRosier
2017-02-08  6:30         ` David Lin
2017-02-08  7:23           ` Rafał Miłecki
2017-02-08  7:28             ` David Lin
2017-02-08  7:44               ` Rafał Miłecki
2017-02-08  7:55                 ` David Lin
2018-11-21  8:24                   ` Rafał Miłecki
2020-05-19 15:12                     ` Pali Rohár
2020-06-03 10:31                       ` Pali Rohár
  -- strict thread matches above, loose matches on Subject: below --
2016-12-21  4:11 David Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=38f601c3e7a246f2aa3781909d143ed5@SC-EXCH02.marvell.com \
    --to=dlin@marvell.com \
    --cc=ctlaw@marvell.com \
    --cc=derosier@gmail.com \
    --cc=jamesl@marvell.com \
    --cc=johannes@sipsolutions.net \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=peteh@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.