From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: =?utf-8?q?Miro_Hron=C4=8Dok_=3Cmiro=40hroncok=2Ecz=3E?= To: git-commits@fedoraproject.org Subject: [rpms/pyproject-rpm-macros] f43: getopt: Fix global macro clobbering with save/restore stack Date: Fri, 24 Jul 2026 19:59:03 GMT Message-ID: <178492314356.1.113337191566559018.rpms-pyproject-rpm-macros-83ea9a1a0186@fedoraproject.org> List-ID: X-Git-Repo: rpms/pyproject-rpm-macros X-Git-Branch: f43 X-Git-Rev: 83ea9a1a0186a271d968297df63acb411311e094 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvcHlwcm9qZWN0LXJwbS1tYWNyb3MKICAgICAgICAgICAgQnJhbmNoIDogZjQz CiAgICAgICAgICAgIENvbW1pdCA6IDgzZWE5YTFhMDE4NmEyNzFkOTY4Mjk3ZGY2M2FjYjQxMTMx MWUwOTQKICAgICAgICAgICAgQXV0aG9yIDogTWlybyBIcm9uxI1vayA8bWlyb0Bocm9uY29rLmN6 PgogICAgICAgICAgICBEYXRlICAgOiAyMDI2LTA3LTI0VDE2OjA1OjA2KzAyOjAwCiAgICAgICAg ICAgIFN0YXRzICA6ICsxNTgvLTIzIGluIDQgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBo dHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL3B5cHJvamVjdC1ycG0tbWFjcm9zL2Mv ODNlYTlhMWEwMTg2YTI3MWQ5NjgyOTdkZjYzYWNiNDExMzExZTA5ND9icmFuY2g9ZjQzCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIGdldG9wdDogRml4IGdsb2JhbCBtYWNybyBjbG9iYmVy aW5nIHdpdGggc2F2ZS9yZXN0b3JlIHN0YWNrCgpXaGVuIGNhbGxpbmcgb25lIGdldG9wdC11c2lu ZyBtYWNybyBmcm9tIGFub3RoZXIsCnRoZSBtYWNybyBkZWZpbml0aW9ucyBmcm9tIHRoZSBpbm5l ciBtYWNybyBsZWFrZWQgdG8gdGhlIG91dGVyIG9uZS4KCnJwbS5kZWZpbmUoKS9ycG0udW5kZWZp bmUoKSBvcGVyYXRlIGdsb2JhbGx5LCBub3Qgc2NvcGVkIHRvIHBhcmFtZXRyaWMKbWFjcm8gaW52 b2NhdGlvbnMuIFdoZW4gYSBtYWNybyB1c2luZyBnZXRvcHQoKSBpcyBjYWxsZWQgbmVzdGVkIGlu c2lkZQphbm90aGVyIGdldG9wdC11c2luZyBtYWNybyB3aXRoIG92ZXJsYXBwaW5nIG9wdGlvbiBs ZXR0ZXJzLCB0aGUgaW5uZXIKY2xlYW51cF9tYWNyb3MoKSB3aXBlcyB0aGUgb3V0ZXIgbWFjcm8n cyBfX3B5cHJvamVjdF9vcHRfKiB2YWx1ZXMuCgpOb3RlOiBSUE0ncyBuYXRpdmUgJWRlZmluZS8l dW5kZWZpbmUgaGF2ZSBzdGFjay1saWtlIGJlaGF2aW9yIChwdXNoaW5nCmFuZCBwb3BwaW5nIGRl ZmluaXRpb25zKSwgYW5kIHdlIGNhbiBpbnZva2UgJWRlZmluZSBmcm9tIEx1YSB2aWEKcnBtLmV4 cGFuZCgpLiBIb3dldmVyLCB0aGVyZSBpcyBubyB3YXkgdG8gcHVzaCAibm90IGRlZmluZWQiIG9u dG8KdGhpcyBzdGFjayBhbmQgbGF0ZXIgcG9wIGl0LiBTaW5jZSBnZXRvcHQgdHJlYXRzICJub3Qg ZGVmaW5lZCIgYW5kCiJkZWZpbmVkIHRvICV7bmlsfSIgZGlmZmVyZW50bHkgKHRoZSBmb3JtZXIg bWVhbnMgdGhlIG9wdGlvbiB3YXMgbm90CnBhc3NlZCwgdGhlIGxhdHRlciBtZWFucyBhIGZsYWcg d2FzIHBhc3NlZCB3aXRob3V0IGEgdmFsdWUpLCB0aGUKbmF0aXZlIHN0YWNraW5nIGNhbm5vdCBy ZXByZXNlbnQgdGhlIGZ1bGwgc3RhdGUgc3BhY2UuIFdlIGltcGxlbWVudApvdXIgb3duIHNhdmUv cmVzdG9yZSBzdGFjayBvbiB0aGUgTHVhIHNpZGUgaW5zdGVhZC4KCkFkZCBhIEx1YS1zaWRlIHNh dmUvcmVzdG9yZSBzdGFjazogZ2V0b3B0KCkgc2F2ZXMgY3VycmVudCBtYWNybyBzdGF0ZQpiZWZv cmUgY2xlYW51cCwgYW5kIGEgbmV3IHJlc3RvcmUoKSBmdW5jdGlvbiBwb3BzIGFuZCByZWluc3Rh dGVzIGl0LgpBbGwgZ2V0b3B0LXVzaW5nIG1hY3JvcyBjYWxsICV7X19weXByb2plY3RfZ2V0b3B0 X3Jlc3RvcmV9IGF0IHRoZSBlbmQKb2YgdGhlaXIgYm9keS4KCkFzc2lzdGVkLUJ5OiBDbGF1ZGUg T3B1cyA0LjYKQXNzaXN0ZWQtQnk6IENvZGV4CgotLS0KZGlmZiAtLWdpdCBhL21hY3Jvcy5weXBy b2plY3QgYi9tYWNyb3MucHlwcm9qZWN0CmluZGV4IGNiMzZkMmUuLjNmZTI5NWIgMTAwNjQ0Ci0t LSBhL21hY3Jvcy5weXByb2plY3QKKysrIGIvbWFjcm9zLnB5cHJvamVjdApAQCAtMjMsNiArMjMs OCBAQAogIyBQRVAgNTAzIG5hbWUgbm9ybWFsaXphdGlvbjogbG93ZXJjYXNlLCBvbmUgb3IgbW9y ZSBbLV8uXSDihpIgc2luZ2xlIC0KICVfX3B5cHJvamVjdF9ub3JtYWxpemVfbmFtZSgtKSAle2x1 YTpwcmludCgocnBtLmV4cGFuZCgiJTEiKTpsb3dlcigpOmdzdWIoIlslLV8uXSsiLCAiLSIpKSl9 CiAKKyVfX3B5cHJvamVjdF9nZXRvcHRfcmVzdG9yZSAle2x1YTpyZXF1aXJlKCJmZWRvcmEucnBt LnB5cHJvamVjdF9nZXRvcHQiKS5yZXN0b3JlKCl9CisKICVfcHlwcm9qZWN0X2ZpbGVzX2Jhc2Ug JXtfYnVpbGRkaXJ9LyV7X3B5cHJvamVjdF9maWxlc19wcmVmaXh9LXB5cHJvamVjdC1maWxlcwog JV9weXByb2plY3RfbW9kdWxlc19iYXNlICV7X2J1aWxkZGlyfS8le19weXByb2plY3RfZmlsZXNf cHJlZml4fS1weXByb2plY3QtbW9kdWxlcwogJV9weXByb2plY3RfZ2hvc3RfZGlzdGluZm9fYmFz ZSAle19idWlsZGRpcn0vJXtfcHlwcm9qZWN0X2ZpbGVzX3ByZWZpeH0tcHlwcm9qZWN0LWdob3N0 LWRpc3RpbmZvCkBAIC0zMCwxNyArMzIsMTcgQEAKICVweXByb2plY3RfZmlsZXMoLSkgJXtsdWE6 CiByZXF1aXJlKCJmZWRvcmEucnBtLnB5cHJvamVjdF9nZXRvcHQiKS5nZXRvcHQoewogICAgIHtz aG9ydD0iRCIsIGxvbmc9ImRpc3QtbmFtZSIsIHZhbHVlPXRydWV9LAotfSl9JXtfcHlwcm9qZWN0 X2ZpbGVzX2Jhc2V9JXs/X19weXByb2plY3Rfb3B0X0Q6LSV7X19weXByb2plY3Rfbm9ybWFsaXpl X25hbWUgJXtfX3B5cHJvamVjdF9vcHRfRH19fQorfSl9JXtfcHlwcm9qZWN0X2ZpbGVzX2Jhc2V9 JXs/X19weXByb2plY3Rfb3B0X0Q6LSV7X19weXByb2plY3Rfbm9ybWFsaXplX25hbWUgJXtfX3B5 cHJvamVjdF9vcHRfRH19fSV7X19weXByb2plY3RfZ2V0b3B0X3Jlc3RvcmV9CiAKICVfcHlwcm9q ZWN0X21vZHVsZXMoLSkgJXtsdWE6CiByZXF1aXJlKCJmZWRvcmEucnBtLnB5cHJvamVjdF9nZXRv cHQiKS5nZXRvcHQoewogICAgIHtzaG9ydD0iRCIsIGxvbmc9ImRpc3QtbmFtZSIsIHZhbHVlPXRy dWV9LAotfSl9JXtfcHlwcm9qZWN0X21vZHVsZXNfYmFzZX0lez9fX3B5cHJvamVjdF9vcHRfRDot JXtfX3B5cHJvamVjdF9ub3JtYWxpemVfbmFtZSAle19fcHlwcm9qZWN0X29wdF9EfX19Cit9KX0l e19weXByb2plY3RfbW9kdWxlc19iYXNlfSV7P19fcHlwcm9qZWN0X29wdF9EOi0le19fcHlwcm9q ZWN0X25vcm1hbGl6ZV9uYW1lICV7X19weXByb2plY3Rfb3B0X0R9fX0le19fcHlwcm9qZWN0X2dl dG9wdF9yZXN0b3JlfQogCiAlX3B5cHJvamVjdF9naG9zdF9kaXN0aW5mbygtKSAle2x1YToKIHJl cXVpcmUoImZlZG9yYS5ycG0ucHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7CiAgICAge3Nob3J0 PSJEIiwgbG9uZz0iZGlzdC1uYW1lIiwgdmFsdWU9dHJ1ZX0sCi19KX0le19weXByb2plY3RfZ2hv c3RfZGlzdGluZm9fYmFzZX0lez9fX3B5cHJvamVjdF9vcHRfRDotJXtfX3B5cHJvamVjdF9ub3Jt YWxpemVfbmFtZSAle19fcHlwcm9qZWN0X29wdF9EfX19Cit9KX0le19weXByb2plY3RfZ2hvc3Rf ZGlzdGluZm9fYmFzZX0lez9fX3B5cHJvamVjdF9vcHRfRDotJXtfX3B5cHJvamVjdF9ub3JtYWxp emVfbmFtZSAle19fcHlwcm9qZWN0X29wdF9EfX19JXtfX3B5cHJvamVjdF9nZXRvcHRfcmVzdG9y ZX0KIAogJV9weXByb2plY3RfcmVjb3JkICV7X2J1aWxkZGlyfS8le19weXByb2plY3RfZmlsZXNf cHJlZml4fS1weXByb2plY3QtcmVjb3JkCiAlX3B5cHJvamVjdF9idWlsZHJlcXVpcmVzICV7X2J1 aWxkZGlyfS8le19weXByb2plY3RfZmlsZXNfcHJlZml4fS1weXByb2plY3QtYnVpbGRyZXF1aXJl cwpAQCAtNzEsNyArNzMsNyBAQCBta2RpciAtcCAiJXtfcHlwcm9qZWN0X2J1aWxkZGlyfSIKIFRN UERJUj0iJXtfcHlwcm9qZWN0X2J1aWxkZGlyfSIgXFxcCiAle19fcHl0aG9uM30gLUJzICV7X3Jw bWNvbmZpZ2Rpcn0vcmVkaGF0L3B5cHJvamVjdF93aGVlbC5weSAlez8qKn0gJXtfcHlwcm9qZWN0 X3doZWVsZGlyfQogJXs/X19weXByb2plY3Rfb3B0X2Q6cG9wZH0KLX0KKyV7X19weXByb2plY3Rf Z2V0b3B0X3Jlc3RvcmV9fQogCiAKICVweXByb2plY3RfYnVpbGRfbGliICV7IT9fX3B5cHJvamVj dF9idWlsZF9saWJfd2FybmVkOiV7d2FybjpUaGUgJSV7cHlwcm9qZWN0X2J1aWxkX2xpYn0gbWFj cm8gaXMgZGVwcmVjYXRlZC4KQEAgLTE4Myw3ICsxODUsNyBAQCBmaQogICAtLXB5cHJvamVjdC1y ZWNvcmQgIiV7X3B5cHJvamVjdF9yZWNvcmR9IiBcXAogICAtLXByZWZpeCAiJXtfcHJlZml4fSIg XFwKICAgJXsqKn0KLX0KKyV7X19weXByb2plY3RfZ2V0b3B0X3Jlc3RvcmV9fQogCiAlcHlwcm9q ZWN0X2NoZWNrX2ltcG9ydCgtKSBcCiAle2x1YTpyZXF1aXJlKCJmZWRvcmEucnBtLnB5cHJvamVj dF9nZXRvcHQiKS5nZXRvcHQoewpAQCAtMjA0LDcgKzIwNiw3IEBAIGlmIFsgISAtZiAiJXtfcHlw cm9qZWN0X21vZHVsZXMgJXs/X19weXByb2plY3Rfb3B0ZmxhZ19EfX0iIF07IHRoZW4KICAgZXhp dCAxCiBmaQogJXB5M19jaGVja19pbXBvcnQgLWYgIiV7X3B5cHJvamVjdF9tb2R1bGVzICV7P19f cHlwcm9qZWN0X29wdGZsYWdfRH19IiAlez9fX3B5cHJvamVjdF9vcHRmbGFnX2V9ICV7P19fcHlw cm9qZWN0X29wdGZsYWdfdH0gJXs/X19weXByb2plY3RfcG9zaXRpb25hbF9hcmdzfQotfQorJXtf X3B5cHJvamVjdF9nZXRvcHRfcmVzdG9yZX19CiAKIAogJV9weXByb2plY3RfY2hlY2tfaW1wb3J0 X2FsbG93X25vX21vZHVsZXMoLSkgXApAQCAtMjE3LDcgKzIxOSw4IEBAIGlmIFsgLXogIiQoY2F0 ICV7X3B5cHJvamVjdF9tb2R1bGVzICV7P19fcHlwcm9qZWN0X29wdGZsYWdfRH19KSIgXTsgdGhl blwKICAgZWNobyAiTm8gbW9kdWxlcyB0byBjaGVjayBmb3VuZCwgZXhpdGluZyBjaGVjayJcCiBl bHNlXAogICAlcHlwcm9qZWN0X2NoZWNrX2ltcG9ydCAlez8qKn1cCi1maQorZmlcCisle19fcHlw cm9qZWN0X2dldG9wdF9yZXN0b3JlfQogCiAKICVkZWZhdWx0X3RveGVudiBweSV7cHl0aG9uM192 ZXJzaW9uX25vZG90c30KQEAgLTI5Myw3ICsyOTYsNyBAQCBmaQogIyBJbmNvbXBsZXRlIC5kaXN0 LWluZm8gZGlyIG1pZ2h0IGNvbmZ1c2UgaW1wb3J0bGliLm1ldGFkYXRhCiBybSAtcmZ2ICouZGlz dC1pbmZvLyA+JjIKICV7P19fcHlwcm9qZWN0X29wdF9kOnBvcGQgPiYyfQotfQorJXtfX3B5cHJv amVjdF9nZXRvcHRfcmVzdG9yZX19CiAKIAogJXRveCgtKSBcCkBAIC0zMDgsNyArMzExLDcgQEAg UFlUSE9OUEFUSD0iJHtQWVRIT05QQVRIOi0le2J1aWxkcm9vdH0le3B5dGhvbjNfc2l0ZWFyY2h9 OiV7YnVpbGRyb290fSV7cHl0aG9uM18KICV7P19fcHl0ZXN0X2FkZG9wdHM6UFlURVNUX0FERE9Q VFM9IiR7UFlURVNUX0FERE9QVFM6LX0gJXtfX3B5dGVzdF9hZGRvcHRzfSJ9fSBcXAogSE9TVE5B TUU9InJwbWJ1aWxkIiBcXAogJXtfX3B5dGhvbjN9IC1tIHRveCAtLWN1cnJlbnQtZW52IC0tYXNz ZXJ0LWNvbmZpZyAtcSAtLXJlY3JlYXRlIC1lICIlez9fX3B5cHJvamVjdF9vcHRfZX0leyE/X19w eXByb2plY3Rfb3B0X2U6JXt0b3hlbnZ9fSIgJXs/X19weXByb2plY3RfcG9zaXRpb25hbF9hcmdz fQotfQorJXtfX3B5cHJvamVjdF9nZXRvcHRfcmVzdG9yZX19CiAKIAogIyBEZWNsYXJhdGl2ZSBi dWlsZHN5c3RlbSwgcmVxdWlyZXMgUlBNIDQuMjArIHRvIHdvcmsKCmRpZmYgLS1naXQgYS9weXBy b2plY3QtcnBtLW1hY3Jvcy5zcGVjIGIvcHlwcm9qZWN0LXJwbS1tYWNyb3Muc3BlYwppbmRleCBm NjI1ZTFmLi44ZGViNDljIDEwMDY0NAotLS0gYS9weXByb2plY3QtcnBtLW1hY3Jvcy5zcGVjCisr KyBiL3B5cHJvamVjdC1ycG0tbWFjcm9zLnNwZWMKQEAgLTE0LDggKzE0LDggQEAgTGljZW5zZTog ICAgICAgIE1JVAogIyAgIEluY3JlbWVudCBZIGFuZCByZXNldCBaIHdoZW4gbmV3IG1hY3JvcyBv ciBmZWF0dXJlcyBhcmUgYWRkZWQKICMgICBJbmNyZW1lbnQgWiB3aGVuIHRoaXMgaXMgYSBidWdm aXggb3IgYSBjb3NtZXRpYyBjaGFuZ2UKICMgRHJvcHBpbmcgc3VwcG9ydCBmb3IgRU9MIEZlZG9y YXMgaXMgKm5vdCogY29uc2lkZXJlZCBhIGJyZWFraW5nIGNoYW5nZQotVmVyc2lvbjogICAgICAg IDEuMjMuMAotUmVsZWFzZTogICAgICAgIDIlez9kaXN0fQorVmVyc2lvbjogICAgICAgIDEuMjMu MQorUmVsZWFzZTogICAgICAgIDElez9kaXN0fQogCiAjIE1hY3JvIGZpbGVzCiBTb3VyY2U6ICAg ICAgICAgbWFjcm9zLnB5cHJvamVjdApAQCAtMTc5LDYgKzE3OSw5IEBAIGV4cG9ydCBIT1NUTkFN RT0icnBtYnVpbGQiICAjIHRvIHNwZWVkdXAgdG94IGluIG5ldHdvcmstbGVzcyBtb2NrLCBzZWUg cmhieiMxODU2CiAKIAogJWNoYW5nZWxvZworKiBUaHUgSnVsIDIzIDIwMjYgTWlybyBIcm9uxI1v ayA8bWhyb25jb2tAcmVkaGF0LmNvbT4gLSAxLjIzLjEtMQorLSBnZXRvcHQ6IEZpeCBnbG9iYWwg bWFjcm8gY2xvYmJlcmluZyB3aXRoIHNhdmUvcmVzdG9yZSBzdGFjaworCiAqIFRodSBKdWwgMTYg MjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3Jn PiAtIDEuMjMuMC0yCiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lr aS9GZWRvcmFfNDVfTWFzc19SZWJ1aWxkCiAKCmRpZmYgLS1naXQgYS9weXByb2plY3RfZ2V0b3B0 Lmx1YSBiL3B5cHJvamVjdF9nZXRvcHQubHVhCmluZGV4IDg2MWNiMjUuLmQ1YmY5ODYgMTAwNjQ0 Ci0tLSBhL3B5cHJvamVjdF9nZXRvcHQubHVhCisrKyBiL3B5cHJvamVjdF9nZXRvcHQubHVhCkBA IC0yMTMsNiArMjEzLDcgQEAgbG9jYWwgZnVuY3Rpb24gY2xlYW51cF9tYWNyb3Mob3B0X3NwZWMp CiAgICAgICAgIHJwbS51bmRlZmluZSgiX19weXByb2plY3Rfb3B0XyIgLi4gc3BlYy5zaG9ydCkK ICAgICAgICAgcnBtLnVuZGVmaW5lKCJfX3B5cHJvamVjdF9vcHRmbGFnXyIgLi4gc3BlYy5zaG9y dCkKICAgICBlbmQKKyAgICBycG0udW5kZWZpbmUoIl9fcHlwcm9qZWN0X3Bvc2l0aW9uYWxfYXJn cyIpCiBlbmQKIAogCkBAIC0yNDIsMTYgKzI0MywxOCBAQCBsb2NhbCBmdW5jdGlvbiBxdW90ZV92 YWx1ZXModmFsdWVzKQogICAgIHJldHVybiBwYXJ0cwogZW5kCiAKLS0tIERlZmluZSAlX19weXBy b2plY3Rfb3B0X3tzaG9ydH0gYW5kICVfX3B5cHJvamVjdF9vcHRmbGFnX3tzaG9ydH0gZm9yIGVh Y2ggZm91bmQgb3B0aW9uLgorLS0gRGVmaW5lICVfX3B5cHJvamVjdF9vcHRfe3Nob3J0fSwgJV9f cHlwcm9qZWN0X29wdGZsYWdfe3Nob3J0fSwgYW5kCistLSAlX19weXByb2plY3RfcG9zaXRpb25h bF9hcmdzIGZyb20gYSBwYXJzZSByZXN1bHQuCistLSBUYWtlcyBhIHRhYmxlIHtmb3VuZCwgb3B0 X3NwZWMsIHBvc2l0aW9uYWx9LgogLS0gb3B0OiBGbGFncyBnZXQgJXtuaWx9IChkZWZpbmVkIGJ1 dCBlbXB0eSksIHZhbHVlIG9wdGlvbnMgZ2V0IGVhY2ggaW5kaXZpZHVhbAogLS0gICAgICB2YWx1 ZSBqb2luZWQgYnkgc2VwYXJhdG9yLgogLS0gb3B0ZmxhZzogUmVhZHktdG8tZm9yd2FyZCBmb3Jt OiAiLVgiIGZvciBmbGFncywgIi1YIHZhbHVlIiBmb3IgdmFsdWUgb3B0aW9ucy4KIC0tIFNlZSB0 aGUgcXVvdGVfdmFsdWUgZnVuY3Rpb24gYWJvdXQgaG93IHZhbHVlcyBhcmUgcXVvdGVkLgotbG9j YWwgZnVuY3Rpb24gZGVmaW5lX21hY3Jvcyhmb3VuZCwgb3B0X3NwZWMpCi0gICAgZm9yIF8sIHNw ZWMgaW4gaXBhaXJzKG9wdF9zcGVjKSBkbwotICAgICAgICBpZiBmb3VuZFtzcGVjLnNob3J0XSB0 aGVuCitsb2NhbCBmdW5jdGlvbiBkZWZpbmVfbWFjcm9zKHN0YXRlKQorICAgIGZvciBfLCBzcGVj IGluIGlwYWlycyhzdGF0ZS5vcHRfc3BlYykgZG8KKyAgICAgICAgaWYgc3RhdGUuZm91bmRbc3Bl Yy5zaG9ydF0gdGhlbgogICAgICAgICAgICAgaWYgc3BlYy52YWx1ZSB0aGVuCi0gICAgICAgICAg ICAgICAgbG9jYWwgcGFydHMgPSBxdW90ZV92YWx1ZXMoZm91bmRbc3BlYy5zaG9ydF0pCisgICAg ICAgICAgICAgICAgbG9jYWwgcGFydHMgPSBxdW90ZV92YWx1ZXMoc3RhdGUuZm91bmRbc3BlYy5z aG9ydF0pCiAgICAgICAgICAgICAgICAgbG9jYWwgdmFsdWUgPSB0YWJsZS5jb25jYXQocGFydHMs IHNwZWMuc2VwYXJhdG9yKQogICAgICAgICAgICAgICAgIHJwbS5kZWZpbmUoIl9fcHlwcm9qZWN0 X29wdF8iIC4uIHNwZWMuc2hvcnQgLi4gIiAiIC4uIHZhbHVlKQogICAgICAgICAgICAgICAgIHJw bS5kZWZpbmUoIl9fcHlwcm9qZWN0X29wdGZsYWdfIiAuLiBzcGVjLnNob3J0IC4uICIgLSIgLi4g c3BlYy5zaG9ydCAuLiAiICIgLi4gdmFsdWUpCkBAIC0yNjEsNiArMjY0LDI4IEBAIGxvY2FsIGZ1 bmN0aW9uIGRlZmluZV9tYWNyb3MoZm91bmQsIG9wdF9zcGVjKQogICAgICAgICAgICAgZW5kCiAg ICAgICAgIGVuZAogICAgIGVuZAorICAgIGlmICNzdGF0ZS5wb3NpdGlvbmFsID4gMCB0aGVuCisg ICAgICAgIGxvY2FsIHBhcnRzID0gcXVvdGVfdmFsdWVzKHN0YXRlLnBvc2l0aW9uYWwpCisgICAg ICAgIHJwbS5kZWZpbmUoIl9fcHlwcm9qZWN0X3Bvc2l0aW9uYWxfYXJncyAiIC4uIHRhYmxlLmNv bmNhdChwYXJ0cywgIiAiKSkKKyAgICBlbmQKK2VuZAorCisKKy0tIFNhdmUvcmVzdG9yZSBzdGFj ayBmb3IgbmVzdGVkIGdldG9wdCBjYWxscy4KKy0tIHJwbS5kZWZpbmUoKS9ycG0udW5kZWZpbmUo KSBhcmUgZ2xvYmFsIChub3Qgc2NvcGVkIHRvIHBhcmFtZXRyaWMgbWFjcm9zKSwKKy0tIHNvIGFu IGlubmVyIGdldG9wdCBjbGVhbnVwIGNsb2JiZXJzIG91dGVyIHZhbHVlcy4gV2Ugc2F2ZSB0aGUg c3RydWN0dXJlZAorLS0gcGFyc2UgcmVzdWx0IGFuZCByZS1ydW4gZGVmaW5lX21hY3JvcygpIGlu IHJlc3RvcmUoKSwgYXZvaWRpbmcgYW55CistLSBycG0uZXhwYW5kKCkgcm91bmQtdHJpcCB0aGF0 IHdvdWxkIHN0cmlwICV7cXVvdGU6fSB3cmFwcGVycy4KK2xvY2FsIF9jdXJyZW50ID0gbmlsICAt LSB7Zm91bmQsIG9wdF9zcGVjLCBwb3NpdGlvbmFsfSBmcm9tIHRoZSBtb3N0IHJlY2VudCBnZXRv cHQoKQorbG9jYWwgX3NhdmVfc3RhY2sgPSB7fSAtLSBzdGFjayBvZiB7Zm91bmQsIG9wdF9zcGVj LCBwb3NpdGlvbmFsfSB0YWJsZXMKKworZnVuY3Rpb24gTS5yZXN0b3JlKCkKKyAgICBpZiBfY3Vy cmVudCB0aGVuCisgICAgICAgIGNsZWFudXBfbWFjcm9zKF9jdXJyZW50Lm9wdF9zcGVjKQorICAg IGVuZAorICAgIF9jdXJyZW50ID0gdGFibGUucmVtb3ZlKF9zYXZlX3N0YWNrKQorICAgIGlmIG5v dCBfY3VycmVudCB0aGVuIHJldHVybiBlbmQKKyAgICBkZWZpbmVfbWFjcm9zKF9jdXJyZW50KQog ZW5kCiAKIApAQCAtMjc0LDggKzI5OSw4IEBAIGZ1bmN0aW9uIE0uZ2V0b3B0KG9wdF9zcGVjLCBl eGNsdXNpb25fcnVsZXMsIHRva2VucywgbWFjcm9fbmFtZSkKICAgICB0b2tlbnMgPSBub3JtYWxp emVfdG9rZW5zKHRva2VucyBvciBNLnJwbV9hcmdzKCkpCiAgICAgbWFjcm9fbmFtZSA9IG1hY3Jv X25hbWUgb3IgcnBtLmV4cGFuZCgiJTAiKQogICAgIGxvY2FsIGJ5X3Nob3J0LCBieV9sb25nID0g YnVpbGRfbG9va3VwKG9wdF9zcGVjKQorICAgIF9zYXZlX3N0YWNrWyNfc2F2ZV9zdGFjayArIDFd ID0gX2N1cnJlbnQKICAgICBjbGVhbnVwX21hY3JvcyhvcHRfc3BlYykKLSAgICBycG0udW5kZWZp bmUoIl9fcHlwcm9qZWN0X3Bvc2l0aW9uYWxfYXJncyIpCiAKICAgICBsb2NhbCByZXN1bHQgPSBw YXJzZShtYWNyb19uYW1lLCB0b2tlbnMsIGJ5X3Nob3J0LCBieV9sb25nKQogICAgIGlmIG5vdCBy ZXN1bHQgdGhlbiByZXR1cm4gZW5kCkBAIC0yODYsMTIgKzMxMSw4IEBAIGZ1bmN0aW9uIE0uZ2V0 b3B0KG9wdF9zcGVjLCBleGNsdXNpb25fcnVsZXMsIHRva2VucywgbWFjcm9fbmFtZSkKICAgICAg ICAgZW5kCiAgICAgZW5kCiAKLSAgICBkZWZpbmVfbWFjcm9zKHJlc3VsdC5mb3VuZCwgb3B0X3Nw ZWMpCi0KLSAgICBpZiAjcmVzdWx0LnBvc2l0aW9uYWwgPiAwIHRoZW4KLSAgICAgICAgbG9jYWwg cGFydHMgPSBxdW90ZV92YWx1ZXMocmVzdWx0LnBvc2l0aW9uYWwpCi0gICAgICAgIHJwbS5kZWZp bmUoIl9fcHlwcm9qZWN0X3Bvc2l0aW9uYWxfYXJncyAiIC4uIHRhYmxlLmNvbmNhdChwYXJ0cywg IiAiKSkKLSAgICBlbmQKKyAgICBfY3VycmVudCA9IHtmb3VuZCA9IHJlc3VsdC5mb3VuZCwgb3B0 X3NwZWMgPSBvcHRfc3BlYywgcG9zaXRpb25hbCA9IHJlc3VsdC5wb3NpdGlvbmFsfQorICAgIGRl ZmluZV9tYWNyb3MoX2N1cnJlbnQpCiBlbmQKIAogcmV0dXJuIE0KCmRpZmYgLS1naXQgYS90ZXN0 X3B5cHJvamVjdF9nZXRvcHQubHVhIGIvdGVzdF9weXByb2plY3RfZ2V0b3B0Lmx1YQppbmRleCBk Y2QxNzQyLi4xYmZmNjAyIDEwMDY0NAotLS0gYS90ZXN0X3B5cHJvamVjdF9nZXRvcHQubHVhCisr KyBiL3Rlc3RfcHlwcm9qZWN0X2dldG9wdC5sdWEKQEAgLTQ0OCw2ICs0NDgsMTE0IEBAIGZ1bmN0 aW9uIE0udGVzdF9vcHRmbGFnX2NsZWFudXBfYmV0d2Vlbl9jYWxscygpCiBlbmQKIAogCistLSBO ZXN0ZWQgbWFjcm8gc2NvcGU6IHNhdmUvcmVzdG9yZSBwcmV2ZW50cyBpbm5lciBnZXRvcHQgZnJv bSBjbG9iYmVyaW5nIG91dGVyIHZhbHVlcworCitmdW5jdGlvbiBNLnRlc3RfbmVzdGVkX2dldG9w dF93aXRoX3Jlc3RvcmVfcHJlc2VydmVzX291dGVyX29wdHMoKQorICAgIHJwbS5kZWZpbmUoW1tf dGVzdF9pbm5lcigtKSAle2x1YToKKyAgICAgICAgcmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIp LmdldG9wdCh7CisgICAgICAgICAgICB7c2hvcnQ9ImQiLCBsb25nPSJkaXJlY3RvcnkiLCB2YWx1 ZT10cnVlfSwKKyAgICAgICAgfSl9aW5uZXIle2x1YTpyZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0 IikucmVzdG9yZSgpfV1dCisgICAgKQorICAgIHJwbS5kZWZpbmUoW1tfdGVzdF9vdXRlcigtKSAl e2x1YToKKyAgICAgICAgcmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7CisgICAg ICAgICAgICB7c2hvcnQ9ImQiLCBsb25nPSJkaXJlY3RvcnkiLCB2YWx1ZT10cnVlfSwKKyAgICAg ICAgfSl9JXtfdGVzdF9pbm5lcn0vJXs/X19weXByb2plY3Rfb3B0X2R9XV0KKyAgICApCisKKyAg ICBsb2NhbCByZXN1bHQgPSBycG0uZXhwYW5kKCIlX3Rlc3Rfb3V0ZXIgLWQgaGVsbG8iKQorICAg IGFzc2VydChyZXN1bHQgPT0gImlubmVyL2hlbGxvIiwKKyAgICAgICAgImV4cGVjdGVkICdpbm5l ci9oZWxsbycsIGdvdCAnIiAuLiByZXN1bHQgLi4gIiciKQorZW5kCisKK2Z1bmN0aW9uIE0udGVz dF9uZXN0ZWRfZ2V0b3B0X3dpdGhfcmVzdG9yZV9wcmVzZXJ2ZXNfb3V0ZXJfb3B0ZmxhZ3MoKQor ICAgIHJwbS5kZWZpbmUoW1tfdGVzdF9pbm5lcjIoLSkgJXtsdWE6CisgICAgICAgIHJlcXVpcmUo InB5cHJvamVjdF9nZXRvcHQiKS5nZXRvcHQoeworICAgICAgICAgICAge3Nob3J0PSJkIiwgbG9u Zz0iZGlyZWN0b3J5IiwgdmFsdWU9dHJ1ZX0sCisgICAgICAgIH0pfWlubmVyJXtsdWE6cmVxdWly ZSgicHlwcm9qZWN0X2dldG9wdCIpLnJlc3RvcmUoKX1dXQorICAgICkKKyAgICBycG0uZGVmaW5l KFtbX3Rlc3Rfb3V0ZXIyKC0pICV7bHVhOgorICAgICAgICByZXF1aXJlKCJweXByb2plY3RfZ2V0 b3B0IikuZ2V0b3B0KHsKKyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9yeSIs IHZhbHVlPXRydWV9LAorICAgICAgICB9KX0le190ZXN0X2lubmVyMn0vJXs/X19weXByb2plY3Rf b3B0ZmxhZ19kfV1dCisgICAgKQorCisgICAgbG9jYWwgcmVzdWx0ID0gcnBtLmV4cGFuZCgiJV90 ZXN0X291dGVyMiAtZCBoZWxsbyIpCisgICAgYXNzZXJ0KHJlc3VsdCA9PSAiaW5uZXIvLWQgaGVs bG8iLAorICAgICAgICAiZXhwZWN0ZWQgJ2lubmVyLy1kIGhlbGxvJywgZ290ICciIC4uIHJlc3Vs dCAuLiAiJyIpCitlbmQKKworZnVuY3Rpb24gTS50ZXN0X25lc3RlZF9nZXRvcHRfd2l0aG91dF9y ZXN0b3JlX2Nsb2JiZXJzKCkKKyAgICBycG0uZGVmaW5lKFtbX3Rlc3RfaW5uZXIzKC0pICV7bHVh OgorICAgICAgICByZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikuZ2V0b3B0KHsKKyAgICAgICAg ICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9yeSIsIHZhbHVlPXRydWV9LAorICAgICAgICB9 KX1pbm5lcl1dCisgICAgKQorICAgIHJwbS5kZWZpbmUoW1tfdGVzdF9vdXRlcjMoLSkgJXtsdWE6 CisgICAgICAgIHJlcXVpcmUoInB5cHJvamVjdF9nZXRvcHQiKS5nZXRvcHQoeworICAgICAgICAg ICAge3Nob3J0PSJkIiwgbG9uZz0iZGlyZWN0b3J5IiwgdmFsdWU9dHJ1ZX0sCisgICAgICAgIH0p fSV7X3Rlc3RfaW5uZXIzfS8lez9fX3B5cHJvamVjdF9vcHRfZH1dXQorICAgICkKKworICAgIGxv Y2FsIHJlc3VsdCA9IHJwbS5leHBhbmQoIiVfdGVzdF9vdXRlcjMgLWQgaGVsbG8iKQorICAgIC0t IFdpdGhvdXQgcmVzdG9yZSgpLCBpbm5lciBnZXRvcHQgY2xvYmJlcnMgb3V0ZXIncyB2YWx1ZQor ICAgIGFzc2VydChyZXN1bHQgPT0gImlubmVyLyIsCisgICAgICAgICJleHBlY3RlZCAnaW5uZXIv JyAoY2xvYmJlcmVkIHdpdGhvdXQgcmVzdG9yZSksIGdvdCAnIiAuLiByZXN1bHQgLi4gIiciKQor ZW5kCisKK2Z1bmN0aW9uIE0udGVzdF9uZXN0ZWRfZ2V0b3B0X3dpdGhfcmVzdG9yZV9wcmVzZXJ2 ZXNfb3V0ZXJfcG9zaXRpb25hbF9hcmdzKCkKKyAgICBycG0uZGVmaW5lKFtbX3Rlc3RfaW5uZXI0 KC0pICV7bHVhOgorICAgICAgICByZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikuZ2V0b3B0KHsK KyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9yeSIsIHZhbHVlPXRydWV9LAor ICAgICAgICB9KX1pbm5lciV7bHVhOnJlcXVpcmUoInB5cHJvamVjdF9nZXRvcHQiKS5yZXN0b3Jl KCl9XV0KKyAgICApCisgICAgcnBtLmRlZmluZShbW190ZXN0X291dGVyNCgtKSAle2x1YToKKyAg ICAgICAgcmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIpLmdldG9wdCh7CisgICAgICAgICAgICB7 c2hvcnQ9ImQiLCBsb25nPSJkaXJlY3RvcnkiLCB2YWx1ZT10cnVlfSwKKyAgICAgICAgfSl9JXtf dGVzdF9pbm5lcjR9LyV7P19fcHlwcm9qZWN0X3Bvc2l0aW9uYWxfYXJnc31dXQorICAgICkKKwor ICAgIGxvY2FsIHJlc3VsdCA9IHJwbS5leHBhbmQoIiVfdGVzdF9vdXRlcjQgLWQgaGVsbG8gd29y bGQiKQorICAgIGFzc2VydChyZXN1bHQgPT0gImlubmVyL3dvcmxkIiwKKyAgICAgICAgImV4cGVj dGVkICdpbm5lci93b3JsZCcsIGdvdCAnIiAuLiByZXN1bHQgLi4gIiciKQorZW5kCisKK2Z1bmN0 aW9uIE0udGVzdF9uZXN0ZWRfZ2V0b3B0X3dpdGhfZGlmZmVyZW50X3ZhbHVlcygpCisgICAgcnBt LmRlZmluZShbW190ZXN0X2lubmVyNSgtKSAle2x1YToKKyAgICAgICAgcmVxdWlyZSgicHlwcm9q ZWN0X2dldG9wdCIpLmdldG9wdCh7CisgICAgICAgICAgICB7c2hvcnQ9ImQiLCBsb25nPSJkaXJl Y3RvcnkiLCB2YWx1ZT10cnVlfSwKKyAgICAgICAgfSl9JXs/X19weXByb2plY3Rfb3B0X2R9JXts dWE6cmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIpLnJlc3RvcmUoKX1dXQorICAgICkKKyAgICBy cG0uZGVmaW5lKFtbX3Rlc3Rfb3V0ZXI1KC0pICV7bHVhOgorICAgICAgICByZXF1aXJlKCJweXBy b2plY3RfZ2V0b3B0IikuZ2V0b3B0KHsKKyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRp cmVjdG9yeSIsIHZhbHVlPXRydWV9LAorICAgICAgICB9KX0le190ZXN0X2lubmVyNSAtZCBvdGhl cn0vJXs/X19weXByb2plY3Rfb3B0X2R9XV0KKyAgICApCisKKyAgICBsb2NhbCByZXN1bHQgPSBy cG0uZXhwYW5kKCIlX3Rlc3Rfb3V0ZXI1IC1kIGhlbGxvIikKKyAgICBhc3NlcnQocmVzdWx0ID09 ICJvdGhlci9oZWxsbyIsCisgICAgICAgICJleHBlY3RlZCAnb3RoZXIvaGVsbG8nLCBnb3QgJyIg Li4gcmVzdWx0IC4uICInIikKK2VuZAorCitmdW5jdGlvbiBNLnRlc3RfdHJpcGxlX25lc3RlZF9n ZXRvcHRfcmVzdG9yZXNfYWxsX2xldmVscygpCisgICAgcnBtLmRlZmluZShbW190ZXN0X2lubmVy bW9zdCgtKSAle2x1YToKKyAgICAgICAgcmVxdWlyZSgicHlwcm9qZWN0X2dldG9wdCIpLmdldG9w dCh7CisgICAgICAgICAgICB7c2hvcnQ9ImQiLCBsb25nPSJkaXJlY3RvcnkiLCB2YWx1ZT10cnVl fSwKKyAgICAgICAgfSl9JXs/X19weXByb2plY3Rfb3B0X2R9JXtsdWE6cmVxdWlyZSgicHlwcm9q ZWN0X2dldG9wdCIpLnJlc3RvcmUoKX1dXSkKKyAgICBycG0uZGVmaW5lKFtbX3Rlc3RfbWlkZGxl KC0pICV7bHVhOgorICAgICAgICByZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikuZ2V0b3B0KHsK KyAgICAgICAgICAgIHtzaG9ydD0iZCIsIGxvbmc9ImRpcmVjdG9yeSIsIHZhbHVlPXRydWV9LAor ICAgICAgICB9KX0le190ZXN0X2lubmVybW9zdCAtZCBkZWVwfSslez9fX3B5cHJvamVjdF9vcHRf ZH0le2x1YTpyZXF1aXJlKCJweXByb2plY3RfZ2V0b3B0IikucmVzdG9yZSgpfV1dKQorICAgIHJw bS5kZWZpbmUoW1tfdGVzdF9vdXRlcm1vc3QoLSkgJXtsdWE6CisgICAgICAgIHJlcXVpcmUoInB5 cHJvamVjdF9nZXRvcHQiKS5nZXRvcHQoeworICAgICAgICAgICAge3Nob3J0PSJkIiwgbG9uZz0i ZGlyZWN0b3J5IiwgdmFsdWU9dHJ1ZX0sCisgICAgICAgIH0pfSV7X3Rlc3RfbWlkZGxlIC1kIG1p ZH0rJXs/X19weXByb2plY3Rfb3B0X2R9XV0pCisKKyAgICBsb2NhbCByZXN1bHQgPSBycG0uZXhw YW5kKCIlX3Rlc3Rfb3V0ZXJtb3N0IC1kIHRvcCIpCisgICAgYXNzZXJ0KHJlc3VsdCA9PSAiZGVl cCttaWQrdG9wIiwKKyAgICAgICAgImV4cGVjdGVkICdkZWVwK21pZCt0b3AnLCBnb3QgJyIgLi4g cmVzdWx0IC4uICInIikKK2VuZAorCisKIC0tIFJhdyBlcnJvciBmdW5jdGlvbnMgKHdpdGhvdXQg cGNhbGwpIGZvciBQeXRob24tc2lkZSBzdGRlcnIgY2hlY2tpbmcuCiAtLSBUaGVzZSBhcmUgbm90 IGRpc2NvdmVyZWQgYnkgbGlzdCgpIHNpbmNlIHRoZXkgZG9uJ3Qgc3RhcnQgd2l0aCB0ZXN0Xy4K IAo=