Re: 2.4.22-pre3 and reiserfs boot problem

Marcelo Tosatti (marcelo@conectiva.com.br)
Thu, 10 Jul 2003 14:57:34 -0300 (BRT)


This is a MIME-formatted message. If you see this text it means that your
E-mail software does not support MIME-formatted messages.

--=_courier-28543-1057860148-0001-2
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

I forgot to attach the patch. Now its attached, duh.

On Thu, 10 Jul 2003, Marcelo Tosatti wrote:

>
>
> On Thu, 10 Jul 2003, Stephan von Krawczynski wrote:
>
> > On Thu, 10 Jul 2003 19:49:20 +0400
> > "Peter Lojkin" <ia6432@inbox.ru> wrote:
> >
> > > Hello,
> > >
> > > I am not on the list so please CC me if replying...
> > >
> > > I've found the problem, it's patch with description:
> > >
> > > Fix potential IO hangs and increase interactiveness during heavy IO
> > >
> > > mason/cset@1.1024?nav=!-|index.html|stats|!+|index.html|ChangeSet@-7d">http://linux.bkbits.net:8080/linux-2.4/user=mason/cset@1.1024?nav=!-|index.html|stats|!+|index.html|ChangeSet@-7d
> > >
> > > After removing all changes from this cset, a had no problems
> > > mounting big reiserfs volumes...
> >
> > Hello Marcelo,
> >
> > can you please send me a separated patch for reversal to verify this.
>
> Its attached (iostalls). Use patch -R.
>
> Also, when the hang happens, sysrq works right?
>
> If so get us the tasks backtraces with sysrq, ok?
>
>
--=_courier-28543-1057860148-0001-2
Content-Type: text/plain; charset=us-ascii; name=iostalls
Content-Transfer-Encoding: base64
Content-ID: <Pine.LNX.4.55L.0307101457340.25229@freak.distro.conectiva>
Content-Description:
Content-Disposition: attachment; filename=iostalls

IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBwYXRjaCBmb3IgdGhl
IGZvbGxvd2luZyBwcm9qZWN0Og0KIyBQcm9qZWN0IE5hbWU6IExpbnV4IGtl
cm5lbCB0cmVlDQojIFRoaXMgcGF0Y2ggZm9ybWF0IGlzIGludGVuZGVkIGZv
ciBHTlUgcGF0Y2ggY29tbWFuZCB2ZXJzaW9uIDIuNSBvciBoaWdoZXIuDQoj
IFRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlIGZvbGxvd2luZyBkZWx0YXM6DQoj
CSAgICAgICAgICAgQ2hhbmdlU2V0CTEuMTAyMyAgLT4gMS4xMDI0IA0KIwlk
cml2ZXJzL2lkZS9pZGUtcHJvYmUuYwkxLjE3ICAgIC0+IDEuMTggICANCiMJ
aW5jbHVkZS9saW51eC9wYWdlbWFwLmgJMS4xOSAgICAtPiAxLjIwICAgDQoj
CSAgICAgIGtlcm5lbC9rc3ltcy5jCTEuNzIgICAgLT4gMS43MyAgIA0KIwlp
bmNsdWRlL2xpbnV4L2VsZXZhdG9yLmgJMS41ICAgICAtPiAxLjYgICAgDQoj
CWRyaXZlcnMvYmxvY2svbGxfcndfYmxrLmMJMS40NSAgICAtPiAxLjQ2ICAg
DQojCWluY2x1ZGUvbGludXgvYmxrZGV2LmgJMS4yMyAgICAtPiAxLjI0ICAg
DQojCSBmcy9yZWlzZXJmcy9pbm9kZS5jCTEuNDcgICAgLT4gMS40OCAgIA0K
IwkgICAgICAgIG1tL2ZpbGVtYXAuYwkxLjgxICAgIC0+IDEuODIgICANCiMJ
ZHJpdmVycy9zY3NpL3Njc2lfbGliLmMJMS4xNiAgICAtPiAxLjE3ICAgDQoj
CSBkcml2ZXJzL3Njc2kvc2NzaS5jCTEuMTcgICAgLT4gMS4xOCAgIA0KIwkg
ICAgICAgICBmcy9idWZmZXIuYwkxLjg2ICAgIC0+IDEuODcgICANCiMNCiMg
VGhlIGZvbGxvd2luZyBpcyB0aGUgQml0S2VlcGVyIENoYW5nZVNldCBMb2cN
CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0NCiMgMDMvMDcvMDUJbWFzb25Ac3VzZS5jb20JMS4xMDI0DQojIFtQQVRD
SF0gRml4IHBvdGVudGlhbCBJTyBoYW5ncyBhbmQgaW5jcmVhc2UgaW50ZXJh
Y3RpdmVuZXNzIGR1cmluZyBoZWF2eSBJTw0KIyANCiMgaW8tc3RhbGxzLTEw
Og0KIyANCiMgDQojID09PT09IGRyaXZlcnMvYmxvY2svbGxfcndfYmxrLmMg
MS40NSB2cyBlZGl0ZWQgPT09PT0NCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMNCmRpZmYgLU5ydSBhL2RyaXZl
cnMvYmxvY2svbGxfcndfYmxrLmMgYi9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Js
ay5jDQotLS0gYS9kcml2ZXJzL2Jsb2NrL2xsX3J3X2Jsay5jCVRodSBKdWwg
MTAgMTQ6NTI6MzggMjAwMw0KKysrIGIvZHJpdmVycy9ibG9jay9sbF9yd19i
bGsuYwlUaHUgSnVsIDEwIDE0OjUyOjM4IDIwMDMNCkBAIC0xNzYsMTEgKzE3
NiwxMiBAQA0KIHsNCiAJaW50IGNvdW50ID0gcS0+bnJfcmVxdWVzdHM7DQog
DQotCWNvdW50IC09IF9fYmxrX2NsZWFudXBfcXVldWUoJnEtPnJxW1JFQURd
KTsNCi0JY291bnQgLT0gX19ibGtfY2xlYW51cF9xdWV1ZSgmcS0+cnFbV1JJ
VEVdKTsNCisJY291bnQgLT0gX19ibGtfY2xlYW51cF9xdWV1ZSgmcS0+cnEp
Ow0KIA0KIAlpZiAoY291bnQpDQogCQlwcmludGsoImJsa19jbGVhbnVwX3F1
ZXVlOiBsZWFrZWQgcmVxdWVzdHMgKCVkKVxuIiwgY291bnQpOw0KKwlpZiAo
YXRvbWljX3JlYWQoJnEtPm5yX3NlY3RvcnMpKQ0KKwkJcHJpbnRrKCJibGtf
Y2xlYW51cF9xdWV1ZTogbGVha2VkIHNlY3RvcnMgKCVkKVxuIiwgYXRvbWlj
X3JlYWQoJnEtPm5yX3NlY3RvcnMpKTsNCiANCiAJbWVtc2V0KHEsIDAsIHNp
emVvZigqcSkpOw0KIH0NCkBAIC0yMTUsNiArMjE2LDI0IEBADQogfQ0KIA0K
IC8qKg0KKyAqIGJsa19xdWV1ZV90aHJvdHRsZV9zZWN0b3JzIC0gaW5kaWNh
dGVzIHlvdSB3aWxsIGNhbGwgc2VjdG9yIHRocm90dGxpbmcgZnVuY3MNCisg
KiBAcTogICAgICAgVGhlIHF1ZXVlIHdoaWNoIHRoaXMgYXBwbGllcyB0by4N
CisgKiBAYWN0aXZlOiAgQSBmbGFnIGluZGljYXRpb24gaWYgeW91IHdhbnQg
c2VjdG9yIHRocm90dGxpbmcgb24NCisgKg0KKyAqIERlc2NyaXB0aW9uOg0K
KyAqIFRoZSBzZWN0b3IgdGhyb3R0bGluZyBjb2RlIGFsbG93cyB1cyB0byBw
dXQgYSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mDQorICogc2VjdG9ycyBwZW5k
aW5nIGlvIHRvIHRoZSBkaXNrIGF0IGEgZ2l2ZW4gdGltZSwgc2VuZGluZyBA
YWN0aXZlIG5vbnplcm8NCisgKiBpbmRpY2F0ZXMgeW91IHdpbGwgY2FsbCBi
bGtfc3RhcnRlZF9zZWN0b3JzIGFuZCBibGtfZmluaXNoZWRfc2VjdG9ycyBp
bg0KKyAqIGFkZGl0aW9uIHRvIGNhbGxpbmcgYmxrX3N0YXJ0ZWRfaW8gYW5k
IGJsa19maW5pc2hlZF9pbyBpbiBvcmRlciB0bw0KKyAqIGtlZXAgdHJhY2sg
b2YgdGhlIG51bWJlciBvZiBzZWN0b3JzIGluIGZsaWdodC4NCisgKiovDQor
IA0KK3ZvaWQgYmxrX3F1ZXVlX3Rocm90dGxlX3NlY3RvcnMocmVxdWVzdF9x
dWV1ZV90ICogcSwgaW50IGFjdGl2ZSkNCit7DQorCXEtPmNhbl90aHJvdHRs
ZSA9IGFjdGl2ZTsNCit9DQorDQorLyoqDQogICogYmxrX3F1ZXVlX21ha2Vf
cmVxdWVzdCAtIGRlZmluZSBhbiBhbHRlcm5hdGUgbWFrZV9yZXF1ZXN0IGZ1
bmN0aW9uIGZvciBhIGRldmljZQ0KICAqIEBxOiAgdGhlIHJlcXVlc3QgcXVl
dWUgZm9yIHRoZSBkZXZpY2UgdG8gYmUgYWZmZWN0ZWQNCiAgKiBAbWZuOiB0
aGUgYWx0ZXJuYXRlIG1ha2VfcmVxdWVzdCBmdW5jdGlvbg0KQEAgLTM4OSw3
ICs0MDgsNyBAQA0KICAqDQogICogUmV0dXJucyB0aGUgKG5ldykgbnVtYmVy
IG9mIHJlcXVlc3RzIHdoaWNoIHRoZSBxdWV1ZSBoYXMgYXZhaWxhYmxlLg0K
ICAqLw0KLWludCBibGtfZ3Jvd19yZXF1ZXN0X2xpc3QocmVxdWVzdF9xdWV1
ZV90ICpxLCBpbnQgbnJfcmVxdWVzdHMpDQoraW50IGJsa19ncm93X3JlcXVl
c3RfbGlzdChyZXF1ZXN0X3F1ZXVlX3QgKnEsIGludCBucl9yZXF1ZXN0cywg
aW50IG1heF9xdWV1ZV9zZWN0b3JzKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyBm
bGFnczsNCiAJLyogU2V2ZXJhbCBicm9rZW4gZHJpdmVycyBhc3N1bWUgdGhh
dCB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3Qgc2xlZXAsDQpAQCAtMzk5LDIxICs0
MTgsMzQgQEANCiAJc3Bpbl9sb2NrX2lycXNhdmUoJmlvX3JlcXVlc3RfbG9j
aywgZmxhZ3MpOw0KIAl3aGlsZSAocS0+bnJfcmVxdWVzdHMgPCBucl9yZXF1
ZXN0cykgew0KIAkJc3RydWN0IHJlcXVlc3QgKnJxOw0KLQkJaW50IHJ3Ow0K
IA0KIAkJcnEgPSBrbWVtX2NhY2hlX2FsbG9jKHJlcXVlc3RfY2FjaGVwLCBT
TEFCX0FUT01JQyk7DQogCQlpZiAocnEgPT0gTlVMTCkNCiAJCQlicmVhazsN
CiAJCW1lbXNldChycSwgMCwgc2l6ZW9mKCpycSkpOw0KIAkJcnEtPnJxX3N0
YXR1cyA9IFJRX0lOQUNUSVZFOw0KLQkJcncgPSBxLT5ucl9yZXF1ZXN0cyAm
IDE7DQotCQlsaXN0X2FkZCgmcnEtPnF1ZXVlLCAmcS0+cnFbcnddLmZyZWUp
Ow0KLQkJcS0+cnFbcnddLmNvdW50Kys7DQorIAkJbGlzdF9hZGQoJnJxLT5x
dWV1ZSwgJnEtPnJxLmZyZWUpOw0KKyAJCXEtPnJxLmNvdW50Kys7DQorDQog
CQlxLT5ucl9yZXF1ZXN0cysrOw0KIAl9DQorDQorIAkvKg0KKyAJICogV2Fr
ZXVwIHdhaXRlcnMgYWZ0ZXIgYm90aCBvbmUgcXVhcnRlciBvZiB0aGUNCisg
CSAqIG1heC1pbi1mbGlnaCBxdWV1ZSBhbmQgb25lIHF1YXJ0ZXIgb2YgdGhl
IHJlcXVlc3RzDQorIAkgKiBhcmUgYXZhaWxhYmxlIGFnYWluLg0KKyAJICov
DQorDQogCXEtPmJhdGNoX3JlcXVlc3RzID0gcS0+bnJfcmVxdWVzdHMgLyA0
Ow0KIAlpZiAocS0+YmF0Y2hfcmVxdWVzdHMgPiAzMikNCiAJCXEtPmJhdGNo
X3JlcXVlc3RzID0gMzI7DQorIAlxLT5iYXRjaF9zZWN0b3JzID0gbWF4X3F1
ZXVlX3NlY3RvcnMgLyA0Ow0KKyANCisgCXEtPm1heF9xdWV1ZV9zZWN0b3Jz
ID0gbWF4X3F1ZXVlX3NlY3RvcnM7DQorIA0KKyAJQlVHX09OKCFxLT5iYXRj
aF9zZWN0b3JzKTsNCisgCWF0b21pY19zZXQoJnEtPm5yX3NlY3RvcnMsIDAp
Ow0KKw0KIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb19yZXF1ZXN0X2xv
Y2ssIGZsYWdzKTsNCiAJcmV0dXJuIHEtPm5yX3JlcXVlc3RzOw0KIH0NCkBA
IC00MjIsMjMgKzQ1NCwyNyBAQA0KIHsNCiAJc3RydWN0IHN5c2luZm8gc2k7
DQogCWludCBtZWdzOwkJLyogVG90YWwgbWVtb3J5LCBpbiBtZWdhYnl0ZXMg
Ki8NCi0JaW50IG5yX3JlcXVlc3RzOw0KLQ0KLQlJTklUX0xJU1RfSEVBRCgm
cS0+cnFbUkVBRF0uZnJlZSk7DQotCUlOSVRfTElTVF9IRUFEKCZxLT5ycVtX
UklURV0uZnJlZSk7DQotCXEtPnJxW1JFQURdLmNvdW50ID0gMDsNCi0JcS0+
cnFbV1JJVEVdLmNvdW50ID0gMDsNCisgCWludCBucl9yZXF1ZXN0cywgbWF4
X3F1ZXVlX3NlY3RvcnMgPSBNQVhfUVVFVUVfU0VDVE9SUzsNCisgIA0KKyAJ
SU5JVF9MSVNUX0hFQUQoJnEtPnJxLmZyZWUpOw0KKwlxLT5ycS5jb3VudCA9
IDA7DQogCXEtPm5yX3JlcXVlc3RzID0gMDsNCiANCiAJc2lfbWVtaW5mbygm
c2kpOw0KIAltZWdzID0gc2kudG90YWxyYW0gPj4gKDIwIC0gUEFHRV9TSElG
VCk7DQotCW5yX3JlcXVlc3RzID0gMTI4Ow0KLQlpZiAobWVncyA8IDMyKQ0K
LQkJbnJfcmVxdWVzdHMgLz0gMjsNCi0JYmxrX2dyb3dfcmVxdWVzdF9saXN0
KHEsIG5yX3JlcXVlc3RzKTsNCisgCW5yX3JlcXVlc3RzID0gTUFYX05SX1JF
UVVFU1RTOw0KKyAJaWYgKG1lZ3MgPCAzMCkgew0KKyAgCQlucl9yZXF1ZXN0
cyAvPSAyOw0KKyAJCW1heF9xdWV1ZV9zZWN0b3JzIC89IDI7DQorIAl9DQor
IAkvKiBub3RpY2UgZWFybHkgaWYgYW55Ym9keSBzY3Jld2VkIHRoZSBkZWZh
dWx0cyAqLw0KKyAJQlVHX09OKCFucl9yZXF1ZXN0cyk7DQorIAlCVUdfT04o
IW1heF9xdWV1ZV9zZWN0b3JzKTsNCisgDQorIAlibGtfZ3Jvd19yZXF1ZXN0
X2xpc3QocSwgbnJfcmVxdWVzdHMsIG1heF9xdWV1ZV9zZWN0b3JzKTsNCisN
CisgCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnEtPndhaXRfZm9yX3JlcXVlc3Rz
KTsNCiANCi0JaW5pdF93YWl0cXVldWVfaGVhZCgmcS0+d2FpdF9mb3JfcmVx
dWVzdHNbMF0pOw0KLQlpbml0X3dhaXRxdWV1ZV9oZWFkKCZxLT53YWl0X2Zv
cl9yZXF1ZXN0c1sxXSk7DQogCXNwaW5fbG9ja19pbml0KCZxLT5xdWV1ZV9s
b2NrKTsNCiB9DQogDQpAQCAtNDkxLDYgKzUyNyw4IEBADQogCXEtPnBsdWdf
dHEucm91dGluZQk9ICZnZW5lcmljX3VucGx1Z19kZXZpY2U7DQogCXEtPnBs
dWdfdHEuZGF0YQkJPSBxOw0KIAlxLT5wbHVnZ2VkICAgICAgICAJPSAwOw0K
KwlxLT5jYW5fdGhyb3R0bGUJCT0gMDsNCisNCiAJLyoNCiAJICogVGhlc2Ug
Ym9vbGVhbnMgZGVzY3JpYmUgdGhlIHF1ZXVlIHByb3BlcnRpZXMuICBXZSBz
ZXQgdGhlDQogCSAqIGRlZmF1bHQgKGFuZCBtb3N0IGNvbW1vbikgdmFsdWVz
IGhlcmUuICBPdGhlciBkcml2ZXJzIGNhbg0KQEAgLTUxMSw5ICs1NDksMTAg
QEANCiBzdGF0aWMgc3RydWN0IHJlcXVlc3QgKmdldF9yZXF1ZXN0KHJlcXVl
c3RfcXVldWVfdCAqcSwgaW50IHJ3KQ0KIHsNCiAJc3RydWN0IHJlcXVlc3Qg
KnJxID0gTlVMTDsNCi0Jc3RydWN0IHJlcXVlc3RfbGlzdCAqcmwgPSBxLT5y
cSArIHJ3Ow0KKwlzdHJ1Y3QgcmVxdWVzdF9saXN0ICpybDsNCiANCi0JaWYg
KCFsaXN0X2VtcHR5KCZybC0+ZnJlZSkpIHsNCisJcmwgPSAmcS0+cnE7DQor
CWlmICghbGlzdF9lbXB0eSgmcmwtPmZyZWUpICYmICFibGtfb3ZlcnNpemVk
X3F1ZXVlKHEpKSB7DQogCQlycSA9IGJsa2Rldl9mcmVlX3JxKCZybC0+ZnJl
ZSk7DQogCQlsaXN0X2RlbCgmcnEtPnF1ZXVlKTsNCiAJCXJsLT5jb3VudC0t
Ow0KQEAgLTUyMiwzNCArNTYxLDIzIEBADQogCQlycS0+c3BlY2lhbCA9IE5V
TEw7DQogCQlycS0+cSA9IHE7DQogCX0NCi0NCiAJcmV0dXJuIHJxOw0KIH0N
CiANCiAvKg0KLSAqIEhlcmUncyB0aGUgcmVxdWVzdCBhbGxvY2F0aW9uIGRl
c2lnbjoNCisgKiBIZXJlJ3MgdGhlIHJlcXVlc3QgYWxsb2NhdGlvbiBkZXNp
Z24sIGxvdyBsYXRlbmN5IHZlcnNpb246DQogICoNCiAgKiAxOiBCbG9ja2lu
ZyBvbiByZXF1ZXN0IGV4aGF1c3Rpb24gaXMgYSBrZXkgcGFydCBvZiBJL08g
dGhyb3R0bGluZy4NCiAgKiANCiAgKiAyOiBXZSB3YW50IHRvIGJlIGBmYWly
JyB0byBhbGwgcmVxdWVzdGVycy4gIFdlIG11c3QgYXZvaWQgc3RhcnZhdGlv
biwgYW5kDQogICogICAgYXR0ZW1wdCB0byBlbnN1cmUgdGhhdCBhbGwgcmVx
dWVzdGVycyBzbGVlcCBmb3IgYSBzaW1pbGFyIGR1cmF0aW9uLiAgSGVuY2UN
CiAgKiAgICBubyBzdGVhbGluZyByZXF1ZXN0cyB3aGVuIHRoZXJlIGFyZSBv
dGhlciBwcm9jZXNzZXMgd2FpdGluZy4NCi0gKiANCi0gKiAzOiBXZSBhbHNv
IHdpc2ggdG8gc3VwcG9ydCBgYmF0Y2hpbmcnIG9mIHJlcXVlc3RzLiAgU28g
d2hlbiBhIHByb2Nlc3MgaXMNCi0gKiAgICB3b2tlbiwgd2Ugd2FudCB0byBh
bGxvdyBpdCB0byBhbGxvY2F0ZSBhIGRlY2VudCBudW1iZXIgb2YgcmVxdWVz
dHMNCi0gKiAgICBiZWZvcmUgaXQgYmxvY2tzIGFnYWluLCBzbyB0aGV5IGNh
biBiZSBuaWNlbHkgbWVyZ2VkICh0aGlzIG9ubHkgcmVhbGx5DQotICogICAg
bWF0dGVycyBpZiB0aGUgcHJvY2VzcyBoYXBwZW5zIHRvIGJlIGFkZGluZyBy
ZXF1ZXN0cyBuZWFyIHRoZSBoZWFkIG9mDQotICogICAgdGhlIHF1ZXVlKS4N
Ci0gKiANCi0gKiA0OiBXZSB3YW50IHRvIGF2b2lkIHNjaGVkdWxpbmcgc3Rv
cm1zLiAgVGhpcyBpc24ndCByZWFsbHkgaW1wb3J0YW50LCBiZWNhdXNlDQot
ICogICAgdGhlIHN5c3RlbSB3aWxsIGJlIEkvTyBib3VuZCBhbnl3YXkuICBC
dXQgaXQncyBlYXN5Lg0KLSAqIA0KLSAqICAgIFRoZXJlIGlzIHRlbnNpb24g
YmV0d2VlbiByZXF1aXJlbWVudHMgMiBhbmQgMy4gIE9uY2UgYSB0YXNrIGhh
cyB3b2tlbiwNCi0gKiAgICB3ZSBkb24ndCB3YW50IHRvIGFsbG93IGl0IHRv
IHNsZWVwIGFzIHNvb24gYXMgaXQgdGFrZXMgaXRzIHNlY29uZCByZXF1ZXN0
Lg0KLSAqICAgIEJ1dCB3ZSBkb24ndCB3YW50IGN1cnJlbnRseS1ydW5uaW5n
IHRhc2tzIHRvIHN0ZWFsIGFsbCB0aGUgcmVxdWVzdHMNCi0gKiAgICBmcm9t
IHRoZSBzbGVlcGVycy4gIFdlIGhhbmRsZSB0aGlzIHdpdGggd2FrZXVwIGh5
c3RlcmVzaXMgYXJvdW5kDQotICogICAgMCAuLiBiYXRjaF9yZXF1ZXN0cyBh
bmQgd2l0aCB0aGUgYXNzdW1wdGlvbiB0aGF0IHJlcXVlc3QgdGFraW5nIGlz
IG11Y2gsDQotICogICAgbXVjaCBmYXN0ZXIgdGhhbiByZXF1ZXN0IGZyZWVp
bmcuDQorICoNCisgKiBUaGVyZSB1c2VkIHRvIGJlIG1vcmUgaGVyZSwgYXR0
ZW1wdGluZyB0byBhbGxvdyBhIHByb2Nlc3MgdG8gc2VuZCBpbiBhDQorICog
bnVtYmVyIG9mIHJlcXVlc3RzIG9uY2UgaXQgaGFzIHdva2VuIHVwLiAgQnV0
LCB0aGVyZSdzIG5vIHdheSB0byANCisgKiB0ZWxsIGlmIGEgcHJvY2VzcyBo
YXMganVzdCBiZWVuIHdva2VuIHVwLCBvciBpZiBpdCBpcyBhIG5ldyBwcm9j
ZXNzDQorICogY29taW5nIGluIHRvIHN0ZWFsIHJlcXVlc3RzIGZyb20gdGhl
IHdhaXRlcnMuICBTbywgd2UgZ2l2ZSB1cCBhbmQgZm9yY2UNCisgKiBldmVy
eW9uZSB0byB3YWl0IGZhaXJseS4NCiAgKiANCiAgKiBTbyBoZXJlJ3Mgd2hh
dCB3ZSBkbzoNCiAgKiANCkBAIC01NjEsMjggKzU4OSwyMyBAQA0KICAqIA0K
ICAqICBXaGVuIGEgcHJvY2VzcyB3YW50cyBhIG5ldyByZXF1ZXN0Og0KICAq
IA0KLSAqICAgIGIpIElmIGZyZWVfcmVxdWVzdHMgPT0gMCwgdGhlIHJlcXVl
c3RlciBzbGVlcHMgaW4gRklGTyBtYW5uZXIuDQotICogDQotICogICAgYikg
SWYgMCA8ICBmcmVlX3JlcXVlc3RzIDwgYmF0Y2hfcmVxdWVzdHMgYW5kIHRo
ZXJlIGFyZSB3YWl0ZXJzLA0KLSAqICAgICAgIHdlIHN0aWxsIHRha2UgYSBy
ZXF1ZXN0IG5vbi1ibG9ja2luZ2x5LiAgVGhpcyBwcm92aWRlcyBiYXRjaGlu
Zy4NCi0gKg0KLSAqICAgIGMpIElmIGZyZWVfcmVxdWVzdHMgPj0gYmF0Y2hf
cmVxdWVzdHMsIHRoZSBjYWxsZXIgaXMgaW1tZWRpYXRlbHkNCi0gKiAgICAg
ICBncmFudGVkIGEgbmV3IHJlcXVlc3QuDQorICogICAgYikgSWYgZnJlZV9y
ZXF1ZXN0cyA9PSAwLCB0aGUgcmVxdWVzdGVyIHNsZWVwcyBpbiBGSUZPIG1h
bm5lciwgYW5kDQorICogICAgICAgdGhlIHF1ZXVlIGZ1bGwgY29uZGl0aW9u
IGlzIHNldC4gIFRoZSBmdWxsIGNvbmRpdGlvbiBpcyBub3QNCisgKiAgICAg
ICBjbGVhcmVkIHVudGlsIHRoZXJlIGFyZSBubyBsb25nZXIgYW55IHdhaXRl
cnMuICBPbmNlIHRoZSBmdWxsDQorICogICAgICAgY29uZGl0aW9uIGlzIHNl
dCwgYWxsIG5ldyBpbyBtdXN0IHdhaXQsIGhvcGVmdWxseSBmb3IgYSB2ZXJ5
DQorICogICAgICAgc2hvcnQgcGVyaW9kIG9mIHRpbWUuDQogICogDQogICog
IFdoZW4gYSByZXF1ZXN0IGlzIHJlbGVhc2VkOg0KICAqIA0KLSAqICAgIGQp
IElmIGZyZWVfcmVxdWVzdHMgPCBiYXRjaF9yZXF1ZXN0cywgZG8gbm90aGlu
Zy4NCi0gKiANCi0gKiAgICBmKSBJZiBmcmVlX3JlcXVlc3RzID49IGJhdGNo
X3JlcXVlc3RzLCB3YWtlIHVwIGEgc2luZ2xlIHdhaXRlci4NCisgKiAgICBj
KSBJZiBmcmVlX3JlcXVlc3RzIDwgYmF0Y2hfcmVxdWVzdHMsIGRvIG5vdGhp
bmcuDQogICogDQotICogICBUaGUgbmV0IGVmZmVjdCBpcyB0aGF0IHdoZW4g
YSBwcm9jZXNzIGlzIHdva2VuIGF0IHRoZSBiYXRjaF9yZXF1ZXN0cyBsZXZl
bCwNCi0gKiAgIGl0IHdpbGwgYmUgYWJsZSB0byB0YWtlIGFwcHJveGltYXRl
bHkgKGJhdGNoX3JlcXVlc3RzKSByZXF1ZXN0cyBiZWZvcmUNCi0gKiAgIGJs
b2NraW5nIGFnYWluIChhdCB0aGUgdGFpbCBvZiB0aGUgcXVldWUpLg0KLSAq
IA0KLSAqICAgVGhpcyBhbGwgYXNzdW1lcyB0aGF0IHRoZSByYXRlIG9mIHRh
a2luZyByZXF1ZXN0cyBpcyBtdWNoLCBtdWNoIGhpZ2hlcg0KLSAqICAgdGhh
biB0aGUgcmF0ZSBvZiByZWxlYXNpbmcgdGhlbS4gIFdoaWNoIGlzIHZlcnkg
dHJ1ZS4NCisgKiAgICBkKSBJZiBmcmVlX3JlcXVlc3RzID49IGJhdGNoX3Jl
cXVlc3RzLCB3YWtlIHVwIGEgc2luZ2xlIHdhaXRlci4NCiAgKg0KLSAqIC1h
a3BtLCBGZWIgMjAwMi4NCisgKiAgIEFzIGVhY2ggd2FpdGVyIGdldHMgYSBy
ZXF1ZXN0LCBoZSB3YWtlcyBhbm90aGVyIHdhaXRlci4gIFdlIGRvIHRoaXMN
CisgKiAgIHRvIHByZXZlbnQgYSByYWNlIHdoZXJlIGFuIHVucGx1ZyBtaWdo
dCBnZXQgcnVuIGJlZm9yZSBhIHJlcXVlc3QgbWFrZXMNCisgKiAgIGl0J3Mg
d2F5IG9udG8gdGhlIHF1ZXVlLiAgVGhlIHJlc3VsdCBpcyBhIGNhc2NhZGUg
b2Ygd2FrZXVwcywgc28gZGVsYXlpbmcNCisgKiAgIHRoZSBpbml0aWFsIHdh
a2V1cCB1bnRpbCB3ZSd2ZSBnb3QgYmF0Y2hfcmVxdWVzdHMgYXZhaWxhYmxl
IGhlbHBzIGF2b2lkDQorICogICB3YWtldXBzIHdoZXJlIHRoZXJlIGFyZW4n
dCBhbnkgcmVxdWVzdHMgYXZhaWxhYmxlIHlldC4NCiAgKi8NCiANCiBzdGF0
aWMgc3RydWN0IHJlcXVlc3QgKl9fZ2V0X3JlcXVlc3Rfd2FpdChyZXF1ZXN0
X3F1ZXVlX3QgKnEsIGludCBydykNCkBAIC01OTAsMjEgKzYxMywzNyBAQA0K
IAlyZWdpc3RlciBzdHJ1Y3QgcmVxdWVzdCAqcnE7DQogCURFQ0xBUkVfV0FJ
VFFVRVVFKHdhaXQsIGN1cnJlbnQpOw0KIA0KLQlhZGRfd2FpdF9xdWV1ZSgm
cS0+d2FpdF9mb3JfcmVxdWVzdHNbcnddLCAmd2FpdCk7DQorCWFkZF93YWl0
X3F1ZXVlX2V4Y2x1c2l2ZSgmcS0+d2FpdF9mb3JfcmVxdWVzdHMsICZ3YWl0
KTsNCisNCiAJZG8gew0KIAkJc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19VTklO
VEVSUlVQVElCTEUpOw0KLQkJZ2VuZXJpY191bnBsdWdfZGV2aWNlKHEpOw0K
LQkJaWYgKHEtPnJxW3J3XS5jb3VudCA9PSAwKQ0KLQkJCXNjaGVkdWxlKCk7
DQogCQlzcGluX2xvY2tfaXJxKCZpb19yZXF1ZXN0X2xvY2spOw0KKwkJaWYg
KGJsa19vdmVyc2l6ZWRfcXVldWUocSkpIHsNCisJCQlfX2dlbmVyaWNfdW5w
bHVnX2RldmljZShxKTsNCisJCQlzcGluX3VubG9ja19pcnEoJmlvX3JlcXVl
c3RfbG9jayk7DQorCQkJc2NoZWR1bGUoKTsNCisJCQlzcGluX2xvY2tfaXJx
KCZpb19yZXF1ZXN0X2xvY2spOw0KKwkJfQ0KIAkJcnEgPSBnZXRfcmVxdWVz
dChxLCBydyk7DQogCQlzcGluX3VubG9ja19pcnEoJmlvX3JlcXVlc3RfbG9j
ayk7DQogCX0gd2hpbGUgKHJxID09IE5VTEwpOw0KLQlyZW1vdmVfd2FpdF9x
dWV1ZSgmcS0+d2FpdF9mb3JfcmVxdWVzdHNbcnddLCAmd2FpdCk7DQorCXJl
bW92ZV93YWl0X3F1ZXVlKCZxLT53YWl0X2Zvcl9yZXF1ZXN0cywgJndhaXQp
Ow0KIAljdXJyZW50LT5zdGF0ZSA9IFRBU0tfUlVOTklORzsNCisNCiAJcmV0
dXJuIHJxOw0KIH0NCiANCitzdGF0aWMgdm9pZCBnZXRfcmVxdWVzdF93YWl0
X3dha2V1cChyZXF1ZXN0X3F1ZXVlX3QgKnEsIGludCBydykNCit7DQorCS8q
DQorCSAqIGF2b2lkIGxvc2luZyBhbiB1bnBsdWcgaWYgYSBzZWNvbmQgX19n
ZXRfcmVxdWVzdF93YWl0IGRpZCB0aGUNCisJICogZ2VuZXJpY191bnBsdWdf
ZGV2aWNlIHdoaWxlIG91ciBfX2dldF9yZXF1ZXN0X3dhaXQgd2FzIHJ1bm5p
bmcNCisJICogdy9vIHRoZSBxdWV1ZV9sb2NrIGhlbGQgYW5kIHcvIG91ciBy
ZXF1ZXN0IG91dCBvZiB0aGUgcXVldWUuDQorCSAqLwkNCisJaWYgKHdhaXRx
dWV1ZV9hY3RpdmUoJnEtPndhaXRfZm9yX3JlcXVlc3RzKSkNCisJCXdha2Vf
dXAoJnEtPndhaXRfZm9yX3JlcXVlc3RzKTsNCit9DQorDQogLyogUk8gZmFp
bCBzYWZlIG1lY2hhbmlzbSAqLw0KIA0KIHN0YXRpYyBsb25nIHJvX2JpdHNb
TUFYX0JMS0RFVl1bOF07DQpAQCAtODE4LDcgKzg1Nyw2IEBADQogdm9pZCBi
bGtkZXZfcmVsZWFzZV9yZXF1ZXN0KHN0cnVjdCByZXF1ZXN0ICpyZXEpDQog
ew0KIAlyZXF1ZXN0X3F1ZXVlX3QgKnEgPSByZXEtPnE7DQotCWludCBydyA9
IHJlcS0+Y21kOw0KIA0KIAlyZXEtPnJxX3N0YXR1cyA9IFJRX0lOQUNUSVZF
Ow0KIAlyZXEtPnEgPSBOVUxMOw0KQEAgLTgyOCw5ICs4NjYsMTcgQEANCiAJ
ICogYXNzdW1lIGl0IGhhcyBmcmVlIGJ1ZmZlcnMgYW5kIGNoZWNrIHdhaXRl
cnMNCiAJICovDQogCWlmIChxKSB7DQotCQlsaXN0X2FkZCgmcmVxLT5xdWV1
ZSwgJnEtPnJxW3J3XS5mcmVlKTsNCi0JCWlmICgrK3EtPnJxW3J3XS5jb3Vu
dCA+PSBxLT5iYXRjaF9yZXF1ZXN0cykNCi0JCQl3YWtlX3VwKCZxLT53YWl0
X2Zvcl9yZXF1ZXN0c1tyd10pOw0KKwkJaW50IG92ZXJzaXplZF9iYXRjaCA9
IDA7DQorDQorCQlpZiAocS0+Y2FuX3Rocm90dGxlKQ0KKwkJCW92ZXJzaXpl
ZF9iYXRjaCA9IGJsa19vdmVyc2l6ZWRfcXVldWVfYmF0Y2gocSk7DQorCQlx
LT5ycS5jb3VudCsrOw0KKwkJbGlzdF9hZGQoJnJlcS0+cXVldWUsICZxLT5y
cS5mcmVlKTsNCisJCWlmIChxLT5ycS5jb3VudCA+PSBxLT5iYXRjaF9yZXF1
ZXN0cyAmJiAhb3ZlcnNpemVkX2JhdGNoKSB7DQorCQkJc21wX21iKCk7DQor
CQkJaWYgKHdhaXRxdWV1ZV9hY3RpdmUoJnEtPndhaXRfZm9yX3JlcXVlc3Rz
KSkNCisJCQkJd2FrZV91cCgmcS0+d2FpdF9mb3JfcmVxdWVzdHMpOw0KKwkJ
fQ0KIAl9DQogfQ0KIA0KQEAgLTkwOCw2ICs5NTQsNyBAQA0KIAlzdHJ1Y3Qg
bGlzdF9oZWFkICpoZWFkLCAqaW5zZXJ0X2hlcmU7DQogCWludCBsYXRlbmN5
Ow0KIAllbGV2YXRvcl90ICplbGV2YXRvciA9ICZxLT5lbGV2YXRvcjsNCisJ
aW50IHNob3VsZF93YWtlID0gMDsNCiANCiAJY291bnQgPSBiaC0+Yl9zaXpl
ID4+IDk7DQogCXNlY3RvciA9IGJoLT5iX3JzZWN0b3I7DQpAQCAtOTQ4LDcg
Kzk5NSw2IEBADQogCSAqLw0KIAltYXhfc2VjdG9ycyA9IGdldF9tYXhfc2Vj
dG9ycyhiaC0+Yl9yZGV2KTsNCiANCi1hZ2FpbjoNCiAJcmVxID0gTlVMTDsN
CiAJaGVhZCA9ICZxLT5xdWV1ZV9oZWFkOw0KIAkvKg0KQEAgLTk1Nyw3ICsx
MDAzLDkgQEANCiAJICovDQogCXNwaW5fbG9ja19pcnEoJmlvX3JlcXVlc3Rf
bG9jayk7DQogDQorYWdhaW46DQogCWluc2VydF9oZXJlID0gaGVhZC0+cHJl
djsNCisNCiAJaWYgKGxpc3RfZW1wdHkoaGVhZCkpIHsNCiAJCXEtPnBsdWdf
ZGV2aWNlX2ZuKHEsIGJoLT5iX3JkZXYpOyAvKiBpcyBhdG9taWMgKi8NCiAJ
CWdvdG8gZ2V0X3JxOw0KQEAgLTk3Niw2ICsxMDI0LDcgQEANCiAJCQlyZXEt
PmJodGFpbCA9IGJoOw0KIAkJCXJlcS0+bnJfc2VjdG9ycyA9IHJlcS0+aGFy
ZF9ucl9zZWN0b3JzICs9IGNvdW50Ow0KIAkJCWJsa19zdGFydGVkX2lvKGNv
dW50KTsNCisJCQlibGtfc3RhcnRlZF9zZWN0b3JzKHJlcSwgY291bnQpOw0K
IAkJCWRyaXZlX3N0YXRfYWNjdChyZXEtPnJxX2RldiwgcmVxLT5jbWQsIGNv
dW50LCAwKTsNCiAJCQlyZXFfbmV3X2lvKHJlcSwgMSwgY291bnQpOw0KIAkJ
CWF0dGVtcHRfYmFja19tZXJnZShxLCByZXEsIG1heF9zZWN0b3JzLCBtYXhf
c2VnbWVudHMpOw0KQEAgLTk5OCw2ICsxMDQ3LDcgQEANCiAJCQlyZXEtPnNl
Y3RvciA9IHJlcS0+aGFyZF9zZWN0b3IgPSBzZWN0b3I7DQogCQkJcmVxLT5u
cl9zZWN0b3JzID0gcmVxLT5oYXJkX25yX3NlY3RvcnMgKz0gY291bnQ7DQog
CQkJYmxrX3N0YXJ0ZWRfaW8oY291bnQpOw0KKwkJCWJsa19zdGFydGVkX3Nl
Y3RvcnMocmVxLCBjb3VudCk7DQogCQkJZHJpdmVfc3RhdF9hY2N0KHJlcS0+
cnFfZGV2LCByZXEtPmNtZCwgY291bnQsIDApOw0KIAkJCXJlcV9uZXdfaW8o
cmVxLCAxLCBjb3VudCk7DQogCQkJYXR0ZW1wdF9mcm9udF9tZXJnZShxLCBo
ZWFkLCByZXEsIG1heF9zZWN0b3JzLCBtYXhfc2VnbWVudHMpOw0KQEAgLTEw
MzAsNyArMTA4MCw3IEBADQogCQkgKiBTZWUgZGVzY3JpcHRpb24gYWJvdmUg
X19nZXRfcmVxdWVzdF93YWl0KCkNCiAJCSAqLw0KIAkJaWYgKHJ3X2FoZWFk
KSB7DQotCQkJaWYgKHEtPnJxW3J3XS5jb3VudCA8IHEtPmJhdGNoX3JlcXVl
c3RzKSB7DQorCQkJaWYgKHEtPnJxLmNvdW50IDwgcS0+YmF0Y2hfcmVxdWVz
dHMgfHwgYmxrX292ZXJzaXplZF9xdWV1ZV9iYXRjaChxKSkgew0KIAkJCQlz
cGluX3VubG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jayk7DQogCQkJCWdvdG8g
ZW5kX2lvOw0KIAkJCX0NCkBAIC0xMDQyLDYgKzEwOTIsOSBAQA0KIAkJCWlm
IChyZXEgPT0gTlVMTCkgew0KIAkJCQlzcGluX3VubG9ja19pcnEoJmlvX3Jl
cXVlc3RfbG9jayk7DQogCQkJCWZyZWVyZXEgPSBfX2dldF9yZXF1ZXN0X3dh
aXQocSwgcncpOw0KKwkJCQloZWFkID0gJnEtPnF1ZXVlX2hlYWQ7DQorCQkJ
CXNwaW5fbG9ja19pcnEoJmlvX3JlcXVlc3RfbG9jayk7DQorCQkJCXNob3Vs
ZF93YWtlID0gMTsNCiAJCQkJZ290byBhZ2FpbjsNCiAJCQl9DQogCQl9DQpA
QCAtMTA2NCwxMCArMTExNywxMyBAQA0KIAlyZXEtPnN0YXJ0X3RpbWUgPSBq
aWZmaWVzOw0KIAlyZXFfbmV3X2lvKHJlcSwgMCwgY291bnQpOw0KIAlibGtf
c3RhcnRlZF9pbyhjb3VudCk7DQorCWJsa19zdGFydGVkX3NlY3RvcnMocmVx
LCBjb3VudCk7DQogCWFkZF9yZXF1ZXN0KHEsIHJlcSwgaW5zZXJ0X2hlcmUp
Ow0KIG91dDoNCiAJaWYgKGZyZWVyZXEpDQogCQlibGtkZXZfcmVsZWFzZV9y
ZXF1ZXN0KGZyZWVyZXEpOw0KKwlpZiAoc2hvdWxkX3dha2UpDQorCQlnZXRf
cmVxdWVzdF93YWl0X3dha2V1cChxLCBydyk7DQogCXNwaW5fdW5sb2NrX2ly
cSgmaW9fcmVxdWVzdF9sb2NrKTsNCiAJcmV0dXJuIDA7DQogZW5kX2lvOg0K
QEAgLTExOTYsOCArMTI1MiwxNSBAQA0KIAliaC0+Yl9yZGV2ID0gYmgtPmJf
ZGV2Ow0KIAliaC0+Yl9yc2VjdG9yID0gYmgtPmJfYmxvY2tuciAqIGNvdW50
Ow0KIA0KKwlnZXRfYmgoYmgpOw0KIAlnZW5lcmljX21ha2VfcmVxdWVzdChy
dywgYmgpOw0KIA0KKwkvKiBmaXggcmFjZSBjb25kaXRpb24gd2l0aCB3YWl0
X29uX2J1ZmZlcigpICovDQorCXNtcF9tYigpOyAvKiBzcGluX3VubG9jayBt
YXkgaGF2ZSBpbmNsdXNpdmUgc2VtYW50aWNzICovDQorCWlmICh3YWl0cXVl
dWVfYWN0aXZlKCZiaC0+Yl93YWl0KSkNCisJCXdha2VfdXAoJmJoLT5iX3dh
aXQpOw0KKw0KKwlwdXRfYmgoYmgpOw0KIAlzd2l0Y2ggKHJ3KSB7DQogCQlj
YXNlIFdSSVRFOg0KIAkJCWtzdGF0LnBncGdvdXQgKz0gY291bnQ7DQpAQCAt
MTM1MCw2ICsxNDEzLDcgQEANCiAJaWYgKChiaCA9IHJlcS0+YmgpICE9IE5V
TEwpIHsNCiAJCW5zZWN0ID0gYmgtPmJfc2l6ZSA+PiA5Ow0KIAkJYmxrX2Zp
bmlzaGVkX2lvKG5zZWN0KTsNCisJCWJsa19maW5pc2hlZF9zZWN0b3JzKHJl
cSwgbnNlY3QpOw0KIAkJcmVxLT5iaCA9IGJoLT5iX3JlcW5leHQ7DQogCQli
aC0+Yl9yZXFuZXh0ID0gTlVMTDsNCiAJCWJoLT5iX2VuZF9pbyhiaCwgdXB0
b2RhdGUpOw0KQEAgLTE1MDksNiArMTU3Myw3IEBADQogRVhQT1JUX1NZTUJP
TChibGtfZ2V0X3F1ZXVlKTsNCiBFWFBPUlRfU1lNQk9MKGJsa19jbGVhbnVw
X3F1ZXVlKTsNCiBFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV9oZWFkYWN0aXZl
KTsNCitFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV90aHJvdHRsZV9zZWN0b3Jz
KTsNCiBFWFBPUlRfU1lNQk9MKGJsa19xdWV1ZV9tYWtlX3JlcXVlc3QpOw0K
IEVYUE9SVF9TWU1CT0woZ2VuZXJpY19tYWtlX3JlcXVlc3QpOw0KIEVYUE9S
VF9TWU1CT0woYmxrZGV2X3JlbGVhc2VfcmVxdWVzdCk7DQpkaWZmIC1OcnUg
YS9kcml2ZXJzL2lkZS9pZGUtcHJvYmUuYyBiL2RyaXZlcnMvaWRlL2lkZS1w
cm9iZS5jDQotLS0gYS9kcml2ZXJzL2lkZS9pZGUtcHJvYmUuYwlUaHUgSnVs
IDEwIDE0OjUyOjM4IDIwMDMNCisrKyBiL2RyaXZlcnMvaWRlL2lkZS1wcm9i
ZS5jCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAgLTk3MSw2ICs5NzEs
NyBAQA0KIA0KIAlxLT5xdWV1ZWRhdGEgPSBIV0dST1VQKGRyaXZlKTsNCiAJ
YmxrX2luaXRfcXVldWUocSwgZG9faWRlX3JlcXVlc3QpOw0KKwlibGtfcXVl
dWVfdGhyb3R0bGVfc2VjdG9ycyhxLCAxKTsNCiB9DQogDQogI3VuZGVmIF9f
SVJRX0hFTExfU1BJTg0KZGlmZiAtTnJ1IGEvZHJpdmVycy9zY3NpL3Njc2ku
YyBiL2RyaXZlcnMvc2NzaS9zY3NpLmMNCi0tLSBhL2RyaXZlcnMvc2NzaS9z
Y3NpLmMJVGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQorKysgYi9kcml2ZXJz
L3Njc2kvc2NzaS5jCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAgLTE5
Nyw2ICsxOTcsNyBAQA0KIA0KIAlibGtfaW5pdF9xdWV1ZShxLCBzY3NpX3Jl
cXVlc3RfZm4pOw0KIAlibGtfcXVldWVfaGVhZGFjdGl2ZShxLCAwKTsNCisJ
YmxrX3F1ZXVlX3Rocm90dGxlX3NlY3RvcnMocSwgMSk7DQogCXEtPnF1ZXVl
ZGF0YSA9ICh2b2lkICopIFNEcG50Ow0KIH0NCiANCmRpZmYgLU5ydSBhL2Ry
aXZlcnMvc2NzaS9zY3NpX2xpYi5jIGIvZHJpdmVycy9zY3NpL3Njc2lfbGli
LmMNCi0tLSBhL2RyaXZlcnMvc2NzaS9zY3NpX2xpYi5jCVRodSBKdWwgMTAg
MTQ6NTI6MzggMjAwMw0KKysrIGIvZHJpdmVycy9zY3NpL3Njc2lfbGliLmMJ
VGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQpAQCAtMzc4LDYgKzM3OCw3IEBA
DQogCQlpZiAoKGJoID0gcmVxLT5iaCkgIT0gTlVMTCkgew0KIAkJCW5zZWN0
ID0gYmgtPmJfc2l6ZSA+PiA5Ow0KIAkJCWJsa19maW5pc2hlZF9pbyhuc2Vj
dCk7DQorCQkJYmxrX2ZpbmlzaGVkX3NlY3RvcnMocmVxLCBuc2VjdCk7DQog
CQkJcmVxLT5iaCA9IGJoLT5iX3JlcW5leHQ7DQogCQkJYmgtPmJfcmVxbmV4
dCA9IE5VTEw7DQogCQkJc2VjdG9ycyAtPSBuc2VjdDsNCmRpZmYgLU5ydSBh
L2ZzL2J1ZmZlci5jIGIvZnMvYnVmZmVyLmMNCi0tLSBhL2ZzL2J1ZmZlci5j
CVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KKysrIGIvZnMvYnVmZmVyLmMJ
VGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQpAQCAtMTUzLDEwICsxNTMsMjMg
QEANCiAJZ2V0X2JoKGJoKTsNCiAJYWRkX3dhaXRfcXVldWUoJmJoLT5iX3dh
aXQsICZ3YWl0KTsNCiAJZG8gew0KLQkJcnVuX3Rhc2tfcXVldWUoJnRxX2Rp
c2spOw0KIAkJc2V0X3Rhc2tfc3RhdGUodHNrLCBUQVNLX1VOSU5URVJSVVBU
SUJMRSk7DQogCQlpZiAoIWJ1ZmZlcl9sb2NrZWQoYmgpKQ0KIAkJCWJyZWFr
Ow0KKwkJLyoNCisJCSAqIFdlIG11c3QgcmVhZCB0cV9kaXNrIGluIFRRX0FD
VElWRSBhZnRlciB0aGUNCisJCSAqIGFkZF93YWl0X3F1ZXVlIGVmZmVjdCBp
cyB2aXNpYmxlIHRvIG90aGVyIGNwdXMuDQorCQkgKiBXZSBjb3VsZCB1bnBs
dWcgc29tZSBsaW5lIGFib3ZlIGl0IHdvdWxkbid0IG1hdHRlcg0KKwkJICog
YnV0IHdlIGNhbid0IGRvIHRoYXQgcmlnaHQgYWZ0ZXIgYWRkX3dhaXRfcXVl
dWUNCisJCSAqIHdpdGhvdXQgYW4gc21wX21iKCkgaW4gYmV0d2VlbiBiZWNh
dXNlIHNwaW5fdW5sb2NrDQorCQkgKiBoYXMgaW5jbHVzaXZlIHNlbWFudGlj
cy4NCisJCSAqIERvaW5nIGl0IGhlcmUgaXMgdGhlIG1vc3QgZWZmaWNpZW50
IHBsYWNlIHNvIHdlDQorCQkgKiBkb24ndCBkbyBhIHN1cHJpb3VzIHVucGx1
ZyBpZiB3ZSBnZXQgYSByYWN5DQorCQkgKiB3YWtldXAgdGhhdCBtYWtlIGJ1
ZmZlcl9sb2NrZWQgdG8gcmV0dXJuIDAsIGFuZA0KKwkJICogZG9pbmcgaXQg
aGVyZSBhdm9pZHMgYW4gZXhwbGljaXQgc21wX21iKCkgd2UNCisJCSAqIHJl
bHkgb24gdGhlIGltcGxpY2l0IG9uZSBpbiBzZXRfdGFza19zdGF0ZS4NCisJ
CSAqLw0KKwkJcnVuX3Rhc2tfcXVldWUoJnRxX2Rpc2spOw0KIAkJc2NoZWR1
bGUoKTsNCiAJfSB3aGlsZSAoYnVmZmVyX2xvY2tlZChiaCkpOw0KIAl0c2st
PnN0YXRlID0gVEFTS19SVU5OSU5HOw0KQEAgLTE1MTYsNiArMTUyOSw5IEBA
DQogDQogCS8qIERvbmUgLSBlbmRfYnVmZmVyX2lvX2FzeW5jIHdpbGwgdW5s
b2NrICovDQogCVNldFBhZ2VVcHRvZGF0ZShwYWdlKTsNCisNCisJd2FrZXVw
X3BhZ2Vfd2FpdGVycyhwYWdlKTsNCisNCiAJcmV0dXJuIDA7DQogDQogb3V0
Og0KQEAgLTE1NDcsNiArMTU2Myw3IEBADQogCX0gd2hpbGUgKGJoICE9IGhl
YWQpOw0KIAlpZiAobmVlZF91bmxvY2spDQogCQlVbmxvY2tQYWdlKHBhZ2Up
Ow0KKwl3YWtldXBfcGFnZV93YWl0ZXJzKHBhZ2UpOw0KIAlyZXR1cm4gZXJy
Ow0KIH0NCiANCkBAIC0xNzc0LDYgKzE3OTEsOCBAQA0KIAkJZWxzZQ0KIAkJ
CXN1Ym1pdF9iaChSRUFELCBiaCk7DQogCX0NCisNCisJd2FrZXVwX3BhZ2Vf
d2FpdGVycyhwYWdlKTsNCiAJDQogCXJldHVybiAwOw0KIH0NCkBAIC0yNDAw
LDYgKzI0MTksNyBAQA0KIAkJc3VibWl0X2JoKHJ3LCBiaCk7DQogCQliaCA9
IG5leHQ7DQogCX0gd2hpbGUgKGJoICE9IGhlYWQpOw0KKwl3YWtldXBfcGFn
ZV93YWl0ZXJzKHBhZ2UpOw0KIAlyZXR1cm4gMDsNCiB9DQogDQpkaWZmIC1O
cnUgYS9mcy9yZWlzZXJmcy9pbm9kZS5jIGIvZnMvcmVpc2VyZnMvaW5vZGUu
Yw0KLS0tIGEvZnMvcmVpc2VyZnMvaW5vZGUuYwlUaHUgSnVsIDEwIDE0OjUy
OjM4IDIwMDMNCisrKyBiL2ZzL3JlaXNlcmZzL2lub2RlLmMJVGh1IEp1bCAx
MCAxNDo1MjozOCAyMDAzDQpAQCAtMjA4MCw2ICsyMDgwLDcgQEANCiAgICAg
Ki8NCiAgICAgaWYgKG5yKSB7DQogICAgICAgICBzdWJtaXRfYmhfZm9yX3dy
aXRlcGFnZShhcnIsIG5yKSA7DQorCXdha2V1cF9wYWdlX3dhaXRlcnMocGFn
ZSk7DQogICAgIH0gZWxzZSB7DQogICAgICAgICBVbmxvY2tQYWdlKHBhZ2Up
IDsNCiAgICAgfQ0KZGlmZiAtTnJ1IGEvaW5jbHVkZS9saW51eC9ibGtkZXYu
aCBiL2luY2x1ZGUvbGludXgvYmxrZGV2LmgNCi0tLSBhL2luY2x1ZGUvbGlu
dXgvYmxrZGV2LmgJVGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQorKysgYi9p
bmNsdWRlL2xpbnV4L2Jsa2Rldi5oCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAw
Mw0KQEAgLTY0LDEyICs2NCw2IEBADQogdHlwZWRlZiB2b2lkIChwbHVnX2Rl
dmljZV9mbikgKHJlcXVlc3RfcXVldWVfdCAqcSwga2Rldl90IGRldmljZSk7
DQogdHlwZWRlZiB2b2lkICh1bnBsdWdfZGV2aWNlX2ZuKSAodm9pZCAqcSk7
DQogDQotLyoNCi0gKiBEZWZhdWx0IG5yIGZyZWUgcmVxdWVzdHMgcGVyIHF1
ZXVlLCBsbF9yd19ibGsgd2lsbCBzY2FsZSBpdCBkb3duDQotICogYWNjb3Jk
aW5nIHRvIGF2YWlsYWJsZSBSQU0gYXQgaW5pdCB0aW1lDQotICovDQotI2Rl
ZmluZSBRVUVVRV9OUl9SRVFVRVNUUwk4MTkyDQotDQogc3RydWN0IHJlcXVl
c3RfbGlzdCB7DQogCXVuc2lnbmVkIGludCBjb3VudDsNCiAJc3RydWN0IGxp
c3RfaGVhZCBmcmVlOw0KQEAgLTgwLDcgKzc0LDcgQEANCiAJLyoNCiAJICog
dGhlIHF1ZXVlIHJlcXVlc3QgZnJlZWxpc3QsIG9uZSBmb3IgcmVhZHMgYW5k
IG9uZSBmb3Igd3JpdGVzDQogCSAqLw0KLQlzdHJ1Y3QgcmVxdWVzdF9saXN0
CXJxWzJdOw0KKwlzdHJ1Y3QgcmVxdWVzdF9saXN0CXJxOw0KIA0KIAkvKg0K
IAkgKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlcXVlc3RzIG9uIGVhY2ggcXVl
dWUNCkBAIC05Myw2ICs4NywyMSBAQA0KIAlpbnQgYmF0Y2hfcmVxdWVzdHM7
DQogDQogCS8qDQorCSAqIFRoZSB0b3RhbCBudW1iZXIgb2YgNTEyYnl0ZSBi
bG9ja3Mgb24gZWFjaCBxdWV1ZQ0KKwkgKi8NCisJYXRvbWljX3QgbnJfc2Vj
dG9yczsNCisNCisJLyoNCisJICogQmF0Y2hpbmcgdGhyZXNob2xkIGZvciBz
bGVlcC93YWtldXAgZGVjaXNpb25zDQorCSAqLw0KKwlpbnQgYmF0Y2hfc2Vj
dG9yczsNCisNCisJLyoNCisJICogVGhlIG1heCBudW1iZXIgb2YgNTEyYnl0
ZSBibG9ja3Mgb24gZWFjaCBxdWV1ZQ0KKwkgKi8NCisJaW50IG1heF9xdWV1
ZV9zZWN0b3JzOw0KKw0KKwkvKg0KIAkgKiBUb2dldGhlciB3aXRoIHF1ZXVl
X2hlYWQgZm9yIGNhY2hlbGluZSBzaGFyaW5nDQogCSAqLw0KIAlzdHJ1Y3Qg
bGlzdF9oZWFkCXF1ZXVlX2hlYWQ7DQpAQCAtMTE4LDEzICsxMjcsMjEgQEAN
CiAJLyoNCiAJICogQm9vbGVhbiB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRo
aXMgcXVldWUgaXMgcGx1Z2dlZCBvciBub3QuDQogCSAqLw0KLQljaGFyCQkJ
cGx1Z2dlZDsNCisJaW50CQkJcGx1Z2dlZDoxOw0KIA0KIAkvKg0KIAkgKiBC
b29sZWFuIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgY3VycmVudF9yZXF1ZXN0
IGlzIGFjdGl2ZSBvcg0KIAkgKiBub3QuDQogCSAqLw0KLQljaGFyCQkJaGVh
ZF9hY3RpdmU7DQorCWludAkJCWhlYWRfYWN0aXZlOjE7DQorDQorCS8qDQor
CSAqIEJvb2xlYW4gdGhhdCBpbmRpY2F0ZXMgeW91IHdpbGwgdXNlIGJsa19z
dGFydGVkX3NlY3RvcnMNCisJICogYW5kIGJsa19maW5pc2hlZF9zZWN0b3Jz
IGluIGFkZGl0aW9uIHRvIGJsa19zdGFydGVkX2lvDQorCSAqIGFuZCBibGtf
ZmluaXNoZWRfaW8uICBJdCBlbmFibGVzIHRoZSB0aHJvdHRsaW5nIGNvZGUg
dG8gDQorCSAqIGhlbHAga2VlcCB0aGUgc2VjdG9ycyBpbiBmbGlnaHQgdG8g
YSByZWFzb25hYmxlIHZhbHVlDQorCSAqLw0KKwlpbnQJCQljYW5fdGhyb3R0
bGU6MTsNCiANCiAJdW5zaWduZWQgbG9uZwkJYm91bmNlX3BmbjsNCiANCkBA
IC0xMzcsNyArMTU0LDcgQEANCiAJLyoNCiAJICogVGFza3Mgd2FpdCBoZXJl
IGZvciBmcmVlIHJlYWQgYW5kIHdyaXRlIHJlcXVlc3RzDQogCSAqLw0KLQl3
YWl0X3F1ZXVlX2hlYWRfdAl3YWl0X2Zvcl9yZXF1ZXN0c1syXTsNCisJd2Fp
dF9xdWV1ZV9oZWFkX3QJd2FpdF9mb3JfcmVxdWVzdHM7DQogfTsNCiANCiAj
ZGVmaW5lIGJsa19xdWV1ZV9wbHVnZ2VkKHEpCShxKS0+cGx1Z2dlZA0KQEAg
LTIyMSwxMCArMjM4LDExIEBADQogLyoNCiAgKiBBY2Nlc3MgZnVuY3Rpb25z
IGZvciBtYW5pcHVsYXRpbmcgcXVldWUgcHJvcGVydGllcw0KICAqLw0KLWV4
dGVybiBpbnQgYmxrX2dyb3dfcmVxdWVzdF9saXN0KHJlcXVlc3RfcXVldWVf
dCAqcSwgaW50IG5yX3JlcXVlc3RzKTsNCitleHRlcm4gaW50IGJsa19ncm93
X3JlcXVlc3RfbGlzdChyZXF1ZXN0X3F1ZXVlX3QgKnEsIGludCBucl9yZXF1
ZXN0cywgaW50IG1heF9xdWV1ZV9zZWN0b3JzKTsNCiBleHRlcm4gdm9pZCBi
bGtfaW5pdF9xdWV1ZShyZXF1ZXN0X3F1ZXVlX3QgKiwgcmVxdWVzdF9mbl9w
cm9jICopOw0KIGV4dGVybiB2b2lkIGJsa19jbGVhbnVwX3F1ZXVlKHJlcXVl
c3RfcXVldWVfdCAqKTsNCiBleHRlcm4gdm9pZCBibGtfcXVldWVfaGVhZGFj
dGl2ZShyZXF1ZXN0X3F1ZXVlX3QgKiwgaW50KTsNCitleHRlcm4gdm9pZCBi
bGtfcXVldWVfdGhyb3R0bGVfc2VjdG9ycyhyZXF1ZXN0X3F1ZXVlX3QgKiwg
aW50KTsNCiBleHRlcm4gdm9pZCBibGtfcXVldWVfbWFrZV9yZXF1ZXN0KHJl
cXVlc3RfcXVldWVfdCAqLCBtYWtlX3JlcXVlc3RfZm4gKik7DQogZXh0ZXJu
IHZvaWQgZ2VuZXJpY191bnBsdWdfZGV2aWNlKHZvaWQgKik7DQogZXh0ZXJu
IGlubGluZSBpbnQgYmxrX3NlZ19tZXJnZV9vayhzdHJ1Y3QgYnVmZmVyX2hl
YWQgKiwgc3RydWN0IGJ1ZmZlcl9oZWFkICopOw0KQEAgLTI0Myw2ICsyNjEs
OCBAQA0KIA0KICNkZWZpbmUgTUFYX1NFR01FTlRTIDEyOA0KICNkZWZpbmUg
TUFYX1NFQ1RPUlMgMjU1DQorI2RlZmluZSBNQVhfUVVFVUVfU0VDVE9SUyAo
NCA8PCAoMjAgLSA5KSkgLyogNCBtYnl0ZXMgd2hlbiBmdWxsIHNpemVkICov
DQorI2RlZmluZSBNQVhfTlJfUkVRVUVTVFMgMTAyNCAvKiAxMDI0ayB3aGVu
IGluIDUxMiB1bml0cywgbm9ybWFsbHkgbWluIGlzIDFNIGluIDFrIHVuaXRz
ICovDQogDQogI2RlZmluZSBQYWdlQWxpZ25TaXplKHNpemUpICgoKHNpemUp
ICsgUEFHRV9TSVpFIC0xKSAmIFBBR0VfTUFTSykNCiANCkBAIC0yNjgsOCAr
Mjg4LDUwIEBADQogCXJldHVybiByZXR2YWw7DQogfQ0KIA0KK3N0YXRpYyBp
bmxpbmUgaW50IGJsa19vdmVyc2l6ZWRfcXVldWUocmVxdWVzdF9xdWV1ZV90
ICogcSkNCit7DQorCWlmIChxLT5jYW5fdGhyb3R0bGUpDQorCQlyZXR1cm4g
YXRvbWljX3JlYWQoJnEtPm5yX3NlY3RvcnMpID4gcS0+bWF4X3F1ZXVlX3Nl
Y3RvcnM7DQorCXJldHVybiBxLT5ycS5jb3VudCA9PSAwOw0KK30NCisNCitz
dGF0aWMgaW5saW5lIGludCBibGtfb3ZlcnNpemVkX3F1ZXVlX2JhdGNoKHJl
cXVlc3RfcXVldWVfdCAqIHEpDQorew0KKwlyZXR1cm4gYXRvbWljX3JlYWQo
JnEtPm5yX3NlY3RvcnMpID4gcS0+bWF4X3F1ZXVlX3NlY3RvcnMgLSBxLT5i
YXRjaF9zZWN0b3JzOw0KK30NCisNCiAjZGVmaW5lIGJsa19maW5pc2hlZF9p
byhuc2VjdHMpCWRvIHsgfSB3aGlsZSAoMCkNCiAjZGVmaW5lIGJsa19zdGFy
dGVkX2lvKG5zZWN0cykJZG8geyB9IHdoaWxlICgwKQ0KKw0KK3N0YXRpYyBp
bmxpbmUgdm9pZCBibGtfc3RhcnRlZF9zZWN0b3JzKHN0cnVjdCByZXF1ZXN0
ICpycSwgaW50IGNvdW50KQ0KK3sNCisJcmVxdWVzdF9xdWV1ZV90ICpxID0g
cnEtPnE7DQorCWlmIChxICYmIHEtPmNhbl90aHJvdHRsZSkgew0KKwkJYXRv
bWljX2FkZChjb3VudCwgJnEtPm5yX3NlY3RvcnMpOw0KKwkJaWYgKGF0b21p
Y19yZWFkKCZxLT5ucl9zZWN0b3JzKSA8IDApIHsNCisJCQlwcmludGsoIm5y
X3NlY3RvcnMgaXMgJWRcbiIsIGF0b21pY19yZWFkKCZxLT5ucl9zZWN0b3Jz
KSk7DQorCQkJQlVHKCk7DQorCQl9DQorCX0NCit9DQorDQorc3RhdGljIGlu
bGluZSB2b2lkIGJsa19maW5pc2hlZF9zZWN0b3JzKHN0cnVjdCByZXF1ZXN0
ICpycSwgaW50IGNvdW50KQ0KK3sNCisJcmVxdWVzdF9xdWV1ZV90ICpxID0g
cnEtPnE7DQorCWlmIChxICYmIHEtPmNhbl90aHJvdHRsZSkgew0KKwkJYXRv
bWljX3N1Yihjb3VudCwgJnEtPm5yX3NlY3RvcnMpOw0KKwkJDQorCQlzbXBf
bWIoKTsNCisJCWlmIChxLT5ycS5jb3VudCA+PSBxLT5iYXRjaF9yZXF1ZXN0
cyAmJiAhYmxrX292ZXJzaXplZF9xdWV1ZV9iYXRjaChxKSkgew0KKwkJCWlm
ICh3YWl0cXVldWVfYWN0aXZlKCZxLT53YWl0X2Zvcl9yZXF1ZXN0cykpDQor
CQkJCXdha2VfdXAoJnEtPndhaXRfZm9yX3JlcXVlc3RzKTsNCisJCX0NCisJ
CWlmIChhdG9taWNfcmVhZCgmcS0+bnJfc2VjdG9ycykgPCAwKSB7DQorCQkJ
cHJpbnRrKCJucl9zZWN0b3JzIGlzICVkXG4iLCBhdG9taWNfcmVhZCgmcS0+
bnJfc2VjdG9ycykpOw0KKwkJCUJVRygpOw0KKwkJfQ0KKwl9DQorfQ0KIA0K
IHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJsa3NpemVfYml0cyh1bnNp
Z25lZCBpbnQgc2l6ZSkNCiB7DQpkaWZmIC1OcnUgYS9pbmNsdWRlL2xpbnV4
L2VsZXZhdG9yLmggYi9pbmNsdWRlL2xpbnV4L2VsZXZhdG9yLmgNCi0tLSBh
L2luY2x1ZGUvbGludXgvZWxldmF0b3IuaAlUaHUgSnVsIDEwIDE0OjUyOjM4
IDIwMDMNCisrKyBiL2luY2x1ZGUvbGludXgvZWxldmF0b3IuaAlUaHUgSnVs
IDEwIDE0OjUyOjM4IDIwMDMNCkBAIC04MCw3ICs4MCw3IEBADQogCXJldHVy
biBsYXRlbmN5Ow0KIH0NCiANCi0jZGVmaW5lIEVMVl9MSU5VU19TRUVLX0NP
U1QJMTYNCisjZGVmaW5lIEVMVl9MSU5VU19TRUVLX0NPU1QJMQ0KIA0KICNk
ZWZpbmUgRUxFVkFUT1JfTk9PUAkJCQkJCQlcDQogKChlbGV2YXRvcl90KSB7
CQkJCQkJCQlcDQpAQCAtOTMsOCArOTMsOCBAQA0KIA0KICNkZWZpbmUgRUxF
VkFUT1JfTElOVVMJCQkJCQkJXA0KICgoZWxldmF0b3JfdCkgewkJCQkJCQkJ
XA0KLQkyMDQ4LAkJCQkvKiByZWFkIHBhc3NvdmVycyAqLwkJXA0KLQk4MTky
LAkJCQkvKiB3cml0ZSBwYXNzb3ZlcnMgKi8JCVwNCisJMTI4LAkJCQkvKiBy
ZWFkIHBhc3NvdmVycyAqLwkJXA0KKwk1MTIsCQkJCS8qIHdyaXRlIHBhc3Nv
dmVycyAqLwkJXA0KIAkJCQkJCQkJCVwNCiAJZWxldmF0b3JfbGludXNfbWVy
Z2UsCQkvKiBlbGV2YXRvcl9tZXJnZV9mbiAqLwkJXA0KIAllbGV2YXRvcl9s
aW51c19tZXJnZV9yZXEsCS8qIGVsZXZhdG9yX21lcmdlX3JlcV9mbiAqLwlc
DQpkaWZmIC1OcnUgYS9pbmNsdWRlL2xpbnV4L3BhZ2VtYXAuaCBiL2luY2x1
ZGUvbGludXgvcGFnZW1hcC5oDQotLS0gYS9pbmNsdWRlL2xpbnV4L3BhZ2Vt
YXAuaAlUaHUgSnVsIDEwIDE0OjUyOjM4IDIwMDMNCisrKyBiL2luY2x1ZGUv
bGludXgvcGFnZW1hcC5oCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAg
LTk3LDYgKzk3LDggQEANCiAJCV9fX3dhaXRfb25fcGFnZShwYWdlKTsNCiB9
DQogDQorZXh0ZXJuIHZvaWQgRkFTVENBTEwod2FrZXVwX3BhZ2Vfd2FpdGVy
cyhzdHJ1Y3QgcGFnZSAqIHBhZ2UpKTsNCisNCiAvKg0KICAqIFJldHVybnMg
bG9ja2VkIHBhZ2UgYXQgZ2l2ZW4gaW5kZXggaW4gZ2l2ZW4gY2FjaGUsIGNy
ZWF0aW5nIGl0IGlmIG5lZWRlZC4NCiAgKi8NCmRpZmYgLU5ydSBhL2tlcm5l
bC9rc3ltcy5jIGIva2VybmVsL2tzeW1zLmMNCi0tLSBhL2tlcm5lbC9rc3lt
cy5jCVRodSBKdWwgMTAgMTQ6NTI6MzggMjAwMw0KKysrIGIva2VybmVsL2tz
eW1zLmMJVGh1IEp1bCAxMCAxNDo1MjozOCAyMDAzDQpAQCAtMjk2LDYgKzI5
Niw3IEBADQogRVhQT1JUX1NZTUJPTChmaWxlbWFwX2ZkYXRhd2FpdCk7DQog
RVhQT1JUX1NZTUJPTChsb2NrX3BhZ2UpOw0KIEVYUE9SVF9TWU1CT0wodW5s
b2NrX3BhZ2UpOw0KK0VYUE9SVF9TWU1CT0wod2FrZXVwX3BhZ2Vfd2FpdGVy
cyk7DQogDQogLyogZGV2aWNlIHJlZ2lzdHJhdGlvbiAqLw0KIEVYUE9SVF9T
WU1CT0wocmVnaXN0ZXJfY2hyZGV2KTsNCmRpZmYgLU5ydSBhL21tL2ZpbGVt
YXAuYyBiL21tL2ZpbGVtYXAuYw0KLS0tIGEvbW0vZmlsZW1hcC5jCVRodSBK
dWwgMTAgMTQ6NTI6MzggMjAwMw0KKysrIGIvbW0vZmlsZW1hcC5jCVRodSBK
dWwgMTAgMTQ6NTI6MzggMjAwMw0KQEAgLTgxMCw2ICs4MTAsMjAgQEANCiAJ
cmV0dXJuICZ3YWl0W2hhc2hdOw0KIH0NCiANCisvKg0KKyAqIFRoaXMgbXVz
dCBiZSBjYWxsZWQgYWZ0ZXIgZXZlcnkgc3VibWl0X2JoIHdpdGggZW5kX2lv
DQorICogY2FsbGJhY2tzIHRoYXQgd291bGQgcmVzdWx0IGludG8gdGhlIGJs
a2RldiBsYXllciB3YWtpbmcNCisgKiB1cCB0aGUgcGFnZSBhZnRlciBhIHF1
ZXVlIHVucGx1Zy4NCisgKi8NCit2b2lkIHdha2V1cF9wYWdlX3dhaXRlcnMo
c3RydWN0IHBhZ2UgKiBwYWdlKQ0KK3sNCisJd2FpdF9xdWV1ZV9oZWFkX3Qg
KiBoZWFkOw0KKw0KKwloZWFkID0gcGFnZV93YWl0cXVldWUocGFnZSk7DQor
CWlmICh3YWl0cXVldWVfYWN0aXZlKGhlYWQpKQ0KKwkJd2FrZV91cChoZWFk
KTsNCit9DQorDQogLyogDQogICogV2FpdCBmb3IgYSBwYWdlIHRvIGdldCB1
bmxvY2tlZC4NCiAgKg0K

--=_courier-28543-1057860148-0001-2--