[education/minuet/release/26.08] /: Add rhythm with rests exercises
Sandro S. Andrade <[email protected]> Mon, 13 Jul 2026 18:16:30 +0000 (UTC)
| Newsgroups | gmane.comp.kde.doc,gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
R2l0IGNvbW1pdCBjM2JjZTI4NDlhZWUyMGMxNTMxN2QyNTVjZWZjYmJlYjhkMTQwNjQ0IGJ5IFNh bmRybyBTLiBBbmRyYWRlLgpDb21taXR0ZWQgb24gMTMvMDcvMjAyNiBhdCAxODoxNi4KUHVzaGVk IGJ5IHNhbmRyb2FuZHJhZGUgaW50byBicmFuY2ggJ3JlbGVhc2UvMjYuMDgnLgoKQWRkIHJoeXRo bSB3aXRoIHJlc3RzIGV4ZXJjaXNlcwoKTSAgKzEgICAgLTAgICAgZGF0YS9kZWZpbml0aW9ucy9D TWFrZUxpc3RzLnR4dApNICArOCAgICAtOCAgICBkYXRhL2RlZmluaXRpb25zL3JoeXRobS1kZWZp bml0aW9ucy5qc29uCkEgICsxOTQgIC0wICAgIGRhdGEvZGVmaW5pdGlvbnMvcmh5dGhtLXJlc3Qt ZGVmaW5pdGlvbnMuanNvbgpNICArMiAgICAtMCAgICBkYXRhL2V4ZXJjaXNlcy9DTWFrZUxpc3Rz LnR4dApBICArMTkgICAtMCAgICBkYXRhL2V4ZXJjaXNlcy9yaHl0aG0tZWFzeS1yZXN0cy5qc29u CkEgICsxOSAgIC0wICAgIGRhdGEvZXhlcmNpc2VzL3JoeXRobS1tZWRpdW0tcmVzdHMuanNvbgpN ICArNiAgICAtMCAgICBkb2MvaW5kZXguZG9jYm9vawpNICArOSAgICAtMCAgICBzcmMvYXBwL0NN YWtlTGlzdHMudHh0CkEgICsyODYgIC0wICAgIHNyYy9hcHAvYXV0b3Rlc3RzL3JoeXRobXJlc3R0 ZXN0LmNwcCAgICAgW0xpY2Vuc2U6IEdQTCh2Mi4wKyldCk0gICsxMCAgIC0wICAgIHNyYy9hcHAv ZXhlcmNpc2VjYXRhbG9nY29udHJvbGxlci5jcHAKTSAgKzE3ICAgLTUgICAgc3JjL2FwcC9leGVy Y2lzZXNlc3Npb25jb250cm9sbGVyLmNwcApNICArMTMgICAtNSAgICBzcmMvYXBwL3FtbC9FeGVy Y2lzZUNsYXBwaW5nVmlldy5xbWwKTSAgKzQgICAgLTAgICAgc3JjL2FwcC9xbWwvUHJhY3RpY2VN b2RlUGFnZS5xbWwKTSAgKzcgICAgLTExICAgc3JjL3BsdWdpbnMvZmx1aWRzeW50aHNvdW5kY29u dHJvbGxlci9mbHVpZHN5bnRoc291bmRjb250cm9sbGVyLmNwcApBICArNDMgICAtMCAgICBzcmMv dXRpbHMvcmh5dGhtdG9rZW4uaCAgICAgW0xpY2Vuc2U6IEdQTCh2Mi4wKyldCgpodHRwczovL2lu dmVudC5rZGUub3JnL2VkdWNhdGlvbi9taW51ZXQvLS9jb21taXQvYzNiY2UyODQ5YWVlMjBjMTUz MTdkMjU1Y2VmY2JiZWI4ZDE0MDY0NAoKZGlmZiAtLWdpdCBhL2RhdGEvZGVmaW5pdGlvbnMvQ01h a2VMaXN0cy50eHQgYi9kYXRhL2RlZmluaXRpb25zL0NNYWtlTGlzdHMudHh0CmluZGV4IGVlNDNh ZGUuLjU3MjI1YzkgMTAwNjQ0Ci0tLSBhL2RhdGEvZGVmaW5pdGlvbnMvQ01ha2VMaXN0cy50eHQK KysrIGIvZGF0YS9kZWZpbml0aW9ucy9DTWFrZUxpc3RzLnR4dApAQCAtMTYsNiArMTYsNyBAQCBz ZXQoTUlOVUVUX0RFRklOSVRJT05TCiAgICAgc2NhbGVzLXNpbW1ldHJpYy1kZWZpbml0aW9ucy5q c29uCiAgICAgc2NhbGVzLWJlYm9wLWRlZmluaXRpb25zLmpzb24KICAgICByaHl0aG0tZGVmaW5p dGlvbnMuanNvbgorICAgIHJoeXRobS1yZXN0LWRlZmluaXRpb25zLmpzb24KICkKIAogaW5zdGFs bChGSUxFUyAke01JTlVFVF9ERUZJTklUSU9OU30KZGlmZiAtLWdpdCBhL2RhdGEvZGVmaW5pdGlv bnMvcmh5dGhtLWRlZmluaXRpb25zLmpzb24gYi9kYXRhL2RlZmluaXRpb25zL3JoeXRobS1kZWZp bml0aW9ucy5qc29uCmluZGV4IDk3N2FhZjguLmE0NTg3YjkgMTAwNjQ0Ci0tLSBhL2RhdGEvZGVm aW5pdGlvbnMvcmh5dGhtLWRlZmluaXRpb25zLmpzb24KKysrIGIvZGF0YS9kZWZpbml0aW9ucy9y aHl0aG0tZGVmaW5pdGlvbnMuanNvbgpAQCAtMSw0MiArMSw0MiBAQAogewogICAiZGVmaW5pdGlv bnMiOiBbCiAgICAgewotICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJlYXN5IiwgIm1lZGl1bSJd LAorICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJlYXN5IiwgIm1lZGl1bSIsICJlYXN5LXdpdGgt cmVzdHMiLCAibWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0ZW5pbmciXSwKICAgICAgICJu YW1lIjogIlx1RTFGMCIsCiAgICAgICAic2VxdWVuY2UiOiAiNCIKICAgICB9LAogICAgIHsKLSAg ICAgICJ0YWdzIjogWyJyaHl0aG0iLCAiZWFzeSIsICJtZWRpdW0iXSwKKyAgICAgICJ0YWdzIjog WyJyaHl0aG0iLCAiZWFzeSIsICJtZWRpdW0iLCAiZWFzeS13aXRoLXJlc3RzIiwgIm1lZGl1bS13 aXRoLXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0sCiAgICAgICAibmFtZSI6ICJcdUUxRjBcdUUx RjdcdUUxRjIiLAogICAgICAgInNlcXVlbmNlIjogIjggOCIKICAgICB9LAogICAgIHsKLSAgICAg ICJ0YWdzIjogWyJyaHl0aG0iLCAiZWFzeSIsICJtZWRpdW0iXSwKKyAgICAgICJ0YWdzIjogWyJy aHl0aG0iLCAiZWFzeSIsICJtZWRpdW0iLCAiZWFzeS13aXRoLXJlc3RzIiwgIm1lZGl1bS13aXRo LXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0sCiAgICAgICAibmFtZSI6ICJcdUUxRjBcdUUxRjdc dUUxRkNcdUUxRjdcdUUxRjQiLAogICAgICAgInNlcXVlbmNlIjogIjguIDE2IgogICAgIH0sCiAg ICAgewotICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJlYXN5IiwgIm1lZGl1bSJdLAorICAgICAg InRhZ3MiOiBbInJoeXRobSIsICJlYXN5IiwgIm1lZGl1bSIsICJlYXN5LXdpdGgtcmVzdHMiLCAi bWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0ZW5pbmciXSwKICAgICAgICJuYW1lIjogIlx1 RTFGMFx1RTFGOVx1RTFGMlx1RTFGQyIsCiAgICAgICAic2VxdWVuY2UiOiAiMTYgOC4iCiAgICAg fSwKICAgICB7Ci0gICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bSJdLAorICAgICAgInRh Z3MiOiBbInJoeXRobSIsICJtZWRpdW0iLCAibWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0 ZW5pbmciXSwKICAgICAgICJuYW1lIjogIlx1RTFGMFx1RTFGOVx1RTFGNFx1RTFGOVx1RTFGNFx1 RTFGOVx1RTFGNCIsCiAgICAgICAic2VxdWVuY2UiOiAiMTYgMTYgMTYgMTYiCiAgICAgfSwKICAg ICB7Ci0gICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bSJdLAorICAgICAgInRhZ3MiOiBb InJoeXRobSIsICJtZWRpdW0iLCAibWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0ZW5pbmci XSwKICAgICAgICJuYW1lIjogIlx1RTFGMFx1RTFGN1x1RTFGMlx1RTFGOVx1RTFGNCIsCiAgICAg ICAic2VxdWVuY2UiOiAiOCAxNiAxNiIKICAgICB9LAogICAgIHsKLSAgICAgICJ0YWdzIjogWyJy aHl0aG0iLCAibWVkaXVtIl0sCisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bSIsICJt ZWRpdW0td2l0aC1yZXN0cyIsICJyZXN0LWxpc3RlbmluZyJdLAogICAgICAgIm5hbWUiOiAiXHVF MUYwXHVFMUY5XHVFMUYyXHVFMUY3XHVFMUY0IiwKICAgICAgICJzZXF1ZW5jZSI6ICIxNiA4IDE2 IgogICAgIH0sCiAgICAgewotICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0iXSwKKyAg ICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtIiwgIm1lZGl1bS13aXRoLXJlc3RzIiwgInJl c3QtbGlzdGVuaW5nIl0sCiAgICAgICAibmFtZSI6ICJcdUUxRjBcdUUxRjlcdUUxRjRcdUUxRjdc dUUxRjIiLAogICAgICAgInNlcXVlbmNlIjogIjE2IDE2IDgiCiAgICAgfQpkaWZmIC0tZ2l0IGEv ZGF0YS9kZWZpbml0aW9ucy9yaHl0aG0tcmVzdC1kZWZpbml0aW9ucy5qc29uIGIvZGF0YS9kZWZp bml0aW9ucy9yaHl0aG0tcmVzdC1kZWZpbml0aW9ucy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjRiMGRjZTMKLS0tIC9kZXYvbnVsbAorKysgYi9kYXRhL2RlZmluaXRp b25zL3JoeXRobS1yZXN0LWRlZmluaXRpb25zLmpzb24KQEAgLTAsMCArMSwxOTQgQEAKK3sKKyAg ImRlZmluaXRpb25zIjogWworICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAiZWFzeS13 aXRoLXJlc3RzIiwgIm1lZGl1bS13aXRoLXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0sCisgICAg ICAibmFtZSI6ICJcdUU0RTYgXHVFMUQ3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyOCA4IgorICAg IH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJlYXN5LXdpdGgtcmVzdHMiLCAi bWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFENyBcdUU0RTYiLAorICAg ICAgInNlcXVlbmNlIjogIjggcjgiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5 dGhtIiwgImVhc3ktd2l0aC1yZXN0cyIsICJtZWRpdW0td2l0aC1yZXN0cyIsICJyZXN0LWxpc3Rl bmluZyJdLAorICAgICAgIm5hbWUiOiAiXHVFNEU2XHVFMUU3IFx1RTFEOSIsCisgICAgICAic2Vx dWVuY2UiOiAicjguIDE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIs ICJlYXN5LXdpdGgtcmVzdHMiLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjog Ilx1RTFEN1x1RTFFNyBcdUU0RTciLAorICAgICAgInNlcXVlbmNlIjogIjguIHIxNiIKKyAgICB9 LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAiZWFzeS13aXRoLXJlc3RzIiwgIm1l ZGl1bS13aXRoLXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0sCisgICAgICAibmFtZSI6ICJcdUU0 RTcgXHVFMUQ3XHVFMUU3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgOC4iCisgICAgfSwKKyAg ICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgImVhc3ktd2l0aC1yZXN0cyIsICJtZWRpdW0t d2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ5IFx1RTRFNlx1RTFFNyIsCisgICAg ICAic2VxdWVuY2UiOiAiMTYgcjguIgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJo eXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyIsICJyZXN0LWxpc3RlbmluZyJdLAorICAgICAgIm5h bWUiOiAiXHVFNEU3IFx1RTFGMFx1RTFGOVx1RTFGNFx1RTFGOVx1RTFGNCIsCisgICAgICAic2Vx dWVuY2UiOiAicjE2IDE2IDE2IDE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJo eXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ5IFx1RTRF NyBcdUUxRjBcdUUxRjlcdUUxRjQiLAorICAgICAgInNlcXVlbmNlIjogIjE2IHIxNiAxNiAxNiIK KyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVz dHMiLCAicmVzdC1saXN0ZW5pbmciXSwKKyAgICAgICJuYW1lIjogIlx1RTRFNyBcdUU0RTcgXHVF MUYwXHVFMUY5XHVFMUY0IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgcjE2IDE2IDE2IgorICAg IH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJd LAorICAgICAgIm5hbWUiOiAiXHVFMUYwXHVFMUY5XHVFMUY0IFx1RTRFNyBcdUUxRDkiLAorICAg ICAgInNlcXVlbmNlIjogIjE2IDE2IHIxNiAxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdz IjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0ZW5pbmciXSwKKyAg ICAgICJuYW1lIjogIlx1RTRFNyBcdUUxRDkgXHVFNEU3IFx1RTFEOSIsCisgICAgICAic2VxdWVu Y2UiOiAicjE2IDE2IHIxNiAxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0 aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFEOSBcdUU0RTcg XHVFNEU3IFx1RTFEOSIsCisgICAgICAic2VxdWVuY2UiOiAiMTYgcjE2IHIxNiAxNiIKKyAgICB9 LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwK KyAgICAgICJuYW1lIjogIlx1RTRFNyBcdUU0RTcgXHVFNEU3IFx1RTFEOSIsCisgICAgICAic2Vx dWVuY2UiOiAicjE2IHIxNiByMTYgMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsi cmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRjBcdUUx RjlcdUUxRjRcdUUxRjlcdUUxRjQgXHVFNEU3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICIxNiAxNiAx NiByMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13 aXRoLXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0sCisgICAgICAibmFtZSI6ICJcdUU0RTcgXHVF MUYwXHVFMUY5XHVFMUY0IFx1RTRFNyIsCisgICAgICAic2VxdWVuY2UiOiAicjE2IDE2IDE2IHIx NiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgt cmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFEOSBcdUU0RTcgXHVFMUQ5IFx1RTRFNyIsCisg ICAgICAic2VxdWVuY2UiOiAiMTYgcjE2IDE2IHIxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0 YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1 RTRFNyBcdUU0RTcgXHVFMUQ5IFx1RTRFNyIsCisgICAgICAic2VxdWVuY2UiOiAicjE2IHIxNiAx NiByMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13 aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRjBcdUUxRjlcdUUxRjQgXHVFNEU3IFx1 RTRFNyIsCisgICAgICAic2VxdWVuY2UiOiAiMTYgMTYgcjE2IHIxNiIKKyAgICB9LAorICAgIHsK KyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJu YW1lIjogIlx1RTRFNyBcdUUxRDkgXHVFNEU3IFx1RTRFNyIsCisgICAgICAic2VxdWVuY2UiOiAi cjE2IDE2IHIxNiByMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwg Im1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRDkgXHVFNEU3IFx1RTRF NyBcdUU0RTciLAorICAgICAgInNlcXVlbmNlIjogIjE2IHIxNiByMTYgcjE2IgorICAgIH0sCisg ICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAg ICAgIm5hbWUiOiAiXHVFNEU2IFx1RTFGMFx1RTFGOVx1RTFGNCIsCisgICAgICAic2VxdWVuY2Ui OiAicjggMTYgMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1l ZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRDcgXHVFNEU3IFx1RTFEOSIs CisgICAgICAic2VxdWVuY2UiOiAiOCByMTYgMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFn cyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUU0 RTYgXHVFNEU3IFx1RTFEOSIsCisgICAgICAic2VxdWVuY2UiOiAicjggcjE2IDE2IgorICAgIH0s CisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAor ICAgICAgIm5hbWUiOiAiXHVFMUQ3IFx1RTFEOSBcdUU0RTciLAorICAgICAgInNlcXVlbmNlIjog IjggMTYgcjE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRp dW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFNEU2IFx1RTFEOSBcdUU0RTciLAor ICAgICAgInNlcXVlbmNlIjogInI4IDE2IHIxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdz IjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFE NyBcdUU0RTcgXHVFNEU3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICI4IHIxNiByMTYiCisgICAgfSwK KyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisg ICAgICAibmFtZSI6ICJcdUU0RTcgXHVFMUQ3IFx1RTFEOSIsCisgICAgICAic2VxdWVuY2UiOiAi cjE2IDggMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1 bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRDkgXHVFNEU2IFx1RTFEOSIsCisg ICAgICAic2VxdWVuY2UiOiAiMTYgcjggMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6 IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUU0RTcg XHVFNEU2IFx1RTFEOSIsCisgICAgICAic2VxdWVuY2UiOiAicjE2IHI4IDE2IgorICAgIH0sCisg ICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAg ICAgIm5hbWUiOiAiXHVFMUQ5IFx1RTFENyBcdUU0RTciLAorICAgICAgInNlcXVlbmNlIjogIjE2 IDggcjE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0t d2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFNEU3IFx1RTFENyBcdUU0RTciLAorICAg ICAgInNlcXVlbmNlIjogInIxNiA4IHIxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjog WyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFEOSBc dUU0RTYgXHVFNEU3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICIxNiByOCByMTYiCisgICAgfSwKKyAg ICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAg ICAibmFtZSI6ICJcdUU0RTcgXHVFMUQ5IFx1RTFENyIsCisgICAgICAic2VxdWVuY2UiOiAicjE2 IDE2IDgiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13 aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRDkgXHVFNEU3IFx1RTFENyIsCisgICAg ICAic2VxdWVuY2UiOiAiMTYgcjE2IDgiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsi cmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUU0RTcgXHVF NEU3IFx1RTFENyIsCisgICAgICAic2VxdWVuY2UiOiAicjE2IHIxNiA4IgorICAgIH0sCisgICAg eworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAg Im5hbWUiOiAiXHVFMUYwXHVFMUY5XHVFMUY0IFx1RTRFNiIsCisgICAgICAic2VxdWVuY2UiOiAi MTYgMTYgcjgiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1 bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUU0RTcgXHVFMUQ5IFx1RTRFNiIsCisg ICAgICAic2VxdWVuY2UiOiAicjE2IDE2IHI4IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3Mi OiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ5 IFx1RTRFNyBcdUU0RTYiLAorICAgICAgInNlcXVlbmNlIjogIjE2IHIxNiByOCIKKyAgICB9Cisg IF0KK30KZGlmZiAtLWdpdCBhL2RhdGEvZXhlcmNpc2VzL0NNYWtlTGlzdHMudHh0IGIvZGF0YS9l eGVyY2lzZXMvQ01ha2VMaXN0cy50eHQKaW5kZXggMTAzZDgxNy4uZjM4N2RmYiAxMDA2NDQKLS0t IGEvZGF0YS9leGVyY2lzZXMvQ01ha2VMaXN0cy50eHQKKysrIGIvZGF0YS9leGVyY2lzZXMvQ01h a2VMaXN0cy50eHQKQEAgLTE4LDcgKzE4LDkgQEAgc2V0KE1JTlVFVF9FWEVSQ0lTRVMKICAgICBz Y2FsZXMtc2ltbWV0cmljLWV4ZXJjaXNlcy5qc29uCiAgICAgc2NhbGVzLWJlYm9wLWV4ZXJjaXNl cy5qc29uCiAgICAgcmh5dGhtLWVhc3kuanNvbgorICAgIHJoeXRobS1lYXN5LXJlc3RzLmpzb24K ICAgICByaHl0aG0tbWVkaXVtLmpzb24KKyAgICByaHl0aG0tbWVkaXVtLXJlc3RzLmpzb24KICkK IAogaW5zdGFsbChGSUxFUyAke01JTlVFVF9FWEVSQ0lTRVN9CmRpZmYgLS1naXQgYS9kYXRhL2V4 ZXJjaXNlcy9yaHl0aG0tZWFzeS1yZXN0cy5qc29uIGIvZGF0YS9leGVyY2lzZXMvcmh5dGhtLWVh c3ktcmVzdHMuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTgwMTY2 Ci0tLSAvZGV2L251bGwKKysrIGIvZGF0YS9leGVyY2lzZXMvcmh5dGhtLWVhc3ktcmVzdHMuanNv bgpAQCAtMCwwICsxLDE5IEBACit7CisgICJleGVyY2lzZXMiOiBbCisgICAgeworICAgICAgIm5h bWUiOiAiUmh5dGhtIiwKKyAgICAgICJwbGF5TW9kZSI6ICJyaHl0aG0iLAorICAgICAgInVzZXJN ZXNzYWdlIjogIkhlYXIgdGhlIHJoeXRobSBhbmQgY2hvb3NlIHlvdXIgYW5zd2VycyIsCisgICAg ICAidGVtcGxhdGUiOiAibGlseXBvbmQtdGVtcGxhdGVzL3JoeXRobS5seS50bXBsIiwKKyAgICAg ICJfaWNvbiI6ICJtaW51ZXQtcmh5dGhtcy1zeW1ib2xpYy5zdmciLAorICAgICAgImNoaWxkcmVu IjogWworICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiRWFzeSB3aXRoIHJlc3RzIiwKKyAg ICAgICAgICAiYW5kLXRhZ3MiOiBbInJoeXRobSIsICJlYXN5LXdpdGgtcmVzdHMiLCAicmVzdC1s aXN0ZW5pbmciXSwKKyAgICAgICAgICAiY2xhcHBpbmctYW5kLXRhZ3MiOiBbInJoeXRobSIsICJl YXN5LXdpdGgtcmVzdHMiXSwKKyAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJhY3RpY2UgYmFz aWMgcmh5dGhtIHBhdHRlcm5zIHRoYXQgY29tYmluZSBub3RlcyBhbmQgcmVzdHMuIgorICAgICAg ICB9CisgICAgICBdCisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS9kYXRhL2V4ZXJjaXNlcy9y aHl0aG0tbWVkaXVtLXJlc3RzLmpzb24gYi9kYXRhL2V4ZXJjaXNlcy9yaHl0aG0tbWVkaXVtLXJl c3RzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk2NGQ2OQotLS0g L2Rldi9udWxsCisrKyBiL2RhdGEvZXhlcmNpc2VzL3JoeXRobS1tZWRpdW0tcmVzdHMuanNvbgpA QCAtMCwwICsxLDE5IEBACit7CisgICJleGVyY2lzZXMiOiBbCisgICAgeworICAgICAgIm5hbWUi OiAiUmh5dGhtIiwKKyAgICAgICJwbGF5TW9kZSI6ICJyaHl0aG0iLAorICAgICAgInVzZXJNZXNz YWdlIjogIkhlYXIgdGhlIHJoeXRobSBhbmQgY2hvb3NlIHlvdXIgYW5zd2VycyIsCisgICAgICAi dGVtcGxhdGUiOiAibGlseXBvbmQtdGVtcGxhdGVzL3JoeXRobS5seS50bXBsIiwKKyAgICAgICJf aWNvbiI6ICJtaW51ZXQtcmh5dGhtcy1zeW1ib2xpYy5zdmciLAorICAgICAgImNoaWxkcmVuIjog WworICAgICAgICB7CisgICAgICAgICAgIm5hbWUiOiAiTWVkaXVtIHdpdGggcmVzdHMiLAorICAg ICAgICAgICJhbmQtdGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIiwgInJlc3Qt bGlzdGVuaW5nIl0sCisgICAgICAgICAgImNsYXBwaW5nLWFuZC10YWdzIjogWyJyaHl0aG0iLCAi bWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUHJhY3RpY2Ug dmFyaWVkIHJoeXRobSBwYXR0ZXJucyB0aGF0IGNvbWJpbmUgbm90ZXMgYW5kIHJlc3RzLiIKKyAg ICAgICAgfQorICAgICAgXQorICAgIH0KKyAgXQorfQpkaWZmIC0tZ2l0IGEvZG9jL2luZGV4LmRv Y2Jvb2sgYi9kb2MvaW5kZXguZG9jYm9vawppbmRleCAyMDcxZmEzLi45MGNlODgzIDEwMDY0NAot LS0gYS9kb2MvaW5kZXguZG9jYm9vaworKysgYi9kb2MvaW5kZXguZG9jYm9vawpAQCAtMjIwLDYg KzIyMCwxMiBAQCBSaHl0aG0gZXhlcmNpc2VzIGZvY3VzIG9uIHRpbWluZyByYXRoZXIgdGhhbiBw aXRjaC4gSW4gdGhlIGNsYXBwaW5nIG1vZGUsICZtaW51ZQogbWljcm9waG9uZSBpbnB1dCBhbmQg Y29tcGFyZXMgdGhlIG9uc2V0cyB0byB0aGUgdGFyZ2V0IHBhdHRlcm4uCiA8L3BhcmE+CiAKKzxw YXJhPgorVGhlIDxndWlsYWJlbD5FYXN5IHdpdGggcmVzdHM8L2d1aWxhYmVsPiBhbmQgPGd1aWxh YmVsPk1lZGl1bSB3aXRoIHJlc3RzPC9ndWlsYWJlbD4gY2F0ZWdvcmllcyBhZGQKK3NpbGVudCBw b3NpdGlvbnMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgbm90ZS1vbmx5IHBhdHRlcm5zLiBMaXN0ZW5p bmcgZXhlcmNpc2VzIGF2b2lkIGNob2ljZXMgdGhhdAorc291bmQgaWRlbnRpY2FsLCB3aGlsZSA8 Z3VpbGFiZWw+UmVhZCBhbmQgY2xhcDwvZ3VpbGFiZWw+IGluY2x1ZGVzIGV2ZXJ5IG1peGVkIG5v dGUtYW5kLXJlc3QgcGF0dGVybi4KKzwvcGFyYT4KKwogPHNjcmVlbnNob3Q+CiAgIDxzY3JlZW5p bmZvPiZtaW51ZXQ7IGNsYXBwaW5nIGV4ZXJjaXNlPC9zY3JlZW5pbmZvPgogICA8bWVkaWFvYmpl Y3Q+CmRpZmYgLS1naXQgYS9zcmMvYXBwL0NNYWtlTGlzdHMudHh0IGIvc3JjL2FwcC9DTWFrZUxp c3RzLnR4dAppbmRleCBhMTJlNTQwLi45YmM2NjExIDEwMDY0NAotLS0gYS9zcmMvYXBwL0NNYWtl TGlzdHMudHh0CisrKyBiL3NyYy9hcHAvQ01ha2VMaXN0cy50eHQKQEAgLTMzMCw2ICszMzAsMTUg QEAgaWYoTk9UIE1JTlVFVF9NT0JJTEVfUExBVEZPUk0pCiAgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKG1pbnVldCBQUklWQVRFIEtGNjo6Q3Jhc2gpCiBlbmRpZigpCiAKK2lmKEJVSUxEX1RFU1RJ TkcgQU5EIE5PVCBNSU5VRVRfTU9CSUxFX1BMQVRGT1JNKQorICAgIGFkZF9leGVjdXRhYmxlKHJo eXRobXJlc3R0ZXN0IGF1dG90ZXN0cy9yaHl0aG1yZXN0dGVzdC5jcHApCisgICAgdGFyZ2V0X2Nv bXBpbGVfZGVmaW5pdGlvbnMoCisgICAgICAgIHJoeXRobXJlc3R0ZXN0IFBSSVZBVEUgTUlOVUVU X1NPVVJDRV9ESVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iCisgICAgKQorICAgIHRhcmdldF9saW5r X2xpYnJhcmllcyhyaHl0aG1yZXN0dGVzdCBRdDo6Q29yZSBRdDo6VGVzdCBNaW51ZXQ6OlV0aWxz KQorICAgIGFkZF90ZXN0KE5BTUUgcmh5dGhtcmVzdHRlc3QgQ09NTUFORCByaHl0aG1yZXN0dGVz dCkKK2VuZGlmKCkKKwogaWYoTk9UIE1JTlVFVF9NT0JJTEVfUExBVEZPUk0pCiAgICAgaW5zdGFs bChUQVJHRVRTIG1pbnVldCAke0tERV9JTlNUQUxMX1RBUkdFVFNfREVGQVVMVF9BUkdTfSkKICAg ICBpbnN0YWxsKFBST0dSQU1TIG9yZy5rZGUubWludWV0LmRlc2t0b3AgREVTVElOQVRJT04gJHtL REVfSU5TVEFMTF9BUFBESVJ9KQpkaWZmIC0tZ2l0IGEvc3JjL2FwcC9hdXRvdGVzdHMvcmh5dGht cmVzdHRlc3QuY3BwIGIvc3JjL2FwcC9hdXRvdGVzdHMvcmh5dGhtcmVzdHRlc3QuY3BwCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1OGY2Y2IKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvYXBwL2F1dG90ZXN0cy9yaHl0aG1yZXN0dGVzdC5jcHAKQEAgLTAsMCArMSwyODYgQEAK Ky8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjYgU2FuZHJvIEFuZHJhZGUgPHNhbmRyb2Fu ZHJhZGVAa2RlLm9yZz4KKy8vCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1v ci1sYXRlcgorCisjaW5jbHVkZSA8dXRpbHMvcmh5dGhtdG9rZW4uaD4KKworI2luY2x1ZGUgPFFG aWxlPgorI2luY2x1ZGUgPFFKc29uQXJyYXk+CisjaW5jbHVkZSA8UUpzb25Eb2N1bWVudD4KKyNp bmNsdWRlIDxRSnNvbk9iamVjdD4KKyNpbmNsdWRlIDxRU2V0PgorI2luY2x1ZGUgPFFUZXN0Pgor CisjaW5jbHVkZSA8dXRpbGl0eT4KKwordXNpbmcgbmFtZXNwYWNlIFF0OjpTdHJpbmdMaXRlcmFs czsKKworbmFtZXNwYWNlCit7CitRSnNvbkFycmF5IGxvYWRBcnJheShjb25zdCBRU3RyaW5nICZy ZWxhdGl2ZVBhdGgsIGNvbnN0IFFTdHJpbmcgJmFycmF5TmFtZSkKK3sKKyAgICBRRmlsZSBmaWxl KHUiJTEvJTIiX3MuYXJnKFFTdHJpbmdMaXRlcmFsKE1JTlVFVF9TT1VSQ0VfRElSKSwgcmVsYXRp dmVQYXRoKSk7CisgICAgaWYgKCFmaWxlLm9wZW4oUUlPRGV2aWNlOjpSZWFkT25seSkpIHsKKyAg ICAgICAgcmV0dXJuIHt9OworICAgIH0KKyAgICByZXR1cm4gUUpzb25Eb2N1bWVudDo6ZnJvbUpz b24oZmlsZS5yZWFkQWxsKCkpLm9iamVjdCgpLnZhbHVlKGFycmF5TmFtZSkudG9BcnJheSgpOwor fQorCitib29sIGhhc1RhZyhjb25zdCBRSnNvbk9iamVjdCAmZGVmaW5pdGlvbiwgY29uc3QgUVN0 cmluZyAmdGFnKQoreworICAgIHJldHVybiBkZWZpbml0aW9uLnZhbHVlKHUidGFncyJfcykudG9B cnJheSgpLmNvbnRhaW5zKHRhZyk7Cit9CisKK1FKc29uQXJyYXkgZGVmaW5pdGlvbnNXaXRoVGFn cyhjb25zdCBRSnNvbkFycmF5ICZkZWZpbml0aW9ucywgY29uc3QgUVN0cmluZ0xpc3QgJnRhZ3Mp Cit7CisgICAgUUpzb25BcnJheSBmaWx0ZXJlZDsKKyAgICBmb3IgKGNvbnN0IFFKc29uVmFsdWUg JnZhbHVlIDogZGVmaW5pdGlvbnMpIHsKKyAgICAgICAgY29uc3QgUUpzb25PYmplY3QgZGVmaW5p dGlvbiA9IHZhbHVlLnRvT2JqZWN0KCk7CisgICAgICAgIGJvb2wgbWF0Y2hlcyA9IHRydWU7Cisg ICAgICAgIGZvciAoY29uc3QgUVN0cmluZyAmdGFnIDogdGFncykgeworICAgICAgICAgICAgaWYg KCFoYXNUYWcoZGVmaW5pdGlvbiwgdGFnKSkgeworICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBm YWxzZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor ICAgICAgICBpZiAobWF0Y2hlcykgeworICAgICAgICAgICAgZmlsdGVyZWQuYXBwZW5kKGRlZmlu aXRpb24pOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBmaWx0ZXJlZDsKK30KKworUVN0 cmluZ0xpc3Qgc3RyaW5nTGlzdChjb25zdCBRSnNvbkFycmF5ICZ2YWx1ZXMpCit7CisgICAgUVN0 cmluZ0xpc3Qgc3RyaW5nczsKKyAgICBmb3IgKGNvbnN0IFFKc29uVmFsdWUgJnZhbHVlIDogdmFs dWVzKSB7CisgICAgICAgIHN0cmluZ3MuYXBwZW5kKHZhbHVlLnRvU3RyaW5nKCkpOworICAgIH0K KyAgICByZXR1cm4gc3RyaW5nczsKK30KKworUUpzb25PYmplY3QgcmVzdENhdGVnb3J5KGNvbnN0 IFFTdHJpbmcgJnJlbGF0aXZlUGF0aCkKK3sKKyAgICBjb25zdCBRSnNvbkFycmF5IGV4ZXJjaXNl cyA9IGxvYWRBcnJheShyZWxhdGl2ZVBhdGgsIHUiZXhlcmNpc2VzIl9zKTsKKyAgICBpZiAoZXhl cmNpc2VzLmlzRW1wdHkoKSkgeworICAgICAgICByZXR1cm4ge307CisgICAgfQorICAgIGNvbnN0 IFFKc29uQXJyYXkgY2hpbGRyZW4gPSBleGVyY2lzZXMuZmlyc3QoKS50b09iamVjdCgpLnZhbHVl KHUiY2hpbGRyZW4iX3MpLnRvQXJyYXkoKTsKKyAgICBmb3IgKGNvbnN0IFFKc29uVmFsdWUgJnZh bHVlIDogY2hpbGRyZW4pIHsKKyAgICAgICAgY29uc3QgUUpzb25PYmplY3QgY2F0ZWdvcnkgPSB2 YWx1ZS50b09iamVjdCgpOworICAgICAgICBpZiAoY2F0ZWdvcnkudmFsdWUodSJuYW1lIl9zKS50 b1N0cmluZygpLmVuZHNXaXRoKHUid2l0aCByZXN0cyJfcykpIHsKKyAgICAgICAgICAgIHJldHVy biBjYXRlZ29yeTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4ge307Cit9CisKK1FTdHJp bmcgbmFtZUZvclNlcXVlbmNlKGNvbnN0IFFKc29uQXJyYXkgJmRlZmluaXRpb25zLCBjb25zdCBR U3RyaW5nICZzZXF1ZW5jZSkKK3sKKyAgICBmb3IgKGNvbnN0IFFKc29uVmFsdWUgJnZhbHVlIDog ZGVmaW5pdGlvbnMpIHsKKyAgICAgICAgY29uc3QgUUpzb25PYmplY3QgZGVmaW5pdGlvbiA9IHZh bHVlLnRvT2JqZWN0KCk7CisgICAgICAgIGlmIChkZWZpbml0aW9uLnZhbHVlKHUic2VxdWVuY2Ui X3MpLnRvU3RyaW5nKCkgPT0gc2VxdWVuY2UpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWZpbml0 aW9uLnZhbHVlKHUibmFtZSJfcykudG9TdHJpbmcoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBy ZXR1cm4ge307Cit9CisKK1FTdHJpbmcgb25zZXRTaWduYXR1cmUoY29uc3QgUVN0cmluZyAmc2Vx dWVuY2UpCit7CisgICAgUVN0cmluZ0xpc3Qgb25zZXRzOworICAgIGRvdWJsZSBjdXJzb3IgPSAw LjA7CisgICAgZm9yIChjb25zdCBRU3RyaW5nICZ0ZXh0IDogc2VxdWVuY2Uuc3BsaXQodScgJywg UXQ6OlNraXBFbXB0eVBhcnRzKSkgeworICAgICAgICBjb25zdCBNaW51ZXQ6OlJoeXRobVRva2Vu IHRva2VuID0gTWludWV0OjpwYXJzZVJoeXRobVRva2VuKHRleHQpOworICAgICAgICBpZiAoIXRv a2VuLnJlc3QpIHsKKyAgICAgICAgICAgIG9uc2V0cy5hcHBlbmQoUVN0cmluZzo6bnVtYmVyKGN1 cnNvciwgJ2YnLCAyKSk7CisgICAgICAgIH0KKyAgICAgICAgY3Vyc29yICs9IHRva2VuLnF1YXJ0 ZXJOb3RlQmVhdHMoKTsKKyAgICB9CisgICAgcmV0dXJuIG9uc2V0cy5qb2luKHUnLCcpOworfQor CitRU2V0PFFTdHJpbmc+IGV4cGVjdGVkUmVzdFZhcmlhbnRzKGNvbnN0IFFKc29uQXJyYXkgJmJh c2VEZWZpbml0aW9ucykKK3sKKyAgICBRU2V0PFFTdHJpbmc+IHZhcmlhbnRzOworICAgIGZvciAo Y29uc3QgUUpzb25WYWx1ZSAmdmFsdWUgOiBiYXNlRGVmaW5pdGlvbnMpIHsKKyAgICAgICAgY29u c3QgUVN0cmluZ0xpc3QgdG9rZW5zID0gdmFsdWUudG9PYmplY3QoKS52YWx1ZSh1InNlcXVlbmNl Il9zKS50b1N0cmluZygpLnNwbGl0KHUnICcsIFF0OjpTa2lwRW1wdHlQYXJ0cyk7CisgICAgICAg IGNvbnN0IGludCBhbGxSZXN0TWFzayA9ICgxIDw8IHRva2Vucy5zaXplKCkpIC0gMTsKKyAgICAg ICAgZm9yIChpbnQgbWFzayA9IDE7IG1hc2sgPCBhbGxSZXN0TWFzazsgKyttYXNrKSB7CisgICAg ICAgICAgICBRU3RyaW5nTGlzdCB2YXJpYW50ID0gdG9rZW5zOworICAgICAgICAgICAgZm9yIChp bnQgdG9rZW5JbmRleCA9IDA7IHRva2VuSW5kZXggPCB2YXJpYW50LnNpemUoKTsgKyt0b2tlbklu ZGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKG1hc2sgJiAoMSA8PCB0b2tlbkluZGV4KSkgewor ICAgICAgICAgICAgICAgICAgICB2YXJpYW50W3Rva2VuSW5kZXhdLnByZXBlbmQodSdyJyk7Cisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgdmFyaWFudHMuaW5z ZXJ0KHZhcmlhbnQuam9pbih1JyAnKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHZh cmlhbnRzOworfQorfQorCitjbGFzcyBSaHl0aG1SZXN0VGVzdCA6IHB1YmxpYyBRT2JqZWN0Cit7 CisgICAgUV9PQkpFQ1QKKworcHJpdmF0ZSBRX1NMT1RTOgorICAgIHZvaWQgaW5pdFRlc3RDYXNl KCk7CisgICAgdm9pZCBwYXJzZXNSaHl0aG1Ub2tlbnMoKTsKKyAgICB2b2lkIGNvbnRhaW5zRXZl cnlNaXhlZFJlc3RWYXJpYW50KCk7CisgICAgdm9pZCBjYXRlZ29yeUNvdW50c0FyZVN0YWJsZSgp OworICAgIHZvaWQgY2F0ZWdvcnlGaWx0ZXJzTWF0Y2hQcmFjdGljZU1vZGVzKCk7CisgICAgdm9p ZCBjb25zZWN1dGl2ZVNpeHRlZW50aHNVc2VCZWFtcygpOworICAgIHZvaWQgbGlzdGVuaW5nUGF0 dGVybnNIYXZlVW5pcXVlT25zZXRzKCk7CisgICAgdm9pZCBldmVyeVBhdHRlcm5GaWxsc09uZUJl YXQoKTsKKworcHJpdmF0ZToKKyAgICBRSnNvbkFycmF5IG1fYmFzZURlZmluaXRpb25zOworICAg IFFKc29uQXJyYXkgbV9yZXN0RGVmaW5pdGlvbnM7CisgICAgUUpzb25BcnJheSBtX2FsbERlZmlu aXRpb25zOworfTsKKwordm9pZCBSaHl0aG1SZXN0VGVzdDo6aW5pdFRlc3RDYXNlKCkKK3sKKyAg ICBtX2Jhc2VEZWZpbml0aW9ucyA9IGxvYWRBcnJheSh1ImRhdGEvZGVmaW5pdGlvbnMvcmh5dGht LWRlZmluaXRpb25zLmpzb24iX3MsIHUiZGVmaW5pdGlvbnMiX3MpOworICAgIG1fcmVzdERlZmlu aXRpb25zID0gbG9hZEFycmF5KHUiZGF0YS9kZWZpbml0aW9ucy9yaHl0aG0tcmVzdC1kZWZpbml0 aW9ucy5qc29uIl9zLCB1ImRlZmluaXRpb25zIl9zKTsKKyAgICBRVkVSSUZZKCFtX2Jhc2VEZWZp bml0aW9ucy5pc0VtcHR5KCkpOworICAgIFFWRVJJRlkoIW1fcmVzdERlZmluaXRpb25zLmlzRW1w dHkoKSk7CisKKyAgICBtX2FsbERlZmluaXRpb25zID0gbV9iYXNlRGVmaW5pdGlvbnM7CisgICAg Zm9yIChjb25zdCBRSnNvblZhbHVlICZkZWZpbml0aW9uIDogc3RkOjphc19jb25zdChtX3Jlc3RE ZWZpbml0aW9ucykpIHsKKyAgICAgICAgbV9hbGxEZWZpbml0aW9ucy5hcHBlbmQoZGVmaW5pdGlv bik7CisgICAgfQorfQorCit2b2lkIFJoeXRobVJlc3RUZXN0OjpwYXJzZXNSaHl0aG1Ub2tlbnMo KQoreworICAgIGNvbnN0IE1pbnVldDo6Umh5dGhtVG9rZW4gbm90ZSA9IE1pbnVldDo6cGFyc2VS aHl0aG1Ub2tlbih1IjE2Iik7CisgICAgUVZFUklGWShub3RlLnZhbGlkKTsKKyAgICBRVkVSSUZZ KCFub3RlLnJlc3QpOworICAgIFFWRVJJRlkoIW5vdGUuZG90dGVkKTsKKyAgICBRQ09NUEFSRShu b3RlLmRlbm9taW5hdG9yLCAxNik7CisgICAgUUNPTVBBUkUobm90ZS5xdWFydGVyTm90ZUJlYXRz KCksIDAuMjUpOworCisgICAgY29uc3QgTWludWV0OjpSaHl0aG1Ub2tlbiByZXN0ID0gTWludWV0 OjpwYXJzZVJoeXRobVRva2VuKHUicjguIik7CisgICAgUVZFUklGWShyZXN0LnZhbGlkKTsKKyAg ICBRVkVSSUZZKHJlc3QucmVzdCk7CisgICAgUVZFUklGWShyZXN0LmRvdHRlZCk7CisgICAgUUNP TVBBUkUocmVzdC5kZW5vbWluYXRvciwgOCk7CisgICAgUUNPTVBBUkUocmVzdC5xdWFydGVyTm90 ZUJlYXRzKCksIDAuNzUpOworCisgICAgUVZFUklGWSghTWludWV0OjpwYXJzZVJoeXRobVRva2Vu KHUiciIpLnZhbGlkKTsKKyAgICBRVkVSSUZZKCFNaW51ZXQ6OnBhcnNlUmh5dGhtVG9rZW4odSJy OC4uIikudmFsaWQpOworICAgIFFWRVJJRlkoIU1pbnVldDo6cGFyc2VSaHl0aG1Ub2tlbih1IjAi KS52YWxpZCk7Cit9CisKK3ZvaWQgUmh5dGhtUmVzdFRlc3Q6OmNvbnRhaW5zRXZlcnlNaXhlZFJl c3RWYXJpYW50KCkKK3sKKyAgICBRQ09NUEFSRShtX3Jlc3REZWZpbml0aW9ucy5zaXplKCksIDM4 KTsKKworICAgIFFTZXQ8UVN0cmluZz4gYWN0dWFsU2VxdWVuY2VzOworICAgIGZvciAoY29uc3Qg UUpzb25WYWx1ZSAmdmFsdWUgOiBzdGQ6OmFzX2NvbnN0KG1fcmVzdERlZmluaXRpb25zKSkgewor ICAgICAgICBjb25zdCBRSnNvbk9iamVjdCBkZWZpbml0aW9uID0gdmFsdWUudG9PYmplY3QoKTsK KyAgICAgICAgY29uc3QgUVN0cmluZyBzZXF1ZW5jZSA9IGRlZmluaXRpb24udmFsdWUodSJzZXF1 ZW5jZSJfcykudG9TdHJpbmcoKTsKKyAgICAgICAgUVZFUklGWTIoIWFjdHVhbFNlcXVlbmNlcy5j b250YWlucyhzZXF1ZW5jZSksIHFQcmludGFibGUoc2VxdWVuY2UpKTsKKyAgICAgICAgYWN0dWFs U2VxdWVuY2VzLmluc2VydChzZXF1ZW5jZSk7CisKKyAgICAgICAgYm9vbCBjb250YWluc05vdGUg PSBmYWxzZTsKKyAgICAgICAgYm9vbCBjb250YWluc1Jlc3QgPSBmYWxzZTsKKyAgICAgICAgZm9y IChjb25zdCBRU3RyaW5nICZ0ZXh0IDogc2VxdWVuY2Uuc3BsaXQodScgJywgUXQ6OlNraXBFbXB0 eVBhcnRzKSkgeworICAgICAgICAgICAgY29uc3QgTWludWV0OjpSaHl0aG1Ub2tlbiB0b2tlbiA9 IE1pbnVldDo6cGFyc2VSaHl0aG1Ub2tlbih0ZXh0KTsKKyAgICAgICAgICAgIFFWRVJJRlkyKHRv a2VuLnZhbGlkLCBxUHJpbnRhYmxlKHRleHQpKTsKKyAgICAgICAgICAgIGNvbnRhaW5zUmVzdCB8 PSB0b2tlbi5yZXN0OworICAgICAgICAgICAgY29udGFpbnNOb3RlIHw9ICF0b2tlbi5yZXN0Owor ICAgICAgICB9CisgICAgICAgIFFWRVJJRlkoY29udGFpbnNSZXN0KTsKKyAgICAgICAgUVZFUklG WShjb250YWluc05vdGUpOworICAgICAgICBRVkVSSUZZKCFkZWZpbml0aW9uLnZhbHVlKHUibmFt ZSJfcykudG9TdHJpbmcoKS5pc0VtcHR5KCkpOworICAgIH0KKworICAgIGNvbnN0IFFKc29uQXJy YXkgbWVkaXVtQmFzZXMgPSBkZWZpbml0aW9uc1dpdGhUYWdzKG1fYmFzZURlZmluaXRpb25zLCB7 dSJyaHl0aG0iX3MsIHUibWVkaXVtIl9zfSk7CisgICAgUUNPTVBBUkUoYWN0dWFsU2VxdWVuY2Vz LCBleHBlY3RlZFJlc3RWYXJpYW50cyhtZWRpdW1CYXNlcykpOworCisgICAgY29uc3QgUUpzb25B cnJheSBlYXN5QmFzZXMgPSBkZWZpbml0aW9uc1dpdGhUYWdzKG1fYmFzZURlZmluaXRpb25zLCB7 dSJyaHl0aG0iX3MsIHUiZWFzeSJfc30pOworICAgIGNvbnN0IFFTZXQ8UVN0cmluZz4gZWFzeVZh cmlhbnRzID0gZXhwZWN0ZWRSZXN0VmFyaWFudHMoZWFzeUJhc2VzKTsKKyAgICBRU2V0PFFTdHJp bmc+IHRhZ2dlZEVhc3lWYXJpYW50czsKKyAgICBmb3IgKGNvbnN0IFFKc29uVmFsdWUgJnZhbHVl IDogc3RkOjphc19jb25zdChtX3Jlc3REZWZpbml0aW9ucykpIHsKKyAgICAgICAgY29uc3QgUUpz b25PYmplY3QgZGVmaW5pdGlvbiA9IHZhbHVlLnRvT2JqZWN0KCk7CisgICAgICAgIGlmIChoYXNU YWcoZGVmaW5pdGlvbiwgdSJlYXN5LXdpdGgtcmVzdHMiX3MpKSB7CisgICAgICAgICAgICB0YWdn ZWRFYXN5VmFyaWFudHMuaW5zZXJ0KGRlZmluaXRpb24udmFsdWUodSJzZXF1ZW5jZSJfcykudG9T dHJpbmcoKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgUUNPTVBBUkUodGFnZ2VkRWFzeVZhcmlh bnRzLCBlYXN5VmFyaWFudHMpOworfQorCit2b2lkIFJoeXRobVJlc3RUZXN0OjpjYXRlZ29yeUNv dW50c0FyZVN0YWJsZSgpCit7CisgICAgUUNPTVBBUkUoZGVmaW5pdGlvbnNXaXRoVGFncyhtX2Fs bERlZmluaXRpb25zLCB7dSJyaHl0aG0iX3MsIHUiZWFzeS13aXRoLXJlc3RzIl9zfSkuc2l6ZSgp LCAxMCk7CisgICAgUUNPTVBBUkUoZGVmaW5pdGlvbnNXaXRoVGFncyhtX2FsbERlZmluaXRpb25z LCB7dSJyaHl0aG0iX3MsIHUiZWFzeS13aXRoLXJlc3RzIl9zLCB1InJlc3QtbGlzdGVuaW5nIl9z fSkuc2l6ZSgpLCA3KTsKKyAgICBRQ09NUEFSRShkZWZpbml0aW9uc1dpdGhUYWdzKG1fYWxsRGVm aW5pdGlvbnMsIHt1InJoeXRobSJfcywgdSJtZWRpdW0td2l0aC1yZXN0cyJfc30pLnNpemUoKSwg NDYpOworICAgIFFDT01QQVJFKGRlZmluaXRpb25zV2l0aFRhZ3MobV9hbGxEZWZpbml0aW9ucywg e3Uicmh5dGhtIl9zLCB1Im1lZGl1bS13aXRoLXJlc3RzIl9zLCB1InJlc3QtbGlzdGVuaW5nIl9z fSkuc2l6ZSgpLCAxNSk7Cit9CisKK3ZvaWQgUmh5dGhtUmVzdFRlc3Q6OmNhdGVnb3J5RmlsdGVy c01hdGNoUHJhY3RpY2VNb2RlcygpCit7CisgICAgY29uc3QgUUpzb25PYmplY3QgZWFzeSA9IHJl c3RDYXRlZ29yeSh1ImRhdGEvZXhlcmNpc2VzL3JoeXRobS1lYXN5LXJlc3RzLmpzb24iX3MpOwor ICAgIGNvbnN0IFFKc29uT2JqZWN0IG1lZGl1bSA9IHJlc3RDYXRlZ29yeSh1ImRhdGEvZXhlcmNp c2VzL3JoeXRobS1tZWRpdW0tcmVzdHMuanNvbiJfcyk7CisgICAgUVZFUklGWSghZWFzeS5pc0Vt cHR5KCkpOworICAgIFFWRVJJRlkoIW1lZGl1bS5pc0VtcHR5KCkpOworCisgICAgUUNPTVBBUkUo ZGVmaW5pdGlvbnNXaXRoVGFncyhtX2FsbERlZmluaXRpb25zLCBzdHJpbmdMaXN0KGVhc3kudmFs dWUodSJhbmQtdGFncyJfcykudG9BcnJheSgpKSkuc2l6ZSgpLCA3KTsKKyAgICBRQ09NUEFSRShk ZWZpbml0aW9uc1dpdGhUYWdzKG1fYWxsRGVmaW5pdGlvbnMsIHN0cmluZ0xpc3QoZWFzeS52YWx1 ZSh1ImNsYXBwaW5nLWFuZC10YWdzIl9zKS50b0FycmF5KCkpKS5zaXplKCksIDEwKTsKKyAgICBR Q09NUEFSRShkZWZpbml0aW9uc1dpdGhUYWdzKG1fYWxsRGVmaW5pdGlvbnMsIHN0cmluZ0xpc3Qo bWVkaXVtLnZhbHVlKHUiYW5kLXRhZ3MiX3MpLnRvQXJyYXkoKSkpLnNpemUoKSwgMTUpOworICAg IFFDT01QQVJFKGRlZmluaXRpb25zV2l0aFRhZ3MobV9hbGxEZWZpbml0aW9ucywgc3RyaW5nTGlz dChtZWRpdW0udmFsdWUodSJjbGFwcGluZy1hbmQtdGFncyJfcykudG9BcnJheSgpKSkuc2l6ZSgp LCA0Nik7Cit9CisKK3ZvaWQgUmh5dGhtUmVzdFRlc3Q6OmNvbnNlY3V0aXZlU2l4dGVlbnRoc1Vz ZUJlYW1zKCkKK3sKKyAgICBjb25zdCBRU3RyaW5nIHBhaXIgPSB1Ilx1RTFGMFx1RTFGOVx1RTFG NCJfczsKKyAgICBjb25zdCBRU3RyaW5nIHRyaXBsZSA9IHUiXHVFMUYwXHVFMUY5XHVFMUY0XHVF MUY5XHVFMUY0Il9zOworICAgIGNvbnN0IFFTdHJpbmcgc2l4dGVlbnRoUmVzdCA9IHUiXHVFNEU3 Il9zOworICAgIGNvbnN0IFFTdHJpbmcgZWlnaHRoUmVzdCA9IHUiXHVFNEU2Il9zOworICAgIGNv bnN0IFFTdHJpbmcgaXNvbGF0ZWRTaXh0ZWVudGggPSB1Ilx1RTFEOSJfczsKKworICAgIFFDT01Q QVJFKG5hbWVGb3JTZXF1ZW5jZShtX3Jlc3REZWZpbml0aW9ucywgdSJyMTYgMTYgMTYgMTYiX3Mp LCBzaXh0ZWVudGhSZXN0ICsgdScgJyArIHRyaXBsZSk7CisgICAgUUNPTVBBUkUobmFtZUZvclNl cXVlbmNlKG1fcmVzdERlZmluaXRpb25zLCB1IjE2IHIxNiAxNiAxNiJfcyksIGlzb2xhdGVkU2l4 dGVlbnRoICsgdScgJyArIHNpeHRlZW50aFJlc3QgKyB1JyAnICsgcGFpcik7CisgICAgUUNPTVBB UkUobmFtZUZvclNlcXVlbmNlKG1fcmVzdERlZmluaXRpb25zLCB1InIxNiByMTYgMTYgMTYiX3Mp LCBzaXh0ZWVudGhSZXN0ICsgdScgJyArIHNpeHRlZW50aFJlc3QgKyB1JyAnICsgcGFpcik7Cisg ICAgUUNPTVBBUkUobmFtZUZvclNlcXVlbmNlKG1fcmVzdERlZmluaXRpb25zLCB1IjE2IDE2IHIx NiAxNiJfcyksIHBhaXIgKyB1JyAnICsgc2l4dGVlbnRoUmVzdCArIHUnICcgKyBpc29sYXRlZFNp eHRlZW50aCk7CisgICAgUUNPTVBBUkUobmFtZUZvclNlcXVlbmNlKG1fcmVzdERlZmluaXRpb25z LCB1IjE2IDE2IDE2IHIxNiJfcyksIHRyaXBsZSArIHUnICcgKyBzaXh0ZWVudGhSZXN0KTsKKyAg ICBRQ09NUEFSRShuYW1lRm9yU2VxdWVuY2UobV9yZXN0RGVmaW5pdGlvbnMsIHUicjE2IDE2IDE2 IHIxNiJfcyksIHNpeHRlZW50aFJlc3QgKyB1JyAnICsgcGFpciArIHUnICcgKyBzaXh0ZWVudGhS ZXN0KTsKKyAgICBRQ09NUEFSRShuYW1lRm9yU2VxdWVuY2UobV9yZXN0RGVmaW5pdGlvbnMsIHUi MTYgMTYgcjE2IHIxNiJfcyksIHBhaXIgKyB1JyAnICsgc2l4dGVlbnRoUmVzdCArIHUnICcgKyBz aXh0ZWVudGhSZXN0KTsKKyAgICBRQ09NUEFSRShuYW1lRm9yU2VxdWVuY2UobV9yZXN0RGVmaW5p dGlvbnMsIHUicjggMTYgMTYiX3MpLCBlaWdodGhSZXN0ICsgdScgJyArIHBhaXIpOworICAgIFFD T01QQVJFKG5hbWVGb3JTZXF1ZW5jZShtX3Jlc3REZWZpbml0aW9ucywgdSIxNiAxNiByOCJfcyks IHBhaXIgKyB1JyAnICsgZWlnaHRoUmVzdCk7Cit9CisKK3ZvaWQgUmh5dGhtUmVzdFRlc3Q6Omxp c3RlbmluZ1BhdHRlcm5zSGF2ZVVuaXF1ZU9uc2V0cygpCit7CisgICAgZm9yIChjb25zdCBRU3Ry aW5nICZjYXRlZ29yeSA6IHt1ImVhc3ktd2l0aC1yZXN0cyJfcywgdSJtZWRpdW0td2l0aC1yZXN0 cyJfc30pIHsKKyAgICAgICAgY29uc3QgUUpzb25BcnJheSBkZWZpbml0aW9ucyA9IGRlZmluaXRp b25zV2l0aFRhZ3MobV9hbGxEZWZpbml0aW9ucywge3Uicmh5dGhtIl9zLCBjYXRlZ29yeSwgdSJy ZXN0LWxpc3RlbmluZyJfc30pOworICAgICAgICBRU2V0PFFTdHJpbmc+IHNpZ25hdHVyZXM7Cisg ICAgICAgIGZvciAoY29uc3QgUUpzb25WYWx1ZSAmdmFsdWUgOiBkZWZpbml0aW9ucykgeworICAg ICAgICAgICAgY29uc3QgUVN0cmluZyBzaWduYXR1cmUgPSBvbnNldFNpZ25hdHVyZSh2YWx1ZS50 b09iamVjdCgpLnZhbHVlKHUic2VxdWVuY2UiX3MpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAg UVZFUklGWTIoIXNpZ25hdHVyZXMuY29udGFpbnMoc2lnbmF0dXJlKSwgcVByaW50YWJsZShzaWdu YXR1cmUpKTsKKyAgICAgICAgICAgIHNpZ25hdHVyZXMuaW5zZXJ0KHNpZ25hdHVyZSk7CisgICAg ICAgIH0KKyAgICAgICAgUUNPTVBBUkUoc2lnbmF0dXJlcy5zaXplKCksIGRlZmluaXRpb25zLnNp emUoKSk7CisgICAgfQorfQorCit2b2lkIFJoeXRobVJlc3RUZXN0OjpldmVyeVBhdHRlcm5GaWxs c09uZUJlYXQoKQoreworICAgIGZvciAoY29uc3QgUUpzb25WYWx1ZSAmdmFsdWUgOiBzdGQ6OmFz X2NvbnN0KG1fYWxsRGVmaW5pdGlvbnMpKSB7CisgICAgICAgIGNvbnN0IFFTdHJpbmcgc2VxdWVu Y2UgPSB2YWx1ZS50b09iamVjdCgpLnZhbHVlKHUic2VxdWVuY2UiX3MpLnRvU3RyaW5nKCk7Cisg ICAgICAgIGRvdWJsZSBkdXJhdGlvbiA9IDAuMDsKKyAgICAgICAgZm9yIChjb25zdCBRU3RyaW5n ICZ0ZXh0IDogc2VxdWVuY2Uuc3BsaXQodScgJywgUXQ6OlNraXBFbXB0eVBhcnRzKSkgeworICAg ICAgICAgICAgY29uc3QgTWludWV0OjpSaHl0aG1Ub2tlbiB0b2tlbiA9IE1pbnVldDo6cGFyc2VS aHl0aG1Ub2tlbih0ZXh0KTsKKyAgICAgICAgICAgIFFWRVJJRlkyKHRva2VuLnZhbGlkLCBxUHJp bnRhYmxlKHRleHQpKTsKKyAgICAgICAgICAgIGR1cmF0aW9uICs9IHRva2VuLnF1YXJ0ZXJOb3Rl QmVhdHMoKTsKKyAgICAgICAgfQorICAgICAgICBRVkVSSUZZMihxQWJzKGR1cmF0aW9uIC0gMS4w KSA8IDAuMDAwMSwgcVByaW50YWJsZShzZXF1ZW5jZSkpOworICAgIH0KK30KKworUVRFU1RfR1VJ TEVTU19NQUlOKFJoeXRobVJlc3RUZXN0KQorCisjaW5jbHVkZSAicmh5dGhtcmVzdHRlc3QubW9j IgpkaWZmIC0tZ2l0IGEvc3JjL2FwcC9leGVyY2lzZWNhdGFsb2djb250cm9sbGVyLmNwcCBiL3Ny Yy9hcHAvZXhlcmNpc2VjYXRhbG9nY29udHJvbGxlci5jcHAKaW5kZXggZmU1MTczNi4uMTE5MDM0 NSAxMDA2NDQKLS0tIGEvc3JjL2FwcC9leGVyY2lzZWNhdGFsb2djb250cm9sbGVyLmNwcAorKysg Yi9zcmMvYXBwL2V4ZXJjaXNlY2F0YWxvZ2NvbnRyb2xsZXIuY3BwCkBAIC0yODMsNiArMjgzLDEz IEBAIFFKc29uQXJyYXkgRXhlcmNpc2VDYXRhbG9nQ29udHJvbGxlcjo6YXBwbHlEZWZpbml0aW9u cyhRSnNvbkFycmF5IGV4ZXJjaXNlcywgUUpzCiAgICAgICAgIGlmIChpMS0+aXNPYmplY3QoKSkg ewogICAgICAgICAgICAgUUpzb25PYmplY3QgZXhlcmNpc2VPYmplY3QgPSBpMS0+dG9PYmplY3Qo KTsKICAgICAgICAgICAgIFFKc29uQXJyYXkgZmlsdGVyZWREZWZpbml0aW9ucyA9IGRlZmluaXRp b25zOworICAgICAgICAgICAgUUpzb25BcnJheSBjbGFwcGluZ0RlZmluaXRpb25zOworICAgICAg ICAgICAgaWYgKGV4ZXJjaXNlT2JqZWN0LnZhbHVlKHUiY2xhcHBpbmctYW5kLXRhZ3MiX3MpLmlz QXJyYXkoKSkgeworICAgICAgICAgICAgICAgIGNsYXBwaW5nRGVmaW5pdGlvbnMgPSBkZWZpbml0 aW9uczsKKyAgICAgICAgICAgICAgICBRSnNvbk9iamVjdCBjbGFwcGluZ0ZpbHRlcjsKKyAgICAg ICAgICAgICAgICBjbGFwcGluZ0ZpbHRlci5pbnNlcnQodSJhbmQtdGFncyJfcywgZXhlcmNpc2VP YmplY3QudGFrZSh1ImNsYXBwaW5nLWFuZC10YWdzIl9zKSk7CisgICAgICAgICAgICAgICAgZmls dGVyRGVmaW5pdGlvbnMoY2xhcHBpbmdEZWZpbml0aW9ucywgY2xhcHBpbmdGaWx0ZXIsIHUiYW5k LXRhZ3MiX3MsIERlZmluaXRpb25GaWx0ZXJpbmdNb2RlOjpBbmRGaWx0ZXJpbmcpOworICAgICAg ICAgICAgfQogICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3QgZXhlcmNpc2VPYmplY3RLZXlz ID0gZXhlcmNpc2VPYmplY3Qua2V5cygpOwogICAgICAgICAgICAgaWYgKGV4ZXJjaXNlT2JqZWN0 S2V5cy5jb250YWlucyh1ImFuZC10YWdzIl9zKSAmJiBleGVyY2lzZU9iamVjdFt1ImFuZC10YWdz Il9zXS5pc0FycmF5KCkpIHsKICAgICAgICAgICAgICAgICBmaWx0ZXJEZWZpbml0aW9ucyhmaWx0 ZXJlZERlZmluaXRpb25zLCBleGVyY2lzZU9iamVjdCwgdSJhbmQtdGFncyJfcywgRGVmaW5pdGlv bkZpbHRlcmluZ01vZGU6OkFuZEZpbHRlcmluZyk7CkBAIC0zMDYsNiArMzEzLDkgQEAgUUpzb25B cnJheSBFeGVyY2lzZUNhdGFsb2dDb250cm9sbGVyOjphcHBseURlZmluaXRpb25zKFFKc29uQXJy YXkgZXhlcmNpc2VzLCBRSnMKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg IH0KICAgICAgICAgICAgICAgICBleGVyY2lzZU9iamVjdC5pbnNlcnQodSJvcHRpb25zIl9zLCBm aWx0ZXJlZERlZmluaXRpb25zKTsKKyAgICAgICAgICAgICAgICBpZiAoIWNsYXBwaW5nRGVmaW5p dGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGV4ZXJjaXNlT2JqZWN0Lmlu c2VydCh1InJoeXRobUNsYXBwaW5nT3B0aW9ucyJfcywgY2xhcHBpbmdEZWZpbml0aW9ucyk7Cisg ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgZXhlcmNpc2VzW2kx IC0gZXhlcmNpc2VzQmVnaW5dID0gZXhlcmNpc2VPYmplY3Q7CiAgICAgICAgIH0KZGlmZiAtLWdp dCBhL3NyYy9hcHAvZXhlcmNpc2VzZXNzaW9uY29udHJvbGxlci5jcHAgYi9zcmMvYXBwL2V4ZXJj aXNlc2Vzc2lvbmNvbnRyb2xsZXIuY3BwCmluZGV4IGQyZTcwODkuLjU0Mzc4MmQgMTAwNjQ0Ci0t LSBhL3NyYy9hcHAvZXhlcmNpc2VzZXNzaW9uY29udHJvbGxlci5jcHAKKysrIGIvc3JjL2FwcC9l eGVyY2lzZXNlc3Npb25jb250cm9sbGVyLmNwcApAQCAtNCw2ICs0LDggQEAKIAogI2luY2x1ZGUg ImV4ZXJjaXNlc2Vzc2lvbmNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgPHV0aWxzL3JoeXRobXRv a2VuLmg+CisKICNpbmNsdWRlIDxLTG9jYWxpemVkU3RyaW5nPgogCiAjaW5jbHVkZSA8UURlYnVn PgpAQCAtNDU2LDE0ICs0NTgsMjQgQEAgdm9pZCBFeGVyY2lzZVNlc3Npb25Db250cm9sbGVyOjpy YW5kb21seVNlbGVjdEV4ZXJjaXNlT3B0aW9ucyhpbnQgc2VsZWN0ZWRPcHRpb24KICAgICAgICAg fQogCiAgICAgICAgIGZvciAoY29uc3QgUVN0cmluZyAmYWRkaXRpb25hbE5vdGUgOiBhZGRpdGlv bmFsTm90ZXMpIHsKLSAgICAgICAgICAgIFFTdHJpbmcgbm90ZVRleHQgPSBhZGRpdGlvbmFsTm90 ZTsKLSAgICAgICAgICAgIGlmIChpc1JoeXRobSAmJiBub3RlVGV4dC5lbmRzV2l0aChRTGF0aW4x Q2hhcignLicpKSkgewotICAgICAgICAgICAgICAgIG5vdGVUZXh0LmNob3AoMSk7CisgICAgICAg ICAgICBpZiAoaXNSaHl0aG0pIHsKKyAgICAgICAgICAgICAgICBjb25zdCBSaHl0aG1Ub2tlbiBy aHl0aG1Ub2tlbiA9IHBhcnNlUmh5dGhtVG9rZW4oYWRkaXRpb25hbE5vdGUpOworICAgICAgICAg ICAgICAgIGlmICghcmh5dGhtVG9rZW4udmFsaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZmFp bFNlbGVjdGlvbih1IkN1cnJlbnQgZXhlcmNpc2Ugb3B0aW9uIGhhcyBhbiBpbnZhbGlkIHNlcXVl bmNlLiJfcyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJoeXRobVRva2VuLmRlbm9taW5hdG9yID4gbWF4 Tm90ZSkgeworICAgICAgICAgICAgICAgICAgICBtYXhOb3RlID0gcmh5dGhtVG9rZW4uZGVub21p bmF0b3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChyaHl0aG1Ub2tl bi5kZW5vbWluYXRvciA8IG1pbk5vdGUpIHsKKyAgICAgICAgICAgICAgICAgICAgbWluTm90ZSA9 IHJoeXRobVRva2VuLmRlbm9taW5hdG9yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgYm9vbCBvayA9IGZh bHNlOwotICAgICAgICAgICAgY29uc3QgaW50IG5vdGUgPSBub3RlVGV4dC50b0ludCgmb2spOwot ICAgICAgICAgICAgaWYgKCFvayB8fCAoaXNSaHl0aG0gJiYgbm90ZSA8PSAwKSkgeworICAgICAg ICAgICAgY29uc3QgaW50IG5vdGUgPSBhZGRpdGlvbmFsTm90ZS50b0ludCgmb2spOworICAgICAg ICAgICAgaWYgKCFvaykgewogICAgICAgICAgICAgICAgIGZhaWxTZWxlY3Rpb24odSJDdXJyZW50 IGV4ZXJjaXNlIG9wdGlvbiBoYXMgYW4gaW52YWxpZCBzZXF1ZW5jZS4iX3MpOwogICAgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL3NyYy9hcHAv cW1sL0V4ZXJjaXNlQ2xhcHBpbmdWaWV3LnFtbCBiL3NyYy9hcHAvcW1sL0V4ZXJjaXNlQ2xhcHBp bmdWaWV3LnFtbAppbmRleCBlNDdhMDBjLi4xNzI3NjhlIDEwMDY0NAotLS0gYS9zcmMvYXBwL3Ft bC9FeGVyY2lzZUNsYXBwaW5nVmlldy5xbWwKKysrIGIvc3JjL2FwcC9xbWwvRXhlcmNpc2VDbGFw cGluZ1ZpZXcucW1sCkBAIC0yMjgsNiArMjI4LDkgQEAgSXRlbSB7CiAgICAgfQogICAgIGZ1bmN0 aW9uIGR1cmF0aW9uRm9yVG9rZW4odG9rZW46IHN0cmluZyk6IHJlYWwgewogICAgICAgICBsZXQg bm90ZSA9IHRva2VuOworICAgICAgICBpZiAobm90ZS5zdGFydHNXaXRoKCJyIikpIHsKKyAgICAg ICAgICAgIG5vdGUgPSBub3RlLnNsaWNlKDEpOworICAgICAgICB9CiAgICAgICAgIGxldCBkb3R0 ZWQgPSAxLjA7CiAgICAgICAgIGlmIChub3RlLmVuZHNXaXRoKCIuIikpIHsKICAgICAgICAgICAg IGRvdHRlZCA9IDEuNTsKQEAgLTMyNSwxMSArMzI4LDEzIEBAIEl0ZW0gewogICAgICAgICAgICAg bGV0IGZpZ3VyZU9uc2V0cyA9IFtdOwogICAgICAgICAgICAgY29uc3QgZmlndXJlU3RhcnQgPSBj dXJzb3I7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHsKLSAgICAgICAg ICAgICAgICBmaWd1cmVPbnNldHMucHVzaChvbnNldExpc3QubGVuZ3RoKTsKLSAgICAgICAgICAg ICAgICBvbnNldExpc3QucHVzaCh7Ci0gICAgICAgICAgICAgICAgICAgICJmaWd1cmUiOiBmaWd1 cmVJbmRleCwKLSAgICAgICAgICAgICAgICAgICAgInRpbWVNcyI6IGN1cnNvcgotICAgICAgICAg ICAgICAgIH0pOworICAgICAgICAgICAgICAgIGlmICghaXNSZXN0VG9rZW4ocGFydCkpIHsKKyAg ICAgICAgICAgICAgICAgICAgZmlndXJlT25zZXRzLnB1c2gob25zZXRMaXN0Lmxlbmd0aCk7Cisg ICAgICAgICAgICAgICAgICAgIG9uc2V0TGlzdC5wdXNoKHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICJmaWd1cmUiOiBmaWd1cmVJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1l TXMiOiBjdXJzb3IKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQog ICAgICAgICAgICAgICAgIGN1cnNvciArPSBkdXJhdGlvbkZvclRva2VuKHBhcnQpOwogICAgICAg ICAgICAgfQogICAgICAgICAgICAgc3RhdGVzLnB1c2goewpAQCAtMzcxLDYgKzM3Niw5IEBAIEl0 ZW0gewogICAgICAgICByb290LnBlcmZvcm1lZE9uc2V0cyA9IHBlcmZvcm1lZDsKICAgICAgICAg cmVmcmVzaEZpZ3VyZVN0YXRlcyhlbGFwc2VkTXMpOwogICAgIH0KKyAgICBmdW5jdGlvbiBpc1Jl c3RUb2tlbih0b2tlbjogc3RyaW5nKTogYm9vbCB7CisgICAgICAgIHJldHVybiB0b2tlbi5zdGFy dHNXaXRoKCJyIik7CisgICAgfQogICAgIGZ1bmN0aW9uIG1hcFJoeXRobVJvd1gobG9jYWxYOiBy ZWFsKTogcmVhbCB7CiAgICAgICAgIGNvbnN0IGdlb21ldHJ5RGVwZW5kZW5jeSA9IHJoeXRobUZy YW1lLnggKyByaHl0aG1WaWV3cG9ydC54ICsgcmh5dGhtVmlld3BvcnQuY29udGVudFggKyByaHl0 aG1Db250ZW50LnggKyByaHl0aG1Sb3cueCArIHJoeXRobVJvdy5pbXBsaWNpdFdpZHRoOwogICAg ICAgICByZXR1cm4gcmh5dGhtUm93Lm1hcFRvSXRlbShyb290LCBsb2NhbFggKyBnZW9tZXRyeURl cGVuZGVuY3kgKiAwLCAwKS54OwpkaWZmIC0tZ2l0IGEvc3JjL2FwcC9xbWwvUHJhY3RpY2VNb2Rl UGFnZS5xbWwgYi9zcmMvYXBwL3FtbC9QcmFjdGljZU1vZGVQYWdlLnFtbAppbmRleCBkNWFlMWZm Li4zYzIxZThkIDEwMDY0NAotLS0gYS9zcmMvYXBwL3FtbC9QcmFjdGljZU1vZGVQYWdlLnFtbAor KysgYi9zcmMvYXBwL3FtbC9QcmFjdGljZU1vZGVQYWdlLnFtbApAQCAtMjYsNiArMjYsMTAgQEAg S2lyaWdhbWkuUGFnZSB7CiAgICAgICAgICAgICBleGVyY2lzZVtrZXldID0gcGFnZS5jdXJyZW50 RXhlcmNpc2Vba2V5XTsKICAgICAgICAgfQogICAgICAgICBleGVyY2lzZS5pbnB1dE1vZGUgPSBp bnB1dE1vZGU7CisgICAgICAgIGlmIChpbnB1dE1vZGUgPT09ICJjbGFwcGluZyIgJiYgZXhlcmNp c2Uucmh5dGhtQ2xhcHBpbmdPcHRpb25zICE9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgIGV4 ZXJjaXNlLm9wdGlvbnMgPSBleGVyY2lzZS5yaHl0aG1DbGFwcGluZ09wdGlvbnM7CisgICAgICAg IH0KKyAgICAgICAgZGVsZXRlIGV4ZXJjaXNlLnJoeXRobUNsYXBwaW5nT3B0aW9uczsKICAgICAg ICAgaWYgKGlucHV0TW9kZSA9PT0gInNpbmdpbmciKSB7CiAgICAgICAgICAgICBleGVyY2lzZS5z aW5naW5nRXhlcmNpc2VLaW5kID0gcGFnZS5wcmFjdGljZU1vZGU7CiAgICAgICAgIH0KZGlmZiAt LWdpdCBhL3NyYy9wbHVnaW5zL2ZsdWlkc3ludGhzb3VuZGNvbnRyb2xsZXIvZmx1aWRzeW50aHNv dW5kY29udHJvbGxlci5jcHAgYi9zcmMvcGx1Z2lucy9mbHVpZHN5bnRoc291bmRjb250cm9sbGVy L2ZsdWlkc3ludGhzb3VuZGNvbnRyb2xsZXIuY3BwCmluZGV4IGMxZWQ2OTAuLmE3OTliZTQgMTAw NjQ0Ci0tLSBhL3NyYy9wbHVnaW5zL2ZsdWlkc3ludGhzb3VuZGNvbnRyb2xsZXIvZmx1aWRzeW50 aHNvdW5kY29udHJvbGxlci5jcHAKKysrIGIvc3JjL3BsdWdpbnMvZmx1aWRzeW50aHNvdW5kY29u dHJvbGxlci9mbHVpZHN5bnRoc291bmRjb250cm9sbGVyLmNwcApAQCAtNCw2ICs0LDggQEAKIAog I2luY2x1ZGUgImZsdWlkc3ludGhzb3VuZGNvbnRyb2xsZXIuaCIKIAorI2luY2x1ZGUgPHV0aWxz L3JoeXRobXRva2VuLmg+CisKICNpbmNsdWRlIDxLTG9jYWxpemVkU3RyaW5nPgogCiAjaW5jbHVk ZSA8UUNvcmVBcHBsaWNhdGlvbj4KQEAgLTIyMCwyMSArMjIyLDE1IEBAIHZvaWQgRmx1aWRTeW50 aFNvdW5kQ29udHJvbGxlcjo6cHJlcGFyZUZyb21FeGVyY2lzZU9wdGlvbnMoUUpzb25BcnJheSBz ZWxlY3RlZEV4CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBhcHBlbmRFdmVudCg5 LCA4MCwgMTI3LCAxMDAwKig2MC4wL21fdGVtcG8pKTsKICAgICAgICAgICAgIGNvbnN0IFFTdHJp bmdMaXN0IGFkZGl0aW9uYWxOb3RlcyA9IHNlcXVlbmNlLnNwbGl0KFFMYXRpbjFDaGFyKCcgJyks IFF0OjpTa2lwRW1wdHlQYXJ0cyk7Ci0gICAgICAgICAgICBmb3IgKFFTdHJpbmcgYWRkaXRpb25h bE5vdGUgOiBhZGRpdGlvbmFsTm90ZXMpIHsKLSAgICAgICAgICAgICAgICBmbG9hdCBkb3R0ZWQg PSAxOwotICAgICAgICAgICAgICAgIGlmIChhZGRpdGlvbmFsTm90ZS5lbmRzV2l0aCgnLicpKSB7 Ci0gICAgICAgICAgICAgICAgICAgIGRvdHRlZCA9IDEuNTsKLSAgICAgICAgICAgICAgICAgICAg YWRkaXRpb25hbE5vdGUuY2hvcCgxKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgYm9vbCBvayA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGNvbnN0IGludCBkZW5vbWluYXRv ciA9IGFkZGl0aW9uYWxOb3RlLnRvSW50KCZvayk7Ci0gICAgICAgICAgICAgICAgaWYgKCFvayB8 fCBkZW5vbWluYXRvciA8PSAwKSB7CisgICAgICAgICAgICBmb3IgKGNvbnN0IFFTdHJpbmcgJmFk ZGl0aW9uYWxOb3RlIDogYWRkaXRpb25hbE5vdGVzKSB7CisgICAgICAgICAgICAgICAgY29uc3Qg TWludWV0OjpSaHl0aG1Ub2tlbiB0b2tlbiA9IE1pbnVldDo6cGFyc2VSaHl0aG1Ub2tlbihhZGRp dGlvbmFsTm90ZSk7CisgICAgICAgICAgICAgICAgaWYgKCF0b2tlbi52YWxpZCkgewogICAgICAg ICAgICAgICAgICAgICBxV2FybmluZygpIDw8ICJJZ25vcmluZyBleGVyY2lzZSBvcHRpb24gd2l0 aCBpbnZhbGlkIHJoeXRobSB2YWx1ZToiIDw8IGFkZGl0aW9uYWxOb3RlOwogICAgICAgICAgICAg ICAgICAgICBjbGVhclNvbmcoKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZHVyYXRpb24gPSBkb3R0 ZWQgKiAxMDAwICogKDYwLjAgLyBtX3RlbXBvKSAqICg0LjAgLyBkZW5vbWluYXRvcik7Ci0gICAg ICAgICAgICAgICAgYXBwZW5kRXZlbnQoUmh5dGhtQ2hhbm5lbCwgbV9yaHl0aG1JbnN0cnVtZW50 LCAxMjcsIGR1cmF0aW9uKTsKKyAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgZHVy YXRpb24gPSB0b2tlbi5xdWFydGVyTm90ZUJlYXRzKCkgKiAxMDAwICogKDYwLjAgLyBtX3RlbXBv KTsKKyAgICAgICAgICAgICAgICBhcHBlbmRFdmVudChSaHl0aG1DaGFubmVsLCBtX3JoeXRobUlu c3RydW1lbnQsIHRva2VuLnJlc3QgPyAwIDogMTI3LCBkdXJhdGlvbik7CiAgICAgICAgICAgICB9 CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9zcmMvdXRpbHMvcmh5dGhtdG9rZW4uaCBi L3NyYy91dGlscy9yaHl0aG10b2tlbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmYzYzkzYzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdXRpbHMvcmh5dGhtdG9rZW4uaApA QCAtMCwwICsxLDQzIEBACisvLyBTUERYLUZpbGVDb3B5cmlnaHRUZXh0OiAyMDI2IFNhbmRybyBB bmRyYWRlIDxzYW5kcm9hbmRyYWRlQGtkZS5vcmc+CisvLworLy8gU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb3ItbGF0ZXIKKworI2lmbmRlZiBNSU5VRVRfUkhZVEhNVE9LRU5fSAor I2RlZmluZSBNSU5VRVRfUkhZVEhNVE9LRU5fSAorCisjaW5jbHVkZSA8UVN0cmluZ1ZpZXc+CisK K25hbWVzcGFjZSBNaW51ZXQKK3sKK3N0cnVjdCBSaHl0aG1Ub2tlbiB7CisgICAgYm9vbCB2YWxp ZCA9IGZhbHNlOworICAgIGJvb2wgcmVzdCA9IGZhbHNlOworICAgIGJvb2wgZG90dGVkID0gZmFs c2U7CisgICAgaW50IGRlbm9taW5hdG9yID0gMDsKKworICAgIGRvdWJsZSBxdWFydGVyTm90ZUJl YXRzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB2YWxpZCA/IDQuMCAvIGRlbm9taW5h dG9yICogKGRvdHRlZCA/IDEuNSA6IDEuMCkgOiAwLjA7CisgICAgfQorfTsKKworaW5saW5lIFJo eXRobVRva2VuIHBhcnNlUmh5dGhtVG9rZW4oUVN0cmluZ1ZpZXcgdGV4dCkKK3sKKyAgICBSaHl0 aG1Ub2tlbiB0b2tlbjsKKyAgICBpZiAodGV4dC5zdGFydHNXaXRoKHUncicpKSB7CisgICAgICAg IHRva2VuLnJlc3QgPSB0cnVlOworICAgICAgICB0ZXh0ID0gdGV4dC5zbGljZWQoMSk7CisgICAg fQorICAgIGlmICh0ZXh0LmVuZHNXaXRoKHUnLicpKSB7CisgICAgICAgIHRva2VuLmRvdHRlZCA9 IHRydWU7CisgICAgICAgIHRleHQgPSB0ZXh0LmZpcnN0KHRleHQuc2l6ZSgpIC0gMSk7CisgICAg fQorCisgICAgYm9vbCBvayA9IGZhbHNlOworICAgIHRva2VuLmRlbm9taW5hdG9yID0gdGV4dC50 b0ludCgmb2spOworICAgIHRva2VuLnZhbGlkID0gb2sgJiYgdG9rZW4uZGVub21pbmF0b3IgPiAw OworICAgIHJldHVybiB0b2tlbjsKK30KK30KKworI2VuZGlmCg==