From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20895 invoked by alias); 7 Dec 2012 09:15:14 -0000 Received: (qmail 20884 invoked by uid 22791); 7 Dec 2012 09:15:13 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,SPF_SOFTFAIL X-Spam-Check-By: sourceware.org Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com) (209.85.212.179) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 07 Dec 2012 09:15:07 +0000 Received: by mail-wi0-f179.google.com with SMTP id o1so126662wic.12 for ; Fri, 07 Dec 2012 01:15:06 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-originating-ip:in-reply-to:references:from:date :message-id:subject:to:cc:content-type:x-gm-message-state; bh=MrUffh5OyVGCxPq8exBA170PO85qAZ/XFmdN0OFiukY=; b=PXSZwQchyqeZ7h4rQyFrGCamAyjeFuSrhAfFJlKExbE3lUe9nOdAQw5JzQhHBC9X8t CtgpIRV7RMJ0hTJ2j6o25Lu0X1NYKIXbnF1FMbkw3vj9wfxQ3FwEml10baItu3swT4LO spEtWKtHo2Q5O6AFPautkaaXbm+MJF864tlrqng8NlswIGqSMGW0rGpceoehwxHPsHMN lgjUKAjstLTt7Vfpp0Xv0KUs5Lxa/xRYj8An6JVCWd3kmtOWY5cneU5uO4TTAQkbS9cu IC6pkHpJ5fX+Xsjvf7FLlFcc0cUz8x/zT6pe3QYWjWlX7u4ZrCEu00UXlUIrQbm5fFmZ 8aPQ== Received: by 10.216.227.66 with SMTP id c44mr1716027weq.29.1354871705990; Fri, 07 Dec 2012 01:15:05 -0800 (PST) MIME-Version: 1.0 Received: by 10.217.79.197 with HTTP; Fri, 7 Dec 2012 01:14:45 -0800 (PST) In-Reply-To: <20121201204751.GB22812@host2.jankratochvil.net> References: <1352048631-25042-1-git-send-email-sanjoy@playingwithpointers.com> <1352048631-25042-4-git-send-email-sanjoy@playingwithpointers.com> <20121201204751.GB22812@host2.jankratochvil.net> From: Sanjoy Das Date: Fri, 07 Dec 2012 09:15:00 -0000 Message-ID: Subject: Re: [PATCH 3/3] Add a test case for the jit-reader interface. To: Jan Kratochvil Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016e6d624f4c0752e04d03fa691 X-Gm-Message-State: ALoCoQmViVkAsGBOUE0hqIEa7c/CkDcNd1/zKb17dIcux7OwfimCGjEFtfH2jsX/5ZGQsn0TzkyM X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-12/txt/msg00133.txt.bz2 --0016e6d624f4c0752e04d03fa691 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1052 > I do not understand "Do.". Either "Likewise." or also "New file.". Fixed. > For GDB repository it is only 2012. Fixed. > It executes: > run {set debug jit 1} > Use: > gdb_test_no_output "set debug jit 1" Fixed. > It executes: (gdb) run run > > Besides that it does not wait on the SIGTRAP output it produces, so it is > racy. use: > gdb_run_cmd > gdb_test "" "Program received signal SIGTRAP, .*" "expect SIGTRAP" Fixed. > I do not understand why you do not use gdb/jit.h here? This file is > a duplicate. Sorry if it was already discussed during initial JIT review. I don't think this has been discussed, but my justification is that we'd want the JIT tests to break if we make ABI incompatible changes to the structures in jit.h (which, loosely speaking, are part of GDB's "interface"). As an aside, something seems to have gone wrong with my SSH keys and I was wondering if someone could commit my work (patches attached) for me, if that is permissible. -- Sanjoy Das http://playingwithpointers.com --0016e6d624f4c0752e04d03fa691 Content-Type: application/octet-stream; name="0001-Fix-segfault-when-unwinding-JIT-frames-using-a-custo.patch" Content-Disposition: attachment; filename="0001-Fix-segfault-when-unwinding-JIT-frames-using-a-custo.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_haf3qra30 Content-length: 2188 RnJvbSAxY2IzZGQ4NjQ1NTY0NWM4OWJkNTFhNDZmZGE2YmViZDE4ODgyMjI5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYW5qb3kgRGFzIDxz YW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CkRhdGU6IFRodSwgNiBT ZXAgMjAxMiAwNDo1MjoyOCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBG aXggc2VnZmF1bHQgd2hlbiB1bndpbmRpbmcgSklUIGZyYW1lcyB1c2luZyBh IGN1c3RvbQogcmVhZGVyLgoKSXNzdWUgaHR0cDovL3NvdXJjZXdhcmUub3Jn L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNDU1MAotLS0KIGdkYi9DaGFu Z2VMb2cgfCAgICA3ICsrKysrKysKIGdkYi9qaXQuYyAgICAgfCAgIDE0ICsr KysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL0NoYW5nZUxv ZyBiL2dkYi9DaGFuZ2VMb2cKaW5kZXggN2Y5Y2E4Zi4uYmQ3NGVlYiAxMDA2 NDQKLS0tIGEvZ2RiL0NoYW5nZUxvZworKysgYi9nZGIvQ2hhbmdlTG9nCkBA IC0xLDMgKzEsMTAgQEAKKzIwMTItMTItMDcgIFNhbmpveSBEYXMgPHNhbmpv eUBwbGF5aW5nd2l0aHBvaW50ZXJzLmNvbT4KKworCVBSIGdkYi8xNDU1MAor CisJKiBqaXQuYyAoZmluYWxpemVfc3ltdGFiKTogRW5zdXJlIHRoYXQgb25s eSB0aGUgZ2xvYmFsIGJsb2NrIGhhcyBhCisJTlVMTCBzdXBlcmJsb2NrLgor CiAyMDEyLTEyLTA2ICBQZWRybyBBbHZlcyAgPHBhbHZlc0ByZWRoYXQuY29t PgogCSAgICBUb20gVHJvbWV5ICA8dHJvbWV5QHJlZGhhdC5jb20+CiAKZGlm ZiAtLWdpdCBhL2dkYi9qaXQuYyBiL2dkYi9qaXQuYwppbmRleCAxYWZiZWU2 Li45ODE3ZDA0IDEwMDY0NAotLS0gYS9nZGIvaml0LmMKKysrIGIvZ2RiL2pp dC5jCkBAIC03MjQsOCArNzI0LDE4IEBAIGZpbmFsaXplX3N5bXRhYiAoc3Ry dWN0IGdkYl9zeW10YWIgKnN0YWIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl KQogICAgICAgIGdkYl9ibG9ja19pdGVyID0gZ2RiX2Jsb2NrX2l0ZXItPm5l eHQpCiAgICAgewogICAgICAgaWYgKGdkYl9ibG9ja19pdGVyLT5wYXJlbnQg IT0gTlVMTCkKLSAgICAgICAgQkxPQ0tfU1VQRVJCTE9DSyAoZ2RiX2Jsb2Nr X2l0ZXItPnJlYWxfYmxvY2spID0KLSAgICAgICAgICBnZGJfYmxvY2tfaXRl ci0+cGFyZW50LT5yZWFsX2Jsb2NrOworCXsKKwkgIC8qIElmIHRoZSBwbHVn aW4gc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBhIHBhcmVudCBibG9jaywgd2UK KwkgICAgIHVzZSB0aGF0LiAgKi8KKwkgIEJMT0NLX1NVUEVSQkxPQ0sgKGdk Yl9ibG9ja19pdGVyLT5yZWFsX2Jsb2NrKSA9CisJICAgIGdkYl9ibG9ja19p dGVyLT5wYXJlbnQtPnJlYWxfYmxvY2s7CisJfQorICAgICAgZWxzZQorCXsK KwkgIC8qIEFuZCBpZiBub3QsIHdlIHNldCBhIGRlZmF1bHQgcGFyZW50IGJs b2NrLiAgKi8KKwkgIEJMT0NLX1NVUEVSQkxPQ0sgKGdkYl9ibG9ja19pdGVy LT5yZWFsX2Jsb2NrKSA9CisJICAgIEJMT0NLVkVDVE9SX0JMT0NLIChzeW10 YWItPmJsb2NrdmVjdG9yLCBTVEFUSUNfQkxPQ0spOworCX0KICAgICB9CiAK ICAgLyogRnJlZSBtZW1vcnkuICAqLwotLSAKMS43LjEwLjQKCg== --0016e6d624f4c0752e04d03fa691 Content-Type: application/octet-stream; name="0002-Make-jit-reader-load-accept-absolute-paths-to-reader.patch" Content-Disposition: attachment; filename="0002-Make-jit-reader-load-accept-absolute-paths-to-reader.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_haf3qraf1 Content-length: 5063 RnJvbSBiOWQ2OGFhOWIxZTc4MmMyYjczOTNiYmUxMGNkYWY1ZjgzYTc4M2U1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYW5qb3kgRGFzIDxz YW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CkRhdGU6IFR1ZSwgMTgg U2VwIDIwMTIgMDg6NTE6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIDIvM10g TWFrZSBqaXQtcmVhZGVyLWxvYWQgYWNjZXB0IGFic29sdXRlIHBhdGhzIHRv IHJlYWRlcgogc2hhcmVkIG9iamVjdHMuCgotLS0KIGdkYi9DaGFuZ2VMb2cg ICAgICAgfCAgICA1ICsrKysrCiBnZGIvZG9jL0NoYW5nZUxvZyAgIHwgICAg NCArKysrCiBnZGIvZG9jL2dkYi50ZXhpbmZvIHwgICAyMiArKysrKysrKysr KysrLS0tLS0tLS0tCiBnZGIvaml0LmMgICAgICAgICAgIHwgICAgNiArKysr Ky0KIDQgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL0NoYW5nZUxvZyBiL2dkYi9D aGFuZ2VMb2cKaW5kZXggYmQ3NGVlYi4uOGVjYjA1NSAxMDA2NDQKLS0tIGEv Z2RiL0NoYW5nZUxvZworKysgYi9nZGIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs MTAgQEAKIDIwMTItMTItMDcgIFNhbmpveSBEYXMgPHNhbmpveUBwbGF5aW5n d2l0aHBvaW50ZXJzLmNvbT4KIAorCSogaml0LmMgKGppdF9yZWFkZXJfbG9h ZF9jb21tYW5kKTogSW50ZXJwcmV0IHRoZSBqaXQgcmVhZGVyIG5hbWUKKwlh cyBhbiBhYnNvbHV0ZSBwYXRoIGlmIGl0IGJlZ2lucyB3aXRoIGEgZm9yd2Fy ZCBzbGFzaC4KKworMjAxMi0xMS0wNCAgU2Fuam95IERhcyA8c2Fuam95QHBs YXlpbmd3aXRocG9pbnRlcnMuY29tPgorCiAJUFIgZ2RiLzE0NTUwCiAKIAkq IGppdC5jIChmaW5hbGl6ZV9zeW10YWIpOiBFbnN1cmUgdGhhdCBvbmx5IHRo ZSBnbG9iYWwgYmxvY2sgaGFzIGEKZGlmZiAtLWdpdCBhL2dkYi9kb2MvQ2hh bmdlTG9nIGIvZ2RiL2RvYy9DaGFuZ2VMb2cKaW5kZXggMWY0YWE1NS4uNzYy YTQyZSAxMDA2NDQKLS0tIGEvZ2RiL2RvYy9DaGFuZ2VMb2cKKysrIGIvZ2Ri L2RvYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3IEBACisyMDEyLTEyLTA3ICBT YW5qb3kgRGFzIDxzYW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CisJ KiBnZGIudGV4aW5mbyAoVXNpbmcgSklUIERlYnVnIEluZm8gUmVhZGVycyk6 IENoYW5nZSBkb2N1bWVudGF0aW9uCisJdG8gcmVmbGVjdCB0aGF0IGppdC1y ZWFkZXItbG9hZCBub3cgc3VwcG9ydHMgYWJzb2x1dGUgZmlsZS1uYW1lcy4K KwogMjAxMi0xMS0yOSAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29t PgogCiAJKiBnZGIudGV4aW5mbyAoU1ZSNCBQcm9jZXNzIEluZm9ybWF0aW9u KTogRG9jdW1lbnQgbWlzc2luZwpkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIu dGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KaW5kZXggOWZmZGI3Ny4u Yjk1MGViZCAxMDA2NDQKLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysg Yi9nZGIvZG9jL2dkYi50ZXhpbmZvCkBAIC0zMzc2MywxNSArMzM3NjMsMTkg QEAgUmVhZGVycyBjYW4gYmUgbG9hZGVkIGFuZCB1bmxvYWRlZCB1c2luZyB0 aGUgQGNvZGV7aml0LXJlYWRlci1sb2FkfQogYW5kIEBjb2Rle2ppdC1yZWFk ZXItdW5sb2FkfSBjb21tYW5kcy4KIAogQHRhYmxlIEBjb2RlCi1AaXRlbSBq aXQtcmVhZGVyLWxvYWQgQHZhcntyZWFkZXItbmFtZX0KLUxvYWQgdGhlIEpJ VCByZWFkZXIgbmFtZWQgQHZhcntyZWFkZXItbmFtZX0uICBPbiBhIFVOSVgg c3lzdGVtLCB0aGlzCi13aWxsIHVzdWFsbHkgbG9hZCBAZmlsZXtAdmFye2xp YmRpcn0vZ2RiL0B2YXJ7cmVhZGVyLW5hbWV9fSwgd2hlcmUKLUB2YXJ7bGli ZGlyfSBpcyB0aGUgc3lzdGVtIGxpYnJhcnkgZGlyZWN0b3J5LCB1c3VhbGx5 Ci1AZmlsZXsvdXNyL2xvY2FsL2xpYn0uICBPbmx5IG9uZSByZWFkZXIgY2Fu IGJlIGFjdGl2ZSBhdCBhIHRpbWU7Ci10cnlpbmcgdG8gbG9hZCBhIHNlY29u ZCByZWFkZXIgd2hlbiBvbmUgaXMgYWxyZWFkeSBsb2FkZWQgd2lsbCByZXN1 bHQKLWluIEB2YWx1ZXtHREJOfSByZXBvcnRpbmcgYW4gZXJyb3IuICBBIG5l dyBKSVQgcmVhZGVyIGNhbiBiZSBsb2FkZWQgYnkKLWZpcnN0IHVubG9hZGlu ZyB0aGUgY3VycmVudCBvbmUgdXNpbmcgQGNvZGV7aml0LXJlYWRlci1sb2Fk fSBhbmQgdGhlbgotaW52b2tpbmcgQGNvZGV7aml0LXJlYWRlci1sb2FkfS4K K0BpdGVtIGppdC1yZWFkZXItbG9hZCBAdmFye3JlYWRlcn0KK0xvYWQgdGhl IEpJVCByZWFkZXIgbmFtZWQgQHZhcntyZWFkZXJ9LiAgQHZhcntyZWFkZXJ9 IGlzIGEgc2hhcmVkCitvYmplY3Qgc3BlY2lmaWVkIGFzIGVpdGhlciBhbiBh YnNvbHV0ZSBvciBhIHJlbGF0aXZlIGZpbGUgbmFtZS4gIEluCit0aGUgbGF0 dGVyIGNhc2UsIEB2YWx1ZXtHREJOfSB3aWxsIHRyeSB0byBsb2FkIHRoZSBy ZWFkZXIgZnJvbSBhCitwcmUtY29uZmlndXJlZCBkaXJlY3RvcnksIHVzdWFs bHkgQGZpbGV7QHZhcntsaWJkaXJ9L2dkYi99IG9uIGEgVU5JWAorc3lzdGVt IChoZXJlIEB2YXJ7bGliZGlyfSBpcyB0aGUgc3lzdGVtIGxpYnJhcnkgZGly ZWN0b3J5LCBvZnRlbgorQGZpbGV7L3Vzci9sb2NhbC9saWJ9KS4KKworT25s eSBvbmUgcmVhZGVyIGNhbiBiZSBhY3RpdmUgYXQgYSB0aW1lOyB0cnlpbmcg dG8gbG9hZCBhIHNlY29uZAorcmVhZGVyIHdoZW4gb25lIGlzIGFscmVhZHkg bG9hZGVkIHdpbGwgcmVzdWx0IGluIEB2YWx1ZXtHREJOfQorcmVwb3J0aW5n IGFuIGVycm9yLiAgQSBuZXcgSklUIHJlYWRlciBjYW4gYmUgbG9hZGVkIGJ5 IGZpcnN0IHVubG9hZGluZwordGhlIGN1cnJlbnQgb25lIHVzaW5nIEBjb2Rl e2ppdC1yZWFkZXItdW5sb2FkfSBhbmQgdGhlbiBpbnZva2luZworQGNvZGV7 aml0LXJlYWRlci1sb2FkfS4KIAogQGl0ZW0gaml0LXJlYWRlci11bmxvYWQK IFVubG9hZCB0aGUgY3VycmVudGx5IGxvYWRlZCBKSVQgcmVhZGVyLgpkaWZm IC0tZ2l0IGEvZ2RiL2ppdC5jIGIvZ2RiL2ppdC5jCmluZGV4IDk4MTdkMDQu LjFlNWY4NDcgMTAwNjQ0Ci0tLSBhL2dkYi9qaXQuYworKysgYi9nZGIvaml0 LmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJicmVha3BvaW50Lmgi CiAjaW5jbHVkZSAiY29tbWFuZC5oIgogI2luY2x1ZGUgImRpY3Rpb25hcnku aCIKKyNpbmNsdWRlICJmaWxlbmFtZXMuaCIKICNpbmNsdWRlICJmcmFtZS11 bndpbmQuaCIKICNpbmNsdWRlICJnZGJjbWQuaCIKICNpbmNsdWRlICJnZGJj b3JlLmgiCkBAIC0yMDgsNyArMjA5LDEwIEBAIGppdF9yZWFkZXJfbG9hZF9j b21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCiAgIGlmIChsb2Fk ZWRfaml0X3JlYWRlciAhPSBOVUxMKQogICAgIGVycm9yIChfKCJKSVQgcmVh ZGVyIGFscmVhZHkgbG9hZGVkLiAgUnVuIGppdC1yZWFkZXItdW5sb2FkIGZp cnN0LiIpKTsKIAotICBzb19uYW1lID0geHN0cnByaW50ZiAoIiVzLyVzIiwg aml0X3JlYWRlcl9kaXIsIGFyZ3MpOworICBpZiAoSVNfQUJTT0xVVEVfUEFU SCAoYXJncykpCisgICAgc29fbmFtZSA9IHhzdHJkdXAgKGFyZ3MpOworICBl bHNlCisgICAgc29fbmFtZSA9IHhzdHJwcmludGYgKCIlcy8lcyIsIGppdF9y ZWFkZXJfZGlyLCBhcmdzKTsKICAgcHJldl9jbGVhbnVwID0gbWFrZV9jbGVh bnVwICh4ZnJlZSwgc29fbmFtZSk7CiAKICAgbG9hZGVkX2ppdF9yZWFkZXIg PSBqaXRfcmVhZGVyX2xvYWQgKHNvX25hbWUpOwotLSAKMS43LjEwLjQKCg== --0016e6d624f4c0752e04d03fa691 Content-Type: application/octet-stream; name="0003-Add-a-test-case-for-the-jit-reader-interface.patch" Content-Disposition: attachment; filename="0003-Add-a-test-case-for-the-jit-reader-interface.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_haf3qrah2 Content-length: 16519 RnJvbSA4YzgxMjU1NTI1ZDExNmQ0OWM3OWViN2M3NmJiYTBkZWI5YzFlZWZi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYW5qb3kgRGFzIDxz YW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CkRhdGU6IFR1ZSwgMTgg U2VwIDIwMTIgMDg6NTI6MDcgKzA1MzAKU3ViamVjdDogW1BBVENIIDMvM10g QWRkIGEgdGVzdCBjYXNlIGZvciB0aGUgaml0LXJlYWRlciBpbnRlcmZhY2Uu CgotLS0KIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg fCAgICA4ICsrCiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1yZWFkZXIu ZXhwIHwgICA4MCArKysrKysrKysrKysrKysrKwogZ2RiL3Rlc3RzdWl0ZS9n ZGIuYmFzZS9qaXRob3N0LmMgICAgICB8ICAgODQgKysrKysrKysrKysrKysr KysrCiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdGhvc3QuaCAgICAgIHwg ICAyNyArKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0cmVhZGVy LmMgICAgfCAgMTU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogNSBmaWxlcyBjaGFuZ2VkLCAzNTUgaW5zZXJ0aW9ucygrKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LXJlYWRl ci5leHAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2ppdGhvc3QuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvaml0aG9zdC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXRyZWFkZXIuYwoKZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFu Z2VMb2cKaW5kZXggMzM1ZWNmZi4uNTY3MTc0ZiAxMDA2NDQKLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFu Z2VMb2cKQEAgLTEsMyArMSwxMSBAQAorMjAxMi0xMi0wNyAgU2Fuam95IERh cyA8c2Fuam95QHBsYXlpbmd3aXRocG9pbnRlcnMuY29tPgorCisJKiBnZGIu YmFzZS9qaXQtcmVhZGVyLmV4cDogTmV3IGZpbGUuIFRlc3QgY2FzZSBmb3Ig dGhlIGppdC1yZWFkZXIKKwlpbnRlcmZhY2UuCisJKiBnZGIuYmFzZS9qaXRo b3N0LmM6IE5ldyBmaWxlLgorCSogZ2RiLmJhc2Uvaml0aG9zdC5oOiBOZXcg ZmlsZS4KKwkqIGdkYi5iYXNlL2ppdHJlYWRlci5jIDogTmV3IGZpbGUuCisK IDIwMTItMTItMDYgIFBlZHJvIEFsdmVzICA8cGFsdmVzQHJlZGhhdC5jb20+ CiAJICAgIFRvbSBUcm9tZXkgIDx0cm9tZXlAcmVkaGF0LmNvbT4KIApkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXQtcmVhZGVyLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LXJlYWRlci5leHAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAzNGMzYQotLS0g L2Rldi9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0LXJl YWRlci5leHAKQEAgLTAsMCArMSw4MCBAQAorIyBDb3B5cmlnaHQgMjAxMiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKworc3RhbmRhcmRfdGVzdGZpbGUgaml0aG9zdC5jCisKK2lmIHsgKCFb aXN0YXJnZXQgeDg2XzY0LSotKl0gJiYgIVtpc3RhcmdldCBpPzg2LSotKl0p IHx8ICFbaXNfbHA2NF90YXJnZXRdIH0geworICAgIHJldHVybiAtMTsKK30K KworaWYge1tza2lwX3NobGliX3Rlc3RzXX0geworICAgIHJldHVybiAtMQor fQorCitpZiB7ICFbaXNuYXRpdmVdIH0geworICAgIHJldHVybiAtMQorfQor CitpZiB7W2dldF9jb21waWxlcl9pbmZvXX0geworICAgIHVudGVzdGVkICJj b3VsZCBub3QgZ2V0IGNvbXBpbGVyIGluZm8iCisgICAgcmV0dXJuIDEKK30K Kworc2V0IGppdF9ob3N0X3NyYyAke3NyY2ZpbGV9CitzZXQgaml0X2hvc3Rf YmluICR7YmluZmlsZX0KKworIyBXZSBpbmplY3QgdGhlIGNvbXBsZXRlIHBh dGggdG8gaml0LXJlYWRlci5oIGludG8gdGhlIHNvdXJjZSBmaWxlCisjIGxl c3Qgd2UgZW5kIHVwIChpbmNvcnJlY3RseSkgYnVpbGRpbmcgYWdhaW5zdCBh IHN5c3RlbS1pbnN0YWxsZWQKKyMgdmVyc2lvbi4KK3NldCBqaXRfcmVhZGVy X2hlYWRlciBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgIi4uLy4uLy4uL2dkYi9q aXQtcmVhZGVyLmgiXQorc2V0IGppdF9yZWFkZXJfZmxhZyAiLURKSVRfUkVB REVSX0g9XCIkaml0X3JlYWRlcl9oZWFkZXJcIiIKKworaWYgIHsgW2dkYl9j b21waWxlICIke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7aml0X2hvc3Rfc3JjfSIg IiR7aml0X2hvc3RfYmlufSIgXAorICAgICAgIGV4ZWN1dGFibGUgIFtsaXN0 IGRlYnVnIGFkZGl0aW9uYWxfZmxhZ3M9JGppdF9yZWFkZXJfZmxhZ11dICE9 ICIiIH0geworICAgIHVudGVzdGVkIGppdC1yZWFkZXIuZXhwCisgICAgcmV0 dXJuIC0xCit9CisKK3NldCBqaXRfcmVhZGVyIGppdHJlYWRlcgorc2V0IGpp dF9yZWFkZXJfc3JjICR7aml0X3JlYWRlcn0uYworc2V0IGppdF9yZWFkZXJf YmluIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAke2ppdF9yZWFkZXJ9LnNvXQor CitpZiB7IFtnZGJfY29tcGlsZV9zaGxpYiAiJHtzcmNkaXJ9LyR7c3ViZGly fS8ke2ppdF9yZWFkZXJfc3JjfSIgIiR7aml0X3JlYWRlcl9iaW59IiBcCisJ ICBbbGlzdCBkZWJ1ZyBhZGRpdGlvbmFsX2ZsYWdzPSRqaXRfcmVhZGVyX2Zs YWddXSAhPSAiIiB9IHsKKyAgICB1bnRlc3RlZCBqaXQtcmVhZGVyLmV4cAor ICAgIHJldHVybiAtMQorfQorCitnZGJfbG9hZF9zaGxpYnMgIiR7aml0X3Jl YWRlcl9iaW59IgorCitwcm9jIGppdF9yZWFkZXJfdGVzdCB7fSB7CisgICAg Z2xvYmFsIGppdF9ob3N0X2JpbgorICAgIGdsb2JhbCBqaXRfcmVhZGVyX2Jp bgorICAgIGdsb2JhbCB2ZXJib3NlCisKKyAgICBjbGVhbl9yZXN0YXJ0ICRq aXRfaG9zdF9iaW4KKworICAgIGlmIHskdmVyYm9zZSA+IDB9IHsKKwlnZGJf dGVzdF9ub19vdXRwdXQgInNldCBkZWJ1ZyBqaXQgMSIKKyAgICB9CisKKyAg ICBnZGJfdGVzdF9ub19vdXRwdXQgImppdC1yZWFkZXItbG9hZCAke2ppdF9y ZWFkZXJfYmlufSIKKyAgICBnZGJfcnVuX2NtZAorICAgIGdkYl90ZXN0ICIi ICJQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdUUkFQLCAuKiIgImV4cGVj dCBTSUdUUkFQIgorCisgICAgZ2RiX3Rlc3QgImJ0IiAiaml0X2Z1bmN0aW9u XzAwLioiCit9CisKK2ppdF9yZWFkZXJfdGVzdApkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXRob3N0LmMgYi9nZGIvdGVzdHN1aXRl L2dkYi5iYXNlL2ppdGhvc3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zMWFkYjI1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9qaXRob3N0LmMKQEAgLTAsMCArMSw4NCBAQAor LyogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTIgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4K KworICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAg IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN0 ZGludC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGli Lmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+ CisKKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorCisjaW5jbHVkZSBKSVRfUkVB REVSX0ggIC8qIFBsZWFzZSBzZWUgaml0LXJlYWRlci5leHAgZm9yIGFuIGV4 cGxhbmF0aW9uLiAgKi8KKyNpbmNsdWRlICJqaXRob3N0LmgiCisKK3R5cGVk ZWYgZW51bQoreworICBKSVRfTk9BQ1RJT04gPSAwLAorICBKSVRfUkVHSVNU RVJfRk4sCisgIEpJVF9VTlJFR0lTVEVSX0ZOCit9IGppdF9hY3Rpb25zX3Q7 CisKK3N0cnVjdCBqaXRfY29kZV9lbnRyeQoreworICBzdHJ1Y3Qgaml0X2Nv ZGVfZW50cnkgKm5leHRfZW50cnk7CisgIHN0cnVjdCBqaXRfY29kZV9lbnRy eSAqcHJldl9lbnRyeTsKKyAgdm9pZCAqc3ltZmlsZV9hZGRyOworICB1aW50 NjRfdCBzeW1maWxlX3NpemU7Cit9OworCitzdHJ1Y3Qgaml0X2Rlc2NyaXB0 b3IKK3sKKyAgdWludDMyX3QgdmVyc2lvbjsKKyAgdWludDMyX3QgYWN0aW9u X2ZsYWc7CisgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqcmVsZXZhbnRfZW50 cnk7CisgIHN0cnVjdCBqaXRfY29kZV9lbnRyeSAqZmlyc3RfZW50cnk7Cit9 OworCit2b2lkIF9fYXR0cmlidXRlX18oKG5vaW5saW5lKSkgX19qaXRfZGVi dWdfcmVnaXN0ZXJfY29kZSAoKSB7IH0KKworc3RydWN0IGppdF9kZXNjcmlw dG9yIF9faml0X2RlYnVnX2Rlc2NyaXB0b3IgPSB7IDEsIDAsIDAsIDAgfTsK K3N0cnVjdCBqaXRfY29kZV9lbnRyeSBvbmx5X2VudHJ5OworCit0eXBlZGVm IHZvaWQgKGppdF9mdW5jdGlvbl90KSAoKTsKKworaW50IG1haW4gKGludCBh cmdjLCBjaGFyICoqYXJndikKK3sKKyAgY2hhciAqY29kZSA9IG1tYXAgKE5V TEwsIGdldHBhZ2VzaXplICgpLCBQUk9UX1dSSVRFIHwgUFJPVF9FWEVDLAor CQkgICAgIE1BUF9QUklWQVRFIHwgTUFQX0FOT05ZTU9VUywgLTEsIDApOwor ICBqaXRfZnVuY3Rpb25fdCAqZnVuY3Rpb24gPSAoaml0X2Z1bmN0aW9uX3Qg KikgY29kZTsKKworICBjb2RlWzBdID0gMHhjYzsgLyogU0lHVFJBUCAgKi8K KyAgY29kZVsxXSA9IDB4YzM7IC8qIFJFVCAgKi8KKworICBzdHJ1Y3Qgaml0 aG9zdF9hYmkgKnN5bWZpbGUgPSBtYWxsb2MgKHNpemVvZiAoc3RydWN0IGpp dGhvc3RfYWJpKSk7CisgIHN5bWZpbGUtPmJlZ2luID0gY29kZTsKKyAgc3lt ZmlsZS0+ZW5kID0gY29kZSArIDI7CisKKyAgb25seV9lbnRyeS5zeW1maWxl X2FkZHIgPSBzeW1maWxlOworICBvbmx5X2VudHJ5LnN5bWZpbGVfc2l6ZSA9 IHNpemVvZiAoc3RydWN0IGppdGhvc3RfYWJpKTsKKworICBfX2ppdF9kZWJ1 Z19kZXNjcmlwdG9yLmZpcnN0X2VudHJ5ID0gJm9ubHlfZW50cnk7CisgIF9f aml0X2RlYnVnX2Rlc2NyaXB0b3IucmVsZXZhbnRfZW50cnkgPSAmb25seV9l bnRyeTsKKyAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5hY3Rpb25fZmxhZyA9 IEpJVF9SRUdJU1RFUl9GTjsKKyAgX19qaXRfZGVidWdfZGVzY3JpcHRvci52 ZXJzaW9uID0gMTsKKyAgX19qaXRfZGVidWdfcmVnaXN0ZXJfY29kZSAoKTsK KworICBmdW5jdGlvbiAoKTsKKworICByZXR1cm4gMDsKK30KZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0aG9zdC5oIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9qaXRob3N0LmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTJjYTg3YQotLS0gL2Rldi9udWxsCisrKyBi L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0aG9zdC5oCkBAIC0wLDAgKzEs MjcgQEAKKy8qIENvcHlyaWdodCAoQykgMjAwOS0yMDEyIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpZm5k ZWYgSklUSE9TVF9ICisjZGVmaW5lIEpJVEhPU1RfSAorCitzdHJ1Y3Qgaml0 aG9zdF9hYmkKK3sKKyAgY29uc3QgY2hhciAqYmVnaW47CisgIGNvbnN0IGNo YXIgKmVuZDsKK307CisKKyNlbmRpZiAvKiBKSVRIT1NUX0ggKi8KZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0cmVhZGVyLmMgYi9n ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdHJlYWRlci5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjOTM1YzQKLS0tIC9kZXYvbnVs bAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdHJlYWRlci5jCkBA IC0wLDAgKzEsMTU2IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhpcyBmaWxl IGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJ ZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq LworCisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4K KyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwor I2luY2x1ZGUgSklUX1JFQURFUl9IICAvKiBQbGVhc2Ugc2VlIGppdC1yZWFk ZXIuZXhwIGZvciBhbiBleHBsYW5hdGlvbi4gICovCisjaW5jbHVkZSAiaml0 aG9zdC5oIgorCitHREJfREVDTEFSRV9HUExfQ09NUEFUSUJMRV9SRUFERVI7 CisKK2VudW0gcmVnaXN0ZXJfbWFwcGluZworeworICBBTUQ2NF9SQSA9IDE2 LAorICBBTUQ2NF9SU1AgPSA3LAorfTsKKworc3RydWN0IHJlYWRlcl9zdGF0 ZQoreworICB1aW50cHRyX3QgY29kZV9iZWdpbjsKKyAgdWludHB0cl90IGNv ZGVfZW5kOworfTsKKworc3RhdGljIGVudW0gZ2RiX3N0YXR1cworcmVhZF9k ZWJ1Z19pbmZvIChzdHJ1Y3QgZ2RiX3JlYWRlcl9mdW5jcyAqc2VsZiwKKwkJ IHN0cnVjdCBnZGJfc3ltYm9sX2NhbGxiYWNrcyAqY2JzLAorICAgICAgICAg ICAgICAgICB2b2lkICptZW1vcnksIGxvbmcgbWVtb3J5X3N6KQoreworICBz dHJ1Y3Qgaml0aG9zdF9hYmkgKnN5bWZpbGUgPSBtZW1vcnk7CisgIHN0cnVj dCBnZGJfb2JqZWN0ICpvYmplY3QgPSBjYnMtPm9iamVjdF9vcGVuIChjYnMp OworICBzdHJ1Y3QgZ2RiX3N5bXRhYiAqc3ltdGFiID0gY2JzLT5zeW10YWJf b3BlbiAoY2JzLCBvYmplY3QsICIiKTsKKyAgR0RCX0NPUkVfQUREUiBiZWdp biA9IChHREJfQ09SRV9BRERSKSBzeW1maWxlLT5iZWdpbjsKKyAgR0RCX0NP UkVfQUREUiBlbmQgPSAoR0RCX0NPUkVfQUREUikgc3ltZmlsZS0+ZW5kOwor CisgIGNicy0+YmxvY2tfb3BlbiAoY2JzLCBzeW10YWIsIE5VTEwsIGJlZ2lu LCBlbmQsICJqaXRfZnVuY3Rpb25fMDAiKTsKKworICBjYnMtPnN5bXRhYl9j bG9zZSAoY2JzLCBzeW10YWIpOworICBjYnMtPm9iamVjdF9jbG9zZSAoY2Jz LCBvYmplY3QpOworICByZXR1cm4gR0RCX1NVQ0NFU1M7Cit9CisKK3N0YXRp YyB2b2lkCitmcmVlX3JlZ192YWx1ZSAoc3RydWN0IGdkYl9yZWdfdmFsdWUg KnZhbHVlKQoreworICBmcmVlICh2YWx1ZSk7Cit9CisKK3N0YXRpYyB2b2lk Cit3cml0ZV9yZWdpc3RlciAoc3RydWN0IGdkYl91bndpbmRfY2FsbGJhY2tz ICpjYWxsYmFja3MsIGludCBkd19yZWcsCisgICAgICAgICAgICAgICAgdWlu dHB0cl90IHZhbHVlKQoreworICBjb25zdCBpbnQgc2l6ZSA9IHNpemVvZiAo dWludHB0cl90KTsKKyAgc3RydWN0IGdkYl9yZWdfdmFsdWUgKnJlZ192YWwg PQorICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgZ2RiX3JlZ192YWx1ZSkg KyBzaXplIC0gMSk7CisgIHJlZ192YWwtPmRlZmluZWQgPSAxOworICByZWdf dmFsLT5mcmVlID0gZnJlZV9yZWdfdmFsdWU7CisKKyAgbWVtY3B5IChyZWdf dmFsLT52YWx1ZSwgJnZhbHVlLCBzaXplKTsKKyAgY2FsbGJhY2tzLT5yZWdf c2V0IChjYWxsYmFja3MsIGR3X3JlZywgcmVnX3ZhbCk7Cit9CisKK3N0YXRp YyBpbnQKK3JlYWRfcmVnaXN0ZXIgKHN0cnVjdCBnZGJfdW53aW5kX2NhbGxi YWNrcyAqY2FsbGJhY2tzLCBpbnQgZHdfcmVnLAorCSAgICAgICB1aW50cHRy X3QgKnZhbHVlKQoreworICBjb25zdCBpbnQgc2l6ZSA9IHNpemVvZiAodWlu dHB0cl90KTsKKyAgc3RydWN0IGdkYl9yZWdfdmFsdWUgKnJlZ192YWwgPSBj YWxsYmFja3MtPnJlZ19nZXQgKGNhbGxiYWNrcywgZHdfcmVnKTsKKyAgaWYg KHJlZ192YWwtPnNpemUgIT0gc2l6ZSB8fCAhcmVnX3ZhbC0+ZGVmaW5lZCkK KyAgICB7CisgICAgICByZWdfdmFsLT5mcmVlIChyZWdfdmFsKTsKKyAgICAg IHJldHVybiAwOworICAgIH0KKyAgbWVtY3B5ICh2YWx1ZSwgcmVnX3ZhbC0+ dmFsdWUsIHNpemUpOworICByZWdfdmFsLT5mcmVlIChyZWdfdmFsKTsKKyAg cmV0dXJuIDE7Cit9CisKK3N0YXRpYyBlbnVtIGdkYl9zdGF0dXMKK3Vud2lu ZF9mcmFtZSAoc3RydWN0IGdkYl9yZWFkZXJfZnVuY3MgKnNlbGYsIHN0cnVj dCBnZGJfdW53aW5kX2NhbGxiYWNrcyAqY2JzKQoreworICBjb25zdCBpbnQg d29yZF9zaXplID0gc2l6ZW9mICh1aW50cHRyX3QpOworICB1aW50cHRyX3Qg dGhpc19zcCwgdGhpc19pcCwgcHJldl9pcCwgcHJldl9zcDsKKyAgc3RydWN0 IHJlYWRlcl9zdGF0ZSAqc3RhdGUgPSAoc3RydWN0IHJlYWRlcl9zdGF0ZSAq KSBzZWxmLT5wcml2X2RhdGE7CisKKyAgaWYgKCFyZWFkX3JlZ2lzdGVyIChj YnMsIEFNRDY0X1JBLCAmdGhpc19pcCkpCisgICAgcmV0dXJuIEdEQl9GQUlM OworCisgIGlmICh0aGlzX2lwID49IHN0YXRlLT5jb2RlX2VuZCB8fCB0aGlz X2lwIDwgc3RhdGUtPmNvZGVfYmVnaW4pCisgICAgcmV0dXJuIEdEQl9GQUlM OworCisgIGlmICghcmVhZF9yZWdpc3RlciAoY2JzLCBBTUQ2NF9SU1AsICZ0 aGlzX3NwKSkKKyAgICByZXR1cm4gR0RCX0ZBSUw7CisKKyAgaWYgKGNicy0+ dGFyZ2V0X3JlYWQgKHRoaXNfc3AsICZwcmV2X2lwLCB3b3JkX3NpemUpID09 IEdEQl9GQUlMKQorICAgIHJldHVybiBHREJfRkFJTDsKKworICBwcmV2X3Nw ID0gdGhpc19zcCArIHdvcmRfc2l6ZTsKKyAgd3JpdGVfcmVnaXN0ZXIgKGNi cywgQU1ENjRfUkEsIHByZXZfaXApOworICB3cml0ZV9yZWdpc3RlciAoY2Jz LCBBTUQ2NF9SU1AsIHByZXZfc3ApOworICByZXR1cm4gR0RCX1NVQ0NFU1M7 Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZ2RiX2ZyYW1lX2lkCitnZXRfZnJhbWVf aWQgKHN0cnVjdCBnZGJfcmVhZGVyX2Z1bmNzICpzZWxmLCBzdHJ1Y3QgZ2Ri X3Vud2luZF9jYWxsYmFja3MgKmNicykKK3sKKyAgc3RydWN0IHJlYWRlcl9z dGF0ZSAqc3RhdGUgPSAoc3RydWN0IHJlYWRlcl9zdGF0ZSAqKSBzZWxmLT5w cml2X2RhdGE7CisgIHN0cnVjdCBnZGJfZnJhbWVfaWQgZnJhbWVfaWQ7CisK KyAgdWludHB0cl90IHNwOworICByZWFkX3JlZ2lzdGVyIChjYnMsIEFNRDY0 X1JTUCwgJnNwKTsKKworICBmcmFtZV9pZC5jb2RlX2FkZHJlc3MgPSAoR0RC X0NPUkVfQUREUikgc3RhdGUtPmNvZGVfYmVnaW47CisgIGZyYW1lX2lkLnN0 YWNrX2FkZHJlc3MgPSAoR0RCX0NPUkVfQUREUikgc3A7CisKKyAgcmV0dXJu IGZyYW1lX2lkOworfQorCitzdGF0aWMgdm9pZAorZGVzdHJveV9yZWFkZXIg KHN0cnVjdCBnZGJfcmVhZGVyX2Z1bmNzICpzZWxmKQoreworICBmcmVlIChz ZWxmLT5wcml2X2RhdGEpOworICBmcmVlIChzZWxmKTsKK30KKworZXh0ZXJu IHN0cnVjdCBnZGJfcmVhZGVyX2Z1bmNzICoKK2dkYl9pbml0X3JlYWRlciAo dm9pZCkKK3sKKyAgc3RydWN0IHJlYWRlcl9zdGF0ZSAqc3RhdGUgPSBtYWxs b2MgKHNpemVvZiAoc3RydWN0IHJlYWRlcl9zdGF0ZSkpOworICBzdHJ1Y3Qg Z2RiX3JlYWRlcl9mdW5jcyAqcmVhZGVyX2Z1bmNzID0KKyAgICBtYWxsb2Mg KHNpemVvZiAoc3RydWN0IGdkYl9yZWFkZXJfZnVuY3MpKTsKKworICByZWFk ZXJfZnVuY3MtPnJlYWRlcl92ZXJzaW9uID0gR0RCX1JFQURFUl9JTlRFUkZB Q0VfVkVSU0lPTjsKKyAgcmVhZGVyX2Z1bmNzLT5wcml2X2RhdGEgPSBzdGF0 ZTsKKyAgcmVhZGVyX2Z1bmNzLT5yZWFkID0gcmVhZF9kZWJ1Z19pbmZvOwor ICByZWFkZXJfZnVuY3MtPnVud2luZCA9IHVud2luZF9mcmFtZTsKKyAgcmVh ZGVyX2Z1bmNzLT5nZXRfZnJhbWVfaWQgPSBnZXRfZnJhbWVfaWQ7CisgIHJl YWRlcl9mdW5jcy0+ZGVzdHJveSA9IGRlc3Ryb3lfcmVhZGVyOworCisgIHJl dHVybiByZWFkZXJfZnVuY3M7Cit9Ci0tIAoxLjcuMTAuNAoK --0016e6d624f4c0752e04d03fa691--