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: Michel Lind To: git-commits@fedoraproject.org Subject: [rpms/folly-rpm-macros] rawhide: Version the bundled() Provides, prune excluded code, scan file headers Date: Thu, 24 Sep 2026 22:22:43 GMT Message-ID: <179028856370.1.12104199349158241373.rpms-folly-rpm-macros-fd169a43b9d7@fedoraproject.org> List-ID: X-Git-Repo: rpms/folly-rpm-macros X-Git-Branch: rawhide X-Git-Rev: fd169a43b9d702ddcd068a5dd0b0eae8acaaac75 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZm9sbHktcnBtLW1hY3JvcwogICAgICAgICAgICBCcmFuY2ggOiByYXdoaWRl CiAgICAgICAgICAgIENvbW1pdCA6IGZkMTY5YTQzYjlkNzAyZGRjZDA2OGE1ZGQwYjBlYWU4YWNh YWFjNzUKICAgICAgICAgICAgQXV0aG9yIDogTWljaGVsIExpbmQgPHNhbGltbWFAZmVkb3JhcHJv amVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDktMjRUMjE6NDE6MTYrMDE6MDAK ICAgICAgICAgICAgU3RhdHMgIDogKzMxNi8tMTIgaW4gNiBmaWxlKHMpCiAgICAgICAgICAgIFVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZm9sbHktcnBtLW1hY3Jv cy9jL2ZkMTY5YTQzYjlkNzAyZGRjZDA2OGE1ZGQwYjBlYWU4YWNhYWFjNzU/YnJhbmNoPXJhd2hp ZGUKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgVmVyc2lvbiB0aGUgYnVuZGxlZCgpIFBy b3ZpZGVzLCBwcnVuZSBleGNsdWRlZCBjb2RlLCBzY2FuIGZpbGUgaGVhZGVycwoKLSBnZXRkZXBz X3ZlbmRvci5wcm92IGVtaXRzIGJ1bmRsZWQoPG5hbWU+KSA9IDx2ZXJzaW9uPiBmcm9tIHRoZSB2 ZXJzaW9uCiAgZ2V0ZGVwcy5weSB2ZW5kb3Igbm93IHJlY29yZHMgKGEgdGFnLCA8dGFnPl48ZGlz dGFuY2U+Ljxjb21taXQ+IGZvciBhCiAgc25hcHNob3QsIG9yIHRoZSB2ZXJzaW9uIGluIGEgZG93 bmxvYWQgVVJMKSwgdW52ZXJzaW9uZWQgb25seSB3aGVuIGl0CiAgY291bGQgbm90IGRldGVybWlu ZSBvbmU7IHNwYXJzZW1hcCBpcyBwcm92aWRlZCBhcyB0c2wtc3BhcnNlLW1hcAotICVnZXRkZXBz X3ZlbmRvcl9saWNlbnNlX2NoZWNrIGFsc28gcnVucyBsaWNlbnNlY2hlY2sgKFNQRFggb3V0cHV0 KSBvdmVyCiAgdGhlIHRyZWUgYW5kIHJlcXVpcmVzIHRoZSBMaWNlbnNlIHRhZyB0byBjb3ZlciBl dmVyeSBpZGVudGlmaWVyIGZvdW5kCi0gTmV3ICVnZXRkZXBzX3ZlbmRvcl9wcnVuZSBkZWxldGVz IHRoZSBkaXJlY3RvcmllcyB0aGUgbGljZW5zZSBjb25maWcKICBleGNsdWRlcywgZm9yICVwcmVw CgpUaGUgbWNyb3V0ZXIgcmV2aWV3IChyaGJ6IzI1Mzc2NjgpIGFza2VkIGZvciB2ZXJzaW9uZWQg YnVuZGxlZCgpIFByb3ZpZGVzLAphcyB0aGUgYnVuZGxpbmcgZ3VpZGVsaW5lcyB3YW50LCBhbmQg aXRzIGxpY2Vuc2VjaGVjayBwYXNzIHR1cm5lZCB1cCB0d28KbGljZW5zZXMgdGhhdCBnb192ZW5k b3JfbGljZW5zZSBjYW5ub3Qgc2VlIGJlY2F1c2UgaXQgb25seSByZWFkcyBsaWNlbnNlCmZpbGVz OiBmb2xseSdzIHpsaWItbGljZW5zZWQgaGFzaC9kZXRhaWwvQ3JjMzJjRGV0YWlsLmNwcCBhbmQg bXZmc3QncwpCb29zdC1saWNlbnNlZCB0aGlyZC1wYXJ0eSBoZWFkZXJzLCBib3RoIGNvbXBpbGVk IGludG8gdGhlIHBhY2thZ2VzLgpSYXRoZXIgdGhhbiBoYW5kLW1haW50YWluaW5nIG92ZXJyaWRl cyBmb3Igc3VjaCBmaWxlcyBpbiBldmVyeSBjb25zdW1lcidzCmNvbmZpZywgdGhlIGNoZWNrIG1h Y3JvIG5vdyBydW5zIHRoZSBzYW1lIHNjYW5uZXIgZmVkb3JhLXJldmlldyBkb2VzLApsaWNlbnNl Y2hlY2ssIG92ZXIgdGhlIHNvdXJjZSBhbmQgdmVuZG9yZWQgdHJlZXMgbWludXMgdGhlIGNvbmZp ZydzCmV4Y2x1ZGVfZGlyZWN0b3JpZXMsIGFuZCBmYWlscyBpZiB0aGUgdGFnIGxhY2tzIGFuIGlk ZW50aWZpZXIgZWl0aGVyIHNjYW4KZm91bmQgKCJBIG9yIEIiIGlzIHNhdGlzZmllZCBieSBlaXRo ZXI7IGlkZW50aWZpZXJzIGluIHRoZSB0YWcgdGhhdCBuZWl0aGVyCnNjYW4gc2F3IGFyZSBvbmx5 IG5vdGVkKS4gVGhlIGV4YWN0LWV4cHJlc3Npb24gLS12ZXJpZnkgaXMgZ29uZTogdGhlIHRhZwpt YXkgbGVnaXRpbWF0ZWx5IGxpc3QgbW9yZSB0aGFuIHRoZSBsaWNlbnNlIGZpbGVzIHNob3cuCgpQ cnVuaW5nIHRoZSBleGNsdWRlZCBkaXJlY3RvcmllcyBpbiAlcHJlcCBrZWVwcyB0aGUgdHJlZSBo b25lc3Q6IGNvZGUgdGhlCnNjYW4gaWdub3JlcyAoYnVpbGQgdG9vbGluZywgdGVzdHMsIGJpbmRp bmdzIGZvciBvdGhlciBsYW5ndWFnZXMpIGNhbm5vdApiZSBjb21waWxlZCBieSBhY2NpZGVudCwg YW5kIGFuIG91dHNpZGUgYXVkaXQgb2YgdGhlIHVucGFja2VkIHNvdXJjZXMKc2VlcyB0aGUgc2Ft ZSBzZXQgb2YgbGljZW5zZXMuCgpUaGUgdmVyc2lvbiBjb2x1bW4gaXMgdGhlIHRoaXJkIGZpZWxk IG9mIGdldGRlcHMtdmVuZG9yLnR4dCwgd3JpdHRlbiBieQpnZXRkZXBzLnB5IHZlbmRvciB3aXRo IHRoZSBjaGFuZ2Ugb24gbWljaGVsLXNsbS9DYWNoZUxpYgpnZXRkZXBzLXZlbmRvci1yZWNvcmQt Y29tbWl0IChjYXJyaWVkIGFzIGEgcGF0Y2ggaW4gY2FjaGVsaWIgYW5kIG1jcm91dGVyCnVudGls IGl0IGxhbmRzKTsgb2xkZXIgbWFuaWZlc3RzIHdpdGhvdXQgaXQgc3RpbGwgeWllbGQgdW52ZXJz aW9uZWQKUHJvdmlkZXMuCgpBc3Npc3RlZC1ieTogQ2xhdWRlIENvZGU6Y2xhdWRlLWZhYmxlLTUt MQpTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgTGluZCA8c2FsaW1tYUBmZWRvcmFwcm9qZWN0Lm9yZz4K Ci0tLQpkaWZmIC0tZ2l0IGEvUkVBRE1FLm1kIGIvUkVBRE1FLm1kCmluZGV4IGFiNjY0OTUuLmM4 YjgxZDUgMTAwNjQ0Ci0tLSBhL1JFQURNRS5tZAorKysgYi9SRUFETUUubWQKQEAgLTc4LDUgKzc4 LDU4IEBAIGFuZCBgY2hlY2tgIHZlcmlmaWVzIHRoZSBgTGljZW5zZTpgIHRhZyBhZ2FpbnN0IGV2 ZXJ5IGRldGVjdGVkIGxpY2Vuc2UuIFBhc3MKIHRoZSBzY2FuLCBhbmQgYC1MYCB0byB0b2xlcmF0 ZSBhIHZlbmRvcmVkIHByb2plY3Qgd2hvc2UgbGljZW5zZSBmaWxlIHNpdHMgaW4KIGEgdmVyc2lv bmVkIHN1YmRpcmVjdG9yeS4KIAorZ28tdmVuZG9yLXRvb2xzIG9ubHkgcmVhZHMgbGljZW5zZSBm aWxlcywgc28gYGNoZWNrIC1mYCBhZGRpdGlvbmFsbHkgcnVucworYGxpY2Vuc2VjaGVja2AgKHRo ZSBzY2FubmVyIGZlZG9yYS1yZXZpZXcgdXNlcykgb3ZlciBldmVyeSBmaWxlIGFuZCByZXF1aXJl cwordGhlIHRhZyB0byBjb3ZlciB3aGF0IGl0IGZpbmRzIHRvbzogdGhhdCBpcyBob3cgYSB6bGli LWxpY2Vuc2VkIGZpbGUgaW5zaWRlCithbiBBcGFjaGUgcHJvamVjdCAoZm9sbHkncyBgQ3JjMzJj RGV0YWlsLmNwcGApLCBCb29zdC1saWNlbnNlZCB0aGlyZC1wYXJ0eQoraGVhZGVycyBpbnNpZGUg YW4gTUlUIG9uZSAobXZmc3QpIG9yIGxpYm9xcycgcHVibGljLWRvbWFpbiBBRVMgZW5kIHVwIGlu IHRoZQordGFnLiBXaGVyZSBTUERYIGhhcyBubyBpZGVudGlmaWVyIGZvciBhIHBhdHRlcm4gbGlj ZW5zZWNoZWNrIHByaW50cyBpdHMgaW50ZXJuYWwKK25hbWU7IHRob3NlIGFyZSB0cmFuc2xhdGVk IChgcHVibGljLWRvbWFpbmAgdG8KK2BMaWNlbnNlUmVmLUZlZG9yYS1QdWJsaWMtRG9tYWluYCwg dGhlIGdlbmVyaWMgYEdQTC0yYCB0byBgR1BMLTIuMC1vbmx5YCkuIFRoYXQgcGFzcyB0YWtlcyBt aW51dGVzIGFuZCBhIGxvdCBvZiBtZW1vcnkgb24gYSBsYXJnZQordHJlZSwgc28gaXQgaXMgb2Zm IGJ5IGRlZmF1bHQ6IGEgc3BlYyB0dXJucyBgLWZgIG9uIG9ubHkgd2hlbiB0aGUgdmVuZG9yCit0 YXJiYWxsIGlzIG5vdCB0aGUgb25lIHRoYXQgbGFzdCBwYXNzZWQgaXQsIGtleWVkIG9uIHRoZSB0 YXJiYWxsJ3Mgc2hhNTEyCityZWNvcmRlZCBpbiB0aGUgc3BlYyAoY29weSBpdCBmcm9tIHRoZSBg c291cmNlc2AgZmlsZSBhZnRlciBhIGZ1bGwgcGFzcyk6CisKKyAgICAlZ2xvYmFsIHZlbmRvcl9j aGVja2VkX3NoYTUxMiA8c2hhNTEyIG9mIFNvdXJjZTE+CisgICAgJWlmICIlKHNoYTUxMnN1bSAl e1NPVVJDRTF9IDI+L2Rldi9udWxsIHwgY3V0IC1jMS0xMjgpIiA9PSAiJXt2ZW5kb3JfY2hlY2tl ZF9zaGE1MTJ9IgorICAgICViY29uZF93aXRoIGxpY2Vuc2VfZnVsbF9jaGVjaworICAgICVlbHNl CisgICAgJWJjb25kX3dpdGhvdXQgbGljZW5zZV9mdWxsX2NoZWNrCisgICAgJWVuZGlmCisKKyhw bGFpbiBycG0gb24gcHVycG9zZTogdGhlIGAlaWZgIGFsc28gcnVucyB3aGVuIHRoZSBTUlBNIGlz IGJ1aWx0LCBpbiBhCitidWlsZHJvb3Qgd2l0aG91dCBmb2xseS1ycG0tbWFjcm9zKQorICAgIC4u LgorICAgICVidWlsZAorICAgICVnZXRkZXBzX3ZlbmRvcl9saWNlbnNlX2NoZWNrIC1jIGxpY2Vu c2VzLnRvbWwgLUwgJXs/d2l0aF9saWNlbnNlX2Z1bGxfY2hlY2s6LWZ9CisgICAgJWdldGRlcHNf YnVpbGQKKworUnVubmluZyB0aGUgY2hlY2sgYXQgdGhlIHN0YXJ0IG9mIGAlYnVpbGRgIGZhaWxz IGEgd3JvbmcgdGFnIGluIG1pbnV0ZXMsCitiZWZvcmUgdGhlIGNvbXBpbGU7IGAlcHJlcGAgaXMg dGhlIHdyb25nIHBsYWNlIGJlY2F1c2UgdGhlIGR5bmFtaWMKK0J1aWxkUmVxdWlyZXMgcGFzc2Vz IHJ1biBpdCByZXBlYXRlZGx5LCBiZWZvcmUgdGhlIGRldGVjdG9yIGlzIGluc3RhbGxlZC4KK1Rv IGdldCB0aGUgY29tcGxldGUgZXhwcmVzc2lvbiBmb3IgYSBzcGVjLCBmcm9tIHRoZSB1bnBhY2tl ZCBzb3VyY2Ugcm9vdAord2l0aCB0aGUgdmVuZG9yIHRhcmJhbGwgZXh0cmFjdGVkOgorCisgICAg YXdrICd7IHByaW50ICIjICIgJDEgIiB2IiAkMiB9JyB2ZW5kb3IvZ2V0ZGVwcy12ZW5kb3IudHh0 ID4gdmVuZG9yL21vZHVsZXMudHh0CisgICAgL3Vzci9saWIvcnBtL2dldGRlcHNfdmVuZG9yX2xp Y2Vuc2VfY2hlY2sgLS1jb25maWcgbGljZW5zZXMudG9tbCAtLXJlcG9ydCBcCisgICAgICAgIC0t ZXhwcmVzc2lvbiAiJChnb192ZW5kb3JfbGljZW5zZSAtLWNvbmZpZyBsaWNlbnNlcy50b21sIHJl cG9ydCBleHByZXNzaW9uIC1MKSIKKword2hpY2ggcHJpbnRzIHRoZSBleHByZXNzaW9uIHRoZSBj aGVjayBhY2NlcHRzLCBmb2xsb3dlZCBieSB0aGUgZmlsZXMgYmVoaW5kCitlYWNoIGlkZW50aWZp ZXIgdGhlIGxpY2Vuc2UgZmlsZXMgYWxvbmUgd291bGQgbm90IGhhdmUgc2hvd24uCisKK1RoZSBj b25maWcgZHJhd3MgdHdvIGxpbmVzIHRocm91Z2ggdGhlIHZlbmRvcmVkIHRyZWUuIGBbZ2V0ZGVw c10KK3BydW5lX2RpcmVjdG9yaWVzYCAoYSB0YWJsZSBnby12ZW5kb3ItdG9vbHMgaWdub3Jlcykg bGlzdHMgd2hhdCB0aGUgYnVpbGQKK2RvZXMgbm90IG5lZWQgYXQgYWxsLCBzdWNoIGFzIGJpbmRp bmdzIGZvciBvdGhlciBsYW5ndWFnZXM7CitgJWdldGRlcHNfdmVuZG9yX3BydW5lIC1jIGxpY2Vu c2VzLnRvbWxgIGRlbGV0ZXMgdGhvc2UgaW4gYCVwcmVwYCwgc28gdGhleQorYXJlIG5laXRoZXIg c2Nhbm5lZCBub3IgZGVjbGFyZWQuIGBbbGljZW5zaW5nXSBleGNsdWRlX2RpcmVjdG9yaWVzYCBs aXN0cword2hhdCBpcyBwcmVzZW50IGF0IGJ1aWxkIHRpbWUgYnV0IG5vdCBwYXJ0IG9mIHRoZSBz aGlwcGVkIGJpbmFyaWVzLCBzdWNoIGFzCitlYWNoIHZlbmRvcmVkIHByb2plY3QncyBvd24gYGJ1 aWxkL2ZiY29kZV9idWlsZGVyL0NNYWtlYCBtb2R1bGVzIG9yIGEgdGVzdAorZGlyZWN0b3J5IGl0 cyBDTWFrZUxpc3RzLnR4dCBhZGRzIHVuY29uZGl0aW9uYWxseTsgdGhvc2Ugc3RheSBpbiB0aGUg dHJlZQorYW5kIGJvdGggc2NhbnMgc2tpcCB0aGVtLiBFdmVyeXRoaW5nIGVsc2UgbXVzdCBiZSBj b3ZlcmVkIGJ5IHRoZSB0YWcuCisKIGBnZXRkZXBzX3ZlbmRvci5hdHRyYCB0dXJucyB0aGUgaW5z dGFsbGVkIGBnZXRkZXBzLXZlbmRvci50eHRgIGludG8KLWBQcm92aWRlczogYnVuZGxlZCg8cHJv amVjdD4pYCBmb3IgZWFjaCB2ZW5kb3JlZCBwcm9qZWN0LgorYFByb3ZpZGVzOiBidW5kbGVkKDxw cm9qZWN0PikgPSA8dmVyc2lvbj5gIGZvciBlYWNoIHZlbmRvcmVkIHByb2plY3QsIHVzaW5nCit0 aGUgdmVyc2lvbiBgZ2V0ZGVwcy5weSB2ZW5kb3JgIHJlY29yZGVkIChhIHRhZywgYDx0YWc+Xjxk aXN0YW5jZT4uPGNvbW1pdD5gCitmb3IgYSBnaXQgc25hcHNob3QsIG9yIHRoZSB2ZXJzaW9uIGlu IGEgZG93bmxvYWQgVVJMKSBhbmQgdGhlIEZlZG9yYSBwYWNrYWdlCituYW1lIHdoZXJlIGl0IGRp ZmZlcnMgKGB0c2wtc3BhcnNlLW1hcGAgZm9yIGBzcGFyc2VtYXBgKTsgYSBwcm9qZWN0IHdpdGhv dXQKK2EgZGV0ZXJtaW5hYmxlIHZlcnNpb24gZ2V0cyBhbiB1bnZlcnNpb25lZCBgYnVuZGxlZCgp YC4KCmRpZmYgLS1naXQgYS9fX3B5Y2FjaGVfXy9nZXRkZXBzX3ZlbmRvcl9saWNlbnNlX2NoZWNr Y3B5dGhvbi0zMTQucHljIGIvX19weWNhY2hlX18vZ2V0ZGVwc192ZW5kb3JfbGljZW5zZV9jaGVj a2NweXRob24tMzE0LnB5YwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTBh NmIzCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvX19weWNhY2hlX18vZ2V0ZGVwc192ZW5k b3JfbGljZW5zZV9jaGVja2NweXRob24tMzE0LnB5YyBkaWZmZXIKCmRpZmYgLS1naXQgYS9mb2xs eS1ycG0tbWFjcm9zLnNwZWMgYi9mb2xseS1ycG0tbWFjcm9zLnNwZWMKaW5kZXggMDM5YjMyMC4u NzM2MmVkMSAxMDA2NDQKLS0tIGEvZm9sbHktcnBtLW1hY3Jvcy5zcGVjCisrKyBiL2ZvbGx5LXJw bS1tYWNyb3Muc3BlYwpAQCAtOCw2ICs4LDcgQEAgVVJMOiAgICAgICAgICAgIGh0dHBzOi8vc3Jj LmZlZG9yYXByb2plY3Qub3JnL3JwbXMvZm9sbHktcnBtLW1hY3JvcwogU291cmNlMDogICAgICAg IG1hY3Jvcy5mb2xseS1ycG0KIFNvdXJjZTE6ICAgICAgICBnZXRkZXBzX3ZlbmRvci5hdHRyCiBT b3VyY2UyOiAgICAgICAgZ2V0ZGVwc192ZW5kb3IucHJvdgorU291cmNlMzogICAgICAgIGdldGRl cHNfdmVuZG9yX2xpY2Vuc2VfY2hlY2sKIAogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAogCkBAIC0x Niw4ICsxNyw5IEBAIFJlcXVpcmVzOiAgICAgICBycG0KIFJlcXVpcmVzOiAgICAgICBweXRob24z CiAjICUlZ2V0ZGVwc19pbnN0YWxsIHJ1bnMgJSV7X19jbWFrZX0KIFJlcXVpcmVzOiAgICAgICBj bWFrZS1ycG0tbWFjcm9zCi0jIHRoZSAlJWdldGRlcHNfdmVuZG9yX2xpY2Vuc2VfKiBtYWNyb3Mg d3JhcCBnb192ZW5kb3JfbGljZW5zZQorIyB0aGUgJSVnZXRkZXBzX3ZlbmRvcl9saWNlbnNlXyog bWFjcm9zIHdyYXAgZ29fdmVuZG9yX2xpY2Vuc2UgYW5kIGxpY2Vuc2VjaGVjawogUmVxdWlyZXM6 ICAgICAgIGdvLXZlbmRvci10b29scworUmVxdWlyZXM6ICAgICAgIGxpY2Vuc2VjaGVjawogIyB0 aGUgJSVmb2xseV90b29sY2hhaW4gbWFjcm8gYW5kIGl0cyBzdWJwYWNrYWdlIHdlcmUgZHJvcHBl ZCBpbiA0Njsgbm90aGluZyB1c2VkIHRoZW0KIE9ic29sZXRlczogICAgICBmb2xseS1zcnBtLW1h Y3JvcyA8IDQ2CiAKQEAgLTM4LDEzICs0MCwxNCBAQCB2ZW5kb3JlZCB0cmVlIGludG8gYnVuZGxl ZCgpIFByb3ZpZGVzLgogJWluc3RhbGwKIGluc3RhbGwgLUQgLXAgLW0gMDY0NCAtdCAle2J1aWxk cm9vdH0le19ycG1tYWNyb2Rpcn0gJXtTT1VSQ0UwfQogaW5zdGFsbCAtRCAtcCAtbSAwNjQ0IC10 ICV7YnVpbGRyb290fSV7X2ZpbGVhdHRyc2Rpcn0gJXtTT1VSQ0UxfQotaW5zdGFsbCAtRCAtcCAt bSAwNzU1IC10ICV7YnVpbGRyb290fSV7X3JwbWNvbmZpZ2Rpcn0gJXtTT1VSQ0UyfQoraW5zdGFs bCAtRCAtcCAtbSAwNzU1IC10ICV7YnVpbGRyb290fSV7X3JwbWNvbmZpZ2Rpcn0gJXtTT1VSQ0Uy fSAle1NPVVJDRTN9CiAKIAogJWZpbGVzCiAle19ycG1tYWNyb2Rpcn0vbWFjcm9zLmZvbGx5LXJw bQogJXtfZmlsZWF0dHJzZGlyfS9nZXRkZXBzX3ZlbmRvci5hdHRyCiAle19ycG1jb25maWdkaXJ9 L2dldGRlcHNfdmVuZG9yLnByb3YKKyV7X3JwbWNvbmZpZ2Rpcn0vZ2V0ZGVwc192ZW5kb3JfbGlj ZW5zZV9jaGVjawogCiAKICVjaGFuZ2Vsb2cKCmRpZmYgLS1naXQgYS9nZXRkZXBzX3ZlbmRvci5w cm92IGIvZ2V0ZGVwc192ZW5kb3IucHJvdgppbmRleCA1MDU4ODkyLi5lZmJiZmViIDEwMDc1NQot LS0gYS9nZXRkZXBzX3ZlbmRvci5wcm92CisrKyBiL2dldGRlcHNfdmVuZG9yLnByb3YKQEAgLTEs NyArMSwxNyBAQAogIyEvYmluL3NoCi0jIEVtaXQgImJ1bmRsZWQoPHByb2plY3Q+KSIgZm9yIGVh Y2ggcHJvamVjdCBsaXN0ZWQgaW4gYSBnZXRkZXBzLXZlbmRvci50eHQKLSMgKG9uZSAiPHByb2pl Y3Q+IDxnaXQtcmV2LW9yLXNoYTI1Nj4iIGxpbmUgcGVyIHZlbmRvcmVkIHByb2plY3QpLiBUaGUg c2Vjb25kCi0jIGZpZWxkIGlzIGEgY29udGVudCBoYXNoLCBub3QgYSB2ZXJzaW9uLCBzbyB0aGUg UHJvdmlkZXMgYXJlIHVudmVyc2lvbmVkLgorIyBFbWl0ICJidW5kbGVkKDxuYW1lPikgPSA8dmVy c2lvbj4iIGZvciBlYWNoIHByb2plY3QgbGlzdGVkIGluIGEKKyMgZ2V0ZGVwcy12ZW5kb3IudHh0 OiBvbmUgIjxwcm9qZWN0PiA8Z2l0LWNvbW1pdC1vci1zaGEyNTY+IFs8dmVyc2lvbj5dIiBsaW5l CisjIHBlciB2ZW5kb3JlZCBwcm9qZWN0LCB0aGUgdmVyc2lvbiBiZWluZyB3aGF0IGBnZXRkZXBz LnB5IHZlbmRvcmAgY291bGQKKyMgZGV0ZXJtaW5lIChhIHRhZywgb3IgPHRhZz5ePGRpc3RhbmNl Pi48Y29tbWl0PiBmb3IgYSBnaXQgc25hcHNob3QsIG9yIHRoZQorIyB2ZXJzaW9uIGluIGEgZG93 bmxvYWQgVVJMKS4gV2l0aG91dCBhIHZlcnNpb24gdGhlIFByb3ZpZGVzIGlzIHVudmVyc2lvbmVk LAorIyBhcyB0aGUgYnVuZGxpbmcgZ3VpZGVsaW5lcyBhbGxvdy4gVGhlIG5hbWUgaXMgdGhlIEZl ZG9yYSBwYWNrYWdlIG5hbWUgd2hlcmUKKyMgaXQgZGlmZmVycyBmcm9tIHRoZSBnZXRkZXBzIHBy b2plY3QgbmFtZS4KIHdoaWxlIHJlYWQgLXIgbWFuaWZlc3Q7IGRvCi0gICAgYXdrICdORiB7IHBy aW50ICJidW5kbGVkKCIgJDEgIikiIH0nICIkbWFuaWZlc3QiCisgICAgYXdrICcKKyAgICAgICAg QkVHSU4geyBmZWRvcmFbInNwYXJzZW1hcCJdID0gInRzbC1zcGFyc2UtbWFwIiB9CisgICAgICAg IE5GIHsKKyAgICAgICAgICAgIG5hbWUgPSAoJDEgaW4gZmVkb3JhKSA/IGZlZG9yYVskMV0gOiAk MQorICAgICAgICAgICAgaWYgKE5GID49IDMpIHByaW50ICJidW5kbGVkKCIgbmFtZSAiKSA9ICIg JDMKKyAgICAgICAgICAgIGVsc2UgcHJpbnQgImJ1bmRsZWQoIiBuYW1lICIpIgorICAgICAgICB9 JyAiJG1hbmlmZXN0IgogZG9uZSB8IHNvcnQgLXUKCmRpZmYgLS1naXQgYS9nZXRkZXBzX3ZlbmRv cl9saWNlbnNlX2NoZWNrIGIvZ2V0ZGVwc192ZW5kb3JfbGljZW5zZV9jaGVjawpuZXcgZmlsZSBt b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNTQ1MTk3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2V0 ZGVwc192ZW5kb3JfbGljZW5zZV9jaGVjawpAQCAtMCwwICsxLDE5MSBAQAorIyEvdXNyL2Jpbi9w eXRob24zCisiIiJDaGVjayB0aGF0IGEgTGljZW5zZSB0YWcgY292ZXJzIGV2ZXJ5IGxpY2Vuc2Ug aW4gYSBnZXRkZXBzIHNvdXJjZSB0cmVlLgorCitUd28gc291cmNlcyBvZiB0cnV0aCBhcmUgY29t YmluZWQ6CisKKy0gdGhlIGV4cHJlc3Npb24gZ29fdmVuZG9yX2xpY2Vuc2UgY29tcHV0ZWQgZnJv bSB0aGUgbGljZW5zZSAqZmlsZXMqIG9mIHRoZQorICBzb3VyY2UgYW5kIHZlbmRvcmVkIHRyZWVz IChwYXNzZWQgd2l0aCAtLWV4cHJlc3Npb24pLCBhbmQKKy0gbGljZW5zZWNoZWNrICh0aGUgRGVi aWFuL0ZlZG9yYSBwZXItZmlsZSBzY2FubmVyLCBTUERYIG91dHB1dCkgcnVuIG92ZXIKKyAgdGhl IHNhbWUgdHJlZXMsIHdoaWNoIGFsc28gc2VlcyBsaWNlbnNlcyB0aGF0IG9ubHkgYXBwZWFyIGlu IGZpbGUgaGVhZGVyczoKKyAgYSB6bGliLWxpY2Vuc2VkIGZpbGUgaW5zaWRlIGFuIEFwYWNoZSBw cm9qZWN0LCBCb29zdC1saWNlbnNlZCB0aGlyZC1wYXJ0eQorICBoZWFkZXJzIGluc2lkZSBhbiBN SVQgb25lLgorCitEaXJlY3RvcmllcyBsaXN0ZWQgdW5kZXIgW2xpY2Vuc2luZ10gZXhjbHVkZV9k aXJlY3RvcmllcyAoYnVpbGQtdGltZSBvbmx5LAorbm90IHNoaXBwZWQpIGFuZCBbZ2V0ZGVwc10g cHJ1bmVfZGlyZWN0b3JpZXMgKGRlbGV0ZWQgaW4gJXByZXApIGluIHRoZQorZ28tdmVuZG9yLXRv b2xzIGNvbmZpZyBhcmUgc2tpcHBlZC4gRXZlcnkgU1BEWCBpZGVudGlmaWVyCitmb3VuZCBtdXN0 IGFwcGVhciBpbiB0aGUgdGFnOyBmb3IgYSBmaWxlIGxpY2Vuc2VkICJBIG9yIEIiIG9uZSBvZiB0 aGVtIGlzCitlbm91Z2guIEV4aXQgMSB3aXRoIHRoZSBtaXNzaW5nIGlkZW50aWZpZXJzIGFuZCBl eGFtcGxlIGZpbGVzIG90aGVyd2lzZS4KKyIiIgorCitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBv cworaW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRvbWxs aWIKKworT1BFUkFUT1JTID0geyJBTkQiLCAiT1IiLCAiV0lUSCJ9CisKKyMgbGljZW5zZWNoZWNr IGlzIGFza2VkIGZvciBTUERYIG5hbWVzIGJ1dCBwcmludHMgaXRzIGludGVybmFsIChEZWJpYW4t c3R5bGUpCisjIG5hbWUgd2hlcmUgU1BEWCBoYXMgbm9uZTogYSBnZW5lcmljICJHUEwgdmVyc2lv biAyIiBtYXRjaCB3aXRob3V0IG9ubHkvb3IKKyMgbGF0ZXIgd29yZGluZywgb3IgcHVibGljIGRv bWFpbi4gVHJhbnNsYXRlIHRob3NlIHRvIHdoYXQgYSBGZWRvcmEgTGljZW5zZQorIyB0YWcgdXNl cyAodGhlIGdlbmVyaWMgR1BMLU4gaXMgdGFrZW4gYXMgLW9ubHksIHRoZSBzdHJpY3RlciByZWFk aW5nKS4KK0RFQklBTl9UT19GRURPUkEgPSB7CisgICAgInB1YmxpYy1kb21haW4iOiAiTGljZW5z ZVJlZi1GZWRvcmEtUHVibGljLURvbWFpbiIsCisgICAgIkdQTC0xIjogIkdQTC0xLjAtb25seSIs CisgICAgIkdQTC0xKyI6ICJHUEwtMS4wLW9yLWxhdGVyIiwKKyAgICAiR1BMLTIiOiAiR1BMLTIu MC1vbmx5IiwKKyAgICAiR1BMLTIrIjogIkdQTC0yLjAtb3ItbGF0ZXIiLAorICAgICJHUEwtMyI6 ICJHUEwtMy4wLW9ubHkiLAorICAgICJHUEwtMysiOiAiR1BMLTMuMC1vci1sYXRlciIsCisgICAg IkxHUEwtMiI6ICJMR1BMLTIuMC1vbmx5IiwKKyAgICAiTEdQTC0yKyI6ICJMR1BMLTIuMC1vci1s YXRlciIsCisgICAgIkxHUEwtMi4xIjogIkxHUEwtMi4xLW9ubHkiLAorICAgICJMR1BMLTIuMSsi OiAiTEdQTC0yLjEtb3ItbGF0ZXIiLAorICAgICJMR1BMLTMiOiAiTEdQTC0zLjAtb25seSIsCisg ICAgIkxHUEwtMysiOiAiTEdQTC0zLjAtb3ItbGF0ZXIiLAorICAgICJFeHBhdCI6ICJNSVQiLAor ICAgICJBcGFjaGUtMiI6ICJBcGFjaGUtMi4wIiwKKyAgICAiQXJ0aXN0aWMtMiI6ICJBcnRpc3Rp Yy0yLjAiLAorICAgICJabGliIjogIlpsaWIiLAorfQorCisKK2RlZiB0YWdfaWRlbnRpZmllcnMo ZXhwcmVzc2lvbik6CisgICAgcmV0dXJuIHsKKyAgICAgICAgdCBmb3IgdCBpbiByZS5maW5kYWxs KHIiW0EtWmEtejAtOS4rLV0rIiwgZXhwcmVzc2lvbikgaWYgdCBub3QgaW4gT1BFUkFUT1JTCisg ICAgfQorCisKK2RlZiBleGNsdWRlZChjb25maWcpOgorICAgICIiIkRpcmVjdG9yaWVzIHRvIHNr aXA6IHRoZSBzY2FuJ3MgZXhjbHVkZV9kaXJlY3RvcmllcyAocHJlc2VudCBhdCBidWlsZAorICAg IHRpbWUsIG5vdCBwYXJ0IG9mIHRoZSBzaGlwcGVkIGJpbmFyaWVzKSBhbmQgZ2V0ZGVwcycgcHJ1 bmVfZGlyZWN0b3JpZXMKKyAgICAoZGVsZXRlZCBpbiAlcHJlcDsgc2tpcHBlZCBoZXJlIHRvbyBz byBhIHJlcG9ydCBvbiBhbiB1bnBydW5lZCB0cmVlCisgICAgbWF0Y2hlcyB0aGUgYnVpbGQncyBj aGVjaykuIiIiCisgICAgaWYgbm90IGNvbmZpZzoKKyAgICAgICAgcmV0dXJuIFtdCisgICAgd2l0 aCBvcGVuKGNvbmZpZywgInJiIikgYXMgZjoKKyAgICAgICAgY2ZnID0gdG9tbGxpYi5sb2FkKGYp CisgICAgcmV0dXJuIGNmZy5nZXQoImxpY2Vuc2luZyIsIHt9KS5nZXQoImV4Y2x1ZGVfZGlyZWN0 b3JpZXMiLCBbXSkgKyBjZmcuZ2V0KAorICAgICAgICAiZ2V0ZGVwcyIsIHt9CisgICAgKS5nZXQo InBydW5lX2RpcmVjdG9yaWVzIiwgW10pCisKKworZGVmIHNjYW4ocm9vdCwgc2tpcCk6CisgICAg Y21kID0gWyJsaWNlbnNlY2hlY2siLCAiLS1yZWN1cnNpdmUiLCAiLS1tYWNoaW5lIiwgIi0tc2hv cnRuYW1lLXNjaGVtZT1zcGR4Il0KKyAgICBpZiBza2lwOgorICAgICAgICAjIGxpY2Vuc2VjaGVj ayBwcmludHMgcGF0aHMgYXMgLi9hL2I7IG1hdGNoIHRoZSBleGNsdWRlZCBkaXJlY3Rvcmllcwor ICAgICAgICAjIGF0IHRoZSByb290IG9mIHRoZSB0cmVlIG9ubHkKKyAgICAgICAgY21kLmFwcGVu ZCgKKyAgICAgICAgICAgICItLWlnbm9yZT1eKFxcLi8pPygiICsgInwiLmpvaW4ocmUuZXNjYXBl KGQpIGZvciBkIGluIHNraXApICsgIikoL3wkKSIKKyAgICAgICAgKQorICAgIGNtZC5hcHBlbmQo Ii4iKQorICAgIG91dCA9IHN1YnByb2Nlc3MucnVuKAorICAgICAgICBjbWQsIGN3ZD1yb290LCBj YXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIGNoZWNrPUZhbHNlCisgICAgKS5zdGRvdXQK KyAgICBmb3VuZCA9IHt9ICAjIGlkZW50aWZpZXIgb3IgdHVwbGUgb2YgYWx0ZXJuYXRpdmVzIC0+ IGV4YW1wbGUgcGF0aHMKKyAgICBmb3IgbGluZSBpbiBvdXQuc3BsaXRsaW5lcygpOgorICAgICAg ICBwYXJ0cyA9IGxpbmUuc3BsaXQoIlx0IikKKyAgICAgICAgaWYgbGVuKHBhcnRzKSA8IDI6Cisg ICAgICAgICAgICBjb250aW51ZQorICAgICAgICBwYXRoLCBsaWMgPSBwYXJ0c1swXSwgcGFydHNb MV0KKyAgICAgICAgbGljID0gcmUuc3ViKHIiXHMqXFsuKj9cXVxzKiIsICIgIiwgbGljKS5zdHJp cCgpICAjICJbZ2VuZXJhdGVkIGZpbGVdIgorICAgICAgICBpZiBub3QgbGljIG9yIGxpYyA9PSAi VU5LTk9XTiI6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBmb3IgY2xhdXNlIGluIHJl LnNwbGl0KHIiXHMrYW5kXHMrIiwgbGljLnJlcGxhY2UoIiBhbmQvb3IgIiwgIiBvciAiKSk6Cisg ICAgICAgICAgICBhbHRlcm5hdGl2ZXMgPSB0dXBsZSgKKyAgICAgICAgICAgICAgICBERUJJQU5f VE9fRkVET1JBLmdldChhLnN0cmlwKCksIGEuc3RyaXAoKSkKKyAgICAgICAgICAgICAgICBmb3Ig YSBpbiByZS5zcGxpdChyIlxzK29yXHMrIiwgY2xhdXNlKQorICAgICAgICAgICAgICAgIGlmIGEu c3RyaXAoKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgaWYgYWx0ZXJuYXRpdmVzIGFuZCBh bGwoYSAhPSAiVU5LTk9XTiIgZm9yIGEgaW4gYWx0ZXJuYXRpdmVzKToKKyAgICAgICAgICAgICAg ICBmb3VuZC5zZXRkZWZhdWx0KGFsdGVybmF0aXZlcywgW10pLmFwcGVuZChwYXRoKQorICAgIHJl dHVybiBmb3VuZAorCisKK2RlZiBzdWdnZXN0ZWRfZXhwcmVzc2lvbihmaWxlX3NjYW5fZXhwcmVz c2lvbiwgZm91bmQpOgorICAgICIiIlRoZSBmaWxlLXNjYW4gZXhwcmVzc2lvbiBleHRlbmRlZCB3 aXRoIHdoYXQgbGljZW5zZWNoZWNrIGZvdW5kOiBvbmUKKyAgICBBTkQgdGVybSBwZXIgaWRlbnRp ZmllciBvciAiKEEgT1IgQikiIGdyb3VwIHRoZSBsaWNlbnNlIGZpbGVzIGRpZCBub3QKKyAgICBh bHJlYWR5IGNvdmVyLiIiIgorICAgIGNvdmVyZWQgPSB0YWdfaWRlbnRpZmllcnMoZmlsZV9zY2Fu X2V4cHJlc3Npb24pCisgICAgZXh0cmEgPSBbXQorICAgIGZvciBhbHRlcm5hdGl2ZXMgaW4gc29y dGVkKGZvdW5kKToKKyAgICAgICAgaWYgYW55KGEgaW4gY292ZXJlZCBmb3IgYSBpbiBhbHRlcm5h dGl2ZXMpOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgdGVybSA9IGFsdGVybmF0aXZl c1swXSBpZiBsZW4oYWx0ZXJuYXRpdmVzKSA9PSAxIGVsc2UgIigiICsgIiBPUiAiLmpvaW4oYWx0 ZXJuYXRpdmVzKSArICIpIgorICAgICAgICBpZiB0ZXJtIG5vdCBpbiBleHRyYToKKyAgICAgICAg ICAgIGV4dHJhLmFwcGVuZCh0ZXJtKQorICAgIHBhcnRzID0gW2ZpbGVfc2Nhbl9leHByZXNzaW9u XSBpZiBmaWxlX3NjYW5fZXhwcmVzc2lvbiBlbHNlIFtdCisgICAgcmV0dXJuICIgQU5EICIuam9p bihwYXJ0cyArIGV4dHJhKQorCisKK2RlZiBtYWluKCk6CisgICAgYXAgPSBhcmdwYXJzZS5Bcmd1 bWVudFBhcnNlcigpCisgICAgYXAuYWRkX2FyZ3VtZW50KCItLWNvbmZpZyIsIGhlbHA9ImdvLXZl bmRvci10b29scyBjb25maWcgKGV4Y2x1ZGVfZGlyZWN0b3JpZXMpIikKKyAgICBhcC5hZGRfYXJn dW1lbnQoCisgICAgICAgICItLWV4cHJlc3Npb24iLCBkZWZhdWx0PSIiLCBoZWxwPSJleHByZXNz aW9uIGNvbXB1dGVkIGZyb20gbGljZW5zZSBmaWxlcyIKKyAgICApCisgICAgYXAuYWRkX2FyZ3Vt ZW50KCItLXJvb3QiLCBkZWZhdWx0PSIuIikKKyAgICBhcC5hZGRfYXJndW1lbnQoCisgICAgICAg ICItLW5vLWxpY2Vuc2VjaGVjayIsCisgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAg ICAgIGhlbHA9InNraXAgdGhlIHBlci1maWxlIGxpY2Vuc2VjaGVjayBwYXNzIChleHBlbnNpdmUp OyBvbmx5IHZlcmlmeSAiCisgICAgICAgICJ0aGUgdGFnIGFnYWluc3QgdGhlIGxpY2Vuc2UtZmls ZSBleHByZXNzaW9uIiwKKyAgICApCisgICAgYXAuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS1y ZXBvcnQiLAorICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICBoZWxwPSJwcmlu dCB0aGUgZXhwcmVzc2lvbiB0aGUgdGFnIG5lZWRzIChib3RoIHNjYW5zIGNvbWJpbmVkKSBhbmQg IgorICAgICAgICAidGhlIGZpbGVzIGJlaGluZCBlYWNoIGlkZW50aWZpZXIgdGhlIGxpY2Vuc2Ug ZmlsZXMgZG8gbm90IHNob3ciLAorICAgICkKKyAgICBhcC5hZGRfYXJndW1lbnQoInRhZyIsIG5h cmdzPSI/IiwgZGVmYXVsdD0iIiwgaGVscD0idGhlIExpY2Vuc2UgdGFnIHRvIHZlcmlmeSIpCisg ICAgYXJncyA9IGFwLnBhcnNlX2FyZ3MoKQorICAgIGlmIG5vdCBhcmdzLnJlcG9ydCBhbmQgbm90 IGFyZ3MudGFnOgorICAgICAgICBhcC5lcnJvcigiYSBMaWNlbnNlIHRhZyB0byB2ZXJpZnkgaXMg cmVxdWlyZWQgdW5sZXNzIC0tcmVwb3J0IGlzIGdpdmVuIikKKworICAgIHRhZyA9IHRhZ19pZGVu dGlmaWVycyhhcmdzLnRhZykKKyAgICBtaXNzaW5nID0ge30KKyAgICBmb3IgaWRlbnQgaW4gc29y dGVkKHRhZ19pZGVudGlmaWVycyhhcmdzLmV4cHJlc3Npb24pIC0gdGFnKToKKyAgICAgICAgbWlz c2luZ1tpZGVudF0gPSBbIihsaWNlbnNlIGZpbGUgc2NhbikiXQorICAgIGZvdW5kID0ge30gaWYg YXJncy5ub19saWNlbnNlY2hlY2sgZWxzZSBzY2FuKGFyZ3Mucm9vdCwgZXhjbHVkZWQoYXJncy5j b25maWcpKQorICAgIHNlZW4gPSBzZXQoKQorICAgIGZvciBhbHRlcm5hdGl2ZXMsIHBhdGhzIGlu IGZvdW5kLml0ZW1zKCk6CisgICAgICAgIHNlZW4udXBkYXRlKGFsdGVybmF0aXZlcykKKyAgICAg ICAgaWYgbm90IGFueShhIGluIHRhZyBmb3IgYSBpbiBhbHRlcm5hdGl2ZXMpOgorICAgICAgICAg ICAgbWlzc2luZy5zZXRkZWZhdWx0KCIgT1IgIi5qb2luKGFsdGVybmF0aXZlcyksIFtdKS5leHRl bmQocGF0aHMpCisKKyAgICBpZiBhcmdzLm5vX2xpY2Vuc2VjaGVjazoKKyAgICAgICAgcHJpbnQo ImxpY2Vuc2VjaGVjayBwYXNzIHNraXBwZWQgKGxpY2Vuc2UtZmlsZSBzY2FuIG9ubHkpIikKKyAg ICBlbHNlOgorICAgICAgICBwcmludCgKKyAgICAgICAgICAgICJsaWNlbnNlY2hlY2s6ICVkIGZp bGVzIHdpdGggYSByZWNvZ25pc2VkIGxpY2Vuc2UiCisgICAgICAgICAgICAlIHN1bShtYXAobGVu LCBmb3VuZC52YWx1ZXMoKSkpCisgICAgICAgICkKKyAgICBpZiBhcmdzLnJlcG9ydDoKKyAgICAg ICAgcHJpbnQoc3VnZ2VzdGVkX2V4cHJlc3Npb24oYXJncy5leHByZXNzaW9uLCBmb3VuZCkpCisg ICAgICAgIGZpbGVfc2NhbiA9IHRhZ19pZGVudGlmaWVycyhhcmdzLmV4cHJlc3Npb24pCisgICAg ICAgIGZvciBhbHRlcm5hdGl2ZXMsIHBhdGhzIGluIHNvcnRlZChmb3VuZC5pdGVtcygpKToKKyAg ICAgICAgICAgIGlmIG5vdCBhbnkoYSBpbiBmaWxlX3NjYW4gZm9yIGEgaW4gYWx0ZXJuYXRpdmVz KToKKyAgICAgICAgICAgICAgICBwcmludCgKKyAgICAgICAgICAgICAgICAgICAgIiMgICAlczog JXMiICUgKCIgT1IgIi5qb2luKGFsdGVybmF0aXZlcyksICIsICIuam9pbihwYXRoc1s6M10pKQor ICAgICAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuIDAKKyAgICB1bnVzZWQgPSB0YWcgLSBz ZWVuIC0gdGFnX2lkZW50aWZpZXJzKGFyZ3MuZXhwcmVzc2lvbikKKyAgICBpZiB1bnVzZWQ6Cisg ICAgICAgIHByaW50KCJub3RlOiBpbiB0aGUgTGljZW5zZSB0YWcgYnV0IG5vdCBkZXRlY3RlZCBh bnl3aGVyZTogIiArICIsICIuam9pbihzb3J0ZWQodW51c2VkKSkpCisgICAgaWYgbWlzc2luZzoK KyAgICAgICAgcHJpbnQoIkVSUk9SOiB0aGUgTGljZW5zZSB0YWcgbGFja3M6IiwgZmlsZT1zeXMu c3RkZXJyKQorICAgICAgICBmb3IgaWRlbnQsIHBhdGhzIGluIHNvcnRlZChtaXNzaW5nLml0ZW1z KCkpOgorICAgICAgICAgICAgcHJpbnQoIiAgJXMgIGUuZy4gJXMiICUgKGlkZW50LCAiLCAiLmpv aW4ocGF0aHNbOjNdKSksIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgcHJpbnQoCisgICAgICAg ICAgICAidGhlIHRhZyBuZWVkcyAocnVuIHdpdGggLS1yZXBvcnQgZm9yIHRoZSBmaWxlIGxpc3Qp OiAiCisgICAgICAgICAgICArIHN1Z2dlc3RlZF9leHByZXNzaW9uKGFyZ3MuZXhwcmVzc2lvbiwg Zm91bmQpLAorICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyLAorICAgICAgICApCisgICAgICAg IHJldHVybiAxCisgICAgcHJpbnQoIkxpY2Vuc2UgdGFnIGNvdmVycyBldmVyeSBkZXRlY3RlZCBs aWNlbnNlIikKKyAgICByZXR1cm4gMAorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Cisg ICAgc3lzLmV4aXQobWFpbigpKQoKZGlmZiAtLWdpdCBhL21hY3Jvcy5mb2xseS1ycG0gYi9tYWNy b3MuZm9sbHktcnBtCmluZGV4IDAwYzM1MTAuLjkyOTZhMWUgMTAwNjQ0Ci0tLSBhL21hY3Jvcy5m b2xseS1ycG0KKysrIGIvbWFjcm9zLmZvbGx5LXJwbQpAQCAtMTE1LDYgKzExNSwyNyBAQCBybSAt cmYgJXtidWlsZHJvb3R9JXtfbGliZGlyfS9saWIqLnNvKiAle2J1aWxkcm9vdH0le19saWJkaXJ9 L2xpYiouYSAle2J1aWxkcm9vdAogCiAlX19nZXRkZXBzX21vZHVsZXNfdHh0KCkgYXdrICd7IHBy aW50ICIjICIgJDEgIiB2IiAkMiB9JyAle2dldGRlcHNfdmVuZG9yX2Rpcn0vZ2V0ZGVwcy12ZW5k b3IudHh0ID4gJXtnZXRkZXBzX3ZlbmRvcl9kaXJ9L21vZHVsZXMudHh0CiAKKyMgZ2V0ZGVwc192 ZW5kb3JfcHJ1bmU6IGZvciAlJXByZXAsIGFmdGVyIHRoZSB2ZW5kb3IgdGFyYmFsbCBpcyB1bnBh Y2tlZC4KKyMgRGVsZXRlIHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgdW5kZXIgW2dldGRlcHNdIHBy dW5lX2RpcmVjdG9yaWVzIGluIHRoZQorIyBsaWNlbnNlIGNvbmZpZyAoYSB0YWJsZSBnby12ZW5k b3ItdG9vbHMgaWdub3Jlcyk6IGNvZGUgdGhhdCBpcyBleGNsdWRlZAorIyBmcm9tIHRoZSBsaWNl bnNlIHNjYW5zICphbmQqIHRoYXQgbm8gQ01ha2VMaXN0cy50eHQgcmVmZXJzIHRvLCBzdWNoIGFz CisjIGJpbmRpbmdzIGZvciBvdGhlciBsYW5ndWFnZXMuIEl0IGlzIHRoZW4gbm90IGluIHRoZSB0 cmVlIGF0IGFsbCwgY2Fubm90IGJlCisjIGNvbXBpbGVkIGJ5IGFjY2lkZW50LCBhbmQgYW4gb3V0 c2lkZSBhdWRpdCBvZiB0aGUgdW5wYWNrZWQgc291cmNlcyBkb2VzIG5vdAorIyBzZWUgaXRzIGxp Y2Vuc2VzLiBLZWVwIGV4Y2x1ZGVfZGlyZWN0b3JpZXMgZm9yIHdoYXQgdGhlIGJ1aWxkIHN0aWxs IG5lZWRzCisjIHRvIGNvbmZpZ3VyZSwgZS5nLiBlYWNoIHZlbmRvcmVkIHByb2plY3QncyBvd24g YnVpbGQvZmJjb2RlX2J1aWxkZXIvQ01ha2UKKyMgbW9kdWxlcyBvciBhIHRlc3QgZGlyZWN0b3J5 IGl0cyBDTWFrZUxpc3RzIGFkZHMgdW5jb25kaXRpb25hbGx5LiBPcHRpb246CisjIC1jIGNvbmZp ZywgdGhlIHNhbWUgZmlsZSBhcyB0aGUgb3RoZXIgbGljZW5zZSBtYWNyb3MuCislZ2V0ZGVwc192 ZW5kb3JfcHJ1bmUoYzopIFwKKyV7X19weXRob24zfSAtICV7LWMqfSA8PCdHRVRERVBTX1BSVU5F JyBcCitpbXBvcnQgb3MsIHNodXRpbCwgc3lzLCB0b21sbGliIFwKK3dpdGggb3BlbihzeXMuYXJn dlsxXSwgInJiIikgYXMgZjogXAorICAgIGRpcnMgPSB0b21sbGliLmxvYWQoZikuZ2V0KCJnZXRk ZXBzIiwge30pLmdldCgicHJ1bmVfZGlyZWN0b3JpZXMiLCBbXSkgXAorZm9yIGQgaW4gZGlyczog XAorICAgIGlmIG9zLnBhdGguaXNkaXIoZCk6IFwKKyAgICAgICAgcHJpbnQoInBydW5pbmciLCBk KSBcCisgICAgICAgIHNodXRpbC5ybXRyZWUoZCkgXAorR0VUREVQU19QUlVORQorCiAjIGdldGRl cHNfdmVuZG9yX2xpY2Vuc2VfYnVpbGRyZXF1aXJlczogZm9yICUlZ2VuZXJhdGVfYnVpbGRyZXF1 aXJlcy4KICMgU2FtZSBvcHRpb25zIGFzICUlZ29fdmVuZG9yX2xpY2Vuc2VfYnVpbGRyZXF1aXJl cyAoLWMgY29uZmlnLCAtZCBkZXRlY3RvcikuCiAlZ2V0ZGVwc192ZW5kb3JfbGljZW5zZV9idWls ZHJlcXVpcmVzKGM6ZDpEOikgJXtnb192ZW5kb3JfbGljZW5zZV9idWlsZHJlcXVpcmVzICUqKn0K QEAgLTEyNSw3ICsxNDYsOSBAQCBybSAtcmYgJXtidWlsZHJvb3R9JXtfbGliZGlyfS9saWIqLnNv KiAle2J1aWxkcm9vdH0le19saWJkaXJ9L2xpYiouYSAle2J1aWxkcm9vdAogCiAjIGdldGRlcHNf dmVuZG9yX2xpY2Vuc2VfaW5zdGFsbDogaW5zdGFsbCBldmVyeSBsaWNlbnNlIGZpbGUgZm91bmQg aW4gdGhlCiAjIHZlbmRvcmVkIHRyZWUgdW5kZXIgJSV7X2RlZmF1bHRsaWNlbnNlZGlyfS8lJXtu YW1lfS92ZW5kb3IvLi4uLCBwbHVzCi0jIGdldGRlcHMtdmVuZG9yLnR4dCBpdHNlbGYsIGFuZCB3 cml0ZSAlJWdldGRlcHNfdmVuZG9yX2xpY2Vuc2VfZmlsZWxpc3QuCisjIGdldGRlcHMtdmVuZG9y LnR4dCBpdHNlbGYgKHRoZSBzb3VyY2Ugb2YgdGhlIGJ1bmRsZWQoKSBQcm92aWRlcywgdmVyc2lv bmVkCisjIHdoZW4gZ2V0ZGVwcyBjb3VsZCBkZXRlcm1pbmUgYSB2ZXJzaW9uKSwgYW5kIHdyaXRl CisjICUlZ2V0ZGVwc192ZW5kb3JfbGljZW5zZV9maWxlbGlzdC4KICMgU2FtZSBvcHRpb25zIGFz ICUlZ29fdmVuZG9yX2xpY2Vuc2VfaW5zdGFsbCAoLWMsIC1uLCAtZCwgLUQpLiBtb2R1bGVzLnR4 dAogIyBpcyBkZWxpYmVyYXRlbHkgbm90IGluc3RhbGxlZCAoLU0pOiBycG0ncyBnb19tb2RfdmVu ZG9yIGdlbmVyYXRvciB3b3VsZAogIyB0dXJuIGl0IGludG8gYnVuZGxlZChnb2xhbmcoLi4uKSkg UHJvdmlkZXM7IGJ1bmRsZWQoKSBQcm92aWRlcyBmb3IgZ2V0ZGVwcwpAQCAtMTM4LDEwICsxNjEs MzQgQEAgZWNobyAnJSVsaWNlbnNlICV7X2RlZmF1bHRsaWNlbnNlZGlyfS8lez8tbip9JXshPy1u OiV7bmFtZX19L2dldGRlcHMtdmVuZG9yLnR4dCcKIAogIyBnZXRkZXBzX3ZlbmRvcl9saWNlbnNl X2NoZWNrOiBmb3IgJSVjaGVjay4gVmVyaWZ5IHRoYXQgdGhlIHNwZWMncyBMaWNlbnNlCiAjIHRh ZyAob3IgdGhlIGV4cHJlc3Npb24gZ2l2ZW4gYXMgYXJndW1lbnQpIGNvdmVycyBldmVyeSBsaWNl bnNlIGRldGVjdGVkCi0jIGluIHRoZSBzb3VyY2UgYW5kIHZlbmRvcmVkIHRyZWVzLiBPcHRpb25z IGFzICUlZ29fdmVuZG9yX2xpY2Vuc2VfY2hlY2ssCi0jIHBsdXM6CisjIGluIHRoZSBzb3VyY2Ug YW5kIHZlbmRvcmVkIHRyZWVzLCBmcm9tIHR3byBzY2FuczogZ29fdmVuZG9yX2xpY2Vuc2Ugb3Zl cgorIyB0aGUgbGljZW5zZSBmaWxlcyAod2hpY2ggYWxzbyBmYWlscyBvbiBhIGxpY2Vuc2UgZmls ZSBpdCBjYW5ub3QgY2xhc3NpZnkpLAorIyBhbmQgbGljZW5zZWNoZWNrIG92ZXIgZXZlcnkgZmls ZSwgd2hpY2ggaXMgd2hhdCBjYXRjaGVzIGEgZGlmZmVyZW50bHkKKyMgbGljZW5zZWQgZmlsZSBp bnNpZGUgYSBwcm9qZWN0IChmb2xseSdzIHpsaWIgQ3JjMzJjRGV0YWlsLmNwcCwgbXZmc3Qncwor IyBCb29zdC1saWNlbnNlZCB0aGlyZC1wYXJ0eSBoZWFkZXJzKSBhbmQgaXMgdGhlIHNjYW5uZXIg ZmVkb3JhLXJldmlldyBydW5zLgorIyBFdmVyeSBpZGVudGlmaWVyIGVpdGhlciBzY2FuIGZpbmRz IG11c3QgYXBwZWFyIGluIHRoZSB0YWc7IGlkZW50aWZpZXJzIGluCisjIHRoZSB0YWcgdGhhdCBu ZWl0aGVyIHNjYW4gc2F3IGFyZSByZXBvcnRlZCBhcyBhIG5vdGUuIFRoZSBsaWNlbnNlY2hlY2sg cGFzcworIyBpcyBleHBlbnNpdmUgKG1pbnV0ZXMsIGFuZCBtZW1vcnktaHVuZ3J5IG9uIGEgbGFy Z2UgdHJlZSksIHNvIGl0IG9ubHkgcnVucworIyB3aXRoIC1mOyBhIHNwZWMgdHVybnMgLWYgb24g d2hlbiB0aGUgdmVuZG9yIHRhcmJhbGwgZGlmZmVycyBmcm9tIHRoZSBvbmUKKyMgdGhlIGZ1bGwg Y2hlY2sgbGFzdCBwYXNzZWQgb24sIHNlZSBiZWxvdy4KKyMgT3B0aW9ucyBhcyAlJWdvX3ZlbmRv cl9saWNlbnNlX2NoZWNrLCBwbHVzOgorIyAgIC1mIDogYWxzbyBydW4gbGljZW5zZWNoZWNrIG92 ZXIgZXZlcnkgZmlsZQogIyAgIC1MIDogaWdub3JlIHZlbmRvcmVkIHByb2plY3RzIHdpdGggbm8g bGljZW5zZSBmaWxlIGF0IHRoZWlyIHRvcCBsZXZlbAogIyAgICAgICAgKGUuZy4gYSB0YXJiYWxs IHdob3NlIExJQ0VOU0Ugc2l0cyBpbiBhIHZlcnNpb25lZCBzdWJkaXJlY3RvcnkpCi0lZ2V0ZGVw c192ZW5kb3JfbGljZW5zZV9jaGVjayhjOmQ6RDpMKSBcCislZ2V0ZGVwc192ZW5kb3JfbGljZW5z ZV9jaGVjayhjOmQ6RDpMZikgXAogJXtfX2dldGRlcHNfbW9kdWxlc190eHR9IFwKLSV7X19nb192 ZW5kb3JfbGljZW5zZX0gJXstYzotLWNvbmZpZyAley1jKn19ICV7LWQ6LS1kZXRlY3RvciAley1k Kn19ICV7LUQ6LS1kZXRlY3Rvci1jb25maWcgJXstRCp9fSByZXBvcnQgYWxsICV7LUw6LUx9IC0t dmVyaWZ5ICcle2V4cHI6ICIleyp9IiA/ICIleyp9IiA6ICIle0xJQ0VOU0V9In0nCisle19fZ29f dmVuZG9yX2xpY2Vuc2V9ICV7LWM6LS1jb25maWcgJXstYyp9fSAley1kOi0tZGV0ZWN0b3IgJXst ZCp9fSAley1EOi0tZGV0ZWN0b3ItY29uZmlnICV7LUQqfX0gcmVwb3J0IGFsbCAley1MOi1MfSBc Cisle19ycG1jb25maWdkaXJ9L2dldGRlcHNfdmVuZG9yX2xpY2Vuc2VfY2hlY2sgJXstYzotLWNv bmZpZyAley1jKn19ICV7IS1mOi0tbm8tbGljZW5zZWNoZWNrfSAtLWV4cHJlc3Npb24gIiQoJXtf X2dvX3ZlbmRvcl9saWNlbnNlfSAley1jOi0tY29uZmlnICV7LWMqfX0gJXstZDotLWRldGVjdG9y ICV7LWQqfX0gJXstRDotLWRldGVjdG9yLWNvbmZpZyAley1EKn19IHJlcG9ydCBleHByZXNzaW9u ICV7LUw6LUx9KSIgJyV7ZXhwcjogIiV7Kn0iID8gIiV7Kn0iIDogIiV7TElDRU5TRX0ifScKKwor IyBXaGljaCBidWlsZHMgZ2V0IC1mIGlzIGRlY2lkZWQgaW4gdGhlIHNwZWMgaXRzZWxmLCB3aXRo IHBsYWluIHJwbSwgYmVjYXVzZQorIyB0aGUgJSVpZiBydW5zIHdoZW4gdGhlIFNSUE0gaXMgYnVp bHQgdG9vLCBpbiBhIGJ1aWxkcm9vdCB0aGF0IGRvZXMgbm90IGhhdmUKKyMgdGhpcyBwYWNrYWdl OiByZWNvcmQgdGhlIHNoYTUxMiBvZiB0aGUgdmVuZG9yIHRhcmJhbGwgdGhhdCBsYXN0IHBhc3Nl ZCB0aGUKKyMgZnVsbCBjaGVjayBhbmQgY29tcGFyZSAoYSBuZXcgdGFyYmFsbCwgb3IgYSBmb3Jn b3R0ZW4gdXBkYXRlIG9mIHRoZSByZWNvcmQsCisjIGFsd2F5cyBnZXRzIHRoZSBleHBlbnNpdmUg cGFzcyk6CisjICAgJSVnbG9iYWwgdmVuZG9yX2NoZWNrZWRfc2hhNTEyIDxzaGE1MTIgZnJvbSB0 aGUgc291cmNlcyBmaWxlPgorIyAgICUlaWYgIiUlKHNoYTUxMnN1bSAlJXtTT1VSQ0UxfSAyPi9k ZXYvbnVsbCB8IGN1dCAtYzEtMTI4KSIgPT0gIiUle3ZlbmRvcl9jaGVja2VkX3NoYTUxMn0iCisj ICAgJSViY29uZF93aXRoIGxpY2Vuc2VfZnVsbF9jaGVjaworIyAgICUlZWxzZQorIyAgICUlYmNv bmRfd2l0aG91dCBsaWNlbnNlX2Z1bGxfY2hlY2sKKyMgICAlJWVuZGlmCisjIGFuZCB0aGVuICUl Z2V0ZGVwc192ZW5kb3JfbGljZW5zZV9jaGVjayAuLi4gJSV7P3dpdGhfbGljZW5zZV9mdWxsX2No ZWNrOi1mfS4K