NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: lib/45796



The following reply was made to PR lib/45796; it has been noted by GNATS.

From: Evgeniy Ivanov <lolkaantimat%gmail.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: lib/45796
Date: Sat, 7 Jan 2012 17:37:47 +0400

 --00235433305a59eca204b5f0459e
 Content-Type: text/plain; charset=ISO-8859-1
 
 Here're the patches.
 
 -- 
 Evgeniy
 
 --00235433305a59eca204b5f0459e
 Content-Type: text/x-patch; charset=US-ASCII; 
        name="0001-MINIX-3-subpartitions-support.patch"
 Content-Disposition: attachment; 
        filename="0001-MINIX-3-subpartitions-support.patch"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_gx4ohiri0
 
 RnJvbSA3ZDdmMmIyOTc1MWNlY2NmYzFhZGRjZTI5OWNiNTEzMWU5ZjdiMWU4IE1vbiBTZXAgMTcg
 MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbml5IEl2YW5vdiA8bG9sa2FhbnRpbWF0QGdtYWlsLmNv
 bT4KRGF0ZTogTW9uLCA1IERlYyAyMDExIDE5OjQ0OjMzICswNDAwClN1YmplY3Q6IFtQQVRDSCAx
 LzRdIE1JTklYIDMgc3VicGFydGl0aW9ucyBzdXBwb3J0LgoKLSBSZWFkIE1GUyBzdWJwYXJ0aXRp
 b25zLCB3aGVuIG5lY2Nlc3Nhcmx5LgotIEFkZCBNRlMgdG8gdGhlIHN1cHBvcnRlZCBGU2VzIGxp
 c3QuCgpkaWZmIC0tZ2l0IGEvY29tbW9uL2xpYi9saWJ1dGlsL2dldGZzdHlwZW5hbWUuYyBiL2Nv
 bW1vbi9saWIvbGlidXRpbC9nZXRmc3R5cGVuYW1lLmMKaW5kZXggNzllYTE1NC4uMjZmZTNhMyAx
 MDA2NDQKLS0tIGEvY29tbW9uL2xpYi9saWJ1dGlsL2dldGZzdHlwZW5hbWUuYworKysgYi9jb21t
 b24vbGliL2xpYnV0aWwvZ2V0ZnN0eXBlbmFtZS5jCkBAIC0xMjEsNiArMTIxLDggQEAgZ2V0ZnN0
 eXBlbmFtZShpbnQgZnN0eXBlKQogCQlyZXR1cm4gREtXX1BUWVBFX0NHRDsKIAljYXNlIEZTTUFY
 VFlQRVM6CiAJCXJldHVybiBES1dfUFRZUEVfVU5LTk9XTjsKKwljYXNlIEZTX01JTklYRlMzOgor
 CQlyZXR1cm4gREtXX1BUWVBFX01JTklYRlMzOwogCX0KIAkvKiBTdHVwaWQgZ2NjLCBzaG91bGQg
 a25vdyBpdCBpcyBpbXBvc3NpYmxlIHRvIGdldCBoZXJlICovCiAJcmV0dXJuIERLV19QVFlQRV9V
 TktOT1dOOwpkaWZmIC0tZ2l0IGEvc3lzL2FyY2gvaTM4Ni9zdGFuZC9saWIvYmlvc2Rpc2suYyBi
 L3N5cy9hcmNoL2kzODYvc3RhbmQvbGliL2Jpb3NkaXNrLmMKaW5kZXggZGRkZmRmOS4uMTM3MDFj
 NyAxMDA2NDQKLS0tIGEvc3lzL2FyY2gvaTM4Ni9zdGFuZC9saWIvYmlvc2Rpc2suYworKysgYi9z
 eXMvYXJjaC9pMzg2L3N0YW5kL2xpYi9iaW9zZGlzay5jCkBAIC00MDQsNiArNDA0LDQwIEBAIGNo
 ZWNrX2xhYmVsKHN0cnVjdCBiaW9zZGlzayAqZCwgZGFkZHJfdCBzZWN0b3IpCiB9CiAKIHN0YXRp
 YyBpbnQKK3JlYWRfbWluaXhfc3VicChzdHJ1Y3QgYmlvc2Rpc2sgKmQsIHN0cnVjdCBkaXNrbGFi
 ZWwqIGRmbHRfbGJsLAorCQkJaW50IHRoaXNfZXh0LCBkYWRkcl90IHNlY3RvcikKK3sKKwlzdHJ1
 Y3QgbWJyX3BhcnRpdGlvbiBtYnJbTUJSX1BBUlRfQ09VTlRdOworCWludCBpOworCWludCB0eXA7
 CisJc3RydWN0IHBhcnRpdGlvbiAqcDsKKworCWlmIChyZWFkc2VjdHMoJmQtPmxsLCBzZWN0b3Is
 IDEsIGQtPmJ1ZiwgMCkpIHsKKyNpZmRlZiBESVNLX0RFQlVHCisJCXByaW50ZigiRXJyb3IgcmVh
 ZGluZyBNRlMgc2VjdG9yICVkXG4iLCBzZWN0b3IpOworI2VuZGlmCisJCXJldHVybiBFSU87CisJ
 fQorCWlmICgodWludDhfdClkLT5idWZbNTEwXSAhPSAweDU1IHx8ICh1aW50OF90KWQtPmJ1Zls1
 MTFdICE9IDB4QUEpIHsKKwkJcmV0dXJuIC0xOworCX0KKwltZW1jcHkoJm1iciwgKChzdHJ1Y3Qg
 bWJyX3NlY3RvciAqKWQtPmJ1ZiktPm1icl9wYXJ0cywgc2l6ZW9mKG1icikpOworCWZvciAoaSA9
 IDA7IGkgPCBNQlJfUEFSVF9DT1VOVDsgaSsrKSB7CisJCXR5cCA9IG1icltpXS5tYnJwX3R5cGU7
 CisJCWlmICh0eXAgPT0gMCkKKwkJCWNvbnRpbnVlOworCQlzZWN0b3IgPSB0aGlzX2V4dCArIG1i
 cltpXS5tYnJwX3N0YXJ0OworCQlpZiAoZGZsdF9sYmwtPmRfbnBhcnRpdGlvbnMgPj0gTUFYUEFS
 VElUSU9OUykKKwkJCWNvbnRpbnVlOworCQlwID0gJmRmbHRfbGJsLT5kX3BhcnRpdGlvbnNbZGZs
 dF9sYmwtPmRfbnBhcnRpdGlvbnMrK107CisJCXAtPnBfb2Zmc2V0ID0gc2VjdG9yOworCQlwLT5w
 X3NpemUgPSBtYnJbaV0ubWJycF9zaXplOworCQlwLT5wX2ZzdHlwZSA9IHhsYXRfbWJyX2ZzdHlw
 ZSh0eXApOworCX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAogcmVhZF9sYWJlbChzdHJ1
 Y3QgYmlvc2Rpc2sgKmQpCiB7CiAJc3RydWN0IGRpc2tsYWJlbCBkZmx0X2xibDsKQEAgLTQ1Miw2
 ICs0ODYsMTMgQEAgcmVhZF9sYWJlbChzdHJ1Y3QgYmlvc2Rpc2sgKmQpCiAjaWZkZWYgRElTS19E
 RUJVRwogCQkJcHJpbnRmKCJwdG4gdHlwZSAlZCBpbiBzZWN0b3IgJWRcbiIsIHR5cCwgc2VjdG9y
 KTsKICNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cCA9PSBNQlJfUFRZUEVf
 TUlOSVhfMTRCKSB7CisJCQkJaWYgKCFyZWFkX21pbml4X3N1YnAoZCwgJmRmbHRfbGJsLAorCQkJ
 CQkJICAgdGhpc19leHQsIHNlY3RvcikpIHsKKwkJCQkJLyogRG9uJ3QgYWRkICJjb250YWluZXIi
 IHBhcnRpdGlvbiAqLworCQkJCQljb250aW51ZTsKKwkJCQl9CisJCQl9CiAJCQlpZiAodHlwID09
 IE1CUl9QVFlQRV9ORVRCU0QpIHsKIAkJCQllcnJvciA9IGNoZWNrX2xhYmVsKGQsIHNlY3Rvcik7
 CiAJCQkJaWYgKGVycm9yID49IDApCmRpZmYgLS1naXQgYS9zeXMvbGliL2xpYmtlcm4veGxhdF9t
 YnJfZnN0eXBlLmMgYi9zeXMvbGliL2xpYmtlcm4veGxhdF9tYnJfZnN0eXBlLmMKaW5kZXggNjE4
 YzU1YS4uNDE1MTc3MCAxMDA2NDQKLS0tIGEvc3lzL2xpYi9saWJrZXJuL3hsYXRfbWJyX2ZzdHlw
 ZS5jCisrKyBiL3N5cy9saWIvbGlia2Vybi94bGF0X21icl9mc3R5cGUuYwpAQCAtNTUsNiArNTUs
 NyBAQCB4bGF0X21icl9mc3R5cGUoaW50IG1icl90eXBlKQogCQl7IE1CUl9QVFlQRV9MTlhTV0FQ
 LAlGU19TV0FQIH0sCiAJCXsgTUJSX1BUWVBFX05FVEJTRCwJRlNfQlNERkZTIH0sCiAJCXsgTUJS
 X1BUWVBFX05URlMsCUZTX05URlMgfSwKKwkJeyBNQlJfUFRZUEVfTUlOSVhfMTRCLAlGU19NSU5J
 WEZTMyB9LAogCQl7IDAsCQkJRlNfT1RIRVIgfQogCX07CiAJY29uc3Qgc3RydWN0IHB0bl90eXBl
 cyAqcHQ7CmRpZmYgLS1naXQgYS9zeXMvc3lzL2Rpc2suaCBiL3N5cy9zeXMvZGlzay5oCmluZGV4
 IDk4NWY4ZTcuLjJjNTU0NmEgMTAwNjQ0Ci0tLSBhL3N5cy9zeXMvZGlzay5oCisrKyBiL3N5cy9z
 eXMvZGlzay5oCkBAIC0yNDUsNiArMjQ1LDcgQEAgX19saW5rX3NldF9hZGRfZGF0YShka3dlZGdl
 X21ldGhvZHMsIG5hbWUgIyMgX2RkbSkKICNkZWZpbmUJREtXX1BUWVBFX0VGUwkJImVmcyIKICNk
 ZWZpbmUJREtXX1BUWVBFX05JTEZTCQkibmlsZnMiCiAjZGVmaW5lCURLV19QVFlQRV9DR0QJCSJj
 Z2QiCisjZGVmaW5lCURLV19QVFlQRV9NSU5JWEZTMwkibWluaXhmczMiCiAKIC8qCiAgKiBEaXNr
 IGdlb21ldHJ5IGRpY3Rpb25hcnkuCmRpZmYgLS1naXQgYS9zeXMvc3lzL2Rpc2tsYWJlbC5oIGIv
 c3lzL3N5cy9kaXNrbGFiZWwuaAppbmRleCBmZjQyNGVhLi42OWY3OWMzIDEwMDY0NAotLS0gYS9z
 eXMvc3lzL2Rpc2tsYWJlbC5oCisrKyBiL3N5cy9zeXMvZGlza2xhYmVsLmgKQEAgLTM1Nyw3ICsz
 NTcsOCBAQCB4KFVERiwgICAgIDI0LCAiVURGIiwgICAgICAgIE5VTEwsICAgInVkZiIpICAgLyog
 VURGICovIFwKIHgoU1lTVkJGUywgMjUsICJTeXNWQkZTIiwgICAgTlVMTCwgICJzeXN2YmZzIikv
 KiBTeXN0ZW0gViBib290IGZpbGUgc3lzdGVtICovIFwKIHgoRUZTLCAgICAgMjYsICJFRlMiLCAg
 ICAgICAgTlVMTCwgICAiZWZzIikgICAvKiBTR0kncyBFeHRlbnQgRmlsZXN5c3RlbSAqLyBcCiB4
 KE5JTEZTLCAgIDI3LCAiTmlMRlMiLCAgICAgIE5VTEwsICAgIm5pbGZzIikgLyogTlRUJ3MgTmlM
 RlMoMikgKi8gXAoteChDR0QsICAgICAyOCwgImNnZCIsCSAgICAgTlVMTCwgICBOVUxMKSAgICAv
 KiBDcnlwdG9ncmFwaGljIGRpc2sgKi8KK3goQ0dELCAgICAgMjgsICJjZ2QiLAkgICAgIE5VTEws
 ICAgTlVMTCkgICAgLyogQ3J5cHRvZ3JhcGhpYyBkaXNrICovIFwKK3goTUlOSVhGUzMsMjksICJN
 SU5JWCBGU3YzIiwgTlVMTCwgICBOVUxMKSAgICAvKiBNSU5JWCBmaWxlIHN5c3RlbSB2MyAqLwog
 CiAKICNpZm5kZWYgX0xPQ09SRQotLSAKMS43LjMuNAoK
 --00235433305a59eca204b5f0459e
 Content-Type: text/x-patch; charset=US-ASCII; 
        name="0002-MINIX-File-System-v3-support-for-libsa.patch"
 Content-Disposition: attachment; 
        filename="0002-MINIX-File-System-v3-support-for-libsa.patch"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_gx4ohzeq1
 
 RnJvbSA4YzFiNjdmMjI2ZDk1ZTI5YTZhZGFjNzc4YjRmNDlhMDViMjg2NzYyIE1vbiBTZXAgMTcg
 MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbml5IEl2YW5vdiA8bG9sa2FhbnRpbWF0QGdtYWlsLmNv
 bT4KRGF0ZTogU3VuLCAxOCBEZWMgMjAxMSAxNTowNDoxNiArMDQwMApTdWJqZWN0OiBbUEFUQ0gg
 Mi80XSBNSU5JWCBGaWxlIFN5c3RlbSB2MyBzdXBwb3J0IGZvciBsaWJzYS4KCgpkaWZmIC0tZ2l0
 IGEvc3lzL2xpYi9saWJzYS9NYWtlZmlsZSBiL3N5cy9saWIvbGlic2EvTWFrZWZpbGUKaW5kZXgg
 NGQwZDk1MS4uMGViOTlhNyAxMDA2NDQKLS0tIGEvc3lzL2xpYi9saWJzYS9NYWtlZmlsZQorKysg
 Yi9zeXMvbGliL2xpYnNhL01ha2VmaWxlCkBAIC03NSw2ICs3NSw3IEBAIFNSQ1MrPQljZDk2NjAu
 YwogU1JDUys9CXVzdGFyZnMuYwogU1JDUys9CWRvc2ZzLmMKIFNSQ1MrPQlleHQyZnMuYworU1JD
 Uys9CW1pbml4ZnMzLmMKICMgZm9yIGhpc3RvcmljIGNvbXBhdGliaWxpdHkgdWZzID09IGZmc3Yx
 CiBTUkNTKz0JdWZzLmMKIApkaWZmIC0tZ2l0IGEvc3lzL2xpYi9saWJzYS9taW5peGZzMy5jIGIv
 c3lzL2xpYi9saWJzYS9taW5peGZzMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
 MDAuLmE3MjIxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbGliL2xpYnNhL21pbml4ZnMzLmMK
 QEAgLTAsMCArMSw5OTEgQEAKKy8qCSROZXRCU0QkICovCisKKy8qLQorICogQ29weXJpZ2h0IChj
 KSAyMDEyCisgKglWcmlqZSBVbml2ZXJzaXRlaXQsIEFtc3RlcmRhbSwgVGhlIE5ldGhlcmxhbmRz
 LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIEF1dGhvcjogRXZnZW5peSBJdmFub3YgKGJh
 c2VkIG9uIGxpYnNhL2V4dDJmcy5jKS4KKyAqCisgKiBUaGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9t
 IHNyYy9zeXMvbGliL2xpYnNhL2V4dDJmcy5jIGNvbnRyaWJ1dGVkIHRvIAorICogVGhlIE5ldEJT
 RCBGb3VuZGF0aW9uLCBzZWUgY29weXJpZ2h0cyBiZWxvdy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
 biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
 IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
 Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
 Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
 bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
 ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
 cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
 bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
 ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
 IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
 QlVUT1JTIGBgQVMKKyAqIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
 UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
 SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
 VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEZPVU5EQVRJT04g
 T1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
 TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
 RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
 U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
 IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
 VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
 SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
 SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
 IEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisv
 KgorICogQ29weXJpZ2h0IChjKSAxOTk3IE1hbnVlbCBCb3V5ZXIuCisgKgorICogUmVkaXN0cmli
 dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
 CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
 aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
 cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
 Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
 ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
 ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
 IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
 VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5Z
 IEVYUFJFU1MgT1IKKyAqIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
 TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMKKyAqIE9GIE1FUkNIQU5UQUJJTElUWSBB
 TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisgKiBJ
 TiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
 SVJFQ1QsCisgKiBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
 QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKKyAqIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
 VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
 IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
 IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
 SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
 V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
 QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
 ICovCisKKy8qLQorICogQ29weXJpZ2h0IChjKSAxOTkzCisgKglUaGUgUmVnZW50cyBvZiB0aGUg
 VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
 aGlzIGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5
 IGJ5CisgKiBUaGUgTWFjaCBPcGVyYXRpbmcgU3lzdGVtIHByb2plY3QgYXQgQ2FybmVnaWUtTWVs
 bG9uIFVuaXZlcnNpdHkuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
 YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
 ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
 ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
 IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
 bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
 bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
 ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
 biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
 ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBV
 bml2ZXJzaXR5IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJl
 IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNv
 ZnR3YXJlCisgKiAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
 KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBSRUdFTlRTIEFORCBDT05U
 UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
 SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
 TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
 UE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgUkVHRU5UUyBP
 UiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
 Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdF
 UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
 VEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
 T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
 SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJ
 TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
 IElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
 QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqCisg
 KiBDb3B5cmlnaHQgKGMpIDE5OTAsIDE5OTEgQ2FybmVnaWUgTWVsbG9uIFVuaXZlcnNpdHkKKyAq
 IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogQXV0aG9yOiBEYXZpZCBHb2x1YgorICoKKyAq
 IFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnkgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0
 d2FyZSBhbmQgaXRzCisgKiBkb2N1bWVudGF0aW9uIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRl
 ZCB0aGF0IGJvdGggdGhlIGNvcHlyaWdodAorICogbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g
 bm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVzIG9mIHRoZQorICogc29mdHdhcmUsIGRlcml2YXRp
 dmUgd29ya3Mgb3IgbW9kaWZpZWQgdmVyc2lvbnMsIGFuZCBhbnkgcG9ydGlvbnMKKyAqIHRoZXJl
 b2YsIGFuZCB0aGF0IGJvdGggbm90aWNlcyBhcHBlYXIgaW4gc3VwcG9ydGluZyBkb2N1bWVudGF0
 aW9uLgorICoKKyAqIENBUk5FR0lFIE1FTExPTiBBTExPV1MgRlJFRSBVU0UgT0YgVEhJUyBTT0ZU
 V0FSRSBJTiBJVFMgIkFTIElTIgorICogQ09ORElUSU9OLiAgQ0FSTkVHSUUgTUVMTE9OIERJU0NM
 QUlNUyBBTlkgTElBQklMSVRZIE9GIEFOWSBLSU5EIEZPUgorICogQU5ZIERBTUFHRVMgV0hBVFNP
 RVZFUiBSRVNVTFRJTkcgRlJPTSBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUuCisgKgorICogQ2Fy
 bmVnaWUgTWVsbG9uIHJlcXVlc3RzIHVzZXJzIG9mIHRoaXMgc29mdHdhcmUgdG8gcmV0dXJuIHRv
 CisgKgorICogIFNvZnR3YXJlIERpc3RyaWJ1dGlvbiBDb29yZGluYXRvciAgb3IgIFNvZnR3YXJl
 LkRpc3RyaWJ1dGlvbkBDUy5DTVUuRURVCisgKiAgU2Nob29sIG9mIENvbXB1dGVyIFNjaWVuY2UK
 KyAqICBDYXJuZWdpZSBNZWxsb24gVW5pdmVyc2l0eQorICogIFBpdHRzYnVyZ2ggUEEgMTUyMTMt
 Mzg5MAorICoKKyAqIGFueSBpbXByb3ZlbWVudHMgb3IgZXh0ZW5zaW9ucyB0aGF0IHRoZXkgbWFr
 ZSBhbmQgZ3JhbnQgQ2FybmVnaWUgdGhlCisgKiByaWdodHMgdG8gcmVkaXN0cmlidXRlIHRoZXNl
 IGNoYW5nZXMuCisgKi8KKworLyoKKyAqCVN0YW5kLWFsb25lIGZpbGUgcmVhZGluZyBwYWNrYWdl
 IGZvciBNRlMgZmlsZSBzeXN0ZW0uCisgKi8KKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2lu
 Y2x1ZGUgPHN5cy90aW1lLmg+CisjaWZkZWYgX1NUQU5EQUxPTkUKKyNpbmNsdWRlIDxsaWIvbGli
 a2Vybi9saWJrZXJuLmg+CisjZWxzZQorI2luY2x1ZGUgPHN0cmluZy5oPgorI2VuZGlmCisKKyNp
 bmNsdWRlICJzdGFuZC5oIgorI2luY2x1ZGUgIm1pbml4ZnMzLmgiCisKKyNpZiBkZWZpbmVkKExJ
 QlNBX0ZTX1NJTkdMRUNPTVBPTkVOVCkgJiYgIWRlZmluZWQoTElCU0FfTk9fRlNfU1lNTElOSykK
 KyNkZWZpbmUgTElCU0FfTk9fRlNfU1lNTElOSworI2VuZGlmCisKKyNpZiBkZWZpbmVkKExJQlNB
 X05PX1RXSURETEUpCisjZGVmaW5lIHR3aWRkbGUoKQorI2VuZGlmCisKK3R5cGVkZWYgdWludDMy
 X3QJaW5vMzJfdDsKKyNpZm5kZWYgRlNCVE9EQgorI2RlZmluZSBGU0JUT0RCKGZzLCBpbmRwKSBm
 c2J0b2RiKGZzLCBpbmRwKQorI2VuZGlmCisKKy8qCisgKiBUbyBhdm9pZCBoYXZpbmcgYSBsb3Qg
 b2YgZmlsZXN5c3RlbS1ibG9jayBzaXplZCBidWZmZXJzIGx1cmtpbmcgKHdoaWNoCisgKiBjb3Vs
 ZCBiZSAzMmspIHdlIG9ubHkga2VlcCBhIGZldyBlbnRyaWVzIG9mIHRoZSBpbmRpcmVjdCBibG9j
 ayBtYXAuCisgKiBXaXRoIDhrIGJsb2NrcywgMl44IGJsb2NrcyBpcyB+NTAwayBzbyB3ZSByZXJl
 YWQgdGhlIGluZGlyZWN0IGJsb2NrCisgKiB+MTMgdGltZXMgcHVsbGluZyBpbiBhIDZNIGtlcm5l
 bC4KKyAqIFRoZSBjYWNoZSBzaXplIG11c3QgYmUgc21hbGxlciB0aGFuIHRoZSBzbWFsbGVzdCBm
 aWxlc3lzdGVtIGJsb2NrLAorICogc28gTE4yX0lORF9DQUNIRV9TWiA8PSA5IChVRlMyIGFuZCA0
 ayBibG9ja3MpLgorICovCisjZGVmaW5lIExOMl9JTkRfQ0FDSEVfU1oJNgorI2RlZmluZSBJTkRf
 Q0FDSEVfU1oJCSgxIDw8IExOMl9JTkRfQ0FDSEVfU1opCisjZGVmaW5lIElORF9DQUNIRV9NQVNL
 CQkoSU5EX0NBQ0hFX1NaIC0gMSkKKworLyoKKyAqIEluLWNvcmUgb3BlbiBmaWxlLgorICovCitz
 dHJ1Y3QgZmlsZSB7CisJb2ZmX3QJCWZfc2Vla3A7CS8qIHNlZWsgcG9pbnRlciAqLworCXN0cnVj
 dCBtZnNfc2Jsb2NrICAqZl9mczsJLyogcG9pbnRlciB0byBzdXBlci1ibG9jayAqLworCXN0cnVj
 dCBtZnNfZGlub2RlICBmX2RpOwkvKiBjb3B5IG9mIG9uLWRpc2sgaW5vZGUgKi8KKwl1aW50CQlm
 X25pc2hpZnQ7CS8qIGZvciBibG9ja3MgaW4gaW5kaXJlY3QgYmxvY2sgKi8KKwlibG9ja190CQlm
 X2luZF9jYWNoZV9ibG9jazsKKwlibG9ja190CQlmX2luZF9jYWNoZVtJTkRfQ0FDSEVfU1pdOwor
 CisJY2hhcgkJKmZfYnVmOwkJLyogYnVmZmVyIGZvciBkYXRhIGJsb2NrICovCisJc2l6ZV90CQlm
 X2J1Zl9zaXplOwkvKiBzaXplIG9mIGRhdGEgYmxvY2sgKi8KKwlkYWRkcl90CQlmX2J1Zl9ibGtu
 bzsJLyogYmxvY2sgbnVtYmVyIG9mIGRhdGEgYmxvY2sgKi8KK307CisKKyNpZiBkZWZpbmVkKExJ
 QlNBX0VOQUJMRV9MU19PUCkKKworI2RlZmluZSBORUxFTSh4KSAoc2l6ZW9mICh4KSAvIHNpemVv
 ZigqeCkpCisKK3R5cGVkZWYgc3RydWN0IGVudHJ5X3QgZW50cnlfdDsKK3N0cnVjdCBlbnRyeV90
 IHsKKwllbnRyeV90CSplX25leHQ7CisJaW5vMzJfdAllX2lubzsKKwljaGFyCWVfbmFtZVsxXTsK
 K307CisKK3N0YXRpYyBpbnQKK2ZuX21hdGNoKGNvbnN0IGNoYXIgKmZuYW1lLCBjb25zdCBjaGFy
 ICpwYXR0ZXJuKQoreworCWNoYXIgZmMsIHBjOworCisJZG8geworCQlmYyA9ICpmbmFtZSsrOwor
 CQlwYyA9ICpwYXR0ZXJuKys7CisJCWlmICghZmMgJiYgIXBjKQorCQkJcmV0dXJuIDE7CisJCWlm
 IChwYyA9PSAnPycgJiYgZmMpCisJCQlwYyA9IGZjOworCX0gd2hpbGUgKGZjID09IHBjKTsKKwor
 CWlmIChwYyAhPSAnKicpCisJCXJldHVybiAwOworCS8qCisJICogVG9vIGhhcmQgKGFuZCB1bm5l
 Y2Vzc2FyeSByZWFsbHkpIHRvbyBjaGVjayBmb3IgIio/bmFtZSIgZXRjLi4uLgorCSAqICIqKiIg
 d2lsbCBsb29rIGZvciBhICcqJyBhbmQgIio/IiBhICc/JworCSAqLworCXBjID0gKnBhdHRlcm4r
 KzsKKwlpZiAoIXBjKQorCQlyZXR1cm4gMTsKKwl3aGlsZSAoKGZuYW1lID0gc3RyY2hyKGZuYW1l
 LCBwYykpKQorCQlpZiAoZm5fbWF0Y2goKytmbmFtZSwgcGF0dGVybikpCisJCQlyZXR1cm4gMTsK
 KwlyZXR1cm4gMDsKK30KKyNlbmRpZiAvKiBMSUJTQV9FTkFCTEVfTFNfT1AgKi8KKworCitzdGF0
 aWMgaW50IHJlYWRfaW5vZGUoaW5vMzJfdCwgc3RydWN0IG9wZW5fZmlsZSAqKTsKK3N0YXRpYyBp
 bnQgYmxvY2tfbWFwKHN0cnVjdCBvcGVuX2ZpbGUgKiwgYmxvY2tfdCwgYmxvY2tfdCAqKTsKK3N0
 YXRpYyBpbnQgYnVmX3JlYWRfZmlsZShzdHJ1Y3Qgb3Blbl9maWxlICosIGNoYXIgKiosIHNpemVf
 dCAqKTsKK3N0YXRpYyBpbnQgc2VhcmNoX2RpcmVjdG9yeShjb25zdCBjaGFyICosIGludCwgc3Ry
 dWN0IG9wZW5fZmlsZSAqLCBpbm8zMl90ICopOworc3RhdGljIGludCByZWFkX3NibG9jayhzdHJ1
 Y3Qgb3Blbl9maWxlICosIHN0cnVjdCBtZnNfc2Jsb2NrICopOworCisvKgorICogUmVhZCBhIG5l
 dyBpbm9kZSBpbnRvIGEgZmlsZSBzdHJ1Y3R1cmUuCisgKi8KK3N0YXRpYyBpbnQKK3JlYWRfaW5v
 ZGUoaW5vMzJfdCBpbnVtYmVyLCBzdHJ1Y3Qgb3Blbl9maWxlICpmKQoreworCXN0cnVjdCBmaWxl
 ICpmcCA9IChzdHJ1Y3QgZmlsZSAqKWYtPmZfZnNkYXRhOworCXN0cnVjdCBtZnNfc2Jsb2NrICpm
 cyA9IGZwLT5mX2ZzOworCWNoYXIgKmJ1ZjsKKwlzaXplX3QgcnNpemU7CisJaW50IHJjOworCWRh
 ZGRyX3QgaW5vZGVfc2VjdG9yOworCXN0cnVjdCBtZnNfZGlub2RlICpkaXA7CisKKwlpbm9kZV9z
 ZWN0b3IgPSBGU0JUT0RCKGZzLCBpbm9fdG9fZnNiYShmcywgaW51bWJlcikpOworCisJLyoKKwkg
 KiBSZWFkIGlub2RlIGFuZCBzYXZlIGl0LgorCSAqLworCWJ1ZiA9IGZwLT5mX2J1ZjsKKwl0d2lk
 ZGxlKCk7CisJcmMgPSBERVZfU1RSQVRFR1koZi0+Zl9kZXYpKGYtPmZfZGV2ZGF0YSwgRl9SRUFE
 LAorCSAgICBpbm9kZV9zZWN0b3IsIGZzLT5tZnNfYmxvY2tfc2l6ZSwgYnVmLCAmcnNpemUpOwor
 CWlmIChyYykKKwkJcmV0dXJuIHJjOworCWlmIChyc2l6ZSAhPSBmcy0+bWZzX2Jsb2NrX3NpemUp
 CisJCXJldHVybiBFSU87CisKKwlkaXAgPSAoc3RydWN0IG1mc19kaW5vZGUgKikoYnVmICsKKwkg
 ICAgSU5PREVfU0laRSAqIGlub190b19mc2JvKGZzLCBpbnVtYmVyKSk7CisJbWZzX2lsb2FkKGRp
 cCwgJmZwLT5mX2RpKTsKKworCS8qCisJICogQ2xlYXIgb3V0IHRoZSBvbGQgYnVmZmVycworCSAq
 LworCWZwLT5mX2luZF9jYWNoZV9ibG9jayA9IH4wOworCWZwLT5mX2J1Zl9ibGtubyA9IC0xOwor
 CXJldHVybiByYzsKK30KKworLyoKKyAqIEdpdmVuIGFuIG9mZnNldCBpbiBhIGZpbGUsIGZpbmQg
 dGhlIGRpc2sgYmxvY2sgbnVtYmVyIChub3Qgem9uZSEpCisgKiB0aGF0IGNvbnRhaW5zIHRoYXQg
 YmxvY2suCisgKi8KK3N0YXRpYyBpbnQKK2Jsb2NrX21hcChzdHJ1Y3Qgb3Blbl9maWxlICpmLCBi
 bG9ja190IGZpbGVfYmxvY2ssIGJsb2NrX3QgKmRpc2tfYmxvY2tfcCkKK3sKKwlzdHJ1Y3QgZmls
 ZSAqZnAgPSAoc3RydWN0IGZpbGUgKilmLT5mX2ZzZGF0YTsKKwlzdHJ1Y3QgbWZzX3NibG9jayAq
 ZnMgPSBmcC0+Zl9mczsKKwl1aW50IGxldmVsOworCWJsb2NrX3QgaW5kX2NhY2hlOworCWJsb2Nr
 X3QgaW5kX2Jsb2NrX251bTsKKwl6b25lX3Qgem9uZTsKKwlzaXplX3QgcnNpemU7CisJaW50IHJj
 OworCWludCBib2ZmOworCWludCBzY2FsZSA9IGZzLT5tZnNfbG9nX3pvbmVfc2l6ZTsgLyogZm9y
 IGJsb2NrLXpvbmUgY29udmVyc2lvbiAqLworCWJsb2NrX3QgKmJ1ZiA9ICh2b2lkICopZnAtPmZf
 YnVmOworCisJLyoKKwkgKiBJbmRleCBzdHJ1Y3R1cmUgb2YgYW4gaW5vZGU6CisJICoKKwkgKiBt
 ZGlfYmxvY2tzWzAuLk5SX0RaT05FUy0xXQorCSAqCQkJaG9sZCB6b25lIG51bWJlcnMgZm9yIHpv
 bmVzCisJICoJCQkwLi5OUl9EWk9ORVMtMQorCSAqCisJICogbWRpX2Jsb2Nrc1tOUl9EWk9ORVMr
 MF0KKwkgKgkJCWJsb2NrIE5EQUREUiswIGlzIHRoZSBzaW5nbGUgaW5kaXJlY3QgYmxvY2sKKwkg
 KgkJCWhvbGRzIHpvbmUgbnVtYmVycyBmb3Igem9uZXMKKwkgKgkJCU5SX0RaT05FUyAuLiBOUl9E
 Wk9ORVMgKyBOSU5ESVIoZnMpLTEKKwkgKgorCSAqIG1kaV9ibG9ja3NbTlJfRFpPTkVTKzFdCisJ
 ICoJCQlibG9jayBOREFERFIrMSBpcyB0aGUgZG91YmxlIGluZGlyZWN0IGJsb2NrCisJICoJCQlo
 b2xkcyB6b25lIG51bWJlcnMgZm9yIElOREVYIGJsb2NrcyBmb3Igem9uZXMKKwkgKgkJCU5SX0Ra
 T05FUyArIE5JTkRJUihmcykgLi4KKwkgKgkJCU5SX1RaT05FUyArIE5JTkRJUihmcykgKyBOSU5E
 SVIoZnMpKioyIC0gMQorCSAqLworCisJem9uZSA9IGZpbGVfYmxvY2sgPj4gc2NhbGU7CisJYm9m
 ZiA9IChpbnQpIChmaWxlX2Jsb2NrIC0gKHpvbmUgPDwgc2NhbGUpICk7IC8qIHJlbGF0aXZlIGJs
 ayBpbiB6b25lICovCisKKwlpZiAoem9uZSA8IE5SX0RaT05FUykgeworCQkvKiBEaXJlY3Qgem9u
 ZSAqLworCQl6b25lX3QgeiA9IGZzMmgzMihmcC0+Zl9kaS5tZGlfem9uZVt6b25lXSk7CisJCWlm
 ICh6ID09IE5PX1pPTkUpIHsKKwkJCSpkaXNrX2Jsb2NrX3AgPSBOT19CTE9DSzsKKwkJCXJldHVy
 biAwOworCQl9CisJCSpkaXNrX2Jsb2NrX3AgPSAoYmxvY2tfdCkgKCh6IDw8IHNjYWxlKSArIGJv
 ZmYpOworCQlyZXR1cm4gMDsKKwl9CisKKwl6b25lIC09IE5SX0RaT05FUzsKKworCWluZF9jYWNo
 ZSA9IHpvbmUgPj4gTE4yX0lORF9DQUNIRV9TWjsKKwlpZiAoaW5kX2NhY2hlID09IGZwLT5mX2lu
 ZF9jYWNoZV9ibG9jaykgeworCQkqZGlza19ibG9ja19wID0KKwkJICAgIGZzMmgzMihmcC0+Zl9p
 bmRfY2FjaGVbem9uZSAmIElORF9DQUNIRV9NQVNLXSk7CisJCXJldHVybiAwOworCX0KKworCWZv
 ciAobGV2ZWwgPSAwOzspIHsKKwkJbGV2ZWwgKz0gZnAtPmZfbmlzaGlmdDsKKworCQlpZiAoem9u
 ZSA8IChibG9ja190KTEgPDwgbGV2ZWwpCisJCQlicmVhazsKKwkJaWYgKGxldmVsID4gTklBRERS
 ICogZnAtPmZfbmlzaGlmdCkKKwkJCS8qIFpvbmUgbnVtYmVyIHRvbyBoaWdoICovCisJCQlyZXR1
 cm4gRUZCSUc7CisJCXpvbmUgLT0gKGJsb2NrX3QpMSA8PCBsZXZlbDsKKwl9CisKKwlpbmRfYmxv
 Y2tfbnVtID0KKwkgICAgZnMyaDMyKGZwLT5mX2RpLm1kaV96b25lW05SX0RaT05FUyArIChsZXZl
 bCAvIGZwLT5mX25pc2hpZnQgLSAxKV0pOworCisJZm9yICg7OykgeworCQlsZXZlbCAtPSBmcC0+
 Zl9uaXNoaWZ0OworCQlpZiAoaW5kX2Jsb2NrX251bSA9PSAwKSB7CisJCQkqZGlza19ibG9ja19w
 ID0gTk9fQkxPQ0s7CS8qIG1pc3NpbmcgKi8KKwkJCXJldHVybiAwOworCQl9CisKKwkJdHdpZGRs
 ZSgpOworCQkvKgorCQkgKiBJZiB3ZSB3ZXJlIGZlZWxpbmcgYnJhdmUsIHdlIGNvdWxkIHdvcmsg
 b3V0IHRoZSBudW1iZXIKKwkJICogb2YgdGhlIGRpc2sgc2VjdG9yIGFuZCByZWFkIGEgc2luZ2xl
 IGRpc2sgc2VjdG9yIGluc3RlYWQKKwkJICogb2YgYSBmaWxlc3lzdGVtIGJsb2NrLgorCQkgKiBI
 b3dldmVyIHdlIGRvbid0IGRvIHRoaXMgdmVyeSBvZnRlbiBhbnl3YXkuLi4KKwkJICovCisJCXJj
 ID0gREVWX1NUUkFURUdZKGYtPmZfZGV2KShmLT5mX2RldmRhdGEsIEZfUkVBRCwKKwkJCUZTQlRP
 REIoZnMsIGluZF9ibG9ja19udW0pLCBmcy0+bWZzX2Jsb2NrX3NpemUsCisJCQlidWYsICZyc2l6
 ZSk7CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKwkJaWYgKHJzaXplICE9IGZzLT5tZnNfYmxv
 Y2tfc2l6ZSkKKwkJCXJldHVybiBFSU87CisKKwkJaW5kX2Jsb2NrX251bSA9IGZzMmgzMihidWZb
 em9uZSA+PiBsZXZlbF0pOworCQlpZiAobGV2ZWwgPT0gMCkKKwkJCWJyZWFrOworCQl6b25lICY9
 ICgxIDw8IGxldmVsKSAtIDE7CisJfQorCisJLyogU2F2ZSB0aGUgcGFydCBvZiB0aGUgYmxvY2sg
 dGhhdCBjb250YWlucyB0aGlzIHNlY3RvciAqLworCW1lbWNweShmcC0+Zl9pbmRfY2FjaGUsICZi
 dWZbem9uZSAmIH5JTkRfQ0FDSEVfTUFTS10sCisJICAgIElORF9DQUNIRV9TWiAqIHNpemVvZiBm
 cC0+Zl9pbmRfY2FjaGVbMF0pOworCWZwLT5mX2luZF9jYWNoZV9ibG9jayA9IGluZF9jYWNoZTsK
 KworCXpvbmUgPSAoem9uZV90KWluZF9ibG9ja19udW07CisJKmRpc2tfYmxvY2tfcCA9IChibG9j
 a190KSgoem9uZSA8PCBzY2FsZSkgKyBib2ZmKTsKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFJl
 YWQgYSBwb3J0aW9uIG9mIGEgZmlsZSBpbnRvIGFuIGludGVybmFsIGJ1ZmZlci4KKyAqIFJldHVy
 biB0aGUgbG9jYXRpb24gaW4gdGhlIGJ1ZmZlciBhbmQgdGhlIGFtb3VudCBpbiB0aGUgYnVmZmVy
 LgorICovCitzdGF0aWMgaW50CitidWZfcmVhZF9maWxlKHN0cnVjdCBvcGVuX2ZpbGUgKmYsIGNo
 YXIgKipidWZfcCwgc2l6ZV90ICpzaXplX3ApCit7CisJc3RydWN0IGZpbGUgKmZwID0gKHN0cnVj
 dCBmaWxlICopZi0+Zl9mc2RhdGE7CisJc3RydWN0IG1mc19zYmxvY2sgKmZzID0gZnAtPmZfZnM7
 CisJbG9uZyBvZmY7CisJYmxvY2tfdCBmaWxlX2Jsb2NrOworCWJsb2NrX3QgZGlza19ibG9jazsK
 KwlzaXplX3QgYmxvY2tfc2l6ZTsKKwlpbnQgcmM7CisKKwlvZmYgPSBibGtvZmYoZnMsIGZwLT5m
 X3NlZWtwKTsKKwlmaWxlX2Jsb2NrID0gbGJsa25vKGZzLCBmcC0+Zl9zZWVrcCk7CisJYmxvY2tf
 c2l6ZSA9IGZzLT5tZnNfYmxvY2tfc2l6ZTsKKworCWlmIChmaWxlX2Jsb2NrICE9IGZwLT5mX2J1
 Zl9ibGtubykgeworCQlyYyA9IGJsb2NrX21hcChmLCBmaWxlX2Jsb2NrLCAmZGlza19ibG9jayk7
 CisJCWlmIChyYykKKwkJCXJldHVybiByYzsKKworCQlpZiAoZGlza19ibG9jayA9PSAwKSB7CisJ
 CQltZW1zZXQoZnAtPmZfYnVmLCAwLCBibG9ja19zaXplKTsKKwkJCWZwLT5mX2J1Zl9zaXplID0g
 YmxvY2tfc2l6ZTsKKwkJfSBlbHNlIHsKKwkJCXR3aWRkbGUoKTsKKwkJCXJjID0gREVWX1NUUkFU
 RUdZKGYtPmZfZGV2KShmLT5mX2RldmRhdGEsIEZfUkVBRCwKKwkJCQlGU0JUT0RCKGZzLCBkaXNr
 X2Jsb2NrKSwKKwkJCQlibG9ja19zaXplLCBmcC0+Zl9idWYsICZmcC0+Zl9idWZfc2l6ZSk7CisJ
 CQlpZiAocmMpCisJCQkJcmV0dXJuIHJjOworCQl9CisKKwkJZnAtPmZfYnVmX2Jsa25vID0gZmls
 ZV9ibG9jazsKKwl9CisKKwkvKgorCSAqIFJldHVybiBhZGRyZXNzIG9mIGJ5dGUgaW4gYnVmZmVy
 IGNvcnJlc3BvbmRpbmcgdG8KKwkgKiBvZmZzZXQsIGFuZCBzaXplIG9mIHJlbWFpbmRlciBvZiBi
 dWZmZXIgYWZ0ZXIgdGhhdAorCSAqIGJ5dGUuCisJICovCisJKmJ1Zl9wID0gZnAtPmZfYnVmICsg
 b2ZmOworCSpzaXplX3AgPSBibG9ja19zaXplIC0gb2ZmOworCisJLyoKKwkgKiBCdXQgdHJ1bmNh
 dGUgYnVmZmVyIGF0IGVuZCBvZiBmaWxlLgorCSAqLworCWlmICgqc2l6ZV9wID4gZnAtPmZfZGku
 bWRpX3NpemUgLSBmcC0+Zl9zZWVrcCkKKwkJKnNpemVfcCA9IGZwLT5mX2RpLm1kaV9zaXplIC0g
 ZnAtPmZfc2Vla3A7CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIFNlYXJjaCBhIGRpcmVjdG9y
 eSBmb3IgYSBuYW1lIGFuZCByZXR1cm4gaXRzCisgKiBpbm9kZSBudW1iZXIuCisgKi8KK3N0YXRp
 YyBpbnQKK3NlYXJjaF9kaXJlY3RvcnkoY29uc3QgY2hhciAqbmFtZSwgaW50IGxlbmd0aCwgc3Ry
 dWN0IG9wZW5fZmlsZSAqZiwKKwlpbm8zMl90ICppbnVtYmVyX3ApCit7CisJc3RydWN0IGZpbGUg
 KmZwID0gKHN0cnVjdCBmaWxlICopZi0+Zl9mc2RhdGE7CisJc3RydWN0IG1mc19zYmxvY2sgKmZz
 ID0gZnAtPmZfZnM7CisJc3RydWN0IG1mc19kaXJlY3QgKmRwOworCXN0cnVjdCBtZnNfZGlyZWN0
 ICpkYnVmOworCXNpemVfdCBidWZfc2l6ZTsKKwlpbnQgbmFtbGVuOworCWludCByYzsKKworCWZw
 LT5mX3NlZWtwID0gMDsKKworCXdoaWxlIChmcC0+Zl9zZWVrcCA8IChvZmZfdClmcC0+Zl9kaS5t
 ZGlfc2l6ZSkgeworCQlyYyA9IGJ1Zl9yZWFkX2ZpbGUoZiwgKGNoYXIqKikmZGJ1ZiwgJmJ1Zl9z
 aXplKTsKKwkJaWYgKHJjKQorCQkJcmV0dXJuIHJjOworCQlpZiAoYnVmX3NpemUgPT0gMCkKKwkJ
 CXJldHVybiBFSU87CisKKwkJLyogWFhYIHdlIGFzc3VtZSwgdGhhdCBidWZfcmVhZF9maWxlIHJl
 YWRzIGFuIGZzIGJsb2NrIGFuZAorCQkgKiBkb2Vzbid0IHRydW5jYXRlIGJ1ZmZlci4gQ3VycmVu
 dGx5IGlfc2l6ZSBpbiBNRlMgZG9lc24ndAorCQkgKiB0aGUgc2FtZSBhcyBzaXplIG9mIGFsbG9j
 YXRlZCBibG9ja3MsIGl0IG1ha2VzIGJ1Zl9yZWFkX2ZpbGUKKwkJICogdG8gdHJ1bmNhdGUgYnVm
 X3NpemUuCisJCSAqLworCQlpZiAoYnVmX3NpemUgPCBmcy0+bWZzX2Jsb2NrX3NpemUpCisJCQli
 dWZfc2l6ZSA9IGZzLT5tZnNfYmxvY2tfc2l6ZTsKKworCQlmb3IgKGRwID0gZGJ1ZjsgZHAgPCAm
 ZGJ1ZltOUl9ESVJfRU5UUklFUyhmcyldOyBkcCsrKSB7CisJCQljaGFyICpjcDsKKwkJCWlmIChm
 czJoMzIoZHAtPm1mc2RfaW5vKSA9PSAoaW5vMzJfdCkgMCkKKwkJCQljb250aW51ZTsKKwkJCS8q
 IENvbXB1dGUgdGhlIGxlbmd0aCBvZiB0aGUgbmFtZSAqLworCQkJY3AgPSBtZW1jaHIoZHAtPm1m
 c2RfbmFtZSwgJ1wwJywgc2l6ZW9mKGRwLT5tZnNkX25hbWUpKTsKKwkJCWlmIChjcCA9PSBOVUxM
 KQorCQkJCW5hbWxlbiA9IHNpemVvZihkcC0+bWZzZF9uYW1lKTsKKwkJCWVsc2UKKwkJCQluYW1s
 ZW4gPSBjcCAtIChkcC0+bWZzZF9uYW1lKTsKKworCQkJaWYgKG5hbWxlbiA9PSBsZW5ndGggJiYK
 KwkJCSAgICAhbWVtY21wKG5hbWUsIGRwLT5tZnNkX25hbWUsIGxlbmd0aCkpIHsKKwkJCQkvKiBm
 b3VuZCBlbnRyeSAqLworCQkJCSppbnVtYmVyX3AgPSBmczJoMzIoZHAtPm1mc2RfaW5vKTsKKwkJ
 CQlyZXR1cm4gMDsKKwkJCX0KKwkJfQorCQlmcC0+Zl9zZWVrcCArPSBidWZfc2l6ZTsKKwl9CisJ
 cmV0dXJuIEVOT0VOVDsKK30KKworaW50CityZWFkX3NibG9jayhzdHJ1Y3Qgb3Blbl9maWxlICpm
 LCBzdHJ1Y3QgbWZzX3NibG9jayAqZnMpCit7CisJc3RhdGljIHVpbnQ4X3Qgc2JidWZbTUlOQlNJ
 WkVdOworCXNpemVfdCBidWZfc2l6ZTsKKwlpbnQgcmM7CisKKwkvKiBXZSBtdXN0IHJlYWQgYW1v
 dW50IG11bHRpcGxlIG9mIHNlY3RvciBzaXplLCBoZW5jZSB3ZSBjYW4ndAorCSAqIHJlYWQgU0JT
 SVpFIGFuZCByZWFkIE1JTkJTSVpFLgorCSAqLworCWlmIChTQlNJWkUgPiBNSU5CU0laRSkKKwkJ
 cmV0dXJuIEVJTlZBTDsKKworCXJjID0gREVWX1NUUkFURUdZKGYtPmZfZGV2KShmLT5mX2RldmRh
 dGEsIEZfUkVBRCwKKwkgICAgU1VQRVJfQkxPQ0tfT0ZGIC8gREVWX0JTSVpFLCBNSU5CU0laRSwg
 c2JidWYsICZidWZfc2l6ZSk7CisJaWYgKHJjKQorCQlyZXR1cm4gcmM7CisKKwlpZiAoYnVmX3Np
 emUgIT0gTUlOQlNJWkUpCisJCXJldHVybiBFSU87CisKKwltZnNfc2Jsb2FkKCh2b2lkICopc2Ji
 dWYsIGZzKTsKKworCWlmIChmcy0+bWZzX21hZ2ljICE9IFNVUEVSX01BR0lDKQorCQlyZXR1cm4g
 RUlOVkFMOworCWlmIChmcy0+bWZzX2Jsb2NrX3NpemUgPCBNSU5CU0laRSkKKwkJcmV0dXJuIEVJ
 TlZBTDsKKwlpZiAoKGZzLT5tZnNfYmxvY2tfc2l6ZSAlIDUxMikgIT0gMCkKKwkJcmV0dXJuIEVJ
 TlZBTDsKKwlpZiAoU0JTSVpFID4gZnMtPm1mc19ibG9ja19zaXplKQorCQlyZXR1cm4gRUlOVkFM
 OworCWlmICgoZnMtPm1mc19ibG9ja19zaXplICUgSU5PREVfU0laRSkgIT0gMCkKKwkJcmV0dXJu
 IEVJTlZBTDsKKworCS8qIEZvciBldmVuIGxhcmdlciBkaXNrcywgYSBzaW1pbGFyIHByb2JsZW0g
 b2NjdXJzIHdpdGggc19maXJzdGRhdGF6b25lLgorCSAqIElmIHRoZSBvbi1kaXNrIGZpZWxkIGNv
 bnRhaW5zIHplcm8sIHdlIGFzc3VtZSB0aGF0IHRoZSB2YWx1ZSB3YXMgdG9vCisJICogbGFyZ2Ug
 dG8gZml0LCBhbmQgY29tcHV0ZSBpdCBvbiB0aGUgZmx5LgorCSAqLworCWlmIChmcy0+bWZzX2Zp
 cnN0ZGF0YXpvbmVfb2xkID09IDApIHsKKwkJYmxvY2tfdCBvZmZzZXQ7CisJCW9mZnNldCA9IFNU
 QVJUX0JMT0NLICsgZnMtPm1mc19pbWFwX2Jsb2NrcyArIGZzLT5tZnNfem1hcF9ibG9ja3M7CisJ
 CW9mZnNldCArPSAoZnMtPm1mc19uaW5vZGVzICsgZnMtPm1mc19pbm9kZXNfcGVyX2Jsb2NrIC0g
 MSkgLworCQkJCWZzLT5tZnNfaW5vZGVzX3Blcl9ibG9jazsKKworCQlmcy0+bWZzX2ZpcnN0ZGF0
 YXpvbmUgPQorCQkJKG9mZnNldCArICgxIDw8IGZzLT5tZnNfbG9nX3pvbmVfc2l6ZSkgLSAxKSA+
 PgorCQkJCWZzLT5tZnNfbG9nX3pvbmVfc2l6ZTsKKwl9IGVsc2UgeworCQlmcy0+bWZzX2ZpcnN0
 ZGF0YXpvbmUgPSAoem9uZV90KSBmcy0+bWZzX2ZpcnN0ZGF0YXpvbmVfb2xkOworCX0KKworCWlm
 IChmcy0+bWZzX2ltYXBfYmxvY2tzIDwgMSB8fCBmcy0+bWZzX3ptYXBfYmxvY2tzIDwgMQorCQkJ
 fHwgZnMtPm1mc19uaW5vZGVzIDwgMSB8fCBmcy0+bWZzX3pvbmVzIDwgMQorCQkJfHwgZnMtPm1m
 c19maXJzdGRhdGF6b25lIDw9IDQKKwkJCXx8IGZzLT5tZnNfZmlyc3RkYXRhem9uZSA+PSBmcy0+
 bWZzX3pvbmVzCisJCQl8fCAodW5zaWduZWQpIGZzLT5tZnNfbG9nX3pvbmVfc2l6ZSA+IDQpCisJ
 CXJldHVybiBFSU5WQUw7CisKKwkvKiBjb21wdXRlIGluLW1lbW9yeSBtZnNfc2Jsb2NrIHZhbHVl
 cyAqLworCWZzLT5tZnNfaW5vZGVzX3Blcl9ibG9jayA9IGZzLT5tZnNfYmxvY2tfc2l6ZSAvIElO
 T0RFX1NJWkU7CisKKworCXsKKwkJaW50MzJfdCBtdWx0ID0gZnMtPm1mc19ibG9ja19zaXplID4+
 IExPR19NSU5CU0laRTsKKwkJaW50IGxuMiA9IExPR19NSU5CU0laRTsKKworCQlmb3IgKDsgbXVs
 dCAhPSAxOyBsbjIrKykKKwkJCW11bHQgPj49IDE7CisKKwkJZnMtPm1mc19ic2hpZnQgPSBsbjI7
 CisJCS8qIFhYWCBhc3N1bWUgaHcgYnNpemUgPSA1MTIgKi8KKwkJZnMtPm1mc19mc2J0b2RiID0g
 bG4yIC0gTE9HX01JTkJTSVpFICsgMTsKKwl9CisKKwlmcy0+bWZzX3FibWFzayA9IGZzLT5tZnNf
 YmxvY2tfc2l6ZSAtIDE7CisJZnMtPm1mc19ibWFzayA9IH5mcy0+bWZzX3FibWFzazsKKworCXJl
 dHVybiAwOworfQorCisvKgorICogT3BlbiBhIGZpbGUuCisgKi8KK19fY29tcGFjdGNhbGwgaW50
 CittaW5peGZzM19vcGVuKGNvbnN0IGNoYXIgKnBhdGgsIHN0cnVjdCBvcGVuX2ZpbGUgKmYpCit7
 CisjaWZuZGVmIExJQlNBX0ZTX1NJTkdMRUNPTVBPTkVOVAorCWNvbnN0IGNoYXIgKmNwLCAqbmNw
 OworCWludCBjOworI2VuZGlmCisJaW5vMzJfdCBpbnVtYmVyOworCXN0cnVjdCBmaWxlICpmcDsK
 KwlzdHJ1Y3QgbWZzX3NibG9jayAqZnM7CisJaW50IHJjOworI2lmbmRlZiBMSUJTQV9OT19GU19T
 WU1MSU5LCisJaW5vMzJfdCBwYXJlbnRfaW51bWJlcjsKKwlpbnQgbmxpbmtzID0gMDsKKwljaGFy
 IG5hbWVidWZbTUFYUEFUSExFTisxXTsKKwljaGFyICpidWY7CisjZW5kaWYKKworCS8qIGFsbG9j
 YXRlIGZpbGUgc3lzdGVtIHNwZWNpZmljIGRhdGEgc3RydWN0dXJlICovCisJZnAgPSBhbGxvYyhz
 aXplb2Yoc3RydWN0IGZpbGUpKTsKKwltZW1zZXQoZnAsIDAsIHNpemVvZihzdHJ1Y3QgZmlsZSkp
 OworCWYtPmZfZnNkYXRhID0gKHZvaWQgKilmcDsKKworCS8qIGFsbG9jYXRlIHNwYWNlIGFuZCBy
 ZWFkIHN1cGVyIGJsb2NrICovCisJZnMgPSBhbGxvYyhzaXplb2YoKmZzKSk7CisJbWVtc2V0KGZz
 LCAwLCBzaXplb2YoKmZzKSk7CisJZnAtPmZfZnMgPSBmczsKKwl0d2lkZGxlKCk7CisKKwlyYyA9
 IHJlYWRfc2Jsb2NrKGYsIGZzKTsKKwlpZiAocmMpCisJCWdvdG8gb3V0OworCisJLyogYWxsb2Mg
 YSBibG9jayBzaXplZCBidWZmZXIgdXNlZCBmb3IgYWxsIGZzIHRyYW5zZmVycyAqLworCWZwLT5m
 X2J1ZiA9IGFsbG9jKGZzLT5tZnNfYmxvY2tfc2l6ZSk7CisKKwkvKgorCSAqIENhbGN1bGF0ZSBp
 bmRpcmVjdCBibG9jayBsZXZlbHMuCisJICovCisJeworCQlpbnQzMl90IG11bHQ7CisJCWludCBs
 bjI7CisKKwkJLyoKKwkJICogV2Ugbm90ZSB0aGF0IHRoZSBudW1iZXIgb2YgaW5kaXJlY3QgYmxv
 Y2tzIGlzIGFsd2F5cworCQkgKiBhIHBvd2VyIG9mIDIuICBUaGlzIGxldHMgdXMgdXNlIHNoaWZ0
 cyBhbmQgbWFza3MgaW5zdGVhZAorCQkgKiBvZiBkaXZpZGUgYW5kIHJlbWFpbmRlciBhbmQgYXZv
 aW5kcyBwdWxsaW5nIGluIHRoZQorCQkgKiA2NGJpdCBkaXZpc2lvbiByb3V0aW5lIGludG8gdGhl
 IGJvb3QgY29kZS4KKwkJICovCisJCW11bHQgPSBOSU5ESVIoZnMpOworI2lmZGVmIERFQlVHCisJ
 CWlmICghcG93ZXJvZjIobXVsdCkpIHsKKwkJCS8qIEh1bW1tIHdhcyd0IGEgcG93ZXIgb2YgMiAq
 LworCQkJcmMgPSBFSU5WQUw7CisJCQlnb3RvIG91dDsKKwkJfQorI2VuZGlmCisJCWZvciAobG4y
 ID0gMDsgbXVsdCAhPSAxOyBsbjIrKykKKwkJCW11bHQgPj49IDE7CisKKwkJZnAtPmZfbmlzaGlm
 dCA9IGxuMjsKKwl9CisKKwlpbnVtYmVyID0gUk9PVF9JTk9ERTsKKwlpZiAoKHJjID0gcmVhZF9p
 bm9kZShpbnVtYmVyLCBmKSkgIT0gMCkKKwkJZ290byBvdXQ7CisKKyNpZm5kZWYgTElCU0FfRlNf
 U0lOR0xFQ09NUE9ORU5UCisJY3AgPSBwYXRoOworCXdoaWxlICgqY3ApIHsKKworCQkvKgorCQkg
 KiBSZW1vdmUgZXh0cmEgc2VwYXJhdG9ycworCQkgKi8KKwkJd2hpbGUgKCpjcCA9PSAnLycpCisJ
 CQljcCsrOworCQlpZiAoKmNwID09ICdcMCcpCisJCQlicmVhazsKKworCQkvKgorCQkgKiBDaGVj
 ayB0aGF0IGN1cnJlbnQgbm9kZSBpcyBhIGRpcmVjdG9yeS4KKwkJICovCisJCWlmICgoZnAtPmZf
 ZGkubWRpX21vZGUgJiBJX1RZUEUpICE9IElfRElSRUNUT1JZKSB7CisJCQlyYyA9IEVOT1RESVI7
 CisJCQlnb3RvIG91dDsKKwkJfQorCisJCS8qCisJCSAqIEdldCBuZXh0IGNvbXBvbmVudCBvZiBw
 YXRoIG5hbWUuCisJCSAqLworCQluY3AgPSBjcDsKKwkJd2hpbGUgKChjID0gKmNwKSAhPSAnXDAn
 ICYmIGMgIT0gJy8nKQorCQkJY3ArKzsKKworCQkvKgorCQkgKiBMb29rIHVwIGNvbXBvbmVudCBp
 biBjdXJyZW50IGRpcmVjdG9yeS4KKwkJICogU2F2ZSBkaXJlY3RvcnkgaW51bWJlciBpbiBjYXNl
 IHdlIGZpbmQgYQorCQkgKiBzeW1ib2xpYyBsaW5rLgorCQkgKi8KKyNpZm5kZWYgTElCU0FfTk9f
 RlNfU1lNTElOSworCQlwYXJlbnRfaW51bWJlciA9IGludW1iZXI7CisjZW5kaWYKKwkJcmMgPSBz
 ZWFyY2hfZGlyZWN0b3J5KG5jcCwgY3AgLSBuY3AsIGYsICZpbnVtYmVyKTsKKwkJaWYgKHJjKQor
 CQkJZ290byBvdXQ7CisKKwkJLyoKKwkJICogT3BlbiBuZXh0IGNvbXBvbmVudC4KKwkJICovCisJ
 CWlmICgocmMgPSByZWFkX2lub2RlKGludW1iZXIsIGYpKSAhPSAwKQorCQkJZ290byBvdXQ7CisK
 KyNpZm5kZWYgTElCU0FfTk9fRlNfU1lNTElOSworCQkvKgorCQkgKiBDaGVjayBmb3Igc3ltYm9s
 aWMgbGluay4KKwkJICovCisJCWlmICgoZnAtPmZfZGkubWRpX21vZGUgJiBJX1RZUEUpID09IElf
 U1lNQk9MSUNfTElOSykgeworCQkJaW50IGxpbmtfbGVuID0gZnAtPmZfZGkubWRpX3NpemU7CisJ
 CQlpbnQgbGVuOworCQkJc2l6ZV90IGJ1Zl9zaXplOworCQkJYmxvY2tfdAlkaXNrX2Jsb2NrOwor
 CisJCQlsZW4gPSBzdHJsZW4oY3ApOworCisJCQlpZiAobGlua19sZW4gKyBsZW4gPiBNQVhQQVRI
 TEVOIHx8CisJCQkgICAgKytubGlua3MgPiBNQVhTWU1MSU5LUykgeworCQkJCXJjID0gRU5PRU5U
 OworCQkJCWdvdG8gb3V0OworCQkJfQorCisJCQltZW1tb3ZlKCZuYW1lYnVmW2xpbmtfbGVuXSwg
 Y3AsIGxlbiArIDEpOworCisJCQkvKgorCQkJICogUmVhZCBmaWxlIGZvciBzeW1ib2xpYyBsaW5r
 CisJCQkgKi8KKwkJCWJ1ZiA9IGZwLT5mX2J1ZjsKKwkJCXJjID0gYmxvY2tfbWFwKGYsIChibG9j
 a190KTAsICZkaXNrX2Jsb2NrKTsKKwkJCWlmIChyYykKKwkJCQlnb3RvIG91dDsKKworCQkJdHdp
 ZGRsZSgpOworCQkJcmMgPSBERVZfU1RSQVRFR1koZi0+Zl9kZXYpKGYtPmZfZGV2ZGF0YSwKKwkJ
 CQkJRl9SRUFELCBGU0JUT0RCKGZzLCBkaXNrX2Jsb2NrKSwKKwkJCQkJZnMtPm1mc19ibG9ja19z
 aXplLCBidWYsICZidWZfc2l6ZSk7CisJCQlpZiAocmMpCisJCQkJZ290byBvdXQ7CisKKwkJCW1l
 bWNweShuYW1lYnVmLCBidWYsIGxpbmtfbGVuKTsKKworCQkJLyoKKwkJCSAqIElmIHJlbGF0aXZl
 IHBhdGhuYW1lLCByZXN0YXJ0IGF0IHBhcmVudCBkaXJlY3RvcnkuCisJCQkgKiBJZiBhYnNvbHV0
 ZSBwYXRobmFtZSwgcmVzdGFydCBhdCByb290LgorCQkJICovCisJCQljcCA9IG5hbWVidWY7CisJ
 CQlpZiAoKmNwICE9ICcvJykKKwkJCQlpbnVtYmVyID0gcGFyZW50X2ludW1iZXI7CisJCQllbHNl
 CisJCQkJaW51bWJlciA9IChpbm8zMl90KSBST09UX0lOT0RFOworCisJCQlpZiAoKHJjID0gcmVh
 ZF9pbm9kZShpbnVtYmVyLCBmKSkgIT0gMCkKKwkJCQlnb3RvIG91dDsKKwkJfQorI2VuZGlmCS8q
 ICFMSUJTQV9OT19GU19TWU1MSU5LICovCisJfQorCisJLyoKKwkgKiBGb3VuZCB0ZXJtaW5hbCBj
 b21wb25lbnQuCisJICovCisJcmMgPSAwOworCisjZWxzZSAvKiAhTElCU0FfRlNfU0lOR0xFQ09N
 UE9ORU5UICovCisKKwkvKiBsb29rIHVwIGNvbXBvbmVudCBpbiB0aGUgY3VycmVudCAocm9vdCkg
 ZGlyZWN0b3J5ICovCisJcmMgPSBzZWFyY2hfZGlyZWN0b3J5KHBhdGgsIHN0cmxlbihwYXRoKSwg
 ZiwgJmludW1iZXIpOworCWlmIChyYykKKwkJZ290byBvdXQ7CisKKwkvKiBvcGVuIGl0ICovCisJ
 cmMgPSByZWFkX2lub2RlKGludW1iZXIsIGYpOworCisjZW5kaWYgLyogIUxJQlNBX0ZTX1NJTkdM
 RUNPTVBPTkVOVCAqLworCisJZnAtPmZfc2Vla3AgPSAwOwkJLyogcmVzZXQgc2VlayBwb2ludGVy
 ICovCisKK291dDoKKwlpZiAocmMpCisJCW1pbml4ZnMzX2Nsb3NlKGYpOworCisJcmV0dXJuIHJj
 OworfQorCitfX2NvbXBhY3RjYWxsIGludAorbWluaXhmczNfY2xvc2Uoc3RydWN0IG9wZW5fZmls
 ZSAqZikKK3sKKwlzdHJ1Y3QgZmlsZSAqZnAgPSAoc3RydWN0IGZpbGUgKilmLT5mX2ZzZGF0YTsK
 KworCWYtPmZfZnNkYXRhID0gTlVMTDsKKwlpZiAoZnAgPT0gTlVMTCkKKwkJcmV0dXJuIDA7CisK
 KwlpZiAoZnAtPmZfYnVmKQorCQlkZWFsbG9jKGZwLT5mX2J1ZiwgZnAtPmZfZnMtPm1mc19ibG9j
 a19zaXplKTsKKwlkZWFsbG9jKGZwLT5mX2ZzLCBzaXplb2YoKmZwLT5mX2ZzKSk7CisJZGVhbGxv
 YyhmcCwgc2l6ZW9mKHN0cnVjdCBmaWxlKSk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDb3B5
 IGEgcG9ydGlvbiBvZiBhIGZpbGUgaW50byBrZXJuZWwgbWVtb3J5LgorICogQ3Jvc3MgYmxvY2sg
 Ym91bmRhcmllcyB3aGVuIG5lY2Vzc2FyeS4KKyAqLworX19jb21wYWN0Y2FsbCBpbnQKK21pbml4
 ZnMzX3JlYWQoc3RydWN0IG9wZW5fZmlsZSAqZiwgdm9pZCAqc3RhcnQsIHNpemVfdCBzaXplLCBz
 aXplX3QgKnJlc2lkKQoreworCXN0cnVjdCBmaWxlICpmcCA9IChzdHJ1Y3QgZmlsZSAqKWYtPmZf
 ZnNkYXRhOworCXNpemVfdCBjc2l6ZTsKKwljaGFyICpidWY7CisJc2l6ZV90IGJ1Zl9zaXplOwor
 CWludCByYyA9IDA7CisJY2hhciAqYWRkciA9IHN0YXJ0OworCisJd2hpbGUgKHNpemUgIT0gMCkg
 eworCQlpZiAoZnAtPmZfc2Vla3AgPj0gKG9mZl90KWZwLT5mX2RpLm1kaV9zaXplKQorCQkJYnJl
 YWs7CisKKwkJcmMgPSBidWZfcmVhZF9maWxlKGYsICZidWYsICZidWZfc2l6ZSk7CisJCWlmIChy
 YykKKwkJCWJyZWFrOworCisJCWNzaXplID0gc2l6ZTsKKwkJaWYgKGNzaXplID4gYnVmX3NpemUp
 CisJCQljc2l6ZSA9IGJ1Zl9zaXplOworCisJCW1lbWNweShhZGRyLCBidWYsIGNzaXplKTsKKwor
 CQlmcC0+Zl9zZWVrcCArPSBjc2l6ZTsKKwkJYWRkciArPSBjc2l6ZTsKKwkJc2l6ZSAtPSBjc2l6
 ZTsKKwl9CisKKwlpZiAocmVzaWQpCisJCSpyZXNpZCA9IHNpemU7CisJcmV0dXJuIHJjOworfQor
 CisvKgorICogTm90IGltcGxlbWVudGVkLgorICovCisjaWZuZGVmIExJQlNBX05PX0ZTX1dSSVRF
 CitfX2NvbXBhY3RjYWxsIGludAorbWluaXhmczNfd3JpdGUoc3RydWN0IG9wZW5fZmlsZSAqZiwg
 dm9pZCAqc3RhcnQsIHNpemVfdCBzaXplLCBzaXplX3QgKnJlc2lkKQoreworCisJcmV0dXJuIEVS
 T0ZTOworfQorI2VuZGlmIC8qICFMSUJTQV9OT19GU19XUklURSAqLworCisjaWZuZGVmIExJQlNB
 X05PX0ZTX1NFRUsKK19fY29tcGFjdGNhbGwgb2ZmX3QKK21pbml4ZnMzX3NlZWsoc3RydWN0IG9w
 ZW5fZmlsZSAqZiwgb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlcmUpCit7CisJc3RydWN0IGZpbGUgKmZw
 ID0gKHN0cnVjdCBmaWxlICopZi0+Zl9mc2RhdGE7CisKKwlzd2l0Y2ggKHdoZXJlKSB7CisJY2Fz
 ZSBTRUVLX1NFVDoKKwkJZnAtPmZfc2Vla3AgPSBvZmZzZXQ7CisJCWJyZWFrOworCWNhc2UgU0VF
 S19DVVI6CisJCWZwLT5mX3NlZWtwICs9IG9mZnNldDsKKwkJYnJlYWs7CisJY2FzZSBTRUVLX0VO
 RDoKKwkJZnAtPmZfc2Vla3AgPSBmcC0+Zl9kaS5tZGlfc2l6ZSAtIG9mZnNldDsKKwkJYnJlYWs7
 CisJZGVmYXVsdDoKKwkJcmV0dXJuIC0xOworCX0KKwlyZXR1cm4gZnAtPmZfc2Vla3A7Cit9Cisj
 ZW5kaWYgLyogIUxJQlNBX05PX0ZTX1NFRUsgKi8KKworX19jb21wYWN0Y2FsbCBpbnQKK21pbml4
 ZnMzX3N0YXQoc3RydWN0IG9wZW5fZmlsZSAqZiwgc3RydWN0IHN0YXQgKnNiKQoreworCXN0cnVj
 dCBmaWxlICpmcCA9IChzdHJ1Y3QgZmlsZSAqKWYtPmZfZnNkYXRhOworCisJLyogb25seSBpbXBv
 cnRhbnQgc3R1ZmYgKi8KKwltZW1zZXQoc2IsIDAsIHNpemVvZiAqc2IpOworCXNiLT5zdF9tb2Rl
 ID0gZnAtPmZfZGkubWRpX21vZGU7CisJc2ItPnN0X3VpZCA9IGZwLT5mX2RpLm1kaV91aWQ7CisJ
 c2ItPnN0X2dpZCA9IGZwLT5mX2RpLm1kaV9naWQ7CisJc2ItPnN0X3NpemUgPSBmcC0+Zl9kaS5t
 ZGlfc2l6ZTsKKwlyZXR1cm4gMDsKK30KKworI2lmIGRlZmluZWQoTElCU0FfRU5BQkxFX0xTX09Q
 KQorX19jb21wYWN0Y2FsbCB2b2lkCittaW5peGZzM19scyhzdHJ1Y3Qgb3Blbl9maWxlICpmLCBj
 b25zdCBjaGFyICpwYXR0ZXJuKQoreworCXN0cnVjdCBmaWxlICpmcCA9IChzdHJ1Y3QgZmlsZSAq
 KWYtPmZfZnNkYXRhOworCXN0cnVjdCBtZnNfc2Jsb2NrICpmcyA9IGZwLT5mX2ZzOworCXN0cnVj
 dCBtZnNfZGlyZWN0ICpkcDsKKwlzdHJ1Y3QgbWZzX2RpcmVjdCAqZGJ1ZjsKKwlzaXplX3QgYnVm
 X3NpemU7CisJZW50cnlfdAkqbmFtZXMgPSAwLCAqbiwgKipucDsKKworCWZwLT5mX3NlZWtwID0g
 MDsKKwl3aGlsZSAoZnAtPmZfc2Vla3AgPCAob2ZmX3QpZnAtPmZfZGkubWRpX3NpemUpIHsKKwkJ
 aW50IHJjID0gYnVmX3JlYWRfZmlsZShmLCAoY2hhcioqKSZkYnVmLCAmYnVmX3NpemUpOworCQlp
 ZiAocmMpCisJCQlnb3RvIG91dDsKKworCQkvKiBYWFggd2UgYXNzdW1lLCB0aGF0IGJ1Zl9yZWFk
 X2ZpbGUgcmVhZHMgYW4gZnMgYmxvY2sgYW5kCisJCSAqIGRvZXNuJ3QgdHJ1bmNhdGUgYnVmZmVy
 LiBDdXJyZW50bHkgaV9zaXplIGluIE1GUyBkb2Vzbid0CisJCSAqIHRoZSBzYW1lIGFzIHNpemUg
 b2YgYWxsb2NhdGVkIGJsb2NrcywgaXQgbWFrZXMgYnVmX3JlYWRfZmlsZQorCQkgKiB0byB0cnVu
 Y2F0ZSBidWZfc2l6ZS4KKwkJICovCisJCWlmIChidWZfc2l6ZSA8IGZzLT5tZnNfYmxvY2tfc2l6
 ZSkKKwkJCWJ1Zl9zaXplID0gZnMtPm1mc19ibG9ja19zaXplOworCisJCWZvciAoZHAgPSBkYnVm
 OyBkcCA8ICZkYnVmW05SX0RJUl9FTlRSSUVTKGZzKV07IGRwKyspIHsKKwkJCWNoYXIgKmNwOwor
 CQkJaW50IG5hbWxlbjsKKworCQkJaWYgKGZzMmgzMihkcC0+bWZzZF9pbm8pID09IDApCisJCQkJ
 Y29udGludWU7CisKKwkJCWlmIChwYXR0ZXJuICYmICFmbl9tYXRjaChkcC0+bWZzZF9uYW1lLCBw
 YXR0ZXJuKSkKKwkJCQljb250aW51ZTsKKworCQkJLyogQ29tcHV0ZSB0aGUgbGVuZ3RoIG9mIHRo
 ZSBuYW1lLAorCQkJICogV2UgZG9uJ3QgdXNlIHN0cmxlbiBhbmQgc3RyY3B5LCBiZWNhdXNlIG9y
 aWdpbmFsIE1GUworCQkJICogY29kZSBkb2Vzbid0LgorCQkJICovCisJCQljcCA9IG1lbWNocihk
 cC0+bWZzZF9uYW1lLCAnXDAnLCBzaXplb2YoZHAtPm1mc2RfbmFtZSkpOworCQkJaWYgKGNwID09
 IE5VTEwpCisJCQkJbmFtbGVuID0gc2l6ZW9mKGRwLT5tZnNkX25hbWUpOworCQkJZWxzZQorCQkJ
 CW5hbWxlbiA9IGNwIC0gKGRwLT5tZnNkX25hbWUpOworCisJCQluID0gYWxsb2Moc2l6ZW9mICpu
 ICsgbmFtbGVuKTsKKwkJCWlmICghbikgeworCQkJCXByaW50ZigiJWQ6ICVzXG4iLAorCQkJCQlm
 czJoMzIoZHAtPm1mc2RfaW5vKSwgZHAtPm1mc2RfbmFtZSk7CisJCQkJY29udGludWU7CisJCQl9
 CisJCQluLT5lX2lubyA9IGZzMmgzMihkcC0+bWZzZF9pbm8pOworCQkJc3RybmNweShuLT5lX25h
 bWUsIGRwLT5tZnNkX25hbWUsIG5hbWxlbik7CisJCQluLT5lX25hbWVbbmFtbGVuXSA9ICdcMCc7
 CisJCQlmb3IgKG5wID0gJm5hbWVzOyAqbnA7IG5wID0gJigqbnApLT5lX25leHQpIHsKKwkJCQlp
 ZiAoc3RyY21wKG4tPmVfbmFtZSwgKCpucCktPmVfbmFtZSkgPCAwKQorCQkJCQlicmVhazsKKwkJ
 CX0KKwkJCW4tPmVfbmV4dCA9ICpucDsKKwkJCSpucCA9IG47CisJCX0KKwkJZnAtPmZfc2Vla3Ag
 Kz0gYnVmX3NpemU7CisJfQorCisJaWYgKG5hbWVzKSB7CisJCWVudHJ5X3QgKnBfbmFtZXMgPSBu
 YW1lczsKKwkJZG8geworCQkJbiA9IHBfbmFtZXM7CisJCQlwcmludGYoIiVkOiAlc1xuIiwKKwkJ
 CQluLT5lX2lubywgbi0+ZV9uYW1lKTsKKwkJCXBfbmFtZXMgPSBuLT5lX25leHQ7CisJCX0gd2hp
 bGUgKHBfbmFtZXMpOworCX0gZWxzZSB7CisJCXByaW50Zigibm90IGZvdW5kXG4iKTsKKwl9Citv
 dXQ6CisJaWYgKG5hbWVzKSB7CisJCWRvIHsKKwkJCW4gPSBuYW1lczsKKwkJCW5hbWVzID0gbi0+
 ZV9uZXh0OworCQkJZGVhbGxvYyhuLCAwKTsKKwkJfSB3aGlsZSAobmFtZXMpOworCX0KKwlyZXR1
 cm47Cit9CisjZW5kaWYKKworLyoKKyAqIGJ5dGUgc3dhcCBmdW5jdGlvbnMgZm9yIGJpZyBlbmRp
 YW4gbWFjaGluZXMKKyAqIChtZnMgaXMgYWx3YXlzIGxpdHRsZSBlbmRpYW4pCisgKi8KKworLyog
 VGhlc2UgZnVuY3Rpb25zIGFyZSBvbmx5IG5lZWRlZCBpZiBuYXRpdmUgYnl0ZSBvcmRlciBpcyBu
 b3QgYmlnIGVuZGlhbiAqLworI2lmIEJZVEVfT1JERVIgPT0gQklHX0VORElBTgordm9pZAorbWlu
 aXhmczNfc2JfYnN3YXAoc3RydWN0IG1mc19zYmxvY2sgKm9sZCwgc3RydWN0IG1mc19zYmxvY2sg
 Km5ldykKK3sKKwluZXctPm1mc19uaW5vZGVzCT0JYnN3YXAzMihvbGQtPm1mc19uaW5vZGVzKTsK
 KwluZXctPm1mc19uem9uZXMJCT0JYnN3YXAxNihvbGQtPm1mc19uem9uZXMpOworCW5ldy0+bWZz
 X2ltYXBfYmxvY2tzCT0JYnN3YXAxNihvbGQtPm1mc19pbWFwX2Jsb2Nrcyk7CisJbmV3LT5tZnNf
 em1hcF9ibG9ja3MJPQlic3dhcDE2KG9sZC0+bWZzX3ptYXBfYmxvY2tzKTsKKwluZXctPm1mc19m
 aXJzdGRhdGF6b25lX29sZCA9CWJzd2FwMTYob2xkLT5tZnNfZmlyc3RkYXRhem9uZV9vbGQpOwor
 CW5ldy0+bWZzX2xvZ196b25lX3NpemUJPQlic3dhcDE2KG9sZC0+bWZzX2xvZ196b25lX3NpemUp
 OworCW5ldy0+bWZzX21heF9zaXplCT0JYnN3YXAzMihvbGQtPm1mc19tYXhfc2l6ZSk7CisJbmV3
 LT5tZnNfem9uZXMJCT0JYnN3YXAzMihvbGQtPm1mc196b25lcyk7CisJbmV3LT5tZnNfbWFnaWMJ
 CT0JYnN3YXAxNihvbGQtPm1mc19tYWdpYyk7CisJbmV3LT5tZnNfYmxvY2tfc2l6ZQk9CWJzd2Fw
 MTYob2xkLT5tZnNfYmxvY2tfc2l6ZSk7CisJbmV3LT5tZnNfZGlza192ZXJzaW9uCT0Jb2xkLT5t
 ZnNfZGlza192ZXJzaW9uOworfQorCit2b2lkIG1pbml4ZnMzX2lfYnN3YXAoc3RydWN0IG1mc19k
 aW5vZGUgKm9sZCwgc3RydWN0IG1mc19kaW5vZGUgKm5ldykKK3sKKwlpbnQgaTsKKworCW5ldy0+
 bWRpX21vZGUJCT0JYnN3YXAxNihvbGQtPm1kaV9tb2RlKTsKKwluZXctPm1kaV9ubGlua3MJCT0J
 YnN3YXAxNihvbGQtPm1kaV9ubGlua3MpOworCW5ldy0+bWRpX3VpZAkJPQlic3dhcDE2KG9sZC0+
 bWRpX3VpZCk7CisJbmV3LT5tZGlfZ2lkCQk9CWJzd2FwMTYob2xkLT5tZGlfZ2lkKTsKKwluZXct
 Pm1kaV9zaXplCQk9CWJzd2FwMzIob2xkLT5tZGlfc2l6ZSk7CisJbmV3LT5tZGlfYXRpbWUJCT0J
 YnN3YXAzMihvbGQtPm1kaV9hdGltZSk7CisJbmV3LT5tZGlfbXRpbWUJCT0JYnN3YXAzMihvbGQt
 Pm1kaV9tdGltZSk7CisJbmV3LT5tZGlfY3RpbWUJCT0JYnN3YXAzMihvbGQtPm1kaV9jdGltZSk7
 CisKKwkvKiBXZSBkb24ndCBzd2FwIGhlcmUsIGJlY2F1c2UgaW5kaXJlY3RzIG11c3QgYmUgc3dh
 cHBlZCBsYXRlcgorCSAqIGFueXdheSwgaGVuY2UgZXZlcnl0aGluZyBpcyBkb25lIGJ5IGJsb2Nr
 X21hcCgpLgorCSAqLworCWZvciAoaSA9IDA7IGkgPCBOUl9UWk9ORVM7IGkrKykKKwkJbmV3LT5t
 ZGlfem9uZVtpXSA9IG9sZC0+bWRpX3pvbmVbaV07Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL3N5
 cy9saWIvbGlic2EvbWluaXhmczMuaCBiL3N5cy9saWIvbGlic2EvbWluaXhmczMuaApuZXcgZmls
 ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWY4YTU0Ci0tLSAvZGV2L251bGwKKysrIGIv
 c3lzL2xpYi9saWJzYS9taW5peGZzMy5oCkBAIC0wLDAgKzEsMTc2IEBACisvKgkkTmV0QlNEJCAq
 LworCisvKi0KKyAqIENvcHlyaWdodCAoYykgMjAxMgorICoJVnJpamUgVW5pdmVyc2l0ZWl0LCBB
 bXN0ZXJkYW0sIFRoZSBOZXRoZXJsYW5kcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBB
 dXRob3I6IEV2Z2VuaXkgSXZhbm92CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
 b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
 IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
 IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
 aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
 aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
 IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
 IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
 aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
 cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
 Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBgYEFTCisg
 KiBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
 QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
 VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
 Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBGT1VOREFUSU9OIE9SIENPTlRSSUJVVE9S
 UyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
 Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
 IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
 T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
 ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
 SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
 IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
 QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
 RQorICogUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNSU5JWF9G
 U18zX0gKKyNkZWZpbmUgTUlOSVhfRlNfM19ICisKK0ZTX0RFRihtaW5peGZzMyk7CisKK3R5cGVk
 ZWYgdWludDMyX3Qgem9uZV90OwordHlwZWRlZiB1aW50MTZfdCB6b25lMV90OwordHlwZWRlZiB1
 aW50MzJfdCBibG9ja190OworCisjZGVmaW5lIE5SX0RaT05FUwk3CS8qICMgZGlyZWN0IHpvbmUg
 bnVtYmVycyBpbiBhbiBpbm9kZSAqLworI2RlZmluZSBOUl9UWk9ORVMJMTAJLyogdG90YWwgIyB6
 b25lIG51bWJlcnMgaW4gYW4gaW5vZGUgKi8KKyNkZWZpbmUgTklBRERSCQkyICAgICAgIC8qIElu
 ZGlyZWN0IGFkZHJlc3NlcyBpbiBpbm9kZSAqLworCitzdHJ1Y3QgbWZzX2Rpbm9kZSB7CisJdWlu
 dDE2X3QgIG1kaV9tb2RlOwkvKiBmaWxlIHR5cGUsIHByb3RlY3Rpb24sIGV0Yy4gKi8KKwl1aW50
 MTZfdCAgbWRpX25saW5rczsJLyogaG93IG1hbnkgbGlua3MgdG8gdGhpcyBmaWxlICovCisJaW50
 MTZfdCAgIG1kaV91aWQ7CS8qIHVzZXIgaWQgb2YgdGhlIGZpbGUncyBvd25lciAqLworCXVpbnQx
 Nl90ICBtZGlfZ2lkOwkvKiBncm91cCBudW1iZXIgKi8KKwl1aW50MzJfdCAgbWRpX3NpemU7CS8q
 IGN1cnJlbnQgZmlsZSBzaXplIGluIGJ5dGVzICovCisJdWludDMyX3QgIG1kaV9hdGltZTsJLyog
 dGltZSBvZiBsYXN0IGFjY2VzcyAqLworCXVpbnQzMl90ICBtZGlfbXRpbWU7CS8qIHdoZW4gd2Fz
 IGZpbGUgZGF0YSBsYXN0IGNoYW5nZWQgKi8KKwl1aW50MzJfdCAgbWRpX2N0aW1lOwkvKiB3aGVu
 IHdhcyBpbm9kZSBpdHNlbGYgY2hhbmdlZCAqLworCXpvbmVfdCAgICBtZGlfem9uZVtOUl9UWk9O
 RVNdOyAvKiB6b25lIG51bWJlcnMgZm9yIGRpcmVjdCwgaW5kLCBhbmQKKwkJCQkJCWRibCBpbmQg
 Ki8KK307CisKKy8qIE1heGltdW0gTWluaXggTUZTIG9uLWRpc2sgZGlyZWN0b3J5IGZpbGVuYW1l
 LgorICogTUZTIHVzZXMgJ3N0cnVjdCBkaXJlY3QnIHRvIHdyaXRlIGFuZCBwYXJzZQorICogZGly
 ZWN0b3J5IGVudHJpZXMsIHNvIHRoaXMgY2FuJ3QgYmUgY2hhbmdlZAorICogd2l0aG91dCBicmVh
 a2luZyBmaWxlc3lzdGVtcy4KKyAqLworI2RlZmluZSBNRlNfRElSU0laCTYwCisKK3N0cnVjdCBt
 ZnNfZGlyZWN0IHsKKwl1aW50MzJfdCAgbWZzZF9pbm87CisJY2hhciAgICAgIG1mc2RfbmFtZVtN
 RlNfRElSU0laXTsKK30gX19wYWNrZWQ7CisKK3N0cnVjdCBtZnNfc2Jsb2NrIHsKKwl1aW50MzJf
 dCAgbWZzX25pbm9kZXM7CQkvKiAjIHVzYWJsZSBpbm9kZXMgb24gdGhlIG1pbm9yIGRldmljZSAq
 LworCXpvbmUxX3QgICBtZnNfbnpvbmVzOwkJLyogdG90YWwgZGV2aWNlIHNpemUsIGluY2x1ZGlu
 ZyBiaXQgbWFwcyBldGMgKi8KKwlpbnQxNl90ICAgbWZzX2ltYXBfYmxvY2tzOwkvKiAjIG9mIGJs
 b2NrcyB1c2VkIGJ5IGlub2RlIGJpdCBtYXAgKi8KKwlpbnQxNl90ICAgbWZzX3ptYXBfYmxvY2tz
 OwkvKiAjIG9mIGJsb2NrcyB1c2VkIGJ5IHpvbmUgYml0IG1hcCAqLworCXpvbmUxX3QgICBtZnNf
 Zmlyc3RkYXRhem9uZV9vbGQ7LyogbnVtYmVyIG9mIGZpcnN0IGRhdGEgem9uZSAoc21hbGwpICov
 CisJaW50MTZfdCAgIG1mc19sb2dfem9uZV9zaXplOwkvKiBsb2cyIG9mIGJsb2Nrcy96b25lICov
 CisJaW50MTZfdCAgIG1mc19wYWQ7CQkvKiB0cnkgdG8gYXZvaWQgY29tcGlsZXItZGVwZW5kZW50
 IHBhZGRpbmcgKi8KKwlpbnQzMl90ICAgbWZzX21heF9zaXplOwkJLyogbWF4aW11bSBmaWxlIHNp
 emUgb24gdGhpcyBkZXZpY2UgKi8KKwl6b25lX3QgICAgbWZzX3pvbmVzOwkJLyogbnVtYmVyIG9m
 IHpvbmVzIChyZXBsYWNlcyBzX256b25lcyBpbiBWMikgKi8KKwlpbnQxNl90ICAgbWZzX21hZ2lj
 OwkJLyogbWFnaWMgbnVtYmVyIHRvIHJlY29nbml6ZSBzdXBlci1ibG9ja3MgKi8KKwlpbnQxNl90
 ICAgbWZzX3BhZDI7CQkvKiB0cnkgdG8gYXZvaWQgY29tcGlsZXItZGVwZW5kZW50IHBhZGRpbmcg
 Ki8KKwl1aW50MTZfdCAgbWZzX2Jsb2NrX3NpemU7CS8qIGJsb2NrIHNpemUgaW4gYnl0ZXMuICov
 CisJY2hhciAgICAgIG1mc19kaXNrX3ZlcnNpb247CS8qIGZpbGVzeXN0ZW0gZm9ybWF0IHN1Yi12
 ZXJzaW9uICovCisKKyAgLyogVGhlIGZvbGxvd2luZyBpdGVtcyBhcmUgb25seSB1c2VkIHdoZW4g
 dGhlIHN1cGVyX2Jsb2NrIGlzIGluIG1lbW9yeSwKKyAgICogbWZzX2lub2Rlc19wZXJfYmxvY2sg
 bXVzdCBiZSB0aGUgZmlycyBvbmUgKHNlZSBTQlNJWkUpCisgICAqLworCXVuc2lnbmVkIG1mc19p
 bm9kZXNfcGVyX2Jsb2NrOwkvKiBwcmVjYWxjdWxhdGVkIGZyb20gbWFnaWMgbnVtYmVyICovCisJ
 em9uZV90ICAgbWZzX2ZpcnN0ZGF0YXpvbmU7CS8qIG51bWJlciBvZiBmaXJzdCBkYXRhIHpvbmUg
 KGJpZykgKi8KKwlpbnQzMl90ICBtZnNfYnNoaWZ0OwkJLyogYGBsYmxrbm8nJyBjYWxjIG9mIGxv
 Z2ljYWwgYmxrbm8gKi8KKwlpbnQzMl90ICBtZnNfYm1hc2s7CQkvKiBgYGJsa29mZicnIGNhbGMg
 b2YgYmxrIG9mZnNldHMgKi8KKwlpbnQ2NF90ICBtZnNfcWJtYXNrOwkJLyogfmZzX2JtYXNrIC0g
 Zm9yIHVzZSB3aXRoIHF1YWQgc2l6ZSAqLworCWludDMyX3QgIG1mc19mc2J0b2RiOwkJLyogZnNi
 dG9kYiBhbmQgZGJ0b2ZzYiBzaGlmdCBjb25zdGFudCAqLworfTsKKworI2RlZmluZSBMT0dfTUlO
 QlNJWkUJMTAKKyNkZWZpbmUgTUlOQlNJWkUJKDEgPDwgTE9HX01JTkJTSVpFKQorCisjZGVmaW5l
 IFNVUEVSX01BR0lDCTB4NGQ1YQkvKiBtYWdpYyAjIGZvciBNRlN2MyBmaWxlIHN5c3RlbXMgKi8K
 KworI2RlZmluZSBST09UX0lOT0RFCSgodWludDMyX3QpIDEpCS8qIGlub2RlIG51bWJlciBmb3Ig
 cm9vdCBkaXJlY3RvcnkgKi8KKyNkZWZpbmUgU1VQRVJfQkxPQ0tfT0ZGICgxMDI0KQkJLyogYnl0
 ZXMgb2Zmc2V0ICovCisjZGVmaW5lIFNUQVJUX0JMT0NLCSgoYmxvY2tfdCkgMikJLyogZmlyc3Qg
 ZnMgYmxvY2sgKG5vdCBjb3VudGluZyBTQikgKi8KKworLyogIyBieXRlcy9kaXIgZW50cnkgKi8K
 KyNkZWZpbmUgRElSX0VOVFJZX1NJWkUJCXNpemVvZihzdHJ1Y3QgbWZzX2RpcmVjdCkKKy8qICMg
 ZGlyIGVudHJpZXMvYmxrICovCisjZGVmaW5lIE5SX0RJUl9FTlRSSUVTKGZzKQkoKGZzKS0+bWZz
 X2Jsb2NrX3NpemUvRElSX0VOVFJZX1NJWkUpCisvKiBtZnNfc2Jsb2NrIG9uLWRpc2sgcGFydCBz
 aXplICovCisjZGVmaW5lIFNCU0laRQkJCW9mZnNldG9mKHN0cnVjdCBtZnNfc2Jsb2NrLCBtZnNf
 aW5vZGVzX3Blcl9ibG9jaykKKworI2RlZmluZSBaT05FX05VTV9TSVpFCQlzaXplb2Yoem9uZV90
 KSAvKiAjIGJ5dGVzIGluIHpvbmUgICovCisjZGVmaW5lIElOT0RFX1NJWkUJCXNpemVvZihzdHJ1
 Y3QgbWZzX2Rpbm9kZSkgLyogYnl0ZXMgaW4gZHNrIGlubyAqLworLyogIyB6b25lcy9pbmRpciBi
 bG9jayAqLworI2RlZmluZSBOSU5ESVIoZnMpCQkoKGZzKS0+bWZzX2Jsb2NrX3NpemUvWk9ORV9O
 VU1fU0laRSkKKworI2RlZmluZSBOT19aT05FCQkJKCh6b25lX3QpIDApCS8qIGFic2VuY2Ugb2Yg
 YSB6b25lIG51bWJlciAqLworI2RlZmluZSBOT19CTE9DSwkJKChibG9ja190KSAwKQkvKiBhYnNl
 bmNlIG9mIGEgYmxvY2sgbnVtYmVyICovCisKKy8qIFR1cm4gZmlsZSBzeXN0ZW0gYmxvY2sgbnVt
 YmVycyBpbnRvIGRpc2sgYmxvY2sgYWRkcmVzc2VzICovCisjZGVmaW5lIGZzYnRvZGIoZnMsIGIp
 CSgoYikgPDwgKGZzKS0+bWZzX2ZzYnRvZGIpCisKKyNkZWZpbmUJaW5vX3RvX2ZzYmEoZnMsIHgp
 CQkJCQkJXAorCSgoKHgpIC0gMSkgLyAoZnMpLT5tZnNfaW5vZGVzX3Blcl9ibG9jayArCQkJXAor
 CVNUQVJUX0JMT0NLICsgKGZzKS0+bWZzX2ltYXBfYmxvY2tzICsgKGZzKS0+bWZzX3ptYXBfYmxv
 Y2tzKQorI2RlZmluZQlpbm9fdG9fZnNibyhmcywgeCkJKCgoeCkgLSAxKSAlIChmcyktPm1mc19p
 bm9kZXNfcGVyX2Jsb2NrKQorCisvKgorICogTUZTIG1ldGFkYXRhcyBhcmUgc3RvcmVkIGluIGxp
 dHRsZS1lbmRpYW4gYnl0ZSBvcmRlci4gVGhlc2UgbWFjcm9zCisgKiBoZWxwcyByZWFkaW5nIHRo
 ZXNlcyBtZXRhZGF0YXMuCisgKi8KKyNpZiBCWVRFX09SREVSID09IExJVFRMRV9FTkRJQU4KKyMJ
 ZGVmaW5lIGZzMmgxNih4KSAoeCkKKyMJZGVmaW5lIGZzMmgzMih4KSAoeCkKKyMJZGVmaW5lIG1m
 c19zYmxvYWQob2xkLCBuZXcpCVwKKwkJbWVtY3B5KChuZXcpLCAob2xkKSwgU0JTSVpFKTsKKyMJ
 ZGVmaW5lIG1mc19pbG9hZChvbGQsIG5ldykJXAorCQltZW1jcHkoKG5ldyksKG9sZCksc2l6ZW9m
 KHN0cnVjdCBtZnNfZGlub2RlKSkKKyNlbHNlCit2b2lkIG1pbml4ZnMzX3NiX2Jzd2FwKHN0cnVj
 dCBtZnNfc2Jsb2NrICosIHN0cnVjdCBtZnNfc2Jsb2NrICopOwordm9pZCBtaW5peGZzM19pX2Jz
 d2FwKHN0cnVjdCBtZnNfZGlub2RlICosIHN0cnVjdCBtZnNfZGlub2RlICopOworIwlkZWZpbmUg
 ZnMyaDE2KHgpIGJzd2FwMTYoeCkKKyMJZGVmaW5lIGZzMmgzMih4KSBic3dhcDMyKHgpCisjCWRl
 ZmluZSBtZnNfc2Jsb2FkKG9sZCwgbmV3KSBtaW5peGZzM19zYl9ic3dhcCgob2xkKSwgKG5ldykp
 CisjCWRlZmluZSBtZnNfaWxvYWQob2xkLCBuZXcpIG1pbml4ZnMzX2lfYnN3YXAoKG9sZCksIChu
 ZXcpKQorI2VuZGlmIC8qIEJZVEVfT1JERVIgPT0gTElUVExFX0VORElBTiAqLworCisvKgorICog
 VGhlIGZvbGxvd2luZyBtYWNyb3Mgb3B0aW1pemUgY2VydGFpbiBmcmVxdWVudGx5IGNhbGN1bGF0
 ZWQKKyAqIHF1YW50aXRpZXMgYnkgdXNpbmcgc2hpZnRzIGFuZCBtYXNrcyBpbiBwbGFjZSBvZiBk
 aXZpc2lvbnMKKyAqIG1vZHVsb3MgYW5kIG11bHRpcGxpY2F0aW9ucy4KKyAqLworI2RlZmluZSBi
 bGtvZmYoZnMsIGxvYykJCS8qIGNhbGN1bGF0ZXMgKGxvYyAlIGZzLT5tZnNfYnNpemUpICovIFwK
 KwkoKGxvYykgJiAoZnMpLT5tZnNfcWJtYXNrKQorI2RlZmluZSBsYmxrbm8oZnMsIGxvYykJCS8q
 IGNhbGN1bGF0ZXMgKGxvYyAvIGZzLT5tZnNfYnNpemUpICovIFwKKwkoKGxvYykgPj4gKGZzKS0+
 bWZzX2JzaGlmdCkKKworLyogRmxhZyBiaXRzIGZvciBpX21vZGUgaW4gdGhlIGlub2RlLiAqLwor
 I2RlZmluZSBJX1RZUEUgICAgICAgICAgMDE3MDAwMCAvKiB0aGlzIGZpZWxkIGdpdmVzIGlub2Rl
 IHR5cGUgKi8KKyNkZWZpbmUgSV9VTklYX1NPQ0tFVCAgIDAxNDAwMDAgLyogdW5peCBkb21haW4g
 c29ja2V0ICovCisjZGVmaW5lIElfU1lNQk9MSUNfTElOSyAwMTIwMDAwIC8qIGZpbGUgaXMgYSBz
 eW1ib2xpYyBsaW5rICovCisjZGVmaW5lIElfUkVHVUxBUiAgICAgICAwMTAwMDAwIC8qIHJlZ3Vs
 YXIgZmlsZSwgbm90IGRpciBvciBzcGVjaWFsICovCisjZGVmaW5lIElfQkxPQ0tfU1BFQ0lBTCAw
 MDYwMDAwIC8qIGJsb2NrIHNwZWNpYWwgZmlsZSAqLworI2RlZmluZSBJX0RJUkVDVE9SWSAgICAg
 MDA0MDAwMCAvKiBmaWxlIGlzIGEgZGlyZWN0b3J5ICovCisjZGVmaW5lIElfQ0hBUl9TUEVDSUFM
 ICAwMDIwMDAwIC8qIGNoYXJhY3RlciBzcGVjaWFsIGZpbGUgKi8KKyNkZWZpbmUgSV9OQU1FRF9Q
 SVBFICAgIDAwMTAwMDAgLyogbmFtZWQgcGlwZSAoRklGTykgKi8KKyNkZWZpbmUgSV9TRVRfVUlE
 X0JJVCAgIDAwMDQwMDAgLyogc2V0IGVmZmVjdGl2ZSB1aWRfdCBvbiBleGVjICovCisjZGVmaW5l
 IElfU0VUX0dJRF9CSVQgICAwMDAyMDAwIC8qIHNldCBlZmZlY3RpdmUgZ2lkX3Qgb24gZXhlYyAq
 LworI2RlZmluZSBJX1NFVF9TVENLWV9CSVQgMDAwMTAwMCAvKiBzdGlja3kgYml0ICovCisjZGVm
 aW5lIEFMTF9NT0RFUyAgICAgICAwMDA3Nzc3IC8qIGFsbCBiaXRzIGZvciB1c2VyLCBncm91cCBh
 bmQgb3RoZXJzICovCisjZGVmaW5lIFJXWF9NT0RFUyAgICAgICAwMDAwNzc3IC8qIG1vZGUgYml0
 cyBmb3IgUldYIG9ubHkgKi8KKyNkZWZpbmUgUl9CSVQgICAgICAgICAgIDAwMDAwMDQgLyogUnd4
 IHByb3RlY3Rpb24gYml0ICovCisjZGVmaW5lIFdfQklUICAgICAgICAgICAwMDAwMDAyIC8qIHJX
 eCBwcm90ZWN0aW9uIGJpdCAqLworI2RlZmluZSBYX0JJVCAgICAgICAgICAgMDAwMDAwMSAvKiBy
 d1ggcHJvdGVjdGlvbiBiaXQgKi8KKyNkZWZpbmUgSV9OT1RfQUxMT0MgICAgIDAwMDAwMDAgLyog
 dGhpcyBpbm9kZSBpcyBmcmVlICovCisKKyNlbmRpZiAvKiBNSU5JWF9GU18zX0ggKi8KLS0gCjEu
 Ny4zLjQKCg==
 --00235433305a59eca204b5f0459e
 Content-Type: text/x-patch; charset=US-ASCII; 
name="0003-i386-boot2-MINIX-FS-support.patch"
 Content-Disposition: attachment; 
        filename="0003-i386-boot2-MINIX-FS-support.patch"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_gx4oi1v52
 
 RnJvbSA5ZGI1N2EwMzViN2MzYzY0Mzc0NjdiZGFlZTY3Yjc5NWVhZjY4YTUxIE1vbiBTZXAgMTcg
 MDA6MDA6MDAgMjAwMQpGcm9tOiBFdmdlbml5IEl2YW5vdiA8bG9sa2FhbnRpbWF0QGdtYWlsLmNv
 bT4KRGF0ZTogU3VuLCAxOCBEZWMgMjAxMSAxNTo1NDowMyArMDQwMApTdWJqZWN0OiBbUEFUQ0gg
 My80XSBpMzg2IGJvb3QyIE1JTklYIEZTIHN1cHBvcnQuCgpCeSBkZWZhdWx0IE1JTklYIEZTIHN1
 cHBvcnQgaXMgZGlzYWJsZWQuCgpkaWZmIC0tZ2l0IGEvc3lzL2FyY2gvaTM4Ni9zdGFuZC9ib290
 L01ha2VmaWxlLmJvb3QgYi9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jvb3QvTWFrZWZpbGUuYm9vdApp
 bmRleCA3OGI5OTc0Li4xOGIzZWI4IDEwMDY0NAotLS0gYS9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jv
 b3QvTWFrZWZpbGUuYm9vdAorKysgYi9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jvb3QvTWFrZWZpbGUu
 Ym9vdApAQCAtNzAsNiArNzAsNyBAQCBDUFBGTEFHUys9IC1EU1VQUE9SVF9DRDk2NjAKIENQUEZM
 QUdTKz0gLURTVVBQT1JUX1VTVEFSRlMKIENQUEZMQUdTKz0gLURTVVBQT1JUX0RPU0ZTCiBDUFBG
 TEFHUys9IC1EU1VQUE9SVF9FWFQyRlMKKyNDUFBGTEFHUys9IC1EU1VQUE9SVF9NSU5JWEZTMwog
 Q1BQRkxBR1MrPSAtRFBBU1NfQklPU0dFT00KIENQUEZMQUdTKz0gLURQQVNTX01FTU1BUAogI0NQ
 UEZMQUdTKz0gLURCT09UUEFTU1dECmRpZmYgLS1naXQgYS9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jv
 b3QvY29uZi5jIGIvc3lzL2FyY2gvaTM4Ni9zdGFuZC9ib290L2NvbmYuYwppbmRleCBkYjkyYTA4
 Li5mYTQ1YWMyIDEwMDY0NAotLS0gYS9zeXMvYXJjaC9pMzg2L3N0YW5kL2Jvb3QvY29uZi5jCisr
 KyBiL3N5cy9hcmNoL2kzODYvc3RhbmQvYm9vdC9jb25mLmMKQEAgLTM2LDYgKzM2LDkgQEAKICNp
 ZmRlZiBTVVBQT1JUX0VYVDJGUwogI2luY2x1ZGUgPGxpYi9saWJzYS9leHQyZnMuaD4KICNlbmRp
 ZgorI2lmZGVmIFNVUFBPUlRfTUlOSVhGUzMKKyNpbmNsdWRlIDxsaWIvbGlic2EvbWluaXhmczMu
 aD4KKyNlbmRpZgogI2lmZGVmIFNVUFBPUlRfVVNUQVJGUwogI2luY2x1ZGUgPGxpYi9saWJzYS91
 c3RhcmZzLmg+CiAjZW5kaWYKQEAgLTY2LDYgKzY5LDkgQEAgc3RydWN0IGZzX29wcyBmaWxlX3N5
 c3RlbVtdID0gewogI2lmZGVmIFNVUFBPUlRfRVhUMkZTCiAJRlNfT1BTKGV4dDJmcyksCiAjZW5k
 aWYKKyNpZmRlZiBTVVBQT1JUX01JTklYRlMzCisJRlNfT1BTKG1pbml4ZnMzKSwKKyNlbmRpZgog
 I2lmZGVmIFNVUFBPUlRfRE9TRlMKIAlGU19PUFMoZG9zZnMpLAogI2VuZGlmCi0tIAoxLjcuMy40
 Cgo=
 --00235433305a59eca204b5f0459e--
 


Home | Main Index | Thread Index | Old Index