From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1637 invoked by alias); 13 Feb 2013 19:50:15 -0000 Received: (qmail 1627 invoked by uid 22791); 13 Feb 2013 19:50:15 -0000 X-SWARE-Spam-Status: No, hits=-5.2 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-f44.google.com (HELO mail-ee0-f44.google.com) (74.125.83.44) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 13 Feb 2013 19:50:03 +0000 Received: by mail-ee0-f44.google.com with SMTP id l10so908529eei.31 for ; Wed, 13 Feb 2013 11:50:02 -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=+pGx8mkso9zLiEqS0j48unGzj56CE+csG6qzwUsjeHg=; b=ThDbUM9/M5HMoxLWZtU7MpIoYsOga/bbu9jtY6jReAaYs6kFqluJqYm48HbItvE5VG oTAb66mp4m/zWBnM2PzNzXCOcKY6moEfwH8qzji+eZh3dDDRPvgweLbkFv3gUlCREpuZ lOehwrSHOM5tmc2TJuvh6BpE3G8YE0ZM0RGqOM4PRrJQwHWxyXxMNcenEnyc7fWnrC4+ 2zKW7a1OZvJwznXXJ/RC8yzgIw/xftWflYcwNtYuOUQWmLYKiurFN759bzxicwFpXC6E S7Cn/AEMJBOSTU8hEjJdRaf4LLyqheyprimDbWkOmgg+Jy9rmTqVYns7v69OZoStbF2F hI5w== MIME-Version: 1.0 X-Received: by 10.14.178.69 with SMTP id e45mr16216972eem.9.1360785002375; Wed, 13 Feb 2013 11:50:02 -0800 (PST) Received: by 10.14.207.195 with HTTP; Wed, 13 Feb 2013 11:50:02 -0800 (PST) In-Reply-To: <87r4kkks5g.fsf@fleche.redhat.com> References: <20753.38272.55066.651097@ruffy2.mtv.corp.google.com> <87txphmdt3.fsf@fleche.redhat.com> <87r4kkks5g.fsf@fleche.redhat.com> Date: Wed, 13 Feb 2013 19:50:00 -0000 Message-ID: Subject: Re: [RFC - Python Scripting] New method gdb.Architecture.disassemble From: Siva Chandra To: gdb-patches Cc: Tom Tromey , Eli Zaretskii Content-Type: multipart/mixed; boundary=047d7b622440aea8d604d5a07252 X-Gm-Message-State: ALoCoQnuN0IYK1YWIPFG0aagsZHBNg1lrZXpUi08bZnbMu41k5SigLn8qV5/JyTtcSb9uCzC0TycUkuesqiK4X5deIQ/Kq6aMLUo2rIXG1vEcvkdXkFjt3nfNl9lnB/uDUl0ZuibDlaj6Vzhe6Fr01FhKzEq3uXfcZSTU2SgMmDquCT5yA8xdGD53vJnEkS7QhkzY9sn+ijGVoi/7/+c3EwhUNmuJst4uA== 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/msg00326.txt.bz2 --047d7b622440aea8d604d5a07252 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 783 Addressed all off Eli's and Tom's comments in the attached patch. Thanks a lot Tom, for your detailed explanations. 2013-02-13 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. --047d7b622440aea8d604d5a07252 Content-Type: text/plain; charset=US-ASCII; name="arch_disassemble_patch_v5.txt" Content-Disposition: attachment; filename="arch_disassemble_patch_v5.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hd4w8qo20 Content-length: 12188 ZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dk Yi50ZXhpbmZvCmluZGV4IGUzZjMzNmUuLjg0MzY3ODEgMTAwNjQ0Ci0tLSBh L2dkYi9kb2MvZ2RiLnRleGluZm8KKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5m bwpAQCAtMjYwNDAsNiArMjYwNDAsMzcgQEAgQSBAY29kZXtnZGIuQXJjaGl0 ZWN0dXJlfSBjbGFzcyBoYXMgdGhlIGZvbGxvd2luZyBtZXRob2RzOgogUmV0 dXJuIHRoZSBuYW1lIChzdHJpbmcgdmFsdWUpIG9mIHRoZSBhcmNoaXRlY3R1 cmUuCiBAZW5kIGRlZnVuCiAKK0BkZWZ1biBBcmNoaXRlY3R1cmUuZGlzYXNz ZW1ibGUgKEB2YXJ7bG93fSwgQHZhcntoaWdofSkKK1JldHVybiBhIGxpc3Qg b2YgZGlzYXNzZW1ibGVkIGluc3RydWN0aW9ucyB3aG9zZSBzdGFydCBhZGRy ZXNzIGZhbGxzIGluCit0aGUgY2xvc2VkIG1lbW9yeSBhZGRyZXNzIGludGVy dmFsIGZyb20gQHZhcntsb3d9IHRvIEB2YXJ7aGlnaH0uICBFYWNoCitlbGVt ZW50IG9mIHRoZSBsaXN0IGlzIGEgUHl0aG9uIEBjb2Rle2RpY3R9IHdpdGgg dGhlIGZvbGxvd2luZyBzdHJpbmcKK2tleXM6CisKK0B0YWJsZSBAY29kZQor CitAaXRlbSBhZGRyCitUaGUgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGlz IGtleSBpcyBhIFB5dGhvbiBsb25nIGludGVnZXIgY2FwdHVyaW5nCit0aGUg bWVtb3J5IGFkZHJlc3Mgb2YgdGhlIGluc3RydWN0aW9uLgorCitAaXRlbSBh c20KK1RoZSB2YWx1ZSBjb3JyZXNwb25kaW5nIHRvIHRoaXMga2V5IGlzIGEg c3RyaW5nIHZhbHVlIHdoaWNoIHJlcHJlc2VudHMKK3RoZSBpbnN0cnVjdGlv biB3aXRoIGFzc2VtYmx5IGxhbmd1YWdlIG1uZW1vbmljcy4KKworQGl0ZW0g ZnVuYworVGhlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhpcyBrZXkgaXMg dGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIChzdHJpbmcKK3ZhbHVlKSB0aGUg aW5zdHJ1Y3Rpb24gYmVsb25ncyB0by4KKworQGl0ZW0gbGVuZ3RoCitUaGUg dmFsdWUgY29ycmVzcG9kaW5nIHRvIHRoaXMga2V5IGlzIHRoZSBsZW5ndGgg KGludGVnZXIgdmFsdWUpIG9mIHRoZQoraW5zdHJ1Y3Rpb24gaW4gYnl0ZXMu CisKK0BpdGVtIG9mZnNldAorVGhlIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8g dGhpcyBrZXkgaXMgdGhlIGJ5dGUgb2Zmc2V0IChpbnRlZ2VyIHZhbHVlKQor b2YgdGhlIGluc3RydWN0aW9uIHdpdGhpbiB0aGUgZnVuY3Rpb24gaXQgYmVs b25ncyB0by4KKworQGVuZCB0YWJsZQorQGVuZCBkZWZ1bgorCiBAbm9kZSBQ eXRob24gQXV0by1sb2FkaW5nCiBAc3Vic2VjdGlvbiBQeXRob24gQXV0by1s b2FkaW5nCiBAY2luZGV4IFB5dGhvbiBhdXRvLWxvYWRpbmcKZGlmZiAtLWdp dCBhL2dkYi9weXRob24vcHktYXJjaC5jIGIvZ2RiL3B5dGhvbi9weS1hcmNo LmMKaW5kZXggZWRkNTA4Zi4uMWRhN2I2NyAxMDA2NDQKLS0tIGEvZ2RiL3B5 dGhvbi9weS1hcmNoLmMKKysrIGIvZ2RiL3B5dGhvbi9weS1hcmNoLmMKQEAg LTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJkZWZzLmgiCiAjaW5jbHVkZSAi Z2RiYXJjaC5oIgogI2luY2x1ZGUgImFyY2gtdXRpbHMuaCIKKyNpbmNsdWRl ICJkaXNhc20uaCIKICNpbmNsdWRlICJweXRob24taW50ZXJuYWwuaCIKIAog dHlwZWRlZiBzdHJ1Y3QgYXJjaF9vYmplY3RfdHlwZV9vYmplY3QgewpAQCAt ODYsNiArODcsMTAyIEBAIGFyY2hweV9uYW1lIChQeU9iamVjdCAqc2VsZiwg UHlPYmplY3QgKmFyZ3MpCiAgIHJldHVybiBweV9uYW1lOwogfQogCisvKiBJ bXBsZW1lbnRhdGlvbiBvZiBnZGIuQXJjaGl0ZWN0dXJlLmRpc2Fzc2VtYmxl IChzZWxmLCBsb3csIGhpZ2gpIC0+IExpc3QuCisgICBSZXR1cm5zIGEgbGlz dCBvZiBpbnN0cnVjdGlvbnMgaW4gYSBtZW1vcnkgYWRkcmVzcyByYW5nZS4g IEVhY2ggaW5zdHJ1Y3Rpb24KKyAgIGluIHRoZSBsaXN0IGlzIGEgUHl0aG9u IGRpY3Qgb2JqZWN0LgorKi8KKworc3RhdGljIFB5T2JqZWN0ICoKK2FyY2hw eV9kaXNhc3NlbWJsZSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdz LCBQeU9iamVjdCAqa3cpCit7CisgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1td ID0geyAibG93IiwgImhpZ2giLCBOVUxMIH07CisgIENPUkVfQUREUiBsb3cs IGhpZ2g7CisgIENPUkVfQUREUiBwYzsKKyAgUHlPYmplY3QgKnJlc3VsdF9s aXN0OworICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGFyY2hfb2JqZWN0 X3RvX2dkYmFyY2ggKHNlbGYpOworCisgIGlmICghUHlBcmdfUGFyc2VUdXBs ZUFuZEtleXdvcmRzIChhcmdzLCBrdywgR0RCX1BZX0xMVV9BUkcgR0RCX1BZ X0xMVV9BUkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBrZXl3b3JkcywgJmxvdywgJmhpZ2gpKQorICAgIHJldHVybiBOVUxMOwor CisgIHJlc3VsdF9saXN0ID0gUHlMaXN0X05ldyAoMCk7CisgIGlmIChyZXN1 bHRfbGlzdCA9PSBOVUxMKQorICAgIHJldHVybiBOVUxMOworCisgIGZvciAo cGMgPSBsb3c7IHBjIDw9IGhpZ2g7KQorICAgIHsKKyAgICAgIGludCBsaW5l ID0gLTEsIHVubWFwcGVkLCBvZmZzZXQgPSAtMSwgaW5zbl9sZW4gPSAwOwor ICAgICAgY2hhciAqZmlsZW5hbWUgPSBOVUxMLCAqZm4gPSBOVUxMLCAqYXMg PSBOVUxMOworICAgICAgc3RydWN0IHVpX2ZpbGUgKm1lbWZpbGUgPSBtZW1f ZmlsZW9wZW4gKCk7CisgICAgICBQeU9iamVjdCAqaW5zbl9kaWN0ID0gUHlE aWN0X05ldyAoKTsKKyAgICAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0 aW9uIGV4Y2VwdDsKKworICAgICAgaWYgKGluc25fZGljdCA9PSBOVUxMKQor ICAgICAgICB7CisgICAgICAgICAgUHlfREVDUkVGIChyZXN1bHRfbGlzdCk7 CisgICAgICAgICAgdWlfZmlsZV9kZWxldGUgKG1lbWZpbGUpOworCisgICAg ICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgIGlmIChQeUxp c3RfQXBwZW5kIChyZXN1bHRfbGlzdCwgaW5zbl9kaWN0KSkKKyAgICAgICAg eworICAgICAgICAgIFB5X0RFQ1JFRiAocmVzdWx0X2xpc3QpOworICAgICAg ICAgIFB5X0RFQ1JFRiAoaW5zbl9kaWN0KTsKKyAgICAgICAgICB1aV9maWxl X2RlbGV0ZSAobWVtZmlsZSk7CisKKyAgICAgICAgICByZXR1cm4gTlVMTDsg IC8qIFB5TGlzdF9BcHBlbmQgU2V0cyB0aGUgZXhjZXB0aW9uLiAgKi8KKyAg ICAgICAgfQorCisgICAgICBUUllfQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01B U0tfQUxMKQorICAgICAgICB7CisgICAgICAgICAgaW5zbl9sZW4gPSBnZGJf cHJpbnRfaW5zbiAoZ2RiYXJjaCwgcGMsIG1lbWZpbGUsIE5VTEwpOworICAg ICAgICAgIC8qIEV2ZW4gdGhvdWdoIGZpbGVuYW1lLCBsaW5lIGFuZCB1bm1h cHBlZCBhcmUgcGFzc2VkIGFzIGFyZ3VtZW50cywKKyAgICAgICAgICAgICB0 aGV5IGRvIG5vdCBnaXZlIHVzIGFueSBtZWFuaW5nZnVsIHZhbHVlcyBjdXJy ZW50bHkuICAqLworICAgICAgICAgIGJ1aWxkX2FkZHJlc3Nfc3ltYm9saWMg KGdkYmFyY2gsIHBjLCAwLCAmZm4sICZvZmZzZXQsICZmaWxlbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbGluZSwgJnVubWFw cGVkKTsKKyAgICAgICAgfQorICAgICAgaWYgKGV4Y2VwdC5yZWFzb24gPCAw KQorICAgICAgICB7CisgICAgICAgICAgUHlfREVDUkVGIChyZXN1bHRfbGlz dCk7CisgICAgICAgICAgdWlfZmlsZV9kZWxldGUgKG1lbWZpbGUpOworICAg ICAgICAgIHhmcmVlIChmbik7CisgICAgICAgICAgeGZyZWUgKGZpbGVuYW1l KTsKKworICAgICAgICAgIHJldHVybiBnZGJweV9jb252ZXJ0X2V4Y2VwdGlv biAoZXhjZXB0KTsKKyAgICAgICAgfQorCisgICAgICBhcyA9IHVpX2ZpbGVf eHN0cmR1cCAobWVtZmlsZSwgTlVMTCk7CisgICAgICBpZiAoUHlEaWN0X1Nl dEl0ZW1TdHJpbmcgKGluc25fZGljdCwgImFkZHIiLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnZGJfcHlfbG9uZ19mcm9tX3Vsb25nZXN0 IChwYykpCisgICAgICAgICAgfHwgUHlEaWN0X1NldEl0ZW1TdHJpbmcgKGlu c25fZGljdCwgImFzbSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB5U3RyaW5nX0Zyb21TdHJpbmcgKGFzID8gYXMgOiAiPHVua25v d24+IikpCisgICAgICAgICAgfHwgUHlEaWN0X1NldEl0ZW1TdHJpbmcgKGlu c25fZGljdCwgImZ1bmMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQeVN0cmluZ19Gcm9tU3RyaW5nIChmbiA/IGZuIDogIjx1bmtu b3duPiIpKQorICAgICAgICAgIHx8IFB5RGljdF9TZXRJdGVtU3RyaW5nIChp bnNuX2RpY3QsICJsZW5ndGgiLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQeUludF9Gcm9tTG9uZyAoaW5zbl9sZW4pKQorICAgICAg ICAgIHx8IFB5RGljdF9TZXRJdGVtU3RyaW5nIChpbnNuX2RpY3QsICJvZmZz ZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUlu dF9Gcm9tTG9uZyAob2Zmc2V0KSkpCisgICAgICAgIHsKKyAgICAgICAgICBQ eV9ERUNSRUYgKHJlc3VsdF9saXN0KTsKKworICAgICAgICAgIHVpX2ZpbGVf ZGVsZXRlIChtZW1maWxlKTsKKyAgICAgICAgICB4ZnJlZSAoYXMpOworICAg ICAgICAgIHhmcmVlIChmbik7CisgICAgICAgICAgeGZyZWUgKGZpbGVuYW1l KTsKKworICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisKKyAg ICAgIHBjICs9IGluc25fbGVuOworICAgICAgdWlfZmlsZV9kZWxldGUgKG1l bWZpbGUpOworICAgICAgeGZyZWUgKGFzKTsKKyAgICAgIHhmcmVlIChmbik7 CisgICAgICB4ZnJlZSAoZmlsZW5hbWUpOworICAgIH0KKworICByZXR1cm4g cmVzdWx0X2xpc3Q7Cit9CisKIC8qIEluaXRpYWxpemVzIHRoZSBBcmNoaXRl Y3R1cmUgY2xhc3MgaW4gdGhlIGdkYiBtb2R1bGUuICAqLwogCiB2b2lkCkBA IC0xMDUsNiArMjAyLDEwIEBAIHN0YXRpYyBQeU1ldGhvZERlZiBhcmNoX29i amVjdF9tZXRob2RzIFtdID0gewogICB7ICJuYW1lIiwgYXJjaHB5X25hbWUs IE1FVEhfTk9BUkdTLAogICAgICJuYW1lICgpIC0+IFN0cmluZy5cblwKIFJl dHVybiB0aGUgbmFtZSBvZiB0aGUgYXJjaGl0ZWN0dXJlIGFzIGEgc3RyaW5n IHZhbHVlLiIgfSwKKyAgeyAiZGlzYXNzZW1ibGUiLCAoUHlDRnVuY3Rpb24p IGFyY2hweV9kaXNhc3NlbWJsZSwKKyAgICBNRVRIX1ZBUkFSR1MgfCBNRVRI X0tFWVdPUkRTLAorICAgICJkaXNhc3NlbWJsZSAobG93LCBoaWdoKSAtPiBM aXN0LlxuXAorUmV0dXJuIHRoZSBsaXN0IG9mIGRpc2Fzc2VtYmxlZCBpbnN0 cnVjdGlvbnMgZnJvbSBMT1cgdG8gSElHSC4iIH0sCiAgIHtOVUxMfSAgLyog U2VudGluZWwgKi8KIH07CiAKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9NYWtlZmlsZS5pbiBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9NYWtlZmlsZS5pbgppbmRleCA0ZTI4NmI1Li4wYjgxNTA3IDEwMDY0 NAotLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vTWFrZWZpbGUuaW4K KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL01ha2VmaWxlLmluCkBA IC02LDcgKzYsNyBAQCBFWEVDVVRBQkxFUyA9IHB5LXR5cGUgcHktdmFsdWUg cHktcHJldHR5cHJpbnQgcHktdGVtcGxhdGUgcHktYmxvY2sgXAogCXB5LXNo YXJlZCBweXRob24gbGliLXR5cGVzIHB5LWV2ZW50cyBweS1ldnRocmVhZHMg cHktZnJhbWUgXAogCXB5LW1pIHB5LXBwLW1haW50IHB5LXByb2dzcGFjZSBw eS1zZWN0aW9uLXNjcmlwdCBweS1vYmpmaWxlIFwKIAlweS1maW5pc2gtYnJl YWtwb2ludCBweS1maW5pc2gtYnJlYWtwb2ludDIgcHktdmFsdWUtY2MgcHkt ZXhwbG9yZSBcCi0JcHktZXhwbG9yZS1jYworCXB5LWV4cGxvcmUtY2MgcHkt YXJjaAogCiBNSVNDRUxMQU5FT1VTID0gcHktc2hhcmVkLXNsLnNsIHB5LWV2 ZW50cy1zaGxpYi5zbyBweS1ldmVudHMtc2hsaWItbm9kZWJ1Zy5zbyAKIApk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWFyY2gu YyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1hcmNoLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJmZTU1YwotLS0gL2Rl di9udWxsCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1hcmNo LmMKQEAgLTAsMCArMSwyMyBAQAorLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0 IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKworICAgQ29weXJpZ2h0IDIw MTMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisgICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgIChhdCB5b3VyIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoaXMgcHJvZ3JhbSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK KyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlICA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisqLworCitpbnQKK21haW4gKHZvaWQpCit7Cisg IHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LWFyY2guZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LWFyY2guZXhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjI1YjhiMTEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktYXJjaC5leHAKQEAgLTAsMCArMSw0NyBAQAorIyBD b3B5cmlnaHQgMjAxMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKworc3RhbmRhcmRfdGVzdGZpbGUKKworaWYg eyBbcHJlcGFyZV9mb3JfdGVzdGluZyAke3Rlc3RmaWxlfS5leHAgJHt0ZXN0 ZmlsZX0gJHtzcmNmaWxlfV0gfSB7CisgICAgcmV0dXJuIC0xCit9CisKKyMg U2tpcCBhbGwgdGVzdHMgaWYgUHl0aG9uIHNjcmlwdGluZyBpcyBub3QgZW5h YmxlZC4KK2lmIHsgW3NraXBfcHl0aG9uX3Rlc3RzXSB9IHsgY29udGludWUg fQorCitpZiAhW3J1bnRvX21haW5dIHsKKyAgIHJldHVybiAtMQorfQorCitn ZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gZnJhbWUgPSBnZGIuc2Vs ZWN0ZWRfZnJhbWUoKSIgImdldCBmcmFtZSIgMAorZ2RiX3B5X3Rlc3Rfc2ls ZW50X2NtZCAicHl0aG9uIGFyY2ggPSBmcmFtZS5hcmNoaXRlY3R1cmUoKSIg ImdldCBhcmNoIiAwCitnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24g cGMgPSBmcmFtZS5wYygpIiAiZ2V0IHBjIiAwCitnZGJfcHlfdGVzdF9zaWxl bnRfY21kICJweXRob24gaW5zbl9saXN0ID0gYXJjaC5kaXNhc3NlbWJsZShw YywgcGMpIiBcCisgICJkaXNhc3NlbWJsZSIgMAorCitnZGJfdGVzdCAicHl0 aG9uIHByaW50IGxlbihpbnNuX2xpc3QpIiAiMSIgInRlc3QgbnVtYmVyIG9m IGluc3RydWN0aW9ucyIKKworZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCAicHl0 aG9uIGluc24gPSBpbnNuX2xpc3RcWzBcXSIgImdldCBpbnN0cnVjdGlvbiIg MAorCitnZGJfdGVzdCAicHl0aG9uIHByaW50IFwiYWRkclwiIGluIGluc24i ICJUcnVlIiAidGVzdCBrZXkgYWRkciIKK2dkYl90ZXN0ICJweXRob24gcHJp bnQgXCJhc21cIiBpbiBpbnNuIiAiVHJ1ZSIgInRlc3Qga2V5IGFzbSIKK2dk Yl90ZXN0ICJweXRob24gcHJpbnQgXCJmdW5jXCIgaW4gaW5zbiIgIlRydWUi ICJ0ZXN0IGtleSBmdW5jIgorZ2RiX3Rlc3QgInB5dGhvbiBwcmludCBcImxl bmd0aFwiIGluIGluc24iICJUcnVlIiAidGVzdCBrZXkgbGVuZ3RoIgorZ2Ri X3Rlc3QgInB5dGhvbiBwcmludCBcIm9mZnNldFwiIGluIGluc24iICJUcnVl IiAidGVzdCBrZXkgb2Zmc2V0IgorCisjIE5lZ2F0aXZlIHRlc3QKK2dkYl90 ZXN0ICJweXRob24gYXJjaC5kaXNhc3NlbWJsZSgwLCAwKSIgIi4qZ2RiXC5N ZW1vcnlFcnJvci4qIiBcCisgICJ0ZXN0IGV4Y2VwdGlvbiIK --047d7b622440aea8d604d5a07252--