--b1_98bcd108f8a08f8320cc0b779ea36835 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: quoted-printable kkwli0 updated this revision to Diff 31171. kkwli0 added a comment. Updated unit tests. http://reviews.llvm.org/D11619 Files: lib/Sema/SemaOpenMP.cpp test/OpenMP/for_firstprivate_messages.cpp test/OpenMP/for_lastprivate_messages.cpp test/OpenMP/for_private_messages.cpp test/OpenMP/for_reduction_messages.cpp test/OpenMP/for_simd_firstprivate_messages.cpp test/OpenMP/for_simd_lastprivate_messages.cpp test/OpenMP/for_simd_private_messages.cpp test/OpenMP/for_simd_reduction_messages.cpp test/OpenMP/parallel_firstprivate_messages.cpp test/OpenMP/parallel_for_firstprivate_messages.cpp test/OpenMP/parallel_for_lastprivate_messages.cpp test/OpenMP/parallel_for_private_messages.cpp test/OpenMP/parallel_for_reduction_messages.cpp test/OpenMP/parallel_for_simd_firstprivate_messages.cpp test/OpenMP/parallel_for_simd_lastprivate_messages.cpp test/OpenMP/parallel_for_simd_private_messages.cpp test/OpenMP/parallel_for_simd_reduction_messages.cpp test/OpenMP/parallel_private_messages.cpp test/OpenMP/parallel_reduction_messages.cpp test/OpenMP/parallel_sections_firstprivate_messages.cpp test/OpenMP/parallel_sections_lastprivate_messages.cpp test/OpenMP/parallel_sections_private_messages.cpp test/OpenMP/parallel_sections_reduction_messages.cpp test/OpenMP/sections_firstprivate_messages.cpp test/OpenMP/sections_lastprivate_messages.cpp test/OpenMP/sections_private_messages.cpp test/OpenMP/sections_reduction_messages.cpp test/OpenMP/simd_lastprivate_messages.cpp test/OpenMP/single_firstprivate_messages.cpp test/OpenMP/single_private_messages.cpp test/OpenMP/task_firstprivate_messages.cpp test/OpenMP/task_private_messages.cpp test/OpenMP/teams_firstprivate_messages.cpp test/OpenMP/teams_private_messages.cpp test/OpenMP/teams_reduction_messages.cpp --b1_98bcd108f8a08f8320cc0b779ea36835 Content-Type: text/x-patch; charset=utf-8; name="D11619.31171.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D11619.31171.patch" SW5kZXg6IHRlc3QvT3Blbk1QL3RlYW1zX3JlZHVjdGlvbl9tZXNzYWdlcy5j cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVuTVAvdGVh bXNfcmVkdWN0aW9uX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAvdGVh bXNfcmVkdWN0aW9uX21lc3NhZ2VzLmNwcApAQCAtMzEwLDYgKzMxMCwxMCBA QAogI3ByYWdtYSBvbXAgdGFyZ2V0CiAjcHJhZ21hIG9tcCB0ZWFtcyByZWR1 Y3Rpb24oKyA6IGZsKQogICAgIGZvbygpOworICBzdGF0aWMgaW50IG07Cisj cHJhZ21hIG9tcCB0YXJnZXQKKyNwcmFnbWEgb21wIHRlYW1zIHJlZHVjdGlv bigrIDogbSkgLy8gT0sKKyAgZm9vKCk7CiAKICAgcmV0dXJuIHRtYWluKGFy Z2MpICsgdG1haW4oZmwpOyAvLyBleHBlY3RlZC1ub3RlIHt7aW4gaW5zdGFu dGlhdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiAn dG1haW48aW50PicgcmVxdWVzdGVkIGhlcmV9fSBleHBlY3RlZC1ub3RlIHt7 aW4gaW5zdGFudGlhdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFs aXphdGlvbiAndG1haW48ZmxvYXQ+JyByZXF1ZXN0ZWQgaGVyZX19CiB9Cklu ZGV4OiB0ZXN0L09wZW5NUC90ZWFtc19wcml2YXRlX21lc3NhZ2VzLmNwcAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0L09wZW5NUC90ZWFtc19w cml2YXRlX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAvdGVhbXNfcHJp dmF0ZV9tZXNzYWdlcy5jcHAKQEAgLTEyMiw2ICsxMjIsMTAgQEAKICAgICAj cHJhZ21hIG9tcCBwYXJhbGxlbCBwcml2YXRlKGkpCiAgICAgZm9vKCk7CiAg IH0KKyAgc3RhdGljIGludCBtOworICAjcHJhZ21hIG9tcCB0YXJnZXQKKyAg I3ByYWdtYSBvbXAgdGVhbXMgcHJpdmF0ZShtKSAvLyBPSworICBmb28oKTsK IAogICByZXR1cm4gMDsKIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3RlYW1zX2Zp cnN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gdGVzdC9PcGVuTVAvdGVhbXNfZmlyc3Rwcml2YXRlX21lc3NhZ2Vz LmNwcAorKysgdGVzdC9PcGVuTVAvdGVhbXNfZmlyc3Rwcml2YXRlX21lc3Nh Z2VzLmNwcApAQCAtMTI3LDYgKzEyNywxMCBAQAogI3ByYWdtYSBvbXAgdGFy Z2V0CiAjcHJhZ21hIG9tcCB0ZWFtcyBmaXJzdHByaXZhdGUoaikgLy8gZXhw ZWN0ZWQtZXJyb3Ige3thcmd1bWVudHMgb2YgT3Blbk1QIGNsYXVzZSAnZmly c3Rwcml2YXRlJyBjYW5ub3QgYmUgb2YgcmVmZXJlbmNlIHR5cGV9fQogICBm b28oKTsKKyAgc3RhdGljIGludCBtOworI3ByYWdtYSBvbXAgdGFyZ2V0Cisj cHJhZ21hIG9tcCB0ZWFtcyBmaXJzdHByaXZhdGUobSkgLy8gT0sKKyAgZm9v KCk7CiAKICAgcmV0dXJuIDA7CiB9CkluZGV4OiB0ZXN0L09wZW5NUC90YXNr X3ByaXZhdGVfbWVzc2FnZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHRlc3QvT3Blbk1QL3Rhc2tfcHJpdmF0ZV9tZXNzYWdlcy5jcHAKKysr IHRlc3QvT3Blbk1QL3Rhc2tfcHJpdmF0ZV9tZXNzYWdlcy5jcHAKQEAgLTkz LDYgKzkzLDkgQEAKICNwcmFnbWEgb21wIHRhc2sgcHJpdmF0ZShpKQogICAg IGZvbygpOwogICB9CisgIHN0YXRpYyBpbnQgbTsKKyNwcmFnbWEgb21wIHRh c2sgcHJpdmF0ZShtKSAvLyBPSworICAgIGZvbygpOwogCiAgIHJldHVybiAw OwogfQpJbmRleDogdGVzdC9PcGVuTVAvdGFza19maXJzdHByaXZhdGVfbWVz c2FnZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3QvT3Bl bk1QL3Rhc2tfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAorKysgdGVzdC9P cGVuTVAvdGFza19maXJzdHByaXZhdGVfbWVzc2FnZXMuY3BwCkBAIC03MSw2 ICs3MSw3IEBACiAgIFM1IGcoNSk7CiAgIGludCBpOwogICBpbnQgJmogPSBp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gZXhwZWN0ZWQtbm90ZSB7eydqJyBkZWZpbmVkIGhlcmV9fQorICBz dGF0aWMgaW50IG07CiAjcHJhZ21hIG9tcCB0YXNrIGZpcnN0cHJpdmF0ZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBleHBlY3RlZC1lcnJv ciB7e2V4cGVjdGVkICcoJyBhZnRlciAnZmlyc3Rwcml2YXRlJ319CiAjcHJh Z21hIG9tcCB0YXNrIGZpcnN0cHJpdmF0ZSggICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyBleHBlY3RlZC1lcnJvciB7e2V4cGVjdGVkIGV4cHJl c3Npb259fSBleHBlY3RlZC1lcnJvciB7e2V4cGVjdGVkICcpJ319IGV4cGVj dGVkLW5vdGUge3t0byBtYXRjaCB0aGlzICcoJ319CiAjcHJhZ21hIG9tcCB0 YXNrIGZpcnN0cHJpdmF0ZSgpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvLyBleHBlY3RlZC1lcnJvciB7e2V4cGVjdGVkIGV4cHJlc3Npb259fQpA QCAtOTMsNiArOTQsNyBAQAogI3ByYWdtYSBvbXAgdGFzayBzaGFyZWQoaSkK ICNwcmFnbWEgb21wIHRhc2sgZmlyc3Rwcml2YXRlKGkpCiAjcHJhZ21hIG9t cCB0YXNrIGZpcnN0cHJpdmF0ZShqKSAvLyBleHBlY3RlZC1lcnJvciB7e2Fy Z3VtZW50cyBvZiBPcGVuTVAgY2xhdXNlICdmaXJzdHByaXZhdGUnIGNhbm5v dCBiZSBvZiByZWZlcmVuY2UgdHlwZX19CisjcHJhZ21hIG9tcCB0YXNrIGZp cnN0cHJpdmF0ZShtKSAvLyBPSwogICBmb28oKTsKIAogICByZXR1cm4gMDsK SW5kZXg6IHRlc3QvT3Blbk1QL3NpbmdsZV9wcml2YXRlX21lc3NhZ2VzLmNw cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0L09wZW5NUC9zaW5n bGVfcHJpdmF0ZV9tZXNzYWdlcy5jcHAKKysrIHRlc3QvT3Blbk1QL3Npbmds ZV9wcml2YXRlX21lc3NhZ2VzLmNwcApAQCAtMTQyLDYgKzE0Miw5IEBACiAg IGZvbygpOwogI3ByYWdtYSBvbXAgc2luZ2xlIHByaXZhdGUoaSkKICAgZm9v KCk7CisgIHN0YXRpYyBpbnQgbTsKKyNwcmFnbWEgb21wIHNpbmdsZSBwcml2 YXRlKG0pIC8vIE9LCisgIGZvbygpOwogCiAgIHJldHVybiAwOwogfQpJbmRl eDogdGVzdC9PcGVuTVAvc2luZ2xlX2ZpcnN0cHJpdmF0ZV9tZXNzYWdlcy5j cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVuTVAvc2lu Z2xlX2ZpcnN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAKKysrIHRlc3QvT3Blbk1Q L3NpbmdsZV9maXJzdHByaXZhdGVfbWVzc2FnZXMuY3BwCkBAIC0yNDIsNiAr MjQyLDkgQEAKICNwcmFnbWEgb21wIHBhcmFsbGVsIHJlZHVjdGlvbigrIDog aSkgLy8gZXhwZWN0ZWQtbm90ZSB7e2RlZmluZWQgYXMgcmVkdWN0aW9ufX0K ICNwcmFnbWEgb21wIHNpbmdsZSBmaXJzdHByaXZhdGUoaSkgICAgLy8gZXhw ZWN0ZWQtZXJyb3Ige3tmaXJzdHByaXZhdGUgdmFyaWFibGUgbXVzdCBiZSBz aGFyZWR9fQogICBmb28oKTsKKyAgc3RhdGljIGludCB0OworI3ByYWdtYSBv bXAgc2luZ2xlIGZpcnN0cHJpdmF0ZSh0KSAgICAvLyBPSworICBmb28oKTsK IAogICByZXR1cm4gZm9vbWFpbjxTNCwgUzU+KGFyZ2MsIGFyZ3YpOyAvLyBl eHBlY3RlZC1ub3RlIHt7aW4gaW5zdGFudGlhdGlvbiBvZiBmdW5jdGlvbiB0 ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiAnZm9vbWFpbjxTNCwgUzU+JyByZXF1 ZXN0ZWQgaGVyZX19CiB9CkluZGV4OiB0ZXN0L09wZW5NUC9zaW1kX2xhc3Rw cml2YXRlX21lc3NhZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSB0ZXN0L09wZW5NUC9zaW1kX2xhc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAor KysgdGVzdC9PcGVuTVAvc2ltZF9sYXN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAK QEAgLTIxMyw1ICsyMTMsOSBAQAogI3ByYWdtYSBvbXAgc2ltZCBsYXN0cHJp dmF0ZShqKSAvLyBleHBlY3RlZC1lcnJvciB7e2FyZ3VtZW50cyBvZiBPcGVu TVAgY2xhdXNlICdsYXN0cHJpdmF0ZScgY2Fubm90IGJlIG9mIHJlZmVyZW5j ZSB0eXBlfX0KICAgZm9yIChpID0gMDsgaSA8IGFyZ2M7ICsraSkKICAgICBm b28oKTsKKyAgc3RhdGljIGludCB0OworI3ByYWdtYSBvbXAgc2ltZCBsYXN0 cHJpdmF0ZSh0KSAvLyBPSworICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytp KQorICAgIGZvbygpOwogICByZXR1cm4gMDsKIH0KSW5kZXg6IHRlc3QvT3Bl bk1QL3NlY3Rpb25zX3JlZHVjdGlvbl9tZXNzYWdlcy5jcHAKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVuTVAvc2VjdGlvbnNfcmVkdWN0 aW9uX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAvc2VjdGlvbnNfcmVk dWN0aW9uX21lc3NhZ2VzLmNwcApAQCAtNDE2LDYgKzQxNiwxMSBAQAogICB7 CiAgICAgZm9vKCk7CiAgIH0KKyAgc3RhdGljIGludCBtOworI3ByYWdtYSBv bXAgc2VjdGlvbnMgcmVkdWN0aW9uKCsgOiBtKSAvLyBPSworICB7CisgICAg Zm9vKCk7CisgIH0KIAogICByZXR1cm4gdG1haW4oYXJnYykgKyB0bWFpbihm bCk7IC8vIGV4cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1 bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICd0bWFpbjxpbnQ+JyBy ZXF1ZXN0ZWQgaGVyZX19IGV4cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0 aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICd0bWFp bjxmbG9hdD4nIHJlcXVlc3RlZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Bl bk1QL3NlY3Rpb25zX3ByaXZhdGVfbWVzc2FnZXMuY3BwCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHRlc3QvT3Blbk1QL3NlY3Rpb25zX3ByaXZhdGVf bWVzc2FnZXMuY3BwCisrKyB0ZXN0L09wZW5NUC9zZWN0aW9uc19wcml2YXRl X21lc3NhZ2VzLmNwcApAQCAtMjA2LDYgKzIwNiwxMSBAQAogICB7CiAgICAg Zm9vKCk7CiAgIH0KKyAgc3RhdGljIGludCBtOworI3ByYWdtYSBvbXAgc2Vj dGlvbnMgcHJpdmF0ZShtKQorICB7CisgICAgZm9vKCk7CisgIH0KIAogICBy ZXR1cm4gMDsKIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3NlY3Rpb25zX2xhc3Rw cml2YXRlX21lc3NhZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSB0ZXN0L09wZW5NUC9zZWN0aW9uc19sYXN0cHJpdmF0ZV9tZXNzYWdlcy5j cHAKKysrIHRlc3QvT3Blbk1QL3NlY3Rpb25zX2xhc3Rwcml2YXRlX21lc3Nh Z2VzLmNwcApAQCAtMzE0LDUgKzMxNCwxMCBAQAogICB7CiAgICAgZm9vKCk7 CiAgIH0KKyAgc3RhdGljIGludCByOworI3ByYWdtYSBvbXAgc2VjdGlvbnMg bGFzdHByaXZhdGUocikgLy8gT0sKKyAgeworICAgIGZvbygpOworICB9CiAg IHJldHVybiBmb29tYWluPFM0LCBTNT4oYXJnYywgYXJndik7IC8vIGV4cGVj dGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBs YXRlIHNwZWNpYWxpemF0aW9uICdmb29tYWluPFM0LCBTNT4nIHJlcXVlc3Rl ZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3NlY3Rpb25zX2ZpcnN0 cHJpdmF0ZV9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gdGVzdC9PcGVuTVAvc2VjdGlvbnNfZmlyc3Rwcml2YXRlX21lc3NhZ2Vz LmNwcAorKysgdGVzdC9PcGVuTVAvc2VjdGlvbnNfZmlyc3Rwcml2YXRlX21l c3NhZ2VzLmNwcApAQCAtMzM4LDYgKzMzOCwxMSBAQAogICB7CiAgICAgZm9v KCk7CiAgIH0KKyAgc3RhdGljIGludCByOworI3ByYWdtYSBvbXAgc2VjdGlv bnMgZmlyc3Rwcml2YXRlKHIpIC8vIE9LCisgIHsKKyAgICBmb28oKTsKKyAg fQogCiAgIHJldHVybiBmb29tYWluPFM0LCBTNT4oYXJnYywgYXJndik7IC8v IGV4cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9u IHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICdmb29tYWluPFM0LCBTNT4nIHJl cXVlc3RlZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3BhcmFsbGVs X3NlY3Rpb25zX3JlZHVjdGlvbl9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gdGVzdC9PcGVuTVAvcGFyYWxsZWxfc2VjdGlvbnNf cmVkdWN0aW9uX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAvcGFyYWxs ZWxfc2VjdGlvbnNfcmVkdWN0aW9uX21lc3NhZ2VzLmNwcApAQCAtMzYxLDYg KzM2MSwxMSBAQAogICB7CiAgICAgZm9vKCk7CiAgIH0KKyAgc3RhdGljIGlu dCBtOworI3ByYWdtYSBvbXAgcGFyYWxsZWwgc2VjdGlvbnMgcmVkdWN0aW9u KCsgOiBtKSAvLyBPSworICB7CisgICAgZm9vKCk7CisgIH0KIAogICByZXR1 cm4gdG1haW4oYXJnYykgKyB0bWFpbihmbCk7IC8vIGV4cGVjdGVkLW5vdGUg e3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNp YWxpemF0aW9uICd0bWFpbjxpbnQ+JyByZXF1ZXN0ZWQgaGVyZX19IGV4cGVj dGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBs YXRlIHNwZWNpYWxpemF0aW9uICd0bWFpbjxmbG9hdD4nIHJlcXVlc3RlZCBo ZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3BhcmFsbGVsX3NlY3Rpb25z X3ByaXZhdGVfbWVzc2FnZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tIHRlc3QvT3Blbk1QL3BhcmFsbGVsX3NlY3Rpb25zX3ByaXZhdGVfbWVz c2FnZXMuY3BwCisrKyB0ZXN0L09wZW5NUC9wYXJhbGxlbF9zZWN0aW9uc19w cml2YXRlX21lc3NhZ2VzLmNwcApAQCAtMjA2LDYgKzIwNiwxMSBAQAogICB7 CiAgICAgZm9vKCk7CiAgIH0KKyAgc3RhdGljIGludCBtOworI3ByYWdtYSBv bXAgcGFyYWxsZWwgc2VjdGlvbnMgcHJpdmF0ZShtKQorICB7CisgICAgZm9v KCk7CisgIH0KIAogICByZXR1cm4gMDsKIH0KSW5kZXg6IHRlc3QvT3Blbk1Q L3BhcmFsbGVsX3NlY3Rpb25zX2xhc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0L09wZW5NUC9wYXJhbGxl bF9zZWN0aW9uc19sYXN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAKKysrIHRlc3Qv T3Blbk1QL3BhcmFsbGVsX3NlY3Rpb25zX2xhc3Rwcml2YXRlX21lc3NhZ2Vz LmNwcApAQCAtMjc0LDUgKzI3NCwxMCBAQAogICB7CiAgICAgZm9vKCk7CiAg IH0KKyAgc3RhdGljIGludCByOworI3ByYWdtYSBvbXAgcGFyYWxsZWwgc2Vj dGlvbnMgbGFzdHByaXZhdGUocikgLy8gT0sKKyAgeworICAgIGZvbygpOwor ICB9CiAgIHJldHVybiBmb29tYWluPFM0LCBTNT4oYXJnYywgYXJndik7IC8v IGV4cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9u IHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICdmb29tYWluPFM0LCBTNT4nIHJl cXVlc3RlZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3BhcmFsbGVs X3NlY3Rpb25zX2ZpcnN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVuTVAvcGFyYWxsZWxfc2VjdGlv bnNfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAv cGFyYWxsZWxfc2VjdGlvbnNfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNwcApA QCAtMjk4LDYgKzI5OCwxMSBAQAogICB7CiAgICAgZm9vKCk7CiAgIH0KKyAg c3RhdGljIGludCByOworI3ByYWdtYSBvbXAgcGFyYWxsZWwgc2VjdGlvbnMg Zmlyc3Rwcml2YXRlKHIpIC8vIE9LCisgIHsKKyAgICBmb28oKTsKKyAgfQog CiAgIHJldHVybiBmb29tYWluPFM0LCBTNT4oYXJnYywgYXJndik7IC8vIGV4 cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRl bXBsYXRlIHNwZWNpYWxpemF0aW9uICdmb29tYWluPFM0LCBTNT4nIHJlcXVl c3RlZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3BhcmFsbGVsX3Jl ZHVjdGlvbl9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gdGVzdC9PcGVuTVAvcGFyYWxsZWxfcmVkdWN0aW9uX21lc3NhZ2VzLmNw cAorKysgdGVzdC9PcGVuTVAvcGFyYWxsZWxfcmVkdWN0aW9uX21lc3NhZ2Vz LmNwcApAQCAtMjQzLDYgKzI0Myw5IEBACiAgIGZvciAoaW50IGkgPSAwOyBp IDwgMTA7ICsraSkKICNwcmFnbWEgb21wIHBhcmFsbGVsIHJlZHVjdGlvbigr IDogZmwpCiAgICAgZm9vKCk7CisgIHN0YXRpYyBpbnQgbTsKKyNwcmFnbWEg b21wIHBhcmFsbGVsIHJlZHVjdGlvbigrIDogbSkgLy8gT0sKKyAgbSsrOwog CiAgIHJldHVybiB0bWFpbihhcmdjKSArIHRtYWluKGZsKTsgLy8gZXhwZWN0 ZWQtbm90ZSB7e2luIGluc3RhbnRpYXRpb24gb2YgZnVuY3Rpb24gdGVtcGxh dGUgc3BlY2lhbGl6YXRpb24gJ3RtYWluPGludD4nIHJlcXVlc3RlZCBoZXJl fX0gZXhwZWN0ZWQtbm90ZSB7e2luIGluc3RhbnRpYXRpb24gb2YgZnVuY3Rp b24gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gJ3RtYWluPGZsb2F0PicgcmVx dWVzdGVkIGhlcmV9fQogfQpJbmRleDogdGVzdC9PcGVuTVAvcGFyYWxsZWxf cHJpdmF0ZV9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gdGVzdC9PcGVuTVAvcGFyYWxsZWxfcHJpdmF0ZV9tZXNzYWdlcy5jcHAK KysrIHRlc3QvT3Blbk1QL3BhcmFsbGVsX3ByaXZhdGVfbWVzc2FnZXMuY3Bw CkBAIC04NCw2ICs4NCw5IEBACiAgICAgI3ByYWdtYSBvbXAgcGFyYWxsZWwg cHJpdmF0ZShpKQogICAgIGZvbygpOwogICB9CisgIHN0YXRpYyBpbnQgbTsK KyAgI3ByYWdtYSBvbXAgcGFyYWxsZWwgcHJpdmF0ZShtKSAvLyBPSworICBm b28oKTsKIAogICByZXR1cm4gMDsKIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3Bh cmFsbGVsX2Zvcl9zaW1kX3JlZHVjdGlvbl9tZXNzYWdlcy5jcHAKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVuTVAvcGFyYWxsZWxfZm9y X3NpbWRfcmVkdWN0aW9uX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAv cGFyYWxsZWxfZm9yX3NpbWRfcmVkdWN0aW9uX21lc3NhZ2VzLmNwcApAQCAt Mjk4LDYgKzI5OCwxMCBAQAogI3ByYWdtYSBvbXAgcGFyYWxsZWwgZm9yIHNp bWQgcmVkdWN0aW9uKCsgOiBmbCkKICAgZm9yIChpbnQgaSA9IDA7IGkgPCAx MDsgKytpKQogICAgIGZvbygpOworICBzdGF0aWMgaW50IG07CisjcHJhZ21h IG9tcCBwYXJhbGxlbCBmb3Igc2ltZCByZWR1Y3Rpb24oKyA6IG0pIC8vIE9L CisgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICBtKys7CiAK ICAgcmV0dXJuIHRtYWluKGFyZ2MpICsgdG1haW4oZmwpOyAvLyBleHBlY3Rl ZC1ub3RlIHt7aW4gaW5zdGFudGlhdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0 ZSBzcGVjaWFsaXphdGlvbiAndG1haW48aW50PicgcmVxdWVzdGVkIGhlcmV9 fSBleHBlY3RlZC1ub3RlIHt7aW4gaW5zdGFudGlhdGlvbiBvZiBmdW5jdGlv biB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiAndG1haW48ZmxvYXQ+JyByZXF1 ZXN0ZWQgaGVyZX19CiB9CkluZGV4OiB0ZXN0L09wZW5NUC9wYXJhbGxlbF9m b3Jfc2ltZF9wcml2YXRlX21lc3NhZ2VzLmNwcAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSB0ZXN0L09wZW5NUC9wYXJhbGxlbF9mb3Jfc2ltZF9wcml2 YXRlX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAvcGFyYWxsZWxfZm9y X3NpbWRfcHJpdmF0ZV9tZXNzYWdlcy5jcHAKQEAgLTE3NSw2ICsxNzUsMTAg QEAKICNwcmFnbWEgb21wIHBhcmFsbGVsIGZvciBzaW1kIHByaXZhdGUoaSkK ICAgZm9yIChpbnQgayA9IDA7IGsgPCBhcmdjOyArK2spCiAgICAgKytrOwor ICBzdGF0aWMgaW50IG07CisjcHJhZ21hIG9tcCBwYXJhbGxlbCBmb3Igc2lt ZCBwcml2YXRlKG0pIC8vIE9LCisgIGZvciAoaW50IGsgPSAwOyBrIDwgYXJn YzsgKytrKQorICAgIG0gPSBrICsgMzsKIAogICByZXR1cm4gMDsKIH0KSW5k ZXg6IHRlc3QvT3Blbk1QL3BhcmFsbGVsX2Zvcl9zaW1kX2xhc3Rwcml2YXRl X21lc3NhZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0 L09wZW5NUC9wYXJhbGxlbF9mb3Jfc2ltZF9sYXN0cHJpdmF0ZV9tZXNzYWdl cy5jcHAKKysrIHRlc3QvT3Blbk1QL3BhcmFsbGVsX2Zvcl9zaW1kX2xhc3Rw cml2YXRlX21lc3NhZ2VzLmNwcApAQCAtMjMxLDUgKzIzMSw5IEBACiAjcHJh Z21hIG9tcCBwYXJhbGxlbCBmb3Igc2ltZCBsYXN0cHJpdmF0ZShuKSBmaXJz dHByaXZhdGUobikgLy8gT0sKICAgZm9yIChpID0gMDsgaSA8IGFyZ2M7ICsr aSkKICAgICBmb28oKTsKKyAgc3RhdGljIGludCBzaTsKKyNwcmFnbWEgb21w IHBhcmFsbGVsIGZvciBzaW1kIGxhc3Rwcml2YXRlKHNpKSAvLyBPSworICBm b3IgKGkgPSAwOyBpIDwgYXJnYzsgKytpKQorICAgIHNpID0gaSArIDM7CiAg IHJldHVybiBmb29tYWluPFM0LCBTNT4oYXJnYywgYXJndik7IC8vIGV4cGVj dGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBs YXRlIHNwZWNpYWxpemF0aW9uICdmb29tYWluPFM0LCBTNT4nIHJlcXVlc3Rl ZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Blbk1QL3BhcmFsbGVsX2Zvcl9z aW1kX2ZpcnN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gdGVzdC9PcGVuTVAvcGFyYWxsZWxfZm9yX3NpbWRfZmly c3Rwcml2YXRlX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAvcGFyYWxs ZWxfZm9yX3NpbWRfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNwcApAQCAtMjUz LDYgKzI1MywxMCBAQAogI3ByYWdtYSBvbXAgcGFyYWxsZWwgZm9yIHNpbWQg Zmlyc3Rwcml2YXRlKGkpICAvLyBleHBlY3RlZC1ub3RlIHt7ZGVmaW5lZCBh cyBmaXJzdHByaXZhdGV9fQogICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytp KSAvLyBleHBlY3RlZC1lcnJvciB7e2xvb3AgaXRlcmF0aW9uIHZhcmlhYmxl IGluIHRoZSBhc3NvY2lhdGVkIGxvb3Agb2YgJ29tcCBwYXJhbGxlbCBmb3Ig c2ltZCcgZGlyZWN0aXZlIG1heSBub3QgYmUgZmlyc3Rwcml2YXRlLCBwcmVk ZXRlcm1pbmVkIGFzIGxpbmVhcn19CiAgICAgZm9vKCk7CisgIHN0YXRpYyBp bnQgc2k7CisjcHJhZ21hIG9tcCBwYXJhbGxlbCBmb3Igc2ltZCBmaXJzdHBy aXZhdGUoc2kpIC8vIE9LCisgIGZvciAoaSA9IDA7IGkgPCBhcmdjOyArK2kp CisgICAgc2kgPSBpICsgMjsKIAogICByZXR1cm4gZm9vbWFpbjxTNCwgUzU+ KGFyZ2MsIGFyZ3YpOyAvLyBleHBlY3RlZC1ub3RlIHt7aW4gaW5zdGFudGlh dGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiAnZm9v bWFpbjxTNCwgUzU+JyByZXF1ZXN0ZWQgaGVyZX19CiB9CkluZGV4OiB0ZXN0 L09wZW5NUC9wYXJhbGxlbF9mb3JfcmVkdWN0aW9uX21lc3NhZ2VzLmNwcAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0L09wZW5NUC9wYXJhbGxl bF9mb3JfcmVkdWN0aW9uX21lc3NhZ2VzLmNwcAorKysgdGVzdC9PcGVuTVAv cGFyYWxsZWxfZm9yX3JlZHVjdGlvbl9tZXNzYWdlcy5jcHAKQEAgLTI5OCw2 ICsyOTgsMTAgQEAKICNwcmFnbWEgb21wIHBhcmFsbGVsIGZvciByZWR1Y3Rp b24oKyA6IGZsKQogICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpCiAg ICAgZm9vKCk7CisgIHN0YXRpYyBpbnQgbTsKKyNwcmFnbWEgb21wIHBhcmFs bGVsIGZvciByZWR1Y3Rpb24oKyA6IG0pIC8vIE9LCisgIGZvciAoaW50IGkg PSAwOyBpIDwgMTA7ICsraSkKKyAgICBtKys7CiAKICAgcmV0dXJuIHRtYWlu KGFyZ2MpICsgdG1haW4oZmwpOyAvLyBleHBlY3RlZC1ub3RlIHt7aW4gaW5z dGFudGlhdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlv biAndG1haW48aW50PicgcmVxdWVzdGVkIGhlcmV9fSBleHBlY3RlZC1ub3Rl IHt7aW4gaW5zdGFudGlhdGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVj aWFsaXphdGlvbiAndG1haW48ZmxvYXQ+JyByZXF1ZXN0ZWQgaGVyZX19CiB9 CkluZGV4OiB0ZXN0L09wZW5NUC9wYXJhbGxlbF9mb3JfcHJpdmF0ZV9tZXNz YWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVu TVAvcGFyYWxsZWxfZm9yX3ByaXZhdGVfbWVzc2FnZXMuY3BwCisrKyB0ZXN0 L09wZW5NUC9wYXJhbGxlbF9mb3JfcHJpdmF0ZV9tZXNzYWdlcy5jcHAKQEAg LTE3NSw2ICsxNzUsMTAgQEAKICNwcmFnbWEgb21wIHBhcmFsbGVsIGZvciBw cml2YXRlKGkpCiAgIGZvciAoaW50IGsgPSAwOyBrIDwgYXJnYzsgKytrKQog ICAgICsrazsKKyAgc3RhdGljIGludCBtOworI3ByYWdtYSBvbXAgcGFyYWxs ZWwgZm9yIHByaXZhdGUobSkKKyAgZm9yIChpbnQgayA9IDA7IGsgPCBhcmdj OyArK2spCisgICAgbSA9IGsgKyAyOwogCiAgIHJldHVybiAwOwogfQpJbmRl eDogdGVzdC9PcGVuTVAvcGFyYWxsZWxfZm9yX2xhc3Rwcml2YXRlX21lc3Nh Z2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0L09wZW5N UC9wYXJhbGxlbF9mb3JfbGFzdHByaXZhdGVfbWVzc2FnZXMuY3BwCisrKyB0 ZXN0L09wZW5NUC9wYXJhbGxlbF9mb3JfbGFzdHByaXZhdGVfbWVzc2FnZXMu Y3BwCkBAIC0yMzIsNSArMjMyLDEwIEBACiAjcHJhZ21hIG9tcCBwYXJhbGxl bCBmb3IgbGFzdHByaXZhdGUobikgZmlyc3Rwcml2YXRlKG4pIC8vIE9LCiAg IGZvciAoaSA9IDA7IGkgPCBhcmdjOyArK2kpCiAgICAgZm9vKCk7CisgIHN0 YXRpYyBpbnQgc2k7CisjcHJhZ21hIG9tcCBwYXJhbGxlbCBmb3IgbGFzdHBy aXZhdGUoc2kpIC8vIE9LCisgIGZvciAoaSA9IDA7IGkgPCBhcmdjOyArK2kp CisgICAgc2kgPSBpICsgMjsKKwogICByZXR1cm4gZm9vbWFpbjxTNCwgUzU+ KGFyZ2MsIGFyZ3YpOyAvLyBleHBlY3RlZC1ub3RlIHt7aW4gaW5zdGFudGlh dGlvbiBvZiBmdW5jdGlvbiB0ZW1wbGF0ZSBzcGVjaWFsaXphdGlvbiAnZm9v bWFpbjxTNCwgUzU+JyByZXF1ZXN0ZWQgaGVyZX19CiB9CkluZGV4OiB0ZXN0 L09wZW5NUC9wYXJhbGxlbF9mb3JfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNw cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0L09wZW5NUC9wYXJh bGxlbF9mb3JfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAorKysgdGVzdC9P cGVuTVAvcGFyYWxsZWxfZm9yX2ZpcnN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAK QEAgLTI1NSw2ICsyNTUsMTAgQEAKICNwcmFnbWEgb21wIHBhcmFsbGVsIGZv ciBmaXJzdHByaXZhdGUoaSkgLy8gZXhwZWN0ZWQtbm90ZSB7e2RlZmluZWQg YXMgZmlyc3Rwcml2YXRlfX0KICAgZm9yIChpID0gMDsgaSA8IGFyZ2M7ICsr aSkgLy8gZXhwZWN0ZWQtZXJyb3Ige3tsb29wIGl0ZXJhdGlvbiB2YXJpYWJs ZSBpbiB0aGUgYXNzb2NpYXRlZCBsb29wIG9mICdvbXAgcGFyYWxsZWwgZm9y JyBkaXJlY3RpdmUgbWF5IG5vdCBiZSBmaXJzdHByaXZhdGUsIHByZWRldGVy bWluZWQgYXMgcHJpdmF0ZX19CiAgICAgZm9vKCk7CisgIHN0YXRpYyBpbnQg c2k7CisjcHJhZ21hIG9tcCBwYXJhbGxlbCBmb3IgZmlyc3Rwcml2YXRlKHNp KSAvLyBPSworICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytpKQorICAgIHNp ID0gaSArIDE7CiAKICAgcmV0dXJuIGZvb21haW48UzQsIFM1PihhcmdjLCBh cmd2KTsgLy8gZXhwZWN0ZWQtbm90ZSB7e2luIGluc3RhbnRpYXRpb24gb2Yg ZnVuY3Rpb24gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gJ2Zvb21haW48UzQs IFM1PicgcmVxdWVzdGVkIGhlcmV9fQogfQpJbmRleDogdGVzdC9PcGVuTVAv cGFyYWxsZWxfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSB0ZXN0L09wZW5NUC9wYXJhbGxlbF9maXJzdHBy aXZhdGVfbWVzc2FnZXMuY3BwCisrKyB0ZXN0L09wZW5NUC9wYXJhbGxlbF9m aXJzdHByaXZhdGVfbWVzc2FnZXMuY3BwCkBAIC02Miw2ICs2Miw3IEBACiAg IFM1IGcoNSk7CiAgIGludCBpOwogICBpbnQgJmogPSBpOyAvLyBleHBlY3Rl ZC1ub3RlIHt7J2onIGRlZmluZWQgaGVyZX19CisgIHN0YXRpYyBpbnQgbTsK ICAgI3ByYWdtYSBvbXAgcGFyYWxsZWwgZmlyc3Rwcml2YXRlIC8vIGV4cGVj dGVkLWVycm9yIHt7ZXhwZWN0ZWQgJygnIGFmdGVyICdmaXJzdHByaXZhdGUn fX0KICAgI3ByYWdtYSBvbXAgcGFyYWxsZWwgZmlyc3Rwcml2YXRlICggLy8g ZXhwZWN0ZWQtZXJyb3Ige3tleHBlY3RlZCBleHByZXNzaW9ufX0gZXhwZWN0 ZWQtZXJyb3Ige3tleHBlY3RlZCAnKSd9fSBleHBlY3RlZC1ub3RlIHt7dG8g bWF0Y2ggdGhpcyAnKCd9fQogICAjcHJhZ21hIG9tcCBwYXJhbGxlbCBmaXJz dHByaXZhdGUgKCkgLy8gZXhwZWN0ZWQtZXJyb3Ige3tleHBlY3RlZCBleHBy ZXNzaW9ufX0KQEAgLTg0LDYgKzg1LDcgQEAKICAgI3ByYWdtYSBvbXAgcGFy YWxsZWwgc2hhcmVkKGkpCiAgICNwcmFnbWEgb21wIHBhcmFsbGVsIGZpcnN0 cHJpdmF0ZShpKQogICAjcHJhZ21hIG9tcCBwYXJhbGxlbCBmaXJzdHByaXZh dGUoaikgLy8gZXhwZWN0ZWQtZXJyb3Ige3thcmd1bWVudHMgb2YgT3Blbk1Q IGNsYXVzZSAnZmlyc3Rwcml2YXRlJyBjYW5ub3QgYmUgb2YgcmVmZXJlbmNl IHR5cGV9fQorICAjcHJhZ21hIG9tcCBwYXJhbGxlbCBmaXJzdHByaXZhdGUo bSkKICAgZm9vKCk7CiAKICAgcmV0dXJuIDA7CkluZGV4OiB0ZXN0L09wZW5N UC9mb3Jfc2ltZF9yZWR1Y3Rpb25fbWVzc2FnZXMuY3BwCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHRlc3QvT3Blbk1QL2Zvcl9zaW1kX3JlZHVjdGlv bl9tZXNzYWdlcy5jcHAKKysrIHRlc3QvT3Blbk1QL2Zvcl9zaW1kX3JlZHVj dGlvbl9tZXNzYWdlcy5jcHAKQEAgLTM1Myw2ICszNTMsMTAgQEAKICNwcmFn bWEgb21wIGZvciBzaW1kIHJlZHVjdGlvbigrIDogZmwpICAgICAgLy8gZXhw ZWN0ZWQtZXJyb3Ige3tyZWR1Y3Rpb24gdmFyaWFibGUgbXVzdCBiZSBzaGFy ZWR9fQogICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpCiAgICAgZm9v KCk7CisgIHN0YXRpYyBpbnQgbTsKKyNwcmFnbWEgb21wIGZvciBzaW1kIHJl ZHVjdGlvbigrIDogbSkKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytp KQorICAgIG0rKzsKIAogICByZXR1cm4gdG1haW4oYXJnYykgKyB0bWFpbihm bCk7IC8vIGV4cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1 bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICd0bWFpbjxpbnQ+JyBy ZXF1ZXN0ZWQgaGVyZX19IGV4cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0 aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uICd0bWFp bjxmbG9hdD4nIHJlcXVlc3RlZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Bl bk1QL2Zvcl9zaW1kX3ByaXZhdGVfbWVzc2FnZXMuY3BwCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHRlc3QvT3Blbk1QL2Zvcl9zaW1kX3ByaXZhdGVf bWVzc2FnZXMuY3BwCisrKyB0ZXN0L09wZW5NUC9mb3Jfc2ltZF9wcml2YXRl X21lc3NhZ2VzLmNwcApAQCAtMTc1LDYgKzE3NSwxMCBAQAogI3ByYWdtYSBv bXAgZm9yIHNpbWQgcHJpdmF0ZShpKQogICBmb3IgKGludCBrID0gMDsgayA8 IGFyZ2M7ICsraykKICAgICArK2s7CisgIHN0YXRpYyBpbnQgbTsKKyNwcmFn bWEgb21wIGZvciBzaW1kIHByaXZhdGUobSkKKyAgZm9yIChpbnQgayA9IDA7 IGsgPCBhcmdjOyArK2spCisgICAgbSA9IGsgKyAyOwogCiAgIHJldHVybiAw OwogfQpJbmRleDogdGVzdC9PcGVuTVAvZm9yX3NpbWRfbGFzdHByaXZhdGVf bWVzc2FnZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3Qv T3Blbk1QL2Zvcl9zaW1kX2xhc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAorKysg dGVzdC9PcGVuTVAvZm9yX3NpbWRfbGFzdHByaXZhdGVfbWVzc2FnZXMuY3Bw CkBAIC0yNzIsNSArMjcyLDkgQEAKICNwcmFnbWEgb21wIGZvciBzaW1kIGxh c3Rwcml2YXRlKG4pIGZpcnN0cHJpdmF0ZShuKSAvLyBPSwogICBmb3IgKGkg PSAwOyBpIDwgYXJnYzsgKytpKQogICAgIGZvbygpOworICBzdGF0aWMgaW50 IHNpOworI3ByYWdtYSBvbXAgZm9yIHNpbWQgbGFzdHByaXZhdGUoc2kpIC8v IE9LCisgIGZvciAoaSA9IDA7IGkgPCBhcmdjOyArK2kpCisgICAgc2kgPSBp ICsgMTsKICAgcmV0dXJuIGZvb21haW48UzQsIFM1PihhcmdjLCBhcmd2KTsg Ly8gZXhwZWN0ZWQtbm90ZSB7e2luIGluc3RhbnRpYXRpb24gb2YgZnVuY3Rp b24gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gJ2Zvb21haW48UzQsIFM1Picg cmVxdWVzdGVkIGhlcmV9fQogfQpJbmRleDogdGVzdC9PcGVuTVAvZm9yX3Np bWRfZmlyc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSB0ZXN0L09wZW5NUC9mb3Jfc2ltZF9maXJzdHByaXZhdGVf bWVzc2FnZXMuY3BwCisrKyB0ZXN0L09wZW5NUC9mb3Jfc2ltZF9maXJzdHBy aXZhdGVfbWVzc2FnZXMuY3BwCkBAIC0zMDAsNiArMzAwLDEwIEBACiAjcHJh Z21hIG9tcCBmb3Igc2ltZCBmaXJzdHByaXZhdGUoaSkgICAgICAgLy8gZXhw ZWN0ZWQtZXJyb3Ige3tmaXJzdHByaXZhdGUgdmFyaWFibGUgbXVzdCBiZSBz aGFyZWR9fQogICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytpKQogICAgIGZv bygpOworICBzdGF0aWMgaW50IHNpOworI3ByYWdtYSBvbXAgZm9yIHNpbWQg Zmlyc3Rwcml2YXRlKHNpKQorICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytp KQorICAgIHNpID0gaSArIDE7CiAKICAgcmV0dXJuIGZvb21haW48UzQsIFM1 PihhcmdjLCBhcmd2KTsgLy8gZXhwZWN0ZWQtbm90ZSB7e2luIGluc3RhbnRp YXRpb24gb2YgZnVuY3Rpb24gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gJ2Zv b21haW48UzQsIFM1PicgcmVxdWVzdGVkIGhlcmV9fQogfQpJbmRleDogdGVz dC9PcGVuTVAvZm9yX3JlZHVjdGlvbl9tZXNzYWdlcy5jcHAKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVuTVAvZm9yX3JlZHVjdGlvbl9t ZXNzYWdlcy5jcHAKKysrIHRlc3QvT3Blbk1QL2Zvcl9yZWR1Y3Rpb25fbWVz c2FnZXMuY3BwCkBAIC0zNTcsNiArMzU3LDEwIEBACiAjcHJhZ21hIG9tcCBm b3IgcmVkdWN0aW9uKCsgOiBmbCkgICAgICAvLyBleHBlY3RlZC1lcnJvciB7 e3JlZHVjdGlvbiB2YXJpYWJsZSBtdXN0IGJlIHNoYXJlZH19CiAgIGZvciAo aW50IGkgPSAwOyBpIDwgMTA7ICsraSkKICAgICBmb28oKTsKKyAgc3RhdGlj IGludCBtPTA7CisjcHJhZ21hIG9tcCBmb3IgcmVkdWN0aW9uKCs6bSkKKyAg Zm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKQorICAgIG0rKzsKIAogICBy ZXR1cm4gdG1haW4oYXJnYykgKyB0bWFpbihmbCk7IC8vIGV4cGVjdGVkLW5v dGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRlbXBsYXRlIHNw ZWNpYWxpemF0aW9uICd0bWFpbjxpbnQ+JyByZXF1ZXN0ZWQgaGVyZX19IGV4 cGVjdGVkLW5vdGUge3tpbiBpbnN0YW50aWF0aW9uIG9mIGZ1bmN0aW9uIHRl bXBsYXRlIHNwZWNpYWxpemF0aW9uICd0bWFpbjxmbG9hdD4nIHJlcXVlc3Rl ZCBoZXJlfX0KIH0KSW5kZXg6IHRlc3QvT3Blbk1QL2Zvcl9wcml2YXRlX21l c3NhZ2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0L09w ZW5NUC9mb3JfcHJpdmF0ZV9tZXNzYWdlcy5jcHAKKysrIHRlc3QvT3Blbk1Q L2Zvcl9wcml2YXRlX21lc3NhZ2VzLmNwcApAQCAtMTg1LDYgKzE4NSwxMCBA QAogI3ByYWdtYSBvbXAgZm9yIHByaXZhdGUoaSkKICAgZm9yIChpbnQgayA9 IDA7IGsgPCBhcmdjOyArK2spCiAgICAgKytrOworICBzdGF0aWMgaW50IHNp OworI3ByYWdtYSBvbXAgZm9yIHByaXZhdGUoc2kpIC8vIE9LCisgIGZvcihp bnQgayA9IDA7IGsgPCBhcmdjOyArK2spCisgICAgc2kgPSBrICsgMTsKIAog ICByZXR1cm4gMDsKIH0KSW5kZXg6IHRlc3QvT3Blbk1QL2Zvcl9sYXN0cHJp dmF0ZV9tZXNzYWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g dGVzdC9PcGVuTVAvZm9yX2xhc3Rwcml2YXRlX21lc3NhZ2VzLmNwcAorKysg dGVzdC9PcGVuTVAvZm9yX2xhc3Rwcml2YXRlX21lc3NhZ2VzLmNwcApAQCAt MjgzLDUgKzI4Myw5IEBACiAjcHJhZ21hIG9tcCBmb3IgbGFzdHByaXZhdGUo bikgZmlyc3Rwcml2YXRlKG4pIC8vIE9LCiAgIGZvciAoaSA9IDA7IGkgPCBh cmdjOyArK2kpCiAgICAgZm9vKCk7CisgIHN0YXRpYyBpbnQgc2k7CisjcHJh Z21hIG9tcCBmb3IgbGFzdHByaXZhdGUoc2kpIC8vIE9LCisgIGZvciAoaSA9 IDA7IGkgPCBhcmdjOyArK2kpCisgICAgc2kgPSBpICsgMTsKICAgcmV0dXJu IGZvb21haW48UzQsIFM1PihhcmdjLCBhcmd2KTsgLy8gZXhwZWN0ZWQtbm90 ZSB7e2luIGluc3RhbnRpYXRpb24gb2YgZnVuY3Rpb24gdGVtcGxhdGUgc3Bl Y2lhbGl6YXRpb24gJ2Zvb21haW48UzQsIFM1PicgcmVxdWVzdGVkIGhlcmV9 fQogfQpJbmRleDogdGVzdC9PcGVuTVAvZm9yX2ZpcnN0cHJpdmF0ZV9tZXNz YWdlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdC9PcGVu TVAvZm9yX2ZpcnN0cHJpdmF0ZV9tZXNzYWdlcy5jcHAKKysrIHRlc3QvT3Bl bk1QL2Zvcl9maXJzdHByaXZhdGVfbWVzc2FnZXMuY3BwCkBAIC0zMDcsNiAr MzA3LDEwIEBACiAjcHJhZ21hIG9tcCBmb3IgZmlyc3Rwcml2YXRlKEI6Ongp IC8vIGV4cGVjdGVkLWVycm9yIHt7dGhyZWFkcHJpdmF0ZSBvciB0aHJlYWQg bG9jYWwgdmFyaWFibGUgY2Fubm90IGJlIGZpcnN0cHJpdmF0ZX19CiAgIGZv ciAoaSA9IDA7IGkgPCBhcmdjOyArK2kpCiAgICAgZm9vKCk7CisgIHN0YXRp YyBpbnQgc2k7CisjcHJhZ21hIG9tcCBmb3IgZmlyc3Rwcml2YXRlKHNpKSAv LyBPSworICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgKytpKQorICAgIHNpID0g aSArIDE7CiAKICAgcmV0dXJuIGZvb21haW48UzQsIFM1PihhcmdjLCBhcmd2 KTsgLy8gZXhwZWN0ZWQtbm90ZSB7e2luIGluc3RhbnRpYXRpb24gb2YgZnVu Y3Rpb24gdGVtcGxhdGUgc3BlY2lhbGl6YXRpb24gJ2Zvb21haW48UzQsIFM1 PicgcmVxdWVzdGVkIGhlcmV9fQogfQpJbmRleDogbGliL1NlbWEvU2VtYU9w ZW5NUC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbGliL1NlbWEv U2VtYU9wZW5NUC5jcHAKKysrIGxpYi9TZW1hL1NlbWFPcGVuTVAuY3BwCkBA IC01MjEsNyArNTIxLDcgQEAKICAgICAvLyBpbiBhIENvbnN0cnVjdCwgQy9D KyssIHByZWRldGVybWluZWQsIHAuN10KICAgICAvLyAgVmFyaWFibGVzIHdp dGggc3RhdGljIHN0b3JhZ2UgZHVyYXRpb24gdGhhdCBhcmUgZGVjbGFyZWQg aW4gYSBzY29wZQogICAgIC8vICBpbnNpZGUgdGhlIGNvbnN0cnVjdCBhcmUg c2hhcmVkLgotICAgIGlmIChELT5pc1N0YXRpY0RhdGFNZW1iZXIoKSB8fCBE LT5pc1N0YXRpY0xvY2FsKCkpIHsKKyAgICBpZiAoRC0+aXNTdGF0aWNEYXRh TWVtYmVyKCkpIHsKICAgICAgIERTQVZhckRhdGEgRFZhclRlbXAgPQogICAg ICAgICAgIGhhc0RTQShELCBpc09wZW5NUFByaXZhdGUsIE1hdGNoZXNBbHdh eXMoKSwgRnJvbVBhcmVudCk7CiAgICAgICBpZiAoRFZhclRlbXAuQ0tpbmQg IT0gT01QQ191bmtub3duICYmIERWYXJUZW1wLlJlZkV4cHIpCg== --b1_98bcd108f8a08f8320cc0b779ea36835 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits --b1_98bcd108f8a08f8320cc0b779ea36835--