Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1voHRv-000Q5B-0P for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Feb 2026 08:44:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1voHRu-002mNV-00 for pgsql-hackers@arkaria.postgresql.org; Fri, 06 Feb 2026 08:44:21 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1voHRt-002mNM-0i for pgsql-hackers@lists.postgresql.org; Fri, 06 Feb 2026 08:44:21 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1voHRp-00000000oTR-010n for pgsql-hackers@lists.postgresql.org; Fri, 06 Feb 2026 08:44:19 +0000 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-65808d08423so2824226a12.1 for ; Fri, 06 Feb 2026 00:44:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1770367453; x=1770972253; darn=lists.postgresql.org; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:from:to:cc:subject:date:message-id:reply-to; bh=LvPO3qGTUDT9tYzNNCdel1fFEB4t02Gso8PB2SduZw0=; b=RJgAEmBOtudsiQGEBoUrPMxBGMP6C0xD2yy5rrZ2Wyo9/CsPkYtZPvGUB+LcPl9rRk +HxUru0xwxR5VGCvpvs30stFlk0HLYvVkiWh2AZsLMs2KEYRaBmiUKZ9hYJR9cT0AC0W QKZ1tojkGRfhTCZzLCyeihDO1rgaeLWWt9iF+TfYsJNMCybv82XjF1y+0L1tjGezVd8G Wd91mTSZEP3f3Ziu+Doerk5mC8Zch/E2nMx/tnDZsuhIw3zbp0zWDHmtyNTD9/HnU06v Zng4C9ZlnIPD0NHCsoxk1oRWm6bpLQaoWGzYKCLfrXiyDG8PhKL9q0gd3msd4H+g6lHK mzxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770367453; x=1770972253; h=in-reply-to:references:mime-version:from:to:subject:cc:message-id :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LvPO3qGTUDT9tYzNNCdel1fFEB4t02Gso8PB2SduZw0=; b=kOmXOaGxvmE4VGF92Vz8sV+gujYAUFVti64rvGjNlbgetUaGuYWAS5SsGFHltgM2N8 VcCLBHbvsilKCtz0t0wwMKdepWgw2B/BfoiWlkk/qsUY7axEQsfmG8S5MRKuiJ6Ivhzc y4crT0XKaQJcubmsno89d/s8nBF4yWoVpHlVHzEY7joA4rkP7YtzyyrxGmvBDHxxvQxb dVPTW7dOrnDyQT0zDRD1AHsuG2hKd7mu1bgxcLN8c+66cfvPbGDjO8A1bWBiOerybut2 h+N7mAgeXsKniSrI8VHTEDKo+1BMOuyqdtNeiW4tOnIchf7cfkVzX8w+5242YEbSF125 mOXA== X-Forwarded-Encrypted: i=1; AJvYcCU2sw4mPWFgmbMFEMuvnozAla4+AHZoJRgNgAar4tI8vg/EOnjNEeV0JJDTjwjJEMo975Qbb1ioxdPQkPaP@lists.postgresql.org X-Gm-Message-State: AOJu0YxHWP5t/Szk/KIaitFZtt8C81znydvW8AeeIU9Yf0eznVK0eG2D i4OFYCxXYEBs9Auxb0DifxQgJw5nKpdReE/oxhdZ42rLkvALUiGlCq8uECDFrTC7ZmM= X-Gm-Gg: AZuq6aKTX3zfsxiWfJDyQ/fLMQGnd/VauGBVZ7WbwaxHD2tV8IRWUNVuPv5tjRP7zSE Z6M1I6tmIR+NYAMuwdsS2UAOYNId6FA/7RLOYt9XQ1EspRhDpTdS54oKHTNzZifNAApF7arNQyc i4ffpMWarGYAWdZLthymfFCj4EaipX1sONUvOFfjE3qcIf3XFqhPgMoKHH56QALAPDjK3QuvQe/ RY5hBcoA7ZUEShjjfySVrKyRQRMS8THeeYa/NH5D/1M85t9HW/EI0/uc2IudMHSnBxRKlRhkUmr 8a8mEPbLXXExwYdcgw5n2CFiRH3xTZcjZ4JGbPgnZwlEF9i/veXk2TrnUyjjNkXW7e3klS1PUg9 z2NHkscgB2MAvuwSJTBYwkVQ88nZVzdExVWqpDkymbCIpXB1HDhpuMgnSagjsKXArpM1dIa9WZV K05PhMIgT3SSvlUv/kiudLMcJ44RpuQ8CV/fbJj51J7Ke4RQ== X-Received: by 2002:a17:907:96a3:b0:b87:8172:257 with SMTP id a640c23a62f3a-b8edf47dd02mr100972166b.64.1770367453132; Fri, 06 Feb 2026 00:44:13 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8eda7c310bsm64955866b.26.2026.02.06.00.44.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 06 Feb 2026 00:44:12 -0800 (PST) Content-Type: multipart/mixed; boundary=1cf4537b425b1bc8c4d276c88dfa37219c200b20ce8854480f74603503b5 Date: Fri, 06 Feb 2026 09:44:12 +0100 Message-Id: Cc: "Andres Freund" , "PostgreSQL Hackers" Subject: Re: meson: Make test output much more useful on failure (both in CI and locally) To: "Nazir Bilal Yavuz" From: "Jelte Fennema-Nio" MIME-Version: 1.0 References: In-Reply-To: X-TUID: aJ19b+uUB8hk List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --1cf4537b425b1bc8c4d276c88dfa37219c200b20ce8854480f74603503b5 Content-Type: multipart/alternative; boundary=8a2aa5e463ad8dee7d9c1b2845e14241fe9aa5eb2a2538e1684669a7d16b --8a2aa5e463ad8dee7d9c1b2845e14241fe9aa5eb2a2538e1684669a7d16b Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Tue, 3 Feb 2026 at 11:20, Nazir Bilal Yavuz wrote: > v2-0001: > > This doesn't really read the first 80 lines of the combined diff. > Lines with more than 1023 characters will be counted and printed as > multiple lines. I don't think this is a problem but clearing this > would be helpful. Other than that, it looks good to me. I was annoyed by this, so I actually fixed it (manually tested by changing the buffer to 10 bytes). This meant I needed to introduce DIAG_DETAIL and DIAG_END, like we already had NOTE_DETAIL and NOTE_END. > v2-0002: > > I am just curious if test failure can cause file descriptors not being > properly closed and then the IPC::Run:run() call will hang > indefinitely like the pg_ctl case. Other than that, it looks good to > me. No, this issue only happens because for the 'pg_ctl restart' process, its the child postmaster process outlives the pg_ctl process, WHILE still having the stdout/stderr file descriptor open. As long as all the subprocesses exit, the file descriptor will be closed by the OS automatically. So, this problem really only occurs in these daemon spawning situations. Which for us in practice is only for pg_ctl start/restart. --8a2aa5e463ad8dee7d9c1b2845e14241fe9aa5eb2a2538e1684669a7d16b-- --1cf4537b425b1bc8c4d276c88dfa37219c200b20ce8854480f74603503b5 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0001-pg_regress-Include-diffs-in-output.patch Content-Type: text/x-patch; charset=utf-8; name=v3-0001-pg_regress-Include-diffs-in-output.patch RnJvbSA0ZTk4ZjI3MDljZTc1OTRmOGViYmI0ZjY5MjZlN2YzNzY3YjFmNGUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDI2IEphbiAyMDI2IDAwOjE1OjMwICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 MyAxLzVdIHBnX3JlZ3Jlc3M6IEluY2x1ZGUgZGlmZnMgaW4gb3V0cHV0CgpXaGVuZXZlciBwZ19y ZWdyZXNzIGZhaWxzIHRoZXJlJ3MgYW4gaW5kaXJlY3Rpb24gdG8gYWN0dWFsbHkgZ2V0IHRvIHRo ZQpmYWlsdXJlIHJlYXNvbi4gTG9jYWxseSBpdCdzIHBvc3NpYmxlIHRvIGNvcHkgcGFzdGUgdGhl IGZpbGVuYW1lIGFuZApvcGVuIHRoZSBmaWxlLCBidXQgaW4gQ0kgaXQncyBuZWNlc3NhcnkgdG8g bWFudWFsbHkgdHJhdmVyc2UgdGhlCmRpcmVjdG9yeSBzdHJ1Y3R1cmUgYnkgY2xpY2tpbmcgYW5k IHNjcm9sbGluZyBhIGJ1bmNoIG9mIHRpbWUuCgpUaGlzIGNoYW5nZSBzdGFydHMgcHJpbnRpbmcg dGhlIGZpcnN0IDgwIGxpbmVzIG9mIHRoZSByZWdyZXNzaW9uLmRpZmZzCmZpbGUgYXMgVEFQIGRp YWdub3N0aWNzLiBTbyBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gb3BlbiB0aGUKcmVncmVzc2lvbi5k aWZmcyBmaWxlIGluIG1hbnkgY2FzZXMuCi0tLQogc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNz LmMgfCA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDc0IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzcy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzLmMK aW5kZXggYjVjMGNiNjQ3YTguLjAyNzlmNDI5OTIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3BnX3JlZ3Jlc3MuYworKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3MuYwpAQCAt ODQsNiArODQsOCBAQCBjb25zdCBjaGFyICpwcmV0dHlfZGlmZl9vcHRzID0gIi0tc3RyaXAtdHJh aWxpbmctY3IgLVUzIjsKIHR5cGVkZWYgZW51bSBUQVB0eXBlCiB7CiAJRElBRyA9IDAsCisJRElB R19ERVRBSUwsCisJRElBR19FTkQsCiAJQkFJTCwKIAlOT1RFLAogCU5PVEVfREVUQUlMLApAQCAt MTMxLDYgKzEzMyw3IEBAIHN0YXRpYyBjaGFyIHNvY2tzZWxmW01BWFBHUEFUSF07CiBzdGF0aWMg Y2hhciBzb2NrbG9ja1tNQVhQR1BBVEhdOwogc3RhdGljIFN0cmluZ0luZm8gZmFpbGVkX3Rlc3Rz ID0gTlVMTDsKIHN0YXRpYyBib29sIGluX25vdGUgPSBmYWxzZTsKK3N0YXRpYyBib29sIGluX2Rp YWcgPSBmYWxzZTsKIAogc3RhdGljIF9yZXN1bHRtYXAgKnJlc3VsdG1hcCA9IE5VTEw7CiAKQEAg LTE2Miw2ICsxNjUsOCBAQCBzdGF0aWMgdm9pZCBwc3FsX2VuZF9jb21tYW5kKFN0cmluZ0luZm8g YnVmLCBjb25zdCBjaGFyICpkYXRhYmFzZSk7CiAjZGVmaW5lIG5vdGUoLi4uKQkJCWVtaXRfdGFw X291dHB1dChOT1RFLCBfX1ZBX0FSR1NfXykKICNkZWZpbmUgbm90ZV9kZXRhaWwoLi4uKQllbWl0 X3RhcF9vdXRwdXQoTk9URV9ERVRBSUwsIF9fVkFfQVJHU19fKQogI2RlZmluZSBkaWFnKC4uLikJ CQllbWl0X3RhcF9vdXRwdXQoRElBRywgX19WQV9BUkdTX18pCisjZGVmaW5lIGRpYWdfZGV0YWls KC4uLikJZW1pdF90YXBfb3V0cHV0KERJQUdfREVUQUlMLCBfX1ZBX0FSR1NfXykKKyNkZWZpbmUg ZGlhZ19lbmQoKQkJCWVtaXRfdGFwX291dHB1dChESUFHX0VORCwgIlxuIik7CiAjZGVmaW5lIG5v dGVfZW5kKCkJCQllbWl0X3RhcF9vdXRwdXQoTk9URV9FTkQsICJcbiIpOwogI2RlZmluZSBiYWls X25vYXRleGl0KC4uLikJYmFpbF9vdXQodHJ1ZSwgX19WQV9BUkdTX18pCiAjZGVmaW5lIGJhaWwo Li4uKQkJCWJhaWxfb3V0KGZhbHNlLCBfX1ZBX0FSR1NfXykKQEAgLTM1Niw3ICszNjEsNyBAQCBl bWl0X3RhcF9vdXRwdXRfdihUQVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBh cmdwKQogCSAqIEJhaWwgbWVzc2FnZSBpcyBhbHNvIHByaW50ZWQgdG8gc3RkZXJyIHRvIGFpZCBk ZWJ1Z2dpbmcgdW5kZXIgYSBoYXJuZXNzCiAJICogd2hpY2ggbWlnaHQgb3RoZXJ3aXNlIG5vdCBl bWl0IHN1Y2ggYW4gaW1wb3J0YW50IG1lc3NhZ2UuCiAJICovCi0JaWYgKHR5cGUgPT0gRElBRyB8 fCB0eXBlID09IEJBSUwpCisJaWYgKHR5cGUgPT0gRElBRyB8fCB0eXBlID09IERJQUdfREVUQUlM IHx8IHR5cGUgPT0gRElBR19FTkQgfHwgdHlwZSA9PSBCQUlMKQogCQlmcCA9IHN0ZGVycjsKIAll bHNlCiAJCWZwID0gc3Rkb3V0OwpAQCAtMzY1LDkgKzM3MCwxMiBAQCBlbWl0X3RhcF9vdXRwdXRf dihUQVB0eXBlIHR5cGUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdwKQogCSAqIElmIHdl IGFyZSBlbmRpbmcgYSBub3RlX2RldGFpbCBsaW5lIHdlIGNhbiBhdm9pZCBmdXJ0aGVyIHByb2Nl c3NpbmcgYW5kCiAJICogaW1tZWRpYXRlbHkgcmV0dXJuIGZvbGxvd2luZyBhIG5ld2xpbmUuCiAJ ICovCi0JaWYgKHR5cGUgPT0gTk9URV9FTkQpCisJaWYgKHR5cGUgPT0gTk9URV9FTkQgfHwgdHlw ZSA9PSBESUFHX0VORCkKIAl7Ci0JCWluX25vdGUgPSBmYWxzZTsKKwkJaWYgKHR5cGUgPT0gTk9U RV9FTkQpCisJCQlpbl9ub3RlID0gZmFsc2U7CisJCWVsc2UKKwkJCWluX2RpYWcgPSBmYWxzZTsK IAkJZnByaW50ZihmcCwgIlxuIik7CiAJCWlmIChsb2dmaWxlKQogCQkJZnByaW50Zihsb2dmaWxl LCAiXG4iKTsKQEAgLTM4Miw3ICszOTAsOCBAQCBlbWl0X3RhcF9vdXRwdXRfdihUQVB0eXBlIHR5 cGUsIGNvbnN0IGNoYXIgKmZtdCwgdmFfbGlzdCBhcmdwKQogCSAqICcjJyBjaGFyYWN0ZXIuIFdl IHByaW50IHRoZSBCYWlsIG1lc3NhZ2UgbGlrZSB0aGlzIHRvby4KIAkgKi8KIAlpZiAoKHR5cGUg PT0gTk9URSB8fCB0eXBlID09IERJQUcgfHwgdHlwZSA9PSBCQUlMKQotCQl8fCAodHlwZSA9PSBO T1RFX0RFVEFJTCAmJiAhaW5fbm90ZSkpCisJCXx8ICh0eXBlID09IE5PVEVfREVUQUlMICYmICFp bl9ub3RlKQorCQl8fCAodHlwZSA9PSBESUFHX0RFVEFJTCAmJiAhaW5fZGlhZykpCiAJewogCQlm cHJpbnRmKGZwLCAiIyAiKTsKIAkJaWYgKGxvZ2ZpbGUpCkBAIC00MDMsNiArNDEyLDggQEAgZW1p dF90YXBfb3V0cHV0X3YoVEFQdHlwZSB0eXBlLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJn cCkKIAkgKi8KIAlpZiAodHlwZSA9PSBOT1RFX0RFVEFJTCkKIAkJaW5fbm90ZSA9IHRydWU7CisJ aWYgKHR5cGUgPT0gRElBR19ERVRBSUwpCisJCWluX2RpYWcgPSB0cnVlOwogCiAJLyoKIAkgKiBJ ZiB0aGlzIHdhcyBhIEJhaWwgbWVzc2FnZSwgdGhlIGJhaWwgcHJvdG9jb2wgbWVzc2FnZSBtdXN0 IGdvIHRvIHN0ZG91dApAQCAtNDE3LDcgKzQyOCw3IEBAIGVtaXRfdGFwX291dHB1dF92KFRBUHR5 cGUgdHlwZSwgY29uc3QgY2hhciAqZm10LCB2YV9saXN0IGFyZ3ApCiAKIAl2YV9lbmQoYXJncF9s b2dmaWxlKTsKIAotCWlmICh0eXBlICE9IE5PVEVfREVUQUlMKQorCWlmICh0eXBlICE9IE5PVEVf REVUQUlMICYmIHR5cGUgIT0gRElBR19ERVRBSUwpCiAJewogCQlmcHJpbnRmKGZwLCAiXG4iKTsK IAkJaWYgKGxvZ2ZpbGUpCkBAIC0xNDE0LDYgKzE0MjUsNyBAQCByZXN1bHRzX2RpZmZlcihjb25z dCBjaGFyICp0ZXN0bmFtZSwgY29uc3QgY2hhciAqcmVzdWx0c2ZpbGUsIGNvbnN0IGNoYXIgKmRl ZmF1bAogCWludAkJCWJlc3RfbGluZV9jb3VudDsKIAlpbnQJCQlpOwogCWludAkJCWw7CisJbG9u ZwkJc3RhcnRwb3M7CiAJY29uc3QgY2hhciAqcGxhdGZvcm1fZXhwZWN0ZmlsZTsKIAogCS8qCkBA IC0xNTIxLDIyICsxNTMzLDcxIEBAIHJlc3VsdHNfZGlmZmVyKGNvbnN0IGNoYXIgKnRlc3RuYW1l LCBjb25zdCBjaGFyICpyZXN1bHRzZmlsZSwgY29uc3QgY2hhciAqZGVmYXVsCiAJICogYXBwZW5k IHRvIHRoZSBkaWZmcyBzdW1tYXJ5IGZpbGUuCiAJICovCiAKLQkvKiBXcml0ZSBkaWZmIGhlYWRl ciAqLwotCWRpZmZmaWxlID0gZm9wZW4oZGlmZmZpbGVuYW1lLCAiYSIpOworCWRpZmZmaWxlID0g Zm9wZW4oZGlmZmZpbGVuYW1lLCAiYSsiKTsKIAlpZiAoZGlmZmZpbGUpCiAJeworCQlmc2Vlayhk aWZmZmlsZSwgMCwgU0VFS19FTkQpOworCQlzdGFydHBvcyA9IGZ0ZWxsKGRpZmZmaWxlKTsKIAkJ ZnByaW50ZihkaWZmZmlsZSwKIAkJCQkiZGlmZiAlcyAlcyAlc1xuIiwKIAkJCQlwcmV0dHlfZGlm Zl9vcHRzLCBiZXN0X2V4cGVjdF9maWxlLCByZXN1bHRzZmlsZSk7CisJCWZmbHVzaChkaWZmZmls ZSk7CisKKwkJLyogUnVuIGRpZmYgKi8KKwkJc25wcmludGYoY21kLCBzaXplb2YoY21kKSwKKwkJ CQkgImRpZmYgJXMgXCIlc1wiIFwiJXNcIiA+PiBcIiVzXCIiLAorCQkJCSBwcmV0dHlfZGlmZl9v cHRzLCBiZXN0X2V4cGVjdF9maWxlLCByZXN1bHRzZmlsZSwgZGlmZmZpbGVuYW1lKTsKKwkJcnVu X2RpZmYoY21kLCBkaWZmZmlsZW5hbWUpOworCisJCS8qIEVtaXQgZGlmZiBhcyBUQVAgZGlhZ25v c3RpY3MgKi8KKwkJeworCQkJLyoKKwkJCSAqIEluIGNhc2Ugb2YgYSBjcmFzaCB0aGUgZGlmZiBj YW4gYmUgaHVnZSBhbmQgYWxsIG9mIHRoZQorCQkJICogc3Vic2VxdWVudCB0ZXN0cyB3aWxsIGZh aWwgd2l0aCBlc3NlbnRpYWxseSB1c2VsZXNzIGRpZmZzIHRvby4KKwkJCSAqIFNvIHRvIGF2b2lk IGZsb29kaW5nIHRoZSBvdXRwdXQsIHdoaWxlIHN0aWxsIHByb3ZpZGluZyB1c2VmdWwKKwkJCSAq IGluZm8gaW4gbW9zdCBjYXNlcyB3ZSBvdXRwdXQgb25seSB0aGUgZmlyc3QgODAgbGluZXMgb2Yg dGhlCisJCQkgKiAqY29tYmluZWQqIGRpZmYuIFRoZSBudW1iZXIgODAgaXMgY2hvc2VuIHNvIHRo YXQgd2Ugb3V0cHV0IGxlc3MKKwkJCSAqIHRoYW4gMTAwIGxpbmVzIG9mIGRpYWdub3N0aWNzIHBl ciBwZ19yZWdyZXNzIHJ1bi4gT3RoZXJ3aXNlIGlmCisJCQkgKiBtZXNvbiBpcyBydW4gd2l0aCB0 aGUgLS1xdWlldCBmbGFnIG9ubHkgdGhlIGxhc3QgMTAwIGxpbmVzIGFyZQorCQkJICogc2hvd24g YW5kIHVzdWFsbHkgdGhlIG1vc3QgdXNlZnVsIGluZm9ybWF0aW9uIGlzIGFjdHVhbGx5IGluCisJ CQkgKiB0aGUgZmlyc3QgZmV3IGxpbmVzCisJCQkgKi8KKwkJCXN0YXRpYyBpbnQJbmxpbmVzID0g MDsKKwkJCWNvbnN0IGludAltYXhfZGlmZl9saW5lcyA9IDgwOworCQkJY2hhcgkJbGluZVsxMDI0 XTsKKworCQkJZnNlZWsoZGlmZmZpbGUsIHN0YXJ0cG9zLCBTRUVLX1NFVCk7CisJCQl3aGlsZSAo bmxpbmVzIDw9IG1heF9kaWZmX2xpbmVzICYmCisJCQkJICAgZmdldHMobGluZSwgc2l6ZW9mKGxp bmUpLCBkaWZmZmlsZSkpCisJCQl7CisJCQkJc2l6ZV90CQlsZW4gPSBzdHJsZW4obGluZSk7CisJ CQkJYm9vbAkJbmV3bGluZV9mb3VuZCA9IChsZW4gPiAwICYmIGxpbmVbbGVuIC0gMV0gPT0gJ1xu Jyk7CisKKwkJCQlpZiAobmV3bGluZV9mb3VuZCkKKwkJCQkJbGluZVtsZW4gLSAxXSA9ICdcMCc7 CisKKwkJCQlkaWFnX2RldGFpbCgiJXMiLCBsaW5lKTsKKwkJCQlpZiAobmV3bGluZV9mb3VuZCkK KwkJCQl7CisJCQkJCWRpYWdfZW5kKCk7CisKKwkJCQkJaWYgKCsrbmxpbmVzID4gbWF4X2RpZmZf bGluZXMpCisJCQkJCQlkaWFnKCIoZGlmZiBvdXRwdXQgdHJ1bmNhdGVkIGFuZCBzaWxlbmNpbmcg b3V0cHV0IGZvciBmdXJ0aGVyIGZhaWxpbmcgdGVzdHMuLi4pIik7CisJCQkJfQorCQkJfQorCisJ CQlpZiAoaW5fZGlhZykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIElmIHRoZXJlIHdhcyBubyBmaW5h bCBuZXdsaW5lIGZvciBzb21lIHJlYXNvbiwgd2Ugc2hvdWxkCisJCQkJICogc3RpbGwgZW5kIHRo ZSBkaWFnbm9zdGljLgorCQkJCSAqLworCQkJCWRpYWdfZW5kKCk7CisJCQl9CisJCX0KIAkJZmNs b3NlKGRpZmZmaWxlKTsKIAl9CiAKLQkvKiBSdW4gZGlmZiAqLwotCXNucHJpbnRmKGNtZCwgc2l6 ZW9mKGNtZCksCi0JCQkgImRpZmYgJXMgXCIlc1wiIFwiJXNcIiA+PiBcIiVzXCIiLAotCQkJIHBy ZXR0eV9kaWZmX29wdHMsIGJlc3RfZXhwZWN0X2ZpbGUsIHJlc3VsdHNmaWxlLCBkaWZmZmlsZW5h bWUpOwotCXJ1bl9kaWZmKGNtZCwgZGlmZmZpbGVuYW1lKTsKLQogCXVubGluayhkaWZmKTsKIAly ZXR1cm4gdHJ1ZTsKIH0KCmJhc2UtY29tbWl0OiAxZWIwOWVkNjNhOGQ4MDYzZGM2YmI3NWM4ZjMx ZWM1NjRiZjM1MjUwCi0tIAoyLjUyLjAKCg== --1cf4537b425b1bc8c4d276c88dfa37219c200b20ce8854480f74603503b5 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0002-perl-tap-Show-failed-command-output.patch Content-Type: text/x-patch; charset=utf-8; name=v3-0002-perl-tap-Show-failed-command-output.patch RnJvbSA4ZjQ1Mzg5MzBlNWY2NTg5Mzk3MDhlNmYzZmIxMjNmOTExYzdhMWYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDI2IEphbiAyMDI2IDA5OjA5OjExICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 MyAyLzVdIHBlcmwgdGFwOiBTaG93IGZhaWxlZCBjb21tYW5kIG91dHB1dAoKVGhpcyBhZGRzIHRo ZSBvdXRwdXQgb2YgZmFpbGVkIGNvbW1hbmRzIHRvIHRoZSBUQVAgb3V0cHV0LiBCZWZvcmUgYQpm YWlsZWQgbGlicHFfcGlwZWxpbmUgdGVzdCB3b3VsZCBsb29rIGxpa2UgdGhpczoKCiAgRmFpbGVk IHRlc3QgJ2xpYnBxX3BpcGVsaW5lIGNhbmNlbCcKICBhdCAvaG9tZS9qZWx0ZS93b3JrL3Bvc3Rn cmVzLTMvc3JjL3Rlc3QvbW9kdWxlcy9saWJwcV9waXBlbGluZS90LzAwMV9saWJwcV9waXBlbGlu ZS5wbCBsaW5lIDU1LgoKTm93IHlvdSBjYW4gYWN0dWFsbHkgc2VlIHRoZSByZWFzb24gb2YgdGhl IGZhaWx1cmU6CgogIEZhaWxlZCB0ZXN0ICdsaWJwcV9waXBlbGluZSBjYW5jZWwnCiAgYXQgL2hv bWUvamVsdGUvd29yay9wb3N0Z3Jlcy0zL3NyYy90ZXN0L21vZHVsZXMvbGlicHFfcGlwZWxpbmUv dC8wMDFfbGlicHFfcGlwZWxpbmUucGwgbGluZSA1NS4KLS0tLS0tLS0tLSBjb21tYW5kIGZhaWxl ZCAtLS0tLS0tLS0tCmxpYnBxX3BpcGVsaW5lIC1yIDcwMCBjYW5jZWwgcG9ydD0yMjA2NyBob3N0 PS90bXAvdTFvd3E1QWppdCBkYm5hbWU9J3Bvc3RncmVzJyBtYXhfcHJvdG9jb2xfdmVyc2lvbj1s YXRlc3QKLS0tLS0tLS0tLS0tLS0gc3RkZXJyIC0tLS0tLS0tLS0tLS0tCnRlc3QgY2FuY2VsbGF0 aW9ucy4uLgpsaWJwcV9waXBlbGluZTozMTU6IHVuZXhwZWN0ZWQgbnVtYmVyIG9mIHJvd3MgcmVj ZWl2ZWQ6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUbyBtYWtlIHN1 cmUgdGhlIG91dHB1dCBpcyBub3QgZmxvb2RlZC4gT25seSB0aGUgZmlyc3QgMzAgYW5kIGxhc3Qg MzAKbGluZXMgb2YgYm90aCBzdGRlcnIgYW5kIHN0ZG91dCBhcmUgc2hvd24uCgpUaGlzIGFsc28g Y2hhbmdlcyB0aGUgMDAxX3N0YXJ0X3N0b3AucGwgdGVzdCB0byBjb25maWd1cmUgYSBsb2dmaWxl CmR1cmluZyBwZ19jdGwgcmVzdGFydC4gT3RoZXJ3aXNlIElQQzo6UnVuIGNhbGwgd2lsbCBoYW5n IGluZGVmaW5pdGVseSwKYmVjYXVzZSB0aGUgc3Rkb3V0IGZpbGUgZGVzY3JpcHRvciB3b24ndCBi ZSBjbG9zZWQgb24gcHJvY2VzcyBleGl0LgotLS0KIHNyYy9iaW4vcGdfY3RsL3QvMDAxX3N0YXJ0 X3N0b3AucGwgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L1V0aWxz LnBtIHwgNTIgKysrKysrKysrKysrKysrKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDcg aW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2N0 bC90LzAwMV9zdGFydF9zdG9wLnBsIGIvc3JjL2Jpbi9wZ19jdGwvdC8wMDFfc3RhcnRfc3RvcC5w bAppbmRleCA5Yjc5ZGUzMTlmMi4uNGEyNWIzNWVkOWMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf Y3RsL3QvMDAxX3N0YXJ0X3N0b3AucGwKKysrIGIvc3JjL2Jpbi9wZ19jdGwvdC8wMDFfc3RhcnRf c3RvcC5wbApAQCAtMTEyLDcgKzExMiw3IEBAIFNLSVA6CiAJb2soY2hlY2tfbW9kZV9yZWN1cnNp dmUoIiR0ZW1wZGlyL2RhdGEiLCAwNzUwLCAwNjQwKSk7CiB9CiAKLWNvbW1hbmRfb2soWyAncGdf Y3RsJywgJ3Jlc3RhcnQnLCAnLS1wZ2RhdGEnID0+ICIkdGVtcGRpci9kYXRhIiBdLAorY29tbWFu ZF9vayhbICdwZ19jdGwnLCAncmVzdGFydCcsICctLXBnZGF0YScgPT4gIiR0ZW1wZGlyL2RhdGEi LCAnLS1sb2cnID0+ICRsb2dGaWxlTmFtZSBdLAogCSdwZ19jdGwgcmVzdGFydCB3aXRoIHNlcnZl ciBydW5uaW5nJyk7CiAKIHN5c3RlbV9vcl9iYWlsICdwZ19jdGwnLCAnc3RvcCcsICctLXBnZGF0 YScgPT4gIiR0ZW1wZGlyL2RhdGEiOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jl U1FML1Rlc3QvVXRpbHMucG0gYi9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9VdGlscy5w bQppbmRleCBmZjg0M2VlY2M2ZS4uNWM0NTg2NTU4YmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Bl cmwvUG9zdGdyZVNRTC9UZXN0L1V0aWxzLnBtCisrKyBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNR TC9UZXN0L1V0aWxzLnBtCkBAIC05MzcsNiArOTM3LDM2IEBAIHN1YiBkaXJfc3ltbGluawogCWRp ZSAiTm8gJG5ld25hbWUiIHVubGVzcyAtZSAkbmV3bmFtZTsKIH0KIAorIyBMb2cgY29tbWFuZCBv dXRwdXQuIFRydW5jYXRlcyB0byBmaXJzdC9sYXN0IDMwIGxpbmVzIGlmIG92ZXIgNjAgbGluZXMu CitzdWIgX2RpYWdfY29tbWFuZF9vdXRwdXQKK3sKKwlteSAoJGNtZCwgJHN0ZG91dCwgJHN0ZGVy cikgPSBAXzsKKworCWRpYWcoam9pbigiICIsIEAkY21kKSk7CisKKwlmb3IgbXkgJGNoYW5uZWwg KFsnc3Rkb3V0JywgJHN0ZG91dF0sIFsnc3RkZXJyJywgJHN0ZGVycl0pCisJeworCQlteSAoJG5h bWUsICRvdXRwdXQpID0gQCRjaGFubmVsOworCQluZXh0IHVubGVzcyAkb3V0cHV0OworCisJCWRp YWcoIi0tLS0tLS0tLS0tLS0tICRuYW1lIC0tLS0tLS0tLS0tLS0tIik7CisJCW15IEBsaW5lcyA9 IHNwbGl0IC9cbi8sICRvdXRwdXQ7CisJCWlmIChAbGluZXMgPiA2MCkKKwkJeworCQkJZGlhZyhq b2luKCJcbiIsIEBsaW5lc1swIC4uIDI5XSkpOworCQkJZGlhZygiLi4uICIgLiAoQGxpbmVzIC0g NjApIC4gIiBsaW5lcyBvbWl0dGVkIC4uLiIpOworCQkJZGlhZyhqb2luKCJcbiIsIEBsaW5lc1st MzAgLi4gLTFdKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlkaWFnKCRvdXRwdXQpOworCQl9CisJ fQorCisJZGlhZygiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7Cit9CisK KwogPXBvZAogCiA9YmFjawpAQCAtOTQ3LDcgKzk3Nyw3IEBAIHN1YiBkaXJfc3ltbGluawogCiA9 aXRlbSBjb21tYW5kX29rKGNtZCwgdGVzdF9uYW1lKQogCi1DaGVjayB0aGF0IHRoZSBjb21tYW5k IHJ1bnMgKHZpYSBDPHJ1bl9sb2c+KSBzdWNjZXNzZnVsbHkuCitDaGVjayB0aGF0IHRoZSBjb21t YW5kIHJ1bnMgc3VjY2Vzc2Z1bGx5LgogCiA9Y3V0CiAKQEAgLTk1NSw4ICs5ODUsMTMgQEAgc3Vi IGNvbW1hbmRfb2sKIHsKIAlsb2NhbCAkVGVzdDo6QnVpbGRlcjo6TGV2ZWwgPSAkVGVzdDo6QnVp bGRlcjo6TGV2ZWwgKyAxOwogCW15ICgkY21kLCAkdGVzdF9uYW1lKSA9IEBfOwotCW15ICRyZXN1 bHQgPSBydW5fbG9nKCRjbWQpOwotCW9rKCRyZXN1bHQsICR0ZXN0X25hbWUpOworCW15ICgkc3Rk b3V0LCAkc3RkZXJyKTsKKwlteSAkcmVzdWx0ID0gSVBDOjpSdW46OnJ1biAkY21kLCAnPicgPT4g XCRzdGRvdXQsICcyPicgPT4gXCRzdGRlcnI7CisJb2soJHJlc3VsdCwgJHRlc3RfbmFtZSkgb3Ig ZG8KKwl7CisJCWRpYWcoIi0tLS0tLS0tLS0gY29tbWFuZCBmYWlsZWQgLS0tLS0tLS0tLSIpOwor CQlfZGlhZ19jb21tYW5kX291dHB1dCgkY21kLCAkc3Rkb3V0LCAkc3RkZXJyKTsKKwl9OwogCXJl dHVybjsKIH0KIApAQCAtOTY0LDcgKzk5OSw3IEBAIHN1YiBjb21tYW5kX29rCiAKID1pdGVtIGNv bW1hbmRfZmFpbHMoY21kLCB0ZXN0X25hbWUpCiAKLUNoZWNrIHRoYXQgdGhlIGNvbW1hbmQgZmFp bHMgKHdoZW4gcnVuIHZpYSBDPHJ1bl9sb2c+KS4KK0NoZWNrIHRoYXQgdGhlIGNvbW1hbmQgZmFp bHMuCiAKID1jdXQKIApAQCAtOTcyLDggKzEwMDcsMTMgQEAgc3ViIGNvbW1hbmRfZmFpbHMKIHsK IAlsb2NhbCAkVGVzdDo6QnVpbGRlcjo6TGV2ZWwgPSAkVGVzdDo6QnVpbGRlcjo6TGV2ZWwgKyAx OwogCW15ICgkY21kLCAkdGVzdF9uYW1lKSA9IEBfOwotCW15ICRyZXN1bHQgPSBydW5fbG9nKCRj bWQpOwotCW9rKCEkcmVzdWx0LCAkdGVzdF9uYW1lKTsKKwlteSAoJHN0ZG91dCwgJHN0ZGVycik7 CisJbXkgJHJlc3VsdCA9IElQQzo6UnVuOjpydW4gJGNtZCwgJz4nID0+IFwkc3Rkb3V0LCAnMj4n ID0+IFwkc3RkZXJyOworCW9rKCEkcmVzdWx0LCAkdGVzdF9uYW1lKSBvciBkbworCXsKKwkJZGlh ZygiLS0gY29tbWFuZCBzdWNjZWVkZWQgdW5leHBlY3RlZGx5IC0tIik7CisJCV9kaWFnX2NvbW1h bmRfb3V0cHV0KCRjbWQsICRzdGRvdXQsICRzdGRlcnIpOworCX07CiAJcmV0dXJuOwogfQogCi0t IAoyLjUyLjAKCg== --1cf4537b425b1bc8c4d276c88dfa37219c200b20ce8854480f74603503b5 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0003-perl-tap-Show-die-reason-in-TAP-output.patch Content-Type: text/x-patch; charset=utf-8; name=v3-0003-perl-tap-Show-die-reason-in-TAP-output.patch RnJvbSBjMWM0YzI4MmE5ZDhjYjExYzU3OWE2NzFhOWYyOTE1M2U0Y2IwZTg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDI2IEphbiAyMDI2IDA5OjMyOjE1ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 MyAzLzVdIHBlcmwgdGFwOiBTaG93IGRpZSByZWFzb24gaW4gVEFQIG91dHB1dAoKSW4gb3VyIFBl cmwgdGVzdHMgdGhlIG1vc3QgY29tbW9ubHkgdXNlZCBmdW5jdGlvbiBpcyBwcm9iYWJseSBzYWZl X3BzcWwuCkJ1dCBpZiB0aGF0IGNhbGwgZmFpbGVkIHlvdSB3b3VsZCBnZXQgdGhpcyB0b3RhbGx5 IHVzZWxlc3Mgb3V0cHV0IGluIHRoZQptZXNvbiBvdXRwdXQ6CgpUZXN0cyB3ZXJlIHJ1biBidXQg bm8gcGxhbiB3YXMgZGVjbGFyZWQgYW5kIGRvbmVfdGVzdGluZygpIHdhcyBub3Qgc2Vlbi4KTG9v a3MgbGlrZSB5b3VyIHRlc3QgZXhpdGVkIHdpdGggMjkganVzdCBhZnRlciAyMS4KCldpdGggdGhp cyBjaGFuZ2UgeW91IGdldCB0aGUgYWN0dWFsIGZhaWx1cmUgcmVhc29uIHRvbzoKCmRpZTogZXJy b3IgcnVubmluZyBTUUw6ICdwc3FsOjxzdGRpbj46MjogRVJST1I6ICB1bnRlcm1pbmF0ZWQgcXVv dGVkIHN0cmluZyBhdCBvciBuZWFyICInIgpMSU5FIDE6IEdSQU5UIEFMTCBPTiBzeXN1c2VyX2Rh dGEgVE8gc2NyYW1fcm9sZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4nCndoaWxlIHJ1bm5pbmcgJ3BzcWwgLS1uby1wc3FscmMgLS1uby1hbGlnbiAt LXR1cGxlcy1vbmx5IC0tcXVpZXQgLS1kYm5hbWUgcG9ydD0xNzMzNSBob3N0PS90bXAveTlLWDZK QURoYSBkYm5hbWU9J3Bvc3RncmVzJyAtLWZpbGUgLSAtLXZhcmlhYmxlIE9OX0VSUk9SX1NUT1A9 MScgd2l0aCBzcWwgJ0NSRUFURSBUQUJMRSBzeXN1c2VyX2RhdGEgKG4pIEFTIFNFTEVDVCBOVUxM IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKTsKICAgR1JBTlQgQUxMIE9OIHN5c3VzZXJfZGF0 YSBUTyBzY3JhbV9yb2xlICcnIGF0IC9ob21lL2plbHRlL3dvcmsvcG9zdGdyZXMtMy9zcmMvdGVz dC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGxpbmUgMjMwMC4KTG9va3MgbGlrZSB5 b3VyIHRlc3QgZXhpdGVkIHdpdGggMjkganVzdCBhZnRlciAyMS4KCkRpc2N1c3Npb246IGh0dHBz Oi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvMjAyMjAyMjIxODE5MjQuZWVoaTdvNHBt bmVlYjRobSU0MGFsYXAzLmFuYXJhemVsLmRlCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3Rn cmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC9ERllGV00wNTNXSFMuMTBLOFpQSjYwNVVGS0BqZWx0 ZWYubmwKLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9VdGlscy5wbSB8IDE4ICsr KysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9VdGlscy5wbSBiL3NyYy90ZXN0 L3BlcmwvUG9zdGdyZVNRTC9UZXN0L1V0aWxzLnBtCmluZGV4IDVjNDU4NjU1OGJjLi4zOWY3NmMw YWFiYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvVXRpbHMucG0K KysrIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvVXRpbHMucG0KQEAgLTI0NCw2ICsy NDQsMjQgQEAgSU5JVAogCWF1dG9mbHVzaCBTVERPVVQgMTsKIAlhdXRvZmx1c2ggU1RERVJSIDE7 CiAJYXV0b2ZsdXNoICR0ZXN0bG9nIDE7CisKKwkjIEJlY2F1c2Ugb2YgdGhlIGFib3ZlIHJlZGly ZWN0aW9uIHRoZSB0YXAgb3V0cHV0IHdvdWxkbid0IGNvbnRhaW4KKwkjIGluZm9ybWF0aW9uIGFi b3V0IHRlc3RzIGZhaWxpbmcgZHVlIHRvIGRpZSBldGMuIEZpeCB0aGF0IGJ5IGFsc28KKwkjIHBy aW50aW5nIHRoZSBmYWlsdXJlIHRvIHRoZSBvcmlnaW5hbCBzdGRlcnIuCisJJFNJR3tfX0RJRV9f fSA9IHN1YiB7CisJCSMgSWdub3JlIGRpZXMgYmVjYXVzZSBvZiBzeW50YXggZXJyb3JzLCB0aG9z ZSB3aWxsIGJlIGRpc3BsYXllZAorCQkjIGNvcnJlY3RseSBhbnl3YXkuCisJCXJldHVybiBpZiAh ZGVmaW5lZCAkXlM7CisKKwkJIyBJZ25vcmUgZGllcyBpbnNpZGUgZXZhbHMKKwkJcmV0dXJuIGlm ICReUyA9PSAxOworCisJCWRpYWcoImRpZTogJF9bMF0iKTsKKwkJIyBBbHNvIGNhbGwgZG9uZV90 ZXN0aW5nKCkgdG8gYXZvaWQgdGhlIGNvbmZ1c2luZyAibm8gcGxhbiB3YXMgZGVjbGFyZWQiCisJ CSMgbWVzc2FnZSBpbiBUQVAgb3V0cHV0IHdoZW4gYSB0ZXN0IGRpZXMuCisJCWRvbmVfdGVzdGlu ZygpOworCX07CisKIH0KIAogRU5ECi0tIAoyLjUyLjAKCg== --1cf4537b425b1bc8c4d276c88dfa37219c200b20ce8854480f74603503b5 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v3-0004-perl-tap-Use-croak-instead-of-die-in-our-perl-hel.patch Content-Type: text/x-patch; charset=utf-8; name=v3-0004-perl-tap-Use-croak-instead-of-die-in-our-perl-hel.patch RnJvbSA3MThjZjkwYjI2Yzk5ZDUzMDliNWY5NjQ1ZmJlNjMzNzY5ZWM0ZDk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBNb24sIDI2IEphbiAyMDI2IDEwOjA0OjQ0ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 MyA0LzVdIHBlcmwgdGFwOiBVc2UgY3JvYWsgaW5zdGVhZCBvZiBkaWUgaW4gb3VyIHBlcmwgaGVs cGVyCiBtb2R1bGVzCgpNYW55IG9mIG91ciBoZWxwZXJzIGNhbGxlZCBkaWUsIGJ1dCB0aGF0IG1l YW5zIHRoYXQgdGhlIGxpbmUgbnVtYmVyCnJlcG9ydGVkIG9uIGV4aXQgaXMgdGhlIGxpbmUgbnVt YmVyIGluIENsdXN0ZXIucG0gIG9yIFV0aWxzLnBtLiBUaGlzCnN0YXJ0cyB1c2luZyBjcm9hayBl dmVyeXdoZXJlIChleGNlcHQgZm9yIElOSVQpIGluIG91ciBDbHVzdGVyLnBtIGFuZApVdGlscy5w bSBmaWxlcy4gVGhhdCB3YXkgdGhlIGxpbmUgbnVtYmVyIG9mIHRoZSBjYWxsZXIgaXMgcmVwb3J0 ZWQKaW5zdGVhZC4KCkFzIGFuIGV4YW1wbGUsIHRoaXMgaXMgdGhlIG5ldyBvdXRwdXQgdGhlIHNh ZmVfcHNxbCBjYWxsIHRoYXQgZmFpbHM6CgpkaWU6IGVycm9yIHJ1bm5pbmcgU1FMOiAncHNxbDo8 c3RkaW4+OjI6IEVSUk9SOiAgdW50ZXJtaW5hdGVkIHF1b3RlZCBzdHJpbmcgYXQgb3IgbmVhciAi JyIKTElORSAxOiBHUkFOVCBBTEwgT04gc3lzdXNlcl9kYXRhIFRPIHNjcmFtX3JvbGUgJwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeJwp3aGlsZSBydW5u aW5nICdwc3FsIC0tbm8tcHNxbHJjIC0tbm8tYWxpZ24gLS10dXBsZXMtb25seSAtLXF1aWV0IC0t ZGJuYW1lIHBvcnQ9MjY1NzggaG9zdD0vdG1wL0thT2pvdThISmEgZGJuYW1lPSdwb3N0Z3Jlcycg LS1maWxlIC0gLS12YXJpYWJsZSBPTl9FUlJPUl9TVE9QPTEnIHdpdGggc3FsICdDUkVBVEUgVEFC TEUgc3lzdXNlcl9kYXRhIChuKSBBUyBTRUxFQ1QgTlVMTCBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAxMCk7CiAgIEdSQU5UIEFMTCBPTiBzeXN1c2VyX2RhdGEgVE8gc2NyYW1fcm9sZSAnJyBhdCAv aG9tZS9qZWx0ZS93b3JrL3Bvc3RncmVzLTMvc3JjL3Rlc3QvYXV0aGVudGljYXRpb24vdC8wMDFf cGFzc3dvcmQucGwgbGluZSAxNDQuCkxvb2tzIGxpa2UgeW91ciB0ZXN0IGV4aXRlZCB3aXRoIDI5 IGp1c3QgYWZ0ZXIgMjEuCi0tLQogc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1c3Rl ci5wbSB8IDEwOCArKysrKysrKysrKy0tLS0tLS0tLS0tLQogc3JjL3Rlc3QvcGVybC9Qb3N0Z3Jl U1FML1Rlc3QvVXRpbHMucG0gICB8ICAyNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjcgaW5z ZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcGVybC9Q b3N0Z3JlU1FML1Rlc3QvQ2x1c3Rlci5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0 L0NsdXN0ZXIucG0KaW5kZXggZTI2N2JhODY4ZmUuLmI2MmFhYTU4Y2M0IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCisrKyBiL3NyYy90ZXN0L3Bl cmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KQEAgLTU3LDcgKzU3LDcgQEAgUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3RlciAtIGNsYXNzIHJlcHJlc2VudGluZyBQb3N0Z3JlU1FMIHNlcnZlciBp bnN0YW5jZQogICAjIHJ1biBxdWVyeSBldmVyeSBzZWNvbmQgdW50aWwgaXQgcmV0dXJucyAndCcK ICAgIyBvciB0aW1lcyBvdXQKICAgJG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoJ3Bvc3RncmVzJywg cXxTRUxFQ1QgcmFuZG9tKCkgPCAwLjE7fCcpCi0gICAgb3IgZGllICJ0aW1lZCBvdXQiOworICAg IG9yIGNyb2FrICJ0aW1lZCBvdXQiOwogCiAgICMgRG8gYW4gb25saW5lIHBnX2Jhc2ViYWNrdXAK ICAgbXkgJHJldCA9ICRub2RlLT5iYWNrdXAoJ3Rlc3RiYWNrdXAxJyk7CkBAIC0zMzksNyArMzM5 LDcgQEAgc3ViIHJhd19jb25uZWN0CiAJCSRzb2NrZXQgPSBJTzo6U29ja2V0OjpVTklYLT5uZXco CiAJCQlUeXBlID0+IFNPQ0tfU1RSRUFNKCksCiAJCQlQZWVyID0+ICRwYXRoLAotCQkpIG9yIGRp ZSAiQ2Fubm90IGNyZWF0ZSBzb2NrZXQgLSAkSU86OlNvY2tldDo6ZXJyc3RyXG4iOworCQkpIG9y IGNyb2FrICJDYW5ub3QgY3JlYXRlIHNvY2tldCAtICRJTzo6U29ja2V0OjplcnJzdHJcbiI7CiAJ fQogCWVsc2UKIAl7CkBAIC0zNDcsNyArMzQ3LDcgQEAgc3ViIHJhd19jb25uZWN0CiAJCQlQZWVy SG9zdCA9PiAkcGdob3N0LAogCQkJUGVlclBvcnQgPT4gJHBncG9ydCwKIAkJCVByb3RvID0+ICd0 Y3AnCi0JCSkgb3IgZGllICJDYW5ub3QgY3JlYXRlIHNvY2tldCAtICRJTzo6U29ja2V0OjplcnJz dHJcbiI7CisJCSkgb3IgY3JvYWsgIkNhbm5vdCBjcmVhdGUgc29ja2V0IC0gJElPOjpTb2NrZXQ6 OmVycnN0clxuIjsKIAl9CiAJcmV0dXJuICRzb2NrZXQ7CiB9CkBAIC00MDYsNyArNDA2LDcgQEAg c3ViIGdyb3VwX2FjY2VzcwogCW15ICRkaXJfc3RhdCA9IHN0YXQoJHNlbGYtPmRhdGFfZGlyKTsK IAogCWRlZmluZWQoJGRpcl9zdGF0KQotCSAgb3IgZGllKCd1bmFibGUgdG8gc3RhdCAnIC4gJHNl bGYtPmRhdGFfZGlyKTsKKwkgIG9yIGNyb2FrKCd1bmFibGUgdG8gc3RhdCAnIC4gJHNlbGYtPmRh dGFfZGlyKTsKIAogCXJldHVybiAoU19JTU9ERSgkZGlyX3N0YXQtPm1vZGUpID09IDA3NTApOwog fQpAQCAtNTA4LDcgKzUwOCw3IEBAIHN1YiBjb25maWdfZGF0YQogCW15ICRyZXN1bHQgPQogCSAg SVBDOjpSdW46OnJ1biBbICRzZWxmLT5pbnN0YWxsZWRfY29tbWFuZCgncGdfY29uZmlnJyksIEBv cHRpb25zIF0sCiAJICAnPicsIFwkc3Rkb3V0LCAnMj4nLCBcJHN0ZGVycgotCSAgb3IgZGllICJj b3VsZCBub3QgZXhlY3V0ZSBwZ19jb25maWciOworCSAgb3IgY3JvYWsgImNvdWxkIG5vdCBleGVj dXRlIHBnX2NvbmZpZyI7CiAJIyBzdGFuZGFyZGl6ZSBsaW5lIGVuZGluZ3MKIAkkc3Rkb3V0ID1+ IHMvXHIoPz1cbikvL2c7CiAJIyBubyBvcHRpb25zLCBzY2FsYXIgY29udGV4dDoganVzdCBoYW5k IGJhY2sgdGhlIG91dHB1dApAQCAtNTQyLDcgKzU0Miw3IEBAIHN1YiBpbmZvCiB7CiAJbXkgKCRz ZWxmKSA9IEBfOwogCW15ICRfaW5mbyA9ICcnOwotCW9wZW4gbXkgJGZoLCAnPicsIFwkX2luZm8g b3IgZGllOworCW9wZW4gbXkgJGZoLCAnPicsIFwkX2luZm8gb3IgY3JvYWs7CiAJcHJpbnQgJGZo ICJOYW1lOiAiIC4gJHNlbGYtPm5hbWUgLiAiXG4iOwogCXByaW50ICRmaCAiVmVyc2lvbjogIiAu ICRzZWxmLT57X3BnX3ZlcnNpb259IC4gIlxuIgogCSAgaWYgJHNlbGYtPntfcGdfdmVyc2lvbn07 CkBAIC01NTMsNyArNTUzLDcgQEAgc3ViIGluZm8KIAlwcmludCAkZmggIkxvZyBmaWxlOiAiIC4g JHNlbGYtPmxvZ2ZpbGUgLiAiXG4iOwogCXByaW50ICRmaCAiSW5zdGFsbCBQYXRoOiAiLCAkc2Vs Zi0+e19pbnN0YWxsX3BhdGh9IC4gIlxuIgogCSAgaWYgJHNlbGYtPntfaW5zdGFsbF9wYXRofTsK LQljbG9zZSAkZmggb3IgZGllOworCWNsb3NlICRmaCBvciBjcm9hazsKIAlyZXR1cm4gJF9pbmZv OwogfQogCkBAIC01ODMsNyArNTgzLDcgQEAgc3ViIHNldF9yZXBsaWNhdGlvbl9jb25mCiAJJHNl bGYtPmhvc3QgZXEgJHRlc3RfcGdob3N0CiAJICBvciBjcm9hayAic2V0X3JlcGxpY2F0aW9uX2Nv bmYgb25seSB3b3JrcyB3aXRoIHRoZSBkZWZhdWx0IGhvc3QiOwogCi0Jb3BlbiBteSAkaGJhLCAn Pj4nLCAiJHBnZGF0YS9wZ19oYmEuY29uZiIgb3IgZGllICQhOworCW9wZW4gbXkgJGhiYSwgJz4+ JywgIiRwZ2RhdGEvcGdfaGJhLmNvbmYiIG9yIGNyb2FrICQhOwogCXByaW50ICRoYmEKIAkgICJc biMgQWxsb3cgcmVwbGljYXRpb24gKHNldCB1cCBieSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVy LnBtKVxuIjsKIAlpZiAoJFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp3aW5kb3dzX29zCkBAIC03 MDcsNyArNzA3LDcgQEAgc3ViIGluaXQKIAlQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6c3lzdGVt X29yX2JhaWwoJEVOVntQR19SRUdSRVNTfSwKIAkJJy0tY29uZmlnLWF1dGgnLCAkcGdkYXRhLCBA eyAkcGFyYW1ze2F1dGhfZXh0cmF9IH0pOwogCi0Jb3BlbiBteSAkY29uZiwgJz4+JywgIiRwZ2Rh dGEvcG9zdGdyZXNxbC5jb25mIiBvciBkaWUgJCE7CisJb3BlbiBteSAkY29uZiwgJz4+JywgIiRw Z2RhdGEvcG9zdGdyZXNxbC5jb25mIiBvciBjcm9hayAkITsKIAlwcmludCAkY29uZiAiXG4jIEFk ZGVkIGJ5IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXIucG1cbiI7CiAJcHJpbnQgJGNvbmYgImZz eW5jID0gb2ZmXG4iOwogCXByaW50ICRjb25mICJyZXN0YXJ0X2FmdGVyX2NyYXNoID0gb2ZmXG4i OwpAQCAtNzY0LDcgKzc2NCw3IEBAIHN1YiBpbml0CiAJY2xvc2UgJGNvbmY7CiAKIAljaG1vZCgk c2VsZi0+Z3JvdXBfYWNjZXNzID8gMDY0MCA6IDA2MDAsICIkcGdkYXRhL3Bvc3RncmVzcWwuY29u ZiIpCi0JICBvciBkaWUoInVuYWJsZSB0byBzZXQgcGVybWlzc2lvbnMgZm9yICRwZ2RhdGEvcG9z dGdyZXNxbC5jb25mIik7CisJICBvciBjcm9haygidW5hYmxlIHRvIHNldCBwZXJtaXNzaW9ucyBm b3IgJHBnZGF0YS9wb3N0Z3Jlc3FsLmNvbmYiKTsKIAogCSRzZWxmLT5zZXRfcmVwbGljYXRpb25f Y29uZiBpZiAkcGFyYW1ze2FsbG93c19zdHJlYW1pbmd9OwogCSRzZWxmLT5lbmFibGVfYXJjaGl2 aW5nIGlmICRwYXJhbXN7aGFzX2FyY2hpdmluZ307CkBAIC03OTMsNyArNzkzLDcgQEAgc3ViIGFw cGVuZF9jb25mCiAJUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OmFwcGVuZF90b19maWxlKCRjb25m ZmlsZSwgJHN0ciAuICJcbiIpOwogCiAJY2htb2QoJHNlbGYtPmdyb3VwX2FjY2VzcygpID8gMDY0 MCA6IDA2MDAsICRjb25mZmlsZSkKLQkgIG9yIGRpZSgidW5hYmxlIHRvIHNldCBwZXJtaXNzaW9u cyBmb3IgJGNvbmZmaWxlIik7CisJICBvciBjcm9haygidW5hYmxlIHRvIHNldCBwZXJtaXNzaW9u cyBmb3IgJGNvbmZmaWxlIik7CiAKIAlyZXR1cm47CiB9CkBAIC04MzksNyArODM5LDcgQEAgc3Vi IGFkanVzdF9jb25mCiAJY2xvc2UgJGZoOwogCiAJY2htb2QoJHNlbGYtPmdyb3VwX2FjY2Vzcygp ID8gMDY0MCA6IDA2MDAsICRjb25mZmlsZSkKLQkgIG9yIGRpZSgidW5hYmxlIHRvIHNldCBwZXJt aXNzaW9ucyBmb3IgJGNvbmZmaWxlIik7CisJICBvciBjcm9haygidW5hYmxlIHRvIHNldCBwZXJt aXNzaW9ucyBmb3IgJGNvbmZmaWxlIik7CiB9CiAKID1wb2QKQEAgLTk5NSw3ICs5OTUsNyBAQCBz dWIgaW5pdF9mcm9tX2JhY2t1cAogCX0KIAllbHNpZiAoZGVmaW5lZCAkcGFyYW1ze3Rhcl9wcm9n cmFtfSkKIAl7Ci0JCW1rZGlyKCRkYXRhX3BhdGgpIHx8IGRpZSAibWtkaXIgJGRhdGFfcGF0aDog JCEiOworCQlta2RpcigkZGF0YV9wYXRoKSB8fCBjcm9hayAibWtkaXIgJGRhdGFfcGF0aDogJCEi OwogCQlQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6c3lzdGVtX29yX2JhaWwoCiAJCQkkcGFyYW1z e3Rhcl9wcm9ncmFtfSwKIAkJCSd4ZicgPT4gJGJhY2t1cF9wYXRoIC4gJy9iYXNlLnRhcicsCkBA IC0xMDA3LDcgKzEwMDcsNyBAQCBzdWIgaW5pdF9mcm9tX2JhY2t1cAogCiAJCSMgV2UgbmVlZCB0 byBnZW5lcmF0ZSBhIHRhYmxlc3BhY2VfbWFwIGZpbGUuCiAJCW9wZW4obXkgJHRzbWFwLCAiPiIs ICIkZGF0YV9wYXRoL3RhYmxlc3BhY2VfbWFwIikKLQkJICB8fCBkaWUgIiRkYXRhX3BhdGgvdGFi bGVzcGFjZV9tYXA6ICQhIjsKKwkJICB8fCBjcm9hayAiJGRhdGFfcGF0aC90YWJsZXNwYWNlX21h cDogJCEiOwogCiAJCSMgRXh0cmFjdCB0YXJmaWxlcyBhbmQgYWRkIHRhYmxlc3BhY2VfbWFwIGVu dHJpZXMKIAkJbXkgQHRzdGFycyA9IGdyZXAgeyAvXlxkKy50YXIvIH0KQEAgLTEwMTcsMTIgKzEw MTcsMTIgQEAgc3ViIGluaXRfZnJvbV9iYWNrdXAKIAkJCW15ICR0c29pZCA9ICR0c3RhcjsKIAkJ CSR0c29pZCA9fiBzL1wudGFyJC8vOwogCi0JCQlkaWUgIm5vIHRhYmxlc3BhY2UgbWFwcGluZyBm b3IgJHRzdGFyIgorCQkJY3JvYWsgIm5vIHRhYmxlc3BhY2UgbWFwcGluZyBmb3IgJHRzdGFyIgog CQkJICBpZiAhZXhpc3RzICRwYXJhbXN7dGFibGVzcGFjZV9tYXB9CiAJCQkgIHx8ICFleGlzdHMg JHBhcmFtc3t0YWJsZXNwYWNlX21hcH17JHRzb2lkfTsKIAkJCW15ICRuZXdkaXIgPSAkcGFyYW1z e3RhYmxlc3BhY2VfbWFwfXskdHNvaWR9OwogCi0JCQlta2RpcigkbmV3ZGlyKSB8fCBkaWUgIm1r ZGlyICRuZXdkaXI6ICQhIjsKKwkJCW1rZGlyKCRuZXdkaXIpIHx8IGNyb2FrICJta2RpciAkbmV3 ZGlyOiAkISI7CiAJCQlQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6c3lzdGVtX29yX2JhaWwoCiAJ CQkJJHBhcmFtc3t0YXJfcHJvZ3JhbX0sCiAJCQkJJ3hmJyA9PiAkYmFja3VwX3BhdGggLiAnLycg LiAkdHN0YXIsCkBAIC0xMDYxLDEyICsxMDYxLDEyIEBAIHN1YiBpbml0X2Zyb21fYmFja3VwCiAJ CXsKIAkJCSMgV2UgbmVlZCB0byBnZW5lcmF0ZSBhIHRhYmxlc3BhY2VfbWFwIGZpbGUuCiAJCQlv cGVuKG15ICR0c21hcCwgIj4iLCAiJGRhdGFfcGF0aC90YWJsZXNwYWNlX21hcCIpCi0JCQkgIHx8 IGRpZSAiJGRhdGFfcGF0aC90YWJsZXNwYWNlX21hcDogJCEiOworCQkJICB8fCBjcm9hayAiJGRh dGFfcGF0aC90YWJsZXNwYWNlX21hcDogJCEiOwogCiAJCQkjIE5vdyB1c2UgdGhlIGxpc3Qgb2Yg dGFibGVzcGFjZSBsaW5rcyB0byBjb3B5IGVhY2ggdGFibGVzcGFjZS4KIAkJCWZvciBteSAkdHNv aWQgKEB0c29pZHMpCiAJCQl7Ci0JCQkJZGllICJubyB0YWJsZXNwYWNlIG1hcHBpbmcgZm9yICR0 c29pZCIKKwkJCQljcm9hayAibm8gdGFibGVzcGFjZSBtYXBwaW5nIGZvciAkdHNvaWQiCiAJCQkJ ICBpZiAhZXhpc3RzICRwYXJhbXN7dGFibGVzcGFjZV9tYXB9CiAJCQkJICB8fCAhZXhpc3RzICRw YXJhbXN7dGFibGVzcGFjZV9tYXB9eyR0c29pZH07CiAKQEAgLTEwODMsNyArMTA4Myw3IEBAIHN1 YiBpbml0X2Zyb21fYmFja3VwCiAJCQljbG9zZSgkdHNtYXApOwogCQl9CiAJfQotCWNobW9kKDA3 MDAsICRkYXRhX3BhdGgpIG9yIGRpZSAkITsKKwljaG1vZCgwNzAwLCAkZGF0YV9wYXRoKSBvciBj cm9hayAkITsKIAogCSMgQmFzZSBjb25maWd1cmF0aW9uIGZvciB0aGlzIG5vZGUKIAkkc2VsZi0+ YXBwZW5kX2NvbmYoCkBAIC0xOTA2LDcgKzE5MDYsNyBAQCBzdWIgY2FuX2JpbmQKIAlteSAkcGFk ZHIgPSBzb2NrYWRkcl9pbigkcG9ydCwgJGlhZGRyKTsKIAogCXNvY2tldChTT0NLLCBQRl9JTkVU LCBTT0NLX1NUUkVBTSwgMCkKLQkgIG9yIGRpZSAic29ja2V0IGZhaWxlZDogJCEiOworCSAgb3Ig Y3JvYWsgInNvY2tldCBmYWlsZWQ6ICQhIjsKIAogCSMgQXMgaW4gcG9zdG1hc3RlciwgZG9uJ3Qg dXNlIFNPX1JFVVNFQUREUiBvbiBXaW5kb3dzCiAJc2V0c29ja29wdChTT0NLLCBTT0xfU09DS0VU LCBTT19SRVVTRUFERFIsIHBhY2soImwiLCAxKSkKQEAgLTE5MjQsOSArMTkyNCw5IEBAIHN1YiBf cmVzZXJ2ZV9wb3J0CiAJIyBvcGVuIGluIHJ3IG1vZGUgc28gd2UgZG9uJ3QgaGF2ZSB0byByZW9w ZW4gaXQgYW5kIGxvc2UgdGhlIGxvY2sKIAlteSAkZmlsZW5hbWUgPSAiJHBvcnRkaXIvJHBvcnQu cnN2IjsKIAlzeXNvcGVuKG15ICRwb3J0ZmlsZSwgJGZpbGVuYW1lLCBPX1JEV1IgfCBPX0NSRUFU KQotCSAgfHwgZGllICJvcGVuaW5nIHBvcnQgZmlsZSAkZmlsZW5hbWU6ICQhIjsKKwkgIHx8IGNy b2FrICJvcGVuaW5nIHBvcnQgZmlsZSAkZmlsZW5hbWU6ICQhIjsKIAkjIHRha2UgYW4gZXhjbHVz aXZlIGxvY2sgdG8gYXZvaWQgY29uY3VycmVudCBhY2Nlc3MKLQlmbG9jaygkcG9ydGZpbGUsIExP Q0tfRVgpIHx8IGRpZSAibG9ja2luZyBwb3J0IGZpbGUgJGZpbGVuYW1lOiAkISI7CisJZmxvY2so JHBvcnRmaWxlLCBMT0NLX0VYKSB8fCBjcm9hayAibG9ja2luZyBwb3J0IGZpbGUgJGZpbGVuYW1l OiAkISI7CiAJIyBzZWUgaWYgc29tZW9uZSBlbHNlIGhhcyBvciBoYWQgYSByZXNlcnZhdGlvbiBv ZiB0aGlzIHBvcnQKIAlteSAkcGlkID0gPCRwb3J0ZmlsZT4gfHwgIjAiOwogCWNob21wICRwaWQ7 CkBAIC0xOTM1LDE2ICsxOTM1LDE2IEBAIHN1YiBfcmVzZXJ2ZV9wb3J0CiAJCWlmIChraWxsIDAs ICRwaWQpCiAJCXsKIAkJCSMgcHJvY2VzcyBleGlzdHMgYW5kIGlzIG93bmVkIGJ5IHVzLCBzbyB3 ZSBjYW4ndCByZXNlcnZlIHRoaXMgcG9ydAotCQkJZmxvY2soJHBvcnRmaWxlLCBMT0NLX1VOKSB8 fCBkaWUgJCE7CisJCQlmbG9jaygkcG9ydGZpbGUsIExPQ0tfVU4pIHx8IGNyb2FrICQhOwogCQkJ Y2xvc2UoJHBvcnRmaWxlKTsKIAkJCXJldHVybiAwOwogCQl9CiAJfQogCSMgQWxsIGdvb2QsIGdv IGFoZWFkIGFuZCByZXNlcnZlIHRoZSBwb3J0Ci0Jc2VlaygkcG9ydGZpbGUsIDAsIFNFRUtfU0VU KSB8fCBkaWUgJCE7CisJc2VlaygkcG9ydGZpbGUsIDAsIFNFRUtfU0VUKSB8fCBjcm9hayAkITsK IAkjIHByaW50IHRoZSBwaWQgd2l0aCBhIGZpeGVkIHdpZHRoIHNvIHdlIGRvbid0IGxlYXZlIGFu eSB0cmFpbGluZyBqdW5rCiAJcHJpbnQgJHBvcnRmaWxlIHNwcmludGYoIiUxMGRcbiIsICQkKTsK LQlmbG9jaygkcG9ydGZpbGUsIExPQ0tfVU4pIHx8IGRpZSAkITsKKwlmbG9jaygkcG9ydGZpbGUs IExPQ0tfVU4pIHx8IGNyb2FrICQhOwogCWNsb3NlKCRwb3J0ZmlsZSk7CiAJcHVzaChAcG9ydF9y ZXNlcnZhdGlvbl9maWxlcywgJGZpbGVuYW1lKTsKIAlyZXR1cm4gMTsKQEAgLTIyNDYsMTMgKzIy NDYsMTMgQEAgc3ViIHBzcWwKIAogCQkJIyBJUEM6OlJ1bjo6cnVuIHRocmV3IGFuIGV4Y2VwdGlv bi4gcmUtdGhyb3cgdW5sZXNzIGl0J3MgYQogCQkJIyB0aW1lb3V0LCB3aGljaCB3ZSdsbCBoYW5k bGUgYnkgdGVzdGluZyBpc19leHBpcmVkCi0JCQlkaWUgJGV4Y19zYXZlCisJCQljcm9hayAkZXhj X3NhdmUKIAkJCSAgaWYgKGJsZXNzZWQoJGV4Y19zYXZlKQogCQkJCXx8ICRleGNfc2F2ZSAhfiAv XlxRJHRpbWVvdXRfZXhjZXB0aW9uXEUvKTsKIAogCQkJJHJldCA9IHVuZGVmOwogCi0JCQlkaWUg IkdvdCB0aW1lb3V0IGV4Y2VwdGlvbiAnJGV4Y19zYXZlJyBidXQgdGltZXIgbm90IGV4cGlyZWQ/ ISIKKwkJCWNyb2FrICJHb3QgdGltZW91dCBleGNlcHRpb24gJyRleGNfc2F2ZScgYnV0IHRpbWVy IG5vdCBleHBpcmVkPyEiCiAJCQkgIHVubGVzcyAkdGltZW91dC0+aXNfZXhwaXJlZDsKIAogCQkJ aWYgKGRlZmluZWQoJHBhcmFtc3t0aW1lZF9vdXR9KSkKQEAgLTIyNjEsNyArMjI2MSw3IEBAIHN1 YiBwc3FsCiAJCQl9CiAJCQllbHNlCiAJCQl7Ci0JCQkJZGllICJwc3FsIHRpbWVkIG91dDogc3Rk ZXJyOiAnJCRzdGRlcnInXG4iCisJCQkJY3JvYWsgInBzcWwgdGltZWQgb3V0OiBzdGRlcnI6ICck JHN0ZGVycidcbiIKIAkJCQkgIC4gIndoaWxlIHJ1bm5pbmcgJ0Bwc3FsX3BhcmFtcyciOwogCQkJ fQogCQl9CkBAIC0yMjg0LDcgKzIyODQsNyBAQCBzdWIgcHNxbAogCWlmIChkZWZpbmVkICRyZXQp CiAJewogCQlteSAkY29yZSA9ICRyZXQgJiAxMjggPyAiIChjb3JlIGR1bXBlZCkiIDogIiI7Ci0J CWRpZSAicHNxbCBleGl0ZWQgd2l0aCBzaWduYWwgIgorCQljcm9hayAicHNxbCBleGl0ZWQgd2l0 aCBzaWduYWwgIgogCQkgIC4gKCRyZXQgJiAxMjcpCiAJCSAgLiAiJGNvcmU6ICckJHN0ZGVycicg d2hpbGUgcnVubmluZyAnQHBzcWxfcGFyYW1zJyIKIAkJICBpZiAkcmV0ICYgMTI3OwpAQCAtMjI5 MywxNCArMjI5MywxNCBAQCBzdWIgcHNxbAogCiAJaWYgKCRyZXQgJiYgJHBhcmFtc3tvbl9lcnJv cl9kaWV9KQogCXsKLQkJZGllICJwc3FsIGVycm9yOiBzdGRlcnI6ICckJHN0ZGVycidcbndoaWxl IHJ1bm5pbmcgJ0Bwc3FsX3BhcmFtcyciCisJCWNyb2FrICJwc3FsIGVycm9yOiBzdGRlcnI6ICck JHN0ZGVycidcbndoaWxlIHJ1bm5pbmcgJ0Bwc3FsX3BhcmFtcyciCiAJCSAgaWYgJHJldCA9PSAx OwotCQlkaWUgImNvbm5lY3Rpb24gZXJyb3I6ICckJHN0ZGVycidcbndoaWxlIHJ1bm5pbmcgJ0Bw c3FsX3BhcmFtcyciCisJCWNyb2FrICJjb25uZWN0aW9uIGVycm9yOiAnJCRzdGRlcnInXG53aGls ZSBydW5uaW5nICdAcHNxbF9wYXJhbXMnIgogCQkgIGlmICRyZXQgPT0gMjsKLQkJZGllCisJCWNy b2FrCiAJCSAgImVycm9yIHJ1bm5pbmcgU1FMOiAnJCRzdGRlcnInXG53aGlsZSBydW5uaW5nICdA cHNxbF9wYXJhbXMnIHdpdGggc3FsICckc3FsJyIKIAkJICBpZiAkcmV0ID09IDM7Ci0JCWRpZSAi cHNxbCByZXR1cm5zICRyZXQ6ICckJHN0ZGVycidcbndoaWxlIHJ1bm5pbmcgJ0Bwc3FsX3BhcmFt cyciOworCQljcm9hayAicHNxbCByZXR1cm5zICRyZXQ6ICckJHN0ZGVycidcbndoaWxlIHJ1bm5p bmcgJ0Bwc3FsX3BhcmFtcyciOwogCX0KIAogCWlmICh3YW50YXJyYXkpCkBAIC0yNTAxLDcgKzI1 MDEsNyBAQCBzdWIgX3BnYmVuY2hfbWFrZV9maWxlcwogCQkJaWYgKC1lICRmaWxlbmFtZSkKIAkJ CXsKIAkJCQlvaygwLCAiJGZpbGVuYW1lIG11c3Qgbm90IGFscmVhZHkgZXhpc3QiKTsKLQkJCQl1 bmxpbmsgJGZpbGVuYW1lIG9yIGRpZSAiY2Fubm90IHVubGluayAkZmlsZW5hbWU6ICQhIjsKKwkJ CQl1bmxpbmsgJGZpbGVuYW1lIG9yIGNyb2FrICJjYW5ub3QgdW5saW5rICRmaWxlbmFtZTogJCEi OwogCQkJfQogCQkJUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OmFwcGVuZF90b19maWxlKCRmaWxl bmFtZSwgJCRmaWxlc3skZm59KTsKIAkJfQpAQCAtMzEyMyw4ICszMTIzLDggQEAgc3ViIHdyaXRl X3dhbAogCW15ICRwYXRoID0KIAkgIHNwcmludGYoIiVzL3BnX3dhbC8lMDhYJTA4WCUwOFgiLCAk c2VsZi0+ZGF0YV9kaXIsICR0bGksIDAsICRzZWdtZW50KTsKIAotCW9wZW4gbXkgJGZoLCAiKzw6 cmF3IiwgJHBhdGggb3IgZGllICJjb3VsZCBub3Qgb3BlbiBXQUwgc2VnbWVudCAkcGF0aCI7Ci0J c2VlaygkZmgsICRvZmZzZXQsIFNFRUtfU0VUKSBvciBkaWUgImNvdWxkIG5vdCBzZWVrIFdBTCBz ZWdtZW50ICRwYXRoIjsKKwlvcGVuIG15ICRmaCwgIis8OnJhdyIsICRwYXRoIG9yIGNyb2FrICJj b3VsZCBub3Qgb3BlbiBXQUwgc2VnbWVudCAkcGF0aCI7CisJc2VlaygkZmgsICRvZmZzZXQsIFNF RUtfU0VUKSBvciBjcm9hayAiY291bGQgbm90IHNlZWsgV0FMIHNlZ21lbnQgJHBhdGgiOwogCXBy aW50ICRmaCAkZGF0YTsKIAljbG9zZSAkZmg7CiAKQEAgLTMyODgsNyArMzI4OCw3IEBAIHN1YiB3 YWl0X2Zvcl9ldmVudAogCQlTRUxFQ1QgY291bnQoKikgPiAwIEZST00gcGdfc3RhdF9hY3Rpdml0 eQogCQlXSEVSRSBiYWNrZW5kX3R5cGUgPSAnJGJhY2tlbmRfdHlwZScgQU5EIHdhaXRfZXZlbnQg PSAnJHdhaXRfZXZlbnRfbmFtZScKIAldKQotCSAgb3IgZGllCisJICBvciBjcm9hawogCSAgcXEo dGltZWQgb3V0IHdoZW4gd2FpdGluZyBmb3IgJGJhY2tlbmRfdHlwZSB0byByZWFjaCB3YWl0IGV2 ZW50ICckd2FpdF9ldmVudF9uYW1lJyk7CiAKIAlyZXR1cm47CkBAIC0zMzI1LDcgKzMzMjUsNyBA QCBwb2xsX3F1ZXJ5X3VudGlsIHRpbWVvdXQuCiAKIFJlcXVpcmVzIHRoYXQgdGhlICdwb3N0Z3Jl cycgZGIgZXhpc3RzIGFuZCBpcyBhY2Nlc3NpYmxlLgogCi1UaGlzIGlzIG5vdCBhIHRlc3QuIEl0 IGRpZSgpcyBvbiBmYWlsdXJlLgorVGhpcyBpcyBub3QgYSB0ZXN0LiBJdCBjcm9haygpcyBvbiBm YWlsdXJlLgogCiA9Y3V0CiAKQEAgLTM0MDksNyArMzQwOSw3IEBAIFRoZSByZXBsaWNhdGlvbiBj b25uZWN0aW9uIG11c3QgYmUgaW4gYSBzdHJlYW1pbmcgc3RhdGUuCiAKIFJlcXVpcmVzIHRoYXQg dGhlICdwb3N0Z3JlcycgZGIgZXhpc3RzIGFuZCBpcyBhY2Nlc3NpYmxlLgogCi1UaGlzIGlzIG5v dCBhIHRlc3QuIEl0IGRpZSgpcyBvbiBmYWlsdXJlLgorVGhpcyBpcyBub3QgYSB0ZXN0LiBJdCBj cm9haygpcyBvbiBmYWlsdXJlLgogCiA9Y3V0CiAKQEAgLTM0MjksNyArMzQyOSw3IEBAIGJlICdy ZXN0YXJ0JyBvciAnY29uZmlybWVkX2ZsdXNoJy4KIAogUmVxdWlyZXMgdGhhdCB0aGUgJ3Bvc3Rn cmVzJyBkYiBleGlzdHMgYW5kIGlzIGFjY2Vzc2libGUuCiAKLVRoaXMgaXMgbm90IGEgdGVzdC4g SXQgZGllKClzIG9uIGZhaWx1cmUuCitUaGlzIGlzIG5vdCBhIHRlc3QuIEl0IGNyb2FrKClzIG9u IGZhaWx1cmUuCiAKIElmIHRoZSBzbG90IGlzIG5vdCBhY3RpdmUsIHdpbGwgdGltZSBvdXQgYWZ0 ZXIgcG9sbF9xdWVyeV91bnRpbCdzIHRpbWVvdXQuCiAKQEAgLTM0ODQsNyArMzQ4NCw3IEBAIGNy ZWF0aW5nIGEgbmV3IHN1YnNjcmlwdGlvbi4KIElmIHRoZXJlIGlzIG5vIGFjdGl2ZSByZXBsaWNh dGlvbiBjb25uZWN0aW9uIGZyb20gdGhpcyBwZWVyLCB3YWl0IHVudGlsCiBwb2xsX3F1ZXJ5X3Vu dGlsIHRpbWVvdXQuCiAKLVRoaXMgaXMgbm90IGEgdGVzdC4gSXQgZGllKClzIG9uIGZhaWx1cmUu CitUaGlzIGlzIG5vdCBhIHRlc3QuIEl0IGNyb2FrKClzIG9uIGZhaWx1cmUuCiAKID1jdXQKIApA QCAtMzYyNCw3ICszNjI0LDcgQEAgRGlzYWxsb3dzIHBnX3JlY3Zsb2dpY2FsIGZyb20gaW50ZXJu YWxseSByZXRyeWluZyBvbiBlcnJvciBieSBwYXNzaW5nIC0tbm8tbG9vcC4KIAogUGx1Z2luIG9w dGlvbnMgYXJlIHBhc3NlZCBhcyBhZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzLgogCi1JZiBj YWxsZWQgaW4gc2NhbGFyIGNvbnRleHQsIHJldHVybnMgc3Rkb3V0LCBhbmQgZGllKClzIG9uIHRp bWVvdXQgb3Igbm9uemVybyByZXR1cm4uCitJZiBjYWxsZWQgaW4gc2NhbGFyIGNvbnRleHQsIHJl dHVybnMgc3Rkb3V0LCBhbmQgY3JvYWsoKXMgb24gdGltZW91dCBvciBub256ZXJvIHJldHVybi4K IAogSWYgY2FsbGVkIGluIGFycmF5IGNvbnRleHQsIHJldHVybnMgYSB0dXBsZSBvZiAocmV0dmFs LCBzdGRvdXQsIHN0ZGVyciwgdGltZW91dCkuCiB0aW1lb3V0IGlzIHRoZSBJUEM6OlJ1bjo6VGlt ZW91dCBvYmplY3Qgd2hvc2UgaXNfZXhwaXJlZCBtZXRob2QgY2FuIGJlIHRlc3RlZApAQCAtMzY4 MCwxNSArMzY4MCwxNSBAQCBzdWIgcGdfcmVjdmxvZ2ljYWxfdXB0bwogCiAJCQkjIElQQzo6UnVu OjpydW4gdGhyZXcgYW4gZXhjZXB0aW9uLiByZS10aHJvdyB1bmxlc3MgaXQncyBhCiAJCQkjIHRp bWVvdXQsIHdoaWNoIHdlJ2xsIGhhbmRsZSBieSB0ZXN0aW5nIGlzX2V4cGlyZWQKLQkJCWRpZSAk ZXhjX3NhdmUKKwkJCWNyb2FrICRleGNfc2F2ZQogCQkJICBpZiAoYmxlc3NlZCgkZXhjX3NhdmUp IHx8ICRleGNfc2F2ZSAhfiBxci8kdGltZW91dF9leGNlcHRpb24vKTsKIAogCQkJJHJldCA9IHVu ZGVmOwogCi0JCQlkaWUgIkdvdCB0aW1lb3V0IGV4Y2VwdGlvbiAnJGV4Y19zYXZlJyBidXQgdGlt ZXIgbm90IGV4cGlyZWQ/ISIKKwkJCWNyb2FrICJHb3QgdGltZW91dCBleGNlcHRpb24gJyRleGNf c2F2ZScgYnV0IHRpbWVyIG5vdCBleHBpcmVkPyEiCiAJCQkgIHVubGVzcyAkdGltZW91dC0+aXNf ZXhwaXJlZDsKIAotCQkJZGllCisJCQljcm9hawogCQkJICAiJGV4Y19zYXZlIHdhaXRpbmcgZm9y IGVuZHBvcyAkZW5kcG9zIHdpdGggc3Rkb3V0ICckc3Rkb3V0Jywgc3RkZXJyICckc3RkZXJyJyIK IAkJCSAgdW5sZXNzIHdhbnRhcnJheTsKIAkJfQpAQCAtMzcwMCw3ICszNzAwLDcgQEAgc3ViIHBn X3JlY3Zsb2dpY2FsX3VwdG8KIAl9CiAJZWxzZQogCXsKLQkJZGllCisJCWNyb2FrCiAJCSAgInBn X3JlY3Zsb2dpY2FsIGV4aXRlZCB3aXRoIGNvZGUgJyRyZXQnLCBzdGRvdXQgJyRzdGRvdXQnIGFu ZCBzdGRlcnIgJyRzdGRlcnInIgogCQkgIGlmICRyZXQ7CiAJCXJldHVybiAkc3Rkb3V0OwpAQCAt MzcyNSwxNCArMzcyNSwxNCBAQCBzdWIgY29ycnVwdF9wYWdlX2NoZWNrc3VtCiAJbXkgJHBnZGF0 YSA9ICRzZWxmLT5kYXRhX2RpcjsKIAlteSAkcGFnZWhlYWRlcjsKIAotCW9wZW4gbXkgJGZoLCAn KzwnLCAiJHBnZGF0YS8kZmlsZSIgb3IgZGllICJvcGVuKCRmaWxlKSBmYWlsZWQ6ICQhIjsKKwlv cGVuIG15ICRmaCwgJys8JywgIiRwZ2RhdGEvJGZpbGUiIG9yIGNyb2FrICJvcGVuKCRmaWxlKSBm YWlsZWQ6ICQhIjsKIAliaW5tb2RlICRmaDsKLQlzeXNzZWVrKCRmaCwgJHBhZ2Vfb2Zmc2V0LCAw KSBvciBkaWUgInN5c3NlZWsgZmFpbGVkOiAkISI7Ci0Jc3lzcmVhZCgkZmgsICRwYWdlaGVhZGVy LCAyNCkgb3IgZGllICJzeXNyZWFkIGZhaWxlZDogJCEiOworCXN5c3NlZWsoJGZoLCAkcGFnZV9v ZmZzZXQsIDApIG9yIGNyb2FrICJzeXNzZWVrIGZhaWxlZDogJCEiOworCXN5c3JlYWQoJGZoLCAk cGFnZWhlYWRlciwgMjQpIG9yIGNyb2FrICJzeXNyZWFkIGZhaWxlZDogJCEiOwogCSMgVGhpcyBp bnZlcnRzIHRoZSBwZF9jaGVja3N1bSBmaWVsZCAob25seSk7IHNlZSBzdHJ1Y3QgUGFnZUhlYWRl ckRhdGEKIAkkcGFnZWhlYWRlciBePSAiXDBcMFwwXDBcMFwwXDBcMFx4ZmZceGZmIjsKLQlzeXNz ZWVrKCRmaCwgJHBhZ2Vfb2Zmc2V0LCAwKSBvciBkaWUgInN5c3NlZWsgZmFpbGVkOiAkISI7Ci0J c3lzd3JpdGUoJGZoLCAkcGFnZWhlYWRlcikgb3IgZGllICJzeXN3cml0ZSBmYWlsZWQ6ICQhIjsK KwlzeXNzZWVrKCRmaCwgJHBhZ2Vfb2Zmc2V0LCAwKSBvciBjcm9hayAic3lzc2VlayBmYWlsZWQ6 ICQhIjsKKwlzeXN3cml0ZSgkZmgsICRwYWdlaGVhZGVyKSBvciBjcm9hayAic3lzd3JpdGUgZmFp bGVkOiAkISI7CiAJY2xvc2UgJGZoOwogCiAJcmV0dXJuOwpAQCAtMzc2MCw3ICszNzYwLDcgQEAg c3ViIGxvZ19zdGFuZGJ5X3NuYXBzaG90CiAJCVNFTEVDVCByZXN0YXJ0X2xzbiBJUyBOT1QgTlVM TAogCQlGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1l ID0gJyRzbG90X25hbWUnCiAJXSkKLQkgIG9yIGRpZQorCSAgb3IgY3JvYWsKIAkgICJ0aW1lZCBv dXQgd2FpdGluZyBmb3IgbG9naWNhbCBzbG90IHRvIGNhbGN1bGF0ZSBpdHMgcmVzdGFydF9sc24i OwogCiAJIyBUaGVuIGFycmFuZ2UgZm9yIHRoZSB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCBmb3Ig d2hpY2ggdGhlIHN0YW5kYnkgaXMKQEAgLTM4MDIsNyArMzgwMiw3IEBAIHN1YiBjcmVhdGVfbG9n aWNhbF9zbG90X29uX3N0YW5kYnkKIAogCWlzKCRzZWxmLT5zbG90KCRzbG90X25hbWUpLT57J3Ns b3RfdHlwZSd9LAogCQknbG9naWNhbCcsICRzbG90X25hbWUgLiAnIG9uIHN0YW5kYnkgY3JlYXRl ZCcpCi0JICBvciBkaWUgImNvdWxkIG5vdCBjcmVhdGUgc2xvdCIgLiAkc2xvdF9uYW1lOworCSAg b3IgY3JvYWsgImNvdWxkIG5vdCBjcmVhdGUgc2xvdCIgLiAkc2xvdF9uYW1lOwogfQogCiA9cG9k CkBAIC0zODMzLDcgKzM4MzMsNyBAQCBzdWIgdmFsaWRhdGVfc2xvdF9pbmFjdGl2ZV9zaW5jZQog CQkpLAogCQkndCcsCiAJCSJsYXN0IGluYWN0aXZlIHRpbWUgZm9yIHNsb3QgJHNsb3RfbmFtZSBp cyB2YWxpZCBvbiBub2RlICRuYW1lIikKLQkgIG9yIGRpZSAiY291bGQgbm90IHZhbGlkYXRlIGNh cHR1cmVkIGluYWN0aXZlX3NpbmNlIGZvciBzbG90ICRzbG90X25hbWUiOworCSAgb3IgY3JvYWsg ImNvdWxkIG5vdCB2YWxpZGF0ZSBjYXB0dXJlZCBpbmFjdGl2ZV9zaW5jZSBmb3Igc2xvdCAkc2xv dF9uYW1lIjsKIAogCXJldHVybiAkaW5hY3RpdmVfc2luY2U7CiB9CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9VdGlscy5wbSBiL3NyYy90ZXN0L3BlcmwvUG9zdGdy ZVNRTC9UZXN0L1V0aWxzLnBtCmluZGV4IDM5Zjc2YzBhYWJhLi45NDliZDIxOWE4ZCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvVXRpbHMucG0KKysrIGIvc3JjL3Rl c3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvVXRpbHMucG0KQEAgLTYzNiw3ICs2MzYsNyBAQCBzdWIg cmVhZF9oZWFkX3RhaWwKIAogCXJldHVybiAoW10sIFtdKSBpZiAkbGluZV9jb3VudCA8PSAwOwog Ci0Jb3BlbiBteSAkZmgsICc8JywgJGZpbGVuYW1lIG9yIGRpZSAiY291bGRuJ3Qgb3BlbiBmaWxl OiAkZmlsZW5hbWVcbiI7CisJb3BlbiBteSAkZmgsICc8JywgJGZpbGVuYW1lIG9yIGNyb2FrICJj b3VsZG4ndCBvcGVuIGZpbGU6ICRmaWxlbmFtZVxuIjsKIAlteSBAbGluZXMgPSA8JGZoPjsKIAlj bG9zZSAkZmg7CiAKQEAgLTcwMSw3ICs3MDEsNyBAQCBzdWIgY2hlY2tfbW9kZV9yZWN1cnNpdmUK IAkJCQkJfQogCQkJCQllbHNlCiAJCQkJCXsKLQkJCQkJCWRpZSAkbXNnOworCQkJCQkJY3JvYWsg JG1zZzsKIAkJCQkJfQogCQkJCX0KIApAQCAtNzQwLDcgKzc0MCw3IEBAIHN1YiBjaGVja19tb2Rl X3JlY3Vyc2l2ZQogCQkJCSMgRWxzZSBzb21ldGhpbmcgd2UgY2FuJ3QgaGFuZGxlCiAJCQkJZWxz ZQogCQkJCXsKLQkJCQkJZGllICJ1bmtub3duIGZpbGUgdHlwZSBmb3IgJEZpbGU6OkZpbmQ6Om5h bWUiOworCQkJCQljcm9hayAidW5rbm93biBmaWxlIHR5cGUgZm9yICRGaWxlOjpGaW5kOjpuYW1l IjsKIAkJCQl9CiAJCQl9CiAJCX0sCkBAIC03NzIsNyArNzcyLDcgQEAgc3ViIGNobW9kX3JlY3Vy c2l2ZQogCQkJCQljaG1vZCgKIAkJCQkJCVNfSVNESVIoJGZpbGVfc3RhdC0+bW9kZSkgPyAkZGly X21vZGUgOiAkZmlsZV9tb2RlLAogCQkJCQkJJEZpbGU6OkZpbmQ6Om5hbWUKLQkJCQkJKSBvciBk aWUgInVuYWJsZSB0byBjaG1vZCAkRmlsZTo6RmluZDo6bmFtZSI7CisJCQkJCSkgb3IgY3JvYWsg InVuYWJsZSB0byBjaG1vZCAkRmlsZTo6RmluZDo6bmFtZSI7CiAJCQkJfQogCQkJfQogCQl9LApA QCAtNzk4LDExICs3OTgsMTEgQEAgc3ViIHNjYW5fc2VydmVyX2hlYWRlcgogCW15ICRyZXN1bHQg PSBJUEM6OlJ1bjo6cnVuIFsgJ3BnX2NvbmZpZycsICctLWluY2x1ZGVkaXItc2VydmVyJyBdLAog CSAgJz4nID0+IFwkc3Rkb3V0LAogCSAgJzI+JyA9PiBcJHN0ZGVycgotCSAgb3IgZGllICJjb3Vs ZCBub3QgZXhlY3V0ZSBwZ19jb25maWciOworCSAgb3IgY3JvYWsgImNvdWxkIG5vdCBleGVjdXRl IHBnX2NvbmZpZyI7CiAJY2hvbXAoJHN0ZG91dCk7CiAJJHN0ZG91dCA9fiBzL1xyJC8vOwogCi0J b3BlbiBteSAkaGVhZGVyX2gsICc8JywgIiRzdGRvdXQvJGhlYWRlcl9wYXRoIiBvciBkaWUgIiQh IjsKKwlvcGVuIG15ICRoZWFkZXJfaCwgJzwnLCAiJHN0ZG91dC8kaGVhZGVyX3BhdGgiIG9yIGNy b2FrICIkISI7CiAKIAlteSBAbWF0Y2ggPSB1bmRlZjsKIAl3aGlsZSAoPCRoZWFkZXJfaD4pCkBA IC04MTYsNyArODE2LDcgQEAgc3ViIHNjYW5fc2VydmVyX2hlYWRlcgogCX0KIAogCWNsb3NlICRo ZWFkZXJfaDsKLQlkaWUgImNvdWxkIG5vdCBmaW5kIG1hdGNoIGluIGhlYWRlciAkaGVhZGVyX3Bh dGhcbiIKKwljcm9hayAiY291bGQgbm90IGZpbmQgbWF0Y2ggaW4gaGVhZGVyICRoZWFkZXJfcGF0 aFxuIgogCSAgdW5sZXNzIEBtYXRjaDsKIAlyZXR1cm4gQG1hdGNoOwogfQpAQCAtODM3LDExICs4 MzcsMTEgQEAgc3ViIGNoZWNrX3BnX2NvbmZpZwogCW15ICRyZXN1bHQgPSBJUEM6OlJ1bjo6cnVu IFsgJ3BnX2NvbmZpZycsICctLWluY2x1ZGVkaXInIF0sCiAJICAnPicgPT4gXCRzdGRvdXQsCiAJ ICAnMj4nID0+IFwkc3RkZXJyCi0JICBvciBkaWUgImNvdWxkIG5vdCBleGVjdXRlIHBnX2NvbmZp ZyI7CisJICBvciBjcm9hayAiY291bGQgbm90IGV4ZWN1dGUgcGdfY29uZmlnIjsKIAljaG9tcCgk c3Rkb3V0KTsKIAkkc3Rkb3V0ID1+IHMvXHIkLy87CiAKLQlvcGVuIG15ICRwZ19jb25maWdfaCwg JzwnLCAiJHN0ZG91dC9wZ19jb25maWcuaCIgb3IgZGllICIkISI7CisJb3BlbiBteSAkcGdfY29u ZmlnX2gsICc8JywgIiRzdGRvdXQvcGdfY29uZmlnLmgiIG9yIGNyb2FrICIkISI7CiAJbXkgJG1h dGNoID0gKGdyZXAgeyAvXiRyZWdleHAvIH0gPCRwZ19jb25maWdfaD4pOwogCWNsb3NlICRwZ19j b25maWdfaDsKIAlyZXR1cm4gJG1hdGNoOwpAQCAtOTQ2LDEzICs5NDYsMTMgQEAgc3ViIGRpcl9z eW1saW5rCiAJCQkjIG5lZWQgc29tZSBpbmRpcmVjdGlvbiBvbiBtc3lzCiAJCQkkY21kID0gcXF7 ZWNobyAnJGNtZCcgfCBcJENPTVNQRUMgL1F9OwogCQl9Ci0JCXN5c3RlbSgkY21kKSA9PSAwIG9y IGRpZTsKKwkJc3lzdGVtKCRjbWQpID09IDAgb3IgY3JvYWs7CiAJfQogCWVsc2UKIAl7Ci0JCXN5 bWxpbmsgJG9sZG5hbWUsICRuZXduYW1lIG9yIGRpZSAkITsKKwkJc3ltbGluayAkb2xkbmFtZSwg JG5ld25hbWUgb3IgY3JvYWsgJCE7CiAJfQotCWRpZSAiTm8gJG5ld25hbWUiIHVubGVzcyAtZSAk bmV3bmFtZTsKKwljcm9hayAiTm8gJG5ld25hbWUiIHVubGVzcyAtZSAkbmV3bmFtZTsKIH0KIAog IyBMb2cgY29tbWFuZCBvdXRwdXQuIFRydW5jYXRlcyB0byBmaXJzdC9sYXN0IDMwIGxpbmVzIGlm IG92ZXIgNjAgbGluZXMuCkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBzdWIgY29tbWFuZF9jaGVja3Nf YWxsCiAKIAkjIFNlZSBodHRwOi8vcGVybGRvYy5wZXJsLm9yZy9wZXJsdmFyLmh0bWwjJTI0Q0hJ TERfRVJST1IKIAlteSAkcmV0ID0gJD87Ci0JZGllICJjb21tYW5kIGV4aXRlZCB3aXRoIHNpZ25h bCAiIC4gKCRyZXQgJiAxMjcpCisJY3JvYWsgImNvbW1hbmQgZXhpdGVkIHdpdGggc2lnbmFsICIg LiAoJHJldCAmIDEyNykKIAkgIGlmICRyZXQgJiAxMjc7CiAJJHJldCA9ICRyZXQgPj4gODsKIAot LSAKMi41Mi4wCgo= --1cf4537b425b1bc8c4d276c88dfa37219c200b20ce8854480f74603503b5--