From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KeYWO-0001Oj-VD for qemu-devel@nongnu.org; Sat, 13 Sep 2008 13:02:56 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KeYWM-0001O1-DR for qemu-devel@nongnu.org; Sat, 13 Sep 2008 13:02:55 -0400 Received: from [199.232.76.173] (port=59304 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KeYWM-0001Ni-6q for qemu-devel@nongnu.org; Sat, 13 Sep 2008 13:02:54 -0400 Received: from rv-out-0708.google.com ([209.85.198.241]:54113) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KeYWL-0007gm-3N for qemu-devel@nongnu.org; Sat, 13 Sep 2008 13:02:53 -0400 Received: by rv-out-0708.google.com with SMTP id f25so1304852rvb.22 for ; Sat, 13 Sep 2008 10:02:52 -0700 (PDT) Message-ID: Date: Sat, 13 Sep 2008 20:02:52 +0300 From: "Blue Swirl" Subject: Re: [Qemu-devel] [PATCH][RFC] Fix gcc 4.x warnings (-Wpointer-sign) In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_12421_495333.1221325372137" References: <20080912.145926.10073272.imp@bsdimp.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org ------=_Part_12421_495333.1221325372137 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 9/13/08, Blue Swirl wrote: > On 9/12/08, M. Warner Losh wrote: > > In message: > > "Blue Swirl" writes: > > : GCC 4 enables -Wpointer-sign if -Wall is enabled. This trivial patch > > > > : suppresses the warnings. Comments? Objections? > > > > > > Don't you mean 'fix' the warnings, since this patch looks like it > > tries to cast things to be correct... > > > Well, some parts of the patch actually fix the types so that they are > more consistent, the casts just silence the warnings. A real fix would > be to change the types but then it would be incorrect to change the > signed types just to match the unsigned loadvm/savevm API. > > Now that I think of it, the API could be extended with signed > versions. That would be best in terms of type safety. Maybe I'll try > that approach instead. The first patch adds signed versions. This cleans up some parts because casts are no longer needed. The second patch fixes other warnings by making the types more consistent, like before. ------=_Part_12421_495333.1221325372137 Content-Type: plain/text; name=signed_savevm_api.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fl2hjys9 Content-Disposition: attachment; filename=signed_savevm_api.diff SW5kZXg6IHFlbXUvaHcvaHcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvaHcuaAkyMDA4 LTA5LTEzIDE2OjEwOjI3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9ody5oCTIwMDgtMDkt MTMgMTY6NTI6MTMuMDAwMDAwMDAwICswMDAwCkBAIC0xMCwxNSArMTAsMzEgQEAKIFFFTVVGaWxl ICpxZW11X2ZvcGVuKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICptb2RlKTsKIHZv aWQgcWVtdV9mZmx1c2goUUVNVUZpbGUgKmYpOwogdm9pZCBxZW11X2ZjbG9zZShRRU1VRmlsZSAq Zik7Ci12b2lkIHFlbXVfcHV0X2J1ZmZlcihRRU1VRmlsZSAqZiwgY29uc3QgdWludDhfdCAqYnVm LCBpbnQgc2l6ZSk7Ci12b2lkIHFlbXVfcHV0X2J5dGUoUUVNVUZpbGUgKmYsIGludCB2KTsKLXZv aWQgcWVtdV9wdXRfYmUxNihRRU1VRmlsZSAqZiwgdW5zaWduZWQgaW50IHYpOwotdm9pZCBxZW11 X3B1dF9iZTMyKFFFTVVGaWxlICpmLCB1bnNpZ25lZCBpbnQgdik7Cit2b2lkIHFlbXVfcHV0X2J1 ZmZlcihRRU1VRmlsZSAqZiwgY29uc3QgdWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSk7Cit2b2lk IHFlbXVfcHV0X2J5dGUoUUVNVUZpbGUgKmYsIGludDhfdCB2KTsKKworc3RhdGljIGlubGluZSB2 b2lkIHFlbXVfcHV0X3VieXRlKFFFTVVGaWxlICpmLCB1aW50OF90IHYpCit7CisgICAgcWVtdV9w dXRfYnl0ZShmLCAoaW50OF90KXYpOworfQorCisjZGVmaW5lIHFlbXVfcHV0X3NieXRlIHFlbXVf cHV0X2J5dGUKKwordm9pZCBxZW11X3B1dF9iZTE2KFFFTVVGaWxlICpmLCB1aW50MTZfdCB2KTsK K3ZvaWQgcWVtdV9wdXRfYmUzMihRRU1VRmlsZSAqZiwgdWludDMyX3Qgdik7CiB2b2lkIHFlbXVf cHV0X2JlNjQoUUVNVUZpbGUgKmYsIHVpbnQ2NF90IHYpOwotaW50IHFlbXVfZ2V0X2J1ZmZlcihR RU1VRmlsZSAqZiwgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSk7Ci1pbnQgcWVtdV9nZXRfYnl0ZShR RU1VRmlsZSAqZik7Ci11bnNpZ25lZCBpbnQgcWVtdV9nZXRfYmUxNihRRU1VRmlsZSAqZik7Ci11 bnNpZ25lZCBpbnQgcWVtdV9nZXRfYmUzMihRRU1VRmlsZSAqZik7CitzaXplX3QgcWVtdV9nZXRf YnVmZmVyKFFFTVVGaWxlICpmLCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKTsKK2ludDhfdCBx ZW11X2dldF9ieXRlKFFFTVVGaWxlICpmKTsKKworc3RhdGljIGlubGluZSB1aW50OF90IHFlbXVf Z2V0X3VieXRlKFFFTVVGaWxlICpmKQoreworICAgIHJldHVybiAodWludDhfdClxZW11X2dldF9i eXRlKGYpOworfQorCisjZGVmaW5lIHFlbXVfZ2V0X3NieXRlIHFlbXVfZ2V0X2J5dGUKKwordWlu dDE2X3QgcWVtdV9nZXRfYmUxNihRRU1VRmlsZSAqZik7Cit1aW50MzJfdCBxZW11X2dldF9iZTMy KFFFTVVGaWxlICpmKTsKIHVpbnQ2NF90IHFlbXVfZ2V0X2JlNjQoUUVNVUZpbGUgKmYpOwogCiBz dGF0aWMgaW5saW5lIHZvaWQgcWVtdV9wdXRfYmU2NHMoUUVNVUZpbGUgKmYsIGNvbnN0IHVpbnQ2 NF90ICpwdikKQEAgLTYxLDE3ICs3NywxMDYgQEAKICAgICAqcHYgPSBxZW11X2dldF9ieXRlKGYp OwogfQogCisvLyBTaWduZWQgdmVyc2lvbnMgZm9yIHR5cGUgc2FmZXR5CitzdGF0aWMgaW5saW5l IHZvaWQgcWVtdV9wdXRfc2J1ZmZlcihRRU1VRmlsZSAqZiwgY29uc3QgaW50OF90ICpidWYsIHNp emVfdCBzaXplKQoreworICAgIHFlbXVfcHV0X2J1ZmZlcihmLCAoY29uc3QgdWludDhfdCAqKWJ1 Ziwgc2l6ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBxZW11X3B1dF9zYmUxNihRRU1VRmls ZSAqZiwgaW50MTZfdCB2KQoreworICAgIHFlbXVfcHV0X2JlMTYoZiwgKHVpbnQxNl90KXYpOwor fQorCitzdGF0aWMgaW5saW5lIHZvaWQgcWVtdV9wdXRfc2JlMzIoUUVNVUZpbGUgKmYsIGludDMy X3QgdikKK3sKKyAgICBxZW11X3B1dF9iZTMyKGYsICh1aW50MzJfdCl2KTsKK30KKworc3RhdGlj IGlubGluZSB2b2lkIHFlbXVfcHV0X3NiZTY0KFFFTVVGaWxlICpmLCBpbnQ2NF90IHYpCit7Cisg ICAgcWVtdV9wdXRfYmU2NChmLCAodWludDY0X3Qpdik7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6 ZV90IHFlbXVfZ2V0X3NidWZmZXIoUUVNVUZpbGUgKmYsIGludDhfdCAqYnVmLCBzaXplX3Qgc2l6 ZSkKK3sKKyAgICByZXR1cm4gcWVtdV9nZXRfYnVmZmVyKGYsICh1aW50OF90ICopYnVmLCBzaXpl KTsKK30KKworc3RhdGljIGlubGluZSBpbnQxNl90IHFlbXVfZ2V0X3NiZTE2KFFFTVVGaWxlICpm KQoreworICAgIHJldHVybiAoaW50MTZfdClxZW11X2dldF9iZTE2KGYpOworfQorCitzdGF0aWMg aW5saW5lIGludDMyX3QgcWVtdV9nZXRfc2JlMzIoUUVNVUZpbGUgKmYpCit7CisgICAgcmV0dXJu IChpbnQzMl90KXFlbXVfZ2V0X2JlMzIoZik7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50NjRfdCBx ZW11X2dldF9zYmU2NChRRU1VRmlsZSAqZikKK3sKKyAgICByZXR1cm4gKGludDY0X3QpcWVtdV9n ZXRfYmU2NChmKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHFlbXVfcHV0X3M4cyhRRU1VRmls ZSAqZiwgY29uc3QgaW50OF90ICpwdikKK3sKKyAgICBxZW11X3B1dF84cyhmLCAoY29uc3QgdWlu dDhfdCAqKXB2KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHFlbXVfcHV0X3NiZTE2cyhRRU1V RmlsZSAqZiwgY29uc3QgaW50MTZfdCAqcHYpCit7CisgICAgcWVtdV9wdXRfYmUxNnMoZiwgKGNv bnN0IHVpbnQxNl90ICopcHYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcWVtdV9wdXRfc2Jl MzJzKFFFTVVGaWxlICpmLCBjb25zdCBpbnQzMl90ICpwdikKK3sKKyAgICBxZW11X3B1dF9iZTMy cyhmLCAoY29uc3QgdWludDMyX3QgKilwdik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBxZW11 X3B1dF9zYmU2NHMoUUVNVUZpbGUgKmYsIGNvbnN0IGludDY0X3QgKnB2KQoreworICAgIHFlbXVf cHV0X2JlNjRzKGYsIChjb25zdCB1aW50NjRfdCAqKXB2KTsKK30KKworc3RhdGljIGlubGluZSB2 b2lkIHFlbXVfZ2V0X3M4cyhRRU1VRmlsZSAqZiwgaW50OF90ICpwdikKK3sKKyAgICBxZW11X2dl dF84cyhmLCAodWludDhfdCAqKXB2KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHFlbXVfZ2V0 X3NiZTE2cyhRRU1VRmlsZSAqZiwgaW50MTZfdCAqcHYpCit7CisgICAgcWVtdV9nZXRfYmUxNnMo ZiwgKHVpbnQxNl90ICopcHYpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcWVtdV9nZXRfc2Jl MzJzKFFFTVVGaWxlICpmLCBpbnQzMl90ICpwdikKK3sKKyAgICBxZW11X2dldF9iZTMycyhmLCAo dWludDMyX3QgKilwdik7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBxZW11X2dldF9zYmU2NHMo UUVNVUZpbGUgKmYsIGludDY0X3QgKnB2KQoreworICAgIHFlbXVfZ2V0X2JlNjRzKGYsICh1aW50 NjRfdCAqKXB2KTsKK30KKwogI2lmZGVmIE5FRURfQ1BVX0gKICNpZiBUQVJHRVRfTE9OR19CSVRT ID09IDY0CiAjZGVmaW5lIHFlbXVfcHV0X2JldGwgcWVtdV9wdXRfYmU2NAogI2RlZmluZSBxZW11 X2dldF9iZXRsIHFlbXVfZ2V0X2JlNjQKICNkZWZpbmUgcWVtdV9wdXRfYmV0bHMgcWVtdV9wdXRf YmU2NHMKICNkZWZpbmUgcWVtdV9nZXRfYmV0bHMgcWVtdV9nZXRfYmU2NHMKKyNkZWZpbmUgcWVt dV9wdXRfc2JldGwgcWVtdV9wdXRfc2JlNjQKKyNkZWZpbmUgcWVtdV9nZXRfc2JldGwgcWVtdV9n ZXRfc2JlNjQKKyNkZWZpbmUgcWVtdV9wdXRfc2JldGxzIHFlbXVfcHV0X3NiZTY0cworI2RlZmlu ZSBxZW11X2dldF9zYmV0bHMgcWVtdV9nZXRfc2JlNjRzCiAjZWxzZQogI2RlZmluZSBxZW11X3B1 dF9iZXRsIHFlbXVfcHV0X2JlMzIKICNkZWZpbmUgcWVtdV9nZXRfYmV0bCBxZW11X2dldF9iZTMy CiAjZGVmaW5lIHFlbXVfcHV0X2JldGxzIHFlbXVfcHV0X2JlMzJzCiAjZGVmaW5lIHFlbXVfZ2V0 X2JldGxzIHFlbXVfZ2V0X2JlMzJzCisjZGVmaW5lIHFlbXVfcHV0X3NiZXRsIHFlbXVfcHV0X3Ni ZTMyCisjZGVmaW5lIHFlbXVfZ2V0X3NiZXRsIHFlbXVfZ2V0X3NiZTMyCisjZGVmaW5lIHFlbXVf cHV0X3NiZXRscyBxZW11X3B1dF9zYmUzMnMKKyNkZWZpbmUgcWVtdV9nZXRfc2JldGxzIHFlbXVf Z2V0X3NiZTMycwogI2VuZGlmCiAjZW5kaWYKIApJbmRleDogcWVtdS9ody9lc3AuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBxZW11Lm9yaWcvaHcvZXNwLmMJMjAwOC0wOS0xMyAxNjoxMDoyNy4wMDAwMDAwMDAg KzAwMDAKKysrIHFlbXUvaHcvZXNwLmMJMjAwOC0wOS0xMyAxNjo1MjoxMy4wMDAwMDAwMDAgKzAw MDAKQEAgLTU3OCw3ICs1NzgsNyBAQAogCiAgICAgcWVtdV9wdXRfYnVmZmVyKGYsIHMtPnJyZWdz LCBFU1BfUkVHUyk7CiAgICAgcWVtdV9wdXRfYnVmZmVyKGYsIHMtPndyZWdzLCBFU1BfUkVHUyk7 Ci0gICAgcWVtdV9wdXRfYmUzMnMoZiwgKHVpbnQzMl90ICopJnMtPnRpX3NpemUpOworICAgIHFl bXVfcHV0X3NiZTMycyhmLCAmcy0+dGlfc2l6ZSk7CiAgICAgcWVtdV9wdXRfYmUzMnMoZiwgJnMt PnRpX3JwdHIpOwogICAgIHFlbXVfcHV0X2JlMzJzKGYsICZzLT50aV93cHRyKTsKICAgICBxZW11 X3B1dF9idWZmZXIoZiwgcy0+dGlfYnVmLCBUSV9CVUZTWik7CkBAIC02MDAsNyArNjAwLDcgQEAK IAogICAgIHFlbXVfZ2V0X2J1ZmZlcihmLCBzLT5ycmVncywgRVNQX1JFR1MpOwogICAgIHFlbXVf Z2V0X2J1ZmZlcihmLCBzLT53cmVncywgRVNQX1JFR1MpOwotICAgIHFlbXVfZ2V0X2JlMzJzKGYs ICh1aW50MzJfdCAqKSZzLT50aV9zaXplKTsKKyAgICBxZW11X2dldF9zYmUzMnMoZiwgJnMtPnRp X3NpemUpOwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZzLT50aV9ycHRyKTsKICAgICBxZW11X2dl dF9iZTMycyhmLCAmcy0+dGlfd3B0cik7CiAgICAgcWVtdV9nZXRfYnVmZmVyKGYsIHMtPnRpX2J1 ZiwgVElfQlVGU1opOwpJbmRleDogcWVtdS9ody9wY25ldC5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUu b3JpZy9ody9wY25ldC5jCTIwMDgtMDktMTMgMTY6MTA6MjcuMDAwMDAwMDAwICswMDAwCisrKyBx ZW11L2h3L3BjbmV0LmMJMjAwOC0wOS0xMyAxNjo1MjoxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTE4 NzcsOSArMTg3Nyw5IEBACiAgICAgaWYgKHMtPnBjaV9kZXYpCiAgICAgICAgIHBjaV9kZXZpY2Vf c2F2ZShzLT5wY2lfZGV2LCBmKTsKIAotICAgIHFlbXVfcHV0X2JlMzIoZiwgcy0+cmFwKTsKLSAg ICBxZW11X3B1dF9iZTMyKGYsIHMtPmlzcik7Ci0gICAgcWVtdV9wdXRfYmUzMihmLCBzLT5sbmtz dCk7CisgICAgcWVtdV9wdXRfc2JlMzIoZiwgcy0+cmFwKTsKKyAgICBxZW11X3B1dF9zYmUzMihm LCBzLT5pc3IpOworICAgIHFlbXVfcHV0X3NiZTMyKGYsIHMtPmxua3N0KTsKICAgICBxZW11X3B1 dF9iZTMycyhmLCAmcy0+cmRyYSk7CiAgICAgcWVtdV9wdXRfYmUzMnMoZiwgJnMtPnRkcmEpOwog ICAgIHFlbXVfcHV0X2J1ZmZlcihmLCBzLT5wcm9tLCAxNik7CkBAIC0xODg4LDEwICsxODg4LDEw IEBACiAgICAgZm9yIChpID0gMDsgaSA8IDMyOyBpKyspCiAgICAgICAgIHFlbXVfcHV0X2JlMTZz KGYsICZzLT5iY3JbaV0pOwogICAgIHFlbXVfcHV0X2JlNjRzKGYsICZzLT50aW1lcik7Ci0gICAg cWVtdV9wdXRfYmUzMihmLCBzLT54bWl0X3Bvcyk7Ci0gICAgcWVtdV9wdXRfYmUzMihmLCBzLT5y ZWN2X3Bvcyk7CisgICAgcWVtdV9wdXRfc2JlMzIoZiwgcy0+eG1pdF9wb3MpOworICAgIHFlbXVf cHV0X3NiZTMyKGYsIHMtPnJlY3ZfcG9zKTsKICAgICBxZW11X3B1dF9idWZmZXIoZiwgcy0+YnVm ZmVyLCA0MDk2KTsKLSAgICBxZW11X3B1dF9iZTMyKGYsIHMtPnR4X2J1c3kpOworICAgIHFlbXVf cHV0X3NiZTMyKGYsIHMtPnR4X2J1c3kpOwogICAgIHFlbXVfcHV0X3RpbWVyKGYsIHMtPnBvbGxf dGltZXIpOwogfQogCkBAIC0xOTA5LDkgKzE5MDksOSBAQAogICAgICAgICAgICAgcmV0dXJuIHJl dDsKICAgICB9CiAKLSAgICBxZW11X2dldF9iZTMycyhmLCAodWludDMyX3QqKSZzLT5yYXApOwot ICAgIHFlbXVfZ2V0X2JlMzJzKGYsICh1aW50MzJfdCopJnMtPmlzcik7Ci0gICAgcWVtdV9nZXRf YmUzMnMoZiwgKHVpbnQzMl90Kikmcy0+bG5rc3QpOworICAgIHFlbXVfZ2V0X3NiZTMycyhmLCAm cy0+cmFwKTsKKyAgICBxZW11X2dldF9zYmUzMnMoZiwgJnMtPmlzcik7CisgICAgcWVtdV9nZXRf c2JlMzJzKGYsICZzLT5sbmtzdCk7CiAgICAgcWVtdV9nZXRfYmUzMnMoZiwgJnMtPnJkcmEpOwog ICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZzLT50ZHJhKTsKICAgICBxZW11X2dldF9idWZmZXIoZiwg cy0+cHJvbSwgMTYpOwpAQCAtMTkyMCwxMCArMTkyMCwxMCBAQAogICAgIGZvciAoaSA9IDA7IGkg PCAzMjsgaSsrKQogICAgICAgICBxZW11X2dldF9iZTE2cyhmLCAmcy0+YmNyW2ldKTsKICAgICBx ZW11X2dldF9iZTY0cyhmLCAmcy0+dGltZXIpOwotICAgIHFlbXVfZ2V0X2JlMzJzKGYsICh1aW50 MzJfdCopJnMtPnhtaXRfcG9zKTsKLSAgICBxZW11X2dldF9iZTMycyhmLCAodWludDMyX3QqKSZz LT5yZWN2X3Bvcyk7CisgICAgcWVtdV9nZXRfc2JlMzJzKGYsICZzLT54bWl0X3Bvcyk7CisgICAg cWVtdV9nZXRfc2JlMzJzKGYsICZzLT5yZWN2X3Bvcyk7CiAgICAgcWVtdV9nZXRfYnVmZmVyKGYs IHMtPmJ1ZmZlciwgNDA5Nik7Ci0gICAgcWVtdV9nZXRfYmUzMnMoZiwgKHVpbnQzMl90Kikmcy0+ dHhfYnVzeSk7CisgICAgcWVtdV9nZXRfc2JlMzJzKGYsICZzLT50eF9idXN5KTsKICAgICBxZW11 X2dldF90aW1lcihmLCBzLT5wb2xsX3RpbWVyKTsKIAogICAgIHJldHVybiAwOwpJbmRleDogcWVt dS9ody9weGEyeHguYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvcHhhMnh4LmMJMjAwOC0w OS0xMyAxNjoxMDoyNy4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcHhhMnh4LmMJMjAwOC0w OS0xMyAxNjo1MjoxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTEyMzMsOSArMTIzMyw5IEBACiAgICAg cWVtdV9wdXRfYmUzMnMoZiwgJnMtPmxhc3Rfcnljcik7CiAgICAgcWVtdV9wdXRfYmUzMnMoZiwg JnMtPmxhc3Rfc3djcik7CiAgICAgcWVtdV9wdXRfYmUzMnMoZiwgJnMtPmxhc3RfcnRjcGljcik7 Ci0gICAgcWVtdV9wdXRfYmU2NHMoZiwgKHVpbnQ2NF90ICopICZzLT5sYXN0X2h6KTsKLSAgICBx ZW11X3B1dF9iZTY0cyhmLCAodWludDY0X3QgKikgJnMtPmxhc3Rfc3cpOwotICAgIHFlbXVfcHV0 X2JlNjRzKGYsICh1aW50NjRfdCAqKSAmcy0+bGFzdF9waSk7CisgICAgcWVtdV9wdXRfc2JlNjRz KGYsICZzLT5sYXN0X2h6KTsKKyAgICBxZW11X3B1dF9zYmU2NHMoZiwgJnMtPmxhc3Rfc3cpOwor ICAgIHFlbXVfcHV0X3NiZTY0cyhmLCAmcy0+bGFzdF9waSk7CiB9CiAKIHN0YXRpYyBpbnQgcHhh Mnh4X3J0Y19sb2FkKFFFTVVGaWxlICpmLCB2b2lkICpvcGFxdWUsIGludCB2ZXJzaW9uX2lkKQpA QCAtMTI1Nyw5ICsxMjU3LDkgQEAKICAgICBxZW11X2dldF9iZTMycyhmLCAmcy0+bGFzdF9yeWNy KTsKICAgICBxZW11X2dldF9iZTMycyhmLCAmcy0+bGFzdF9zd2NyKTsKICAgICBxZW11X2dldF9i ZTMycyhmLCAmcy0+bGFzdF9ydGNwaWNyKTsKLSAgICBxZW11X2dldF9iZTY0cyhmLCAodWludDY0 X3QgKikgJnMtPmxhc3RfaHopOwotICAgIHFlbXVfZ2V0X2JlNjRzKGYsICh1aW50NjRfdCAqKSAm cy0+bGFzdF9zdyk7Ci0gICAgcWVtdV9nZXRfYmU2NHMoZiwgKHVpbnQ2NF90ICopICZzLT5sYXN0 X3BpKTsKKyAgICBxZW11X2dldF9zYmU2NHMoZiwgJnMtPmxhc3RfaHopOworICAgIHFlbXVfZ2V0 X3NiZTY0cyhmLCAmcy0+bGFzdF9zdyk7CisgICAgcWVtdV9nZXRfc2JlNjRzKGYsICZzLT5sYXN0 X3BpKTsKIAogICAgIHB4YTJ4eF9ydGNfYWxhcm1fdXBkYXRlKHMsIHMtPnJ0c3IpOwogCkluZGV4 OiBxZW11L2h3L3B4YTJ4eF90aW1lci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9weGEy eHhfdGltZXIuYwkyMDA4LTA5LTEzIDE2OjEwOjI3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9o dy9weGEyeHhfdGltZXIuYwkyMDA4LTA5LTEzIDE2OjUyOjEzLjAwMDAwMDAwMCArMDAwMApAQCAt Mzg0LDggKzM4NCw4IEBACiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA4OyBpICsrKSB7CiAgICAg ICAgICAgICBxZW11X3B1dF9iZTMycyhmLCAmcy0+dG00W2ldLnRtLnZhbHVlKTsKICAgICAgICAg ICAgIHFlbXVfcHV0X2JlMzIoZiwgcy0+dG00W2ldLnRtLmxldmVsKTsKLSAgICAgICAgICAgIHFl bXVfcHV0X2JlMzJzKGYsICh1aW50MzJfdCAqKSAmcy0+dG00W2ldLm9sZGNsb2NrKTsKLSAgICAg ICAgICAgIHFlbXVfcHV0X2JlMzJzKGYsICh1aW50MzJfdCAqKSAmcy0+dG00W2ldLmNsb2NrKTsK KyAgICAgICAgICAgIHFlbXVfcHV0X3NiZTMycyhmLCAmcy0+dG00W2ldLm9sZGNsb2NrKTsKKyAg ICAgICAgICAgIHFlbXVfcHV0X3NiZTMycyhmLCAmcy0+dG00W2ldLmNsb2NrKTsKICAgICAgICAg ICAgIHFlbXVfcHV0X2JlNjRzKGYsICZzLT50bTRbaV0ubGFzdGxvYWQpOwogICAgICAgICAgICAg cWVtdV9wdXRfYmUzMnMoZiwgJnMtPnRtNFtpXS5mcmVxKTsKICAgICAgICAgICAgIHFlbXVfcHV0 X2JlMzJzKGYsICZzLT50bTRbaV0uY29udHJvbCk7CkBAIC00MTgsOCArNDE4LDggQEAKICAgICAg ICAgZm9yIChpID0gMDsgaSA8IDg7IGkgKyspIHsKICAgICAgICAgICAgIHFlbXVfZ2V0X2JlMzJz KGYsICZzLT50bTRbaV0udG0udmFsdWUpOwogICAgICAgICAgICAgcy0+dG00W2ldLnRtLmxldmVs ID0gcWVtdV9nZXRfYmUzMihmKTsKLSAgICAgICAgICAgIHFlbXVfZ2V0X2JlMzJzKGYsICh1aW50 MzJfdCAqKSAmcy0+dG00W2ldLm9sZGNsb2NrKTsKLSAgICAgICAgICAgIHFlbXVfZ2V0X2JlMzJz KGYsICh1aW50MzJfdCAqKSAmcy0+dG00W2ldLmNsb2NrKTsKKyAgICAgICAgICAgIHFlbXVfZ2V0 X3NiZTMycyhmLCAmcy0+dG00W2ldLm9sZGNsb2NrKTsKKyAgICAgICAgICAgIHFlbXVfZ2V0X3Ni ZTMycyhmLCAmcy0+dG00W2ldLmNsb2NrKTsKICAgICAgICAgICAgIHFlbXVfZ2V0X2JlNjRzKGYs ICZzLT50bTRbaV0ubGFzdGxvYWQpOwogICAgICAgICAgICAgcWVtdV9nZXRfYmUzMnMoZiwgJnMt PnRtNFtpXS5mcmVxKTsKICAgICAgICAgICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZzLT50bTRbaV0u Y29udHJvbCk7CkluZGV4OiBxZW11L2h3L3RjeC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9o dy90Y3guYwkyMDA4LTA5LTEzIDE2OjEwOjI3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody90 Y3guYwkyMDA4LTA5LTEzIDE2OjUyOjEzLjAwMDAwMDAwMCArMDAwMApAQCAtMzcyLDkgKzM3Miw5 IEBACiB7CiAgICAgVENYU3RhdGUgKnMgPSBvcGFxdWU7CiAKLSAgICBxZW11X3B1dF9iZTE2cyhm LCAodWludDE2X3QgKikmcy0+aGVpZ2h0KTsKLSAgICBxZW11X3B1dF9iZTE2cyhmLCAodWludDE2 X3QgKikmcy0+d2lkdGgpOwotICAgIHFlbXVfcHV0X2JlMTZzKGYsICh1aW50MTZfdCAqKSZzLT5k ZXB0aCk7CisgICAgcWVtdV9wdXRfYmUxNnMoZiwgJnMtPmhlaWdodCk7CisgICAgcWVtdV9wdXRf YmUxNnMoZiwgJnMtPndpZHRoKTsKKyAgICBxZW11X3B1dF9iZTE2cyhmLCAmcy0+ZGVwdGgpOwog ICAgIHFlbXVfcHV0X2J1ZmZlcihmLCBzLT5yLCAyNTYpOwogICAgIHFlbXVfcHV0X2J1ZmZlcihm LCBzLT5nLCAyNTYpOwogICAgIHFlbXVfcHV0X2J1ZmZlcihmLCBzLT5iLCAyNTYpOwpAQCAtMzkx LDEzICszOTEsMTMgQEAKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICBpZiAodmVyc2lv bl9pZCA9PSAzKSB7Ci0gICAgICAgIHFlbXVfZ2V0X2JlMzJzKGYsICh1aW50MzJfdCAqKSZkdW1t eSk7Ci0gICAgICAgIHFlbXVfZ2V0X2JlMzJzKGYsICh1aW50MzJfdCAqKSZkdW1teSk7Ci0gICAg ICAgIHFlbXVfZ2V0X2JlMzJzKGYsICh1aW50MzJfdCAqKSZkdW1teSk7CisgICAgICAgIHFlbXVf Z2V0X2JlMzJzKGYsICZkdW1teSk7CisgICAgICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZkdW1teSk7 CisgICAgICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZkdW1teSk7CiAgICAgfQotICAgIHFlbXVfZ2V0 X2JlMTZzKGYsICh1aW50MTZfdCAqKSZzLT5oZWlnaHQpOwotICAgIHFlbXVfZ2V0X2JlMTZzKGYs ICh1aW50MTZfdCAqKSZzLT53aWR0aCk7Ci0gICAgcWVtdV9nZXRfYmUxNnMoZiwgKHVpbnQxNl90 ICopJnMtPmRlcHRoKTsKKyAgICBxZW11X2dldF9iZTE2cyhmLCAmcy0+aGVpZ2h0KTsKKyAgICBx ZW11X2dldF9iZTE2cyhmLCAmcy0+d2lkdGgpOworICAgIHFlbXVfZ2V0X2JlMTZzKGYsICZzLT5k ZXB0aCk7CiAgICAgcWVtdV9nZXRfYnVmZmVyKGYsIHMtPnIsIDI1Nik7CiAgICAgcWVtdV9nZXRf YnVmZmVyKGYsIHMtPmcsIDI1Nik7CiAgICAgcWVtdV9nZXRfYnVmZmVyKGYsIHMtPmIsIDI1Nik7 CkluZGV4OiBxZW11L2h3L3RtcDEwNS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody90bXAx MDUuYwkyMDA4LTA5LTEzIDE2OjEwOjI3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody90bXAx MDUuYwkyMDA4LTA5LTEzIDE2OjUyOjEzLjAwMDAwMDAwMCArMDAwMApAQCAtMTg1LDkgKzE4NSw5 IEBACiAKICAgICBxZW11X3B1dF84cyhmLCAmcy0+cG9pbnRlcik7CiAgICAgcWVtdV9wdXRfOHMo ZiwgJnMtPmNvbmZpZyk7Ci0gICAgcWVtdV9wdXRfYmUxNnMoZiwgKHVpbnQxNl90ICopICZzLT50 ZW1wZXJhdHVyZSk7Ci0gICAgcWVtdV9wdXRfYmUxNnMoZiwgKHVpbnQxNl90ICopICZzLT5saW1p dFswXSk7Ci0gICAgcWVtdV9wdXRfYmUxNnMoZiwgKHVpbnQxNl90ICopICZzLT5saW1pdFsxXSk7 CisgICAgcWVtdV9wdXRfc2JlMTZzKGYsICZzLT50ZW1wZXJhdHVyZSk7CisgICAgcWVtdV9wdXRf c2JlMTZzKGYsICZzLT5saW1pdFswXSk7CisgICAgcWVtdV9wdXRfc2JlMTZzKGYsICZzLT5saW1p dFsxXSk7CiAgICAgcWVtdV9wdXRfYnl0ZShmLCBzLT5hbGFybSk7CiAgICAgcy0+ZmF1bHRzID0g dG1wMTA1X2ZhdWx0cVsocy0+Y29uZmlnID4+IDMpICYgM107CQkvKiBGICovCiAKQEAgLTIwNCw5 ICsyMDQsOSBAQAogCiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnBvaW50ZXIpOwogICAgIHFlbXVf Z2V0XzhzKGYsICZzLT5jb25maWcpOwotICAgIHFlbXVfZ2V0X2JlMTZzKGYsICh1aW50MTZfdCAq KSAmcy0+dGVtcGVyYXR1cmUpOwotICAgIHFlbXVfZ2V0X2JlMTZzKGYsICh1aW50MTZfdCAqKSAm cy0+bGltaXRbMF0pOwotICAgIHFlbXVfZ2V0X2JlMTZzKGYsICh1aW50MTZfdCAqKSAmcy0+bGlt aXRbMV0pOworICAgIHFlbXVfZ2V0X3NiZTE2cyhmLCAmcy0+dGVtcGVyYXR1cmUpOworICAgIHFl bXVfZ2V0X3NiZTE2cyhmLCAmcy0+bGltaXRbMF0pOworICAgIHFlbXVfZ2V0X3NiZTE2cyhmLCAm cy0+bGltaXRbMV0pOwogICAgIHMtPmFsYXJtID0gcWVtdV9nZXRfYnl0ZShmKTsKIAogICAgIHRt cDEwNV9pbnRlcnJ1cHRfdXBkYXRlKHMpOwpJbmRleDogcWVtdS9ody90c2MyMTB4LmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL2h3L3RzYzIxMHguYwkyMDA4LTA5LTEzIDE2OjEwOjI3LjAwMDAw MDAwMCArMDAwMAorKysgcWVtdS9ody90c2MyMTB4LmMJMjAwOC0wOS0xMyAxNjo1MjoxMy4wMDAw MDAwMDAgKzAwMDAKQEAgLTEwNDYsOCArMTA0Niw4IEBACiAgICAgcWVtdV9wdXRfYmUxNnMoZiwg JnMtPnBsbFswXSk7CiAgICAgcWVtdV9wdXRfYmUxNnMoZiwgJnMtPnBsbFsxXSk7CiAgICAgcWVt dV9wdXRfYmUxNnMoZiwgJnMtPnZvbHVtZSk7Ci0gICAgcWVtdV9wdXRfYmU2NChmLCAodWludDY0 X3QpIChzLT52b2x1bWVfY2hhbmdlIC0gbm93KSk7Ci0gICAgcWVtdV9wdXRfYmU2NChmLCAodWlu dDY0X3QpIChzLT5wb3dlcmRvd24gLSBub3cpKTsKKyAgICBxZW11X3B1dF9zYmU2NChmLCAocy0+ dm9sdW1lX2NoYW5nZSAtIG5vdykpOworICAgIHFlbXVfcHV0X3NiZTY0KGYsIChzLT5wb3dlcmRv d24gLSBub3cpKTsKICAgICBxZW11X3B1dF9ieXRlKGYsIHMtPnNvZnRzdGVwKTsKICAgICBxZW11 X3B1dF9iZTE2cyhmLCAmcy0+ZGFjX3Bvd2VyKTsKIApAQCAtMTA5Miw4ICsxMDkyLDggQEAKICAg ICBxZW11X2dldF9iZTE2cyhmLCAmcy0+cGxsWzBdKTsKICAgICBxZW11X2dldF9iZTE2cyhmLCAm cy0+cGxsWzFdKTsKICAgICBxZW11X2dldF9iZTE2cyhmLCAmcy0+dm9sdW1lKTsKLSAgICBzLT52 b2x1bWVfY2hhbmdlID0gKGludDY0X3QpIHFlbXVfZ2V0X2JlNjQoZikgKyBub3c7Ci0gICAgcy0+ cG93ZXJkb3duID0gKGludDY0X3QpIHFlbXVfZ2V0X2JlNjQoZikgKyBub3c7CisgICAgcy0+dm9s dW1lX2NoYW5nZSA9IHFlbXVfZ2V0X3NiZTY0KGYpICsgbm93OworICAgIHMtPnBvd2VyZG93biA9 IHFlbXVfZ2V0X3NiZTY0KGYpICsgbm93OwogICAgIHMtPnNvZnRzdGVwID0gcWVtdV9nZXRfYnl0 ZShmKTsKICAgICBxZW11X2dldF9iZTE2cyhmLCAmcy0+ZGFjX3Bvd2VyKTsKIApJbmRleDogcWVt dS92bC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy92bC5jCTIwMDgtMDktMTMgMTY6MTA6MjYu MDAwMDAwMDAwICswMDAwCisrKyBxZW11L3ZsLmMJMjAwOC0wOS0xMyAxNjo1MjoxMy4wMDAwMDAw MDAgKzAwMDAKQEAgLTYyNTgsOSArNjI1OCw5IEBACiAgICAgcWVtdV9mcmVlKGYpOwogfQogCi12 b2lkIHFlbXVfcHV0X2J1ZmZlcihRRU1VRmlsZSAqZiwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQg c2l6ZSkKK3ZvaWQgcWVtdV9wdXRfYnVmZmVyKFFFTVVGaWxlICpmLCBjb25zdCB1aW50OF90ICpi dWYsIHNpemVfdCBzaXplKQogewotICAgIGludCBsOworICAgIHNpemVfdCBsOwogICAgIHdoaWxl IChzaXplID4gMCkgewogICAgICAgICBsID0gSU9fQlVGX1NJWkUgLSBmLT5idWZfaW5kZXg7CiAg ICAgICAgIGlmIChsID4gc2l6ZSkKQEAgLTYyNzQsMTYgKzYyNzQsMTYgQEAKICAgICB9CiB9CiAK LXZvaWQgcWVtdV9wdXRfYnl0ZShRRU1VRmlsZSAqZiwgaW50IHYpCit2b2lkIHFlbXVfcHV0X2J5 dGUoUUVNVUZpbGUgKmYsIGludDhfdCB2KQogewogICAgIGYtPmJ1ZltmLT5idWZfaW5kZXgrK10g PSB2OwogICAgIGlmIChmLT5idWZfaW5kZXggPj0gSU9fQlVGX1NJWkUpCiAgICAgICAgIHFlbXVf ZmZsdXNoKGYpOwogfQogCi1pbnQgcWVtdV9nZXRfYnVmZmVyKFFFTVVGaWxlICpmLCB1aW50OF90 ICpidWYsIGludCBzaXplMSkKK3NpemVfdCBxZW11X2dldF9idWZmZXIoUUVNVUZpbGUgKmYsIHVp bnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUxKQogewotICAgIGludCBzaXplLCBsOworICAgIHNpemVf dCBzaXplLCBsOwogCiAgICAgc2l6ZSA9IHNpemUxOwogICAgIHdoaWxlIChzaXplID4gMCkgewpA QCAtNjMwNCw3ICs2MzA0LDcgQEAKICAgICByZXR1cm4gc2l6ZTEgLSBzaXplOwogfQogCi1pbnQg cWVtdV9nZXRfYnl0ZShRRU1VRmlsZSAqZikKK2ludDhfdCBxZW11X2dldF9ieXRlKFFFTVVGaWxl ICpmKQogewogICAgIGlmIChmLT5idWZfaW5kZXggPj0gZi0+YnVmX3NpemUpIHsKICAgICAgICAg cWVtdV9maWxsX2J1ZmZlcihmKTsKQEAgLTYzNDAsMTMgKzYzNDAsMTMgQEAKICAgICByZXR1cm4g cG9zOwogfQogCi12b2lkIHFlbXVfcHV0X2JlMTYoUUVNVUZpbGUgKmYsIHVuc2lnbmVkIGludCB2 KQordm9pZCBxZW11X3B1dF9iZTE2KFFFTVVGaWxlICpmLCB1aW50MTZfdCB2KQogewogICAgIHFl bXVfcHV0X2J5dGUoZiwgdiA+PiA4KTsKICAgICBxZW11X3B1dF9ieXRlKGYsIHYpOwogfQogCi12 b2lkIHFlbXVfcHV0X2JlMzIoUUVNVUZpbGUgKmYsIHVuc2lnbmVkIGludCB2KQordm9pZCBxZW11 X3B1dF9iZTMyKFFFTVVGaWxlICpmLCB1aW50MzJfdCB2KQogewogICAgIHFlbXVfcHV0X2J5dGUo ZiwgdiA+PiAyNCk7CiAgICAgcWVtdV9wdXRfYnl0ZShmLCB2ID4+IDE2KTsKQEAgLTYzNjAsMTcg KzYzNjAsMTcgQEAKICAgICBxZW11X3B1dF9iZTMyKGYsIHYpOwogfQogCi11bnNpZ25lZCBpbnQg cWVtdV9nZXRfYmUxNihRRU1VRmlsZSAqZikKK3VpbnQxNl90IHFlbXVfZ2V0X2JlMTYoUUVNVUZp bGUgKmYpCiB7Ci0gICAgdW5zaWduZWQgaW50IHY7CisgICAgdWludDE2X3QgdjsKICAgICB2ID0g cWVtdV9nZXRfYnl0ZShmKSA8PCA4OwogICAgIHYgfD0gcWVtdV9nZXRfYnl0ZShmKTsKICAgICBy ZXR1cm4gdjsKIH0KIAotdW5zaWduZWQgaW50IHFlbXVfZ2V0X2JlMzIoUUVNVUZpbGUgKmYpCit1 aW50MzJfdCBxZW11X2dldF9iZTMyKFFFTVVGaWxlICpmKQogewotICAgIHVuc2lnbmVkIGludCB2 OworICAgIHVpbnQzMl90IHY7CiAgICAgdiA9IHFlbXVfZ2V0X2J5dGUoZikgPDwgMjQ7CiAgICAg diB8PSBxZW11X2dldF9ieXRlKGYpIDw8IDE2OwogICAgIHYgfD0gcWVtdV9nZXRfYnl0ZShmKSA8 PCA4OwpJbmRleDogcWVtdS9ody9lMTAwMC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9l MTAwMC5jCTIwMDgtMDktMTMgMTY6MTA6MjcuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L2Ux MDAwLmMJMjAwOC0wOS0xMyAxNjo1MjoxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTEwMiw4ICsxMDIs OCBAQAogICAgICAgICB1aW50MzJfdCBwYXlsZW47CiAgICAgICAgIHVpbnQxNl90IHRzb19mcmFt ZXM7CiAgICAgICAgIGNoYXIgdHNlOwotICAgICAgICBjaGFyIGlwOwotICAgICAgICBjaGFyIHRj cDsKKyAgICAgICAgaW50OF90IGlwOworICAgICAgICBpbnQ4X3QgdGNwOwogICAgICAgICBjaGFy IGNwdHNlOyAgICAgLy8gY3VycmVudCBwYWNrZXQgdHNlIGJpdAogICAgIH0gdHg7CiAKQEAgLTgy NCw4ICs4MjQsOCBAQAogICAgIHFlbXVfcHV0X2JlMTZzKGYsICZzLT50eC5zaXplKTsKICAgICBx ZW11X3B1dF9iZTE2cyhmLCAmcy0+dHgudHNvX2ZyYW1lcyk7CiAgICAgcWVtdV9wdXRfOHMoZiwg JnMtPnR4LnN1bV9uZWVkZWQpOwotICAgIHFlbXVfcHV0XzhzKGYsICZzLT50eC5pcCk7Ci0gICAg cWVtdV9wdXRfOHMoZiwgJnMtPnR4LnRjcCk7CisgICAgcWVtdV9wdXRfczhzKGYsICZzLT50eC5p cCk7CisgICAgcWVtdV9wdXRfczhzKGYsICZzLT50eC50Y3ApOwogICAgIHFlbXVfcHV0X2J1ZmZl cihmLCBzLT50eC5oZWFkZXIsIHNpemVvZiBzLT50eC5oZWFkZXIpOwogICAgIHFlbXVfcHV0X2J1 ZmZlcihmLCBzLT50eC5kYXRhLCBzaXplb2Ygcy0+dHguZGF0YSk7CiAgICAgZm9yIChpID0gMDsg aSA8IDY0OyBpKyspCkBAIC04NDksNyArODQ5LDcgQEAKICAgICBpZiAoKHJldCA9IHBjaV9kZXZp Y2VfbG9hZCgmcy0+ZGV2LCBmKSkgPCAwKQogICAgICAgICByZXR1cm4gcmV0OwogICAgIGlmICh2 ZXJzaW9uX2lkID09IDEpCi0gICAgICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZpKTsgLyogb25jZSBz b21lIHVudXNlZCBpbnN0YW5jZSBpZCAqLworICAgICAgICBxZW11X2dldF9zYmUzMnMoZiwgJmkp OyAvKiBvbmNlIHNvbWUgdW51c2VkIGluc3RhbmNlIGlkICovCiAgICAgcWVtdV9nZXRfYmUzMnMo ZiwgJnMtPm1taW9fYmFzZSk7CiAgICAgcWVtdV9nZXRfYmUzMnMoZiwgJnMtPnJ4YnVmX3NpemUp OwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZzLT5yeGJ1Zl9taW5fc2hpZnQpOwpAQCAtODcwLDgg Kzg3MCw4IEBACiAgICAgcWVtdV9nZXRfYmUxNnMoZiwgJnMtPnR4LnNpemUpOwogICAgIHFlbXVf Z2V0X2JlMTZzKGYsICZzLT50eC50c29fZnJhbWVzKTsKICAgICBxZW11X2dldF84cyhmLCAmcy0+ dHguc3VtX25lZWRlZCk7Ci0gICAgcWVtdV9nZXRfOHMoZiwgJnMtPnR4LmlwKTsKLSAgICBxZW11 X2dldF84cyhmLCAmcy0+dHgudGNwKTsKKyAgICBxZW11X2dldF9zOHMoZiwgJnMtPnR4LmlwKTsK KyAgICBxZW11X2dldF9zOHMoZiwgJnMtPnR4LnRjcCk7CiAgICAgcWVtdV9nZXRfYnVmZmVyKGYs IHMtPnR4LmhlYWRlciwgc2l6ZW9mIHMtPnR4LmhlYWRlcik7CiAgICAgcWVtdV9nZXRfYnVmZmVy KGYsIHMtPnR4LmRhdGEsIHNpemVvZiBzLT50eC5kYXRhKTsKICAgICBmb3IgKGkgPSAwOyBpIDwg NjQ7IGkrKykKSW5kZXg6IHFlbXUvaHcvcHRpbWVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmln L2h3L3B0aW1lci5jCTIwMDgtMDktMTMgMTY6MTA6MjcuMDAwMDAwMDAwICswMDAwCisrKyBxZW11 L2h3L3B0aW1lci5jCTIwMDgtMDktMTMgMTY6NTI6MTMuMDAwMDAwMDAwICswMDAwCkBAIC0xNjUs OSArMTY1LDkgQEAKICAgICBxZW11X3B1dF9iZTY0cyhmLCAmcy0+bGltaXQpOwogICAgIHFlbXVf cHV0X2JlNjRzKGYsICZzLT5kZWx0YSk7CiAgICAgcWVtdV9wdXRfYmUzMnMoZiwgJnMtPnBlcmlv ZF9mcmFjKTsKLSAgICBxZW11X3B1dF9iZTY0cyhmLCAmcy0+cGVyaW9kKTsKLSAgICBxZW11X3B1 dF9iZTY0cyhmLCAmcy0+bGFzdF9ldmVudCk7Ci0gICAgcWVtdV9wdXRfYmU2NHMoZiwgJnMtPm5l eHRfZXZlbnQpOworICAgIHFlbXVfcHV0X3NiZTY0cyhmLCAmcy0+cGVyaW9kKTsKKyAgICBxZW11 X3B1dF9zYmU2NHMoZiwgJnMtPmxhc3RfZXZlbnQpOworICAgIHFlbXVfcHV0X3NiZTY0cyhmLCAm cy0+bmV4dF9ldmVudCk7CiAgICAgcWVtdV9wdXRfdGltZXIoZiwgcy0+dGltZXIpOwogfQogCkBA IC0xNzcsOSArMTc3LDkgQEAKICAgICBxZW11X2dldF9iZTY0cyhmLCAmcy0+bGltaXQpOwogICAg IHFlbXVfZ2V0X2JlNjRzKGYsICZzLT5kZWx0YSk7CiAgICAgcWVtdV9nZXRfYmUzMnMoZiwgJnMt PnBlcmlvZF9mcmFjKTsKLSAgICBxZW11X2dldF9iZTY0cyhmLCAmcy0+cGVyaW9kKTsKLSAgICBx ZW11X2dldF9iZTY0cyhmLCAmcy0+bGFzdF9ldmVudCk7Ci0gICAgcWVtdV9nZXRfYmU2NHMoZiwg JnMtPm5leHRfZXZlbnQpOworICAgIHFlbXVfZ2V0X3NiZTY0cyhmLCAmcy0+cGVyaW9kKTsKKyAg ICBxZW11X2dldF9zYmU2NHMoZiwgJnMtPmxhc3RfZXZlbnQpOworICAgIHFlbXVfZ2V0X3NiZTY0 cyhmLCAmcy0+bmV4dF9ldmVudCk7CiAgICAgcWVtdV9nZXRfdGltZXIoZiwgcy0+dGltZXIpOwog fQogCkluZGV4OiBxZW11L3RhcmdldC1pMzg2L21hY2hpbmUuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11 Lm9yaWcvdGFyZ2V0LWkzODYvbWFjaGluZS5jCTIwMDgtMDktMTMgMTY6MTA6MjYuMDAwMDAwMDAw ICswMDAwCisrKyBxZW11L3RhcmdldC1pMzg2L21hY2hpbmUuYwkyMDA4LTA5LTEzIDE2OjUyOjEz LjAwMDAwMDAwMCArMDAwMApAQCAtMTAyLDcgKzEwMiw3IEBACiAKICAgICAvKiBNTVUgKi8KICAg ICBhMjBfbWFzayA9IChpbnQzMl90KSBlbnYtPmEyMF9tYXNrOwotICAgIHFlbXVfcHV0X2JlMzJz KGYsICZhMjBfbWFzayk7CisgICAgcWVtdV9wdXRfc2JlMzJzKGYsICZhMjBfbWFzayk7CiAKICAg ICAvKiBYTU0gKi8KICAgICBxZW11X3B1dF9iZTMycyhmLCAmZW52LT5teGNzcik7CkBAIC0yNTYs NyArMjU2LDcgQEAKICAgICAgICAgcWVtdV9nZXRfYmV0bHMoZiwgJmVudi0+ZHJbaV0pOwogCiAg ICAgLyogTU1VICovCi0gICAgcWVtdV9nZXRfYmUzMnMoZiwgJmEyMF9tYXNrKTsKKyAgICBxZW11 X2dldF9zYmUzMnMoZiwgJmEyMF9tYXNrKTsKICAgICBlbnYtPmEyMF9tYXNrID0gYTIwX21hc2s7 CiAKICAgICBxZW11X2dldF9iZTMycyhmLCAmZW52LT5teGNzcik7Cg== ------=_Part_12421_495333.1221325372137 Content-Type: plain/text; name=fix_signed_warnings.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fl2hk70p Content-Disposition: attachment; filename=fix_signed_warnings.diff SW5kZXg6IHFlbXUvaHcvdXNiLW5ldC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody91c2It bmV0LmMJMjAwOC0wOS0xMyAxNjoxMDoxOC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvdXNi LW5ldC5jCTIwMDgtMDktMTMgMTY6NTc6MDYuMDAwMDAwMDAwICswMDAwCkBAIC02ODEsOCArNjgx LDggQEAKIAogICAgIC8qIG1hbmRhdG9yeSAqLwogICAgIGNhc2UgT0lEX0dFTl9WRU5ET1JfREVT Q1JJUFRJT046Ci0gICAgICAgIHBzdHJjcHkob3V0YnVmLCBvdXRsZW4sICJRRU1VIFVTQiBSTkRJ UyBOZXQiKTsKLSAgICAgICAgcmV0dXJuIHN0cmxlbihvdXRidWYpICsgMTsKKyAgICAgICAgcHN0 cmNweSgoY2hhciAqKW91dGJ1Ziwgb3V0bGVuLCAiUUVNVSBVU0IgUk5ESVMgTmV0Iik7CisgICAg ICAgIHJldHVybiBzdHJsZW4oKGNoYXIgKilvdXRidWYpICsgMTsKIAogICAgIGNhc2UgT0lEX0dF Tl9WRU5ET1JfRFJJVkVSX1ZFUlNJT046CiAgICAgICAgICooKGxlMzIgKikgb3V0YnVmKSA9IGNw dV90b19sZTMyKDEpOwpJbmRleDogcWVtdS9zbGlycC9ib290cC5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFl bXUub3JpZy9zbGlycC9ib290cC5jCTIwMDgtMDktMTMgMTY6MTA6MTguMDAwMDAwMDAwICswMDAw CisrKyBxZW11L3NsaXJwL2Jvb3RwLmMJMjAwOC0wOS0xMyAxNjo1NzowNi4wMDAwMDAwMDAgKzAw MDAKQEAgLTE3Miw3ICsxNzIsOCBAQAogICAgIH0KIAogICAgIGlmIChib290cF9maWxlbmFtZSkK LSAgICAgICAgc25wcmludGYocmJwLT5icF9maWxlLCBzaXplb2YocmJwLT5icF9maWxlKSwgIiVz IiwgYm9vdHBfZmlsZW5hbWUpOworICAgICAgICBzbnByaW50ZigoY2hhciAqKXJicC0+YnBfZmls ZSwgc2l6ZW9mKHJicC0+YnBfZmlsZSksICIlcyIsCisgICAgICAgICAgICAgICAgIGJvb3RwX2Zp bGVuYW1lKTsKIAogICAgIGRwcmludGYoIm9mZmVyZWQgYWRkcj0lMDh4XG4iLCBudG9obChkYWRk ci5zaW5fYWRkci5zX2FkZHIpKTsKIApJbmRleDogcWVtdS9zbGlycC90Y3Bfc3Vici5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHFlbXUub3JpZy9zbGlycC90Y3Bfc3Vici5jCTIwMDgtMDktMTMgMTY6MTA6MTgu MDAwMDAwMDAwICswMDAwCisrKyBxZW11L3NsaXJwL3RjcF9zdWJyLmMJMjAwOC0wOS0xMyAxNjo1 NzowNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTQ0Nyw3ICs0NDcsNyBAQAogewogCXN0cnVjdCBzb2Nr ZXQgKnNvOwogCXN0cnVjdCBzb2NrYWRkcl9pbiBhZGRyOwotCWludCBhZGRybGVuID0gc2l6ZW9m KHN0cnVjdCBzb2NrYWRkcl9pbik7CisJc29ja2xlbl90IGFkZHJsZW4gPSBzaXplb2Yoc3RydWN0 IHNvY2thZGRyX2luKTsKIAlzdHJ1Y3QgdGNwY2IgKnRwOwogCWludCBzLCBvcHQ7CiAKQEAgLTY0 OSw3ICs2NDksNyBAQAogCQl7CiAJCQlzdHJ1Y3Qgc29ja2V0ICp0bXBzbzsKIAkJCXN0cnVjdCBz b2NrYWRkcl9pbiBhZGRyOwotCQkJaW50IGFkZHJsZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRy X2luKTsKKwkJCXNvY2tsZW5fdCBhZGRybGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbik7 CiAJCQlzdHJ1Y3Qgc2J1ZiAqc29fcmN2ID0gJnNvLT5zb19yY3Y7CiAKIAkJCW1lbWNweShzb19y Y3YtPnNiX3dwdHIsIG0tPm1fZGF0YSwgbS0+bV9sZW4pOwpJbmRleDogcWVtdS9zbGlycC90ZnRw LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3NsaXJwL3RmdHAuYwkyMDA4LTA5LTEzIDE2OjEw OjE4LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9zbGlycC90ZnRwLmMJMjAwOC0wOS0xMyAxNjo1 NzowNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE0OSw4ICsxNDksMTAgQEAKICAgICBtLT5tX2RhdGEg Kz0gc2l6ZW9mKHN0cnVjdCB1ZHBpcGhkcik7CiAKICAgICB0cC0+dHBfb3AgPSBodG9ucyhURlRQ X09BQ0spOwotICAgIG4gKz0gc25wcmludGYodHAtPngudHBfYnVmICsgbiwgc2l6ZW9mKHRwLT54 LnRwX2J1ZikgLSBuLCAiJXMiLCBrZXkpICsgMTsKLSAgICBuICs9IHNucHJpbnRmKHRwLT54LnRw X2J1ZiArIG4sIHNpemVvZih0cC0+eC50cF9idWYpIC0gbiwgIiV1IiwgdmFsdWUpICsgMTsKKyAg ICBuICs9IHNucHJpbnRmKChjaGFyICopdHAtPngudHBfYnVmICsgbiwgc2l6ZW9mKHRwLT54LnRw X2J1ZikgLSBuLCAiJXMiLAorICAgICAgICAgICAgICAgICAga2V5KSArIDE7CisgICAgbiArPSBz bnByaW50ZigoY2hhciAqKXRwLT54LnRwX2J1ZiArIG4sIHNpemVvZih0cC0+eC50cF9idWYpIC0g biwgIiV1IiwKKyAgICAgICAgICAgICAgICAgIHZhbHVlKSArIDE7CiAKICAgICBzYWRkci5zaW5f YWRkciA9IHJlY3ZfdHAtPmlwLmlwX2RzdDsKICAgICBzYWRkci5zaW5fcG9ydCA9IHJlY3ZfdHAt PnVkcC51aF9kcG9ydDsKQEAgLTE5MCw3ICsxOTIsNyBAQAogCiAgIHRwLT50cF9vcCA9IGh0b25z KFRGVFBfRVJST1IpOwogICB0cC0+eC50cF9lcnJvci50cF9lcnJvcl9jb2RlID0gaHRvbnMoZXJy b3Jjb2RlKTsKLSAgcHN0cmNweSh0cC0+eC50cF9lcnJvci50cF9tc2csIHNpemVvZih0cC0+eC50 cF9lcnJvci50cF9tc2cpLCBtc2cpOworICBwc3RyY3B5KChjaGFyICopdHAtPngudHBfZXJyb3Iu dHBfbXNnLCBzaXplb2YodHAtPngudHBfZXJyb3IudHBfbXNnKSwgbXNnKTsKIAogICBzYWRkci5z aW5fYWRkciA9IHJlY3ZfdHAtPmlwLmlwX2RzdDsKICAgc2FkZHIuc2luX3BvcnQgPSByZWN2X3Rw LT51ZHAudWhfZHBvcnQ7CkBAIC0zMjUsOCArMzI3LDggQEAKICAgLyogZG8gc2FuaXR5IGNoZWNr cyBvbiB0aGUgZmlsZW5hbWUgKi8KIAogICBpZiAoKHNwdC0+ZmlsZW5hbWVbMF0gIT0gJy8nKQot ICAgICAgfHwgKHNwdC0+ZmlsZW5hbWVbc3RybGVuKHNwdC0+ZmlsZW5hbWUpIC0gMV0gPT0gJy8n KQotICAgICAgfHwgIHN0cnN0cihzcHQtPmZpbGVuYW1lLCAiLy4uLyIpKSB7CisgICAgICB8fCAo c3B0LT5maWxlbmFtZVtzdHJsZW4oKGNoYXIgKilzcHQtPmZpbGVuYW1lKSAtIDFdID09ICcvJykK KyAgICAgIHx8ICBzdHJzdHIoKGNoYXIgKilzcHQtPmZpbGVuYW1lLCAiLy4uLyIpKSB7CiAgICAg ICB0ZnRwX3NlbmRfZXJyb3Ioc3B0LCAyLCAiQWNjZXNzIHZpb2xhdGlvbiIsIHRwKTsKICAgICAg IHJldHVybjsKICAgfQpAQCAtMzUzLDcgKzM1NSw3IEBACiAgIHdoaWxlIChrIDwgbikgewogICAg ICAgY29uc3QgY2hhciAqa2V5LCAqdmFsdWU7CiAKLSAgICAgIGtleSA9IHNyYyArIGs7CisgICAg ICBrZXkgPSAoY2hhciAqKXNyYyArIGs7CiAgICAgICBrICs9IHN0cmxlbihrZXkpICsgMTsKIAog ICAgICAgaWYgKGsgPj0gbikgewpAQCAtMzYxLDcgKzM2Myw3IEBACiAJICByZXR1cm47CiAgICAg ICB9CiAKLSAgICAgIHZhbHVlID0gc3JjICsgazsKKyAgICAgIHZhbHVlID0gKGNoYXIgKilzcmMg KyBrOwogICAgICAgayArPSBzdHJsZW4odmFsdWUpICsgMTsKIAogICAgICAgaWYgKHN0cmNtcChr ZXksICJ0c2l6ZSIpID09IDApIHsKSW5kZXg6IHFlbXUvZnB1L3NvZnRmbG9hdC5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHFlbXUub3JpZy9mcHUvc29mdGZsb2F0LmMJMjAwOC0wOS0xMyAxNjoxMDoxOC4wMDAw MDAwMDAgKzAwMDAKKysrIHFlbXUvZnB1L3NvZnRmbG9hdC5jCTIwMDgtMDktMTMgMTY6NTc6MDYu MDAwMDAwMDAwICswMDAwCkBAIC00OTg3LDcgKzQ5ODcsNyBAQAogICAgICAgICBzdWIxMjgoIGFT aWcwLCBhU2lnMSwgYlNpZzAsIGJTaWcxLCAmYVNpZzAsICZhU2lnMSApOwogICAgIH0gd2hpbGUg KCAwIDw9IChzYml0czY0KSBhU2lnMCApOwogICAgIGFkZDEyOCgKLSAgICAgICAgYVNpZzAsIGFT aWcxLCBhbHRlcm5hdGVBU2lnMCwgYWx0ZXJuYXRlQVNpZzEsICZzaWdNZWFuMCwgJnNpZ01lYW4x ICk7CisgICAgICAgIGFTaWcwLCBhU2lnMSwgYWx0ZXJuYXRlQVNpZzAsIGFsdGVybmF0ZUFTaWcx LCAoYml0czY0ICopJnNpZ01lYW4wLCAmc2lnTWVhbjEgKTsKICAgICBpZiAoICAgICggc2lnTWVh bjAgPCAwICkKICAgICAgICAgIHx8ICggKCAoIHNpZ01lYW4wIHwgc2lnTWVhbjEgKSA9PSAwICkg JiYgKCBxICYgMSApICkgKSB7CiAgICAgICAgIGFTaWcwID0gYWx0ZXJuYXRlQVNpZzA7CkluZGV4 OiBxZW11L2h3L21pcHNfcjRrLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L21pcHNfcjRr LmMJMjAwOC0wOS0xMyAxNjoxMDoxOC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvbWlwc19y NGsuYwkyMDA4LTA5LTEzIDE2OjU3OjA2LjAwMDAwMDAwMCArMDAwMApAQCAtODMsNyArODMsOCBA QAogICAgIHJhbV9hZGRyX3QgaW5pdHJkX29mZnNldDsKIAogICAgIGtlcm5lbF9zaXplID0gbG9h ZF9lbGYobG9hZGVycGFyYW1zLmtlcm5lbF9maWxlbmFtZSwgVklSVF9UT19QSFlTX0FEREVORCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICZlbnRyeSwgJmtlcm5lbF9sb3csICZrZXJuZWxf aGlnaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QgKikmZW50cnksICh1 aW50NjRfdCAqKSZrZXJuZWxfbG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2 NF90ICopJmtlcm5lbF9oaWdoKTsKICAgICBpZiAoa2VybmVsX3NpemUgPj0gMCkgewogICAgICAg ICBpZiAoKGVudHJ5ICYgfjB4N2ZmZmZmZmZVTEwpID09IDB4ODAwMDAwMDApCiAgICAgICAgICAg ICBlbnRyeSA9IChpbnQzMl90KWVudHJ5OwpAQCAtMTIwLDE1ICsxMjEsMTUgQEAKICAgICAvKiBT dG9yZSBjb21tYW5kIGxpbmUuICAqLwogICAgIGlmIChpbml0cmRfc2l6ZSA+IDApIHsKICAgICAg ICAgaW50IHJldDsKLSAgICAgICAgcmV0ID0gc3ByaW50ZihwaHlzX3JhbV9iYXNlICsgKDE2IDw8 IDIwKSAtIDI1NiwKKyAgICAgICAgcmV0ID0gc3ByaW50ZigoY2hhciAqKShwaHlzX3JhbV9iYXNl ICsgKDE2IDw8IDIwKSAtIDI1NiksCiAgICAgICAgICAgICAgICAgICAgICAgInJkX3N0YXJ0PTB4 IiBUQVJHRVRfRk1UX2x4ICIgcmRfc2l6ZT0lbGkgIiwKICAgICAgICAgICAgICAgICAgICAgICBQ SFlTX1RPX1ZJUlQoKHVpbnQzMl90KWluaXRyZF9vZmZzZXQpLAogICAgICAgICAgICAgICAgICAg ICAgIGluaXRyZF9zaXplKTsKLSAgICAgICAgc3RyY3B5IChwaHlzX3JhbV9iYXNlICsgKDE2IDw8 IDIwKSAtIDI1NiArIHJldCwKKyAgICAgICAgc3RyY3B5ICgoY2hhciAqKShwaHlzX3JhbV9iYXNl ICsgKDE2IDw8IDIwKSAtIDI1NiArIHJldCksCiAgICAgICAgICAgICAgICAgbG9hZGVycGFyYW1z Lmtlcm5lbF9jbWRsaW5lKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIHN0cmNweSAocGh5 c19yYW1fYmFzZSArICgxNiA8PCAyMCkgLSAyNTYsCisgICAgICAgIHN0cmNweSAoKGNoYXIgKiko cGh5c19yYW1fYmFzZSArICgxNiA8PCAyMCkgLSAyNTYpLAogICAgICAgICAgICAgICAgIGxvYWRl cnBhcmFtcy5rZXJuZWxfY21kbGluZSk7CiAgICAgfQogCkluZGV4OiBxZW11L2h3L29tYXAyLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L29tYXAyLmMJMjAwOC0wOS0xMyAxNjoxMDoxOS4w MDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvb21hcDIuYwkyMDA4LTA5LTEzIDE2OjU3OjA2LjAw MDAwMDAwMCArMDAwMApAQCAtMjE1MSwxMiArMjE1MSwxMiBAQAogCiAgICAgaWYgKGNoID09IFNU SV9UUkFDRV9DT05UUk9MX0NIQU5ORUwpIHsKICAgICAgICAgLyogRmx1c2ggY2hhbm5lbCA8aT52 YWx1ZTwvaT4uICAqLwotICAgICAgICBxZW11X2Nocl93cml0ZShzLT5jaHIsICJcciIsIDEpOwor ICAgICAgICBxZW11X2Nocl93cml0ZShzLT5jaHIsIChjb25zdCB1aW50OF90ICopIlxyIiwgMSk7 CiAgICAgfSBlbHNlIGlmIChjaCA9PSBTVElfVFJBQ0VfQ09OU09MRV9DSEFOTkVMIHx8IDEpIHsK ICAgICAgICAgaWYgKHZhbHVlID09IDB4YzAgfHwgdmFsdWUgPT0gMHhjMykgewogICAgICAgICAg ICAgLyogT3BlbiBjaGFubmVsIDxpPmNoPC9pPi4gICovCiAgICAgICAgIH0gZWxzZSBpZiAodmFs dWUgPT0gMHgwMCkKLSAgICAgICAgICAgIHFlbXVfY2hyX3dyaXRlKHMtPmNociwgIlxuIiwgMSk7 CisgICAgICAgICAgICBxZW11X2Nocl93cml0ZShzLT5jaHIsIChjb25zdCB1aW50OF90ICopIlxu IiwgMSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHFlbXVfY2hyX3dyaXRlKHMtPmNociwg JmJ5dGUsIDEpOwogICAgIH0KSW5kZXg6IHFlbXUvaHcvcGwwODAuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBx ZW11Lm9yaWcvaHcvcGwwODAuYwkyMDA4LTA5LTEzIDE2OjEwOjE4LjAwMDAwMDAwMCArMDAwMAor KysgcWVtdS9ody9wbDA4MC5jCTIwMDgtMDktMTMgMTY6NTc6MDYuMDAwMDAwMDAwICswMDAwCkBA IC04MCw3ICs4MCw3IEBACiAgICAgaW50IHNyY19pZDsKICAgICBpbnQgZGVzdF9pZDsKICAgICBp bnQgc2l6ZTsKLSAgICBjaGFyIGJ1ZmZbNF07CisgICAgdWludDhfdCBidWZmWzRdOwogICAgIHVp bnQzMl90IHJlcTsKIAogICAgIHMtPnRjX21hc2sgPSAwOwpJbmRleDogcWVtdS9ody9weGEyeHhf ZG1hLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3B4YTJ4eF9kbWEuYwkyMDA4LTA5LTEz IDE2OjEwOjE4LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9weGEyeHhfZG1hLmMJMjAwOC0w OS0xMyAxNjo1NzowNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3Nyw3ICsxNzcsNyBAQAogICAgIHVp bnQzMl90IG4sIHNpemU7CiAgICAgdWludDMyX3Qgd2lkdGg7CiAgICAgdWludDMyX3QgbGVuZ3Ro OwotICAgIGNoYXIgYnVmZmVyWzMyXTsKKyAgICB1aW50OF90IGJ1ZmZlclszMl07CiAgICAgc3Ry dWN0IHB4YTJ4eF9kbWFfY2hhbm5lbF9zICpjaDsKIAogICAgIGlmIChzLT5ydW5uaW5nICsrKQpJ bmRleDogcWVtdS9zb2Z0bW11LXNlbWkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvc29mdG1t dS1zZW1pLmgJMjAwOC0wOS0xMyAxNjoxMDoxOC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvc29m dG1tdS1zZW1pLmgJMjAwOC0wOS0xMyAxNjo1NzowNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTM3LDcg KzM3LDcgQEAKIHN0YXRpYyB2b2lkICpzb2Z0bW11X2xvY2tfdXNlcihDUFVTdGF0ZSAqZW52LCB1 aW50MzJfdCBhZGRyLCB1aW50MzJfdCBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IGNvcHkpCiB7Ci0gICAgY2hhciAqcDsKKyAgICB1aW50OF90ICpwOwogICAgIC8qIFRP RE86IE1ha2UgdGhpcyBzb21ldGhpbmcgdGhhdCBpc24ndCBmaXhlZCBzaXplLiAgKi8KICAgICBw ID0gbWFsbG9jKGxlbik7CiAgICAgaWYgKGNvcHkpCkluZGV4OiBxZW11L2V4ZWMuYwo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBxZW11Lm9yaWcvZXhlYy5jCTIwMDgtMDktMTMgMTY6MTA6MTguMDAwMDAwMDAwICsw MDAwCisrKyBxZW11L2V4ZWMuYwkyMDA4LTA5LTEzIDE2OjU3OjA2LjAwMDAwMDAwMCArMDAwMApA QCAtMTQwOCw3ICsxNDA4LDcgQEAKICNpZiAhZGVmaW5lZChDT05GSUdfU09GVE1NVSkKICAgICAg ICAgLyogbXVzdCBhdm9pZCBtbWFwKCkgdXNhZ2Ugb2YgZ2xpYmMgYnkgc2V0dGluZyBhIGJ1ZmZl ciAiYnkgaGFuZCIgKi8KICAgICAgICAgewotICAgICAgICAgICAgc3RhdGljIHVpbnQ4X3QgbG9n ZmlsZV9idWZbNDA5Nl07CisgICAgICAgICAgICBzdGF0aWMgY2hhciBsb2dmaWxlX2J1Zls0MDk2 XTsKICAgICAgICAgICAgIHNldHZidWYobG9nZmlsZSwgbG9nZmlsZV9idWYsIF9JT0xCRiwgc2l6 ZW9mKGxvZ2ZpbGVfYnVmKSk7CiAgICAgICAgIH0KICNlbHNlCkluZGV4OiBxZW11L2h3L21pcHNf bWFsdGEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvbWlwc19tYWx0YS5jCTIwMDgtMDkt MTMgMTY6MTA6MTkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L21pcHNfbWFsdGEuYwkyMDA4 LTA5LTEzIDE2OjU3OjA2LjAwMDAwMDAwMCArMDAwMApAQCAtNzAxLDcgKzcwMSw4IEBACiAgICAg cmFtX2FkZHJfdCBpbml0cmRfb2Zmc2V0OwogCiAgICAgaWYgKGxvYWRfZWxmKGxvYWRlcnBhcmFt cy5rZXJuZWxfZmlsZW5hbWUsIFZJUlRfVE9fUEhZU19BRERFTkQsCi0gICAgICAgICAgICAgICAg ICZrZXJuZWxfZW50cnksICZrZXJuZWxfbG93LCAma2VybmVsX2hpZ2gpIDwgMCkgeworICAgICAg ICAgICAgICAgICAodWludDY0X3QgKikma2VybmVsX2VudHJ5LCAodWludDY0X3QgKikma2VybmVs X2xvdywKKyAgICAgICAgICAgICAgICAgKHVpbnQ2NF90ICopJmtlcm5lbF9oaWdoKSA8IDApIHsK ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJxZW11OiBjb3VsZCBub3QgbG9hZCBrZXJuZWwgJyVz J1xuIiwKICAgICAgICAgICAgICAgICBsb2FkZXJwYXJhbXMua2VybmVsX2ZpbGVuYW1lKTsKICAg ICAgICAgZXhpdCgxKTsKSW5kZXg6IHFlbXUvaHcvbWlwc19taXBzc2ltLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcWVtdS5vcmlnL2h3L21pcHNfbWlwc3NpbS5jCTIwMDgtMDktMTMgMTY6MTA6MTkuMDAwMDAw MDAwICswMDAwCisrKyBxZW11L2h3L21pcHNfbWlwc3NpbS5jCTIwMDgtMDktMTMgMTY6NTc6MDYu MDAwMDAwMDAwICswMDAwCkBAIC02MSw3ICs2MSw4IEBACiAgICAgcmFtX2FkZHJfdCBpbml0cmRf b2Zmc2V0OwogCiAgICAga2VybmVsX3NpemUgPSBsb2FkX2VsZihsb2FkZXJwYXJhbXMua2VybmVs X2ZpbGVuYW1lLCBWSVJUX1RPX1BIWVNfQURERU5ELAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmVudHJ5LCAma2VybmVsX2xvdywgJmtlcm5lbF9oaWdoKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICh1aW50NjRfdCAqKSZlbnRyeSwgKHVpbnQ2NF90ICopJmtlcm5lbF9sb3csCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QgKikma2VybmVsX2hpZ2gpOwogICAg IGlmIChrZXJuZWxfc2l6ZSA+PSAwKSB7CiAgICAgICAgIGlmICgoZW50cnkgJiB+MHg3ZmZmZmZm ZlVMTCkgPT0gMHg4MDAwMDAwMCkKICAgICAgICAgICAgIGVudHJ5ID0gKGludDMyX3QpZW50cnk7 CkluZGV4OiBxZW11L2h3L252cmFtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L252cmFt LmgJMjAwOC0wOS0xMyAxNjoxMDoxOC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvbnZyYW0u aAkyMDA4LTA5LTEzIDE2OjU3OjA2LjAwMDAwMDAwMCArMDAwMApAQCAtMTcsMTIgKzE3LDEyIEBA CiB2b2lkIE5WUkFNX3NldF9sd29yZCAobnZyYW1fdCAqbnZyYW0sIHVpbnQzMl90IGFkZHIsIHVp bnQzMl90IHZhbHVlKTsKIHVpbnQzMl90IE5WUkFNX2dldF9sd29yZCAobnZyYW1fdCAqbnZyYW0s IHVpbnQzMl90IGFkZHIpOwogdm9pZCBOVlJBTV9zZXRfc3RyaW5nIChudnJhbV90ICpudnJhbSwg dWludDMyX3QgYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hh ciAqc3RyLCB1aW50MzJfdCBtYXgpOworICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFy ICpzdHIsIHVpbnQzMl90IG1heCk7CiBpbnQgTlZSQU1fZ2V0X3N0cmluZyAobnZyYW1fdCAqbnZy YW0sIHVpbnQ4X3QgKmRzdCwgdWludDE2X3QgYWRkciwgaW50IG1heCk7CiB2b2lkIE5WUkFNX3Nl dF9jcmMgKG52cmFtX3QgKm52cmFtLCB1aW50MzJfdCBhZGRyLAogICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCBzdGFydCwgdWludDMyX3QgY291bnQpOwogaW50IFBQQ19OVlJBTV9zZXRfcGFy YW1zIChudnJhbV90ICpudnJhbSwgdWludDE2X3QgTlZSQU1fc2l6ZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYXJjaCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqYXJjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgUkFNX3NpemUsIGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3Qga2VybmVsX2ltYWdlLCB1aW50MzJfdCBrZXJuZWxfc2l6ZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY21kbGluZSwKSW5kZXg6IHFlbXUvaHcvcHBj LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3BwYy5jCTIwMDgtMDktMTMgMTY6MTA6MTku MDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3BwYy5jCTIwMDgtMDktMTMgMTY6NTc6MDYuMDAw MDAwMDAwICswMDAwCkBAIC0xMzA1LDcgKzEzMDUsNyBAQAogfQogCiB2b2lkIE5WUkFNX3NldF9z dHJpbmcgKG52cmFtX3QgKm52cmFtLCB1aW50MzJfdCBhZGRyLAotICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzdHIsIHVpbnQzMl90IG1heCkKKyAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqc3RyLCB1aW50MzJfdCBtYXgpCiB7CiAgICAgaW50IGk7 CiAKQEAgLTEzNjYsNyArMTM2Niw3IEBACiAjZGVmaW5lIENNRExJTkVfQUREUiAweDAxN2ZmMDAw CiAKIGludCBQUENfTlZSQU1fc2V0X3BhcmFtcyAobnZyYW1fdCAqbnZyYW0sIHVpbnQxNl90IE5W UkFNX3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmFyY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmFyY2gsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IFJBTV9zaXplLCBpbnQgYm9vdF9kZXZpY2Us CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGtlcm5lbF9pbWFnZSwgdWludDMy X3Qga2VybmVsX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNt ZGxpbmUsCkBAIC0xMzg3LDcgKzEzODcsNyBAQAogICAgIE5WUkFNX3NldF9sd29yZChudnJhbSwg IDB4M0MsIGtlcm5lbF9zaXplKTsKICAgICBpZiAoY21kbGluZSkgewogICAgICAgICAvKiBYWFg6 IHB1dCB0aGUgY21kbGluZSBpbiBOVlJBTSB0b28gPyAqLwotICAgICAgICBzdHJjcHkocGh5c19y YW1fYmFzZSArIENNRExJTkVfQUREUiwgY21kbGluZSk7CisgICAgICAgIHN0cmNweSgoY2hhciAq KShwaHlzX3JhbV9iYXNlICsgQ01ETElORV9BRERSKSwgY21kbGluZSk7CiAgICAgICAgIE5WUkFN X3NldF9sd29yZChudnJhbSwgIDB4NDAsIENNRExJTkVfQUREUik7CiAgICAgICAgIE5WUkFNX3Nl dF9sd29yZChudnJhbSwgIDB4NDQsIHN0cmxlbihjbWRsaW5lKSk7CiAgICAgfSBlbHNlIHsKSW5k ZXg6IHFlbXUvaHcvcHBjNHh4X2RldnMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvcHBj NHh4X2RldnMuYwkyMDA4LTA5LTEzIDE2OjEwOjE4LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9o dy9wcGM0eHhfZGV2cy5jCTIwMDgtMDktMTMgMTY6NTc6MDYuMDAwMDAwMDAwICswMDAwCkBAIC0z NSw3ICszNSw3IEBACiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIEdlbmVyaWMgUG93ZXJQ QyA0eHggcHJvY2Vzc29yIGluc3RhbmNpYXRpb24gKi8KLUNQVVN0YXRlICpwcGM0eHhfaW5pdCAo Y29uc3QgdW5zaWduZWQgY2hhciAqY3B1X21vZGVsLAorQ1BVU3RhdGUgKnBwYzR4eF9pbml0IChj b25zdCBjaGFyICpjcHVfbW9kZWwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNsa19zZXR1cF90 ICpjcHVfY2xrLCBjbGtfc2V0dXBfdCAqdGJfY2xrLAogICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCBzeXNjbGspCiB7CkluZGV4OiBxZW11L2xpbnV4LXVzZXIvZWxmbG9hZC5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHFlbXUub3JpZy9saW51eC11c2VyL2VsZmxvYWQuYwkyMDA4LTA5LTEzIDE2OjM5 OjMxLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9saW51eC11c2VyL2VsZmxvYWQuYwkyMDA4LTA5 LTEzIDE2OjU3OjA2LjAwMDAwMDAwMCArMDAwMApAQCAtMTI0MCw3ICsxMjQwLDcgQEAKIAl9CiAK IAlpZiAoaW50ZXJwX2VsZl9leC5lX2lkZW50WzBdICE9IDB4N2YgfHwKLQkgICAgCXN0cm5jbXAo JmludGVycF9lbGZfZXguZV9pZGVudFsxXSwgIkVMRiIsMykgIT0gMCkgeworICAgICAgICAgICAg c3RybmNtcCgoY2hhciAqKSZpbnRlcnBfZWxmX2V4LmVfaWRlbnRbMV0sICJFTEYiLDMpICE9IDAp IHsKIAkgICAgaW50ZXJwcmV0ZXJfdHlwZSAmPSB+SU5URVJQUkVURVJfRUxGOwogCX0KIApJbmRl eDogcWVtdS9saW51eC11c2VyL3N5c2NhbGwuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvbGlu dXgtdXNlci9zeXNjYWxsLmMJMjAwOC0wOS0xMyAxNjoxMDoxOC4wMDAwMDAwMDAgKzAwMDAKKysr IHFlbXUvbGludXgtdXNlci9zeXNjYWxsLmMJMjAwOC0wOS0xMyAxNjo1NzowNi4wMDAwMDAwMDAg KzAwMDAKQEAgLTkzNSw3ICs5MzUsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YWJpX3Vsb25nIG9wdHZhbF9hZGRyLCBhYmlfdWxvbmcgb3B0bGVuKQogewogICAgIGFiaV9sb25n IHJldDsKLSAgICBpbnQgbGVuLCBsdiwgdmFsOworICAgIGludCBsZW4sIHZhbDsKKyAgICBzb2Nr bGVuX3QgbHY7CiAKICAgICBzd2l0Y2gobGV2ZWwpIHsKICAgICBjYXNlIFRBUkdFVF9TT0xfU09D S0VUOgpJbmRleDogcWVtdS9saW51eC11c2VyL3VhY2Nlc3MuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11 Lm9yaWcvbGludXgtdXNlci91YWNjZXNzLmMJMjAwOC0wOS0xMyAxNjoxMDoxOC4wMDAwMDAwMDAg KzAwMDAKKysrIHFlbXUvbGludXgtdXNlci91YWNjZXNzLmMJMjAwOC0wOS0xMyAxNjo1NzowNi4w MDAwMDAwMDAgKzAwMDAKQEAgLTYyLDcgKzYyLDcgQEAKICAgICAgICAgcHRyID0gbG9ja191c2Vy KFZFUklGWV9SRUFELCBndWVzdF9hZGRyLCBtYXhfbGVuLCAxKTsKICAgICAgICAgaWYgKCFwdHIp CiAgICAgICAgICAgICByZXR1cm4gLVRBUkdFVF9FRkFVTFQ7Ci0gICAgICAgIGxlbiA9IHFlbXVf c3RybmxlbihwdHIsIG1heF9sZW4pOworICAgICAgICBsZW4gPSBxZW11X3N0cm5sZW4oKGNvbnN0 IGNoYXIgKilwdHIsIG1heF9sZW4pOwogICAgICAgICB1bmxvY2tfdXNlcihwdHIsIGd1ZXN0X2Fk ZHIsIDApOwogICAgICAgICBndWVzdF9hZGRyICs9IGxlbjsKICAgICAgICAgLyogd2UgZG9uJ3Qg YWxsb3cgd3JhcHBpbmcgb3IgaW50ZWdlciBvdmVyZmxvdyAqLwpJbmRleDogcWVtdS90YXJnZXQt YWxwaGEvaGVscGVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3RhcmdldC1hbHBoYS9oZWxw ZXIuYwkyMDA4LTA5LTEzIDE2OjEwOjE4LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS90YXJnZXQt YWxwaGEvaGVscGVyLmMJMjAwOC0wOS0xMyAxNjo1NzowNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTQx MSw3ICs0MTEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgaW50ICgqY3B1X2ZwcmludGYpKEZJ TEUgKmYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSwKICAgICAgICAgICAgICAgICAgICAgIGludCBm bGFncykKIHsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqbGludXhfcmVnX25hbWVz W10gPSB7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgKmxpbnV4X3JlZ19uYW1lc1tdID0gewogICAg ICAgICAidjAgIiwgInQwICIsICJ0MSAiLCAidDIgIiwgInQzICIsICJ0NCAiLCAidDUgIiwgInQ2 ICIsCiAgICAgICAgICJ0NyAiLCAiczAgIiwgInMxICIsICJzMiAiLCAiczMgIiwgInM0ICIsICJz NSAiLCAiZnAgIiwKICAgICAgICAgImEwICIsICJhMSAiLCAiYTIgIiwgImEzICIsICJhNCAiLCAi YTUgIiwgInQ4ICIsICJ0OSAiLApJbmRleDogcWVtdS90YXJnZXQtbWlwcy90cmFuc2xhdGVfaW5p dC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90YXJnZXQtbWlwcy90cmFuc2xhdGVfaW5pdC5j CTIwMDgtMDktMTMgMTY6MTA6MTguMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1taXBz L3RyYW5zbGF0ZV9pbml0LmMJMjAwOC0wOS0xMyAxNjo1NzowNi4wMDAwMDAwMDAgKzAwMDAKQEAg LTQxNyw3ICs0MTcsNyBAQAogI2VuZGlmCiB9OwogCi1zdGF0aWMgY29uc3QgbWlwc19kZWZfdCAq Y3B1X21pcHNfZmluZF9ieV9uYW1lIChjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lKQorc3RhdGlj IGNvbnN0IG1pcHNfZGVmX3QgKmNwdV9taXBzX2ZpbmRfYnlfbmFtZSAoY29uc3QgY2hhciAqbmFt ZSkKIHsKICAgICBpbnQgaTsKIApJbmRleDogcWVtdS90YXJnZXQtcHBjL29wX2hlbHBlci5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHFlbXUub3JpZy90YXJnZXQtcHBjL29wX2hlbHBlci5jCTIwMDgtMDktMTMg MTY6MTA6MTguMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1wcGMvb3BfaGVscGVyLmMJ MjAwOC0wOS0xMyAxNjo1NzowNy4wMDAwMDAwMDAgKzAwMDAKQEAgLTI0NCw3ICsyNDQsNyBAQAog ICAgIGludDY0X3QgdGg7CiAgICAgdWludDY0X3QgdGw7CiAKLSAgICBtdWxzNjQoJnRsLCAmdGgs IFQwLCBUMSk7CisgICAgbXVsczY0KCZ0bCwgKHVpbnQ2NF90ICopJnRoLCBUMCwgVDEpOwogICAg IFQwID0gKGludDY0X3QpdGw7CiAgICAgLyogSWYgdGggIT0gMCAmJiB0aCAhPSAtMSwgdGhlbiB3 ZSBoYWQgYW4gb3ZlcmZsb3cgKi8KICAgICBpZiAobGlrZWx5KCh1aW50NjRfdCkodGggKyAxKSA8 PSAxKSkgewpJbmRleDogcWVtdS90YXJnZXQtcHBjL3RyYW5zbGF0ZS5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHFlbXUub3JpZy90YXJnZXQtcHBjL3RyYW5zbGF0ZS5jCTIwMDgtMDktMTMgMTY6MTA6MTguMDAw MDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1wcGMvdHJhbnNsYXRlLmMJMjAwOC0wOS0xMyAx Njo1NzowNy4wMDAwMDAwMDAgKzAwMDAKQEAgLTIxMiw3ICsyMTIsNyBAQAogICAgIC8qIGhhbmRs ZXIgKi8KICAgICB2b2lkICgqaGFuZGxlcikoRGlzYXNDb250ZXh0ICpjdHgpOwogI2lmIGRlZmlu ZWQoRE9fUFBDX1NUQVRJU1RJQ1MpIHx8IGRlZmluZWQoUFBDX0RVTVBfQ1BVKQotICAgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKm9uYW1lOworICAgIGNvbnN0IGNoYXIgKm9uYW1lOwogI2VuZGlmCiAj aWYgZGVmaW5lZChET19QUENfU1RBVElTVElDUykKICAgICB1aW50NjRfdCBjb3VudDsKQEAgLTMz OSw3ICszMzksNyBAQAogICAgIHVuc2lnbmVkIGNoYXIgcGFkWzFdOwogI2VuZGlmCiAgICAgb3Bj X2hhbmRsZXJfdCBoYW5kbGVyOwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm9uYW1lOworICAg IGNvbnN0IGNoYXIgKm9uYW1lOwogfSBvcGNvZGVfdDsKIAogLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LwpJbmRleDogcWVtdS90YXJnZXQtcHBjL3RyYW5zbGF0ZV9pbml0LmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g cWVtdS5vcmlnL3RhcmdldC1wcGMvdHJhbnNsYXRlX2luaXQuYwkyMDA4LTA5LTEzIDE2OjEwOjE4 LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS90YXJnZXQtcHBjL3RyYW5zbGF0ZV9pbml0LmMJMjAw OC0wOS0xMyAxNjo1NzowNy4wMDAwMDAwMDAgKzAwMDAKQEAgLTM0LDcgKzM0LDcgQEAKICNlbmRp ZgogCiBzdHJ1Y3QgcHBjX2RlZl90IHsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lOwor ICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICAgdWludDMyX3QgcHZyOwogICAgIHVpbnQzMl90IHN2 cjsKICAgICB1aW50NjRfdCBpbnNuc19mbGFnczsKQEAgLTQzMywxMyArNDMzLDEzIEBACiAgICAg IF9zcHJfcmVnaXN0ZXIoZW52LCBudW0sIG5hbWUsIHVlYV9yZWFkLCB1ZWFfd3JpdGUsIGluaXRp YWxfdmFsdWUpOyAgICAgICBcCiB9IHdoaWxlICgwKQogc3RhdGljIGlubGluZSB2b2lkIF9zcHJf cmVnaXN0ZXIgKENQVVBQQ1N0YXRlICplbnYsIGludCBudW0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKCp1ZWFfcmVhZCkodm9pZCAqb3BhcXVlLCBpbnQgc3Bybiks CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKnVlYV93cml0ZSkodm9p ZCAqb3BhcXVlLCBpbnQgc3BybiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGFyZ2V0X3Vsb25nIGluaXRpYWxfdmFsdWUpCiAjZWxzZQogc3RhdGljIGlubGluZSB2b2lkIHNw cl9yZWdpc3RlciAoQ1BVUFBDU3RhdGUgKmVudiwgaW50IG51bSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm5hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAoKnVlYV9yZWFkKSh2b2lkICpvcGFxdWUsIGludCBzcHJuKSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCp1ZWFfd3JpdGUpKHZvaWQg Km9wYXF1ZSwgaW50IHNwcm4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p ZCAoKm9lYV9yZWFkKSh2b2lkICpvcGFxdWUsIGludCBzcHJuKSwKQEAgLTEyNDUsNyArMTI0NSw3 IEBACiAvKiBQb3dlclBDIEJvb2tFIFNQUiAqLwogc3RhdGljIHZvaWQgZ2VuX3Nwcl9Cb29rRSAo Q1BVUFBDU3RhdGUgKmVudiwgdWludDY0X3QgaXZvcl9tYXNrKQogewotICAgIGNvbnN0IHVuc2ln bmVkIGNoYXIgKml2b3JfbmFtZXNbNjRdID0geworICAgIGNvbnN0IGNoYXIgKml2b3JfbmFtZXNb NjRdID0gewogICAgICAgICAiSVZPUjAiLCAgIklWT1IxIiwgICJJVk9SMiIsICAiSVZPUjMiLAog ICAgICAgICAiSVZPUjQiLCAgIklWT1I1IiwgICJJVk9SNiIsICAiSVZPUjciLAogICAgICAgICAi SVZPUjgiLCAgIklWT1I5IiwgICJJVk9SMTAiLCAiSVZPUjExIiwKQEAgLTE0MDcsNyArMTQwNyw3 IEBACiBzdGF0aWMgdm9pZCBnZW5fc3ByX0Jvb2tFX0ZTTCAoQ1BVUFBDU3RhdGUgKmVudiwgdWlu dDMyX3QgbWFzX21hc2spCiB7CiAjaWYgIWRlZmluZWQoQ09ORklHX1VTRVJfT05MWSkKLSAgICBj b25zdCB1bnNpZ25lZCBjaGFyICptYXNfbmFtZXNbOF0gPSB7CisgICAgY29uc3QgY2hhciAqbWFz X25hbWVzWzhdID0gewogICAgICAgICAiTUFTMCIsICJNQVMxIiwgIk1BUzIiLCAiTUFTMyIsICJN QVM0IiwgIk1BUzUiLCAiTUFTNiIsICJNQVM3IiwKICAgICB9OwogICAgIGludCBtYXNfc3Bybls4 XSA9IHsKQEAgLTkxNTcsNyArOTE1Nyw3IEBACiBzdGF0aWMgdm9pZCBkdW1wX3BwY19pbnNucyAo Q1BVUFBDU3RhdGUgKmVudikKIHsKICAgICBvcGNfaGFuZGxlcl90ICoqdGFibGUsICpoYW5kbGVy OwotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAsICpxOworICAgIGNvbnN0IGNoYXIgKnAsICpx OwogICAgIHVpbnQ4X3Qgb3BjMSwgb3BjMiwgb3BjMzsKIAogICAgIHByaW50ZigiSW5zdHJ1Y3Rp b25zIHNldDpcbiIpOwpAQCAtOTI0MCw3ICs5MjQwLDcgQEAKICAgICBpbml0X3BwY19wcm9jKGVu diwgZGVmKTsKICNpZiBkZWZpbmVkKFBQQ19EVU1QX0NQVSkKICAgICB7Ci0gICAgICAgIGNvbnN0 IHVuc2lnbmVkIGNoYXIgKm1tdV9tb2RlbCwgKmV4Y3BfbW9kZWwsICpidXNfbW9kZWw7CisgICAg ICAgIGNvbnN0IGNoYXIgKm1tdV9tb2RlbCwgKmV4Y3BfbW9kZWwsICpidXNfbW9kZWw7CiAgICAg ICAgIHN3aXRjaCAoZW52LT5tbXVfbW9kZWwpIHsKICAgICAgICAgY2FzZSBQT1dFUlBDX01NVV8z MkI6CiAgICAgICAgICAgICBtbXVfbW9kZWwgPSAiUG93ZXJQQyAzMiI7CkBAIC05NDQzLDEwICs5 NDQzLDEwIEBACiAKICNpbmNsdWRlIDxjdHlwZS5oPgogCi1jb25zdCBwcGNfZGVmX3QgKmNwdV9w cGNfZmluZF9ieV9uYW1lIChjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lKQorY29uc3QgcHBjX2Rl Zl90ICpjcHVfcHBjX2ZpbmRfYnlfbmFtZSAoY29uc3QgY2hhciAqbmFtZSkKIHsKICAgICBjb25z dCBwcGNfZGVmX3QgKnJldDsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwOworICAgIGNvbnN0 IGNoYXIgKnA7CiAgICAgaW50IGksIG1heCwgbGVuOwogCiAgICAgLyogQ2hlY2sgaWYgdGhlIGdp dmVuIG5hbWUgaXMgYSBQVlIgKi8KSW5kZXg6IHFlbXUvdGFyZ2V0LXNoNC90cmFuc2xhdGUuYwo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LXNoNC90cmFuc2xhdGUuYwkyMDA4LTA5LTEz IDE2OjEwOjE5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS90YXJnZXQtc2g0L3RyYW5zbGF0ZS5j CTIwMDgtMDktMTMgMTY6NTc6MDcuMDAwMDAwMDAwICswMDAwCkBAIC0xNzcsNyArMTc3LDcgQEAK IH0KIAogdHlwZWRlZiBzdHJ1Y3QgewotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm5hbWU7Cisg ICAgY29uc3QgY2hhciAqbmFtZTsKICAgICBpbnQgaWQ7CiAgICAgdWludDMyX3QgcHZyOwogICAg IHVpbnQzMl90IHBycjsKQEAgLTIwMCw3ICsyMDAsNyBAQAogICAgIH0sCiB9OwogCi1zdGF0aWMg Y29uc3Qgc2g0X2RlZl90ICpjcHVfc2g0X2ZpbmRfYnlfbmFtZShjb25zdCB1bnNpZ25lZCBjaGFy ICpuYW1lKQorc3RhdGljIGNvbnN0IHNoNF9kZWZfdCAqY3B1X3NoNF9maW5kX2J5X25hbWUoY29u c3QgY2hhciAqbmFtZSkKIHsKICAgICBpbnQgaTsKIApJbmRleDogcWVtdS9ody9wcGM0eHguaAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvcHBjNHh4LmgJMjAwOC0wOS0xMyAxNjoxMDoxOC4w MDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcHBjNHh4LmgJMjAwOC0wOS0xMyAxNjo1NzowNy4w MDAwMDAwMDAgKzAwMDAKQEAgLTI2LDcgKzI2LDcgQEAKICNkZWZpbmUgUFBDXzRYWF9ICiAKIC8q IFBvd2VyUEMgNHh4IGNvcmUgaW5pdGlhbGl6YXRpb24gKi8KLUNQVVN0YXRlICpwcGM0eHhfaW5p dCAoY29uc3QgdW5zaWduZWQgY2hhciAqY3B1X21vZGVsLAorQ1BVU3RhdGUgKnBwYzR4eF9pbml0 IChjb25zdCBjaGFyICpjcHVfbW9kZWwsCiAgICAgICAgICAgICAgICAgICAgICAgIGNsa19zZXR1 cF90ICpjcHVfY2xrLCBjbGtfc2V0dXBfdCAqdGJfY2xrLAogICAgICAgICAgICAgICAgICAgICAg ICB1aW50MzJfdCBzeXNjbGspOwogCkluZGV4OiBxZW11L3RhcmdldC1wcGMvY3B1LmgKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL3RhcmdldC1wcGMvY3B1LmgJMjAwOC0wOS0xMyAxNjoxMDoxOC4w MDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0LXBwYy9jcHUuaAkyMDA4LTA5LTEzIDE2OjU3 OjA3LjAwMDAwMDAwMCArMDAwMApAQCAtMzAzLDcgKzMwMyw3IEBACiAgICAgdm9pZCAoKmhlYV9y ZWFkKSh2b2lkICpvcGFxdWUsIGludCBzcHJfbnVtKTsKICAgICB2b2lkICgqaGVhX3dyaXRlKSh2 b2lkICpvcGFxdWUsIGludCBzcHJfbnVtKTsKICNlbmRpZgotICAgIGNvbnN0IHVuc2lnbmVkIGNo YXIgKm5hbWU7CisgICAgY29uc3QgY2hhciAqbmFtZTsKIH07CiAKIC8qIEFsdGl2ZWMgcmVnaXN0 ZXJzICgxMjggYml0cykgKi8KQEAgLTczMyw3ICs3MzMsNyBAQAogCiB2b2lkIHBwY19jcHVfbGlz dCAoRklMRSAqZiwgaW50ICgqY3B1X2ZwcmludGYpKEZJTEUgKmYsIGNvbnN0IGNoYXIgKmZtdCwg Li4uKSk7CiAKLWNvbnN0IHBwY19kZWZfdCAqY3B1X3BwY19maW5kX2J5X25hbWUgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKm5hbWUpOworY29uc3QgcHBjX2RlZl90ICpjcHVfcHBjX2ZpbmRfYnlfbmFt ZSAoY29uc3QgY2hhciAqbmFtZSk7CiBpbnQgY3B1X3BwY19yZWdpc3Rlcl9pbnRlcm5hbCAoQ1BV UFBDU3RhdGUgKmVudiwgY29uc3QgcHBjX2RlZl90ICpkZWYpOwogCiAvKiBUaW1lLWJhc2UgYW5k IGRlY3JlbWVudGVyIG1hbmFnZW1lbnQgKi8K ------=_Part_12421_495333.1221325372137--