From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15858 invoked by alias); 13 Jan 2013 21:58:03 -0000 Received: (qmail 15849 invoked by uid 22791); 13 Jan 2013 21:58:01 -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-f174.google.com (HELO mail-wi0-f174.google.com) (209.85.212.174) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 13 Jan 2013 21:57:56 +0000 Received: by mail-wi0-f174.google.com with SMTP id hq4so883019wib.13 for ; Sun, 13 Jan 2013 13:57:55 -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=9RW0DLGR3gF1tHNeQvAWiKCbwwPBsb1bl22d38OA71Y=; b=bWR+ikTqnQ2w+08vxZYhC71oLkpf4qJpNojMhMBJUlnzcLNx36/yVEuh0dl2Vv6hsv oi+gOcAAuhZM+P9jpSnR2kGn9edrxYRF4e5hqreC17Jb44BCRE8mX5dBK3XjUOVFyNbC AGfbj84sv1M1YXrwym8x/IpOPlqpgBPS1EWK0t6rtNjsdXi4DPrzGP4sz04PRA9Go2gi N+xa6uYiUl9THgQmclyimIYAiAqEVXMoOJFZVp+0kQfeK2X+9aYC/6H2rKbW751kmEnD esOnxT/x6iSItlCnaD71wfnMcnM/e0koJHBnPyeAHOgS5idKLvsBwzdtNSgqaXaD/zlE hgZA== Received: by 10.180.90.106 with SMTP id bv10mr9198132wib.12.1358114275032; Sun, 13 Jan 2013 13:57:55 -0800 (PST) MIME-Version: 1.0 Received: by 10.217.62.71 with HTTP; Sun, 13 Jan 2013 13:57:34 -0800 (PST) In-Reply-To: <20130109123706.GB6415@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> <20121210163800.GA24342@host2.jankratochvil.net> <20130109123706.GB6415@host2.jankratochvil.net> From: Sanjoy Das Date: Sun, 13 Jan 2013 21:58: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=f46d043c81e8ed7d6b04d3329e0b X-Gm-Message-State: ALoCoQkU+R92Jx6DAcYUEPlMnBjx9vW3e9IaAtmhH516uJ4iQHaRZpS62DITFJfkKOPbKBC5cCL8 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: 2013-01/txt/msg00263.txt.bz2 --f46d043c81e8ed7d6b04d3329e0b Content-Type: text/plain; charset=ISO-8859-1 Content-length: 415 Hi, Changes from the last series: > Do not use full binary path in test name, those differ across testsuite runs. > That is use for example: > gdb_test_no_output "jit-reader-load ${jit_reader_bin}" "jit-reader-load" 1. Fixed above issue. 2. Use SLASH_STRING instead of a raw backslash when computing the full path of a plugin (in the second patch). Thanks! -- Sanjoy Das http://playingwithpointers.com --f46d043c81e8ed7d6b04d3329e0b 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_hbwq8hb40 Content-length: 2241 RnJvbSAwM2NmMjcwMTFmYTg1YTIxMTEyY2YyMWFjMDc2NWNlNDcyYjU2MWFm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYW5qb3kgRGFzIDxz YW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CkRhdGU6IFRodSwgNiBT ZXAgMjAxMiAwNDo1MjoyOCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBG aXggc2VnZmF1bHQgd2hlbiB1bndpbmRpbmcgSklUIGZyYW1lcyB1c2luZyBh IGN1c3RvbQogcmVhZGVyLgoKSXNzdWUgaHR0cDovL3NvdXJjZXdhcmUub3Jn L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xNDU1MAotLS0KIGdkYi9DaGFu Z2VMb2cgfCAgICA3ICsrKysrKysKIGdkYi9qaXQuYyAgICAgfCAgIDE0ICsr KysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL0NoYW5nZUxv ZyBiL2dkYi9DaGFuZ2VMb2cKaW5kZXggZDlhMmU0NS4uYjYxOTk1MyAxMDA2 NDQKLS0tIGEvZ2RiL0NoYW5nZUxvZworKysgYi9nZGIvQ2hhbmdlTG9nCkBA IC0xLDMgKzEsMTAgQEAKKzIwMTItMDEtMTQgIFNhbmpveSBEYXMgPHNhbmpv eUBwbGF5aW5nd2l0aHBvaW50ZXJzLmNvbT4KKworCVBSIGdkYi8xNDU1MAor CisJKiBqaXQuYyAoZmluYWxpemVfc3ltdGFiKTogRW5zdXJlIHRoYXQgb25s eSB0aGUgZ2xvYmFsIGJsb2NrIGhhcyBhCisJTlVMTCBzdXBlcmJsb2NrLgor CiAyMDEzLTAxLTEzICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+CiAKIAkqIHBhcnNlLmMgKHBhcnNlX2V4cF9pbl9jb250 ZXh0KTogTmV3IHZhcmlhYmxlIGlubmVyX2NoYWluLiAgQ2FsbApkaWZmIC0t Z2l0IGEvZ2RiL2ppdC5jIGIvZ2RiL2ppdC5jCmluZGV4IGE5MzBmNzQuLmY1 NDJmOWUgMTAwNjQ0Ci0tLSBhL2dkYi9qaXQuYworKysgYi9nZGIvaml0LmMK QEAgLTcyNCw4ICs3MjQsMTggQEAgZmluYWxpemVfc3ltdGFiIChzdHJ1Y3Qg Z2RiX3N5bXRhYiAqc3RhYiwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAg ICAgICAgZ2RiX2Jsb2NrX2l0ZXIgPSBnZGJfYmxvY2tfaXRlci0+bmV4dCkK ICAgICB7CiAgICAgICBpZiAoZ2RiX2Jsb2NrX2l0ZXItPnBhcmVudCAhPSBO VUxMKQotICAgICAgICBCTE9DS19TVVBFUkJMT0NLIChnZGJfYmxvY2tfaXRl ci0+cmVhbF9ibG9jaykgPQotICAgICAgICAgIGdkYl9ibG9ja19pdGVyLT5w YXJlbnQtPnJlYWxfYmxvY2s7CisJeworCSAgLyogSWYgdGhlIHBsdWdpbiBz cGVjaWZpY2FsbHkgbWVudGlvbmVkIGEgcGFyZW50IGJsb2NrLCB3ZQorCSAg ICAgdXNlIHRoYXQuICAqLworCSAgQkxPQ0tfU1VQRVJCTE9DSyAoZ2RiX2Js b2NrX2l0ZXItPnJlYWxfYmxvY2spID0KKwkgICAgZ2RiX2Jsb2NrX2l0ZXIt PnBhcmVudC0+cmVhbF9ibG9jazsKKwl9CisgICAgICBlbHNlCisJeworCSAg LyogQW5kIGlmIG5vdCwgd2Ugc2V0IGEgZGVmYXVsdCBwYXJlbnQgYmxvY2su ICAqLworCSAgQkxPQ0tfU1VQRVJCTE9DSyAoZ2RiX2Jsb2NrX2l0ZXItPnJl YWxfYmxvY2spID0KKwkgICAgQkxPQ0tWRUNUT1JfQkxPQ0sgKHN5bXRhYi0+ YmxvY2t2ZWN0b3IsIFNUQVRJQ19CTE9DSyk7CisJfQogICAgIH0KIAogICAv KiBGcmVlIG1lbW9yeS4gICovCi0tIAoxLjcuMTAuNAoK --f46d043c81e8ed7d6b04d3329e0b 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_hbwq8hbk1 Content-length: 5072 RnJvbSA5MGI5NjRhMDc0MmFiODc2ZjhiODY0OGU0ZmZmNWU4MzkzYjIyZjA4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYW5qb3kgRGFzIDxz YW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CkRhdGU6IFR1ZSwgMTgg U2VwIDIwMTIgMDg6NTE6NTMgKzA1MzAKU3ViamVjdDogW1BBVENIIDIvM10g TWFrZSBqaXQtcmVhZGVyLWxvYWQgYWNjZXB0IGFic29sdXRlIHBhdGhzIHRv IHJlYWRlcgogc2hhcmVkIG9iamVjdHMuCgotLS0KIGdkYi9DaGFuZ2VMb2cg ICAgICAgfCAgICA1ICsrKysrCiBnZGIvZG9jL0NoYW5nZUxvZyAgIHwgICAg NCArKysrCiBnZGIvZG9jL2dkYi50ZXhpbmZvIHwgICAyMiArKysrKysrKysr KysrLS0tLS0tLS0tCiBnZGIvaml0LmMgICAgICAgICAgIHwgICAgNiArKysr Ky0KIDQgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMTAgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL0NoYW5nZUxvZyBiL2dkYi9D aGFuZ2VMb2cKaW5kZXggYjYxOTk1My4uYzZmOTRiNiAxMDA2NDQKLS0tIGEv Z2RiL0NoYW5nZUxvZworKysgYi9nZGIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs MTAgQEAKIDIwMTItMDEtMTQgIFNhbmpveSBEYXMgPHNhbmpveUBwbGF5aW5n d2l0aHBvaW50ZXJzLmNvbT4KIAorCSogaml0LmMgKGppdF9yZWFkZXJfbG9h ZF9jb21tYW5kKTogSW50ZXJwcmV0IHRoZSBqaXQgcmVhZGVyIG5hbWUKKwlh cyBhbiBhYnNvbHV0ZSBwYXRoIGlmIGl0IGJlZ2lucyB3aXRoIGEgZm9yd2Fy ZCBzbGFzaC4KKworMjAxMi0wMS0xNCAgU2Fuam95IERhcyA8c2Fuam95QHBs YXlpbmd3aXRocG9pbnRlcnMuY29tPgorCiAJUFIgZ2RiLzE0NTUwCiAKIAkq IGppdC5jIChmaW5hbGl6ZV9zeW10YWIpOiBFbnN1cmUgdGhhdCBvbmx5IHRo ZSBnbG9iYWwgYmxvY2sgaGFzIGEKZGlmZiAtLWdpdCBhL2dkYi9kb2MvQ2hh bmdlTG9nIGIvZ2RiL2RvYy9DaGFuZ2VMb2cKaW5kZXggMGViNTc0ZC4uNjU5 NGVhMCAxMDA2NDQKLS0tIGEvZ2RiL2RvYy9DaGFuZ2VMb2cKKysrIGIvZ2Ri L2RvYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3IEBACisyMDEyLTAxLTE0ICBT YW5qb3kgRGFzIDxzYW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CisJ KiBnZGIudGV4aW5mbyAoVXNpbmcgSklUIERlYnVnIEluZm8gUmVhZGVycyk6 IENoYW5nZSBkb2N1bWVudGF0aW9uCisJdG8gcmVmbGVjdCB0aGF0IGppdC1y ZWFkZXItbG9hZCBub3cgc3VwcG9ydHMgYWJzb2x1dGUgZmlsZS1uYW1lcy4K KwogMjAxMy0wMS0wNyAgVG9tIFRyb21leSAgPHRyb21leUByZWRoYXQuY29t PgogCiAJKiBnZGIudGV4aW5mbyAoTW9kZSBPcHRpb25zKTogRG9uJ3QgbWVu dGlvbiAtZXBvY2guCmRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZv IGIvZ2RiL2RvYy9nZGIudGV4aW5mbwppbmRleCBmOTczMjYzLi40NzMxZDU5 IDEwMDY0NAotLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisrKyBiL2dkYi9k b2MvZ2RiLnRleGluZm8KQEAgLTMzOTQwLDE1ICszMzk0MCwxOSBAQCBSZWFk ZXJzIGNhbiBiZSBsb2FkZWQgYW5kIHVubG9hZGVkIHVzaW5nIHRoZSBAY29k ZXtqaXQtcmVhZGVyLWxvYWR9CiBhbmQgQGNvZGV7aml0LXJlYWRlci11bmxv YWR9IGNvbW1hbmRzLgogCiBAdGFibGUgQGNvZGUKLUBpdGVtIGppdC1yZWFk ZXItbG9hZCBAdmFye3JlYWRlci1uYW1lfQotTG9hZCB0aGUgSklUIHJlYWRl ciBuYW1lZCBAdmFye3JlYWRlci1uYW1lfS4gIE9uIGEgVU5JWCBzeXN0ZW0s IHRoaXMKLXdpbGwgdXN1YWxseSBsb2FkIEBmaWxle0B2YXJ7bGliZGlyfS9n ZGIvQHZhcntyZWFkZXItbmFtZX19LCB3aGVyZQotQHZhcntsaWJkaXJ9IGlz IHRoZSBzeXN0ZW0gbGlicmFyeSBkaXJlY3RvcnksIHVzdWFsbHkKLUBmaWxl ey91c3IvbG9jYWwvbGlifS4gIE9ubHkgb25lIHJlYWRlciBjYW4gYmUgYWN0 aXZlIGF0IGEgdGltZTsKLXRyeWluZyB0byBsb2FkIGEgc2Vjb25kIHJlYWRl ciB3aGVuIG9uZSBpcyBhbHJlYWR5IGxvYWRlZCB3aWxsIHJlc3VsdAotaW4g QHZhbHVle0dEQk59IHJlcG9ydGluZyBhbiBlcnJvci4gIEEgbmV3IEpJVCBy ZWFkZXIgY2FuIGJlIGxvYWRlZCBieQotZmlyc3QgdW5sb2FkaW5nIHRoZSBj dXJyZW50IG9uZSB1c2luZyBAY29kZXtqaXQtcmVhZGVyLWxvYWR9IGFuZCB0 aGVuCi1pbnZva2luZyBAY29kZXtqaXQtcmVhZGVyLWxvYWR9LgorQGl0ZW0g aml0LXJlYWRlci1sb2FkIEB2YXJ7cmVhZGVyfQorTG9hZCB0aGUgSklUIHJl YWRlciBuYW1lZCBAdmFye3JlYWRlcn0uICBAdmFye3JlYWRlcn0gaXMgYSBz aGFyZWQKK29iamVjdCBzcGVjaWZpZWQgYXMgZWl0aGVyIGFuIGFic29sdXRl IG9yIGEgcmVsYXRpdmUgZmlsZSBuYW1lLiAgSW4KK3RoZSBsYXR0ZXIgY2Fz ZSwgQHZhbHVle0dEQk59IHdpbGwgdHJ5IHRvIGxvYWQgdGhlIHJlYWRlciBm cm9tIGEKK3ByZS1jb25maWd1cmVkIGRpcmVjdG9yeSwgdXN1YWxseSBAZmls ZXtAdmFye2xpYmRpcn0vZ2RiL30gb24gYSBVTklYCitzeXN0ZW0gKGhlcmUg QHZhcntsaWJkaXJ9IGlzIHRoZSBzeXN0ZW0gbGlicmFyeSBkaXJlY3Rvcnks IG9mdGVuCitAZmlsZXsvdXNyL2xvY2FsL2xpYn0pLgorCitPbmx5IG9uZSBy ZWFkZXIgY2FuIGJlIGFjdGl2ZSBhdCBhIHRpbWU7IHRyeWluZyB0byBsb2Fk IGEgc2Vjb25kCityZWFkZXIgd2hlbiBvbmUgaXMgYWxyZWFkeSBsb2FkZWQg d2lsbCByZXN1bHQgaW4gQHZhbHVle0dEQk59CityZXBvcnRpbmcgYW4gZXJy b3IuICBBIG5ldyBKSVQgcmVhZGVyIGNhbiBiZSBsb2FkZWQgYnkgZmlyc3Qg dW5sb2FkaW5nCit0aGUgY3VycmVudCBvbmUgdXNpbmcgQGNvZGV7aml0LXJl YWRlci11bmxvYWR9IGFuZCB0aGVuIGludm9raW5nCitAY29kZXtqaXQtcmVh ZGVyLWxvYWR9LgogCiBAaXRlbSBqaXQtcmVhZGVyLXVubG9hZAogVW5sb2Fk IHRoZSBjdXJyZW50bHkgbG9hZGVkIEpJVCByZWFkZXIuCmRpZmYgLS1naXQg YS9nZGIvaml0LmMgYi9nZGIvaml0LmMKaW5kZXggZjU0MmY5ZS4uNDYyM2Yx NSAxMDA2NDQKLS0tIGEvZ2RiL2ppdC5jCisrKyBiL2dkYi9qaXQuYwpAQCAt MjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImJyZWFrcG9pbnQuaCIKICNpbmNs dWRlICJjb21tYW5kLmgiCiAjaW5jbHVkZSAiZGljdGlvbmFyeS5oIgorI2lu Y2x1ZGUgImZpbGVuYW1lcy5oIgogI2luY2x1ZGUgImZyYW1lLXVud2luZC5o IgogI2luY2x1ZGUgImdkYmNtZC5oIgogI2luY2x1ZGUgImdkYmNvcmUuaCIK QEAgLTIwOCw3ICsyMDksMTAgQEAgaml0X3JlYWRlcl9sb2FkX2NvbW1hbmQg KGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgaWYgKGxvYWRlZF9qaXRf cmVhZGVyICE9IE5VTEwpCiAgICAgZXJyb3IgKF8oIkpJVCByZWFkZXIgYWxy ZWFkeSBsb2FkZWQuICBSdW4gaml0LXJlYWRlci11bmxvYWQgZmlyc3QuIikp OwogCi0gIHNvX25hbWUgPSB4c3RycHJpbnRmICgiJXMvJXMiLCBqaXRfcmVh ZGVyX2RpciwgYXJncyk7CisgIGlmIChJU19BQlNPTFVURV9QQVRIIChhcmdz KSkKKyAgICBzb19uYW1lID0geHN0cmR1cCAoYXJncyk7CisgIGVsc2UKKyAg ICBzb19uYW1lID0geHN0cnByaW50ZiAoIiVzJXMlcyIsIFNMQVNIX1NUUklO Rywgaml0X3JlYWRlcl9kaXIsIGFyZ3MpOwogICBwcmV2X2NsZWFudXAgPSBt YWtlX2NsZWFudXAgKHhmcmVlLCBzb19uYW1lKTsKIAogICBsb2FkZWRfaml0 X3JlYWRlciA9IGppdF9yZWFkZXJfbG9hZCAoc29fbmFtZSk7Ci0tIAoxLjcu MTAuNAoK --f46d043c81e8ed7d6b04d3329e0b 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_hbwq8hbo2 Content-length: 18496 RnJvbSAxMzM2OTE4YzdlOTQwNTljYWI1MWZmYWQ0ZDU2ZmJhNTBlM2ZlNmQ0 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYW5qb3kgRGFzIDxz YW5qb3lAcGxheWluZ3dpdGhwb2ludGVycy5jb20+CkRhdGU6IFR1ZSwgMTgg U2VwIDIwMTIgMDg6NTI6MDcgKzA1MzAKU3ViamVjdDogW1BBVENIIDMvM10g QWRkIGEgdGVzdCBjYXNlIGZvciB0aGUgaml0LXJlYWRlciBpbnRlcmZhY2Uu CgotLS0KIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg fCAgICA5ICsrCiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1wcm90b2Nv bC5oIHwgICA1NCArKysrKysrKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvaml0LXJlYWRlci5leHAgfCAgIDgwICsrKysrKysrKysrKysrKysrCiBn ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdGhvc3QuYyAgICAgIHwgICA2MSAr KysrKysrKysrKysrCiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdGhvc3Qu aCAgICAgIHwgICAyNyArKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv aml0cmVhZGVyLmMgICAgfCAgMTU2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCAzODcgaW5zZXJ0aW9ucygr KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv aml0LXByb3RvY29sLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL2ppdC1yZWFkZXIuZXhwCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXRob3N0LmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdGhvc3QuaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0 cmVhZGVyLmMKCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCmluZGV4IDcxN2VhMTguLjBm ZGQ4MmMgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisr KyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK KzIwMTItMDEtMTQgIFNhbmpveSBEYXMgPHNhbmpveUBwbGF5aW5nd2l0aHBv aW50ZXJzLmNvbT4KKworCSogZ2RiLmJhc2Uvaml0LXJlYWRlci5leHA6IE5l dyBmaWxlLiBUZXN0IGNhc2UgZm9yIHRoZSBqaXQtcmVhZGVyCisJaW50ZXJm YWNlLgorCSogZ2RiLmJhc2Uvaml0aG9zdC5jOiBOZXcgZmlsZS4KKwkqIGdk Yi5iYXNlL2ppdGhvc3QuaDogTmV3IGZpbGUuCisJKiBnZGIuYmFzZS9qaXRy ZWFkZXIuYyA6IE5ldyBmaWxlLgorCSogZ2RiLmJhc2Uvaml0LXByb3RvY29s Lmg6IE5ldyBmaWxlLgorCiAyMDEzLTAxLTEzICBKYW4gS3JhdG9jaHZpbCAg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+CiAKIAkqIGdkYi5jcC9wYXJz ZS1sYW5nLmNjOiBOZXcgZmlsZS4KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvaml0LXByb3RvY29sLmggYi9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ppdC1wcm90b2NvbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmY3ZjkyODUKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1wcm90b2NvbC5oCkBAIC0wLDAgKzEs NTQgQEAKKy8qIENvcHlyaWdodCAoQykgMjAwOS0yMDEzIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiBHREIuCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyNpZmRl ZiBKSVRfSAorI2Vycm9yICJXZSBkb24ndCBpbmNsdWRlIGppdC5oIGRpcmVj dGx5IHNpbmNlIHdlJ2QgbGlrZSB0aGUgaml0LXJlYWRlciB1bml0ICBcCisg ICAgICAgIHRlc3RzIHRvIGJyZWFrIGlmIHdlIG1ha2UgQUJJIGluY29tcGF0 aWJsZSBjaGFuZ2VzIHRvIHRoZSBzdHJ1Y3R1cmVzIFwKKyAgICAgICAgcmUt ZGVjbGFyZWQgaGVyZS4iCisjZW5kaWYKKworI2lmbmRlZiBKSVRfUFJPVE9D T0xfSAorI2RlZmluZSBKSVRfUFJPVE9DT0xfSAorCisjaW5jbHVkZSA8c3Rk aW50Lmg+CisKK3R5cGVkZWYgZW51bQoreworICBKSVRfTk9BQ1RJT04gPSAw LAorICBKSVRfUkVHSVNURVIsCisgIEpJVF9VTlJFR0lTVEVSCit9IGppdF9h Y3Rpb25zX3Q7CisKKworc3RydWN0IGppdF9jb2RlX2VudHJ5Cit7CisgIHN0 cnVjdCBqaXRfY29kZV9lbnRyeSAqbmV4dF9lbnRyeTsKKyAgc3RydWN0IGpp dF9jb2RlX2VudHJ5ICpwcmV2X2VudHJ5OworICB2b2lkICpzeW1maWxlX2Fk ZHI7CisgIHVpbnQ2NF90IHN5bWZpbGVfc2l6ZTsKK307CisKKworc3RydWN0 IGppdF9kZXNjcmlwdG9yCit7CisgIHVpbnQzMl90IHZlcnNpb247CisgIHVp bnQzMl90IGFjdGlvbl9mbGFnOworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkg KnJlbGV2YW50X2VudHJ5OworICBzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgKmZp cnN0X2VudHJ5OworfTsKKworI2VuZGlmIC8qIEpJVF9QUk9UT0NPTF9IICov CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdC1yZWFk ZXIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXQtcmVhZGVyLmV4 cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MDgwNTY0 Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9q aXQtcmVhZGVyLmV4cApAQCAtMCwwICsxLDgwIEBACisjIENvcHlyaWdodCAy MDEyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJz aW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisj CisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorCitzdGFuZGFyZF90ZXN0ZmlsZSBqaXRob3N0LmMKKworaWYg eyAoIVtpc3RhcmdldCB4ODZfNjQtKi0qXSAmJiAhW2lzdGFyZ2V0IGk/ODYt Ki0qXSkgfHwgIVtpc19scDY0X3RhcmdldF0gfSB7CisgICAgcmV0dXJuIC0x OworfQorCitpZiB7W3NraXBfc2hsaWJfdGVzdHNdfSB7CisgICAgcmV0dXJu IC0xCit9CisKK2lmIHsgIVtpc25hdGl2ZV0gfSB7CisgICAgcmV0dXJuIC0x Cit9CisKK2lmIHtbZ2V0X2NvbXBpbGVyX2luZm9dfSB7CisgICAgdW50ZXN0 ZWQgImNvdWxkIG5vdCBnZXQgY29tcGlsZXIgaW5mbyIKKyAgICByZXR1cm4g MQorfQorCitzZXQgaml0X2hvc3Rfc3JjICR7c3JjZmlsZX0KK3NldCBqaXRf aG9zdF9iaW4gJHtiaW5maWxlfQorCisjIFdlIGluamVjdCB0aGUgY29tcGxl dGUgcGF0aCB0byBqaXQtcmVhZGVyLmggaW50byB0aGUgc291cmNlIGZpbGUK KyMgbGVzdCB3ZSBlbmQgdXAgKGluY29ycmVjdGx5KSBidWlsZGluZyBhZ2Fp bnN0IGEgc3lzdGVtLWluc3RhbGxlZAorIyB2ZXJzaW9uLgorc2V0IGppdF9y ZWFkZXJfaGVhZGVyIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAiLi4vLi4vLi4v Z2RiL2ppdC1yZWFkZXIuaCJdCitzZXQgaml0X3JlYWRlcl9mbGFnICItREpJ VF9SRUFERVJfSD1cIiRqaXRfcmVhZGVyX2hlYWRlclwiIgorCitpZiAgeyBb Z2RiX2NvbXBpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtqaXRfaG9zdF9z cmN9IiAiJHtqaXRfaG9zdF9iaW59IiBcCisgICAgICAgZXhlY3V0YWJsZSAg W2xpc3QgZGVidWcgYWRkaXRpb25hbF9mbGFncz0kaml0X3JlYWRlcl9mbGFn XV0gIT0gIiIgfSB7CisgICAgdW50ZXN0ZWQgaml0LXJlYWRlci5leHAKKyAg ICByZXR1cm4gLTEKK30KKworc2V0IGppdF9yZWFkZXIgaml0cmVhZGVyCitz ZXQgaml0X3JlYWRlcl9zcmMgJHtqaXRfcmVhZGVyfS5jCitzZXQgaml0X3Jl YWRlcl9iaW4gW3N0YW5kYXJkX291dHB1dF9maWxlICR7aml0X3JlYWRlcn0u c29dCisKK2lmIHsgW2dkYl9jb21waWxlX3NobGliICIke3NyY2Rpcn0vJHtz dWJkaXJ9LyR7aml0X3JlYWRlcl9zcmN9IiAiJHtqaXRfcmVhZGVyX2Jpbn0i IFwKKwkgIFtsaXN0IGRlYnVnIGFkZGl0aW9uYWxfZmxhZ3M9JGppdF9yZWFk ZXJfZmxhZ11dICE9ICIiIH0geworICAgIHVudGVzdGVkIGppdC1yZWFkZXIu ZXhwCisgICAgcmV0dXJuIC0xCit9CisKK2dkYl9sb2FkX3NobGlicyAiJHtq aXRfcmVhZGVyX2Jpbn0iCisKK3Byb2Mgaml0X3JlYWRlcl90ZXN0IHt9IHsK KyAgICBnbG9iYWwgaml0X2hvc3RfYmluCisgICAgZ2xvYmFsIGppdF9yZWFk ZXJfYmluCisgICAgZ2xvYmFsIHZlcmJvc2UKKworICAgIGNsZWFuX3Jlc3Rh cnQgJGppdF9ob3N0X2JpbgorCisgICAgaWYgeyR2ZXJib3NlID4gMH0gewor CWdkYl90ZXN0X25vX291dHB1dCAic2V0IGRlYnVnIGppdCAxIgorICAgIH0K KworICAgIGdkYl90ZXN0X25vX291dHB1dCAiaml0LXJlYWRlci1sb2FkICR7 aml0X3JlYWRlcl9iaW59IiAiaml0LXJlYWRlci1sb2FkIgorICAgIGdkYl9y dW5fY21kCisgICAgZ2RiX3Rlc3QgIiIgIlByb2dyYW0gcmVjZWl2ZWQgc2ln bmFsIFNJR1RSQVAsIC4qIiAiZXhwZWN0IFNJR1RSQVAiCisKKyAgICBnZGJf dGVzdCAiYnQiICJqaXRfZnVuY3Rpb25fMDAuKiIKK30KKworaml0X3JlYWRl cl90ZXN0CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2pp dGhvc3QuYyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0aG9zdC5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxM2M0Y2QKLS0t IC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdGhv c3QuYwpAQCAtMCwwICsxLDYxIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMDkt MjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRs aWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx1bmlzdGQu aD4KKworI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisKKyNpbmNsdWRlIEpJVF9S RUFERVJfSCAgLyogUGxlYXNlIHNlZSBqaXQtcmVhZGVyLmV4cCBmb3IgYW4g ZXhwbGFuYXRpb24uICAqLworI2luY2x1ZGUgImppdGhvc3QuaCIKKyNpbmNs dWRlICJqaXQtcHJvdG9jb2wuaCIKKwordm9pZCBfX2F0dHJpYnV0ZV9fKChu b2lubGluZSkpIF9faml0X2RlYnVnX3JlZ2lzdGVyX2NvZGUgKCkgeyB9CisK K3N0cnVjdCBqaXRfZGVzY3JpcHRvciBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9y ID0geyAxLCAwLCAwLCAwIH07CitzdHJ1Y3Qgaml0X2NvZGVfZW50cnkgb25s eV9lbnRyeTsKKwordHlwZWRlZiB2b2lkIChqaXRfZnVuY3Rpb25fdCkgKCk7 CisKK2ludCBtYWluIChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgIGNo YXIgKmNvZGUgPSBtbWFwIChOVUxMLCBnZXRwYWdlc2l6ZSAoKSwgUFJPVF9X UklURSB8IFBST1RfRVhFQywKKwkJICAgICBNQVBfUFJJVkFURSB8IE1BUF9B Tk9OWU1PVVMsIC0xLCAwKTsKKyAgaml0X2Z1bmN0aW9uX3QgKmZ1bmN0aW9u ID0gKGppdF9mdW5jdGlvbl90ICopIGNvZGU7CisKKyAgY29kZVswXSA9IDB4 Y2M7IC8qIFNJR1RSQVAgICovCisgIGNvZGVbMV0gPSAweGMzOyAvKiBSRVQg ICovCisKKyAgc3RydWN0IGppdGhvc3RfYWJpICpzeW1maWxlID0gbWFsbG9j IChzaXplb2YgKHN0cnVjdCBqaXRob3N0X2FiaSkpOworICBzeW1maWxlLT5i ZWdpbiA9IGNvZGU7CisgIHN5bWZpbGUtPmVuZCA9IGNvZGUgKyAyOworCisg IG9ubHlfZW50cnkuc3ltZmlsZV9hZGRyID0gc3ltZmlsZTsKKyAgb25seV9l bnRyeS5zeW1maWxlX3NpemUgPSBzaXplb2YgKHN0cnVjdCBqaXRob3N0X2Fi aSk7CisKKyAgX19qaXRfZGVidWdfZGVzY3JpcHRvci5maXJzdF9lbnRyeSA9 ICZvbmx5X2VudHJ5OworICBfX2ppdF9kZWJ1Z19kZXNjcmlwdG9yLnJlbGV2 YW50X2VudHJ5ID0gJm9ubHlfZW50cnk7CisgIF9faml0X2RlYnVnX2Rlc2Ny aXB0b3IuYWN0aW9uX2ZsYWcgPSBKSVRfUkVHSVNURVI7CisgIF9faml0X2Rl YnVnX2Rlc2NyaXB0b3IudmVyc2lvbiA9IDE7CisgIF9faml0X2RlYnVnX3Jl Z2lzdGVyX2NvZGUgKCk7CisKKyAgZnVuY3Rpb24gKCk7CisKKyAgcmV0dXJu IDA7Cit9CmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2pp dGhvc3QuaCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvaml0aG9zdC5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyY2E4N2EKLS0t IC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ppdGhv c3QuaApAQCAtMCwwICsxLDI3IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMDkt MjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgR0RCLgorCisgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeQorICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAgIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgorCisgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLworCisjaWZuZGVmIEpJVEhPU1RfSAorI2RlZmluZSBKSVRIT1NU X0gKKworc3RydWN0IGppdGhvc3RfYWJpCit7CisgIGNvbnN0IGNoYXIgKmJl Z2luOworICBjb25zdCBjaGFyICplbmQ7Cit9OworCisjZW5kaWYgLyogSklU SE9TVF9IICovCmRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2ppdHJlYWRlci5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9qaXRyZWFk ZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzkz NWM0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS9qaXRyZWFkZXIuYwpAQCAtMCwwICsxLDE1NiBAQAorLyogQ29weXJpZ2h0 IChDKSAyMDA5LTIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisKKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4KKworICAgVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl IGl0IGFuZC9vciBtb2RpZnkKKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorICAgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0 aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor ICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls cy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2lu Y2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVk ZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIEpJVF9SRUFERVJfSCAgLyogUGxl YXNlIHNlZSBqaXQtcmVhZGVyLmV4cCBmb3IgYW4gZXhwbGFuYXRpb24uICAq LworI2luY2x1ZGUgImppdGhvc3QuaCIKKworR0RCX0RFQ0xBUkVfR1BMX0NP TVBBVElCTEVfUkVBREVSOworCitlbnVtIHJlZ2lzdGVyX21hcHBpbmcKK3sK KyAgQU1ENjRfUkEgPSAxNiwKKyAgQU1ENjRfUlNQID0gNywKK307CisKK3N0 cnVjdCByZWFkZXJfc3RhdGUKK3sKKyAgdWludHB0cl90IGNvZGVfYmVnaW47 CisgIHVpbnRwdHJfdCBjb2RlX2VuZDsKK307CisKK3N0YXRpYyBlbnVtIGdk Yl9zdGF0dXMKK3JlYWRfZGVidWdfaW5mbyAoc3RydWN0IGdkYl9yZWFkZXJf ZnVuY3MgKnNlbGYsCisJCSBzdHJ1Y3QgZ2RiX3N5bWJvbF9jYWxsYmFja3Mg KmNicywKKyAgICAgICAgICAgICAgICAgdm9pZCAqbWVtb3J5LCBsb25nIG1l bW9yeV9zeikKK3sKKyAgc3RydWN0IGppdGhvc3RfYWJpICpzeW1maWxlID0g bWVtb3J5OworICBzdHJ1Y3QgZ2RiX29iamVjdCAqb2JqZWN0ID0gY2JzLT5v YmplY3Rfb3BlbiAoY2JzKTsKKyAgc3RydWN0IGdkYl9zeW10YWIgKnN5bXRh YiA9IGNicy0+c3ltdGFiX29wZW4gKGNicywgb2JqZWN0LCAiIik7CisgIEdE Ql9DT1JFX0FERFIgYmVnaW4gPSAoR0RCX0NPUkVfQUREUikgc3ltZmlsZS0+ YmVnaW47CisgIEdEQl9DT1JFX0FERFIgZW5kID0gKEdEQl9DT1JFX0FERFIp IHN5bWZpbGUtPmVuZDsKKworICBjYnMtPmJsb2NrX29wZW4gKGNicywgc3lt dGFiLCBOVUxMLCBiZWdpbiwgZW5kLCAiaml0X2Z1bmN0aW9uXzAwIik7CisK KyAgY2JzLT5zeW10YWJfY2xvc2UgKGNicywgc3ltdGFiKTsKKyAgY2JzLT5v YmplY3RfY2xvc2UgKGNicywgb2JqZWN0KTsKKyAgcmV0dXJuIEdEQl9TVUND RVNTOworfQorCitzdGF0aWMgdm9pZAorZnJlZV9yZWdfdmFsdWUgKHN0cnVj dCBnZGJfcmVnX3ZhbHVlICp2YWx1ZSkKK3sKKyAgZnJlZSAodmFsdWUpOwor fQorCitzdGF0aWMgdm9pZAord3JpdGVfcmVnaXN0ZXIgKHN0cnVjdCBnZGJf dW53aW5kX2NhbGxiYWNrcyAqY2FsbGJhY2tzLCBpbnQgZHdfcmVnLAorICAg ICAgICAgICAgICAgIHVpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgY29uc3QgaW50 IHNpemUgPSBzaXplb2YgKHVpbnRwdHJfdCk7CisgIHN0cnVjdCBnZGJfcmVn X3ZhbHVlICpyZWdfdmFsID0KKyAgICBtYWxsb2MgKHNpemVvZiAoc3RydWN0 IGdkYl9yZWdfdmFsdWUpICsgc2l6ZSAtIDEpOworICByZWdfdmFsLT5kZWZp bmVkID0gMTsKKyAgcmVnX3ZhbC0+ZnJlZSA9IGZyZWVfcmVnX3ZhbHVlOwor CisgIG1lbWNweSAocmVnX3ZhbC0+dmFsdWUsICZ2YWx1ZSwgc2l6ZSk7Cisg IGNhbGxiYWNrcy0+cmVnX3NldCAoY2FsbGJhY2tzLCBkd19yZWcsIHJlZ192 YWwpOworfQorCitzdGF0aWMgaW50CityZWFkX3JlZ2lzdGVyIChzdHJ1Y3Qg Z2RiX3Vud2luZF9jYWxsYmFja3MgKmNhbGxiYWNrcywgaW50IGR3X3JlZywK KwkgICAgICAgdWludHB0cl90ICp2YWx1ZSkKK3sKKyAgY29uc3QgaW50IHNp emUgPSBzaXplb2YgKHVpbnRwdHJfdCk7CisgIHN0cnVjdCBnZGJfcmVnX3Zh bHVlICpyZWdfdmFsID0gY2FsbGJhY2tzLT5yZWdfZ2V0IChjYWxsYmFja3Ms IGR3X3JlZyk7CisgIGlmIChyZWdfdmFsLT5zaXplICE9IHNpemUgfHwgIXJl Z192YWwtPmRlZmluZWQpCisgICAgeworICAgICAgcmVnX3ZhbC0+ZnJlZSAo cmVnX3ZhbCk7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgIG1lbWNweSAo dmFsdWUsIHJlZ192YWwtPnZhbHVlLCBzaXplKTsKKyAgcmVnX3ZhbC0+ZnJl ZSAocmVnX3ZhbCk7CisgIHJldHVybiAxOworfQorCitzdGF0aWMgZW51bSBn ZGJfc3RhdHVzCit1bndpbmRfZnJhbWUgKHN0cnVjdCBnZGJfcmVhZGVyX2Z1 bmNzICpzZWxmLCBzdHJ1Y3QgZ2RiX3Vud2luZF9jYWxsYmFja3MgKmNicykK K3sKKyAgY29uc3QgaW50IHdvcmRfc2l6ZSA9IHNpemVvZiAodWludHB0cl90 KTsKKyAgdWludHB0cl90IHRoaXNfc3AsIHRoaXNfaXAsIHByZXZfaXAsIHBy ZXZfc3A7CisgIHN0cnVjdCByZWFkZXJfc3RhdGUgKnN0YXRlID0gKHN0cnVj dCByZWFkZXJfc3RhdGUgKikgc2VsZi0+cHJpdl9kYXRhOworCisgIGlmICgh cmVhZF9yZWdpc3RlciAoY2JzLCBBTUQ2NF9SQSwgJnRoaXNfaXApKQorICAg IHJldHVybiBHREJfRkFJTDsKKworICBpZiAodGhpc19pcCA+PSBzdGF0ZS0+ Y29kZV9lbmQgfHwgdGhpc19pcCA8IHN0YXRlLT5jb2RlX2JlZ2luKQorICAg IHJldHVybiBHREJfRkFJTDsKKworICBpZiAoIXJlYWRfcmVnaXN0ZXIgKGNi cywgQU1ENjRfUlNQLCAmdGhpc19zcCkpCisgICAgcmV0dXJuIEdEQl9GQUlM OworCisgIGlmIChjYnMtPnRhcmdldF9yZWFkICh0aGlzX3NwLCAmcHJldl9p cCwgd29yZF9zaXplKSA9PSBHREJfRkFJTCkKKyAgICByZXR1cm4gR0RCX0ZB SUw7CisKKyAgcHJldl9zcCA9IHRoaXNfc3AgKyB3b3JkX3NpemU7CisgIHdy aXRlX3JlZ2lzdGVyIChjYnMsIEFNRDY0X1JBLCBwcmV2X2lwKTsKKyAgd3Jp dGVfcmVnaXN0ZXIgKGNicywgQU1ENjRfUlNQLCBwcmV2X3NwKTsKKyAgcmV0 dXJuIEdEQl9TVUNDRVNTOworfQorCitzdGF0aWMgc3RydWN0IGdkYl9mcmFt ZV9pZAorZ2V0X2ZyYW1lX2lkIChzdHJ1Y3QgZ2RiX3JlYWRlcl9mdW5jcyAq c2VsZiwgc3RydWN0IGdkYl91bndpbmRfY2FsbGJhY2tzICpjYnMpCit7Cisg IHN0cnVjdCByZWFkZXJfc3RhdGUgKnN0YXRlID0gKHN0cnVjdCByZWFkZXJf c3RhdGUgKikgc2VsZi0+cHJpdl9kYXRhOworICBzdHJ1Y3QgZ2RiX2ZyYW1l X2lkIGZyYW1lX2lkOworCisgIHVpbnRwdHJfdCBzcDsKKyAgcmVhZF9yZWdp c3RlciAoY2JzLCBBTUQ2NF9SU1AsICZzcCk7CisKKyAgZnJhbWVfaWQuY29k ZV9hZGRyZXNzID0gKEdEQl9DT1JFX0FERFIpIHN0YXRlLT5jb2RlX2JlZ2lu OworICBmcmFtZV9pZC5zdGFja19hZGRyZXNzID0gKEdEQl9DT1JFX0FERFIp IHNwOworCisgIHJldHVybiBmcmFtZV9pZDsKK30KKworc3RhdGljIHZvaWQK K2Rlc3Ryb3lfcmVhZGVyIChzdHJ1Y3QgZ2RiX3JlYWRlcl9mdW5jcyAqc2Vs ZikKK3sKKyAgZnJlZSAoc2VsZi0+cHJpdl9kYXRhKTsKKyAgZnJlZSAoc2Vs Zik7Cit9CisKK2V4dGVybiBzdHJ1Y3QgZ2RiX3JlYWRlcl9mdW5jcyAqCitn ZGJfaW5pdF9yZWFkZXIgKHZvaWQpCit7CisgIHN0cnVjdCByZWFkZXJfc3Rh dGUgKnN0YXRlID0gbWFsbG9jIChzaXplb2YgKHN0cnVjdCByZWFkZXJfc3Rh dGUpKTsKKyAgc3RydWN0IGdkYl9yZWFkZXJfZnVuY3MgKnJlYWRlcl9mdW5j cyA9CisgICAgbWFsbG9jIChzaXplb2YgKHN0cnVjdCBnZGJfcmVhZGVyX2Z1 bmNzKSk7CisKKyAgcmVhZGVyX2Z1bmNzLT5yZWFkZXJfdmVyc2lvbiA9IEdE Ql9SRUFERVJfSU5URVJGQUNFX1ZFUlNJT047CisgIHJlYWRlcl9mdW5jcy0+ cHJpdl9kYXRhID0gc3RhdGU7CisgIHJlYWRlcl9mdW5jcy0+cmVhZCA9IHJl YWRfZGVidWdfaW5mbzsKKyAgcmVhZGVyX2Z1bmNzLT51bndpbmQgPSB1bndp bmRfZnJhbWU7CisgIHJlYWRlcl9mdW5jcy0+Z2V0X2ZyYW1lX2lkID0gZ2V0 X2ZyYW1lX2lkOworICByZWFkZXJfZnVuY3MtPmRlc3Ryb3kgPSBkZXN0cm95 X3JlYWRlcjsKKworICByZXR1cm4gcmVhZGVyX2Z1bmNzOworfQotLSAKMS43 LjEwLjQKCg== --f46d043c81e8ed7d6b04d3329e0b--