From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KeEkw-00047Y-Bt for qemu-devel@nongnu.org; Fri, 12 Sep 2008 15:56:38 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KeEkv-00046B-Nv for qemu-devel@nongnu.org; Fri, 12 Sep 2008 15:56:37 -0400 Received: from [199.232.76.173] (port=60225 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KeEkv-00045y-D0 for qemu-devel@nongnu.org; Fri, 12 Sep 2008 15:56:37 -0400 Received: from yw-out-1718.google.com ([74.125.46.154]:54507) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1KeEkv-0008Ob-GD for qemu-devel@nongnu.org; Fri, 12 Sep 2008 15:56:37 -0400 Received: by yw-out-1718.google.com with SMTP id 6so378182ywa.82 for ; Fri, 12 Sep 2008 12:56:35 -0700 (PDT) Message-ID: Date: Fri, 12 Sep 2008 22:56:34 +0300 From: "Blue Swirl" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_4142_21830236.1221249394936" Subject: [Qemu-devel] [PATCH][RFC] Fix gcc 4.x warnings (-Wpointer-sign) 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_4142_21830236.1221249394936 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, GCC 4 enables -Wpointer-sign if -Wall is enabled. This trivial patch suppresses the warnings. Comments? Objections? ------=_Part_4142_21830236.1221249394936 Content-Type: plain/text; name=fix_signed_warnings.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fl18bzyk Content-Disposition: attachment; filename=fix_signed_warnings.diff SW5kZXg6IHFlbXUvaHcvdXNiLW5ldC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody91c2It bmV0LmMJMjAwOC0wOS0xMiAxNzozOTo1Ny4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvdXNi LW5ldC5jCTIwMDgtMDktMTIgMTc6NDA6MjMuMDAwMDAwMDAwICswMDAwCkBAIC02ODEsOCArNjgx LDggQEAKIAogICAgIC8qIG1hbmRhdG9yeSAqLwogICAgIGNhc2UgT0lEX0dFTl9WRU5ET1JfREVT Q1JJUFRJT046Ci0gICAgICAgIHBzdHJjcHkob3V0YnVmLCBvdXRsZW4sICJRRU1VIFVTQiBSTkRJ UyBOZXQiKTsKLSAgICAgICAgcmV0dXJuIHN0cmxlbihvdXRidWYpICsgMTsKKyAgICAgICAgcHN0 cmNweSgoY2hhciAqKW91dGJ1Ziwgb3V0bGVuLCAiUUVNVSBVU0IgUk5ESVMgTmV0Iik7CisgICAg ICAgIHJldHVybiBzdHJsZW4oKGNoYXIgKilvdXRidWYpICsgMTsKIAogICAgIGNhc2UgT0lEX0dF Tl9WRU5ET1JfRFJJVkVSX1ZFUlNJT046CiAgICAgICAgICooKGxlMzIgKikgb3V0YnVmKSA9IGNw dV90b19sZTMyKDEpOwpJbmRleDogcWVtdS9zbGlycC9ib290cC5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFl bXUub3JpZy9zbGlycC9ib290cC5jCTIwMDgtMDktMTIgMTc6NTI6NDIuMDAwMDAwMDAwICswMDAw CisrKyBxZW11L3NsaXJwL2Jvb3RwLmMJMjAwOC0wOS0xMiAxNzo1NTozNC4wMDAwMDAwMDAgKzAw MDAKQEAgLTE3Miw3ICsxNzIsOCBAQAogICAgIH0KIAogICAgIGlmIChib290cF9maWxlbmFtZSkK LSAgICAgICAgc25wcmludGYocmJwLT5icF9maWxlLCBzaXplb2YocmJwLT5icF9maWxlKSwgIiVz IiwgYm9vdHBfZmlsZW5hbWUpOworICAgICAgICBzbnByaW50ZigoY2hhciAqKXJicC0+YnBfZmls ZSwgc2l6ZW9mKHJicC0+YnBfZmlsZSksICIlcyIsCisgICAgICAgICAgICAgICAgIGJvb3RwX2Zp bGVuYW1lKTsKIAogICAgIGRwcmludGYoIm9mZmVyZWQgYWRkcj0lMDh4XG4iLCBudG9obChkYWRk ci5zaW5fYWRkci5zX2FkZHIpKTsKIApJbmRleDogcWVtdS9zbGlycC90Y3Bfc3Vici5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHFlbXUub3JpZy9zbGlycC90Y3Bfc3Vici5jCTIwMDgtMDktMTIgMTc6NDI6NTcu MDAwMDAwMDAwICswMDAwCisrKyBxZW11L3NsaXJwL3RjcF9zdWJyLmMJMjAwOC0wOS0xMiAxNzo0 NDozNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTQ0Nyw3ICs0NDcsNyBAQAogewogCXN0cnVjdCBzb2Nr ZXQgKnNvOwogCXN0cnVjdCBzb2NrYWRkcl9pbiBhZGRyOwotCWludCBhZGRybGVuID0gc2l6ZW9m KHN0cnVjdCBzb2NrYWRkcl9pbik7CisJc29ja2xlbl90IGFkZHJsZW4gPSBzaXplb2Yoc3RydWN0 IHNvY2thZGRyX2luKTsKIAlzdHJ1Y3QgdGNwY2IgKnRwOwogCWludCBzLCBvcHQ7CiAKQEAgLTY0 OSw3ICs2NDksNyBAQAogCQl7CiAJCQlzdHJ1Y3Qgc29ja2V0ICp0bXBzbzsKIAkJCXN0cnVjdCBz b2NrYWRkcl9pbiBhZGRyOwotCQkJaW50IGFkZHJsZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRy X2luKTsKKwkJCXNvY2tsZW5fdCBhZGRybGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbik7 CiAJCQlzdHJ1Y3Qgc2J1ZiAqc29fcmN2ID0gJnNvLT5zb19yY3Y7CiAKIAkJCW1lbWNweShzb19y Y3YtPnNiX3dwdHIsIG0tPm1fZGF0YSwgbS0+bV9sZW4pOwpJbmRleDogcWVtdS9zbGlycC90ZnRw LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3NsaXJwL3RmdHAuYwkyMDA4LTA5LTEyIDE3OjU4 OjAwLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9zbGlycC90ZnRwLmMJMjAwOC0wOS0xMiAxODow MDoyNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE0OSw4ICsxNDksMTAgQEAKICAgICBtLT5tX2RhdGEg 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 PT0KLS0tIHFlbXUub3JpZy9mcHUvc29mdGZsb2F0LmMJMjAwOC0wOS0xMiAxODoxNDo1NC4wMDAw MDAwMDAgKzAwMDAKKysrIHFlbXUvZnB1L3NvZnRmbG9hdC5jCTIwMDgtMDktMTIgMTg6MTU6MjIu MDAwMDAwMDAwICswMDAwCkBAIC00OTg3LDcgKzQ5ODcsNyBAQAogICAgICAgICBzdWIxMjgoIGFT aWcwLCBhU2lnMSwgYlNpZzAsIGJTaWcxLCAmYVNpZzAsICZhU2lnMSApOwogICAgIH0gd2hpbGUg KCAwIDw9IChzYml0czY0KSBhU2lnMCApOwogICAgIGFkZDEyOCgKLSAgICAgICAgYVNpZzAsIGFT aWcxLCBhbHRlcm5hdGVBU2lnMCwgYWx0ZXJuYXRlQVNpZzEsICZzaWdNZWFuMCwgJnNpZ01lYW4x ICk7CisgICAgICAgIGFTaWcwLCBhU2lnMSwgYWx0ZXJuYXRlQVNpZzAsIGFsdGVybmF0ZUFTaWcx LCAoYml0czY0ICopJnNpZ01lYW4wLCAmc2lnTWVhbjEgKTsKICAgICBpZiAoICAgICggc2lnTWVh bjAgPCAwICkKICAgICAgICAgIHx8ICggKCAoIHNpZ01lYW4wIHwgc2lnTWVhbjEgKSA9PSAwICkg JiYgKCBxICYgMSApICkgKSB7CiAgICAgICAgIGFTaWcwID0gYWx0ZXJuYXRlQVNpZzA7CkluZGV4 OiBxZW11L2h3L2UxMDAwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L2UxMDAwLmMJMjAw OC0wOS0xMiAxODowNTo0MS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvZTEwMDAuYwkyMDA4 LTA5LTEyIDE4OjA3OjE4LjAwMDAwMDAwMCArMDAwMApAQCAtODI0LDggKzgyNCw4IEBACiAgICAg cWVtdV9wdXRfYmUxNnMoZiwgJnMtPnR4LnNpemUpOwogICAgIHFlbXVfcHV0X2JlMTZzKGYsICZz LT50eC50c29fZnJhbWVzKTsKICAgICBxZW11X3B1dF84cyhmLCAmcy0+dHguc3VtX25lZWRlZCk7 Ci0gICAgcWVtdV9wdXRfOHMoZiwgJnMtPnR4LmlwKTsKLSAgICBxZW11X3B1dF84cyhmLCAmcy0+ dHgudGNwKTsKKyAgICBxZW11X3B1dF84cyhmLCAodWludDhfdCAqKSZzLT50eC5pcCk7CisgICAg cWVtdV9wdXRfOHMoZiwgKHVpbnQ4X3QgKikmcy0+dHgudGNwKTsKICAgICBxZW11X3B1dF9idWZm ZXIoZiwgcy0+dHguaGVhZGVyLCBzaXplb2Ygcy0+dHguaGVhZGVyKTsKICAgICBxZW11X3B1dF9i dWZmZXIoZiwgcy0+dHguZGF0YSwgc2l6ZW9mIHMtPnR4LmRhdGEpOwogICAgIGZvciAoaSA9IDA7 IGkgPCA2NDsgaSsrKQpAQCAtODQ1LDExICs4NDUsMTIgQEAKIHsKICAgICBFMTAwMFN0YXRlICpz ID0gKEUxMDAwU3RhdGUgKilvcGFxdWU7CiAgICAgaW50IGksIGosIHJldDsKKyAgICB1aW50MzJf dCB0bXA7CiAKICAgICBpZiAoKHJldCA9IHBjaV9kZXZpY2VfbG9hZCgmcy0+ZGV2LCBmKSkgPCAw KQogICAgICAgICByZXR1cm4gcmV0OwogICAgIGlmICh2ZXJzaW9uX2lkID09IDEpCi0gICAgICAg IHFlbXVfZ2V0X2JlMzJzKGYsICZpKTsgLyogb25jZSBzb21lIHVudXNlZCBpbnN0YW5jZSBpZCAq LworICAgICAgICBxZW11X2dldF9iZTMycyhmLCAmdG1wKTsgLyogb25jZSBzb21lIHVudXNlZCBp bnN0YW5jZSBpZCAqLwogICAgIHFlbXVfZ2V0X2JlMzJzKGYsICZzLT5tbWlvX2Jhc2UpOwogICAg IHFlbXVfZ2V0X2JlMzJzKGYsICZzLT5yeGJ1Zl9zaXplKTsKICAgICBxZW11X2dldF9iZTMycyhm LCAmcy0+cnhidWZfbWluX3NoaWZ0KTsKQEAgLTg3MCw4ICs4NzEsOCBAQAogICAgIHFlbXVfZ2V0 X2JlMTZzKGYsICZzLT50eC5zaXplKTsKICAgICBxZW11X2dldF9iZTE2cyhmLCAmcy0+dHgudHNv X2ZyYW1lcyk7CiAgICAgcWVtdV9nZXRfOHMoZiwgJnMtPnR4LnN1bV9uZWVkZWQpOwotICAgIHFl bXVfZ2V0XzhzKGYsICZzLT50eC5pcCk7Ci0gICAgcWVtdV9nZXRfOHMoZiwgJnMtPnR4LnRjcCk7 CisgICAgcWVtdV9nZXRfOHMoZiwgKHVpbnQ4X3QgKikmcy0+dHguaXApOworICAgIHFlbXVfZ2V0 XzhzKGYsICh1aW50OF90ICopJnMtPnR4LnRjcCk7CiAgICAgcWVtdV9nZXRfYnVmZmVyKGYsIHMt PnR4LmhlYWRlciwgc2l6ZW9mIHMtPnR4LmhlYWRlcik7CiAgICAgcWVtdV9nZXRfYnVmZmVyKGYs IHMtPnR4LmRhdGEsIHNpemVvZiBzLT50eC5kYXRhKTsKICAgICBmb3IgKGkgPSAwOyBpIDwgNjQ7 IGkrKykKSW5kZXg6IHFlbXUvaHcvbWlwc19yNGsuYwo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcv aHcvbWlwc19yNGsuYwkyMDA4LTA5LTEyIDE4OjE2OjM2LjAwMDAwMDAwMCArMDAwMAorKysgcWVt dS9ody9taXBzX3I0ay5jCTIwMDgtMDktMTIgMTg6MTg6MjUuMDAwMDAwMDAwICswMDAwCkBAIC04 Myw3ICs4Myw4IEBACiAgICAgcmFtX2FkZHJfdCBpbml0cmRfb2Zmc2V0OwogCiAgICAga2VybmVs X3NpemUgPSBsb2FkX2VsZihsb2FkZXJwYXJhbXMua2VybmVsX2ZpbGVuYW1lLCBWSVJUX1RPX1BI WVNfQURERU5ELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVudHJ5LCAma2VybmVsX2xv dywgJmtlcm5lbF9oaWdoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCAq KSZlbnRyeSwgKHVpbnQ2NF90ICopJmtlcm5lbF9sb3csCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAodWludDY0X3QgKikma2VybmVsX2hpZ2gpOwogICAgIGlmIChrZXJuZWxfc2l6ZSA+PSAw KSB7CiAgICAgICAgIGlmICgoZW50cnkgJiB+MHg3ZmZmZmZmZlVMTCkgPT0gMHg4MDAwMDAwMCkK ICAgICAgICAgICAgIGVudHJ5ID0gKGludDMyX3QpZW50cnk7CkBAIC0xMjAsMTUgKzEyMSwxNSBA QAogICAgIC8qIFN0b3JlIGNvbW1hbmQgbGluZS4gICovCiAgICAgaWYgKGluaXRyZF9zaXplID4g MCkgewogICAgICAgICBpbnQgcmV0OwotICAgICAgICByZXQgPSBzcHJpbnRmKHBoeXNfcmFtX2Jh c2UgKyAoMTYgPDwgMjApIC0gMjU2LAorICAgICAgICByZXQgPSBzcHJpbnRmKChjaGFyICopKHBo eXNfcmFtX2Jhc2UgKyAoMTYgPDwgMjApIC0gMjU2KSwKICAgICAgICAgICAgICAgICAgICAgICAi cmRfc3RhcnQ9MHgiIFRBUkdFVF9GTVRfbHggIiByZF9zaXplPSVsaSAiLAogICAgICAgICAgICAg ICAgICAgICAgIFBIWVNfVE9fVklSVCgodWludDMyX3QpaW5pdHJkX29mZnNldCksCiAgICAgICAg ICAgICAgICAgICAgICAgaW5pdHJkX3NpemUpOwotICAgICAgICBzdHJjcHkgKHBoeXNfcmFtX2Jh c2UgKyAoMTYgPDwgMjApIC0gMjU2ICsgcmV0LAorICAgICAgICBzdHJjcHkgKChjaGFyICopKHBo eXNfcmFtX2Jhc2UgKyAoMTYgPDwgMjApIC0gMjU2ICsgcmV0KSwKICAgICAgICAgICAgICAgICBs b2FkZXJwYXJhbXMua2VybmVsX2NtZGxpbmUpOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAg c3RyY3B5IChwaHlzX3JhbV9iYXNlICsgKDE2IDw8IDIwKSAtIDI1NiwKKyAgICAgICAgc3RyY3B5 ICgoY2hhciAqKShwaHlzX3JhbV9iYXNlICsgKDE2IDw8IDIwKSAtIDI1NiksCiAgICAgICAgICAg ICAgICAgbG9hZGVycGFyYW1zLmtlcm5lbF9jbWRsaW5lKTsKICAgICB9CiAKSW5kZXg6IHFlbXUv aHcvb21hcDIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvb21hcDIuYwkyMDA4LTA5LTEy IDE4OjExOjM5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9vbWFwMi5jCTIwMDgtMDktMTIg MTg6NTU6NDUuMDAwMDAwMDAwICswMDAwCkBAIC0yMTUxLDEyICsyMTUxLDEyIEBACiAKICAgICBp ZiAoY2ggPT0gU1RJX1RSQUNFX0NPTlRST0xfQ0hBTk5FTCkgewogICAgICAgICAvKiBGbHVzaCBj aGFubmVsIDxpPnZhbHVlPC9pPi4gICovCi0gICAgICAgIHFlbXVfY2hyX3dyaXRlKHMtPmNociwg IlxyIiwgMSk7CisgICAgICAgIHFlbXVfY2hyX3dyaXRlKHMtPmNociwgKGNvbnN0IHVpbnQ4X3Qg KikiXHIiLCAxKTsKICAgICB9IGVsc2UgaWYgKGNoID09IFNUSV9UUkFDRV9DT05TT0xFX0NIQU5O RUwgfHwgMSkgewogICAgICAgICBpZiAodmFsdWUgPT0gMHhjMCB8fCB2YWx1ZSA9PSAweGMzKSB7 CiAgICAgICAgICAgICAvKiBPcGVuIGNoYW5uZWwgPGk+Y2g8L2k+LiAgKi8KICAgICAgICAgfSBl bHNlIGlmICh2YWx1ZSA9PSAweDAwKQotICAgICAgICAgICAgcWVtdV9jaHJfd3JpdGUocy0+Y2hy LCAiXG4iLCAxKTsKKyAgICAgICAgICAgIHFlbXVfY2hyX3dyaXRlKHMtPmNociwgKGNvbnN0IHVp bnQ4X3QgKikiXG4iLCAxKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcWVtdV9jaHJfd3Jp dGUocy0+Y2hyLCAmYnl0ZSwgMSk7CiAgICAgfQpJbmRleDogcWVtdS9ody9wbDA4MC5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIHFlbXUub3JpZy9ody9wbDA4MC5jCTIwMDgtMDktMTIgMTg6MDg6MjUuMDAwMDAw MDAwICswMDAwCisrKyBxZW11L2h3L3BsMDgwLmMJMjAwOC0wOS0xMiAxODowODozMy4wMDAwMDAw MDAgKzAwMDAKQEAgLTgwLDcgKzgwLDcgQEAKICAgICBpbnQgc3JjX2lkOwogICAgIGludCBkZXN0 X2lkOwogICAgIGludCBzaXplOwotICAgIGNoYXIgYnVmZls0XTsKKyAgICB1aW50OF90IGJ1ZmZb NF07CiAgICAgdWludDMyX3QgcmVxOwogCiAgICAgcy0+dGNfbWFzayA9IDA7CkluZGV4OiBxZW11 L2h3L3B0aW1lci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wdGltZXIuYwkyMDA4LTA5 LTEyIDE4OjA5OjMxLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9wdGltZXIuYwkyMDA4LTA5 LTEyIDE4OjA5OjM0LjAwMDAwMDAwMCArMDAwMApAQCAtMTY1LDkgKzE2NSw5IEBACiAgICAgcWVt dV9wdXRfYmU2NHMoZiwgJnMtPmxpbWl0KTsKICAgICBxZW11X3B1dF9iZTY0cyhmLCAmcy0+ZGVs dGEpOwogICAgIHFlbXVfcHV0X2JlMzJzKGYsICZzLT5wZXJpb2RfZnJhYyk7Ci0gICAgcWVtdV9w dXRfYmU2NHMoZiwgJnMtPnBlcmlvZCk7Ci0gICAgcWVtdV9wdXRfYmU2NHMoZiwgJnMtPmxhc3Rf ZXZlbnQpOwotICAgIHFlbXVfcHV0X2JlNjRzKGYsICZzLT5uZXh0X2V2ZW50KTsKKyAgICBxZW11 X3B1dF9iZTY0cyhmLCAodWludDY0X3QgKikmcy0+cGVyaW9kKTsKKyAgICBxZW11X3B1dF9iZTY0 cyhmLCAodWludDY0X3QgKikmcy0+bGFzdF9ldmVudCk7CisgICAgcWVtdV9wdXRfYmU2NHMoZiwg KHVpbnQ2NF90ICopJnMtPm5leHRfZXZlbnQpOwogICAgIHFlbXVfcHV0X3RpbWVyKGYsIHMtPnRp bWVyKTsKIH0KIApAQCAtMTc3LDkgKzE3Nyw5IEBACiAgICAgcWVtdV9nZXRfYmU2NHMoZiwgJnMt PmxpbWl0KTsKICAgICBxZW11X2dldF9iZTY0cyhmLCAmcy0+ZGVsdGEpOwogICAgIHFlbXVfZ2V0 X2JlMzJzKGYsICZzLT5wZXJpb2RfZnJhYyk7Ci0gICAgcWVtdV9nZXRfYmU2NHMoZiwgJnMtPnBl cmlvZCk7Ci0gICAgcWVtdV9nZXRfYmU2NHMoZiwgJnMtPmxhc3RfZXZlbnQpOwotICAgIHFlbXVf Z2V0X2JlNjRzKGYsICZzLT5uZXh0X2V2ZW50KTsKKyAgICBxZW11X2dldF9iZTY0cyhmLCAodWlu dDY0X3QgKikmcy0+cGVyaW9kKTsKKyAgICBxZW11X2dldF9iZTY0cyhmLCAodWludDY0X3QgKikm cy0+bGFzdF9ldmVudCk7CisgICAgcWVtdV9nZXRfYmU2NHMoZiwgKHVpbnQ2NF90ICopJnMtPm5l eHRfZXZlbnQpOwogICAgIHFlbXVfZ2V0X3RpbWVyKGYsIHMtPnRpbWVyKTsKIH0KIApJbmRleDog cWVtdS9ody9weGEyeHhfZG1hLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3B4YTJ4eF9k bWEuYwkyMDA4LTA5LTEyIDE4OjEwOjU4LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9weGEy eHhfZG1hLmMJMjAwOC0wOS0xMiAxODoxMToxNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTE3Nyw3ICsx NzcsNyBAQAogICAgIHVpbnQzMl90IG4sIHNpemU7CiAgICAgdWludDMyX3Qgd2lkdGg7CiAgICAg dWludDMyX3QgbGVuZ3RoOwotICAgIGNoYXIgYnVmZmVyWzMyXTsKKyAgICB1aW50OF90IGJ1ZmZl clszMl07CiAgICAgc3RydWN0IHB4YTJ4eF9kbWFfY2hhbm5lbF9zICpjaDsKIAogICAgIGlmIChz LT5ydW5uaW5nICsrKQpJbmRleDogcWVtdS9zb2Z0bW11LXNlbWkuaAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBx ZW11Lm9yaWcvc29mdG1tdS1zZW1pLmgJMjAwOC0wOS0xMiAxODowOTo1OC4wMDAwMDAwMDAgKzAw MDAKKysrIHFlbXUvc29mdG1tdS1zZW1pLmgJMjAwOC0wOS0xMiAxODoxMDoyMi4wMDAwMDAwMDAg KzAwMDAKQEAgLTM3LDcgKzM3LDcgQEAKIHN0YXRpYyB2b2lkICpzb2Z0bW11X2xvY2tfdXNlcihD UFVTdGF0ZSAqZW52LCB1aW50MzJfdCBhZGRyLCB1aW50MzJfdCBsZW4sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGNvcHkpCiB7Ci0gICAgY2hhciAqcDsKKyAgICB1aW50OF90 ICpwOwogICAgIC8qIFRPRE86IE1ha2UgdGhpcyBzb21ldGhpbmcgdGhhdCBpc24ndCBmaXhlZCBz aXplLiAgKi8KICAgICBwID0gbWFsbG9jKGxlbik7CiAgICAgaWYgKGNvcHkpCkluZGV4OiBxZW11 L3RhcmdldC1pMzg2L21hY2hpbmUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LWkz ODYvbWFjaGluZS5jCTIwMDgtMDktMTIgMTg6MDE6MTMuMDAwMDAwMDAwICswMDAwCisrKyBxZW11 L3RhcmdldC1pMzg2L21hY2hpbmUuYwkyMDA4LTA5LTEyIDE4OjAyOjE5LjAwMDAwMDAwMCArMDAw MApAQCAtMTAyLDcgKzEwMiw3IEBACiAKICAgICAvKiBNTVUgKi8KICAgICBhMjBfbWFzayA9IChp bnQzMl90KSBlbnYtPmEyMF9tYXNrOwotICAgIHFlbXVfcHV0X2JlMzJzKGYsICZhMjBfbWFzayk7 CisgICAgcWVtdV9wdXRfYmUzMnMoZiwgKHVpbnQzMl90ICopJmEyMF9tYXNrKTsKIAogICAgIC8q IFhNTSAqLwogICAgIHFlbXVfcHV0X2JlMzJzKGYsICZlbnYtPm14Y3NyKTsKQEAgLTI1Niw3ICsy NTYsNyBAQAogICAgICAgICBxZW11X2dldF9iZXRscyhmLCAmZW52LT5kcltpXSk7CiAKICAgICAv KiBNTVUgKi8KLSAgICBxZW11X2dldF9iZTMycyhmLCAmYTIwX21hc2spOworICAgIHFlbXVfZ2V0 X2JlMzJzKGYsICh1aW50MzJfdCAqKSZhMjBfbWFzayk7CiAgICAgZW52LT5hMjBfbWFzayA9IGEy MF9tYXNrOwogCiAgICAgcWVtdV9nZXRfYmUzMnMoZiwgJmVudi0+bXhjc3IpOwpJbmRleDogcWVt dS9leGVjLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2V4ZWMuYwkyMDA4LTA5LTEyIDE4OjQ3 OjM3LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9leGVjLmMJMjAwOC0wOS0xMiAxODo0Nzo0Mi4w MDAwMDAwMDAgKzAwMDAKQEAgLTE0MDgsNyArMTQwOCw3IEBACiAjaWYgIWRlZmluZWQoQ09ORklH X1NPRlRNTVUpCiAgICAgICAgIC8qIG11c3QgYXZvaWQgbW1hcCgpIHVzYWdlIG9mIGdsaWJjIGJ5 IHNldHRpbmcgYSBidWZmZXIgImJ5IGhhbmQiICovCiAgICAgICAgIHsKLSAgICAgICAgICAgIHN0 YXRpYyB1aW50OF90IGxvZ2ZpbGVfYnVmWzQwOTZdOworICAgICAgICAgICAgc3RhdGljIGNoYXIg bG9nZmlsZV9idWZbNDA5Nl07CiAgICAgICAgICAgICBzZXR2YnVmKGxvZ2ZpbGUsIGxvZ2ZpbGVf YnVmLCBfSU9MQkYsIHNpemVvZihsb2dmaWxlX2J1ZikpOwogICAgICAgICB9CiAjZWxzZQpJbmRl eDogcWVtdS9ody9taXBzX21hbHRhLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L21pcHNf bWFsdGEuYwkyMDA4LTA5LTEyIDE4OjE4OjUyLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9t aXBzX21hbHRhLmMJMjAwOC0wOS0xMiAxODoxOToyNS4wMDAwMDAwMDAgKzAwMDAKQEAgLTcwMSw3 ICs3MDEsOCBAQAogICAgIHJhbV9hZGRyX3QgaW5pdHJkX29mZnNldDsKIAogICAgIGlmIChsb2Fk X2VsZihsb2FkZXJwYXJhbXMua2VybmVsX2ZpbGVuYW1lLCBWSVJUX1RPX1BIWVNfQURERU5ELAot ICAgICAgICAgICAgICAgICAma2VybmVsX2VudHJ5LCAma2VybmVsX2xvdywgJmtlcm5lbF9oaWdo KSA8IDApIHsKKyAgICAgICAgICAgICAgICAgKHVpbnQ2NF90ICopJmtlcm5lbF9lbnRyeSwgKHVp bnQ2NF90ICopJmtlcm5lbF9sb3csCisgICAgICAgICAgICAgICAgICh1aW50NjRfdCAqKSZrZXJu ZWxfaGlnaCkgPCAwKSB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogY291bGQgbm90 IGxvYWQga2VybmVsICclcydcbiIsCiAgICAgICAgICAgICAgICAgbG9hZGVycGFyYW1zLmtlcm5l bF9maWxlbmFtZSk7CiAgICAgICAgIGV4aXQoMSk7CkluZGV4OiBxZW11L2h3L21pcHNfbWlwc3Np bS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9taXBzX21pcHNzaW0uYwkyMDA4LTA5LTEy IDE4OjE5OjAwLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9taXBzX21pcHNzaW0uYwkyMDA4 LTA5LTEyIDE4OjE5OjQzLjAwMDAwMDAwMCArMDAwMApAQCAtNjEsNyArNjEsOCBAQAogICAgIHJh bV9hZGRyX3QgaW5pdHJkX29mZnNldDsKIAogICAgIGtlcm5lbF9zaXplID0gbG9hZF9lbGYobG9h ZGVycGFyYW1zLmtlcm5lbF9maWxlbmFtZSwgVklSVF9UT19QSFlTX0FEREVORCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICZlbnRyeSwgJmtlcm5lbF9sb3csICZrZXJuZWxfaGlnaCk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QgKikmZW50cnksICh1aW50NjRfdCAq KSZrZXJuZWxfbG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90ICopJmtl cm5lbF9oaWdoKTsKICAgICBpZiAoa2VybmVsX3NpemUgPj0gMCkgewogICAgICAgICBpZiAoKGVu dHJ5ICYgfjB4N2ZmZmZmZmZVTEwpID09IDB4ODAwMDAwMDApCiAgICAgICAgICAgICBlbnRyeSA9 IChpbnQzMl90KWVudHJ5OwpJbmRleDogcWVtdS9ody9udnJhbS5oCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFl bXUub3JpZy9ody9udnJhbS5oCTIwMDgtMDktMTIgMTg6Mjc6MTUuMDAwMDAwMDAwICswMDAwCisr KyBxZW11L2h3L252cmFtLmgJMjAwOC0wOS0xMiAxODo1NjoyMS4wMDAwMDAwMDAgKzAwMDAKQEAg LTE3LDEyICsxNywxMiBAQAogdm9pZCBOVlJBTV9zZXRfbHdvcmQgKG52cmFtX3QgKm52cmFtLCB1 aW50MzJfdCBhZGRyLCB1aW50MzJfdCB2YWx1ZSk7CiB1aW50MzJfdCBOVlJBTV9nZXRfbHdvcmQg KG52cmFtX3QgKm52cmFtLCB1aW50MzJfdCBhZGRyKTsKIHZvaWQgTlZSQU1fc2V0X3N0cmluZyAo bnZyYW1fdCAqbnZyYW0sIHVpbnQzMl90IGFkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHVuc2lnbmVkIGNoYXIgKnN0ciwgdWludDMyX3QgbWF4KTsKKyAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqc3RyLCB1aW50MzJfdCBtYXgpOwogaW50IE5WUkFNX2dldF9zdHJp bmcgKG52cmFtX3QgKm52cmFtLCB1aW50OF90ICpkc3QsIHVpbnQxNl90IGFkZHIsIGludCBtYXgp Owogdm9pZCBOVlJBTV9zZXRfY3JjIChudnJhbV90ICpudnJhbSwgdWludDMyX3QgYWRkciwKICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90IGNvdW50KTsKIGludCBQ UENfTlZSQU1fc2V0X3BhcmFtcyAobnZyYW1fdCAqbnZyYW0sIHVpbnQxNl90IE5WUkFNX3NpemUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFyY2gsCisg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmFyY2gsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQzMl90IFJBTV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGtlcm5lbF9pbWFnZSwgdWludDMyX3Qga2VybmVs X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNtZGxpbmUsCklu ZGV4OiBxZW11L2h3L3BwYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wcGMuYwkyMDA4 LTA5LTEyIDE4OjI0OjU2LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9wcGMuYwkyMDA4LTA5 LTEyIDE4OjI2OjUwLjAwMDAwMDAwMCArMDAwMApAQCAtMTMwNSw3ICsxMzA1LDcgQEAKIH0KIAog dm9pZCBOVlJBTV9zZXRfc3RyaW5nIChudnJhbV90ICpudnJhbSwgdWludDMyX3QgYWRkciwKLSAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqc3RyLCB1aW50MzJfdCBt YXgpCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0ciwgdWludDMyX3QgbWF4 KQogewogICAgIGludCBpOwogCkBAIC0xMzY2LDcgKzEzNjYsNyBAQAogI2RlZmluZSBDTURMSU5F X0FERFIgMHgwMTdmZjAwMAogCiBpbnQgUFBDX05WUkFNX3NldF9wYXJhbXMgKG52cmFtX3QgKm52 cmFtLCB1aW50MTZfdCBOVlJBTV9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB1bnNpZ25lZCBjaGFyICphcmNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICphcmNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBSQU1fc2l6ZSwg aW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBrZXJu ZWxfaW1hZ2UsIHVpbnQzMl90IGtlcm5lbF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICpjbWRsaW5lLApAQCAtMTM4Nyw3ICsxMzg3LDcgQEAKICAgICBOVlJBTV9z ZXRfbHdvcmQobnZyYW0sICAweDNDLCBrZXJuZWxfc2l6ZSk7CiAgICAgaWYgKGNtZGxpbmUpIHsK ICAgICAgICAgLyogWFhYOiBwdXQgdGhlIGNtZGxpbmUgaW4gTlZSQU0gdG9vID8gKi8KLSAgICAg ICAgc3RyY3B5KHBoeXNfcmFtX2Jhc2UgKyBDTURMSU5FX0FERFIsIGNtZGxpbmUpOworICAgICAg ICBzdHJjcHkoKGNoYXIgKikocGh5c19yYW1fYmFzZSArIENNRExJTkVfQUREUiksIGNtZGxpbmUp OwogICAgICAgICBOVlJBTV9zZXRfbHdvcmQobnZyYW0sICAweDQwLCBDTURMSU5FX0FERFIpOwog ICAgICAgICBOVlJBTV9zZXRfbHdvcmQobnZyYW0sICAweDQ0LCBzdHJsZW4oY21kbGluZSkpOwog ICAgIH0gZWxzZSB7CkluZGV4OiBxZW11L2h3L3BwYzR4eF9kZXZzLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g cWVtdS5vcmlnL2h3L3BwYzR4eF9kZXZzLmMJMjAwOC0wOS0xMiAxODoyODoyNy4wMDAwMDAwMDAg KzAwMDAKKysrIHFlbXUvaHcvcHBjNHh4X2RldnMuYwkyMDA4LTA5LTEyIDE4OjI4OjQ3LjAwMDAw MDAwMCArMDAwMApAQCAtMzUsNyArMzUsNyBAQAogCiAvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAv KiBHZW5lcmljIFBvd2VyUEMgNHh4IHByb2Nlc3NvciBpbnN0YW5jaWF0aW9uICovCi1DUFVTdGF0 ZSAqcHBjNHh4X2luaXQgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNwdV9tb2RlbCwKK0NQVVN0YXRl ICpwcGM0eHhfaW5pdCAoY29uc3QgY2hhciAqY3B1X21vZGVsLAogICAgICAgICAgICAgICAgICAg ICAgICBjbGtfc2V0dXBfdCAqY3B1X2NsaywgY2xrX3NldHVwX3QgKnRiX2NsaywKICAgICAgICAg ICAgICAgICAgICAgICAgdWludDMyX3Qgc3lzY2xrKQogewpJbmRleDogcWVtdS9saW51eC11c2Vy L2VsZmxvYWQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvbGludXgtdXNlci9lbGZsb2FkLmMJ MjAwOC0wOS0xMiAxODo0MTo0OS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvbGludXgtdXNlci9l bGZsb2FkLmMJMjAwOC0wOS0xMiAxODo0NToyNi4wMDAwMDAwMDAgKzAwMDAKQEAgLTEyNDAsNyAr MTI0MCw3IEBACiAJfQogCiAJaWYgKGludGVycF9lbGZfZXguZV9pZGVudFswXSAhPSAweDdmIHx8 Ci0JICAgIAlzdHJuY21wKCZpbnRlcnBfZWxmX2V4LmVfaWRlbnRbMV0sICJFTEYiLDMpICE9IDAp IHsKKyAgICAgICAgICAgIHN0cm5jbXAoKGNoYXIgKikmaW50ZXJwX2VsZl9leC5lX2lkZW50WzFd LCAiRUxGIiwzKSAhPSAwKSB7CiAJICAgIGludGVycHJldGVyX3R5cGUgJj0gfklOVEVSUFJFVEVS X0VMRjsKIAl9CiAKSW5kZXg6IHFlbXUvbGludXgtdXNlci9zeXNjYWxsLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gcWVtdS5vcmlnL2xpbnV4LXVzZXIvc3lzY2FsbC5jCTIwMDgtMDktMTIgMTg6NDI6MTEuMDAw MDAwMDAwICswMDAwCisrKyBxZW11L2xpbnV4LXVzZXIvc3lzY2FsbC5jCTIwMDgtMDktMTIgMTg6 NDM6MzUuMDAwMDAwMDAwICswMDAwCkBAIC05MzUsNyArOTM1LDggQEAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFiaV91bG9uZyBvcHR2YWxfYWRkciwgYWJpX3Vsb25nIG9wdGxlbikK IHsKICAgICBhYmlfbG9uZyByZXQ7Ci0gICAgaW50IGxlbiwgbHYsIHZhbDsKKyAgICBpbnQgbGVu LCB2YWw7CisgICAgc29ja2xlbl90IGx2OwogCiAgICAgc3dpdGNoKGxldmVsKSB7CiAgICAgY2Fz ZSBUQVJHRVRfU09MX1NPQ0tFVDoKSW5kZXg6IHFlbXUvbGludXgtdXNlci91YWNjZXNzLmMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gcWVtdS5vcmlnL2xpbnV4LXVzZXIvdWFjY2Vzcy5jCTIwMDgtMDktMTIgMTg6 NDU6MzIuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2xpbnV4LXVzZXIvdWFjY2Vzcy5jCTIwMDgt MDktMTIgMTg6NDY6MzEuMDAwMDAwMDAwICswMDAwCkBAIC02Miw3ICs2Miw3IEBACiAgICAgICAg IHB0ciA9IGxvY2tfdXNlcihWRVJJRllfUkVBRCwgZ3Vlc3RfYWRkciwgbWF4X2xlbiwgMSk7CiAg ICAgICAgIGlmICghcHRyKQogICAgICAgICAgICAgcmV0dXJuIC1UQVJHRVRfRUZBVUxUOwotICAg ICAgICBsZW4gPSBxZW11X3N0cm5sZW4ocHRyLCBtYXhfbGVuKTsKKyAgICAgICAgbGVuID0gcWVt dV9zdHJubGVuKChjb25zdCBjaGFyICopcHRyLCBtYXhfbGVuKTsKICAgICAgICAgdW5sb2NrX3Vz ZXIocHRyLCBndWVzdF9hZGRyLCAwKTsKICAgICAgICAgZ3Vlc3RfYWRkciArPSBsZW47CiAgICAg ICAgIC8qIHdlIGRvbid0IGFsbG93IHdyYXBwaW5nIG9yIGludGVnZXIgb3ZlcmZsb3cgKi8KSW5k ZXg6IHFlbXUvdGFyZ2V0LWFscGhhL2hlbHBlci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90 YXJnZXQtYWxwaGEvaGVscGVyLmMJMjAwOC0wOS0xMiAxODo0ODo0OS4wMDAwMDAwMDAgKzAwMDAK KysrIHFlbXUvdGFyZ2V0LWFscGhhL2hlbHBlci5jCTIwMDgtMDktMTIgMTg6NDg6NTguMDAwMDAw MDAwICswMDAwCkBAIC00MTEsNyArNDExLDcgQEAKICAgICAgICAgICAgICAgICAgICAgIGludCAo KmNwdV9mcHJpbnRmKShGSUxFICpmLCBjb25zdCBjaGFyICpmbXQsIC4uLiksCiAgICAgICAgICAg ICAgICAgICAgICBpbnQgZmxhZ3MpCiB7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIg KmxpbnV4X3JlZ19uYW1lc1tdID0geworICAgIHN0YXRpYyBjb25zdCBjaGFyICpsaW51eF9yZWdf bmFtZXNbXSA9IHsKICAgICAgICAgInYwICIsICJ0MCAiLCAidDEgIiwgInQyICIsICJ0MyAiLCAi dDQgIiwgInQ1ICIsICJ0NiAiLAogICAgICAgICAidDcgIiwgInMwICIsICJzMSAiLCAiczIgIiwg InMzICIsICJzNCAiLCAiczUgIiwgImZwICIsCiAgICAgICAgICJhMCAiLCAiYTEgIiwgImEyICIs ICJhMyAiLCAiYTQgIiwgImE1ICIsICJ0OCAiLCAidDkgIiwKSW5kZXg6IHFlbXUvdGFyZ2V0LW1p cHMvdHJhbnNsYXRlX2luaXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LW1pcHMv dHJhbnNsYXRlX2luaXQuYwkyMDA4LTA5LTEyIDE4OjIwOjM0LjAwMDAwMDAwMCArMDAwMAorKysg cWVtdS90YXJnZXQtbWlwcy90cmFuc2xhdGVfaW5pdC5jCTIwMDgtMDktMTIgMTg6MjE6MTAuMDAw MDAwMDAwICswMDAwCkBAIC00MTcsNyArNDE3LDcgQEAKICNlbmRpZgogfTsKIAotc3RhdGljIGNv bnN0IG1pcHNfZGVmX3QgKmNwdV9taXBzX2ZpbmRfYnlfbmFtZSAoY29uc3QgdW5zaWduZWQgY2hh ciAqbmFtZSkKK3N0YXRpYyBjb25zdCBtaXBzX2RlZl90ICpjcHVfbWlwc19maW5kX2J5X25hbWUg KGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAgICAgaW50IGk7CiAKSW5kZXg6IHFlbXUvdGFyZ2V0LXBw Yy9vcF9oZWxwZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LXBwYy9vcF9oZWxw ZXIuYwkyMDA4LTA5LTEyIDE4OjM3OjE2LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS90YXJnZXQt cHBjL29wX2hlbHBlci5jCTIwMDgtMDktMTIgMTg6Mzg6NTYuMDAwMDAwMDAwICswMDAwCkBAIC0y NDQsNyArMjQ0LDcgQEAKICAgICBpbnQ2NF90IHRoOwogICAgIHVpbnQ2NF90IHRsOwogCi0gICAg bXVsczY0KCZ0bCwgJnRoLCBUMCwgVDEpOworICAgIG11bHM2NCgmdGwsICh1aW50NjRfdCAqKSZ0 aCwgVDAsIFQxKTsKICAgICBUMCA9IChpbnQ2NF90KXRsOwogICAgIC8qIElmIHRoICE9IDAgJiYg dGggIT0gLTEsIHRoZW4gd2UgaGFkIGFuIG92ZXJmbG93ICovCiAgICAgaWYgKGxpa2VseSgodWlu dDY0X3QpKHRoICsgMSkgPD0gMSkpIHsKSW5kZXg6IHFlbXUvdGFyZ2V0LXBwYy90cmFuc2xhdGUu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdGFyZ2V0LXBwYy90cmFuc2xhdGUuYwkyMDA4LTA5 LTEyIDE4OjMxOjEwLjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS90YXJnZXQtcHBjL3RyYW5zbGF0 ZS5jCTIwMDgtMDktMTIgMTg6MzI6MDUuMDAwMDAwMDAwICswMDAwCkBAIC0yMTIsNyArMjEyLDcg QEAKICAgICAvKiBoYW5kbGVyICovCiAgICAgdm9pZCAoKmhhbmRsZXIpKERpc2FzQ29udGV4dCAq Y3R4KTsKICNpZiBkZWZpbmVkKERPX1BQQ19TVEFUSVNUSUNTKSB8fCBkZWZpbmVkKFBQQ19EVU1Q X0NQVSkKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpvbmFtZTsKKyAgICBjb25zdCBjaGFyICpv bmFtZTsKICNlbmRpZgogI2lmIGRlZmluZWQoRE9fUFBDX1NUQVRJU1RJQ1MpCiAgICAgdWludDY0 X3QgY291bnQ7CkBAIC0zMzksNyArMzM5LDcgQEAKICAgICB1bnNpZ25lZCBjaGFyIHBhZFsxXTsK ICNlbmRpZgogICAgIG9wY19oYW5kbGVyX3QgaGFuZGxlcjsKLSAgICBjb25zdCB1bnNpZ25lZCBj aGFyICpvbmFtZTsKKyAgICBjb25zdCBjaGFyICpvbmFtZTsKIH0gb3Bjb2RlX3Q7CiAKIC8qKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KSW5kZXg6IHFlbXUvdGFyZ2V0LXBwYy90cmFuc2xhdGVfaW5pdC5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90YXJnZXQtcHBjL3RyYW5zbGF0ZV9pbml0LmMJMjAw OC0wOS0xMiAxODozMTozNS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0LXBwYy90cmFu c2xhdGVfaW5pdC5jCTIwMDgtMDktMTIgMTg6MzM6MzkuMDAwMDAwMDAwICswMDAwCkBAIC0zNCw3 ICszNCw3IEBACiAjZW5kaWYKIAogc3RydWN0IHBwY19kZWZfdCB7Ci0gICAgY29uc3QgdW5zaWdu ZWQgY2hhciAqbmFtZTsKKyAgICBjb25zdCBjaGFyICpuYW1lOwogICAgIHVpbnQzMl90IHB2cjsK ICAgICB1aW50MzJfdCBzdnI7CiAgICAgdWludDY0X3QgaW5zbnNfZmxhZ3M7CkBAIC00MzMsMTMg KzQzMywxMyBAQAogICAgICBfc3ByX3JlZ2lzdGVyKGVudiwgbnVtLCBuYW1lLCB1ZWFfcmVhZCwg dWVhX3dyaXRlLCBpbml0aWFsX3ZhbHVlKTsgICAgICAgXAogfSB3aGlsZSAoMCkKIHN0YXRpYyBp bmxpbmUgdm9pZCBfc3ByX3JlZ2lzdGVyIChDUFVQUENTdGF0ZSAqZW52LCBpbnQgbnVtLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm5hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqdWVhX3JlYWQpKHZvaWQgKm9w YXF1ZSwgaW50IHNwcm4pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQg KCp1ZWFfd3JpdGUpKHZvaWQgKm9wYXF1ZSwgaW50IHNwcm4pLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRhcmdldF91bG9uZyBpbml0aWFsX3ZhbHVlKQogI2Vsc2UKIHN0YXRp YyBpbmxpbmUgdm9pZCBzcHJfcmVnaXN0ZXIgKENQVVBQQ1N0YXRlICplbnYsIGludCBudW0sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKCp1ZWFfcmVhZCkodm9pZCAqb3Bh cXVlLCBpbnQgc3BybiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgq dWVhX3dyaXRlKSh2b2lkICpvcGFxdWUsIGludCBzcHJuKSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZvaWQgKCpvZWFfcmVhZCkodm9pZCAqb3BhcXVlLCBpbnQgc3BybiksCkBA IC0xMjQ1LDcgKzEyNDUsNyBAQAogLyogUG93ZXJQQyBCb29rRSBTUFIgKi8KIHN0YXRpYyB2b2lk IGdlbl9zcHJfQm9va0UgKENQVVBQQ1N0YXRlICplbnYsIHVpbnQ2NF90IGl2b3JfbWFzaykKIHsK LSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppdm9yX25hbWVzWzY0XSA9IHsKKyAgICBjb25zdCBj aGFyICppdm9yX25hbWVzWzY0XSA9IHsKICAgICAgICAgIklWT1IwIiwgICJJVk9SMSIsICAiSVZP UjIiLCAgIklWT1IzIiwKICAgICAgICAgIklWT1I0IiwgICJJVk9SNSIsICAiSVZPUjYiLCAgIklW T1I3IiwKICAgICAgICAgIklWT1I4IiwgICJJVk9SOSIsICAiSVZPUjEwIiwgIklWT1IxMSIsCkBA IC0xNDA3LDcgKzE0MDcsNyBAQAogc3RhdGljIHZvaWQgZ2VuX3Nwcl9Cb29rRV9GU0wgKENQVVBQ Q1N0YXRlICplbnYsIHVpbnQzMl90IG1hc19tYXNrKQogewogI2lmICFkZWZpbmVkKENPTkZJR19V U0VSX09OTFkpCi0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqbWFzX25hbWVzWzhdID0geworICAg IGNvbnN0IGNoYXIgKm1hc19uYW1lc1s4XSA9IHsKICAgICAgICAgIk1BUzAiLCAiTUFTMSIsICJN QVMyIiwgIk1BUzMiLCAiTUFTNCIsICJNQVM1IiwgIk1BUzYiLCAiTUFTNyIsCiAgICAgfTsKICAg ICBpbnQgbWFzX3Nwcm5bOF0gPSB7CkBAIC05MTU3LDcgKzkxNTcsNyBAQAogc3RhdGljIHZvaWQg ZHVtcF9wcGNfaW5zbnMgKENQVVBQQ1N0YXRlICplbnYpCiB7CiAgICAgb3BjX2hhbmRsZXJfdCAq KnRhYmxlLCAqaGFuZGxlcjsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwLCAqcTsKKyAgICBj b25zdCBjaGFyICpwLCAqcTsKICAgICB1aW50OF90IG9wYzEsIG9wYzIsIG9wYzM7CiAKICAgICBw cmludGYoIkluc3RydWN0aW9ucyBzZXQ6XG4iKTsKQEAgLTkyNDAsNyArOTI0MCw3IEBACiAgICAg aW5pdF9wcGNfcHJvYyhlbnYsIGRlZik7CiAjaWYgZGVmaW5lZChQUENfRFVNUF9DUFUpCiAgICAg ewotICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICptbXVfbW9kZWwsICpleGNwX21vZGVsLCAq YnVzX21vZGVsOworICAgICAgICBjb25zdCBjaGFyICptbXVfbW9kZWwsICpleGNwX21vZGVsLCAq YnVzX21vZGVsOwogICAgICAgICBzd2l0Y2ggKGVudi0+bW11X21vZGVsKSB7CiAgICAgICAgIGNh c2UgUE9XRVJQQ19NTVVfMzJCOgogICAgICAgICAgICAgbW11X21vZGVsID0gIlBvd2VyUEMgMzIi OwpAQCAtOTQ0MywxMCArOTQ0MywxMCBAQAogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAotY29uc3Qg cHBjX2RlZl90ICpjcHVfcHBjX2ZpbmRfYnlfbmFtZSAoY29uc3QgdW5zaWduZWQgY2hhciAqbmFt ZSkKK2NvbnN0IHBwY19kZWZfdCAqY3B1X3BwY19maW5kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5h bWUpCiB7CiAgICAgY29uc3QgcHBjX2RlZl90ICpyZXQ7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hh ciAqcDsKKyAgICBjb25zdCBjaGFyICpwOwogICAgIGludCBpLCBtYXgsIGxlbjsKIAogICAgIC8q IENoZWNrIGlmIHRoZSBnaXZlbiBuYW1lIGlzIGEgUFZSICovCkluZGV4OiBxZW11L3RhcmdldC1z aDQvdHJhbnNsYXRlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL3RhcmdldC1zaDQvdHJhbnNs YXRlLmMJMjAwOC0wOS0xMiAxODozOToyOC4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvdGFyZ2V0 LXNoNC90cmFuc2xhdGUuYwkyMDA4LTA5LTEyIDE4OjM5OjU3LjAwMDAwMDAwMCArMDAwMApAQCAt MTc3LDcgKzE3Nyw3IEBACiB9CiAKIHR5cGVkZWYgc3RydWN0IHsKLSAgICBjb25zdCB1bnNpZ25l ZCBjaGFyICpuYW1lOworICAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgICAgaW50IGlkOwogICAgIHVp bnQzMl90IHB2cjsKICAgICB1aW50MzJfdCBwcnI7CkBAIC0yMDAsNyArMjAwLDcgQEAKICAgICB9 LAogfTsKIAotc3RhdGljIGNvbnN0IHNoNF9kZWZfdCAqY3B1X3NoNF9maW5kX2J5X25hbWUoY29u c3QgdW5zaWduZWQgY2hhciAqbmFtZSkKK3N0YXRpYyBjb25zdCBzaDRfZGVmX3QgKmNwdV9zaDRf ZmluZF9ieV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAgICAgaW50IGk7CiAKSW5kZXg6IHFl bXUvaHcvcHBjNHh4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3BwYzR4eC5oCTIwMDgt MDktMTIgMTk6MDE6MDEuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3BwYzR4eC5oCTIwMDgt MDktMTIgMTk6MDE6MjUuMDAwMDAwMDAwICswMDAwCkBAIC0yNiw3ICsyNiw3IEBACiAjZGVmaW5l IFBQQ180WFhfSAogCiAvKiBQb3dlclBDIDR4eCBjb3JlIGluaXRpYWxpemF0aW9uICovCi1DUFVT dGF0ZSAqcHBjNHh4X2luaXQgKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmNwdV9tb2RlbCwKK0NQVVN0 YXRlICpwcGM0eHhfaW5pdCAoY29uc3QgY2hhciAqY3B1X21vZGVsLAogICAgICAgICAgICAgICAg ICAgICAgICBjbGtfc2V0dXBfdCAqY3B1X2NsaywgY2xrX3NldHVwX3QgKnRiX2NsaywKICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3Qgc3lzY2xrKTsKIApJbmRleDogcWVtdS90YXJnZXQt cHBjL2NwdS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy90YXJnZXQtcHBjL2NwdS5oCTIwMDgt MDktMTIgMTk6MDI6MDguMDAwMDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1wcGMvY3B1LmgJ MjAwOC0wOS0xMiAxOTowMzozOC4wMDAwMDAwMDAgKzAwMDAKQEAgLTMwMyw3ICszMDMsNyBAQAog ICAgIHZvaWQgKCpoZWFfcmVhZCkodm9pZCAqb3BhcXVlLCBpbnQgc3ByX251bSk7CiAgICAgdm9p ZCAoKmhlYV93cml0ZSkodm9pZCAqb3BhcXVlLCBpbnQgc3ByX251bSk7CiAjZW5kaWYKLSAgICBj b25zdCB1bnNpZ25lZCBjaGFyICpuYW1lOworICAgIGNvbnN0IGNoYXIgKm5hbWU7CiB9OwogCiAv KiBBbHRpdmVjIHJlZ2lzdGVycyAoMTI4IGJpdHMpICovCkBAIC03MzMsNyArNzMzLDcgQEAKIAog dm9pZCBwcGNfY3B1X2xpc3QgKEZJTEUgKmYsIGludCAoKmNwdV9mcHJpbnRmKShGSUxFICpmLCBj b25zdCBjaGFyICpmbXQsIC4uLikpOwogCi1jb25zdCBwcGNfZGVmX3QgKmNwdV9wcGNfZmluZF9i eV9uYW1lIChjb25zdCB1bnNpZ25lZCBjaGFyICpuYW1lKTsKK2NvbnN0IHBwY19kZWZfdCAqY3B1 X3BwY19maW5kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOwogaW50IGNwdV9wcGNfcmVnaXN0 ZXJfaW50ZXJuYWwgKENQVVBQQ1N0YXRlICplbnYsIGNvbnN0IHBwY19kZWZfdCAqZGVmKTsKIAog LyogVGltZS1iYXNlIGFuZCBkZWNyZW1lbnRlciBtYW5hZ2VtZW50ICovCg== ------=_Part_4142_21830236.1221249394936--