From debbugs-submit-bounces@debbugs.gnu.org Sun Jul 05 22:35:46 2015 Received: (at submit) by debbugs.gnu.org; 6 Jul 2015 02:35:46 +0000 Received: from localhost ([127.0.0.1]:41258 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBwFy-0007p9-Vg for submit@debbugs.gnu.org; Sun, 05 Jul 2015 22:35:46 -0400 Received: from eggs.gnu.org ([208.118.235.92]:60469) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZBwFt-0007on-7l for submit@debbugs.gnu.org; Sun, 05 Jul 2015 22:35:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZBwFk-0005Ib-C1 for submit@debbugs.gnu.org; Sun, 05 Jul 2015 22:35:31 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: ** X-Spam-Status: No, score=2.5 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID,URIBL_BLACK autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:49103) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZBwFk-0005IW-7r for submit@debbugs.gnu.org; Sun, 05 Jul 2015 22:35:28 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45733) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZBwFg-0001U2-WA for bug-grep@gnu.org; Sun, 05 Jul 2015 22:35:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZBwFe-0005Hy-11 for bug-grep@gnu.org; Sun, 05 Jul 2015 22:35:24 -0400 Received: from mail-yk0-x233.google.com ([2607:f8b0:4002:c07::233]:32987) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZBwFd-0005Ht-P2 for bug-grep@gnu.org; Sun, 05 Jul 2015 22:35:21 -0400 Received: by ykeo3 with SMTP id o3so16263756yke.0 for ; Sun, 05 Jul 2015 19:35:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=w5aKJXN6ku7egSPrJHQEpdTZqiB/Kb7GJ8S7LtwTsxY=; b=kcYeI1DCS24/YwU+3xoUiFJoTpMMHAw1UCo1UTm8Q77DOWj0LUmCfdfuuhQfBL7Bh2 2W4MW5qe7ucohO21VtrimpXcf5szxqsmM1qDfqoftJzS0tDYCLEOK1vLflQpfS58PXAb fwj1nzZWcHoQXCmM9r8Jup775g7bAkdtSGhHF8N0aho5Hw5GIlLf9m0ADeB1qyGR2Dw1 yYO/5dSQikYzicEW3EFPvI2IGQBCqiBGMvrciw0/Z2OJw08JOmk4+tOQt6NmjcM0CMxQ j5EIiKdioSyAP7uQyk4rDPvjBom875NhUQO3XICGD+zPXVpcx+2MqnLoA5jG6Jhgggtf FVKA== X-Received: by 10.13.203.83 with SMTP id n80mr57104477ywd.10.1436150121284; Sun, 05 Jul 2015 19:35:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.37.201.66 with HTTP; Sun, 5 Jul 2015 19:35:01 -0700 (PDT) From: Jim Meyering Date: Sun, 5 Jul 2015 19:35:01 -0700 X-Google-Sender-Auth: oZa3uj3eHCmyKGh50JtgMTz7ovw Message-ID: Subject: [PATCH] tests: add coreutils' perl-driven test framework To: bug-grep@gnu.org Content-Type: multipart/mixed; boundary=001a11481e0ad33d4e051a2bc1f2 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --001a11481e0ad33d4e051a2bc1f2 Content-Type: text/plain; charset=UTF-8 I want to use this framework (from coreutils) here in grep, too, so... --001a11481e0ad33d4e051a2bc1f2 Content-Type: text/x-patch; charset=US-ASCII; name="0001-tests-add-coreutils-perl-driven-test-framework.patch" Content-Disposition: attachment; filename="0001-tests-add-coreutils-perl-driven-test-framework.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ibraog180 RnJvbSBlZjQwOTFmMDgxM2Y3YzA0NjVmNzJhY2U3NjFkZmNlZWU1NDdjMWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U2F0LCAyNyBKdW4gMjAxNSAwODo0MzozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIHRlc3RzOiBh ZGQgY29yZXV0aWxzJyBwZXJsLWRyaXZlbiB0ZXN0IGZyYW1ld29yawoKKiBjb25maWd1cmUuYWM6 IFNldCB0aGUgQU1fQ09ORElUSU9OQUwgdmFyaWFibGUsIEhBVkVfUEVSTC4KKiB0ZXN0cy9Db3Jl dXRpbHMucG06IE5ldyBmaWxlLgoqIHRlc3RzL0N1U2tpcC5wbTogTmV3IGZpbGUuCiogdGVzdHMv Q3VUbXBkaXIucG06IE5ldyBmaWxlLgoqIHRlc3RzL25vLXBlcmw6IE5ldyBmaWxlLgoqIHRlc3Rz L01ha2VmaWxlLmFtOiBTZXQgdXAgdG8gdXNlIC5wbCB0ZXN0czoKKFRFU1RfRVhURU5TSU9OUywg VEVTVFNVSVRFX1BFUkwsIFRFU1RTVUlURV9QRVJMX09QVElPTlMpOiBEZWZpbmUuCihTSF9MT0df Q09NUElMRVIsIFBMX0xPR19DT01QSUxFUik6IERlZmluZS4KKEVYVFJBX0RJU1QpOiBBZGQgdGhl IGZvdXIgbmV3IGZpbGUgbmFtZXMuCi0tLQogY29uZmlndXJlLmFjICAgICAgIHwgICA3ICsKIHRl c3RzL0NvcmV1dGlscy5wbSB8IDYyMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogdGVzdHMvQ3VTa2lwLnBtICAgIHwgIDM5ICsrKysKIHRlc3Rz L0N1VG1wZGlyLnBtICB8IDExMSArKysrKysrKysrCiB0ZXN0cy9NYWtlZmlsZS5hbSAgfCAgMjQg KysrCiB0ZXN0cy9uby1wZXJsICAgICAgfCAgIDYgKwogNiBmaWxlcyBjaGFuZ2VkLCA4MDcgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL0NvcmV1dGlscy5wbQogY3JlYXRl IG1vZGUgMTAwNjQ0IHRlc3RzL0N1U2tpcC5wbQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL0N1 VG1wZGlyLnBtCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMvbm8tcGVybAoKZGlmZiAtLWdpdCBh L2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAzZjZkMzg5Li4wYTRmMDlkIDEwMDY0 NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC05NCw2ICs5NCwxMyBA QCBBQ19UWVBFX1NJWkVfVAogQUNfQ19DT05TVAogZ2xfSU5JVAoKKyMgVGhlIHRlc3Qgc3VpdGUg bmVlZHMgdG8ga25vdyBpZiB3ZSBoYXZlIGEgd29ya2luZyBwZXJsLgorIyBGSVhNRTogdGhpcyBp cyBzdWJvcHRpbWFsLiAgSWRlYWxseSwgd2Ugd291bGQgYmUgYWJsZSB0byBjYWxsIGdsX1BFUkwK KyMgd2l0aCBhbiBBQ1RJT04tSUYtTk9ULUZPVU5EIGFyZ3VtZW50IC4uLgorY3VfaGF2ZV9wZXJs PXllcworY2FzZSAkUEVSTCBpbiAqIi9taXNzaW5nICIqKSBjdV9oYXZlX3Blcmw9bm87OyBlc2Fj CitBTV9DT05ESVRJT05BTChbSEFWRV9QRVJMXSwgW3Rlc3QgJGN1X2hhdmVfcGVybCA9IHllc10p CisKIEFDX0FSR19FTkFCTEUoW2djYy13YXJuaW5nc10sCiAgIFtBU19IRUxQX1NUUklORyhbLS1l bmFibGUtZ2NjLXdhcm5pbmdzXSwKICAgICAgICAgICAgICAgICAgIFt0dXJuIG9uIGxvdHMgb2Yg R0NDIHdhcm5pbmdzIChmb3IgZGV2ZWxvcGVycyldKV0sCmRpZmYgLS1naXQgYS90ZXN0cy9Db3Jl dXRpbHMucG0gYi90ZXN0cy9Db3JldXRpbHMucG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYmQyMDg4ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL0NvcmV1dGlscy5wbQpA QCAtMCwwICsxLDYyMCBAQAorcGFja2FnZSBDb3JldXRpbHM7CisjIFRoaXMgaXMgYSB0ZXN0aW5n IGZyYW1ld29yay4KKworIyBDb3B5cmlnaHQgKEMpIDE5OTgtMjAxNSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorIyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBv cgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisjIFRoaXMgcHJvZ3Jh bSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuCisKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK3VzZSBzdHJpY3Q7Cit1c2UgdmFy cyBxdygkVkVSU0lPTiBASVNBIEBFWFBPUlQpOworCit1c2UgRmlsZUhhbmRsZTsKK3VzZSBGaWxl OjpDb21wYXJlIHF3KGNvbXBhcmUpOworCitASVNBID0gcXcoRXhwb3J0ZXIpOworKCRWRVJTSU9O ID0gJyRSZXZpc2lvbjogMS41ICQgJykgPX4gdHIvWzAtOV0uLy9jZDsKK0BFWFBPUlQgPSBxdyAo cnVuX3Rlc3RzIHRyaXBsZV90ZXN0IGdldGxpbWl0cyk7CisKK215ICRkZWJ1ZyA9ICRFTlZ7REVC VUd9OworCitteSBAVHlwZXMgPSBxdyAoSU4gSU5fUElQRSBPVVQgRVJSIEFVWCBDTVAgRVhJVCBQ UkUgUE9TVCBPVVRfU1VCU1QKKyAgICAgICAgICAgICAgICBFUlJfU1VCU1QgRU5WIEVOVl9ERUwp OworbXkgJVR5cGVzID0gbWFwIHskXyA9PiAxfSBAVHlwZXM7CitteSAlWmVyb19vbmVfdHlwZSA9 IG1hcCB7JF8gPT4gMX0KKyAgIHF3IChPVVQgRVJSIEVYSVQgUFJFIFBPU1QgT1VUX1NVQlNUIEVS Ul9TVUJTVCBFTlYpOworbXkgJHNyY2RpciA9ICIkRU5We3NyY2Rpcn0iOworbXkgJEdsb2JhbF9j b3VudCA9IDE7CisKKyMgV2hlbiBydW5uaW5nIGluIGEgREpHUFAgZW52aXJvbm1lbnQsIG1ha2Ug JEVOVntTSEVMTH0gcG9pbnQgdG8gYmFzaC4KKyMgT3RoZXJ3aXNlLCBhIGJhZCBzaGVsbCBtaWdo dCBiZSB1c2VkIChlLmcuIGNvbW1hbmQuY29tKSBhbmQgbWFueQorIyB0ZXN0cyB3b3VsZCBmYWls LgorZGVmaW5lZCAkRU5We0RKRElSfQorICBhbmQgJEVOVntTSEVMTH0gPSAiJEVOVntESkRJUn0v YmluL2Jhc2guZXhlIjsKKworIyBBIGZpbGUgc3BlYzogYSBzY2FsYXIgb3IgYSByZWZlcmVuY2Ug dG8gYSBzaW5nbGUta2V5ZWQgaGFzaAorIyA9PT09PT09PT09PT09PT09CisjICdjb250ZW50cycg ICAgICAgICAgICAgICBjb250ZW50cyBvbmx5IChmaWxlIG5hbWUgaXMgZGVyaXZlZCBmcm9tIHRl c3QgbmFtZSkKKyMge2ZpbGVuYW1lID0+ICdjb250ZW50cyd9IGZpbGVuYW1lIGFuZCBjb250ZW50 cworIyB7ZmlsZW5hbWUgPT4gdW5kZWZ9ICAgICAgZmlsZW5hbWUgb25seSAtLSAkKHNyY2Rpcikv dGVzdHMvZmlsZW5hbWUgbXVzdCBleGlzdAorIworIyBGSVhNRTogSWYgdGhlcmUgaXMgbW9yZSB0 aGFuIG9uZSBpbnB1dCBmaWxlLCB0aGVuIHlvdSBjYW4ndCBzcGVjaWZ5ICdSRURJUicuCisjIFBJ UEUgaXMgc3RpbGwgb2suCisjCisjIEkvTyBzcGVjOiBhIGhhc2ggcmVmIHdpdGggdGhlIGZvbGxv d2luZyBwcm9wZXJ0aWVzCisjID09PT09PT09PT09PT09PT0KKyMgLSBvbmUga2V5L3ZhbHVlIHBh aXIKKyMgLSB0aGUga2V5IG11c3QgYmUgb25lIG9mIHRoZXNlIHN0cmluZ3M6IElOLCBPVVQsIEVS UiwgQVVYLCBDTVAsIEVYSVQKKyMgLSB0aGUgdmFsdWUgbXVzdCBiZSBhIGZpbGUgc3BlYworIyB7 T1VUID0+ICdkYXRhJ30gICAgcHV0IGRhdGEgaW4gYSB0ZW1wIGZpbGUgYW5kIGNvbXBhcmUgaXQg dG8gc3Rkb3V0IGZyb20gY21kCisjIHtPVVQgPT4geydmaWxlbmFtZSc9PnVuZGVmfX0gY29tcGFy ZSBjb250ZW50cyBvZiBleGlzdGluZyBmaWxlbmFtZSB0bworIyAgICAgICAgICAgc3Rkb3V0IGZy b20gY21kCisjIHtPVVQgPT4geydmaWxlbmFtZSc9PlskQ1RPUiwgJERUT1JdfX0gJENUT1IgYW5k ICREVE9SIGFyZSByZWZlcmVuY2VzIHRvCisjICAgICAgICAgICBmdW5jdGlvbnMsIGVhY2ggd2hp Y2ggaXMgcGFzc2VkIHRoZSBzaW5nbGUgYXJndW1lbnQgJ2ZpbGVuYW1lJy4KKyMgICAgICAgICAg ICRDVE9SIG11c3QgY3JlYXRlICdmaWxlbmFtZScuCisjICAgICAgICAgICBEVE9SIG1heSBiZSBv bWl0dGVkIGluIHdoaWNoIGNhc2UgJ3N1Ynt1bmxpbmsgQF9bMF19JyBpcyB1c2VkLgorIyAgICAg ICAgICAgRklYTUU6IGltcGxlbWVudCB0aGlzCisjIHtFUlIgPT4gLi4ufQorIyAgICAgICAgICAg U2FtZSBhcyBmb3IgT1VULCBidXQgY29tcGFyZSB3aXRoIHN0ZGVyciwgbm90IHN0ZG91dC4KKyMg e09VVF9TVUJTVCA9PiAncy92YXJpYWJsZV9vdXRwdXQvZXhwZWN0ZWRfb3V0cHV0Lyd9CisjICAg VHJhbnNmb3JtIGFjdHVhbCBzdGFuZGFyZCBvdXRwdXQgYmVmb3JlIGNvbXBhcmluZyBpdCBhZ2Fp bnN0IGV4cGVjdGVkLgorIyAgIFRoaXMgaXMgdXNlZnVsIGUuZy4gZm9yIHByb2dyYW1zIGxpa2Ug ZHUgdGhhdCBwcm9kdWNlIG91dHB1dCB0aGF0CisjICAgdmFyaWVzIGEgbG90IGZyb20gc3lzdGVt LiAgRS5nLiwgYW4gZW1wdHkgZmlsZSBtYXkgY29uc3VtZSB6ZXJvIGZpbGUKKyMgICBibG9ja3Ms IG9yIG1vcmUsIGRlcGVuZGluZyBvbiB0aGUgT1MgYW5kIG9uIHRoZSBmaWxlIHN5c3RlbSB0eXBl LgorIyB7RVJSX1NVQlNUID0+ICdzL3ZhcmlhYmxlX291dHB1dC9leHBlY3RlZF9vdXRwdXQvJ30K KyMgICBUcmFuc2Zvcm0gYWN0dWFsIHN0ZGVyciBvdXRwdXQgYmVmb3JlIGNvbXBhcmluZyBpdCBh Z2FpbnN0IGV4cGVjdGVkLgorIyAgIFRoaXMgaXMgdXNlZnVsIHdoZW4gdmVyaWZ5aW5nIHRoYXQg d2UgZ2V0IGEgbWVhbmluZ2Z1bCBkaWFnbm9zdGljLgorIyAgIEZvciBleGFtcGxlLCBpbiBybS9m YWlsLTJlcGVybSwgd2UgaGF2ZSB0byBhY2NvdW50IGZvciB0aHJlZSBkaWZmZXJlbnQKKyMgICBk aWFnbm9zdGljczogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQsIE5vdCBvd25lciwgYW5kIFBlcm1p c3Npb24gZGVuaWVkLgorIyB7RVhJVCA9PiBOfSBleHBlY3QgZXhpdCBzdGF0dXMgb2YgY21kIHRv IGJlIE4KKyMge0VOViA9PiAnVkFSPXZhbCAuLi4nfQorIyAgIFByZXBlbmQgJ1ZBUj12YWwgLi4u JyB0byB0aGUgY29tbWFuZCB0aGF0IHdlIGV4ZWN1dGUgdmlhICdzeXN0ZW0nLgorIyB7RU5WX0RF TCA9PiAnVkFSJ30KKyMgICBSZW1vdmUgVkFSIGZyb20gdGhlIGVudmlyb25tZW50IGp1c3QgYmVm b3JlIHJ1bm5pbmcgdGhlIGNvcnJlc3BvbmRpbmcKKyMgICBjb21tYW5kLCBhbmQgcmVzdG9yZSBh bnkgdmFsdWUganVzdCBhZnRlcndhcmRzLgorIworIyBUaGVyZSBtYXkgYmUgbWFueSBpbnB1dCBm aWxlIHNwZWNzLiAgRmlsZSBuYW1lcyBmcm9tIHRoZSBpbnB1dCBzcGVjcworIyBhcmUgY29uY2F0 ZW5hdGVkIGluIG9yZGVyIG9uIHRoZSBjb21tYW5kIGxpbmUuCisjIFRoZXJlIG1heSBiZSBhdCBt b3N0IG9uZSBvZiB0aGUgT1VULSwgRVJSLSwgYW5kIEVYSVQta2V5ZWQgc3BlY3MuCisjIElmIHRo ZSBPVVQtKG9yIEVSUikta2V5ZWQgaGFzaCByZWYgaXMgb21pdHRlZCwgdGhlbiBleHBlY3Qgbm8g b3V0cHV0CisjICAgb24gc3Rkb3V0IChvciBzdGRlcnIpLgorIyBJZiB0aGUgRVhJVC1rZXllZCBv bmUgaXMgb21pdHRlZCwgdGhlbiBleHBlY3QgdGhlIGV4aXQgc3RhdHVzIHRvIGJlIHplcm8uCisK KyMgRklYTUU6IE1ha2Ugc3VyZSB0aGF0IG5vIGp1bmtmaWxlIGlzIGFsc28gbGlzdGVkIGFzIGEK KyMgbm9uLWp1bmtmaWxlIChpLmUuLCB3aXRoIHVuZGVmIGZvciBjb250ZW50cykKKworc3ViIF9z aGVsbF9xdW90ZSAoJCkKK3sKKyAgbXkgKCRzdHJpbmcpID0gQF87CisgICRzdHJpbmcgPX4gcy9c Jy9cJ1xcXCdcJy9nOworICByZXR1cm4gIickc3RyaW5nJyI7Cit9CisKK3N1YiBfY3JlYXRlX2Zp bGUgKCQkJCQpCit7CisgIG15ICgkcHJvZ3JhbV9uYW1lLCAkdGVzdF9uYW1lLCAkZmlsZV9uYW1l LCAkZGF0YSkgPSBAXzsKKyAgbXkgJGZpbGU7CisgIGlmIChkZWZpbmVkICRmaWxlX25hbWUpCisg ICAgeworICAgICAgJGZpbGUgPSAkZmlsZV9uYW1lOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAg ICAgICRmaWxlID0gIiR0ZXN0X25hbWUuJEdsb2JhbF9jb3VudCI7CisgICAgICArKyRHbG9iYWxf Y291bnQ7CisgICAgfQorCisgIHdhcm4gImNyZWF0aW5nIGZpbGUgJyRmaWxlJyB3aXRoIGNvbnRl bnRzICckZGF0YSdcbiIgaWYgJGRlYnVnOworCisgICMgVGhlIHRlc3Qgc3BlYyBnYXZlIGEgc3Ry aW5nLgorICAjIFdyaXRlIGl0IHRvIGEgdGVtcCBmaWxlIGFuZCByZXR1cm4gdGVtcGZpbGUgbmFt ZS4KKyAgbXkgJGZoID0gbmV3IEZpbGVIYW5kbGUgIj4gJGZpbGUiOworICBkaWUgIiRwcm9ncmFt X25hbWU6ICRmaWxlOiAkIVxuIiBpZiAhICRmaDsKKyAgcHJpbnQgJGZoICRkYXRhOworICAkZmgt PmNsb3NlIHx8IGRpZSAiJHByb2dyYW1fbmFtZTogJGZpbGU6ICQhXG4iOworCisgIHJldHVybiAk ZmlsZTsKK30KKworc3ViIF9jb21wYXJlX2ZpbGVzICgkJCQkJCkKK3sKKyAgbXkgKCRwcm9ncmFt X25hbWUsICR0ZXN0X25hbWUsICRpbl9vcl9vdXQsICRhY3R1YWwsICRleHBlY3RlZCkgPSBAXzsK KworICBteSAkZGlmZmVyID0gY29tcGFyZSAoJGFjdHVhbCwgJGV4cGVjdGVkKTsKKyAgaWYgKCRk aWZmZXIpCisgICAgeworICAgICAgbXkgJGluZm8gPSAoZGVmaW5lZCAkaW5fb3Jfb3V0ID8gInN0 ZCRpbl9vcl9vdXQgIiA6ICcnKTsKKyAgICAgIHdhcm4gIiRwcm9ncmFtX25hbWU6IHRlc3QgJHRl c3RfbmFtZTogJHtpbmZvfW1pc21hdGNoLCBjb21wYXJpbmcgIgorICAgICAgICAuICIkZXhwZWN0 ZWQgKGV4cGVjdGVkKSBhbmQgJGFjdHVhbCAoYWN0dWFsKVxuIjsKKyAgICAgICMgSWdub3JlIGFu eSBmYWlsdXJlLCBkaXNjYXJkIHN0ZGVyci4KKyAgICAgIHN5c3RlbSAiZGlmZiAtYyAkZXhwZWN0 ZWQgJGFjdHVhbCAyPi9kZXYvbnVsbCI7CisgICAgfQorCisgIHJldHVybiAkZGlmZmVyOworfQor CitzdWIgX3Byb2Nlc3NfZmlsZV9zcGVjICgkJCQkJCkKK3sKKyAgbXkgKCRwcm9ncmFtX25hbWUs ICR0ZXN0X25hbWUsICRmaWxlX3NwZWMsICR0eXBlLCAkanVua19maWxlcykgPSBAXzsKKworICBt eSAoJGZpbGVfbmFtZSwgJGNvbnRlbnRzKTsKKyAgaWYgKCFyZWYgJGZpbGVfc3BlYykKKyAgICB7 CisgICAgICAoJGZpbGVfbmFtZSwgJGNvbnRlbnRzKSA9ICh1bmRlZiwgJGZpbGVfc3BlYyk7Cisg ICAgfQorICBlbHNpZiAocmVmICRmaWxlX3NwZWMgZXEgJ0hBU0gnKQorICAgIHsKKyAgICAgIG15 ICRuID0ga2V5cyAlJGZpbGVfc3BlYzsKKyAgICAgIGRpZSAiJHByb2dyYW1fbmFtZTogJHRlc3Rf bmFtZTogJHR5cGUgc3BlYyBoYXMgJG4gZWxlbWVudHMgLS0iCisgICAgICAgIC4gIiBleHBlY3Rl ZCAxXG4iCisgICAgICAgICAgaWYgJG4gIT0gMTsKKyAgICAgICgkZmlsZV9uYW1lLCAkY29udGVu dHMpID0gZWFjaCAlJGZpbGVfc3BlYzsKKworICAgICAgIyBUaGlzIGhhcHBlbnMgZm9yIHRoZSBB VVggaGFzaCBpbiBhbiBpb19zcGVjIGxpa2UgdGhpczoKKyAgICAgICMge0NNUD0+IFsnenkxMjN1 dHNycXBvbm1sa2ppJywgeydAQVVYQCc9PiB1bmRlZn1dfSwKKyAgICAgIGRlZmluZWQgJGNvbnRl bnRzCisgICAgICAgIG9yIHJldHVybiAkZmlsZV9uYW1lOworICAgIH0KKyAgZWxzZQorICAgIHsK KyAgICAgIGRpZSAiJHByb2dyYW1fbmFtZTogJHRlc3RfbmFtZTogaW52YWxpZCBSSFMgaW4gJHR5 cGUtc3BlY1xuIgorICAgIH0KKworICBteSAkaXNfanVua19maWxlID0gKCEgZGVmaW5lZCAkZmls ZV9uYW1lCisgICAgICAgICAgICAgICAgICAgICAgfHwgKCgkdHlwZSBlcSAnSU4nIHx8ICR0eXBl IGVxICdBVVgnIHx8ICR0eXBlIGVxICdDTVAnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAm JiBkZWZpbmVkICRjb250ZW50cykpOworICBteSAkZmlsZSA9IF9jcmVhdGVfZmlsZSAoJHByb2dy YW1fbmFtZSwgJHRlc3RfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaWxlX25h bWUsICRjb250ZW50cyk7CisKKyAgaWYgKCRpc19qdW5rX2ZpbGUpCisgICAgeworICAgICAgcHVz aCBAJGp1bmtfZmlsZXMsICRmaWxlCisgICAgfQorICBlbHNlCisgICAgeworICAgICAgIyBGSVhN RTogcHV0ICRzcmNkaXIgaW4gaGVyZSBzb21ld2hlcmUKKyAgICAgIHdhcm4gIiRwcm9ncmFtX25h bWU6ICR0ZXN0X25hbWU6IHNwZWNpZmllZCBmaWxlICckZmlsZScgZG9lcyIKKyAgICAgICAgLiAi IG5vdCBleGlzdFxuIgorICAgICAgICAgIGlmICEgLWYgIiRzcmNkaXIvdGVzdHMvJGZpbGUiOwor ICAgIH0KKworICByZXR1cm4gJGZpbGU7Cit9CisKK3N1YiBfYXRfcmVwbGFjZSAoJCQpCit7Cisg IG15ICgkbWFwLCAkcykgPSBAXzsKKyAgZm9yZWFjaCBteSAkZW8gKHF3IChBVVggT1VUIEVSUikp CisgICAgeworICAgICAgbXkgJGYgPSAkbWFwLT57JGVvfTsKKyAgICAgICRmCisgICAgICAgIGFu ZCAkcyA9fiAvXEAkZW9cQC8KKyAgICAgICAgICBhbmQgJHMgPX4gcy9cQCRlb1xALyRmL2c7Cisg ICAgfQorICByZXR1cm4gJHM7Cit9CisKK3N1YiBnZXRsaW1pdHMoKQoreworICBteSAkTlY7Cisg IG9wZW4gJE5WLCAiZ2V0bGltaXRzIHwiIG9yIGRpZSAiRXJyb3IgcnVubmluZyBnZXRsaW1pdHNc biI7CisgIG15ICVsaW1pdHMgPSBtYXAge3NwbGl0IC89fFxuL30gPCROVj47CisgIHJldHVybiBc JWxpbWl0czsKK30KKworIyBGSVhNRTogY2xlYW51cCBvbiBpbnRlcnJ1cHQKKyMgRklYTUU6IGV4 dHJhY3QgJ2RvXzFfdGVzdCcgZnVuY3Rpb24KKworIyBGSVhNRTogaGF2aW5nIHRvIGluY2x1ZGUg JHByb2dyYW1fbmFtZSBoZXJlIGlzIGFuIGV4cGVkaWVudCBrbHVkZ2UuCisjIExpYnJhcnkgY29k ZSBkb2Vzbid0ICdkaWUnLgorc3ViIHJ1bl90ZXN0cyAoJCQkJCQpCit7CisgIG15ICgkcHJvZ3Jh bV9uYW1lLCAkcHJvZywgJHRfc3BlYywgJHNhdmVfdGVtcHMsICR2ZXJib3NlKSA9IEBfOworCisg ICMgVG8gaW5kaWNhdGUgdGhhdCAkcHJvZyBpcyBhIHNoZWxsIGJ1aWx0LWluLCB5b3UnZCBtYWtl IGl0IGEgc3RyaW5nICdyZWYnLgorICAjIEUuZy4sIGNhbGwgcnVuX3Rlc3RzICgkcHJvZywgXCRw cm9nLCBcQFRlc3RzLCAkc2F2ZV90ZW1wcywgJHZlcmJvc2UpOworICAjIElmIGl0J3MgYSByZWYs IGludm9rZSBpdCB2aWEgImVudiI6CisgIG15IEBwcm9nID0gcmVmICRwcm9nID8gKHF3KGVudiAt LSksICQkcHJvZykgOiAkcHJvZzsKKworICAjIFdhcm4gYWJvdXQgZW1wdHkgdF9zcGVjLgorICAj IEZJWE1FCisKKyAgIyBSZW1vdmUgYWxsIHRlbXAgZmlsZXMgdXBvbiBpbnRlcnJ1cHQuCisgICMg RklYTUUKKworICAjIFZlcmlmeSB0aGF0IHRlc3QgbmFtZXMgYXJlIGRpc3RpbmN0LgorICBteSAk YmFkX3Rlc3RfbmFtZSA9IDA7CisgIG15ICVzZWVuOworICBteSAlc2Vlbl84ZG90MzsKKyAgbXkg JHQ7CisgIGZvcmVhY2ggJHQgKEAkdF9zcGVjKQorICAgIHsKKyAgICAgIG15ICR0ZXN0X25hbWUg PSAkdC0+WzBdOworICAgICAgaWYgKCRzZWVueyR0ZXN0X25hbWV9KQorICAgICAgICB7CisgICAg ICAgICAgd2FybiAiJHByb2dyYW1fbmFtZTogJHRlc3RfbmFtZTogZHVwbGljYXRlIHRlc3QgbmFt ZVxuIjsKKyAgICAgICAgICAkYmFkX3Rlc3RfbmFtZSA9IDE7CisgICAgICAgIH0KKyAgICAgICRz ZWVueyR0ZXN0X25hbWV9ID0gMTsKKworICAgICAgaWYgKDApCisgICAgICAgIHsKKyAgICAgICAg ICBteSAkdDggPSBsYyBzdWJzdHIgJHRlc3RfbmFtZSwgMCwgODsKKyAgICAgICAgICBpZiAoJHNl ZW5fOGRvdDN7JHQ4fSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgd2FybiAiJHByb2dy YW1fbmFtZTogOC4zIHRlc3QgbmFtZSBjb25mbGljdDogIgorICAgICAgICAgICAgICAgIC4gIiR0 ZXN0X25hbWUsICRzZWVuXzhkb3QzeyR0OH1cbiI7CisgICAgICAgICAgICAgICRiYWRfdGVzdF9u YW1lID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAkc2Vlbl84ZG90M3skdDh9ID0gJHRl c3RfbmFtZTsKKyAgICAgICAgfQorCisgICAgICAjIFRoZSB0ZXN0IG5hbWUgbWF5IGJlIG5vIGxv bmdlciB0aGFuIDMwIGJ5dGVzLgorICAgICAgIyBZZXMsIHRoaXMgaXMgYW4gYXJiaXRyYXJ5IGxp bWl0LiAgSWYgaXQgY2F1c2VzIHRyb3VibGUsCisgICAgICAjIGNvbnNpZGVyIHJlbW92aW5nIGl0 LgorICAgICAgbXkgJG1heCA9IDMwOworICAgICAgaWYgKCRtYXggPCBsZW5ndGggJHRlc3RfbmFt ZSkKKyAgICAgICAgeworICAgICAgICAgIHdhcm4gIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25hbWU6 IHRlc3QgbmFtZSBpcyB0b28gbG9uZyAoPiAkbWF4KVxuIjsKKyAgICAgICAgICAkYmFkX3Rlc3Rf bmFtZSA9IDE7CisgICAgICAgIH0KKyAgICB9CisgIHJldHVybiAxIGlmICRiYWRfdGVzdF9uYW1l OworCisgICMgRklYTUUgY2hlY2sgZXhpdCBzdGF0dXMKKyAgc3lzdGVtIChAcHJvZywgJy0tdmVy c2lvbicpIGlmICR2ZXJib3NlOworCisgIG15IEBqdW5rX2ZpbGVzOworICBteSAkZmFpbCA9IDA7 CisgIGZvcmVhY2ggbXkgJHR0IChAJHRfc3BlYykKKyAgICB7CisgICAgICBteSBAcG9zdF9jb21w YXJlOworICAgICAgbXkgQGR1bW15ID0gQCR0dDsKKyAgICAgIG15ICR0ID0gXEBkdW1teTsKKyAg ICAgIG15ICR0ZXN0X25hbWUgPSBzaGlmdCBAJHQ7CisgICAgICBteSAkZXhwZWN0ID0ge307Cisg ICAgICBteSAoJHByZSwgJHBvc3QpOworCisgICAgICAjIEZJWE1FOiBtYXliZSBkb24ndCByZXNl dCB0aGlzLgorICAgICAgJEdsb2JhbF9jb3VudCA9IDE7CisgICAgICBteSBAYXJnczsKKyAgICAg IG15ICRpb19zcGVjOworICAgICAgbXkgJXNlZW5fdHlwZTsKKyAgICAgIG15IEBlbnZfZGVsZXRl OworICAgICAgbXkgJGVudl9wcmVmaXggPSAnJzsKKyAgICAgIG15ICRpbnB1dF9waXBlX2NtZDsK KyAgICAgIGZvcmVhY2ggJGlvX3NwZWMgKEAkdCkKKyAgICAgICAgeworICAgICAgICAgIGlmICgh cmVmICRpb19zcGVjKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBwdXNoIEBhcmdzLCAk aW9fc3BlYzsKKyAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg IGlmIChyZWYgJGlvX3NwZWMgbmUgJ0hBU0gnKQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICBldmFsICd1c2UgRGF0YTo6RHVtcGVyJzsKKyAgICAgICAgICAgICAgZGllICIkcHJvZ3JhbV9u YW1lOiAkdGVzdF9uYW1lOiBpbnZhbGlkIGVudHJ5IGluIHRlc3Qgc3BlYzsgIgorICAgICAgICAg ICAgICAgIC4gImV4cGVjdGVkIEhBU0gtcmVmLFxuYnV0IGdvdCB0aGlzOlxuIgorICAgICAgICAg ICAgICAgICAgLiBEYXRhOjpEdW1wZXItPkR1bXAgKFtcJGlvX3NwZWNdLCBbJyRpb19zcGVjJ10p IC4gIlxuIjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgIG15ICRuID0ga2V5cyAlJGlvX3Nw ZWM7CisgICAgICAgICAgZGllICIkcHJvZ3JhbV9uYW1lOiAkdGVzdF9uYW1lOiBzcGVjIGhhcyAk biBlbGVtZW50cyAtLSIKKyAgICAgICAgICAgIC4gIiBleHBlY3RlZCAxXG4iCisgICAgICAgICAg ICAgIGlmICRuICE9IDE7CisgICAgICAgICAgbXkgKCR0eXBlLCAkdmFsKSA9IGVhY2ggJSRpb19z cGVjOworICAgICAgICAgIGRpZSAiJHByb2dyYW1fbmFtZTogJHRlc3RfbmFtZTogaW52YWxpZCBr ZXkgJyR0eXBlJyBpbiB0ZXN0IHNwZWNcbiIKKyAgICAgICAgICAgIGlmICEgJFR5cGVzeyR0eXBl fTsKKworICAgICAgICAgICMgTWFrZSBzdXJlIHRoZXJlJ3Mgbm8gbW9yZSB0aGFuIG9uZSBvZiBP VVQsIEVSUiwgRVhJVCwgZXRjLgorICAgICAgICAgIGRpZSAiJHByb2dyYW1fbmFtZTogJHRlc3Rf bmFtZTogbW9yZSB0aGFuIG9uZSAkdHlwZSBzcGVjXG4iCisgICAgICAgICAgICBpZiAkWmVyb19v bmVfdHlwZXskdHlwZX0gYW5kICRzZWVuX3R5cGV7JHR5cGV9Kys7CisKKyAgICAgICAgICBpZiAo JHR5cGUgZXEgJ1BSRScgb3IgJHR5cGUgZXEgJ1BPU1QnKQorICAgICAgICAgICAgeworICAgICAg ICAgICAgICAkZXhwZWN0LT57JHR5cGV9ID0gJHZhbDsKKyAgICAgICAgICAgICAgbmV4dDsKKyAg ICAgICAgICAgIH0KKworICAgICAgICAgIGlmICgkdHlwZSBlcSAnQ01QJykKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgbXkgJHQgPSByZWYgJHZhbDsKKyAgICAgICAgICAgICAgJHQgJiYg JHQgZXEgJ0FSUkFZJworICAgICAgICAgICAgICAgIG9yIGRpZSAiJHByb2dyYW1fbmFtZTogJHRl c3RfbmFtZTogaW52YWxpZCBDTVAgc3BlY1xuIjsKKyAgICAgICAgICAgICAgQCR2YWwgPT0gMgor ICAgICAgICAgICAgICAgIG9yIGRpZSAiJHByb2dyYW1fbmFtZTogJHRlc3RfbmFtZTogaW52YWxp ZCBDTVAgbGlzdDsgIG11c3QgaGF2ZSIKKyAgICAgICAgICAgICAgICAgIC4gIiBleGFjdGx5IDIg ZWxlbWVudHNcbiI7CisgICAgICAgICAgICAgIG15IEBjbXBfZmlsZXM7CisgICAgICAgICAgICAg IGZvcmVhY2ggbXkgJGUgKEAkdmFsKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgIG15ICRyID0gcmVmICRlOworICAgICAgICAgICAgICAgICAgJHIgJiYgJHIgbmUgJ0hBU0gn CisgICAgICAgICAgICAgICAgICAgIGFuZCBkaWUgIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25hbWU6 IGludmFsaWQgZWxlbWVudCAoJHIpIgorICAgICAgICAgICAgICAgICAgICAgIC4gIiBpbiBDTVAg bGlzdDsgIG9ubHkgc2NhbGFycyBhbmQgaGFzaCByZWZlcmVuY2VzICIKKyAgICAgICAgICAgICAg ICAgICAgICAgIC4gImFyZSBhbGxvd2VkXG4iOworICAgICAgICAgICAgICAgICAgaWYgKCRyICYm ICRyIGVxICdIQVNIJykKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg ICAgIG15ICRuID0ga2V5cyAlJGU7CisgICAgICAgICAgICAgICAgICAgICAgJG4gPT0gMQorICAg ICAgICAgICAgICAgICAgICAgICAgb3IgZGllICIkcHJvZ3JhbV9uYW1lOiAkdGVzdF9uYW1lOiBD TVAgc3BlYyBoYXMgJG4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAuICJlbGVtZW50cyAt LSBleHBlY3RlZCAxXG4iOworCisgICAgICAgICAgICAgICAgICAgICAgIyBSZXBsYWNlIGFueSAn QEFVWEAnIGluIHRoZSBrZXkgb2YgJSRlLgorICAgICAgICAgICAgICAgICAgICAgIG15ICgkZmYs ICR2YWwpID0gZWFjaCAlJGU7CisgICAgICAgICAgICAgICAgICAgICAgbXkgJG5ld19mZiA9IF9h dF9yZXBsYWNlICRleHBlY3QsICRmZjsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5ld19m ZiBuZSAkZmYpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICRlLT57JG5ld19mZn0gPSAkdmFsOworICAgICAgICAgICAgICAgICAgICAgICAgICBk ZWxldGUgJGUtPnskZmZ9OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICAgICAgICBteSAkY21wX2ZpbGUgPSBfcHJvY2Vzc19maWxl X3NwZWMgKCRwcm9ncmFtX25hbWUsICR0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlLCAkdHlwZSwgXEBqdW5rX2ZpbGVzKTsK KyAgICAgICAgICAgICAgICAgIHB1c2ggQGNtcF9maWxlcywgJGNtcF9maWxlOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgcHVzaCBAcG9zdF9jb21wYXJlLCBbQGNtcF9maWxlc107 CisKKyAgICAgICAgICAgICAgJGV4cGVjdC0+eyR0eXBlfSA9ICR2YWw7CisgICAgICAgICAgICAg IG5leHQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoJHR5cGUgZXEgJ0VYSVQnKQor ICAgICAgICAgICAgeworICAgICAgICAgICAgICBkaWUgIiRwcm9ncmFtX25hbWU6ICR0ZXN0X25h bWU6IGludmFsaWQgRVhJVCBjb2RlXG4iCisgICAgICAgICAgICAgICAgaWYgJHZhbCAhfiAvXlxk KyQvOworICAgICAgICAgICAgICAjIEZJWE1FOiBtYWtlIHN1cmUgJGRhdGEgaXMgbnVtZXJpYwor ICAgICAgICAgICAgICAkZXhwZWN0LT57RVhJVH0gPSAkdmFsOworICAgICAgICAgICAgICBuZXh0 OworICAgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKCR0eXBlID1+IC9eKE9VVHxFUlIpX1NV QlNUJC8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICRleHBlY3QtPntSRVNVTFRfU1VC U1R9IHx8PSB7fTsKKyAgICAgICAgICAgICAgJGV4cGVjdC0+e1JFU1VMVF9TVUJTVH0tPnskMX0g PSAkdmFsOworICAgICAgICAgICAgICBuZXh0OworICAgICAgICAgICAgfQorCisgICAgICAgICAg aWYgKCR0eXBlIGVxICdFTlYnKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAkZW52X3By ZWZpeCA9ICIkdmFsICI7CisgICAgICAgICAgICAgIG5leHQ7CisgICAgICAgICAgICB9CisKKyAg ICAgICAgICBpZiAoJHR5cGUgZXEgJ0VOVl9ERUwnKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICBwdXNoIEBlbnZfZGVsZXRlLCAkdmFsOworICAgICAgICAgICAgICBuZXh0OworICAgICAg ICAgICAgfQorCisgICAgICAgICAgbXkgJGZpbGUgPSBfcHJvY2Vzc19maWxlX3NwZWMgKCRwcm9n cmFtX25hbWUsICR0ZXN0X25hbWUsICR2YWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICR0eXBlLCBcQGp1bmtfZmlsZXMpOworCisgICAgICAgICAgaWYgKCR0eXBl IGVxICdJTicgfHwgJHR5cGUgZXEgJ0lOX1BJUEUnKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICBteSAkcXVvdGVkX2ZpbGUgPSBfc2hlbGxfcXVvdGUgJGZpbGU7CisgICAgICAgICAgICAg IGlmICgkdHlwZSBlcSAnSU5fUElQRScpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgICAgZGVmaW5lZCAkaW5wdXRfcGlwZV9jbWQKKyAgICAgICAgICAgICAgICAgICAgYW5kIGRp ZSAiJHByb2dyYW1fbmFtZTogJHRlc3RfbmFtZTogb25seSBvbmUgaW5wdXQiCisgICAgICAgICAg ICAgICAgICAgICAgLiAiIG1heSBiZSBzcGVjaWZpZWQgd2l0aCBJTl9QSVBFXG4iOworICAgICAg ICAgICAgICAgICAgJGlucHV0X3BpcGVfY21kID0gImNhdCAkcXVvdGVkX2ZpbGUgfCI7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgcHVzaCBAYXJncywgJHF1b3RlZF9maWxlOworICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICBlbHNpZiAoJHR5cGUgZXEgJ0FVWCcgfHwgJHR5 cGUgZXEgJ09VVCcgfHwgJHR5cGUgZXEgJ0VSUicpCisgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICRleHBlY3QtPnskdHlwZX0gPSAkZmlsZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBl bHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGRpZSAiJHByb2dyYW1fbmFtZTogJHRl c3RfbmFtZTogaW52YWxpZCB0eXBlOiAkdHlwZVxuIgorICAgICAgICAgICAgfQorICAgICAgICB9 CisKKyAgICAgICMgRXhwZWN0IGFuIGV4aXQgc3RhdHVzIG9mIHplcm8gaWYgaXQncyBub3Qgc3Bl Y2lmaWVkLgorICAgICAgJGV4cGVjdC0+e0VYSVR9IHx8PSAwOworCisgICAgICAjIEFsbG93IEVS UiB0byBiZSBvbWl0dGVkIC0tIGluIHRoYXQgY2FzZSwgZXhwZWN0IG5vIGVycm9yIG91dHB1dC4K KyAgICAgIGZvcmVhY2ggbXkgJGVvIChxdyAoT1VUIEVSUikpCisgICAgICAgIHsKKyAgICAgICAg ICBpZiAoIWV4aXN0cyAkZXhwZWN0LT57JGVvfSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgJGV4cGVjdC0+eyRlb30gPSBfY3JlYXRlX2ZpbGUgKCRwcm9ncmFtX25hbWUsICR0ZXN0X25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmRlZiwg JycpOworICAgICAgICAgICAgICBwdXNoIEBqdW5rX2ZpbGVzLCAkZXhwZWN0LT57JGVvfTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAjIEZJWE1FOiBEb2VzIGl0IGV2ZXIgbWFr ZSBzZW5zZSB0byBzcGVjaWZ5IGEgZmlsZW5hbWUgKmFuZCogY29udGVudHMKKyAgICAgICMgaW4g T1VUIG9yIEVSUiBzcGVjPworCisgICAgICAjIEZJWE1FOiB0aGlzIGlzIHJlYWxseSBzdWJvcHRp bWFsLi4uCisgICAgICBteSBAbmV3X2FyZ3M7CisgICAgICBmb3JlYWNoIG15ICRhIChAYXJncykK KyAgICAgICAgeworICAgICAgICAgICRhID0gX2F0X3JlcGxhY2UgJGV4cGVjdCwgJGE7CisgICAg ICAgICAgcHVzaCBAbmV3X2FyZ3MsICRhOworICAgICAgICB9CisgICAgICBAYXJncyA9IEBuZXdf YXJnczsKKworICAgICAgd2FybiAiJHRlc3RfbmFtZS4uLlxuIiBpZiAkdmVyYm9zZTsKKyAgICAg ICZ7JGV4cGVjdC0+e1BSRX19IGlmICRleHBlY3QtPntQUkV9OworICAgICAgbXkgJWFjdHVhbDsK KyAgICAgICRhY3R1YWx7T1VUfSA9ICIkdGVzdF9uYW1lLk8iOworICAgICAgJGFjdHVhbHtFUlJ9 ID0gIiR0ZXN0X25hbWUuRSI7CisgICAgICBwdXNoIEBqdW5rX2ZpbGVzLCAkYWN0dWFse09VVH0s ICRhY3R1YWx7RVJSfTsKKyAgICAgIG15IEBjbWQgPSAoQHByb2csIEBhcmdzLCAiPiAkYWN0dWFs e09VVH0iLCAiMj4gJGFjdHVhbHtFUlJ9Iik7CisgICAgICAkZW52X3ByZWZpeAorICAgICAgICBh bmQgdW5zaGlmdCBAY21kLCAkZW52X3ByZWZpeDsKKyAgICAgIGRlZmluZWQgJGlucHV0X3BpcGVf Y21kCisgICAgICAgIGFuZCB1bnNoaWZ0IEBjbWQsICRpbnB1dF9waXBlX2NtZDsKKyAgICAgIG15 ICRjbWRfc3RyID0gam9pbiAoJyAnLCBAY21kKTsKKworICAgICAgIyBEZWxldGUgZnJvbSB0aGUg ZW52aXJvbm1lbnQgYW55IHN5bWJvbHMgc3BlY2lmaWVkIGJ5IHN5bnRheAorICAgICAgIyBsaWtl IHRoaXM6IHtFTlZfREVMID0+ICdUWid9LgorICAgICAgbXkgJXB1c2hlZF9lbnY7CisgICAgICBm b3JlYWNoIG15ICRlbnZfc3ltIChAZW52X2RlbGV0ZSkKKyAgICAgICAgeworICAgICAgICAgIG15 ICR2YWwgPSBkZWxldGUgJEVOVnskZW52X3N5bX07CisgICAgICAgICAgZGVmaW5lZCAkdmFsCisg ICAgICAgICAgICBhbmQgJHB1c2hlZF9lbnZ7JGVudl9zeW19ID0gJHZhbDsKKyAgICAgICAgfQor CisgICAgICB3YXJuICJSdW5uaW5nIGNvbW1hbmQ6ICckY21kX3N0cidcbiIgaWYgJGRlYnVnOwor ICAgICAgbXkgJHJjID0gMHhmZmZmICYgc3lzdGVtICRjbWRfc3RyOworCisgICAgICAjIFJlc3Rv cmUgYW55IGVudmlyb25tZW50IHNldHRpbmcgd2UgY2hhbmdlZCB2aWEgYSBkZWxldGlvbi4KKyAg ICAgIGZvcmVhY2ggbXkgJGVudl9zeW0gKGtleXMgJXB1c2hlZF9lbnYpCisgICAgICAgIHsKKyAg ICAgICAgICAkRU5WeyRlbnZfc3ltfSA9ICRwdXNoZWRfZW52eyRlbnZfc3ltfTsKKyAgICAgICAg fQorCisgICAgICBpZiAoJHJjID09IDB4ZmYwMCkKKyAgICAgICAgeworICAgICAgICAgIHdhcm4g IiRwcm9ncmFtX25hbWU6IHRlc3QgJHRlc3RfbmFtZSBmYWlsZWQ6IGNvbW1hbmQgZmFpbGVkOlxu IgorICAgICAgICAgICAgLiAiICAnJGNtZF9zdHInOiAkIVxuIjsKKyAgICAgICAgICAkZmFpbCA9 IDE7CisgICAgICAgICAgZ290byBjbGVhbnVwOworICAgICAgICB9CisgICAgICAkcmMgPj49IDgg aWYgJHJjID4gMHg4MDsKKyAgICAgIGlmICgkZXhwZWN0LT57RVhJVH0gIT0gJHJjKQorICAgICAg ICB7CisgICAgICAgICAgd2FybiAiJHByb2dyYW1fbmFtZTogdGVzdCAkdGVzdF9uYW1lIGZhaWxl ZDogZXhpdCBzdGF0dXMgbWlzbWF0Y2g6IgorICAgICAgICAgICAgLiAiICBleHBlY3RlZCAkZXhw ZWN0LT57RVhJVH0sIGdvdCAkcmNcbiI7CisgICAgICAgICAgJGZhaWwgPSAxOworICAgICAgICAg IGdvdG8gY2xlYW51cDsKKyAgICAgICAgfQorCisgICAgICBteSAlYWN0dWFsX2RhdGE7CisgICAg ICAjIFJlY29yZCBhY3R1YWwgc3Rkb3V0IGFuZCBzdGRlcnIgY29udGVudHMsIGlmIFBPU1QgbWF5 IG5lZWQgdGhlbS4KKyAgICAgIGlmICgkZXhwZWN0LT57UE9TVH0pCisgICAgICAgIHsKKyAgICAg ICAgICBmb3JlYWNoIG15ICRlbyAocXcgKE9VVCBFUlIpKQorICAgICAgICAgICAgeworICAgICAg ICAgICAgICBteSAkb3V0X2ZpbGUgPSAkYWN0dWFseyRlb307CisgICAgICAgICAgICAgIG9wZW4g SU4sICRvdXRfZmlsZQorICAgICAgICAgICAgICAgIG9yICh3YXJuCisgICAgICAgICAgICAgICAg ICAgICIkcHJvZ3JhbV9uYW1lOiBjYW5ub3Qgb3BlbiAkb3V0X2ZpbGUgZm9yIHJlYWRpbmc6ICQh XG4iKSwKKyAgICAgICAgICAgICAgICAgICRmYWlsID0gMSwgbmV4dDsKKyAgICAgICAgICAgICAg JGFjdHVhbF9kYXRheyRlb30gPSA8SU4+OworICAgICAgICAgICAgICBjbG9zZSBJTgorICAgICAg ICAgICAgICAgIG9yICh3YXJuICIkcHJvZ3JhbV9uYW1lOiBmYWlsZWQgdG8gcmVhZCAkb3V0X2Zp bGU6ICQhXG4iKSwKKyAgICAgICAgICAgICAgICAgICRmYWlsID0gMTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgfQorCisgICAgICBmb3JlYWNoIG15ICRlbyAocXcgKE9VVCBFUlIpKQorICAgICAg ICB7CisgICAgICAgICAgbXkgJHN1YnN0X2V4cHIgPSAkZXhwZWN0LT57UkVTVUxUX1NVQlNUfS0+ eyRlb307CisgICAgICAgICAgaWYgKGRlZmluZWQgJHN1YnN0X2V4cHIpCisgICAgICAgICAgICB7 CisgICAgICAgICAgICAgIG15ICRvdXQgPSAkYWN0dWFseyRlb307CisgICAgICAgICAgICAgIG15 ICRvcmlnID0gIiRvdXQub3JpZyI7CisKKyAgICAgICAgICAgICAgIyBNb3ZlICRvdXQgYXNpZGUg KHRvICRvcmlnKSwgdGhlbiByZWNyZWF0ZSAkb3V0CisgICAgICAgICAgICAgICMgYnkgdHJhbnNm b3JtaW5nIGVhY2ggbGluZSBvZiAkb3JpZyB2aWEgJHN1YnN0X2V4cHIuCisgICAgICAgICAgICAg IHJlbmFtZSAkb3V0LCAkb3JpZworICAgICAgICAgICAgICAgIG9yICh3YXJuICIkcHJvZ3JhbV9u YW1lOiBjYW5ub3QgcmVuYW1lICRvdXQgdG8gJG9yaWc6ICQhXG4iKSwKKyAgICAgICAgICAgICAg ICAgICRmYWlsID0gMSwgbmV4dDsKKyAgICAgICAgICAgICAgb3BlbiBJTiwgJG9yaWcKKyAgICAg ICAgICAgICAgICBvciAod2FybiAiJHByb2dyYW1fbmFtZTogY2Fubm90IG9wZW4gJG9yaWcgZm9y IHJlYWRpbmc6ICQhXG4iKSwKKyAgICAgICAgICAgICAgICAgICRmYWlsID0gMSwgKHVubGluayAk b3JpZyksIG5leHQ7CisgICAgICAgICAgICAgIHVubGluayAkb3JpZworICAgICAgICAgICAgICAg IG9yICh3YXJuICIkcHJvZ3JhbV9uYW1lOiBjYW5ub3QgdW5saW5rICRvcmlnOiAkIVxuIiksCisg ICAgICAgICAgICAgICAgICAkZmFpbCA9IDE7CisgICAgICAgICAgICAgIG9wZW4gT1VULCAiPiRv dXQiCisgICAgICAgICAgICAgICAgb3IgKHdhcm4gIiRwcm9ncmFtX25hbWU6IGNhbm5vdCBvcGVu ICRvdXQgZm9yIHdyaXRpbmc6ICQhXG4iKSwKKyAgICAgICAgICAgICAgICAgICRmYWlsID0gMSwg bmV4dDsKKyAgICAgICAgICAgICAgd2hpbGUgKGRlZmluZWQgKG15ICRsaW5lID0gPElOPikpCisg ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgZXZhbCAiXCRfID0gXCRsaW5lOyAk c3Vic3RfZXhwcjsgXCRsaW5lID0gXCRfIjsKKyAgICAgICAgICAgICAgICAgIHByaW50IE9VVCAk bGluZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIGNsb3NlIElOOworICAgICAg ICAgICAgICBjbG9zZSBPVVQKKyAgICAgICAgICAgICAgICBvciAod2FybiAiJHByb2dyYW1fbmFt ZTogZmFpbGVkIHRvIHdyaXRlICRvdXQ6ICQhXG4iKSwKKyAgICAgICAgICAgICAgICAgICRmYWls ID0gMSwgbmV4dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgIG15ICRlb19sb3dlciA9IGxj ICRlbzsKKyAgICAgICAgICBfY29tcGFyZV9maWxlcyAoJHByb2dyYW1fbmFtZSwgJHRlc3RfbmFt ZSwgJGVvX2xvd2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAkYWN0dWFseyRlb30sICRl eHBlY3QtPnskZW99KQorICAgICAgICAgICAgYW5kICRmYWlsID0gMTsKKyAgICAgICAgfQorCisg ICAgICBmb3JlYWNoIG15ICRwYWlyIChAcG9zdF9jb21wYXJlKQorICAgICAgICB7CisgICAgICAg ICAgbXkgKCRleHBlY3RlZCwgJGFjdHVhbCkgPSBAJHBhaXI7CisgICAgICAgICAgX2NvbXBhcmVf ZmlsZXMgJHByb2dyYW1fbmFtZSwgJHRlc3RfbmFtZSwgdW5kZWYsICRhY3R1YWwsICRleHBlY3Rl ZAorICAgICAgICAgICAgYW5kICRmYWlsID0gMTsKKyAgICAgICAgfQorCisgICAgY2xlYW51cDoK KyAgICAgICRleHBlY3QtPntQT1NUfQorICAgICAgICBhbmQgJnskZXhwZWN0LT57UE9TVH19ICgk YWN0dWFsX2RhdGF7T1VUfSwgJGFjdHVhbF9kYXRhe0VSUn0pOworCisgICAgfQorCisgICMgRklY TUU6IG1heWJlIHVubGluayBmaWxlcyBpbnNpZGUgdGhlIGJpZyBmb3JlYWNoIGxvb3A/CisgIHVu bGluayBAanVua19maWxlcyBpZiAhICRzYXZlX3RlbXBzOworCisgIHJldHVybiAkZmFpbDsKK30K KworIyBGb3IgZWFjaCB0ZXN0IGluIEAkVEVTVFMsIGdlbmVyYXRlIHR3byBhZGRpdGlvbmFsIHRl c3RzLAorIyBvbmUgdXNpbmcgc3RkaW4sIHRoZSBvdGhlciB1c2luZyBhIHBpcGUuICBJLmUuLCBn aXZlbiB0aGlzIG9uZQorIyBbJ2lkZW0tMCcsIHtJTj0+Jyd9LCB7T1VUPT4nJ31dLAorIyBnZW5l cmF0ZSB0aGVzZToKKyMgWydpZGVtLTAucicsICc8Jywge0lOPT4nJ30sIHtPVVQ9PicnfV0sCisj IFsnaWRlbS0wLnAnLCB7SU5fUElQRT0+Jyd9LCB7T1VUPT4nJ31dLAorIyBHZW5lcmF0ZSBuZXcg dGVzdHMgb25seSBpZiB0aGVyZSBpcyBleGFjdGx5IG9uZSBpbnB1dCBzcGVjLgorIyBUaGUgcmV0 dXJuZWQgbGlzdCBvZiB0ZXN0cyBjb250YWlucyBlYWNoIGlucHV0IHRlc3QsIGZvbGxvd2VkCisj IGJ5IHplcm8gb3IgdHdvIGRlcml2ZWQgdGVzdHMuCitzdWIgdHJpcGxlX3Rlc3QoJCkKK3sKKyAg bXkgKCR0ZXN0cykgPSBAXzsKKyAgbXkgQG5ldzsKKyAgZm9yZWFjaCBteSAkdCAoQCR0ZXN0cykK KyAgICB7CisgICAgICBwdXNoIEBuZXcsICR0OworCisgICAgICBteSBAaW47CisgICAgICBteSBA YXJnczsKKyAgICAgIG15IEBsaXN0X29mX2hhc2g7CisgICAgICBmb3JlYWNoIG15ICRlIChAJHQp CisgICAgICAgIHsKKyAgICAgICAgICAhcmVmICRlCisgICAgICAgICAgICBhbmQgcHVzaCAoQGFy Z3MsICRlKSwgbmV4dDsKKworICAgICAgICAgIHJlZiAkZSAmJiByZWYgJGUgZXEgJ0hBU0gnCisg ICAgICAgICAgICBvciAod2FybiAiJDA6ICR0LT5bMF06IHVuZXhwZWN0ZWQgZW50cnkgdHlwZVxu IiksIG5leHQ7CisgICAgICAgICAgZGVmaW5lZCAkZS0+e0lOfQorICAgICAgICAgICAgYW5kIChw dXNoIEBpbiwgJGUtPntJTn0pLCBuZXh0OworICAgICAgICAgIHB1c2ggQGxpc3Rfb2ZfaGFzaCwg JGU7CisgICAgICAgIH0KKyAgICAgICMgQWRkIHZhcmlhbnRzIElGRiB0aGVyZSBpcyBleGFjdGx5 IG9uZSBpbnB1dCBmaWxlLgorICAgICAgQGluID09IDEKKyAgICAgICAgb3IgbmV4dDsKKyAgICAg IHNoaWZ0IEBhcmdzOyAjIGRpc2NhcmQgdGVzdCBuYW1lCisgICAgICBwdXNoIEBuZXcsIFsiJHQt PlswXS5yIiwgQGFyZ3MsICc8Jywge0lOID0+ICRpblswXX0sIEBsaXN0X29mX2hhc2hdOworICAg ICAgcHVzaCBAbmV3LCBbIiR0LT5bMF0ucCIsIEBhcmdzLCB7SU5fUElQRSA9PiAkaW5bMF19LCBA bGlzdF9vZl9oYXNoXTsKKyAgICB9CisgIHJldHVybiBAbmV3OworfQorCisjIyBwYWNrYWdlIHJl dHVybgorMTsKZGlmZiAtLWdpdCBhL3Rlc3RzL0N1U2tpcC5wbSBiL3Rlc3RzL0N1U2tpcC5wbQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjU2ODhhCi0tLSAvZGV2L251bGwK KysrIGIvdGVzdHMvQ3VTa2lwLnBtCkBAIC0wLDAgKzEsMzkgQEAKK3BhY2thZ2UgQ3VTa2lwOwor IyBTa2lwIGEgdGVzdDogZW1pdCBkaWFnIHRvIGxvZyBhbmQgdG8gc3RkZXJyLCBhbmQgZXhpdCA3 NworCisjIENvcHlyaWdodCAoQykgMjAxMS0yMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1F UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0 aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworIyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwor b3VyICRNRSA9ICQwIHx8ICI8Pz8/PiI7CisKKyMgRW1pdCBhIGRpYWdub3N0aWMgYm90aCB0byBz dGRlcnIgYW5kIHRvICRzdGRlcnJfZmlsZW5vXy4KKyMgRklYTUU6IGRvbid0IGhhcmQtY29kZSB0 aGF0IHZhbHVlICg5KSwgc2luY2UgaXQncyBhbHJlYWR5IGRlZmluZWQgaW4gaW5pdC5jZmcuCitz dWIgc2tpcCAoJCkKK3sKKyAgbXkgKCRtc2cpID0gQF87CisgIG15ICRzdGRlcnJfZmlsZW5vXyA9 IDk7CisgIHdhcm4gJG1zZzsKKyAgb3BlbiBGSCwgIj4mJHN0ZGVycl9maWxlbm9fIgorICAgIG9y IHdhcm4gIiRNRTogZmFpbGVkIHRvIGR1cCBzdGRlcnJcbiI7CisgIHByaW50IEZIICRtc2c7Cisg IGNsb3NlIEZICisgICAgb3Igd2FybiAiJE1FOiBmYWlsZWQgdG8gY2xvc2UgRkQgJHN0ZGVycl9m aWxlbm9fXG4iOworICBleGl0IDc3OworfQorCisxOwpkaWZmIC0tZ2l0IGEvdGVzdHMvQ3VUbXBk aXIucG0gYi90ZXN0cy9DdVRtcGRpci5wbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5mZDY1NTU2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvQ3VUbXBkaXIucG0KQEAgLTAs MCArMSwxMTEgQEAKK3BhY2thZ2UgQ3VUbXBkaXI7CisjIGNyZWF0ZSwgdGhlbiBjaGRpciBpbnRv IGEgdGVtcG9yYXJ5IHN1Yi1kaXJlY3RvcnkKKworIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9m IHRoZSBMaWNlbnNlLCBvcgorIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor CisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuCisKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK3VzZSBz dHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK3VzZSBGaWxlOjpUZW1wOwordXNlIEZpbGU6OkZpbmQ7 CisKK291ciAkTUUgPSAkMCB8fCAiPD8/Pz4iOworCitteSAkZGlyOworCitzdWIgc2tpcF90ZXN0 KCQpCit7CisgIHdhcm4gIiRNRTogc2tpcHBpbmcgdGVzdDogdW5zYWZlIHdvcmtpbmcgZGlyZWN0 b3J5IG5hbWU6ICckX1swXSdcbiI7CisgIGV4aXQgNzc7Cit9CisKK3N1YiBjaG1vZF8xCit7Cisg IG15ICRuYW1lID0gJF87CisKKyAgIyBTa2lwIHN5bWxpbmtzIGFuZCBub24tZGlyZWN0b3JpZXMu CisgIC1sICRuYW1lIHx8ICEtZCBfCisgICAgYW5kIHJldHVybjsKKworICBjaG1vZCAwNzAwLCAk bmFtZTsKK30KKworc3ViIGNobW9kX3RyZWUKK3sKKyAgIyBXaGVuIHRlbXBkaXIgZmFpbHMsIGl0 IGNyb2Frcywgd2hpY2ggbGVhdmVzICRkaXIgdW5kZWZpbmVkLgorICBkZWZpbmVkICRkaXIKKyAg ICBvciByZXR1cm47CisKKyAgIyBQZXJmb3JtIHRoZSBlcXVpdmFsZW50IG9mIGZpbmQgIiRkaXIi IC10eXBlIGQgLXByaW50MHx4YXJncyAtMCBjaG1vZCAtUiA3MDAuCisgIG15ICRvcHRpb25zID0g e3VudGFpbnQgPT4gMSwgd2FudGVkID0+IFwmY2htb2RfMX07CisgIGZpbmQgKCRvcHRpb25zLCAk ZGlyKTsKK30KKworc3ViIGltcG9ydCB7CisgIG15ICRwcmVmaXggPSAkX1sxXTsKKworICAkTUUg ZXEgJy0nICYmIGRlZmluZWQgJHByZWZpeAorICAgIGFuZCAkTUUgPSAkcHJlZml4OworCisgIGlm ICgkcHJlZml4ICF+IC9eXC8vKQorICAgIHsKKyAgICAgIGV2YWwgJ3VzZSBDd2QnOworICAgICAg bXkgJGN3ZCA9ICRAID8gJy4nIDogQ3dkOjpnZXRjd2QoKTsKKyAgICAgICRwcmVmaXggPSAiJGN3 ZC8kcHJlZml4IjsKKyAgICB9CisKKyAgIyBVbnRhaW50IGZvciB0aGUgdXBjb21pbmcgbWtkaXIu CisgICRwcmVmaXggPX4gbSFeKFstK1xAXHcuL10rKSQhCisgICAgb3Igc2tpcF90ZXN0ICRwcmVm aXg7CisgICRwcmVmaXggPSAkMTsKKworICBteSAkb3JpZ2luYWxfcGlkID0gJCQ7CisKKyAgbXkg JG9uX3NpZ19yZW1vdmVfdG1wZGlyID0gc3ViIHsKKyAgICBteSAoJHNpZykgPSBAXzsKKyAgICBp ZiAoJCQgPT0gJG9yaWdpbmFsX3BpZCBhbmQgZGVmaW5lZCAkZGlyKQorICAgICAgeworICAgICAg ICBjaG1vZF90cmVlOworICAgICAgICAjIE9sZGVyIHZlcnNpb25zIG9mIEZpbGU6OlRlbXAgbGFj ayB0aGlzIG1ldGhvZC4KKyAgICAgICAgZXhpc3RzICZGaWxlOjpUZW1wOjpjbGVhbnVwCisgICAg ICAgICAgYW5kICZGaWxlOjpUZW1wOjpjbGVhbnVwOworICAgICAgfQorICAgICRTSUd7JHNpZ30g PSAnREVGQVVMVCc7CisgICAga2lsbCAkc2lnLCAkJDsKKyAgfTsKKworICBmb3JlYWNoIG15ICRz aWcgKHF3IChJTlQgVEVSTSBIVVApKQorICAgIHsKKyAgICAgICRTSUd7JHNpZ30gPSAkb25fc2ln X3JlbW92ZV90bXBkaXI7CisgICAgfQorCisgICRkaXIgPSBGaWxlOjpUZW1wOjp0ZW1wZGlyKCIk cHJlZml4LnRtcC1YWFhYIiwgQ0xFQU5VUCA9PiAxICk7CisgIGNoZGlyICRkaXIKKyAgICBvciB3 YXJuICIkTUU6IGZhaWxlZCB0byBjaGRpciB0byAkZGlyOiAkIVxuIjsKK30KKworRU5EIHsKKyAg IyBNb3ZlIGN3ZCBvdXQgb2YgdGhlIGRpcmVjdG9yeSB3ZSdyZSBhYm91dCB0byByZW1vdmUuCisg ICMgVGhpcyBpcyByZXF1aXJlZCBvbiBzb21lIHN5c3RlbXMsIGFuZCBieSBzb21lIHZlcnNpb25z IG9mIEZpbGU6OlRlbXAuCisgIGNoZGlyICcuLicKKyAgICBvciB3YXJuICIkTUU6IGZhaWxlZCB0 byBjaGRpciB0byAuLiBmcm9tICRkaXI6ICQhXG4iOworCisgIG15ICRzYXZlZF9lcnJubyA9ICQ/ OworICBjaG1vZF90cmVlOworICAkPyA9ICRzYXZlZF9lcnJubzsKK30KKworMTsKZGlmZiAtLWdp dCBhL3Rlc3RzL01ha2VmaWxlLmFtIGIvdGVzdHMvTWFrZWZpbGUuYW0KaW5kZXggNjI5ZDMyMi4u Y2NkMDE5NiAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuYW0KKysrIGIvdGVzdHMvTWFrZWZp bGUuYW0KQEAgLTE0LDYgKzE0LDI2IEBACiAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAjIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKK1RF U1RfRVhURU5TSU9OUyA9IC5zaCAucGwKKworaWYgSEFWRV9QRVJMCitURVNUU1VJVEVfUEVSTCA9 ICQoUEVSTCkKK2Vsc2UKK1RFU1RTVUlURV9QRVJMID0gJChTSEVMTCkgJChzcmNkaXIpL25vLXBl cmwKK2VuZGlmCisKKyMgT3B0aW9ucyBwYXNzZWQgdG8gdGhlIHBlcmwgaW52b2NhdGlvbnMgcnVu bmluZyB0aGUgcGVybCB0ZXN0IHNjcmlwdHMuCitURVNUU1VJVEVfUEVSTF9PUFRJT05TID0gLXcg LUkkKHNyY2RpcikgLU1Db3JldXRpbHMgLU1DdVNraXAKKyMgJyRmJyBpcyBzZXQgYnkgdGhlIEF1 dG9tYWtlLWdlbmVyYXRlZCB0ZXN0IGhhcm5lc3MgdG8gdGhlIHBhdGggb2YgdGhlCisjIGN1cnJl bnQgdGVzdCBzY3JpcHQgc3RyaXBwZWQgb2YgVlBBVEggY29tcG9uZW50cywgYW5kIGlzIHVzZWQg YnkgdGhlCisjIEN1VG1wZGlyIG1vZHVsZSB0byBkZXRlcm1pbmUgdGhlIG5hbWUgb2YgdGhlIHRl bXBvcmFyeSBmaWxlcyB0byBiZQorIyB1c2VkLiAgTm90ZSB0aGF0ICRmIGlzIGEgc2hlbGwgdmFy aWFibGUsIG5vdCBhIG1ha2UgbWFjcm8sIHNvIHRoZSB1c2UKKyMgb2YgJyQkZicgYmVsb3cgaXMg Y29ycmVjdCwgYW5kIG5vdCBhIHR5cG8uCitURVNUU1VJVEVfUEVSTF9PUFRJT05TICs9IC1NIkN1 VG1wZGlyIHF3KCQkZikiCisKK1NIX0xPR19DT01QSUxFUiA9ICQoU0hFTEwpCitQTF9MT0dfQ09N UElMRVIgPSAkKFRFU1RTVUlURV9QRVJMKSAkKFRFU1RTVUlURV9QRVJMX09QVElPTlMpCisKIGNo ZWNrX1BST0dSQU1TID0gZ2V0LW1iLWN1ci1tYXggZGZhLW1hdGNoLWF1eAogQU1fQ1BQRkxBR1Mg PSAtSSQodG9wX2J1aWxkZGlyKS9saWIgLUkkKHRvcF9zcmNkaXIpL2xpYiBcCiAgIC1JJCh0b3Bf c3JjZGlyKS9zcmMKQEAgLTEzMSwxMiArMTUxLDE2IEBAIEVYVFJBX0RJU1QgPQkJCQkJXAogICAk KFRFU1RTKQkJCQkJXAogICBicmUuYXdrCQkJCQlcCiAgIGJyZS50ZXN0cwkJCQkJXAorICBDb3Jl dXRpbHMucG0JCQkJCVwKKyAgQ3VTa2lwLnBtCQkJCQlcCisgIEN1VG1wZGlyLnBtCQkJCQlcCiAg IGVyZS5hd2sJCQkJCVwKICAgZXJlLnRlc3RzCQkJCQlcCiAgIGluaXQuY2ZnCQkJCQlcCiAgIGlu aXQuc2gJCQkJCVwKICAga2hhZGFmeS5saW5lcwkJCQkJXAogICBraGFkYWZ5LnJlZ2V4cAkJCQlc CisgIG5vLXBlcmwgICAgICAgCQkJCVwKICAgc3BlbmNlcjEuYXdrCQkJCQlcCiAgIHNwZW5jZXIx LnRlc3RzCQkJCVwKICAgc3BlbmNlcjEtbG9jYWxlLmF3awpkaWZmIC0tZ2l0IGEvdGVzdHMvbm8t cGVybCBiL3Rlc3RzL25vLXBlcmwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u OTU2YTgyNgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL25vLXBlcmwKQEAgLTAsMCArMSw2IEBA CisjISAvYmluL3NoCisjIFBlcmwgaXMgbm90IGF2YWlsYWJsZSwgdGhlIHRlc3Qgc2hvdWxkIGJl IGNvbnNpZGVyZWQgc2tpcHBlZC4KKyMgRkQgOSBzaG91bGQgaGF2ZSBiZWVuIG9wZW5lZCBieSB0 aGUgdGVzdCBzdWl0ZSBoYXJuZXNzLCBwb2ludGluZworIyB0byB0aGUgb3JpZ2luYWwgc3RkZXJy ICh1c3VhbGx5LCB0aGUgdXNlcidzIHRlcm1pbmFsKS4KK2VjaG8gInRlc3Qgc2tpcHBlZDogbm8g dXNhYmxlIHZlcnNpb24gb2YgUGVybCBmb3VuZCIgPiY5CitleGl0IDc3Ci0tIAoyLjMuNwoK --001a11481e0ad33d4e051a2bc1f2-- From debbugs-submit-bounces@debbugs.gnu.org Sat Oct 08 17:15:32 2016 Received: (at 20989-done) by debbugs.gnu.org; 8 Oct 2016 21:15:32 +0000 Received: from localhost ([127.0.0.1]:49082 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bsyxw-0005aL-JG for submit@debbugs.gnu.org; Sat, 08 Oct 2016 17:15:32 -0400 Received: from mail-vk0-f53.google.com ([209.85.213.53]:34611) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bsyxv-0005a7-7b for 20989-done@debbugs.gnu.org; Sat, 08 Oct 2016 17:15:31 -0400 Received: by mail-vk0-f53.google.com with SMTP id b186so68810870vkb.1 for <20989-done@debbugs.gnu.org>; Sat, 08 Oct 2016 14:15:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to; bh=T7eiyA990D+Bvd7Doal0AFijcMk9D0P2eGoHu1v963E=; b=hxGyFlHWW2yDV6okwK5JoTa9rH4PWC1Luv+pPBeJN0sdLg2Fxlr0rznOSafiIp+Rl2 zHJ7czMDRSYUPUHrcrsxK8LUWAp+/HMFMaj69rEBhTgEJUFfGkOs09dRBiIcqekpxv81 2ZghIo+6kt6/Be0kuxfEnKgdzevl1hZvxgrI69oxclLM7fRnlWIO2HHuiaDOxJuqlZpP IdglEggCTpYQRJfrD7F2AvKmDy91GFUWRvS0NrV6Tlu/gKlslQD3MBeg63mCqAh6RLTh jV9es7c4Hzk48tswwQKIUVu/6racZZ5OnajOFkMtIcyV9HY93ju5fCuL2JynUw/xHo26 s4jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to; bh=T7eiyA990D+Bvd7Doal0AFijcMk9D0P2eGoHu1v963E=; b=QOyflpWzHJvuXZIK/zo2mM0xPA8ODBWYSpFdM1mIBg4b8BnHsj33+d+KNMnkSAsJOI 8p/NWq6agu7Qda16+MCPo30sdMVjksWdzs9RLVY8iuK4k/JOqM+21uWYGLig30o7o2HM tWhzGwXDZu4WkVMdLZ8Z3NaI/TjNrSZ4gLM15IwKAcjPSkpwF4uPicuSeS00k9MxDJXW YYIgiTnXmJWApZRZ0h31HF4EYG917h9/fvQEB6WRYPPZat1t0SY7IG0x++ulG7euQSKw PsjM/OG9i1ibwih8OYaKLAfWp7TidZUs38lAe/zG6I8/uyuoa+pDZSd558zOKhgOhkvr 77HA== X-Gm-Message-State: AA6/9RnQDo8ATJT1UN0dcZuNXb41cTC+KVvPQv/br8D8Za2rYGjdayvgSG5OdyEFKBz/sSpUjgf31FetejWBmQ== X-Received: by 10.31.244.15 with SMTP id s15mr18594757vkh.31.1475961325683; Sat, 08 Oct 2016 14:15:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.80.207 with HTTP; Sat, 8 Oct 2016 14:15:05 -0700 (PDT) In-Reply-To: References: From: Jim Meyering Date: Sat, 8 Oct 2016 14:15:05 -0700 X-Google-Sender-Auth: HF885OFVO-HTV004kZu0dX2tod0 Message-ID: Subject: Re: bug#20989: [PATCH] tests: add coreutils' perl-driven test framework To: 20989-done@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 X-Spam-Score: 0.5 (/) X-Debbugs-Envelope-To: 20989-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: 0.5 (/) On Sun, Jul 5, 2015 at 7:35 PM, Jim Meyering wrote: > I want to use this framework (from coreutils) here in grep, too, so... Done, so closing. From unknown Tue Jun 17 01:47:08 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 06 Nov 2016 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator