From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32403 invoked by alias); 26 Apr 2012 23:40:51 -0000 Received: (qmail 32395 invoked by uid 22791); 26 Apr 2012 23:40:50 -0000 X-SWARE-Spam-Status: No, hits=-4.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KHOP_RCVD_TRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail-iy0-f169.google.com (HELO mail-iy0-f169.google.com) (209.85.210.169) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 26 Apr 2012 23:40:37 +0000 Received: by iajr24 with SMTP id r24so259524iaj.0 for ; Thu, 26 Apr 2012 16:40:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-system-of-record:x-gm-message-state; bh=6a/UOq5iqTEkhAHr+0tHbynT1PVwHTEsGb0qWUc8J0I=; b=T7nPQy8F3MEck4/R/3RXJ3c8jUZL1a4utHLnhLITUizV6JyD4OYmjph1gI3GGw4hoh 3bMW3Fn6Nm4h3Gl28HVxp0Q7aeX2IzwT0Jf4NJ3dR+KE5N/WEJc09Q9RGmgMMX3NdRFK xf07lVUk5aAECj+A801QUjo3huofEKPjmtp3l+Ox8iDW+zjGV8SlZ1QRh9sbT3K66qJC XweZMQr9YSIFB2cinxbGVWp94DhBiEqbXsktbr3nu0gJOOCL7EOjsTVY0RMMKHaeJcIO HvDG5jCMOPacOfnMmN3q2049IHtXduLBRrbg7QPfYQ0w2FkqGqVcxkUlScSN07pcgE6u BUZg== Received: by 10.50.36.194 with SMTP id s2mr77370igj.46.1335483637126; Thu, 26 Apr 2012 16:40:37 -0700 (PDT) MIME-Version: 1.0 Received: by 10.50.36.194 with SMTP id s2mr77365igj.46.1335483637052; Thu, 26 Apr 2012 16:40:37 -0700 (PDT) Received: by 10.231.0.130 with HTTP; Thu, 26 Apr 2012 16:40:36 -0700 (PDT) Date: Fri, 27 Apr 2012 00:37:00 -0000 Message-ID: Subject: Script to compare pubnames, gdb index as produced by gold and gdb index as produced by gdb From: Sterling Augustine To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=14dae9340dd5ca36cd04be9d83f0 X-System-Of-Record: true X-Gm-Message-State: ALoCoQnrFtq+dcpEfWUJIodYJeCE1pf0f7PuIH2nOMaq6zsfDJGbW4CulMRT1QLkUKg17BCPV++j0tpDeKhbw1pdYlZWbjxaM+g+uCcFPYijMF0dsAbq4+uHEy4b3hdPgYv0hm4NX/4uJZ4L+taQMCyy0E7AWNALZA== 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: 2012-04/txt/msg00973.txt.bz2 --14dae9340dd5ca36cd04be9d83f0 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 891 Enclosed is patch with a python script which takes a binary and performs a three-way comparison between the elements in: 1. The pubnames and pubtypes sections as generated by gcc 2. The .gdb_index section as generated by gold 3. The .gdb_index section as generated by gdb I have found it very useful in working on the fission project and I suspect anyone else who is working on gdb_index would also find it useful. I'm very open to moving it to a different location--is there no "contrib" directory?--or not checking it in at all. In a perfect world, this script would be included in the testsuite and run against a wide variety of programs, but the configury associated with determining whether the right versions of gdb, gold and gcc are available is beyond my ken. Thanks, Sterling 012-04-26 Sterling Augustine * test_pubnames_and_indexes.py: New file. --14dae9340dd5ca36cd04be9d83f0 Content-Type: application/octet-stream; name="test_pubnames.patch" Content-Disposition: attachment; filename="test_pubnames.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h1iggcix0 Content-length: 9317 SW5kZXg6IHRlc3RfcHVibmFtZXNfYW5kX2luZGV4ZXMucHkKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpSQ1MgZmlsZTogdGVzdF9wdWJuYW1lc19hbmRfaW5k ZXhlcy5weQpkaWZmIC1OIHRlc3RfcHVibmFtZXNfYW5kX2luZGV4ZXMucHkK LS0tIC9kZXYvbnVsbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyB0 ZXN0X3B1Ym5hbWVzX2FuZF9pbmRleGVzLnB5CTI2IEFwciAyMDEyIDIzOjMx OjQ5IC0wMDAwCkBAIC0wLDAgKzEsMjA3IEBACisjISAvdXNyL2Jpbi9lbnYg cHl0aG9uCisKKyMgQ29weXJpZ2h0IChDKSAyMDExLTIwMTIgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjCisjIFRoaXMgZmlsZSBpcyBwYXJ0 IG9mIEdEQi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMg VGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyMgVGhpcyBwcm9ncmFt IHJlcXVpcmVzIHJlYWRlbGYsIGdkYiBhbmQgb2JqY29weS4gIFRoZSBkZWZh dWx0IHZhbHVlcyBhcmUgZ2RiCisjIGZyb20gdGhlIGJ1aWxkIHRyZWUgYW5k IG9iamNvcHkgYW5kIHJlYWRlbGYgZnJvbSAkUEFUSC4gIFRoZXkgbWF5IGJl CisjIG92ZXJyaWRkZW4gYnkgc2V0dGluZyBlbnZpcm9ubWVudCB2YXJpYWJs ZXMgR0RCLCBSRUFERUxGIGFuZCBPQkpDT1BZCisjIHJlc3BlY3RpdmVseS4g IFdlIGFzc3VtZSB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgZWl0aGVyICRv YmovZ2RiIG9yCisjICRvYmovZ2RiL3Rlc3RzdWl0ZS4KKyMKKyMgRXhhbXBs ZSB1c2FnZToKKyMKKyMgYmFzaCQgY2QgJG9iamRpci9nZGIvdGVzdHN1aXRl CisjIGJhc2gkIHB5dGhvbiB0ZXN0X3B1Ym5hbWVzX2FuZF9pbmRleGVzLnB5 IDxiaW5hcnlfbmFtZT4KKworIiIidGVzdF9wdWJuYW1lc19hbmRfaW5kZXhl cy5weQorCitUZXN0IHRoYXQgdGhlIGdkYl9pbmRleCBwcm9kdWNlZCBieSBn b2xkIGlzIGlkZW50aWNhbCB0byB0aGUgZ2RiX2luZGV4Citwcm9kdWNlZCBi eSBnZGIgaXRzZWxmLgorCitGdXJ0aGVyIGNoZWNrIHRoYXQgdGhlIHB1Ym5h bWVzIGFuZCBwdWJ0eXBlcyBwcm9kdWNlZCBieSBnY2MgYXJlIGlkZW50aWNh bAordG8gdGhvc2UgdGhhdCBnZGIgcHJvZHVjZXMuCisKK0ZpbmFsbHksIGNo ZWNrIHRoYXQgYWxsIHN0cmluZ3MgYXJlIGNhbm9uaWNhbGl6ZWQgaWRlbnRp Y2FsbHkuCisiIiIKKworX19hdXRob3JfXyA9ICdzYXVndXN0aW5lQGdvb2ds ZS5jb20gKFN0ZXJsaW5nIEF1Z3VzdGluZSknCisKK2ltcG9ydCBvcworaW1w b3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKKworT0JKQ09QWSA9IE5vbmUK K1JFQURFTEYgPSBOb25lCitHREIgPSBOb25lCisKK2RlZiBnZXRfcHViX2lu Zm8oZmlsZW5hbWUsIHJlYWRlbGZfb3B0aW9uKToKKyAgIiIiUGFyc2UgYW5k IHJldHVybiBhbGwgdGhlIHB1Ym5hbWVzIG9yIHB1YnR5cGVzIHByb2R1Y2Vk IGJ5IHJlYWRlbGYgd2l0aCB0aGUKKyAgZ2l2ZW4gb3B0aW9uLgorICAiIiIK KyAgcmVhZGVsZiA9IHN1YnByb2Nlc3MuUG9wZW4oW1JFQURFTEYsICctLWRl YnVnLWR1bXA9JyArIHJlYWRlbGZfb3B0aW9uLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWVdLCBzdGRvdXQ9c3Vi cHJvY2Vzcy5QSVBFKQorICBwdWJuYW1lcyA9IFtdCisKKyAgaW5fbGlzdCA9 IEZhbHNlOworICBmb3IgbGluZSBpbiByZWFkZWxmLnN0ZG91dDoKKyAgICBm aWVsZHMgPSBsaW5lLnNwbGl0KE5vbmUsIDEpCisgICAgaWYgKGxlbihmaWVs ZHMpID09IDIgYW5kIGZpZWxkc1swXSA9PSAnT2Zmc2V0JworICAgICAgICBh bmQgZmllbGRzWzFdLnN0cmlwKCkgPT0gJ05hbWUnKToKKyAgICAgIGluX2xp c3QgPSBUcnVlCisgICAgIyBFaXRoZXIgYSBibGFuay1saW5lIG9yIGEgbmV3 IExlbmd0aCBmaWVsZCB0ZXJtaW5hdGVzIHRoZSBjdXJyZW50IHNlY3Rpb24u CisgICAgZWxpZiAobGVuKGZpZWxkcykgPT0gMCBvciBmaWVsZHNbMF0gPT0g J0xlbmd0aDonKToKKyAgICAgIGluX2xpc3QgPSBGYWxzZTsKKyAgICBlbGlm IChpbl9saXN0KToKKyAgICAgIHB1Ym5hbWVzLmFwcGVuZChmaWVsZHNbMV0u c3RyaXAoKSkKKworICByZWFkZWxmLndhaXQoKQorICByZXR1cm4gcHVibmFt ZXMKKworCitkZWYgZ2V0X2dkYl9pbmRleChmaWxlbmFtZSk6CisgICIiIlVz ZSByZWFkZWxmIHRvIGR1bXAgdGhlIGdkYiBpbmRleCBhbmQgY29sbGVjdCB0 aGUgdHlwZXMgYW5kIG5hbWVzIiIiCisgIHJlYWRlbGYgPSBzdWJwcm9jZXNz LlBvcGVuKFtSRUFERUxGLCAnLS1kZWJ1Zy1kdW1wPWdkYl9pbmRleCcsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZV0sIHN0ZG91 dD1zdWJwcm9jZXNzLlBJUEUpCisgIGluZGV4X3N5bWJvbHMgPSBbXQorICBz eW1ib2xfdGFibGVfc3RhcnRlZCA9IEZhbHNlCisgIGZvciBsaW5lIGluIHJl YWRlbGYuc3Rkb3V0OgorICAgIGlmIChsaW5lID09ICdTeW1ib2wgdGFibGU6 XG4nKToKKyAgICAgIHN5bWJvbF90YWJsZV9zdGFydGVkID0gVHJ1ZTsKKyAg ICBlbGlmIChzeW1ib2xfdGFibGVfc3RhcnRlZCk6CisgICAgICAjIFJlYWRl bGYgcHJpbnRzIGdkYi1pbmRleCBsaW5lcyBmb3JtYXR0ZWQgbGlrZSBzbzoK KyAgICAgICMgWyAgNF0gdHdvOjpjMjxkb3VibGU+OjpjMjogMAorICAgICAg IyBTbyB0YWtlIHRoZSBzdHJpbmcgYmV0d2VlbiB0aGUgZmlyc3QgY2xvc2Ug YnJhY2tldCBhbmQgdGhlIGxhc3QgY29sb24uCisgICAgICBpbmRleF9zeW1i b2xzLmFwcGVuZChsaW5lW2xpbmUuZmluZCgnXScpICsgMjogbGluZS5yZmlu ZCgnOicpXSkKKworICByZWFkZWxmLndhaXQoKQorICByZXR1cm4gaW5kZXhf c3ltYm9scworCisKK2RlZiBDaGVja1NldHMobGlzdDAsIGxpc3QxLCBuYW1l MCwgbmFtZTEpOgorICAiIiJSZXBvcnQgYW55IHNldHdpc2UgZGlmZmVyZW5j ZXMgYmV0d2VlbiB0aGUgdHdvIGxpc3RzIiIiCisKKyAgaWYgbGVuKGxpc3Qw KSA9PSAwIG9yIGxlbihsaXN0MSkgPT0gMDoKKyAgICByZXR1cm4gRmFsc2UK KworICBkaWZmZXJlbmNlMCA9IHNldChsaXN0MCkgLSBzZXQobGlzdDEpCisg IGlmIGxlbihkaWZmZXJlbmNlMCkgIT0gMDoKKyAgICBwcmludCAiRWxlbWVu dHMgaW4gIiArIG5hbWUwICsgIiBidXQgbm90ICIgKyBuYW1lMSArICI6ICgi LAorICAgIHByaW50IGxlbihkaWZmZXJlbmNlMCksCisgICAgcHJpbnQgIiki CisgICAgZm9yIGVsZW1lbnQgaW4gZGlmZmVyZW5jZTA6CisgICAgICBwcmlu dCAiICAiICsgZWxlbWVudAorCisgIGRpZmZlcmVuY2UxID0gc2V0KGxpc3Qx KSAtIHNldChsaXN0MCkKKyAgaWYgbGVuKGRpZmZlcmVuY2UxKSAhPSAwOgor ICAgIHByaW50ICJFbGVtZW50cyBpbiAiICsgbmFtZTEgKyAiIGJ1dCBub3Qg IiArIG5hbWUwICsgIjogKCIsCisgICAgcHJpbnQgbGVuKGRpZmZlcmVuY2Ux KSwKKyAgICBwcmludCAiKSIKKyAgICBmb3IgZWxlbWVudCBpbiBkaWZmZXJl bmNlMToKKyAgICAgIHByaW50ICIgICIgKyBlbGVtZW50CisKKyAgaWYgKGxl bihkaWZmZXJlbmNlMCkgIT0gMCBvciBsZW4oZGlmZmVyZW5jZTEpICE9IDAp OgorICAgIHJldHVybiBUcnVlCisKKyAgcHJpbnQgbmFtZTAgKyAiIGFuZCAi ICsgbmFtZTEgKyAiIGFyZSBpZGVudGljYWwuIgorICByZXR1cm4gRmFsc2UK KworCitkZWYgZmluZF9leGVjdXRhYmxlcygpOgorICAiIiJGaW5kIHRoZSBj b3BpZXMgb2YgcmVhZGVsZiwgb2JqY29weSBhbmQgZ2RiIHRvIHVzZS4iIiIK KyAgIyBFeGVjdXRhYmxlIGZpbmRpbmcgbG9naWMgZm9sbG93cyBjYy13aXRo LWluZGV4LnNoCisgIGdsb2JhbCBSRUFERUxGCisgIFJFQURFTEYgPSBvcy5n ZXRlbnYoJ1JFQURFTEYnKQorICBpZiBSRUFERUxGIGlzIE5vbmU6CisgICAg UkVBREVMRiA9ICdyZWFkZWxmJworICBnbG9iYWwgT0JKQ09QWQorICBPQkpD T1BZID0gb3MuZ2V0ZW52KCdPQkpDT1BZJykKKyAgaWYgT0JKQ09QWSBpcyBO b25lOgorICAgIE9CSkNPUFkgPSAnb2JqY29weScKKworICBnbG9iYWwgR0RC CisgIEdEQiA9IG9zLmdldGVudignR0RCJykKKyAgaWYgKEdEQiBpcyBOb25l KToKKyAgICBpZiBvcy5wYXRoLmlzZmlsZSgnLi9nZGInKSBhbmQgb3MuYWNj ZXNzKCcuL2dkYicsIG9zLlhfT0spOgorICAgICAgR0RCID0gJy4vZ2RiJwor ICAgIGVsaWYgb3MucGF0aC5pc2ZpbGUoJy4uL2dkYicpIGFuZCBvcy5hY2Nl c3MoJy4uL2dkYicsIG9zLlhfT0spOgorICAgICAgR0RCID0gJy4uL2dkYicK KyAgICBlbGlmIG9zLnBhdGguaXNmaWxlKCcuLi8uLi9nZGInKSBhbmQgb3Mu YWNjZXNzKCcuLi8uLi9nZGInLCBvcy5YX09LKToKKyAgICAgIEdEQiA9ICcu Li8uLi9nZGInCisgICAgZWxzZToKKyAgICAgICMgUHVudCBhbmQgdXNlIHRo ZSBnZGIgaW4gdGhlIHBhdGguCisgICAgICBHREIgPSAnZ2RiJworCisKK2Rl ZiBtYWluKGFyZ3YpOgorICAiIiJUaGUgbWFpbiBzdWJwcm9ncmFtLiIiIgor ICBpZiBsZW4oYXJndikgIT0gMjoKKyAgICBwcmludCAiVXNhZ2U6IHRlc3Rf cHVibmFtZXNfYW5kX2luZGV4ZXMucHkgPGZpbGVuYW1lPiIKKyAgICBzeXMu ZXhpdCgyKQorCisgIGZpbmRfZXhlY3V0YWJsZXMoKTsKKworICAjIEdldCB0 aGUgaW5kZXggcHJvZHVjZWQgYnkgR29sZC0tSXQgc2hvdWxkIGhhdmUgYmVl biBidWlsdCBpbnRvIHRoZSBiaW5hcnkuCisgIGdvbGRfaW5kZXggPSBnZXRf Z2RiX2luZGV4KGFyZ3ZbMV0pCisKKyAgIyBDb2xsZWN0IHRoZSBwdWJuYW1l cyBhbmQgdHlwZXMgbGlzdAorICBwdWJzX2xpc3QgPSBnZXRfcHViX2luZm8o YXJndlsxXSwgInB1Ym5hbWVzIikKKyAgcHVic19saXN0ID0gcHVic19saXN0 ICsgZ2V0X3B1Yl9pbmZvKGFyZ3ZbMV0sICJwdWJ0eXBlcyIpCisKKyAgIyBH ZW5lcmF0ZSBhIC5nZGJfaW5kZXggd2l0aCBnZGIKKyAgZ2RiX2luZGV4X2Zp bGUgPSBhcmd2WzFdICsgJy5nZGItZ2VuZXJhdGVkLWluZGV4JworICBzdWJw cm9jZXNzLmNoZWNrX2NhbGwoW09CSkNPUFksICctLXJlbW92ZS1zZWN0aW9u JywgJy5nZGJfaW5kZXgnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFy Z3ZbMV0sIGdkYl9pbmRleF9maWxlXSkKKyAgc3VicHJvY2Vzcy5jaGVja19j YWxsKFtHREIsICctYmF0Y2gnLCAnLW54JywgZ2RiX2luZGV4X2ZpbGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgJy1leCcsICdzYXZlIGdkYi1pbmRl eCAnICsgb3MucGF0aC5kaXJuYW1lKGFyZ3ZbMV0pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICctZXgnLCAncXVpdCddKQorICBzdWJwcm9jZXNzLmNo ZWNrX2NhbGwoW09CSkNPUFksICctLWFkZC1zZWN0aW9uJywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAnLmdkYl9pbmRleD0nICsgZ2RiX2luZGV4X2Zp bGUgKyAnLmdkYi1pbmRleCcsCisgICAgICAgICAgICAgICAgICAgICAgICAg Z2RiX2luZGV4X2ZpbGVdKQorICBnZGJfaW5kZXggPSBnZXRfZ2RiX2luZGV4 KGdkYl9pbmRleF9maWxlKQorICBvcy5yZW1vdmUoZ2RiX2luZGV4X2ZpbGUp CisgIG9zLnJlbW92ZShnZGJfaW5kZXhfZmlsZSArICcuZ2RiLWluZGV4JykK KworICBmYWlsZWQgPSBGYWxzZQorICBnZGJfaW5kZXguc29ydCgpCisgIGdv bGRfaW5kZXguc29ydCgpCisgIHB1YnNfbGlzdC5zb3J0KCkKKworICAjIEZp bmQgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhcmlvdXMgaW5kaWNl cy4KKyAgaWYgbGVuKGdvbGRfaW5kZXgpID09IDA6CisgICAgcHJpbnQgIkdv bGQgaW5kZXggaXMgZW1wdHkiCisgICAgZmFpbGVkIHw9IFRydWUKKworICBp ZiBsZW4oZ2RiX2luZGV4KSA9PSAwOgorICAgIHByaW50ICJHZGIgaW5kZXgg aXMgZW1wdHkiCisgICAgZmFpbGVkIHw9IFRydWUKKworICBpZiBsZW4ocHVi c19saXN0KSA9PSAwOgorICAgIHByaW50ICJQdWJzIGxpc3QgaXMgZW1wdHki CisgICAgZmFpbGVkIHw9IFRydWUKKworICBmYWlsZWQgfD0gQ2hlY2tTZXRz KGdkYl9pbmRleCwgZ29sZF9pbmRleCwgImdkYiBpbmRleCIsICJnb2xkIGlu ZGV4IikKKyAgZmFpbGVkIHw9IENoZWNrU2V0cyhwdWJzX2xpc3QsIGdvbGRf aW5kZXgsICJwdWJzIGxpc3QiLCAiZ29sZCBpbmRleCIpCisgIGZhaWxlZCB8 PSBDaGVja1NldHMocHVic19saXN0LCBnZGJfaW5kZXgsICJwdWJzIGxpc3Qi LCAiZ2RiIGluZGV4IikKKworICBpZiBmYWlsZWQ6CisgICAgcHJpbnQgIlRl c3QgZmFpbGVkIgorICAgIHN5cy5leGl0KDEpCisKKworaWYgX19uYW1lX18g PT0gJ19fbWFpbl9fJzoKKyAgbWFpbihzeXMuYXJndikK --14dae9340dd5ca36cd04be9d83f0--