ZGlmZiAtLWdpdCBhL2RvY3MveG1sL25naW54L2NoYW5nZXMueG1sIGIvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwKaW5kZXggNjkwZjAwMy4uNDQyOTNmNSAxMDA2NDQKLS0tIGEvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwKKysrIGIvZG9jcy94bWwvbmdpbngvY2hhbmdlcy54bWwKQEAgLTYsNiArNiwyMCBAQAogICAgICAgICAgICAgdGl0bGU9Im5naW54Ij4KIAogCis8Y2hhbmdlcyB2ZXI9IjAuMS40IiBkYXRlPSIyNi4xMC4yMDA0Ij4KKworPGNoYW5nZSB0eXBlPSJidWdmaXgiPgorPHBhcmEgbGFuZz0icnUiPgorz9vJwsvBINcgzc/E1czFIG5neF9odHRwX2F1dG9pbmRleF9tb2R1bGUuCis8L3BhcmE+Cis8cGFyYSBsYW5nPSJlbiI+CitpbiB0aGUgbmd4X2h0dHBfYXV0b2luZGV4X21vZHVsZS4KKzwvcGFyYT4KKzwvY2hhbmdlPgorCis8L2NoYW5nZXM+CisKKwogPGNoYW5nZXMgdmVyPSIwLjEuMyIgZGF0ZT0iMjUuMTAuMjAwNCI+CiAKIDxjaGFuZ2UgdHlwZT0iZmVhdHVyZSI+CkBAIC0zOCw2ICs1Miw3IEBACiAKIDwvY2hhbmdlcz4KIAorCiA8Y2hhbmdlcyB2ZXI9IjAuMS4yIiBkYXRlPSIyMS4xMC4yMDA0Ij4KIAogPGNoYW5nZSB0eXBlPSJmZWF0dXJlIj4KZGlmZiAtLWdpdCBhL3NyYy9jb3JlL25naW54LmggYi9zcmMvY29yZS9uZ2lueC5oCmluZGV4IDA0MjgyZWYuLjBkNDI5OTggMTAwNjQ0Ci0tLSBhL3NyYy9jb3JlL25naW54LmgKKysrIGIvc3JjL2NvcmUvbmdpbnguaApAQCAtOCw3ICs4LDcgQEAKICNkZWZpbmUgX05HSU5YX0hfSU5DTFVERURfCiAKIAotI2RlZmluZSBOR0lOWF9WRVIgICAgICAgICAgIm5naW54LzAuMS4zIgorI2RlZmluZSBOR0lOWF9WRVIgICAgICAgICAgIm5naW54LzAuMS40IgogCiAjZGVmaW5lIE5HSU5YX1ZBUiAgICAgICAgICAiTkdJTlgiCiAjZGVmaW5lIE5HWF9ORVdQSURfRVhUICAgICAiLm5ld2JpbiIKZGlmZiAtLWdpdCBhL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfYXV0b2luZGV4X2hhbmRsZXIuYyBiL3NyYy9odHRwL21vZHVsZXMvbmd4X2h0dHBfYXV0b2luZGV4X2hhbmRsZXIuYwppbmRleCA1ZjE3MjZlLi45OWFhMzVkIDEwMDY0NAotLS0gYS9zcmMvaHR0cC9tb2R1bGVzL25neF9odHRwX2F1dG9pbmRleF9oYW5kbGVyLmMKKysrIGIvc3JjL2h0dHAvbW9kdWxlcy9uZ3hfaHR0cF9hdXRvaW5kZXhfaGFuZGxlci5jCkBAIC0yMzAsNiArMjMwLDE3IEBACiAKICAgICAgICAgbGVuID0gbmd4X2RlX25hbWVsZW4oJmRpcik7CiAKKyAgICAgICAgaWYgKGxlbiA9PSAxICYmIG5neF9kZV9uYW1lKCZkaXIpWzBdID09ICcuJykgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAobGVuID09IDIKKyAgICAgICAgICAgICYmIG5neF9kZV9uYW1lKCZkaXIpWzBdID09ICcuJworICAgICAgICAgICAgJiYgbmd4X2RlX25hbWUoJmRpcilbMF0gPT0gJy4nKQorICAgICAgICB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghZGlyLnZhbGlkX2luZm8pIHsKIAogICAgICAgICAgICAgaWYgKGRuYW1lLmxlbiArIDEgKyBsZW4gPiBmbmFtZS5sZW4pIHsKQEAgLTI1MywxNyArMjY0LDYgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmIChsZW4gPT0gMSAmJiBuZ3hfZGVfbmFtZSgmZGlyKVswXSA9PSAnLicpIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGxlbiA9PSAyCi0gICAgICAgICAgICAmJiBuZ3hfZGVfbmFtZSgmZGlyKVswXSA9PSAnLicKLSAgICAgICAgICAgICYmIG5neF9kZV9uYW1lKCZkaXIpWzBdID09ICcuJykKLSAgICAgICAgewotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQogICAgICAgICBpZiAoIShlbnRyeSA9IG5neF9hcnJheV9wdXNoKCZlbnRyaWVzKSkpIHsKICAgICAgICAgICAgIHJldHVybiBuZ3hfaHR0cF9hdXRvaW5kZXhfZXJyb3IociwgJmRpciwgZG5hbWUuZGF0YSk7CiAgICAgICAgIH0KQEAgLTM3NSwyNCArMzc1LDI0IEBACiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBsZW5ndGggPSBlbnRyeVtpXS5zaXplOwogCi0gICAgICAgICAgICBpZiAobGVuZ3RoID4gOTk5OTk5OTk5KSB7Ci0gICAgICAgICAgICAgICAgc2l6ZSA9IChuZ3hfaW50X3QpIGxlbmd0aCAvIDEwMjQgKiAxMDI0ICogMTAyNDsKLSAgICAgICAgICAgICAgICBpZiAoKGxlbmd0aCAlIDEwMjQgKiAxMDI0ICogMTAyNCkKKyAgICAgICAgICAgIGlmIChsZW5ndGggPiAxMDI0ICogMTAyNCAqIDEwMjQpIHsKKyAgICAgICAgICAgICAgICBzaXplID0gKG5neF9pbnRfdCkgKGxlbmd0aCAvICgxMDI0ICogMTAyNCAqIDEwMjQpKTsKKyAgICAgICAgICAgICAgICBpZiAoKGxlbmd0aCAlICgxMDI0ICogMTAyNCAqIDEwMjQpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPiAoMTAyNCAqIDEwMjQgKiAxMDI0IC8gMiAtIDEpKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgc2l6ZSsrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzY2FsZSA9ICdHJzsKIAotICAgICAgICAgICAgfSBlbHNlIGlmIChsZW5ndGggPiA5OTk5OTkpIHsKLSAgICAgICAgICAgICAgICBzaXplID0gKG5neF9pbnRfdCkgbGVuZ3RoIC8gMTAyNCAqIDEwMjQ7Ci0gICAgICAgICAgICAgICAgaWYgKChsZW5ndGggJSAxMDI0ICogMTAyNCkgPiAoMTAyNCAqIDEwMjQgLyAyIC0gMSkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID4gMTAyNCAqIDEwMjQpIHsKKyAgICAgICAgICAgICAgICBzaXplID0gKG5neF9pbnRfdCkgKGxlbmd0aCAvICgxMDI0ICogMTAyNCkpOworICAgICAgICAgICAgICAgIGlmICgobGVuZ3RoICUgKDEwMjQgKiAxMDI0KSkgPiAoMTAyNCAqIDEwMjQgLyAyIC0gMSkpIHsKICAgICAgICAgICAgICAgICAgICAgc2l6ZSsrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBzY2FsZSA9ICdNJzsKIAogICAgICAgICAgICAgfSBlbHNlIGlmIChsZW5ndGggPiA5OTk5KSB7Ci0gICAgICAgICAgICAgICAgc2l6ZSA9IChuZ3hfaW50X3QpIGxlbmd0aCAvIDEwMjQ7CisgICAgICAgICAgICAgICAgc2l6ZSA9IChuZ3hfaW50X3QpIChsZW5ndGggLyAxMDI0KTsKICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICUgMTAyNCA+IDUxMSkgewogICAgICAgICAgICAgICAgICAgICBzaXplKys7CiAgICAgICAgICAgICAgICAgfQpAQCAtNDE0LDYgKzQxNCw4IEBACiAgICAgICAgICpiLT5sYXN0KysgPSBMRjsKICAgICB9CiAKKyAgICAvKiBUT0RPOiBmcmVlIHRlbXBvcmFyeSBwb29sICovCisKICAgICBiLT5sYXN0ID0gbmd4X2NweW1lbShiLT5sYXN0LCAiPC9wcmU+PGhyPiIsIHNpemVvZigiPC9wcmU+PGhyPiIpIC0gMSk7CiAKICAgICBiLT5sYXN0ID0gbmd4X2NweW1lbShiLT5sYXN0LCB0YWlsLCBzaXplb2YodGFpbCkgLSAxKTsK