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: Add AGENTS.md: how to maintain the getdeps-based packages Date: Fri, 25 Sep 2026 08:19:54 GMT Message-ID: <179032439495.1.14322170332597261426.rpms-folly-rpm-macros-eeb59a77cc6c@fedoraproject.org> List-ID: X-Git-Repo: rpms/folly-rpm-macros X-Git-Branch: rawhide X-Git-Rev: eeb59a77cc6cfb5a48864d6b54d8a57986db6ab3 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZm9sbHktcnBtLW1hY3JvcwogICAgICAgICAgICBCcmFuY2ggOiByYXdoaWRl CiAgICAgICAgICAgIENvbW1pdCA6IGVlYjU5YTc3Y2M2Y2ZiNWE0ODg2NGQ2YjU0ZDhhNTc5ODZk YjZhYjMKICAgICAgICAgICAgQXV0aG9yIDogTWljaGVsIExpbmQgPHNhbGltbWFAZmVkb3JhcHJv amVjdC5vcmc+CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDktMjVUMDk6MTQ6MTUrMDE6MDAK ICAgICAgICAgICAgU3RhdHMgIDogKzMxNC8tMCBpbiAxIGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9mb2xseS1ycG0tbWFjcm9z L2MvZWViNTlhNzdjYzZjZmI1YTQ4ODY0ZDZiNTRkOGE1Nzk4NmRiNmFiMz9icmFuY2g9cmF3aGlk ZQoKICAgICAgICAgICAgTG9nOgogICAgICAgICAgICBBZGQgQUdFTlRTLm1kOiBob3cgdG8gbWFp bnRhaW4gdGhlIGdldGRlcHMtYmFzZWQgcGFja2FnZXMKCi0gTmV3IEFHRU5UUy5tZCBkaXN0aWxs aW5nIHdoYXQgbWFpbnRhaW5pbmcgY2FjaGVsaWIsIG1jcm91dGVyIGFuZCBmdXR1cmUKICBnZXRk ZXBzIHBhY2thZ2VzIG5lZWRzOiB0aGUgc3RhdGljLW9ubHkgbW9kZWwsIHRoZSBzcGVjIGFuYXRv bXkgYW5kCiAgdmVyc2lvbiBzY2hlbWUsIHRoZSB2ZW5kb3JpbmcgYW5kIGxpY2Vuc2Ugd29ya2Zs b3dzLCB0aGUgYnVpbGQKICBlbnZpcm9ubWVudCwgYW5kIHRoZSB1cHN0cmVhbSBmaXhlcyBlYWNo IHBhY2thZ2UgY2FycmllcwoKQXNzaXN0ZWQtYnk6IENsYXVkZSBDb2RlOmNsYXVkZS1vcHVzLTUK U2lnbmVkLW9mZi1ieTogTWljaGVsIExpbmQgPHNhbGltbWFAZmVkb3JhcHJvamVjdC5vcmc+Cgot LS0KZGlmZiAtLWdpdCBhL0FHRU5UUy5tZCBiL0FHRU5UUy5tZApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5hYjYwYmZiCi0tLSAvZGV2L251bGwKKysrIGIvQUdFTlRTLm1kCkBA IC0wLDAgKzEsMzE0IEBACisjIE1haW50YWluaW5nIGdldGRlcHMtYmFzZWQgRmVkb3JhIHBhY2th Z2VzCisKK1dvcmtpbmcgbm90ZXMgZm9yIHRoZSBwYWNrYWdlcyBidWlsdCB3aXRoIE1ldGEncyBg Z2V0ZGVwcy5weWAgdGhyb3VnaCB0aGUKK2AlZ2V0ZGVwc18qYCBtYWNyb3MgaW4gdGhpcyByZXBv c2l0b3J5OiBjYWNoZWxpYiBhbmQgbWNyb3V0ZXIgdG9kYXksIHdkdCwKK3Byb3h5Z2VuLWRlcml2 ZWQgdG9vbHMgb3Igb3RoZXJzIGxhdGVyLiBXcml0dGVuIGZvciB3aG9ldmVyIChvciB3aGF0ZXZl cikKK3BpY2tzIHRoaXMgdXAgbmV4dDsgaXQgcmVjb3JkcyB0aGUgZGVjaXNpb25zIGFuZCB0aGUg dHJhcHMsIG5vdCBqdXN0IHRoZQorY29tbWFuZHMuIFBhY2thZ2Utc3BlY2lmaWMgZGV0YWlscyBs aXZlIGluIGVhY2ggcGFja2FnZSdzIFJFQURNRS4KKworV2hhdCBpcyB0cnVlIHJpZ2h0IG5vdyAo d2hpY2ggcGFja2FnZSBpcyB3aGVyZSwgd2hpY2ggcGF0Y2hlcyBoYXZlIGxhbmRlZCwKK3doYXQg dGhlIG5leHQgdGFnIG5lZWRzKSBpcyBkZWxpYmVyYXRlbHkgbm90IGhlcmUgYnV0IGluIGAuLi9T VEFUVVMubWRgLAorb3V0c2lkZSB0aGlzIHJlcG9zaXRvcnk6IHRoaXMgZmlsZSBzaG91bGQgb25s eSBjaGFuZ2Ugd2hlbiB0aGUgbWFjcm9zIGRvLgorCisjIyAxLiBUaGUgbW9kZWwgaW4gb25lIHBh cmFncmFwaAorCitFYWNoIHBhY2thZ2UgYnVpbGRzIGl0cyB1cHN0cmVhbSBwcm9qZWN0IHdpdGgg dGhlIHByb2plY3QncyBvd24KK2BidWlsZC9mYmNvZGVfYnVpbGRlci9nZXRkZXBzLnB5YC4gRGVw ZW5kZW5jaWVzIEZlZG9yYSBzaGlwcyBjb21lIGZyb20gdGhlCitzeXN0ZW0gKGBCdWlsZFJlcXVp cmVzYCBhcmUgZ2VuZXJhdGVkIGZyb20gdGhlIGdldGRlcHMgbWFuaWZlc3RzKTsgdGhlIHJlc3Qg b2YKK3RoZSBNZXRhIHN0YWNrIChmb2xseSwgZml6eiwgd2FuZ2xlLCBtdmZzdCwgZmJ0aHJpZnQs IHBsdXMgbGlib3FzIGFuZCB3aGF0ZXZlcgorZWxzZSB0aGUgbWFuaWZlc3RzIGNhbm5vdCBtYXAg dG8gYSBGZWRvcmEgcGFja2FnZSkgaXMgdmVuZG9yZWQgYXMgYFNvdXJjZTFgLCBhCit0YXJiYWxs IG1hZGUgYnkgYGdldGRlcHMucHkgdmVuZG9yYCBhbmQgcmVjb3JkZWQgaW4KK2B2ZW5kb3IvZ2V0 ZGVwcy12ZW5kb3IudHh0YC4gRXZlcnl0aGluZyBpcyBsaW5rZWQgc3RhdGljYWxseSBpbnRvIHRo ZQorcHJvamVjdCdzIGV4ZWN1dGFibGVzOyB0aGUgcGFja2FnZSBzaGlwcyBleGVjdXRhYmxlcyBv bmx5LCBubyBsaWJyYXJpZXMgYW5kCitubyBgLWRldmVsYC4gYnVuZGxlZCgpIFByb3ZpZGVzLCB2 ZXJzaW9uZWQsIGFyZSBnZW5lcmF0ZWQgZnJvbSB0aGUgdmVuZG9yCittYW5pZmVzdDsgdGhlIExp Y2Vuc2UgdGFnIGNvdmVycyB0aGUgdmVuZG9yZWQgY29kZSBhbmQgaXMgdmVyaWZpZWQgYXQgYnVp bGQKK3RpbWUuCisKK1doeSBzdGF0aWMgYW5kIG5vIGAtZGV2ZWxgIChkZWNpZGVkIDIwMjYtMDkt MTgsIGFmdGVyIHRyeWluZyB0aGUgYWx0ZXJuYXRpdmUpOgorYSBzaGFyZWQtbGlicmFyeSBidWls ZCBsaW5rcywgYnV0IGV2ZXJ5IGBsaWJmb29fKi5zb2AgZ2V0cyBpdHMgb3duIGNvcHkgb2YgdGhl CitzdGFjayBhbmQgdGhlIGNvcGllcyByZS1yZWdpc3RlciB0aGUgc2FtZSBnZmxhZ3MgYW5kIGZv bGx5IHNpbmdsZXRvbnMgYXQKK3N0YXJ0dXAsIHdoaWNoIGdmbGFncyB0cmVhdHMgYXMgZmF0YWwu IEEgYC1kZXZlbGAgd291bGQgYWxzbyBuZWVkIGZvbGx5IGFuZAorZmJ0aHJpZnQgaGVhZGVycywg d2hpY2ggRmVkb3JhIGRvZXMgbm90IHNoaXAuIFNvIGAlZ2V0ZGVwc19pbnN0YWxsYCBwcnVuZXMK K2xpYnJhcmllcywgaGVhZGVycywgQ01ha2UgYW5kIHBrZy1jb25maWcgZmlsZXMgdW5jb25kaXRp b25hbGx5LCBhbmQgdGhlcmUgaXMKK25vIHNoYXJlZC1saWJyYXJ5IG1vZGUgaW4gdGhlIG1hY3Jv cy4KKworIyMgMi4gUmVwb3NpdG9yaWVzIGFuZCB3aGVyZSBjaGFuZ2VzIGdvCisKK3wgVGhpbmcg fCBXaGVyZSB8IE5vdGVzIHwKK3wtLS18LS0tfC0tLXwKK3wgbWFjcm9zLCBhdHRyL3Byb3YsIGxp Y2Vuc2UgaGVscGVyIHwgdGhpcyByZXBvIChgZm9sbHktcnBtLW1hY3Jvc2ApIHwgdmVyc2lvbiA0 NiA9IGZpcnN0IHdpdGggYCVnZXRkZXBzXypgIHwKK3wgcGFja2FnZSBzcGVjcyB8IGBjYWNoZWxp YmAsIGBtY3JvdXRlcmAgZGlzdC1naXQgKGxvY2FsbHkgYH4vc3JjL2ZlZG9yYS9wa2dzLW1ldGEv Zm9sbHkvPHBrZz5gKSB8IGVhY2ggaGFzIGB2ZW5kb3Iuc2hgLCBgc25hcHNob3Quc2hgLCBgZ2V0 ZGVwcy12ZW5kb3ItbGljZW5zZXMudG9tbGAsIFJFQURNRSB8Cit8IGdldGRlcHMgaXRzZWxmIHwg YGJ1aWxkL2ZiY29kZV9idWlsZGVyL2AgaW5zaWRlIGV2ZXJ5IE1ldGEgcHJvamVjdCdzIEdpdEh1 YiBleHBvcnQ7IGNhbm9uaWNhbCBjb3B5IGluIGZic291cmNlIHwgQ2FjaGVMaWIncyBjb3B5IGlz IHRoZSBvbmUgY2hhbmdlcyBoYXZlIGJlZW4gZGV2ZWxvcGVkIGFnYWluc3QgfAorfCB1cHN0cmVh bSBmaXhlcyB8IGEgYnJhbmNoIG9uIE1pY2hlbCdzIGZvcmsgb2YgdGhlIHByb2plY3QsIHNpZ25l ZCBvZmYsIGV2aWRlbmNlIGluIHRoZSBjb21taXQgbWVzc2FnZTsgKipubyBHaXRIdWIgUFIqKiB1 bmxlc3MgYXNrZWQgfCBmYnRocmlmdCBtYWludGFpbmVycyBjbG9zZSBQUnM7IE1ldGEgZW5naW5l ZXJzIGltcG9ydCBkaWZmcyBieSBoYW5kOiBgY3VybCAtTCBodHRwczovL2dpdGh1Yi5jb20vbWlj aGVsLXNsbS88cmVwbz4vY29tbWl0LzxoYXNoPi5wYXRjaCBcfCBoZyBpbXBvcnQgLWAgfAorfCBG ZWRvcmEgcmV2aWV3IHwgc3BlYyArIFNSUE0gVVJMcyBpbiB0aGUgYnVnLCBrb2ppIHNjcmF0Y2gg YnVpbGQgYXMgZXZpZGVuY2UgfCBubyBkaXN0LWdpdCwgbm8gYGZlZHBrZyBuZXctc291cmNlc2Ag dW50aWwgdGhlIHBhY2thZ2UgaXMgKHVuKXJldGlyZWQgfAorCitSdW5uaW5nIHRoZSBsaWNlbnNl IGhlbHBlciBmcm9tIGEgY2hlY2tvdXQgb2YgdGhpcyByZXBvc2l0b3J5IGxlYXZlcyBhCitgX19w eWNhY2hlX18vYCBiZWhpbmQgKHRoZSBzY3JpcHQgaGFzIG5vIGAucHlgIHN1ZmZpeCwgc28gdGhl IGZpbGUgaXMgbmFtZWQKK2BnZXRkZXBzX3ZlbmRvcl9saWNlbnNlX2NoZWNrY3B5dGhvbi0zWFgu cHljYCk7IGl0IGlzIG5vdCBpbiBgLmdpdGlnbm9yZWAgYW5kCitoYXMgYmVlbiBjb21taXR0ZWQg YnkgYWNjaWRlbnQgb25jZS4gQ2hlY2sgYGdpdCBzdGF0dXNgIGJlZm9yZSBgZ2l0IGFkZCAtQWAu CisKK0NvbW1pdCBjb252ZW50aW9uczogYXNrIGJlZm9yZSBjb21taXR0aW5nLCBgZ2l0IGNvbW1p dCAtc2AsIGBBc3Npc3RlZC1ieToKK0NsYXVkZSBDb2RlOjxtb2RlbC1pZD5gIHRyYWlsZXIgaW4g RmVkb3JhIHJlcG9zIChubyBDby1BdXRob3JlZC1CeSksIGFtZW5kCit1bnB1c2hlZCBjb21taXRz IHdpdGggYC0tZGF0ZT1ub3dgLiBycG1hdXRvc3BlYyB0dXJucyB0aGUgc3ViamVjdCBhbmQgYW55 CitgLSBgIGxpbmVzIG9mIHRoZSBib2R5IGludG8gdGhlIGNoYW5nZWxvZzsgcHJvc2UgYmVsb3cg aXMgZm9yIGRldGFpbHMuCisKKyMjIDMuIEFuYXRvbXkgb2YgYSBzcGVjCisKK1JlYWQgYGNhY2hl bGliLnNwZWNgIGFzIHRoZSByZWZlcmVuY2UuIFRoZSBwaWVjZXMsIGluIG9yZGVyOgorCistICoq VmVyc2lvbi4qKiBVcHN0cmVhbSBjdXRzIHdlZWtseSB0YWdzIGB2WVlZWS5NTS5ERC5OTmAuIGNh Y2hlbGliIGhhcyBhbgorICB1cHN0cmVhbSBtYWpvciAoYGtDYWNoZWxpYlZlcnNpb25gKSwgc28g aXRzIFZlcnNpb24gaXMKKyAgYDxtYWpvcj4uPHRhZyB3aXRob3V0IHY+YCAoYDE5LjIwMjYuMDku MTQuMDBgKTsgbWNyb3V0ZXIgaGFzIG5vbmUsIHNvIGp1c3QKKyAgdGhlIHRhZy4gQSBzbmFwc2hv dCBwYXN0IHRoZSB0YWcgYXBwZW5kcyBgXjxkaXN0YW5jZT4uPHNob3J0Y29tbWl0PmAgYXMKKyAg YGdpdCBkZXNjcmliZWAgcmVwb3J0cyBpdDogdGhlIGd1aWRlbGluZXMnIGA8bnVtYmVyPi48cmV2 aXNpb24+YCBzbmFwc2hvdAorICBmb3JtIChgMTkuMjAyNi4wOS4xNC4wMF4zOC5lZTRjMTUzYCku IE5ldmVyIGxlYWQgdGhlIHNuYXBzaG90IGZpZWxkIHdpdGgKKyAgdGhlIGRpc3RhbmNlIHdpdGhv dXQgdGhlIHRhZyBiZWZvcmUgaXQ6IHRoZSBkaXN0YW5jZSByZXNldHMgYXQgZXZlcnkgdGFnLgor ICBDbGVhcmVkIHdpdGggRlBDIG1lbWJlcnMgb24gMjAyNi0wOS0yNCAoQ2FybCBHZW9yZ2Ugc3Vn Z2VzdGVkIHRoZSBkb3R0ZWQKKyAgam9pbiwgY2l0aW5nIEltYWdlTWFnaWNrJ3MgZm91ci1wYXJ0 IHZlcnNpb24pLgorLSAqKkdsb2JhbHMuKiogYGJhc2V0YWdgLCBhbmQgZm9yIGEgc25hcHNob3Qg YGNvbW1pdGAgKyBgY29tbWl0c2AgYXMgcHJpbnRlZCBieQorICBgLi9zbmFwc2hvdC5zaCBbcmVm XWAgKG9yIGZyb20gYSBjbG9uZTogYGdpdCBkZXNjcmliZSAtLXRhZ3MgLS1tYXRjaAorICAndjIw Pz8uPz8uPz8uPz8nIDxyZWY+YCBnaXZlcyBhbGwgdGhyZWUgdmFsdWVzKS4gYGFyY2hpdmVfcmVm YC9gYXJjaGl2ZV9kaXJgCisgIGZvbGxvdyBmcm9tIHRoZW0uIERvIG5vdCB1c2UgdGhlIGZvcmdl IG1hY3JvczogdGhleSB0YWtlIFNvdXJjZTAgZnJvbQorICBgJXRhZ2Agd2hlbmV2ZXIgaXQgaXMg ZGVmaW5lZCwgYW5kIHRoZXkgYXJlIGEgbnVpc2FuY2UgZm9yIHJlbmFtaW5nLgorLSAqKlNvdXJj ZXMuKiogYFNvdXJjZTA6ICV7dXJsfS9hcmNoaXZlLyV7YXJjaGl2ZV9yZWZ9LyV7bmFtZX0tJXt2 ZXJzaW9ufS50YXIuZ3pgCisgIChHaXRIdWIgaWdub3JlcyB0aGUgbGFzdCBwYXRoIGNvbXBvbmVu dCwgc28gdGhlIGZpbGUgaXMgbmFtZWQgbGlrZQorICBTb3VyY2UxKS4gYFNvdXJjZTE6ICV7bmFt ZX0tJXt2ZXJzaW9ufS12ZW5kb3IudGFyLnh6YCBmcm9tIGAuL3ZlbmRvci5zaGAuCisgIGBTb3Vy Y2UyOiBnZXRkZXBzLXZlbmRvci1saWNlbnNlcy50b21sYC4gS2VlcCB4ejogbWVhc3VyZWQgMjAy Ni0wOS0yNCwKKyAgenN0ZCAtMTkgc2F2ZXMgbm90aGluZyB3b3J0aCBkaXZlcmdpbmcgZnJvbSB0 aGUgUnVzdC9HbyBjb252ZW50aW9uLgorLSAqKkxpY2Vuc2UuKiogYFNvdXJjZUxpY2Vuc2U6IDxw cm9qZWN0IGxpY2Vuc2U+YCBnYXRlZCBvbgorICBgJWlmICEwJXs/cmhlbH0gfHwgMCV7P3JoZWx9 ID49IDEwYCAocnBtIDQuMTkrKSwgdGhlbiBgTGljZW5zZToKKyAgJXtzaHJpbms6IC4uLiB9YCwg b25lIGlkZW50aWZpZXIgcGVyIGxpbmUsIHByb2plY3QgbGljZW5zZSBmaXJzdCwgd2l0aCB0aGUK KyAgcGVyLXByb2plY3QgYnJlYWtkb3duIGFzIGNvbW1lbnRzIGFib3ZlLiBTZWUgc2VjdGlvbiA1 IGZvciBob3cgdG8gZGVyaXZlIGl0LgorLSAqKkZ1bGwtY2hlY2sgZ2F0ZSoqLCBwbGFpbiBycG0g b24gcHVycG9zZSAoaXQgcnVucyB3aGVuIHRoZSBTUlBNIGlzIGJ1aWx0LAorICB3aXRob3V0IHRo aXMgcGFja2FnZSBpbnN0YWxsZWQpOgorICBgYGAKKyAgJWdsb2JhbCB2ZW5kb3JfY2hlY2tlZF9z aGE1MTIgPHNoYTUxMiBvZiBTb3VyY2UxIGZyb20gdGhlIHNvdXJjZXMgZmlsZT4KKyAgJWlmICIl KHNoYTUxMnN1bSAle1NPVVJDRTF9IDI+L2Rldi9udWxsIHwgY3V0IC1jMS0xMjgpIiA9PSAiJXt2 ZW5kb3JfY2hlY2tlZF9zaGE1MTJ9IgorICAlYmNvbmRfd2l0aCBsaWNlbnNlX2Z1bGxfY2hlY2sK KyAgJWVsc2UKKyAgJWJjb25kX3dpdGhvdXQgbGljZW5zZV9mdWxsX2NoZWNrCisgICVlbmRpZgor ICBgYGAKKyAgKGAlYmNvbmRfd2l0aGAvYCViY29uZF93aXRob3V0YDogRVBFTCA5J3MgcnBtIGxh Y2tzIHRoZSBgJWJjb25kIG5hbWUgdmFsdWVgCisgIGZvcm0uKQorLSAqKlBhdGNoZXMuKiogU2Vl IHNlY3Rpb24gODsgZWFjaCBuZWVkcyBhIGNvbW1lbnQgbmFtaW5nIGl0cyB1cHN0cmVhbQorICBy ZWZlcmVuY2UuCistICoqYEV4Y2x1c2l2ZUFyY2g6IHg4Nl82NCBhYXJjaDY0IHBwYzY0bGVgKiog aW4gdGhlIHNwZWMgaXRzZWxmLiBBbnl0aGluZyB0aGUKKyAgU1JQTSBzdGVwIG5lZWRzIChFeGNs dXNpdmVBcmNoLCBiY29uZHMpIGNhbm5vdCBjb21lIGZyb20gdGhpcyBwYWNrYWdlOgorICBgLXNy cG0tbWFjcm9zYCBvbmx5IHdvcmsgd2hlbiBwcmVsb2FkZWQgaW50byBldmVyeSBTUlBNIGJ1aWxk cm9vdC4KKy0gKipgQnVpbGRSZXF1aXJlczogZm9sbHktcnBtLW1hY3JvcyA+PSA0NmAqKiBwbHVz IGBnY2MtYysrYCAob3IgY2xhbmcgdW5kZXIKKyAgdGhlIGB0b29sY2hhaW5fY2xhbmdgIGJjb25k KS4gRXZlcnl0aGluZyBlbHNlIGNvbWVzIGZyb20KKyAgYCVnZXRkZXBzX2dlbmVyYXRlX2J1aWxk cmVxdWlyZXNgIGFuZCBgJWdldGRlcHNfdmVuZG9yX2xpY2Vuc2VfYnVpbGRyZXF1aXJlc2AuCist ICoqU2VjdGlvbnM6KioKKyAgYGBgCisgICVwcmVwCisgICVhdXRvc2V0dXAgLW4gJXthcmNoaXZl X2Rpcn0gLWExIC1wMQorICAlZ2V0ZGVwc192ZW5kb3JfcHJ1bmUgLWMgJXtTT1VSQ0UyfQorICAj IHBsdXMgcm0gLXJmIG9mIGFueXRoaW5nIGVsc2UgdW5uZWVkZWQgYW5kIG9kZGx5IGxpY2Vuc2Vk IChtY3JvdXRlcjogbTQvKQorCisgICVidWlsZAorICAlZ2V0ZGVwc192ZW5kb3JfbGljZW5zZV9j aGVjayAtYyAle1NPVVJDRTJ9IC1MICV7P3dpdGhfbGljZW5zZV9mdWxsX2NoZWNrOi1mfQorICAl Z2V0ZGVwc19idWlsZCAlez93aXRoX2NoZWNrOi10fQorCisgICVpbnN0YWxsCisgICVnZXRkZXBz X2luc3RhbGwKKyAgJWdldGRlcHNfdmVuZG9yX2xpY2Vuc2VfaW5zdGFsbCAtYyAle1NPVVJDRTJ9 CisKKyAgJWNoZWNrCisgICVpZiAle3dpdGggY2hlY2t9CisgICVnZXRkZXBzX3Rlc3QKKyAgJWVu ZGlmCisKKyAgJWZpbGVzIC1mICV7Z2V0ZGVwc192ZW5kb3JfbGljZW5zZV9maWxlbGlzdH0KKyAg YGBgCisgIFRoZSBsaWNlbnNlIGNoZWNrIHNpdHMgYXQgdGhlIHN0YXJ0IG9mIGAlYnVpbGRgLCBu b3QgaW4gYCVwcmVwYDogaXQgb25seQorICBuZWVkcyB0aGUgdW5wYWNrZWQgdHJlZXMsIGEgd3Jv bmcgdGFnIHRoZW4gZmFpbHMgaW4gbWludXRlcyBpbnN0ZWFkIG9mCisgIGFmdGVyIHRoZSBjb21w aWxlLCBhbmQgYCVwcmVwYCBydW5zIG9uY2UgcGVyIGR5bmFtaWMtQnVpbGRSZXF1aXJlcyBwYXNz LAorICBiZWZvcmUgdGhlIGRldGVjdG9yIGlzIGluc3RhbGxlZC4KKy0gKipLbm9icyoqIChgJWds b2JhbGAgYmVmb3JlIHVzZSk6IGBnZXRkZXBzX3Byb2plY3RgLCBgZ2V0ZGVwc192ZW5kb3JfZGly YCwKKyAgYGdldGRlcHNfc2NyYXRjaF9kaXJgIChkZWZhdWx0cyB1bmRlciBgJV9idWlsZGRpcmA7 IG5ldmVyIGAvdG1wYCwgYSB0bXBmcyksCisgIGBnZXRkZXBzX2pvYl93ZWlnaHRfbWliYCAoMzA3 MiwgZmVkIHRvIGAlbGltaXRfYnVpbGRgKSwKKyAgYGdldGRlcHNfZXh0cmFfY21ha2VfZGVmaW5l c2AgKEpTT04gKmNvbnRlbnRzKiB3aXRob3V0IGJyYWNlcywgYXBwbGllcyB0bworICBldmVyeSBw cm9qZWN0IGdldGRlcHMgYnVpbGRzOyBjYWNoZWxpYiB1c2VzIGl0IGZvciBgTElCX0lOU1RBTExf RElSYCwKKyAgYENBQ0hFTElCX01BSk9SX1ZFUlNJT05gLCBgQ09ORklHU19JTlNUQUxMX0RJUmA7 IG1jcm91dGVyIGZvcgorICBgTUNST1VURVJfUEFDS0FHRV9WRVJTSU9OYCwgd2hpY2ggdXBzdHJl YW0ncyBDTWFrZSBjb252ZXJzaW9uIGxlZnQgYXQKKyAgIjAuMS4wLWRldiIpLgorCisjIyA0LiBV cGRhdGluZyBhIHBhY2thZ2UgdG8gYSBuZXcgd2Vla2x5IHRhZworCisxLiBgYmFzZXRhZ2AgdG8g dGhlIHRhZyAoY29tbWVudCBvdXQgYGNvbW1pdGAvYGNvbW1pdHNgKS4gRm9yIGEgc25hcHNob3Qs CisgICBwYXN0ZSB0aGUgbGluZXMgYC4vc25hcHNob3Quc2ggPHJlZj5gIHByaW50cy4gQ2hlY2sg dGhlIHByb2plY3QncyBtYWpvciBpZgorICAgaXQgaGFzIG9uZS4KKzIuIFJlLWV4YW1pbmUgdGhl IHBhdGNoZXM6IGRyb3Agd2hhdCB0aGUgbmV3IHBpbm5lZCByZXZpc2lvbnMgY29udGFpbgorICAg KGB2ZW5kb3IvPHByb2plY3Q+YCB0cmVlcyBmb2xsb3cgYGJ1aWxkL2RlcHMvZ2l0aHViX2hhc2hl c2Agd2hlbiB0aGUKKyAgIHByb2plY3Qgc2hpcHMgcGluczsgbWNyb3V0ZXIncyBleHBvcnQgZ2Fp bmVkIHRoZW0gb24gMjAyNi0wOS0yNCkuCiszLiBgLi92ZW5kb3Iuc2hgIHdpdGggdGhlIGdlbmVy YXRlZCBCdWlsZFJlcXVpcmVzIGluc3RhbGxlZCBvbiB0aGUgaG9zdAorICAgKGBweXRob24zIGJ1 aWxkL2ZiY29kZV9idWlsZGVyL2dldGRlcHMucHkgLS1hbGxvdy1zeXN0ZW0tcGFja2FnZXMKKyAg IGluc3RhbGwtc3lzdGVtLWRlcHMgLS1yZWN1cnNpdmUgPHByb2plY3Q+YCBmcm9tIHRoZSB1bnBh Y2tlZCBzb3VyY2UgbGlzdHMKKyAgIHRoZW0pLCBzbyBnZXRkZXBzIHZlbmRvcnMgZXhhY3RseSB3 aGF0IHRoZSBidWlsZCB3aWxsIGxvb2sgZm9yLiBJdCBrZWVwcworICAgaXRzIHRlbXAgYW5kIHNj cmF0Y2ggb24gZGlzaywgbmV2ZXIgdG1wZnMuIEEgdGFyYmFsbCB2ZW5kb3JlZCB3aXRoIGZld2Vy CisgICBwYWNrYWdlcyBpbnN0YWxsZWQgc3RpbGwgYnVpbGRzLCBpdCBpcyBvbmx5IGxhcmdlci4g U2V0IGBHRVRERVBTX1BST0pFQ1RgCisgICB3aGVuIHRoZSBnZXRkZXBzIHByb2plY3QgaXMgbm90 IHRoZSBwYWNrYWdlIG5hbWUuIFRoZSBtYW5pZmVzdCBpdCB3cml0ZXMKKyAgIGhhcyB0aHJlZSBj b2x1bW5zOiBwcm9qZWN0LCBjb21taXQgKG9yIHNoYTI1NiBmb3IgdGFyYmFsbHMpLCB2ZXJzaW9u LgorNC4gRGVyaXZlIHRoZSBMaWNlbnNlIHRhZyAoc2VjdGlvbiA1KSwgdXBkYXRlIGl0IGlmIHRo ZSByZXBvcnQgY2hhbmdlZC4KKzUuIEJ1aWxkIHdpdGggYG1vY2sgLXIgPHRhcmdldD4tZ2V0ZGVw c2AgKHNlY3Rpb24gNykuIFRoZSBmdWxsIGxpY2Vuc2UgcGFzcworICAgcnVucyBiZWNhdXNlIGB2 ZW5kb3JfY2hlY2tlZF9zaGE1MTJgIG5vIGxvbmdlciBtYXRjaGVzOyBvbiBzdWNjZXNzIGNvcHkK KyAgIHRoZSBuZXcgdGFyYmFsbCdzIHNoYTUxMiBmcm9tIGBzb3VyY2VzYCAoYWZ0ZXIgYGZlZHBr ZyBuZXctc291cmNlc2ApIGludG8KKyAgIHRoZSBzcGVjIHNvIGxhdGVyIGJ1aWxkcywga29qaSBp bmNsdWRlZCwgdGFrZSB0aGUgY2hlYXAgcGF0aC4KKzYuIENoZWNrIHRoZSByZXN1bHQ6IGBycG0g LXFwIC0tcHJvdmlkZXMgPHJwbT4gfCBncmVwIGJ1bmRsZWRgIHNob3dzIGV2ZXJ5CisgICB2ZW5k b3JlZCBwcm9qZWN0IHdpdGggYSB2ZXJzaW9uOyBgcnBtIC1xbHBgIHNob3dzIGV4ZWN1dGFibGVz LCBkb2NzIGFuZAorICAgdGhlIGxpY2Vuc2UgdHJlZSBvbmx5OyBydW4gdGhlIGV4ZWN1dGFibGVz IChgLS1oZWxwYCBhdCBsZWFzdDsgbWNyb3V0ZXIKKyAgIHN0YXJ0cyB3aXRoIGFuIGlubGluZSBg LS1jb25maWctc3RyYCwgY2FjaGViZW5jaCByZXBsYXlzIHRoZSBzaGlwcGVkIHRlc3QKKyAgIGNv bmZpZ3MpLgorNy4gQ29tbWl0IChzdWJqZWN0ICsgYC0gYCBidWxsZXRzID0gY2hhbmdlbG9nKSwg cHVzaCwga29qaTogZm9sbHktcnBtLW1hY3JvcworICAgZmlyc3Qgd2hlbmV2ZXIgdGhlIHNwZWMg bmVlZHMgYSBuZXdlciBvbmUuCisKK1R1ZXNkYXkgaXMgd2hlbiB0aGUgd2Vla2x5IHRhZ3MgYXBw ZWFyOyBrZWVwIHRoZSBwYWNraXQvY2FuYXJ5IGNhZGVuY2Ugd2Vla2x5LAorYSBmdWxsIGJ1aWxk IGlzIDQ1IG1pbnV0ZXMgd2FybSBhbmQgaG91cnMgY29sZC4KKworIyMgNS4gTGljZW5zZXM6IHRo ZSBtb2RlbCBhbmQgdGhlIHRvb2xpbmcKKworVHdvIGxpc3RzIGluIGBnZXRkZXBzLXZlbmRvci1s aWNlbnNlcy50b21sYCBkcmF3IHRoZSBsaW5lczoKKworLSBgW2dldGRlcHNdIHBydW5lX2RpcmVj dG9yaWVzYDogY29kZSB0aGUgYnVpbGQgZG9lcyBub3QgbmVlZCBhdCBhbGwKKyAgKGZidGhyaWZ0 J3MgR28gYmluZGluZ3MpLiBgJWdldGRlcHNfdmVuZG9yX3BydW5lYCBkZWxldGVzIGl0IGluIGAl cHJlcGA6CisgIG5ldmVyIHNjYW5uZWQsIG5ldmVyIGRlY2xhcmVkLCBjYW5ub3QgYmUgY29tcGls ZWQgYnkgYWNjaWRlbnQsIGludmlzaWJsZSB0bworICBhbiBvdXRzaWRlIGF1ZGl0IHN1Y2ggYXMg ZmVkb3JhLXJldmlldydzIGxpY2Vuc2VjaGVjay4KKy0gYFtsaWNlbnNpbmddIGV4Y2x1ZGVfZGly ZWN0b3JpZXNgOiBwcmVzZW50IGF0IGJ1aWxkIHRpbWUgYnV0IG5vdCBwYXJ0IG9mCisgIHRoZSBz aGlwcGVkIGJpbmFyaWVzLCBhbmQgKm5lZWRlZCogdG8gY29uZmlndXJlIG9yIGJ5IHRoZSB0ZXN0 IGJ1aWxkOiBlYWNoCisgIHZlbmRvcmVkIHByb2plY3QncyBvd24gYGJ1aWxkL2ZiY29kZV9idWls ZGVyL0NNYWtlYCBtb2R1bGVzIChmaXp6LCB3YW5nbGUsCisgIG12ZnN0LCBmYnRocmlmdCBpbmNs dWRlIGBGQkJ1aWxkT3B0aW9uc2AgZnJvbSB0aGVyZTsgZ2V0ZGVwcyBnaXZlcyB0aGVtIG5vCisg IG90aGVyIG1vZHVsZSBwYXRoKSwgdGhlIHByb2plY3RzJyBgY21ha2UvYCBoZWxwZXIgZGlyZWN0 b3JpZXMgKE5DU0EKKyAgYENoZWNrQXRvbWljLmNtYWtlYCksIGxpYm9xcydzIGB0ZXN0cy9gIChp dHMgQ01ha2VMaXN0cyBhZGRzIGl0CisgIHVuY29uZGl0aW9uYWxseSkgYW5kIHRoZSBsaWJvcXMg YWxnb3JpdGhtIGZhbWlsaWVzIGBPUVNfTUlOSU1BTF9CVUlMRGAKKyAgbGVhdmVzIG91dC4gQm90 aCBzY2FucyBza2lwIHRoZXNlLgorLSBFdmVyeXRoaW5nIGVsc2UgbXVzdCBiZSBjb3ZlcmVkIGJ5 IHRoZSBMaWNlbnNlIHRhZy4KKworVHdvIHNjYW5uZXJzLCBiZWNhdXNlIGxpY2Vuc2UgKmZpbGVz KiBhcmUgbm90IGVub3VnaDogZ28tdmVuZG9yLXRvb2xzIHJlYWRzCitgTElDRU5TRWAgZmlsZXMg KGFza2Fsb25vKSwgbGljZW5zZWNoZWNrIHJlYWRzIGV2ZXJ5IGZpbGUncyBoZWFkZXIuIFRoZQor aGVhZGVyIHNjYW4gaXMgd2hhdCBmb3VuZCBmb2xseSdzIHpsaWItbGljZW5zZWQgYGhhc2gvZGV0 YWlsL0NyYzMyY0RldGFpbC5jcHBgLAorbXZmc3QncyBCb29zdC1saWNlbnNlZCBgcXVpYy9jb21t b24vdGhpcmQtcGFydHkve2V4cGVjdGVkLG9wdGlvbmFsfS5oYCwKK2xpYm9xcydzIE1JVC1DTVUg YGJyZ19lbmRpYW4uaGAgYW5kIHB1YmxpYy1kb21haW4gQUVTIGNvZGUsIGFsbCBjb21waWxlZCBp bi4KK1RvIGRlcml2ZSB0aGUgdGFnLCBmcm9tIHRoZSB1bnBhY2tlZCBzb3VyY2Ugcm9vdCB3aXRo IHRoZSB2ZW5kb3IgdGFyYmFsbAorZXh0cmFjdGVkOgorCitgYGAKK2F3ayAneyBwcmludCAiIyAi ICQxICIgdiIgJDIgfScgdmVuZG9yL2dldGRlcHMtdmVuZG9yLnR4dCA+IHZlbmRvci9tb2R1bGVz LnR4dAorL3Vzci9saWIvcnBtL2dldGRlcHNfdmVuZG9yX2xpY2Vuc2VfY2hlY2sgLS1jb25maWcg Z2V0ZGVwcy12ZW5kb3ItbGljZW5zZXMudG9tbCAtLXJlcG9ydCBcCisgICAgLS1leHByZXNzaW9u ICIkKGdvX3ZlbmRvcl9saWNlbnNlIC0tY29uZmlnIGdldGRlcHMtdmVuZG9yLWxpY2Vuc2VzLnRv bWwgcmVwb3J0IGV4cHJlc3Npb24gLUwpIgorYGBgCisKK0l0IHByaW50cyB0aGUgZXhwcmVzc2lv biB0aGUgY2hlY2sgYWNjZXB0cyBhbmQgdGhlIGZpbGVzIGJlaGluZCBlYWNoCitpZGVudGlmaWVy IHRoZSBsaWNlbnNlIGZpbGVzIGFsb25lIHdvdWxkIG5vdCBzaG93LiBgLUxgIHRvbGVyYXRlcyBh IHByb2plY3QKK3dob3NlIGxpY2Vuc2UgZmlsZSBzaXRzIGluIGEgdmVyc2lvbmVkIHN1YmRpcmVj dG9yeSAobGlib3FzLCBzcGFyc2UtbWFwKS4KKworRGV0YWlscyB0aGF0IHdpbGwgY29tZSBiYWNr OgorCistIFRoZSBjaGVjayBtYWNybydzIG93biBjb21tZW50IHNheXMgImZvciBgJWNoZWNrYCI7 IHRoZSBzcGVjcyBkZWxpYmVyYXRlbHkKKyAgcnVuIGl0IGF0IHRoZSBzdGFydCBvZiBgJWJ1aWxk YCBpbnN0ZWFkLCBzZWUgc2VjdGlvbiAzLgorLSBUaGUgZnVsbCBsaWNlbnNlY2hlY2sgcGFzcyB0 YWtlcyBhYm91dCBmaXZlIG1pbnV0ZXMgYW5kIGEgbG90IG9mIG1lbW9yeQorICAoZmVkb3JhLXJl dmlldyBoYXMgT09NZWQgbGFwdG9wcyk7IGhlbmNlIHRoZSBzaGE1MTIgZ2F0ZS4gQSBmYWlsaW5n IGNoZWNrCisgIGVuZHMgd2l0aCAidGhlIHRhZyBuZWVkczogLi4uIiBzbyB0aGUgZml4IGlzIGEg Y29weS4KKy0gbGljZW5zZWNoZWNrIGlzIGFza2VkIGZvciBTUERYIG5hbWVzIGJ1dCBwcmludHMg aXRzIGludGVybmFsIG5hbWUgd2hlcmUKKyAgU1BEWCBoYXMgbm9uZTogdGhlIGdlbmVyaWMgYEdQ TC0yYCAobm8gb25seS9vci1sYXRlciB3b3JkaW5nKSBhbmQKKyAgYHB1YmxpYy1kb21haW5gLiBU aGUgaGVscGVyIHRyYW5zbGF0ZXMgdGhvc2UgKGBHUEwtMi4wLW9ubHlgLAorICBgTGljZW5zZVJl Zi1GZWRvcmEtUHVibGljLURvbWFpbmApLgorLSBsaWJvcXM6IG9ubHkgS3liZXIvTUwtS0VNIGFy ZSBidWlsdCAoYE9RU19NSU5JTUFMX0JVSUxEYCBpbiB0aGUgbWFuaWZlc3QpOworICB0aGUgcHFj cnlzdGFscyAiUHVibGljIERvbWFpbiBvciBBcGFjaGUgMi4wIiBub3RpY2VzIGFyZSBvbmUgZmls ZSBpbiB0d2VsdmUKKyAgdmFyaWFudHMsIHBpbm5lZCBieSBzaGEyNTYgaW4gdGhlIGNvbmZpZyBh cyBgQ0MwLTEuMCBPUiBBcGFjaGUtMi4wYDsgdGhlCisgIGFhcmNoNjQgS3liZXIgY29kZSBpcyBD QzAtMS4wLCBhcyBpbiBGZWRvcmEncyBvd24gbGlib3FzIHRhZy4KKy0gYFtbbGljZW5zaW5nLmxp Y2Vuc2VzXV1gIG92ZXJyaWRlcyBleGlzdCBmb3IgbGljZW5zZSAqZmlsZXMqIHRoZSBkZXRlY3Rv cgorICBjYW5ub3QgY2xhc3NpZnk7IGRvIG5vdCB1c2UgdGhlbSB0byB3aWRlbiBhIGZpbGUncyBl eHByZXNzaW9uIGZvciBwZXItZmlsZQorICBsaWNlbnNlcywgdGhlIGhlYWRlciBzY2FuIGNvdmVy cyB0aGF0LgorLSBFdmVyeXRoaW5nIHVuZGVyIGAle19kZWZhdWx0bGljZW5zZWRpcn0vPHBrZz4v dmVuZG9yLy4uLmAgaXMgaW5zdGFsbGVkIGJ5CisgIGAlZ2V0ZGVwc192ZW5kb3JfbGljZW5zZV9p bnN0YWxsYCwgcGx1cyBgZ2V0ZGVwcy12ZW5kb3IudHh0YCBpdHNlbGYuCisKKyMjIDYuIGJ1bmRs ZWQoKSBQcm92aWRlcworCitgZ2V0ZGVwc192ZW5kb3IuYXR0cmAgcnVucyBgZ2V0ZGVwc192ZW5k b3IucHJvdmAgb3ZlciB0aGUgaW5zdGFsbGVkCitgZ2V0ZGVwcy12ZW5kb3IudHh0YDogYGJ1bmRs ZWQoPG5hbWU+KSA9IDx2ZXJzaW9uPmAgcGVyIGxpbmUsIHVudmVyc2lvbmVkCitvbmx5IHdoZW4g Z2V0ZGVwcyBjb3VsZCBub3QgZGV0ZXJtaW5lIGEgdmVyc2lvbiAodGhlIGd1aWRlbGluZXMgYWxs b3cgaXQpLgorVGhlIG5hbWUgaXMgbWFwcGVkIHRvIHRoZSBGZWRvcmEgcGFja2FnZSBuYW1lIHdo ZXJlIGl0IGRpZmZlcnMKKyhgc3BhcnNlbWFwYCAtPiBgdHNsLXNwYXJzZS1tYXBgOyBleHRlbmQg dGhlIGF3ayB0YWJsZSB3aGVuIGEgbmV3IGNhc2UKK2FwcGVhcnMpLiBWZXJzaW9ucyBjb21lIGZy b20gYGdldGRlcHMucHkgdmVuZG9yYDogYGdpdCBkZXNjcmliZWAgYWdhaW5zdCB0aGUKK25lYXJl c3QgdGFnIGZvciBnaXQgY2hlY2tvdXRzIChkZWVwZW5pbmcgdGhlIHNoYWxsb3cgY2xvbmUgYXMg bmVlZGVkKSwgdGhlCit2ZXJzaW9uIGluIHRoZSBkb3dubG9hZCBVUkwgZm9yIGFyY2hpdmVzLiBU aGF0IGdldGRlcHMgY2hhbmdlIGlzIG9uCittaWNoZWwtc2xtL0NhY2hlTGliIGBnZXRkZXBzLXZl bmRvci1yZWNvcmQtY29tbWl0YCAoOTRiZmEyMzIpIGFuZCBjYXJyaWVkCithcyBhIHBhdGNoIGlu IGJvdGggcGFja2FnZXMgdW50aWwgaXQgbGFuZHMuCisKKyMjIDcuIEJ1aWxkIGVudmlyb25tZW50 ICh0aGlzIGxhcHRvcCwgbW9jaykKKworLSAqKmNjYWNoZSoqOiBtb2NrJ3MgcGx1Z2luLCAyMEcs IGBDQ0FDSEVfQkFTRURJUj0vYnVpbGRkaXIvYnVpbGQvQlVJTERgIHNvCisgIG9iamVjdHMgYXJl IHJldXNlZCBhY3Jvc3MgcGFja2FnZSB2ZXJzaW9ucyAoYWNjZXB0ZWQgY29zdDogZGVidWdpbmZv IG9mIGEKKyAgY3Jvc3MtdmVyc2lvbiBoaXQga2VlcHMgdGhlIGZpcnN0IGJ1aWxkJ3MgcGF0aCwg ZmluZSBmb3IgbG9jYWwgYnVpbGRzLCBub3QKKyAgZm9yIG9mZmljaWFsIG9uZXMsIHdoaWNoIHJ1 biBpbiBrb2ppIGFueXdheSkuIGdldGRlcHMgcGFzc2VzIGNjYWNoZSBhcyB0aGUKKyAgQ01ha2Ug QysrIGxhdW5jaGVyIG9uIGl0cyBvd247IEMgZmlsZXMgYnlwYXNzIGl0LgorLSAqKlVzZSB0aGUg ZGVkaWNhdGVkIGNvbmZpZ3MqKiBgfi8uY29uZmlnL21vY2svZmVkb3JhLXtyYXdoaWRlLDQ1LDQ0 fS1hYXJjaDY0LWdldGRlcHMuY2ZnYAorICAoYG1vY2sgLXIgZmVkb3JhLXJhd2hpZGUtYWFyY2g2 NC1nZXRkZXBzYCkuIFRoZXkgb25seSBzZXQKKyAgYGNvbmZpZ19vcHRzWydyb290J11gLCBzbyBj aHJvb3QsIHJvb3QgY2FjaGUgYW5kIGNjYWNoZSBsaXZlIHVuZGVyCisgIGAtZ2V0ZGVwc2AsIGlz b2xhdGVkIGZyb20gb3RoZXIgYnVpbGRzLiBgLS11bmlxdWVleHRgIGRvZXMgKipub3QqKiBkbyB0 aGlzOgorICB0aGUgY2NhY2hlIHBsdWdpbiByZW5kZXJzIGl0cyBkaXJlY3RvcnkgZnJvbSBge3ty b290fX1gIGJlZm9yZSB0aGUgc3VmZml4CisgIGlzIGFwcGVuZGVkLCBzbyBhIGAtLXVuaXF1ZWV4 dGAgYnVpbGQgc2lsZW50bHkgdXNlcyAoYW5kIGZpbGxzKSB0aGUgcGxhaW4KKyAgcm9vdCdzIGNh Y2hlLgorLSAqKk5ldmVyIHJ1biBhIHNlY29uZCBtb2NrIGNvbW1hbmQgYWdhaW5zdCBhIHJvb3Qg d2hpbGUgYSBidWlsZCBpcyBydW5uaW5nCisgIGluIGl0KiogKG5vdCBldmVuIGAtLWNvcHlpbmAp OiBtb2NrIGtpbGxzICJsZWZ0b3ZlciIgcHJvY2Vzc2VzIGFuZCBjYW4KKyAgbGVhdmUgdGhlIGJv b3RzdHJhcCBjaHJvb3QncyBgL2RldmAgYnVzeS4gU3RhZ2UgZmlsZXMgZmlyc3QuIFJlYWQgbG9n cworICB0aHJvdWdoIGAvdmFyL2xpYi9tb2NrLzxyb290Pi9yb290Ly4uLmAgd2l0aCBzdWRvIGlu c3RlYWQuCistICoqQmFja2dyb3VuZCBidWlsZHMqKjogYSBwcm9jZXNzIHN0YXJ0ZWQgaW5zaWRl IGBtb2NrIC0tY2hyb290YCBkaWVzIHdoZW4KKyAgdGhhdCBtb2NrIGV4aXRzOyBrZWVwIHRoZSBt b2NrIHByb2Nlc3MgaXRzZWxmIGFsaXZlIChydW4gaXQgaW4gdGhlCisgIGJhY2tncm91bmQpIHJh dGhlciB0aGFuIGRldGFjaGluZyBpbnNpZGUuCistICoqQWJvcnRlZCBvciBPT00ta2lsbGVkIGJ1 aWxkcyoqIGxlYXZlIHN0YWxlIGJpbmQgbW91bnRzOworICBgfi9zcmMvc291cmNlaHV0L21pY2hl bC1zbG0vZmVkb3JhLXBhY2thZ2luZy1zY3JpcHRzL21vY2stdW5tb3VudC5zaCA8cm9vdD5gCisg IGNsZWFycyB0aGVtIGJlZm9yZSB0aGUgbmV4dCBtb2NrIGNvbW1hbmQuCistICoqTWVtb3J5Kio6 IHN5c3RlbWQtb29tZCBraWxscyB0aGUgd2hvbGUgdG11eCBzY29wZSBhdCA5MCUgc3dhcDsgZm91 cgorICBjb21waWxlcnMgYXQgMyB0byA0IEdpQiBlYWNoIHBsdXMgYSBmdWxsIHN3YXAgaXMgZW5v dWdoLiBgLS1kZWZpbmUKKyAgJ19zbXBfYnVpbGRfbmNwdXMgMydgIG9yIGRyYWluZWQgc3dhcC4g YCVsaW1pdF9idWlsZGAgcHJpbnRzIGAtak5gIG9ubHkKKyAgd2hlbiBtZW1vcnkgaXMgdGhlIHRp Z2h0ZXIgbGltaXQgKGl0IG5ldmVyIHNldHMgYF9zbXBfYnVpbGRfbmNwdXNgKTsgdGhlCisgIG1h Y3JvcyByZWFkIGl0cyBvdXRwdXQsIGRvIG5vdCB1c2UgaXQgYXMgYSBzdGF0ZW1lbnQuCistICoq RGlzayoqOiBhYm91dCAyNSBHQiBwZWFrIHBlciBidWlsZCAoOC40IEdCIGluc3RhbGxlZCBkZXBz LCBmYnRocmlmdCdzCisgIGJ1aWxkIHRyZWUgdGhlIGxhcmdlc3QgdHJhbnNpZW50KTsgYC90bXBg IGlzIHRtcGZzIGFuZCBnZXRkZXBzIGRlZmF1bHRzIGl0cworICBzY3JhdGNoIHRoZXJlIHVubGVz cyB0b2xkIG90aGVyd2lzZTsgYHZlbmRvci5zaGAgdXNlcyBgL3Zhci90bXBgLgorICBgbW9jayAt LXNjcnViPWNocm9vdGAgb24gcm9vdHMgbm90IGluIHVzZSwgYC0tc2NydWI9ZG5mLWNhY2hlYCwg YW5kIHRoZQorICBmZWRycSBjYWNoZSBhcmUgdGhlIHVzdWFsIHJlY2xhaW1zLgorLSAqKlJlc3Vt aW5nIGFmdGVyIGEgZmFpbHVyZSBpbiBgJWluc3RhbGxgIG9yIGxhdGVyKio6IGtlZXAgdGhlIGNo cm9vdAorICAoYC0tbm8tY2xlYW5gKSBhbmQsIGluc2lkZSBpdCwgYHJwbWJ1aWxkIC1iaSAtLXNo b3J0LWNpcmN1aXRgIHRoZW4KKyAgYHJwbWJ1aWxkIC1iYiAtLXNob3J0LWNpcmN1aXRgLiBgLWJi IC0tc2hvcnQtY2lyY3VpdGAgYWxvbmUgc2tpcHMKKyAgYCVpbnN0YWxsYCBhbmQgcGFja2FnZXMg YSBzdGFsZSBCVUlMRFJPT1QuCistIFJlc3VsdCBkaXJlY3RvcmllcyBhcHBlbmQgdG8gYW4gZXhp c3RpbmcgYGJ1aWxkLmxvZ2A7IGRlbGV0ZSBpdCBvciByZWFkCisgIGZyb20gdGhlIGxhc3QgYEV4 ZWN1dGluZyglcHJlcClgLgorLSBBZnRlciBhIHN1Y2Nlc3NmdWwgc2hhcmVkLWxpYnJhcnkgb3Ig c3RhdGljIGJ1aWxkLCBjaGVjayB3aGF0IHdhcworICBwcm9kdWNlZDogYExEX1BSRUxPQUQ9PGxp Yj4gL2Jpbi90cnVlYCwgYHJlYWRlbGYgLWxXYCAobW9yZSB0aGFuIG9uZSBMT0FELAorICBHTlVf UkVMUk8gcHJlc2VudCksIHplcm8gIlJXWCBwZXJtaXNzaW9ucyIgd2FybmluZ3MgaW4gdGhlIGxv Zy4gVGhhdCBpcworICBob3cgdGhlIGZidGhyaWZ0IGAucm9kYXRhYCBidWcgd2FzIGZvdW5kLgor CisjIyA4LiBDYXJyaWVkIHBhdGNoZXMKKworRWFjaCBwYWNrYWdlIGNhcnJpZXMgdXBzdHJlYW0g Zml4ZXMgaXRzIHBpbm5lZCByZXZpc2lvbnMgZG8gbm90IGhhdmUgeWV0LCBpbgordGhyZWUga2lu ZHM6IHRvIHRoZSB2ZW5kb3JlZCB0cmVlcyAoYHZlbmRvci88cHJvamVjdD4vLi4uYCwgd2hpY2gg YHZlbmRvci5zaGAKK3NraXBzIHdoZW4gdmVuZG9yaW5nIGFuZCBgJWF1dG9zZXR1cGAgYXBwbGll cyksIHRvIGBidWlsZC9mYmNvZGVfYnVpbGRlcmAKKyhnZXRkZXBzIGZpeGVzLCBhcHBsaWVkIGJv dGggd2hlbiB2ZW5kb3JpbmcgYW5kIGluIGAlcHJlcGApLCBhbmQgdG8gdGhlCitwcm9qZWN0IGl0 c2VsZi4gRXZlcnkgcGF0Y2ggZ2V0cyBhIGNvbW1lbnQgbmFtaW5nIHRoZSB1cHN0cmVhbSByZWZl cmVuY2UsIGFuZAoraXMgZHJvcHBlZCB3aGVuIGEgcGluIG1vdmVzIHBhc3QgdGhlIGxhbmRlZCBj b21taXQuCisKK1doaWNoIHBhdGNoIGlzIGF0IHdoaWNoIHN0YWdlIHVwc3RyZWFtIGNoYW5nZXMg Y29uc3RhbnRseSwgc28gdGhhdCBsaXN0IGlzCitub3Qga2VwdCBoZXJlOiBzZWUgYC4uL1NUQVRV Uy5tZGAsIG91dHNpZGUgdGhpcyByZXBvc2l0b3J5LCBzbyB0aGF0IGxhbmRpbmcgYQorcGF0Y2gg bmV2ZXIgbWVhbnMgdG91Y2hpbmcgZm9sbHktcnBtLW1hY3Jvcy4KKworIyMgOS4gRVBFTCAoZGVm ZXJyZWQ7IEZlZG9yYSBmaXJzdCkKKworRVBFTCAxMCBkZXRlY3RzIGFzIGBjZW50b3Nfc3RyZWFt YCBzbyB0aGUgZGlzdHJvX2ZhbWlseSB3b3JrIGlzIG5vdCBuZWVkZWQKK3RoZXJlOyBibG9ja2Vy cyBhcmUgYGx6NC1zdGF0aWNgIChhYnNlbnQgb24gRUwxMCwgbWFuaWZlc3Qgc2VsZWN0b3IpLCB0 aGUKK2xpYnJhcmllcyBFTCB2ZW5kb3JzIHRoYXQgRmVkb3JhIG1hcHMgKGZtdCwgZ2ZsYWdzLCBn bG9nLCBnb29nbGV0ZXN0LAorYmVuY2htYXJrLCBmYXN0X2Zsb2F0OiBtYXAgdGhlbSBmb3IgRUwx MCBhbmQgdmVyaWZ5IGJ5IGNvbXBpbGluZyBvbiBjMTBzLAorZ2xvZyAwLjMuNSBiZWluZyB0aGUg ZG91YnRmdWwgb25lKSwgYHRzbC1zcGFyc2UtbWFwLWRldmVsYCBpbiBFUEVMIDEwLCBhbmQKK2Jy YW5jaGVzIGZvciBib3RoIHBhY2thZ2VzLiBFUEVMIDkgYWRkaXRpb25hbGx5IG5lZWRzIHRoZSBS SEVMCitkaXN0cm9fZmFtaWx5IHNlbGVjdG9ycywgZ2NjLXRvb2xzZXQtMTQgKGZyb20gdGhlIG1h bmlmZXN0KSBhbmQgYQorYCVsaW1pdF9idWlsZGAgZmFsbGJhY2ssIHdoaWNoIGJlbG9uZ3MgaW4g ZXBlbC1ycG0tbWFjcm9zLiBgU291cmNlTGljZW5zZWAKK2lzIGFscmVhZHkgZ2F0ZWQgb24gcnBt IDQuMTkuCisKKyMjIDEwLiBUZXN0cworCitPZmYgYnkgZGVmYXVsdCAoYCViY29uZF93aXRoIGNo ZWNrYCk7IGAlZ2V0ZGVwc19idWlsZCAtdGAgYnVpbGRzIG9ubHkgdGhlCit0b3AtbGV2ZWwgcHJv amVjdCdzIHRlc3RzIChnZXRkZXBzIG5lZWRzIGAtLXRlc3QtZGVwZW5kZW5jaWVzYCBmb3IgdGhl CitzdGFjaydzLCB3aGljaCB0aGUgbWFjcm9zIG5ldmVyIHBhc3MpIGFuZCBgJWdldGRlcHNfdGVz dGAgcnVucyB0aGVtLiBGaXJzdAorcnVuIHdpbGwgc2hvdyB3aGljaCBuZWVkIFN5c1YvUE9TSVgg c2htIG9yIE5VTUEgdGhhdCBhIGNocm9vdCBsYWNrcy4K