From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Filippo A. Salustri" Subject: latest version of perl script to pull org stuff for geektool Date: Sun, 20 Mar 2011 21:32:20 -0400 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e6dd966b4eaa7c049ef41957 Return-path: Received: from [140.186.70.92] (port=49437 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q1Typ-0004J9-M4 for emacs-orgmode@gnu.org; Sun, 20 Mar 2011 21:32:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q1Tyo-0000xE-HW for emacs-orgmode@gnu.org; Sun, 20 Mar 2011 21:32:23 -0400 Received: from mail-ww0-f49.google.com ([74.125.82.49]:40744) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q1Tyo-0000wt-6h for emacs-orgmode@gnu.org; Sun, 20 Mar 2011 21:32:22 -0400 Received: by wwc33 with SMTP id 33so6130727wwc.30 for ; Sun, 20 Mar 2011 18:32:20 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --0016e6dd966b4eaa7c049ef41957 Content-Type: text/plain; charset=ISO-8859-1 Hi all, I've tweaked the script I recently posted to be a little more complete, and I attach it here. There's a customization part that you need to tweak. I've put some doc for it inside the script. Bastien suggested it should go into Worg. It would be my pleasure to do that but as I've never used git for things like this, and I'm nearing the end of my semester, I'm too distracted with grading to do it now. I will try to get to it once I've finished that stuff. Cheers. Fil -- Filippo A. Salustri, Ph.D., P.Eng. Mechanical and Industrial Engineering Ryerson University 350 Victoria St, Toronto, ON M5B 2K3, Canada Tel: 416/979-5000 ext 7749 Fax: 416/979-5265 Email: salustri@ryerson.ca http://deseng.ryerson.ca/~fil/ --0016e6dd966b4eaa7c049ef41957 Content-Type: application/octet-stream; name="orgsummary.pl" Content-Disposition: attachment; filename="orgsummary.pl" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glipx6hk0 IyEvdXNyL2Jpbi9wZXJsCgojIFRoaXMgc2NyaXB0IHdpbGwgcHJvZHVjZSBmb3JtYXR0ZWQgdGV4 dCBvdXRwdXQgc3VpdGFibGUgZm9yIHVzZSBieSBnZWVrdG9vbC4KIyBJdCBwdWxscyBhIHJlYXNv bmFibGUgc2V0IG9mICJjdXJyZW50IiB0YXNrcyBmcm9tIHlvdXIgb3JnIGZpbGVzLgojIFRoaXMg aW5jbHVkZXM6CiMgbGFzdCB0YXNrcwojIHRhc2tzIGR1ZSB0b2RheQojIHRhc2tzIHdpdGggYSB3 YXJuaW5nIGRhdGUgaW4gdGhlIHBhc3QKIyBhbmQgYWxsIHRhc2tzIGhhdmUgb25lIG9mIGEgKGNv bmZpZ3VyYWJsZSkgc2V0IG9mIFRPRE8ga2V5d29yZHMuCgojIEl0IGRvZXMgTk9UIGhhbmRsZSBT Q0hFRFVMRUQgZGF0ZXMuCgojIFRoZSB0YXNrcyB3aWxsIGJlIHNvcnRlZCB0aHVzOgojIEZpcnN0 IGNvbWUgbGF0ZSB0YXNrcywgc29ydGVkIGJ5IGRlYWRsaW5lLgojIFRoZW4gY29tZSBkdWUgdGFz a3MKIyBUaGVuIGNvbWUgdXBjb21pbmcgdGFza3MgdGhhdCBhcmUgd2l0aGluIHRoZSB3YXJuaW5n IHBlcmlvZC4KIyBUaGVuIGNvbWUgbm9uLWRhdGVkIHRhc2tzIHNvcnRlZCBieSBwcmlvcml0eS4K CiMgVGhlIGNvZGUgaXMgcHJvYmFibHkgbm90IHZlcnkgZWZmaWNpZW50LAojIGJ1dCB0aGlzIHNj cmlwdCBpcyBXQVkgZmFzdGVyIHRoYW4gdXNpbmcgZW1hY3MgaW4gYmF0Y2ggbW9kZS4KIyBROiBX aHkgZGlkIEkgd3JpdGUgdGhpcz8KIyBBOiBXaHkgdXNlIGEgaG93aXp0ZXIgdG8ga2lsbCBhIGZs eT8KCnVzZSBEYXRlOjpDYWxjIHF3KEFkZF9EZWx0YV9ZTUQgRGVsdGFfRGF5cyBUb2RheSk7Cgoj IENVU1RPTUlaQVRJT04gUEFSVAoKIyBUaGlzIGlzIHdoZXJlIHlvdXIgb3JnIGZpbGVzIGxpdmUu CiRvcmdkaXIgPSAnL1VzZXJzL2ZpbC9Ecm9wYm94L29yZyc7CiMgVGhlIFRPRE8ga2V5d29yZHMg eW91IHdhbnQgdG8gc2VhcmNoIGZvciBpbiB0aGUgVE9ETyBsaXN0LCBlYWNoIHNlcGFyYXRlZCBi eSB8LgokdGFza1JFID0gJ0FDVElWRXxSRVZJRVd8V0lQJzsKIyBUaGUgVE9ETyBrZXl3b3JkcyB0 aGF0IGFyZSBhY2NlcHRhYmxlIGluIHRoZSBhZ2VuZGEsIHwtc2VwYXJhdGVkLgokYWdlbmRhUkUg PSAnUkVWSUVXfFRPRE98QUNUSVZFfFdBSVR8U09NRURBWXxPUEVOfFdJUHxQQVVTRUQnOwojIFNl dCB0aGlzIHRvIDAgdG8gc2hvdyBhbGwgc3VidGFza3MgdGhhdCBtYXRjaC4KJGhpZGRlbnN1YnRh c2tzID0gMTsKCiMgT0tBWTsgWU9VIENBTiBTVE9QIENVU1RPTUlaSU5HIE5PVy4gIFJFQUxMWS4K CiMgRG9uJ3QgdG91Y2ggdGhlIHRoZSByZXN0IG9mIHRoaXMgc2NyaXB0LgpAZmlsZXMgPSAoKTsK JGxpbmUgPSAnJzsKJGNhdGVnb3J5ID0gJyc7CkBvdXRwdXQgPSAoKTsKQG1uYW1lID0gKCAnJywg J0phbicsICdGZWInLCAnTWFyJywgJ0FwcicsICdNYXknLCAnSnVuJywgJ0p1bCcsICdBdWcnLAoJ ICAgJ1NlcCcsICdPY3QnLCAnTm92JywgJ0RlYycgKTsKCiMgYSBkaWFnbm9zdGljIHJvdXRpbmUu CnN1YiBidXJwIHsKICBteSAoJG1zZywgJGkpID0gQF87CiAgJGkgPX4gcy9cbi98L21zZ287CiAg cHJpbnQgIiRtc2dcbi0tLS0tLS0tLS0tLS0tLS0tLS0tXG4kaVxuPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT1cbiI7Cn0KCiMgR2l2ZW4geWVhci9tb250aC9kYXksIHJldHVybiAxLzAgaWYg dGhlIGRhdGUgaXMvaXNuJ3QgZWFybGllciB0aGFuIHRvZGF5LgpAdG9kYXkgPSBUb2RheSgpOwkJ IyBjYWNoZSB0aGUgdmFsdWUgb2YgVG9kYXkgdG8gc2F2ZSB0aW1lLgpzdWIgcGFzdER1ZSB7CiAg cmV0dXJuICggRGVsdGFfRGF5cyhAXywgQHRvZGF5KSA+PSAwICkgPyAxIDogMDsKfQoKIyBDb252 ZXJ0IGFuIG9yZyBkYXRlIGludG8gYSBkYXRlIHRoYXQgc3VtcyB0aGUgZGVhZGxpbmUgd2l0aCB0 aGUgd2FybmluZyBwZXJpb2QuCnN1YiBjYWxjc3RhcnRkYXRlIHsKICBteSAoJHllYXIsICRtb250 aCwgJGRheSwgJHdhcm5pbmcpID0gQF87CiAgbXkgQGRlbHRhID0gKCAwLCAwLCAwICk7CiAgaWYg KCAkd2FybmluZyA9fiBtL1wtKFxkKykoW2R3bXldKS8gKSB7CiAgICBteSAkd04gPSAkMTsKICAg IG15ICR3VCA9ICQyOwogICAgaWYgICAgKCAkd1QgZXEgImQiICkgeyAkZGVsdGFbMl0gPSAtJHdO OyB9CiAgICBlbHNpZiAoICR3VCBlcSAidyIgKSB7ICRkZWx0YVsyXSA9IC0kd04gKiA3OyB9CiAg ICBlbHNpZiAoICR3VCBlcSAibSIgKSB7ICRkZWx0YVsxXSA9IC0kd047IH0KICAgIGVsc2UgICAg ICAgICAgICAgICAgIHsgJGRlbHRhWzBdID0gLSR3TjsgfQogIH0KICBAZGVsdGEgPSBBZGRfRGVs dGFfWU1EICgkeWVhciwgJG1vbnRoLCAkZGF5LCBAZGVsdGEpOwogIHJldHVybiAiJGRlbHRhWzBd ICRkZWx0YVsxXSAkZGVsdGFbMl0iOwp9CgojIFJlYWQgYW4gb3JnIGZpbGUsIGZpbHRlcmluZyBv dXQgb25seSB0aGUgbGluZXMgdGhhdCBpbnRlcmVzdCB1cy4KIyBSZXR1cm4gYSBsaXN0IG9mIGxp bmVzIG9mIGludGVyZXN0LgojIEl0IGFsc28gbWVyZ2VzIGRlYWRsaW5lcyB3aXRoIHRhc2tzLgoj IEl0IGFsc28gY2FsY3VsYXRlcyAmIGluY2x1ZGVzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdhcm5p bmcgcGVyaW9kLCBpZiBhbnkuCiMgRGl0dG8gZm9yIGNhdGVnb3JpZXM6IGl0IGFzc3VtZXMgdGhh dCBhbnkgdGFzayBhZnRlciBhIGNhdGVnb3J5IHN0YXRlbWVudCwKIyBhbmQgYmVmb3JlIHRoZSBu ZXh0IGNhdGVnb3J5IHN0YXRlbWVudCwgYmVsb25ncyB0byB0aGUgZmlyc3QgY2F0ZWdvcnkuCiMg QWxzbywgcm0gYXN0ZXJpc2tzIGluIGZhdm91ciBvZiBhbiBpbnRlZ2VyIGxldmVsLgojIFRoaXMg c2ltcGxpZmllcyB0aGluZ3MgZm9yIGxhdGVyLgojIEFsc28sIHJlZm9ybWF0IHRoZSBwcmlvcml0 eSBmb3IgZWFzaWVyIGhhbmRsaW5nIGxhdGVyLgpzdWIgcmVhZGYgewogIG15ICRmID0gc2hpZnQ7 CQkjIGZpbGUgdG8gcHJvY2VzcyBnaXZlbiBhcyBhcmd1bWVudC4KICBteSBAYiA9ICgpOwogIG15 ICRjYXQgPSAkZjsKICAkY2F0ID1+IHMvXC5vcmckLy87CQkjIGRlZmF1bHQgY2F0ZWdvcnkgaXMg c3VmZml4bGVzcyBmaWxlbmFtZS4KICBvcGVuIEYsICIkb3JnZGlyLyRmIjsKICB3aGlsZSAobXkg JGwgPSA8Rj4pIHsKICAgIGNob21wICRsOwkJCSMgcmVtb3ZlIHRoZSBmaW5hbCBuZXdsaW5lLgog ICAgbXkgJGxldmVsOwogICAgaWYgKCAkbCA9fiBzL14oXCorKS8kbGV2ZWw9bGVuZ3RoKCQxKTsn JzsvZSApIHsKICAgICAgIyBUaGUgZGVmYXVsdCBwcmlvcml0eSBpcyAnXycgd2hpY2ggaXMgbGV4 aWNhbGx5IGFmdGVyIEEvQi9DLgogICAgICAjIFRoaXMgd2F5IGEgc2ltcGxlIGxleGljYWwgc29y dCB3aXRoIGRvIHRoZSByaWdodCB0aGluZy4KICAgICAgIyA8c3BhY2U+IGNvbWVzIGJlZm9yZSBB L0IvQywgd2hpY2ggd291bGQgc2NyZXcgdXAgbGV4aWNhbCBzb3J0aW5nLgogICAgICBteSAkcCA9 ICdfJzsKICAgICAgbXkgJGsgPSAnJzsKICAgICAgIyBTYXZlIHRoZSBwcmlvcml0eSAmIHJlbW92 ZSBpdCBmcm9tIHRoZSB0YXNrLgogICAgICAkbCA9fiBzL1xbXCMoQXxCfEMpXF0vJHA9JDE7Jyc7 L2U7CiAgICAgICMgU2F2ZSB0aGUga2V5d29yZCAmIHJlbW92ZSBpdCBmcm9tIHRoZSB0YXNrLgog ICAgICAkbCA9fiBzL15ccyooJHRhc2tSRXwkYWdlbmRhUkUpXHMrLyRrPSQxOycnOy9lOwogICAg ICAjIFJlYnVpbGQgdGhlIGxpbmUgaXMgYSBlYXNpZXIgdG8gcHJvY2VzcyBmb3JtIGZvciBsYXRl ci4KICAgICAgcHVzaCBAYiwgIiRjYXRcbiRsZXZlbFxuJHBcbiRrXG4kbFxuIjsKICAgIH0gZWxz aWYgKCAkbCA9fiBtL146Q0FURUdPUlk6ICguKykkLyApIHsKICAgICAgIyBJZiB3ZSd2ZSBmb3Vu ZCBhIG5ldyBjYXRlZ29yeSwgbm90ZSBpdCBmb3Igc3Vic2VxdWVudCB0YXNrcy4KICAgICAgJGNh dCA9ICQxOwogICAgfSBlbHNpZiAoICRsID1+IG0vXkRFQURMSU5FOiBcPChcZHs0fSktKFxkezJ9 KS0oXGR7Mn0pIC4uLiguKilcPi8gKSB7CiAgICAgICMgV2UndmUgZm91bmQgYSBkZWFkbGluZS4K ICAgICAgIyBGaXJzdCBhZGQgdGhlIHN0YXJ0IG9mIHRoZSB3YXJuaW5nIHBlcmlvZCAoYSAic3Rh cnQgZGF0ZSIgb2Ygc29ydHMpLgogICAgICAkYlskI2JdIC49IGNhbGNzdGFydGRhdGUgKCQxLCAk MiwgJDMsICQ0KSAuICJcbiI7CiAgICAgIG15ICR0bXAgPSAiJDEgJDIgJDNcbiI7CiAgICAgICR0 bXAgPX4gcy8gMC8gL2c7CQkjIHVnbHkgaGFjayB0byBjbGVhbiB1cCB0aGUgZGF0ZXMuCiAgICAg ICMgQWxzbyBzYXZlIHRoZSBhY3R1YWwgZHVlIGRhdGUuCiAgICAgICRiWyQjYl0gLj0gJHRtcDsK ICAgIH0KICB9CiAgY2xvc2UgRjsKICByZXR1cm4gQGI7Cn0KCiMgVGhpcyBpcyB1c2VkIGJ5IHNv cnQoKQojICRhIGFuZCAkYiBhcmUgcHJvdmlkZWQgYnkgc29ydCgpLgojIERhdGVzIGFyZSBpbiBh IFlZWVkgTU0gREQgZm9ybSwgc28gdGhhdCBsZXhpY2FsIG9yZGVyaW5nIGlzIHRoZSBzYW1lIGFz CiMgbnVtZXJpYyBvcmRlcmluZy4KIyBpLmUuIEkgZG9uJ3QgaGF2ZSB0byBjb252ZXJ0IHN0cmlu Z3MgdG8gbnVtYmVycyB0byBkbyB0aGUgc29ydC4Kc3ViIHNvcnR0YXNrcyB7CiAgbXkgKCRjYSwg JGxhLCAkcGEsICRrYSwgJHRhLCAkZGFzLCAkZGFlKSA9IHNwbGl0ICggL1xuLywgJGEgKTsKICBt eSAoJGNiLCAkbGIsICRwYiwgJGtiLCAkdGIsICRkYnMsICRkYmUpID0gc3BsaXQgKCAvXG4vLCAk YiApOwoKICBpZiAoJGRhZSkgewogICAgaWYgKCRkYmUpIHsJCQkjICRhICYgJGIgYm90aCBoYXZl IGR1ZSBkYXRlcy4KICAgICAgbXkgJHggPSAkZGFlIGNtcCAkZGJlOwogICAgICByZXR1cm4gJHgg aWYgJHg7CQkjIGkuZS4gaWYgJHggIT0gMC4KICAgICAgIyBzdGlsbCBoZXJlPyB0aGUgZW5kIGRh dGVzIGFyZSB0aGUgc2FtZS4gQ2hlY2sgcHJpb3JpdGllcy4KICAgICAgJHggPSAkcGEgY21wICRw YjsKICAgICAgcmV0dXJuICR4IGlmICR4OwogICAgICAjIHN0aWxsIGhlcmU/IHRoZSBwcmlvcml0 aWVzIHdlcmUgdGhlIHNhbWUuIENoZWNrIGNhdGVnb3J5IG5hbWUuCiAgICAgIHJldHVybiAkY2Eg Y21wICRjYjsKICAgIH0KICAgIGVsc2UgewkgICAgICMgJGEgaGFzIGEgZHVlIGRhdGUgYnV0ICRi IGRvZXNuJ3QuCiAgICAgICMgYWx3YXlzIHB1dCBkYXRlZCB0YXNrcyBhaGVhZCBvZiBub25kYXRl ZCB0YXNrcy4KICAgICAgcmV0dXJuIC0xOwogICAgfQogIH0gZWxzZSB7CQkJIyAkYSBoYXMgbm8g ZHVlIGRhdGUuCiAgICBpZiAoJGRiZSkgewkJCSMgJGIgaGFzIGEgZHVlIGRhdGUuCiAgICAgICMg YWx3YXlzIHB1dCBkYXRlZCB0YXNrcyBhaGVhZCBvZiBub25kYXRlZCB0YXNrcy4KICAgICAgcmV0 dXJuIDE7CiAgICB9IGVsc2UgewkJCSMgbmVpdGhlciAkYSBub3IgJGIgaGF2ZSBkdWUgZGF0ZXMu CiAgICAgICMgVHJ5IHNvcnRpbmcgYnkgcHJpb3JpdHkuCiAgICAgIG15ICR4ID0gJHBhIGNtcCAk cGI7CiAgICAgIHJldHVybiAkeCBpZiAkeDsKICAgICAgIyBzdGlsbCBoZXJlPyBwcmlvcml0aWVz IHdlcmUgdGhlIHNhbWUuIHRyeSBjYXRlZ29yeSBuYW1lcy4KICAgICAgcmV0dXJuICRjYSBjbXAg JGNiOwogICAgfQogIH0KfQoKIyBUaGlzIHdlZWRzIG91dCBzdWJ0YXNrcyAoaS5lLiBvbmx5IG1h aW4gdGFza3Mgd2lsbCBiZSBwcmludGVkKS4KIyBUdXJuIGl0IG9mZiBieSBzZXR0aW5nICRoaWRk ZW5zdWJ0YXNrcyB0byAwLgojIFRoZSBvcmRlciBvZiB0YXNrcyBpbiB0aGUgdGFzayBsaXN0IGlz IHRoZSBzYW1lIGFzIHRoZXkgYXBwZWFyZWQgaW4gb3JnCiMgZmlsZXMuIFdlIGNhbiB1c2UgdGhh dCBmYWN0IHRvIGV4cGVkaXRlIHRoZSBzZWxlY3Rpb24uCnN1YiBoaWRlc3VidGFza3MgewogIHJl dHVybiBAXyBpZiAhJGhpZGRlbnN1YnRhc2tzOwogIG15IEBsID0gQF87CiAgbXkgQGwyID0gKCk7 CiAgbXkgJGxldmVsID0gMTAwOwkJIyBzb21lIGFyYiBMT1cgbGV2ZWwgd2UnbGwgbmV2ZXIgcmVh Y2guCiAgbXkgJGNhdGVnb3J5ID0gJyc7CiAgZm9yIG15ICRpIChAbCkgewogICAgIyBQYXJzZSB0 aGUgdGFzay4KICAgIG15ICgkYywgJGwsICRwLCAkaywgJGQsICRzLCAkZSkgPSBzcGxpdCAoIC9c bi8sICRpICk7CiAgICBpZiAoJGMgZXEgJGNhdGVnb3J5KSB7CSMgaWYgc2FtZSBjYXRlZ29yeSBh cyBwcmV2IHRhc2ssIGFuZAogICAgICBpZiAoJGwgPD0gJGxldmVsKSB7CSMgaWYgbGV2ZWwgaXMg aGlnaGVyIHRoYW4gdGhhdCBvZiBwcmV2IHRhc2ssCgkjIGtlZXAgdGhpcyBpdGVtIChhbmQgcmVt ZW1iZXIgaXRzIGxldmVsIGZvciBmdXR1cmUgY29tcGFyaXNvbnMpLgoJJGxldmVsID0gJGw7Cglw dXNoIEBsMiwgJGk7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgewkJCSMgaWYgd2UndmUgZm91bmQg YSBuZXcgY2F0ZWdvcnksCiAgICAgICMgcmVtZW1iZXIgY2F0ZWdvcnkgJiBsZXZlbCBmb3IgZnV0 dXJlIGNvbXBhcmlzb25zLCBhbmQga2VlcCB0aGUgaXRlbS4KICAgICAgJGxldmVsID0gJGw7CiAg ICAgICRjYXRlZ29yeSA9ICRjOwogICAgICBwdXNoIEBsMiwgJGk7CiAgICB9CiAgfQogIHJldHVy biBAbDI7CQkJIyB0aGlzIGxpc3Qgb21pdHMgdGhlICdoaWRkZW4nIHRhc2tzLgp9CgojIE1BSU4g UFJPQ0VTU0lORwoKIyBnZXQgYWxsIHRoZSBvcmcgZmlsZXMKb3BlbmRpciBELCAkb3JnZGlyOwpA ZmlsZXMgPSBncmVwIHsgL1wub3JnJC8gfSByZWFkZGlyKEQpOwpjbG9zZWRpciBEOwoKIyBHYXRo ZXIgdXAgYWxsIHRoZSBwb3RlbnRpYWwgaXRlbXMuCmZvciBteSAkZmlsZSAoQGZpbGVzKSB7CiAg cHVzaCBAb3V0cHV0LCAocmVhZGYoJGZpbGUpKTsKfQoKIyBHbyB0aHJ1IHRoZSBsaXN0IG9mIHBv dGVudGlhbHMsIGRlY2lkaW5nIHdoYXQgdG8gZG8gd2l0aCBlYWNoIGl0ZW0uCnsgbXkgQGwgPSAo KTsKICBmb3IgbXkgJGkgKEBvdXRwdXQpIHsKICAgICMgU3BsaXQgdGhlIGl0ZW0gaW50byBmaWVs ZHMuCiAgICBteSAoJGNhdGVnb3J5LCAkbGV2ZWwsICRwcmlvcml0eSwgJGtleXdvcmQsICRkZXNj cmlwdGlvbiwgJHN0YXJ0LCAkZW5kKSA9CiAgICAgIHNwbGl0ICggL1xuLywgJGkgKTsKCiAgICAj IFRoaXMgaXMgaG93IHdlIGNoZWNrCiAgICAjIElmIHRoZXJlJ3MgYSBkdWVkYXRlLCBvciBhIHN0 YXJ0ZGF0ZSwKICAgICMgYW5kIGVpdGhlciBkYXRlIGhhcyBwYXN0LAogICAgIyBhbmQgaWYgdGhl IGtleXdvcmQgaXMgaW4gJGFnZW5kYVJFLCB0aGVuIGtlZXAgdGhlIGl0ZW0uCiAgICAjIElmIHRo ZXJlJ3Mgbm8gZGF0ZSwKICAgICMgYW5kIGlmIHRoZSBrZXl3b3JkIGlzIGluICR0YXNrUkUsIHRo ZW4ga2VlcCB0aGUgaXRlbS4KICAgICMgQWxsIG90aGVyIGl0ZW1zIGFyZSBvbWl0dGVkLgoKICAg IGlmICggKCAkZW5kICYmIHBhc3REdWUgKCBzcGxpdCAoICcgJywgJGVuZCApICkgKSAmJgoJICRr ZXl3b3JkID1+IG0vJGFnZW5kYVJFLyApIHsKICAgICAgcHVzaCBAbCwgJGk7CiAgICB9CiAgICBl bHNpZiAoICggJHN0YXJ0ICYmIHBhc3REdWUgKCBzcGxpdCAoICcgJywgJHN0YXJ0ICkgKSApICYm CgkgJGtleXdvcmQgPX4gbS8kYWdlbmRhUkUvICkgewogICAgICBwdXNoIEBsLCAkaTsKICAgIH0K ICAgIGVsc2lmICggISRzdGFydCAmJiAhJGVuZCAmJiAka2V5d29yZCA9fiBtLyR0YXNrUkUvICkg ewogICAgICBwdXNoIEBsLCAkaTsKICAgIH0KICB9CiAgIyBOb3cgd2UgcmVtb3ZlIHN1YnRhc2tz IChpZiBuZWVkZWQpIGFuZCBzb3J0IHRoZSBpdGVtcy4KICBAb3V0cHV0ID0gc29ydCBzb3J0dGFz a3MgaGlkZXN1YnRhc2tzKEBsKTsKfQoKIyBQcmV0dHktcHJpbnQgdGhlIHJlc3VsdHMuCmZvciBt eSAkaSAoQG91dHB1dCkgewogIG15ICgkY2F0ZWdvcnksICRsZXZlbCwgJHByaW9yaXR5LCAka2V5 d29yZCwgJGRlc2NyaXB0aW9uLCAkc3RhcnQsICRlbmQpID0KICAgIHNwbGl0ICggL1xuLywgJGkg KTsKCiAgaWYgKCAkZW5kICkgewkJCSMgY2xlYW4gdXAgdGhlIGR1ZSBkYXRlLgogICAgbXkgKCR5 LCAkbSwgJGQpID0gc3BsaXQgKCAvIC8sICRlbmQpOwogICAgJGVuZCA9IHNwcmludGYgIiVzICUw MmQiLCAkbW5hbWVbJG1dLCAkZDsKICB9CiAgcHJpbnRmICIlMTNzICVzICU2cyAlc1xuIiwKICAg ICRjYXRlZ29yeSwgJHByaW9yaXR5LCAkZW5kLCAkZGVzY3JpcHRpb247Cn0K --0016e6dd966b4eaa7c049ef41957--