From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Tomas Mraz To: git-commits@fedoraproject.org Subject: [rpms/openssl] rebase_40beta: FIPS compliance fixes Date: Tue, 09 Jun 2026 12:44:30 GMT Message-ID: <178100907000.1.14304627587864936687.rpms-openssl-e18dcc63f4fa@fedoraproject.org> List-ID: X-Git-Repo: rpms/openssl X-Git-Branch: rebase_40beta X-Git-Rev: e18dcc63f4fae5a0df4e69a31e6c1838cbdff565 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbnNzbApCcmFu Y2ggOiByZWJhc2VfNDBiZXRhCkNvbW1pdCA6IGUxOGRjYzYzZjRmYWU1YTBkZjRlNjlhMzFlNmMx ODM4Y2JkZmY1NjUKQXV0aG9yIDogVG9tYXMgTXJheiA8dG1yYXpAZmVkb3JhcHJvamVjdC5vcmc+ CkRhdGUgICA6IDIwMTktMDUtMDdUMTA6MzA6MjYrMDI6MDAKU3RhdHMgIDogKzk4OC8tMzgyIGlu IDQgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL29w ZW5zc2wvYy9lMThkY2M2M2Y0ZmFlNWEwZGY0ZTY5YTMxZTZjMTgzOGNiZGZmNTY1P2JyYW5jaD1y ZWJhc2VfNDBiZXRhCgpMb2c6CkZJUFMgY29tcGxpYW5jZSBmaXhlcwoKLS0tCmRpZmYgLS1naXQg YS9vcGVuc3NsLTEuMS4xLWV2cC1rZGYucGF0Y2ggYi9vcGVuc3NsLTEuMS4xLWV2cC1rZGYucGF0 Y2gKaW5kZXggNDgxNjlmYS4uY2IxMGViYSAxMDA2NDQKLS0tIGEvb3BlbnNzbC0xLjEuMS1ldnAt a2RmLnBhdGNoCisrKyBiL29wZW5zc2wtMS4xLjEtZXZwLWtkZi5wYXRjaApAQCAtOTY5LDcgKzk2 OSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcGtleV9rZGYuYy5ldnAt a2RmIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvCiArCiArY29uc3QgRVZQX1BLRVlfTUVUSE9E IHRsczFfcHJmX3BrZXlfbWV0aCA9IHsKICsgICAgRVZQX1BLRVlfVExTMV9QUkYsCi0rICAgIDAs CisrICAgIEVWUF9QS0VZX0ZMQUdfRklQUywKICsgICAgcGtleV9rZGZfaW5pdCwKICsgICAgMCwK ICsgICAgcGtleV9rZGZfY2xlYW51cCwKQEAgLTk5OSw3ICs5OTksNyBAQCBkaWZmIC11cCBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZXZwL3BrZXlfa2RmLmMuZXZwLWtkZiBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vZXZwLwogKwogK2NvbnN0IEVWUF9QS0VZX01FVEhPRCBoa2RmX3BrZXlfbWV0aCA9IHsK ICsgICAgRVZQX1BLRVlfSEtERiwKLSsgICAgMCwKKysgICAgRVZQX1BLRVlfRkxBR19GSVBTLAog KyAgICBwa2V5X2tkZl9pbml0LAogKyAgICAwLAogKyAgICBwa2V5X2tkZl9jbGVhbnVwLAoKZGlm ZiAtLWdpdCBhL29wZW5zc2wtMS4xLjEtZmlwcy1jcm5nLXRlc3QucGF0Y2ggYi9vcGVuc3NsLTEu MS4xLWZpcHMtY3JuZy10ZXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjkxODQxZjEKLS0tIC9kZXYvbnVsbAorKysgYi9vcGVuc3NsLTEuMS4xLWZpcHMtY3JuZy10 ZXN0LnBhdGNoCkBAIC0wLDAgKzEsNDA3IEBACitkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vaW5jbHVkZS9pbnRlcm5hbC9yYW5kX2ludC5oLmNybmctdGVzdCBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vaW5jbHVkZS9pbnRlcm5hbC9yYW5kX2ludC5oCistLS0gb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2luY2x1ZGUvaW50ZXJuYWwvcmFuZF9pbnQuaC5jcm5nLXRlc3QJMjAxOS0wNS0wNyAwODo1 NjozMy4yNDIxNzkxMzYgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vaW5jbHVkZS9p bnRlcm5hbC9yYW5kX2ludC5oCTIwMTktMDUtMDcgMDk6NTQ6MTQuOTIwMjA0ODc1ICswMjAwCitA QCAtNDksNiArNDksMTQgQEAgc2l6ZV90IHJhbmRfZHJiZ19nZXRfYWRkaXRpb25hbF9kYXRhKFJB TgorIAorIHZvaWQgcmFuZF9kcmJnX2NsZWFudXBfYWRkaXRpb25hbF9kYXRhKFJBTkRfUE9PTCAq cG9vbCwgdW5zaWduZWQgY2hhciAqb3V0KTsKKyAKKysvKiBDUk5HIHRlc3QgZW50cm9weSBmaWx0 ZXIgY2FsbGJhY2tzLiAqLworK3NpemVfdCByYW5kX2Nybmd0X2dldF9lbnRyb3B5KFJBTkRfRFJC RyAqZHJiZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoq cG91dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZW50cm9weSwgc2l6ZV90 IG1pbl9sZW4sIHNpemVfdCBtYXhfbGVuLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBwcmVkaWN0aW9uX3Jlc2lzdGFuY2UpOworK3ZvaWQgcmFuZF9jcm5ndF9jbGVhbnVwX2Vu dHJvcHkoUkFORF9EUkJHICpkcmJnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgY2hhciAqb3V0LCBzaXplX3Qgb3V0bGVuKTsKKysKKyAvKgorICAqIFJBTkRfUE9P TCBmdW5jdGlvbnMKKyAgKi8KK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5kL2J1 aWxkLmluZm8uY3JuZy10ZXN0IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5kL2J1aWxkLmluZm8K Ky0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9idWlsZC5pbmZvLmNybmctdGVzdAkyMDE5 LTA1LTA3IDA5OjU0OjE0LjkyMTIwNDg1NyArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9yYW5kL2J1aWxkLmluZm8JMjAxOS0wNS0wNyAwOTo1NToyMi43MzAwMTQ3MDUgKzAyMDAKK0BA IC0xLDQgKzEsNCBAQAorIExJQlM9Li4vLi4vbGliY3J5cHRvCisgU09VUkNFWy4uLy4uL2xpYmNy eXB0b109XAorLSAgICAgICAgcmFuZGZpbGUuYyByYW5kX2xpYi5jIHJhbmRfZXJyLmMgcmFuZF9l Z2QuYyBcCisrICAgICAgICByYW5kZmlsZS5jIHJhbmRfbGliLmMgcmFuZF9lcnIuYyByYW5kX2Ny bmdfdGVzdC5jIHJhbmRfZWdkLmMgXAorICAgICAgICAgcmFuZF93aW4uYyByYW5kX3VuaXguYyBy YW5kX3Ztcy5jIGRyYmdfbGliLmMgZHJiZ19jdHIuYworZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL3JhbmQvZHJiZ19saWIuYy5jcm5nLXRlc3Qgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3Jh bmQvZHJiZ19saWIuYworLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yYW5kL2RyYmdfbGliLmMu Y3JuZy10ZXN0CTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCisrKysgb3BlbnNz bC0xLjEuMWIvY3J5cHRvL3JhbmQvZHJiZ19saWIuYwkyMDE5LTA1LTA3IDEwOjA0OjUxLjc1MzE1 NzIyNCArMDIwMAorQEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIENSWVBUT19USFJFQURfTE9DQUwg cHJpdmF0ZV9kcmJnOworIAorIAorIC8qIE5JU1QgU1AgODAwLTkwQSBEUkJHIHJlY29tbWVuZHMg dGhlIHVzZSBvZiBhIHBlcnNvbmFsaXphdGlvbiBzdHJpbmcuICovCistc3RhdGljIGNvbnN0IGNo YXIgb3NzbF9wZXJzX3N0cmluZ1tdID0gIk9wZW5TU0wgTklTVCBTUCA4MDAtOTBBIERSQkciOwor K3N0YXRpYyBjb25zdCBjaGFyIG9zc2xfcGVyc19zdHJpbmdbXSA9IERSQkdfREVGQVVMVF9QRVJT X1NUUklORzsKKyAKKyBzdGF0aWMgQ1JZUFRPX09OQ0UgcmFuZF9kcmJnX2luaXQgPSBDUllQVE9f T05DRV9TVEFUSUNfSU5JVDsKKyAKK0BAIC0yMDEsOCArMjAxLDEzIEBAIHN0YXRpYyBSQU5EX0RS QkcgKnJhbmRfZHJiZ19uZXcoaW50IHNlY3UKKyAgICAgZHJiZy0+cGFyZW50ID0gcGFyZW50Owor IAorICAgICBpZiAocGFyZW50ID09IE5VTEwpIHsKKysjaWZkZWYgT1BFTlNTTF9GSVBTCisrICAg ICAgICBkcmJnLT5nZXRfZW50cm9weSA9IHJhbmRfY3JuZ3RfZ2V0X2VudHJvcHk7CisrICAgICAg ICBkcmJnLT5jbGVhbnVwX2VudHJvcHkgPSByYW5kX2Nybmd0X2NsZWFudXBfZW50cm9weTsKKysj ZWxzZQorICAgICAgICAgZHJiZy0+Z2V0X2VudHJvcHkgPSByYW5kX2RyYmdfZ2V0X2VudHJvcHk7 CisgICAgICAgICBkcmJnLT5jbGVhbnVwX2VudHJvcHkgPSByYW5kX2RyYmdfY2xlYW51cF9lbnRy b3B5OworKyNlbmRpZgorICNpZm5kZWYgUkFORF9EUkJHX0dFVF9SQU5ET01fTk9OQ0UKKyAgICAg ICAgIGRyYmctPmdldF9ub25jZSA9IHJhbmRfZHJiZ19nZXRfbm9uY2U7CisgICAgICAgICBkcmJn LT5jbGVhbnVwX25vbmNlID0gcmFuZF9kcmJnX2NsZWFudXBfbm9uY2U7CitkaWZmIC11cCBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5jLmNybmctdGVzdCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2NybmdfdGVzdC5jCistLS0gb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL3JhbmQvcmFuZF9jcm5nX3Rlc3QuYy5jcm5nLXRlc3QJMjAxOS0wNS0wNyAwOTo1NDox NC45MjUyMDQ3ODcgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2Ny bmdfdGVzdC5jCTIwMTktMDUtMDcgMDk6NTQ6MTQuOTMyMjA0NjY0ICswMjAwCitAQCAtMCwwICsx LDExOCBAQAorKy8qCisrICogQ29weXJpZ2h0IDIwMTkgVGhlIE9wZW5TU0wgUHJvamVjdCBBdXRo b3JzLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorKyAqIENvcHlyaWdodCAoYykgMjAxOSwgT3JhY2xl IGFuZC9vciBpdHMgYWZmaWxpYXRlcy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrICoKKysgKiBM aWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgMi4wICh0aGUgIkxpY2Vuc2UiKS4gIFlv dSBtYXkgbm90IHVzZQorKyAqIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRo ZSBMaWNlbnNlLiAgWW91IGNhbiBvYnRhaW4gYSBjb3B5CisrICogaW4gdGhlIGZpbGUgTElDRU5T RSBpbiB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbiBvciBhdAorKyAqIGh0dHBzOi8vd3d3Lm9wZW5z c2wub3JnL3NvdXJjZS9saWNlbnNlLmh0bWwKKysgKi8KKysKKysvKgorKyAqIEltcGxlbWVudGF0 aW9uIG9mIHRoZSBGSVBTIDE0MC0yIHNlY3Rpb24gNC45LjIgQ29uZGl0aW9uYWwgVGVzdHMuCisr ICovCisrCisrI2luY2x1ZGUgPHN0cmluZy5oPgorKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgor KyNpbmNsdWRlICJpbnRlcm5hbC9yYW5kX2ludC5oIgorKyNpbmNsdWRlICJpbnRlcm5hbC90aHJl YWRfb25jZS5oIgorKyNpbmNsdWRlICJyYW5kX2xjbC5oIgorKworK3N0YXRpYyBSQU5EX1BPT0wg KmNybmd0X3Bvb2w7Cisrc3RhdGljIHVuc2lnbmVkIGNoYXIgY3JuZ3RfcHJldltFVlBfTUFYX01E X1NJWkVdOworKworK2ludCAoKmNybmd0X2dldF9lbnRyb3B5KSh1bnNpZ25lZCBjaGFyICosIHVu c2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgaW50ICopCisrICAgID0gJnJhbmRfY3JuZ3RfZ2V0X2Vu dHJvcHlfY2I7CisrCisraW50IHJhbmRfY3JuZ3RfZ2V0X2VudHJvcHlfY2IodW5zaWduZWQgY2hh ciAqYnVmLCB1bnNpZ25lZCBjaGFyICptZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgKm1kX3NpemUpCisreworKyAgICBpbnQgcjsKKysgICAgc2l6ZV90IG47 CisrICAgIHVuc2lnbmVkIGNoYXIgKnA7CisrCisrICAgIG4gPSByYW5kX3Bvb2xfYWNxdWlyZV9l bnRyb3B5KGNybmd0X3Bvb2wpOworKyAgICBpZiAobiA+PSBDUk5HVF9CVUZTSVopIHsKKysgICAg ICAgIHAgPSByYW5kX3Bvb2xfZGV0YWNoKGNybmd0X3Bvb2wpOworKyAgICAgICAgciA9IEVWUF9E aWdlc3QocCwgQ1JOR1RfQlVGU0laLCBtZCwgbWRfc2l6ZSwgRVZQX3NoYTI1NigpLCBOVUxMKTsK KysgICAgICAgIGlmIChyICE9IDApCisrICAgICAgICAgICAgbWVtY3B5KGJ1ZiwgcCwgQ1JOR1Rf QlVGU0laKTsKKysgICAgICAgIHJhbmRfcG9vbF9yZWF0dGFjaChjcm5ndF9wb29sLCBwKTsKKysg ICAgICAgIHJldHVybiByOworKyAgICB9CisrICAgIHJldHVybiAwOworK30KKysKKyt2b2lkIHJh bmRfY3JuZ3RfY2xlYW51cCh2b2lkKQorK3sKKysgICAgcmFuZF9wb29sX2ZyZWUoY3JuZ3RfcG9v bCk7CisrICAgIGNybmd0X3Bvb2wgPSBOVUxMOworK30KKysKKytpbnQgcmFuZF9jcm5ndF9pbml0 KHZvaWQpCisreworKyAgICB1bnNpZ25lZCBjaGFyIGJ1ZltDUk5HVF9CVUZTSVpdOworKworKyAg ICBpZiAoKGNybmd0X3Bvb2wgPSByYW5kX3Bvb2xfbmV3KDAsIENSTkdUX0JVRlNJWiwgQ1JOR1Rf QlVGU0laKSkgPT0gTlVMTCkKKysgICAgICAgIHJldHVybiAwOworKyAgICBpZiAoY3JuZ3RfZ2V0 X2VudHJvcHkoYnVmLCBjcm5ndF9wcmV2LCBOVUxMKSkgeworKyAgICAgICAgT1BFTlNTTF9jbGVh bnNlKGJ1Ziwgc2l6ZW9mKGJ1ZikpOworKyAgICAgICAgcmV0dXJuIDE7CisrICAgIH0KKysgICAg cmFuZF9jcm5ndF9jbGVhbnVwKCk7CisrICAgIHJldHVybiAwOworK30KKysKKytzdGF0aWMgQ1JZ UFRPX09OQ0UgcmFuZF9jcm5ndF9pbml0X2ZsYWcgPSBDUllQVE9fT05DRV9TVEFUSUNfSU5JVDsK KytERUZJTkVfUlVOX09OQ0VfU1RBVElDKGRvX3JhbmRfY3JuZ3RfaW5pdCkKKyt7CisrICAgIHJl dHVybiBPUEVOU1NMX2luaXRfY3J5cHRvKDAsIE5VTEwpCisrICAgICAgICAmJiByYW5kX2Nybmd0 X2luaXQoKQorKyAgICAgICAgJiYgT1BFTlNTTF9hdGV4aXQoJnJhbmRfY3JuZ3RfY2xlYW51cCk7 CisrfQorKworK2ludCByYW5kX2Nybmd0X3NpbmdsZV9pbml0KHZvaWQpCisreworKyAgICByZXR1 cm4gUlVOX09OQ0UoJnJhbmRfY3JuZ3RfaW5pdF9mbGFnLCBkb19yYW5kX2Nybmd0X2luaXQpOwor K30KKysKKytzaXplX3QgcmFuZF9jcm5ndF9nZXRfZW50cm9weShSQU5EX0RSQkcgKmRyYmcsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKnBvdXQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVudHJvcHksIHNpemVfdCBtaW5fbGVuLCBz aXplX3QgbWF4X2xlbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJlZGlj dGlvbl9yZXNpc3RhbmNlKQorK3sKKysgICAgdW5zaWduZWQgY2hhciBidWZbQ1JOR1RfQlVGU0la XSwgbWRbRVZQX01BWF9NRF9TSVpFXTsKKysgICAgdW5zaWduZWQgaW50IHN6OworKyAgICBSQU5E X1BPT0wgKnBvb2w7CisrICAgIHNpemVfdCBxLCByID0gMCwgcywgdCA9IDA7CisrICAgIGludCBh dHRlbXB0cyA9IDM7CisrCisrICAgIGlmICghUlVOX09OQ0UoJnJhbmRfY3JuZ3RfaW5pdF9mbGFn LCBkb19yYW5kX2Nybmd0X2luaXQpKQorKyAgICAgICAgcmV0dXJuIDA7CisrCisrICAgIGlmICgo cG9vbCA9IHJhbmRfcG9vbF9uZXcoZW50cm9weSwgbWluX2xlbiwgbWF4X2xlbikpID09IE5VTEwp CisrICAgICAgICByZXR1cm4gMDsKKysKKysgICAgd2hpbGUgKChxID0gcmFuZF9wb29sX2J5dGVz X25lZWRlZChwb29sLCAxKSkgPiAwICYmIGF0dGVtcHRzLS0gPiAwKSB7CisrICAgICAgICBzID0g cSA+IHNpemVvZihidWYpID8gc2l6ZW9mKGJ1ZikgOiBxOworKyAgICAgICAgaWYgKCFjcm5ndF9n ZXRfZW50cm9weShidWYsIG1kLCAmc3opCisrICAgICAgICAgICAgfHwgbWVtY21wKGNybmd0X3By ZXYsIG1kLCBzeikgPT0gMAorKyAgICAgICAgICAgIHx8ICFyYW5kX3Bvb2xfYWRkKHBvb2wsIGJ1 ZiwgcywgcyAqIDgpKQorKyAgICAgICAgICAgIGdvdG8gZXJyOworKyAgICAgICAgbWVtY3B5KGNy bmd0X3ByZXYsIG1kLCBzeik7CisrICAgICAgICB0ICs9IHM7CisrICAgICAgICBhdHRlbXB0cysr OworKyAgICB9CisrICAgIHIgPSB0OworKyAgICAqcG91dCA9IHJhbmRfcG9vbF9kZXRhY2gocG9v bCk7CisrZXJyOgorKyAgICBPUEVOU1NMX2NsZWFuc2UoYnVmLCBzaXplb2YoYnVmKSk7CisrICAg IHJhbmRfcG9vbF9mcmVlKHBvb2wpOworKyAgICByZXR1cm4gcjsKKyt9CisrCisrdm9pZCByYW5k X2Nybmd0X2NsZWFudXBfZW50cm9weShSQU5EX0RSQkcgKmRyYmcsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpvdXQsIHNpemVfdCBvdXRsZW4pCisrewor KyAgICBPUEVOU1NMX3NlY3VyZV9jbGVhcl9mcmVlKG91dCwgb3V0bGVuKTsKKyt9CitkaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oLmNybmctdGVzdCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oCistLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRv L3JhbmQvcmFuZF9sY2wuaC5jcm5nLXRlc3QJMjAxOS0wNS0wNyAwODo1NjozMy4zMzAxNzc2NzQg KzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcmFuZC9yYW5kX2xjbC5oCTIwMTktMDUt MDcgMDk6NTQ6MTQuOTMzMjA0NjQ3ICswMjAwCitAQCAtMzMsNyArMzMsMTUgQEAKKyAjIGRlZmlu ZSBNQVNURVJfUkVTRUVEX1RJTUVfSU5URVJWQUwgICAgICAgICAgICAgKDYwKjYwKSAgIC8qIDEg aG91ciAqLworICMgZGVmaW5lIFNMQVZFX1JFU0VFRF9USU1FX0lOVEVSVkFMICAgICAgICAgICAg ICAoNyo2MCkgICAgLyogNyBtaW51dGVzICovCisgCistCisrLyoKKysgKiBUaGUgbnVtYmVyIG9m IGJ5dGVzIHRoYXQgY29uc3RpdHV0ZXMgYW4gYXRvbWljIGx1bXAgb2YgZW50cm9weSB3aXRoIHJl c3BlY3QKKysgKiB0byB0aGUgRklQUyAxNDAtMiBzZWN0aW9uIDQuOS4yIENvbmRpdGlvbmFsIFRl c3RzLiAgVGhlIHNpemUgaXMgc29tZXdoYXQKKysgKiBhcmJpdHJhcnksIHRoZSBzbWFsbGVyIHRo ZSB2YWx1ZSwgdGhlIGxlc3MgZW50cm9weSBpcyBjb25zdW1lZCBvbiBmaXJzdAorKyAqIHJlYWQg YnV0IHRoZSBoaWdoZXIgdGhlIHByb2JhYmlsaXR5IG9mIHRoZSB0ZXN0IGZhaWxpbmcgYnkgYWNj aWRlbnQuCisrICoKKysgKiBUaGUgdmFsdWUgaXMgaW4gYnl0ZXMuCisrICovCisrI2RlZmluZSBD Uk5HVF9CVUZTSVogICAgMTYKKyAKKyAvKgorICAqIE1heGltdW0gaW5wdXQgc2l6ZSBmb3IgdGhl IERSQkcgKGVudHJvcHksIG5vbmNlLCBwZXJzb25hbGl6YXRpb24gc3RyaW5nKQorQEAgLTQ0LDcg KzUyLDggQEAKKyAgKi8KKyAjIGRlZmluZSBEUkJHX01BWF9MRU5HVEggICAgICAgICAgICAgICAg ICAgICAgICAgSU5UMzJfTUFYCisgCistCisrLyogVGhlIGRlZmF1bHQgbm9uY2UgKi8KKysjIGRl ZmluZSBEUkJHX0RFRkFVTFRfUEVSU19TVFJJTkcgICAgICAgICAgICAgICAgIk9wZW5TU0wgTklT VCBTUCA4MDAtOTBBIERSQkciCisgCisgLyoKKyAgKiBNYXhpbXVtIGFsbG9jYXRpb24gc2l6ZSBm b3IgUkFORE9NX1BPT0wgYnVmZmVycworQEAgLTI5MCw0ICsyOTksMjIgQEAgaW50IHJhbmRfZHJi Z19lbmFibGVfbG9ja2luZyhSQU5EX0RSQkcgKgorIC8qIGluaXRpYWxpemVzIHRoZSBBRVMtQ1RS IERSQkcgaW1wbGVtZW50YXRpb24gKi8KKyBpbnQgZHJiZ19jdHJfaW5pdChSQU5EX0RSQkcgKmRy YmcpOworIAorKy8qCisrICogRW50cm9weSBjYWxsIGJhY2sgZm9yIHRoZSBGSVBTIDE0MC0yIHNl Y3Rpb24gNC45LjIgQ29uZGl0aW9uYWwgVGVzdHMuCisrICogVGhlc2UgbmVlZCB0byBiZSBleHBv c2VkIGZvciB0aGUgdW5pdCB0ZXN0cy4KKysgKi8KKytpbnQgcmFuZF9jcm5ndF9nZXRfZW50cm9w eV9jYih1bnNpZ25lZCBjaGFyICpidWYsIHVuc2lnbmVkIGNoYXIgKm1kLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbWRfc2l6ZSk7CisrZXh0ZXJuIGludCAo KmNybmd0X2dldF9lbnRyb3B5KSh1bnNpZ25lZCBjaGFyICpidWYsIHVuc2lnbmVkIGNoYXIgKm1k LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICptZF9zaXpl KTsKKytpbnQgcmFuZF9jcm5ndF9pbml0KHZvaWQpOworK3ZvaWQgcmFuZF9jcm5ndF9jbGVhbnVw KHZvaWQpOworKworKy8qCisrICogRXhwb3NlIHRoZSBydW4gb25jZSBpbml0aWFsaXNhdGlvbiBm dW5jdGlvbiBmb3IgdGhlIHVuaXQgdGVzdHMgYmVjYXVzZS4KKysgKiB0aGV5IG5lZWQgdG8gcmVz dGFydCBmcm9tIHNjcmF0Y2ggdG8gdmFsaWRhdGUgdGhlIGZpcnN0IGJsb2NrIGlzIHNraXBwZWQK KysgKiBwcm9wZXJseS4KKysgKi8KKytpbnQgcmFuZF9jcm5ndF9zaW5nbGVfaW5pdCh2b2lkKTsK KysKKyAjZW5kaWYKK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZHJiZ3Rlc3QuYy5jcm5n LXRlc3Qgb3BlbnNzbC0xLjEuMWIvdGVzdC9kcmJndGVzdC5jCistLS0gb3BlbnNzbC0xLjEuMWIv dGVzdC9kcmJndGVzdC5jLmNybmctdGVzdAkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCAr MDEwMAorKysrIG9wZW5zc2wtMS4xLjFiL3Rlc3QvZHJiZ3Rlc3QuYwkyMDE5LTA1LTA3IDEwOjA2 OjI0LjcwNjU1MTU2MSArMDIwMAorQEAgLTE0Myw2ICsxNDMsMzEgQEAgc3RhdGljIHNpemVfdCBr YXRfbm9uY2UoUkFORF9EUkJHICpkcmJnLAorICAgICByZXR1cm4gdC0+bm9uY2VsZW47CisgfQor IAorKyAvKgorKyAqIERpc2FibGUgQ1JORyB0ZXN0aW5nIGlmIGl0IGlzIGVuYWJsZWQuCisrICog SWYgdGhlIERSQkcgaXMgcmVhZHkgb3IgaW4gYW4gZXJyb3Igc3RhdGUsIHRoaXMgbWVhbnMgYW4g aW5zdGFudGlhdGUgY3ljbGUKKysgKiBmb3Igd2hpY2ggdGhlIGRlZmF1bHQgcGVyc29uYWxpc2F0 aW9uIHN0cmluZyBpcyB1c2VkLgorKyAqLworK3N0YXRpYyBpbnQgZGlzYWJsZV9jcm5ndChSQU5E X0RSQkcgKmRyYmcpCisreworKyAgICBzdGF0aWMgY29uc3QgY2hhciBwZXJzW10gPSBEUkJHX0RF RkFVTFRfUEVSU19TVFJJTkc7CisrICAgIGNvbnN0IGludCBpbnN0YW50aWF0ZSA9IGRyYmctPnN0 YXRlICE9IERSQkdfVU5JTklUSUFMSVNFRDsKKysKKysgICAgaWYgKGRyYmctPmdldF9lbnRyb3B5 ICE9IHJhbmRfY3JuZ3RfZ2V0X2VudHJvcHkpCisrICAgICAgICByZXR1cm4gMTsKKysKKysgICAg IGlmICgoaW5zdGFudGlhdGUgJiYgIVJBTkRfRFJCR191bmluc3RhbnRpYXRlKGRyYmcpKQorKyAg ICAgICAgfHwgIVRFU1RfdHJ1ZShSQU5EX0RSQkdfc2V0X2NhbGxiYWNrcyhkcmJnLCAmcmFuZF9k cmJnX2dldF9lbnRyb3B5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmcmFuZF9kcmJnX2NsZWFudXBfZW50cm9weSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJhbmRfZHJiZ19nZXRfbm9uY2UsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyYW5kX2RyYmdfY2xlYW51 cF9ub25jZSkpCisrICAgICAgICB8fCAoaW5zdGFudGlhdGUKKysgICAgICAgICAgICAmJiAhUkFO RF9EUkJHX2luc3RhbnRpYXRlKGRyYmcsIChjb25zdCB1bnNpZ25lZCBjaGFyICopcGVycywKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihwZXJzKSAtIDEpKSkK KysgICAgICAgIHJldHVybiAwOworKyAgICByZXR1cm4gMTsKKyt9CisrCisgc3RhdGljIGludCB1 bmluc3RhbnRpYXRlKFJBTkRfRFJCRyAqZHJiZykKKyB7CisgICAgIGludCByZXQgPSBkcmJnID09 IE5VTEwgPyAxIDogUkFORF9EUkJHX3VuaW5zdGFudGlhdGUoZHJiZyk7CitAQCAtMTY4LDcgKzE5 Myw4IEBAIHN0YXRpYyBpbnQgc2luZ2xlX2thdChEUkJHX1NFTEZURVNUX0RBVEEKKyAgICAgaWYg KCFURVNUX3B0cihkcmJnID0gUkFORF9EUkJHX25ldyh0ZC0+bmlkLCB0ZC0+ZmxhZ3MsIE5VTEwp KSkKKyAgICAgICAgIHJldHVybiAwOworICAgICBpZiAoIVRFU1RfdHJ1ZShSQU5EX0RSQkdfc2V0 X2NhbGxiYWNrcyhkcmJnLCBrYXRfZW50cm9weSwgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAga2F0X25vbmNlLCBOVUxMKSkpIHsKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2F0X25vbmNlLCBOVUxMKSkKKysgICAg ICAgIHx8ICFURVNUX3RydWUoZGlzYWJsZV9jcm5ndChkcmJnKSkpIHsKKyAgICAgICAgIGZhaWx1 cmVzKys7CisgICAgICAgICBnb3RvIGVycjsKKyAgICAgfQorQEAgLTI4Niw3ICszMTIsOCBAQCBz dGF0aWMgaW50IGVycm9yX2NoZWNrKERSQkdfU0VMRlRFU1RfREFUCisgICAgIHVuc2lnbmVkIGlu dCByZXNlZWRfY291bnRlcl90bXA7CisgICAgIGludCByZXQgPSAwOworIAorLSAgICBpZiAoIVRF U1RfcHRyKGRyYmcgPSBSQU5EX0RSQkdfbmV3KDAsIDAsIE5VTEwpKSkKKysgICAgaWYgKCFURVNU X3B0cihkcmJnID0gUkFORF9EUkJHX25ldygwLCAwLCBOVUxMKSkKKysJfHwgIVRFU1RfdHJ1ZShk aXNhYmxlX2Nybmd0KGRyYmcpKSkKKyAgICAgICAgIGdvdG8gZXJyOworIAorICAgICAvKgorQEAg LTY5OSw2ICs3MjYsMTAgQEAgc3RhdGljIGludCB0ZXN0X3JhbmRfZHJiZ19yZXNlZWQodm9pZCkK KyAgICAgICAgIHx8ICFURVNUX3B0cl9lcShwcml2YXRlLT5wYXJlbnQsIG1hc3RlcikpCisgICAg ICAgICByZXR1cm4gMDsKKyAKKysgICAgLyogRGlzYWJsZSBDUk5HIHRlc3RpbmcgZm9yIHRoZSBt YXN0ZXIgRFJCRyAqLworKyAgICBpZiAoIVRFU1RfdHJ1ZShkaXNhYmxlX2Nybmd0KG1hc3Rlcikp KQorKyAgICAgICAgcmV0dXJuIDA7CisrCisgICAgIC8qIHVuaW5zdGFudGlhdGUgdGhlIHRocmVl IGdsb2JhbCBEUkJHcyAqLworICAgICBSQU5EX0RSQkdfdW5pbnN0YW50aWF0ZShwcml2YXRlKTsK KyAgICAgUkFORF9EUkJHX3VuaW5zdGFudGlhdGUocHVibGljKTsKK0BAIC05MTksNyArOTUwLDgg QEAgc3RhdGljIGludCB0ZXN0X3JhbmRfc2VlZCh2b2lkKQorICAgICBzaXplX3QgcmFuZF9idWZs ZW47CisgICAgIHNpemVfdCByZXF1aXJlZF9zZWVkX2J1ZmxlbiA9IDA7CisgCistICAgIGlmICgh VEVTVF9wdHIobWFzdGVyID0gUkFORF9EUkJHX2dldDBfbWFzdGVyKCkpKQorKyAgICBpZiAoIVRF U1RfcHRyKG1hc3RlciA9IFJBTkRfRFJCR19nZXQwX21hc3RlcigpKQorKyAgICAgICAgfHwgIVRF U1RfdHJ1ZShkaXNhYmxlX2Nybmd0KG1hc3RlcikpKQorICAgICAgICAgcmV0dXJuIDA7CisgCisg I2lmZGVmIE9QRU5TU0xfUkFORF9TRUVEX05PTkUKK0BAIC05NjgsNiArMTAwMCw5NSBAQCBzdGF0 aWMgaW50IHRlc3RfcmFuZF9hZGQodm9pZCkKKyAgICAgcmV0dXJuIDE7CisgfQorIAorKy8qCisr ICogQSBsaXN0IG9mIHRoZSBGSVBTIERSR0IgdHlwZXMuCisrICovCisrc3RhdGljIGNvbnN0IHN0 cnVjdCBzX2RyZ2JfdHlwZXMgeworKyAgICBpbnQgbmlkOworKyAgICBpbnQgZmxhZ3M7CisrfSBk cmdiX3R5cGVzW10gPSB7CisrICAgIHsgTklEX2Flc18xMjhfY3RyLCAgMCAgICAgICAgICAgICAg ICAgICB9LAorKyAgICB7IE5JRF9hZXNfMTkyX2N0ciwgIDAgICAgICAgICAgICAgICAgICAgfSwK KysgICAgeyBOSURfYWVzXzI1Nl9jdHIsICAwICAgICAgICAgICAgICAgICAgIH0sCisrfTsKKysK KysvKiBTaXggY2FzZXMgZm9yIGVhY2ggY292ZXJzIHNlZWQgc2l6ZXMgdXAgdG8gMzIgYnl0ZXMg Ki8KKytzdGF0aWMgY29uc3Qgc2l6ZV90IGNybmd0X251bV9jYXNlcyA9IDY7CisrCisrc3RhdGlj IHNpemVfdCBjcm5ndF9jYXNlLCBjcm5ndF9pZHg7CisrCisrc3RhdGljIGludCBjcm5ndF9lbnRy b3B5X2NiKHVuc2lnbmVkIGNoYXIgKmJ1ZiwgdW5zaWduZWQgY2hhciAqbWQsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqbWRfc2l6ZSkKKyt7CisrICAgIHNpemVf dCBpLCB6OworKworKyAgICBpZiAoIVRFU1RfaW50X2x0KGNybmd0X2lkeCwgY3JuZ3RfbnVtX2Nh c2VzKSkKKysgICAgICAgIHJldHVybiAwOworKyAgICAvKiBHZW5lcmF0ZSBhIGJsb2NrIG9mIHVu aXF1ZSBkYXRhIHVubGVzcyB0aGlzIGlzIHRoZSBkdXBsaWNhdGlvbiBwb2ludCAqLworKyAgICB6 ID0gY3JuZ3RfaWR4Kys7CisrICAgIGlmICh6ID4gMCAmJiBjcm5ndF9jYXNlID09IHopCisrICAg ICAgICB6LS07CisrICAgIGZvciAoaSA9IDA7IGkgPCBDUk5HVF9CVUZTSVo7IGkrKykKKysgICAg ICAgIGJ1ZltpXSA9ICh1bnNpZ25lZCBjaGFyKShpICsgJ0EnICsgeik7CisrICAgIHJldHVybiBF VlBfRGlnZXN0KGJ1ZiwgQ1JOR1RfQlVGU0laLCBtZCwgbWRfc2l6ZSwgRVZQX3NoYTI1NigpLCBO VUxMKTsKKyt9CisrCisrc3RhdGljIGludCB0ZXN0X2Nybmd0KGludCBuKQorK3sKKysgICAgY29u c3Qgc3RydWN0IHNfZHJnYl90eXBlcyAqZHQgPSBkcmdiX3R5cGVzICsgbiAvIGNybmd0X251bV9j YXNlczsKKysgICAgUkFORF9EUkJHICpkcmJnID0gTlVMTDsKKysgICAgdW5zaWduZWQgY2hhciBi dWZmWzEwMF07CisrICAgIHNpemVfdCBlbnQ7CisrICAgIGludCByZXMgPSAwOworKyAgICBpbnQg ZXhwZWN0OworKworKyAgICBpZiAoIVRFU1RfdHJ1ZShyYW5kX2Nybmd0X3NpbmdsZV9pbml0KCkp KQorKyAgICAgICAgcmV0dXJuIDA7CisrICAgIHJhbmRfY3JuZ3RfY2xlYW51cCgpOworKworKyAg ICBpZiAoIVRFU1RfcHRyKGRyYmcgPSBSQU5EX0RSQkdfbmV3KGR0LT5uaWQsIGR0LT5mbGFncywg TlVMTCkpKQorKyAgICAgICAgcmV0dXJuIDA7CisrICAgIGVudCA9IChkcmJnLT5taW5fZW50cm9w eWxlbiArIENSTkdUX0JVRlNJWiAtIDEpIC8gQ1JOR1RfQlVGU0laOworKyAgICBjcm5ndF9jYXNl ID0gbiAlIGNybmd0X251bV9jYXNlczsKKysgICAgY3JuZ3RfaWR4ID0gMDsKKysgICAgY3JuZ3Rf Z2V0X2VudHJvcHkgPSAmY3JuZ3RfZW50cm9weV9jYjsKKysgICAgaWYgKCFURVNUX3RydWUocmFu ZF9jcm5ndF9pbml0KCkpKQorKyAgICAgICAgZ290byBlcnI7CisrI2lmbmRlZiBPUEVOU1NMX0ZJ UFMKKysgICAgaWYgKCFURVNUX3RydWUoUkFORF9EUkJHX3NldF9jYWxsYmFja3MoZHJiZywgJnJh bmRfY3JuZ3RfZ2V0X2VudHJvcHksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZyYW5kX2Nybmd0X2NsZWFudXBfZW50cm9weSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJhbmRfZHJiZ19nZXRfbm9uY2UsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyYW5kX2RyYmdfY2xlYW51cF9u b25jZSkpKQorKyAgICAgICAgZ290byBlcnI7CisrI2VuZGlmCisrICAgIGV4cGVjdCA9IGNybmd0 X2Nhc2UgPT0gMCB8fCBjcm5ndF9jYXNlID4gZW50OworKyAgICBpZiAoIVRFU1RfaW50X2VxKFJB TkRfRFJCR19pbnN0YW50aWF0ZShkcmJnLCBOVUxMLCAwKSwgZXhwZWN0KSkKKysgICAgICAgIGdv dG8gZXJyOworKyAgICBpZiAoIWV4cGVjdCkKKysgICAgICAgIGdvdG8gZmluOworKyAgICBpZiAo IVRFU1RfdHJ1ZShSQU5EX0RSQkdfZ2VuZXJhdGUoZHJiZywgYnVmZiwgc2l6ZW9mKGJ1ZmYpLCAw LCBOVUxMLCAwKSkpCisrICAgICAgICBnb3RvIGVycjsKKysKKysgICAgZXhwZWN0ID0gY3JuZ3Rf Y2FzZSA9PSAwIHx8IGNybmd0X2Nhc2UgPiAyICogZW50OworKyAgICBpZiAoIVRFU1RfaW50X2Vx KFJBTkRfRFJCR19yZXNlZWQoZHJiZywgTlVMTCwgMCwgMCksIGV4cGVjdCkpCisrICAgICAgICBn b3RvIGVycjsKKysgICAgaWYgKCFleHBlY3QpCisrICAgICAgICBnb3RvIGZpbjsKKysgICAgaWYg KCFURVNUX3RydWUoUkFORF9EUkJHX2dlbmVyYXRlKGRyYmcsIGJ1ZmYsIHNpemVvZihidWZmKSwg MCwgTlVMTCwgMCkpKQorKyAgICAgICAgZ290byBlcnI7CisrCisrZmluOgorKyAgICByZXMgPSAx OworK2VycjoKKysgICAgaWYgKCFyZXMpCisrICAgICAgICBURVNUX25vdGUoIkRSQkcgJXpkIGNh c2UgJXpkIGJsb2NrICV6ZCIsIG4gLyBjcm5ndF9udW1fY2FzZXMsCisrICAgICAgICAgICAgICAg ICAgY3JuZ3RfY2FzZSwgY3JuZ3RfaWR4KTsKKysgICAgdW5pbnN0YW50aWF0ZShkcmJnKTsKKysg ICAgUkFORF9EUkJHX2ZyZWUoZHJiZyk7CisrICAgIGNybmd0X2dldF9lbnRyb3B5ID0gJnJhbmRf Y3JuZ3RfZ2V0X2VudHJvcHlfY2I7CisrICAgIHJldHVybiByZXM7CisrfQorKworIGludCBzZXR1 cF90ZXN0cyh2b2lkKQorIHsKKyAgICAgYXBwX2RhdGFfaW5kZXggPSBSQU5EX0RSQkdfZ2V0X2V4 X25ld19pbmRleCgwTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7CitAQCAtOTgwLDUgKzExMDEs NiBAQCBpbnQgc2V0dXBfdGVzdHModm9pZCkKKyAjaWYgZGVmaW5lZChPUEVOU1NMX1RIUkVBRFMp CisgICAgIEFERF9URVNUKHRlc3RfbXVsdGlfdGhyZWFkKTsKKyAjZW5kaWYKKysgICAgQUREX0FM TF9URVNUUyh0ZXN0X2Nybmd0LCBjcm5ndF9udW1fY2FzZXMgKiBPU1NMX05FTEVNKGRyZ2JfdHlw ZXMpKTsKKyAgICAgcmV0dXJuIDE7CisgfQoKZGlmZiAtLWdpdCBhL29wZW5zc2wtMS4xLjEtZmlw cy5wYXRjaCBiL29wZW5zc2wtMS4xLjEtZmlwcy5wYXRjaAppbmRleCBjM2VkNmUyLi5hZGNjNTg0 IDEwMDY0NAotLS0gYS9vcGVuc3NsLTEuMS4xLWZpcHMucGF0Y2gKKysrIGIvb3BlbnNzbC0xLjEu MS1maXBzLnBhdGNoCkBAIC0xLDYgKzEsNiBAQAogZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvYXBw cy9zcGVlZC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvYXBwcy9zcGVlZC5jCi0tLS0gb3BlbnNzbC0x LjEuMWIvYXBwcy9zcGVlZC5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi43Njg3NDYzNzYgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMJMjAxOS0wMi0yOCAxMTozMDowNi43 Nzk3NDYxNzIgKzAxMDAKKy0tLSBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMuZmlwcwkyMDE5 LTA1LTA3IDA4OjU2OjMzLjUzMTE3NDMzNiArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFiL2FwcHMv c3BlZWQuYwkyMDE5LTA1LTA3IDA5OjQzOjA2LjY3Mzk4OTk5MiArMDIwMAogQEAgLTE1OTIsNyAr MTU5Miw4IEBAIGludCBzcGVlZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgICAg ICAgICBjb250aW51ZTsKICAgICAgICAgIGlmIChzdHJjbXAoKmFyZ3YsICJyc2EiKSA9PSAwKSB7 CkBAIC0yMiw3ICsyMiwyMiBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMu ZmlwcyBvcGVuc3NsLTEuMS4xYi9hcHBzL3NwZWVkLmMKICAgICAgICAgICAgICAgICAgZHNhX2Rv aXRbUl9EU0FfMjA0OF0gPSAxOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQot QEAgLTE3MzQsMTUgKzE3MzcsMjEgQEAgaW50IHNwZWVkX21haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQorQEAgLTE2NDAsMTIgKzE2NDMsMTIgQEAgaW50IHNwZWVkX21haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQorICAgICAgICAgICAgIGVjZGhfZG9pdFtpXSA9IDI7CisgICAgICAgICAgICAg Y29udGludWU7CisgICAgICAgICB9CistICAgICAgICBpZiAoc3RyY21wKCphcmd2LCAiZWRkc2Ei KSA9PSAwKSB7CisrICAgICAgICBpZiAoIUZJUFNfbW9kZSgpICYmIHN0cmNtcCgqYXJndiwgImVk ZHNhIikgPT0gMCkgeworICAgICAgICAgICAgIGZvciAobG9vcCA9IDA7IGxvb3AgPCBPU1NMX05F TEVNKGVkZHNhX2RvaXQpOyBsb29wKyspCisgICAgICAgICAgICAgICAgIGVkZHNhX2RvaXRbbG9v cF0gPSAxOworICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgfQorLSAgICAgICAgaWYg KGZvdW5kKCphcmd2LCBlZGRzYV9jaG9pY2VzLCAmaSkpIHsKKysgICAgICAgIGlmICghRklQU19t b2RlKCkgJiYgZm91bmQoKmFyZ3YsIGVkZHNhX2Nob2ljZXMsICZpKSkgeworICAgICAgICAgICAg IGVkZHNhX2RvaXRbaV0gPSAyOworICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgfQor QEAgLTE3MzQsMjMgKzE3MzcsMzAgQEAgaW50IHNwZWVkX21haW4oaW50IGFyZ2MsIGNoYXIgKiph cmd2KQogICAgICAvKiBObyBwYXJhbWV0ZXJzOyB0dXJuIG9uIGV2ZXJ5dGhpbmcuICovCiAgICAg IGlmICgoYXJnYyA9PSAwKSAmJiAhZG9pdFtEX0VWUF0pIHsKICAgICAgICAgIGZvciAoaSA9IDA7 IGkgPCBBTEdPUl9OVU07IGkrKykKQEAgLTQ3LDcgKzYyLDE4IEBAIGRpZmYgLXVwIG9wZW5zc2wt MS4xLjFiL2FwcHMvc3BlZWQuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2FwcHMvc3BlZWQuYwogICNl bmRpZgogICNpZm5kZWYgT1BFTlNTTF9OT19FQwogICAgICAgICAgZm9yIChsb29wID0gMDsgbG9v cCA8IE9TU0xfTkVMRU0oZWNkc2FfZG9pdCk7IGxvb3ArKykKLUBAIC0xNzk4LDMwICsxODA3LDQ2 IEBAIGludCBzcGVlZF9tYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKKyAgICAgICAgICAgICBl Y2RzYV9kb2l0W2xvb3BdID0gMTsKKyAgICAgICAgIGZvciAobG9vcCA9IDA7IGxvb3AgPCBPU1NM X05FTEVNKGVjZGhfZG9pdCk7IGxvb3ArKykKKyAgICAgICAgICAgICBlY2RoX2RvaXRbbG9vcF0g PSAxOworLSAgICAgICAgZm9yIChsb29wID0gMDsgbG9vcCA8IE9TU0xfTkVMRU0oZWRkc2FfZG9p dCk7IGxvb3ArKykKKy0gICAgICAgICAgICBlZGRzYV9kb2l0W2xvb3BdID0gMTsKKysgICAgICAg IGlmICghRklQU19tb2RlKCkpCisrICAgICAgICAgICAgZm9yIChsb29wID0gMDsgbG9vcCA8IE9T U0xfTkVMRU0oZWRkc2FfZG9pdCk7IGxvb3ArKykKKysgICAgICAgICAgICAgICAgZWRkc2FfZG9p dFtsb29wXSA9IDE7CisgI2VuZGlmCisgICAgIH0KKyAgICAgZm9yIChpID0gMDsgaSA8IEFMR09S X05VTTsgaSsrKQorQEAgLTE3OTgsMzAgKzE4MDgsNDYgQEAgaW50IHNwZWVkX21haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogICAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KGtleTI0LCAxOTIsICZh ZXNfa3MyKTsKICAgICAgQUVTX3NldF9lbmNyeXB0X2tleShrZXkzMiwgMjU2LCAmYWVzX2tzMyk7 CiAgI2lmbmRlZiBPUEVOU1NMX05PX0NBTUVMTElBCkBAIC0xMDQsNyArMTMwLDcgQEAgZGlmZiAt dXAgb3BlbnNzbC0xLjEuMWIvYXBwcy9zcGVlZC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvYXBwcy9z cGVlZC5jCiAgI2VuZGlmCiAgI2lmbmRlZiBTSUdBTFJNCiAgIyBpZm5kZWYgT1BFTlNTTF9OT19E RVMKLUBAIC0yMTE4LDYgKzIxNDMsNyBAQCBpbnQgc3BlZWRfbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCitAQCAtMjExOCw2ICsyMTQ0LDcgQEAgaW50IHNwZWVkX21haW4oaW50IGFyZ2MsIGNo YXIgKiphcmd2KQogIAogICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxvb3BhcmdzX2xlbjsgaSsr KSB7CiAgICAgICAgICAgICAgbG9vcGFyZ3NbaV0uaGN0eCA9IEhNQUNfQ1RYX25ldygpOwpAQCAt MTI0LDYgKzE1MCwxOCBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9Db25maWd1cmUuZmlwcyBv cGVuc3NsLTEuMS4xYi9Db25maWd1cmUKICAgICAgImV2cCIsICJhc24xIiwgInBlbSIsICJ4NTA5 IiwgIng1MDl2MyIsICJjb25mIiwgInR4dF9kYiIsICJwa2NzNyIsICJwa2NzMTIiLCAiY29tcCIs ICJvY3NwIiwgInVpIiwKICAgICAgImNtcyIsICJ0cyIsICJzcnAiLCAiY21hYyIsICJjdCIsICJh c3luYyIsICJrZGYiLCAic3RvcmUiCiAgICAgIF07CitkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vY21hYy9jbV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2NtYWMvY21f cG1ldGguYworLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9jbWFjL2NtX3BtZXRoLmMuZmlwcwky MDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIG9wZW5zc2wtMS4xLjFiL2Ny eXB0by9jbWFjL2NtX3BtZXRoLmMJMjAxOS0wNS0wNiAxNDo1NTozMi44NjY3NDkxMDkgKzAyMDAK K0BAIC0xMjksNyArMTI5LDcgQEAgc3RhdGljIGludCBwa2V5X2NtYWNfY3RybF9zdHIoRVZQX1BL RVlfQworIAorIGNvbnN0IEVWUF9QS0VZX01FVEhPRCBjbWFjX3BrZXlfbWV0aCA9IHsKKyAgICAg RVZQX1BLRVlfQ01BQywKKy0gICAgRVZQX1BLRVlfRkxBR19TSUdDVFhfQ1VTVE9NLAorKyAgICBF VlBfUEtFWV9GTEFHX1NJR0NUWF9DVVNUT00gfCBFVlBfUEtFWV9GTEFHX0ZJUFMsCisgICAgIHBr ZXlfY21hY19pbml0LAorICAgICBwa2V5X2NtYWNfY29weSwKKyAgICAgcGtleV9jbWFjX2NsZWFu dXAsCiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfZXJyLmMuZmlwcyBvcGVu c3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfZXJyLmMKIC0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8v ZGgvZGhfZXJyLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAogKysr IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kaC9kaF9lcnIuYwkyMDE5LTAyLTI4IDExOjMwOjA2Ljc3 OTc0NjE3MiArMDEwMApAQCAtMjg0LDYgKzMyMiwyNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZGgvZGhfa2V5LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZGgvZGhfa2V5 LgogICAgICBkaC0+ZmxhZ3MgfD0gREhfRkxBR19DQUNIRV9NT05UX1A7CiAgICAgIHJldHVybiAx OwogIH0KK2RpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9kaC9kaF9wbWV0aC5jLmZpcHMg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX3BtZXRoLmMKKy0tLSBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vZGgvZGhfcG1ldGguYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICsw MTAwCisrKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RoL2RoX3BtZXRoLmMJMjAxOS0wNS0wNiAx NDo1NzoyOS4xODQ3MjM0MzAgKzAyMDAKK0BAIC00ODAsNyArNDgwLDcgQEAgc3RhdGljIGludCBw a2V5X2RoX2Rlcml2ZShFVlBfUEtFWV9DVFggKgorIAorIGNvbnN0IEVWUF9QS0VZX01FVEhPRCBk aF9wa2V5X21ldGggPSB7CisgICAgIEVWUF9QS0VZX0RILAorLSAgICAwLAorKyAgICBFVlBfUEtF WV9GTEFHX0ZJUFMsCisgICAgIHBrZXlfZGhfaW5pdCwKKyAgICAgcGtleV9kaF9jb3B5LAorICAg ICBwa2V5X2RoX2NsZWFudXAsCitAQCAtNTE0LDcgKzUxNCw3IEBAIGNvbnN0IEVWUF9QS0VZX01F VEhPRCBkaF9wa2V5X21ldGggPSB7CisgCisgY29uc3QgRVZQX1BLRVlfTUVUSE9EIGRoeF9wa2V5 X21ldGggPSB7CisgICAgIEVWUF9QS0VZX0RIWCwKKy0gICAgMCwKKysgICAgRVZQX1BLRVlfRkxB R19GSVBTLAorICAgICBwa2V5X2RoX2luaXQsCisgICAgIHBrZXlfZGhfY29weSwKKyAgICAgcGtl eV9kaF9jbGVhbnVwLAogZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2RzYS9kc2FfZXJy LmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9lcnIuYwogLS0tIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9kc2EvZHNhX2Vyci5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAw MDAwMDAgKzAxMDAKICsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9lcnIuYwkyMDE5 LTAyLTI4IDExOjMwOjA2Ljc5ODc0NTgxOSArMDEwMApAQCAtNjM4LDYgKzY5NywxNSBAQCBkaWZm IC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZHNhL2RzYV9wbWV0aC5jLmZpcHMgb3BlbnNzbC0x LjEuMWIvY3J5cHRvL2RzYS9kcwogICAgICBCTl9HRU5DQl9mcmVlKHBjYik7CiAgICAgIGlmIChy ZXQpCiAgICAgICAgICBFVlBfUEtFWV9hc3NpZ25fRFNBKHBrZXksIGRzYSk7CitAQCAtMjQxLDcg KzI0MSw3IEBAIHN0YXRpYyBpbnQgcGtleV9kc2Ffa2V5Z2VuKEVWUF9QS0VZX0NUWAorIAorIGNv bnN0IEVWUF9QS0VZX01FVEhPRCBkc2FfcGtleV9tZXRoID0geworICAgICBFVlBfUEtFWV9EU0Es CistICAgIEVWUF9QS0VZX0ZMQUdfQVVUT0FSR0xFTiwKKysgICAgRVZQX1BLRVlfRkxBR19BVVRP QVJHTEVOIHwgRVZQX1BLRVlfRkxBR19GSVBTLAorICAgICBwa2V5X2RzYV9pbml0LAorICAgICBw a2V5X2RzYV9jb3B5LAorICAgICBwa2V5X2RzYV9jbGVhbnVwLAogZGlmZiAtdXAgb3BlbnNzbC0x LjEuMWIvY3J5cHRvL2VjL2VjZGhfb3NzbC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Vj L2VjZGhfb3NzbC5jCiAtLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjZGhfb3NzbC5jLmZp cHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKICsrKyBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZWMvZWNkaF9vc3NsLmMJMjAxOS0wMi0yOCAxMTozMDowNi44MDE3NDU3NjMgKzAx MDAKQEAgLTc3Miw2ICs4NDAsMTggQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Vj L2VjX2tleS5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2VjL2VjX2tleS4KICAgICAgRUNl cnIoRUNfRl9FQ19LRVlfR0VORVJBVEVfS0VZLCBFQ19SX09QRVJBVElPTl9OT1RfU1VQUE9SVEVE KTsKICAgICAgcmV0dXJuIDA7CiAgfQorZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2Vj L2VjX3BtZXRoLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNfcG1ldGguYworLS0t IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9lYy9lY19wbWV0aC5jLmZpcHMJMjAxOS0wMi0yNiAxNTox NTozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZWMvZWNfcG1l dGguYwkyMDE5LTA1LTA2IDE0OjQ3OjM0LjY1MTA3NzI1MSArMDIwMAorQEAgLTQzNCw3ICs0MzQs NyBAQCBzdGF0aWMgaW50IHBrZXlfZWNfa2V5Z2VuKEVWUF9QS0VZX0NUWCAqCisgCisgY29uc3Qg RVZQX1BLRVlfTUVUSE9EIGVjX3BrZXlfbWV0aCA9IHsKKyAgICAgRVZQX1BLRVlfRUMsCistICAg IDAsCisrICAgIEVWUF9QS0VZX0ZMQUdfRklQUywKKyAgICAgcGtleV9lY19pbml0LAorICAgICBw a2V5X2VjX2NvcHksCisgICAgIHBrZXlfZWNfY2xlYW51cCwKIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9ldnAvY19hbGxjLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2Nf YWxsYy5jCiAtLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9jX2FsbGMuYy5maXBzCTIwMTkt MDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCiArKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L2V2cC9jX2FsbGMuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgwMjc0NTc0NCArMDEwMApAQCAtOTU4 LDggKzEwMzgsOTMgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9kaWdlc3Qu Yy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZGlnZXMKICAgICAgaWYgKHNpemUgIT0g TlVMTCkKIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuYy5maXBzIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuYwogLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9ldnAvZV9hZXMuYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCi0r Kysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX2Flcy5jCTIwMTktMDItMjggMTE6MzA6MDYu ODA0NzQ1NzA3ICswMTAwCi1AQCAtMjc5NCw5ICsyNzk0LDkgQEAgc3RhdGljIGludCBhZXNfY3Ry X2NpcGhlcihFVlBfQ0lQSEVSX0NUWAorKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9h ZXMuYwkyMDE5LTA1LTA2IDE2OjMyOjQxLjYzMTY2ODMzMyArMDIwMAorQEAgLTM4NywyMiArMzg3 LDMzIEBAIHN0YXRpYyBpbnQgYWVzbmlfeHRzX2luaXRfa2V5KEVWUF9DSVBIRVIKKyAgICAgICAg IHJldHVybiAxOworIAorICAgICBpZiAoa2V5KSB7CisrICAgICAgICAvKiBUaGUga2V5IGlzIHR3 byBoYWxmIGxlbmd0aCBrZXlzIGluIHJlYWxpdHkgKi8KKysgICAgICAgIGNvbnN0IGludCBieXRl cyA9IEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAvIDI7CisrICAgICAgICBjb25zdCBp bnQgYml0cyA9IGJ5dGVzICogODsKKysKKysgICAgICAgIC8qCisrICAgICAgICAgKiBWZXJpZnkg dGhhdCB0aGUgdHdvIGtleXMgYXJlIGRpZmZlcmVudC4KKysgICAgICAgICAqIAorKyAgICAgICAg ICogVGhpcyBhZGRyZXNzZXMgUm9nYXdheSdzIHZ1bG5lcmFiaWxpdHkuCisrICAgICAgICAgKiBT ZWUgY29tbWVudCBpbiBhZXNfeHRzX2luaXRfa2V5KCkgYmVsb3cuCisrICAgICAgICAgKi8KKysg ICAgICAgIGlmIChtZW1jbXAoa2V5LCBrZXkgKyBieXRlcywgYnl0ZXMpID09IDApIHsKKysgICAg ICAgICAgICBFVlBlcnIoRVZQX0ZfQUVTTklfWFRTX0lOSVRfS0VZLCBFVlBfUl9YVFNfRFVQTElD QVRFRF9LRVlTKTsKKysgICAgICAgICAgICByZXR1cm4gMDsKKysgICAgICAgIH0KKysKKyAgICAg ICAgIC8qIGtleV9sZW4gaXMgdHdvIEFFUyBrZXlzICovCisgICAgICAgICBpZiAoZW5jKSB7Cist ICAgICAgICAgICAgYWVzbmlfc2V0X2VuY3J5cHRfa2V5KGtleSwgRVZQX0NJUEhFUl9DVFhfa2V5 X2xlbmd0aChjdHgpICogNCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhj dHgtPmtzMS5rcyk7CisrICAgICAgICAgICAgYWVzbmlfc2V0X2VuY3J5cHRfa2V5KGtleSwgYml0 cywgJnhjdHgtPmtzMS5rcyk7CisgICAgICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMSA9IChibG9j azEyOF9mKSBhZXNuaV9lbmNyeXB0OworICAgICAgICAgICAgIHhjdHgtPnN0cmVhbSA9IGFlc25p X3h0c19lbmNyeXB0OworICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICBhZXNuaV9zZXRf ZGVjcnlwdF9rZXkoa2V5LCBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmeGN0eC0+a3MxLmtzKTsKKysgICAgICAg ICAgICBhZXNuaV9zZXRfZGVjcnlwdF9rZXkoa2V5LCBiaXRzLCAmeGN0eC0+a3MxLmtzKTsKKyAg ICAgICAgICAgICB4Y3R4LT54dHMuYmxvY2sxID0gKGJsb2NrMTI4X2YpIGFlc25pX2RlY3J5cHQ7 CisgICAgICAgICAgICAgeGN0eC0+c3RyZWFtID0gYWVzbmlfeHRzX2RlY3J5cHQ7CisgICAgICAg ICB9CisgCistICAgICAgICBhZXNuaV9zZXRfZW5jcnlwdF9rZXkoa2V5ICsgRVZQX0NJUEhFUl9D VFhfa2V5X2xlbmd0aChjdHgpIC8gMiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF VlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICZ4Y3R4LT5rczIua3MpOworKyAgICAgICAgYWVzbmlfc2V0X2VuY3J5cHRfa2V5 KGtleSArIGJ5dGVzLCBiaXRzLCAmeGN0eC0+a3MyLmtzKTsKKyAgICAgICAgIHhjdHgtPnh0cy5i bG9jazIgPSAoYmxvY2sxMjhfZikgYWVzbmlfZW5jcnlwdDsKKyAKKyAgICAgICAgIHhjdHgtPnh0 cy5rZXkxID0gJnhjdHgtPmtzMTsKK0BAIC03OTEsNyArODAyLDIxIEBAIHN0YXRpYyBpbnQgYWVz X3Q0X3h0c19pbml0X2tleShFVlBfQ0lQSEUKKyAgICAgICAgIHJldHVybiAxOworIAorICAgICBp ZiAoa2V5KSB7CistICAgICAgICBpbnQgYml0cyA9IEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgo Y3R4KSAqIDQ7CisrICAgICAgICAvKiBUaGUga2V5IGlzIHR3byBoYWxmIGxlbmd0aCBrZXlzIGlu IHJlYWxpdHkgKi8KKysgICAgICAgIGNvbnN0IGludCBieXRlcyA9IEVWUF9DSVBIRVJfQ1RYX2tl eV9sZW5ndGgoY3R4KSAvIDI7CisrICAgICAgICBjb25zdCBpbnQgYml0cyA9IGJ5dGVzICogODsK KysKKysgICAgICAgIC8qCisrICAgICAgICAgKiBWZXJpZnkgdGhhdCB0aGUgdHdvIGtleXMgYXJl IGRpZmZlcmVudC4KKysgICAgICAgICAqIAorKyAgICAgICAgICogVGhpcyBhZGRyZXNzZXMgUm9n YXdheSdzIHZ1bG5lcmFiaWxpdHkuCisrICAgICAgICAgKiBTZWUgY29tbWVudCBpbiBhZXNfeHRz X2luaXRfa2V5KCkgYmVsb3cuCisrICAgICAgICAgKi8KKysgICAgICAgIGlmIChtZW1jbXAoa2V5 LCBrZXkgKyBieXRlcywgYnl0ZXMpID09IDApIHsKKysgICAgICAgICAgICBFVlBlcnIoRVZQX0Zf QUVTX1Q0X1hUU19JTklUX0tFWSwgRVZQX1JfWFRTX0RVUExJQ0FURURfS0VZUyk7CisrICAgICAg ICAgICAgcmV0dXJuIDA7CisrICAgICAgICB9CisrCisgICAgICAgICB4Y3R4LT5zdHJlYW0gPSBO VUxMOworICAgICAgICAgLyoga2V5X2xlbiBpcyB0d28gQUVTIGtleXMgKi8KKyAgICAgICAgIGlm IChlbmMpIHsKK0BAIC04MDgsOCArODMzLDcgQEAgc3RhdGljIGludCBhZXNfdDRfeHRzX2luaXRf a2V5KEVWUF9DSVBIRQorICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICB9 CisgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgIGFlc190NF9zZXRfZGVjcnlwdF9rZXko a2V5LCBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJnhjdHgtPmtzMS5rcyk7CisrICAgICAgICAgICAgYWVzX3Q0 X3NldF9kZWNyeXB0X2tleShrZXksIGJpdHMsICZ4Y3R4LT5rczEua3MpOworICAgICAgICAgICAg IHhjdHgtPnh0cy5ibG9jazEgPSAoYmxvY2sxMjhfZikgYWVzX3Q0X2RlY3J5cHQ7CisgICAgICAg ICAgICAgc3dpdGNoIChiaXRzKSB7CisgICAgICAgICAgICAgY2FzZSAxMjg6CitAQCAtODIzLDkg Kzg0Nyw3IEBAIHN0YXRpYyBpbnQgYWVzX3Q0X3h0c19pbml0X2tleShFVlBfQ0lQSEUKKyAgICAg ICAgICAgICB9CisgICAgICAgICB9CisgCistICAgICAgICBhZXNfdDRfc2V0X2VuY3J5cHRfa2V5 KGtleSArIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAvIDIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAqIDQsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczIua3MpOworKyAgICAgICAg YWVzX3Q0X3NldF9lbmNyeXB0X2tleShrZXkgKyBieXRlcywgYml0cywgJnhjdHgtPmtzMi5rcyk7 CisgICAgICAgICB4Y3R4LT54dHMuYmxvY2syID0gKGJsb2NrMTI4X2YpIGFlc190NF9lbmNyeXB0 OworIAorICAgICAgICAgeGN0eC0+eHRzLmtleTEgPSAmeGN0eC0+a3MxOworQEAgLTI3OTQsOSAr MjgxNiw5IEBAIHN0YXRpYyBpbnQgYWVzX2N0cl9jaXBoZXIoRVZQX0NJUEhFUl9DVFgKICAgICAg cmV0dXJuIDE7CiAgfQogIApAQCAtOTcyLDcgKzExMzcsNyBAQCBkaWZmIC11cCBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZXZwL2VfYWVzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2Vf YWVzLgogIAogIHN0YXRpYyBpbnQgYWVzX2djbV9jbGVhbnVwKEVWUF9DSVBIRVJfQ1RYICpjKQog IHsKLUBAIC0yODI2LDYgKzI4MjYsMTEgQEAgc3RhdGljIGludCBhZXNfZ2NtX2N0cmwoRVZQX0NJ UEhFUl9DVFggKgorQEAgLTI4MjYsNiArMjg0OCwxMSBAQCBzdGF0aWMgaW50IGFlc19nY21fY3Ry bChFVlBfQ0lQSEVSX0NUWCAqCiAgICAgIGNhc2UgRVZQX0NUUkxfQUVBRF9TRVRfSVZMRU46CiAg ICAgICAgICBpZiAoYXJnIDw9IDApCiAgICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC05ODQsNyAr MTE0OSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuYy5maXBz IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuCiAgICAgICAgICAvKiBBbGxvY2F0ZSBt ZW1vcnkgZm9yIElWIGlmIG5lZWRlZCAqLwogICAgICAgICAgaWYgKChhcmcgPiBFVlBfTUFYX0lW X0xFTkdUSCkgJiYgKGFyZyA+IGdjdHgtPml2bGVuKSkgewogICAgICAgICAgICAgIGlmIChnY3R4 LT5pdiAhPSBjLT5pdikKLUBAIC0zMjc1LDExICszMjgwLDE0IEBAIHN0YXRpYyBpbnQgYWVzX2dj bV9jaXBoZXIoRVZQX0NJUEhFUl9DVFgKK0BAIC0zMjc1LDExICszMzAyLDE0IEBAIHN0YXRpYyBp bnQgYWVzX2djbV9jaXBoZXIoRVZQX0NJUEhFUl9DVFgKICAgICAgICAgICAgICAgICAgfCBFVlBf Q0lQSF9DVVNUT01fQ09QWSkKICAKICBCTE9DS19DSVBIRVJfY3VzdG9tKE5JRF9hZXMsIDEyOCwg MSwgMTIsIGdjbSwgR0NNLApAQCAtMTAwMiw3ICsxMTY3LDEyMyBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZXZwL2VfYWVzLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZw L2VfYWVzLgogIAogIHN0YXRpYyBpbnQgYWVzX3h0c19jdHJsKEVWUF9DSVBIRVJfQ1RYICpjLCBp bnQgdHlwZSwgaW50IGFyZywgdm9pZCAqcHRyKQogIHsKLUBAIC0zNDE0LDYgKzM0MjIsMTQgQEAg c3RhdGljIGludCBhZXNfeHRzX2NpcGhlcihFVlBfQ0lQSEVSX0NUWAorQEAgLTMzMTMsOCArMzM0 MywzMyBAQCBzdGF0aWMgaW50IGFlc194dHNfaW5pdF9rZXkoRVZQX0NJUEhFUl9DCisgICAgIGlm ICghaXYgJiYgIWtleSkKKyAgICAgICAgIHJldHVybiAxOworIAorLSAgICBpZiAoa2V5KQorKyAg ICBpZiAoa2V5KSB7CisgICAgICAgICBkbyB7CisrICAgICAgICAgICAgLyogVGhlIGtleSBpcyB0 d28gaGFsZiBsZW5ndGgga2V5cyBpbiByZWFsaXR5ICovCisrICAgICAgICAgICAgY29uc3QgaW50 IGJ5dGVzID0gRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgpIC8gMjsKKysgICAgICAgICAg ICBjb25zdCBpbnQgYml0cyA9IGJ5dGVzICogODsKKysKKysgICAgICAgICAgICAvKgorKyAgICAg ICAgICAgICAqIFZlcmlmeSB0aGF0IHRoZSB0d28ga2V5cyBhcmUgZGlmZmVyZW50LgorKyAgICAg ICAgICAgICAqCisrICAgICAgICAgICAgICogVGhpcyBhZGRyZXNzZXMgdGhlIHZ1bG5lcmFiaWxp dHkgZGVzY3JpYmVkIGluIFJvZ2F3YXkncworKyAgICAgICAgICAgICAqIFNlcHRlbWJlciAyMDA0 IHBhcGVyOgorKyAgICAgICAgICAgICAqCisrICAgICAgICAgICAgICogICAgICAiRWZmaWNpZW50 IEluc3RhbnRpYXRpb25zIG9mIFR3ZWFrYWJsZSBCbG9ja2NpcGhlcnMgYW5kCisrICAgICAgICAg ICAgICogICAgICAgUmVmaW5lbWVudHMgdG8gTW9kZXMgT0NCIGFuZCBQTUFDIi4KKysgICAgICAg ICAgICAgKiAgICAgIChodHRwOi8vd2ViLmNzLnVjZGF2aXMuZWR1L35yb2dhd2F5L3BhcGVycy9v ZmZzZXRzLnBkZikKKysgICAgICAgICAgICAgKgorKyAgICAgICAgICAgICAqIEZJUFMgMTQwLTIg SUcgQS45IFhUUy1BRVMgS2V5IEdlbmVyYXRpb24gUmVxdWlyZW1lbnRzIHN0YXRlcworKyAgICAg ICAgICAgICAqIHRoYXQ6CisrICAgICAgICAgICAgICogICAgICAiVGhlIGNoZWNrIGZvciBLZXlf MSAhPSBLZXlfMiBzaGFsbCBiZSBkb25lIGF0IGFueSBwbGFjZQorKyAgICAgICAgICAgICAqICAg ICAgIEJFRk9SRSB1c2luZyB0aGUga2V5cyBpbiB0aGUgWFRTLUFFUyBhbGdvcml0aG0gdG8gcHJv Y2VzcworKyAgICAgICAgICAgICAqICAgICAgIGRhdGEgd2l0aCB0aGVtLiIKKysgICAgICAgICAg ICAgKi8KKysgICAgICAgICAgICBpZiAobWVtY21wKGtleSwga2V5ICsgYnl0ZXMsIGJ5dGVzKSA9 PSAwKSB7CisrICAgICAgICAgICAgICAgIEVWUGVycihFVlBfRl9BRVNfWFRTX0lOSVRfS0VZLCBF VlBfUl9YVFNfRFVQTElDQVRFRF9LRVlTKTsKKysgICAgICAgICAgICAgICAgcmV0dXJuIDA7Cisr ICAgICAgICAgICAgfQorKworICNpZmRlZiBBRVNfWFRTX0FTTQorICAgICAgICAgICAgIHhjdHgt PnN0cmVhbSA9IGVuYyA/IEFFU194dHNfZW5jcnlwdCA6IEFFU194dHNfZGVjcnlwdDsKKyAjZWxz ZQorQEAgLTMzMjQsMjYgKzMzNzksMjAgQEAgc3RhdGljIGludCBhZXNfeHRzX2luaXRfa2V5KEVW UF9DSVBIRVJfQworICNpZmRlZiBIV0FFU19DQVBBQkxFCisgICAgICAgICAgICAgaWYgKEhXQUVT X0NBUEFCTEUpIHsKKyAgICAgICAgICAgICAgICAgaWYgKGVuYykgeworLSAgICAgICAgICAgICAg ICAgICAgSFdBRVNfc2V0X2VuY3J5cHRfa2V5KGtleSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczEua3Mp OworKyAgICAgICAgICAgICAgICAgICAgSFdBRVNfc2V0X2VuY3J5cHRfa2V5KGtleSwgYml0cywg JnhjdHgtPmtzMS5rcyk7CisgICAgICAgICAgICAgICAgICAgICB4Y3R4LT54dHMuYmxvY2sxID0g KGJsb2NrMTI4X2YpIEhXQUVTX2VuY3J5cHQ7CisgIyBpZmRlZiBIV0FFU194dHNfZW5jcnlwdAor ICAgICAgICAgICAgICAgICAgICAgeGN0eC0+c3RyZWFtID0gSFdBRVNfeHRzX2VuY3J5cHQ7Cisg IyBlbmRpZgorICAgICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICAgICAg SFdBRVNfc2V0X2RlY3J5cHRfa2V5KGtleSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczEua3MpOworKyAg ICAgICAgICAgICAgICAgICAgSFdBRVNfc2V0X2RlY3J5cHRfa2V5KGtleSwgYml0cywgJnhjdHgt PmtzMS5rcyk7CisgICAgICAgICAgICAgICAgICAgICB4Y3R4LT54dHMuYmxvY2sxID0gKGJsb2Nr MTI4X2YpIEhXQUVTX2RlY3J5cHQ7CisgIyBpZmRlZiBIV0FFU194dHNfZGVjcnlwdAorICAgICAg ICAgICAgICAgICAgICAgeGN0eC0+c3RyZWFtID0gSFdBRVNfeHRzX2RlY3J5cHQ7CisgI2VuZGlm CisgICAgICAgICAgICAgICAgIH0KKyAKKy0gICAgICAgICAgICAgICAgSFdBRVNfc2V0X2VuY3J5 cHRfa2V5KGtleSArIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAvIDIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3Ro KGN0eCkgKiA0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhjdHgt PmtzMi5rcyk7CisrICAgICAgICAgICAgICAgIEhXQUVTX3NldF9lbmNyeXB0X2tleShrZXkgKyBi eXRlcywgYml0cywgJnhjdHgtPmtzMi5rcyk7CisgICAgICAgICAgICAgICAgIHhjdHgtPnh0cy5i bG9jazIgPSAoYmxvY2sxMjhfZikgSFdBRVNfZW5jcnlwdDsKKyAKKyAgICAgICAgICAgICAgICAg eGN0eC0+eHRzLmtleTEgPSAmeGN0eC0+a3MxOworQEAgLTMzNTgsMjAgKzM0MDcsMTQgQEAgc3Rh dGljIGludCBhZXNfeHRzX2luaXRfa2V5KEVWUF9DSVBIRVJfQworICNpZmRlZiBWUEFFU19DQVBB QkxFCisgICAgICAgICAgICAgaWYgKFZQQUVTX0NBUEFCTEUpIHsKKyAgICAgICAgICAgICAgICAg aWYgKGVuYykgeworLSAgICAgICAgICAgICAgICAgICAgdnBhZXNfc2V0X2VuY3J5cHRfa2V5KGtl eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlBfQ0lQSEVS X0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZ4Y3R4LT5rczEua3MpOworKyAgICAgICAgICAgICAgICAgICAgdnBhZXNf c2V0X2VuY3J5cHRfa2V5KGtleSwgYml0cywgJnhjdHgtPmtzMS5rcyk7CisgICAgICAgICAgICAg ICAgICAgICB4Y3R4LT54dHMuYmxvY2sxID0gKGJsb2NrMTI4X2YpIHZwYWVzX2VuY3J5cHQ7Cisg ICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICB2cGFlc19zZXRf ZGVjcnlwdF9rZXkoa2V5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAqIDQsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhjdHgtPmtzMS5rcyk7CisrICAgICAgICAgICAg ICAgICAgICB2cGFlc19zZXRfZGVjcnlwdF9rZXkoa2V5LCBiaXRzLCAmeGN0eC0+a3MxLmtzKTsK KyAgICAgICAgICAgICAgICAgICAgIHhjdHgtPnh0cy5ibG9jazEgPSAoYmxvY2sxMjhfZikgdnBh ZXNfZGVjcnlwdDsKKyAgICAgICAgICAgICAgICAgfQorIAorLSAgICAgICAgICAgICAgICB2cGFl c19zZXRfZW5jcnlwdF9rZXkoa2V5ICsgRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgpIC8g MiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVWUF9DSVBIRVJfQ1RY X2tleV9sZW5ndGgoY3R4KSAqIDQsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmeGN0eC0+a3MyLmtzKTsKKysgICAgICAgICAgICAgICAgdnBhZXNfc2V0X2VuY3J5cHRf a2V5KGtleSArIGJ5dGVzLCBiaXRzLCAmeGN0eC0+a3MyLmtzKTsKKyAgICAgICAgICAgICAgICAg eGN0eC0+eHRzLmJsb2NrMiA9IChibG9jazEyOF9mKSB2cGFlc19lbmNyeXB0OworIAorICAgICAg ICAgICAgICAgICB4Y3R4LT54dHMua2V5MSA9ICZ4Y3R4LT5rczE7CitAQCAtMzM4MSwyMiArMzQy NCwxOSBAQCBzdGF0aWMgaW50IGFlc194dHNfaW5pdF9rZXkoRVZQX0NJUEhFUl9DCisgICAgICAg ICAgICAgICAgICh2b2lkKTA7ICAgICAgICAvKiB0ZXJtaW5hdGUgcG90ZW50aWFsbHkgb3BlbiAn ZWxzZScgKi8KKyAKKyAgICAgICAgICAgICBpZiAoZW5jKSB7CistICAgICAgICAgICAgICAgIEFF U19zZXRfZW5jcnlwdF9rZXkoa2V5LCBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgKiA0 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczEua3MpOwor KyAgICAgICAgICAgICAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KGtleSwgYml0cywgJnhjdHgtPmtz MS5rcyk7CisgICAgICAgICAgICAgICAgIHhjdHgtPnh0cy5ibG9jazEgPSAoYmxvY2sxMjhfZikg QUVTX2VuY3J5cHQ7CisgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgQUVT X3NldF9kZWNyeXB0X2tleShrZXksIEVWUF9DSVBIRVJfQ1RYX2tleV9sZW5ndGgoY3R4KSAqIDQs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnhjdHgtPmtzMS5rcyk7Cisr ICAgICAgICAgICAgICAgIEFFU19zZXRfZGVjcnlwdF9rZXkoa2V5LCBiaXRzLCAmeGN0eC0+a3Mx LmtzKTsKKyAgICAgICAgICAgICAgICAgeGN0eC0+eHRzLmJsb2NrMSA9IChibG9jazEyOF9mKSBB RVNfZGVjcnlwdDsKKyAgICAgICAgICAgICB9CisgCistICAgICAgICAgICAgQUVTX3NldF9lbmNy eXB0X2tleShrZXkgKyBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGN0eCkgLyAyLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRVZQX0NJUEhFUl9DVFhfa2V5X2xlbmd0aChjdHgp ICogNCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ4Y3R4LT5rczIua3MpOwor KyAgICAgICAgICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoa2V5ICsgYnl0ZXMsIGJpdHMsICZ4Y3R4 LT5rczIua3MpOworICAgICAgICAgICAgIHhjdHgtPnh0cy5ibG9jazIgPSAoYmxvY2sxMjhfZikg QUVTX2VuY3J5cHQ7CisgCisgICAgICAgICAgICAgeGN0eC0+eHRzLmtleTEgPSAmeGN0eC0+a3Mx OworICAgICAgICAgfSB3aGlsZSAoMCk7CisrICAgIH0KKyAKKyAgICAgaWYgKGl2KSB7CisgICAg ICAgICB4Y3R4LT54dHMua2V5MiA9ICZ4Y3R4LT5rczI7CitAQCAtMzQxNCw2ICszNDU0LDE0IEBA IHN0YXRpYyBpbnQgYWVzX3h0c19jaXBoZXIoRVZQX0NJUEhFUl9DVFgKICAgICAgICAgIHJldHVy biAwOwogICAgICBpZiAoIW91dCB8fCAhaW4gfHwgbGVuIDwgQUVTX0JMT0NLX1NJWkUpCiAgICAg ICAgICByZXR1cm4gMDsKQEAgLTEwMTcsNyArMTI5OCw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9ldnAvZV9hZXMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9h ZXMuCiAgICAgIGlmICh4Y3R4LT5zdHJlYW0pCiAgICAgICAgICAoKnhjdHgtPnN0cmVhbSkgKGlu LCBvdXQsIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgeGN0eC0+eHRzLmtleTEsIHhj dHgtPnh0cy5rZXkyLAotQEAgLTM0MzEsOCArMzQ0NywxMCBAQCBzdGF0aWMgaW50IGFlc194dHNf Y2lwaGVyKEVWUF9DSVBIRVJfQ1RYCitAQCAtMzQzMSw4ICszNDc5LDEwIEBAIHN0YXRpYyBpbnQg YWVzX3h0c19jaXBoZXIoRVZQX0NJUEhFUl9DVFgKICAgICAgICAgICAgICAgICAgICAgICAgICAg fCBFVlBfQ0lQSF9BTFdBWVNfQ0FMTF9JTklUIHwgRVZQX0NJUEhfQ1RSTF9JTklUIFwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCBFVlBfQ0lQSF9DVVNUT01fQ09QWSkKICAKQEAgLTEwMzAs NyArMTMxMSw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuYy5m aXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZV9hZXMuCiAgCiAgc3RhdGljIGludCBhZXNf Y2NtX2N0cmwoRVZQX0NJUEhFUl9DVFggKmMsIGludCB0eXBlLCBpbnQgYXJnLCB2b2lkICpwdHIp CiAgewotQEAgLTM2OTcsMTEgKzM3MTUsMTEgQEAgc3RhdGljIGludCBhZXNfY2NtX2NpcGhlcihF VlBfQ0lQSEVSX0NUWAorQEAgLTM2OTcsMTEgKzM3NDcsMTEgQEAgc3RhdGljIGludCBhZXNfY2Nt X2NpcGhlcihFVlBfQ0lQSEVSX0NUWAogICNkZWZpbmUgYWVzX2NjbV9jbGVhbnVwIE5VTEwKICAK ICBCTE9DS19DSVBIRVJfY3VzdG9tKE5JRF9hZXMsIDEyOCwgMSwgMTIsIGNjbSwgQ0NNLApAQCAt MTA0NSw3ICsxMzI2LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX2Fl cy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9lX2Flcy4KICAKICB0eXBlZGVmIHN0 cnVjdCB7CiAgICAgIHVuaW9uIHsKLUBAIC0zNzk0LDcgKzM4MTIsNyBAQCBzdGF0aWMgaW50IGFl c193cmFwX2NpcGhlcihFVlBfQ0lQSEVSX0NUCitAQCAtMzc5NCw3ICszODQ0LDcgQEAgc3RhdGlj IGludCBhZXNfd3JhcF9jaXBoZXIoRVZQX0NJUEhFUl9DVAogICAgICByZXR1cm4gcnYgPyAoaW50 KXJ2IDogLTE7CiAgfQogIApAQCAtMTE3NiwxMiArMTQ1NywyMSBAQCBkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9lbmMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9l dnAvZXZwXwogICAgICAgICAgaWYgKCFjdHgtPmNpcGhlci0+aW5pdChjdHgsIGtleSwgaXYsIGVu YykpCiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9lcnIuYy5maXBzIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2Vyci5jCiAtLS0gb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2V2cC9ldnBfZXJyLmMuZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEw MAotKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2Vyci5jCTIwMTktMDItMjggMTE6 MzA6MDYuODA1NzQ1Njg4ICswMTAwCi1AQCAtMjAsNiArMjAsNyBAQCBzdGF0aWMgY29uc3QgRVJS X1NUUklOR19EQVRBIEVWUF9zdHJfZnVuCisrKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9l dnBfZXJyLmMJMjAxOS0wNS0wNiAxNjo0MTowOC41NjU3MzkzNjEgKzAyMDAKK0BAIC0xNSwxMSAr MTUsMTYgQEAKKyAKKyBzdGF0aWMgY29uc3QgRVJSX1NUUklOR19EQVRBIEVWUF9zdHJfZnVuY3Rz W10gPSB7CisgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfQUVTTklfSU5JVF9LRVks IDApLCAiYWVzbmlfaW5pdF9rZXkifSwKKysgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBf Rl9BRVNOSV9YVFNfSU5JVF9LRVksIDApLCAiYWVzbmlfeHRzX2luaXRfa2V5In0sCisgICAgIHtF UlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfQUVTX0dDTV9DVFJMLCAwKSwgImFlc19nY21fY3Ry bCJ9LAorICAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9GX0FFU19JTklUX0tFWSwgMCks ICJhZXNfaW5pdF9rZXkifSwKICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBfRl9BRVNf T0NCX0NJUEhFUiwgMCksICJhZXNfb2NiX2NpcGhlciJ9LAogICAgICB7RVJSX1BBQ0soRVJSX0xJ Ql9FVlAsIEVWUF9GX0FFU19UNF9JTklUX0tFWSwgMCksICJhZXNfdDRfaW5pdF9rZXkifSwKKysg ICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCBFVlBfRl9BRVNfVDRfWFRTX0lOSVRfS0VZLCAwKSwK KysgICAgICJhZXNfdDRfeHRzX2luaXRfa2V5In0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VW UCwgRVZQX0ZfQUVTX1dSQVBfQ0lQSEVSLCAwKSwgImFlc193cmFwX2NpcGhlciJ9LAogKyAgICB7 RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9GX0FFU19YVFNfQ0lQSEVSLCAwKSwgImFlc194dHNf Y2lwaGVyIn0sCisrICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfQUVTX1hUU19JTklU X0tFWSwgMCksICJhZXNfeHRzX2luaXRfa2V5In0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VW UCwgRVZQX0ZfQUxHX01PRFVMRV9JTklULCAwKSwgImFsZ19tb2R1bGVfaW5pdCJ9LAogICAgICB7 RVJSX1BBQ0soRVJSX0xJQl9FVlAsIEVWUF9GX0FSSUFfQ0NNX0lOSVRfS0VZLCAwKSwgImFyaWFf Y2NtX2luaXRfa2V5In0sCiAgICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgRVZQX0ZfQVJJQV9H Q01fQ1RSTCwgMCksICJhcmlhX2djbV9jdHJsIn0sCkBAIC0xMjAxLDYgKzE0OTEsMTcgQEAgZGlm ZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9ldnBfZXJyLmMuZmlwcyBvcGVuc3NsLTEu MS4xYi9jcnlwdG8vZXZwL2V2cF8KICAgICAge0VSUl9QQUNLKEVSUl9MSUJfRVZQLCAwLCBFVlBf Ul9VTktOT1dOX0NJUEhFUiksICJ1bmtub3duIGNpcGhlciJ9LAogICAgICB7RVJSX1BBQ0soRVJS X0xJQl9FVlAsIDAsIEVWUF9SX1VOS05PV05fRElHRVNUKSwgInVua25vd24gZGlnZXN0In0sCiAg ICAgIHtFUlJfUEFDSyhFUlJfTElCX0VWUCwgMCwgRVZQX1JfVU5LTk9XTl9PUFRJT04pLCAidW5r bm93biBvcHRpb24ifSwKK0BAIC0yNjYsNiArMjY5LDEwIEBAIHN0YXRpYyBjb25zdCBFUlJfU1RS SU5HX0RBVEEgRVZQX3N0cl9yZWEKKyAgICAgIndyYXAgbW9kZSBub3QgYWxsb3dlZCJ9LAorICAg ICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAsIDAsIEVWUF9SX1dST05HX0ZJTkFMX0JMT0NLX0xFTkdU SCksCisgICAgICJ3cm9uZyBmaW5hbCBibG9jayBsZW5ndGgifSwKKysgICAge0VSUl9QQUNLKEVS Ul9MSUJfRVZQLCAwLCBFVlBfUl9YVFNfREFUQV9VTklUX0lTX1RPT19MQVJHRSksCisrICAgICJ4 dHMgZGF0YSB1bml0IGlzIHRvbyBsYXJnZSJ9LAorKyAgICB7RVJSX1BBQ0soRVJSX0xJQl9FVlAs IDAsIEVWUF9SX1hUU19EVVBMSUNBVEVEX0tFWVMpLAorKyAgICAieHRzIGR1cGxpY2F0ZWQga2V5 cyJ9LAorICAgICB7MCwgTlVMTH0KKyB9OworIAogZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5 cHRvL2V2cC9ldnBfbGliLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL2V2cF9saWIu YwogLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvZXZwX2xpYi5jLmZpcHMJMjAxOS0wMi0y NiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKICsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZw L2V2cF9saWIuYwkyMDE5LTAyLTI4IDExOjMwOjA2LjgwNjc0NTY3MCArMDEwMApAQCAtMTI4MCw2 ICsxNTgxLDgyIEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvbV9zaGExLmMu ZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZXZwL21fc2hhCiAgICAgIGluaXQ1MTIsCiAgICAg IHVwZGF0ZTUxMiwKICAgICAgZmluYWw1MTIsCitkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZXZwL21fc2hhMy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9tX3NoYTMuYwor LS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvbV9zaGEzLmMuZmlwcwkyMDE5LTAyLTI2IDE1 OjE1OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvbV9z aGEzLmMJMjAxOS0wNS0wNiAxNjoxMjoyMy4wMTI4NTE3NDcgKzAyMDAKK0BAIC0yOTIsNyArMjky LDcgQEAgY29uc3QgRVZQX01EICpFVlBfc2hhM18jI2JpdGxlbih2b2lkKQorICAgICAgICAgTklE X3NoYTNfIyNiaXRsZW4sICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgTklE X1JTQV9TSEEzXyMjYml0bGVuLCAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgYml0 bGVuIC8gOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorLSAgICAgICAgRVZQ X01EX0ZMQUdfRElHQUxHSURfQUJTRU5ULCAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgRVZQ X01EX0ZMQUdfRElHQUxHSURfQUJTRU5UIHwgRVZQX01EX0ZMQUdfRklQUywgXAorICAgICAgICAg czM5MHhfc2hhM19pbml0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg czM5MHhfc2hhM191cGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAg czM5MHhfc2hhM19maW5hbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorQEAgLTMwNSw3 ICszMDUsNyBAQCBjb25zdCBFVlBfTUQgKkVWUF9zaGEzXyMjYml0bGVuKHZvaWQpCisgICAgICAg ICBOSURfc2hhM18jI2JpdGxlbiwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICBOSURfUlNBX1NIQTNfIyNiaXRsZW4sICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAg ICBiaXRsZW4gLyA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAg ICBFVlBfTURfRkxBR19ESUdBTEdJRF9BQlNFTlQsICAgICAgICAgICAgICAgICBcCisrICAgICAg ICBFVlBfTURfRkxBR19ESUdBTEdJRF9BQlNFTlQgfCBFVlBfTURfRkxBR19GSVBTLCBcCisgICAg ICAgICBzaGEzX2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgICBzaGEzX3VwZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAg ICAgICBzaGEzX2ZpbmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitAQCAt MzI2LDcgKzMyNiw3IEBAIGNvbnN0IEVWUF9NRCAqRVZQX3NoYWtlIyNiaXRsZW4odm9pZCkKKyAg ICAgICAgIE5JRF9zaGFrZSMjYml0bGVuLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgIGJpdGxlbiAvIDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKy0g ICAgICAgIEVWUF9NRF9GTEFHX1hPRiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysg ICAgICAgIEVWUF9NRF9GTEFHX1hPRiB8IEVWUF9NRF9GTEFHX0ZJUFMsICAgICAgICAgIFwKKyAg ICAgICAgIHMzOTB4X3NoYWtlX2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgIHMzOTB4X3NoYTNfdXBkYXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg ICAgICAgIHMzOTB4X3NoYWtlX2ZpbmFsLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK0BA IC0zNDAsNyArMzQwLDcgQEAgY29uc3QgRVZQX01EICpFVlBfc2hha2UjI2JpdGxlbih2b2lkKQor ICAgICAgICAgTklEX3NoYWtlIyNiaXRsZW4sICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgYml0bGVuIC8gOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor LSAgICAgICAgRVZQX01EX0ZMQUdfWE9GLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor KyAgICAgICAgRVZQX01EX0ZMQUdfWE9GIHwgRVZQX01EX0ZMQUdfRklQUywgICAgICAgICAgXAor ICAgICAgICAgc2hha2VfaW5pdCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgc2hhM191cGRhdGUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor ICAgICAgICAgc2hhM19maW5hbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor QEAgLTM2NCw3ICszNjQsNyBAQCBjb25zdCBFVlBfTUQgKkVWUF9zaGEzXyMjYml0bGVuKHZvaWQp CisgICAgICAgICBOSURfc2hhM18jI2JpdGxlbiwgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgICAgTklEX1JTQV9TSEEzXyMjYml0bGVuLCAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAg IGJpdGxlbiAvIDgsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCistICAgICAgICBFVlBf TURfRkxBR19ESUdBTEdJRF9BQlNFTlQsICAgICAgICAgICAgXAorKyAgICAgICAgRVZQX01EX0ZM QUdfRElHQUxHSURfQUJTRU5UIHwgRVZQX01EX0ZMQUdfRklQUywgXAorICAgICAgICAgc2hhM19p bml0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIHNoYTNfdXBkYXRl LCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICBzaGEzX2ZpbmFsLCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorQEAgLTM4Myw3ICszODMsNyBAQCBjb25zdCBFVlBf TUQgKkVWUF9zaGFrZSMjYml0bGVuKHZvaWQpCisgICAgICAgICBOSURfc2hha2UjI2JpdGxlbiwg ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgIGJpdGxlbiAvIDgsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCistICAgICAgICBFVlBfTURfRkxBR19YT0YsICAgICAgICAgICAgICAgICAg ICAgICAgXAorKyAgICAgICAgRVZQX01EX0ZMQUdfWE9GIHwgRVZQX01EX0ZMQUdfRklQUywgICAg IFwKKyAgICAgICAgIHNoYWtlX2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg ICAgICAgICBzaGEzX3VwZGF0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAg ICAgc2hhM19maW5hbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2RpZmYgLXVwIG9w ZW5zc2wtMS4xLjFiL2NyeXB0by9ldnAvcG1ldGhfbGliLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vZXZwL3BtZXRoX2xpYi5jCistLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wbWV0 aF9saWIuYy5maXBzCTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCisrKysgb3Bl bnNzbC0xLjEuMWIvY3J5cHRvL2V2cC9wbWV0aF9saWIuYwkyMDE5LTA1LTA2IDE1OjExOjMzLjIw NzA5NTk4MyArMDIwMAorQEAgLTEzMSw3ICsxMzEsMTUgQEAgc3RhdGljIEVWUF9QS0VZX0NUWCAq aW50X2N0eF9uZXcoRVZQX1BLRQorICAgICAgICAgcG1ldGggPSBFTkdJTkVfZ2V0X3BrZXlfbWV0 aChlLCBpZCk7CisgICAgIGVsc2UKKyAjZW5kaWYKKysgICAgeworICAgICAgICAgcG1ldGggPSBF VlBfUEtFWV9tZXRoX2ZpbmQoaWQpOworKyNpZmRlZiBPUEVOU1NMX0ZJUFMKKysgICAgICAgIGlm ICghKHBtZXRoLT5mbGFncyAmIEVWUF9QS0VZX0ZMQUdfRklQUykgJiYgRklQU19tb2RlKCkpIHsK KysgICAgICAgICAgICBFVlBlcnIoRVZQX0ZfSU5UX0NUWF9ORVcsIEVWUF9SX0RJU0FCTEVEX0ZP Ul9GSVBTKTsKKysgICAgICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgICAgIH0KKysjZW5kaWYK KysgICAgfQorIAorICAgICBpZiAocG1ldGggPT0gTlVMTCkgeworICNpZm5kZWYgT1BFTlNTTF9O T19FTkdJTkUKIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2J1aWxkLmluZm8u ZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9idWlsZC5pbmZvCiAtLS0gb3BlbnNzbC0x LjEuMWIvY3J5cHRvL2ZpcHMvYnVpbGQuaW5mby5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuODA2 NzQ1NjcwICswMTAwCiArKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvYnVpbGQuaW5mbwky MDE5LTAyLTI4IDExOjMwOjA2LjgwNjc0NTY3MCArMDEwMApAQCAtMTI5MSw3ICsxNjY4LDcgQEAg ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvYnVpbGQuaW5mby5maXBzIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9maXBzL2IKICsgICAgICAgIGZpcHNfcG9zdC5jIGZpcHNfZHJiZ19j dHIuYyBmaXBzX2RyYmdfaGFzaC5jIGZpcHNfZHJiZ19obWFjLmMgXAogKyAgICAgICAgZmlwc19k cmJnX2xpYi5jIGZpcHNfZHJiZ19yYW5kLmMgZmlwc19kcmJnX3NlbGZ0ZXN0LmMgZmlwc19yYW5k X2xpYi5jIFwKICsgICAgICAgIGZpcHNfY21hY19zZWxmdGVzdC5jIGZpcHNfZWNkaF9zZWxmdGVz dC5jIGZpcHNfZWNkc2Ffc2VsZnRlc3QuYyBcCi0rICAgICAgICBmaXBzX2VuYy5jIGZpcHNfbWQu YyBmaXBzX2RoX3NlbGZ0ZXN0LmMgZmlwc19lcnMuYworKyAgICAgICAgZmlwc19kaF9zZWxmdGVz dC5jIGZpcHNfZXJzLmMKICsKICtQUk9HUkFNU19OT19JTlNUPVwKICsgICAgICAgICAgZmlwc19z dGFuZGFsb25lX2htYWMKQEAgLTIzMjksNyArMjcwNiw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9maXBzL2ZpcHNfY21hY19zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIv Y3J5CiArICAgIGludCBydiA9IDE7CiArCiArICAgIGZvciAobiA9IDAsIHQgPSB2ZWN0b3I7IG4g PCBzaXplb2YodmVjdG9yKSAvIHNpemVvZih2ZWN0b3JbMF0pOyBuKyssIHQrKykgewotKyAgICAg ICAgY2lwaGVyID0gRklQU19nZXRfY2lwaGVyYnluaWQodC0+bmlkKTsKKysgICAgICAgIGNpcGhl ciA9IEVWUF9nZXRfY2lwaGVyYnluaWQodC0+bmlkKTsKICsgICAgICAgIGlmICghY2lwaGVyKSB7 CiArICAgICAgICAgICAgcnYgPSAtMTsKICsgICAgICAgICAgICBnb3RvIGVycjsKQEAgLTM0MDUs NyArMzc4Miw3IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZHJi Z19oYXNoLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vCiArewogKyAgICBjb25zdCBFVlBf TUQgKm1kOwogKyAgICBEUkJHX0hBU0hfQ1RYICpoY3R4ID0gJmRjdHgtPmQuaGFzaDsKLSsgICAg bWQgPSBGSVBTX2dldF9kaWdlc3RieW5pZChkY3R4LT50eXBlKTsKKysgICAgbWQgPSBFVlBfZ2V0 X2RpZ2VzdGJ5bmlkKGRjdHgtPnR5cGUpOwogKyAgICBpZiAoIW1kKQogKyAgICAgICAgcmV0dXJu IC0yOwogKyAgICBzd2l0Y2ggKGRjdHgtPnR5cGUpIHsKQEAgLTc2ODMsMjAzICs4MDYwLDEwIEBA IGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZWNkc2Ffc2VsZnRlc3Qu Yy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyCiArfQogKwogKyNlbmRpZgotZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19lbmMuYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0 by9maXBzL2ZpcHNfZW5jLmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Vu Yy5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTU3NDU1MDMgKzAxMDAKLSsrKyBvcGVuc3Ns LTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2VuYy5jCTIwMTktMDItMjggMTE6MzA6MDYuODE0NzQ1 NTIxICswMTAwCi1AQCAtMCwwICsxLDE4OSBAQAotKy8qIGZpcGUvZXZwL2ZpcHNfZW5jLmMgKi8K LSsvKiBDb3B5cmlnaHQgKEMpIDE5OTUtMTk5OCBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNv bSkKLSsgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotKyAqCi0rICogVGhpcyBwYWNrYWdlIGlzIGFu IFNTTCBpbXBsZW1lbnRhdGlvbiB3cml0dGVuCi0rICogYnkgRXJpYyBZb3VuZyAoZWF5QGNyeXB0 c29mdC5jb20pLgotKyAqIFRoZSBpbXBsZW1lbnRhdGlvbiB3YXMgd3JpdHRlbiBzbyBhcyB0byBj b25mb3JtIHdpdGggTmV0c2NhcGVzIFNTTC4KLSsgKiAKLSsgKiBUaGlzIGxpYnJhcnkgaXMgZnJl ZSBmb3IgY29tbWVyY2lhbCBhbmQgbm9uLWNvbW1lcmNpYWwgdXNlIGFzIGxvbmcgYXMKLSsgKiB0 aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIGFoZWFyZWQgdG8uICBUaGUgZm9sbG93aW5nIGNv bmRpdGlvbnMKLSsgKiBhcHBseSB0byBhbGwgY29kZSBmb3VuZCBpbiB0aGlzIGRpc3RyaWJ1dGlv biwgYmUgaXQgdGhlIFJDNCwgUlNBLAotKyAqIGxoYXNoLCBERVMsIGV0Yy4sIGNvZGU7IG5vdCBq dXN0IHRoZSBTU0wgY29kZS4gIFRoZSBTU0wgZG9jdW1lbnRhdGlvbgotKyAqIGluY2x1ZGVkIHdp dGggdGhpcyBkaXN0cmlidXRpb24gaXMgY292ZXJlZCBieSB0aGUgc2FtZSBjb3B5cmlnaHQgdGVy bXMKLSsgKiBleGNlcHQgdGhhdCB0aGUgaG9sZGVyIGlzIFRpbSBIdWRzb24gKHRqaEBjcnlwdHNv ZnQuY29tKS4KLSsgKiAKLSsgKiBDb3B5cmlnaHQgcmVtYWlucyBFcmljIFlvdW5nJ3MsIGFuZCBh cyBzdWNoIGFueSBDb3B5cmlnaHQgbm90aWNlcyBpbgotKyAqIHRoZSBjb2RlIGFyZSBub3QgdG8g YmUgcmVtb3ZlZC4KLSsgKiBJZiB0aGlzIHBhY2thZ2UgaXMgdXNlZCBpbiBhIHByb2R1Y3QsIEVy aWMgWW91bmcgc2hvdWxkIGJlIGdpdmVuIGF0dHJpYnV0aW9uCi0rICogYXMgdGhlIGF1dGhvciBv ZiB0aGUgcGFydHMgb2YgdGhlIGxpYnJhcnkgdXNlZC4KLSsgKiBUaGlzIGNhbiBiZSBpbiB0aGUg Zm9ybSBvZiBhIHRleHR1YWwgbWVzc2FnZSBhdCBwcm9ncmFtIHN0YXJ0dXAgb3IKLSsgKiBpbiBk b2N1bWVudGF0aW9uIChvbmxpbmUgb3IgdGV4dHVhbCkgcHJvdmlkZWQgd2l0aCB0aGUgcGFja2Fn ZS4KLSsgKiAKLSsgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSsgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSsgKiBhcmUgbWV0OgotKyAq IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgY29weXJp Z2h0Ci0rICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv d2luZyBkaXNjbGFpbWVyLgotKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0rICogICAgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotKyAq ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo ZSBkaXN0cmlidXRpb24uCi0rICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9u aW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCi0rICogICAgbXVzdCBkaXNwbGF5 IHRoZSBmb2xsb3dpbmcgYWNrbm93bGVkZ2VtZW50OgotKyAqICAgICJUaGlzIHByb2R1Y3QgaW5j bHVkZXMgY3J5cHRvZ3JhcGhpYyBzb2Z0d2FyZSB3cml0dGVuIGJ5Ci0rICogICAgIEVyaWMgWW91 bmcgKGVheUBjcnlwdHNvZnQuY29tKSIKLSsgKiAgICBUaGUgd29yZCAnY3J5cHRvZ3JhcGhpYycg Y2FuIGJlIGxlZnQgb3V0IGlmIHRoZSByb3VpbmVzIGZyb20gdGhlIGxpYnJhcnkKLSsgKiAgICBi ZWluZyB1c2VkIGFyZSBub3QgY3J5cHRvZ3JhcGhpYyByZWxhdGVkIDotKS4KLSsgKiA0LiBJZiB5 b3UgaW5jbHVkZSBhbnkgV2luZG93cyBzcGVjaWZpYyBjb2RlIChvciBhIGRlcml2YXRpdmUgdGhl cmVvZikgZnJvbSAKLSsgKiAgICB0aGUgYXBwcyBkaXJlY3RvcnkgKGFwcGxpY2F0aW9uIGNvZGUp IHlvdSBtdXN0IGluY2x1ZGUgYW4gYWNrbm93bGVkZ2VtZW50OgotKyAqICAgICJUaGlzIHByb2R1 Y3QgaW5jbHVkZXMgc29mdHdhcmUgd3JpdHRlbiBieSBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0 LmNvbSkiCi0rICogCi0rICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBFUklDIFlPVU5H IGBgQVMgSVMnJyBBTkQKLSsgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSsgKiBJTVBMSUVEIFdBUlJBTlRJRVMg T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQot KyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05U UklCVVRPUlMgQkUgTElBQkxFCi0rICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSsgKiBEQU1BR0VTIChJ TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH T09EUwotKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig QlVTSU5FU1MgSU5URVJSVVBUSU9OKQotKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0rICogTElBQklM SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg SU4gQU5ZIFdBWQotKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSsgKiBTVUNIIERBTUFHRS4KLSsgKiAKLSsg KiBUaGUgbGljZW5jZSBhbmQgZGlzdHJpYnV0aW9uIHRlcm1zIGZvciBhbnkgcHVibGljYWxseSBh dmFpbGFibGUgdmVyc2lvbiBvcgotKyAqIGRlcml2YXRpdmUgb2YgdGhpcyBjb2RlIGNhbm5vdCBi ZSBjaGFuZ2VkLiAgaS5lLiB0aGlzIGNvZGUgY2Fubm90IHNpbXBseSBiZQotKyAqIGNvcGllZCBh bmQgcHV0IHVuZGVyIGFub3RoZXIgZGlzdHJpYnV0aW9uIGxpY2VuY2UKLSsgKiBbaW5jbHVkaW5n IHRoZSBHTlUgUHVibGljIExpY2VuY2UuXQotKyAqLwotKwotKyNpbmNsdWRlIDxzdGRpby5oPgot KyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KLSsjaW5jbHVk ZSA8b3BlbnNzbC9lcnIuaD4KLSsjaW5jbHVkZSA8b3BlbnNzbC9maXBzLmg+Ci0rCi0rY29uc3Qg RVZQX0NJUEhFUiAqRklQU19nZXRfY2lwaGVyYnluaWQoaW50IG5pZCkKLSt7Ci0rICAgIHN3aXRj aCAobmlkKSB7Ci0rICAgIGNhc2UgTklEX2Flc18xMjhfY2JjOgotKyAgICAgICAgcmV0dXJuIEVW UF9hZXNfMTI4X2NiYygpOwotKwotKyAgICBjYXNlIE5JRF9hZXNfMTI4X2NjbToKLSsgICAgICAg IHJldHVybiBFVlBfYWVzXzEyOF9jY20oKTsKLSsKLSsgICAgY2FzZSBOSURfYWVzXzEyOF9jZmIx OgotKyAgICAgICAgcmV0dXJuIEVWUF9hZXNfMTI4X2NmYjEoKTsKLSsKLSsgICAgY2FzZSBOSURf YWVzXzEyOF9jZmIxMjg6Ci0rICAgICAgICByZXR1cm4gRVZQX2Flc18xMjhfY2ZiMTI4KCk7Ci0r Ci0rICAgIGNhc2UgTklEX2Flc18xMjhfY2ZiODoKLSsgICAgICAgIHJldHVybiBFVlBfYWVzXzEy OF9jZmI4KCk7Ci0rCi0rICAgIGNhc2UgTklEX2Flc18xMjhfY3RyOgotKyAgICAgICAgcmV0dXJu IEVWUF9hZXNfMTI4X2N0cigpOwotKwotKyAgICBjYXNlIE5JRF9hZXNfMTI4X2VjYjoKLSsgICAg ICAgIHJldHVybiBFVlBfYWVzXzEyOF9lY2IoKTsKLSsKLSsgICAgY2FzZSBOSURfYWVzXzEyOF9n Y206Ci0rICAgICAgICByZXR1cm4gRVZQX2Flc18xMjhfZ2NtKCk7Ci0rCi0rICAgIGNhc2UgTklE X2Flc18xMjhfb2ZiMTI4OgotKyAgICAgICAgcmV0dXJuIEVWUF9hZXNfMTI4X29mYigpOwotKwot KyAgICBjYXNlIE5JRF9hZXNfMTI4X3h0czoKLSsgICAgICAgIHJldHVybiBFVlBfYWVzXzEyOF94 dHMoKTsKLSsKLSsgICAgY2FzZSBOSURfYWVzXzE5Ml9jYmM6Ci0rICAgICAgICByZXR1cm4gRVZQ X2Flc18xOTJfY2JjKCk7Ci0rCi0rICAgIGNhc2UgTklEX2Flc18xOTJfY2NtOgotKyAgICAgICAg cmV0dXJuIEVWUF9hZXNfMTkyX2NjbSgpOwotKwotKyAgICBjYXNlIE5JRF9hZXNfMTkyX2NmYjE6 Ci0rICAgICAgICByZXR1cm4gRVZQX2Flc18xOTJfY2ZiMSgpOwotKwotKyAgICBjYXNlIE5JRF9h ZXNfMTkyX2NmYjEyODoKLSsgICAgICAgIHJldHVybiBFVlBfYWVzXzE5Ml9jZmIxMjgoKTsKLSsK LSsgICAgY2FzZSBOSURfYWVzXzE5Ml9jZmI4OgotKyAgICAgICAgcmV0dXJuIEVWUF9hZXNfMTky X2NmYjgoKTsKLSsKLSsgICAgY2FzZSBOSURfYWVzXzE5Ml9jdHI6Ci0rICAgICAgICByZXR1cm4g RVZQX2Flc18xOTJfY3RyKCk7Ci0rCi0rICAgIGNhc2UgTklEX2Flc18xOTJfZWNiOgotKyAgICAg ICAgcmV0dXJuIEVWUF9hZXNfMTkyX2VjYigpOwotKwotKyAgICBjYXNlIE5JRF9hZXNfMTkyX2dj bToKLSsgICAgICAgIHJldHVybiBFVlBfYWVzXzE5Ml9nY20oKTsKLSsKLSsgICAgY2FzZSBOSURf YWVzXzE5Ml9vZmIxMjg6Ci0rICAgICAgICByZXR1cm4gRVZQX2Flc18xOTJfb2ZiKCk7Ci0rCi0r ICAgIGNhc2UgTklEX2Flc18yNTZfY2JjOgotKyAgICAgICAgcmV0dXJuIEVWUF9hZXNfMjU2X2Ni YygpOwotKwotKyAgICBjYXNlIE5JRF9hZXNfMjU2X2NjbToKLSsgICAgICAgIHJldHVybiBFVlBf YWVzXzI1Nl9jY20oKTsKLSsKLSsgICAgY2FzZSBOSURfYWVzXzI1Nl9jZmIxOgotKyAgICAgICAg cmV0dXJuIEVWUF9hZXNfMjU2X2NmYjEoKTsKLSsKLSsgICAgY2FzZSBOSURfYWVzXzI1Nl9jZmIx Mjg6Ci0rICAgICAgICByZXR1cm4gRVZQX2Flc18yNTZfY2ZiMTI4KCk7Ci0rCi0rICAgIGNhc2Ug TklEX2Flc18yNTZfY2ZiODoKLSsgICAgICAgIHJldHVybiBFVlBfYWVzXzI1Nl9jZmI4KCk7Ci0r Ci0rICAgIGNhc2UgTklEX2Flc18yNTZfY3RyOgotKyAgICAgICAgcmV0dXJuIEVWUF9hZXNfMjU2 X2N0cigpOwotKwotKyAgICBjYXNlIE5JRF9hZXNfMjU2X2VjYjoKLSsgICAgICAgIHJldHVybiBF VlBfYWVzXzI1Nl9lY2IoKTsKLSsKLSsgICAgY2FzZSBOSURfYWVzXzI1Nl9nY206Ci0rICAgICAg ICByZXR1cm4gRVZQX2Flc18yNTZfZ2NtKCk7Ci0rCi0rICAgIGNhc2UgTklEX2Flc18yNTZfb2Zi MTI4OgotKyAgICAgICAgcmV0dXJuIEVWUF9hZXNfMjU2X29mYigpOwotKwotKyAgICBjYXNlIE5J RF9hZXNfMjU2X3h0czoKLSsgICAgICAgIHJldHVybiBFVlBfYWVzXzI1Nl94dHMoKTsKLSsKLSsg ICAgY2FzZSBOSURfZGVzX2VkZV9lY2I6Ci0rICAgICAgICByZXR1cm4gRVZQX2Rlc19lZGUoKTsK LSsKLSsgICAgY2FzZSBOSURfZGVzX2VkZTNfZWNiOgotKyAgICAgICAgcmV0dXJuIEVWUF9kZXNf ZWRlMygpOwotKwotKyAgICBjYXNlIE5JRF9kZXNfZWRlM19jYmM6Ci0rICAgICAgICByZXR1cm4g RVZQX2Rlc19lZGUzX2NiYygpOwotKwotKyAgICBjYXNlIE5JRF9kZXNfZWRlM19jZmIxOgotKyAg ICAgICAgcmV0dXJuIEVWUF9kZXNfZWRlM19jZmIxKCk7Ci0rCi0rICAgIGNhc2UgTklEX2Rlc19l ZGUzX2NmYjY0OgotKyAgICAgICAgcmV0dXJuIEVWUF9kZXNfZWRlM19jZmI2NCgpOwotKwotKyAg ICBjYXNlIE5JRF9kZXNfZWRlM19jZmI4OgotKyAgICAgICAgcmV0dXJuIEVWUF9kZXNfZWRlM19j ZmI4KCk7Ci0rCi0rICAgIGNhc2UgTklEX2Rlc19lZGUzX29mYjY0OgotKyAgICAgICAgcmV0dXJu IEVWUF9kZXNfZWRlM19vZmIoKTsKLSsKLSsgICAgY2FzZSBOSURfZGVzX2VkZV9jYmM6Ci0rICAg ICAgICByZXR1cm4gRVZQX2Rlc19lZGVfY2JjKCk7Ci0rCi0rICAgIGNhc2UgTklEX2Rlc19lZGVf Y2ZiNjQ6Ci0rICAgICAgICByZXR1cm4gRVZQX2Rlc19lZGVfY2ZiNjQoKTsKLSsKLSsgICAgY2Fz ZSBOSURfZGVzX2VkZV9vZmI2NDoKLSsgICAgICAgIHJldHVybiBFVlBfZGVzX2VkZV9vZmIoKTsK LSsKLSsgICAgZGVmYXVsdDoKLSsgICAgICAgIHJldHVybiBOVUxMOwotKwotKyAgICB9Ci0rfQog ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19lcnIuaC5maXBzIG9wZW5z c2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZXJyLmgKLS0tLSBvcGVuc3NsLTEuMS4xYi9jcnlw dG8vZmlwcy9maXBzX2Vyci5oLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTU3NDU1MDMgKzAx MDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX2Vyci5oCTIwMTktMDItMjgg MTE6MzA6MDYuODE1NzQ1NTAzICswMTAwCi1AQCAtMCwwICsxLDE5NiBAQAorLS0tIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZXJyLmguZmlwcwkyMDE5LTA1LTA2IDE2OjA4OjQ2Ljc5 MjU5ODIxMSArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfZXJyLmgJ MjAxOS0wNS0wNiAxNjoxOTo1Ni40MDM5OTM1NTEgKzAyMDAKK0BAIC0wLDAgKzEsMTk3IEBACiAr LyogY3J5cHRvL2ZpcHNfZXJyLmggKi8KICsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAo YykgMTk5OS0yMDExIFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgpA QCAtNzk4MSw2ICs4MTY1LDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMv Zmlwc19lcnIuaC5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2YKICsgICAge0VSUl9G VU5DKEZJUFNfRl9GSVBTX1JBTkRfU0VUX01FVEhPRCksICJGSVBTX3JhbmRfc2V0X21ldGhvZCJ9 LAogKyAgICB7RVJSX0ZVTkMoRklQU19GX0ZJUFNfUkFORF9TVEFUVVMpLCAiRklQU19yYW5kX3N0 YXR1cyJ9LAogKyAgICB7RVJSX0ZVTkMoRklQU19GX0ZJUFNfUlNBX0JVSUxUSU5fS0VZR0VOKSwg ImZpcHNfcnNhX2J1aWx0aW5fa2V5Z2VuIn0sCisrICAgIHtFUlJfRlVOQyhGSVBTX0ZfRklQU19T RUxGVEVTVCksICJGSVBTX3NlbGZ0ZXN0In0sCiArICAgIHtFUlJfRlVOQyhGSVBTX0ZfRklQU19T RUxGVEVTVF9BRVMpLCAiRklQU19zZWxmdGVzdF9hZXMifSwKICsgICAge0VSUl9GVU5DKEZJUFNf Rl9GSVBTX1NFTEZURVNUX0FFU19DQ00pLCAiRklQU19zZWxmdGVzdF9hZXNfY2NtIn0sCiArICAg IHtFUlJfRlVOQyhGSVBTX0ZfRklQU19TRUxGVEVTVF9BRVNfR0NNKSwgIkZJUFNfc2VsZnRlc3Rf YWVzX2djbSJ9LApAQCAtODMwMCwxNTggKzg0ODUsMTAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2ZpcHMvZmlwc19sb2NsLmguZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlw cy8KICt9CiArIyBlbmRpZgogKyNlbmRpZgotZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRv L2ZpcHMvZmlwc19tZC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19tZC5j Ci0tLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19tZC5jLmZpcHMJMjAxOS0wMi0y OCAxMTozMDowNi44MTU3NDU1MDMgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlw cy9maXBzX21kLmMJMjAxOS0wMi0yOCAxMTozMDowNi44MTU3NDU1MDMgKzAxMDAKLUBAIC0wLDAg KzEsMTQ0IEBACi0rLyogZmlwcy9ldnAvZmlwc19tZC5jICovCi0rLyogQ29weXJpZ2h0IChDKSAx OTk1LTE5OTggRXJpYyBZb3VuZyAoZWF5QGNyeXB0c29mdC5jb20pCi0rICogQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KLSsgKgotKyAqIFRoaXMgcGFja2FnZSBpcyBhbiBTU0wgaW1wbGVtZW50YXRpb24g d3JpdHRlbgotKyAqIGJ5IEVyaWMgWW91bmcgKGVheUBjcnlwdHNvZnQuY29tKS4KLSsgKiBUaGUg aW1wbGVtZW50YXRpb24gd2FzIHdyaXR0ZW4gc28gYXMgdG8gY29uZm9ybSB3aXRoIE5ldHNjYXBl cyBTU0wuCi0rICogCi0rICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgZm9yIGNvbW1lcmNpYWwgYW5k IG5vbi1jb21tZXJjaWFsIHVzZSBhcyBsb25nIGFzCi0rICogdGhlIGZvbGxvd2luZyBjb25kaXRp b25zIGFyZSBhaGVhcmVkIHRvLiAgVGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0rICogYXBwbHkg dG8gYWxsIGNvZGUgZm91bmQgaW4gdGhpcyBkaXN0cmlidXRpb24sIGJlIGl0IHRoZSBSQzQsIFJT QSwKLSsgKiBsaGFzaCwgREVTLCBldGMuLCBjb2RlOyBub3QganVzdCB0aGUgU1NMIGNvZGUuICBU aGUgU1NMIGRvY3VtZW50YXRpb24KLSsgKiBpbmNsdWRlZCB3aXRoIHRoaXMgZGlzdHJpYnV0aW9u IGlzIGNvdmVyZWQgYnkgdGhlIHNhbWUgY29weXJpZ2h0IHRlcm1zCi0rICogZXhjZXB0IHRoYXQg dGhlIGhvbGRlciBpcyBUaW0gSHVkc29uICh0amhAY3J5cHRzb2Z0LmNvbSkuCi0rICogCi0rICog Q29weXJpZ2h0IHJlbWFpbnMgRXJpYyBZb3VuZydzLCBhbmQgYXMgc3VjaCBhbnkgQ29weXJpZ2h0 IG5vdGljZXMgaW4KLSsgKiB0aGUgY29kZSBhcmUgbm90IHRvIGJlIHJlbW92ZWQuCi0rICogSWYg dGhpcyBwYWNrYWdlIGlzIHVzZWQgaW4gYSBwcm9kdWN0LCBFcmljIFlvdW5nIHNob3VsZCBiZSBn aXZlbiBhdHRyaWJ1dGlvbgotKyAqIGFzIHRoZSBhdXRob3Igb2YgdGhlIHBhcnRzIG9mIHRoZSBs aWJyYXJ5IHVzZWQuCi0rICogVGhpcyBjYW4gYmUgaW4gdGhlIGZvcm0gb2YgYSB0ZXh0dWFsIG1l c3NhZ2UgYXQgcHJvZ3JhbSBzdGFydHVwIG9yCi0rICogaW4gZG9jdW1lbnRhdGlvbiAob25saW5l IG9yIHRleHR1YWwpIHByb3ZpZGVkIHdpdGggdGhlIHBhY2thZ2UuCi0rICogCi0rICogUmVkaXN0 cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo b3V0Ci0rICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv bGxvd2luZyBjb25kaXRpb25zCi0rICogYXJlIG1ldDoKLSsgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGNvcHlyaWdodAotKyAqICAgIG5vdGljZSwg dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSsg KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi b3ZlIGNvcHlyaWdodAotKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSsgKiAgICBkb2N1bWVudGF0aW9uIGFu ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKyAq IDMuIEFsbCBhZHZlcnRpc2luZyBtYXRlcmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ug b2YgdGhpcyBzb2Z0d2FyZQotKyAqICAgIG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25v d2xlZGdlbWVudDoKLSsgKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIGNyeXB0b2dyYXBoaWMg c29mdHdhcmUgd3JpdHRlbiBieQotKyAqICAgICBFcmljIFlvdW5nIChlYXlAY3J5cHRzb2Z0LmNv bSkiCi0rICogICAgVGhlIHdvcmQgJ2NyeXB0b2dyYXBoaWMnIGNhbiBiZSBsZWZ0IG91dCBpZiB0 aGUgcm91aW5lcyBmcm9tIHRoZSBsaWJyYXJ5Ci0rICogICAgYmVpbmcgdXNlZCBhcmUgbm90IGNy eXB0b2dyYXBoaWMgcmVsYXRlZCA6LSkuCi0rICogNC4gSWYgeW91IGluY2x1ZGUgYW55IFdpbmRv d3Mgc3BlY2lmaWMgY29kZSAob3IgYSBkZXJpdmF0aXZlIHRoZXJlb2YpIGZyb20gCi0rICogICAg dGhlIGFwcHMgZGlyZWN0b3J5IChhcHBsaWNhdGlvbiBjb2RlKSB5b3UgbXVzdCBpbmNsdWRlIGFu IGFja25vd2xlZGdlbWVudDoKLSsgKiAgICAiVGhpcyBwcm9kdWN0IGluY2x1ZGVzIHNvZnR3YXJl IHdyaXR0ZW4gYnkgVGltIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5jb20pIgotKyAqIAotKyAqIFRI SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVJJQyBZT1VORyBgYEFTIElTJycgQU5ECi0rICog QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN SVRFRCBUTywgVEhFCi0rICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLSsgKiBBUkUgRElTQ0xBSU1FRC4g IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQot KyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM QVJZLCBPUiBDT05TRVFVRU5USUFMCi0rICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSsgKiBPUiBTRVJWSUNF UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP TikKLSsgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSsgKiBPVVQg T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ QklMSVRZIE9GCi0rICogU1VDSCBEQU1BR0UuCi0rICogCi0rICogVGhlIGxpY2VuY2UgYW5kIGRp c3RyaWJ1dGlvbiB0ZXJtcyBmb3IgYW55IHB1YmxpY2FsbHkgYXZhaWxhYmxlIHZlcnNpb24gb3IK LSsgKiBkZXJpdmF0aXZlIG9mIHRoaXMgY29kZSBjYW5ub3QgYmUgY2hhbmdlZC4gIGkuZS4gdGhp cyBjb2RlIGNhbm5vdCBzaW1wbHkgYmUKLSsgKiBjb3BpZWQgYW5kIHB1dCB1bmRlciBhbm90aGVy IGRpc3RyaWJ1dGlvbiBsaWNlbmNlCi0rICogW2luY2x1ZGluZyB0aGUgR05VIFB1YmxpYyBMaWNl bmNlLl0KLSsgKi8KLSsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKyAqIENvcHlyaWdodCAoYykgMTk5OC0yMDAx IFRoZSBPcGVuU1NMIFByb2plY3QuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotKyAqCi0rICogUmVk aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3 aXRob3V0Ci0rICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl IGZvbGxvd2luZyBjb25kaXRpb25zCi0rICogYXJlIG1ldDoKLSsgKgotKyAqIDEuIFJlZGlzdHJp YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0r ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk aXNjbGFpbWVyLiAKLSsgKgotKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0rICogICAgbm90aWNlLCB0aGlzIGxp c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluCi0rICogICAg dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo ZQotKyAqICAgIGRpc3RyaWJ1dGlvbi4KLSsgKgotKyAqIDMuIEFsbCBhZHZlcnRpc2luZyBtYXRl cmlhbHMgbWVudGlvbmluZyBmZWF0dXJlcyBvciB1c2Ugb2YgdGhpcwotKyAqICAgIHNvZnR3YXJl IG11c3QgZGlzcGxheSB0aGUgZm9sbG93aW5nIGFja25vd2xlZGdtZW50OgotKyAqICAgICJUaGlz IHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVuU1NMIFByb2pl Y3QKLSsgKiAgICBmb3IgdXNlIGluIHRoZSBPcGVuU1NMIFRvb2xraXQuIChodHRwOi8vd3d3Lm9w ZW5zc2wub3JnLykiCi0rICoKLSsgKiA0LiBUaGUgbmFtZXMgIk9wZW5TU0wgVG9vbGtpdCIgYW5k ICJPcGVuU1NMIFByb2plY3QiIG11c3Qgbm90IGJlIHVzZWQgdG8KLSsgKiAgICBlbmRvcnNlIG9y IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAotKyAq ICAgIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gRm9yIHdyaXR0ZW4gcGVybWlzc2lvbiwgcGxl YXNlIGNvbnRhY3QKLSsgKiAgICBvcGVuc3NsLWNvcmVAb3BlbnNzbC5vcmcuCi0rICoKLSsgKiA1 LiBQcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSBtYXkgbm90IGJlIGNhbGxlZCAi T3BlblNTTCIKLSsgKiAgICBub3IgbWF5ICJPcGVuU1NMIiBhcHBlYXIgaW4gdGhlaXIgbmFtZXMg d2l0aG91dCBwcmlvciB3cml0dGVuCi0rICogICAgcGVybWlzc2lvbiBvZiB0aGUgT3BlblNTTCBQ cm9qZWN0LgotKyAqCi0rICogNi4gUmVkaXN0cmlidXRpb25zIG9mIGFueSBmb3JtIHdoYXRzb2V2 ZXIgbXVzdCByZXRhaW4gdGhlIGZvbGxvd2luZwotKyAqICAgIGFja25vd2xlZGdtZW50OgotKyAq ICAgICJUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IHRoZSBPcGVu U1NMIFByb2plY3QKLSsgKiAgICBmb3IgdXNlIGluIHRoZSBPcGVuU1NMIFRvb2xraXQgKGh0dHA6 Ly93d3cub3BlbnNzbC5vcmcvKSIKLSsgKgotKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg QlkgVEhFIE9wZW5TU0wgUFJPSkVDVCBgYEFTIElTJycgQU5EIEFOWQotKyAqIEVYUFJFU1NFRCBP UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK LSsgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIKLSsgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg U0hBTEwgVEhFIE9wZW5TU0wgUFJPSkVDVCBPUgotKyAqIElUUyBDT05UUklCVVRPUlMgQkUgTElB QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSsgKiBTUEVDSUFMLCBF WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQKLSsgKiBO T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF UzsKLSsgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS VVBUSU9OKQotKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwKLSsgKiBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0rICogQVJJU0lORyBJTiBBTlkgV0FZ IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRAotKyAqIE9G IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSsgKiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotKyAqCi0r ICogVGhpcyBwcm9kdWN0IGluY2x1ZGVzIGNyeXB0b2dyYXBoaWMgc29mdHdhcmUgd3JpdHRlbiBi eSBFcmljIFlvdW5nCi0rICogKGVheUBjcnlwdHNvZnQuY29tKS4gIFRoaXMgcHJvZHVjdCBpbmNs dWRlcyBzb2Z0d2FyZSB3cml0dGVuIGJ5IFRpbQotKyAqIEh1ZHNvbiAodGpoQGNyeXB0c29mdC5j b20pLgotKyAqCi0rICovCi0rCi0rLyogTWluaW1hbCBzdGFuZGFsb25lIEZJUFMgdmVyc2lvbnMg b2YgRGlnZXN0IG9wZXJhdGlvbnMgKi8KLSsKLSsjZGVmaW5lIE9QRU5TU0xfRklQU0FQSQotKwot KyNpbmNsdWRlIDxzdGRpby5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8b3Bl bnNzbC9vYmplY3RzLmg+Ci0rI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+Ci0rI2luY2x1ZGUgPG9w ZW5zc2wvZXJyLmg+Ci0rI2luY2x1ZGUgPG9wZW5zc2wvZmlwcy5oPgotKwotK2NvbnN0IEVWUF9N RCAqRklQU19nZXRfZGlnZXN0YnluaWQoaW50IG5pZCkKLSt7Ci0rICAgIHN3aXRjaCAobmlkKSB7 Ci0rICAgIGNhc2UgTklEX3NoYTE6Ci0rICAgICAgICByZXR1cm4gRVZQX3NoYTEoKTsKLSsKLSsg ICAgY2FzZSBOSURfc2hhMjI0OgotKyAgICAgICAgcmV0dXJuIEVWUF9zaGEyMjQoKTsKLSsKLSsg ICAgY2FzZSBOSURfc2hhMjU2OgotKyAgICAgICAgcmV0dXJuIEVWUF9zaGEyNTYoKTsKLSsKLSsg ICAgY2FzZSBOSURfc2hhMzg0OgotKyAgICAgICAgcmV0dXJuIEVWUF9zaGEzODQoKTsKLSsKLSsg ICAgY2FzZSBOSURfc2hhNTEyOgotKyAgICAgICAgcmV0dXJuIEVWUF9zaGE1MTIoKTsKLSsKLSsg ICAgZGVmYXVsdDoKLSsgICAgICAgIHJldHVybiBOVUxMOwotKyAgICB9Ci0rfQogZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMuZmlwcyBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZmlwcy9maXBzX3Bvc3QuYwotLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBz L2ZpcHNfcG9zdC5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MTY3NDU0ODQgKzAxMDAKLSsr KyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3Bvc3QuYwkyMDE5LTAyLTI4IDExOjMw OjA2LjgxNjc0NTQ4NCArMDEwMAotQEAgLTAsMCArMSwyMjIgQEAKKy0tLSBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZmlwcy9maXBzX3Bvc3QuYy5maXBzCTIwMTktMDUtMDYgMTY6MDg6NDYuNzk0NTk4 MTc3ICswMjAwCisrKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19wb3N0LmMJMjAx OS0wNS0wNiAxNjowODo0Ni43OTQ1OTgxNzcgKzAyMDAKK0BAIC0wLDAgKzEsMjI0IEBACiArLyog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVGhlIE9wZW5TU0wgUHJvamVjdC4g IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiArICoKQEAgLTg1MzMsNiArODU3MCw4IEBAIGRpZmYgLXVw IG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfcG9zdC5jLmZpcHMgb3BlbnNzbC0xLjEu MWIvY3J5cHRvL2ZpcHMvCiArICAgICAgICBydiA9IDA7CiArICAgIGlmICghRklQU19zZWxmdGVz dF9zaGEyKCkpCiArICAgICAgICBydiA9IDA7CisrICAgIGlmICghRklQU19zZWxmdGVzdF9zaGEz KCkpCisrICAgICAgICBydiA9IDA7CiArICAgIGlmICghRklQU19zZWxmdGVzdF9obWFjKCkpCiAr ICAgICAgICBydiA9IDA7CiArICAgIGlmICghRklQU19zZWxmdGVzdF9jbWFjKCkpCkBAIC05NDYy LDkgKzk1MDEsOSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3Jz YV9zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cAogKwogKyNlbmRpZiAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogZGVmIE9QRU5TU0xfRklQUyAqLwogZGlmZiAtdXAgb3BlbnNz bC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19zaGFfc2VsZnRlc3QuYy5maXBzIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9maXBzL2ZpcHNfc2hhX3NlbGZ0ZXN0LmMKLS0tLSBvcGVuc3NsLTEuMS4xYi9j cnlwdG8vZmlwcy9maXBzX3NoYV9zZWxmdGVzdC5jLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44 MTc3NDU0NjYgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBzX3NoYV9z ZWxmdGVzdC5jCTIwMTktMDItMjggMTE6MzA6MDYuODE2NzQ1NDg0ICswMTAwCi1AQCAtMCwwICsx LDEzOCBAQAorLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfc2hhX3NlbGZ0ZXN0 LmMuZmlwcwkyMDE5LTA1LTA2IDE2OjA4OjQ2Ljc5NTU5ODE1OSArMDIwMAorKysrIG9wZW5zc2wt MS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfc2hhX3NlbGZ0ZXN0LmMJMjAxOS0wNS0wNiAxNzozNTo0 MC4yMTEzMTY4ODAgKzAyMDAKK0BAIC0wLDAgKzEsMjIzIEBACiArLyogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsg KiBDb3B5cmlnaHQgKGMpIDIwMDMgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCiArICoKQEAgLTk2MDIsNiArOTY0MSw5MSBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9jcnlwdG8vZmlwcy9maXBzX3NoYV9zZWxmdGVzdC5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5 cAogKyAgICByZXR1cm4gMTsKICt9CiArCisrc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgbXNn X3NoYTNfMjU2W10gPSB7CisrICAgIDB4YTEsIDB4ZDcsIDB4Y2UsIDB4NTEsIDB4MDQsIDB4ZWIs IDB4MjUsIDB4ZDYsCisrICAgIDB4MTMsIDB4MWIsIDB4YjgsIDB4ZjYsIDB4NmUsIDB4MWYsIDB4 YjEsIDB4M2YsCisrICAgIDB4MzUsIDB4MjMKKyt9OworKworK3N0YXRpYyBjb25zdCB1bnNpZ25l ZCBjaGFyIGRpZ19zaGEzXzI1NltdID0geworKyAgICAweGVlLCAweDkwLCAweDYyLCAweGYzLCAw eDk3LCAweDIwLCAweGI4LCAweDIxLAorKyAgICAweGI4LCAweDhiLCAweGU1LCAweGU2LCAweDQ2 LCAweDIxLCAweGQ3LCAweGUwLAorKyAgICAweGNhLCAweDAyLCAweDZhLCAweDlmLCAweGU3LCAw eDI0LCAweDhkLCAweDc4LAorKyAgICAweDE1LCAweDBiLCAweDE0LCAweGJkLCAweGJhLCAweGE0 LCAweDBiLCAweGVkCisrfTsKKysKKytzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBtc2dfc2hh M181MTJbXSA9IHsKKysgICAgMHgxMywgMHgzYiwgMHg0OSwgMHg3YiwgMHgwMCwgMHg5MywgMHgy NywgMHg3MywKKysgICAgMHhhNSwgMHgzYiwgMHhhOSwgMHhiZiwgMHg4ZSwgMHg2MSwgMHhkNSwg MHg5ZiwKKysgICAgMHgwNSwgMHhmNAorK307CisrCisrc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNo YXIgZGlnX3NoYTNfNTEyW10gPSB7CisrICAgIDB4NzgsIDB4MzksIDB4NjQsIDB4YTEsIDB4Y2Ys IDB4NDEsIDB4ZDYsIDB4ZDIsCisrICAgIDB4MTAsIDB4YTgsIDB4ZDcsIDB4YzgsIDB4MWMsIDB4 ZTYsIDB4OTcsIDB4MGEsCisrICAgIDB4YTYsIDB4MmMsIDB4OTAsIDB4NTMsIDB4Y2IsIDB4ODks IDB4ZTEsIDB4NWYsCisrICAgIDB4ODgsIDB4MDUsIDB4MzksIDB4NTcsIDB4ZWMsIDB4ZjYsIDB4 MDcsIDB4ZjQsCisrICAgIDB4MmEsIDB4ZjAsIDB4ODgsIDB4MDQsIDB4ZTcsIDB4NmYsIDB4MmYs IDB4YmQsCisrICAgIDB4YmIsIDB4MzEsIDB4ODAsIDB4OWMsIDB4OWUsIDB4ZWYsIDB4YzYsIDB4 MGUsCisrICAgIDB4MjMsIDB4M2QsIDB4NjYsIDB4MjQsIDB4MzYsIDB4N2EsIDB4M2IsIDB4OWMs CisrICAgIDB4MzAsIDB4ZjgsIDB4ZWUsIDB4NWYsIDB4NjUsIDB4YmUsIDB4NTYsIDB4YWMKKyt9 OworKworK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIG1zZ19zaGFrZV8xMjhbXSA9IHsKKysg ICAgMHg0MywgMHhiZCwgMHhiMSwgMHgxZSwgMHhhYywgMHg3MSwgMHgwMywgMHgxZiwKKysgICAg MHgwMiwgMHhhMSwgMHgxYywgMHgxNSwgMHhhMSwgMHg4OCwgMHg1ZiwgMHhhNCwKKysgICAgMHgy OCwgMHg5OAorK307CisrCisrc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGlnX3NoYWtlXzEy OFtdID0geworKyAgICAweGRlLCAweDY4LCAweDAyLCAweDdkLCAweGExLCAweDMwLCAweDY2LCAw eDNhLAorKyAgICAweDczLCAweDk4LCAweDBlLCAweDM1LCAweDI1LCAweGI4LCAweDhjLCAweDc1 CisrfTsKKysKKytzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBtc2dfc2hha2VfMjU2W10gPSB7 CisrICAgIDB4OGYsIDB4ODQsIDB4YTMsIDB4N2QsIDB4YmQsIDB4NDQsIDB4ZDAsIDB4ZjYsCisr ICAgIDB4OTUsIDB4MzYsIDB4YzUsIDB4ZjQsIDB4NDQsIDB4NmIsIDB4YTMsIDB4MjMsCisrICAg IDB4OWIsIDB4ZmMKKyt9OworKworK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRpZ19zaGFr ZV8yNTZbXSA9IHsKKysgICAgMHgwNSwgMHhjYSwgMHg4MywgMHg1ZSwgMHgwYywgMHhkYiwgMHhm YSwgMHhmNSwKKysgICAgMHg5NSwgMHhjNiwgMHg4NiwgMHg3ZSwgMHgyZCwgMHg5ZCwgMHhiOSwg MHgzZiwKKysgICAgMHhjYSwgMHg5YywgMHg4YiwgMHhjNiwgMHg2NSwgMHgwMiwgMHgyZSwgMHhk ZCwKKysgICAgMHg2ZiwgMHhlNywgMHhiMywgMHhkYSwgMHg1ZSwgMHgwNywgMHhjNCwgMHhjZgor K307CisrCisraW50IEZJUFNfc2VsZnRlc3Rfc2hhMyh2b2lkKQorK3sKKysgICAgdW5zaWduZWQg Y2hhciBtZFtTSEE1MTJfRElHRVNUX0xFTkdUSF07CisrCisrICAgIEVWUF9EaWdlc3QobXNnX3No YTNfMjU2LCBzaXplb2YobXNnX3NoYTNfMjU2KSwgbWQsIE5VTEwsIEVWUF9zaGEzXzI1NigpLCBO VUxMKTsKKysgICAgaWYgKG1lbWNtcChkaWdfc2hhM18yNTYsIG1kLCBzaXplb2YoZGlnX3NoYTNf MjU2KSkpIHsKKysgICAgICAgIEZJUFNlcnIoRklQU19GX0ZJUFNfU0VMRlRFU1QsIEZJUFNfUl9T RUxGVEVTVF9GQUlMRUQpOworKyAgICAgICAgcmV0dXJuIDA7CisrICAgIH0KKysKKysgICAgRVZQ X0RpZ2VzdChtc2dfc2hhM181MTIsIHNpemVvZihtc2dfc2hhM181MTIpLCBtZCwgTlVMTCwgRVZQ X3NoYTNfNTEyKCksIE5VTEwpOworKyAgICBpZiAobWVtY21wKGRpZ19zaGEzXzUxMiwgbWQsIHNp emVvZihkaWdfc2hhM181MTIpKSkgeworKyAgICAgICAgRklQU2VycihGSVBTX0ZfRklQU19TRUxG VEVTVCwgRklQU19SX1NFTEZURVNUX0ZBSUxFRCk7CisrICAgICAgICByZXR1cm4gMDsKKysgICAg fQorKworKyAgICBFVlBfRGlnZXN0KG1zZ19zaGFrZV8xMjgsIHNpemVvZihtc2dfc2hha2VfMTI4 KSwgbWQsIE5VTEwsIEVWUF9zaGFrZTEyOCgpLCBOVUxMKTsKKysgICAgaWYgKG1lbWNtcChkaWdf c2hha2VfMTI4LCBtZCwgc2l6ZW9mKGRpZ19zaGFrZV8xMjgpKSkgeworKyAgICAgICAgRklQU2Vy cihGSVBTX0ZfRklQU19TRUxGVEVTVCwgRklQU19SX1NFTEZURVNUX0ZBSUxFRCk7CisrICAgICAg ICByZXR1cm4gMDsKKysgICAgfQorKworKyAgICBFVlBfRGlnZXN0KG1zZ19zaGFrZV8yNTYsIHNp emVvZihtc2dfc2hha2VfMjU2KSwgbWQsIE5VTEwsIEVWUF9zaGFrZTI1NigpLCBOVUxMKTsKKysg ICAgaWYgKG1lbWNtcChkaWdfc2hha2VfMjU2LCBtZCwgc2l6ZW9mKGRpZ19zaGFrZV8yNTYpKSkg eworKyAgICAgICAgRklQU2VycihGSVBTX0ZfRklQU19TRUxGVEVTVCwgRklQU19SX1NFTEZURVNU X0ZBSUxFRCk7CisrICAgICAgICByZXR1cm4gMDsKKysgICAgfQorKworKyAgICByZXR1cm4gMTsK Kyt9CisrCiArI2VuZGlmCiBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vZmlwcy9maXBz X3N0YW5kYWxvbmVfaG1hYy5jLmZpcHMgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2ZpcHMvZmlwc19z dGFuZGFsb25lX2htYWMuYwogLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9maXBzL2ZpcHNfc3Rh bmRhbG9uZV9obWFjLmMuZmlwcwkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNzc0NTQ2NiArMDEwMApA QCAtOTc1MSwxMCArOTg3NSwyMiBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vaG1h Yy9obWFjLmMuZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vaG1hYy9obWFjLgogICAgICAgICAg cmVzZXQgPSAxOwogICAgICAgICAgaiA9IEVWUF9NRF9ibG9ja19zaXplKG1kKTsKICAgICAgICAg IGlmICghb3NzbF9hc3NlcnQoaiA8PSAoaW50KXNpemVvZihjdHgtPmtleSkpKQorZGlmZiAtdXAg b3BlbnNzbC0xLjEuMWIvY3J5cHRvL2htYWMvaG1fcG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFi L2NyeXB0by9obWFjL2htX3BtZXRoLmMKKy0tLSBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vaG1hYy9o bV9wbWV0aC5jLmZpcHMJMjAxOS0wMi0yNiAxNToxNTozMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vaG1hYy9obV9wbWV0aC5jCTIwMTktMDUtMDYgMTQ6NTY6MDEu MTIzMjU3MDIyICswMjAwCitAQCAtMTgwLDcgKzE4MCw3IEBAIHN0YXRpYyBpbnQgcGtleV9obWFj X2N0cmxfc3RyKEVWUF9QS0VZX0MKKyAKKyBjb25zdCBFVlBfUEtFWV9NRVRIT0QgaG1hY19wa2V5 X21ldGggPSB7CisgICAgIEVWUF9QS0VZX0hNQUMsCistICAgIDAsCisrICAgIEVWUF9QS0VZX0ZM QUdfRklQUywKKyAgICAgcGtleV9obWFjX2luaXQsCisgICAgIHBrZXlfaG1hY19jb3B5LAorICAg ICBwa2V5X2htYWNfY2xlYW51cCwKIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9pbmNs dWRlL2ludGVybmFsL2ZpcHNfaW50LmguZmlwcyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vaW5jbHVk ZS9pbnRlcm5hbC9maXBzX2ludC5oCiAtLS0gb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2luY2x1ZGUv aW50ZXJuYWwvZmlwc19pbnQuaC5maXBzCTIwMTktMDItMjggMTE6MzA6MDYuODE3NzQ1NDY2ICsw MTAwCiArKysgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL2luY2x1ZGUvaW50ZXJuYWwvZmlwc19pbnQu aAkyMDE5LTAyLTI4IDExOjMwOjA2LjgxNzc0NTQ2NiArMDEwMAotQEAgLTAsMCArMSwxMDEgQEAK K0BAIC0wLDAgKzEsOTcgQEAKICsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKyAqIENvcHlyaWdodCAoYykgMjAw MyBUaGUgT3BlblNTTCBQcm9qZWN0LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICsgKgpAQCAtOTg0 OSwxMCArOTk4NSw2IEBAIGRpZmYgLXVwIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9pbmNsdWRlL2lu dGVybmFsL2ZpcHNfaW50LmguZmlwcyBvcGVuc3NsLTEuMS4xYi9jCiArCiArdm9pZCBmaXBzX3Nl dF9zZWxmdGVzdF9mYWlsKHZvaWQpOwogKwotK2NvbnN0IEVWUF9NRCAqRklQU19nZXRfZGlnZXN0 YnluaWQoaW50IG5pZCk7Ci0rCi0rY29uc3QgRVZQX0NJUEhFUiAqRklQU19nZXRfY2lwaGVyYnlu aWQoaW50IG5pZCk7Ci0rCiArdm9pZCBGSVBTX2dldF90aW1ldmVjKHVuc2lnbmVkIGNoYXIgKmJ1 ZiwgdW5zaWduZWQgbG9uZyAqcGN0cik7CiArCiArI2VuZGlmCkBAIC0xMDY3Niw2ICsxMDgwOCwy NyBAQCBkaWZmIC11cCBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9vc3NsLmMuZmlwcyBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYQogICAgICBpZiAoQk5fbnVtX2JpdHMocnNhLT5u KSA+IE9QRU5TU0xfUlNBX01BWF9NT0RVTFVTX0JJVFMpIHsKICAgICAgICAgIFJTQWVycihSU0Ff Rl9SU0FfT1NTTF9QVUJMSUNfREVDUllQVCwgUlNBX1JfTU9EVUxVU19UT09fTEFSR0UpOwogICAg ICAgICAgcmV0dXJuIC0xOworZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvY3J5cHRvL3JzYS9yc2Ff cG1ldGguYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX3BtZXRoLmMKKy0tLSBv cGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9wbWV0aC5jLmZpcHMJMjAxOS0wNS0wNiAxNDo0 ODoyNi41MTQxNzQwNTMgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xYi9jcnlwdG8vcnNhL3JzYV9w bWV0aC5jCTIwMTktMDUtMDYgMTQ6NDU6NDYuNzMyOTU2NjQ5ICswMjAwCitAQCAtNzU2LDcgKzc1 Niw3IEBAIHN0YXRpYyBpbnQgcGtleV9yc2Ffa2V5Z2VuKEVWUF9QS0VZX0NUWAorIAorIGNvbnN0 IEVWUF9QS0VZX01FVEhPRCByc2FfcGtleV9tZXRoID0geworICAgICBFVlBfUEtFWV9SU0EsCist ICAgIEVWUF9QS0VZX0ZMQUdfQVVUT0FSR0xFTiwKKysgICAgRVZQX1BLRVlfRkxBR19BVVRPQVJH TEVOIHwgRVZQX1BLRVlfRkxBR19GSVBTLAorICAgICBwa2V5X3JzYV9pbml0LAorICAgICBwa2V5 X3JzYV9jb3B5LAorICAgICBwa2V5X3JzYV9jbGVhbnVwLAorQEAgLTgzOCw3ICs4MzgsNyBAQCBz dGF0aWMgaW50IHBrZXlfcHNzX2luaXQoRVZQX1BLRVlfQ1RYICpjCisgCisgY29uc3QgRVZQX1BL RVlfTUVUSE9EIHJzYV9wc3NfcGtleV9tZXRoID0geworICAgICBFVlBfUEtFWV9SU0FfUFNTLAor LSAgICBFVlBfUEtFWV9GTEFHX0FVVE9BUkdMRU4sCisrICAgIEVWUF9QS0VZX0ZMQUdfQVVUT0FS R0xFTiB8IEVWUF9QS0VZX0ZMQUdfRklQUywKKyAgICAgcGtleV9yc2FfaW5pdCwKKyAgICAgcGtl eV9yc2FfY29weSwKKyAgICAgcGtleV9yc2FfY2xlYW51cCwKIGRpZmYgLXVwIG9wZW5zc2wtMS4x LjFiL2NyeXB0by9yc2EvcnNhX3NpZ24uYy5maXBzIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2Ev cnNhX3NpZ24uYwogLS0tIG9wZW5zc2wtMS4xLjFiL2NyeXB0by9yc2EvcnNhX3NpZ24uYy5maXBz CTIwMTktMDItMjYgMTU6MTU6MzAuMDAwMDAwMDAwICswMTAwCiArKysgb3BlbnNzbC0xLjEuMWIv Y3J5cHRvL3JzYS9yc2Ffc2lnbi5jCTIwMTktMDItMjggMTE6MzA6MDYuODE5NzQ1NDI4ICswMTAw CkBAIC0xMDg3NSwxMiArMTEwMjgsMjAgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVk ZS9vcGVuc3NsL2RzYS5oLmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3MKICAjIGlm IE9QRU5TU0xfQVBJX0NPTVBBVCA8IDB4MTAxMDAwMDBMCiBkaWZmIC11cCBvcGVuc3NsLTEuMS4x Yi9pbmNsdWRlL29wZW5zc2wvZXZwZXJyLmguZmlwcyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29w ZW5zc2wvZXZwZXJyLmgKIC0tLSBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZXZwZXJy LmguZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAotKysrIG9wZW5zc2wt MS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaAkyMDE5LTAyLTI4IDExOjMwOjA2LjgyMTc0 NTM5MSArMDEwMAotQEAgLTI1LDYgKzI1LDcgQEAgaW50IEVSUl9sb2FkX0VWUF9zdHJpbmdzKHZv aWQpOworKysrIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9ldnBlcnIuaAkyMDE5LTA1 LTA2IDE2OjQwOjIxLjMyNDU3MTQ0NiArMDIwMAorQEAgLTIwLDExICsyMCwxNSBAQCBpbnQgRVJS X2xvYWRfRVZQX3N0cmluZ3Modm9pZCk7CisgICogRVZQIGZ1bmN0aW9uIGNvZGVzLgorICAqLwor ICMgZGVmaW5lIEVWUF9GX0FFU05JX0lOSVRfS0VZICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxNjUKKysjIGRlZmluZSBFVlBfRl9BRVNOSV9YVFNfSU5JVF9LRVkgICAgICAgICAgICAgICAg ICAgICAgICAgMjMzCisgIyBkZWZpbmUgRVZQX0ZfQUVTX0dDTV9DVFJMICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDE5NgorICMgZGVmaW5lIEVWUF9GX0FFU19JTklUX0tFWSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAxMzMKICAjIGRlZmluZSBFVlBfRl9BRVNfT0NCX0NJUEhF UiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTY5CiAgIyBkZWZpbmUgRVZQX0ZfQUVTX1Q0 X0lOSVRfS0VZICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE3OAorKyMgZGVmaW5lIEVWUF9G X0FFU19UNF9YVFNfSU5JVF9LRVkgICAgICAgICAgICAgICAgICAgICAgICAyMzQKICAjIGRlZmlu ZSBFVlBfRl9BRVNfV1JBUF9DSVBIRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcwCi0r IyBkZWZpbmUgRVZQX0ZfQUVTX1hUU19DSVBIRVIgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDMwMAorKyMgZGVmaW5lIEVWUF9GX0FFU19YVFNfQ0lQSEVSICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAyMjkKKysjIGRlZmluZSBFVlBfRl9BRVNfWFRTX0lOSVRfS0VZICAgICAgICAgICAg ICAgICAgICAgICAgICAgMjM1CiAgIyBkZWZpbmUgRVZQX0ZfQUxHX01PRFVMRV9JTklUICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDE3NwogICMgZGVmaW5lIEVWUF9GX0FSSUFfQ0NNX0lOSVRf S0VZICAgICAgICAgICAgICAgICAgICAgICAgICAxNzUKICAjIGRlZmluZSBFVlBfRl9BUklBX0dD TV9DVFJMICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTk3CkBAIC0xMDkwMCwxMCArMTEw NjEsMzEgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2V2cGVyci5o LmZpcHMgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGUKICAjIGRlZmluZSBFVlBfUl9VTktOT1dO X0NJUEhFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYwCiAgIyBkZWZpbmUgRVZQX1Jf VU5LTk9XTl9ESUdFU1QgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2MQogICMgZGVmaW5l IEVWUF9SX1VOS05PV05fT1BUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNjkKK0BA IC0xOTAsNSArMTkzLDcgQEAgaW50IEVSUl9sb2FkX0VWUF9zdHJpbmdzKHZvaWQpOworICMgZGVm aW5lIEVWUF9SX1VOU1VQUE9SVEVEX1NBTFRfVFlQRSAgICAgICAgICAgICAgICAgICAgICAxMjYK KyAjIGRlZmluZSBFVlBfUl9XUkFQX01PREVfTk9UX0FMTE9XRUQgICAgICAgICAgICAgICAgICAg ICAgMTcwCisgIyBkZWZpbmUgRVZQX1JfV1JPTkdfRklOQUxfQkxPQ0tfTEVOR1RIICAgICAgICAg ICAgICAgICAgIDEwOQorKyMgZGVmaW5lIEVWUF9SX1hUU19EQVRBX1VOSVRfSVNfVE9PX0xBUkdF ICAgICAgICAgICAgICAgICAxOTEKKysjIGRlZmluZSBFVlBfUl9YVFNfRFVQTElDQVRFRF9LRVlT ICAgICAgICAgICAgICAgICAgICAgICAgMTkyCisgCisgI2VuZGlmCitkaWZmIC11cCBvcGVuc3Ns LTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZXZwLmguZmlwcyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRl L29wZW5zc2wvZXZwLmgKKy0tLSBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZXZwLmgu ZmlwcwkyMDE5LTAyLTI2IDE1OjE1OjMwLjAwMDAwMDAwMCArMDEwMAorKysrIG9wZW5zc2wtMS4x LjFiL2luY2x1ZGUvb3BlbnNzbC9ldnAuaAkyMDE5LTA1LTA2IDE0OjU0OjEzLjIxMzEzNjI4MSAr MDIwMAorQEAgLTEzMTksNiArMTMxOSw5IEBAIHZvaWQgRVZQX1BLRVlfYXNuMV9zZXRfc2VjdXJp dHlfYml0cyhFVlAKKyAgKi8KKyAjIGRlZmluZSBFVlBfUEtFWV9GTEFHX1NJR0NUWF9DVVNUT00g ICAgIDQKKyAKKysvKiBEb3duc3RyZWFtIG1vZGlmaWNhdGlvbiwgbGFyZ2UgdmFsdWUgdG8gYXZv aWQgY29uZmxpY3QgKi8KKysjIGRlZmluZSBFVlBfUEtFWV9GTEFHX0ZJUFMgICAgICAgICAgICAg IDB4NDAwMAorKworIGNvbnN0IEVWUF9QS0VZX01FVEhPRCAqRVZQX1BLRVlfbWV0aF9maW5kKGlu dCB0eXBlKTsKKyBFVlBfUEtFWV9NRVRIT0QgKkVWUF9QS0VZX21ldGhfbmV3KGludCBpZCwgaW50 IGZsYWdzKTsKKyB2b2lkIEVWUF9QS0VZX21ldGhfZ2V0MF9pbmZvKGludCAqcHBrZXlfaWQsIGlu dCAqcGZsYWdzLAogZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2ZpcHMu aC5maXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9maXBzLmgKLS0tLSBvcGVuc3Ns LTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZmlwcy5oLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44 MjE3NDUzOTEgKzAxMDAKLSsrKyBvcGVuc3NsLTEuMS4xYi9pbmNsdWRlL29wZW5zc2wvZmlwcy5o CTIwMTktMDItMjggMTE6MzA6MDYuODIxNzQ1MzkxICswMTAwCi1AQCAtMCwwICsxLDE4NiBAQAor LS0tIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnNzbC9maXBzLmguZmlwcwkyMDE5LTA1LTA2 IDE2OjA4OjQ2LjgwMDU5ODA3MyArMDIwMAorKysrIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3Bl bnNzbC9maXBzLmgJMjAxOS0wNS0wNiAxNjo0MzoxMi44NzQ1NDk4MjEgKzAyMDAKK0BAIC0wLDAg KzEsMTg3IEBACiArLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KICsgKiBDb3B5cmlnaHQgKGMpIDIwMDMgVGhlIE9w ZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiArICoKQEAgLTExMDE5LDYgKzEx MjAxLDcgQEAgZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvaW5jbHVkZS9vcGVuc3NsL2ZpcHMuaC5m aXBzIG9wZW5zc2wtMS4xLjFiL2luY2x1ZGUvb3BlbnMKICsjIGRlZmluZSBGSVBTX0ZfRklQU19S QU5EX1NFVF9NRVRIT0QgICAgICAgICAgICAgICAgICAgICAgMTI2CiArIyBkZWZpbmUgRklQU19G X0ZJUFNfUkFORF9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICAgIDEyNwogKyMgZGVmaW5l IEZJUFNfRl9GSVBTX1JTQV9CVUlMVElOX0tFWUdFTiAgICAgICAgICAgICAgICAgICAxMDEKKysj IGRlZmluZSBGSVBTX0ZfRklQU19TRUxGVEVTVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MTUwCiArIyBkZWZpbmUgRklQU19GX0ZJUFNfU0VMRlRFU1RfQUVTICAgICAgICAgICAgICAgICAg ICAgICAgIDExMAogKyMgZGVmaW5lIEZJUFNfRl9GSVBTX1NFTEZURVNUX0FFU19DQ00gICAgICAg ICAgICAgICAgICAgICAxNDUKICsjIGRlZmluZSBGSVBTX0ZfRklQU19TRUxGVEVTVF9BRVNfR0NN ICAgICAgICAgICAgICAgICAgICAgMTI5CkBAIC0xMTU1MCw2ICsxMTczMywxNyBAQCBkaWZmIC11 cCBvcGVuc3NsLTEuMS4xYi90ZXN0L2RzYXRlc3QuYy5maXBzIG9wZW5zc2wtMS4xLjFiL3Rlc3Qv ZHNhdGVzdC5jCiAgICAgICAgICBnb3RvIGVuZDsKICAgICAgaWYgKCFURVNUX2ludF9lcShoLCAy KSkKICAgICAgICAgIGdvdG8gZW5kOworZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdGVzdC9yZWNp cGVzLzMwLXRlc3RfZXZwX2RhdGEvZXZwY2lwaC50eHQuZmlwcyBvcGVuc3NsLTEuMS4xYi90ZXN0 L3JlY2lwZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBjaXBoLnR4dAorLS0tIG9wZW5zc2wtMS4xLjFi L3Rlc3QvcmVjaXBlcy8zMC10ZXN0X2V2cF9kYXRhL2V2cGNpcGgudHh0LmZpcHMJMjAxOS0wNS0w NiAxNjowODo0Ni44NTc1OTcwODUgKzAyMDAKKysrKyBvcGVuc3NsLTEuMS4xYi90ZXN0L3JlY2lw ZXMvMzAtdGVzdF9ldnBfZGF0YS9ldnBjaXBoLnR4dAkyMDE5LTA1LTA2IDE2OjM1OjM3LjkxNzU2 MzI5MiArMDIwMAorQEAgLTExODQsNiArMTE4NCw3IEBAIEtleSA9IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAKKyBJViA9IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw CisgUGxhaW50ZXh0ID0gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAorIENpcGhlcnRleHQgPSA5MTdjZjY5ZWJkNjhiMmVjOWI5 ZmU5YTNlYWRkYTY5MmNkNDNkMmY1OTU5OGVkODU4YzAyYzI2NTJmYmY5MjJlCisrUmVzdWx0ID0g S0VZX1NFVF9FUlJPUgorIAorIENpcGhlciA9IGFlcy0xMjgteHRzCisgS2V5ID0gMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgog ZGlmZiAtdXAgb3BlbnNzbC0xLjEuMWIvdXRpbC9saWJjcnlwdG8ubnVtLmZpcHMgb3BlbnNzbC0x LjEuMWIvdXRpbC9saWJjcnlwdG8ubnVtCiAtLS0gb3BlbnNzbC0xLjEuMWIvdXRpbC9saWJjcnlw dG8ubnVtLmZpcHMJMjAxOS0wMi0yOCAxMTozMDowNi44MjQ3NDUzMzUgKzAxMDAKICsrKyBvcGVu c3NsLTEuMS4xYi91dGlsL2xpYmNyeXB0by5udW0JMjAxOS0wMi0yOCAxMTozMzo1NC4yODQ1MTY5 OTEgKzAxMDAKCmRpZmYgLS1naXQgYS9vcGVuc3NsLnNwZWMgYi9vcGVuc3NsLnNwZWMKaW5kZXgg MmUzY2JkYi4uMTgxNGVlZCAxMDA2NDQKLS0tIGEvb3BlbnNzbC5zcGVjCisrKyBiL29wZW5zc2wu c3BlYwpAQCAtMjIsNyArMjIsNyBAQAogU3VtbWFyeTogVXRpbGl0aWVzIGZyb20gdGhlIGdlbmVy YWwgcHVycG9zZSBjcnlwdG9ncmFwaHkgbGlicmFyeSB3aXRoIFRMUyBpbXBsZW1lbnRhdGlvbgog TmFtZTogb3BlbnNzbAogVmVyc2lvbjogMS4xLjFiCi1SZWxlYXNlOiA3JXs/ZGlzdH0KK1JlbGVh c2U6IDglez9kaXN0fQogRXBvY2g6IDEKICMgV2UgaGF2ZSB0byByZW1vdmUgY2VydGFpbiBwYXRl bnRlZCBhbGdvcml0aG1zIGZyb20gdGhlIG9wZW5zc2wgc291cmNlCiAjIHRhcmJhbGwgd2l0aCB0 aGUgaG9iYmxlLW9wZW5zc2wgc2NyaXB0IHdoaWNoIGlzIGluY2x1ZGVkIGJlbG93LgpAQCAtNjQs NiArNjQsNyBAQCBQYXRjaDUwOiBvcGVuc3NsLTEuMS4xLXNzaC1rZGYucGF0Y2gKICMgQmFja3Bv cnRlZCBmaXhlcyBpbmNsdWRpbmcgc2VjdXJpdHkgZml4ZXMKIFBhdGNoNTE6IG9wZW5zc2wtMS4x LjEtdXBzdHJlYW0tc3luYy5wYXRjaAogUGF0Y2g1Mjogb3BlbnNzbC0xLjEuMS1zMzkweC11cGRh dGUucGF0Y2gKK1BhdGNoNTM6IG9wZW5zc2wtMS4xLjEtZmlwcy1jcm5nLXRlc3QucGF0Y2gKIAog TGljZW5zZTogT3BlblNTTAogVVJMOiBodHRwOi8vd3d3Lm9wZW5zc2wub3JnLwpAQCAtMTYyLDYg KzE2Myw3IEBAIGNwICV7U09VUkNFMTN9IHRlc3QvCiAlcGF0Y2g1MCAtcDEgLWIgLnNzaC1rZGYK ICVwYXRjaDUxIC1wMSAtYiAudXBzdHJlYW0tc3luYwogJXBhdGNoNTIgLXAxIC1iIC5zMzkweC11 cGRhdGUKKyVwYXRjaDUzIC1wMSAtYiAuY3JuZy10ZXN0CiAKIAogJWJ1aWxkCkBAIC00NDgsNiAr NDUwLDkgQEAgZXhwb3J0IExEX0xJQlJBUllfUEFUSAogJWxkY29uZmlnX3NjcmlwdGxldHMgbGli cwogCiAlY2hhbmdlbG9nCisqIFR1ZSBNYXkgIDcgMjAxOSBUb23DocWhIE1yw6F6IDx0bXJhekBy ZWRoYXQuY29tPiAxLjEuMWItOAorLSBGSVBTIGNvbXBsaWFuY2UgZml4ZXMKKwogKiBNb24gTWF5 ICA2IDIwMTkgVG9tw6HFoSBNcsOheiA8dG1yYXpAcmVkaGF0LmNvbT4gMS4xLjFiLTcKIC0gYWRk IFMzOTB4IGNoYWNoYTIwLXBvbHkxMzA1IGFzc2VtYmxlciBzdXBwb3J0IGZyb20gbWFzdGVyIGJy YW5jaAogCg==