[education/minuet] /: Add rhythm with rests exercises
Sandro S. Andrade <[email protected]> Mon, 13 Jul 2026 18:16:59 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs,gmane.comp.kde.doc |
|---|---|
| Message-ID | <[email protected]> |
R2l0IGNvbW1pdCBjMjU4NTBjMmQ5NzQ4ZDk0YTQyNDQzYzMyMGFhZTM1MjM0YWVlNDlkIGJ5IFNh bmRybyBTLiBBbmRyYWRlLgpDb21taXR0ZWQgb24gMTMvMDcvMjAyNiBhdCAxODoxNi4KUHVzaGVk IGJ5IHNhbmRyb2FuZHJhZGUgaW50byBicmFuY2ggJ21hc3RlcicuCgpBZGQgcmh5dGhtIHdpdGgg cmVzdHMgZXhlcmNpc2VzCgpNICArMSAgICAtMCAgICBkYXRhL2RlZmluaXRpb25zL0NNYWtlTGlz dHMudHh0Ck0gICs4ICAgIC04ICAgIGRhdGEvZGVmaW5pdGlvbnMvcmh5dGhtLWRlZmluaXRpb25z Lmpzb24KQSAgKzE5NCAgLTAgICAgZGF0YS9kZWZpbml0aW9ucy9yaHl0aG0tcmVzdC1kZWZpbml0 aW9ucy5qc29uCk0gICsyICAgIC0wICAgIGRhdGEvZXhlcmNpc2VzL0NNYWtlTGlzdHMudHh0CkEg ICsxOSAgIC0wICAgIGRhdGEvZXhlcmNpc2VzL3JoeXRobS1lYXN5LXJlc3RzLmpzb24KQSAgKzE5 ICAgLTAgICAgZGF0YS9leGVyY2lzZXMvcmh5dGhtLW1lZGl1bS1yZXN0cy5qc29uCk0gICs2ICAg IC0wICAgIGRvYy9pbmRleC5kb2Nib29rCk0gICs5ICAgIC0wICAgIHNyYy9hcHAvQ01ha2VMaXN0 cy50eHQKQSAgKzI4NiAgLTAgICAgc3JjL2FwcC9hdXRvdGVzdHMvcmh5dGhtcmVzdHRlc3QuY3Bw ICAgICBbTGljZW5zZTogR1BMKHYyLjArKV0KTSAgKzEwICAgLTAgICAgc3JjL2FwcC9leGVyY2lz ZWNhdGFsb2djb250cm9sbGVyLmNwcApNICArMTcgICAtNSAgICBzcmMvYXBwL2V4ZXJjaXNlc2Vz c2lvbmNvbnRyb2xsZXIuY3BwCk0gICsxMyAgIC01ICAgIHNyYy9hcHAvcW1sL0V4ZXJjaXNlQ2xh cHBpbmdWaWV3LnFtbApNICArNCAgICAtMCAgICBzcmMvYXBwL3FtbC9QcmFjdGljZU1vZGVQYWdl LnFtbApNICArNyAgICAtMTEgICBzcmMvcGx1Z2lucy9mbHVpZHN5bnRoc291bmRjb250cm9sbGVy L2ZsdWlkc3ludGhzb3VuZGNvbnRyb2xsZXIuY3BwCkEgICs0MyAgIC0wICAgIHNyYy91dGlscy9y aHl0aG10b2tlbi5oICAgICBbTGljZW5zZTogR1BMKHYyLjArKV0KCmh0dHBzOi8vaW52ZW50Lmtk ZS5vcmcvZWR1Y2F0aW9uL21pbnVldC8tL2NvbW1pdC9jMjU4NTBjMmQ5NzQ4ZDk0YTQyNDQzYzMy MGFhZTM1MjM0YWVlNDlkCgpkaWZmIC0tZ2l0IGEvZGF0YS9kZWZpbml0aW9ucy9DTWFrZUxpc3Rz LnR4dCBiL2RhdGEvZGVmaW5pdGlvbnMvQ01ha2VMaXN0cy50eHQKaW5kZXggZWU0M2FkZS4uNTcy MjVjOSAxMDA2NDQKLS0tIGEvZGF0YS9kZWZpbml0aW9ucy9DTWFrZUxpc3RzLnR4dAorKysgYi9k YXRhL2RlZmluaXRpb25zL0NNYWtlTGlzdHMudHh0CkBAIC0xNiw2ICsxNiw3IEBAIHNldChNSU5V RVRfREVGSU5JVElPTlMKICAgICBzY2FsZXMtc2ltbWV0cmljLWRlZmluaXRpb25zLmpzb24KICAg ICBzY2FsZXMtYmVib3AtZGVmaW5pdGlvbnMuanNvbgogICAgIHJoeXRobS1kZWZpbml0aW9ucy5q c29uCisgICAgcmh5dGhtLXJlc3QtZGVmaW5pdGlvbnMuanNvbgogKQogCiBpbnN0YWxsKEZJTEVT ICR7TUlOVUVUX0RFRklOSVRJT05TfQpkaWZmIC0tZ2l0IGEvZGF0YS9kZWZpbml0aW9ucy9yaHl0 aG0tZGVmaW5pdGlvbnMuanNvbiBiL2RhdGEvZGVmaW5pdGlvbnMvcmh5dGhtLWRlZmluaXRpb25z Lmpzb24KaW5kZXggOTc3YWFmOC4uYTQ1ODdiOSAxMDA2NDQKLS0tIGEvZGF0YS9kZWZpbml0aW9u cy9yaHl0aG0tZGVmaW5pdGlvbnMuanNvbgorKysgYi9kYXRhL2RlZmluaXRpb25zL3JoeXRobS1k ZWZpbml0aW9ucy5qc29uCkBAIC0xLDQyICsxLDQyIEBACiB7CiAgICJkZWZpbml0aW9ucyI6IFsK ICAgICB7Ci0gICAgICAidGFncyI6IFsicmh5dGhtIiwgImVhc3kiLCAibWVkaXVtIl0sCisgICAg ICAidGFncyI6IFsicmh5dGhtIiwgImVhc3kiLCAibWVkaXVtIiwgImVhc3ktd2l0aC1yZXN0cyIs ICJtZWRpdW0td2l0aC1yZXN0cyIsICJyZXN0LWxpc3RlbmluZyJdLAogICAgICAgIm5hbWUiOiAi XHVFMUYwIiwKICAgICAgICJzZXF1ZW5jZSI6ICI0IgogICAgIH0sCiAgICAgewotICAgICAgInRh Z3MiOiBbInJoeXRobSIsICJlYXN5IiwgIm1lZGl1bSJdLAorICAgICAgInRhZ3MiOiBbInJoeXRo bSIsICJlYXN5IiwgIm1lZGl1bSIsICJlYXN5LXdpdGgtcmVzdHMiLCAibWVkaXVtLXdpdGgtcmVz dHMiLCAicmVzdC1saXN0ZW5pbmciXSwKICAgICAgICJuYW1lIjogIlx1RTFGMFx1RTFGN1x1RTFG MiIsCiAgICAgICAic2VxdWVuY2UiOiAiOCA4IgogICAgIH0sCiAgICAgewotICAgICAgInRhZ3Mi OiBbInJoeXRobSIsICJlYXN5IiwgIm1lZGl1bSJdLAorICAgICAgInRhZ3MiOiBbInJoeXRobSIs ICJlYXN5IiwgIm1lZGl1bSIsICJlYXN5LXdpdGgtcmVzdHMiLCAibWVkaXVtLXdpdGgtcmVzdHMi LCAicmVzdC1saXN0ZW5pbmciXSwKICAgICAgICJuYW1lIjogIlx1RTFGMFx1RTFGN1x1RTFGQ1x1 RTFGN1x1RTFGNCIsCiAgICAgICAic2VxdWVuY2UiOiAiOC4gMTYiCiAgICAgfSwKICAgICB7Ci0g ICAgICAidGFncyI6IFsicmh5dGhtIiwgImVhc3kiLCAibWVkaXVtIl0sCisgICAgICAidGFncyI6 IFsicmh5dGhtIiwgImVhc3kiLCAibWVkaXVtIiwgImVhc3ktd2l0aC1yZXN0cyIsICJtZWRpdW0t d2l0aC1yZXN0cyIsICJyZXN0LWxpc3RlbmluZyJdLAogICAgICAgIm5hbWUiOiAiXHVFMUYwXHVF MUY5XHVFMUYyXHVFMUZDIiwKICAgICAgICJzZXF1ZW5jZSI6ICIxNiA4LiIKICAgICB9LAogICAg IHsKLSAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtIl0sCisgICAgICAidGFncyI6IFsi cmh5dGhtIiwgIm1lZGl1bSIsICJtZWRpdW0td2l0aC1yZXN0cyIsICJyZXN0LWxpc3RlbmluZyJd LAogICAgICAgIm5hbWUiOiAiXHVFMUYwXHVFMUY5XHVFMUY0XHVFMUY5XHVFMUY0XHVFMUY5XHVF MUY0IiwKICAgICAgICJzZXF1ZW5jZSI6ICIxNiAxNiAxNiAxNiIKICAgICB9LAogICAgIHsKLSAg ICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtIl0sCisgICAgICAidGFncyI6IFsicmh5dGht IiwgIm1lZGl1bSIsICJtZWRpdW0td2l0aC1yZXN0cyIsICJyZXN0LWxpc3RlbmluZyJdLAogICAg ICAgIm5hbWUiOiAiXHVFMUYwXHVFMUY3XHVFMUYyXHVFMUY5XHVFMUY0IiwKICAgICAgICJzZXF1 ZW5jZSI6ICI4IDE2IDE2IgogICAgIH0sCiAgICAgewotICAgICAgInRhZ3MiOiBbInJoeXRobSIs ICJtZWRpdW0iXSwKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtIiwgIm1lZGl1bS13 aXRoLXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0sCiAgICAgICAibmFtZSI6ICJcdUUxRjBcdUUx RjlcdUUxRjJcdUUxRjdcdUUxRjQiLAogICAgICAgInNlcXVlbmNlIjogIjE2IDggMTYiCiAgICAg fSwKICAgICB7Ci0gICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bSJdLAorICAgICAgInRh Z3MiOiBbInJoeXRobSIsICJtZWRpdW0iLCAibWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0 ZW5pbmciXSwKICAgICAgICJuYW1lIjogIlx1RTFGMFx1RTFGOVx1RTFGNFx1RTFGN1x1RTFGMiIs CiAgICAgICAic2VxdWVuY2UiOiAiMTYgMTYgOCIKICAgICB9CmRpZmYgLS1naXQgYS9kYXRhL2Rl ZmluaXRpb25zL3JoeXRobS1yZXN0LWRlZmluaXRpb25zLmpzb24gYi9kYXRhL2RlZmluaXRpb25z L3JoeXRobS1yZXN0LWRlZmluaXRpb25zLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNGIwZGNlMwotLS0gL2Rldi9udWxsCisrKyBiL2RhdGEvZGVmaW5pdGlvbnMvcmh5 dGhtLXJlc3QtZGVmaW5pdGlvbnMuanNvbgpAQCAtMCwwICsxLDE5NCBAQAoreworICAiZGVmaW5p dGlvbnMiOiBbCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJlYXN5LXdpdGgtcmVz dHMiLCAibWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0ZW5pbmciXSwKKyAgICAgICJuYW1l IjogIlx1RTRFNiBcdUUxRDciLAorICAgICAgInNlcXVlbmNlIjogInI4IDgiCisgICAgfSwKKyAg ICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgImVhc3ktd2l0aC1yZXN0cyIsICJtZWRpdW0t d2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ3IFx1RTRFNiIsCisgICAgICAic2Vx dWVuY2UiOiAiOCByOCIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAi ZWFzeS13aXRoLXJlc3RzIiwgIm1lZGl1bS13aXRoLXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0s CisgICAgICAibmFtZSI6ICJcdUU0RTZcdUUxRTcgXHVFMUQ5IiwKKyAgICAgICJzZXF1ZW5jZSI6 ICJyOC4gMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgImVhc3kt d2l0aC1yZXN0cyIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ3 XHVFMUU3IFx1RTRFNyIsCisgICAgICAic2VxdWVuY2UiOiAiOC4gcjE2IgorICAgIH0sCisgICAg eworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJlYXN5LXdpdGgtcmVzdHMiLCAibWVkaXVtLXdp dGgtcmVzdHMiLCAicmVzdC1saXN0ZW5pbmciXSwKKyAgICAgICJuYW1lIjogIlx1RTRFNyBcdUUx RDdcdUUxRTciLAorICAgICAgInNlcXVlbmNlIjogInIxNiA4LiIKKyAgICB9LAorICAgIHsKKyAg ICAgICJ0YWdzIjogWyJyaHl0aG0iLCAiZWFzeS13aXRoLXJlc3RzIiwgIm1lZGl1bS13aXRoLXJl c3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRDkgXHVFNEU2XHVFMUU3IiwKKyAgICAgICJzZXF1 ZW5jZSI6ICIxNiByOC4iCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwg Im1lZGl1bS13aXRoLXJlc3RzIiwgInJlc3QtbGlzdGVuaW5nIl0sCisgICAgICAibmFtZSI6ICJc dUU0RTcgXHVFMUYwXHVFMUY5XHVFMUY0XHVFMUY5XHVFMUY0IiwKKyAgICAgICJzZXF1ZW5jZSI6 ICJyMTYgMTYgMTYgMTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwg Im1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRDkgXHVFNEU3IFx1RTFG MFx1RTFGOVx1RTFGNCIsCisgICAgICAic2VxdWVuY2UiOiAiMTYgcjE2IDE2IDE2IgorICAgIH0s CisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyIsICJy ZXN0LWxpc3RlbmluZyJdLAorICAgICAgIm5hbWUiOiAiXHVFNEU3IFx1RTRFNyBcdUUxRjBcdUUx RjlcdUUxRjQiLAorICAgICAgInNlcXVlbmNlIjogInIxNiByMTYgMTYgMTYiCisgICAgfSwKKyAg ICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAg ICAibmFtZSI6ICJcdUUxRjBcdUUxRjlcdUUxRjQgXHVFNEU3IFx1RTFEOSIsCisgICAgICAic2Vx dWVuY2UiOiAiMTYgMTYgcjE2IDE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJo eXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyIsICJyZXN0LWxpc3RlbmluZyJdLAorICAgICAgIm5h bWUiOiAiXHVFNEU3IFx1RTFEOSBcdUU0RTcgXHVFMUQ5IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJy MTYgMTYgcjE2IDE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJt ZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ5IFx1RTRFNyBcdUU0RTcg XHVFMUQ5IiwKKyAgICAgICJzZXF1ZW5jZSI6ICIxNiByMTYgcjE2IDE2IgorICAgIH0sCisgICAg eworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAg Im5hbWUiOiAiXHVFNEU3IFx1RTRFNyBcdUU0RTcgXHVFMUQ5IiwKKyAgICAgICJzZXF1ZW5jZSI6 ICJyMTYgcjE2IHIxNiAxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0i LCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFGMFx1RTFGOVx1RTFG NFx1RTFGOVx1RTFGNCBcdUU0RTciLAorICAgICAgInNlcXVlbmNlIjogIjE2IDE2IDE2IHIxNiIK KyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVz dHMiLCAicmVzdC1saXN0ZW5pbmciXSwKKyAgICAgICJuYW1lIjogIlx1RTRFNyBcdUUxRjBcdUUx RjlcdUUxRjQgXHVFNEU3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgMTYgMTYgcjE2IgorICAg IH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJd LAorICAgICAgIm5hbWUiOiAiXHVFMUQ5IFx1RTRFNyBcdUUxRDkgXHVFNEU3IiwKKyAgICAgICJz ZXF1ZW5jZSI6ICIxNiByMTYgMTYgcjE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBb InJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFNEU3IFx1 RTRFNyBcdUUxRDkgXHVFNEU3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgcjE2IDE2IHIxNiIK KyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVz dHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFGMFx1RTFGOVx1RTFGNCBcdUU0RTcgXHVFNEU3IiwK KyAgICAgICJzZXF1ZW5jZSI6ICIxNiAxNiByMTYgcjE2IgorICAgIH0sCisgICAgeworICAgICAg InRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAi XHVFNEU3IFx1RTFEOSBcdUU0RTcgXHVFNEU3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgMTYg cjE2IHIxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVt LXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFEOSBcdUU0RTcgXHVFNEU3IFx1RTRF NyIsCisgICAgICAic2VxdWVuY2UiOiAiMTYgcjE2IHIxNiByMTYiCisgICAgfSwKKyAgICB7Cisg ICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFt ZSI6ICJcdUU0RTYgXHVFMUYwXHVFMUY5XHVFMUY0IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyOCAx NiAxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdp dGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFENyBcdUU0RTcgXHVFMUQ5IiwKKyAgICAg ICJzZXF1ZW5jZSI6ICI4IHIxNiAxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJy aHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTRFNiBcdUU0 RTcgXHVFMUQ5IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyOCByMTYgMTYiCisgICAgfSwKKyAgICB7 CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAi bmFtZSI6ICJcdUUxRDcgXHVFMUQ5IFx1RTRFNyIsCisgICAgICAic2VxdWVuY2UiOiAiOCAxNiBy MTYiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRo LXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUU0RTYgXHVFMUQ5IFx1RTRFNyIsCisgICAgICAi c2VxdWVuY2UiOiAicjggMTYgcjE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJo eXRobSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ3IFx1RTRF NyBcdUU0RTciLAorICAgICAgInNlcXVlbmNlIjogIjggcjE2IHIxNiIKKyAgICB9LAorICAgIHsK KyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJu YW1lIjogIlx1RTRFNyBcdUUxRDcgXHVFMUQ5IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgOCAx NiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgt cmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFEOSBcdUU0RTYgXHVFMUQ5IiwKKyAgICAgICJz ZXF1ZW5jZSI6ICIxNiByOCAxNiIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0 aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTRFNyBcdUU0RTYg XHVFMUQ5IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgcjggMTYiCisgICAgfSwKKyAgICB7Cisg ICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFt ZSI6ICJcdUUxRDkgXHVFMUQ3IFx1RTRFNyIsCisgICAgICAic2VxdWVuY2UiOiAiMTYgOCByMTYi CisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJl c3RzIl0sCisgICAgICAibmFtZSI6ICJcdUU0RTcgXHVFMUQ3IFx1RTRFNyIsCisgICAgICAic2Vx dWVuY2UiOiAicjE2IDggcjE2IgorICAgIH0sCisgICAgeworICAgICAgInRhZ3MiOiBbInJoeXRo bSIsICJtZWRpdW0td2l0aC1yZXN0cyJdLAorICAgICAgIm5hbWUiOiAiXHVFMUQ5IFx1RTRFNiBc dUU0RTciLAorICAgICAgInNlcXVlbmNlIjogIjE2IHI4IHIxNiIKKyAgICB9LAorICAgIHsKKyAg ICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1l IjogIlx1RTRFNyBcdUUxRDkgXHVFMUQ3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgMTYgOCIK KyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVz dHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTFEOSBcdUU0RTcgXHVFMUQ3IiwKKyAgICAgICJzZXF1 ZW5jZSI6ICIxNiByMTYgOCIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0i LCAibWVkaXVtLXdpdGgtcmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTRFNyBcdUU0RTcgXHVF MUQ3IiwKKyAgICAgICJzZXF1ZW5jZSI6ICJyMTYgcjE2IDgiCisgICAgfSwKKyAgICB7CisgICAg ICAidGFncyI6IFsicmh5dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6 ICJcdUUxRjBcdUUxRjlcdUUxRjQgXHVFNEU2IiwKKyAgICAgICJzZXF1ZW5jZSI6ICIxNiAxNiBy OCIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgt cmVzdHMiXSwKKyAgICAgICJuYW1lIjogIlx1RTRFNyBcdUUxRDkgXHVFNEU2IiwKKyAgICAgICJz ZXF1ZW5jZSI6ICJyMTYgMTYgcjgiCisgICAgfSwKKyAgICB7CisgICAgICAidGFncyI6IFsicmh5 dGhtIiwgIm1lZGl1bS13aXRoLXJlc3RzIl0sCisgICAgICAibmFtZSI6ICJcdUUxRDkgXHVFNEU3 IFx1RTRFNiIsCisgICAgICAic2VxdWVuY2UiOiAiMTYgcjE2IHI4IgorICAgIH0KKyAgXQorfQpk aWZmIC0tZ2l0IGEvZGF0YS9leGVyY2lzZXMvQ01ha2VMaXN0cy50eHQgYi9kYXRhL2V4ZXJjaXNl cy9DTWFrZUxpc3RzLnR4dAppbmRleCAxMDNkODE3Li5mMzg3ZGZiIDEwMDY0NAotLS0gYS9kYXRh L2V4ZXJjaXNlcy9DTWFrZUxpc3RzLnR4dAorKysgYi9kYXRhL2V4ZXJjaXNlcy9DTWFrZUxpc3Rz LnR4dApAQCAtMTgsNyArMTgsOSBAQCBzZXQoTUlOVUVUX0VYRVJDSVNFUwogICAgIHNjYWxlcy1z aW1tZXRyaWMtZXhlcmNpc2VzLmpzb24KICAgICBzY2FsZXMtYmVib3AtZXhlcmNpc2VzLmpzb24K ICAgICByaHl0aG0tZWFzeS5qc29uCisgICAgcmh5dGhtLWVhc3ktcmVzdHMuanNvbgogICAgIHJo eXRobS1tZWRpdW0uanNvbgorICAgIHJoeXRobS1tZWRpdW0tcmVzdHMuanNvbgogKQogCiBpbnN0 YWxsKEZJTEVTICR7TUlOVUVUX0VYRVJDSVNFU30KZGlmZiAtLWdpdCBhL2RhdGEvZXhlcmNpc2Vz L3JoeXRobS1lYXN5LXJlc3RzLmpzb24gYi9kYXRhL2V4ZXJjaXNlcy9yaHl0aG0tZWFzeS1yZXN0 cy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ODAxNjYKLS0tIC9k ZXYvbnVsbAorKysgYi9kYXRhL2V4ZXJjaXNlcy9yaHl0aG0tZWFzeS1yZXN0cy5qc29uCkBAIC0w LDAgKzEsMTkgQEAKK3sKKyAgImV4ZXJjaXNlcyI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJS aHl0aG0iLAorICAgICAgInBsYXlNb2RlIjogInJoeXRobSIsCisgICAgICAidXNlck1lc3NhZ2Ui OiAiSGVhciB0aGUgcmh5dGhtIGFuZCBjaG9vc2UgeW91ciBhbnN3ZXJzIiwKKyAgICAgICJ0ZW1w bGF0ZSI6ICJsaWx5cG9uZC10ZW1wbGF0ZXMvcmh5dGhtLmx5LnRtcGwiLAorICAgICAgIl9pY29u IjogIm1pbnVldC1yaHl0aG1zLXN5bWJvbGljLnN2ZyIsCisgICAgICAiY2hpbGRyZW4iOiBbCisg ICAgICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJFYXN5IHdpdGggcmVzdHMiLAorICAgICAgICAg ICJhbmQtdGFncyI6IFsicmh5dGhtIiwgImVhc3ktd2l0aC1yZXN0cyIsICJyZXN0LWxpc3Rlbmlu ZyJdLAorICAgICAgICAgICJjbGFwcGluZy1hbmQtdGFncyI6IFsicmh5dGhtIiwgImVhc3ktd2l0 aC1yZXN0cyJdLAorICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmFjdGljZSBiYXNpYyByaHl0 aG0gcGF0dGVybnMgdGhhdCBjb21iaW5lIG5vdGVzIGFuZCByZXN0cy4iCisgICAgICAgIH0KKyAg ICAgIF0KKyAgICB9CisgIF0KK30KZGlmZiAtLWdpdCBhL2RhdGEvZXhlcmNpc2VzL3JoeXRobS1t ZWRpdW0tcmVzdHMuanNvbiBiL2RhdGEvZXhlcmNpc2VzL3JoeXRobS1tZWRpdW0tcmVzdHMuanNv bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTY0ZDY5Ci0tLSAvZGV2L251 bGwKKysrIGIvZGF0YS9leGVyY2lzZXMvcmh5dGhtLW1lZGl1bS1yZXN0cy5qc29uCkBAIC0wLDAg KzEsMTkgQEAKK3sKKyAgImV4ZXJjaXNlcyI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJSaHl0 aG0iLAorICAgICAgInBsYXlNb2RlIjogInJoeXRobSIsCisgICAgICAidXNlck1lc3NhZ2UiOiAi SGVhciB0aGUgcmh5dGhtIGFuZCBjaG9vc2UgeW91ciBhbnN3ZXJzIiwKKyAgICAgICJ0ZW1wbGF0 ZSI6ICJsaWx5cG9uZC10ZW1wbGF0ZXMvcmh5dGhtLmx5LnRtcGwiLAorICAgICAgIl9pY29uIjog Im1pbnVldC1yaHl0aG1zLXN5bWJvbGljLnN2ZyIsCisgICAgICAiY2hpbGRyZW4iOiBbCisgICAg ICAgIHsKKyAgICAgICAgICAibmFtZSI6ICJNZWRpdW0gd2l0aCByZXN0cyIsCisgICAgICAgICAg ImFuZC10YWdzIjogWyJyaHl0aG0iLCAibWVkaXVtLXdpdGgtcmVzdHMiLCAicmVzdC1saXN0ZW5p bmciXSwKKyAgICAgICAgICAiY2xhcHBpbmctYW5kLXRhZ3MiOiBbInJoeXRobSIsICJtZWRpdW0t d2l0aC1yZXN0cyJdLAorICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQcmFjdGljZSB2YXJpZWQg cmh5dGhtIHBhdHRlcm5zIHRoYXQgY29tYmluZSBub3RlcyBhbmQgcmVzdHMuIgorICAgICAgICB9 CisgICAgICBdCisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS9kb2MvaW5kZXguZG9jYm9vayBi L2RvYy9pbmRleC5kb2Nib29rCmluZGV4IDIwNzFmYTMuLjkwY2U4ODMgMTAwNjQ0Ci0tLSBhL2Rv Yy9pbmRleC5kb2Nib29rCisrKyBiL2RvYy9pbmRleC5kb2Nib29rCkBAIC0yMjAsNiArMjIwLDEy IEBAIFJoeXRobSBleGVyY2lzZXMgZm9jdXMgb24gdGltaW5nIHJhdGhlciB0aGFuIHBpdGNoLiBJ biB0aGUgY2xhcHBpbmcgbW9kZSwgJm1pbnVlCiBtaWNyb3Bob25lIGlucHV0IGFuZCBjb21wYXJl cyB0aGUgb25zZXRzIHRvIHRoZSB0YXJnZXQgcGF0dGVybi4KIDwvcGFyYT4KIAorPHBhcmE+CitU aGUgPGd1aWxhYmVsPkVhc3kgd2l0aCByZXN0czwvZ3VpbGFiZWw+IGFuZCA8Z3VpbGFiZWw+TWVk aXVtIHdpdGggcmVzdHM8L2d1aWxhYmVsPiBjYXRlZ29yaWVzIGFkZAorc2lsZW50IHBvc2l0aW9u cyB0byB0aGUgY29ycmVzcG9uZGluZyBub3RlLW9ubHkgcGF0dGVybnMuIExpc3RlbmluZyBleGVy Y2lzZXMgYXZvaWQgY2hvaWNlcyB0aGF0Citzb3VuZCBpZGVudGljYWwsIHdoaWxlIDxndWlsYWJl bD5SZWFkIGFuZCBjbGFwPC9ndWlsYWJlbD4gaW5jbHVkZXMgZXZlcnkgbWl4ZWQgbm90ZS1hbmQt cmVzdCBwYXR0ZXJuLgorPC9wYXJhPgorCiA8c2NyZWVuc2hvdD4KICAgPHNjcmVlbmluZm8+Jm1p bnVldDsgY2xhcHBpbmcgZXhlcmNpc2U8L3NjcmVlbmluZm8+CiAgIDxtZWRpYW9iamVjdD4KZGlm ZiAtLWdpdCBhL3NyYy9hcHAvQ01ha2VMaXN0cy50eHQgYi9zcmMvYXBwL0NNYWtlTGlzdHMudHh0 CmluZGV4IGExMmU1NDAuLjliYzY2MTEgMTAwNjQ0Ci0tLSBhL3NyYy9hcHAvQ01ha2VMaXN0cy50 eHQKKysrIGIvc3JjL2FwcC9DTWFrZUxpc3RzLnR4dApAQCAtMzMwLDYgKzMzMCwxNSBAQCBpZihO T1QgTUlOVUVUX01PQklMRV9QTEFURk9STSkKICAgICB0YXJnZXRfbGlua19saWJyYXJpZXMobWlu dWV0IFBSSVZBVEUgS0Y2OjpDcmFzaCkKIGVuZGlmKCkKIAoraWYoQlVJTERfVEVTVElORyBBTkQg Tk9UIE1JTlVFVF9NT0JJTEVfUExBVEZPUk0pCisgICAgYWRkX2V4ZWN1dGFibGUocmh5dGhtcmVz dHRlc3QgYXV0b3Rlc3RzL3JoeXRobXJlc3R0ZXN0LmNwcCkKKyAgICB0YXJnZXRfY29tcGlsZV9k ZWZpbml0aW9ucygKKyAgICAgICAgcmh5dGhtcmVzdHRlc3QgUFJJVkFURSBNSU5VRVRfU09VUkNF X0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKyAgICApCisgICAgdGFyZ2V0X2xpbmtfbGlicmFy aWVzKHJoeXRobXJlc3R0ZXN0IFF0OjpDb3JlIFF0OjpUZXN0IE1pbnVldDo6VXRpbHMpCisgICAg YWRkX3Rlc3QoTkFNRSByaHl0aG1yZXN0dGVzdCBDT01NQU5EIHJoeXRobXJlc3R0ZXN0KQorZW5k aWYoKQorCiBpZihOT1QgTUlOVUVUX01PQklMRV9QTEFURk9STSkKICAgICBpbnN0YWxsKFRBUkdF VFMgbWludWV0ICR7S0RFX0lOU1RBTExfVEFSR0VUU19ERUZBVUxUX0FSR1N9KQogICAgIGluc3Rh bGwoUFJPR1JBTVMgb3JnLmtkZS5taW51ZXQuZGVza3RvcCBERVNUSU5BVElPTiAke0tERV9JTlNU QUxMX0FQUERJUn0pCmRpZmYgLS1naXQgYS9zcmMvYXBwL2F1dG90ZXN0cy9yaHl0aG1yZXN0dGVz dC5jcHAgYi9zcmMvYXBwL2F1dG90ZXN0cy9yaHl0aG1yZXN0dGVzdC5jcHAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU4ZjZjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9h cHAvYXV0b3Rlc3RzL3JoeXRobXJlc3R0ZXN0LmNwcApAQCAtMCwwICsxLDI4NiBAQAorLy8gU1BE WC1GaWxlQ29weXJpZ2h0VGV4dDogMjAyNiBTYW5kcm8gQW5kcmFkZSA8c2FuZHJvYW5kcmFkZUBr ZGUub3JnPgorLy8KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9yLWxhdGVy CisKKyNpbmNsdWRlIDx1dGlscy9yaHl0aG10b2tlbi5oPgorCisjaW5jbHVkZSA8UUZpbGU+Cisj aW5jbHVkZSA8UUpzb25BcnJheT4KKyNpbmNsdWRlIDxRSnNvbkRvY3VtZW50PgorI2luY2x1ZGUg PFFKc29uT2JqZWN0PgorI2luY2x1ZGUgPFFTZXQ+CisjaW5jbHVkZSA8UVRlc3Q+CisKKyNpbmNs dWRlIDx1dGlsaXR5PgorCit1c2luZyBuYW1lc3BhY2UgUXQ6OlN0cmluZ0xpdGVyYWxzOworCitu YW1lc3BhY2UKK3sKK1FKc29uQXJyYXkgbG9hZEFycmF5KGNvbnN0IFFTdHJpbmcgJnJlbGF0aXZl UGF0aCwgY29uc3QgUVN0cmluZyAmYXJyYXlOYW1lKQoreworICAgIFFGaWxlIGZpbGUodSIlMS8l MiJfcy5hcmcoUVN0cmluZ0xpdGVyYWwoTUlOVUVUX1NPVVJDRV9ESVIpLCByZWxhdGl2ZVBhdGgp KTsKKyAgICBpZiAoIWZpbGUub3BlbihRSU9EZXZpY2U6OlJlYWRPbmx5KSkgeworICAgICAgICBy ZXR1cm4ge307CisgICAgfQorICAgIHJldHVybiBRSnNvbkRvY3VtZW50Ojpmcm9tSnNvbihmaWxl LnJlYWRBbGwoKSkub2JqZWN0KCkudmFsdWUoYXJyYXlOYW1lKS50b0FycmF5KCk7Cit9CisKK2Jv b2wgaGFzVGFnKGNvbnN0IFFKc29uT2JqZWN0ICZkZWZpbml0aW9uLCBjb25zdCBRU3RyaW5nICZ0 YWcpCit7CisgICAgcmV0dXJuIGRlZmluaXRpb24udmFsdWUodSJ0YWdzIl9zKS50b0FycmF5KCku Y29udGFpbnModGFnKTsKK30KKworUUpzb25BcnJheSBkZWZpbml0aW9uc1dpdGhUYWdzKGNvbnN0 IFFKc29uQXJyYXkgJmRlZmluaXRpb25zLCBjb25zdCBRU3RyaW5nTGlzdCAmdGFncykKK3sKKyAg ICBRSnNvbkFycmF5IGZpbHRlcmVkOworICAgIGZvciAoY29uc3QgUUpzb25WYWx1ZSAmdmFsdWUg OiBkZWZpbml0aW9ucykgeworICAgICAgICBjb25zdCBRSnNvbk9iamVjdCBkZWZpbml0aW9uID0g dmFsdWUudG9PYmplY3QoKTsKKyAgICAgICAgYm9vbCBtYXRjaGVzID0gdHJ1ZTsKKyAgICAgICAg Zm9yIChjb25zdCBRU3RyaW5nICZ0YWcgOiB0YWdzKSB7CisgICAgICAgICAgICBpZiAoIWhhc1Rh ZyhkZWZpbml0aW9uLCB0YWcpKSB7CisgICAgICAgICAgICAgICAgbWF0Y2hlcyA9IGZhbHNlOwor ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAg IGlmIChtYXRjaGVzKSB7CisgICAgICAgICAgICBmaWx0ZXJlZC5hcHBlbmQoZGVmaW5pdGlvbik7 CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZpbHRlcmVkOworfQorCitRU3RyaW5nTGlz dCBzdHJpbmdMaXN0KGNvbnN0IFFKc29uQXJyYXkgJnZhbHVlcykKK3sKKyAgICBRU3RyaW5nTGlz dCBzdHJpbmdzOworICAgIGZvciAoY29uc3QgUUpzb25WYWx1ZSAmdmFsdWUgOiB2YWx1ZXMpIHsK KyAgICAgICAgc3RyaW5ncy5hcHBlbmQodmFsdWUudG9TdHJpbmcoKSk7CisgICAgfQorICAgIHJl dHVybiBzdHJpbmdzOworfQorCitRSnNvbk9iamVjdCByZXN0Q2F0ZWdvcnkoY29uc3QgUVN0cmlu ZyAmcmVsYXRpdmVQYXRoKQoreworICAgIGNvbnN0IFFKc29uQXJyYXkgZXhlcmNpc2VzID0gbG9h ZEFycmF5KHJlbGF0aXZlUGF0aCwgdSJleGVyY2lzZXMiX3MpOworICAgIGlmIChleGVyY2lzZXMu aXNFbXB0eSgpKSB7CisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisgICAgY29uc3QgUUpzb25B cnJheSBjaGlsZHJlbiA9IGV4ZXJjaXNlcy5maXJzdCgpLnRvT2JqZWN0KCkudmFsdWUodSJjaGls ZHJlbiJfcykudG9BcnJheSgpOworICAgIGZvciAoY29uc3QgUUpzb25WYWx1ZSAmdmFsdWUgOiBj aGlsZHJlbikgeworICAgICAgICBjb25zdCBRSnNvbk9iamVjdCBjYXRlZ29yeSA9IHZhbHVlLnRv T2JqZWN0KCk7CisgICAgICAgIGlmIChjYXRlZ29yeS52YWx1ZSh1Im5hbWUiX3MpLnRvU3RyaW5n KCkuZW5kc1dpdGgodSJ3aXRoIHJlc3RzIl9zKSkgeworICAgICAgICAgICAgcmV0dXJuIGNhdGVn b3J5OworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB7fTsKK30KKworUVN0cmluZyBuYW1l Rm9yU2VxdWVuY2UoY29uc3QgUUpzb25BcnJheSAmZGVmaW5pdGlvbnMsIGNvbnN0IFFTdHJpbmcg JnNlcXVlbmNlKQoreworICAgIGZvciAoY29uc3QgUUpzb25WYWx1ZSAmdmFsdWUgOiBkZWZpbml0 aW9ucykgeworICAgICAgICBjb25zdCBRSnNvbk9iamVjdCBkZWZpbml0aW9uID0gdmFsdWUudG9P YmplY3QoKTsKKyAgICAgICAgaWYgKGRlZmluaXRpb24udmFsdWUodSJzZXF1ZW5jZSJfcykudG9T dHJpbmcoKSA9PSBzZXF1ZW5jZSkgeworICAgICAgICAgICAgcmV0dXJuIGRlZmluaXRpb24udmFs dWUodSJuYW1lIl9zKS50b1N0cmluZygpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB7 fTsKK30KKworUVN0cmluZyBvbnNldFNpZ25hdHVyZShjb25zdCBRU3RyaW5nICZzZXF1ZW5jZSkK K3sKKyAgICBRU3RyaW5nTGlzdCBvbnNldHM7CisgICAgZG91YmxlIGN1cnNvciA9IDAuMDsKKyAg ICBmb3IgKGNvbnN0IFFTdHJpbmcgJnRleHQgOiBzZXF1ZW5jZS5zcGxpdCh1JyAnLCBRdDo6U2tp cEVtcHR5UGFydHMpKSB7CisgICAgICAgIGNvbnN0IE1pbnVldDo6Umh5dGhtVG9rZW4gdG9rZW4g PSBNaW51ZXQ6OnBhcnNlUmh5dGhtVG9rZW4odGV4dCk7CisgICAgICAgIGlmICghdG9rZW4ucmVz dCkgeworICAgICAgICAgICAgb25zZXRzLmFwcGVuZChRU3RyaW5nOjpudW1iZXIoY3Vyc29yLCAn ZicsIDIpKTsKKyAgICAgICAgfQorICAgICAgICBjdXJzb3IgKz0gdG9rZW4ucXVhcnRlck5vdGVC ZWF0cygpOworICAgIH0KKyAgICByZXR1cm4gb25zZXRzLmpvaW4odScsJyk7Cit9CisKK1FTZXQ8 UVN0cmluZz4gZXhwZWN0ZWRSZXN0VmFyaWFudHMoY29uc3QgUUpzb25BcnJheSAmYmFzZURlZmlu aXRpb25zKQoreworICAgIFFTZXQ8UVN0cmluZz4gdmFyaWFudHM7CisgICAgZm9yIChjb25zdCBR SnNvblZhbHVlICZ2YWx1ZSA6IGJhc2VEZWZpbml0aW9ucykgeworICAgICAgICBjb25zdCBRU3Ry aW5nTGlzdCB0b2tlbnMgPSB2YWx1ZS50b09iamVjdCgpLnZhbHVlKHUic2VxdWVuY2UiX3MpLnRv U3RyaW5nKCkuc3BsaXQodScgJywgUXQ6OlNraXBFbXB0eVBhcnRzKTsKKyAgICAgICAgY29uc3Qg aW50IGFsbFJlc3RNYXNrID0gKDEgPDwgdG9rZW5zLnNpemUoKSkgLSAxOworICAgICAgICBmb3Ig KGludCBtYXNrID0gMTsgbWFzayA8IGFsbFJlc3RNYXNrOyArK21hc2spIHsKKyAgICAgICAgICAg IFFTdHJpbmdMaXN0IHZhcmlhbnQgPSB0b2tlbnM7CisgICAgICAgICAgICBmb3IgKGludCB0b2tl bkluZGV4ID0gMDsgdG9rZW5JbmRleCA8IHZhcmlhbnQuc2l6ZSgpOyArK3Rva2VuSW5kZXgpIHsK KyAgICAgICAgICAgICAgICBpZiAobWFzayAmICgxIDw8IHRva2VuSW5kZXgpKSB7CisgICAgICAg ICAgICAgICAgICAgIHZhcmlhbnRbdG9rZW5JbmRleF0ucHJlcGVuZCh1J3InKTsKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXJpYW50cy5pbnNlcnQodmFy aWFudC5qb2luKHUnICcpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdmFyaWFudHM7 Cit9Cit9CisKK2NsYXNzIFJoeXRobVJlc3RUZXN0IDogcHVibGljIFFPYmplY3QKK3sKKyAgICBR X09CSkVDVAorCitwcml2YXRlIFFfU0xPVFM6CisgICAgdm9pZCBpbml0VGVzdENhc2UoKTsKKyAg ICB2b2lkIHBhcnNlc1JoeXRobVRva2VucygpOworICAgIHZvaWQgY29udGFpbnNFdmVyeU1peGVk UmVzdFZhcmlhbnQoKTsKKyAgICB2b2lkIGNhdGVnb3J5Q291bnRzQXJlU3RhYmxlKCk7CisgICAg dm9pZCBjYXRlZ29yeUZpbHRlcnNNYXRjaFByYWN0aWNlTW9kZXMoKTsKKyAgICB2b2lkIGNvbnNl Y3V0aXZlU2l4dGVlbnRoc1VzZUJlYW1zKCk7CisgICAgdm9pZCBsaXN0ZW5pbmdQYXR0ZXJuc0hh dmVVbmlxdWVPbnNldHMoKTsKKyAgICB2b2lkIGV2ZXJ5UGF0dGVybkZpbGxzT25lQmVhdCgpOwor Citwcml2YXRlOgorICAgIFFKc29uQXJyYXkgbV9iYXNlRGVmaW5pdGlvbnM7CisgICAgUUpzb25B cnJheSBtX3Jlc3REZWZpbml0aW9uczsKKyAgICBRSnNvbkFycmF5IG1fYWxsRGVmaW5pdGlvbnM7 Cit9OworCit2b2lkIFJoeXRobVJlc3RUZXN0Ojppbml0VGVzdENhc2UoKQoreworICAgIG1fYmFz ZURlZmluaXRpb25zID0gbG9hZEFycmF5KHUiZGF0YS9kZWZpbml0aW9ucy9yaHl0aG0tZGVmaW5p dGlvbnMuanNvbiJfcywgdSJkZWZpbml0aW9ucyJfcyk7CisgICAgbV9yZXN0RGVmaW5pdGlvbnMg PSBsb2FkQXJyYXkodSJkYXRhL2RlZmluaXRpb25zL3JoeXRobS1yZXN0LWRlZmluaXRpb25zLmpz b24iX3MsIHUiZGVmaW5pdGlvbnMiX3MpOworICAgIFFWRVJJRlkoIW1fYmFzZURlZmluaXRpb25z LmlzRW1wdHkoKSk7CisgICAgUVZFUklGWSghbV9yZXN0RGVmaW5pdGlvbnMuaXNFbXB0eSgpKTsK KworICAgIG1fYWxsRGVmaW5pdGlvbnMgPSBtX2Jhc2VEZWZpbml0aW9uczsKKyAgICBmb3IgKGNv bnN0IFFKc29uVmFsdWUgJmRlZmluaXRpb24gOiBzdGQ6OmFzX2NvbnN0KG1fcmVzdERlZmluaXRp b25zKSkgeworICAgICAgICBtX2FsbERlZmluaXRpb25zLmFwcGVuZChkZWZpbml0aW9uKTsKKyAg ICB9Cit9CisKK3ZvaWQgUmh5dGhtUmVzdFRlc3Q6OnBhcnNlc1JoeXRobVRva2VucygpCit7Cisg ICAgY29uc3QgTWludWV0OjpSaHl0aG1Ub2tlbiBub3RlID0gTWludWV0OjpwYXJzZVJoeXRobVRv a2VuKHUiMTYiKTsKKyAgICBRVkVSSUZZKG5vdGUudmFsaWQpOworICAgIFFWRVJJRlkoIW5vdGUu cmVzdCk7CisgICAgUVZFUklGWSghbm90ZS5kb3R0ZWQpOworICAgIFFDT01QQVJFKG5vdGUuZGVu b21pbmF0b3IsIDE2KTsKKyAgICBRQ09NUEFSRShub3RlLnF1YXJ0ZXJOb3RlQmVhdHMoKSwgMC4y NSk7CisKKyAgICBjb25zdCBNaW51ZXQ6OlJoeXRobVRva2VuIHJlc3QgPSBNaW51ZXQ6OnBhcnNl Umh5dGhtVG9rZW4odSJyOC4iKTsKKyAgICBRVkVSSUZZKHJlc3QudmFsaWQpOworICAgIFFWRVJJ RlkocmVzdC5yZXN0KTsKKyAgICBRVkVSSUZZKHJlc3QuZG90dGVkKTsKKyAgICBRQ09NUEFSRShy ZXN0LmRlbm9taW5hdG9yLCA4KTsKKyAgICBRQ09NUEFSRShyZXN0LnF1YXJ0ZXJOb3RlQmVhdHMo KSwgMC43NSk7CisKKyAgICBRVkVSSUZZKCFNaW51ZXQ6OnBhcnNlUmh5dGhtVG9rZW4odSJyIiku dmFsaWQpOworICAgIFFWRVJJRlkoIU1pbnVldDo6cGFyc2VSaHl0aG1Ub2tlbih1InI4Li4iKS52 YWxpZCk7CisgICAgUVZFUklGWSghTWludWV0OjpwYXJzZVJoeXRobVRva2VuKHUiMCIpLnZhbGlk KTsKK30KKwordm9pZCBSaHl0aG1SZXN0VGVzdDo6Y29udGFpbnNFdmVyeU1peGVkUmVzdFZhcmlh bnQoKQoreworICAgIFFDT01QQVJFKG1fcmVzdERlZmluaXRpb25zLnNpemUoKSwgMzgpOworCisg ICAgUVNldDxRU3RyaW5nPiBhY3R1YWxTZXF1ZW5jZXM7CisgICAgZm9yIChjb25zdCBRSnNvblZh bHVlICZ2YWx1ZSA6IHN0ZDo6YXNfY29uc3QobV9yZXN0RGVmaW5pdGlvbnMpKSB7CisgICAgICAg IGNvbnN0IFFKc29uT2JqZWN0IGRlZmluaXRpb24gPSB2YWx1ZS50b09iamVjdCgpOworICAgICAg ICBjb25zdCBRU3RyaW5nIHNlcXVlbmNlID0gZGVmaW5pdGlvbi52YWx1ZSh1InNlcXVlbmNlIl9z KS50b1N0cmluZygpOworICAgICAgICBRVkVSSUZZMighYWN0dWFsU2VxdWVuY2VzLmNvbnRhaW5z KHNlcXVlbmNlKSwgcVByaW50YWJsZShzZXF1ZW5jZSkpOworICAgICAgICBhY3R1YWxTZXF1ZW5j ZXMuaW5zZXJ0KHNlcXVlbmNlKTsKKworICAgICAgICBib29sIGNvbnRhaW5zTm90ZSA9IGZhbHNl OworICAgICAgICBib29sIGNvbnRhaW5zUmVzdCA9IGZhbHNlOworICAgICAgICBmb3IgKGNvbnN0 IFFTdHJpbmcgJnRleHQgOiBzZXF1ZW5jZS5zcGxpdCh1JyAnLCBRdDo6U2tpcEVtcHR5UGFydHMp KSB7CisgICAgICAgICAgICBjb25zdCBNaW51ZXQ6OlJoeXRobVRva2VuIHRva2VuID0gTWludWV0 OjpwYXJzZVJoeXRobVRva2VuKHRleHQpOworICAgICAgICAgICAgUVZFUklGWTIodG9rZW4udmFs aWQsIHFQcmludGFibGUodGV4dCkpOworICAgICAgICAgICAgY29udGFpbnNSZXN0IHw9IHRva2Vu LnJlc3Q7CisgICAgICAgICAgICBjb250YWluc05vdGUgfD0gIXRva2VuLnJlc3Q7CisgICAgICAg IH0KKyAgICAgICAgUVZFUklGWShjb250YWluc1Jlc3QpOworICAgICAgICBRVkVSSUZZKGNvbnRh aW5zTm90ZSk7CisgICAgICAgIFFWRVJJRlkoIWRlZmluaXRpb24udmFsdWUodSJuYW1lIl9zKS50 b1N0cmluZygpLmlzRW1wdHkoKSk7CisgICAgfQorCisgICAgY29uc3QgUUpzb25BcnJheSBtZWRp dW1CYXNlcyA9IGRlZmluaXRpb25zV2l0aFRhZ3MobV9iYXNlRGVmaW5pdGlvbnMsIHt1InJoeXRo bSJfcywgdSJtZWRpdW0iX3N9KTsKKyAgICBRQ09NUEFSRShhY3R1YWxTZXF1ZW5jZXMsIGV4cGVj dGVkUmVzdFZhcmlhbnRzKG1lZGl1bUJhc2VzKSk7CisKKyAgICBjb25zdCBRSnNvbkFycmF5IGVh c3lCYXNlcyA9IGRlZmluaXRpb25zV2l0aFRhZ3MobV9iYXNlRGVmaW5pdGlvbnMsIHt1InJoeXRo bSJfcywgdSJlYXN5Il9zfSk7CisgICAgY29uc3QgUVNldDxRU3RyaW5nPiBlYXN5VmFyaWFudHMg PSBleHBlY3RlZFJlc3RWYXJpYW50cyhlYXN5QmFzZXMpOworICAgIFFTZXQ8UVN0cmluZz4gdGFn Z2VkRWFzeVZhcmlhbnRzOworICAgIGZvciAoY29uc3QgUUpzb25WYWx1ZSAmdmFsdWUgOiBzdGQ6 OmFzX2NvbnN0KG1fcmVzdERlZmluaXRpb25zKSkgeworICAgICAgICBjb25zdCBRSnNvbk9iamVj dCBkZWZpbml0aW9uID0gdmFsdWUudG9PYmplY3QoKTsKKyAgICAgICAgaWYgKGhhc1RhZyhkZWZp bml0aW9uLCB1ImVhc3ktd2l0aC1yZXN0cyJfcykpIHsKKyAgICAgICAgICAgIHRhZ2dlZEVhc3lW YXJpYW50cy5pbnNlcnQoZGVmaW5pdGlvbi52YWx1ZSh1InNlcXVlbmNlIl9zKS50b1N0cmluZygp KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBRQ09NUEFSRSh0YWdnZWRFYXN5VmFyaWFudHMsIGVh c3lWYXJpYW50cyk7Cit9CisKK3ZvaWQgUmh5dGhtUmVzdFRlc3Q6OmNhdGVnb3J5Q291bnRzQXJl U3RhYmxlKCkKK3sKKyAgICBRQ09NUEFSRShkZWZpbml0aW9uc1dpdGhUYWdzKG1fYWxsRGVmaW5p dGlvbnMsIHt1InJoeXRobSJfcywgdSJlYXN5LXdpdGgtcmVzdHMiX3N9KS5zaXplKCksIDEwKTsK KyAgICBRQ09NUEFSRShkZWZpbml0aW9uc1dpdGhUYWdzKG1fYWxsRGVmaW5pdGlvbnMsIHt1InJo eXRobSJfcywgdSJlYXN5LXdpdGgtcmVzdHMiX3MsIHUicmVzdC1saXN0ZW5pbmciX3N9KS5zaXpl KCksIDcpOworICAgIFFDT01QQVJFKGRlZmluaXRpb25zV2l0aFRhZ3MobV9hbGxEZWZpbml0aW9u cywge3Uicmh5dGhtIl9zLCB1Im1lZGl1bS13aXRoLXJlc3RzIl9zfSkuc2l6ZSgpLCA0Nik7Cisg ICAgUUNPTVBBUkUoZGVmaW5pdGlvbnNXaXRoVGFncyhtX2FsbERlZmluaXRpb25zLCB7dSJyaHl0 aG0iX3MsIHUibWVkaXVtLXdpdGgtcmVzdHMiX3MsIHUicmVzdC1saXN0ZW5pbmciX3N9KS5zaXpl KCksIDE1KTsKK30KKwordm9pZCBSaHl0aG1SZXN0VGVzdDo6Y2F0ZWdvcnlGaWx0ZXJzTWF0Y2hQ cmFjdGljZU1vZGVzKCkKK3sKKyAgICBjb25zdCBRSnNvbk9iamVjdCBlYXN5ID0gcmVzdENhdGVn b3J5KHUiZGF0YS9leGVyY2lzZXMvcmh5dGhtLWVhc3ktcmVzdHMuanNvbiJfcyk7CisgICAgY29u c3QgUUpzb25PYmplY3QgbWVkaXVtID0gcmVzdENhdGVnb3J5KHUiZGF0YS9leGVyY2lzZXMvcmh5 dGhtLW1lZGl1bS1yZXN0cy5qc29uIl9zKTsKKyAgICBRVkVSSUZZKCFlYXN5LmlzRW1wdHkoKSk7 CisgICAgUVZFUklGWSghbWVkaXVtLmlzRW1wdHkoKSk7CisKKyAgICBRQ09NUEFSRShkZWZpbml0 aW9uc1dpdGhUYWdzKG1fYWxsRGVmaW5pdGlvbnMsIHN0cmluZ0xpc3QoZWFzeS52YWx1ZSh1ImFu ZC10YWdzIl9zKS50b0FycmF5KCkpKS5zaXplKCksIDcpOworICAgIFFDT01QQVJFKGRlZmluaXRp b25zV2l0aFRhZ3MobV9hbGxEZWZpbml0aW9ucywgc3RyaW5nTGlzdChlYXN5LnZhbHVlKHUiY2xh cHBpbmctYW5kLXRhZ3MiX3MpLnRvQXJyYXkoKSkpLnNpemUoKSwgMTApOworICAgIFFDT01QQVJF KGRlZmluaXRpb25zV2l0aFRhZ3MobV9hbGxEZWZpbml0aW9ucywgc3RyaW5nTGlzdChtZWRpdW0u dmFsdWUodSJhbmQtdGFncyJfcykudG9BcnJheSgpKSkuc2l6ZSgpLCAxNSk7CisgICAgUUNPTVBB UkUoZGVmaW5pdGlvbnNXaXRoVGFncyhtX2FsbERlZmluaXRpb25zLCBzdHJpbmdMaXN0KG1lZGl1 bS52YWx1ZSh1ImNsYXBwaW5nLWFuZC10YWdzIl9zKS50b0FycmF5KCkpKS5zaXplKCksIDQ2KTsK K30KKwordm9pZCBSaHl0aG1SZXN0VGVzdDo6Y29uc2VjdXRpdmVTaXh0ZWVudGhzVXNlQmVhbXMo KQoreworICAgIGNvbnN0IFFTdHJpbmcgcGFpciA9IHUiXHVFMUYwXHVFMUY5XHVFMUY0Il9zOwor ICAgIGNvbnN0IFFTdHJpbmcgdHJpcGxlID0gdSJcdUUxRjBcdUUxRjlcdUUxRjRcdUUxRjlcdUUx RjQiX3M7CisgICAgY29uc3QgUVN0cmluZyBzaXh0ZWVudGhSZXN0ID0gdSJcdUU0RTciX3M7Cisg ICAgY29uc3QgUVN0cmluZyBlaWdodGhSZXN0ID0gdSJcdUU0RTYiX3M7CisgICAgY29uc3QgUVN0 cmluZyBpc29sYXRlZFNpeHRlZW50aCA9IHUiXHVFMUQ5Il9zOworCisgICAgUUNPTVBBUkUobmFt ZUZvclNlcXVlbmNlKG1fcmVzdERlZmluaXRpb25zLCB1InIxNiAxNiAxNiAxNiJfcyksIHNpeHRl ZW50aFJlc3QgKyB1JyAnICsgdHJpcGxlKTsKKyAgICBRQ09NUEFSRShuYW1lRm9yU2VxdWVuY2Uo bV9yZXN0RGVmaW5pdGlvbnMsIHUiMTYgcjE2IDE2IDE2Il9zKSwgaXNvbGF0ZWRTaXh0ZWVudGgg KyB1JyAnICsgc2l4dGVlbnRoUmVzdCArIHUnICcgKyBwYWlyKTsKKyAgICBRQ09NUEFSRShuYW1l Rm9yU2VxdWVuY2UobV9yZXN0RGVmaW5pdGlvbnMsIHUicjE2IHIxNiAxNiAxNiJfcyksIHNpeHRl ZW50aFJlc3QgKyB1JyAnICsgc2l4dGVlbnRoUmVzdCArIHUnICcgKyBwYWlyKTsKKyAgICBRQ09N UEFSRShuYW1lRm9yU2VxdWVuY2UobV9yZXN0RGVmaW5pdGlvbnMsIHUiMTYgMTYgcjE2IDE2Il9z KSwgcGFpciArIHUnICcgKyBzaXh0ZWVudGhSZXN0ICsgdScgJyArIGlzb2xhdGVkU2l4dGVlbnRo KTsKKyAgICBRQ09NUEFSRShuYW1lRm9yU2VxdWVuY2UobV9yZXN0RGVmaW5pdGlvbnMsIHUiMTYg MTYgMTYgcjE2Il9zKSwgdHJpcGxlICsgdScgJyArIHNpeHRlZW50aFJlc3QpOworICAgIFFDT01Q QVJFKG5hbWVGb3JTZXF1ZW5jZShtX3Jlc3REZWZpbml0aW9ucywgdSJyMTYgMTYgMTYgcjE2Il9z KSwgc2l4dGVlbnRoUmVzdCArIHUnICcgKyBwYWlyICsgdScgJyArIHNpeHRlZW50aFJlc3QpOwor ICAgIFFDT01QQVJFKG5hbWVGb3JTZXF1ZW5jZShtX3Jlc3REZWZpbml0aW9ucywgdSIxNiAxNiBy MTYgcjE2Il9zKSwgcGFpciArIHUnICcgKyBzaXh0ZWVudGhSZXN0ICsgdScgJyArIHNpeHRlZW50 aFJlc3QpOworICAgIFFDT01QQVJFKG5hbWVGb3JTZXF1ZW5jZShtX3Jlc3REZWZpbml0aW9ucywg dSJyOCAxNiAxNiJfcyksIGVpZ2h0aFJlc3QgKyB1JyAnICsgcGFpcik7CisgICAgUUNPTVBBUkUo bmFtZUZvclNlcXVlbmNlKG1fcmVzdERlZmluaXRpb25zLCB1IjE2IDE2IHI4Il9zKSwgcGFpciAr IHUnICcgKyBlaWdodGhSZXN0KTsKK30KKwordm9pZCBSaHl0aG1SZXN0VGVzdDo6bGlzdGVuaW5n UGF0dGVybnNIYXZlVW5pcXVlT25zZXRzKCkKK3sKKyAgICBmb3IgKGNvbnN0IFFTdHJpbmcgJmNh dGVnb3J5IDoge3UiZWFzeS13aXRoLXJlc3RzIl9zLCB1Im1lZGl1bS13aXRoLXJlc3RzIl9zfSkg eworICAgICAgICBjb25zdCBRSnNvbkFycmF5IGRlZmluaXRpb25zID0gZGVmaW5pdGlvbnNXaXRo VGFncyhtX2FsbERlZmluaXRpb25zLCB7dSJyaHl0aG0iX3MsIGNhdGVnb3J5LCB1InJlc3QtbGlz dGVuaW5nIl9zfSk7CisgICAgICAgIFFTZXQ8UVN0cmluZz4gc2lnbmF0dXJlczsKKyAgICAgICAg Zm9yIChjb25zdCBRSnNvblZhbHVlICZ2YWx1ZSA6IGRlZmluaXRpb25zKSB7CisgICAgICAgICAg ICBjb25zdCBRU3RyaW5nIHNpZ25hdHVyZSA9IG9uc2V0U2lnbmF0dXJlKHZhbHVlLnRvT2JqZWN0 KCkudmFsdWUodSJzZXF1ZW5jZSJfcykudG9TdHJpbmcoKSk7CisgICAgICAgICAgICBRVkVSSUZZ Mighc2lnbmF0dXJlcy5jb250YWlucyhzaWduYXR1cmUpLCBxUHJpbnRhYmxlKHNpZ25hdHVyZSkp OworICAgICAgICAgICAgc2lnbmF0dXJlcy5pbnNlcnQoc2lnbmF0dXJlKTsKKyAgICAgICAgfQor ICAgICAgICBRQ09NUEFSRShzaWduYXR1cmVzLnNpemUoKSwgZGVmaW5pdGlvbnMuc2l6ZSgpKTsK KyAgICB9Cit9CisKK3ZvaWQgUmh5dGhtUmVzdFRlc3Q6OmV2ZXJ5UGF0dGVybkZpbGxzT25lQmVh dCgpCit7CisgICAgZm9yIChjb25zdCBRSnNvblZhbHVlICZ2YWx1ZSA6IHN0ZDo6YXNfY29uc3Qo bV9hbGxEZWZpbml0aW9ucykpIHsKKyAgICAgICAgY29uc3QgUVN0cmluZyBzZXF1ZW5jZSA9IHZh bHVlLnRvT2JqZWN0KCkudmFsdWUodSJzZXF1ZW5jZSJfcykudG9TdHJpbmcoKTsKKyAgICAgICAg ZG91YmxlIGR1cmF0aW9uID0gMC4wOworICAgICAgICBmb3IgKGNvbnN0IFFTdHJpbmcgJnRleHQg OiBzZXF1ZW5jZS5zcGxpdCh1JyAnLCBRdDo6U2tpcEVtcHR5UGFydHMpKSB7CisgICAgICAgICAg ICBjb25zdCBNaW51ZXQ6OlJoeXRobVRva2VuIHRva2VuID0gTWludWV0OjpwYXJzZVJoeXRobVRv a2VuKHRleHQpOworICAgICAgICAgICAgUVZFUklGWTIodG9rZW4udmFsaWQsIHFQcmludGFibGUo dGV4dCkpOworICAgICAgICAgICAgZHVyYXRpb24gKz0gdG9rZW4ucXVhcnRlck5vdGVCZWF0cygp OworICAgICAgICB9CisgICAgICAgIFFWRVJJRlkyKHFBYnMoZHVyYXRpb24gLSAxLjApIDwgMC4w MDAxLCBxUHJpbnRhYmxlKHNlcXVlbmNlKSk7CisgICAgfQorfQorCitRVEVTVF9HVUlMRVNTX01B SU4oUmh5dGhtUmVzdFRlc3QpCisKKyNpbmNsdWRlICJyaHl0aG1yZXN0dGVzdC5tb2MiCmRpZmYg LS1naXQgYS9zcmMvYXBwL2V4ZXJjaXNlY2F0YWxvZ2NvbnRyb2xsZXIuY3BwIGIvc3JjL2FwcC9l eGVyY2lzZWNhdGFsb2djb250cm9sbGVyLmNwcAppbmRleCBmZTUxNzM2Li4xMTkwMzQ1IDEwMDY0 NAotLS0gYS9zcmMvYXBwL2V4ZXJjaXNlY2F0YWxvZ2NvbnRyb2xsZXIuY3BwCisrKyBiL3NyYy9h cHAvZXhlcmNpc2VjYXRhbG9nY29udHJvbGxlci5jcHAKQEAgLTI4Myw2ICsyODMsMTMgQEAgUUpz b25BcnJheSBFeGVyY2lzZUNhdGFsb2dDb250cm9sbGVyOjphcHBseURlZmluaXRpb25zKFFKc29u QXJyYXkgZXhlcmNpc2VzLCBRSnMKICAgICAgICAgaWYgKGkxLT5pc09iamVjdCgpKSB7CiAgICAg ICAgICAgICBRSnNvbk9iamVjdCBleGVyY2lzZU9iamVjdCA9IGkxLT50b09iamVjdCgpOwogICAg ICAgICAgICAgUUpzb25BcnJheSBmaWx0ZXJlZERlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7Cisg ICAgICAgICAgICBRSnNvbkFycmF5IGNsYXBwaW5nRGVmaW5pdGlvbnM7CisgICAgICAgICAgICBp ZiAoZXhlcmNpc2VPYmplY3QudmFsdWUodSJjbGFwcGluZy1hbmQtdGFncyJfcykuaXNBcnJheSgp KSB7CisgICAgICAgICAgICAgICAgY2xhcHBpbmdEZWZpbml0aW9ucyA9IGRlZmluaXRpb25zOwor ICAgICAgICAgICAgICAgIFFKc29uT2JqZWN0IGNsYXBwaW5nRmlsdGVyOworICAgICAgICAgICAg ICAgIGNsYXBwaW5nRmlsdGVyLmluc2VydCh1ImFuZC10YWdzIl9zLCBleGVyY2lzZU9iamVjdC50 YWtlKHUiY2xhcHBpbmctYW5kLXRhZ3MiX3MpKTsKKyAgICAgICAgICAgICAgICBmaWx0ZXJEZWZp bml0aW9ucyhjbGFwcGluZ0RlZmluaXRpb25zLCBjbGFwcGluZ0ZpbHRlciwgdSJhbmQtdGFncyJf cywgRGVmaW5pdGlvbkZpbHRlcmluZ01vZGU6OkFuZEZpbHRlcmluZyk7CisgICAgICAgICAgICB9 CiAgICAgICAgICAgICBjb25zdCBRU3RyaW5nTGlzdCBleGVyY2lzZU9iamVjdEtleXMgPSBleGVy Y2lzZU9iamVjdC5rZXlzKCk7CiAgICAgICAgICAgICBpZiAoZXhlcmNpc2VPYmplY3RLZXlzLmNv bnRhaW5zKHUiYW5kLXRhZ3MiX3MpICYmIGV4ZXJjaXNlT2JqZWN0W3UiYW5kLXRhZ3MiX3NdLmlz QXJyYXkoKSkgewogICAgICAgICAgICAgICAgIGZpbHRlckRlZmluaXRpb25zKGZpbHRlcmVkRGVm aW5pdGlvbnMsIGV4ZXJjaXNlT2JqZWN0LCB1ImFuZC10YWdzIl9zLCBEZWZpbml0aW9uRmlsdGVy aW5nTW9kZTo6QW5kRmlsdGVyaW5nKTsKQEAgLTMwNiw2ICszMTMsOSBAQCBRSnNvbkFycmF5IEV4 ZXJjaXNlQ2F0YWxvZ0NvbnRyb2xsZXI6OmFwcGx5RGVmaW5pdGlvbnMoUUpzb25BcnJheSBleGVy Y2lzZXMsIFFKcwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgIGV4ZXJjaXNlT2JqZWN0Lmluc2VydCh1Im9wdGlvbnMiX3MsIGZpbHRlcmVk RGVmaW5pdGlvbnMpOworICAgICAgICAgICAgICAgIGlmICghY2xhcHBpbmdEZWZpbml0aW9ucy5p c0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZXhlcmNpc2VPYmplY3QuaW5zZXJ0KHUi cmh5dGhtQ2xhcHBpbmdPcHRpb25zIl9zLCBjbGFwcGluZ0RlZmluaXRpb25zKTsKKyAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBleGVyY2lzZXNbaTEgLSBleGVy Y2lzZXNCZWdpbl0gPSBleGVyY2lzZU9iamVjdDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc3Jj L2FwcC9leGVyY2lzZXNlc3Npb25jb250cm9sbGVyLmNwcCBiL3NyYy9hcHAvZXhlcmNpc2VzZXNz aW9uY29udHJvbGxlci5jcHAKaW5kZXggZDJlNzA4OS4uNTQzNzgyZCAxMDA2NDQKLS0tIGEvc3Jj L2FwcC9leGVyY2lzZXNlc3Npb25jb250cm9sbGVyLmNwcAorKysgYi9zcmMvYXBwL2V4ZXJjaXNl c2Vzc2lvbmNvbnRyb2xsZXIuY3BwCkBAIC00LDYgKzQsOCBAQAogCiAjaW5jbHVkZSAiZXhlcmNp c2VzZXNzaW9uY29udHJvbGxlci5oIgogCisjaW5jbHVkZSA8dXRpbHMvcmh5dGhtdG9rZW4uaD4K KwogI2luY2x1ZGUgPEtMb2NhbGl6ZWRTdHJpbmc+CiAKICNpbmNsdWRlIDxRRGVidWc+CkBAIC00 NTYsMTQgKzQ1OCwyNCBAQCB2b2lkIEV4ZXJjaXNlU2Vzc2lvbkNvbnRyb2xsZXI6OnJhbmRvbWx5 U2VsZWN0RXhlcmNpc2VPcHRpb25zKGludCBzZWxlY3RlZE9wdGlvbgogICAgICAgICB9CiAKICAg ICAgICAgZm9yIChjb25zdCBRU3RyaW5nICZhZGRpdGlvbmFsTm90ZSA6IGFkZGl0aW9uYWxOb3Rl cykgewotICAgICAgICAgICAgUVN0cmluZyBub3RlVGV4dCA9IGFkZGl0aW9uYWxOb3RlOwotICAg ICAgICAgICAgaWYgKGlzUmh5dGhtICYmIG5vdGVUZXh0LmVuZHNXaXRoKFFMYXRpbjFDaGFyKCcu JykpKSB7Ci0gICAgICAgICAgICAgICAgbm90ZVRleHQuY2hvcCgxKTsKKyAgICAgICAgICAgIGlm IChpc1JoeXRobSkgeworICAgICAgICAgICAgICAgIGNvbnN0IFJoeXRobVRva2VuIHJoeXRobVRv a2VuID0gcGFyc2VSaHl0aG1Ub2tlbihhZGRpdGlvbmFsTm90ZSk7CisgICAgICAgICAgICAgICAg aWYgKCFyaHl0aG1Ub2tlbi52YWxpZCkgeworICAgICAgICAgICAgICAgICAgICBmYWlsU2VsZWN0 aW9uKHUiQ3VycmVudCBleGVyY2lzZSBvcHRpb24gaGFzIGFuIGludmFsaWQgc2VxdWVuY2UuIl9z KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICBpZiAocmh5dGhtVG9rZW4uZGVub21pbmF0b3IgPiBtYXhOb3RlKSB7 CisgICAgICAgICAgICAgICAgICAgIG1heE5vdGUgPSByaHl0aG1Ub2tlbi5kZW5vbWluYXRvcjsK KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHJoeXRobVRva2VuLmRlbm9t aW5hdG9yIDwgbWluTm90ZSkgeworICAgICAgICAgICAgICAgICAgICBtaW5Ob3RlID0gcmh5dGht VG9rZW4uZGVub21pbmF0b3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNv bnRpbnVlOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0g ICAgICAgICAgICBjb25zdCBpbnQgbm90ZSA9IG5vdGVUZXh0LnRvSW50KCZvayk7Ci0gICAgICAg ICAgICBpZiAoIW9rIHx8IChpc1JoeXRobSAmJiBub3RlIDw9IDApKSB7CisgICAgICAgICAgICBj b25zdCBpbnQgbm90ZSA9IGFkZGl0aW9uYWxOb3RlLnRvSW50KCZvayk7CisgICAgICAgICAgICBp ZiAoIW9rKSB7CiAgICAgICAgICAgICAgICAgZmFpbFNlbGVjdGlvbih1IkN1cnJlbnQgZXhlcmNp c2Ugb3B0aW9uIGhhcyBhbiBpbnZhbGlkIHNlcXVlbmNlLiJfcyk7CiAgICAgICAgICAgICAgICAg cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL2FwcC9xbWwvRXhl cmNpc2VDbGFwcGluZ1ZpZXcucW1sIGIvc3JjL2FwcC9xbWwvRXhlcmNpc2VDbGFwcGluZ1ZpZXcu cW1sCmluZGV4IGU0N2EwMGMuLjE3Mjc2OGUgMTAwNjQ0Ci0tLSBhL3NyYy9hcHAvcW1sL0V4ZXJj aXNlQ2xhcHBpbmdWaWV3LnFtbAorKysgYi9zcmMvYXBwL3FtbC9FeGVyY2lzZUNsYXBwaW5nVmll dy5xbWwKQEAgLTIyOCw2ICsyMjgsOSBAQCBJdGVtIHsKICAgICB9CiAgICAgZnVuY3Rpb24gZHVy YXRpb25Gb3JUb2tlbih0b2tlbjogc3RyaW5nKTogcmVhbCB7CiAgICAgICAgIGxldCBub3RlID0g dG9rZW47CisgICAgICAgIGlmIChub3RlLnN0YXJ0c1dpdGgoInIiKSkgeworICAgICAgICAgICAg bm90ZSA9IG5vdGUuc2xpY2UoMSk7CisgICAgICAgIH0KICAgICAgICAgbGV0IGRvdHRlZCA9IDEu MDsKICAgICAgICAgaWYgKG5vdGUuZW5kc1dpdGgoIi4iKSkgewogICAgICAgICAgICAgZG90dGVk ID0gMS41OwpAQCAtMzI1LDExICszMjgsMTMgQEAgSXRlbSB7CiAgICAgICAgICAgICBsZXQgZmln dXJlT25zZXRzID0gW107CiAgICAgICAgICAgICBjb25zdCBmaWd1cmVTdGFydCA9IGN1cnNvcjsK ICAgICAgICAgICAgIGZvciAoY29uc3QgcGFydCBvZiBwYXJ0cykgewotICAgICAgICAgICAgICAg IGZpZ3VyZU9uc2V0cy5wdXNoKG9uc2V0TGlzdC5sZW5ndGgpOwotICAgICAgICAgICAgICAgIG9u c2V0TGlzdC5wdXNoKHsKLSAgICAgICAgICAgICAgICAgICAgImZpZ3VyZSI6IGZpZ3VyZUluZGV4 LAotICAgICAgICAgICAgICAgICAgICAidGltZU1zIjogY3Vyc29yCi0gICAgICAgICAgICAgICAg fSk7CisgICAgICAgICAgICAgICAgaWYgKCFpc1Jlc3RUb2tlbihwYXJ0KSkgeworICAgICAgICAg ICAgICAgICAgICBmaWd1cmVPbnNldHMucHVzaChvbnNldExpc3QubGVuZ3RoKTsKKyAgICAgICAg ICAgICAgICAgICAgb25zZXRMaXN0LnB1c2goeworICAgICAgICAgICAgICAgICAgICAgICAgImZp Z3VyZSI6IGZpZ3VyZUluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVNcyI6IGN1 cnNvcgorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgY3Vyc29yICs9IGR1cmF0aW9uRm9yVG9rZW4ocGFydCk7CiAgICAgICAgICAgICB9 CiAgICAgICAgICAgICBzdGF0ZXMucHVzaCh7CkBAIC0zNzEsNiArMzc2LDkgQEAgSXRlbSB7CiAg ICAgICAgIHJvb3QucGVyZm9ybWVkT25zZXRzID0gcGVyZm9ybWVkOwogICAgICAgICByZWZyZXNo RmlndXJlU3RhdGVzKGVsYXBzZWRNcyk7CiAgICAgfQorICAgIGZ1bmN0aW9uIGlzUmVzdFRva2Vu KHRva2VuOiBzdHJpbmcpOiBib29sIHsKKyAgICAgICAgcmV0dXJuIHRva2VuLnN0YXJ0c1dpdGgo InIiKTsKKyAgICB9CiAgICAgZnVuY3Rpb24gbWFwUmh5dGhtUm93WChsb2NhbFg6IHJlYWwpOiBy ZWFsIHsKICAgICAgICAgY29uc3QgZ2VvbWV0cnlEZXBlbmRlbmN5ID0gcmh5dGhtRnJhbWUueCAr IHJoeXRobVZpZXdwb3J0LnggKyByaHl0aG1WaWV3cG9ydC5jb250ZW50WCArIHJoeXRobUNvbnRl bnQueCArIHJoeXRobVJvdy54ICsgcmh5dGhtUm93LmltcGxpY2l0V2lkdGg7CiAgICAgICAgIHJl dHVybiByaHl0aG1Sb3cubWFwVG9JdGVtKHJvb3QsIGxvY2FsWCArIGdlb21ldHJ5RGVwZW5kZW5j eSAqIDAsIDApLng7CmRpZmYgLS1naXQgYS9zcmMvYXBwL3FtbC9QcmFjdGljZU1vZGVQYWdlLnFt bCBiL3NyYy9hcHAvcW1sL1ByYWN0aWNlTW9kZVBhZ2UucW1sCmluZGV4IGQ1YWUxZmYuLjNjMjFl OGQgMTAwNjQ0Ci0tLSBhL3NyYy9hcHAvcW1sL1ByYWN0aWNlTW9kZVBhZ2UucW1sCisrKyBiL3Ny Yy9hcHAvcW1sL1ByYWN0aWNlTW9kZVBhZ2UucW1sCkBAIC0yNiw2ICsyNiwxMCBAQCBLaXJpZ2Ft aS5QYWdlIHsKICAgICAgICAgICAgIGV4ZXJjaXNlW2tleV0gPSBwYWdlLmN1cnJlbnRFeGVyY2lz ZVtrZXldOwogICAgICAgICB9CiAgICAgICAgIGV4ZXJjaXNlLmlucHV0TW9kZSA9IGlucHV0TW9k ZTsKKyAgICAgICAgaWYgKGlucHV0TW9kZSA9PT0gImNsYXBwaW5nIiAmJiBleGVyY2lzZS5yaHl0 aG1DbGFwcGluZ09wdGlvbnMgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgZXhlcmNpc2Uu b3B0aW9ucyA9IGV4ZXJjaXNlLnJoeXRobUNsYXBwaW5nT3B0aW9uczsKKyAgICAgICAgfQorICAg ICAgICBkZWxldGUgZXhlcmNpc2Uucmh5dGhtQ2xhcHBpbmdPcHRpb25zOwogICAgICAgICBpZiAo aW5wdXRNb2RlID09PSAic2luZ2luZyIpIHsKICAgICAgICAgICAgIGV4ZXJjaXNlLnNpbmdpbmdF eGVyY2lzZUtpbmQgPSBwYWdlLnByYWN0aWNlTW9kZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv c3JjL3BsdWdpbnMvZmx1aWRzeW50aHNvdW5kY29udHJvbGxlci9mbHVpZHN5bnRoc291bmRjb250 cm9sbGVyLmNwcCBiL3NyYy9wbHVnaW5zL2ZsdWlkc3ludGhzb3VuZGNvbnRyb2xsZXIvZmx1aWRz eW50aHNvdW5kY29udHJvbGxlci5jcHAKaW5kZXggYzFlZDY5MC4uYTc5OWJlNCAxMDA2NDQKLS0t IGEvc3JjL3BsdWdpbnMvZmx1aWRzeW50aHNvdW5kY29udHJvbGxlci9mbHVpZHN5bnRoc291bmRj b250cm9sbGVyLmNwcAorKysgYi9zcmMvcGx1Z2lucy9mbHVpZHN5bnRoc291bmRjb250cm9sbGVy L2ZsdWlkc3ludGhzb3VuZGNvbnRyb2xsZXIuY3BwCkBAIC00LDYgKzQsOCBAQAogCiAjaW5jbHVk ZSAiZmx1aWRzeW50aHNvdW5kY29udHJvbGxlci5oIgogCisjaW5jbHVkZSA8dXRpbHMvcmh5dGht dG9rZW4uaD4KKwogI2luY2x1ZGUgPEtMb2NhbGl6ZWRTdHJpbmc+CiAKICNpbmNsdWRlIDxRQ29y ZUFwcGxpY2F0aW9uPgpAQCAtMjIwLDIxICsyMjIsMTUgQEAgdm9pZCBGbHVpZFN5bnRoU291bmRD b250cm9sbGVyOjpwcmVwYXJlRnJvbUV4ZXJjaXNlT3B0aW9ucyhRSnNvbkFycmF5IHNlbGVjdGVk RXgKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIGFwcGVuZEV2ZW50KDksIDgwLCAx MjcsIDEwMDAqKDYwLjAvbV90ZW1wbykpOwogICAgICAgICAgICAgY29uc3QgUVN0cmluZ0xpc3Qg YWRkaXRpb25hbE5vdGVzID0gc2VxdWVuY2Uuc3BsaXQoUUxhdGluMUNoYXIoJyAnKSwgUXQ6OlNr aXBFbXB0eVBhcnRzKTsKLSAgICAgICAgICAgIGZvciAoUVN0cmluZyBhZGRpdGlvbmFsTm90ZSA6 IGFkZGl0aW9uYWxOb3RlcykgewotICAgICAgICAgICAgICAgIGZsb2F0IGRvdHRlZCA9IDE7Ci0g ICAgICAgICAgICAgICAgaWYgKGFkZGl0aW9uYWxOb3RlLmVuZHNXaXRoKCcuJykpIHsKLSAgICAg ICAgICAgICAgICAgICAgZG90dGVkID0gMS41OwotICAgICAgICAgICAgICAgICAgICBhZGRpdGlv bmFsTm90ZS5jaG9wKDEpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBib29s IG9rID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgY29uc3QgaW50IGRlbm9taW5hdG9yID0gYWRk aXRpb25hbE5vdGUudG9JbnQoJm9rKTsKLSAgICAgICAgICAgICAgICBpZiAoIW9rIHx8IGRlbm9t aW5hdG9yIDw9IDApIHsKKyAgICAgICAgICAgIGZvciAoY29uc3QgUVN0cmluZyAmYWRkaXRpb25h bE5vdGUgOiBhZGRpdGlvbmFsTm90ZXMpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBNaW51ZXQ6 OlJoeXRobVRva2VuIHRva2VuID0gTWludWV0OjpwYXJzZVJoeXRobVRva2VuKGFkZGl0aW9uYWxO b3RlKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRva2VuLnZhbGlkKSB7CiAgICAgICAgICAgICAg ICAgICAgIHFXYXJuaW5nKCkgPDwgIklnbm9yaW5nIGV4ZXJjaXNlIG9wdGlvbiB3aXRoIGludmFs aWQgcmh5dGhtIHZhbHVlOiIgPDwgYWRkaXRpb25hbE5vdGU7CiAgICAgICAgICAgICAgICAgICAg IGNsZWFyU29uZygpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkdXJhdGlvbiA9IGRvdHRlZCAqIDEw MDAgKiAoNjAuMCAvIG1fdGVtcG8pICogKDQuMCAvIGRlbm9taW5hdG9yKTsKLSAgICAgICAgICAg ICAgICBhcHBlbmRFdmVudChSaHl0aG1DaGFubmVsLCBtX3JoeXRobUluc3RydW1lbnQsIDEyNywg ZHVyYXRpb24pOworICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBkdXJhdGlvbiA9 IHRva2VuLnF1YXJ0ZXJOb3RlQmVhdHMoKSAqIDEwMDAgKiAoNjAuMCAvIG1fdGVtcG8pOworICAg ICAgICAgICAgICAgIGFwcGVuZEV2ZW50KFJoeXRobUNoYW5uZWwsIG1fcmh5dGhtSW5zdHJ1bWVu dCwgdG9rZW4ucmVzdCA/IDAgOiAxMjcsIGR1cmF0aW9uKTsKICAgICAgICAgICAgIH0KICAgICAg ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL3NyYy91dGlscy9yaHl0aG10b2tlbi5oIGIvc3JjL3V0 aWxzL3JoeXRobXRva2VuLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjNj OTNjMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy91dGlscy9yaHl0aG10b2tlbi5oCkBAIC0wLDAg KzEsNDMgQEAKKy8vIFNQRFgtRmlsZUNvcHlyaWdodFRleHQ6IDIwMjYgU2FuZHJvIEFuZHJhZGUg PHNhbmRyb2FuZHJhZGVAa2RlLm9yZz4KKy8vCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog R1BMLTIuMC1vci1sYXRlcgorCisjaWZuZGVmIE1JTlVFVF9SSFlUSE1UT0tFTl9ICisjZGVmaW5l IE1JTlVFVF9SSFlUSE1UT0tFTl9ICisKKyNpbmNsdWRlIDxRU3RyaW5nVmlldz4KKworbmFtZXNw YWNlIE1pbnVldAoreworc3RydWN0IFJoeXRobVRva2VuIHsKKyAgICBib29sIHZhbGlkID0gZmFs c2U7CisgICAgYm9vbCByZXN0ID0gZmFsc2U7CisgICAgYm9vbCBkb3R0ZWQgPSBmYWxzZTsKKyAg ICBpbnQgZGVub21pbmF0b3IgPSAwOworCisgICAgZG91YmxlIHF1YXJ0ZXJOb3RlQmVhdHMoKSBj b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHZhbGlkID8gNC4wIC8gZGVub21pbmF0b3IgKiAo ZG90dGVkID8gMS41IDogMS4wKSA6IDAuMDsKKyAgICB9Cit9OworCitpbmxpbmUgUmh5dGhtVG9r ZW4gcGFyc2VSaHl0aG1Ub2tlbihRU3RyaW5nVmlldyB0ZXh0KQoreworICAgIFJoeXRobVRva2Vu IHRva2VuOworICAgIGlmICh0ZXh0LnN0YXJ0c1dpdGgodSdyJykpIHsKKyAgICAgICAgdG9rZW4u cmVzdCA9IHRydWU7CisgICAgICAgIHRleHQgPSB0ZXh0LnNsaWNlZCgxKTsKKyAgICB9CisgICAg aWYgKHRleHQuZW5kc1dpdGgodScuJykpIHsKKyAgICAgICAgdG9rZW4uZG90dGVkID0gdHJ1ZTsK KyAgICAgICAgdGV4dCA9IHRleHQuZmlyc3QodGV4dC5zaXplKCkgLSAxKTsKKyAgICB9CisKKyAg ICBib29sIG9rID0gZmFsc2U7CisgICAgdG9rZW4uZGVub21pbmF0b3IgPSB0ZXh0LnRvSW50KCZv ayk7CisgICAgdG9rZW4udmFsaWQgPSBvayAmJiB0b2tlbi5kZW5vbWluYXRvciA+IDA7CisgICAg cmV0dXJuIHRva2VuOworfQorfQorCisjZW5kaWYK