From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7023 invoked by alias); 1 Jul 2011 13:24:05 -0000 Received: (qmail 7012 invoked by uid 22791); 1 Jul 2011 13:24:04 -0000 X-SWARE-Spam-Status: No, hits=-6.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 01 Jul 2011 13:23:46 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p61DNcvW014558 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 1 Jul 2011 09:23:38 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p61DNbno013768; Fri, 1 Jul 2011 09:23:38 -0400 Received: from barimba (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id p61DNWax015516; Fri, 1 Jul 2011 09:23:34 -0400 From: Tom Tromey To: Yao Qi Cc: gdb-patches@sourceware.org Subject: Re: FYI: more cleanup fixes References: <4E0D2AB0.6080307@codesourcery.com> Date: Fri, 01 Jul 2011 13:24:00 -0000 In-Reply-To: <4E0D2AB0.6080307@codesourcery.com> (Yao Qi's message of "Fri, 01 Jul 2011 10:02:24 +0800") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" 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: 2011-07/txt/msg00010.txt.bz2 --=-=-= Content-Type: text/plain Content-length: 960 Tom> I neglected to mention in the last email: if anybody wants the latest Tom> version of the plugin, just let me know. Yao> Tom, I'd like to have a try on this plugin. How can I get it? 1. Check out the Python plugin: https://fedorahosted.org/gcc-python-plugin/ 2. Apply the attached patch. 3. Build the plugin. It builds without fuss on Fedora 15 with the appropriate prereqs installed, I don't know about other distros. 4. Rebuild gdb with the plugin. I use: export PYTHONPATH=/home/tromey/Space/Trunk/gcc-python-plugin/ make -C /home/tromey/gnu/archer/build/gdb/ -k CFLAGS='-g -O -fplugin=/home/tromey/Space/Trunk/gcc-python-plugin/python.so -fplugin-arg-python-script=/home/tromey/Space/Trunk/gcc-python-plugin/check_cleanups.py' Note that the cleanup checker is not bulletproof. It gives some incorrect errors, so you have to analyze each one. If you happen to patch it for some reason, I'm interested in your changes. Tom --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=P Content-Transfer-Encoding: base64 Content-Description: the patch Content-length: 13193 ZGlmZiAtLWdpdCBhL2NoZWNrX2NsZWFudXBzLnB5IGIvY2hlY2tfY2xlYW51 cHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEx ZTQwZgotLS0gL2Rldi9udWxsCisrKyBiL2NoZWNrX2NsZWFudXBzLnB5CkBA IC0wLDAgKzEsMTczIEBACitpbXBvcnQgZ2NjCitpbXBvcnQgZ2NjdXRpbHMK K2ltcG9ydCBzeXMKKword2FudF9yYWlpX2luZm8gPSBGYWxzZQorCitkZWYg bG9nKG1zZywgaW5kZW50PTApOgorICAgIGlmIEZhbHNlOgorICAgICAgICBz eXMuc3RkZXJyLndyaXRlKCclcyVzXG4nICUgKCcgICcgKiBpbmRlbnQsIG1z ZykpCisKK2RlZiBpc19jbGVhbnVwX3R5cGUocmV0dXJuX3R5cGUpOgorICAg IGlmIG5vdCBpc2luc3RhbmNlKHJldHVybl90eXBlLCBnY2MuUG9pbnRlclR5 cGUpOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBpZiBub3QgaXNpbnN0 YW5jZShyZXR1cm5fdHlwZS5kZXJlZmVyZW5jZSwgZ2NjLlJlY29yZFR5cGUp OgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBpZiBzdHIocmV0dXJuX3R5 cGUuZGVyZWZlcmVuY2UubmFtZSkgPT0gJ2NsZWFudXAnOgorICAgICAgICBy ZXR1cm4gVHJ1ZQorICAgIHJldHVybiBGYWxzZQorCitkZWYgaXNfY29uc3Ry dWN0b3IoZGVjbCk6CisgICAgIlJldHVybiBUcnVlIGlmIHRoZSBmdW5jdGlv biBERUNMIGlzIGEgY2xlYW51cCBjb25zdHJ1Y3RvcjsgRmFsc2Ugb3RoZXJ3 aXNlIgorICAgIHJldHVybiBpc19jbGVhbnVwX3R5cGUoZGVjbC50eXBlLnR5 cGUpIGFuZCAobm90IGRlY2wubmFtZSBvciBzdHIoZGVjbC5uYW1lKSAhPSAn bWFrZV9maW5hbF9jbGVhbnVwJykKKworZGVzdHJ1Y3Rvcl9uYW1lcyA9IHNl dChbJ2RvX2NsZWFudXBzJywgJ2Rpc2NhcmRfY2xlYW51cHMnXSkKKworZGVm IGlzX2Rlc3RydWN0b3IoZGVjbCk6CisgICAgcmV0dXJuIGRlY2wubmFtZSBp biBkZXN0cnVjdG9yX25hbWVzCisKK3NwZWNpYWxfbmFtZXMgPSBzZXQoWydk b19maW5hbF9jbGVhbnVwcycsICdkaXNjYXJkX2ZpbmFsX2NsZWFudXBzJywK KyAgICAgICAgICAgICAgICAgICAgICdzYXZlX2NsZWFudXBzJywgJ3NhdmVf ZmluYWxfY2xlYW51cHMnLAorICAgICAgICAgICAgICAgICAgICAgJ3Jlc3Rv cmVfY2xlYW51cHMnLCAncmVzdG9yZV9maW5hbF9jbGVhbnVwcycsCisgICAg ICAgICAgICAgICAgICAgICAnZXhjZXB0aW9uc19zdGF0ZV9tY19pbml0J10p CisKK2RlZiBuZWVkc19zcGVjaWFsX3RyZWF0bWVudChkZWNsKToKKyAgICBy ZXR1cm4gZGVjbC5uYW1lIGluIHNwZWNpYWxfbmFtZXMKKworIyBTb21ldGlt ZXMgd2UgbmVlZCBhIG5ldyBwbGFjZWhvbGRlciBvYmplY3QgdGhhdCBpc24n dCB0aGUgc2FtZSBhcworIyBhbnl0aGluZyBlbHNlLgorY2xhc3MgRHVtbXko b2JqZWN0KToKKyAgICBwYXNzCisKK2NsYXNzIENsZWFudXBDaGVja2VyOgor ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW4pOgorICAgICAgICBzZWxmLmZ1 biA9IGZ1bgorCisgICAgZGVmIGNvbXBhcmVfdmFycyhzZWxmLCBsb2MsIGRl ZmluaXRpb24sIGFyZ3VtZW50LCBiYl9mcm9tKToKKyAgICAgICAgaWYgZGVm aW5pdGlvbiA9PSBhcmd1bWVudDoKKyAgICAgICAgICAgIHJldHVybiBUcnVl CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ3VtZW50LCBnY2MuU3Nh TmFtZSk6CisgICAgICAgICAgICBsb2coJ1tub3QgYW4gc3NhbmFtZV0nLCA0 KQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHN0bXQgPSBh cmd1bWVudC5kZWZfc3RtdAorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShz dG10LCBnY2MuR2ltcGxlUGhpKToKKyAgICAgICAgICAgIGxvZygnW2RlZmlu aXRpb24gbm90IGEgUGhpXScsIDQpCisgICAgICAgICAgICByZXR1cm4gRmFs c2UKKworICAgICAgICBmb3IgKGV4cHIsIGVkZ2UpIGluIHN0bXQuYXJnczoK KyAgICAgICAgICAgIGxvZygnZXhhbWluaW5nIGVkZ2UgZnJvbSAlZCAoYmJf ZnJvbSA9ICVkKScgJSAoZWRnZS5zcmMuaW5kZXgsIGJiX2Zyb20pLCA0KQor ICAgICAgICAgICAgaWYgZWRnZS5zcmMuaW5kZXggPT0gYmJfZnJvbToKKyAg ICAgICAgICAgICAgICBhcmd1bWVudCA9IGV4cHIKKyAgICAgICAgICAgICAg ICBsb2coJ3JlcGxhY2luZyB3aXRoICVzJyAlIHN0cihhcmd1bWVudCksIDQp CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICMgZ2NjLnBlcm1lcnJvcihsb2MsICdpbnRlcm5hbCBlcnJvciBp biBwbHVnaW4nKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAg ICAgcmV0dXJuIGRlZmluaXRpb24gPT0gYXJndW1lbnQKKworICAgIGRlZiBj b21wdXRlX21hc3RlcihzZWxmLCBiYiwgYmJfZnJvbSwgbWFzdGVyX2NsZWFu dXApOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShiYi5naW1wbGUsIGxp c3QpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgY3VybG9j ID0gc2VsZi5mdW4uZW5kCisgICAgICAgIGZvciBzdG10IGluIGJiLmdpbXBs ZToKKyAgICAgICAgICAgIGlmIHN0bXQubG9jOgorICAgICAgICAgICAgICAg IGN1cmxvYyA9IHN0bXQubG9jCisgICAgICAgICAgICBpZiBpc2luc3RhbmNl KHN0bXQsIGdjYy5HaW1wbGVDYWxsKSBhbmQgc3RtdC5mbmRlY2w6CisgICAg ICAgICAgICAgICAgaWYgaXNfY29uc3RydWN0b3Ioc3RtdC5mbmRlY2wpOgor ICAgICAgICAgICAgICAgICAgICBsb2coJ3NhdyBjb25zdHJ1Y3RvciAlcyBp biBiYj0lZCcgJSAoc3RyKHN0bXQuZm5kZWNsKSwgYmIuaW5kZXgpLCAyKQor ICAgICAgICAgICAgICAgICAgICBzZWxmLmNsZWFudXBfYXdhcmUgPSBUcnVl CisgICAgICAgICAgICAgICAgICAgIGlmIG1hc3Rlcl9jbGVhbnVwIGlzIE5v bmU6CisgICAgICAgICAgICAgICAgICAgICAgICBtYXN0ZXJfY2xlYW51cCA9 IHN0bXQubGhzCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBtYXN0ZXJf Y2xlYW51cCBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICMgTWF5YmUgdHJpZ2dlciBhbm90aGVyIGVycm9yIGxhdGVyLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1hc3Rlcl9jbGVhbnVwID0gRHVtbXko KQorICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCcuLi5pbnN0YWxsZWQg bmV3IG1hc3RlciBjbGVhbnVwICVzJyAlIHN0cihtYXN0ZXJfY2xlYW51cCks IDIpCisgICAgICAgICAgICAgICAgZWxpZiBpc19kZXN0cnVjdG9yKHN0bXQu Zm5kZWNsKToKKyAgICAgICAgICAgICAgICAgICAgaWYgc3RyKHN0bXQuZm5k ZWNsLm5hbWUpICE9ICdkb19jbGVhbnVwcyc6CisgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLm9ubHlfZG9fY2xlYW51cHNfc2VlbiA9IEZhbHNlCisg ICAgICAgICAgICAgICAgICAgIGxvZygnc2F3IGRlc3RydWN0b3IgJXMgaW4g YmI9JWQsIGJiX2Zyb209JWQsIGFyZ3VtZW50PSVzJworICAgICAgICAgICAg ICAgICAgICAgICAgJSAoc3RyKHN0bXQuZm5kZWNsLm5hbWUpLCBiYi5pbmRl eCwgYmJfZnJvbSwgc3RyKHN0bXQuYXJnc1swXSkpLAorICAgICAgICAgICAg ICAgICAgICAgICAgMikKKyAgICAgICAgICAgICAgICAgICAgIyBTZWUgaWYg d2UncmUgY2xlYW5pbmcgdXAgdGhlIG1hc3RlciBjbGVhbnVwLgorICAgICAg ICAgICAgICAgICAgICBpZiBzZWxmLmNvbXBhcmVfdmFycyhjdXJsb2MsIG1h c3Rlcl9jbGVhbnVwLCBzdG10LmFyZ3NbMF0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJiX2Zyb20pOgorICAgICAgICAg ICAgICAgICAgICAgICAgbWFzdGVyX2NsZWFudXAgPSBOb25lCisgICAgICAg ICAgICAgICAgZWxpZiBuZWVkc19zcGVjaWFsX3RyZWF0bWVudChzdG10LmZu ZGVjbCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg ICAgICAgICAgIyBnY2MucGVybWVycm9yKGN1cmxvYywgJ2Z1bmN0aW9uIG5l ZWRzIHNwZWNpYWwgdHJlYXRtZW50JykKKyAgICAgICAgICAgIGVsaWYgaXNp bnN0YW5jZShzdG10LCBnY2MuR2ltcGxlUmV0dXJuKToKKyAgICAgICAgICAg ICAgICBpZiBzZWxmLmlzX2NvbnN0cnVjdG9yOgorICAgICAgICAgICAgICAg ICAgICBpZiBub3Qgc2VsZi5jb21wYXJlX3ZhcnMoY3VybG9jLCBtYXN0ZXJf Y2xlYW51cCwgc3RtdC5yZXR2YWwsIGJiX2Zyb20pOgorICAgICAgICAgICAg ICAgICAgICAgICAgZ2NjLnBlcm1lcnJvcihjdXJsb2MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25zdHJ1Y3RvciBkb2Vz IG5vdCByZXR1cm4gbWFzdGVyIGNsZWFudXAnKQorICAgICAgICAgICAgICAg IGVsaWYgbm90IHNlbGYuaXNfc3BlY2lhbF9jb25zdHJ1Y3RvcjoKKyAgICAg ICAgICAgICAgICAgICAgbG9nKCdHT1QgSEVSRTogJyArIHN0cihtYXN0ZXJf Y2xlYW51cCksIDIpCisgICAgICAgICAgICAgICAgICAgIGlmIG1hc3Rlcl9j bGVhbnVwIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAg Z2NjLnBlcm1lcnJvcihjdXJsb2MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdjbGVhbnVwIHN0YWNrIGlzIG5vdCBlbXB0eSBh dCByZXR1cm4nKQorICAgICAgICAgICAgICAgICAgICAgICAgIyBzeXMuc3Rk ZXJyLndyaXRlKCdtYXN0ZXIgY2xlYW51cCA9ICVzLCBiYl9mcm9tID0gJWRc bicgJSAoc3RyKG1hc3Rlcl9jbGVhbnVwKSwgYmJfZnJvbSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAjIGdjY3V0aWxzLndyaXRlX2RvdF9pbWFnZShn Y2N1dGlscy5jZmdfdG9fZG90KHNlbGYuZnVuLmNmZyksCisgICAgICAgICAg ICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmZ1bi5kZWNsLm5hbWUpCisgICAgICAgIGxvZygnbm90aW5nIG1hc3RlciBj bGVhbnVwICVzIGluIGJiICVkJyAlIChzdHIobWFzdGVyX2NsZWFudXApLCBi Yi5pbmRleCksIDIpCisgICAgICAgIHJldHVybiBtYXN0ZXJfY2xlYW51cAor CisgICAgZGVmIHRyYXZlcnNlX2JicyhzZWxmLCBiYiwgYmJfZnJvbSwgZW50 cnlfbWFzdGVyKToKKyAgICAgICAgaWYgYmIuaW5kZXggaW4gc2VsZi5tYXN0 ZXJfY2xlYW51cHM6CisgICAgICAgICAgICAjIEZJWE1FIGRvIHNvbWUgY2hl Y2tpbmcKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNlbGYubWFz dGVyX2NsZWFudXBzW2JiLmluZGV4XSA9IHNlbGYuY29tcHV0ZV9tYXN0ZXIo YmIsIGJiX2Zyb20sIGVudHJ5X21hc3RlcikKKyAgICAgICAgIyBOb3cgcHJv cGFnYXRlIHRvIHN1Y2Nlc3NvciBub2Rlcy4KKyAgICAgICAgZm9yIGVkZ2Ug aW4gYmIuc3VjY3M6CisgICAgICAgICAgICBzZWxmLnRyYXZlcnNlX2Jicyhl ZGdlLmRlc3QsIGJiLmluZGV4LCBzZWxmLm1hc3Rlcl9jbGVhbnVwc1tiYi5p bmRleF0pCisgICAgICAgIHJldHVybgorCisgICAgZGVmIGNoZWNrX2NsZWFu dXBzKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5mdW4uY2ZnIG9yIG5v dCBzZWxmLmZ1bi5kZWNsOgorICAgICAgICAgICAgcmV0dXJuICdpZ25vcmVk JworICAgICAgICBpZiBpc19kZXN0cnVjdG9yKHNlbGYuZnVuLmRlY2wpOgor ICAgICAgICAgICAgcmV0dXJuICdkZXN0cnVjdG9yJworICAgICAgICBpZiBu ZWVkc19zcGVjaWFsX3RyZWF0bWVudChzZWxmLmZ1bi5kZWNsKToKKyAgICAg ICAgICAgIHJldHVybiAnc3BlY2lhbCcKKworICAgICAgICBzZWxmLmlzX2Nv bnN0cnVjdG9yID0gaXNfY29uc3RydWN0b3Ioc2VsZi5mdW4uZGVjbCkKKyAg ICAgICAgc2VsZi5pc19zcGVjaWFsX2NvbnN0cnVjdG9yID0gbm90IHNlbGYu aXNfY29uc3RydWN0b3IgYW5kIHN0cihzZWxmLmZ1bi5kZWNsLm5hbWUpLmZp bmQoJ3dpdGhfY2xlYW51cCcpID4gLTEKKyAgICAgICAgIyBZdWNrLgorICAg ICAgICBpZiBzdHIoc2VsZi5mdW4uZGVjbC5uYW1lKSA9PSAnZ2RiX3htbF9j cmVhdGVfcGFyc2VyX2FuZF9jbGVhbnVwXzEnOgorICAgICAgICAgICAgc2Vs Zi5pc19zcGVjaWFsX2NvbnN0cnVjdG9yID0gVHJ1ZQorCisgICAgICAgIGlm IHNlbGYuaXNfc3BlY2lhbF9jb25zdHJ1Y3RvcjoKKyAgICAgICAgICAgIGdj Yy5pbmZvcm0oc2VsZi5mdW4uc3RhcnQsICdmdW5jdGlvbiAlcyBpcyBhIHNw ZWNpYWwgY29uc3RydWN0b3InICUgKHNlbGYuZnVuLmRlY2wubmFtZSkpCisK KyAgICAgICAgIyBJZiB3ZSBvbmx5IHNlZSBkb19jbGVhbnVwcyBjYWxscywg YW5kIHRoaXMgZnVuY3Rpb24gaXMgbm90CisgICAgICAgICMgaXRzZWxmIGEg Y29uc3RydWN0b3IsIHRoZW4gd2UgY2FuIGNvbnZlcnQgaXQgZWFzaWx5IHRv IFJBSUkuCisgICAgICAgIHNlbGYub25seV9kb19jbGVhbnVwc19zZWVuID0g bm90IHNlbGYuaXNfY29uc3RydWN0b3IKKyAgICAgICAgIyBJZiB3ZSBldmVy IGNhbGwgYSBjb25zdHJ1Y3RvciwgdGhlbiB3ZSBhcmUgImNsZWFudXAtYXdh cmUiLgorICAgICAgICBzZWxmLmNsZWFudXBfYXdhcmUgPSBGYWxzZQorCisg ICAgICAgICMgVGhpcyBtYXBzIEJCIGluZGljZXMgdG8gdGhlIEJCJ3MgbWFz dGVyIGNsZWFudXAuCisgICAgICAgIHNlbGYubWFzdGVyX2NsZWFudXBzID0g e30KKworICAgICAgICBzZWxmLnRyYXZlcnNlX2JicyhzZWxmLmZ1bi5jZmcu ZW50cnksIC0xLCBOb25lKQorICAgICAgICBpZiB3YW50X3JhaWlfaW5mbyBh bmQgc2VsZi5vbmx5X2RvX2NsZWFudXBzX3NlZW4gYW5kIHNlbGYuY2xlYW51 cF9hd2FyZToKKyAgICAgICAgICAgIGdjYy5pbmZvcm0oc2VsZi5mdW4uZGVj bC5sb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2Z1bmN0aW9u ICVzIGNvdWxkIGJlIGNvbnZlcnRlZCB0byBSQUlJJyAlIChzZWxmLmZ1bi5k ZWNsLm5hbWUpKQorICAgICAgICBpZiBzZWxmLmlzX2NvbnN0cnVjdG9yOgor ICAgICAgICAgICAgcmV0dXJuICdjb25zdHJ1Y3RvcicKKyAgICAgICAgcmV0 dXJuICdPSycKKworZGVmIG9uX3Bhc3NfZXhlY3V0aW9uKG9wdHBhc3MsIGZ1 biwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICBpZiBvcHRwYXNzLm5hbWUgPT0g J3JlbGVhc2Vfc3NhJzoKKyAgICAgICAgaWYgZnVuLmRlY2w6CisgICAgICAg ICAgICBsb2coIlN0YXJ0aW5nICIgKyBmdW4uZGVjbC5uYW1lKQorICAgICAg ICBjaGVja2VyID0gQ2xlYW51cENoZWNrZXIoZnVuKQorICAgICAgICB3aGF0 ID0gY2hlY2tlci5jaGVja19jbGVhbnVwcygpCisgICAgICAgIGlmIGZ1bi5k ZWNsOgorICAgICAgICAgICAgbG9nKGZ1bi5kZWNsLm5hbWUgKyAnOiAnICsg d2hhdCwgMikKKworZGVmIG1haW4oKiprd2FyZ3MpOgorICAgIGdjYy5yZWdp c3Rlcl9jYWxsYmFjayhnY2MuUExVR0lOX1BBU1NfRVhFQ1VUSU9OLAorICAg ICAgICAgICAgICAgICAgICAgICAgICBvbl9wYXNzX2V4ZWN1dGlvbiwgKipr d2FyZ3MpCisKK21haW4oKQpkaWZmIC0tZ2l0IGEvZ2NjdXRpbHMucHkgYi9n Y2N1dGlscy5weQppbmRleCA0ZWJhMGYwLi5mNjEwZmZmIDEwMDY0NAotLS0g YS9nY2N1dGlscy5weQorKysgYi9nY2N1dGlscy5weQpAQCAtMzcsNyArMzcs NyBAQCBkZWYgZ2V0X3ZhcmlhYmxlc19hc19kaWN0KCk6CiAgICAgICAgIHJl c3VsdFt2YXIuZGVjbC5uYW1lXSA9IHZhcgogICAgIHJldHVybiByZXN1bHQK IAotZGVmIGludm9rZV9kb3QoZG90KToKK2RlZiB3cml0ZV9kb3RfaW1hZ2Uo ZG90LCBiYXNlbmFtZSk6CiAgICAgZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBQ b3BlbiwgUElQRQogCiAgICAgaWYgMToKQEAgLTUzLDEwICs1MywxMiBAQCBk ZWYgaW52b2tlX2RvdChkb3QpOgogICAgICAgICAjIFByZXN1bWFibHkgYSBm b250IHNlbGVjdGlvbi9mb250IG1ldHJpY3MgaXNzdWUKICAgICAgICAgZm10 ID0gJ3N2ZycKIAotICAgIHAgPSBQb3BlbihbJ2RvdCcsICctVCVzJyAlIGZt dCwgJy1vJywgJ3Rlc3QuJXMnICUgZm10XSwKKyAgICBwID0gUG9wZW4oWydk b3QnLCAnLVQlcycgJSBmbXQsICctbycsICclcy4lcycgJSAoYmFzZW5hbWUs IGZtdCldLAogICAgICAgICAgICAgICBzdGRpbj1QSVBFKQogICAgIHAuY29t bXVuaWNhdGUoZG90LmVuY29kZSgnYXNjaWknKSkKIAorZGVmIGludm9rZV9k b3QoZG90KToKKyAgICB3cml0ZV9kb3RfaW1hZ2UoZG90LCAndGVzdCcpCiAg ICAgcCA9IFBvcGVuKFsneGRnLW9wZW4nLCAndGVzdC4lcycgJSBmbXRdKQog ICAgIHAuY29tbXVuaWNhdGUoKQogCkBAIC0zMDIsMTQgKzMwNCwyMSBAQCBj bGFzcyBDZmdQcmV0dHlQcmludGVyKERvdFByZXR0eVByaW50ZXIpOgogICAg ICAgICAgICAgZm9yIHN0bXRpZHgsIHN0bXQgaW4gZW51bWVyYXRlKGJiLmdp bXBsZSk6CiAgICAgICAgICAgICAgICAgaWYgY3VybG9jICE9IHN0bXQubG9j OgogICAgICAgICAgICAgICAgICAgICBjdXJsb2MgPSBzdG10LmxvYwotICAg ICAgICAgICAgICAgICAgICBjb2RlID0gZ2V0X3NyY19mb3JfbG9jKHN0bXQu bG9jKS5yc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICBpZiBjdXJsb2M6 CisgICAgICAgICAgICAgICAgICAgICAgICBjb2RlID0gZ2V0X3NyY19mb3Jf bG9jKGN1cmxvYykucnN0cmlwKCkKKyAgICAgICAgICAgICAgICAgICAgICAg IGxpbmUgPSBjdXJsb2MubGluZQorICAgICAgICAgICAgICAgICAgICAgICAg Y29sdW1uID0gY3VybG9jLmNvbHVtbgorICAgICAgICAgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgY29kZSA9ICc8PG5vIGNv ZGU+PicKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSAwCisgICAg ICAgICAgICAgICAgICAgICAgICBjb2x1bW4gPSAwCiAgICAgICAgICAgICAg ICAgICAgIHBzZXVkb2h0bWwgPSBzZWxmLmNvZGVfdG9faHRtbChjb2RlKQog ICAgICAgICAgICAgICAgICAgICAjIHByaW50KCdwc2V1ZG9odG1sOiAlcicg JSBwc2V1ZG9odG1sKQogICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0g KCc8dHI+PHRkIGFsaWduPSJsZWZ0Ij4nCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKyBzZWxmLnRvX2h0bWwoJyU0aSAnICUgc3RtdC5sb2Mu bGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHNlbGYu dG9faHRtbCgnJTRpICcgJSBsaW5lKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsgcHNldWRvaHRtbAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsgJzxici8+JwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsgKCcgJyAqICg1ICsgc3RtdC5sb2MuY29sdW1uLTEpKSArICde JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgKCcgJyAqICg1 ICsgY29sdW1uLTEpKSArICdeJwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsgJzwvdGQ+PC90cj4nKQogICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJzx0cj48dGQ+PC90ZD4nICsg c2VsZi5zdG10X3RvX2h0bWwoc3RtdCwgc3RtdGlkeCkgKyAnPC90cj5cbicK QEAgLTQ3Myw4ICs0ODIsOCBAQCBjbGFzcyBUcmVlUHJldHR5UHJpbnRlcihE b3RQcmV0dHlQcmludGVyKToKICAgICAgICAgcmVzdWx0ICs9ICd9XG4nCiAg ICAgICAgIHJldHVybiByZXN1bHQKIAotZGVmIGNmZ190b19kb3QobmFtZSwg Y2ZnKToKLSAgICBwcCA9IENmZ1ByZXR0eVByaW50ZXIobmFtZSwgY2ZnKQor ZGVmIGNmZ190b19kb3QoY2ZnLCBuYW1lID0gTm9uZSk6CisgICAgcHAgPSBD ZmdQcmV0dHlQcmludGVyKGNmZywgbmFtZSkKICAgICByZXR1cm4gcHAudG9f ZG90KCkKIAogCg== --=-=-=--