From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28734 invoked by alias); 20 Feb 2013 12:34:36 -0000 Received: (qmail 28614 invoked by uid 22791); 20 Feb 2013 12:34:34 -0000 X-SWARE-Spam-Status: No, hits=-5.7 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,RP_MATCHES_RCVD,TW_BJ,TW_HP X-Spam-Check-By: sourceware.org Received: from mail-ee0-f43.google.com (HELO mail-ee0-f43.google.com) (74.125.83.43) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 20 Feb 2013 12:34:25 +0000 Received: by mail-ee0-f43.google.com with SMTP id c50so4084224eek.2 for ; Wed, 20 Feb 2013 04:34:23 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:x-gm-message-state; bh=K1DJ0P0p+8TXJ6pOX/X9V1aJt89v9LFHqUKdTnRBXKc=; b=YZfT7E0mm6QDlFqPv7XL03bLRkmJzKqGiB4nbV7C6KxW4HQi+WWSIdkLT2hUOBUXwX eGm6BethNvnOme6nW/zYe4nohnhh+efXxmzs007xKR7JkT5OVoRX3XAL2PzjPW42gDds KSzHCxZKidBZSiZAdPZXPtXc3wnBfEInjsPNX/9S4LEozJsD65NmW62arP5BpB9wQutO f6Q+I9PKozpWUpnv3gxaST+f1MjPKZ69/wq8ndRlQCU7DqCQi1BRAqhhXKWJ+VgDgaiy ndBk5I3teFjXLST+Y9mTvqcxmvBHe2vC8FKDHARYGg2Pf0KPbvsMMn+YlspJobg5Kg2I Ts/A== MIME-Version: 1.0 X-Received: by 10.14.183.67 with SMTP id p43mr68416500eem.10.1361363663457; Wed, 20 Feb 2013 04:34:23 -0800 (PST) Received: by 10.14.207.195 with HTTP; Wed, 20 Feb 2013 04:34:23 -0800 (PST) In-Reply-To: <83k3q4p8bu.fsf@gnu.org> References: <20753.38272.55066.651097@ruffy2.mtv.corp.google.com> <87txphmdt3.fsf@fleche.redhat.com> <87r4kkks5g.fsf@fleche.redhat.com> <20763.64197.459891.627211@ruffy2.mtv.corp.google.com> <20765.55532.700460.792597@ruffy2.mtv.corp.google.com> <83a9r4sl04.fsf@gnu.org> <83k3q4p8bu.fsf@gnu.org> Date: Wed, 20 Feb 2013 12:34:00 -0000 Message-ID: Subject: Re: [RFC - Python Scripting] New method gdb.Architecture.disassemble From: Siva Chandra To: Eli Zaretskii Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=047d7b3a805e920de504d6272d1f X-Gm-Message-State: ALoCoQl9OXceB/k/4u6J/VDSFHyiWj169WpeyVj3M2ZpSOvMzlp0HXpuPzR9Wl8AZphQZ3QDB+DIHvH7KJjHHk2WdNPrGPtvT2SkF9uzb7OEO3VtG4vTlz6DQoC0mX4zP7muLb7UaYQuDikFmJ8V3ldWm76sVFZEOnjxSVf4FnM3hFikcIlCFLNclWLDOIDSuNb/IypkVafBFl7W4hfLn2rB/6q5rSeniw== 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-02/txt/msg00530.txt.bz2 --047d7b3a805e920de504d6272d1f Content-Type: text/plain; charset=ISO-8859-1 Content-length: 958 On Tue, Feb 19, 2013 at 8:38 AM, Eli Zaretskii wrote: >> One can specify all three arguments. Does the description anywhere >> indicate otherwise? > > The text does not describe that possibility at all, so I assumed that > it cannot happen. How does the attached patch look? 2013-02-20 Siva Chandra Reddy Add a new method 'disassemble' to gdb.Architecture class. * python/py-arch.c (archpy_disassmble): Implementation of the new method gdb.Architecture.disassemble. (arch_object_methods): Add entry for the new method. doc/ * gdb.texinfo (Architectures In Python): Add description about the new method gdb.Architecture.disassemble. testsuite/ * gdb.python/py-arch.c: New test case * gdb.python/py-arch.exp: New tests to test gdb.Architecture.disassemble * gdb.python/Makefile.in: Add py-arch to the list of EXECUTABLES. --047d7b3a805e920de504d6272d1f Content-Type: text/plain; charset=US-ASCII; name="arch_disassemble_patch_v8.txt" Content-Disposition: attachment; filename="arch_disassemble_patch_v8.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hdegq4tv0 Content-length: 15482 ZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCmluZGV4IGUzZjMzNmUuLjQxN2VhNjYgMTAwNjQ0Ci0tLSBh L2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5m bwpAQCAtMjYwNDAsNiArMjYwNDAsNDIgQEAgQSBAY29kZXtnZGIuQXJjaGl0 ZWN0dXJlfSBjbGFzcyBoYXMgdGhlIGZvbGxvd2luZyBtZXRob2RzOgogUmV0 dXJuIHRoZSBuYW1lIChzdHJpbmcgdmFsdWUpIG9mIHRoZSBhcmNoaXRlY3R1 cmUuCiBAZW5kIGRlZnVuCiAKK0BkZWZ1biBBcmNoaXRlY3R1cmUuZGlzYXNz ZW1ibGUgKEB2YXJ7c3RhcnRfcGN9IEBye1t9LCBAdmFye2VuZF9wY30gQHJ7 W30sIEB2YXJ7Y291bnR9QHJ7XV19KQorUmV0dXJuIGEgbGlzdCBvZiBkaXNh c3NlbWJsZWQgaW5zdHJ1Y3Rpb25zIHN0YXJ0aW5nIGZyb20gdGhlIG1lbW9y eQorYWRkcmVzcyBAdmFye3N0YXJ0X3BjfS4gIFRoZSBvcHRpb25hbCBhcmd1 bWVudHMgQHZhcntlbmRfcGN9IGFuZAorQHZhcntjb3VudH0gZGV0ZXJtaW5l IHRoZSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIGluIHRoZSByZXR1cm5lZCBs aXN0LgorSWYgYm90aCB0aGUgb3B0aW9uYWwgYXJndW1lbnRzIEB2YXJ7ZW5k X3BjfSBhbmQgQHZhcntjb3VudH0gYXJlCitzcGVjaWZpZWQsIHRoZW4gYSBs aXN0IG9mIGF0IG1vc3QgQHZhcntjb3VudH0gZGlzYXNzZW1ibGVkIGluc3Ry dWN0aW9ucword2hvc2Ugc3RhcnQgYWRkcmVzcyBmYWxscyBpbiB0aGUgY2xv c2VkIG1lbW9yeSBhZGRyZXNzIGludGVydmFsIGZyb20KK0B2YXJ7c3RhcnRf cGN9IHRvIEB2YXJ7ZW5kX3BjfSBhcmUgcmV0dXJuZWQuICBJZiBAdmFye2Vu ZF9wY30gaXMgbm90CitzcGVjaWZpZWQsIGJ1dCBAdmFye2NvdW50fSBpcyBz cGVjaWZpZWQsIHRoZW4gQHZhcntjb3VudH0gbnVtYmVyIG9mCitpbnN0cnVj dGlvbnMgc3RhcnRpbmcgZnJvbSB0aGUgYWRkcmVzcyBAdmFye3N0YXJ0X3Bj fSBhcmUgcmV0dXJuZWQuICBJZgorQHZhcntjb3VudH0gaXMgbm90IHNwZWNp ZmllZCBidXQgQHZhcntlbmRfcGN9IGlzIHNwZWNpZmllZCwgdGhlbiBhbGwK K2luc3RydWN0aW9ucyB3aG9zZSBzdGFydCBhZGRyZXNzIGZhbGxzIGluIHRo ZSBjbG9zZWQgbWVtb3J5IGFkZHJlc3MKK2ludGVydmFsIGZyb20gQHZhcntz dGFydF9wY30gdG8gQHZhcntlbmRfcGN9IGFyZSByZXR1cm5lZC4gIElmIG5l aXRoZXIKK0B2YXJ7ZW5kX3BjfSBub3IgQHZhcntjb3VudH0gYXJlIHNwZWNp ZmllZCwgdGhlbiBhIHNpbmdsZSBpbnN0cnVjdGlvbiBhdAorQHZhcntzdGFy dF9wY30gaXMgcmV0dXJuZWQuICBGb3IgYWxsIG9mIHRoZXNlIGNhc2VzLCBl YWNoIGVsZW1lbnQgb2YgdGhlCityZXR1cm5lZCBsaXN0IGlzIGEgUHl0aG9u IEBjb2Rle2RpY3R9IHdpdGggdGhlIGZvbGxvd2luZyBzdHJpbmcga2V5czoK KworQHRhYmxlIEBjb2RlCisKK0BpdGVtIGFkZHIKK1RoZSB2YWx1ZSBjb3Jy ZXNwb25kaW5nIHRvIHRoaXMga2V5IGlzIGEgUHl0aG9uIGxvbmcgaW50ZWdl ciBjYXB0dXJpbmcKK3RoZSBtZW1vcnkgYWRkcmVzcyBvZiB0aGUgaW5zdHJ1 Y3Rpb24uCisKK0BpdGVtIGFzbQorVGhlIHZhbHVlIGNvcnJlc3BvbmRpbmcg dG8gdGhpcyBrZXkgaXMgYSBzdHJpbmcgdmFsdWUgd2hpY2ggcmVwcmVzZW50 cwordGhlIGluc3RydWN0aW9uIHdpdGggYXNzZW1ibHkgbGFuZ3VhZ2UgbW5l bW9uaWNzLiAgVGhlIGFzc2VtYmx5CitsYW5ndWFnZSBmbGF2b3IgdXNlZCBp cyB0aGUgc2FtZSBhcyB0aGF0IHNwZWNpZmllZCBieSB0aGUgY3VycmVudCBD TEkKK3ZhcmlhYmxlIEBjb2Rle2Rpc2Fzc2VtYmx5LWZsYXZvcn0uICBAeHJl ZntNYWNoaW5lIENvZGV9LgorCitAaXRlbSBsZW5ndGgKK1RoZSB2YWx1ZSBj b3JyZXNwb25kaW5nIHRvIHRoaXMga2V5IGlzIHRoZSBsZW5ndGggKGludGVn ZXIgdmFsdWUpIG9mIHRoZQoraW5zdHJ1Y3Rpb24gaW4gYnl0ZXMuCisKK0Bl bmQgdGFibGUKK0BlbmQgZGVmdW4KKwogQG5vZGUgUHl0aG9uIEF1dG8tbG9h ZGluZwogQHN1YnNlY3Rpb24gUHl0aG9uIEF1dG8tbG9hZGluZwogQGNpbmRl eCBQeXRob24gYXV0by1sb2FkaW5nCmRpZmYgLS1naXQgYS9nZGIvcHl0aG9u L3B5LWFyY2guYyBiL2dkYi9weXRob24vcHktYXJjaC5jCmluZGV4IGVkZDUw OGYuLmI0MWRlMDYgMTAwNjQ0Ci0tLSBhL2dkYi9weXRob24vcHktYXJjaC5j CisrKyBiL2dkYi9weXRob24vcHktYXJjaC5jCkBAIC0yMCw2ICsyMCw3IEBA CiAjaW5jbHVkZSAiZGVmcy5oIgogI2luY2x1ZGUgImdkYmFyY2guaCIKICNp bmNsdWRlICJhcmNoLXV0aWxzLmgiCisjaW5jbHVkZSAiZGlzYXNtLmgiCiAj aW5jbHVkZSAicHl0aG9uLWludGVybmFsLmgiCiAKIHR5cGVkZWYgc3RydWN0 IGFyY2hfb2JqZWN0X3R5cGVfb2JqZWN0IHsKQEAgLTg2LDYgKzg3LDE0NSBA QCBhcmNocHlfbmFtZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdz KQogICByZXR1cm4gcHlfbmFtZTsKIH0KIAorLyogSW1wbGVtZW50YXRpb24g b2YKKyAgIGdkYi5BcmNoaXRlY3R1cmUuZGlzYXNzZW1ibGUgKHNlbGYsIHN0 YXJ0X3BjIFssIGVuZF9wYyBbLGNvdW50XV0pIC0+IExpc3QuCisgICBSZXR1 cm5zIGEgbGlzdCBvZiBpbnN0cnVjdGlvbnMgaW4gYSBtZW1vcnkgYWRkcmVz cyByYW5nZS4gIEVhY2ggaW5zdHJ1Y3Rpb24KKyAgIGluIHRoZSBsaXN0IGlz IGEgUHl0aG9uIGRpY3Qgb2JqZWN0LgorKi8KKworc3RhdGljIFB5T2JqZWN0 ICoKK2FyY2hweV9kaXNhc3NlbWJsZSAoUHlPYmplY3QgKnNlbGYsIFB5T2Jq ZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpCit7CisgIHN0YXRpYyBjaGFyICpr ZXl3b3Jkc1tdID0geyAic3RhcnRfcGMiLCAiZW5kX3BjIiwgImNvdW50Iiwg TlVMTCB9OworICBDT1JFX0FERFIgc3RhcnQsIGVuZCA9IDA7CisgIENPUkVf QUREUiBwYzsKKyAgZ2RiX3B5X3Vsb25nZXN0IHN0YXJ0X3RlbXA7CisgIGxv bmcgY291bnQgPSAwLCBpOworICBQeU9iamVjdCAqcmVzdWx0X2xpc3QsICpl bmRfb2JqID0gTlVMTCwgKmNvdW50X29iaiA9IE5VTEw7CisgIHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoID0gYXJjaF9vYmplY3RfdG9fZ2RiYXJjaCAoc2Vs Zik7CisKKyAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMgKGFy Z3MsIGt3LCBHREJfUFlfTExVX0FSRyAifE9PIiwga2V5d29yZHMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhcnRfdGVtcCwg JmVuZF9vYmosICZjb3VudF9vYmopKQorICAgIHJldHVybiBOVUxMOworCisg IHN0YXJ0ID0gc3RhcnRfdGVtcDsKKyAgaWYgKGVuZF9vYmopCisgICAgewor ICAgICAgaWYgKFB5T2JqZWN0X1R5cGVDaGVjayAoZW5kX29iaiwgJlB5SW50 X1R5cGUpKQorICAgICAgICAvKiBJZiB0aGUgZW5kX3BjIHZhbHVlIGlzIHNw ZWNpZmllZCB3aXRob3V0IGEgdHJhaWxpbmcgJ0wnLCBlbmRfb2JqIHdpbGwK KyAgICAgICAgICAgYmUgYW4gaW50ZWdlciBhbmQgbm90IGEgbG9uZyBpbnRl Z2VyLiAgKi8KKyAgICAgICAgZW5kID0gUHlJbnRfQXNMb25nIChlbmRfb2Jq KTsKKyAgICAgIGVsc2UgaWYgKFB5T2JqZWN0X1R5cGVDaGVjayAoZW5kX29i aiwgJlB5TG9uZ19UeXBlKSkKKyAgICAgICAgZW5kID0gUHlMb25nX0FzVW5z aWduZWRMb25nTG9uZyAoZW5kX29iaik7CisgICAgICBlbHNlCisgICAgICAg IHsKKyAgICAgICAgICBQeV9ERUNSRUYgKGVuZF9vYmopOworICAgICAgICAg IFB5X1hERUNSRUYgKGNvdW50X29iaik7CisgICAgICAgICAgUHlFcnJfU2V0 U3RyaW5nIChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBfKCJBcmd1bWVudCAnZW5kX3BjJyBzaG91bGQgYmUgYSAobG9u ZykgaW50ZWdlci4iKSk7CisKKyAgICAgICAgICByZXR1cm4gTlVMTDsKKyAg ICAgICAgfQorCisgICAgICBpZiAoZW5kIDwgc3RhcnQpCisgICAgICAgIHsK KyAgICAgICAgICBQeV9ERUNSRUYgKGVuZF9vYmopOworICAgICAgICAgIFB5 X1hERUNSRUYgKGNvdW50X29iaik7CisgICAgICAgICAgUHlFcnJfU2V0U3Ry aW5nIChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgXygiQXJndW1lbnQgJ2VuZF9wYycgc2hvdWxkIGJlIGdyZWF0ZXIg dGhhbiBvciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcXVh bCB0byB0aGUgYXJndW1lbnQgJ3N0YXJ0X3BjJy4iKSk7CisKKyAgICAgICAg ICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKyAgaWYgKGNvdW50 X29iaikKKyAgICB7CisgICAgICBjb3VudCA9IFB5SW50X0FzTG9uZyAoY291 bnRfb2JqKTsKKyAgICAgIGlmIChQeUVycl9PY2N1cnJlZCAoKSB8fCBjb3Vu dCA8IDApCisgICAgICAgIHsKKyAgICAgICAgICBQeV9ERUNSRUYgKGNvdW50 X29iaik7CisgICAgICAgICAgUHlfWERFQ1JFRiAoZW5kX29iaik7CisgICAg ICAgICAgUHlFcnJfU2V0U3RyaW5nIChQeUV4Y19UeXBlRXJyb3IsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBfKCJBcmd1bWVudCAnY291bnQnIHNo b3VsZCBiZSBhbiBub24tbmVnYXRpdmUgIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiaW50ZWdlci4iKSk7CisKKyAgICAgICAgICByZXR1cm4g TlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICByZXN1bHRfbGlzdCA9IFB5 TGlzdF9OZXcgKDApOworICBpZiAocmVzdWx0X2xpc3QgPT0gTlVMTCkKKyAg ICByZXR1cm4gTlVMTDsKKworICBmb3IgKHBjID0gc3RhcnQsIGkgPSAwOwor ICAgICAgIC8qIEFsbCBhcmdzIGFyZSBzcGVjaWZpZWQuICAqLworICAgICAg IChlbmRfb2JqICYmIGNvdW50X29iaiAmJiBwYyA8PSBlbmQgJiYgaSA8IGNv dW50KQorICAgICAgIC8qIGVuZF9wYyBpcyBzcGVjaWZpZWQsIGJ1dCBubyBj b3VudC4gICovCisgICAgICAgfHwgKGVuZF9vYmogJiYgY291bnRfb2JqID09 IE5VTEwgJiYgcGMgPD0gZW5kKQorICAgICAgIC8qIGVuZF9wYyBpcyBub3Qg c3BlY2lmaWVkLCBidXQgYSBjb3VudCBpcy4gICovCisgICAgICAgfHwgKGVu ZF9vYmogPT0gTlVMTCAmJiBjb3VudF9vYmogJiYgaSA8IGNvdW50KQorICAg ICAgIC8qIEJvdGggZW5kX3BjIGFuZCBjb3VudCBhcmUgbm90IHNwZWNpZmll ZC4gICovCisgICAgICAgfHwgKGVuZF9vYmogPT0gTlVMTCAmJiBjb3VudF9v YmogPT0gTlVMTCAmJiBwYyA9PSBzdGFydCk7KQorICAgIHsKKyAgICAgIGlu dCBpbnNuX2xlbiA9IDA7CisgICAgICBjaGFyICphcyA9IE5VTEw7CisgICAg ICBzdHJ1Y3QgdWlfZmlsZSAqbWVtZmlsZSA9IG1lbV9maWxlb3BlbiAoKTsK KyAgICAgIFB5T2JqZWN0ICppbnNuX2RpY3QgPSBQeURpY3RfTmV3ICgpOwor ICAgICAgdm9sYXRpbGUgc3RydWN0IGdkYl9leGNlcHRpb24gZXhjZXB0Owor CisgICAgICBpZiAoaW5zbl9kaWN0ID09IE5VTEwpCisgICAgICAgIHsKKyAg ICAgICAgICBQeV9ERUNSRUYgKHJlc3VsdF9saXN0KTsKKyAgICAgICAgICB1 aV9maWxlX2RlbGV0ZSAobWVtZmlsZSk7CisKKyAgICAgICAgICByZXR1cm4g TlVMTDsKKyAgICAgICAgfQorICAgICAgaWYgKFB5TGlzdF9BcHBlbmQgKHJl c3VsdF9saXN0LCBpbnNuX2RpY3QpKQorICAgICAgICB7CisgICAgICAgICAg UHlfREVDUkVGIChyZXN1bHRfbGlzdCk7CisgICAgICAgICAgUHlfREVDUkVG IChpbnNuX2RpY3QpOworICAgICAgICAgIHVpX2ZpbGVfZGVsZXRlIChtZW1m aWxlKTsKKworICAgICAgICAgIHJldHVybiBOVUxMOyAgLyogUHlMaXN0X0Fw cGVuZCBTZXRzIHRoZSBleGNlcHRpb24uICAqLworICAgICAgICB9CisKKyAg ICAgIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCisgICAg ICAgIHsKKyAgICAgICAgICBpbnNuX2xlbiA9IGdkYl9wcmludF9pbnNuIChn ZGJhcmNoLCBwYywgbWVtZmlsZSwgTlVMTCk7CisgICAgICAgIH0KKyAgICAg IGlmIChleGNlcHQucmVhc29uIDwgMCkKKyAgICAgICAgeworICAgICAgICAg IFB5X0RFQ1JFRiAocmVzdWx0X2xpc3QpOworICAgICAgICAgIHVpX2ZpbGVf ZGVsZXRlIChtZW1maWxlKTsKKworICAgICAgICAgIHJldHVybiBnZGJweV9j b252ZXJ0X2V4Y2VwdGlvbiAoZXhjZXB0KTsKKyAgICAgICAgfQorCisgICAg ICBhcyA9IHVpX2ZpbGVfeHN0cmR1cCAobWVtZmlsZSwgTlVMTCk7CisgICAg ICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcgKGluc25fZGljdCwgImFkZHIi LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGJfcHlfbG9u Z19mcm9tX3Vsb25nZXN0IChwYykpCisgICAgICAgICAgfHwgUHlEaWN0X1Nl dEl0ZW1TdHJpbmcgKGluc25fZGljdCwgImFzbSIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFB5U3RyaW5nX0Zyb21TdHJpbmcgKCph cyA/IGFzIDogIjx1bmtub3duPiIpKQorICAgICAgICAgIHx8IFB5RGljdF9T ZXRJdGVtU3RyaW5nIChpbnNuX2RpY3QsICJsZW5ndGgiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQeUludF9Gcm9tTG9uZyAoaW5z bl9sZW4pKSkKKyAgICAgICAgeworICAgICAgICAgIFB5X0RFQ1JFRiAocmVz dWx0X2xpc3QpOworCisgICAgICAgICAgdWlfZmlsZV9kZWxldGUgKG1lbWZp bGUpOworICAgICAgICAgIHhmcmVlIChhcyk7CisKKyAgICAgICAgICByZXR1 cm4gTlVMTDsKKyAgICAgICAgfQorCisgICAgICBwYyArPSBpbnNuX2xlbjsK KyAgICAgIGkrKzsKKyAgICAgIHVpX2ZpbGVfZGVsZXRlIChtZW1maWxlKTsK KyAgICAgIHhmcmVlIChhcyk7CisgICAgfQorCisgIHJldHVybiByZXN1bHRf bGlzdDsKK30KKwogLyogSW5pdGlhbGl6ZXMgdGhlIEFyY2hpdGVjdHVyZSBj bGFzcyBpbiB0aGUgZ2RiIG1vZHVsZS4gICovCiAKIHZvaWQKQEAgLTEwNSw2 ICsyNDUsMTEgQEAgc3RhdGljIFB5TWV0aG9kRGVmIGFyY2hfb2JqZWN0X21l dGhvZHMgW10gPSB7CiAgIHsgIm5hbWUiLCBhcmNocHlfbmFtZSwgTUVUSF9O T0FSR1MsCiAgICAgIm5hbWUgKCkgLT4gU3RyaW5nLlxuXAogUmV0dXJuIHRo ZSBuYW1lIG9mIHRoZSBhcmNoaXRlY3R1cmUgYXMgYSBzdHJpbmcgdmFsdWUu IiB9LAorICB7ICJkaXNhc3NlbWJsZSIsIChQeUNGdW5jdGlvbikgYXJjaHB5 X2Rpc2Fzc2VtYmxlLAorICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09S RFMsCisgICAgImRpc2Fzc2VtYmxlIChzdGFydF9wYyBbLCBlbmRfcGMgWywg Y291bnRdXSkgLT4gTGlzdC5cblwKK1JldHVybiBhIGxpc3Qgb2YgYXQgbW9z dCBDT1VOVCBkaXNhc3NlbWJsZWQgaW5zdHJ1Y3Rpb25zIGZyb20gU1RBUlRf UEMgdG9cblwKK0VORF9QQy4iIH0sCiAgIHtOVUxMfSAgLyogU2VudGluZWwg Ki8KIH07CiAKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhv bi9NYWtlZmlsZS5pbiBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9NYWtl ZmlsZS5pbgppbmRleCA0ZTI4NmI1Li4wYjgxNTA3IDEwMDY0NAotLS0gYS9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFrZWZpbGUuaW4KKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL01ha2VmaWxlLmluCkBAIC02LDcgKzYs NyBAQCBFWEVDVVRBQkxFUyA9IHB5LXR5cGUgcHktdmFsdWUgcHktcHJldHR5 cHJpbnQgcHktdGVtcGxhdGUgcHktYmxvY2sgXAogCXB5LXNoYXJlZCBweXRo b24gbGliLXR5cGVzIHB5LWV2ZW50cyBweS1ldnRocmVhZHMgcHktZnJhbWUg XAogCXB5LW1pIHB5LXBwLW1haW50IHB5LXByb2dzcGFjZSBweS1zZWN0aW9u LXNjcmlwdCBweS1vYmpmaWxlIFwKIAlweS1maW5pc2gtYnJlYWtwb2ludCBw eS1maW5pc2gtYnJlYWtwb2ludDIgcHktdmFsdWUtY2MgcHktZXhwbG9yZSBc Ci0JcHktZXhwbG9yZS1jYworCXB5LWV4cGxvcmUtY2MgcHktYXJjaAogCiBN SVNDRUxMQU5FT1VTID0gcHktc2hhcmVkLXNsLnNsIHB5LWV2ZW50cy1zaGxp Yi5zbyBweS1ldmVudHMtc2hsaWItbm9kZWJ1Zy5zbyAKIApkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWFyY2guYyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1hcmNoLmMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZTJmZTU1YwotLS0gL2Rldi9udWxsCisr KyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1hcmNoLmMKQEAgLTAs MCArMSwyMyBAQAorLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IDIwMTMgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv b3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAgIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRoIHRoaXMgcHJv Z3JhbS4gIElmIG5vdCwgc2VlICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisqLworCitpbnQKK21haW4gKHZvaWQpCit7CisgIHJldHVybiAw OworfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWFyY2guZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWFyY2gu ZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNzM2 YjgKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktYXJjaC5leHAKQEAgLTAsMCArMSw1NCBAQAorIyBDb3B5cmlnaHQg MjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor IworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKworc3RhbmRhcmRfdGVzdGZpbGUKKworaWYgeyBbcHJlcGFy ZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0ZmlsZX0gJHtz cmNmaWxlfV0gfSB7CisgICAgcmV0dXJuIC0xCit9CisKKyMgU2tpcCBhbGwg dGVzdHMgaWYgUHl0aG9uIHNjcmlwdGluZyBpcyBub3QgZW5hYmxlZC4KK2lm IHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsgY29udGludWUgfQorCitpZiAh W3J1bnRvX21haW5dIHsKKyAgIHJldHVybiAtMQorfQorCitnZGJfcHlfdGVz dF9zaWxlbnRfY21kICJweXRob24gZnJhbWUgPSBnZGIuc2VsZWN0ZWRfZnJh bWUoKSIgImdldCBmcmFtZSIgMAorZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAi cHl0aG9uIGFyY2ggPSBmcmFtZS5hcmNoaXRlY3R1cmUoKSIgImdldCBhcmNo IiAwCitnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gcGMgPSBmcmFt ZS5wYygpIiAiZ2V0IHBjIiAwCitnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJw eXRob24gaW5zbl9saXN0MSA9IGFyY2guZGlzYXNzZW1ibGUocGMsIHBjLCAx KSIgXAorICAiZGlzYXNzZW1ibGUiIDAKK2dkYl9weV90ZXN0X3NpbGVudF9j bWQgInB5dGhvbiBpbnNuX2xpc3QyID0gYXJjaC5kaXNhc3NlbWJsZShwYywg cGMpIiBcCisgICJkaXNhc3NlbWJsZSBubyBjb3VudCIgMAorZ2RiX3B5X3Rl c3Rfc2lsZW50X2NtZCAicHl0aG9uIGluc25fbGlzdDMgPSBhcmNoLmRpc2Fz c2VtYmxlKHBjLCBjb3VudD0xKSIgXAorICAiZGlzYXNzZW1ibGUgbm8gZW5k IiAwCitnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gaW5zbl9saXN0 NCA9IGFyY2guZGlzYXNzZW1ibGUocGMpIiBcCisgICJkaXNhc3NlbWJsZSBu byBlbmQgbm8gY291bnQiIDAKKworZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBs ZW4oaW5zbl9saXN0MSkiICIxIiAidGVzdCBudW1iZXIgb2YgaW5zdHJ1Y3Rp b25zIDEiCitnZGJfdGVzdCAicHl0aG9uIHByaW50IGxlbihpbnNuX2xpc3Qy KSIgIjEiICJ0ZXN0IG51bWJlciBvZiBpbnN0cnVjdGlvbnMgMiIKK2dkYl90 ZXN0ICJweXRob24gcHJpbnQgbGVuKGluc25fbGlzdDMpIiAiMSIgInRlc3Qg bnVtYmVyIG9mIGluc3RydWN0aW9ucyAzIgorZ2RiX3Rlc3QgInB5dGhvbiBw cmludCBsZW4oaW5zbl9saXN0NCkiICIxIiAidGVzdCBudW1iZXIgb2YgaW5z dHJ1Y3Rpb25zIDQiCisKK2dkYl9weV90ZXN0X3NpbGVudF9jbWQgInB5dGhv biBpbnNuID0gaW5zbl9saXN0MVxbMFxdIiAiZ2V0IGluc3RydWN0aW9uIiAw CisKK2dkYl90ZXN0ICJweXRob24gcHJpbnQgXCJhZGRyXCIgaW4gaW5zbiIg IlRydWUiICJ0ZXN0IGtleSBhZGRyIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmlu dCBcImFzbVwiIGluIGluc24iICJUcnVlIiAidGVzdCBrZXkgYXNtIgorZ2Ri X3Rlc3QgInB5dGhvbiBwcmludCBcImxlbmd0aFwiIGluIGluc24iICJUcnVl IiAidGVzdCBrZXkgbGVuZ3RoIgorCisjIE5lZ2F0aXZlIHRlc3QKK2dkYl90 ZXN0ICJweXRob24gYXJjaC5kaXNhc3NlbWJsZSgwLCAwKSIgIi4qZ2RiXC5N ZW1vcnlFcnJvci4qIiBcCisgICJ0ZXN0IGV4Y2VwdGlvbiIK --047d7b3a805e920de504d6272d1f--