From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KcFSF-0002EA-TF for qemu-devel@nongnu.org; Sun, 07 Sep 2008 04:17:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KcFSD-0002Dy-Hj for qemu-devel@nongnu.org; Sun, 07 Sep 2008 04:17:06 -0400 Received: from [199.232.76.173] (port=35350 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KcFSD-0002Dv-88 for qemu-devel@nongnu.org; Sun, 07 Sep 2008 04:17:05 -0400 Received: from wf-out-1314.google.com ([209.85.200.171]:61920) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KcFSC-0001Eo-Go for qemu-devel@nongnu.org; Sun, 07 Sep 2008 04:17:05 -0400 Received: by wf-out-1314.google.com with SMTP id 27so1111665wfd.4 for ; Sun, 07 Sep 2008 01:17:03 -0700 (PDT) Message-ID: Date: Sun, 7 Sep 2008 11:17:03 +0300 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_84981_33517238.1220775423696" Subject: [Qemu-devel] [PATCH, RFC] gcc flag -Wwrite-strings 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 ------=_Part_84981_33517238.1220775423696 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, These patches enable gcc flag -Wwrite-strings and fix the warnings caused by the enabling of the flag. Nothing too fancy, so I intend to apply both patches unless there are objections. ------=_Part_84981_33517238.1220775423696 Content-Type: plain/text; name=wwrite_strings.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkte4otk Content-Disposition: attachment; filename=wwrite_strings.diff SW5kZXg6IHFlbXUvTWFrZWZpbGUudGFyZ2V0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9NYWtl ZmlsZS50YXJnZXQJMjAwOC0wOS0wNiAyMDoyODozNS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUv TWFrZWZpbGUudGFyZ2V0CTIwMDgtMDktMDYgMjA6Mjg6NTAuMDAwMDAwMDAwICswMDAwCkBAIC03 Myw3ICs3Myw3IEBACiBQUk9HUz0kKFFFTVVfUFJPRykKIAogIyBXZSByZXF1aXJlIC1PMiB0byBh dm9pZCB0aGUgc3RhY2sgc2V0dXAgcHJvbG9ndWUgaW4gRVhJVF9UQgotT1BfQ0ZMQUdTIDo9IC1X YWxsIC1XdW5kZWYgLU8yIC1nIC1mbm8tc3RyaWN0LWFsaWFzaW5nCitPUF9DRkxBR1MgOj0gLVdh bGwgLVd1bmRlZiAtV3dyaXRlLXN0cmluZ3MgLU8yIC1nIC1mbm8tc3RyaWN0LWFsaWFzaW5nCiAK ICMgY2Mtb3B0aW9uCiAjIFVzYWdlOiBPUF9DRkxBR1MrPSQoY2FsbCBjYy1vcHRpb24sIC1mYWxp Z24tZnVuY3Rpb25zPTAsIC1tYWxpZ24tZnVuY3Rpb25zPTApCkluZGV4OiBxZW11L2NvbmZpZ3Vy ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvY29uZmlndXJlCTIwMDgtMDktMDYgMjA6Mjg6NDIu MDAwMDAwMDAwICswMDAwCisrKyBxZW11L2NvbmZpZ3VyZQkyMDA4LTA5LTA2IDIwOjI4OjUzLjAw MDAwMDAwMCArMDAwMApAQCAtMzQ2LDcgKzM0Niw3IEBACiBkb25lCiAKICMgZGVmYXVsdCBmbGFn cyBmb3IgYWxsIGhvc3RzCi1DRkxBR1M9IiRDRkxBR1MgLVdhbGwgLVd1bmRlZiAtTzIgLWcgLWZu by1zdHJpY3QtYWxpYXNpbmciCitDRkxBR1M9IiRDRkxBR1MgLVdhbGwgLVd1bmRlZiAtV3dyaXRl LXN0cmluZ3MgLU8yIC1nIC1mbm8tc3RyaWN0LWFsaWFzaW5nIgogTERGTEFHUz0iJExERkxBR1Mg LWciCiBpZiB0ZXN0ICIkd2Vycm9yIiA9ICJ5ZXMiIDsgdGhlbgogQ0ZMQUdTPSIkQ0ZMQUdTIC1X ZXJyb3IiCg== ------=_Part_84981_33517238.1220775423696 Content-Type: plain/text; name=fix_wwrite_strings.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fkte4xpr Content-Disposition: attachment; filename=fix_wwrite_strings.diff SW5kZXg6IHFlbXUvYmxvY2stdm1kay5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ibG9jay12 bWRrLmMJMjAwOC0wOS0wNiAyMDozMDowNi4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvYmxvY2st dm1kay5jCTIwMDgtMDktMDcgMDc6Mjg6NTUuMDAwMDAwMDAwICswMDAwCkBAIC0xMTksNyArMTE5 LDcgQEAKICAgICBCRFJWVm1ka1N0YXRlICpzID0gYnMtPm9wYXF1ZTsKICAgICBjaGFyIGRlc2Nb REVTQ19TSVpFXTsKICAgICB1aW50MzJfdCBjaWQ7Ci0gICAgY2hhciAqcF9uYW1lLCAqY2lkX3N0 cjsKKyAgICBjb25zdCBjaGFyICpwX25hbWUsICpjaWRfc3RyOwogICAgIHNpemVfdCBjaWRfc3Ry X3NpemU7CiAKICAgICAvKiB0aGUgZGVzY3JpcHRvciBvZmZzZXQgPSAweDIwMCAqLwpAQCAtMTkz LDcgKzE5Myw3IEBACiAgICAgdWludDMyX3QgZ2RlX2VudHJpZXMsIGdkX3NpemU7CiAgICAgaW50 NjRfdCBnZF9vZmZzZXQsIHJnZF9vZmZzZXQsIGNhcGFjaXR5LCBndF9zaXplOwogICAgIGNoYXIg cF9kZXNjW0RFU0NfU0laRV0sIHNfZGVzY1tERVNDX1NJWkVdLCBoZHJbSEVBREVSX1NJWkVdOwot ICAgIGNoYXIgKmRlc2NfdGVtcGxhdGUgPQorICAgIHN0YXRpYyBjb25zdCBjaGFyIGRlc2NfdGVt cGxhdGVbXSA9CiAgICAgIiMgRGlzayBEZXNjcmlwdG9yRmlsZVxuIgogICAgICJ2ZXJzaW9uPTFc biIKICAgICAiQ0lEPSV4XG4iCkBAIC0yMDIsNyArMjAyLDcgQEAKICAgICAicGFyZW50RmlsZU5h bWVIaW50PVwiJXNcIlxuIgogICAgICJcbiIKICAgICAiIyBFeHRlbnQgZGVzY3JpcHRpb25cbiIK LSAgICAiUlcgJWx1IFNQQVJTRSBcIiVzXCJcbiIKKyAgICAiUlcgJXUgU1BBUlNFIFwiJXNcIlxu IgogICAgICJcbiIKICAgICAiIyBUaGUgRGlzayBEYXRhIEJhc2UgXG4iCiAgICAgIiNEREJcbiIK QEAgLTcwMiw3ICs3MDIsNyBAQAogICAgIGludCBmZCwgaTsKICAgICBWTURLNEhlYWRlciBoZWFk ZXI7CiAgICAgdWludDMyX3QgdG1wLCBtYWdpYywgZ3JhaW5zLCBnZF9zaXplLCBndF9zaXplLCBn dF9jb3VudDsKLSAgICBjaGFyICpkZXNjX3RlbXBsYXRlID0KKyAgICBzdGF0aWMgY29uc3QgY2hh ciBkZXNjX3RlbXBsYXRlW10gPQogICAgICAgICAiIyBEaXNrIERlc2NyaXB0b3JGaWxlXG4iCiAg ICAgICAgICJ2ZXJzaW9uPTFcbiIKICAgICAgICAgIkNJRD0leFxuIgpAQCAtNzkxLDggKzc5MSw5 IEBACiAgICAgICAgIHJlYWxfZmlsZW5hbWUgPSB0ZW1wX3N0ciArIDE7CiAgICAgaWYgKCh0ZW1w X3N0ciA9IHN0cnJjaHIocmVhbF9maWxlbmFtZSwgJzonKSkgIT0gTlVMTCkKICAgICAgICAgcmVh bF9maWxlbmFtZSA9IHRlbXBfc3RyICsgMTsKLSAgICBzbnByaW50ZihkZXNjLCBzaXplb2YoZGVz YyksIGRlc2NfdGVtcGxhdGUsIHRpbWUoTlVMTCksICh1bnNpZ25lZCBsb25nKXRvdGFsX3NpemUs Ci0gICAgICAgICAgICAgcmVhbF9maWxlbmFtZSwgKGZsYWdzICYgQkxPQ0tfRkxBR19DT01QQVQ2 ID8gNiA6IDQpLCB0b3RhbF9zaXplIC8gKDYzICogMTYpKTsKKyAgICBzbnByaW50ZihkZXNjLCBz aXplb2YoZGVzYyksIGRlc2NfdGVtcGxhdGUsICh1bnNpZ25lZCBpbnQpdGltZShOVUxMKSwKKyAg ICAgICAgICAgICAodW5zaWduZWQgbG9uZyl0b3RhbF9zaXplLCByZWFsX2ZpbGVuYW1lLAorICAg ICAgICAgICAgIChmbGFncyAmIEJMT0NLX0ZMQUdfQ09NUEFUNiA/IDYgOiA0KSwgdG90YWxfc2l6 ZSAvICg2MyAqIDE2KSk7CiAKICAgICAvKiB3cml0ZSB0aGUgZGVzY3JpcHRvciAqLwogICAgIGxz ZWVrKGZkLCBsZTY0X3RvX2NwdShoZWFkZXIuZGVzY19vZmZzZXQpIDw8IDksIFNFRUtfU0VUKTsK SW5kZXg6IHFlbXUvYmxvY2suYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvYmxvY2suYwkyMDA4 LTA5LTA2IDIwOjMxOjI1LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ibG9jay5jCTIwMDgtMDkt MDYgMjA6MzE6MzAuMDAwMDAwMDAwICswMDAwCkBAIC0xOTAsNyArMTkwLDcgQEAKIHZvaWQgZ2V0 X3RtcF9maWxlbmFtZShjaGFyICpmaWxlbmFtZSwgaW50IHNpemUpCiB7CiAgICAgaW50IGZkOwot ICAgIGNoYXIgKnRtcGRpcjsKKyAgICBjb25zdCBjaGFyICp0bXBkaXI7CiAgICAgLyogWFhYOiBy YWNlIGNvbmRpdGlvbiBwb3NzaWJsZSAqLwogICAgIHRtcGRpciA9IGdldGVudigiVE1QRElSIik7 CiAgICAgaWYgKCF0bXBkaXIpCkluZGV4OiBxZW11L2h3L3VzYi1uZXQuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBxZW11Lm9yaWcvaHcvdXNiLW5ldC5jCTIwMDgtMDktMDYgMjA6MzI6MDkuMDAwMDAwMDAwICsw MDAwCisrKyBxZW11L2h3L3VzYi1uZXQuYwkyMDA4LTA5LTA2IDIwOjMyOjI3LjAwMDAwMDAwMCAr MDAwMApAQCAtMTAxNiw3ICsxMDE2LDcgQEAKIHsKIH0KIAotc3RhdGljIGNoYXIgKnVzYl9uZXRf c3RyaW5ndGFibGVbXSA9IHsKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiX25ldF9zdHJp bmd0YWJsZVtdID0gewogICAgIFtTVFJJTkdfTUFOVUZBQ1RVUkVSXQk9ICJRRU1VIiwKICAgICBb U1RSSU5HX1BST0RVQ1RdCQk9ICJSTkRJUy9RRU1VIFVTQiBOZXR3b3JrIERldmljZSIsCiAgICAg W1NUUklOR19FVEhBRERSXQkJPSAiNDAwMTAyMDMwNDA1IiwKSW5kZXg6IHFlbXUvaHcvdXNiLW9o Y2kuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvdXNiLW9oY2kuYwkyMDA4LTA5LTA2IDIw OjQxOjMyLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody91c2Itb2hjaS5jCTIwMDgtMDktMDYg MjA6NDI6MTQuMDAwMDAwMDAwICswMDAwCkBAIC01NjUsNyArNTY1LDcgQEAKIHsKICAgICBpbnQg ZGlyOwogICAgIHNpemVfdCBsZW4gPSAwOwotICAgIGNoYXIgKnN0ciA9IE5VTEw7CisgICAgY29u c3QgY2hhciAqc3RyID0gTlVMTDsKICAgICBpbnQgcGlkOwogICAgIGludCByZXQ7CiAgICAgaW50 IGk7CkBAIC04MDAsNyArODAwLDcgQEAKIHsKICAgICBpbnQgZGlyOwogICAgIHNpemVfdCBsZW4g PSAwOwotICAgIGNoYXIgKnN0ciA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqc3RyID0gTlVMTDsK ICAgICBpbnQgcGlkOwogICAgIGludCByZXQ7CiAgICAgaW50IGk7CkluZGV4OiBxZW11L3NsaXJw L2lwX2ljbXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvc2xpcnAvaXBfaWNtcC5jCTIwMDgt MDktMDYgMjA6MzM6NTAuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3NsaXJwL2lwX2ljbXAuYwky MDA4LTA5LTA2IDIwOjM0OjU5LjAwMDAwMDAwMCArMDAwMApAQCAtMjA3LDEyICsyMDcsOCBAQAog CiAjZGVmaW5lIElDTVBfTUFYREFUQUxFTiAoSVBfTVNTLTI4KQogdm9pZAotaWNtcF9lcnJvciht c3JjLCB0eXBlLCBjb2RlLCBtaW5zaXplLCBtZXNzYWdlKQotICAgICBzdHJ1Y3QgbWJ1ZiAqbXNy YzsKLSAgICAgdV9jaGFyIHR5cGU7Ci0gICAgIHVfY2hhciBjb2RlOwotICAgICBpbnQgbWluc2l6 ZTsKLSAgICAgY2hhciAqbWVzc2FnZTsKK2ljbXBfZXJyb3Ioc3RydWN0IG1idWYgKm1zcmMsIHVf Y2hhciB0eXBlLCB1X2NoYXIgY29kZSwgaW50IG1pbnNpemUsCisgICAgICAgICAgIGNvbnN0IGNo YXIgKm1lc3NhZ2UpCiB7CiAgIHVuc2lnbmVkIGhsZW4sIHNobGVuLCBzX2lwX2xlbjsKICAgcmVn aXN0ZXIgc3RydWN0IGlwICppcDsKSW5kZXg6IHFlbXUvc2xpcnAvaXBfaWNtcC5oCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHFlbXUub3JpZy9zbGlycC9pcF9pY21wLmgJMjAwOC0wOS0wNiAyMDozMzo0OC4wMDAw MDAwMDAgKzAwMDAKKysrIHFlbXUvc2xpcnAvaXBfaWNtcC5oCTIwMDgtMDktMDcgMDY6NDQ6MjIu MDAwMDAwMDAwICswMDAwCkBAIC0xNTgsNyArMTU4LDggQEAKIAkodHlwZSkgPT0gSUNNUF9NQVNL UkVRIHx8ICh0eXBlKSA9PSBJQ01QX01BU0tSRVBMWSkKIAogdm9pZCBpY21wX2lucHV0IF9QKChz dHJ1Y3QgbWJ1ZiAqLCBpbnQpKTsKLXZvaWQgaWNtcF9lcnJvciBfUCgoc3RydWN0IG1idWYgKiwg dV9jaGFyLCB1X2NoYXIsIGludCwgY2hhciAqKSk7Cit2b2lkIGljbXBfZXJyb3Ioc3RydWN0IG1i dWYgKm1zcmMsIHVfY2hhciB0eXBlLCB1X2NoYXIgY29kZSwgaW50IG1pbnNpemUsCisgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSk7CiB2b2lkIGljbXBfcmVmbGVjdCBfUCgoc3Ry dWN0IG1idWYgKikpOwogCiAjZW5kaWYKSW5kZXg6IHFlbXUvc2xpcnAvbWlzYy5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHFlbXUub3JpZy9zbGlycC9taXNjLmMJMjAwOC0wOS0wNiAyMDozNToyOC4wMDAwMDAw MDAgKzAwMDAKKysrIHFlbXUvc2xpcnAvbWlzYy5jCTIwMDgtMDktMDYgMjE6MDA6MzEuMDAwMDAw MDAwICswMDAwCkBAIC0zMDcsNyArMzA3LDcgQEAKIAlzb2NrbGVuX3QgYWRkcmxlbiA9IHNpemVv ZihhZGRyKTsKIAlpbnQgb3B0OwogICAgICAgICBpbnQgbWFzdGVyID0gLTE7Ci0JY2hhciAqYXJn dlsyNTZdOworCWNvbnN0IGNoYXIgKmFyZ3ZbMjU2XTsKICNpZiAwCiAJY2hhciBidWZmWzI1Nl07 CiAjZW5kaWYKQEAgLTQxMSw3ICs0MTEsNyBAQAogCQkgICB9IHdoaWxlIChjKTsKIAogCQlhcmd2 W2ldID0gMDsKLQkJZXhlY3ZwKGFyZ3ZbMF0sIGFyZ3YpOworCQlleGVjdnAoYXJndlswXSwgKGNo YXIgKiopYXJndik7CiAKIAkJLyogT29vcHMsIGZhaWxlZCwgbGV0J3MgdGVsbCB0aGUgdXNlciB3 aHkgKi8KIAkJICB7CkluZGV4OiBxZW11L3ZsLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3Zs LmMJMjAwOC0wOS0wNiAyMDozNjoxMi4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdmwuYwkyMDA4 LTA5LTA3IDA3OjMwOjA1LjAwMDAwMDAwMCArMDAwMApAQCAtMTg5OCw3ICsxODk4LDcgQEAKICAg ICByZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgY2hhciAqbXV4X2hlbHBbXSA9IHsKK3N0YXRpYyBj b25zdCBjaGFyICogY29uc3QgbXV4X2hlbHBbXSA9IHsKICAgICAiJSBoICAgIHByaW50IHRoaXMg aGVscFxuXHIiLAogICAgICIlIHggICAgZXhpdCBlbXVsYXRvclxuXHIiLAogICAgICIlIHMgICAg c2F2ZSBkaXNrIGRhdGEgYmFjayB0byBmaWxlIChpZiAtc25hcHNob3QpXG5cciIsCkBAIC0xOTQ4 LDcgKzE5NDgsNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJ3gnOgogICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgICBjaGFyICp0ZXJtID0gICJRRU1VOiBUZXJtaW5h dGVkXG5cciI7CisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRlcm0gPSAgIlFFTVU6IFRl cm1pbmF0ZWRcblxyIjsKICAgICAgICAgICAgICAgICAgY2hyLT5jaHJfd3JpdGUoY2hyLCh1aW50 OF90ICopdGVybSxzdHJsZW4odGVybSkpOwogICAgICAgICAgICAgICAgICBleGl0KDApOwogICAg ICAgICAgICAgICAgICBicmVhazsKQEAgLTM5NTcsNiArMzk1Nyw3IEBACiAgICAgY2hhciAqc3Ry ID0gc3RyZHVwKGlucHV0X3N0cik7CiAgICAgY2hhciAqaG9zdF9zdHIgPSBzdHI7CiAgICAgY2hh ciAqc3JjX3N0cjsKKyAgICBjb25zdCBjaGFyICpzcmNfc3RyMjsKICAgICBjaGFyICpwdHI7CiAK ICAgICAvKgpAQCAtMzk3NSwxMCArMzk3NiwxMSBAQAogICAgIGlmIChwYXJzZV9ob3N0X3BvcnQo aGFkZHIsIGhvc3Rfc3RyKSA8IDApCiAgICAgICAgIGdvdG8gZmFpbDsKIAorICAgIHNyY19zdHIy ID0gc3JjX3N0cjsKICAgICBpZiAoIXNyY19zdHIgfHwgKnNyY19zdHIgPT0gJ1wwJykKLSAgICAg ICAgc3JjX3N0ciA9ICI6MCI7CisgICAgICAgIHNyY19zdHIyID0gIjowIjsKIAotICAgIGlmIChw YXJzZV9ob3N0X3BvcnQoc2FkZHIsIHNyY19zdHIpIDwgMCkKKyAgICBpZiAocGFyc2VfaG9zdF9w b3J0KHNhZGRyLCBzcmNfc3RyMikgPCAwKQogICAgICAgICBnb3RvIGZhaWw7CiAKICAgICBmcmVl KHN0cik7CkBAIC01MTY0LDcgKzUxNjYsNyBAQAogfQogCiBzdGF0aWMgaW50IGNoZWNrX3BhcmFt cyhjaGFyICpidWYsIGludCBidWZfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIg KipwYXJhbXMsIGNvbnN0IGNoYXIgKnN0cikKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGNoYXIgKiBjb25zdCAqcGFyYW1zLCBjb25zdCBjaGFyICpzdHIpCiB7CiAgICAgY29uc3QgY2hh ciAqcDsKICAgICBpbnQgaTsKQEAgLTU0NTEsOSArNTQ1MywxMCBAQAogICAgIGludCBjYWNoZTsK ICAgICBpbnQgYmRydl9mbGFnczsKICAgICBjaGFyICpzdHIgPSBhcmctPm9wdDsKLSAgICBjaGFy ICpwYXJhbXNbXSA9IHsgImJ1cyIsICJ1bml0IiwgImlmIiwgImluZGV4IiwgImN5bHMiLCAiaGVh ZHMiLAotICAgICAgICAgICAgICAgICAgICAgICAic2VjcyIsICJ0cmFucyIsICJtZWRpYSIsICJz bmFwc2hvdCIsICJmaWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgImNhY2hlIiwgImZvcm1h dCIsIE5VTEwgfTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBhcmFtc1tdID0geyAi YnVzIiwgInVuaXQiLCAiaWYiLCAiaW5kZXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJjeWxzIiwgImhlYWRzIiwgInNlY3MiLCAidHJhbnMiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtZWRpYSIsICJzbmFwc2hvdCIs ICJmaWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2Fj aGUiLCAiZm9ybWF0IiwgTlVMTCB9OwogCiAgICAgaWYgKGNoZWNrX3BhcmFtcyhidWYsIHNpemVv ZihidWYpLCBwYXJhbXMsIHN0cikgPCAwKSB7CiAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInFl bXU6IHVua25vd24gcGFyYW1ldGVyICclcycgaW4gJyVzJ1xuIiwKSW5kZXg6IHFlbXUvZXhlYy5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9leGVjLmMJMjAwOC0wOS0wNiAyMDo0NDo0OC4wMDAw MDAwMDAgKzAwMDAKKysrIHFlbXUvZXhlYy5jCTIwMDgtMDktMDYgMjA6NDQ6NTkuMDAwMDAwMDAw ICswMDAwCkBAIC0xODAsNyArMTgwLDcgQEAKICNlbmRpZgogCiAvKiBsb2cgc3VwcG9ydCAqLwot Y2hhciAqbG9nZmlsZW5hbWUgPSAiL3RtcC9xZW11LmxvZyI7Citjb25zdCBjaGFyICpsb2dmaWxl bmFtZSA9ICIvdG1wL3FlbXUubG9nIjsKIEZJTEUgKmxvZ2ZpbGU7CiBpbnQgbG9nbGV2ZWw7CiBz dGF0aWMgaW50IGxvZ19hcHBlbmQgPSAwOwpJbmRleDogcWVtdS9nZGJzdHViLmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gcWVtdS5vcmlnL2dkYnN0dWIuYwkyMDA4LTA5LTA2IDIwOjQ0OjE1LjAwMDAwMDAwMCAr MDAwMAorKysgcWVtdS9nZGJzdHViLmMJMjAwOC0wOS0wNyAwNjozMDo0OS4wMDAwMDAwMDAgKzAw MDAKQEAgLTIwNSw3ICsyMDUsNyBAQAogfQogCiAvKiByZXR1cm4gLTEgaWYgZXJyb3IsIDAgaWYg T0sgKi8KLXN0YXRpYyBpbnQgcHV0X3BhY2tldChHREJTdGF0ZSAqcywgY2hhciAqYnVmKQorc3Rh dGljIGludCBwdXRfcGFja2V0KEdEQlN0YXRlICpzLCBjb25zdCBjaGFyICpidWYpCiB7CiAgICAg aW50IGxlbiwgY3N1bSwgaTsKICAgICB1aW50OF90ICpwOwpAQCAtMTI1OSw3ICsxMjU5LDcgQEAK ICAgICAleCAgLSB0YXJnZXRfdWxvbmcgYXJndW1lbnQgcHJpbnRlZCBpbiBoZXguCiAgICAgJWx4 IC0gNjQtYml0IGFyZ3VtZW50IHByaW50ZWQgaW4gaGV4LgogICAgICVzICAtIHN0cmluZyBwb2lu dGVyICh0YXJnZXRfdWxvbmcpIGFuZCBsZW5ndGggKGludCkgcGFpci4gICovCi12b2lkIGdkYl9k b19zeXNjYWxsKGdkYl9zeXNjYWxsX2NvbXBsZXRlX2NiIGNiLCBjaGFyICpmbXQsIC4uLikKK3Zv aWQgZ2RiX2RvX3N5c2NhbGwoZ2RiX3N5c2NhbGxfY29tcGxldGVfY2IgY2IsIGNvbnN0IGNoYXIg KmZtdCwgLi4uKQogewogICAgIHZhX2xpc3QgdmE7CiAgICAgY2hhciBidWZbMjU2XTsKSW5kZXg6 IHFlbXUvaHcvZTEwMDAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvZTEwMDAuYwkyMDA4 LTA5LTA2IDIwOjQyOjQxLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9lMTAwMC5jCTIwMDgt MDktMDcgMDc6MDg6NTQuMDAwMDAwMDAwICswMDAwCkBAIC05NDksNyArOTQ5LDcgQEAKICAgICBF MTAwMFN0YXRlICpkOwogICAgIHVpbnQ4X3QgKnBjaV9jb25mOwogICAgIHVpbnQxNl90IGNoZWNr c3VtID0gMDsKLSAgICBjaGFyICppbmZvX3N0ciA9ICJlMTAwMCI7CisgICAgc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBpbmZvX3N0ciA9ICJlMTAwMCI7CiAgICAgaW50IGk7CiAKICAgICBkID0g KEUxMDAwU3RhdGUgKilwY2lfcmVnaXN0ZXJfZGV2aWNlKGJ1cywgImUxMDAwIiwKSW5kZXg6IHFl bXUvbGludXgtdXNlci9zdHJhY2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvbGludXgtdXNl ci9zdHJhY2UuYwkyMDA4LTA5LTA2IDIwOjQ2OjA2LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9s aW51eC11c2VyL3N0cmFjZS5jCTIwMDgtMDktMDYgMjA6NDY6NTMuMDAwMDAwMDAwICswMDAwCkBA IC0xMyw4ICsxMyw4IEBACiAKIHN0cnVjdCBzeXNjYWxsbmFtZSB7CiAgICAgaW50IG5yOwotICAg IGNoYXIgKm5hbWU7Ci0gICAgY2hhciAqZm9ybWF0OworICAgIGNvbnN0IGNoYXIgKm5hbWU7Cisg ICAgY29uc3QgY2hhciAqZm9ybWF0OwogICAgIHZvaWQgKCpjYWxsKShzdHJ1Y3Qgc3lzY2FsbG5h bWUgKiwKICAgICAgICAgICAgICAgICAgYWJpX2xvbmcsIGFiaV9sb25nLCBhYmlfbG9uZywKICAg ICAgICAgICAgICAgICAgYWJpX2xvbmcsIGFiaV9sb25nLCBhYmlfbG9uZyk7CkBAIC0yNzEsNyAr MjcxLDcgQEAKICAgICAgICAgICAgICAgYWJpX2xvbmcgYXJnNCwgYWJpX2xvbmcgYXJnNSwgYWJp X2xvbmcgYXJnNikKIHsKICAgICBpbnQgaTsKLSAgICBjaGFyICpmb3JtYXQ9IiVzKCIgVEFSR0VU X0FCSV9GTVRfbGQgIiwiIFRBUkdFVF9BQklfRk1UX2xkICIsIiBUQVJHRVRfQUJJX0ZNVF9sZCAi LCIgVEFSR0VUX0FCSV9GTVRfbGQgIiwiIFRBUkdFVF9BQklfRk1UX2xkICIsIiBUQVJHRVRfQUJJ X0ZNVF9sZCAiKSI7CisgICAgY29uc3QgY2hhciAqZm9ybWF0PSIlcygiIFRBUkdFVF9BQklfRk1U X2xkICIsIiBUQVJHRVRfQUJJX0ZNVF9sZCAiLCIgVEFSR0VUX0FCSV9GTVRfbGQgIiwiIFRBUkdF VF9BQklfRk1UX2xkICIsIiBUQVJHRVRfQUJJX0ZNVF9sZCAiLCIgVEFSR0VUX0FCSV9GTVRfbGQg IikiOwogCiAgICAgZ2VtdV9sb2coIiVkICIsIGdldHBpZCgpICk7CiAKSW5kZXg6IHFlbXUvZ2Ri c3R1Yi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9nZGJzdHViLmgJMjAwOC0wOS0wNyAwNjoz MToxNS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvZ2Ric3R1Yi5oCTIwMDgtMDktMDcgMDY6MzE6 MjMuMDAwMDAwMDAwICswMDAwCkBAIC02LDcgKzYsNyBAQAogdHlwZWRlZiB2b2lkICgqZ2RiX3N5 c2NhbGxfY29tcGxldGVfY2IpKENQVVN0YXRlICplbnYsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGFyZ2V0X3Vsb25nIHJldCwgdGFyZ2V0X3Vsb25nIGVycik7CiAK LXZvaWQgZ2RiX2RvX3N5c2NhbGwoZ2RiX3N5c2NhbGxfY29tcGxldGVfY2IgY2IsIGNoYXIgKmZt dCwgLi4uKTsKK3ZvaWQgZ2RiX2RvX3N5c2NhbGwoZ2RiX3N5c2NhbGxfY29tcGxldGVfY2IgY2Is IGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKIGludCB1c2VfZ2RiX3N5c2NhbGxzKHZvaWQpOwogI2lm ZGVmIENPTkZJR19VU0VSX09OTFkKIGludCBnZGJfaGFuZGxlc2lnIChDUFVTdGF0ZSAqLCBpbnQp OwpJbmRleDogcWVtdS9tNjhrLWRpcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9tNjhrLWRp cy5jCTIwMDgtMDktMDcgMDY6MzU6NTMuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L202OGstZGlz LmMJMjAwOC0wOS0wNyAwNjozODo1MS4wMDAwMDAwMDAgKzAwMDAKQEAgLTU0NiwxMyArNTQ2LDEz IEBACiAKIC8qIExvY2FsIGZ1bmN0aW9uIHByb3RvdHlwZXMuICAqLwogCi1jb25zdCBjaGFyICog Y29uc3QgZnBjcl9uYW1lc1tdID0KK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZnBjcl9uYW1l c1tdID0KIHsKICAgIiIsICIlZnBpYXIiLCAiJWZwc3IiLCAiJWZwaWFyLyVmcHNyIiwgIiVmcGNy IiwKICAgIiVmcGlhci8lZnBjciIsICIlZnBzci8lZnBjciIsICIlZnBpYXIvJWZwc3IvJWZwY3Ii CiB9OwogCi1zdGF0aWMgY2hhciAqY29uc3QgcmVnX25hbWVzW10gPQorc3RhdGljIGNvbnN0IGNo YXIgKmNvbnN0IHJlZ19uYW1lc1tdID0KIHsKICAgIiVkMCIsICIlZDEiLCAiJWQyIiwgIiVkMyIs ICIlZDQiLCAiJWQ1IiwgIiVkNiIsICIlZDciLAogICAiJWEwIiwgIiVhMSIsICIlYTIiLCAiJWEz IiwgIiVhNCIsICIlYTUiLCAiJWZwIiwgIiVzcCIsCkBAIC01NjEsNyArNTYxLDcgQEAKIAogLyog TmFtZSBvZiByZWdpc3RlciBoYWx2ZXMgZm9yIE1BQy9FTUFDLgogICAgU2VwYXJhdGUgZnJvbSBy ZWdfbmFtZXMgc2luY2UgJ3NwdScsICdmcGwnIGxvb2sgd2VpcmQuICAqLwotc3RhdGljIGNoYXIg KmNvbnN0IHJlZ19oYWxmX25hbWVzW10gPQorc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHJlZ19o YWxmX25hbWVzW10gPQogewogICAiJWQwIiwgIiVkMSIsICIlZDIiLCAiJWQzIiwgIiVkNCIsICIl ZDUiLCAiJWQ2IiwgIiVkNyIsCiAgICIlYTAiLCAiJWExIiwgIiVhMiIsICIlYTMiLCAiJWE0Iiwg IiVhNSIsICIlYTYiLCAiJWE3IiwKQEAgLTk5MSw3ICs5OTEsNyBAQAogCSAgICAgICBkaXNhc3Nl bWJsZV9pbmZvICppbmZvKQogewogICBpbnQgd29yZDsKLSAgc3RhdGljIGNoYXIgKmNvbnN0IHNj YWxlc1tdID0geyAiIiwgIjoyIiwgIjo0IiwgIjo4IiB9OworICBzdGF0aWMgY29uc3QgY2hhciAq Y29uc3Qgc2NhbGVzW10gPSB7ICIiLCAiOjIiLCAiOjQiLCAiOjgiIH07CiAgIGJmZF92bWEgYmFz ZV9kaXNwOwogICBiZmRfdm1hIG91dGVyX2Rpc3A7CiAgIGNoYXIgYnVmWzQwXTsKQEAgLTExMDYs NyArMTEwNiw3IEBACiAgICAgewogICAgIGNhc2UgJ2MnOgkJLyogQ2FjaGUgaWRlbnRpZmllci4g ICovCiAgICAgICB7Ci0gICAgICAgIHN0YXRpYyBjaGFyICpjb25zdCBjYWNoZUZpZWxkTmFtZVtd ID0geyAibmMiLCAiZGMiLCAiaWMiLCAiYmMiIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFy ICpjb25zdCBjYWNoZUZpZWxkTmFtZVtdID0geyAibmMiLCAiZGMiLCAiaWMiLCAiYmMiIH07CiAg ICAgICAgIHZhbCA9IGZldGNoX2FyZyAoYnVmZmVyLCBwbGFjZSwgMiwgaW5mbyk7CiAgICAgICAg ICgqaW5mby0+ZnByaW50Zl9mdW5jKSAoaW5mby0+c3RyZWFtLCBjYWNoZUZpZWxkTmFtZVt2YWxd KTsKICAgICAgICAgYnJlYWs7CkBAIC0xMTU3LDcgKzExNTcsNyBAQAogCS8qIEZJWE1FOiBUaGVy ZSdzIGEgcHJvYmxlbSBoZXJlLCBkaWZmZXJlbnQgbTY4ayBwcm9jZXNzb3JzIGNhbGwgdGhlCiAJ ICAgc2FtZSBhZGRyZXNzIGRpZmZlcmVudCBuYW1lcy4gVGhpcyB0YWJsZSBjYW4ndCBnZXQgaXQg cmlnaHQKIAkgICBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyB3aGljaCBwcm9jZXNzb3IgaXQncyBk aXNhc3NlbWJsaW5nIGZvci4gICovCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCB7IGNoYXIgKm5hbWU7 IGludCB2YWx1ZTsgfSBuYW1lc1tdCisJc3RhdGljIGNvbnN0IHN0cnVjdCB7IGNvbnN0IGNoYXIg Km5hbWU7IGludCB2YWx1ZTsgfSBuYW1lc1tdCiAJICA9IHt7IiVzZmMiLCAweDAwMH0sIHsiJWRm YyIsIDB4MDAxfSwgeyIlY2FjciIsIDB4MDAyfSwKIAkgICAgIHsiJXRjIiwgIDB4MDAzfSwgeyIl aXR0MCIsMHgwMDR9LCB7IiVpdHQxIiwgMHgwMDV9LAogICAgICAgICAgICAgIHsiJWR0dDAiLDB4 MDA2fSwgeyIlZHR0MSIsMHgwMDd9LCB7IiVidXNjciIsMHgwMDh9LApAQCAtMTIwMSw3ICsxMjAx LDcgQEAKICAgICBjYXNlICdNJzoKICAgICAgIGlmIChwbGFjZSA9PSAnaCcpCiAJewotCSAgc3Rh dGljIGNoYXIgKmNvbnN0IHNjYWxlZmFjdG9yX25hbWVbXSA9IHsgIjw8IiwgIj4+IiB9OworCSAg c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNjYWxlZmFjdG9yX25hbWVbXSA9IHsgIjw8IiwgIj4+ IiB9OwogCSAgdmFsID0gZmV0Y2hfYXJnIChidWZmZXIsIHBsYWNlLCAxLCBpbmZvKTsKIAkgICgq aW5mby0+ZnByaW50Zl9mdW5jKSAoaW5mby0+c3RyZWFtLCBzY2FsZWZhY3Rvcl9uYW1lW3ZhbF0p OwogCX0KQEAgLTE2MzMsNyArMTYzMyw3IEBACiAgICAgY2FzZSAnMyc6CiAgICAgICB7CiAJaW50 IHZhbCA9IGZldGNoX2FyZyAoYnVmZmVyLCBwbGFjZSwgNSwgaW5mbyk7Ci0JY2hhciAqbmFtZSA9 IDA7CisgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSAwOwogCiAJc3dpdGNoICh2YWwpCiAJICB7 CkluZGV4OiBxZW11L3RhcmdldC1jcmlzL3RyYW5zbGF0ZS5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUu b3JpZy90YXJnZXQtY3Jpcy90cmFuc2xhdGUuYwkyMDA4LTA5LTA3IDA2OjM1OjA0LjAwMDAwMDAw MCArMDAwMAorKysgcWVtdS90YXJnZXQtY3Jpcy90cmFuc2xhdGUuYwkyMDA4LTA5LTA3IDA2OjM1 OjE3LjAwMDAwMDAwMCArMDAwMApAQCAtMTIzLDcgKzEyMyw3IEBACiAJaW50IHNpbmdsZXN0ZXBf ZW5hYmxlZDsKIH0gRGlzYXNDb250ZXh0OwogCi1zdGF0aWMgdm9pZCBnZW5fQlVHKERpc2FzQ29u dGV4dCAqZGMsIGNoYXIgKmZpbGUsIGludCBsaW5lKQorc3RhdGljIHZvaWQgZ2VuX0JVRyhEaXNh c0NvbnRleHQgKmRjLCBjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSkKIHsKIAlwcmludGYgKCJC VUc6IHBjPSV4ICVzICVkXG4iLCBkYy0+cGMsIGZpbGUsIGxpbmUpOwogCWZwcmludGYgKGxvZ2Zp bGUsICJCVUc6IHBjPSV4ICVzICVkXG4iLCBkYy0+cGMsIGZpbGUsIGxpbmUpOwpJbmRleDogcWVt dS9ody9zaC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9zaC5oCTIwMDgtMDktMDcgMDY6 NTA6MTcuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3NoLmgJMjAwOC0wOS0wNyAwNjo1MDo0 My4wMDAwMDAwMDAgKzAwMDAKQEAgLTQzLDYgKzQzLDYgQEAKIAkJICAgICBzdHJ1Y3QgaW50Y19z b3VyY2UgKmJyaV9zb3VyY2UpOwogCiAvKiB0YzU4MTI4LmMgKi8KLWludCB0YzU4MTI4X2luaXQo c3RydWN0IFNINzc1MFN0YXRlICpzLCBjaGFyICp6b25lMSwgY2hhciAqem9uZTIpOworaW50IHRj NTgxMjhfaW5pdChzdHJ1Y3QgU0g3NzUwU3RhdGUgKnMsIGNvbnN0IGNoYXIgKnpvbmUxLCBjb25z dCBjaGFyICp6b25lMik7CiAKICNlbmRpZgpJbmRleDogcWVtdS9ody90YzU4MTI4LmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0gcWVtdS5vcmlnL2h3L3RjNTgxMjguYwkyMDA4LTA5LTA3IDA2OjQ4OjU0LjAwMDAw MDAwMCArMDAwMAorKysgcWVtdS9ody90YzU4MTI4LmMJMjAwOC0wOS0wNyAwNjo1MDo1OS4wMDAw MDAwMDAgKzAwMDAKQEAgLTI2LDcgKzI2LDcgQEAKIAogI2RlZmluZSBGTEFTSF9TSVpFICgxNiox MDI0KjEwMjQpCiAKLXZvaWQgaW5pdF9kZXYodGM1ODEyOF9kZXYgKiBkZXYsIGNoYXIgKmZpbGVu YW1lKQorc3RhdGljIHZvaWQgaW5pdF9kZXYodGM1ODEyOF9kZXYgKiBkZXYsIGNvbnN0IGNoYXIg KmZpbGVuYW1lKQogewogICAgIGludCByZXQsIGJsb2NrczsKIApAQCAtMTc1LDcgKzE3NSw3IEBA CiAgICAgdGM1ODEyOF9jYgkJCS8qIENhbGxiYWNrICovCiB9OwogCi1pbnQgdGM1ODEyOF9pbml0 KHN0cnVjdCBTSDc3NTBTdGF0ZSAqcywgY2hhciAqem9uZTEsIGNoYXIgKnpvbmUyKQoraW50IHRj NTgxMjhfaW5pdChzdHJ1Y3QgU0g3NzUwU3RhdGUgKnMsIGNvbnN0IGNoYXIgKnpvbmUxLCBjb25z dCBjaGFyICp6b25lMikKIHsKICAgICBpbml0X2RldigmdGM1ODEyOF9kZXZzWzBdLCB6b25lMSk7 CiAgICAgaW5pdF9kZXYoJnRjNTgxMjhfZGV2c1sxXSwgem9uZTIpOwpJbmRleDogcWVtdS9saW51 eC11c2VyL2FybS9ud2ZwZS9mcG9wY29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9saW51 eC11c2VyL2FybS9ud2ZwZS9mcG9wY29kZS5oCTIwMDgtMDktMDcgMDY6NTc6MjYuMDAwMDAwMDAw ICswMDAwCisrKyBxZW11L2xpbnV4LXVzZXIvYXJtL253ZnBlL2Zwb3Bjb2RlLmgJMjAwOC0wOS0w NyAwNjo1Nzo1MC4wMDAwMDAwMDAgKzAwMDAKQEAgLTM2NiwxOSArMzY2LDE5IEBACiAvKiBHZXQg dGhlIHJvdW5kaW5nIG1vZGUgZnJvbSB0aGUgb3Bjb2RlLiAqLwogI2RlZmluZSBnZXRSb3VuZGlu Z01vZGUob3Bjb2RlKQkJKChvcGNvZGUgJiBNQVNLX1JPVU5ESU5HX01PREUpID4+IDUpCiAKLXN0 YXRpYyBpbmxpbmUgY29uc3QgZmxvYXR4ODAgZ2V0RXh0ZW5kZWRDb25zdGFudChjb25zdCB1bnNp Z25lZCBpbnQgbkluZGV4KQorc3RhdGljIGlubGluZSBmbG9hdHg4MCBnZXRFeHRlbmRlZENvbnN0 YW50KGNvbnN0IHVuc2lnbmVkIGludCBuSW5kZXgpCiB7CiAgICBleHRlcm4gY29uc3QgZmxvYXR4 ODAgZmxvYXR4ODBDb25zdGFudFtdOwogICAgcmV0dXJuIGZsb2F0eDgwQ29uc3RhbnRbbkluZGV4 XTsKIH0KIAotc3RhdGljIGlubGluZSBjb25zdCBmbG9hdDY0IGdldERvdWJsZUNvbnN0YW50KGNv bnN0IHVuc2lnbmVkIGludCBuSW5kZXgpCitzdGF0aWMgaW5saW5lIGZsb2F0NjQgZ2V0RG91Ymxl Q29uc3RhbnQoY29uc3QgdW5zaWduZWQgaW50IG5JbmRleCkKIHsKICAgIGV4dGVybiBjb25zdCBm bG9hdDY0IGZsb2F0NjRDb25zdGFudFtdOwogICAgcmV0dXJuIGZsb2F0NjRDb25zdGFudFtuSW5k ZXhdOwogfQogCi1zdGF0aWMgaW5saW5lIGNvbnN0IGZsb2F0MzIgZ2V0U2luZ2xlQ29uc3RhbnQo Y29uc3QgdW5zaWduZWQgaW50IG5JbmRleCkKK3N0YXRpYyBpbmxpbmUgZmxvYXQzMiBnZXRTaW5n bGVDb25zdGFudChjb25zdCB1bnNpZ25lZCBpbnQgbkluZGV4KQogewogICAgZXh0ZXJuIGNvbnN0 IGZsb2F0MzIgZmxvYXQzMkNvbnN0YW50W107CiAgICByZXR1cm4gZmxvYXQzMkNvbnN0YW50W25J bmRleF07CkluZGV4OiBxZW11L3NoNC1kaXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvc2g0 LWRpcy5jCTIwMDgtMDktMDcgMDY6NTE6NDQuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3NoNC1k aXMuYwkyMDA4LTA5LTA3IDA2OjU0OjA0LjAwMDAwMDAwMCArMDAwMApAQCAtMzI1LDcgKzMyNSw3 IEBACiAKIHR5cGVkZWYgc3RydWN0CiB7Ci0gIGNoYXIgKm5hbWU7CisgIGNvbnN0IGNoYXIgKm5h bWU7CiAgIHNoX2FyZ190eXBlIGFyZ1s0XTsKICAgc2hfbmliYmxlX3R5cGUgbmliYmxlc1s5XTsK ICAgdW5zaWduZWQgaW50IGFyY2g7CkBAIC0xMzg2LDEzICsxMzg2LDEzIEBACiAgICAgIGludCBm aWVsZF9iOwogICAgICBzdHJ1Y3QgZGlzYXNzZW1ibGVfaW5mbyAqaW5mbzsKIHsKLSAgc3RhdGlj IGNoYXIgKnN4X3RhYltdID0geyAieDAiLCAieDEiLCAiYTAiLCAiYTEiIH07Ci0gIHN0YXRpYyBj aGFyICpzeV90YWJbXSA9IHsgInkwIiwgInkxIiwgIm0wIiwgIm0xIiB9OworICBzdGF0aWMgY29u c3QgY2hhciAqc3hfdGFiW10gPSB7ICJ4MCIsICJ4MSIsICJhMCIsICJhMSIgfTsKKyAgc3RhdGlj IGNvbnN0IGNoYXIgKnN5X3RhYltdID0geyAieTAiLCAieTEiLCAibTAiLCAibTEiIH07CiAgIGZw cmludGZfZnR5cGUgZnByaW50Zl9mbiA9IGluZm8tPmZwcmludGZfZnVuYzsKICAgdm9pZCAqc3Ry ZWFtID0gaW5mby0+c3RyZWFtOwogICB1bnNpZ25lZCBpbnQgbmliMSwgbmliMiwgbmliMzsKICAg dW5zaWduZWQgaW50IGFsdG5pYjEsIG5pYjQ7Ci0gIGNoYXIgKmRjID0gTlVMTDsKKyAgY29uc3Qg Y2hhciAqZGMgPSBOVUxMOwogICBjb25zdCBzaF9vcGNvZGVfaW5mbyAqb3A7CiAKICAgaWYgKChm aWVsZF9iICYgMHhlODAwKSA9PSAwKQpAQCAtMTQwNSwxMCArMTQwNSwxMCBAQAogICAgIH0KICAg aWYgKChmaWVsZF9iICYgMHhjMDAwKSA9PSAweDQwMDAgJiYgKGZpZWxkX2IgJiAweDMwMDApICE9 IDB4MTAwMCkKICAgICB7Ci0gICAgICBzdGF0aWMgY2hhciAqZHVfdGFiW10gPSB7ICJ4MCIsICJ5 MCIsICJhMCIsICJhMSIgfTsKLSAgICAgIHN0YXRpYyBjaGFyICpzZV90YWJbXSA9IHsgIngwIiwg IngxIiwgInkwIiwgImExIiB9OwotICAgICAgc3RhdGljIGNoYXIgKnNmX3RhYltdID0geyAieTAi LCAieTEiLCAieDAiLCAiYTEiIH07Ci0gICAgICBzdGF0aWMgY2hhciAqc2dfdGFiW10gPSB7ICJt MCIsICJtMSIsICJhMCIsICJhMSIgfTsKKyAgICAgIHN0YXRpYyBjb25zdCBjaGFyICpkdV90YWJb XSA9IHsgIngwIiwgInkwIiwgImEwIiwgImExIiB9OworICAgICAgc3RhdGljIGNvbnN0IGNoYXIg KnNlX3RhYltdID0geyAieDAiLCAieDEiLCAieTAiLCAiYTEiIH07CisgICAgICBzdGF0aWMgY29u c3QgY2hhciAqc2ZfdGFiW10gPSB7ICJ5MCIsICJ5MSIsICJ4MCIsICJhMSIgfTsKKyAgICAgIHN0 YXRpYyBjb25zdCBjaGFyICpzZ190YWJbXSA9IHsgIm0wIiwgIm0xIiwgImEwIiwgImExIiB9Owog CiAgICAgICBpZiAoZmllbGRfYiAmIDB4MjAwMCkKIAl7CkluZGV4OiBxZW11L3RhcmdldC1hbHBo YS9oZWxwZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LWFscGhhL2hlbHBlci5j CTIwMDgtMDktMDcgMDY6NTU6MDAuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1hbHBo YS9oZWxwZXIuYwkyMDA4LTA5LTA3IDA2OjU2OjMxLjAwMDAwMDAwMCArMDAwMApAQCAtNDExLDcg KzQxMSw3IEBACiAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpjcHVfZnByaW50ZikoRklMRSAq ZiwgY29uc3QgY2hhciAqZm10LCAuLi4pLAogICAgICAgICAgICAgICAgICAgICAgaW50IGZsYWdz KQogewotICAgIHN0YXRpYyB1bnNpZ25lZCBjaGFyICpsaW51eF9yZWdfbmFtZXNbXSA9IHsKKyAg ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciAqbGludXhfcmVnX25hbWVzW10gPSB7CiAgICAg ICAgICJ2MCAiLCAidDAgIiwgInQxICIsICJ0MiAiLCAidDMgIiwgInQ0ICIsICJ0NSAiLCAidDYg IiwKICAgICAgICAgInQ3ICIsICJzMCAiLCAiczEgIiwgInMyICIsICJzMyAiLCAiczQgIiwgInM1 ICIsICJmcCAiLAogICAgICAgICAiYTAgIiwgImExICIsICJhMiAiLCAiYTMgIiwgImE0ICIsICJh NSAiLCAidDggIiwgInQ5ICIsCg== ------=_Part_84981_33517238.1220775423696--