From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22003 invoked by alias); 19 May 2010 07:19:36 -0000 Received: (qmail 21947 invoked by uid 22791); 19 May 2010 07:19:20 -0000 X-SWARE-Spam-Status: No, hits=-0.7 required=5.0 tests=AWL,BAYES_20,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,TW_BJ,TW_CP,TW_EG,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-pz0-f184.google.com (HELO mail-pz0-f184.google.com) (209.85.222.184) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 19 May 2010 07:19:12 +0000 Received: by pzk14 with SMTP id 14so3630902pzk.25 for ; Wed, 19 May 2010 00:19:10 -0700 (PDT) Received: by 10.142.1.22 with SMTP id 22mr2380744wfa.345.1274253550418; Wed, 19 May 2010 00:19:10 -0700 (PDT) MIME-Version: 1.0 Received: by 10.143.158.5 with HTTP; Wed, 19 May 2010 00:18:50 -0700 (PDT) In-Reply-To: References: From: Hui Zhu Date: Wed, 19 May 2010 07:19:00 -0000 Message-ID: Subject: Re: [Discussion/Prec] The record speed up plan (Make speed like without prec) To: gdb@sourceware.org Cc: Michael Snyder , paawan oza , Eli Zaretskii Content-Type: multipart/mixed; boundary=00504502b67239fe040486ed46a2 X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-05/txt/msg00055.txt.bz2 --00504502b67239fe040486ed46a2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 2621 Hi, This is a demo. Still not support segment register, system call and some others. Thanks, Hui On Fri, Apr 30, 2010 at 21:23, Hui Zhu wrote: > Hello, > > I think the record speed is the biggest trouble of prec. > After I did a long think and a lot of test around with it. =C2=A0I got a > idea. =C2=A0Actually, I have began the code work. > > I found that the big trouble is prec let the inferior just step. =C2=A0It > make inferior speed very low. =C2=A0Because the setp need a lot of context > works. > So I think let inferior continue can make it speed up. =C2=A0But How to > record the change of each step? > > Some physicists said all the things in the world have execution rules. > =C2=A0So use the current stat of this thing, we will get what will happen > in the future. =C2=A0Looks most of rules are still not found. =C2=A0:) > > But lucky for us that insns exec rules we know. =C2=A0So most of insns > (There a some special, I will talk it later), if we have the a > inferior value(memory and reg), we can get the each value of next > insn. > So if we can record the all the value of a inferior A(or all the value > that will be change, but to get it will need parse the insns that will > be exec, this is not easy.) , we can let the inferior exec without > step. =C2=A0If the user want reverse exec, get the each step value from A. > Then the record speed will very faster than before. > > But this way have a 2 question. > 1. =C2=A0How to record all the status of a inferior=EF=BC=9F For the linu= x, > checkpoint already use fork to record the inferior. =C2=A0So prec will use > it too. > And when we want get the old status of inferior step by step, we can > let the forked process step by step. =C2=A0That will easy by parse the in= sn > and know what will happen. > > 2. =C2=A0How to handle special insns that we will not know what will happ= en > after it exec? > The first type of this insns is system call. =C2=A0Linux have catchpoint > that make inferior stop before and after syscall. =C2=A0Then we can record > the change after the system call. > The other insn is like rdtsc, I don't know howto get the feature value > of this type. =C2=A0My current idea with them is give up all the record > after this insn. > If user need, insert special breakpoint for it. =C2=A0Next time, inferior > will stop on this insn, then prec can record the value after it exec. > > BTW, I call this new function pre_record, I agree with you if you said > this name is ugly. :) > > Please tell me your opinions about my idea. =C2=A0That will help me a lot= . =C2=A0Thanks. > > Thanks, > Hui > --00504502b67239fe040486ed46a2 Content-Type: text/plain; charset=US-ASCII; name="record_disable.txt" Content-Disposition: attachment; filename="record_disable.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9du0wpy0 Content-length: 8325 LS0tCiBpbmZydW4uYyB8ICAgIDIgKy0KIHJlY29yZC5jIHwgICAzOCArKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogcmVjb3JkLmgg fCAgICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyks IDIwIGRlbGV0aW9ucygtKQoKLS0tIGEvaW5mcnVuLmMKKysrIGIvaW5mcnVu LmMKQEAgLTI3MzEsNyArMjczMSw3IEBAIGFkanVzdF9wY19hZnRlcl9icmVh ayAoc3RydWN0IGV4ZWN1dGlvbl8KICAgICAgIHN0cnVjdCBjbGVhbnVwICpv bGRfY2xlYW51cHMgPSBOVUxMOwogCiAgICAgICBpZiAoUkVDT1JEX0lTX1VT RUQpCi0Jb2xkX2NsZWFudXBzID0gcmVjb3JkX2dkYl9vcGVyYXRpb25fZGlz YWJsZV9zZXQgKCk7CisJb2xkX2NsZWFudXBzID0gcmVjb3JkX2Rpc2FibGVf c2V0ICgpOwogCiAgICAgICAvKiBXaGVuIHVzaW5nIGhhcmR3YXJlIHNpbmds ZS1zdGVwLCBhIFNJR1RSQVAgaXMgcmVwb3J0ZWQgZm9yIGJvdGgKIAkgYSBj b21wbGV0ZWQgc2luZ2xlLXN0ZXAgYW5kIGEgc29mdHdhcmUgYnJlYWtwb2lu dC4gIE5lZWQgdG8KLS0tIGEvcmVjb3JkLmMKKysrIGIvcmVjb3JkLmMKQEAg LTY3MSwxNiArNjcxLDE2IEBAIHJlY29yZF9tZXNzYWdlX3dyYXBwZXJfc2Fm ZSAoc3RydWN0IHJlZ2MKIC8qIFNldCB0byAxIGlmIHJlY29yZF9zdG9yZV9y ZWdpc3RlcnMgYW5kIHJlY29yZF94ZmVyX3BhcnRpYWwKICAgIGRvZXNuJ3Qg bmVlZCByZWNvcmQuICAqLwogCi1zdGF0aWMgaW50IHJlY29yZF9nZGJfb3Bl cmF0aW9uX2Rpc2FibGUgPSAwOworc3RhdGljIGludCByZWNvcmRfZGlzYWJs ZSA9IDA7CiAKIHN0cnVjdCBjbGVhbnVwICoKLXJlY29yZF9nZGJfb3BlcmF0 aW9uX2Rpc2FibGVfc2V0ICh2b2lkKQorcmVjb3JkX2Rpc2FibGVfc2V0ICh2 b2lkKQogewogICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NsZWFudXBzID0gTlVM TDsKIAogICBvbGRfY2xlYW51cHMgPQotICAgIG1ha2VfY2xlYW51cF9yZXN0 b3JlX2ludGVnZXIgKCZyZWNvcmRfZ2RiX29wZXJhdGlvbl9kaXNhYmxlKTsK LSAgcmVjb3JkX2dkYl9vcGVyYXRpb25fZGlzYWJsZSA9IDE7CisgICAgbWFr ZV9jbGVhbnVwX3Jlc3RvcmVfaW50ZWdlciAoJnJlY29yZF9kaXNhYmxlKTsK KyAgcmVjb3JkX2Rpc2FibGUgPSAxOwogCiAgIHJldHVybiBvbGRfY2xlYW51 cHM7CiB9CkBAIC0xMDA3LDcgKzEwMDcsOCBAQCByZWNvcmRfcmVzdW1lIChz dHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCBwCiAKICAgaWYgKCFSRUNPUkRfSVNf UkVQTEFZKQogICAgIHsKLSAgICAgIHJlY29yZF9tZXNzYWdlIChnZXRfY3Vy cmVudF9yZWdjYWNoZSAoKSwgc2lnbmFsKTsKKyAgICAgIGlmICghcmVjb3Jk X2Rpc2FibGUpCisgICAgICAgIHJlY29yZF9tZXNzYWdlIChnZXRfY3VycmVu dF9yZWdjYWNoZSAoKSwgc2lnbmFsKTsKICAgICAgIHJlY29yZF9iZW5lYXRo X3RvX3Jlc3VtZSAocmVjb3JkX2JlbmVhdGhfdG9fcmVzdW1lX29wcywgcHRp ZCwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFs KTsKICAgICB9CkBAIC0xMDYxLDggKzEwNjIsNiBAQCByZWNvcmRfd2FpdCAo c3RydWN0IHRhcmdldF9vcHMgKm9wcywKIAkgICAgIHB0aWRfdCBwdGlkLCBz dHJ1Y3QgdGFyZ2V0X3dhaXRzdGF0dXMgKnN0YXR1cywKIAkgICAgIGludCBv cHRpb25zKQogewotICBzdHJ1Y3QgY2xlYW51cCAqc2V0X2NsZWFudXBzID0g cmVjb3JkX2dkYl9vcGVyYXRpb25fZGlzYWJsZV9zZXQgKCk7Ci0KICAgaWYg KHJlY29yZF9kZWJ1ZykKICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9z dGRsb2csCiAJCQkiUHJvY2VzcyByZWNvcmQ6IHJlY29yZF93YWl0ICIKQEAg LTEwNzEsOSArMTA3MCw5IEBAIHJlY29yZF93YWl0IChzdHJ1Y3QgdGFyZ2V0 X29wcyAqb3BzLAogCiAgIGlmICghUkVDT1JEX0lTX1JFUExBWSAmJiBvcHMg IT0gJnJlY29yZF9jb3JlX29wcykKICAgICB7Ci0gICAgICBpZiAocmVjb3Jk X3Jlc3VtZV9zdGVwKQorICAgICAgaWYgKHJlY29yZF9yZXN1bWVfc3RlcCB8 fCByZWNvcmRfZGlzYWJsZSkKIAl7Ci0JICAvKiBUaGlzIGlzIGEgc2luZ2xl IHN0ZXAuICAqLworCSAgLyogVGhpcyBpcyBhIHNpbmdsZSBzdGVwIG9yIHJl Y29yZCBpcyBkaXNhYmxlZC4gICovCiAJICByZXR1cm4gcmVjb3JkX2JlbmVh dGhfdG9fd2FpdCAocmVjb3JkX2JlbmVhdGhfdG9fd2FpdF9vcHMsCiAJCQkJ CSBwdGlkLCBzdGF0dXMsIG9wdGlvbnMpOwogCX0KQEAgLTEwODIsNiArMTA4 MSw3IEBAIHJlY29yZF93YWl0IChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLAog CSAgLyogVGhpcyBpcyBub3QgYSBzaW5nbGUgc3RlcC4gICovCiAJICBwdGlk X3QgcmV0OwogCSAgQ09SRV9BRERSIHRtcF9wYzsKKyAgICAgICAgICBzdHJ1 Y3QgY2xlYW51cCAqc2V0X2NsZWFudXBzID0gcmVjb3JkX2Rpc2FibGVfc2V0 ICgpOwogCiAJICB3aGlsZSAoMSkKIAkgICAgewpAQCAtMTE0NSw2ICsxMTQ1 LDcgQEAgcmVjb3JkX3dhaXQgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCiAJ ICAgICAgYnJlYWs7CiAJICAgIH0KIAorICAgICAgICAgIGRvX2NsZWFudXBz IChzZXRfY2xlYW51cHMpOwogCSAgcmV0dXJuIHJldDsKIAl9CiAgICAgfQpA QCAtMTE1Nyw2ICsxMTU4LDcgQEAgcmVjb3JkX3dhaXQgKHN0cnVjdCB0YXJn ZXRfb3BzICpvcHMsCiAgICAgICBpbnQgZmlyc3RfcmVjb3JkX2VuZCA9IDE7 CiAgICAgICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NsZWFudXBzID0gbWFrZV9j bGVhbnVwIChyZWNvcmRfd2FpdF9jbGVhbnVwcywgMCk7CiAgICAgICBDT1JF X0FERFIgdG1wX3BjOworICAgICAgc3RydWN0IGNsZWFudXAgKnNldF9jbGVh bnVwcyA9IHJlY29yZF9kaXNhYmxlX3NldCAoKTsKIAogICAgICAgcmVjb3Jk X2h3X3dhdGNocG9pbnQgPSAwOwogICAgICAgc3RhdHVzLT5raW5kID0gVEFS R0VUX1dBSVRLSU5EX1NUT1BQRUQ7CkBAIC0xMzA5LDEwICsxMzExLDEwIEBA IHJlcGxheV9vdXQ6CiAgICAgICBlbHNlCiAJc3RhdHVzLT52YWx1ZS5zaWcg PSBUQVJHRVRfU0lHTkFMX1RSQVA7CiAKKyAgICAgIGRvX2NsZWFudXBzIChz ZXRfY2xlYW51cHMpOwogICAgICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2Ns ZWFudXBzKTsKICAgICB9CiAKLSAgZG9fY2xlYW51cHMgKHNldF9jbGVhbnVw cyk7CiAgIHJldHVybiBpbmZlcmlvcl9wdGlkOwogfQogCkBAIC0xNDM2LDcg KzE0MzgsNyBAQCBzdGF0aWMgdm9pZAogcmVjb3JkX3N0b3JlX3JlZ2lzdGVy cyAoc3RydWN0IHRhcmdldF9vcHMgKm9wcywgc3RydWN0IHJlZ2NhY2hlICpy ZWdjYWNoZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdubykK IHsKLSAgaWYgKCFyZWNvcmRfZ2RiX29wZXJhdGlvbl9kaXNhYmxlKQorICBp ZiAoIXJlY29yZF9kaXNhYmxlKQogICAgIHsKICAgICAgIGlmIChSRUNPUkRf SVNfUkVQTEFZKQogCXsKQEAgLTE0OTUsNyArMTQ5Nyw3IEBAIHJlY29yZF94 ZmVyX3BhcnRpYWwgKHN0cnVjdCB0YXJnZXRfb3BzICoKIAkJICAgICBjb25z dCBjaGFyICphbm5leCwgZ2RiX2J5dGUgKnJlYWRidWYsCiAJCSAgICAgY29u c3QgZ2RiX2J5dGUgKndyaXRlYnVmLCBVTE9OR0VTVCBvZmZzZXQsIExPTkdF U1QgbGVuKQogewotICBpZiAoIXJlY29yZF9nZGJfb3BlcmF0aW9uX2Rpc2Fi bGUKKyAgaWYgKCFyZWNvcmRfZGlzYWJsZQogICAgICAgJiYgKG9iamVjdCA9 PSBUQVJHRVRfT0JKRUNUX01FTU9SWQogCSAgfHwgb2JqZWN0ID09IFRBUkdF VF9PQkpFQ1RfUkFXX01FTU9SWSkgJiYgd3JpdGVidWYpCiAgICAgewpAQCAt MTU2MSw3ICsxNTYzLDcgQEAgcmVjb3JkX2luc2VydF9icmVha3BvaW50IChz dHJ1Y3QgZ2RiYXJjaAogewogICBpZiAoIVJFQ09SRF9JU19SRVBMQVkpCiAg ICAgewotICAgICAgc3RydWN0IGNsZWFudXAgKm9sZF9jbGVhbnVwcyA9IHJl Y29yZF9nZGJfb3BlcmF0aW9uX2Rpc2FibGVfc2V0ICgpOworICAgICAgc3Ry dWN0IGNsZWFudXAgKm9sZF9jbGVhbnVwcyA9IHJlY29yZF9kaXNhYmxlX3Nl dCAoKTsKICAgICAgIGludCByZXQgPSByZWNvcmRfYmVuZWF0aF90b19pbnNl cnRfYnJlYWtwb2ludCAoZ2RiYXJjaCwgYnBfdGd0KTsKIAogICAgICAgZG9f Y2xlYW51cHMgKG9sZF9jbGVhbnVwcyk7CkBAIC0xNTgwLDcgKzE1ODIsNyBA QCByZWNvcmRfcmVtb3ZlX2JyZWFrcG9pbnQgKHN0cnVjdCBnZGJhcmNoCiB7 CiAgIGlmICghUkVDT1JEX0lTX1JFUExBWSkKICAgICB7Ci0gICAgICBzdHJ1 Y3QgY2xlYW51cCAqb2xkX2NsZWFudXBzID0gcmVjb3JkX2dkYl9vcGVyYXRp b25fZGlzYWJsZV9zZXQgKCk7CisgICAgICBzdHJ1Y3QgY2xlYW51cCAqb2xk X2NsZWFudXBzID0gcmVjb3JkX2Rpc2FibGVfc2V0ICgpOwogICAgICAgaW50 IHJldCA9IHJlY29yZF9iZW5lYXRoX3RvX3JlbW92ZV9icmVha3BvaW50IChn ZGJhcmNoLCBicF90Z3QpOwogCiAgICAgICBkb19jbGVhbnVwcyAob2xkX2Ns ZWFudXBzKTsKQEAgLTE3MzUsNyArMTczNyw3IEBAIHJlY29yZF9jb3JlX3N0 b3JlX3JlZ2lzdGVycyAoc3RydWN0IHRhcmcKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlZ25vKQogewotICBpZiAo cmVjb3JkX2dkYl9vcGVyYXRpb25fZGlzYWJsZSkKKyAgaWYgKHJlY29yZF9k aXNhYmxlKQogICAgIHJlZ2NhY2hlX3Jhd19jb2xsZWN0IChyZWdjYWNoZSwg cmVnbm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZF9jb3Jl X3JlZ2J1ZiArIE1BWF9SRUdJU1RFUl9TSVpFICogcmVnbm8pOwogICBlbHNl CkBAIC0xNzUyLDcgKzE3NTQsNyBAQCByZWNvcmRfY29yZV94ZmVyX3BhcnRp YWwgKHN0cnVjdCB0YXJnZXRfCiB7CiAgIGlmIChvYmplY3QgPT0gVEFSR0VU X09CSkVDVF9NRU1PUlkpCiAgICAgewotICAgICAgaWYgKHJlY29yZF9nZGJf b3BlcmF0aW9uX2Rpc2FibGUgfHwgIXdyaXRlYnVmKQorICAgICAgaWYgKHJl Y29yZF9kaXNhYmxlIHx8ICF3cml0ZWJ1ZikKIAl7CiAJICBzdHJ1Y3QgdGFy Z2V0X3NlY3Rpb24gKnA7CiAKQEAgLTIzNzUsNyArMjM3Nyw3IEBAIGNtZF9y ZWNvcmRfc2F2ZSAoY2hhciAqYXJncywgaW50IGZyb21fdHQKICAgZ2RiYXJj aCA9IGdldF9yZWdjYWNoZV9hcmNoIChyZWdjYWNoZSk7CiAKICAgLyogRGlz YWJsZSB0aGUgR0RCIG9wZXJhdGlvbiByZWNvcmQuICAqLwotICBzZXRfY2xl YW51cHMgPSByZWNvcmRfZ2RiX29wZXJhdGlvbl9kaXNhYmxlX3NldCAoKTsK KyAgc2V0X2NsZWFudXBzID0gcmVjb3JkX2Rpc2FibGVfc2V0ICgpOwogCiAg IC8qIFJldmVyc2UgZXhlY3V0ZSB0byB0aGUgYmVnaW4gb2YgcmVjb3JkIGxp c3QuICAqLwogICB3aGlsZSAoMSkKQEAgLTI1NDksNyArMjU1MSw3IEBAIHN0 YXRpYyB2b2lkCiByZWNvcmRfZ290b19pbnNuIChzdHJ1Y3QgcmVjb3JkX2Vu dHJ5ICplbnRyeSwKIAkJICBlbnVtIGV4ZWNfZGlyZWN0aW9uX2tpbmQgZGly KQogewotICBzdHJ1Y3QgY2xlYW51cCAqc2V0X2NsZWFudXBzID0gcmVjb3Jk X2dkYl9vcGVyYXRpb25fZGlzYWJsZV9zZXQgKCk7CisgIHN0cnVjdCBjbGVh bnVwICpzZXRfY2xlYW51cHMgPSByZWNvcmRfZGlzYWJsZV9zZXQgKCk7CiAg IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUgPSBnZXRfY3VycmVudF9yZWdj YWNoZSAoKTsKICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVn Y2FjaGVfYXJjaCAocmVnY2FjaGUpOwogCi0tLSBhL3JlY29yZC5oCisrKyBi L3JlY29yZC5oCkBAIC0yNyw2ICsyNyw2IEBAIGV4dGVybiBpbnQgcmVjb3Jk X2RlYnVnOwogZXh0ZXJuIGludCByZWNvcmRfYXJjaF9saXN0X2FkZF9yZWcg KHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCBudW0pOwogZXh0ZXJu IGludCByZWNvcmRfYXJjaF9saXN0X2FkZF9tZW0gKENPUkVfQUREUiBhZGRy LCBpbnQgbGVuKTsKIGV4dGVybiBpbnQgcmVjb3JkX2FyY2hfbGlzdF9hZGRf ZW5kICh2b2lkKTsKLWV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqcmVjb3JkX2dk Yl9vcGVyYXRpb25fZGlzYWJsZV9zZXQgKHZvaWQpOworZXh0ZXJuIHN0cnVj dCBjbGVhbnVwICpyZWNvcmRfZGlzYWJsZV9zZXQgKHZvaWQpOwogCiAjZW5k aWYgLyogX1JFQ09SRF9IXyAqLwo= --00504502b67239fe040486ed46a2 Content-Type: text/plain; charset=US-ASCII; name="pre-prec.txt" Content-Disposition: attachment; filename="pre-prec.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g9du0xna1 Content-length: 29777 LS0tCiBnZGJhcmNoLmMgICAgICAgICB8ICAgMzMgKysrKysrCiBnZGJhcmNo LmggICAgICAgICB8ICAgIDggKwogZ2RiYXJjaC5zaCAgICAgICAgfCAgICAz IAogaTM4Ni1saW51eC10ZGVwLmMgfCAgICAxIAogbGludXgtbmF0LmMgICAg ICAgfCAgIDE3ICsrLQogbGludXgtcmVjb3JkLmMgICAgfCAgIDY4ICsrKysr KysrKysrKysKIGxpbnV4LXJlY29yZC5oICAgIHwgICAgMiAKIHJlY29yZC5j ICAgICAgICAgIHwgIDI2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0KIHJlY29yZC5oICAgICAgICAg IHwgICAgMiAKIDkgZmlsZXMgY2hhbmdlZCwgMzc4IGluc2VydGlvbnMoKyks IDIzIGRlbGV0aW9ucygtKQoKLS0tIGEvZ2RiYXJjaC5jCisrKyBiL2dkYmFy Y2guYwpAQCAtMjUxLDYgKzI1MSw3IEBAIHN0cnVjdCBnZGJhcmNoCiAgIGlu dCBzb2Z1bl9hZGRyZXNzX21heWJlX21pc3Npbmc7CiAgIGdkYmFyY2hfcHJv Y2Vzc19yZWNvcmRfZnR5cGUgKnByb2Nlc3NfcmVjb3JkOwogICBnZGJhcmNo X3Byb2Nlc3NfcmVjb3JkX3NpZ25hbF9mdHlwZSAqcHJvY2Vzc19yZWNvcmRf c2lnbmFsOworICBnZGJhcmNoX3ByZV9wcm9jZXNzX3JlY29yZF9mdHlwZSAq cHJlX3Byb2Nlc3NfcmVjb3JkOwogICBnZGJhcmNoX3RhcmdldF9zaWduYWxf ZnJvbV9ob3N0X2Z0eXBlICp0YXJnZXRfc2lnbmFsX2Zyb21faG9zdDsKICAg Z2RiYXJjaF90YXJnZXRfc2lnbmFsX3RvX2hvc3RfZnR5cGUgKnRhcmdldF9z aWduYWxfdG9faG9zdDsKICAgZ2RiYXJjaF9nZXRfc2lnaW5mb190eXBlX2Z0 eXBlICpnZXRfc2lnaW5mb190eXBlOwpAQCAtMzk4LDYgKzM5OSw3IEBAIHN0 cnVjdCBnZGJhcmNoIHN0YXJ0dXBfZ2RiYXJjaCA9CiAgIDAsICAvKiBzb2Z1 bl9hZGRyZXNzX21heWJlX21pc3NpbmcgKi8KICAgMCwgIC8qIHByb2Nlc3Nf cmVjb3JkICovCiAgIDAsICAvKiBwcm9jZXNzX3JlY29yZF9zaWduYWwgKi8K KyAgMCwgIC8qIHByZV9wcm9jZXNzX3JlY29yZCAqLwogICBkZWZhdWx0X3Rh cmdldF9zaWduYWxfZnJvbV9ob3N0LCAgLyogdGFyZ2V0X3NpZ25hbF9mcm9t X2hvc3QgKi8KICAgZGVmYXVsdF90YXJnZXRfc2lnbmFsX3RvX2hvc3QsICAv KiB0YXJnZXRfc2lnbmFsX3RvX2hvc3QgKi8KICAgMCwgIC8qIGdldF9zaWdp bmZvX3R5cGUgKi8KQEAgLTY3Myw2ICs2NzUsNyBAQCB2ZXJpZnlfZ2RiYXJj aCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCiAgIC8qIFNraXAgdmVyaWZ5 IG9mIHNvZnVuX2FkZHJlc3NfbWF5YmVfbWlzc2luZywgaW52YWxpZF9wID09 IDAgKi8KICAgLyogU2tpcCB2ZXJpZnkgb2YgcHJvY2Vzc19yZWNvcmQsIGhh cyBwcmVkaWNhdGUgKi8KICAgLyogU2tpcCB2ZXJpZnkgb2YgcHJvY2Vzc19y ZWNvcmRfc2lnbmFsLCBoYXMgcHJlZGljYXRlICovCisgIC8qIFNraXAgdmVy aWZ5IG9mIHByZV9wcm9jZXNzX3JlY29yZCwgaGFzIHByZWRpY2F0ZSAqLwog ICAvKiBTa2lwIHZlcmlmeSBvZiB0YXJnZXRfc2lnbmFsX2Zyb21faG9zdCwg aW52YWxpZF9wID09IDAgKi8KICAgLyogU2tpcCB2ZXJpZnkgb2YgdGFyZ2V0 X3NpZ25hbF90b19ob3N0LCBpbnZhbGlkX3AgPT0gMCAqLwogICAvKiBTa2lw IHZlcmlmeSBvZiBnZXRfc2lnaW5mb190eXBlLCBoYXMgcHJlZGljYXRlICov CkBAIC0xMDA5LDYgKzEwMTIsMTIgQEAgZ2RiYXJjaF9kdW1wIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwgcwogICAgICAgICAgICAgICAgICAgICAgICJn ZGJhcmNoX2R1bXA6IHBvaW50ZXJfdG9fYWRkcmVzcyA9IDwlcz5cbiIsCiAg ICAgICAgICAgICAgICAgICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAo Z2RiYXJjaC0+cG9pbnRlcl90b19hZGRyZXNzKSk7CiAgIGZwcmludGZfdW5m aWx0ZXJlZCAoZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAiZ2RiYXJj aF9kdW1wOiBnZGJhcmNoX3ByZV9wcm9jZXNzX3JlY29yZF9wKCkgPSAlZFxu IiwKKyAgICAgICAgICAgICAgICAgICAgICBnZGJhcmNoX3ByZV9wcm9jZXNz X3JlY29yZF9wIChnZGJhcmNoKSk7CisgIGZwcmludGZfdW5maWx0ZXJlZCAo ZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAiZ2RiYXJjaF9kdW1wOiBw cmVfcHJvY2Vzc19yZWNvcmQgPSA8JXM+XG4iLAorICAgICAgICAgICAgICAg ICAgICAgIGhvc3RfYWRkcmVzc190b19zdHJpbmcgKGdkYmFyY2gtPnByZV9w cm9jZXNzX3JlY29yZCkpOworICBmcHJpbnRmX3VuZmlsdGVyZWQgKGZpbGUs CiAgICAgICAgICAgICAgICAgICAgICAgImdkYmFyY2hfZHVtcDogZ2RiYXJj aF9wcmludF9mbG9hdF9pbmZvX3AoKSA9ICVkXG4iLAogICAgICAgICAgICAg ICAgICAgICAgIGdkYmFyY2hfcHJpbnRfZmxvYXRfaW5mb19wIChnZGJhcmNo KSk7CiAgIGZwcmludGZfdW5maWx0ZXJlZCAoZmlsZSwKQEAgLTM0MzksNiAr MzQ0OCwzMCBAQCBzZXRfZ2RiYXJjaF9wcm9jZXNzX3JlY29yZF9zaWduYWwg KHN0cnVjCiAgIGdkYmFyY2gtPnByb2Nlc3NfcmVjb3JkX3NpZ25hbCA9IHBy b2Nlc3NfcmVjb3JkX3NpZ25hbDsKIH0KIAoraW50CitnZGJhcmNoX3ByZV9w cm9jZXNzX3JlY29yZF9wIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKK3sK KyAgZ2RiX2Fzc2VydCAoZ2RiYXJjaCAhPSBOVUxMKTsKKyAgcmV0dXJuIGdk YmFyY2gtPnByZV9wcm9jZXNzX3JlY29yZCAhPSBOVUxMOworfQorCitpbnQK K2dkYmFyY2hfcHJlX3Byb2Nlc3NfcmVjb3JkIChzdHJ1Y3QgZ2RiYXJjaCAq Z2RiYXJjaCkKK3sKKyAgZ2RiX2Fzc2VydCAoZ2RiYXJjaCAhPSBOVUxMKTsK KyAgZ2RiX2Fzc2VydCAoZ2RiYXJjaC0+cHJlX3Byb2Nlc3NfcmVjb3JkICE9 IE5VTEwpOworICBpZiAoZ2RiYXJjaF9kZWJ1ZyA+PSAyKQorICAgIGZwcmlu dGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywgImdkYmFyY2hfcHJlX3Byb2Nl c3NfcmVjb3JkIGNhbGxlZFxuIik7CisgIHJldHVybiBnZGJhcmNoLT5wcmVf cHJvY2Vzc19yZWNvcmQgKGdkYmFyY2gpOworfQorCit2b2lkCitzZXRfZ2Ri YXJjaF9wcmVfcHJvY2Vzc19yZWNvcmQgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGJhcmNo X3ByZV9wcm9jZXNzX3JlY29yZF9mdHlwZSBwcmVfcHJvY2Vzc19yZWNvcmQp Cit7CisgIGdkYmFyY2gtPnByZV9wcm9jZXNzX3JlY29yZCA9IHByZV9wcm9j ZXNzX3JlY29yZDsKK30KKwogZW51bSB0YXJnZXRfc2lnbmFsCiBnZGJhcmNo X3RhcmdldF9zaWduYWxfZnJvbV9ob3N0IChzdHJ1Y3QgZ2RiYXJjaCAqZ2Ri YXJjaCwgaW50IHNpZ25vKQogewotLS0gYS9nZGJhcmNoLmgKKysrIGIvZ2Ri YXJjaC5oCkBAIC04NTMsNiArODUzLDE0IEBAIHR5cGVkZWYgaW50IChnZGJh cmNoX3Byb2Nlc3NfcmVjb3JkX3NpZ24KIGV4dGVybiBpbnQgZ2RiYXJjaF9w cm9jZXNzX3JlY29yZF9zaWduYWwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LCBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBlbnVtIHRhcmdldF9zaWdu YWwgc2lnbmFsKTsKIGV4dGVybiB2b2lkIHNldF9nZGJhcmNoX3Byb2Nlc3Nf cmVjb3JkX3NpZ25hbCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGdkYmFy Y2hfcHJvY2Vzc19yZWNvcmRfc2lnbmFsX2Z0eXBlICpwcm9jZXNzX3JlY29y ZF9zaWduYWwpOwogCisvKiBQcmUgcHJvY2VzcyByZWNvcmQgKi8KKworZXh0 ZXJuIGludCBnZGJhcmNoX3ByZV9wcm9jZXNzX3JlY29yZF9wIChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCk7CisKK3R5cGVkZWYgaW50IChnZGJhcmNoX3By ZV9wcm9jZXNzX3JlY29yZF9mdHlwZSkgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoKTsKK2V4dGVybiBpbnQgZ2RiYXJjaF9wcmVfcHJvY2Vzc19yZWNvcmQg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoKTsKK2V4dGVybiB2b2lkIHNldF9n ZGJhcmNoX3ByZV9wcm9jZXNzX3JlY29yZCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsIGdkYmFyY2hfcHJlX3Byb2Nlc3NfcmVjb3JkX2Z0eXBlICpwcmVf cHJvY2Vzc19yZWNvcmQpOworCiAvKiBTaWduYWwgdHJhbnNsYXRpb246IHRy YW5zbGF0ZSBpbmZlcmlvcidzIHNpZ25hbCAoaG9zdCdzKSBudW1iZXIgaW50 bwogICAgR0RCJ3MgcmVwcmVzZW50YXRpb24uICovCiAKLS0tIGEvZ2RiYXJj aC5zaAorKysgYi9nZGJhcmNoLnNoCkBAIC03MjgsNiArNzI4LDkgQEAgTTpp bnQ6cHJvY2Vzc19yZWNvcmQ6c3RydWN0IHJlZ2NhY2hlICpyZQogIyBSZXR1 cm4gLTEgaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcsIDAgb3RoZXJ3aXNlLgog TTppbnQ6cHJvY2Vzc19yZWNvcmRfc2lnbmFsOnN0cnVjdCByZWdjYWNoZSAq cmVnY2FjaGUsIGVudW0gdGFyZ2V0X3NpZ25hbCBzaWduYWw6cmVnY2FjaGUs IHNpZ25hbAogCisjIFByZSBwcm9jZXNzIHJlY29yZAorTTppbnQ6cHJlX3By b2Nlc3NfcmVjb3JkOnZvaWQ6CisKICMgU2lnbmFsIHRyYW5zbGF0aW9uOiB0 cmFuc2xhdGUgaW5mZXJpb3IncyBzaWduYWwgKGhvc3QncykgbnVtYmVyIGlu dG8KICMgR0RCJ3MgcmVwcmVzZW50YXRpb24uCiBtOmVudW0gdGFyZ2V0X3Np Z25hbDp0YXJnZXRfc2lnbmFsX2Zyb21faG9zdDppbnQgc2lnbm86c2lnbm86 OmRlZmF1bHRfdGFyZ2V0X3NpZ25hbF9mcm9tX2hvc3Q6OjAKLS0tIGEvaTM4 Ni1saW51eC10ZGVwLmMKKysrIGIvaTM4Ni1saW51eC10ZGVwLmMKQEAgLTY5 Myw2ICs2OTMsNyBAQCBpMzg2X2xpbnV4X2luaXRfYWJpIChzdHJ1Y3QgZ2Ri YXJjaF9pbmZvCiAgIHRkZXAtPnhzYXZlX3hjcjBfb2Zmc2V0ID0gSTM4Nl9M SU5VWF9YU0FWRV9YQ1IwX09GRlNFVDsKIAogICBzZXRfZ2RiYXJjaF9wcm9j ZXNzX3JlY29yZCAoZ2RiYXJjaCwgaTM4Nl9wcm9jZXNzX3JlY29yZCk7Cisg IHNldF9nZGJhcmNoX3ByZV9wcm9jZXNzX3JlY29yZCAoZ2RiYXJjaCwgbGlu dXhfcHJlX3JlY29yZCk7CiAgIHNldF9nZGJhcmNoX3Byb2Nlc3NfcmVjb3Jk X3NpZ25hbCAoZ2RiYXJjaCwgaTM4Nl9saW51eF9yZWNvcmRfc2lnbmFsKTsK IAogICAvKiBJbml0aWFsaXplIHRoZSBpMzg2X2xpbnV4X3JlY29yZF90ZGVw LiAgKi8KLS0tIGEvbGludXgtbmF0LmMKKysrIGIvbGludXgtbmF0LmMKQEAg LTIxNDMsNiArMjE0Myw4IEBAIGxpbnV4X2hhbmRsZV9zeXNjYWxsX3RyYXAg KHN0cnVjdCBsd3BfaW4KICAgIGV2ZW50IHNob3VsZCBiZSBpZ25vcmVkIGFu ZCB3ZSBzaG91bGQgd2FpdCBhZ2Fpbi4gIElmIFNUT1BQSU5HIGlzCiAgICB0 cnVlLCB0aGUgbmV3IExXUCByZW1haW5zIHN0b3BwZWQsIG90aGVyd2lzZSBp dCBpcyBjb250aW51ZWQuICAqLwogCitleHRlcm4gaW50IGxpbnV4X3ByZV9y ZWNvcmRpbmc7CisKIHN0YXRpYyBpbnQKIGxpbnV4X2hhbmRsZV9leHRlbmRl ZF93YWl0IChzdHJ1Y3QgbHdwX2luZm8gKmxwLCBpbnQgc3RhdHVzLAogCQkJ ICAgIGludCBzdG9wcGluZykKQEAgLTIxODAsNyArMjE4Miw4IEBAIGxpbnV4 X2hhbmRsZV9leHRlbmRlZF93YWl0IChzdHJ1Y3QgbHdwX2kKICAgICAgIG91 cnN0YXR1cy0+dmFsdWUucmVsYXRlZF9waWQgPSBwdGlkX2J1aWxkIChuZXdf cGlkLCBuZXdfcGlkLCAwKTsKIAogICAgICAgaWYgKGV2ZW50ID09IFBUUkFD RV9FVkVOVF9GT1JLCi0JICAmJiBsaW51eF9mb3JrX2NoZWNrcG9pbnRpbmdf cCAoR0VUX1BJRCAobHAtPnB0aWQpKSkKKwkgICYmIChsaW51eF9mb3JrX2No ZWNrcG9pbnRpbmdfcCAoR0VUX1BJRCAobHAtPnB0aWQpKQorICAgICAgICAg ICAgICB8fCBsaW51eF9wcmVfcmVjb3JkaW5nKSkKIAl7CiAJICBzdHJ1Y3Qg Zm9ya19pbmZvICpmcDsKIApAQCAtMjE5MiwxMCArMjE5NSwxNCBAQCBsaW51 eF9oYW5kbGVfZXh0ZW5kZWRfd2FpdCAoc3RydWN0IGx3cF9pCiAJICAgICBw aHlzaWNhbGx5IHJlbW92ZSB0aGUgYnJlYWtwb2ludHMgZnJvbSB0aGUgY2hp bGQuICAqLwogCSAgZGV0YWNoX2JyZWFrcG9pbnRzIChuZXdfcGlkKTsKIAot CSAgLyogUmV0YWluIGNoaWxkIGZvcmsgaW4gcHRyYWNlIChzdG9wcGVkKSBz dGF0ZS4gICovCi0JICBmcCA9IGZpbmRfZm9ya19waWQgKG5ld19waWQpOwot CSAgaWYgKCFmcCkKLQkgICAgZnAgPSBhZGRfZm9yayAobmV3X3BpZCk7CisJ ICAvKiBSZXRhaW4gY2hpbGQgZm9yayBpbiBwdHJhY2UgKHN0b3BwZWQpIHN0 YXRlIGlmIHRoaXMgaXMKKyAgICAgICAgICAgICBjaGVja3BvaW50LiAgKi8K KyAgICAgICAgICBpZiAoIWxpbnV4X3ByZV9yZWNvcmRpbmcpCisgICAgICAg ICAgICB7CisJICAgICAgZnAgPSBmaW5kX2ZvcmtfcGlkIChuZXdfcGlkKTsK KwkgICAgICBpZiAoIWZwKQorCSAgICAgICAgZnAgPSBhZGRfZm9yayAobmV3 X3BpZCk7CisgICAgICAgICAgICB9CiAKIAkgIC8qIFJlcG9ydCBhcyBzcHVy aW91cywgc28gdGhhdCBpbmZydW4gZG9lc24ndCB3YW50IHRvIGZvbGxvdwog CSAgICAgdGhpcyBmb3JrLiAgV2UncmUgYWN0dWFsbHkgZG9pbmcgYW4gaW5m Y2FsbCBpbgotLS0gYS9saW51eC1yZWNvcmQuYworKysgYi9saW51eC1yZWNv cmQuYwpAQCAtMjEsOSArMjEsMjEgQEAKICNpbmNsdWRlICJ0YXJnZXQuaCIK ICNpbmNsdWRlICJnZGJ0eXBlcy5oIgogI2luY2x1ZGUgInJlZ2NhY2hlLmgi CisjaW5jbHVkZSAiaW5mZXJpb3IuaCIKKyNpbmNsdWRlICJpbmZjYWxsLmgi CisjaW5jbHVkZSAib2JqZmlsZXMuaCIKICNpbmNsdWRlICJyZWNvcmQuaCIK ICNpbmNsdWRlICJsaW51eC1yZWNvcmQuaCIKIAorLy8jaW5jbHVkZSAiYXJj aC11dGlscy5oIgorLy8KKy8vI2luY2x1ZGUgImdkYmNtZC5oIgorLy8KKy8v CisvLyNpbmNsdWRlICJnZGJfYXNzZXJ0LmgiCisvLyNpbmNsdWRlICJnZGJf c3RyaW5nLmgiCisjaW5jbHVkZSAibGludXgtZm9yay5oIgorCiAvKiBUaGVz ZSBtYWNyb3MgYXJlIHRoZSB2YWx1ZXMgb2YgdGhlIGZpcnN0IGFyZ3VtZW50 IG9mIHN5c3RlbSBjYWxsCiAgICAic3lzX3B0cmFjZSIuICBUaGUgdmFsdWVz IG9mIHRoZXNlIG1hY3JvcyB3ZXJlIG9idGFpbmVkIGZyb20gTGludXgKICAg IEtlcm5lbCBzb3VyY2UuICAqLwpAQCAtMjI0MywzICsyMjU1LDU5IEBAIHJl Y29yZF9saW51eF9zeXN0ZW1fY2FsbCAoZW51bSBnZGJfc3lzY2EKIAogICBy ZXR1cm4gMDsKIH0KKworaW50IGxpbnV4X3ByZV9yZWNvcmRpbmcgPSAwOwor CitpbnQKK2xpbnV4X3ByZV9yZWNvcmQgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoKQoreworICBzdHJ1Y3Qgb2JqZmlsZSAqZm9ya19vYmpmOworICBzdHJ1 Y3QgdmFsdWUgKmZvcmtfZm4gPSBOVUxMLCAqcmV0OworICBzdHJ1Y3QgY2xl YW51cCAqb2xkX2NsZWFudXBzOworICBzdHJ1Y3QgY2xlYW51cCAqc2VsZl9j bGVhbnVwczsKKyAgcGlkX3QgcGlkOworICBwdGlkX3QgcHRpZCwgcmVjb3Jk X3B0aWQ7CisgIHN0cnVjdCByZWdjYWNoZSAqcmVjb3JkX3JlZ2NhY2hlOwor ICBleHRlcm4gdm9pZCBsaW51eF9uYXRfc3dpdGNoX2ZvcmsgKHB0aWRfdCBu ZXdfcHRpZCk7CisKKyAgLyogR2V0IHRoZSBmb3JrX2ZuLiAgKi8KKyAgaWYg KGxvb2t1cF9taW5pbWFsX3N5bWJvbCAoImZvcmsiLCBOVUxMLCBOVUxMKSAh PSBOVUxMKQorICAgIGZvcmtfZm4gPSBmaW5kX2Z1bmN0aW9uX2luX2luZmVy aW9yICgiZm9yayIsICZmb3JrX29iamYpOworICBpZiAoIWZvcmtfZm4pCisg ICAgaWYgKGxvb2t1cF9taW5pbWFsX3N5bWJvbCAoIl9mb3JrIiwgTlVMTCwg TlVMTCkgIT0gTlVMTCkKKyAgICAgIGZvcmtfZm4gPSBmaW5kX2Z1bmN0aW9u X2luX2luZmVyaW9yICgiZm9yayIsICZmb3JrX29iamYpOworICBpZiAoIWZv cmtfZm4pCisgICAgcmV0dXJuIC0xOworICByZXQgPSB2YWx1ZV9mcm9tX2xv bmdlc3QgKGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCktPmJ1aWx0aW5faW50LCAw KTsKKworICAvKiBUZWxsIHJlY29yZC5jIHRoYXQgdGhlIGZvbGxvd2luZyBp bmZlcmlvciBjaGFuZ2UgZG9lc24ndCBuZWVkIHJlY29yZC4gKi8KKyAgb2xk X2NsZWFudXBzID0gcmVjb3JkX2Rpc2FibGVfc2V0ICgpOworCisgIC8qIFRl bGwgdGFyZ2V0IHRoYXQgdGhpcyBpcyBsaW51eCBwcmUtcmVjb3JkLiAgKi8K KyAgc2VsZl9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVn ZXIgKCZsaW51eF9wcmVfcmVjb3JkaW5nKTsKKyAgbGludXhfcHJlX3JlY29y ZGluZyA9IDE7CisKKyAgcmV0ID0gY2FsbF9mdW5jdGlvbl9ieV9oYW5kIChm b3JrX2ZuLCAwLCAmcmV0KTsKKworICBkb19jbGVhbnVwcyAoc2VsZl9jbGVh bnVwcyk7CisKKyAgcGlkID0gdmFsdWVfYXNfbG9uZyAocmV0KTsKKyAgaWYg KHBpZCA8IDApCisgICAgcmV0dXJuIC0xOworICBwdGlkID0gcHRpZF9idWls ZCAocGlkLCBwaWQsIDApOworCisgIC8qIFNldCB0aGUgY3VycmVudCByZWdj YWNoZSB0byBwdGlkLiAgKi8KKyAgcmVjb3JkX3B0aWQgPSBpbmZlcmlvcl9w dGlkOworICByZWNvcmRfcmVnY2FjaGUgPSByZWdjYWNoZV9kdXAgKGdldF9j dXJyZW50X3JlZ2NhY2hlICgpKTsKKyAgbGludXhfbmF0X3N3aXRjaF9mb3Jr IChwdGlkKTsKKyAgcmVnY2FjaGVfY3B5IChnZXRfY3VycmVudF9yZWdjYWNo ZSAoKSwgcmVjb3JkX3JlZ2NhY2hlKTsKKyAgbGludXhfbmF0X3N3aXRjaF9m b3JrIChyZWNvcmRfcHRpZCk7CisgIHJlZ2NhY2hlX3hmcmVlIChyZWNvcmRf cmVnY2FjaGUpOworCisgIGRvX2NsZWFudXBzIChvbGRfY2xlYW51cHMpOwor CisgIHJlY29yZF9hcmNoX2xpc3RfYWRkX3B0aWQgKHB0aWQpOworICByZWNv cmRfYXJjaF9saXN0X2FkZF9lbmQgKCk7CisKKyAgcmV0dXJuIDA7Cit9Ci0t LSBhL2xpbnV4LXJlY29yZC5oCisrKyBiL2xpbnV4LXJlY29yZC5oCkBAIC01 MzcsNCArNTM3LDYgQEAgZW51bSBnZGJfc3lzY2FsbCB7CiBleHRlcm4gaW50 IHJlY29yZF9saW51eF9zeXN0ZW1fY2FsbCAoZW51bSBnZGJfc3lzY2FsbCBu dW0sIAogCQkJCSAgICAgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKIAkJ CQkgICAgIHN0cnVjdCBsaW51eF9yZWNvcmRfdGRlcCAqdGRlcCk7CisKK2V4 dGVybiBpbnQgbGludXhfcHJlX3JlY29yZCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gpOwogI2VuZGlmIC8qIF9MSU5VWF9SRUNPUkRfSF8gKi8KLS0tIGEv cmVjb3JkLmMKKysrIGIvcmVjb3JkLmMKQEAgLTEwNiw3ICsxMDYsOCBAQCBl bnVtIHJlY29yZF90eXBlCiB7CiAgIHJlY29yZF9lbmQgPSAwLAogICByZWNv cmRfcmVnLAotICByZWNvcmRfbWVtCisgIHJlY29yZF9tZW0sCisgIHJlY29y ZF9wdGlkLAogfTsKIAogLyogVGhpcyBpcyB0aGUgZGF0YSBzdHJ1Y3R1cmUg dGhhdCBtYWtlcyB1cCB0aGUgZXhlY3V0aW9uIGxvZy4KQEAgLTE0Niw2ICsx NDcsOCBAQCBzdHJ1Y3QgcmVjb3JkX2VudHJ5CiAgICAgc3RydWN0IHJlY29y ZF9tZW1fZW50cnkgbWVtOwogICAgIC8qIGVuZCAqLwogICAgIHN0cnVjdCBy ZWNvcmRfZW5kX2VudHJ5IGVuZDsKKyAgICAvKiBwdGlkICovCisgICAgcHRp ZF90IHB0aWQ7CiAgIH0gdTsKIH07CiAKQEAgLTE1OSw2ICsxNjIsMTQgQEAg c3RydWN0IHJlY29yZF9jb3JlX2J1Zl9lbnRyeQogICBiZmRfYnl0ZSAqYnVm OwogfTsKIAorLyogVGhlIGFyY2ggbGV2ZWwgaW50ZXJmYWNlIGNob2ljZSBp bmZlcmlvciBzdGVwaSBvciBjb250aW51ZS4gICovCisKK2ludCByZWNvcmRf c3RlcDsKKworLyogVGhlIHN0ZXAgb2YgcmVjb3JkX3Jlc3VtZS4gICovCisK K3N0YXRpYyBpbnQgcmVjb3JkX3Jlc3VtZV9zdGVwID0gMDsKKwogLyogUmVj b3JkIGJ1ZiB3aXRoIGNvcmUgdGFyZ2V0LiAgKi8KIHN0YXRpYyBnZGJfYnl0 ZSAqcmVjb3JkX2NvcmVfcmVnYnVmID0gTlVMTDsKIHN0YXRpYyBzdHJ1Y3Qg dGFyZ2V0X3NlY3Rpb24gKnJlY29yZF9jb3JlX3N0YXJ0OwpAQCAtMjAwLDYg KzIxMSw5IEBAIHN0YXRpYyBVTE9OR0VTVCByZWNvcmRfaW5zbl9jb3VudDsK IHN0YXRpYyBzdHJ1Y3QgdGFyZ2V0X29wcyByZWNvcmRfb3BzOwogc3RhdGlj IHN0cnVjdCB0YXJnZXRfb3BzIHJlY29yZF9jb3JlX29wczsKIAorLyogVGhl IHN3aXRoIG9mIHJlY29yZCBwcmUuICAqLworc3RhdGljIGludCByZWNvcmRf cHJlID0gMTsKKwogLyogVGhlIGJlbmVhdGggZnVuY3Rpb24gcG9pbnRlcnMu ICAqLwogc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzICpyZWNvcmRfYmVuZWF0 aF90b19yZXN1bWVfb3BzOwogc3RhdGljIHZvaWQgKCpyZWNvcmRfYmVuZWF0 aF90b19yZXN1bWUpIChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBwdGlkX3QsIGlu dCwKQEAgLTI4OCw2ICszMDIsMTYgQEAgcmVjb3JkX21lbV9yZWxlYXNlIChz dHJ1Y3QgcmVjb3JkX2VudHJ5IAogICB4ZnJlZSAocmVjKTsKIH0KIAorLyog WFhYOiBGcmVlIGEgcmVjb3JkX3B0aWQgcmVjb3JkIGVudHJ5LiAgKi8KKyNp bmNsdWRlIDxzeXMvcHRyYWNlLmg+CitzdGF0aWMgaW5saW5lIHZvaWQKK3Jl Y29yZF9wdGlkX3JlbGVhc2UgKHN0cnVjdCByZWNvcmRfZW50cnkgKnJlYykK K3sKKyAgZ2RiX2Fzc2VydCAocmVjLT50eXBlID09IHJlY29yZF9wdGlkKTsK KyAgcHRyYWNlIChQVFJBQ0VfS0lMTCwgUElER0VUIChyZWMtPnUucHRpZCks IDAsIDApOworICB4ZnJlZSAocmVjKTsKK30KKwogLyogQWxsb2MgYSByZWNv cmRfZW5kIHJlY29yZCBlbnRyeS4gICovCiAKIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHJlY29yZF9lbnRyeSAqCkBAIC0zMjQsNiArMzQ4LDkgQEAgcmVjb3Jk X2VudHJ5X3JlbGVhc2UgKHN0cnVjdCByZWNvcmRfZW50cgogICBjYXNlIHJl Y29yZF9tZW06CiAgICAgcmVjb3JkX21lbV9yZWxlYXNlIChyZWMpOwogICAg IGJyZWFrOworICBjYXNlIHJlY29yZF9wdGlkOgorICAgIHJlY29yZF9wdGlk X3JlbGVhc2UgKHJlYyk7CisgICAgYnJlYWs7CiAgIGNhc2UgcmVjb3JkX2Vu ZDoKICAgICByZWNvcmRfZW5kX3JlbGVhc2UgKHJlYyk7CiAgICAgYnJlYWs7 CkBAIC01MTIsNiArNTM5LDI4IEBAIHJlY29yZF9hcmNoX2xpc3RfYWRkX21l bSAoQ09SRV9BRERSIGFkZHIKICAgcmV0dXJuIDA7CiB9CiAKKy8qIFJlY29y ZCB0aGUgdmFsdWUgb2YgYSBwdGlkIHRvIHJlY29yZF9hcmNoX2xpc3QuICAq LworCitpbnQKK3JlY29yZF9hcmNoX2xpc3RfYWRkX3B0aWQgKHB0aWRfdCBw dGlkKQoreworICBzdHJ1Y3QgcmVjb3JkX2VudHJ5ICpyZWM7CisKKyAgaWYg KHJlY29yZF9kZWJ1ZyA+IDEpCisgICAgZnByaW50Zl91bmZpbHRlcmVkIChn ZGJfc3RkbG9nLAorCQkJIlByb2Nlc3MgcmVjb3JkOiBhZGQgcHRpZCA9ICVz IHRvICIKKwkJCSJyZWNvcmQgbGlzdC5cbiIsCisJCQl0YXJnZXRfcGlkX3Rv X3N0ciAocHRpZCkpOworCisgIHJlYyA9IChzdHJ1Y3QgcmVjb3JkX2VudHJ5 ICopIHhjYWxsb2MgKDEsIHNpemVvZiAoc3RydWN0IHJlY29yZF9lbnRyeSkp OworICByZWMtPnR5cGUgPSByZWNvcmRfcHRpZDsKKyAgcmVjLT51LnB0aWQg PSBwdGlkOworCisgIHJlY29yZF9hcmNoX2xpc3RfYWRkIChyZWMpOworCisg IHJldHVybiAwOworfQorCiAvKiBBZGQgYSByZWNvcmRfZW5kIHR5cGUgc3Ry dWN0IHJlY29yZF9lbnRyeSB0byByZWNvcmRfYXJjaF9saXN0LiAgKi8KIAog aW50CkBAIC01NzYsNyArNjI1LDcgQEAgcmVjb3JkX2FyY2hfbGlzdF9jbGVh bnVwcyAodm9pZCAqaWdub3JlKQogc3RhdGljIGludAogcmVjb3JkX21lc3Nh Z2UgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGVudW0gdGFyZ2V0X3Np Z25hbCBzaWduYWwpCiB7Ci0gIGludCByZXQ7CisgIGludCByZXQgPSAtMTsK ICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfcmVnY2FjaGVfYXJj aCAocmVnY2FjaGUpOwogICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2NsZWFudXBz ID0gbWFrZV9jbGVhbnVwIChyZWNvcmRfYXJjaF9saXN0X2NsZWFudXBzLCAw KTsKIApAQCAtNTg2LDYgKzYzNSw4IEBAIHJlY29yZF9tZXNzYWdlIChzdHJ1 Y3QgcmVnY2FjaGUgKnJlZ2NhY2gKICAgLyogQ2hlY2sgcmVjb3JkX2luc25f bnVtLiAgKi8KICAgcmVjb3JkX2NoZWNrX2luc25fbnVtICgxKTsKIAorICBy ZWNvcmRfc3RlcCA9IDE7CisKICAgLyogSWYgZ2RiIHNlbmRzIGEgc2lnbmFs IHZhbHVlIHRvIHRhcmdldF9yZXN1bWUsCiAgICAgIHNhdmUgaXQgaW4gdGhl ICdlbmQnIGZpZWxkIG9mIHRoZSBwcmV2aW91cyBpbnN0cnVjdGlvbi4KIApA QCAtNjA4LDExICs2NTksMjAgQEAgcmVjb3JkX21lc3NhZ2UgKHN0cnVjdCBy ZWdjYWNoZSAqcmVnY2FjaAogICAgICBCdXQgd2Ugc2hvdWxkIHN0aWxsIGRl bGl2ZXIgdGhlIHNpZ25hbCB0byBnZGIgZHVyaW5nIHRoZSByZXBsYXksCiAg ICAgIGlmIHdlIGRlbGl2ZXJlZCBpdCBkdXJpbmcgdGhlIHJlY29yZGluZy4g IFRoZXJlZm9yZSB3ZSBzaG91bGQKICAgICAgcmVjb3JkIHRoZSBzaWduYWwg ZHVyaW5nIHJlY29yZF93YWl0LCBub3QgcmVjb3JkX3Jlc3VtZS4gICovCi0g IGlmIChyZWNvcmRfbGlzdCAhPSAmcmVjb3JkX2ZpcnN0KSAgICAvKiBGSVhN RSBiZXR0ZXIgd2F5IHRvIGNoZWNrICovCi0gICAgewotICAgICAgZ2RiX2Fz c2VydCAocmVjb3JkX2xpc3QtPnR5cGUgPT0gcmVjb3JkX2VuZCk7Ci0gICAg ICByZWNvcmRfbGlzdC0+dS5lbmQuc2lndmFsID0gc2lnbmFsOwotICAgIH0K KyAgeworICAgIHN0cnVjdCByZWNvcmRfZW50cnkgKnJlYzsKKworICAgIGlm IChSRUNPUkRfSVNfUkVQTEFZKQorICAgICAgcmVjID0gcmVjb3JkX2xpc3Qt PnByZXY7CisgICAgZWxzZQorICAgICAgcmVjID0gcmVjb3JkX2xpc3Q7CisK KyAgICBpZiAocmVjICE9ICZyZWNvcmRfZmlyc3QpICAgIC8qIEZJWE1FIGJl dHRlciB3YXkgdG8gY2hlY2sgKi8KKyAgICAgIHsKKyAgICAgICAgZ2RiX2Fz c2VydCAocmVjLT50eXBlID09IHJlY29yZF9lbmQpOworICAgICAgICByZWMt PnUuZW5kLnNpZ3ZhbCA9IHNpZ25hbDsKKyAgICAgIH0KKyAgfQogCiAgIGlm IChzaWduYWwgPT0gVEFSR0VUX1NJR05BTF8wCiAgICAgICB8fCAhZ2RiYXJj aF9wcm9jZXNzX3JlY29yZF9zaWduYWxfcCAoZ2RiYXJjaCkpCkBAIC02MzEs OSArNjkxLDE5IEBAIHJlY29yZF9tZXNzYWdlIChzdHJ1Y3QgcmVnY2FjaGUg KnJlZ2NhY2gKIAogICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2xlYW51cHMp OwogCi0gIHJlY29yZF9saXN0LT5uZXh0ID0gcmVjb3JkX2FyY2hfbGlzdF9o ZWFkOwotICByZWNvcmRfYXJjaF9saXN0X2hlYWQtPnByZXYgPSByZWNvcmRf bGlzdDsKLSAgcmVjb3JkX2xpc3QgPSByZWNvcmRfYXJjaF9saXN0X3RhaWw7 CisgIGlmIChSRUNPUkRfSVNfUkVQTEFZKQorICAgIHsKKyAgICAgIHJlY29y ZF9saXN0LT5wcmV2LT5uZXh0ID0gcmVjb3JkX2FyY2hfbGlzdF9oZWFkOwor ICAgICAgcmVjb3JkX2FyY2hfbGlzdF9oZWFkLT5wcmV2ID0gcmVjb3JkX2xp c3QtPnByZXY7CisgICAgICByZWNvcmRfbGlzdC0+cHJldiA9IHJlY29yZF9h cmNoX2xpc3RfdGFpbDsKKyAgICAgIHJlY29yZF9hcmNoX2xpc3RfdGFpbC0+ bmV4dCA9IHJlY29yZF9saXN0OworICAgIH0KKyAgZWxzZQorICAgIHsKKyAg ICAgIHJlY29yZF9saXN0LT5uZXh0ID0gcmVjb3JkX2FyY2hfbGlzdF9oZWFk OworICAgICAgcmVjb3JkX2FyY2hfbGlzdF9oZWFkLT5wcmV2ID0gcmVjb3Jk X2xpc3Q7CisgICAgICByZWNvcmRfbGlzdCA9IHJlY29yZF9hcmNoX2xpc3Rf dGFpbDsKKyAgICB9CiAKICAgaWYgKHJlY29yZF9pbnNuX251bSA9PSByZWNv cmRfaW5zbl9tYXhfbnVtICYmIHJlY29yZF9pbnNuX21heF9udW0pCiAgICAg cmVjb3JkX2xpc3RfcmVsZWFzZV9maXJzdCAoKTsKQEAgLTc3NCw2ICs4NDQs MTI5IEBAIHJlY29yZF9leGVjX2luc24gKHN0cnVjdCByZWdjYWNoZSAqcmVn Y2EKICAgICAgICAgICB9CiAgICAgICB9CiAgICAgICBicmVhazsKKworICAg IGNhc2UgcmVjb3JkX3B0aWQ6CisgICAgICB7CisgICAgICAgIHN0cnVjdCBm cmFtZV9pbmZvICpmaTsKKyAgICAgICAgaW50IGk7CisgICAgICAgIENPUkVf QUREUiBjdXJyZW50X3N0b3BfcGMgPSBzdG9wX3BjOworICAgICAgICBwdGlk X3QgY3VycmVudF9wdGlkID0gaW5mZXJpb3JfcHRpZDsKKyAgICAgICAgc3Ry dWN0IHJlZ2NhY2hlICpjdXJyZW50X3JlZzsKKyAgICAgICAgaW50IGN1cnJl bnRfZnJhbWVfY291bnQgPSAwOworICAgICAgICBzdHJ1Y3QgZnJhbWVfaWQg KmN1cnJlbnRfZnJhbWVfaWQ7CisgICAgICAgIHN0cnVjdCByZWdjYWNoZSAq cmVjb3JkX3JlZzsKKyAgICAgICAgZXh0ZXJuIHZvaWQgbGludXhfbmF0X3N3 aXRjaF9mb3JrIChwdGlkX3QgbmV3X3B0aWQpOworICAgICAgICBleHRlcm4g dm9pZCBudWxsaWZ5X2xhc3RfdGFyZ2V0X3dhaXRfcHRpZCAoKTsKKworICAg ICAgICBzZXRfZXhlY3V0aW5nIChpbmZlcmlvcl9wdGlkLCAwKTsKKworICAg ICAgICAvKiBHZXQgY3VycmVudF9yZWcuICAqLworICAgICAgICBjdXJyZW50 X3JlZyA9IHJlZ2NhY2hlX2R1cCAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCkp OworICAgICAgICAvKiBHZXQgY3VycmVudF9mcmFtZV9jb3VudC4gICovCisg ICAgICAgIGZvciAoZmkgPSBnZXRfY3VycmVudF9mcmFtZSAoKTsgZmk7IGZp ID0gZ2V0X3ByZXZfZnJhbWUgKGZpKSkKKyAgICAgICAgICBjdXJyZW50X2Zy YW1lX2NvdW50ICsrOworICAgICAgICAvKiBHZXQgY3VycmVudF9mcmFtZV9y ZWcuICAqLworICAgICAgICBjdXJyZW50X2ZyYW1lX2lkID0gYWxsb2NhIChj dXJyZW50X2ZyYW1lX2NvdW50CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqIHNpemVvZiAoc3RydWN0IGZyYW1lX2lkKSk7CisgICAg ICAgIGkgPSAwOworICAgICAgICBmb3IgKGZpID0gZ2V0X2N1cnJlbnRfZnJh bWUgKCk7IGZpOyBmaSA9IGdldF9wcmV2X2ZyYW1lIChmaSkpCisgICAgICAg ICAgeworICAgICAgICAgICAgY3VycmVudF9mcmFtZV9pZFtpXSA9IGdldF9m cmFtZV9pZCAoZmkpOworICAgICAgICAgICAgaSArKzsKKyAgICAgICAgICB9 CisKKyAgICAgICAgLyogU3dpdGNoIHRvIHJlY29yZF9wdGlkLiAgKi8KKyAg ICAgICAgbGludXhfbmF0X3N3aXRjaF9mb3JrIChyZWNvcmRfbGlzdC0+dS5w dGlkKTsKKyAgICAgICAgcmVnaXN0ZXJzX2NoYW5nZWQgKCk7CisgICAgICAg IHJlaW5pdF9mcmFtZV9jYWNoZSAoKTsKKyAgICAgICAgcmVjb3JkX3JlZyA9 IGdldF9jdXJyZW50X3JlZ2NhY2hlICgpOworICAgICAgICBzdG9wX3BjID0g cmVnY2FjaGVfcmVhZF9wYyAocmVjb3JkX3JlZyk7CisgICAgICAgIG51bGxp ZnlfbGFzdF90YXJnZXRfd2FpdF9wdGlkICgpOworCisgICAgICAgIHdoaWxl ICgxKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIHN0cnVjdCB0YXJnZXRf d2FpdHN0YXR1cyBzdGF0dXM7CisKKyAgICAgICAgICAgIC8qIENoZWNrIGlm IHRoZSByZWNvcmRfcHRpZCBpcyBpbiB0aGUgc2FtZSBwbGFjZSBvZgorICAg ICAgICAgICAgICAgY3VycmVudF9wdGlkLiAgKi8KKyAgICAgICAgICAgIGlm IChzdG9wX3BjID09IGN1cnJlbnRfc3RvcF9wYykKKyAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgIGludCBub3Rfc2FtZSA9IDA7CisgICAgICAg ICAgICAgICAgc3RydWN0IHJlZ2NhY2hlICpyZWNvcmRfcmVnID0gZ2V0X2N1 cnJlbnRfcmVnY2FjaGUgKCk7CisgICAgICAgICAgICAgICAgZ2RiX2J5dGUg Y3VycmVudFtNQVhfUkVHSVNURVJfU0laRV0sIHJlY29yZFtNQVhfUkVHSVNU RVJfU0laRV07CisKKyAgICAgICAgICAgICAgICAvKiBDaGVjayBjdXJyZW50 X3JlZy4gICovCisgICAgICAgICAgICAgICAgZm9yIChpID0gZ2RiYXJjaF9u dW1fcmVncyAoZ2RiYXJjaCkgLSAxOyBpID49IDA7IGkgLS0pCisgICAgICAg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVnY2Fj aGVfdmFsaWRfcCAoY3VycmVudF9yZWcsaSkpCisgICAgICAgICAgICAgICAg ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICAgICAgbWVtc2V0 IChjdXJyZW50LCAwLCBNQVhfUkVHSVNURVJfU0laRSk7CisgICAgICAgICAg ICAgICAgICAgIG1lbXNldCAocmVjb3JkLCAwLCBNQVhfUkVHSVNURVJfU0la RSk7CisKKyAgICAgICAgICAgICAgICAgICAgcmVnY2FjaGVfcmF3X3JlYWQg KGN1cnJlbnRfcmVnLCBpLCBjdXJyZW50KTsKKyAgICAgICAgICAgICAgICAg ICAgcmVnY2FjaGVfcmF3X3JlYWQgKHJlY29yZF9yZWcsIGksIHJlY29yZCk7 CisgICAgICAgICAgICAgICAgICAgIGlmIChtZW1jbXAgKGN1cnJlbnQsIHJl Y29yZCwgTUFYX1JFR0lTVEVSX1NJWkUpKQorICAgICAgICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdF9zYW1lID0gMTsK KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICBpZiAobm90X3NhbWUpCisgICAgICAgICAgICAgICAgICBnb3RvIGtl ZXBfZXhlYzsKKworICAgICAgICAgICAgICAgIC8qIENoZWNrIGN1cnJlbnRf ZnJhbWVfaWQuICAqLworICAgICAgICAgICAgICAgIGkgPSAwOworICAgICAg ICAgICAgICAgIGZvciAoZmkgPSBnZXRfY3VycmVudF9mcmFtZSAoKTsgZmk7 IGZpID0gZ2V0X3ByZXZfZnJhbWUgKGZpKSkKKyAgICAgICAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gY3VycmVudF9mcmFt ZV9jb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICBub3Rfc2FtZSA9IDE7CisgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICB9CisKKyAg ICAgICAgICAgICAgICAgICAgaWYgKCFmcmFtZV9pZF9lcSAoZ2V0X2ZyYW1l X2lkIChmaSksIGN1cnJlbnRfZnJhbWVfaWRbaV0pKQorICAgICAgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdF9zYW1l ID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg ICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBpICsr OworICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChu b3Rfc2FtZSkKKyAgICAgICAgICAgICAgICAgIGdvdG8ga2VlcF9leGVjOwor CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgIH0KKwor a2VlcF9leGVjOgorICAgICAgICAgICAgaWYgKCFyZWNvcmRfbWVzc2FnZV93 cmFwcGVyX3NhZmUgKHJlY29yZF9yZWcsIFRBUkdFVF9TSUdOQUxfMCkpCisg IAkgICAgICBicmVhazsKKyAgICAgICAgICAgIHJlY29yZF9iZW5lYXRoX3Rv X3Jlc3VtZSAocmVjb3JkX2JlbmVhdGhfdG9fcmVzdW1lX29wcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkX2xpc3Qt PnUucHRpZCwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVEFSR0VUX1NJR05BTF8wKTsKKyAgICAgICAgICAgIHJlY29yZF9i ZW5lYXRoX3RvX3dhaXQgKHJlY29yZF9iZW5lYXRoX3RvX3dhaXRfb3BzLAor CQkJCSAgICByZWNvcmRfbGlzdC0+dS5wdGlkLCAmc3RhdHVzLCAwKTsKKwor ICAgICAgICAgICAgLyogVXBkYXRlIHN0b3BfcGMuICAqLworICAgICAgICAg ICAgcmVnaXN0ZXJzX2NoYW5nZWQgKCk7CisgICAgICAgICAgICByZWNvcmRf cmVnID0gZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCk7CisgICAgICAgICAgICBz dG9wX3BjID0gcmVnY2FjaGVfcmVhZF9wYyAocmVjb3JkX3JlZyk7CisgICAg ICAgICAgfQorCisgICAgICAgIC8qIFJlbGVhc2UuICAqLworICAgICAgICBy ZWdjYWNoZV94ZnJlZSAoY3VycmVudF9yZWcpOworCisgICAgICAgIC8qIFN3 aXRjaCB0byBjdXJyZW50X3B0aWQuICAqLworICAgICAgICBsaW51eF9uYXRf c3dpdGNoX2ZvcmsgKGN1cnJlbnRfcHRpZCk7CisgICAgICAgIHJlZ2lzdGVy c19jaGFuZ2VkICgpOworICAgICAgICByZWluaXRfZnJhbWVfY2FjaGUgKCk7 CisgICAgICAgIHN0b3BfcGMgPSByZWdjYWNoZV9yZWFkX3BjIChnZXRfY3Vy cmVudF9yZWdjYWNoZSAoKSk7CisgICAgICAgIG51bGxpZnlfbGFzdF90YXJn ZXRfd2FpdF9wdGlkICgpOworCisgICAgICAgIHNldF9leGVjdXRpbmcgKGlu ZmVyaW9yX3B0aWQsIDEpOworICAgICAgfQorICAgICAgYnJlYWs7CiAgICAg fQogfQogCkBAIC04NzIsNiArMTA2NSwzMSBAQCByZWNvcmRfb3Blbl8xIChj aGFyICpuYW1lLCBpbnQgZnJvbV90dHkpCiAgICAgZXJyb3IgKF8oIkNvdWxk IG5vdCBmaW5kICd0b19zdG9wcGVkX2RhdGFfYWRkcmVzcycgbWV0aG9kIG9u IHRoZSB0YXJnZXQgc3RhY2suIikpOwogCiAgIHB1c2hfdGFyZ2V0ICgmcmVj b3JkX29wcyk7CisKKyAgLyogRG8gcHJlIHJlY29yZC4gICovCisgIGlmIChy ZWNvcmRfcHJlKQorICAgIHsKKyAgICAgIGludCByZXQ7CisgICAgICBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9jdXJyZW50X2FyY2ggKCk7CisK KyAgICAgIHJlY29yZF9hcmNoX2xpc3RfaGVhZCA9IE5VTEw7CisgICAgICBy ZWNvcmRfYXJjaF9saXN0X3RhaWwgPSBOVUxMOworCisgICAgICBpZiAoZ2Ri YXJjaF9wcmVfcHJvY2Vzc19yZWNvcmRfcCAoZ2RiYXJjaCkpCisgICAgICAg IHJldCA9IGdkYmFyY2hfcHJlX3Byb2Nlc3NfcmVjb3JkIChnZGJhcmNoKTsK KyAgICAgIGlmIChyZXQgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgIHJl Y29yZF9saXN0LT5uZXh0ID0gcmVjb3JkX2FyY2hfbGlzdF9oZWFkOworICAg ICAgICAgIHJlY29yZF9hcmNoX2xpc3RfaGVhZC0+cHJldiA9IHJlY29yZF9s aXN0OworICAgICAgICAgIHJlY29yZF9saXN0ID0gcmVjb3JkX2FyY2hfbGlz dF90YWlsOworICAgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAg ICAgICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJBdXRvIGNsb3NlIHRoZSBy ZWNvcmQgcHJlLlxuIikpOworICAgICAgICAgIHJlY29yZF9wcmUgPSAwOwor ICAgICAgICB9CisgICAgfQogfQogCiAvKiAidG9fb3BlbiIgdGFyZ2V0IG1l dGhvZC4gIE9wZW4gdGhlIHByb2Nlc3MgcmVjb3JkIHRhcmdldC4gICovCkBA IC04NzksNiArMTA5Nyw3IEBAIHJlY29yZF9vcGVuXzEgKGNoYXIgKm5hbWUs IGludCBmcm9tX3R0eSkKIHN0YXRpYyB2b2lkCiByZWNvcmRfb3BlbiAoY2hh ciAqbmFtZSwgaW50IGZyb21fdHR5KQogeworICBpbnQgcmV0ID0gLTE7CiAg IHN0cnVjdCB0YXJnZXRfb3BzICp0OwogCiAgIGlmIChyZWNvcmRfZGVidWcp CkBAIC05OTUsOCArMTIxNCw2IEBAIHJlY29yZF9jbG9zZSAoaW50IHF1aXR0 aW5nKQogICAgIH0KIH0KIAotc3RhdGljIGludCByZWNvcmRfcmVzdW1lX3N0 ZXAgPSAwOwotCiAvKiAidG9fcmVzdW1lIiB0YXJnZXQgbWV0aG9kLiAgUmVz dW1lIHRoZSBwcm9jZXNzIHJlY29yZCB0YXJnZXQuICAqLwogCiBzdGF0aWMg dm9pZApAQCAtMTAwNywxMCArMTIyNCwxMiBAQCByZWNvcmRfcmVzdW1lIChz dHJ1Y3QgdGFyZ2V0X29wcyAqb3BzLCBwCiAKICAgaWYgKCFSRUNPUkRfSVNf UkVQTEFZKQogICAgIHsKLSAgICAgIGlmICghcmVjb3JkX2Rpc2FibGUpCisg ICAgICBpZiAocmVjb3JkX2Rpc2FibGUgfHwgcmVjb3JkX3ByZSkKKyAgICAg ICAgcmVjb3JkX3N0ZXAgPSBzdGVwOworICAgICAgZWxzZQogICAgICAgICBy ZWNvcmRfbWVzc2FnZSAoZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCksIHNpZ25h bCk7Ci0gICAgICByZWNvcmRfYmVuZWF0aF90b19yZXN1bWUgKHJlY29yZF9i ZW5lYXRoX3RvX3Jlc3VtZV9vcHMsIHB0aWQsIDEsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpZ25hbCk7CisgICAgICByZWNvcmRfYmVu ZWF0aF90b19yZXN1bWUgKHJlY29yZF9iZW5lYXRoX3RvX3Jlc3VtZV9vcHMs IHB0aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29y ZF9zdGVwLCBzaWduYWwpOwogICAgIH0KIH0KIApAQCAtMTA3MCw3ICsxMjg5 LDggQEAgcmVjb3JkX3dhaXQgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMsCiAK ICAgaWYgKCFSRUNPUkRfSVNfUkVQTEFZICYmIG9wcyAhPSAmcmVjb3JkX2Nv cmVfb3BzKQogICAgIHsKLSAgICAgIGlmIChyZWNvcmRfcmVzdW1lX3N0ZXAg fHwgcmVjb3JkX2Rpc2FibGUpCisgICAgICBpZiAocmVjb3JkX3Jlc3VtZV9z dGVwIHx8IHJlY29yZF9kaXNhYmxlCisgICAgICAgICAgfHwgcmVjb3JkX3By ZSkKIAl7CiAJICAvKiBUaGlzIGlzIGEgc2luZ2xlIHN0ZXAgb3IgcmVjb3Jk IGlzIGRpc2FibGVkLiAgKi8KIAkgIHJldHVybiByZWNvcmRfYmVuZWF0aF90 b193YWl0IChyZWNvcmRfYmVuZWF0aF90b193YWl0X29wcywKQEAgLTExMzUs NyArMTM1NSw3IEBAIHJlY29yZF93YWl0IChzdHJ1Y3QgdGFyZ2V0X29wcyAq b3BzLAogICAJCQl9CiAKIAkJICAgICAgcmVjb3JkX2JlbmVhdGhfdG9fcmVz dW1lIChyZWNvcmRfYmVuZWF0aF90b19yZXN1bWVfb3BzLAotCQkJCQkJcHRp ZCwgMSwKKwkJCQkJCXB0aWQsIHJlY29yZF9zdGVwLAogCQkJCQkJVEFSR0VU X1NJR05BTF8wKTsKIAkJICAgICAgY29udGludWU7CiAJCSAgICB9CkBAIC0x MjE5LDcgKzE0MzksOCBAQCByZWNvcmRfd2FpdCAoc3RydWN0IHRhcmdldF9v cHMgKm9wcywKIAogICAgICAgICAgIHJlY29yZF9leGVjX2luc24gKHJlZ2Nh Y2hlLCBnZGJhcmNoLCByZWNvcmRfbGlzdCk7CiAKLQkgIGlmIChyZWNvcmRf bGlzdC0+dHlwZSA9PSByZWNvcmRfZW5kKQorCSAgaWYgKHJlY29yZF9saXN0 LT50eXBlID09IHJlY29yZF9lbmQKKyAgICAgICAgICAgICAgJiYgcmVjb3Jk X2xpc3QtPnByZXYtPnR5cGUgIT0gcmVjb3JkX3B0aWQpCiAJICAgIHsKIAkg ICAgICBpZiAocmVjb3JkX2RlYnVnID4gMSkKIAkJZnByaW50Zl91bmZpbHRl cmVkIChnZGJfc3RkbG9nLApAQCAtMjcyNCw2ICsyOTQ1LDE2IEBAIHJlY29y ZC9yZXBsYXkgYnVmZmVyLiAgWmVybyBtZWFucyB1bmxpbWkKIAkJCSAgICBz ZXRfcmVjb3JkX2luc25fbWF4X251bSwKIAkJCSAgICBOVUxMLCAmc2V0X3Jl Y29yZF9jbWRsaXN0LCAmc2hvd19yZWNvcmRfY21kbGlzdCk7CiAKKyAgYWRk X3NldHNob3dfYm9vbGVhbl9jbWQgKCJwcmUiLCBub19jbGFzcywKKwkJCSAg ICZyZWNvcmRfcHJlLCBfKCJcCitTZXQgd2hldGhlciByZWNvcmQvcmVwbGF5 IHByZSB3b3JrLiIpLCBfKCJcCitTaG93IHdoZXRoZXIgcmVjb3JkL3JlcGxh eSBwcmUgd29yay4iKSwgXygiXAorRGVmYXVsdCBpcyBPTi5cblwKK1doZW4g T04sIGlmIHRoZSByZWNvcmQvcmVwbGF5IHByZSB3aWxsIHdvcmsuXG5cCitX aGVuIE9GRiwgaWYgdGhlIHJlY29yZC9yZXBsYXkgcHJlIHdpbGwgbm90IHdv cmsuIiksCisJCQkgICBOVUxMLCBOVUxMLAorCQkJICAgJnNldF9yZWNvcmRf Y21kbGlzdCwgJnNob3dfcmVjb3JkX2NtZGxpc3QpOworCiAgIGFkZF9jbWQg KCJnb3RvIiwgY2xhc3Nfb2JzY3VyZSwgY21kX3JlY29yZF9nb3RvLCBfKCJc CiBSZXN0b3JlIHRoZSBwcm9ncmFtIHRvIGl0cyBzdGF0ZSBhdCBpbnN0cnVj dGlvbiBudW1iZXIgTi5cblwKIEFyZ3VtZW50IGlzIGluc3RydWN0aW9uIG51 bWJlciwgYXMgc2hvd24gYnkgJ2luZm8gcmVjb3JkJy4iKSwKLS0tIGEvcmVj b3JkLmgKKysrIGIvcmVjb3JkLmgKQEAgLTIzLDkgKzIzLDExIEBACiAjZGVm aW5lIFJFQ09SRF9JU19VU0VECShjdXJyZW50X3RhcmdldC50b19zdHJhdHVt ID09IHJlY29yZF9zdHJhdHVtKQogCiBleHRlcm4gaW50IHJlY29yZF9kZWJ1 ZzsKK2V4dGVybiBpbnQgcmVjb3JkX3N0ZXA7CiAKIGV4dGVybiBpbnQgcmVj b3JkX2FyY2hfbGlzdF9hZGRfcmVnIChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2Nh Y2hlLCBpbnQgbnVtKTsKIGV4dGVybiBpbnQgcmVjb3JkX2FyY2hfbGlzdF9h ZGRfbWVtIChDT1JFX0FERFIgYWRkciwgaW50IGxlbik7CitleHRlcm4gaW50 IHJlY29yZF9hcmNoX2xpc3RfYWRkX3B0aWQgKHB0aWRfdCBwdGlkKTsKIGV4 dGVybiBpbnQgcmVjb3JkX2FyY2hfbGlzdF9hZGRfZW5kICh2b2lkKTsKIGV4 dGVybiBzdHJ1Y3QgY2xlYW51cCAqcmVjb3JkX2Rpc2FibGVfc2V0ICh2b2lk KTsKIAo= --00504502b67239fe040486ed46a2--