ZGlmZiAtLWdpdCBhL3NyYy9NYWtlX2RpY2UubWFrIGIvc3JjL01ha2VfZGljZS5tYWsKaW5kZXggZjJiMDkwNy4uYzVmZWE1ZSAxMDA2NDQKLS0tIGEvc3JjL01ha2VfZGljZS5tYWsKKysrIGIvc3JjL01ha2VfZGljZS5tYWsKQEAgLTU5LDYgKzU5LDcgQEAKIAlyZWdleHAuYyBcCiAJc2NyZWVuLmMgXAogCXNlYXJjaC5jIFwKKwlzcGVsbC5jIFwKIAlzeW50YXguYyBcCiAJdGFnLmMgXAogCXRlcm0uYyBcCkBAIC0xMDAsNiArMTAxLDcgQEAKIAlvL3JlZ2V4cC5vIFwKIAlvL3NjcmVlbi5vIFwKIAlvL3NlYXJjaC5vIFwKKwlvL3NwZWxsLm8gXAogCW8vc3ludGF4Lm8gXAogCW8vdGFnLm8gXAogCW8vdGVybS5vIFwKQEAgLTE5OCw2ICsyMDAsOCBAQAogCiBvL3NlYXJjaC5vOglzZWFyY2guYyAgJChTWU1TKSByZWdleHAuaAogCitvL3NwZWxsLm86CXNwZWxsLmMgICQoU1lNUykKKwogby9zeW50YXgubzoJc3ludGF4LmMgICQoU1lNUykKIAogby90YWcubzoJdGFnLmMgICQoU1lNUykKZGlmZiAtLWdpdCBhL3NyYy9NYWtlX21wdy5tYWsgYi9zcmMvTWFrZV9tcHcubWFrCmluZGV4IGNkMzY2ZTQuLjRlZTBlNTIgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlX21wdy5tYWsKKysrIGIvc3JjL01ha2VfbXB3Lm1hawpAQCAtNTUsNiArNTUsNyBAQAogCQkJCSAgOnNyYzpyZWdleHAuYyC2CiAJCQkJICA6c3JjOnNjcmVlbi5jILYKIAkJCQkgIDpzcmM6c2VhcmNoLmMgtgorCQkJCSAgOnNyYzpzcGVsbC5jILYKIAkJCQkgIDpzcmM6c3ludGF4LmMgtgogCQkJCSAgOnNyYzp0YWcuYyC2CiAJCQkJICA6c3JjOnRlcm0uYyC2CkBAIC0xMDYsNiArMTA3LDcgQEAKIAkJCQkgICJ7T2JqRGlyfXJlZ2V4cC5jLngiILYKIAkJCQkgICJ7T2JqRGlyfXNjcmVlbi5jLngiILYKIAkJCQkgICJ7T2JqRGlyfXNlYXJjaC5jLngiILYKKwkJCQkgICJ7T2JqRGlyfXNwZWxsLmMueCIgtgogCQkJCSAgIntPYmpEaXJ9c3ludGF4LmMueCIgtgogCQkJCSAgIntPYmpEaXJ9dGFnLmMueCIgtgogCQkJCSAgIntPYmpEaXJ9dGVybS5jLngiILYKQEAgLTE4OCw2ICsxOTAsNyBAQAogIntPYmpEaXJ9cmVnZXhwLmMueCIgIMQgIDpzcmM6cmVnZXhwLmMKICJ7T2JqRGlyfXNjcmVlbi5jLngiICDEICA6c3JjOnNjcmVlbi5jCiAie09iakRpcn1zZWFyY2guYy54IiAgxCAgOnNyYzpzZWFyY2guYworIntPYmpEaXJ9c3BlbGwuYy54IiAgxCAgOnNyYzpzcGVsbC5jCiAie09iakRpcn1zeW50YXguYy54IiAgxCAgOnNyYzpzeW50YXguYwogIntPYmpEaXJ9dGFnLmMueCIgIMQgIDpzcmM6dGFnLmMKICJ7T2JqRGlyfXRlcm0uYy54IiAgxCAgOnNyYzp0ZXJtLmMKQEAgLTI3Myw2ICsyNzYsNyBAQAogCTpzcmM6cHJvdG86cmVnZXhwLnBybyC2CiAJOnNyYzpwcm90bzpzY3JlZW4ucHJvILYKIAk6c3JjOnByb3RvOnNlYXJjaC5wcm8gtgorCTpzcmM6cHJvdG86c3BlbGwucHJvILYKIAk6c3JjOnByb3RvOnN5bnRheC5wcm8gtgogCTpzcmM6cHJvdG86dGFnLnBybyC2CiAJOnNyYzpwcm90bzp0ZXJtLnBybyC2CkBAIC0zNTQsNiArMzU4LDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtNDM1LDYgKzQ0MCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTUxNiw2ICs1MjIsNyBAQAogCTpzcmM6cHJvdG86cmVnZXhwLnBybyC2CiAJOnNyYzpwcm90bzpzY3JlZW4ucHJvILYKIAk6c3JjOnByb3RvOnNlYXJjaC5wcm8gtgorCTpzcmM6cHJvdG86c3BlbGwucHJvILYKIAk6c3JjOnByb3RvOnN5bnRheC5wcm8gtgogCTpzcmM6cHJvdG86dGFnLnBybyC2CiAJOnNyYzpwcm90bzp0ZXJtLnBybyC2CkBAIC01OTcsNiArNjA0LDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtNjc5LDYgKzY4Nyw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTc2MCw2ICs3NjksNyBAQAogCTpzcmM6cHJvdG86cmVnZXhwLnBybyC2CiAJOnNyYzpwcm90bzpzY3JlZW4ucHJvILYKIAk6c3JjOnByb3RvOnNlYXJjaC5wcm8gtgorCTpzcmM6cHJvdG86c3BlbGwucHJvILYKIAk6c3JjOnByb3RvOnN5bnRheC5wcm8gtgogCTpzcmM6cHJvdG86dGFnLnBybyC2CiAJOnNyYzpwcm90bzp0ZXJtLnBybyC2CkBAIC04NDEsNiArODUxLDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtOTIyLDYgKzkzMyw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTEwMDMsNiArMTAxNSw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTEwODQsNiArMTA5Nyw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTExNjUsNiArMTE3OSw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTEyNDYsNiArMTI2MSw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTEzMjYsNiArMTM0Miw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTE0MDcsNiArMTQyNCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTE0ODgsNiArMTUwNiw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTE1NjksNiArMTU4OCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTE2NzYsNiArMTY5Niw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTE3NTgsNiArMTc3OSw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTE4MzksNiArMTg2MSw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTE5MjAsNiArMTk0Myw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTIwMDEsNiArMjAyNSw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTIwODIsNiArMjEwNyw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTIxNjMsNiArMjE4OSw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTIyNDUsNiArMjI3Miw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTIzMjYsNiArMjM1NCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI0MDcsNiArMjQzNiw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI0ODgsNiArMjUxOCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI1NjksNiArMjYwMCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI2NTAsNiArMjY4Miw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI3MzEsNiArMjc2NCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI4MTIsNiArMjg0Niw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI4OTMsNiArMjkyOCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTI5NzQsNiArMzAxMCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTMwNTUsNiArMzA5Miw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTMxMzYsNiArMzE3NCw3IEBACiAJOnNyYzpwcm90bzpyZWdleHAucHJvILYKIAk6c3JjOnByb3RvOnNjcmVlbi5wcm8gtgogCTpzcmM6cHJvdG86c2VhcmNoLnBybyC2CisJOnNyYzpwcm90bzpzcGVsbC5wcm8gtgogCTpzcmM6cHJvdG86c3ludGF4LnBybyC2CiAJOnNyYzpwcm90bzp0YWcucHJvILYKIAk6c3JjOnByb3RvOnRlcm0ucHJvILYKQEAgLTMyMTcsNiArMzI1Niw4OSBAQAogCTpzcmM6cHJvdG86cmVnZXhwLnBybyC2CiAJOnNyYzpwcm90bzpzY3JlZW4ucHJvILYKIAk6c3JjOnByb3RvOnNlYXJjaC5wcm8gtgorCTpzcmM6cHJvdG86c3BlbGwucHJvILYKKwk6c3JjOnByb3RvOnN5bnRheC5wcm8gtgorCTpzcmM6cHJvdG86dGFnLnBybyC2CisJOnNyYzpwcm90bzp0ZXJtLnBybyC2CisJOnNyYzpwcm90bzp0ZXJtbGliLnBybyC2CisJOnNyYzpwcm90bzp1aS5wcm8gtgorCTpzcmM6cHJvdG86dW5kby5wcm8gtgorCTpzcmM6cHJvdG86dmVyc2lvbi5wcm8gtgorCTpzcmM6cHJvdG86d2luZG93LnBybyC2CisJOnNyYzpwcm90bzppZl9weXRob24ucHJvILYKKwk6c3JjOnByb3RvOmlmX3RjbC5wcm8gtgorCTpzcmM6cHJvdG86aWZfcnVieS5wcm8gtgorCTpzcmM6cHJvdG86Z3VpLnBybyC2CisJOnNyYzpwcm90bzpwdHkucHJvILYKKwk6c3JjOnByb3RvOmd1aV9ndGsucHJvILYKKwk6c3JjOnByb3RvOmd1aV9ndGtfeDExLnBybyC2CisJOnNyYzpwcm90bzpndWlfbW90aWYucHJvILYKKwk6c3JjOnByb3RvOmd1aV9hdGhlbmEucHJvILYKKwk6c3JjOnByb3RvOmd1aV9tYWMucHJvILYKKwk6c3JjOnByb3RvOmd1aV94MTEucHJvILYKKwk6c3JjOnByb3RvOndvcmtzaG9wLnBybyC2CisJOnNyYzpwcm90bzppZl9wZXJsLnBybyC2CisJOnNyYzpwcm90bzppZl9wZXJsc2Zpby5wcm8KKworOm9iajpzcGVsbC5jLngJxCAgtgorCTpzcmM6c3BlbGwuYyC2CisJOnNyYzp2aW0uaCC2CisJOnNyYzphdXRvOmNvbmZpZy5oILYKKwk6c3JjOmZlYXR1cmUuaCC2CisJOnNyYzpvc191bml4LmggtgorCTpzcmM6b3NfbWFjLmggtgorCTpzcmM6d29ya3Nob3AuaCC2CisJOnNyYzphc2NpaS5oILYKKwk6c3JjOmtleW1hcC5oILYKKwk6c3JjOnRlcm0uaCC2CisJOnNyYzptYWNyb3MuaCC2CisJOnNyYzpzdHJ1Y3RzLmggtgorCTpzcmM6Z2xvYmFscy5oILYKKwk6c3JjOm9wdGlvbi5oILYKKwk6c3JjOmV4X2NtZHMuaCC2CisJOnNyYzpwcm90by5oILYKKwk6c3JjOmludGVncmF0aW9uLmggtgorCTpzcmM6d3NkZWJ1Zy5oILYKKwk6c3JjOnJlZ2V4cC5oILYKKwk6c3JjOmd1aS5oILYKKwk6c3JjOmZhcnNpLmggtgorCTpzcmM6cHJvdG86b3NfdW5peC5wcm8gtgorCTpzcmM6cHJvdG86b3NfbWFjLnBybyC2CisJOnNyYzpwcm90bzpidWZmZXIucHJvILYKKwk6c3JjOnByb3RvOmNoYXJzZXQucHJvILYKKwk6c3JjOnByb3RvOmlmX2NzY29wZS5wcm8gtgorCTpzcmM6cHJvdG86ZGlmZi5wcm8gtgorCTpzcmM6cHJvdG86ZGlncmFwaC5wcm8gtgorCTpzcmM6cHJvdG86ZWRpdC5wcm8gtgorCTpzcmM6cHJvdG86ZXZhbC5wcm8gtgorCTpzcmM6cHJvdG86ZXhfY21kcy5wcm8gtgorCTpzcmM6cHJvdG86ZXhfY21kczIucHJvILYKKwk6c3JjOnByb3RvOmV4X2RvY21kLnBybyC2CisJOnNyYzpwcm90bzpleF9ldmFsLnBybyC2CisJOnNyYzpwcm90bzpleF9nZXRsbi5wcm8gtgorCTpzcmM6cHJvdG86ZmlsZWlvLnBybyC2CisJOnNyYzpwcm90bzpmb2xkLnBybyC2CisJOnNyYzpwcm90bzpnZXRjaGFyLnBybyC2CisJOnNyYzpwcm90bzpoYXNodGFibGUucHJvILYKKwk6c3JjOnByb3RvOmhhbmd1bGluLnBybyC2CisJOnNyYzpwcm90bzptYWluLnBybyC2CisJOnNyYzpwcm90bzptYXJrLnBybyC2CisJOnNyYzpwcm90bzptZW1maWxlLnBybyC2CisJOnNyYzpwcm90bzptZW1saW5lLnBybyC2CisJOnNyYzpwcm90bzptZW51LnBybyC2CisJOnNyYzpwcm90bzptZXNzYWdlLnBybyC2CisJOnNyYzpwcm90bzptaXNjMS5wcm8gtgorCTpzcmM6cHJvdG86bWlzYzIucHJvILYKKwk6c3JjOnByb3RvOm1vdmUucHJvILYKKwk6c3JjOnByb3RvOm11bHRpYnl0ZS5wcm8gtgorCTpzcmM6cHJvdG86bm9ybWFsLnBybyC2CisJOnNyYzpwcm90bzpvcHMucHJvILYKKwk6c3JjOnByb3RvOm9wdGlvbi5wcm8gtgorCTpzcmM6cHJvdG86cXVpY2tmaXgucHJvILYKKwk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgorCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CisJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzI5OCw2ICszNDIwLDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzM3OSw2ICszNTAyLDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzQ2MCw2ICszNTg0LDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzU0Miw2ICszNjY3LDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzYyMiw2ICszNzQ4LDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzcwMyw2ICszODMwLDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzc4NSw2ICszOTEzLDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzg2Niw2ICszOTk1LDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpAQCAtMzk0Nyw2ICs0MDc3LDcgQEAKIAk6c3JjOnByb3RvOnJlZ2V4cC5wcm8gtgogCTpzcmM6cHJvdG86c2NyZWVuLnBybyC2CiAJOnNyYzpwcm90bzpzZWFyY2gucHJvILYKKwk6c3JjOnByb3RvOnNwZWxsLnBybyC2CiAJOnNyYzpwcm90bzpzeW50YXgucHJvILYKIAk6c3JjOnByb3RvOnRhZy5wcm8gtgogCTpzcmM6cHJvdG86dGVybS5wcm8gtgpkaWZmIC0tZ2l0IGEvc3JjL01ha2Vfb3MyLm1hayBiL3NyYy9NYWtlX29zMi5tYWsKaW5kZXggMTc1MGU3MS4uYzE4NTM4ZSAxMDA2NDQKLS0tIGEvc3JjL01ha2Vfb3MyLm1haworKysgYi9zcmMvTWFrZV9vczIubWFrCkBAIC03MSw2ICs3MSw3IEBACiAJcmVnZXhwLm8gXAogCXNjcmVlbi5vIFwKIAlzZWFyY2gubyBcCisJc3BlbGwubyBcCiAJc3ludGF4Lm8gXAogCXRhZy5vIFwKIAl0ZXJtLm8gXApAQCAtMTQxLDYgKzE0Miw3IEBACiByZWdleHAubzoJcmVnZXhwLmMgICQoSU5DTCkKIHNjcmVlbi5vOglzY3JlZW4uYyAgJChJTkNMKQogc2VhcmNoLm86CXNlYXJjaC5jICAkKElOQ0wpCitzcGVsbC5vOglzcGVsbC5jICAkKElOQ0wpCiBzeW50YXgubzoJc3ludGF4LmMgICQoSU5DTCkKIHRhZy5vOgkJdGFnLmMgICQoSU5DTCkKIHRlcm0ubzoJCXRlcm0uYyAgJChJTkNMKQpkaWZmIC0tZ2l0IGEvc3JjL01ha2Vfc2FzLm1hayBiL3NyYy9NYWtlX3Nhcy5tYWsKaW5kZXggMTc1MWQ4YS4uM2U1NjNmOSAxMDA2NDQKLS0tIGEvc3JjL01ha2Vfc2FzLm1haworKysgYi9zcmMvTWFrZV9zYXMubWFrCkBAIC0xMjIsNiArMTIyLDcgQEAKIAlyZWdleHAuYyBcCiAJc2NyZWVuLmMgXAogCXNlYXJjaC5jIFwKKwlzcGVsbC5jIFwKIAlzeW50YXguYyBcCiAJdGFnLmMgXAogCXRlcm0uYyBcCkBAIC0xNjQsNiArMTY1LDcgQEAKIAlyZWdleHAubyBcCiAJc2NyZWVuLm8gXAogCXNlYXJjaC5vIFwKKwlzcGVsbC5vIFwKIAlzeW50YXgubyBcCiAJdGFnLm8gXAogCXRlcm0ubyBcCkBAIC0yMDYsNiArMjA4LDcgQEAKIAlwcm90by9yZWdleHAucHJvIFwKIAlwcm90by9zY3JlZW4ucHJvIFwKIAlwcm90by9zZWFyY2gucHJvIFwKKwlwcm90by9zcGVsbC5wcm8gXAogCXByb3RvL3N5bnRheC5wcm8gXAogCXByb3RvL3RhZy5wcm8gXAogCXByb3RvL3Rlcm0ucHJvIFwKQEAgLTMzNSw2ICszMzgsOCBAQAogcHJvdG8vc2NyZWVuLnBybzoJc2NyZWVuLmMKIHNlYXJjaC5vOgkJc2VhcmNoLmMKIHByb3RvL3NlYXJjaC5wcm86CXNlYXJjaC5jCitzcGVsbC5vOgkJc3BlbGwuYworcHJvdG8vc3BlbGwucHJvOglzcGVsbC5jCiBzeW50YXgubzoJCXN5bnRheC5jCiBwcm90by9zeW50YXgucHJvOglzeW50YXguYwogdGFnLm86CQkJdGFnLmMKZGlmZiAtLWdpdCBhL3NyYy9NYWtlX3Ztcy5tbXMgYi9zcmMvTWFrZV92bXMubW1zCmluZGV4IGI0NDg1NTIuLmNhNTgyZmYgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtlX3Ztcy5tbXMKKysrIGIvc3JjL01ha2Vfdm1zLm1tcwpAQCAtMiw3ICsyLDcgQEAKICMgTWFrZWZpbGUgZm9yIFZpbSBvbiBPcGVuVk1TCiAjCiAjIE1haW50YWluZXI6ICAgWm9sdGFuIEFycGFkZmZ5IDxhcnBhZGZmeUBwb2xhcmhvbWUuY29tPgotIyBMYXN0IGNoYW5nZTogIDIwMDUgSmFuIDE5CisjIExhc3QgY2hhbmdlOiAgMjAwNSBNYXIgMTkKICMKICMgVGhpcyBoYXMgc2NyaXB0IGJlZW4gdGVzdGVkIG9uIFZNUyA2LjIgdG8gNy4zIG9uIERFQyBBbHBoYSwgVkFYIGFuZCBJQTY0CiAjIHdpdGggTU1TIGFuZCBNTUsKQEAgLTI3Niw3ICsyNzYsNyBAQAogCWV4X2RvY21kLmMgZXhfZXZhbC5jIGV4X2dldGxuLmMgaWZfeGNtZHNydi5jIGZpbGVpby5jIGZvbGQuYyBnZXRjaGFyLmMgXAogCWhhc2h0YWJsZS5jLCBtYWluLmMgbWFyay5jIG1lbnUuYyBtYnl0ZS5jIG1lbWZpbGUuYyBtZW1saW5lLmMgbWVzc2FnZS5jIG1pc2MxLmMgXAogCW1pc2MyLmMgbW92ZS5jIG5vcm1hbC5jIG9wcy5jIG9wdGlvbi5jIHF1aWNrZml4LmMgcmVnZXhwLmMgc2VhcmNoLmMgXAotCXN5bnRheC5jIHRhZy5jIHRlcm0uYyB0ZXJtbGliLmMgdWkuYyB1bmRvLmMgdmVyc2lvbi5jIHNjcmVlbi5jIFwKKwlzcGVsbC5jIHN5bnRheC5jIHRhZy5jIHRlcm0uYyB0ZXJtbGliLmMgdWkuYyB1bmRvLmMgdmVyc2lvbi5jIHNjcmVlbi5jIFwKIAl3aW5kb3cuYyBvc191bml4LmMgb3Nfdm1zLmMgcGF0aGRlZi5jIFwKIAkkKEdVSV9TUkMpICQoUEVSTF9TUkMpICQoUFlUSE9OX1NSQykgJChUQ0xfU1JDKSAkKFNOSUZGX1NSQykgXAogCSQoUlVCWV9TUkMpICQoSEFOR1VMSU5fU1JDKQpAQCAtMjg2LDcgKzI4Niw3IEBACiAJaWZfeGNtZHNydi5vYmogZmlsZWlvLm9iaiBmb2xkLm9iaiBnZXRjaGFyLm9iaiBoYXNodGFibGUub2JqIG1haW4ub2JqIG1hcmsub2JqIFwKIAltZW51Lm9iaiBtZW1maWxlLm9iaiBtZW1saW5lLm9iaiBtZXNzYWdlLm9iaiBtaXNjMS5vYmogbWlzYzIub2JqIFwKIAltb3ZlLm9iaiBtYnl0ZS5vYmogbm9ybWFsLm9iaiBvcHMub2JqIG9wdGlvbi5vYmogcXVpY2tmaXgub2JqIFwKLQlyZWdleHAub2JqIHNlYXJjaC5vYmogc3ludGF4Lm9iaiB0YWcub2JqIHRlcm0ub2JqIHRlcm1saWIub2JqIFwKKwlyZWdleHAub2JqIHNlYXJjaC5vYmogc3BlbGwub2JqIHN5bnRheC5vYmogdGFnLm9iaiB0ZXJtLm9iaiB0ZXJtbGliLm9iaiBcCiAJdWkub2JqIHVuZG8ub2JqIHNjcmVlbi5vYmogdmVyc2lvbi5vYmogd2luZG93Lm9iaiBvc191bml4Lm9iaiBcCiAJb3Nfdm1zLm9iaiBwYXRoZGVmLm9iaiBcCiAJJChHVUlfT0JKKSAkKFBFUkxfT0JKKSAkKFBZVEhPTl9PQkopICQoVENMX09CSikgJChTTklGRl9PQkopIFwKQEAgLTYwMiw2ICs2MDIsMTAgQEAKICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggXAogIGd1aS5oIGd1aV9iZXZhbC5oIFsucHJvdG9dZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBcCiAgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmgKK3NwZWxsLm9iaiA6IHNwZWxsLmMgdmltLmggWy5hdXRvXWNvbmZpZy5oIGZlYXR1cmUuaCBvc191bml4LmggXAorIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBcCisgZ3VpLmggZ3VpX2JldmFsLmggWy5wcm90b11ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIFwKKyBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaAogc3ludGF4Lm9iaiA6IHN5bnRheC5jIHZpbS5oIFsuYXV0b11jb25maWcuaCBmZWF0dXJlLmggb3NfdW5peC5oIFwKICBhc2NpaS5oIGtleW1hcC5oIHRlcm0uaCBtYWNyb3MuaCBzdHJ1Y3RzLmggcmVnZXhwLmggXAogIGd1aS5oIGd1aV9iZXZhbC5oIFsucHJvdG9dZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBcCmRpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUgYi9zcmMvTWFrZWZpbGUKaW5kZXggYTE1Mzk4YS4uYTcwZDEwZiAxMDA2NDQKLS0tIGEvc3JjL01ha2VmaWxlCisrKyBiL3NyYy9NYWtlZmlsZQpAQCAtMTI1LDYgKzEyNSw3IEBACiAjCQltYWtlIGluc3RhbGxtYW5saW5rcwlvbmx5IGluc3RhbGxzIHRoZSBWaW0gbWFucGFnZSBsaW5rcwogIwkJbWFrZSBpbnN0YWxsbWFjcm9zCW9ubHkgaW5zdGFsbHMgdGhlIFZpbSBtYWNyb3MKICMJCW1ha2UgaW5zdGFsbHR1dG9yCW9ubHkgaW5zdGFsbHMgdGhlIFZpbSB0dXRvcgorIwkJbWFrZSBpbnN0YWxsc3BlbGwJb25seSBpbnN0YWxscyB0aGUgc3BlbGwgZmlsZXMKICMJCW1ha2UgaW5zdGFsbHRvb2xzCW9ubHkgaW5zdGFsbHMgeHhkCiAjCUlmIHlvdSBpbnN0YWxsIFZpbSwgbm90IHRvIGluc3RhbGwgZm9yIHJlYWwgYnV0IHRvIHByZXBhcmUgYSBwYWNrYWdlCiAjCW9yIFJQTSwgc2V0IERFU1RESVIgdG8gdGhlIHJvb3Qgb2YgdGhlIHRyZWUuCkBAIC04NzQsNiArODc1LDcgQEAKIE1BQ1JPU1VCRElSID0gL21hY3JvcwogVE9PTFNTVUJESVIgPSAvdG9vbHMKIFRVVE9SU1VCRElSID0gL3R1dG9yCitTUEVMTFNVQkRJUiA9IC9zcGVsbAogUFJJTlRTVUJESVIgPSAvcHJpbnQKIFBPRElSID0gcG8KIApAQCAtODkzLDYgKzg5NSw3IEBACiAjIyMgTUFDUk9TVUJMT0MJbG9jYXRpb24gZm9yIG1hY3JvIGZpbGVzCiAjIyMgVE9PTFNTVUJMT0MJbG9jYXRpb24gZm9yIHRvb2xzIGZpbGVzCiAjIyMgVFVUT1JTVUJMT0MJbG9jYXRpb24gZm9yIHR1dG9yIGZpbGVzCisjIyMgU1BFTExTVUJMT0MJbG9jYXRpb24gZm9yIHNwZWxsIGZpbGVzCiAjIyMgUFJJTlRTVUJMT0MJbG9jYXRpb24gZm9yIFBvc3RTY3JpcHQgZmlsZXMgKHByb2xvZywgbGF0aW4xLCAuLikKICMjIyBTQ1JJUFRMT0MJbG9jYXRpb24gZm9yIHNjcmlwdCBmaWxlcyAobWVudS52aW0sIGJ1Z3JlcG9ydC52aW0sIC4uKQogIyMjIFlvdSBjYW4gb3ZlcnJpZGUgdGhlc2UgaWYgeW91IHdhbnQgdG8gaW5zdGFsbCB0aGVtIHNvbWV3aGVyZSBlbHNlLgpAQCAtOTEyLDYgKzkxNSw3IEBACiBNQUNST1NVQkxPQwk9ICQoVklNUlRMT0MpJChNQUNST1NVQkRJUikKIFRPT0xTU1VCTE9DCT0gJChWSU1SVExPQykkKFRPT0xTU1VCRElSKQogVFVUT1JTVUJMT0MJPSAkKFZJTVJUTE9DKSQoVFVUT1JTVUJESVIpCitTUEVMTFNVQkxPQwk9ICQoVklNUlRMT0MpJChTUEVMTFNVQkRJUikKIFBSSU5UU1VCTE9DCT0gJChWSU1SVExPQykkKFBSSU5UU1VCRElSKQogU0NSSVBUTE9DCT0gJChWSU1SVExPQykKIApAQCAtMTAxNiw2ICsxMDIwLDkgQEAKICMgV2hlcmUgdG8gY29weSB0aGUgdHV0b3IgZmlsZXMgZnJvbQogVFVUT1JTT1VSQ0UgPSAuLi9ydW50aW1lL3R1dG9yCiAKKyMgV2hlcmUgdG8gY29weSB0aGUgc3BlbGwgZmlsZXMgZnJvbQorU1BFTExTT1VSQ0UgPSAuLi9ydW50aW1lL3NwZWxsCisKICMgV2hlcmUgdG8gbG9vayBmb3IgbGFuZ3VhZ2Ugc3BlY2lmaWMgZmlsZXMKIExBTkdTT1VSQ0UgPSAuLi9ydW50aW1lL2xhbmcKIApAQCAtMTI3NSw2ICsxMjgyLDcgQEAKIERFU1RfTUFDUk8gPSAkKERFU1RESVIpJChNQUNST1NVQkxPQykKIERFU1RfVE9PTFMgPSAkKERFU1RESVIpJChUT09MU1NVQkxPQykKIERFU1RfVFVUT1IgPSAkKERFU1RESVIpJChUVVRPUlNVQkxPQykKK0RFU1RfU1BFTEwgPSAkKERFU1RESVIpJChTUEVMTFNVQkxPQykKIERFU1RfU0NSSVBUID0gJChERVNURElSKSQoU0NSSVBUTE9DKQogREVTVF9QUklOVCA9ICQoREVTVERJUikkKFBSSU5UU1VCTE9DKQogREVTVF9NQU5fVE9QID0gJChERVNURElSKSQoTUFORElSKQpAQCAtMTI4Miw4ICsxMjkwLDEwIEBACiAjIFdlIGFzc3VtZSB0aGF0IHRoZSAiLi4uL21hbi94eC9tYW4xLyIgZGlyZWN0b3J5IGlzIGZvciBsYXRpbjEgbWFudWFsIHBhZ2VzLgogIyBTb21lIHN5c3RlbXMgdXNlIFVURi04LCBidXQgdGhlc2Ugc2hvdWxkIGZpbmQgdGhlICIuLi4vbWFuL3h4LlVURi04L21hbjEvIgogIyBkaXJlY3RvcnkgZmlyc3QuCisjIEZyZWVCU0QgdXNlcyAiLi4uL21hbi94eC5JU084ODU5LTEvbWFuMSIgZm9yIGxhdGluMSwgdXNlIHRoYXQgb25lIHRvby4KIERFU1RfTUFOID0gJChERVNUX01BTl9UT1ApJChNQU4xRElSKQogREVTVF9NQU5fSVQgPSAkKERFU1RfTUFOX1RPUCkvaXQkKE1BTjFESVIpCitERVNUX01BTl9JVF9JID0gJChERVNUX01BTl9UT1ApL2l0LklTTzg4NTktMSQoTUFOMURJUikKIERFU1RfTUFOX0lUX1UgPSAkKERFU1RfTUFOX1RPUCkvaXQuVVRGLTgkKE1BTjFESVIpCiBERVNUX01BTl9SVSA9ICQoREVTVF9NQU5fVE9QKS9ydS5LT0k4LVIkKE1BTjFESVIpCiBERVNUX01BTl9SVV9VID0gJChERVNUX01BTl9UT1ApL3J1LlVURi04JChNQU4xRElSKQpAQCAtMTMzNiw2ICsxMzQ2LDcgQEAKIAlyZWdleHAuYyBcCiAJc2NyZWVuLmMgXAogCXNlYXJjaC5jIFwKKwlzcGVsbC5jIFwKIAlzeW50YXguYyBcCiAJdGFnLmMgXAogCXRlcm0uYyBcCkBAIC0xNDA0LDYgKzE0MTUsNyBAQAogCW9iamVjdHMvcmVnZXhwLm8gXAogCW9iamVjdHMvc2NyZWVuLm8gXAogCW9iamVjdHMvc2VhcmNoLm8gXAorCW9iamVjdHMvc3BlbGwubyBcCiAJb2JqZWN0cy9zeW50YXgubyBcCiAJJChTTklGRl9PQkopIFwKIAlvYmplY3RzL3RhZy5vIFwKQEAgLTE0NjEsNiArMTQ3Myw3IEBACiAJcmVnZXhwLnBybyBcCiAJc2NyZWVuLnBybyBcCiAJc2VhcmNoLnBybyBcCisJc3BlbGwucHJvIFwKIAlzeW50YXgucHJvIFwKIAl0YWcucHJvIFwKIAl0ZXJtLnBybyBcCkBAIC0xNjgxLDcgKzE2OTQsNyBAQAogCiBpbnN0YWxsX25vcm1hbDogaW5zdGFsbHZpbSBpbnN0YWxsdG9vbHMgaW5zdGFsbC1sYW5ndWFnZXMgaW5zdGFsbC1pY29ucwogCi1pbnN0YWxsdmltOiBpbnN0YWxsdmltYmluIGluc3RhbGxydW50aW1lIGluc3RhbGxsaW5rcyBpbnN0YWxsbWFubGlua3MgaW5zdGFsbG1hY3JvcyBpbnN0YWxsdHV0b3IKK2luc3RhbGx2aW06IGluc3RhbGx2aW1iaW4gaW5zdGFsbHJ1bnRpbWUgaW5zdGFsbGxpbmtzIGluc3RhbGxtYW5saW5rcyBpbnN0YWxsbWFjcm9zIGluc3RhbGx0dXRvciBpbnN0YWxsc3BlbGwKIAogaW5zdGFsbHZpbWJpbjogJChWSU1UQVJHRVQpICQoREVTVERJUikkKGV4ZWNfcHJlZml4KSAkKERFU1RfQklOKQogCS1pZiB0ZXN0IC1mICQoREVTVF9CSU4pLyQoVklNVEFSR0VUKTsgdGhlbiBcCkBAIC0xNzAyLDcgKzE3MTUsNyBAQAogIyBpbnN0YWxsIHRoZSBoZWxwIGZpbGVzOyBmaXJzdCBhZGp1c3QgdGhlIGNvbnRlbnRzIGZvciB0aGUgZmluYWwgbG9jYXRpb24KIGluc3RhbGxydW50aW1lOiAkKEhFTFBTT1VSQ0UpL3ZpbS4xICQoREVTVF9WSU0pICQoREVTVF9SVCkgXAogCQkkKERFU1RfSEVMUCkgJChERVNUX1BSSU5UKSAkKERFU1RfQ09MKSAkKERFU1RfU1lOKSAkKERFU1RfSU5EKSBcCi0JCSQoREVTVF9GVFApICQoREVTVF9QTFVHKSAkKERFU1RfVFVUT1IpICQoREVTVF9DT01QKQorCQkkKERFU1RfRlRQKSAkKERFU1RfUExVRykgJChERVNUX1RVVE9SKSAkKERFU1RfU1BFTEwpICQoREVTVF9DT01QKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggaW5zdGFsbCAkKERFU1RfTUFOKSAiIiAkKElOU1RBTExNQU5BUkdTKQogCUBlY2hvIGdlbmVyYXRpbmcgaGVscCB0YWdzCiAjIEdlbmVyYXRlIHRoZSBoZWxwIHRhZ3Mgd2l0aCAiOmhlbHB0YWdzIiB0byBoYW5kbGUgYWxsIGxhbmd1YWdlcy4KQEAgLTE3OTIsNiArMTgwNSwxMyBAQAogCS0kKElOU1RBTExfREFUQSkgJChUVVRPUlNPVVJDRSkvUkVBRE1FKiAkKFRVVE9SU09VUkNFKS90dXRvciogJChERVNUX1RVVE9SKQogCWNobW9kICQoSEVMUE1PRCkgJChERVNUX1RVVE9SKS8qCiAKKyMgSW5zdGFsbCB0aGUgc3BlbGwgZmlsZXMsIGlmIHRoZXkgZXhpc3QuCitpbnN0YWxsc3BlbGw6ICQoU1BFTExTT1VSQ0UpICQoREVTVF9WSU0pICQoREVTVF9SVCkgJChERVNUX1NQRUxMKQorCWlmIHRlc3QgLWYgJChTUEVMTFNPVVJDRSkvZW4uc3BsOyB0aGVuIFwKKwkgICQoSU5TVEFMTF9EQVRBKSAkKFNQRUxMU09VUkNFKS8qLnNwbCAkKERFU1RfU1BFTEwpOyBcCisJICBjaG1vZCAkKEhFTFBNT0QpICQoREVTVF9TUEVMTCkvKi5zcGw7IFwKKwlmaQorCiAjIGluc3RhbGwgaGVscGVyIHByb2dyYW0geHhkCiBpbnN0YWxsdG9vbHM6ICQoVE9PTFMpICQoREVTVERJUikkKGV4ZWNfcHJlZml4KSAkKERFU1RfQklOKSBcCiAJCSQoVE9PTFNTT1VSQ0UpICQoREVTVF9WSU0pICQoREVTVF9SVCkgJChERVNUX1RPT0xTKQpAQCAtMTgwNCw2ICsxODI0LDcgQEAKIAljaG1vZCAkKEJJTk1PRCkgJChERVNUX0JJTikveHhkJChFWEVFWFQpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCB4eGQgJChERVNUX01BTikgIiIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHh4ZCAkKERFU1RfTUFOX0lUKSAiLWl0IiAkKElOU1RBTExNQU5BUkdTKQorCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggeHhkICQoREVTVF9NQU5fSVRfSSkgIi1pdCIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHh4ZCAkKERFU1RfTUFOX0lUX1UpICItaXQuVVRGLTgiICQoSU5TVEFMTE1BTkFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCB4eGQgJChERVNUX01BTl9SVSkgIi1ydSIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHh4ZCAkKERFU1RfTUFOX1JVX1UpICItcnUuVVRGLTgiICQoSU5TVEFMTE1BTkFSR1MpCkBAIC0xODI1LDEyICsxODQ2LDE1IEBACiAjIGluc3RhbGwgdGhlIGxhbmd1YWdlIHNwZWNpZmljIGZpbGVzLCBpZiB0aGV5IHdlcmUgdW5wYWNrZWQKIGluc3RhbGwtbGFuZ3VhZ2VzOiBsYW5ndWFnZXMgJChERVNUX0xBTkcpICQoREVTVF9LTUFQKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggaW5zdGFsbCAkKERFU1RfTUFOX0lUKSAiLWl0IiAkKElOU1RBTExNQU5BUkdTKQorCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggaW5zdGFsbCAkKERFU1RfTUFOX0lUX0kpICItaXQiICQoSU5TVEFMTE1BTkFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCBpbnN0YWxsICQoREVTVF9NQU5fSVRfVSkgIi1pdC5VVEYtOCIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9SVSkgIi1ydSIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIGluc3RhbGwgJChERVNUX01BTl9SVV9VKSAiLXJ1LlVURi04IiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKIAkJJChERVNUX01BTl9JVCkgJChJTlNUQUxMTUxBUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtbC5zaCBpbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKKwkJJChERVNUX01BTl9JVF9JKSAkKElOU1RBTExNTEFSR1MpCisJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIGluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXAogCQkkKERFU1RfTUFOX0lUX1UpICQoSU5TVEFMTE1MQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWwuc2ggaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAJCSQoREVTVF9NQU5fUlUpICQoSU5TVEFMTE1MQVJHUykKQEAgLTE4OTUsNyArMTkxOSw4IEBACiAJCSQoREVTVF9WSU0pICQoREVTVF9SVCkgJChERVNUX0hFTFApIFwKIAkJJChERVNUX1BSSU5UKSAkKERFU1RfQ09MKSAkKERFU1RfU1lOKSAkKERFU1RfSU5EKSAkKERFU1RfRlRQKSBcCiAJCSQoREVTVF9MQU5HKSAkKERFU1RfS01BUCkgJChERVNUX0NPTVApIFwKLQkJJChERVNUX01BQ1JPKSAkKERFU1RfVE9PTFMpICQoREVTVF9UVVRPUikgJChERVNUX1BMVUcpOgorCQkkKERFU1RfTUFDUk8pICQoREVTVF9UT09MUykgJChERVNUX1RVVE9SKSAkKERFU1RfU1BFTEwpIFwKKwkJJChERVNUX1BMVUcpOgogCS0kKFNIRUxMKSAuL21raW5zdGFsbGRpcnMgJEAKIAktY2htb2QgJChESVJNT0QpICRACiAKQEAgLTE5ODIsNiArMjAwNyw3IEBACiB1bmluc3RhbGxfcnVudGltZToKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOKSAiIiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggdW5pbnN0YWxsICQoREVTVF9NQU5fSVQpICIiICQoSU5TVEFMTE1BTkFSR1MpCisJLSQoU0hFTEwpIC4vaW5zdGFsbG1hbi5zaCB1bmluc3RhbGwgJChERVNUX01BTl9JVF9JKSAiIiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggdW5pbnN0YWxsICQoREVTVF9NQU5fSVRfVSkgIiIgJChJTlNUQUxMTUFOQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWFuLnNoIHVuaW5zdGFsbCAkKERFU1RfTUFOX1JVKSAiIiAkKElOU1RBTExNQU5BUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtYW4uc2ggdW5pbnN0YWxsICQoREVTVF9NQU5fUlVfVSkgIiIgJChJTlNUQUxMTUFOQVJHUykKQEAgLTE5OTAsMTMgKzIwMTYsMTUgQEAKIAktJChTSEVMTCkgLi9pbnN0YWxsbWwuc2ggdW5pbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKIAkJJChERVNUX01BTl9JVCkgJChJTlNUQUxMTUxBUkdTKQogCS0kKFNIRUxMKSAuL2luc3RhbGxtbC5zaCB1bmluc3RhbGwgIiQoR1VJX01BTl9UQVJHRVRTKSIgXAorCQkkKERFU1RfTUFOX0lUX0kpICQoSU5TVEFMTE1MQVJHUykKKwktJChTSEVMTCkgLi9pbnN0YWxsbWwuc2ggdW5pbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKIAkJJChERVNUX01BTl9JVF9VKSAkKElOU1RBTExNTEFSR1MpCiAJLSQoU0hFTEwpIC4vaW5zdGFsbG1sLnNoIHVuaW5zdGFsbCAiJChHVUlfTUFOX1RBUkdFVFMpIiBcCiAJCSQoREVTVF9NQU5fUlUpICQoSU5TVEFMTE1MQVJHUykKIAktJChTSEVMTCkgLi9pbnN0YWxsbWwuc2ggdW5pbnN0YWxsICIkKEdVSV9NQU5fVEFSR0VUUykiIFwKIAkJJChERVNUX01BTl9SVV9VKSAkKElOU1RBTExNTEFSR1MpCiAJLXJtIC1mICQoREVTVF9NQU4pL3h4ZC4xCi0JLXJtIC1mICQoREVTVF9NQU5fSVQpL3h4ZC4xICQoREVTVF9NQU5fSVRfVSkveHhkLjEKKwktcm0gLWYgJChERVNUX01BTl9JVCkveHhkLjEgJChERVNUX01BTl9JVF9JKS94eGQuMSAkKERFU1RfTUFOX0lUX1UpL3h4ZC4xCiAJLXJtIC1mICQoREVTVF9NQU5fUlUpL3h4ZC4xICQoREVTVF9NQU5fUlVfVSkveHhkLjEKIAktcm0gLWYgJChERVNUX0hFTFApLyoudHh0ICQoREVTVF9IRUxQKS90YWdzICQoREVTVF9IRUxQKS8qLnBsCiAJLXJtIC1mICQoREVTVF9IRUxQKS8qLj8/eCAkKERFU1RfSEVMUCkvdGFncy0/PwpAQCAtMjAxMiw2ICsyMDQwLDcgQEAKIAktcm0gLWYgJChERVNUX0lORCkvKi52aW0gJChERVNUX0lORCkvUkVBRE1FLnR4dAogCS1ybSAtcmYgJChERVNUX01BQ1JPKQogCS1ybSAtcmYgJChERVNUX1RVVE9SKQorCS1ybSAtcmYgJChERVNUX1NQRUxMKQogCS1ybSAtcmYgJChERVNUX1RPT0xTKQogCS1ybSAtcmYgJChERVNUX0xBTkcpCiAJLXJtIC1yZiAkKERFU1RfS01BUCkKQEAgLTIzNjUsNiArMjM5NCw5IEBACiBvYmplY3RzL3NlYXJjaC5vOiBzZWFyY2guYwogCSQoQ0NDKSAtbyAkQCBzZWFyY2guYwogCitvYmplY3RzL3NwZWxsLm86IHNwZWxsLmMKKwkkKENDQykgLW8gJEAgc3BlbGwuYworCiBvYmplY3RzL3N5bnRheC5vOiBzeW50YXguYwogCSQoQ0NDKSAtbyAkQCBzeW50YXguYwogCkBAIC0yNjQzLDYgKzI2NzUsMTAgQEAKICBhdXRvL29zZGVmLmggYXNjaWkuaCBrZXltYXAuaCB0ZXJtLmggbWFjcm9zLmggc3RydWN0cy5oIHJlZ2V4cC5oIFwKICBndWkuaCBndWlfYmV2YWwuaCBwcm90by9ndWlfYmV2YWwucHJvIG9wdGlvbi5oIGV4X2NtZHMuaCBwcm90by5oIFwKICBnbG9iYWxzLmggZmFyc2kuaCBhcmFiaWMuaAorb2JqZWN0cy9zcGVsbC5vOiBzcGVsbC5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCisgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBcCisgZ3VpLmggZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBcCisgZ2xvYmFscy5oIGZhcnNpLmggYXJhYmljLmgKIG9iamVjdHMvc3ludGF4Lm86IHN5bnRheC5jIHZpbS5oIGF1dG8vY29uZmlnLmggZmVhdHVyZS5oIG9zX3VuaXguaCBcCiAgYXV0by9vc2RlZi5oIGFzY2lpLmgga2V5bWFwLmggdGVybS5oIG1hY3Jvcy5oIHN0cnVjdHMuaCByZWdleHAuaCBcCiAgZ3VpLmggZ3VpX2JldmFsLmggcHJvdG8vZ3VpX2JldmFsLnBybyBvcHRpb24uaCBleF9jbWRzLmggcHJvdG8uaCBcCmRpZmYgLS1naXQgYS9zcmMvY2hhcnNldC5jIGIvc3JjL2NoYXJzZXQuYwppbmRleCBiZTkwOGVkLi5iNTFkMDcyIDEwMDY0NAotLS0gYS9zcmMvY2hhcnNldC5jCisrKyBiL3NyYy9jaGFyc2V0LmMKQEAgLTM5NCw4ICszOTQsOCBAQAogCiAjaWYgZGVmaW5lZChGRUFUX1NZTl9ITCkgfHwgZGVmaW5lZChGRUFUX0lOU19FWFBBTkQpIHx8IGRlZmluZWQoUFJPVE8pCiAvKgotICogQ29udmVydCB0aGUgc3RyaW5nICJwW2xlbl0iIHRvIGRvIGlnbm9yZS1jYXNlIGNvbXBhcmluZy4gIFVzZXMgdGhlIGN1cnJlbnQKLSAqIGxvY2FsZS4KKyAqIENvbnZlcnQgdGhlIHN0cmluZyAic3RyW29yZ2xlbl0iIHRvIGRvIGlnbm9yZS1jYXNlIGNvbXBhcmluZy4gIFVzZXMgdGhlCisgKiBjdXJyZW50IGxvY2FsZS4KICAqIFdoZW4gImJ1ZiIgaXMgTlVMTCByZXR1cm5zIGFuIGFsbG9jYXRlZCBzdHJpbmcgKE5VTEwgZm9yIG91dC1vZi1tZW1vcnkpLgogICogT3RoZXJ3aXNlIHB1dHMgdGhlIHJlc3VsdCBpbiAiYnVmW2J1Zmxlbl0iLgogICovCmRpZmYgLS1naXQgYS9zcmMvZWRpdC5jIGIvc3JjL2VkaXQuYwppbmRleCAzYTNlODY1Li4zOWZjMGVlIDEwMDY0NAotLS0gYS9zcmMvZWRpdC5jCisrKyBiL3NyYy9lZGl0LmMKQEAgLTEyNiw2ICsxMjYsOSBAQAogc3RhdGljIHZvaWQgY2hlY2tfYXV0b19mb3JtYXQgX19BUkdTKChpbnQpKTsKIHN0YXRpYyB2b2lkIHJlZG9fbGl0ZXJhbCBfX0FSR1MoKGludCBjKSk7CiBzdGF0aWMgdm9pZCBzdGFydF9hcnJvdyBfX0FSR1MoKHBvc19UICplbmRfaW5zZXJ0X3BvcykpOworI2lmZGVmIEZFQVRfU1lOX0hMCitzdGF0aWMgdm9pZCBjaGVja19zcGVsbF9yZWRyYXcgX19BUkdTKCh2b2lkKSk7CisjZW5kaWYKIHN0YXRpYyB2b2lkIHN0b3BfaW5zZXJ0IF9fQVJHUygocG9zX1QgKmVuZF9pbnNlcnRfcG9zLCBpbnQgZXNjKSk7CiBzdGF0aWMgaW50ICBlY2hlY2tfYWJiciBfX0FSR1MoKGludCkpOwogc3RhdGljIHZvaWQgcmVwbGFjZV9wdXNoX29mZiBfX0FSR1MoKGludCBjKSk7CkBAIC04ODAsNiArODgzLDkgQEAKIAkgICAgLyoKIAkgICAgICogVGhpcyBpcyB0aGUgT05MWSByZXR1cm4gZnJvbSBlZGl0KCkhCiAJICAgICAqLworI2lmZGVmIEZFQVRfU1lOX0hMCisJICAgIGNoZWNrX3NwZWxsX3JlZHJhdygpOworI2VuZGlmCiAJICAgIC8qIEFsd2F5cyB1cGRhdGUgb19sbnVtLCBzbyB0aGF0IGEgIkNUUkwtTyAuIiB0aGF0IGFkZHMgYSBsaW5lCiAJICAgICAqIHN0aWxsIHB1dHMgdGhlIGN1cnNvciBiYWNrIGFmdGVyIHRoZSBpbnNlcnRlZCB0ZXh0LiAqLwogCSAgICBpZiAob19lb2wgJiYgZ2NoYXJfY3Vyc29yKCkgPT0gTlVMKQpAQCAtMzk1OCw2ICszOTY0LDExIEBACiAKICAgICBpZiAoY2MgPT0gMCkJLyogTlVMIGlzIHN0b3JlZCBhcyBOTCAqLwogCWNjID0gJ1xuJzsKKyNpZmRlZiBGRUFUX01CWVRFCisgICAgaWYgKGVuY19kYmNzICYmIChjYyAmIDB4ZmYpID09IDApCisJY2MgPSAnPyc7CS8qIGRvbid0IGFjY2VwdCBhbiBpbGxlZ2FsIERCQ1MgY2hhciwgdGhlIE5VTCBpbiB0aGUKKwkJCSAgIHNlY29uZCBieXRlIHdpbGwgY2F1c2UgdHJvdWJsZSEgKi8KKyNlbmRpZgogCiAgICAgLS1ub19tYXBwaW5nOwogI2lmZGVmIEZFQVRfR1VJCkBAIC00Nzc0LDggKzQ3ODUsMjkgQEAKIAlzdG9wX2luc2VydChlbmRfaW5zZXJ0X3BvcywgRkFMU0UpOwogCWFycm93X3VzZWQgPSBUUlVFOwkvKiB0aGlzIG1lYW5zIHdlIHN0b3BwZWQgdGhlIGN1cnJlbnQgaW5zZXJ0ICovCiAgICAgfQorI2lmZGVmIEZFQVRfU1lOX0hMCisgICAgY2hlY2tfc3BlbGxfcmVkcmF3KCk7CisjZW5kaWYKIH0KIAorI2lmZGVmIEZFQVRfU1lOX0hMCisvKgorICogSWYgd2Ugc2tpcHBlZCBoaWdobGlnaHRpbmcgd29yZCBhdCBjdXJzb3IsIGRvIGl0IG5vdy4KKyAqIEl0IG1heSBiZSBza2lwcGVkIGFnYWluLCB0aHVzIHJlc2V0IHNwZWxsX3JlZHJhd19sbnVtIGZpcnN0LgorICovCisgICAgc3RhdGljIHZvaWQKK2NoZWNrX3NwZWxsX3JlZHJhdygpCit7CisgICAgaWYgKHNwZWxsX3JlZHJhd19sbnVtICE9IDApCisgICAgeworCWxpbmVucl9UCWxudW0gPSBzcGVsbF9yZWRyYXdfbG51bTsKKworCXNwZWxsX3JlZHJhd19sbnVtID0gMDsKKwlyZWRyYXdXaW5saW5lKGxudW0sIEZBTFNFKTsKKyAgICB9Cit9CisjZW5kaWYKKwogLyoKICAqIHN0b3BfYXJyb3coKSBpcyBjYWxsZWQgYmVmb3JlIGEgY2hhbmdlIGlzIG1hZGUgaW4gaW5zZXJ0IG1vZGUuCiAgKiBJZiBhbiBhcnJvdyBrZXkgaGFzIGJlZW4gdXNlZCwgc3RhcnQgYSBuZXcgaW5zZXJ0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL2dsb2JhbHMuaCBiL3NyYy9nbG9iYWxzLmgKaW5kZXggNDg3MzhkMC4uMTI1M2YzNSAxMDA2NDQKLS0tIGEvc3JjL2dsb2JhbHMuaAorKysgYi9zcmMvZ2xvYmFscy5oCkBAIC0xMjIwLDYgKzEyMjAsMTAgQEAKICNpZmRlZiBGRUFUX1NZTl9ITAogLyogRGlzcGxheSB0aWNrLCBpbmNyZW1lbnRlZCBmb3IgZWFjaCBjYWxsIHRvIHVwZGF0ZV9zY3JlZW4oKSAqLwogRVhURVJOIGRpc3B0aWNrX1QJZGlzcGxheV90aWNrIElOSVQoPSAwKTsKKworLyogTGluZSBpbiB3aGljaCBzcGVsbCBjaGVja2luZyB3YXNuJ3QgaGlnaGxpZ2h0ZWQgYmVjYXVzZSBpdCB0b3VjaGVkIHRoZQorICogY3Vyc29yIHBvc2l0aW9uIGluIEluc2VydCBtb2RlLiAqLworRVhURVJOIGxpbmVucl9UCQlzcGVsbF9yZWRyYXdfbG51bSBJTklUKD0gMCk7CiAjZW5kaWYKIAogI2lmZGVmIEFMVF9YX0lOUFVUCmRpZmYgLS1naXQgYS9zcmMvbWJ5dGUuYyBiL3NyYy9tYnl0ZS5jCmluZGV4IDg5YjUzYzIuLjY5NWI2NTEgMTAwNjQ0Ci0tLSBhL3NyYy9tYnl0ZS5jCisrKyBiL3NyYy9tYnl0ZS5jCkBAIC05OTAsNiArOTkwLDEwIEBACiAgICAgewogCWJ1ZlswXSA9ICh1bnNpZ25lZCljID4+IDg7CiAJYnVmWzFdID0gYzsKKwkvKiBOZXZlciB1c2UgYSBOVUwgYnl0ZSwgaXQgY2F1c2VzIGxvdHMgb2YgdHJvdWJsZS4gIEl0J3MgYW4gaW52YWxpZAorCSAqIGNoYXJhY3RlciBhbnl3YXkuICovCisJaWYgKGJ1ZlsxXSA9PSBOVUwpCisJICAgIGJ1ZlsxXSA9ICdcbic7CiAJcmV0dXJuIDI7CiAgICAgfQogICAgIGJ1ZlswXSA9IGM7CkBAIC0zMDg3LDcgKzMwOTEsMTQgQEAKIAkgICAgKnRvKysgPSAnPyc7CiAJICAgIGlmICgoKm1iX3B0cjJjZWxscykoKGNoYXJfdSAqKWZyb20pID4gMSkKIAkJKnRvKysgPSAnPyc7Ci0JICAgIGwgPSAoKm1iX3B0cjJsZW5fY2hlY2spKChjaGFyX3UgKilmcm9tKTsKKwkgICAgaWYgKGVuY191dGY4KQorCQlsID0gdXRmY19wdHIybGVuX2NoZWNrX2xlbigoY2hhcl91ICopZnJvbSwgZnJvbWxlbik7CisJICAgIGVsc2UKKwkgICAgeworCQlsID0gKCptYl9wdHIybGVuX2NoZWNrKSgoY2hhcl91ICopZnJvbSk7CisJCWlmIChsID4gZnJvbWxlbikKKwkJICAgIGwgPSBmcm9tbGVuOworCSAgICB9CiAJICAgIGZyb20gKz0gbDsKIAkgICAgZnJvbWxlbiAtPSBsOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9vcHRpb24uYyBiL3NyYy9vcHRpb24uYwppbmRleCAzMGQ3ZTg5Li5iNDU5M2E3IDEwMDY0NAotLS0gYS9zcmMvb3B0aW9uLmMKKysrIGIvc3JjL29wdGlvbi5jCkBAIC0xMTksOCArMTE5LDEwIEBACiAgICAgLCBQVl9TQ0JJTkQKICAgICAsIFBWX1NDUk9MTAogICAgICwgUFZfU0kKLSAgICAsIFBWX1NUTAogICAgICwgUFZfU04KKyAgICAsIFBWX1NQRUxMCisgICAgLCBQVl9TUEwKKyAgICAsIFBWX1NUTAogICAgICwgUFZfU1RTCiAgICAgLCBQVl9TVUEKICAgICAsIFBWX1NXCkBAIC0yMzIsNiArMjM0LDcgQEAKIHN0YXRpYyBpbnQJcF9zd2Y7CiAjaWZkZWYgRkVBVF9TWU5fSEwKIHN0YXRpYyBjaGFyX3UJKnBfc3luOworc3RhdGljIGNoYXJfdQkqcF9zcGw7CiAjZW5kaWYKIHN0YXRpYyBsb25nCXBfdHM7CiBzdGF0aWMgbG9uZwlwX3R3OwpAQCAtMTEwOCw3ICsxMTExLDcgQEAKIAkJCSAgICB7KGNoYXJfdSAqKUZBTFNFLCAoY2hhcl91ICopMEx9fSwKICAgICB7ImhpZ2hsaWdodCIsICAgImhsIiwgICBQX1NUUklOR3xQX1ZJX0RFRnxQX1JDTFJ8UF9DT01NQXxQX05PRFVQLAogCQkJICAgIChjaGFyX3UgKikmcF9obCwgUFZfTk9ORSwKLQkJCSAgICB7KGNoYXJfdSAqKSI4OlNwZWNpYWxLZXksQDpOb25UZXh0LGQ6RGlyZWN0b3J5LGU6RXJyb3JNc2csaTpJbmNTZWFyY2gsbDpTZWFyY2gsbTpNb3JlTXNnLE06TW9kZU1zZyxuOkxpbmVOcixyOlF1ZXN0aW9uLHM6U3RhdHVzTGluZSxTOlN0YXR1c0xpbmVOQyxjOlZlcnRTcGxpdCx0OlRpdGxlLHY6VmlzdWFsLFY6VmlzdWFsTk9TLHc6V2FybmluZ01zZyxXOldpbGRNZW51LGY6Rm9sZGVkLEY6Rm9sZENvbHVtbixBOkRpZmZBZGQsQzpEaWZmQ2hhbmdlLEQ6RGlmZkRlbGV0ZSxUOkRpZmZUZXh0LD46U2lnbkNvbHVtbiIsCisJCQkgICAgeyhjaGFyX3UgKikiODpTcGVjaWFsS2V5LEA6Tm9uVGV4dCxkOkRpcmVjdG9yeSxlOkVycm9yTXNnLGk6SW5jU2VhcmNoLGw6U2VhcmNoLG06TW9yZU1zZyxNOk1vZGVNc2csbjpMaW5lTnIscjpRdWVzdGlvbixzOlN0YXR1c0xpbmUsUzpTdGF0dXNMaW5lTkMsYzpWZXJ0U3BsaXQsdDpUaXRsZSx2OlZpc3VhbCxWOlZpc3VhbE5PUyx3Oldhcm5pbmdNc2csVzpXaWxkTWVudSxmOkZvbGRlZCxGOkZvbGRDb2x1bW4sQTpEaWZmQWRkLEM6RGlmZkNoYW5nZSxEOkRpZmZEZWxldGUsVDpEaWZmVGV4dCw+OlNpZ25Db2x1bW4sQjpTcGVsbEJhZCxSOlNwZWxsUmFyZSxMOlNwZWxsTG9jYWwiLAogCQkJCShjaGFyX3UgKikwTH19LAogICAgIHsiaGlzdG9yeSIsCSAgICAiaGkiLCAgIFBfTlVNfFBfVklNLAogCQkJICAgIChjaGFyX3UgKikmcF9oaSwgUFZfTk9ORSwKQEAgLTIwMTksNiArMjAyMiwyMiBAQAogICAgIHsic291cmNlYW55IiwgICBOVUxMLCAgIFBfQk9PTHxQX1ZJX0RFRiwKIAkJCSAgICAoY2hhcl91ICopTlVMTCwgUFZfTk9ORSwKIAkJCSAgICB7KGNoYXJfdSAqKUZBTFNFLCAoY2hhcl91ICopMEx9fSwKKyAgICB7InNwZWxsIiwJICAgIE5VTEwsICAgUF9CT09MfFBfVklfREVGfFBfUldJTiwKKyNpZmRlZiBGRUFUX1NZTl9ITAorCQkJICAgIChjaGFyX3UgKilWQVJfV0lOLCBQVl9TUEVMTCwKKyNlbHNlCisJCQkgICAgKGNoYXJfdSAqKU5VTEwsIFBWX05PTkUsCisjZW5kaWYKKwkJCSAgICB7KGNoYXJfdSAqKUZBTFNFLCAoY2hhcl91ICopMEx9fSwKKyAgICB7InNwZWxsbGFuZyIsICAgInNwbCIsICBQX1NUUklOR3xQX0FMTE9DRUR8UF9WSV9ERUZ8UF9DT01NQSwKKyNpZmRlZiBGRUFUX1NZTl9ITAorCQkJICAgIChjaGFyX3UgKikmcF9zcGwsIFBWX1NQTCwKKwkJCSAgICB7KGNoYXJfdSAqKSIiLCAoY2hhcl91ICopMEx9CisjZWxzZQorCQkJICAgIChjaGFyX3UgKilOVUxMLCBQVl9OT05FLAorCQkJICAgIHsoY2hhcl91ICopMEwsIChjaGFyX3UgKikwTH0KKyNlbmRpZgorCQkJICAgIH0sCiAgICAgeyJzcGxpdGJlbG93IiwgICJzYiIsICAgUF9CT09MfFBfVklfREVGLAogI2lmZGVmIEZFQVRfV0lORE9XUwogCQkJICAgIChjaGFyX3UgKikmcF9zYiwgUFZfTk9ORSwKQEAgLTI5NzgsNiArMjk5NywxMCBAQAogCSAgICAvKiAkSE9NRSBtYXkgaGF2ZSBjaGFyYWN0ZXJzIGluIGFjdGl2ZSBjb2RlIHBhZ2UuICovCiAJICAgIGluaXRfaG9tZWRpcigpOwogIyBlbmRpZgorI2lmZGVmIEZFQVRfU1lOX0hMCisJICAgIC8qIE5lZWQgdG8gcmVsb2FkIHNwZWxsIGRpY3Rpb25hcmllcyAqLworCSAgICBzcGVsbF9yZWxvYWQoKTsKKyNlbmRpZgogCX0KIAllbHNlCiAJewpAQCAtNDU4Myw2ICs0NjA2LDcgQEAKICNlbmRpZgogI2lmZGVmIEZFQVRfU1lOX0hMCiAgICAgY2hlY2tfc3RyaW5nX29wdGlvbigmYnVmLT5iX3Bfc3luKTsKKyAgICBjaGVja19zdHJpbmdfb3B0aW9uKCZidWYtPmJfcF9zcGwpOwogI2VuZGlmCiAjaWZkZWYgRkVBVF9TRUFSQ0hQQVRICiAgICAgY2hlY2tfc3RyaW5nX29wdGlvbigmYnVmLT5iX3Bfc3VhKTsKQEAgLTU2MzEsNiArNTY1NSwxNCBAQAogCWVycm1zZyA9IGNoZWNrX2NsaXBib2FyZF9vcHRpb24oKTsKICNlbmRpZgogCisjaWZkZWYgRkVBVF9TWU5fSEwKKyAgICAvKiBXaGVuICdzcGVsbGFuZycgaXMgc2V0LCBsb2FkIHRoZSB3b3JkbGlzdHMuICovCisgICAgZWxzZSBpZiAodmFycCA9PSAmKGN1cmJ1Zi0+Yl9wX3NwbCkpCisgICAgeworCWVycm1zZyA9IGRpZF9zZXRfc3BlbGxsYW5nKGN1cmJ1Zik7CisgICAgfQorI2VuZGlmCisKICNpZmRlZiBGRUFUX0FVVE9DTUQKICMgaWZkZWYgRkVBVF9TWU5fSEwKICAgICAvKiBXaGVuICdzeW50YXgnIGlzIHNldCwgbG9hZCB0aGUgc3ludGF4IG9mIHRoYXQgbmFtZSAqLwpAQCAtODExMSw2ICs4MTQzLDkgQEAKIAljYXNlIFBWX0FSQUI6CXJldHVybiAoY2hhcl91ICopJihjdXJ3aW4tPndfcF9hcmFiKTsKICNlbmRpZgogCWNhc2UgUFZfTElTVDoJcmV0dXJuIChjaGFyX3UgKikmKGN1cndpbi0+d19wX2xpc3QpOworI2lmZGVmIEZFQVRfU1lOX0hMCisJY2FzZSBQVl9TUEVMTDoJcmV0dXJuIChjaGFyX3UgKikmKGN1cndpbi0+d19wX3NwZWxsKTsKKyNlbmRpZgogI2lmZGVmIEZFQVRfRElGRgogCWNhc2UgUFZfRElGRjoJcmV0dXJuIChjaGFyX3UgKikmKGN1cndpbi0+d19wX2RpZmYpOwogI2VuZGlmCkBAIC04MjM4LDYgKzgyNzMsNyBAQAogCWNhc2UgUFZfU1dGOglyZXR1cm4gKGNoYXJfdSAqKSYoY3VyYnVmLT5iX3Bfc3dmKTsKICNpZmRlZiBGRUFUX1NZTl9ITAogCWNhc2UgUFZfU1lOOglyZXR1cm4gKGNoYXJfdSAqKSYoY3VyYnVmLT5iX3Bfc3luKTsKKwljYXNlIFBWX1NQTDoJcmV0dXJuIChjaGFyX3UgKikmKGN1cmJ1Zi0+Yl9wX3NwbCk7CiAjZW5kaWYKIAljYXNlIFBWX1NXOglyZXR1cm4gKGNoYXJfdSAqKSYoY3VyYnVmLT5iX3Bfc3cpOwogCWNhc2UgUFZfVFM6CXJldHVybiAoY2hhcl91ICopJihjdXJidWYtPmJfcF90cyk7CkBAIC04MzE4LDYgKzgzNTQsOSBAQAogI2lmZGVmIEZFQVRfU0NST0xMQklORAogICAgIHRvLT53b19zY2IgPSBmcm9tLT53b19zY2I7CiAjZW5kaWYKKyNpZmRlZiBGRUFUX1NZTl9ITAorICAgIHRvLT53b19zcGVsbCA9IGZyb20tPndvX3NwZWxsOworI2VuZGlmCiAjaWZkZWYgRkVBVF9ESUZGCiAgICAgdG8tPndvX2RpZmYgPSBmcm9tLT53b19kaWZmOwogI2VuZGlmCkBAIC04NTQ0LDYgKzg1ODMsOCBAQAogI2lmZGVmIEZFQVRfU1lOX0hMCiAJICAgIC8qIERvbid0IGNvcHkgJ3N5bnRheCcsIGl0IG11c3QgYmUgc2V0ICovCiAJICAgIGJ1Zi0+Yl9wX3N5biA9IGVtcHR5X29wdGlvbjsKKwkgICAgYnVmLT5iX3Bfc3BsID0gdmltX3N0cnNhdmUocF9zcGwpOworCSAgICBkaWRfc2V0X3NwZWxsbGFuZyhidWYpOwogI2VuZGlmCiAjaWYgZGVmaW5lZChGRUFUX0NJTkRFTlQpICYmIGRlZmluZWQoRkVBVF9FVkFMKQogCSAgICBidWYtPmJfcF9pbmRlID0gdmltX3N0cnNhdmUocF9pbmRlKTsKZGlmZiAtLWdpdCBhL3NyYy9wcm90by9zeW50YXgucHJvIGIvc3JjL3Byb3RvL3N5bnRheC5wcm8KaW5kZXggODJjZWJjZS4uMzRmYmNiOCAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL3N5bnRheC5wcm8KKysrIGIvc3JjL3Byb3RvL3N5bnRheC5wcm8KQEAgLTQsNyArNCw3IEBACiB2b2lkIHN5bl9zdGFja19hcHBseV9jaGFuZ2VzIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwogdm9pZCBzeW50YXhfZW5kX3BhcnNpbmcgX19BUkdTKChsaW5lbnJfVCBsbnVtKSk7CiBpbnQgc3ludGF4X2NoZWNrX2NoYW5nZWQgX19BUkdTKChsaW5lbnJfVCBsbnVtKSk7Ci1pbnQgZ2V0X3N5bnRheF9hdHRyIF9fQVJHUygoY29sbnJfVCBjb2wpKTsKK2ludCBnZXRfc3ludGF4X2F0dHIgX19BUkdTKChjb2xucl9UIGNvbCwgaW50ICpjYW5fc3BlbGwpKTsKIHZvaWQgc3ludGF4X2NsZWFyIF9fQVJHUygoYnVmX1QgKmJ1ZikpOwogdm9pZCBleF9zeW50YXggX19BUkdTKChleGFyZ19UICplYXApKTsKIGludCBzeW50YXhfcHJlc2VudCBfX0FSR1MoKGJ1Zl9UICpidWYpKTsKQEAgLTIxLDYgKzIxLDcgQEAKIHZvaWQgaGxfc2V0X2ZvbnRfbmFtZSBfX0FSR1MoKGNoYXJfdSAqZm9udF9uYW1lKSk7CiB2b2lkIGhsX3NldF9iZ19jb2xvcl9uYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CiB2b2lkIGhsX3NldF9mZ19jb2xvcl9uYW1lIF9fQVJHUygoY2hhcl91ICpuYW1lKSk7CitpbnQgaGxfY29tYmluZV9hdHRyIF9fQVJHUygoaW50IGNoYXJfYXR0ciwgaW50IHNwZWxsX2F0dHIpKTsKIGF0dHJlbnRyeV9UICpzeW5fZ3VpX2F0dHIyZW50cnkgX19BUkdTKChpbnQgYXR0cikpOwogYXR0cmVudHJ5X1QgKnN5bl90ZXJtX2F0dHIyZW50cnkgX19BUkdTKChpbnQgYXR0cikpOwogYXR0cmVudHJ5X1QgKnN5bl9jdGVybV9hdHRyMmVudHJ5IF9fQVJHUygoaW50IGF0dHIpKTsKZGlmZiAtLWdpdCBhL3NyYy9zY3JlZW4uYyBiL3NyYy9zY3JlZW4uYwppbmRleCA5MzMzMjZmLi5mZTMzNjg1IDEwMDY0NAotLS0gYS9zcmMvc2NyZWVuLmMKKysrIGIvc3JjL3NjcmVlbi5jCkBAIC0yNTAxLDYgKzI1MDEsMTEgQEAKICAgICBpbnQJCXN5bnRheF9hdHRyID0gMDsJLyogYXR0cmlidXRlcyBkZXNpcmVkIGJ5IHN5bnRheCAqLwogICAgIGludAkJaGFzX3N5bnRheCA9IEZBTFNFOwkvKiB0aGlzIGJ1ZmZlciBoYXMgc3ludGF4IGhpZ2hsLiAqLwogICAgIGludAkJc2F2ZV9kaWRfZW1zZzsKKyAgICBpbnQJCWhhc19zcGVsbCA9IEZBTFNFOwkvKiB0aGlzIGJ1ZmZlciBoYXMgc3BlbGwgY2hlY2tpbmcgKi8KKyAgICBpbnQJCXNwZWxsX2F0dHIgPSAwOwkJLyogYXR0cmlidXRlcyBkZXNpcmVkIGJ5IHNwZWxsaW5nICovCisgICAgaW50CQl3b3JkX2VuZCA9IDA7CQkvKiBsYXN0IGJ5dGUgd2l0aCBzYW1lIHNwZWxsX2F0dHIgKi8KKyAgICBpbnQJCWlzd29yZGM7CQkvKiBwcmV2LiBjaGFyIHdhcyBhIHdvcmQgY2hhcmFjdGVyICovCisgICAgaW50CQlwcmV2X2lzd29yZGMgPSBGQUxTRTsJLyogcHJldi4gY2hhciB3YXMgYSB3b3JkIGNoYXJhY3RlciAqLwogI2VuZGlmCiAgICAgaW50CQlleHRyYV9jaGVjazsJCS8qIGhhcyBzeW50YXggb3IgbGluZWJyZWFrICovCiAjaWZkZWYgRkVBVF9NQllURQpAQCAtMjU5Nyw2ICsyNjAyLDEzIEBACiAJICAgIGV4dHJhX2NoZWNrID0gVFJVRTsKIAl9CiAgICAgfQorCisgICAgaWYgKHdwLT53X3Bfc3BlbGwgJiYgKndwLT53X2J1ZmZlci0+Yl9wX3NwbCAhPSBOVUwpCisgICAgeworCS8qIFByZXBhcmUgZm9yIHNwZWxsIGNoZWNraW5nLiAqLworCWhhc19zcGVsbCA9IFRSVUU7CisJZXh0cmFfY2hlY2sgPSBUUlVFOworICAgIH0KICNlbmRpZgogCiAgICAgLyoKQEAgLTMyMzEsNiArMzI0MywxMSBAQAogCSAgICBlbHNlCiAJCWNoYXJfYXR0ciA9IHNlYXJjaF9hdHRyOwogCisjaWZkZWYgRkVBVF9TWU5fSEwKKwkgICAgaWYgKHNwZWxsX2F0dHIgIT0gMCkKKwkJY2hhcl9hdHRyID0gaGxfY29tYmluZV9hdHRyKGNoYXJfYXR0ciwgc3BlbGxfYXR0cik7CisjZW5kaWYKKwogI2lmZGVmIEZFQVRfRElGRgogCSAgICBpZiAoZGlmZl9obGYgIT0gKGVudW0gaGxmX3ZhbHVlKTAgJiYgbl9leHRyYSA9PSAwKQogCSAgICB7CkBAIC0zNTM5LDE2ICszNTU2LDIwIEBACiAJICAgIGlmIChleHRyYV9jaGVjaykKIAkgICAgewogI2lmZGVmIEZFQVRfU1lOX0hMCisJCWludAljYW5fc3BlbGwgPSBUUlVFOworCiAJCS8qIEdldCBzeW50YXggYXR0cmlidXRlLCB1bmxlc3Mgc3RpbGwgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lCiAJCSAqIChkb3VibGUtd2lkZSBjaGFyIHRoYXQgZG9lc24ndCBmaXQpLiAqLwotCQlpZiAoaGFzX3N5bnRheCAmJiAodiA9IChsb25nKShwdHIgLSBsaW5lKSkgPiAwKQorCQl2ID0gKGxvbmcpKHB0ciAtIGxpbmUpOworCQlpZiAoaGFzX3N5bnRheCAmJiB2ID4gMCkKIAkJewogCQkgICAgLyogR2V0IHRoZSBzeW50YXggYXR0cmlidXRlIGZvciB0aGUgY2hhcmFjdGVyLiAgSWYgdGhlcmUKIAkJICAgICAqIGlzIGFuIGVycm9yLCBkaXNhYmxlIHN5bnRheCBoaWdobGlnaHRpbmcuICovCiAJCSAgICBzYXZlX2RpZF9lbXNnID0gZGlkX2Vtc2c7CiAJCSAgICBkaWRfZW1zZyA9IEZBTFNFOwogCi0JCSAgICBzeW50YXhfYXR0ciA9IGdldF9zeW50YXhfYXR0cigoY29sbnJfVCl2IC0gMSk7CisJCSAgICBzeW50YXhfYXR0ciA9IGdldF9zeW50YXhfYXR0cigoY29sbnJfVCl2IC0gMSwKKwkJCQkJICAgICAgIGhhc19zcGVsbCA/ICZjYW5fc3BlbGwgOiBOVUxMKTsKIAogCQkgICAgaWYgKGRpZF9lbXNnKQogCQkJc3ludGF4X2NsZWFyKHdwLT53X2J1ZmZlcik7CkBAIC0zNTYzLDEwICszNTg0LDUxIEBACiAJCSAgICBpZiAoYXJlYV9hdHRyID09IDAgJiYgc2VhcmNoX2F0dHIgPT0gMCkKIAkJCWNoYXJfYXR0ciA9IHN5bnRheF9hdHRyOwogCQl9CisKKwkJLyogQ2hlY2sgc3BlbGxpbmcgYXQgdGhlIHN0YXJ0IG9mIGEgd29yZC4KKwkJICogT25seSBkbyB0aGlzIHdoZW4gdGhlcmUgaXMgbm8gc3ludGF4IGhpZ2hsaWdodGluZywgdGhlcmUgaXMKKwkJICogb24gQFNwZWxsIGNsdXN0ZXIgb3IgdGhlIGN1cnJlbnQgc3ludGF4IGl0ZW0gY29udGFpbnMgdGhlCisJCSAqIEBTcGVsbCBjbHVzdGVyLiAqLworCQlpZiAoaGFzX3NwZWxsICYmIHYgPj0gd29yZF9lbmQpCisJCXsKKwkJICAgIGlmICghaGFzX3N5bnRheCB8fCBjYW5fc3BlbGwpCisJCSAgICB7CisJCQljaGFyX3UJKnByZXZfcHRyID0gcHRyIC0gKAorIyBpZmRlZiBGRUFUX01CWVRFCisJCQkJCQkJaGFzX21ieXRlID8gbWJfbCA6CisjIGVuZGlmCisJCQkJCQkJCQkgICAgMSk7CisKKwkJCXNwZWxsX2F0dHIgPSAwOworCQkJaXN3b3JkYyA9IHZpbV9pc3dvcmRjX2J1ZihwcmV2X3B0ciwgd3AtPndfYnVmZmVyKTsKKwkJCWlmIChpc3dvcmRjICYmICFwcmV2X2lzd29yZGMpCisJCQl7CisJCQkgICAgd29yZF9lbmQgPSB2ICsgc3BlbGxfY2hlY2sod3AsIHByZXZfcHRyLAorCQkJCQkJCQkgJnNwZWxsX2F0dHIpOworCQkJICAgIC8qIEluIEluc2VydCBtb2RlIG9ubHkgaGlnaGxpZ2h0IGEgd29yZCB0aGF0CisJCQkgICAgICogZG9lc24ndCB0b3VjaCB0aGUgY3Vyc29yLiAqLworCQkJICAgIGlmIChzcGVsbF9hdHRyICE9IDAKKwkJCQkgICAgJiYgKFN0YXRlICYgSU5TRVJUKSAhPSAwCisJCQkJICAgICYmIHdwLT53X2N1cnNvci5sbnVtID09IGxudW0KKwkJCQkgICAgJiYgd3AtPndfY3Vyc29yLmNvbCA+PQorCQkJCQkJICAgIChjb2xucl9UKShwcmV2X3B0ciAtIGxpbmUpCisJCQkJICAgICYmIHdwLT53X2N1cnNvci5jb2wgPCAoY29sbnJfVCl3b3JkX2VuZCkKKwkJCSAgICB7CisJCQkJc3BlbGxfYXR0ciA9IDA7CisJCQkJc3BlbGxfcmVkcmF3X2xudW0gPSBsbnVtOworCQkJICAgIH0KKwkJCX0KKwkJCXByZXZfaXN3b3JkYyA9IGlzd29yZGM7CisJCSAgICB9CisJCSAgICBlbHNlCisJCQlzcGVsbF9hdHRyID0gMDsKKwkJfQorCQlpZiAoc3BlbGxfYXR0ciAhPSAwKQorCQkgICAgY2hhcl9hdHRyID0gaGxfY29tYmluZV9hdHRyKGNoYXJfYXR0ciwgc3BlbGxfYXR0cik7CiAjZW5kaWYKICNpZmRlZiBGRUFUX0xJTkVCUkVBSwogCQkvKgotCQkgKiBGb3VuZCBsYXN0IHNwYWNlIGJlZm9yZSB3b3JkOiBjaGVjayBmb3IgbGluZSBicmVhaworCQkgKiBGb3VuZCBsYXN0IHNwYWNlIGJlZm9yZSB3b3JkOiBjaGVjayBmb3IgbGluZSBicmVhay4KIAkJICovCiAJCWlmICh3cC0+d19wX2xiciAmJiB2aW1faXNicmVhayhjKSAmJiAhdmltX2lzYnJlYWsoKnB0cikKIAkJCQkJCSAgICAgICYmICF3cC0+d19wX2xpc3QpCmRpZmYgLS1naXQgYS9zcmMvc3RydWN0cy5oIGIvc3JjL3N0cnVjdHMuaAppbmRleCAwMzM3OWFkLi43OGYyOTI5IDEwMDY0NAotLS0gYS9zcmMvc3RydWN0cy5oCisrKyBiL3NyYy9zdHJ1Y3RzLmgKQEAgLTE4OSw2ICsxODksMTAgQEAKICNlbmRpZgogICAgIGxvbmcJd29fc2NyOwogI2RlZmluZSB3X3Bfc2NyIHdfb25lYnVmX29wdC53b19zY3IJLyogJ3Njcm9sbCcgKi8KKyNpZmRlZiBGRUFUX1NZTl9ITAorICAgIGludAkJd29fc3BlbGw7CisjZGVmaW5lIHdfcF9zcGVsbCB3X29uZWJ1Zl9vcHQud29fc3BlbGwJLyogJ3NwZWxsJyAqLworI2VuZGlmCiAjaWZkZWYgRkVBVF9TVExfT1BUCiAgICAgY2hhcl91CSp3b19zdGw7CiAjZGVmaW5lIHdfcF9zdGwgd19vbmVidWZfb3B0LndvX3N0bAkvKiAnc3RhdHVzbGluZScgKi8KQEAgLTEzMzcsNiArMTM0MSw3IEBACiAgICAgaW50CQliX3Bfc3dmOwkvKiAnc3dhcGZpbGUnICovCiAjaWZkZWYgRkVBVF9TWU5fSEwKICAgICBjaGFyX3UJKmJfcF9zeW47CS8qICdzeW50YXgnICovCisgICAgY2hhcl91CSpiX3Bfc3BsOwkvKiAnc3BlbGxsYW5nJyAqLwogI2VuZGlmCiAgICAgbG9uZwliX3BfdHM7CQkvKiAndGFic3RvcCcgKi8KICAgICBpbnQJCWJfcF90eDsJCS8qICd0ZXh0bW9kZScgKi8KQEAgLTE0MTgsNiArMTQyMyw3IEBACiAgICAgaW50CQliX3N5bl9pYzsJCS8qIGlnbm9yZSBjYXNlIGZvciA6c3luIGNtZHMgKi8KICAgICBnYXJyYXlfVAliX3N5bl9wYXR0ZXJuczsJCS8qIHRhYmxlIGZvciBzeW50YXggcGF0dGVybnMgKi8KICAgICBnYXJyYXlfVAliX3N5bl9jbHVzdGVyczsJCS8qIHRhYmxlIGZvciBzeW50YXggY2x1c3RlcnMgKi8KKyAgICBpbnQJCWJfc3BlbGxfY2x1c3Rlcl9pZDsJLyogQFNwZWxsIGNsdXN0ZXIgSUQgb3IgMCAqLwogICAgIGludAkJYl9zeW5fY29udGFpbmVkaW47CS8qIFRSVUUgd2hlbiB0aGVyZSBpcyBhbiBpdGVtIHdpdGggYQogCQkJCQkgICAiY29udGFpbmVkaW4iIGFyZ3VtZW50ICovCiAgICAgaW50CQliX3N5bl9zeW5jX2ZsYWdzOwkvKiBmbGFncyBhYm91dCBob3cgdG8gc3luYyAqLwpAQCAtMTQ1NCw2ICsxNDYwLDEwIEBACiAgICAgaW50CQliX3NzdF9mcmVlY291bnQ7CiAgICAgbGluZW5yX1QJYl9zc3RfY2hlY2tfbG51bTsKICAgICBzaG9ydF91CWJfc3N0X2xhc3R0aWNrOwkvKiBsYXN0IGRpc3BsYXkgdGljayAqLworCisgICAgLyogZm9yIHNwZWxsIGNoZWNraW5nICovCisgICAgZ2FycmF5X1QJYl9sYW5ncDsJLyogbGlzdCBvZiBwb2ludGVycyB0byBzbGFuZ19ULCBzZWUgc3BlbGwuYyAqLworCiAjZW5kaWYgLyogRkVBVF9TWU5fSEwgKi8KIAogI2lmZGVmIEZFQVRfU0lHTlMKZGlmZiAtLWdpdCBhL3NyYy9zeW50YXguYyBiL3NyYy9zeW50YXguYwppbmRleCAwMDNiNjI0Li42NjJiOGE1IDEwMDY0NAotLS0gYS9zcmMvc3ludGF4LmMKKysrIGIvc3JjL3N5bnRheC5jCkBAIC0yMDQsMTIgKzIwNCwxMiBAQAogc3RhdGljIGludCBjdXJyZW50X3RyYW5zX2lkID0gMDsgICAgLyogaWRlbSwgdHJhbnNwYXJhbmN5IHJlbW92ZWQgKi8KICNlbmRpZgogCi1zdHJ1Y3Qgc3luX2NsdXN0ZXIKK3R5cGVkZWYgc3RydWN0IHN5bl9jbHVzdGVyX1MKIHsKICAgICBjaGFyX3UJICAgICpzY2xfbmFtZTsJICAgIC8qIHN5bnRheCBjbHVzdGVyIG5hbWUgKi8KICAgICBjaGFyX3UJICAgICpzY2xfbmFtZV91OyAgICAvKiB1cHBlcmNhc2Ugb2Ygc2NsX25hbWUgKi8KICAgICBzaG9ydAkgICAgKnNjbF9saXN0OwkgICAgLyogSURzIGluIHRoaXMgc3ludGF4IGNsdXN0ZXIgKi8KLX07Cit9IHN5bl9jbHVzdGVyX1Q7CiAKIC8qCiAgKiBNZXRob2RzIG9mIGNvbWJpbmluZyB0d28gY2x1c3RlcnMKQEAgLTIxOCw3ICsyMTgsNyBAQAogI2RlZmluZSBDTFVTVEVSX0FERAkgICAgMgkvKiBhZGQgc2Vjb25kIGxpc3QgdG8gZmlyc3QgKi8KICNkZWZpbmUgQ0xVU1RFUl9TVUJUUkFDVCAgICAzCS8qIHN1YnRyYWN0IHNlY29uZCBsaXN0IGZyb20gZmlyc3QgKi8KIAotI2RlZmluZSBTWU5fQ0xTVFIoYnVmKQkoKHN0cnVjdCBzeW5fY2x1c3RlciAqKSgoYnVmKS0+Yl9zeW5fY2x1c3RlcnMuZ2FfZGF0YSkpCisjZGVmaW5lIFNZTl9DTFNUUihidWYpCSgoc3luX2NsdXN0ZXJfVCAqKSgoYnVmKS0+Yl9zeW5fY2x1c3RlcnMuZ2FfZGF0YSkpCiAKIC8qCiAgKiBTeW50YXggZ3JvdXAgSURzIGhhdmUgZGlmZmVyZW50IHR5cGVzOgpAQCAtMzcyLDcgKzM3Miw3IEBACiBzdGF0aWMgaW50IHN5bl9zdGFja19lcXVhbCBfX0FSR1MoKHN5bnN0YXRlX1QgKnNwKSk7CiBzdGF0aWMgdm9pZCB2YWxpZGF0ZV9jdXJyZW50X3N0YXRlIF9fQVJHUygodm9pZCkpOwogc3RhdGljIGludCBzeW5fZmluaXNoX2xpbmUgX19BUkdTKChpbnQgc3luY2luZykpOwotc3RhdGljIGludCBzeW5fY3VycmVudF9hdHRyIF9fQVJHUygoaW50IHN5bmNpbmcsIGludCBkaXNwbGF5aW5nKSk7CitzdGF0aWMgaW50IHN5bl9jdXJyZW50X2F0dHIgX19BUkdTKChpbnQgc3luY2luZywgaW50IGRpc3BsYXlpbmcsIGludCAqY2FuX3NwZWxsKSk7CiBzdGF0aWMgaW50IGRpZF9tYXRjaF9hbHJlYWR5IF9fQVJHUygoaW50IGlkeCwgZ2FycmF5X1QgKmdhcCkpOwogc3RhdGljIHN0YXRlaXRlbV9UICpwdXNoX25leHRfbWF0Y2ggX19BUkdTKChzdGF0ZWl0ZW1fVCAqY3VyX3NpKSk7CiBzdGF0aWMgdm9pZCBjaGVja19zdGF0ZV9lbmRzIF9fQVJHUygodm9pZCkpOwpAQCAtMTY2MCw3ICsxNjYwLDcgQEAKICAgICB7CiAJd2hpbGUgKCFjdXJyZW50X2ZpbmlzaGVkKQogCXsKLQkgICAgKHZvaWQpc3luX2N1cnJlbnRfYXR0cihzeW5jaW5nLCBGQUxTRSk7CisJICAgICh2b2lkKXN5bl9jdXJyZW50X2F0dHIoc3luY2luZywgRkFMU0UsIE5VTEwpOwogCSAgICAvKgogCSAgICAgKiBXaGVuIHN5bmNpbmcsIGFuZCBmb3VuZCBzb21lIGl0ZW0sIG5lZWQgdG8gY2hlY2sgdGhlIGl0ZW0uCiAJICAgICAqLwpAQCAtMTY5MywxMCArMTY5MywxMyBAQAogICogImNvbCIgaXMgbm9ybWFsbHkgMCBmb3IgdGhlIGZpcnN0IHVzZSBpbiBhIGxpbmUsIGFuZCBpbmNyZW1lbnRzIGJ5IG9uZSBlYWNoCiAgKiB0aW1lLiAgSXQncyBhbGxvd2VkIHRvIHNraXAgY2hhcmFjdGVycyBhbmQgdG8gc3RvcCBiZWZvcmUgdGhlIGVuZCBvZiB0aGUKICAqIGxpbmUuICBCdXQgb25seSBhICJjb2wiIGFmdGVyIGEgcHJldmlvdXNseSB1c2VkIGNvbHVtbiBpcyBhbGxvd2VkLgorICogV2hlbiAiY2FuX3NwZWxsIiBpcyBub3QgTlVMTCBzZXQgaXQgdG8gVFJVRSB3aGVuIHNwZWxsLWNoZWNraW5nIHNob3VsZCBiZQorICogZG9uZS4KICAqLwogICAgIGludAotZ2V0X3N5bnRheF9hdHRyKGNvbCkKK2dldF9zeW50YXhfYXR0cihjb2wsIGNhbl9zcGVsbCkKICAgICBjb2xucl9UCWNvbDsKKyAgICBpbnQJCSpjYW5fc3BlbGw7CiB7CiAgICAgaW50CSAgICBhdHRyID0gMDsKIApAQCAtMTcxNSw3ICsxNzE4LDcgQEAKICAgICAgKi8KICAgICB3aGlsZSAoY3VycmVudF9jb2wgPD0gY29sKQogICAgIHsKLQlhdHRyID0gc3luX2N1cnJlbnRfYXR0cihGQUxTRSwgVFJVRSk7CisJYXR0ciA9IHN5bl9jdXJyZW50X2F0dHIoRkFMU0UsIFRSVUUsIGNhbl9zcGVsbCk7CiAJKytjdXJyZW50X2NvbDsKICAgICB9CiAKQEAgLTE3MjcsOSArMTczMCwxMCBAQAogICogR2V0IHN5bnRheCBhdHRyaWJ1dGVzIGZvciBjdXJyZW50X2xudW0sIGN1cnJlbnRfY29sLgogICovCiAgICAgc3RhdGljIGludAotc3luX2N1cnJlbnRfYXR0cihzeW5jaW5nLCBkaXNwbGF5aW5nKQorc3luX2N1cnJlbnRfYXR0cihzeW5jaW5nLCBkaXNwbGF5aW5nLCBjYW5fc3BlbGwpCiAgICAgaW50CQlzeW5jaW5nOwkJLyogV2hlbiAxOiBjYWxsZWQgZm9yIHN5bmNpbmcgKi8KICAgICBpbnQJCWRpc3BsYXlpbmc7CQkvKiByZXN1bHQgd2lsbCBiZSBkaXNwbGF5ZWQgKi8KKyAgICBpbnQJCSpjYW5fc3BlbGw7CQkvKiByZXR1cm46IGRvIHNwZWxsIGNoZWNraW5nICovCiB7CiAgICAgaW50CQlzeW5faWQ7CiAgICAgbHBvc19UCWVuZHBvczsJCS8qIHdhczogY2hhcl91ICplbmRwOyAqLwpAQCAtMTc0MCw3ICsxNzQ0LDcgQEAKICAgICBpbnQJCWVuZF9pZHg7CS8qIGdyb3VwIElEIGZvciBlbmQgcGF0dGVybiAqLwogICAgIGludAkJaWR4OwogICAgIHN5bnBhdF9UCSpzcHA7Ci0gICAgc3RhdGVpdGVtX1QJKmN1cl9zaSwgKnNpcDsKKyAgICBzdGF0ZWl0ZW1fVAkqY3VyX3NpLCAqc2lwID0gTlVMTDsKICAgICBpbnQJCXN0YXJ0Y29sOwogICAgIGludAkJZW5kY29sOwogICAgIGxvbmcJZmxhZ3M7CkBAIC0yMTY2LDYgKzIxNzAsOSBAQAogI2VuZGlmCiAgICAgaWYgKGN1cl9zaSAhPSBOVUxMKQogICAgIHsKKyNpZm5kZWYgRkVBVF9FVkFMCisJaW50CWN1cnJlbnRfdHJhbnNfaWQgPSAwOworI2VuZGlmCiAJZm9yIChpZHggPSBjdXJyZW50X3N0YXRlLmdhX2xlbiAtIDE7IGlkeCA+PSAwOyAtLWlkeCkKIAl7CiAJICAgIHNpcCA9ICZDVVJfU1RBVEUoaWR4KTsKQEAgLTIxODAsMTIgKzIxODcsMzYgQEAKIAkJY3VycmVudF9hdHRyID0gc2lwLT5zaV9hdHRyOwogI2lmZGVmIEZFQVRfRVZBTAogCQljdXJyZW50X2lkID0gc2lwLT5zaV9pZDsKLQkJY3VycmVudF90cmFuc19pZCA9IHNpcC0+c2lfdHJhbnNfaWQ7CiAjZW5kaWYKKwkJY3VycmVudF90cmFuc19pZCA9IHNpcC0+c2lfdHJhbnNfaWQ7CiAJCWJyZWFrOwogCSAgICB9CiAJfQogCisJaWYgKGNhbl9zcGVsbCAhPSBOVUxMKQorCXsKKwkgICAgc3RydWN0IHNwX3N5biAgIHNwczsKKworCSAgICAvKgorCSAgICAgKiBzZXQgImNhbl9zcGVsbCIgdG8gVFJVRSBpZiBzcGVsbCBjaGVja2luZyBpcyBzdXBwb3NlZCB0byBiZQorCSAgICAgKiBkb25lIGluIHRoZSBjdXJyZW50IGl0ZW0uCisJICAgICAqLworCisJICAgIC8qIEFsd2F5cyBkbyBzcGVsbGluZyBpZiB0aGVyZSBpcyBubyBAU3BlbGwgY2x1c3Rlci4gKi8KKwkgICAgaWYgKHN5bl9idWYtPmJfc3BlbGxfY2x1c3Rlcl9pZCA9PSAwKQorCQkqY2FuX3NwZWxsID0gVFJVRTsKKwkgICAgZWxzZSBpZiAoY3VycmVudF90cmFuc19pZCA9PSAwKQorCQkqY2FuX3NwZWxsID0gRkFMU0U7CisJICAgIGVsc2UKKwkgICAgeworCQlzcHMuaW5jX3RhZyA9IDA7CisJCXNwcy5pZCA9IHN5bl9idWYtPmJfc3BlbGxfY2x1c3Rlcl9pZDsKKwkJc3BzLmNvbnRfaW5fbGlzdCA9IE5VTEw7CisJCSpjYW5fc3BlbGwgPSBpbl9pZF9saXN0KHNpcCwgc2lwLT5zaV9jb250X2xpc3QsICZzcHMsIDApOworCSAgICB9CisJfQorCisKIAkvKgogCSAqIENoZWNrIGZvciBlbmQgb2YgY3VycmVudCBzdGF0ZSAoYW5kIHRoZSBzdGF0ZXMgYmVmb3JlIGl0KSBhdCB0aGUKIAkgKiBuZXh0IGNvbHVtbi4gIERvbid0IGRvIHRoaXMgZm9yIHN5bmNpbmcsIGJlY2F1c2Ugd2Ugd291bGQgbWlzcyBhCkBAIC0yMjA1LDYgKzIyMzYsOSBAQAogCSAgICB9CiAJfQogICAgIH0KKyAgICBlbHNlIGlmIChjYW5fc3BlbGwgIT0gTlVMTCkKKwkvKiBPbmx5IGRvIHNwZWxsaW5nIHdoZW4gdGhlcmUgaXMgbm8gQFNwZWxsIGNsdXN0ZXIuICovCisJKmNhbl9zcGVsbCA9IChzeW5fYnVmLT5iX3NwZWxsX2NsdXN0ZXJfaWQgPT0gMCk7CiAKICAgICAvKiBuZXh0Z3JvdXAgZW5kcyBhdCBlbmQgb2YgbGluZSwgdW5sZXNzICJza2lwbmwiIG9yICJza2lwZW10cHkiIHByZXNlbnQgKi8KICAgICBpZiAoY3VycmVudF9uZXh0X2xpc3QgIT0gTlVMTApAQCAtNTAyOSwxNiArNTA2MywxNiBAQAogICovCiAgICAgc3RhdGljIGludAogc3luX2FkZF9jbHVzdGVyKG5hbWUpCi0gICAgY2hhcl91CQkqbmFtZTsKKyAgICBjaGFyX3UJKm5hbWU7CiB7Ci0gICAgaW50IGxlbjsKKyAgICBpbnQJCWxlbjsKIAogICAgIC8qCiAgICAgICogRmlyc3QgY2FsbCBmb3IgdGhpcyBncm93YXJyYXk6IGluaXQgZ3Jvd2luZyBhcnJheS4KICAgICAgKi8KICAgICBpZiAoY3VyYnVmLT5iX3N5bl9jbHVzdGVycy5nYV9kYXRhID09IE5VTEwpCiAgICAgewotCWN1cmJ1Zi0+Yl9zeW5fY2x1c3RlcnMuZ2FfaXRlbXNpemUgPSBzaXplb2Yoc3RydWN0IHN5bl9jbHVzdGVyKTsKKwljdXJidWYtPmJfc3luX2NsdXN0ZXJzLmdhX2l0ZW1zaXplID0gc2l6ZW9mKHN5bl9jbHVzdGVyX1QpOwogCWN1cmJ1Zi0+Yl9zeW5fY2x1c3RlcnMuZ2FfZ3Jvd3NpemUgPSAxMDsKICAgICB9CiAKQEAgLTUwNTIsMTIgKzUwODYsMTUgQEAKICAgICB9CiAgICAgbGVuID0gY3VyYnVmLT5iX3N5bl9jbHVzdGVycy5nYV9sZW47CiAKLSAgICB2aW1fbWVtc2V0KCYoU1lOX0NMU1RSKGN1cmJ1ZilbbGVuXSksIDAsIHNpemVvZihzdHJ1Y3Qgc3luX2NsdXN0ZXIpKTsKKyAgICB2aW1fbWVtc2V0KCYoU1lOX0NMU1RSKGN1cmJ1ZilbbGVuXSksIDAsIHNpemVvZihzeW5fY2x1c3Rlcl9UKSk7CiAgICAgU1lOX0NMU1RSKGN1cmJ1ZilbbGVuXS5zY2xfbmFtZSA9IG5hbWU7CiAgICAgU1lOX0NMU1RSKGN1cmJ1ZilbbGVuXS5zY2xfbmFtZV91ID0gdmltX3N0cnNhdmVfdXAobmFtZSk7CiAgICAgU1lOX0NMU1RSKGN1cmJ1ZilbbGVuXS5zY2xfbGlzdCA9IE5VTEw7CiAgICAgKytjdXJidWYtPmJfc3luX2NsdXN0ZXJzLmdhX2xlbjsKIAorICAgIGlmIChTVFJJQ01QKG5hbWUsICJTcGVsbCIpID09IDApCisJY3VyYnVmLT5iX3NwZWxsX2NsdXN0ZXJfaWQgPSBsZW4gKyBTWU5JRF9DTFVTVEVSOworCiAgICAgcmV0dXJuIGxlbiArIFNZTklEX0NMVVNURVI7CiB9CiAKQEAgLTUwODksNyArNTEyNiw3IEBACiAgICAgaWYgKHJlc3QgIT0gTlVMTCkKICAgICB7CiAJc2NsX2lkID0gc3luX2NoZWNrX2NsdXN0ZXIoYXJnLCAoaW50KShncm91cF9uYW1lX2VuZCAtIGFyZykpCi0JCSAgICAtIFNZTklEX0NMVVNURVI7CisJCQkJCQkJICAgICAgLSBTWU5JRF9DTFVTVEVSOwogCiAJZm9yICg7OykKIAl7CkBAIC01ODk2LDcgKzU5MzMsNyBAQAogCSAgICB8fCBjb2wgPCAobG9uZyljdXJyZW50X2NvbCkKIAlzeW50YXhfc3RhcnQoY3Vyd2luLCBsbnVtKTsKIAotICAgICh2b2lkKWdldF9zeW50YXhfYXR0cigoY29sbnJfVCljb2wpOworICAgICh2b2lkKWdldF9zeW50YXhfYXR0cigoY29sbnJfVCljb2wsIE5VTEwpOwogCiAgICAgcmV0dXJuICh0cmFucyA/IGN1cnJlbnRfdHJhbnNfaWQgOiBjdXJyZW50X2lkKTsKIH0KQEAgLTU5NjgsNiArNjAwNSw5IEBACiAJIk5vcm1hbCBndWk9Tk9ORSIsCiAJIlF1ZXN0aW9uIHRlcm09c3RhbmRvdXQgY3Rlcm1mZz1EYXJrR3JlZW4gZ3VpPWJvbGQgZ3VpZmc9U2VhR3JlZW4iLAogCSJTZWFyY2ggdGVybT1yZXZlcnNlIGN0ZXJtYmc9WWVsbG93IGN0ZXJtZmc9Tk9ORSBndWliZz1ZZWxsb3cgZ3VpZmc9Tk9ORSIsCisJIlNwZWxsQmFkIHRlcm09cmV2ZXJzZSBjdGVybWJnPUxpZ2h0UmVkIGd1aXNwPVJlZCBndWk9dW5kZXJjdXJsIiwKKwkiU3BlbGxSYXJlIHRlcm09cmV2ZXJzZSBjdGVybWJnPUxpZ2h0TWFnZW50YSBndWlzcD1NYWdlbnRhIGd1aT11bmRlcmN1cmwiLAorCSJTcGVsbExvY2FsIHRlcm09dW5kZXJsaW5lIGN0ZXJtYmc9Q3lhbiBndWlzcD1EYXJrQ3lhbiBndWk9dW5kZXJjdXJsIiwKIAkiU3BlY2lhbEtleSB0ZXJtPWJvbGQgY3Rlcm1mZz1EYXJrQmx1ZSBndWlmZz1CbHVlIiwKIAkiVGl0bGUgdGVybT1ib2xkIGN0ZXJtZmc9RGFya01hZ2VudGEgZ3VpPWJvbGQgZ3VpZmc9TWFnZW50YSIsCiAJIldhcm5pbmdNc2cgdGVybT1zdGFuZG91dCBjdGVybWZnPURhcmtSZWQgZ3VpZmc9UmVkIiwKQEAgLTU5OTAsNiArNjAzMCw5IEBACiAJIlF1ZXN0aW9uIHRlcm09c3RhbmRvdXQgY3Rlcm1mZz1MaWdodEdyZWVuIGd1aT1ib2xkIGd1aWZnPUdyZWVuIiwKIAkiU2VhcmNoIHRlcm09cmV2ZXJzZSBjdGVybWJnPVllbGxvdyBjdGVybWZnPUJsYWNrIGd1aWJnPVllbGxvdyBndWlmZz1CbGFjayIsCiAJIlNwZWNpYWxLZXkgdGVybT1ib2xkIGN0ZXJtZmc9TGlnaHRCbHVlIGd1aWZnPUN5YW4iLAorCSJTcGVsbEJhZCB0ZXJtPXJldmVyc2UgY3Rlcm1iZz1SZWQgZ3Vpc3A9UmVkIGd1aT11bmRlcmN1cmwiLAorCSJTcGVsbFJhcmUgdGVybT1yZXZlcnNlIGN0ZXJtYmc9TWFnZW50YSBndWlzcD1NYWdlbnRhIGd1aT11bmRlcmN1cmwiLAorCSJTcGVsbExvY2FsIHRlcm09dW5kZXJsaW5lIGN0ZXJtYmc9Q3lhbiBndWlzcD1DeWFuIGd1aT11bmRlcmN1cmwiLAogCSJUaXRsZSB0ZXJtPWJvbGQgY3Rlcm1mZz1MaWdodE1hZ2VudGEgZ3VpPWJvbGQgZ3VpZmc9TWFnZW50YSIsCiAJIldhcm5pbmdNc2cgdGVybT1zdGFuZG91dCBjdGVybWZnPUxpZ2h0UmVkIGd1aWZnPVJlZCIsCiAJIldpbGRNZW51IHRlcm09c3RhbmRvdXQgY3Rlcm1iZz1ZZWxsb3cgY3Rlcm1mZz1CbGFjayBndWliZz1ZZWxsb3cgZ3VpZmc9QmxhY2siLApAQCAtNzUxOSw2ICs3NTYyLDEyOCBAQAogICAgIHJldHVybiAodGFibGUtPmdhX2xlbiAtIDEgKyBBVFRSX09GRik7CiB9CiAKKyNpZiBkZWZpbmVkKEZFQVRfU1lOX0hMKSB8fCBkZWZpbmVkKFBST1RPKQorLyoKKyAqIENvbWJpbmUgdGhlIHNwZWxsaW5nIGF0dHJpYnV0ZXMgd2l0aCBvdGhlciBhdHRyaWJ1dGVzLiAgInNwZWxsX2F0dHIiCisgKiBvdmVycnVsZXMgImNoYXJfYXR0ciIuCisgKiBUaGlzIGNyZWF0ZXMgYSBuZXcgZ3JvdXAgd2hlbiByZXF1aXJlZC4KKyAqIFNpbmNlIHdlIGV4cGVjdCB0aGVyZSB0byBiZSBmZXcgc3BlbGxpbmcgbWlzdGFrZXMgd2UgZG9uJ3QgY2FjaGUgdGhlCisgKiByZXN1bHQuCisgKiBSZXR1cm4gdGhlIHJlc3VsdGluZyBhdHRyaWJ1dGVzLgorICovCisgICAgaW50CitobF9jb21iaW5lX2F0dHIoY2hhcl9hdHRyLCBzcGVsbF9hdHRyKQorICAgIGludAkgICAgY2hhcl9hdHRyOworICAgIGludAkgICAgc3BlbGxfYXR0cjsKK3sKKyAgICBhdHRyZW50cnlfVCAqY2hhcl9hZXAgPSBOVUxMOworICAgIGF0dHJlbnRyeV9UICpzcGVsbF9hZXA7CisgICAgYXR0cmVudHJ5X1QgbmV3X2VuOworCisgICAgaWYgKGNoYXJfYXR0ciA9PSAwKQorCXJldHVybiBzcGVsbF9hdHRyOworICAgIGlmIChjaGFyX2F0dHIgPD0gSExfQUxMICYmIHNwZWxsX2F0dHIgPD0gSExfQUxMKQorCXJldHVybiBjaGFyX2F0dHIgfCBzcGVsbF9hdHRyOworI2lmZGVmIEZFQVRfR1VJCisgICAgaWYgKGd1aS5pbl91c2UpCisgICAgeworCWlmIChjaGFyX2F0dHIgPiBITF9BTEwpCisJICAgIGNoYXJfYWVwID0gc3luX2d1aV9hdHRyMmVudHJ5KGNoYXJfYXR0cik7CisJaWYgKGNoYXJfYWVwICE9IE5VTEwpCisJICAgIG5ld19lbiA9ICpjaGFyX2FlcDsKKwllbHNlCisJeworCSAgICB2aW1fbWVtc2V0KCZuZXdfZW4sIDAsIHNpemVvZihuZXdfZW4pKTsKKwkgICAgaWYgKGNoYXJfYXR0ciA8PSBITF9BTEwpCisJCW5ld19lbi5hZV9hdHRyID0gY2hhcl9hdHRyOworCX0KKworCWlmIChzcGVsbF9hdHRyIDw9IEhMX0FMTCkKKwkgICAgbmV3X2VuLmFlX2F0dHIgfD0gc3BlbGxfYXR0cjsKKwllbHNlCisJeworCSAgICBzcGVsbF9hZXAgPSBzeW5fZ3VpX2F0dHIyZW50cnkoc3BlbGxfYXR0cik7CisJICAgIGlmIChzcGVsbF9hZXAgIT0gTlVMTCkKKwkgICAgeworCQluZXdfZW4uYWVfYXR0ciB8PSBzcGVsbF9hZXAtPmFlX2F0dHI7CisJCWlmIChzcGVsbF9hZXAtPmFlX3UuZ3VpLmZnX2NvbG9yICE9IElOVkFMQ09MT1IpCisJCSAgICBuZXdfZW4uYWVfdS5ndWkuZmdfY29sb3IgPSBzcGVsbF9hZXAtPmFlX3UuZ3VpLmZnX2NvbG9yOworCQlpZiAoc3BlbGxfYWVwLT5hZV91Lmd1aS5iZ19jb2xvciAhPSBJTlZBTENPTE9SKQorCQkgICAgbmV3X2VuLmFlX3UuZ3VpLmJnX2NvbG9yID0gc3BlbGxfYWVwLT5hZV91Lmd1aS5iZ19jb2xvcjsKKwkJaWYgKHNwZWxsX2FlcC0+YWVfdS5ndWkuc3BfY29sb3IgIT0gSU5WQUxDT0xPUikKKwkJICAgIG5ld19lbi5hZV91Lmd1aS5zcF9jb2xvciA9IHNwZWxsX2FlcC0+YWVfdS5ndWkuc3BfY29sb3I7CisJCWlmIChzcGVsbF9hZXAtPmFlX3UuZ3VpLmZvbnQgIT0gTk9GT05UKQorCQkgICAgbmV3X2VuLmFlX3UuZ3VpLmZvbnQgPSBzcGVsbF9hZXAtPmFlX3UuZ3VpLmZvbnQ7CisjIGlmZGVmIEZFQVRfWEZPTlRTRVQKKwkJaWYgKHNwZWxsX2FlcC0+YWVfdS5ndWkuZm9udHNldCAhPSBOT0ZPTlRTRVQpCisJCSAgICBuZXdfZW4uYWVfdS5ndWkuZm9udHNldCA9IHNwZWxsX2FlcC0+YWVfdS5ndWkuZm9udHNldDsKKyMgZW5kaWYKKwkgICAgfQorCX0KKwlyZXR1cm4gZ2V0X2F0dHJfZW50cnkoJmd1aV9hdHRyX3RhYmxlLCAmbmV3X2VuKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmICh0X2NvbG9ycyA+IDEpCisgICAgeworCWlmIChjaGFyX2F0dHIgPiBITF9BTEwpCisJICAgIGNoYXJfYWVwID0gc3luX2N0ZXJtX2F0dHIyZW50cnkoY2hhcl9hdHRyKTsKKwlpZiAoY2hhcl9hZXAgIT0gTlVMTCkKKwkgICAgbmV3X2VuID0gKmNoYXJfYWVwOworCWVsc2UKKwl7CisJICAgIHZpbV9tZW1zZXQoJm5ld19lbiwgMCwgc2l6ZW9mKG5ld19lbikpOworCSAgICBpZiAoY2hhcl9hdHRyIDw9IEhMX0FMTCkKKwkJbmV3X2VuLmFlX2F0dHIgPSBjaGFyX2F0dHI7CisJfQorCisJaWYgKHNwZWxsX2F0dHIgPD0gSExfQUxMKQorCSAgICBuZXdfZW4uYWVfYXR0ciB8PSBzcGVsbF9hdHRyOworCWVsc2UKKwl7CisJICAgIHNwZWxsX2FlcCA9IHN5bl9jdGVybV9hdHRyMmVudHJ5KHNwZWxsX2F0dHIpOworCSAgICBpZiAoc3BlbGxfYWVwICE9IE5VTEwpCisJICAgIHsKKwkJbmV3X2VuLmFlX2F0dHIgfD0gc3BlbGxfYWVwLT5hZV9hdHRyOworCQlpZiAoc3BlbGxfYWVwLT5hZV91LmN0ZXJtLmZnX2NvbG9yID4gMCkKKwkJICAgIG5ld19lbi5hZV91LmN0ZXJtLmZnX2NvbG9yID0gc3BlbGxfYWVwLT5hZV91LmN0ZXJtLmZnX2NvbG9yOworCQlpZiAoc3BlbGxfYWVwLT5hZV91LmN0ZXJtLmJnX2NvbG9yID4gMCkKKwkJICAgIG5ld19lbi5hZV91LmN0ZXJtLmJnX2NvbG9yID0gc3BlbGxfYWVwLT5hZV91LmN0ZXJtLmJnX2NvbG9yOworCSAgICB9CisJfQorCXJldHVybiBnZXRfYXR0cl9lbnRyeSgmY3Rlcm1fYXR0cl90YWJsZSwgJm5ld19lbik7CisgICAgfQorCisgICAgaWYgKGNoYXJfYXR0ciA+IEhMX0FMTCkKKwljaGFyX2FlcCA9IHN5bl90ZXJtX2F0dHIyZW50cnkoY2hhcl9hdHRyKTsKKyAgICBpZiAoY2hhcl9hZXAgIT0gTlVMTCkKKwluZXdfZW4gPSAqY2hhcl9hZXA7CisgICAgZWxzZQorICAgIHsKKwl2aW1fbWVtc2V0KCZuZXdfZW4sIDAsIHNpemVvZihuZXdfZW4pKTsKKwlpZiAoY2hhcl9hdHRyIDw9IEhMX0FMTCkKKwkgICAgbmV3X2VuLmFlX2F0dHIgPSBjaGFyX2F0dHI7CisgICAgfQorCisgICAgaWYgKHNwZWxsX2F0dHIgPD0gSExfQUxMKQorCW5ld19lbi5hZV9hdHRyIHw9IHNwZWxsX2F0dHI7CisgICAgZWxzZQorICAgIHsKKwlzcGVsbF9hZXAgPSBzeW5fY3Rlcm1fYXR0cjJlbnRyeShzcGVsbF9hdHRyKTsKKwlpZiAoc3BlbGxfYWVwICE9IE5VTEwpCisJeworCSAgICBuZXdfZW4uYWVfYXR0ciB8PSBzcGVsbF9hZXAtPmFlX2F0dHI7CisJICAgIGlmIChzcGVsbF9hZXAtPmFlX3UudGVybS5zdGFydCAhPSBOVUxMKQorCSAgICB7CisJCW5ld19lbi5hZV91LnRlcm0uc3RhcnQgPSBzcGVsbF9hZXAtPmFlX3UudGVybS5zdGFydDsKKwkJbmV3X2VuLmFlX3UudGVybS5zdG9wID0gc3BlbGxfYWVwLT5hZV91LnRlcm0uc3RvcDsKKwkgICAgfQorCX0KKyAgICB9CisgICAgcmV0dXJuIGdldF9hdHRyX2VudHJ5KCZ0ZXJtX2F0dHJfdGFibGUsICZuZXdfZW4pOworfQorI2VuZGlmCisKICNpZmRlZiBGRUFUX0dVSQogCiAgICAgYXR0cmVudHJ5X1QgKgpkaWZmIC0tZ2l0IGEvc3JjL3ZlcnNpb24uaCBiL3NyYy92ZXJzaW9uLmgKaW5kZXggMmVhZjNhMy4uNWQwNGU1NyAxMDA2NDQKLS0tIGEvc3JjL3ZlcnNpb24uaAorKysgYi9zcmMvdmVyc2lvbi5oCkBAIC0zNiw1ICszNiw1IEBACiAjZGVmaW5lIFZJTV9WRVJTSU9OX05PRE9UCSJ2aW03MGFhIgogI2RlZmluZSBWSU1fVkVSU0lPTl9TSE9SVAkiNy4wYWEiCiAjZGVmaW5lIFZJTV9WRVJTSU9OX01FRElVTQkiNy4wYWEgQUxQSEEiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA1IE1hciAxOCkiCi0jZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDUgTWFyIDE4LCBjb21waWxlZCAiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA1IE1hciAyMCkiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkdfREFURQkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDUgTWFyIDIwLCBjb21waWxlZCAiCg==