From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14738 invoked by alias); 19 Sep 2006 11:39:03 -0000 Received: (qmail 14729 invoked by uid 22791); 19 Sep 2006 11:39:02 -0000 X-Spam-Check-By: sourceware.org Received: from nf-out-0910.google.com (HELO nf-out-0910.google.com) (64.233.182.189) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 19 Sep 2006 11:38:58 +0000 Received: by nf-out-0910.google.com with SMTP id k26so139506nfc for ; Tue, 19 Sep 2006 04:38:55 -0700 (PDT) Received: by 10.48.202.19 with SMTP id z19mr18201370nff; Tue, 19 Sep 2006 04:38:54 -0700 (PDT) Received: by 10.49.28.17 with HTTP; Tue, 19 Sep 2006 04:38:54 -0700 (PDT) Message-ID: <246188420609190438l5846aaf2j39ebda2d989108fe@mail.gmail.com> Date: Tue, 19 Sep 2006 13:41:00 -0000 From: "Bridge Wu" To: binutils Subject: iwmmxt2 patch for binutils-2.16.92 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_164073_4628163.1158665934821" Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2006-09/txt/msg00173.txt.bz2 ------=_Part_164073_4628163.1158665934821 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 263 Hello, Here is iwmmxt2 patch for binutils-2.16.92. It supports Intel IWMMXT2 instruction set. AS can use '-mcpu=iwmmxt2' option to assemble iwmmxt2 instructions. OBJDUMP can use '-m iwmmxt2' option to disassemble iwmmxt2 instructions. -- best regards, -Bridge ------=_Part_164073_4628163.1158665934821 Content-Type: application/octet-stream; name=iwmmxt2-binutils-2.16.92.patch Content-Transfer-Encoding: base64 X-Attachment-Id: f_esa7q3dt Content-Disposition: attachment; filename="iwmmxt2-binutils-2.16.92.patch" Content-length: 49939 ZGlmZiAtTnVycCBiaW51dGlscy0yLjE2LjkyLm9sZC9iZmQvYXJjaHVyZXMu YyBiaW51dGlscy0yLjE2LjkyL2JmZC9hcmNodXJlcy5jCi0tLSBiaW51dGls cy0yLjE2LjkyLm9sZC9iZmQvYXJjaHVyZXMuYwkyMDA2LTA5LTE5IDEzOjUy OjQ3LjAwMDAwMDAwMCArMDgwMAorKysgYmludXRpbHMtMi4xNi45Mi9iZmQv YXJjaHVyZXMuYwkyMDA2LTA5LTE5IDEzOjUzOjA5LjAwMDAwMDAwMCArMDgw MApAQCAtMjczLDYgKzI3Myw3IEBAIERFU0NSSVBUSU9OCiAuI2RlZmluZSBi ZmRfbWFjaF9hcm1fWFNjYWxlCTEwCiAuI2RlZmluZSBiZmRfbWFjaF9hcm1f ZXA5MzEyCTExCiAuI2RlZmluZSBiZmRfbWFjaF9hcm1faVdNTVh0CTEyCisu I2RlZmluZSBiZmRfbWFjaF9hcm1faVdNTVh0MgkxMwogLiAgYmZkX2FyY2hf bnMzMmssICAgICB7KiBOYXRpb25hbCBTZW1pY29uZHVjdG9ycyBuczMyMDAw ICp9CiAuICBiZmRfYXJjaF93NjUsICAgICAgIHsqIFdEQyA2NTgxNiAqfQog LiAgYmZkX2FyY2hfdGljMzAsICAgICB7KiBUZXhhcyBJbnN0cnVtZW50cyBU TVMzMjBDMzAgKn0KZGlmZiAtTnVycCBiaW51dGlscy0yLjE2LjkyLm9sZC9i ZmQvYmZkLWluMi5oIGJpbnV0aWxzLTIuMTYuOTIvYmZkL2JmZC1pbjIuaAot LS0gYmludXRpbHMtMi4xNi45Mi5vbGQvYmZkL2JmZC1pbjIuaAkyMDA2LTA5 LTE5IDEzOjUyOjQ3LjAwMDAwMDAwMCArMDgwMAorKysgYmludXRpbHMtMi4x Ni45Mi9iZmQvYmZkLWluMi5oCTIwMDYtMDktMTkgMTM6NTM6MDkuMDAwMDAw MDAwICswODAwCkBAIC0xODcwLDYgKzE4NzAsNyBAQCBlbnVtIGJmZF9hcmNo aXRlY3R1cmUKICNkZWZpbmUgYmZkX21hY2hfYXJtX1hTY2FsZSAgICAxMAog I2RlZmluZSBiZmRfbWFjaF9hcm1fZXA5MzEyICAgIDExCiAjZGVmaW5lIGJm ZF9tYWNoX2FybV9pV01NWHQgICAgMTIKKyNkZWZpbmUgYmZkX21hY2hfYXJt X2lXTU1YdDIgICAxMwogICBiZmRfYXJjaF9uczMyaywgICAgIC8qIE5hdGlv bmFsIFNlbWljb25kdWN0b3JzIG5zMzIwMDAgKi8KICAgYmZkX2FyY2hfdzY1 LCAgICAgICAvKiBXREMgNjU4MTYgKi8KICAgYmZkX2FyY2hfdGljMzAsICAg ICAvKiBUZXhhcyBJbnN0cnVtZW50cyBUTVMzMjBDMzAgKi8KZGlmZiAtTnVy cCBiaW51dGlscy0yLjE2LjkyLm9sZC9iZmQvY3B1LWFybS5jIGJpbnV0aWxz LTIuMTYuOTIvYmZkL2NwdS1hcm0uYwotLS0gYmludXRpbHMtMi4xNi45Mi5v bGQvYmZkL2NwdS1hcm0uYwkyMDA2LTA5LTE5IDEzOjUyOjQ3LjAwMDAwMDAw MCArMDgwMAorKysgYmludXRpbHMtMi4xNi45Mi9iZmQvY3B1LWFybS5jCTIw MDYtMDktMTkgMTM6NTM6MDkuMDAwMDAwMDAwICswODAwCkBAIC05Miw3ICs5 Miw4IEBAIHByb2Nlc3NvcnNbXSA9CiAgIHsgYmZkX21hY2hfYXJtXzQsICAi c3Ryb25nYXJtMTEwMCIgfSwKICAgeyBiZmRfbWFjaF9hcm1fWFNjYWxlLCAi eHNjYWxlIiB9LAogICB7IGJmZF9tYWNoX2FybV9lcDkzMTIsICJlcDkzMTIi IH0sCi0gIHsgYmZkX21hY2hfYXJtX2lXTU1YdCwgIml3bW14dCIgfQorICB7 IGJmZF9tYWNoX2FybV9pV01NWHQsICJpd21teHQiIH0sCisgIHsgYmZkX21h Y2hfYXJtX2lXTU1YdDIsICJpd21teHQyIiB9CiB9OwogCiBzdGF0aWMgYmZk X2Jvb2xlYW4KQEAgLTEzNyw3ICsxMzgsOCBAQCBzdGF0aWMgY29uc3QgYmZk X2FyY2hfaW5mb190eXBlIGFyY2hfaW5mCiAgIE4gKGJmZF9tYWNoX2FybV81 VEUsICAgICJhcm12NXRlIiwgRkFMU0UsICYgYXJjaF9pbmZvX3N0cnVjdFs5 XSksCiAgIE4gKGJmZF9tYWNoX2FybV9YU2NhbGUsICJ4c2NhbGUiLCAgRkFM U0UsICYgYXJjaF9pbmZvX3N0cnVjdFsxMF0pLAogICBOIChiZmRfbWFjaF9h cm1fZXA5MzEyLCAiZXA5MzEyIiwgIEZBTFNFLCAmIGFyY2hfaW5mb19zdHJ1 Y3RbMTFdKSwKLSAgTiAoYmZkX21hY2hfYXJtX2lXTU1YdCwiaXdtbXh0Iiwg IEZBTFNFLCBOVUxMKQorICBOIChiZmRfbWFjaF9hcm1faVdNTVh0LCAiaXdt bXh0IiwgIEZBTFNFLCAmIGFyY2hfaW5mb19zdHJ1Y3RbMTJdKSwKKyAgTiAo YmZkX21hY2hfYXJtX2lXTU1YdDIsICJpd21teHQyIiwgRkFMU0UsIE5VTEwp CiB9OwogCiBjb25zdCBiZmRfYXJjaF9pbmZvX3R5cGUgYmZkX2FybV9hcmNo ID0KQEAgLTE3OSw3ICsxODEsNyBAQCBiZmRfYXJtX21lcmdlX21hY2hpbmVz IChiZmQgKmliZmQsIGJmZCAqCiAgICAgIEludGVsIFhTY2FsZSBiaW5hcnks IHNpbmNlIHRoZXNlIGFyY2hpdGVjdHVyZSBoYXZlIGNvLXByb2Nlc3NvcnMg d2hpY2gKICAgICAgd2lsbCBub3QgYm90aCBiZSBwcmVzZW50IG9uIHRoZSBz YW1lIHBoeXNpY2FsIGhhcmR3YXJlLiAgKi8KICAgZWxzZSBpZiAoaW4gPT0g YmZkX21hY2hfYXJtX2VwOTMxMgotCSAgICYmIChvdXQgPT0gYmZkX21hY2hf YXJtX1hTY2FsZSB8fCBvdXQgPT0gYmZkX21hY2hfYXJtX2lXTU1YdCkpCisJ ICAgJiYgKG91dCA9PSBiZmRfbWFjaF9hcm1fWFNjYWxlIHx8IG91dCA9PSBi ZmRfbWFjaF9hcm1faVdNTVh0IHx8IG91dCA9PSBiZmRfbWFjaF9hcm1faVdN TVh0MikpCiAgICAgewogICAgICAgX2JmZF9lcnJvcl9oYW5kbGVyIChfKCJc CiBFUlJPUjogJUIgaXMgY29tcGlsZWQgZm9yIHRoZSBFUDkzMTIsIHdoZXJl YXMgJUIgaXMgY29tcGlsZWQgZm9yIFhTY2FsZSIpLApAQCAtMTg4LDcgKzE5 MCw3IEBAIEVSUk9SOiAlQiBpcyBjb21waWxlZCBmb3IgdGhlIEVQOTMxMiwg d2gKICAgICAgIHJldHVybiBGQUxTRTsKICAgICB9CiAgIGVsc2UgaWYgKG91 dCA9PSBiZmRfbWFjaF9hcm1fZXA5MzEyCi0JICAgJiYgKGluID09IGJmZF9t YWNoX2FybV9YU2NhbGUgfHwgaW4gPT0gYmZkX21hY2hfYXJtX2lXTU1YdCkp CisJICAgJiYgKGluID09IGJmZF9tYWNoX2FybV9YU2NhbGUgfHwgaW4gPT0g YmZkX21hY2hfYXJtX2lXTU1YdCB8fCBpbiA9PSBiZmRfbWFjaF9hcm1faVdN TVh0MikpCiAgICAgewogICAgICAgX2JmZF9lcnJvcl9oYW5kbGVyIChfKCJc CiBFUlJPUjogJUIgaXMgY29tcGlsZWQgZm9yIHRoZSBFUDkzMTIsIHdoZXJl YXMgJUIgaXMgY29tcGlsZWQgZm9yIFhTY2FsZSIpLApAQCAtMzA5LDYgKzMx MSw3IEBAIGJmZF9hcm1fdXBkYXRlX25vdGVzIChiZmQgKmFiZmQsIGNvbnN0 IGMKICAgICBjYXNlIGJmZF9tYWNoX2FybV9YU2NhbGU6ICBleHBlY3RlZCA9 ICJYU2NhbGUiOyBicmVhazsKICAgICBjYXNlIGJmZF9tYWNoX2FybV9lcDkz MTI6ICBleHBlY3RlZCA9ICJlcDkzMTIiOyBicmVhazsKICAgICBjYXNlIGJm ZF9tYWNoX2FybV9pV01NWHQ6ICBleHBlY3RlZCA9ICJpV01NWHQiOyBicmVh azsKKyAgICBjYXNlIGJmZF9tYWNoX2FybV9pV01NWHQyOiBleHBlY3RlZCA9 ICJpV01NWHQyIjsgYnJlYWs7CiAgICAgfQogCiAgIGlmIChzdHJjbXAgKGFy Y2hfc3RyaW5nLCBleHBlY3RlZCkgIT0gMCkKQEAgLTM1NSw3ICszNTgsOCBA QCBhcmNoaXRlY3R1cmVzW10gPQogICB7ICJhcm12NXRlIiwgYmZkX21hY2hf YXJtXzVURSB9LAogICB7ICJYU2NhbGUiLCAgYmZkX21hY2hfYXJtX1hTY2Fs ZSB9LAogICB7ICJlcDkzMTIiLCAgYmZkX21hY2hfYXJtX2VwOTMxMiB9LAot ICB7ICJpV01NWHQiLCAgYmZkX21hY2hfYXJtX2lXTU1YdCB9CisgIHsgImlX TU1YdCIsICBiZmRfbWFjaF9hcm1faVdNTVh0IH0sCisgIHsgImlXTU1YdDIi LCBiZmRfbWFjaF9hcm1faVdNTVh0MiB9CiB9OwogCiAvKiBFeHRyYWN0IHRo ZSBtYWNoaW5lIG51bWJlciBzdG9yZWQgaW4gYSBub3RlIHNlY3Rpb24uICAq LwpkaWZmIC1OdXJwIGJpbnV0aWxzLTIuMTYuOTIub2xkL2dhcy9jb25maWcv dGMtYXJtLmMgYmludXRpbHMtMi4xNi45Mi9nYXMvY29uZmlnL3RjLWFybS5j Ci0tLSBiaW51dGlscy0yLjE2LjkyLm9sZC9nYXMvY29uZmlnL3RjLWFybS5j CTIwMDYtMDktMTkgMTM6NTI6NDcuMDAwMDAwMDAwICswODAwCisrKyBiaW51 dGlscy0yLjE2LjkyL2dhcy9jb25maWcvdGMtYXJtLmMJMjAwNi0wOS0xOSAx OTowNjowMy4wMDAwMDAwMDAgKzA4MDAKQEAgLTE5Niw2ICsxOTYsOCBAQCBz dGF0aWMgY29uc3QgYXJtX2ZlYXR1cmVfc2V0IGFybV9hcmNoX25vCiAKIHN0 YXRpYyBjb25zdCBhcm1fZmVhdHVyZV9zZXQgYXJtX2NleHRfaXdtbXh0ID0K ICAgQVJNX0ZFQVRVUkUgKDAsIEFSTV9DRVhUX0lXTU1YVCk7CitzdGF0aWMg Y29uc3QgYXJtX2ZlYXR1cmVfc2V0IGFybV9jZXh0X2l3bW14dDIgPQorICBB Uk1fRkVBVFVSRSAoMCwgQVJNX0NFWFRfSVdNTVhUMik7CiBzdGF0aWMgY29u c3QgYXJtX2ZlYXR1cmVfc2V0IGFybV9jZXh0X3hzY2FsZSA9CiAgIEFSTV9G RUFUVVJFICgwLCBBUk1fQ0VYVF9YU0NBTEUpOwogc3RhdGljIGNvbnN0IGFy bV9mZWF0dXJlX3NldCBhcm1fY2V4dF9tYXZlcmljayA9CkBAIC0yNzgsNiAr MjgwLDcgQEAgc3RydWN0IGFybV9pdAogICAgIHVuc2lnbmVkIHJlZzsKICAg ICBzaWduZWQgaW50IGltbTsKICAgICB1bnNpZ25lZCBwcmVzZW50CTogMTsg IC8qIE9wZXJhbmQgcHJlc2VudC4gICovCisgICAgdW5zaWduZWQgaXN3Ywk6 IDE7ICAvKiBPcGVyYW5kIHdhcyBhIHdDeCByZWdpc3RlciAqLwogICAgIHVu c2lnbmVkIGlzcmVnCTogMTsgIC8qIE9wZXJhbmQgd2FzIGEgcmVnaXN0ZXIu ICAqLwogICAgIHVuc2lnbmVkIGltbWlzcmVnCTogMTsgIC8qIC5pbW0gZmll bGQgaXMgYSBzZWNvbmQgcmVnaXN0ZXIuICAqLwogICAgIHVuc2lnbmVkIGhh c3JlbG9jCTogMTsgIC8qIE9wZXJhbmQgaGFzIHJlbG9jYXRpb24gc3VmZml4 LiAgKi8KQEAgLTMzMTcsNiArMzMyMCwxMzIgQEAgcGFyc2Vfc2hpZnRlcl9v cGVyYW5kIChjaGFyICoqc3RyLCBpbnQgaQogICByZXR1cm4gU1VDQ0VTUzsK IH0KIAorLyogUGFyc2UgYWxsIGZvcm1zIG9mIGFuIEFSTSBhZGRyZXNzIGV4 cHJlc3Npb24gZXhjZXB0IFJlZyBtb2RlLgorICAgbW9kaWZpZWQgZnJvbSBw YXJzZV9hZGRyZXNzICovCisKK3N0YXRpYyBpbnQKK3BhcnNlX2FkZHJlc3Nf aW1tIChjaGFyICoqc3RyLCBpbnQgaSkKK3sKKyAgY2hhciAqcCA9ICpzdHI7 CisgIGludCByZWc7CisKKyAgaWYgKHNraXBfcGFzdF9jaGFyICgmcCwgJ1sn KSA9PSBGQUlMKQorICAgIHsKKyAgICAgIGlmIChza2lwX3Bhc3RfY2hhciAo JnAsICc9JykgPT0gRkFJTCkKKwl7CisJICAvKiBiYXJlIGFkZHJlc3MgLSB0 cmFuc2xhdGUgdG8gUEMtcmVsYXRpdmUgb2Zmc2V0ICovCisJICBpbnN0LnJl bG9jLnBjX3JlbCA9IDE7CisJICBpbnN0Lm9wZXJhbmRzW2ldLnJlZyA9IFJF R19QQzsKKwkgIGluc3Qub3BlcmFuZHNbaV0uaXNyZWcgPSAxOworCSAgaW5z dC5vcGVyYW5kc1tpXS5wcmVpbmQgPSAxOworCX0KKyAgICAgIC8qIGVsc2Ug YSBsb2FkLWNvbnN0YW50IHBzZXVkbyBvcCwgbm8gc3BlY2lhbCB0cmVhdG1l bnQgbmVlZGVkIGhlcmUgKi8KKworICAgICAgaWYgKG15X2dldF9leHByZXNz aW9uICgmaW5zdC5yZWxvYy5leHAsICZwLCBHRV9OT19QUkVGSVgpKQorCXJl dHVybiBGQUlMOworCisgICAgICAqc3RyID0gcDsKKyAgICAgIHJldHVybiBT VUNDRVNTOworICAgIH0KKworICBpZiAoKHJlZyA9IGFybV9yZWdfcGFyc2Ug KCZwLCBSRUdfVFlQRV9STikpID09IEZBSUwpCisgICAgeworICAgICAgaW5z dC5lcnJvciA9IF8ocmVnX2V4cGVjdGVkX21zZ3NbUkVHX1RZUEVfUk5dKTsK KyAgICAgIHJldHVybiBGQUlMOworICAgIH0KKyAgaW5zdC5vcGVyYW5kc1tp XS5yZWcgPSByZWc7CisgIGluc3Qub3BlcmFuZHNbaV0uaXNyZWcgPSAxOwor CisgIGlmIChza2lwX3Bhc3RfY29tbWEgKCZwKSA9PSBTVUNDRVNTKQorICAg IHsKKyAgICAgIGluc3Qub3BlcmFuZHNbaV0ucHJlaW5kID0gMTsKKworCS8q IFtSbiwgKyMrLy1leHByXSAtIGltbWVkaWF0ZSBtb2RlLCBubyBSZWcgbW9k ZSAqLworCisgICAgICBpZiAoKnAgPT0gJysnKSBwKys7CisgICAgICBlbHNl IGlmICgqcCA9PSAnLScpIHArKywgaW5zdC5vcGVyYW5kc1tpXS5uZWdhdGl2 ZSA9IDE7CisKKwl7CisJICBpZiAoaW5zdC5vcGVyYW5kc1tpXS5uZWdhdGl2 ZSkKKwkgICAgeworCSAgICAgIGluc3Qub3BlcmFuZHNbaV0ubmVnYXRpdmUg PSAwOworCSAgICAgIHAtLTsKKwkgICAgfQorCSAgaWYgKG15X2dldF9leHBy ZXNzaW9uICgmaW5zdC5yZWxvYy5leHAsICZwLCBHRV9JTU1fUFJFRklYKSkK KwkgICAgcmV0dXJuIEZBSUw7CisJfQorICAgIH0KKworICBpZiAoc2tpcF9w YXN0X2NoYXIgKCZwLCAnXScpID09IEZBSUwpCisgICAgeworICAgICAgaW5z dC5lcnJvciA9IF8oIiddJyBleHBlY3RlZCIpOworICAgICAgcmV0dXJuIEZB SUw7CisgICAgfQorCisgIGlmIChza2lwX3Bhc3RfY2hhciAoJnAsICchJykg PT0gU1VDQ0VTUykKKyAgICBpbnN0Lm9wZXJhbmRzW2ldLndyaXRlYmFjayA9 IDE7CisKKyAgZWxzZSBpZiAoc2tpcF9wYXN0X2NvbW1hICgmcCkgPT0gU1VD Q0VTUykKKyAgICB7CisgICAgICBpZiAoc2tpcF9wYXN0X2NoYXIgKCZwLCAn eycpID09IFNVQ0NFU1MpCisJeworCSAgLyogW1JuXSwge2V4cHJ9IC0gdW5p bmRleGVkLCB3aXRoIG9wdGlvbiAqLworCSAgaWYgKHBhcnNlX2ltbWVkaWF0 ZSAoJnAsICZpbnN0Lm9wZXJhbmRzW2ldLmltbSwKKwkJCSAgICAgICAwLCAy NTUsIFRSVUUpID09IEZBSUwpCisJICAgIHJldHVybiBGQUlMOworCisJICBp ZiAoc2tpcF9wYXN0X2NoYXIgKCZwLCAnfScpID09IEZBSUwpCisJICAgIHsK KwkgICAgICBpbnN0LmVycm9yID0gXygiJ30nIGV4cGVjdGVkIGF0IGVuZCBv ZiAnb3B0aW9uJyBmaWVsZCIpOworCSAgICAgIHJldHVybiBGQUlMOworCSAg ICB9CisJICBpZiAoaW5zdC5vcGVyYW5kc1tpXS5wcmVpbmQpCisJICAgIHsK KwkgICAgICBpbnN0LmVycm9yID0gXygiY2Fubm90IGNvbWJpbmUgaW5kZXgg d2l0aCBvcHRpb24iKTsKKwkgICAgICByZXR1cm4gRkFJTDsKKwkgICAgfQor CSAgKnN0ciA9IHA7CisJICByZXR1cm4gU1VDQ0VTUzsKKwl9CisgICAgICBl bHNlCisJeworCS8qIFtSbl0sICsjKy8tZXhwciAtIGltbWVkaWF0ZSBtb2Rl LCBubyBSZWcgbW9kZSAqLworCSAgaW5zdC5vcGVyYW5kc1tpXS5wb3N0aW5k ID0gMTsKKwkgIGluc3Qub3BlcmFuZHNbaV0ud3JpdGViYWNrID0gMTsKKwor CSAgaWYgKGluc3Qub3BlcmFuZHNbaV0ucHJlaW5kKQorCSAgICB7CisJICAg ICAgaW5zdC5lcnJvciA9IF8oImNhbm5vdCBjb21iaW5lIHByZS0gYW5kIHBv c3QtaW5kZXhpbmciKTsKKwkgICAgICByZXR1cm4gRkFJTDsKKwkgICAgfQor CisJICBpZiAoKnAgPT0gJysnKSBwKys7CisJICBlbHNlIGlmICgqcCA9PSAn LScpIHArKywgaW5zdC5vcGVyYW5kc1tpXS5uZWdhdGl2ZSA9IDE7CisKKwkg ICAgeworCSAgICAgIGlmIChpbnN0Lm9wZXJhbmRzW2ldLm5lZ2F0aXZlKQor CQl7CisJCSAgaW5zdC5vcGVyYW5kc1tpXS5uZWdhdGl2ZSA9IDA7CisJCSAg cC0tOworCQl9CisJICAgICAgaWYgKG15X2dldF9leHByZXNzaW9uICgmaW5z dC5yZWxvYy5leHAsICZwLCBHRV9JTU1fUFJFRklYKSkKKwkJcmV0dXJuIEZB SUw7CisJICAgIH0KKwl9CisgICAgfQorCisgIC8qIElmIGF0IHRoaXMgcG9p bnQgbmVpdGhlciAucHJlaW5kIG5vciAucG9zdGluZCBpcyBzZXQsIHdlIGhh dmUgYQorICAgICBiYXJlIFtSbl17IX0sIHdoaWNoIGlzIHNob3J0aGFuZCBm b3IgW1JuLCMwXXshfS4gICovCisgIGlmIChpbnN0Lm9wZXJhbmRzW2ldLnBy ZWluZCA9PSAwICYmIGluc3Qub3BlcmFuZHNbaV0ucG9zdGluZCA9PSAwKQor ICAgIHsKKyAgICAgIGluc3Qub3BlcmFuZHNbaV0ucHJlaW5kID0gMTsKKyAg ICAgIGluc3QucmVsb2MuZXhwLlhfb3AgPSBPX2NvbnN0YW50OworICAgICAg aW5zdC5yZWxvYy5leHAuWF9hZGRfbnVtYmVyID0gMDsKKyAgICB9CisgICpz dHIgPSBwOworICByZXR1cm4gU1VDQ0VTUzsKK30KKwogLyogUGFyc2UgYWxs IGZvcm1zIG9mIGFuIEFSTSBhZGRyZXNzIGV4cHJlc3Npb24uICBJbmZvcm1h dGlvbiBpcyB3cml0dGVuCiAgICB0byBpbnN0Lm9wZXJhbmRzW2ldIGFuZC9v ciBpbnN0LnJlbG9jLgogCkBAIC0zODAyLDYgKzM5MzEsNyBAQCBlbnVtIG9w ZXJhbmRfcGFyc2VfY29kZQogICBPUF9FWFAsCS8qIGFyYml0cmFyeSBleHBy ZXNzaW9uICovCiAgIE9QX0VYUGksCS8qIHNhbWUsIHdpdGggb3B0aW9uYWwg aW1tZWRpYXRlIHByZWZpeCAqLwogICBPUF9FWFByLAkvKiBzYW1lLCB3aXRo IG9wdGlvbmFsIHJlbG9jYXRpb24gc3VmZml4ICovCisgIE9QX0FERFJfSU1N LAkvKiBNZW1vcnkgYWRkcmVzcyBleHByZXNzaW9uLCBubyBSZWcgbW9kZSAq LwogCiAgIE9QX0NQU0YsCS8qIENQUyBmbGFncyAqLwogICBPUF9FTkRJLAkv KiBFbmRpYW5uZXNzIHNwZWNpZmllciAqLwpAQCAtMzgxNCw2ICszOTQ0LDcg QEAgZW51bSBvcGVyYW5kX3BhcnNlX2NvZGUKICAgT1BfUlJfRVhpLAkvKiBB Uk0gcmVnaXN0ZXIgb3IgZXhwcmVzc2lvbiB3aXRoIGltbSBwcmVmaXggKi8K ICAgT1BfUkZfSUYsCS8qIEZQQSByZWdpc3RlciBvciBpbW1lZGlhdGUgKi8K ICAgT1BfUklXUl9SSVdDLCAvKiBpV01NWHQgUiBvciBDIHJlZyAqLworICBP UF9SSVdSX0lNTTMxLCAvKiBpV01NWHQgUiBvciBpbW1lZGlhdGUgKi8KIAog ICAvKiBPcHRpb25hbCBvcGVyYW5kcy4JICovCiAgIE9QX29JN2IsCSAvKiBp bW1lZGlhdGUsIHByZWZpeCBvcHRpb25hbCwgMCAuLiA3ICovCkBAIC00MDM5 LDEwICs0MTcwLDE3IEBAIHBhcnNlX29wZXJhbmRzIChjaGFyICpzdHIsIGNv bnN0IHVuc2lnbmUKIAkJZ290byBmYWlsdXJlOwogCSAgICAgIH0KIAkgICAg aW5zdC5vcGVyYW5kc1tpXS5yZWcgPSByZWdlLT5udW1iZXI7Ci0JICAgIGlu c3Qub3BlcmFuZHNbaV0uaXNyZWcgPSAocmVnZS0+dHlwZSA9PSBSRUdfVFlQ RV9NTVhXUik7CisJICAgIGluc3Qub3BlcmFuZHNbaV0uaXNyZWcgPSAocmVn ZS0+dHlwZSA9PSBSRUdfVFlQRV9NTVhXUikgfHwgKHJlZ2UtPnR5cGUgPT0g UkVHX1RZUEVfTU1YV0MpOworCSAgICBpbnN0Lm9wZXJhbmRzW2ldLmlzd2Mg PSAocmVnZS0+dHlwZSA9PSBSRUdfVFlQRV9NTVhXQyk7CiAJICB9CiAJICBi cmVhazsKIAorCSAgLyogaVdNTVh0IFIgcmVnIG9yIGltbWVkaWF0ZSAqLwor CWNhc2UgT1BfUklXUl9JTU0zMTogcG9fcmVnX29yX2dvdG8oUkVHX1RZUEVf TU1YV1IsIFdSX0lNTSk7IGJyZWFrOworCVdSX0lNTToKKwkgIHBvX2ltbV9v cl9mYWlsICgwLCAzMiwgRkFMU0UpOworCSAgYnJlYWs7CisKIAkgIC8qIE1p c2MgKi8KIAljYXNlIE9QX0NQU0Y6CSB2YWwgPSBwYXJzZV9jcHNfZmxhZ3Mg KCZzdHIpOwkJYnJlYWs7CiAJY2FzZSBPUF9FTkRJOgkgdmFsID0gcGFyc2Vf ZW5kaWFuX3NwZWNpZmllciAoJnN0cik7CWJyZWFrOwpAQCAtNDA3OCw2ICs0 MjE2LDExIEBAIHBhcnNlX29wZXJhbmRzIChjaGFyICpzdHIsIGNvbnN0IHVu c2lnbmUKIAkgIHBvX21pc2Nfb3JfZmFpbCAocGFyc2VfYWRkcmVzcyAoJnN0 ciwgaSkpOwogCSAgYnJlYWs7CiAKKwkgIC8qIEFkZHJlc3NpbmcgbW9kZXMs IG5vIFJlZyBtb2RlICovCisJY2FzZSBPUF9BRERSX0lNTToKKwkgIHBvX21p c2Nfb3JfZmFpbCAocGFyc2VfYWRkcmVzc19pbW0gKCZzdHIsIGkpKTsKKwkg IGJyZWFrOworCiAJY2FzZSBPUF9TSDoKIAkgIHBvX21pc2Nfb3JfZmFpbCAo cGFyc2Vfc2hpZnRlcl9vcGVyYW5kICgmc3RyLCBpKSk7CiAJICBicmVhazsK QEAgLTU4MDMsNyArNTk0Niw2IEBAIGRvX2l3bW14dF93bGRzdGJoICh2b2lk KQogewogICBpbnQgcmVsb2M7CiAgIGluc3QuaW5zdHJ1Y3Rpb24gfD0gaW5z dC5vcGVyYW5kc1swXS5yZWcgPDwgMTI7Ci0gIGluc3QucmVsb2MuZXhwLlhf YWRkX251bWJlciAqPSA0OwogICBpZiAodGh1bWJfbW9kZSkKICAgICByZWxv YyA9IEJGRF9SRUxPQ19BUk1fVDMyX0NQX09GRl9JTU1fUzI7CiAgIGVsc2UK QEAgLTU4MTEsNiArNTk1MywxMDMgQEAgZG9faXdtbXh0X3dsZHN0YmggKHZv aWQpCiAgIGVuY29kZV9hcm1fY3BfYWRkcmVzcyAoMSwgVFJVRSwgRkFMU0Us IHJlbG9jKTsKIH0KIAorLyogaW5zdC5vcGVyYW5kc1tpXSB3YXMgc2V0IHVw IGJ5IHBhcnNlX2FkZHJlc3MuICBFbmNvZGUgaXQgaW50byBhbgorICAgQVJN LWZvcm1hdCBpbnN0cnVjdGlvbi4gIFJlamVjdCBhbGwgZm9ybXMgd2hpY2gg Y2Fubm90IGJlIGVuY29kZWQKKyAgIGludG8gYSBjb3Byb2Nlc3NvciBsb2Fk L3N0b3JlIGluc3RydWN0aW9uLiAgSWYgd2Jfb2sgaXMgZmFsc2UsCisgICBy ZWplY3QgdXNlIG9mIHdyaXRlYmFjazsgaWYgdW5pbmRfb2sgaXMgZmFsc2Us IHJlamVjdCB1c2Ugb2YKKyAgIHVuaW5kZXhlZCBhZGRyZXNzaW5nLiAgSWYg cmVsb2Nfb3ZlcnJpZGUgaXMgbm90IDAsIHVzZSBpdCBpbnN0ZWFkCisgICBv ZiBCRkRfQVJNX0NQX09GRl9JTU0uICAqLworCitzdGF0aWMgaW50CitlbmNv ZGVfYXJtX2NwX3JlZ19hZGRyZXNzIChpbnQgaSwgaW50IHdiX29rLCBpbnQg dW5pbmRfb2ssIGludCByZWxvY19vdmVycmlkZSkKK3sKKyAgaW5zdC5pbnN0 cnVjdGlvbiB8PSBpbnN0Lm9wZXJhbmRzW2ldLnJlZyA8PCAxNjsKKworICBh c3NlcnQgKCEoaW5zdC5vcGVyYW5kc1tpXS5wcmVpbmQgJiYgaW5zdC5vcGVy YW5kc1tpXS5wb3N0aW5kKSk7CisKKyAgaWYgKCFpbnN0Lm9wZXJhbmRzW2ld LnByZWluZCAmJiAhaW5zdC5vcGVyYW5kc1tpXS5wb3N0aW5kKSAvKiB1bmlu ZGV4ZWQgKi8KKyAgICB7CisgICAgICBhc3NlcnQgKCFpbnN0Lm9wZXJhbmRz W2ldLndyaXRlYmFjayk7CisgICAgICBpZiAoIXVuaW5kX29rKQorCXsKKwkg IGluc3QuZXJyb3IgPSBfKCJpbnN0cnVjdGlvbiBkb2VzIG5vdCBzdXBwb3J0 IHVuaW5kZXhlZCBhZGRyZXNzaW5nIik7CisJICByZXR1cm4gRkFJTDsKKwl9 CisgICAgICBpbnN0Lmluc3RydWN0aW9uIHw9IGluc3Qub3BlcmFuZHNbaV0u aW1tOworICAgICAgaW5zdC5pbnN0cnVjdGlvbiB8PSBJTkRFWF9VUDsKKyAg ICAgIHJldHVybiBTVUNDRVNTOworICAgIH0KKworICBpZiAoaW5zdC5vcGVy YW5kc1tpXS5wcmVpbmQpCisgICAgaW5zdC5pbnN0cnVjdGlvbiB8PSBQUkVf SU5ERVg7CisKKyAgaWYgKGluc3Qub3BlcmFuZHNbaV0ud3JpdGViYWNrKQor ICAgIHsKKyAgICAgIGlmIChpbnN0Lm9wZXJhbmRzW2ldLnJlZyA9PSBSRUdf UEMpCisJeworCSAgaW5zdC5lcnJvciA9IF8oInBjIG1heSBub3QgYmUgdXNl ZCB3aXRoIHdyaXRlLWJhY2siKTsKKwkgIHJldHVybiBGQUlMOworCX0KKyAg ICAgIGlmICghd2Jfb2spCisJeworCSAgaW5zdC5lcnJvciA9IF8oImluc3Ry dWN0aW9uIGRvZXMgbm90IHN1cHBvcnQgd3JpdGViYWNrIik7CisJICByZXR1 cm4gRkFJTDsKKwl9CisgICAgICBpbnN0Lmluc3RydWN0aW9uIHw9IFdSSVRF X0JBQ0s7CisgICAgfQorCisgIGlmIChyZWxvY19vdmVycmlkZSkKKyAgICBp bnN0LnJlbG9jLnR5cGUgPSByZWxvY19vdmVycmlkZTsKKyAgZWxzZSBpZiAo dGh1bWJfbW9kZSkKKyAgICBpbnN0LnJlbG9jLnR5cGUgPSBCRkRfUkVMT0Nf QVJNX1QzMl9DUF9PRkZfSU1NOworICBlbHNlCisgICAgaW5zdC5yZWxvYy50 eXBlID0gQkZEX1JFTE9DX0FSTV9DUF9PRkZfSU1NOworCisgIC8qIGp1ZGdl IGlmIGltbWVkaWF0ZSBhbGlnbm1lbnQgYW5kIHJhbmdlIHJlYXNvbmFibGUg Ki8KKyAgaWYgKGluc3Qub3BlcmFuZHNbaV0uaW1taXNyZWcgPT0gMSkgewor CS8qIGNoZWNrIGltbWVkaWF0ZSByYW5nZSwgUmVnIG1vZGUgYW5kIGNoZWNr IG5lZ2F0aXZlICovCisJaWYgKGluc3Qub3BlcmFuZHNbaV0ubmVnYXRpdmUg PT0gMSkKKwkJaW5zdC5pbnN0cnVjdGlvbiAmPSB+SU5ERVhfVVA7CisJZWxz ZSAKKwkJaW5zdC5pbnN0cnVjdGlvbiB8PSBJTkRFWF9VUDsKKworCWlmIChp bnN0Lm9wZXJhbmRzW2ldLnNoaWZ0ZWQgPT0gMSkgeworCSAgCWlmIChpbnN0 LnJlbG9jLmV4cC5YX2FkZF9udW1iZXIgPiAxNSkgeworCQkgICAgICBpbnN0 LmVycm9yID0gXygicmVnIG1vZGU6IGNvbnN0YW50IG91dCBvZiByYW5nZSIp OworCQkgICAgICByZXR1cm4gRkFJTDsKKyAgCQl9CisJCWluc3QuaW5zdHJ1 Y3Rpb24gfD0gKGluc3QucmVsb2MuZXhwLlhfYWRkX251bWJlciA8PCA0KTsK Kwl9CisKKyAgCS8qIHBsYWNlIHRoZSBpbW1lZGlhdGUgaW50byBpbnN0ICov CisJaW5zdC5pbnN0cnVjdGlvbiB8PSAoMHhmIDw8IDI4KTsKKyAgCWluc3Qu aW5zdHJ1Y3Rpb24gfD0gaW5zdC5vcGVyYW5kc1tpXS5pbW07CisgIH0gZWxz ZSB7CisJaW50IG9mZnNldDsKKwlvZmZzZXQgPSBpbnN0LnJlbG9jLmV4cC5Y X2FkZF9udW1iZXI7CisKKyAgCS8qIGNoZWNrIGltbWVkaWF0ZSBhbGlnbiAq LworICAJaWYgKG9mZnNldCAmIDMpIHsKKwkJaW5zdC5lcnJvciA9IF8oImNv LXByb2Nlc3NvciBhZGRyZXNzIG11c3QgYmUgd29yZCBhbGlnbmVkIik7CisJ CXJldHVybiBGQUlMOworICAJfQorCisJaWYgKG9mZnNldCA+PSAwKQorCQlp bnN0Lmluc3RydWN0aW9uIHw9IElOREVYX1VQOworCWVsc2UKKwkJb2Zmc2V0 ID0gLW9mZnNldDsKKyAgCWluc3QuaW5zdHJ1Y3Rpb24gfD0gKG9mZnNldCA+ PiAyKTsKKyAgfQorCisgIGlmIChpbnN0Lm9wZXJhbmRzWzBdLmlzd2MgPT0g MSkKKyAgeworCWluc3QuaW5zdHJ1Y3Rpb24gfD0gIDB4ZjAwMDAxMDA7CisJ aW5zdC5pbnN0cnVjdGlvbiAmPSB+MHgwMDQwMDAwMDsKKyAgfQorCisgIHJl dHVybiBTVUNDRVNTOworfQorCiBzdGF0aWMgdm9pZAogZG9faXdtbXh0X3ds ZHN0dyAodm9pZCkKIHsKQEAgLTU4MjIsMTQgKzYwNjEsMTQgQEAgZG9faXdt bXh0X3dsZHN0dyAodm9pZCkKICAgICB9CiAKICAgaW5zdC5pbnN0cnVjdGlv biB8PSBpbnN0Lm9wZXJhbmRzWzBdLnJlZyA8PCAxMjsKLSAgZW5jb2RlX2Fy bV9jcF9hZGRyZXNzICgxLCBUUlVFLCBUUlVFLCAwKTsKKyAgZW5jb2RlX2Fy bV9jcF9yZWdfYWRkcmVzcyAoMSwgVFJVRSwgVFJVRSwgMCk7CiB9CiAKIHN0 YXRpYyB2b2lkCiBkb19pd21teHRfd2xkc3RkICh2b2lkKQogewogICBpbnN0 Lmluc3RydWN0aW9uIHw9IGluc3Qub3BlcmFuZHNbMF0ucmVnIDw8IDEyOwot ICBlbmNvZGVfYXJtX2NwX2FkZHJlc3MgKDEsIFRSVUUsIEZBTFNFLCAwKTsK KyAgZW5jb2RlX2FybV9jcF9yZWdfYWRkcmVzcyAoMSwgVFJVRSwgRkFMU0Us IDApOwogfQogCiBzdGF0aWMgdm9pZApAQCAtNTg1MCw2ICs2MDg5LDgzIEBA IGRvX2l3bW14dF93emVybyAodm9pZCkKICAgaW5zdC5pbnN0cnVjdGlvbiB8 PSBpbnN0Lm9wZXJhbmRzWzBdLnJlZyA8PCAxNjsKIH0KIAwKKy8qIGlXTU1Y dDIgaW5zdHJ1Y3Rpb25zOiBzdHJpY3RseSBpbiBhbHBoYWJldGljYWwgb3Jk ZXIuICovCisKK3N0YXRpYyB2b2lkCitkb19pd21teHRfdG9ydnNjYiAodm9p ZCkKK3sKKyAgY29uc3RyYWludCAoaW5zdC5vcGVyYW5kc1swXS5yZWcgIT0g UkVHX1BDLCBfKCJvbmx5IHIxNSBhbGxvd2VkIGhlcmUiKSk7Cit9CisKK3N0 YXRpYyB2b2lkCitkb19pd21teHRfd21lcmdlICh2b2lkKQoreworICBpbnN0 Lmluc3RydWN0aW9uIHw9IGluc3Qub3BlcmFuZHNbMF0ucmVnIDw8IDEyOwor ICBpbnN0Lmluc3RydWN0aW9uIHw9IGluc3Qub3BlcmFuZHNbMV0ucmVnIDw8 IDE2OworICBpbnN0Lmluc3RydWN0aW9uIHw9IGluc3Qub3BlcmFuZHNbMl0u cmVnOworICBpbnN0Lmluc3RydWN0aW9uIHw9IGluc3Qub3BlcmFuZHNbM10u aW1tIDw8IDIxOworfQorCisvKiBmb3Igd3Jvciwgd3NsbCwgd3NyYSBhbmQg d3NybCAqLworc3RhdGljIHZvaWQKK2RvX2l3bW14dF9yZF9ybl9ybV9pbW01 ICh2b2lkKQoreworCXVuc2lnbmVkIGxvbmcgbnVtYmVyOworCQkKKyAgaW5z dC5pbnN0cnVjdGlvbiB8PSBpbnN0Lm9wZXJhbmRzWzBdLnJlZyA8PCAxMjsK KyAgaW5zdC5pbnN0cnVjdGlvbiB8PSBpbnN0Lm9wZXJhbmRzWzFdLnJlZyA8 PCAxNjsKKworCWlmIChpbnN0Lm9wZXJhbmRzWzJdLmlzcmVnID09IDEpIHsK KwkJaW5zdC5pbnN0cnVjdGlvbiB8PSBpbnN0Lm9wZXJhbmRzWzJdLnJlZzsK KwkJcmV0dXJuOworCX0KKworCWlmICghQVJNX0NQVV9IQVNfRkVBVFVSRSAo Y3B1X3ZhcmlhbnQsIGFybV9jZXh0X2l3bW14dDIpKSB7CisJCXJldHVybjsK Kwl9CisKKwludW1iZXIgPSBpbnN0Lm9wZXJhbmRzWzJdLmltbTsKKwlpZiAo bnVtYmVyID09IDApCisJeworCQlzd2l0Y2ggKChpbnN0Lmluc3RydWN0aW9u ID4+IDIwKSAmIDB4ZikKKwkJeworCQljYXNlIDQ6CisJCWNhc2UgNToKKwkJ Y2FzZSA2OgorCQljYXNlIDc6IAorCQkgIC8qIHcuLi5oIHdyZCwgd3JuLCAj MCAtPiB3cm9yaCB3cmQsIHdybiwgIzE2LiAgKi8KKwkJICBudW1iZXIgPSAx NjsKKwkJICBpbnN0Lmluc3RydWN0aW9uID0gKGluc3QuaW5zdHJ1Y3Rpb24g JiAweGZmMGZmZmZmKSB8ICgweDcgPDwgMjApOworCQkgIGJyZWFrOworCQlj YXNlIDg6CisJCWNhc2UgOToKKwkJY2FzZSAxMDoKKwkJY2FzZSAxMToKKwkJ ICAvKiB3Li4udyB3cmQsIHdybiwgIzAgLT4gd3Jvcncgd3JkLCB3cm4sICMz Mi4gICovCisJCSAgbnVtYmVyID0gMzI7CisJCSAgaW5zdC5pbnN0cnVjdGlv biA9IChpbnN0Lmluc3RydWN0aW9uICYgMHhmZjBmZmZmZikgfCAoMHhiIDw8 IDIwKTsKKwkJICBicmVhazsKKwkJY2FzZSAxMjoKKwkJY2FzZSAxMzoKKwkJ Y2FzZSAxNDoKKwkJY2FzZSAxNToKKwkJICB7CisJCQkvKiB3Li4uZCB3cmQs IHdybiwgIzAgLT4gd29yIHdyZCwgd3JuLCB3cm4uICAqLworCQkJdW5zaWdu ZWQgbG9uZyB3cm47CisJCQl3cm4gPSAoaW5zdC5pbnN0cnVjdGlvbiA+PiAx NikgJiAweGY7CisJCQlpbnN0Lmluc3RydWN0aW9uICY9IDB4ZmYwZmZmMGY7 CisJCQlpbnN0Lmluc3RydWN0aW9uIHw9IHdybjsKKwkJCS8qIEJhaWwgb3V0 IGhlcmU7IHRoZSBpbnN0cnVjdGlvbiBpcyBub3cgYXNzZW1ibGVkLiAgKi8K KwkJCXJldHVybjsKKwkJICB9CisJCX0KKwl9CisKKwludW1iZXIgJj0gMHgx ZjsKKwlpbnN0Lmluc3RydWN0aW9uIHw9ICgweGYgPDwgMjgpIHwgKChudW1i ZXIgJiAweDEwKSA8PCA0KSB8IChudW1iZXIgJiAweGYpOworfQorCisKIC8q IENpcnJ1cyBNYXZlcmljayBpbnN0cnVjdGlvbnMuICBTaW1wbGUgMi0sIDMt LCBhbmQgNC1yZWdpc3RlcgogICAgb3BlcmF0aW9ucyBmaXJzdCwgdGhlbiBj b250cm9sLCBzaGlmdCwgYW5kIGxvYWQvc3RvcmUuICAqLwogCkBAIC0xMDA0 NSw5ICsxMDM2MSw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNtX29wY29k ZSBpbnNuc1tdID0KICBjQ0Uod2NtcGd0c2IsCWUzMDAwNjAsIDMsIChSSVdS LCBSSVdSLCBSSVdSKSwJICAgIHJkX3JuX3JtKSwKICBjQ0Uod2NtcGd0c2gs CWU3MDAwNjAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwJICAgIHJkX3JuX3Jt KSwKICBjQ0Uod2NtcGd0c3csCWViMDAwNjAsIDMsIChSSVdSLCBSSVdSLCBS SVdSKSwJICAgIHJkX3JuX3JtKSwKLSBjQ0Uod2xkcmIsCWMxMDAwMDAsIDIs IChSSVdSLCBBRERSKSwJICAgIGl3bW14dF93bGRzdGJoKSwKLSBjQ0Uod2xk cmgsCWM1MDAwMDAsIDIsIChSSVdSLCBBRERSKSwJICAgIGl3bW14dF93bGRz dGJoKSwKLSBjQ0Uod2xkcncsCWMxMDAxMDAsIDIsIChSSVdSX1JJV0MsIEFE RFIpLAkgICAgaXdtbXh0X3dsZHN0dyksCisgY0NFKHdsZHJiLAljMTAwMDAw LCAyLCAoUklXUiwgQUREUl9JTU0pLAkgICAgaXdtbXh0X3dsZHN0YmgpLAor IGNDRSh3bGRyaCwJYzUwMDAwMCwgMiwgKFJJV1IsIEFERFJfSU1NKSwJICAg IGl3bW14dF93bGRzdGJoKSwKKyBjQ0Uod2xkcncsCWMxMDAxMDAsIDIsIChS SVdSX1JJV0MsIEFERFJfSU1NKSwgIGl3bW14dF93bGRzdHcpLAogIGNDRSh3 bGRyZCwJYzUwMDEwMCwgMiwgKFJJV1IsIEFERFIpLAkgICAgaXdtbXh0X3ds ZHN0ZCksCiAgY0NFKHdtYWNzLAllNjAwMTAwLCAzLCAoUklXUiwgUklXUiwg UklXUiksCSAgICByZF9ybl9ybSksCiAgY0NFKHdtYWNzeiwJZTcwMDEwMCwg MywgKFJJV1IsIFJJV1IsIFJJV1IpLAkgICAgcmRfcm5fcm0pLApAQCAtMTAw NzksMzggKzEwMzk1LDM4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXNtX29w Y29kZSBpbnNuc1tdID0KICBjQ0Uod3BhY2t3dXMsCWU5MDAwODAsIDMsIChS SVdSLCBSSVdSLCBSSVdSKSwJICAgIHJkX3JuX3JtKSwKICBjQ0Uod3BhY2tk c3MsCWVmMDAwODAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwJICAgIHJkX3Ju X3JtKSwKICBjQ0Uod3BhY2tkdXMsCWVkMDAwODAsIDMsIChSSVdSLCBSSVdS LCBSSVdSKSwJICAgIHJkX3JuX3JtKSwKLSBjQ0Uod3JvcmgsCWU3MDAwNDAs IDMsIChSSVdSLCBSSVdSLCBSSVdSKSwJICAgIHJkX3JuX3JtKSwKKyBjQ0Uo d3JvcmgsCWU3MDAwNDAsIDMsIChSSVdSLCBSSVdSLCBSSVdSX0lNTTMxKSwJ ICAgIGl3bW14dF9yZF9ybl9ybV9pbW01KSwKICBjQ0Uod3JvcmhnLAllNzAw MTQ4LCAzLCAoUklXUiwgUklXUiwgUklXRyksCSAgICByZF9ybl9ybSksCi0g Y0NFKHdyb3J3LAllYjAwMDQwLCAzLCAoUklXUiwgUklXUiwgUklXUiksCSAg ICByZF9ybl9ybSksCisgY0NFKHdyb3J3LAllYjAwMDQwLCAzLCAoUklXUiwg UklXUiwgUklXUl9JTU0zMSksCSAgICBpd21teHRfcmRfcm5fcm1faW1tNSks CiAgY0NFKHdyb3J3ZywJZWIwMDE0OCwgMywgKFJJV1IsIFJJV1IsIFJJV0cp LAkgICAgcmRfcm5fcm0pLAotIGNDRSh3cm9yZCwJZWYwMDA0MCwgMywgKFJJ V1IsIFJJV1IsIFJJV1IpLAkgICAgcmRfcm5fcm0pLAorIGNDRSh3cm9yZCwJ ZWYwMDA0MCwgMywgKFJJV1IsIFJJV1IsIFJJV1JfSU1NMzEpLAkgICAgaXdt bXh0X3JkX3JuX3JtX2ltbTUpLAogIGNDRSh3cm9yZGcsCWVmMDAxNDgsIDMs IChSSVdSLCBSSVdSLCBSSVdHKSwJICAgIHJkX3JuX3JtKSwKICBjQ0Uod3Nh ZGIsCWUwMDAxMjAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwJICAgIHJkX3Ju X3JtKSwKICBjQ0Uod3NhZGJ6LAllMTAwMTIwLCAzLCAoUklXUiwgUklXUiwg UklXUiksCSAgICByZF9ybl9ybSksCiAgY0NFKHdzYWRoLAllNDAwMTIwLCAz LCAoUklXUiwgUklXUiwgUklXUiksCSAgICByZF9ybl9ybSksCiAgY0NFKHdz YWRoeiwJZTUwMDEyMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLAkgICAgcmRf cm5fcm0pLAogIGNDRSh3c2h1ZmgsCWUwMDAxZTAsIDMsIChSSVdSLCBSSVdS LCBJMjU1KSwJICAgIGl3bW14dF93c2h1ZmgpLAotIGNDRSh3c2xsaCwJZTUw MDA0MCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLAkgICAgcmRfcm5fcm0pLAor IGNDRSh3c2xsaCwJZTUwMDA0MCwgMywgKFJJV1IsIFJJV1IsIFJJV1JfSU1N MzEpLAkgICAgaXdtbXh0X3JkX3JuX3JtX2ltbTUpLAogIGNDRSh3c2xsaGcs CWU1MDAxNDgsIDMsIChSSVdSLCBSSVdSLCBSSVdHKSwJICAgIHJkX3JuX3Jt KSwKLSBjQ0Uod3NsbHcsCWU5MDAwNDAsIDMsIChSSVdSLCBSSVdSLCBSSVdS KSwJICAgIHJkX3JuX3JtKSwKKyBjQ0Uod3NsbHcsCWU5MDAwNDAsIDMsIChS SVdSLCBSSVdSLCBSSVdSX0lNTTMxKSwJICAgIGl3bW14dF9yZF9ybl9ybV9p bW01KSwKICBjQ0Uod3NsbHdnLAllOTAwMTQ4LCAzLCAoUklXUiwgUklXUiwg UklXRyksCSAgICByZF9ybl9ybSksCi0gY0NFKHdzbGxkLAllZDAwMDQwLCAz LCAoUklXUiwgUklXUiwgUklXUiksCSAgICByZF9ybl9ybSksCisgY0NFKHdz bGxkLAllZDAwMDQwLCAzLCAoUklXUiwgUklXUiwgUklXUl9JTU0zMSksCSAg ICBpd21teHRfcmRfcm5fcm1faW1tNSksCiAgY0NFKHdzbGxkZywJZWQwMDE0 OCwgMywgKFJJV1IsIFJJV1IsIFJJV0cpLAkgICAgcmRfcm5fcm0pLAotIGND RSh3c3JhaCwJZTQwMDA0MCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLAkgICAg cmRfcm5fcm0pLAorIGNDRSh3c3JhaCwJZTQwMDA0MCwgMywgKFJJV1IsIFJJ V1IsIFJJV1JfSU1NMzEpLAkgICAgaXdtbXh0X3JkX3JuX3JtX2ltbTUpLAog IGNDRSh3c3JhaGcsCWU0MDAxNDgsIDMsIChSSVdSLCBSSVdSLCBSSVdHKSwJ ICAgIHJkX3JuX3JtKSwKLSBjQ0Uod3NyYXcsCWU4MDAwNDAsIDMsIChSSVdS LCBSSVdSLCBSSVdSKSwJICAgIHJkX3JuX3JtKSwKKyBjQ0Uod3NyYXcsCWU4 MDAwNDAsIDMsIChSSVdSLCBSSVdSLCBSSVdSX0lNTTMxKSwJICAgIGl3bW14 dF9yZF9ybl9ybV9pbW01KSwKICBjQ0Uod3NyYXdnLAllODAwMTQ4LCAzLCAo UklXUiwgUklXUiwgUklXRyksCSAgICByZF9ybl9ybSksCi0gY0NFKHdzcmFk LAllYzAwMDQwLCAzLCAoUklXUiwgUklXUiwgUklXUiksCSAgICByZF9ybl9y bSksCisgY0NFKHdzcmFkLAllYzAwMDQwLCAzLCAoUklXUiwgUklXUiwgUklX Ul9JTU0zMSksCSAgICBpd21teHRfcmRfcm5fcm1faW1tNSksCiAgY0NFKHdz cmFkZywJZWMwMDE0OCwgMywgKFJJV1IsIFJJV1IsIFJJV0cpLAkgICAgcmRf cm5fcm0pLAotIGNDRSh3c3JsaCwJZTYwMDA0MCwgMywgKFJJV1IsIFJJV1Is IFJJV1IpLAkgICAgcmRfcm5fcm0pLAorIGNDRSh3c3JsaCwJZTYwMDA0MCwg MywgKFJJV1IsIFJJV1IsIFJJV1JfSU1NMzEpLAkgICAgaXdtbXh0X3JkX3Ju X3JtX2ltbTUpLAogIGNDRSh3c3JsaGcsCWU2MDAxNDgsIDMsIChSSVdSLCBS SVdSLCBSSVdHKSwJICAgIHJkX3JuX3JtKSwKLSBjQ0Uod3NybHcsCWVhMDAw NDAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwJICAgIHJkX3JuX3JtKSwKKyBj Q0Uod3NybHcsCWVhMDAwNDAsIDMsIChSSVdSLCBSSVdSLCBSSVdSX0lNTTMx KSwJICAgIGl3bW14dF9yZF9ybl9ybV9pbW01KSwKICBjQ0Uod3NybHdnLAll YTAwMTQ4LCAzLCAoUklXUiwgUklXUiwgUklXRyksCSAgICByZF9ybl9ybSks Ci0gY0NFKHdzcmxkLAllZTAwMDQwLCAzLCAoUklXUiwgUklXUiwgUklXUiks CSAgICByZF9ybl9ybSksCisgY0NFKHdzcmxkLAllZTAwMDQwLCAzLCAoUklX UiwgUklXUiwgUklXUl9JTU0zMSksCSAgICBpd21teHRfcmRfcm5fcm1faW1t NSksCiAgY0NFKHdzcmxkZywJZWUwMDE0OCwgMywgKFJJV1IsIFJJV1IsIFJJ V0cpLAkgICAgcmRfcm5fcm0pLAotIGNDRSh3c3RyYiwJYzAwMDAwMCwgMiwg KFJJV1IsIEFERFIpLAkgICAgaXdtbXh0X3dsZHN0YmgpLAotIGNDRSh3c3Ry aCwJYzQwMDAwMCwgMiwgKFJJV1IsIEFERFIpLAkgICAgaXdtbXh0X3dsZHN0 YmgpLAotIGNDRSh3c3RydywJYzAwMDEwMCwgMiwgKFJJV1JfUklXQywgQURE UiksCSAgICBpd21teHRfd2xkc3R3KSwKKyBjQ0Uod3N0cmIsCWMwMDAwMDAs IDIsIChSSVdSLCBBRERSX0lNTSksCSAgICBpd21teHRfd2xkc3RiaCksCisg Y0NFKHdzdHJoLAljNDAwMDAwLCAyLCAoUklXUiwgQUREUl9JTU0pLAkgICAg aXdtbXh0X3dsZHN0YmgpLAorIGNDRSh3c3RydywJYzAwMDEwMCwgMiwgKFJJ V1JfUklXQywgQUREUl9JTU0pLCAgaXdtbXh0X3dsZHN0dyksCiAgY0NFKHdz dHJkLAljNDAwMTAwLCAyLCAoUklXUiwgQUREUiksCSAgICBpd21teHRfd2xk c3RkKSwKICBjQ0Uod3N1YmJzcywJZTMwMDFhMCwgMywgKFJJV1IsIFJJV1Is IFJJV1IpLAkgICAgcmRfcm5fcm0pLAogIGNDRSh3c3ViYiwJZTAwMDFhMCwg MywgKFJJV1IsIFJJV1IsIFJJV1IpLAkgICAgcmRfcm5fcm0pLApAQCAtMTAx NDMsNiArMTA0NTksNjYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhc21fb3Bj b2RlIGluc25zW10gPQogIGNDRSh3emVybywJZTMwMDAwMCwgMSwgKFJJV1Ip LAkJICAgIGl3bW14dF93emVybyksCiAKICN1bmRlZiBBUk1fVkFSSUFOVAor I2RlZmluZSBBUk1fVkFSSUFOVCAmYXJtX2NleHRfaXdtbXh0Mi8qIEludGVs IFdpcmVsZXNzIE1NWCB0ZWNobm9sb2d5LCBWZXJzaW9uIDIgICovCisgY0NF KHRvcnZzY2IsCWUxM2YxOTAsIDEsIChSUiksCQkgICAgaXdtbXh0X3RvcnZz Y2IpLAorIGNDRSh0b3J2c2NoLAllNTNmMTkwLCAxLCAoUlIpLAkJICAgIGl3 bW14dF90b3J2c2NiKSwKKyBjQ0UodG9ydnNjdywJZTkzZjE5MCwgMSwgKFJS KSwJCSAgICBpd21teHRfdG9ydnNjYiksCisgY0NFKHdhYnNiLCBlMjAwMWMw LCAyLCAoUklXUiwgUklXUiksIHJkX3JuKSwKKyBjQ0Uod2Fic2gsIGU2MDAx YzAsIDIsIChSSVdSLCBSSVdSKSwgcmRfcm4pLAorIGNDRSh3YWJzdywgZWEw MDFjMCwgMiwgKFJJV1IsIFJJV1IpLCByZF9ybiksCisgY0NFKHdhYnNkaWZm YiwgZTEwMDFjMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSks CisgY0NFKHdhYnNkaWZmaCwgZTUwMDFjMCwgMywgKFJJV1IsIFJJV1IsIFJJ V1IpLCByZF9ybl9ybSksCisgY0NFKHdhYnNkaWZmdywgZTkwMDFjMCwgMywg KFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdhZGRiaHVz bCwgZTIwMDFhMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSks CisgY0NFKHdhZGRiaHVzbSwgZTYwMDFhMCwgMywgKFJJV1IsIFJJV1IsIFJJ V1IpLCByZF9ybl9ybSksCisgY0NFKHdhZGRoYywgZTYwMDE4MCwgMywgKFJJ V1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdhZGR3YywgZWEw MDE4MCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NF KHdhZGRzdWJoeCwgZWEwMDFhMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCBy ZF9ybl9ybSksCisgY0NFKHdhdmc0LCBlNDAwMDAwLCAzLCAoUklXUiwgUklX UiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod2F2ZzRyLCBlNTAwMDAwLCAz LCAoUklXUiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod21hZGRz biwgZWUwMDEwMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSks CisgY0NFKHdtYWRkc3gsIGViMDAxMDAsIDMsIChSSVdSLCBSSVdSLCBSSVdS KSwgcmRfcm5fcm0pLAorIGNDRSh3bWFkZHVuLCBlYzAwMTAwLCAzLCAoUklX UiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod21hZGR1eCwgZTkw MDEwMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NF KHdtZXJnZSwgZTAwMDA4MCwgNCwgKFJJV1IsIFJJV1IsIFJJV1IsIEk3KSwg aXdtbXh0X3dtZXJnZSksCisgY0NFKHdtaWFiYiwgZTAwMDBhMCwgMywgKFJJ V1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdtaWFidCwgZTEw MDBhMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NF KHdtaWF0YiwgZTIwMDBhMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9y bl9ybSksCisgY0NFKHdtaWF0dCwgZTMwMDBhMCwgMywgKFJJV1IsIFJJV1Is IFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdtaWFiYm4sIGU0MDAwYTAsIDMs IChSSVdSLCBSSVdSLCBSSVdSKSwgcmRfcm5fcm0pLAorIGNDRSh3bWlhYnRu LCBlNTAwMGEwLCAzLCAoUklXUiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwK KyBjQ0Uod21pYXRibiwgZTYwMDBhMCwgMywgKFJJV1IsIFJJV1IsIFJJV1Ip LCByZF9ybl9ybSksCisgY0NFKHdtaWF0dG4sIGU3MDAwYTAsIDMsIChSSVdS LCBSSVdSLCBSSVdSKSwgcmRfcm5fcm0pLAorIGNDRSh3bWlhd2JiLCBlODAw MTIwLCAzLCAoUklXUiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uo d21pYXdidCwgZTkwMDEyMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9y bl9ybSksCisgY0NFKHdtaWF3dGIsIGVhMDAxMjAsIDMsIChSSVdSLCBSSVdS LCBSSVdSKSwgcmRfcm5fcm0pLAorIGNDRSh3bWlhd3R0LCBlYjAwMTIwLCAz LCAoUklXUiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod21pYXdi Ym4sIGVjMDAxMjAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwgcmRfcm5fcm0p LAorIGNDRSh3bWlhd2J0biwgZWQwMDEyMCwgMywgKFJJV1IsIFJJV1IsIFJJ V1IpLCByZF9ybl9ybSksCisgY0NFKHdtaWF3dGJuLCBlZTAwMTIwLCAzLCAo UklXUiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod21pYXd0dG4s IGVmMDAxMjAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwgcmRfcm5fcm0pLAor IGNDRSh3bXVsc21yLCBlZjAwMTAwLCAzLCAoUklXUiwgUklXUiwgUklXUiks IHJkX3JuX3JtKSwKKyBjQ0Uod211bHVtciwgZWQwMDEwMCwgMywgKFJJV1Is IFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdtdWx3dW1yLCBlYzAw MGMwLCAzLCAoUklXUiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uo d211bHdzbXIsIGVlMDAwYzAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwgcmRf cm5fcm0pLAorIGNDRSh3bXVsd3VtLCBlZDAwMGMwLCAzLCAoUklXUiwgUklX UiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod211bHdzbSwgZWYwMDBjMCwg MywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdtdWx3 bCwgZWIwMDBjMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSks CisgY0NFKHdxbWlhYmIsIGU4MDAwYTAsIDMsIChSSVdSLCBSSVdSLCBSSVdS KSwgcmRfcm5fcm0pLAorIGNDRSh3cW1pYWJ0LCBlOTAwMGEwLCAzLCAoUklX UiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod3FtaWF0YiwgZWEw MDBhMCwgMywgKFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NF KHdxbWlhdHQsIGViMDAwYTAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwgcmRf cm5fcm0pLAorIGNDRSh3cW1pYWJibiwgZWMwMDBhMCwgMywgKFJJV1IsIFJJ V1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdxbWlhYnRuLCBlZDAwMGEw LCAzLCAoUklXUiwgUklXUiwgUklXUiksIHJkX3JuX3JtKSwKKyBjQ0Uod3Ft aWF0Ym4sIGVlMDAwYTAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwgcmRfcm5f cm0pLAorIGNDRSh3cW1pYXR0biwgZWYwMDBhMCwgMywgKFJJV1IsIFJJV1Is IFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdxbXVsbSwgZTEwMDA4MCwgMywg KFJJV1IsIFJJV1IsIFJJV1IpLCByZF9ybl9ybSksCisgY0NFKHdxbXVsbXIs IGUzMDAwODAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwgcmRfcm5fcm0pLAor IGNDRSh3cW11bHdtLCBlYzAwMGUwLCAzLCAoUklXUiwgUklXUiwgUklXUiks IHJkX3JuX3JtKSwKKyBjQ0Uod3FtdWx3bXIsIGVlMDAwZTAsIDMsIChSSVdS LCBSSVdSLCBSSVdSKSwgcmRfcm5fcm0pLAorIGNDRSh3c3ViYWRkaHgsIGVk MDAxYzAsIDMsIChSSVdSLCBSSVdSLCBSSVdSKSwgcmRfcm5fcm0pLAorCisj dW5kZWYgQVJNX1ZBUklBTlQKICNkZWZpbmUgQVJNX1ZBUklBTlQgJmFybV9j ZXh0X21hdmVyaWNrIC8qIENpcnJ1cyBNYXZlcmljayBpbnN0cnVjdGlvbnMu CSovCiAgY0NFKGNmbGRycywJYzEwMDQwMCwgMiwgKFJNRiwgQUREUiksCSAg ICAgIHJkX2NwYWRkciksCiAgY0NFKGNmbGRyZCwJYzUwMDQwMCwgMiwgKFJN RCwgQUREUiksCSAgICAgIHJkX2NwYWRkciksCkBAIC0xMjEyOSw5ICsxMjUw NSwxMSBAQCBtZF9hcHBseV9maXggKGZpeFMgKglmaXhQLAogCiAgICAgY2Fz ZSBCRkRfUkVMT0NfQVJNX0NQX09GRl9JTU06CiAgICAgY2FzZSBCRkRfUkVM T0NfQVJNX1QzMl9DUF9PRkZfSU1NOgotICAgICAgaWYgKHZhbHVlIDwgLTEw MjMgfHwgdmFsdWUgPiAxMDIzIHx8ICh2YWx1ZSAmIDMpKQorICAgICAgaWYg KHZhbHVlIDwgLTEwMjMgfHwgdmFsdWUgPiAxMDIzKSB7CiAJYXNfYmFkX3do ZXJlIChmaXhQLT5meF9maWxlLCBmaXhQLT5meF9saW5lLAogCQkgICAgICBf KCJjby1wcm9jZXNzb3Igb2Zmc2V0IG91dCBvZiByYW5nZSIpKTsKKyAgICAg IH0KKwogICAgIGNwX29mZl9jb21tb246CiAgICAgICBzaWduID0gdmFsdWUg Pj0gMDsKICAgICAgIGlmICh2YWx1ZSA8IDApCkBAIC0xMjE0Myw4ICsxMjUy MSw2IEBAIG1kX2FwcGx5X2ZpeCAoZml4UyAqCWZpeFAsCiAJbmV3dmFsID0g Z2V0X3RodW1iMzJfaW5zbiAoYnVmKTsKICAgICAgIG5ld3ZhbCAmPSAweGZm N2ZmZjAwOwogICAgICAgbmV3dmFsIHw9ICh2YWx1ZSA+PiAyKSB8IChzaWdu ID8gSU5ERVhfVVAgOiAwKTsKLSAgICAgIGlmICh2YWx1ZSA9PSAwKQotCW5l d3ZhbCAmPSB+V1JJVEVfQkFDSzsKICAgICAgIGlmIChmaXhQLT5meF9yX3R5 cGUgPT0gQkZEX1JFTE9DX0FSTV9DUF9PRkZfSU1NCiAJICB8fCBmaXhQLT5m eF9yX3R5cGUgPT0gQkZEX1JFTE9DX0FSTV9DUF9PRkZfSU1NX1MyKQogCW1k X251bWJlcl90b19jaGFycyAoYnVmLCBuZXd2YWwsIElOU05fU0laRSk7CkBA IC0xMjE1Nyw2ICsxMjUzMyw3IEBAIG1kX2FwcGx5X2ZpeCAoZml4UyAqCWZp eFAsCiAgICAgICBpZiAodmFsdWUgPCAtMjU1IHx8IHZhbHVlID4gMjU1KQog CWFzX2JhZF93aGVyZSAoZml4UC0+ZnhfZmlsZSwgZml4UC0+ZnhfbGluZSwK IAkJICAgICAgXygiY28tcHJvY2Vzc29yIG9mZnNldCBvdXQgb2YgcmFuZ2Ui KSk7CisJdmFsdWUgKj0gNDsKICAgICAgIGdvdG8gY3Bfb2ZmX2NvbW1vbjsK IAogICAgIGNhc2UgQkZEX1JFTE9DX0FSTV9USFVNQl9PRkZTRVQ6CkBAIC0x Mjk3MSw2ICsxMzM0OCw4IEBAIG1kX2JlZ2luICh2b2lkKQogICAvKiBSZWNv cmQgdGhlIENQVSB0eXBlIGFzIHdlbGwuICAqLwogICBpZiAoQVJNX0NQVV9I QVNfRkVBVFVSRSAoY3B1X3ZhcmlhbnQsIGFybV9jZXh0X2l3bW14dCkpCiAg ICAgbWFjaCA9IGJmZF9tYWNoX2FybV9pV01NWHQ7CisgIGlmIChBUk1fQ1BV X0hBU19GRUFUVVJFIChjcHVfdmFyaWFudCwgYXJtX2NleHRfaXdtbXh0Mikp CisgICAgbWFjaCA9IGJmZF9tYWNoX2FybV9pV01NWHQyOwogICBlbHNlIGlm IChBUk1fQ1BVX0hBU19GRUFUVVJFIChjcHVfdmFyaWFudCwgYXJtX2NleHRf eHNjYWxlKSkKICAgICBtYWNoID0gYmZkX21hY2hfYXJtX1hTY2FsZTsKICAg ZWxzZSBpZiAoQVJNX0NQVV9IQVNfRkVBVFVSRSAoY3B1X3ZhcmlhbnQsIGFy bV9jZXh0X21hdmVyaWNrKSkKQEAgLTEzMzQ2LDYgKzEzNzI1LDcgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBhcm1fY3B1X29wdGlvbl90YWJsZQogICB7Inhz Y2FsZSIsCQlBUk1fQVJDSF9YU0NBTEUsIEZQVV9BUkNIX1ZGUF9WMiwgTlVM TH0sCiAgIC8qID8/PyBpd21teHQgaXMgbm90IGEgcHJvY2Vzc29yLiAgKi8K ICAgeyJpd21teHQiLAkJQVJNX0FSQ0hfSVdNTVhULCBGUFVfQVJDSF9WRlBf VjIsIE5VTEx9LAorICB7Iml3bW14dDIiLAkJQVJNX0FSQ0hfSVdNTVhUMiwg RlBVX0FSQ0hfVkZQX1YyLCBOVUxMfSwKICAgeyJpODAyMDAiLAkJQVJNX0FS Q0hfWFNDQUxFLCBGUFVfQVJDSF9WRlBfVjIsIE5VTEx9LAogICAvKiBNYXZl cmljayAqLwogICB7ImVwOTMxMiIsCUFSTV9GRUFUVVJFKEFSTV9BRVhUX1Y0 VCwgQVJNX0NFWFRfTUFWRVJJQ0spLCBGUFVfQVJDSF9NQVZFUklDSywgIkFS TTkyMFQifSwKQEAgLTEzMzk1LDYgKzEzNzc1LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBhcm1fYXJjaF9vcHRpb25fdGFibAogICB7ImFybXY3bSIsCQlB Uk1fQVJDSF9WN00sCSBGUFVfQVJDSF9WRlB9LAogICB7InhzY2FsZSIsCQlB Uk1fQVJDSF9YU0NBTEUsIEZQVV9BUkNIX1ZGUH0sCiAgIHsiaXdtbXh0IiwJ CUFSTV9BUkNIX0lXTU1YVCwgRlBVX0FSQ0hfVkZQfSwKKyAgeyJpd21teHQy IiwJCUFSTV9BUkNIX0lXTU1YVDIsIEZQVV9BUkNIX1ZGUH0sCiAgIHtOVUxM LAkJQVJNX0FSQ0hfTk9ORSwJIEFSTV9BUkNIX05PTkV9CiB9OwogCkBAIC0x MzQxMCw2ICsxMzc5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXJtX29w dGlvbl9jcHVfdmFsdWUKICAgeyJtYXZlcmljayIsCQlBUk1fRkVBVFVSRSAo MCwgQVJNX0NFWFRfTUFWRVJJQ0spfSwKICAgeyJ4c2NhbGUiLAkJQVJNX0ZF QVRVUkUgKDAsIEFSTV9DRVhUX1hTQ0FMRSl9LAogICB7Iml3bW14dCIsCQlB Uk1fRkVBVFVSRSAoMCwgQVJNX0NFWFRfSVdNTVhUKX0sCisgIHsiaXdtbXh0 MiIsCQlBUk1fRkVBVFVSRSAoMCwgQVJNX0NFWFRfSVdNTVhUIHwgQVJNX0NF WFRfSVdNTVhUMil9LAogICB7TlVMTCwJCUFSTV9BUkNIX05PTkV9CiB9Owog CmRpZmYgLU51cnAgYmludXRpbHMtMi4xNi45Mi5vbGQvaW5jbHVkZS9vcGNv ZGUvYXJtLmggYmludXRpbHMtMi4xNi45Mi9pbmNsdWRlL29wY29kZS9hcm0u aAotLS0gYmludXRpbHMtMi4xNi45Mi5vbGQvaW5jbHVkZS9vcGNvZGUvYXJt LmgJMjAwNi0wOS0xOSAxMzo1Mjo0OC4wMDAwMDAwMDAgKzA4MDAKKysrIGJp bnV0aWxzLTIuMTYuOTIvaW5jbHVkZS9vcGNvZGUvYXJtLmgJMjAwNi0wOS0x OSAxMzo1MzowOS4wMDAwMDAwMDAgKzA4MDAKQEAgLTQ5LDYgKzQ5LDcgQEAK ICNkZWZpbmUgQVJNX0NFWFRfWFNDQUxFICAgMHgwMDAwMDAwMQkvKiBBbGxv dyBNSUEgZXRjLiAgICAgICAgICAqLwogI2RlZmluZSBBUk1fQ0VYVF9NQVZF UklDSyAweDAwMDAwMDAyCS8qIFVzZSBDaXJydXMvRFNQIGNvcHJvY2Vzc29y LiAgKi8KICNkZWZpbmUgQVJNX0NFWFRfSVdNTVhUICAgMHgwMDAwMDAwNCAg ICAvKiBJbnRlbCBXaXJlbGVzcyBNTVggdGVjaG5vbG9neSBjb3Byb2Nlc3Nv ci4gICAqLworI2RlZmluZSBBUk1fQ0VYVF9JV01NWFQyIDB4MDAwMDAwMDgJ LyogSW50ZWwgV2lyZWxlc3MgTU1YMiB0ZWNobm9sb2d5IGNvcHJvY2Vzc29y LiAgKi8KIAogI2RlZmluZSBGUFVfRU5ESUFOX1BVUkUJIDB4ODAwMDAwMDAJ LyogUHVyZS1lbmRpYW4gZG91Ymxlcy4JICAgICAgKi8KICNkZWZpbmUgRlBV X0VORElBTl9CSUcJIDAJCS8qIERvdWJsZSB3b3Jkcy1iaWctZW5kaWFuLiAg ICovCkBAIC0xMDEsNiArMTAyLDggQEAKICNkZWZpbmUgQVJNX0FSQ0hfWFND QUxFCUFSTV9GRUFUVVJFIChBUk1fQUVYVF9WNVRFLCBBUk1fQ0VYVF9YU0NB TEUpCiAjZGVmaW5lIEFSTV9BUkNIX0lXTU1YVAlcCiAgQVJNX0ZFQVRVUkUg KEFSTV9BRVhUX1Y1VEUsIEFSTV9DRVhUX1hTQ0FMRSB8IEFSTV9DRVhUX0lX TU1YVCkKKyNkZWZpbmUgQVJNX0FSQ0hfSVdNTVhUMglcCisgQVJNX0ZFQVRV UkUgKEFSTV9BRVhUX1Y1VEUsIEFSTV9DRVhUX1hTQ0FMRSB8IEFSTV9DRVhU X0lXTU1YVCB8IEFSTV9DRVhUX0lXTU1YVDIpCiAKICNkZWZpbmUgRlBVX1ZG UF9WMXhECShGUFVfVkZQX0VYVF9WMXhEIHwgRlBVX0VORElBTl9QVVJFKQog I2RlZmluZSBGUFVfVkZQX1YxCShGUFVfVkZQX1YxeEQgfCBGUFVfVkZQX0VY VF9WMSkKZGlmZiAtTnVycCBiaW51dGlscy0yLjE2LjkyLm9sZC9vcGNvZGVz L2FybS1kaXMuYyBiaW51dGlscy0yLjE2LjkyL29wY29kZXMvYXJtLWRpcy5j Ci0tLSBiaW51dGlscy0yLjE2LjkyLm9sZC9vcGNvZGVzL2FybS1kaXMuYwky MDA2LTA5LTE5IDEzOjUyOjQ4LjAwMDAwMDAwMCArMDgwMAorKysgYmludXRp bHMtMi4xNi45Mi9vcGNvZGVzL2FybS1kaXMuYwkyMDA2LTA5LTE5IDE5OjA5 OjM3LjAwMDAwMDAwMCArMDgwMApAQCAtMTA1LDYgKzEwNSw4NSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IG9wY29kZTMyIGNvcHJvY2Vzc29yCiAgICAgCiAg IC8qIEludGVsIFdpcmVsZXNzIE1NWCB0ZWNobm9sb2d5IGluc3RydWN0aW9u cy4gICovCiAjZGVmaW5lIEZJUlNUX0lXTU1YVF9JTlNOIDB4MGUxMzAxMzAK KyNpZiAxCisjZGVmaW5lIElXTU1YVF9JTlNOX0NPVU5UIDczCisgIHtBUk1f Q0VYVF9JV01NWFQsIDB4MGUxMzAxMzAsIDB4MGYzZjBmZmYsICJ0YW5kYyUy Mi0yM3clY1x0JTEyLTE1ciJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBl NDAwMDEwLCAweDBmZjAwZjNmLCAidGJjc3QlNi03dyVjXHQlMTYtMTlnLCAl MTItMTVyIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUxMzAxNzAsIDB4 MGYzZjBmZjgsICJ0ZXh0cmMlMjItMjN3JWNcdCUxMi0xNXIsICMlMC0yZCJ9 LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMTAwMDcwLCAweDBmMzAwZmYw LCAidGV4dHJtJTM/c3UlMjItMjN3JWNcdCUxMi0xNXIsICUxNi0xOWcsICMl MC0yZCJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlNjAwMDEwLCAweDBm ZjAwZjM4LCAidGluc3IlNi03dyVjXHQlMTYtMTlnLCAlMTItMTVyLCAjJTAt MmQifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTAwMDExMCwgMHgwZmYw MGZmZiwgInRtY3IlY1x0JTE2LTE5RywgJTEyLTE1ciJ9LAorICB7QVJNX0NF WFRfWFNDQUxFLCAweDBjNDAwMDAwLCAweDBmZjAwZmYwLCAidG1jcnIlY1x0 JTAtM2csICUxMi0xNXIsICUxNi0xOXIifSwKKyAge0FSTV9DRVhUX1hTQ0FM RSwgMHgwZTJjMDAxMCwgMHgwZmZjMGUxMCwgInRtaWElMTc/dGIlMTY/dGIl Y1x0JTUtOGcsICUwLTNyLCAlMTItMTVyIn0sCisgIHtBUk1fQ0VYVF9YU0NB TEUsIDB4MGUyMDAwMTAsIDB4MGZmZjBlMTAsICJ0bWlhJWNcdCU1LThnLCAl MC0zciwgJTEyLTE1ciJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMjgw MDEwLCAweDBmZmYwZTEwLCAidG1pYXBoJWNcdCU1LThnLCAlMC0zciwgJTEy LTE1ciJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMTAwMDMwLCAweDBm MzAwZmZmLCAidG1vdm1zayUyMi0yM3clY1x0JTEyLTE1ciwgJTE2LTE5ZyJ9 LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMTAwMTEwLCAweDBmZjAwZmYw LCAidG1yYyVjXHQlMTItMTVyLCAlMTYtMTlHIn0sCisgIHtBUk1fQ0VYVF9Y U0NBTEUsIDB4MGM1MDAwMDAsIDB4MGZmMDBmZjAsICJ0bXJyYyVjXHQlMTIt MTVyLCAlMTYtMTlyLCAlMC0zZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAw eDBlMTMwMTUwLCAweDBmM2YwZmZmLCAidG9yYyUyMi0yM3clY1x0JTEyLTE1 ciJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMTMwMTkwLCAweDBmM2Yw ZmZmLCAidG9ydnNjJTIyLTIzdyVjXHQlMTItMTVyIn0sCisgIHtBUk1fQ0VY VF9YU0NBTEUsIDB4MGUyMDAxYzAsIDB4MGYzMDBmZmYsICJ3YWJzJTIyLTIz dyVjXHQlMTItMTVnLCAlMTYtMTlnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUs IDB4MGUwMDAxYzAsIDB4MGYzMDBmZmYsICJ3YWNjJTIyLTIzdyVjXHQlMTIt MTVnLCAlMTYtMTlnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUwMDAx ODAsIDB4MGYwMDBmZjAsICJ3YWRkJTIwLTIzdyVjXHQlMTItMTVnLCAlMTYt MTlnLCAlMC0zZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMjAwMWEw LCAweDBmMzAwZmYwLCAid2FkZGJodXMlMjI/bWwlY1x0JTEyLTE1ZywgJTE2 LTE5ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZWEwMDFh MCwgMHgwZmYwMGZmMCwgIndhZGRzdWJoeCVjXHQlMTItMTVnLCAlMTYtMTln LCAlMC0zZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMDAwMDIwLCAw eDBmODAwZmYwLCAid2FsaWduaSVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0z ZywgIyUyMC0yMmQifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTgwMDAy MCwgMHgwZmMwMGZmMCwgIndhbGlnbnIlMjAtMjFkJWNcdCUxMi0xNWcsICUx Ni0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUyMDAw MDAsIDB4MGZlMDBmZjAsICJ3YW5kJTIwJ24lY1x0JTEyLTE1ZywgJTE2LTE5 ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTgwMDAwMCwg MHgwZmEwMGZmMCwgIndhdmcyJTIyP2hiJTIwJ3IlY1x0JTEyLTE1ZywgJTE2 LTE5ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTQwMDAw MCwgMHgwZmUwMGZmMCwgIndhdmc0JTIwJ3IlY1x0JTEyLTE1ZywgJTE2LTE5 ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTAwMDA2MCwg MHgwZjMwMGZmMCwgIndjbXBlcSUyMi0yM3clY1x0JTEyLTE1ZywgJTE2LTE5 ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTEwMDA2MCwg MHgwZjEwMGZmMCwgIndjbXBndCUyMT9zdSUyMi0yM3clY1x0JTEyLTE1Zywg JTE2LTE5ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHhmYzUw MDEwMCwgMHhmZTUwMGYwMCwgIndsZHJkXHQlMTItMTVnLCAlciJ9LAorICB7 QVJNX0NFWFRfWFNDQUxFLCAweGZjMTAwMTAwLCAweGZlNTAwZjAwLCAid2xk cndcdCUxMi0xNUcsICVBIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGMx MDAwMDAsIDB4MGUxMDBlMDAsICJ3bGRyJUwlY1x0JTEyLTE1ZywgJWwifSwK KyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTQwMDEwMCwgMHgwZmMwMGZmMCwg IndtYWMlMjE/c3UlMjAneiVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9 LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlODAwMTAwLCAweDBmYzAwZmYw LCAid21hZGQlMjE/c3UlMjAneCVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0z ZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlYzAwMTAwLCAweDBmZDAw ZmYwLCAid21hZGQlMjE/c3VuJWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNn In0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUwMDAxNjAsIDB4MGYxMDBm ZjAsICJ3bWF4JTIxP3N1JTIyLTIzdyVjXHQlMTItMTVnLCAlMTYtMTlnLCAl MC0zZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMDAwMDgwLCAweDBm MTAwZmUwLCAid21lcmdlJWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNnLCAj JTIxLTIzZCJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMDAwMGEwLCAw eDBmODAwZmYwLCAid21pYSUyMT90YiUyMD90YiUyMiduJWNcdCUxMi0xNWcs ICUxNi0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGU4 MDAxMjAsIDB4MGY4MDBmZjAsICJ3bWlhdyUyMT90YiUyMD90YiUyMiduJWNc dCUxMi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VYVF9YU0NB TEUsIDB4MGUxMDAxNjAsIDB4MGYxMDBmZjAsICJ3bWluJTIxP3N1JTIyLTIz dyVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9LAorICB7QVJNX0NFWFRf WFNDQUxFLCAweDBlMDAwMTAwLCAweDBmYzAwZmYwLCAid211bCUyMT9zdSUy MD9tbCVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9LAorICB7QVJNX0NF WFRfWFNDQUxFLCAweDBlZDAwMTAwLCAweDBmZDAwZmYwLCAid211bCUyMT9z dW1yJWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VY VF9YU0NBTEUsIDB4MGVlMDAwYzAsIDB4MGZlMDBmZjAsICJ3bXVsd3NtJTIw YHIlY1x0JTEyLTE1ZywgJTE2LTE5ZywgJTAtM2cifSwKKyAge0FSTV9DRVhU X1hTQ0FMRSwgMHgwZWMwMDBjMCwgMHgwZmUwMGZmMCwgIndtdWx3dW0lMjBg ciVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9LAorICB7QVJNX0NFWFRf WFNDQUxFLCAweDBlYjAwMGMwLCAweDBmZjAwZmYwLCAid211bHdsJWNcdCUx Mi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUs IDB4MGU4MDAwYTAsIDB4MGY4MDBmZjAsICJ3cW1pYSUyMT90YiUyMD90YiUy MiduJWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VY VF9YU0NBTEUsIDB4MGUxMDAwODAsIDB4MGZkMDBmZjAsICJ3cW11bG0lMjEn ciVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9LAorICB7QVJNX0NFWFRf WFNDQUxFLCAweDBlYzAwMGUwLCAweDBmZDAwZmYwLCAid3FtdWx3bSUyMSdy JWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VYVF9Y U0NBTEUsIDB4MGUwMDAwMDAsIDB4MGZmMDBmZjAsICJ3b3IlY1x0JTEyLTE1 ZywgJTE2LTE5ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgw ZTAwMDA4MCwgMHgwZjAwMGZmMCwgIndwYWNrJTIwLTIzdyVjXHQlMTItMTVn LCAlMTYtMTlnLCAlMC0zZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweGZl MzAwMDQwLCAweGZmMzAwZWYwLCAid3JvciUyMi0yM3dcdCUxMi0xNWcsICUx Ni0xOWcsICMlaSJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMzAwMDQw LCAweDBmMzAwZmYwLCAid3JvciUyMi0yM3clY1x0JTEyLTE1ZywgJTE2LTE5 ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTMwMDE0MCwg MHgwZjMwMGZmMCwgIndyb3IlMjItMjN3ZyVjXHQlMTItMTVnLCAlMTYtMTln LCAlMC0zRyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMDAwMTIwLCAw eDBmYTAwZmYwLCAid3NhZCUyMj9oYiUyMCd6JWNcdCUxMi0xNWcsICUxNi0x OWcsICUwLTNnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUwMDAxZTAs IDB4MGYwMDBmZjAsICJ3c2h1ZmglY1x0JTEyLTE1ZywgJTE2LTE5ZywgIyVa In0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4ZmUxMDAwNDAsIDB4ZmYzMDBl ZjAsICJ3c2xsJTIyLTIzd1x0JTEyLTE1ZywgJTE2LTE5ZywgIyVpIn0sCisg IHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUxMDAwNDAsIDB4MGYzMDBmZjAsICJ3 c2xsJTIyLTIzdyU4J2clY1x0JTEyLTE1ZywgJTE2LTE5ZywgJTAtM2cifSwK KyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTEwMDE0OCwgMHgwZjMwMGZmYywg IndzbGwlMjItMjN3JTgnZyVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zRyJ9 LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweGZlMDAwMDQwLCAweGZmMzAwZWYw LCAid3NyYSUyMi0yM3dcdCUxMi0xNWcsICUxNi0xOWcsICMlaSJ9LAorICB7 QVJNX0NFWFRfWFNDQUxFLCAweDBlMDAwMDQwLCAweDBmMzAwZmYwLCAid3Ny YSUyMi0yM3clOCdnJWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCisg IHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUwMDAxNDgsIDB4MGYzMDBmZmMsICJ3 c3JhJTIyLTIzdyU4J2clY1x0JTEyLTE1ZywgJTE2LTE5ZywgJTAtM0cifSwK KyAge0FSTV9DRVhUX1hTQ0FMRSwgMHhmZTIwMDA0MCwgMHhmZjMwMGVmMCwg IndzcmwlMjItMjN3XHQlMTItMTVnLCAlMTYtMTlnLCAjJWkifSwKKyAge0FS TV9DRVhUX1hTQ0FMRSwgMHgwZTIwMDA0MCwgMHgwZjMwMGZmMCwgIndzcmwl MjItMjN3JTgnZyVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9LAorICB7 QVJNX0NFWFRfWFNDQUxFLCAweDBlMjAwMTQ4LCAweDBmMzAwZmZjLCAid3Ny bCUyMi0yM3clOCdnJWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNHIn0sCisg IHtBUk1fQ0VYVF9YU0NBTEUsIDB4ZmM0MDAxMDAsIDB4ZmU1MDBmMDAsICJ3 c3RyZFx0JTEyLTE1ZywgJXIifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHhm YzAwMDEwMCwgMHhmZTUwMGYwMCwgIndzdHJ3XHQlMTItMTVHLCAlQSJ9LAor ICB7QVJNX0NFWFRfWFNDQUxFLCAweDBjMDAwMDAwLCAweDBlMTAwZTAwLCAi d3N0ciVMJWNcdCUxMi0xNWcsICVsIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUs IDB4MGUwMDAxYTAsIDB4MGYwMDBmZjAsICJ3c3ViJTIwLTIzdyVjXHQlMTIt MTVnLCAlMTYtMTlnLCAlMC0zZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAw eDBlZDAwMWMwLCAweDBmZjAwZmYwLCAid3N1YmFkZGh4JWNcdCUxMi0xNWcs ICUxNi0xOWcsICUwLTNnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUx MDAxYzAsIDB4MGYzMDBmZjAsICJ3YWJzZGlmZiUyMi0yM3clY1x0JTEyLTE1 ZywgJTE2LTE5ZywgJTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgw ZTAwMDBjMCwgMHgwZmQwMGZmZiwgInd1bnBja2VoJTIxP3N1YiVjXHQlMTIt MTVnLCAlMTYtMTlnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGU0MDAw YzAsIDB4MGZkMDBmZmYsICJ3dW5wY2tlaCUyMT9zdWglY1x0JTEyLTE1Zywg JTE2LTE5ZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlODAwMGMwLCAw eDBmZDAwZmZmLCAid3VucGNrZWglMjE/c3V3JWNcdCUxMi0xNWcsICUxNi0x OWcifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTAwMDBlMCwgMHgwZjEw MGZmZiwgInd1bnBja2VsJTIxP3N1JTIyLTIzdyVjXHQlMTItMTVnLCAlMTYt MTlnIn0sCisgIHtBUk1fQ0VYVF9YU0NBTEUsIDB4MGUxMDAwYzAsIDB4MGYz MDBmZjAsICJ3dW5wY2tpaCUyMi0yM3clY1x0JTEyLTE1ZywgJTE2LTE5Zywg JTAtM2cifSwKKyAge0FSTV9DRVhUX1hTQ0FMRSwgMHgwZTEwMDBlMCwgMHgw ZjMwMGZmMCwgInd1bnBja2lsJTIyLTIzdyVjXHQlMTItMTVnLCAlMTYtMTln LCAlMC0zZyJ9LAorICB7QVJNX0NFWFRfWFNDQUxFLCAweDBlMTAwMDAwLCAw eDBmZjAwZmYwLCAid3hvciVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9 LAorI2VuZGlmCisjaWYgMAogI2RlZmluZSBJV01NWFRfSU5TTl9DT1VOVCA0 NwogICB7QVJNX0NFWFRfSVdNTVhULCAweDBlMTMwMTMwLCAweDBmM2YwZmZm LCAidGFuZGMlMjItMjN3JWNcdCUxMi0xNXIifSwKICAge0FSTV9DRVhUX1hT Q0FMRSwgMHgwZTQwMDAxMCwgMHgwZmYwMGYzZiwgInRiY3N0JTYtN3clY1x0 JTE2LTE5ZywgJTEyLTE1ciJ9LApAQCAtMTU1LDYgKzIzNCw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgb3Bjb2RlMzIgY29wcm9jZXNzb3IKICAge0FSTV9D RVhUX1hTQ0FMRSwgMHgwZTEwMDBjMCwgMHgwZjMwMGZmMCwgInd1bnBja2lo JTIyLTIzdyVjXHQlMTItMTVnLCAlMTYtMTlnLCAlMC0zZyJ9LAogICB7QVJN X0NFWFRfWFNDQUxFLCAweDBlMTAwMGUwLCAweDBmMzAwZmYwLCAid3VucGNr aWwlMjItMjN3JWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCiAgIHtB Uk1fQ0VYVF9YU0NBTEUsIDB4MGUxMDAwMDAsIDB4MGZmMDBmZjAsICJ3eG9y JWNcdCUxMi0xNWcsICUxNi0xOWcsICUwLTNnIn0sCisjZW5kaWYKIAogICAv KiBGbG9hdGluZyBwb2ludCBjb3Byb2Nlc3NvciAoRlBBKSBpbnN0cnVjdGlv bnMgKi8KICAge0ZQVV9GUEFfRVhUX1YxLCAweDBlMDAwMTAwLCAweDBmZjA4 ZjEwLCAiYWRmJWMlUCVSXHQlMTItMTRmLCAlMTYtMThmLCAlMC0zZiJ9LApA QCAtMTA5OSwxMCArMTE3OSwxMCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29u c3QgaXdtbXh0X3d3bmFtZXNbCiB7ImIiLCAiaCIsICJ3IiwgImQifTsKIAog c3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IGl3bW14dF93d3NzbmFtZXNbXSA9 Ci17ImIiLCAiYnVzIiwgImIiLCAiYnNzIiwKLSAiaCIsICJodXMiLCAiaCIs ICJoc3MiLAotICJ3IiwgInd1cyIsICJ3IiwgIndzcyIsCi0gImQiLCAiZHVz IiwgImQiLCAiZHNzIgoreyJiIiwgImJ1cyIsICJiYyIsICJic3MiLAorICJo IiwgImh1cyIsICJoYyIsICJoc3MiLAorICJ3IiwgInd1cyIsICJ3YyIsICJ3 c3MiLAorICJkIiwgImR1cyIsICJkYyIsICJkc3MiCiB9OwogCiBzdGF0aWMg Y29uc3QgY2hhciAqY29uc3QgaXdtbXh0X3JlZ25hbWVzW10gPQpAQCAtMTE5 OCw3ICsxMjc4LDggQEAgcHJpbnRfaW5zbl9jb3Byb2Nlc3NvciAoc3RydWN0 IGRpc2Fzc2VtYgogICAgIHsKICAgICAgIGlmIChpbnNuLT52YWx1ZSA9PSBG SVJTVF9JV01NWFRfSU5TTgogCSAgJiYgaW5mby0+bWFjaCAhPSBiZmRfbWFj aF9hcm1fWFNjYWxlCi0JICAmJiBpbmZvLT5tYWNoICE9IGJmZF9tYWNoX2Fy bV9pV01NWHQpCisJICAmJiBpbmZvLT5tYWNoICE9IGJmZF9tYWNoX2FybV9p V01NWHQKKwkgICYmIGluZm8tPm1hY2ggIT0gYmZkX21hY2hfYXJtX2lXTU1Y dDIpCiAJaW5zbiA9IGluc24gKyBJV01NWFRfSU5TTl9DT1VOVDsKIAogICAg ICAgbWFzayA9IGluc24tPm1hc2s7CkBAIC0xMjcwLDYgKzEzNTEsNTMgQEAg cHJpbnRfaW5zbl9jb3Byb2Nlc3NvciAoc3RydWN0IGRpc2Fzc2VtYgogCQkJ ICAgIGFybV9jb25kaXRpb25hbCBbKGdpdmVuID4+IDI4KSAmIDB4Zl0pOwog CQkgICAgICBicmVhazsKIAorCQkgICAgY2FzZSAncic6CisJCSAgICAgIHsK KwkJCWludCBpbW00ID0gKGdpdmVuID4+IDQpICYgMHhmOworCQkJaW50IHB1 d19iaXRzID0gKChnaXZlbiA+PiAyMikgJiA2KSB8ICgoZ2l2ZW4gPj4gMjEp ICYgMSk7CisJCQlpbnQgdWJpdCA9IChnaXZlbiA+PiAyMykgJiAxOworCQkJ Y29uc3QgY2hhciAqcm0gPSBhcm1fcmVnbmFtZXMgW2dpdmVuICYgMHhmXTsK KwkJCWNvbnN0IGNoYXIgKnJuID0gYXJtX3JlZ25hbWVzIFsoZ2l2ZW4gPj4g MTYpICYgMHhmXTsKKworCQkJc3dpdGNoIChwdXdfYml0cykKKwkJCSAgewor CQkJICBjYXNlIDE6CisJCQkgICAgLyogZmFsbCB0aHJvdWdoICovCisJCQkg IGNhc2UgMzoKKwkJCSAgICBmdW5jIChzdHJlYW0sICJbJXNdLCAlYyVzIiwg cm4sIHViaXQgPyAnKycgOiAnLScsIHJtKTsKKwkJCSAgICBpZiAoaW1tNCkK KwkJCSAgICAgIGZ1bmMgKHN0cmVhbSwgIiwgbHNsICMlZCIsIGltbTQpOwor CQkJICAgIGJyZWFrOworCisJCQkgIGNhc2UgNDoKKwkJCSAgICAvKiBmYWxs IHRocm91Z2ggKi8KKwkJCSAgY2FzZSA1OgorCQkJICAgIC8qIGZhbGwgdGhy b3VnaCAqLworCQkJICBjYXNlIDY6CisJCQkgICAgLyogZmFsbCB0aHJvdWdo ICovCisJCQkgIGNhc2UgNzoKKwkJCSAgICBmdW5jIChzdHJlYW0sICJbJXMs ICVjJXMiLCBybiwgdWJpdCA/ICcrJyA6ICctJywgcm0pOworCQkJICAgIGlm IChpbW00ID4gMCkKKwkJCSAgICAgIGZ1bmMgKHN0cmVhbSwgIiwgbHNsICMl ZCIsIGltbTQpOworCQkJICAgIGZ1bmMgKHN0cmVhbSwgIl0iKTsKKwkJCSAg ICBpZiAocHV3X2JpdHMgPT0gNSB8fCBwdXdfYml0cyA9PSA3KQorCQkJICAg ICAgZnVuYyAoc3RyZWFtLCAiISIpOworCQkJICAgIGJyZWFrOworCisJCQkg IGRlZmF1bHQ6CisJCQkgICAgZnVuYyAoc3RyZWFtLCAiSU5WQUxJRCIpOwor CQkJICB9CisJCSAgICAgIH0KKwkJICAgICAgYnJlYWs7CisKKwkJICAgIGNh c2UgJ2knOgorCQkgICAgICB7CisJCQlpbnQgaW1tNTsKKwkJCWltbTUgPSAo KGdpdmVuICYgMHgxMDApID4+IDQpIHwgKGdpdmVuICYgMHhmKTsKKwkJCWZ1 bmMgKHN0cmVhbSwgIiVkIiwgKGltbTUgPT0gMCkgPyAzMiA6IGltbTUpOwor CQkgICAgICB9CisJCSAgICAgIGJyZWFrOworCiAJCSAgICBjYXNlICdJJzoK IAkJICAgICAgLyogUHJpbnQgYSBDaXJydXMvRFNQIHNoaWZ0IGltbWVkaWF0 ZS4gICovCiAJCSAgICAgIC8qIEltbWVkaWF0ZXMgYXJlIDdiaXQgc2lnbmVk IGludHMgd2l0aCBiaXRzIDAuLjMgaW4KQEAgLTE3MjgsNyArMTg1Niw4IEBA IHByaW50X2luc25fYXJtIChiZmRfdm1hIHBjLCBzdHJ1Y3QgZGlzYXMKICAg ICB7CiAgICAgICBpZiAoaW5zbi0+dmFsdWUgPT0gRklSU1RfSVdNTVhUX0lO U04KIAkgICYmIGluZm8tPm1hY2ggIT0gYmZkX21hY2hfYXJtX1hTY2FsZQot CSAgJiYgaW5mby0+bWFjaCAhPSBiZmRfbWFjaF9hcm1faVdNTVh0KQorCSAg JiYgaW5mby0+bWFjaCAhPSBiZmRfbWFjaF9hcm1faVdNTVh0CisJICAmJiBp bmZvLT5tYWNoICE9IGJmZF9tYWNoX2FybV9pV01NWHQyKQogCWluc24gPSBp bnNuICsgSVdNTVhUX0lOU05fQ09VTlQ7CiAKICAgICAgIGlmICgoZ2l2ZW4g JiBpbnNuLT5tYXNrKSA9PSBpbnNuLT52YWx1ZQo= ------=_Part_164073_4628163.1158665934821--